Konfiguration des Windows 10 Device Guard zur eingeschränkten Anwendungsausführung
Was ist der Windows 10 Device Guard eigentlich genau? Was hat es mit dem Signieren von Applikationen auf sich? Und wie lässt sich der Device Guard in einem Testsystem konfigurieren?
Im Rahmen der Aufzeichnung eines Online-Kurses für die Microsoft Virtual Academy zum Thema Windows 10 Sicherheit habe ich mir zusammen mit meiner Kollegin Julia Händel neben allgemeinen Gesichtspunkten der IT-Sicherheit und der sicheren Speicherung von Identitäten mit Microsoft Passport das Thema Windows Device Guard etwas näher angeschaut.
Julia Händel ist Consultant für Cyber Defense, Security und Identity bei Microsoft Deutschland und arbeitet mit Kunden aus dem Enterprise-Umfeld an den unterschiedlichsten Fragestellungen, die sich rund um das Thema IT-Sicherheit drehen.
Windows Device Guard in a Nutshell
Der Windows Device Guard ist eine Kombination aus hardware- und software-basierten Sicherheitsfunktionen und ermöglicht es zu kontrollieren, welche Applikationen auf Zielsystemen ausgeführt werden dürfen.
Eine Ausführung schädlicher Applikationen kann mit dem Windows 10 Device Guard unterbunden werden, indem Geräte soweit eingeschränkt werden, dass auf diesen ausschließlich signierte Applikationen ausgeführt werden dürfen. Dieses Konzept kennt man von mobilen Geräten, die signierte Applikationen aus den entsprechenden App-Stores beziehen - wie etwa dem Windows Store, Google Play oder iTunes. Große Vorteile sind dabei vor allem ein starker Schutz vor Schadsoftware mit guter Verwaltbarkeit für Unternehmen und zudem ein verbessertes Schutzschild gegenüber Manipulationen von Windows-Systemen.
Der Device Guard besteht aus drei Hauptbestandteilen:
- Hardware-Sicherheit
- Konfigurierbare Codeintegrität und
- Virtualisierungsbasierte Sicherheit (VBS)
Hardware-Sicherheit bietet an dieser Stelle vor allem der TPM-Chip, das sogenannte Trusted Platform Module. Per TPM wird eine optionale, isolierte Hardware-Komponente bereitgestellt, um vertrauliche Informationen zu schützen - wie etwa Benutzeranmeldeinformationen und Zertifikate. UEFI SecureBoot sorgt an dieser Stelle dafür, dass Rootkits nicht ausgeführt werden können.
Mittels konfigurierbarer Codeintegrität lässt sich einzuschränken, welcher Quellcode tatsächlich erlaubt ist und ausgeführt werden darf. Die Konfigurationsmöglichkeiten erstrecken sich von Treibern über klassische Desktop-Applikationen, wie etwa dem unternehmenseigenen Reiseabrechnungstool, bis hin zu Universal Windows Platform-Apps (UWP-Apps). Für letztere ist AppLocker notwendig, da diese durch den Windows Store-Veröffentlichungsprozess bereits signiert sind und somit als vertrauenswürdig eingestuft werden. AppLocker bietet an dieser Stelle die Möglichkeit, die Ausführung von UWP-Apps mittels einer AppLocker-Regel zu unterbinden.
Wir unterscheiden dabei zwischen Kernelmodus-Codeintegrität (KMCI) und Benutzermodus-Codeintegrität (UMCI) . KMCI kann sich der virtualisierungsbasierten Sicherheit bedienen. Um Angriffe auf die KMCI durch einen Kernelmodetreiber zu verhindern, kann Hyper-V-based Code Integrity (HVCI) verwendet werden. Diese Dienste dienen dem Schutz des System-Kernels, privilegierter Treiber sowie u.a. Antimalware-Tools. Dadurch wird die Ausführung von Schadsoftware zu einem frühen Zeitpunkt des Startprozesses von Windows 10 bzw. direkt nach dem Start im Kernel verhindert. UMCI hingegen betrachtet die Ausführung von Anwendungen im User-Kontext.
Für welche Szenarien eignet sich der Windows Device Guard?
Der Einsatz von Device Guard empfiehlt sich besonders in den zwei folgenden Szenarien: für Geräte mit festem Software-Bestand und für vollständig verwaltete Geräte.
Geräte mit festem Software-Bestand sind sehr streng verwaltet, besitzen eine wohldefinierte Hardware- und Software-Konfiguration und unterliegen geringen Veränderungen. Ein typisches Beispiel hierfür sind Computer, die bei Call Centern verwendet werden oder Bankautomaten, die i.d.R. nur Interaktionen von Personen entgegen nehmen, die Transaktion an diesem vornehmen.
Bei vollständig verwalteten Geräten schränkt die IT-Abteilung eines Unternehmens ein, welche Software auf den Geräten installiert und ausgeführt werden darf. Sollten Mitarbeiter spezielle Software zur Ausführung Ihrer Arbeit benötigen, kann diese durch den Nutzer beantragt werden.
Bei kaum verwalteten Geräten lassen sich nicht mehr alle Funktionalitäten des Device Guard verwenden. Die Vielfalt an Hardware- und Software-Konfigurationen sowie die Möglichkeit für Mitarbeiter, jegliche Software zu installieren, sind nur zwei Gründe dafür.
Bei Bring Your Own Device-Szenarien (BYOD) bietet sich der Einsatz von Device Guard nicht an. Dennoch ist es wichtig, sich Gedanken über den Schutz von Unternehmensdaten zu machen. Im Bereich des EMM empfehlen sich beispielsweise Conditional Access mit Intune und Rights Management mit Azure.
Konfiguration und Test des Windows Device Guard auf einer virtuellen Maschine
Welche Schritte sind nun notwendig, um den Windows Device Guard zu konfigurieren?
Signieren von Anwendungen
Um Anwendungen zu vertrauen bzw. diese für Mitarbeiter im Unternehmen zugänglich zu machen, müssen diese zunächst signiert werden. Dies ist während des Veröffentlichungsprozesses für den Windows Store über ein entsprechendes Zertifikat bzw. eine unternehmenseigene Public Key Infrastructure (PKI) , unabhängige Signaturstellen aber auch den Windows Store for Business möglich.
Neben Embedded Signing, bei dem die Signatur einer einzelnen ausführbaren Datei (z.B. meine-anwendung.exe) hinzugefügt wird, ist es bei Device Guard möglich, mehrere Anwendungen auf einmal zu signieren. Hierdurch kann der Signaturaufwand deutlich reduziert werden. Dazu wird ein sogenanntes Catalog File erstellt, in der alle Binaries sowie der Pfad zu diesen zu finden sind. Diese Katalogdatei wird dann signiert ohne die einzelnen Binaries verändern zu müssen. Um dies umzusetzen kann der Package Inspector verwendet werden. Durch das einmalige Starten aller Binaries, wird das Catalog File erstellt. Dieses wird daraufhin signiert. Unter folgendem Pfad wird die Katalogdatei abgelegt:
C:\Windows\System32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}
Betrachtet man die Binärdateien im einzelnen, erkennt man, dass diese als "nicht signiert" angezeigt werden. Im Catalog File sind diese jedoch eingetragen und hierdurch signiert und ausführbar.
Konfiguration in einer Testumgebung
Wollen wir nun Device Guard in einer Testumgebung konfigurieren, erstellen wir in unserem Fall zunächst eine virtuelle Maschine in Hyper-V mit Windows 10 Enterprise. Die Enterprise-Edition ist Voraussetzung für den Windows 10 Device Guard. Selbstverständlich kann der Device Guard auch auf einem physischen System eingerichtet werden. Gerade zu Testzwecken bieten sich jedoch VMs an, um bspw. mit Snapshots zu arbeiten und unterschiedliche Konfigurationsstände zu vergleichen.
Wir bedienen uns bei der Konfiguration des Device Guard der Windows PowerShell - einem der mächtigsten Administrationswerkzeuge der Windows-Plattform. Die beiden wichtigsten Schritte innerhalb des Einrichtungsprozessen sind die Erstellung einer Code-Integritätsrichtlinie, der sogenannten CIPolicy, und die Geltendmachung dieser durch das Entfernen des Auditmodus:
# 2. Create a new Code Integrity Policy through checking installed applications
New-CIPolicy -Level PcaCertificate -Fallback Hash -FilePath $InitialCIPolicy –UserPEs 3> CIPolicyLog.txt
# 7. Remove Audit Mode rule option
Set-RuleOption -Option 3 -FilePath $EnforcedCIPolicy -Delete
Die beiden oben gezeigten sind zwei von insgesamt 13 Schritten die notwendig sind, um Device Guard wie beschrieben zu konfigurieren. Das vollständige Beispielskript zur Konfiguration des Windows Device Guard steht bei GitHub zum Download zur Verfügung. Die Einrichtungsschritte können je nach Konfiguration variieren. Julia und ich zeigen im unten stehenden Video alle Schritte für eine Beispielkonfiguration des Device Guard.
Testen lässt sich die erfolgreiche Konfiguration des Device Guard am einfachsten mit einer beliebigen unsignierten ausführbaren Datei.
Konfiguration des Windows Device Guard als Video
Die Konfiguration des Windows Device Guard haben Julia und ich in Form eines Videos festgehalten. Wir stellen darin ausführlich die Anwendungsgebiete, Signaturmöglichkeiten sowie die schrittweise Konfiguration des Device Guard vor:
Voraussetzungen für den Windows 10 Device Guard
Die wichtigsten Voraussetzungen für den Einsatz von Device Guard sind:
- Windows 10 Enterprise
- UEFI Firmware der Version 2.3 oder höher und Secure Boot
(Validierung über die Windows Hardware-Anforderung System.Fundamentals.Firmware.CS.UEFISecureBoot.ConnectedStandby)
Alle weiteren Anforderungen sind im TechNet-Artikel Device Guard Overview zu finden.
Whitelisting von Anwendungen vs. Device Guard
Im Vergleich zu Whitelisting-Tools - wie beispielsweise AppLocker oder McAfee Application Control - ist es bei Device Guard nicht mehr notwendig, Whitelists für Anwendungen manuell zu erstellen und zu pflegen. Weiterhin sind komplexe Anwendungen, die aus mehreren Teilanwendungen bestehen (wie z.B. die Office-Suite), schwer mit bisherigem Whitelisting einzuschränken: Abhängigkeiten, also Shared Resources zwischen den einzelnen Teilanwendungen, sind schwierig zu handhaben. Zudem kann beispielsweise AppLocker nicht mit allen Binaries umgehen. Treiber werden von AppLocker nicht berücksichtigt, unter Windows 10 ist jedoch die Unterstützung von Diensten hinzugekommen.
Device Guard scannt den kompletten Computer. Differenzen zum initialen Scan können durch eine neue, ergänzende Policy, die Eventlog-Einträge nutzt um diese zu erstellen, komfortabel hinzugefügt werden.
Beim Einsatz von AppLocker müssen anwendungsspezifische Group Policies (GPOs) erstellt und gepflegt werden. Dies wird häufig von einer anderen Abteilung vorgenommen als der Abteilung, die sich um die Software-Paketierung kümmert. Bei der Verwendung von Device Guard ergibt sich deshalb ein organisatorischer Vorteil, da sowohl die Erzeugung als auch die Aktualisierung des Bestandes von der selben Abteilung vorgenommen werden kann.
Weiterführende Informationen
Folgende Ressourcen geben einen tieferen Einblick in den Windows Device Guard und die Anwendungsgebiete:
- Device Guard Überblick
- Device Guard Deployment Guide
- Device Guard Bereitstellungshandbuch
- Video: Microsoft Ignite 2015 Dropping the Hammer Down on Malware Threats with Windows 10’s Device Guard
- Online-Kurs zum Thema Windows 10 Sicherheit
Wir wünschen gutes Gelingen beim "Nachkonfigurieren" des Windows 10 Device Guard. Den vollständigen Online-Kurs zum Thema Windows 10 Sicherheit gibt es kostenlos und rund um die Uhr verfügbar in der Microsoft Virtual Academy.
Vielen Dank auch an unsere Kollegen Oliver Niehus und Julien Reisdorffer für die Unterstützung im Rahmen der Entstehung dieses Artikels.
Viele Grüße,
Julia und Sebastian
P.S.: Auf Twitter ist Sebastian unterwegs unter @seklenk und zwitschert vor allem über die Themen Windows 10 und Enterprise Mobility.