Guía de Windows para protegerse contra vulnerabilidades del canal lateral de ejecución especulativa

Se aplica a: Windows Server 2019, all versionsWindows 10, version 1809Windows Server version 1803

Resumen


Microsoft es conocedor de nuevas variantes de la clase de ataque conocido como vulnerabilidades del canal lateral de ejecución especulativa. Estas variantes se denominan L1 Terminal Fault (L1TF) y Muestreo de datos de microarquitectura (MDS). Un atacante que pueda aprovecharse con éxito de L1TF o MDS puede ser capaz de leer datos privilegiados más allá de los límites de confianza.

Actualizado el 14 de mayo de 2019: El 14 de mayo de 2019, Intel publicó información acerca de una nueva subclase de vulnerabilidades del canal de ejecución especulativa, conocida como Muestreo de datos de microarquitectura. A estas vulnerabilidades, se les han asignado los CVE siguientes:

Resumen de la vulnerabilidad


En entornos en los cuales se comparten recursos, como hosts de virtualización, es posible que un atacante que pueda ejecutar un código arbitrario en una máquina virtual pueda acceder a información de otra máquina virtual o del propio host de virtualización.

Las cargas de trabajo del servidor como servicios de escritorio remoto (RDS) de Windows Server y roles de trabajo más dedicados, como los controladores de dominio de Active Directory, también están en riesgo. Es posible que los atacantes que puedan ejecutar un código arbitrario (independientemente de su nivel de privilegio) puedan acceder a secretos del sistema operativo o de la carga de trabajo como claves de cifrado, contraseñas y otros datos confidenciales.

Los sistemas operativos del cliente Windows también están en peligro, especialmente si ejecutan código no fiable, aprovechan características de seguridad basadas en la virtualización como Windows Defender Credential Guard o usan Hyper-V para ejecutar máquinas virtuales.

Nota: Estas vulnerabilidades solo afectan a los procesadores Intel Core y a los procesadores Intel Xeon.

Resumen de la mitigación

Para resolver estos problemas, Microsoft trabaja junto con Intel para desarrollar guías y mitigaciones de software. Se publicaron actualizaciones de software para ayudar a mitigar las vulnerabilidades. Para obtener todas las protecciones disponibles, es posible que se necesiten actualizaciones que podrían incluir microcódigos de OEMs de dispositivos.

En este artículo se describe cómo mitigar las siguientes vulnerabilidades:

  • CVE-2018-3620 – "Error del terminal L1 – SO, SMM"
  • CVE-2018-3646 – "Error del terminal L1 – VMM"
  • CVE-2018-11091 – "Memoria no almacenable en caché de muestreo de datos de microarquitectura (MDSUM)"
  • CVE-2018-12126 – "Muestreo de datos de búfer de almacén de microarquitectura (MSBDS)"
  • CVE-2018-12127 – "Muestreo de datos de puerto de carga de microarquitectura (MLPDS)"
  • CVE-2018-121 30 – "Muestreo de datos de búfer de relleno de microarquitectura (MFBDS)"

Para obtener más información sobre las vulnerabilidades, consulte los siguientes avisos de seguridad:

L1TF: https://portal.msrc.microsoft.com/es-es/security-guidance/advisory/adv180018

MDS: https://portal.msrc.microsoft.com/es-es/security-guidance/advisory/adv190013

Acciones determinantes necesarias para mitigar la amenaza


Las siguientes secciones pueden ayudarle a identificar sistemas que se ven afectados por las vulnerabilidades de L1TF y/o MDS, y también le ayudan a entender y mitigar los riesgos.

Impacto de rendimiento potencial

En la comprobación, Microsoft ha visto cierto impacto de rendimiento de esas mitigaciones, dependiendo de la configuración del sistema y las mitigaciones requeridas.

