Rechercher
Fermer ce champ de recherche.

Vous êtes victime d’un incident de sécurité ? Contactez notre CERT

12/11/2024

Blog technique

Les vulnérabilités dans les LLM : (7) Insecure Plugin Design

Jean-Léon Cusinato, équipe SEAL

Bienvenue dans cette suite d’articles consacrée aux Large Language Model (LLM) et à leurs vulnérabilités.

Focus technique : Qu'est-ce que le RAG ?

Le RAG (Retrieval Augmented Generation) est une technique qui combine les capacités de récupération d’informations et celles de génération de texte des LLM (Large Language Model). Cette approche vise à améliorer la qualité et la pertinence des réponses générées par les modèles de langage en intégrant des informations externes au sein du contexte d’une requête (Voir (1) Prompt Injection).

Le processus de RAG se décompose en deux étapes principales : la récupération puis la génération.

  • Lors de la phase de récupération, le système utilise des techniques de recherche d’informations pour identifier et extraire des documents ou des passages pertinents à partir d’une base de données ou d’un corpus de texte. Cette étape est cruciale car elle permet de fournir au modèle de génération des informations contextuelles précises et actualisées.
  • Une fois les informations pertinentes récupérées, la phase de génération entre en jeu. Le modèle de génération de texte utilise les informations récupérées pour produire une réponse cohérente et informative.

Contrairement aux modèles de génération de texte traditionnels qui peuvent parfois produire des réponses incorrectes ou hors contexte en raison de leurs données d’entraînement limitées, le RAG permet de générer des réponses plus précises et mieux informées en s’appuyant sur des données externes fiables, intégrées dans le moteur après la génération du modèle.

Figure 1: Fonctionnement d'une requête se basant sur un LLM utilisant du RAG

L’un des principaux avantages du RAG est sa capacité à s’adapter à des contextes dynamiques et à des bases de connaissances en constante évolution. Par exemple, dans un système de chatbot ou d’assistant virtuel, le RAG peut être utilisé pour répondre à des questions complexes en temps réel en intégrant les dernières informations disponibles. Cette flexibilité rend le RAG particulièrement utile dans des applications où la précision et la pertinence des réponses sont essentielles, comme dans les systèmes de support client, les moteurs de recherche avancés et les outils de recommandation.

En résumé, le RAG représente une avancée significative dans le domaine de la génération de texte en intégrant des techniques de récupération d’informations pour améliorer la qualité et la pertinence des réponses générées. Cette approche hybride permet de surmonter certaines des limitations des modèles de génération de texte traditionnels et ouvre la voie à des applications plus sophistiquées et plus fiables dans divers domaines.

Description de la vulnérabilité

Les plugins pour LLM sont des extensions qui, lorsqu’ils sont activés, sont automatiquement appelés par le modèle pendant les interactions avec l’utilisateur. Ils sont pilotés par le modèle, et il n’y a pas de contrôle de l’application sur l’exécution. De plus, pour gérer les limitations de taille du contexte, les plugins sont susceptibles d’implémenter des entrées en texte libre provenant du modèle sans validation ni vérification de type. Si un développeur a effectué une conception de plugin non sécurisée (Insecure Plugin Design en anglais), un attaquant potentiel pourrait construire une requête malveillante à destination du plugin et l’utiliser pour induire des comportements non désirés.

Le danger des entrées malveillantes dépend souvent de contrôles d’accès insuffisants et de la difficulté de faire suivre l’autorisation à travers les différents plugins utilisés. Un contrôle d’accès inadéquat permet à un plugin de faire confiance aveuglément à d’autres plugins et de supposer que les entrées proviennent de l’utilisateur final. Un tel contrôle d’accès inadéquat peut permettre à des entrées malveillantes d’avoir des conséquences néfastes, allant de l’exfiltration de données à l’exécution de code à distance et à l’élévation des privilèges.

Cet article traite principalement les vulnérabilités issues des défauts provenant de la création de plugins LLM plutôt que de leur utilisation par un attaquant, qui est couverte par l’article sur les vulnérabilités de la chaîne d’approvisionnement LLM.

