Drupal EOL-Erkennung mit Wazuh

Aus maxTechCorner

Custom Decoder & Rules korrekt umsetzen (inkl. typischer Stolperfallen)

Einleitung

Viele Organisationen betreiben CMS-basierte Webanwendungen wie Drupal und stehen vor der Herausforderung, End-of-Life-Versionen (EOL) zuverlässig zu erkennen. Wazuh bietet dafür alle notwendigen Bausteine – Logsammlung, Decoder und Regeln – allerdings mit einigen syntaktischen und logischen Feinheiten.

Dieser Artikel zeigt anhand eines realen Community-Falls:

  • wie Drupal-Versionen korrekt dekodiert werden
  • warum Regeln trotz korrektem Decoder nicht feuern
  • und wie man das Problem sauber und regelkonform löst

1. Ausgangssituation & Ziel

Ziel

Wazuh soll Alarm schlagen, wenn eine nicht unterstützte Drupal-Version auf einem Webserver erkannt wird.

Voraussetzungen

  • Webserver loggt Drupal-Versionen (z. B. via Skript oder Health-Check)
  • Wazuh Agent liest das Log korrekt ein
  • Decoder extrahiert:

url

  • drupal_version (Major.Minor)

Beispiel-Log:

test1.com : 10.5.4
test2.com : 11.2

2. Custom Decoder – korrekt und bewusst reduziert

Da nur Major.Minor relevant sind (Patchlevel ignorieren), ist folgender Decoder sinnvoll:

<decoder name="drupal_version">
    <prematch> : </prematch>
    <regex type="pcre2">^(\S+)\s:\s([0-9]+\.[0-9]+)</regex>
    <order>url,drupal_version</order>
</decoder>

Ergebnis im wazuh-logtest

Phase 2: Completed decoding.
name: 'drupal_version'
url: 'test1.com'
drupal_version: '10.5'

📌 Wichtig: Decoder funktionieren korrekt – das Problem liegt nicht hier.

3. Der erste Fehler: Regel ohne Kontext

Der ursprüngliche Regelversuch:

<rule id="100051" level="10">
  <field name="drupal_version" negate="yes">^(10\.5|11\.2)$</field>
</rule>

Typischer Fehler

ERROR: (5107): Syntax error on tag 'drupal_version'

Ursachen

  1. Kein Bezug zum Decoder
  2. Regel wird isoliert ausgeführt
  3. Wazuh weiß nicht, wann diese Regel geprüft werden soll

📌 In Wazuh gilt:

Regeln müssen immer an einen Decoder oder eine Parent-Rule gebunden sein

4. Die korrekte Lösung: Parent-Rule + Child-Rule

Schritt 1: Baseline-Regel (Decoder-Bindung)

<rule id="100052" level="0">
  <decoded_as>drupal_version</decoded_as>
  <description>Drupal Version erkannt</description>
</rule>

Diese Regel:

  • verknüpft den Decoder mit dem Regelwerk
  • erzeugt keinen Alert
  • dient als Einstiegspunkt (if_sid)

Schritt 2: EOL-Prüfung als Folge-Regel

<rule id="100053" level="3">
  <if_sid>100052</if_sid>
  <field name="drupal_version" negate="yes" type="pcre2">10.5|11.2</field>
  <description>
    Unsupported Drupal version detected on $(url): $(drupal_version)
  </description>
</rule>

Funktionsweise

  • Regel 100053 wird nur geprüft, wenn:

Decoder drupal_version aktiv war

Alert feuert, wenn:

  • Version nicht 10.5 oder 11.2 ist

5. Warum diese Struktur zwingend notwendig ist

Wazuh Regel-Pipeline (vereinfacht)

  1. Log → Decoder
  2. Decoder → Parent-Rule (decoded_as)
  3. Parent-Rule → Child-Rules (if_sid)
  4. Feldbedingungen → Alert

Ohne diesen Ablauf:

  • wird die Regel nie evaluiert
  • oder führt zu Syntax-Fehlern

6. Regex-Best Practices in Wazuh

  • <field> nutzt OSRegex oder PCRE2
  • Für Versionsvergleiche:

PCRE2 verwenden

Klammern, Punkte, Pipes bewusst einsetzen

📘 Offizielle Regex-Doku:

7. Drupal EOL – externe Referenzen

Damit die Regel fachlich korrekt bleibt, sollte sie sich an offiziellen Drupal-Lifecycle-Informationen orientieren:

➡️ Empfehlung: EOL-Versionen regelmäßig prüfen und Regex anpassen.

8. Zusammenfassung

Was war das Problem?

  • Regel war syntaktisch korrekt, aber logisch nicht eingebunden

Was ist die Lösung?

  • Trennung in:

Decoder-Rule

  • Prüf-Rule mit if_sid

Best Practice

  • Decoder ≠ Regel
  • Eine Regel = eine Aufgabe
  • Kontext immer explizit herstellen

9. Weiterführende Wazuh-Quellen

Fazit

Mit der richtigen Regelstruktur eignet sich Wazuh hervorragend für Compliance-Checks, EOL-Überwachung und Application Security Monitoring – auch jenseits klassischer System-Logs.

🛡️ Decoder liefern Kontext – Regeln liefern Bedeutung.

https://wazuh.slack.com/archives/C07CCCCGHHP/p1766134461965409

Quelle

Dieser Artikel stammt aus dem Wazuh-Blog von m.a.x. it (veröffentlicht am 15. März 2026).

Unterstützung von m.a.x. it

Bei Einführung, Betrieb und Feintuning von Wazuh (SIEM) unterstützt Sie m.a.x. it mit SIEM-Services auf Open-Source-Basis.


Über m.a.x. it Die m.a.x. Informationstechnologie AG ist seit über 30 Jahren IT-Partner mittelständischer und großer Unternehmen in München und bietet maßgeschneiderte Lösungen und Services in den Bereichen Cloud, Cybersecurity, Netzwerk, Windows, Linux und Softwareentwicklung. Sie haben eine Frage zu diesem Artikel oder brauchen Unterstützung? Kontakt aufnehmen