Inicio / Blog / Nuevas funcionalidades en EMET 4

Nuevas funcionalidades en EMET 4

Publicado el 13/06/2013, por INCIBE
Nuevas funcionalidades en EMET 4

Recientemente INTECO-CERT en colaboración con el CSIRT-CV publicó un informe titulado Detección de APTs en el cual se mostraban diversas técnicas utilizadas por ciberdelincuentes para comprometer empresas por medio de malware. En dicho estudio se reiteraba de forma constante el término Spear-Phishing attack al tratarse de la vía de entrada actualmente más utilizada para infectar equipos dentro de una organización.

De forma sencilla, esta técnica consiste en utilizar la ingeniería social para engañar al usuario por medio del correo electrónico. Quizás el ejemplo más representativo es el envío de un correo con una URL o adjunto malicioso y con un mensaje sugerente que incite a la víctima a abrir el mismo. En dichos correos suelen adjuntarse ficheros PDF, DOC, XLS, etc. los cuales tratarán de explotar alguna vulnerabilidad para ejecutar código dañino en el equipo. En el peor de los casos, contarán con 0-days los cuales ofrecerán más garantías de éxito para conseguir acceso a la máquina incluso aunque la víctima cuente con software correctamente actualizado.

El uso de encoders, packers y técnicas de ofuscación complican en numerosas ocasiones este tipo de amenazas para que puedan ser detectadas por los antivirus; es por este motivo por el que es recomendable contar con herramientas especializadas en la detección de exploits. De esta forma, sería posible detectar intentos de explotación de procesos (por ejemplo el navegador) que en otro casó no serían detectados por antivirus (téngase en cuenta que la mayor parte de antivirus analizarán ficheros en busca de firmas cuando éstos se escriben en disco).

Una de las herramientas más conocidas para frenar este tipo de ataques es EMET (Enhanced Mitigation Experience Toolkit), herramienta desarrollada por Microsoft que intenta reducir las probabilidades de que un atacante ejecute código malicioso a través en un determinado programa. La utilización de ficheros PDF maliciosos para comprometer equipos mediante ataques de phishing es un claro ejemplo de este hecho. Lo mismo con aplicaciones como Flash, Java, Firefox, Documentos de Office, etc. El uso de EMET puede ayudar enormemente a prevenir un gran número de ataques que tratan de aprovecharse de software inseguro y de configuraciones de seguridad débiles en los S.O. Algunos de los beneficios que nos ofrece EMET se describen a continuación:

  • Implementación de múltiples medidas de seguridad como DEP, ASLR, SEHOP, EAF, HSA, NPA, BUR sin necesidad de recompilar software.
  • Altamente configurable: las medidas de mitigación son muy flexibles, permitiendo aplicar las mismas en los procesos que se elijan. Esto implica que no hace falta implementar ciertas medidas de seguridad a todo un producto o un conjunto de aplicaciones (lo que podría generar problemas si un determinado proceso no soporta ciertas medidas de mitigación, por ejemplo aquellas que no soportan DEP)
  • Facilidad de uso y de despliegue: EMET dispone de una interfaz gráfica desde la que configurar todos los parámetros deseados, olvidándonos así de tener que modificar claves de registro a mano o cualquier otro tipo de configuración delicada. Además es fácilmente desplegable por medio de políticas de grupo y del System Center Configuration Manager.

Recientemente EMET ha publicado la versión 4 beta (la versión estable se publicará en los próximos días) donde a parte de las funcionalidades comentadas anteriormente incorpora las siguiente características de seguridad:

Emet Certification Pinning

  • Certificate Pinning: quizás una de las funcionalidades más significativas de esta nueva versión de EMET es el Certificate Trust (certificados de confianza). Mediante esta característica EMET nos permitirá especificar reglas mediante las cuales podremos indicar las CA (Certification Authorities) asociadas a un sitio SSL/TSL. Hechos bien conocidos como los de Cómodo o Diginotar demostraron que la infraestructura PKI no presenta una arquitectura de seguridad lo suficientemente fiable al depositar la confianza en un elevado número de entidades cuyas políticas de seguridad no son lo robustas que deberían. EMET trata de limitar dicha confianza permitiendo elegir al usuario la asociación de un certificado X509 con la autoridad certificadora de su elección. En la siguiente imagen se muestra una pin rule en la cual se asocia el dominio login.live.com con la CA VeriSign. Cualquier certificado utilizado por Internet Explorer para "login.live.com que se origine a partir de una CA raíz diferente de la configurada en dicha regla será detectada por EMET y reportada como sospechosa.
  • Mitigaciones ROP:

    una de las técnicas de exploiting más utilizadas para evadir DEP y ASLR son los ROP gadgets. La idea de esta técnica es buscar determinados sets de instrucciones en memoria (por ej. dlls) que puedan ser utilizadas para llamar a ciertas APIs de Windows con las que eludir DEP. Este set de instrucciones debe acabar en una instrucción de tipo RETN para poder enlazar cada uno de los gadgets que se vayan construyendo. Puesto que DEP impide ejecutar código desde la pila, únicamente almacenaríamos en la pila las direcciones de cada uno de estos gadgets. De esta forma, jugando con las instrucciones RETN y las direcciones alojadas de la pila, podríamos ejecutar código fuera de la misma. Por ejemplo, si fuera posible encontrar ciertos gadgets para llamar a la función VirtualProtect(), quizás podría cambiarse el tipo de acceso a cierta página de memoria, marcándola como ejecutable, y posteriormente alojar cierto shellcode en dicha página. Si en lugar de VirtualProtect(), pudiéramos construir gadgets para llamar a la función SetProcessDEPPolicy() sería posible desactivar DEP para el proceso actual y ejecutar código desde la pila. La siguiente imagen muestra un ejemplo de Rop chain generado por el script Mona.py a partir de MSVCR71.dll para llamar a VirtualAlloc().

    ROP Gadgets

    La nueva versión de EMET ha mejorado la detección de este tipo de ataques. Además, podrá reportar información sobre los mismos a Microsoft por medio del canal habitual de reporte de errores (Windows Error Reporting channel) con el objetivo de analizar e investigar posibles 0-day así como nuevas técnicas de explotación.

  • Modo auditoría: si se detecta una vulnerabilidad, EMET no matará el proceso afectado si no que reportará dicho ataque y dejará que continúe. Este modo sólo es aplicable únicamente a determinadas medidas de mitigación, como por ejemplo los relacionados con los ataques que empleen ROP gadgets como los vistos anteriormente. Con esta funcionalidad se evitarían falsos positivos que generar cierres inesperados de las aplicaciones y que interferirían con la experiencia del usuario.

Para utilizar EMET únicamente lanzamos su interfaz gráfica y seleccionamos los procesos así como las medidas de mitigación que queremos implementar. Como se observa en la siguiente figura, EMET dispone de dos grupos de configuración. Por un lado aquellos parámetros que afectan al propio sistema y por otro, los que queremos aplicar al software que elijamos. Es importante señalar que EMET es dependiente totalmente del sistema operativo en el que se instale, lo que implica que sobre una máquina Windows XP algunas de las medidas de seguridad como SEHOP o ASLR (las mostradas en el System Status) no estarán disponibles.

Configuración EMET

Desde la versión 3 de EMET, podemos aplicar esta configuración mediante la importación de perfiles de protección (protection profiles). Éstos, no son más que ficheros xml donde se define la ruta de los ejecutables que deseamos proteger; opción bastante útil para portar configuraciones de un equipo a otro. En la siguiente figura se muestra como proteger la suite de Microsoft Office mediante el fichero de configuración Office Software.xml

Templates EMET

Para entender algunos de los conceptos descritos en este articulo recomendamos la lectura del informe publicado por INTECO-CERT Software exploitation.

Etiquetas: