Un rootkit è malware progettato per nascondersi e mantenere l'accesso operando ai livelli più profondi del sistema. Più in basso opera, più è invisibile e potente:
- user-mode – aggancia le API per nascondere processi e file dall'occhio dei tool normali
- kernel-mode (ring 0) – vive dentro il kernel: da lì può mentire a qualsiasi software di sicurezza che gira sopra ("quel processo? non esiste"). Difendere il sistema dal kernel, quando il kernel è compromesso, è quasi impossibile
- bootkit – infetta il bootloader o l'UEFI/firmware: si carica prima del sistema operativo, quindi prima di ogni difesa, e sopravvive alla reinstallazione dell'OS e perfino alla sostituzione del disco (se è nel firmware)
Sono l'apice della persistenza furtiva. Le difese sono sotto il sistema operativo: Secure Boot (verifica la firma della catena di avvio – la barriera principale contro i bootkit), il TPM con measured boot, e per il rilevamento, l'analisi della memoria da un ambiente esterno fidato (un rootkit può mentire dall'interno, ma un dump analizzato da fuori lo smaschera confrontando ciò che il sistema dice con ciò che è). Per i casi estremi, la fiducia si ricostruisce solo da hardware pulito. È il motivo per cui la root of trust hardware conta: se l'avvio è manomesso, tutto ciò che segue mente.