Personalizar la protección contra vulnerabilidades de seguridad
Se aplica a:
- Microsoft Defender para punto de conexión Plan 1
- Microsoft Defender para punto de conexión Plan 2
- Microsoft Defender XDR
¿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 | 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 bloqueo de procesos secundarios | Impide que las aplicaciones creen procesos secundarios. | Solo nivel de aplicación | Sí |
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 | Sí |
Importar filtrado de direcciones (IAF) | Detecta operaciones peligrosas resueltas por 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 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 | Sí |
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 | Sí |
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 |
---|---|---|
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. 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
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.
Puede que haga falta un reinicio para cambiar algunas opciones de configuración.
Repita esto para todas las mitigaciones de nivel de sistema que quiera 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 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.
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 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
- Proteger los dispositivos contra vulnerabilidades de seguridad
- Evaluación de la protección contra vulnerabilidades de seguridad
- Habilitar la protección contra vulnerabilidades de seguridad
- Importar, exportar e implementar configuraciones de protección de vulnerabilidades de seguridad
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.