IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Des dizaines de paquets PyPI malveillants ciblant les développeurs ont été découverts


Sujet :

Python

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Dirigeant
    Inscrit en
    Juin 2016
    Messages
    3 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Dirigeant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 3 160
    Points : 66 259
    Points
    66 259
    Par défaut Des dizaines de paquets PyPI malveillants ciblant les développeurs ont été découverts
    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

    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.

    Nom : image-1.png
Affichages : 119510
Taille : 45,1 Ko

    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.

    Nom : oji.png
Affichages : 2927
Taille : 54,3 Ko

    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.

    Nom : zae.png
Affichages : 2869
Taille : 98,6 Ko

    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
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    870
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 870
    Points : 1 522
    Points
    1 522
    Billets dans le blog
    4
    Par défaut
    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?
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

  3. #3
    Membre expert
    Profil pro
    programmeur du dimanche
    Inscrit en
    Novembre 2003
    Messages
    783
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : programmeur du dimanche
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 783
    Points : 3 372
    Points
    3 372
    Par défaut
    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.

  4. #4
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    870
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 870
    Points : 1 522
    Points
    1 522
    Billets dans le blog
    4
    Par défaut
    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é...
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

  5. #5
    Membre expert
    Profil pro
    programmeur du dimanche
    Inscrit en
    Novembre 2003
    Messages
    783
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : programmeur du dimanche
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 783
    Points : 3 372
    Points
    3 372
    Par défaut
    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à.

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/03/2022, 17h11
  2. Réponses: 1
    Dernier message: 28/03/2022, 18h23
  3. Réponses: 3
    Dernier message: 21/09/2017, 12h02
  4. Réponses: 0
    Dernier message: 04/05/2017, 14h00
  5. Réponses: 0
    Dernier message: 07/02/2012, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo