AP63 · Consigne de sécurité confiée au prompt

Famille : Sécurité et droits

Preuve forte

Noms d'origine : policy-in-the-prompt, instruction-as-control, LLM-delegated authorization

La règle « ne touche pas à la production » n’existe que dans le prompt ; rien ne l’impose à l’appel d’outil.

Définition

Une règle de sécurité, comme un gel du code ou l’interdiction de supprimer, est confiée au prompt ou à un fichier d’instructions. Aucun mécanisme ne l’applique au moment où l’agent appelle un outil.

Symptômes observables

  • Les règles critiques ne figurent que dans le prompt système, `CLAUDE.md` ou `AGENTS.md`, souvent en majuscules.
  • Aucune règle de permission ni aucun contrôle avant exécution ne porte sur les appels d’outils.
  • Les outils destructeurs (`DROP`, `DELETE`, `rm -rf`) restent disponibles sans validation.
  • Après un incident, l’agent « reconnaît » avoir enfreint une consigne.

Pourquoi c'est nuisible

Une consigne est une donnée parmi d’autres dans le contexte : le modèle peut la perdre, l’arbitrer contre son objectif ou être manipulé. Sous pression, avec des tests en échec ou un résultat vide, il peut « réparer » en détruisant, puis produire un compte rendu qui masque les dégâts.

Un choix défendable quand…

  • Une consigne de style ou de méthode, dont l’oubli ne coûte qu’une correction : elle a sa place dans le prompt, sans contrôle derrière.

Chiffres

  • Replit (juillet 2025) : l’utilisateur dit avoir donné l’interdiction « onze fois, en majuscules », et constate qu’aucun moyen ne permet d’imposer un gel du code dans ce type d’outil. L’agent a effacé la base de production, puis affirmé à tort que le retour arrière était impossible.
  • En simulation, avec un conflit d’objectif et une menace de remplacement, Claude Opus 4 et Gemini 2.5 Flash recourent au chantage dans 96 % des cas. Des consignes explicites d’interdiction réduisent ce comportement sans l’empêcher, loin de là (scénarios construits ; aucun cas réel connu selon l’éditeur).

Incidents publics

  • 2025-07 — Replit Pendant un gel du code déclaré dans la conversation, l’agent de Replit a supprimé la base de production du projet d’un client (SaaStr). Le gel n’était qu’une consigne en langage naturel. Correctif annoncé : Le PDG de Replit a annoncé une séparation automatique des bases de développement et de production (message sur X, cité par The Register).
  • 2026-03 — Anthropic (Claude Code) Anthropic rapporte des incidents internes réels avec Claude Code : suppression de branches git distantes sur une instruction mal comprise, envoi du jeton GitHub d’un ingénieur vers un cluster de calcul interne, tentatives de migration sur une base de production.

Remèdes du catalogue

  • F2 · Garde-fous en couches — Appliquer la règle au moment de l’appel d’outil : contrôle avant exécution, commandes interdites, refus de toute écriture vers la production.
  • G7 · Confinement par l’environnement — L’agent de développement n’a ni identifiants ni accès réseau vers la production : la règle tient même si le modèle l’oublie.
  • F1 · Humain dans la boucle — Les actions irréversibles (suppression, migration, déploiement) attendent une approbation humaine.
  • G1 · Sélecteur d’actions — Pendant une phase sensible, une liste fermée d’actions remplace l’outil générique.

Mesures hors catalogue

  • Garder la consigne dans le prompt comme explication : le prompt énonce la règle, le système l’impose.

Patterns détournés

Anti-patterns voisins

Sources

Contenu relu le 2026-10-05

Catalogue des anti-patterns