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

В этом посте вы узнаете, как работает майнинг правил ассоциации (ARM) и как он помогает при выборе функций для алгоритмов машинного обучения.

Содержание

Майнинг правил ассоциации:
Априорный алгоритм:
Генерация строгих правил ассоциации из частых наборов элементов
Система обнаружения вторжений
Введение:
1. Бизнес-проблема
1.1. Описание
2. Постановка задачи машинного обучения
2.1. Обзор данных
2.2. Сопоставление реальной проблемы с проблемой машинного обучения
3. Исследовательский анализ данных
3.1 визуализация метки класса
3.2 визуализация категориальных данных
3.3 визуализация числовых данных и их распределения
3.4 Корреляция данных
3.5 Описание функции
3.6 Заключение EDA
4. ARM - выбор функции
4.1 Анализ правил ассоциации
4.2 Предварительная обработка данных
5 .Модели машинного обучения
5.1 Чтение данных поездов и тестов
5.2 Модель логистической регрессии
5.3 Машинная модель опорных векторов
5.4 Модель случайного леса
5.5 Классификатор стекирования
6. Сравнение моделей
7. Заключение
8. Дальнейшая работа
9. Ссылки

Правило ассоциации майнинга:

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

Это двухэтапный процесс.

1. Найдите все часто встречающиеся наборы предметов.

  • Априорный метод
  • FB-метод роста

2. Сгенерируйте правило строгой ассоциации из наборов часто задаваемых вопросов, которые мы получили на шаге 1.

Это определение правил на основе показателей поддержки и уверенности.

Я буду использовать алгоритм Apriori для выбора функции

Алгоритм априори:

Алгоритм Априори был предложен Агравалом и Шрикантом в 1994 году.

Это итеративный подход, известный как поэтапный поиск, при котором I-itemset используется для исследования (I + 1) -itemset.

Ссылка: Интеллектуальный анализ данных и хранилище данных: принципы и практические методы от Parteek Bhatia, 2019 - Cambridge University Press

Априорная собственность:

Все непустые подмножества частого набора элементов также должны быть частыми. Если набор элементов является нечастым, все его расширенные наборы будут редкими.

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

В Apriori выполняется двухэтапный процесс:

  1. Шаг соединения: чтобы найти Lk, набор кандидатов k-itemsets генерируется путем соединения Lk-1 с самим собой. Этот набор кандидатов обозначается Ck.
  2. Шаг сокращения: Ck является надмножеством Lk-1, то есть его элементы могут быть или не быть частыми, но все частые наборы k-элементов включены в Ck. Для уменьшения размера Ck используется свойство Apriori.

Предположим, что I = {I1, I2, I3… Im} будет набором двоичных атрибутов в базе данных, Пусть T = {T1, T2, T3… Tm} будет набором транзакции, называемой базой данных.

Счетчик поддержки - частота появления набора элементов A.

Теперь нам нужно найти частый набор элементов с помощью алгоритма априори, где минимальное количество поддерживаемых элементов равно 2.

Если мы объединим L3, мы найдем только один набор из 4 часто используемых элементов.

На шаге 4 мы обнаружили, что существует только одна транзакция с 4 наборами элементов. И мы не могли производить больше для 5-частых наборов элементов, поскольку у нас есть только один набор элементов.

L1, L2, L3 и L4 - частые наборы элементов, сгенерированные с использованием алгоритма априори с числом поддержки = 2.

Создание строгих правил ассоциации из частого набора элементов

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

Правила считаются строгими, если они удовлетворяют минимальному значению поддержки и минимальному значению уверенности.

Он генерируется следующим образом:

  • Для каждого часто встречающегося набора l сгенерируйте все непустые подмножества l.
  • Для каждого непустого подмножества s в l выведите правило s = ›(l - s)

правила формируются следующим образом.

Предположим, min_conf = 0,5.

