Elastic SIEM – Umgang mit Alerts und Cases

Einleitung

Meine erste SIEM-Rule ist nicht mehr alleine. Zwischenzeitlich habe ich etliche Rules aus dem Katalog dazu genommen. Damit häufen sich nun natürlich auch die Meldungen durch False Positives. Diese gehören nun bearbeitet. Aber auch die verdächtigen Alerts müssen bearbeitet werden. Hier können Cases hilfreich sein.

Der Artikel gehört zu meiner Serie „Bereitstellung eines Elastic SIEM„.

Mein aktuelles Ruleset

Ich habe nun schon 63 Rules aktiv, die meine Events durchsuchen:

Elastic SIEM – Umgang mit Alerts und Cases

Das macht sich auch in der MITRE ATT&CK coverage bemerkbar:

Elastic SIEM – Umgang mit Alerts und Cases

Aber auch im Alerts-Dashboard spüre ich die Arbeit der Rules: Neben einigen Tests, die ich selber in der Rolle eines Hackers durchgeführt habe, gibt es auch einige Falschmeldungen zu sehen. Insgesamt werden die Meldungen aber übersichtlich dargestellt. Hier seht ihr die Seite auf meinem großen Monitor:

Elastic SIEM – Umgang mit Alerts und Cases

Auch die Trendanalysen wirken gelungen:

Elastic SIEM – Umgang mit Alerts und Cases

Die Alerts mit dem kleinen Würfel-Symbol haben eine erweiterte Eventanalyse dabei. Sie wird über die Aktion gestartet:

Elastic SIEM – Umgang mit Alerts und Cases

Und das liefert der Analyzer nach einigen Sekunden. Das hat schon Ähnlichkeit mit einer EDR!

Elastic SIEM – Umgang mit Alerts und Cases

Insgesamt gefällt mir die Aufbereitung der Informationen sehr.

Ausnahmen für False Positives anlegen

Mein Smarthome basiert auf einer Sammlung von PowerShell-Scripten, mit denen ich meine Smarthome-Devices auslese und steuere. Dabei nutze ich teilweise auch .net-Elemente im Code der Scripte. Und diese scheinen einer der Rules im Elastic nicht zu gefallen. In den Details einer Meldung der Rule sehe ich, was bemängelt wird:

Elastic SIEM – Umgang mit Alerts und Cases

Die Rule selber ist sinnvoll. Aber mein Script wird auf dem Server immer wieder gestartet werden. Daher benötige ich eine Ausnahme für dieses Event. Dafür gibt es einen passenden Einstiegspunkt:

Elastic SIEM – Umgang mit Alerts und Cases

Der Filter wird automatisch aufgebaut. Ich muss nur noch einen Namen vergeben. Den beginne ich mit dem Datum, an dem die Ausnahme erstellt wurde:

Elastic SIEM – Umgang mit Alerts und Cases

Sinnvolle Felder sind in dem Wizzard weiter unten zu finden: vielleicht wird die Ausnahme nur vorübergehend benötigt? Und die anderen Meldungen sollen vielleicht auch gleich mit geschlossen werden? Das kann man hier angeben:

Elastic SIEM – Umgang mit Alerts und Cases

Alternativ können Alerts aber auch so geschlossen werden:

Elastic SIEM – Umgang mit Alerts und Cases

Verdächtige Events zu einem Case zusammenfassen

Erstellen eines neuen Cases

Wenn die Meldung kein False Positive ist, dann muss sie analysiert werden. Eventuell liegt ja wirklich ein Sicherheitsproblem vor! Auch auf meinem Domain Controller hat die Rule „.net Reflection via Powershell“ gestern Nacht angeschlagen! Der Overview liefert leider nicht viel dazu. Also wechsle ich in den Details des ersten Events in die Ansicht „Table“ und durchsuche die Properties. PowerShell-Codes werden in einem speziellen Eventlog als Scriptblöcke gespeichert und bei richtiger Konfiguration zum Elastic transportiert. Die Rule interessiert sich für den Code. Also sollte ich mir den hier mal ansehen. Ich finde eine passende Spalte und darin höchst befremdlichen Powershell-Code!

Elastic SIEM – Umgang mit Alerts und Cases

Ein Angriff besteht aber selten nur aus einem einzelnen Event. Also nehme ich das gefundene Event in einen neuen Case auf:

Elastic SIEM – Umgang mit Alerts und Cases

Im neuen Case sind einige Angaben zu tätigen. Den Schweregrad stelle ich auf high um, da der Code auf meinem Domain Controller gefunden wurde:

Elastic SIEM – Umgang mit Alerts und Cases

Mehr gebe ich nicht an. Der Case ist nun angelegt.

Weitere Alerts dem Case zuordnen

