Matheus Alves, ein Sicherheitsforscher mit Spezialisierung auf Malware, hat ein Update für das Singularity-Projekt veröffentlicht. Dieses entwickelt ein offenes Rootkit für den Linux-Kernel und wird unter der MIT-Lizenz vertrieben. Ziel des Projekts ist es, Methoden zu demonstrieren, die es ermöglichen, nach Erlangung von Root-Zugriffen das eigene Vorhandensein zu verbergen und die Möglichkeit zur verborgenen Durchführung von privilegierten Operationen zu bewahren. Es wird angenommen, dass Singularity für Sicherheitsforscher nützlich sein kann, 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 verwendet den ftrace-Mechanismus, um Systemaufrufe unauffällig abzufangen, ohne die Einstiegspunkte in die Systemaufrufe zu ändern oder die Kernel-Funktionen zu modifizieren. Singularity unterstützt das Verbergen seiner Präsenz im System sowie das Verstecken von vom Angreifer festgelegten Prozessen und den damit verbundenen Dateien und Netzwerkaktivitäten. Zur Erleichterung für Forscher ist die Funktionalität des Rootkits in Module unterteilt.
Neben den typischen Methoden zur Maskierung der Präsenz im System, wie z.B. das Verstecken notwendiger Prozesse, Dateien, Verzeichnisse und Kernelmodule, implementiert Singularity mehrere fortschrittliche Methoden, um die 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äten vor Tools verbergen, die eBPF verwenden, eBPF-Blockaden entfernen, das Laden von Kernelmodulen verhindern, der Analyse von Ein-/Ausgabe über das io_uring-Subsystem entgegenwirken und Integritätsprüfungen durch das Modul LKRG (Linux Kernel Runtime Guard) umgehen.
In Singularity ist eine Reverse-Shell vorhanden, die privilegierten Remote-Zugriff auf das System ermöglicht, indem ICMP-Pakete gesendet werden. Außerdem gibt es Handler, die es ermöglichen, Prozesse zu verbergen oder Privilegien im System durch bestimmte Manipulationen mit Signalen und Umgebungsvariablen zu erhöhen. Beispielsweise kann ein Prozess aus /proc und Ausgaben von Utilities wie ps durch "kill -59 PID_prozess" versteckt werden, und um Privilegien zu erhöhen, kann die Umgebungsvariable "MAGIC=mtz" gesetzt werden.
Der Rootkit verbirgt den Traffic des Reverse Shells vor Netzwerk-Analysatoren und ermöglicht es, SELinux-Handler zu umgehen, die auf ICMP reagieren. Singularity bietet auch Funktionen zum Verbergen bestimmter Netzwerkverbindungen aus den Tabellen /proc/net/nf_conntrack, den Netlink-Handlern SOCK_DIAG/NETFILTER sowie Tools wie netstat, ss, lsof, tcpdump und wireshark. Es stehen Handler zur Verfügung, um Auditnachrichten zu bereinigen und in Logs (klogctl, syslog, systemd-journal, /sys/kernel/debug/tracing/, dmesg) zu schreiben. Es gibt Filter, um sich gegen Speicheranalysatoren wie Volatility zu schützen, die /proc/kcore, /proc/kallsyms und /proc/vmallocinfo verwenden, sowie Möglichkeiten zur Filterung des direkten Zugriffs auf Blockgeräte, um eine tiefgreifende Analyse des Inhalts des Dateisystems zu verhindern.

Quelle: opennet.ru
