IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Des logiciels malveillants ont été découverts dans le très populaire paquet npm "ua-parser-js",
Notamment un mineur de cryptomonnaie et un cheval de Troie

Le , par Bill Fassinou

74PARTAGES

6  0 
Les paquets npm deviennent de plus en plus des vecteurs de logiciels malveillants. Les développeurs ont récemment découvert que plusieurs versions du paquet npm populaire "ua-parser-js", qui est téléchargé des millions de fois par semaine, contiennent du code malveillant. Des pirates auraient détourné le paquet afin de s'en servir pour infecter des dispositifs Linux et Windows avec des logiciels de minage de cryptomonnaies et des chevaux de Troie qui volent des mots de passe dans le cadre d'une attaque de la chaîne d'approvisionnement. Un pirate distant peut prendre le contrôle d'un appareil qui exécute une version infectée du paquet.

ua-parser-js est détourné pour extraire des cryptomonnaies

Le paquet ua-parser-js est utilisé pour analyser l'agent utilisateur d'un navigateur afin d'identifier le navigateur, le moteur, le système d'exploitation, le processeur et le type/modèle de périphérique d'un visiteur. Il est très populaire, avec des millions de téléchargements (environ 7 millions) par semaine et plus de 24 millions de téléchargements depuis le début de ce mois. En outre, le paquet est utilisé dans plus d'un millier d'autres projets, y compris ceux de Facebook, Microsoft, Amazon, Instagram, Google, Slack, Mozilla, Discord, Elastic, Intuit, Reddit, et de nombreuses autres entreprises bien connues.



Mais plusieurs versions du paquet ont été détournées pour un usage malveillant. Il semble en effet qu'un ATO (account takeover - prise de contrôle de compte) se soit produit, le compte de l'auteur ayant été détourné en raison d'une fuite de mot de passe ou d'une tentative de force brute. « J’ai remarqué quelque chose d’inhabituel quand mon adresse e-mail a été soudainement floodée par des spams provenant de centaines de sites », a déclaré le développeur d’ua-parser-js, Faisal Salman, dans un rapport de bogue sur GitHub. Il s'est fait pirater et des versions malveillantes de son package avaient été publiées par les attaquants.

Au total, trois nouvelles versions du paquet ont été publiées dans le but d'inciter les utilisateurs à les télécharger. Alors que la version précédente (propre) était 0.7.28, l'attaquant a publié des paquets identiques 0.7.29, 0.8.0 et 1.0.0, chacun contenant du code malveillant activé à l'installation. L'auteur du paquet a rapidement réagi en publiant les versions 0.7.30, 0.8.1 et 1.0.1 afin de minimiser le nombre de personnes installant par inadvertance un paquet malveillant. Cette capture d'écran annotée des informations du registre montre qu'il s'est écoulé environ 4 heures entre l'attaque et la solution de contournement :



Malheureusement, le code malveillant serait resté téléchargeable environ 3 heures après la correction. Selon des experts, la plupart des paquets malveillants téléchargés quotidiennement sur npm tentent de voler des clés d'environnement de manière générique. Cependant, ces versions compromises ciblaient Windows et Linux + macOS d'une manière légèrement différente. Alors que les versions du script téléchargeaient et exécutaient une application d'extraction de cryptomonnaies sur macOS et les systèmes d'exploitation Linux, la version Windows comprenait également un cheval de Troie.

Toutefois, les analystes de BleepingComputer - qui ont eu accès au code malveillant - ont déclaré que bien que l'application d'extraction de cryptomonnaies soit passée inaperçue par la majorité des logiciels antivirus Windows le cheval de Troie aurait été détecté et arrêté par au moins une douzaine d'entre eux, dont les plus populaires comme Gdata et Symantec. Dans les cas de Linux et macOS, bien que l'on ne puisse pas éliminer pour le moment la probabilité qu'il comprenne également le cheval de Troie intégré à l'outil de minage de cryptomonnaie, l'expérience antérieure avec ce code indique que ce n'est pas le cas.

Selon les analystes de BleepingComputer, lorsque les paquets compromis sont installés sur l'appareil d'un utilisateur, un script "preinstall.js" vérifie le type de système d'exploitation utilisé sur l'appareil et lance soit un script shell Linux, soit un fichier batch Windows. Si le paquet se trouve sur un appareil Linux, un script "preinstall.sh" sera exécuté pour vérifier si l'utilisateur se trouve en Russie, en Ukraine, au Belarus et au Kazakhstan. Si le périphérique n'est pas situé dans ces pays, le script téléchargera le programme "jsextension" depuis 159[.]148[.]186[.]228 et l'exécutera.



Le programm jsextension est un mineur de la cryptomonnaie Monero XMRig, qui n'utilisera que 50 % du processeur de l'appareil pour éviter d'être facilement détecté. Pour les appareils Windows, le fichier batch télécharge également le mineur de XMRig Monero, l'enregistre sous le nom de "jsextension .exe" [VirusTotal] et l'exécute. En outre, le fichier batch téléchargera un fichier sdd.dll et l'enregistrera sous le nom de create.dll. La DLL téléchargée est un cheval de Troie voleur de mots de passe (probablement DanaBot) qui tentera de voler les mots de passe stockés sur l'appareil.

