Anpassen des Exploit-Schutzes

Gilt für:

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

Exploit-Schutz wendet automatisch eine Reihe von Exploit-Minderungstechniken sowohl auf die Betriebssystemprozesse als auch auf einzelne Apps an.

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 Gruppenrichtlinien, um die XML-Datei auf mehrere Geräte gleichzeitig zu verteilen. Sie können die Gegenmaßnahmen auch mit PowerShell konfigurieren.

In diesem Artikel werden alle im Exploit-Schutz verfügbaren Risikominderungen aufgelistet. Es gibt an, ob die Gegenmaßnahme systemweit oder auf einzelne Apps angewendet werden kann, und enthält eine kurze Beschreibung der Funktionsweise der Gegenmaßnahme.

Außerdem wird beschrieben, wie Sie die Gegenmaßnahmen mit Windows-Sicherheit, PowerShell und Konfigurationsdienstanbietern für die mobile Geräteverwaltung (Mobile Device Management, MDM) aktivieren oder konfigurieren. Dies ist der erste Schritt beim Erstellen einer Konfiguration, die Sie in Ihrem 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-Gegenmaßnahmen

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

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

Standardwerte werden bei der Standardoption "Verwenden" für jede Gegenmaßnahme immer in Klammern angegeben. Im folgenden Beispiel ist die Standardeinstellung für die Datenausführungsverhinderung "Ein".

Die Standardkonfiguration "Verwenden" für jede der Risikominderungseinstellungen gibt unsere Empfehlung für eine grundlegende Schutzebene für die tägliche Nutzung für private Benutzer an. Enterprise Bereitstellungen sollten den für ihre individuellen Anforderungen erforderlichen Schutz berücksichtigen und die Konfiguration möglicherweise von den Standardwerten weg ändern.

Die zugeordneten PowerShell-Cmdlets für jede Gegenmaßnahme finden Sie in der PowerShell-Referenztabelle am Ende dieses Artikels.

Risikominderung Beschreibung Kann angewendet werden auf Überwachungsmodus verfügbar
Ablaufsteuerungsschutz (Control Flow Guard, CFG) Stellt die Steuerungsflussintegrität für indirekte Aufrufe sicher. Kann optional Exporte unterdrücken und strenge CFG verwenden. System- und App-Ebene Nein
Datenausführungsverhinderung (DATA Execution Prevention, DEP) Verhindert, dass Code von Datenspeicherseiten wie Heap und Stapeln ausgeführt wird. Nur konfigurierbar für 32-Bit-Apps (x86), die für alle anderen Architekturen dauerhaft aktiviert sind. Kann optional die ATL-Thunk-Emulation aktivieren. System- und App-Ebene Nein
Erzwingen von zufälligen Abbildern (obligatorisches ASLR) Verlagern Bilder, die nicht mit /DYNAMICBASE kompiliert wurden, erzwungen. Kann optional beim Laden von Bildern fehlschlagen, die keine Verlagerungsinformationen enthalten. System- und App-Ebene Nein
Zufällige Speicherbelegungen (Bottom-Up ASLR) Zufällige Speicherorte für virtuelle Speicherzuweisungen. Es umfasst Systemstruktur-Heaps, 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 des Ausnahmeversands sicher. Nur konfigurierbar für 32-Bit-Anwendungen (x86). System- und App-Ebene Nein
Überprüfen der Heapintegrität Beendet einen Prozess, wenn eine Heap-Beschädigung erkannt wird. System- und App-Ebene Nein
Arbitrary Code Guard (ACG) Verhindert die Einführung von ausführbarem Code, der nicht vom Bild unterstützt wird, und verhindert, dass Codeseiten geändert werden. Kann optional das Thread-Opt-Out und das Remote-Downgrade zulassen (nur mit PowerShell konfigurierbar). Nur App-Ebene Ja
Bilder mit niedriger Integrität blockieren Verhindert das Laden von Bildern, die mit niedriger Integrität gekennzeichnet sind. Nur App-Ebene Ja
Remoteimages blockieren Verhindert das Laden von Bildern von Remotegeräten. Nur App-Ebene Nein
Nicht vertrauenswürdige Schriftarten blockieren Verhindert das Laden von GDI-basierten Schriftarten, die nicht im Verzeichnis der Systemschriftarten installiert sind, insbesondere Schriftarten aus dem Web. Nur App-Ebene Ja
Codeintegritätsschutz Schränkt das Laden von Bildern ein, die von Microsoft, WHQL oder höher signiert wurden. Kann optional Microsoft Store signierte Bilder zulassen. Nur App-Ebene Ja
Deaktivieren von Erweiterungspunkten Deaktiviert verschiedene Erweiterbarkeitsmechanismen, die eine DLL-Einfügung in alle Prozesse ermöglichen, z. B. AppInit-DLLs, Fensterhooks und Winsock-Dienstanbieter. Nur App-Ebene Nein
Win32k-Systemaufrufe deaktivieren Verhindert, dass eine App die Win32k-Systemanruftabelle verwendet. Nur App-Ebene Ja
Untergeordnete Prozesse nicht zulassen Verhindert, dass eine App untergeordnete Prozesse erstellt. Nur 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 App-Ebene Ja
Import-Adressfilterung (IAF) Erkennt gefährliche Vorgänge, die durch bösartigen Code aufgelöst werden. Nur App-Ebene Ja
Simulieren der Ausführung (SimExec) Stellt sicher, dass Aufrufe vertraulicher APIs an legitime Aufrufer zurückgegeben werden. Nur konfigurierbar für 32-Bit-Anwendungen (x86). Nicht kompatibel mit ACG. Nur App-Ebene Ja
Überprüfen des API-Aufrufs (CallerCheck) Stellt sicher, dass vertrauliche APIs von legitimen Aufrufern aufgerufen werden. Nur konfigurierbar für 32-Bit-Anwendungen (x86). Nicht kompatibel mit ACG Nur App-Ebene Ja
Überprüfen der Handleverwendung Bewirkt, dass eine Ausnahme für ungültige Handleverweise ausgelöst wird. Nur App-Ebene Nein
Überprüfen der Integrität von Imageabhängigkeiten Erzwingt die Codesignatur für Windows Laden von Bildabhängigkeiten. Nur App-Ebene Nein
Überprüfen der Stapelintegrität (StackPivot) Stellt sicher, dass der Stapel für vertrauliche APIs nicht umgeleitet wurde. Nicht kompatibel mit ACG. Nur App-Ebene Ja

