
Sicherheitsereignis-Korrelations-Engine für den ELK-Stack
Dsiem ist eine Korrelations-Engine für Sicherheitsereignisse für den ELK-Stack und ermöglicht es, die Plattform als dediziertes und voll ausgestattetes SIEM-System zu nutzen.
Dsiem bietet eine OSSIM-artige Korrelation für normalisierte Logs/Ereignisse, führt Lookups/Query an Quellen für Bedrohungsinformationen und Schwachstelleninformationen durch und erzeugt risikoadjustierte Alarme.

flowchart TB
l1 --> |Normalized Logs/Events| e1
l1 --> |Alarms|e1
l1 --> |Normalized Logs/Events| d1
f1 --> |Logs| l1
s1 --> |Logs| f1
s2 --> |Logs| f1
s3 --> |Logs| f1
d1 --> |Alarms| d2
d2 --> |Alarms| l1
d1 --> |Query| d3
subgraph Elasticsearch
e1[Elasticsearch]
end
subgraph Logstash
l1[Logstash]
end
subgraph Filebeat
f1[Syslog/Filebeat]
end
subgraph Log Sources
s1[IDS]
s2[Firewall]
s3[OS]
end
subgraph Dsiem
d1[Dsiem]
d2[Dsiem-filebeat]
d3[Threat-Intel/Vulnerability-Info-Sources]
end
Im obigen Diagramm:
Logquellen senden ihre Logs an Syslog/Filebeat, die sie dann mit einem eindeutigen Identifikationsfeld an Logstash senden. Logstash parst die Logs dann mit verschiedenen Filtern basierend auf dem Logquellentyp und sendet die Ergebnisse an Elasticsearch, wobei in der Regel ein einzelnes Index-Muster für jeden Logtyp erstellt wird (z. B. suricata-* für Logs von Suricata IDS, ssh-* für SSH-Logs usw.).
Dsiem verwendet eine spezielle Logstash-Konfigurationsdatei, um eingehende Ereignisse von Logquellen direkt nach dem Parsen durch Logstash zu klonen. Über dieselbe Konfigurationsdatei wird das neu geklonte Ereignis (unabhängig vom ursprünglichen Ereignis) verwendet, um von Dsiem benötigte Felder wie Titel, Quell-IP, Ziel-IP usw. zu sammeln.
Das Ergebnis des obigen Schritts wird als Normalisiertes Ereignis bezeichnet, da es Logs aus mehreren verschiedenen Quellen in einem einzigen Format mit einer Reihe gemeinsamer Felder darstellt. Diese Ereignisse werden dann über das Logstash-HTTP-Ausgabe-Plugin an Dsiem und an Elasticsearch unter dem Indexnamen-Muster siem_events-* gesendet.
Dsiem korreliert eingehende normalisierte Ereignisse basierend auf den konfigurierten Direktivenregeln, führt Bedrohungs- und Schwachstellenabfragen durch und erzeugt einen Alarm, wenn die Regeln erfüllt sind. Der Alarm wird dann in eine lokale Logdatei geschrieben, die von einem lokalen Filebeat abgeholt wird, der so konfiguriert ist, dass er seinen Inhalt an Logstash sendet.
Auf der Logstash-Seite gibt es eine weitere spezielle Konfigurationsdatei für Dsiem, die diese übermittelten Alarme liest und in den endgültigen SIEM-Alarm-Index in Elasticsearch schiebt.
Das Endergebnis der obigen Prozesse ist, dass wir jetzt neue Alarme und Aktualisierungen bestehender Alarme einfach durch Überwachen eines einzigen Elasticsearch-Index verfolgen können.
Sie können Docker Compose oder die Release-Binärdateien zur Installation von Dsiem verwenden. Einzelheiten finden Sie im Installationsleitfaden.
Alternativ gibt es auch eine Docker-Compose- oder VM-basierte Demo-Umgebung, mit der Sie die gesamte Dsiem-Integration über eine einfache Weboberfläche evaluieren können.
Die derzeit verfügbare Dokumentation befindet sich hier.
Bitte reichen Sie Fehler- und Problemberichte ein, indem Sie ein neues Github-Issue eröffnen. Sicherheitsrelevante Informationen, wie Details zu einem potenziellen Sicherheitsfehler, können auch an [email protected] gesendet werden. Den GPG-öffentlichen Schlüssel für diese Adresse finden Sie hier.
Beiträge sind sehr willkommen! Reichen Sie PRs für Fehlerbehebungen und zusätzliche Tests ein, Gists für Logstash-Konfigurationsdateien zum Parsen von Geräteereignissen, SIEM-Direktivenregeln oder neue Plugins für Bedrohungs-/Schwachstellensuche.
Wenn Sie sich bei einer bestimmten Angelegenheit nicht sicher sind, können Sie gerne ein Issue eröffnen und zuerst diskutieren.
Das Projekt ist unter der GPLv3 lizenziert. Mitwirkende müssen keine CAA/CLA oder ähnliches unterzeichnen: Wir betrachten die Akzeptanz dieser Github-Nutzungsbedingungen-Klausel als ausreichend.