Les attaques de la chaîne d’approvisionnement visent vos agents de codage d’IA

Lucas Morel

Un APT nord-coréen a conçu des logiciels malveillants pour attirer les agents de codage de l’IA, tandis que le « slopsquatting » montre les risques de sécurité liés à des dépendances hallucinées.

Les attaquants cherchent également à tirer profit de l’engouement pour le codage de l’IA, en adaptant leurs techniques de chaîne d’approvisionnement pour cibler eux-mêmes les agents de codage.

De nombreux agents d’IA analysent de manière autonome les registres de packages tels que NPM et PyPI à la recherche de composants à intégrer dans leurs projets de codage, et les attaquants commencent à en profiter. Des packages d’appâts avec des descriptions convaincantes et des fonctionnalités légitimes sont apparus dans ces registres, tandis que des packages ciblant des noms que les agents de codage de l’IA sont susceptibles d’halluciner en tant que dépendances sont un autre vecteur d’attaque à l’horizon.

Les chercheurs de la société de sécurité ReversingLabs ont suivi l’une de ces attaques de chaîne d’approvisionnement qui utilise « l’abus d’optimisation LLM (LLMO) et l’injection de connaissances » pour rendre les packages plus susceptibles d’être découverts et choisis par les agents d’IA. Surnommée PromptMink, l’attaque a été attribuée à Famous Chollima, l’un des groupes APT nord-coréens chargé de générer des fonds pour le régime en ciblant les développeurs et les utilisateurs du secteur des cryptomonnaies et des technologies financières.

« Cette campagne nous présente la nouvelle frontière en matière de sécurité de la chaîne d’approvisionnement logicielle : des agents de codage d’IA manipulés pour installer et utiliser des dépendances malveillantes dans le code qu’ils génèrent », ont écrit les chercheurs dans leur rapport. « Le problème sous-jacent n’est, en principe, pas très différent du modèle bien établi de cybercriminels et d’acteurs malveillants qui manipulent socialement les développeurs pour qu’ils utilisent des packages malveillants dans leur base de code. Là où il diffère, c’est dans la capacité des acteurs malveillants à tester leur leurre avant qu’il ne soit déployé. »

Une campagne évolutive

Les acteurs nord-coréens de la menace utilisent couramment l’ingénierie sociale pour inciter les développeurs à installer des logiciels malveillants, que ce soit par le biais de faux entretiens d’embauche ou en publiant des composants logiciels malveillants susceptibles d’attirer les développeurs de secteurs spécifiques.

La campagne PromptMink semble avoir débuté en septembre dernier avec deux packages malveillants appelés @hash-validator/v2 et @solana-launchpad/sdk. Le SDK était utilisé comme un paquet d’appâts doté de fonctionnalités légitimes destinées à être découvertes par les développeurs, tandis que hash-validator, une dépendance du SDK, contenait un voleur d’informations JavaScript.

Cette combinaison d’un package leurre et d’une dépendance malveillante semble être une technique centrale utilisée par le groupe pour rendre ses campagnes plus résilientes. Les paquets d’appâts ont plus de chances de rester indétectables plus longtemps, accumulant des téléchargements et un historique pour paraître plus crédibles.

Plusieurs packages malveillants de deuxième couche ont été alternés au fil du temps dans le cadre de la campagne, notamment aes-create-ipheriv, jito-proper-excutor, jito-sub-aes-ipheriv et @validate-sdk/v2. Tous étaient liés aux réseaux de crypto-monnaie, se présentant comme des outils permettant de travailler avec des hachages et des fonctions cryptographiques. Les packages d’appâts se sont également diversifiés au fil du temps avec @validate-ethereum-address/core et plusieurs autres, s’étendant sur plusieurs registres de packages et langages de programmation tels que Python et Rust.

L’attaque a ensuite évolué pour inclure des techniques d’obscurcissement supplémentaires et des actions malveillantes, par exemple le déploiement d’une clé SSH contrôlée par l’attaquant sur les machines des victimes pour un accès direct à distance, ainsi que l’archivage et l’exfiltration de projets de code entiers à partir d’environnements compromis.

Un développement notable a été le passage à des charges utiles compilées pour compliquer la détection. Par exemple, en février, le package @validate-sdk/v2 a commencé à regrouper des applications exécutables uniques (SEA), des applications autonomes qui incluent du code JS avec l’interpréteur Node.js complet. Les SEA ne sont généralement pas distribués dans le cadre des packages NPM, car les utilisateurs ont déjà Node.js installé localement sur leurs machines.

En mars, les attaquants sont passés des SEA aux modules complémentaires Node.js malveillants précompilés écrits en Rust avec le projet NAPI-RS. Cela a probablement été fait pour réduire la taille de la charge utile, car les SEA sont inhabituellement volumineux, dépassant 100 Mo dans certains cas.

Utiliser les LLM pour tromper les LLM

Les chercheurs de ReversingLabs ont observé des signes évidents de codage d’ambiance dans la création de ces composants malveillants, y compris les commentaires de code générés par LLM. Cependant, quelque chose d’autre ressortait : le niveau de détail de leurs fichiers README et la manière dont la documentation se vantait de l’efficacité de ces packages dans l’exécution de leurs tâches.

