Protezione DMA kernel

La protezione DMA (Kernel Direct Memory Access) è una funzionalità di sicurezza di Windows che protegge dalle periferiche esterne dall'accesso non autorizzato alla memoria.

I dispositivi plug a caldo PCIe come Thunderbolt, USB4 e CFexpress consentono agli utenti di collegare classi di periferiche esterne, incluse le schede grafiche, ai propri dispositivi con la facilità plug-and-play di USB. Questi dispositivi sono compatibili con DMA e possono accedere alla memoria di sistema ed eseguire operazioni di lettura e scrittura senza la necessità del coinvolgimento del processore di sistema. Questa funzionalità è il motivo alla base delle prestazioni eccezionali dei dispositivi PCI, ma li rende anche suscettibili agli attacchi DMA drive-by.

Gli attacchi DMA drive-by sono attacchi che si verificano mentre il proprietario del sistema non è presente e in genere impiegano solo pochi minuti, con strumenti di attacco da semplice a moderato (hardware e software convenienti, pronti all'uso), che non richiedono il disassemblaggio del dispositivo. Ad esempio, gli utenti malintenzionati possono collegare un dispositivo simile a USB mentre il proprietario del dispositivo è in pausa e rimuovere tutti i segreti nel computer o inserire un malware che consenta loro di avere il controllo completo sul dispositivo in remoto ignorando la schermata di blocco.

Nota

La funzionalità di protezione DMA del kernel non protegge dagli attacchi DMA tramite 1394/FireWire, PCMCIA, CardBus o ExpressCard.

Come Windows protegge dagli attacchi DMA drive-by

Windows usa l'unità di gestione della memoria di input/output (IOMMU) di sistema per impedire l'avvio e l'esecuzione di DMA da parte delle periferiche esterne, a meno che i driver per queste periferiche non supportano l'isolamento della memoria (ad esempio la modifica del mapping DMA). Le periferiche con driver compatibili per la modifica del mapping DMA verranno automaticamente enumerate, avviate e autorizzate a eseguire DMA nelle aree di memoria assegnate.

Per impostazione predefinita, le periferiche con driver incompatibili di mapping DMA non saranno bloccate dall'avvio e dall'esecuzione di DMA fino a quando un utente autorizzato non accede al sistema o non sblocca lo schermo. Gli amministratori IT possono modificare il comportamento predefinito applicato ai dispositivi con DMA Modifica del mapping dei driver incompatibili tramite MDM o criteri di gruppo.

Esperienza utente

Quando è abilitata la protezione DMA del kernel:

  • Le periferiche con driver di dispositivo compatibili con la modifica del mapping DMA verranno enumerate e avviate automaticamente
  • Le periferiche con driver incompatibili con DMA non compatibili con il mapping verranno bloccate se la periferica è stata collegata prima dell'accesso di un utente autorizzato o mentre lo schermo è bloccato. Una volta sbloccato il sistema, il driver periferico verrà avviato dal sistema operativo e la periferica continuerà a funzionare normalmente fino a quando il sistema non viene riavviato o la periferica non è scollegata. La periferica continuerà a funzionare normalmente se l'utente blocca lo schermo o si disconnette dal sistema.

Requisiti di licenza ed edizione di Windows

Nella tabella seguente sono elencate le edizioni di Windows che supportano la protezione DMA (Kernel Direct Memory Access):

Windows Pro Windows Enterprise Windows Pro Education/SE Windows Education

I diritti delle licenze di protezione DMA (Kernel Direct Memory Access) sono concessi dalle licenze seguenti:

Windows Pro/Pro Education/SE Windows Enterprise E3 Windows Enterprise E5 Windows Education A3 Windows Education A5

Per ulteriori informazioni sulle licenze di Windows, vedi Panoramica delle licenze di Windows.

Compatibilità del sistema

La protezione DMA del kernel richiede il supporto del firmware UEFI e la sicurezza basata su virtualizzazione (VBS) non è necessaria.

La protezione DMA del kernel non è compatibile con altre contromisure di attacchi DMA di BitLocker. È consigliabile disabilitare le contromisure degli attacchi DMA bitlocker se il sistema supporta la protezione DMA del kernel. La protezione DMA del kernel fornisce una barra di sicurezza superiore per il sistema rispetto alle contromisure di attacco DMA bitlocker, mantenendo al tempo stesso l'usabilità delle periferiche esterne.

Nota

Il supporto per il mapping DMA per i dispositivi grafici è stato aggiunto in Windows 11 con il modello di driver WDDM 3.0; Windows 10 non supporta questa funzionalità.

Verificare se la protezione DMA del kernel è abilitata

I sistemi che supportano la protezione DMA kernel abilitano automaticamente la funzionalità, senza che sia necessaria alcuna configurazione utente o amministratore IT.

È possibile usare le impostazioni di Sicurezza di Windows per verificare se Kernel DMA Protection è abilitato:

  1. Aprire Sicurezza di Windows.

  2. Selezionare Dettagli > di isolamento dei core di sicurezza > del dispositivo Protezione dall'accesso alla memoria

    Screenshot della protezione DMA del kernel in Sicurezza di Windows.

    In alternativa, è possibile usare l'app desktop System Information (msinfo32.exe). Se il sistema supporta la protezione DMA del kernel, il valore di Kernel DMA Protection verrà impostato su ON.

    Screenshot della protezione DMA del kernel in System Information.

    Se lo stato corrente di Protezione DMA del kernel è OFF e Hyper-V - Virtualizzazione abilitata nel firmware è NO:

    • Riavviare nelle impostazioni UEFI
    • Attivare la tecnologia Intel Virtualization
    • Attivare la tecnologia Intel Virtualization per I/O (VT-d)
    • Riavviare il sistema in Windows

    Nota

    Se la funzionalità Windows Hyper-V è abilitata, tutte le funzionalità correlate a Hyper-V verranno nascoste e verrà rilevato un hypervisor. Le funzionalità necessarie per Hyper-V non verranno visualizzate nella parte inferiore dell'elenco. Significa che Hyper-V - Virtualizzazione abilitata nel firmware è impostata su .

    L'abilitazione della virtualizzazione Hyper-V nel firmware (IOMMU) è necessaria per abilitare la protezione DMA del kernel, anche quando il firmware ha il flag degli indicatori di protezione DMA del kernel ACPI descritti in Protezione DMA del kernel (protezione dall'accesso alla memoria) per gli OEM.

    Se lo stato di Kernel DMA Protection rimane Disattivato, il sistema non supporta la protezione DMA del kernel.

