Synthèse

Mise à jour : 25 novembre 2025

Les chercheurs de Unit 42 ont enquêté sur une nouvelle compromission ciblant npm dans le cadre d'une campagne baptisée Shai-Hulud 2.0. Cette menace a été signalée pour la première fois début novembre 2025. La campagne actuelle est d'une ampleur considérablement plus vaste, affectant des dizaines de milliers de dépôts GitHub. Cela inclut plus de 25 000 dépôts malveillants répartis sur environ 350 utilisateurs uniques.

Différences notables dans les campagnes de novembre

  • L'exécution durant la phase de pré-installation a considérablement élargi la zone d'impact.
  • Cette campagne a introduit un mécanisme de repli (fallback) beaucoup plus agressif, qui peut tenter de détruire le répertoire personnel (home directory) de l'utilisateur.
  • Les nouveaux fichiers de charge utile (payload) sont nommés setup_bun.js et bun_environment.js.
  • Les identifiants et secrets volés sont exfiltrés vers des dépôts GitHub publics portant la description : "Sha1-Hulud: The Second Coming."

La campagne Shai-Hulud 2.0 représente une escalade agressive dans les attaques de la chaîne logistique logicielle, dépassant les méthodes de son prédécesseur en modifiant le point d'infection. En ciblant la phase de pré-installation des dépendances logicielles, le logiciel malveillant réalise deux avancées majeures :

  • Il élimine complètement le besoin d'interaction humaine, garantissant l'exécution sur pratiquement tous les serveurs de build traitant le paquet infecté.
  • Il contourne efficacement les outils d'analyse statique qui inspectent le code lors des étapes ultérieures de la construction (build).

Bien que cette menace se concentre toujours sur le vol d'identifiants cloud de haute valeur, elle peut également paralyser l'intégralité du pipeline CI/CD d'une entreprise. Cela pourrait perturber le développement et potentiellement verrouiller les systèmes internes, faisant passer l'attaque d'un simple espionnage à un événement de déni de service hautement perturbateur.

Lisez la section "Portée actuelle de l'attaque" pour plus de détails techniques.

En septembre, Unit 42 a enquêté sur ce ver auto-répliquant inédit sous le nom de "Shai-Hulud", responsable de la compromission de centaines de paquets logiciels.

Cette attaque marque une évolution majeure des cybermenaces liées à la supply chain, en exploitant une propagation automatisée pour agir à grande échelle. Unit 42 estime également, avec un niveau de confiance modéré, qu’un LLM a été utilisé pour générer le script bash malveillant, sur la base de commentaires et d’emojis.

Les clients de Palo Alto Networks bénéficient d’une meilleure protection et de mesures de d’atténuation contre différents aspects de cette attaque grâce à nos produits et services. Citons notamment :

L’équipe Unit 42 de réponse aux incidents peut également intervenir en cas de compromission ou réaliser une évaluation proactive afin de réduire votre niveau de risque.

Unit 42 – Thématiques connexes Supply Chain, Collecte d’identifiants, Hameçonnage, JavaScript

Paquets npm et supply chain – Le contexte

L’attaque pourrait provenir d’une campagne d’hameçonnage visant à collecter des identifiants, en usurpant l’identité de npm et en demandant aux développeurs de « mettre à jour » leurs options d’authentification multifacteur (MFA). Une fois l’accès initial obtenu, l’acteur de la menace a déployé un payload malveillant opérant comme un ver et déclenchant une séquence d’attaque en plusieurs étapes. Sur la base de commentaires et d’emojis dans le script bash, Unit 42 estime, avec un niveau de confiance modéré, que l’acteur de la menace s’est appuyé sur un LLM pour l’écriture du code malveillant.

Les versions compromises des paquets logiciels contiennent un ver qui exécute un script post-installation. Ce malware explore l’environnement infecté à la recherche d’identifiants, notamment :

  • Les fichiers .npmrc (pour les jetons npm)
  • Les variables d’environnement et fichiers de configuration ciblant spécifiquement les GitHub Personal Access Tokens (PAT) et les clés API de services cloud tels que :
    • Amazon Web Services (AWS)
    • Google Cloud Platform (GCP)
    • Microsoft Azure

Les matériels d'authentification récoltés sont exfiltrés vers un terminal contrôlé par l’acteur. Le logiciel malveillant crée ensuite, de manière programmatique, un référentiel GitHub public nommé « Shai-Hulud » sous le compte de la victime. Il effectue un commit contenant les secrets volés et les expose publiquement.

En utilisant le jeton npm dérobé, le malware s’authentifie auprès du registre npm au nom du développeur compromis. Il identifie alors d’autres paquets logiciels maintenus par ce développeur, y injecte du code malveillant et publie les nouvelles versions compromises sur le registre. Ce processus automatisé permet au malware de se propager de façon exponentielle, sans intervention directe de l’acteur.

Portée actuelle de l'attaque

