High Tech

Les logiciels malveillants téléchargés à partir de PyPI 41 000 fois étaient étonnamment

Les logiciels malveillants téléchargés à partir de PyPI 41 000 fois étaient étonnamment furtifs

PyPI, le référentiel open source utilisé par les grandes et les petites entreprises pour télécharger des bibliothèques de code, hébergeait 11 packages malveillants qui ont été téléchargés plus de 41 000 fois lors de l’un des derniers incidents de ce type menaçant la chaîne d’approvisionnement logicielle.

JFrog, une entreprise de sécurité qui surveille PyPI et d’autres référentiels de logiciels malveillants, a déclaré que les packages se distinguent par le temps que ses développeurs ont mis pour camoufler leur code malveillant contre la détection du réseau. Ces longueurs comprennent un nouveau mécanisme qui utilise ce qu’on appelle un coque inversée aux communications proxy avec les serveurs de contrôle via le réseau de distribution de contenu Fastly. Une autre technique est Tunnellisation DNS, quelque chose que JFrog a déclaré n’avoir jamais vu auparavant dans les logiciels malveillants téléchargés sur PyPI.

Un vecteur puissant

« Les gestionnaires de packages sont un vecteur croissant et puissant pour l’installation involontaire de code malveillant, et comme nous l’avons découvert avec ces 11 nouveaux packages PyPI, les attaquants deviennent de plus en plus sophistiqués dans leur approche, a écrit dans un e-mail Shachar Menashe, directeur principal de la recherche JFrog. . « Les techniques d’évasion avancées utilisées dans ces packages de logiciels malveillants, telles que l’exfiltration inédite ou même le tunneling DNS (le premier que nous ayons vu dans les packages téléchargés sur PyPI) signalent une tendance inquiétante selon laquelle les attaquants deviennent plus furtifs dans leurs attaques contre les logiciels open source. »

Les chercheurs ont déclaré que PyPI avait rapidement supprimé tous les packages malveillants une fois que JFrog les avait signalés.

L’utilisation de référentiels open source pour pousser les logiciels malveillants remonte à au moins 2016, lorsqu’un étudiant a téléchargé des packages malveillants sur PyPI, RubyGems et npm. Il a donné aux packages des noms similaires aux packages largement utilisés déjà soumis par d’autres utilisateurs.

Sur une période de plusieurs mois, son code imposteur a été exécuté plus de 45 000 fois sur plus de 17 000 domaines distincts, et plus de la moitié du temps, son code a reçu des droits administratifs tout-puissants. Deux des domaines concernés se terminaient par .mil, une indication que des personnes au sein de l’armée américaine pourraient avoir exécuté son script.

En 2017, l’Autorité de sécurité nationale slovaque a signalé que les packages malveillants téléchargés à partir de PyPI avaient été intégré dans plusieurs logiciels de production sur une période de trois mois. Depuis, il y a eu presque innombrable numéro de instances de malware se faufiler dans des référentiels.

En juillet, JFrog a découvert des packages PyPI malveillants, téléchargés plus de 30 000 fois, qui menaient une série d’activités néfastes, notamment le vol de données de carte de crédit et l’injection de code malveillant sur des machines infectées. Plus tôt cette année, un chercheur a mis au point un nouveau type d’attaque de la chaîne d’approvisionnement cela peut avoir des conséquences graves. Les soi-disant « attaques par confusion de dépendance » fonctionnent en téléchargeant des packages malveillants dans des référentiels de code publics et en leur donnant des noms identiques aux packages légitimes stockés dans le référentiel interne de Microsoft, Apple ou d’un autre grand développeur de logiciels. Les applications de gestion de logiciels des développeurs favorisent souvent les bibliothèques de code externes par rapport aux bibliothèques internes, de sorte qu’elles téléchargent et utilisent le package malveillant plutôt que celui de confiance.

De l’attaquant à la victime via Fastly

Désormais, ces types d’attaques sont de plus en plus difficiles à détecter. La plus grande avancée en matière de subterfuge que les chercheurs ont trouvée était dans deux packages, l’un appelé « importantpackage » (ou alternativement « important-package ») et l’autre appelé « 10Cent10 » (ou « 10Cent11 »). Les packages utilisent le CDN Fastly pour masquer les communications entre la machine infectée et un serveur de contrôle.

Le code malveillant caché dans les packages provoque l’envoi d’une requête HTTPS à pypi.python.org d’une manière qui ne se distingue pas d’une requête légitime à PyPI. Les requêtes sont finalement réacheminées par Fastly en tant que requête HTTP vers le serveur de contrôle psec.forward.io.global.prod.fastly.net. Le serveur envoie ensuite des réponses via la même configuration, permettant une communication bidirectionnelle. Fastly permet aux utilisateurs d’enregistrer facilement leurs domaines auprès du service. Dans de nombreux cas, l’enregistrement peut même se faire de manière anonyme.

malware diagram

JFrog

Les chercheurs de JFrog Andrey Polkovnychenko et Menashe ont expliqué :

L’infrastructure PyPI est hébergée sur le CDN Fastly. Cet hébergement utilise le Vernis proxy HTTP transparent pour mettre en cache la communication entre les clients et le backend. Le trafic entre d’abord dans un Terminaison TLS pour le déchiffrement, afin que le proxy Varnish puisse inspecter le contenu du paquet HTTP. Le proxy analyse les en-têtes HTTP de la requête de l’utilisateur et redirige la requête vers le backend correspondant en fonction du Host entête. Le processus se répète ensuite dans le sens inverse, permettant au malware d’imiter la communication duplex avec PyPI.

En conséquence, la session de commande et de contrôle (C2) est chiffrée et signée avec un certificat de serveur légitime, ce qui la rend impossible à distinguer de la communication avec des ressources PyPI légitimes.

Le tunnelage DNS, l’autre technique d’évasion avancée trouvée par les chercheurs, fonctionne à l’aide d’un canal DNS, normalement réservé au mappage des noms de domaine aux adresses IP, pour envoyer des communications entre un ordinateur infecté et un serveur de contrôle. Tunnellisation DNS n’est pas nouveau, mais les chercheurs ont déclaré que c’était la première fois qu’ils voyaient la technique utilisée dans les logiciels malveillants téléchargés sur PyPI.

La sophistication croissante du code malveillant infiltré dans PyPI, et probablement dans d’autres référentiels, indique que son utilisation pour propager des logiciels malveillants est susceptible de se poursuivre. Les développeurs qui s’appuient sur des référentiels publics doivent prendre des précautions supplémentaires pour s’assurer qu’il n’y a pas de fautes de frappe ou de lettres parasites dans le nom du package qu’ils téléchargent.


Source link

Articles similaires

Bouton retour en haut de la page