Per i sistemi che non supportano la protezione DMA del kernel, vedere le contromisure BitLocker o Thunderbolt 3 e Sicurezza nel sistema operativo Microsoft Windows per altri mezzi di protezione DMA.

Domande frequenti

Protezione DMA del kernel impedisce attacchi DMA drive-by durante l'avvio?

No, La protezione DMA del kernel protegge solo dagli attacchi DMA drive-by dopo il caricamento del sistema operativo. È responsabilità del firmware/BIOS del sistema proteggere dagli attacchi tramite le porte Thunderbolt 3 durante l'avvio.

Come è possibile verificare se un determinato driver supporta la modifica del mapping DMA?

Non tutti i dispositivi e i driver supportano la modifica del mapping DMA. Per verificare se un driver specifico è stato scelto per la modifica del mapping DMA, controllare i valori corrispondenti alla proprietà DMA Remapping Policy nella scheda Dettagli di un dispositivo in Gestione dispositivi*. Il valore 0 o 1 indica che il driver di dispositivo non supporta la modifica del mapping DMA. Il valore 2 indica che il driver di dispositivo supporta la modifica del mapping DMA. Se la proprietà non è disponibile, il driver di dispositivo non supporta la modifica del mapping DMA. Controllare l'istanza del driver per il dispositivo che si sta testando. Alcuni driver possono avere valori diversi a seconda della posizione del dispositivo (interna ed esterna).

Screenshot dei dettagli del dispositivo per un controller Thunderbolt che mostra un valore pari a 2.

Quando i driver per le periferiche PCI o Thunderbolt 3 non supportano la modifica del mapping DMA?

Usare i driver forniti da Windows per le periferiche, se disponibili. Se Windows non fornisce driver di classe per le periferiche, contattare il fornitore/il fornitore del driver periferico per aggiornare il driver per supportare la modifica del mapping DMA.

La protezione DMA kernel del sistema è disattivata. È possibile attivare la modifica del mapping DMA per un dispositivo specifico?

Sì. La modifica del mapping DMA per un dispositivo specifico può essere attivata indipendentemente da Kernel DMA Protection. Ad esempio, se il driver acconsente esplicitamente e VT-d (Virtualization Technology for Directed I/O) è attivato, il mapping DMA verrà abilitato per il driver dei dispositivi anche se La protezione DMA del kernel è disattivata.

Kernel DMA Protection è un criterio che consente o blocca l'esecuzione di DMA da parte dei dispositivi, in base allo stato e alle funzionalità di modifica del mapping.

I driver Microsoft supportano la modifica del mapping DMA?

I driver della posta in arrivo Microsoft per i controller USB XHCI (3.x), i controller AHCI/SATA di archiviazione e i controller NVMe di archiviazione supportano la modifica del mapping DMA.

I driver per i dispositivi non PCI devono essere compatibili con la modifica del mapping DMA?

No. I dispositivi per le periferiche non PCI, ad esempio i dispositivi USB, non eseguono DMA, pertanto non è necessario che il driver sia compatibile con il mapping DMA.

In che modo un'organizzazione può abilitare i criteri di enumerazione dei dispositivi esterni?

I criteri di enumerazione dei dispositivi esterni controllano se enumerare le periferiche esterne non compatibili con il nuovo mapping DMA. Le periferiche compatibili con il nuovo mapping DMA vengono sempre enumerate. Le periferiche che non sono, possono essere bloccate, consentite o consentite solo dopo l'accesso dell'utente (impostazione predefinita).

I criteri possono essere abilitati usando:

  • Criteri di gruppo: Modelli amministrativi\System\Kernel DMA Protection\Criteri di enumerazione per dispositivi esterni incompatibili con Kernel DMA Protection
  • Mobile Gestione dispositivi (MDM): criteri DmaGuard