Wichtig

Wenn Sie eine App zum Abschnitt "Programmeinstellungen" hinzufügen und dort einzelne Gegenmaßnahmen konfigurieren, werden diese oberhalb der Konfiguration für die gleichen Gegenmaßnahmen berücksichtigt, die im Abschnitt "Systemeinstellungen" angegeben sind. In der folgenden Matrix und in den folgenden Beispielen wird die Funktionsweise von Standardeinstellungen veranschaulicht:

Aktiviert in den Programmeinstellungen Aktiviert in den Systemeinstellungen Verhalten
Ja Nein Wie in den Programmeinstellungen definiert
Ja Ja Wie in den Programmeinstellungen definiert
Nein Ja Wie in den Systemeinstellungen definiert
Nein Ja Standard wie in "Standardoption verwenden" definiert
  • Beispiel 1

    Mikael konfiguriert die Datenausführungsverhinderung (Data Execution Prevention, DEP) im Abschnitt "Systemeinstellungen" standardmäßig als deaktiviert.

    Mikael fügt dann die App-test.exe zum Abschnitt "Programmeinstellungen" hinzu. In den Optionen für diese App aktiviert er unter Datenausführungsverhinderung (Data Execution Prevention, DEP) die Option "Systemeinstellungen überschreiben" 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 DEP nicht angewendet.

  • Beispiel 2

    Josie konfiguriert die Datenausführungsverhinderung (Data Execution Prevention, DEP) im Abschnitt "Systemeinstellungen" standardmäßig als deaktiviert.

    Josie fügt dann die App test.exe zum Abschnitt "Programmeinstellungen" hinzu. In den Optionen für diese App aktiviert sie unter Datenausführungsverhinderung (Data Execution Prevention, DEP) die Option "Systemeinstellungen überschreiben" und legt den Schalter auf "Ein" fest.

    Josie fügt auch die App-miles.exe zum Abschnitt "Programmeinstellungen" hinzu und konfiguriert den Ablaufsteuerungsschutz (Control Flow Guard, CFG) auf "Ein". Sie aktiviert nicht die Option "Systemeinstellungen außer Kraft setzen" für DEP oder andere Gegenmaßnahmen für diese App.

    Das Ergebnis ist, dass DEP für test.exe aktiviert wird. DEP wird für keine andere App aktiviert, einschließlich miles.exe. CFG wird für miles.exe 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 Gegenmaßnahmen auf Systemebene mit der Windows-Sicherheit-App

  1. Öffnen Sie die Windows-Sicherheit App, indem Sie das Schildsymbol in der Taskleiste auswählen oder das Startmenü nach Defender durchsuchen.

  2. Wählen Sie die Kachel "App & Browsersteuerelement" (oder das App-Symbol auf der linken Menüleiste) aus, und wählen Sie dann Exploit-Schutz aus.

  3. Suchen Sie im Abschnitt "Systemeinstellungen" die Gegenmaßnahme, die Sie konfigurieren möchten, und wählen Sie eine der folgenden Optionen aus. Apps, die im Abschnitt "Programmeinstellungen" nicht einzeln konfiguriert sind, verwenden die hier konfigurierten Einstellungen:

    • Standardmäßig aktiviert – Die Gegenmaßnahme ist für Apps aktiviert, für die diese Gegenmaßnahme nicht im Abschnitt "App-spezifische Programmeinstellungen" festgelegt ist.
    • Standardmäßig deaktiviert – Die Gegenmaßnahme ist für Apps deaktiviert, für die diese Gegenmaßnahme im Abschnitt "App-spezifische Programmeinstellungen" nicht festgelegt ist.
    • Standardeinstellung : Die Gegenmaßnahme ist entweder aktiviert oder deaktiviert, abhängig von der Standardkonfiguration, die von Windows 10 Installation eingerichtet wird. Der Standardwert (Ein oder Aus) wird immer neben der Standardbezeichnung "Verwenden" für jede Gegenmaßnahme angegeben.

    Hinweis

    Möglicherweise wird beim Ändern einiger Einstellungen ein Fenster für die Benutzerkontensteuerung angezeigt. Geben Sie Administratoranmeldeinformationen ein, um die Einstellung anzuwenden.

    Wenn Sie einige Einstellungen ändern, ist möglicherweise ein Neustart erforderlich.

  4. Wiederholen Sie dies für alle Gegenmaßnahmen auf Systemebene, die Sie konfigurieren möchten.

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

    1. Wenn die App, die Sie konfigurieren möchten, bereits aufgeführt ist, wählen Sie sie aus, und wählen Sie dann "Bearbeiten" aus.
    2. Wenn die App nicht aufgeführt ist, wählen Sie oben in der Liste das anzupassende Programm hinzufügen aus, und wählen Sie dann aus, wie Sie die App hinzufügen möchten:
      • Verwenden Sie "Nach Programmnamen hinzufügen", um die Gegenmaßnahme auf einen ausgeführten Prozess mit diesem Namen anzuwenden. Sie müssen eine Datei mit einer Erweiterung angeben. Sie können einen vollständigen Pfad eingeben, um die Gegenmaßnahme nur auf die App mit diesem Namen an diesem Speicherort zu beschränken.
      • Verwenden Sie "Exakten Dateipfad auswählen", um die gewünschte Datei in einem standardmäßigen Windows Explorer-Dateiauswahlfenster zu suchen und auszuwählen.
  6. Nachdem Sie die App ausgewählt haben, wird eine Liste aller Gegenmaßnahmen angezeigt, die angewendet werden können. Aktivieren Sie zum Aktivieren der Gegenmaßnahme das Kontrollkästchen, und ändern Sie den Schieberegler in "Ein". Wählen Sie alle zusätzlichen Optionen aus. Wenn Sie "Überwachung" auswählen, wird die Gegenmaßnahme nur im Überwachungsmodus angewendet. Sie werden benachrichtigt, wenn Sie den Prozess oder die App neu starten müssen oder wenn Sie Windows neu starten müssen.

  7. Wiederholen Sie diese Schritte für alle Apps und Gegenmaßnahmen, die Sie konfigurieren möchten. Wählen Sie "Übernehmen" aus, wenn Sie die Konfiguration eingerichtet haben.

