Présentation des résultats du script PowerShell Get-SpeculationControlSettings

S’applique à : Windows 10

Résumé


Pour vous aider à vérifier l’état des atténuations du canal auxiliaire d’exécution spéculative, Microsoft a publié un script PowerShell à exécuter sur votre système. Cet article explique comment exécuter le script et la signification des résultats.

Les avis ADV180002ADV180012, ADV180018 et ADV190013 concernent les neuf vulnérabilités suivantes :

  • CVE-2017-5715 (Branch Target Injection)
  • CVE-2017-5753 (Bounds Check Bypass)
  • CVE-2017-5754 (Rogue Data Cache Load)
  • CVE-2018-3639 (Speculative Store Bypass)
  • CVE-2018-3620 (L1 Terminal Fault - OS)
  • CVE-2018-11091 (Microarchitectural Data Sampling Uncacheable Memory (MDSUM))
  • CVE-2018-12126 (Microarchitectural Store Buffer Data Sampling (MSBDS))
  • CVE-2018-12127 (Microarchitectural Load Port Data Sampling (MLPDS))
  • CVE-2018-12130 (Microarchitectural Fill Buffer Data Sampling (MFBDS))

La protection pour CVE-2017-5753 (contrôle de limites) ne nécessite pas de paramètres de Registre supplémentaires ou de mises à jour du microprogramme. Cet article fournit des détails sur le script PowerShell qui permet de déterminer l’état des atténuations pour les vulnérabilités CVE mentionnées ci-dessus qui nécessitent des paramètres de Registre supplémentaires et, dans certains cas, des mises à jour du microprogramme.

Informations supplémentaires


Installez et exécutez le script à l’aide des commandes suivantes :

Vérification PowerShell à l’aide de PowerShell Gallery (Windows Server 2016 ou WMF 5.0/5.1)

Installation du module PowerShell

PS> Install-Module SpeculationControl

Exécution du module PowerShell pour vérifier que les protections sont activées

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

Vérification PowerShell à l’aide d’un téléchargement depuis TechNet (versions antérieures du système d’exploitation/WMF)

Installation du module PowerShell à partir de TechNet ScriptCenter

  1. Accédez à https://aka.ms/SpeculationControlPS.
  2. Téléchargez le fichier SpeculationControl.zip dans un dossier local.
  3. Extrayez le contenu dans un dossier local, par exemple C:\ADV180002.

Exécution du module PowerShell pour vérifier que les protections sont activées

Démarrez PowerShell, puis (à l’aide de l’exemple ci-dessus) copiez et exécutez les commandes suivantes :

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


Les résultats de ce script PowerShell se présentent comme suit. Les protections activées sont signalées par la valeur « 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

Speculation control settings for 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

Speculation control settings for MDS [microarchitectural data sampling]

Windows OS support for MDS mitigation is present: True
Hardware is vulnerable to MDS: True
Windows OS support for MDS mitigation is enabled: True



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 grille de sortie finale est associée à la sortie des lignes précédentes, car PowerShell imprime l’objet retourné par une fonction. Le tableau suivant explique chaque ligne.

Sortie

Explication

Speculation control settings for CVE-2017-5715 [branch target injection]

Cette section fournit l’état système pour la variante 2, CVE-2017-5715, Branch Target Injection.

Hardware support for branch target injection mitigation is present

Associée à BTIHardwarePresent. Cette ligne indique si des fonctionnalités matérielles sont présentes pour la prise en charge de l’atténuation d’injection cible de branche. Le fabricant OEM d’appareil est chargé de fournir le BIOS/microprogramme mis à jour contenant le microcode fourni par les fabricants de processeurs. Si cette ligne a la valeur True, les fonctionnalités matérielles requises sont présentes. Si la valeur de la ligne est False, les fonctionnalités matérielles requises ne sont pas présentes et l’atténuation contre la vulnérabilité Branch Target Injection ne peut pas être activée.

Remarque BTIHardwarePresent a la valeur True sur les ordinateurs virtuels invités si la mise à jour OEM a été appliquée à l’hôte et que les instructions sont suivies.

Windows OS support for branch target injection mitigation is present

Associée à BTIWindowsSupportPresent. Cette ligne indique si la prise en charge du système d’exploitation Windows est présente pour l’atténuation d’injection cible de branche. Si la valeur est True, le système d’exploitation prend en charge l’activation de l’atténuation contre Branch Target Injection (et a dès lors installé la mise à jour de janvier 2018). Si la valeur est False, la mise à jour de janvier 2018 n’a pas été installée sur le système et l’atténuation contre Branch Target Injection ne peut pas être activée.

Remarque Si un ordinateur virtuel invité ne peut pas détecter la mise à jour du matériel hôte, BTIWindowsSupportEnabled a toujours la valeur False.

Windows OS support for branch target injection mitigation is enabled

Associée à BTIWindowsSupportEnabled. Cette ligne indique si la prise en charge du système d’exploitation Windows est activée pour l’atténuation d’injection cible de branche. Si la valeur est True, la prise en charge matérielle et la prise en charge du système d’exploitation pour l’atténuation contre Branch Target Injection sont activées pour l’appareil, ce qui fournit une protection contre la vulnérabilité CVE-2017-5715. Si la valeur est False, l’une des conditions suivantes est remplie :

  • La prise en charge matérielle n’est pas présente.
  • La prise en charge du système d’exploitation n’est pas présente.
  • L’atténuation a été désactivée par la stratégie système.

Windows OS support for branch target injection mitigation is disabled by system policy

Associée à BTIDisabledBySystemPolicy. Cette ligne indique si l’atténuation d’injection cible de branche a été désactivée par la stratégie système (stratégie définie par l’administrateur, par exemple). La stratégie système fait référence aux contrôles de Registre documentés dans l’article KB 4072698. Si la valeur est True, la stratégie système est responsable de la désactivation de l’atténuation. Si la valeur est False, l’atténuation est désactivée par une autre cause.

Windows OS support for branch target injection mitigation is disabled by absence of hardware support

Associée à BTIDisabledByNoHardwareSupport. Cette ligne indique si l’atténuation d’injection cible de branche a été désactivée en raison de l’absence de prise en charge matérielle. Si la valeur est True, l’absence de prise en charge matérielle est responsable de la désactivation de l’atténuation. Si la valeur est False, l’atténuation est désactivée par une autre cause.

Remarque Si un ordinateur virtuel invité ne peut pas détecter la mise à jour du matériel hôte, BTIDisabledByNoHardwareSupport a toujours la valeur True.

Speculation control settings for CVE-2017-5754 [rogue data cache load]

Cette section fournit l’état système récapitulatif pour la variante 3, CVE-2017-5754, Rogue Data Cache Load. L’atténuation correspondante est appelée « shadow d’adresse virtuelle du noyau » ou « atténuation de chargement du cache de données non autorisé ».

Hardware requires kernel VA shadowing

Associée à KVAShadowRequired. Cette ligne indique si le matériel est vulnérable à CVE-2017-5754. Si la valeur est True, le matériel est vulnérable à CVE-2017-5754. Si la valeur est False, le matériel n’est pas vulnérable à CVE-2017-5754.

Windows OS support for kernel VA shadow is present

Associée à KVAShadowWindowsSupportPresent. Cette ligne indique si la prise en charge du système d’exploitation Windows est présente pour la fonctionnalité de shadow d’adresse virtuelle du noyau. Si la valeur est True, la mise à jour de janvier 2018 est installée sur l’appareil et la fonctionnalité de shadow d’adresse virtuelle du noyau est prise en charge. Si la valeur est False, la mise à jour de janvier 2018 n’est pas installée et la prise en charge de shadow d’adresse virtuelle du noyau n’existe pas.

Windows OS support for kernel VA shadow is enabled

Associée à KVAShadowWindowsSupportEnabled. Cette ligne indique si la fonctionnalité de shadow d’adresse virtuelle du noyau est activée. Si la valeur est True, le matériel est vulnérable à CVE-2017-5754, la prise en charge du système d’exploitation Windows est présente et la fonctionnalité est activée. La fonctionnalité de shadow d’adresse virtuelle du noyau est actuellement activée par défaut sur les versions client de Windows et désactivée par défaut sur les versions de Windows Server. Si la valeur est False, la prise en charge du système d’exploitation Windows n’est pas présente ou la fonctionnalité n’a pas été activée.

