Microsoft ha recentemente presentato Project Mu, un’iniziativa che mira a fornire “firmware come servizio” per l’hardware compatibile. Questa mossa dovrebbe essere presa seriamente in considerazione da tutti i produttori di PC. I computer, infatti, necessitano di aggiornamenti di sicurezza per il firmware UEFI, e i produttori non si sono sempre dimostrati all’altezza nel garantirli.
Cos’è il firmware UEFI?
I moderni computer utilizzano il firmware UEFI al posto del tradizionale BIOS. Il firmware UEFI è il software di base che si avvia all’accensione del PC. Ha il compito di verificare e inizializzare l’hardware, eseguire una configurazione di sistema di basso livello e, successivamente, avviare il sistema operativo dall’unità interna del computer o da un altro dispositivo di avvio.
UEFI è un sistema più complesso rispetto al vecchio BIOS. Ad esempio, i computer con processori Intel includono l’Intel Management Engine, che è essenzialmente un piccolo sistema operativo che opera parallelamente a Windows, Linux o qualsiasi altro sistema operativo installato. Nelle reti aziendali, gli amministratori di sistema possono sfruttare le funzionalità di Intel ME per gestire da remoto i computer.
Inoltre, UEFI contiene il “microcodice” del processore, una sorta di firmware per la CPU. All’avvio del computer, il microcodice viene caricato dal firmware UEFI. Si può pensare a questo microcodice come a un interprete che converte le istruzioni software in istruzioni hardware eseguite dalla CPU.
Perché gli aggiornamenti di sicurezza del firmware UEFI sono essenziali
Negli ultimi anni, si è ampiamente dimostrata la necessità di aggiornamenti tempestivi per il firmware UEFI, soprattutto per quanto riguarda la sicurezza.
Nel 2018, tutti abbiamo sentito parlare di Spectre, una vulnerabilità che ha messo in luce gravi problemi architetturali delle moderne CPU. Le criticità legate all’ “esecuzione speculativa” consentivano ai programmi di eludere le normali restrizioni di sicurezza e di accedere a zone protette della memoria. Per risolvere Spectre, sono stati necessari aggiornamenti del microcodice della CPU. Ciò ha obbligato i produttori di PC ad aggiornare tutti i laptop e i desktop, mentre i produttori di schede madri hanno dovuto aggiornare tutte le schede con un nuovo firmware UEFI contenente il microcodice aggiornato. Un PC senza un aggiornamento del firmware UEFI non è adeguatamente protetto contro Spectre. Anche AMD ha rilasciato aggiornamenti del microcodice per proteggere i sistemi con processori AMD dagli attacchi Spectre, quindi non è una problematica esclusiva di Intel.
L’Intel Management Engine ha anche presentato alcune falle di sicurezza che avrebbero potuto permettere ad aggressori con accesso locale al computer di compromettere il software Management Engine, o a utenti malintenzionati con accesso remoto di causare problemi. Fortunatamente, gli exploit remoti hanno interessato solamente le aziende che avevano abilitato l’Intel Active Management Technology (AMT), lasciando indenni i consumatori medi.
Questi sono solo alcuni esempi. Alcuni ricercatori hanno dimostrato che è possibile abusare del firmware UEFI su determinati PC per ottenere un accesso profondo al sistema. Hanno anche individuato ransomware persistenti che si sono infiltrati nel firmware UEFI di un computer e hanno operato da lì.
L’industria dovrebbe aggiornare il firmware UEFI di ogni computer, proprio come qualsiasi altro software, per prevenire questi e altri problemi simili che potrebbero presentarsi in futuro.
Le problematiche del processo di aggiornamento
Il processo di aggiornamento del BIOS è sempre stato problematico, ben prima dell’avvento di UEFI. In passato, i computer montavano il BIOS tradizionale, con il quale era meno facile che sorgessero problemi. I produttori di PC fornivano alcuni aggiornamenti del BIOS per risolvere piccoli inconvenienti, ma il consiglio comune era di evitare di installarli se il PC funzionava correttamente. Spesso, era necessario eseguire l’avvio da un’unità DOS per installare l’aggiornamento del BIOS, e tutti conoscono storie di aggiornamenti falliti che hanno mandato in blocco i PC, rendendoli inutilizzabili.
La situazione è cambiata. Il firmware UEFI svolge molte più funzioni, e Intel ha rilasciato diversi aggiornamenti importanti a componenti come il microcodice della CPU e l’Intel ME negli ultimi anni. Ogni volta che Intel rilascia un aggiornamento di questo tipo, l’unica cosa che può fare è indirizzare gli utenti al “produttore del computer”. Il produttore del computer, o della scheda madre se si è costruito il PC, deve quindi prendere il codice da Intel e integrarlo in una nuova versione del firmware UEFI. Successivamente, deve testare il firmware. Inoltre, ogni produttore deve ripetere questo processo per ogni singolo PC che vende, poiché ognuno ha un firmware UEFI diverso. Questo tipo di lavoro manuale ha reso gli aggiornamenti dei telefoni Android così difficili in passato.
In pratica, ciò significa che spesso ci vogliono diversi mesi prima di poter ottenere aggiornamenti di sicurezza critici tramite UEFI. Inoltre, i produttori potrebbero decidere di non aggiornare i PC che hanno solo pochi anni. Anche quando i produttori rilasciano gli aggiornamenti, questi sono spesso nascosti nel sito web di supporto. La maggior parte degli utenti non scopre l’esistenza di questi aggiornamenti del firmware UEFI e non li installa, con il risultato che questi bug permangono nei PC per molto tempo. Alcuni produttori rendono ancora più complicato l’aggiornamento, richiedendo l’avvio in DOS.
Le soluzioni proposte
È una situazione caotica. Abbiamo bisogno di un processo più snello che consenta ai produttori di creare più facilmente nuovi aggiornamenti del firmware UEFI. È anche necessario un processo più efficiente per la distribuzione di questi aggiornamenti, in modo che gli utenti possano installarli automaticamente sui loro PC. Al momento il processo è lento e manuale, mentre dovrebbe essere rapido e automatico.
Questo è l’obiettivo di Microsoft con Project Mu. Ecco come la documentazione ufficiale lo descrive:
Mu si basa sull’idea che la fornitura e la manutenzione di un prodotto UEFI siano una collaborazione continua tra diversi partner. Per troppo tempo, l’industria ha creato prodotti utilizzando un modello di “fork”, combinato con copia/incolla/rinomina. Con ogni nuovo prodotto, il carico di manutenzione cresce a tal punto che gli aggiornamenti diventano quasi impossibili a causa dei costi e dei rischi.
L’obiettivo di Project Mu è aiutare i produttori di PC a creare e testare più rapidamente gli aggiornamenti UEFI, semplificando il processo di sviluppo e facilitando la collaborazione. Microsoft ha già reso più semplice per i produttori di PC inviare automaticamente gli aggiornamenti del firmware UEFI agli utenti, quindi questo dovrebbe essere un importante tassello mancante.
In particolare, Microsoft consente ai produttori di PC di rilasciare aggiornamenti del firmware tramite Windows Update, e ha fornito documentazione su questo argomento almeno dal 2017. Microsoft ha anche annunciato Component Firmware Update, un modello open source che i produttori possono utilizzare per aggiornare UEFI e altri firmware, nell’ottobre 2018. Se i produttori di PC aderiranno a questo sistema, potrebbero fornire aggiornamenti del firmware a tutti i loro utenti molto rapidamente.
Questa non è una soluzione esclusiva di Windows. Su Linux, gli sviluppatori stanno cercando di rendere più facile per i produttori di PC rilasciare aggiornamenti UEFI tramite LVFS, il servizio firmware dei fornitori Linux. I fornitori di PC possono inviare i loro aggiornamenti, che saranno disponibili per il download tramite l’applicazione software GNOME, utilizzata su Ubuntu e molte altre distribuzioni Linux. Questo progetto è in sviluppo dal 2015. Produttori di PC come Dell e Lenovo vi stanno partecipando.
Queste soluzioni per Windows e Linux vanno oltre i semplici aggiornamenti UEFI. I produttori di hardware potrebbero utilizzarle per aggiornare qualsiasi cosa, dal firmware del mouse USB al firmware dell’unità a stato solido in futuro.
Come ha sottolineato SwiftOnSecurity, parlando dei problemi con il firmware e la crittografia delle unità a stato solido, gli aggiornamenti del firmware devono essere affidabili. Dobbiamo pretendere di meglio dai produttori di hardware.
Gli aggiornamenti del firmware possono essere affidabili. Ho eseguito almeno 3.000 aggiornamenti del BIOS Dell con un solo errore, e quel vecchio PC era già in servizio per via di un guasto.
Ripensate a ciò che ritenete impossibile. La manutenzione del firmware non è né impossibile né rischiosa. Richiede solo che le persone pretendano di meglio.
— SwiftOnSecurity (@SwiftOnSecurity) 6 novembre 2018
Crediti immagine: Intel, Natascha Eibl, kubais/Shutterstock.com.