Pumakit : un nouveau rootkit qui menace les serveurs Linux en toute discrétion
Pumakit, c'est le nom d'un nouveau rookit pour Linux qui a été repéré par les chercheurs en sécurité de chez Elastic Security. Il s'appuie sur des techniques lui permettant de rester discret sur les machines, ce qui lui permet de dissimuler sa présence. Faisons le point sur cette menace.
Un nouveau rapport publié par Elastic Security évoque Pumakit, un nouveau logiciel qui a été repéré par l'intermédiaire de VirusTotal, via un échantillon daté du 4 septembre 2024 et correspondant à un binaire suspect faisant référence à "cron".
Il correspond à un rookit "LKM" (Loadable Kernel Module), ce qui le rend moins facilement détectable que les rookits traditionnels. Les LKM sont des fichiers contenant des composants de noyau chargeables dynamiquement que Linux peut utiliser pour étendre les fonctionnalités de noyau. Dans le cas présent, ce sont des composants malveillants qui sont chargés.
Tout commence par le téléchargement d'un programme nommé "cron", qui exécute sur la machine locale des charges utiles à partir de la mémoire : "/memfd:tgt" et "/memfd:wpn". D'ailleurs, cette seconde charge utile effectue un ensemble de vérifications sur la machine locale, manipule l'image du noyau et déploie le module LKM dans le noyau du système, à savoir le module "puma.ko".
Comme le montre le schéma ci-dessous, publié par les chercheurs, le rootkit déploie Kitsune SO ("lib64/libs.so"). Il va agir en tant que rootkit utilisateur et s'injecte dans les processus à l'aide de "LD_PRELOAD" pour intercepter les appels système au niveau de l'utilisateur.
Ce document met en avant la furtivité de cette menace et les efforts faits par les cybercriminels pour rester discret sur la machine : "Chaque étape du processus est méticuleusement conçue pour dissimuler sa présence, en s'appuyant sur des fichiers résidant dans la mémoire et sur des vérifications précises de l'environnement cible."
Les actions de Pumakit sur la machine Linux
Le malware contient un ensemble de hooks correspondants à "18 appels syscall et plusieurs fonctions du noyau à l'aide de ftrace() pour cacher des fichiers, des répertoires et le rootkit lui-même, tout en échappant aux tentatives de débogage.", peut-on lire dans le rapport.
En pratique, les pirates peuvent s'appuyer sur Pumakit pour élever leurs privilèges, exécuter des commandes et dissimuler des processus. Par exemple, les fonctions du noyau "prepare_creds" et "commit_creds" sont utilisées de manière abusive pour modifier le compte utilisé pour exécuter tel ou tel processus. Ainsi, les cybercriminels peuvent accorder les privilèges "root" à des processus spécifiques.
Le rootkit "puma.ko" fonctionne de paire avec Kitsune SO qui va l'aider à dissimuler sa présence au niveau du système. En effet, il va intercepter les appels système au niveau de l'utilisateur et modifier le comportement de certains outils dont : ls, ps, netstat, top, htop et cat. Cela dans le but de masquer l'activité et la présence du rookit, à savoir les fichiers, les processus et les connexions réseau qui lui correspondent.
Enfin, Elastic Security a publié une règle YARA pour aider les administrateurs de systèmes Linux à détecter la menace Pumakit. Les hash des fichiers malveillants ont également été mis en ligne.