Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La protección contra vulnerabilidades aplica automáticamente muchas técnicas de mitigación de exploits tanto a los procesos del sistema operativo como a las 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.
En este artículo también se describe cómo habilitar o configurar las mitigaciones mediante proveedores de servicios de configuración (CSP) de Seguridad de Windows, PowerShell y administración de dispositivos móviles (MDM). La configuración de la protección contra vulnerabilidades de seguridad en un único dispositivo es el primer paso para crear una configuración que se pueda implementar en la red. Para implementar esta configuración en varios dispositivos, consulte Importación, exportación e implementación de configuraciones de protección contra vulnerabilidades de seguridad.
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 mediante el modo de auditoría de protección contra vulnerabilidades 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 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 configurar cada mitigación como activada, desactivada o con su valor predeterminado. Algunas mitigaciones tienen más opciones 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, por tanto, deben modificar la configuración lejos de los valores predeterminados.
Para ver los cmdlets de PowerShell asociados para cada mitigación, consulte los cmdlets de PowerShell para las mitigaciones de protección contra vulnerabilidades 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 del flujo de control en las llamadas indirectas. Puede, opcionalmente, suprimir exportaciones y usar CFG estricto. | Nivel de sistema y aplicación | No |
| Prevención de ejecución de datos (DEP) | Impide que se ejecute código desde páginas de memoria que solo contienen datos, como el heap y la pila. Solo se puede configurar para aplicaciones de 32 bits (x86) habilitadas permanentemente para todas las demás arquitecturas. Puede habilitarse opcionalmente la emulación de thunk de ATL. | Nivel de sistema y aplicación | No |
| Forzar la selección aleatoria de imágenes (ASLR es obligatorio) | Reubica por la fuerza las 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 la asignación de memoria (ASLR de abajo arriba) | Aleatoriza las ubicaciones de las asignaciones de memoria virtual. Incluye montículos de estructuras del sistema, pilas, TEBs y PEBs. 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) | Garantiza la integridad de una cadena de excepciones durante los envíos de excepciones. Solo se puede configurar para aplicaciones de 32 bits (x86). | Nivel de sistema y aplicación | No |
| Validar la integridad del heap | 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 | Sí |
| Bloquear imágenes de integridad baja | Impide la carga de imágenes marcadas como de baja integridad. | Solo nivel de aplicación | Sí |
| 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 | Sí |
| 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 | Sí |
| 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 | Sí |
| No permitir procesos secundarios | Impide que las aplicaciones creen procesos secundarios. | Solo nivel de aplicación | Sí |
| Filtrado de direcciones de exportación (EAF) | Detecta operaciones peligrosas que se resuelven mediante código malintencionado. Puede validar opcionalmente el acceso mediante módulos utilizados habitualmente por exploits. | Solo nivel de aplicación | Sí |
| Filtrado de direcciones de importación (IAF) | Detecta operaciones peligrosas que se resuelven mediante un código malintencionado. | Solo nivel de aplicación | Sí |
| 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 | Sí |
| Validar la invocación de la API (CallerCheck) | Garantiza que los autores de llamada legítimos invocan API confidenciales. Solo se puede configurar para aplicaciones de 32 bits (x86). No es compatible con ACG | Solo nivel de aplicación | Sí |
| Validar el uso del 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 | Exige la firma de código para cargar dependencias de imágenes de Windows. | Solo nivel de aplicación | No |
| Validar la integridad de la pila (StackPivot) | Garantiza que la pila no haya sido redirigida para API sensibles. No es compatible con ACG. | Solo nivel de aplicación | Sí |
Importante
Si añade una aplicación a la sección Configuración del programa y configura allí las opciones de mitigación individuales, estas tendrán prioridad sobre la configuración de esas mismas mitigaciones especificada 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 |
|---|---|---|
| Sí | No | Tal y como se define en Configuración del programa |
| Sí | Sí | Tal y como se define en Configuración del programa |
| No | Sí | 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. Mikael agrega a continuación 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), activa la opción Invalidar la configuración del sistema y establece el interruptor 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), habilita la opción Anular la configuración del sistema y pone el interruptor en Activado. Josie también añade la aplicación miles.exe a la sección Configuración del programa y establece Protección de flujo de control (CFG) en Activado. No habilita la opción Invalidar la configuración del sistema para DEP ni para ninguna otra mitigación de 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
Para configurar mitigaciones de protección contra vulnerabilidades de seguridad de nivel de sistema y de nivel de aplicación en un dispositivo individual, use la aplicación Seguridad de Windows:
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.
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.
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.
Cambiar algunas opciones de configuración puede requerir reiniciar el dispositivo.
Repita estos pasos de configuración para todas las mitigaciones de nivel de sistema que desea configurar.
Vaya a la sección Configuración del programa y elija la aplicación a la que quiere aplicar mitigaciones:
- Si la aplicación que quiere configurar ya aparece en la lista, selecciónela y seleccione Editar
- 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 introducir una ruta de acceso completa para limitar la mitigación solo a la aplicación con ese nombre y en esa ubicación.
- Use Elegir la ruta exacta del archivo para abrir la ventana estándar del Explorador de Windows para seleccionar archivos y buscar y seleccionar el archivo que desee.
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.
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 la configuración de protección contra vulnerabilidades como un archivo XML o seguir configurando 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. Dado que la configuración modificada más recientemente siempre se aplica, si usa la aplicación para configurar una mitigación, use 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>:
-
-Namepara 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. -
-Systempara indicar que la mitigación debe aplicarse en el nivel del sistema
-
-
<Acción>:
-
-Enablepara habilitar la mitigación -
-Disablepara deshabilitar la mitigación
-
-
<Mitigación>:
- El cmdlet de la mitigación, tal como se define en la tabla de cmdlets de mitigación de la protección contra vulnerabilidades siguiente, junto con cualquier subopción (entre 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.
Para aplicar una mitigación a nivel de sistema en lugar de aplicarla a una aplicación específica, use el ámbito -System. Por ejemplo, para habilitar DEP para todos los procesos del dispositivo, 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 una mitigación de nivel de aplicación al valor predeterminado del sistema, también debe incluir el cmdlet -Remove. En el ejemplo siguiente se elimina la anulación de DEP específica de la aplicación para test.exe para que herede la configuración predeterminada del sistema:
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 de modo de auditoría tal como se especifica en la siguiente tabla de cmdlets de mitigación de protección contra vulnerabilidades de seguridad.
Por ejemplo, el siguiente comando habilita la supervisión solo de auditoría para la mitigación de Protección de código arbitrario (ACG) en la testing.exe usada anteriormente, que registra las infracciones de la directiva sin bloquear la ejecución:
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 | 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 la asignación de memoria (ASLR de abajo arriba) | 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 heap | 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 | Etiqueta de bloque bajo | AuditImageLoad |
| Bloquear imágenes remotas | Solo nivel de aplicación | Bloquear imágenes remotas | 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 | MicrosoftSignedOnly, AllowStoreSignedBinaries | 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 hijo | Solo nivel de aplicación | No permitir la creación de procesos secundarios | AuditChildProcess |
| Filtrado de direcciones de exportación (EAF) | Solo nivel de aplicación | EnableExportAddressFilterPlus, EnableExportAddressFilter [1] | Auditoría no disponible[2] |
| Filtrado de direcciones de importación (IAF) | Solo nivel de aplicación | Habilitar filtro de direcciones de importación | 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 del identificador | Solo nivel de aplicación | StrictHandle | Auditoría no disponible |
| Validar la integridad de la dependencia de imagen | Solo nivel de aplicación | Aplicar la firma de dependencias de módulos | Auditoría no disponible |
| Validar la integridad de la pila (StackPivot) | Solo nivel de aplicación | EnableRopStackPivot | Auditoría no disponible[2] |
[1]: Para habilitar Export Address Filtering Plus (EAF+) para un proceso y restringirlo a módulos DLL específicos, use el siguiente formato:
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.
Personalización de las notificaciones de protección contra vulnerabilidades
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.