
SpecuCheck ist ein Windows-Dienstprogramm zur Überprüfung des Status der Software-Minderungen und der Hardware gegen CVE-2017-5754 (Meltdown), CVE-2017-5715 (Spectre v2), CVE-2018-3260 (Foreshadow) und CVE-2018-3639 (Spectre v4)
SpecuCheck ist ein Windows-Dienstprogramm zur Überprüfung des Zustands der Software- und Hardwareminderungen gegen CVE-2017-5754 (Meltdown), CVE-2017-5715 (Spectre v2), CVE-2018-3260 (Foreshadow) und CVE-2018-3639 (Spectre v4). Es verwendet zwei neue Informationsklassen, die im Rahmen der im Januar 2018 eingeführten Patches zum API-Aufruf NtQuerySystemInformation hinzugefügt wurden, und meldet die Daten, wie sie vom Windows-Kernel gesehen werden.
Ein offizielles Microsoft Powershell Cmdlet-Modul existiert ebenfalls, was die empfohlene und unterstützte Methode ist, um diese Informationen zu erhalten.

Am 3. Januar 2018 meldeten Intel, AMD und ARM Holdings sowie eine Reihe von OS-Anbietern eine Reihe von Sicherheitslücken, die von Google Project Zero entdeckt wurden:
Microsoft veröffentlichte noch am selben Tag Patches für Windows 7 SP1 und höher. Diese Patches wenden je nach Architektur, Betriebssystemversion, Boot-Einstellungen und einer Reihe von hardwarebezogenen Eigenschaften eine Reihe von Software- und Hardware-Minderungen gegen diese Probleme an. Der Aktivierungszustand dieser Minderungen, ihre Verfügbarkeit und Konfiguration werden vom Windows-Kernel in einer Reihe globaler Variablen gespeichert und über einen undokumentierten Systemaufruf an Aufrufer im Benutzermodus weitergegeben.
Zusätzlich wurden neue Seitenkanalangriffe gemeldet, wie Spectre Variante 4: speculative store bypass (CVE-2018-3639) und Foreshadow: L1 terminal fault (CVE-2018-3620), die in Windows 7 SP1 und höher mit Patches im August-Patchday behoben wurden.
SpecuCheck nutzt diesen Systemaufruf, um zu bestätigen, ob ein System tatsächlich gepatcht wurde (nicht gepatchte Systeme führen zu einem Fehlschlag des Aufrufs) und wie der Status der Minderungen ist, was zur Bestimmung potenzieller Leistungsengpässe verwendet werden kann.
Ursprünglich gab es viel Lärm, Hype und Marketing um das Problem, aber wenig Dokumentation darüber, wie man feststellen konnte, ob man betroffen war und mit welchem Leistungsmehraufwand. SpecuCheck zielte darauf ab, diese Daten für Benutzer und IT-Abteilungen leicht zugänglich zu machen, um die Notwendigkeit zu vermeiden, selbst einen Windows-Debugger zu verwenden oder die API zu reverse-engineeren.
Seitdem hat Microsoft hervorragende Arbeit geleistet, um diese Daten aus dem Kernel-Modus in einer prägnanten Weise zugänglich zu machen, die die Unterstützung und Nutzung der verschiedenen Minderungstechnologien und Hardware-Funktionen durch den Kernel kurz und bündig anzeigt, und ein PowerShell-Cmdlet-Modul zur Abfrage dieser Daten veröffentlicht. SpecuCheck bleibt daher nur ein Forschungswerkzeug und wird nicht empfohlen – bitte verwenden Sie stattdessen das von Microsoft genehmigte PowerShell-Modul.
Um SpecuCheck auszuführen, führen Sie es einfach auf der Befehlszeile aus:
c:\SpecuCheck.exe
Dies führt zu einem Informationsbildschirm, der anzeigt, welche Funktionen/Minderungen aktiviert sind. Wenn Sie den Text sehen:
Your system either does not have the appropriate patch, or it may not support the information class required
Dies zeigt an, dass Ihr System derzeit nicht gepatcht ist, um gegen diese Sicherheitslücken zu schützen.
Wenn Sie mehr über meine Forschung oder Arbeit erfahren möchten, lade ich Sie ein, meinen Blog unter http://www.alex-ionescu.com sowie mein Schulungs- und Beratungsunternehmen Winsider Seminars & Solutions Inc. unter http://www.windows-internals.com zu besuchen.
Sie sollten auf jeden Fall den unglaublich informativen Project Zero Post lesen.
Für weitere Informationen zu den entsprechenden und erforderlichen Windows-Patches lesen Sie bitte die Microsoft Advisory und zusätzliche Microsoft Anleitung.
SpecuCheck stützt sich auf undokumentierte Systemaufrufe und Informationsklassen, die Änderungen unterliegen. Darüber hinaus gibt SpecuCheck nur die Informationen zurück, die der Windows-Kernel über den Zustand der Minderungen und Hardware-Funktionen speichert – basierend auf Richtlinieneinstellungen (Registry, Boot-Parameter) oder anderen Kompatibilitätsflags kann der Zustand des Windows-Kernels vom tatsächlichen Hardwarezustand abweichen. Ziel dieses Tools ist es, eine Windows-spezifische Bewertung zu liefern, nicht eine Hardwarebewertung, die betriebssystemunabhängig ist.
SpecuCheck ist nur ein Forschungswerkzeug und wird nicht für den allgemeinen oder kommerziellen Gebrauch empfohlen – bitte verwenden Sie stattdessen das von Microsoft genehmigte PowerShell-Modul.
Copyright 2018 Alex Ionescu. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided
that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and
the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
and the following disclaimer in the documentation and/or other materials provided with the
distribution.
THIS SOFTWARE IS PROVIDED BY ALEX IONESCU ``AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ALEX IONESCU
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The views and conclusions contained in the software and documentation are those of the authors and
should not be interpreted as representing official policies, either expressed or implied, of Alex Ionescu.