31/10/2024
Blog technique
Les vulnérabilités dans les LLM : (4) Model Denial of Service
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 que le contexte d'une requête ?
Dans le domaine des LLM, la fenêtre de contexte désigne la longueur maximale de texte que le modèle est capable de traiter simultanément, englobant à la fois les entrées et les sorties. La taille de la fenêtre de contexte est définie par l’architecture spécifique du modèle et peut varier considérablement d’un modèle à l’autre. Par exemple :
- La fenêtre de contexte de ChatGPT 3.5 Turbo peut contenir environ 16 000 tokens
- Mistral AI Large 2 a une fenêtre de contexte de 32 000 tokens environ.
- ChatGPT 4o a une fenêtre de contexte de 128 000 tokens environ.
La fenêtre de contexte joue un rôle crucial dans la performance et l’efficacité des LLM. Une fenêtre de contexte plus large permet au modèle de comprendre des relations plus complexes et de traiter des textes plus longs, ce qui est particulièrement utile pour des tâches nécessitant une compréhension approfondie du contexte, comme la traduction, la génération de texte cohérent ou l’analyse de documents volumineux. En contrepartie, la puissance de calcul et le cout énergétique de l’inférence est supérieur.
En revanche, même avec un coût nettement plus faible, une fenêtre de contexte plus petite reste moins utile, car elle peut limiter la capacité du modèle à saisir des nuances subtiles et à maintenir la cohérence sur de longues séquences de texte ou de longues conversations (les questions et réponses précédentes sont souvent insérées dans le contexte du prompt suivant).
Description de la vulnérabilité
Un déni de service du modèle (Model Denial of Service en anglais) se produit quand un attaquant interagit avec un LLM de manière à consommer une quantité excessivement élevée de ressources ou de bloquer complètement les réponses de l’IA. Cela entraîne une dégradation de la qualité de service pour l’attaquant, mais aussi potentiellement pour les autres utilisateurs, tout en pouvant engendrer des coûts imprévu pour l’entreprise victime.
Ce problème devient de plus en plus critique en raison de l’utilisation croissante des LLM dans diverses applications, de leur consommation intensive de ressources, de l’imprévisibilité des entrées utilisateur et d’une méconnaissance générale de cette vulnérabilité parmi les développeurs.
Exemples
- Il est possible de bloquer une fenêtre de contexte d’une IA avec des ordres simples. Par exemple, en lui demandant de ne plus rien faire d’autre que répondre un mot. Cela n’impacte en général que la fenêtre de contexte de l’utilisateur actuel, mais dans certains cas, l’IA n’utilise qu’une seule fenêtre de contexte pour tous les utilisateurs (comme par exemple sur un bot Twitter).
- A l’aide d’une requête spécifiquement fabriqué en fonction des sécurités de l’IA, un attaquant peut exploiter les mécanismes récursifs d’un LLM pour provoquer une expansion répétée du contexte. En concevant des entrées qui tirent parti du comportement récursif du LLM, l’attaquant peut forcer le modèle à étendre et traiter le contexte de manière continue, consommant ainsi une quantité importante de ressources computationnelles. Cette attaque peut surcharger le système et entraîner une condition de déni de service (DoS), rendant le LLM non réactif ou provoquant son plantage.
- A l’aide d’une requête spécifiquement fabriqué en fonction des sécurités de l’IA, un attaquant peut demander à une IA d’afficher un résultat infiniment long. Cette attaque peut aussi surcharger le système et entraîner une condition de déni de service (DoS).
Risques d'une telle vulnérabilité
A minima, un déni de service du modèle peut entraîner des interruptions des services de l’entreprise, avec des conséquences potentiellement graves pour les utilisateurs et les organisations dépendantes de ces systèmes.
Les LLM nécessitent des ressources computationnelles considérables pour fonctionner efficacement. Un déni de service du modèle peut inonder le modèle avec un grand nombre de requêtes simultanées, ce qui peut rapidement épuiser les ressources disponibles. Cela peut entraîner une dégradation des performances, des temps de réponse plus longs, et même des interruptions de service.
Cette vulnérabilité peut entraîner des coûts financiers importants pour les entreprises. En plus des coûts directs liés à la surcharge des ressources, les interruptions de service peuvent entraîner des pertes de revenus, des pénalités contractuelles et des coûts de réparation.
Enfin cette attaque peut nuire à la réputation d’une organisation. Les utilisateurs peuvent perdre confiance dans les services fournis, ce qui peut entraîner une perte de clients et une détérioration de la marque. De même, un manque de disponibilité va pousser les utilisateurs à chercher un autre service très rapidement.
Pour aller plus loin
- Exemples de l’éponge : Attaques des réseaux neuronaux fondées sur l’énergie et la latence – [2006.03463] Sponge Examples: Energy-Latency Attacks on Neural Networks
- Une attaque à surveiller : le déni de service dans les LLM – An attack to be focused on :Denial of Service in Language models
- Déni de Service – OWASP Denial of Service | OWASP Foundation