PhantomRaven : Le malware caché dans 126 packages npm vole les tokens GitHub des développeurs
Orphée Grandsable
PhantomRaven : Le malware caché dans 126 packages npm vole les tokens GitHub des développeurs
Des chercheurs en cybersécurité ont récemment découvert une campagne d’attaque active et particulièrement insidieuse visant le registre npm. Plus de 126 packages malveillants ont été identifiés, conçus pour voler des tokens d’authentification, des secrets CI/CD et des informations d’identification GitHub directement depuis les machines des développeurs. Cette campagne, nommée PhantomRaven par les experts de Koi Security, représente une menace significative pour la chaîne d’approvisionnement logicielle et met en lumière des vulnérabilités critiques dans les écosystèmes open source.
Découverte et caractéristiques de PhantomRaven
L’activité de PhantomRaven a débuté en août 2025, lorsque les premiers packages malveillants ont été uploadés sur le registre npm. Depuis, la campagne a considérablement évolué, atteignant un total de 126 bibliothèques npm ayant généré plus de 86 000 installations. Selon les analyses menées par Koi Security, ce malware tire parti d’une technique particulièrement ingénieuse pour contourner les systèmes de sécurité traditionnels.
“PhantomRaven démontre à quel point les attaquants deviennent sophistiqués dans l’exploitation des angles morts des outils de sécurité traditionnels”, explique Oren Yomtov, chercheur en sécurité. “Les Dépendances Dynamiques à Distance ne sont pas visibles par l’analyse statique. Les hallucinations des IA créent des noms de packages plausibles que les développeurs finissent par faire confiance. Et les scripts de cycle de vie s’exécutent automatiquement, sans aucune interaction utilisateur.”
Technique de dissimulation avancée
Ce qui rend cette attaque particulièrement redoutable est la méthode utilisée pour dissimuler le code malveillant. Les packages malveillants pointent vers des URL HTTP personnalisées, forçant npm à récupérer les dépendances depuis un site web non approuvé (dans ce cas, “packages.storeartifact[.]com”) plutôt que depuis npmjs[.]com.
npmjs[.]com ne suit pas ces URL, précise le chercheur. “Les scanners de sécurité ne les récupèrent pas. Les outils d’analyse de dépendances les ignorent. Pour chaque système de sécurité automatisé, ces packages affichent ‘0 Dépendances’.”
Cette technique crée une “zone d’ombre” invisible aux outils de sécurité traditionnels, permettant aux attaquants de dissimuler leurs intentions jusqu’à ce qu’il soit trop tard.
Mécanismes d’attaque de PhantomRaven
Le phénomène du “slopsquatting”
Les chercheurs ont noté que le choix des noms de packages n’est pas le fruit du hasard. Les attaquants exploitent un phénomène appelé “slopsquatting”, où les grands modèles de langage (LLM) “hallucinent” des noms de packages inexistants mais plausibles. Ces noms sont ensuite enregistrés par les attaquants qui créent des packages malveillants portant ces noms.
Exemples de packages malveillants identifiés :
- op-cli-installer (486 téléchargements)
- unused-imports (1 350 téléchargements)
- badgekit-api-client (483 téléchargements)
- polyfill-corejs3 (475 téléchargements)
- eslint-comments (936 téléchargements)
L’enchaînement d’attaque
Lorsqu’un développeur installe l’un de ces packages apparemment inoffensifs, une série d’événements malveillants se déclenche :
- Le package malveillant est installé
- Un script de pré-installation (pre-install hook) est exécuté
- Le payload principal est téléchargé depuis l’URL contrôlée par l’attaquant
- Le malware collecte diverses informations sensibles
- Les données sont exfiltrées vers un serveur distant
La flexibilité des URL contrôlées par l’attaquant représente une menace supplémentaire : celles-ci peuvent être modifiées à tout moment pour servir différents types de malwares ou pour rendre l’attaque plus discrète en servant initialement un code parfaitement inoffensif avant de déployer une version malveillante une fois que le package a gagné une large adoption.
Collecte d’informations
Une fois activé, PhantomRaven est conçu pour scanner l’environnement du développeur et collecter diverses informations sensibles :
- Adresses e-mail
- Informations sur l’environnement CI/CD
- Empreinte système
- Adresse IP publique
Ces données sont ensuite exfiltrées vers un serveur contrôlé par l’attaquant, qui peut les utiliser pour des attaques plus ciblées ou les vendre sur le dark web.
Impact sur les développeurs et les entreprises
Vol de tokens et de secrets
Les conséquences d’une infection par PhantomRaven peuvent être désastreuses pour les développeurs et leurs organisations. Le vol de tokens GitHub permet aux attaquants d’accéder à des dépôts privés, d’introduire du code malveillant dans des projets existants ou de supprimer des données critiques.
Dans le contexte français, de nombreuses startups et entreprises technologiques utilisent GitHub pour héberger leur code source. Selon une étude menée par l’ANSSI en 2025, près de 78% des entreprises françaises utilisent des services de cloud public pour héberger leurs applications, rendant le contrôle des accès d’autant plus critique.
Vulnérabilités de l’écosystème npm
L’écosystème npm, bien que fondamental pour le développement JavaScript, présente des failles inhérentes que PhantomRaven exploite habilement :
“L’écosystème npm permet une publication facile et un faible frottement pour les packages”, explique DCODX, spécialiste DevSecOps. “Les scripts de cycle de vie (preinstall, install, postinstall) exécutent un code arbitraire au moment de l’installation, souvent sans la conscience du développeur.”
Cette situation est d’autant plus préoccupante que selon les statistiques de npm, plus de 2 millions de packages sont disponibles sur la plateforme, avec des milliers de nouveaux packages ajoutés chaque semaine. Ce volume rend le contrôle qualité extrêmement difficile et crée un environnement propice aux attaques de chaîne d’approvisionnement.
Études de cas
Considérons le cas d’une entreprise française de développement de logiciels qui utilise GitHub pour la gestion de son code source. Si l’un de ses développeurs installe accidentellement un package affecté par PhantomRaven, plusieurs scénarios catastrophiques sont possibles :
- Les tokens GitHub volés pourraient permettre à l’attaquant d’accéder à des dépôts contenant des propriétés intellectuelles sensibles
- Des secrets CI/CD compromis pourraient donner accès aux environnements de production
- L’attaquant pourrait injecter du code malveillant dans les applications déployées
- Des données client sensibles pourraient être exfiltrées
Mesures de prévention et de détection
Bonnes pratiques pour les développeurs
Pour se protéger contre PhantomRaven et autres menaces similaires, les développeurs devraient adopter les mesures de prévention suivantes :
- Vérification rigoureuse des dépendances : Avant d’installer un package, vérifiez sa popularité, son maintien et ses contributions
- Examen des scripts de cycle de vie : Soyez méfiant envers les packages ayant des scripts de pré-installation ou d’installation
- Utilisation d’outils d’analyse statique : Des outils comme npm audit, Snyk ou Dependabot peuvent aider à identifier les dépendances potentiellement dangereuses
- Isolation des environnements : Développez et testez dans des environnements isolés pour limiter l’impact d’une compromission
Outils de détection
Plusieurs outils peuvent aider à détecter les packages malveillants comme PhantomRaven :
- npm audit : L’outil intégré à npm pour vérifier les vulnérabilités connues
- Snyk : Plateforme qui analyse les dépendances à la recherche de vulnérabilités et de packages malveillants
- Dependabot : Outil d’automatisation de la correction des dépendances vulnérables
- CodeQL : Outil d’analyse de code statique de GitHub qui peut détecter les modèles de code suspects
Stratégies de prévention pour les organisations
Pour les entreprises, une approche plus holistique est nécessaire :
- Mise en place d’une politique de gestion des dépendances : Établir des règles claires sur l’utilisation des packages tiers
- Intégration d’outils de sécurité DevSecOps : Automatiser la vérification des dépendances tout au long du cycle de développement
- Formation des développeurs : Sensibiliser les équipes aux risques des packages npm et aux signaux d’alarme
- Surveillance de l’écosystème npm : Suivre les rapports de sécurité et mettre à jour rapidement les dépendances problématiques
Recommandations pour la communauté open source
Rôle des plateformes d’hébergement
Les plateformes comme npm.js.com ont un rôle crucial à jouer dans la prévention de telles attaques :
- Amélioration de l’analyse des dépendances : Mettre en place des systèmes capables de détecter et d’analyser les dépendances externes
- Verification renforcée des packages : Mettre en œuvre des processus plus stricts pour la publication des nouveaux packages
- Alertes proactives : Avertir les utilisateurs des packages comportant des comportements suspects
Responsabilité des développeurs
Les développeurs individuels ont également une responsabilité dans la sécurité de l’écosystème :
- Contribution à la sécurité : Signaler les packages suspects et contribuer à l’analyse des menaces
- Vérification de la source : Toujours vérifier la source et la réputation d’un package avant de l’utiliser
- Partage des connaissances : Documenter et partager les expériences de sécurité avec la communauté
Tendances futures de la sécurité de la chaîne d’approvisionnement
L’émergence de menaces comme PhantomRaven indique une évolution vers des attaques plus sophistiquées et ciblées. Dans les années à venir, nous pouvons nous attendre à :
- L’augmentation des attaques d’IA : L’utilisation croissante des LLM pour générer des noms de packages plausibles mais malveillants
- L’évolution des techniques de dissimulation : Des méthodes encore plus sophistiquées pour échapper aux systèmes de détection
- Le développement d’outils de sécurité adaptés : De nouvelles solutions spécifiquement conçues pour détecter les menaces de chaîne d’approvisionnement
Conclusion : Se protéger contre PhantomRaven et les menaces futures
PhantomRaven représente une nouvelle menace dans le paysage croissant des attaques de chaîne d’approvisionnement logicielle. En exploitant des failles dans l’écosystème npm et en utilisant des techniques de dissimulation ingénieuses, ce malware met en danger les développeurs et les organisations du monde entier.
La protection contre PhantomRaven nécessite une approche multi-couches, combinant vigilance individuelle, pratiques organisationnelles solides et améliorations des plateformes d’héveloppement. En adoptant ces mesures, la communauté du développement peut continuer à bénéficier des avantages de l’écosystème npm tout en minimisant les risques associés.
Dans un environnement numérique de plus en plus interconnecté, la sécurité de la chaîne d’approvisionnement logicielle n’est plus une option mais une nécessité. PhantomRaven ne sera probablement pas la dernière campagne d’attaque de ce type, mais avec une vigilance appropriée et des mesures de sécurité robustes, nous pouvons nous prémunir contre ses conséquences néfastes et contribuer à un écosystème de développement plus sûr pour tous.