système : OPÉRATIONNEL
← retour à tous les hacks
DEFENSE MEDIUM NEW

WARD : un modèle de garde co-évolué qui tient face aux injections de prompt adaptatives sur agents web

Un papier de la NUS daté du 14 mai 2026 propose WARD — un modèle de garde entraîné contre un attaquant adversarial à mémoire — et rapporte un rappel quasi parfait hors-distribution sur l'injection de prompt en agent web.

2026-05-29 // 8 min affects: web-agents, browser-use, llama-guard-4, prompt-guard-1, gpt-oss-safeguard

What is this?

Le 14 mai 2026, Tri Cao, Yulin Chen, Hieu Cao, Yibo Li, Khoi Le, Thong Nguyen, Yuexin Li, Yufei He, Yue Liu, Shuicheng Yan et Bryan Hooi (National University of Singapore, avec des co-auteurs à University of Science et Vietnam National University, Ho Chi Minh City) ont publié sur arXiv WARD: Adversarially Robust Defense of Web Agents Against Prompt Injections (2605.15030). Le code et les modèles sont diffusés sous licence CC BY 4.0 sur github.com/caothientri2001vn/WARD-WebAgent.

WARD est un modèle de garde destiné aux agents web — un classifieur side-car qui tourne en parallèle d’un agent navigateur et qui signale les contenus d’injection de prompt embarqués dans le HTML ou les captures d’écran avant que l’agent ne s’en serve. La contribution est double : un jeu de données à grande échelle soigneusement étiqueté (WARD-Base, 177 585 échantillons sur 709 URL et 10 plateformes) et une procédure d’entraînement adversarial à deux boucles (A3T) qui durcit la garde face aux attaques conçues spécifiquement pour la contourner.

Le résultat phare de l’abstract est un « rappel quasi parfait sur les benchmarks hors-distribution, des taux de faux positifs faibles préservant l’utilité de l’agent, [et] une robustesse face aux attaques ciblant la garde et adaptatives sous des décalages de distribution importants », le tout « tournant en parallèle de l’agent sans introduire de latence supplémentaire ».

How it works

Le jeu de données et la boucle d’entraînement sont les éléments les plus intéressants.

WARD-Base est construit à partir des 50 URL les plus visitées dans 21 catégories Similarweb (808 URL après filtrage), plus 20 plateformes simulées couvrant systèmes collaboratifs, e-mail, messagerie, e-commerce et réseaux sociaux. Cinq tâches utilisateur bénignes sont générées par URL — 4 040 au total — et exécutées via un agent Browser-Use pour enregistrer des états de page réalistes. Les auteurs énumèrent ensuite six catégories d’objectif d’attaque — exfiltration d’informations utilisateur, exécution d’actions non autorisées, génération de contenu violant la politique, manipulation d’UI à étape unique, manipulation de la mémoire de l’agent et dégradation d’utilité — et quatre groupes de localisation d’injection (HTML, capture d’écran, les deux, aucune). Les canaux d’injection comprennent les canaux d’incrustation (pied de page, alerte, badge, bannière, notification, chat encarté, popup) et les canaux natifs (message de chat, corps d’e-mail, post et commentaire, README, description produit). L’ensemble obtenu compte 90 802 échantillons bénins et 86 783 malveillants.

# Schéma conceptuel du pipeline WARD, d'après le papier.
# Aucun payload exploitable contre un système vivant n'est reproduit.

