Les cybercriminels poursuivent leur offensive contre la supply chain logicielle avec un malware qui porte le nom de Hades (dieu grec maître des Enfers). Cette campagne est « hautement sophistiquée » en ciblant les environnements de développement Python et s'exécute dès que les paquets infectés sont importés. Elle utilise la célèbre boîte à outils Bun pour exécuter silencieusement des charges utiles multicouches capables d'extraire des données sensibles, de se déplacer latéralement à travers les systèmes compromis, d'exploiter les frameworks de sécurité courants et même de détourner les systèmes d'analyse IA par l'injection de prompts malveillants.
Il est à noter que la campagne a exploité la bibliothèque C++ populaire ensmallen, ainsi que des paquets issus des écosystèmes de la biologie computationnelle, de la bio-informatique et de l’analyse des gènes. « La principale nouveauté de ce logiciel malveillant réside dans sa combinaison de tactiques avancées », a souligné David Shipley de Beauceron Security. Ce dernier fait remarquer que si les malwares axés sur la mémoire, sur le contournement des analyses IA à l’aide de prompts cachés et sur la capacité de destruction ne sont pas nouveaux. « Ce qui change c’est que la combinaison de ces trois éléments, dans un ver de propagation massive et rapide, constitue un vrai cauchemar ». Et il pense que ces modalités vont se développer à l’avenir.
Fonctionnement de Hades
Pour les chercheurs de StepSecurity à l’origine de la découverte, la campagne Hades est la dernière évolution de l’opérateur Miasma. Comme ils l’avaient précédemment décrit, les attaques de Miasma envoient des vers réplicables pour effectuer plusieurs tâches. Ils peuvent ainsi réaliser des scans d'identifiants dans des environnements multicloud, provoquer l'exécution de code dans les dépôts infectés lors de l'accès à des dossiers dans des environnements de développement intégrés (IDE) ou par des agents IA, et utiliser des techniques capables d'analyser et de lire la mémoire des processus Linux. « Hades utilise les mêmes méthodes de collecte d'identifiants, la même logique de ver auto-réplicant et les mêmes schémas d'exfiltration basés sur GitHub », ont noté les chercheurs. Outre ensmallen, les paquets compromis comprennent mflux-streamlit, nhmpy, ppkt2synergy, embiggen, gpsea et pyphetools. Le point d'entrée de la campagne est un simple script obfusqué intégré au fichier __init__.py d'un paquet Python, un élément essentiel pour que Python puisse reconnaître les paquets et importer des modules. Une fois l'accès obtenu, les cybercriminels déploient un binaire d'exécution Bun précompilé et exécutent sa charge utile JavaScript. Bun permet au malware d'exécuter des tâches JavaScript complexes dans des environnements ne disposant pas d'une installation Node.js, contournant ainsi les contrôles traditionnels des gestionnaires de paquets et les journaux de proxy. Le malware est capable d'extraire les mappages mémoire sous Linux et introduit également des outils d'extraction de mémoire sur mesure pour macOS et Windows, nécessaires aux acteurs malveillants pour extraire des données sensibles et chiffrées.
Il est intéressant de noter que les pirates parviennent également à échapper à la détection automatisés par IA chargés de rechercher du code suspect. Pour ce faire, il suffit d’insérer un simple bloc de texte en haut du fichier qui ordonne au modèle d’ignorer le code caché en dessous, de classer le paquet comme vérifié et sain, et de fournir des rapports indiquant qu’il est sûr. Cet élément représente ce que les chercheurs de StepSecurity ont qualifié de « changement conceptuel significatif », les attaquants écrivant des charges utiles qui ciblent la logique cognitive des systèmes IA. « Les scanners qui transmettent du texte brut aux LLM sans isolation stricte des limites peuvent être contraints de générer de faux négatifs, permettant ainsi au paquet malveillant de contourner l'analyse de l’entreprise », ont-ils écrit. « Cette tactique est en effet astucieuse », a convenu M. Shipley de Beauceron. Il pense d’ailleurs que les attaquants cibleront de plus en plus les agents IA déployés sur les terminaux, car il n’existe aucune défense fiable. « Les modèles sont incroyablement vulnérables à l’ingénierie sociale », a-t-il rappelé. Cette pratique a été rebaptisée « ingénierie de prompt », mais il s’agit essentiellement de phishing destiné aux bots, a-t-il souligné.
La propagation astucieuse du ver Hades
L'infrastructure de commande et de contrôle (C2) de la campagne Hades utilise trois canaux indépendants sur l'infrastructure publique de Github pour que ses communications puissent se fondre dans le trafic normal. Les identifiants volés sont chiffrés localement selon un procédé hybride (sérialisés, compressés, puis transférés vers un dépôt GitHub public nouvellement créé et sous le contrôle des attaquants). Les dépôts exfiltrés portent la mention « Hades — The End for the Damned ». Les chercheurs ont remarqué qu'un élément central de cette campagne réside dans sa capacité à se propager et à se déplacer latéralement à travers les réseaux. Elle exploite les méthodes mêmes destinées à protéger les systèmes, notamment Secure Shell (SSH) et Secure Copy Protocol (SCP), OpenID Connect (OIDC) et Supply-chain Levels for Software Artifacts (SLSA).
Par exemple, lorsqu’il fonctionne au sein d’un exécuteur de workflow GitHub Actions, le malware recherche les variables OIDC, puis contourne les politiques de signature du registre et génère des paquets de provenance SLSA signés cryptographiquement via Sigstore. Il peut ensuite récupérer les bibliothèques cibles et y injecter le script obfusqué ainsi que la charge utile JavaScript. À partir de là, il peut publier des versions compromises dans le référentiel Python Package Index (PyPI) et le gestionnaire de paquets Node (npm) en utilisant les identifiants de la cible et le paquet Sigstore généré. « Cela garantit que le paquet publié ait l’air de provenir d’une compilation valide et vérifiée cryptographiquement depuis l’environnement de compilation officiel GitHub Actions de l’organisation », ont expliqué les chercheurs.
De plus, si un token GitHub récupéré dispose de droits d'écriture, le malware ciblera les dépôts afin d'extraire des informations confidentielles à l'aide des exécuteurs GitHub Actions. Cela se produit « directement depuis l'espace mémoire de l'exécuteur, sans jamais les enregistrer sur le disque ni établir de connexion réseau suspecte », ont noté les chercheurs. Le malware cible également les fichiers de règles et les répertoires de configuration de 14 agents et systèmes d'IA différents, en y implantant des instructions de prompt personnalisées ou en exécutant des hooks qui déclenchent une commande de démarrage bun run bootstrap lorsque la victime charge ou consulte l'espace de travail avec son assistant IA. Enfin, il s'installe de manière persistante sur le poste de travail et surveille la présence du token volé, et si ce jeton est révoqué, il exécute un processus de suppression pour effacer les fichiers de l'utilisateur.

Commentaire