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

06/11/2024

Blog technique

Les vulnérabilités dans les LLM : (5) Supply Chain Vulnerabilities

Jean-Léon Cusinato, équipe SEAL

Bienvenue dans cette suite d’articles consacrée aux Large Language Model (LLM) et à leurs vulnérabilités. Depuis quelques années, le Machine Learning (ML) est devenu une priorité pour la plupart des entreprises qui souhaitent intégrer des technologies d’Intelligence Artificielle dans leurs processus métier.

Focus technique : Qu'est-ce qu'un token ?

Dans le domaine des LLM (Large Language Models), les tokens représentent une unité de texte qui est utilisée par le modèle pour traiter et comprendre le langage naturel. Contrairement aux mots ou aux caractères, les tokens sont des segments de texte qui peuvent varier en taille et en complexité, en fonction du modèle et de la méthode de tokenisation utilisée.

Découpe des Tokens

Le découpage des tokens est un processus complexe qui dépend de plusieurs facteurs :

  • Les tokens peuvent être des mots entiers ou des sous-mots. Par exemple, le mot « tokenization » peut être découpé en plusieurs tokens comme « token », « ##ization ». Cette approche permet de gérer efficacement les mots rares ou inconnus.
  • Les caractères spéciaux, tels que les ponctuations, les symboles et les espaces, sont également pris en compte dans le processus de tokenisation.
  • La distinction entre majuscules et minuscules est généralement prise en compte. Par exemple, « Token » et « token » peuvent être considérés comme des tokens différents, car ils peuvent avoir des significations différentes dans certains contextes.
  • Les chiffres et les nombres sont également tokenisés. Ils peuvent être traités comme des tokens distincts ou intégrés dans les tokens de mots.
  • La tokenisation permet à l’IA de découper un message en sous-blocs et comprendre le sens de ce dernier. Par exemple, dans l’exemple ci-dessous, l’identification de l’utilisation des caractères majuscules et de la ponctuation permet au moteur de comprendre que le ton du message est différent.
Figure 1: Exemple de différence dans l'analyse des tokens majuscule et minuscule

Exemples de Tokenisation

Prenons quelques exemples pour illustrer le processus de tokenisation :

  • Exemple 1 : La phrase « Hello, world! » peut être tokenisée en [« Hello », « , », « world », « ! »].
  • Exemple 2 : Le mot « unhappiness » peut être découpé en [« un », « ##happy », « ##ness »].
  • Exemple 3 : La phrase « I have 2 apples » peut être tokenisée en [« I », « have », « 2 », « apples »].

Importance des Tokens

Les tokens sont essentiels pour le fonctionnement des LLM, car ils permettent au modèle de comprendre et de générer du texte de manière cohérente. Une bonne tokenisation peut améliorer la performance du modèle en réduisant la complexité et en augmentant la précision. De plus, la plupart des modèles étant généralement fournis en tant que SaaS (Software as a Service), le coût d’utilisation sera indexé sur le nombre de tokens utilisé lors de l’inférence (voir l’article (2) Insecure Output Handling).

De plus, certaines vulnérabilités dans l’injection de prompt (voir (1) Prompt Injection) se basent sur la longueur et le fonctionnement des tokens pour contourner certaines limites et restrictions de configuration.

Prenons par exemple, une situation dans laquelle le mot « unhapiness » sera interdit par la configuration de l’IA, ainsi que ses traductions dans toutes les langues. Ce mot, en français, serait découpé en plusieurs tokens : [« un », « ##happy », « ##ness »]. Pour contourner la restriction, un utilisateur pourrait tenter d’écrire le mot « malhappyado », un mot-valise composé d’un mélange entre « malheureux » (en français), « unhappiness » (en anglais) et « desgraciado » (en espagnol). Ce mot composite serait découpé par l’IA en [« mal », « ##happy », « ##ado »]. Bien qu’il n’ai aucun sens pour un humain, le moteur LLM traiterait chaque token indépendamment, ce qui activera les neurones nécessaires à la compréhension du mot « malheureux », par la combinaison du sens de chaque token dans sa langue d’origine.

Description de la vulnérabilité

Traditionnellement, les vulnérabilités que l’on peut retrouver dans la nature se concentrent sur les composants logiciels, mais le machine learning étend cette problématique aux modèles pré-entraînés et aux données d’entraînement fournis par des tiers, qui sont susceptibles d’être altérés par des attaques de manipulation et d’empoisonnement.

La vulnérabilité sur les chaînes d’approvisionnement (Supply Chain Vulnerabilities en anglais) des LLM se réfère aux faiblesses ou aux points de défaillance potentiels qui peuvent compromettre l’intégrité, la sécurité ou la performance de ces modèles au cours de leur fabrication et de leur diffusion aux utilisateurs finaux. Ces vulnérabilités peuvent ainsi survenir à différents niveaux de la chaîne d’approvisionnement, allant de la collecte et du traitement des données jusqu’à la formation et au déploiement des modèles. Par exemple, des données de formation biaisées ou malveillantes peuvent entraîner des modèles qui produisent des résultats incorrects ou préjudiciables.

De plus, des failles dans les infrastructures technologiques utilisées pour entraîner et déployer les LLM peuvent également introduire des vulnérabilités, telles que des cyberattaques ou des défaillances matérielles. Les processus de maintenance et de mise à jour des modèles peuvent également être des sources de vulnérabilités si des mises à jour incorrectes ou non sécurisées sont appliquées.

Enfin, les extensions de plugins LLM peuvent introduire leurs propres vulnérabilités. Celles-ci seront spécifiquement décrites dans notre septième article Insecure Plugin Design, qui traitera des vulnérabilités dans les plugins LLM.

Exemples

  • Lors du premier vol de données d’OpenAI, les attaquants sont passés par une vulnérabilité au sein de la librairie Python redis-py: Redis Python client.
  • Un employé compromis d’un fournisseur (développeur externalisé, hébergeur, etc.) exfiltre des données, des modèles ou du code en volant l’IP.
  • En lien avec l’attaque (3) Training Data Poisoning, un attaquant peux avoir contaminé les données d’un fournisseur tiers, afin de modifier le comportement du moteur lorsqu’un mot est utilisé. L’exemple ci-dessous montre comment la compromission du modèle au cours de sa construction pourrait entraîner la réponse de données manipulées par l’attaquant lors de l’utilisation d’un certain mot (ici, le mot « Sputnik »).
Figure 2 : Attaque sur les données externes fournies par un prestataire

Risques d'une telle vulnérabilité

Cette vulnérabilité peut affecter l’intégrité des données d’entraînement, des modèles de machine learning et des plateformes de déploiement. Elle peut de plus entraîner des résultats biaisés ou perpétuer et amplifier des préjugés existants, ce qui peut avoir des conséquences éthiques et légales. Autrement, les vulnérabilités sur la chaine d’approvisionnement peuvent entraîner des défaillances matérielles ou des erreurs de maintenance, et donc des interruptions de service, affectant la disponibilité et la fiabilité des modèles.

Pour aller plus loin

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

20 décembre 2024
La sécurité informatique peut paraître, pour beaucoup, comme un centre de coût et de complexité : plan d’audits à mettre en […]
16 décembre 2024
Après avoir exploré les vulnérabilités inhérentes aux modèles de langage à grande échelle (LLM) dans notre série d'articles, il est […]
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, [...]
12 novembre 2024
Les plugins pour LLM sont des extensions qui, lorsqu'ils sont activés, sont automatiquement appelés par le modèle pendant les interactions […]
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 […]
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 […]