Módulo 4.
2
Análisis de Datos II
Curso de Respuesta a incidentes
1
INVESTIGACIÓN DE APLICACIONES
Introducción
En este módulo vamos a ver como no todos los artefactos que podamos encontrar durante una
investigación pertenecen al sistema operativo.
Las aplicaciones de usuario como son navegadores, clientes de correo, suites ofimáticas y
programas de comunicación como Skype almacenan datos que pueden ayudarnos en el
transcurso de nuestros hallazgos, de ahí la importancia de poder entender como analizar estas
evidencias.
2
INVESTIGACIÓN DE APLICACIONES
¿Qué son los datos de aplicación?
Los datos que se crean, almacenan o mantienen en una aplicación se consideran aplicaciones de
datos. Hay muchas formas diferentes de almacenar y representar los datos en una aplicación. Algunas
aplicaciones mantienen la forma en la que guardan los datos mientras que otras pueden variarlas a
conveniencia.
En general no hay un único estándar o patrón definido para conocer si un aplicativo mantiene la forma
de guardar los datos.
Debido a esto, las herramientas y métodos para investigar aplicaciones también pueden cambiar
dramáticamente con el tiempo. No podemos predecir cómo serán las aplicaciones en el futuro, este
capítulo cubre métodos genéricos de investigación de aplicaciones, además de detalles sobre
aplicaciones específicas.
Echemos un vistazo rápido a dónde están los datos de la aplicación almacenado, y luego cubriremos
los métodos generales.
3
INVESTIGACIÓN DE APLICACIONES
¿Dónde están almacenados los datos de la aplicación?
Cuando comenzamos a examinar un sistema para buscar datos de la aplicación es posible
que nos preguntemos por dónde empezar.
¿Cómo saber qué aplicaciones están instaladas en el sistema y donde se encuentran
los datos relacionados?
A pesar de que las aplicaciones pueden almacenar datos en ubicaciones personalizadas, la
mayoría de los sistemas operativos tienen una convención. Conocer estas convenciones
puede ser de ayuda para descubrir rápidamente donde están.
En las siguientes secciones propondremos algunos consejos que nos ayudarán a localizar los
datos de las aplicaciones en Windows, Linux y MacOS.
4
INVESTIGACIÓN DE APLICACIONES
¿Dónde están almacenados los datos de la aplicación? – Microsoft Windows
5
INVESTIGACIÓN DE APLICACIONES
¿Dónde están almacenados los datos de la aplicación? – macOS / OS X
6
INVESTIGACIÓN DE APLICACIONES
¿Dónde están almacenados los datos de la aplicación? – GNU / Linux
Los gestores de paquetes ayudan a consultar dónde están este tipo de datos de aplicación.
Las distribuciones basadas en el gestor RPM (RedHat, CentOS, OpenSUSE, Fedora, etc.) usan un
sistema de paquetes llamado “rpm”.
Para consultar donde se instalan los paquetes ejecutamos:
$ rpm –qa –queryformat
En distribuciones basadas en Debian ejecutamos:
$ dpkg –get-selections
7
INVESTIGACIÓN DE APLICACIONES
Métodos generales de una investigación
¿Qué queremos decir cuando hablamos de "investigar una aplicación"?
La respuesta es determinar qué artefactos crea una aplicación que podrían ser útiles para la
investigación.
Si una aplicación no está bien documentada, tendremos que realizar nuestra propia investigación
para determinar qué artefactos pueden ser útiles y cómo interpretarlos.
Es conveniente mirar primero que recursos tenemos a nuestra disposición en la comunidad forense
para empezar a investigar.
Por ejemplo, si tenemos que examinar una aplicación cuyos desarrolladores han pedido ayuda en
algún foro puede sernos de gran ayuda consultar las respuestas.
Pero sobre todo, antes de adentrarnos en la propia investigación, debemos asegurarnos que las
herramientas que vamos a utilizar soportan los datos de aplicación que estemos interesados. Dos
de ellas, EnCase y FTK, lo hacen seguramente sin problemas.
8
INVESTIGACIÓN DE APLICACIONES
Métodos generales de investigación
Vamos a tener una visión de alto nivel antes de profundizar y luego veremos ejemplos:
• Configurar un entorno:
Tendremos que que configurar un entorno para realizar nuestra investigación. Al igual que cuando
examinamos malware, es probable que tengamos que volver a ejecutar con frecuencia las pruebas.
Necesitaremos una máquina virtual y tomar respectivos "snapshots" para no tener que repetir todos
los pasos una y otra vez.
• Obtener la aplicación:
Si todavía no tenemos una copia de la aplicación, debemos conseguirla. Si el software está
disponible gratuitamente, descargaremos una copia. En algunos casos los fabricantes ofrecen
versiones de prueba o demostración de su software comercial.
• Configurar software de instrumentación:
Software de instrumentación son aquellas herramientas que nos ayudan a identificar artefactos. En
Windows el monitor de procesos, en OS X tenemos el comando “dtruss” y en GNU/Linux podemos
hacer uso de “strace” para identificar las llamadas al sistema de un proceso.
9
INVESTIGACIÓN DE APLICACIONES
Métodos generales de investigación
• Realizar instalaciones de software:
Lo haremos para comprobar como el proceso de instrumentación nos permite identificar artefactos
que sólo se crean mientras se instalan aplicaciones, igual que ocurre al ejecutar aplicaciones
mientras estamos monitorizando con las herramientas de instrumentación
• Revisar y ajustar los datos obtenidos:
Conviene aplicar filtros para no tener datos innecesarios en pantalla y ganar productividad; por
ejemplo, buscando procesos.
“Snapshots”: en inglés “instantáneas”, se refieren a la grabación de momento preciso en el que se encuentra
un sistema.
Nos permite recuperar el estado puntual del mismo sin tener que volver a realizar pasos anteriores.
10
INVESTIGACIÓN DE APLICACIONES
Métodos generales de investigación – Ejemplo
Escenario:
Encontramos a nuestro atacante usando la interfaz gráfica PuTTY para conexión por SSH.
Encontramos un fichero Prefetch para la entrada del binario, pero la aplicación no duró mucho
tiempo en el sistema; el atacante debió utilizarla para conectarse a algún servidor GNU/Linux.
¿A qué servidores se ha conectado el atacante? Vamos a recrear el proceso y ver que nos
podemos encontrar a nivel de artefactos que nos ayuden a contestar a la pregunta.
11
INVESTIGACIÓN DE APLICACIONES
Métodos generales de investigación – Ejemplo
Ingredientes:
• Una máquina virtual con XP preparada con el monitor de procesos.
• Copia de putty.exe configurada para ser monitorizada por dicho monitor de procesos.
• Realizar el login en el servidor haciendo doble click, esperar un tiempo y desconectar.
• Parada del monitor de procesos.
Veremos que han sido generados muchos eventos y producto de nuestra criba hemos visto un
artefacto en el registro que establece una clave que apunta a una ruta absoluta.
Esto sugiere que “HKCU\Software\SimonTatham\PuTTY\SshHostKeys\rsa2@22:10.8.0.122” tenemos
una IP del hosts de conexión.
Con este ejemplo aunque sea sencillo intuimos la idea del proceso general de
investigación.
12
INVESTIGACIÓN DE APLICACIONES
Métodos generales de investigación - Artefactos en navegadores web
A lo largo del proceso de envío, recepción, proceso y presentación de datos el navegador crea
artefactos en un sistema.
Prácticamente todos los navegadores web mantienen los siguientes artefactos:
• Historial
Al visitar sitios web, un navegador normalmente registrará el “Uniform Resource Locator” (URL) al que
accedió, así como la fecha y hora.
• Ficheros en caché
A medida que accedemos a los sitios, el navegador almacenará copias locales de datos.
Esto se usa para acelerar el proceso de navegación porque algunos elementos se usan repetidamente
en un solo sitio o en varios sitios.
La cantidad predeterminada de la memoria caché guardada varía según el navegador y puede ser
modificada por el usuario.
• Cookies
Las cookies son pequeñas porciones de información que un sitio puede enviar a su navegador. Se
usan comúnmente para guardar las preferencias del sitio y mantener información de la sesión.
13
INVESTIGACIÓN DE APLICACIONES
Métodos generales de investigación - Artefactos en navegadores web
En las siguientes tablas mostramos ubicaciones y formato de los datos de los navegadores más
comunes.
14
INVESTIGACIÓN DE APLICACIONES
Métodos generales de investigación - Artefactos en navegadores web
En las siguientes tablas mostramos ubicaciones y formato de los datos de los navegadores más
comunes.
15
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Seguridad, documentación, distribución y acceso a sitios maliciosos.
En este capítulo vamos a cubrir aspectos básicos en el tratamiento de malware incluyendo seguridad,
documentación, distribución y acceso a sitios maliciosos.
Seguridad
• Usar entornos virtuales para el tratamiento de malware. En ningún caso exponer el fichero
sospechoso en el sistema principal.
• Cargar en dicho sistema las herramientas necesarias y una vez aislado (deshabilitando
funcionalidades que interactúen con el sistema principal, creando redes aisladas, etc.… ).
• Realizar un “snapshot” en cada paso que desarrollemos datándolo con fechas y tiempos.
• Aplicar actualizaciones en el sistema virutal, mantenerlo actualizado.
• Tratar el análisis con cuentas de usuario no privilegiadas
• Añadir sufijo a extensiones ejecutables: .exe[sufijo]
• Cifrar las muestras de malware y comprimirlas.
• Almacenar el malware a tratar en carpetas que no tengan permisos de ejecución.
16
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Seguridad, documentación, distribución y acceso a sitios maliciosos
Documentación
El proceso de documentar debe ser metódico y minucioso, estos puntos pueden ser útiles:
• Etiquetar el sistema operativo implicado y el nivel de parches hasta ese momento
• ¿Cómo hemos identificado el fichero? ¿ Puede un antivirus haber marcado como sospechoso el
binario o tenemos que hacerlo manual?
• Incluir firmas hash para identificar al fichero original. ¿Han sufrido cambios?
• Incluir historial de línea de comandos que fueron identificados en la investigación
• Catalogar si el malware incluye persistencia y que mecanismos sigue para conseguirla
• Crear líneas de tiempo de ficheros accedidos, modificados, ejecutados
• ¿Tenemos sin identificar alguna evidencia?
Algunas de estas preguntas pueden parecer no relacionadas o demasiado simplistas pero
proporcionan hechos contextuales que ayudan a determinar el análisis del malware.
En algunos casos estos hechos pueden reducir en gran medida el tiempo en el tratamiento del
malware.
Es un error no llevar la documentación en tiempo real de investigación.
17
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Seguridad, documentación, distribución y acceso a sitios maliciosos
Distribución
Algunas organizaciones, en muchos casos gubernamentales, proporcionan rutinariamente
información de malware como parte de programas de intercambio de información, no solo a los
proveedores de antivirus sino también a otras partes de confianza o incluso en sitios web públicos.
Cuando estemos en medio de una crisis buscando respuestas, es difícil resistirse a acudir a buscar
ayuda de terceros y compartir con ellos el malware que nos afecta.
En muchos casos no hay elección, pero deberíamos considerar las posibles consecuencias
negativas de proporcionar malware a cualquier persona externa a nuestra organización.
• En ataques dirigidos el malware puede contener información que identifique a nuestra
organización. Dicha información pueden ser usuarios y/o contraseñas necesarios para
autenticar contra su proxy inverso, por ejemplo.
• Si un antivirus u otro proveedor de seguridad crea una firma o contramedida que se
implementa automáticamente, esto interrumpirá nuestra investigación o plan de
contingencia.
18
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Seguridad, documentación, distribución y acceso a sitios maliciosos
Distribución (continuación)
• La mayoría de las contramedidas de proveedores de seguridad que se centran en piezas
individuales de malware que solucionan de forma parcial el problema y como consecuencia,
pueden alertar al creador del malware.
• Si se alerta a los atacantes puede ser que tomen medidas destructivas contra su organización lo
que nos lleva a realizar la siguiente pregunta:
• ¿Tiene nuestra organización planes de recuperación ante desastres y éstos son efectivos en las
pruebas realizadas?
19
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Entorno de tratamiento de malware
Configuración del entorno virtual
El primer paso para configurar un entorno virtual es seleccionar la tecnología
de virtualización que vamos a usar.
Hay gran cantidad de productos, tanto gratuitos como de pago. Suministradores como VMware,
Microsoft, Parallels, Citrix y Oracle tienen varias ofertas de virtualización.
Algunas soluciones requieren hosts dedicado, nosotros preferimos usar VMware Workstation porque
proporciona un buen equilibrio entre funciones útiles y costes.
20
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Algunas razones para elegir una buena virtualización:
• Soporte para versiones modernas y antiguas de sistemas operativos.
• Soporte para diferentes arquitecturas (por ejemplo, x86 y ARM).
• Soporte de instantánea para que los cambios pueden revertirse fácilmente.
• Mecanismos de protección para que las máquinas virtuales infectadas no pueden causar daños
fuera del entorno virtual, como redes aisladas.
• Funciones prácticas como métodos sencillos para transferir archivos entre el host y huésped.
Solo debemos usar tales funciones mientras la máquina está en un estado inicial.
21
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Entorno de tratamiento de malware
Configuración del entorno virtual
Para analizar malware tenemos que crear un estado inicial de diversas máquinas virtuales.
Recomendamos tener un Windows XP / Windows 7 actualizado con parches y captadas respectivas
instantáneas para poder empezar el análisis estático y el análisis dinámico del malware en cuestión.
Análisis estático
Durante esta fase analizamos piezas de malware sin ejecutar una sola línea de código.
El trabajo se realiza que se realiza normalmente consiste en ver rápidamente como actúa el malware
mediante herramientas que tengamos a nuestra disposición.
Las herramientas “IDA” o “PEiD” son buenos ejemplos a la hora de identificar comportamientos
mediante desensamblado de código, identificación del punto de entrada del programa, si está
empaquetado, cifrado, etc.
Una rutina que tendremos que hacer frecuentemente es identificar ficheros conociendo su cabecera.
Dicha cabecera más conocida como “magic bytes” no son más que bytes que identifican al fichero.
En las siguientes secciones veremos ejemplos de algunos análisis estáticos que podremos hacer para
ilustrar esta sección.
22
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Entorno de tratamiento de malware
Análisis estático
Abajo en la imagen podemos ver PEiD con un fichero cargado donde identifica el tipo de ejecutable
detectado, punto de entrada y alguna información más que podemos extraer con el fin de conocer si
está empaquetado y con que “packager” o empaquetador.
23
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Entorno de tratamiento de malware
Análisis estático (continuación)
También vemos también como carga y desensambla ficheros con la herramienta IDA versión
gratuita.
IDA cuenta con amplias herramientas y “plugins” que permiten dar uso depurando en local o en
remoto, para análisis dinámico, que veremos próximamente.
24
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Entorno de tratamiento de malware
Análisis estático
Mediante el uso de “strings” en línea de comandos vamos a ser
capaces de identificar un número importante de aspectos relacionados
con el malware.
Normalmente al inicio de los ejecutables en Windows encontramos
nombres de sección (.section) y cabeceras PE (PE headers). Algunas
secciones no son útiles, sobre todo las .text y .data.
Hasta que saltamos todos esos caracteres sin sentido producto del
compilado y llegamos a las llamadas a la API de Windows donde sí
podemos, mediante análisis estático, identificar cierto comportamiento
útil.
Por ejemplo, IsDebuggerPresent indica que tenemos delante una
protección básica contra depuradores.
25
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Entorno de tratamiento de malware
Análisis estático
Otros ejemplos:
• Si encontramos una cadena como “cmd /c” tenemos un malware con capacidad de ejecutar
comandos.
• Si vemos “getfile” y “CreateProcessA” nos puede estar indicando algún host desde donde se
baja y ejecuta ficheros específicos.
• Una llamada a InternetConnectA está indicándonos conexiones hacia hosts que revelen
ciertos datos.
o Los parámetros de estas llamadas suelen estar “hardcodeados” o escritos directamente
en texto plano.
26
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Entorno de tratamiento de malware
Análisis estático
Si abordamos la parte de ficheros y codificaciones posibles para eludir antivirus un típico caso de
fichero en PHP que codifica código podría ser éste:
$x="Dcq7CsMgFADQX7lD4OpSKJQuwalkCIU6OIYQrF6tEB+oWVr67+2ZT0hmPywxNDm54E/lVZCPEBzz75Dcrjuxp250vWy
WTP7PYbtJeZ+nBRuZSj3jyjkIIQAj+aN1XWr2VUddkcMHYNjUpNQsHwtqG0PCFQScR4DvDw==";eval(gzinflate(base6
4_decode($x)));
A simple vista algo inofensivo. Un investigador novato puede pasarlo por alto aunque
debería reconocer el tipo de codificación utilizado en la variable “x” y lo que intenta hacer la
evaluación (eval) de la siguiente línea:
if(gzinflate(base64_decode($_COOKIE['secret'])) === ‘ilovehacking') {$_SESSION['admin'] = 1; }
Pues parece ser que establece una variable de sesión a 1 si los datos que le llegan
decodificados y descomprimidos son iguales a la cadena “ilovehacking”.
Es decir si le llega esto: y01NLy0uSSwoyk8vSsxNLAIA en la cookie “secret”.
Parece complicado pero en realidad son técnicas básicas de codificación estándar.
27
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Entorno de tratamiento de malware
Análisis estático
Ficheros empaquetados
Si un archivo ejecutable contiene solo unas pocas cadenas
inteligibles o un número muy bajo de importaciones el archivo
puede estar empaquetado.
Un archivo empaquetado es un ejecutable que comprime y
oculta código. El proceso de empaquetado cambia
significativamente el contenido del archivo, pero conserva la
misma funcionalidad.
Los archivos alterados puede contener cualquier combinación
de compresión, cifrado, codificación, anti-desensamblado y
otras técnicas de ofuscación.
Para lograrlo el empaquetado normalmente almacena el código
original en un nuevo formato e inserta una especie de "código
envoltorio" que realiza la decodificación.
28
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Entorno de tratamiento de malware
Análisis estático
Ficheros empaquetados
Algunos empaquetadores comunes son UPX (en la imagen su salida de ayuda), Aspack,
PeCompact, Petite y Armadillo.
Upx.exe proporciona diferentes versiones de arquitectura y múltiples opciones para realizar el
proceso con el flag –h de ayuda.
En la imagen de abajo, el comando upx –d fichero.exe para mostrar como desempaqueta (-d
decompress).
29
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Entorno de tratamiento de malware
Análisis dinámico
El análisis de malware dinámico es más complicado sobre todo porque incorporan técnicas que
detectan que estamos dentro de una “sandbox” y varían su comportamiento de ejecución.
Análisis automatizado
Los análisis automatizados requieren del envío de las muestras a webs de terceros y pueden ser un
punto de partida con muestras de aprendizaje o malware conocido, pero ya hemos dicho
anteriormente que no es una práctica aconsejada incorporar las muestras a terceros.
Para realizar el análisis automatizado podemos descargar Cuckoo Sandbox:
https://cuckoosandbox.org/download
30
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Entorno de tratamiento de malware
Análisis manual
La realización del análisis dinámico de forma manual permite mayor flexibilidad pero también puede
consumir mucho tiempo.
Por ello no vamos a profundizar en temas avanzados como puede ser analizar código
ensamblador desde un depurador.
Iremos directos a conceptos generales de análisis manual dinámico.
Análisis del malware
La mayoría de las muestras de malware con las que tratamos son binarios PE basados en Win32. Las
formas binarias comunes son ejecutables con una extensión ".exe" y enlaces dinámicos a bibliotecas con
una extensión ".dll".
Para una dll, el método para cargarlo depende del diseño inicial.
Podemos cargar la dll usando rundll32:
C:\>rundll32 libreria.dll
31
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Entorno de tratamiento de malware
Análisis del malware
En algunos casos una .dll puede ser una puerta trasera que instala el malware de manera persistente.
Puede ser útil examinar los nombres de exportación.
Quizá encontremos en los nombres algo como “Start” y tengamos que ejecutarlo para que invoque a la
función “Start”
Comando de ejecución
C:\>rundll32 libreria.dll, Start
Puede que en el ejemplo de la dll con la función “Start” no tengamos éxito pero siempre es interesante
intentarlo con los nombres de funciones que encontremos.
En otros casos el archivo puede estar diseñado para ser cargado por un servicio específico
como Winlogon para reemplazar la identificación y autenticación gráfica estándar de Microsoft
(GINA).
En este caso tendremos que reconfigurar nuestra máquina virtual para que coincida con los cambios
que el atacante ha hecho en el sistema víctima.
32
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Entorno de tratamiento de malware - Análisis Dinámico
Monitorizando en tiempo de ejecución
Una vez se haya conseguido arrancar el malware, querremos analizar que acciones está llevando a
cabo.
En la mayoría casos vamos a observar qué procesos o qué ficheros son creados o modificados, qué
claves de registro son consultadas y qué actividad de red produce el malware.
El objetivo de la monitorización es consultar todo lo que el malware va a producir una vez ejecutado.
Por ejemplo, si el malware crea un fichero debemos inspeccionar el contenido del mismo e ir cotejando
cualquier acción para tener la idea general o el propósito con el que fue diseñado dicho malware.
Una herramienta ideal puede ser el monitor de procesos. Es una herramienta que combina las
características de al menos cuatro herramientas antiguas separadas de SysInternals.
Supervisará la actividad de proceso, archivo, registro y red y permite filtrar eventos en base a muchos
criterios diferentes.
Puede descargarse de: https://docs.microsoft.com/es-es/sysinternals/downloads/procmon
33
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Entorno de tratamiento de malware - Análisis
Dinámico
Monitorizando en tiempo de ejecución
Con el monitor de procesos puede parar la captura
con CTRL-E y hacer un filtrado preciso de lo que
queramos que case con las condiciones de nuestra
búsqueda.
Normalmente empezamos a filtrar por el nombre del
proceso seleccionando “Process Name” is
“nombre.exe”.
Si el ejecutable lanza un proceso adicional no
podremos verlo, ya que veremos el nombre principal
pero podemos establecer filtros para su seguimiento.
34
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Entorno de tratamiento de malware - Análisis
Dinámico
Monitorizando en tiempo de ejecución
Otra herramienta interesante y que debemos
utilizar para capturas de actividad de red es
Wireshark.
Si detectamos que el malware está teniendo algún
tipo de actividad de red (con mucha probabilidad)
vamos a tener que capturar los paquetes de red
para su posterior análisis.
Wireshark cuenta con muchos protocolos y
capacidades para su decodificación.
https://www.wireshark.org/#download
35
PROTOCOLOS EN EL TRATAMIENTO DE MALWARE
Entorno de tratamiento de malware
Conclusiones
• En la mayoría de los incidentes los atacantes emplean malware u otras herramientas para
conseguir sus objetivos.
• Comprender lo que hacen estas herramientas le ayudará a determinar lo que los atacantes
están haciendo y cómo poder responder.
• Este capítulo presentaba funciones básicas estáticas y dinámicas métodos de análisis que
creemos que lo ayudarán a identificar y determinar rápidamente la funcionalidad del
malware sospechoso.
36