A la découverte de Wazuh

Table des matières
Mon objectif est de préparer une infrastucture Wazuh à base du moteur Splunk en vue d’évaluer la solution sous différents cas d’usage (pour un prochain article).
Pour rappel, Wazuh est un HIDS (Host Intrusion Detected System) fork d’OSSEC.
Brièvement un HIDS permet de surveiller différents agents déployés sur un parc, de remonter des alertes de sécurité et éventuellement mettre en place des contre-mesures.
Quelques fonctionnalités de Wazuh :
- Analyser les logs des différents agents (environnement Windows, Linux et Mac)
- Remonter des alertes avec différents niveaux de criticité (0 à 15)
- Contrôler l’intégrité
- Détecter des rootkits
- Agir avec des réponses actives
Architecture cible

L’infrastructure Wazuh sera en version 3.12.3_7.6.2 et exploitera un environnement Splunk Entreprise (version 8) et son application Wazuh en lieu et place de la traditionnelle stack ELK.
Deux agents sur deux environnements :
- un serveur en Debian 10.x exposé sur Internet
- un laptop sous Windows 10.
Splunk - préparation de l’indexer
Pour faire simple dans cette première version une seule instance Splunk jouera le rôle de Search Head et d’Indexer.
Création d’un index wazuh :

Wazuh manager - déploiement
Pour faciliter les tests, la console de management sera installée dans un environnement Docker. Je vais adapter la version docker officielle qui est prévue pour tourner dans un environnement ELK vers un environnement Splunk.
Mon adaptation est disponible ici.
Le fichier alerts.json qui contient les alertes de Wazuh sera monté en dehors du container et surveillé par un agent Splunk Forwarder.
Une alternative pertinente pour élargir à d’autres scenarii serait d’utiliser un agent filebeat et de router sur un topic Kafka. La topologie devient alors la suivante (mais ce sera pour un autre article )

Compilation et démarrage du container
# docker-compose up Building wazuh Step 1/28 : FROM phusion/baseimage:latest latest: Pulling from phusion/baseimage 281a73dee007: Pull complete 2aea1b77cff7: Pull complete 59a714b7d8bf: Pull complete [..........]
Agent Splunk Forwarder
Installation de l’agent sur le système hôte
wget -O splunkforwarder-8.0.3-a6754d8441bf-linux-2.6-amd64.deb 'https://www.splunk.com/bin/splunk/DownloadActivityServlet?architecture=x86_64&platform=linux&version=8.0.3&product=universalforwarder&filename=splunkforwarder-8.0.3-a6754d8441bf-linux-2.6-amd64.deb&wget=true' dpkg --install splunkforwarder-8.0.3-a6754d8441bf-linux-2.6-amd64.deb
Définition du fichier à surveiller
/opt/splunkforwarder/etc/system/local/inputs.conf
[monitor:///var/ossec/logs/alerts/alerts.json]
disabled = 0
host = MANAGER_REDTEAMS
index = wazuh
- Définition des caractéristiques de l’indexation
/opt/splunkforwarder/etc/system/local/props.conf
[wazuh]
DATETIME_CONFIG =
INDEXED_EXTRACTIONS = json
KV_MODE = none
NO_BINARY_CHECK = true
category = Application
disabled = false
Activation du service
/opt/splunk/bin/splunk start /opt/splunkforwarder/bin/splunk enable boot-start
Déclaration de l’indexer
/opt/splunkforwarder/bin/splunk add forward-server 192.168.2.232:9997
Installation de l’application Splunk
Installation de l’application splunk via gitbub car la dernière version n’est pas publiée sur le store de Splunk …
wget https://github.com/wazuh/wazuh-splunk/releases/download/v3.12.3-8.0.2/wazuhapp-splunk-3.12.3_8.0.2.tar.gz
tar -xf wazuhapp-splunk-3.12.3_7.3.5.tar.gz -C /opt/splunk/etc/apps/
Après redémarrage du service Splunk, nous pouvons procéder à la configuration de l’application.


Déploiement des agents
La première étape est de placer le manager en mode “enregistrement” pour accepter de nouveaux agentq. (Si on souhaite contrôler l’enregistrement il est possible de définir un token - dans notre cas nous couperons le service juste après avoir enregistré nos agents).
docker exec -it wazuh-manager /bin/bash
/var/ossec/bin/ossec-authd
Au sein de l’application, un “générateur” d’installation est disponible.

- Version linux
Téléchargement et installation :
curl -so wazuh-agent.deb https://packages.wazuh.com/3.x/apt/pool/main/w/wazuh-agent/wazuh-agent_3.12.3-1_amd64.deb\
&& sudo WAZUH_MANAGER='x.x.x.x' dpkg -i ./wazuh-agent.deb
Si l’agent a été installé sans préciser le manager on utilisera la commande suivante pour procéder à l’enregistrement :
/var/ossec/bin/agent-auth -m x.x.x.x
2020/05/11 19:33:22 agent-auth: INFO: Started (pid: 27328).
2020/05/11 19:33:22 agent-auth: INFO: No authentication password provided.
2020/05/11 19:33:22 agent-auth: INFO: Connected to x.x.x.x:1515
2020/05/11 19:33:22 agent-auth: WARNING: Registering agent to unverified manager.
2020/05/11 19:33:22 agent-auth: INFO: Using agent name as: scw-gracious-rosalind
2020/05/11 19:33:22 agent-auth: INFO: Send request to manager. Waiting for reply.
2020/05/11 19:33:22 agent-auth: INFO: Received response with agent key
2020/05/11 19:33:22 agent-auth: INFO: Valid key created. Finished.
2020/05/11 19:33:22 agent-auth: INFO: Connection closed.
- Version windows
Téléchargement et installation :
Invoke-WebRequest -Uri https://packages.wazuh.com/3.x/windows/wazuh-agent-3.12.3-1.msi -OutFile wazuh-agent.msi;
wazuh-agent.msi /q ADDRESS='192.168.2.43' AUTHD_SERVER='192.168.2.43'
Si l’agent a été installé sans préciser le manager on utilisera la commande suivante pour procéder à l’enregistrement :
"c:\Program Files (x86)\ossec-agent\agent-auth.exe" -m 192.168.2.43
Nous pouvons maintenant consulter notre tableau bord des événements de sécurité qui a du potentiel …

