Einleitung
Auditd-Logs gehören zu den wichtigsten Telemetriedaten für Sicherheits-Monitoring, Incident Response und forensische Analysen. Besonders in Linux-Umgebungen liefern sie reichhaltige Informationen zu Systemaufrufen, Ausführungsparametern und Prozessmetadaten. Eine Herausforderung in Wazuh ist dabei die Decodierung von PROCTITLE, dem Feld, das die vollständige Prozess-Commandline enthält. Dieser Artikel zeigt, wie Sie Ihre auditd-Decoder in Wazuh so erweitern, dass PROCTITLE zuverlässig extrahiert wird – basierend auf Best Practices und offiziellen Quellen.
Ausgangslage / Problemstellung
Auditd erzeugt pro Audit-Event mehrere Record-Typen (z. B. SYSCALL, EXECVE, PATH, PROCTITLE). Diese können – wie im Beispiel unten – in einer einzigen Logzeile zusammenlaufen. Standardmäßig parsen viele Wazuh-Rulesets SYSCALL und EXECVE, lassen aber oft das PROCTITLE-Feld außen vor, obwohl es für die Rekonstruktion der vollständigen Commandline essenziell ist.
Beispiel (gekürzt):
type=SYSCALL ... type=EXECVE ... type=PATH ... type=PROCTITLE msg=audit(...): proctitle=7368002D6300...
Ohne einen passenden Decoder bleibt audit.proctitle in Wazuh leer, was die Erkennungs- und Analysequalität mindert.
Technische Analyse
Auditd-Logs bestehen aus mehreren Feldern, die über Schlüssel-Werte paare repräsentiert werden. PROCTITLE tritt meist am Ende eines zusammengesetzten Events auf und enthält die Prozess-Commandline in hex-kodierter Form – Standardverhalten von auditd, da NUL-Bytes und Sonderzeichen sonst Parsing-Probleme bereiten würden. (Docs Red Hat Security Guide, Abschnitt Audit-Log-Dateien)
Wazuh-Decoder arbeiten hierarchisch: Basismatcher (<prematch>) identifizieren Events, <parent>-Deklarationen ordnen Child-Decoder zu, und <regex> mit Offsets steuern, in welcher Reihenfolge Felder extrahiert werden. Wenn der PROCTITLE-Regex zu früh im Decodierfluss steht oder nicht auf den korrekten Event-Block zielt, wird das Feld nicht gefüllt.
Die gängige Problemlage ist daher: Der Decoder für SYSCALL ist vorhanden und extrahiert viele Felder, aber der Regex für proctitle=… ist nicht korrekt positioniert bzw. nutzt keinen passenden Offset.
Lösung / Best Practices
Um audit.proctitle zuverlässig zu extrahieren, erweitern Sie Ihren bestehenden auditd-syscall-Decoder um einen zusätzlichen Child-Decoder, der speziell auf proctitle zielt. Der folgende XML-Block ist korrekt positioniert nach dem Basismatcher und extrahiert das Feld unmittelbar aus dem zusammengesetzten Log:
<!-- SYSCALL - proctitle -->
<decoder name="auditd-syscall">
<parent>auditd-syscall</parent>
<regex offset="after_parent">proctitle=(\S+)</regex>
<order>audit.proctitle</order>
</decoder>
Warum diese Version funktioniert
- Der
<parent>-Eintrag bindet diesen Decoder an den bestehendenauditd-syscall-Block. offset="after_parent"sorgt dafür, dass dieses Regex erst nach dem Erkennen desSYSCALL-Events angewendet wird.\S+erfasst die hex-kodierte Zeichenkette ohne Whitespace.- Durch
<order>wird das Feldaudit.proctitlein das Wazuh-Event injiziert und steht für Rules/Decoders zur Verfügung.
Testen mit Wazuh-Tools
Nutzen Sie das Tool wazuh-logtest zum Testen Ihrer Decodierung – es zeigt auf, welche Felder erfolgreich extrahiert wurden und vermeidet so Blindarbeit beim Regeln-Tuning (Tools-Dokumentation). Ebenso kann wazuh-regex helfen, regex-Muster allein gegen Beispielzeilen zu prüfen.
Lessons Learned / Best Practices
- Reihenfolge beachten: Die Reihenfolge der Child-Decoder entscheidet, ob ein Feld gelesen wird. Platzieren Sie
proctitle-Decoder nach relevanten anderen Extraktionen im selben Event. - Hex ist normal: Auditd liefert
proctitlehex-kodiert. Für menschenlesbare Darstellung sollten Sie eine nachgelagerte Transformation in Ihrem SIEM/Indexer erwägen. - Testen nicht raten: Nutzen Sie stets
wazuh-logtestund reale Logbeispiele, da Online-Regex-Tester nicht die gleiche Engine wie Wazuh verwenden. - Custom Decoder File: Legen Sie solche Anpassungen in einem Custom Decoder File ab, damit Upgrades des Wazuh-Rulesets Ihre Änderungen nicht überschreiben.
Fazit
Die Ergänzung eines gezielten proctitle-Decoders in den auditd-syscall-Block erlaubt es, in Wazuh das essenzielle Feld audit.proctitle zuverlässig zu extrahieren. Die korrekte Positionierung und Nutzung von offset="after_parent" sind dabei die Schlüssel zum Erfolg. Mit diesem Setup steht Ihnen die vollständige Prozess-Commandline für Erkennungsregeln, Alerting und forensische Analysen zur Verfügung.
https://wazuh.slack.com/archives/C0A933R8E/p1766748829291749
Mehr zu Wazuh …
https://wazuh.com/?utm_source=ambassadors&utm_medium=referral&utm_campaign=ambassadors+program
Mehr zum Wazuh Ambassador Program …
https://wazuh.com/ambassadors-program/?utm_source=ambassadors&utm_medium=referral&utm_campaign=ambassadors+program
Quellen / Referenzen
- Red Hat Enterprise Linux Security Guide – Understanding Audit Log Files: https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/security_guide/sec-understanding_audit_log_files
- Wazuh Decoder Syntax und Best Practices: https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/decoders.html
- Wazuh Tools –
wazuh-logtest: https://documentation.wazuh.com/current/user-manual/reference/tools/wazuh-logtest.html