Logiciels malveillants injectés dans le package NPM UAParser.js avec 8 millions de téléchargements par semaine

L'histoire de la suppression de trois packages malveillants qui copiaient le code de la bibliothèque UAParser.js du référentiel NPM a reçu une suite inattendue - des attaquants inconnus ont pris le contrôle du compte de l'auteur du projet UAParser.js et ont publié des mises à jour contenant du code pour voler des mots de passe et extraire des crypto-monnaies.

Le problème est que la bibliothèque UAParser.js, qui propose des fonctions d'analyse de l'en-tête HTTP User-Agent, compte environ 8 millions de téléchargements par semaine et est utilisée comme dépendance dans plus de 1200 projets. UAParser.js est prétendu être utilisé par des sociétés telles que Microsoft, Amazon, Facebook, Slack, Discord, Mozilla, Apple, ProtonMail, Autodesk, Reddit, Vimeo, Uber, Dell, IBM, Siemens, Oracle, HP et Verison.

L'attaque a été menée en piratant le compte du développeur du projet, qui s'est rendu compte que quelque chose n'allait pas après qu'une vague inhabituelle de spam soit tombée dans sa boîte aux lettres. Comment exactement le compte du développeur a été piraté n'est pas signalé. Les attaquants ont créé les versions 0.7.29, 0.8.0 et 1.0.0 en y injectant du code malveillant. En quelques heures, les développeurs ont repris le contrôle du projet et ont généré les mises à jour 0.7.30, 0.8.1 et 1.0.1 corrigeant le problème. Les versions malveillantes ont été publiées uniquement sous forme de packages dans le référentiel NPM. Le référentiel Git du projet sur GitHub n'a pas été affecté. Tous les utilisateurs qui ont installé des versions problématiques, s'ils trouvent le fichier jsextension sous Linux / macOS, et les fichiers jsextension.exe et create.dll sous Windows, sont invités à considérer le système compromis.

Les modifications malveillantes ajoutées étaient similaires à celles précédemment proposées dans les clones UAParser.js, qui semblent avoir été publiés pour tester les fonctionnalités avant de lancer une attaque à grande échelle sur le projet principal. Le fichier exécutable jsextension a été chargé et lancé sur le système de l'utilisateur à partir d'un hôte externe, qui a été sélectionné en fonction de la plate-forme de l'utilisateur et du travail pris en charge sur Linux, macOS et Windows. Pour la plate-forme Windows, en plus du programme de minage de crypto-monnaie Monero (le mineur XMRig a été utilisé), les attaquants ont également organisé l'introduction de la bibliothèque create.dll pour intercepter les mots de passe et les envoyer à un hôte externe.

Le code de téléchargement a été ajouté au fichier preinstall.sh, qui comprenait l'insert IP=$(curl -k https://freegeoip.app/xml/ | grep 'RU|UA|BY|KZ') if [ -z " $ IP" ] ... téléchargez et lancez l'exécutable fi

Comme le montre le code, le script a d'abord vérifié l'adresse IP dans le service freegeoip.app et n'a pas lancé d'application malveillante pour les utilisateurs de Russie, d'Ukraine, de Biélorussie et du Kazakhstan.

Source: opennet.ru

Ajouter un commentaire