En date de novembre 2025, une nouvelle compromission ciblant npm est en cours dans une campagne baptisée "Shai-Hulud 2.0".

  • Exécution durant la pré-installation (au lieu de la post-installation) : Cela a considérablement élargi la zone d'impact sur les machines des développeurs et les pipelines d'intégration et de déploiement continus (CI/CD).
  • Un mécanisme de repli beaucoup plus agressif : Cela déplace les tactiques du simple vol de données vers le sabotage punitif. Si le logiciel malveillant ne parvient pas à voler des identifiants, obtenir des jetons ou sécuriser un canal d'exfiltration (c'est-à-dire s'il ne peut pas s'authentifier sur GitHub, créer un dépôt ou trouver des jetons GitHub/npm), il tente de détruire l'intégralité du répertoire personnel de la victime. Il le fait en écrasant et en supprimant de manière sécurisée chaque fichier inscriptible appartenant à l'utilisateur actuel dans son dossier personnel.
  • Nouveaux fichiers de charge utile : Ceux-ci sont nommés setup_bun.js et bun_environment.js. L'attaque se déguise en un installateur Bun utile. La charge utile principale, bun_environment.js, est un fichier massif (plus de 10 Mo) qui utilise des techniques d'obfuscation extrêmes. Il retarde l'exécution complète sur les machines des développeurs en se dupliquant (fork) dans un processus d'arrière-plan détaché. Cela permet au processus d'installation original de se terminer proprement, donnant à l'utilisateur l'illusion d'une installation normale.
  • Sha1-Hulud : Les identifiants et secrets volés sont exfiltrés vers des dépôts GitHub publics avec la description de dépôt : "Sha1-Hulud: The Second Coming." Il tente également d'établir une persistance en créant un fichier de workflow GitHub Actions nommé discussion.yaml. Ce workflow enregistre la machine infectée comme un runner auto-hébergé (self-hosted runner) et permet aux attaquants d'exécuter des commandes arbitraires en ouvrant des discussions GitHub.

Portée de l'attaque avant novembre 2025

L'ampleur de la compromission est vaste, impactant de nombreux paquets, y compris la bibliothèque largement utilisée @ctrl/tinycolor, qui reçoit des millions de téléchargements hebdomadaires.

Le vol d'identifiants issu de cette campagne peut mener directement à la compromission de services cloud (tels qu'AWS, Azure, GCP), entraînant le vol de données depuis des buckets de stockage, le déploiement de rançongiciels (ransomware), le cryptominage ou la suppression d'environnements de production. Cela peut également conduire au vol direct de bases de données et au détournement de services tiers pour du hameçonnage (phishing). De plus, les clés SSH volées peuvent permettre un déplacement latéral au sein des réseaux compromis.

Recommandations provisoires

  1. Rotation des identifiants : procédez immédiatement à la rotation de tous les identifiants développeur. Cela inclut les jetons d’accès npm, les GitHub Personal Access Tokens (PAT), les clés SSH ainsi que toutes les clés d’accès programmatiques utilisées pour les services cloud et tiers. Considérez que tout secret présent sur la machine d’un développeur a pu être compromis.
  2. Audit des dépendances : réalisez sans délai un audit complet de toutes les dépendances de vos projets. Utilisez des outils comme npm audit pour identifier les versions de paquets logiciels vulnérables. Vérifiez avec attention vos fichiers package-lock.json ou yarn.lock et assurez-vous que vous n’utilisez pas de paquets logiciels déjà compromis. Supprimez ou mettez à jour les dépendances affectées immédiatement.
  3. Revue de la sécurité des comptes GitHub : chaque développeur doit vérifier son compte GitHub afin de détecter la présence de référentiels publics non reconnus (en particulier « Shai-Hulud »), de commits suspects ou de modifications inattendues dans les workflows GitHub Actions susceptibles d’établir une persistance.
  4. Application stricte du MFA : assurez-vous que l’authentification MFA soit strictement appliquée sur tous les comptes développeur, en particulier sur les plateformes critiques telles que GitHub et npm, afin d’éviter toute exploitation des identifiants.

Requêtes de chasse aux menaces d’Unit 42

Requêtes mises à jour pour la campagne de novembre 2025

Conclusion

Le ver Shai-Hulud marque une escalade majeure dans la série d’attaques npm qui ciblent la communauté open source. Il fait suite à des incidents récents tels que la compromission de s1ngularity/Nx, impliquant le vol d’identifiants et l’exposition de référentiels privés, ainsi qu’une vaste campagne d’hameçonnage npm observée en septembre 2024.

Son caractère auto-réplicatif est particulièrement remarquable, puisqu’il combine efficacement le vol d’identifiants avec un mécanisme de diffusion automatisée qui exploite les droits de publication existants des mainteneurs pour se propager dans l’écosystème. Nous avons en outre observé l’intégration de contenus générés par IA dans la campagne Shai-Hulud, une évolution qui fait écho à l’attaque « s1ngularity/Nx », qui utilisait clairement des outils en ligne de commande boostés par l’IA à des fins de reconnaissance. Ce phénomène illustre la menace croissante que représentent les acteurs malveillants exploitant l’IA pour leurs activités, ce qui accélère la dissémination des secrets.

