Table des Matières
- 1.Le Défi du SOC Moderne : Alert Fatigue et Pénurie de Talents
- 2.Architecture d'un SOC Augmenté par IA
- 3.Triage Automatisé : De l'Alerte à l'Incident
- 4.Agent d'Enrichissement Contextuel
- 5.Qualification et Escalade Intelligente
- 6.Cas Concrets : Phishing, Brute Force, Lateral Movement
- 7.Déploiement et Métriques de Succès
1Le Défi du SOC Moderne : Alert Fatigue et Pénurie de Talents
En 2026, un Security Operations Center (SOC) de taille moyenne traite entre 10 000 et 50 000 alertes par jour. Les sources se multiplient : SIEM, EDR, NDR, WAF, CASB, pare-feux, proxies, solutions CSPM. Chaque outil génère son propre flux de télémétrie, et la corrélation entre ces flux reste un défi majeur. Le résultat est un déluge d'alertes qui submerge les équipes d'analystes, provoquant un phénomène désormais bien documenté : l'alert fatigue.
Le fléau de l'alert fatigue
Selon les études de l'ISC2 et du SANS Institute publiées début 2026, 70 à 80 % des alertes SOC sont des faux positifs. Un analyste SOC L1 passe en moyenne 15 à 25 minutes sur chaque alerte pour la qualifier, l'enrichir et décider de son escalade. Avec un volume quotidien de milliers d'alertes, le calcul est simple : les équipes ne peuvent physiquement pas traiter l'intégralité du flux. Les conséquences sont directes et mesurables :
- ▹Alertes ignorées ou fermées sans investigation : jusqu'à 30 % des alertes sont clôturées par défaut aux heures de pointe, créant des angles morts exploitables par les attaquants.
- ▹Temps de détection allongé (MTTD) : le délai moyen entre l'intrusion et sa détection reste à 204 jours selon le rapport IBM X-Force 2026, en partie à cause du bruit dans les alertes.
- ▹Turnover critique des analystes : le taux de rotation des analystes SOC L1 atteint 35 % par an, alimenté par la monotonie des tâches répétitives et le stress lié au volume.
- ▹Pénurie mondiale de talents : le déficit de professionnels en cybersécurité dépasse les 4 millions de postes non pourvus en 2026, rendant le recrutement SOC extrêmement compétitif.
Pourquoi l'IA est devenue indispensable
Face à cette équation impossible -- plus d'alertes, moins d'analystes, des attaquants plus sophistiqués --, l'intelligence artificielle n'est plus un luxe mais une nécessité opérationnelle. Les approches traditionnelles d'automatisation par règles statiques (playbooks SOAR déterministes) ont montré leurs limites : elles ne couvrent que les scénarios anticipés et nécessitent une maintenance constante face à l'évolution des techniques d'attaque.
L'émergence des agents IA basés sur des LLM (Large Language Models) ouvre une nouvelle ère pour le SOC. Contrairement aux règles statiques, un agent IA peut raisonner sur le contexte, interpréter des alertes ambiguës, corréler des signaux faibles provenant de sources hétérogènes, et prendre des décisions de triage nuancées. Le marché des solutions IA pour le SOC a connu une croissance de 145 % entre 2024 et 2026, avec des acteurs comme Microsoft Security Copilot, Google SecOps Gemini, et des startups spécialisées comme Torq, Swimlane et Tines qui intègrent des capacités d'agents IA dans leurs plateformes SOAR.
L'objectif n'est pas de remplacer l'analyste humain, mais de créer un binôme analyste-agent où l'IA prend en charge le triage initial (80 % du volume), l'enrichissement systématique et la pré-qualification, permettant à l'analyste de se concentrer sur les incidents complexes nécessitant un jugement expert, l'investigation approfondie et la réponse stratégique.
2Architecture d'un SOC Augmenté par IA
L'intégration d'agents IA dans un SOC existant nécessite une architecture de référence pensée pour la résilience, l'observabilité et la coexistence avec les outils déjà en place. Il ne s'agit pas de tout remplacer, mais d'insérer une couche de raisonnement intelligente entre les sources de données et les processus de réponse.
Les composants de l'architecture
L'architecture d'un SOC augmenté par IA s'articule autour de cinq couches fonctionnelles qui interagissent de manière bidirectionnelle :
- ▹Couche de collecte (SIEM) : Splunk, Elastic Security, Microsoft Sentinel ou Google SecOps ingèrent les logs et génèrent les alertes brutes via des règles de détection (Sigma, KQL, SPL).
- ▹Couche d'orchestration (SOAR) : Cortex XSOAR, Shuffle, Tines ou Swimlane exposent des API pour déclencher des playbooks et intégrer les actions de l'agent IA.
- ▹Couche de raisonnement (Agent IA) : un ou plusieurs agents LLM orchestrés via LangGraph ou CrewAI, équipés d'outils pour interroger les APIs de threat intelligence, le SIEM, l'Active Directory et les bases de vulnérabilités.
- ▹Couche d'enrichissement (CTI) : VirusTotal, AbuseIPDB, Shodan, MISP, OpenCTI fournissent le contexte nécessaire à la qualification des observables (IOCs).
- ▹Couche de décision (Human-in-the-Loop) : interface de validation pour les analystes L2/L3, avec présentation du raisonnement de l'agent et possibilité de feedback pour amélioration continue.
Intégration SIEM et choix du LLM
Le choix du SIEM conditionne la stratégie d'intégration de l'agent. Splunk offre une API REST mature et le langage SPL permet des requêtes complexes que l'agent peut générer dynamiquement. Elastic Security expose une API de recherche ES|QL et des règles de détection au format TOML facilement parsables. Microsoft Sentinel propose une intégration native avec Azure OpenAI et des connecteurs Logic Apps pour le SOAR. Pour le LLM, les modèles les plus adaptés au SOC en 2026 sont GPT-4o pour sa rapidité et son rapport coût-performance, Claude Opus 4 pour sa capacité de raisonnement sur des contextes longs, et les modèles Mistral Large pour les déploiements on-premise exigeant la souveraineté des données.
Figure 1 - Architecture SOC augmenté par IA avec les cinq couches fonctionnelles et le workflow de triage automatisé
Cette architecture place l'agent IA comme couche intermédiaire entre le SIEM et le SOAR. L'agent ne remplace ni l'un ni l'autre : il consomme les alertes du SIEM, les enrichit via les APIs CTI, applique son raisonnement, puis déclenche les actions appropriées dans le SOAR ou escalade vers un analyste humain. Cette approche garantit une intégration progressive, sans rupture avec l'existant.
3Triage Automatisé : De l'Alerte à l'Incident
Le pipeline de triage est le coeur de l'agent SOC. Il reçoit une alerte brute du SIEM et doit produire une décision structurée : vrai positif, faux positif, ou nécessite investigation humaine. Ce processus s'appuie sur le pattern ReAct (Reasoning + Acting) qui alterne phases de réflexion et appels d'outils.
Le pipeline ReAct de triage
L'agent de triage implémente un graphe d'état LangGraph avec les noeuds suivants : parsing de l'alerte, extraction des observables (IOCs), enrichissement parallèle, analyse de contexte, scoring de risque, et décision finale. Chaque noeud produit un état intermédiaire persisté, permettant le replay et l'audit.
from typing import TypedDict, Annotated, Literal
from langgraph.graph import StateGraph, END
from langchain_openai import ChatOpenAI
import operator
# État du pipeline de triage
class TriageState(TypedDict):
alert_raw: dict # Alerte brute du SIEM
observables: Annotated[list, operator.add] # IOCs extraits
enrichments: dict # Résultats CTI
mitre_mapping: list # Techniques ATT&CK
risk_score: float # Score 0-100
classification: str # VP / FP / NEEDS_REVIEW
severity: str # critical/high/medium/low
reasoning: str # Explication de la décision
actions: list # Actions SOAR à exécuter
llm = ChatOpenAI(model="gpt-4o", temperature=0)
# Noeud 1 : Extraction des observables
def extract_observables(state: TriageState) -> dict:
alert = state["alert_raw"]
prompt = f"""Extrais tous les IOCs de cette alerte SIEM:
{alert}
Retourne: IPs, domaines, hashes, URLs, users, hosts."""
response = llm.invoke(prompt)
return {"observables": parse_iocs(response.content)}
# Noeud 2 : Enrichissement multi-sources
def enrich_observables(state: TriageState) -> dict:
results = {}
for ioc in state["observables"]:
results[ioc["value"]] = {
"virustotal": query_vt(ioc),
"abuseipdb": query_abuseipdb(ioc),
"shodan": query_shodan(ioc),
"greynoise": query_greynoise(ioc),
}
return {"enrichments": results}
# Noeud 3 : Mapping MITRE ATT&CK
def map_mitre(state: TriageState) -> dict:
prompt = f"""Associe cette alerte aux techniques MITRE ATT&CK:
Alerte: {state['alert_raw']['rule_name']}
Enrichissements: {state['enrichments']}
Retourne les technique IDs et tactiques."""
response = llm.invoke(prompt)
return {"mitre_mapping": parse_mitre(response.content)}
# Noeud 4 : Décision de classification
def classify_alert(state: TriageState) -> dict:
prompt = f"""Tu es un analyste SOC L2 expert.
Alerte: {state['alert_raw']}
IOCs enrichis: {state['enrichments']}
MITRE: {state['mitre_mapping']}
Classifie: TRUE_POSITIVE, FALSE_POSITIVE, NEEDS_REVIEW
Assigne une sévérité: critical, high, medium, low
Score de risque: 0-100
Explique ton raisonnement."""
response = llm.invoke(prompt)
return parse_classification(response.content)
# Construction du graphe
graph = StateGraph(TriageState)
graph.add_node("extract", extract_observables)
graph.add_node("enrich", enrich_observables)
graph.add_node("mitre", map_mitre)
graph.add_node("classify", classify_alert)
graph.set_entry_point("extract")
graph.add_edge("extract", "enrich")
graph.add_edge("enrich", "mitre")
graph.add_edge("mitre", "classify")
graph.add_edge("classify", END)
triage_agent = graph.compile()
Classification et scoring de risque
Le scoring de risque combine plusieurs signaux pondérés pour produire un score composite sur 100. Les facteurs incluent : la réputation des IOCs (score VirusTotal, AbuseIPDB confidence score), la criticité de l'asset touché (serveur de production vs poste de développement), l'historique d'alertes similaires sur les 30 derniers jours, le mapping MITRE ATT&CK (les techniques associées à des APT connus reçoivent un bonus de score), et le contexte temporel (une connexion RDP à 3h du matin depuis un pays inhabituel pèse plus lourd que le même événement en heures ouvrées).
Les seuils de classification sont configurables par organisation : typiquement, un score supérieur à 75 déclenche une classification vrai positif critique avec escalade immédiate, entre 50 et 75 l'alerte est classée vrai positif à investiguer, entre 25 et 50 elle est marquée nécessite revue humaine, et en dessous de 25 elle est considérée faux positif et auto-clôturée avec journalisation complète du raisonnement.
Point critique : L'agent ne doit jamais auto-clôturer une alerte sans produire un raisonnement auditable. Chaque décision est accompagnée d'une explication structurée (observables analysés, enrichissements consultés, facteurs de décision) stockée dans le SIEM pour audit et conformité réglementaire (NIS2, DORA, ISO 27001).
4Agent d'Enrichissement Contextuel
L'enrichissement est l'étape qui transforme une alerte brute en intelligence actionnable. Un agent d'enrichissement contextuel ne se contente pas de requêter des APIs de threat intelligence : il construit un graphe de relations entre les observables, évalue la fiabilité de chaque source, et produit un résumé synthétique exploitable par l'analyste ou par l'agent de qualification en aval.
Enrichissement multi-sources
L'agent d'enrichissement orchestre des requêtes parallèles vers plusieurs sources complémentaires. Pour une adresse IP suspecte, le pipeline d'enrichissement interroge simultanément : VirusTotal (détections par moteurs AV, résolutions DNS historiques, certificats SSL associés), AbuseIPDB (score de confiance d'abus, catégories de rapport, ISP), Shodan (ports ouverts, bannières de services, vulnérabilités CVE), GreyNoise (classification bruit Internet vs ciblé), WHOIS (date d'enregistrement du domaine, registrar, pays), et MISP/OpenCTI (corrélation avec des campagnes connues et des IOCs communautaires).
import asyncio
from typing import Dict, List
from langchain.tools import tool
@tool
async def enrich_ip(ip: str) -> Dict:
"""Enrichit une IP via toutes les sources CTI."""
tasks = [
query_virustotal_ip(ip),
query_abuseipdb(ip),
query_shodan_host(ip),
query_greynoise(ip),
query_whois(ip),
query_misp_search(ip),
]
results = await asyncio.gather(*tasks, return_exceptions=True)
return {
"ip": ip,
"virustotal": results[0] if not isinstance(results[0], Exception) else None,
"abuseipdb": results[1] if not isinstance(results[1], Exception) else None,
"shodan": results[2] if not isinstance(results[2], Exception) else None,
"greynoise": results[3] if not isinstance(results[3], Exception) else None,
"whois": results[4] if not isinstance(results[4], Exception) else None,
"misp": results[5] if not isinstance(results[5], Exception) else None,
}
@tool
def build_relation_graph(enrichments: Dict) -> Dict:
"""Construit un graphe de relations IP-Domaine-Cert-ASN."""
graph = {"nodes": [], "edges": []}
# IP -> Domaines (résolution DNS)
for resolution in enrichments["virustotal"].get("resolutions", []):
graph["nodes"].append({"type": "domain", "value": resolution["hostname"]})
graph["edges"].append({"from": enrichments["ip"], "to": resolution["hostname"], "type": "resolves_to"})
# Domaine -> Certificat SSL
for cert in enrichments["virustotal"].get("ssl_certificates", []):
graph["nodes"].append({"type": "certificate", "value": cert["thumbprint"]})
graph["edges"].append({"from": cert["subject"], "to": cert["thumbprint"], "type": "has_cert"})
# IP -> ASN
asn = enrichments["shodan"].get("asn", "unknown")
graph["nodes"].append({"type": "asn", "value": asn})
graph["edges"].append({"from": enrichments["ip"], "to": asn, "type": "belongs_to"})
return graph
Scoring de risque dynamique
Le scoring dynamique agrège les signaux de toutes les sources avec des pondérations adaptatives. Contrairement à un score statique basé sur des seuils fixes, l'agent ajuste les poids en fonction du contexte. Par exemple, le score AbuseIPDB a plus de poids pour une alerte de type brute force que pour une alerte de data exfiltration. Le score VirusTotal est prépondérant pour les alertes impliquant des hashes de fichiers. GreyNoise permet de distinguer le bruit Internet des attaques ciblées : une IP classifiée comme "benign scanner" par GreyNoise verra son score de menace réduit, tandis qu'une IP "unknown" associée à des détections VirusTotal positives sera fortement pondérée.
Le graphe de relations enrichit encore la décision. Si une IP suspecte résout vers un domaine enregistré il y a moins de 7 jours, hébergé sur un ASN connu pour l'hébergement bulletproof, avec un certificat Let's Encrypt auto-signé, ces signaux corrélés augmentent significativement le score de risque même si chaque indicateur individuel resterait en zone grise.
5Qualification et Escalade Intelligente
La qualification est la phase décisionnelle où l'agent transforme son analyse en actions concrètes. Il ne suffit pas de classifier une alerte en vrai ou faux positif : l'agent doit décider du niveau d'escalade, générer un ticket structuré, proposer des actions de containment, et déclencher les playbooks SOAR appropriés.
Décision automatisée et playbooks dynamiques
L'agent de qualification implémente une matrice de décision contextuelle qui dépasse les simples seuils de score. Pour chaque classification, il évalue un ensemble de règles de business logic spécifiques à l'organisation :
- ▹Assets critiques : toute alerte impliquant un contrôleur de domaine, un serveur de base de données de production, ou un système SCADA est automatiquement escaladée en priorité P1, indépendamment du score de risque.
- ▹Utilisateurs VIP : les comptes C-Level, les administrateurs de domaine et les comptes de service critiques déclenchent une escalade L2 systématique avec notification SMS.
- ▹Corrélation temporelle : si 5+ alertes impliquant le même host ou le même utilisateur sont détectées en moins de 15 minutes, l'agent déclenche un playbook de containment préventif (isolation réseau) en attendant la validation L2.
- ▹Kill chain progression : si l'agent détecte une progression dans la kill chain ATT&CK (reconnaissance, puis accès initial, puis mouvement latéral), il agrège les alertes en un incident unique et escalade avec le contexte complet de la chaîne d'attaque.
Génération automatique de tickets et escalade contextuelle
Lorsqu'un incident est confirmé, l'agent génère automatiquement un ticket ITSM structuré dans ServiceNow, Jira Service Management ou GLPI. Le ticket inclut : le résumé de l'alerte, les IOCs enrichis, le mapping MITRE ATT&CK, le score de risque, les actions de containment recommandées, et le raisonnement complet de l'agent. L'escalade vers les analystes L2/L3 est accompagnée d'un briefing contextuel généré par le LLM, qui résume en langage naturel les éléments clés et les hypothèses d'investigation à privilégier.
Figure 2 - Flow complet de qualification avec les trois branches de décision et intégration SIEM/SOAR
L'intégration avec le SOAR permet à l'agent de déclencher des playbooks dynamiques adaptés au type d'incident. Contrairement aux playbooks statiques classiques qui exécutent toujours la même séquence, les playbooks pilotés par l'agent IA sélectionnent les actions pertinentes en fonction du contexte spécifique de l'alerte. Un incident de phishing confirmé déclenchera le blocage de l'URL malveillante sur le proxy, la purge des emails similaires dans les boîtes de réception, la vérification des clics utilisateurs et le reset préventif des mots de passe compromis. Un incident de mouvement latéral déclenchera l'isolation réseau du host, l'audit des connexions SMB/RDP récentes et la revue des comptes de service utilisés.
6Cas Concrets : Phishing, Brute Force, Lateral Movement
Pour illustrer concrètement le fonctionnement de l'agent SOC, examinons trois scénarios réels en détaillant les étapes de raisonnement ReAct, les outils appelés et les décisions prises à chaque étape.
Scénario 1 : Phishing ciblé avec payload malveillant
Alerte SIEM : "Email gateway - Suspicious attachment detected - hash: a3f2b7...c9e1 - recipient: direction.financiere@corp.fr - sender: facture-urgent@doc-secure.xyz"
Raisonnement de l'agent :
- ▹Thought 1 : L'alerte concerne un email avec pièce jointe suspecte envoyé à la direction financière. Le domaine expéditeur semble usurper un service légitime. Je dois vérifier le hash, le domaine et identifier la cible.
- ▹Action 1 : Appel VirusTotal (hash a3f2b7...c9e1). Résultat : 47/72 moteurs positifs, famille "AgentTesla", première soumission il y a 2 heures. Appel WHOIS (doc-secure.xyz). Résultat : domaine enregistré il y a 48h via Namecheap, registrant anonymisé.
- ▹Thought 2 : Hash confirmé malveillant (AgentTesla = infostealer). Domaine fraîchement créé, indicateur fort de phishing. La cible est la direction financière, asset critique (VIP). Le score de risque est élevé.
- ▹Action 2 : Requête SIEM - vérification si l'email a été ouvert et si la pièce jointe a été exécutée. Résultat : email ouvert, pièce jointe téléchargée mais pas encore exécutée selon l'EDR.
- ▹Décision : TRUE_POSITIVE, sévérité CRITICAL, score 92/100. Actions SOAR : blocage domaine sur proxy, purge email dans toutes les boîtes, isolation préventive du poste de la direction financière, notification SMS équipe L2, ticket P1 avec mapping MITRE T1566.001 (Spearphishing Attachment).
Scénario 2 : Brute force SSH depuis IP externe
Alerte SIEM : "Failed SSH login attempts > 50 in 5 min - source: 185.220.101.34 - target: srv-web-prod-01 - user: root"
Raisonnement de l'agent :
- ▹Thought 1 : 50+ tentatives SSH échouées en 5 minutes depuis une IP externe vers un serveur de production. Pattern typique de brute force. Je dois qualifier l'IP source et vérifier si une tentative a réussi.
- ▹Action 1 : Appel AbuseIPDB (185.220.101.34). Résultat : score 100/100, 15 234 rapports, catégorie "Brute-Force". Appel GreyNoise. Résultat : classification "malicious", tag "SSH Bruteforcer", connu depuis 6 mois, noeud Tor exit.
- ▹Thought 2 : IP confirmée malveillante et connue pour le brute force. C'est un noeud Tor exit, donc attaque opportuniste non ciblée. Mais la cible est un serveur de production. Je vérifie s'il y a eu un succès.
- ▹Action 2 : Requête SIEM - "source=185.220.101.34 action=success". Résultat : 0 connexion réussie. Vérification que SSH root est désactivé dans la config. Résultat : PermitRootLogin=no confirmé.
- ▹Décision : TRUE_POSITIVE mais sévérité LOW, score 35/100. L'attaque est réelle mais opportuniste, automatisée, sans succès, et la configuration SSH est robuste. Actions SOAR : ajout IP en blocklist firewall pendant 30 jours, fermeture alerte avec raisonnement documenté. Pas d'escalade nécessaire. Recommandation ajoutée : vérifier que fail2ban est actif sur tous les serveurs SSH exposés.
Scénario 3 : Mouvement latéral post-compromission
Alerte SIEM : "Unusual SMB/RPC activity - source: WKS-MARKETING-07 - targets: SRV-DC-01, SRV-FILE-01, SRV-SQL-PROD - user: svc-backup - time: 02:47 AM"
Raisonnement de l'agent :
- ▹Thought 1 : Activité SMB/RPC inhabituelle depuis un poste marketing vers le DC, le serveur de fichiers et la base SQL de production. Le compte svc-backup est un compte de service. Heure suspecte : 2h47. Signaux multiples d'alerte.
- ▹Action 1 : Requête SIEM historique - activité normale de WKS-MARKETING-07 et de svc-backup sur 30 jours. Résultat : ce poste n'a jamais contacté le DC directement, et svc-backup ne se connecte normalement qu'à SRV-BACKUP-01 entre 22h et 23h.
- ▹Thought 2 : Déviation majeure du comportement baseline. Un compte de service utilisé depuis un poste utilisateur vers des cibles critiques en dehors de ses horaires habituels. Pattern classique de lateral movement avec credentials volés. Je vérifie les alertes précédentes sur ce poste.
- ▹Action 2 : Requête SIEM - alertes sur WKS-MARKETING-07 dernières 72h. Résultat : 1 alerte EDR "Suspicious PowerShell execution" il y a 36h, classifiée FP par un analyste L1. Corrélation kill chain détectée : T1059.001 (PowerShell) -> T1021.002 (SMB/Windows Admin Shares) -> ciblage DC = probable T1003 (Credential Dumping) en préparation.
- ▹Décision : TRUE_POSITIVE, sévérité CRITICAL, score 96/100. Kill chain active détectée. Actions SOAR immédiates : isolation réseau WKS-MARKETING-07, désactivation temporaire svc-backup dans l'AD, blocage des sessions SMB depuis ce poste sur les cibles, escalade P1 avec war room, ticket avec timeline complète et mapping MITRE (T1059.001, T1078.002, T1021.002). Recommandation : re-investiguer l'alerte PowerShell de 36h classifiée FP - probable point d'entrée initial.
Leçon clé du scénario 3 : L'agent IA a corrélé une alerte apparemment isolée (activité SMB) avec un historique d'alertes précédentes pour reconstituer une kill chain complète. C'est précisément ce type de corrélation temporelle et contextuelle que les analystes humains submergés par le volume ont du mal à effectuer de manière systématique. L'agent a également identifié une erreur de classification antérieure (le FP PowerShell qui était en réalité un vrai positif), démontrant la valeur du raisonnement rétrospectif.
7Déploiement et Métriques de Succès
Le déploiement d'un agent IA en SOC de production nécessite une approche progressive et une instrumentation rigoureuse. Il ne s'agit pas de basculer du jour au lendemain vers un triage 100 % automatisé, mais de construire la confiance graduellement en mesurant l'impact à chaque étape.
Phases de déploiement
Le déploiement s'organise en quatre phases sur une période de 8 à 12 semaines :
- ▹Phase 1 - Shadow Mode (Semaines 1-3) : L'agent analyse toutes les alertes en parallèle des analystes humains mais ne prend aucune action. Ses décisions sont comparées aux décisions humaines pour mesurer le taux de concordance. Objectif : atteindre 90 %+ de concordance sur les faux positifs.
- ▹Phase 2 - Assisted Mode (Semaines 4-6) : L'agent pré-trie les alertes et propose ses recommandations aux analystes L1 qui valident ou corrigent. Chaque correction alimente la boucle de feedback pour affiner les prompts et les seuils. Objectif : réduire le temps de triage L1 de 50 %.
- ▹Phase 3 - Semi-Autonomous (Semaines 7-9) : L'agent auto-clôture les faux positifs à haute confiance (score < 15) et pré-qualifie les vrais positifs. Seuls les cas ambigus (score 25-50) sont présentés aux analystes. Objectif : réduire le volume d'alertes manuelles de 70 %.
- ▹Phase 4 - Full Autonomous Triage (Semaines 10-12) : L'agent gère l'intégralité du triage L1 avec escalade automatique vers L2/L3. Les analystes L1 sont repositionnés sur des tâches à plus haute valeur ajoutée : threat hunting, amélioration des règles de détection, investigation proactive.
KPIs et métriques de succès
Les métriques clés pour évaluer l'efficacité de l'agent SOC couvrent cinq dimensions :
- ▹MTTD (Mean Time To Detect) : temps moyen entre l'intrusion et sa détection. Cible : réduction de 60 % par rapport au baseline pré-IA, passant typiquement de 204 jours à moins de 80 jours pour les menaces avancées, et de quelques heures à quelques minutes pour les menaces connues.
- ▹MTTR (Mean Time To Respond) : temps moyen entre la détection et la réponse. Cible : moins de 5 minutes pour les incidents critiques avec containment automatisé, contre 45 minutes en moyenne sans IA.
- ▹Taux de faux positifs résiduels : pourcentage de FP qui arrivent aux analystes L2. Cible : moins de 5 %, contre 70 % sans triage IA.
- ▹Taux de faux négatifs : la métrique critique. Pourcentage de vrais positifs auto-clôturés par erreur. Cible : strictement inférieur à 0.1 %. Chaque faux négatif est analysé en post-mortem pour ajuster l'agent.
- ▹Coût par alerte : coût total de traitement d'une alerte (infrastructure IA + temps analyste + licences). Cible : réduction de 75 % du coût moyen par alerte, permettant de réinvestir le budget dans le threat hunting et les compétences avancées.
Conformité, audit trail et human-in-the-loop
Dans le contexte réglementaire européen de 2026 (NIS2, DORA, AI Act), la traçabilité des décisions automatisées est impérative. Chaque décision de l'agent doit être accompagnée d'un audit trail complet incluant : l'alerte d'entrée, les observables extraits, les enrichissements consultés (avec timestamps et résultats), le raisonnement du LLM (chaîne de pensée complète), le score calculé et ses composantes, la décision finale et les actions déclenchées. Cet audit trail est stocké de manière immuable et indexé dans le SIEM pour répondre aux exigences de traçabilité des régulateurs.
Le human-in-the-loop reste indispensable pour trois cas de figure : les alertes en zone grise (score 30-50) où la confiance de l'agent est insuffisante, les incidents critiques (sévérité P1) qui nécessitent une validation humaine avant les actions de containment irréversibles, et les cas sans précédent où l'agent n'a pas de référence historique. Le feedback des analystes (confirmation ou correction de la décision de l'agent) alimente un pipeline de fine-tuning continu qui améliore progressivement la précision du système.
Monitoring de l'agent lui-même :
L'agent IA doit être monitoré comme tout composant critique du SOC. Les métriques d'infrastructure à surveiller incluent : la latence de traitement par alerte (cible < 30s), le taux d'erreur des appels API CTI, la consommation de tokens LLM (budget et anomalies), le taux de timeout, et la dérive de performance (drift) mesurée par la concordance avec les décisions humaines sur un échantillon hebdomadaire. Un dashboard dédié Grafana ou Datadog permet au SOC Manager de superviser la santé de l'agent en temps réel.