Научная статья на тему 'Разработка и реализация honeypot-ловушки сетевых служб, использующих протокол sip'

Разработка и реализация honeypot-ловушки сетевых служб, использующих протокол sip Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1069
89
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
HONEYPOT / АТС / DIALPLAN / КОНФИГУРАЦИОННЫЙ ФАЙЛ / МАРШРУТИЗАЦИЯ ВЫЗОВА / КОНТЕКСТ / ДОБАВОЧНЫЙ НОМЕР EXTENTION / ПРИЛОЖЕНИЕ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Сильнов Дмитрий Сергеевич, Титов Кирилл Евгеньевич

Ни для кого не секрет, что в современном мире киберпреступления активно развиваются. Одной из IT-сфер, которые подвержены атакам, является сфера интернет телефонии. Сетевые ловушки являются относительно новым способом борьбы с постоянно развивающимися сценариями атак. Сетевая ловушка (она же honeypot) это система, представляющая из себя приманку для злоумышленника. Она обычно состоит из компьютера, программ и информации, которые вместе симулируют поведение реальной системы, являющейся частью сети. Добросовестным пользователям нет смысла подключаться к такой системе, поэтому наблюдение за попытками получить доступ к ловушке и активностью в ней позволяет получить сведения об уровне угроз реальной системе. Информация, полученная в результате работы ловушки сетевых служб, систематизируется и анализируется. В результате анализа можно сделать вывод о стадии развития алгоритмов атак на тот протокол или систему, которая была подменена ловушкой. В статье обсуждается опасность сетевых атак на службы, использующие SIP протокол. Этот протокол является протоколом установления сессии в системах интернет телефонии. Рассматриваются популярные honeypot-ловушки, работающие по этому протоколу, а также описывается алгоритм и реализация собственной ловушки. В качестве сервера интернет телефонии выбрано программное обеспечение Asterisk, работающее на ОС Linux.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Разработка и реализация honeypot-ловушки сетевых служб, использующих протокол sip»

УДК 004.492

Сильнов Д.С., Титов К.Е.

Национальный исследовательский ядерный университет МИФИ, г. Москва, Россия

РАЗРАБОТКА И РЕАЛИЗАЦИЯ HONEYPOT-ЛОВУШКИ СЕТЕВЫХ СЛУЖБ, ИСПОЛЬЗУЮЩИХ ПРОТОКОЛ SIP

АННОТАЦИЯ

Ни для кого не секрет, что в современном мире киберпреступления активно развиваются. Одной из IT-сфер, которые подвержены атакам, является сфера интернет телефонии. Сетевые ловушки являются относительно новым способом борьбы с постоянно развивающимися сценариями атак. Сетевая ловушка (она же honeypot) - это система, представляющая из себя приманку для злоумышленника. Она обычно состоит из компьютера, программ и информации, которые вместе симулируют поведение реальной системы, являющейся частью сети. Добросовестным пользователям нет смысла подключаться к такой системе, поэтому наблюдение за попытками получить доступ к ловушке и активностью в ней позволяет получить сведения об уровне угроз реальной системе. Информация, полученная в результате работы ловушки сетевых служб, систематизируется и анализируется. В результате анализа можно сделать вывод о стадии развития алгоритмов атак на тот протокол или систему, которая была подменена ловушкой. В статье обсуждается опасность сетевых атак на службы, использующие SIP протокол. Этот протокол является протоколом установления сессии в системах интернет телефонии. Рассматриваются популярные honeypot-ловушки, работающие по этому протоколу, а также описывается алгоритм и реализация собственной ловушки. В качестве сервера интернет телефонии выбрано программное обеспечение Asterisk, работающее на ОС Linux.

КЛЮЧЕВЫЕ СЛОВА

Honeypot, АТС, dialplan, конфигурационный файл, маршрутизация вызова, контекст, добавочный номер extention, приложение.

Silnov D.S., Titov K.E.

National research nuclear university MEPhI, Moscow, Russia

DEVELOMPENT AND IMPLEMENTATION OF HONEYPOT WORKING ON SIP

PROTOCOL

ABSTRACT

Everybody knows that there are a lot of cybercrimes that actively develop in modern world. One of the IT sphere that prone to cyberattacks is internet telephony sphere. Honeypot is a new way of fighting against cybercrimes in this sphere. Honeypot is the system that attracts malefactors. It usually consists of computer, programs and data which simulate real system behavior. There is no need for honest people to contact with such system, that's why monitoring of attempts of getting an access to a honeypot and the activity in the system help to get an information about the level of the danger in the real system. As a result of honeypot activity the information is being systemized and analyzed. So you can make a conclusion about the level of attack algorithms on any protocol or system, which has been replaced by honeypot. This protocol describes the algorithm of session initiation in internet telephony systems. In the article the danger of SIP service attacks is discussed. The most popular SIP honeypots are reviewed, the algorithm and its realization are represented. Software Asterisk compatible with operation system Linux works as the server of internet telephony.

KEYWORDS

Honeypot, telephone exchange, dialplan, configuration file, call routing, context, extention number, extention, application.

В последнее время honeypot'bi получили широкое распространение в it-сфере. Honeypot

(ловушка) - это система, представляющая из себя приманку для злоумышленников. Она обычно

состоит из компьютера, программ и информации, которые вместе симулируют поведение реальной системы, являющеися частью сети.

Добросовестным пользователям не имеет смысла подключаться к такои системе, поэтому наблюдение за попытками получить доступ к ловушке и активностью в неи позволяет получать сведения об уровне угроз реальнои системы.

После анализа собраннои информации по подключениям к ловушке можно получить примерные методы, которые используют злоумышленники при попытке взлома системы, а также разработать свои решения противодеиствия данным методам.

Существует два возможных метода создания ловушки: создание honeypot на выделенном сервере и эмулирование ловушки при помощи виртуальнои машины. Honeypot, созданным на выделенном сервере максимально приближен к системе, однако в некоторых случаях целесообразнее провести эмуляцию honeypot^. В компаниях с обширнои сетевои архитектурои как правило используются выделенные серверы с преднамеренно допущенными ошибками в конфигурации системы. Эти ошибки позволяют заманить взломщиков в ловушку. [1]

В рамках даннои статьи проводится описание процесса разработки ловушки на базе программного обеспечения Asterisk, поддерживающего протокол установления сеанса SIP и представляющего из себя программное решение автоматическои телефоннои станции.

Киберпреступления в области компьютернои телефонии все набирают популярность, и наиболее распространенным сценарием атаки в даннои сфере являются звонки на платные номера.

Описываемая ловушка представляет из себя сервер с установленным на нем программным обеспечением Asterisk и выставленным в интернет IP-адресом. Злоумышленники, использующие выше обговоренныи сценарии атаки, сканируют интернет на наличие IP-адресов подобных серверов. После нахождения такого адреса, злоумышленник подключается к серверу и через него совершает звонок на платныи номер.

Разработанная ловушка не перенаправляет такои вызов на запрашиваемым адрес, а лишь собирает статистику по звонку, записывая ее в базу данных. По результатам работы такои ловушки будет собрана статистика звонков, на основе которои можно будет определить новые способы атак на системы компьютернои телефонии, а также модернизировать свою систему для защиты от них.

SIP - протокол установления сеанса, содержащии алгоритмы установления и завершения сеанса общения между двумя пользователями. Протокол описывает алгоритмы, за счет которых клиентское приложение запрашивает разрешение у удаленного клиента на установление с ним соединения по уникальному имени удаленного клиента.

SIP спроектирован для того, чтобы обеспечить контроль сессии для голосовых и мультимедиа соединении в сетях с пакетнои передачеи данных. Пример установления соединения между двумя клиентами посредством SIP протокола представлен на рисунке 1.

INVITE

180 Ringing 1

200 OK

ACK

1 Vedia Session 1

180 Bye

i 200 OK I

