📌 О программе
Система анализирует сетевой трафик в режиме реального времени с помощью нейронной сети MLP, обученной на датасете CICIDS2017. Каждые 5 секунд собираются признаки активных сетевых потоков и передаются в модель, результат отображается на экране.
▶ Как начать работу
- Нажмите кнопку «СТАРТ» — система начнёт захватывать пакеты и анализировать трафик.
- Через 5–10 секунд в главном блоке появится первый результат классификации.
- Нажмите «СТОП», чтобы приостановить анализ (захват пакетов продолжится).
- Нажмите «СБРОС», чтобы очистить все данные и вернуться в начальное состояние.
- Кнопка «🎬 СИМУЛЯЦИЯ» позволяет запустить DoS-атаку через
hping3 для демонстрации обнаружения.
- Кнопка «📥 ОТЧЁТ» формирует HTML-файл с историей сессии для скачивания.
🎨 Расшифровка статусов
| Статус | Значение | Действие |
| ✅ НОРМА | Обычный трафик, угроз не обнаружено | Всё в порядке |
| 💥 DDoS АТАКА | Распределённая атака отказа в обслуживании | Срочно изолировать сегмент сети |
| 🔥 DoS АТАКА | Атака отказа в обслуживании | Проверить источник и заблокировать IP |
| 🔍 СКАНИРОВАНИЕ ПОРТОВ | Разведка сети, возможная подготовка к атаке | Проверить журналы, возможна подготовка атаки |
| 🔑 БРУТФОРС | Перебор паролей / учётных данных | Ввести ограничение попыток входа |
| 🤖 БОТНЕТ | Активность ботов | Найти заражённый узел и изолировать |
| 🕵️ ИНФИЛЬТРАЦИЯ | Признаки несанкционированного проникновения | Немедленный аудит безопасности |
📊 Уверенность модели
Показывает, насколько модель уверена в своём предсказании. Значения ниже 60% означают неоднозначную ситуацию — не следует принимать однозначных решений без дополнительной проверки. Полоса «Вероятности классов» показывает топ-5 вариантов с реальными вероятностями от нейросети (с температурным сглаживанием T=1.5).
⚠️ Вероятности в блоке «Вероятности классов» отражают уверенность модели во всех классах независимо от итогового предсказания. Если модель колеблется между Benign и DoS — это видно именно здесь.
🔬 Как работает захват пакетов
Сниффер запущен в фоновом потоке на сервере и перехватывает все IP-пакеты сетевого интерфейса с помощью библиотеки Scapy (использует libpcap в режиме «неразборчивого» захвата). Каждый пакет обрабатывается в реальном времени:
- Извлекаются поля IP-заголовка: IP источника/назначения, протокол (TCP/UDP/ICMP).
- Для TCP считываются порты, флаги (SYN/ACK/FIN/RST/PSH/URG/CWE/ECE), размер окна и смещение данных.
- Рассчитывается размер заголовка (IP + транспортный уровень) и размер полезной нагрузки.
- Служебный трафик отбрасывается: loopback (127.0.0.1, ::1) и порт 5000 (Flask-сервер).
- Данные пакета передаются в движок потоков и записываются в кольцевой буфер (последние 200 пакетов).
🔄 Конвейер анализа (pipeline)
Полный путь от пакета до предсказания — 5 шагов (отображаются в панели «Конвейер» в реальном времени):
- 1. Захват пакетов. Scapy перехватывает IP-пакеты через BPF-фильтр на уровне ядра ОС.
- 2. Группировка в потоки. Пакеты объединяются в двунаправленные потоки по пятёрке (IP src, IP dst, порт src, порт dst, протокол).
- 3. Извлечение 70 признаков (каждые 5 сек). Счётчики пакетов/байт, статистики размеров, IAT, TCP-флаги, скорости, активность/простой.
- 4. Нормализация StandardScaler. Вектор приводится к нулевому среднему и единичному отклонению — тот же скейлер, что при обучении.
- 5. MLP-классификация + калибровка. Нейросеть возвращает вероятности, применяется температурное сглаживание (T=1.5) и проверка sanity check.
🎬 Симуляция атак
Кнопка «СИМУЛЯЦИЯ» открывает окно с выбором типа атаки для демонстрации работы системы. Доступна только DoS-атака, потому что:
- DDoS — требует множество распределённых источников (ботнет), что невозможно воспроизвести с одного VPS.
- PortScan / Bruteforce — направлены на конкретные цели, демонстрация требует отдельной жертвы и договорённостей.
- Botnet / Infiltration — многоэтапные атаки с длительной подготовкой, не воспроизводимые в рамках демо.
DoS-атака запускается командой hping3 --flood --syn -p 80 localhost — генерирует поток SYN-пакетов на локальный интерфейс, который сниффер обнаруживает и классифицирует.
📦 Таблица пакетов
Отображает последние захваченные IP-пакеты в реальном времени. Обновляется раз в секунду. Строки выделены цветом по протоколу: ■ TCP, ■ UDP, ■ ICMP. Захват работает всегда — даже когда анализ остановлен.
📋 Лог событий
Фиксирует только аномалии (не-Benign предсказания) с временными метками и уровнем уверенности. Нормальный трафик в лог не попадает, чтобы не замусоривать историю. Лог сохраняется до нажатия «СБРОС» или выгружается в HTML-отчёт.
📥 Скачать отчёт
Кнопка «📥 ОТЧЁТ» формирует HTML-файл с полной историей текущей сессии: захваченные пакеты, лог событий, параметры нейросети и все предсказания с вероятностями. Файл открывается в любом браузере без установки дополнительного ПО.
⚙️ Технические параметры
- Модель: MLP (многослойный перцептрон), 3 скрытых слоя 128 → 64 → 32, активация ReLU
- Признаки: 70 сетевых признаков из CICFlowMeter (стандарт датасета CICIDS2017)
- Датасет: CICIDS2017 — 7 классов трафика, обучение с взвешиванием классов (MAX_RATIO = 15)
- Окно анализа: 5 секунд, сброс счётчиков после каждого окна
- Температурное сглаживание вероятностей: T = 1.5
- Минимальные пороги sanity check: DDoS ≥ 500 пак/с, DoS ≥ 200, PortScan ≥ 10, Bruteforce ≥ 5
- Потоки без активности более 120 секунд автоматически удаляются из памяти
- Связь браузер ↔ сервер: WebSocket (Socket.IO), обновление каждую секунду