Grundlegendes zur Windows SMM Security Mitigation Table (WSMT)

Die Windows SMM Security Mitigation Table (WSMT) ist eine ACPI-Tabelle, die von Microsoft definiert wird, mit der System-Firmware bestätigt werden kann, dass bestimmte bewährte Sicherheitsmethoden in der 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 virtualisierungsbasierten Sicherheitsfeatures besser zu unterstützen. Weitere Informationen zu VBS (Virtualization based Security, Virtualisierungsbasierte Sicherheit) finden Sie unter VBS. Da SMM ohne Wissen oder Kontrolle des Betriebssystems funktioniert, stellt SMM eine erhebliche Angriffsfläche dar, die von böswilligem Code genutzt werden kann, um die über VBS aktivierten Betriebssystemschutz zu kompromittieren oder zu umgehen. Die Bereitstellung einer robusten und sicheren VBS-Plattform erfordert sorgfältige Überprüfung und wahrscheinliche Updates von SMM-Code vom OEM, um häufige Schwachstellen zu beseitigen, die möglicherweise ausgenutzt werden. Das WSMT enthält Flags, die die Firmware festlegen kann, um auf das Betriebssystem anzugeben, welches dieser spezifischen bewährten Sicherheitspraktiken implementiert wurde.

Auswirkungen des WSMT auf Windows VBS-Unterstützung

Das Feld "WSMT Protection Flags" gibt an, dass diese spezifischen SMM-Sicherheitsminderungen in der System-Firmware vorhanden sind. Unterstützte Versionen des Windows Betriebssystems lesen die WSMT-Schutzkennzeichnungen früh während der Initialisierung, vor dem Hypervisor- und VBS-Start und können auswählen, dass bestimmte Sicherheitsfeatures aktiviert, deaktiviert oder deaktiviert werden, basierend auf der Anwesenheit dieser SMM-Schutzkennzeichnungen.

Hinweise zur Implementierung

Die ordnungsgemäße Implementierung der Sicherheitsminderungen, die durch die WSMT-Schutzkennzeichnungen FIXED_COMM_BUFFERS dargestellt werden, und COMM_BUFFER_NESTED_PTR_PROTECTION erfordern, dass der Firmwareanbieter die Systemverwaltungs-Interrupt-Handler (System Management Interrupt, SMI) sorgfältig auswerten und neu entwerfen kann. Alle SMI-Handler müssen nur auf Den Zugriff (Lese- oder Schreibzugriff) beschränkt sein, um zulässige Speicherbereiche zu ermöglichen, die MMIO- und EFI-zugewiesenen Arbeitsspeicher enthalten. Es reicht nicht aus, um zu überprüfen, ob Zeiger in SMM nicht vollständig außerhalb von SMM auf den Arbeitsspeicher verweisen. Vielmehr müssen alle SMM-Zeiger überprüft werden, um innerhalb dieser sicheren Speicherbereiche zu sein. Dadurch wird verhindert, dass SMM in einem "verwechselten Stellvertreter"-Angriff ausgenutzt wird, der dann genutzt werden kann, um Windows VBS-Features zu kompromittieren. Die oben erwähnten Schutzkennzeichnungen beziehen sich nur auf Eingabeüberprüfungs- und Zeigerüberprüfungen und erfordern derzeit keine Durchsetzung über SMM-Seitenschutz. SMM sollte z. B. keinen Speicher lesen oder schreiben, der von der Firmware als EfiConventionalMemory beschrieben wurde, da sie geheime Geheimnisse enthalten oder dazu führen kann, dass sich Software unberechenbar verhält.

Überprüfen der WSMT-Schutzfunktionen

Da SMM nicht transparent für das Betriebssystem 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 Schutz tatsächlich in SMM implementiert sind. Vom Betriebssystem aus ist die einzige Überprüfung möglich, nach dem Vorhandensein des WSMT zu suchen und den Status aller definierten Schutzkennzeichnungen zu überprüfen.

Daher ist es die Verantwortung des OEM, den SMM-Code jedes Systems sorgfältig zu überprüfen und sicherzustellen, dass die Firmware den in der WSMT-Spezifikation und diesem Artikel beschriebenen Anleitungen entspricht. Es sollte kein Schutzflagge auf "true" festgelegt werden, bis der OEM bestätigt hat, dass die Entschärfungen, die jedem Schutzkennzeichnungswert entsprechen, ordnungsgemäß implementiert wurden. Wenn Sie dies nicht als bewährte Methode einhalten, bleibt die Plattform anfällig für Kompromittierung, und die Wirksamkeit mehrerer Betriebssystemschutzfunktionen und Windows Sicherheitsfeatures, die auf VBS angewiesen sind, um robuste Sicherheitsgrenzen aufrechtzuerhalten.

Unterstützte Windows-Versionen

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

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