Рис. 1 - Взаимодействие между двумя клиентами с установлением и окончанием сессии при помощи SIP

протокола

UA1 (User Agent 1) хочет создать сессию с UA2. Для этого он отсылает второму INVITE-сообщение, предложение присоединиться к сессии.

Далее у UA2 начинает звонить телефон, информация об этом присылается UA1 в пакете 180 Ringing. Если UA2 отвечает на вызов, то пакет с информациеи об успешном соединении отсылается первому пользователю. UA1 отправляет ACK пакет, которым оповещает второго о том, что он успешно принял предыдущее сообщение. Так же в этом пакете отсылаются окончательные параметры соединения.

Когда один из пользователей кладет трубку, второму отсылается пакет 180 Bye. Ответом на это служит сообщение 200 OK. Сессия окончена. [2]

Asterisk - бесплатное программное обеспечение, позволяющее организовать на сервере цифровую автоматическую телефонную сеть с широким спектром возможностей

Asterisk в комплекте с необходимым оборудованием обладает всеми возможностям классическои автоматическои телефоннои сети и предоставляет пользователю богатые функции управления звонками.

Asterisk сильно отличается от классических АТС. В телефоннои сети, построеннои посредством Asterisk^, все входящие и исходящие вызовы обрабатываются при помощи так называемого dialplan^ (план набора).

План набора - сердце Asterisk^, скрипт, которыи подробно описывает управление потоком звонков, приходящих на сервер. При помощи плана набора можно заставить сервер пересылать звонки с одного абонента на другого, организовать голосовое меню, предлагающее пользователю нажимать кнопки на своем телефоне в зависимости от его выбора, а также оптимизировать работу автоматическои телефоннои станции в соответствии с требованиями организации, использующеи сервер Asterisk, а также многое другое.

ПО поддерживает следующие протоколы:

• SIP (протокол установления сеанса, описывает алгоритмы установления и завершения сеанса общения между двумя пользователями);

• H.323 (содержит набор стандартов, необходимых для передачи мультимедиа-данных);

• MGCP (протокол контроля медиашлюзов);

• IAX-2 (протокол обмена Voice over IP данными между несколькими виртуальными АТС Asterisk);

• OSP (протокол, используемый провайдерами для авторизации при применении SIP-телефонии).

Asterisk может работать практически на любои ОС Linux, а также на некоторых других операционных системах. Кроме того, существуют готовые дистрибутивы, содержащие операционную систему, скомпилированныи Астериск и стандартную конфигурацию.

Например, ОС AsteriskNow - операционная система на базе Linux CentOS, включающая в себя предустановленное программное обеспечение Asterisk и предназначенная для быстрого развертывания виртуальнои автоматическои телефоннои станции на персональном компьютере.

Каналы в Asterisk представляют собои внешние или внутренние соединения, по которым вызовы доставляются до сервера с программным обеспечением. Каналом может являться как виртуальное соединение, предназначенное для общения посредством интернета, так и физическое соединение с телефоном или телефоннои сетью.

Каналы настраиваются при помощи добавления новых записеи в конфигурационныи фаил

sip.conf.

Прежде чем мы переити к обсуждению плана набора Asterisk^ в полном объеме, будет полезно привести пример взаимодеиствия между фаилом конфигурации каналов (sip.conf) и dialplan'ом (extentions.conf).

Dialplan является сердцем системы Asterisk: он контролирует всю логику подключении по любым каналам. То есть именно он описывает порядок деиствии системы при входящем звонке от внешнего проваидера, либо при звонке на международныи номер и т.д.

Взаимодеиствие между фаилами sip.conf и extentions.conf демонстрируется на рисунке 2. Когда вызов приходит на Asterisk, sip.conf идентифицирует его к определенному каналу, проводит аутентификацию вызова и определяет точку входа в dialplan. Дальнеишая маршрутизация вызова проходит в соответствии с файлом extentions.conf.

extentions.conf

[local] exten => ...

Рис. 2 - Взаимодействие между sip.conf и extentions.conf [3]

Dialplan (план набора) - описание логики маршрутизации телефонных звонков. Номернои план содержит подробное изложение деиствии системы при прохождении входящих и исходящих звонков через сервер с установленным ПО Asterisk на нем.

План набора разбит на секции, называемые контекстами (contexts). Контексты предотвращают взаимодеиствие различных частеи dialplan'а друг с другом.

Например, для обработки звонков с городского номера и с внутреннего номера компании нужно придерживаться различных логик. Логичнее разнести эти алгоритмы по разным контекстам внутри одного плана набора.

Строго говоря, контексты нужны для выполнения основных функции автоматических телефонных станции:

• Безопасность (возможность настроить dialplan так, чтобы лишь ограниченный круг лиц имел доступ к определенному списку функций);

• Списки доступа (возможность заносить в черные списки неугодных вам абонентов);

• Маршрутизация вызовов (определение маршрута для вызова в зависимости от вызываемого абонента);

• Дневной/ночной режимы работы (возможность изменять режим работы АТС в зависимости от времени суток).

Каждыи контекст может включать в себя неограниченное количество так называемых экстеншенов (extentions).

Экстеншен определяет уникальную серию шагов, которых будет придерживаться Asterisk, обрабатывая вызов, принадлежащии данному контексту. Синтаксис экстеншена

Экстеншен в плане набора начинается со следующеи комбинации символов: exten =>

За неи идет имя или номер экстеншена. В традиционных АТС аналогом этого имени может послужить телефонныи номер. В Asterisk^ роль имени может играть комбинация из чисел и букв. Каждыи шаг в экстеншене включает в себя три компонента:

• Имя или номер экстеншена;

• Приоритет (каждый экстеншен может содержать несколько шагов, порядковый номер шага называется его приоритетом);

• Приложение или команда, которая выполняется на этом шаге. В скобках указываются параметры, передаваемые команде, если они необходимы.

Конструкция шага в экстеншене: exten => имя, приоритет, приложение()

Каждое приложение (команда) представляет из себя какое-либо деиствие над каналом, по которому проходит вызов. Например: проигрывание музыкальнои дорожки, поиск информации в базе данных, установление канала, сброс вызова и так далее.

Простеишии пример dialplan^: EXTEN => 20, 1, Answer() exten => 20, 2, Wait(5) exten => 20, 3, Playback(greeting) exten => 20, 4, Hangup()

Следуя первому приоритету экстеншена, мы отвечаем на входящии вызов, далее мы ждем 5 секунд согласно команде Wait с аргументом 5. Затем проигрываем мелодию с названием greeting и разрываем соединение.

Построенныи выше план набора всегда выполняет одни и те же деиствия при вызове экстеншена под номером 20. В большинстве планов набора требуется наличие более сложнои логики, опирающеися на вводе символов абонентом.

Команда Goto() используется для отправки звонка в другую часть диалпална. Команде передаются аргументы: контекст, экстеншен, приоритет, которые определяют точное место следующего шага.

При вызове экстеншена 21 звонок будет перенаправляться на начальныи экстеншен в контексте Menu. EXTEN => 21, 1, Goto(Menu, mn, 1)

[Menu]

EXTEN => MN, 1, ANSWER() Анализ существующих ловушек для протокола SIP

Целью создания ловушек в VoIP сетях является мониторинг и анализ зловредного трафика. Трафик наблюдается при помощи набора специальных приложении, которые могут следить за различными аспектами инфраструктуры IP-телефонии. Подобные приложения называются Ыпеуро^ами. Использование honeypot^ дает много информации об атаках на реальные системы без угрозы для них. Анализ информации, полученнои при помощи ловушек, является ключевым моментом для улучшения существующих механизмов в инфраструктуре IP-телефонии.

Ловушка Artemisa может быть встроена в любую VoIP систему, которая использует SIP протокол. В этои системе она играет роль обычного SIP телефона. Экстеншен, обрабатывающии звонок на телефон-ловушку, должен находиться в диапазоне экстеншенов, используемых реальными оконечными устроиствами, это нужно для того, чтобы замаскировать ловушку.

