Anpassen des Exploit-Schutzes
Gilt für:
- Microsoft Defender für Endpunkt Plan 1
- Microsoft Defender für Endpunkt Plan 2
- Microsoft Defender XDR
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 dies direkt an einen Windows Server-/Windows-Clientpartner melden oder die Microsoft-Nummern für den technischen Support für Ihr Land/Ihre Region verwenden.
Konfigurieren von Risikominderungen auf Systemebene mit der Windows-Sicherheit-App
Öffnen Sie die Windows-Sicherheit-App, indem Sie entweder das Schildsymbol in der Taskleiste anklicken oder über das Startmenü nach Windows-Sicherheit suchen.
Wählen Sie die Kachel App- und Browsersteuerung (oder das App-Symbol auf der linken Menüleiste) und dann Exploit-Schutz aus.
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.
Wiederholen Sie die für alle Risikominderungsfunktionen auf Systemebene, die Sie konfigurieren möchten.
Wechseln Sie zum Abschnitt Programmeinstellungen, und wählen Sie die App aus, auf die Sie Risikominderungsfunktionen anwenden möchten:
- Wenn die App, die Sie konfigurieren möchten, bereits aufgeführt ist, wählen Sie sie aus, und klicken Sie dann auf Bearbeiten.
- 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.
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.
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 DLLs 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
- Schützen von Geräten vor Sicherheitsrisiken
- Auswerten des Exploit-Schutzes
- Aktivieren des Exploit-Schutzes
- Importieren, Exportieren und Bereitstellen von Konfigurationen für Exploit-Schutz
Tipp
Möchten Sie mehr erfahren? Engage mit der Microsoft-Sicherheitscommunity in unserer Tech Community: Microsoft Defender for Endpoint Tech Community.