Compartir a través de


Seguridad basada en virtualización (VBS)

La seguridad basada en virtualización, o VBS, usa la virtualización de hardware y el hipervisor de Windows para crear un entorno virtual aislado que se convierte en la raíz de confianza del sistema operativo que asume que el kernel puede verse comprometido. Windows usa este entorno aislado para hospedar una serie de soluciones de seguridad, lo que les proporciona una mayor protección frente a vulnerabilidades del sistema operativo e impide el uso de vulnerabilidades malintencionadas que intentan burlar las protecciones. VBS aplica restricciones para proteger los recursos vitales del sistema y del sistema operativo, o para proteger los recursos de seguridad, como las credenciales de usuario autenticadas.

Una de estas soluciones de seguridad de ejemplo es la integridad de memoria, que protege y endurece Windows mediante la ejecución de la integridad del código del modo kernel dentro del entorno virtual aislado de VBS. La integridad del código del modo kernel es el proceso de Windows que comprueba todos los controladores y archivos binarios del modo kernel antes de que se inicien y evita que los controladores o archivos del sistema no firmados o que no sean de confianza se carguen en la memoria del sistema. La integridad de la memoria también restringe las asignaciones de memoria del kernel que podrían usarse para comprometer el sistema, lo que garantiza que las páginas de memoria del kernel solo sean ejecutables después de pasar las comprobaciones de integridad de código dentro del entorno de ejecución seguro y que nunca se pueda escribir en las páginas ejecutables. De este modo, incluso si hay vulnerabilidades como un desbordamiento de búfer que permiten al malware intentar modificar la memoria, las páginas de códigos ejecutables no se pueden modificar y la memoria modificada no se puede hacer ejecutable.

Nota:

La integridad de la memoria se conoce a veces como integridad de código protegida por hipervisor (HVCI) o integridad de código reforzada por hipervisor, y se lanzó publicó como parte de Device Guard. Device Guard ya no se usa, excepto para localizar la integridad de memoria y la configuración de VBS en la directiva de grupo o en el registro de Windows.

VBS requiere que los siguientes componentes estén presentes y configurados correctamente.

