A retenir -- Agent IA audit Active Directory

Auditer un annuaire Active Directory reste l'exercice le plus chronophage d'une mission de sécurité offensive : des milliers d'objets, des relations imbriquées et des chemins d'escalade que seuls quelques experts savent lire dans un graphe BloodHound. Un agent IA audit Active Directory automatisé change cette équation en couplant la puissance analytique du graphe Neo4j au raisonnement en langage naturel des grands modèles. Construit avec LangChain ou smolagents, il traduit une question métier en requêtes Cypher, corrèle les résultats, puis restitue les chemins d'attaque prioritaires accompagnés de recommandations de remédiation concrètes. Ce qui mobilisait plusieurs journées d'analyse manuelle se ramène à quelques minutes, sans sacrifier la rigueur. Ce guide détaille l'architecture technique, les prompts, les garde-fous indispensables et les limites opérationnelles à connaître avant de déployer un tel agent sur votre infrastructure de production.

En bref

  • Architecture agent LLM + BloodHound + Neo4j
  • BloodHound integration et graph reasoning
  • Attack path reasoning par LLM -- Cypher vers langage naturel
  • Privilege escalation graphing automatise
  • Detection Kerberoasting et DCSync par IA

L'audit de securite d'un environnement Active Directory est l'une des missions les plus complexes et les plus chronophages en cybersecurite offensive. La multitude de chemins d'escalade de privileges possibles dans un AD d'entreprise (Kerberoasting, AS-REP Roasting, DCSync, Pass-the-Hash, Pass-the-Ticket, delegation Kerberos non contrainte, ACL abuses, GPO misconfigurations) rend impossible une analyse manuelle exhaustive dans les delais d'un engagement pentest standard. L'agent IA pour auditer Active Directory change la donne : en combinant la puissance d'analyse de graphe de BloodHound avec le raisonnement en langage naturel d'un LLM, il est possible d'automatiser l'identification des chemins d'attaque critiques, de generer des explications comprehensibles pour les clients non techniques, et de prioriser automatiquement les remédiations selon leur impact. Cet article presente une architecture complete, du code deployable et les considerations legales et ethiques indispensables pour utiliser ces techniques dans un cadre professionnel legitime.

SÉCURITÉ IA agent-ia-audit-active-directory-automatise ARCHITECTURE / COMPOSANTS Architecture agent LLM + BloodHound +… BloodHound integration et graph… Attack path reasoning par LLM … Privilege escalation graphing… CONCEPTS CLÉS agent IA audit Active Directory Active Directory agent IA pour auditer Active Directory agent IA d'audit AD BloodHound CE (Community Edition) Neo4j + Cypher ayinedjimi-consultants.fr

Architecture agent LLM + BloodHound + Neo4j

L'architecture de l'agent IA d'audit AD repose sur trois composants principaux qui communiquent via des interfaces bien definies :

  • BloodHound CE (Community Edition) : collecte les donnees AD via SharpHound ou BloodHound.py et les stocke dans Neo4j. Fournit une API REST pour requeter les chemins d'attaque.
  • Neo4j + Cypher : base de donnees de graphe qui stocke les objets AD (utilisateurs, groupes, ordinateurs, OU, GPO) et leurs relations. Les requetes Cypher permettent d'identifier les chemins de privilege les plus courts.
  • Agent LLM (LangChain ou smolagents) : orchestre les outils disponibles (requetes Neo4j, commandes PowerView, recherches de documentation) pour repondre a des objectifs d'audit en langage naturel.

L'agent dispose de plusieurs outils : un outil de requete Cypher sur Neo4j, un outil de recherche dans la documentation BloodHound et MITRE ATT&CK, un outil de generation de commandes de collecte additionnelle, et un outil de generation de rapport. Il recoit un objectif ("Trouver tous les chemins d'escalade de privileges vers Domain Admin") et decompose autonomement la tache en sous-requetes.

BloodHound integration et graph reasoning

L'integration de BloodHound dans un pipeline agent IA permet de transformer des requetes Cypher complexes en analyses comprehensibles. Les requetes Cypher standard de BloodHound identifient les chemins mais ne les expliquent pas :

⚡

Retour terrain

Dans les projets de déploiement d'IA générative en entreprise, le risque le moins documenté est la fuite de données par les prompts utilisateur. Pour une ESN qui utilisait Claude Enterprise, j'ai analysé 3 mois de logs : 12 % des prompts contenaient des données confidentielles — NDA, données clients, spécifications techniques propriétaires. Les utilisateurs ne font pas la distinction entre leur outil de recherche web et leur assistant IA. La sensibilisation sur ce point précis réduit le taux à 2-3 % en 6 semaines.


