Un sacco di posti:
L'hardware moderno ha una vasta gamma di archivi dati persistenti, solitamente utilizzati per il firmware. È troppo costoso spedire un dispositivo complesso come una GPU o una scheda di rete e mettere il firmware su una maschera ROM dove non può essere aggiornato, quindi avere un errore che causa richiami di massa. In quanto tale, hai bisogno di due cose: una posizione scrivibile per quel firmware e un modo per installare il nuovo firmware. Ciò significa che il software del sistema operativo deve essere in grado di scrivere nella posizione in cui il firmware è memorizzato nell'hardware (di solito EEPROM).
Un buon esempio di ciò è lo stato delle moderne utilità di aggiornamento BIOS / UEFI. È possibile acquisire un'immagine UEFI e un eseguibile in esecuzione sul sistema operativo (ad esempio Windows), fare clic su un pulsante e gli aggiornamenti UEFI. Semplice! Se si esegue il reverse engineering di come funzionano (cosa che ho fatto alcune volte) si tratta principalmente del caricamento di un driver in modalità kernel che prende i dati della pagina dall'immagine UEFI data e comunica direttamente al chip UEFI utilizzando out
, inviando i comandi corretti per sbloccare il flash e avviare il processo di aggiornamento.
Ci sono alcune protezioni, ovviamente. La maggior parte delle immagini BIOS / UEFI non verranno caricate a meno che non siano firmate dal fornitore. Ovviamente, un attaccante abbastanza avanzato potrebbe semplicemente rubare la chiave di firma dal venditore, ma questo sta andando nelle teorie della cospirazione e negli attori di minacce divini, che semplicemente non sono realistici da combattere in quasi tutti gli scenari. I motori di gestione come IME dovrebbero avere certe protezioni che impediscono l'accesso alle loro sezioni di memoria anche tramite codice ring0, ma la ricerca ha dimostrato che ci sono molti errori là fuori e molti punti deboli.
Quindi, tutto è fottuto, vero? Ebbene sì e no. È possibile inserire rootkit nell'hardware, ma è anche incredibilmente difficile. Ogni singolo computer ha una tale variazione nelle versioni hardware e firmware che è impossibile creare un rootkit generico per la maggior parte delle cose. Non puoi semplicemente ottenere un BIOS Asus generico e installarlo su qualsiasi scheda; lo ucciderai. Dovresti creare un rootkit per ogni tipo di scheda separato, a volte fino all'intervallo di revisione corretto. È anche un'area di sicurezza che coinvolge un'enorme quantità di conoscenza cross-domain, fino in profondità all'hardware e agli aspetti operativi di basso livello delle moderne piattaforme di elaborazione, insieme a una forte sicurezza e conoscenza crittografica, quindi non molte persone sono capaci.
È probabile che tu venga scelto come target? No.
È probabile che tu venga infettato da un rootkit residente BIOS / UEFI / SMM / GPU / NIC? No.
Le complessità e le variazioni coinvolte sono semplicemente troppo grandi perché l'utente medio debba mai preoccuparsene realisticamente. Anche da un punto di vista economico, queste cose richiedono una quantità eccessiva di abilità, impegno e denaro per essere costruite, quindi bruciarle sul malware dei consumatori è idiota. Questi tipi di minacce sono così mirati che appartengono solo al modello di minaccia dello stato-nazione.