При вызове одного из экстеншенов, ассоциируемых с Artemisa, ловушка принимает звонок и в то же время начинает анализировать входящее SIP сообщение. Далее Artemisa классифицирует звонок и сохраняет результат для дальнеиших исследовании системным администратором.

Сообщение классифицируется следующим путем. В начале ловушка ищет совпадения с хорошо известными атаками. Затем она проверяет имена доменов и SIP порты на атакующеи стороне. Наконец, программа проверяет полученньш RTP поток. [4]

Данная последовательность деиствии позволяет программе классифицировать звонок. [4]

Следующая ловушка, Dionaea, не нуждается во внешнем VoIP сервере. Она просто ожидает любое SIP сообщение и пытается ответить на него. Ловушка поддерживает все SIP запросы (REGISTER, INVITE, ACK, CANCEL, BYE, OPTIONS), а также протокол RTP. Весь трафик отслеживается, логи сохраняются в базу данных. [5]

Разработка архитектуры логической ловушки

Примерная схема архитектуры будущеи логическои ловушки для протокола SIP изображена на рисунке 3.

При сканировании интернета злоумышленник обнаружит открытыи порт нашего сервера, подключится к нему и совершит звонок на платныи номер по SIP протоколу, которыи будет проходить через PSTN (телефонную сеть общего пользования).

сервер

Рис. 3 - Схема архитектуры логической ловушки

Разработка алгоритмов

Разработаем алгоритм ловушки с использованием протокола SIP и сервера Asterisk. Ловушка предназначена для того, чтобы собирать статистику по звонкам на международные платные номера, совершенным при помощи нашего сервера. Данный звонок будет совершен при участии россииского оператора связи и оператора связи тои страны, в которои находится платньш номер. Счет за звонок на платньш номер будет предоставлен зарубежным оператором россиискому, которыи в свою очередь направит его владельцу сервера Asterisk. Для наглядности схема подобного звонка изображена на рисунке №3.

Злоумышл енник

Asterisk

Российский оператор

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Зарубежный оператор

Платный номер

Рис. 4 - Звонок на платный номер направление вызова счет за звонок

Чтобы получить доступ к серверу ip-телефонии и реализовать свои сценарии атаки, злоумышленник сканирует белые ip-адреса в интернете. Наш сервер выставлен в интернет, значит рано или поздно его ¡р-адрес будет обнаружен.

Рис. 4 - Алгоритм ловушки В рамках реализации сценария атаки злоумышленник подключится к серверу и отправит REGISTRATION запрос нашему серверу с целью подключиться к нему.

После успешного подключения злоумышленника к серверу существует 2 варианта развития событии. Если вызов не будет совершен в течение определенного количества времени, мы записываем в базу данных информацию о потенциальном злоумышленнике, подключавшемся к серверу Asterisk. Если же совершается вызов на зарубежньш платньш номер (владельцем которого является сам злоумышленник, либо лицо, находящееся в сговоре с ним) мы заносим в базу данных номер телефона, куда идет звонок, и перенаправляем его на наш внутреннии номер.

Далее собирается информация о характеристиках звонка и заносится в базу данных для

дальнейшего анализа возможных угроз и атак в сфере ip-телефонии.

В базу данных заносятся такие сведения, как номер, на которыи совершался звонок, ip-адрес злоумышленника, порт, на которьш пришло соединение, факт передачи дополнительных тоновых сигналов, голосовых команд, характер отключения злоумышленника от сервера: по таимауту или самостоятельно. Весь алгоритм представлен на рисунке 5. Реализация модуля Asterisk

Итак, теперь переидем непосредственно к реализации ловушки на сервере Asterisk. После того, как сервер Asterisk будет обнаружен злоумышленником в результате сканирования белых ip-адресов, он может попытаться совершить вызов на зарубежныи платныи номер.

