Navigation und Service

SiSyPHuS Win10: Analyse von Device Guard

In diesem Arbeitspaket wird das VSM-Feature Device Guard des Microsoft Windows 10 Betriebssystems analysiert und die nutzbaren Kommunikationsschnittstellen sowie Logging- und Konfigurationsmöglichkeiten betrachtet.

Aufgrund der langen Laufzeit dieses Projekts wurde für dieses Arbeitspaket eine Differenz-Analyse zwischen der ursprünglichen Version Windows 10, Build 1607 und Windows 10 Enterprise LTSC 2019 (Build 1809) durchgeführt. Diese Version wird von Microsoft bis 2029 unterstützt. Bei dieser Differenz-Analyse ergaben sich neben weiteren Änderungen hauptsächlich Erweiterungen bei den Windows Defender Application Control Richtlinien. Zudem wurde eine neue globale Richtlinie für die Überprüfung von .NET Code eingeführt.

Inhalt Analysedokument

1 Einleitung
1.1 Zusammenfassung
1.2 Executive Summary
1.3 Konzept und Fachbegriffe
2 Technische Analyse der Funktionalitäten
2.1 Nicht konfigurierbare Codeintegrität
2.1.1 Überblick Funktionalitäten
2.2 WDAC – konfigurierbare Codeintegrität
2.2.1 WDAC Initialisierung
2.2.2 WDAC Verifizierung
3 Konfigurations- und Loggingmöglichkeiten
3.1 Konfigurationsmöglichkeiten
3.1.1 WDAC Policy Management
3.1.2 WDAC Deployment
3.1.3 Empfehlungen zur Erstellung von WDAC Richtlinien
3.2 Loggingmöglichkeiten
Anhang
Literaturverzeichnis
Schlüsselwörter und Abkürzungsverzeichnis

Kurzzusammenfassung der Analyseergebnisse

Ziel dieses Arbeitspakets ist die Analyse des Device Guard Features von Windows 10. Wie durch das BSI vorgegeben wird der TPM-Standard 2.0 und Windows 10 Build 1607, 64-bit, long-term servicing branch (LTSB) betrachtet.

Die Device Guard Komponente von Windows 10 implementiert ein Feature zur Verhinderung der Ausführung nicht-vertrauenswürdigen Codes. "Nicht-vertrauenswürdiger Code" sind Programme, deren Integrität und/oder Authentizität nicht verifiziert werden können (weil diese beispielsweise verändert oder aus nicht bekannten Quellen heruntergeladen wurden). Ein Bestandteil von Device Guard ist die Verifikation von Images (d.h. ausführbare Dateien) mit Hilfe von nutzerdefinierten Richtlinien und wird im Dokument als "konfgurierbare Code-Integrität" bezeichnet. Dem gegenüber nutzt Device Guard auch nicht konfigurierbare Überprüfungen auf Basis von Authenticode (Arbeitspaket 5, Kapitel 2.2.3) welche im Dokument als "nicht konfigurierbare Code-Integrität" bezeichnet werden.

Die konfigurierbare Codeintegrität ist zudem als Windows Defender Application Control (WDAC) bekannt.

Falls das VSM Feature HVCI deaktiviert ist, wird Codeintegritäts-Funktionalität im Kontext der ci.dll Bibliothek ausgeführt. Diese Bibliothek wird durch ntoskrnl.exe geladen (welche den Normal Kernel darstellt, vergleiche (Arbeitspaket 6, Kapitel 1.3). Falls HVCI aktiv ist, leitet Windows Codeintegritäts-Funktionalität zur Ausführung an eine sichere Umgebung weiter (VTL 1), wo die Funktionalität dann in der skci.dll Bibliothek ausgeführt wird. Device Guard ist also technisch nicht auf VSM angewiesen.

Die konfigurierbaren (WDAC) und nicht-konfigurierbaren Codeintegritäts-Features verhindern erfolgreich die Ausführung nicht-vertrauenswürdigen Codes. Die WDAC-Richtlinien erlauben die flexible Verifizierung der Vertrauenswürdigkeit von Images basierend auf benutzerdefinierten Kriterien. Dies erfordert betriebliche Prozesse, um die WDAC-Richtlinien an kontinuierlich veränderte IT-Umgebungen anzupassen. Die Implementierung der konfigurierbaren (WDAC) und nicht-konfigurierbaren Codeintegritäts-Features ist robust. Diese Features sind durchgängig durch Boot Manager, Windows Loader, Windows Kernel und Bibliotheken implementiert und deren Integrität in einer durchgängigen Kette sichergestellt. Die konfigurierbare Funktionalität der Device Guard Komponente (WDAC) bietet verschiedene Konfigurationsoptionen mit unterschiedlichem Sicherheitsniveau und unterschiedlichen betrieblichen Aufwänden hinsichtlich Pflege und Wartung.