Protezione DMA del kernel (protezione dall'accesso alla memoria) per gli OEM

Protezione DMA del kernel, nota anche come protezione dall'accesso alla memoria, è una funzionalità di un WINDOWS 10 PC core protetto supportato nelle piattaforme Intel e AMD a partire da Windows 10, versione 1803 e Windows 10, versione 1809.

Con questa funzionalità, il sistema operativo e il firmware di sistema proteggono il sistema da attacchi DMA (Direct Memory Access) dannosi e indesiderati per tutti i dispositivi che supportano DMA:

  • Durante il processo di avvio.
  • Contro DMA dannosi da dispositivi connessi a porte esterne con supporto per DMAesternefacilmente accessibili/, ad esempio slot PCIe M.2 eIntune™3, durante il runtime del sistema operativo.
Requisito della piattaforma Dettagli
CPU a 64 bit La protezione DMA del kernel è supportata solo nei processori IA a 64 bit con estensioni di virtualizzazione, tra cui Intel VT-X e AMD-v.
IOMMU (Intel VT-D, AMD-Vi) Tutti i dispositivi di I/O che supportano DMA devono essere protetti da un IOMMU abilitato (per impostazione predefinita). L'IOMMU viene usato per bloccare o sbloccare i dispositivi in base ai criteri di enumerazione dei dispositivi DMAGuard ed eseguire il mapping DMA per i dispositivi con driver compatibili.
Supporto di PCI Express Native Control L'abilitazione di PCI Express Native Control tramite _OSC metodo ACPI è necessaria per il supporto di Protezione DMA del kernel.
Protezione DMA preavvio
  • Il firmware di sistema deve proteggere da attacchi DMA preavvio implementando l'isolamento DMA di tutti i buffer I/O dei dispositivi con supporto DMA pre-ExitBootServices().
  • Il firmware di sistema deve disabilitare il bit BME (Bus Master Enable) per tutte le porte radice PCI, che non hanno dispositivi figlio necessari per eseguire DMA tra ExitBootServices() e il driver di dispositivo avviato dal sistema operativo.
  • In ExitBootServices(), l'IOMMU deve essere ripristinato dal firmware di sistema per attivare lo stato ON.
  • Nessun dispositivo può eseguire DMA all'esterno di aree RMRR (Intel) o blocchi IVMD (AMD) dopo ExitBootServices() fino a quando i rispettivi driver del sistema operativo dei dispositivi non vengono caricati e avviati da PnP.
    • L'esecuzione di DMA all'esterno di aree RMRR o blocchi IVMD dopo ExitBootServices() e prima dell'avvio del driver di dispositivo dal sistema operativo genererà un errore IOMMU e potenzialmente un controllo dei bug di sistema (0xE6).
Indicatori di protezione DMA del kernel ACPI
Trusted Platform Module (TPM) 2.0 I TPM, discreti o firmware, saranno sufficienti. Per altre informazioni, vedere Trusted Platform Module (TPM) 2.0.
  • In ogni avvio in cui l'IOMMU (VT-D o AMD-Vi) o La protezione DMA del kernel è disabilitata, verrà disabilitata o configurata per uno stato di sicurezza inferiore, la piattaforma DEVE estendere un evento EV_EFI_ACTION in PCR[7] prima di abilitare DMA.
  • La stringa di evento deve essere "DMA Protection Disabled". Il firmware della piattaforma DEVE registrare questa misura nel registro eventi usando la stringa "DMA Protection Disabled" per i dati dell'evento.

Verifica dello stato di protezione DMA del kernel in un sistema Windows 10

Lo stato di Protezione DMA del kernel può essere verificato in un determinato sistema usando uno dei metodi seguenti

  1. Uso dell'applicazione System Information:

    • Avviare MSINFO32.exe.
    • Selezionare il campo "Protezione DMA kernel" nella pagina "Riepilogo sistema".
  2. Uso dell'applicazione Sicurezza di Windows:

    • Avviare Sicurezza di Windows'applicazione dal menu Start di Windows.

    • Fare clic sull'icona "Sicurezza del dispositivo".

    • Fare clic su "Dettagli isolamento di base".

    • "Protezione accesso alla memoria" verrà elencata come funzionalità di sicurezza disponibile, se abilitata.

      • Se "Protezione accesso alla memoria" non è elencato, la funzionalità non è abilitata nel sistema.

Panoramica della protezione DMA del kernel

Abilitazione del mapping di DMA per i driver di dispositivo

Criteri DMAGuard