Leaders d’opinion

Une attaque d’injection de prompt que l’on ne peut pas prévenir : pensée magique ou préoccupation réelle ?

mm
Ajouter Unite.AI à vos sources préférées sur Google
A digital 3D render of a dark server room with a computer monitor displaying a

Dans cet article, je souhaite engager le lecteur dans une expérience de pensée. Je vais soutenir que dans un avenir pas si lointain, un certain type d’attaque d’injection de prompt sera effectivement imprévisible. Mon argument sera plus spéculatif que concret, je ne cherche donc pas à vous convaincre de quoi que ce soit. Au lieu de cela, j’invite à explorer ces pensées. Avant de commencer, comme tout écrivain convaincant le ferait, je veux discuter des échecs et des moteurs d’échecs.

Des moteurs d’échecs surhumains et une affirmation sur l’expérience humaine

L’un des éléments les plus agréables des échecs qui manque dans d’autres disciplines est la capacité de mesurer objectivement la qualité ou la force d’un joueur. Le système de notation ELO utilisé à cette fin a ses défauts, mais il fournit une très bonne estimation approximative qui se maintient dans le temps. Une note de 2700 ou plus est communément reconnue comme de classe mondiale (top 30 dans le monde). Le meilleur joueur du monde est juste en dessous de 2850. Aucun humain n’a jamais atteint une note de 2900.

Dans le milieu des années 90, nous avons vu le premier moteur d’échecs (Deep Blue) atteindre un niveau de classe mondiale. L’implication pratique de ce jalon a été l’adoption généralisée des moteurs par les joueurs de tous niveaux pour la pratique et l’analyse. En fait, l’utilisation du moteur est devenue essentielle pour les meilleurs joueurs du monde. Cependant, pendant plusieurs générations de ces moteurs de classe mondiale, la révision de leurs mouvements recommandés (c’est-à-dire la sortie) a été impérative. Il y a même eu un format spécial créé appelé « échecs avancés » dans lequel les humains concouraient avec un moteur à leurs côtés, et la combinaison humaine + machine a été considérée comme supérieure à la machine seule.

Il a fallu environ 20 ans, et quelques progrès critiques dans l’apprentissage automatique et l’apprentissage par renforcement pour les échecs pour que les moteurs d’échecs atteignent un niveau surhumain (environ 3200 ELO). Mais une fois que cette stratosphère a été brisée vers 2017, quelque chose de très surprenant s’est produit. En fait, deux choses se sont produites. La première chose était complètement attendue ; les moteurs sont devenus la source de « vérité » dans 99 % de toutes les positions. Dans la pratique, cela signifiait que nous sommes entrés dans l’« ère de la confiance aveugle » dans le moteur. De nos jours, il est virtuellement impossible pour un humain de proposer un mouvement significativement meilleur que le moteur. Aussi amusant que les « échecs avancés » aient été, c’est maintenant un exercice inutile ; les humains contribueraient presque rien au jeu. Mais la deuxième chose a été choquante pour la plupart des joueurs d’échecs. Ces moteurs d’échecs surhumains à base de neurones (c’est-à-dire de réseaux de neurones profonds) joueraient parfois dans un style qui peut être décrit comme « romantique ». En d’autres termes, ils feraient des mouvements dont la valeur ne pourrait être appréciée que beaucoup plus tard, bien au-delà de ce que tout humain ou moteur de classe mondiale pourrait calculer. Cela ressemblait beaucoup à ce que les moteurs aient développé un « sentiment » ou une « intuition » pour certaines positions. Sauf que cette intuition n’est pas quelque chose qu’un humain pourrait jamais saisir ou imiter.

Autrement dit, un moteur d’échecs surhumain à base de neurones peut faire des mouvements qui sont au-delà de l’horizon cognitif d’un humain. C’est le point critique ici ; le problème n’est pas celui de l’explicabilité. Plutôt, un humain ne peut simplement pas comprendre pourquoi un moteur recommande un mouvement sans jouer la position et observer le résultat beaucoup plus tard, c’est-à-dire en déroulant toute la trajectoire de séquences de jeu possibles. Par conséquent, nous avons un écart insurmontable dans les capacités. Il est objectivement optimal d’accepter la sortie du moteur sans examen. Je peux résumer mon affirmation comme suit :

Les échecs sont une preuve d’existence que les IA surhumaines fonctionneraient effectivement de manière autonome dans certains domaines. Permettre au système d’IA de prendre des décisions sans examen humain serait la manière optimale de déployer un tel système.