Sie können diese Einstellungen jetzt als XML-Datei exportieren oder mit der Konfiguration appspezifischer Gegenmaßnahmen fortfahren.

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 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: Wenn Sie die App zum Konfigurieren einer Gegenmaßnahme verwenden und dann PowerShell verwenden, um dieselbe Gegenmaßnahme zu konfigurieren, wird die App aktualisiert, um die änderungen anzuzeigen, die Sie mit PowerShell vorgenommen haben. Wenn Sie dann die App verwenden würden, um den Ausgleich erneut zu ändern, würde diese Änderung gelten.

Wichtig

Alle Änderungen, die über eine Gruppenrichtlinie auf einem Gerät bereitgestellt werden, setzen die lokale Konfiguration außer Kraft. Verwenden Sie beim Einrichten einer anfänglichen Konfiguration 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 das Cmdlet ProcessMitigation verwenden. Using Get listet den aktuellen Konfigurationsstatus aller Gegenmaßnahmen auf, die auf dem Gerät aktiviert wurden. Fügen Sie das Cmdlet und die -Name App-EXE hinzu, um Gegenmaßnahmen für genau diese App anzuzeigen:

Get-ProcessMitigation -Name processName.exe

Wichtig

Gegenmaßnahmen auf Systemebene, die nicht konfiguriert wurden, zeigen den Status NOTSET an.