Lorsque la DLL est chargée à l'aide de la commande regsvr32.exe -s create.dll, elle tente de voler les mots de passe d'une grande variété de programmes, notamment les clients FTP, VNC, les logiciels de messagerie, les clients de messagerie électronique et les navigateurs.

Alors, que doivent faire les utilisateurs de ua-parser-js ?

En plus de voler les mots de passe des programmes ci-dessus, la DLL exécutera un script PowerShell pour voler les mots de passe du gestionnaire d'identifiants de Windows. Cette attaque semble avoir été menée par le même acteur de la menace qui se cache derrière d'autres paquets npm malveillants découverts cette semaine. Les chercheurs de la société de sécurité open source Sonatype ont découvert trois paquets npm malveillants utilisés pour déployer des applications de minage de cryptomonnaies sur des appareils Linux et Windows d'une manière presque identique.



En raison de l'impact généralisé de cette attaque de la chaîne d'approvisionnement, il est fortement conseillé à tous les utilisateurs du ua-parser-js de vérifier l'absence de logiciels malveillants dans leurs projets. Cela implique de vérifier l'existence de jsextension.exe (Windows) ou de jsextension (Linux) et de les supprimer s'ils sont trouvés. Pour les utilisateurs de Windows, vous devez analyser votre appareil à la recherche d'un fichier create.dll et le supprimer immédiatement. Seul Windows a été infecté par le cheval de Troie voleur de mots de passe.

Mais il est sage pour les utilisateurs de Linux de supposer que leur appareil a été entièrement compromis. Par ailleurs, WhiteSource - une société qui analyse les composants open source à la recherche de vulnérabilité - estime que vous êtes responsable de votre chaîne d'approvisionnement en logiciels libres. Selon lui, cet incident n'est que la partie émergée de l'iceberg des incidents qui se produisent dans l'écosystème npm.

WhiteSource dit avoir identifié et signalé au cours du mois dernier plus de 350 paquets npm uniques comportant une ou plusieurs versions malveillantes, soit prises en charge via des ATO, soit créées dans le seul but de causer divers types de dommages aux utilisateurs finaux. Ainsi, pour prévenir les attaques de la chaîne d'approvisionnement, il vous recommande de ne jamais utiliser le même mot de passe pour plusieurs sites Web et de toujours activer le 2FA (l'authentification à double facteur) si vous êtes un responsable de paquets.

Source : Rapport de bogue pour ua-parser-js

Et vous ?

Quel est votre avis sur le sujet ?
Avez-vous été infecté par les versions malveillantes du paquet ua-parser-js ? Si oui, quels ont été les impacts ?
Que pensez-vous du détournement répété des paquets npm populaires au cours des derniers mois ? L'écosystème est-il toujours sûr ?

Voir aussi

Quatre packages npm trouvés en train d'ouvrir des shells sur des systèmes Linux et Windows. Tout ordinateur avec l'un de ces packages installés « doit être considéré comme totalement compromis »

Un projet Node.js sur deux audité par les outils de npm aurait au moins une vulnérabilité, une sur dix d'entre elles est critique

Des hackers ont glissé une porte dérobée dans une bibliothèque open source largement utilisée pour voler des bitcoins

Plus de 75% des vulnérabilités dans les projets open source résident dans des dépendances indirectes, plutôt que dans les composants directement chargés

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Fagus
Membre éprouvé https://www.developpez.com
Le 27/10/2021 à 18:44
Que pensez-vous du détournement répété des paquets npm populaires au cours des derniers mois ? L'écosystème est-il toujours sûr ?
La réponse est dans la question

Je ne connais pas la sécurisation de npm, mais le problème paraît plus large. Sur github, c'est beaucoup laissé à l'initiative de l'utilisateur
Il y a un support des clés SSH sur yubikey par github, mais que depuis quelques mois.

Il y a aussi la signature des contributions par GPG mais c'est "optionnel" et au pire si ce n'est pas signé, github n'affiche rien.
D'ailleurs, sur la page de l'auteur, on voit que parfois il signe, parfois non... et il n'y a pas d'option sur github pour que ce soit obligatoire, alors qu'à priori, vu l'ancienneté de GPG, stoker sa clé privée sur token est assez faisable. (Mais quel % de dév le fait ?)
0  0 
Avatar de TotoParis
Membre éclairé https://www.developpez.com
Le 07/11/2021 à 11:45
Absolument merveilleux...
2  2 
Avatar de Kelevra
Membre à l'essai https://www.developpez.com
Le 12/11/2021 à 15:01
mouhaha j'en parle à mon pote qui est dans le 'git game' son commentaire :
"et puis npm c'est pas réputé pour être les gens les plus carrés
ils sont plus occupés de parler de leur non binarité et de leurs cheveux bleu que de coder"
0  0 
Avatar de Doksuri
Membre expert https://www.developpez.com
Le 12/11/2021 à 16:19
je pense qu'une idee serait d'autoriser la publication d'un code sur npm qu'en version claire (non obfusquee & non minifiee)
et c'est a chaqun d'utiliser un outil pour minifier les fichiers s'il le souhaite..
ca n'empecherai pas les hacks, mais ca aiderai a les trouver/signaler
0  0