Incident Response, Security and Forensics"

.

miércoles, 6 de marzo de 2013

Indicadores de compromiso ante una intrusión (IOCs), RedLine, Mandiant y APT1

Hola lectores,

Quizá soy el último en hablar del informe MANDIANT  y a raíz de los comentarios de los maestros Jose SelviDavid Barroso y mi queridísimo Chema y sin entrar en detalles dado que ellos lo han definido y comentado perfectamente, voy a dar una visión sobre 'como esta haciendo el Gobierno de EEUU para la detección de esta y otras intrusiones'. 

El gobierno Americano dice que el informe MANDIANT y lo ocurrido es un  'pearl harbor' cibernético y el número de ordenadores y servidores comprometidos en grandes empresas y sitios gubernamentales es muy grande, para ello han tenido que pedir ayuda a agencias de investigación, empresas dedicadas al análisis forense y respuesta ante incidentes.

Un colega americano comentaba esta madrugada que lo descubierto hasta ahora, es mucho malware mejorado de lo antiguo y que los antivirus son testigos mudos de como la industria del malware vence una y otra vez. Que han encontrado sistemas de control remoto y aplicaciones que 'roban' documentos del tipo 'office' y que los laboratorios a día de hoy están 'a tope' de trabajo y que muchas muestras son idénticas en funcionamiento por lo que parece ser que se han basado en una arquitectura común en el método de infección de un ordenador.

También ha indicado, que dado que son muchos los analistas de distintas empresas los que están involucrados han empezado a aplicar múltiples indicadores de compromiso para evaluar el índice de penetración de los piratas analizando artefactos de Windows y la memoria RAM y virtual de los sistemas.

Efectivamente uno de los problemas que tenemos los equipos de investigadores, es que nos encontramos con muestras que muchas veces ya han sido analizados por otros compañeros y como no hay una comunicación fluida acabamos haciendo el trabajo dos veces. Los indicadores de compromiso, es una forma efectiva de tener (o no) una sospecha de un malware o proceso infectado.

Estos indicadores, son un sistema muy interesante y que a raíz del comentario de este colega quiero explicaros de que va. Para ello vamos a utilizar diversas utilidades de la empresa MANDIANT que por cierto colabora con el Presidente Obama para la detección de estos últimos incidentes que ha ocurrido.

MANDIANT

Hablar de la empresa MANDIANT es hablar del concepto Respuesta ante Incidentes y Forensics en estado puro. Mandiant, es una empresa de seguridad ubicada en Alexandria en Virginia y es creadora de múltiples herramientas comerciales y gratuitas. Muchas de ellas son buenas y potentes y porque no decirlo, me han salvado la vida en mas de una ocasión como ya habréis visto en diversos artículos de este blog.

Esta empresa viendo los incidentes de sus clientes en cuanto a intrusiones se refiere, diseñó un framework con objeto  de documentar las características técnicas que identifican a una amenaza conocida, la metodología que utiliza un atacante, o cualquier otra prueba de compromiso en un sistema o aplicación. A este framework le han llamado OpenIOC que viene a decir Framework abierto de indicadores de compromiso.

OPENIOC

OpenIOC fue originalmente diseñado para permitir que sus productos pudieran de una forma  rápida e inteligente buscar potenciales fallos de seguridad y así lo integraron en toda su gama.  Con el paso del tiempo han liberado este framework en formato de código abierto que utiliza el esquema OpenIOC liberando herramientas y utilidades para permitir la comunicación de información.

Este framework permite preparar y agrupar de forma inteligente, (basado en los propios indicadores de compromisos de Mandiant) los ficheros, registros, servicios y procesos, haciendo eco en las posibles actuaciones de un atacante.

También si compartimos los indicadores de compromiso podemos detectar malware o algo inusual sin que tengamos que realizar un exhaustivo análisis forense de un sistema y trabajar dos veces en una muestra.

Veamos como funciona.

OpenIOC se compone de dos aplicaciones:

  • IOC_Finder: Esta utilidad recopila en diversos ficheros una auditoria completa del sistema sospechoso, basado en partes del registro, ficheros, servicios y procesos de la memoria. Una vez obtenido permite la generación de informes tan solo con cambiar un parámetro.
  • IOC_Editor (IOCe): Como su nombre indica es un editor gratuito para editar y crear los Indicadores de compromiso (IOCs). Estos son documentos XML que permiten ayudar a los analistas a capturar información diversa sobre las amenazas, incluidos los atributos de software malicioso en archivos, características de los cambios en el registro, los artefactos en la memoria, etc. IOCe proporciona una interfaz gráfica en la gestión de estos datos.
Ambos programas se pueden descargar desde la web OpenIOC en Mandiant aquí

RECOPILANDO INFORMACIÓN.

Para ver el funcionamiento vamos a instalar un malware que simula ser una versión mejorada y troyanizada del informe APT1 y que ha sido descubierto por Brandon Dixon y publicado en la web de Mandiant.  Una vez ejecutado nos muestra la siguiente pantalla:


Tras poner la contraseña "hello" explota la vulnerabilidad modificada y mejorada del  'CVE-2011-2462' que salió en diciembre de 2011.

No voy a entrar en detalles de que hace el malware, para ello tenemos un extenso documento aquí que explican el funcionamiento, ya que nuestra función es como aplicar indicadores ante un nuevo malware o intrusión.

Una vez que tenemos a mano las máquinas infectadas procedemos a utilizar las herramientas.

Para ello ejecutamos el siguiente comando:

C:\>mandiant_ioc_finder.exe collect

El cual empezará el proceso de obtención de datos. Esta ejecución durará posiblemente bastante rato (entre una o dos horas, dado que realiza un hash de todos los ficheros que está revisando), así que hay que armarse de paciencia. En diversos foros se cuenta como reducir el tiempo a cambio de quitar los hash, cosa imprescindible si lo que quieres es rapidez.

Obtención de datos

Una vez finalizado, el proceso habrá creado un directorio de nombre 'audits' que contiene un subdirectorio con el nombre de la máquina y que a su vez contiene unos 50 ficheros XML con los parámetros a utilizar. Este directorio es el resultado de unas veinte auditorias. De esta forma ya tenemos preparado lo que hay que revisar para poder pasar los indicadores de compromiso.

Contenido del directorio audits

Bien en este punto vamos a aplicar los indicadores de compromiso que nos van a permitir detectar malware  o una intrusión aún cuando los antivirus no lo hagan, pero antes vamos a entrar de lleno en el indicador de compromiso.

IOC (INDICADOR DE COMPROMISO)

Como decía un indicador de compromiso es un fichero XML que contiene los parámetros que definen si hay o no un posible compromiso y con que valor se asigna en cuanto a su probabilidad.

La estructura de uno de ellos viene a ser así:

Estructura

Y para manejarnos de una forma mas cómoda podemos utilizar IOCe que es el editor de indicadores. Si abrimos un fichero '.ioc' con el editor lo vemos de esta forma:

Editor de IOCs

AÑADIENDO MI INDICADOR DE COMPROMISO

Vamos a suponer que hemos detectado un patrón de compromiso que viene a decir lo siguiente:
  • El atacante utiliza la cuenta: sip
  • El dominio infectado es: www.premiosorg.org
  • El ejecutable 'dudoso' es: armada.tmp
  • El proceso es: lsass.exe
Para ello vamos a utilizar IOCe que es el editor de Indicadores, una vez ejecutado nos vamos a nuevo y creamos un nuevo indicador, el resultado se vería tal que así:

Creación de un Indicador

Una vez que hemos cargado o creado indicadores de compromiso es hora de generar un informe en la máquina con los datos que anteriormente hemos obtenido.

INFORME DE SISTEMA COMPROMETIDO

Para ello vamos a ejecutar el siguiente comando:

C:\>mandiant_ioc_finder report -s ./audits -i c:\IOC -t html

En el que le decimos que genere un informe tomando como origen los ficheros XML de la carpeta 'audits' y tomando los indicadores de compromiso de la carpeta IOC. También el parámetro -t le indica que el resultado del informe esté creado en HTML.

Creación del informe

Una vez finalizado (también hay que armarse de paciencia) nos habrá generado un informe en el que podemos ver los procesos o ficheros que son sospechosos que coincide con algunos de nuestros IOC.

Resultado del informe


GENERANDO INDICADORES DE COMPROMISO CON REDLINE



La parte de informes la prefiero mostrar utilizando Redline que además de ser otra herramienta de Mandiant, permite entre otras cosas analizar la memoria y mostrar qué proceso o fichero tiene más posibilidad de ser malware y cuál menos, contando puntos MRI (Malware Risk Index). Podríamos decir que es como Volatility pero con un entorno gráfico.

Otra de las ventajas es que permite crear un agente con objeto de llevarlo en un 'pendrive' o distribuirlo en un entorno de red y así obtener los resultados para posteriormente analizarlos. Permite crear IOCs o bien crear informes partiendo de ellos.

Lo mejor es verlo en un vídeo que he preparado a tal efecto, como podréis apreciar y tras cargar una sesión ya almacenada, Redline marca en color rojo los procesos de los que son sospechosos de malware, puntuando con un 98 el MRI.   A continuación creamos un informe basado en IOCs dando el origen de la carpeta que los contiene. Una vez cargado los IOCs abrimos el editor con objeto de ver el contenido del IOC y generamos el informe.


Vídeo del proceso de informes IOCs con Redline

Una vez finalizado podemos navegar en HTML por el proceso que ha sido detectado por el indicador de compromiso.

CONCLUSIONES

Hay que pensar que no es una herramienta 'al estilo' al que estamos acostumbrados en la detección de intrusiones, pero cumple todas las expectativas cuando se necesita analizar muchos sistemas en base a patrones. Yo lo definiría como un escaner forense en el que la comunidad (basándose en un estándar como OpenIOC) comparte sus patrones de búsqueda y que permite que un analista no haga el trabajo dos veces cuando otro lo ha realizado ya.

Evidentemente hecho en falta una automatización a la hora de desplegar agentes en grandes redes  y una gestión centralizada de estas, ya que de momento estos procesos son manuales. También hay que entender que Mandiant tiene su propia aplicación comercial (MIR) y que evidentemente no va a sacar un producto que compita consigo mismo.

No obstante con las aplicaciones que disponemos, un poco de imaginación mas la utilización de Active Directory con PowerShell, se puede llegar a un nivel de automatización mas que aceptable. El disponer de un sistema abierto como OpenIOC permitirá en un futuro disponer de herramientas que independientes del antivirus detecten patrones de ataque que estos no lo detectan.

La utilidad Redline es una gran herramienta a lo 'Volatility'  pero con las ventajas de un entorno gráfico, en la que destaco su paseo guiado o saber que es lo primero que tenemos que mirar. Redline calcula un "índice de malware de riesgo" que pone de relieve los procesos que merecen la pena investigar, vaya una joya la verdad.

Desde aquí os animo a que podáis empezar o seguir desarrollando con este apasionante tema de los Indicadores de compromiso.

2 comentarios:

Muy interesante el artículo Pedro. Una pregunta, ¿los indicadores de compromiso te los has hecho tu, o se pueden bajar unos "genéricos" (para las amenazas mas típicas) de alguna parte?

Saludos.

Hola podrías decirme en que foros se encuentra la información para acelerar el ioc_finder collect eliminando los hashs de todos los archivos