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 dizaines de paquets PyPI malveillants ciblant les développeurs ont été découverts,
Ces paquets contiennent le logiciel malveillant "W4SP" qui volerait les données des utilisateurs

Le , par Bill Fassinou

26PARTAGES

6  0 
Des chercheurs de Phylum, une entreprise de cybersécurité qui surveille la chaîne d'approvisionnement des logiciels pour détecter et signaler les menaces, ont découvert plus de deux douzaines de paquets Python sur le dépôt PyPI qui diffusent un logiciel malveillant qui extrait et vole vos informations. La plupart des paquets identifiés contiennent du code obfusqué qui dépose le voleur d'informations "W4SP" sur les machines infectées, tandis que d'autres utilisent des logiciels malveillants prétendument créés à des "fins éducatives" uniquement. L'entreprise a identifié 29 paquets Python contenant le voleur d'informations W4SP.

Le rapport des chercheurs de Phylum indique que les paquets concernés sont des typosquats, c'est-à-dire que les acteurs de la menace qui les publient les ont nommés intentionnellement de manière similaire aux bibliothèques Python légitimes, dans l'espoir que les développeurs qui tentent de récupérer la vraie bibliothèque fassent une erreur d'orthographe et récupèrent par inadvertance l'un des paquets malveillants. Comme les tentatives précédentes, cette attaque particulière commence par la copie de bibliothèques populaires existantes et l'injection d'une déclaration __import__ malveillante dans une base de code autrement saine.



Selon les chercheurs, l'avantage de mettre en place une attaque basée sur la copie d'un paquetage légitime existant est que, comme la page d'accueil du paquet sur le dépôt PyPI est générée à partir du setup.py et du README.md, il dispose immédiatement d'une véritable page d'accueil avec des liens qui fonctionnent pour la plupart et tout le reste. L'image ci-dessus montre la page d'accueil PyPI pour le paquet malveillant typesutil. Vous pouvez constaté que le pirate a simplement copié le paquet datetime2 et a apporté quelques légères modifications afin de rendre le texte cohérent avec le nom du faux paquet sous lequel il a été publié.

« À moins d'une inspection approfondie, un bref coup d'œil pourrait laisser croire qu'il s'agit également d'un paquet légitime », affirment les chercheurs. Dans le rapport, les chercheurs expliquent en détail les difficultés qu'ils ont rencontrées lors de l'analyse du code obfusqué de plus de 71 000 caractères, ce qui représente "une sacrée quantité de boue" dans laquelle ils ont dû se frayer un chemin. En fin de compte, ils ont conclu que le logiciel malveillant distribué par ces paquets était W4SP Stealer. Il s'agit en effet d'un logiciel malveillant voleur d'informations qui exfiltre vos jetons Discord, vos cookies et vos mots de passe enregistrés.



Le rapport note que dans la majorité des paquets, en particulier les plus anciens, l'importation malveillante était simplement injectée dans le fichier setup.py ou __init__.py. Au lieu de placer l'importation à un endroit évident, les acteurs de la menace le cachent, profitant du point-virgule rarement utilisé en Python pour glisser le code malveillant sur la même ligne que le code légitime. En conclusion, voici ci-dessous la manière exacte dont cette attaque de la chaîne d'approvisionnement est exécutée :

  • des dizaines de paquets sont publiés activement sur PyPI avec des noms anodins (certains sont des typosquats) qui copient de manière flagrante des paquets légitimes existants et tentent d'y introduire en douce un petit bout de code malveillant ;
  • le code malveillant est une déclaration __import__ cachée dans les fichiers setup.py, __init__.py ou dans des classes d'erreur personnalisées. Quoi qu'il en soit, il contient une chaîne codée en Base64 qui est exécutée. Parfois, au lieu de l'importation directe dans ces fichiers, il peut s'agir simplement d'un appel os.system() qui installe un de leurs autres paquets malveillants ;
  • décodée, cette chaîne encodée en Base64 contient un script Python qui est écrit dans un fichier temporaire qui est exécuté ;
  • ce fichier temporaire contient du code qui atteint un nombre quelconque d'URL ;
  • de chaque URL, il tire un code Python légèrement obfusqué qui exécute un objet octet compressé ;
  • décompressé, cet objet octet contient le logiciel malveillant W4SP Stealer déployé sur le système.


Selon les chercheurs, au moment de la publication du rapport, les paquets concernés représentent collectivement plus de 5 700 téléchargements. Notez que certains de ces paquets semblent être des tentatives évidentes de typosquattage comme twyne et colorsama (qui copient twine et colorama), qui représentent ensemble des centaines de millions de téléchargements par mois). En août, les chercheurs de Kaspersky Securelist ont également analysé des paquets PyPI malveillants qui ont été obfusqués par un outil open source appelé Hyperion et ont été surpris en train de déployer le logiciel malveillant W4SP.



