Varför din dators UEFI-firmware behöver säkerhetsuppdateringar

Microsoft meddelade precis Projekt Mu, som lovar ”firmware as a service” på hårdvara som stöds. Varje PC-tillverkare bör notera. Datorer behöver säkerhetsuppdateringar till sin UEFI-firmware, och PC-tillverkarna har gjort ett dåligt jobb med att leverera dem.

Vad är UEFI Firmware?

Moderna datorer använder UEFI-firmware istället för en traditionell BIOS. UEFI-firmware är den lågnivåprogramvara som startar när du startar din PC. Den testar och initierar din hårdvara, gör någon systemkonfiguration på låg nivå och startar sedan ett operativsystem från din dators interna enhet eller en annan startenhet.

UEFI är dock lite mer komplicerat än den äldre BIOS-mjukvaran. Till exempel har datorer med Intel-processorer något som kallas Intel Management Engine, som i grunden är ett litet operativsystem. Det körs parallellt med Windows, Linux eller vilket operativsystem du än kör på din dator. På företagsnätverk kan systemadministratörer använda funktioner i Intel ME för att fjärrstyra sina datorer.

UEFI innehåller också processor ”mikrokod”, vilket är ungefär som firmware för din processor. När din dator startar, laddar den mikrokod från UEFI-firmware. Tänk på det som en tolk som översätter programvaruinstruktioner till hårdvaruinstruktioner som utförs på CPU:n.

Varför UEFI Firmware behöver säkerhetsuppdateringar

De senaste åren har visat om och om igen varför UEFI-firmware behöver snabba säkerhetsuppdateringar.

Vi lärde oss alla om Spectre under 2018, vilket visar de allvarliga arkitektoniska problemen med moderna CPU:er. Problem med något som kallas ”spekulativ exekvering” innebar att program kunde undkomma standardsäkerhetsrestriktioner och läsa säkra minnesområden. Fixar till Spectre krävde CPU-mikrokoduppdateringar för att fungera korrekt. Det betyder att PC-tillverkare var tvungna att uppdatera alla sina bärbara och stationära datorer – och moderkortstillverkare var tvungna att uppdatera alla sina moderkort – med ny UEFI-firmware som innehåller den uppdaterade mikrokoden. Din dator är inte tillräckligt skyddad mot Spectre om du inte har installerat en UEFI-firmwareuppdatering. AMD släppte även mikrokoduppdateringar för att skydda system med AMD-processorer från Spectre-attacker, så det här är inte bara en Intel-grej.

Intels Management Engine har sett några säkerhetsbuggar som antingen kan låta angripare med lokal åtkomst till datorn knäcka Management Engine-programvaran eller låta en angripare med fjärråtkomst orsaka problem. Lyckligtvis påverkade fjärrangreppen bara företag som hade aktiverat Intel Active Management Technology (AMT), så genomsnittliga konsumenter påverkades inte.

Det här är bara några exempel. Forskare har också visat att det är möjligt att missbruka UEFI-firmwaren på vissa datorer genom att använda den för att få djup åtkomst till systemet. De har till och med demonstrerat ihållande ransomware som fick tillgång till en dators UEFI-firmware och sprang därifrån.

Branschen borde uppdatera varje dators UEFI-firmware precis som alla andra program för att skydda mot dessa problem och liknande brister i framtiden.

Hur uppdateringsprocessen har varit trasig i flera år

BIOS-uppdateringsprocessen har varit en enda röra – sedan långt före UEFI. Traditionellt levererade datorer med den gamla skolans BIOS, och mindre kunde gå fel. PC-tillverkare kan skicka några BIOS-uppdateringar för att åtgärda mindre problem, men det vanliga rådet var att undvika att installera dem om din dator fungerade korrekt. Du var ofta tvungen att starta upp från en startbar DOS-enhet för att flasha BIOS-uppdateringen, och alla hörde historier om BIOS-uppdateringar som misslyckades och att datorer gjorde dem ostartbara.

Saker har förändrats. UEFI-firmware gör mycket mer, och Intel har släppt flera stora uppdateringar av saker som CPU-mikrokod och Intel ME under de senaste åren. Närhelst Intel släpper en sådan uppdatering kan allt Intel göra är att säga ”fråga din datortillverkare.” Din datortillverkare – eller moderkortstillverkare, om du byggde din egen dator – måste ta koden från Intel och integrera den i en ny UEFI-firmwareversion. De måste sedan testa den fasta programvaran. Åh, och varje tillverkare måste upprepa denna process för varje enskild dator de säljer, eftersom de alla har olika UEFI-firmware. Det är den typen av manuellt arbete som gjorde Android-telefoner så svåra att uppdatera tidigare.

