Les assistants de code IA génèrent des noms de packages qui n'existent pas, et les attaquants transforment ces hallucinations en véritables risques pour la chaîne d'approvisionnement.
Lorsque le chercheur en sécurité Bar Lanyado de Lasso Security a demandé un client Python à un outil de codage piloté par l'IA, le modèle a suggéré d'installer huggingface-cli. Ce package est un fantôme ; la bibliothèque légitime porte le nom de huggingface_hub. Pour prouver le danger, Lanyado a enregistré le nom erroné sur le Python Package Index (PyPI) en tant que simple espace réservé vide. En l'espace de trois mois, cet espace réservé a accumulé plus de 30 000 téléchargements, est apparu dans la documentation publique et même dans des échantillons de code extraits des dépôts d'Alibaba.
Comment un package fantôme devient une menace réelle
- Prompt → hallucination – Un développeur demande de l'aide à une IA. Le modèle, entraîné sur des données internet bruitées, invente un nom de package qui semble plausible.
- Copier-coller → documentation – La suggestion atterrit dans un README, une réponse Stack Overflow ou un wiki interne. Une fois écrit, le nom se propage au sein de la communauté.
- Intégration de code – Le développeur, faisant confiance à l'IA, ajoute le nom à un fichier de dépendances et le déploie en production.
Pourquoi les défenses existantes passent à côté du problème
Les outils d'analyse statique et les scanners de vulnérabilités recherchent les CVE connues et les bibliothèques ayant un historique de publication. Un package fraîchement publié avec zéro téléchargement avant la suggestion de l'IA n'a pas de CVE, pas de réputation et semble donc sain. Le contrôle standard « la version est-elle vulnérable ? » renvoie « faux », donnant aux développeurs un faux sentiment de sécurité.
Ce que l'expérience prouve
- Les noms inventés par l'IA atteignent la production – Les plus de 30 000 téléchargements montrent que les développeurs téléchargent réellement ces packages fantômes.
- Les hallucinations deviennent de la documentation – Une fois qu'un faux nom apparaît dans un guide public, il peut persister indéfiniment, propageant l'erreur.
- L'enregistrement est trivial – Publier un package sur PyPI ne coûte rien et prend quelques minutes, ce qui abaisse la barrière à l'abus de la chaîne d'approvisionnement.
Mesures de défense qui fonctionnent réellement
- Validez chaque dépendance – Avant d'ajouter une nouvelle exigence, recherchez dans l'index des packages et confirmez que le nom correspond à une bibliothèque existante et documentée.
- Effectuez des vérifications croisées avec des sources officielles – Comparez le nom suggéré avec le dépôt du fournisseur ou le guide d'installation officiel.
- Considérez les nouveaux packages à faible adoption comme étant à haut risque – Signalez toute dépendance ayant moins d'une poignée de téléchargements ou une date de publication très récente pour un examen manuel.
Ce qu'il faut surveiller ensuite
La conclusion est simple : une suggestion d'IA n'est pas une garantie. Traitez chaque nouvelle dépendance comme un composant tiers non vérifié, vérifiez sa provenance et gardez un œil sur la chaîne d'approvisionnement avant de laisser un package fantôme s'introduire en production.
