EMET 5.5 sí es necesario en Windows 10, Microsoft confunde a los usuarios

martes, 9 de febrero de 2016

Aunque EMET 5.5 ya lleva unos meses "en circulación" hace solo unos días se ha hecho oficial. Las novedades ya las discutimos, pero esta vez llama la atención el hecho de cómo lo han anunciado. EMET es absolutamente imprescindible en cualquier sistema Windows hoy día. Sin paliativos. Si han querido suavizar el mensaje, es por vender las bondades y mejoras de Windows 10 y Edge en cuestión de seguridad. Si bien son innegables, el mensaje lanzado llega a hacer pensar que Windows 10 es tan seguro que EMET no es necesario en él y así se está reproduciendo en titular en los medios. Esto no es cierto. Veamos por qué.

EMET es una herramienta que hace fundamentalmente cuatro cosas:
  • Sirve para hacer certificate pinning en Internet Explorer, que no lo soporta de serie. No es el mejor pinning del mundo (de hecho es bastante limitado), pero es lo mejor que tiene Microsoft de forma nativa al respecto.
  • Mitigar ataques habitualmente usados para permitir que los exploits o payloads funcionen. Esto incluye ataques ROP y sus variantes, contra algunos aspectos de ASLR, ataque de carga de librerías remotas… etc. Además, fuerza el uso de mitigaciones en binarios que no lo han solicitado explícitamente durante la compilación (como ASLR y DEP) etc.
  • Facilitar el uso, puesto que todas estas implementaciones y despliegues de mitigaciones, en algunos casos, requerirían tocar el registro en diferentes puntos. Con EMET se unifica todo en una sola interfaz.
  • Por si fuera poco permite implementar mitigaciones que de otra forma no podrían realizarse en Windows, como el Attack Surface Reduction, por ejemplo.

 ¿Qué dice Microsoft? 

Según la presentación de hace unos días (aquí):
  1. With Windows 10 we have implemented many features and mitigations that can make EMET unnecessary on devices running Windows 10. EMET is most useful to help protect down-level systems, legacy applications, and to provide Control Flow Guard (CFG) protection for 3rd party software that may not yet be recompiled using CFG.
  2. Some of the Windows 10 features that provide equivalent (or better) mitigations than EMET are: “Device Guard. Control Flow Guard (CFG) and Applocker
  3. Given the advanced technologies used to protect Microsoft Edge, including industry leading sandboxing, compiler, and memory management techniques, EMET 5.5 mitigations do not apply to Edge."

Estas afirmaciones necesitan tantos matices (y una incluso es directamente un error), que iremos por partes.


¿Qué no dice Microsoft o por qué es matizable?

Afirmación 1): Es cierto que Windows 10 mejora mucho la seguridad introduciendo funcionalidades muy interesantes. Sin ir más lejos, la posibilidad de bloquear la carga de tipos de letra no fiables (algo muy usado en ataques) solo funciona en ese sistema operativo. Y Control Flow Guard, también funciona solo en Windows 10. Pero para que CFG funcione en Windows 10 y efectivamente proteja de las técnicas de exploiting, no solo el sistema operativo debe soportarlo sino que también las aplicaciones deben estar compiladas para hacerlo. Exactamente igual que ASLR y DEP. Se afirma que "and to provide Control Flow Guard (CFG) protection for 3rd party software that may not yet be recompiled using CFG. Pero EMET no permite proteger ejecutables para que, aunque no nativamente compilados para ellos, se cobijen bajo el paraguas de CFG y sean más complejos de explotar en Windows 10 en caso de vulnerabilidad. De hecho, EMET no tiene nada que ver con CFG. Lo que sí es cierto es que EMET está compilado con CFG para animar a terceros a que hagan lo mismo. En resumen, se han equivocado. Esta imagen lo resume. En la primera, de este año, se afirma algo incorrecto.

En esta segunda, de presentación de la Beta en octubre, se dice de forma correcta.


Durante la redacción del comunicado de prensa, parece que en algún momento alguien se equivocó. La presentación de la beta de EMET 5.5 sí es correcta. EMET puede servir para ofrecer una mejor protección anti-ROP a aplicaciones que todavía no están compiladas con CFG.

