Surveillance de l'intégrité des fichiers critiques Linux avec Wazuh Syscheck et Whodata
Wazuh Syscheck suit les modifications des fichiers clés Linux comme /etc/passwd, /etc/shadow, /etc/sudoers et /etc/ssh/sshd_config. Le mode Whodata capture l'utilisateur et le processus à l'origine des changements via auditd. Cette configuration s'applique centralement à un groupe d'agents Linux, générant des alertes de niveau 12.
Architecture Wazuh et rôle de Syscheck
Wazuh se compose d'un gestionnaire pour le traitement des événements, d'agents sur les hôtes et d'un tableau de bord basé sur Kibana. Syscheck analyse les fichiers selon un planning ou en temps réel, vérifiant les hachages, permissions et propriétaires. En mode whodata, il s'intègre à auditd pour attribuer les changements.
Fonctionnalités clés :
- Scans périodiques toutes les 300 secondes.
- Envoi des diffs de changements.
- Détection de nouveaux fichiers dans les répertoires.
- Exclusion des fichiers temporaires pour réduire le bruit.
Préparation des agents
Installez auditd sur tous les agents Linux du groupe linux.
Pour les systèmes RHEL-like :
sudo dnf install audit audispd-plugins -y
sudo systemctl enable --now auditd
Pour Debian/Ubuntu :
sudo apt install auditd audispd-plugins -y
sudo systemctl enable --now auditd
Vérifiez le statut : sudo auditctl -l.
Vérifiez l'existence du groupe linux : ls -la /var/ossec/etc/shared/. Créez-le dans l'interface si absent.
Configuration centralisée d'agent.conf
Modifiez /var/ossec/etc/shared/linux/agent.conf sur le gestionnaire :
<agent_config>
<syscheck>
<frequency>300</frequency>
<whodata>yes</whodata>
<diff>yes</diff>
<directories check_all="yes" whodata="yes" report_changes="yes">/etc/passwd</directories>
<directories check_all="yes" whodata="yes" report_changes="yes">/etc/shadow</directories>
<directories check_all="yes" whodata="yes" report_changes="yes">/etc/sudoers</directories>
<directories check_all="yes" whodata="yes" report_changes="yes">/etc/ssh/sshd_config</directories>
<ignore>/etc/passwd-</ignore>
<ignore>/etc/shadow-</ignore>
<ignore>/etc/sudoers.tmp</ignore>
<ignore>/etc/.pwd.lock</ignore>
<alert_new_files>yes</alert_new_files>
<scan_on_start>yes</scan_on_start>
<auto_ignore>no</auto_ignore>
</syscheck>
</agent_config>
Redémarrez : sudo systemctl restart wazuh-manager.
Paramètres clés :
check_all="yes"— Vérifications complètes des attributs.whodata="yes"— Attribution via auditd.report_changes="yes"— Diffs dans les alertes.alert_new_files="yes"— Alertes pour nouveaux fichiers.
Règles d'alertes prioritaires
Ajoutez à /var/ossec/etc/rules/local_rules.xml :
<group name="syscheck,">
<rule id="100100" level="12">
<if_sid>550</if_sid>
<field name="file">/etc/passwd</field>
<description>CHANGEMENT CRITIQUE : /etc/passwd modifié</description>
<mitre>
<id>T1078</id>
<id>T1136</id>
</mitre>
</rule>
<rule id="100101" level="12">
<if_sid>550</if_sid>
<field name="file">/etc/shadow</field>
<description>CHANGEMENT CRITIQUE : /etc/shadow modifié (mots de passe)</description>
<mitre>
<id>T1003</id>
<id>T1078</id>
</mitre>
</rule>
<rule id="100102" level="12">
<if_sid>550</if_sid>
<field name="file">/etc/sudoers</field>
<description>CHANGEMENT CRITIQUE : /etc/sudoers modifié</description>
<mitre>
<id>T1078</id>
<id>T1548</id>
</mitre>
</rule>
<rule id="100104" level="12">
<if_sid>550</if_sid>
<field name="file">/etc/ssh/sshd_config</field>
<description>CHANGEMENT CRITIQUE : /etc/ssh/sshd_config modifié</description>
<mitre>
<id>T1078</id>
<id>T1548</id>
</mitre>
</rule>
<rule id="100103" level="10">
<if_sid>554</if_sid>
<field name="file">/etc/passwd</field>
<field name="file">/etc/shadow</field>
<field name="file">/etc/sudoers</field>
<options>alert_by_email</options>
<description>Utilisateur détecté modifiant fichier critique : $(file) - $(audit.user.name)</description>
<mitre>
<id>T1078</id>
</mitre>
</rule>
</group>
Redémarrez le gestionnaire. Les règles se déclenchent sur if_sid 550 (changement de fichier), niveau 12 pour la priorité.
Test de la configuration
Sur un agent, vérifiez : sudo cat /var/ossec/etc/shared/agent.conf | grep -A5 "syscheck".
Simulez un changement :
sudo cp /etc/passwd /etc/passwd.backup.test
echo "testuser:x:9999:9999:Test User:/home/testuser:/bin/bash" | sudo tee -a /etc/passwd
Les alertes afficheront un JSON avec rule.level=12, syscheck.path, audit.user.name (root), process.name (tee) et diff.
Restaurez : sudo cp /etc/passwd.backup.test /etc/passwd && sudo rm /etc/passwd.backup.test.
Points clés
- Syscheck avec whodata suit les auteurs des changements via auditd.
- Configuration centralisée pour le groupe linux réduit le travail manuel.
- Règles de niveau 12 avec tags MITRE pour /etc/passwd, /etc/shadow, etc.
- Diffs et attribution dans les alertes pour l'analyse forensic.
- Exclusions de fichiers temporaires réduisent les faux positifs.
Élargissement de la surveillance
Étendez à /etc/hosts.allow, configurations nginx/apache, clés SSH. Ajoutez des réponses actives pour blocages et intégrations avec systèmes de notification externes.
— Editorial Team
Aucun commentaire pour le moment.