Grâce à ce phishing, les attaquants ont réussi à intercepter les identifiants du mainteneur de 18 packages NPM populaires, téléchargés plus de 2 milliards de fois par semaine. Ils ont ainsi pu publier de nouvelles versions des packages compromis contenant du code malveillant. Il s'agit de la plus grande attaque contre le dépôt NPM, affectant non seulement les projets directement attaqués, mais aussi des centaines de milliers de packages qui en dépendent.
Des mises à jour malveillantes ont notamment été publiées pour les packages debug, chalk, ansi-styles, color-convert, wrap-ansi, supports-color et ansi-regex, qui ont été téléchargés plus de 200 millions de fois la semaine dernière. Les packages chalk et debug se distinguent par leur dépendance directe aux packages NPM 129286 55289 et XNUMX XNUMX. Ces packages ont été compromis suite à une fuite des identifiants de compte de Josh Junon, responsable de debug-js, chalk et de nombreuses bibliothèques pour applications console.
Lors de l'hameçonnage, une notification par e-mail a été envoyée au responsable du projet NPM pour lui demander de mettre à jour ses paramètres d'authentification à deux facteurs. L'e-mail indiquait que l'utilisateur n'avait pas mis à jour ses données d'authentification à deux facteurs depuis plus de 12 mois et que tous les comptes dont les paramètres 10FA n'avaient pas été mis à jour seraient bloqués le 2 septembre afin d'empêcher tout accès non autorisé.

Les messages ont été envoyés depuis l'adresse « support@npmjs.help » et redirigés vers npmjs.help, un site qui répliquait npmjs.com. La tromperie semblait similaire aux précédentes attaques contre PyPI, NPM et addons.mozilla.org, qui utilisaient un proxy transparent pour le trafic d'un site de phishing vers le site réel afin de contourner l'authentification à deux facteurs et de créer l'illusion d'utiliser le véritable répertoire NPM. En faisant en sorte que npmjs.help agisse comme proxy pour accéder à npmjs.com, les attaquants surveillaient l'ensemble du trafic, y compris l'activité sur la page de connexion et la page d'authentification à deux facteurs.
Les mises à jour de paquets publiées par les attaquants contenaient du code malveillant exécuté sur les systèmes des utilisateurs utilisant des sites ou des applications utilisant des versions compromises des paquets. L'insertion malveillante pour les navigateurs interceptait le trafic et l'activité des API Web en associant ses gestionnaires aux fonctions fetch et XMLHttpRequest, et perturbait également le fonctionnement des interfaces classiques des portefeuilles cryptographiques afin de remplacer discrètement les informations du destinataire lors du transfert. La substitution s'effectuait au niveau de la modification des valeurs des requêtes et des réponses, de manière imperceptible pour l'utilisateur (les informations correctes étaient affichées dans l'interface utilisateur). Les formats de transaction pris en charge étaient Ethereum, Bitcoin, Solana, Tron, Litecoin et Bitcoin Cash.
Certaines annonces d'attaques contre les packages NPM concernés mentionnent également un code malveillant collectant et transmettant des clés de chiffrement, des mots de passe et des jetons lors de l'installation ou du lancement du package. Les détails sur cette forme d'insertion malveillante ne sont pas encore fournis.
Paquets compromis :
Source: opennet.ru
