Kernel-DMA-Schutz (Speicherzugriffsschutz) für OEMs

Kernel-DMA-Schutz (auch als Speicherzugriffsschutz bezeichnet) ist ein Feature von Windows 10 Secured-Core-PCs, das auf Intel- und AMD-Plattformen ab Windows 10, Version 1803 und Windows 10, Version 1809 unterstützt wird.

Mit diesem Feature schützt das Betriebssystem und die Systemfirmware das System vor böswilligen und unbeabsichtigten Direct Memory Access (DMA)-Angriffen für alle DMA-fähigen Geräte:

  • Während des Bootens.
  • Während das Betriebssystem läuft, gegen böswillige DMA durch Geräte, die mit leicht zugänglichen internen/externen DMA-fähigen Ports verbunden sind, z. B. M.2-PCIe-Steckplätze und Thunderbolt™3.
Hardwareanforderungen der Plattform Details
64-Bit-CPU Kernel-DMA-Schutz wird nur von 64-Bit-IA-Prozessoren mit Virtualisierungserweiterungen unterstützt, einschließlich Intel VT-X und AMD-v.
IOMMU (Intel VT-D, AMD-Vi) Alle E/A-Geräte, die DMA-fähig sind, müssen sich hinter einem (standardmäßig) aktivierten IOMMU befinden. Die IOMMU wird zum Sperren/Entsperren von Geräten basierend auf der DMAGuard-Richtlinie zur Enumeration von Geräten verwendet und führt die DMA-Neuzuordnung für Geräte mit kompatiblen Treibern aus.
Unterstützung der nativen PCI Express-Steuerung Das Aktivieren der nativen PCI Express-Steuerung mit der _OSC ACPI-Methode ist für die Unterstützung des Kernel-DMA-Schutzes erforderlich.
Pre-Boot-DMA-Schutz
  • Die Firmware des Systems muss es vor Pre-Boot-DMA-Angriffen schützen, indem vor ExitBootServices() eine DMA-Isolation aller DMA-fähigen E/A-Puffer von Geräten ausgeführt wird.
  • Die Systemfirmware muss das Bus Master Enable(BME)-Bit für alle PCI-Stammports deaktivieren, die nicht über untergeordnete Geräte verfügen, die zum Ausführen von DMA zwischen ExitBootServices() und dem Zeitpunkt, an dem das Betriebssystem die Gerätetreiber startet, erforderlich sind.
  • Bei ExitBootServices() muss die IOMMU durch die Systemfirmware wieder in den Power ON-Zustand gebracht werden.
  • Kein Gerät darf nach ExitBootServices() außerhalb von RMRR-Regionen (Intel) oder IVMD-Blöcken (AMD) DMA ausführen, bis die jeweiligen Betriebssystemtreiber der Geräte geladen und von PnP gestartet werden.
    • Das Ausführen von DMA nach ExitBootServices() außerhalb von RMRR-Regionen oder IVMD-Blöcken und vor dem Start des Gerätetreibers durch das Betriebssystem führt zu einem IOMMU-Fehler und potenziell einem System-Bugcheck (0xE6).
Indikatoren für ACPI-Kernel-DMA-Schutz
Trusted Platform Module (TPM) 2.0 TPMs, entweder diskret oder in der Firmware, sind ausreichend. Weitere Informationen finden Sie unter Trusted Platform Module (TPM) 2.0.
  • Bei jedem Start, bei dem die IOMMU (VT-D oder AMD-Vi) oder der Kernel-DMA-Schutz deaktiviert ist, deaktiviert wird oder für einen niedrigeren Sicherheitsstatus konfiguriert wurde, MUSS die Plattform ein EV_EFI_ACTION-Ereignis in PCR[7] erweitern, bevor DMA aktiviert wird.
  • Die Ereigniszeichenfolge lautet „DMA Protection Disabled“. Die Plattform-Firmware MUSS diese Messung im Ereignisprotokoll mithilfe der Zeichenfolge „DMA Protection Disabled“ für die Ereignisdaten protokollieren.

Überprüfen des Kernel-DMA-Schutzstatus auf einem Windows 10-System

Der Status des Kernel-DMA-Schutzes auf einem System kann mithilfe einer der folgenden Methoden überprüft werden.

  1. Mithilfe der Systeminformation-Anwendung:

    • Starten Sie MSINFO32.exe.
    • Aktivieren Sie das Feld „Kernel DMA Protection“ auf der Seite „Systemzusammenfassung“.
  2. Mithilfe der Windows-Sicherheit Anwendung:

    • Starten Sie die Windows-Sicherheit-Anwendung im Windows-Startmenü.

    • Klicken Sie auf das Symbol „Gerätesicherheit“.

    • Klicken Sie auf „Details zu Kernisolierung“.

    • „Speicherzugriffsschutz“ wird, wenn aktiviert, als verfügbares Sicherheitsfeature aufgeführt.

      • Wenn „Speicherzugriffsschutz“ nicht aufgeführt ist, ist das Feature nicht im System aktiviert.

Übersicht über den Kernel-DMA-Schutz

Aktivieren der DMA-Neuzuordnung für Gerätetreiber

DMAGuard-Richtlinie