Grundlegendes zur Windows SMM Security Mitigation Table (WSMT)

Die Windows SMM Security Mitigation Table (WSMT) ist eine von Microsoft definierte ACPI-Tabelle, die es der Systemfirmware ermöglicht, dem Betriebssystem zu bestätigen, dass bestimmte empfohlene Vorgehensweise für die Sicherheit in der System Management Mode (SMM)-Software implementiert wurden. Die WSMT-Tabellendefinition wird in der Windows SMM Security Mitigations Table (WMST)-Spezifikation beschrieben.

Hintergrund

Der WSMT wurde definiert, um Windows Virtualization-basierte Sicherheitsfeatures besser zu unterstützen. Weitere Informationen finden Sie unter Virtualisierungsbasierte Sicherheit (VBS) für weitere Hintergrundinformationen zu VBS. Da SMM ohne das Wissen oder die Kontrolle des Betriebssystems ausgeführt wird, stellt SMM eine bedeutende Angriffsfläche dar, die von bösartigem Code genutzt werden könnte, um den durch VBS aktivierten Betriebssystemschutz zu gefährden oder zu umgehen. Die Bereitstellung einer robusten und sicheren VBS-Plattform erfordert eine sorgfältige Prüfung und wahrscheinliche Aktualisierungen des SMM-Codes durch den OEM, um häufige Schwachstellen zu beseitigen, die ausgenutzt werden könnten. Das WSMT enthält Flags, die die Firmware setzen kann, um dem Betriebssystem anzuzeigen, welche dieser spezifischen Best Practices für die Sicherheit implementiert wurden.

Auswirkungen des WSMT auf die Windows VBS-Unterstützung

Das Feld WSMT Protection Flags zeigt das Vorhandensein dieser spezifischen SMM-Sicherheitsminderungen in der Systemfirmware an. Unterstützte Versionen des Windows-Betriebssystems lesen die WSMT Protection Flags früh während der Initialisierung, vor dem Start von Hypervisor und VBS, und können bestimmte Sicherheitsfunktionen basierend auf dem Vorhandensein dieser SMM Protection Flags aktivieren, deaktivieren oder deaktivieren.

Hinweise zur Implementierung

Die ordnungsgemäße Implementierung der durch die WSMT-Schutz-Flags FIXED_COMM_BUFFERS und COMM_BUFFER_NESTED_PTR_PROTECTION dargestellten Sicherheitsmaßnahmen erfordert, dass der Firmware-Anbieter die SMI-Handler (System Management Interrupt) sorgfältig bewertet und möglicherweise neu gestaltet. Alle SMI-Handler müssen darauf beschränkt werden, nur auf zulässige Speicherbereiche zuzugreifen (Lesen oder Schreiben), die MMIO- und EFI-zugewiesenen Speicher enthalten. Es reicht nicht aus zu überprüfen, dass Zeiger in SMM nicht vollständig auf Speicher außerhalb von SMM verweisen. Vielmehr müssen alle SMM-Zeiger validiert werden, damit sie sich innerhalb dieser sicheren Speicherbereiche befinden. Dadurch wird verhindert, dass SMM in einem „confused deputy“-Angriff ausgenutzt wird, der dann genutzt werden könnte, um Windows VBS-Funktionen zu kompromittieren. Die oben erwähnten Protection Flags beziehen sich nur auf Eingabevalidierung und Zeigerprüfungen und erfordern derzeit KEINE Erzwingung über SMM-Seitenschutz. Beispielsweise sollte SMM nicht in Speicher lesen oder schreiben, der von der Firmware als EfiConventionalMemory beschrieben wurde, da er Geheimnisse enthalten oder dazu führen kann, dass sich Software unvorhersehbar verhält.

Validierung der WSMT-Schutzmaßnahmen

Da SMM für das Betriebssystem undurchsichtig ist, ist es nicht möglich, einen Test zu erstellen, der unter Windows ausgeführt wird, um zu überprüfen, ob die in der WSMT-Spezifikation vorgeschriebenen Schutzmaßnahmen tatsächlich in SMM implementiert sind. Vom Betriebssystem aus besteht die einzige mögliche Überprüfung darin, nach dem Vorhandensein des WSMT zu suchen und den Status aller definierten Protection Flags zu überprüfen.

Daher liegt es in der Verantwortung des OEM, den SMM-Code jedes Systems sorgfältig zu prüfen und sicherzustellen, dass die Firmware den in der WSMT-Spezifikation und diesem Artikel beschriebenen Richtlinien entspricht. Kein Protection Flag sollte auf „true“ gesetzt werden, bis der OEM bestätigt hat, dass die jedem Protection Flag-Wert entsprechenden Abschwächungen ordnungsgemäß implementiert wurden. Wenn Sie sich nicht an diese empfohlene Vorgehensweise halten, wird die Plattform anfällig für Kompromittierungen und negiert die Wirksamkeit mehrerer Betriebssystemschutzmaßnahmen und Windows-Sicherheitsfunktionen, die auf VBS angewiesen sind, um robuste Sicherheitsgrenzen aufrechtzuerhalten.

Unterstützte Windows-Versionen

Unterstützung für WSMT ist in den folgenden Windows-Versionen enthalten:

  • Technische Vorschau von Windows Server 2016
  • Windows 10, Version 1607
  • Windows 10, Version 1703
  • Windows 10, Version 1709