
Dix packages npm ont été soudainement mis à jour avec du code malveillant hier pour voler des variables d’environnement et d’autres données sensibles des systèmes des développeurs.
La campagne ciblait plusieurs packages liés à la crypto-monnaie, et le populaire package « carte pays-devise » était téléchargé des milliers de fois par semaine.
Le code malveillant a été découvert par le chercheur de Sonatype Ali El Shakankiry et se trouve dans deux scripts fortement obscurcis, » / scripts / launch.js » et « /scripts/rapport de diagnostic.js, » qui s’exécutent lors de l’installation du package.

Sonatype indique que le JavaScript vole les variables d’environnement de l’appareil et les envoie à l’hôte distant » eoi2ectd5a5tn1h.m.pipedream (.) filet) ». Les variables d’environnement sont généralement ciblées car elles peuvent contenir des clés d’API, des informations d’identification de base de données, des informations d’identification cloud et des clés de chiffrement, qui peuvent être utilisées pour d’autres attaques.

Comme l’explique Ax Sharma, analyste de logiciels malveillants chez Sonatype et collègue journaliste de Breachtrace, dans un article, comme le code malveillant est le même dans tous les référentiels et que la plupart ont un dossier vierge depuis des années, ils ont probablement été compromis d’une manière ou d’une autre.
« Nous émettons l’hypothèse que la cause du piratage serait que d’anciens comptes de mainteneurs de npm soient compromis soit par le bourrage d’informations d’identification (c’est là que les acteurs de la menace réessayent les noms d’utilisateur et les mots de passe divulgués lors de violations précédentes pour compromettre des comptes sur d’autres sites Web), soit par une prise de contrôle de domaine expirée — les deux scénarios courants expliqués dans la documentation de npm », rapporte Sonatype.
« Compte tenu du calendrier simultané des attaques sur plusieurs paquets de responsables distincts, le premier scénario (prise de contrôle des comptes des responsables) semble être un scénario plus probable par opposition aux attaques de phishing bien orchestrées. »
Les noms des packages, leurs versions compromises et le nombre de téléchargements de la version malveillante sont répertoriés ci-dessous:
- country-currency-map: version 2.1.8, 288 downloads.
- @keepkey/device-protocol: version 7.13.3, 56 downloads.
- bnb-javascript-sdk-nobroadcast: version 2.16.16, 61 downloads.
- @bithighlander/bitcoin-cash-js-lib: version 5.2.2, 61 downloads.
- eslint-config-travix: version 6.3.1, 0 downloads.
- babel-preset-travix: version 1.2.1, 0 downloads.
- @travix/ui-themes: version 1.1.5, 0 downloads.
- @veniceswap/uikit: version 0.65.34, 0 downloads.
- @crosswise-finance1/sdk-v2: version 0.1.21, 0 downloads.
- @veniceswap/eslint-config-pancake: version 1.6.2, 0 downloads.
Tous ces packages, à l’exception de country-currency-map, sont toujours disponibles sur npm, avec leurs dernières versions désignées ci-dessus, donc les télécharger infectera vos projets avec des logiciels malveillants voleurs d’informations.
Le mainteneur du paquet country-currency-map a déconseillé la version malveillante (2.1.8) hier et a laissé une note disant aux développeurs d’utiliser la version 2.1.7 à la place, ce qui est sûr.

L’hypothèse selon laquelle l’attaque a été causée par une mauvaise sécurité du compte du mainteneur npm est également étayée par le fait que les référentiels GitHub correspondants des projets compromis n’ont pas été mis à jour avec des logiciels malveillants.
Bien que npm ait rendu l’authentification à deux facteurs obligatoire pour les projets populaires, certains des projets concernés par la dernière campagne sont des packages plus anciens avec leur dernière mise à jour il y a plusieurs années. Par conséquent, leurs responsables peuvent ne plus être activement impliqués.