from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_community.tools import Tool
from langchain_openai import ChatOpenAI
from neo4j import GraphDatabase
import json

# Connexion Neo4j BloodHound
driver = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "bloodhound"))

def query_attack_paths(objective="Domain Admin"):
    # Requete Cypher pour chemins vers DA
    cypher = (
        "MATCH p=shortestPath((n:User)-[*1..10]->(g:Group {name:'DOMAIN ADMINS@CORP.LOCAL'})) "
        "WHERE n.enabled=true "
        "RETURN p, length(p) as hops "
        "ORDER BY hops ASC LIMIT 10"
    )
    with driver.session() as session:
        result = session.run(cypher)
        paths = []
        for record in result:
            path = record["p"]
            nodes = [n["name"] for n in path.nodes]
            rels = [r.type for r in path.relationships]
            paths.append({"nodes": nodes, "relationships": rels, "hops": record["hops"]})
    return json.dumps(paths, indent=2)

def query_kerberoastable():
    cypher = (
        "MATCH (u:User) WHERE u.hasspn=true AND u.enabled=true "
        "RETURN u.name, u.description, u.admincount "
        "ORDER BY u.admincount DESC"
    )
    with driver.session() as session:
        result = session.run(cypher)
        return json.dumps([dict(r) for r in result], indent=2)

def query_unconstrained_delegation():
    cypher = (
        "MATCH (c:Computer) WHERE c.unconstraineddelegation=true "
        "RETURN c.name, c.operatingsystem, c.enabled "
        "ORDER BY c.name"
    )
    with driver.session() as session:
        result = session.run(cypher)
        return json.dumps([dict(r) for r in result], indent=2)

# Outils de l'agent
tools = [
    Tool(name="attack_paths", func=query_attack_paths,
         description="Trouve les chemins d'escalade de privilege vers Domain Admin"),
    Tool(name="kerberoastable_accounts", func=query_kerberoastable,
         description="Liste les comptes avec SPN (vulnerables Kerberoasting)"),
    Tool(name="unconstrained_delegation", func=query_unconstrained_delegation,
         description="Trouve les machines avec delegation Kerberos non contrainte"),
]

# LLM local pour analyse (Ollama)
from langchain_community.llms import Ollama
llm = Ollama(model="llama3.3:70b", temperature=0)
agent = create_openai_tools_agent(llm, tools, prompt=None)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

# Exemple d'audit
result = executor.invoke({"input": "Analyse les risques critiques de cet AD. Identifie les 3 chemins d'attaque les plus dangereux et explique comment les corriger en priorite."})
print(result["output"])

Attack path reasoning par LLM -- Cypher vers langage naturel

Le reasoning sur les chemins d'attaque AD par LLM transforme la complexite des graphes BloodHound en analyses comprehensibles. Un chemin Cypher comme User A -[MemberOf]-> Group B -[GenericAll]-> Computer C -[HasSession]-> Admin D devient, apres reasoning LLM :

"L'utilisateur A est membre du groupe B, qui dispose d'un contrôle complet (GenericAll) sur la machine C. Cette machine C a une session active de l'administrateur D. Un attaquant comprometttant le compte A pourrait donc : (1) utiliser les droits GenericAll sur C pour ajouter une cle SSH ou modifier un service, (2) recuperer le token de session de l'administrateur D via Mimikatz ou LSASS dump, (3) utiliser ce token pour se connecter comme Domain Admin. Remediation prioritaire : retirer le groupe B du controle sur C, mettre en place Protected Users sur le compte Admin D."

Cette capacite a expliquer les chemins d'attaque en langage naturel est particulierement precieuse pour les livrables clients non techniques. Pour les aspects techniques des attaques AD documentees et leur detection, consultez notre article sur les methodes de pentest et notre serie sur les audits ISO 27001.

Privilege escalation graphing automatise

Le graphing automatise des escalades de privileges permet a l'agent de cartographier l'ensemble des vecteurs d'escalade disponibles depuis n'importe quel point de depart (utilisateur compromis, machine compromise) vers des objectifs de haute valeur (Domain Admin, Enterprise Admin, Schema Admin, ADFS).

Technique ADRequete Cypher BloodHoundImpactDetectabilite
KerberoastingMATCH (u:User) WHERE u.hasspn=trueCritiqueMoyenne (tickets TGS)
DCSyncMATCH (n)-[:DCSync]->(d:Domain)CritiqueEleve (replication events)
GenericAll sur OUMATCH (n)-[:GenericAll]->(o:OU)CritiqueFaible
WriteDACL sur GroupeMATCH (n)-[:WriteDacl]->(g:Group)EleveFaible
Unconstrained DelegationMATCH (c:Computer) WHERE c.unconstraineddelegation=trueCritiqueFaible
LAPS not enabledMATCH (c:Computer) WHERE NOT c.haslapsEleveFaible

Detection Kerberoasting et DCSync par IA

L'agent IA peut non seulement identifier les vecteurs d'attaque offensifs mais aussi generer des recommandations de detection pour l'equipe blue team. La detection du Kerberoasting par IA analyse les patterns de tickets TGS anormaux : volume inhabituel, comptes avec SPN contactes en dehors des heures de bureau, tentatives de craquage offline detectees par honeypot.

Pour le DCSync, l'agent peut identifier les comptes ayant les droits DS-Replication-Get-Changes via les ACL AD, corréler avec les evenements Windows 4662 (acces objet AD), et generer des alertes SIEM-ready pour les tentatives de replication non legitimes. Ces capacites de detection blue team derivées de l'analyse offensive font du meme agent un outil precieux pour les exercices purple team.

La detection des attaques AD dans un SOC est couverte dans notre article sur le SOC augmente par IA. Pour les techniques d'attaque AD avancees, les attaques adversariales complement ce guide.

Identification automatique des ACL abuses critiques

Les ACL abuses Active Directory representent la categorie de vulnerabilites la plus difficile a identifier manuellement et la plus impactante en termes de privilege escalation. Un agent IA peut automatiser l'analyse complete des ACL critiques en combinant des requetes Cypher sur le graphe BloodHound et un raisonnement LLM pour prioriser les findings par impact reel. Les ACL dangereuses incluent GenericAll (controle total sur un objet), GenericWrite (modification des attributs), WriteDACL (modification des permissions), WriteOwner (changement du proprietaire), AllExtendedRights (inclusion des acces comme Reset Password, DCSync). La detection via BloodHound identifie ces relations, mais le LLM ajoute la couche de priorisation contextuelle : un GenericAll accorde a un utilisateur standard est bien plus critique qu'un GenericAll accorde a un groupe de gestion IT deja connu. L'agent peut egalement identifier les ACL en cascade : l'utilisateur A a WriteOwner sur le groupe B, qui a GenericAll sur le compte C, qui est admin local sur la machine D ou se connecte regulierement l'administrateur de domaine E. Ce type de chaine multi-hop est pratiquement impossible a identifier manuellement dans un AD de taille enterprise, c'est precisement la que l'agent IA apporte une valeur transformatrice. Pour les aspects de detection de ces abus, consultez notre article sur la gestion des incidents qui couvre les indicateurs de compromission AD.

Integration avec les outils ADCS -- PKI attack paths

L'Active Directory Certificate Services (ADCS) est devenu l'un des vecteurs d'attaque les plus prolifiques des environnements Windows depuis la publication du travail de Will Schroeder et Lee Christensen sur les ESC1-ESC13. L'agent IA peut integrer l'analyse ADCS via des outils comme Certipy et les extensions BloodHound ADCS pour identifier les templates de certificats vulnerables, les Enterprise CAs mal configures, et les chemins d'attaque ADCS to Domain Admin. L'analyse LLM des findings ADCS est particulierement precieuse car la complexite de ces attaques (EDITF_ATTRIBUTESUBJECTALTNAME2, CA misconfigurations, template enrollment rights) est difficile a apprehender sans une expertise specialisee. Le LLM peut expliquer en termes simples : "Le template UserAuthentication permet a tout utilisateur du domaine de demander un certificat avec un SAN arbitraire, permettant d'usurper l'identite de n'importe quel utilisateur incluant les administrateurs de domaine." Cette capacite d'explication democratise l'audit ADCS, le rendant accessible a des pentesters n'ayant pas une expertise profonde sur ces techniques. La documentation Certipy et les requetes BloodHound ADCS de Bloodhound-python fournissent les bases de donnees de requetes complementaires. Ces vecteurs d'attaque PKI sont particulierement importants a documenter dans votre PSSI.

Defenses et contre-mesures blue team

