Virtualisierungsbasierte Sicherheitssystemressourcenschutz

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

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 Sicherheitsressourcen wie authentifizierte Benutzeranmeldeinformationen schützen. Mit den erhöhten Schutzfunktionen von VBS, auch wenn Schadsoftware Zugriff auf den Betriebssystem-Kernel erhält, können die möglichen Exploits stark eingeschränkt und enthalten sein, da der Hypervisor verhindern kann, dass die Schadsoftware Code ausführt oder auf Plattformschlüssel zugreift.

Weitere Hintergründe 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 Basis für die sichere VBS-Umgebung bereitstellt. Der Hypervisor muss davon ausgehen, dass der Windows Kernel durch böswilligen Code kompromittiert werden kann. Daher müssen wichtige Systemressourcen vor der Manipulation von Code geschützt werden, der im Kernelmodus ausgeführt wird, um Sicherheitsressourcen zu kompromieren.

Grundlegendes zu Prozessor-MSRs

Ein Bereich wichtiger Systemressourcen, die der Hypervisor vor böswilliger Verwendung schützen muss, ist prozessorspezifische Register oder MSRs. Moderne Prozessoren unterstützen eine große Anzahl von MSRs, von denen viele wichtige Aspekte des Verhaltens des Prozessors steuern. MSRs können nur aus dem Kernelmoduscode gelesen oder geschrieben werden (d. h. CPL0). Durch das Ändern der von MSRs gesteuerten Einstellungen kann der Code des böswilligen Kernelmodus das Verhalten des Systems ändern und es einem Angreifer ermöglichen, Kontrolle zu erlangen und die Sicherheit zu beeinträchtigen. Darüber hinaus enthalten viele MSRs Daten über den Betrieb des Systems, z. B. Ablaufverfolgungs- oder Diagnosedaten, die auch zum Anzeigen oder Berechnen von Sicherheitsressourcen verwendet werden können. Daher muss der Hypervisor den Missbrauch jeglicher MSRs identifizieren und schützen, die den Sicherheitsstatus von VBS gefährden könnten.

MSRs werden über einen Index zugegriffen, der ein eindeutiger MSR-Bezeichner ist. In der Vergangenheit wurden viele MSRs als architekturell etabliert; das heißt, ihre Präsenz und Funktion bleiben in mehreren Prozessorgenerationen architektonisch konsistent. In diesem Fall kann ein bekanntes MSR mit einem dokumentierten MSR-Index und einer Definition darauf angewiesen werden, einen bekannten, veröffentlichten Satz von Funktionen zu steuern. Es gibt jedoch auch MSRs, die zwischen Prozessoren variieren, und es gibt Fälle, in denen MSR-Indizes im Laufe der Zeit neu bestimmt wurden, um auf neue Steuerelemente zu verweisen. Dies ist für Software auf Systemebene sehr problematisch, da es schwierig ist, kenntnisse dieser Steuerelemente 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 vor böswilligem 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 erlaubt nur Kernelmoduscode für den Zugriff auf MSRs oder bestimmte Bits innerhalb von MSRs, die als angemessen und als sicher eingestuft werden. Der Hypervisor blockiert den Zugriff auf alle MSR, die für den Hypervisor unbekannt sind, oder msR, die über seine veröffentlichte Definition bekannt ist, um ein Sicherheitsrisiko darzustellen. In einigen Fällen kann der partielle Zugriff zulässig sein.

Wenn der Hypervisor den Zugriff auf ein MSR blockiert hat, protokolliert er ein Ereignis beim Windows Systemprotokoll in Ereignisanzeige, wobei Details des versuchten Zugriffs angegeben werden.

Angesichts der großen Anzahl von Funktionen, die von MSRs gesteuert werden, ist es nicht möglich, die Nebenwirkungen der Verhinderung des MSR-Zugriffs auf die Software, die sie initiiert hat, vorherzusagen. Gut geschriebene Software sollte Fehler und Fehlerfälle problemlos 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 und ausgeführt wird. Um zu ermitteln, ob der Hypervisor den Zugriff auf ein MSR blockiert hat, suchen Sie im Windows Systemprotokoll für die Ereignis-ID 12550 aus dem Microsoft-Windows-Hyper-V-Hypervisor. Die Ereignisprotokolleintragsdetails enthalten die folgenden Informationen:

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

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

Unterstützte Windows-Versionen

Die Unterstützung für Windows virtualzationbasierte Sicherheit ist in Versionen von Windows enthalten, beginnend mit Windows 10 und Windows Server 2016.