核心 DMA 保護

適用於

  • Windows 10
  • Windows 11

在 Windows 10 1803 版中,Microsoft 導入了稱為 Kernel DMA Protection 的新功能,可使用連線到外部可存取 PCIe 埠的 PCI 熱插頭裝置,保護電腦免于受到磁片磁碟機式直接記憶體存取 (DMA) 攻擊,例如,使用連線到外部可存取 PCIe 埠的 PCI 熱插頭裝置 (例如,™ 3 埠和 CFexpress) 。 在 Windows 10 1903 版中,Microsoft 擴充了核心 DMA 保護支援,以涵蓋內部 PCIe 埠 (例如 M.2 位置)

依 DMA 驅動攻擊可能會導致洩漏位於電腦上的敏感性資訊,或甚至插入惡意程式碼,讓攻擊者略過鎖定畫面或從遠端控制電腦。

這項功能無法透過 1394/FireWire、PCMCIA、CardBus、ExpressCard 等來防範 DMA 攻擊。

背景

PCI 裝置具備 DMA 功能,可讓它們隨時讀取和寫入系統記憶體,而不需要在這些作業中與系統處理器互動。 DMA 功能可讓 PCI 裝置成為現今效能最高的裝置。 這些裝置過去只存在於電腦底座內,在主機板上以卡片或銷售站連線。 若要存取這些裝置,使用者必須關閉系統的電源,並解譯底座。

目前,熱插頭 PCIe 埠已不再是這種情況 (例如,大寫™和 CFexpress) 。

Hot plug PCIe 埠,例如,有™一些功能可供電腦使用的新式電腦。 它可讓使用者將新的外部周邊類別,例如圖形卡或其他 PCI 裝置,附加至其具有與 USB 完全相同的熱插頭體驗的電腦。 將 PCI 熱插頭埠設為外部且易於存取,可讓電腦容易受到由 DMA 驅動的攻擊。

「由 DMA 驅動」攻擊是當系統擁有者不存在且通常花費不到 10 分鐘時所發生的攻擊,使用簡單到中等的攻擊工具 (不需要電腦反組解碼的經濟實惠、現成的硬體和軟體) 。 簡單的範例是電腦擁有者離開電腦進行快速咖啡休息,而在中斷時,攻擊者會介入、插入類似 USB 的裝置,並離開電腦上的所有秘密,或插入惡意程式碼,讓他們能夠從遠端完全控制電腦。

Windows如何防範 DMA 磁片磁碟機式攻擊

Windows利用系統輸入/輸出記憶體管理單元 (IOMMU) 來封鎖外部周邊啟動和執行 DMA,除非這些周邊的驅動程式支援記憶體隔離 (例如 DMA 重新對應) 。 具有 DMA 重新對應相容驅動 程式的周邊將會自動列舉、啟動,並允許對其指派的記憶體區域執行 DMA。

根據預設,具有 DMA 重新對應不相容驅動程式的周邊將會遭到封鎖,無法啟動和執行 DMA,直到授權的使用者登入系統或解除鎖定畫面為止。 IT 系統管理員可以使用 DmaGuard MDM原則,修改套用至具有 DMA 重新對應不相容驅動程式之裝置的預設行為。

使用者體驗

核心 DMA 保護使用者體驗

根據預設,具有 DMA 重新對應相容設備磁碟機的週邊設備將會自動列舉並啟動。 如果在授權的使用者登入之前插入周邊,或螢幕鎖定時,具有 DMA 重新對應不相容驅動程式的周邊將會遭到封鎖而無法啟動。 一旦系統解除鎖定,作業系統就會啟動周邊驅動程式,而周邊設備會繼續正常運作,直到系統重新開機,或將周邊解除封鎖為止。 如果使用者鎖定螢幕或登出系統,周邊會繼續正常運作。

系統相容性

核心 DMA 保護需要新的 UEFI 韌體支援。 這項支援只能在新推出的 Intel 型系統上提供,Windows 10版本 1803 (並非所有系統) 。 不需要虛擬化型安全性 (VBS) 。

若要查看系統是否支援 Kernel DMA Protection,請檢查 系統資訊 傳統型應用程式 (MSINFO32) 。 Windows 10 1803 版之前發行的系統不支援核心 DMA 保護,但可以利用BitLocker因應措施中所述的其他 DMA 攻擊防護功能。

注意

核心 DMA 保護與其他 BitLocker DMA 攻擊的因應措施不相容。 如果系統支援核心 DMA 保護,建議您停用 BitLocker DMA 攻擊的因應措施。 核心 DMA 保護可透過 BitLocker DMA 攻擊的因應措施為系統提供更高的安全性列,同時維持外部週邊設備的可用性。

如何檢查核心 DMA 保護是否已啟用

執行Windows 10版本 1803 且支援 Kernel DMA Protection 的系統,確實是由作業系統自動啟用此安全性功能,而不需要使用者或 IT 系統管理員設定。

使用Windows 安全性應用程式

從 Windows 10 1809 版開始,您可以使用 Windows 安全性 應用程式來檢查是否已啟用 Kernel DMA Protection。 按一下 [開始 > 設定 > ][更新&安全 > 性Windows 安全性 > [開啟Windows 安全性 > 裝置安全 > 性核心隔離詳細資料 > ][儲存體存取保護]

Windows 安全性中的核心 DMA 保護

使用系統資訊

  1. 在命令提示字元或Windows搜尋列中啟動MSINFO32.exe。

  2. 檢查 Kernel DMA Protection的值。

    系統資訊中的核心 DMA 保護。

  3. 如果 Kernel DMA Protection 的目前狀態為 OFF,且 [Hyper-V - 在韌體中啟用虛擬化 ] 為 [否]:

    • 重新開機至 BIOS 設定
    • 開啟 Intel 虛擬化技術。
    • 開啟 Intel Virtualization Technology for I/O (VT-d) 。 在 Windows 10 1803 版中,僅支援 Intel VT-d。 其他平臺可以使用 BitLocker因應措施中所述的 DMA 攻擊防護功能。
    • 將系統重新開機至 Windows。

    注意

    Hyper-V - 偵測到 Hypervisor 時,無法在韌體中啟用虛擬化。不會顯示 Hyper-V 所需的功能。 隨即顯示。 這表示 [韌體中啟用的 Hyper-V - 虛擬化] 設定為 [是],並啟用Hyper-V Windows功能。 需要在韌體 (IOMMU) 中啟用 Hyper-V 虛擬化,才能啟用 核心 DMA 保護,即使韌體具有 KERnel DMA Protection (OEM 的記憶體訪問保護) 中所述的「ACPI 核心 DMA 保護指標」旗標。

  4. 如果 Kernel DMA Protection 的狀態維持為 [關閉],則系統不支援這項功能。

    對於不支援 Kernel DMA Protection 的系統,請參閱BitLocker 因應措施或Microsoft™ Windows ® 10 作業系統上的安全性,以取得其他 DMA 保護方法。

常見問題集

市場內系統是否支援適用于Bolterbolt™ 3 的核心 DMA 保護?

在升級至 Windows 10 1803 版之後,以 Windows 10 1709 版或更早版本發行的市場內系統將不支援適用于Bolbolt™ 3 的核心 DMA 保護,因為這項功能需要 BIOS/平臺韌體變更,並保證無法回溯到先前發行的裝置。 針對這些系統,請參閱 Microsoft Windows 10 作業系統上的BitLocker 因應措施或™ 3 和安全性,®以取得其他 DMA 保護方法。

核心 DMA 保護是否可防止開機期間的磁片磁碟機式 DMA 攻擊?

否,內核 DMA 保護只會在載入作業系統之後,防止受到磁片磁碟機的 DMA 攻擊。 系統韌體/BIOS 有責任在開機期間透過Boltbolt™ 3 埠來防範攻擊。

如何檢查特定驅動程式是否支援 DMA 重新對應?

特定設備磁碟機支援 DMA 重新對應,平臺上的所有裝置和驅動程式並不普遍支援。 若要檢查特定驅動程式是否加入宣告 DMA 重新對應,請在 裝置管理員* 中裝置的 [詳細資料] 索引標籤中,檢查對應至 [DMA 重新對應原則] 屬性的值。 值為 0 或 1 表示設備磁碟機不支援 DMA 重新對應。 值為 2 表示設備磁碟機支援 DMA 重新對應。 如果屬性無法使用,則設備磁碟機不會設定原則 (也就是,設備磁碟機不支援 DMA 重新對應) 。 檢查您要測試之裝置的驅動程式實例。 某些驅動程式可能會有不同的值,視裝置在內部與外部) (位置而定。

使用者對核心 DMA 保護的體驗

*針對 Windows 10 1803 和 1809 版,裝置管理員中的 屬性欄位會使用 GUID,如下圖所示。

使用者對於核心 DMA 保護的體驗

當 PCI 或Bolt™ 3 週邊設備的驅動程式不支援 DMA 重新對應時?

如果週邊設備確實有 Windows 所提供的類別驅動程式,請在您的系統上使用這些驅動程式。 如果您的周邊沒有Windows提供的類別驅動程式,請連絡周邊廠商/驅動程式廠商以更新驅動程式以支援DMA 重新對應

我的系統核心 DMA 保護已關閉。 是否可以開啟特定裝置的 DMA 重新對應?

是。 特定裝置的 DMA 重新對應可以與 Kernel DMA Protection 獨立開啟。 例如,如果驅動程式加入宣告,且已開啟適用于導向 I/O) 的 VT-d (Virtualization Technology,則即使已關閉 Kernel DMA Protection,仍會為裝置驅動程式啟用 DMA 重新對應。

核心 DMA 保護是一項原則,可根據裝置的重新對應狀態和功能,允許或封鎖裝置執行 DMA。

Microsoft 驅動程式是否支援 DMA 重新對應?

在 Windows 10 1803 及更新版本中,適用于 USB XHCI 的 Microsoft 收件匣驅動程式 (3.x) 控制器、儲存體 AHCI/SATA 控制器,以及 儲存體 NVMe 控制器支援 DMA 重新對應。

非 PCI 裝置的驅動程式是否需要與 DMA 重新對應相容?

否。 非 PCI 周邊裝置,例如 USB 裝置,不會執行 DMA,因此驅動程式不需要與 DMA 重新對應相容。

企業如何啟用外部裝置列舉原則?

外部裝置列舉原則會控制是否要列舉與 DMA 重新對應不相容的外部周邊。 一律會列舉與 DMA 重新對應相容的周邊。 只有在使用者登入 (預設) 之後,才可以封鎖、允許或允許的周邊設備。

您可以使用下列方式來啟用原則:

  • 群組原則:外部裝置的系統管理範本\系統\核心 DMA 保護\列舉原則與核心 DMA 保護不相容
  • 行動裝置管理 (MDM) :DmaGuard 原則

相關主題