Rootkit: Occultamento a Livello Kernel e Firmware (T1014)

Un rootkit è un componente malevolo progettato per nascondere la presenza di programmi, file, connessioni di rete, servizi e driver intercettando o modificando le chiamate API che il sistema operativo usa per fornire informazioni. L'occultamento può avvenire a diversi strati: user-mode (tramite hooking di librerie come libc o ntdll), kernel-mode (moduli LKM su Linux, driver firmati o meno su Windows), fino a livelli ancora più profondi come hypervisor, UEFI e firmware di sistema. Le varianti che intervengono sul boot sector prendono il nome di bootkit.

La tecnica è mappata su TA0005 (Defense Evasion) perché il suo scopo primario è sottrarre l'attività dell'attaccante agli strumenti di ispezione, sia quelli del sistema operativo sia i prodotti di sicurezza installati. In una kill chain reale, il rootkit viene solitamente deployato dopo l'ottenimento di privilegi elevati (fase di privilege escalation) per garantire persistenza duratura e occultamento a lungo termine.

I numeri raccontano la portata del problema: 6 gruppi APT documentati, 24 famiglie di malware classificate come rootkit o dotate di componenti rootkit, e 2 campagne di rilievo (ArcaneDoor contro appliance Cisco e RedPenguin contro router Juniper). L'impatto operativo è severo: una compromissione con rootkit kernel o UEFI può sopravvivere a reinstallazioni del sistema operativo e richiedere flash del firmware o sostituzione hardware per la bonifica completa.

In un esercizio red team, l'utilizzo di rootkit è tipicamente riservato a scenari di persistence assessment autorizzati su target isolati, dato il rischio di brick e la difficoltà di rimozione. Il laboratorio ideale è una VM disposable con snapshot pre-installazione.

Su Linux, il punto d'ingresso più didattico è Diamorphine (open source), un LKM che nasconde processi, file con prefisso specifico e privilegi. La compilazione richiede header del kernel corrispondenti (apt install linux-headers-$(uname -r)) e il caricamento avviene con insmod diamorphine.ko. Per nascondere un processo si invia un segnale specifico via kill -31 , mentre l'occultamento del modulo stesso dalla lista di lsmod è automatico dopo la prima invocazione. Un secondo approccio user-mode è la manipolazione di /etc/ld.so.preload con una shared library che intercetta readdir() e readdir64(), tecnica usata da Hildegard e Rocke per nascondere miner e dropper: la libreria si compila con gcc -shared -fPIC -o preload.so preload.c -ldl.

Per scenari più realistici legati a UNC3886, esistono i rootkit pubblici REPTILE e MEDUSA (open source su GitHub): REPTILE offre hooking di funzioni kernel per nascondere processi, connessioni e file, con un client di controllo dedicato; MEDUSA aggiunge command execution e credential logging via PAM hooking. Il deployment richiede sempre root e la disattivazione temporanea di eventuali LSM (SELinux/AppArmor) nel lab.

Su Windows, la simulazione moderna passa per driver firmati abusabili (tecnica BYOVD, Bring Your Own Vulnerable Driver). Tool come KDMapper (open source) permettono di mappare in memoria driver non firmati sfruttando il driver vulnerabile iqvw64e.sys di Intel. La catena tipica è: caricamento driver vulnerabile via sc create e sc start, exploit della primitiva di scrittura kernel, mapping del payload. Prodotti come Process Hacker (open source) e WinDbg (gratuito nel Windows SDK) servono per verificare l'effetto dell'hooking sulle strutture EPROCESS e PsActiveProcessHead.

Per la componente UEFI — rilevante per emulare LoJax di APT28 — il framework di riferimento è CHIPSEC (open source, Intel), che con chipsec_main.py -m common.uefi.access_uefispi consente di verificare se lo SPI flash è scrivibile dal sistema operativo, precondizione per l'infezione. Le PoC di modifica firmware vanno eseguite esclusivamente su hardware dedicato e sacrificabile.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.