Article

Lancement de notre série sur la sécurité de l’AD

Joseph Pradines
By:
Joseph Pradines
Lancement de notre série sur la sécurité de l’AD

Les infrastructures Active Directory (AD) sont la clé de voûte de 99 % des systèmes d’information en entreprise. Cependant, les environnements AD présentent fréquemment de nombreuses vulnérabilités variées, les transformant en maillon faible de la sécurité informatique.

Cet article apporte un éclairage sur un vecteur d’attaque fréquemment rencontré au cours des missions d’audit d’intrusion et communément nommé « Kerberoasting ». Ce nom provient du protocole d’authentification Kerberos, très largement répandu au sein des environnements AD. Plus précisément, le « Kerberoasting » est une méthode d'attaque où un individu malveillant utilise un compte utilisateur non privilégié pour obtenir des tickets de service protégés par des mots de passe dont il n’a pas connaissance. Mots de passe qui, s’ils sont découverts, permettent à l'attaquant d’accéder à des comptes privilégiés… aidant à potentiellement compromettre tout le domaine.

Principales caractéristiques de l’attaque :

  • Facilité d’accès : débute avec un compte utilisateur non privilégié du domaine,
  • Conséquences : permet de récupérer des mots de passe de comptes privilégiés,
  • Exploitation : permet de réaliser des mouvements latéraux après avoir élevé les privilèges de l’utilisateur.

Fonctionnement et usage légitime…

Au sein des environnements AD, les mécanismes d’authentification sont largement mis en œuvre à l’aide d’un protocole nommé Kerberos. En synthèse, ce mécanisme complexe repose sur le principe suivant :

  • Un utilisateur utilise son mot de passe pour obtenir un ticket d’autorisation (Ticket Granting Ticket, ou TGT) auprès d’un service réseau appelé le Key Distribution Center (KDC),
  • A l’aide de ce TGT, l’utilisateur n’aura plus besoin d’utiliser son mot de passe pour obtenir, à la demande, des tickets de service (Service Ticket ou ST) qui lui permettront d’accéder à des services.

Le protocole d’authentification Kerberos offre un large éventail de fonctionnalités, dont l’une permet à un utilisateur d’accéder de manière sécurisée à un service. Cette fonctionnalité repose sur l’utilisation d’un Service Principal Name (SPN), un identifiant associé au service, qui peut être rattaché aux attributs de l’utilisateur. Dans ce cadre, Kerberos prévoit que l’utilisateur sollicite un ticket de service, lequel lui permettra d’accéder au service désigné.

… et détournement par les attaquants

Kerberos est conçu pour permettre à chaque utilisateur de demander un ticket afin d’accéder à divers services sur le réseau, tels que des applications métier, des serveurs de messagerie, des partages de fichiers ou des systèmes de gestion de bases de données. Cette conception offre néanmoins une surface d’attaque exploitable.

Bien que le ticket soit protégé par le mot de passe de l'utilisateur légitime, un attaquant peut essayer différents mots de passe jusqu'à ouvrir le ticket.

Une fois les tickets de service extraits, une attaque sur les mots de passe peut être menée directement à partir du poste de travail de l'attaquant et ne nécessite pas d’interaction avec le réseau de l’entreprise. Par analogie, cela revient à essayer d'ouvrir une archive ZIP en testant différents mots de passe.

Les cibles parfaites sont alors les comptes de service, dont le mot de passe n’est pas régulièrement mis à jour… Et qui, de plus, est parfois faible voire facile à deviner... On les nomme comptes « Kerberoastables ».

Figure 1 – Synthèse de l’attaque

Une note pour offrir un ordre de grandeur : un attaquant peut par exemple, pour optimiser ses chances de trouver le bon mot de passe, utiliser la puissance de calcul d’une carte graphique (GPU), comme les modèles NVIDIA GeForce les plus récents (ex. : RTX 4090) capables de tester plus de 3 milliards de mots de passe par seconde.

Prévenir ce risque dans vos Systèmes d’Information

La faiblesse qui vient d’être décrite repose sur un défaut de design qui ne peut être remis en question. En d’autres termes, ce défaut ne peut pas être corrigé et il convient de mettre en place des moyens permettant de limiter le risque associé.

Nous proposons, ci-après, différentes méthodes qui peuvent être employées à cette fin :

  1. Rationalisation des SPN : la méthode la plus efficace consiste « à vérifier » que les comptes ayant un attribut SPN en ont réellement besoin. Parfois, ce besoin est historique et n’est plus nécessaire, ou l’attribut SPN a été ajouté par erreur ou pour des tests. Dans ces cas, il est recommandé de supprimer ceux qui sont inutiles pour réduire les risques d'exposition.
  2. Mise en place de comptes « gMSA » ou de mots de passe complexes : une autre méthode pour renforcer la sécurité consiste à utiliser des comptes gérés par groupe (Group Managed Service Accounts, ou gMSA) ou à implémenter des mots de passe complexes. Les comptes gMSA sont conçus pour fournir une gestion automatisée de ces derniers, les rendant ainsi beaucoup plus difficiles à déchiffrer. Si l’utilisation de comptes gMSA n'est pas possible, il est crucial de s’assurer que les codes d’accès des comptes de service soient longs, aléatoires et régulièrement mis à jour. Utiliser des mots de passe complexes réduit considérablement le risque qu'un attaquant puisse réussir une attaque par force brute pour le trouver.
  3. Détection proactive avec un canari : enfin, une dernière technique de détection consiste à créer un compte « canari » avec un SPN et de superviser les journaux d’activités pour détecter des demandes de tickets de service pour ce compte dont on sait qu’il n’a aucune utilisation légitime. Cette technique peut notamment être mise en œuvre par un SOC (Security Operations Center) afin de créer une alerte en cas de tentative frauduleuse.

Les comptes « Kerberoastables » peuvent être identifiés, notamment à l’aide d’une commande PowerShell ou en utilisant des outils tiers. Voici un exemple de commande PowerShell pouvant être utilisée :

PS > Get-ADUser -LDAPFilter "(userAccountControl:1.2.840.113556.1.4.803:=4194304)"

Après avoir mis en œuvre les recommandations, il est crucial de garantir un suivi continu de cette faiblesse pour une gestion pérenne. Nous recommandons d'utiliser un outil spécialisé, AD Miner par exemple, qui permet de relever ce point de contrôle de manière efficace. En intégrant cet outil dans vos activités de contrôle interne en cybersécurité, vous pourrez surveiller en permanence les comptes à risque et garantir une réponse proactive aux vulnérabilités.