Matheus Alves, en sÀkerhetsforskare med inriktning pÄ skadlig kod, publicerade en uppdatering av projektet Singularity, som utvecklar en öppen rootkit för Linux-kÀrnan, distribuerad under MIT-licensen. Projektets mÄl Àr att demonstrera metoder som gör det möjligt att dölja sin nÀrvaro efter att ha fÄtt rootÄtkomst och bevara möjligheten för hemlig utförande av privilegierade operationer. Det antas att Singularity kan vara anvÀndbart för sÀkerhetsforskare för att testa och utveckla verktyg för upptÀckte och blockerande av rootkits.
Rootkitet Àr utformat som en modul för Linux-kÀrnor 6.x och anvÀnder ftrace-mekanismen för att diskret fÄnga systemanrop utan att Àndra ingÄngspunkterna för systemanrop och utan att modifiera kÀrnfunktioner. Singularity stöder dölja sin nÀrvaro i systemet samt dölja angivna processer och relaterade filer och nÀtverksaktivitet. För att underlÀtta för forskare Àr rootkitets funktionalitet uppdelad i moduler.
Förutom typiska metoder för att dölja sin nÀrvaro i systemet, sÄsom att dölja nödvÀndiga processer, filer, kataloger och kÀrnmoduler, implementerar Singularity flera avancerade metoder för att kringgÄ skyddsmekanismer och försvÄra upptÀckten av specialiserade rootkit-scanners, sÄsom Falco, ghostscan, tracee, unhide, chkrootkit och rkhunter. Bland annat kan Singularity dölja sin aktivitet frÄn verktyg som anvÀnder eBPF, ta bort eBPF-blokeringar, förhindra laddning av kÀrnmoduler, motstÄ analys av in- och utdata via io_uring-subsystemet, samt kringgÄ integritetskontroller som utförs av LKRG-modulen (Linux Kernel Runtime Guard).
I Singularity finns en reverse shell som ger privilegierad fjÀrrÄtkomst till systemet genom att skicka ICMP-paket, samt hanterare som möjliggör dölja processer eller höja privilegier i systemet genom specifika manipulationer med signaler och miljövariabler. Till exempel, för att dölja en process frÄn /proc och utdata frÄn verktyg som ps, kan man utföra "kill -59 PID_processen, och för att höja privilegier kan man sÀtta miljövariabeln "MAGIC=mtz".
Rootkit döljer reverse shell-trafik frÄn nÀtverksanalysatorer och möjliggör att kringgÄ SELinux-handledare som aktiveras av ICMP. Singularity inkluderar ocksÄ funktioner för att dölja vissa nÀtverksanslutningar frÄn tabellerna /proc/net/nf_conntrack, netlink-handledare SOCK_DIAG/NETFILTER och verktyg som netstat, ss, lsof, tcpdump och wireshark. Det finns hanterare för att rensa revisionsmeddelanden och loggutdata (klogctl, syslog, systemd-journal, /sys/kernel/debug/tracing/, dmesg). Det finns filter för att motverka minnesanalysatorer, sÄsom Volatility, som anvÀnder /proc/kcore, /proc/kallsyms och /proc/vmallocinfo, samt funktioner för att filtrera direktÄtkomst till blockenheter för att förhindra lÄgnivÄanalys av FS-innehÄll.

KĂ€lla: opennet.ru
