Назад в библиотеку

Раннее обнаружение DDOS-атак статистическими методами при учете сезонности

Авторы: Терновой О.С., Шатохин А.С.
Источник: Доклады ТУСУРа, № 1 (25), часть 1, июнь 2012, с. 104-107

DDOS-атаки – распределенные атаки, направленные на отказ в обслуживании, продолжают ос- таваться одной из важнейших угроз в сети. Атаки такого типа могут быстро истощить сетевые ре- сурсы или мощности сервера, что приведет к невозможности получить доступ к ресурсу и вызовет серию негативных последствий: упущенная прибыль, невозможность воспользоваться услугами и произвести различные транзакции и т.д. [1].

Совсем недавно абсолютное большинство корпоративных и университетских сетей состояло из небольшой группы хостов и сервера, осуществляющего доступ к глобальной сети и предоставляющий все Интернет-сервисы. Типичным современным вариантом является разветвленная инфраструктура с множеством сетевого активного оборудования, объединяющего сотни и тысячи хостов, разнесенных территориально [1]. Практически экспоненциально продолжает увеличиваться число пользователей, работающих как в глобальной сети, так и в корпоративных и университетских сетях [2]. Появление корпоративных сетей глобального масштаба ознаменовало собой новый этап в развитии сетевой инфраструктуры, который настоятельно требует существенных качественных изменений в подходе к управлению перегрузками и повышению производительности Интернет- ориентированной сетевой инфраструктуры [3].

1. Диагностировать DDOS-атаку на самых ранних стадиях. Чем раньше будет обнаружена DDOS-атака, тем раньше сможет включиться в игру сетевой администратор и тем раньше можно будет начать проводить антиDDOS-мероприятия. Кроме того, при обнаружении DDOS-атаки можно будет, не дожидаясь реагирования администратора, автоматически запустить мероприятия по противодействию: задействовать резервные каналы связи, включить фильтры и т.д.

2. Вторая задача связана с разделением общего потока трафика на вредоносный и обычный. Поняв, какие из клиентских запросов являются результатом DDOS-атаки, можно будет создать соответствующие правила для межсетевого экрана или ACL правила для маршрутизатора или же, в случае масштабной атаки, передать эти данные на вышестоящие маршрутизаторы.

Первая из этих задач является достаточно новой. Несколько лет назад основной являлась имен- но задача по «сортировке» трафика. Однако злоумышленники постоянно совершенствуют способы проведения атак такого типа. И современные атаки отличаются сложностью и наличием этапа под- готовки. Во время подготовительного этапа злоумышленник пытается выявить наиболее уязвимые для атаки места. Например, для web-сервера такими местами могут быть определенные скрипты, которые совершают большое количество запросов к базе данных или чрезмерно используют про- цессорное время. Для выявления этих мест злоумышленник может совершать серию мини-DDOS- атак на различные скрипты, отслеживая при этом время ответа сервера и время выполнения скрип- та. Найдя уязвимое место, злоумышленник сможет парализовать работу сервера, используя бот-сеть меньшего размера. С другой стороны, если диагностировать атаку удастся уже на этом этапе, мож- но будет задействовать автоматические средства предотвращения атаки, а у системного администра- тора будет время подготовиться – оптимизировать скрипты, чрезмерно загружающие ресурсы ком- пьютера, создать фильтры и т.д. Для обнаружения DDOS-атак и создания специальных фильтров для отсечения вредоносного трафика применяются разнообразные методы и подходы.

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

С помощью среднеквадратичного отклонения можно рассчитать допустимую границу для одного из параметров сетевой активности, например, для количества запросов за какой-то период времени. В случае если граница будет нарушена, это станет свидетельством начала атаки. Так как в разное время нагрузка на сетевой ресурс, так же может быть разной, то для раннего обнаружения атаки необходим постоянный мониторинг и пересчет границ для каждого временного шага. Постоянный мониторинг позволит определить атаку, если она начнется в период небольшой сетевой активности, или, если злоумышленник ищет потенциально уязвимые места на сервере, проводя мини-DDOS- атаки и изучая поведения сервера. В случае если верхняя граница задана строго и злоумышленник проводит мини-атаки в период наименьшей сетевой активности, он может не нарушать заданную границу, и его действия будут не обнаружены. Атака будет обнаружена тогда, когда злоумышленник найдет потенциально уязвимое место, и предпримет на него атаку. Постоянный мониторинг активности и перерасчет допустимых границ позволяет этого избежать. В период меньшей сетевой активности верхняя граница снизится. Однако и этот метод имеет ряд минусов.

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

Во-вторых, выбор размера периода n для расчета среднеквадратичного отклонения, не является однозначным.

Если n будет слишком велико, полученная граница будет слишком высоко, если используется малое значение n, то возможны частые срабатывания. Выбрать же оптимально значение n в этой ситуации будет невозможно, так как любое его значение может захватывать два разных периода. Например, даже малое значение n, рассчитываемое в начале рабочего дня, будет захватывать данные и ночного периода, связанного с низкой активностью, и дневного периода, который характеризуется большей нагрузкой на сетевые ресурсы.

Для того чтобы предотвратить ложное срабатывание, связанное с началом рабочего дня, потребуется использовать такое значение n, в котором будут данные за несколько дней. Либо контролировать сразу несколько временных периодов – при срабатывании на минутных интервалах, рассмотреть часовые или суточные периоды. Но это в свою очередь приведет к уменьшению точности, и атака будет определена с опозданием [4].

В качестве гипотезы можно предположить, что более высокую точность в этих случаях может дать учет различных периодов активности и сравнение сходных между собой периодов. Пусть xi количество запросов к серверу за один час. Сервер испытывает стабильную суточную нагрузку. Количество суточных периодов n. Тогда запросы к серверу можно записать в виде матрицы:

Каждая строка матрицы включает в себя суточные данные о количестве запросов. Первая стро- ка отражает данные текущих суток, в этой связи она может быть заполнена не до конца. Расчет среднеквадратичного отклонения в этом случае может проводиться двумя способами [5]: