
Sammelt und analysiert AD- und Azure AD-Authentifizierungslogs, um Lateral-Movement-Angriffe mittels graphenbasierter Anomalieerkennung zu erkennen und verdächtige Muster mit interaktiven Zeitstrahlen und GIFs zu visualisieren.
Der Lateral Movement Analyzer (LATMA) sammelt Authentifizierungsprotokolle aus der Domäne und Azure AD-Umgebungen und sucht nach potenziellen Lateral Movement-Angriffen und verdächtigen Aktivitäten. Die laterale Bewegung kann in der AD-Umgebung oder zwischen Cloud und On-Premises stattfinden. Das Tool visualisiert die Ergebnisse mit Diagrammen, die die Lateral Movement-Muster darstellen. Dieses Tool enthält zwei Module, eines zum Sammeln der Protokolle und eines zu deren Analyse. Sie können jedes der Module separat ausführen. Der Ereignisprotokollsammler sollte auf einem Windows-Rechner in einer Active Directory-Domänenumgebung mit Python 3.8 oder höher ausgeführt werden. Der Analysator kann auf einem Linux-Rechner und einem Windows-Rechner ausgeführt werden.
Der Ereignisprotokollsammler hat zwei Funktionen: das Scannen von Domänencontrollern auf erfolgreiche NTLM-Authentifizierungsprotokolle und Endpunkten auf erfolgreiche Kerberos-Authentifizierungsprotokolle sowie das Sammeln von Anmeldeprotokollen aus Azure AD. Das Sammeln von Protokollen aus der AD-Umgebung erfordert Zugriff auf die LDAP/S-Ports 389 und 636 sowie auf den RPC-Port 135 des Domänencontrollers und der Clients. Darüber hinaus sind Domänenadministratorrechte oder ein Benutzer in der Gruppe der Ereignisprotokollleseberechtigten oder mit entsprechenden Berechtigungen erforderlich. Dies ist erforderlich, um Ereignisprotokolle von allen Endpunkten und Domänencontrollern abzurufen. Für die Sammlung von Anmeldungen benötigen Sie eine Anwendung in Ihrer Azure AD-Umgebung und geben die entsprechenden Informationen in der Konfigurationsdatei an. Stellen Sie sicher, dass der für die Anmeldesammlung verwendete Benutzer nicht mit 2FA konfiguriert ist.
Der Sammler sammelt NTLM-Protokolle aus Ereignis 8004 auf den Domänencontrollern und Kerberos-Protokolle aus Ereignis 4648 auf den Clients. Als Ausgabe wird eine CSV-Datei im kommagetrennten Format mit dem gesamten verfügbaren Authentifizierungsverkehr erstellt. Die Ausgabe enthält die Felder Quellhost, Ziel, Benutzername, Authentifizierungstyp, SPN und Zeitstempel im Format %Y/%m/%d %H:%M. Der Sammler benötigt die Anmeldeinformationen eines gültigen Benutzers mit Ereignisanzeigeberechtigungen in der gesamten Umgebung und fragt die spezifischen Protokolle für jedes Protokoll ab.
Stellen Sie sicher, dass die Kerberos- und NTLM-Protokolle in der gesamten Umgebung mithilfe von Gruppenrichtlinien überwacht werden:
Der Sammler erfasst nur erfolgreiche Anmeldungen von hybriden oder Azure AD-verbundenen Geräten. Diese Anmeldungen stellen erfolgreiche Bewegungen zwischen Ressourcen der Azure AD-Umgebung und der lokalen Umgebung oder umgekehrt dar. Der Sammler benötigt die folgenden Informationen, um Daten zu sammeln:
Der Analysator erhält als Eingabe eine Tabelle mit Authentifizierungsdaten, die gemäß der Ausgabestruktur des Sammlers formatiert sind. Er sucht mit dem Lateral Movement Analyzer-Algorithmus nach verdächtigen Aktivitäten und erkennt auch zusätzliche IoCs für Lateral Movement. Die Authentifizierungsquelle und das Ziel sollten mit NetBIOS-Namen und nicht mit IP-Adressen formalisiert werden.
LATMA erhält einen Stapel von Authentifizierungsanfragen und sendet eine Warnung, wenn verdächtige Lateral Movement-Angriffe gefunden werden. Wir definieren Folgendes:
Authentifizierungsgraph: Ein gerichteter Graph, der Informationen über den Authentifizierungsverkehr in der Umgebung enthält. Die Knoten des Graphen sind Computer, und die Kanten sind Authentifizierungen zwischen den Computern. Die Graphkanten haben die Attribute: Protokolltyp, Datum der Authentifizierung und das Konto, das die Anfrage gesendet hat. Die Graphknoten enthalten Informationen über den Computer, den sie repräsentieren, wie unten beschrieben.
Lateral Movement-Graph: Ein Teilgraph des Authentifizierungsgraphen, der die Bewegung des Angreifers darstellt. Der Lateral Movement-Graph ist nicht immer ein Pfad im Teilgraphen; bei manchen Angriffen bewegt sich der Angreifer in viele verschiedene Richtungen.
Warnung: Ein Teilgraph, von dem der Algorithmus vermutet, dass er Teil des Lateral Movement-Graphen ist.
LATMA führt während seiner Ausführung mehrere Aktionen aus:
Informationssammlung: LATMA überwacht das normale Verhalten der Benutzer und Maschinen und charakterisiert sie. Das Lernen wird später verwendet, um zu entscheiden, welche Authentifizierungsanfragen vom normalen Verhalten abweichen und an einem Lateral Movement-Angriff beteiligt sein könnten. Während einer Lernphase von drei Wochen löst LATMA keine Warnungen aus und lernt nur die Umgebung. Das Lernen wird nach diesen drei Wochen fortgesetzt.
Aufbau des Authentifizierungsgraphen: Nach der Lernphase wird jede relevante Authentifizierung zum Authentifizierungsgraphen hinzugefügt. Es ist entscheidend, nur relevante Authentifizierungen zu filtern, da sonst die Anzahl der Kanten im Graphen zu groß werden könnte. Wir filtern nach den folgenden Protokolltypen: NTLM und Kerberos mit den Diensten „rpc“, „rpcss“ und „termsrv“.
Das Hinzufügen einer Authentifizierung zum Graphen kann einen Warnungsprozess auslösen. Im Allgemeinen kann eine neue Kante eine neue Warnung erzeugen, einer bestehenden Warnung beitreten oder zwei Warnungen zusammenführen.
Jede von LATMA überwachte Authentifizierungsanfrage wird zum Lernen verwendet und in einer speziellen Datenstruktur gespeichert. Zuerst identifizieren wir Senken und Hubs. Wir definieren Senken als Maschinen, auf die viele (mindestens 50) verschiedene Konten zugreifen, wie z. B. ein Unternehmensportal oder Exchange-Server. Wir definieren Hubs als Maschinen, von denen sich viele verschiedene Konten (mindestens 20) authentifizieren, wie z. B. Proxys und VPNs. Authentifizierungen zu Senken oder von Hubs werden als gutartig betrachtet und daher aus dem Authentifizierungsgraphen entfernt.
Zusätzlich zur grundlegenden Klassifizierung gleicht LATMA Konten mit Maschinen ab, von denen sie sich häufig authentifizieren. Wenn sich ein Konto an mindestens drei verschiedenen Tagen innerhalb eines Zeitraums von drei Wochen von einer Maschine authentifiziert, bedeutet dies, dass dieses Konto zur Maschine passt, und jede Authentifizierung dieses Kontos von dieser Maschine wird als gutartig betrachtet und aus dem Authentifizierungsgraphen entfernt.
Die Lateral Movement IoCs sind:
Weißer Stock - Benutzerkonten, die sich von einem einzigen Rechner aus in relativ kurzer Zeit bei mehreren authentifizieren.
Brücke - Benutzerkonto X authentifiziert sich von Rechner A zu Rechner B und anschließend von Rechner B zu Rechner C. Dieser IoC deutet möglicherweise auf einen Angreifer hin, der von seinem anfänglichen Fußpunkt (A) zu einem Zielrechner vordringt, der die Angriffsziele besser unterstützt.
Gewechselte Brücke - Benutzerkonto X authentifiziert sich von Rechner A zu Rechner B, gefolgt von Benutzerkonto Y, das sich von Rechner B zu Rechner C authentifiziert. Dieser IoC deutet möglicherweise auf einen Angreifer hin, der auf seinem Weg ein zusätzliches Konto entdeckt und kompromittiert und das neue Konto für den weiteren Vorstoß verwendet (ein häufiges Beispiel ist Konto X als Standard-Domänenbenutzer und Konto Y als Administratorbenutzer).
Gewichtsverschiebung - Weißer Stock (siehe oben) von Rechner A zu Rechnern {B1,…, Bn}, gefolgt von einem weiteren Weißen Stock von Rechner Bx zu Rechnern {C1,…,Cn}. Dieser IoC deutet möglicherweise auf einen Angreifer hin, der festgestellt hat, dass Rechner B die Angriffsziele besser unterstützt, und ab jetzt Rechner B als Quelle für weitere Suchen verwendet.
Explosion - Benutzerkonto X authentifiziert sich in sehr kurzer Zeit von Rechner A zu mehreren Rechnern. Ein häufiges Beispiel ist ein Angreifer, der Ransomware auf eine Vielzahl von Rechnern gleichzeitig aufspielt/ausführt.
Ausgabe:
Der Analysator erzeugt mehrere verschiedene Dateien:
Verwendung
Der Collector
Erforderliche Argumente:
Binäre Verwendung Öffnen Sie die Eingabeaufforderung und navigieren Sie zum Binärordner. Führen Sie die ausführbaren Dateien mit den oben angegebenen Argumenten aus.
In den Beispieldateien finden Sie mehrere Beispiele realer Umgebungen (einige enthalten Lateral Movement-Angriffe, andere nicht), die Sie als Eingabe für den Analysator verwenden können.
Verwendungsbeispiel