Technique

SÉRIE SIEM WAZUH

Geoff BurkeGB
Geoff Burke
IT Infrastructure & Data Protection Expert

Dans la dernière édition de la série SIEM, nous avons discuté d'EFK (Elasticsearch, Fluentd et Kibana), qui comprenait un aperçu général de la pile technologique avant de plonger dans une pratique concrète. Pour rappel, cette série de blogs n'est pas destinée à remplacer une formation en cours, mais plutôt à introduire le public à ce qui est impliqué dans le SIEM et à expliquer comment cela fonctionne à un niveau de base. De plus, je voulais également aider les utilisateurs à créer des environnements de bac à sable faciles où ils peuvent pratiquer tout en apprenant.

Qu'est-ce que Wazuh ?

Wazuh est une plateforme SIEM (Gestion des informations et des événements de sécurité) et XDR (Détection et réponse étendues) complète et open source. Elle a été créée comme un fork d'Ossec en 2015 et visait à moderniser et étendre les capacités de ce dernier. Son objectif est de devenir une solution de surveillance de la sécurité unifiée.

Elle a tenté de résoudre certaines des complexités que nous avons constatées dans ELK et de faciliter la création de votre propre système de surveillance.

Composants principaux de Wazuh

Wazuh est une puissante plateforme de sécurité open source qui intègre la détection des menaces, la surveillance de l'intégrité, la réponse aux incidents et la gestion de la conformité. Son architecture est modulaire, comprenant plusieurs composants clés :

  • Agent Wazuh : Installé sur des points de terminaison (serveurs, VM, conteneurs), l'agent collecte des données de sécurité telles que des journaux, des modifications d'intégrité des fichiers et un inventaire système. Wazuh prend également en charge la surveillance sans agent via Syslog, SSH ou APIs pour des dispositifs comme des pare-feu et des routeurs.
  • Serveur Wazuh : L'unité centrale de traitement de la plateforme. Elle reçoit des données des agents ou de sources externes, les décode, applique des règles et génère des alertes. Elle gère également les configurations des agents et orchestre la communication à travers la plateforme.
  • Moteur d'analyse : Un sous-système au sein du Serveur Wazuh qui applique des règles de détection, corrèle des événements et identifie des menaces. Il enrichit les événements avec des métadonnées telles que des ID de règles et des niveaux de gravité.
  • Indexeur Wazuh : Basé sur OpenSearch, ce composant stocke et indexe les alertes et les événements. Il permet une recherche rapide, un filtrage et des analyses à travers de grands ensembles de données. Filebeat est utilisé pour transférer les données de manière sécurisée du serveur à l'indexeur.
  • Tableau de bord Wazuh : Une interface web pour visualiser les alertes, gérer les agents et interagir avec la plateforme. Elle communique avec le Serveur Wazuh via une API RESTful et prend en charge la surveillance en temps réel, la chasse aux menaces et les rapports de conformité.

Wazuh peut être déployé en tant qu'architecture à nœud unique ou multi-nœuds en fonction des besoins de scalabilité et de performance.

Comment fonctionne Wazuh : Un aperçu étape par étape

Le processus peut être résumé en plusieurs étapes :

  1. Wazuh collecte des données des points de terminaison à l'aide d'agents. Cela inclut des journaux, l'activité système et les modifications de fichiers. Pour les systèmes sans agents, les données peuvent être collectées via Syslog, SSH ou APIs.
  2. Le serveur reçoit et décode les données, les préparant pour l'analyse.
  3. Le moteur d'analyse applique des règles pour détecter des menaces ou des violations de politique. Des alertes sont générées et enrichies avec des détails pertinents.
  4. Les alertes et événements sont envoyés à l'indexeur, où ils sont stockés et rendus consultables.
  5. Le tableau de bord permet aux utilisateurs de visualiser les alertes, de surveiller les systèmes et de gérer les configurations via une interface web.

Comme nous l'avons abordé plus tôt dans cette série, les messages syslog bruts ne sont pas idéaux pour construire des tableaux de bord ou déclencher des alertes. Pour les rendre utiles, nous devons les décomposer en données structurées et lisibles. En termes simples, créer des paires clé-valeur claires est essentiel—surtout lorsque l'on travaille avec des outils de visualisation comme Kibana ou le Tableau de bord Wazuh.