Requisito de hardware Detalles
CPU de 64 bits La seguridad basada en virtualización (VBS) requiere el hipervisor de Windows, que solo es compatible con procesadores IA de 64 bits con extensiones de virtualización, incluidos Intel VT-X y AMD-v.
Traducción de direcciones de segundo nivel (SLAT) VBS también requiere que la compatibilidad con la virtualización del procesador incluya traducción de direcciones de segundo nivel (SLAT), ya sea Intel VT-X2 con tablas de página extendidas (EPT) o AMD-v con indexación de virtualización rápida (RVI).
IOMMU o SMMUs (Intel VT-D, AMD-Vi, Arm64 SMMUs) Todos los dispositivos de E/S con capacidad DMA deben estar detrás de una IOMMU o SMMU. Se puede usar una IOMMU para mejorar la resistencia del sistema frente a ataques de memoria.
Módulo de plataforma segura (TPM) 2.0 Para obtener más información, consulte Módulo de plataforma segura (TPM) 2.0.
Compatibilidad con firmware para la protección SMM El firmware del sistema debe cumplir las recomendaciones para proteger el código SMM descrito en la Especificación de la tabla de mitigaciones de seguridad de Windows SMM (WMST). La especificación WSMT contiene detalles de una tabla ACPI que se creó para su uso con sistemas operativos Windows que admiten características de VBS. El firmware debe implementar las protecciones descritas en la especificación WSMT y establecer las marcas de protección correspondientes como se describe en la especificación para notificar el cumplimiento de estos requisitos al sistema operativo.
Informes de memoria de interfaz de firmware extensible unificada (UEFI) El firmware UEFI debe cumplir las siguientes directrices de asignación de memoria y formato de asignación de memoria para que el firmware garantice la compatibilidad con VBS.

  • Tabla de atributos de memoria (MAT) de UEFI v2.6: para garantizar la compatibilidad con VBS, el firmware debe separar claramente los intervalos de memoria en tiempo de ejecución de EFI para el código y los datos, y notificarlo al sistema operativo. La segregación adecuada y la generación de informes de intervalos de memoria en tiempo de ejecución de EFI permite a VBS aplicar las protecciones de página necesarias a las páginas de códigos de los servicios en tiempo de ejecución de EFI dentro de la región segura de VBS. La transmisión de esta información al sistema operativo se realiza mediante EFI_MEMORY_ATTRIBUTES_TABLE. Para implementar la MAT de UEFI, siga estas instrucciones:
    1. Esta tabla debe describir todo el tiempo de ejecución de EFI.
    2. Todos los atributos adecuados para las páginas EfiRuntimeServicesData y EfiRuntimeServicesCode deben estar marcados.
    3. Estos intervalos deben alinearse en los límites de página (4 KB) y no se pueden superponer.
  • Protecciones de páginas de EFI: todas las entradas deben incluir atributos EFI_MEMORY_RO, EFI_MEMORY_XP o ambos. Toda la memoria UEFI marcada como ejecutable debe ser de solo lectura. La memoria marcada como escribible no debe ser ejecutable. Las entradas no pueden dejarse con ninguno de los atributos establecidos, lo que indica que la memoria es ejecutable y escribible.
  • Revisión 2 de solicitud de sobrescritura de memoria segura (MOR) MOR segura v2 se ha mejorado para proteger la configuración de bloqueo MOR mediante una variable segura UEFI. Esto ayuda a protegerse contra ataques avanzados de memoria. Consulte Implementación de MOR segura para obtener más información.
    Controladores compatibles con la integridad de memoria Asegúrese de que todos los controladores del sistema se hayan probado y verificado para ser compatibles con la integridad de la memoria. El Kit para controladores de Windows y el Comprobador de controladores contienen pruebas de compatibilidad de controladores con integridad de memoria. Hay tres pasos para comprobar la compatibilidad del controlador:
    1. Use el Comprobador de controladores con las comprobaciones de compatibilidad de integridad de código habilitadas.
    2. Ejecute la prueba de preparación de integridad de código de hipervisor en HLK de Windows.
    3. Pruebe el controlador en un sistema con VBS e integridad de memoria habilitada. Este paso es obligatorio para validar el comportamiento del controlador con la integridad de memoria, ya que las herramientas de análisis de código estático simplemente no son capaces de detectar todas las infracciones de integridad de memoria posibles en tiempo de ejecución.
    Arranque seguro El arranque seguro debe estar habilitado en dispositivos que aprovechan VBS. Para obtener más información, consulte Arranque seguro.

    VBS funciona en máquinas virtuales que tienen compatibilidad con la virtualización anidada. Esto incluye todas las máquinas virtuales Gen2 y las máquinas virtuales Gen1 que admiten la virtualización anidada. En la tabla siguiente se detalla una lista de las series de máquinas virtuales admitidas.

    Nombre de serie de la máquina virtual. Virtualización anidada VM Gen
    Av2 1 (ciertos tamaños internos admiten la generación 2)
    B No 1 y 2
    Dsv2/Dv2/Dv3/Ev3 1
    Dsv3/Ddsv3 1 y 2
    Dsv4/Ddsv4 1 y 2
    Esv3/Edsv3 1 y 2
    Esv4/Edsv4 1 y 2
    Ev4/Edv4 Ev4 - 1 solamente
    Edv4 -1&2
    Dv4/Ddv4 1 y 2
    Dv5/Ddv5/Dsv5/Ddsv5 1 y 2
    Ev5/Edv5/Esv5/Edsv5 1 y 2
    Dasv5/Dadsv5/Easv5/ Eadsv5 1 y 2
    Ebsv5/Edbsv5 1 y 2
    Fsv2 1 y 2
    Fx 2
    Lsv2 1 y 2

    Para obtener más información sobre Hyper-V, consulte Hyper-V en Windows Server 2016 o Introducción a Hyper-V en Windows 10. Para obtener más información sobre el hipervisor, consulte Especificaciones del hipervisor.