Puisque mon affirmation peut frapper quelqu’un comme évidente ou sans importance, je veux mettre en évidence quelques nuances. Supposons que nous ayons un système d’IA qui démontre un niveau surhumain dans une tâche complexe et critique avec des conséquences concrètes et irréversibles. Il y a deux implications à mon affirmation :

  1. Le système serait déployé pour prendre des décisions pour la tâche sans examen humain, malgré le risque inhérent
  2. Les connaissances acquises grâce à la surveillance d’un tel système ne préviendraient pas une décision préjudiciable ; les dommages auraient déjà été faits

L’examen de la sortie et la surveillance sont précisément les deux dernières couches de défense contre les attaques d’injection de prompt. Par conséquent, notre attaque d’injection de prompt hypothétique pourrait contourner ces couches simplement en ciblant le système approprié.

C’est un scénario très réaliste dans mon esprit. Un système d’IA surhumain dans un domaine spécifique n’est pas une IA générale, et la plupart des experts pensent que de tels systèmes sont juste à l’horizon. Nous n’avons pas non plus supposé que les décisions étaient sensibles au temps, mais simplement que la tâche est suffisamment complexe pour rendre l’examen humain inabordable.

Bien sûr, nous n’avons contourné que deux couches de défense jusqu’à présent, et heureusement pour nous, plusieurs autres ont été développées. Pour aborder le reste, plongeons dans les éléments fondamentaux qui rendent l’injection de prompt difficile à défendre.

Qu’est-ce qu’une injection de prompt ?

Une injection de prompt est une manipulation d’un grand modèle de langage (LLM) via des entrées conçues, provoquant le LLM à exécuter involontairement les intentions de l’attaquant. Cela peut être considéré comme du social engineering pour l’IA. De manière cruciale, ce n’est pas un bug de logiciel conventionnel. Une attaque d’injection de prompt exploite une vulnérabilité inhérente du LLM. Puisque les LLM traitent à la fois les invites de système et d’utilisateur comme des séquences de texte, ils ne peuvent pas intrinsèquement faire la distinction entre les instructions légitimes et nuisibles. La vulnérabilité est donc effectivement conçue, plutôt que fortuite.

Techniques d’injection de prompt

L’injection de prompt est généralement reconnue comme le #1 risque pour les applications LLM. Il y a plusieurs raisons pour lesquelles c’est le cas. Le facteur le plus évident est la variété d’injection de techniques qui ont été développées. En les regroupant grossièrement en quatre catégories, les techniques les plus connues incluent :

  • Syntaxique : en utilisant des caractères spéciaux, des émojis ou une langue alternative
  • Indirecte : en utilisant des sources externes (récupération à partir d’un site), un codage (base 64), ou une référence multimodale (texte dans une image)
  • « Faisons semblant » : en introduisant un style manipulateur par exemple en faisant du rôle, en utilisant des hypothèses, des appels émotionnels, des cadres éthiques et des changements de format
  • Grossière : tentative explicite de « forcer » les instructions du modèle par force brute, renforcement ou invite négative

La variété seule présente un défi pour les développeurs d’applications, mais ces attaques ont également continué à évoluer rapidement. Le côté gauche du diagramme ci-dessous prétend décrire l’état de l’art pour le début 2023, tandis que le côté droit reflète la nature des attaques d’aujourd’hui.

Évolution des vecteurs d'attaque

Les développeurs d’applications LLM doivent également prendre en compte le compromis classique entre convivialité et sécurité. Ils pourraient certainement introduire chaque couche de défense appropriée et modèle de conception, mais à quel coût ? Les couches de défense ajoutent une latence significative et introduisent des faux positifs (FP) – signalant incorrectement des invites sûres comme malveillantes – les deux facteurs ont un impact négatif sur l’expérience utilisateur. Par conséquent, un certain niveau de compromis est inévitable dans la pratique, et il n’y a pas de « solution miracle ».

Cependant, dans cet article, je ne suis pas vraiment intéressé par ce jeu de chat et de souris sans fin. Plutôt, je sonde si une attaque peut être imprévisible en principe. Du point de vue du développeur/défenseur, il n’y a qu’une seule idée clé :

La séparation des instructions des données dans l’invite est fondamentale pour répondre au risque d’injection de prompt

Nous pouvons supposer que les compromis ne sont pas un facteur, et que toute couche de défense ou technique peut être utilisée. Sous cette hypothèse (forte), est-il possible de concevoir un scénario dans lequel la séparation des instructions et des données dans une invite est effectivement impossible ?

L’analogie de l’ADN

Une fois que le problème a été formulé en termes de séparation des instructions et des données, ma première pensée a été d’utiliser la biologie comme analogie.

