Il progetto Singularity sviluppa un rootkit aperto, che bypassa SELinux, Netfilter, LKRG e eBPF

Matheus Alves, ricercatore di sicurezza specializzato in malware, ha pubblicato un aggiornamento del progetto Singularity, che sviluppa un rootkit open-source per il kernel Linux, distribuito con licenza MIT. L'obiettivo del progetto è dimostrare metodi per nascondere la propria presenza dopo aver ottenuto l'accesso root e mantenere la possibilità di eseguire operazioni privilegiate in modo nascosto. Singularity dovrebbe essere utile agli esperti di sicurezza per testare e sviluppare strumenti per l'individuazione e il blocco dei rootkit.

Il rootkit è realizzato come un modulo per i kernel Linux 6.x e utilizza il meccanismo ftrace per intercettare silenziosamente le chiamate di sistema senza modificare i punti d'ingresso delle chiamate di sistema e senza alterare le funzioni del kernel. Singularity supporta la propria occultazione nel sistema, così come quella dei processi e dei file associati agli attaccanti, e delle attività di rete. Per facilitare il lavoro degli studiosi, la funzionalità del rootkit è suddivisa in moduli.

Oltre ai metodi tipici di mascheramento della presenza nel sistema, come l'occultamento di processi, file, directory e moduli del kernel, Singularity implementa diversi metodi avanzati per eludere i meccanismi di protezione e rendere difficile il rilevamento da parte di scanner di rootkit specializzati, come Falco, ghostscan, tracee, unhide, chkrootkit e rkhunter. Tra l'altro, Singularity può nascondere la propria attività da strumenti che utilizzano eBPF, rimuovere i blocchi eBPF, ostacolare il caricamento di moduli del kernel, contrastare l'analisi I/O attraverso la sottosistema io_uring, e pertanto bypassare i controlli di integrità eseguiti dal modulo LKRG (Linux Kernel Runtime Guard).

In Singularity è presente una reverse shell che fornisce accesso remoto privilegiato al sistema tramite l'invio di pacchetti ICMP, oltre a gestori che permettono di ottenere l'occultamento di processi o l'elevazione dei privilegi nel sistema attraverso determinate manipolazioni con segnali e variabili d'ambiente. Ad esempio, per nascondere un processo da /proc e dall'output di strumenti come ps, è possibile eseguire "kill -59 PID_del_processo" e per elevare i privilegi impostare la variabile d'ambiente "MAGIC=mtz".

Il rootkit nasconde il traffico reverse shell dagli analizzatori di rete e consente di eludere i gestori di SELinux attivati dall'ICMP. Singularity include anche funzionalità per nascondere determinate connessioni di rete dalle tabelle /proc/net/nf_conntrack, dai gestori netlink SOCK_DIAG/NETFILTER e da strumenti come netstat, ss, lsof, tcpdump e wireshark. Sono disponibili gestori per ripulire i messaggi di audit e l'output nei log (klogctl, syslog, systemd-journal, /sys/kernel/debug/tracing/, dmesg). Sono presenti filtri per contrastare gli analizzatori di memoria come Volatility, utilizzando /proc/kcore, /proc/kallsyms e /proc/vmallocinfo, e funzionalità di filtraggio per l'accesso diretto ai dispositivi a blocchi per prevenire un'analisi a basso livello del contenuto del FS.

Guarda il video


Fonte: opennet.ru
Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster