Defender Exploit-Schutz mit PowerShell und Gruppenrichtlinien konfigurieren


    Tags: , ,

    Exploit-Schutz blockiert Google ChromeUnter dem Begriff Exploit-Schutz versammelt Microsoft eine Reihe von Techniken, die Angriffe durch Malware erschweren sollen. Darunter finden sich auch alte Bekannte wie DEP. Während auf System­ebene die meisten Schutz­mecha­nismen standard­mäßig aktiv sind, sollte man die Einstellungen für einzelne Apps noch tunen.

    Zu den zentralen Komponenten der Exploit Protection gehören:

    • der Ablaufsteuerungs­schutz (Control Flow Guard, CFG),
    • die Daten­ausführungs­verhinderung (Data Execution Prevention, DEP)
    • das Erzwingen von zufälligen Abbildern (Force randomization for images)
    • zufällige Speicher­belegungen (Randomize memory allocations)
    • das Überprüfen von Ausnahmeketten (Validate exception chains)
    • das Überprüfen der Heapintegrität (Validate heap integrity)

    Darüber hinaus kennt der Exploit-Schutz eine ganze Reihe von Einstellungen, die sich nur auf Applikationen anwenden lassen, um diese zu härten. Sie ergänzen die Maßnahmen, die man für Programme durch die Reduktion der Angriffsfläche ergreifen kann.

    So kann man Anwendungen verbieten, Kindprozesse zu starten, nicht vertrauens­würdige Schriftarten blockieren, Win32k-Systemaufrufe deaktivieren oder verhindern, dass nicht von Microsoft signierte DLLs geladen werden.

    System- versus App-Ebene

    Diese Mechanismen lassen sich auf Systemebene aktivieren, so dass sie dann für alle Anwendungen automatisch greifen. Konfiguriert man eine Einstellung jedoch für bestimmte Apps, dann überschreibt man damit die systemweiten Vorgaben.

    In der Regel wird man eher einzelne Anwendungen absichern, da globale Vorgaben unvorher­gesehene Auswirkungen gerade auf ältere Programme haben können. Einen Audit-Modus, mit dessen Hilfe man die potenziellen Auswirkungen bestimmter Schutz­mechanismen vorab untersuchen könnte, gibt es nur für die wenige Einstellungen.

    Eventlog prüfen

    Bevor man die Einstellungen von einem Referenz-PC auf andere Rechner verteilt, sollte man die Konfiguration ausgiebig testen. Dabei sind die Einträge im Eventlog hilfreich. In der Ereignisanzeige findet man diese unter Anwendungs- und Dienstprotokolle => Microsoft => Windows => Security-Mitigations => Kernel Mode.

    Einträge für den Exploit-Schutz im Ereignisprotokoll

    Alternativ kann man das Protokoll mit PowerShell auslesen:

    Get-WinEvent -LogName 'Microsoft-Windows-Security-Mitigations/KernelMode' | Format-List

    Aktuelle Einstellungen ermitteln

    Die Einstellungen zum Exploit-Schutz lassen sich interaktiv in der Sicherheits-App unter App- und Browsersteuerung => Einstellungen für den Exploit-Schutz konfigurieren. Dort findet sich jeweils ein Reiter für die System- bzw. Programm­einstellungen.

    Optionen für den Exploit-Schutz in der App für die Sicherheitseinstellungen

    Für gezielte Abfragen eignet sich indes PowerShell besser. Die systemweiten Standards für Exploit Protection lassen sich so anzeigen:

    Get-ProcessMitigation -System

    Systemvorgaben für den Exploit-Schutz abfragen

    Die einzelnen Einstellungen sind unter den jeweiligen Schutz­mechanismen zusammengefasst, die Ausgabe ist gerade für Anwendungen oft sehr umfangreich. Möchte man daher zum Beispiel nur jene zu Address space layout randomization (ASLR) anzeigen, dann kann man obigen Befehl so ergänzen:

    Get-ProcessMitigation -System | select -ExpandProperty ASLR

    Die spezifischen Einstellungen für Programme kann man mit diesem Cmdlet ebenfalls auslesen:

    Get-ProcessMitigation -Name chrome.exe

    Möchte man die laufenden Prozesse eines Programms untersuchen, dann fügt man noch den Schalter RunningProcesses hinzu.

    Einstellungen mit PowerShell konfigurieren

    Grundsätzlich kann man die meisten Einstellungen für den Exploit-Schutz auch über die GUI anpassen. Wenn man sich stattdessen für PowerShell entscheidet, dann ist das Cmdlet Set-ProcessMitigation dafür zuständig.

    Auch hier kann man mit den Parametern System bzw. Name wahlweise die globalen Einstellungen oder jene für einzelne Apps ansprechen. Über Enable oder Disable aktiviert bzw. deaktiviert man dann eine oder mehrere Einstellungen:

    Set-ProcessMitigation -System -Enable DisableNonSystemFonts

    Die Verwendung von nicht vertrauenswürdigen Fonts per Systemvorgabe unterbinden

    Dieses Beispiel würde generell das Laden von nicht vertrauens­würdigen Fonts unterbinden, sofern man sie nicht für bestimmte Anwendungen gezielt zulässt. Die Namen der Einstellungen für die Verwendung mit Enable und Disable kann man Microsofts Dokumentation entnehmen.

    Einstellungen für Exploit-Schutz exportieren

    Sobald man auf einem Referenz-PC die gewünschten Einstellungen für den Exploit-Schutz konfiguriert hat, kann man diese auf die anderen Rechner im Netz verteilen.

    Dazu exportiert man im ersten Schritt die Konfiguration auf dem Muster-PC. Dies erfolgt in der App, in der man wie oben beschrieben den Exploit-Schutz anpassen kann. Dort findet sich am unteren Ende der Seite ein entsprechender Link. Der Export erfolgt im XML-Format, und er schreibt sowohl die System- als auch die App-Einstellungen in eine Datei.

    Export der Einstellungen für den Exploit-Schutz aus dem Referenz-PC

    Konfiguration im Netz verteilen

    Grundsätzlich kann man die exportierte Konfiguration auch mittels PowerShell auf einem anderen Rechner importieren:

    Set-ProcessMitigation -PolicyFilePath settings.xml

    In den meisten Umgebungen wird man dafür jedoch die Gruppen­richtlinien nutzen. Dazu legt man die Datei mit der exportierten Konfiguration man auf einem Share ab, wo sie von allen Clients erreicht werden kann. Nun erstellt man ein GPO, das diese Einstellungen im Netz verteilt.

    Zuständig dafür ist die Policy Allgemeine Richtlinie für den Exploit-Schutz verwenden. Sie findet sich unter Computer­konfiguration => Richtlinien => Administrative Vorlagen => Windows-Komponenten => Microsoft Defender Exploit Guard => Exploit-Schutz.

    Verteilen der Referenzkonfiguration mittels Gruppenrichtlinien

    Wenn man die Einstellung aktiviert, dann kann man im entsprechenden Eingabefeld den Pfad zur XML-Datei hinterlegen.

    Wenn man wieder zu den Standards zurückkehren möchte, dann reicht es nicht, einfach das GPO zu deaktivieren. Vielmehr muss man die Einstellungen aktiv zurücksetzen. Dazu verwendet man entweder den Export aus einem frisch installierten Windows oder die Datei EP-reset.xml aus der Windows Security Baseline.

    Fazit

    Der Exploit-Schutz versammelt eine Reihe von Mechanismen, die Windows gegen schädliche Programme und Angriffe härtet. Per Voreinstellung sind einige davon bereits aktiviert, aber eine maß­geschneiderte Konfiguration für kritische Anwendungen kann die Sicherheit zusätzlich erhöhen.

    In verwalteten Umgebungen wird man eine solche individuelle Konfiguration erst auf einem Referenzsystem testen, bevor man sie exportiert und über ein GPO im Netzwerk verteilt. Leider unterstützen nur wenige Einstellungen einen Audit-Modus, so dass man die Kompatibilität von Applikationen mit strikteren Regeln für den Exploit-Schutz sicherstellen sollte.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut

    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Ähnliche Beiträge

    Weitere Links