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

Аннотация

DDoS-атака - один из самых мощных методов взлома Интернета. Основное оружие, которое хакер использует во время атак такого типа, - это трафик по сети для уничтожения или разрушения веб-сайтов. Существуют различные подкатегории этой атаки, каждая из которых определяет способ, которым хакер пытается проникнуть в сеть. В этом исследовании мы обсудили подход к обнаружению угрозы DDoS-атаки с помощью искусственного интеллекта. модель с точностью более 96%. Мы классифицировали 7 различных подкатегорий угроз DDoS, а также безопасную или работоспособную сеть.

Введение

Распределенные атаки типа «отказ в обслуживании» (DDoS) нацелены на веб-сайты и онлайн-сервисы. Цель этой атаки - заблокировать сеть или сервер чрезмерным трафиком. Эффективность достигается за счет использования нескольких скомпрометированных систем в качестве источников атакующего трафика. Существуют различные подкатегории DDoS-атак в зависимости от уровня сетевого соединения, которое они пытаются атаковать, в соответствии с моделью OSI. Некоторые из подкатегорий, которые мы классифицировали в ходе нашего исследования, - это SYN Flood, UDP Flood, MSSQL, LDAP, Portmap, NetBIOS.

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

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

Обработка данных была одной из первых проблем, с которыми мы столкнулись. У данных было 88 атрибутов или функций. Обработка таких огромных данных в ограниченной оперативной памяти была для нас действительно сложной задачей. Поэтому мы понизили тип данных атрибутов и, следовательно, сократили использование памяти фреймом данных. Типы данных float64 понижены до float32, int64 до int32, int32 до uint32 и так далее. Мы успешно уменьшили почти 42% от первоначального размера. Наш фрейм данных все еще имел атрибуты или функции с максимальным значением, близким к бесконечному, поэтому мы также обрабатывали эти данные на этапе предварительной обработки.

Распределение целевых функций

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

Несмотря на то, что UDPLag немного неравномерно распределен по отношению к другим, мы все же рассмотрели этот случай позже в этом исследовании.

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

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

Мы также проанализировали распределение каждого типа угроз внутри каждого типа протокола и входящего. Ниже приведены графики, отображающие анализ.

Неконтролируемый подход к обнаружению угрозы

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

Предварительная обработка перед тренировкой. Мы удалили из наших данных некоторые функции, такие как Flow ID, Source IP, Source Port, Destination IP, Destination Port, Timestamp, Flow Packets / s, Flow Bytes / s '. «Flow plackets / s» и «Flow Bytes / s» были удалены, потому что после стандартного масштабирования эти функции преобразовались в значения, слишком большие для значений float64 и NaN.

Мы масштабировали наши данные с помощью стандартного масштабирования с последующей нормализацией. Используйте анализ компонентов Principle для уменьшения размерности и преобразования измерения в двумерные данные.

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

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

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

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

Контролируемый подход к обнаружению угрозы

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

Структура нашей модели DL

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

Мы использовали Адама в качестве основного оптимизатора и показатель ROC_AUC для оценки производительности модели. Оценка ROC_AUC Вычислить область под кривой рабочих характеристик приемника (ROC AUC) на основе оценок прогноза.

Мы обучили и проверили нашу модель более чем в 10 раз, и мы достигли показателя ROC_AUC 96% и выше по сравнению со средним значением для обнаружения угроз и достигли наивысшей точности 97% и выше.

Отчет о классификации в одном из 10 секторов

Точность отнесения каждого класса к одному из 10-ти кратных

Заключение

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

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

Используемые инструменты и набор данных

УНИВЕРСИТЕТУ Нью-Брансуика за предоставление набора данных.

TensorFlow, Scikit Learn, Matplotlib, Seaborn за инструменты, которые использовались во всем этом исследовании.