Forscher entdeckten PUMAKIT, ein Linux-Rootkit, das in der Lage ist, Dateien zu verstecken, Privilegien zu erweitern und Systemtools und Erkennung zu umgehen.
Forscher des Elastic Security Lab haben ein neues Loadable Kernel Module (LKM) Rootkit namens PUMAKIT entdeckt, das fortschrittliche Umgehungsmechanismen unterstützt.
PUMAKIT verfügt über ein mehrstufiges Design mit einem Dropper, speicherresidenten ausführbaren Dateien und einem Rootkit. Es nutzt ein LKM-Rootkit namens "PUMA", das ftrace-Hooks verwendet, um zentrale Systemfunktionen zu ändern.
Die Malware hakt 18 Syscalls und mehrere Kernel-Funktionen mit ftrace()
um Dateien, Verzeichnisse und das Rootkit selbst zu verstecken und gleichzeitig Debugging-Versuche zu umgehen.
Die Entwickler haben sich auf eine verdeckte Verbreitung konzentriert. Die Malware wird nur unter bestimmten Bedingungen aktiviert, z. B. bei sicheren Boot-Prüfungen oder der Verfügbarkeit von Kernel-Symbolen, und bettet ELF-Binärdateien in ihren Dropper ein.
"PUMAKIT ist eine ausgeklügelte Malware, die ursprünglich bei der routinemäßigen Suche nach Bedrohungen auf VirusTotal entdeckt und nach von den Entwicklern eingebetteten Zeichenfolgen in der Binärdatei benannt wurde", heißt es in dem von Elastic Security Lab veröffentlichten Bericht. "Zu den Schlüsselfunktionen des Kernelmoduls gehören Privilegienerweiterung, das Verstecken von Dateien und Verzeichnissen, das Verbergen vor Systemtools, Anti-Debugging-Maßnahmen und die Kommunikation mit Command-and-Control-Servern (C2)."
Das LKM-Rootkit verwendet die Syscall-Tabelle, um das Systemverhalten zu manipulieren, und stützt sich bei der Symbolauflösung auf kallsyms_lookup_name(). Im Gegensatz zu Rootkits, die auf die Kernel-Versionen 5.7 und höher abzielen, verwendet die Rootkit-Komponente von PUMAKIT keine kprobes
was darauf hindeutet, dass es für ältere Kernel konzipiert ist.
"Diese Entscheidung ist wichtig, weil vor der Kernel-Version 5.7, kallsyms_lookup_name()
wurde exportiert und konnte leicht von Modulen genutzt werden, auch von solchen ohne ordnungsgemäße Lizenzierung", heißt es in dem Bericht weiter.
"Im Februar 2020 debattierten die Kernel-Entwickler über das Nicht-Exportieren von kallsyms_lookup_name()
um den Missbrauch durch nicht autorisierte oder bösartige Module zu verhindern. Eine gängige Taktik war das Hinzufügen eines gefälschten MODULE_LICENSE("GPL")
Deklaration, um Lizenzprüfungen zu umgehen, so dass diese Module auf nicht exportierte Kernel-Funktionen zugreifen können. Das LKM-Rootkit demonstriert dieses Verhalten.
Die rmdir_hook()
Funktion in PUMAKITs Kernel-Modul fängt ab rmdir()
Syscalls, um Verzeichnisoperationen zu manipulieren. Die Malware nutzt ihn zur Privilegienerweiterung und zum Abrufen von Konfigurationsdetails auf der Grundlage eines strukturierten Eingabemusters. Der Hook verarbeitet Befehle und Argumente, die in den Syscall eingebettet sind, beginnend mit "zarya", gefolgt von Befehls- und Argumentzeichen. Dieses strukturierte System verbessert die Kontrolle und Verschleierung.
Im Folgenden finden Sie eine Liste der Befehle, die vom Hook verarbeitet werden:
Befehl | Zweck |
---|---|
zarya.c.0 |
Abrufen der Konfiguration |
zarya.t.0 |
Testen Sie die Arbeit |
zarya.k. |
Eine PID ausblenden |
zarya.v.0 |
Abrufen der laufenden Version |
Elastic Security hat eine YARA-Signatur entwickelt, um PUMAKIT-Komponenten zu erkennen, einschließlich des Droppers (cron
), Rootkit-Lader (/memfd:wpn
), LKM Rootkit und Kitsune Shared Object Dateien.
"PUMAKIT ist eine komplexe und heimliche Bedrohung, die fortschrittliche Techniken wie Syscall-Hooking, speicherresidente Ausführung und einzigartige Methoden zur Privilegienerweiterung nutzt. Sein Multi-Architektur-Design unterstreicht die zunehmende Raffinesse von Malware, die auf Linux-Systeme abzielt", schließt der Bericht.