Personalizar la protección contra vulnerabilidades de seguridad

Se aplica a:

¿Quiere experimentar Defender para punto de conexión? Regístrese para obtener una prueba gratuita.

La protección contra vulnerabilidades de seguridad aplica automáticamente una serie de técnicas de mitigación a los procesos del sistema operativo y aplicaciones individuales.

Configure estas opciones con la aplicación Seguridad de Windows en un dispositivo individual. Luego, exporte la configuración como archivo XML para implementarla en otros dispositivos. Use la directiva de grupo para distribuir el archivo XML a varios dispositivos a la vez. También puede configurar las mitigaciones con PowerShell.

En este artículo se enumeran todas las mitigaciones disponibles en la protección contra vulnerabilidades de seguridad. Indica si la mitigación se puede aplicar en todo el sistema o a aplicaciones individuales, y proporciona una breve descripción de cómo funciona la mitigación.

También se describe cómo habilitar o configurar las mitigaciones mediante Seguridad de Windows, PowerShell y proveedores de servicios de configuración (CSP) de administración de dispositivos móviles (MDM). Este es el primer paso para crear una configuración que se puede implementar a través de la red. El siguiente paso implica generar, exportar, importar e implementar la configuración en varios dispositivos.

Advertencia

Algunas tecnologías de mitigación de seguridad pueden tener problemas de compatibilidad con algunas aplicaciones. Debe probar la protección contra vulnerabilidades de seguridad en todos los escenarios de uso de destino con el modo auditoría antes de implementar la configuración en un entorno de producción o en el resto de la red.

Mitigación de protección contra vulnerabilidades de seguridad

Todas las mitigaciones se pueden configurar para aplicaciones individuales. Algunas mitigaciones también se pueden aplicar en el nivel de sistema operativo.

Puede activar, desactivar o establecer cada una de las mitigaciones además de establecerlas en su valor predeterminado. Algunas mitigaciones tienen opciones adicionales que se indican en la descripción de la tabla.

Los valores predeterminados siempre se especifican entre corchetes en la opción Usar valor predeterminado para cada mitigación. En el ejemplo siguiente, el valor predeterminado de Prevención de ejecución de datos es "Activado".

La configuración Usar valor predeterminado para cada una de las opciones de mitigación indica nuestra recomendación para un nivel básico de protección para el uso diario de los usuarios domésticos. Las implementaciones empresariales deben tener en cuenta la protección necesaria para sus necesidades individuales y es posible que deban establecer una configuración diferente de los valores predeterminados.

Para ver los cmdlets de PowerShell asociados para cada mitigación, consulte la tabla de referencia de PowerShell en la parte inferior de este artículo.

Mitigación Descripción Se puede aplicar a Modo de Auditoría disponible
Protección del flujo de control (CFG) Garantiza la integridad de flujo de control de llamadas indirectas. Opcionalmente, puede suprimir las exportaciones y usar CFG estricta. Nivel de sistema y aplicación No
Prevención de ejecución de datos (DEP) Impide que el código se ejecute desde páginas de memoria solo de datos, como el montón y las pilas. Solo se puede configurar para aplicaciones de 32 bits (x86) habilitadas permanentemente para todas las demás arquitecturas. Opcionalmente se puede habilitar la emulación del código thunk ATL. Nivel de sistema y aplicación No
Forzar la selección aleatoria de imágenes (ASLR es obligatorio) Forzar la reasignación de imágenes no compiladas con/DYNAMICBASE Opcionalmente, se puede producir un error al cargar imágenes que no tienen información de reubicación. Nivel de sistema y aplicación No
Aleatorizar las asignaciones de memoria (ASLR ascendente) Aleatorizar ubicaciones para asignaciones de memoria virtual. Incluye montones de estructura del sistema, pilas, TEB y PEB. Opcionalmente, se puede usar una varianza de selección aleatoria más amplia para los procesos de 64 bits. Nivel de sistema y aplicación No
Validar cadenas de excepción (SEHOP) Garantizar la integridad de una cadena de excepciones durante el envío de excepciones. Solo se puede configurar para aplicaciones de 32 bits (x86). Nivel de sistema y aplicación No
Validar la integridad del montón Finaliza un proceso cuando se detectan daños en el montón. Nivel de sistema y aplicación No
Protección de código arbitrario (ACG) Impide la introducción de código ejecutable no respaldado por imágenes e impide que se modifiquen las páginas de códigos. Opcionalmente, puede permitir la desactivación del subproceso y permitir la degradación remota (configurable solo con PowerShell). Solo nivel de aplicación
Bloquear imágenes de integridad baja Impide la carga de imágenes marcadas como de baja integridad. Solo nivel de aplicación
Bloquear imágenes remotas Impide la carga de imágenes de dispositivos remotos. Solo nivel de aplicación No
Bloquear fuentes que no son de confianza Impide cargar las fuentes basadas en GDI que no están instaladas en el directorio de fuentes del sistema, especialmente las fuentes de la web. Solo nivel de aplicación
Protección de integridad de código Restringe la carga de imágenes firmadas por Microsoft, WHQL o superior. Opcionalmente, puede permitir imágenes firmadas de Microsoft Store. Solo nivel de aplicación
Deshabilitar los puntos de extensión Deshabilita varios mecanismos de extensibilidad que permiten la inserción de DLL en todos los procesos, como archivos DLL de AppInit, enlaces de ventana y proveedores de servicios Winsock. Solo nivel de aplicación No
Deshabilitar llamadas del sistema de Win32k Impide que una aplicación use la tabla de llamadas del sistema Win32k. Solo nivel de aplicación
No permitir bloqueo de procesos secundarios Impide que las aplicaciones creen procesos secundarios. Solo nivel de aplicación
Exportar filtrado de direcciones (EAF) Detecta operaciones peligrosas resueltas por código malintencionado. Opcionalmente, puede validar el acceso de los módulos que suelen usar las vulnerabilidades de seguridad. Solo nivel de aplicación
Importar filtrado de direcciones (IAF) Detecta operaciones peligrosas resueltas por código malintencionado. Solo nivel de aplicación
Simular la ejecución (SimExec) Garantiza que las llamadas a las API confidenciales se devuelvan a los autores de llamadas legítimos. Solo se puede configurar para aplicaciones de 32 bits (x86). No es compatible con ACG. Solo nivel de aplicación
Validar la invocación de la API (CallerCheck) Garantiza que los autores de llamadas legítimos invocan las API confidenciales. Solo se puede configurar para aplicaciones de 32 bits (x86). No es compatible con ACG Solo nivel de aplicación
Validar el uso de identificador Hace que se produzca una excepción en las referencias de identificador no válidas. Solo nivel de aplicación No
Validar la integridad de la dependencia de imagen Aplica la firma de código para la carga de dependencias de imágenes de Windows. Solo nivel de aplicación No
Validar la integridad de la pila (StackPivot) Garantiza que la pila no se ha redirigido para las API confidenciales. No es compatible con ACG. Solo nivel de aplicación

Importante

Si agrega una aplicación a la sección Configuración del programa y configura opciones de mitigación individuales allí, se respetarán por encima de la configuración de las mismas mitigaciones especificadas en la sección Configuración del sistema. La matriz y los ejemplos siguientes ayudan a ilustrar cómo funcionan los valores predeterminados:

Habilitado en Configuración del programa Habilitado en Configuración del sistema Comportamiento
No Tal y como se define en Configuración del programa
Tal y como se define en Configuración del programa
No Tal y como se define en Configuración del sistema
No No Valor predeterminado definido en la opción Usar valor predeterminado
  • Ejemplo 1 Alberto configura la Prevención de ejecución de datos (DEP) en la sección de Configuración del sistema para que esté Desactivada de forma predeterminada. Alberto agrega la aplicación test.exe a la sección Configuración del programa. En las opciones de esa aplicación, en Prevención de ejecución de datos (DEP), habilita la opción Invalidar la configuración del sistema y establece el modificador en Activado. No hay otras aplicaciones enumeradas en la sección Configuración del programa. El resultado será que DEP solo se habilitará para test.exe. Todas las demás aplicaciones no tendrán DEP aplicado.

  • Ejemplo 2 Elvira configura la Prevención de ejecución de datos (DEP) en la sección de Configuración del sistema para que esté Desactivada de forma predeterminada. Elvira agrega la aplicación test.exe a la sección Configuración del programa. En las opciones de esa aplicación, en Prevención de ejecución de datos (DEP), Elvira habilita la opción Invalidar configuración del sistema y establece el modificador en Activado. Elvira también agrega la aplicación miles.exe a la sección Configuración del programa y establece Protección de flujo de control (CFG) en Activado. Elvira no habilita la opción Invalidar configuración del sistema para DEP ni otras mitigaciones para esa aplicación. El resultado será que DEP se habilitará para test.exe. DEP no se habilitará para ninguna otra aplicación, incluida miles.exe. CFG se habilitará para miles.exe.

Nota:

Si ha encontrado algún problema en este artículo, puede notificarlo directamente a un asociado de Windows Server o cliente de Windows o usar los números de soporte técnico de Microsoft para su país o región.

Configuración de mitigaciones de nivel de sistema con la aplicación Seguridad de Windows

  1. Abra la aplicación Seguridad de Windows seleccionando el icono de escudo en la barra de tareas o buscando Seguridad de Windows en el menú Inicio.

  2. Seleccione el icono Control de aplicaciones y navegador (o el icono de la aplicación en la barra de menús de la izquierda) y seleccione Protección contra vulnerabilidades.

  3. En la sección Configuración del sistema, busque la mitigación que quiera configurar y especifique una de las siguientes opciones. Las aplicaciones que no se configuran individualmente en la sección Configuración del programa usarán las opciones que se configuren aquí:

    • Activada de forma predeterminada: la mitigación está habilitada para aplicaciones que no tienen esta mitigación establecida en la sección de la aplicación Configuración del programa
    • Desactivada de forma predeterminada: la mitigación está deshabilitada para aplicaciones que no tienen esta mitigación establecida en la sección de la aplicación Configuración del programa
    • Usar valor predeterminado: la mitigación está habilitada o deshabilitada, según la configuración predeterminada configurada por la instalación de Windows 10 o Windows 11; el valor predeterminado (Activado o Desactivado) siempre se especifica junto a la etiqueta Usar valor predeterminado para cada mitigación

    Nota:

    Es posible que vea una ventana de Control de cuenta de usuario al cambiar algunas opciones de configuración. Escriba las credenciales de administrador para aplicar la configuración.

    Puede que haga falta un reinicio para cambiar algunas opciones de configuración.

  4. Repita esto para todas las mitigaciones de nivel de sistema que quiera configurar.

  5. Vaya a la sección Configuración del programa y elija la aplicación a la que quiere aplicar mitigaciones:

    1. Si la aplicación que quiere configurar ya aparece en la lista, selecciónela y seleccione Editar
    2. Si la aplicación no aparece en la lista, en la parte superior de la lista, seleccione Agregar programa para personalizar y elija cómo quiere agregar la aplicación:
      • Use Agregar por nombre de programa para aplicar la mitigación a cualquier proceso en ejecución con ese nombre. Debe especificar un archivo con una extensión. Puede escribir una ruta de acceso completa para limitar la mitigación solo a la aplicación con ese nombre en esa ubicación.
      • Use Elegir la ruta de acceso exacta de un archivo para usar una ventana estándar del selector de archivos de Explorador de Windows para buscar y seleccionar el archivo que quiera.
  6. Después de seleccionar la aplicación, verá una lista de todas las mitigaciones que se pueden aplicar. Para habilitar la mitigación, active la casilla y, a continuación, cambie el control deslizante a Activado. Seleccione cualquier opción adicional. Al elegir Auditoría solo se aplicará la mitigación en modo auditoría. Se le notificará si necesita reiniciar el proceso o la aplicación, o si necesita reiniciar Windows.

  7. Repita estos pasos para todas las aplicaciones y mitigaciones que quiera configurar. Seleccione Aplicar cuando haya terminado de establecer la configuración.

Ahora puede exportar esta configuración como un archivo XML o continuar para configurar mitigaciones específicas de la aplicación.

La exportación de la configuración como un archivo XML permite copiar la configuración de un dispositivo en otros dispositivos.

Referencia de PowerShell

Puede usar la aplicación de Seguridad de Windows para configurar la protección contra vulnerabilidades o puede usar cmdlets de PowerShell.

Siempre se aplicarán las opciones de configuración que se modificaron más recientemente, independientemente de si usa PowerShell o Seguridad de Windows. Esto significa que si usa la aplicación para configurar una mitigación y luego usa PowerShell para configurar la misma mitigación, la aplicación se actualizará para mostrar los cambios realizados con PowerShell. Si fuera a usar la aplicación para volver a cambiar la mitigación, ese cambio se aplicaría.

Importante

Cualquier cambio que se implemente en un dispositivo a través de directiva de grupo invalidará la configuración local. Al configurar una configuración inicial, use un dispositivo que no tenga aplicada una configuración de directiva de grupo para asegurarse de que los cambios no se invalidan.

Puede usar el verbo de PowerShell Get o Set con el cmdlet ProcessMitigation. Al usar Get se mostrará el estado de configuración actual de las mitigaciones habilitadas en el dispositivo. Agregue el cmdlet -Name y el archivo exe de la aplicación para ver las mitigaciones solo para esa aplicación:

Get-ProcessMitigation -Name processName.exe

Importante

Las mitigaciones de nivel de sistema que no se han configurado mostrarán el estado NOTSET.

Para la configuración de nivel del sistema, NOTSET indica que se ha aplicado la configuración predeterminada para esa mitigación.

Para la configuración de nivel de aplicación, NOTSET indica que se aplicará la configuración de nivel de sistema para la mitigación.

La configuración predeterminada para cada mitigación de nivel de sistema se puede ver en Seguridad de Windows.

Use Set para configurar cada mitigación en el formato siguiente:

Set-ProcessMitigation -<scope> <app executable> -<action> <mitigation or options>,<mitigation or options>,<mitigation or options>

Donde:

  • <Ámbito>:
    • -Name para indicar que las mitigaciones se deben aplicar a una aplicación específica. Especifique el ejecutable de la aplicación después de esta marca.
    • -System para indicar que la mitigación debe aplicarse en el nivel del sistema
  • <Acción>:
    • -Enable para habilitar la mitigación
    • -Disable para deshabilitar la mitigación
  • <Mitigación>:
    • El cmdlet de mitigación tal como se define en la tabla de cmdlets de mitigación siguiente, junto con cualquier subopción (rodeada de espacios). Cada mitigación se separa con una coma.

Por ejemplo, para habilitar la mitigación de Prevención de ejecución de datos (DEP) con emulación de thunk ATL y para un ejecutable llamado testing.exe en la carpeta C:\Apps\LOB\tests, y para evitar que ese ejecutable cree procesos secundarios, usaría el siguiente comando:

Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable DEP, EmulateAtlThunks, DisallowChildProcessCreation

Importante

Separe cada opción de mitigación con comas.

Si quisiera aplicar DEP en el nivel del sistema, usaría el siguiente comando:

Set-Processmitigation -System -Enable DEP

Para deshabilitar las mitigaciones, puede reemplazar -Enable por -Disable. Sin embargo, en el caso de las mitigaciones de nivel de aplicación, esta acción obliga a deshabilitar la mitigación solo para esa aplicación.

Si necesita restaurar la mitigación al valor predeterminado del sistema, debe incluir también el cmdlet -Remove, como en el ejemplo siguiente:

Set-Processmitigation -Name test.exe -Remove -Disable DEP

También puede establecer mitigaciones en modo de auditoría. En lugar de usar el cmdlet de PowerShell para la mitigación, use el cmdlet del Modo Auditoría como se especifica en la tabla de cmdlets de mitigación siguiente.

Por ejemplo, para habilitar la Protección de código arbitraria (ACG) en modo de auditoría para la aplicación testing.exe que usó anteriormente, ejecutaría el siguiente comando:

Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable AuditDynamicCode

Puede deshabilitar el modo de auditoría mediante el mismo comando, pero reemplazando -Enable por -Disable.

Tabla de referencia de PowerShell

En esta tabla se enumeran los cmdlets de PowerShell (y el cmdlet de modo de auditoría asociado) que se pueden usar para configurar cada mitigación.

Mitigación Se aplica a Cmdlets de PowerShell Parámetro de cmdlet del modo de Auditoría
Protección del flujo de control (CFG) Nivel de sistema y aplicación CFG, StrictCFG, SuppressExports Auditoría no disponible
Prevención de ejecución de datos (DEP) Nivel de sistema y aplicación DEP, EmulateAtlThunks Auditoría no disponible
Forzar la selección aleatoria de imágenes (ASLR es obligatorio) Nivel de sistema y aplicación ForceRelocateImages Auditoría no disponible
Aleatorizar las asignaciones de memoria (ASLR ascendente) Nivel de sistema y aplicación BottomUp, HighEntropy Auditoría no disponible
Validar cadenas de excepción (SEHOP) Nivel de sistema y aplicación SEHOP, SEHOPTelemetry Auditoría no disponible
Validar la integridad del montón Nivel de sistema y aplicación TerminateOnError Auditoría no disponible
Protección de código arbitrario (ACG) Solo nivel de aplicación DynamicCode AuditDynamicCode
Bloquear imágenes de integridad baja Solo nivel de aplicación BlockLowLabel AuditImageLoad
Bloquear imágenes remotas Solo nivel de aplicación BlockRemoteImages Auditoría no disponible
Bloquear fuentes que no son de confianza Solo nivel de aplicación DisableNonSystemFonts AuditFont, FontAuditOnly
Protección de integridad de código Solo nivel de aplicación BlockNonMicrosoftSigned, AllowStoreSigned AuditMicrosoftSigned, AuditStoreSigned
Deshabilitar los puntos de extensión Solo nivel de aplicación ExtensionPoint Auditoría no disponible
Deshabilitar llamadas del sistema de Win32k Solo nivel de aplicación DisableWin32kSystemCalls AuditSystemCall
No permitir procesos secundarios Solo nivel de aplicación DisallowChildProcessCreation AuditChildProcess
Exportar filtrado de direcciones (EAF) Solo nivel de aplicación EnableExportAddressFilterPlus, EnableExportAddressFilter [1] Auditoría no disponible[2]
Importar filtrado de direcciones (IAF) Solo nivel de aplicación EnableImportAddressFilter Auditoría no disponible[2]
Simular la ejecución (SimExec) Solo nivel de aplicación EnableRopSimExec Auditoría no disponible[2]
Validar la invocación de la API (CallerCheck) Solo nivel de aplicación EnableRopCallerCheck Auditoría no disponible[2]
Validar el uso de identificador Solo nivel de aplicación StrictHandle Auditoría no disponible
Validar la integridad de la dependencia de imagen Solo nivel de aplicación EnforceModuleDepencySigning Auditoría no disponible
Validar la integridad de la pila (StackPivot) Solo nivel de aplicación EnableRopStackPivot Auditoría no disponible[2]

[1]: Use el siguiente formato para habilitar módulos EAF para dll para un proceso:

Set-ProcessMitigation -Name processName.exe -Enable EnableExportAddressFilterPlus -EAFModules dllName1.dll,dllName2.dll

[2]: La auditoría de esta mitigación no está disponible a través de cmdlets de PowerShell.

Personalizar la notificación

Para obtener información sobre cómo personalizar la notificación cuando se desencadena una regla y se bloquea una aplicación o un archivo, consulte Seguridad de Windows.

Ver también

Sugerencia

¿Desea obtener más información? Engage con la comunidad de seguridad de Microsoft en nuestra comunidad tecnológica: Microsoft Defender para punto de conexión Tech Community.