РАЗДЕЛИМОСТЬ ЗАПРОСОВ ПРИ НАГРУЗОЧНОЙ АТАКЕ ВЕБ-СЕРВЕРОВ

реклама
РАЗДЕЛИМОСТЬ ЗАПРОСОВ ПРИ
НАГРУЗОЧНОЙ АТАКЕ ВЕБ-СЕРВЕРОВ
Пряхин В.Е., аспирант кафедры БИТ СПБНИУ ИТМО,
[email protected]
Зикратов И.А., д.т.н., профессор, заведующий кафедрой БИТ
СПБНИУ ИТМО, [email protected]
Аннотация
В работе рассмотрен проведенный эксперимент по
нагрузочной атаке работающего веб-сервиса, накопление
статистики во время штатной работы и во время атаки, анализ
этой статистики и выявление закономерностей, позволяющих
отделить легитимные запросы и атакующие. Графически
показана линейная разделимость запросов по весу
отдаваемого контента.
Введение
В настоящее время угроза распределенных атак в обслуживании вебсерверов стоит как никогда остро – простои сервисов, вызванные
распределенной нагрузочной атакой, наносят серьезный финансовый и
репутационный урон своим владельцам. Также, распределенные атаки в
обслуживании все чаще стали использоваться как средство конкурентной
борьбы, или способ достижения некоторых политических целей.
Цель работы – повышение эффективности распознавания нагрузочных
атак в обслуживании веб-серверов с помощью методов интеллектуального
анализа данных, выявление закономерностей в распределении запросов,
благодаря которым можно более точно отделять периоды атаки от
периодов штатной работы.
Идея работы заключается в том, что каждый веб-сервис имеет
уникальное распределение характерных запросов на отдачу контента
(тяжелого – большие изображения, медиа-контент, файлы; и легкого –
пользовательские скрипты, стили оформления, небольшие статичные
изображения), либо генерацию веб-страниц (нагружающих как сам вебсервер, так и сервер баз данных), что отражается на структуре входящего и
исходящего трафика, имеет уникальный, характерный для него тип
нагрузки и распределения процессорного времени и памяти по
выполняющимся процессам – вся эта статистика формирует уникальный
«отпечаток», который можно использовать как эталон для сравнения и
выявления аномалий, критических ситуаций, и причин, их вызывающих.
Исследование
В ходе работы был проведен подробный сбор статистики в условиях
реальной нагрузочной атаки на веб-сервис, работающий на кластере
серверов. Информация по каждому запросу добавлялась в базу данных и
включала такие параметры, как IP адрес, user-agent, тип запроса
(GET/POST), время запроса в виде UNIX Timestamp, адрес
страницы/файла на сервере (URI), и так далее. Также, такая же база
запросов была накоплена за время штатной работы сервиса в течение двух
месяцев.
За период штатной работы сервиса на графике количества запросов в
секунду отчетливо видны суточные колебания посещаемости (см. Рис. 1), а
среднее количество запросов в секунду не превышает 5.
Рисунок 1: Запросы в секунду во время штатной работы, масштаб 2
недели
С началом DDoS – атаки был зафиксирован (см. Рис. 2) резкий
многократный (на порядки) всплеск количества запросов к веб-сервису в
секунду, остававшийся практически на одном уровне в течение нескольких
дней, и плавно спадавший по окончании атаки, что говорит о
использовании P2P-ботнета, требующего времени на донесение сигнала о
конце атаки до всех участников.
Рисунок 2: Запросы в секунду во время атаки, масштаб – месяц
На графиках распределения запросов по объему отдаваемого контента
в килобайтах (легкий – скрипты, стили, небольшие картинки; тяжелый –
изображения, фотографии) во время штатной работы (см. Рис. 3) и
нагрузочной атаки (см. Рис. 4) можно заметить линейную разделимость
паразитных запросов и легитимных.
Также была выявлена характерная последовательность запросов для
легитимных пользователей – при загрузке страницы в определенном
порядке загружается статика, скрипты, и оформление, когда атакующие
запросы идут подряд и без закономерностей.
Соответственно, собрав статистику работы сервиса во время штатной
работы и построив распределение запросов, можно отсечь IP – адреса,
производящие DDoS – атаку, так как они не запрашивают все нужные
адреса, а только избранные – те, что либо больше всего нагружают кластер
на генерацию, либо те, что отдают наиболее тяжелый контент, реализуя
атаку на истощение пропускной способности канала.
Рисунок 3: Распределение количества запросов по весу контента
Рисунок 4: Распределение запросов по весу контента во время атаки,
отмечена возможная линейная разделимость
Выявленные в ходе работы закономерности и статистику запросов
можно использовать как входные данные для различных алгоритмов
интеллектуального анализа данных (Data mining), что повысит точность
определения нештатных ситуаций и аномалий трафика.
Заключение
В работе были рассмотрены закономерности, найденные в результате
проведения реального эксперимента и анализа накопленной статистики
запросов во время штатной работы сервиса и во время нагрузочной DDoS
– атаки, выявлена линейная разделимость легитимных запросов и
атакующих по весу контента, наличия, и последовательности запросов.
Литература
1.
К. В. Воронцов “Лекции по линейным алгоритмам
классификации” – 19 января 2009,
http://www.machinelearning.ru/wiki/images/6/68/voron-ML-Lin.pdf
Скачать