Un employé d'Anthropic a accidentellement exposé l'intégralité du code source propriétaire de son outil de programmation IA, Claude Code, en incluant un fichier de mappage de source dans une version de l'outil publiée sur le compte public d'Anthropic dans le registre npm, une erreur risquée selon un expert en IA. « Une carte source compromise constitue un risque de sécurité », a signalé Joseph Steinberg, expert américain en cybersécurité et en IA. « Un pirate informatique peut utiliser une carte source pour reconstituer le code source d'origine et [voir] comment il fonctionne. Tous les secrets contenus dans ce code – si quelqu'un a codé une clé API, par exemple – sont exposés, tout comme l'ensemble de la logique. Et toute vulnérabilité détectée dans la logique pourrait être mise en évidence pour le pirate, qui pourrait alors l'exploiter. » Cependant, un porte-parole d’Anthropic a déclaré à notre confrère CSO : « Aucune donnée sensible ni aucun identifiant de client n’ont été impliqués ou exposés. Il s’agissait d’un problème de packaging de la version causé par une erreur humaine, et non d’une faille de sécurité. Nous mettons en place des mesures pour éviter que cela ne se reproduise. » Mais ce n’était pas la première fois que cela se produisait ; selon Fortune et d’autres sources d’information, la même chose s’est produite le mois dernier.
N'exposez pas les fichiers .map
Les fichiers .map ne doivent pas être laissés dans la version finale du code publiée sur les registres open source, où n'importe qui peut télécharger un paquet ; ils peuvent constituer des sources d'informations utiles pour les pirates. Selon le développeur Kuber Mehta, qui a publié un article de blog sur le dernier incident, lorsqu’une personne publie un paquet JavaScript/TypeScript sur npm, la chaîne d’outils de compilation génère souvent des fichiers de carte de source (.map). Ces fichiers font le lien entre le code de production minifié/regrué et la source d’origine ; ils existent pour que, lorsqu’un incident survient en production, la trace de la pile puisse pointer vers la ligne de code réelle dans le fichier d’origine, et non vers une référence incompréhensible.
Que contiennent ces fichiers ? « Chaque fichier. Chaque commentaire. Chaque constante interne. Chaque invite système. Tout cela se trouve dans un fichier JSON que npm fournit volontiers à quiconque exécute npm pack ou même simplement parcourt le contenu du paquet », a déclaré Kuber Mehta. « L’erreur est presque toujours la même : quelqu’un oublie d’ajouter *.map à son .npmignore ou ne configure pas son bundler pour ignorer la génération de cartes de source pour les builds de production », poursuit Kuber Mehta. « Avec le bundler de Bun (que Claude Code utilise), les cartes de source sont générées par défaut, sauf si vous les désactivez explicitement. »
Considérez une carte source comme un fichier qui montre ce que font les différentes parties du code informatique minifié, qui n’est pas facilement compréhensible par les humains, en les affichant sous forme de code source lisible par l’homme, a expliqué M. Steinberg. Par exemple, a-t-il ajouté, cela peut indiquer que le code dans une partie spécifique du code exécutable exécute les instructions qui apparaissent dans un extrait spécifique du code source. Une carte source peut faciliter le débogage, a-t-il ajouté. Sans elle, a-t-il déclaré, de nombreuses erreurs seraient identifiées comme provenant d’une partie plus large du code, plutôt que d’indiquer exactement où elles se produisent. Le monde a pris connaissance de cet incident lorsque le chercheur en sécurité Chaofan Shou a publié ce message tôt mardi sur X : « Le code source de Claude a été divulgué via un fichier de carte dans leur registre npm ! », accompagné d’un lien vers le fichier.
Une erreur courante
Laisser des fichiers de carte source dans un paquet « est une erreur incroyablement courante que les développeurs commettent assez souvent », a déclaré la formatrice en codage sécurisé Tanya Janca. « Dans cette situation spécifique, c’est plus grave que cela ne le serait ailleurs, principalement en raison de la valeur incroyablement élevée de la propriété intellectuelle en jeu, et parce que désormais, des acteurs malveillants peuvent analyser directement le code source à la recherche de vulnérabilités au lieu de devoir le rétroconcevoir, ce qui ajoute du temps, du coût et de la complexité. »
Idéalement, selonTanva Janca, les développeurs devraient renforcer la sécurité de leur environnement de compilation afin de ne pas inclure d’informations ou de fonctionnalités de débogage dans la version de production. Elle a donné ces conseils aux développeurs :
- Désactiver les cartes de source dans l’outil de compilation/bundler ;
- Ajouter le fichier .maps au champ des fichiers .npmignore / package.json pour l’exclure explicitement, même s’il a été généré accidentellement lors de la compilation ;
- Exclure les fichiers .maps de la liste des artefacts publiés dans l’environnement d’intégration continue/déploiement continu ;
- Séparer soigneusement les versions de débogage des versions de production s’il existe des différences ; même les commentaires peuvent être extrêmement sensibles.
Une couche critique exposée
Toute exposition du code source ou de la logique au niveau du système est significative, car elle montre comment les contrôles sont mis en œuvre, a commenté Dan Schiappa, président de la technologie et des services chez Arctic Wolf. Avec ces informations exposées, le nombre de personnes qui comprennent désormais comment le modèle impose un comportement, gère l’accès et traite les cas limites augmente, selon le diriegant. « Dans les systèmes IA, cette couche est particulièrement critique. L'orchestration, les prompts et les workflows définissent concrètement le fonctionnement du système. Si ceux-ci sont exposés, cela peut faciliter l'identification des faiblesses ou la manipulation des résultats. Sachant que les attaquants continuent de découvrir les moyens les plus efficaces d'exploiter l'IA, cela signifie que dans tous les cas où un outil pourrait être compromis, des cybercriminels attendent probablement dans les coulisses », ajoute Dan Schiappa.