Salida de script de PowerShell Get-SpeculationControlSettings

Se aplica a: Windows 10

Resumen


Para ayudar a los clientes comprobar el estado de las mitigaciones del canal lateral de ejecución especulativa, Microsoft publicó un script de PowerShell que los clientes pueden ejecutar en sus sistemas. En este tema se explica cómo se ejecuta el script y lo que significa la salida.

Los avisos ADV180002ADV180012, ADV180018 y ADV190013 cubren nueve vulnerabilidades:

  • CVE-2017-5715 (inserción de destino de bifurcación)
  • CVE-2017-5753 (omisión de comprobación de límites)
  • CVE-2017-5754 (carga de caché de datos no autorizada)
  • CVE-2018-3639 (derivación de almacenamiento especulativo)
  • CVE-2018-3620 (L1 terminal fault –OS)
  • 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-12130 (Muestreo de datos de búfer de relleno de microarquitectura (MFBDS))

La protección para CVE-2017-5753 (comprobación de límites) no requiere configuración adicional del Registro ni actualizaciones de firmware. En este tema se proporcionan detalles sobre el script de PowerShell que ayuda a determinar el estado de las mitigaciones para varios de los CVE que se enumeran arriba y que requieren configuración adicional del Registro y, en algunos casos, actualizaciones de firmware.

Más información


Instale y ejecute el script mediante la ejecución de los comandos siguientes:

Verificación de PowerShell con la Galería de PowerShell (Windows Server 2016 o WMF 5.0/5.1)

Instalación del módulo de PowerShell

PS> Install-Module SpeculationControl

Ejecución del módulo de PowerShell para validar que las protecciones están habilitadas

PS> # Save the current execution policy so it can be reset

PS> $SaveExecutionPolicy = Get-ExecutionPolicy

PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser

PS> Import-Module SpeculationControl

PS> Get-SpeculationControlSettings

PS> # Reset the execution policy to the original state

PS> Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser

Verificación de PowerShell con una descarga de Technet (versiones anteriores del sistema operativo o de WMF)

Instalación del módulo de PowerShell desde el Centro de scripts de TechNet

  1. Vaya a https://aka.ms/SpeculationControlPS
  2. Descargue SpeculationControl.zip en una carpeta local.
  3. Extraiga el contenido en una carpeta local, por ejemplo, C:\ADV180002

Ejecución del módulo de PowerShell para validar que las protecciones están habilitadas

Inicie PowerShell y, luego, usando el ejemplo anterior, copie y ejecute los comandos siguientes:

PS> # Save the current execution policy so it can be reset

PS> $SaveExecutionPolicy = Get-ExecutionPolicy

PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser

PS> CD C:\ADV180002\SpeculationControl

PS> Import-Module.\SpeculationControl.psd1

PS> Get-SpeculationControlSettings

PS> # Reset the execution policy to the original state

PS> Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser


La salida de este script PowerShell se parecerá a la siguiente. Las protecciones habilitadas se mostrarán en la salida como “True”.

PS C:\> Get-SpeculationControlSettings
Speculation control settings for CVE-2017-5715 [branch target injection]
Hardware support for branch target injection mitigation is present: False
Windows OS support for branch target injection mitigation is present: True
Windows OS support for branch target injection mitigation is enabled: False
Windows OS support for branch target injection mitigation is disabled by system policy: True
Windows OS support for branch target injection mitigation is disabled by absence of hardware support: True
Speculation control settings for CVE-2017-5754 [rogue data cache load]
Hardware requires kernel VA shadowing: True
Windows OS support for kernel VA shadow is present: False
Windows OS support for kernel VA shadow is enabled: False
Windows OS support for PCID optimization is enabled: False

Speculation control settings for CVE-2018-3639 [speculative store bypass]

Hardware is vulnerable to speculative store bypass: True
Hardware support for speculative store bypass mitigation is present: False
Windows OS support for speculative store bypass mitigation is present: True
Windows OS support for speculative store bypass mitigation is enabled system-wide: False

Configuración del control de especulación para CVE-2018-3620 [L1 terminal fault]

Hardware is vulnerable to L1 terminal fault: True
Windows OS support for L1 terminal fault mitigation is present: True
Windows OS support for L1 terminal fault mitigation is enabled: True

Configuración del control de especulación para MDS (muestreo de datos de microarquitectura)

Existe soporte del SO Windows para la mitigación de MDS: Verdadero
El hardware es vulnerable a MDS: Verdadero
El soporte del SO Windows para la mitigación de MDS está habilitado: Verdadero



BTIHardwarePresent: False
BTIWindowsSupportPresent: True
BTIWindowsSupportEnabled: False
BTIDisabledBySystemPolicy: True
BTIDisabledByNoHardwareSupport: True
KVAShadowRequired: True
KVAShadowWindowsSupportPresent: False
KVAShadowWindowsSupportEnabled: False
KVAShadowPcidEnabled: False
SSBDWindowsSupportPresent: True
SSBDHardwareVulnerablePresent: True
SSBDHardwarePresent: True
SSBDWindowsSupportEnabledSystemWide: False
L1TFHardwareVulnerable: True
L1TFWindowsSupportPresent: True
L1TFWindowsSupportEnabled: True
L1TFInvalidPteBit: 45
L1DFlushSupported: False
MDSWindowsSupportPresent: True
MDSHardwareVulnerable: True
MDSWindowsSupportEnabled: True

La cuadrícula de salida final se asigna a la salida de las líneas precedentes. Esto aparece porque PowerShell imprime el objeto que devuelve una función. En la tabla siguiente se explica cada línea.

Salida

Explicación

Configuración del control de especulación de CVE-2017-5715 [inserción de destino de bifurcación]

En esta sección se proporciona el estado del sistema para la inserción de destino de bifurcación de la variante 2, CVE-2017-5715 .

Existe compatibilidad de hardware para la mitigación de la inserción de destino de bifurcación

Se asigna a BTIHardwarePresent. En esta línea se indica si existen características de hardware para la compatibilidad con la mitigación de la inserción de destino de bifurcación. El OEM de dispositivo es responsable de proporcionar el BIOS/firmware actualizado que contiene el microcódigo proporcionado por los fabricantes de CPU. Si esta línea es Verdadera, existen las características de hardware necesarias. Si la línea es Falsa, las características de hardware necesarias no están presentes y, por lo tanto, la mitigación de la inserción de destino de bifurcación no se puede habilitar.

NotaBTIHardwarePresent será Verdadera en las máquinas virtuales invitadas si se aplicó la actualización del OEM al host y se siguen estas instrucciones.

Existe compatibilidad del SO Windows para la mitigación de la inserción de destino de bifurcación

Se asigna a BTIWindowsSupportPresent. En esta línea se indica si existe compatibilidad del sistema operativo Windows para la mitigación de la inserción de destino de bifurcación. Si es Verdadera, el sistema operativo admite la habilitación de la mitigación de la inserción de destino de bifurcación (y, por lo tanto, ha instalado la actualización de enero de 2018). Si es Falsa, la actualización de enero de 2018 no se ha instalado en el sistema y la mitigación de la inserción de destino de bifurcación no se puede habilitar.

NotaSi una máquina virtual invitada no puede detectar la actualización de hardware del host, BTIWindowsSupportEnabled será siempre Falsa.

La compatibilidad del SO Windows para la mitigación de la inserción de destino de bifurcación está habilitada

Se asigna a BTIWindowsSupportEnabled. En esta línea se indica si está habilitada la compatibilidad del sistema operativo Windows para la mitigación de la inserción de destino de bifurcación. Si es Verdadera, la compatibilidad de hardware y la compatibilidad de SO para la mitigación de la inserción de destino de bifurcación está habilitada para el dispositivo, por lo tanto, está protegido contra CVE-2017-5715. Si es Falsa, una de las siguientes condiciones es verdadera:

  • No existe compatibilidad de hardware.
  • No existe compatibilidad de sistema operativo.
  • La directiva del sistema ha deshabilitado la mitigación.

