
Un nouveau malware de rootkit Linux appelé Pumakit a été découvert qui utilise des techniques furtives et avancées d’escalade de privilèges pour masquer sa présence sur les systèmes.
Le malware est un ensemble de composants multiples qui comprend un compte-gouttes, des exécutables résidant en mémoire, un rootkit de module de noyau et un rootkit d’objet partagé (SO) de l’espace utilisateur.
Elastic Security a découvert Pumakit dans un téléchargement binaire suspect (« cron ») sur VirusTotal, daté du 4 septembre 2024, et a signalé n’avoir aucune visibilité sur qui l’utilise et ce qu’il cible.
Généralement, ces outils sont utilisés par des acteurs de menaces avancés ciblant les infrastructures critiques et les systèmes d’entreprise pour l’espionnage, le vol financier et les opérations de perturbation.
Le Pumakit
Pumakit utilise un processus d’infection en plusieurs étapes commençant par un compte-gouttes nommé « cron », qui exécute des charges utiles intégrées (« /memfd:tgt » et « /memfd:wpn ») entièrement à partir de la mémoire.
La charge utile ‘/memfd: wpn’, qui s’exécute dans un processus enfant, effectue des vérifications d’environnement et une manipulation d’image du noyau et déploie éventuellement le module de rootkit LKM (‘puma.ko’) dans le noyau du système.
Kitsune SO (‘lib64/libs.so’) est intégré au rootkit LKM, agissant en tant que rootkit utilisateur qui s’injecte dans les processus utilisant ‘LD_PRELOAD’ pour intercepter les appels système au niveau de l’utilisateur.

Augmentation furtive des privilèges
Le rootkit suit une activation conditionnelle, vérifiant les symboles spécifiques du noyau, l’état de démarrage sécurisé et d’autres conditions préalables avant le chargement.
Elastic indique que Puma utilise la fonction’ kallsyms_lookup_name () ‘ pour manipuler le comportement du système. Cela indique que le rootkit a été conçu pour cibler uniquement les noyaux Linux antérieurs à la version 5.7, car les versions plus récentes n’exportent plus la fonction et, par conséquent, ne peuvent pas être utilisées par d’autres modules du noyau.
« La capacité du rootkit LKM à manipuler le comportement du système commence par son utilisation de la table d’appels système et sa dépendance à kallsyms_lookup_name() pour la résolution des symboles », expliquent les chercheurs Elastic Remco Sprooten et Ruben Groenewoud.
« Contrairement aux rootkits modernes ciblant les versions de noyau 5.7 et supérieures, le rootkit n’utilise pas de kprobes, ce qui indique qu’il est conçu pour les noyaux plus anciens. »
Puma accroche 18 appels système et plusieurs fonctions du noyau à l’aide de « ftrace », pour obtenir une augmentation des privilèges, l’exécution des commandes et la possibilité de masquer les processus.

Les fonctions du noyau ‘prepare_creds’ et ‘commit_creds’ sont utilisées abusivement pour modifier les informations d’identification des processus, accordant des privilèges root à des processus spécifiques.

Le rootkit peut masquer sa propre présence dans les journaux du noyau, les outils système et l’antivirus, et peut également masquer des fichiers spécifiques dans un répertoire et des objets dans les listes de processus.
Si les hooks sont interrompus, le rootkit les réinitialise, s’assurant que ses modifications malveillantes ne sont pas annulées et que le module ne peut pas être déchargé.
Le rootkit utilisateur Kitsune fonctionne donc en synergie avec Puma, étendant ses mécanismes de furtivité et de contrôle aux interactions avec l’utilisateur.
Il intercepte les appels système au niveau de l’utilisateur et modifie le comportement de looks tels que ls, ps, netstat, top, htop et cat pour masquer les fichiers, processus et connexions réseau associés au rootkit
Il peut également masquer dynamiquement tous les autres fichiers et répertoires en fonction de critères définis par l’attaquant et rendre les binaires malveillants entièrement invisibles pour les utilisateurs et les administrateurs système.
Kitsune SO gère également toutes les communications avec le serveur de commande et de contrôle (C2), relayant les commandes au rootkit LKM et transmettant la configuration et les informations système aux opérateurs.
Outre les hachages de fichiers, Elastic Security a publié une règle YARA pour aider les administrateurs système Linux à détecter les attaques Pumakit.