Personalizar protección contra vulnerabilidades

Se aplica a:

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

Puedes configuran estas opciones de configuración mediante la aplicación de seguridad de Windows en un equipo individual y, a continuación, exportación la configuración como un archivo XML que se puede implementar en otros equipos. Puedes usar la directiva de grupo para distribuir el archivo XML a varios dispositivos a la vez. También puedes configurar las mitigaciones con PowerShell.

En este tema se enumera cada una de las mitigaciones disponibles en protección contra vulnerabilidades, indica si la mitigación puede ser aplicada en todo el sistema o a aplicaciones individuales y proporciona una breve descripción de cómo funciona la mitigación.

También describe cómo habilitar o configurar las mitigaciones con seguridad de Windows, PowerShell y CSP de MDM. Este es el primer paso para crear una configuración que puedes implementar a través de la red. El siguiente paso comprende la generación o exportación, importación e implementación de la configuración en varios dispositivos.

Advertencia

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

Mitigaciones de Protección contra vulnerabilidades

Todas las mitigaciones pueden configurarse para aplicaciones individuales. Algunas de las mitigaciones también pueden aplicarse también al nivel del sistema operativo.

Puedes establecer cada una de las mitigaciones en activada, desactivada o 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 llaves en la opción usar predeterminada de cada mitigación. En el siguiente ejemplo, el valor predeterminado de Prevención de ejecución de datos es "Activado".

La configuración Usar predeterminada de cada uno de los ajustes de mitigación indica nuestra recomendación para un nivel básico de protección para el uso cotidiano de los usuarios domésticos. Las implementaciones de empresa deben tener en cuenta la protección necesaria para sus necesidades individuales y puede que necesiten modificar la configuración hacia fuera de los valores predeterminados.

Para los cmdlets de PowerShell asociados para cada mitigación, consulta la tabla de referencia de PowerShell en la parte inferior de este tema.

Mitigación Descripción Puede aplicarse a: Modo de auditoría disponible
Protección de flujo de control (CFG) Garantiza la integridad del flujo de control de llamadas indirectas. Puede suprimir opcionalmente las exportaciones y usar CFG estricta. Nivel del sistema y de aplicación Check mark 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), estando habilitada de forma permanente para el resto de arquitecturas. Opcionalmente, se puede habilitar la emulación de invocación de ATL. Nivel del sistema y de aplicación Check mark no
Forzar la aleatorización de imágenes (ASLR obligatorio) Reubica de forma obligada imágenes no compiladas con /DYNAMICBASE. Puede, opcionalmente, dejar de cargar imágenes que no tengan información de reubicación. Nivel del sistema y de aplicación Check mark no
Aleatorizar las asignaciones de memoria (ASLR de abajo a arriba) Aleatoriza las ubicaciones para asignaciones de memoria virtual, incluyendo las estructuras del sistema de montones, pilas, TEB y PEB. Puedes usar opcionalmente una varianza de aleatorización más amplia para los procesos de 64 bits. Nivel del sistema y de aplicación Check mark no
Validar cadenas de excepciones (SEHOP) Asegura la integridad de una cadena de excepciones durante el envío de excepciones. Solo se puede configurar para aplicaciones de 32 bits (x 86). Nivel del sistema y de aplicación Check mark no
Validar integridad de montón Finaliza un proceso cuando se detecta corrupción del montón. Nivel del sistema y de aplicación Check mark no
Protección de código arbitrario (ACG) Evita la introducción de código ejecutable no respaldado por imagen e impide la modificación de páginas de código. Puedes permitir, opcionalmente, la renuncia a las secuencias de ejecución y la degradación remota (configurable solo con PowerShell). Solo a nivel de aplicación Check mark yes
Bloquear imágenes de baja integridad Impide la carga de imágenes marcadas con integridad baja. Solo a nivel de aplicación Check mark yes
Bloquear imágenes remotas Impide la carga de imágenes desde dispositivos remotos. Solo a nivel de aplicación Check mark no
Bloquear fuentes no de confianza Impide la carga de las fuentes de GDI no instaladas en el directorio de fuentes del sistema, en especial las fuentes desde la web. Solo a nivel de aplicación Check mark yes
Protección de integridad de código Restringe la carga de imágenes firmadas por Microsoft, WHQL, o superior. Opcionalmente, puede permitir las imágenes firmadas de Microsoft Store. Solo a nivel de aplicación Check mark yes
Deshabilitar puntos de extensión Deshabilita varios mecanismos de extensibilidad que permiten la inserción de DLL en todos los procesos, como las DLL de AppInit, los enganches de ventanas y los proveedores de servicios de Winsock. Solo a nivel de aplicación Check mark no
Deshabilitar las llamadas del sistema Win32k Impide que una aplicación use la tabla de llamadas del sistema Win32k. Solo a nivel de aplicación Check mark yes
No permitir procesos secundarios Impide que una aplicación cree procesos secundarios. Solo a nivel de aplicación Check mark yes
Exportar filtrado de direcciones (EAF) Detecta operaciones peligrosas que ejecuta el código malintencionado. Opcionalmente, se puede validar el acceso mediante módulos usados habitualmente por las vulnerabilidades de seguridad. Solo a nivel de aplicación Check mark no
Importar filtrado de direcciones (IAF) Detecta operaciones peligrosas que ejecuta el código malintencionado. Solo a nivel de aplicación Check mark no
Simular ejecución (SimExec) Garantiza que las llamadas a API sensibles vuelvan a los llamadores legítimos. Solo se puede configurar para aplicaciones de 32 bits (x86). No compatible con ACG Solo a nivel de aplicación Check mark no
Validar invocación de API (CallerCheck) Garantiza que las API sensibles las invoquen llamadores legítimos. Solo se puede configurar para aplicaciones de 32 bits (x86). No compatible con ACG Solo a nivel de aplicación Check mark no
Validar uso de controladores Provoca que surja una excepción para todas las referencias de identificador no válidas. Solo a nivel de aplicación Check mark no
Validar integridad de dependencia de imágenes Obliga a firma de código para la carga de dependencias de imágenes de Windows. Solo a nivel de aplicación Check mark no
Validar integridad de pila (StackPivot) Asegura que la pila no se haya redirigido hacia las API sensibles. No compatible con ACG Solo a nivel de aplicación Check mark no

Importante

Si agregas una aplicación a la sección Configuración de programas y configuras allí ajustes de mitigaciones individuales, se aceptarán por encima de la configuración para las mismas mitigaciones especificadas en la sección Configuración del sistema. La matriz y los ejemplos siguientes ayudan a explicar cómo funcionan los valores predeterminados:

Habilitado en Configuración de programas Habilitado en Configuración de programas Comportamiento
Check mark yes Check mark no Conforme viene definido en Configuración de programas
Check mark yes Check mark yes Conforme viene definido en Configuración de programas
Check mark no Check mark yes Conforme viene definido en Configuración del sistema
Check mark no Check mark yes Valor predeterminado según se define en la opción Usar predeterminada
  • Ejemplo 1

    Mikael configura Prevención de ejecución de datos (DEP) en la sección Configuración del sistema para que sea Desactivado de manera predeterminada.

    Mikael, a continuación, agrega la aplicación test.exe a la sección Configuración de programas. En las opciones de la aplicación, en Prevención de ejecución de datos (DEP), habilita la opción Invalidar la configuración del sistema y establece el conmutador en Activado. No hay ninguna otra aplicación enumerada en la sección Configuración de programas.

El resultado será que DEP solo estará habilitada para test.exe. Todas las demás aplicaciones no tendrán DEP aplicada.

  • Ejemplo 2

    Josie configura Prevención de ejecución de datos (DEP) en la sección Configuración del sistema para que sea Desactivado de manera predeterminada.

    Josie, a continuación, agrega la aplicación test.exe a la sección Configuración de programas. En las opciones de la aplicación, en Prevención de ejecución de datos (DEP), habilita la opción Invalidar la configuración del sistema y establece el conmutador en Activado.

    Josie también agrega la aplicación miles.exe a la sección Configuración de programas y configura Protección de flujo de control (CFG) en Activado. Ella no habilita la opción Invalidar la configuración del sistema para DEP ni ninguna otra mitigación para esa aplicación.

El resultado será que DEP estará habilitada 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, puedes informar directamente a un partner de cliente de Windows Server o Windows o usar los números de soporte técnico de Microsoft de su país.

Configurar las mitigaciones de nivel del sistema con la aplicación de seguridad de Windows

  1. Abre la aplicación de seguridad de Windows haciendo clic en el icono de escudo en la barra de tareas o buscando Defenderen el menú Inicio.

  2. Haz clic en el icono de control de aplicación & explorador (o en el icono de la aplicación en la barra de menús de la izquierda) y, a continuación, haz clic en protección contra vulnerabilidades.

  3. En la sección Configuración del sistema, busca la mitigación que quieras configurar y selecciona una de las posibilidades siguientes: Las aplicaciones que no están configuradas de forma individual en la sección Configuración del programa usarán las opciones configuradas aquí:

    • Activada de manera predeterminada: la mitigación está habilitada para las aplicaciones que no tengan esta mitigación establecida en la sección específica de la aplicación Configuración de programas
    • Desactivada de manera predeterminada: la mitigación está deshabilitada para las aplicaciones que no tengan esta mitigación establecida en la sección específica de la aplicación Configuración de programas
    • Usar predeterminada: la mitigación está habilitada o deshabilitada, según la configuración predeterminada que esté configurada en la instalación de Windows 10; el valor predeterminado (Activada o Desactivada) siempre se especifica junto a la etiqueta Usar predeterminada de cada mitigación

      Nota

      Puede que aparezca una ventana Control de cuentas de usuario al cambiar algunas opciones de configuración. Escribe las credenciales de administrador para aplicar la opción de configuración.

      Cambiar algunas opciones de configuración, es posible que un reinicio.

  4. Repite esto para todas las mitigaciones al nivel del sistema que quieras configurar.

  5. Ve a la sección Configuración de programas y elige la aplicación a la que quieras aplicar mitigaciones:

    1. Si la aplicación que deseas configurar ya está en la lista, haz clic en ella y, a continuación, haz clic en Editar
    2. Si la aplicación no aparece, haz clic en Agregar programa personalizar, en la parte superior de la lista, y después elige cómo quieres agregar la aplicación:
      • Usa Agregar por nombre de programa para aplicar la mitigación a cualquier proceso en ejecución con ese nombre. Debes especificar un archivo con una extensión. Puedes introducir una ruta de acceso completa para limitar la mitigación solo a la aplicación con ese nombre en esa ubicación.
      • Usa Elegir la ruta de acceso al archivo exacta para usar una ventana estándar del Explorador de Windows para buscar y seleccionar el archivo que desea.
  6. Después de seleccionar la aplicación, verás una lista de todas las mitigaciones que se pueden aplicar. Para habilitar la mitigación, haz clic en la casilla de verificación y, a continuación, cambia el control deslizante a Activado. Selecciona las opciones adicionales que correspondan. Al elegir Auditoría se aplicará la mitigación solo en modo de auditoría. Se te notificará si es necesario reiniciar el proceso o la aplicación, o si es necesario reiniciar Windows.

  7. Repite esto para todas las aplicaciones y mitigaciones que quieras configurar. Haz clic en Aplicar cuando hayas terminado de establecer la configuración.

