Protezione DMA kernel

Si applica a

  • Windows 10
  • Windows 11

In Windows 10 versione 1803, Microsoft ha introdotto una nuova funzionalità denominata Kernel DMA Protection per proteggere i PC dagli attacchi DMA (Direct Memory Access) tramite dispositivi plug-hot PCI connessi a porte PCIe accessibili esternamente (ad esempio, porte Thunderbolt™ 3 e CFexpress). In Windows 10 versione 1903, Microsoft ha espanso il supporto di Kernel DMA Protection per coprire le porte PCIe interne (ad esempio, slot M.2)

Gli attacchi DMA drive-by possono portare alla divulgazione di informazioni sensibili che risiedono in un PC o persino all'inserimento di malware che consente agli utenti malintenzionati di ignorare la schermata di blocco o controllare i PC in remoto.

Questa funzionalità non protegge dagli attacchi DMA tramite 1394/FireWire, PCMCIA, CardBus, ExpressCard e così via.

Background

I dispositivi PCI sono compatibili con DMA, il che consente loro di leggere e scrivere nella memoria di sistema a volontà, senza dover coinvolgere il processore di sistema in queste operazioni. La funzionalità DMA è ciò che rende i dispositivi PCI i dispositivi con le prestazioni più elevate attualmente disponibili. Questi dispositivi sono sempre esistiti solo all'interno dello chassis del PC, connessi come scheda o saldati sulla scheda madre. L'accesso a questi dispositivi richiedeva all'utente di disattivare l'alimentazione al sistema e smontare lo chassis.

Oggi, questo non è più il caso delle porte PCIe hot plug (ad esempio, Thunderbolt™ e CFexpress).

Le porte PCIe hot plug, come la tecnologia Thunderbolt™, hanno fornito ai PC moderni un'estendibilità non disponibile in precedenza per i PC. Consente agli utenti di collegare nuove classi di periferiche esterne, ad esempio schede grafiche o altri dispositivi PCI, ai propri PC con un'esperienza hot plug identica a USB. La presenza di porte di connessione a caldo PCI esternamente e facilmente accessibili rende i PC soggetti ad attacchi DMA drive-by.

Gli attacchi DMA drive-by sono attacchi che si verificano mentre il proprietario del sistema non è presente e in genere richiede meno di 10 minuti, con strumenti di attacco semplici da moderare (hardware e software convenienti e non pronti all'uso) che non richiedono il disassembly del PC. Un semplice esempio potrebbe essere un proprietario del PC lascia il PC per una breve pausa caffè, e all'interno della pausa, un utente malintenzionato entra, collega un dispositivo simile a USB e se ne allontana con tutti i segreti sul computer, o inietta un malware che consente loro di avere il controllo completo sul PC in remoto.

Come Windows protegge dagli attacchi DMA drive-by

Windows sfrutta l'unità di gestione della memoria di input/output (IOMMU) di sistema per impedire alle periferiche esterne di avviare ed eseguire DMA 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 Remapping incompatible drivers using the DmaGuard MDM policies (Modifica del mapping dei driver incompatibili DMAGuard MDM).

Esperienza utente

Esperienza utente di protezione DMA kernel

Per impostazione predefinita, le periferiche con DMA che modificano il mapping dei driver di dispositivo compatibili verranno enumerate e avviate automaticamente. Le periferiche con driver incompatibili di mapping DMA non compatibili 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 esce dal sistema.

Compatibilità del sistema

La protezione DMA del kernel richiede il nuovo supporto del firmware UEFI. Questo supporto è previsto solo per i sistemi basati su Intel appena introdotti con Windows 10 versione 1803 (non tutti i sistemi). La sicurezza basata su virtualizzazione (VBS) non è necessaria.

Per verificare se un sistema supporta la protezione DMA kernel, controllare l'app desktop System Information (MSINFO32). I sistemi rilasciati prima di Windows 10 versione 1803 non supportano la protezione DMA del kernel, ma possono sfruttare altre mitigazioni degli attacchi DMA come descritto in Contromisure BitLocker.

Nota

La protezione DMA del kernel non è compatibile con altre contromisure d'attacco DMA di BitLocker. È consigliabile disabilitare le contromisure degli attacchi DMA bitlocker se il sistema supporta la protezione DMA 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à.

Come verificare se la protezione DMA del kernel è abilitata

I sistemi che eseguono Windows 10 versione 1803 che supportano La protezione DMA kernel dispongono di questa funzionalità di sicurezza abilitata automaticamente dal sistema operativo senza che sia necessaria alcuna configurazione utente o amministratore IT.

Uso dell'app Sicurezza di Windows

A partire da Windows 10 versione 1809, è possibile usare l'app Sicurezza di Windows per verificare se La protezione DMA del kernel è abilitata. Fare clic su Avvia>impostazioni>Aggiorna & sicurezza>Sicurezza di Windows>Apri Sicurezza di Windows>Protezione del coredi sicurezza> del dispositivo dettagli >protezione accesso alla memoria.

Protezione DMA del kernel in Sicurezza di Windows

Uso delle informazioni di sistema

  1. Avviare MSINFO32.exe in un prompt dei comandi o nella barra di ricerca di Windows.

  2. Controllare il valore di Kernel DMA Protection.

    Protezione DMA del kernel in System Information.

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

    • Riavviare nelle impostazioni del BIOS
    • Attivare la tecnologia Intel Virtualization.
    • Attivare Intel Virtualization Technology for I/O (VT-d). In Windows 10 versione 1803 è supportato solo Intel VT-d. Altre piattaforme possono usare le mitigazioni degli attacchi DMA descritte in Contromisure BitLocker.
    • 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 SÌ.

    Nota

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

  4. Se lo stato di Kernel DMA Protection rimane Disattivato, il sistema non supporta questa funzionalità.

    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® 10 per altri mezzi di protezione DMA.

Domande frequenti

I sistemi sul mercato supportano la protezione DMA del kernel per Thunderbolt™ 3?

I sistemi sul mercato, rilasciati con Windows 10 versione 1709 o precedente, non supporteranno la protezione DMA del kernel per Thunderbolt™ 3 dopo l'aggiornamento a Windows 10 versione 1803, poiché questa funzionalità richiede le modifiche del firmware del BIOS/piattaforma e le garanzie che non possono essere reinserite nei dispositivi rilasciati in precedenza. Per questi sistemi, fare riferimento alle contromisure BitLocker o Thunderbolt™ 3 e Sicurezza nel sistema operativo Microsoft Windows® 10 per altri mezzi di protezione DMA.

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 proteggersi dagli attacchi tramite le porte Thunderbolt™ 3 durante l'avvio.

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

La modifica del mapping DMA è supportata per driver di dispositivo specifici e non è universalmente supportata da tutti i dispositivi e i driver in una piattaforma. 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 due indica che il driver di dispositivo supporta la modifica del mapping DMA. Se la proprietà non è disponibile, il criterio non viene impostato dal driver di dispositivo, ovvero 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).

Esperienza di un utente sulla protezione DMA del kernel

*Per Windows 10 versioni 1803 e 1809, il campo proprietà in Gestione dispositivi usa un GUID, come evidenziato nell'immagine seguente.

Esperienza di un utente sulla protezione DMA del kernel

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

Se le periferiche hanno driver di classe forniti da Windows, usare questi driver nei sistemi. 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?

In Windows 10 1803 e versioni successive, i driver della posta in arrivo Microsoft per controller USB XHCI (3.x), controller AHCI/SATA di archiviazione e 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 la modifica del 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 La protezione DMA del kernel
  • Mobile Gestione dispositivi (MDM): criteri DmaGuard