🎯 Objectif de la semaine
Maîtriser les concepts SIEM et implémenter Wazuh : installer un système de centralisation des logs, déployer des agents, et visualiser les événements en temps réel. Première étape du Trimestre 3 (Défense Active) – transformer des logs passifs éparpillés en surveillance active unifiée.
Pourquoi c'est fondamental : Un réseau sans SIEM est une Cité sans yeux. Les attaquants comptent sur la fragmentation des logs pour passer inaperçus. Un SIEM est votre première ligne de défense détective.
Event Logs] L[Linux Server
Syslog/Auditd] R[Routeurs/Firewalls
Netflow/Syslog] A[Applications
Apache/NGINX/SQL] end subgraph "📡 Collecte" AG1[Agent Wazuh
sur Windows] AG2[Agent Wazuh
sur Linux] AG3[Syslog Forwarder] end subgraph "🎯 Centralisation SIEM" M[Manager Wazuh
Analyse & Corrélation] ES[Elasticsearch
Stockage & Indexation] K[Kibana
Visualisation & Dashboards] end W --> AG1 L --> AG2 R --> AG3 A --> AG2 AG1 --> M AG2 --> M AG3 --> M M --> ES ES --> K K --> AL[🚨 Alertes] K --> REP[📊 Rapports] K --> DASH[📈 Dashboards] style M fill:#0a0e17,stroke:#00d4ff,stroke-width:3px style K fill:#0a0e17,stroke:#9d4edd,stroke-width:2px style ES fill:#0a0e17,stroke:#f59e0b,stroke-width:2px
📚 Sujet – Théorie (1 heure)
SIEM : Le Système Nerveux Central de la Sécurité
Un Security Information and Event Management (SIEM) n'est pas un simple collecteur de logs – c'est un système de corrélation intelligente qui transforme des milliards d'événements bruts en quelques alertes actionnables.
Collecte
Agents légers ou forwarders collectent logs depuis :
- Systèmes d'exploitation
- Applications métier
- Réseau et sécurité
- Cloud et containers
Analyse
Moteur de règles qui corrèle :
- Signatures connues
- Comportements anormaux
- Séquences temporelles
- Risque utilisateur
Visualisation
Dashboards pour :
- Surveillance temps réel
- Investigation forensique
- Reporting compliance
- KPI sécurité
Wazuh : Le SIEM Open-Source Professionnel
🎯 Pourquoi Wazuh pour l'apprentissage ?
| Fonctionnalité | Wazuh | Solution Entreprise |
|---|---|---|
| Coût | Gratuit (Open Source) | $$$ (50k€+/an) |
| Stack Technique | ELK intégré | Propriétaire ou custom |
| Modules | SIEM + HIDS + FIM | Souvent séparés |
| Communauté | Active, documentation riche | Support payant |
Le Parcours d'un Événement dans le SIEM
SSH failed loginauth.log
Agent Wazuh
OSSEC protocol
Parser JSON
Champs normalisés
Règle 5712
"Multiple SSH failures"
Dashboard Kibana
Email/Slack
Les Trois Piliers de la Détection SIEM
⚠️ Ce que Wazuh peut détecter
• Scans Nmap/port scans
• Exploits connus (CVE)
• Malware signatures
• Patterns d'attaque
• Behaviour analytics
• Baseline deviations
• UEBA (User Entity)
• Machine learning
• PCI-DSS controls
• GDPR requirements
• HIPAA checks
• CIS benchmarks
• File integrity monitoring
• Rootkit detection
• Process monitoring
• Registry changes
Architecture Wazuh : Les Composants Clés
🔧 Stack Wazuh + ELK
- Wazuh Manager : Cerveau - règles, décodage, corrélation
- Wazuh Agent : Yeux - collecte logs, intégrité fichiers
- Elasticsearch : Mémoire - stockage, indexation, recherche
- Logstash : Traducteur - parsing, transformation (optionnel)
- Kibana : Interface - visualisation, dashboards, alerting
🔬 Mission pratique – Laboratoire (2 heures)
Architecture du Lab SIEM
192.168.56.100
Wazuh Manager + ELK] -->|Agent| M[Metasploitable2
192.168.56.101
Cible Linux] K -->|Agent| U[Ubuntu Server
192.168.56.102
Cible Linux] K -->|Agent| W[Windows 10
192.168.56.103
Cible Windows] subgraph "🎯 Attaques Simulées" A[Attaquant Kali
192.168.56.100] A -->|SSH Brute-force| M A -->|SQL Injection| U A -->|SMB Scan| W end style K fill:#0a0e17,stroke:#00d4ff,stroke-width:3px style M fill:#11151f,stroke:#ef4444,stroke-width:2px style A fill:#11151f,stroke:#9d4edd,stroke-width:2px
⚠️ Prérequis et Considérations
💻 Ressources nécessaires :
- RAM : 8 Go minimum (Wazuh + ELK est gourmand)
- Stockage : 20 Go libre pour les logs
- Docker : Version 20.10+ recommandée
- Réseau : Toutes les VMs en Host-Only
Étapes Détaillées d'Installation
Étape 1 : Installation Wazuh Manager avec Docker
# 1. Préparation environnement
sudo apt update && sudo apt upgrade -y
sudo apt install docker.io docker-compose curl git -y
sudo systemctl enable --now docker
# 2. Création répertoire projet
mkdir -p ~/mon_lab/siem/wazuh
cd ~/mon_lab/siem/wazuh
# 3. Téléchargement docker-compose officiel
curl -so docker-compose.yml https://raw.githubusercontent.com/wazuh/wazuh-docker/master/docker-compose.yml
# 4. Ajustement mémoire Elasticsearch (important!)
nano docker-compose.yml
# Cherchez 'elasticsearch' et ajoutez:
# environment:
# - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
# 5. Lancement des containers
sudo docker-compose up -d
# 6. Vérification des services
sudo docker-compose ps
# Doit montrer: wazuh-manager, wazuh-indexer, wazuh-dashboard
⏱️ Temps d'initialisation
Les services peuvent prendre 3-5 minutes pour démarrer complètement. Vérifiez les logs :
sudo docker-compose logs -f wazuh-manager
Recherchez Started inotify supervisor et Connected to Remoted.
Étape 2 : Accès et Configuration Initiale
# 1. Obtenir les credentials par défaut
echo "User: admin"
echo "Password: $(sudo docker exec wazuh-manager /bin/bash -c 'cat /var/ossec/etc/sslmanager.key')"
# 2. Accès à Kibana (Wazuh Dashboard)
# Naviguez vers: https://192.168.56.100:5601
# Acceptez le certificat auto-signé (dans lab uniquement!)
# 3. Changement IMMÉDIAT du mot de passe
# Dashboard → Security → Users → admin → Edit
# Nouveau mot de passe fort et unique!
🔒 Sécurité en Production
En environnement réel :
- Générer des certificats valides (Let's Encrypt)
- Configurer HTTPS strict
- Mettre en place 2FA
- Restreindre l'accès par IP
Étape 3 : Déploiement des Agents Linux
📋 Sur la cible Metasploitable2 (192.168.56.101)
# 1. Génération de la clé d'agent depuis le manager
sudo docker exec -it wazuh-manager /var/ossec/bin/manage_agents
# Dans l'interface interactive:
# A) Add an agent
# Name: metasploitable2-lab
# IP: 192.168.56.101
# Notez l'ID et la clé générée
# 2. Installation agent sur la cible
# Connectez-vous à Metasploitable2 (msfadmin/msfadmin)
ssh msfadmin@192.168.56.101
# Sur Metasploitable2:
wget https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_4.7.2-1_amd64.deb
sudo dpkg -i wazuh-agent_4.7.2-1_amd64.deb
# 3. Configuration agent
sudo nano /var/ossec/etc/ossec.conf
# Cherchez et remplacez par:
# 192.168.56.100
# 4. Enregistrement avec la clé
sudo /var/ossec/bin/manage_agents -i
# Collez la clé générée précédemment
# 5. Démarrage et vérification
sudo systemctl start wazuh-agent
sudo systemctl enable wazuh-agent
sudo /var/ossec/bin/agent_control -l | grep metasploitable2
Étape 4 : Déploiement Agent Windows (Optionnel mais Formateur)
# Sur Windows 10/11 (PowerShell Admin)
# 1. Téléchargement agent
Invoke-WebRequest -Uri "https://packages.wazuh.com/4.x/windows/wazuh-agent-4.7.2-1.msi" -OutFile "wazuh-agent.msi"
# 2. Installation silencieuse avec configuration
msiexec.exe /i wazuh-agent.msi /qn WAZUH_MANAGER="192.168.56.100" WAZUH_REGISTRATION_SERVER="192.168.56.100"
# 3. Enregistrement avec la clé (générée depuis manager)
cd "C:\Program Files (x86)\ossec-agent"
manage_agents.exe -i PASTE_KEY_HERE
# 4. Démarrage service
Start-Service -Name OssecSvc
Get-Service -Name OssecSvc | Select Status
Étape 5 : Exploration de l'Interface Kibana
• Agents connectés
• Alertes dernières 24h
• Top règles déclenchées
• Integrité fichiers
• Timeline événements
• Filtres par agent/règle
• Recherche full-text
• Export CSV/JSON
• Vulnerabilities
• AWS monitoring
• Docker security
• GDPR compliance
• Gestion agents
• Configuration rules
• API endpoints
• Logs manager
Étape 6 : Simulation d'Attaque et Observation
# 1. Génération d'activité suspecte
# Sur Kali (comme attaquant), cible Metasploitable2
# Scan Nmap basique (détecté par Wazuh)
nmap -sS 192.168.56.101
# Tentative brute-force SSH
hydra -l msfadmin -P /usr/share/wordlists/rockyou.txt \
ssh://192.168.56.101 -t 4
# 2. Observation en temps réel dans Kibana
# Naviguez vers: Security Events
# Filtrez par:
# - agent.name: "metasploitable2-lab"
# - rule.level: >= 5
# - Time range: Last 15 minutes
# 3. Recherche spécifique
# Dans la barre de recherche Kibana:
rule.id:("5712" OR "5715" OR "5720")
# Règles pour scans et brute-force
Exercice Avancé : Création de Règles Personnalisées
🎯 Défi de Détection Personnalisée
Créez une règle Wazuh pour détecter les tentatives de connexion SSH depuis une IP spécifique :
5710
192.168.56.100
SSH login attempt from Kali attacker
authentication_failed,
Redémarrez le manager : sudo docker restart wazuh-manager
Testez avec une connexion SSH échouée depuis Kali et vérifiez l'alerte dans Kibana.
Étape 7 : Monitoring et Maintenance
# Commandes utiles pour le monitoring
# 1. Vérifier santé des services
sudo docker-compose logs --tail=50 wazuh-manager
sudo docker exec wazuh-manager /var/ossec/bin/agent_control -l
# 2. Vérifier espace disque
sudo docker exec wazuh-indexer df -h
# 3. Sauvegarde configuration
sudo tar czf wazuh_backup_$(date +%Y%m%d).tar.gz \
~/mon_lab/siem/wazuh/docker-compose.yml \
/var/lib/docker/volumes/wazuh_*
# 4. Mise à jour (attention en production!)
sudo docker-compose pull
sudo docker-compose down
sudo docker-compose up -d
📋 Objectif de la semaine – Checklist de validation
✅ Compétences techniques acquises
- Wazuh Manager + ELK fonctionnel avec Docker
- Au moins 2 agents déployés et connectés
- Navigation fluide dans Kibana Wazuh
- Détection d'activité suspecte (scan/brute-force)
- Compréhension architecture collecte→analyse→visualisation
🧠 Changement mental accompli
- Vision du SIEM comme système nerveux central
- Compréhension de la valeur de la corrélation
- Habitude de penser en "détection" vs seulement "prévention"
- Conscience que les logs sont des yeux, pas des archives
💪 Pour aller plus loin :
Configurez des alertes par email, intégrez Wazuh avec TheHive pour la gestion des incidents, ou déployez des agents sur des containers Docker. Préparez-vous pour la semaine 28 sur le durcissement système.
📚 Ressources pour Approfondir
Documentation et Communauté :
- Wazuh Documentation : documentation.wazuh.com
- Rules Explorer : github.com/wazuh/wazuh-ruleset
- SIEM Use Cases : MITRE ATT&CK mapping avec Wazuh
- ELK Stack : elastic.co/guide
⚠️ Considérations Production
- Scalabilité : Cluster vs single node
- Rétention : Politique de rétention des logs (30-90 jours)
- Performance : Tuning Elasticsearch pour votre volume
- Sécurité : Hardening Wazuh en production
🔮 Frère d'armes,
Tu viens d'allumer les yeux de la Cité.
Le SIEM n'est pas un outil parmi d'autres – c'est le système nerveux central de votre défense. Les logs qui dormaient éparpillés sur des dizaines de machines se réveillent maintenant, se parlent, se corrèlent. Un échec de connexion SSH ici, un scan de port là-bas, une modification de fichier ailleurs – séparément, ce ne sont que du bruit. Ensemble, ils racontent l'histoire d'une attaque.
Cette semaine, tu as fait plus qu'installer un logiciel. Tu as connecté les points. Tu as vu comment des événements disparates peuvent s'assembler en une image cohérente. Comment un simple agent sur une machine devient un capteur dans un réseau de vigilance.
Mais voici la leçon la plus importante : un SIEM sans règles est un œil sans cerveau. Collecter des logs n'est que la moitié du travail. La vraie magie est dans les règles de corrélation, dans l'intelligence qui transforme des données brutes en connaissance.
Tu n'es plus un simple attaquant qui laisse des traces. Tu es devenu un défenseur qui lit ces traces. Qui comprend que chaque action laisse une ombre dans les logs. Qui sait que la discrétion d'un attaquant dépend de sa capacité à se fondre dans le bruit de fond normal.
Dans la semaine 28, nous irons plus loin dans la défense active. Nous apprendrons à durcir les systèmes, à réduire la surface d'attaque, à rendre la vie difficile à ceux qui voudraient pénétrer. Nous passerons de la détection à la prévention.
Mais pour l'instant, observe. Laisse tourner Wazuh pendant quelques jours. Regarde les patterns normaux de ton lab. Comprends ce qui est "bruit" et ce qui est "signal". Un bon analyste SIEM connaît d'abord son environnement normal.
Un Gardien qui maîtrise le SIEM ne laisse jamais une attaque passer inaperçue.
— Platon-Y