Dieser Artikel ist der erste Teil einer Serie zur Sysmon-Bedrohungsanalyse. Alle anderen Teile der Serie:
Teil 1: Einführung in die Sysmon-Protokollanalyse (wir sind hier)
Teil 2: Verwenden von Sysmon-Ereignisdaten zur Identifizierung von Bedrohungen
Teil 3. Detaillierte Analyse von Sysmon-Bedrohungen mithilfe von Diagrammen
Wenn Sie im Bereich Informationssicherheit arbeiten, müssen Sie wahrscheinlich häufig laufende Angriffe verstehen. Wenn Sie bereits über ein geschultes Auge verfügen, können Sie in den „rohen“ unverarbeiteten Protokollen nach nicht standardmäßigen Aktivitäten suchen – beispielsweise nach einem laufenden PowerShell-Skript
Möchten Sie die Grundideen hinter den im Sysmon-Protokoll angezeigten Bedrohungen verstehen? Laden Sie unseren Leitfaden herunter
Im ersten Teil unserer Serie schauen wir uns an, was Sie mit Basisinformationen von Sysmon machen können. In Teil XNUMX werden wir die Informationen des übergeordneten Prozesses voll ausnutzen, um komplexere Compliance-Strukturen zu erstellen, die als Bedrohungsdiagramme bezeichnet werden. Im dritten Teil betrachten wir einen einfachen Algorithmus, der ein Bedrohungsdiagramm durchsucht, um nach ungewöhnlichen Aktivitäten zu suchen, indem er das „Gewicht“ des Diagramms analysiert. Und am Ende werden Sie mit einer sauberen (und verständlichen) probabilistischen Methode zur Bedrohungserkennung belohnt.
Teil 1: Einführung in die Sysmon-Protokollanalyse
Was kann Ihnen helfen, die Komplexität des Ereignisprotokolls zu verstehen? Letztendlich - SIEM. Es normalisiert Ereignisse und vereinfacht deren anschließende Analyse. Aber so weit müssen wir nicht gehen, zumindest zunächst nicht. Um die Prinzipien von SIEM zu verstehen, reicht es zunächst aus, das wunderbare kostenlose Dienstprogramm Sysmon auszuprobieren. Und es ist überraschend einfach, mit ihr zu arbeiten. Weiter so, Microsoft!
Welche Funktionen bietet Sysmon?
Kurz gesagt – nützliche und lesbare Informationen zu den Prozessen (siehe Bilder unten). Sie finden eine Reihe nützlicher Details, die nicht im Windows-Ereignisprotokoll enthalten sind. Die wichtigsten sind jedoch die folgenden Felder:
- Prozess-ID (dezimal, nicht hexadezimal!)
- ID des übergeordneten Prozesses
- Befehlszeile verarbeiten
- Befehlszeile des übergeordneten Prozesses
- Dateibild-Hash
- Dateibildnamen
Sysmon wird sowohl als Gerätetreiber als auch als Dienst installiert – weitere Details
Sysmon macht einen Quantensprung nach vorne, indem es nützliche (oder wie Anbieter gerne sagen: umsetzbare) Informationen bereitstellt, die dabei helfen, die zugrunde liegenden Prozesse zu verstehen. Ich habe zum Beispiel eine geheime Sitzung gestartet
Das Windows-Protokoll zeigt einige Informationen über den Vorgang, die jedoch von geringem Nutzen sind. Plus Prozess-IDs im Hexadezimalformat???
Für einen professionellen IT-Experten mit einem Verständnis für die Grundlagen des Hackens sollte die Befehlszeile verdächtig sein. Die Verwendung von cmd.exe, um anschließend einen anderen Befehl auszuführen und die Ausgabe in eine Datei mit einem seltsamen Namen umzuleiten, ähnelt eindeutig den Aktionen einer Überwachungs- und Steuerungssoftware
Werfen wir nun einen Blick auf das Sysmon-Eintragsäquivalent und beachten wir, wie viele zusätzliche Informationen es uns liefert:
Sysmon-Funktionen in einem Screenshot: detaillierte Informationen zum Prozess in lesbarer Form
Sie sehen nicht nur die Befehlszeile, sondern auch den Dateinamen, den Pfad zur ausführbaren Anwendung, was Windows darüber weiß („Windows Command Processor“), die Kennung elterlich Prozess, Befehlszeile Elternteil, mit dem die cmd-Shell gestartet wurde, sowie der tatsächliche Dateiname des übergeordneten Prozesses. Endlich alles an einem Ort!
Aus dem Sysmon-Protokoll können wir schließen, dass diese verdächtige Befehlszeile, die wir in den „rohen“ Protokollen gesehen haben, mit hoher Wahrscheinlichkeit nicht das Ergebnis der normalen Arbeit des Mitarbeiters ist. Ganz im Gegenteil, es wurde von einem C2-ähnlichen Prozess generiert – wmiexec, wie ich bereits erwähnt habe – und wurde direkt vom WMI-Dienstprozess (WmiPrvSe) erzeugt. Jetzt haben wir einen Hinweis darauf, dass ein entfernter Angreifer oder Insider die Unternehmensinfrastruktur testet.
Einführung in Get-Sysmonlogs
Natürlich ist es großartig, wenn Sysmon die Protokolle an einem Ort ablegt. Aber es wäre wahrscheinlich noch besser, wenn wir programmgesteuert auf einzelne Protokollfelder zugreifen könnten – beispielsweise über PowerShell-Befehle. In diesem Fall könnten Sie ein kleines PowerShell-Skript schreiben, das die Suche nach potenziellen Bedrohungen automatisiert!
Ich war nicht der Erste, der eine solche Idee hatte. Und es ist gut, dass in einigen Forenbeiträgen und GitHub
Der erste wichtige Punkt ist die Fähigkeit des Teams
$events = Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operational" | where { $_.id -eq 1 -or $_.id -eq 11}
Wenn Sie den Befehl selbst testen möchten, indem Sie den Inhalt im ersten Element des $events-Arrays, $events[0].Message, anzeigen, kann die Ausgabe eine Reihe von Textzeichenfolgen mit einem sehr einfachen Format sein: der Name des Sysmon-Feld, ein Doppelpunkt und dann der Wert selbst.
Hurra! Ausgabe des Sysmon-Protokolls in ein JSON-fähiges Format
Denkst du dasselbe wie ich? Mit etwas mehr Aufwand können Sie die Ausgabe in einen JSON-formatierten String konvertieren und ihn dann mit einem leistungsstarken Befehl direkt in ein PS-Objekt laden
Den PowerShell-Code für die Konvertierung – es ist ganz einfach – zeige ich im nächsten Teil. Sehen wir uns zunächst an, was mein neuer Befehl namens get-sysmonlogs, den ich als PS-Modul installiert habe, bewirken kann.
Anstatt über eine umständliche Ereignisprotokollschnittstelle tief in die Sysmon-Protokollanalyse einzutauchen, können wir mühelos direkt in einer PowerShell-Sitzung nach inkrementellen Aktivitäten suchen und den PS-Befehl verwenden
Liste der über WMI gestarteten cmd-Shells. Kostengünstige Bedrohungsanalyse mit unserem eigenen Get-Sysmonlogs-Team
Fabelhaft! Ich habe ein Tool erstellt, um das Sysmon-Protokoll abzufragen, als wäre es eine Datenbank. In unserem Artikel über
Sysmon- und Diagrammanalyse
Lassen Sie uns einen Schritt zurücktreten und über das nachdenken, was wir gerade geschaffen haben. Im Wesentlichen verfügen wir jetzt über eine Windows-Ereignisdatenbank, auf die über PowerShell zugegriffen werden kann. Wie ich bereits erwähnt habe, gibt es Verbindungen oder Beziehungen zwischen Datensätzen – über die ParentProcessId –, sodass eine vollständige Prozesshierarchie erhalten werden kann.
Wenn Sie die Serie gelesen haben
Aber mit meinem Befehl „Get-Sysmonlogs“ und einer zusätzlichen Datenstruktur, die wir später im Text betrachten werden (natürlich ein Diagramm), haben wir eine praktische Möglichkeit, Bedrohungen zu erkennen – was lediglich die richtige Vertex-Suche erfordert.
Wie immer bei unseren DYI-Blogprojekten gilt: Je mehr Sie sich mit der Analyse der Details von Bedrohungen im kleinen Maßstab befassen, desto mehr werden Sie erkennen, wie komplex die Bedrohungserkennung auf Unternehmensebene ist. Und dieses Bewusstsein ist extrem wichtiger Punkt.
Auf die ersten interessanten Komplikationen werden wir im zweiten Teil des Artikels stoßen, wo wir beginnen, Sysmon-Ereignisse miteinander zu viel komplexeren Strukturen zu verbinden.
Source: habr.com