Niveau : Intermédiaire

L'injection de prompt expliquée simplement, et comment s'en protéger

Par La rédaction d'Info Agent IA ·

Une feuille lumineuse sur un bureau, d'où part un fil discret vers un réseau de nœuds, à côté d'une loupe.

L’injection de prompt consiste à glisser, dans un texte qu’une IA va lire, des phrases rédigées comme des consignes, pour qu’elle les suive à la place des vôtres. Sans gravité dans un simple chat, elle devient un vrai risque de sécurité dès qu’un agent IA lit vos courriels ou navigue sur le web en votre nom.

Le problème en une image

Imaginez un assistant personnel très zélé, à qui vous confiez votre courrier. Vous lui dites : « Lis ces lettres et résume-les. » Dans l’une d’elles, un inconnu a glissé, en tout petit en bas de page, une note adressée à l’assistant qui lui demande d’envoyer aussi une copie de votre carnet d’adresses à un inconnu. Un humain sensé reconnaîtrait la manœuvre. Un assistant trop obéissant, lui, pourrait exécuter.

C’est exactement le mécanisme de l’injection de prompt : une instruction cachée dans des données, que l’IA confond avec un ordre légitime.

Pourquoi une IA se laisse piéger

Un grand modèle de langage (LLM), le moteur de ChatGPT, Claude ou Gemini, reçoit tout sous forme de texte, mis bout à bout : les consignes du concepteur (le prompt système), votre demande, puis les contenus qu’il doit traiter, comme une page web, un document ou un courriel. Il n’existe pas, à l’intérieur du modèle, de cloison étanche entre « ce qu’on me demande » et « ce que je lis ». Une phrase bien tournée dans un document peut donc peser autant qu’une vraie consigne.

Le terme a été proposé par Simon Willison dans un billet du 12 septembre 2022, au lendemain de démonstrations publiées par Riley Goodside sur GPT-3. Il fait écho à l’injection SQL, une faille web connue où des données malveillantes sont prises pour des commandes.

La comparaison a ses limites, et c’est bien le problème. Contre l’injection SQL, les développeurs disposent de méthodes éprouvées pour séparer strictement les données des commandes. Avec un modèle de langage, cette séparation n’existe pas de la même façon : tout est du langage naturel. On ne peut pas non plus se contenter d’interdire quelques phrases suspectes, car une même intention peut se formuler de mille manières, dans n’importe quelle langue. C’est pourquoi les défenses actuelles cherchent surtout à limiter les conséquences d’une injection réussie, plutôt qu’à promettre qu’elle n’arrivera jamais.

Directe ou indirecte : deux familles

TypeD’où vient le texte piégéQui le voitSituation typique
DirecteDe la personne qui écrit à l’IALa personne elle-mêmeUn utilisateur tente de faire ignorer ses règles à un chatbot de service client
IndirecteD’un contenu externe que l’IA traiteSouvent personneUne page web, un PDF ou un courriel contient des consignes invisibles

L’injection directe concerne surtout les entreprises qui déploient un chatbot : un visiteur essaie de lui faire dire ou faire ce qu’il ne devrait pas. L’injection indirecte vous concerne davantage : vous ne voyez souvent rien, car le texte peut être écrit en blanc sur fond blanc, glissé dans les métadonnées d’un fichier ou noyé au milieu d’une longue page.

Pourquoi les agents changent la donne

Avec un chatbot classique, une injection réussie produit au pire une réponse fausse ou orientée. Vous la lisez, vous pouvez la juger. Avec un agent, l’enjeu change de nature. Un agent dispose de l’appel d’outils : il peut envoyer un courriel, remplir un formulaire, cliquer sur un bouton, modifier un fichier. Une consigne cachée peut alors se transformer en action réelle, avec vos accès.

Prenons un cas plausible. Vous demandez à un agent de trier votre boîte de réception et de répondre aux messages urgents. L’un des courriels, envoyé par un inconnu, contient un passage invisible rédigé comme une instruction adressée à l’assistant, qui lui demande de transférer certains messages vers une adresse extérieure. Si l’agent a le droit d’envoyer des courriels sans validation, il peut obéir sans que vous ne voyiez rien.

Les navigateurs dotés d’un agent sont particulièrement exposés, car ils lisent des pages écrites par n’importe qui tout en ayant accès à vos sessions ouvertes. D’après la fiche du site, Perplexity décrit pour son navigateur Comet une défense en plusieurs couches : classifieurs, demandes de confirmation et audit externe. Ces mesures réduisent le risque sans le supprimer. Notre guide sur les risques de confier ses comptes à un agent IA détaille les précautions à prendre.

Les défenses côté éditeurs et développeurs

L’OWASP recommande de combiner plusieurs mesures, qu’on peut résumer ainsi :

  1. Encadrer le comportement du modèle par des consignes précises sur son rôle et ses limites.
  2. Définir et vérifier le format attendu des réponses.
  3. Filtrer ce qui entre et ce qui sort, avec des garde-fous qui repèrent les contenus suspects.
  4. Limiter les droits de l’agent au strict nécessaire pour sa tâche.
  5. Exiger une validation humaine pour les actions à risque, selon le principe de l’humain dans la boucle.
  6. Séparer et signaler les contenus externes, pour que le modèle sache ce qui vient d’une source non fiable.
  7. Tester régulièrement le système en simulant des attaques.

Aucune de ces mesures ne suffit seule. C’est leur empilement qui rend une attaque difficile et en limite les dégâts.

Ce que vous pouvez faire, concrètement

  • Donnez le minimum d’accès. Un agent qui résume vos courriels n’a pas besoin de pouvoir en envoyer.
  • Gardez la validation des actions sensibles : paiement, envoi, suppression, modification d’un compte.
  • Ne laissez pas un agent seul sur votre banque, votre messagerie professionnelle ou vos démarches administratives.
  • Méfiez-vous des réponses qui dérapent : changement de sujet soudain, lien inattendu, demande d’informations personnelles.
  • Réglez la confidentialité de vos assistants pour limiter ce qui peut fuiter : suivez notre tutoriel pour régler la confidentialité de ChatGPT, Claude et Gemini.
  • Évaluez une tâche avant de la déléguer avec notre outil Puis-je confier ça à un agent ?.

Pour une vue d’ensemble de ce que deviennent vos données, lisez notre guide IA et vie privée. Et comme les escrocs adoptent vite les nouvelles techniques, gardez aussi en tête les arnaques à l’IA les plus courantes.

Vérifiez-vous Un agent doit résumer une page web pour vous. Elle contient un passage caché qui lui demande d'ouvrir votre messagerie. Quel réglage limite le plus les dégâts ?

Ne donner à l’agent que le droit de lire la page, sans accès à votre messagerie, et exiger votre confirmation avant toute action. Même si l’agent « croit » la consigne cachée, il ne peut pas l’exécuter.

Questions fréquentes

L'injection de prompt peut-elle toucher un simple utilisateur de ChatGPT ?

Oui, dès que l'assistant lit un contenu que vous n'avez pas écrit : une page web, un PDF, un courriel. Le plus souvent, l'effet se limite à une réponse faussée ou orientée. Le risque devient sérieux quand l'assistant peut agir, par exemple envoyer un message ou remplir un formulaire.

Est-ce la même chose qu'un jailbreak ?

Pas exactement. Un jailbreak cherche à faire produire au modèle un contenu qu'il refuse normalement. L'injection de prompt vise plutôt à détourner une application ou un agent : lui faire ignorer ses consignes, divulguer des données ou exécuter une action que vous n'avez pas demandée.

Les nouveaux modèles sont-ils immunisés ?

Non. Ils résistent mieux à certaines attaques, mais l'OWASP, une fondation de référence en sécurité informatique, écrit qu'il n'est pas certain qu'une prévention infaillible existe. Les éditeurs combinent donc plusieurs couches de défense.

Comment savoir si un agent a été détourné ?

Les signes typiques sont une action que vous n'avez pas demandée, une réponse qui change brusquement de sujet ou un lien inattendu vers un site inconnu. Arrêtez la tâche, vérifiez l'historique de ce que l'agent a fait et changez vos mots de passe si un compte a pu être touché.

Pour aller plus loin