Praxis-Howto mit Neo23x0 Ruleset, Wazuh-Integration & Debug-Guidelines
Ziel dieser Anleitung
- Auditd sauber auf Debian installieren
- Neo23x0 audit.rules als Basis nutzen
- Audit-Events korrekt an Wazuh anbinden
- Root-Aktionen zuverlässig loggen
- Noise (z. B. Zabbix, systemd, cron) sauber entfernen
- Typische Fehler verstehen und systematisch debuggen
1. Auditd installieren (Debian)
sudo apt update
sudo apt install -y auditd audispd-plugins
Status prüfen:
sudo systemctl status auditd
Auditd muss laufen, sonst kommen keine Events.
2. Grundverständnis (wichtig!)
Auditd besteht aus:
- Kernel-Hooks (erzeugen Events)
- Regeln (was wird geloggt)
- Userspace-Tools (
auditctl,ausearch,aureport) - Integration (z. B. Wazuh)
Zwei wichtige Begriffe:
- uid/euid → technischer User
- auid → ursprünglicher Login-User
(4294967295/unset= Systemdienst)
👉 Für Root-Forensik ist euid=0 entscheidend, nicht auid.
3. Neo23x0 Ruleset installieren (Best Practice)
Warum Neo23x0?
- Security-fokussiert
- bewährt
- gute Abdeckung für Privilege Escalation, Persistence, Tampering
- Geforkt in eigenem Repo mit wazuh-spezifischen Anpassungen
Setup mit augenrules (empfohlen)
cd /etc/audit/rules.d
sudo curl -o 60-neo.rules \
https://raw.githubusercontent.com/mimugmail/auditd-wazuh/refs/heads/master/audit.rules
Regeln laden:
sudo augenrules --load
sudo systemctl restart auditd
Prüfen:
sudo auditctl -l | head
4. Root-Kommandos explizit loggen (wichtig!)
Das Neo-Ruleset loggt nicht automatisch alle Root-Commands.
Ergänzende Regel (ans Ende!)
Datei:
/etc/audit/rules.d/70-rootcmd.rules
# Log all commands executed as root
-a exit,always -F arch=b64 -F euid=0 -S execve -k audit-wazuh-x
-a exit,always -F arch=b32 -F euid=0 -S execve -k audit-wazuh-x
Reload:
sudo augenrules --load
sudo systemctl restart auditd
Test:
sudo ls /
sudo ausearch -k rootcmd -ts recent
5. Auditd + Wazuh: Keys richtig verstehen
Wichtiges Missverständnis
Wazuh hat keine festen Decoder pro Audit-Key.
Der -k <key>:
- ist ein Label
- wird in Wazuh über eine CDB-Liste (
audit-keys) eingeordnet
Wazuh kennt standardmäßig 5 Kategorien:
| Key | Bedeutung |
|---|---|
audit-wazuh-r | read |
audit-wazuh-w | write |
audit-wazuh-a | attribute |
audit-wazuh-x | execute |
audit-wazuh-c | command |
6. Typisches Problem: Audit-Noise (z. B. Zabbix)
Symptom
Log spam wie:
syscall=41 comm="zabbix_agentd" SYSCALL=socket
Ursache:
- Neo-Rules loggen socket(), connect(), accept()
- Zabbix macht das ständig
- Kein Sicherheitsgewinn → nur Lärm
7. WICHTIGSTE LEARNING: Regel-Reihenfolge
Auditd verarbeitet Regeln von oben nach unten.
First match wins.
➡️ Excludes müssen VOR den Neo-Regeln kommen, nicht danach.
8. Noise sauber entfernen (richtig!)
❌ Falsch
80-noise.rules
→ kommt zu spät, Neo-Rule hat schon gematcht
✅ Richtig
/etc/audit/rules.d/05-noise.rules
# Drop Zabbix socket noise (must be BEFORE neo rules)
-a never,exit -F arch=b64 -S socket -F exe=/usr/sbin/zabbix_agentd
-a never,exit -F arch=b32 -S socket -F exe=/usr/sbin/zabbix_agentd
Reload:
sudo augenrules --load
sudo systemctl restart auditd
Test:
sudo ausearch -ts recent | grep zabbix
# → leer = Erfolg
9. Debug-Howto: Wenn etwas „trotzdem“ geloggt wird
Schritt 1: Welche Regel triggert?
sudo auditctl -l | grep socket
Schritt 2: Reihenfolge prüfen
sudo auditctl -l | nl -ba | grep zabbix
Exclude muss oberhalb der loggenden Regel stehen.
Schritt 3: Stimmt der exe-Pfad?
ps -ef | grep zabbix
Beispiel:
/usr/sbin/zabbix_agentd
➡️ Exclude muss exakt diesen Pfad verwenden.
Schritt 4: Regelklasse beachten
Exclude muss zur gleichen Regelklasse passen:
| Geloggte Regel | Exclude braucht |
|---|---|
-S socket | -S socket |
perm=x | -F perm=x |
execve | -S execve |
10. Empfohlenes Dateischema
05-noise.rules # excludes (zabbix, systemd, cron)
60-neo.rules # Neo23x0 baseline
70-rootcmd.rules # eigene Root-Transparenz
11. Best Practices (aus der Praxis)
- 🔒
-e 2(immutable) erst setzen, wenn alles getestet ist - 📉 Noise immer kernel-seitig, nicht in Wazuh filtern
- 🧠 Lieber weniger, saubere Logs als alles
- 🧾 Root-Commands immer explizit loggen
- 🧪 Änderungen immer mit
ausearchtesten
12. Fazit
Mit:
- Neo23x0 Ruleset
- explizitem Root-Logging
- korrektem Wazuh-Key-Mapping
- früh geladenen Noise-Excludes
bekommst du:
- forensisch brauchbare Audit-Logs
- kaum Spam
- stabile Wazuh-Alerts
- vollständige Nachvollziehbarkeit von Root-Aktionen