Was ist Sigma, und wie würdest du einen Hunt-Befund in eine portable Detection-Regel verwandeln?
Kurzantwort
Sigma ist ein offenes, herstellerneutrales YAML-Format zur Beschreibung von SIEM-Detections. Du definierst eine logsource (Produkt/Kategorie, z. B. Windows process_creation), einen detection-Block mit benannten Selektionen von Feld/Wert-Treffern und eine condition, die sie kombiniert. Ein Konverter (wie sigma-cli/pySigma) übersetzt die Regel in die Abfragesprache deines tatsächlichen Backends — Splunk, Sentinel, Elastic —, sodass eine Regel portabel ist. Sie trägt außerdem Metadaten: title, level, status, False Positives und ATT&CK-Tags.
Sigma ist für Detections, was YARA für Dateien ist: eine portable, menschenlesbare Art auszudrücken, wie bösartige Aktivität in Logs aussieht, unabhängig von einem einzelnen SIEM. Du schreibst die Logik einmal und konvertierst sie in die Abfragesprache, die dein Stack spricht.
Aufbau einer Regel
Eine Sigma-Regel ist YAML mit einigen Schlüsselabschnitten:
- Metadaten —
title,id,status,level(informational → critical),description,author,tags(oft ATT&CK-Technik-IDs wieattack.t1059). - logsource — wo zu suchen ist:
category(z. B.process_creation),product(z. B.windows), optionalservice. - detection — eine oder mehrere benannte Selektionen von Feld/Wert-Treffern plus eine condition, die sie logisch kombiniert.
- falsepositives und fields — Hinweise für den Analysten, der einen Treffer triagiert.
Vom Hunt zur Regel
Wenn ein Hunt eine echte Technik zutage fördert, kodifiziere sie. Angenommen, du hast bösartige Nutzung von rundll32.exe gefunden, das aus einem Temp-Pfad lädt: Schreibe eine Selektion, die auf Image endend mit rundll32.exe und CommandLine mit dem Temp-Pfad-Muster passt, dann eine condition. Tagge sie mit der ATT&CK-Technik, damit die Abdeckung nachverfolgbar ist.
Präzise bleiben
Eine Regel, die zu breit passt, begräbt das SOC in False Positives und wird deaktiviert. Verankere dich an angreiferspezifischen Feldern, schließe bekannte gutartige Parent-Prozesse aus, setze ein sinnvolles level und dokumentiere erwartete False Positives, damit Triager wissen, was normal ist.
Warum das wichtig ist
Interviewer wollen Detection-as-Code-Denken: portable, versionskontrollierte, ATT&CK-gemappte Regeln — keine Point-and-Click-Suchen, die nur in einer Konsole und im Kopf einer Person leben.
Wahrscheinliche Anschlussfragen
- Was gehört in den logsource-Block gegenüber dem detection-Block?
- Warum ein 'falsepositives'-Feld und ATT&CK-Tags in die Regel aufnehmen?
- Wie vermeidest du, eine Sigma-Regel zu schreiben, die zu breit und verrauscht ist?