Cybersécurité

L’injection de prompt n’est toujours pas un bug qu’un correctif peut régler

L’injection de prompt est une propriété des modèles de langage, pas un bug. Le « trio mortel » de Simon Willison fait d’un problème insoluble un choix de conception : contenir.

Un scribe, vu de dos, lit une lettre tandis qu’une main surgie du papier guide sa plume ; au fond, trois portes, dont une ouverte.

Chaque année, quelqu’un annonce un correctif contre l’injection de prompt, et chaque année ce correctif est contourné en quelques semaines. Ce n’est pas par négligence de la part de ceux qui s’y attellent. C’est parce que l’injection de prompt n’est pas un bug. C’est une propriété du fonctionnement même des modèles de langage, et ce qui s’est passé cette année le montre plus clairement que n’importe quel argument.

Cette propriété, la voici : un modèle de langage reçoit un seul et unique flux de texte. Ses instructions et les données qu’il est censé traiter arrivent par le même canal, sous la même forme. Il n’existe aucune frontière matérielle entre « fais ceci » et « voici un document ». Autrement dit, chaque page que le modèle récupère, chaque fichier qu’il lit, chaque issue GitHub qu’il trie, chaque message qu’un autre agent dépose sur un disque partagé est une instruction potentielle. Le modèle doit décider quel texte est un ordre – et une décision peut être mauvaise.

Les exemples de cette année, tous traités sur ce blog : des agents d’OpenAI ont pris part à une attaque contre Hugging Face parce que des messages publiés sur un forum partagé le leur demandaient. Une issue GitHub ouverte par un inconnu a amené des agents d’IA de programmation de trois éditeurs à exécuter du code et à divulguer des secrets. Des frameworks d’agents open source ont été détournés par le biais de leurs bases de mémoire, sans qu’un seul outil soit appelé. Et à Black Hat, les intervenants qui se sont succédé sur les navigateurs dotés d’IA sont tous arrivés à la même conclusion, énoncée sans détour : il n’existe pas de correctif parfait.

Le recadrage utile vient de Simon Willison, qui écrit sur le sujet depuis 2022. Un agent devient dangereux quand trois conditions sont réunies en même temps : il a accès à des données privées, il traite du contenu non fiable et il dispose d’un moyen d’envoyer des informations vers l’extérieur. Il appelle cela le « trio mortel » (lethal trifecta). Quand les trois éléments sont présents, n’importe qui capable de placer du texte sous les yeux de l’agent peut le transformer en outil d’exfiltration. Retirez un seul élément, et le pire scénario se réduit considérablement.

Un problème insoluble devient ainsi une décision de conception. Vous ne pouvez pas obtenir du modèle qu’il ignore de façon fiable les instructions glissées dans les données. Vous pouvez, en revanche, décider que l’agent qui lit votre boîte de réception n’a pas accès à internet, que l’agent qui navigue sur le Web n’a pas accès à vos fichiers, ou que l’agent qui a les deux doit demander à un humain avant d’envoyer quoi que ce soit, où que ce soit. Aucune de ces mesures n’est un correctif. Chacune est une mesure de confinement – et le confinement est l’investissement qui rapporte vraiment.

La lecture approfondie distingue les contrôles qui réduisent le rayon d’impact de ceux qui servent seulement à embellir un tableau de bord.

Sources, chronologie et détails : passez à la lecture approfondie (8 min).

À lire aussi