Virtualisierungsbasierter Sicherheitssystemressourcenschutz

Virtualisierungsbasierte Sicherheit oder VBS verwendet Hardwarevirtualisierungsfeatures, um eine sichere Umgebung zu erstellen, die eine Reihe von Sicherheitsfeatures hosten kann. Die Ausführung dieser Sicherheitsanwendungen in VBS bietet einen erheblich erhöhten Schutz vor Sicherheitsrisiken im Betriebssystem und verhindert die Verwendung böswilliger Betriebssystem-Exploits, die versuchen, den Schutz zu unterlaufen.

VBS verwendet den Windows Hypervisor, um diesen virtuellen sicheren Modus zu erstellen und Einschränkungen zu erzwingen, die wichtige System- und Betriebssystemressourcen schützen, oder um Sicherheitsressourcen wie authentifizierte Benutzeranmeldeinformationen zu schützen. Mit dem erhöhten Schutz durch VBS können die möglichen Exploits erheblich eingeschränkt und enthalten sein, selbst wenn Schadsoftware Zugriff auf den Betriebssystemkernel erhält, da der Hypervisor verhindern kann, dass die Schadsoftware Code ausführt oder auf Plattformgeheimnisse zugreift.

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

VBS ändert das Vertrauensstellungsmodell

Vbs verbessert zwar die Plattformsicherheit erheblich, vbs ändert jedoch 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 schädlichen Code kompromittiert werden kann. Daher muss er wichtige Systemressourcen vor der Manipulation von Code schützen, der im Kernelmodus ausgeführt wird, sodass Sicherheitsressourcen kompromittiert werden können.

Grundlegendes zu Prozessor-MSRs

Ein Bereich wichtiger Systemressourcen, die der Hypervisor vor böswilliger Verwendung schützen muss, sind prozessormodellspezifische Register oder MSRs. Moderne Prozessoren unterstützen eine große Anzahl von MSRs, von denen viele wichtige Aspekte des Prozessorverhaltens steuern. MSRs dürfen nur aus Kernelmoduscode (D.b. CPL0) gelesen oder in diesen geschrieben werden. Durch das Ändern der von MSRs gesteuerten Einstellungen kann bösartiger Kernelmoduscode das Verhalten des Systems ändern und einem Angreifer die Kontrolle verschaffen, wodurch die Sicherheit beeinträchtigt wird. Darüber hinaus enthalten viele MSRs Daten zum Betrieb des Systems, z. B. Ablaufverfolgungs- oder Diagnosedaten, die auch zum Aufdecken oder Berechnen von Sicherheitsressourcen verwendet werden können. Daher muss der Hypervisor den Missbrauch von MSRs identifizieren und vor diesen schützen, die den Sicherheitsstatus von VBS gefährden könnten.

Der Zugriff auf MSRs erfolgt über einen Index, bei dem es sich um einen eindeutigen MSR-Bezeichner handelt. In der Vergangenheit wurden viele MSRs als Architektur eingerichtet. d. h., ihre Präsenz und Funktion bleiben über mehrere Prozessorgenerationen hinweg architekturübergreifend konsistent. In diesem Fall kann auf eine bekannte MSR mit einem dokumentierten MSR-Index und einer dokumentierten Definition zurückgegriffen werden, um einen bekannten, veröffentlichten Satz von Funktionen zu steuern. Es gibt jedoch auch MSRs, die prozessorübergreifend variieren, und es gibt Fälle, in denen MSR-Indizes im Laufe der Zeit neu verwendet wurden und neu definiert wurden, um auf neue Sätze von Steuerelementen zu verweisen. Diese sind für Software auf Systemebene sehr problematisch, da es schwierig ist, diese Steuerelemente in allgemein verfügbarer kommerzieller Software zu codieren und zu verwalten.

Schützen des Zugriffs auf MSRs

Um eine stabile Sicherheitsplattform bereitzustellen, müssen MSRs vor Missbrauch vor schädlichem Kernelmoduscode geschützt werden. Um dies zu erzwingen, überwacht und steuert der Hypervisor den Zugriff auf alle MSRs. Der Hypervisor verwaltet eine Liste bekannter MSR-Indicies und lässt nur Kernelmoduscode den Zugriff auf MSRs oder bestimmte Bits innerhalb von MSRs zu, die bekanntermaßen angemessen und als sicher eingestuft werden. Der Hypervisor blockiert den Zugriff auf alle MSR-Dateien, die dem Hypervisor unbekannt sind, oder auf msr, die durch seine veröffentlichte Definition als Sicherheitsrisiko bekannt ist. In einigen Fällen kann teilweiser Zugriff zulässig sein.

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

Angesichts der großen Anzahl von Funktionen, die von MSRs gesteuert werden, ist es nicht möglich, die Nebeneffekte vorherzusagen, die sich aus der Verhinderung des MSR-Zugriffs auf die Software ergeben, die sie 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 nur den Zugriff auf bestimmte MSRs, 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 eingeschränkte MSR-Details erkannt:

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

Unterstützte Windows-Versionen

Unterstützung für Windows virtualzation-basierte Sicherheit ist in Versionen von Windows enthalten, die mit Windows 10 und Windows Server 2016 beginnen.