Windows 8 Secure Boot battuto da Linux con astuzia

Un sviluppatore Linux ha superato le difese di Secure Boot usando Kexec.

Avatar di Valerio Porcu

a cura di Valerio Porcu

Senior Editor

Secure Boot è stato battuto da Matthew Garret, noto sviluppatore del mondo Linux che ha usato kexec per superare le difese imposte da Microsoft con l'introduzione di Windows 8 (vedi anche Windows 8 Secure Boot: arriva il malware di basso livello e Windows 8 con EFI è più facile da bucare di Windows 7).

"La bellezza di questo approccio è che non si basa su bug del kernel, ma ne usa funzioni esplicitamente progettate per fare questo genere di cose (ad esempio eseguire codice arbitrario a livello ring 0). Non c'è modo di risolvere (il problema, NdR) eccetto aggiungere una nuova chiamata di sistema che imponga restrizioni ancora più rigide sui file che si possono caricare", commenta Garret.

Garret ha dimostrato che con Kexec (kernel execution) è possibile eseguire avviare un nuovo kernel in modalità "live" anche se è attivo Secure Boot tramite UEFI. Sostanzialmente questo strumento infatti "salta" il bootloader e carica il kernel specificato direttamente in memoria. Il sistema nasce per velocizzare l'avvio del computer, ma lo sviluppatore ha scoperto che si può usare anche per aggirare le protezioni più recenti.

La procedura non è semplicissima, continua Garrett, perché bisogna specificare le mappe fisiche e virtuali da usare per il kernel desiderato, ma "fortunatamente, c'è un modo semplice di aggirare il problema". Garret ha pubblicato il proprio lavoro su GitHub, disponibile per chiunque volesse verificarlo o modificarlo.  

Questa scoperta rende i recenti PC meno sicuri e vanifica gli sforzi di Microsoft? Non proprio, perché dopotutto dev'essere presente un kernel Linux firmato e autorizzato che includa Kexec, e poi bisogna sfruttarlo per avviare un eventuale software non autorizzato. La possibilità è quindi interessante per chi vuole usare sistemi operativi non firmati sul proprio computer, perché la procedura è relativamente semplice - per un programmatore esperto. Per un eventuale criminale, tuttavia, sembra una strada poco interessante.