Давайте рассмотрим l = ›{I1, I3, I5, I6} и s, определенные как s, правила столбца генерируются из s.

Брать,

Давайте возьмем первое правило и обретем уверенность.

Как и в вышеупомянутом методе, нам нужно найти все часто встречающиеся элементы Lk правил.

Система обнаружения вторжений

Вступление:

Система обнаружения вторжений - это метод выявления вредоносной активности в компьютерной сети. Существует два типа IDS Network Intrusion Detection (NIDS): система мониторинга атак на сети и система обнаружения вторжений хоста (HIDS), которая устанавливается на хост-устройстве и отслеживает вредоносный файл и программное обеспечение.

В этом посте я буду использовать NIDS для определения аномалии в сети. Учитывая большой набор данных CISCO Networking UNSW NB-15, я буду использовать алгоритм машинного обучения для определения вторжения в сеть.

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

Я буду реализовывать задачу двоичной классификации для выявления сетевой аномалии. Я буду выбирать алгоритм, основанный на способности обрабатывать многомерные данные, и выбирать наилучшую точность модели для двоичной классификации.

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

1. Деловая проблема

1.1. Описание

Источник: https://www.unsw.adfa.edu.au/unsw-canberra-cyber/cybersecurity/ADFA-NB15-

Наборы данных

Данные: Сетевой набор данных CISCO - Набор данных UNSW-NB15

Скачать UNSW-NB15 - файл csv.

Описание проблемы:

Классифицируйте данную сеть как вторжение или нормальную на основе данных из сырых сетевых пакетов.

набора данных UNSW-NB 15. он был создан инструментом IXIA Perfect Storm в Cyber ​​Range

Лаборатория Австралийского центра кибербезопасности (ACCS).

2. Постановка задачи машинного обучения.

2.1. Обзор данных

  • У нас есть несколько файлов данных: загрузите файл UNSW-NB15 - csv, этот файл содержит следующую структуру

часть обучающего и тестового набора - папка содержит csv файлы с обучающими и тестовыми данными

NUSW-NB15_features.csv - Описание функции

NUSW-NB15_GT.csv

Описание UNSW-NB15.pdf

UNSW-NB15_1.csv

UNSW-NB15_2.csv

UNSW-NB15_3.csv

UNSW-NB15_4.csv

UNSW-NB15_LIST_EVENTS.csv

  • Эти функции описаны в файле UNSW-NB15_features.csv.
  • Общее количество записей составляет два миллиона 540 044, которые хранятся в четырех файлах CSV, а именно UNSW-NB15_1.csv, UNSW-NB15_2.csv, UNSW-NB15_3.csv и UNSWNB15_4.csv.
  • Основная таблица истинности называется UNSW-NB15_GT.csv, а файл списка событий - UNSW-NB15_LIST_EVENTS.csv.
  • Раздел из этого набора данных настроен как обучающий набор и набор для тестирования, а именно UNSW_NB15_training-set.csv и UNSW_NB15_testing-set.csv соответственно.
  • Количество записей в обучающем наборе составляет 82332 записи, а в тестовом наборе - 175 341 запись различных типов, атакующих и обычных. На рисунке выше показаны набор данных конфигурации испытательного стенда и метод создания функций UNSW-NB15, соответственно.

Информация о файле данных: обучающий и тестовый файлы содержат 45 столбцов.

[‘dur’, ‘spkts’, ‘dpkts’, ‘sbytes’, ’sload’, ’dload’, ’sloss’, ’dloss’, ’sinpkt’, ’dinpkt’, ’sjit’, ’djit’, ’swin’, ’stcpb’, ’dtcpb’,’dwin’, ’tcprtt’, ’synack’, ’ackdat’, ’smean’, ’dmean’, ’trans_depth’, ’response_body_len’, ’ct_srv_src’, ’ct_state_ttl’, ’ct_dst_ltm’, ’ct_src_dport_ltm’, ’ct_dst_sport_ltm’, ’ct_dst_src_ltm’, ’is_ftp_login’, ’ct_ftp_cmd’, ’ct_flw_http_mthd’, ’ct_src_ltm’, ’ct_srv_dst’, ’is_sm_ips_ports’]

