Zum Inhalt springen
Setup FoundrySetup Foundry

Dokumentation

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

Siehe auch