Exemples

  • Un utilisateur utilise un plugin pour récupérer le contenu d’une base de données. L’IA qui réalise le lien entre la page et l’attaquant n’identifiant pas les attaques, elle renvoie le contenu de la réponse malgré la présence d’une injection SQL. Pour l’exemple, ici l’IA renvoie l’URL permettant d’obtenir les informations météo. On peut imaginer que, dans la réalité, le plugin utiliserait cette URL pour afficher directement la carte météorologique, et donc utiliserait le lien malveillant généré.
Figure 2: exemple d'utilisation légitime du plugin météo
Figure 3: Exemple de SQLi dans une base de donnée gérée par IA
  • Un utilisateur requête une base de données afin d’obtenir des informations sur les vélos en vente. Un attaquant abuse de cette fonctionnalité pour obtenir les informations de connexion à cette base de données, qui sont manipulées de manière non sécurisée par le plugin. Cette attaque combine un plugin vulnérable avec un vol d’information sensible, présenté dans (6) Sensitive Information Disclosure.
Figure 4: Vol de mot de passe dans un plugin mal protégé
  • Un plugin accepte une entrée libre dans un champ sans l’assainir. Un attaquant serait en mesure d’utiliser des prompts pour effectuer une reconnaissance à partir des messages d’erreur renvoyés par l’application, pour ensuite exploiter des vulnérabilités tierces connues, exécuter du code et réaliser une exfiltration de données ou une élévation de privilèges.

Risques d'une telle vulnérabilité

Les plugins LLM, en tant qu’extensions automatiquement appelées par le modèle pendant les interactions avec l’utilisateur, sont particulièrement exposés à des attaques malveillantes.

Les attaquants peuvent exploiter des plugins mal conçus pour extraire des informations sensibles ou exécuter du code arbitraire sur le système hôte. Cela peut aussi entrainer une élévation de privilèges. De plus, un contrôle d’accès insuffisant peut permettre à des plugins de faire confiance aveuglément à d’autres plugins, supposant que les entrées proviennent de l’utilisateur final.

Les plugins étant la principale méthode utilisée pour permettre à un LLM d’interagir avec un système hôte, cette vulnérabilité est extrêmement critique, et l’analyse détaillée du code d’un plugin est nécessaire afin de s’assurer de sa sécurité.

Pour aller plus loin

Voir les derniers articles de notre Blog technique et les dernières actualités

28 novembre 2024
L'exfiltration de modèles LLM (Model Theft in english) par des acteurs malveillants ou des groupes de cyberespionnage avancés est une […]
26 novembre 2024
La surconfiance (Overreliance en anglais) peut survenir lorsqu'un LLM produit des informations erronées et les présente de manière autoritaire [...]
25 novembre 2024
Avec une souche éprouvée, des outils bien choisis et des cibles stratégiques, 8Base se distingue comme une menace particulièrement redoutable. […]
13 novembre 2024
Un système basé sur les LLM (Large Language Models) est souvent doté d'un certain degré d'autonomie par son développeur, [...]
7 novembre 2024
Les LLM ont le potentiel de révéler des informations sensibles (Sensitive Information Disclosure en anglais), des algorithmes propriétaires ou d'autres […]
6 novembre 2024
Le machine learning étend les vulnérabilités aux modèles pré-entraînés et aux données d'entraînement fournis par des tiers, qui sont susceptibles […]
31 octobre 2024
Un déni de service du modèle (Model Denial of Service en anglais) se produit quand un attaquant interagit avec un […]
28 octobre 2024
L'empoisonnement des données d'entraînement (Training Data Poisoning en anglais) fait référence à la manipulation des données de pré-entraînement ou des […]
27 octobre 2024
Find here the crypto and reverse challenges that our teams created for the European Cyber Week pre-qualification and qualification tests […]
23 octobre 2024
La gestion des sorties non sécurisées (Insecure Output Handling en anglais) fait référence à une validation, une désinfection et une […]