Ahora puedes exportar estas opciones de configuración como un archivo XML o seguir para configurar mitigaciones específicas de las aplicaciones.

Exportar la configuración como un archivo XML te permite copiar la configuración de un equipo en otros equipos.

Referencia de PowerShell

Puedes usar la aplicación de seguridad de Windows para configurar la protección contra vulnerabilidades de seguridad, o puedes usar los cmdlets de PowerShell.

Las opciones de configuración que se hayan modificado recientemente siempre se aplicará - independientemente de si usas PowerShell o seguridad de Windows. Esto significa que, si usas la aplicación para configurar una mitigación, deberás usar PowerShell para configurar la misma mitigación, con lo que la aplicación se actualizará para mostrar los cambios que hayas realizado con PowerShell. Si entonces tuvieras que usar la aplicación para cambiar la mitigación de nuevo, se aplicaría ese cambio.

Importante

Todos los cambios que se implementen en un equipo a través de la directiva de grupo prevalecerán sobre la configuración local. Al establecer una configuración inicial, usa una máquina que no tenga una configuración de directiva de grupo aplicada, para garantizar que los cambios no sean invalidados.

Puedes usar el verbo de PowerShell Get o Set con el cmdlet ProcessMitigation. Con Get se enumera el estado actual de configuración de todas las mitigaciones que se hayan habilitado en el dispositivo: agrega el cmdlet -Name y el ejecutable de la aplicación para ver las mitigaciones solo para esa aplicación:

Get-ProcessMitigation -Name processName.exe 

Importante

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

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

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

La configuración predeterminada para cada mitigación de nivel del sistema puede verse en la seguridad de Windows.

Usa Set para configurar cada mitigación con el formato siguiente:

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

Donde:

  • <Scope>:
    • -Name para indicar las mitigaciones que deben aplicarse a una aplicación específica. Especifica el ejecutable de la aplicación después de esta marca.
    • -System para indicar que la mitigación debe aplicarse al nivel del sistema
  • <Action>:
    • -Enable para habilitar la mitigación
    • -Disable para deshabilitar la mitigación
  • <Mitigation>:

    • El cmdlet de mitigación según se define en la siguiente tabla de cmdlets de mitigación, junto con cualesquiera subopciones (delimitadas por espacios). Cada mitigación se separa por comas.

    Por ejemplo, para permitir que la mitigación de Prevención de ejecución de datos (DEP) con la emulación de invocación de ATL y para un archivo ejecutable denominado testing.exe en la carpeta C:\Apps\LOB\tests, y para impedir que ese archivo ejecutable cree procesos secundarios, deberías usar el siguiente comando:

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

    Importante

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

    Si quieres aplicar DEP al nivel del sistema, deberías usar el siguiente comando:

    Set-Processmitigation -System -Enable DEP
    

    Para deshabilitar las mitigaciones, puedes reemplazar -Enable por -Disable. Sin embargo, para mitigaciones a nivel de aplicación, esto forzará que se deshabilite la mitigación solo para esa aplicación.

    Si necesitas restaurar la mitigación a la predeterminada del sistema, debes incluir también el cmdlet -Remove, como se indica en el siguiente ejemplo:

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

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

Por ejemplo, para habilitar Protección de código arbitrario (ACG) en modo auditoría para el testing.exe usado en el ejemplo anterior, deberías usar el siguiente comando:

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

Puedes deshabilitar el modo auditoría con el mismo comando, pero sustituyendo -Enable por -Disable.

Tabla de referencia de PowerShell

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

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

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

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

Personalizar la notificación

Consulta el tema de Seguridad de Windows para obtener más información sobre cómo personalizar la notificación cuando una regla se desencadena y bloquea una aplicación o un archivo.

Temas relacionados