Die Tiefen der Windows-Virtualisierung (Teil 2) — Speicher, den selbst der Kernel nicht sieht: Wie VBS, HVCI und Credential Guard funktionieren

· Aktualisiert am: · · Windows, Virtualisierung, Sicherheit, VBS, HVCI, Credential Guard

Änderungsverlauf (Erstfassung, veröffentlicht am 22. Aug 2026)
Erstveröffentlichung
Diesen Artikel zitieren(DOI (registriertes Archiv): 10.5281/zenodo.22176867)

Die folgenden DOIs verweisen auf bereits archivierte Versionen, die vom aktuellen Text abweichen können. Verwenden Sie die URL dieser Seite, um auf den aktuellen Text zu verweisen.

Go Komura (2026). Die Tiefen der Windows-Virtualisierung (Teil 2) — Speicher, den selbst der Kernel nicht sieht: Wie VBS, HVCI und Credential Guard funktionieren. KomuraSoft LLC. https://comcomponent.com/de/blog/windows-virtualization-internals-vbs-hvci-credential-guard/

DOI (registriertes Archiv)
10.5281/zenodo.22176867
DOI (zuletzt registrierte Version)
10.5281/zenodo.22176868

Wohin legt Windows Geheimnisse, die weder ein Administrator noch der Kernel lesen kann? Teil 2 geht von dieser Frage aus und verfolgt, wie VBS, HVCI und Credential Guard funktionieren.

Unter herkömmlichem Windows konnte ein Angreifer als Administrator einen Kerneltreiber laden, den Speicher des LSASS-Prozesses dumpen, Kennworthashes und Kerberos-Tickets stehlen und sie für laterale Bewegung zu anderen Rechnern missbrauchen.

Unter Windows 11 mit laufendem Credential Guard liegen die Hashes der geschützten Domänenanmeldeinformationen nirgendwo, wo der gewöhnliche Kernel suchen kann. Auf Geräten, die die Lizenzanforderungen (Enterprise, Education und Ähnliches) und die Hardwareanforderungen erfüllen, ist dieser Schutz ab 22H2 standardmäßig aktiv.1 Anforderungen und tatsächlicher Laufzustand sind zwei verschiedene Dinge; wo es nicht läuft, ist die Gefahr nicht verschwunden.

Teil 1 hat die Struktur gezeigt, in der das Host-Windows in der Root-Partition auf dem Hypervisor läuft. Was dieser Artikel verfolgt, ist eine weitere Grenzlinie, die innerhalb derselben Partition gezogen wird.

„Die Tiefen der Windows-Virtualisierung“ — Alle 3 Teile

Wir betrachten denselben Windows-Hypervisor in der Reihenfolge Grundlage → Sicherheitsisolierung → Anwendung auf leichte VMs.

Teil Zentrale Frage
Teil 1: Der Hypervisor und Partitionen Wo läuft das Host-Windows?
Teil 2: VBS, HVCI und Credential Guard (dieser Artikel) Wohin legt man Geheimnisse, die selbst der Kernel nicht lesen kann?
Teil 3: WSL2, Windows Sandbox und Container Warum lässt es sich bei erhaltener Isolierung leicht machen?

Voraussetzungen für diesen Artikel

Punkt Inhalt
Zielgruppe Entwickler und Betreiber, die verstehen wollen, was Kernisolierung, Speicherintegrität und Credential Guard tatsächlich sind
Umgebung x64-Windows 10/11 oder aktuelles Windows Server. Die Erläuterung von Ringen und SLAT setzt x64 voraus; Arm64 nutzt andere Mechanismen wie Exception Levels
Vorkenntnisse Die Begriffe Partitionen und SLAT aus Teil 1
Schwierigkeit und Umfang Mittelstufe. Keine Konfigurationsanleitung, sondern eine Erklärung der Struktur der Sicherheitsfunktionen

Wie Sie diesen Artikel lesen

Was Sie wissen möchten Zu lesende Abschnitte
Warum Isolierung stärker als der Kernel nötig ist, und wie sie erreicht wird Die Grenzen des herkömmlichen Modells in Abschnitt 2 → VSM, VTL und SLAT in Abschnitt 3
Was HVCI und Credential Guard jeweils schützen Codeintegrität in Abschnitt 4 → Anmeldeinformationen und Schutzumfang in Abschnitt 5
Wie Sie Einstellungsbildschirm und tatsächlichen Laufzustand auseinanderhalten Prüfverfahren in Abschnitt 6 → Fehldeutungen in Abschnitt 7

1. Zuerst das Fazit

Windows hat eine Privilegsachse namens VTL (Virtual Trust Level) hinzugefügt und die Geheimnisse in VTL1 gelegt. Der gewöhnliche Kernel, der in VTL0 läuft, kann Speicher in VTL1 nicht lesen. Was die Grenze bewacht, ist nicht der Kernel selbst, sondern der Hypervisor, der die SLAT-Übersetzungstabellen hält.

Das ist das Gerüst virtualisierungsbasierter Sicherheit (VBS). VBS nutzt den Hypervisor, um eine isolierte Umgebung zu schaffen, und bringt dort Sicherheitsfunktionen unter. Es ist unter der Annahme entworfen, dass die isolierte Umgebung geschützt bleibt, selbst wenn der Kernel kompromittiert ist.2

Die zwei Welten, die VBS schafftVTL0 und VTL1 sitzen innerhalb derselben Partition; VTL0 hält den gewöhnlichen Kernel und Apps, VTL1 den Secure Kernel und isolierte Sicherheitsfunktionen, und der Hypervisor bewacht die GrenzeVTL1 (die isolierte Welt)VTL0 (die gewöhnliche Welt)Kein LesezugriffIsolierte SicherheitsfunktionenSecure KernelApps (Ring 3)NT-Kernel und Treiber (Ring 0)Hypervisor (erzwingt die Grenze über SLAT)

Abbildung 1: Innerhalb eines Windows gibt es zwei Welten, und der Kernel in VTL0 kann nicht auf Speicher in VTL1 zugreifen.

Wichtig ist, dass dies nicht „noch eine VM aufsetzen“ ist. VTL0 und VTL1 liegen innerhalb derselben Partition, innerhalb desselben Windows. Wie diese Teilung erreicht wird, sehen wir der Reihe nach.

In der Abbildung kennzeichnet eine durchgezogene Linie eine stets geltende Beziehung und eine gestrichelte Linie eine bedingte (die Bedingungen stehen bei jeder Beziehung auf der Detailseite). Die vollständige Liste der Beziehungen (22 insgesamt, mit Beleg und Sicherheitsgrad) und die Definitionen der wichtigsten Konzepte sind auf der Detailseite der Wissenskarte (auf Japanisch) zusammengestellt. Daten: JSON-LD / Turtle

2. Die Grenzen des Ringmodells — Wächter und Bewachtes stehen auf derselben Höhe

Die herkömmliche Windows-Sicherheit war auf der Leiter der Ringe (Privilegstufen) aufgebaut. Den Benutzermodus (Ring 3) bewacht der Kernelmodus (Ring 0). Wer bewacht dann Ring 0? Niemand kann es. Ring 0 ist das höchste Privileg.

Diese Struktur hat zwei strukturelle Schwächen.

  • Der Kernel ist kein Monolith. Auf Ring 0 laufen nicht nur Windows selbst, sondern eine große Zahl von Treibern Dritter. Hat einer davon eine Schwachstelle, erhält der Angreifer Codeausführung auf Ring 0.
  • Von Ring 0 aus ist alles sichtbar. Wie gut sich ein Benutzermodusprozess wie LSASS auch selbst verteidigt: Ein Angreifer, der den Kernel übernommen hat, kann dessen Speicher frei lesen. Schutzattribute und Seitentabellen verwaltet der Kernel selbst.
Der Pfad zum Diebstahl von Anmeldeinformationen im herkömmlichen RingmodellEin Angreifer, der über einen verwundbaren Treiber Ring 0 übernimmt, kann mit voller Kernelautorität den Speicher des LSASS-Prozesses lesen und Kennworthashes erlangenNutzt einen verwundbaren Treiber ausCode des AngreifersÜbernimmt Ring 0Kann den gesamten physischen Speicher lesenHolt Hashes aus dem LSASS-SpeicherMissbraucht für laterale Bewegung zu anderen Rechnern

Abbildung 2: Weil Wächter (der Kernel) und Bewachtes (die Geheimnisse) auf derselben Höhe stehen, ist die grundlegende Schwäche: Fällt Ring 0, fällt alles.

Was also nötig ist, ist „ein Ort höher als Ring 0“. Dieser Ort ist in Teil 1 bereits aufgetreten. Der Hypervisor läuft mit höherem Privileg als der Kernel und nimmt die Steuerung der Speicherzugriffserlaubnisse der CPU (SLAT) früh ausschließlich in Besitz. Ein Isolierbereich, den der Hypervisor bewacht, ist auch gegen Zugriff von Ring-0-Betriebssystemsoftware (Supervisor-Modus) geschützt.3

3. VSM und VTL — Der Privilegsachse eine weitere Achse hinzufügen

Dieser Abschnitt ordnet in der Reihenfolge die Funktionsgruppe, die die Isolierung bereitstellt (VSM) → die Isolierungsstufen (VTL) → der Mechanismus, der die Grenze erzwingt (SLAT) → der Code, der darin läuft. Die Namen ähneln sich, sind aber nicht dasselbe.

3.1. Virtuelle Vertrauensstufen (VTL)

Die Funktionsgruppe des Hypervisors, die diese Isolierung bereitstellt, heißt VSM (Virtual Secure Mode). VSM ist die Grundlage für Device Guard, Credential Guard, das virtuelle TPM und Ähnliches.3

Der zentrale Begriff von VSM ist die VTL (Virtual Trust Level, virtuelle Vertrauensstufe). Die wichtigsten Punkte sind folgende.3

  • VTLs sind hierarchisch, und je größer die Nummer, desto höher das Privileg. VTL0 ist die unterste Stufe; VTL1 ist privilegierter als VTL0.
  • Architektonisch sind bis zu 16 Stufen definiert, aber derzeit implementiert sind zwei: VTL0 und VTL1.
  • Jede VTL hat unabhängigen Speicherzugriffsschutz. Diesen Schutz verwaltet der Hypervisor gegenüber dem physischen Adressraum der Partition, sodass Systemsoftware innerhalb der Partition ihn nicht ändern kann.
  • Ein virtueller Prozessor hat je VTL eigenen Registerzustand und eigene Unterbrechungsmechanik; von einer niedrigeren VTL aus kann man den Zustand einer höheren VTL nicht einsehen.
Die drei Unabhängigkeiten, aus denen VTL-Isolierung bestehtSpeicherzugriffsschutz, Registerzustand des virtuellen Prozessors und Unterbrechungsmechanik sind je VTL unabhängig, und von einer niedrigeren VTL aus ist keines davon in einer höheren VTL berührbarWas je VTL unabhängig istSpeicherzugriffsschutzRegisterzustand des virtuellen ProzessorsUnterbrechungsmechanikEine niedrigere VTL kann eine höhere VTL nicht berühren

Abbildung 3: Nicht nur Speicher, sondern auch CPU-Zustand und Unterbrechungen zu einer eigenen Welt zu machen, ist das Dreierpaket, das kein Guckloch lässt.

Sind Ringe (0 und 3) die Achse, die „Betriebssystem und Apps“ trennt, so sind VTLs eine zweite Achse, die „gewöhnliche Welt und isolierte Welt“ trennt. Die zwei Achsen stehen orthogonal, und auch innerhalb von VTL1 gibt es Kernelmodus und Benutzermodus.

