SOC Pipeline¶
Vue d'ensemble¶
Le SOC NEBULA est un pipeline complet de détection, corrélation et réponse aux incidents. Chaque VM est instrumentée, chaque alerte est corrélée avec la threat intelligence, et chaque incident est tracé.
graph TB
subgraph COLLECT["Collecte"]
TT[Tetragon eBPF<br/>Kernel monitoring]
SU[Suricata IDS<br/>48 838 règles]
AD[Auditd<br/>17 règles forensic]
SC[Syscheck<br/>Intégrité fichiers]
end
subgraph SIEM["SIEM"]
WZ[Wazuh v4.14<br/>13 agents<br/>25 règles custom]
end
subgraph SOAR["SOAR — Shuffle"]
SW{Switch sur<br/>location}
B1[Branche Tetragon]
B2[Branche Suricata]
B3[Branche Syscheck]
end
subgraph RESPONSE["Réponse"]
MP[MISP<br/>Threat Intel]
IR[IRIS<br/>Incident Mgmt]
VR[Velociraptor<br/>Live Response]
end
TT --> WZ
SU --> WZ
AD --> WZ
SC --> WZ
WZ -->|webhook level >= 10| SW
SW --> B1
SW --> B2
SW --> B3
B1 --> MP
B2 --> MP
B3 --> MP
MP --> IR
B1 --> VR
B2 --> VR
VR --> IR
Les 3 branches du pipeline SOAR¶
Déclencheur : exécution suspecte détectée au niveau kernel via eBPF
- Wazuh reçoit l'event Tetragon (level >= 10)
- Shuffle vérifie l'IOC dans MISP (hash, IP)
- Création d'un ticket IRIS avec les détails de l'event
- Velociraptor exécute une live response :
netstat,who,docker top,ps - Résultats attachés au ticket IRIS
- Si IOC critique dans MISP → escalade automatique + notification
Déclencheur : alerte IDS réseau (signature ET Open)
- Suricata écrit dans eve.json → Wazuh agent local
- Shuffle vérifie l'IP source dans MISP
- Ticket IRIS créé avec l'alerte Suricata
- Velociraptor exécute
netstatsur la machine cible - Résultats attachés au ticket
- Si IP dans MISP → escalade
Déclencheur : modification détectée sur un fichier surveillé
- Wazuh FIM détecte le changement (hash SHA256)
- Shuffle vérifie le hash dans MISP
- Ticket IRIS créé avec le diff, le hash et le log brut
- Si hash dans MISP → escalade
Wazuh — Règles custom¶
Auditd (11 règles)¶
Les règles auditd surveillent les actions critiques au niveau kernel :
| Rule ID | Clé auditd | Level | Ce que ça détecte |
|---|---|---|---|
| 100401 | identity | 8 | Modification de /etc/passwd, /etc/shadow, /etc/group |
| 100402 | sudo_changes | 10 | Modification de /etc/sudoers |
| 100403 | sshd_config | 10 | Modification de la config SSH |
| 100404 | cron | 6 | Modification des crontabs |
| 100405 | kernel_modules | 12 | Chargement/déchargement de modules kernel |
| 100406 | docker_cmd | 6 | Exécution de commandes Docker |
| 100407 | docker_config | 10 | Modification de la config Docker daemon |
| 100408 | nftables | 10 | Modification des règles firewall |
| 100409 | root_exec | 8 | Commande root exécutée par un user (sudo) |
Tetragon (14 règles)¶
| Level | Ce que ça détecte |
|---|---|
| 12 | Outils réseau suspects (nmap, netcat, socat) |
| 12 | Accès fichiers sensibles (/etc/shadow, id_rsa) |
| 10 | Outils de téléchargement (wget, curl) sur bare-metal |
| 8 | Exécution de shell |
| 6 | Exécution root |
Complémentarité Auditd / Tetragon
Auditd trace au niveau syscall : qui a modifié quel fichier, avec quel processus. Tetragon trace au niveau eBPF : quelle commande a été exécutée, dans quel container. Les deux se complètent — Tetragon détecte l'exécution, Auditd trace la modification résultante.
Suricata IDS¶
| Paramètre | Valeur |
|---|---|
| Interface | af-packet sur l'interface WAN |
| Règles | 48 838 règles ET Open |
| Mise à jour | suricata-update automatique |
| Output | eve.json → Wazuh agent local |
MISP — Threat Intelligence¶
Interrogé automatiquement par Shuffle à chaque alerte. Vérifie les IPs, hashs SHA256 et domaines contre les feeds de threat intelligence communautaires.
IRIS — Gestion d'incidents¶
Chaque alerte corrélée génère un ticket IRIS avec :
- Détails de l'événement source
- Résultats du lookup MISP
- Résultats de la live response Velociraptor (si applicable)
- Niveau de sévérité automatique (escalade si IOC critique)