Par ailleurs, le développeur de logiciels et chercheur Hauke Lübbers a également identifié les paquets PyPI pystile et threadings qui contiennent un logiciel malveillant qui se faisait appeler GyruzPIP. Toutefois, le chercheur estime que ce logiciel malveillant est basé sur le projet open source evil-pip publié à "des fins éducatives uniquement". Le développement de cette semaine marque un autre incident parmi une série d'attaques de typosquattage ciblant les développeurs tout en exploitant les plateformes de distribution de logiciels open source comme PyPI et npm. Voici la liste des paquets infectés par W4SP identifiés par les chercheurs :

  1. algorithmic
  2. colorsama
  3. colorwin
  4. curlapi
  5. cypress
  6. duonet
  7. faq
  8. fatnoob
  9. felpesviadinho
  10. iao
  11. incrivelsim
  12. installpy
  13. oiu
  14. pydprotect
  15. pyhints
  16. pyptext
  17. pyslyte
  18. pystyle
  19. pystyte
  20. pyurllib
  21. requests-httpx
  22. shaasigma
  23. strinfer
  24. stringe
  25. sutiltype
  26. twyne
  27. type-color
  28. typestring
  29. typesutil


Source : Phylum

Et vous ?

Quel est votre avis sur le sujet ?
Que pensez-vous de la multiplication des attaques de typosquattage ?
Aviez-vous été victime de cela dernièrement ? Si oui, partagez votre expérience.
Selon vous, comment les développeurs peuvent-ils se protéger contre les attaques de ce type ?

Voir aussi

Un groupe de plus de 200 paquets npm malveillants ciblant les développeurs qui utilisent Microsoft Azure, a été supprimé deux jours après avoir été mis à la disposition du public

Les paquets npm malveillants font partie d'un "déferlement" de logiciels malveillants qui frappent les référentiels, la popularité des paquets en fait de parfaits vecteurs d'attaques

Le paquet PyPI "keep" aurait inclus par erreur un voleur de mots de passe, le mainteneur aurait involontairement introduit une dépendance malveillante par une faute de frappe

PyPI : des paquets Python volent les clés AWS des utilisateurs et les envoient vers des sites non sécurisés et accessibles au public, selon un rapport

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

Avatar de MPython Alaplancha
Membre expérimenté https://www.developpez.com
Le 08/11/2022 à 5:54
Citation Envoyé par Fagus Voir le message
Moi ça m'inquiète théoriquement parce que je fais des fautes de frappe...
En l'occurence, il faut faire deux fois la même faute de frappe, une pour le téléchargement et une autre fois pour l'import sans quoi le code n'est pas exécuté...
1  0 
Avatar de MPython Alaplancha
Membre expérimenté https://www.developpez.com
Le 06/11/2022 à 8:46
Bonjour,
ça ne m'inquiéte pas.
Je n'utilise jamais les droits root (linux)pour télécharger un paquet et je crée un environnement virtuel pour chacun de mes projets...
Dans ce cadre, le W4SP pourrait-il agir?
0  0 
Avatar de Fagus
Membre expert https://www.developpez.com
Le 06/11/2022 à 18:27
Citation Envoyé par Hominidé Voir le message
Bonjour,
ça ne m'inquiéte pas.
Je n'utilise jamais les droits root (linux)pour télécharger un paquet et je crée un environnement virtuel pour chacun de mes projets...
Dans ce cadre, le W4SP pourrait-il agir?
Moi ça m'inquiète théoriquement parce que je fais des fautes de frappe...

Le code du malware est là https://github.com/loTus04/W4SP-Stea.../wasp-1.1.6.py

J'ai lu en travers ; au feeling la partie stealer ne fait rien de très fou. C'est juste de la lecture de fichiers et de l'extraction. Donc si les fichiers sont en droits user, c'est cuit. (Logiquement ils le sont.). L'environnement virtuel ça évite les conflits de versions entre les paquets.

Je ne vois pas trop de solution à part avoir un compte de dév sous un user dédié sans codes à voler (ou codes chiffrés, mais encore, ça vole aussi les cookies), ou coder dans une vm dédiée.
0  0 
Avatar de Fagus
Membre expert https://www.developpez.com
Le 08/11/2022 à 23:10
Citation Envoyé par Hominidé Voir le message
En l'occurence, il faut faire deux fois la même faute de frappe, une pour le téléchargement et une autre fois pour l'import sans quoi le code n'est pas exécuté...
Oups bien évidemment ! En effet, il faut être sacrément étourdi pour se faire infecter.
De toutes façons, comme mes PC de plus de 10 ans sont toujours à jour et assez rapides pour du dév non compilé, je ne comptais pas bosser dans une machine virtuelle, juste ajouter une yubikey. Ce sera plus pratique et assez béton déjà.
0  0