Les chercheurs se sont demandé si cela visait à rendre les composants malveillants plus attrayants pour les développeurs, qui sont généralement la cible de telles attaques. Mais le langage trop convaincant avait plus de sens si les cibles visées étaient des agents de codage autonomes alimentés par LLM, et il n’a pas fallu longtemps avant qu’ils confirment que c’était probablement le cas.

Dans un article de janvier 2026 sur Moltbook, une plate-forme de type Reddit où les agents d’IA publient et discutent de sujets de manière autonome, un robot a décrit comment il avait créé un memecoin et utilisé le package @solana-launchpad/sdk car il possédait l’une des fonctions nécessaires. Il est possible que la publication ait été générée intentionnellement par un robot IA contrôlé par les attaquants. Mais ce n’était pas le seul exemple d’un agent d’IA tombant dans le piège du paquet d’appâts.

Les chercheurs ont ensuite trouvé un projet légitime appelé openpaw-graveyard qui a été développé dans le cadre du Solana Graveyard Hackathon et incluait le @solana-launchpad/sdk comme dépendance. L’historique du dépôt a montré que la dépendance avait été ajoutée dans un commit co-écrit par Claude Opus.

« Cela transforme la technique de l’ingénierie sociale en une combinaison d’abus d’optimisation LLM (LLMO) et d’injection de connaissances », ont conclu les chercheurs. « Dans le contexte de cette campagne, l’objectif est de rendre le LLM susceptible de recommander l’utilisation du package malveillant en rendant la documentation aussi crédible (injection de connaissances) et aussi appropriée que possible dans le projet sur lequel travaille l’agent de codage LLM spécifique. »

‘Slopsquatting’

Ce risque lié à la chaîne d’approvisionnement des agents IA ne se limite pas aux descriptions et à la documentation de packages spécialement conçues. Les agents de codage peuvent également complètement halluciner les noms de paquets. Des recherches antérieures ont montré que cela se produit assez souvent et de manière suffisamment prévisible pour que les attaquants puissent en abuser.

En janvier dernier, Charlie Eriksen, chercheur en Aikido Security, a enregistré un package npm appelé React-Codeshift qui a été halluciné par un LLM et a ensuite été intégré dans 237 référentiels GitHub.

Tout a commencé avec quelqu’un qui a codé un ensemble de compétences d’agent en octobre pour migrer des projets de codage vers différents frameworks. Cette collection comprenait deux compétences – réagir-modernisation et mise à niveau des dépendances – qui invoquaient le package halluciné réagir-codeshift via npx, un outil CLI fourni avec npm pour télécharger et exécuter des packages Node.js à la volée sans installation.

Les compétences d’agent sont des fichiers markdown ou JSON qui contiennent des instructions, des métadonnées et des exemples de code pour enseigner aux agents IA comment effectuer certaines tâches. Ils sont automatiquement activés pendant le fonctionnement de l’agent lorsque des mots-clés spécifiques sont rencontrés dans les invites.

Eriksen a enregistré le package React-Codeshift sur NPM et a immédiatement commencé à voir des téléchargements, suggérant que les compétences avec les noms de packages hallucinés étaient utilisées dans la pratique. Et pas seulement avec npx, mais également avec d’autres installateurs de packages Node.js, car les compétences originales ont été clonées et modifiées par d’autres développeurs.

« La chaîne d’approvisionnement vient de recevoir un nouveau maillon, fait de rêves de LLM », a déclaré Eriksen, qui a qualifié la nouvelle menace de « slopsquatting ».

« C’était une hallucination. Cela s’est propagé à 237 référentiels. Cela a généré de véritables tentatives de téléchargement. La seule raison pour laquelle cela n’est pas devenu un vecteur d’attaque, c’est parce que je suis arrivé le premier », a-t-il déclaré.

Les agents de codage vibratoire ont besoin de contrôles de sécurité plus stricts

Alors que les organisations s’empressent d’intégrer des agents d’IA dans leurs flux de travail et leurs pipelines de développement de logiciels, leurs contrôles de sécurité doivent suivre le rythme des nouveaux vecteurs d’attaque introduits par ces agents.

L’Agence américaine de cybersécurité et de sécurité des infrastructures, l’Agence américaine de sécurité nationale et leurs partenaires Five Eyes ont récemment publié un avis conjoint sur l’adoption de services d’IA agentique. Parmi les nombreuses recommandations, les agences conseillent aux organisations de maintenir des registres fiables de composants tiers approuvés, de restreindre les agents d’IA aux outils et versions autorisés et d’exiger l’approbation humaine avant les actions à fort impact.

« Des descriptions d’outils médiocres ou délibérément trompeuses peuvent amener les agents à sélectionner des outils de manière peu fiable, avec des descriptions convaincantes choisies plus souvent », ont averti les agences, confirmant effectivement que les LLM peuvent être socialement conçus grâce à la documentation.

Les agents de codage IA ne doivent pas être autorisés à installer des dépendances sans examen par le développeur, et chaque package suggéré doit être traité comme non fiable par défaut jusqu’à ce que ses dépendances transitoires soient examinées. Les équipes de développement doivent mettre en œuvre des pratiques de nomenclature logicielle (SBOM) afin de pouvoir suivre et auditer les composants utilisés dans leurs pipelines de développement.

CyberattaquesDéveloppement de logicielsIntelligence artificielleDevSecOpsSécurité des applications