Un nouveau type d’attaque par chaîne d’approvisionnement vise l’écosystème du Node Package Manager (npm), avec pour objectif le vol des identifiants des développeurs et la propagation via des paquets provenant de comptes compromis.
Cette menace a été identifiée par des chercheurs des entreprises de sécurité applicative Socket et StepSecurity, qui ont analysé plusieurs paquets publiés par Namastex Labs, une société spécialisée dans des solutions basées sur l’intelligence artificielle pour améliorer la rentabilité.
Les experts de Socket ont observé que les techniques employées pour le vol d’identifiants, l’exfiltration de données et la propagation autonome ressemblent à celles utilisées dans les attaques de CanisterWorm de TeamPCP, bien que les éléments de preuve ne permettent pas de déterminer une attribution fiable.
À l’heure actuelle, Socket recense une liste de 16 paquets Namastex déjà compromis dans cette attaque :
- @automagik/genie (4.260421.33-4.260421.39)
- pgserve (1.1.11–1.1.13)
- @fairwords/websocket (1.0.38-1.0.39)
- @fairwords/loopback-connector-es (1.4.3-1.4.4)
- @openwebconcept/theme-owc@1.0.3
- @openwebconcept/design-tokens@1.0.3
Ces paquets sont utilisés dans les outils d’agents intelligents et les opérations de base de données, ce qui signifie que l’attaque cible des points d’extrémité à haute valeur plutôt que de viser une infection de masse. Cependant, en raison de sa fonction de propagation autorépétée, son expansion peut se faire rapidement si les conditions le permettent.
Les chercheurs ont révélé que le code malveillant injecté collecte des informations sensibles liées à divers secrets, tels que des token, des clés API, des clés SSH, des identifiants pour des services cloud, des systèmes CI/CD, des registres, ainsi que des configurations pour Kubernetes et Docker.
De plus, il tente de récupérer des données sensibles stockées dans les navigateurs Chrome et Firefox, y compris des portefeuilles de cryptomonnaies tels que MetaMask, Exodus, Atomic Wallet et Phantom.
StepSecurity décrit le malware comme un worm de chaîne d’approvisionnement capable de trouver des tokens pour la publication sur npm et de s’injecter dans chaque paquet que ce token peut publier, propageant ainsi la compromission plus largement.
Les versions malveillantes pour pgserve ont d’abord été publiées le 21 avril à 22h14 UTC, suivies de deux autres versions le même jour.
Si des tokens de publication sont détectés sur le système compromis dans les variables d’environnement ou le fichier de configuration ~/.npmrc, le script malveillant identifie les paquets que la victime peut publier, ajoute le payload et les republie sur npm avec un numéro de version augmenté.
Ces nouveaux paquets infectés exécutent le même processus lorsqu’ils sont installés, permettant ainsi une propagation récursive.
Les chercheurs ont également noté que si des identifiants PyPI sont découverts, une méthode similaire est appliquée aux paquets Python en utilisant un payload basé sur .pth, faisant de cette attaque un phénomène multi-écosystèmes.
Les développeurs doivent considérer toutes les versions de paquets listées comme malveillantes et les supprimer immédiatement de leurs systèmes et de leurs pipelines CI/CD, tout en changeant tous les secrets potentiellement exposés.
Socket et StepSecurity fournissent des indicateurs de compromission pour aider à identifier des environnements de développement compromis ou pour se défendre contre cette attaque.
Les actions recommandées dans les environnements où des paquets touchés sont présents incluent leur suppression des systèmes de développement et de CI/CD, le changement de toutes les identifiants et données secrètes, et la recherche de miroirs de paquets internes, d’artefacts et de caches.
Enfin, Socket conseille aux défenseurs d’auditer les paquets associés ayant le même fichier public.pem, le même hôte de webhook ou le même modèle post-installation.