Una directiva del sistema ha deshabilitado la compatibilidad del SO Windows para la mitigación de la inserción de destino de bifurcación

Se asigna a BTIDisabledBySystemPolicy. En esta línea se indica si una directiva del sistema ha deshabilitado la mitigación de la inserción de destino de bifurcación (como una directiva definida por el administrador). La directiva del sistema hace referencia a los controles del registro documentados en el artículo KB 4072698. Si es Verdadera, la directiva del sistema es responsable de la deshabilitación de la mitigación. Si es Falsa, la mitigación se ha deshabilitado por otra causa.

La ausencia de compatibilidad de hardware ha deshabilitado la compatibilidad del SO Windows para la mitigación de la inserción de destino de bifurcación

Se asigna a BTIDisabledByNoHardwareSupport. En esta línea se indica si la mitigación de la inserción de destino de bifurcación se ha deshabilitado debido a la ausencia de compatibilidad de hardware. Si es Verdadera, la ausencia de compatibilidad de hardware es responsable de la deshabilitación de la mitigación. Si es Falsa, la mitigación se ha deshabilitado por otra causa.

Nota Si una máquina virtual invitada no puede detectar la actualización de hardware del host, BTIDisabledByNoHardwareSupport será siempre Verdadera.

Configuración del control de especulación de CVE-2017-5754 (carga de caché de datos no autorizada)

En esta sección se proporciona el resumen del estado del sistema para la carga de caché de datos no autorizada de la variante 3, CVE-2017-5754. La mitigación para esto se conoce como sesión recurrente de dirección virtual (VA) del kernel o carga de caché de datos no autorizada.

El hardware requiere sesión recurrente de VA del kernel

Se asigna a KVAShadowRequired. En esta línea se indica si el hardware es vulnerable a CVE-2017-5754. Si es Verdadera, se cree que el hardware es vulnerable a CVE-2017-5754. Si es Falsa, se sabe que el hardware no es vulnerable a CVE-2017-5754.

Existe compatibilidad del SO Windows para la sesión recurrente de VA del kernel

Se asigna a KVAShadowWindowsSupportPresent. En esta línea se indica si existe compatibilidad del sistema operativo Windows para la función de sesión recurrente de VA del kernel. Si es Verdadera, la actualización de enero de 2018 está instalada en el dispositivo y la sesión recurrente de VA del kernel es compatible. Si es Falsa, la actualización de enero de 2018 no está instalada y no existe compatibilidad de sesión recurrente de VA del kernel.

La compatibilidad del SO Windows para la sesión recurrente de VA del kernel está habilitada:

Se asigna a KVAShadowWindowsSupportEnabled. En esta línea se indica si se ha habilitado la función de sesión recurrente de VA del kernel. Si es Verdadera, se cree que el hardware es vulnerable a CVE-2017-5754, la compatibilidad del sistema operativo Windows está presente y la característica se ha habilitado. La función de sesión recurrente de VA del kernel está habilitada actualmente de forma predeterminada en las versiones cliente de Windows y deshabilitada de forma predeterminada en las versiones de Windows Server. Si es Falsa, la compatibilidad del sistema operativo Windows no está presente o la característica no se ha habilitado.

La compatibilidad del SO Windows para la optimización de PCID está habilitada

NotaPCID no es necesario para la seguridad. Solo indica si una mejora de rendimiento está habilitada. PCID no es compatible con Windows Server 2008 R2

Se asigna a KVAShadowPcidEnabled. En esta línea se indica si se ha habilitado la optimización del rendimiento adicional para la sesión recurrente de VA del kernel. Si es Verdadera, la sesión recurrente de VA del kernel está habilitada, la compatibilidad de hardware para PCID está presente y se ha habilitado la sesión recurrente de VA del kernel. Si es Falsa, puede que el hardware el sistema operativo no admita el PCID. No es un punto débil de la seguridad que no se habilite la optimización de PCID.

Existe compatibilidad de Windows con la deshabilitación de la derivación de almacenamiento especulativo

Se asigna a SSBDWindowsSupportPresent. En esta línea se indica si existe compatibilidad del sistema operativo Windows para la deshabilitación de la derivación de almacenamiento especulativo. Si es Verdadera, la actualización de enero de 2018 está instalada en el dispositivo y la sesión recurrente de VA del kernel es compatible. Si es Falsa, la actualización de enero de 2018 no está instalada y no existe compatibilidad de sesión recurrente de VA del kernel.

El hardware requiere la deshabilitación de la derivación de almacenamiento especulativo

Se asigna a SSBDHardwareVulnerablePresent. En esta línea se indica si el hardware es vulnerable a CVE-2018-3639. Si es Verdadera, se cree que el hardware es vulnerable a CVE-2018-3639. Si es Falsa, se sabe que el hardware no es vulnerable a CVE-2018-3639.

Existe compatibilidad de hardware con la deshabilitación de la derivación de almacenamiento especulativo

Se asigna a SSBDHardwarePresent. En esta línea se indica si existen características de hardware para la compatibilidad con la deshabilitación de la derivación de almacenamiento especulativo. El OEM del dispositivo es responsable de proporcionar el BIOS o firmware actualizado que contiene el microcódigo proporcionado por Intel. Si esta línea es Verdadera, existen las características de hardware necesarias. Si la línea es Falsa, las características de hardware necesarias no están presentes y, por lo tanto, no se puede activar la deshabilitación de la derivación de almacenamiento especulativo.

Nota SSBDHardwarePresent será Verdadera en las máquinas virtuales invitadas si se aplicó la actualización del OEM al host.

 

La compatibilidad de Windows con la deshabilitación de la derivación de almacenamiento especulativo está activada

Se asigna a SSBDWindowsSupportEnabledSystemWide. En esta línea se indica si se ha activado la deshabilitación de la derivación de almacenamiento especulativo en sistema operativo Windows. Si es Verdadera, la compatibilidad de hardware y el sistema operativo con la derivación de almacenamiento especulativo se ha activado en el dispositivo, lo que impide que se produzca la derivación de almacenamiento especulativo y, por lo tanto, se elimina el riesgo de seguridad por completo. Si es Falsa, una de las condiciones siguientes es verdadera:

  • No existe compatibilidad de hardware.
  • No existe compatibilidad de sistema operativo.
  • No se ha activado la deshabilitación de la derivación de almacenamiento especulativo a través de las claves del Registro. Consulte los artículos siguientes para obtener instrucciones sobre cómo activar esto:

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

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

 

Configuración del control de especulación para CVE-2018-3620 [L1 terminal fault]

Esta sección proporciona un estado de sistema resumido para L1TF (sistema operativo) conocido como CVE-2018-3620. Esta mitigación asegura que los bits de marco de la página segura se utilicen para entradas de tabla de página no válida o no presente.

Tenga en cuenta que esta sección no proporciona un resumen del estado de la mitigación para L1TF (VMM) conocida como CVE-2018-3646.

El hardware es vulnerable a L1 terminal fault. Verdadera Se asigna a L1TFHardwareVulnerable. En esta línea se indica si el hardware es vulnerable a L1 Terminal Fault (L1TF, CVE-2018-3620). Si es Verdadera, se cree que el hardware es vulnerable a CVE-2018-3620. Si es Falsa, se sabe que el hardware no es vulnerable a CVE-2018-3620.
Existe soporte del SO Windows para la mitigación de L1 terminal fault: Verdadera Se asigna a L1TFWindowsSupportPresent. En esta línea se indica si existe compatibilidad del sistema operativo Windows para la mitigación del sistema operativo de L1 Terminal Fault (L1TF). Si es Verdadera, la actualización de agosto de 2018 está instalada en el dispositivo y existe mitigación para CVE-2018-3620. Si es Falsa, la actualización de agosto de 2018 no está instalada y no existe mitigación para CVE-2018-3620.
El soporte del SO Windows para la mitigación de L1 terminal fault está habilitado: Verdadera Se asigna a L1TFWindowsSupportEnabled. En esta línea se indica si la mitigación del sistema operativo Windows para L1 Terminal Fault (L1TF, CVE-2018-3620) está habilitada. Si es Verdadera, se cree que el hardware es vulnerable a CVE-2018-3620, la compatibilidad del sistema operativo Windows está presente y la característica se ha habilitado. Si es Falsa, el hardware no es vulnerable, la compatibilidad del sistema operativo Windows no está presente o la característica no se ha habilitado.
Configuración del control de especulación para MDS (Muestreo de datos de microarquitectura) En esta sección se proporciona el estado del sistema para el conjunto MDS de vulnerabilidades, CVE-2018-11091, CVE-2018-12126, CVE-2018-12127 y CVE-2018-12130
Existe soporte del SO Windows para la mitigación de MDS Se asigna a MDSWindowsSupportPresent. En esta línea se indica si existe compatibilidad del sistema operativo Windows para la mitigación del sistema operativo de MDS (Muestreo de datos de microarquitectura) Si es verdadero, la actualización de mayo de 2019 está instalada en el dispositivo y existe mitigación para MDS. Si es falso, la actualización de mayo de 2019 no está instalada y no existe mitigación para MDS.
El hardware es vulnerable a MDS Se asigna a MDSHardwareVulnerable. En esta línea se indica si el hardware es vulnerable al conjunto de vulnerabilidades de MDS (Muestreo de datos de microarquitectura) (CVE-2018-11091, CVE-2018-12126, CVE-2018-12127, CVE-2018-12139). Si es verdadero, se cree que estas vulnerabilidades afectarán al hardware. Si es falso, se sabe que el hardware no es vulnerable.
 
El soporte del SO Windows para la mitigación de MDS está habilitado Se asigna a MDSWindowsSupportEnabled. En esta línea se indica si la mitigación del sistema operativo Windows está habilitada para MDS (Muestreo de datos de microarquitectura). Si es verdadero, se cree que el hardware se verá afectado por las vulnerabilidades de MDS, existe compatibilidad del sistema operativo Windows para la mitigación y la mitigación se ha habilitado. Si es Falsa, el hardware no es vulnerable, la compatibilidad del sistema operativo Windows no está presente o la característica no se ha habilitado.

Se espera la salida siguiente para un equipo con todas las mitigaciones habilitadas, junto con lo necesario para satisfacer cada condición.

BTIHardwarePresent: True -> apply OEM BIOS/firmware update
BTIWindowsSupportPresent: True -> install January 2018 update
BTIWindowsSupportEnabled: True -> on client, no action required. On server, follow guidance .
BTIDisabledBySystemPolicy: False -> ensure not disabled by policy.
BTIDisabledByNoHardwareSupport: False -> ensure OEM BIOS/firmware update is applied.
KVAShadowRequired: True or False -> no action, this is a function of the CPU the computer uses


If KVAShadowRequired is True
KVAShadowWindowsSupportPresent: True -> install January 2018 update
KVAShadowWindowsSupportEnabled: True -> on client, no action required. On server, follow guidance .
KVAShadowPcidEnabled: True or False -> no action , this is a function of the CPU the computer uses

If SSBDHardwareVulnerablePresent is True
SSBDWindowsSupportPresent: True -> install Windows updates as documented in adv180012
SSBDHardwarePresent: True -> install BIOS/firmware update with support for SSBD from your device OEM

SSBDWindowsSupportEnabledSystemWide: True -> follow recommended actions to turn on SSBD

If L1TFHardwareVulnerable is True
L1TFWindowsSupportPresent: True -> install Windows updates as documented in adv180018
L1TFWindowsSupportEnabled: True -> follow actions outlined in adv180018 for Windows Server or Client as appropriate to enable the mitigation

En la tabla siguiente se asigna la salida a las claves del registro que se cubren en la Guía de Windows Server para protegerse contra vulnerabilidades del canal lateral de ejecución especulativa.

Clave del Registro

Asignación

FeatureSettingsOverride – Bit 0

Se asigna a inserción de destino de bifurcación: BTIWindowsSupportEnabled

FeatureSettingsOverride – Bit 1

Se asigna a carga de caché de datos no autorizada: VAShadowWindowsSupportEnabled