Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
network-attack-detection — Передовое обнаружение сканирования портов, DoS-атак и вредоносного ПО с использованием методов машинного обучения | Kitploit
Инструменты/GitHubGitHub/lucadibello/network-attack-detection
Анализ уязвимостейСбор информацииСетевая безопасностьМашинное ОбучениеОбнаружение ВторженийОбучение и ОбразованиеОбнаружение АномалийАнализ Журналов

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
GitHub
lucadibello/network-attack-detection

network-attack-detection

Передовое обнаружение сканирования портов, DoS-атак и вредоносного ПО с использованием методов машинного обучения

РепозиторийСайт
1333 лет назадЕщё не проверено

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

Описание

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

Классификация выполняется с использованием следующих моделей:

  • K-Nearest Neighbors (KNN)
  • Support Vector Machine Classifier (SVC) with RBF (Radial Basis Function) kernel
  • Pipeline with Principal Component Analysis (PCA) and Support Vector Machine Classifier (SVC)
  • Bagging Classifier (based on SVC with RBF kernel)
  • Random Forest Classifier
  • Extra Trees Classifier
  • Neural Network (MLPClassifier)

Проект реализован на Python с использованием Jupyter Notebook и нескольких популярных библиотек, включая UMAP, Pandas, NumPy, Scikit-Learn, Matplotlib и Seaborn.

Блокнот

Блокнот доступен здесь для прямого просмотра на GitHub. В качестве альтернативы вы можете использовать NbViewer для доступа к блокноту через эту ссылку.

Презентация

Презентация Keynote в формате PDF доступна здесь.

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

Набор данных, используемый в этом проекте, представлен в формате NetFlow V9 (документирован Cisco, доступен здесь). Он состоит из двух файлов: train_net.csv и test_net.csv.

Файл train_net.csv предоставляет информацию о том, когда может произойти конкретное предупреждение, тогда как файл test_net.csv используется исключительно для целей тестирования и не содержит целевой переменной для оценки производительности модели.

Набор данных довольно большой:

  • train_net.csv: приблизительно 4 миллиона пакетов (от 14'066 уникальных сетевых хостов)
  • test_net.csv: приблизительно 2 миллиона пакетов (от 6'186 уникальных сетевых хостов)

Характеристики набора данных

  • FLOW_ID: Уникальный идентификатор потока
  • PROTOCOL_MAP: Строка, представляющая протокол, используемый в потоке; возможные значения включают "ICMP", "TCP", "UDP", "IGMP", "GRE", "ESP", "AH", "EIGRP", "OSPF", "PIM", "IPV6-ICMP", "IPV6-IP", "IPV6-ROUTE", "IPV6-FRAG", "IPV6-NONXT", "IPV6-OPTS" и другие.
  • L4_SRC_PORT: Номер порта источника в потоке; возможные значения от 0 до 65535.
  • IPV4_SRC_ADDR: IP-адрес источника IPv4 в потоке, представленный в виде строки в десятичной нотации с точками (например, "192.168.0.1").
  • L4_DST_PORT: Номер порта назначения в потоке; возможные значения от 0 до 65535.
  • IPV4_DST_ADDR: IP-адрес назначения IPv4 в потоке, представленный в виде строки в десятичной нотации с точками (например, "192.168.0.2").
  • FIRST_SWITCHED: Время начала потока, измеряемое в секундах с начала эпохи (1 января 1970 года).
  • FLOW_DURATION_MILLISECONDS: Длительность потока в миллисекундах.
  • LAST_SWITCHED: Время окончания потока, измеряемое в секундах с начала эпохи (1 января 1970 года).
  • PROTOCOL: Протокол, используемый в потоке; возможные значения включают 1 (ICMP), 6 (TCP), 17 (UDP) и другие.
  • TCP_FLAGS: Флаги TCP, установленные в потоке, представленные в виде двоичной строки (например, "100101").
  • TCP_WIN_MAX_IN: Максимальный объявленный размер окна (в байтах) для входящего трафика.
  • TCP_WIN_MAX_OUT: Максимальный объявленный размер окна (в байтах) для исходящего трафика.
  • TCP_WIN_MIN_IN: Минимальный объявленный размер окна (в байтах) для входящего трафика.
  • TCP_WIN_MIN_OUT: Минимальный объявленный размер окна (в байтах) для исходящего трафика.
  • TCP_WIN_MSS_IN: Максимальный размер сегмента (в байтах) для входящего трафика.
  • TCP_WIN_SCALE_IN: Коэффициент масштабирования окна для входящего трафика.
  • TCP_WIN_SCALE_OUT: Коэффициент масштабирования окна для исходящего трафика.
  • SRC_TOS: Значение Type of Service (ToS) для IP-адреса источника.
  • DST_TOS: Значение Type of Service (ToS) для IP-адреса назначения.
  • TOTAL_FLOWS_EXP: Общее количество ожидаемых потоков.
  • MIN_IP_PKT_LEN: Минимальная длина (в байтах) IP-пакетов в потоке.
  • MAX_IP_PKT_LEN: Максимальная длина (в байтах) IP-пакетов в потоке.

Авторы набора данных

Maria-Elena Mihailescu, Darius Mihai, Mihai Carabas, Mikolaj Komisarek, Marek Pawlicki, Witold Holubowicz, Rafal Kozik: The Proposition and Evaluation of the RoEduNet-SIMARGL2021 Network Intrusion Detection Dataset. Sensors 21(13): 4319 (2021)

Kaggle link

Скачать инструмент
  • TOTAL_PKTS_EXP: Общее количество ожидаемых пакетов в потоке.
  • TOTAL_BYTES_EXP: Общее количество ожидаемых байтов в потоке.
  • IN_BYTES: Количество байтов, полученных в потоке.
  • IN_PKTS: Количество пакетов, полученных в потоке.
  • OUT_BYTES: Количество байтов, отправленных в потоке.
  • OUT_PKTS: Количество пакетов, отправленных в потоке.
  • ANALYSIS_TIMESTAMP: Время анализа потока, измеряемое в секундах с начала эпохи (1 января 1970 года).
  • ANOMALY: Двоичный флаг, указывающий, содержит ли поток аномалию (1 = истина, 0 = ложь).
  • ALERT: (доступно только в обучающем наборе) Тип атаки, обнаруженной в текущем потоке. Это возможные значения:
    • None: Атака не обнаружена
    • Port scanning: Поток представляет собой атаку сканирования портов
    • Denial of Service: Поток представляет собой DoS-атаку
    • Malware: Поток представляет собой атаку вредоносного ПО
  • ID: Уникальный идентификатор потока.