Die vier Bereiche, die die zwei Achsen von Ringen und VTL erzeugenDie Ringachse trennt Kernelmodus und Benutzermodus, die VTL-Achse trennt gewöhnliche Welt und isolierte Welt, und die Kombination ergibt vier Bereiche: gewöhnliche Apps, NT-Kernel, IUM-Trustlets und Secure KernelVTL1 (isolierte Welt)VTL0 (gewöhnliche Welt)Ring 3: IUM (Trustlets)Ring 0: Secure KernelRing 3: gewöhnliche AppsRing 0: NT-Kernel und Treiber

Abbildung 4: Es gibt jetzt zwei Privilegsachsen, und „ist es der Kernel?“ und „ist es die isolierte Welt?“ sind getrennte Fragen geworden.

3.2. Die Substanz der Grenze ist SLAT

Teil 1 hat gesagt, dass die Übersetzungstabellen der zweiten Stufe, die Gast-Physikadressen (GPA) auf tatsächliches RAM (SPA) abbilden — SLAT —, der Hypervisor hält. VSM nutzt genau diese Eigenschaft. Die Isolierung der VTL wird mit dem Hyper-V-Hypervisor und SLAT gebaut.4

Wenn VTL1 erklärt „dieser Speicher soll VTL0 nicht gezeigt werden“, nimmt der Hypervisor die Zugriffserlaubnis auf diese Seite aus den Übersetzungstabellen für VTL0. Von da an wird, selbst wenn der Kernel in VTL0 diese Adresse berühren will, der Zugriff auf der Stufe der Adressübersetzung der CPU verweigert. Es nützt nichts, wie der Kernel seine eigenen Seitentabellen umschreibt.

Die Seitentabellen (GVA→GPA) mögen dem Kernel gehören, aber die Übersetzung darüber hinaus (GPA→SPA) und die endgültige Zugriffserlaubnis gehören dem Hypervisor.

Wie ein Zugriff von VTL0 auf Speicher in VTL1 verweigert wirdVersucht der Kernel in VTL0, Speicher in VTL1 zu lesen, kommt er durch die eigenen Seitentabellen, wird aber vom SLAT-Zugriffsschutz abgewiesen, und die Steuerung geht an den HypervisorKeine ErlaubnisErlaubnis vorhandenDer Kernel in VTL0 versucht, eine Seite in VTL1 zu lesenPassiert die eigenen Seitentabellen des KernelsErlaubt der SLAT-Zugriffsschutz es?Der Hypervisor greift ein und verweigert den ZugriffGewöhnlicher SpeicherzugriffAuf einer Schicht geschützt, die der Kernel nicht ändern kann

Abbildung 5: Die Barriere sitzt außerhalb des Kernels, und der SLAT-Schutz kann von Software innerhalb der Partition nicht geändert werden.

Teil 1 der Speicherreihe hat geschrieben, dass „VAD, PTE und Schutzattribute darüber entscheiden, ob ein Zugriff erlaubt ist“. In einer VBS-Umgebung lässt sich das so ordnen: Nachdem all das bestanden ist, wartet noch eine SLAT-Kontrolle.

3.3. Secure Kernel und IUM

Was innerhalb von VTL1 läuft, ist nicht der gewöhnliche NT-Kernel, sondern ein kleiner Kernel namens Secure Kernel. Der Benutzermodus in VTL1 heißt IUM (Isolated User Mode, isolierter Benutzermodus), und die Programme, die dort laufen, heißen Trustlets (vertrauenswürdige Prozesse).4

Ein Trustlet kann nicht alles tun, wie ein gewöhnlicher Prozess. Die meisten Systemaufrufe werden an den NT-Kernel auf der VTL0-Seite marshallt und dort zur Verarbeitung übergeben.4 VTL1 ist keine „obere Welt, die alles kann“, sondern bewusst klein gebaut als ein Tresor, der Geheimnisse hält. Je weniger Code in den Tresor gebracht werden kann, desto kleiner wird die Angriffsfläche.

Der Ablauf der Systemaufrufe eines TrustletsEin Trustlet in VTL1 verarbeitet die meisten Systemaufrufe nicht selbst; es marshallt sie an den NT-Kernel in VTL0 und empfängt nur das Ergebnis, wodurch VTL1 klein bleibtIn den meisten FällenTrustlet (IUM in VTL1)Ein Systemaufruf ist nötigAnfrage an den NT-Kernel in VTL0Empfängt nur das ErgebnisVTL1 bleibt klein und die Angriffsfläche schrumpft

Abbildung 6: Der Tresor hat keine eigenen Anlagen; er gibt die Routinearbeit nach draußen und bewacht weiter nur die Geheimnisse.

4. HVCI — Die Codeintegrität des Kernels im Tresor prüfen

Bei HVCI sind zwei Punkte festzuhalten: wo die Prüfung stattfindet und was nach der Prüfung am Speicher erlaubt ist. Diesen Schutz und die Auswirkung auf Treiberkompatibilität sehen wir der Reihe nach.

4.1. Was geprüft wird

Die erste repräsentative Funktion, die auf VBS sitzt, ist Speicherintegrität — HVCI (hypervisorgeschützte Codeintegrität). Windows hat einen Mechanismus der Codeintegrität, der Treiber und Binärdateien im Kernelmodus vor dem Start prüft und unsignierte oder nicht vertrauenswürdige nicht laden lässt. HVCI führt diese Prüfung innerhalb der isolierten Umgebung von VBS aus.2

Der Grund, die Prüfungslogik selbst nach VTL1 zu verlegen, ist genau die Schwäche aus Abschnitt 2. Sitzt der Prüfungscode im Kernel von VTL0, kann ein Angreifer, der den Kernel übernommen hat, die Prüfung austauschen. Sitzt er in VTL1, reicht die austauschende Hand nicht hin.

