SetProcessMitigationPolicy-Funktion (processthreadsapi.h)

Legt eine Entschärfungsrichtlinie für den aufrufenden Prozess fest. Entschärfungsrichtlinien ermöglichen es einem Prozess, sich gegen verschiedene Arten von Angriffen zu härten.

Syntax

BOOL SetProcessMitigationPolicy(
  [in] PROCESS_MITIGATION_POLICY MitigationPolicy,
  [in] PVOID                     lpBuffer,
  [in] SIZE_T                    dwLength
);

Parameter

[in] MitigationPolicy

Die anzuwendende Entschärfungsrichtlinie. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
ProcessDEPPolicy Die Datenausführungsschutzrichtlinie (DATA Execution Prevention, DEP) des Prozesses.
Der lpBuffer-Parameter verweist auf eine PROCESS_MITIGATION_DEP_POLICY-Struktur , die die DEP-Richtlinienflags angibt.
ProcessASLRPolicy Die AsLR-Richtlinie (Address Space Layout Randomization) des Prozesses.
Der lpBuffer-Parameter verweist auf eine PROCESS_MITIGATION_ASLR_POLICY Struktur, die die ASLR-Richtlinienflags angibt.
ProcessDynamicCodePolicy Die dynamische Coderichtlinie des Prozesses. Wenn er aktiviert ist, kann der Prozess keinen dynamischen Code generieren oder vorhandenen ausführbaren Code ändern.
Der lpBuffer-Parameter verweist auf eine PROCESS_MITIGATION_DYNAMIC_CODE_POLICY-Struktur , die die Richtlinienflags für dynamischen Code angibt.
ProcessStrictHandleCheckPolicy Der Prozess erhält einen schwerwiegenden Fehler, wenn er ein ungültiges Handle bearbeitet.
Der lpBuffer-Parameter verweist auf eine PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY-Struktur , die die Richtlinienflags für die Handle-Überprüfung angibt.
ProcessSystemCallDisablePolicy Deaktiviert die Möglichkeit, NTUser/GDI-Funktionen auf der niedrigsten Ebene zu verwenden.
Der lpBuffer-Parameter verweist auf eine PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY-Struktur , die den Systemaufruf zum Deaktivieren von Richtlinienflags angibt.
ProcessMitigationOptionsMask Gibt die Maske der gültigen Bits für alle Entschärfungsoptionen im System zurück. Eine Anwendung kann viele Entschärfungsoptionen festlegen, ohne das Betriebssystem nach Entschärfungsoptionen abzufragen, indem sie bitweise mit der Maske kombiniert, um alle nicht unterstützten Bits gleichzeitig auszuschließen.
Der lpBuffer-Parameter verweist auf einen ULONG64 Bitvektor für die Maske oder auf mehr als 64 Bit, ein Array mit zwei Elementen ULONG64 Bitvektoren.
ProcessExtensionPointDisablePolicy Der lpBuffer-Parameter verweist auf eine PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY-Struktur , die den Erweiterungspunkt zum Deaktivieren von Richtlinienflags angibt.
ProcessControlFlowGuardPolicy Die CFG-Richtlinie (Control Flow Guard) des Prozesses.
Der lpBuffer-Parameter verweist auf eine PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY-Struktur , die die CFG-Richtlinienflags angibt.
ProcessSignaturePolicy Die Richtlinie eines Prozesses, der das Laden von Images auf die Images beschränken kann, die entweder von Microsoft, vom Windows Store oder von Microsoft, dem Windows Store und den Windows Hardware Quality Labs (WHQL) signiert sind.
der lpBuffer-Parameter verweist auf eine PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY-Struktur , die die Signaturrichtlinienflags angibt.
ProcessFontDisablePolicy Die Richtlinie zum Laden von Schriftarten für den Prozess. Wenn der Prozess aktiviert ist, können nicht systemfremde Schriftarten geladen werden.
Der lpBuffer-Parameter verweist auf eine PROCESS_MITIGATION_FONT_DISABLE_POLICY-Struktur , die die Richtlinienflags für das Laden von Schriftarten angibt.
ProcessImageLoadPolicy Die Richtlinie zum Laden von Bildern für den Prozess, die die Typen von ausführbaren Images bestimmt, die dem Prozess zugeordnet werden dürfen. Wenn sie aktiviert sind, können Bilder nicht von einigen Speicherorten geladen werden, z. B. von Remotegeräten oder Dateien mit der niedrigen obligatorischen Bezeichnung.
Der lpBuffer-Parameter verweist auf eine PROCESS_MITIGATION_IMAGE_LOAD_POLICY-Struktur , die die Richtlinienflags für das Laden von Bildern angibt.
ProcessRedirectionTrustPolicy Die RedirectionGuard-Richtlinie eines Prozesses. Der lpBuffer-Parameter verweist auf eine PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY-Struktur , die den Entschärfungsmodus angibt.
ProcessSideChannelIsolationPolicy Windows 10, Version 1809 und höher: Die Richtlinie zur Isolation von Seitenkanälen für den angegebenen Prozess.
Der lpBuffer-Parameter verweist auf eine PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY-Struktur , die die Richtlinienflags für die Seitkanalisolation angibt.
ProcessUserShadowStackPolicy Windows 10, Version 2004 und höher: Die Richtlinie für den vom Benutzermodus durch Hardware erzwungenen Stapelschutz für den Prozess.
Der lpBuffer-Parameter verweist auf eine PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY-Struktur , die die Richtlinienflags für den hardwarebasierten Stapelschutz im Benutzermodus angibt.

