Disastro Secure Boot dietro l'angolo: facciamo chiarezza

La funzionalità Secure Boot avrà bisogno, a breve, di un nuovo certificato per controllare i software caricati all'avvio del sistema. Verificare com'è è firmato il bootloader di Windows e quali informazioni sono contenute nel BIOS UEFI.

Secure Boot è una tecnologia che è parte integrante delle specifiche UEFI ed è progettata per prevenire l’esecuzione di software non autorizzato all’avvio del computer. I bootkit sono minacce che si insediano a livello del bootloader, il programma che carica il sistema operativo, e sono eseguiti prima di quest’ultimo, rendendo difficile il loro rilevamento e rimozione.

Per funzionare, Secure Boot richiede che il PC utilizzi appunto un BIOS UEFI anziché il vecchio BIOS legacy. In caso di necessità, è possibile avviare il sistema in modalità UEFI CSM (Compatibility Support Mode): così facendo, Secure Boot viene di fatto disabilitata.

Quando Secure Boot è attivo, UEFI trasferisce il controllo solo a bootloader firmati con un certificato memorizzato nel firmware del BIOS stesso. Questo certificato è generalmente fornito da Microsoft, anche per i bootloader Linux. Per evitare problemi in fase di avvio, il mondo open source si affida al componente software chiamato shim che agisce da intermediario tra il firmware (leggasi BIOS UEFI) e il sistema da caricare.

Vulnerabilità scoperte nel 2023 hanno permesso a bootkit come BlackLotus di disattivare la protezione di Secure Boot, rendendola completamente inefficace. La conseguenza diretta è che un bootloader firmato con un certificato valido non garantisce più sicurezza. Così Microsoft ha dovuto cominciare ad assumere una serie di contromisure.

Cosa ha deciso di fare Microsoft per contenere le vulnerabilità di Secure Boot

Microsoft ha annunciato l’intenzione di revocare il certificato utilizzato finora per firmare i bootloader di Windows compatibili con Secure Boot. Un BIOS UEFI con Secure Boot attivo non riconoscerà più i bootloader di Windows come validi. Saranno quindi necessari nuovi bootloader firmati con un nuovo certificato, che dovrà a sua volta essere presente all’interno del firmware UEFI di ogni singola macchina.

Se la misura decisa da Microsoft riguarda i bootloader di Windows, proprio quelli che utilizziamo ogni giorno per avviare qualsiasi versione ed edizione del sistema operativo, non è ancora chiaro che cosa succederà agli altri bootloader.

Un disastro preannunciato?

Abbiamo spiegato perché entro ottobre 2024 tanti sistemi Windows potrebbero non avviarsi più. È Microsoft stessa, nel documento KB5025885 ad ammettere che, dopo la revoca del precedente certificato e la distribuzione del nuovo, potrebbero sorgere problemi. E c’è da dire che gli aggiornamenti arriveranno attraverso Windows Update, quindi le modifiche saranno applicate senza che gli utenti siano consapevoli di quello che sta succedendo.

La questione è tutt’altro che banale perché, come evidenziato in precedenza, da un lato il bootloader deve essere firmato con il nuovo certificato, dall’altro il BIOS UEFI deve essere a sua volta aggiornato per riconoscere tale certificato.

Microsoft può procedere via software, senza scomodare aggiornamenti del BIOS scaricati dai siti Web del produttore del PC o della scheda madre. UEFI UpdateCapsule è una funzionalità supportata da UEFI che permette l’aggiornamento del firmware del sistema in modo sicuro e standardizzato. L’azienda di Redmond spingerà proprio questo tasto per aggiornare il database (DBX) dei certificati lato BIOS UEFI.

Difficile che tutto vada sempre liscio come l’olio. L’aggiornamento del certificato non sarà correttamente applicato su tutti i firmware (esiste già una lista di dispositivi a elevata criticità). Inoltre, alcuni software di sicurezza possono impedire l’operazione.

Come verificare quali certificati sono salvati nel BIOS UEFI

Nessuna versione di Windows integra uno strumento per verificare i certificati utilizzati a livello di BIOS UEFI. Per controllarlo in totale autonomia, si può premere la combinazione di tasti Windows+X quindi scegliere Terminale (Admin) su Windows 11 oppure Windows PowerShell (amministratore) su Windows 10.

A questo punto, i tre comandi seguenti consentono di installare una cmdlet PowerShell per il recupero delle informazioni dal BIOS UEFI (rispondere “S” a tutte le richieste e premere Invio):

Install-Module -Name UEFIv2
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Import-Module UEFIv2

PowerShell controllo certificati BIOS UEFI

I due comandi che seguono permettono di estrarre i certificati memorizzati nel BIOS UEFI e salvarli in un file di testo, successivamente aperto con il Blocco Note di Windows. Il file .txt è creato nella cartella del profilo utente correntemente in uso:

Get-UEFISecureBootCerts DB | fl > $env:USERPROFILE\certificati.txt
notepad $env:USERPROFILE\certificati.txt

Certificato firma bootloader Windows

Scoprire quale certificato utilizza il bootloader

Sebbene non sia propriamente di immediata applicazione, esiste un metodo che aiuta a stabilire con certezza quale certificato è usato per firmare il bootloader responsabile del caricamento di Windows.

Per procedere in tal senso, si deve scaricare l’utilità Microsoft Sigcheck: sui sistemi Windows a 64 bit, basta copiare il file sigcheck64.exe e copiarlo nella cartella c:\sigcheck.

A questo punto si può tornare alla finestra di PowerShell aperta in precedenza con i diritti di amministratore e digitare il comando cmd seguito dalla pressione del tasto Invio. Supponendo che la lettera identificativa di unità U: non sia associata al alcun supporto di memorizzazione né ad alcuna partizione, si devono impartire i seguenti comandi:

mountvol U: /s
c:\sigcheck\sigcheck64 -i -h U:\EFI\Boot\Bootx64.efi > %userprofile%\bootloader_cert.txt
mountvol U: /d
notepad %userprofile%\bootloader_cert.txt

Scorrendo il responso fornito a valle della lettura del BIOS UEFI, si scopre che il certificato che Microsoft invaliderà è quello chiamato Microsoft Windows Production PCA 2011 che scade nel 2026 ma che verrà presto rimpiazzato da uno nuovo con scadenza, presumibilmente, nel 2035.

Dai primi test, sembra infatti che il nuovo bootloader comune a Windows 10 e Windows 11 avrà numero di versione 10.0.26089.1001 e scadenza 13 giugno 2035.

Credit immagine in apertura: Copilot Designer.

Ti consigliamo anche

Link copiato negli appunti