Der Unterschied je nach Ort des PrüfungscodesSitzt der Prüfungscode im Kernel von VTL0, wird er nach Übernahme des Kernels unwirksam; sitzt er in VTL1, reicht auch ein Angreifer, der den Kernel übernommen hat, nicht hin, und die Prüfung bleibt geschütztIm Kernel von VTL0 (herkömmlich)Isolierte Umgebung in VTL1 (HVCI)Angreifer, der den Kernel übernommen hatWo liegt die Codeintegritätsprüfung?Die Prüfungslogik kann ausgetauscht werdenDer Austausch ist außer ReichweiteUnsignierter Code kann im Kernel laufenDie Prüfung funktioniert auch nach Kompromittierung des Kernels weiter

Abbildung 7: Den Kontrollpunkt nicht auf die Seite zu legen, die durchbrochen werden könnte — diese Umsiedlung der Prüfungslogik ist das Wesen von HVCI.

4.2. Die Regeln für ausführbare Seiten

Die Wirkung von HVCI bleibt nicht bei der „Prüfung beim Start“. Sie legt auch der Zuteilung von Kernelspeicher Einschränkungen auf.5

  • Eine Kernelseite wird erst ausführbar, nachdem sie die Codeintegritätsprüfung bestanden hat.
  • Eine ausführbare Seite wird nicht schreibbar (sogenanntes W^X).

Stehen diese zwei zusammen, können Sie selbst dann, wenn eine Schwachstelle wie ein Pufferüberlauf Kernelspeicher umschreiben lässt, den umgeschriebenen Inhalt nicht zur Ausführung bringen. Ausführbare Seiten lassen sich nicht umschreiben, und Seiten, die sich umschreiben lassen, sind nicht ausführbar.5 Die endgültige Absicherung der Ausführungsberechtigung liegt beim Ausführungsrecht auf der SLAT-Seite; das kann der Kernel in VTL0 nicht manipulieren.

Bis eine Kernelseite in einer HVCI-Umgebung ausführbar wirdEine Anforderung zum Laden eines Treibers erhält die Codeintegritätsprüfung in der isolierten Umgebung von VBS; bei Bestehen wird sie als ausführbare, nicht schreibbare Seite erlaubt, bei Nichtbestehen wird sie blockiert und im CodeIntegrity-Protokoll festgehaltenBestandenNicht bestandenAnforderung, Kernelcode zu laden und auszuführenCodeintegritätsprüfung in der isolierten UmgebungAls ausführbare Seite erlaubt (Schreiben verboten)Laden blockiertIm CodeIntegrity-Operational-Protokoll festgehalten (Ereignis-ID 3087)Schreibbare Seiten bleiben nicht ausführbar

Abbildung 8: Die Regel, die Ausführen und Schreiben nie zusammenfallen lässt, wird auf der VTL1-Seite geprüft, und der Kernel in VTL0 kann sie nicht umstoßen.

Verfolgt man das aus der Sicht des Angreifers, wird klar, wie die Regel greift.

Wie Codeeinschleusung in einer HVCI-Umgebung scheitertSelbst wenn eine Schwachstelle Kernelspeicher umschreiben lässt, ist eine Seite, auf die geschrieben werden konnte, nicht ausführbar, und eine ausführbare Seite lässt sich von vornherein nicht umschreiben, sodass der eingeschleuste Code nicht zur Ausführung kommtEine schreibbare SeiteEine ausführbare SeiteVersuch, über eine Schwachstelle Kernelspeicher zu manipulierenWelche Seite ist das Ziel?Das Umschreiben gelingtDas Umschreiben selbst ist unmöglichAber diese Seite ist nicht ausführbarDer eingeschleuste Code kann nicht ausgeführt werden

Abbildung 9: Welchen Eingang Sie auch nehmen, Sie landen in einer Sackgasse; darin liegt der Sinn, schreibbare Seiten und ausführbare Seiten nicht zu überlappen.

4.3. Der Preis: Treiberkompatibilität

Diese Regel kollidiert mit Treibern älteren Entwurfs. Treiber, die den eigenen Code zur Laufzeit umschreiben, keine Signatur haben oder Speicher verlangen, der zugleich ausführbar und schreibbar ist, können in einer HVCI-Umgebung nicht geladen werden.

Die Tatsache der Blockade können Sie in der Ereignisanzeige unter Applications and Services Logs\Microsoft\Windows\CodeIntegrity\Operational prüfen (Ereignis-ID 3087 ist die repräsentative).6

In vielen Fällen ist das die wahre Identität der Störung „nach dem Aktivieren von Speicherintegrität funktioniert ein Peripheriegerät nicht mehr“. Der eigentliche Weg ist die Aktualisierung auf eine HVCI-taugliche Treiberversion; das Deaktivieren von Speicherintegrität sollte als letztes Mittel gelten, das den Schutz als Ganzes aufgibt.

Wenn Sie von der Treiberentwicklung aus an dieser Prüfung beteiligt sind, siehe auch den Artikel zu Filtertreibern („Windows-Minifiltertreiber“).

Eingrenzung, wenn unter Speicherintegrität ein Peripheriegerät nicht mehr funktioniertIdentifizieren Sie den blockierten Treiber im CodeIntegrity-Operational-Protokoll; der eigentliche Weg ist die Aktualisierung auf eine HVCI-taugliche Version, sonst Anfrage beim Hersteller, und Deaktivieren ist ein letztes Mittel, das nie zur Dauereinstellung wirdJaNeinEin Gerät funktioniert nach Aktivieren von Speicherintegrität nicht mehrBlockierten Treiber im CodeIntegrity-Protokoll identifizierenGibt es einen HVCI-tauglichen Treiber?Aktualisieren und bei aktivierter Funktion lösenBeim Hersteller eine taugliche Version anfragenDeaktivieren ist ein letztes Mittel, nie eine Dauereinstellung

