ADMIN
2023
09
2023-08-30T12:00:00
Hochverfügbarkeit und Monitoring
PRAXIS
060
Security-Tipp
Sicherheit
Logdatenanalyse
Übergreifende Logdatenanalyse mit Sigma
Turmbau zu Babel
von Dr. Matthias Wübbeling
Veröffentlicht in Ausgabe 09/2023 - PRAXIS
Logdaten spielen eine zentrale Rolle in der IT. Glücklicherweise informieren Betriebssysteme und die eingesetzte Software über ihre Aktivitäten. Um diese Logdaten auszuwerten, gibt es fertige Tools. Doch nutzen die meisten eine eigene Sprache für das Erstellen von Filter- und Suchregeln. Um den Informationsaustausch mit Dritten zu vereinfachen, wurde mit Sigma eine einheitliche Regelsprache entwickelt, die Sie dann in die Sprache Ihrer Securitytools übersetzen können.

Zu den Aufgaben eines Administrators gehören auch die effektive Verwaltung und Analyse von Protokollereignissen der vorhandenen Hard- und Software. Hiervon hängen die Aufrechterhaltung der Systemleistung und die Gewährleistung der IT-Sicherheit ab. Allerdings stellt die schiere Menge an Protokolldaten eine große Herausforderung für IT-Experten dar, die häufig den Wald vor lauter Bäumen nicht mehr sehen können. Daher gibt es vielfältige Werkzeuge, die beim Sammeln, Strukturieren und Analysieren der unterschiedlichen Logformate helfen und diese in nur einem System bereitstellen.
Insbesondere die IT-Sicherheit profitiert davon, dass Betroffene eigene Erkenntnisse in der IT-Sicherheits-Community teilen können. So gibt es Plattformen zum Austausch von Regeln für Intrusion Detection Systeme, etwa für die frei verfügbaren Tools Snort oder Suricata, aber auch für kommerzielle Produkte, solange diese die Snort-Regelsyntax unterstützen. Für die Suche nach sogenannten Indicators of Compromise – also Hinweise auf Bedrohungen oder erfolgte Angriffe auf die eigene Infrastruktur – gibt es Austauschmöglichkeiten über MISP oder STIX/CybOX.
Die Regelsprache Sigma [1] bietet Ihnen eine strukturierte Möglichkeit, die Verarbeitung von Protokollereignissen unabhängig von den spezifischen Werkzeugen oder Plattformen zu beschreiben. Sigma erlaubt das Erstellen von Regeln, die für verschiedene Logmanagement- und SIEM-Plattformen anwendbar sind. Diese Flexibilität erleichtert das praktische Sicherheitsmonitoring erheblich.
Zu den Aufgaben eines Administrators gehören auch die effektive Verwaltung und Analyse von Protokollereignissen der vorhandenen Hard- und Software. Hiervon hängen die Aufrechterhaltung der Systemleistung und die Gewährleistung der IT-Sicherheit ab. Allerdings stellt die schiere Menge an Protokolldaten eine große Herausforderung für IT-Experten dar, die häufig den Wald vor lauter Bäumen nicht mehr sehen können. Daher gibt es vielfältige Werkzeuge, die beim Sammeln, Strukturieren und Analysieren der unterschiedlichen Logformate helfen und diese in nur einem System bereitstellen.
Insbesondere die IT-Sicherheit profitiert davon, dass Betroffene eigene Erkenntnisse in der IT-Sicherheits-Community teilen können. So gibt es Plattformen zum Austausch von Regeln für Intrusion Detection Systeme, etwa für die frei verfügbaren Tools Snort oder Suricata, aber auch für kommerzielle Produkte, solange diese die Snort-Regelsyntax unterstützen. Für die Suche nach sogenannten Indicators of Compromise – also Hinweise auf Bedrohungen oder erfolgte Angriffe auf die eigene Infrastruktur – gibt es Austauschmöglichkeiten über MISP oder STIX/CybOX.
Die Regelsprache Sigma [1] bietet Ihnen eine strukturierte Möglichkeit, die Verarbeitung von Protokollereignissen unabhängig von den spezifischen Werkzeugen oder Plattformen zu beschreiben. Sigma erlaubt das Erstellen von Regeln, die für verschiedene Logmanagement- und SIEM-Plattformen anwendbar sind. Diese Flexibilität erleichtert das praktische Sicherheitsmonitoring erheblich.
Da es sich um eine standardisierte Syntax und Struktur handelt, können Sie Regeln einfach teilen und von anderen Sicherheitsteams oder Fachleuten übernehmen. Durch den Einsatz von Community-Regeln profitieren Sie dann von der gemeinsamen Expertise und dem Wissen der Security-Community. Diese gemeinsam entwickelten Richtlinien umfassen bewährte Praktiken und spezifische Anwendungsfälle, die bereits in anderen Unternehmen zum Einsatz kommen. Somit verbessern Sie nicht zuletzt Ihr eigenes Monitoring.
YAML als Basis
Um die in Sigma geschriebenen Regeln in Ihrer Infrastruktur einzusetzen, müssen Sie diese mithilfe eines entsprechenden Konverters übersetzen. Indem der Konverter als Brücke zwischen Sigma und verschiedenen Protokollverwaltungssystemen oder SIEM-Plattformen fungiert, ermöglicht er eine nahtlose Integration. Er konvertiert Sigma-Regeln automatisch in das für jede Plattform spezifische Format mit entsprechender Syntax und gewährleistet so Kompatibilität und effektive Regelbereitstellung. Dies ermöglicht es Ihnen wiederum, die bestehende Infrastruktur und die Funktionen Ihrer gewählten Plattformen zu nutzen, ohne dass umfangreiche Policies neu geschrieben werden müssen. Darüber hinaus fördert der Einsatz von standardisierten Konvertern die Regelkonsistenz über verschiedene Plattformen hinweg.
Sigma ist ein YAML-Format mit einigen festen Strukturen und Feldern. Jede Sigma-Definition benötigt eine Zeichenkette als "title", eine Beschreibung der Quelle innerhalb von "logsource" und einen "detection"-Abschnitt mit einer Bedingung. Das Beispiel in Listing 1 zeigt Ihnen den minimalen Aufbau.
Listing 1: Minimale YAML-Datei
title: Minimales Beispiel
logsource:
category: web
product: apache
service: access
detection:
success: 200
failure: 404
condition: success and not failure
Die darin genannte Kategorie beschreibt den Anwendungszweck, ebenfalls enthalten ist das eingesetzte Produkt. Die Kategorie definiert dabei eine Produktgruppe, hier können auch Werte wie "firewall" oder "antivirus", aber auch "process_creation" stehen. Als Produkt dient in unserem Beispiel der Webserver Apache. Diese Angabe ist notwendig für die Auswahl des spezifischen Eventlogs. Geben Sie hier "windows" ein, werden alle Windows-Eventlogs einbezogen. Unter "service" können Sie eine weitere Untermenge der Logs angeben. Mit "security" wählen Sie beispielsweise unter Windows nur das Security-Log aus.
Unter dem Punkt "detection" geben Sie verschiedene Suchmuster an. Das Log eines Webservers enthält für erfolgreiche Anfragen mit dem Statuscode "200" entsprechende Einträge. Unter "condition" lassen sich die Suchmuster dann mit entsprechenden Bedingungen versehen. Im angegebenen Beispiel sollen also erfolgreiche Zugriffe mit Statuscode "200" gesucht werden und nicht gefundene Ressourcen mit dem Statuscode "404" sollen nicht abgefragt werden.
Sigma installieren und Regeln übersetzen
Um das Beispiel mit einem Konverter zu übersetzen, müssen Sie zunächst Sigma installieren. Da Sigma auf Python basiert, können Sie es einfach mit "pip" in Ihre Python-Umgebung einspielen. Rufen Sie dafür das Kommando python -m pip install sigma-cli auf. Anschließend müssen Sie noch die Konverter für Ihre Umgebung installieren. Um eine Übersicht der unterstützten Programme zu erhalten, verwenden Sie den Befehl sigma plugin list. Suchen Sie sich die benötigten Plug-ins heraus, für unser Beispiel wählen wir Splunk und Elasticsearch. Diese installieren Sie mittels
sigma plugin install elasticsearch
sigma plugin install splunk
Die Ausgabe signalisiert Ihnen die erfolgreiche Installation. Bevor Sie nun das obige Beispiel einfach für beide Programme konvertieren können, müssen Sie noch eine Pipeline auswählen. Diese bestimmt maßgeblich das Format der Ausgabe. Die verfügbaren Pipelines bringen Sie mit dem folgenden Kommando in Erfahrung:
sigma list pipelines elasticsearch
sigma list pipelines splunk
Für beide nehmen wir die ersten Ergebnisse für die Windows-Eventlog-Mappings und können nun mit den folgenden Kommandos die Regeln konvertieren:
sigma convert -t elasticsearch -p ecs_windows minimal.yaml
sigma convert -t splunk -p splunk_windows minimal.yaml
Die Ausgaben zeigen Ihnen den Unterschied in der Syntax der beiden Werkzeuge bereits gut auf. Für Elasticsearch lautet das resultierende Suchmuster "200" AND (NOT "404"), während die Ausgabe von Splunk "200" NOT "404" lautet. Ein etwas umfangreicheres Beispiel finden Sie in Listing 2. Mit dieser Sigma-Regel können Sie verdächtige Anmeldefehler auf Windows-Systemen identifizieren und so potenzielle unbefugte Zugriffsversuche erkennen.
Listing 2: Windows-Logins analysieren
title: Suspicious Failed Logins in Active Directory
logsource:
product: windows
detection:
selection:
EventLog: Security
EventID: 4625
TargetDomainName: "WORKGROUP"
Status: Failure
LogonType: [2, 10]
condition: selection
timeframe: 60m
Die Erkennung basiert auf dem Windows-Security-Eventlog und sucht dort nach Ereignissen mit der ID 4625 [2], der Kennung für fehlgeschlagene Loginversuche. Die "TargetDomain" spezifiziert das Ziel der Anmeldung beziehungsweise die genutzte Domain des Active Directory. Mit der Statusangabe schränken Sie die Suche auf Fehlversuche ein und die LogonTypen "2" und "10" stehen für interaktive Loginversuche an der Konsole und Loginversuche über das Remote Desktop Protocol. Mit der Einschränkung "timeframe" grenzen Sie Ihre Suche auf die Logs der letzten Stunde ein.
Auch hier zeigt sich ein deutlicher Unterschied wie auch der Vorteil bei der Benutzung einer einheitlichen, übergeordneten Beschreibungssprache wie Sigma. Der Aufwand zum Lernen dieser neuen Sprache fällt deutlich geringer aus als der Aufwand zum Übersetzen aller Regeln zwischen unterschiedlichen Logmanagement-Systemen. Umso öfter IT-Security-Communities Sigma für den Austausch von Suchmustern zur Logdatenauswertung einsetzen, desto mehr macht sich die Benutzung bezahlt.
Fazit
Sigma erweist sich als großer Gewinn für IT-Management und Sicherheit. Durch das Bereitstellen einer standardisierten Regelsprache ermöglicht Sigma den unternehmens- und toolübergreifenden Austausch von Informationen zur Logdatenverarbeitung. Analysten können so die Suche nach Angriffshinweisen modellieren und Admins diese einfach einsetzen und die eigene Infrastruktur überwachen.
(dr)