Virtualisierungsbasierter Sicherheitssystemressourcenschutz

Virtualisierungsbasierte Sicherheit (VBS) verwendet Hardwarevirtualisierung und den Windows-Hypervisor, um eine isolierte virtuelle Umgebung zu erstellen, die zum Vertrauensstamm des Betriebssystems wird, das davon ausgeht, dass der Kernel kompromittiert werden kann. Windows verwendet diese isolierte Umgebung, um eine Reihe von Sicherheitslösungen zu hosten, um ihnen einen erheblich erhöhten Schutz vor Sicherheitsrisiken im Betriebssystem zu bieten und die Verwendung böswilliger Exploits zu verhindern, die versuchen, Schutz zu besiegen. VBS erzwingt Einschränkungen zum Schutz wichtiger System- und Betriebssystemressourcen oder zum Schutz von Sicherheitsressourcen wie authentifizierten Benutzeranmeldeinformationen.

Weitere Hintergrundinformationen zu VBS finden Sie unter virtualisierungsbasierte Sicherheit (VBS).

VBS ändert das Vertrauensmodell

Während VBS die Plattformsicherheit erheblich verbessert, ändert VBS auch die Vertrauensgrenzen in einem Windows-PC. Mit VBS steuert der Windows-Hypervisor viele Aspekte der zugrunde liegenden Hardware, die die Grundlage für die sichere VBS-Umgebung bilden. Der Hypervisor muss davon ausgehen, dass der Windows-Kernel durch böswilligen Code kompromittiert werden könnte, und muss daher wichtige Systemressourcen vor der Manipulation von Code schützen, der im Kernelmodus ausgeführt wird, auf eine Weise, die Sicherheitsressourcen gefährden könnte.

Verstehen von Prozessor-MSRs

Ein Bereich wichtiger Systemressourcen, den der Hypervisor vor böswilliger Nutzung schützen muss, sind prozessormodellspezifische Register oder MSRs. Moderne Prozessoren unterstützen eine große Anzahl von MSRs, von denen viele Schlüsselaspekte des Prozessorverhaltens steuern. MSRs können nur aus dem Code im Kernelmodus (d. h. CPL0) gelesen oder in diesen geschrieben werden. Das Ändern der von MSRs gesteuerten Einstellungen könnte es böswilligem Code im Kernelmodus ermöglichen, das Verhalten des Systems zu ändern, und einem Angreifer ermöglichen, die Kontrolle zu erlangen und die Sicherheit zu gefährden. Darüber hinaus enthalten viele MSRs Daten über den Betrieb des Systems, wie z. B. Ablaufverfolgungs- oder Diagnosedaten, die auch zum Aufdecken oder Berechnen von Sicherheitswerten verwendet werden könnten. Daher muss der Hypervisor den Missbrauch von MSRs identifizieren und davor schützen, die die Sicherheitslage von VBS gefährden könnten.

Auf MSRs wird über einen Index zugegriffen, der eine eindeutige Kennung pro MSR ist. In der Vergangenheit wurden viele MSRs als architektonisch etabliert; Das heißt, ihr Vorhandensein und ihre Funktion bleiben über mehrere Prozessorgenerationen architektonisch konsistent. In diesem Fall kann man sich auf eine bekannte MSR mit einem dokumentierten MSR-Index und einer Definition verlassen, um einen bekannten, veröffentlichten Satz von Fähigkeiten zu steuern. Es gibt jedoch auch MSRs, die von Prozessor zu Prozessor unterschiedlich sind, und es gibt Fälle, in denen MSR-Indizes im Laufe der Zeit umfunktioniert und neu definiert wurden, um auf neue Kontrollsätze zu verweisen. Diese sind für Software auf Systemebene sehr problematisch, da es schwierig ist, das Wissen über diese Steuerungen in allgemein verfügbarer kommerzieller Software zu codieren und aufrechtzuerhalten.

Schützen des Zugriffs auf MSRs

Um eine robuste Sicherheitsplattform bereitzustellen, müssen MSRs vor Missbrauch durch böswilligen Code im Kernelmodus geschützt werden. Um dies durchzusetzen, überwacht und steuert der Hypervisor den Zugriff auf alle MSRs. Der Hypervisor verwaltet eine Liste bekannter MSR-Indizes und erlaubt nur Kernelmoduscode den Zugriff auf MSRs oder bestimmte Bits innerhalb von MSRs, die als sinnvoll und sicher gelten. Der Hypervisor blockiert den Zugriff auf jede MSR, die dem Hypervisor unbekannt ist, oder auf jede MSR, von der durch ihre veröffentlichte Definition bekannt ist, dass sie ein Sicherheitsrisiko darstellt. In einigen Fällen kann ein teilweiser Zugriff zulässig sein.

Wenn der Hypervisor den Zugriff auf eine MSR blockiert hat, protokolliert er ein Ereignis im Windows-Systemprotokoll in der Ereignisanzeige, das Details zum versuchten Zugriff angibt.

Angesichts der großen Anzahl von Funktionen, die von MSRs gesteuert werden, ist es nicht möglich, die Nebenwirkungen vorherzusagen, wenn der MSR-Zugriff auf die Software verhindert wird, die ihn initiiert hat. Gut geschriebene Software sollte Fehler und Fehlerfälle ordnungsgemäß behandeln, dies ist jedoch nicht immer der Fall.

Überprüfen von MSR-Zugriffsereignissen

Der Hypervisor blockiert den Zugriff auf bestimmte MSRs nur, wenn VBS aktiviert ist und ausgeführt wird. Um festzustellen, ob der Hypervisor den Zugriff auf eine MSR blockiert hat, suchen Sie im Windows-Systemprotokoll nach der Ereignis-ID 12550 von Microsoft-Windows-Hyper-V-Hypervisor. Die Details des Ereignisprotokolleintrags enthalten die folgenden Informationen:

ID : 12550
Beschreibung: Hyper-V hat Zugriff auf eine eingeschränkte MSR erkannt.
Details:

  • Msr
  • IsWrite
  • MsrValue
  • AccessStatus
  • Pc
  • ImageBase
  • ImageChecksum
  • ImageTimestamp
  • ImageName

Unterstützte Windows-Versionen

VBS wird in allen Versionen von Windows unterstützt, beginnend mit Windows 10 und Windows Server 2016.