Wazuh Custom Decoder für Huawei-Storage-Syslog: Erfolgreiche Logins korrekt parsen

Einleitung

Die Integration von Storage-Systemen in ein zentrales SIEM ist ein zentraler Baustein für belastbares Security-Monitoring. Gerade proprietäre Syslog-Formate, wie sie bei Enterprise-Storage-Systemen üblich sind, erfordern in Wazuh häufig eigene Decoder und Regeln. Dieser Artikel basiert auf einer realen Community-Diskussion aus dem Wazuh-Umfeld und zeigt praxisnah, wie Huawei-OceanStor-Logs korrekt dekodiert und in verwertbare Security-Alerts überführt werden.

Ausgangslage / Problemstellung

In einer neu installierten Wazuh-Umgebung sollen Syslog-Meldungen eines Huawei OceanStor Storage-Systems analysiert werden. Ein typisches Log bei erfolgreichem Login lautet:

Jan 18 10:42:31 OceanStor-5500 HUAWEI: User admin logged in successfully from 10.10.5.23 via SSH

Ein erster Custom-Decoder erkennt zwar den Programmnamen HUAWEI, scheitert jedoch daran, das eigentliche Login-Ereignis weiter aufzuschlüsseln. Im Wazuh Rule Tester endet die Verarbeitung nach dem Base-Decoder, ohne Benutzer, Quell-IP oder Protokoll zu extrahieren.

Dieses Verhalten ist ein klassisches Beispiel für typische Einsteigerprobleme bei der Arbeit mit Wazuh-Decodern und wurde in einer Community-Diskussion detailliert analysiert und gelöst.

Technische Analyse

Die Ursache liegt in zwei grundlegenden Punkten der Wazuh-Decoder-Architektur:

  1. Doppelte Verarbeitung des Programmnamen
    Der Base-Decoder identifiziert die Logquelle bereits über <program_name>. Wird im Child-Decoder erneut versucht, denselben Logbestandteil (z. B. HUAWEI:) zu matchen, greift die Vererbung nicht mehr korrekt. Das Resultat ist ein Abbruch der Decoder-Kette.
  2. Fehlender Einsatz von <prematch>
    Ohne Prematch muss Wazuh jede Regex vollständig auswerten. Das ist nicht nur ineffizient, sondern erhöht auch die Wahrscheinlichkeit, dass der Decoder nicht greift. Prematch dient dazu, relevante Logs frühzeitig zu identifizieren und gezielt an den passenden Decoder zu binden.

Diese Zusammenhänge sind in der offiziellen Wazuh-Dokumentation zu Custom Decoders beschrieben und wurden in der Community anhand dieses Huawei-Logs praktisch bestätigt.

Lösung / Best Practices

Die bewährte Lösung trennt klar zwischen Quellidentifikation, Feldextraktion und Alert-Logik.

1. Base-Decoder zur Identifikation der Huawei-Logs

<decoder name="huawei-storage">
    <program_name>HUAWEI</program_name>
</decoder>

Dieser Decoder klassifiziert ausschließlich die Logquelle und bildet die Grundlage für alle weiteren Child-Decoder.

2. Child-Decoder für erfolgreiche Logins

<decoder name="huawei-storage-login">
    <parent>huawei-storage</parent>
    <prematch>User \S+ logged in successfully</prematch>
    <regex>User (\S+) logged in successfully from (\S+) via (\S+)</regex>
    <order>srcuser, srcip, protocol</order>
</decoder>

Wichtige Aspekte:

  • Kein erneutes Matching auf den Programmnamen
  • Prematch zur stabilen Zuordnung
  • Saubere Extraktion von Benutzer, IP-Adresse und Protokoll

3. Regeln zur Erzeugung von Security-Alerts

<group name="huawei,storage,">
  <rule id="100060" level="3">
    <decoded_as>huawei-storage</decoded_as>
    <description>Huawei Storage event grouped.</description>
  </rule>

  <rule id="100061" level="5">
    <if_sid>100060</if_sid>
    <match>logged in successfully</match>
    <description>
      Huawei Storage: User $(srcuser) logged in successfully via $(protocol) from $(srcip)
    </description>
    <group>authentication_success,pci_dss_10.2.5,</group>
  </rule>
</group>

Diese Struktur orientiert sich an Best Practices aus der Wazuh-Community sowie an den offiziellen Empfehlungen zur Regel-Erstellung.

Lessons Learned / Best Practices

  • program_name gehört ausschließlich in den Base-Decoder.
  • Child-Decoder dürfen nur den verbleibenden Log-Inhalt verarbeiten.
  • <prematch> ist essenziell für Performance und Zuverlässigkeit.
  • Einheitliche Feldnamen (srcuser, srcip, protocol) erleichtern spätere Korrelationen.
  • Vor Tests sollten alte Decoder-Dateien entfernt oder der Manager neu gestartet werden, um Cache-Effekte zu vermeiden.
  • Das gezeigte Muster lässt sich direkt auf weitere Huawei-Events wie fehlgeschlagene Logins, Disk-Fehler oder Hardware-Alarme übertragen.

Fazit

Dieser Anwendungsfall zeigt exemplarisch, wie wertvoll praxisnahe Community-Erfahrungen für den produktiven Einsatz von Wazuh sind. Mit einem klaren Verständnis der Decoder-Hierarchie und der richtigen Nutzung von Prematch lassen sich auch proprietäre Storage-Logs zuverlässig analysieren. Das Ergebnis sind belastbare Security-Alerts und eine deutlich höhere Sichtbarkeit sicherheitsrelevanter Ereignisse im Storage-Umfeld.


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/p1768865803607629