Привет, Хабр! Представляю вашему вниманию перевод статьи "Intrusion Detection using Sequential Hybrid Model" авторов Aditya Pandey, Abhishek Sinha, Aishwarya PS.
Задача своевременного обнаружения атак на сеть всегда была актуальной для специалистов по информационной безопасности, поскольку это первый шаг к принятию каких-либо защитных мер. В этой статье авторы представили подход, комбинирующий в себе использование нескольких различных алгоритмов машинного обучения для обнаружения и классификации злонамеренных соединений.
Атаки
Мы будем классифицировать атаки на 4 группы:
- DOS — Denial-of-Service — вид атаки, при котором злоумышленник пытается сделать ресурс недоступным для конечных пользователей, постоянно или на протяжении некоторого времени нарушая работу сервисов хоста, на котором расположен сервис.
- U2R — повышение привилегий. Злоумышленник входит в систему как обычный пользователь и пытается использовать уязвимости в её компонентах для повышения своего уровня доступа.
- R2L — несанкционированный доступ с удалённой машины. Например, при помощи подбора пароля и получения доступа к файлам внутри локальной файловой системы: ftp_write->gues_password->imap.
- Probe — зондирование. Зондирование — атака, в ходе которой злоумышленник исследует машину или сетевое устройство на предмет слабых мест или уязвимостей, которые далее могут быть использованы для компрометации системы. Эта техника широко используется, например, при сборе большого количества данных для последующего автоматического анализа.
Важность обнаружения атак
Обнаружение атак — важная проблема для государственных и частных пользователей. Систему обнаружения атак можно рассматривать как физическое устройство или софт, который мониторит поведение пользователей в поиске подозрительных действий и вовремя информирует о них администратора. Обычно такие системы используются в дополнение к другим методам защиты вроде файрвола, шифрования и т.д.
Существующие решения
Существующие решения по большей части относятся к одному из двух типов: обнаружение злоупотреблений (misuse detection) и обнаружение аномалий (anomaly detection).
Вкратце принципы работы этих техник могут быть описаны следующим образом:
Misuse Detection — “Я знаю, какие события ненормальны, все остальные нормальны”.
Anomaly Detection — “Это событие не похоже на те, что я знаю, значит оно ненормально”
К достоинствам misuse detection можно отнести хорошую точность при обнаружении известных атак и их разновидностей. К минусам — такой подход пропустит любую неизвестную атаку.
Anomaly detection способен обнаруживать неизвестные ранее атаки, но подвержен обратной проблеме: любое нехарактерное и неизвестное алгоритму поведение системы будет классифицировано как атака.
Статья “Artificial Neural Networks for Misuse Detection” рассказывает про преимущества использования нейросети перед моделью, основанной на некотором экспертном знании. Кроме того, в статье рассказывается про различные методы, в которых нейронные сети используются для получения более высокой точности. По ссылке [9] можно прочитать про основные техники применения misuse detection, такие как:
- Экспертные системы. В каком-то смысле представляют собой набор if-else правил.
- Интерпретационные системы. Сочетают в себе поиск злоупотреблений и экспертное знание, используемое для обоснования происходящих событий.
- Подход, представляющий атаки как последовательность смены состояний наблюдаемой системы.
- Подход, наблюдающий взаимодействие пользователя с системой: например ищущий паттерны в последовательностях нажимаемых пользователем клавиш.
[9] описывает модель поиска закономерностей с нейронной сетью для их реализации поиска злоупотреблений. Затем производится поиск атак при помощи нечёткой логики и простейших генетических алгоритмов. По ссылкам [1]-[7] можно прочесть еще про несколько различных подходов.
Постановка задачи
Наша цель состоит в том, что бы обнаружить возможные атаки, то есть отличать “хорошие” и “плохие” (совершенные злоумышлком) соединения и быть способными классифицировать “плохие” соединения. Для демонстрации подхода мы использовали kkdCup датасет, в своё время представленный на ежегодном соревновании по анализу данных KKD.
Датасет сам по себе состоит из 42 признаков, используемых в различных моделях в зависимости от актуальности и важности и включает в себя примерно 1,500,000 записей.
Данные немного подчищены и обработаны: в первую очередь отметим, что мы взяли примерно 10% от всех данных, так как для работы с полным объемом не хватало вычислительной мощности, кроме того был произведен undersampling двух наиболее распространенных классов (см. таблицу 1), к некоторым категориальным строковым признакам применён one hot encoding — метод кодирующий строковые категориальные признаки. Также некоторые параметры (‘flag’ и ‘services’) были выкинуты как шумовые.
Подход
Так как каждый метод поиска злоупотреблений и аномалий сам по себе имеет множество проблем, мы приняли решение использовать гибридный подход. Модели были скомбинированы последовательно, то есть за поиском аномалий производился поиск злоупотреблений. Использование misuse detection даёт несколько преимуществ. Во первых, он выступает как контролирующая модель, которая проверяет, действительно ли найденная аномалия — атака, это позволяет нам снизить число ложных срабатываний, генерируемое моделью поиска аномалий. Кроме того, misuse detection позволяет нам классифицировать атаки, относя их к одной из групп, в зависимости от картины их поведения:
Модели
Для поиска аномалий мы используем две модели:
- Random Forest Model
- Neural Network Model
Прогнав эти две модели независимо, мы берем все объекты, которые посчитала аномальными хотя бы одна из двух. Такой подход позволяет снизить долю false negatives — пропущенных атак.
Подозрительные на аномальность объекты передаются misuse clustering модели, которая в свою очередь избавляется от false positives — ложных срабатываний, которые, как уже упоминалось, составляют проблему в anomaly detection моделях.
Для обнаружения злоупотреблений мы использовали кластеризационную модель, основанную на методе К средних (KMeans).
Таким образом, использование модели обнаружения злоупотреблений после модели поиска аномалий позволяет снизить число ложных срабатываний.
Компоненты системы
Теперь более подробно опишем использованные в системе модели:
Нейронная сеть
Была использована рекуррентная нейронная сеть с двумя скрытыми уровнями. Нейросеть состоит из 41 входной ноды и 5 выходных нод. 41 входная нода соотносится с признаками в датасете, а 5 выходных относят подключение к одному из типов: нормальное, u2r, rtf, dos, probe.
После оценки качества классификации при помощи 2ух-фолдной кросс-валидации была получена точность в 99.57%. Уменьшение числа скрытых уровней в сети было сделано для уменьшения времени обучения модели и оказало незначительное влияние на точность классификации.
Random Forest
Случайный лес — ансамбль решающих деревьев. Вывод, полученный от модели, основанной на случайном лесе по сути является комбинацией выводов всех деревьев, обученных на случайных подборках всей выборки.
Разные вариации случайных лесов можно применять как в anomaly detection, так и в misuse detection. Кроме того, зачастую хорошие результаты даёт гибридный подход — использование его в комбинации с другими алгоритмами. Впрочем, этот метод имеет множество ограничений:
- Доля “плохих подключений” среди всех должна быть очень мала. Выбросы удастся обнаружить, только если обычно фиксируется нормальное поведение системы.
- Атака, сопровождающаяся большим количеством соединений без предварительной фильтрации может привести как к замедлению как поиска аномалий, так и всей системы в целом.
- Некоторые атаки, удачно замаскировавшиеся под нормальное поведение системы могут не быть обнаружены при помощи такого похода.
В нашей модели мы использовали 100 деревьев для классификации подключений между 5 классами.
Воспользовавшись параметром importance, мы выкинули все малозначимые признаки, что позволило ускорить обучение.
Изначально было взято 1000 деревьев, но потом выяснилось, что можно использовать 100 без ущерба для качества классификации.
Misuse Clustering
На этой ступени пайплайна мы использовали метод К-Средних. При кластеризации методом K средних, элемент относится к тому или иному классу исходя из расстояния (по выбранной метрике) от элемента до центров классов.
Если в процессе поиска аномалий произошло ложное срабатывание и элемент был ошибочно определен как попытка атаки, то misusing clustering отнесет его к “нормальному” классу. Таким образом последняя ступень пайплайна снижает долю ложных срабатываний модели.
Обсуждение результатов
Поскольку в работе использовался искусственный датасет и классы не были сбалансированы (доля "плохих" подключений в датасете сильно меньше, чем "хороших"), мы получили очень большую долю правильных ответов. В результате, при большой точности классификации precision (доля правильных классификаций от всех) и recall (доля элементов, отнесенных системой к классу от всех элементов на самом деле принадлежащих классу) метрики не так высоки.
Из таблиц с результатами можно увидеть, что большая часть атак была не только обнаружена, но и правильно классифицирована моделью поиска аномалий. В случае классификации по 24 подкатегориям, мы несколько теряем в точности, которая падает до 91.3%. Дальнейшая классификация была бы очень полезна для последующей работы с этими попытками атак. Например, и A и B могут относиться к DOS, но для противодействия им может потребоваться применить различные меры безопасности.
Из матрицы ошибок мы также можем видеть, что доля "нормальных" и "DOS" — подключений в датасете существенно выше, чем остальных, соответственно для повышения точности классификации может быть полезно уменьшить число точек этого типа и увеличить количество всех остальных.
Выводы
Из результатов видно, что использованный гибридный подход демонстрирует хорошие результаты в задаче обнаружения атак.
С другой стороны, датасет несет в себе проблему, с которой скорее всего столкнётся на практике разработчик модели для обнаружения атак — несбалансированность имеющихся данных, большая часть которых будет отражать нормальное поведение системы. Зафиксированных примеров того, что происходит, когда в сеть пытается проникнуть злоумышленник будет скорее всего не так много, что скорее всего создаст проблему в достижении хорошего качества классификации. Например, именно недостаточным количеством информации о некоторых атаках вызваны не очень высокие показатели precision и recall некоторых категорий. Для решения этой проблемы можно попробовать применить bootstrap слабо представленных в данных классов — попробовать сгенерировать больше записей на основе информации об имеющихся.
Кроме того, работа велась с синтетическим (и достаточно старым) набором данных, тем не менее мы верим, что описанный подход может дать хорошие результаты и в реальных условиях.
Ссылки
Перевод статьи: https://arxiv.org/pdf/1910.12074.pdf, Aditya Pandey, Abhishek Sinha, Aishwarya PS
[1] Aleksandar Lazarevic, Levent Ertoz, Vipin Kumar, Aysel Ozgurand Jaideep Srivastava, ’A Comparative Study of AnomalyDetection Schemes in Network Intrusion Detection’, 2002[2] D. Barbara, N. Wu and S. Jajodia, ’Detecting Novel NetworkIntrusions Using Bayes Estimators’, 2001[3] S. A. Hofmeyr, S. Forrest and A. Somayaji, ’Intrusion DetectionUsing Sequences of System Calls’, 1998[4] A. Ghosh and A. Schwartzbard, ’A Study in Using NeuralNetworks for Anomaly and Misuse Detection’, 1999[5] E. Eskin, W. Lee and S. J. Stolfo, ’Modeling System Calls forIntrusion Detection with Dynamic Window Sizes’, 2001[6] R. Sekar, A. Gupta, J. Frullo, T. Shanbhag, A. Tiwari, H. Yangand S. Zhou, ’Specification-based Anomaly Detection: A NewApproach for Detecting Network Intrusions’, 2002[7] Jiong Zhang, Mohammad Zulkernine and Anwar Haque,’Random-Forests-Based Network Intrusion Detection Systems’,2008[8] James Cannady, ’Artificial Neural Networks for Misuse Detec-tion’, 1998[9] Ms.R.S.Landge* and Mr.A.P.Wadhe, ’Misuse Detection SystemUsing Various Techniques: A Review’, 2013