Des cybercriminels se font passer pour des utilisateurs « utiles » de Stack Overflow pour recommander un logiciel malveillant hébergé sur PyPi,
qui comporte des capacités de vol d'informations et de cryptojacking

Des cybercriminels ont trouvé une approche astucieuse pour propager des logiciels malveillants en utilisant Stack Overflow. Ils répondent aux questions des utilisateurs en promouvant un package PyPi malveillant qui installe un logiciel malveillant volant des informations sur Windows. L’un des comptes utilisés pour cette activité est “EstAYA G”. Les développeurs cherchant de l’aide pour le débogage sont dirigés vers ce package malveillant, même si la solution proposée n’a aucun rapport avec leurs questions originales.

Ax Sharma, chercheur chez Sonatype, a découvert que ce nouveau paquet PyPi fait partie d'une campagne précédemment connue sous le nom de « Cool package », nommée d'après une chaîne de caractères dans les métadonnées du paquet, qui a ciblé les utilisateurs de Windows l'année dernière. Ce paquet PyPi s'appelle « pytoileur » et a été téléchargé par des cybercriminels sur le dépôt PyPi au cours du week-end, en prétendant qu'il s'agissait d'un outil de gestion d'API. Remarquez que le paquet comporte la chaîne « Cool package » dans le champ Summary metadata, ce qui indique qu'il fait partie de cette campagne en cours.

Citation Envoyé par Sonatype
Suivi sous le nom de sonatype-2024-1783, le paquet a été téléchargé 264 fois depuis sa publication hier et avant que nous ayons alerté les administrateurs de PyPI pour qu'ils le suppriment. Nous avons analysé les versions 1.0.1 et 1.0.2 du paquet, toutes deux identiques dans leurs fonctionnalités.

Le paquet se décrit comme un « Cool package » dans ses métadonnées, la description de la page web HTML le présentant comme un « outil de gestion d'API écrit en Python ». La référence à « pystob » dans le code (un paquet désormais inexistant ; nous y reviendrons plus loin) indique également que le paquet tente de typosquatter les utilisateurs de paquets légitimes tels que « Pyston »[...].

Après avoir approfondi la structure de « Pytoileur », l'historique de sa paternité et son association avec le paquet « pystob » (malveillant) qui a également été identifié par Sonatype et supprimé du registre PyPI, nous estimons que ce paquet fait partie de la campagne d'attaque plus large de l'année dernière qui a été effectivement ravivée.

En 2023, un utilisateur de PyPI (peut-être le même) avait publié plusieurs paquets avec la métadonnée abrégée « Cool package », qui utilisaient en grande partie les mêmes tactiques que celles décrites dans notre découverte de cette semaine.

Nombre de ces paquets se présentaient également comme un « outil de gestion d'API écrit en Python » ou utilisaient des variantes de techniques d'obscurcissement pour télécharger des binaires Windows trojanisés à partir d'URL présentant des structures similaires (hxxp://51.77.xx.xx:YYYY/dl/runtime).

En outre, des paquets tels que « gpt-requests », également associés à cette campagne, semblent par exemple cibler les développeurs d'applications d'intelligence artificielle (le terme GPT) et se décrivent comme « une version simplifiée d'urllib », qui peut être utilisée « pour effectuer vos requêtes https ». Cependant, ces requêtes contiendraient plutôt des données utiles codées en base64 et cachées par des espaces blancs, comme nous l'avons vu avec Pytoileur.
Nom : pytoiler.png
Affichages : 3744
Taille : 98,6 Ko

Les paquets malveillants de ce type sont généralement promus en utilisant des noms similaires à d'autres paquets populaires, un processus appelé typo-squatting. Cependant, avec ce paquet, les acteurs de la menace ont adopté une approche plus novatrice en répondant à des questions sur Stack Overflow et en présentant le paquet comme une solution. Stack Overflow étant une plateforme largement utilisée par les développeurs de tous horizons pour poser des questions et y répondre, elle constitue un environnement idéal pour diffuser des logiciels malveillants déguisés en interfaces de programmation et en bibliothèques.

« Nous avons également remarqué qu'un compte StackOverflow “EstAYA G”, créé il y a environ deux jours, exploite maintenant les membres de la communauté de la plateforme qui cherchent de l'aide pour le débogage [1, 2, 3] en les incitant à installer ce paquet malveillant comme une “solution” à leur problème, même si la “solution” n'est pas liée aux questions posées par les développeurs », a expliqué Sharma dans le rapport de Sonatype, indiquant que « nous ne pouvons qu'espérer que les développeurs feront preuve de discernement et ne tomberont pas dans ce piège ! ».

