Les outils d'IA de codage inventent des noms de paquets inexistants qui sabotent la chaîne d'approvisionnement en logiciels
les attaquants publient des paquets malveillants avec ces noms sur npm ou PyPI

Certains dirigeants d'entreprise affirment que jusqu'à 95 % du code sera généré par l'IA à l'avenir et qu'il n'est plus nécessaire d'apprendre à coder. Mais de récentes études ont révélé que le code généré par l'IA sabote la chaîne d'approvisionnement en logiciels. Une nouvelle catégorie d'attaques contre la chaîne d'approvisionnement, appelée slopsquatting, est née de l'utilisation accrue d'outils d'IA pour le codage et de leur tendance à halluciner des noms de paquets inexistants. Les acteurs de la menace créent ensuite des paquets malveillants sur npm ou PyPI en les nommant d'après les noms couramment inventés par les modèles d'IA dans le code généré.

En juin 2023, le PDG de GitHub, Thomas Dohmke, a déclaré que son assistant d'IA de codage Copilot va écrire 80 % du code informatique « tôt ou tard ». Le mois dernier, le directeur technique de Microsoft, Kevin Scott, s'est montré encore plus optimiste. Kevin Scott a déclaré que 95 % du code informatique sera généré par l'IA d'ici à 5 ans, avant d'ajouter : « cela ne signifie pas que l'IA fera le travail des ingénieurs logiciels. L'humain restera aux commandes ».

Mais le code généré par l'IA introduit de nouveaux défis en matière de cybersécurité dans la chaîne d'approvisionnement en logiciels. Les assistants d'IA de codage ont l'habitude d'avoir des hallucinations. C'est-à-dire qu'ils suggèrent des codes qui intègrent des progiciels (ou paquets) qui n'existent pas.

Un groupe de chercheurs a publié en mars 2025 une étude sur les hallucinations de paquets. Ils ont examiné 576 000 échantillons de code Python et JavaScript générés par l'IA. Les chercheurs ont constaté qu'environ 5,2 % des suggestions de progiciels (ou paquets) provenant de modèles commerciaux comme ChatGPT-4 n'existaient pas, contre 21,7 % pour les modèles open source ou librement accessibles comme CodeLlama, DeepSeek, WizardCoder et Mistral.

Nom : rates.png
Affichages : 4309
Taille : 75,7 Ko

L'exécution de ce code devrait entraîner une erreur lors de l'importation d'un paquet inexistant. Mais des acteurs de la menace ont compris qu'ils pouvaient détourner l'hallucination à leur profit. Le processus d'attaque le suivant : il leur suffit de créer un logiciel malveillant sous un nom de paquet halluciné par un modèle, puis de télécharger le mauvais paquet dans un registre ou un index de paquets comme PyPI ou npm pour le distribuer largement.

Par la suite, lorsqu'un assistant d'IA hallucine à nouveau le nom coopté, le processus d'installation des dépendances et d'exécution du code lancera le logiciel malveillant. Les chercheurs alertent sur ce phénomène et affirment qu'il s'agit d'une nouvelle menace pour la chaîne d'approvisionnement en logiciels.

Le slopsquatting : une menace pour la chaîne d'approvisionnement en logiciels

Seth Michael Larson, développeur en résidence à la Python Software Foundation, a baptisé ce phénomène « slopsquatting ». Un acteur de la menace crée un paquet malveillant sur des index tels que PyPI et npm en les nommant d'après des noms couramment inventés par l'IA. Il espère ensuite que quelqu'un, guidé par un assistant d'IA de codage, va copier-coller ce nom de paquet et tentera de l'installer sans se rendre compte qu'il s'agit d'un faux paquet.

Il s'agit d'une variante du typosquatting (typosquattage). La différence est que le typosquattage s'appuie sur les fautes d'orthographe des utilisateurs, tandis que le slopsquatting s'appuie sur les erreurs de l'IA. « Slop » est un terme péjoratif courant utilisé pour désigner les résultats d'un modèle d'IA.

Dans le cadre de l'étude susmentionnée, les chercheurs ont constaté que la récurrence semble suivre un modèle bimodal. Certains noms hallucinés apparaissent à plusieurs reprises lorsque les invites sont relancées, tandis que d'autres disparaissent complètement, ce qui suggère que certaines invites produisent de manière fiable les mêmes paquets fantômes. Les chercheurs affirment avoir examiné plus de 200 000 paquets dans le cadre de leur étude.

Nom : attack-overview.png
Affichages : 490
Taille : 163,9 Ko

