Uvod
Korporacija Microsoft je upoznata sa ranjivošću koju ima Menadžer za pokretanje operativnog sistema Windows koji omogućava napadacu da zaobiđi bezbedno pokretanje. Problem u upravljaču pokretanjem je popravljen i objavljen kao bezbednosna ispravka. Preostala ranjivost je da napadač sa administratorskim privilegijama ili fizičkim pristupom uređaju može vratiti upravljača pokretanja verziji bez bezbednosne ispravke. Ovu ranjivost vraćanja koristi BlackLotus malver da bi zaobišao bezbedno pokretanje koje opisuje CVE-2023-24932. Da bismo rešili ovaj problem, opozovećemo ranjive menadžere pokretanja.
Zbog velikog broja menadžera za pokretanje koji moraju biti blokirani, koristimo alternativni način blokiranja menadžera pokretanja. Ovo utiče na operativne sisteme koji nisu Windows po tome što će na tim sistemima morati da se obezbedi popravka kako bi se upravljačima za pokretanje operativnog sistema Windows blokiralo korišćenje kao vektor napada na operativnim sistemima koji nisu windows.
Više informacija
Jedan metod blokiranja ranjivih binarija EFI aplikacija od učitavanja firmvera jeste dodavanje hešova ranjivih aplikacija na UEFI listu zabranjenih (DBX). DBX lista se skladišti na uređajima kojima upravlja firmver. Ograničenje ovog metoda blokiranja je ograničena fleš memorija firmvera dostupna za skladištenje DBX-a. Zbog ovog ograničenja i velikog broja upravljača za pokretanje koji se moraju blokirati (Windows upravljači pokretanjem u proteklih 10+ godina), oslanjanje u potpunosti na DBX za ovaj problem nije moguće.
Za ovaj problem smo odabrali hibridni metod blokiranja ranjivih menadžera pokretanja. Samo nekoliko menadžera za pokretanje koji su objavljeni u starijim verzijama operativnog sistema Windows biće dodato u DBX. Za Windows 10 i novije verzije koristiće se smernice za kontrolu Windows zaštitnik aplikacije (WDAC) koje blokiraju ranjive upravljače windows pokretanjem. Kada se smernice primene na Windows sistem, upravljač pokretanja će "zaključati" smernice za sistem tako što će dodati promenljivu UEFI firmveru. Upravljači windows pokretanjem će poštovati smernice i UEFI zaključavanje. Ako je UEFI zaključavanje na licu mesta i smernice su uklonjene, Windows upravljač pokretanjem se neće pokrenuti. Ako su smernice na mestu, menadžer pokretanja se neće pokrenuti ako ga smernice blokiraju.
Uputstvo za blokiranje ranjivih upravljača windows pokretanjem
BELEŠKE Korisnicima treba da bude data opcija da primene promenljivu kako bi mogli da kontrolišu kada su zaštićeni.
Omogućavanje UEFI zaključavanja će dovesti do prestajanja pokretanja postojećih Windows medija koji se mogu pokrenuti dok se mediji ne ažuriraju ispravkama za Windows objavljenim 9. maja 2023. ili posle toga. Uputstvo za ažuriranje medija možete pronaći u KB5025885: Kako da upravljate opozvacima Programa Windows Boot Manager za promene bezbednog pokretanja povezane sa cve-2023-24932.
-
Za sisteme omogućene za bezbedno pokretanje koji koriste samo operativne sisteme koji nisu Windows
Za sisteme koji pokreću samo operativne sisteme koji ne koriste Windows i nikada neće pokrenuti Windows, ova umanjivanja mogu odmah da se primene na sistem. -
Za sisteme za dvostruko pokretanje operativnog sistema Windows i drugi operativni sistem
Za sisteme koji pokrećaju Windows, ukidanja koja nisu Windows trebalo bi da se primene samo kada se operativni sistem Windows ažurira na Windows ispravke objavljene 9. maja 2023. ili posle toga.
Kreiranje UEFI zaključavanja
UEFI Lock ima dve promenljive koje su neophodne za sprečavanje napada vraćanja u Windows upravljaču pokretanju. Ove promenljive su sledeće:
-
SKU SiPolicy atributi
Ove smernice imaju sledeće atribute:
-
ID tipa smernica:
{976d12c8-cb9f-4730-be52-54600843238e}
-
Određeno ime datoteke za "SkuSiPolicy.p7b"
-
Određena fizička lokacija EFI\Microsoft\Boot
Kao i sve potpisane WDAC smernice, potpisane smernice za SKU su zaštićene pomoću dve UEFI promenljive:
-
SKU_POLICY_VERSION_NAME: "SkuSiPolicyVersion"
-
SKU_POLICY_UPDATE_POLICY_SIGNERS_NAME: "SkuSiPolicyUpdateSigners"
-
-
SKU SiPolicy promenljive
Ove smernice koriste dve UEFI promenljive uskladištene u okviru prostora za ime EFI-a/dobavljača
GUID(SECUREBOOT_EFI_NAMESPACE_GUID):#define SECUREBOOT_EFI_NAMESPACE_GUID \
{0x77fa9abd, 0x0359, 0x4d32, \
{0xbd, 0x60, 0x28, 0xf4, 0xe7, 0x8f, 0x78, 0x4b}};
-
SkuSiPolicyVersion
-
je tipa ULONGLONG/UInt64 u vreme izvršavanja
-
je definisan <VersionEx>2.0.0.2</VersionEx> u okviru XML-a smernica u obliku (MAJOR). MANJI. REVIZIJE. BROJ IZDANJA)
-
Prevedeno je u ULONGLONG kao
((glavni##ULL << 48) + (pomoćni##ULL << 32) + (revizija##ULL << 16) + broj izdanja)
Svaki broj verzije ima 16 bitova, tako da ima ukupno 64 bita.
-
Verzija novije smernice mora biti jednaka ili veća od verzije uskladištene u UEFI promenljivoj tokom izvršavanja.
-
Opis: Postavljanje verzije smernica za pokretanje integriteta koda.
-
Atribute:
(EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS)
-
Guid prostora za ime:
77fa9abd-0359-4d32-bd60-28f4e78f784b
-
Tip podataka:
uint8_t[8]
-
Podataka:
uint8_t SkuSiPolicyVersion[8] = { 0x2,0x0,0x0,0x0,0x0,0x0,0x2,0x0 };
-
-
SkuSiPolicyUpdateSigners
-
Mora biti Windows potpisnik.
-
Opis: Informacije o potpisniku smernica.
-
Atribute:
(EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS)
-
Guid prostora za ime:
77fa9abd-0359-4d32-bd60-28f4e78f784bd
-
Tip podataka:
uint8_t[131]
-
Podataka:
uint8_tSkuSiPolicyUpdateSigners[131] =
{ 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x0b, 0x00, 0x00, 0x00, 0xd0, 0x91, 0x73, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
0x00, 0x00, 0x00, 0x00, 0x54, 0xa6, 0x78, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
0x00, 0x00, 0x00, 0x00, 0x5c, 0xa6, 0x78, 0x00, 0x00
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
0x00, 0x00, 0x00, 0x00, 0x64, 0xa6, 0x78, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0a, 0x2b, 0x06, 0x01,
0x04, 0x01, 0x82, 0x37, 0x0a, 0x03, 0x06, 0x00,
0x00, 0x00, 0x00};
-
-
Primena DBX datoteke
Objavili smo DbxUpdate.bin datoteku za ovaj problem UEFI.org. Ovi hešovi uključuju sve opozvane upravljače windows pokretanjem objavljene između Windows 8 i početnog izdanja programa Windows 10 koji ne poštuju smernice za integritet koda.
Od velike je važnosti da se oni primenjuju bez brige zbog rizika da mogu da raskinu sistem dvostrukog pokretanja koji koristi više operativnih sistema i jednog od ovih menadžera pokretanja. U kratkom roku, preporučujemo da se ti heši opcionalno primene za bilo koji sistem.