Windows OS support for PCID performance optimization is enabled

Remarque La fonctionnalité PCID n’est pas obligatoire à des fins de sécurité. Elle indique uniquement si une amélioration des performances est activée. La fonctionnalité PCID n’est pas prise en charge avec Windows Server 2008 R2.

Associée à KVAShadowPcidEnabled. Cette ligne indique si une optimisation supplémentaire des performances a été activée pour la fonctionnalité de shadow d’adresse virtuelle du noyau. Si la valeur est True, la fonctionnalité de shadow d’adresse virtuelle du noyau est activée, la prise en charge matérielle est présente pour la fonctionnalité PCID et l’optimisation PCID a été activée pour la fonctionnalité de shadow d’adresse virtuelle du noyau. Si la valeur est False, le matériel ou le système d’exploitation ne peut pas prendre en charge la fonctionnalité PCID. Si l’optimisation PCID n’est pas activée, cela ne constitue pas une faille de sécurité.

Windows OS support for Speculative Store Bypass Disable is present

Associée à SSBDWindowsSupportPresent. Cette ligne indique si la prise en charge du système d’exploitation Windows est présente pour la fonctionnalité Speculative Store Bypass Disable. Si la valeur est True, la mise à jour de janvier 2018 est installée sur l’appareil et la fonctionnalité de shadow d’adresse virtuelle du noyau est prise en charge. Si la valeur est False, la mise à jour de janvier 2018 n’est pas installée et la prise en charge de shadow d’adresse virtuelle du noyau n’existe pas.

Hardware requires Speculative Store Bypass Disable

Associée à SSBDHardwareVulnerablePresent. Cette ligne indique si le matériel est vulnérable à CVE-2018-3639. Si la valeur est True, le matériel est vulnérable à CVE-2018-3639. Si la valeur est False, le matériel n’est pas vulnérable à CVE-2018-3639.

Hardware support for Speculative Store Bypass Disable is present

Associée à SSBDHardwarePresent. Cette ligne indique si des fonctionnalités matérielles sont présentes pour la prise en charge de Speculative Store Bypass Disable. Le fabricant OEM d’appareil est chargé de fournir le BIOS/microprogramme mis à jour contenant le microcode fourni par Intel. Si cette ligne a la valeur True, les fonctionnalités matérielles requises sont présentes. Si la valeur de la ligne est False, les fonctionnalités matérielles requises ne sont pas présentes et la fonctionnalité Speculative Store Bypass Disable ne peut pas être activée.

Remarque SSBDHardwarePresent a la valeur True sur les ordinateurs virtuels invités si la mise à jour OEM a été appliquée à l’hôte.

 

Windows OS support for Speculative Store Bypass Disable is turned on

Associée à SSBDWindowsSupportEnabledSystemWide. Cette ligne indique si la fonctionnalité Speculative Store Bypass Disable a été activée sur le système d’exploitation Windows. Si la valeur est True, la prise en charge matérielle et la prise en charge du système d’exploitation pour Speculative Store Bypass Disable sont activées pour l’appareil, ce qui empêche la survenance de la vulnérabilité Speculative Store Bypass et élimine dès lors entièrement le risque de sécurité. Si la valeur est False, l’une des conditions suivantes est remplie :

  • La prise en charge matérielle n’est pas présente.
  • La prise en charge du système d’exploitation n’est pas présente.
  • La fonctionnalité Speculative Store Bypass Disable n’a pas été activée à l’aide des clés de Registre. Pour obtenir les instructions d’activation, consultez les articles suivants :

Instructions des clients Windows destinées aux professionnels de l’informatique concernant la protection contre les vulnérabilités de canal auxiliaire d’exécution spéculative

Instructions Windows Server concernant la protection contre les vulnérabilités de canal auxiliaire d’exécution spéculative

 

Speculation control settings for CVE-2018-3620 [L1 terminal fault]

Cette section fournit l’état système récapitulatif pour la vulnérabilité L1TF (système d’exploitation) désignée par la CVE-2018-3620. Cette atténuation garantit que des bits de cadre de page sécurisés sont utilisés pour les entrées de table de pages non présentes ou non valides.

Cette section ne fournit pas de synthèse de l’état d’atténuation pour la vulnérabilité L1TF (VMM) désignée par la CVE-2018-3646.

Hardware is vulnerable to L1 terminal fault: True Associée à L1TFHardwareVulnerable. Cette ligne indique si le matériel est vulnérable à L1 Terminal Fault (L1TF, CVE-2018-3620). Si la valeur est True, le matériel est vulnérable à CVE-2018-3620. Si la valeur est False, le matériel n’est pas vulnérable à CVE-2018-3620.
Windows OS support for L1 terminal fault mitigation is present: True Associée à L1TFWindowsSupportPresent. Cette ligne indique si la prise en charge du système d’exploitation Windows est présente pour l’atténuation du système d’exploitation pour L1 Terminal Fault (L1TF). Si la valeur est True, la mise à jour d’août 2018 est installée sur l’appareil et l’atténuation pour CVE-2018-3620 est présente. Si la valeur est False, la mise à jour d’août 2018 n’est pas installée et l’atténuation pour CVE-2018-3620 n’est pas présente.
Windows OS support for L1 terminal fault mitigation is enabled: True Associée à L1TFWindowsSupportEnabled. Cette ligne indique si l’atténuation du système d’exploitation Windows est activée pour L1 Terminal Fault (L1TF, CVE-2018-3620). Si la valeur est True, le matériel est vulnérable à CVE-2018-3620, la prise en charge du système d’exploitation Windows est présente pour l’atténuation et l’atténuation a été activée. Si la valeur est False, le matériel n’est pas vulnérable, la prise en charge du système d’exploitation Windows n’est pas présente ou l’atténuation n’a pas été activée.
Speculation control settings for MDS [Microarchitectural Data Sampling] Cette section fournit l’état système pour l’ensemble de vulnérabilités MDS CVE-2019-11091, CVE-2018-12126, CVE-2018-12127 et CVE-2018-12130.
Windows OS support for MDS mitigation is present Associée à MDSWindowsSupportPresent. Cette ligne indique si la prise en charge du système d’exploitation Windows est présente pour l’atténuation du système d’exploitation pour Microarchitectural Data Sampling (MDS). Si la valeur est True, la mise à jour de mai 2019 est installée sur l’appareil et l’atténuation pour MDS est présente. Si la valeur est False, la mise à jour de mai 2019 n’est pas installée et l’atténuation pour MDS n’est pas présente.
Hardware is vulnerable to MDS Associée à MDSHardwareVulnerable. Cette ligne indique sir le matériel est vulnérable à l’ensemble de vulnérabilités Microarchitectural Data Sampling (MDS) (CVE-2019-11091, CVE-2018-12126, CVE-2018-12127 et CVE-2018-12139). Si la valeur est True, le matériel est concerné par ces vulnérabilités. Si la valeur est False, le matériel n’est pas vulnérable.
 
Windows OS support for MDS mitigation is enabled Associée à MDSWindowsSupportEnabled. Cette ligne indique si l’atténuation du système d’exploitation Windows est activée pour Microarchitectural Data Sampling (MDS). Si la valeur est True, le matériel est concerné par les vulnérabilités MDS, la prise en charge du système d’exploitation Windows est présente pour l’atténuation et l’atténuation a été activée. Si la valeur est False, le matériel n’est pas vulnérable, la prise en charge du système d’exploitation Windows n’est pas présente ou l’atténuation n’a pas été activée.

Les résultats suivants sont attendus pour un ordinateur sur lequel toutes les atténuations sont activées et indiquent les actions nécessaires pour répondre à chaque condition.

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

Le tableau ci-dessous associe les résultats aux clés de Registre décrites dans l’article Instructions Windows Server concernant la protection contre les vulnérabilités de canal auxiliaire d’exécution spéculative.

Clé de Registre

Association

FeatureSettingsOverride – Bit 0

Associée à - Injection cible de branche - BTIWindowsSupportEnabled

FeatureSettingsOverride – Bit 1

Associée à - Chargement du cache de données non autorisé - VAShadowWindowsSupportEnabled