Evaluar la protección contra vulnerabilidades

En este artículo se explica cómo usar el modo de auditoría para evaluar las mitigaciones de protección contra vulnerabilidades de seguridad, revisar las directrices de compatibilidad, configurar la configuración del sistema y el programa para las pruebas e interpretar los eventos de auditoría antes de habilitar mitigaciones en producción.

Protección contra vulnerabilidades ayuda a proteger los dispositivos del malware que usa vulnerabilidades de seguridad para propagar e infectar otros dispositivos. La mitigación se puede aplicar al sistema operativo o a una aplicación individual. Muchas de las características que formaban parte de Enhanced Mitigation Experience Toolkit (EMET) se incluyen en Protección contra vulnerabilidades. (EMET ha llegado al final del soporte técnico).

En la auditoría, puede ver cómo funciona la mitigación para determinadas aplicaciones en un entorno de prueba. El modo auditoría muestra lo que sucedería si habilita la protección contra vulnerabilidades en el entorno de producción. Mediante el modo de auditoría, puede comprobar que la protección contra vulnerabilidades de seguridad no afecta negativamente a las aplicaciones de línea de negocio y ver qué eventos sospechosos o malintencionados se producen.

Directrices generales para evaluar la protección contra vulnerabilidades

Las mitigaciones de protección contra vulnerabilidades de seguridad funcionan en un nivel bajo en el sistema operativo y algunos tipos de software que realizan operaciones similares de bajo nivel pueden tener problemas de compatibilidad cuando se configuran para protegerse mediante la protección contra vulnerabilidades de seguridad.

¿Qué tipos de software no deben protegerse mediante la protección contra vulnerabilidades de seguridad?

  • Software de detección o prevención de intrusiones y antimalware
  • Depuradores
  • Software que controla tecnologías de administración de derechos digitales (DRM) (es decir, videojuegos)
  • Software que utiliza tecnologías de antidepuración, ofuscación o interceptación

¿Qué tipo de aplicaciones debe considerar la posibilidad de habilitar la protección contra vulnerabilidades de seguridad?

Aplicaciones que reciben o controlan datos que no son de confianza.

¿Qué tipo de procesos están fuera del ámbito de la protección contra vulnerabilidades de seguridad?

Servicios

  • Servicios del sistema
  • Servicios de red

Mitigaciones de protección contra vulnerabilidades habilitadas de forma predeterminada

En la tabla siguiente se enumeran las mitigaciones de protección contra vulnerabilidades habilitadas de forma predeterminada:

Mitigación Habilitado de forma predeterminada
Prevención de ejecución de datos (DEP) Aplicaciones de 64 y 32 bits
Validar cadenas de excepción (SEHOP) Aplicaciones de 64 bits
Validar la integridad del heap Aplicaciones de 64 y 32 bits

Mitigaciones obsoletas de "Configuración de programa"

Las siguientes mitigaciones de configuración del programa están en desuso. En la tabla se explica por qué se quitó cada uno:

Mitigaciones de "Configuración del programa" Motivo
Filtrado de direcciones de exportación (EAF) Problemas de compatibilidad de aplicaciones
Filtrado de direcciones de importación (IAF) Problemas de compatibilidad de aplicaciones
Simular la ejecución (SimExec) Reemplazado por protección contra código arbitrario (ACG)
Validar la invocación de la API (CallerCheck) Reemplazado por Arbitrary Code Guard (ACG)
Validar la integridad de la pila (StackPivot) Reemplazado por Protección contra código arbitrario (ACG)

Procedimientos recomendados de aplicaciones de Office

Para aplicaciones de Office como Outlook, Word, Excel, PowerPoint y OneNote, use reglas de reducción de superficie expuesta a ataques (ASR) en lugar de protección contra vulnerabilidades. Las reglas de ASR proporcionan una manera más moderna de evitar el uso indebido de estas aplicaciones:

Para Adobe Reader, use la siguiente regla ASR:

Impedir que Adobe Reader cree procesos secundarios

Google Chrome ya no recomienda habilitar Protección contra vulnerabilidades de seguridad (EMET) porque es redundante o reemplazada por mitigaciones de ataques integradas.

Lista de compatibilidad de aplicaciones

En la tabla siguiente se enumeran productos específicos que tienen problemas de compatibilidad con las mitigaciones que se incluyen en la protección contra vulnerabilidades de seguridad. Debe deshabilitar mitigaciones específicas incompatibles si desea proteger el producto mediante la protección contra vulnerabilidades de seguridad. Tenga en cuenta que esta lista tiene en cuenta la configuración predeterminada para las versiones más recientes del producto. Los problemas de compatibilidad se pueden introducir cuando se aplican determinados complementos u otros componentes al software estándar.

Note

Las mitigaciones de EMET pueden ser incompatibles con Oracle Java cuando se ejecutan mediante la configuración que reserva un gran fragmento de memoria para la máquina virtual (es decir, mediante la opción -Xms).

Producto Mitigación de protección contra exploits
.NET 2.0/3.5 EAF/IAF
7-Zip Console/GUI/File Manager EAF
Procesadores AMD 62xx EAF
Avecto (BeyondTrust) Power Broker EAF, EAF+, Stack Pivot
Determinados controladores de vídeo AMD (ATI) Sistema ASLR=AlwaysOn
DropBox EAF
Excel Power Query, Power View, Power Map y PowerPivot EAF
Google Chrome (ya no se recomienda) EAF+
Immidio Flex+ EAF
componentes web de Microsoft Office (OWC) Sistema DEP=AlwaysOn
Microsoft PowerPoint EAF
Equipos de Microsoft EAF+
Oracle Javaǂ Heapspray
Auditoría de impresión de Pitney Bowes 6 SimExecFlow
La versión de Siebel CRM es 8.1.1.9 SEHOP
Skype EAF
Administrador de Syslogd de SolarWinds EAF
Reproductor de Windows Media MandatoryASLR, EAF

ǂ Las mitigaciones de EMET pueden ser incompatibles con Oracle Java cuando se ejecutan mediante la configuración que reserva un gran fragmento de memoria para la máquina virtual (es decir, mediante la opción -Xms).

Habilitación de la configuración del sistema de protección contra vulnerabilidades para pruebas

Esta configuración del sistema de Protección contra vulnerabilidades está habilitada de forma predeterminada, excepto para la aleatoriedad del diseño de espacio de direcciones obligatorio (ASLR) en Windows 10 y versiones posteriores, Windows Server 2019 y versiones posteriores, y en Windows Server versión 1803 core edition y versiones posteriores.

Configuración del sistema Configuración
Protección del flujo de control (CFG) Usar el valor predeterminado (Activado)
Prevención de ejecución de datos (DEP) Usar el valor predeterminado (Activado)
Forzar la aleatorización de las imágenes (ASRL obligatorio) Usar el valor predeterminado (desactivado)
Aleatorización de las asignaciones de memoria (ASRL de abajo arriba) Usar el valor predeterminado (Activado)
ASRL de alta entropía Usar el valor predeterminado (Activado)
Validar cadenas de excepción (SEHOP) Usar el valor predeterminado (Activado)

En el ejemplo XML siguiente se muestra la configuración predeterminada de mitigación del sistema:

<?xml version="1.0" encoding="UTF-8"?>
<MitigationPolicy>
  <SystemConfig>
    <DEP Enable="true" EmulateAtlThunks="false" />
    <ASLR ForceRelocateImages="false" RequireInfo="false" BottomUp="true" HighEntropy="true" />
    <ControlFlowGuard Enable="true" SuppressExports="false" />
    <SEHOP Enable="true" TelemetryOnly="false" />
    <Heap TerminateOnError="true" />
  </SystemConfig>
</MitigationPolicy>

Habilitación de la configuración del programa de protección contra vulnerabilidades para pruebas

Sugerencia

Se recomienda encarecidamente revisar el enfoque moderno para las mitigaciones de vulnerabilidades, que consiste en usar reglas ASR.

Puede establecer mitigaciones en un modo de pruebas para programas específicos mediante la aplicación Seguridad de Windows o Windows PowerShell.

Aplicación Seguridad de Windows

Use la aplicación Seguridad de Windows para configurar mitigaciones de protección contra vulnerabilidades en modo de prueba para un programa específico:

  1. Abra la aplicación Seguridad de Windows. Seleccione el icono de escudo en la barra de tareas o busque 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. Vaya a Configuración del programa y elija la aplicación a la que quiere aplicar la protección:

    1. Si la aplicación que desea configurar ya aparece en la lista, selecciónela y, a continuación, seleccione Editar.

    2. Si la aplicación no aparece en la parte superior de la lista, seleccione Agregar programa para personalizar. Después, 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. Especifique 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.
  4. Después de seleccionar la aplicación, verá una lista de todas las mitigaciones que se pueden aplicar. Al elegir Auditar , solo se aplica la mitigación en modo de prueba. Se le notificará si necesita reiniciar el proceso, la aplicación o Windows.

  5. Repita este procedimiento para todas las aplicaciones y mitigaciones que quiera configurar. Seleccione Aplicar cuando haya terminado de establecer la configuración.

PowerShell

Para establecer las mitigaciones a nivel de aplicación en modo de prueba, use Set-ProcessMitigation con el cmdlet modo de auditoría.

Use la sintaxis siguiente Set-ProcessMitigation para habilitar o auditar mitigaciones para una aplicación específica. Sustituya los marcadores de posición por el ámbito, el ejecutable, la acción y los cmdlets de mitigación:

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.
  • <Acción>:
    • -Enable para habilitar la mitigación
      • -Disable para deshabilitar la mitigación
  • <Mitigación>:
    • Cmdlet de mitigación tal y como se define en la tabla siguiente. Cada mitigación se separa con una coma.
Mitigación Cmdlet del modo de prueba
Bloqueo de código arbitrario (ACG) AuditDynamicCode
Bloquear imágenes de integridad baja AuditImageLoad
Bloquear fuentes que no son de confianza AuditFont, FontAuditOnly
Protección de integridad de código AuditMicrosoftSigned, AuditStoreSigned
Deshabilitar llamadas del sistema de Win32k AuditSystemCall
No permitir procesos secundarios AuditChildProcess

Por ejemplo, el siguiente comando habilita Arbitrary Code Guard (ACG) en modo auditoría para una aplicación denominada testing.exe, por lo que puede probar el impacto de las restricciones de código dinámico antes de aplicarlas:

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

Puede deshabilitar el modo de auditoría reemplazando -Enable por -Disable.

Revisar eventos de auditoría de protección contra vulnerabilidades

Para revisar qué aplicaciones se bloquearían, abra Visor de eventos y filtre por los siguientes eventos en el registro de Security-Mitigations.

Característica Proveedor u origen Id. de evento Descripción
Protección contra exploits Mitigaciones de seguridad (modo kernel/modo de usuario) 1 Auditoría de ACG
Protección contra exploits Mitigaciones de seguridad (modo kernel/modo de usuario) 3 No permitir auditorías de procesos secundarios
Protección contra exploits Mitigaciones de seguridad (modo kernel/modo de usuario) 5 Bloquear la auditoría de imágenes de baja integridad
Protección contra vulnerabilidades de seguridad Mitigaciones de seguridad (modo kernel/modo de usuario) 7 Bloquear auditoría de imágenes remota
Protección contra exploits Mitigaciones de seguridad (modo kernel/modo de usuario) 9 Deshabilitar la auditoría de llamadas del sistema de Win32k
Protección contra exploits Mitigaciones de seguridad (modo kernel/modo de usuario) 11 Auditoría de protección de integridad de código