Plus de trente paquets npm, qui appartiennent à l’espace de noms @redhat-cloud-services, ont été compromis dans le cadre d’une attaque de la chaîne d’approvisionnement. Ce coup de force a permis de distribuer une nouvelle variante du malware voleur d’identifiants Shai-Hulud, baptisée « Miasma ».
Les sociétés de sécurité Aikido et OX Security ont découvert l’incident. Elles ont constaté que des dizaines de versions de paquets étaient corrompues par un logiciel malveillant. Ce dernier était conçu pour dérober les identifiants des développeurs, les secrets des environnements cloud, les clés SSH, les jetons d’intégration continue, ainsi que d’autres informations sensibles.
D’après Aikido, les paquets compromis sont téléchargés environ 117 000 fois par semaine.
Red Hat a déclaré à BleepingComputer que l’entreprise avait retiré les paquets concernés dès qu’elle a pris connaissance de l’incident. La compromission était limitée à des outils de développement interne.
« Red Hat a pris connaissance des rapports de sécurité concernant certains paquets npm de notre écosystème d’outils de développement. Nous avons immédiatement lancé une enquête et retiré les paquets du registre npm, » a expliqué Red Hat.
« Ces paquets sont strictement limités à un usage de développement interne, et le code malveillant n’a jamais été publié pour les clients via le système console.redhat.com. Bien que notre enquête se poursuive, nous n’avons identifié aucun impact sur les environnements clients ou partenaires, ni sur les systèmes de production de Red Hat. »
L’entreprise précise qu’elle continue d’enquêter sur cet incident, mais n’a pas répondu aux questions sur la manière dont le compte a été compromis.
Les paquets Red Hat compromis via un piratage GitHub
Selon Aikido, les attaquants auraient compromis le compte GitHub d’un employé de Red Hat. Ils l’ont ensuite utilisé pour injecter directement des modifications malveillantes dans plusieurs dépôts.
Ces modifications ont ajouté un flux de travail GitHub Actions et un script. Ce script a détourné le mécanisme de publication de npm pour diffuser des versions corrompues des paquets.
« Lorsque le flux de travail s’exécute, il installe Bun et exécute _index.js. Il lui transmet une liste de paquets cibles via la variable d’environnement OIDC_PACKAGES, » détaille Aikido.
« Le script utilise la permission ‘id-token: write’ pour demander un jeton OIDC à durée de vie courte à GitHub. Ensuite, il utilise ce jeton pour s’authentifier directement auprès du point de terminaison de publication de confiance de npm et publie des versions corrompues de chaque paquet de la liste. »
Ces paquets compromis contenaient un script ‘preinstall’ malveillant. Ce script exécutait automatiquement un fichier index.js lourdement obfusqué dès qu’un développeur installait le paquet.
"scripts": {
"preinstall": "node index.js"
}
D’après Aikido, la charge utile ‘index.js’ pesait environ 4,2 Mo. Elle est utilisée pour voler les secrets GitHub Actions, les identifiants AWS, les identifiants Google Cloud, les informations d’identification Azure, les jetons HashiCorp Vault, les jetons de compte de service Kubernetes, les jetons de publication npm et PyPI, les clés SSH, les identifiants Docker, les clés GPG, et les fichiers `.env`.
Aikido affirme que 32 paquets et 96 versions de paquets ont été affectés par cette compromission. Cela inclut de nombreuses bibliothèques clientes maintenues sous l’espace de noms `@redhat-cloud-services`.
Les organisations qui ont installé une version affectée sont invitées à renouveler immédiatement tous les identifiants, secrets et jetons utilisés par le code sur l’appareil infecté.
Miasma semble être une nouvelle variante de Shai-Hulud
Au cours des derniers mois, de nombreuses attaques de la chaîne d’approvisionnement ont utilisé un malware de type Shai-Hulud pour voler des identifiants et se propager à d’autres projets.
Ces attaques ont touché des projets connus, comme Bitwarden, SAP, Mistral, TanStack, OpenAI et GitHub.
En mai, le groupe de menace TeamPCP a rendu public le code source de son cadre malveillant Mini Shai-Hulud. Cette action a rendu le malware accessible à d’autres acteurs malveillants.
Les chercheurs indiquent que le logiciel utilisé dans la compromission de Red Hat présente de nombreuses similitudes avec Mini Shai-Hulud. Cependant, il utilise désormais la chaîne de caractères « Miasma: The Spreading Blight » en tant que commentaires dans les dépôts GitHub compromis.
Bien que le malware ressemble au Mini Shai-Hulud de TeamPCP, on ignore si cette campagne est l’œuvre de cette menace ou d’un autre acteur qui aurait modifié le code source divulgué.
OX Security explique que le malware conserve la même fonctionnalité de vol d’identifiants que Mini Shai-Hulud. Il ajoute cependant des couches supplémentaires d’obfuscation, des mécanismes de livraison de charge utile en plusieurs étapes, et des fonctionnalités améliorées de vol de données et de collecte d’identifiants.
Au moment de la rédaction de cet article, 309 dépôts GitHub ont été compromis par la campagne de malware Miasma.
