| | 0

Sicherung des Betriebssystems im Microsoft Windows Server 2016

Windows Server 2016 und Sicherheits-Features

Der zweite Teil der Blogserie beschäftigt sich mit den neuen Features in Windows Server 2016, die der Sicherung des Betriebssystems dienen. Dabei handelt es sich vornehmlich um die folgenden Zwei:

  • Device Guard
  • Control Flow Guard

Beide Features bilden einen Teil des Security Stacks in Windows 10 und haben sich bereits in diversen Kundenprojekten als zuverlässige Verfahren bewährt.

Device Guard

Device Guard bietet einen Schutz gegen Malware durch sogenanntes Whitelisting, im Gegensatz zu AppLocker, mit dem die Ausführung von Anwendungen gezielt verhindert werden kann. Device Guard arbeitet mit einer Code Integrity Policy (CIP). Die CIP wird mittels eines PowerShell cmdlets erstellt (CIPolicy). Diese sollte auf einem sogenannten „Golden Client“ erstellt werden, also einem Client auf dem nur die Programme laufen, die später auch zugelassen sein sollen. Dennoch kann es sein, dass man dadurch vereinzelte Programme blockiert, die von Benutzern gebraucht werden, die aber nicht auf dem Golden Client vorhanden sind; eventuell handelt es sich dabei um Spezialprogramme aus einzelnen Abteilungen. Daher ist das folgende Verfahren zu empfehlen:

  1. Erstellung einer CIP auf einem Golden Client
  2. Anwendung der CIP im Audit Mode, um eventuell vergessene Programme zu erkennen
  3. Erstellung einer angepassten CIP, aufgrund der Ergebnisse von Schritt 2
  4. Ausrollung der in Schritt iii neu erstellten CIP in der Umgebung und Produktivbetrieb im gewünschten Modus

Wie schon oben erwähnt, kann die Code Integrity Policy (CIPolicy) mittels eines PowerShell cmdlets erstellt werden. Diese liegt zunächst im xml-Format vor. Nachfolgend muss diese noch in eine bin-Datei konvertiert werden. Anschließend kann die CIP verteilt werden. Dabei muss dies unter dem Namen SIPolicy.p7b geschehen. Danach muss der Server neu gestartet werden, damit die Policy durch den Code Integrity Service geladen werden kann. Auch für die nachfolgenden Schritte, nach der Erstellung der CIP, gibt es die entsprechenden PowerShell cmdlets.

Die CIP kann in verschiedenen Modi angewendet werden. Dies sind:

  • Audit Mode
  • Enforcement Mode
  • Enforcement Mode mit Hardware Enforcement & VBS

Im reinen Audit Mode, der schon in Schritt ii bei der Erstellung der CIP genannt worden ist, werden keine Anwendungen blockiert. Jedoch werden alle Anwendungen, die nicht in der CIP stehen im Event Log protokolliert. Im Enforcement Mode ist Device Guard quasi scharf geschaltet. Programme werden mittels der CIP darauf geprüft, ob sie ausgeführt werden dürfen oder nicht. Sollen Programme, die nicht in der CIP enthalten sind, gestartet werden, werden diese an der Ausführung gehindert.

Letztlich bleibt noch der Enforcement Mode mit Hardware Enforcement & VBS (virtualization based security). Dieser Mode hat die gleichen Eigenschaften wie der Enforcement Mode. Zusätzlich wird hier jedoch dafür gesorgt, dass auch Kernel Mode Code nicht ausgeführt werden kann, wenn dieser durch die CIP geblockt wird.

Device Guard kann sowohl auf physikalischen als auch virtuellen Maschinen (VM) eingesetzt werden. Für den Einsatz in virtuellen Maschinen müssen die folgenden Voraussetzungen gegeben sein:

  • Auf dem Hyper-V Host muss mindestens Windows Server 2016 oder Windows 10, Version 1607 installiert sein
  • Die virtuelle Maschine muss eine Generation 2 VM sein und mindestens Windows Server 2016 oder Windows 10 installiert haben

Für den Einsatz auf einer physikalischen Maschine müssen mindestens die Anforderungen gelten, die unter diesem Link zu finden sind, um ein Mindestmaß an Sicherheit zu gewährleisten.

https://technet.microsoft.com/en-us/itpro/windows/keep-secure/requirements-and-deployment-planning-guidelines-for-device-guard

Unter diesem Link sind auch weitere Hard- und Firmware Voraussetzungen zu finden. Je nach verwendetem Betriebssystem und Versionsstand unterscheiden sich die zur Verfügung stehenden Komponenten von Device Guard. Grundsätzlich beinhalten die neuesten Versionen von Hard- und Firmware die höchstmögliche Anzahl an nutzbaren Komponenten von Device Guard.

