Qu’est-ce qu’une attaque par injection d’invites ?

Brisez vos silos de sécurité et améliorez vos défenses grâce à la puissance d'une plateforme de cybersécurité unique.

Qu’est-ce qu’une attaque par injection d’invites ?

L'injection de prompt est un type de cyberattaque qui cible les services utilisant l'IA. Elle consiste à insérer des entrées malveillantes (prompts) pour extraire des informations non prévues ou sensibles du système, au-delà de ce que le développeur avait prévu. Si elle réussit, cela peut amener le service d'IA à retourner du contenu inapproprié ou même à exposer des configurations internes.

L'injection de prompt est particulièrement difficile à détecter et à bloquer dans les services d'IA basés sur le langage naturel, tels que les IA conversationnelles, car les entrées sont écrites en langage humain, qui n'a pas de structure ou de règles fixes, contrairement aux attaques par injection traditionnelles qui ciblent des formats de requête structurés.

Cette page se concentre sur l'injection de prompt dans le contexte des grands modèles de langage (LLM), qui traitent le langage naturel.

LLM et Prompts

Avant de plonger dans l'injection de prompt, il est important de comprendre ce que sont les LLM et les prompts.

Les grands modèles de langage sont un type d'IA générative formée sur des ensembles de données massifs de langage naturel. Ils sont utilisés dans des applications telles que les chatbots et la génération automatique de documents. Des exemples incluent le GPT-3/4 d'OpenAI et le BERT de Google.

Un prompt est l'entrée qu'un utilisateur fournit au modèle d'IA, souvent rédigée en langage naturel libre. Comme il n'y a pas de règles de syntaxe strictes, les utilisateurs doivent formuler soigneusement leurs entrées pour recevoir des réponses significatives. Cette pratique est connue sous le nom de prompting.

Explorons cela à l'aide d'un service de traduction en espagnole fictif alimenté par un LLM. Lorsqu'un utilisateur saisit une demande, comme indiqué dans la Figure 1, le système la traite en ajoutant un texte prédéfini (par exemple, « Veuillez traduire le texte suivant en espagnol ») pour créer un prompt complet. Ce prompt final est envoyé au LLM, qui renvoie une réponse traduite basée sur cette instruction.

Texte saisi par l'utilisateur

Figure 1. Texte saisi par l'utilisateur

Flux de traitement dans un service fictif de traduction anglaise par IA utilisant un grand modèle de langage

Figure 2. Flux de traitement dans un service fictif de traduction espagnol par IA utilisant un grand modèle de langage

Comment fonctionne l'injection de prompt

Voyons comment un attaquant pourrait exploiter cela. Supposons qu'un utilisateur malveillant entre un prompt similaire à celui montré dans la Figure 3. Le système combine alors cette entrée avec son prompt prédéfini, ce qui donne une entrée finale comme montré dans la Figure 4.

Le LLM, en recevant ce prompt, peut ignorer l'instruction originale et répondre à la commande insérée par l'attaquant, retournant potentiellement une sortie dangereuse ou non prévue (par exemple, des instructions sur la création de ransomware). Cet abus est difficile à détecter et à bloquer en raison de la nature du langage naturel de l'entrée.

Texte saisi par l'utilisateur malveillant et sa traduction en espagnol

Figure 3. Texte saisi par l'utilisateur malveillant et sa traduction en espagnol

Mensaje final generado (prompt)

Figure 4. Invite finale générée

Comment se défendre contre l'injection de prompt

Étant donné que l'injection de prompt utilise le langage naturel, elle est intrinsèquement plus difficile à détecter que les attaques par injection traditionnelles. Néanmoins, des stratégies spécifiques d'atténuation peuvent aider à réduire le risque:

Techniques de détection et de prévention

  • Défense par instructions: Insère des instructions de contrôle autour de l'entrée de l'utilisateur pour aider le LLM à comprendre quelles parties prioriser ou ignorer.

  • Post-Prompting: Place les entrées des utilisateurs après les prompts prédéfinis.

  • Encapsulation par séquence aléatoire: Encapsule les entrées des utilisateurs entre des marqueurs générés aléatoirement.

  • Défense par sandwich: Enveloppe les entrées entre deux prompts prédéfinis.

  • Marquage XML: Échappe les entrées des utilisateurs à l'intérieur des balises XML pour distinguer le contenu et réduire le risque d'exécution.

  • Évaluation par LLM: Utilise un LLM séparé pour présélectionner et évaluer le prompt avant l'exécution.

Ces techniques peuvent être mises en œuvre à l'intérieur du LLM ou au niveau de l'application. De plus, la validation des entrées, le contrôle d'accès et la limitation des fonctionnalités de composition des prompts aux utilisateurs de confiance sont des défenses complémentaires efficaces.

Avenir de l'injection de prompt

À mesure que l'IA générative devient plus courante dans les environnements d'entreprise, elle apporte de nouvelles efficacités, ainsi que de nouveaux risques de sécurité. L'injection de prompt est un de ces risques, où les attaquants manipulent les entrées pour extraire des informations sensibles ou non prévues des services basés sur les LLM.

Sa détection est difficile en raison de la nature ouverte du langage naturel. Cependant, grâce à des techniques telles que la défense par instructions, l'inspection des entrées et l'accès contrôlé, les organisations peuvent atténuer la menace de l'injection de prompt et assurer le déploiement sécurisé des outils d'IA.

Plateforme Trend Vision One

Arrêter les adversaires plus rapidement et prendre le contrôle de vos risques cybernétiques commence par une seule plateforme. Gérez la sécurité de manière holistique avec des capacités complètes de prévention, de détection et de réponse, alimentées par l'IA, des recherches et des renseignements sur les menaces de premier plan.

Trend Vision One prend en charge divers environnements informatiques hybrides, automatise et orchestre les flux de travail, et fournit des services de cybersécurité experts, afin que vous puissiez simplifier et converger vos opérations de sécurité.