Metodología para Análisis de Malware
Metodología para Análisis de Malware
Hacking Ético
Metodología de análisis
de malware
Índice
Esquema 3
Ideas clave 4
10.1. Introducción y objetivos 4
© Universidad Internacional de La Rioja (UNIR)
A fondo 27
Test 28
© Universidad Internacional de La Rioja (UNIR)
Hacking Ético
3
Ideas clave
Objetivos:
Hacking Ético
4
Tema 10. Ideas clave
10.2. Métodos de obtención de malware
[Link]. Esta plataforma de sandboxing hace públicas las muestras subidas por
los clientes que no tienen funcionalidades de pago, por lo que también será una
buena fuente de obtención de artefactos maliciosos.
Hacking Ético
5
Tema 10. Ideas clave
máquina normal, susceptible de ser atacada por una amenaza concreta, pero que no
está involucrada en los procesos de la organización. Cuando un malware infecta esta
máquina, podremos recoger registros sobre su actividad y, en última instancia,
recuperar la muestra que la ha infectado. En función del grado de realismo que tiene
la máquina, íntimamente relacionado con su coste, diferenciaremos entre:
Para analizar malware sin correr riesgos, debemos contar con cierta infraestructura
© Universidad Internacional de La Rioja (UNIR)
Hacking Ético
6
Tema 10. Ideas clave
Para construir nuestro laboratorio, utilizaremos tecnologías de virtualización, que
permitirán ahorrar costes frente al uso de hardware e incluso tendrá ciertas ventajas.
Necesitaremos:
El equipo anfitrión (nuestro equipo) debe contar con un hipervisor que permita la
virtualización de hardware, así como la creación de snapshots (guardar el estado de
la máquina de forma que sea recuperable). Algunas de las tecnologías más comunes
en este ámbito son:
Virtualbox.
VMware.
Qemu.
Crearemos dos máquinas virtuales: una para la víctima y otra para el proxy. Cuando
estén configuradas, estableceremos la siguiente configuración de red:
Red 1. Red entre la máquina proxy y el anfitrión. Debe permitir que el proxy
acceda a Internet.
Red 2. Red entre la máquina víctima y la máquina proxy. No debe permitir que la
víctima acceda a Internet a no ser que se configure el proxy para que enrute el
© Universidad Internacional de La Rioja (UNIR)
Hacking Ético
7
Tema 10. Ideas clave
Figura 1. Laboratorio de análisis de malware. Fuente: elaboración propia.
Proxy de análisis
El proxy de análisis debe contar con todas las herramientas necesarias para poder
interceptar y manipular el tráfico de red. Además, al igual que la máquina anfitriona,
debe estar diseñado con una tecnología diferente a la máquina víctima, para evitar
posibles movimientos laterales (si estamos analizando una víctima Linux, utilizar
como proxy y anfitrión un Windows, por si el malware es capaz de «saltar»).
Al analizar principalmente sistemas Windows, nuestra máquina proxy contará con un
sistema Linux llamado REMnux.
Máquina víctima
plano que pueden dificultar el análisis dinámico, por lo que se recomienda el uso de
Windows 7 (siempre que sea posible y la muestra vaya a ejecutarse en dicha versión).
Además, debemos introducir dentro del sistema las herramientas necesarias para el
análisis de la muestra. Para ello, contaremos con FlareVM. Este script transforma
Hacking Ético
8
Tema 10. Ideas clave
completamente el sistema instalando todo el software necesario para hacer
cualquier análisis y configura la máquina para facilitar el estudio. Debemos tener en
cuenta que las medidas de protección de la máquina (Windows Defender, Firewall,
etc.) pueden suponer un obstáculo para el análisis de malware, por lo que debemos
deshabilitarlas cuando sea necesario.
Por último, habida cuenta de que el malware ha ido perfeccionando sus capacidades
para detectar entornos virtuales y evitar ser analizado, tendremos que configurar la
máquina para que sea lo más discreta posible en este sentido. Para ello, contaremos
con herramientas que, emulando al malware real, nos asesoren acerca de qué
elementos pueden desenmascarar nuestras intenciones (Figura 2). Algunas de estas
herramientas son:
Pafish.
InviZzzible.
Al-Khaser.
© Universidad Internacional de La Rioja (UNIR)
Hacking Ético
9
Tema 10. Ideas clave
Inicialización de los entornos
Definición de objetivos
Antes de comenzar a analizar cualquier muestra, debemos tener claros cuáles son
nuestros objetivos, de cara a priorizar las actividades y la documentación de
nuestros hallazgos. Algunos objetivos habituales son:
Clasificación de la muestra
Hacking Ético
10
Tema 10. Ideas clave
Ssdeep. Genera una huella de la muestra que permita, además de identificarla,
determinar cuánto se parece a otras similares (para poder agruparlas por familias).
Normalmente se utiliza el hash sha256 como nombre del fichero zip cifrado, así que
podemos calcular este valor, antes que nada, o introducirla con un nombre temporal,
y renombrarla después. Obviamente, para calcular el resto de los hashes debemos
trabajar con la muestra descomprimida, por lo que cuando esté en un entorno seguro
(dentro del proxy), procederemos a desempaquetarla y realizar el primer análisis,
asegurándonos previamente, eso sí, de no perder la copia protegida (el zip con
contraseña).
Con los comandos file y binwalk podremos analizar el número mágico del archivo
y los posibles binarios contenidos en él; y con exiftools obtener algunos metadatos
que ayuden a categorizarlo.
Estos datos serán nuestros primeros indicadores de compromiso (IOC), junto con las
© Universidad Internacional de La Rioja (UNIR)
cadenas de texto más relevantes que encontremos. Podemos extraerlas usando los
siguientes comandos:
Hacking Ético
11
Tema 10. Ideas clave
Strings: busca patrones de texto en ficheros binarios, independientemente del
formato.
Análisis en sandbox
Hacking Ético
12
Tema 10. Ideas clave
Cuckoo. Durante muchos años ha sido el principal sistema de sandboxing, pero
desde 2020 su desarrollo encuentra en un impasse hasta que termine de ser
portado a python3.
También podemos utilizar sistemas online que son más arriesgados desde el punto
de vista de la confidencialidad: la muestra puede ser dirigida a nuestra organización
y el atacante monitoriza estos servicios para detectar que está siendo analizado, o la
propia muestra se ha generado utilizando información confidencial de nuestra
organización. A pesar del riesgo, son mucho más económicas y efectivas. Algunas de
ellas son:
Hacking Ético
13
Tema 10. Ideas clave
víctima que se encarga de recibir la muestra a través de la red interna y ejecutarla.
Como nuestro objetivo es realizar un análisis manual, debemos tomar otras
aproximaciones. Entre estas otras, podemos:
Análisis de comportamiento
Hacking Ético
14
Tema 10. Ideas clave
herramientas que, además, pueden detectar qué tecnología se ha utilizado para su
ofuscación.
Procesos
Desde las propiedades del proceso, podemos también analizar los ficheros y mutex
que utiliza (handles), su token del sistema, etc. En caso de que no encontremos el
© Universidad Internacional de La Rioja (UNIR)
Hacking Ético
15
Tema 10. Ideas clave
Figura 5. Búsqueda de handles. Fuente: elaboración propia.
Registro
Antes de lanzar la muestra, realizaremos una captura del registro con la herramienta
regshot. Una vez completada, procederemos a ejecutar el malware y, tras un tiempo
prudencial para que pueda realizar sus funciones, realizaremos una segunda captura.
Utilizando la opción de comparación, obtendremos una lista con todos los registros
modificados, borrados y creados entre ambas capturas. Entre estos registros se
encontrará toda la actividad realizada por el malware, mezclada con la de procesos
legítimos (Figura 6), así que debemos aprender a discriminar una de otra.
Si queremos ser más meticulosos, podemos trabajar con Procmon, filtrando por
operaciones con el registro.
© Universidad Internacional de La Rioja (UNIR)
Hacking Ético
16
Tema 10. Ideas clave
Disco / Almacenamiento
Esta herramienta es de las más potentes y versátiles que tenemos en nuestro arsenal,
porque permite analizar prácticamente cualquier ámbito del sistema, pero esta vez
lo restringiremos al uso de disco filtrando:
Por operación: para esta tarea filtraremos por operaciones que terminen en «File»
(operaciones con archivos de la API de Windows).
© Universidad Internacional de La Rioja (UNIR)
Hacking Ético
17
Tema 10. Ideas clave
Figura 7. Configuración de filtros en Procmon. Fuente: elaboración propia.
Una vez establecidos todos los filtros (Figura 7), arrancaremos la captura (pulsando
de nuevo Ctrl+E o a través del menú de archivo) y ejecutaremos la muestra. Cuando
consideremos que tenemos suficientes eventos, pararemos la captura (o seguirá
hasta desbordarse) y comenzaremos a analizar qué archivos han sido creados o
abiertos (operación «CreateFile»), escritos (operación «WriteFile»), etc. La captura
obtenida en la Figura 8 muestra, como ejemplo, las operaciones sobre archivos que
realiza OneDrive para sincronizar un fichero en edición.
© Universidad Internacional de La Rioja (UNIR)
Hacking Ético
18
Tema 10. Ideas clave
Red
El análisis que podamos hacer de las operaciones de red de la muestra depende del
protocolo utilizado para comunicarse (si está cifrado o no y la tecnología concreta),
si utiliza algún tipo de canal encubierto, etc. De forma genérica, utilizando una
herramienta como Wireshark, podemos centrarnos en detectar:
Hacking Ético
19
Tema 10. Ideas clave
Figura 9. Ejecución y resultados de Fakeet-NG. Fuente: elaboración propia.
Hacking Ético
20
Tema 10. Ideas clave
Análisis de memoria
Hacking Ético
21
Tema 10. Ideas clave
Figura 10. Configuración de dumps. Fuente: elaboración propia.
A la hora de analizar el código, definiremos una serie de ítems clave que facilitarán
© Universidad Internacional de La Rioja (UNIR)
nuestro trabajo. Utilizando IDA, comenzaremos por conocer los siguientes aspectos:
Hacking Ético
22
Tema 10. Ideas clave
Librerías y funciones utilizadas
Figura 12. Funciones de red importadas por la muestra. Fuente: elaboración propia.
Funciones exportadas
En ocasiones. la muestra no será un .exe, sino un .dll con código malicioso. Para
analizar su comportamiento, tendremos que detectar qué funciones exporta, pues
serán los puntos de entrada utilizados por la pieza encargada de ejecutarlo.
Hacking Ético
23
Tema 10. Ideas clave
de los valores de un array. Este es un mecanismo simple y pobre de cifrado, pero muy
utilizado por el malware para ofuscar configuraciones.
El análisis dinámico consistirá en la ejecución del malware, pero esta vez, en lugar de
observar sus efectos sobre el sistema operativo, analizaremos su funcionamiento
interno. Para ello, cargaremos la muestra en un entorno de depuración, como
x64dbg.
© Universidad Internacional de La Rioja (UNIR)
Hacking Ético
24
Tema 10. Ideas clave
Funcionalidades que no tenía previamente: librerías cargadas, código
desempaquetado, etc.
Valores en memoria: valores introducidos en los registros, en la pila, etc.
Hacking Ético
25
Tema 10. Ideas clave
El programa x64dbg también permite proceder a la inversa. Buscando un valor en
memoria, podemos establecer un punto de ruptura que se active cuando el programa
acceda a dicho valor. De esta forma, podremos saber en qué contexto lo utiliza
(podremos identificar qué función abre un fichero de configuración almacenado en
una ruta conocida y, de esta forma, analizar cómo lo procesa).
Hacking Ético
26
Tema 10. Ideas clave
A fondo
Rootkit Necurs: No es un bug, es una feature!
C0r0n4con Congreso. (2020, mayo 18). Rootkit Necurs ¡No es un bug, es una feature!
[Vídeo]. Youtube. [Link]
Rooted CON (2020, mayo 23). Sandbox fingerprinting: Evadiendo entornos de análisis –
Roberto Amado & Victor Calvo [RootedCON2020-ES] [Vídeo]. Youtube.
[Link]
Hacking Ético
27
Tema 10. A fondo
Test
1. ¿Cómo se llama a una máquina instalada para obtener malware emulando
sistemas reales, pero sin llegar a implementarlos?
A. Sandbox.
B. Honeypot de baja interacción.
C. Honeypot de alta interacción.
D. Honeypot de media interacción.
2. El hash que permite buscar las similitudes entre dos binarios se llama:
A. HashDiff.
B. ssdeep.
C. nltk.
D. SHA-1.
3. Un imphash:
A. Es para hacer hashes de archivos muy pequeños.
B. Es para hacer hashes de archivos muy grandes.
C. Genera una firma con las funciones utilizadas por el binario.
D. Genera una firma única de ficheros importantes.
D. Robusto.
Hacking Ético
28
Tema 10. Test
5. Mediante el comando strings podemos:
A. Analizar el malware por hilos.
B. Extraer rápidamente IOC de texto.
C. Convertir el malware en cadenas de texto.
D. Convertir caracteres en estructuras de datos complejas.
Hacking Ético
29
Tema 10. Test
9. Si queremos analizar las funcionalidades de un programa malicioso que no se
ejecuta en el entorno de usuario:
A. Procederemos a arrastrarlo al entorno de usuario mediante hooking.
B. Buscaremos en Internet información, porque es imposible acceder a otras
áreas.
C. Lo haremos a través de un análisis de memoria.
D. Lo haremos mediante desensamblado del MBR.
Hacking Ético
30
Tema 10. Test