Packages PyPI malveillants avec plus de 10 000 téléchargements supprimés

pypi

Le registre Python Package Index (PyPI) a supprimé trois packages Python malveillants visant à exfiltrer les variables d’environnement et à supprimer les chevaux de Troie sur les machines infectées.

On estime que ces packages malveillants ont généré plus de 10 000 téléchargements et miroirs réunis, selon le rapport des chercheurs.

Une analyse statique à grande échelle a conduit à une découverte malveillante

Cette semaine, Andrew Scott, développeur et chef de produit senior chez Palo Alto Networks, a rapporté avoir découvert trois packages Python malveillants sur le registre open source PyPI.

Ces packages malveillants, illustrés ci-dessous, ont été téléchargés et mis en miroir près de 15 000 fois.

La première version de dpp-client a fait surface sur PyPI vers le 13 février 2021, et celui pour dpp-client1234 le 14. Considérant que la première version de aws-login0tool est apparu plus récemment, le 1er décembre.

Nom du paquet Mainteneur La description Nombre de téléchargements*
aws-login0tool davycrockett5729492 Candidat au typosquattage, supprime le cheval de Troie (EXE) sous Windows 3 042
dpp-client l’esprit coupé (Alex) Exfiltre les variables d’environnement (Unix) et les fichiers 10 194
dpp-client1234 l’esprit coupé (Alex) Exfiltre les variables d’environnement (Unix) et les fichiers 1 536

* Le nombre de téléchargements agrégé à partir de PyPIstats et Pepy.tech peut inclure des miroirs (automatisés), en plus des téléchargements organiques par les développeurs.

En effectuant une analyse statique à grande échelle d' »un grand pourcentage des packages sur PyPI », Scott est tombé sur ces packages d’apparence mystérieuse.

Pour l’aider dans ses recherches, Scott a utilisé la Python Packaging Authority’s Bandersnatch projet open source.

« Une fois que j’avais téléchargé un grand nombre de distributions de packages, j’ai dû les extraire pour une analyse plus facile. J’ai mis en place un script Python assez simple pour parcourir de manière récursive la structure de dossiers quelque peu compliquée de Bandersnatch, puis décompressé et extrait chaque sdist, Oeuf, ou roue vers un répertoire plat », explique le développeur dans son article de blog.

« Une fois extrait, j’ai effectué un certain nombre de recherches de chaînes et d’expressions régulières à l’aide de grep, puis j’ai examiné manuellement les résultats. Le résultat de cette approche simple a été en fait assez percutant. »

Cible les PC Windows, les distributions Linux exécutant Apache Mesos

le aws-login0tool le package cible les machines Windows et télécharge un exécutable 64 bits malveillant, normal.exe du essayer[.]Géorgie domaine.

L’exécutable malveillant a été identifié comme un cheval de Troie par 38% des moteurs antivirus sur VirusTotal, au moment de la rédaction :

code aws-login0tool
aws-login0tool supprime les fichiers EXE malveillants (EZpublish-france.fr)

Au contraire, dpp-client et dpp-client1234 ciblez les systèmes Linux et examinez les variables d’environnement, la liste des répertoires et exfiltrez ces informations vers le pt.traktrain[.]com domaine.

Ces packages tentent d’accéder à certains répertoires, y compris /mnt/mesos, indiquant que le malware recherche spécifiquement des fichiers liés à Apache Mesos, un produit de gestion de cluster open source.

code client dpp
Le code source de l’un des dpp-client versions (EZpublish-france.fr)

Ce qui reste un mystère, c’est un grand nombre de téléchargements et de miroirs pour ces packages.

A première vue, aws-login0tool semble être une tentative de typosquattage comme le souligne le développeur – les touches ‘0’ et ‘-‘ étant présentes l’une à côté de l’autre sur la plupart des claviers. Cependant, EZpublish-france.fr n’a pas connaissance d’un package PyPI actif nommé « aws-login-tool » qu’un attaquant intelligent pourrait être tenté de se faire passer pour lui. Bien qu’un peut avoir existé dans le passé.

EZpublish-france.fr a également observé la page PyPI pour aws-login0tool, lorsqu’il était en vie, contenait une clause de non-responsabilité explicite demandant à l’utilisateur de ne pas télécharger le package :

« S’il te plaît, n’utilise pas ça… Ça fait de mauvaises choses… Oh, mon cher :(« 

Page de téléchargement PyPI pour aws-login0tool
Page PyPI pour le malveillant désormais supprimé aws-login0tool paquet (EZpublish-france.fr)

De même, les pages de projet pour dpp-client et dpp-client1234 Les packages, comme l’a vu EZpublish-france.fr, contenaient un simple mot-clé « test » dans leur description insinuant qui faisait très probablement partie d’un exercice de validation de principe.

Ce développement fait suite à des instances en cours de logiciels malveillants et de contenus indésirables ciblant des référentiels open source tels que PyPI, npm et RubyGems.

Le mois dernier, l’équipe de recherche en sécurité de JFrog a signalé attraper les voleurs d’informations Discord parmi d’autres packages PyPI malveillants qui ont abusé d’une technique de « nouvelle exfiltration ».

Le même mois, j’ai écrit à propos d’un package PyPI malveillant qui faisait un tentative grossière de typosquattage ‘boto3’—le SDK Amazon Web Services pour Python.

En juillet de cette année, six packages PyPI malveillants ont également été détectés en train d’exploiter la crypto-monnaie sur les machines des développeurs.

Heureusement, les trois packages susmentionnés découverts par Scott ont été signalés aux administrateurs de PyPI le 10 décembre et supprimés rapidement.