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.