Grundlegendes zur Ausgabe des PowerShell-Skripts „Get-SpeculationControlSettings“


Zusammenfassung


Microsoft hat ein PowerShell-Skript veröffentlicht, das Kunden auf ihren Systemen ausführen können, um den Status von Risikominderungen für spekulative ausführungsseitige Channelangriffe zu überprüfen. In diesem Artikel wird erläutert, wie Sie das Skript ausführen und was die Ausgabe bedeutet.

Die Empfehlungen  adv180002,  adv180012 und adv180018 decken fünf Schwachstellen ab:

  • 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)

Für den Schutz vor CVE-2017-5753 (Bounds Check Bypass) sind keine zusätzlichen Registrierungseinstellungen oder Firmwareupdates erforderlich.Dieses Thema enthält Details zum PowerShell-Skript, mit dem Sie den Status der Risikominderungen für CVE-2017-5715, CVE-2017-5754, CVE-2018-3639 und CVE-2018-3620 bestimmen können, die zusätzliche Registrierungseinstellungen und in manchen Fällen Firmwareupdates erfordern.

Weitere Informationen


Führen Sie die folgenden Befehle aus, um das Skript zu installieren und auszuführen:

PowerShell-Überprüfung mithilfe des PowerShell-Katalogs (Windows Server 2016 oder WMF 5.0/5.1)

Installieren des PowerShell-Moduls

PS> Install-Module SpeculationControl

Ausführen des PowerShell-Moduls, um sicherzustellen, dass Schutzmaßnahmen aktiviert wurden

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

PowerShell-Überprüfung mithilfe eines TechNet-Downloads (ältere Betriebssystemversionen und ältere WMF-Versionen)

Installieren des PowerShell-Moduls über das TechNet ScriptCenter

  1. Navigieren Sie zu https://aka.ms/SpeculationControlPS.
  2. Laden Sie die Datei „SpeculationControl.zip“ in einen lokalen Ordner herunter.
  3. Extrahieren Sie den Inhalt der Datei in einen lokalen Ordner, wie z. B. „C:\ADV180002“.

Ausführen des PowerShell-Moduls, um sicherzustellen, dass Schutzmaßnahmen aktiviert wurden

Starten Sie PowerShell. Anschließend müssen Sie (unter Verwendung des obigen Beispiels) die folgenden Befehle kopieren und ausführen:

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


Die Ausgabe dieses PowerShell-Skripts sieht so oder ähnlich aus. Für aktivierte Schutzmaßnahmen ist in der Ausgabe „True“ angegeben.

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



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

 

Die letztendliche Ausgabe entspricht den vorhergehenden Zeilen. Dies wird angezeigt, weil PowerShell das von einer Funktion zurückgegebene Objekt ausdruckt. In der folgenden Tabelle werden die einzelnen Zeilen erläutert.

Ausgabe

Erklärung

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

Dieser Abschnitt enthält den Systemstatus für Variante 2, CVE-2017-5715, Branch Target Injection.

Hardware support for branch target injection mitigation is present

Entspricht „BTIHardwarePresent“. Diese Zeile gibt an, ob Hardwarefeatures zur Unterstützung der Risikominderung für Branch Target Injection vorhanden sind. Der Geräte-OEM ist dafür verantwortlich, das aktualisierte BIOS bzw. die aktualisierte Firmware bereitzustellen, das bzw. die den von CPU-Herstellern zur Verfügung gestellten Microcode enthält. Wenn für diese Zeile True festgelegt ist, dann sind die erforderlichen Hardwarefeatures vorhanden. Wenn für diese Zeile False angegeben ist, dann sind die erforderlichen Hardwarefeatures nicht vorhanden, weshalb die Risikominderung für Branch Target Injection nicht aktiviert werden kann.

Hinweis„BTIHardwarePresent“ hat bei Gast-VMs den Wert True, wenn das OEM-Update auf den Host angewendet wurde und die Anweisungen befolgt werden.

Windows OS support for branch target injection mitigation is present

Entspricht „BTIWindowsSupportPresent“. Diese Zeile gibt an, ob die Unterstützung des Windows-Betriebssystems für die Risikominderung für Branch Target Injection vorhanden ist. Mit dem Wert True unterstützt das Betriebssystem das Aktivieren der Risikominderung für Branch Target Injection (und demzufolge wurde das Update vom Januar 2018 installiert). Mit dem Wert False wurde das Update vom Januar 2018 nicht auf dem System installiert und die Risikominderung für Branch Target Injection kann nicht aktiviert werden.

HinweisWenn eine Gast-VM das Hosthardwareupdate nicht erkennt, wird „BTIWindowsSupportEnabled“ immer auf False gesetzt.

Windows OS support for branch target injection mitigation is enabled

Entspricht „BTIWindowsSupportEnabled“. Diese Zeile gibt an, ob die Unterstützung des Windows-Betriebssystems für die Risikominderung für Branch Target Injection aktiviert ist. Mit dem Wert True ist die Hardware- und Betriebssystemunterstützung für die Risikominderung für Branch Target Injection für das Gerät aktiviert und bietet damit Schutz vor CVE-2017-5715. Mit dem Wert False trifft eine der folgenden Bedingungen zu:

  • Hardwaresupport ist nicht vorhanden
  • Betriebssystemsupport ist nicht vorhanden
  • Die Risikominderung wurde durch eine Systemrichtlinie deaktiviert

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

Entspricht „BTIDisabledBySystemPolicy“. Diese Zeile gibt an, ob die Risikominderung für Branch Target Injection durch eine Systemrichtlinie deaktiviert wurde (z. B. durch eine vom Administrator definierte Richtlinie). Systemrichtlinien beziehen sich auf die in KB 4072698 dokumentierten Registrierungssteuerelemente. Mit dem Wert True ist die Systemrichtlinie für die Deaktivierung der Risikominderung verantwortlich. Mit dem Wert False wird die Risikominderung aufgrund einer anderen Ursache deaktiviert.

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

Entspricht „BTIDisabledByNoHardwareSupport“. Diese Zeile gibt an, ob die Risikominderung für Branch Target Injection aufgrund der fehlenden Hardwareunterstützung deaktiviert wurde. Mit dem Wert True ist die fehlende Hardwareunterstützung für die Deaktivierung der Risikominderung verantwortlich. Mit dem Wert False wird die Risikominderung aufgrund einer anderen Ursache deaktiviert.

HinweisWenn eine Gast-VM das Hosthardwareupdate nicht erkennt, wird „BTIWindowsSupportEnabled“ immer auf False gesetzt.

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

Dieser Abschnitt enthält eine Zusammenfassung des Systemstatus für Variante 3, CVE-2017-5754, Rogue Data Cache Load. Die Risikominderung hierfür wird als Kernel-VA-Shadow oder Risikominderung für Rogue Data Cache Load bezeichnet.

Hardware requires kernel VA shadowing

Entspricht „KVAShadowRequired“. Diese Zeile gibt an, ob die Hardware anfällig für CVE-2017-5754 ist. Mit dem Wert True gilt die Hardware als anfällig für CVE-2017-5754. Mit dem Wert False gilt die Hardware als nicht anfällig für CVE-2017-5754.

Windows OS support for kernel VA shadow is present

Entspricht „KVAShadowWindowsSupportPresent“. Diese Zeile gibt an, ob die Unterstützung des Windows-Betriebssystems für die Kernel-VA-Shadow-Funktion vorhanden ist. Mit dem Wert True ist das Update vom Januar 2018 auf dem Gerät installiert und Kernel-VA-Shadow wird unterstützt. Mit dem Wert False ist das Update vom Januar 2018 nicht auf dem Gerät installiert und Kernel-VA-Shadow wird nicht unterstützt.

