Le blog sécurité de FireAI

Par FireAI Security & Research Team · Publié

Slopsquatting : lorsque votre assistant de codage IA invente un package et que quelqu'un d'autre l'enregistre

Slopsquatting : lorsque votre assistant de codage IA invente un package et que quelqu'un d'autre l'enregistre

Demandez à un assistant de codage de résoudre un problème et il vous recommandera parfois d'installer un package : de vrais pour les tâches courantes et, souvent de manière mesurable, des packages qui n'existent pas du tout. Il a inventé un nom plausible parce que le modèle de code environnant y appelait une dépendance. Si vous ou votre agent de codage exécutez quand même la commande install, tout ce qui est réellement enregistré sous ce nom sur PyPI ou npm est ce qui atterrit sur votre machine. Le chercheur en sécurité Seth Larson, développeur en résidence à la Python Software Foundation, a nommé l'attaque qui en a résulté « slopsquatting », enregistrant les noms de models hallucinate, l'équivalent généré par l'IA du typosquatting.

À quelle fréquence cela arrive-t-il réellement

Une équipe de l’Université du Texas à San Antonio, de Virginia Tech et de l’Université d’Oklahoma l’a mesuré directement : « Nous avons un forfait pour vous ! », accepté par USENIX Security 2025. Sur 576 000 échantillons de code générés à partir de 16 modèles populaires en deux langues, ils ont trouvé des paquets hallucinés dans « au moins 5,2 % pour les modèles commerciaux et 21,7 % pour les modèles open source », totalisant 205 474 noms de paquets hallucinés uniques. Il ne s’agit pas d’un cas limite rare ; pour certains modèles open source, il s'agit d'environ une dépendance suggérée sur cinq.

Spracklen et al., USENIX Security 2025, arXiv :2406.10279. Moyennes sur les 16 modèles testés ; les modèles individuels variaient.
Classe modèleTaux d'hallucinations (des recommandations de forfaits)
Modèles commerciaux (moyenne)au moins 5,2 pour cent
Modèles open source (moyenne)au moins 21,7 pour cent

Pourquoi c'est squattable, pas seulement faux

Un nom inventé de manière unique serait une nuisance et non une surface d'attaque. Ce qui le rend exploitable, c'est la répétition : comme Le Registre a rapporté le 12 avril 2025, lorsque les chercheurs ont réexécuté dix fois la même invite, "43 % des paquets hallucinés se répètent à chaque fois et 39 % ne réapparaissent jamais". Près de la moitié des noms hallucinés ne sont pas des bruits aléatoires ; ce sont les mêmes suppositions que le modèle atteint pour un code similaire donné de manière fiable. Un attaquant n’a pas besoin de deviner ce qu’un développeur spécifique va taper. Ils peuvent exécuter les mêmes modèles avec des invites communes, collecter les noms qui se répètent et les enregistrer à l'avance dans l'index réel des packages.

Illustration : le moment du risque
pip install fast-json-normalizer   # suggested by a coding assistant
Collecting fast-json-normalizer
  Downloading fast-json-normalizer-0.3.1.tar.gz
Running setup.py install for fast-json-normalizer ... done
# Nothing here indicates whether this name was ever a real, reviewed project
# or was registered specifically because models keep suggesting it.

Pourquoi cela correspond au modèle que l'OWASP suit déjà

Il s’agit d’une variante de ce que Top 10 de l'OWASP pour les applications LLM appelle un risque de chaîne d’approvisionnement pour le développement assisté par l’IA : la limite de confiance qui se situait autrefois à « un humain a-t-il choisi d’ajouter cette dépendance » se déplace vers « la complétion de modèle d’un modèle l’a-t-elle choisie », et la complétion de modèle n’a aucune idée de la réalité d’un nom.

Que faire réellement à ce sujet

  • Traitez chaque nom de package suggéré par un agent de codage comme une suggestion à vérifier, et non comme une dépendance connue, de la même manière que vous traiteriez un nom qu'un contributeur junior tape de mémoire.
  • Vérifiez la date d'enregistrement et l'historique des téléchargements avant d'installer quelque chose d'inconnu ; un package apparu récemment et qui correspond étrangement à un modèle d’invite commun généré par l’IA mérite un deuxième examen.
  • Épinglez les dépendances et utilisez un fichier de verrouillage, afin qu'un nom halluciné qui s'est glissé une fois ne soit pas résolu silencieusement plus tard.
  • Regardez ce que fait réellement un package fraîchement installé lors de la première exécution. Une dépendance nouvellement enregistrée qui s'adresse à un serveur avec lequel elle n'a aucune activité professionnelle est un signal qu'un pare-feu peut détecter même lorsqu'une révision de code a manqué le nom.

Le rôle de FireAI et de HisnLabs

A squatted package that phones home still has to make a connection to do it, from a Python or Node process you just ran; FireAI shows you that connection, the process behind it and where it is going, before you decide whether it belongs there.

FireAI est le produit de HisnLabs : un pare-feu IA embarqué pour Mac. Il montre en langage clair chaque connexion faite par vos applications et vous laisse décider ce qui sort de votre Mac — son IA fonctionne en local, votre trafic ne nous est jamais envoyé, ni à personne d’autre. L’équipe de recherche en sécurité de HisnLabs est celle qui garde ces décisions fiables : elle recense les domaines de simple télémétrie face à ceux d’un vrai service, suit le pays et le réseau derrière une connexion, et entraîne le modèle embarqué (la fonction Autopilot) sur du trafic réel, sans que rien ne quitte votre Mac.

Vous pouvez lire les choix techniques qui s’y trouvent, ou essayer FireAI pendant 17 jours, sur FireAI, par HisnLabs.

Sources