Tags: Authentifizierung, Virtualisierung, SSO
Credential Guard ist ein Feature von Microsofts Virtualization based Scurity (VBS). Es schirmt die im RAM zwischengespeicherten Hashes der Anmeldedaten mit Hilfe des Hypervisors gegen Angreifer ab. Es lässt sich recht einfach mittels Gruppenrichtlinien aktivieren, bringt aber Einschränkungen für einige Protokolle mit sich.
Nach der erfolgreichen Anmeldung am Active Directory hält Windows den Hash der Credentials im Memory der Local Security Authority (LSA) vor. Greift der Benutzer auf eine Ressource im Netzwerk zu, dann wird er damit automatisch authentifiziert, eine erneute Eingabe des Passworts kann entfallen.
Dieses Mechanismus können sich aber auch Angreifer mit Tools wie Mimikatz zunutze machen, indem sie den Hash aus dem Speicher auslesen und sich damit Zugang zu Systemen im Netzwerk verschaffen.
Aktiviert man Credential Guard, dann hält nicht mehr die LSA des Betriebssystems die Secrets vor. Vielmehr übernimmt diese Aufgabe die LSA in einem zusätzlichen schlanken Windows-Kernel.
Dieser läuft auf einem höheren Trust-Level in einer virtuellen Maschine, so dass ein direkter Zugriff auf dessen Speicher aus dem eigentlichen OS nicht möglich ist. Daher muss die lokale LSA mit dem sicheren Gegenstück über Remote Procedure Calls (RPCs) kommunizieren.
Kein SSO mit unsicheren Protokollen
Sobald Credential Guard aktiviert wurde, ist ein Single-sign-on mit NTLMv1, MS-CHAPv2, Digest und CredSSP nicht mehr möglich. Anwendungen, die eine Authentifizierung über diese Protokolle erfordern, werden die Benutzer dann mit einem Anmeldedialog zur erneuten Eingabe ihrer Kennung konfrontieren.
Eine weitere Einschränkung besteht darin, dass Credential Guard die Verwendung von Unconstrained Kerberos Delegation oder DES-Verschlüsselung nicht erlaubt. Daher sollte man vor der großflächigen Nutzung dieses Features prüfen, ob die damit einhergehenden Einschränkungen zu Problemen mit vorhandenen Anwendungen führen.
Systemvoraussetzungen
Bevor man Credential Guard aktiviert, sollte man sicherstellen, dass die jeweiligen Rechner die nötigen Voraussetzungen dafür erfüllen. Diese sind:
- 64-bit-Version von Windows 10 bzw. 11 oder Windows Server ab 2016
- UEFI-Firmware mit aktiviertem Secure Boot.
- CPU mit Virtualisierungserweiterungen Intel VT-x oder AMD-V mit SLAT-Support
- TPM v 1.2 oder 2.0
Microsoft stellt ein Hardware Readiness Tool in Form eines PowerShell-Scripts zur Verfügung, das diese Bedingungen prüft.
Credential Guard aktivieren
Das Feature lässt sich über mehrere Wege aktivieren. Das gängigste Verfahren dürften nach wie vor die Gruppenrichtlinien sein. In Frage kommen auch Intune oder das direkte Setzen eines Registry-Schlüssels.
Entscheidet man sich für ein GPO, dann findet man die zuständige Einstellung unter Computerkonfiguration => Richtlinien => Administrative Vorlagen => System => Device Guard. Sie heißt Virtualisierungsbasierte Sicherheit aktivieren und steuert gleich mehrere VBS-Funktionen.
Für die Konfiguration von Credential Guard stehen vier Optionen zur Auswahl:
- Deaktiviert
- Mit UEFI-Sperre aktiviert
- Nicht konfiguriert
- Ohne Sperre aktiviert
Mit UEFI-Sperre aktiviert speichert die Einstellung dauerhaft in der Firmware. Sie lässt sich daher nicht durch Zurücksetzen der Gruppenrichtlinie entfernen. Vielmehr muss man sie physisch an jedem PC deaktivieren. Ohne Sperre aktiviert hingegen erlaubt das Ändern der Einstellung via GPO.
Sobald die Gruppenrichtlinie auf den Zielrechnern greift, kann man mittels msinfo32.exe prüfen, ob das Feature tatsächlich aktiviert wurde.
Alternativ kann man nachsehen, ob ein Prozess namens LsaIso läuft. Allerdings ist dieser immer vorhanden, sobald auch nur ein VBS-Feature aktiv ist.
Credential Guard in VMs
Mit Credential Guard lässt sich auch das Gast-OS in einer virtuellen Maschine schützen. Diese muss mit ihrer virtuellen Hardware die gleichen Voraussetzungen erfüllen wie ein physischer Rechner. Daher kommen nur VMs der Generation 2 in Frage. Für diese muss man Secure Boot sowie ein virtuelles TPM aktivieren.
Zusätzlich muss man sich überzeugen, dass für VMSecurity die Eigenschaft VirtualizationBasedSecurityOptOut nicht auf $true gesetzt wurde. Abfragen kann man dies mit
Get-VMSecurity -VMName <Name-der-VM>
Ändern kann man diese Einstellung bei Bedarf mit
Get-VMSecurity -VMName <Name-der-VM> -VirtualizationBasedSecurityOptOut $false
Die Aktivierung von Credential Guard für eine VM erfolgt über die gleichen Methoden wie für einen physischen Rechner, also etwa über die oben erwähnte Gruppenrichtlinie.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- Single Sign-On für Azure, Microsoft 365 und hybride Umgebungen: 3 Verfahren im Überblick
- Integrierte Windows-Authentifizierung in Firefox (über GPO) aktivieren
- MobileIron führt Single-Sign-on für mobile Apps ein
- Azure Active Directory: Anwendungen zuweisen, SSO konfigurieren
- Single-Sign-on (SSO) für Terminal-Server konfigurieren
Weitere Links
4 Kommentare
Hallo Wolfgang,
ich habe mich mit dem Thema auch beschäftigt und es auch im Einsatz.
Windows 11 Enterprise mit reinem AAD Join und soweit keine Einschränkungen im Usecase.
Es gibt wohl auch weitere Voraussetzungen hierfür.
Zum einen sollte man über mindestens 8 GB RAM verfügen, zum anderen funktioniert es nur mit Windows 10 Enterprise, nicht mit Pro oder Home. Kannst du das bestätigen?
Hallo Karl, laut Microsoft Doc ist Credential Guard auch in der Pro verfügbar. 8GB RAM sind m.W. generell die Anforderung an Windows 11, vermutlich wegen der Virtualisierungsfunktionen (u.a. Sandbox).
Hallo Wolfgang,
ich habe soeben das Powershell Script von Microsoft laufen lassen und es sagt auf meiner Windows 10 Pro Maschine:
This PC edition is Unsupported for Device Guard
Machine is not Device Guard / Credential Guard compatible because of the following:
OS SKU unsupported
In deinem Link "laut Microsoft Doc" steht dann auch eindeutig bei:
Software: Qualifiziertes Windows-Betriebssystem
Anforderung: Mindestens Windows 10 Enterprise oder Windows Server 2016.
Dummerweise wird das ganz zu Beginn dieser Seite unter "Betrifft" nicht explizit erwähnt.
Herzliche Grüße, JS
Hallo Johann,
danke für die Klärung dieser Frage! Ich glaube, in der ursprünglichen Version dieses Dokuments stand noch explizit die Pro Edition drin.