Es posible que algunos clientes tengan que deshabilitar la tecnología Hyper-Threading (también conocida como subprocesamiento múltiple simultáneo o SMT) para abordar por completo el riesgo de L1TF y MDS. Tenga en cuenta que si deshabilita la tecnología hyper-threading, puede haber una degradación de rendimiento. Esta situación se aplica a clientes que usan lo siguiente:

  • Versiones de Hyper-V que son anteriores a Windows Server 2016 o Windows 10, versión 1607 (Actualización de aniversario)
  • Características de seguridad basada en virtualización (VBS) como Credential Guard y Device Guard.
  • Software que permite la ejecución de código no fiable (por ejemplo, un servidor de automatización de compilaciones o un entorno de hospedaje de IIS)

El impacto puede variar según el hardware y las cargas de trabajo que se ejecuten en el sistema. La configuración de sistema más común es tener la tecnología Hyper-Threading habilitada. Por lo tanto, el impacto de rendimiento es validado en el usuario o administrador que toma la acción de deshabilitar la tecnología hyper-threading en el sistema.

Nota:Para determinar si su sistema utiliza características de seguridad protegidas con VBS, haga lo siguiente:

  1. En el menú Inicio, escriba MSINFO32.

    Nota: Se abre la ventana Información del sistema.
  2. En el cuadro Buscar, escriba seguridad.
  3. En el panel derecho, ubique las dos filas seleccionadas en la captura de pantalla y verifique la columna Valor para ver si la  seguridad basada en virtualización está habilitada y qué servicios de seguridad basada en virtualización  se están ejecutando.
     

    Ventana de información del sistema


El programador de núcleos de Hyper-V mitiga los vectores de ataque L1TF y MDS contra las máquinas virtuales de Hyper-V y, al mismo tiempo, permite que la tecnología Hyper-Threading permanezca habilitada. El programador de núcleos está disponible a partir de Windows Server 2016 y Windows 10, versión 1607. De esta forma, el impacto en el rendimiento de las máquinas virtuales es mínimo.

El programador de núcleos no mitiga los vectores de ataque L1TF ni MDS contra las características de seguridad protegidas con VBS. Para obtener más información consulte Mitigación C y el siguiente artículo del blog Virtualization:

https://aka.ms/hyperclear

Para obtener información de Intel sobre el impacto de rendimiento, vaya al siguiente sitio web de Intel:

www.intel.com/securityfirst

Identificación de sistemas afectados y mitigaciones requeridas

En el siguiente gráfico de la figura 1, se puede identificar los sistemas afectados y determinar el conjunto de acciones correctas. 

Importante:  Si está usando máquinas virtuales, debe considerar y aplicar el diagrama de flujo para hosts de Hyper-V y cada invitado de la VM afectado individualmente porque las mitigaciones se pueden aplicar a ambos. Específicamente, para un host de Hyper-V, los pasos del diagrama de flujo proporcionan protecciones entre VMs y protecciones entre hosts. Sin embargo, aplicar estas mitigaciones solo al host de Hyper-V no es suficiente para proporcionar protección entre VMs. Para proporcionar protección entre VMs debe aplicar el siguiente diagrama de flujo a cada VM de Windows. En la mayoría de los casos, esto significa asegurarse de que las claves de registro estén definidas en la VM.

A medida que navegue por el diagrama de flujo, encontrará círculos azules con letras que asignan una acción o una serie de acciones que se requieren para mitigar vectores de ataque de L1TF específicos para las configuraciones de su sistema. Deben aplicarse todas las acciones que se encuentren. Si encuentra una línea verde, indica una ruta directa hacia el final y que no hay más pasos de mitigación. 

Se incluye una explicación resumida de cada mitigación en la leyenda en la derecha. Se proporcionan explicaciones para cada mitigación que incluyen instrucciones de instalación y configuración paso a paso en la sección "Mitigaciones" .

Diagrama de flujo

 

Mitigaciones


Importante: En la siguiente sección se describen las mitigaciones que se deben aplicar SOLO bajo condiciones específicas determinadas por el diagrama de flujo en la Figura 1 de la sección anterior. NO aplique estas mitigaciones a menos que el diagrama de flujo indique que se necesita dicha mitigación específica.

Además de las actualizaciones de software y microcódigo, es posible que también se necesiten cambios de configuración para habilitar ciertas protecciones. También recomendamos que los clientes Enterprise se registren al troyano de envío de correo electrónico de notificaciones de seguridad para obtener alertas sobre cambios de contenido. (Consulte Notificaciones técnicas de seguridad de Microsoft).

