УДК 004
Использование средств искусственного интеллекта для анализа сетевого трафика на предмет кибератак
Куликова Ольга Витальевна – кандидат физико-математических наук, доцент кафедры Кибербезопасности информационных систем Донского государственного технического университета.
Пинигин Андрей Сергеевич – магистрант Донского государственного технического университета.
Аннотация: В статье описывается краткая информация, взятая из второй главы магистерской диссертации, которая посвящена Использование средств искусственного интеллекта для анализа сетевого трафика на наличие кибератак. Рассматриваются существующие методы и алгоритмы машинного обучения, более подробно рассматривается метод случайных лесов, а также набор данных, на которых будет проходить обучение.
Ключевые слова: кибербезопасность информационных систем, использование средств искусственного интеллекта в кибербезопасности, кибератаки, Случайные леса.
Введение
Машинное обучение – это одна из наиболее эффективных технологий, которая используется в кибербезопасности для определения и предотвращения кибератак. Машинное обучение позволяет автоматизировать процесс обнаружения и реакции на киберугрозы, такие как вирусы, хакерские атаки, фишинг и другие виды мошенничества. Одна из основных проблем, с которыми сталкиваются компании в области кибербезопасности, заключается в том, что вредоносные программы постоянно меняются и эволюционируют. Машинное обучение позволяет оперативно адаптироваться и бороться с этими изменениями, создавая защиту от новых угроз. Многие компании и организации используют машинное обучение для защиты своих сетей, так как это значительно повышает эффективность кибербезопасности и общую устойчивость к кибератакам.
Методы машинного обучения
Существует множество методов машинного обучения. Цель машинного обучения заключается в обучении программы решать задачи, предоставив ей сырой набор данных или в виде примеров с правильными и не правильными ответами. Ниже представлены основные методы машинного обучения:
- классическое обучение;
- обучение с подкреплением;
- глубокое обучение.
- ансамблевые методы машинного обучения.
Классическое обучение
Классическое обучение состоит из следующих методов машинного обучения:
- обучение с учителем;
- обучение без учителя.
Обучение с учителем используется в тех случаях, когда данные заранее распределены по категориям.
Нейронная сеть должна научиться отвечать правильно на ответы в новом подаваемом ей набором данных на основе помеченных данных правильных ответов из прошлой тренировочной выборки. Методы обучения с учителем можно также разделить на два основных класса:
- классификация;
- регрессия.
- Классификацию – используют в том случае, если необходимо предсказать категорию к которой относится объект, поданный на вход нейронной сети.
Ниже представлены часто используемые алгоритмы применяемые для задач классификации:
- Наивный байесовский классификатор;
- Машина опорных векторов (SVM);
- К-ближайшие соседи (KNN).
- Регрессию – используют в случае, когда необходимо предсказать значение.
Ниже представлены часто используемые алгоритмы, применяемые для задач, связанных с регрессионным анализом:
- линейная регрессия;
- полиномиальная регрессия;
- байесовская линейная регрессия;
Обучение без учителя используется в том случае, когда на вход нейронной сети подаются «сырые» или же никак не размеченные данные.
В данном случае нейронная сеть должна сама определить признаки, по которым можно разделить входные данные на отдельные кластеры.
Методы машинного обучения без учителя можно разделить на следующие классы:
- кластеризация;
- уменьшение размерности;
- ассоциация.
1) Кластеризация – используется, в случае, когда нейронной сети на основе входных «сырых» данных необходимо самостоятельно разделить последние по схожести на кластеры.
Часто используемые алгоритмы кластеризации в машинном обучении представлены ниже:
- K-means кластеризация;
- пространственная кластеризация (DBSCAN);
- иерархическую кластеризация.
2) Уменьшение размерности – метод машинного обучения без учителя, который используется с целью уменьшения набора данных при сохранении важной информации в самом наборе.
Данный метод борется с так называемым проклятием размерности.
Использования метода позволяет преобразовать многомерные данные в данные меньшей размерности, что в свою очередь может спасти модель от переобучения, а также улучшить производительность ее обобщения.
Ниже представлены часто используемые методы уменьшения размерности:
- Анализ главных компонентов (PCA);
- Линейный дискриминантный анализ (LDA);
- Обобщенный дискриминантный анализ (GDA).
3) Ассоциация – метод, который используют, в том случае, если необходимо из входных данных выявить последовательности.
Ниже представлены часто используемые алгоритмы метода ассоциаций:
- Apriori;
- Eclat;
- FP Growth.
Обучение с подкреплением
Обучение с подкреплением – метод машинного обучения, который заключается в обучении нейронной сети в процессе взаимодействия с окружающей средой, а не с помощью исторических данных.
Ниже представлены основные алгоритмы, используемые в обучения с подкреплением:
- State-Action-Reward-State-Action (SARSA);
- Q-Learning;
- Deep Q-Networks.
Глубокое обучение
Глубокое обучение – отдельная область машинного обучения, которая использует искусственные нейронные сети для моделирования и решения сложных проблем.
Искусственные нейронные сети, используемые в глубоком обучении имеют сложную архитектуру и состоят из нескольких слоев.
Каждый слой извлекает более сложные признаки из входных данных или предыдущих слоев, что в свою очередь позволяет делать точные прогнозы или классифицировать объекты с минимальными ошибками.
Ниже представлены некоторые методы, использующиеся в нейронных сетях глубокого обучения:
- Сети прямого распространения;
- Конволюционные нейронные сети (CNN);
- Генеративно-состязательные сети (GAN);
- Рекуррентные нейронные сети (РНС).
Некоторые алгоритмы, используемые в нейронных сетях глубокого обучения:
- Контролируемое обучение;
- Стохастический градиентный спуск;
- Генеративные модели;
- Вариационные автоэнкодеры;
- Алгоритм Адама.
Ансамблевые методы
Ансамблевый метод – метод машинного обучения, в котором для решения одной задачи обучаются сразу несколько моделей.
Данные модели объединяются для получения более точного, лучшего результата.
Ниже представлены самые часто используемые ансамблевые модели:
- Стекинг;
- Бустинг;
- Бэггинг.
- Стекинг – один из алгоритмов ансамблирования, который может использовать алгоритмы разного типа, результаты этих алгоритмов объединяются в один с помощью обучаемой мета-модели. Зачастую стекинг не минимизирует компоненты ошибок, а просто уменьшает ошибку, компоненты которой тоже будут убывать.
- Бустинг – один из алгоритмов ансамблирования, в процессе работы которого несколько однородных моделей обучаются последовательно, в результате чего каждый следующий алгоритм после обучения будет уменьшать общую ошибку всех своих предшественников.
В результате мета-модель должна иметь меньшее смещение чем отдельные базовые алгоритмы до нее.
При использовании бустинга в качестве базовых моделей принято брать алгоритмы имеющие высокое смещение и небольшой разброс.
Ниже представлены наиболее распространенные алгоритмы использующих при бустинге:
- Адаптивный бустинг (AdaBoost);
- Градиентный бустинг.
3) Бэггинг – метод ансамблирования, идеей которого является обучение нескольких одинаковых моделей на разных входных данных.
Распределение выборки неизвестно, соответственно и модели получаются различными. Сначала выбирается случайный набор данных из датасета и подставляется в модель, после чего данные возвращаются обратно в датасет.
Данный процесс повторяется, а после модели делают свои прогнозы. Обычно при выборе данной метода в качестве модели выбирают алгоритм случайного леса (Random Forest).
Random Forest
После анализа существующих методов обучения был выбран метод Random Forest или же метод случайного леса.
Метод случайного леса (RF) – универсальный метод машинного обучения, основанный на ансамблировании решающих деревьев.
Random Forest благодаря своей гибкости используется для решения практически любых проблем в области машинного обучения.
К наиболее распространенным проблемам, которые решает данный метод можно отнести классификацию, регрессию, а также более сложные задачи в виде отбора признаков, поиска аномалий или кластеризации.
Ниже на рисунке 1 представлена формула итогового классификатора:
(1) |
где N – количество деревьев;
i – счетчик деревьев;
b – Решающее дерево;
x – сгенерированная выборка.
В случае если необходимо решить задачу классификации используя метод случайных лесов, решение выбирается методом голосования, если же перед нами стоит задача регрессии, то в этом случае она выбирается поиском среднего значения от всех предсказаний. Метод случайных лесов является очень сильным алгоритмом, который позволяет эффективно обрабатывать данные и дает чрезвычайно точные результаты [6].
Метод случайных лесов имеет следующие параметры:
- количество деревьев (n_estimators);
- количество признаков (max_features);
- Максимальная глубина (max_depth);
- Случайное число (random_state);
- Перекрестная проверка (Cross-validation).
1) Количество деревьев – параметр, отвечающий за количество деревьев в лесу. Зачастую, чем больше деревьев в лесу, тем решение будет более точным.
2) Количество признаков – параметр, отвечающий за количество признаков, использующихся для построения каждого отдельного дерева. Чем меньше признаков, тем меньше вероятность переобучить модель.
3) Максимальная глубина – параметр, отвечающий за максимальную глубину каждого отдельного дерева. Чем больше глубина деревьев, тем более точный получится ответ, но также, в случае, если глубина будет очень большой, можно получить переобученную модель.
4) Случайное число – данный параметр отвечает за случайное число, которое используется для воспроизводимости результата. Данный параметр является гарантом того, что при каждом новом запуске модели будут использоваться одинаковые случайные числа, что в свою очередь, делает результаты предсказания модели воспроизводимыми.
5) Перекрестная проверка – метод, позволяющий оценить качество модели на основе разбиения обучаеющей выборки на несколько подвыборок. Модель будет обучаться на одной подвыборке, а качество оцениваться на другой. Это повторяется несколько раз с разными подвыборками, что в итоге дает среднее значение метрики качества модели.
Выбор набора данных
В качестве набора данных используемых, для обучения, тренировки и проверки был выбран набор данных CICIDS2017, который содержит как безопасные, так и современные распространенные атаки, которые используются в реальности(PCAPs).Помимо этого, данный набор данных включает в себя результаты анализа сетевого трафика с использованием CICFlowMeter, с помеченными потоками на основе временной метки, IP-адрессов и портов источника и назначения, протоколов. Датасет собран в формате CSV-файлов.В данном наборе данных было построено абстрактное поведение 25 пользователей, использующих протоколы: HTTP, HTTPS, FTP, SSH и др.
Список литературы
- М.В. Воронов, В.И. Пименов, И.А. Небаев. Системы искусственного интеллекта // Юрайт 2022.
- Луис Педро Коэльо, Вилли Ричарт Построение систем машинного обучения на языке Python. 2-е издание // ДМК Пресс 2016.
- Нейронные системы обработки информации: учеб.-метод. пособие / С. В. Макартичян, Н. С. Кузнецова, С. С. Дементьев; ВолгГТУ. – Волгоград, 2020.
- Машинное обучение и безопасность / пер. с анг. А. В. Снастина. – М.: ДМК Пресс, 2020.
- Основы Python для Data Science. — СПб.: Питер, 2023.