Категориальные (4) столбцы

Числовые (41) столбцы

2.2. Сопоставление реальной проблемы с проблемой машинного обучения

2.2.1. Тип задачи машинного обучения

There are two different class normal or attack. Find the network is normal or intrusion. => Binary class classification problem

2.2.2. Показатель эффективности

Метрика, используемая для определения производительности модели.

Метрика (и):

- AUC и f1-оценка

- Матрица путаницы

- FAR - частота ложных срабатываний должна быть минимальной.

2.2.3. Цели и ограничения машинного обучения

Objective: Predict the probability of each data-point whether the network is normal or attack.

Пример набора данных:

3. Исследовательский анализ данных

3.1 Визуализация метки класса

График выше показывает, что набор данных не является несбалансированным.

3.2 Визуализация категориальных данных

По категориальным данным мы видим дисбаланс данных. Также категория «прото» насчитывает более 200 категорий. В других столбцах меньше или равно 13 столбцов.

3.3 Визуализация числовых данных и их распределения

на графике распределения каждый объект имеет одно значение, которое встречается чаще, чем другие значения

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

3.4 Корреляция данных

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

3.5 Описание функции

Пример описания функции

3.5.1 sbytes - dbytes, sloss - dloss и spkts - dpkts

  • От источника к байтам транзакции назначения и от места назначения к байтам исходной транзакции
  • Исходные пакеты повторно переданы или отброшены, а целевые пакеты повторно переданы или отброшены
  • Счетчик пакетов от источника к месту назначения и от адресата к счетчику пакетов источника.

Из приведенного выше примера распределения мы ясно видим, что они сильно коррелированы.

Корреляционная матрица для трех пар столбцов:

  • Мы можем удалить столбцы sbyte и dbytes из приведенного выше представления.
  • Из этой визуализации мы видим, что оба имеют высокую корреляцию и одинаковое распределение с другими столбцами.

3.5.2 swin - dwin

  • Swin - значение объявления окна TCP источника
  • Dwin - значение объявления окна TCP назначения

  • Из приведенного выше графика распределения мы можем различить нормальное и аномальное состояние.
  • частота окна от -50 до 50 менее 0,0075 является нормальным явлением, а от 200 до 300 менее 0,0075 является аномалией.
  • мы можем игнорировать один из этого столбца.

3.5.3 ct_dst_src_ltm, ct_srv_src, ct_srv_dst

  • ct_dst_src_ltm - Количество соединений одного и того же адреса источника (1) и пункта назначения (3) в 100 соединениях по данным последнего времени (26).
  • ct_srv_dst - Количество подключений, которые содержат одну и ту же службу (14) и адрес источника (1) из 100 подключений по данным последнего времени (26).
  • ct_srv_dst - Количество подключений, которые содержат одну и ту же услугу (14) и адрес назначения (3) из 100 подключений в соответствии с последним временем (26).

  • Мы можем удалить столбец ct_srv_dst
  • Из этой визуализации мы видим, что три столбца имеют высокую корреляцию и одинаковое распределение.

3.5.4 «is_ftp_login», «ct_ftp_cmd»

  • is_ftp_login - Если к сеансу ftp обращается пользователь и пароль, то 1 иначе 0.
  • ct_ftp_cmd - «Нет потоков, для которых есть команда в сеансе ftp.

  • Мы можем сбросить ct_ftp_cmd.
  • Из этой визуализации мы видим, что оба имеют высокую корреляцию и одинаковое распределение.

3.6 Заключение EDA

Мы можем отбросить 4 столбца, упомянутые в приведенном выше анализе, которые сильно коррелированы.

  • sbyte и dbytes
  • ct_srv_dst
  • ct_ftp_cmd
  • Двин

