Retour aux mises à jour
UpdatedSep 2, 2026

netsentryx — Mis à jour !

Une plateforme de surveillance réseau événementielle qui effectue une capture de paquets en direct (Npcap), une analyse de trafic à faible latence et une détection des menaces non supervisée à l'aide d'un Autoencoder PyTorch, soutenue par un moteur d'alerte asynchrone multicanaux.

Partager

NetSentryx PRO 🛡️

Moteur de détection des menaces et d'observabilité réseau en temps réel, haute performance et piloté par l'IA

FastAPI PyTorch Python License: MIT Build Status

NetSentryx PRO est une plateforme de surveillance réseau et de renseignement sur les menaces de nouvelle génération, pilotée par les événements. En combinant des signatures basées sur des règles avec un Deep Autoencoder PyTorch, elle offre une détection d'anomalies sur les paquets et les netflows en moins de 10 ms, une alerte automatisée multicanale (Slack, Discord, Email) et un tableau de bord SOC interactif en temps réel.


🏗️ Architecture du système

Le diagramme de flux suivant illustre l'ingestion des données, l'inférence en temps réel par apprentissage profond, le pipeline d'alerte et la couche de visualisation 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

🚀 Fonctionnalités clés

  • Ingestion du trafic en temps réel : Agrège les trames de paquets en résumés netflow riches à la volée avec une latence minimale.
  • 🧠 Détection d'anomalies par Deep Autoencoder PyTorch : Utilise un réseau de neurones PyTorch léger (TrafficAutoencoder) pour détecter les exploits zero-day sophistiqués, les scans ou les attaques DDoS à partir de l'erreur de reconstruction de caractéristiques multivariées.
  • 📈 Démarrage sans entraînement manuel : Intègre un ajustement synthétique automatisé et une calibration statistique des seuils (Mean + 3 * Std) au démarrage du serveur, le rendant pleinement fonctionnel dès la sortie de la boîte.
  • ⏱️ Latence d'inférence inférieure à 10 ms : Un pipeline d'inférence optimisé garantit une évaluation en temps réel des flux de paquets à haut débit.
  • 📣 Diffusion d'alertes multicanale : Pousse de manière asynchrone des alertes d'intrusion détaillées vers les webhooks Slack, les webhooks Discord, les API HTTP personnalisées et les emails SMTP à l'aide des BackgroundTasks de FastAPI.
  • 📊 Tableau de bord SOC interactif : Tableau de bord élégant en mode sombre propulsé par Tailwind CSS, Chart.js et WebSockets pour une visualisation en temps réel des métriques de débit et des flux de menaces en direct.

📁 Structure du projet

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

🛠️ Guide de démarrage rapide et d'installation

1. Prérequis

Assurez-vous que Python 3.10+ est installé. Si vous capturez des interfaces réseau en direct :

  • Windows : Installez Npcap (sélectionnez « Install Npcap in WinPcap API-compatible Mode »).
  • Linux : Installez libpcap-dev via sudo apt-get install libpcap-dev.

2. Installation

Clonez le dépôt et installez les dépendances (l'utilisation de uv est fortement recommandée pour une installation plus rapide) :

# 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. Configuration de l'environnement (.env)

Créez un fichier .env à la racine du projet pour configurer les identifiants de notification :

# 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. Lancement de la plateforme

🧪 Mode simulation (inclut un simulateur de trafic synthétique)

python main.py --simulate

🌐 Mode capture en direct (nécessite des privilèges administrateur/sudo)

python main.py

Ouvrez votre navigateur et accédez à http://localhost:8000 pour consulter le tableau de bord en direct.


📖 Documentation de l'API

Point de terminaison de télémétrie et d'inférence

  • URL : /api/v1/telemetry/analyze
  • Méthode : POST
  • Content-Type : application/json

Charge utile de la requête

{
  "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"
}

Réponse (trafic normal)

{
  "status": "NORMAL",
  "threat_level": "low",
  "anomaly_score": 0.3083,
  "threshold": 2.1319
}

Réponse (trafic anormal)

{
  "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": { ... }
  }
}

Requêtes historiques

Point de terminaisonMéthodeDescriptionExemple de réponse
/api/alertsGETRécupère les alertes de menaces récentes enregistrées en base de données[{"id": 1, "rule_name": "Port Scanning", ...}]
/api/flowsGETRécupère les journaux de télémétrie de flux réseau récents[{"source_ip": "192.168.1.10", "packet_count": 45, ...}]
/api/logsGETRécupère les journaux d'audit du système backend[{"level": "INFO", "message": "ML engine trained...", ...}]

🛡️ Licence

Ce projet est sous licence MIT - consultez le fichier LICENSE pour plus de détails.

Catégories