Retour à l'accueil

Wazuh Syscheck : Surveillance des fichiers Linux

Guide pour configurer Syscheck dans Wazuh afin de surveiller les fichiers Linux clés avec whodata. Configuration centralisée, règles de criticité 12, test des changements. L'intégration auditd fournit l'attribution.

Protection des fichiers Linux Wazuh : whodata et alertes
Advertisement 728x90

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 :

Google AdInline article slot
  • 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 :

Google AdInline article slot
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 :

Google AdInline article slot
<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

Advertisement 728x90

Lire ensuite