4. ARM - выбор функции

4.1 Правила ассоциации Mining

Поскольку мы уже обсуждали более подробно ARM, давайте перейдем к шагам.

4.1.1 Этапы реализации

4.2 Предварительная обработка данных

  • Для лучшего понимания набора данных
  • Определите категориальные и числовые данные и выполните следующее кодирование

Категориальные данные (кодировка метки)

Числовые данные (MinMaxScaler)

  • Преобразуйте данные в числовые значения, чтобы их можно было использовать в моделях машинного обучения.

4.2.1 Разделение данных на равные части

Для уменьшения временной сложности набор данных делится на равные части.

Число 𝑜𝑓 набор данных = Число 𝑜𝑓 𝑟𝑒𝑐𝑜𝑟𝑑𝑠 / Число 𝑜𝑓 𝑎𝑡𝑡𝑟𝑖𝑏𝑢𝑡𝑒𝑠

4.2.2 Режим поиска атрибута

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

Пример:

1. Числовой

X = {1,2,3,1,3,1} => {1} => {1,0,0,1,0,1}

2. Категорический

X = {'INT', 'FIN', 'REQ', 'ACC', 'INT', 'REQ', 'INT'} = ›{'INT'} =› {1, 0, 0, 0, 1 , 0, 1}

Эта двоичная таблица будет использоваться для процесса выбора функции ARM.

4.2.3 Создание правила ARM на основе алгоритма априори

  • Использование apriori для поиска частых наборов предметов
  • Ниже я использовал пакет mlxtend для априорной реализации алгоритма.
  • В результате появятся наборы элементов Lk.
  • Чтобы найти Lk, набор кандидатов Ck-itemsets генерируется путем соединения Lk-1 с самим собой.

Найдите правило ассоциации:

  • Ниже представлены наборы элементов результатов с антецедентом → последующим с его значением достоверности.
  • Генерируется из пакета mlxtend.

Используя вышеуказанный подход, мы найдем антецедент и консеквенты для всех 42 наборов данных.

4.2.4 Выбор функции

  • После создания правил в каждом наборе антецеденты и консеквенты объединяются для генерации частых наборов элементов для каждого набора данных.
  • Частые элементы каждого набора данных снова объединяются, чтобы получить окончательные атрибуты для всех наборов данных.
  • Максимальная длина правила устанавливается равной двум, чтобы исключить атрибут, который не является частым элементом. Как минимум один элемент / атрибут сочетается с другим атрибутом
  • учитывая элементы / атрибуты, которые присутствуют более чем на 30% от общего набора данных / транзакции.
  • min_support = 0,3, что составляет 30% элементов, присутствующих в общей транзакции.

Ниже приведены столбцы, выбранные из процесса ARM. Он будет производить все функции, которые часто встречаются у других.

5. Модели машинного обучения

5.1 Чтение данных поездов и тестов

· Прочитать набор данных для обучения и тестирования

· Выбирать столбцы только из процесса ARM

· Применение кодировки меток для категориальных данных

· Стандартизируйте столбец с помощью MinMaxScaler.

· Применяйте модели машинного обучения.

5.2 Модель логистической регрессии

Применен GridSearchCV () для настройки гиперпараметра. И откалиброван с использованием калибровочного классификатора - откалиброванный классификатор предназначен для калибровки вероятности с изотонической регрессией или сигмоидой. Здесь мы применили сигмоид для двоичной классификации.

Вывод показателей:

5.3 Модель машины опорных векторов

Применен GridSearchCV () для настройки гиперпараметра. И откалиброван с использованием калибровочного классификатора - откалиброванный классификатор предназначен для калибровки вероятности с изотонической регрессией или сигмоидой. Здесь мы применили сигмоид для двоичной классификации. Я использовал регуляризацию L2 для svm.

Вывод показателей:

5.4 Модель случайного леса

