Úvod
Společnost Microsoft byla informována o ohrožení zabezpečení správcem spouštění systému Windows, které útočníkovi umožňuje obejít zabezpečené spouštění. Problém ve správci spouštění byl opraven a vydán jako aktualizace zabezpečení. Zbývající ohrožení zabezpečení spočívá v tom, že útočník s oprávněními správce nebo fyzickým přístupem k zařízení může vrátit správce spouštění na verzi bez opravy zabezpečení. Tuto chybu zabezpečení spočívající v vrácení zpět používá malware BlackLotus k obejití zabezpečeného spouštění popsaného v cve-2023-24932. Abychom tento problém vyřešili, odvoláme ohrožené správce spouštění.
Vzhledem k velkému počtu správců spouštění, které je potřeba blokovat, používáme alternativní způsob blokování správců spouštění. To ovlivňuje jiné operační systémy než Windows v tom, že v těchto systémech bude nutné poskytnout opravu, aby se správci spouštění Systému Windows nepoužívali jako vektor útoku na jiné operační systémy než Windows.
Další informace
Jednou z metod, jak zabránit načtení binárních souborů ohrožených aplikací EFI firmwarem, je přidat hodnoty hash ohrožených aplikací do seznamu zakázaných rozhraní UEFI (DBX). Seznam DBX je uložený ve flashovém režimu spravovaném firmwarem zařízení. Omezení této blokovací metody je omezená paměť flash firmwaru, která je k dispozici pro uložení DBX. Vzhledem k tomuto omezení a velkému počtu správců spouštění, které musí být blokovány (správci spouštění systému Windows z posledních 10 a více let), není možné se pro tento problém plně spoléhat na DBX.
Pro tento problém jsme zvolili hybridní metodu blokování ohrožených správců spouštění. Do dbX bude přidáno pouze několik správců spouštění, které byly vydány v dřívějších verzích Systému Windows. Pro Windows 10 a novější verze se použije zásada Windows Defender Application Control (WDAC), která blokuje ohrožené správce spouštění windows. Když se zásada použije na systém Windows, správce spouštění "zamkne" zásadu do systému přidáním proměnné do firmwaru rozhraní UEFI. Správci spouštění windows budou dodržovat zásady a zámek UEFI. Pokud je zámek rozhraní UEFI na místě a zásada byla odebrána, správce spouštění systému Windows se nespustí. Pokud je zásada zavedená, správce spouštění se nespustí, pokud ji zásada zablokovala.
Pokyny k blokování ohrožených správců spouštění Windows
POZNÁMKA Uživatelé by měli mít možnost použít proměnnou, aby mohli určit, kdy budou chráněni.
Povolení zámku rozhraní UEFI způsobí, že se stávající spouštěcí média Windows přestanou spouštět, dokud se médium neaktualizuje aktualizacemi Systému Windows vydanými 9. května 2023 nebo později. Pokyny k aktualizaci médií najdete v článku KB5025885: Správa odvolání Správce spouštění systému Windows u změn zabezpečeného spouštění spojených s CVE-2023-24932.
-
Pro systémy s podporou zabezpečeného spouštění, které pouze spouští jiné operační systémy
než Windows U systémů, které spouští jenom jiné operační systémy než Windows a nikdy nespustí Windows, lze tato zmírnění rizik na systém použít okamžitě. -
Pro systémy s duálním spouštěním Systému Windows a jiného operačního systému
U systémů, které spouští Windows, by se omezení rizik jiných systémů měla použít až po aktualizaci operačního systému Windows na aktualizace Systému Windows vydané 9. května 2023 nebo později.
Vytvoření zámku UEFI
Zámek rozhraní UEFI má dvě proměnné, které jsou nutné k tomu, aby se zabránilo útokům vrácení zpět ve správci spouštění Systému Windows. Tyto proměnné jsou následující:
-
Atributy SKU SiPolicy
Tato zásada má následující atributy:
-
ID typu zásady:
{976d12c8-cb9f-4730-be52-54600843238e}
-
Konkrétní název souboru "SkuSiPolicy.p7b"
-
Konkrétní fyzické umístění EFI\Microsoft\Boot
Stejně jako všechny podepsané zásady WDAC jsou podepsané zásady skladové položky chráněné dvěma proměnnými rozhraní UEFI:
-
SKU_POLICY_VERSION_NAME: SkuSiPolicyVersion
-
SKU_POLICY_UPDATE_POLICY_SIGNERS_NAME: SkuSiPolicyUpdateSigners
-
-
Proměnné
SKU SiPolicy Tato zásada používá dvě proměnné rozhraní UEFI uložené v rámci oboru názvů nebo dodavatele
EFI. GUID(SECUREBOOT_EFI_NAMESPACE_GUID):#define SECUREBOOT_EFI_NAMESPACE_GUID \
{0x77fa9abd, 0x0359, 0x4d32, \
{0xbd, 0x60, 0x28, 0xf4, 0xe7, 0x8f, 0x78, 0x4b}};
-
SkuSiPolicyVersion
-
je typu ULONGLONG/UInt64 za běhu
-
definuje <VersionEx>2.0.0.2</VersionEx> v souboru XML zásad ve formě (MAJOR. MENŠÍ. REVIZE. ČÍSLO BUILDU)
-
To je přeloženo do ULONGLONG jako
((major##ULL << 48) + (minor##ULL << 32) + (revision##ULL << 16) + buildnumber)
Každé číslo verze má 16 bitů, takže má celkem 64 bitů.
-
Verze novější zásady musí být stejná nebo vyšší než verze uložená v proměnné UEFI za běhu.
-
Popis: Nastavte verzi zásad spouštění integrity kódu.
-
Atributy:
(EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS)
-
Identifikátor GUID oboru názvů:
77fa9abd-0359-4d32-bd60-28f4e78f784b
-
Datový typ:
uint8_t[8]
-
Dat:
uint8_t SkuSiPolicyVersion[8] = { 0x2,0x0,0x0,0x0,0x0,0x0,0x2,0x0 };
-
-
SkuSiPolicyUpdateSigners
-
Musí to být podepisující uživatel windows.
-
Popis: Informace o podepisující sadě zásad.
-
Atributy:
(EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS)
-
Identifikátor GUID oboru názvů:
77fa9abd-0359-4d32-bd60-28f4e78f784bd
-
Datový typ:
uint8_t[131]
-
Dat:
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};
-
-
Použití DBX
Vydali jsme soubor DbxUpdate.bin pro tento problém na UEFI.org. Tyto hodnoty hash zahrnují všechny odvolané správce spouštění Systému Windows vydané mezi Windows 8 a počátečním vydáním Windows 10, které nerespektují zásady integrity kódu.
Je nanejvýš důležité, aby se tyto systémy používaly s opatrností kvůli riziku, že by mohly narušit systém duálního spouštění, který používá více operačních systémů a jednoho z těchto správců spouštění. V krátkodobém horizontu doporučujeme, aby se pro každý systém tyto hodnoty hash použily volitelně.