Abbildung 10: Als Erstes schauen Sie nicht auf den Einstellungsbildschirm, sondern ins Protokoll; welche Komponente blockiert wurde, weiß Ereignis-ID 3087.

5. Credential Guard — Die Hashes liegen in LSAIso

Wo HVCI die Codeintegrität des Kernels schützt, schützt Credential Guard Anmeldeinformationen. Denkt man die Anlaufstelle, die Authentifizierung entgegennimmt, und den Ort, an dem die Geheimnisse liegen, getrennt, fügen sich Struktur und Schutzumfang zusammen.

5.1. LSASS und LSAIso

Die zweite repräsentative Funktion, die auf VBS sitzt, ist die Antwort auf das Rätsel am Anfang: Credential Guard.

Herkömmliches Windows hielt NTLM-Hashes und Kerberos-Tickets im Speicher des LSA-Prozesses (lsass.exe). Wird Credential Guard aktiviert, wandert die Aufbewahrung der geschützten Geheimnisse darunter — etwa NTLM-Hashes von Domänenanmeldeinformationen und Kerberos-TGTs (Ticket Granting Tickets) — nach LSAIso.exe, einem Trustlet, das in IUM in VTL1 läuft.7

  • lsass.exe (VTL0) läuft weiterhin als Anlaufstelle der Authentifizierung, wie bisher.
  • Die eigentlichen Geheimnisse hält LSAIso.exe (VTL1); von VTL0 aus ist kein Zugriff möglich.
  • Die beiden kommunizieren über RPC (Remote Procedure Call).
  • LSAIso hostet keinerlei Gerätetreiber und nimmt nur die Mindestmenge signierter Binärdateien auf. Die Signaturen werden gegen ein Zertifikat geprüft, dem VBS vertraut.7
Wo Anmeldeinformationen sitzen, wenn Credential Guard aktiv istlsass in VTL0 kommuniziert als Anlaufstelle der Authentifizierung per RPC mit LSAIso in VTL1; die eigentlichen Hashes und TGTs geschützter Domänenanmeldeinformationen hält LSAIso, sodass ein Angreifer, der in VTL0 Administratorrechte erlangt und lsass dumpt, die geschützten Geheimnisse selbst nicht erhältVTL1VTL0RPCSpeicherdumpReicht nicht hinLSAIso.exe (Tresor der Geheimnisse)lsass.exe (Anlaufstelle der Authentifizierung)Angreifer (Administratorrechte)

Abbildung 11: Weil Anlaufstelle und Tresor getrennt wurden, liefert ein Dump von lsass die eigentlichen Hashes der geschützten Domänenanmeldeinformationen nicht mehr.

Bedingungen für die Standardaktivierung

Ab Windows 11 Version 22H2 sind VBS und Credential Guard auf Geräten, die die Lizenzanforderungen (Enterprise E3/E5, Education A3/A5) und die Hardwareanforderungen erfüllen, standardmäßig aktiv. Auf Editionen wie Pro wird Credential Guard nicht automatisch aktiviert (es gibt Ausnahmen, etwa ein Rechner, der früher unter einer qualifizierenden Lizenz aktiv war und später herabgestuft wurde).1

Dieser Schutz der Anmeldeinformationen ist keine Sache eines besonderen Zusatzprodukts; er ist der Standardzustand aktuellen Windows auf den qualifizierenden Editionen.

Der Fluss der Anmeldeinformationen von der Anmeldung bis zur AuthentifizierungNach der Anmeldung werden die eigentlichen Geheimnisse in LSAIso in VTL1 gespeichert; jedes Mal, wenn Authentifizierung nötig ist, fordert lsass in VTL0 die Berechnung per RPC an, und nach VTL0 kehrt nur das Ergebnis der Authentifizierung zurück, nie die geschützten Langzeitgeheimnisse selbstFordert die Berechnung per RPC anGibt das Ergebnis zurück (nie das Geheimnis)Benutzer meldet sich anlsass behandelt es als AnlaufstelleDie eigentlichen Geheimnisse werden in LSAIso gespeichertSpätere Authentifizierungsanforderungen

Abbildung 12: Die geschützten Langzeitgeheimnisse selbst verlassen den Tresor nicht; was nach VTL0 zurückkehrt, ist das Ergebnis der Authentifizierung, etwa ein Ticket.

5.2. Genau wissen, was nicht geschützt wird

Geschützte Anmeldeinformationen

Credential Guard ist kein Allzweckschild. Geschützt werden NTLM-Hashes von Domänenanmeldeinformationen, Kerberos-TGTs (Ticket Granting Tickets) und Dinge, die als Domänenanmeldeinformationen gespeichert wurden.

Außerhalb des Schutzes

Folgendes liegt außerhalb des Schutzes.8

  • Kerberos-Diensttickets (TGTs sind geschützt)
  • Anmeldeinformationen lokaler Konten und Microsoft-Konten
  • Diebstahl von Eingaben durch einen Keylogger, physische Angriffe
  • Anmeldeinformationen auf Pfaden, die NTLMv1, MS-CHAPv2, Digest oder CredSSP nutzen
  • Das Innere von Software Dritter, die Anmeldeinformationen selbst verwaltet

Unabhängig vom Schutzumfang auch die Authentifizierungskompatibilität prüfen

Außerdem können bei aktivem Credential Guard NTLMv1, uneingeschränkte Kerberos-Delegierung und Ähnliches nicht mehr genutzt werden; Geschäftssysteme, die von Legacy-Authentifizierung abhängen, brauchen daher eine Kompatibilitätsprüfung.8 Es ist nicht „aktivieren und fertig“; den Bereich innerhalb und außerhalb des Schutzes kennen und den Rest mit anderen Maßnahmen füllen — das ist der richtige Einsatz in der Praxis.