Применен GridSearchCV () для настройки гиперпараметра. И откалиброван с использованием калибровочного классификатора - откалиброванный классификатор предназначен для калибровки вероятности с изотонической регрессией или сигмоидой. Здесь мы применили сигмоид для двоичной классификации. В качестве критерия Джини выбрал критерий случайного леса.

Вывод показателей:

5.5 Классификатор штабелирования

Классификаторы стекирования использовали предыдущие 2 модели в качестве оценок и логистическую регрессию в качестве окончательных оценок. Укладка улучшила модель по сравнению с другими моделями.

Вывод показателей:

6. Сравнение моделей

Производительность модели сравнивается в таблице ниже.

7. Заключение

  • В этом посте мы увидели новый практический алгоритм интеллектуального анализа правил ассоциации для выбора функций при обнаружении аномалий. Анализ правил ассоциации (ARM) настроен для поиска функций с наивысшим рейтингом путем удаления нерелевантных или шумных функций. Заключительные функции - это входные данные для модели машинного обучения.
  • Априорный алогритм используется в основном для определения важных редких признаков.
  • В системе обнаружения аномалий сетевая атака очень редка, поэтому в наборе данных могут быть скрыты некоторые редкие особенности. Обнаружение этих редких особенностей осуществляется алгоритмом Apriori.
  • Чтобы различать нормальный режим и атаку, я использовал логистическую регрессию, линейный случайный лес SVM и суммирование.
  • Результаты экспериментов показывают, что модель классификатора с накоплением работает хорошо по сравнению с другими моделями. он имеет 94% показателя f1 и 7,3% частоты ложных срабатываний, что значительно ниже, чем у других моделей.
  • Кроме того, мы можем понять, что кодирование ответа работает хорошо по сравнению с другими методами кодирования категориальных данных.
  • Ложноотрицательная оценка также очень низкая, в этом случае стоимость, связанная с ложноотрицательной оценкой, должна быть очень низкой. потому что вторжение нельзя предсказать как обычно.
  • F1-оценка - это средневзвешенная точность и отзывчивость. Точность - это мера правильно идентифицированного вторжения от всех предсказанных вторжений. Напоминание - это мера правильно идентифицированного вторжения от всех фактически отмеченных вторжений.

Код этого сообщения доступен в GitHub.

8. Будущая работа

В будущем я буду работать над алгоритмом роста FB для выбора функций над алгоритмом Apriori. Алгоритм априори генерирует наборы элементов, которые встречаются не часто. Этот алгоритм также требует массивных операций ввода-вывода и прогресса ЦП при обработке больших объемов данных. Он работает с поэтапным поиском, который требует больше времени для больших данных.

Метод FB-Growth будет генерировать только частые наборы элементов. Он работает с генерацией дерева с частыми шаблонами. Это быстрее, чем Apriori, и не требует больше места. Хорошо работает с большим набором данных.

9. Ссылки

1. Алгоритм априори был предложен Агравалом и Шрикантом в 1994 году.

2. Интеллектуальный анализ данных и хранилище данных: принципы и практические методы, автор Parteek Bhatia, 2019 - Cambridge University Press

3. Кодирование ответа для категориальных данных

4. IDS - https://en.wikipedia.org/wiki/Intrusion_detection_system

5. Обнаружение сетевых вторжений с помощью априорного алгоритма на основе хеширования с использованием Hadoop MapReduce - Нурени Айофе Азиз, Толулопе Джиде Айемобола, Санджай Мисра, Ритис Маскелюнас и Робертас Дамашявичюс

6. Поиск часто встречающихся наборов элементов с помощью алгоритма Apriori для обнаружения вторжений в большой набор данных - Камини Налаваде, Б. Б. Мешрам

7. Курс прикладного искусственного интеллекта - https://www.appliedaicourse.com/

Спасибо за чтение!

Если у вас есть комментарии, дайте мне знать !!!

Вы можете найти меня в LinkedIn и GitHub.