Anpassen des Exploit-Schutzes

Gilt für:

Möchten Sie Defender für Endpunkt erfahren? Registrieren Sie sich für eine kostenlose Testversion

Beim Exploit-Schutz werden normalerweise eine Reihe von Risikominimierungstechniken wie auf Betriebssystemprozesse so auch auf einzelne Apps angewendet.

Konfigurieren Sie diese Einstellungen mithilfe der Windows-Sicherheit-App auf einem einzelnen Gerät. Exportieren Sie dann die Konfiguration als XML-Datei, damit Sie sie auf anderen Geräten bereitstellen können. Verwenden Sie Gruppenrichtlinie, um die XML-Datei auf mehrere Geräte gleichzeitig zu verteilen. Sie können die Risikominderungen auch mit PowerShell konfigurieren.

In diesem Artikel werden alle im Exploit-Schutz verfügbaren Risikominderungen aufgeführt. Es gibt an, ob die Risikominderung systemweit oder auf einzelne Apps angewendet werden kann, und bietet eine kurze Beschreibung der Funktionsweise der Risikominderung.

Außerdem wird beschrieben, wie Sie die Risikominderungen mithilfe von Windows-Sicherheit, PowerShell und der Verwaltung mobiler Geräte (Mobile Device Management, MDM) aktivieren oder konfigurieren. Dies ist der erste Schritt beim Erstellen einer Konfiguration, die Sie über Ihr Netzwerk bereitstellen können. Der nächste Schritt umfasst das Generieren, Exportieren, Importieren und Bereitstellen der Konfiguration auf mehreren Geräten.

Warnung

Einige Risikominderungstechnologien für Sicherheitsprobleme weisen möglicherweise Kompatibilitätsprobleme bei einigen Anwendungen auf. Sie sollten den Exploit-Schutz in allen Zielverwendungsszenarien testen, indem Sie Überwachungsmodus verwenden, bevor Sie die Konfiguration in einer Produktionsumgebung oder im restlichen Netzwerk bereitstellen.

Exploit-Schutz-Risikominderungen

Alle Risikominderungen können für einzelne Apps konfiguriert werden. Einige Risikominderungen können auch auf Betriebssystemebene angewendet werden.

Sie können jede der Risikominderungen aktivieren, deaktivieren oder auf ihren Standardwert festlegen. Einige Risikominderungen verfügen über zusätzliche Optionen, die in der Beschreibung in der Tabelle angegeben sind.

Standardwerte werden bei der Option Standard verwenden für jede Risikominderung immer in Klammern angegeben. Im folgenden Beispiel ist die Standardeinstellung für die Datenausführungsverhinderung "Ein".

Die Konfiguration Standard verwenden für jede der Risikominderungseinstellungen gibt unsere Empfehlung für eine grundlegende Schutzebene für die tägliche Nutzung für Heimbenutzer an. Unternehmensbereitstellungen sollten den Schutz berücksichtigen, der für ihre individuellen Anforderungen erforderlich ist, und möglicherweise müssen sie die Konfiguration auf andere als die Standardwerte ändern.

Die zugehörigen PowerShell-Cmdlets für jede Risikominderung finden Sie in der PowerShell-Referenztabelle am Ende dieses Artikels.

Risikominderung Beschreibung Kann angewendet werden auf Überwachungsmodus verfügbar
Ablaufsteuerungsschutz (Control Flow Guard, CFG) Gewährleistet Ablaufsteuerungsintegrität für indirekte Aufrufe. Kann optional Exporte unterdrücken und strict CFG verwenden. System- und App-Ebene Nein
Datenausführungsverhinderung (DATA Execution Prevention, DEP) Verhindert, dass Code von Datenspeicherseiten wie Heaps und Stapeln ausgeführt wird. Nur konfigurierbar für 32-Bit-Apps (x86), die dauerhaft für alle anderen Architekturen aktiviert sind. Kann optional die ATL-Thunkemulation aktivieren. System- und App-Ebene Nein
Erzwingen von zufälligen Abbildern (obligatorisches ASLR) Erzwingt die Verschiebung von Bildern, die nicht mit /DYNAMICBASE kompiliert wurden. Kann optional beim Laden von Bildern, die keine Verlagerungsinformationen enthalten, fehlschlagen. System- und App-Ebene Nein
Zufällige Speicherbelegungen (Bottom-Up ASLR) Ordnet Positionen für Belegungen von virtuellem Speicher zufällig an. Es umfasst Systemstrukturheaps, Stapel, TEBs und PEBs. Kann optional eine größere Zufallsvarianz für 64-Bit-Prozesse verwenden. System- und App-Ebene Nein
Überprüfen von Ausnahmeketten (SEHOP) Stellt die Integrität einer Ausnahmekette während der Ausnahmeverteilung sicher. Nur für 32-Bit-Anwendungen (x86) konfigurierbar. System- und App-Ebene Nein
Überprüfen der Heapintegrität Beendet einen Prozess, wenn eine Heapbeschädigung erkannt wird. System- und App-Ebene Nein
Arbitrary Code Guard (ACG) Verhindert die Einführung von ausführbarem Code ohne Bildunterstützung und verhindert, dass Codeseiten geändert werden. Kann optional Threaddeaktivierung und Remotedowngrade zulassen (nur mit PowerShell konfigurierbar). Nur auf App-Ebene Ja
Bilder mit niedriger Integrität blockieren Verhindert das Laden von Bildern, die mit niedriger Integrität gekennzeichnet sind. Nur auf App-Ebene Ja
Remoteimages blockieren Verhindert das Laden von Bildern von Remotegeräten. Nur auf App-Ebene Nein
Nicht vertrauenswürdige Schriftarten blockieren Verhindert das Laden von GDI-basierten Schriftarten, die nicht im Verzeichnis der Systemschriftarten installiert sind, insbesondere von Schriftarten aus dem Web. Nur auf App-Ebene Ja
Codeintegritätsschutz Schränkt das Laden von Bildern ein, die von Microsoft, WHQL oder höher signiert wurden. Kann optional von Microsoft Store signierte Bilder zulassen. Nur auf App-Ebene Ja
Deaktivieren von Erweiterungspunkten Deaktiviert verschiedene Erweiterbarkeitsmechanismen, die die DLL-Einschleusung in alle Prozesse ermöglichen, z. B. AppInit-DLLs, Fensterhooks und Winsock-Dienstanbieter. Nur auf App-Ebene Nein
Win32k-Systemaufrufe deaktivieren Verhindert, dass eine App die Win32k-Systemaufruftabelle verwendet. Nur auf App-Ebene Ja
Untergeordnete Prozesse nicht zulassen Verhindert, dass eine App untergeordnete Prozesse erstellt. Nur auf App-Ebene Ja
Export-Adressfilterung (EAF) Erkennt gefährliche Vorgänge, die durch bösartigen Code aufgelöst werden. Kann optional den Zugriff durch Module überprüfen, die häufig von Exploits verwendet werden. Nur auf App-Ebene Ja
Import-Adressfilterung (IAF) Erkennt gefährliche Vorgänge, die durch bösartigen Code aufgelöst werden. Nur auf App-Ebene Ja
Simulieren der Ausführung (SimExec) Stellt sicher, dass Aufrufe vertraulicher APIs an legitime Anrufer zurückgegeben werden. Nur für 32-Bit-Anwendungen (x86) konfigurierbar. Nicht kompatibel mit ACG. Nur auf App-Ebene Ja
Überprüfen des API-Aufrufs (CallerCheck) Stellt sicher, dass vertrauliche APIs von legitimen Anrufern aufgerufen werden. Nur für 32-Bit-Anwendungen (x86) konfigurierbar. Nicht kompatibel mit ACG Nur auf App-Ebene Ja
Überprüfen der Handleverwendung Bewirkt, dass eine Ausnahme für ungültige Handleverweise ausgelöst wird. Nur auf App-Ebene Nein
Überprüfen der Integrität von Imageabhängigkeiten Erzwingt die Codesignatur für das Laden von Windows-Imageabhängigkeiten. Nur auf App-Ebene Nein
Überprüfen der Stapelintegrität (StackPivot) Stellt sicher, dass der Stapel für sensible APIs nicht umgeleitet wurde. Nicht kompatibel mit ACG. Nur auf App-Ebene Ja

Wichtig

Wenn Sie dem Abschnitt Programmeinstellungen eine App hinzufügen und dort einzelne Risikominderungseinstellungen festlegen, werden diese vor den Einstellungen für die gleichen Risikominderungen berücksichtigt, die im Abschnitt Systemeinstellungen festgelegt wurden. Die folgende Matrix und Beispiele veranschaulichen, wie Standardeinstellungen funktionieren:

Aktiviert in den Programmeinstellungen Aktiviert in den Systemeinstellungen Verhalten
Ja Nein Wie in den Programmeinstellungen festgelegt
Ja Ja Wie in den Programmeinstellungen festgelegt
Nein Ja Wie in den Systemeinstellungen festgelegt
Nein Nein Standardwert wie in der Option Standardwert verwenden festgelegt
  • Beispiel 1 Mikael konfiguriert die Datenausführungsverhinderung (Data Execution Prevention, DEP) im Abschnitt Systemeinstellungen als Standardmäßig deaktiviert. Michael fügt dann die App test.exe zum Abschnitt Programmeinstellungen hinzu. Er aktiviert In den Optionen für diese App unter Datenausführungsverhinderung die Option Systemeinstellungen außer Kraft setzen und legt den Schalter auf Ein fest. Im Abschnitt Programmeinstellungen sind keine anderen Apps aufgeführt. Das Ergebnis ist, dass DEP nur für test.exe aktiviert wird. Auf alle anderen Apps wird die Datenausführungsverhinderung nicht angewendet.

  • Beispiel 2 Josie konfiguriert die Datenausführungsverhinderung (Data Execution Prevention, DEP) im Abschnitt Systemeinstellungen als Standardmäßig deaktiviert. Hannah fügt dann die App test.exe zum Abschnitt Programmeinstellungen hinzu. Sie aktiviert In den Optionen für diese App unter Datenausführungsverhinderung die Option Systemeinstellungen außer Kraft setzen und legt den Schalter auf Ein fest. Hannah fügt außerdem die App miles.exe zum Abschnitt Programmeinstellungen hinzu und setzt Ablaufsteuerungsschutz (Control Flow Guard, CFG) auf Ein. Sie aktiviert die Option Systemeinstellungen außer Kraft setzen für diese App weder für die Datenausführungsverhinderung noch für andere Risikominderungen. Das Ergebnis ist, dass DEP für test.exe aktiviert wird. Sie wird für keine andere App aktiviert, auch nicht für miles.exe. Für miles.exe ist hingegen der Ablaufsteuerungsschutz aktiviert.

Hinweis

Wenn Sie Probleme in diesem Artikel gefunden haben, können Sie sie direkt an einen Windows Server-/Windows-Clientpartner melden oder die technischen Supportnummern von Microsoft für Ihr Land verwenden.

Konfigurieren von Risikominderungen auf Systemebene mit der Windows-Sicherheit-App

  1. Öffnen Sie die Windows-Sicherheit-App, indem Sie entweder das Schildsymbol in der Taskleiste anklicken oder über das Startmenü nach Windows-Sicherheit suchen.

  2. Wählen Sie die Kachel des App-Browser-Steuerelements & (oder das App-Symbol auf der linken Menüleiste) und dann Exploit-Schutz aus.

  3. Suchen Sie im Abschnitt Systemeinstellungen die Risikominderung, die Sie konfigurieren möchten, und wählen Sie dann eine der folgenden fest. Für Apps, die im Abschnitt Programmeinstellungen nicht einzeln konfiguriert sind, gelten die hier festgelegten Einstellungen:

    • Standardmäßig aktiviert – Die Risikominderung ist für Apps aktiviert, für die sie nicht im App-spezifischen Abschnitt in den Programmeinstellungen festgelegt wurde.
    • Standardmäßig deaktiviert – Die Risikominderung ist für Apps deaktiviert, für die sie nicht im App-spezifischen Abschnitt in den Programmeinstellungen festgelegt wurde.
    • Standardwert verwenden – Die Risikominderung ist entweder aktiviert oder deaktiviert, abhängig von der Standardkonfiguration, die durch die Windows 10- oder Windows 11-Installation eingerichtet wurde. Der Standardwert (Ein oder Aus) wird immer neben der Bezeichnung Standardwert verwenden für die einzelnen Risikominderungen angegeben.

    Hinweis

    Beim Ändern einiger Einstellungen wird möglicherweise ein Fenster "Benutzerkontensteuerung" angezeigt. Geben Sie Administratoranmeldeinformationen ein, um die Einstellung anzuwenden.

    Zum Ändern einiger Einstellungen ist möglicherweise ein Neustart erforderlich.

  4. Wiederholen Sie die für alle Risikominderungsfunktionen auf Systemebene, die Sie konfigurieren möchten.

  5. Wechseln Sie zum Abschnitt Programmeinstellungen, und wählen Sie die App aus, auf die Sie Risikominderungsfunktionen anwenden möchten:

    1. Wenn die App, die Sie konfigurieren möchten, bereits aufgeführt ist, wählen Sie sie aus, und klicken Sie dann auf Bearbeiten.
    2. Wenn die App nicht aufgeführt ist, klicken Sie oben in der Liste auf Programm zum Anpassen hinzufügen, und wählen Sie dann aus, wie Sie die App hinzufügen möchten:
      • Wählen Sie Nach Programmnamen hinzufügen, damit die Risikominderung auf alle laufenden Prozesse mit diesem Namen angewendet wird. Sie müssen eine Datei mit einer Erweiterung angeben. Sie können einen vollständigen Pfad angeben, um die Risikominderung auf die App mit diesem Namen an diesem Speicherort zu beschränken.
      • Wählen Sie Genauen Dateipfad auswählen, um über ein Standard-Windows-Explorer-Fenster die gewünschte Datei zu suchen und auszuwählen.
  6. Nach dem Auswählen der App wird eine Liste aller Risikominderungsfunktionen angezeigt, die angewendet werden können. Um die Risikominderung zu aktivieren, aktivieren Sie das Kontrollkästchen, und setzen Sie dann den Schieberegler auf Ein. Wählen Sie zusätzliche Optionen aus. Wenn Sie Überwachung auswählen, wird die Risikominderung nur im Überwachungsmodus angewendet. Sie werden darüber benachrichtigt, ob Sie den Prozess, die App oder Windows neu starten müssen.

  7. Wiederholen Sie diese Schritte für alle Apps und Risikominderungsfunktionen, die Sie konfigurieren möchten. Klicken Sie auf Übernehmen, wenn Sie mit der Einrichtung Ihrer Konfiguration fertig sind.

Sie können diese Einstellungen jetzt als XML-Datei exportieren oder fortfahren, um App-spezifische Risikominderungen zu konfigurieren.

Wenn Sie die Konfiguration als XML-Datei exportieren, können Sie die Konfiguration von einem Gerät auf andere Geräte kopieren.

PowerShell-Referenz

Sie können die Windows-Sicherheit-App verwenden, um den Exploit-Schutz zu konfigurieren, oder Sie können PowerShell-Cmdlets verwenden.

Die Konfigurationseinstellungen, die zuletzt geändert wurden, werden immer angewendet – unabhängig davon, ob Sie PowerShell oder Windows-Sicherheit verwenden. Dies bedeutet, dass wenn Sie die App zum Konfigurieren einer Risikominderung verwenden und dann PowerShell verwenden, um dieselbe Risikominderung zu konfigurieren, die App aktualisiert wird, um die Änderungen anzuzeigen, die Sie mit PowerShell vorgenommen haben. Wenn Sie dann die App verwenden würden, um die Risikominderung erneut zu ändern, würde diese Änderung gelten.

Wichtig

Alle Änderungen, die über die Gruppenrichtlinie auf einem Gerät bereitgestellt werden, setzen die lokale Konfiguration außer Kraft. Verwenden Sie beim Einrichten einer Erstkonfiguration ein Gerät, auf das keine Gruppenrichtlinienkonfiguration angewendet wird, um sicherzustellen, dass Ihre Änderungen nicht überschrieben werden.

Sie können das PowerShell-Verb Get oder Set mit dem Cmdlet ProcessMitigation verwenden. Mithilfe von Get wird der aktuelle Konfigurationsstatus aller Risikominderungen aufgelistet, die auf dem Gerät aktiviert wurden. Fügen Sie das Cmdlet -Name und die App-EXE-Datei hinzu, um Risikominderungen nur für diese App anzuzeigen:

Get-ProcessMitigation -Name processName.exe

Wichtig

Nicht konfigurierte Risikominderungen auf Systemebene weisen den Status NOTSET auf.

Bei Einstellungen auf Systemebene gibt NOTSET an, dass die Standardeinstellung für diese Risikominderung angewendet wurde.

Bei Einstellungen auf App-Ebene gibt NOTSET an, dass die Einstellung auf Systemebene für diese Risikominderung angewendet wird.

Die Standardeinstellung für die einzelnen Risikominderungen auf Systemebene wird in Windows-Sicherheit angezeigt.

Verwenden Sie Set, um die einzelnen Risikominderungen im folgenden Format zu konfigurieren:

Set-ProcessMitigation -<scope> <app executable> -<action> <mitigation or options>,<mitigation or options>,<mitigation or options>

Dabei gilt:

  • <Bereich>:
    • -Name, um anzugeben, dass die Risikominderungen auf eine bestimmte App angewendet werden sollen. Geben Sie die ausführbare Datei der App nach diesem Flag an.
    • -System, um anzugeben, dass die Risikominderungen auf Systemebene angewendet werden sollen.
  • <Aktion>:
    • -Enable, um die Risikominderung zu aktivieren
    • -Disable, um die Risikominderung zu deaktivieren
  • <Entschärfung>:
    • Das Cmdlet der Risikominderung, wie in der Tabelle der Cmdlets der Risikominderung unten definiert, sowie alle Unteroptionen (umgeben von Leerzeichen). Die einzelnen Risikominderungen sind durch ein Komma getrennt.

Um beispielsweise die Risikominderung "Datenausführungsverhinderung" (Data Execution Prevention, DEP) mit ATL-Thunkemulation und für eine ausführbare Datei namens testing.exe im Ordner C:\Apps\LOB\tests zu aktivieren und zu verhindern, dass diese ausführbare Datei untergeordnete Prozesse erstellt, verwenden Sie den folgenden Befehl:

Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable DEP, EmulateAtlThunks, DisallowChildProcessCreation

Wichtig

Trennen Sie die einzelnen Risikominderungsoptionen durch Kommas.

Wenn Sie die Datenausführungsverhinderung auf Systemebene anwenden möchten, verwenden Sie den folgenden Befehl:

Set-Processmitigation -System -Enable DEP

Um Risikominderungen zu deaktivieren, können Sie -Enable durch -Disable ersetzen. Bei Risikominderungen auf App-Ebene erzwingt dies jedoch, dass die Risikominderung nur für diese App deaktiviert wird.

Wenn Sie die Risikominderung wieder auf die Systemstandardeinstellung zurücksetzen müssen, müssen Sie auch das cmdlet -Remove einschließen, wie im folgenden Beispiel gezeigt:

Set-Processmitigation -Name test.exe -Remove -Disable DEP

Sie können einige Risikominderungsfunktionen auch in den Überwachungsmodus versetzen. Verwenden Sie anstelle des PowerShell-Cmdlets für die Risikominderung das Cmdlet Überwachungsmodus, wie in der folgenden Tabelle der Cmdlets der Risikominderung angegeben.

Um z. B. Arbitrary Code Guard (ACG) im Überwachungsmodus für die zuvor verwendete Datei testing.exe zu aktivieren, verwenden Sie den folgenden Befehl:

Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable AuditDynamicCode

Sie können den Überwachungsmodus deaktivieren, indem Sie denselben Befehl verwenden, aber -Enable durch -Disable ersetzen.