I praktiken innebär det att det ofta tar lång tid – många månader – att få kritiska säkerhetsuppdateringar som måste levereras via UEFI. Det betyder att tillverkare kan rycka på axlarna och vägra att uppdatera datorer som bara är några år gamla. Och även när tillverkare släpper uppdateringar, är dessa uppdateringar ofta begravda på tillverkarens supportwebbplats. De flesta PC-användare kommer aldrig att upptäcka att UEFI-firmwareuppdateringarna existerar och installera dem, så dessa buggar lever kvar i befintliga datorer under lång tid. Och vissa tillverkare låter dig fortfarande installera firmwareuppdateringar genom att starta upp i DOS först – bara för att göra det extra komplicerat.

Vad folk gör åt det

Det är en enda röra. Vi behöver en strömlinjeformad process där tillverkare lättare kan skapa nya UEFI-firmwareuppdateringar. Vi behöver också en bättre process för att släppa dessa uppdateringar, så att användare kan få dem installerade automatiskt på sina datorer. Just nu är processen långsam och manuell – den ska vara snabb och automatisk.

Det är vad Microsoft försöker göra med Project Mu. Här är hur officiell dokumentation förklarar det:

Mu är byggd kring idén att leverans och underhåll av en UEFI-produkt är ett pågående samarbete mellan många partners. Alltför länge har industrin byggt produkter med hjälp av en ”forking”-modell kombinerat med kopiera/klistra in/byta namn och för varje ny produkt växer underhållsbördan till en sådan nivå att uppdateringar är nästan omöjliga på grund av kostnad och risk.

Project Mu handlar om att hjälpa PC-tillverkare att skapa och testa UEFI-uppdateringar snabbare genom att effektivisera UEFI-utvecklingsprocessen och hjälpa alla att arbeta tillsammans. Förhoppningsvis är detta den saknade biten, eftersom Microsoft redan har gjort det lättare för PC-tillverkare att skicka sina UEFI-firmwareuppdateringar till användarna automatiskt.

Specifikt låter Microsoft PC-tillverkare utfärda firmwareuppdateringar genom Windows Update och har tillhandahållit dokumentation om detta sedan åtminstone 2017. Microsoft meddelade också Uppdatering av komponentfirmware; en öppen källkodsmodell som tillverkare kan använda för att uppdatera UEFI och annan firmware, redan i oktober 2018. Om PC-tillverkarna går ombord på detta kan de leverera firmwareuppdateringar till alla sina användare mycket snabbt.

Det här är inte bara en Windows-grej heller. På Linux försöker utvecklare göra det lättare för PC-tillverkare att utfärda UEFI-uppdateringar med LVFS, Linux-leverantörens firmwaretjänst. PC-leverantörer kan skicka in sina uppdateringar och de kommer att dyka upp för nedladdning i GNOME-programvaran, som används på Ubuntu och många andra Linux-distributioner. Denna ansträngning går tillbaka till 2015. PC-tillverkare gillar Dell och Lenovo deltar.

Dessa lösningar för Windows och Linux påverkar också mer än bara UEFI-uppdateringar. Hårdvarutillverkare skulle kunna använda dem för att uppdatera allt från USB-mus-firmware till solid-state drive-firmware i framtiden.

Som SwiftOnSecurity uttryck det när man pratar om problemen med solid-state drive firmware och kryptering, firmware uppdateringar kan vara tillförlitliga. Vi måste förvänta oss bättre av hårdvarutillverkare.

Firmwareuppdateringar kan vara tillförlitliga. Jag har initierat minst 3 000 Dell BIOS-uppdateringar med bara ett fel, och den gamla datorn var redan i drift för att ha misslyckats.

Tänk om vad du tror är omöjligt. Firmwareservice är inte omöjligt eller riskabelt. Det kräver att människor kräver bättre.

— SwiftOnSecurity (@SwiftOnSecurity) 6 november 2018

Bildkredit: Intel, Natascha Eibl, kubais/Shutterstock.com.