Mitigación de vulnerabilidades en Internet Explorer con EMET

Desde el RSS de Hispasec recibimos las posibles soluciones a la última vulnerabilidad reportada que afecta a todas las versiones de Internet Explorer. La vulnerabilidad (que recibió el nombre de Aurora), consiste en un exploit (hecho público por Metasploit) que se aprovechaba de un fallo en el procesamiento de las hojas de estilo en cascada (Cascading Style Sheets, CSS) dando como resultado una denegación de servicio, y dejando que Internet Explorer dejara de funcionar.  A los pocos días de hacerse pública la vulnerabilidad, Nephi Johnson publicaba el código necesario para explotarla en un post denominado  When A DoS Isn’t A DoS. Nephi hablaba de los rumores que había habido los días anteriores sobre dicha vulnerabilidad la mayoría de los cuales hacían referencia a que no se podía explotar dicha vulnerabilidad. Él, por su parte, se encargaba de desmentir dichos rumores, demostrando que si era explotable, y que en verdad no se trataba de una denegación de servicio. De ahí el nombre de su post. El entorno empleado: Internet Explorer 8 sobre Windows XP con SP3.

Por otra lado, con fecha del 23 de diciembre se adaptó el exploit evitando Data Execution Prevention (DeP) y Addess Space Layout Randomization (ASLR) en plataformas Windows Vista y Windows 7, consiguiendo esto último gracias a la carga dinámica que se produce por parte del navegador Internet Explorer de librerías que no se encuentran marcadas para utilizar ASLR (como por ejemplo mscorie.dll) y el uso de Programación orientada a retorno (Return Oriented Programming).

Mientras tanto, y aunque no se han reportado ataques utilizando dicha vulnerabilidad, Microsoft ha reconocido la misma y trabaja en su solución. Los consejos que han sido trasmitidos a la comunidad para mitigar dicha vulnerabilidad hasta la fecha son:

  • El uso de las zonas de seguridad disponibles en Internet Explorer, utilizando el nivel de seguridad “Alto” para evitar la mayoría de los ataques actuales, añadiendo a las páginas de confianza solamente aquellas que sean legítimas y que puedan tener problemas de visualización.
  • El uso del kit de herramientas Enhanced Mitigation Experience Toolkit (EMET) de Microsoft, donde dicha herramienta nos va a permitir que todas las librerías (DLL) cargadas por una aplicación se vean obligadas a utilizar ASLR, por  lo que cualquier exploit que intente apoyarse en dichas librerías no funcionara al haberse ubicado las mismas en lugares aleatorias de memoria. Para aquellos SSOO Microsoft que no soporten ASLR (Windows XP o Windows 2003) se pueden utilizar aplicaciones tipo WehnTrusWehnTrus es un Sistema de Prevención de Intrusos basado en Host (HIPS) utilizado en dichos entornos en la mitigación de exploits.
  • Por último, y no menos seguro, se puede optar por la utilización de herramientas como Sandboxie que ejecutan el navegador en un entorno aislado (entorno virtual) por lo que cualquier ataque que se produzca no se transmitirá al sistema físico.

Nosotros, al ser un producto Microsoft, hemos optamos por enseñar el funcionamiento de Enhanced Mitigation Experience Toolkit a la hora de implementar ASLR para todas las librerías necesarias para una aplicación. El kit de herramientas podéis descargarlo desde aquí.

imageImagen 1: Enhanced Mitigation Experience Toolkit

La finalidad de esta herramientas es la de controlar o mitigar los posibles ataques que puedan derivar de la ejecución de código malicioso que pudiera producirse a través de un ataque de denegación de servicio. Esta herramienta, disponible para plataformas Windows versa con la siguiente intro:

“Las vulnerabilidades de software se han convertido en una parte cotidiana de la vida. Prácticamente todos los productos tienen que lidiar con ellas y, en consecuencia, los usuarios se enfrentan a una corriente de actualizaciones de seguridad. Para aquellos usuarios que reciben ataques antes de que las actualizaciones más recientes se hayan aplicado o que sean atacados antes de una actualización no se encuentre disponibles, los resultados pueden ser devastadores: malware, pérdida de información de identificación personal, etc […..] Las tecnologías de seguridad de mitigación se han diseñado para que sea más difícil para un atacante explotar vulnerabilidades en una determinada pieza de software. EMET permite a los usuarios gestionar estas tecnologías en su sistema y proporciona varios beneficios únicos”

A su vez, desde la zona de descarga podemos leer sus bondades:

  • No es necesario el código fuente de las aplicaciones: EMET es especialmente útil a la hora de implementar medidas de mitigación en el software desarrollado antes de que las mitigaciones se encuentren disponibles y sobre todo cuando el código fuente de dichas aplicaciones no se encuentre disponible.
  • Altamente configurable: EMET proporciona un mayor grado de granularidad al permitir que las mitigaciones que se aplican de forma individual a un determinado proceso base, por lo que no hay necesidad de aplicarla a todo un producto completo o una suite de aplicaciones en su conjunto, siendo útil en aquellas situaciones donde un proceso no sea compatible con una tecnología de mitigación en particular, pudiendo desactivar en cualquier momento dicha tecnología de mitigación para dicho proceso.
  • Ayuda a fortificar aplicaciones heredadas: No es raro que las organizaciones dependan de software considerado “antiguo” que ha sido heredado por diversos motivos, y que no puede ser modificado y no queda otra solución que irlo eliminando o migrando lentamente. Me viene a la mente el caso de un ayuntamiento en donde el software de base de datos Oracle Database 11g se encontraba ejecutándose con un nivel de compatibilidad de la versión de Oracle Database 8.0, debido a que en caso de cambiarse, la aplicación cerrada del Padrón del municipio dejaba de funcionar correctamente, produciendo problemas de rendimiento al utilizar el antiguo optimizador basado en Reglas, sacrificando en el proceso todas las nuevas características de seguridad frente a la usabilidad, disponibilidad y estabilidad de dicha aplicación de gestión del padrón.
  • Fácil de utilizar: EMET dispone de un entorno gráfico de sencilla utilización que permite establecer las políticas de mitigación del sistema de forma rápida y cómoda, sin que haya necesidad de ubicar y descifrar las claves de registro o ejecutar utilidades dependientes de la plataforma.
  • Mejora continua: EMET es una herramienta diseñada para ser actualizada en cuanto se disponga cualquier nueva tecnologías de mitigación, sin encontrarse asociada a ningún producto específico, por lo que las actualizaciones de la herramienta se realizan de forma dinámica en cuanto nuevas tecnologías de mitigación se encuentren disponibles.

Ahora veremos cuáles son las tecnologías de mitigación que incorpora, así como el funcionamiento de la misma. EMET es una utilidad perfecta frente a posibles ataques de desbordamiento de pila que puedan sufrir las aplicaciones obteniendo como resultado el ataque de denegación de servicio.El objetivo de EMET es proteger los procesos que se ejecutan en nuestro entorno frente a este tipo de ataques a través de la aplicación de seis medidas de mitigación:

  • ASLR (Address Space Layout Randomization): Con este tipo de técnica de mitigación, las asignaciones de las funciones y los datos de las aplicaciones en la memoria se realizan al azar, impidiendo en gran medida cualquier ataque de cualquier hacker que sea bueno prediciendo las ubicaciones de memoria.
  • SEHOP (Structure Exception Handler Overwrite Protection): Introducido en Windows Vista SP1 y Windows Server 2008, esta técnica de mitigación puede ser habilitada/deshabilitada en Windows 7 mediante la clave del registroDisableExceptionChainValidation con valor a 0/1 (mas info). Esta tecnología se encarga de proteger los procesos frente a las técnicas más comunes de desbordamiento de pila y puede ser habilitada de forma global en todas las aplicaciones en plataformas Windows Vista SP1 o Windows 7 mediante el siguiente Hotfix.
  • DEP (Data Execution Prevention): técnica de mitigación disponible a partir Windows XP, encargándose de impedir que el código en la memoria sea ejecutado si dicho código no es marcado como ejecutable. DEP es una solución de hardware + software para prevenir la ejecución de código de páginas de memoria que no estén explícitamente marcadas como ejecutables. DEP se encuentra activado por defecto para procesos de 64 bits en plataformas de 64 bits y no se puede desactivar. DEP y ASLR suelen funcionar juntos, complementándose entre si, siendo muy difíciles de evitar por los atacantes.  Para saber si un sistema cuenta con procesadores que implementen DEPforzado por hardware (Hardware-Enforced DEP) siga el siguiente procedimiento:
    • Abra una línea de comandos y ejecute la herramienta de línea de comandos de WMIC (Windows Management Instrumentation Command) para comprobar la configuración de DEP con el comando WMIC OS Get DataExecutionPrevention_Available. Un valor devuelto de TRUE indica que existe compatibilidad DEP forzada por hardware a nivel de procesador:

      imageImagen 1: Comprobar la configuración  DEP mediante WMIC

    • La tecnología DEP puede ser aplicada mediante una política que afecte a todo el sistema (para todos los procesos) o para un proceso específico. Actualmente existen cuatro formas de cumplir una política de mitigación DEP. Para visualizar la disponible en el sistema, ejecute el comando WMIC OS Get DataExecutionPrevention_SupportPolicy.
    • imageImagen 2: Comprobar la política del sistema soportada

    • El valor de retorno obedecerá a la siguiente tabla de datos indicando la configuración de DEP para el sistema:
  • image
    Imagen 3: Configuración de directiva DEP

  • Heapspray Allocations: Técnica de mitigación utilizada por EMET para alojar  en memoria páginas de uso frecuentes para prevenir exploit.
  • Null Page Allocation: Esta otra técnica de mitigación es parecida a Heapspray Allocations, ya que busca prevenir o evitar posibles problemas de eliminar referencia nulas en modo de usuario.
  • EAF (Export Address Table Access Filtering): Mediante esta técnica de mitigación se intentan prevenir los exploits que necesitan realizar llamadas a API específica en memoria.

Podéis encontrar un resumen de las seis mitigaciones disponibles en EMET a través del siguiente video de Microsoft, donde Fermín J. Serna (Software Development Enginner) y Andrew Roths (Security Developmet Lead) explican el funcionamiento da cada una de dichas mitigaciones. Fermín J. Serna es el principal responsable del desarrollo de EMET y ya en su día fue entrevistado por el Maligno. No te olvides de suscribirte al Canal RSS de Windows Técnico para mantenerte informado.

Una vez vistas las técnicas de mitigación de vulnerabilidades disponibles tan sólo nos queda utilizar la herramienta para proteger nuestras aplicaciones frente a cualquier tipo de ataque de desbordamiento de pila. Para ello, vamos a lanzar la aplicación con el fin de proteger nuestro navegador Internet Explorer frente a posibles ataques de desbordamiento de buffer.  Una vez ejecutada la herramienta, la interfaz gráfica nos proporciona la visualización de las técnicas de mitigación utilizadas por el sistema y por las aplicaciones así como la posibilidad de realizar una configuración personalizada.

imageImagen 1: Enhanced Mitigation Experience Toolkit

Configuración de Mitigación del Sistema

Para configurar la mitigación del sistema podemos proceder de dos maneras diferentes. La primera es utilizando uno de los dos perfiles de configuración disponibles (“Configuración de seguridad máxima” y “Configuración de seguridad recomendada”) y la segunda es establecer un perfil personalizado, estableciendo las opciones de mitigación de forma individual. En cualquier caso, las dos son accesibles a través del botón Configurar sistema (Configure System).

imageImagen 2: Configuración de la mitigación del sistema

Configuración de Mitigación de Aplicaciones

Para configurar la mitigación de las aplicaciones deseadas, en nuestro caso del navegador Internet Explorer, hemos de proceder a través del botón Configurar aplicaciones (Configure Apps). A través de este botón tan sólo hemos de buscar la aplicación a proteger en cuestión a través del botón Agregar (Add) y seleccionar las técnicas de mitigación que queremos utilizar en dicha aplicación, como podéis ver en la siguiente imagen. Para que los cambios configurados surjan efecto, seguramente se requiera reiniciar el sistema.

imageImagen 3: Configuración de EMET para Internet Explorer

En cuanto hayamos reiniciado el entorno, podemos comprobar como  la configuración realizada para Internet Explorer entra en funcionamiento. Para ello, tan sólo debe ejecutar el navegador y acceder a EMET para visualizar en la sección donde se monitorizan los procesos, aquellos asociados a Internet Explorer. Observe la columna denominada Ejecutando EMET (Running EMET) donde se indica que existe una configuración de mitigación para nuestro navegador.

imageImagen 4: Internet Explorer protegido con EMET

Recuerda que puedes encontrar más información de Internet Explorer 9 desde la página de descarga de la beta del producto.

Fuente: Windows Técnico

Share

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.