Windows Device Guard kann als eigenständiges Feature verwendet werden, aber auch in Kombination mit anderen Features von Windows Server 2016 und Windows 10, um eine weitere zusätzliche Sicherheitsschicht hinzuzufügen. Mögliche Kombinationen wären z.B. AppLocker oder Credential Guard. Das Feature Credential Guard wird im vierten Teil dieser Blogserie noch einmal explizit behandelt werden.

Device Guard eignet sich am besten in solchen Umgebungen, in denen der Software Stand relativ stabil bleibt, also wenige bis gar keine Änderungen durchgeführt werden. In Umgebungen, wo häufig Änderungen an den installierten Anwendungen stattfinden, ist der Einsatz von Device Guard nicht sinnvoll, da jedes Mal eine neue CIP erstellt und verteilt werden muss.

Weiterführende Links zu Device Guard:

Übersicht von Microsoft: https://blogs.technet.microsoft.com/datacentersecurity/2016/09/20/overview-of-device-guard-in-windows-server-2016/

Deployment Guide: https://docs.microsoft.com/en-us/windows/device-security/device-guard/device-guard-deployment-guide

Control Flow Guard

Control Flow Guard ist kein direktes Feature, das man im Windows Server 2016 aktivieren kann. Vielmehr muss bereits während der Programmierung von Anwendungen, hier im speziellen in Visual Studio 2015, eine entsprechende Option gesetzt werden. Vorab jedoch erstmal eine Erklärung der Funktionsweise zum besseren Verständnis, wofür Control Flow Guard genutzt werden kann.

Control Flow Guard soll verhindern bzw. einschränken, von welchen Stellen im Speicher eine Anwendung Code ausführen darf; in diesem Fall explizit Code, der durch eine Indirect Call Instruction aufgerufen wird. Hintergrund ist, dass ein Angreifer in Anwendungen zusätzlichen Code hinzufügen kann, der im Hintergrund, nicht sichtbar für den Benutzer, für einen Speicherüberlauf sorgt und die Anwendung so auf bestimmte Speicherbereiche zugreift, auf die sie normalerweise nicht zugreifen würde. Dadurch kann zusätzlicher Code ausgeführt werden, der z.B. Malware nachlädt. „Laut Microsoft verhindert CFG [Control Flow Guard, d. Autor] bereits 96 Prozent aller bisher genutzten Browserexploits seit 2011.“ (Quelle: https://www.golem.de/news/sicherheit-windows-10-und-das-ende-von-malware-1512-117849-3.html, zuletzt abgerufen 21.08.2017)

Damit man Control Flow Guard nutzen kann, muss man jedoch, wie oben schon erwähnt wurde, eine entsprechende Option in Microsoft Visual Studio 2015 setzen. Hat man diese Option gesetzt, arbeitet Control Flow Guard wie folgt:

Der Compiler:

  1. Fügt dem kompilierten Code leichte Sicherheitsprüfungen hinzu
  2. Identifiziert die Funktionen innerhalb der Anwendung, die mögliche Ziele für indirekte Aufrufe sind

Unterstützung durch den Windows Kernel während der Laufzeit:

  1. Verwaltet effizient den Status, der die gültigen Ziele für indirekte Aufrufe identifiziert
  2. Implementiert die Logik, die prüft, ob das Ziel eines indirekten Aufrufes gültig ist

Das folgende Bild illustriert die Funktionsweise des Control Flow Guard noch einmal.

Windows Server 2016 und Sicherheits-Features

Sollte zur Laufzeit eine Prüfung mittels des Control Flow Guard fehlschlagen, so wird die Anwendung sofort automatisch beendet. Dadurch werden alle Exploits nutzlos, die versuchen durch einen indirekten Aufruf eine ungültige Adresse aufzurufen, im besonderen Browserexploits.

Der dritte Teil der Blogserie zum Thema Sicherheit in Verbindung mit Windows Server 2016 wird sich mit der Verwaltung von Identitäten befassen. Zum einen, welche Möglichkeiten man hat, um die permanente Anzahl an Administratoren zu reduzieren. Zum anderen, wie man sicherstellen kann, dass der Nutzer, der sich anmeldet, auch wirklich der ist, für den er sich ausgibt. Beides wirkt dem Nutzen entgegen, den sich ein Angreifer durch den Diebstahl von Benutzername und Passwort erhofft.

Teil 1: Grundlegendes zur Sicherheit im Microsoft Windows Server 2016
Teil 1.1: Sicherheit im Bereich Virtualisierung (Shielded VMs)
Teil 1.2: Sicherheit im Bereich Virtualisierung (Hyper-V Container & Software Defined Networking)
Teil 2: Sicherung des OS
Teil 3.1: Verwaltung von Identitäten (Just Enough Administration)
Teil 3.2: Verwaltung von Identitäten (Just in Time Administration & MFA)
Teil 4: Abwehr von Identitätsdiebstahl (Credential Theft)