Windows OS support for kernel VA shadow is enabled

Entspricht „KVAShadowWindowsSupportEnabled“. Diese Zeile gibt an, ob die Kernel-VA-Shadow-Funktion aktiviert wurde. Mit dem Wert True gilt die Hardware als anfällig für CVE-2017-5754, die Unterstützung des Windows-Betriebssystems ist vorhanden und die Funktion wurde aktiviert. Die Kernel-VA-Shadow-Funktion ist aktuell standardmäßig für Clientversionen von Windows aktiviert und für Versionen von Windows Server deaktiviert. Mit dem Wert False ist die Unterstützung des Windows-Betriebssystems nicht vorhanden oder die Funktion wurde deaktiviert.

Windows OS support for PCID performance optimization is enabled

HinweisPCID ist für die Sicherheit nicht erforderlich und gibt lediglich an, ob eine Leistungsoptimierung aktiviert ist. PCID wird für Windows Server 2008 R2 nicht unterstützt.

Entspricht „KVAShadowPcidEnabled“. Diese Zeile gibt an, ob für Kernel-VA-Shadow eine zusätzliche Leistungsoptimierung aktiviert wurde. Mit dem WertTrueist Kernel-VA-Shadow aktiviert, die Hardwareunterstützung für PCID ist vorhanden und die PCID-Optimierung für Kernel-VA-Shadow wurde aktiviert. Mit dem Wert False unterstützt die Hardware oder das Betriebssystem PCID möglicherweise nicht. Die Sicherheit wird nicht beeinträchtigt, wenn die PCID-Optimierung nicht aktiviert ist.

Windows OS support for Speculative Store Bypass Disable is present

Entspricht „SSBDWindowsSupportPresent“. Diese Zeile gibt an, ob die Unterstützung des Windows-Betriebssystems für Speculative Store Bypass Disable vorhanden ist. Mit dem Wert True ist das Update vom Januar 2018 auf dem Gerät installiert und Kernel-VA-Shadow wird unterstützt. Mit dem Wert False ist das Update vom Januar 2018 nicht auf dem Gerät installiert und Kernel-VA-Shadow wird nicht unterstützt.

Hardware requires Speculative Store Bypass Disable

Entspricht „SSBDHardwareVulnerablePresent“. Diese Zeile gibt an, ob die Hardware anfällig für CVE-2018-3639 ist. Mit dem Wert True gilt die Hardware als anfällig für CVE-2018-3639. Mit dem Wert False gilt die Hardware als nicht anfällig für CVE-2018-3639.

Hardware support for Speculative Store Bypass Disable is present

Entspricht „SSBDHardwarePresent“. Diese Zeile gibt an, ob Hardwarefeatures zur Unterstützung der Risikominderung für Speculative Store Bypass Disable vorhanden sind. Der Geräte-OEM ist dafür verantwortlich, das aktualisierte BIOS bzw. die aktualisierte Firmware bereitzustellen, das bzw. die den von Intel zur Verfügung gestellten Microcode enthält. Wenn für diese Zeile True festgelegt ist, dann sind die erforderlichen Hardwarefeatures vorhanden. Wenn für diese Zeile False angegeben ist, dann sind die erforderlichen Hardwarefeatures nicht vorhanden, weshalb die Risikominderung für Speculative Store Bypass Disable nicht aktiviert werden kann.

Hinweis „SSBDHardwarePresent“ hat bei Gast-VMs den Wert True, wenn das OEM-Update auf den Host angewendet wurde.

 

Windows OS support for Speculative Store Bypass Disable is turned on

Entspricht „SSBDWindowsSupportEnabledSystemWide“. Diese Zeile gibt an, ob Speculative Store Bypass Disable im Windows-Betriebssystem aktiviert wurde. Mit dem Wert True ist die Hardware- und Betriebssystemunterstützung für Speculative Store Bypass Disable für das Gerät aktiviert und verhindert einen Speculative Store Bypass, wodurch diese Sicherheitsanfälligkeit vollständig eliminiert wird. Mit dem Wert False trifft eine der folgenden Bedingungen zu:

  • Hardwaresupport ist nicht vorhanden
  • Betriebssystemsupport ist nicht vorhanden
  • Speculative Store Bypass Disable wurde nicht über die Registrierungsschlüssel aktiviert. In den folgenden Artikeln finden Sie Anweisungen zum Aktivieren:

Leitfaden für IT-Experten zum Schutz vor spekulativen ausführungsseitigen Channelsicherheitsanfälligkeiten bei Windows-Clients

Leitfaden zum Schutz vor spekulativen ausführungsseitigen Channelsicherheitsanfälligkeiten bei Windows-Servern

 

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

Dieser Abschnitt enthält den zusammenfassenden Systemstatus für L1TF (Betriebssystem), auf den sich CVE-2018-3620 bezieht. Diese Risikominderung stellt sicher, dass sichere Seitenrahmenbits für nicht vorhandene oder ungültige Seitentabelleneinträge verwendet werden.

Hinweis: Dieser Abschnitt enthält keine Zusammenfassung des Risikominderungsstatus für L1TF (VMM), auf den sich CVE-2018-3646 bezieht.

Die Hardware ist anfällig für L1 Terminal Fault: True Entspricht „L1TFHardwareVulnerable“. Diese Zeile gibt an, ob die Hardware für L1 Terminal Fault (L1TF, CVE-2018-3620) anfällig ist. Mit dem Wert „True“ gilt die Hardware als anfällig für CVE-2018-3620. Mit dem Wert „False“ gilt die Hardware als nicht anfällig für CVE-2018-3620.
Windows OS-Support für Maßnahmen für L1 Terminal Fault ist vorhanden: True Entspricht „L1TFWindowsSupportPresent“. Diese Zeile gibt an, ob die Unterstützung des Windows-Betriebssystems für Risikominderung von L1 Terminal Fault (L1TF) vorhanden ist. Mit dem Wert „True“ ist das Update vom August 2018 auf dem Gerät installiert und die Risikominderung für CVE-2018-3620 ist vorhanden. Mit dem Wert „False“ ist das Update vom August 2018 auf dem Gerät nicht installiert und die Risikominderung für CVE-2018-3620 ist nicht vorhanden.
Windows OS-Support für Maßnahmen für L1 Terminal Fault ist aktiviert: True Entspricht „L1TFWindowsSupportEnabled“. Diese Zeile gibt an, ob die Windows-Betriebssystem-Maßnahmen für L1 Terminal Fault (L1TF, CVE-2018-3620) aktiviert sind. Mit dem Wert „True“ gilt die Hardware als anfällig für CVE-2018-3620, die Unterstützung des Windows-Betriebssystems für die Risikominderung ist vorhanden und die Maßnahme wurde aktiviert. Mit dem Wert „False“ ist entweder die Hardware nicht anfällig, der Windows-Betriebssystem-Support nicht vorhanden oder die Risikominderung wurde deaktiviert.

Die folgende Ausgabe wird für einen Computer erwartet, für den alle Risikominderungen aktiviert und alle Bedingungen erfüllt sind.

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

In der folgenden Tabelle sind der Ausgabe die Registrierungsschlüssel zugeordnet, die unter Leitfaden zum Schutz vor spekulativen ausführungsseitigen Channelsicherheitsanfälligkeiten bei Windows-Servern behandelt werden.

Registrierungsschlüssel

Entsprechung

FeatureSettingsOverride – Bit 0

Entspricht Branch Target Injection – „BTIWindowsSupportEnabled“

FeatureSettingsOverride – Bit 1

Entspricht Rogue Data Cache Load – „VAShadowWindowsSupportEnabled“