Überwachung der Integrität kritischer Linux-Dateien mit Wazuh Syscheck und Whodata
Wazuh Syscheck überwacht Änderungen an wichtigen Linux-Dateien wie /etc/passwd, /etc/shadow, /etc/sudoers und /etc/ssh/sshd_config. Im Whodata-Modus erfasst es den Benutzer und Prozess, der die Änderungen vornimmt, über auditd. Diese Konfiguration gilt zentral für eine Linux-Agentengruppe und erzeugt Alarme auf Stufe 12.
Wazuh-Architektur und Rolle von Syscheck
Wazuh besteht aus einem Manager zur Ereignisverarbeitung, Agenten auf den Hosts und einem Kibana-basierten Dashboard. Syscheck scannt Dateien zeitgesteuert oder in Echtzeit und prüft Hashes, Berechtigungen und Eigentümer. Im Whodata-Modus integriert es sich mit auditd, um Änderungen zuzuordnen.
Wichtige Funktionen:
- Periodische Scans alle 300 Sekunden.
- Diffs der Änderungen werden gesendet.
- Erkennung neuer Dateien in Verzeichnissen.
- Ausschluss von Temporärdateien zur Reduzierung von Fehlalarmen.
Vorbereitung der Agenten
Installieren Sie auditd auf allen Linux-Agenten der Gruppe „linux“.
Für RHEL-ähnliche Systeme:
sudo dnf install audit audispd-plugins -y
sudo systemctl enable --now auditd
Für Debian/Ubuntu:
sudo apt install auditd audispd-plugins -y
sudo systemctl enable --now auditd
Status prüfen: sudo auditctl -l.
Überprüfen Sie, ob die linux-Gruppe existiert: ls -la /var/ossec/etc/shared/. Falls nicht, erstellen Sie sie in der UI.
Zentrale agent.conf-Konfiguration
Bearbeiten Sie /var/ossec/etc/shared/linux/agent.conf auf dem Manager:
<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>
Neustart: sudo systemctl restart wazuh-manager.
Wichtige Parameter:
check_all="yes"— Vollständige Attributprüfungen.whodata="yes"— Zuordnung über auditd.report_changes="yes"— Diffs in Alarmen.alert_new_files="yes"— Alarme für neue Dateien.
Regeln für hochprioritäre Alarme
Fügen Sie in /var/ossec/etc/rules/local_rules.xml hinzu:
<group name="syscheck,">
<rule id="100100" level="12">
<if_sid>550</if_sid>
<field name="file">/etc/passwd</field>
<description>KRITISCHE ÄNDERUNG: /etc/passwd modifiziert</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>KRITISCHE ÄNDERUNG: /etc/shadow modifiziert (Passwörter)</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>KRITISCHE ÄNDERUNG: /etc/sudoers modifiziert</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>KRITISCHE ÄNDERUNG: /etc/ssh/sshd_config modifiziert</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>Benutzer modifiziert kritische Datei: $(file) - $(audit.user.name)</description>
<mitre>
<id>T1078</id>
</mitre>
</rule>
</group>
Manager neustarten. Regeln lösen bei if_sid 550 (Dateiänderung) auf Stufe 12 aus.
Test der Konfiguration
Auf einem Agenten prüfen: sudo cat /var/ossec/etc/shared/agent.conf | grep -A5 "syscheck".
Änderung simulieren:
sudo cp /etc/passwd /etc/passwd.backup.test
echo "testuser:x:9999:9999:Test User:/home/testuser:/bin/bash" | sudo tee -a /etc/passwd
Alarme zeigen JSON mit rule.level=12, syscheck.path, audit.user.name (root), process.name (tee) und diff.
Zurücksetzen: sudo cp /etc/passwd.backup.test /etc/passwd && sudo rm /etc/passwd.backup.test.
Wichtige Erkenntnisse
- Syscheck mit Whodata verfolgt Änderungsautoren über auditd.
- Zentrale Konfiguration für linux-Gruppe spart manuellen Aufwand.
- Stufe-12-Regeln mit MITRE-Tags für /etc/passwd, /etc/shadow usw.
- Diffs und Zuordnungen in Alarmen für Forensik.
- Ausschluss von Temporärdateien reduziert Fehlalarme.
Skalierung der Überwachung
Erweitern auf /etc/hosts.allow, nginx/apache-Konfigs, SSH-Schlüssel. Aktive Reaktionen für Sperrungen und Integrationen mit externen Benachrichtigungssystemen hinzufügen.
— Editorial Team
Noch keine Kommentare.