Mini Shai-Hulud: la campagne d'approvisionnement engagée qui vole des jetons, déploie des charges malveillantes et réinfecte vos pipelines de npm

Publié 5 min de lectura 96 lecture

Des chercheurs de plusieurs entreprises de sécurité ont signalé une campagne d'approvisionnement engagée ciblant l'écosystème SAP JavaScript, distribué dans des paquets npm légitimes mais versé avec un installateur malveillant. L'attaque - auto-appelée "mini Shai-Hulud" par l'acteur - utilise un crochet d'installation (préinstallation) pour télécharger et exécuter un binaire Bun de GitHub Releases et, à partir de là, charger un chargeur JavaScript qui installe un exfiltre d'identification et un cadre de propagation qui fonctionne dans l'environnement du développeur ou dans les pipelines CI / CD.

La chose remarquable dans cette campagne n'est pas seulement la technique de livraison mais son objectif et sa portée: Vol de jetons et de secrets locaux et nuageux (GitHub, npm, GitHub Actions, AWS, Azure, GCP et Kubernetes), chiffrer les données volées avec AES-256-GCM et emballer la clé avec RSA-4096 afin que seul l'agresseur puisse les déchiffrer, puis publier les artefacts exfiltrés dans les dépôts publics créés dans le compte de la victime. Il intègre également des mécanismes d'autopropagation qui utilisent des jetons volés pour injecter des flux de travail malveillants dans les dépôts et publier de nouvelles versions dans l'enregistrement npm, clôturant un cycle de réengagement qui peut augmenter exponentiellement les dommages.

Mini Shai-Hulud: la campagne d'approvisionnement engagée qui vole des jetons, déploie des charges malveillantes et réinfecte vos pipelines de npm
Image générée avec IA.

Il existe une autre dimension préoccupante et relativement nouvelle : l'utilisation de configurations d'agents de programmation IA et de l'éditeur lui-même comme vecteurs persistants. malware introduit des fichiers comme "claude / settings.json" pour profiter des crochets de session Claude Code et des fichiers VS Code "RunOn": "dossierOuvrir", donc ouvrir le projet dans ces environnements réexécute le code malveillant. Cette tactique transforme des outils qui accélèrent le développement en pièges qui réinfectent les équipes de travail et les nouvelles machines qui clonent le dépôt.

Les implications pratiques sont sérieuses: un développeur peut compromettre non seulement sa machine, mais aussi les pipelines CI / CD, les dépôts et les comptes de services cloud sans le savoir. À partir de là, les attaquants peuvent déployer des charges, extraire des données sensibles, publier des paquets contaminés qui infectent des tiers et maintenir un accès persistant aux environnements d'entreprise. L'incorporation d'un chiffrement fort et de clés RSA 4096 bits complique également la réponse médico-légale au contenu exfiltré.

Pour atténuer le risque immédiat, il est essentiel d'agir rapidement et dans l'ordre. D'abord, identifier et cesser d'utiliser des versions compromises (par exemple, des versions publiées par des chercheurs) et purger les installations locales et les caches npm aux postes de travail et aux coureurs de l'IC. Examinez les dépôts des communications ou fichiers inattendus - par exemple, vérifiez la présence de .claude / settings.json et .vscode / tasks.json - et examinez tout nouveau workflow GitHub Actions ou les modifications récentes. Révocer et faire pivoter immédiatement tous les jetons personnels et de service exposés, et faire pivoter les clés d'accès au cloud, c'est essentiel : les pouvoirs doivent être supposés au contraire. GitHub propose des lignes directrices pratiques pour la gestion des jetons et les bonnes pratiques qui peuvent aider à contenir : GitHub jetons documentation.

Dans les pipelines et la politique de développement, il convient de renforcer les contrôles à moyen terme : permettre le balayage des secrets et la détection des unités sur la plate-forme de dépôt, exiger la signature des paquets ou utiliser des documents privés avec des politiques d'admission, et adopter une rotation automatique des pouvoirs avec des principes de privilège minimum. En outre, restreindre l'exécution automatique des scripts d'installation et des crochets d'audition comme pré-installation dans le paquet. json aide à réduire les surfaces d'attaque qui exploitent les comportements par défaut de npm. Pour comprendre comment les scripts npm peuvent être utilisés comme vecteurs, la documentation npm elle-même est une ressource utile : scripts Npm.

Mini Shai-Hulud: la campagne d'approvisionnement engagée qui vole des jetons, déploie des charges malveillantes et réinfecte vos pipelines de npm
Image générée avec IA.

D'un point de vue opérationnel, il est recommandé de reconstruire les coureurs et de construire des environnements à partir d'images propres, de supprimer et de régénérer les clés et les identifiants, et de revoir les métiers des services GitHub et Cloud pour détecter les activités inhabituelles (création de dépôts, puzzles automatiques, nouveaux workflows avec des permissions élevées). Les outils de sécurité de la chaîne d'approvisionnement tels que les scanners unitaires, les politiques de blocage des versions et les solutions d'observation des dépôts peuvent détecter et contenir des réattentions de publication malveillantes.

Enfin, l'incident souligne la nécessité de comprendre et de contrôler non seulement les unités de librairie, mais aussi les configurations des agents de code et des éditeurs qui font partie du flux de travail. L'industrie devrait envisager des mesures techniques qui limitent l'exécution automatique du code lors de l'ouverture des projets et nécessitent des confirmations explicites ou des boîtes à sable pour l'intégration avec les assistants IA. Pour les développeurs qui veulent évaluer les composants exécutables tels que Bun, il est approprié de télécharger des binaires à partir de sources officielles et vérifiées (par exemple, le site officiel de Bun: Bun) et vérifier les signatures ou les vérifications lorsque disponibles.

Ce type de campagne montre que la prochaine génération d'attaques de la chaîne d'approvisionnement ne cible plus seulement les paquets populaires, mais aussi les raccourcis et les automatisations qui rendent le travail quotidien plus rapide. La réponse devrait combiner le confinement immédiat, la rotation des références, le nettoyage des artefacts et une politique de développement qui permettra de prévenir et de résister à l'exécution de codes non vérifiés.

Couverture

Autres

Plus de nouvelles sur le même sujet.