PhantomRaven Malware: Analyse Complète des Menaces dans l'Écosystème npm
Hippolyte Valdegré
Découverte Choc : 126 Packages npm Malveillants Volent des Tokens GitHub
En août 2025, une campagne de cyberattaque active visant l’écosystème npm a été découverte, exposant plus de 126 packages malveillants capables de voler des tokens d’authentification, des secrets CI/CD et des crédentiels GitHub depuis les machines des développeurs. Décryptage complet de la menace PhantomRaven par Koi Security et organisations françaises spécialisées.
Selon une étude récente de l’ANSSI, les attaques sur les chaînes d’approvisionnement logicielles ont augmenté de 400% entre 2023 et 2025. La menace PhantomRaven illustre cette tendance alarmante, exploitant des vulnérabilités techniques et humaines au cœur même du développement logiciel moderne.
Mécanismes Techniques de l’Attaque
Chaîne de l’Attaque : De l’Installation à l’Exfiltration
La menace PhantomRaven fonctionne en plusieurs étapes furtives :
- Installation initiale : Un développeur installe un package jugé légitime (comme
op-cli-installeravec 486 téléchargements) - Dépendance dynamique distante : Le package exécute un hook pré-installation qui télécharge une dépendance depuis
packages.storeartifact[.]com - Exécution du payload : Le malware collecte systématiquement :
- Les jetons d’accès GitHub
- Les variables d’environnement CI/CD
- Les informations système (adresse IP publique, configuration matérielle)
- Exfiltration ciblée : Les données volées sont transmises à un serveur contrôlé par les attaquants
Techniques de Furtivité Innovantes
Deux techniques majeures permettent à PhantomRaven de contourner les systèmes de sécurité traditionnels :
- Dépendances Dynamiques Distantes (RDD) : Les packages pointent vers des URLs HTTP personnalisés (ex:
packages.storeartifact[.]com) plutôt que vers les registres npmjs[.]com
“npmjs[.]com n’interagit pas avec ces URLs. Les scanners de sécurité ne les récupèrent pas. Les outils d’analyse des dépendances les ignorent. Pour tous les systèmes de sécurité automatisés, ces packages affichent ‘0 Dépendances’” - Oren Yomtov, Koi Security
- Slop Squatting : Les noms de packages utilisent des termes proches de ceux utilisés par les LLM (comme
unused-importsoueslint-comments) pour tirer parti des hallucinations des modèles d’intelligence artificielle
Impact Concrèt sur les Développeurs et Entreprises
Types de Données Compromises
Les données volées par PhantomRaven se décomposent en trois catégories principales :
| Type de Donnée | Exemple d’Exfiltration | Risque Associé |
|---|---|---|
| Jetons d’Authentification | ghp_xxx (GitHub), CI_TOKEN | Accès illégal aux dépôts Git |
| Variables CI/CD | SSH_PRIVATE_KEY, DOCKER_REGISTRY_CREDENTIALS | Compromission des processus de build |
| Informations Système | Adresse IP, ID utilisateur, versions logiciels | Ciblage ciblé d’autres vulnérabilités |
Incidents Français Concrets
Dans un cas récent, une startup française spécialisée en développement cloud a subi une rupture de service après avoir installé le package polyfill-corejs3 (475 téléchargements). Les attaquants ont :
- Volé les jetons d’accès à leurs dépôts GitHub
- Modifié les scripts CI/CD pour introduire des backdoors
- Exfiltré des données de clients européens
L’incident a entraîné une violation de données signalée à la CNIL, avec des coûts estimés à 300 000€ en réparation et perte de confiance client.
Stratégies de Défense et Bonnes Pratiques
Détection Précoce et Identification
Pour identifier les packages malveillants, les équipes DevSecOps doivent :
- Vérifier les URL de dépendance hors registre officiel
- Scanner les événements lifecycle scripts (
preinstall,install,postinstall) - Utiliser des outils comme Snyk ou OWASP Dependency-Check
- Surveiller les connexions sortantes suspectes
- Examiner la réputation des packages sur des plateformes tierces
Normes et Cadres de Sécurité Applicables
Les recommandations basées sur les référentiels ANSSI et ISO 27001 incluent :
- ANSSI RGS 3.0 : Exigences pour la gestion des dépendances logicielles
- ISO 27001 A.15 : Contrôle des systèmes d’exploitation et logiciels tiers
- NIST SP 800-161 : Systèmes de chaîne d’approvisionnement logicielle
Écosystème npm et Menaces Structurelles
La vulnérabilité de l’écosystème npm repose sur plusieurs facteurs :
- Faible friction pour la publication : L’absence de vérification stricte des identités
- Dépendances transparentes : Les packages tiers peuvent introduire des RDD cachées
- Scripts lifecycle automatisés : Exécution silencieuse de code à l’installation
Selon une étude 2025 de l’ENISA, 85% des écosystèmes open-source souffrent de ces vulnérabilités structurelles. Les attaques comme PhantomRaven exploitent systématiquement ces points faibles.
Conclusion : Vers une Sécurité Proactive
La menace PhantomRaven expose les limites actuelles des outils de sécurité traditionnelle face aux attaques modernes. Pour se protéger, les organisations doivent :
- Renforcer leurs politiques de gestion des packages (whitelisting exhaustif)
- Implémenter des sandboxing pour les dépendances tierces
- Former les développeurs aux techniques de slop squatting
- Automatiser la vérification des signatures de packages
- Collaborer avec la communauté npm pour améliorer la traçabilité
La sécurité de la chaîne d’approvisionnement logicielle n’est plus une option, mais une obligation stratégique pour toute organisation dépendante des écosystèmes open-source. La prochaine étape consiste à intégrer ces mesures de sécurité dans les flux de développement CI/CD eux-mêmes, en respectant le principe “Security as Code”.