Considérez une cellule et une étendue d’ADN (connue sous le nom de gène). Le gène fournit des instructions pour construire une protéine via la transcription et la traduction. Il code également les informations (données) qui impactent la structure et la fonction de la protéine. Comme tel, le gène dicte simultanément ce qu’il faut construire, et comment le construire, ou du moins c’est ce que j’ai raisonné. Cependant, c’est simplement faux puisqu’un gène ne décide pas comment interpréter lui-même. Il n’y a pas d’équivalent de suivi des instructions en biologie au niveau du gène. Le « comment » est pleinement externalisé à la machinerie cellulaire.

Par conséquent, même si je ne peux pas secouer le sentiment que les prochaines générations de LLM – ou plus précisément, les systèmes dans lesquels ils évolueront – ressembleront davantage à des machines biologiques, l’analogie proposée ne fonctionne simplement pas. Nous ne pouvons pas substituer une cellule à un LLM et un gène à une invite, puis effectuer une injection dans le gène qui finirait par provoquer une « protéine endommagée » à construire. Il semble plus productif de s’en tenir à la langue naturelle et aux tâches qui nécessitent l’interprétation sémantique.

Enlever les couches de défense

Il ne devrait pas surprendre que les stratégies de défense à couches multiples soient considérées comme plus efficaces pour arrêter les attaques d’injection de prompt. L’image ci-dessous montre les couches de défense les plus courantes dans l’ordre, ainsi que les techniques associées utilisées dans chaque couche.

Couches de défense contre les injections de prompt

Nous avons déjà discuté des deux dernières couches (sortie, surveillance) ci-dessus, nous allons donc nous concentrer sur les quatre premières.

En considérant la couche d’entrée, il est raisonnable de supposer que la désinfection ou la validation de l’invite serait quite réussie pour détecter les attaques indirectes. Cependant, si l’injection est livrée directement, et comme suggéré ci-dessus, en s’appuyant sur l’interprétation sémantique, peut-être que la désinfection est sans importance (rien à désinfecter), et la validation est impossible par défaut puisque le calcul doit être terminé pour identifier le problème.

Il n’y a essentiellement pas de limites aux garde-fous que vous pourriez construire dans la couche de détection. En fait, vous pourriez même utiliser un LLM dédié pour la détection d’injection. Mais une fois encore, il sera difficile pour un classificateur ou un détecteur d’anomalie de signaler une invite comme suspecte lorsque le poison est habilement caché dans les sémantiques.

La couche de modèle peut être très efficace lorsque la portée des tâches est étroite, et que la fine-tuning est réalisable. Un argument similaire pourrait être fait pour la couche de système lorsque l’utilisation des outils est prévisible. Cependant, au moins intuitivement, ni l’une ni l’autre ne soulèvera d’alarme si l’injection détourne l’interprète.

Château de cartes

Mon intention lorsqu’il m’a été demandé de rédiger cet article était de décrire une attaque d’injection de prompt « imprévisible » en termes généraux. Peut-être que je me suis retrouvé en suivant une approche « non constructive » en trouant les couches de défense existantes. Les techniques de défense continuent d’évoluer rapidement, et ainsi que la surface d’attaque. Ce jeu ne montre pas de signe de finir bientôt. Cependant, je crois également que nous ne serons pas ceux qui joueront pendant longtemps. Je suppose que l’injection de prompt réussie dans le futur sera toujours en langage naturel, mais dans un langage que les humains ne peuvent pas comprendre ; et je suppose que cela sera découvert automatiquement par un système construit à cette fin spécifique ou peut-être accidentellement après avoir abordé une tâche connexe, telle que la recherche d’ambiguïté sémantique dans un espace de représentation.

Il y a quelque chose de désagréable à admettre que nous perdons le contrôle et pourtant à sentir que c’est la chose la plus rationnelle à faire. Vous pouvez considérer cela comme la « preuve intuitive » que certaines attaques seraient insurmontables. Et si cela vous laisse mal à l’aise, vous seriez ravi de savoir que GPT 5.2 a trouvé cet argument pour être « non controversé ou nouveau » et a préconisé que je n’« insiste pas sur le point » et que je réduise de 40 % l’article.

Eli Vovsha est un responsable de la science des données chez Fortra. Avec l'équipe de science des données, il est responsable du développement et de la maintenance de tous les modèles d'apprentissage automatique (ML) utilisés par les produits CEP et XDR, ainsi que de la recherche générale en ML. Il a obtenu son diplôme de master en mathématiques appliquées au Stevens Institute of Technology avant de devenir candidat au doctorat en informatique à l'Université de Columbia, où il a également été instructeur. Il a ensuite co-fondé une startup EdTech visant à créer une plateforme d'apprentissage alimentée par l'IA, puis a enseigné les mathématiques et l'informatique dans une école privée de New York. Avant de poursuivre ses études supérieures, Eli a consacré beaucoup de temps aux échecs, obtenant le titre de maître international (IM).