Bootkitty: il gatto nello stivale (di Linux)
Anche Linux ora ha un suo personalissimo bootkit (e miagola pure)
Meow! Oggi vi presentiamo Bootkitty, il primo bootkit UEFI per Linux! Esatto, mai prima d’ora si era visto un malware in grado di compromettere il primo sistema che viene eseguito all’avvio di un computer Linux: solitamente, bersagliano il ben più diffuso Windows.
Fortunatamente, Bootkitty non è stato scoperto “in the wild”, ma è stato implementato da un gruppo di studenti sudcoreani. Ciò significa che i nostri dispositivi Linux sono al sicuro da questo malware… però non bisogna abbassare la guardia: bootkit simili potrebbero ripresentarsi in futuro.
Qualcuno ha detto bootkit?
Se le locuzioni dell’introduzione vi hanno spiazzato, riteniamo sia d’obbligo fare una ripassata su alcuni termini che utilizzeremo in questo post, a partire dal protagonista: bootkit!
I bootkit sono una versione particolare di una famiglia di malware più ampia, i rootkit. Un rootkit, portmanteau di root (il nome storico dell’utente amministratore di un sistema Unix) e kit, è un software dannoso capace di insinuarsi in aree del sistema operativo (e oltre, come vedremo) a cui solitamente i programmi non hanno accesso. In questo modo, un bootkit può nascondersi dagli antivirus e agire con privilegi di amministratore.
I bootkit infettano i boot sector, la prima area di memoria a cui un computer accede all’accensione, ancor prima di accedere al sistema operativo. Ciò che rende i bootkit particolarmente pericolosi è il completo controllo che essi hanno su qualsiasi operazione svolta dal computer infetto, e il fatto che sono, in certi casi, quasi impossibili da rimuovere.
Per essere precisi però, come abbiamo già citato nell’introduzione, Bootkitty non infetta i boot sector, bensì UEFI. UEFI agisce comunque prima di un qualsiasi sistema operativo, ma lo fa in maniera più sicura. Infatti, tutto il codice eseguito dal sistema UEFI è firmato digitalmente, e non può quindi essere modificato senza che il sistema se ne accorga. Questa funzionalità è chiamata Secure Boot. Tuttavia, come vedremo, Bootkitty riesce a bypassare questo controllo.
Come funziona Bootkitty?
Per comprendere al meglio quali nefaste azioni compie Bootkitty una volta atterrato sul nostro computer, partiamo dal definire l’obiettivo di questo malware. La missione principale di Bootkitty è quella di disabilitare la verifica delle firme digitali da parte del kernel (la parte del sistema operativo che si occupa di gestire l’intero sistema, comprese applicazioni e periferiche), e caricare alcuni processi sfruttando i privilegi di kernel.
Quando Bootkitty viene avviato, controlla se Secure Boot è attivo, e nel caso lo sia procede a modificare due funzioni presenti in UEFI:
EFI_SECURITY2_ARCH_PROTOCOL.FileAuthentication
, che viene utilizzata dal firmware per verificare l’integrità delle immagini UEFI; Bootkitty la modifica per far sì che ritorni sempre una risposta positivaEFI_SECURITY_ARCH_PROTOCOL.FileAuthenticationState
, che viene utilizzata per autenticare alcuni file necessari per l’avvio del sistema; anche in questo caso, Bootkitty la modifica per far sì che ritorni sempre una risposta positiva
Dopo aver modificato le funzioni, Bootkitty carica GRUB (un programma che permette di avviare un sistema operativo) dalla partizione d’avvio (EFI). Una volta caricato GRUB, il rootkit procede a modificarlo. Lo scopo della modifica a GRUB è quello di modificare, a sua volta, il kernel di Linux.
Trattandosi di un Proof of Concept, ossia una dimostrazione pratica, oltre a modificare il kernel, Bootkitty non svolge nessuna azione pericolosa. E per rendere le sue azioni ancora più ovvie, i creatori hanno fatto in modo che Bootkitty lasciasse delle “impronte” in giro per il sistema compromesso, sotto forma di eseguibili e modifiche (innocue) a vari file.
Tuttavia, Bootkitty non va preso alla leggera. È un campanello d’allarme, un primo passo verso una nuova era di minacce. Raccomandiamo di tenere sempre aggiornati i sistemi operativi e di abilitare Secure Boot, in modo da evitare qualsivoglia inconveniente.
HACK THE PLANET!
Linda 🐲