Secure Boot na več kot 200 napravah neučinkovit
Matej Huš
27. jul 2024 ob 13:23:50
Moderni sistemi že dobro desetletje uporabljajo Secure Boot, ki počne točno to. Ob zagonu zagotavlja, da se izvaja le varna koda, ki jo označuje digitalni podpis. Gre za zaščito pred napadi, ko so bili še pred dvema desetletjema teoretični, nato pa so se pojavili v praksi. Škodljiva programska oprema, ki bi se ugnezdila v UEFI oziroma firmware, ima lahko popoln nadzor nad sistemom in ker se zažene še pred sistemom, v praksi ni vidna ali enostavno izbrisljiva. Secure Boot vsaj v teoriji pred tem ščiti.
V četrtek zvečer pa so raziskovalci iz podjetja Binarly ugotovili, da je na več kot 200 različnih modelih računalnikov proizvajalcev Acer, Dell, Gigabyte, Intel in Supermicro sistem zatajil. Kriptografski ključ, ki ga uporabljajo za preverjanje istovetnosti kode, je namreč kompromitiran. In to že dve leti.
Leta 2022 se je na Githubu (na naslovu, ki ni več aktiven https://github.com/raywu-aaeon/Ryzen200... ) znašel tudi zasebni ključ, zgolj navidezno zaščiten s štirimestnim geslom, ki ga je sprejemal Secure Boot. Ta ključ je omogočal podpis škodljive programske opreme, ki bi jo potem SecureBoot vseeno zagnal. To je velik problem.
Kasneje so ugotovili, da je sumljivih ključev še več. V več kot 300 napravah so odkrili tudi ključe, ki so zgolj preizkusni in nikoli niso bili namenjeni uporabi v produkcijskih okoljih. V 21 ključih se odkrili oznako O NOT SHIP ali DO NOT TRUST, ker je šlo za testne ključe. Vseeno so se ti nekako znašli v produkcijskih okoljih v napravah proizvajalcev Aopen, Foremelife, Fujitsu, HP, Lenovo in Supermicro.
Na vseh prizadetih napravah - seznam ima več kot 500 vnosov - je sedaj Secure Boot neefektiven. Virusi, ki okužijo UEFI, pa niso le teorija, temveč obstajajo. S ključi so torej proizvajalci ravnali površno, zato imajo sedaj težavo. Posodobitev UEFI je možna, v Secure Boot pa lahko kompromitirane ključe dodajo na seznam preklicanih. Nihče pa ne, koliko sistemov se bo zaradi tega zrušilo. Velika verjetnost je, da za večino naprav popravkov sploh ne bo, ker niso več aktivno podprte.
Svoje ključe lahko preverite z ukazom [System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI PK).bytes) -match "DO NOT TRUST|DO NOT SHIP" v powershellu v Windows.