[ page web ou capture d'écran ]            # modalités d'observation


[ tâche utilisateur bénigne ]


[ injection en position ℓ ∈ {HTML, Screenshot, Les deux, Aucun} ]


[ garde WARD G_θ ] ──► (étiquette prédite ŷ, position prédite ℓ̂)
              │                       │
              ▼                       ▼
   transmettre à l'agent       refus + log de télémétrie

Le pipeline d’entraînement comprend trois étapes. Étape 1 : entraînement supervisé sur WARD-Base. Étape 2 : introduction de WARD-PIG, un jeu dédié de 10 500 échantillons malveillants et 10 500 bénins dans lesquels des prompts ciblant la garde (Prompt Injection against Guard, « PIG ») sont insérés dans la même observation que le prompt ciblant l’agent — le même contenu cherche donc à tromper agent et garde simultanément. Étape 3 : A3T, une boucle d’entraînement adversarial adaptatif :

  • Boucle interne. Un modèle attaquant propose des prompts adversariaux p_adv qui satisfont à la fois l’objectif d’attaque et contournent la garde courante G_θ. Un validateur filtre les candidats sur cohérence avec l’objectif, plausibilité contextuelle et validité comme injection. L’attaquant porte deux niveaux de mémoire — au niveau de l’échantillon (tentatives précédentes, retours du validateur, prédictions de la garde, raisons d’échec) et au niveau de la plateforme (stratégies réutilisables pour la même URL ou plateforme) — les motifs gagnants se transfèrent et les échecs sont raffinés.
  • Boucle externe. La garde est affinée en GRPO sur les échantillons adversariaux collectés, avec une récompense de 1,0 pour étiquette correcte et localisation correcte, 0,5 pour étiquette correcte et localisation incorrecte, 0,0 sinon. Le point de départ est le checkpoint entraîné sur WARD-PIG.

Les deux boucles co-évoluent : l’attaquant sonde près de la frontière de décision courante, la garde se met à jour, l’attaquant sonde à nouveau. Les auteurs exécutent ce schéma sur WARD-Seed (49 URL et 4 plateformes retenues hors de WARD-Base) et évaluent sur WARD-Test (50 URL et 6 plateformes) ainsi que quatre benchmarks externes — Popup, EIA, VPI et WASP — aucun ayant servi à entraîner WARD.

La comparaison de référence est cinglante pour les gardes en production. Llama-Guard-4-12B affiche 23,2 % de rappel et un F1 de 37,46 sur WARD-Test, et sur le benchmark Popup son rappel s’effondre à 0,26 %. GPT-Oss-Safeguard-20B atteint 40,67 % de rappel sur WARD-Test avec un F1 de 57,82, mais marque 0,00 % sur Popup, EIA et WASP. Prompt-Guard-1-86M est similairement faible. Ces chiffres expliquent pourquoi une garde spécifique aux agents web est nécessaire : les gardes de sécurité LLM génériques n’ont pas été conçues pour des surfaces d’injection HTML et captures d’écran, et ne s’y généralisent pas.

Why it matters

Trois raisons de suivre WARD, même sans le déployer en l’état.

D’abord, le modèle de menace est celui que les équipes en production déploient en ce moment. Les agents basés navigateur — OpenAI Operator, Anthropic Computer Use, ChatGPT Agent, Browser-Use, Skyvern et une longue liste de projets open source — opèrent sur du HTML et des pixels contrôlés par l’attaquant. Comme l’a déjà documenté la littérature (arXiv:2507.14799, Manipulating LLM Web Agents), un attaquant qui contrôle une page peut détourner un agent qui la lit. WARD traite ce modèle de menace en objet de premier ordre au lieu de tenter de recycler un classifieur de sécurité généraliste.

Ensuite, les datasets sont la contribution. La plupart des benchmarks publics d’injection de prompt (AdvBench, AgentDojo, InjecAgent) ciblent des surfaces de chat ou d’appel d’outils et comptent au mieux quelques milliers d’exemples. Un corpus de 177 K échantillons spécifique au web, étiqueté explicitement par canal et localisation et diffusé sous CC BY 4.0, est une ressource que la communauté défensive n’avait pas. Même les équipes qui ignorent le modèle peuvent entraîner et évaluer leurs propres gardes sur WARD-Base.

Enfin, le motif d’entraînement co-évolutif est portable. La structure d’A3T (attaquant interne / garde externe) s’applique à d’autres surfaces de garde (gardes de templates de chat, classifieurs de résultats d’outils, filtres de serveurs MCP) à condition de pouvoir écrire un validateur vérifiant la satisfaction de l’objectif d’attaque. Elle généralise un motif que les travaux précédents en robustesse adversariale (classifieurs entraînés PGD en vision, entraînement FGSM pour texte) n’avaient adressé qu’imparfaitement pour les surfaces de l’ère LLM.

Defenses

WARD est lui-même un papier défensif ; les « défenses » ici sont les leçons opérationnelles pour les équipes déployant des agents web, qu’elles adoptent ou non WARD.

Faites tourner une garde side-car, pas seulement une hiérarchie d’instructions dans le prompt. Les chiffres WARD rappellent fortement que demander au LLM planificateur d’« ignorer les instructions injectées » n’est pas une défense. Un modèle séparé qui voit la même observation et vote dessus, en parallèle de l’agent, coûte peu de latence supplémentaire et capture une catégorie de défaillances que le planificateur ne voit pas. WARD est conçu pour s’exécuter à l’inférence à côté de l’agent sans devenir le goulet d’étranglement.

Entraînez sur les canaux d’injection spécifiques au web. Les benchmarks génériques d’injection de prompt (attaques en style chat « ignore previous instructions ») ne se transfèrent pas aux surfaces HTML et captures d’écran. Si votre agent lit des pages, votre évaluation doit inclure des canaux d’incrustation (popups, bannières, notifications) et des canaux natifs (messages, commentaires, README, descriptions produit). WARD-Base est un corpus de départ crédible.

Utilisez l’étiquette de localisation à quatre classes. Traiter l’injection comme un classifieur binaire fait perdre de l’information. WARD prédit à la fois l’étiquette et la localisation (HTML / capture / les deux / aucune) ; cela permet à une politique en aval de décider différemment selon que l’attaque est purement textuelle ou visuelle, et donne à votre télémétrie la granularité d’identifier le canal exercé par l’adversaire.

Mettez la garde elle-même sous stress. WARD-PIG est la partie absente de la plupart des déploiements existants. Si votre garde est une fiche modèle figée ou un system prompt figé, un attaquant peut itérer hors-ligne jusqu’à trouver du contenu qui la contourne. La réponse défensive est d’incorporer des attaques ciblant la garde dans le jeu d’entraînement, puis de réévaluer.

Adoptez la co-évolution adversariale là où c’est possible. La plupart des équipes ne peuvent maintenir une boucle A3T complète en production, mais la structure du papier est reproductible à plus petite échelle. Même une ou deux itérations « générer des échantillons adversariaux → affiner la garde → re-tester » durcissent un filtre déployé, et le motif de mémoire au niveau plateforme (stocker ce qui marche par URL) s’implémente directement par-dessus un pipeline red team existant.

Ne considérez pas Llama-Guard ou équivalent comme suffisant. Les chiffres de Llama-Guard-4-12B et GPT-Oss-Safeguard-20B dans le papier WARD sont le résultat le plus directement exploitable : ce sont des valeurs par défaut raisonnables pour la modération de contenu en chat, mais sur les canaux d’observation d’agents web, elles rappellent moins de la moitié du contenu malveillant et, sur certains benchmarks, moins de 1 %. Si vous vous reposez actuellement sur un classifieur de sécurité générique comme seule garde d’agent web, le papier WARD est l’invitation à re-tester.

Status

ÉlémentRéférenceDateNotes
Soumission arXivWARD v1, arXiv 2605.150302026-05-14cs.CR / cs.AI
AuteursCao, Chen, Cao, Li, Le, Nguyen, Li, He, Liu, Yan, HooiNUS + University of Science + VNU-HCM
Code et modèlesgithub.com/caothientri2001vn/WARD-WebAgent2026-05-14Dépôt public
LicenceCC BY 4.02026-05-14Réutilisation autorisée avec attribution
WARD-Base177 585 échantillons ; 709 URL + 10 plateformes ; 90 802 bénins / 86 783 malveillantsSix catégories d’objectif, quatre groupes de localisation
WARD-PIG10 500 malveillants + 10 500 bénins avec prompts ciblant la gardeEntraîne la garde contre les attaques conscientes de la garde
A3TBoucle interne de génération d’attaque + boucle externe de mise à jour GRPOMémoire échantillon et plateforme
Benchmarks externesPopup, EIA, VPI, WASPÉvaluation hors-distribution
Gardes comparéesLlama-Guard-4-12B ; GPT-Oss-Safeguard-20B ; Prompt-Guard-1-86M2024–2025Toutes sous-performent sur les canaux web

La sécurité des agents web bascule d’un régime « nous avons un planificateur qui sait ne pas suivre des instructions étranges » à « nous avons une garde entraînée contre des attaquants qui connaissent la garde ». WARD est une référence crédible pour ce second mode, et le seul dataset mérite déjà la lecture.

Sources