使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

簡介

Microsoft 已留意到 Windows 開機管理程式有一個弱點,可讓攻擊者略過安全開機。 已修正開機管理程式中的問題並以安全性更新發行。 其餘的弱點是,具有系統管理權限或對裝置有實體存取權的攻擊者可以將開機管理程式復原成不含安全性修正的版本。 BlackLotus 惡意程式碼正使用此復原弱點來略過 CVE-2023-24932 所述的安全開機。 若要解決此問題,我們將撤銷易受攻擊的開機管理程式。

因為必須封鎖數量龐大的開機管理程式,因此我們使用另一種方式來封鎖開機管理程式。 這會影響到非 Windows 作業系統,必須向這些系統提供修正程式才能封鎖 Windows 開機管理程式,避免在非 Windows 作業系統上被用作攻擊媒介。

其他相關資訊

封鎖易受攻擊的 EFI 應用程式二進位檔避免遭韌體載入的其中一個方法,就是將易受攻擊應用程式的雜湊新增至 UEFI 禁止清單 (DBX)。 DBX 清單會儲存在裝置韌體管理的快閃記憶體中。 此封鎖方法的限制是可用來儲存 DBX 的有限韌體快閃記憶體。 由於這項限制以及必須封鎖的開機管理程式數量龐大 (過去 10 年以上的 Windows 開機管理程式),因此完全依賴 DBX 解決此問題是不可能的。

針對此問題,我們已選擇封鎖易受攻擊開機管理程式的混合式方法。 只有少數在舊版 Windows 中發行的開機管理程式會新增至 DBX。 對於 Windows 10 和更新版本,將會使用 Windows Defender 應用程式控制 (WDAC) 原則來封鎖易受攻擊的 Windows 開機管理程式。 將原則套用至 Windows 系統時,開機管理程式會透過新增變數至 UEFI 韌體將原則「鎖定」在系統。 Windows 開機管理程式將遵守此原則和 UEFI 鎖定。 如果 UEFI 鎖定已準備就緒且原則已遭移除,則不會啟動 Windows 開機管理程式。 如果原則已準備就緒,則開機管理程式將不會在受到原則封鎖時啟動。

封鎖易受攻擊的 Windows 開機管理程式的指導方針

注意事項 使用者應可以選擇套用變數,以便控制受保護的時機。

啟用 UEFI 鎖定會導致現有可開機的 Windows 媒體停止啟動,直到媒體更新為 2023 年 5 月 9 日或之後發行的 Windows 更新為止。 您可以在 KB5025885: 如何管理與 CVE-2023-24932 相關聯之安全開機變更的 Windows 開機管理程式撤銷 中找到更新媒體的指導方針。

  • 對於僅啟動非 Windows 作業系統啟用的安全開機

    對於只啟動非 Windows 作業系統且永遠不會啟動 Windows 的系統,這些風險降低措施可立即套用至系統。

  • 對於系統雙重開機 Windows 和其他作業系統

    對於啟動 Windows 的系統,非 Windows 風險降低措施應該只在 Windows 作業系統更新至於 2023 年 5 月 9 日或之後發佈的 Windows 更新之後套用。

建立 UEFI Lock

UEFI Lock 有兩個變數,是防止 Windows 開機管理程式中復原攻擊的必要項目。 這些變數如下所示:

  • SKU SiPolicy 屬性

    此原則具有下列屬性:

    • 原則類型識別碼:

      {976d12c8-cb9f-4730-be52-54600843238e}

    • 「SkuSiPolicy.p7b」 的特定檔案名稱

    • EFI\Microsoft\Boot 的特定實體位置

    與所有簽署的 WDAC 原則一樣,簽署的 SKU 原則受到兩個 UEFI 變數保護:

    • SKU_POLICY_VERSION_NAME: “SkuSiPolicyVersion”

    • SKU_POLICY_UPDATE_POLICY_SIGNERS_NAME: “SkuSiPolicyUpdateSigners”

  • SKU SiPolicy 變數

    此原則使用儲存在 EFI 命名空間/廠商底下的兩個 UEFI 變數
    GUID(SECUREBOOT_EFI_NAMESPACE_GUID):

    #define SECUREBOOT_EFI_NAMESPACE_GUID \

    {0x77fa9abd, 0x0359, 0x4d32, \

    {0xbd, 0x60, 0x28, 0xf4, 0xe7, 0x8f, 0x78, 0x4b}};

    • SkuSiPolicyVersion

      • 在執行階段,類型為 ULONGLONG/UInt64

      • <VersionEx>2.0.0.2</VersionEx> 原則 XML 以 (MAJOR.MINOR.REVISION.BUILDNUMBER) 的格式定義

      • 它會翻譯成 ULONGLONG 為

        ((major##ULL << 48) + (minor##ULL << 32) + (revision##ULL << 16) + buildnumber)

        每個版本號碼有 16 個位元,因此它總共有 64 個位元。

      • 較新原則的版本必須等於或大於在執行階段儲存在 UEFI 變數中的版本。

      • 描述: 設定程式碼完整性開機原則版本。

      • 屬性:

        (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS)

      • 命名空間 Guid:

        77fa9abd-0359-4d32-bd60-28f4e78f784b

      • 資料類型:

        uint8_t[8]

      • 資料:

        uint8_t SkuSiPolicyVersion[8] = { 0x2,0x0,0x0,0x0,0x0,0x0,0x2,0x0 };

    • SkuSiPolicyUpdateSigners

      • 必須是 Windows 簽署者。

      • 描述: 原則簽署者資訊。

      • 屬性:

        (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS)

      • 命名空間 Guid:

        77fa9abd-0359-4d32-bd60-28f4e78f784bd

      • 資料類型:

        uint8_t[131]

      • 資料:

        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

我們已在 UEFI.org 發佈此問題的 DbxUpdate.bin 檔案。 這些雜湊包含所有在 Windows 8 和 Windows 10 初始版本之間發行且未遵守程式碼完整性原則的已撤銷 Windows 開機管理程式。

由於它們有可能破壞使用多重作業系統的雙開機系統以及其中一個開機管理程式的危險,因此要謹慎套用這些項目。 短期內,建議您不論任何系統,都可以選擇性套用這些雜湊。

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×