Claude Code a un problème de sécurité MCP — et vos développeurs l’utilisent déjà

Lucas Morel

Vos développeurs font confiance à leurs outils. Cette confiance est exploitée.

Claude Code est l’assistant de codage d’IA d’Anthropic, un outil en ligne de commande que les développeurs adoptent rapidement. Il se connecte aux services externes via Model Context Protocol, la norme qui permet aux outils d’IA d’interagir avec Jira, Confluence, GitHub, les bases de données et les API internes. Lorsqu’un développeur connecte l’un de ces services, Claude Code exécute un flux OAuth, l’utilisateur approuve les étendues et l’outil reçoit un jeton de porteur qu’il utilise pour chaque requête ultérieure.

Ce jeton est stocké en texte brut dans un fichier de configuration sur la machine du développeur. Et les chercheurs ont maintenant montré exactement comment les attaquants y parviennent.

Ce que les chercheurs ont découvert

La semaine dernière, des chercheurs de Mitiga Labs ont publié une chaîne d’attaque qui devrait inquiéter toutes les équipes de sécurité dont les développeurs utilisent Claude Code. L’attaque commence par un package npm malveillant, quelque chose qui ressemble à un utilitaire ou un wrapper légitime. Caché à l’intérieur se trouve un hook de post-installation qui s’exécute silencieusement pendant l’installation. Ce hook réécrit un seul fichier : ~/.claude.json.

Ce fichier est le point de contrôle de la manière dont Claude Code achemine le trafic MCP. Modifiez-le et vous pourrez diriger les requêtes authentifiées de Claude Code vers une infrastructure contrôlée par des attaquants au lieu du service légitime. Les jetons OAuth stockés dans ce même fichier sont interceptés en transit. L’attaquant détient désormais des jetons porteurs valides et de longue durée pour chaque plate-forme SaaS connectée par le développeur : Jira, Confluence, GitHub, quelle que soit celle qui a été intégrée.

Ce qui rend cela particulièrement difficile à détecter, c’est à quoi ressemblent les journaux d’audit à l’autre bout du fil. L’adresse IP dans les journaux du fournisseur correspond à la plage de sortie d’Anthropic. L’utilisateur est réel. La séance est valide. Comme l’a dit Mitiga, rien dans cette ligne de journal n’est faux – mais rien n’est correct non plus. L’utilisateur n’a pas exécuté la requête. Un attaquant l’a fait, en utilisant un jeton qui a été redirigé silencieusement avant d’atteindre sa destination prévue.

Mitiga l’a signalé à Anthropic le 10 avril. Anthropic a répondu le 12 avril que le problème était hors de portée, estimant que l’attaque nécessite l’exécution préalable de code via l’installation d’un package auquel l’utilisateur a consenti. Au moment d’écrire ces lignes, aucun correctif n’existe. La chaîne d’attaque est active.

La différence est que les attaques AiTM ciblent les sessions du navigateur. Cela cible les outils de développement – ​​et les outils de développement sont plus proches de votre code source, de vos API internes, de votre infrastructure cloud et de vos systèmes de production que la plupart des sessions de navigateur ne le font jamais.

L’adoption du Code Claude s’accélère. Les développeurs l’installent car cela améliore véritablement leur flux de travail. Ils le connectent aux outils qu’ils utilisent quotidiennement. La plupart d’entre eux ne pensent pas à ce que les scripts de post-installation dans leurs dépendances npm font à leurs fichiers de configuration locaux. Il ne s’agit pas d’un manque de conscience, mais d’une attente déraisonnable. L’équipe de sécurité doit plutôt y réfléchir.

