La Consommation Excessive (Unbounded Consumption) est une vulnérabilité critique des modèles de langage (LLM), où des utilisateurs peuvent effectuer des inférences excessives et incontrôlées. Cela entraîne des risques tels que la dégradation du service, des pertes économiques, le vol de propriété intellectuelle et une exploitation abusive des ressources informatiques, particulièrement dans les environnements cloud.
Pourquoi est-ce important ?
Les modèles de langage nécessitent des ressources informatiques importantes pour fonctionner. Lorsqu’ils sont exploités sans contrôle, cela peut :
- Perturber la disponibilité du service (attaques par déni de service - DoS).
- Engendrer des coûts financiers insoutenables pour les fournisseurs utilisant un modèle de facturation à l’usage.
- Permettre le vol de modèles via des techniques d’extraction ou de clonage.
- Dégrader les performances globales du système.
Comment fonctionne une attaque ?
Les attaques exploitent divers mécanismes pour provoquer une consommation excessive des ressources :
- Surcharge d’entrées : Les attaquants soumettent un grand nombre d’entrées ou des requêtes complexes qui dépassent la fenêtre contextuelle du modèle, entraînant une utilisation excessive de la mémoire et du CPU.
- Exploitation économique : En générant un volume élevé d’opérations, les attaquants exploitent le modèle économique basé sur l’usage, créant des coûts insoutenables pour le fournisseur.
- Vol de modèle : Les attaquants utilisent l’API pour extraire suffisamment de données afin de créer un modèle équivalent ou un “shadow model”.
- Attaques par canal auxiliaire : Exploitation des techniques de filtrage d’entrée pour récupérer les poids du modèle ou ses informations architecturales.
Exemples de typologie failles
- Déni de service (DoS) : Un attaquant soumet une entrée volumineuse qui surcharge la mémoire et le CPU, rendant le système indisponible.
- Coût excessif (Denial of Wallet) : Des requêtes massives exploitent le modèle économique à l’usage, entraînant une ruine financière pour le fournisseur.
- Extraction de données synthétiques : Utilisation de l’API pour générer des données d’entraînement et affiner un autre modèle.
- Attaque par canal auxiliaire : Bypass des filtres d’entrée pour récupérer des informations critiques sur le modèle.
Exemple de failles connues ayant été exploité
Sourcegraph a subi une faille de sécurité en août 2023, où un jeton d’accès administrateur a été divulgué, permettant à un attaquant d’accéder à certaines données sur Sourcegraph.com. L’impact a été limité aux noms et adresses e-mail des destinataires des clés de licence pour les clients payants et aux adresses e-mail des utilisateurs communautaires. Les mesures correctives incluent la révocation de l’accès et la rotation des clés de licence affectées
Meta a tenté de rendre son modèle LLaMA accessible aux chercheurs, mais celui-ci a été divulgué sur 4chan peu après. Le modèle a été rapidement hébergé sur des plateformes comme GitHub et Hugging Face, malgré les demandes de retrait de Meta. LLaMA offrait un accès sans précédent à l’IA de pointe, mais sa fuite a soulever des inquiétudes quant à son utilisation abusive pour générer du spam, des arnaques ou de la désinformation.
Comment se protéger ?
Pour se prémunir contre ces attaques, plusieurs mesures peuvent être mises en place :
Contrôles sur les entrées
- Valider strictement les entrées pour éviter qu’elles ne dépassent les limites raisonnables.
- Limiter ou masquer l’exposition des paramètres sensibles tels que
logit_bias
etlogprobs
.
Gestion des ressources
- Appliquer des limites de taux (rate limiting) et quotas utilisateur pour restreindre le nombre de requĂŞtes.
- Surveiller dynamiquement l’allocation des ressources et implémenter un journalisation pour détecter les schémas inhabituels.
Dégradation contrôlée
- Concevoir le système pour maintenir une fonctionnalité partielle sous forte charge au lieu d’une panne complète.
- Mettre en place un équilibrage dynamique et une mise à l’échelle automatique.
Accès sécurisé
- Implémenter un contrôle strict d’accès basé sur les rôles (RBAC) et appliquer le principe du moindre privilège.
- Utiliser un registre centralisé pour gérer les modèles en production avec une gouvernance appropriée.
Prévention du vol de modèle
- Intégrer des frameworks de watermarking pour détecter les utilisations non autorisées.
- Former les modèles à détecter et atténuer les requêtes adverses.