Microsofts Projekt Mu: Firmware som en tjänst
Microsoft har nyligen introducerat Projekt Mu, ett initiativ som syftar till att erbjuda ”firmware som en tjänst” för kompatibel maskinvara. Detta är en viktig händelse som alla PC-tillverkare borde vara uppmärksamma på. Datorer behöver regelbundna säkerhetsuppdateringar för sin UEFI-firmware, något som PC-tillverkarna historiskt sett har hanterat bristfälligt.
Vad är UEFI-firmware?
Moderna datorer använder UEFI-firmware istället för det äldre BIOS-systemet. UEFI-firmware är den inledande programvaran som aktiveras när du startar datorn. Denna firmware utför grundläggande hårdvarutestning och initialisering, konfigurerar systeminställningar på en låg nivå och startar sedan operativsystemet från datorns lagringsenhet eller en annan startkälla.
UEFI är mer avancerat än det tidigare BIOS-systemet. Till exempel har datorer med Intel-processorer en funktion som kallas Intel Management Engine, vilket är ett litet operativsystem som fungerar separat från det huvudsakliga operativsystemet som Windows, Linux eller liknande. Företagsnätverk kan utnyttja Intel ME för att fjärrstyra datorer.
UEFI hanterar också processor ”mikrokod”, vilket kan ses som firmware för processorn. Vid uppstart laddas mikrokoden från UEFI-firmware. Denna mikrokod fungerar som en tolk som omvandlar programvaruinstruktioner till de hårdvaruinstruktioner som processorn utför.
Behovet av säkerhetsuppdateringar för UEFI-firmware
Den senaste tidens händelser har tydligt visat varför snabba säkerhetsuppdateringar för UEFI-firmware är avgörande.
Spectre-säkerhetsbristen från 2018 avslöjade allvarliga arkitektoniska problem i moderna processorer. Problem i den så kallade ”spekulativa exekveringen” gjorde att program kunde kringgå säkerhetsåtgärder och få tillgång till skyddade minnesområden. För att korrigera Spectre-bristen krävdes uppdateringar av processorns mikrokod, vilket innebar att PC-tillverkare och moderkortstillverkare var tvungna att distribuera uppdaterad UEFI-firmware. Om dessa uppdateringar inte installeras är datorn sårbar. AMD har också publicerat mikrokoduppdateringar för att skydda AMD-processorer från Spectre, vilket visar att det inte bara är ett Intel-problem.
Intels Management Engine har också uppvisat säkerhetsbrister. Dessa kan antingen ge lokala användare möjlighet att kompromettera Management Engine eller låta fjärrangripare orsaka problem. Lyckligtvis drabbades endast företag som aktiverat Intel Active Management Technology (AMT) av de potentiella fjärrangreppen.
Detta är bara några av de problem som uppstått. Forskare har visat att det går att utnyttja UEFI-firmware för att få djupare systemåtkomst. Det har också demonstrerats utpressningsprogram som infekterar datorns UEFI-firmware och fungerar därifrån.
För att skydda mot dessa och framtida brister är det nödvändigt att hantera uppdateringar av datorers UEFI-firmware på samma sätt som andra programuppdateringar.
En långvarig brist i uppdateringsprocessen
Uppdateringsprocessen för BIOS har varit oorganiserad under lång tid, även före UEFI. Traditionellt, när datorer använde BIOS, fanns det mindre risk för problem. PC-tillverkare kunde ibland släppa BIOS-uppdateringar för att lösa mindre problem, men rådet var ofta att undvika uppdateringar om datorn fungerade korrekt. Ofta krävdes uppstart från en DOS-enhet för att installera en BIOS-uppdatering, och det fanns många berättelser om misslyckade uppdateringar som gjorde datorer obrukbara.
Situationen har förändrats. UEFI-firmware hanterar fler funktioner, och Intel har lanserat flera uppdateringar för exempelvis processorns mikrokod och Intel ME. När Intel publicerar en uppdatering brukar de hänvisa till datortillverkaren. Tillverkaren, eller moderkortstillverkaren i de fall man byggt sin egen dator, måste då integrera koden i en ny UEFI-firmwareversion och därefter testa den. Dessutom måste denna process upprepas för varje enskild dator, då alla har unik UEFI-firmware. Denna manuella hantering liknar de utmaningar som tidigare försvårade uppdateringar av Android-telefoner.
Detta innebär att det kan ta lång tid, ofta flera månader, innan viktiga säkerhetsuppdateringar som ska distribueras via UEFI når användarna. Det finns även tillverkare som vägrar uppdatera datorer som bara är några år gamla. Även när uppdateringar görs tillgängliga är de ofta svåra att hitta på tillverkarnas supportwebbplatser. Majoriteten av användarna är inte medvetna om att dessa uppdateringar existerar och installerar dem inte, vilket gör att säkerhetsbrister består under lång tid. Vissa tillverkare kräver fortfarande att användare startar upp i DOS för att genomföra uppdateringar, vilket gör processen ännu mer komplicerad.
Åtgärder för att förbättra situationen
Det finns ett tydligt behov av en mer effektiv process för att skapa nya UEFI-firmwareuppdateringar. Det behövs även ett bättre system för att distribuera dessa uppdateringar så att de automatiskt installeras på användarnas datorer. Idag är processen långsam och manuell, men den bör vara snabb och automatiserad.
Det är här Microsofts Project Mu kommer in. Som den officiella dokumentationen uttrycker det:
Mu är byggt på idén att utvecklingen och underhållet av en UEFI-produkt är ett samarbete mellan flera aktörer. Under alltför lång tid har branschen använt en ’forking’-modell med kopiera/klistra in/ändra namn-metoder, vilket innebär att underhållsbehovet ökar med varje ny produkt och resulterar i att uppdateringar blir näst intill omöjliga på grund av kostnader och risker.
Projekt Mu syftar till att hjälpa PC-tillverkare att snabbare skapa och testa UEFI-uppdateringar genom att effektivisera UEFI-utvecklingsprocessen och främja samarbete. Förhoppningsvis kan detta åtgärda bristen, eftersom Microsoft redan har gjort det enklare för PC-tillverkare att automatiskt skicka UEFI-firmwareuppdateringar till sina användare.
Microsoft ger specifikt PC-tillverkare möjlighet att distribuera firmwareuppdateringar via Windows Update och har tillhandahållit dokumentation om detta sedan minst 2017. Microsoft presenterade också Component Firmware Update, en öppen källkodsmodell för uppdatering av UEFI och annan firmware, redan i oktober 2018. Om PC-tillverkare väljer att använda dessa metoder kan de snabbt leverera firmwareuppdateringar till sina användare.
Dessa initiativ påverkar inte bara Windows. Inom Linux försöker utvecklare underlätta för PC-tillverkare att distribuera UEFI-uppdateringar med hjälp av LVFS, Linux Vendor Firmware Service. PC-leverantörer kan skicka in sina uppdateringar som sedan visas i GNOME Software, vilket används i Ubuntu och många andra Linux-distributioner. Detta arbete har pågått sedan 2015, och flera PC-tillverkare, som Dell och Lenovo, deltar aktivt.
Dessa lösningar för både Windows och Linux kan användas för mer än bara UEFI-uppdateringar. I framtiden skulle maskinvarutillverkare kunna använda dem för att uppdatera allt från firmware för USB-möss till SSD-enheter.
Som SwiftOnSecurity påpekar när det gäller problem med SSD-firmware och kryptering, är tillförlitliga firmwareuppdateringar möjliga. Det är rimligt att förvänta sig bättre prestanda av maskinvarutillverkare.
Firmware updates can be reliable. I’ve pushed at least 3,000 Dell BIOS updates with only one failure, and the old machine was already on its way out to have failed.
Think of what you think is impossible. Firmware service is not impossible, or risky. It requires people to demand better.
— SwiftOnSecurity (@SwiftOnSecurity) November 6, 2018
Bildkredit: Intel, Natascha Eibl, kubais/Shutterstock.com.