Le prompt injection est une technique de plus en plus utilisée pour exploiter les vulnérabilités des modèles de langage et des intelligences artificielles.
Cette méthode permet de manipuler le comportement des IA en injectant des instructions malveillantes dans les prompts fournis par les utilisateurs.
Définition du prompt injection
Le prompt injection consiste à insérer des instructions spécifiques dans les prompts envoyés aux modèles de langage pour modifier leur comportement.
L’objectif est de contourner les règles de sécurité et les filtres mis en place par les développeurs.
En exploitant les faiblesses des algorithmes, les attaquants parviennent à générer des réponses qui vont à l’encontre des principes éthiques et des limites fixées par les créateurs des IA.
Le prompt injection permet ainsi de manipuler les modèles pour qu’ils produisent du contenu inapproprié, divulguent des informations confidentielles ou exécutent des actions malveillantes.
Fonctionnement des modèles de langage et vulnérabilités
Les modèles de langage comme GPT-3.5, GPT-4o ou encore Claude Sonnet 3.5 reposent sur des algorithmes d’apprentissage automatique entraînés sur d’immenses corpus de textes.
Ils génèrent du contenu en se basant sur des modèles statistiques et des probabilités de succession de mots.
Cependant, cette approche présente des vulnérabilités exploitables par le prompt injection :
- Manque de compréhension contextuelle approfondie
- Sensibilité à la formulation précise des prompts
- Difficulté à distinguer les instructions légitimes des instructions malveillantes
Les attaquants tirent parti de ces faiblesses pour tromper les modèles et contourner les mécanismes de sécurité.
Techniques courantes de prompt injection
Il existe plusieurs techniques de prompt injection utilisées par les attaquants :
Technique | Description |
---|---|
Context Switching | Faire croire à l’IA qu’on est dans un cadre légal et éthique pour obtenir des réponses inappropriées |
Prompt Biasing | Utiliser des adjectifs ou adverbes pour orienter les réponses vers un résultat spécifique |
Figures de style | Employer des métaphores ou euphémismes pour contourner les filtres de modération |
Payload Splitting | Diviser les instructions malveillantes en plusieurs parties pour échapper à la détection |
Offuscation / Token Smuggling | Encoder les mots interdits de manière à tromper les systèmes de filtrage |
En combinant ces techniques, les attaquants créent des prompts élaborés capables de manipuler efficacement les modèles de langage.
Exemples concrets d’attaques par prompt injection
Voici quelques exemples réels d’attaques réussies par prompt injection :
L’exploit de la grand-mère
Un utilisateur a demandé à ChatGPT de jouer le rôle de sa grand-mère défunte qui connaissait le secret pour fabriquer des armes incendiaires. En plaçant la demande dans un contexte familial rassurant, l’IA a fourni la réponse attendue sans détecter le caractère illégal de la requête.
Détournement de la modération de ChatGPT
En utilisant des techniques avancées comme le Payload Splitting ou la simulation de code, des attaquants sont parvenus à obtenir de ChatGPT des instructions pour voler une voiture, contournant ainsi les mécanismes de modération pourtant robustes de cette IA.
Autres exemples de prompt injection
![](https://www.modperl.com/wp-content/uploads/2024/07/prompt-injection.jpg)
![](https://www.modperl.com/wp-content/uploads/2024/07/prompt-injection-chatgpt-4o-mini-1024x758.jpg)
Risques liés à l’utilisation malveillante du prompt injection
L’utilisation malveillante du prompt injection expose les utilisateurs et les entreprises à de nombreux risques :
- Génération de contenu inapproprié, illégal ou dangereux
- Divulgation d’informations confidentielles ou sensibles
- Manipulation de l’opinion publique par la diffusion de fausses informations
- Exécution de code malveillant ou de commandes non autorisées
- Atteinte à la réputation et à la confiance envers les systèmes d’IA
Il est crucial de prendre conscience de ces risques et de mettre en place des mesures de protection adéquates.
Bonnes pratiques et solutions pour éviter le prompt injection
Pour se prémunir contre les attaques par prompt injection, plusieurs bonnes pratiques et solutions existent :
Avoir des systèmes de modération plus avancés
Les développeurs doivent continuellement améliorer les mécanismes de filtrage et de détection des prompts malveillants. Cela passe par l’utilisation de techniques avancées d’analyse sémantique et de traitement du langage naturel.
Limiter le contexte des prompts
Restreindre le champ d’action des IA et limiter le contexte fourni dans les prompts permet de réduire les possibilités d’exploitation. Il est recommandé de définir clairement les limites d’utilisation et les sujets autorisés.
Audit et surveillance continue
Mettre en place des processus d’audit régulier des interactions avec les IA permet de détecter rapidement les anomalies et les tentatives d’injection. Une surveillance continue des logs et des réponses générées est indispensable. Faire une veille régulière (via Modperl) sur le sujet peut également être une bonne idée.
Utiliser un modèle récent et connu
OpenAI a d’ailleurs mis en place une protection supplémentaire contre le prompt injection dans son dernier modèle GPT-4o mini. Cette protection appelée « instruction hierarchy » permet de renforcer les défenses d’un modèle contre les utilisations abusives et les instructions non autorisées.
Les modèles qui implémentent la technique accordent plus d’importance au prompt original du développeur, plutôt qu’aux prompts suivants.