Matheus Alves, një studiues sigurie i specializuar në programe keqdashëse, ka publikuar një përditësim të projektit Singularity, i cili zhvillon një rootkit kernel me burim të hapur. Linux, i shpërndarë sipas licencës MIT. Qëllimi i projektit është të demonstrojë metoda për fshehjen e pranisë së dikujt pas fitimit të aksesit root dhe ruajtjen e aftësisë për të kryer operacione të privilegjuara në mënyrë të fshehtë. Shpresohet që Singularity mund të jetë i dobishëm për studiuesit e sigurisë për testimin dhe zhvillimin e mjeteve të zbulimit dhe bllokimit të rootkit-eve.
Rootkit është projektuar si një modul për kernel-et Linux 6.x dhe përdor mekanizmin ftrace për të kapur fshehurazi thirrjet e sistemit pa ndryshuar pikat e hyrjes së thirrjeve të sistemit ose pa modifikuar funksionet e kernelit. Singularity mbështet fshehjen e pranisë së tij në sistem, si dhe fshehjen e proceseve të specifikuara nga sulmuesi, skedarëve të lidhur dhe aktivitetit të rrjetit. Për lehtësinë e studiuesve, funksionaliteti i rootkit është i ndarë në module.
Përveç metodave tipike të fshehjes së pranisë së tij në sistem, siç është fshehja e proceseve, skedarëve, drejtorive dhe moduleve të kernelit të nevojshëm, Singularity zbaton disa metoda të avancuara për të anashkaluar mekanizmat e mbrojtjes dhe për të penguar zbulimin nga skanerët e specializuar të rootkit-it, siç janë Falco, ghostscan, tracee, unhide, chkrootkit dhe rkhunter. Ndër të tjera, Singularity mund ta fshehë aktivitetin e tij nga mjetet që përdorin eBPF, të heqë bllokimet e eBPF, të parandalojë ngarkimin e moduleve të kernelit, t'i rezistojë analizës së I/O nëpërmjet nënsistemit io_uring dhe të anashkalojë kontrollet e integritetit të kryera nga moduli LKRG (Linux Mbrojtësja e Kohës së Runtime-it të Kernel-it).
Singulariteti përfshin një shell të kundërt, i cili siguron akses të privilegjuar në distancë në sistem duke dërguar paketa ICMP, si dhe trajtues që lejojnë fshehjen e procesit ose përshkallëzimin e privilegjeve përmes manipulimeve specifike të sinjaleve dhe variablave të mjedisit. Për shembull, për të fshehur një proces nga /proc dhe dalja e shërbimeve si ps, mund të ekzekutoni "kill -59 PID_process", dhe për të përshkallëzuar privilegjet, vendosni variablin e mjedisit "MAGIC=mtz".
Rootkit-i fsheh trafikun e shell-it të kundërt nga analizuesit e rrjetit dhe lejon anashkalimin e trajtuesve të SE.Linux, i shkaktuar nga ICMP. Singularity gjithashtu përfshin aftësi për fshehjen e lidhjeve të caktuara të rrjetit nga tabelat /proc/net/nf_conntrack, trajtuesit e lidhjeve netlink SOCK_DIAG/NETFILTER dhe shërbime si netstat, ss, lsof, tcpdump dhe wireshark. Trajtuesit për pastrimin e mesazheve të auditimit dhe regjistrimin janë të disponueshëm (klogctl, syslog, systemd-journal, /sys/kernel/debug/tracing/, dmesg). Ekzistojnë filtra për të kundërshtuar analizuesit e memories si Volatility, të cilët përdorin /proc/kcore, /proc/kallsyms dhe /proc/vmallocinfo, si dhe aftësinë për të filtruar aksesin direkt në pajisjet e bllokut për të parandaluar analizën e sistemit të skedarëve të nivelit të ulët.

Burimi: opennet.ru
