Les chercheurs ont découvert une autre attaque de la chaîne d’approvisionnement ciblant un référentiel de code open source, montrant que la technique, qui s’est largement répandue ces dernières années, ne va pas disparaître de sitôt.
Cette fois, le référentiel était PyPI, abréviation de Python Package Index, qui est le référentiel logiciel officiel du langage de programmation Python. Plus tôt ce mois-ci, un contributeur avec le nom d’utilisateur Lolip0p a téléchargé trois packages sur PyPI intitulés : colorslib, httpslib et libhttps. Le contributeur a pris soin de déguiser les trois en packages légitimes, dans ce cas, en bibliothèques pour créer une interface utilisateur de terminal et un pooling de connexions thread-safe. Les trois packages ont été annoncés comme offrant une convivialité complète.
Agrandir / Capture d’écran d’un package PyPI malveillant se faisant passer pour une offre légitime.
Les chercheurs de la société de sécurité Fortinet ont déclaré que les trois packages étaient malveillants et que le script setup.py pour eux était identique. Les fichiers ont ouvert une fenêtre Powershell et téléchargé un fichier malveillant, appelé Oxzy.exe, qui, au moment de la découverte, n’a été détecté que par trois fournisseurs anti-malware.
Agrandir / Capture d’écran tirée de VirusTotal montrant le nombre de détections.
ReversingLabs
Oxzy.exe, à son tour, a téléchargé un deuxième fichier malveillant intitulé Update.exe, qui n’a été détecté que par sept moteurs anti-malware.
Publicité
Le dernier fichier à être supprimé s’appelait SearchProtocolHost.exe, qui a été détecté par neuf moteurs.
L’un de ces moteurs était Defender de Microsoft. La description était Wacatac.b!ml, un logiciel malveillant qui, selon Microsoft, “peut effectuer un certain nombre d’actions au choix d’un pirate malveillant sur votre PC”. Une analyse de Trend Micro a montré que le cheval de Troie existait depuis au moins 2019, lorsqu’il se propageait via des logiciels piratés disponibles en ligne.
Les référentiels open source tels que PyPI et NPM sont de plus en plus utilisés comme vecteurs d’installation de logiciels malveillants par le biais d’attaques de la chaîne d’approvisionnement, qui propagent des logiciels malveillants à la source d’un projet légitime. De 2018 à 2021, ce type d’attaque a presque quadruplé sur NPM et environ quintuplé sur PyPI, selon la société de sécurité ReversingLabs. De janvier à octobre de l’année dernière, 1 493 packages malveillants ont été téléchargés sur PyPI et 6 977 packages malveillants ont été téléchargés sur NPM.
En septembre dernier, les attaques de la chaîne d’approvisionnement PyPI se sont intensifiées. Un acteur malveillant a lancé une attaque de phishing d’informations d’identification sur les contributeurs de PyPI et, en cas de succès, a utilisé l’accès aux comptes compromis pour publier un logiciel malveillant qui se présentait comme la dernière version de projets légitimes associés au compte. Les projets légitimes comprenaient Exotel et Spam. Contrairement aux packages malveillants qui utilisaient des noms ressemblant à des projets bien connus, ces attaques étaient capables d’empoisonner la source officielle d’un projet utilisé depuis des années. L’acteur menaçant derrière les attaques est actif depuis au moins 2021.
“Les utilisateurs finaux de Python doivent toujours faire preuve de diligence raisonnable avant de télécharger et d’exécuter des packages, en particulier de nouveaux auteurs”, ont écrit les chercheurs de ReversingLabs dans le post documentant les dernières attaques. “Et comme on peut le voir, publier plus d’un package dans un court laps de temps n’est pas une indication qu’un auteur est fiable.”
Le même conseil devrait être appliqué à NPM, RubyGems et pratiquement tous les autres référentiels open source.