[in] lpBuffer

Wenn der MitigationPolicy-ParameterProcessDEPPolicy ist, verweist dieser Parameter auf eine PROCESS_MITIGATION_DEP_POLICY-Struktur , die die DEP-Richtlinienflags angibt.

Wenn der MitigationPolicy-ParameterProcessASLRPolicy ist, verweist dieser Parameter auf eine PROCESS_MITIGATION_ASLR_POLICY-Struktur , die die ASLR-Richtlinienflags angibt.

Wenn der MitigationPolicy-ParameterProcessImageLoadPolicy ist, verweist dieser Parameter auf eine PROCESS_MITIGATION_IMAGE_LOAD_POLICY Struktur, die die Richtlinienflags zum Laden von Bildern empfängt.

Wenn der MitigationPolicy-ParameterProcessStrictHandleCheckPolicy ist, verweist dieser Parameter auf eine PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY-Struktur , die die Richtlinienflags für die Handle-Überprüfung angibt.

Wenn der MitigationPolicy-ParameterProcessSystemCallDisablePolicy ist, verweist dieser Parameter auf eine PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY-Struktur , die die Deaktivierungsrichtlinienflags des Systemaufrufs angibt.

Wenn der MitigationPolicy-ParameterProcessMitigationOptionsMask ist, verweist dieser Parameter auf einen ULONG64 Bitvektor für die Maske oder auf mehr als 64 Bits, ein Zweielementarray aus ULONG64 Bitvektoren.

Wenn der MitigationPolicy-ParameterProcessExtensionPointDisablePolicy ist, verweist dieser Parameter auf eine PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY-Struktur , die die Deaktivierungsrichtlinienflags des Erweiterungspunkts angibt.

Wenn der MitigationPolicy-ParameterProcessControlFlowGuardPolicy ist, verweist dieser Parameter auf eine PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY-Struktur , die die CFG-Richtlinienflags angibt.

Wenn der MitigationPolicy-ParameterProcessSignaturePolicy ist, verweist dieser Parameter auf eine PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY Struktur, die die Signaturrichtlinienflags angibt.

Wenn der MitigationPolicy-ParameterProcessFontDisablePolicy ist, verweist dieser Parameter auf eine PROCESS_MITIGATION_FONT_DISABLE_POLICY-Struktur , die die Richtlinienflags für das Laden von Schriftarten angibt.

Wenn der MitigationPolicy-ParameterProcessImageLoadPolicy ist, verweist dieser Parameter auf eine PROCESS_MITIGATION_IMAGE_LOAD_POLICY-Struktur , die die Richtlinienflags für das Laden von Bildern angibt.

Wenn der MitigationPolicy-ParameterProcessRedirectionTrustPolicy ist, verweist dieser Parameter auf eine PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY-Struktur , die den Entschärfungsmodus angibt.

Wenn der MitigationPolicy-ParameterProcessUserShadowStackPolicy ist, verweist dieser Parameter auf eine PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY-Struktur , die die Richtlinienflags für den vom Benutzermodus Hardware erzwungenen Stack Protection angibt.

[in] dwLength

Die Größe von lpBuffer in Bytes.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt sie TRUE zurück. Wenn die Funktion fehlschlägt, gibt sie FALSE zurück. Rufen Sie GetLastError auf, um für diese Funktion definierte Fehlerwerte abzurufen.

Hinweise

Das Festlegen einer Entschärfungsrichtlinie für einen Prozess hilft, einen Angreifer daran zu hindern, Sicherheitsrisiken auszunutzen. Verwenden Sie die SetProcessMitigationPolicy-Funktion , um die Sicherheitsminderung programmgesteuert zu aktivieren oder zu deaktivieren.

Um maximale Effektivität zu erzielen, sollten Entschärfungsrichtlinien vor oder während der Prozessinitialisierung angewendet werden. Beispielsweise ist das Festlegen der ASLR-Richtlinie, die erzwungene Verlagerung von Bildern ermöglicht, nur dann wirksam, wenn sie angewendet wird, bevor alle Bilder in einem Prozess geladen wurden.

ASLR-Entschärfungsrichtlinien können nach ihrer Anwendung nicht weniger restriktiv gemacht werden.

Um eine Anwendung zu kompilieren, die diese Funktion verwendet, legen Sie _WIN32_WINNT >= 0x0602 fest. Weitere Informationen finden Sie unter Verwenden der Windows-Header.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile processthreadsapi.h
Bibliothek Kernel32.lib
DLL Kernel32.dll