Sigma-Regeln schreiben
Portable Syntax für Detection-Regeln
Sigma-Regeln schreiben ist eine kostenlose Cyber Security Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cyber Security Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cyber Security Academy-Kurs umfasst insgesamt 4 Lektionen.
Was Sigma ist
Sigma ist ein generisches, herstellerneutrales Signaturformat für protokollbasierte Detektionen. Sie schreiben die Detektionslogik einmal in YAML und wandeln sie anschließend in Splunk SPL, Elastic-Abfragen, Sentinel KQL und viele andere Backends um.
Sigma ist für die Protokolldetektion das, was YARA für die Dateidetektion ist: eine portable Lingua franca. Damit können Teams Regeln öffentlich teilen und vermeiden, dieselbe Idee für jedes SIEM neu zu schreiben.
Aufbau einer Regel
Eine Sigma-Regel ist ein YAML-Dokument mit erforderlichen und optionalen Abschnitten. Die wesentlichen Abschnitte sind title, logsource und detection.
title: Suspicious PowerShell Encoded Command
id: 7e3f3c1a-1f2b-4c3d-9a8b-1234567890ab
status: experimental
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\\powershell.exe'
CommandLine|contains: '-enc'
condition: selection
level: highDer logsource-Block
Der Block logsource teilt dem Konverter mit, für welche Protokolle die Regel gilt. Er fragt Daten nicht direkt ab, sondern wählt bei der Konvertierung die passende Feldzuordnung und den passenden Index aus.
Häufig verwendete Schlüssel:
product— z. B. windows, linux, awscategory— z. B. process_creation, network_connection, file_eventservice— z. B. sysmon, security, sshd
Wählen Sie die spezifischste Kombination, die Ihre Daten unterstützen, damit die Pipeline Felder korrekt zuordnet.
Selections und Suchbezeichner
Innerhalb von detection definieren Sie einen oder mehrere benannte Suchbezeichner (Selections). Jeder davon ist eine Zuordnung von Feld-Wert-Kriterien. Mehrere Felder innerhalb einer Selection werden mit logischem AND verknüpft.
Hier müssen beide Bedingungen erfüllt sein, damit selection zutrifft.
detection:
selection:
EventID: 4688
NewProcessName|endswith: '\\whoami.exe'
condition: selectionFeldmodifikatoren
Modifikatoren legen genauer fest, wie ein Wert abgeglichen wird. Sie werden nach einem Pipe-Zeichen an den Feldnamen angehängt.
contains— Abgleich eines Teilstringsstartswith/endswith— verankerter Abgleichall— jeder Wert in einer Liste muss vorhanden seinre— regulärer Ausdruckbase64offset|contains— Abgleich von Base64-kodierten Teilstrings
Modifikatoren werden von links nach rechts verkettet und in dieser Reihenfolge angewendet.
detection:
selection:
CommandLine|contains|all:
- 'Invoke-WebRequest'
- 'DownloadString'
condition: selectionListen und Maps als OR / AND
Zwei Regeln bestimmen die Logik innerhalb einer Selection:
- Eine Werteliste unter einem Feld entspricht OR — jeder Wert kann zutreffen.
- Eine Map mit mehreren Feldern entspricht AND — alle Felder müssen übereinstimmen.
Hier entspricht Image entweder binary, und User muss zusätzlich SYSTEM entsprechen.
detection:
selection:
Image|endswith:
- '\\net.exe'
- '\\net1.exe'
User: 'SYSTEM'
condition: selectionDer Ausdruck condition
Der Ausdruck condition verknüpft Ihre benannten Selections mit boolescher Logik. Hier formulieren Sie Filter und Ausschlüsse.
Zu den Operatoren gehören and, or, not, Klammern und Aggregationen wie count(). Sie können auch 1 of selection* / all of selection* verwenden, um Gruppen von Bezeichnern anhand eines Präfixes zu referenzieren.
detection:
selection:
EventID: 4625
timeframe: 5m
condition: selection | count() by SourceIp > 10Rauschen herausfiltern
Um bekannte legitime Aktivitäten zu unterdrücken, definieren Sie einen separaten Bezeichner und ziehen ihn in der Bedingung mit not ab. So bleibt die schädliche Logik lesbar und die Ausschlüsse sind eindeutig.
Hier löst die Regel aus, wenn rundll32 eine Netzwerkverbindung startet, außer bei einem bekannten legitimen Update-Prozess.
detection:
selection:
Image|endswith: '\\rundll32.exe'
filter_legit:
ParentImage|endswith: '\\MicrosoftEdgeUpdate.exe'
condition: selection and not filter_legitMetadaten für die Triage
Über die Logik hinaus enthalten gute Regeln Metadaten, die Einsatzkräften schnelles Handeln ermöglichen und Engineers beim Erhalt der Abdeckung unterstützen.
level— informational, low, medium, high, criticaltags— ATT&CK-Techniken, z. B. attack.t1059.001falsepositives— bekannte harmlose Auslöserreferences— Bedrohungsberichte oder Dokumentationauthorunddate
Diese Felder kosten beim Schreiben Minuten und sparen während eines Vorfalls Stunden.
Korrelationsregeln
Einzelereignisregeln können mehrstufige Angriffe nicht ausdrücken. Sigma-Korrelationsregeln verbinden mehrere Basisregeln über einen Zeitraum hinweg, um Sequenzen und Muster zu erkennen.
Zu den unterstützten Typen gehören event_count (N Treffer innerhalb eines Zeitfensters), value_count (unterschiedliche Werte, z. B. viele fehlgeschlagene Benutzeranmeldungen) und temporal (Regel A, dann Regel B). Damit können Sie beispielsweise eine erfolgreiche Anmeldung direkt nach einer Serie von Fehlversuchen erkennen.
name: bruteforce_then_success
correlation:
type: temporal
rules: [failed_logins, successful_login]
group-by: [SourceIp, TargetUser]
timespan: 10mKonvertierung in ein Backend
Mit sigma-cli konvertieren Sie eine Regel in die Abfragesprache Ihres Zielsystems. Eine Verarbeitungspipeline ordnet Sigma-Feldnamen Ihrem tatsächlichen Schema zu.
Die Ausgabe ist eine sofort einsetzbare Abfrage, die Sie einfügen oder per API übertragen können.
sigma convert -t splunk -p sysmon \
-f default rule.yml
# Example output (Splunk SPL):
# Image="*\\powershell.exe" CommandLine="*-enc*"Schnelltest
Überprüfen Sie Ihr Verständnis der Sigma-Detektionslogik.
Zusammenfassung
Sie können nun portable Sigma-Regeln erstellen:
logsourcelegt fest, für welche Protokolle und Feldzuordnungen die Regel gilt- Selections sind benannte Kriterien für Felder und Werte (Felder = AND, Wertelisten = OR)
- Modifikatoren wie contains, endswith, all und re verfeinern den Abgleich
conditionverknüpft Selections mit and/or/not, Filtern und Aggregationen- Separate filter-Bezeichner ziehen bekannte harmlose Aktivitäten ab
- Metadaten (level, tags, falsepositives) beschleunigen die Triage
sigma convertkompiliert die Regel für Ihr SIEM-Backend
Als Nächstes setzen Sie diese Regeln mit MITRE ATT&CK in Beziehung zu Angreifertechniken.
Häufig gestellte Fragen
Ist die Lektion „Sigma-Regeln schreiben“ kostenlos?
Ja — der vollständige Text von „Sigma-Regeln schreiben“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cyber Security Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cyber Security Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Sigma-Regeln schreiben“?
Portable Syntax für Detection-Regeln Du übst Cyber Security Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Cyber Security Academy zu starten?
Keine Vorkenntnisse erforderlich. Cyber Security Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Sigma-Regeln schreiben“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Cyber Security Academy-Lektion Code schreiben und ausführen?
Ja. Jede Cyber Security Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Grundsätze von Detection-as-Code
- Sigma-Regeln schreiben
- Zu MITRE ATT&CK zuordnen
- Detections testen und abstimmen