Collecte et analyse les journaux d'authentification AD et Azure AD pour détecter les attaques de mouvement latéral à l'aide d'une détection d'anomalies basée sur des graphes, en visualisant les schémas suspects avec des chronologies interactives et des GIF.
L'outil d'analyse de mouvement latéral (LATMA) collecte les journaux d'authentification du domaine et des environnements Azure AD et recherche les potentielles attaques de mouvement latéral et activités suspectes. Le mouvement latéral peut se situer dans l'environnement AD ou entre le cloud et l'on-premise. L'outil visualise les résultats avec des diagrammes représentant les schémas de mouvement latéral. Cet outil contient deux modules, l'un qui collecte les journaux et l'autre qui les analyse. Vous pouvez exécuter chacun des modules séparément. Le collecteur de journaux d'événements doit être exécuté sur une machine Windows dans un environnement de domaine Active Directory avec Python 3.8 ou supérieur. L'analyseur peut être exécuté sur une machine Linux ou Windows.
Le collecteur de journaux d'événements a deux fonctionnalités : scanner les contrôleurs de domaine pour les journaux d'authentification NTLM réussis et les points d'extrémité pour les journaux d'authentification Kerberos réussis, et collecter les journaux de connexion d'Azure AD. La collecte des journaux de l'environnement AD nécessite l'accès aux ports LDAP/S 389 et 636 et au port RPC 135 du contrôleur de domaine et des clients. Il nécessite en outre des privilèges d'administrateur de domaine ou un utilisateur du groupe Lecteur des journaux d'événements, ou des permissions équivalentes. Ceci est nécessaire pour extraire les journaux d'événements de tous les points d'extrémité et contrôleurs de domaine. Pour la collecte des connexions, vous devez disposer d'une application sur votre environnement Azure-AD et fournir les informations pertinentes dans le fichier de configuration. Assurez-vous que l'utilisateur utilisé pour la collecte des connexions n'est pas configuré avec une 2FA.
Le collecteur rassemble les journaux NTLM de l'événement 8004 sur les contrôleurs de domaine et les journaux Kerberos de l'événement 4648 sur les clients. Il génère en sortie un fichier au format CSV délimité par des virgules contenant tout le trafic d'authentification disponible. La sortie contient les champs : hôte source, destination, nom d'utilisateur, type d'authentification, SPN et horodatages au format %Y/%m/%d %H:%M. Le collecteur nécessite les identifiants d'un utilisateur valide disposant de privilèges de visionnage des événements dans tout l'environnement et interroge les journaux spécifiques pour chaque protocole.
Vérifiez que les protocoles Kerberos et NTLM sont audités dans l'environnement via la stratégie de groupe :
Le collecteur rassemble les connexions réussies provenant uniquement d'appareils hybrides ou joints à Azure AD. Ces connexions représentent des mouvements réussis entre les actifs de l'environnement Azure AD et l'on-premise, ou vice versa. Le collecteur nécessite les informations suivantes pour collecter les données :
L'analyseur reçoit en entrée un tableur avec des données d'authentification formatées comme spécifié dans la structure de sortie du collecteur. Il recherche une activité suspecte avec l'algorithme d'analyse de mouvement latéral et détecte également des IoC supplémentaires de mouvement latéral. La source et la destination de l'authentification doivent être formalisées avec un nom NetBIOS et non des adresses IP.
LATMA reçoit un lot de requêtes d'authentification et envoie une alerte lorsqu'il détecte des attaques de mouvement latéral suspectes. Nous définissons ce qui suit :
Graphe d'authentification : Un graphe orienté qui contient des informations sur le trafic d'authentification dans l'environnement. Les nœuds du graphe sont des ordinateurs, et les arêtes sont les authentifications entre les ordinateurs. Les arêtes du graphe possèdent les attributs : type de protocole, date de l'authentification et le compte qui a envoyé la requête. Les nœuds du graphe contiennent des informations sur l'ordinateur qu'ils représentent, détaillées ci-dessous.
Graphe de mouvement latéral : Un sous-graphe du graphe d'authentification qui représente le mouvement de l'attaquant. Le graphe de mouvement latéral n'est pas toujours un chemin dans le sous-graphe ; dans certaines attaques, l'attaquant se déplace dans de nombreuses directions différentes.
Alerte : Un sous-graphe que l'algorithme soupçonne de faire partie du graphe de mouvement latéral.
LATMA effectue plusieurs actions lors de son exécution :
Collecte d'informations : LATMA surveille le comportement normal des utilisateurs et des machines et les caractérise. L'apprentissage est utilisé ensuite pour décider quelles requêtes d'authentification s'écartent d'un comportement normal et pourraient être impliquées dans une attaque de mouvement latéral. Pendant une période d'apprentissage de trois semaines, LATMA ne déclenche aucune alerte et se contente d'apprendre l'environnement. L'apprentissage se poursuit après ces trois semaines.
Construction du graphe d'authentification : Après la période d'apprentissage, chaque authentification pertinente est ajoutée au graphe d'authentification. Il est essentiel de filtrer uniquement les authentifications pertinentes, sinon le nombre d'arêtes que le graphe contient pourrait être trop important. Nous filtrons sur les types de protocoles suivants : NTLM et Kerberos avec les services « rpc », « rpcss » et « termsrv. »
L'ajout d'une authentification au graphe peut déclencher un processus d'alerte. En général, une nouvelle arête peut créer une nouvelle alerte, rejoindre une alerte existante ou fusionner deux alertes.
Chaque requête d'authentification surveillée par LATMA est utilisée pour l'apprentissage et stockée dans une structure de données dédiée. Tout d'abord, nous identifions les puits et les hubs. Nous définissons les puits comme des machines auxquelles accèdent de nombreux (au moins 50) comptes différents, comme un portail d'entreprise ou un serveur Exchange. Nous définissons les hubs comme des machines à partir desquelles de nombreux comptes différents (au moins 20) s'authentifient, comme les proxys et les VPN. Les authentifications vers les puits ou depuis les hubs sont considérées comme bénignes et sont donc supprimées du graphe d'authentification.
En plus de la classification de base, LATMA fait correspondre les comptes et les machines à partir desquelles ils s'authentifient fréquemment. Si un compte s'authentifie à partir d'une machine au moins trois jours différents sur une période de trois semaines, cela signifie que ce compte correspond à la machine et toute authentification de ce compte à partir de cette machine est considérée comme bénigne et supprimée du graphe d'authentification.
Les IoC de mouvement latéral sont :
Canne blanche - Comptes d'utilisateurs s'authentifiant depuis une seule machine vers plusieurs autres en un temps relativement court.
Pont - Compte utilisateur X s'authentifiant depuis la machine A vers la machine B, puis depuis la machine B vers la machine C. Cet IoC indique potentiellement un attaquant qui progresse depuis son point de départ initial (A) vers une machine de destination qui sert mieux les objectifs de l'attaque.