Gardez vos secrets

L’entreprise Truffle Security explique avoir trouvé près de 12 000 clés et mots de passe API dans l’une des bases de données les plus utilisées pour entrainer les IA génératives d’OpenAI, DeepSeek, Google, Meta, Anthropic, et Stability : Common Crawl. Non seulement Common Crawl expose des données sensibles, mais elle propose de mauvais exemples pour entrainer les IA sur l’utilisation des clés d’API.
Dans les 400 To de données compressées que contient Common Crawl, Truffle Security affirme avoir trouvé des milliers de clés et de mots de passe d’API. Au-delà du problème de sécurité pour les personnes directement concernées, l’entreprise de sécurité pointe un problème dans l’information donnée par les IA génératives aux développeurs : elles leur recommandent de coder en dur les clés et les mots de passe d’API.
Les modèles de langage donnent de mauvais conseils
Depuis 2008, l’organisation à but non lucratif Common Crawl parcourt le web, archive les pages sur laquelle elle passe et les stocke dans une base de données. Celle-ci fait actuellement 400 To de données, qui sont notamment utilisées par les entreprises d’IA générative, comme OpenAI ou DeepSeek, pour entrainer leurs modèles.
Truffle Security est une entreprise qui édite le logiciel libre Truffle Hog qui permet justement de scanner du code à la recherche de données sensibles. En décembre dernier, l’entreprise s’était aperçue qu’une bonne partie des grands modèles de données comme Lllama-3.3, GPT-4o, Claude 3.5 Sonnet ou encore Gemini 1.5 recommandaient de coder en dur (c’est-à-dire écrire directement dans le code) les informations secrètes que les développeurs utilisent pour accéder à des API.
« Les modèles les plus récents et les plus avancés ont obtenu les meilleurs résultats. Mais les secrets codés en dur dominaient toujours, même lorsque des exemples sécurisés étaient facilement disponibles », expliquaient-ils.
Ils remarquaient au passage que, dans son exemple d’utilisation, la documentation de Stripe-python faisait la même erreur (c’est toujours le cas), alors que celle de Slack montrait un exemple sécurisé. Cette différence semble se répercuter d’ailleurs sur les recommandations des modèles puisqu’ils sont plus nombreux à proposer de coder en dur les secrets API de Stripe que de Slack :

Truffle Security alertait aussi sur la répercussion de cette mauvaise recommandation sur les IDE qui intègrent de l’IA générative comme VS Code. Dans leur test, l’IDE en mode édition proposait du code généré utilisant des variables d’environnement, une solution sécurisée. Mais dans la vue Chat de l’IDE, GPT-4o a recommandé des informations d’identification codées en dur.
Près de 12 000 secrets API utilisables
Les chercheurs de l’entreprise se sont donc demandés pourquoi tous ces modèles proposent de coder en dur ces informations pourtant si sensibles. Sans trop d’étonnement, ils ont trouvé la réponse dans les données d’entrainement qu’utilisent tous ces modèles.
Dans Common Crawl, ils ont pu identifier 11 908 « secrets vivants » (live secrets, en anglais). Les secrets, comme nous l’expliquions en 2023, ce sont « tout ce qui permet d’accéder à un autre système ou de déchiffrer des données », qu’il s’agisse de paires nom d’utilisateur/mot de passe, de jetons d’API, d’URL de connexion à une base de données ou de cookies de session de navigateur. Le fait qu’ils soient « vivants » indique qu’ils permettent encore de se connecter, et donc qu’ils n’ont pas été modifiés ou n’ont pas expiré.
Truffle Security précise avoir détecté 219 types de secrets différents dans la base de données dont une clé root AWS utilisée pour l’authentification de base sur S3 (heureusement, celle-ci ne fonctionnait plus quand ils l’ont testée). Les clés API pour Mailchimp restent les secrets les plus partagés dans Common Crawl : près de 1 500 clés du service de newsletter étaient codées en dur dans du code HTML ou JavaScript. Ils remarquent aussi que l’utilisation répétée d’une même clé, chose qu’ils ont repérée, révèle la liste des clients d’une entreprise qui possède cette clé.
Truffle Security conseille aux développeurs qui utilisent ce genre d’IA pour générer leur code d’ajouter des instructions comme :
You are a security engineer with 30 + years of secure coding experience.
You never suggest hardcoded credentials or other insecure code patterns.
Vu la portée de la faille, Truffle Security n’a pas contacté toutes les entités touchées par le problème de peur d’être ensuite répertoriée comme un spammeur. L’entreprise explique avoir contacté les responsables des clés API dont les clients étaient les plus touchés et avoir collaboré avec eux pour révoquer les clés de leurs utilisateurs, ce qui a permis de modifier/révoquer plusieurs milliers de clés qui se trouvaient dans Common Crawl.