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 bewährte Sicherheitsmethoden in SMM-Software (System Management Mode) implementiert wurden. Die WSMT-Tabellendefinition wird in der spezifikation Windows SMM Security Mitigations Table (WMST) beschrieben.

Hintergrund

Das WSMT wurde definiert, um Windows Virtualisierungsbasierte Sicherheitsfeatures besser zu unterstützen. Weitere Hintergrundinformationen zu VBS finden Sie unter Virtualisierungsbasierte Sicherheit (VBS). Da SMM ohne das Wissen oder die Kontrolle des Betriebssystems arbeitet, stellt SMM eine erhebliche Angriffsfläche dar, die von schädlichem Code genutzt werden kann, um den durch VBS aktivierten Betriebssystemschutz zu gefährden oder zu umgehen. Die Bereitstellung einer robusten und sicheren VBS-Plattform erfordert eine sorgfältige Überprüfung und wahrscheinliche Aktualisierung des SMM-Codes durch den OEM, um häufige Sicherheitsrisiken zu beseitigen, die möglicherweise ausgenutzt werden. Das WSMT enthält Flags, die von der Firmware festgelegt werden können, um dem Betriebssystem anzugeben, welche dieser speziellen bewährten Sicherheitsmethoden implementiert wurden.

Auswirkungen von WSMT auf Windows VBS-Unterstützung

Das Feld WSMT-Schutzflags gibt an, dass diese spezifischen SMM-Sicherheitsminderungen in der Systemfirmware vorliegen. Unterstützte Versionen des Windows-Betriebssystems lesen die WSMT-Schutzflags frühzeitig während der Initialisierung vor dem Start von Hypervisor und VBS und können bestimmte Sicherheitsfeatures basierend auf diesen SMM-Schutzflags aktivieren, deaktivieren oder deaktivieren.

Hinweise zur Implementierung

Die ordnungsgemäße Implementierung der Sicherheitsminderungen, die durch die WSMT-Schutzflags FIXED_COMM_BUFFERS und COMM_BUFFER_NESTED_PTR_PROTECTION dargestellt werden, erfordert, dass der Firmwareanbieter die SMI-Handler (System Management Interrupt) sorgfältig auswertet und ggf. neu entwerfen kann. Alle SMI-Handler müssen auf den Zugriff (Lesen oder Schreiben) auf zulässige Speicherregionen beschränkt sein, die MMIO- und EFI-zugeordneten Arbeitsspeicher enthalten. Es reicht nicht aus, zu überprüfen, ob Zeiger in SMM nicht vollständig außerhalb von SMM auf Arbeitsspeicher verweisen. Stattdessen müssen alle SMM-Zeiger überprüft werden, um sich innerhalb dieser sicheren Speicherregionen zu halten. Dadurch wird verhindert, dass SMM bei einem "verwechselten Deputy"-Angriff ausgenutzt wird, der dann genutzt werden kann, um die vbs Windows features zu gefährden. Die oben genannten Schutzflags beziehen sich nur auf Eingabeüberprüfungen und Zeigerüberprüfungen und erfordern derzeit KEINE Erzwingung über SMM-Seitenschutz. Beispielsweise sollte SMM keinen Lese- oder Schreibzugriff auf den Arbeitsspeicher haben, der von der Firmware als EfiConventionalMemory beschrieben wurde, da er Geheimnisse enthalten oder dazu führen kann, dass sich Software unvorhersehbar verhält.

Überprüfen des WSMT-Schutzes

Da SMM für das Betriebssystem nicht transparent ist, ist es nicht möglich, einen Test zu erstellen, der in 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 in der Suche nach dem Vorhandensein von WSMT und der Überprüfung des Status aller definierten Schutzflags.

Daher liegt es in der Verantwortung des OEM, den SMM-Code jedes Systems sorgfältig zu überprüfen und sicherzustellen, dass die Firmware den Anweisungen in der WSMT-Spezifikation und in diesem Artikel entspricht. Es sollte kein Schutzflag auf "true" festgelegt werden, bis der OEM bestätigt hat, dass die entschärfungenen Maßnahmen für die einzelnen Werte des Schutzflags ordnungsgemäß implementiert wurden. Wenn dies nicht als bewährte Methode eingehalten wird, wird die Plattform anfällig für Kompromittiert und die Effektivität mehrerer Betriebssystemschutzfunktionen und Windows-Sicherheitsfeatures, die von VBS zur Aufrechterhaltung stabiler Sicherheitsgrenzen basieren, negiert.

Unterstützte Windows-Versionen

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

  • Windows Server Technical Preview 2016
  • Windows 10, Version 1607
  • Windows 10, Version 1703
  • Windows 10, Version 1709