
netsentryx — Updated!
Событийно-ориентированная платформа сетевого мониторинга, выполняющая захват пакетов в реальном времени (Npcap), низколатентную аналитику трафика и обнаружение угроз без учителя с помощью PyTorch Autoencoder, поддерживаемая асинхронным многоканальным движком оповещений.
NetSentryx PRO 🛡️
Высокопроизводительный движок сетевого мониторинга и обнаружения угроз в реальном времени на основе ИИ
NetSentryx PRO — это платформа сетевого мониторинга и анализа угроз нового поколения, основанная на событийно-ориентированной архитектуре. Сочетая сигнатурные правила с глубоким автоэнкодером на PyTorch, она обеспечивает обнаружение аномалий в пакетах и netflow-потоках с задержкой менее 10 мс, автоматическое многоканальное оповещение (Slack, Discord, Email) и интерактивную панель SOC в реальном времени.
🏗️ Архитектура системы
Приведённая ниже схема иллюстрирует приём данных, вывод глубокой нейронной сети в реальном времени, конвейер оповещений и слой визуализации через WebSocket:
flowchart TD
subgraph Capture & Ingestion
A[Network Interface / Packet Simulator] -->|Raw Traffic Events| B(Lightweight Event Bus)
B -->|Packet Stream| C[Flow Aggregation Engine]
end
subgraph Deep Learning Inference
C -->|Aggregated Telemetry Vectors| D[PyTorch TrafficAutoencoder]
D -->|MSE Reconstruction Loss| E{Threshold Evaluation}
end
subgraph Alert Dispatch
E -->|No Anomaly| F[Status: Optimal]
E -->|Anomaly Detected| G[FastAPI BackgroundTasks]
G -->|Save Event| H[(SQLite Datastore)]
G -->|Broadcast WebSocket| I[HTML Live Dashboard]
G -->|Dispatch Webhooks| J[Slack / Discord / Custom Webhook]
G -->|Dispatch SMTP| K[Email Alerting]
end
style D fill:#EE4C2C,stroke:#fff,stroke-width:2px,color:#fff
style I fill:#005571,stroke:#fff,stroke-width:2px,color:#fff
style G fill:#00bf8f,stroke:#fff,stroke-width:2px,color:#fff
🚀 Ключевые возможности
- ⚡ Приём трафика в реальном времени: агрегирует пакетные кадры в подробные netflow-сводки на лету с минимальной задержкой.
- 🧠 Обнаружение аномалий с помощью глубокого автоэнкодера PyTorch: использует лёгкую нейронную сеть PyTorch (
TrafficAutoencoder) для выявления сложных zero-day эксплойтов, сканирования или DDoS-атак на основе ошибки реконструкции многомерных признаков. - 📈 Запуск без ручного обучения: автоматическая синтетическая подгонка и статистическая калибровка порогов (
Mean + 3 * Std) при запуске сервера, что делает систему полностью работоспособной сразу после установки. - ⏱️ Задержка вывода менее 10 мс: оптимизированный конвейер вывода обеспечивает оценку высоконагруженных потоков пакетов в реальном времени.
- 📣 Многоканальная отправка оповещений: асинхронно отправляет подробные оповещения о вторжениях в Slack webhooks, Discord webhooks, пользовательские HTTP API и SMTP-письма с помощью
BackgroundTasksFastAPI. - 📊 Интерактивная панель SOC: элегантная тёмная панель на Tailwind CSS, Chart.js и WebSockets для визуализации метрик пропускной способности и лент угроз в реальном времени.
📁 Структура проекта
NetSentryx/
├── config/
│ ├── config.yaml # System, dashboard, and alerting channel configurations
│ └── rules.yaml # Threat detection thresholds and rule properties
├── src/
│ ├── alerts/
│ │ ├── ml_detection.py # PyTorch TrafficAutoencoder & feature scaling
│ │ ├── manager.py # Async alert dispatcher (Discord, Slack, Email)
│ │ └── detection.py # Rule-based packet signature detection engine
│ ├── core/
│ │ ├── config_loader.py # Configuration loader utilities
│ │ ├── logger.py # Database-integrated system logger
│ │ └── time_utils.py # Timezone-aware timestamp utilities
│ ├── dashboard/
│ │ ├── templates/
│ │ │ └── index.html # Live HTML5 Dashboard template
│ │ └── server.py # FastAPI API Router and WebSocket broadcast controller
│ ├── database/
│ │ ├── manager.py # SQLite connection & database actions
│ │ └── models.py # SQLAlchemy schema definitions (Alerts, Logs, Flows)
│ ├── flows/
│ │ ├── capture.py # Scapy packet sniffer thread
│ │ └── processor.py # Flow aggregation and metric extractor
│ └── main.py # Application entrypoint
└── main.py # Root script runner
🛠️ Быстрый старт и руководство по настройке
1. Предварительные требования
Убедитесь, что установлен Python 3.10+. Для захвата реальных сетевых интерфейсов:
- Windows: установите Npcap (выберите «Install Npcap in WinPcap API-compatible Mode»).
- Linux: установите
libpcap-devс помощьюsudo apt-get install libpcap-dev.
2. Установка
Клонируйте репозиторий и установите зависимости (для более быстрой установки настоятельно рекомендуется использовать uv):
# Clone the repository
git clone https://github.com/yourusername/netsentryx.git
cd netsentryx
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install requirements
pip install -r requirements.txt
3. Настройка окружения (.env)
Создайте файл .env в корне проекта для настройки учётных данных уведомлений:
# Discord Configuration
DISCORD_ENABLED=true
DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/your-webhook-id/your-webhook-token"
# Slack Configuration
SLACK_ENABLED=true
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/YOUR_WORKSPACE_ID/YOUR_CHANNEL_ID/YOUR_SECRET_TOKEN"
# SMTP Email Configuration
SMTP_ENABLED=true
SMTP_SERVER="smtp.gmail.com"
SMTP_PORT=587
SMTP_USERNAME="[email protected]"
SMTP_PASSWORD="your-app-password"
SMTP_FROM_EMAIL="[email protected]"
SMTP_TO_EMAIL="[email protected]"
4. Запуск платформы
🧪 Режим симуляции (включает симулятор синтетического трафика)
python main.py --simulate
🌐 Режим захвата в реальном времени (требуются права администратора/sudo)
python main.py
Откройте браузер и перейдите по адресу http://localhost:8000, чтобы просмотреть панель в реальном времени.
📖 Документация API
Конечная точка телеметрии и вывода
- URL:
/api/v1/telemetry/analyze - Метод:
POST - Content-Type:
application/json
Тело запроса
{
"packet_count": 550,
"byte_count": 850000,
"flow_duration": 4.5,
"syn_flag_ratio": 0.85,
"port_entropy": 3.2,
"byte_rate": 188888.8,
"source_ip": "192.168.1.120",
"dest_ip": "10.0.0.5",
"protocol": "TCP"
}
Ответ (нормальный трафик)
{
"status": "NORMAL",
"threat_level": "low",
"anomaly_score": 0.3083,
"threshold": 2.1319
}
Ответ (аномальный трафик)
{
"status": "ANOMALOUS",
"threat_level": "critical",
"anomaly_score": 117999.03,
"threshold": 2.1319,
"alert": {
"id": 12,
"timestamp": "2026-08-05T14:13:31.373Z",
"rule_id": "ml_autoencoder_anomaly",
"rule_name": "ML Autoencoder Anomaly",
"source_ip": "192.168.1.120",
"severity": "critical",
"description": "Deep autoencoder reconstruction error exceeded anomaly threshold (score: 117999.0300, threshold: 2.1320).",
"metrics": { ... }
}
}
Исторические запросы
| Конечная точка | Метод | Описание | Пример ответа |
|---|---|---|---|
/api/alerts | GET | Возвращает последние оповещения об угрозах, сохранённые в БД | [{"id": 1, "rule_name": "Port Scanning", ...}] |
/api/flows | GET | Возвращает последние журналы телеметрии сетевых потоков | [{"source_ip": "192.168.1.10", "packet_count": 45, ...}] |
/api/logs | GET | Возвращает журналы аудита внутренней системы | [{"level": "INFO", "message": "ML engine trained...", ...}] |
🛡️ Лицензия
Этот проект распространяется под лицензией MIT — подробности см. в файле LICENSE.