Mitigación A

Obtenga y aplique las actualizaciones de Windows más recientes

Aplique todas las actualizaciones del sistema operativo Windows disponibles, incluidas las actualizaciones de seguridad mensuales de Windows. Puede consultar la tabla de productos afectados en el Aviso de seguridad de Microsoft | ADV 180018 para L1TF y en el Aviso de seguridad | ADV 190013 para MDS.

Mitigación B

Obtenga y aplique las actualizaciones de microcódigo o firmware más recientes

Además de la instalación de las actualizaciones de seguridad de Windows más recientes, también es necesaria la actualización del microcódigo del procesador. El OEM del dispositivo proporciona la instalación de estas actualizaciones.

Nota: Si usa virtualización anidada (incluidos los contenedores de Hyper-V que se ejecutan en una VM de invitado), debe exponer las nuevas optimizaciones de microcódigo en la VM de invitado. Esto puede requerir actualizar la configuración de la VM a la versión 8. La versión 8 incluye las optimizaciones de microcódigo de forma predeterminada. Para obtener más información y los pasos requeridos, consulte el siguiente artículo de Microsoft Docs:

Ejecute Hyper-V en una máquina virtual con virtualización anidada

Mitigación C

¿Debo deshabilitar la tecnología hyper-threading (HT)?

Las vulnerabilidades de L1TF y MDS presentan un riesgo que implica que la confidencialidad de las máquinas virtuales de Hyper-V y los secretos que mantiene la seguridad basada en virtualización (VBS) de Microsoft puedan verse comprometidos mediante un ataque de canal lateral. Cuando la tecnología Hyper-Threading (HT) está habilitada, disminuyen los límites de seguridad de Hyper-V y VBS.

El programador de núcleos de Hyper-V (disponible a partir de Windows Server 2016 y Windows 10, versión 1607) mitiga los vectores de ataque L1TF y MDS contra las máquinas virtuales de Hyper-V y, al mismo tiempo, permite que la tecnología Hyper-Threading permanezca habilitada. De esta forma, el impacto en el rendimiento es mínimo.

El programador de núcleos Hyper-V no mitiga los vectores de ataque L1TF o MDS contra las características de seguridad protegidas con VBS. Las vulnerabilidades de L1TF y MDS presentan un riesgo por el que la confidencialidad de los secretos de VBS podrían verse comprometidos mediante un ataque de canal lateral cuando la tecnología Hyper-Threading (HT) está habilitada, disminuyendo así los límites de seguridad de VBS. Incluso con este mayor riesgo, VBS aún proporciona importantes ventajas de seguridad y mitiga una variedad de ataques con HT habilitado. Por lo tanto, recomendamos que se siga usando VBS en sistemas con HT habilitado. Los clientes que quieran eliminar el riesgo potencial de las vulnerabilidades de L1TF y MDS en relación con la confidencialidad de VBS deberían pensar en deshabilitar HT para mitigar este riesgo adicional.

Los clientes que quieran eliminar el riesgo que presentan las vulnerabilidades de L1TF y MDS, ya sea con respecto a la confidencialidad de las versiones de Hyper-V anteriores a Windows Server 2016 o el riesgo con respecto a las capacidades de seguridad de VBS, deben considerar la decisión y pensar en deshabilitar HT para mitigar el riesgo. En general, esta decisión puede basarse en las siguientes pautas:

  • En el caso de los sistemas Windows 10 versión 1607, Windows Server 2016 y otros más recientes que no ejecutan Hyper-V y no utilizan características de seguridad protegidas con VBS, los clientes no deben deshabilitar HT.
  • En el caso de los sistemas Windows 10 versión 1607, Windows Server 2016 y otros más recientes que ejecutan Hyper-V con el programador de núcleos y no utilizan características de seguridad protegidas con VBS, los clientes no deben deshabilitar HT.
  • En el caso de los sistemas Windows 10 versión 1511, Windows Server 2012 R2 y anteriores que ejecutan Hyper-V, los clientes deben considerar deshabilitar la tecnología HT para mitigar el riesgo.

