- Le paquet Django-server a été publié sur la plateforme le 2 juin dernier à 8 h 22 pour se faire passer pour django-server-guardian-api ;;
- Le paquet acqusition a été posté sur la plateforme le 3 juin dernier à 1 h 58 en référence au dépôt officiel nommé acquisition ;;
- Le paquet apidev-coop a été posté sur la plateforme le 3 juin dernier à 5 h 16 afin de se faire passer pour apidev-coop_cms ;;
- Le paquet bzip a été publié sur la plateforme le 4 juin dernier à 7 h 8 pour se faire passer pour bz2file ;;
- Le paquet crypt a été publié sur la plateforme le 3 juin dernier à 8 h 3 pour se faire passer pour le dépôt crypto ;;
- Le paquet pwd a été publié sur la plateforme le 2 juin dernier à 13 h 12 afin de se faire passer pour Pwdhash ;;
- Le paquet setup-tools a été publié sur la plateforme le 2 juin dernier à 8 h 54 pour se faire passer pour setuptools ;;
- Le paquet telnet a été publié sur la plateforme le 2 juin dernier à 15 h 35 pour se faire passer pour telnetsrvlib ;;
- Le paquet urlib3 a été publié sur la plateforme le 2 juin dernier à 7 h 9 pour se faire passer pour urllib3 ;;
- Le paquet urllib a été publié sur la plateforme le 2 juin dernier à 7 h 3 pour se faire passer pour urllib3.
Selon les découvertes faites par l’agence de sécurité slovaque, « ces paquets contiennent exactement le même code que leur paquet en amont, leur fonctionnalité est identique, mais le script d’installation, setup.py, est modifié pour inclure un code malveillant (mais relativement bénin) ». « Le code malveillant ajouté aux faux paquets est exécuté dès que le développeur ou l’administrateur système installe le paquet (ce qui se fait souvent avec des privilèges administrateur) ».
Après analyse des échantillons des paquets disponibles, les chercheurs slovaques expliquent que les auteurs de ces paquets falsifiés ont utilisé des techniques d’offuscation pour cacher les données. Seules quelques informations comme l’exécution d’une requête HTTP vers un serveur distant à partir de l’adresse http://121.42.217.44:8080/, le nom d’hôte, le nom de l’utilisateur qui a installé le paquet ont pu être récoltées.
Et pour couronner le tout, les chercheurs expliquent qu’il existe des « preuves que les faux paquets ont effectivement été téléchargés et incorporés dans plusieurs logiciels entre juin 2017 et septembre 2017. »
Pour l'agence slovaque, « le succès de l’attaque repose sur la négligence du développeur, ou de l’administrateur système, qui ne vérifie pas complètement le nom du paquet ». Plusieurs personnes ayant téléchargé ces paquets par divers moyens y compris avec l’utilitaire pip, les chercheurs soulignent l’attaque est facilitée par cet outil qui ne nécessite pas la signature cryptographique et exécute du code arbitraire pendant l’installation du paquet, ce qui est un bogue et une fonctionnalité bien documentée. En outre, l’agence de sécurité slovaque met en avant le fait qu’il est « également facile de publier n’importe quel code Python arbitraire dans le dépôt PyPI, qui n’a pas de contrôle de qualité ou d’évaluation de code.»
Après avoir découvert la supercherie, les chercheurs de l’agence slovaque ont alerté la plateforme PyPI. Les paquets malveillants ont été automatiquement retirés du dépôt. Toutefois, le danger n’est pas pour autant écarté avec les différents paquets qui auraient été intégrés dans les logiciels et distribués à travers les serveurs.
Après la lumière faite sur ce problème de typographie utilisé pour tromper les visiteurs de la plateforme PyPI, le chercheur Benjamin Bach et le journaliste Hanno Böck ont rapporté qu’ils ont également alimenté le dépôt PyPI avec des paquets dont les noms ressemblent fortement aux paquets officiels de la plateforme. Vu que cette approche n’avait d’autres buts que de montrer le degré d’exposition des développeurs lors du téléchargement des paquets sur PyPI, Bach a modifié les paquets qui contenaient le code des paquets officiels afin qu’ils se connectent seulement à un serveur qui enregistre l’adresse IP de chaque développeur. En l’espace de deux jours, 7535 téléchargements ont été effectués avec leurs 20 paquets les plus téléchargés. Par ailleurs, bien que ces paquets aient été retirés de PyPI, Bach informe que ses 108 autres paquets portant des noms trompeurs n’ont pas encore été retirés.
Source : Rapport de l’agence de sécurité slovaque, Rapport de Benjamin Bach
Et vous ?
Fréquentez-vous PyPI ?
Avec ces possibilités de télécharger des paquets infectés sur cette plateforme, allez-vous continuer à la fréquenter ?
Voir aussi
Un bogue dans Java et Python permettrait à des attaquants de contourner les défenses des pare-feu, selon des chercheurs en sécurité