Matheus Alves, cercetător în domeniul securității, specializat în software-ul malware, a publicat o actualizare a proiectului Singularity, care dezvoltă un rootkit deschis pentru kernelul Linux, distribuit sub licența MIT. Scopul proiectului este de a demonstra metode care permit ascunderea prezenței după obținerea accesului de root și menținerea capabilității de executare ascunsă a operațiunilor privilegiate. Se consideră că Singularity poate fi util pentru cercetătorii în securitate în testarea și dezvoltarea utilitarelor de detectare și blocare a rootkit-urilor.
Rootkit-ul este realizat sub formă de modul pentru kernelurile Linux 6.x și folosește mecanismul ftrace pentru interceptarea discretă a apelurilor de sistem fără a modifica punctele de intrare în apelurile de sistem și fără a altera funcțiile kernelului. Singularity suportă ascunderea prezenței sale în sistem, precum și ascunderea proceselor designate de atacatori, a fișierelor asociate și a activității de rețea. Pentru comoditatea cercetătorilor, funcționalitatea rootkit-ului este împărțită pe module.
Pe lângă metodele tipice de mascare a prezenței în sistem, cum ar fi ascunderea proceselor, fișierelor, directoarelor și modulelor kernelului, Singularity implementează câteva metode avansate de ocolire a mecanismelor de protecție și de dificultate în detectarea de către scanerele de rootkit specializate, cum ar fi Falco, ghostscan, tracee, unhide, chkrootkit și rkhunter. Printre altele, Singularity poate ascunde activitatea sa de la instrumentele care folosesc eBPF, elimina restricțiile eBPF, împiedica încărcarea modulelor kernelului, rezista analizei input/output prin subsistemul io_uring și ocoli verificările de integritate efectuate de modulul LKRG (Linux Kernel Runtime Guard).
În Singularity există un reverse shell care oferă acces privilegiat de la distanță la sistem prin trimiterea de pachete ICMP, precum și manipulatoare care permit ascunderea proceselor sau creșterea privilegiilor în sistem prin anumite manipulări cu semnale și variabile de mediu. De exemplu, pentru a ascunde un proces din /proc și din ieșirea utilitarelor, cum ar fi ps, se poate efectua „kill -59 PID_procesului”, iar pentru a crește privilegiile se poate seta variabila de mediu „MAGIC=mtz”.
Rootkit-ul ascunde traficul reverse shell de analizele de rețea și permite ocolirea proceselor SELinux care se activează la ICMP. Singularity include de asemenea funcționalități pentru a ascunde anumite conexiuni de rețea din tabelele /proc/net/nf_conntrack, gestionarii netlink SOCK_DIAG/NETFILTER și utilități precum netstat, ss, lsof, tcpdump și wireshark. Există gestionari pentru curățarea mesajelor de audit și raportarea în jurnale (klogctl, syslog, systemd-journal, /sys/kernel/debug/tracing/, dmesg). Dispunem de filtre pentru a contracara analizoarele de memorie, cum ar fi Volatility, care utilizează /proc/kcore, /proc/kallsyms și /proc/vmallocinfo, precum și funcționalități de filtrare a accesului direct la dispozitivele de bloc pentru a preveni analiza la nivel scăzut a conținutului sistemului de fișiere.

Sursa: opennet.ro
