УДК 004

Использование средств искусственного интеллекта для анализа сетевого трафика на предмет кибератак

Куликова Ольга Витальевна – кандидат физико-математических наук, доцент кафедры Кибербезопасности информационных систем Донского государственного технического университета.

Пинигин Андрей Сергеевич – магистрант Донского государственного технического университета.

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

Ключевые слова: кибербезопасность информационных систем, использование средств искусственного интеллекта в кибербезопасности, кибератаки, Случайные леса.

Введение

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

Методы машинного обучения

Существует множество методов машинного обучения. Цель машинного обучения заключается в обучении программы решать задачи, предоставив ей сырой набор данных или в виде примеров с правильными и не правильными ответами. Ниже представлены основные методы машинного обучения:

  • классическое обучение;
  • обучение с подкреплением;
  • глубокое обучение.
  • ансамблевые методы машинного обучения.

Классическое обучение

Классическое обучение состоит из следующих методов машинного обучения:

  • обучение с учителем;
  • обучение без учителя.

Обучение с учителем используется в тех случаях, когда данные заранее распределены по категориям.

Нейронная сеть должна научиться отвечать правильно на ответы в новом подаваемом ей набором данных на основе помеченных данных правильных ответов из прошлой тренировочной выборки. Методы обучения с учителем можно также разделить на два основных класса:

  • классификация;
  • регрессия.
  1. Классификацию – используют в том случае, если необходимо предсказать категорию к которой относится объект, поданный на вход нейронной сети.

Ниже представлены часто используемые алгоритмы применяемые для задач классификации:

  • Наивный байесовский классификатор;
  • Машина опорных векторов (SVM);
  • К-ближайшие соседи (KNN).
  1. Регрессию – используют в случае, когда необходимо предсказать значение.

Ниже представлены часто используемые алгоритмы, применяемые для задач, связанных с регрессионным анализом:

  • линейная регрессия;
  • полиномиальная регрессия;
  • байесовская линейная регрессия;

Обучение без учителя используется в том случае, когда на вход нейронной сети подаются «сырые» или же никак не размеченные данные.

В данном случае нейронная сеть должна сама определить признаки, по которым можно разделить входные данные на отдельные кластеры.

Методы машинного обучения без учителя можно разделить на следующие классы:

  • кластеризация;
  • уменьшение размерности;
  • ассоциация.

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 представлена формула итогового классификатора:

image001(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 и др.

Список литературы

  1. М.В. Воронов, В.И. Пименов, И.А. Небаев. Системы искусственного интеллекта // Юрайт 2022.
  2. Луис Педро Коэльо, Вилли Ричарт Построение систем машинного обучения на языке Python. 2-е издание // ДМК Пресс 2016.
  3. Нейронные системы обработки информации: учеб.-метод. пособие / С. В. Макартичян, Н. С. Кузнецова, С. С. Дементьев; ВолгГТУ. – Волгоград, 2020.
  4. Машинное обучение и безопасность / пер. с анг. А. В. Снастина. – М.: ДМК Пресс, 2020.
  5. Основы Python для Data Science. — СПб.: Питер, 2023.

Интересная статья? Поделись ей с другими: