OEM 的核心 DMA 保護 (記憶體存取保護)

核心 DMA 保護 (也稱為記憶體存取保護,是 Intel 和 AMD 平臺上支援的 Windows 10 安全核心電腦功能,從 Windows 10 版本 1803 和 Windows 10 版本 1809 開始。

透過這項功能,OS 和系統韌體可保護系統免于遭受所有支援 DMA 之裝置的惡意和非預期的直接記憶體存取 (DMA) 攻擊:

  • 在開機程式期間。
  • 針對連線到可在 OS 執行時間期間輕鬆存取內部/外部DMA 功能埠的裝置,例如 M.2 PCIe 插槽和設定™3 的惡意 DMA。
平臺需求 詳細資料
64 位元 CPU 64 位 IA 處理器僅支援核心 DMA 保護,其具有虛擬化延伸模組,包括 Intel VT-X 和 AMD-v。
IOMMU (Intel VT-D、AMD-Vi) 所有支援 DMA 的 I/O 裝置預設都必須位於啟用的 (後方,) IOMMU。 IOMMU 會根據 DMAGuard 裝置列舉原則使用封鎖/解除封鎖裝置,並針對具有相容驅動程式的裝置執行 DMA 重新對應
PCI Express 原生控制支援 核心 DMA 保護支援需要使用 _OSC ACPI 方法啟用PCI Express Native Control
開機前 DMA 保護
  • 系統韌體必須藉由實作所有支援 DMA 裝置的 IO 緩衝區預先結束BootServices () 來防止開機前的 DMA 攻擊。
  • 系統韌體必須針對所有 PCI 根埠停用匯流排主機啟用 (BME) 位,這些埠不需要在 ExitBootServices () 與作業系統啟動的設備磁碟機之間執行 DMA。
  • 在 ExitBootServices () ,IOMMU 必須由系統韌體還原為開啟電源狀態。
  • (Intel) 或 IVMD 區塊以外,裝置無法在 ExitBootServices () 之後 (AMD) 執行 DMA,直到裝置的個別 OS 驅動程式載入並啟動 PnP 為止。
    • 在 ExitBootServices () 和裝置驅動程式啟動之前,在 RMRR 區域或 IVMD 區塊之外執行 DMA 會導致 IOMMU 錯誤,而且系統錯誤檢查 (0xE6) 。
ACPI 核心 DMA 保護指標
信賴平台模組 (TPM) 2.0 TPM 可以是離散或韌體,就已足夠。 如需詳細資訊,請參閱 信賴平臺模組 (TPM) 2.0
  • 在 IOMMU (VT-D 或 AMD-Vi) 或核心 DMA 保護停用、將停用或設定為較低的安全性狀態的每個開機上,平臺 必須在 啟用 DMA 之前將EV_EFI_ACTION事件延伸至EV_EFI_ACTION事件。
  • 事件字串應為 「DMA Protection Disabled」。 平臺韌體 必須使用 事件資料的字串 「DMA Protection Disabled」 在事件記錄檔中記錄此度量。

確認Windows 10系統上的核心 DMA 保護狀態

核心 DMA 保護的狀態可以使用下列其中一種方法,在指定的系統上驗證

  1. 使用系統資訊應用程式:

    • 啟動MSINFO32.exe。
    • 核取 [系統摘要] 頁面中的 [核心 DMA 保護] 欄位。
  2. 使用Windows 安全性應用程式:

    • 從 Windows [開始] 功能表啟動Windows 安全性應用程式。

    • 按一下 [裝置安全性] 圖示。

    • 按一下 [核心隔離詳細資料]。

    • 如果啟用,「記憶體存取保護」將會列為可用的安全性功能。

      • 如果未列出「記憶體存取保護」,則不會在系統上啟用此功能。

核心 DMA 保護概觀

啟用設備磁碟機的 DMA 重新對應

DMAGuard 原則