Wazuh Menu Struktur

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Wazuh Dashboard – Rundgang für das Lab

Das Wazuh-Dashboard basiert auf OpenSearch Dashboards. Wer von der Konsole kommt, findet die Daten oft nicht, weil mehrere unsichtbare Voreinstellungen (Zeitraum, Index, Filter) die Anzeige einschränken. Dieser Artikel geht nur die lab-relevanten Menüpunkte durch — der Rest (Cloud security, PCI/GDPR/HIPAA, Explore-Detailpunkte) kommt im SOC-Lab nicht vor.

Das Menü öffnet sich links über das Hamburger-Icon (☰) oben.

Discover – das Herzstück

Discover ist die Roh-Ansicht aller Events. Hier landet jeder Alert, den dein Decoder/deine Regel erzeugt. Mental: es ist die GUI-Version von tail -f alerts.json | grep ... — aber mit vier Stellschrauben, die du kennen musst, sonst siehst du „No results".

Die vier Stolpersteine zuerst

1. Zeitraum (häufigste Ursache für "nichts da")

Oben rechts sitzt der Zeit-Picker (Uhr-Symbol, meist "Last 24 hours"). Discover zeigt NUR Events aus diesem Fenster. Auf der Konsole gibt es so etwas nicht — grep kennt keine Zeit. Nach einem Test also immer prüfen:

  • Klick auf den Zeit-Picker → Last 15 minutes wählen, wenn du gerade eine Testmail geschickt hast
  • Oder Today für den ganzen Tag
  • Rechts daneben der Refresh-Button (↻) — Daten hinken der Einlieferung ein paar Sekunden hinterher
2. Index-Pattern

Oben links ein Dropdown — muss auf wazuh-alerts-* stehen. Steht dort etwas anderes, durchsuchst du den falschen Index und siehst keine Alerts.

3. Aktive Filter

Unter der Suchleiste sitzen Filter-Pillen. Ein vergessener Filter von vorhin blendet alles andere aus. Pillen prüfen und ggf. per "x" entfernen.

4. Spalten

Die Tabelle zeigt anfangs nur Time und eine Roh-Zeile. Aussagekräftige Spalten musst du selbst hinzufügen (siehe unten) — das ist kein Bug.

Suchen: DQL ist kein grep

Die Suchleiste oben nutzt DQL (Dashboards Query Language). Wichtig für Konsolen-Leute: das ist keine Regex und kein grep. Das Grundmuster ist feld:wert.

Query Findet
rule.id:100200 Genau deine EICAR/ClamAV-Regel
rule.level >= 10 Alles ab Level 10 (Hochkritisches)
agent.name:mail Nur Events vom Mailserver-Agent
rule.groups:malware Alle Malware-Events
rule.groups:syscheck Alle FIM-Events (File Integrity Monitoring)
data.virus_name:* Alle Events, bei denen das Feld virus_name gesetzt ist
location:"/var/log/rspamd/rspamd.log" Alles aus dem Rspamd-Log
agent.name:mail and rule.level >= 7 Verknüpfung mit and / or / not
Merkregeln zur Syntax
  • Doppelpunkt trennt Feld und Wert: rule.id:100200
  • Wildcard ist *: rule.description:*Virus*
  • Werte mit Leerzeichen in Anführungszeichen: rule.description:"Virus in E-Mail"
  • Verknüpfen mit and / or / not (klein)
  • Bereiche mit Leerzeichen: rule.level >= 10
  • Nur ein Wort ohne Doppelpunkt = Freitextsuche über alle Felder

Filter per Klick statt Tippen

Wenn dir die Syntax lästig ist: unter der Suchleiste + Add filter. Dann per Dropdown:

  • Field auswählen (z. B. rule.level)
  • Operator (is, is not, exists, is one of, is between)
  • Value eintippen
  • Save

Das ist der GUI-Weg ganz ohne Query-Sprache — für den Einstieg oft schneller. Filter lassen sich anpinnen (Pin-Symbol), dann bleiben sie über andere Ansichten hinweg aktiv.

Spalten setzen

Links die Liste Available fields. Mit der Maus über ein Feld fahren → + erscheint → als Spalte hinzufügen. Sinnvoll für deine POCs:

  • agent.name – welcher Host
  • rule.level – Schweregrad
  • rule.description – Klartext
  • data.virus_name – bei Mail-Malware der Signaturname

