L’empoisonnement de la chaîne d’approvisionnement dans le contexte des Large Language Models (LLM) fait référence aux vulnérabilités qui affectent l’intégrité des données d’entraînement, des modèles et des plateformes de déploiement.
Qu’est-ce que l’Empoisonnement de la chaîne d’approvisionnement ?
L’empoisonnement de la chaîne d’approvisionnement dans le contexte des Large Language Models (LLM) peut entraîner des résultats biaisés, des failles de sécurité ou des défaillances systémiques. Contrairement aux vulnérabilités traditionnelles des logiciels, qui se concentrent sur des failles de code ou des dépendances, les LLM sont également exposés à des risques provenant de modèles pré-entraînés par des tiers et de jeux de données compromis
Pourquoi est-ce important ?
L’empoisonnement de la chaîne d’approvisionnement est crucial car il peut compromettre la fiabilité et la sécurité des modèles LLM. Les attaquants peuvent exploiter ces vulnérabilités pour introduire des portes dérobées, des biais ou manipuler les comportements des modèles, ce qui peut avoir des conséquences graves, notamment des violations de données et des atteintes à la réputation .
Comment fonctionne une Attaque par Empoisonnement de la chaîne d’approvisionnement ?
Une attaque par empoisonnement de la chaîne d’approvisionnement peut se produire à différents stades du cycle de vie d’ un LLM :
- Pré-entraînement : Les attaquants peuvent introduire des données malveillantes dans les jeux de données utilisés pour l’entraînement initial des modèles.
- Ajustement : Les modèles peuvent être manipulés lors de l’ajustement pour des tâches spécifiques.
- Déploiement : Les composants ou plugins utilisés pour déployer les modèles peuvent être compromis.
Ces attaques peuvent passer inaperçues, car les modèles peuvent sembler fonctionner correctement tout en produisant des résultats biaisés ou malveillants.
Exemple de Failles Connue
Le cas PyTorch
En décembre 2022, les versions nocturnes de PyTorch ont été compromises par une attaque de la chaîne d’approvisionnement. Un dépôt de code d’une dépendance de PyTorch, torchtriton, a été compromis, permettant l’injection de code malveillant. Cela a affecté les utilisateurs qui ont installé les versions nocturnes de PyTorch entre le 25 et le 30 décembre 2022
Impact de l’attaque :
Le code malveillant était conçu pour collecter des informations sensibles, telles que les fichiers SSH et les configurations système, et les envoyer à un serveur distant. Cela a mis en danger les données personnelles et professionnelles des utilisateur
- Référence : Article de TechRepublic
Le cas PoisonGPT
Un exemple notable est l’attaque “PoisonGPT”, où des modèles empoisonnés ont contourné les benchmarks de sécurité, démontrant comment des vulnérabilités peuvent être introduites même dans des modèles apparemment sûrs
Impact de l’attaque :
- Référence : Comment lobotomisé les chats(GPT)
Comment se protéger ?
Pour se protéger contre l’empoisonnement de la chaîne d’approvisionnement, il est essentiel de :
- Vérifier les Sources : Utiliser uniquement des jeux de données et des modèles provenant de sources fiables.
- Tests de Sécurité : Effectuer des tests de sécurité réguliers et des exercices de red teaming pour détecter les vulnérabilités.
- Surveillance Continue : Mettre en place une surveillance continue pour détecter les comportements anormaux des modèles.
- Mises à Jour Régulières : Maintenir les composants de la chaîne d’approvisionnement à jour pour éviter les failles connues.
Références :