600 paquets NPM compromis par le ver Shai-Hulud

Une deuxième attaque sur les paquets du dépôt NPM a été signalée, menée par une variante de ver auto-replicant Shai-Hulud, qui insère des logiciels malveillants dans les dépendances. À la suite de cette attaque, des versions malveillantes de 605 paquets ont été publiées, totalisant plus de 100 millions de téléchargements.

Pour mener l'attaque, les cybercriminels ont intercepté les paramètres du compte d'un mainteneur de l'un des paquets populaires, utilisé comme dépendance par de nombreux autres paquets, via hameçonnage. En exploitant le compte compromis, les attaquants ont publié une version du paquet, dans laquelle un code a été ajouté pour activer le ver lors de l'installation du paquet affecté en tant que dépendance. Le ver ainsi déclenché recherche des informations d'identification dans l'environnement courant, télécharge et exécute l'outil TruffleHog.

En cas de détection d'un jeton de connexion au répertoire NPM, le ver publie automatiquement de nouvelles versions malveillantes pour les paquets développés dans l'environnement actuel. De cette manière, tout l'arbre des dépendances est affecté en chaîne. En plus du jeton NPM, le ver sauvegarde les clés d'accès à GitHub et aux services cloud AWS, Azure et GCP (Google Cloud Platform), ainsi que les variables d'environnement et d'autres données sensibles que peut détecter le scanner TruffleHog.

Les données sensibles trouvées dans le système sont publiées sur GitHub par la création de dépôts aux noms aléatoires (par exemple, « qzx15djl71alh6p80h ») et contenant la phrase « Sha1-Hulud: The Second Coming » dans la description. De plus, elles sont également encodées et écrites dans les journaux de GitHub Actions. Dans le dépôt créé, un fichier au format JSON (par exemple, jsonactionsSecrets.json ou contents.json) contient une chaîne avec des informations sur le système, les variables d'environnement et les données capturées codées en base64. Pour transmettre des informations à l'extérieur des systèmes d'intégration continue basés sur GitHub, le ver crée un gestionnaire GitHub Actions nommé « .github/workflows/formatter_123456789.yml » et configure un runner nommé SHA1HULUD.

Les différences par rapport à la précédente attaque de septembre concernent une méthode différente d'insertion de code malveillant dans le paquet. Dans les versions malveillantes générées par le ver, une implémentation de la prise en charge de la plateforme JavaScript Bun est annoncée. Dans le fichier package.json, dans la section « preinstall », qui définit les scripts exécutés avant le début de l'installation, la commande « node setup_bun.js » est ajoutée.

600 paquets NPM compromis par le ver Shai-Hulud

Dans le fichier « setup_bun.js », il y a du code pour exécuter le script obscurci « bun_environment.js », qui contient le code d'un ver. Pour sa propagation ultérieure, le ver recherche le code des paquets, modifie le fichier package.json (augmente le numéro de version et inclut l'appel à setup_bun.js), ajoute les fichiers setup_bun.js et bun_environment.js, reconditionne le paquet et exécute la commande « npm publish » pour publier la nouvelle version.

Parmi les paquets populaires compromis : @zapier/zapier-sdk (2,8 millions de téléchargements par semaine), @posthog/core (2,8 millions), posthog-node (1,5 million), @asyncapi/specs (1,4 million), @postman/tunnel-agent (1,2 million). Il est supposé que l'attaque a commencé par la compromission du paquet associé @asyncapi/specs.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster