Exploit Protection – Windows 11 Must-Have?!

Die Exploit Protection ist Teil der Microsoft Defender Schutzfunktionen für Windows 10 und Windows 11. Die Funktionsweise ist seit längerem bekannt – EMET (Enhanced Mitigation Experience Toolkit) hieß die Technologie unter den älteren Windows-Versionen, bevor sie Teil vom Microsoft Defender wurde. Mit Hilfe der Exploit Protection lassen sich verwundbare Programme gegen typische Exploits absichern. Damit kann auch die Ausnutzung von Zero-Day-Schwachstellen in Browsern oder PDF-Readern deutlich erschwert werden – übrigens auch, wenn der Microsoft Defender nicht als primärer Virenscanner im Einsatz ist

In diesem Beitrag zeigen wir, was die Exploit Protection aus technischer Sicht ist und kann – und wie sie sich nutzen lässt.

Exploit Protection - Verwundbare Anwendungen absichern

Die aktuellen Betriebssysteme aus dem Hause Microsoft verfügen über eine Vielzahl von Schutzmechanismen, mit deren Hilfe gängige Exploit-Techniken mitigiert werden können. Nicht alle Anwendungen nutzen die vorhandenen Techniken, um die laufenden Prozesse zu schützen: Genau hier setzt die Exploit Protection an und ermöglicht dem Nutzer (oder Administrator) das Betriebssystem dazu anzuweisen, bestimmte Anwendungsprozesse besser zu schützen. Dieser Schutz reicht vom Blockieren unsicherer Schriftarten über die Steuerung von Win32-Aufrufen aus der Anwendung heraus bis zum Erstellen von Child-Prozessen.  

Exploit Protection Einstellungen im Security-Center.

Die bekanntesten Schutzfunktionen des Betriebssystems sind wohl DEP (Data Execution Prevention) und ASLR (Address Space Layout Randomization), welche die Entwicklung zuverlässiger Exploits deutlich erschweren. Die aktuellen Möglichkeiten der Exploit Protection gehen aber weit darüber hinaus, können aber dazu führen, dass Anwendungen nicht mehr funktionieren – wohl der Grund, warum per Default und in den Empfehlungen von Microsoft nur wenig Nutzen aus den Schutzfunktionen des Betriebssystems gezogen wird.

Was lässt sich also nun tatsächlich erreichen? Ausgangslage ist eine verwundbare Anwendung. Zum Beispiel ein PDF-Reader. Zero-Day-Schwachstellen gibt es immer wieder, also kommen verwundbare Prozesse selbst in den besten Familien – ähh IT-Abteilungen vor. Öffnet nun ein Anwender beispielsweise ein schadhaftes PDF-Dokument im verwundbaren PDF-Reader, startet die Exploit-Kette. Und die ist fragil – der Angreifer muss beispielsweise Prozesse starten können, DLLs laden oder auch nur bestimmte Funktionen an vordefinierten Stellen im Arbeitsspeicher anspringen können. Und hier setzt der konfigurierbare Schutz von Windows an. 

Konfiguration unter Windows 10 / 11

Vor dem Start eines Prozesses bzw. einer Anwendung schaut Windows in die Registry. In der Registry steht drin, was vom Betriebssystem beim Start eines Prozesses zu beachten ist. Die Image File Execution Options beinhalten zu jedem Prozess zusätzliche Infos – Beispielsweise, ob oder welcher Debugger mit dem Prozess zusammen gestartet werden soll. Ein Trick, den Angreifer gerne nutzen, um die Authentifizierung zu umgehen oder sich im System zu persistieren. Im positiven Sinne steckt hier aber auch die Konfigurationen für die Exploit Protection drin – pro Prozess bzw. Anwendung. Neben den global-generischen Einstellungen der Exploit Protection lassen sich nämlich für jeden Prozess und jede Anwendung individuelle Schutzkonfigurationen vornehmen.  

Die global-generischen Einstellungen sind aus Security-Sicht sub-optimal: Nicht alle Anwendungen funktionieren mit den vorhanden Sicherheitsmechanismen. ASLR ist beispielsweise per Default nicht für alle Prozesse erzwungen und muss über die individuellen Program settings konfiguriert werden. Spezifische Einstellungen, wie Export Address Filtering (EAF) oder Validate Heap Integrity lassen sich nur pro Prozess konfigurieren.

Generic Settings der Exploit Protection mit ASLR: off