Bien que le fichier « setup.py » du paquet ait l'air propre à première vue, on pourrait croire qu'il s'agit d'un paquet vide.

Nom : fool.png
Affichages : 584
Taille : 163,8 Ko

Jeff Thornhill, chercheur en sécurité chez Sonatype et passionné de menaces open source, a remarqué que la ligne 17 contenait un peu trop d'espaces blancs, ce qui cachait du code beaucoup plus à droite, qu'il serait facile de manquer, à moins de remarquer la barre de défilement. La commande exécute une charge utile codée en base64 :

« Bien que le codage base64 soit assez courant dans les applications et n'offre pas grand-chose en termes de masquage du code malveillant, ce qui signifie qu'il n'est pas vraiment "suspect" de l'utiliser, l'auteur a tenté de "cacher" cette chaîne codée particulière à l'examen humain manuel en l'injectant après une instruction d'impression, puis en incluant un espace blanc d'une longueur d'un paragraphe avant le code », explique Thornhill. « Les utilisateurs qui visualisent ce code dans un éditeur sans retour à la ligne (ce qui est assez courant dans le codage) manqueraient facilement cette ligne ».

Qu'accomplit le code encodé en base64 ?

Essentiellement, le code cible les utilisateurs de Windows et invoque des commandes Python pour récupérer un exécutable malveillant sur un serveur externe : hxxp://51.77.140[.]144:8086/dl/runtime

Le binaire récupéré, « Runtime.exe », est ensuite exécuté en utilisant les commandes Windows PowerShell et VBScript sur le système.

Nom : exe.png
Affichages : 590
Taille : 217,3 Ko

L'exécutable, une fois installé, devient persistant et contient plusieurs mesures anti-détection pour empêcher l'analyse par les chercheurs et les bacs à sable de logiciels malveillants. Le paquet dépose en outre des exécutables suspects, modifie les paramètres du registre Windows et déploie des charges utiles qui ont déjà été identifiées comme des logiciels espions.

L'un des binaires (« main.exe ») contient des capacités de vol d'informations et de cryptojacking. Le binaire, par exemple, tente d'exfiltrer des profils d'utilisateurs et des données enregistrées dans des navigateurs web courants (Google Chrome, Brave, Firefox, etc.) et d'accéder à des actifs locaux associés à des services fintech et crypto comme Binance, Coinbase, Exodus Wallet, PayPal, Payoneer, PaySafeCard, Crypto.com, Skrill, parmi d'autres.

Toutes ces informations sont ensuite renvoyées à l'attaquant, qui peut les vendre sur les marchés du dark web ou les utiliser pour violer d'autres comptes appartenant à la victime.

Conclusion

Si les paquets PyPi malveillants et les voleurs d'informations n'ont rien de nouveau, la stratégie des cybercriminels consistant à se faire passer pour des contributeurs utiles sur un forum professionnel est une approche astucieuse, car elle leur permet d'exploiter la confiance et l'autorité du site dans la communauté des codeurs. Cette approche nous rappelle que les tactiques des cybercriminels changent constamment et, malheureusement, illustre pourquoi il ne faut jamais faire aveuglément confiance à ce que quelqu'un partage en ligne. Les développeurs doivent au contraire vérifier la source de tous les paquets qu'ils ajoutent à leurs projets et, même s'ils semblent dignes de confiance, vérifier le code (en activant la fonction « word wrap ») pour détecter les commandes inhabituelles ou obscurcies qui seront exécutées.

« La réapparition, cette semaine, d'un paquet Python malveillant identique témoigne du fait que les cybercriminels reprennent et recyclent d'anciennes tactiques pour élargir leur filet et leurs cibles, qui comprennent souvent des développeurs de plusieurs niches (c'est-à-dire des passionnés d'IA et d'apprentissage automatique à ceux qui s'appuient sur des framework Python populaires tels que Pyston) ».

Source : Sonatype

Et vous ?

Pensez-vous que les plateformes de questions-réponses en ligne devraient faire plus pour détecter et bloquer les comptes de cybercriminels ?
Comment pouvons-nous encourager une communauté plus vigilante et proactive pour signaler les activités suspectes sur ces plateformes ?
Quelles mesures de sécurité supplémentaires pourraient être mises en place pour protéger les développeurs et les utilisateurs de logiciels malveillants ?
Avez-vous déjà rencontré des réponses suspectes ou des liens douteux sur des forums professionnels ? Comment avez-vous réagi ?