Attribution causale : une défense émergente contre l'injection indirecte
Un ensemble de papers début 2026 — CausalArmor et AttriGuard — défend les agents à outils en demandant quelles actions sont causalement provoquées par du contenu non fiable plutôt que par l'utilisateur. Tour d'horizon de la défense par attribution causale.
De quoi s’agit-il ?
L’injection indirecte de prompt (IPI) dissimule des instructions dans le contenu qu’un agent lit — une page web, un e-mail, un document RAG, le résultat d’un outil — pour que l’agent exécute le texte de l’attaquant comme s’il s’agissait d’une instruction légitime. Greshake et al. ont décrit cette classe d’attaque en 2023 (arXiv 2302.12173), et elle figure toujours en tête de l’OWASP Top 10 for LLM Applications. Ce qui est nouveau, c’est l’angle défensif.
Entre février et avril 2026, plusieurs équipes de recherche ont convergé — par des chemins différents — vers la même idée : plutôt que de chercher à reconnaître des chaînes malveillantes, demander si un appel d’outil donné s’explique causalement par la requête de l’utilisateur, ou par le contenu non fiable que l’agent vient d’ingérer. Cet article couvre cette défense émergente par « attribution causale », autour de deux papers représentatifs — CausalArmor (arXiv 2602.07918, 8 fév. 2026) et AttriGuard (arXiv 2603.10749, 11 mars 2026) — et de l’évaluation qui en explique la nécessité, « Your Agent is More Brittle Than You Think » (arXiv 2604.03870, avr. 2026).
Comment ça marche
L’intuition commune est un contrefactuel : une action légitime devrait rester expliquée par l’instruction de l’utilisateur même si l’on retire ou neutralise l’observation non fiable. Une action qui n’apparaît qu’après que l’agent a lu du contenu contrôlé par l’attaquant est suspecte.
Action proposée par l'agent
|
+-----------------+------------------+
| |
Réévaluer avec l'observation L'action est-elle toujours produite ?
non fiable atténuée / retirée ├── oui → attribuée à l'INTENTION utilisateur → autoriser
└── non → attribuée au SPAN non fiable → bloquer / nettoyer
CausalArmor met cela en œuvre via une ablation « leave-one-out » légère aux points de décision privilégiés. Il évalue la contribution de chaque segment non fiable à l’action suivante et ne déclenche la sanitization que lorsqu’un segment non fiable domine l’intention de l’utilisateur, au lieu d’un filtrage permanent coûteux. Il ajoute un masquage rétroactif de la chaîne de raisonnement, afin que l’agent ne continue pas d’agir sur un raisonnement déjà empoisonné par du texte injecté. Les auteurs l’évaluent sur AgentDojo et DoomArena.
AttriGuard formule la même intuition comme une attribution causale au niveau de l’action, via des tests contrefactuels parallèles : pour chaque appel d’outil proposé, il rejoue l’agent sous une vue « à contrôle atténué » des observations externes et vérifie si l’appel est toujours produit. Les appels qui subsistent sont attribués à l’intention utilisateur ; ceux qui disparaissent sont attribués à l’observation non fiable et stoppés.
Aucun payload n’est reproduit ici — c’est le mécanisme, et non une chaîne d’injection particulière, qui nous intéresse.
Pourquoi c’est important
Le papier sur la fragilité fournit l’urgence. En évaluant six défenses face à quatre vecteurs d’IPI sur neuf modèles de base, dans des environnements dynamiques et multi-étapes à appels d’outils, il constate que des défenses qui paraissent solides sur des benchmarks mono-tour se dégradent dans des boucles d’agent réalistes. Les filtres par correspondance de chaînes ou par classifieur sont régulièrement contournés par des payloads riches en raisonnement ou jamais vus auparavant.
L’attribution causale séduit parce qu’elle vise le mécanisme — du contenu non fiable a-t-il provoqué cette action ? — plutôt que la surface — ce texte a-t-il l’air malveillant ? Un attaquant peut reformuler un payload pour échapper à un classifieur bien plus facilement qu’il ne peut faire passer une instruction injectée pour la requête propre de l’utilisateur.
Deux compromis méritent d’être énoncés clairement. Coût : AttriGuard rapporte un coût en tokens d’environ 2× dû à la réexécution contrefactuelle ; l’argument de CausalArmor est justement d’éviter le coût permanent en n’agissant que lorsque l’attribution signale un span non fiable dominant. Couverture : les chiffres affichés de taux de succès d’attaque à 0 % sont mesurés sous attaques statiques sur des benchmarks précis. Les attaquants adaptatifs qui façonnent délibérément leurs payloads pour survivre à l’ablation — de sorte que l’action malveillante paraisse « nécessaire » même sous atténuation — restent une question de recherche ouverte.
Défenses
L’attribution causale est une couche, pas une solution miracle. Une pile pratique :
- Étiqueter la provenance. Marquer comme non fiable par défaut chaque span que l’agent lit (sortie d’outil, document récupéré, page web) et conserver cette étiquette tout au long du raisonnement.
- Ajouter un contrôle contrefactuel aux actions privilégiées. Avant les appels d’outils à fort impact (envoyer, supprimer, payer, exfiltrer), réévaluer si l’action survit lorsque les observations non fiables sont atténuées, comme le font CausalArmor et AttriGuard.
- Masquer le raisonnement empoisonné. Empêcher l’agent de continuer à agir sur une chaîne de raisonnement déjà contaminée par du texte injecté.
- Garder en vue le moindre privilège et le triptyque létal. L’attribution réduit le risque ; couper l’accès de l’agent aux données privées, au contenu non fiable ou à un canal d’exfiltration le supprime.
- Coupler avec les défenses par graphe de provenance. Des approches comme Argus suivent les flux de données ; l’attribution causale raisonne sur la nécessité de l’action. Elles se complètent.
- Tester en boucles multi-étapes, pas en mono-tour. C’est la leçon du papier sur la fragilité : validez toute défense IPI dans l’environnement dynamique à appels d’outils où elle tournera réellement.
Statut
| Travaux | Référence | Date | Contribution |
|---|---|---|---|
| CausalArmor | arXiv 2602.07918 | 2026-02-08 | Ablation « leave-one-out » + masquage du raisonnement ; sanitization sélective (non permanente) |
| AttriGuard | arXiv 2603.10749 | 2026-03-11 | Attribution causale au niveau de l’action par réexécution contrefactuelle ; ~0 % ASR (statique), ~3 % de perte d’utilité, ~2× tokens |
| Your Agent is More Brittle Than You Think | arXiv 2604.03870 | 2026-04 | 6 défenses × 4 vecteurs IPI × 9 LLM en multi-étapes ; montre que les défenses mono-tour se dégradent en boucle d’agent |
| Injection indirecte de prompt (origine) | arXiv 2302.12173 | 2023-02 | Première description systématique de la classe IPI |
À retenir : non, l’IPI n’est pas « résolue ». Mais la frontière défensive se déplace de la détection de texte malveillant vers l’attribution de chaque action à sa cause — et toute défense adoptée devrait être mesurée dans un agent réaliste, multi-étapes, car c’est là que les défenses fragiles cèdent.