Die Konfiguration der einzelnen Anwendungen erfolgt am einfachsten über das GUI aus dem Windows Security Center: App & browser control -> Exploit Protection Settings. Ist die Konfiguration über das GUI abgeschlossen, kann ein Konfig-XML exportiert und per GPO, PowerShell oder Intune an die Clients verteilt werden. 

Optimaler Schutz für jeden Prozess

Wenn jeder Prozess einzeln geschützt werden muss: Ist das nicht brutal aufwändig? Ja … Nein … also … ne – eigentlich nicht. Mit Blick auf Ransomware und typischen Angriffsszenarien (DFIR-Report) müssen wir ja nicht alle Prozesse schützen – nur die, die typischerweise für die initiale Kompromittierung genutzt werden, also: Browser, PDF-Reader, Office-Produkte. Die Liste wirkt doch überschaubar.

Das Problem: So richtig gute Empfehlungen gibt es seitens Microsoft für Drittanwendungen nicht. Es gibt aber mittlerweile auf GitHub ein Projekt zur Konfigurationen der Exploit Protection für eine Vielzahl von Anwendungen: Alle getestet haben wir nicht; die Einstellungen für den Adobe Reader sind aber auf jeden Fall optimierungsfähig. 

Acrobat Reader Konfiguration der Exploit Protection

Die Einstellungen aus dem neohiro-Katalog von GitHub erlaubt dem Adobe-Reader Child-Prozesse zu erzeugen – also beispielsweise eine CMD zu starten, die dann Schadcode ausführen kann – nicht optimal, aber je nach Anwendungsfall eventuell notwendig.

Ein Regelwerk ohne spezifische Tests besser zu machen ist schwierig. Da bleibt Try-and-Error leider auch in der Praxis in Projekten nicht aus. Bei Notepad++ können gewisse Plugins zu Schwierigkeiten führen, das Blocken von Win32-API-Calls für den Adobe-Reader führt dazu, dass dieser nicht mehr startet und so bedarf doch jede der zu konfigurierenden Anwendungen eine individuelle Sonderbehandlung – ein Aufwand, der sich aber lohnen kann. Ein kurzer Neustart der Anwendung nach jedem Change an der Konfiguration und weiter geht‘s mit dem Ausprobieren. Ein paar ausführlich getestete Beispiele für Adobe Reader, Chrome und Edge – die in der Praxis seit Jahren zumindest keine Fehler verursachen – haben wir in unserem GitHub für Adobe und co. zusammengetragen.

Das Log zur Exploit Protection bietet Hilfe beim Troubleshooting. Die einzelnen Schutzmechanismen selbst, lassen sich vielfach sowohl im Audit-Mode als auch im Enforce-Mode konfigurieren, um nicht gleich das halbe System lahmzulegen.

Sind die Prozesse einmal konfiguriert, lassen sich die Einstellungen in der Registry einsehen oder mit Werkzeugen wie dem ProcessHacker auslesen.  Die folgenden Bilder zeigen Links den Notepad.exe-Prozess ohne Beschränkungen, auf der rechten Seite mit aktivierten Beschränkungen für Remote Images und Low Integrity Images

Prozess-Schutz für Notepad ohne zusätzliche Konfiguration
Prozess-Schutz für Notepad mit zusätzlichem Schutz

Einfach nutzen - egal welcher Virenschutz installiert ist

Anders, als beispielsweise die Attack Surface Reduction aus dem Defender-Portfolio handelt es sich bei der Exploit Protection um „Startparameter“ für die Prozesse und nicht um einen „on-Click“-Schutz alla Anti-Viren-Software. Entsprechend lässt sich die Exploit Protection nutzen, egal welcher Virenscanner installiert ist. Zur Not per Konfiguration über die Registry direkt – oder über die PowerShell. Selbst wenn also die AV-Lösung mal pennt und der Patch noch nicht da ist, bleibt ein Schutz vor Exploits bestehen. Also worauf noch warten!? Schluss mit Ausreden und Exploits gegen verwundbare Software!

Geht wirklich etwas schief, lassen sich die Einträge zur Not über die Registry einfach wieder entfernen oder anpassen.
Die MitigationAuditOptions und MitigationOptions sind sind die HEX-Repräsentation der angehakten Exploit Protection Regelungen. 

Exploit Protection in der Registry

Wer hierzu noch mehr Details oder etwas Support bei Try-and-Error braucht: Alle Microsoft Defender Features, deren Hintergrund und Wirkung zeigen wir auch immer in unseren Windows-Schulungen, in dedizierten Workshops oder im Rahmen von Projekten zu Windows 10 und Windows 11! Viel Spaß beim Härten und Absichern!