Gibt für Einstellungen auf Systemebene NOTSET die Standardeinstellung für diese Gegenmaßnahme an.

Gibt für Einstellungen auf App-Ebene NOTSET an, dass die Einstellung auf Systemebene für die Gegenmaßnahme angewendet wird.

Die Standardeinstellung für jede Gegenmaßnahme auf Systemebene wird im Windows-Sicherheit angezeigt.

Verwenden Sie Set diese Einstellung, um jede Gegenmaßnahme im folgenden Format zu konfigurieren:

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

Dabei gilt:

  • <Scope>:
    • -Name um anzugeben, dass die Gegenmaßnahmen auf eine bestimmte App angewendet werden sollen. Geben Sie die ausführbare Datei der App nach diesem Flag an.
    • -System um anzugeben, dass die Risikominderung auf Systemebene angewendet werden soll
  • <Action>:
    • -Enable zum Aktivieren der Risikominderung
    • -Disable so deaktivieren Sie die Gegenmaßnahme
  • <Mitigation>:
    • Das Cmdlet der Risikominderung, wie in der Tabelle mit den Gegenmaßnahmen unten definiert, zusammen mit allen Unteroptions (umgeben von Leerzeichen). Jede Gegenmaßnahme wird durch ein Komma getrennt.

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

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

Wichtig

Trennen Sie jede Risikominderungsoption durch Kommas.

Wenn Sie DEP auf Systemebene anwenden möchten, verwenden Sie den folgenden Befehl:

Set-Processmitigation -System -Enable DEP

Um Gegenmaßnahmen zu deaktivieren, können Sie -Enable sie durch -Disable ersetzen. Bei Gegenmaßnahmen auf App-Ebene wird dadurch jedoch erzwungen, dass die Gegenmaßnahme nur für diese App deaktiviert wird.

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

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

Sie können auch einige Gegenmaßnahmen auf den Überwachungsmodus festlegen. Anstatt das PowerShell-Cmdlet für die Gegenmaßnahme zu verwenden, verwenden Sie das Cmdlet für den Überwachungsmodus, wie in der tabelle mit den Gegenmaßnahmen unten angegeben.

Um beispielsweise Arbitrary Code Guard (ACG) im Überwachungsmodus für die zuvor verwendetentesting.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, jedoch -Enable durch -Disable .

PowerShell-Referenztabelle

In dieser Tabelle sind die PowerShell-Cmdlets (und das zugehörige Cmdlet für den Überwachungsmodus) aufgeführt, die zum Konfigurieren der einzelnen Gegenmaßnahmen 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 App-Ebene DynamicCode AuditDynamicCode
Bilder mit niedriger Integrität blockieren Nur App-Ebene BlockLowLabel AuditImageLoad
Remoteimages blockieren Nur App-Ebene BlockRemoteImages Überwachung nicht verfügbar
Nicht vertrauenswürdige Schriftarten blockieren Nur App-Ebene DisableNonSystemFonts AuditFont, FontAuditOnly
Codeintegritätsschutz Nur App-Ebene BlockNonMicrosoftSigned, AllowStoreSigned AuditMicrosoftSigned, AuditStoreSigned
Deaktivieren von Erweiterungspunkten Nur App-Ebene ExtensionPoint Überwachung nicht verfügbar
Win32k-Systemaufrufe deaktivieren Nur App-Ebene DisableWin32kSystemCalls AuditSystemCall
Untergeordnete Prozesse nicht zulassen Nur App-Ebene DisallowChildProcessCreation AuditChildProcess
Export-Adressfilterung (EAF) Nur App-Ebene EnableExportAddressFilterPlus, EnableExportAddressFilter [ 1 ] Überwachung nicht verfügbar [ 2 ]
Import-Adressfilterung (IAF) Nur App-Ebene EnableImportAddressFilter Überwachung nicht verfügbar [ 2 ]
Simulieren der Ausführung (SimExec) Nur App-Ebene EnableRopSimExec Überwachung nicht verfügbar [ 2 ]
Überprüfen des API-Aufrufs (CallerCheck) Nur App-Ebene EnableRopCallerCheck Überwachung nicht verfügbar [ 2 ]
Überprüfen der Handleverwendung Nur App-Ebene StrictHandle Überwachung nicht verfügbar
Überprüfen der Integrität von Imageabhängigkeiten Nur App-Ebene EnforceModuleDepencySigning Überwachung nicht verfügbar
Überprüfen der Stapelintegrität (StackPivot) Nur 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 Gegenmaßnahme ist nicht über PowerShell-Cmdlets verfügbar.

Anpassen der Benachrichtigung

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

Siehe auch