La constance et le raffinement de ces méthodologies d’attaque soulignent la menace grandissante qui pèse sur les supply chains logicielles open source. Ces attaques se propagent désormais au rythme de l’intégration et du déploiement continus (CI/CD), posant des défis de sécurité durables et de plus en plus complexes pour l’ensemble de l’écosystème.

Palo Alto Networks a partagé ses conclusions avec les autres membres de la Cyber Threat Alliance (CTA). Les membres de la CTA s’appuient sur ces renseignements pour déployer rapidement des mesures de protection auprès de leurs clients et perturber de manière coordonnée les activités des cybercriminels. Cliquez ici pour en savoir plus sur la Cyber Threat Alliance.

Protections et détections de Palo Alto Networks contre les attaques de la supply chain visant les paquets npm

Les clients de Palo Alto Networks peuvent s’appuyer sur un large éventail de protections, de services et de mises à jour intégrés aux produits pour identifier et contrer cette menace.

Vous pensez que votre entreprise a été compromise ? Vous devez faire face à une urgence ? Contactez l’équipe Unit 42 de réponse à incident ou composez l’un des numéros suivants :

  • Amérique du Nord : Numéro gratuit : +1 (866) 486-4842 (866.4.UNIT42)
  • Royaume-Uni : +44 20 3743 3660
  • Europe et Moyen-Orient : +31.20.299.3130
  • Asie : +65.6983.8730
  • Japon : +81 50 1790 0200
  • Australie : +61.2.4062.7950
  • Inde : 000 800 050 45107

Advanced WildFire

Les modèles de Machine Learning d’Advanced WildFire ont été mis à jour sur la base des indicateurs de compromission (IoC) associés à cette menace.

Pare-feux de nouvelle génération avec prévention avancée des menaces

Le pare-feu de nouvelle génération (Next-Generation Firewall ), avec l'abonnement de sécurité Advanced Threat Prevention , peut aider à bloquer l'attaque via la signature de prévention des menaces suivante : 87042, 87046 et 87047.

Services de sécurité cloud pour le pare-feu de nouvelle génération

Le service Advanced URL Filtering aide à bloquer les attaques de phishing de type meddler-in-the-middle (MitM) et classe comme malveillantes les URL associées à cette activité.

Cortex XDR et XSIAM

Cortex XDR et XSIAM contribuent à la protection contre les menaces décrites dans cet article. Les agents sont conçus pour empêcher l’exécution de malwares connus, mais aussi de menaces inconnues grâce à la protection comportementale et à l’analyse locale basée sur le machine learning.

Cortex Cloud

Cortex Cloud offre des capacités étendues d'ASPM (Application Security Posture Management) et de sécurité de la chaîne logistique pour aider à identifier les vulnérabilités et les mauvaises configurations exploitées par Shai-Hulud. Avec une visibilité SBOM en temps réel, les équipes peuvent interroger instantanément leur inventaire pour y rechercher des paquets npm malveillants connus. Le modèle de risque opérationnel de la plateforme ajoute une couche de défense supplémentaire en évaluant les composants open source basés sur l'activité des mainteneurs, les signaux d'obsolescence et la santé de la communauté pour signaler les paquets à risque, même en l'absence de CVE publiées.

Pour durcir les pipelines, Cortex Cloud fournit des règles CI/CD prêtes à l'emploi alignées sur les recommandations de l'OWASP et du CIS, incluant des vérifications pour les fichiers de verrouillage npm manquants (package-lock.json), l'utilisation non sécurisée de « npm install », les paquets sourcés via git sans hachage de commit, et les dépendances inutilisées qui étendent la surface d'attaque.

Puisque la publication des CVE a souvent un temps de retard sur les attaques actives, il est critique de revoir et de vérifier que vos applications ne dépendent pas de versions de paquets npm non sanctionnées. Ensemble, ces contrôles aident à garantir que les versions malveillantes ne peuvent pas s'infiltrer silencieusement dans les builds ou persister dans votre environnement.

Cortex Cloud a publié un article de blog détaillé décrivant comment la plateforme peut être utilisée pour détecter et prévenir les attaques de la supply chain.

Prisma Cloud

Prisma Cloud contribue à détecter l’utilisation de paquets logiciels malveillants et à identifier des configurations erronées dans les pipelines susceptibles d’exposer les clients à des versions OSS non testées ou non autorisées. Toutefois, son scanner est conçu pour repérer les vulnérabilités, les problèmes de licence et les risques opérationnels, et non pour détecter du code malveillant dans de nouveaux paquets logiciels. Il est donc essentiel d’examiner attentivement les alertes CI/CD pertinentes et de s’assurer que vos applications n’utilisent pas de versions non autorisées de paquets npm.

Indicateurs de compromission

  • 46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09
  • b74caeaa75e077c99f7d44f46daaf9796a3be43ecf24f2a1fd381844669da777
  • dc67467a39b70d1cd4c1f7f7a459b35058163592f4a9e8fb4dffcbba98ef210c
  • 4b2399646573bb737c4969563303d8ee2e9ddbd1b271f1ca9e35ea78062538db
  • hxxps://webhook[.]site/bb8ca5f6-4175-45d2-b042-fc9ebb8170b7

Pour aller plus loin

Enlarged Image