Trois contrôles qui aident en ce moment

  1. Moniteur ~/.claude.json pour les changements inattendus. Ce dossier est le point pivot de l’attaque Mitiga. Les modifications apportées aux points de terminaison du serveur MCP dans ce fichier (en particulier les ajouts de nouvelles adresses proxy localhost ou de points de terminaison externes inconnus) devraient déclencher une alerte. La plupart des organisations n’effectuent aucune surveillance des fichiers de configuration au niveau utilisateur dans les environnements de développement. Cela doit changer. Mitiga recommande spécifiquement de suivre les modifications apportées à la configuration de Claude Code, aux URL du serveur MCP et au comportement d’actualisation OAuth comme couche de détection principale.
  2. Considérez les hooks de post-installation npm comme un problème de sécurité de premier ordre. L’attaque Mitiga commence par un package npm malveillant. Les hooks post-installation qui exécutent du code arbitraire au moment de l’installation constituent une classe de risque connue pour la chaîne d’approvisionnement, mais leur application dans les environnements de développement est incohérente. Auditez ce qui s’exécute lors de l’installation du package dans vos pipelines de développement. Pensez à exiger la révision des packages qui incluent des scripts de post-installation avant qu’ils n’atteignent les ordinateurs des développeurs. Il ne s’agit pas d’une recommandation spécifique au Code Claude ; cela s’applique à tous les outils de votre pile de développement. Claude Code vient de rendre les conséquences d’une erreur beaucoup plus tangibles.
  3. Auditez les jetons OAuth connectés aux intégrations Claude Code et faites-les pivoter. Les développeurs qui connectent Claude Code à Jira, Confluence, GitHub ou toute autre plateforme SaaS créent des jetons OAuth qui persistent au fil des sessions. Si ces jetons étaient actifs pendant une période au cours de laquelle un package malveillant a été installé, ils doivent être traités comme potentiellement compromis. Faites-les pivoter. Examinez les journaux d’audit du côté du fournisseur pour connaître les modèles d’activité décrits par Mitiga : des requêtes apparemment valides provenant des adresses IP de sortie d’Anthropic que le développeur n’a pas initiées. Notez que la rotation des jetons à elle seule ne rompt pas la chaîne si le hook malveillant est toujours présent : le hook réamorcera la configuration et capturera de nouveaux jetons lors de la prochaine actualisation. La correction nécessite de supprimer le hook et de nettoyer d’abord la configuration.

Une évaluation honnête

La réponse d’Anthropic à la divulgation de Mitiga – selon laquelle l’attaque est hors de portée parce que l’utilisateur a consenti à l’installation du paquet – suit une logique que les praticiens de la sécurité reconnaîtront et que la plupart rejetteront. Le consentement à l’installation d’un package n’équivaut pas à un consentement à ce que ce package réécrive la configuration de routage de votre outil d’IA et intercepte vos informations d’identification SaaS. Les deux choses ne sont pas identiques et les traiter comme équivalentes fait peser toute la charge de la sécurité de la chaîne d’approvisionnement sur le développeur, qui porte un jugement en une fraction de seconde sur le nom d’une dépendance.

Ce n’est pas un modèle de sécurité raisonnable.

Les vulnérabilités Check Point corrigées montrent qu’Anthropic est réactif lorsque le problème est correctement formulé. La recherche Mitiga date d’une semaine. La question de savoir si un correctif suivra est une question ouverte, mais la chaîne d’attaque fonctionne aujourd’hui quelle que soit la manière dont cette question est résolue.

Vos développeurs utilisent Claude Code. La question pour les équipes de sécurité n’est pas de savoir s’il faut s’attaquer à ce risque, mais à quelle vitesse vous pouvez mettre en œuvre une détection et une réponse qui en tiennent compte. Le fichier de configuration est petit, les exigences de surveillance sont spécifiques et la chaîne d’attaque est documentée. Il vaut mieux commencer par là que d’attendre un correctif d’un fournisseur qui pourrait ne pas arriver.

Cet article est publié dans le cadre du Foundry Expert Contributor Network.
Voulez-vous nous rejoindre ?

Outils de développementDéveloppement de logicielsSécurité des applicationsSécuritéSécurité des données et des informations