Schutz vor Überschreiben der strukturierten Ausnahmebehandlung (SEHOP) aktivieren
Der `REG_DWORD`-Wert `0` aktiviert systemweit die Structured Exception Handling Overwrite Protection (SEHOP).
seit 0.9.8.11
Zweck
Registry-Schlüssel anzeigen (1)
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\DisableExceptionChainValidation
Der REG_DWORD-Wert 0 aktiviert systemweit die Structured Exception Handling Overwrite Protection (SEHOP). SEHOP erschwert Angriffe, bei denen eine Speicherbeschädigung ausgenutzt wird, um die unter Windows verketteten Handler der strukturierten Ausnahmebehandlung (SEH) zu manipulieren.
Wenn eine Ausnahme auftritt, überprüft der Ausnahmeverteiler die SEH-Kette unter anderem darauf, ob deren Einträge innerhalb der Stackgrenzen liegen, korrekt ausgerichtet sind, keine unzulässigen Rückwärtsverweise enthalten und mit einem bekannten abschließenden Handler enden. Schlägt die Prüfung fehl, bricht Windows die Ausnahmebehandlung ab; die Ausnahme wird nicht über die manipulierte Kette verarbeitet.
Der Schutz wird zur Laufzeit durch Windows bereitgestellt. Er kann daher auch Anwendungen schützen, die nicht mit Compileroptionen wie /SAFESEH erstellt wurden.
Hinweise
Sicherheit
SEHOP blockiert eine bestimmte Exploittechnik, bei der ein Angreifer nach einer Speicherbeschädigung einen SEH-Eintrag durch einen Verweis auf kontrollierten Code ersetzt. Dadurch kann eine ausnutzbare Schwachstelle schwieriger oder auf diesem Weg nicht mehr für die Ausführung von Schadcode verwendet werden.
Die Einstellung beseitigt die zugrunde liegende Speicherfehler-Schwachstelle jedoch nicht und schützt nicht gegen andere Kontrollfluss- oder Speichermanipulationstechniken. Ihre Wirkung setzt voraus, dass ein Angriff die SEH-Überschreibtechnik verwendet.
Mögliche Nebenwirkungen
Kompatibilitätsprobleme sind selten, können aber bei Anwendungen auftreten, die von einer ungewöhnlichen oder beschädigten Ausnahmekette abhängen. Die zusätzlichen Prüfungen können außerdem geringfügige Änderungen im zeitlichen Ablauf verursachen und dadurch bereits vorhandene Race Conditions oder Multithreading-Fehler sichtbar machen. Betroffene Anwendungen können Ausnahmen nicht mehr wie erwartet behandeln oder unerwartet beendet werden.
Hinweise
Der Name DisableExceptionChainValidation ist negativ formuliert: Der Wert 0 aktiviert die Ausnahmekettenprüfung und damit SEHOP; der Wert 1 deaktiviert sie. Es handelt sich um einen computerweiten Registry-Wert.
Microsoft-Dokumentation
Microsoft Learn: Hinweise zum Exploit-Schutz – Ausnahmeketten überprüfen (SEHOP)
Microsoft Learn: Azure Policy-Gastkonfigurationsbaseline für Windows