УДК 004.056.5
Е.В. Щерба, М.В. Щерба
Омский государственный технический университет, г. Омск
АРХИТЕКТУРА ПРОГРАММНОЙ РЕАЛИЗАЦИИ МЕТОДИКИ ОБНАРУЖЕНИЯ СЕТЕВЫХ АТАК ТИПА «ОТКАЗ В ОБСЛУЖИВАНИИ»
Одной из основных тенденций последних лет в сфере компьютерных преступлений является рост количества и сложности атак на доступность информации (ресурсов автоматизированной системы). Данные атаки образуют класс атак типа «отказ в обслуживании» (DoS-атаки), цель которых - довести систему до такого состояния, в котором её легитимные пользователи не смогут получить доступ к предоставляемым системой ресурсам (серверам, сервисам), либо этот доступ будет затруднён. Если атака выполняется одновременно с большого числа компьютеров, имеет место DDoS-атака (Distributed Denial of Service, распределённая атака типа «отказ в обслуживании»).
В целях минимизации последствий DDoS-атак, их обнаружение и классификация является крайне важной и вместе с тем сложной задачей. Традиционные механизмы обеспечения безопасности - межсетевые экраны и системы обнаружения вторжений - не являются эффективными средствами для обнаружения DDoS-атак и защиты от них [1]. Кроме того, существующие методы обнаружения DDoS-атак, позволяющие эффективно распознавать DDoS-атаки транспортного уровня (SYN-флуд, UDP-флуд и другие), малоэффективны для обнаружения низкоактивных DDoS-атак прикладного уровня («медленный» HTTP GET флуд и «медленный» HTTP POST флуд) [2].
Данные факты обуславливают необходимость разработки специализированной методики обнаружения низкоактивных распределенных атак прикладного уровня типа «отказ в обслуживании» в компьютерных сетях. Разрабатываемая методика обнаружения строится на основе оценки вероятности потерь пакетов или запросов прикладного уровня в компьютерной сети, при условии ее функционирования в стационарном режиме [2]. Достаточно часто для расчёта параметров потоков данных, а также для оценки вероятностей потерь пакетов в вычислительных сетях применяют математические модели в виде сетей массового обслуживания (СеМО). Использование СеМО в качестве модели вычислительной сети действительно дает возможность проводить анализ работы сети со сложной структурой и разнообразными сетевыми сервисами.
В ходе первого этапа исследований был разработан модуль программноаналитического комплекса, моделирующий СеМО, соответствующую исследуемой сети с целью определения вероятности потерь заявок (рис. 1). На вход системы поступает субстоха-стическая матрица, задающая топологию сети, интенсивности входных потоков и интенсивности обработки заявок в узлах.
Моделирующий модуль программного комплекса содержит объекты двух видов - источники заявок и узлы сети. Каждый источник заявок связан с одним из узлов СеМО. Источник заявок генерирует новые объекты заявок и добавляет их в очередь соответствующего узла. Начиная с момента запуска, узел проверяет наличие в очереди заявок. Если в очереди присутствует хотя бы одна заявка, она извлекается, после чего узел ожидает тайм-аут, имеющий экспоненциальное распределение, и далее случайным образом определяет заявку либо успешно обработанной, либо предпринимается попытка передать ее в очередь одного
296
из узлов. Заявка теряется, если при попытке добавления ее в очередь узла эта очередь полностью заполнена.
В процессе обработки заявки сохраняется вся информация о ее маршруте по сети массового обслуживания, что позволяет по завершению процесса моделирования точно рассчитать наблюдаемую частоту потери заявок. Функционирование объектов модели СеМО реа-
лизовано в параллельном режиме на основе библиотеки OpenMP, генерация псевдослучайных чисел осуществляется при помощи библиотеки Boost.
Поток
-Состояние
Планировшнк Синхронизирует -Время ожидания -История
-Вектор<Поток*> Потоки
-Вып. раб. цикл() -Ожидание() -Конец ожидания() -Пол. время работы() -Пол. историю()
-t-Создать поток(): Поток* +Вып. шаги раб. цикла() 1 1..*
0J
+Связ. узлы
1
Узел сети
■Идентификатор узла Интенсивность обр. заявок ■Размер очереди ■Текущая длина очереди ■Текущий таймаут Дек<3аявка*> Очередь Векторо Вер-ги переходов
+Вып. раб. цикл()
+Установить связь с узлом()
+Добавить заявку в очередь() ■(•Получить заявку из очерсди() +Получить длину очереди()
О „1
+Узел +Источник
Источник заявок
-Идентификатор -Интенсивность потока -Текущий таймаут
+Вып. раб, цикл()
' ТГ
I
Создаёт
+Обр. узел +3аявка в обр-ке
«enumeration» Состояние
В обработке Потеряна
Успешно обработана
Заявка
-Идентификатор
Состояние
История
+Пол. состояние()
+Уст. состоя н и е()
+Пол. иденгификаторО +Добавить узел в историю()
Рис. 1. UML-диаграмма классов моделирующего модуля
Рис. 2. UML-диаграмма деятельности комплекса обнаружения низкоактивных атак типа «отказ в обслуживании»
В ходе второго этапа исследований на основе разработанной методики был реализован программно-аналитический комплекс, предназначенный для обнаружения распределенных сетевых атак «отказ в обслуживании» (рис. 2).
Клиентский модуль программно-аналитического комплекса при запуске:
1. Получает список доступных в системе сетевых интерфейсов.
2. На каждом из интерфейсов запускается процесс захвата пакетов. Для этого фильтр пакетов конфигурируется таким образом, чтобы перехватывать фреймы Ethernet и протокола TCP с портами, соответствующими распространенным сетевым службам (NetBIOS, HTTP, FTP, SMTP, и т. д.)
3. Начинается отсчет времени. Когда время, прошедшее с начала захвата, превышает заданное значение
tmax , захват трафика останавливается. Подсчитывается объем исходящего
и входящего трафика, переданного другим узлам распределенной сети по контролируемым портам. Соответствующая информация передается на серверный модуль. Далее, начиная со второго шага, процесс повторяется.
Серверный модуль при запуске выполняет следующие действия:
1. Получает список доступных в системе сетевых адаптеров, и данные о них.
2. На каждом из адаптеров запускается процесс захвата пакетов. Для этого фильтр пакетов конфигурируется таким образом, чтобы перехватывать фреймы Ethernet, а вернее пакеты протокола TCP с портами, соответствующими распространенным сетевым службам.
3. Открывается порт для входящих соединений от клиентских модулей программноаналитического комплекса.
4. В случае входящего соединения от клиента:
a. Принимается информация о получателе трафика (пара адрес: порт) и количестве трафика, а также времени, за которое информация была собрана.
b. Для каждой пары адрес: порт в сообщении от клиента уточняется полученное ранее среднее значение объема трафика, переданного текущим сокетом другим узлам по формуле:
Av
к ,к ,t+t І 2 max
Avk ,к ,t ■t + Vk к ,t
І 2
І 2 max
Здесь:
1 2 max
Avk,k
- среднее значение объем трафика от сокета k1 сокету
k2 к моменту времени t +1
max
t - время, прошедшее с начала наблюдений до предыдущего получения информации от клиентской части
tmax - время, за которое клиентская часть собирает данные о трафике сокета Avk ,k ,t - средний объем трафика от сокета k1 сокету k2
за время, прошедшее с начала
1 2
наблюдений до предыдущего получения информации от клиента
k k ,t
V - объем трафика от сокета
1 2 max
k1 сокету k2 , прошедший за время tmax
c. используя информацию о среднем значении объёма трафика сокета k1 сокету k2 и
суммарному входящему трафику в сокет матрицы, задающей топологию сети.
k1 , оцениваются параметры субстохастической
5. Когда истекло время
t
max
и захват трафика останавливается, подводятся итоги по
объему трафика, отправленного текущим узлом другим узлам и характеристикам анализируемой сети массового обслуживания:
a. Используя субстохастическую матрицу, строится модель анализируемой СеМО, и оцениваются параметры стационарного режима.
b. Используя параметры стационарного режима, строится цепь Маркова, соответствующая пути заявки (пакета) по СеМО.
c. Рассчитывается эволюция цепи Маркова и оценивается вероятность потерь.
d. Далее, начиная с четвертого шага, процесс повторяется.
Если в некоторый момент времени оценочная вероятность потерь превысила некоторое, наперёд заданное администратором значение порога, система принимает вывод о реализации в распределенной компьютерной сети атаки типа «отказ в обслуживании».
Библиографический список
1. Лобанов, В. Е. Архитектура системы защиты Грид от атак типа «отказ в обслуживании» и «распределенный отказ в обслуживании» / В. Е. Лобанов, Б. Н. Оныкий, А. А. Стан-кевичус // Безопасность информационных технологий. - 2010. - № 3. - С. 136-139.
2. Щерба, М. В. Система анализа устойчивости распределенных компьютерных сетей к атакам на «отказ в обслуживании» / М. В. Щерба // Омский научный вестник. Серия Приборы, машины и технологии. - 2012. - №1(107). - С. 295-298.