Fecha |
Descripción de cambio |
---|---|
27 de octubre de 2023 |
Se han agregado referencias a la mitigación B |
17 de julio de 2023 |
Se ha agregado información de MMIO |
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:
-
CVE-2018-11091 |Memoria no almacenada en caché de muestreo de datos de microarquitectura (MDSUM)
-
CVE-2018-12126 | Muestreo de datos de búfer del almacén de microarquitecturas (MSBDS)
-
CVE-2018-12127 | Muestreo de datos de búfer de relleno microarchitectural (MFBDS)
-
CVE-2018-12130 | Muestreo de datos de puertos de carga microarchitectural (MLPDS)
ACTUALIZADO EL 12 DE NOVIEMBRE DE 2019: El 12 de noviembre de 2019, Intel publicó un aviso técnico relacionado con la vulnerabilidad Anulación asincrónica de transacciones de Intel® Transactional Synchronization Extensions (Intel® TSX) a la que se le asignó el aviso CVE-2019-11135. Microsoft ha publicado actualizaciones para ayudar a mitigar esta vulnerabilidad. Tenga en cuenta lo siguiente:
-
De manera predeterminada, las protecciones del sistema operativo están habilitadas en algunas ediciones de SO de Windows Server. Vea Microsoft Knowledge Base artículo 4072698 para obtener más información.
-
De manera predeterminada, las protecciones del sistema operativo están habilitadas en algunas en todas las ediciones de SO de cliente Windows. Vea Microsoft Knowledge Base artículo 4073119 para obtener más información.
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 está trabajando junto con Intel para desarrollar mitigaciones de software e instrucciones. Se han publicado actualizaciones de software para ayudar a mitigar las vulnerabilidades. Para obtener todas las protecciones disponibles, es posible que se requieran actualizaciones que también podrían incluir microcódigo de OEM de dispositivo.
En este artículo se describe cómo mitigar las siguientes vulnerabilidades:
-
CVE-2018-3620 | Sistema operativo de error de terminal L1, SMM
-
CVE-2018-3646 | VMM de error de terminal L1
-
CVE-2018-11091 | Memoria no almacenada en caché de muestreo de datos de microarquitectura (MDSUM)
-
CVE-2018-12126 | Muestreo de datos del búfer del almacén de microarquitecturas (MSBDS)
-
CVE-2018-12127 | Muestreo de datos de puerto de carga de microarquitectura (MLPDS)
-
CVE-2018-12130 | Muestreo de datos de búfer de relleno de microarquitectura (MFBDS)
-
CVE-2019-11135 | Vulnerabilidad de divulgación de información del kernel de Windows
-
CVE-2022-21123 | Lectura de datos del búfer compartido (SBDR)
-
CVE-2022-21125 | Muestreo de datos en búfer compartido (SBDS)
-
CVE-2022-21127 | Actualización del muestreo de datos del búfer de registro especial (actualización SRBDS)
-
CVE-2022-21166 | Escritura parcial del registro del dispositivo (DRPW)
Para obtener más información sobre las vulnerabilidades, consulte los siguientes avisos de seguridad:
L1TF: ADV180018 | Instrucciones de Microsoft para mitigar la variante L1TF
Vulnerabilidad de divulgación de información del kernel de Windows: CVE-2019-11135 | Vulnerabilidad de divulgación de información del kernel de Windows
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:
-
En el menú Inicio, escriba MSINFO32.
Nota: Se abre la ventana información del sistema. -
En el cuadro Buscar, escriba seguridad.
-
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.
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 principal no mitiga los vectores de ataque L1TF o MDS contra las características de seguridad protegidas con VBS. Para obtener más información, consulte C de mitigacióny el siguiente artículo del Blog de virtualización:
Para obtener información de Intel sobre el impacto de rendimiento, vaya al siguiente sitio web de Intel:
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.
Al navegar por el diagrama de flujo, encontrará círculos azules con letras que se asignan a una acción o a una serie de acciones necesarias para mitigar los vectores de ataque L1TF específicos de las configuraciones del sistema . Se debe aplicar cada acción que encuentre. Cuando se encuentra una línea verde, indica una ruta de acceso directa al final y no hay ningún paso de mitigación adicional.
En la leyenda de la derecha se incluye una explicación abreviada de cada mitigación con letras. En la sección "Mitigaciones" se proporcionan explicaciones detalladas de cada mitigación que incluyen instrucciones de instalación y configuración paso a paso.
Mitigaciones
Importante: En la sección siguiente se describen las mitigaciones que deben aplicarse SOLO en las condiciones específicas determinadas por el diagrama de flujo de figura 1 de la sección anterior. NO aplique estas mitigaciones a menos que el diagrama de flujo indique que la mitigación específica es necesaria.
Además de las actualizaciones de software y microcódigo, también pueden ser necesarios cambios de configuración manuales para habilitar ciertas protecciones. Además, se recomienda que los clientes de Enterprise se registren en el buzón de correo de notificaciones de seguridad para recibir alertas sobre los cambios de contenido. (Consulte notificaciones de seguridad técnica de Microsoft).
Mitigación A
Obtenga y aplique las actualizaciones de Windows más recientes
Aplique todas las actualizaciones disponibles del sistema operativo Windows, incluidas las actualizaciones de seguridad de Windows mensuales. Puede ver la tabla de productos afectados en el aviso de seguridad de Microsoft | ADV 180018 para L1TF, aviso de seguridad | ADV 190013 para MDS, aviso de seguridad | ADV220002 para MMIO y vulnerabilidad de seguridad | CVE-2019-11135 para la vulnerabilidad de divulgación de información del kernel de Windows.
Mitigación B
Obtenga y aplique las actualizaciones de microcódigo o firmware más recientes
Además de instalar las últimas actualizaciones de seguridad de Windows, también puede ser necesario un microcódigo de procesador o una actualización de firmware. Se recomienda obtener y aplicar la actualización de microcódigo más reciente según corresponda para el dispositivo desde el OEM del dispositivo. Para obtener más información acerca de las actualizaciones de microcódigo o firmware, consulte las siguientes referencias:
Nota: Si usa la virtualización anidada (incluida la ejecución de contenedores de Hyper-V en una máquina virtual invitada), debe exponer las nuevas optimizaciones de microcódigo a la máquina virtual invitada. Esto puede requerir la actualización de la configuración de la máquina virtual 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:
Ejecutar 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:
4072698 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 hyperthreading reducirá los núcleos de CPU. Esto puede afectar a las características cuyo funcionamiento requiere núcleos de CPU mínimos. 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:
Descripción y uso de 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 desea configurar el número de subprocesos de hardware de una máquina virtual determinada por núcleo en dos (2). Si expone el hecho de que los procesadores virtuales están hiperprocesos en una máquina virtual invitada, habilite el programador en el sistema operativo de la máquina virtual , y también en las cargas de trabajo de máquina virtual , para usar HT en su propia programación de trabajo. Para ello, escriba el siguiente comando de PowerShell, en el que <VMName> es el nombre de la máquina virtual:
Set-VMProcessor -VMName <VMName> -HwThreadCountPerCore 2
Mitigación E
Habilitar mitigaciones para los avisos CVE-2017-5715, CVE-2017-5754 y CVE-2019-11135
Nota: Estas mitigaciones están habilitadas de manera predeterminada en los sistemas operativos Windows Client y Windows Server 2019.
Para habilitar mitigaciones para los avisos CVE-2017-5715, CVE-2017-5754 y CVE-2019-11135, use la guía en el siguiente artículo:
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:
Referencias
Guía para mitigar las vulnerabilidades de canal lateral de ejecución especulativa en Azure
Los productos de otros fabricantes que se mencionan en este artículo han sido creados por compañías independientes de Microsoft. No ofrecemos ninguna garantía, ya sea implícita o de otro tipo, sobre la confiabilidad o el rendimiento de dichos productos.
Proporcionamos información de contacto de otros proveedores para ayudarle a encontrar soporte técnico. Dicha información de contacto puede cambiar sin notificación previa. No garantizamos la precisión de esta información de contacto de terceros.