La Gestion Inappropriée des Sorties concerne les défauts dans la gestion des contenus générés par les LLM avant leur traitement par d’autres systèmes, exposant les applications à divers risques de sécurité.
Pourquoi est-ce important ?
Les sorties générées par les modèles de langage peuvent contenir des données non validées ou mal nettoyées, ce qui peut entraîner des failles telles que des injections SQL, des attaques XSS ou même des exécutions de code à distance.
Comment fonctionne une attaque liée à Gestion Inappropriée des Sorties ?
Une attaque exploitant cette vulnérabilité repose sur l’utilisation de prompts malveillants pour manipuler les sorties générées par le LLM. Ces sorties peuvent ensuite être interprétées ou exécutées par d’autres systèmes sans validation adéquate. Par exemple :
- Injection SQL : Un LLM génère une requête SQL basée sur un prompt, qui est ensuite exécutée directement sans paramétrage dans une autre application.
- XSS : Du JavaScript ou autre code client généré par le LLM est inséré dans une page web sans échappement, permettant une exécution malveillante.
- Exécution de code : Les sorties sont utilisées dans des fonctions comme
eval
ouexec
, conduisant à une exécution de code arbitraire.
Exemples de faille connue
En 2023, ChatGPT a été victime d’une attaque de Cross-Plugin Request Forgery et de Prompt Injection, où des prompts malveillants ont été utilisés pour exécuter des actions non autorisées ou injecter du contenu malveillant dans les sorties générées. Référence
Comment se protéger ?
Pour se protéger contre une Gestion Inappropriée des Sorties, il est essentiel de :
- Valider et nettoyer toutes les sorties : Chaque contenu généré doit être vérifié avant son utilisation. Prevenir les XSS
- Deployer les politiques de contenu: Implémentez des politiques de sécurité strictes, comme le Content Security Policies (CSP), pour limiter les sources de scripts exécutables.
- Utiliser des modèles prédéfinis : Limitez les formats de sortie pour éviter les comportements inattendus. Par exemple, n’envoyer que des retours en format texte brut ou markdown
- Limiter les privilèges : Réduisez l’accès aux composants qui interprètent ou exécutent les sorties des LLM.
- Effectuer des tests de sécurité réguliers:y compris des tests d’intrusion et des audits de code, pour identifier et corriger les vulnérabilités. Intégrez des tests de sécurité dans votre pipeline CI/CD et collaborez avec des experts en sécurité pour effectuer des audits approfondis. Référence : OWASP Testing Guide, L’Utilisation de PromptFoo
- Détecter les anomalies : Implémentez des outils pour identifier les sorties inhabituelles ou dangereuses.
Références :