Для обработки даннои ситуации нужно описать экстеншен в фаиле extentions.conf. EXTEN => _X., 1, Answer() ;отвечаем, не соединяя с нужным номером exten => _X., N, Playback(welcome) ;приветствие exten => _X., N, SET(CALLER = ${CALLERID(NUM)})

exten =>_X., n, MixMonitor(data/${STRFTIME(,,%y/%m/%d/%H_%M_%S)}_${CALLER}.gsm) ;запись в фаИл

EXTEN =>_X., N, set(calld = ${EXTEN}) ;ЗАНОСИМ В ПЕРЕМЕННУЮ НОМЕР EXTEN =>_X., N, set(f1 = 'NULL') EXTEN =>_X., N, SET(F2 = 0) EXTEN =>_X., N, SET(ADDRESS =

/var/spool/asterisk/monitor/data/${STRFTIME(,,%y/%m/%d/%H_%M_%S)}_${CALLER}.gsm) exten => _X., n, set(chan = ${CHANNEL}) ;имя канала exten => _X., N, Set(f3 = 1) ;

exten => _X., n, Set(ip = ${SIPCHANINFO(recvip)}) ;1Р-адрес звонящего

exten => _X., n, Wait(60) ;ожидание

exten => _X., n, Hangup() ;отключение

exten => _x., n, Set(f3 = 0) ;ОТКЛЮЧЕНИЕ по таИм-ауту

exten => _X., n, MySQL(Connect connid localhost user pass dbhoneypot) подключаемся к базе

ДАННЫХ

EXTEN => _X., N, MYSQL(QUERY RESULTID ${CONNID} INSERT INTO INFO SET CALLD=${CALLD}, FLAG1=${F1},

flag2=${f2}, addr=${address}, flag3=${f3}, ipaddr=${ip}, port=${chan})

В даннои статье была поставлена цель объяснить целесообразность и разработать алгоритм ловушки, имитирующеи работу сетевых служб SIP на базе программного обеспечения Asterisk.

После анализа поставленных задач алгоритм был разработан, и ловушка была внедрена, что позволило получить некоторою статистику, которая нуждается в систематизации и статистики. Одно можно сказать точно: на ловушку приходят запросы на подключение к серверу, а значит данное направление атак существует и его нужно исследовать.

Результаты проведенных в рамках статьи исследовании можно использовать для дальнеиших научных исследовании тенденции в сфере кибернетических атак на системы компьютернои телефонии, а также для сбора статистики.

Литература

1. M. M. Rehman H., Honeypots and Routers Collecting Internet Attacks, 2015.

2. Гольдштейн Б.С., Справочник по телекоммуникационным протоколам. Протокол SIP.

3. M. L. Bryant R., Asterisk: The Definitive Guide, O'Reilly Meadia, 2013.

4. Jakub Safarik, «Monitoring of Malicious Traffic in IP Telephony,» CESNET, Praha, 2012.

5. Dionaea URL http://www.edgis-security.org/honeypot/dionaea/.

References

1. M. M. Rehman H., Honeypots and Routers Collecting Internet Attacks, 2015.

2. Goldstein B. S., Spravochnik po telekommunikacionnim protokolam. Protocol SIP.

3. M. L. Bryant R., Asterisk: The Definitive Guide, O'Reilly Meadia, 2013.

4. Jakub Safarik, «Monitoring of Malicious Traffic in IP Telephony,» CESNET, Praha, 2012.

5. Dionaea URL http: //www.edgis-security.org/honeypot/dionaea / .

Поступила: 13.10.2016

Об авторах:

Сильнов Дмитрий Сергеевич, кандидат технических наук, доцент кафедры компьютерных систем и технологий Национального Исследовательского Ядерного университета МИФИ, ds@silnov.pro;

Титов Кирилл Евгеньевич, студент факультета кибернетики и информационной безопасности Национального Исследовательского Ядерного университета МИФИ.

i Надоели баннеры? Вы всегда можете отключить рекламу.