Das andere Event gehört auch dazu. Also nutze ich die Mehrfachaktion und füge beide dem bestehenden Case zu:

Elastic SIEM – Umgang mit Alerts und Cases

Die Auswahl ist einfach bedienbar. Man kann im Elastic gut mehrere Cases parallel verwalten:

Elastic SIEM – Umgang mit Alerts und Cases

Ausweiten der Suche

Nun möchte ich aber noch prüfen, welche anderen Events außerhalb dieser Rule dazu gehören. Also entferne ich den Rule-Filter und filtere nach dem Domain Controller:

Elastic SIEM – Umgang mit Alerts und Cases

Jetzt sehe ich, dass hier noch mehr Rules ausgelöst haben. Und deren Events stehen alle in einem zeitlichen Zusammenhang!

Elastic SIEM – Umgang mit Alerts und Cases

Ich füge sie alle dem Case zu und nutze dafür wieder die Mehrfachauswahl. Elastic hat dabei kein Problem damit, wenn ein Event bereits dem Case zugewiesen ist.

Arbeiten mit dem Case

Dann möchte ich mir den offenen Case genauer ansehen und wechsle dafür auf die Cases. Hier kann ich den Case über einen Klick auf seinen Namen öffnen. Ebenso kann ich aber auch einen Bearbeiter zuweisen:

Elastic SIEM – Umgang mit Alerts und Cases

Die Events der Bearbeitung werden im Case in einer zeitlichen Abfolge angezeigt

Elastic SIEM – Umgang mit Alerts und Cases

Nach dem Wechsel auf „Alerts“ werden die eigentlichen Events wieder angezeigt:

Elastic SIEM – Umgang mit Alerts und Cases

Gehört noch mehr zu dem Case?

Jetzt muss ich aber noch einen Bezug auf andere Systeme herstellen. Dafür nutze ich eine Search, die ich speziell auf die Alerts anwende. Diese könnt ihr euch am Ende des Beitrags herunterladen. Sie zeigt mir offene Alerts und die üblichen Attribute „Username“, „Hostname“, „Source IP“ und „Destination IP“. Hier sehe ich nun einfach, dass mein Account „Stephan-T0“ auf meinem Domain Controller die PowerShell gestartet hat. Und ebenso, dass mein Account „Stephan“ auf „WS-CL11a“ ebenso Events zu der Zeit des Angriffs angezeigt hat:

Elastic SIEM – Umgang mit Alerts und Cases

Hier könnte man nun einen Zusammenhang zwischen Standardkennung „Stephan“ und Adminkennung „Stephan-T0“ erkennen! Also suche ich nach Alerts vom Computer „WS-CL11a“ bzw. den beiden Benutzerkonten. Ich wechsle zurück in das Alerts-Dashboard und nutze dort den KQL-Filter für meine Suche. Und diese hat Treffer!

Elastic SIEM – Umgang mit Alerts und Cases

Die 10 Alerts weise ich ebenfalls dem Case zu.

Zusätzliche Events ohne Alerts zum Case finden

Jetzt fehlt mir nur noch der Zusammenhang zwischen den beiden Hosts und den beiden Benutzerkonten. Da ohne Prozess-Starts im Windows-Umfeld nichts läuft, filtere ich meine „Sysmon-01-processcreate“-Search (Diese könnt ihr euch in meinem gitlab herunterladen: https://gitlab.ws-its.de/stephan/elasticsiem). Hier zeichnet sich über die Zeitachse eine Häufung der Events gegen 18:00 ab. Die bisherigen Alerts stammen aus der Zeit ab 01:00:

Elastic SIEM – Umgang mit Alerts und Cases

Ich suche nach mstsc.exe und finde hier in den Details heraus, dass der Benutzer vom Client aus einen Remote-RDM (Remote Desktop Manager) gestartet hat. Das ist mein Jumpserver, der dann auch die Verbindung zu den Servern herstellen kann. Damit haben die Events eine Verbindung zueinander:

Elastic SIEM – Umgang mit Alerts und Cases

Zusammenfassung

Natürlich war das kein echter Angriff. Ich habe gestern Nacht verschiedene Rules im Elastic aktiviert und natürlich auch ausprobiert. Aber im Nachgang kann ich nun vieles rekonstruieren. Und genau das ist eine der Aufgaben eines SIEMs.

Den Case kann ich nun abschließen:

Elastic SIEM – Umgang mit Alerts und Cases

Damit werden auch automatisch die Alerts bestätigt:

Elastic SIEM – Umgang mit Alerts und Cases

Stay tuned!

Weitere Artikel findet ihr in meiner Serie „Bereitstellung eines Elastic SIEM„.

Kommentar hinterlassen