Les chercheurs ont constaté qu'en relançant dix fois la même invite déclenchant des hallucinations, 43 % des paquets hallucinés étaient répétés à chaque fois et 39 % ne réapparaissaient jamais. L'équipe de chercheurs a également constaté qu'environ 38 % des noms de paquets hallucinés semblaient inspirés de paquets réels, que 13 % étaient le résultat de fautes de frappe et que le reste de ces paquets, soit 51 %, était complètement fabriqué.

Bien qu'il n'y ait aucun signe que les attaquants ont commencé à tirer parti du slopsquatting, la société de cybersécurité Socket avertie que les noms de paquets hallucinés sont courants, répétables et sémantiquement plausibles, créant une surface d'attaque prévisible qui pourrait être facilement militarisée.

Citation Envoyé par Socket

Dans l'ensemble, 58 % des paquets hallucinés ont été répétés plus d'une fois au cours des dix exécutions, ce qui indique que la majorité des hallucinations ne sont pas simplement du bruit aléatoire, mais des artefacts répétables de la façon dont les modèles réagissent à certaines invites. Cette répétabilité augmente leur valeur pour les attaquants, car il est plus facile d'identifier des cibles viables de slopsquatting en observant seulement un petit nombre de sorties de modèles.
Cette cohérence rend le slopsquatting viable. Les acteurs de la menace n'ont pas besoin de gratter d'énormes journaux d'invite ou de forcer brutalement des noms potentiels. Ils peuvent simplement observer le comportement de modèles, identifier les noms communément hallucinés et les enregistrer.

Selon Seth Larson, il existe de nombreuses raisons pour lesquelles un développeur peut tenter d'installer un paquet qui n'existe pas. Le développeur cite notamment des exemples tes qu'une erreur de frappe dans le nom du paquet, l'installation incorrecte de paquets internes sans vérifier si ces noms existent déjà dans un index public (confusion des dépendances), des différences entre le nom du paquet et le nom du module, et ainsi de suite.

Confusion interlinguistique et paquets supprimés

Dans le cadre de leur étude, les chercheurs ont également cherché à savoir si les paquets Python hallucinés correspondaient parfois à des paquets valides dans d'autres écosystèmes. Ils ont constaté que 8,7 % des paquets Python hallucinés par les modèles d'IA étaient en fait des paquets npm (JavaScript) valides, ce qui suggère que les modèles confondent parfois les langages de programmation lorsqu'ils suggèrent des dépendances aux utilisateurs.

Ils ont aussi examiné si les paquets hallucinés étaient auparavant réels, mais avaient été supprimés de dépôts tels que PyPI. La réponse est : pas vraiment. Seul 0,17 % des noms hallucinés correspondent à des paquets supprimés de PyPI entre 2020 et 2022. La grande majorité d'entre eux étaient entièrement fictifs.

Nom : Capture d'écran 2025-04-14 103909.png
Affichages : 485
Taille : 97,5 Ko

Si un seul paquet halluciné est largement recommandé par les outils d'IA et qu'un attaquant a enregistré ce nom, le potentiel de compromission à grande échelle est réel. Et étant donné que de nombreux développeurs font confiance aux résultats des outils d'IA sans validation rigoureuse, la fenêtre d'opportunité est grande ouverte. L'hallucination est l'un des plus grands défis de l'IA et certains chercheurs pensent que le problème pourrait être insoluble.

« Nous assistons à un véritable changement dans la manière dont les développeurs écrivent le code », a déclaré Feross Aboukhadijeh, PDG de la société de sécurité Socket. Feross Aboukhadijeh précise que les faux paquets recommandés par les assistants d'IA de codage peuvent être très convaincants.

Citation Envoyé par Feross Aboukhadijeh

Le problème, c'est que ces suggestions de code incluent souvent des noms de paquets hallucinés qui semblent réels, mais qui n'existent pas. Je l'ai vu de mes propres yeux. Vous le collez dans votre terminal et l'installation échoue. Ou pire, elle n'échoue pas, car quelqu'un a fait du slopsquatting avec le nom exact du paquet.

Pire encore, lorsque vous recherchez sur Google l'un de ces noms de paquets, vous obtenez souvent un résumé généré par l'IA de Google lui-même, qui fait l'éloge de ce paquet en affirmant qu'il est utile, stable et bien entretenu. Mais il ne fait que reprendre le README du paquet, sans scepticisme ni contexte. Pour un développeur pressé, cela donne un faux sentiment de légitimité.

