В данной статье Даниил Волков, ведущий эксперт бизнес-направления Data Science компании Neoflex, рассказывает о методах обнаружения сетевых аномалий, основанных на использовании энтропии – основной характеристики систем с точки зрения теории информации. Также он отмечает некоторые способы обнаружения аномалий временных рядов.
За последнее десятилетие большое количество исследований было сосредоточено на энтропии как мере «хаоса», присущего различным характеристикам сетевого трафика. В частности, энтропийные временные ряды оказались относительно хорошим методом обнаружения аномалий в сетевом трафике. К плюсам такого подхода относятся:
- Масштабируемость. Предложенные методы способны использовать агрегированные данные (например, записи Netflow), что делает возможным использование в сколь угодно сложных и высоконагруженных сетях.
- Чувствительность к изменениям распределений характеристик трафика. Энтропийный подход помогает среагировать на аномалию, и в тех случаях, когда такие классические характеристики трафика, как packets rate (rps) не обнаруживают значимого аномального поведения (т.о., способен выявлять атаки с низким относительным packets rate).
- Легкость реализации и доступная интерпретация. Быстрая готовность к работе, отсутствие необходимости в данных для обучения и способность находить атаки zero-day.
Сетевые потоки
Итак, предлагаемые системы обнаружения аномалий на основе понятия «энтропия» анализируют сетевые потоки, а не отдельные сетевые пакеты. Определим сетевые потоки (далее просто потоки) как однонаправленную метаинформацию о сетевых пакетах, имеющих одинаковые исходный и целевой IP-адрес и порты, а также тип протокола IP. Важно отметить, что вся сетевая активность в OSI уровня 3 и выше сводится к потокам, т.е. это не только TCP- соединения, но и протоколы без сохранения состояния, такие как UDP и ICMP. Преимущества использования концепции потоков:
- Они очень легкие с точки зрения использования и хранения информации, что облегчает анализ;
- Вызывают меньше проблем с конфиденциальностью и персональными данными;
- Легко наладить доступ к необходимой информации в сети, например, в виде Cisco NetFlow, sflow или даже IPFIX (по вкусу).
Энтропия
Понятия энтропии в статистической физике и теории информации довольно близки друг другу. Кроме того, для нас будет фактом не последней важности при использовании именно энтропии как меры распределения характеристик трафика – то, что энтропия также служит мерой близости состояния системы к равновесному (в теории неравновесных процессов, к которым можно относить и обмен сетевым трафиком). Как многие помнят, классическая энтропия Шеннона определяется как:
где – вероятность -го состояния системы, – количество всех возможных состояний системы. Чтобы облегчить интерпретацию результата и исключить влияние сезонных факторов, изменяющих n, будем использовать в дальнейшем нормализованную энтропию Шеннона.
Атрибуты сетевого трафика и энтропийные временные ряды
Теперь осталось пояснить, как именно мы будем вычислять для различных характеристик сетевого трафика, и главное – для каких. Различные авторы предлагают использовать самые различные характеристики, однако практически во всех работах остаётся следующий основной набор:
- Source IP
- Destination IP
- Source port
- Destination port.
Его предлагается иногда расширять с помощью других характеристик, например, Flow records или протокола IP для магистральных потоков.
Мы будем использовать временные ряды величины , вычисляемой для этих характеристик трафика, внутри временных окон конечной длины. Характерные длины окон (можно использовать перекрывающиеся, скользящие) – это около 5-10 минут, из соображений того, что характерная продолжительность атаки на сетевую инфраструктуру составляет десятки минут. А также это необходимость в достаточно большом количестве накопленной статистики. Итак, если нас интересует энтропия для IP-адреса источника, тогда равно количеству уникальных IP-адресов в окне, а что касается расчета вероятностей, то подавляющее большинство авторов используют количество пакетов с данной характеристикой как меру вероятности такого пакета в сети (что, в общем, логично, однако можно использовать и количество байт, и количество потоков). Например, если у нас было 100 пакетов для 1.1.1.1, 100 пакетов для 1.1.1.2 и 300 пакетов для 2.2.2.2, то:
Далее мы обсудим атрибуты и когда их имеет смысл рассматривать при интересующих типах атак.
В большинстве исследований, связанных с энтропией и сетевыми аномалиями, исследователи сосредоточились на IP-адресе источника и, соответственно, его распределении и энтропии. Это довольно хороший выбор.
В исследовании [Sharma et al. (2015)] авторы экспериментировали с разными типами атак и проанализировали полезность различных атрибутов для обнаружения этих атак с помощью энтропийного подхода. А именно, был использован датасет NUST, типы атак: TCP-SYN флуд, UDP флуд и Smurf. Для анализа было взято порядка 100 тысяч пакетов нормального трафика и 10 тысяч пакетов атакованного трафика. Атрибутами являлись Source IP, Destination IP, Source Port and Destination Port (стандартные), но также рассматривались Flags (распределение по TCP-флагам), Length (распределение по длинам пакетов), Protocol (по протоколам).
В результате выяснилось, что полезно использовать в системах обнаружения аномалий на основе энтропийного подхода также и вышеупомянутые, дополнительные к стандартным, атрибуты, такие как длина пакета (очень хорошие результаты в случае TCP-SYN атак). Использовать энтропию по протоколам относительно полезно, так как значимые результаты это принесло только в специфических случаях наподобие UDP флуда, но такие типы атак легко могут быть обнаружены совсем традиционными методами слежения за трафиком.
Алгоритм обнаружения сетевых аномалий на основе энтропийных временных рядов
Данный метод представляет обобщение предлагаемого авторами [Winter (2011)]. Обобщения затрагивают в основном то, какие атрибуты использовать для построения системы временных рядов, а также методы выявления аномалий конкретных временных рядов.
Алгоритм
- Выбираем, какие атрибуты будут использованы для построения энтропий- ных временных рядов. В [Winter (2011)] это стандартная четверка: Src-Dst IP/Port, плюс распределение по flow records (1 flow records = Src IP + Dst IP + Src Port + Dst Port + IP Protocol);
- Строим временные ряды для нормализованных энтропий Шеннона! Необходимо накопить некоторую статистику за период, покрывающий основные сезонные факторы сети. В большинстве случаев можно ограничиться сутками. Обозначим множество рядов как ;
- Теперь для каждого временного ряда известна дисперсия за опорный интервал (так мы будем называть интервал для расчета дисперсии временного ряда в недавнем прошлом). Начиная со следующих моментов времени, наша система готова к обнаружению аномалий. – стандартное отклонение -го временного ряда из ;
- Основная идея обнаружения резких изменений состоит в том, чтобы постоянно проводить краткосрочные прогнозы и определять разницу между прогнозом и фактическим значением. Winter (2011) предлагают метод простого экспоненциального сглаживания, однако вам ничего не мешает взять что-то более сложное (и точное), от ARIMA до LSTM-сетей.
Для каждого определяем ошибку прогноза на интересующий нас момент :
5. Однако определенные ошибки предсказаний не равны по своей значимости, потому что базовые временные ряды имеют разные дисперсии. По этой причине мы нормализуем ошибки предсказания относительно дисперсии соответствующих временных рядов, умножая на весовой коэффициент:
6. Чтобы упростить процесс детекции аномалий, введем совокупную характеристику «anomaly score»:
7. Если говорим, что зафиксирована некая аномалия сетевого трафика. Пороговая
величина определяется эмпирически в зависимости от количества базовых временных рядов , а также требований к чувствительности детектора.
О настройке параметров
Для нашего алгоритма необходимо установить несколько параметров. Каждая комбинация параметров связана с компромиссом: высокий уровень обнаружения за счет множества ложных срабатываний или наоборот.
- Длина скользящего окна. Здесь речь идет о размере интервала, на котором вычисляются точечные значения энтропийных временных рядов. Маленькие окна очень чувствительны, и с одной стороны, это увеличит скорость обнаружения, с другой – частота ложных тревог также увеличится. Большие окна сравнительно нечувствительны, что приводит к обратному эффекту. В качестве компромисса используют окна от 5 до 10 минут;
- Размер перекрытия скользящих окон. Перекрытие скользящих окон приводит к более детализированным временным рядам. Мы хотим заставить нашу систему как можно быстрее реагировать на резкие изменения, и поэтому мы выбрали относительное перекрытие в 80%;
- Размер скользящего окна для расчета дисперсий. Мы решили установить размер скользящего окна для расчета стандартного отклонения до 24 часов. Чаще всего такое скользящее окно охватывает весь сезонный цикл. В остальных случаях мы рекомендуем выбирать окна, кратные 24 часам. Альтернативным естественным выбором будет 7 дней.
Дальнейшие модификации
Bhuyan et al. (2014) исследовали совокупность информационных метрик для пригодности к выявлению аномалий аналогичными методами. Помимо вышеупомянутой и всем известной энтропии Шеннона (Shannon entropy), были опробованы Hartley entropy, Renyi’s entropy и Renyi’s generalized entropy. Это обобщения энтропии Шеннона, определяемые следующей формулой:
Здесь . В качестве упражнения читателю предоставляется возможность убедиться, что при стремится к энтропии Шеннона. Помимо прочего, авторы использовали широко распространенное предположение о том, что вредоносный трафик подчиняется распределению Пуассона, а легитимный трафик – гауссовскому распределению.
Авторы приходят к следующим заключениям:
- важно использовать минимальное количество атрибутов трафика. Чаще всего это будут IP-адреса, либо длины пакетов;
- информационная энтропия дает лучший результат в обнаружении низкоскоростных атак для больших значений .
Результаты
Поскольку у Winter (2011) не было реальных данных для валидации, они смоделировали и внедрили синтетические аномалии в исходный набор данных. Для этого использовалась модифицированная версия инструмента FLAME Brauckhoff et al. (2008), который облегчает введение искусственных аномалий в потоковые данные. Авторы реализовали два таких «генератора потока»:
- HTTP-flood: генерируемые потоки представляют собой искусственные HTTP-запросы. Атака длилась 11 минут с общей сложности 500 распределенных хостов «злоумышленников». Жертва атаки была единственным веб-сервером. Количество потоков, генерируемых атакующими представляет собой нормальное распределение, поскольку не все атакующие имеют одну и ту же пропускную способность. Веб-сервер находился под очень высокой нагрузкой и мог реагировать только на небольшую часть HTTP-запросов. В результате атаки было получено 220,000 потоков, которые добавили в исходный набор данных (С);
- Горизонтальное сканирование сети: целью этого генератора было получение потоков, которые представляют собой крупномасштабное горизонтальное сканирование сети. Злоумышленник использовал один IP-адрес для сканирования всей /16-сети, которая состоит из 65 534 действительных IP-адресов. Целью сканирования было найти открытые TCP-порты 21, то есть FTP. Злоумышленник не использовал такие методы обфускации, как задержки между сканированием. В результате сканирования было получено 67000 потоков. Обратите внимание, что эпидемии червей очень похожи на такое сканирование сети (D).
На рисунке ниже показан энтропийный анализ за весь день 28 октября. Верхняя диаграмма – исходный набор данных, тогда как нижняя диаграмма содержит наши добавленные аномалии (C и D). Опять же, обе диаграммы содержат временные ряды для всех пяти атрибутов. Черный временной ряд для является наиболее интересным. На обеих диаграммах мы выделили особенно сильные аномалии, и обозначили их от A до D. A и B представляют собой «естественные» аномалии, которые уже присутствовали в исходном наборе данных.
В качестве иллюстрации того, как это всё может остаться незамеченными традиционными средствами мониторинга: на рисунке ниже показаны три популярных статистики трафика: количество байтов, пакетов и потоков в минуту для того же трафика, что и в предыдущем примере. Аномалии (обозначенные от A до D) исчезают в шуме.
Аналогичный эксперимент был осуществлен в Neoflex, только аномалии «естественные», т.е. уже находились в данных заказчика.
Для сравнения: стандартные панели мониторинга сетевого трафика для маршрутизаторов за тот же самый период:
Видим, что довольно серьезные отклонения в распределении характеристик сетевого трафика остались незаметными через стандартные метрики. О том, как на основании полученных сведений выявлять причины этих аномалий, нужно говорить в отдельном разговоре. Упомянем, что поиск группы значений характеристик, значительно изменивших энтропию, сводится к исследованию динамики распределения этих самых характеристик, и в простых случаях может быть осуществлен обычной сортировкой по вероятностям .
Подводя итоги
Итак, мы реализовали и опробовали алгоритм обнаружения широкого класса аномалий в сети через энтропийные временные ряды. Такие атаки, как различного рода флуд, черви и сканирование, часто приводят к такого рода аномалиям. Основная идея алгоритма состоит в том, чтобы постоянно проводить краткосрочные прогнозы и определять разницу между прогнозами и фактически наблюдаемым значением энтропии. Энтропия служит индикатором равновесности процесса. Так, резкие изменения энтропии свидетельствуют о качественном изменении структуры (через изменения распределений характеристик) системы. Важно отметить, что атаки всё же должны достичь определенного масштаба, чтобы их можно было обнаружить. Совсем мелкомасштабные атаки могут быть невидимыми на высокоскоростном сетевом соединении. Мы считаем, что алгоритмы подобного вида – ценный инструмент для сетевых операторов и отделов информационной безопасности различного рода предприятий. Его можно легко настроить, быстро развернуть и не нужны данные для обучения.
Источники информации
Philipp Winter, Harald Lampesberger, Markus Zeilinger, and Eckehard Hermann 2011. “On Detecting Abrupt Changes in Network Entropy Time Series”
Sidharth Sharma, Santosh Kumar Sahu, Sanjay Kumar Jena 2015. “On Selection of Attributes for Entropy Based Detection of DDoS”
Monowar H. Bhuyan, D. K. Bhattacharyya, J. K. Kalita. “Information Metrics for Low-rate DDoS Attack Detection: A Comparative Evaluation”
Brauckhoff, D., Wagner, A., May, M.: “FLAME: A Flow-Level Anomaly Modeling Engine”. In: Proc. of the conference on Cyber security experimentation and test. pp. 1 – 6. USENIX Association, Berkeley, CA, USA (2008)
Shaman_RSHU
Существует ли практическая реализация выше приведенных выкладок?
neoflex Автор
Конечно, существует, при этом довольно несложная: мы использовали Python и его распространенные библиотеки Pandas, NumPy, Statsmodels.