Решение представляет собой приложение для обработки сетевых данных, логов и другой информации о текущем и предыдущих соединениях с целью поиска и классификации на 5 основных классов (normal, dos, u2r, r2l, probe).
- Наборы данных;
- Типы тренировочных атак;
- Схема данных набора данных в машино-читаемой форме;
- Полный набор данных для обучения;
- Набор данных для тестирования.
- Обнаружить атаки в тестовой выборке и классифицировать их;
- Построить статистику по выявленным атакам, процентные соотношения между атаками;
- Продемонстрировать работу разработанного модуля на реальных данных.
Данная задача решается на известном датасете NSL-KDD. Существует большое число работ (включая обзоры), посвященных решению задачи обнаружения кибер-атак на датасетах NSL-KDD и KDD Cup 1999:
- Multi Stage Filter Using Enhanced Adaboost for Network Intrusion Detection,
- Application of Machine Learning Algorithms to KDD Intrusion Detection Dataset within Misuse Detection Context,
- Reducing Features of KDD CUP 1999 Dataset for Anomaly Detection Using Back Propagation Neural Network,
- Training Guidance with KDD Cup 1999 and NSL-KDD Data Sets of ANIDINR: Anomaly-Based Network Intrusion Detection System,
- KDD 1999 generation faults: a review and analysis,
- и тд.
Была проведена предварительная обработка данных:
- Масштабирование (Z-нормализация);
- Преобразование категориальных признаков;
- Приведение вектора ответов к 5 классам кибер-атак.
Задача была решена для двух случаев:
- Обнаружение кибер-атак (бинарная классификация);
- Классификация кибер-атак (многоклассовая классификация).
Также было учтено изменение распределение классов между трейном и тестом.
Данную задачу можно интерпретировать как задачу обнаружения кибер-атак. В качестве бейзлайнового алгоритма Машинного обучения используется случайный лес.
Результаты:
- Точность на тестовой выборке:
0.8123
. - Время выполнения расчета для 22544 строк логов (тестовая выборка):
0:00:00.116
.
Данную задачу можно интерпретировать как задачу распознавания конкретных типов кибер-атак. В качестве бейзлайнового алгоритма Машинного обучения используется случайный лес.
Результаты:
- Точность на тестовой выборке:
0.7758
. - Время выполнения расчета для 22544 строк логов (тестовая выборка):
0:00:00.115
.
Задача решается с помощью средств анализа и визуализации данных python. Пример представлен в презентации.
Демонстрация реализована в веб-приложении.
Необходимо загрузить файл из датасета Kyoto University Benchmark Data либо ввести данные вручную.