Analyse et plus d'analyse

Logstash et Fluentd sont des moteurs de traitement de journaux à usage général et sont conçus pour la flexibilité. Cependant, souvent la flexibilité nécessite de la complexité. Lors de notre exemple de parsing grok, il était évident que c'est une compétence acquise et qui nécessite du temps et des efforts pour acquérir de l'expertise.

Wazuh a choisi un chemin légèrement différent et utilise deux étapes pour traiter les journaux. La première étape utilise des décodeurs tandis que la seconde utilise les règles. Wazuh tente de faciliter le parsing des journaux à des fins de sécurité en s'appuyant sur des décodeurs et des réglementations avec des parseurs de sécurité intégrés.

En résumé, voici comment nous pouvons comparer ce que nous avons vu avec Logstash/Fluentd aux Décodeurs et Règles de Wazuh :

Aspect Logstash/Fluentd Décodeurs & Règles Wazuh
Objectif Traitement de journaux générique Analyse des événements de sécurité
Capacité prête à l'emploi Pipeline vide Plus de 3 000 règles de sécurité prêtes
Contexte de sécurité Mise en œuvre manuelle Intelligence sur les menaces intégrée
Extraction de champs Modèles grok génériques Décodeurs conscients de la sécurité
Corrélation Configuration manuelle Corrélation automatique des événements
Cartographie de conformité Développement personnalisé Pré-mappé aux cadres
Détection des menaces Construire à partir de zéro Détection immédiate des menaces
Temps pour la valeur de sécurité Semaines/mois Heures/jours

Tutoriel de bac à sable

Tout comme dans nos précédents articles de cette série SIEM, nous sommes axés sur l'apprentissage pratique. Dans cet exercice, nous allons travailler avec une machine virtuelle Ubuntu pour installer Wazuh directement sur le système d'exploitation—pas de Docker cette fois. Pour notre configuration de laboratoire de test, Wazuh propose un script d'installation pratique qui rend le processus rapide et simple.

Veuillez utiliser ce lien pour la section tutoriel :

https://documentation.wazuh.com/current/quickstart.html  

Installation de Wazuh sur un nœud unique

1. Exécutez le script ci-dessous :

curl -sO https://packages.wazuh.com/4.12/wazuh-install.sh && sudo bash ./wazuh-install.sh -acurl -sO https://packages.wazuh.com/4.12/wazuh-install.sh

2. Lorsque le script est terminé, notez le mot de passe administrateur.

3. À ce stade, vous devriez être en mesure d'ouvrir un navigateur et de naviguer vers l'adresse IP ou le nom DNS de votre VM Wazuh. Si tout est correctement configuré, le tableau de bord Wazuh se chargera, vous donnant accès à votre environnement SIEM.

Pour référence, voici ce que j'ai utilisé : https://wazuh02

4.      Connectez-vous en utilisant le nom d'utilisateur admin et le mot de passe qui est apparu dans votre terminal après avoir terminé le script d'installation. Une fois connecté, Wazuh présentera un tableau de bord riche plein d'options à explorer.

Configuration des décodeurs et des règles pour l'intégration Syslog Ootbi

Nous avons créé un dépôt GitHub avec des décodeurs et des règles simples adaptés à l'envoi de syslog de Object First vers Ootbi (Out-of-the-Box Immutability). Vous pouvez les télécharger en utilisant :

 https://github.com/object1st/wazuh-examples.git

Pas de Ootbi encore ? Pas de problème. Nous allons simuler des messages syslog pour démontrer comment Wazuh les traite.

Placement des fichiers

Au lieu de modifier les fichiers default local_decoder.xml et local_rules.xml, nous recommandons de créer des fichiers séparés pour une meilleure organisation, surtout si vous prévoyez de gérer plusieurs types d'événements.

Copiez les fichiers suivants :

1. Depuis le dossier des décodeurs :

  • honeypot_application_decoders.xml
  • ootbi_working_decoders.xml files

Placez-les dans : /var/ossec/etc/decoders/

2. Depuis le dossier des règles :

  • honeypot_application_rules.xml
  • ootbi_final_rules.xml files

Placez-les dans : /var/ossec/etc/rules/

Configuration de Wazuh pour recevoir des messages Syslog

1. Assurez-vous que Wazuh écoute les connexions syslog entrantes en ajoutant la section suivante à 

/var/ossec/etc/ossec.conf file under </ossec_config> 

<remote> 

    <connection>syslog</connection> 

    <port>514</port> 

    <protocol>udp</protocol> 

    <allowed-ips>192.168.0.0/24</allowed-ips> 

    <allowed-ips>127.0.0.1</allowed-ips> 

</remote> 

2. Mettez à jour les adresses IP autorisées pour correspondre à votre sous-réseau.

3. Redémarrez le service du gestionnaire Wazuh :

systemctl restart wazuh-manager

4. Vérifiez que le port est à l'écoute :

Ss -tunlp 

Envoi de messages Syslog de test

Vous pouvez envoyer des messages de test à Wazuh en utilisant netcat :

echo '<14>Aug 26 19:00:00 ootbisiem OOTBI [ootbi_event@61062 Node="ootbisiem" Source="Disks" EventId="1039"] The RAID array "md0" is missing.' | nc -q0 localhost 514 

echo ‘<12>1 0001-01-01T00:00:00.000000+00:00 ootbi-node1 OOTBI - - [ootbi_event@61062 Node="ootbi-node1" NodeId="A410B7E9-FF68-4ADF-B570-A964C6F45D98" DateTime="01/01/0001 00:00:00 UTC" Source="S3" EventId="6207" ProductVersion="1.7.67.10970" EDataVersion="1"] '{}' smart entity is in '{}' unconfirmed state’ | nc  -q0 localhost 514 

Visualisation des événements dans le tableau de bord Wazuh

Dans le tableau de bord Wazuh, ouvrez le menu en haut à gauche et cliquez sur “Explorer” puis “Découvrir.”

Vous devriez maintenant voir les messages syslog que vous avez envoyés.

Importation du tableau de bord Ootbi

1. Allez dans la gestion des tableaux de bord depuis le menu en haut à gauche.

2. Sous “Objets enregistrés,” cliquez sur “Importer.”

3. Téléchargez le fichier export.ndjson depuis votre bureau.

4. Une fois importé, cliquez sur “Explorer” puis “Tableaux de bord.”

5. Ensuite, cliquez sur le “Tableau de bord Ootbi.” Vous verrez les événements que vous avez envoyés précédemment affichés.

Test de la fonctionnalité Honeypot

Puisque Wazuh fonctionne comme un SIEM, c'est une excellente occasion de tester la nouvelle fonctionnalité Honeypot de Ootbi.

1. Pour commencer, dirigez votre transfert syslog Ootbi vers l'installation Wazuh.

2. Ensuite, envoyez un message de test pour confirmer la réception.

3. Si votre Honeypot fonctionne sur une IP statique (la mienne, par exemple, est 192.168.0.44), scannez-la en utilisant Zenmap.

5. Vous devriez voir des événements s'allumer dans le tableau de bord Ootbi et des entrées correspondantes dans votre tableau de bord Wazuh SIEM.

6. Vérifions maintenant notre SIEM :

Réflexions finales sur la configuration et l'intégration de Wazuh

Ce blog a servi d'introduction pratique à Wazuh, une plateforme SIEM et XDR open-source conçue pour simplifier la surveillance de la sécurité et la détection des menaces. Nous avons exploré son architecture modulaire—couvrant les agents, le serveur, le moteur d'analyse, l'indexeur et le tableau de bord—et avons parcouru une installation sur un seul nœud sur Ubuntu en utilisant le script de configuration simplifié de Wazuh. À partir de là, nous avons démontré comment configurer des décodeurs et des règles pour l'intégration syslog, simuler des événements et les visualiser dans le tableau de bord Wazuh.

Nous avons également montré comment importer un tableau de bord personnalisé et tester la fonctionnalité Honeypot de Ootbi, offrant aux lecteurs un aperçu pratique de la façon dont Wazuh peut être utilisé dans des scénarios réels. Que vous soyez nouveau dans les outils SIEM ou à la recherche d'une alternative plus axée sur la sécurité aux processeurs de journaux traditionnels, Wazuh offre une solution puissante et accessible. Pour une exploration plus approfondie, je recommande vivement de consulter la documentation officielle de Wazuh.

Restez informé

En soumettant ce formulaire, je confirme avoir lu et accepté la Politique de confidentialité.

Vous pouvez vous désinscrire à tout moment.