Der Schutzumfang von Credential GuardNTLM-Hashes und TGTs der Domäne sowie gespeicherte Domänenanmeldeinformationen sind geschützt, während Diensttickets, lokale Konten, Keylogger, physische Angriffe und Anmeldeinformationen, die eine App selbst speichert, außerhalb des Schutzes liegenAuf welcher Seite des Schutzumfangs liegt dieses Geheimnis?NTLM-Hashes und TGTs der DomäneDiensttickets und lokale KontenIn LSAIso geschütztNicht geschützt (andere Maßnahmen nötig)Tastatureingabe, physische Angriffe und app-eigene Speicher sind ebenfalls außerhalb

Abbildung 13: Der Schutzumfang ist klar gezogen; außerhalb der Linie füllt man mit Mehrfaktorauthentifizierung und app-seitigem Entwurf.

6. Mit eigenen Augen prüfen

Den Laufzustand von VBS und der einzelnen Funktionen können Sie am eigenen Rechner prüfen. Lesen Sie den Zustand von VBS, der Grundlage, getrennt vom Zustand der Dienste, die darauf laufen.

6.1. VBS und die laufenden Dienste in PowerShell prüfen

Get-CimInstance -Namespace root/Microsoft/Windows/DeviceGuard `
    -ClassName Win32_DeviceGuard |
    Select-Object VirtualizationBasedSecurityStatus,
                  SecurityServicesConfigured,
                  SecurityServicesRunning

Die Ausgabe lesen Sie so.9

  • Ist VirtualizationBasedSecurityStatus 2, ist VBS aktiv und läuft.
  • Enthält SecurityServicesRunning 1, läuft Credential Guard; enthält es 2, läuft Speicherintegrität (HVCI).

6.2. msinfo32 und den Einstellungsbildschirm unterschiedlich lesen

Um den Laufzustand in einer GUI zu prüfen, schauen Sie auf das Feld „Virtualisierungsbasierte Sicherheit“ in msinfo32 (dort werden laufende Dienste aufgeführt, etwa „Hypervisor erzwungene Codeintegrität“).

Der Schalter „Speicherintegrität“ unter „Gerätesicherheit > Kernisolierung“ in der App Windows-Sicherheit ist ein Bildschirm, der die Einstellung widerspiegelt. Er kann auch dann auf „ein“ stehen, während HVCI tatsächlich nicht läuft — etwa während auf einen Neustart direkt nach dem Aktivieren gewartet wird oder bei einem Kompatibilitätsproblem beim Start. Ob es läuft, beurteilen Sie daher anhand von msinfo32 oder von SecurityServicesRunning in Win32_DeviceGuard.6

6.3. Nicht allein aus dem Vorhandensein eines Prozesses auf „läuft“ schließen

Eine Spur gibt es auch auf der Registerkarte Details des Task-Managers. Auf einem Rechner, auf dem VBS läuft, sehen Sie einen Prozess namens „Secure System“ (Sicherer Systemprozess). LsaIso.exe ist der Prozess, der erscheint, wenn der isolierte LSA-Dienst in VTL1 gehostet wird; in einer Konfiguration, in der nur HVCI aktiv ist, erscheint er normalerweise nicht.

Das Vorhandensein oder Fehlen eines Prozesses ist jedoch nur eine Spur; ob Credential Guard läuft, beurteilen Sie anhand von SecurityServicesRunning (ob es 1 enthält), wie oben beschrieben. Beides sind Fenster, die von VTL0 aus auf die Welt auf der VTL1-Seite blicken.

Das Verfahren zum Prüfen, dass VBS-bezogene Funktionen laufenBestätigen Sie durch Abfrage von Win32_DeviceGuard, dass VBS läuft, beurteilen Sie anhand der Werte von SecurityServicesRunning, ob Credential Guard und HVCI laufen, und schauen Sie bei Treiberproblemen ins CodeIntegrity-ProtokollNeinJaEnthält 1Enthält 2Win32_DeviceGuard abfragenIst der VBS-Status 2?VBS läuft nicht (Anforderungen und Einstellungen prüfen)Was enthält SecurityServicesRunning?Credential Guard läuftSpeicherintegrität (HVCI) läuftBei Treiberproblemen das CodeIntegrity-Protokoll (3087) prüfen

Abbildung 14: Die Zustandsprüfung geht in drei Stufen vor: VBS selbst, jeder Dienst darauf und das Protokoll, wenn ein Problem auftritt.

7. Drei Fehldeutungen, die Sie in der Praxis vermeiden sollten

7.1. „Administratorrechte zu schützen reicht. VBS ist ein Thema für Server“

Was Credential Guard verhindert, ist die Ausweitung des Schadens nachdem Administratorrechte genommen wurden (Herausschaffen von Hashes und laterale Bewegung). Mit anderen Worten: VBS ist eine Schicht der Verteidigung in der Tiefe, die Kompromittierung voraussetzt, und gerade auf Client-PCs wirkt sie. Unter Windows 11, das die Anforderungen erfüllt, ist Standardaktivierung die Norm; die richtige Haltung ist nicht „das betrifft uns nicht“, sondern „Kompatibilität unter der Annahme verwalten, dass es bereits läuft“.

Die Stufen der Kompromittierung und wo VBS greiftDen Erstzugang decken andere Maßnahmen wie Mehrfaktorauthentifizierung und Schulung; HVCI blockiert die Codeeinschleusung in den Kernel nach der Rechteausweitung; Credential Guard blockiert den Diebstahl geschützter Domänengeheimnisse und laterale Bewegung, reicht aber nicht an Geheimnisse außerhalb seines UmfangsErstzugang (Phishing und Ähnliches)RechteausweitungCodeeinschleusung in den KernelDiebstahl geschützter Domänengeheimnisse und laterale BewegungMFA, Schulung und EDR decken dasHVCI blockiert diesen SchrittCredential Guard blockiert das (nur geschützte Geheimnisse)

Abbildung 15: VBS ist keine Technik „sie nicht hereinlassen“, sondern eine Technik „sie nach dem Eindringen nicht gewinnen lassen“, und die Stufe, die sie bewacht, ist eine andere.

7.2. „Wenn Speicherintegrität ein Problem macht, einfach ausschalten“

Ausschalten lässt Dinge vorerst laufen, entfernt aber die Barriere gegen Codeeinschleusung in den Kernel als Ganzes. Der eigentliche Weg ist, zuerst den blockierten Treiber im CodeIntegrity-Protokoll zu identifizieren und dann die aktualisierte Version des Herstellers anzuwenden. Auch wenn Sie es vorübergehend zur Prüfung deaktivieren, empfehlen wir eine Betriebsweise, die das nie zur Dauereinstellung macht.

7.3. „Mit Credential Guard können Kennwörter nicht gestohlen werden“

Das ist Übermut aus Verwechslung des Schutzumfangs. Diensttickets, lokale Konten, Tastatureingaben selbst und Anmeldeinformationen, die eine App selbst speichert, liegen außerhalb.8 Gegen Phishing und Keylogger braucht es andere Maßnahmen (Mehrfaktorauthentifizierung, Windows Hello und eine Überprüfung, wie die App selbst Anmeldeinformationen verwaltet).

8. Zusammenfassung

  • VBS nutzt den Hypervisor, um eine isolierte Umgebung zu schaffen, und schützt Sicherheitsfunktionen unter der Annahme, dass der Kernel kompromittiert wird.2
  • Die Isolierungseinheit ist die VTL; derzeit sind zwei Stufen implementiert, VTL0 (die gewöhnliche Welt) und VTL1 (Secure Kernel und IUM).3
  • Die Substanz der Grenze ist der SLAT-Speicherzugriffsschutz, den Software innerhalb der Partition — den Kernel eingeschlossen — nicht ändern kann.3
  • HVCI führt die Codeintegritätsprüfung in der isolierten Umgebung aus und erzwingt „nicht ausführbar, bis die Prüfung besteht“ und „ausführbare Seiten sind nicht schreibbar“.5 Der Preis ist, dass Treiberkompatibilität verwaltet werden muss.6
  • Credential Guard isoliert NTLM-Hashes und TGTs von Domänenanmeldeinformationen in LSAIso in VTL1. Ab Windows 11 22H2 ist es auf Geräten, die die Lizenzanforderungen (Enterprise, Education) und die Hardwareanforderungen erfüllen, standardmäßig aktiv (nutzen Sie das zusammen mit einer Prüfung des Laufzustands).71
  • Den Laufzustand können Sie anhand von SecurityServicesRunning in Win32_DeviceGuard prüfen (1 = Credential Guard, 2 = HVCI).9

Weiter in Teil 3, „Virtuelle Maschinen, die in Sekunden starten — WSL2, Windows Sandbox und Container“.

Bis hierher haben wir Virtualisierung von der Seite der „Stärke der Isolierung“ betrachtet. Die letzte Folge betrachtet die Gegenseite, „Leichtigkeit“, und verfolgt, wo die leichten VMs, die das Gewicht einer vollen VM abgeworfen haben, Abstriche machen.

Weiterführende Artikel

Zugehörige Beratungsfelder

KomuraSoft LLC übernimmt Kompatibilitätsuntersuchungen zwischen Windows-Anwendungen und Sicherheitsfunktionen, die Analyse treiberbedingter Störungen und die technische Validierung interner PC-Umgebungen.

Quellen

  1. Microsoft Learn, Credential Guard overview. Dazu, dass Credential Guard ab Windows 11 Version 22H2 auf Geräten, die Lizenz-, Hardware- und Softwareanforderungen erfüllen und nicht ausdrücklich deaktiviert wurden, standardmäßig aktiv ist; dazu, dass die qualifizierenden Editionen/Lizenzen Enterprise (E3/E5) und Education (A3/A5) sind und Pro außerhalb liegt; und dazu, dass ein Pro-Rechner, der früher unter einer qualifizierenden Lizenz aktiv war, nach einer Herabstufung weiterhin für die Standardaktivierung in Frage kommen kann. ↩ ↩2 ↩3

  2. Microsoft Learn, Virtualization-based Security (VBS). Dazu, dass VBS mit Hardwarevirtualisierung und dem Windows-Hypervisor eine isolierte Umgebung schafft und sie unter der Annahme, dass der Kernel kompromittiert werden kann, zum Vertrauensanker des Betriebssystems macht; dazu, dass Speicherintegrität die Codeintegritätsprüfung im Kernelmodus innerhalb dieser isolierten Umgebung ausführt; und dazu, dass SLAT eine harte Anforderung für VBS ist. ↩ ↩2 ↩3

  3. Microsoft Learn, Virtual Secure Mode. Dazu, dass VSM die Grundlage für Device Guard, Credential Guard, das virtuelle TPM und Ähnliches ist; dazu, dass der Zugriff auf Isolierbereiche nur über den Hypervisor gesteuert und auch vor Ring-0-Betriebssystemsoftware geschützt wird; dazu, dass VTLs hierarchisch sind und 2 von höchstens 16 Stufen implementiert sind; und dazu, dass der Speicherzugriffsschutz je VTL von Systemsoftware innerhalb der Partition nicht geändert werden kann. ↩ ↩2 ↩3 ↩4 ↩5

  4. Microsoft Learn, Isolated User Mode (IUM) Processes. Dazu, dass VSM VTLs mit dem Hyper-V-Hypervisor und SLAT anlegt; dazu, dass Secure Kernel und IUM in VTL1 laufen; dazu, dass Trustlets Systemaufrufe an den Kernel in VTL0 marshalln; und dazu, dass LSAIso in VTL1 läuft und mit lsass über RPC kommuniziert. ↩ ↩2 ↩3

  5. Microsoft Learn, Memory integrity and virtualization-based security. Dazu, dass Speicherintegrität (HVCI) die Codeintegritätsprüfung in einer isolierten Umgebung ausführt, und dazu, dass Kernelspeicherseiten erst nach bestandener Prüfung ausführbar werden und ausführbare Seiten nicht schreibbar werden. ↩ ↩2 ↩3

  6. Microsoft Learn, Memory integrity and VBS enablement. Dazu, dass Speicherintegrität bei einer Neuinstallation von Windows 11 auf kompatibler Hardware standardmäßig aktiv wird; zur Zustandsprüfung in msinfo32 und der App Windows-Sicherheit; und dazu, dass ein blockierter Treiber über Ereignis-ID 3087 im CodeIntegrity-Operational-Protokoll bestätigt werden kann. ↩ ↩2 ↩3

  7. Microsoft Learn, How Credential Guard works. Dazu, dass die LSA bei aktivem Credential Guard mit dem isolierten LSA-Prozess (LSAIso.exe) kommuniziert, um Geheimnisse zu speichern; dazu, dass die gespeicherten Daten durch VBS geschützt und vom Rest des Betriebssystems nicht zugänglich sind; und dazu, dass der isolierte LSA-Prozess keine Gerätetreiber hostet und nur eine Mindestmenge signaturgeprüfter Binärdateien aufnimmt. ↩ ↩2 ↩3

  8. Microsoft Learn, Credential Guard protection limits. Dazu, dass Diensttickets, lokale Konten, Keylogger, physische Angriffe und Ähnliches außerhalb des Schutzes von Credential Guard liegen; dazu, dass TGTs geschützt sind, Diensttickets aber nicht; und dazu, dass NTLMv1 und uneingeschränkte Delegierung bei Aktivierung unbenutzbar werden. ↩ ↩2 ↩3

  9. Microsoft Learn, Enable virtualization-based protection of code integrity. Zur Prüfung des Zustands von VBS und Speicherintegrität über die Klasse Win32_DeviceGuard, und zur Bedeutung der Werte von SecurityServicesRunning (1 ist Credential Guard, 2 ist Speicherintegrität). ↩ ↩2

Aktuelle Artikel mit denselben Schlagwörtern führen zu verwandten Themen weiter.

Diese Seiten ordnen den Artikel in einen größeren Leistungs- und Entscheidungskontext ein.

Dieser Artikel ist direkt mit den folgenden Leistungen verbunden.

Häufige Fragen

Fragen, die in Beratungen zu diesem Artikelthema häufig gestellt werden.

Sind VBS (virtualisierungsbasierte Sicherheit) und Kernisolierung dasselbe?
Genau genommen sind sie verschieden. VBS ist die Grundlagentechnik, die mit dem Hypervisor eine isolierte Umgebung schafft, und „Kernisolierung“ in der App Windows-Sicherheit ist der Name eines Bildschirms, der mehrere auf VBS aufbauende Schutzfunktionen zusammenfasst. Die bekannteste davon ist „Speicherintegrität“; sie bezeichnet HVCI (hypervisorgeschützte Codeintegrität). Den Laufzustand der einzelnen Dienste prüfen Sie nicht anhand der Bildschirmanzeige, sondern durch Abfrage von Win32_DeviceGuard.
Kann Speicher in VTL1 wirklich nicht gelesen werden, auch nicht mit Administratorrechten oder von einem Kerneltreiber?
Er kann nicht gelesen werden. Den Speicherzugriffsschutz je VTL verwaltet der Hypervisor gegenüber dem physischen Adressraum der Partition, und Software, die innerhalb der Partition läuft, kann ihn nicht ändern. Selbst Code, der im Kernel (Ring 0) läuft, darf von VTL0 aus nicht auf Speicher in VTL1 zugreifen.
Warum kann das Aktivieren von Speicherintegrität (HVCI) dazu führen, dass ein Treiber nicht mehr funktioniert?
In einer HVCI-Umgebung wird eine Kernelseite erst ausführbar, nachdem sie die Integritätsprüfung bestanden hat, und Schreiben auf ausführbare Seiten ist nicht erlaubt. Ein unsignierter Treiber oder ein Treiber älteren Entwurfs, der ausführbaren Speicher umschreibt, kann diese Einschränkung nicht erfüllen, und sein Laden wird blockiert. Die Blockade können Sie im CodeIntegrity-Operational-Protokoll prüfen (Ereignis-ID 3087 und Ähnliches).
Was schützt Credential Guard, und was schützt es nicht?
Es schützt NTLM-Kennworthashes von Domänenanmeldeinformationen, Kerberos-TGTs und Dinge, die eine App als Domänenanmeldeinformationen gespeichert hat, in einer isolierten Umgebung. Kerberos-Diensttickets, Anmeldeinformationen lokaler Konten und Microsoft-Konten, Diebstahl von Eingaben durch einen Keylogger und physische Angriffe liegen außerhalb des Schutzes.
Wo kann ich prüfen, ob VBS läuft?
Schauen Sie auf das Feld „Virtualisierungsbasierte Sicherheit“ in msinfo32, oder fragen Sie die Klasse Win32_DeviceGuard im Namespace root/Microsoft/Windows/DeviceGuard aus PowerShell ab. Enthält SecurityServicesRunning 1, läuft Credential Guard; enthält es 2, läuft Speicherintegrität (HVCI).

Autorenprofil

Profilseite des Artikelautors.

Go Komura

Geschäftsführer von KomuraSoft LLC

Spezialisiert auf Windows-Softwareentwicklung, technische Beratung und Fehleranalyse, insbesondere bei bestehenden Systemen und schwer reproduzierbaren Störungen.

Zurück zum Blog