PnP-PowerShell-Referenz-Tabelle

In dieser Tabelle sind die PowerShell-Cmdlets (und das zugehörige Überwachungsmodus-Cmdlet) aufgeführt, die zum Konfigurieren der einzelnen Risikominderungen verwendet werden können.

Risikominderung Gilt für PowerShell-Cmdlets Cmdlet für den Überwachungsmodus
Ablaufsteuerungsschutz (Control Flow Guard, CFG) System- und App-Ebene CFG, StrictCFG, SuppressExports Überwachung nicht verfügbar
Datenausführungsverhinderung (DATA Execution Prevention, DEP) System- und App-Ebene DEP, EmulateAtlThunks Überwachung nicht verfügbar
Erzwingen von zufälligen Abbildern (obligatorisches ASLR) System- und App-Ebene ForceRelocateImages Überwachung nicht verfügbar
Zufällige Speicherbelegungen (Bottom-Up ASLR) System- und App-Ebene BottomUp, HighEntropy Überwachung nicht verfügbar
Überprüfen von Ausnahmeketten (SEHOP) System- und App-Ebene SEHOP, SEHOPTelemetry Überwachung nicht verfügbar
Überprüfen der Heapintegrität System- und App-Ebene TerminateOnError Überwachung nicht verfügbar
Arbitrary Code Guard (ACG) Nur auf App-Ebene DynamicCode AuditDynamicCode
Bilder mit niedriger Integrität blockieren Nur auf App-Ebene BlockLowLabel AuditImageLoad
Remoteimages blockieren Nur auf App-Ebene BlockRemoteImages Überwachung nicht verfügbar
Nicht vertrauenswürdige Schriftarten blockieren Nur auf App-Ebene DisableNonSystemFonts AuditFont, FontAuditOnly
Codeintegritätsschutz Nur auf App-Ebene BlockNonMicrosoftSigned, AllowStoreSigned AuditMicrosoftSigned, AuditStoreSigned
Deaktivieren von Erweiterungspunkten Nur auf App-Ebene ExtensionPoint Überwachung nicht verfügbar
Win32k-Systemaufrufe deaktivieren Nur auf App-Ebene DisableWin32kSystemCalls AuditSystemCall
Untergeordnete Prozesse nicht zulassen Nur auf App-Ebene DisallowChildProcessCreation AuditChildProcess
Export-Adressfilterung (EAF) Nur auf App-Ebene "EnableExportAddressFilterPlus", "EnableExportAddressFilter " [1] Überwachung nicht verfügbar[2]
Import-Adressfilterung (IAF) Nur auf App-Ebene EnableImportAddressFilter Überwachung nicht verfügbar[2]
Simulieren der Ausführung (SimExec) Nur auf App-Ebene EnableRopSimExec Überwachung nicht verfügbar[2]
Überprüfen des API-Aufrufs (CallerCheck) Nur auf App-Ebene EnableRopCallerCheck Überwachung nicht verfügbar[2]
Überprüfen der Handleverwendung Nur auf App-Ebene StrictHandle Überwachung nicht verfügbar
Überprüfen der Integrität von Imageabhängigkeiten Nur auf App-Ebene EnforceModuleDepencySigning Überwachung nicht verfügbar
Überprüfen der Stapelintegrität (StackPivot) Nur auf App-Ebene EnableRopStackPivot Überwachung nicht verfügbar[2]

[1]: Verwenden Sie das folgende Format, um EAF-Module für DLL-Dateien für einen Prozess zu aktivieren:

Set-ProcessMitigation -Name processName.exe -Enable EnableExportAddressFilterPlus -EAFModules dllName1.dll,dllName2.dll

[2]: Die Überwachung auf diese Entschärfung ist nicht über PowerShell-Cmdlets verfügbar.

Anpassen der Benachrichtigung

Weitere Informationen zum Anpassen der Benachrichtigung, wenn eine Regel ausgelöst wird und diese eine App oder Datei blockiert, finden Sie unter Windows-Sicherheit.

Siehe auch