Introduction
MIBurnout est une solution complète de monitoring réseau basée sur le protocole SNMP (v1, v2c, v3). Elle se compose de deux éléments principaux :
- Une Station centrale de supervision totalement autonome.
- Des Satellites pour étendre la liaison de capture de la station et lui faire remonter les données en temps réel.
Installation
Pour procéder à l’installation de notre logiciel rendez-vous sur la page dédiée : Guide de Déploiement
Première exécution
Pour lancer l’application, entrez la commande suivante :
Continuez votre première connexion en entrant les identifiants admin par défaut. Une fois cela fait, fermez l’application et relancez-la. Vous devriez avoir la confirmation que la base de données fonctionne.
Fonction de base
Créer mon utilisateur
Pour créer votre compte utilisateur, cliquez sur S'inscrire au démarrage de l’application. Remplissez le formulaire avec vos identifiants.
Une fois inscrit, connectez-vous avec un compte administrateur (ou demandez à votre administrateur) d’approuver la création du compte via la section Profil.
Vous serez notifié dès la validation de votre compte et vous pourrez vous y connecter.
Capture
Fonction de base de l’application, capturer des trames SNMP sur le réseau est essentiel à son fonctionnement. Pour ce faire, vous avez deux possibilités :
- Lancer une capture sur l’application (Station)
- Lancer une capture depuis un satellite
Capture depuis la station
Dans le volet gauche de l’interface, descendez au niveau de l’option « CAPTURE » et entrez
l’interface sur laquelle vous voulez écouter le réseau (ex: eth0, wlan0).
Capture depuis un satellite
Pour lancer une capture depuis un satellite, nous supposons que vous avez mis en place ce dernier et qu’il dispose de certificats dans son répertoire « certs ». Sinon référez-vous aux sections Certificats et Satellites.
Pour lancer l'exécution, entrez la commande suivante :
Monitoring
Dashboard
Le dashboard est la page d’accueil de l’application. C’est ici que vous visualisez toutes les statistiques issues de l’analyse des paquets SNMP de votre réseau.
Visualisation des champs
L'interface est constituée de deux parties distinctes.
1. Indicateurs Clés (KPI)
La partie supérieure renseigne sur les informations suivantes :
- Total Paquets : Nombre total de paquets analysés par l’application.
- Paquets/s : Débit moyen de paquets SNMP par seconde.
- Suspect : Nombre de paquets étiquetés comme non conformes.
- Alertes : Nombre d’alertes déclenchées.
2. Graphiques & Analytique
La deuxième partie est composée de visualisations graphiques avancées :
- Débit (Paquets/s) : Représentation graphique temporelle du débit de paquets SNMP.
- Niveau de Menace (%) : Représentation graphique temporelle de l’évolution de l’indice d’évènements anormaux détectés.
- Distribution PDU : Diagramme à barres représentant le pourcentage des types de requêtes SNMP détectés.
- Diagrammes circulaires : Représentent le pourcentage total (depuis le
lancement) des évènements suivants :
- Menace : Pourcentage de paquets détectés comme malveillants.
- Erreurs : Pourcentage de paquets malformés ou incorrects.
- Réputation Min : Pourcentage de la réputation globale actuelle du réseau.
Capture
L’onglet capture permet de visualiser en détail le contenu des trames SNMP détectées. On y retrouve aussi la liste des Alertes relatives à l’analyse de trames et leur comportement dans le réseau.
Fenêtre « Paquets SNMP »
C’est la liste des paquets SNMP affichés par date d’émission (le plus récent en haut). On peut y retrouver des informations clés comme l’heure d’émission, l’IP source, l’IP destination, le type de requête ainsi que la communauté interrogée.
Fenêtre « Détails du paquet »
Pour afficher des données dans cette fenêtre, cliquez simplement sur le paquet que vous voulez visualiser dans la liste « Paquets SNMP ».
C’est ici que vous pouvez consulter l’intégralité des informations (Version SNMP, OIDs interrogés, adresses MAC, valeurs des variables, etc.).
Fenêtre « Alertes Comportementales »
On y retrouve la liste des alertes générées, accompagné d'un court descriptif et de la raison/origine de leur déclenchement.
Réseau
Appareils
Cet onglet permet d’afficher le détail de l’activité SNMP d’une machine sur le réseau.
On y retrouve des informations globales comme :
- Le nombre total de machines.
- Le nombre total de machines marquées comme « de confiance ».
- Le nombre total de machines ignorées.
Fenêtre « Appareils SNMP Découverts »
Liste des appareils détectés. Les appareils déclarés comme "de confiance" sont marqués en vert. On y retrouve des informations comme l’adresse IP, le nom d’hôte, la dernière version SNMP utilisée, le nombre de paquets émis ainsi que le statut de la machine.
Pour déclarer une machine comme de confiance, faites un clic droit dessus puis « Marquer comme connu ».
Vous avez d'autres options comme : renommer un appareil, copier son adresse, réinitialiser son statut ou le supprimer de la liste.
Fenêtre « Détails de l’appareil »
Cette fenêtre permet de visualiser en détail l’activité SNMP de la machine. Voici un aperçu :
Topologie
Permet d’afficher un graphique interactif contenant l’ensemble des appareils détectés.
Cette page permet de visualiser quel appareil communique avec quel autre appareil de façon globale. Il est possible de cliquer sur un nœud représentant une machine pour afficher un court descriptif (Adresse IP, paquets émis, communautés interrogées).
Satellites
Page dédiée à la gestion des sondes (satellites) ayant pour mission de capturer le trafic SNMP d’un sous-réseau ou VLAN vers la Station.
On retrouve deux parties. La première (gauche) affiche les satellites et permet de les gérer. La seconde (droite) permet d’afficher le détail de chaque satellite.
Ajouter mon Satellite
C’est une des fonctionnalités primaires de cette application. L’ajout de satellite permet à l’application d’évoluer en même temps que votre réseau. Voir aussi : Déploiement Satellite.
Pour ajouter un satellite, cliquez sur le bouton « Ajouter » en haut à gauche.
- Adresse IP : Adresse IP du satellite.
- Port : Le Port d’écoute de son API.
- Description : Une description optionnelle.
Transfert de Certificats
Une fois le satellite créé, cliquez sur le bouton « Cert ». Voir aussi : Création de Certificats.
- Mot de passe : Mot de passe SSH/Root.
- Certificat : Chemin du fichier certificat.
- Clé privée : Chemin de la clé du certificat.
Une fois cela fait, le statut du satellite devrait passer en Online. Cela peut prendre une petite minute à s’actualiser.
Sécurité
Analyse
Regroupe les éléments d’analyse comportementale sur le réseau. Voici un aperçu de la page :
On y retrouve trois sections :
Analyse de baseline dynamique
Analyse du débit de paquets par seconde avec un seuil dynamique permanent afin de détecter une forte affluence de paquets pouvant faire écho à un scan ou une tentative de déni de service.
Profils IP – Analyse Comportementale
Liste des machines avec un score de réputation ainsi que le nombre de paquets, le nombre de paquets erronés et le débit.
Alertes de dépassement de Seuil
Liste des alertes relatives au dépassement du seuil de paquets par seconde. Les alertes précisent le PPS, le pourcentage par rapport à celui de référence ainsi que la date d’émission de l’alerte.
Certificats
Onglet traitant de la gestion des certificats.
Génération d’une CA et sub-CA
Pour l’émission de certificats, il est indispensable de posséder une CA et sub-CA pour la génération de vos certificats.
Commencez par générer votre CA en cliquant sur « Générer Root CA ». Une fois cela fait, faites la même chose pour la sub-CA (Signing CA). Dans les deux cas, vous allez avoir cette fenêtre de dialogue :
Ajouter un certificat
Vous pouvez créer ou importer des certificats serveur.
Pour créer un certificat, appuyez sur le bouton « + Nouveau certificat ». La fenêtre de dialogue suivante doit apparaître :
Vous pouvez y entrer les informations essentielles correspondant à votre situation. Une fois cela fait, cliquez sur générer pour créer le certificat. Il devrait apparaître dans la liste des certificats.
Importation manuelle
Dans le cas où vous possédez déjà un certificat et que vous voulez l’importer, cliquez sur « Importer ».
Ces trois sections contiennent les différents types de certificats (CA, Server, Client). Placez le vôtre dans la bonne section.
/var/lib/miburnout/Pki_store
SNMPv3
Cette page permet d’enregistrer les informations d’authentification et de chiffrement SNMPv3 pour permettre à l’application de déchiffrer les trames chiffrées.
Pour ce faire, il suffit d’entrer les informations nécessaires dans le volet de droite (Engine ID, Utilisateur, Auth Protocol/Key, Priv Protocol/Key). Une fois cela fait, cliquez sur « Enregistrer ».
Vous devriez voir l’utilisateur SNMPv3 apparaître dans le volet de gauche :
Système
API REST & Configuration HTTPS
Une fois le certificat mis en place, vous pourrez réactualiser l'API et tenter de vous connecter.
Interface de Test & Documentation
L'interface offre un client REST intégré (type Swagger/Postman simplifié) pour tester vos endpoints directement depuis le navigateur.
- Méthode & URL : Choisissez l'action (GET, POST...) et le chemin de la
ressource (ex:
/api/status). - Templates : Utilisez le menu déroulant "Templates" pour charger automatiquement des exemples de requêtes (Status, Login, Liste Satellites...).
- Réponse : Le résultat (JSON) s'affiche en bas avec le code HTTP et le temps réponse.
BOT Telegram
1. Configuration
Pour activer les notifications, vous devez d'abord créer un Bot sur Telegram. La procédure est détaillée dans la documentation officielle de Telegram.
Une fois votre bot créé, vous n'avez besoin que de deux informations pour lier la station :
- Bot Token : La clé d'accès fournie par BotFather.
- Chat ID : L'identifiant de votre conversation (ou groupe) avec le bot.
2. Système d'Alertes Auto
Une fois configuré, le bot vous notifie en temps réel des événements critiques (Flood, Scan, Satellites Offline) sans aucune action requise de votre part.
Vous pouvez choisir précisément quels types d'événements déclenchent une notification via les cases à cocher (Critique, Warning, Info...).
3. Commandes & Interactions
Le bot n'est pas seulement passif, il permet aussi d'interroger la station à distance via des commandes dédiées.
Commandes disponibles :
/status: État de santé des services (Core, Auth, Capture)./stats: Statistiques globales du réseau./users: Liste des utilisateurs connectés./rapport: Générer un rapport PDF instantané./alertes: Voir les 5 dernières alertes./logs: Télécharger les fichiers de logs./silence [min]: Mettre en pause les notifications.
Profil & Administration
Cette page permet d’administrer votre compte et celui des autres dans le cas où vous êtes un administrateur. Voici à quoi ressemble la page lors de votre première connexion.
Mon Profil
La section « Mon Profil » est commune à tous les utilisateurs. Elle permet de verrouiller notre session, de se déconnecter ou d’activer la 2FA.
Gestion des Utilisateurs
La Section Utilisateurs est accessible uniquement aux administrateurs. Elle permet de gérer les comptes et leurs permissions / rôles.
Il y a différents types de rôles pour un utilisateur. De la même façon, il est possible d’attribuer des permissions plus personnalisées en cliquant sur le cadenas juste à gauche. Enfin, il est possible de désactiver et/ou supprimer un compte.
Voici un aperçu de la gestion des permissions :
Tickets d'inscription
La section Tickets permet d’approuver et refuser la création d’un compte. Voici un aperçu d’une demande d’activation de compte :
Introduction API
Architecture & Sécurité
Notre architecture repose sur une double couche d'API pour garantir une sécurité maximale :
- Flask (Python) : Agit comme une "douane". C'est le point d'entrée unique. Il valide votre Token, vérifie vos permissions (RBAC) et filtre les données.
- InfluxDB : Stockage haute performance des séries temporelles. Il n'est jamais exposé directement. Flask se charge d'interroger InfluxDB pour vous.
Cette séparation assure que l'accès aux données est toujours authentifié, journalisé et restreint selon votre rôle (Admin, Opérateur, etc.).
Interface Graphique
Il est aussi possible d'effectuer des requêtes et de configurer l'API via l'interface visuelle :
Général
Endpoints pour vérifier l'état du système.
Retourne l'état de santé global de la station et de ses modules (Core, Auth, Capture).
curl -k -X GET https://localhost:5000/api/status
{"version": "2.0.0", "core": true, "auth": true, "capturing": true}
{"error": "Internal Server Error"}
Endpoint léger pour vérifier la connectivité réseau avec l'API.
curl -k -X GET https://localhost:5000/api/ping
{"pong": true, "timestamp": "2026-01-16T12:00:00"}
Renvoie la liste brute des endpoints disponibles.
curl -k -X GET https://localhost:5000/api/docs
{"version": "2.0.0", "endpoints": ["GET /api/status", ...]}
Authentification
Gestion des sessions et des utilisateurs.
Authentifie un utilisateur et délivre un token de session Bearer.
curl -k -X POST https://localhost:5000/api/auth/login -H "Content-Type: application/json" -d '{"username":"admin", "password":"password"}'
{"success": true, "token": "eyJhGs...", "user": {"role": "admin"}}
{"success": false, "error": "Identifiants invalides"}
Invalide le token de session actuel.
curl -k -X POST -H "Authorization: Bearer " https://localhost:5000/api/auth/logout
{"success": true}
Vérifie si le token fourni est toujours valide.
curl -k -H "Authorization: Bearer " https://localhost:5000/api/auth/verify
{"valid": true, "user": {...}}
{"valid": false}
Liste tous les utilisateurs enregistrés (Admin uniquement).
curl -k -H "Authorization: Bearer " https://localhost:5000/api/auth/users
{"users": [{"username": "admin", "role": "admin"}]}
{"error": "Permission insuffisante"}
Crée un nouvel utilisateur (Admin uniquement).
curl -k -X POST https://localhost:5000/api/auth/users -H "Authorization: Bearer " -H "Content-Type: application/json" -d '{"username":"bob", "password":"123", "role":"viewer"}'
{"success": true, "message": "User created"}
{"success": false, "error": "Username already exists"}
Capture Réseau
Contrôle du moteur de sniffing.
Démarre le processus de sniff réseau sur l'interface spécifiée.
curl -k -X POST https://localhost:5000/api/capture/start -H "Authorization: Bearer " -H "Content-Type: application/json" -d '{"interface": "eth0"}'
{"success": true, "interface": "eth0"}
{"success": false, "error": "Capture already running"}
Arrête le processus de capture en cours.
curl -k -X POST -H "Authorization: Bearer " https://localhost:5000/api/capture/stop
{"success": true, "duration": 42.5}
{"success": false, "error": "Not running"}
Vide le tampon mémoire des paquets (mais ne touche pas à InfluxDB).
curl -k -X POST -H "Authorization: Bearer " https://localhost:5000/api/capture/clear
{"success": true}
Récupère les paquets capturés. Filtres possibles : limit, offset, tag.
curl -k -H "Authorization: Bearer " "https://localhost:5000/api/packets?limit=50&tag=1"
{"packets": [{"ip_src":"1.1.1.1", "tag":1}], "count": 1}
Analyse
Métriques, Alertes et Inventaire.
Donne les statistiques globales (paquets totaux, suspects, autorisés).
curl -k -H "Authorization: Bearer " https://localhost:5000/api/stats
{"total": 1500, "suspect": 12, "authorized": 1488}
Liste les alertes de sécurité générées par l'IA (Isolation Forest).
curl -k -H "Authorization: Bearer " "https://localhost:5000/api/alerts?limit=10"
{"alerts": [{"type": "anomaly", "score": -0.8}]}
Renvoie l'inventaire des appareils (IP, MAC, Hostname) découverts.
curl -k -H "Authorization: Bearer " https://localhost:5000/api/devices
{"devices": [{"ip": "192.168.1.50", "vendor": "Cisco"}]}
Fournit les métriques de base utilisées par le modèle d'IA.
curl -k -H "Authorization: Bearer " https://localhost:5000/api/baseline
{"baseline": {"packets_analyzed": 10000}}
Historique du débit réseau (Paquets Par Seconde).
curl -k -H "Authorization: Bearer " "https://localhost:5000/api/history/pps?duration=-1h"
{"success": true, "history": [{"time": "...", "pps": 50}]}
Satellites (Distribué)
Gestion de la flotte d'agents distants.
Liste tous les satellites enregistrés et leur statut.
curl -k -H "Authorization: Bearer " https://localhost:5000/api/satellites
{"satellites": [{"id": "sat_1", "ip": "10.0.0.5", "status": "online"}]}
Supprime définitivement un satellite de la configuration.
curl -k -X DELETE -H "Authorization: Bearer " https://localhost:5000/api/satellites/sat_1_123456
{"success": true, "message": "Satellite supprimé"}
Enregistre manuellement un nouveau satellite par IP/Port.
curl -k -X POST https://localhost:5000/api/satellites/add -H "Authorization: Bearer " -H "Content-Type: application/json" -d '{"ip": "10.0.0.5", "port": 5001}'
{"success": true, "message": "Satellite added"}
{"success": false, "error": "IP requise"}
Force la vérification immédiate (Ping) de toute la flotte.
curl -k -X POST -H "Authorization: Bearer " https://localhost:5000/api/satellites/check-status
{"success": true, "satellites": [...]}
Déclenche la récupération manuelle des données (Pull) sur tous les satellites.
curl -k -X POST -H "Authorization: Bearer " https://localhost:5000/api/satellites/fetch-all
{"success": true, "total_packets": 150}
Active la synchronisation automatique en arrière-plan (intervalle en secondes).
curl -k -X POST https://localhost:5000/api/satellites/polling/start -H "Authorization: Bearer " -H "Content-Type: application/json" -d '{"interval": 5}'
{"success": true, "message": "Polling démarré"}
Arrête la synchronisation automatique.
curl -k -X POST -H "Authorization: Bearer " https://localhost:5000/api/satellites/polling/stop
{"success": true, "message": "Polling arrêté"}