Matheus Alves, bezpečnostní výzkumník specializující se na malware, zveřejnil aktualizaci projektu Singularity, který vyvíjí otevřený rootkit pro jádro Linux šířený pod licencí MIT. Cílem projektu je demonstrovat metody, které umožňují skrýt svou přítomnost po získání root přístupu a udržet možnost skrytého provádění privilegovaných operací. Předpokládá se, že Singularity může být užitečný bezpečnostním výzkumníkům pro testování a vývoj nástrojů pro detekci a blokaci rootkitů.
Rootkit je vytvořen jako modul pro jádra Linux 6.x a používá mechanismus ftrace k neviditelnému zachycování systémových volání bez změny vstupních bodů do systémových volání a bez modifikace funkcí jádra. Singularity podporuje skrývání své přítomnosti v systému, stejně jako skrývání určených útočnických procesů a souvisejících souborů a síťové aktivity. Pro pohodlí výzkumníků je funkčnost rootkitu rozdělena na moduly.
Kromě standardních metod skrývání přítomnosti v systému, jako je skrývání nezbytných procesů, souborů, adresářů a modulů jádra, obsahuje Singularity několik pokročilých metod obcházení ochranných mechanismů a ztěžování detekce specializovanými skenery rootkitů, jako jsou Falco, ghostscan, tracee, unhide, chkrootkit a rkhunter. Mezi dalšími funkcemi může Singularity skrývat svou aktivitu před nástroji používajícími eBPF, odstraňovat blokace eBPF, bránit načítání modulů jádra, odolávat analýze vstupu/výstupu přes subsystém io_uring a také obcházet kontroly integrity prováděné modulem LKRG (Linux Kernel Runtime Guard).
V Singularity je přítomná reverse shell, která poskytuje privilegovaný vzdálený přístup k systému prostřednictvím odesílání ICMP paketů, a také zpracovatele, které umožňují skrýt procesy nebo zvýšit privilegium v systému prostřednictvím určitých manipulací se signály a proměnnými prostředí. Například pro skrytí procesu z /proc a výstupu nástrojů, jako je ps, lze provést „kill -59 PID_procesu“ a pro zvýšení privilegium nastavit proměnnou prostředí „MAGIC=mtz“.
Rootkit skrývá provoz reverse shell před síťovými analyzátory a umožňuje obcházet zpracovatele SELinux, které reagují na ICMP. Singularity také zahrnuje možnosti pro skrývání určitých síťových připojení z tabulek /proc/net/nf_conntrack, netlink-zpracovatelů SOCK_DIAG/NETFILTER a nástrojů jako netstat, ss, lsof, tcpdump a wireshark. Jsou k dispozici zpracovatelé pro čištění auditorských zpráv a výstupu do logů (klogctl, syslog, systemd-journal, /sys/kernel/debug/tracing/, dmesg). Existují filtry pro odolávání analyzátorům paměti, jako je Volatility, které používají /proc/kcore, /proc/kallsyms a /proc/vmallocinfo, stejně jako možnosti filtrování přímého přístupu k blokovým zařízením pro prevenci nízkoúrovňové analýzy obsahu FS.

Zdroj: opennet.ru