Klick auf den Spaltenkopf sortiert.

Ein Event aufklappen – der Brücke-zur-Konsole-Trick

Links vor jeder Zeile ein > (Pfeil). Klick → das Event klappt auf, Reiter Table und JSON. Hier siehst du JEDES decodierte Feld mit seinem exakten Pfad — also genau die Feldnamen, die du in der nächsten Query brauchst.

Das ist der schnellste Weg vom „ich sehe den Alert" zum „ich kann gezielt danach filtern": Event aufklappen, Feldname ablesen (z. B. data.virus_name), oben als Query eintippen.

Wichtig zu wissen

Alles, was dein Decoder per <order> rausschreibt, landet unter data.*. Dein Feld virus_name heißt im Dashboard also data.virus_name. Das erklärt, warum eigene Felder nicht „nackt" auffindbar sind.

Histogramm und Speichern

  • Das Balkendiagramm über der Tabelle zeigt Events pro Zeit. Mit der Maus einen Bereich aufziehen zoomt den Zeitraum.
  • Oben Save speichert die Suche samt Query, Spalten und Filtern unter einem Namen — wiederverwendbar und Basis für Visualisierungen.

Endpoint security

Malware Detection

Aufbereitete Ansicht für Malware-Events — hier taucht dein EICAR/ClamAV-Fund (Rule 100200, CLAM_VIRUS) auf, ohne dass du in Discover filtern musst. Gut für die POC-Demo. Im Hintergrund dieselben Daten wie in Discover, nur vorgefiltert.

File Integrity Monitoring

GUI zu deinem FIM-POC (Upload-Verzeichnis, Rule 554). Zeigt pro Agent, welche Dateien angelegt/geändert/gelöscht wurden — mit Vorher/Nachher-Hash. Discover-Pendant: rule.groups:syscheck.

Threat intelligence

Vulnerability Detection

Listet erkannte CVEs pro Agent (dein Vuln-POC). Die Detail-Felder liegen unter data.vulnerability.*. Eigene Ansicht, weil das Datenmodell anders ist als bei normalen Regel-Alerts.

MITRE ATT&CK

Mappt Alerts auf Taktiken/Techniken. Deine Demos tauchen hier auf, sobald die Regeln ein mitre-Tag haben:

  • T1110 Brute Force – dein Hydra/SSH-Demo
  • T1190 Exploit Public-Facing Application – SQLi gegen die VulnSite/WAF

Filter in Discover: rule.mitre.id:T1110.

Server management

Das ist der GUI-Zugang zu allem, was du sonst per Konsole in /var/ossec/etc/ machst.

Punkt Zweck Konsolen-Pendant
Rules Alle Regeln durchsuchen, deine eigenen wiederfinden local_rules.xml
Decoders Decoder einsehen local_decoder.xml
Dev Tools API-Queries direkt absetzen curl gegen Port 55000
Ruleset Test Logzeile gegen Decoder/Regeln testen wazuh-logtest
Logs Manager-Log im Browser /var/ossec/logs/ossec.log
Status Daemon-Status wazuh-control status
Tipp

Ruleset Test ist im GUI exakt dein wazuh-logtest: Logzeile einfügen, sehen welcher Decoder greift und welche Regel mit welchem Level feuert. Ideal, wenn du eine eigene Regel baust und dem Teilnehmer am Beamer zeigen willst, was passiert.

Agents management

Summary

Der GUI-Blick auf deinen agent_control -l: welche Agents sind registriert, welche active / disconnected, wann zuletzt gesehen, welche Version. Schneller Gesundheits-Check der Flotte.

Groups

Agent-Gruppen und die zentrale agent.conf pro Gruppe.

Im Lab nicht relevant

Der Vollständigkeit halber, ohne eigene Behandlung: Cloud security (Docker, AWS, GCP, GitHub, O365, MS Graph), die Compliance-Mappings unter Security operations (PCI DSS, GDPR, HIPAA, NIST 800-53, TSC), sowie die generischen Explore-Punkte (Visualize, Reporting, Maps, Notifications). Das sind OpenSearch-Bordmittel bzw. Cloud-Themen außerhalb dieses Kurses.