Los pasos necesarios para deshabilitar HT difieren en función del OEM. Sin embargo, son prácticamente parte de la instalación del BIOS o firmware y de las herramientas de configuración.

Microsoft también incluye la posibilidad de deshabilitar la tecnología Hyper-Threading a través de una configuración de software si es difícil o imposible deshabilitar HT en la BIOS, en la configuración de firmware o en las herramientas de configuración. La configuración de software para deshabilitar HT es secundaria a la configuración del firmware o la BIOS, y está deshabilitada de forma predeterminada (lo que significa que HT seguirá la configuración del firmware o la BIOS). Para obtener más información sobre esta configuración o cómo deshabilitar HT con ella, consulte el artículo siguiente:

Guía de Windows Server para protegerse contra vulnerabilidades del canal lateral de ejecución especulativa

Cuando sea posible, se recomienda deshabilitar HT en la BIOS o el firmware para asegurar todavía más que HT está deshabilitado.

Nota: La deshabilitación de la tecnología Hyper-Threading reducirá los núcleos de la CPU. Esto puede afectar a las características que requieren un número mínimo de núcleos de la CPU para funcionar. Por ejemplo, Protección de aplicaciones de Windows Defender (WDAG).

Mitigación D

Habilite el programador de núcleos de Hyper-V y establezca el número de subprocesos de hardware de VM por núcleo a 2

Nota: Estos pasos de mitigación solo se aplican a las versiones de Windows Server 2016 y Windows 10 que son anteriores a la versión 1809. El programador de núcleos está habilitado de manera predeterminada en Windows Server 2019 y Windows 10, versión 1809.

El uso del programador de núcleos es un proceso de dos etapas que requiere que primero habilite el programador en el host de Hyper-V y luego configure cada VM para aprovecharlo al establecer su número de subprocesos por núcleo a dos (2).

El programador de núcleos Hyper-V que se introdujo por primera vez en Windows Server 2016 y Windows 10, versión 1607 es una nueva alternativa a la lógica clásica del programador. El programador de núcleos ofrece una menor variabilidad de rendimiento para las cargas de trabajo dentro de las VM que se ejecutan en un host Hyper-V habilitado para HT.

Para obtener una explicación detallada del programador de núcleos de Hyper-V y los pasos para habilitarlo, consulte el siguiente artículo de Windows IT Pro Center:

Comprensión y uso de los tipos de programador de hipervisor de Hyper-V

Para habilitar el programador de núcleos de Hyper-V en Windows Server 2016 o Windows 10, escriba el siguiente comando:

bcdedit /set HypervisorSchedulerType core

A continuación, decida si quiere configurar un número de subprocesos de hardware de cierta VM por núcleo a dos (2). Si expone el hecho de que los procesadores virtuales cuentan con la tecnología Hyper-Thread hacia una máquina virtual de invitado, habilite el programador en el sistema operativo de la VM y también en las cargas de trabajo de la VM para usar HT en su propio programa de trabajo. Para tal fin, escriba el siguiente comando de PowerShell, donde  <VMName> es el nombre de la máquina virtual:

Set-VMProcessor -VMName <VMName> -HwThreadCountPerCore 2

Mitigación E

Habilitar mitigaciones para avisos CVE-2017-5715 y CVE-2017-5754

Nota: Estas mitigaciones están habilitadas de manera predeterminada en los sistemas operativos Windows Client y Windows Server 2019.

Para habilitar mitigaciones para avisos CVE-2017-5715 y CVE-2017-5754, use la guía en el siguiente artículo:

KB 4072698 | Guía de Windows Server para protegerse contra vulnerabilidades del canal lateral de ejecución especulativa

KB 4073119 | Guía del cliente Windows para profesionales de TI para protegerse contra vulnerabilidades del canal lateral de ejecución especulativa

 

Nota: Estas mitigaciones incluyen y habilitan automáticamente la mitigación segura de bits de marco de página para el kernel de Windows y para las mitigaciones que se describen en CVE-2018-3620. Para obtener una explicación detallada de la mitigación segura de bits de marco de página , consulte el siguiente artículo del blog Security Research & Defense:

Análisis y mitigación de L1 Terminal Fault (L1TF)