Раннее обнаружение ddos-нападений по статистическим методам с учетом сезонности
Раннее обнаружение ddos-нападений по статистическим методам с учетом сезонности
Early detection of ddos-attacks by statistical methods given seasonality
Автор: Булатов Даурен Абаевич
Bulatov Dauren Abaevich
Аннотация. DDOS-атаки. Распределенные атаки типа «отказ в обслуживании» продолжают оставаться одной из самых важных угроз в сети. Атаки этого типа могут быстро истощить сетевые ресурсы или серверные мощности, что приведет к невозможности получить доступ к ресурсу и приведет к ряду негативных последствий: упущенная выгода, невозможность использования услуг и совершение различных транзакций и т.д.
Annotation. DDOS attacks. Distributed denial-of-service attacks continue to be one of the most important threats on the network. Attacks of this type can quickly deplete network resources or server capacity, which will lead to the inability to access the resource and lead to a number of negative consequences: lost profits, inability to use services and make various transactions, etc.
Ключевые слова: DDOS-атаки, ботнет, стандартное отклонение, статистический анализ.
Keywords: DDOS attacks, botnet, standard deviation, statistical analysis.
Тематическая рубрика: IT-технологии и цифровые процессы.
В DDOS-атаке, так называемый ботнет, или сеть зомби, действует как злоумышленник. Сеть зомби может насчитывать от нескольких десятков до тысяч хостов. Обычно это нейтральные компьютеры, которые по какой-то причине (отсутствие брандмауэра, устаревшие антивирусные базы и т. Д.) Были заражены вредоносным ПО. Программы, работающие в фоновом режиме, постоянно отправляют запросы на атакованный сервер, тем самым отключая его.
Сейчас нет универсального инструмента для противодействия DDOS-атакам. Даже крупные компании, такие как Microsoft, eBay, Amazon, Yahoo, страдают от DDOS-атак и не всегда могут с ними справиться.
Для противодействия распределенным атакам типа «отказ в обслуживании» требуются две основные задачи.
1. Диагностируйте DDOS-атаку на самых ранних стадиях. Чем раньше будет обнаружена атака DDOS, тем раньше сетевой администратор сможет присоединиться к игре, и тем скорее будет возможность запустить события анти-DDOS. Кроме того, в случае обнаружения DDOS-атаки можно будет, не дожидаясь ответа администратора, автоматически запускать контрмеры: использовать резервные каналы связи, включать фильтры и т. Д.
2. Вторая задача связана с разделением общего потока трафика на вредоносный и регулярный. Поняв, какие клиентские запросы являются результатом атаки DDOS, вы можете создать соответствующие правила для брандмауэра или ACL-правила для маршрутизатора или, в случае крупномасштабной атаки, передать эти данные вышестоящим маршрутизаторам.
Первая из этих задач довольно новая. Несколько лет назад главной задачей была сортировка трафика. Однако злоумышленники постоянно совершенствуют методы проведения атак такого типа. Современные атаки сложны и имеют подготовительный этап. На подготовительном этапе злоумышленник пытается определить наиболее уязвимые места для атаки. Например, для веб-сервера такими местами могут быть определенные сценарии, которые выполняют большое количество запросов к базе данных или чрезмерно используют процессорное время. Чтобы определить эти места, злоумышленник может выполнить серию мини-DDOS-атак на различные сценарии, одновременно отслеживая время отклика сервера и время выполнения сценария. Обнаружив уязвимость, злоумышленник может парализовать сервер, используя меньший ботнет. С другой стороны, если диагностировать атаку можно уже на этом этапе, можно будет использовать автоматические средства предотвращения атаки, а системный администратор успеет подготовить - оптимизировать скрипты, которые перегружают ресурсы компьютера, создать фильтры , так далее.
Различные методы и подходы используются для обнаружения DDOS-атак и создания специальных фильтров для блокировки вредоносного трафика.
Среди основных методов можно выделить методы, основанные на статистическом анализе. Это количественный анализ, анализ стандартных отклонений, кластерный анализ и т. Д. Все эти виды анализа позволяют оценивать различные параметры сетевой активности и диагностировать начало атаки или определять вредоносный трафик.
Основными параметрами, по которым проводится анализ, могут быть:
• Количество запросов за определенный период.
• Скорость получения запросов.
• Количество запросов из определенного источника или из определенной сети.
• Количество запросов к определенному месту назначения (для веб-сервера это конкретный сценарий).
• Время между запросами.
• Другие различные параметры сетевой активности.
Используя стандартное отклонение, вы можете рассчитать допустимый предел для одного из параметров сетевой активности, например, для количества запросов за определенный период времени. Если граница нарушена, это будет свидетельством начала атаки. Поскольку нагрузка на сетевой ресурс также может быть разной в разное время, для раннего обнаружения атаки необходим постоянный мониторинг и пересчет границ для каждого временного шага. Постоянный мониторинг позволяет определить атаку, если она начинается в период небольшой активности в сети или злоумышленник ищет потенциально уязвимые места на сервере, проводя атаки mini-DDOS и исследуя поведение сервера. Если верхняя граница установлена строго и злоумышленник проводит мини-атаки в течение периода наименьшей сетевой активности, он не может нарушить указанную границу и его действия не будут обнаружены. Атака будет обнаружена, когда злоумышленник обнаружит потенциальную уязвимость и атакует ее. Постоянный мониторинг активности и пересчет допустимых границ избегает этого. В период меньшей сетевой активности верхняя граница будет уменьшаться. Однако этот метод имеет несколько недостатков.
Во-первых, атакующий может начать атаку постепенно. Показатели активности на каждом шаге будут постепенно увеличиваться, но в то же время они не будут нарушать границы. Поскольку последние n интервалов используются при расчете стандартного отклонения, включая те, которые уже содержат данные атаки, злоумышленник, постепенно увеличивая интенсивность атаки, сдвинет границу назад.
Во-вторых, выбор размера периода n для расчета стандартного отклонения не является однозначным.
Если n слишком велико, результирующая граница будет слишком высокой, если используется небольшое значение n, то возможны частые поездки. В этой ситуации не удастся выбрать оптимальное значение n, поскольку любое его значение может охватывать два разных периода. Например, даже небольшое значение n, рассчитанное в начале рабочего дня, будет собирать данные как из ночного периода, связанного с низкой активностью, так и из дневного периода, который характеризуется большей нагрузкой на сетевые ресурсы.
Чтобы избежать ложных срабатываний, связанных с началом рабочего дня, вам нужно будет использовать значение n, которое будет содержать данные за несколько дней. Или управляйте несколькими периодами времени одновременно - при срабатывании с минутными интервалами учитывайте ежечасные или ежедневные периоды. Но это в свою очередь приведет к снижению точности, а атака будет определена поздно.
В качестве гипотезы можно предположить, что учет различных периодов активности и сравнение периодов, похожих друг на друга, могут дать более высокую точность в этих случаях.
Пусть xi будет количеством запросов к серверу за один час. Сервер испытывает стабильную ежедневную нагрузку. Количество ежедневных периодов n. Тогда запросы к серверу можно записать в виде матрицы:
x1 1,x1 1,x1 1… x1 1,
x1 1,x1 1,x1 1…x1 1,
……………………
x1 1,x1 1,x1 1… x1 1.
Каждая строка матрицы включает ежедневные данные о количестве запросов. Первая строка отражает данные текущего дня; в связи с этим он может быть не полностью заполнен. Расчет стандартного отклонения в этом случае может быть выполнен двумя способами:
• обычным способом, принимая во внимание определенное количество недавних значений, например, так:
x2 1, x22, x23 … x224, x1 1, x1 2, x1 3, x1 4
Значения берутся из строк матрицы.
• Сезонно скорректированы. Расчет ведется по столбцам:
xn1 … x21, x1 1
Если мы находимся в i-м периоде, мы можем определить границу для (i + 1) -го периода, используя значение (i + 1) -го столбца. Если сетевой ресурс проверяет нагрузку, связанную с недельными или дневными циклами, необходимо исключить строки, которые соответствуют торжественным и выходным дням. Или, в том числе включая использование только любой 7-й строки, то есть, связывать, например, только только сцену с 11:00 до 12:00, для каждого понедельника ...
Литература:
Benken E.S.PHP, MySQL, XML. Programming for the Internet. – : BHV-Petersburg, 2011. – С. 336.