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

alt

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 :

alt

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 )

alt
  • 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.

Par défaut les identifiants sont foo / bar
alt
alt

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.

alt
  • 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 …

alt
alt

Related