Aufbau eines SIEM-Systems auf Open-Source Basis

Für eine öffentliche Verwaltung wird ein Security Information and Event Management (SIEM) System basierend auf OpenSource Komponenten entwickelt. Das SIEM-System bietet einen ähnlichen Funktionsumfang wie Splunk, QRader oder Arcsite. Die Entwicklung und das Deployment müssen Anforderungen an BigData standhalten. Die Anwendung muss in der Lage sein diverse Log-Formate annehmen zu können, diese zu Normalisieren und gegebenenfalls anzureichern. Anschließend müssen die Logs in einem OpenSearch Dashboards analysiert werden können. Neben der eigentlichen Anwendung muss das SIEM zusätzlich über Anwendungen wie Prometheus und Grafana überwacht werden können.
Das SIEM wird betrieben über ein Kubernetes Cluster, welches durch ArgoCD verwaltet wird. Das Deployment findet entsprechend DevOps-Praktiken statt.
Normalisierung #
Die Normalisierung wird mit einem selbst entwickelten Python-ETL-Tool vorgenommen. Das ETL-Tool kann Log-Quellen über eine HTTP-Schnittstelle annehmen und im Kafka zwischenspeichern. Wenn die benötigten Ressourcen zur Verfügung stehen kann das ETL-Tool die Logs entsprechend eines Regelbaums angleichen und mit zusätzlichen Informationen wie GPS-Daten anreichern. Ziel der Normalisierung ist es die Logs in das Elastic Common Schemas (ECS) format zu bringen. Neben der Anreicherung und der Normalisierung bietet das Tool zusätzlich Funktionalitäten für eine Früherkennung von schädlichen Aktivitäten an. Zur Erkennung entsprechender Aktivitäten werden zum einen klassische, regelbasierte Abgleiche angewendet. Zum anderen wird auch eine SVM-Klassifikator eingesetzt, um Log-Daten zu identifizieren, die versuchen entsprechende Regeln zu umgehen.
Anomalieerkennung #
Die integrierte Anomalieerkennung von OpenSearch wird eingesetzt, um abweichendes Log-Verfahlten frühzeitig zu identifizieren und Analysten darauf aufmerksam zu machen. Eingesetzt wird dazu ein Random Cut Forest Modell, welches auf eigenen Daten trainiert wurde.
Neben den Onboard Funktionalitäten von OpenSearch wurden zusätzlich Autoencoder evaluiert, um Anomalien zu erkennen. Realisiert wird das mit einer PyTorch Lightning Implementierung und synthetischen Logdaten.
AIOps #
Neben dem klassischen Anwendungsmonitoring mit Prometheus und Grafana wurde zusätzlich das Monitoring mit Vorhersagemodellen ergänzt. Prometheus stellt so weitere Metriken zur Verfügung, welche erwartetes Verhalten darstellen. Mit dem Abgleich der Ist-Daten können so frühzeitig potenzielle Probleme erkannt werden, wenn bestimmte Schwellwerte überschritten werden.
Tätigkeiten #
- Entwicklung einer ETL-Software zur Normalisierung und Aufbereitung von Logdaten in Python
- Entwicklung eines Systems zur Anomalieerkenung
- Entwicklung eines SVM-Klassifikators von verdächtigen Logdaten
- Unterstützung bei der Planung und Entwicklung der SIEM-Komponenten
- Aufbau und Konfiguration der Komponenten
- CI/CD-Konfigurationen in Gitlab und Github
- Datenvisualisierungen von Events und Metriken in Grafana und OpenSearch Dashboards
- Deployment in Kubernetes Clustern mit ArgoCD und DevOps-Praktiken