L'agent IA d'audit AD genere automatiquement des recommandations de remediation pour chaque finding. Les contre-mesures prioritaires incluent :

  • Kerberoasting : utiliser gMSA (group Managed Service Accounts) pour eliminer les mots de passe statiques sur les comptes de service, activer Protected Users sur les comptes privilegies
  • DCSync : auditer et restreindre les droits DS-Replication, activer la detection via Sentinel/Splunk sur les events 4662
  • Unconstrained Delegation : migrer vers Constrained ou Resource-Based Constrained Delegation, identifier et eliminer les machines avec unconstrained delegation non justifiee
  • ACL abuse : utiliser BloodHound en mode defensif pour monitorer les changements d'ACL critiques en temps reel
  • Tier model : implementer le modele de tiering AD (Tier 0/1/2) pour limiter le blast radius d'une compromission

Configuration avancee de l'agent -- outils additionnels

L'agent IA d'audit AD peut etre enrichi avec des outils additionnels pour couvrir des vecteurs d'attaque specifiques. L'integration de PowerView via un outil de PowerShell remoting permet d'obtenir des informations supplementaires non accessibles via BloodHound seul : GPO misconfigurations, shares world-readable, comptes avec mots de passe ne expirant jamais, ou utilisateurs avec AdminCount=1 non membres des groupes privilegies (orphan admincount). L'integration de CrackMapExec (CME) ou NetExec permet de tester automatiquement les comptes identifies comme Kerberoastables pour des patterns de mots de passe faibles. L'integration de Bloodhound-import avec des donnees de collecte supplementaires (ADCS, Azure AD Connect) etend la visibilite du graphe aux vecteurs d'attaque hybrides, de plus en plus prevalents dans les environnements enterprise modernes qui combinent AD on-premise et Azure AD/Entra ID. Pour les environnements hybrides, l'agent peut identifier les chemins d'attaque qui transitent par Azure AD Connect pour pivoter du cloud vers l'AD on-premise via la fonctionnalite PHS (Password Hash Sync). La documentation MITRE ATT&CK (attack.mitre.org TA0004) fournit le cadre de reference pour la classification des techniques d'escalade de privileges que l'agent IA doit documenter dans son rapport. Les aspects de detection et de response aux attaques AD sont complementaires aux outils de pentest : consultez notre guide sur la gestion des incidents de securite pour la phase de reponse.

Reporting automatise -- du graphe au rapport executif

L'une des contributions les plus valorisees de l'agent IA d'audit AD est la generation automatique de rapports a plusieurs niveaux de detail. Le rapport technique detaille chaque finding avec sa requete Cypher source, les objets AD impliques et les etapes d'exploitation. Le rapport executif, genere par le meme LLM avec un prompt different, traduit ces findings en risques business comprehensibles pour un COMEX : "Un attaquant acces a n'importe quel poste utilisateur peut obtenir les droits d'administrateur de domaine en 3 etapes, compromettant potentiellement l'ensemble des 2500 postes et serveurs de l'organisation". Cette capacite de traduction technique/business est particulierement precieuse dans les engagements de red teaming ou le livrable final doit convaincre le management d'investir dans des mesures de remediation potentiellement couteuses. L'agent peut egalement generer automatiquement des tickets Jira ou des fiches de remediation au format Word pour chaque finding, avec les etapes techniques de remediation adaptees au contexte specifique de l'organisation. Pour l'integration dans un cadre de gouvernance formel, notre guide ISO 27001 fournit les templates de documentation requis.

Cadre legal et prerequis pentest mandate

L'utilisation d'un agent IA d'audit Active Directory est soumise aux memes contraintes legales que tout audit de securite offensif. Le code penal français (articles 323-1 a 323-7) sanctionne l'acces non autorise a des systemes informatiques de peines pouvant aller jusqu'a 5 ans d'emprisonnement et 150 000 euros d'amende. Un mandat ecrit explicite du responsable legal de l'organisation est indispensable avant tout deploiement. Ce mandat doit preciser le perimetre exact (domaines AD inclus, plages IP autorisees, periodes d'autorisation), les techniques autorisees (collecte passive uniquement, ou tests actifs), les contacts d'urgence en cas d'incident et les obligations de confidentialite. Notre guide du pentest et test d'intrusion detaille le cadre contractuel et legal complet pour ces engagements.

Évaluer la sécurité de vos agents IA

Les agents IA autonomes introduisent des vecteurs d'attaque nouveaux que les audits classiques ne couvrent pas. Notre audit de sécurité IA évalue spécifiquement les risques liés aux LLM, agents autonomes et pipelines RAG déployés en entreprise : prompt injection, privilege escalation, fuite de données, conformité AI Act. Voir aussi notre guide sur l'Agentic AI en entreprise et les checklists de sécurité agentic AI.