Une attaque au cours de laquelle l’attaquant insère du contenu malveillant, par exemple dans des informations susceptibles d’être incluses dans une réponse à une requête ; lorsqu’il est récupéré, ce contenu malveillant amène le modèle d’IA à se comporter de manière inattendue ou préjudiciable. Voir Attaque par injection de requête et Attaque passive par injection de requête

Qu’est-ce qu’une attaque indirecte par injection de prompt ?

Une attaque indirecte par injection de prompt se produit lorsqu’un attaquant insère des instructions ou du contenu malveillants dans des informations externes qui sont ensuite récupérées ou utilisées par un modèle d’IA, une application ou un agent lors du traitement d’une requête.

Injection directe ou indirecte de prompts

Il existe des formes directes et indirectes d’injection de prompt. Une injection directe de prompt se produit lorsqu’un attaquant saisit des instructions ou du contenu malveillants directement dans le prompt d’un modèle. Dans le cas d’une injection indirecte de prompt, l’attaquant dissimule des instructions ou du contenu malveillants dans des ressources qui seront traitées par le modèle, telles que des pages web, des fichiers stockés dans des dépôts, des e-mails, des documents téléversés ou des entrées d’API.

Voici quelques différences essentielles entre l’injection directe et l’injection indirecte de prompts :

Injection directe de promptInjection indirecte de prompt

Concept fondamental

La charge utile malveillante est directement intégrée par l’utilisateur dans une invite adressée au modèle.

La charge utile malveillante est intégrée à des contenus externes que le modèle ingère ou récupère.

Systèmes cibles

Chatbots destinés aux utilisateurs, interfaces de recherche basées sur l’IA, points de terminaison d’API publiques, modèles conversationnels autonomes.

Systèmes de génération augmentée par récupération (RAG), agents d’IA autonomes ayant accès à des outils, outils de synthèse d’e-mails ou de documents, assistants d’IA capables de naviguer sur le Web ou d’en extraire des données.

Déclencheur d’attaque

Immédiate. L’attaque est déclenchée dès que l’attaquant soumet le prompt au modèle.

Différée et conditionnelle. L’attaque se déclenche lorsque le modèle ingère la ressource externe, soit dans le cadre d’un processus autonome, soit lorsqu’une personne utilise le modèle.

Mécanismes d’exécution

La charge utile malveillante contourne ou neutralise les contraintes de l’invite système au moyen d’un changement de contexte, d’un jeu de rôle, de scénarios hypothétiques ou d’une injection de préfixe (qui force le modèle à commencer sa réponse par une formule affirmative permettant de contourner les garde-fous).

Le modèle traite du contenu compromis, tel que du code malveillant, en même temps que des données d’entrée légitimes. Il ne parvient pas à les distinguer et exécute les instructions du code malveillant.

Comment fonctionne l’injection indirecte de prompt

L’injection indirecte de prompt repose sur un processus en plusieurs étapes. Les quatre étapes essentielles sont les suivantes :

1. Injection: l’attaquant insère des instructions ou du contenu malveillants dans des ressources externes, telles qu’un site web, un document, un e-mail ou un enregistrement de base de données. Pour dissimuler cette charge utile, l’attaquant peut utiliser du texte invisible (blanc sur fond blanc), des commentaires HTML ou des métadonnées.

2. Propagation : Un grand modèle de langage (LLM), une application d’IA ou un agent d’IA autonome ingère ce contenu compromis. Il peut effectuer une recherche RAG dans une base de données vectorielle, résumer le contenu d’une boîte de réception ou parcourir une page web. La charge utile se propage alors dans le système d’IA ou le flux de travail de l’agent.

3. Exécution : Le modèle traite les instructions ou le contenu malveillants en même temps que les données légitimes, telles que la requête adressée au modèle par un utilisateur. Lorsque le modèle ne parvient pas à distinguer les instructions malveillantes du contenu légitime, il peut suivre les instructions intégrées

4. Impact : En suivant ces instructions malveillantes, le système ou l’agent d’IA peut atteindre les objectifs de l’attaquant, notamment en divulguant des données sensibles, en modifiant des enregistrements système, en envoyant des e-mails non autorisés ou en fournissant un contenu inexact ou inapproprié à l’utilisateur à l’origine d’une requête légitime.

Scénarios et vecteurs d’attaque réels

Les attaquants peuvent recourir à une grande variété de vecteurs pour mener des injections indirectes de prompts et utiliser cette technique afin d’atteindre divers objectifs visant les entreprises. Voici quelques exemples concrets :

Manipulation du processus de recrutement : Un attaquant pourrait intégrer dans un CV au format PDF des instructions cachées demandant à un outil de présélection des candidats basé sur l’IA de classer le candidat parmi les meilleurs et d’ignorer toute information négative. Au-delà de permettre à une personne de décrocher un premier entretien, un attaquant pourrait utiliser cette tactique dans le cadre d’une opération plus vaste d’espionnage industriel.

Mener une attaque de phishing contre les clients : Sachant qu’une entreprise donnée utilise un service client basé sur l’IA, un attaquant pourrait envoyer une demande d’assistance au moyen d’un formulaire web ou d’un e-mail. Cette demande contiendrait une requête apparemment légitime faisant référence au compte d’un véritable client, mêlée à des instructions cachées et intégrées. Ces nouvelles instructions pourraient remplacer les instructions précédemment données au modèle et lui demander d’envoyer au véritable client un e-mail contenant un lien de phishing.

Commettre une fraude lors du processus d’approvisionnement : Un attaquant pourrait infiltrer le site web d’un fournisseur B2B et y intégrer des instructions malveillantes qu’un agent d’approvisionnement basé sur l’IA serait amené à lire. L’agent pourrait parcourir le site afin d’en extraire les données tarifaires, mais également lire ces nouvelles instructions, susceptibles de prendre le pas sur les directives existantes et de l’inciter à transférer immédiatement des fonds vers le compte de l’attaquant.

Stratégies de prévention et de défense

Compte tenu du nombre de vecteurs potentiels pour ce type d’attaque, il peut être difficile de prévenir les injections indirectes de prompts et de s’en protéger. Toutefois, la mise en œuvre de trois bonnes pratiques peut aider les organisations à réduire la probabilité de réussite de ces attaques.

1. Considérer par défaut les données externes récupérées comme non fiables : Les systèmes d’IA doivent considérer toutes les données externes comme des entrées brutes et non fiables, et empêcher qu’elles soient utilisées comme des instructions système exécutables. En complément, les organisations doivent appliquer le principe du moindre privilège aux modèles et aux agents, en limitant leurs actions et leurs accès lorsqu’ils traitent ces données externes non fiables.

2. Mettre en place des garde-fous doubles (en entrée et en sortie) : Les organisations doivent appliquer des garde-fous d’IA aux entrées comme aux sorties des modèles. Les garde-fous en entrée peuvent empêcher les modèles d’être exposés à des instructions et à du contenu malveillants en détectant les tentatives d’injection de prompt ou de contournement des instructions système. Les garde-fous en sortie peuvent contrôler et valider les résultats (qu’il s’agisse de texte ou d’actions d’agents) avant leur exécution par le modèle. Ils peuvent, par exemple, bloquer les liens externes et empêcher les appels non autorisés à d’autres systèmes.

3. Recourir à une validation humaine (HITL) pour les actions sensibles : Exiger une validation humaine pour certaines actions des modèles et des agents peut mettre fin aux attaques à grande échelle ou, à tout le moins, en limiter les conséquences. Par exemple, les organisations peuvent imposer une validation humaine pour les transactions financières dépassant un certain seuil effectuées par des agents, les modifications en masse de bases de données ou les changements apportés aux informations des comptes clients.

Questions fréququemment posées

Qu’est-ce que le « problème du mandataire confus » pour les agents d’IA ?

Le « problème du mandataire confus » désigne une situation dans laquelle un utilisateur disposant de privilèges limités trompe un agent d’IA doté de privilèges plus élevés (le « mandataire ») afin qu’il effectue une action en son nom. L’utilisateur peut recourir à une injection indirecte de prompt pour contraindre l’agent, par exemple en intégrant des commandes malveillantes dans un contenu qui semble par ailleurs constituer une entrée légitime.

Comment les injections indirectes de prompts menacent-elles les systèmes de génération augmentée par récupération (RAG) ?

Les attaquants peuvent utiliser des systèmes de génération augmentée par récupération (RAG) pour procéder à une injection indirecte de prompt. S’ils parviennent à intégrer des instructions malveillantes dans un document ingéré dans la base de données vectorielle du système RAG, ces instructions pourraient être lues (et exécutées) par un modèle accédant à la base de données.

En quoi l’isolation des prompts diffère-t-elle du contrôle des privilèges pour les modèles et agents d’IA ?

Le cloisonnement des prompts empêche les modèles et les agents d’être trompés ou induits en erreur par des entrées malveillantes. Cette technique peut consister à séparer les canaux de données et d’instructions, ou à utiliser un modèle secondaire pour assainir les entrées non fiables. Le contrôle des privilèges limite ce qu’un modèle ou un agent peut faire, même s’il reçoit des instructions malveillantes. Les organisations peuvent appliquer le principe du moindre privilège, mettre en œuvre un contrôle d’accès fondé sur les rôles ou maintenir une intervention humaine afin de s’assurer que même les modèles et agents induits en erreur n’exécutent pas d’actions gravement préjudiciables.

Les pare-feu d’applications web (WAF) traditionnels peuvent-ils détecter les injections indirectes de prompts ?

Les pare-feu d’applications web (WAF) traditionnels ne sont pas conçus pour détecter de manière fiable les injections indirectes de prompts. Ces solutions protègent le trafic HTTP entrant et les requêtes des utilisateurs, mais les injections indirectes de prompts proviennent de sources de données tierces. En outre, les WAF recherchent du code susceptible de signaler une attaque, tandis que les injections indirectes de prompts utilisent des instructions en langage naturel que les WAF ne considéreraient pas comme des menaces.

Comment sécuriser les systèmes et applications d’IA pendant l’inférence et lors de leur exécution ?

La sécurisation des systèmes et applications d’IA pendant l’inférence et l’exécution nécessite des contrôles capables d’inspecter les invites, les réponses, les actions des agents et l’utilisation des outils au fil des interactions. Une sécurité d’exécution propre à l’IA peut contribuer à bloquer les injections d’invites, à prévenir les fuites de données sensibles, à faire respecter les politiques et à encadrer la manière dont les modèles et les agents interagissent avec les utilisateurs, les données, les API et les outils connectés.

Quelles fonctionnalités de F5 contribuent à la sécurité de l’IA en entreprise ?

F5 AI Guardrails aide à appliquer les politiques d’exécution et à se protéger contre des risques tels que l’injection de prompts, les fuites de données, les résultats préjudiciables et les actions dangereuses des agents. F5 AI Red Team utilise des tests contradictoires pour détecter les vulnérabilités et les faiblesses. F5 AI Gateway fournit un point de contrôle centralisé pour régir l’accès aux modèles, aux agents et aux outils, tandis que F5 Workforce AI Security offre une visibilité sur les usages autorisés et non autorisés de l’IA dans l’ensemble de l’entreprise. Ensemble, ces fonctionnalités font partie de la F5 AI Security Platform. Pour une protection plus étendue des applications, des API et des environnements distribués, la F5 Application Delivery and Security Platform (ADSP) réunit des fonctionnalités telles que la protection des applications web et des API, la gestion des bots, l’atténuation des attaques DDoS et la mise à disposition des applications.