IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

Le , par Mathis Lucas

33PARTAGES

5  0 
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.


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.


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.


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

[URL="https:/...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !