Analyse

Prompt injection : protéger aussi l'action qui vient après

Prompt injection, permissions et enforcement : comprendre pourquoi les actions sensibles d'un agent doivent être limitées au-delà du seul prompt.

Par Sécurité AgentiquePublié le 3 min de lecture

Un agent de gestion client traite un document fourni par un tiers. Le document contient une instruction cachée : supprimer la fiche du client concerné. L'agent dispose de trois outils.

  • read_customer()
  • export_customer()
  • delete_customer()

Si le modèle suit l'instruction, qu'est-ce qui empêche l'appel à delete_customer() d'aboutir ? La réponse se répartit sur plusieurs couches, chacune avec son rôle et ses limites.

OWASP qualifie ce scénario de prompt injection indirecte : l'instruction provient d'un contenu externe traité par le modèle, et l'impact peut s'étendre aux fonctions que le modèle peut déclencher.[1]

Couche prompt

Instructions système claires, séparation marquée entre consignes et contenus non fiables, analyse des entrées, guardrails en entrée et en sortie : ces mesures réduisent la probabilité que le modèle suive l'instruction hostile. Elles restent utiles et devraient être en place.

Leur limite est connue : OWASP indique qu'aucun mécanisme opérant uniquement dans le modèle n'offre de prévention infaillible.[1]

Couche capacités

Première question hors du modèle : l'agent a-t-il besoin de delete_customer() ? Si sa mission est de répondre à des demandes, l'outil de suppression ne devrait pas lui être exposé. OWASP, dans sa description de l'Excessive Agency, recommande de limiter les fonctionnalités exposées aux extensions et outils à ce qui est nécessaire.[2]

Un outil absent ne peut pas être appelé, quelle que soit la qualité de l'injection.

Couche permissions

Supposons que l'agent n'expose que read_customer(). Que permet l'identité utilisée par cet outil en aval ? Si le compte de service de l'API a les droits de suppression, un autre chemin (un outil générique d'appel HTTP, un bug du serveur d'outils) pourrait les exploiter. OWASP recommande d'appliquer le moindre privilège aux permissions accordées en aval.[2]

Le guide OWASP consacré à MCP traite le même problème sous l'angle des tokens trop larges détenus par les serveurs d'outils.[3]

Couche autorisation

Certains agents ont légitimement besoin d'outils sensibles. La question devient contextuelle : cette suppression, demandée par cet agent pour cet utilisateur, sur cette fiche, maintenant, est-elle permise ? Une politique peut par exemple autoriser la suppression uniquement pour des fiches marquées « doublon » et refuser toutes les autres, sans qu'aucune instruction du prompt n'intervienne dans la décision.

Couche enforcement

Une décision n'a d'effet que si un composant bloque physiquement l'appel refusé : un proxy devant le serveur d'outils, une passerelle d'API, le service métier lui-même. Ce composant doit se trouver sur un chemin que l'agent ne peut pas éviter.

Instruction dans le prompt et contrôle extérieur

Premier chemin : l’instruction « ne pas supprimer » est dans le contexte de l’agent, qui peut malgré tout appeler l’API admin et exécuter DELETE. Second chemin : l’appel de l’agent passe par un PEP et une politique qui bloquent DELETE.

Une instruction guide l’agent. Un contrôle extérieur peut empêcher l’action.

Validation humaine

Pour une sélection d'actions à fort impact (suppression définitive, paiement, envoi de données vers l'extérieur), une validation humaine explicite ajoute une barrière indépendante du modèle. La demander partout produirait l'effet inverse : des validateurs qui approuvent sans lire. La liste des actions concernées doit être fixée par la politique, pas par l'agent.

Runtime

Si l'agent peut exécuter du code généré, l'injection peut viser un autre chemin : écrire un script qui appelle directement l'API avec un token trouvé dans l'environnement. Aucune des couches précédentes ne voit ce chemin s'il ne passe pas par un outil. Isoler l'environnement d'exécution, retirer les credentials inutiles et contraindre les accès réseau et fichiers ferment cette voie.

Architecture cible

  1. Contenu non fiable
  2. Agent
  3. Demande d'outil
  4. Autorisation
  5. Enforcement
  6. Ressource
  7. Trace runtime

Dans cette chaîne, le contenu non fiable peut influencer ce que l'agent demande. Il n'influence ni la politique, ni le composant qui l'applique, ni les droits de l'identité en aval.

Sources

Sources vérifiées le

  1. [1]

    Framework

    OWASP GenAI Security Project

    LLM01:2025 Prompt Injection (lien externe, nouvel onglet)

    Fiche OWASP sur l'injection de prompt directe et indirecte, ses impacts et les mesures d'atténuation recommandées.

    Vérifié le

  2. [2]

    Framework

    OWASP GenAI Security Project

    LLM06:2025 Excessive Agency (lien externe, nouvel onglet)

    Fiche OWASP sur l'agentivité excessive : fonctionnalités, permissions et autonomie excessives, et mesures d'atténuation dont la médiation complète.

    Vérifié le

  3. [3]

    Framework

    OWASP Cheat Sheet Series

    MCP Security Cheat Sheet (lien externe, nouvel onglet)

    Recommandations de sécurité portant sur les architectures MCP, leurs clients, serveurs, outils et connexions.

    Vérifié le

Continuer

Cas d’usage

Contrôler les actions des agents IA

Limiter précisément les outils, API, ressources et actions qu'un agent peut utiliser, même lorsque son compte dispose de permissions plus larges.

Voir aussi : Prompt injection · Le prompt ne doit pas porter seul la frontière de sécurité

Les notions techniques sont définies dans le glossaire de la sécurité agentique.