РАЗДЕЛИМОСТЬ ЗАПРОСОВ ПРИ НАГРУЗОЧНОЙ АТАКЕ ВЕБ-СЕРВЕРОВ Пряхин В.Е., аспирант кафедры БИТ СПБНИУ ИТМО, [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