Packages PyPI malveillants utilisant du code Python compilé pour contourner la détection


01 juin 2023Ravie LakshmananProgrammation / Chaîne d’approvisionnement

Les chercheurs ont découvert une nouvelle attaque sur le référentiel Python Package Index (PyPI) qui utilise du code Python compilé pour contourner la détection par les outils de sécurité des applications.

« C’est peut-être la première attaque de la chaîne d’approvisionnement à tirer parti du fait que les fichiers Python bytecode (PYC) peuvent être directement exécutés », a déclaré Karlo Zanki, analyste chez ReversingLabs. a dit dans un rapport partagé avec The Hacker News.

Le colis en question est fshec2qui a été retiré du registre des colis le 17 avril 2023, suite à une divulgation responsable le même jour.

Les fichiers PYC sont des fichiers de bytecode compilés qui sont générés par l’interpréteur Python lorsqu’un programme Python est exécuté.

« Lorsqu’un module est importé pour la première fois (ou lorsque le fichier source a changé depuis la création du fichier compilé en cours) un fichier .pyc contenant le code compilé doit être créé dans un sous-répertoire __pycache__ du répertoire contenant le fichier .py,  » explique la documentation Python.

Le package, selon la société de sécurité de la chaîne d’approvisionnement logicielle, contient trois fichiers – _init_.py, main.py et full.pyc – dont le dernier contient des fonctionnalités malveillantes.

« Le point d’entrée du package a été trouvé dans le fichier __init__.py, qui importe une fonction de l’autre fichier en clair, main.py, qui contient le code source Python responsable du chargement du module compilé Python situé dans l’un des autres fichiers , full.pyc », a souligné Zanki.

Paquets PyPI malveillants

Ceci, à son tour, est réalisé en utilisant le package importlib (par opposition à une importation régulière) pour charger et exécuter le code présent dans le fichier .pyc.

Une analyse de la version rétro-conçue du fichier PYC révèle qu’il est configuré pour collecter les noms d’utilisateur, les noms d’hôte et les listes de répertoires, ainsi que pour récupérer les commandes à exécuter sur l’hôte à partir d’un serveur codé en dur (13.51.44[.]246).

WEBINAIRE À VENIR

🔐 Maîtriser la sécurité des API : Comprendre votre véritable surface d’attaque

Découvrez les vulnérabilités inexploitées de votre écosystème d’API et prenez des mesures proactives pour une sécurité à toute épreuve. Rejoignez notre webinaire perspicace !

Rejoindre la séance

ReversingLabs a déclaré avoir également observé le module télécharger et exécuter un autre script Python chargé de récupérer les nouvelles commandes placées dans un fichier pouvant être modifié à volonté par l’acteur de la menace pour émettre des instructions différentes.

Un examen plus approfondi du serveur de commande et de contrôle a révélé une mauvaise configuration qui permettait de télécharger des fichiers par leur ID, qui sont numérotés dans l’ordre séquentiel (à partir de 1), sans aucune autorisation. Cela indique que l’attaque n’a probablement pas été orchestrée par un acteur sophistiqué.

Le développement s’inscrit dans la continuité des efforts déployés par les acteurs de la menace pour adopter différentes techniques d’obscurcissement afin d’échapper à la détection des solutions de sécurité.

« Les scripts de chargement tels que ceux découverts dans le package fshec2 contiennent une quantité minimale de code Python et effectuent une action simple : le chargement d’un module Python compilé », a déclaré Zanki. « Il se trouve juste qu’il s’agit d’un module malveillant. »

Vous avez trouvé cet article intéressant ? Suivez-nous sur Twitter et LinkedIn pour lire plus de contenu exclusif que nous publions.





ttn-fr-57