Introduction
Bienvenue dans ce guide sur l'utilisation de Wazuh pour la sécurité des systèmes d'information. Nous explorerons comment utiliser cette plateforme open-source pour unifier les fonctions de Sécurité des événements et de la gestion des informations (SIEM) et de Détection et réponse étendues (XDR). L'objectif est d'améliorer la détection des menaces, la réponse aux incidents, la chasse aux menaces et la conformité au sein d'une organisation.
Wazuh intègre des fonctionnalités puissantes telles que la détection d'intrusions, l'analyse des journaux, le contrôle d'intégrité des fichiers, la détection de vulnérabilités et l'évaluation de la configuration de sécurité dans une solution cohérente.
Public cible
Ce guide s'adresse principalement aux :
- Ingénieurs en sécurité : Ils obtiendront un guide complet pour déployer et configurer Wazuh à des fins de détection d'intrusions, de détection de logiciels malveillants et de surveillance de sécurité.
- Architectes en sécurité : Ils apprendront à concevoir une infrastructure de sécurité où Wazuh est un composant central, permettant de créer une solution de sécurité évolutive et conforme.
- Analystes du Centre Opérations de Sécurité (SOC) : Ils bénéficieront d'informations pratiques et de cas d'utilisation réels pour analyser les alertes, créer des règles personnalisées et répondre rapidement aux menaces.
Aperçu du contenu
Chapitre 1 : Détection d'intrusions avec Wazuh et Suricata introduit les concepts de base des IDS, l'intégration de Suricata avec Wazuh, et des scénarios pratiques de détection de scans réseau et d'attaques web via DVWA.
Chapitre 2 : Détection de logiciels malveillants avec Wazuh explore l'utilisation du module de contrôle d'intégrité des fichiers (FIM), l'intégration de VirusTotal, des listes CDB, et l'intégration de Windows Defender et Sysmon pour une détection avancée.
Chapitre 3 : Renseignement et analyse des menaces traite de l'intégration de MISP, TheHive et Cortex pour enrichir les capacités de renseignement sur les menaces de Wazuh et automatiser l'analyse.
Chapitre 4 : Automatisation et orchestration de la sécurité avec Shuffle présente l'intégration de l'outil SOAR (Security Orchestration, Automation, and Response) Shuffle avec Wazuh pour simplifier les réponses aux incidents.
Chapitre 5 : Réponse aux incidents avec Wazuh se concentre sur les fonctionnalités de réponse proactive de Wazuh, comme le blocage des attaques par force brute et l'isolement automatique des machines compromises.
Chapitre 6 : Chasse aux menaces avec Wazuh approfondit les méthodes de chasse aux menaces proactive en utilisant l'analyse des journaux, le mappage des attaques et l'utilisation d'Osquery.
Chapitre 7 : Évaluation des vulnérabilités et de la configuration couvre l'utilisation de Wazuh pour l'évaluation des vulnérabilités et la conformité aux cadres tels que PCI DSS, NIST 800-53 et HIPAA.
Chapitre 8 : Annexe détaille des listes de règles Wazuh personnalisées pour améliorer la surveillance, notamment pour détecter des activités suspectes dans PowerShell et pour auditer les systèmes Linux avec Auditd.
Chapitre 9 : Glossaire fournit une définition des termes clés liés à la surveillance de sécurité et aux fonctionnalités de Wazuh.
Prérequis et environnement logiciel
Une compréhension de base des concepts de cybersécurité (malwares, scans réseau, ataques d'applications web) est requise. Les environnements pratiques utilisés dans ce guide sont :
| Composant logiciel | Système d'exploitation |
|---|---|
| Wazuh OVA (pour les laboratoires) | Windows et Ubuntu Linux |
| Suricata IDS et Osquery | |
| VirusTotal (API) |
Téléchargement du code exemple
Le code et les configurations mentionnés dans ce guide peuvent être téléchargés depuis le dépôt GitHub dédié.
Conventions d'écriture
Code en ligne : utilisé pour désigner des noms de fichiers, de commandes, de variables, etc. Exemple : "Utilisez la commande curl pour télécharger le module."
Blocs de code :
<rule id="200101" level="1">
<if_sid>60009</if_sid>
<field name="win.system.providerName">^PowerShell$</field>
<description>Événement d'information PowerShell</description>
</rule>
Gras : utilisé pour les termes importants ou nouveaux, ainsi que pour les éléments d'interface. Exemple : "Suricata est un système de détection et prévention d'intrusion réseau (IDS/IPS) open-source."
Partie 1 : Détection des menaces
Cette partie se concentre sur l'utilisation de Wazuh pour une détection efficace des menaces. Vous apprendrez à configurer un système de détection d'intrusions (IDS) pour identifier le trafic suspect, ainsi que l'architecture et les fonctionnalités de base de la plateforme Wazuh.
Chapitre 1 : Détection d'intrusions avec Wazuh et Suricata
Les organisations de toutes tailles accordent une importance croissante à la protection de leurs environnements numériques. Face à l'évolution constante des cybermenaces, il est essentiel de déployer des mécanismes de détection proactifs.
Un Système de Détection d'Intrusions (IDS) est un outil fondamental pour cette mission. Il surveille le trafic réseau et les journaux système pour identifier des modèles et des signatures connus de menaces. Wazuh peut fonctionner comme un IDS au niveau hôte, collectant et analysant les journaux de plusieurs sources. Un autre IDS/IPS open-source populaire est Suricata, qui opère au niveau réseau pour détecter les comportements anormaux. Dans ce chapitre, nous nous concentrerons sur l'intégration de Suricata avec Wazuh.
Qu'est-ce qu'un IDS ?
Les IDS se répartissent principalement en deux catégories :
| Aspect | IDS Réseau (NIDS) | IDS Hôte (HIDS) |
|---|---|---|
| Portée | Surveille le trafic réseau passant par des points centraux. | Surveille les journaux, appels système et fichiers sur un hôte spécifique. |
| Emplacement | Déployé sur l'infrastructure réseau. | Installé directement sur la machine cible. |
| Détection | Attaques réseau (scans, DoS). | Accès non autorisés, modifications de fichiers, processus suspects. |
| Outils courants | Suricata, Snort | Wazuh, OSSEC |
Présentation de Suricata
Suricata analyse en temps réel les paquets réseau à l'aide d'un langage basé sur des règles pour identifier les activités malveillantes. Ses cas d'utilisation principaux incluent :
- Surveillance du trafic réseau : Détecter les logiciels malveillants, les attaques DDoS et les scans de ports.
- Détection par signatures et anomalies : Utiliser des jeux de règles (comme Emerging Threats) pour identifier les attaques connues.
- Analyse de protocole : Inspecter en profondeur HTTP, DNS, TLS pour détecter les anomalies.
Les méthodes de déploiement courantes de Suricata comprennent le déploiement en ligne sur le périmètre réseau, la surveillance interne du réseau, et la surveillance dans les environnements cloud (AWS, Azure).
Introduction à Wazuh et configuration de base
Wazuh est une plateforme de surveillance de sécurité open-source offrant des capacités XDR et SIEM. Ses composants principaux sont :
- Serveur Wazuh : Centralise la collecte, l'analyse et la corrélation des journaux des agents.
- Indexeur Wazuh : Stocke et indexe les alertes générées par le serveur.
- Tableau de bord Wazuh : Interface web pour la visualisation, l'analyse et la gestion.
- Agent Wazuh : Installé sur les endpoints (serveurs, postes de travail) pour collecter les événements. Il utilise des modules tels que FIM, Rootcheck et la collecte de journaux.
Pour les environnements de laboratoire, l'utilisation d'une image OVA (Virtual Appliance) pré-configurée est recommandée. Pour les environnements de production, un déploiement en cluster (nœuds multiples) est conseillé pour l'évolutivité et la haute disponibilité.
Installation et intégration de Suricata sur Ubuntu Server
Voici les étapes résumées pour intégrer Suricata à un hôte géré par un agent Wazuh :
-
Installer Suricata : Utiliser le PPA OISF pour installer la version stable sur Ubuntu.
-
Obtenir les règles : Télécharger et installer le jeu de règles Emerging Threats (ET) open-source dans le répertoire de configuration de Suricata (
/etc/suricata/rules/). -
Configurer Suricata : Éditer
/etc/suricata/suricata.yamlpour définirHOME_NET(IP de l'agent),EXTERNAL_NET(any), le chemin des règles et l'interface réseau (dans la sectionaf-packet). -
Intégrer les journaux avec Wazuh : Ajouter une entrée dans le fichier de configuration de l'agent Wazuh (
/var/ossec/etc/ossec.conf) pour lire les journaux JSON de Suricata (/var/log/suricata/eve.json). ``` -
Redémarrer les services : Redémarrer les services
suricataetwazuh-agentpour appliquer les changements.
Comprendre les règles Suricata
La syntaxe de base d'une règle Suricata est :
action proto src_ip src_port -> dest_ip dest_port (msg:"Message d'alerte"; content:"chaîne"; sid:12345;)
Exemple de règle pour détecter une connexion SSH :
alert tcp $EXTERNAL_NET any -> $HOME_NET 22 (msg:"Connexion SSH détectée"; flow:to_server,established; content:"SSH-2.0-OpenSSH"; sid:100001;)
Cas d'utilisation : Détection de scans réseau et d'attaques web
Détection de scans avec Nmap : En utilisant Nmap depuis une machine attaquante contre un hôte cible exécutant Suricata et un agent Wazuh, les scans (SYN, version) sont détectés par les règles ET et les alertes correspondantes apparaissent dans le tableau de bord Wazuh (filtrables via rule.group: suricata).
Détection d'attaques web avec DVWA : En testant une application web vulnérable (DVWA) avec des attaques comme l'injection SQL et le Cross-Site Scripting (XSS) réfléchi, Suricata génère des alertes spécifiques (ex: ET WEB_SERVER Possible SQL Injection Attempt) qui sont visibles dans Wazuh.
Validation avec tmNIDS : Le projet tmNIDS permet de tester la détection de Suricata contre diverses menaces (agents utilisateurs malveillants, trafic Tor). L'exécution des tests et la visualisation des alertes dans Wazuh confirment l'efficacité des règles ET.
Chapitre 2 : Détection de logiciels malveillants avec Wazuh
Wazuh offre plusieurs approches pour détecter les logiciels malveillants, combinant la surveillance des fichiers, l'analyse de la réputation et l'intégration d'outils externes.
Capacités de détection de Wazuh
- Contrôle d'intégrité des fichiers (FIM) : Surveille les modifications des fichiers et répertoires critiques. Une modification non autorisée peut indiquer une infection.
- Détection de comportements Rootkit : Le module rootcheck identifie des activités suspectes typiques des rootkits (élévation de privilèces, fichiers cachés).
- Intégration VirusTotal : Wazuh peut soumettre automatiquement des fichiers suspects à l'analyse de VirusTotal pour obtenir une réputation multi-moteurs.
- Intégration YARA : Permet d'écrire des règles personnalisées pour détecter des signatures ou comportements spécifiques de logiciels malveillants.
Détection via le FIM
Le module FIM de Wazuh (basé sur OSSEC) est activé par défaut dans l'agent. Sa configuration se trouve dans la balise <syscheck> du fichier ossec.conf de l'agent. On y spécifie les répertoires à surveiller, la fréquence des scans et les fichiers/répertoires à ignorer.
Exemple de cas : Créer une règle Wazuh personnalisée (local_rules.xml) pour alerter sur la création ou modification de fichiers avec des extensions de scripts web courantes (.php, .asp, .jsp) dans un répertoire donné.
<group name="linux, webshell, windows,">
<rule id="100500" level="12">
<if_sid>554,550</if_sid>
<field name="file" type="pcre2">(?i).php$|.phtml$|.php3$|.asp$|.aspx$|.jsp$</field>
<description>[Création de fichier]: Fichier script web potentiel ($(file)) créé</description>
</rule>
</group>
Détection via les listes CDB
Les listes Constant Data Base (CDB) de Wazuh stockent des paires clé-valeur (comme des hashes de fichiers de malware). Lors d'une modification de fichier détectée par le FIM, Wazuh compare le hash du fichier avec la liste CDB. Une correspondance déclenche une alerte de niveau élevé.
Pour mettre en place une liste CDB pour les hashes de malware :
- Créer un fichier texte dans
/var/ossec/etc/lists/(ex:malware-hashes) contenant les hashes au formathash:valeur. - Referencer ce fichier dans la balise
<ruleset>deossec.confdu serveur Wazuh. - Créer une règle personnalisée qui déclenche une alerte si le hash d'un fichier modifié correspond à une entrée de la liste CDB.
Intégration de VirusTotal
La configuration de l'intégration VirusTotal dans le fichier ossec.conf du serveur Wazuh permet de déclencher une analyse VirusTotal pour les alertes correspondant à des règles spécifiques (généralement des événements FIM). Un compte VirusTotal et une clé API sont nécessaires.
Intégration de Windows Defender
Pour collecter les journaux de Windows Defender dans Wazuh, il faut configurer l'agent Windows pour qu'il lise le journal Microsoft-Windows-Windows Defender/Operational via la balise <localfile> dans sa configuration (ossec.conf ou agent.conf poussé depuis le serveur).
Intégration de Sysmon pour la détection de malware sans fichier
Les logiciels malveillants sans fichier (fileless) résident uniquement en mémoire, rendant difficile leur détection par les outils traditionnels basés sur les fichiers. Sysmon (System Monitor) de Microsoft fournit une journalisation détaillée des activités système (création de processus, connexions réseau, accès au registre) qui peut être intégrée à Wazuh.
Configuration :
- Installer Sysmon sur les machines Windows avec une configuration robuste (ex: la configuration de SwiftOnSecurity).
- Configurer l'agent Wazuh pour lire le journal Sysmon
Microsoft-Windows-Sysmon/Operational. - Créer des règles Wazuh personnalisées pour mapper les événements Sysmon (ex: Event ID 1 pour la création de processus) à des alertes.
En simulant une attaque APT avec l'outil APTSimulator, les événements Sysmon sont générés, captés par l'agent et transformés en alertes analysables dans Wazuh.