SOC -- Wazuh / ELK / TheHive¶
Concepts fondamentaux¶
Qu'est-ce qu'un SOC ?¶
Un SOC (Security Operations Center) est une structure organisationnelle et technique dediee a la surveillance, la detection et la reponse aux incidents de securite. Il centralise les evenements de securite de l'ensemble de l'infrastructure pour offrir une vision globale et continue de la posture de securite.
Niveaux d'analyse SOC¶
| Niveau | Role | Activites | Profil |
|---|---|---|---|
| L1 -- Triage | Analyste de premier niveau | Surveillance des alertes, qualification initiale, escalade | Junior, procedures standardisees |
| L2 -- Investigation | Analyste confirme | Analyse approfondie, correlation d'evenements, hunting | Confirme, connaissance des TTPs |
| L3 -- Expert | Ingenieur securite | Forensic, reverse engineering, creation de regles | Expert, recherche de menaces avancees |
SIEM vs SOAR vs XDR¶
| Technologie | Definition | Role dans notre SOC |
|---|---|---|
| SIEM (Security Information and Event Management) | Collecte, normalise et correle les logs de securite pour detecter les menaces | Wazuh + Elasticsearch + Kibana |
| SOAR (Security Orchestration, Automation and Response) | Automatise les workflows de reponse aux incidents via des playbooks | Shuffle + n8n |
| XDR (Extended Detection and Response) | Unifie la detection sur endpoints, reseau et cloud en une seule plateforme | Approche XDR via Wazuh (endpoint) + FortiGate (reseau) |
Framework MITRE ATT&CK¶
Le framework MITRE ATT&CK (Adversarial Tactics, Techniques, and Common Knowledge) est une base de connaissances publique qui catalogue les tactiques, techniques et procedures (TTPs) utilisees par les attaquants. Notre SOC l'utilise pour :
- Mapper les regles de detection sur des techniques connues (ex. T1059 -- Command and Scripting Interpreter)
- Evaluer la couverture de detection par rapport a la matrice ATT&CK
- Enrichir les alertes TheHive avec les references MITRE correspondantes
- Guider le threat hunting en recherchant proactivement des techniques non couvertes
Cycle de vie des menaces¶
Le SOC implemente un cycle en 5 etapes pour le traitement complet des menaces :
flowchart LR
A["1. Collecter"] --> B["2. Detecter"]
B --> C["3. Analyser"]
C --> D["4. Repondre"]
D --> E["5. Capitaliser"]
E -->|Amelioration continue| A
style A fill:#2196F3,color:#fff
style B fill:#FF9800,color:#fff
style C fill:#F44336,color:#fff
style D fill:#4CAF50,color:#fff
style E fill:#9C27B0,color:#fff
| Etape | Description | Outils |
|---|---|---|
| Collecter | Centralisation des logs et evenements de toutes les sources | Wazuh agents, rsyslog, HAProxy |
| Detecter | Application de regles de correlation et de seuils d'alerte | Wazuh rules, ElastAlert2 |
| Analyser | Investigation des alertes, enrichissement contextuel, qualification | Kibana, Cortex, MISP, OpenCTI |
| Repondre | Actions de remediation automatisees ou manuelles | Shuffle SOAR, Wazuh active-response, TheHive |
| Capitaliser | Documentation, retour d'experience, amelioration des regles | TheHive cases, MISP events, dashboards |
Architecture globale du SOC¶
flowchart TB
subgraph AGENTS["Agents Wazuh (toutes VMs)"]
A1["VM infra"] & A2["VM services"] & A3["VM DMZ"]
end
subgraph COLLECTE["Collecte HA"]
RS["rsyslog + HAProxy<br/>VIP 10.15.80.50"]
end
subgraph TRAITEMENT["Traitement"]
LS["Logstash x2<br/>VIP 10.15.80.51"]
end
subgraph STOCKAGE["Elasticsearch Cluster (8 noeuds)"]
direction TB
M1["Master .11"] & M2["Master .12"]
DH1["Data Hot .13"] & DH2["Data Hot .14"]
DW1["Data Warm .15"] & DW2["Data Warm .16"]
K1["Kibana .21"] & K2["Kibana .22"]
end
subgraph VISUALISATION["Visualisation"]
KIB["Kibana HA<br/>VIP 10.15.80.52"]
end
subgraph ALERTE["Alerting"]
EA["ElastAlert2"]
end
subgraph ORCHESTRATION["SOAR"]
SH["Shuffle<br/>VIP 10.15.80.53"]
end
subgraph GESTION["Gestion incidents"]
TH["TheHive + Cortex<br/>.25 (Docker)"]
end
subgraph CTI["Cyber Threat Intelligence"]
MI["MISP + OpenCTI<br/>.26 (Docker)"]
end
subgraph IA["Intelligence artificielle"]
OL["Ollama LLM<br/>.27"]
end
subgraph DECEPTION["Deception"]
OC["OpenCanary + tools<br/>.30"]
end
AGENTS --> RS
RS --> LS
LS --> STOCKAGE
STOCKAGE --> KIB
KIB --> EA
EA --> SH
SH --> TH
TH --> MI
SH --> OL
MI --> OL
OC -->|Alertes deception| RS
Composants detailles¶
Wazuh Manager et Agents¶
Wazuh est une plateforme open source de detection des menaces, de reponse aux incidents et de conformite. Un agent leger est deploye sur chaque VM de l'infrastructure et remonte les evenements au manager central.
Capacites Wazuh
- FIM (File Integrity Monitoring) : detecte toute modification sur les fichiers critiques systeme
- Rootkit detection : recherche de rootkits connus et de comportements suspects
- Vulnerability scanning : identification des CVE sur les paquets installes
- CIS Benchmark : evaluation continue de la conformite aux referentiels de durcissement
- Log analysis : correlation des logs systeme, applicatifs et de securite
- Active response : actions automatiques (blocage IP, kill process, isolation)
rsyslog + HAProxy (VIP 10.15.80.50)¶
Le couple rsyslog/HAProxy assure la haute disponibilite de la collecte des logs. HAProxy distribue la charge entre les instances rsyslog qui recoivent les flux syslog de tous les agents. La VIP garantit un point d'entree unique et resilient.
Logstash (2 noeuds, VIP 10.15.80.51)¶
Logstash realise le parsing, l'enrichissement et la normalisation des evenements avant injection dans Elasticsearch. Deux noeuds avec VIP assurent la disponibilite. Les pipelines Logstash transforment les logs bruts en documents structures et indexes.
Elasticsearch (8 noeuds)¶
Le cluster Elasticsearch est dimensionne pour la performance et la retention des donnees :
| Role | Noeuds | IPs | Fonction |
|---|---|---|---|
| Master | 2 | .11, .12 | Gestion du cluster, election du master, metadata |
| Data Hot | 2 | .13, .14 | Stockage des index recents, I/O rapides (SSD) |
| Data Warm | 2 | .15, .16 | Stockage des index anciens, retention longue (HDD) |
| Kibana | 2 | .21, .22 | Noeuds coordonnateurs et serveurs Kibana |
Architecture Hot/Warm
La strategie ILM (Index Lifecycle Management) deplace automatiquement les index de Hot vers Warm apres 7 jours, optimisant les couts de stockage tout en maintenant la performance sur les donnees recentes.
Kibana HA (VIP 10.15.80.52)¶
Kibana fournit l'interface de visualisation et d'investigation. Deux instances derriere une VIP offrent la haute disponibilite. Les analystes y consultent les dashboards, effectuent des recherches et gerent les alertes.
ElastAlert2¶
ElastAlert2 surveille en continu les index Elasticsearch et declenche des alertes selon des regles configurables (seuil, frequence, anomalie, changement). Les alertes sont transmises a Shuffle SOAR pour orchestration.
Shuffle SOAR (VIP 10.15.80.53)¶
Shuffle est la plateforme SOAR (Security Orchestration, Automation and Response) qui automatise les workflows de reponse. Chaque alerte declenche un playbook qui peut enrichir l'alerte via Cortex, creer un case TheHive, notifier l'equipe ou executer une remediation.
TheHive + Cortex (.25)¶
TheHive est la plateforme de gestion des incidents. Chaque alerte qualifiee devient un case avec timeline, observables et taches. Cortex est le moteur d'analyse qui enrichit les observables (IP, hash, domaine) via des analyseurs (VirusTotal, AbuseIPDB, MISP lookup).
MISP + OpenCTI (.26)¶
MISP (Malware Information Sharing Platform) centralise les indicateurs de compromission (IoC) partages par les communautes de CTI. OpenCTI structure et visualise le renseignement cyber (STIX/TAXII) et permet de croiser les alertes internes avec les menaces connues.
Ollama LLM (.27)¶
Ollama heberge un modele de langage local utilise pour l'assistance a l'analyse : resume automatique des alertes, suggestion de remediations, classification d'incidents. L'execution locale garantit que les donnees sensibles ne quittent pas l'infrastructure.
OpenCanary + tools (.30)¶
OpenCanary deploie des honeypots (services pieges) sur le reseau. Toute interaction avec ces faux services genere une alerte de haute priorite, car aucun trafic legitime ne devrait les atteindre.
Pipeline operationnel¶
sequenceDiagram
participant Agent as Wazuh Agent
participant Manager as Wazuh Manager
participant LS as Logstash
participant ES as Elasticsearch
participant KB as Kibana
participant EA as ElastAlert2
participant CX as Cortex
participant TH as TheHive
participant SH as Shuffle SOAR
participant MI as MISP/OpenCTI
Agent->>Manager: 1. Envoi evenement (syscheck, log, vuln)
Manager->>LS: 2. Forward via rsyslog (VIP .50)
LS->>ES: 3. Parsing + enrichissement + indexation
ES->>KB: 4. Donnees disponibles pour visualisation
ES->>EA: 5. Evaluation continue des regles d'alerte
EA->>SH: 6. Declenchement playbook SOAR
SH->>CX: 7. Enrichissement des observables
CX->>TH: 8. Creation du case incident
SH->>MI: 9. Correlation avec la CTI (IoC connus)
Stacks Docker¶
Le SOC utilise plusieurs stacks Docker pour deployer les services complexes :
| Stack | Conteneurs | VM hote | Description |
|---|---|---|---|
| Shuffle | opensearch, backend, frontend, orborus | .53 (VIP) | Plateforme SOAR avec moteur de workflows |
| TheHive | cassandra, elasticsearch, minio, thehive | .25 | Gestion d'incidents avec stockage objet |
| OpenCTI | redis, elasticsearch, minio, rabbitmq, workers, connecteur MISP | .26 | Plateforme CTI avec bus de messages |
| Cortex | cortex, elasticsearch | .25 | Moteur d'analyse et d'enrichissement |
| MISP | misp-core, misp-modules, mariadb, redis | .26 | Partage d'indicateurs de compromission |
| OpenCanary | opencanary | .30 | Honeypots et services pieges |
| n8n | n8n, postgres | .25 | Automatisation de workflows complementaire |
| ntfy | ntfy | .25 | Serveur de notifications push |
| ElastAlert2 | elastalert2 | .21 | Moteur d'alerte sur index Elasticsearch |
Ressources Docker
Les stacks TheHive (Cassandra + ES) et OpenCTI (ES + RabbitMQ + workers) sont les plus gourmandes en memoire. Prevoir au minimum 16 Go de RAM par VM hote pour ces stacks.
Inventaire des VMs -- Zone SOC (VLAN 800)¶
| VM | IP | Role | OS | vCPU | RAM |
|---|---|---|---|---|---|
| soc-master-01 | 10.15.80.11 | Elasticsearch Master | Rocky 9 | 4 | 8 Go |
| soc-master-02 | 10.15.80.12 | Elasticsearch Master | Rocky 9 | 4 | 8 Go |
| soc-hot-01 | 10.15.80.13 | Elasticsearch Data Hot | Rocky 9 | 8 | 32 Go |
| soc-hot-02 | 10.15.80.14 | Elasticsearch Data Hot | Rocky 9 | 8 | 32 Go |
| soc-warm-01 | 10.15.80.15 | Elasticsearch Data Warm | Rocky 9 | 4 | 16 Go |
| soc-warm-02 | 10.15.80.16 | Elasticsearch Data Warm | Rocky 9 | 4 | 16 Go |
| soc-kibana-01 | 10.15.80.21 | Kibana + ElastAlert2 | Rocky 9 | 4 | 8 Go |
| soc-kibana-02 | 10.15.80.22 | Kibana | Rocky 9 | 4 | 8 Go |
| soc-thehive | 10.15.80.25 | TheHive + Cortex + n8n + ntfy | Rocky 9 | 8 | 16 Go |
| soc-cti | 10.15.80.26 | MISP + OpenCTI | Rocky 9 | 8 | 16 Go |
| soc-llm | 10.15.80.27 | Ollama LLM | Rocky 9 | 8 | 32 Go |
| soc-canary | 10.15.80.30 | OpenCanary + outils deception | Rocky 9 | 2 | 4 Go |
VIPs du SOC¶
| VIP | IP | Service | Methode HA |
|---|---|---|---|
| VIP Collecte | 10.15.80.50 | rsyslog + HAProxy | keepalived VRRP |
| VIP Logstash | 10.15.80.51 | Logstash (2 noeuds) | keepalived VRRP |
| VIP Kibana | 10.15.80.52 | Kibana (2 instances) | keepalived VRRP |
| VIP Shuffle | 10.15.80.53 | Shuffle SOAR | keepalived VRRP |
Securite du SOC
La zone SOC (VLAN 800) est isolee du reste de l'infrastructure par des regles firewall strictes. Seuls les flux necessaires sont autorises : agents Wazuh vers VIP collecte (1514/TCP, 514/UDP), analystes vers VIP Kibana (443/TCP), et interconnexions internes du cluster. Aucun acces direct depuis les VLANs utilisateurs.