Pour débutant — SIEM, XDR et supervision de sécurité open source
SOGESTI est un intégrateur informatique expert dans la mise en place des mesures de sécurité.
Wazuh est une plateforme open source de sécurité qui combine plusieurs fonctions en un seul outil :
Wazuh repose sur trois composants principaux :
| Composant | Rôle |
|---|---|
| Wazuh Server (Manager) | Reçoit les données des agents, les analyse et déclenche les alertes |
| Wazuh Indexer | Stocke et indexe les données (basé sur OpenSearch) |
| Wazuh Dashboard | Interface web pour visualiser les alertes et gérer la plateforme |
| Wazuh Agent | Petit logiciel installé sur chaque machine à surveiller, qui collecte les événements et les envoie au Manager |
Schéma simplifié :
https://<IP_DU_SERVEUR>admin et le mot de passe généréPour surveiller une machine (serveur ou poste de travail), il faut y installer un agent Wazuh. Cet agent envoie en continu les informations de sécurité de la machine vers le Manager. Voici la marche à suivre complète.
L'assistant vous demande de préciser :
serveurs-siab, postes-geneve) pour lui appliquer une configuration communesiab-ebanking-prodLe tableau de bord génère automatiquement la commande d'installation correspondant à vos choix. Copiez-la et exécutez-la sur la machine à surveiller (avec les droits administrateur).
Exemple pour Linux (Debian/Ubuntu) :
wget https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_4.x.x-1_amd64.deb
sudo WAZUH_MANAGER='<IP_DU_MANAGER>' WAZUH_AGENT_GROUP='<groupe>' dpkg -i ./wazuh-agent_4.x.x-1_amd64.deb
sudo systemctl daemon-reload
sudo systemctl enable wazuh-agent
sudo systemctl start wazuh-agent
Exemple pour Windows (PowerShell, en administrateur) :
Invoke-WebRequest -Uri https://packages.wazuh.com/4.x/windows/wazuh-agent-4.x.x-1.msi -OutFile $env:tmp\wazuh-agent.msi
msiexec.exe /i $env:tmp\wazuh-agent.msi /q WAZUH_MANAGER='<IP_DU_MANAGER>'
NET START WazuhSvc
Exemple pour macOS :
curl -so wazuh-agent.pkg https://packages.wazuh.com/4.x/macos/wazuh-agent-4.x.x-1.pkg
sudo installer -pkg ./wazuh-agent.pkg -target /
sudo /Library/Ossec/bin/wazuh-control start
/var/ossec/etc/ossec.conf (Linux/macOS) ou dans la configuration Windowssudo systemctl restart wazuh-agent/var/ossec/logs/ossec.logPour ajouter beaucoup de machines rapidement, il est possible d'automatiser l'installation via :
Chaque alerte Wazuh comporte plusieurs éléments clés :
| Niveau | Signification |
|---|---|
| 0-3 | Informationnel, faible priorité |
| 4-7 | Avertissement, à surveiller |
| 8-11 | Erreur ou tentative suspecte |
| 12-15 | Critique (compromission probable, action immédiate requise) |
Surveille les modifications de fichiers/dossiers sensibles (ex : /etc/passwd sous Linux, clés de registre sous Windows). Se configure dans ossec.conf sur chaque agent, section <syscheck>.
Wazuh analyse en continu les journaux système, applicatifs et réseau pour repérer des anomalies (échecs de connexion répétés, commandes suspectes, etc.).
Vérifie que les machines respectent des standards de sécurité (CIS Benchmarks) et propose des recommandations de durcissement.
Compare les logiciels installés à des bases de données de vulnérabilités connues (CVE) et alerte si une mise à jour de sécurité est nécessaire.
Permet de déclencher automatiquement une action (ex : bloquer une IP via le pare-feu) en réponse à une alerte critique.
Les règles personnalisées se créent dans Server management > Rules, sans toucher aux règles par défaut (bonne pratique pour éviter de casser les mises à jour).
Détecter une alerte n'est que la première étape : il faut ensuite l'analyser et la corriger. Voici la démarche selon le type de problème détecté.
Wazuh liste les failles CVE trouvées dans Threat intelligence > Vulnerability detection.
apt update && apt upgrade <paquet> sous Linux, ou Windows Update)Dans Endpoint security > Configuration assessment, chaque règle échouée est accompagnée d'une recommandation de remédiation (ex : désactiver un protocole non sécurisé, renforcer une politique de mot de passe).
Une alerte FIM signale qu'un fichier surveillé a été modifié, créé ou supprimé.
Si une alerte se répète alors qu'elle correspond à un comportement normal et légitime :
if_sid pour cibler précisément la règle d'origine à surchargerUne fois les bases maîtrisées, voici les configurations avancées les plus utiles pour exploiter pleinement Wazuh dans un environnement professionnel.
Pour un environnement de production avec beaucoup d'agents, un seul Manager peut devenir un goulot d'étranglement. Wazuh permet de répartir la charge sur plusieurs nœuds Manager (cluster).
Configuration dans /var/ossec/etc/ossec.conf sur chaque nœud :
<cluster>
<name>wazuh-cluster</name>
<node_name>node01</node_name>
<node_type>master</node_type>
<key></key>
<port>1516</port>
<bind_addr>0.0.0.0</bind_addr>
<nodes>
<node>10.0.0.10</node>
</nodes>
<hidden>no</hidden>
<disabled>no</disabled>
</cluster>
Un nœud est désigné master (gère la synchronisation des règles/décodeurs) et les autres sont des worker (répartissent la charge des agents connectés).
Wazuh peut transmettre automatiquement ses alertes vers des outils tiers via le bloc <integration> dans ossec.conf.
Exemple — envoi vers Slack :
<integration>
<name>slack</name>
<hook_url>https://hooks.slack.com/services/XXX/YYY/ZZZ</hook_url>
<level>10</level>
<alert_format>json</alert_format>
</integration>
Exemple — vérification automatique de fichiers via VirusTotal :
<integration>
<name>virustotal</name>
<api_key>VOTRE_CLE_API</api_key>
<rule_id>550,554</rule_id>
<alert_format>json</alert_format>
</integration>
D'autres intégrations natives existent pour PagerDuty, Shuffle (SOAR), Amazon SNS/SQS, ou un webhook générique.
Au-delà des scripts fournis par défaut (blocage IP via iptables ou firewall-drop), il est possible d'écrire un script de réponse active sur mesure, placé dans /var/ossec/active-response/bin/ sur l'agent, puis déclaré dans ossec.conf du Manager :
<command>
<name>desactiver-compte</name>
<executable>desactiver-compte.sh</executable>
<timeout_allowed>yes</timeout_allowed>
</command>
<active-response>
<command>desactiver-compte</command>
<location>local</location>
<rules_id>5712</rules_id>
<timeout>600</timeout>
</active-response>
Ici, la règle 5712 (tentatives de connexion SSH multiples échouées) déclenche automatiquement un script personnalisé, avec réversion automatique après 600 secondes.
Le mode whodata du module FIM permet d'identifier précisément qui a modifié un fichier (utilisateur, processus), et pas seulement quoi a changé :
<syscheck>
<directories check_all="yes" realtime="yes" whodata="yes">/etc,/var/www</directories>
<directories check_all="yes" whodata="yes">C:\Users\Administrateur\Documents</directories>
</syscheck>
Sous Linux, whodata nécessite l'activation d'audit (auditd). Sous Windows, il s'appuie sur les journaux d'audit du système de fichiers (SACL).
Les listes CDB permettent de comparer un champ (IP, utilisateur, hash) à une liste externe pour affiner une règle, par exemple une liste noire d'IP :
# Création de la liste
echo "203.0.113.5:blackip" > /var/ossec/etc/lists/ip-blacklist
/var/ossec/bin/wazuh-cdb-list -u /var/ossec/etc/lists/ip-blacklist
Puis référencée dans une règle personnalisée :
<rule id="100100" level="12">
<if_sid>5716</if_sid>
<list field="srcip" lookup="address_match_key">etc/lists/ip-blacklist</list>
<description>Connexion depuis une IP blacklistée</description>
</rule>
<localfile> plutôt que de tout envoyer puis filtrer côté règlesagent.conf différenciées par groupe (ex : serveurs critiques avec whodata activé, postes standards en mode allégé)analysisd, remoted) dans internal_options.conf pour les environnements avec un très grand nombre d'agentsL'API REST (port 55000) permet d'automatiser des tâches : ajout d'agents en masse, extraction d'alertes, gestion des règles, intégration dans des scripts ou des outils tiers (SOAR, ticketing).
# Authentification
curl -u wazuh-wui:motdepasse -k -X POST "https://<IP_MANAGER>:55000/security/user/authenticate"
# Exemple : lister les agents déconnectés
curl -k -X GET "https://<IP_MANAGER>:55000/agents?status=disconnected" \
-H "Authorization: Bearer <TOKEN>"
/var/ossec/etc/ossec.conf)