Como curiosidad adicional, ¿cuántos ejecutables de Windows 10 vienen compilados con CFG? Muchos. Con ayuda de un pequeño script hemos podido comprobar que la inmensa mayoría de binarios iportantes en Windows así están compilados. Pero ¿qué pasa con otras aplicaciones muy comunes? Lo cierto es que solo hemos encontrado una aplicación de terceros popular que esté compilada para usar CFG… Flash. Curioso.



Por tanto, la inmensa mayoría del software común no está compilado para usar CFG (y pasará tiempo hasta que lo hagan, igual que ocurrió con ASRL y DEP).  Así que EMET sigue siendo la mejor alternativa antiexploit para ellos... incluso en Windows 10.


Afirmación 2): Se dice que Windows 10 dispone de funcionalidades mejores o equivalentes a EMET como Device Guard, CFG y AppLocker. Esto es comparar huevos y castañas. Device Guard es una especie de AppLocker muy avanzado, e impide la ejecución de software desconocido. ¿Qué tiene eso que ver con la mitigación de exploits? Nada. De CFG ya hemos hablado, y efectivamente, como técnica antiexploit puede ser muy interesante y superior a lo que ofrece EMET, pero hasta que el software popular la adopte, solo tenemos las técnicas anti-ROP de EMET. AppLocker, por su parte, fue introducido en Windows 7 hace siete años, y no ha gozado de gran popularidad desde que se lanzó, aunque es una buena herramienta para seleccionar exactamente qué ejecutar y qué no en entornos muy restrictivos. No tiene nada que ver con EMET, y no son funcionalidades ni mejores ni equivalentes, simplemente incomparables.

Afirmación 3): Edge mejora mucho la seguridad de Internet Explorer. Usar AppContainers para aislar los procesos lo pone a la altura de Chrome en su tecnología de sandboxing (aunque está por ver que lo supere). Es cierto que AppContainers se puede utilizar con Internet Explorer (lo que ocurre es que nadie lo hace), y esto aumenta su seguridad enormemente. Afirman que Edge implementa de serie todas las mejoras que impone EMET. A falta de un estudio más riguroso, esto estaría por demostrar. Además, se dan dos situaciones paradójicas:
  • Es más que probable que alguien eluda la sandbox de Edge en un futuro, como ocurre de vez en cuando con todas. En ese caso… echarán de menos a EMET, que es la herramienta que siempre se ha recomendado para cuando precisamente se den estas situaciones.
  • Al no permitir que Edge aproveche la parte de certificate pinning de EMET… el navegador se queda sin HPKP ni Certificate Transparency… no ofrece tecnología nativa para implementar certificate pinning. Con lo que se convierte en un navegador muy seguro pero con pocas funcionalidades relativas a los certificados.

Conclusión

Las palabras del anuncio por equivocación u omisión, confunden al usuario (para que su percepción de Windows 10 mejore), haciéndole pensar que Windows 10 (y en concreto Edge) es tan seguro que EMET no sería necesario y que por sí mismo contiene grandísimas mejoras de seguridad. Y es cierto: Windows 10 contiene grandísimas mejoras en seguridad, pero EMET es igual de necesario para proteger no solo el sistema en sí, sino todas las aplicaciones en él. Y esto no es ni bueno ni malo, pero inducir al usuario a pensar lo contrario, es contraproducente.

Creemos que se envía además un claro mensaje oculto en este anuncio, que es más un deseo futuro que una realidad hoy por hoy: es evidente desde hace tiempo que toda la tecnología de mitigación de EMET será incorporada al sistema operativo poco a poco… cada vez parece más claro que EMET es el laboratorio en el que Windows experimenta antes de pasar las técnicas al propio sistema operativo, y que probablemente esta será la fórmula en la que EMET será introducido poco a poco de forma nativa en el los sucesivos Windows, no como aplicación de serie. No se sabe. Pero todavía queda camino por recorrer para que EMET sea de verdad recomendable solo en ciertos sistemas Windows.

Sergio de los Santos
ssantos@11paths.com

2 comentarios:

  1. Muchas gracias por la info Sergio! Saludos!

    ResponderEliminar
  2. las cosas han cambiado con 1607 y 1703
    https://blogs.technet.microsoft.com/askpfeplat/2017/04/24/windows-10-memory-protection-features/

    ResponderEliminar