Shai-Hulud 2.0 NPM malware attack exposed up to 400,000 dev secrets
Mis à jour :
Attaque Shai-Hulud 2.0 : Une menace persistante pour les secrets de développement
Une récente campagne de malware, baptisée Shai-Hulud 2.0, a compromis un grand nombre de paquets au sein du registre NPM (Node Package Manager). Cette attaque a conduit à l’exposition de près de 400 000 secrets de développement, qui ont ensuite été diffusés dans environ 30 000 dépôts GitHub. Bien qu’un nombre significatif de ces secrets ne soient pas valides, plus de 60% des jetons NPM divulgués restaient actifs au 1er décembre.
La deuxième itération de cette attaque a affecté plus de 800 paquets (en comptant toutes les versions infectées) et a inclus un mécanisme destructeur capable d’effacer le répertoire personnel de l’utilisateur sous certaines conditions. Les secrets exposés, trouvés dans divers formats de fichiers tels que contents.json, truffleSecrets.json et environment.json, incluent des identifiants GitHub, des jetons NPM, des informations sur le système d’exploitation et des métadonnées de CI/CD.
L’analyse des données révèle que les machines infectées sont majoritairement des systèmes Linux (87%) et des conteneurs (76%). Les plateformes de CI/CD les plus touchées sont GitHub Actions, suivi de Jenkins, GitLab CI et AWS CodeBuild. Les paquets les plus ciblés par l’infection étaient @postman/tunnel-agent@0.6.7 et @asyncapi/specs@6.8.3. L’infection s’est principalement propagée via l’exécution du script setup_bun.js lors de l’événement preinstall.
Les créateurs de Shai-Hulud sont susceptibles de continuer à développer leurs tactiques, et des vagues d’attaques futures sont prévues, potentiellement en exploitant le grand volume de secrets collectés.
Points clés :
- Attaque : Shai-Hulud 2.0 ciblant le registre NPM.
- Impact : Exposition de près de 400 000 secrets de développement, diffusion dans 30 000 dépôts GitHub.
- Validité des secrets : Plus de 60% des jetons NPM divulgués restaient valides.
- Mécanisme : Auto-propagation, vol de jetons, injection de scripts malveillants, potentiel mécanisme destructeur.
- Types de secrets exposés : Identifiants GitHub, jetons NPM, informations de CI/CD, etc.
- Environnement cible : Systèmes Linux, conteneurs, plateformes CI/CD (GitHub Actions, Jenkins, GitLab CI, AWS CodeBuild).
- Paquets les plus touchés :
@postman/tunnel-agent@0.6.7,@asyncapi/specs@6.8.3. - Méthode d’infection : Exécution du script
setup_bun.jslors de l’événementpreinstall.
Vulnérabilités :
Aucune vulnérabilité spécifique avec un identifiant CVE n’est explicitement mentionnée dans l’article. L’attaque exploite des failles dans la confiance accordée aux paquets de bibliothèques tierces et dans la gestion des secrets au sein des environnements de développement et des pipelines CI/CD.
Recommandations :
L’article ne fournit pas de liste explicite de recommandations. Cependant, implicitement, les points suivants sont suggérés :
- Audit et surveillance des dépôts GitHub : Examiner régulièrement les dépôts à la recherche de secrets exposés.
- Gestion rigoureuse des secrets : Utiliser des outils et des pratiques pour stocker et gérer les secrets de manière sécurisée, en évitant de les intégrer directement dans le code ou les dépôts.
- Analyse des dépendances : Examiner attentivement les paquets utilisés dans les projets, en particulier ceux issus de sources externes.
- Mise en place d’outils de scan : Utiliser des outils comme TruffleHog (avec les flags appropriés pour une meilleure vérification, par exemple
-only-verified) pour identifier les secrets. - Sécurisation des pipelines CI/CD : Renforcer la sécurité des plateformes CI/CD pour prévenir l’injection de code malveillant et l’exposition de secrets.
- Surveillance proactive des jetons et identifiants : Mettre en place des mécanismes pour détecter et révoquer rapidement les jetons et identifiants potentiellement compromis.