Quel monde nous vivons ! Les paquets hallucinés par l'IA sont validés et approuvés par une autre IA trop désireuse d'être utile.
La seule façon d'atténuer ce risque est de vérifier manuellement les noms des paquets et de ne jamais supposer qu'un paquet mentionné dans un extrait de code généré par l'IA est réel ou sûr. Selon les experts en cybersécurité, l'utilisation de scanners de dépendances, de lockfiles et de vérifications de hachage pour rattacher les paquets à des versions connues et fiables est également un moyen efficace d'améliorer la sécurité des programmes et logiciels.

Dans le cadre de leur étude, les chercheurs ont constaté que l'abaissement des paramètres de « température » de l'IA (moins de hasard) réduit les hallucinations. Pour les adeptes du codage assisté par l'IA ou du vibe coding, il s'agit d'un facteur important à prendre en compte. Enfin, il est prudent de toujours tester le code généré par l'IA dans un environnement sûr et isolé avant de l'exécuter ou de le déployer dans des environnements de production.

L'essor du vibe coding rend cette pratique encore plus dangereuse

Le risque de slopsquatting est encore amplifié par la montée en puissance du « vibe coding ». Inventé par l'ancien chercheur d'OpenAI Andrej Karpathy, ce terme décrit un changement dans la manière dont les logiciels sont écrits : au lieu de rédiger le code ligne par ligne, les développeurs décrivent ce qu'ils veulent, et un modèle génère l'implémentation. Cette pratique se popularise rapidement dans l'industrie, mettant en péril la sécurité des logiciels.

Dans ce flux de travail, le rôle du développeur passe de celui d'auteur du code à celui de conservateur, guidant, testant et affinant ce que l'IA produit. Des outils tels que Composer de Cursor AI sont à la pointe de cette tendance, transformant la génération de code en un processus de conception conversationnel.

Cependant, dans cet environnement, le risque de faire aveuglément confiance aux dépendances générées par l'IA augmente considérablement. Les développeurs qui adoptent la culture du « vibe coding » peuvent ne jamais taper ou rechercher manuellement le nom d'un paquet recommandé par l'IA. Ainsi, si l'IA inclut un paquet halluciné qui semble plausible, la voie de la moindre résistance est souvent de l'installer et de passer à autre chose.

Citation Envoyé par Seth Michael Larson

Nous n'en sommes qu'au début de l'étude de ce problème au niveau de l'écosystème. Il est difficile, voire impossible, de quantifier le nombre de tentatives d'installation résultant des hallucinations des LLM sans une plus grande transparence de la part des fournisseurs de LLM. Les utilisateurs de code, de paquets et d'informations générés par les LLM devraient vérifier les résultats des LLM par rapport à la réalité avant de mettre ces informations en service, sinon il peut y avoir des conséquences dans le monde réel.
Selon Seth Larson, il existe de nombreuses raisons pour lesquelles un développeur peut tenter d'installer un paquet qui n'existe pas. Le développeur cite notamment : une erreur de frappe dans le nom du paquet, l'installation incorrecte de paquets internes sans vérifier si ces noms existent déjà dans un index public (confusion des dépendances), des différences entre le nom du paquet et le nom du module, et ainsi de suite.

Lorsque les grands modèles de langage hallucinent des noms de paquets, et qu'ils le font régulièrement, comme le montre l'étude susmentionnée, ils deviennent un maillon invisible de la chaîne d'approvisionnement en logiciels. Et dans les flux de vibe coding, ces liens sont rarement revérifiés.

En somme, le slopsquatting n'est pas seulement un terme astucieux. Dans le cadre de leur étude, les chercheurs ont démontré qu'il s'agit d'une menace sérieuse et émergente dans un écosystème déjà mis à rude épreuve par la complexité et le volume de la chaîne d'approvisionnement.

Sources : rapport d'étude (PDF), Socket

Et vous ?

Quel est votre avis sur le sujet ?
Que pensez-vous de la nouvelle catégorie d'attaques appelée « slopsquatting » introduite par l'IA ?
Selon vous, comment les développeurs et les entreprises peuvent-ils faire face à cette nouvelle menace ?
Que pensez-vous de l'utilisation de l'IA pour la génération de code ? Cela permet-il réellement de gagner du temps ?

Voir aussi

85 % des développeurs s'inquiètent des risques de sécurité liés au fait de s'appuyer sur la GenAI pour développer des logiciels et de la perte de pensée critique due à l'utilisation d'assistants de codage IA

95 % du code sera généré par l'IA d'ici cinq ans, selon le directeur technique de Microsoft, raison pour laquelle certains acteurs sont d'avis qu'il n'est plus nécessaire d'apprendre à coder

Pourquoi le « Vibe Coding » me donne envie de vomir par Kush Creates