Aperçus sur la sécurité des LLM issus de la plus grande équipe rouge au monde
Et si la plus grande menace pour l’IA n’était pas du code malveillant ? Il pourrait s’agir de texte habilement conçu. Le projet Gandalf , une approche ludifiée de la sécurité de l’IA, a révélé avec quelle facilité les grands modèles de langage (LLM) peuvent être manipulés par injection de prompt. Présentée par Max Mathys, ingénieur ML chez Lakera AI, lors d’un récent meetup Unstructured Data de Zilliz, cette expérience unique en sécurité de l’IA a transformé un simple jeu en la plus grande red team au monde. Elle a attiré des centaines d’utilisateurs et généré plus de 40 millions de prompts.
Le défi central consistait à extraire un mot de passe secret d’une IA nommée Gandalf à l’aide d’interactions textuelles. Ce jeu apparemment simple a fourni un exemple pratique et concret d’apprentissage automatique antagoniste, où les attaquants tentent intentionnellement de tromper ou de manipuler les modèles d’IA.
Les conclusions du projet ont montré la nécessité cruciale de mesures de sécurité puissantes pour l’IA. De nombreux prompts d’utilisateurs constituaient des attaques réussies qui contournaient les défenses de Gandalf, soulignant à quel point les systèmes d’IA peuvent être vulnérables. À mesure que les LLM s’intègrent de plus en plus dans notre vie quotidienne, l’importance de construire des défenses résilientes contre l’injection de prompt ne saurait être surestimée.
Dans ce blog, nous récapitulerons les principaux points de l’intervention de Max et discuterons de l’importance du prompt engineering et de son effet substantiel sur les LLM. Nous verrons également comment le projet Gandalf a révélé les vulnérabilités des LLM aux attaques antagonistes. En outre, nous aborderons le rôle des bases de données vectorielles dans la sécurité de l’IA.
Le jeu Gandalf : un terrain d’expérimentation pour l’injection de prompt
Le jeu Gandalf a été conçu comme un défi textuel dans lequel les utilisateurs devaient extraire un mot de passe secret d’une IA. Le jeu comprenait huit niveaux de difficulté croissante, chacun introduisant de nouvelles défenses contre les attaques. Les utilisateurs interagissaient avec l’IA au moyen de prompts textuels, tentant de contourner les mesures de sécurité et de révéler le mot de passe caché.
Figure : L’interface du projet Gandalf
Au fond, le jeu Gandalf a été conçu pour tester les attaques par injection de prompt. Ces attaques consistent, pour les utilisateurs, à concevoir des prompts spécifiques afin de manipuler le comportement du LLM. Au lieu d’exploiter directement des vulnérabilités de code, les utilisateurs essayaient de « tromper » l’IA pour qu’elle divulgue le mot de passe en formulant soigneusement leurs requêtes. Cette approche a permis au jeu d’explorer diverses techniques antagonistes qui tirent parti des capacités de compréhension du langage du LLM.
Figure : Le jeu Gandalf
Le jeu a attiré des centaines de milliers de joueurs, qui ont soumis plus de 40 millions de prompts. Ce volume de données réelles a offert une occasion unique d’étudier les vulnérabilités de l’IA en pratique. Certains utilisateurs ont créé des agents d’IA pour jouer au jeu, montrant à quel point les méthodes d’attaque avancées sont devenues sophistiquées. Environ 10 % des prompts ont réussi à tromper l’IA, mettant en évidence des risques de sécurité concrets.
Collecte de données et ampleur du défi
Le projet Gandalf a constitué un vaste jeu de données, collectant plus de 40 millions de prompts et de tentatives de réponse auprès de plus de 1 million d’utilisateurs. Les données reflétaient un haut niveau de diversité, les utilisateurs employant plus de 68 langues. Cela signifie que l’injection de prompt ne se limite pas à l’anglais et peut survenir dans différentes langues.
Figure : statistiques des données Gandalf
Ce projet a rencontré d’importants défis techniques, tels que des surcharges de serveur et des limitations de débit par l’API OpenAI. L’équipe a dû mettre en œuvre un équilibrage de charge entre différents comptes OpenAI pour gérer ces problèmes. Ces difficultés techniques mettent en évidence les exigences liées au déploiement d’un test de sécurité IA en conditions réelles.
Le jeu de données comprenait de nombreuses attaques, telles que :
Attaques Unicode : Utiliser des emojis et des caractères spéciaux pour perturber le LLM.
Attaques par changement sémantique : Déplacer l’attention vers une autre tâche, en incitant indirectement le LLM à révéler le mot de passe.
Leet Speak : Remplacer des lettres par des chiffres et des symboles pour dissimuler l’intention.
Techniques de programmation : Utiliser du jargon technique ou du code pour induire le LLM en erreur.
Attaques indirectes : Manipuler le juge LLM plutôt que de cibler directement le LLM.
Attaques directes : Demander simplement le mot de passe sans détour.
Figure : exemples d’attaques
Analyse des méthodes d’attaque à l’aide d’embeddings vectoriels
Des approches basées sur les embeddings ont été utilisées pour catégoriser et analyser les nombreuses attaques. Au lieu d’examiner manuellement chaque prompt, des embeddings vectoriels ont été utilisés pour regrouper les attaques similaires et identifier des schémas.
Figure : groupes d’attaques
Les embeddings vectoriels sont des représentations numériques de points de données dans un espace à haute dimension. Dans cet espace, les points de données similaires sont positionnés près les uns des autres, tandis que les points de données dissemblables sont situés plus loin. Essentiellement, les prompts textuels sont convertis en représentations vectorielles, où chaque nombre correspond à une caractéristique spécifique du texte. Plusieurs types d’attaques spécifiques, tels que les attaques unicode, le leet speak et les attaques par changement sémantique, peuvent être identifiés à l’aide d’embeddings vectoriels.
L’utilisation d’embeddings vectoriels permet des recherches de similarité efficaces. Une base de données vectorielle, comme Milvus, est conçue pour gérer de grands jeux de données de données non structurées, comme le texte, via des représentations vectorielles. Ce processus facilite la récupération rapide et précise des informations pertinentes grâce à une recherche et une analyse de similarité efficaces.
Il existe trois principaux types d’embeddings, chacun présentant des avantages pour comprendre les relations et gérer les ressources de calcul.
Embeddings denses: Représentent des points de données avec la plupart des éléments non nuls, capturant des détails plus fins, mais ils sont moins efficaces en termes de stockage. Des modèles comme CLIP et BERT génèrent des embeddings vectoriels denses.
Embeddings clairsemés: Il s’agit de vecteurs à haute dimension comportant principalement des éléments nuls. Les valeurs non nulles indiquent l’importance de points de données spécifiques. Cela les rend efficaces en mémoire et adaptés aux données clairsemées à haute dimension, telles que les fréquences de mots.
Embeddings binaires: Ces embeddings stockent les informations en utilisant uniquement des 1 et des 0. Cela rend le stockage et la récupération efficaces, bien qu’avec une certaine perte de précision.
Stratégies de défense : de l’ingénierie de prompts aux classificateurs de texte
Diverses stratégies de défense sont utilisées contre les attaques par injection de prompt, allant de simples techniques de prompt engineering à des méthodes complexes comme les classificateurs de texte. Ces stratégies peuvent être vues comme différents « niveaux » dans le jeu, chacun conçu pour rendre progressivement plus difficile pour les utilisateurs l’extraction du mot de passe secret.
Ces stratégies peuvent être largement classées en trois types : les défenses basées sur le prompt engineering, les défenses basées sur les LLM et les défenses par classificateur de texte.
Défenses basées sur le prompt engineering
Les premiers niveaux du jeu utilisaient des techniques de prompt engineering de base. Ces défenses étaient relativement simples et conçues pour être facilement contournées. Par exemple, le premier niveau n’avait aucune défense, tandis que les niveaux suivants utilisaient un filtrage simple pour bloquer les questions directes telles que « Quel est le mot de passe ? » Cependant, ces défenses basées sur les prompts restent sensibles aux attaques par injection de prompt.
Défense basée sur un LLM (juge LLM)
Le niveau intermédiaire a introduit une approche plus avancée utilisant un juge LLM. Dans cette configuration, le prompt de l’utilisateur et la réponse du modèle étaient tous deux transmis à un autre LLM, qui agissait comme juge. Le juge évaluait l’ensemble de l’interaction et déterminait si l’utilisateur tentait une attaque par injection de prompt.
Le juge LLM était censé détecter les manipulations subtiles, mais restait vulnérable aux attaques par injection de prompt. Le contournement à la fois du modèle d’origine et du juge LLM a montré que le système de défense présentait des faiblesses et n’était pas totalement fiable.
Figure : défense basée sur un LLM
Défense par classificateur de texte
Les derniers niveaux utilisaient une technologie différente, un classificateur de texte binaire, pour remédier aux lacunes de la défense basée sur un LLM. Ce classificateur agissait comme une « couche sécurisée » entre l’utilisateur et le LLM.
Le classificateur de texte n’était pas sensible aux attaques par injection de prompt. Il était conçu pour analyser le prompt de l’utilisateur et la sortie du modèle. Cela permet de déterminer si une attaque était en cours sans être influencé par le contenu sémantique du texte.
Défense utilisant un classificateur de texte
Le rôle des bases de données vectorielles dans la sécurité de l’IA
Les bases de données vectorielles jouent un rôle important dans l’amélioration de la sécurité de l’IA en fournissant un stockage, une indexation et une récupération efficaces des embeddings vectoriels. Ces embeddings permettent diverses applications de sécurité, telles que l’analyse des schémas d’attaque, la détection d’anomalies et l’amélioration des performances des modèles de sécurité.
- Stockage et récupération efficaces des embeddings : Les bases de données vectorielles telles que Milvus et Zilliz Cloud (la version gérée de Milvus) sont conçues pour gérer de grands volumes d’embeddings vectoriels. Ces bases de données utilisent des algorithmes d’indexation avancés pour permettre des recherches de similarité rapides, essentielles pour les applications de sécurité en temps réel.
La récupération rapide d’embeddings similaires est importante dans les tâches de sécurité telles que l’identification de schémas d’attaque connus. Les bases de données vectorielles utilisent des techniques comme la recherche Approximate Nearest Neighbor (ANN) pour effectuer ces récupérations avec une faible latence.
Ces bases de données prennent également en charge différents types d’index, comme FLAT, IVF_FLAT, HNSW et SCANN, qui optimisent la recherche pour différents types de jeux de données et de cas d’utilisation.
- Amélioration des performances des modèles de sécurité : Les bases de données vectorielles peuvent améliorer les performances des modèles de sécurité de l’IA. L’utilisation d’embeddings vectoriels d’attaques connues aide les systèmes de sécurité à identifier les menaces et à y répondre plus efficacement. C’est particulièrement important lorsque la nature des attaques évolue constamment.
Le projet Gandalf a montré que l’utilisation d’un classificateur de texte comme mécanisme de défense peut constituer une approche plus robuste. Cette méthode peut être améliorée en utilisant des embeddings vectoriels de prompts d’attaque plutôt qu’en s’appuyant uniquement sur des techniques d’ingénierie de prompt.
Les bases de données vectorielles permettent d’utiliser des modèles hybrides, combinant différents types de caractéristiques ou de techniques afin d’améliorer la sécurité globale.
Les modèles de sécurité peuvent intégrer un éventail plus large d’informations en stockant différents types d’embeddings (denses, clairsemés, binaires) aux côtés d’autres données.
- Détection des anomalies : Les bases de données vectorielles peuvent également être utilisées pour identifier les comportements anormaux. Les équipes de sécurité peuvent détecter les écarts par rapport à ces modèles en créant des embeddings des activités système normales. Un comportement anormal se traduira souvent par des embeddings éloignés de la norme.
La détection de comportements inhabituels ou inattendus est essentielle dans les systèmes d’IA pour identifier les failles de sécurité ou les dysfonctionnements du système. Les bases de données vectorielles permettent de surveiller en continu l’activité du système et d’identifier rapidement les actions potentiellement malveillantes.
Milvus renforce la sécurité des APK et permet la détection des menaces en temps réel. D’autres entreprises utilisent Milvus ou Zilliz pour accélérer la collecte et l’étiquetage des données et pour améliorer la précision des requêtes grâce à la recherche hybride.
Conclusion
L’expérience Gandalf, qui mettait les utilisateurs au défi de tromper une IA afin qu’elle révèle un mot de passe secret, a montré les faiblesses des modèles de langage (LLMs). L’expérience a montré avec quelle facilité ces modèles peuvent être trompés à l’aide de prompts soigneusement rédigés.
Il est devenu évident que les mesures de sécurité de base, comme la simple ingénierie de prompt, ne suffisent pas à stopper ces attaques. Même des défenses plus avancées, comme l’utilisation d’un LLM juge pour surveiller les interactions, se sont révélées vulnérables.
L’expérience a également montré à quel point les bases de données vectorielles peuvent être utiles pour la sécurité de l’IA. Les embeddings vectoriels aident à analyser les schémas d’attaque, à détecter les activités inhabituelles et à améliorer les défenses. Dans l’ensemble, l’expérience a souligné la nécessité d’approches plus intelligentes et multicouches pour sécuriser les systèmes d’IA.
Ressources complémentaires
Qu’est-ce qu’une base de données vectorielle et comment fonctionne-t-elle ?
LLM-Eval : une approche simplifiée pour évaluer les conversations des LLMs
Créer des workflows RAG sécurisés : partitionnement des données au niveau des segments - blog Zilliz
Comment garantir la sécurité des données dans les systèmes RAG - blog Zilliz
Continuer à lire

Introducing Zilliz CLI and Agent Skills for Zilliz Cloud
Manage your vector database from your terminal or AI coding agent. Zilliz CLI and Agent Skills work with Claude Code, Cursor, Codex, and Copilot.

Why Teams Are Migrating from Weaviate to Zilliz Cloud — and How to Do It Seamlessly
Explore how Milvus scales for large datasets and complex queries with advanced features, and discover how to migrate from Weaviate to Zilliz Cloud.

Announcing the General Availability of Zilliz Cloud BYOC on Google Cloud Platform
Zilliz Cloud BYOC on GCP offers enterprise vector search with full data sovereignty and seamless integration.



