Matheus Alves, ein Sicherheitsforscher, der sich auf Malware spezialisiert hat, hat ein Update für das Projekt Singularity veröffentlicht, das ein Open-Source-Rookit für den Linux-Kernel entwickelt, das unter der MIT-Lizenz verbreitet wird. Ziel des Projekts ist es, Methoden zu demonstrieren, die es ermöglichen, seine Präsenz nach Erlangung von Root-Rechten zu verbergen und die Möglichkeit zur verdeckten Ausführung privilegierter Operationen aufrechtzuerhalten. Singularity könnte für Sicherheitsforscher nützlich sein, um Tools zur Erkennung und Blockierung von Rootkits zu testen und zu entwickeln.
Das Rootkit ist als Modul für Linux-Kernel 6.x gestaltet und nutzt den ftrace-Mechanismus, um Systemaufrufe unbemerkt abzufangen, ohne die Einstiegspunkte für Systemaufrufe zu ändern oder Kernel-Funktionen zu modifizieren. Singularity unterstützt das Verbergen seiner Präsenz im System sowie das Verbergen bestimmter durch den Angreifer initiierter Prozesse, zugehöriger Dateien und Netzwerkaktivitäten. Zur Erleichterung der Forscher ist die Funktionalität des Rootkits in Module unterteilt.
Neben typischen Methoden zur Maskierung der Präsenz im System, wie das Verbergen notwendiger Prozesse, Dateien, Verzeichnisse und Kernel-Module, implementiert Singularity mehrere fortschrittliche Methoden, um Schutzmechanismen zu umgehen und die Entdeckung durch spezialisierte Rootkit-Scanner wie Falco, ghostscan, tracee, unhide, chkrootkit und rkhunter zu erschweren. Unter anderem kann Singularity seine Aktivität vor Tools verbergen, die eBPF verwenden, eBPF-Sperren entfernen, das Laden von Kernel-Modulen verhindern, der Analyse von Ein-/Ausgaben über das io_uring-Subsystem entgegenwirken und Integritätsprüfungen des LKRG (Linux Kernel Runtime Guard) umgehen.
Singularity verfügt über eine Reverse-Shell, die privilegierten Remote-Zugriff auf das System über das Versenden von ICMP-Paketen ermöglicht, sowie über Handler, die es ermöglichen, Prozesse zu verbergen oder die Privilegien im System durch bestimmte Manipulationen mit Signalen und Umgebungsvariablen zu erhöhen. Zum Beispiel kann man den Prozess aus /proc und aus Ausgaben von Tools wie ps verbergen, indem man „kill -59 PID_prozess“ ausführt, und um Privilegien zu erhöhen, die Umgebungsvariable „MAGIC=mtz“ setzen.
Rootkits verbergen den Reverse-Shell-Verkehr vor Netzwerkanalysatoren und ermöglichen es, SELinux-Handler zu umgehen, die bei ICMP ausgelöst werden. Singularity bietet außerdem Funktionen zur Verbergung bestimmter Netzwerkverbindungen aus den Tabellen /proc/net/nf_conntrack, Netlink-Handlern SOCK_DIAG/NETFILTER und Tools wie netstat, ss, lsof, tcpdump und wireshark. Es sind Handler verfügbar, um Audit-Nachrichten zu bereinigen und in Logs zu schreiben (klogctl, syslog, systemd-journal, /sys/kernel/debug/tracing/, dmesg). Es gibt Filter zur Bekämpfung von Speicheranalysatoren wie Volatility, die /proc/kcore, /proc/kallsyms und /proc/vmallocinfo verwenden, sowie Möglichkeiten zur Filterung von direkten Zugriffen auf Blockgeräte, um eine tiefgreifende Inhaltsanalyse des Dateisystems zu verhindern.

Quelle: opennet.ru
