Función SetProcessMitigationPolicy (processthreadsapi.h)

Establece una directiva de mitigación para el proceso de llamada. Las directivas de mitigación permiten que un proceso se proteja contra varios tipos de ataques.

Sintaxis

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

Parámetros

[in] MitigationPolicy

Directiva de mitigación que se va a aplicar. Este parámetro puede ser uno de los valores siguientes.

Valor Significado
ProcessDEPPolicy Directiva de prevención de ejecución de datos (DEP) del proceso.
El parámetro lpBuffer apunta a una estructura de PROCESS_MITIGATION_DEP_POLICY que especifica las marcas de directiva DEP.
ProcessASLRPolicy Directiva de selección aleatoria del diseño del espacio de direcciones (ASLR) del proceso.
El parámetro lpBuffer apunta a una estructura de PROCESS_MITIGATION_ASLR_POLICY que especifica las marcas de directiva de ASLR.
ProcessDynamicCodePolicy Directiva de código dinámico del proceso. Cuando está activado, el proceso no puede generar código dinámico ni modificar el código ejecutable existente.
El parámetro lpBuffer apunta a una estructura de PROCESS_MITIGATION_DYNAMIC_CODE_POLICY que especifica las marcas de directiva de código dinámico.
ProcessStrictHandleCheckPolicy El proceso recibirá un error irrecuperable si manipula un identificador que no es válido.
El parámetro lpBuffer apunta a una estructura de PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY que especifica las marcas de directiva de comprobación de identificador.
ProcessSystemCallDisablePolicy Deshabilita la capacidad de usar funciones NTUser/GDI en la capa más baja.
El parámetro lpBuffer apunta a una estructura de PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY que especifica las marcas de directiva de deshabilitación de la llamada del sistema.
ProcessMitigationOptionsMask Devuelve la máscara de bits válidos para todas las opciones de mitigación del sistema. Una aplicación puede establecer muchas opciones de mitigación sin consultar el sistema operativo para ver las opciones de mitigación mediante la combinación bit a bit con la máscara para excluir todos los bits no admitidos a la vez.
El parámetro lpBuffer apunta a un vector de bits de ULONG64 para la máscara, o para acomodar más de 64 bits, una matriz de dos elementos de vectores de bits ULONG64.
ProcessExtensionPointDisablePolicy El parámetro lpBuffer apunta a una estructura de PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY que especifica las marcas de directiva de deshabilitación del punto de extensión.
ProcessControlFlowGuardPolicy Directiva de Protección de flujo de control (CFG) del proceso.
El parámetro lpBuffer apunta a una estructura de PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY que especifica las marcas de directiva cfg.
ProcessSignaturePolicy La directiva de un proceso que puede restringir la carga de imágenes a esas imágenes firmadas por Microsoft, por la Tienda Windows o por Microsoft, la Tienda Windows y los Laboratorios de calidad de hardware de Windows (WHQL).
el parámetro lpBuffer apunta a una estructura de PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY que especifica las marcas de directiva de firma.
ProcessFontDisablePolicy Directiva relativa a la carga de fuentes para el proceso. Cuando está activado, el proceso no puede cargar fuentes que no son del sistema.
El parámetro lpBuffer apunta a una estructura de PROCESS_MITIGATION_FONT_DISABLE_POLICY que especifica las marcas de directiva para la carga de fuentes.
ProcessImageLoadPolicy La directiva relativa a la carga de imágenes para el proceso, que determina los tipos de imágenes ejecutables que se pueden asignar al proceso. Cuando está activada, las imágenes no se pueden cargar desde algunas ubicaciones, como dispositivos remotos o archivos que tienen la etiqueta obligatoria baja.
El parámetro lpBuffer apunta a una estructura de PROCESS_MITIGATION_IMAGE_LOAD_POLICY que especifica las marcas de directiva para la carga de imágenes.
ProcessRedirectionTrustPolicy La directiva RedirectionGuard de un proceso. El parámetro lpBuffer apunta a una estructura de PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY que especifica el modo de mitigación.
ProcessSideChannelIsolationPolicy Windows 10, versión 1809 y versiones posteriores: directiva relativa al aislamiento de canales laterales para el proceso especificado.
El parámetro lpBuffer apunta a una estructura de PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY que especifica las marcas de directiva para el aislamiento de canal lateral.
ProcessUserShadowStackPolicy Windows 10, versión 2004 y posteriores: la directiva relativa a la protección de pila aplicada por hardware en modo de usuario para el proceso.
El parámetro lpBuffer apunta a una estructura de PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY que especifica las marcas de directiva para la protección de pila aplicada por hardware en modo de usuario.

[in] lpBuffer

Si el parámetro MitigationPolicy es ProcessDEPPolicy, este parámetro apunta a una estructura de PROCESS_MITIGATION_DEP_POLICY que especifica las marcas de directiva de DEP.

Si el parámetro MitigationPolicy es ProcessASLRPolicy, este parámetro apunta a una estructura de PROCESS_MITIGATION_ASLR_POLICY que especifica las marcas de directiva ASLR.

Si el parámetro MitigationPolicy es ProcessImageLoadPolicy, este parámetro apunta a una estructura de PROCESS_MITIGATION_IMAGE_LOAD_POLICY que recibe las marcas de directiva para la carga de imágenes.

Si el parámetro MitigationPolicy es ProcessStrictHandleCheckPolicy, este parámetro apunta a una estructura de PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY que especifica las marcas de directiva de comprobación de identificador.

Si el parámetro MitigationPolicy es ProcessSystemCallDisablePolicy, este parámetro apunta a una estructura de PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY que especifica las marcas de directiva de deshabilitación de la llamada del sistema.

Si el parámetro MitigationPolicy es ProcessMitigationOptionsMask, este parámetro apunta a un vector de bits de ULONG64 para la máscara o para acomodar más de 64 bits, una matriz de dos elementos de ULONG64 vectores de bits.

Si el parámetro MitigationPolicy es ProcessExtensionPointDisablePolicy, este parámetro apunta a una estructura PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY que especifica las marcas de directiva de deshabilitación del punto de extensión.

Si el parámetro MitigationPolicy es ProcessControlFlowGuardPolicy, este parámetro apunta a una estructura de PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY que especifica las marcas de directiva cfg.

Si el parámetro MitigationPolicy es ProcessSignaturePolicy, este parámetro apunta a una estructura de PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY que especifica las marcas de directiva de firma.

Si el parámetro MitigationPolicy es ProcessFontDisablePolicy, este parámetro apunta a una estructura de PROCESS_MITIGATION_FONT_DISABLE_POLICY que especifica las marcas de directiva para la carga de fuentes.

Si el parámetro MitigationPolicy es ProcessImageLoadPolicy, este parámetro apunta a una estructura de PROCESS_MITIGATION_IMAGE_LOAD_POLICY que especifica las marcas de directiva para la carga de imágenes.

Si el parámetro MitigationPolicy es ProcessRedirectionTrustPolicy, este parámetro apunta a una estructura de PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY que especifica el modo de mitigación.

Si el parámetro MitigationPolicy es ProcessUserShadowStackPolicy, este parámetro apunta a una estructura de PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY que especifica las marcas de directiva para la protección de pila aplicada por hardware en modo de usuario.

[in] dwLength

Tamaño de lpBuffer, en bytes.

Valor devuelto

Si la función se ejecuta correctamente, devuelve TRUE. Si se produce un error en la función, devuelve FALSE. Para recuperar los valores de error definidos para esta función, llame a GetLastError.

Comentarios

La configuración de la directiva de mitigación para un proceso ayuda a evitar que un atacante aproveche las vulnerabilidades de seguridad. Use la función SetProcessMitigationPolicy para habilitar o deshabilitar la mitigación de seguridad mediante programación.

Para lograr la máxima eficacia, las directivas de mitigación deben aplicarse antes o durante la inicialización del proceso. Por ejemplo, establecer la directiva ASLR que habilita la reubicación forzada de imágenes solo es efectiva si se aplica antes de que se hayan cargado todas las imágenes de un proceso.

Las directivas de mitigación de ASLR no se pueden realizar menos restrictivas después de aplicarlas.

Para compilar una aplicación que usa esta función, establezca _WIN32_WINNT >= 0x0602. Para obtener más información, vea Usar los encabezados de Windows.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado processthreadsapi.h
Library Kernel32.lib
Archivo DLL Kernel32.dll