Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Aprile! Scopri di più
Un bootkit è una variante di malware che altera i settori di avvio di un disco — il Master Boot Record (MBR), il Volume Boot Record (VBR) o i file nella EFI System Partition (ESP) — per eseguire codice malevolo prima ancora che il sistema operativo prenda il controllo. Questa caratteristica lo colloca a un livello architetturale inferiore rispetto a qualsiasi endpoint protection tradizionale, rendendolo uno degli strumenti di persistenza più insidiosi nel panorama delle minacce.
La tecnica si inserisce in due tattiche distinte della kill chain. Sotto Persistence (TA0003), il bootkit garantisce che il codice malevolo sopravviva a riavvii, aggiornamenti e persino a reinstallazioni parziali del sistema operativo. Sotto Defense Evasion (TA0005), la sua posizione pre-OS gli consente di intercettare e manipolare il caricamento dei driver di sicurezza, mascherando la propria presenza e quella di altri componenti malevoli.
I numeri confermano la rilevanza della tecnica: 3 gruppi APT documentati, 6 famiglie malware note e 2 mitigazioni strutturali a disposizione dei difensori. Non si tratta di una tecnica di massa, ma di una capacità riservata ad attori con elevata sofisticazione tecnica — e proprio per questo il suo impatto, quando viene impiegata, è devastante. La bonifica richiede consapevolezza specifica: senza il sospetto esplicito che un bootkit sia stato impiantato, le normali procedure di incident response rischiano di lasciare intatta la persistenza.
Simulare un bootkit in laboratorio richiede un ambiente isolato — una macchina virtuale con snapshot puliti è il minimo sindacale. L'obiettivo non è creare malware, ma comprendere la meccanica dell'accesso raw al disco e della modifica dei settori di avvio, validando al contempo la capacità di detection del blue team.
Il primo passo è osservare la struttura del MBR su un sistema target. Su Windows, con privilegi elevati, è possibile leggere direttamente il settore zero del disco fisico. Uno script PowerShell può accedere al dispositivo raw \\.\PhysicalDrive0 tramite le API .NET di FileStream, leggendo i primi 512 byte. In ambiente Linux, l'operazione è più immediata:
sudo dd if=/dev/sda of=mbr_backup.bin bs=512 count=1
Questo comando salva il MBR originale — operazione che qualsiasi red teamer dovrebbe eseguire prima di qualunque modifica, sia come baseline sia come rete di sicurezza. Per simulare una sovrascrittura controllata, si può iniettare un pattern riconoscibile nei primi byte (evitando il byte di firma 0x55AA alla posizione 510-511 se si vuole che il disco resti non avviabile come indicatore di compromissione):
sudo dd if=custom_mbr.bin of=/dev/sda bs=512 count=1
Per scenari UEFI, il focus si sposta sulla ESP. Montare la partizione EFI su Linux è banale:
sudo mount /dev/sda1 /mnt/efi
Da qui si possono esplorare i file .efi presenti in /mnt/efi/EFI/Boot/ e sostituire il bootloader legittimo con un binario custom. In un esercizio red team avanzato, strumenti come CHIPSEC (open source) permettono di verificare la configurazione Secure Boot e individuare debolezze nella catena di trust UEFI. Il framework analizza le protezioni firmware, i registri di configurazione SPI e la presenza di write protection sul flash chip.
Per replicare la logica di ROCKBOOT, che modifica il MBR per caricare codice custom prima dell'OS, è utile studiare la struttura del bootloader in assembly x86 a 16 bit. Tool come NASM (open source) consentono di compilare un bootloader minimale:
nasm -f bin bootloader.asm -o bootloader.bin
Il binario risultante può essere scritto nel primo settore della VM di test. Per l'approccio VBR, simile a quanto fa BOOTRASH, occorre identificare la partizione target e sovrascriverne il primo settore — operazione che richiede la comprensione delle strutture NTFS o FAT32 del volume.
Un test complementare consiste nel verificare se il sistema target ha Secure Boot realmente abilitato. Su Windows:
Confirm-SecureBootUEFI
Questo cmdlet PowerShell restituisce True o False. Un red teamer che trova Secure Boot disabilitato ha un vettore d'attacco aperto per l'impianto di bootkit UEFI.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo