Wazuh-Regeln gezielt unterdrücken: PowerShell Policy Test-Dateien korrekt ignorieren

Einleitung

In produktiven SIEM-Umgebungen mit Wazuh ist ein präzises Alert-Tuning essenziell. Gerade auf Windows-Systemen entstehen regelmäßig Events, die sicherheitsrelevant erscheinen, in der Praxis jedoch legitime Systemprozesse darstellen. Ein typisches Beispiel sind temporäre Dateien mit dem Präfix __PSScriptPolicyTest_, die im Zusammenhang mit PowerShell-Ausführungsrichtlinien erzeugt werden.

Wenn diese Dateien durch Windows Event Logs erfasst werden, können mehrere Wazuh-Regeln aus dem Windows-Sysmon- oder Security-Regelwerk ausgelöst werden. Ohne gezielte Filterung führt dies zu unnötigen Alerts und erhöhtem Rauschen im SIEM. Dieser Artikel zeigt, wie solche Events korrekt über eine Custom Rule unterdrückt werden, wenn bestimmte Dateipfade im Feld win.eventdata.targetFilename auftreten.


Ausgangslage / Problemstellung

In einer Wazuh-Installation wurden regelmäßig Alerts durch die folgenden Regel-IDs erzeugt:

  • 92201
  • 92205
  • 92212
  • 92213

Diese Regeln reagierten auf Dateioperationen, bei denen temporäre PowerShell-Testdateien erzeugt wurden. Die betroffenen Dateipfade hatten stets das folgende Muster:

C:\Windows\Temp\__PSScriptPolicyTest_*
C:\Windows\SystemTemp\__PSScriptPolicyTest_*
C:\Users\<user>\AppData\Local\Temp\__PSScriptPolicyTest_*

Ziel war es, diese Events vollständig zu unterdrücken, indem eine Custom Rule mit Level 0 erstellt wird. Dadurch werden entsprechende Alerts im Wazuh Manager ignoriert.

Eine erste Implementierung sah folgendermaßen aus:

<rule id="121233" level="0">
<if_sid>92201,92205,92212,92213</if_sid>
<match>C:\\Windows\\Temp\\__PSScriptPolicyTest_|C:\\Windows\\SystemTemp\\__PSScriptPolicyTest_.*|C:\\Users\\<user>\\AppData\\Local\\Temp\\__PSScriptPolicyTest_.*</match>
<options>no_full_log</options>
<description>Ignore RULE</description>
</rule>

Die Regel wurde jedoch nicht ausgelöst und die Alerts blieben weiterhin aktiv.


Technische Analyse

Die Ursache lag in der Verwendung des falschen Matching-Mechanismus innerhalb der Wazuh-Regel.

Problem 1: Verwendung von <match>

Das <match>-Element durchsucht den kompletten Log-String nach einem Pattern. In strukturierten Windows-Events arbeitet Wazuh jedoch mit dekodierten Feldern, die gezielt adressiert werden können.

Der relevante Wert befindet sich in:

win.eventdata.targetFilename

Wenn stattdessen <match> verwendet wird, erfolgt keine gezielte Prüfung auf dieses Feld.


Problem 2: Regex-Escaping für Windows-Pfade

Windows-Dateipfade enthalten Backslashes (\). In Wazuh-Regeln müssen diese:

  1. Für XML interpretiert werden
  2. Für Regex korrekt escaped sein

Dadurch entsteht ein doppeltes Escaping.

Beispiel:

C:\Windows\Temp

wird in der Regel zu:

C:\\\\Windows\\\\Temp

Problem 3: Feldbasierte Filterung

Wazuh unterstützt direkte Feldprüfungen über das <field>-Element. Dadurch kann eine Regel exakt auf den Wert eines dekodierten Logfeldes reagieren.

Dies ist wesentlich robuster als ein globales Pattern-Matching.


Lösung / Best Practices

Die korrekte Lösung besteht darin, das Feld win.eventdata.targetFilename direkt zu prüfen und die Regel auf die betroffenen Rule-IDs zu beschränken.

Die funktionierende Custom Rule lautet:

<rule id="121233" level="0">
<if_sid>92201,92205,92212,92213</if_sid>
<field name="win.eventdata.targetFilename" type="pcre2">
C:\\\\Windows\\\\Temp\\\\__PSScriptPolicyTest_.*|
C:\\\\Windows\\\\SystemTemp\\\\__PSScriptPolicyTest_.*|
C:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\__PSScriptPolicyTest_.*
</field>
<options>no_full_log</options>
<description>Ignore PowerShell Script Policy Test Files</description>
</rule>

Funktionsweise der Regel

  1. if_sid
    Die Regel wird nur angewendet, wenn eine der folgenden Regeln bereits ausgelöst wurde:
    • 92201
    • 92205
    • 92212
    • 92213
  2. field-Prüfung
    Das Feld win.eventdata.targetFilename wird gegen einen PCRE2-Regex geprüft.
  3. Regex-Muster
    Die Regel erkennt drei mögliche Pfade:
C:\Windows\Temp\__PSScriptPolicyTest_*
C:\Windows\SystemTemp\__PSScriptPolicyTest_*
C:\Users\*\AppData\Local\Temp\__PSScriptPolicyTest_*
  1. Level 0
    Events, die diese Bedingungen erfüllen, werden vollständig unterdrückt.

Deployment-Schritte

  1. Regel in einer Custom Rules Datei ablegen, z. B.:
/var/ossec/etc/rules/local_rules.xml
  1. Wazuh Manager neu starten:
systemctl restart wazuh-manager
  1. Funktion testen:
/var/ossec/bin/wazuh-logtest

Lessons Learned / Best Practices

1. Immer feldbasierte Regeln verwenden

Bei strukturierten Logs (Windows Events, JSON Logs) sollte immer <field> statt <match> verwendet werden.

2. Regex-Escaping sorgfältig prüfen

Windows-Pfade benötigen doppeltes Escaping:

\  →  \\\\

Fehler in diesem Bereich führen häufig dazu, dass Regeln nicht matchen.

3. Alert-Suppression gezielt auf Parent-Regeln beschränken

Mit <if_sid> wird verhindert, dass die Regel unbeabsichtigt andere Events beeinflusst.

4. Regeln immer mit wazuh-logtest validieren

Damit lassen sich Parsing- und Regex-Probleme sofort erkennen.

5. Temporäre Systemdateien frühzeitig filtern

Viele Windows-Systemprozesse erzeugen temporäre Artefakte. Werden diese nicht gefiltert, steigt die Alert-Frequenz unnötig.


Fazit

Das Unterdrücken legitimer Systemereignisse ist ein zentraler Bestandteil eines sauberen SIEM-Betriebs. In Wazuh sollten hierfür gezielte Feldprüfungen genutzt werden, anstatt globale Log-Matches.

Durch die Kombination aus <if_sid> und einer feldbasierten Regex-Prüfung auf win.eventdata.targetFilename lassen sich PowerShell-Testdateien zuverlässig ignorieren, ohne das übrige Regelwerk zu beeinflussen. Das reduziert Alert-Noise erheblich und sorgt für eine präzisere Erkennung tatsächlich sicherheitsrelevanter Aktivitäten.


Quellen

Wazuh Rules Syntax
https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/rules.html#field

Wazuh Regex Syntax
https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/regex.html


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

https://wazuh.slack.com/archives/C0A933R8E/p1772695158154109