Deux paquets malveillants ont été découverts sur npm (Node package manager) qui corrigent secrètement des paquets légitimes installés localement pour injecter une porte dérobée persistante reverse shell.

De cette façon, même si la victime supprime les paquets malveillants, la porte dérobée reste sur son système.

La nouvelle tactique a été découverte par des chercheurs de Reversing Labs, qui ont mis en garde contre le risque que cela comporte, même si les packages n’étaient pas téléchargés en grand nombre.

« Il n’est pas inhabituel de rencontrer des téléchargeurs sur npm; ils ne sont peut-être pas aussi courants que les vendeurs d’informations, mais ils sont loin d’être rares », explique Reversing Labs.

« Cependant, ce téléchargeur mérite d’être discuté en raison des stratégies exceptionnelles employées par les attaquants pour masquer la charge utile malveillante qu’il a livrée. »

Injection d’une coque inversée
Les deux packages découverts par Reversing Labs lors d’enquêtes de sécurité de routine sur la chaîne d’approvisionnement open source sont « ethers-provider2 » et « ethers-providerz ».’

Le premier paquet, qui est toujours disponible sur npm au moment de la rédaction de cet article, est basé sur le populaire paquet npm’ ssh2 ‘ mais avec une installation modifiée.script de js qui télécharge une charge utile de deuxième étape à partir d’une source externe, qui est exécutée puis supprimée une fois terminée pour effacer toutes les traces.

Code malveillant dans l’installation.j

La deuxième étape surveille le paquet légitime ‘ethers’ , et une fois qu’il le trouve, il remplace le fournisseur légitime-jsonrpc.fichier de js avec une version cheval de Troie.

Injection d’un shell inversé dans le package d’éthers légitime

Le fichier injecté récupère maintenant une charge utile de troisième étape à partir de l’hôte distant, ce qui active un shell inverse à l’aide d’un client SSH modifié, imitant le comportement légitime du client SSH2.

Ce qui rend cette attaque si dangereuse, c’est que même si ‘ethers-provider2’ est désinstallé, la porte dérobée du package ethers ne sera pas supprimée et le package légitime restera infecté.

Le package’ ethers-providerz ‘ présente un comportement similaire mais cible le package @ethersproject/providers à la place.

Son but ultime basé sur l’analyse du code est également de patcher le package cible avec un shell inversé qui pointe vers la même adresse IP malveillante (5[.]199[.]166[.]1:31337)

Reversing Labs signale que les premières versions de ce package comportaient des erreurs de chemin, ce qui l’empêchait de fonctionner comme prévu. L’auteur l’a supprimé de npm et envisage peut-être de le réintroduire après avoir corrigé ces erreurs.

Les chercheurs ont également mentionné deux autres packages, à savoir « reproduction-hardhat » et « @ theoretical123 / providers », qui semblent être liés à la même campagne.

Reversing Labs a inclus une règle YARA pour détecter les logiciels malveillants connus associés à cette campagne, les développeurs doivent donc l’utiliser pour analyser leurs environnements à la recherche de menaces restantes.

En général, lors du téléchargement de packages à partir d’index de packages tels que PyPI et npm, il est recommandé de vérifier leur légitimité (et celle de leur éditeur) et d’examiner leur code à la recherche de signes de risque, tels que du code obscurci et des appels à des serveurs externes.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *