Bonjour à tous,
Dans cet article, qui suit celui de la présentation de Wazuh (lien ici), nous allons voir comment configurer la partie FIM (File Integrity Monitoring) de ce logiciel.
Je vais conserver l’architecture du 1er article, c’est-à-dire 1 serveur manager Wazuh sous Centos 7, un client Windows 10 & un autre Ubuntu.
Vérifions d’abord que les agents sont bien connectés avec le script agent_control :
Dans mon cas, les agents ont le même nom car je me sert de mon poste Windows 10 et du bash intégré à Windows comme agent. Le 005 correspond à Windows et 006 à Ubuntu.
Parlons maintenant du FIM, cette fonctionnalité permet de surveiller en temps réel ou non les modifications effectuées sur les fichiers présents sur nos serveurs. La surveillance se fait généralement sous forme de scan. Les technologies utilisées pour voir si un fichier est modifié sont tout simplement la réalisation de hashs, pour l’instant SHA1 et MD5 (SHA256 est prévu dans la prochaine version de Wazuh). Le service utilisé pour réaliser les scans du FIM est Syscheck.
Le fonctionnement est donc le suivant, après avoir défini les fichiers à surveiller sur nos différents agents Wazuh, un scan syscheck est lancé, ce scan va réaliser une ou des empreintes de fichier selon vos choix, en SHA1/MD5. Et lors du prochain scan, si l’empreinte du fichier est modifiée vous recevrez une alerte. Il existe notamment des options pour la surveillance en temps réel ou pour avoir un diff, c’est-à-dire ce qui a été modifié dans le fichier.
Passons maintenant à la configuration de notre manager Wazuh :
Tout d’abord, je vous invite à visiter ce lien pour configurer les alertes par mail de votre serveur Wazuh.
La configuration se fait dans le fichier /var/ossec/etc/ossec.conf, il suffit de renseigner les informations de votre serveur de mail afin qu’il puisse vous transférer les différentes alertes émises par votre IDS.
Une fois les alertes configurées, nous allons continuer la configuration sur le serveur manager.
De base les règles de déclenchement de Wazuh se trouvent dans /var/ossec/ruleset/, ces différentes règles correspondent aux différentes applications qu’il est possible de surveiller ou aux fonctionnalités de ce logiciel.
Pour la partie FIM, nous verrons que très peu ces fichiers de règles, seul le ficher 0015-ossec_rules.xml nous intéresse car il contient les règles pour le syscheck (FIM) et rootcheck (détection de rootkit).
Au niveau des règles, il est possible d’en créer des nouvelles et de modifier les existantes, notamment au niveau des alertes par mail ou du niveau de l’alerte générée par la règle en question.
La configuration du niveau des alertes par mail se fait toujours dans ossec.conf dans cette partie :
Le niveau des alertes n’est pas le seul endroit où les mails peuvent être configurés, il est également possible de configurer directement les mails dans les alertes, si vous voulez recevoir une alerte sur une seule règle si le niveau est bas.
Voici un exemple ici avec l’option alert_by_mail sur la règle d’un ajout d’agent à notre serveur manager.
Pour information, les alertes générées par Wazuh se trouvent dans le fichier /var/ossec/log/alerts/alert.log. Par mail, une alerte FIM ressemble à ça :
Passons maintenant à la configuration de nos agents Windows et Linux, pour la partie Syscheck (FIM), la configuration est assez simple.
Tout ce passe dans le fichier ossec.conf sur nos agents, dans la partie syscheck. Dans ce fichier de configuration, différentes balises sont disponibles :
- frequency : correspond à la fréquence des scans syscheck
- Il est également possible de mettre des jours de la semaine et non un temps en secondes
- scan_on_start : cette option effectue un scan au lancement du service Wazuh
- directories : qui permet d’indiquer les dossiers/fichiers à surveiller
- Des options sont disponibles pour cette balise :
- check_all : effectue un check MD5, SHA1 ainsi que les permissions du fichier/dossier
- realtime : permet la surveillance en temps réel sur les dossiers uniquement et sur Windows/Linux.
- report_change : exécute un diff sur le fichier pour remonter les modifications
- Des options sont disponibles pour cette balise :
- alert_new_files : génère une alerte lors de l’ajout d’un fichier
- auto_ignore : permet d’ignorer un fichier s’il est modifié plus de 3 fois
- ignore : permet de fournir les dossiers/fichiers à ne pas prendre en compte dans le syscheck
- windows_registry (Windows Only) : alerte envoyée en cas de modification d’une clé de registre
- registry_ignore (Windows Only) : permet d’ignorer les clés de registre spécifiées
Je n’ai présenté ici que les principales options du syscheck, voici un lien vers une documentation plus complète.
Voici également un de fichier de configuration pour Windows/Linux, les configurations sont les mêmes pour toutes les plateformes (Windows/AIX/Linux). Il faut bien entendu, adapter les fichiers par OS et les intégrer dans chaque agent en fonction de son système.
<syscheck>
<disabled>no</disabled>
### Mise en place de l’option auto_ignore ###
<auto_ignore>yes</auto_ignore>
### Mise en place de l’option alert_new_files ###
<alert_new_files>yes</alert_new_files>
### Scan toutes les 43200 secondes ###
<frequency>43200</frequency>
### Possibilité de gérer les scans par jour/heure ###
<scan_time>9pm</scan_time>
<scan_day>monday</scan_day>
### Scan au lancement de Wazuh ###
<scan_on_start>yes</scan_on_start>
### Dossiers à surveiller avec l’option Check_all ###
<directories check_all=”yes”>/etc,/usr/bin,/usr/sbin</directories>
### Utilisation des options report_change & real_time ###
<directories check_all=”yes” realtime=”yes” report_changes=”yes”>/bin</directories>
### Fichiers/Dossiers à ignorer
<ignore>/etc/mtab</ignore>
<ignore>/etc/hosts.deny</ignore>
### Réaliser un syscheck sans jamais effectuer de diff ###
<nodiff>/etc/ssl/private.key</nodiff>
##### Seulement sur Windows #####
### Clé de registre à surveiller ###
<windows_registry>HKEY_LOCAL_MACHINE\Software\Classes\batfile</windows_registry>
### Clé de registre à ignorer ###
<registry_ignore>HKEY_LOCAL_MACHINE\Security\Policy\Secrets</registry_ignore>
</syscheck>
Par défaut, les différents systèmes ont déjà un fichier de configuration préconfiguré et bien commenté.
Pour l’instant nous avons donc des agents Wazuh et un manager configuré pour la partie FIM, mais si vous avez un parc important, il peut être très difficile de déployer le fichier sur toutes vos machines clientes. Il existe une solution à configurer sur notre manager afin de déployer une configuration par système d’exploitation par exemple ou par groupe de serveur.
Ce fichier se trouve dans /var/ossec/etc/shared/default/ et se nomme agent.conf.
Il se présente comme ossec.conf sur nos agents et vous permet de déployer une configuration uniforme sur l’ensemble de vos agents, les commandes sont exactement les mêmes que pour ossec.conf. Voici un exemple pour le déploiement en fonction de l’OS :
<agent_config name=”agent01”>
Configuration de votre agent
</agent_config>
<agent_config os=”Windows”>
Configuration de vos options pour vos serveurs Windows
</agent_config>
<agent_config os=”Linux”>
Configuration de vos options pour vos serveurs Linux
</agent_config>
<agent_config profile=”UnixHost”>
Configuration de vos options pour les serveurs qui ont le profil UnixHost
</agent_config>
Avec cette fonctionnalité, le fichier agent.conf sera partagé automatiquement et sera pris en compte par l’ensemble de vos agents si une configuration lui correspond. Pour vérifier si votre configuration est présente sur un de vos clients, vous pouvez exécuter les commandes suivantes sur votre manager :
- Vérification du hash du fichier agent.conf
Lancez la commande :
md5sum /var/ossec/etc/shared/default/agent.conf
- Vérification du hash avec agent_control
Lancez la commande :
/var/ossec/bin/agent_control -i ### ID de votre agent ###
Il faut maintenant comparer les hashs fournis dans le résultat des 2 commandes :
Je vous invite également à lire la documentation officielle de Wazuh au sujet de la configuration centralisée si vous voulez aller plus loin. Cet article sera également suivi d’un 3ème article sur la configuration de la partie HIDS de cet outil !
J’espère que cet article vous aura plu, si vous avez des questions ou des remarques sur ce que j’ai pu écrire n’hésitez pas à réagir avec moi par mail ou en commentaire !
Merci pour votre lecture et à bientôt !
MRigonnaux
The post Wazuh HIDS Configuration du FIM appeared first on Homputer Security.