Un dernier rootkit LKM (loadable kernel module) a été repéré dans la nature, compromettant les systèmes Linux grâce à des fonctions avancées de furtivité et d'élévation des privilèges. Pumakit, a été baptisé ainsi par les chercheurs d'Elastic Security qui l'ont découvert lors d'une chasse aux menaces de routine sur VirusTotal. Il est déployé dans le cadre d'une architecture de logiciels malveillants en plusieurs étapes qui se compose d'un dropper, de deux exécutables résidant en mémoire, d'un module de rootkit LKM et d'un rootkit d'objets partagés (SO) en zone utilisateur. Le composant rootkit, désigné par les auteurs du malware sous le nom de Puma, utilise un traceur de fonctions Linux interne (ftrace) doté de 18 appels syscall différents et de plusieurs fonctions au niveau du noyau afin de manipuler les comportements du système central, ont déclaré les chercheurs.

Les rootkits sont des programmes malveillants ou des collections d'outils spécialisés pouvant s'établir durablement dans des systèmes compromis et sont souvent utilisés par les groupes de menaces persistantes avancées (APT), ciblant les entreprises dans des secteurs critiques. Les chercheurs d'Elastic Security ont pu retracer le déploiement jusqu'au 4 septembre 2024, date à laquelle le binaire suspect associé (cron) a été téléchargé.

Un déploiement en plusieurs étapes

Pumakit, qui tire son nom du module Puma du noyau et du rootkit Kitsune, utilise un processus d'infection en plusieurs étapes qui commence par un binaire « cron » altéré. Celui-ci camoufle le logiciel malveillant en processus système légitime, ce qui lui permet de se fondre dans le système. Le dropper crée deux exécutables en mémoire : /memfd:tgt, un binaire cron inoffensif, et /memfd:wpn, un chargeur de rootkit. Ce dernier évalue l'environnement, exécute des charges utiles supplémentaires et prépare le système au déploiement du rootkit.

Un script temporaire, script.sh, est exécuté à partir de /tmp pour finaliser le déploiement du module de rootkit du noyau Puma. Celui-ci intègre Kitsune SO pour faciliter les interactions avec les utilisateurs, ce qui garantit un processus d'infection transparent et furtif. Les principales caractéristiques de ce module noyau comprennent : élévation des privilèges, masquage des fichiers et des répertoires, évitement de la détection par les outils du système, mise en œuvre de techniques anti-débogage, et possibilité de communiquer avec des serveurs de commande et de contrôle (C2), ont ajouté les chercheurs.

Des capacités d'évasion avancées

Le rootkit s'active en fonction de certaines conditions, tel que l'état du démarrage sécurisé et d'autres facteurs nécessaires avant de se charger. Il cible les noyaux Linux antérieurs à la version 5.7, car les versions plus récentes ne prennent plus en charge la fonction kallsyms_lookup_name(), sur laquelle le rootkit s'appuie. À l'aide de cette fonction, le rootkit Puma manipule le comportement du système. En utilisant des méthodes « non conventionnelles », il parvient via ftrace, ce qui lui permet d'augmenter les privilèges, exécuter des commandes et dissimuler des processus, ont ajouté les chercheurs. Le rootkit modifie également les informations d'identification avec prepare_creds et commit_creds, ce qui offre à l'utilisateur root d'accéder à des processus spécifiques.

En coordination avec le rootkit Kitsune, Puma étend son contrôle en masquant les fichiers, les processus et les connexions réseau. Kitsune intercepte les appels système tels que ls, ps et top pour éviter d'être détecté et gère la communication avec le serveur de commande et de contrôle, en transmettant des données système et en recevant des commandes. Elastic Security a développé une signature Yara pour détecter Pumakit, y compris le dropper (cron), le chargeur de rootkit (/memfd:wpn), le rootkit LKM et les fichiers d'objets partagés Kitsune.