Les packages NPM malveillants font partie d’une « barrage » de logiciels malveillants frappant les référentiels


Les packages NPM malveillants font partie d'une « barrage » de logiciels malveillants frappant les référentiels

Les chercheurs ont trouvé 17 autres packages malveillants dans un référentiel open source, car l’utilisation de tels référentiels pour diffuser des logiciels malveillants continue de prospérer.

Cette fois, le code malveillant a été trouvé dans NPM, où 11 millions de développeurs échangent plus d’un million de packages entre eux. Bon nombre des 17 packages malveillants semblent avoir été propagés par différents acteurs de la menace qui ont utilisé diverses techniques et efforts pour inciter les développeurs à télécharger des logiciels malveillants au lieu de ceux qui sont bénins.

Cette dernière découverte s’inscrit dans la continuité d’une tendance observée pour la première fois il y a quelques années, dans laquelle des malfaiteurs glissent des voleurs d’informations, des enregistreurs de frappe ou d’autres types de logiciels malveillants dans des packages disponibles dans NPM, RubyGems, PyPi ou un autre référentiel. Dans de nombreux cas, le package malveillant a un nom composé d’une seule lettre différente de celui d’un package légitime. Souvent, le package malveillant inclut le même code et les mêmes fonctionnalités que le package dont l’identité est usurpée et ajoute du code caché qui effectue des actions néfastes supplémentaires.

Un vecteur d’attaque mûr

“Nous assistons à un récent barrage de logiciels malveillants hébergés et livrés via des référentiels de logiciels open source”, les chercheurs de JFrog Andrey Polkovnychenko et Shachar Menashe a écrit mercredi. « Les référentiels publics sont devenus un instrument pratique pour la distribution de logiciels malveillants : le serveur du référentiel est une ressource de confiance, et la communication avec lui ne fait pas suspecter un antivirus ou un pare-feu. De plus, la facilité d’installation via des outils d’automatisation tels que le client npm, fournit un vecteur d’attaque mûr.

La plupart des packages signalés par JFrog ont volé des informations d’identification ou d’autres informations pour les serveurs Discord. Discord est devenu une plate-forme populaire pour que les gens communiquent par texte, voix et vidéo. Les serveurs compromis peuvent être utilisés comme canaux de commande et de contrôle pour les botnets ou comme proxy lors du téléchargement de données à partir d’un serveur piraté. Certains packages ont volé des données de carte de crédit associées à des comptes Discord piratés.

Deux packages, discord-lofy et discord-selfbot-v14, proviennent d’un auteur utilisant le nom davisousa. Ils se font passer pour des modifications de la bibliothèque légitime populaire discord.js, qui permet une interaction avec l’API Discord. Le malware intègre la bibliothèque originale discord.js comme base, puis injecte un code malveillant obscurci dans l’un des fichiers du package.

Les chercheurs de JFrog ont écrit :

La version obscurcie du code est énorme : plus de 4 000 lignes de code illisible, contenant toutes les méthodes possibles d’obscurcissement : noms de variables mutilés, chaînes cryptées, aplatissement du code et appels de fonction réfléchis :

Grâce à une analyse manuelle et à des scripts, nous avons pu désobscurcir le package et révéler que sa charge utile finale est assez simple : la charge utile parcourt simplement les dossiers de stockage locaux des navigateurs bien connus (et les dossiers spécifiques à Discord), puis les recherche à la recherche de chaînes ressemblant à un jeton Discord en utilisant une expression régulière. Tout jeton trouvé est renvoyé via HTTP POST au serveur codé en dur https://aba45cf.glitch.me/polarlindo.

Un autre package nommé fix-error prétendait corriger les erreurs dans un “selfbot” discord. Il contenait également un code malveillant qui avait été masqué mais, dans ce cas, il était beaucoup plus facile pour les chercheurs de le désobscurcir. Les chercheurs ont rapidement déterminé que le code caché était une version volée du Voleur de pirates, une application qui vole les informations de carte de crédit, les identifiants de connexion et d’autres données privées stockées dans un client Discord. Il fonctionne en injectant du code Javascript malveillant dans le client Discord. Le code «espionne» ensuite l’utilisateur et envoie les informations volées à une adresse codée en dur.

Un troisième exemple est prerequests-xcode, un package qui contient une fonctionnalité de cheval de Troie d’accès à distance. Les chercheurs ont écrit :

Lors de l’inspection du code du package, nous avons identifié qu’il contient un port Node.JS de
DiscordRAT(écrit à l’origine en Python) qui donne à un attaquant un contrôle total sur la machine de la victime. Le malware est masqué avec l’outil en ligne populaire obfuscator.io, mais dans ce cas il suffit d’inspecter la liste des commandes disponibles pour comprendre la fonctionnalité du RAT (copié textuellement).

La liste complète des packages est :

Paquet Version Charge utile Méthode d’infection
prérequêtes-xcode 1.0.4 Cheval de Troie d’accès à distance (RAT) Inconnue
discord-selfbot-v14 12.0.3 Récupérateur de jetons Discord Typosquattage/Cheval de Troie (discord.js)
discord-lofy 11.5.1 Récupérateur de jetons Discord Typosquattage/Cheval de Troie (discord.js)
système de discorde 11.5.1 Récupérateur de jetons Discord Typosquattage/Cheval de Troie (discord.js)
discord-villa 1.0.0 Récupérateur de jetons Discord Typosquattage/Cheval de Troie (discord.js)
correction-erreur 1.0.0 Voleur de pirates (Malware Discord) troyen
wafer-bind 1.1.2 Voleur de variable d’environnement Typosquatting (wafer-*)
wafer-autocomplete 1.25.0 Voleur de variable d’environnement Typosquatting (wafer-*)
plaquette-phare 1.3.3 Voleur de variable d’environnement Typosquatting (wafer-*)
gaufrette-caas 1.14.20 Voleur de variable d’environnement Typosquatting (wafer-*)
wafer-toggle 1.15.4 Voleur de variable d’environnement Typosquatting (wafer-*)
wafer-géolocalisation 1.2.10 Voleur de variable d’environnement Typosquatting (wafer-*)
image de plaquette 1.2.2 Voleur de variable d’environnement Typosquatting (wafer-*)
forme de plaquette 1.30.1 Voleur de variable d’environnement Typosquatting (wafer-*)
wafer-lightbox 1.5.4 Voleur de variable d’environnement Typosquatting (wafer-*)
huitième public 1.836.609 Voleur de variable d’environnement Typosquattage (octavius)
mrg-message-broker 9998.987.376 Voleur de variable d’environnement Confusion de dépendance

Comme indiqué précédemment, NPM n’est pas le seul référentiel open source à être infiltré par des packages malveillants. Le référentiel PyPi pour Python a vu sa part de paquets chargés de logiciels malveillants, comme l’a RubyGems.

Les personnes qui téléchargent des packages open source doivent faire très attention à s’assurer que l’élément qu’elles téléchargent est légitime et qu’il ne s’agit pas d’un logiciel malveillant se faisant passer pour quelque chose de légitime. Les grandes organisations qui dépendent fortement des logiciels open source peuvent trouver utile d’acheter des services de gestion de packages, que JFrog vend justement.



Source link