Protección de DMA para kernel

Kernel Direct Memory Access (DMA) Protection es una característica de seguridad de Windows que protege contra periféricos externos de obtener acceso no autorizado a la memoria.

Los dispositivos pcie hot plug como Thunderbolt, USB4 y CFexpress permiten a los usuarios conectar clases de periféricos externos, incluidas las tarjetas gráficas, a sus dispositivos con la facilidad plug-and-play de USB. Estos dispositivos son compatibles con DMA y pueden acceder a la memoria del sistema y realizar operaciones de lectura y escritura sin necesidad de la intervención del procesador del sistema. Esta funcionalidad es la razón del excepcional rendimiento de los dispositivos PCI, pero también los hace susceptibles a ataques DMA basados en unidades.

Los ataques DMA por unidad son ataques que se producen mientras el propietario del sistema no está presente y normalmente tardan unos minutos, con herramientas de ataque sencillas a moderadas (hardware y software asequibles y fuera de serie), que no requieren el desensamblado del dispositivo. Por ejemplo, los atacantes pueden conectar un dispositivo similar a USB mientras el propietario del dispositivo está en un descanso y alejarse con todos los secretos de la máquina, o bien insertar un malware que les permita tener control total sobre el dispositivo de forma remota mientras omiten la pantalla de bloqueo.

Nota

La característica protección contra DMA de kernel no protege contra ataques DMA a través de 1394/FireWire, PCMCIA, CardBus o ExpressCard.

Cómo Windows protege frente a ataques de unidad DMA

Windows usa la unidad de administración de memoria de entrada y salida (IOMMU) del sistema para impedir que los periféricos externos inicien y realicen DMA, a menos que los controladores de estos periféricos admitan el aislamiento de memoria (como la reasignación de DMA). Los periféricos con controladores compatibles con la reasignación de DMA se enumeran, inician y permiten realizar DMA automáticamente en sus regiones de memoria asignadas.

De forma predeterminada, los periféricos con controladores incompatibles con la reasignación de DMA se bloquearán para que no inicien y realicen DMA hasta que un usuario autorizado inicie sesión en el sistema o desbloquee la pantalla. Los administradores de TI pueden modificar el comportamiento predeterminado aplicado a los dispositivos con controladores incompatibles de reasignación de DMA mediante mdm o directivas de grupo.

Experiencia del usuario

Cuando kernel DMA Protection está habilitado:

  • Los periféricos con controladores de dispositivos compatibles con la reasignación de DMA se enumerarán e iniciarán automáticamente.
  • Los periféricos con controladores incompatibles con la reasignación de DMA no se iniciarán si el periférico se enchufó antes de que un usuario autorizado inicie sesión o mientras la pantalla está bloqueada. Una vez desbloqueado el sistema, el sistema operativo iniciará el controlador periférico y el periférico seguirá funcionando con normalidad hasta que se reinicie el sistema o se desconecte el periférico. El periférico seguirá funcionando normalmente si el usuario bloquea la pantalla o cierra la sesión del sistema.

Requisitos de licencia y de la edición de Windows

En la tabla siguiente se enumeran las ediciones de Windows que admiten la protección de acceso directo a memoria (DMA) del kernel:

Windows Pro Windows Enterprise Windows Pro Education/SE Windows Education

Los derechos de licencia de protección de acceso directo a memoria (DMA) del kernel se conceden mediante las siguientes licencias:

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

Se puede obtener más información sobre las licencias de Windows en Información general sobre las licencias de Windows.

Compatibilidad del sistema

Kernel DMA Protection requiere compatibilidad con firmware UEFI y la seguridad basada en virtualización (VBS) no es necesaria.

Kernel DMA Protection no es compatible con otras contramedidas de ataques DMA de BitLocker. Se recomienda deshabilitar las contramedidas de ataques DMA de BitLocker si el sistema admite La protección contra DMA del kernel. Kernel DMA Protection proporciona una barra de seguridad más alta para el sistema a través de las contramedidas de ataqueSMA de BitLocker, a la vez que mantiene la facilidad de uso de periféricos externos.

Nota

La compatibilidad de reasignación de DMA para dispositivos gráficos se agregó en Windows 11 con el modelo de controlador WDDM 3.0; Windows 10 no admite esta característica.

Comprobación de si la protección de DMA del kernel está habilitada

Los sistemas que admiten Kernel DMA Protection habilitarán la característica automáticamente, sin que sea necesaria ninguna configuración de usuario o administrador de TI.

Puede usar la configuración de Seguridad de Windows para comprobar si Kernel DMA Protection está habilitado:

  1. Abra Seguridad de Windows.

  2. Seleccione Seguridad del dispositivo > Detalles > de aislamiento principal Protección de acceso a la memoria

    Captura de pantalla de la protección de DMA del kernel en Seguridad de Windows.

    Como alternativa, puede usar la aplicación de escritorio system information (msinfo32.exe). Si el sistema admite kernel DMA Protection, el valor de Kernel DMA Protection se establecerá en ON.

    Captura de pantalla de la protección de DMA del kernel en Información del sistema.

    Si el estado actual de Kernel DMA Protection es OFF y Hyper-V - Virtualization Enabled en firmware es NO:

    • Reinicio en la configuración de UEFI
    • Activar la tecnología intel virtualización
    • Activar la tecnología intel virtualización para E/S (VT-d)
    • Reinicio del sistema en Windows

    Nota

    Si la característica De Windows de Hyper-V está habilitada, se ocultarán todas las características relacionadas con Hyper-V y se detectará un hipervisor. Las características necesarias para Hyper-V no se mostrarán en la parte inferior de la lista. Significa que Hyper-V - Virtualization Enabled in Firmware (Hyper-V: virtualización habilitada en firmware ) está establecido en .

    La habilitación de la virtualización de Hyper-V en firmware (IOMMU) es necesaria para habilitar la protección de DMA del kernel, incluso cuando el firmware tiene la marca de indicadores de protección de DMA del kernel ACPI descritos en Protección de DMA de kernel (protección de acceso a memoria) para OEM.

    Si el estado de Kernel DMA Protection permanece desactivado, el sistema no admite la protección de DMA del kernel.

Para los sistemas que no admiten Kernel DMA Protection, consulte las contramedidas de BitLocker o Thunderbolt 3 y Security on Microsoft Windows Operating system (Seguridad en el sistema operativo Microsoft Windows ) para obtener otros medios de protección contra DMA.

Preguntas más frecuentes

¿La protección DMA del kernel evita ataques de DMA por unidad durante el arranque?

No, kernel DMA Protection solo protege contra ataques DMA por unidad después de cargar el sistema operativo. Es responsabilidad del firmware/BIOS del sistema protegerse contra ataques a través de los puertos Thunderbolt 3 durante el arranque.

¿Cómo puedo comprobar si un controlador determinado admite la reasignación de DMA?

No todos los dispositivos y controladores admiten la reasignación de DMA. Para comprobar si un controlador específico está optado por la reasignación de DMA, compruebe los valores correspondientes a la propiedad Directiva de reasignación de DMA en la pestaña Detalles de un dispositivo en Administrador de dispositivos*. Un valor de 0 o 1 significa que el controlador del dispositivo no admite la reasignación de DMA. Un valor de 2 significa que el controlador de dispositivo admite la reasignación de DMA. Si la propiedad no está disponible, el controlador de dispositivo no admite la reasignación de DMA. Compruebe la instancia del controlador para el dispositivo que está probando. Algunos controladores pueden tener valores variables en función de la ubicación del dispositivo (interno frente a externo).

Captura de pantalla de los detalles del dispositivo de un controlador Thunderbolt que muestra un valor de 2.

¿Cuando los controladores de periféricos PCI o Thunderbolt 3 no admiten la reasignación de DMA?

Use los controladores proporcionados por Windows para los periféricos, cuando estén disponibles. Si no hay controladores de clase proporcionados por Windows para los periféricos, póngase en contacto con el proveedor de periféricos o el proveedor de controladores para actualizar el controlador para admitir la reasignación de DMA.

La protección DMA del kernel de mi sistema está desactivada. ¿Se puede activar la reasignación de DMA para un dispositivo específico?

Sí. La reasignación de DMA para un dispositivo específico se puede activar independientemente de kernel DMA Protection. Por ejemplo, si el controlador opta por participar y VT-d (Tecnología de virtualización para E/S dirigida) está activado, la reasignación de DMA se habilitará para el controlador de dispositivos incluso si kernel DMA Protection está desactivado.

Kernel DMA Protection es una directiva que permite o bloquea que los dispositivos realicen DMA, en función de su estado y funcionalidades de reasignación.

¿Los controladores de Microsoft admiten la reasignación de DMA?

Los controladores de bandeja de entrada de Microsoft para controladores USB XHCI (3.x), controladores AHCI/SATA de almacenamiento y controladores NVMe de almacenamiento admiten la reasignación de DMA.

¿Los controladores para dispositivos que no son PCI deben ser compatibles con la reasignación de DMA?

No. Los dispositivos para periféricos que no son PCI, como los dispositivos USB, no realizan DMA, por lo que no es necesario que el controlador sea compatible con DMA Remapping.

¿Cómo puede una empresa habilitar la directiva de enumeración de dispositivos externos?

La directiva de enumeración de dispositivos externos controla si se van a enumerar periféricos externos que no son compatibles con la reasignación de DMA. Los periféricos compatibles con la reasignación de DMA siempre se enumeran. Los periféricos que no son, se pueden bloquear, permitir o permitir solo después de que el usuario inicie sesión (valor predeterminado).

La directiva se puede habilitar mediante:

  • directiva de grupo: Plantillas administrativas\System\Kernel DMA Protection\Enumeration policy for external devices incompatible with Kernel DMA Protection
  • Mobile Administración de dispositivos (MDM): directivas de DmaGuard