Sissejuhatus
Microsofti teavitati Haavatavusest Windowsi käivitushalduriga, mis võimaldab ründajal secure Bootist mööduda. Käivitushalduri probleem lahendati ja anti välja turbevärskendusena. Ülejäänud nõrkus on see, et administraatoriõigustega ründaja või füüsiline juurdepääs seadmele saab käivitushalduri tagasi versioonile ilma turbeparanduseta. BlackLotuse ründevara kasutab seda tagasipööramise nõrkust CVE-2023-24932 kirjeldatud turvalisest käivitamisest möödumiseks. Selle probleemi lahendamiseks tühistame haavatavad käivitushaldurid.
Suure hulga käivitushaldurite tõttu, mis tuleb blokeerida, kasutame alternatiivset viisi käivitushaldurite blokeerimiseks. See mõjutab mitte-Windowsi operatsioonisüsteeme, kuna nendes süsteemides tuleb teha parandus, et takistada Windowsi käivitushaldurite kasutamist ründevektorina mitte-Windowsi operatsioonisüsteemides.
Täiendav teave
Üks meetod, kuidas blokeerida haavatavate EFI rakenduste kahendfailide laadimine püsivara poolt, on lisada haavatavate rakenduste räsipildid UEFI keelatud rakenduste loendisse (DBX). DBX-loend talletatakse seadmete püsivara hallatud välguga. Selle blokeerimismeetodi piirang on piiratud püsivara välkmälu, mis on saadaval DBX-i talletamiseks. Selle piirangu tõttu ja suure hulga käivitushaldurite tõttu, mis tuleb blokeerida (Windowsi käivitushaldurid viimase 10 aasta jooksul), ei ole selle probleemi jaoks täielikult DBX-ile tuginemine võimalik.
Selle probleemi jaoks valisime hübriidmeetodi haavatavate käivitushaldurite blokeerimiseks. DBX-ile lisatakse ainult mõned Windowsi varasemates versioonides välja antud käivitushaldurid. Windows 10 ja uuemate versioonide puhul kasutatakse Windows Defender rakendusekontrolli (WDAC) poliitikat, mis blokeerib haavatavad Windowsi käivitushaldurid. Kui poliitika rakendatakse Windowsi süsteemile, lukustab käivitushaldur poliitika süsteemi, lisades UEFI püsivarale muutuja. Windowsi algkäivitushaldurid järgivad poliitikat ja UEFI-liidese lukustust. Kui UEFI-liidese lukk on paigas ja poliitika on eemaldatud, ei käivitu Windowsi käivitushaldur. Kui poliitika on paigas, ei käivitu käivitushaldur, kui poliitika on selle blokeerinud.
Juhised haavatavate Windowsi käivitushaldurite blokeerimiseks
MÄRKUS Kasutajatele tuleks anda võimalus rakendada muutujat, et nad saaksid kontrollida, millal nad on kaitstud.
UEFI-liidese luku lubamisel lakkab olemasolev algkäivitatav Windowsi meedium algkäivitamast, kuni meediumi värskendatakse Windowsi värskendustega, mis on välja antud 9. mail 2023 või hiljem. Juhised meediumi värskendamiseks leiate artiklist KB5025885: CVE-2023-24932 seotud Turbekäivitushalduri tühistamiste haldamine Windowsi käivitushalduri tühistuste korral.
-
Secure Booti toega süsteemide puhul, mis käivitavad ainult mitte-Windowsi operatsioonisüsteeme
Süsteemide puhul, mis käivitavad ainult mitte-Windowsi operatsioonisüsteeme ja ei käivita Windowsi kunagi, saab neid leevendusi süsteemile kohe rakendada. -
Kahekordne algkäivitamine Windowsi ja muu operatsioonisüsteemi
jaoks Windowsi käivitavate süsteemide puhul tuleks windowsiväliseid leevendusi rakendada alles pärast Seda, kui Windowsi operatsioonisüsteem on värskendatud Windowsi värskendustele, mis anti välja 9. mail 2023 või hiljem.
UEFI-liidese luku loomine
UEFI-liidese lukustus sisaldab kahte muutujat, mis on vajalikud Windowsi käivitushalduri tagasipööramisrünnete vältimiseks. Need muutujad on järgmised.
-
SKU SiPolicy atribuudid
Sellel poliitikal on järgmised atribuudid.
-
Poliitikatüübi ID:
{976d12c8-cb9f-4730-be52-54600843238e}
-
Faili "SkuSiPolicy.p7b" failinimi
-
EFI\Microsoft\Booti konkreetne füüsiline asukoht
Sarnaselt kõigi allkirjastatud WDAC-poliitikatega on allkirjastatud SKU poliitika kaitstud kahe UEFI muutujaga:
-
SKU_POLICY_VERSION_NAME: "SkuSiPolicyVersion"
-
SKU_POLICY_UPDATE_POLICY_SIGNERS_NAME: "SkuSiPolicyUpdateSigners"
-
-
SKU SiPolicy muutujad
See poliitika kasutab kahte EFI nimeruumis/hankijas talletatud UEFI-muutujat
. GUID(SECUREBOOT_EFI_NAMESPACE_GUID):#define SECUREBOOT_EFI_NAMESPACE_GUID \
{0x77fa9abd, 0x0359, 0x4d32, \
{0xbd, 0x60, 0x28, 0xf4, 0xe7, 0x8f, 0x78, 0x4b}};
-
SkuSiPolicyVersion
-
on käitusajal tüübiga ULONGLONG/UInt64
-
on määratletud <VersionEx>2.0.0.2</VersionEx> poliitika XML-is kujul (MAJOR. VÄIKESED. LÄBIVAATAMINE. BUILDNUMBER)
-
See tõlgitakse ULONGLONG-i
((põhi##ULL << 48) + (vahe##ULL << 32) + (revision##ULL << 16) + järgunumber)
Igal versiooninumbril on 16 bitti, seega kokku 64 bitti.
-
Uuema poliitika versioon peab olema võrdne või suurem kui UEFI muutujas käitusajal talletatud versioon.
-
Kirjeldus: määrake kooditervikluse algkäivituspoliitika versioon.
-
Atribuudid:
(EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS)
-
Nimeruumi GUID:
77fa9abd-0359-4d32-bd60-28f4e78f784b
-
Andmetüüp:
uint8_t[8]
-
Andmete:
uint8_t SkuSiPolicyVersion[8] = { 0x2\0x0\0x0\0x0\0x0\0x0\0x2\0x0 };
-
-
SkuSiPolicyUpdateSigners
-
Peab olema Windowsi allkirjastaja.
-
Kirjeldus: poliitika allkirjastaja teave.
-
Atribuudid:
(EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS)
-
Nimeruumi GUID:
77fa9abd-0359-4d32-bd60-28f4e78f784bd
-
Andmetüüp:
uint8_t[131]
-
Andmete:
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, 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};
-
-
DBX-i rakendamine
Oleme selle probleemi jaoks faili DbxUpdate.bin UEFI.org välja andnud. Need räsimärgid hõlmavad kõiki tühistatud Windowsi käivitushaldureid, mis on välja antud Windows 8 ja algse Windows 10 vahel, mis ei järgi kooditervikluse poliitikat.
On äärmiselt oluline, et neid rakendatakse ettevaatlikult, sest nad võivad rikkuda kahe algkäivituse süsteemi, mis kasutab mitut operatsioonisüsteemi ja ühte neist käivitushalduritest. Lühiajaliselt soovitame, et mis tahes süsteemi puhul rakendataks need räsiarvud valikuliselt.