Análisis de malware

Análisis de ransomware con volatilidad

24 de junio de por Lester Obbayi

En este artículo, analizaremos el marco de volatilidad y cómo realizar análisis de ransomware usándolo. Discutiremos varias capacidades de la herramienta que pueden permitirnos realizar análisis forenses .

En este artículo, analizaremos dos formas notorias de malware, WannaCry y Jigsaw. El malware tratado en este artículo estará dentro de un entorno aislado.

Una breve descripción general del marco de volatilidad

El marco Volatility es una herramienta forense de memoria de código abierto mantenida por la Volatility Foundation . La Volatility Foundation es una ONG que también realiza talleres y concursos para educar a los participantes sobre investigaciones de vanguardia sobre análisis de la memoria.

La volatilidad permite a los analistas de memoria extraer artefactos de memoria de la RAM (memoria). Esto se hace independientemente de la plataforma en la que se ejecuta la herramienta; de hecho, se ofrece soporte para los principales sistemas operativos.

El código fuente se puede encontrar aquí . Sin embargo, si está en Kali Linux, se instala de forma predeterminada. En sistemas basados ​​en Debian, simplemente instálelo usando el siguiente comando:

volatilidad de instalación de sudo apt-get

Las principales ventajas de Volatility sobre otras herramientas de análisis de memoria incluyen:

  1. Está escrito en Python: muchos analistas de memoria se sienten cómodos con las secuencias de comandos de Python. Esto hace que les resulte más fácil trabajar con Volatility que con algo como windbg , que requiere que aprendas su sintaxis de secuencias de comandos.
  2. Es multiplataforma: Volatility puede ejecutarse en cualquier plataforma que admita Python, lo que significa que no tiene que perder tiempo descargando o instalando bibliotecas .NET o DLL para obtener soporte.
  3. Es de código abierto: Ser de código abierto permite que cada vez más analistas contribuyan al desarrollo de Volatility. También significa que no tiene que pagar por una herramienta que le brindará básicamente lo mismo o más de lo que ofrecería una herramienta paga.
  4. Es ampliamente programable: puede automatizar tareas con Volatility, ya que es fácilmente programable. Por ejemplo, puede explorar automáticamente la memoria del kernel utilizando scripts que escriba
  5. Admite muchos formatos de archivos: Volatility tiene la capacidad de analizar volcados sin formato, volcados por caída, archivos de hibernación, VMware .vmem, archivos suspendidos y de estado guardado de VMware, volcados de núcleo de Virtual Box y mucho más.

Puedes acceder a un catálogo de tutoriales documentados aquí en caso de que estés interesado en ir más allá del alcance de este artículo.

Eliminar el ransomware de la memoria

Instalamos Windows 7 en VirtualBox y descargamos el ransomware Jigsaw desde aquí . Luego ejecutamos el ransomware dentro de nuestra instalación de Windows 7 y volcamos la memoria después de que se ejecutó el ransomware. El comando que usamos para volcar la memoria en un archivo Memory.dmp se muestra a continuación:

Podríamos haber trabajado con el archivo .dump pero queríamos crear un archivo .raw en caso de que necesitáramos trabajar con más herramientas. El comando que usamos para hacer esto es el que se muestra a continuación:

Antes de que podamos comenzar a trabajar con Volatility, necesitamos identificar cierta información en el archivo jigsaw.raw. Por ejemplo, estamos particularmente interesados ​​en el perfil, que según nuestra instalación de Windows 7 es Win7SP1x64. Vea más información a continuación:

El complemento pslist nos permite ver la lista de procesos en el momento de la captura de memoria. Esto se puede ver a continuación:

Necesitamos comprender la funcionalidad del proceso y lo hacemos determinando el . archivos dll en uso. Esto se puede hacer usando el complemento dlllist y emitiendo la ID del proceso. Vea abajo:

Ahora, después de la evaluación inicial del ransomware Jigsaw, podemos volcar el proceso. exe y realizar análisis adicionales aplicando ingeniería inversa al archivo y realizando otras pruebas en él.

Cómo realizar un reconocimiento de ransomware

En esta sección, analizaremos el ransomware WannaCry . La configuración aquí incluye una máquina con Windows XP SP2 en VirtualBox. Ahora realicemos un reconocimiento del malware.

Como hicimos arriba, volcamos la memoria del sistema infectado y comenzamos viendo la información de la imagen:

Lo siguiente que hacemos es identificar procesos no autorizados en el momento del volcado de memoria. Esto se puede hacer usando pslist , como se muestra a continuación:

Como se puede ver arriba, hay dos procesos muy sospechosos que normalmente no forman parte de Windows. (La identificación se puede realizar simplemente buscando en Google los procesos y determinando los sospechosos). Estos son taskche.exe y @WannaDecryptor@. Para que podamos identificar la jerarquía de procesos, usamos psscan para identificar las tareas que fueron iniciadas por taskche.exe (PID 1940):

Observe que arriba, el PPID para los cinco procesos es 1940, lo que indica que fueron iniciados por taskche.exe . Ahora necesitamos determinar la ruta de la carpeta desde la que se ejecutó el proceso, así como los archivos DLL utilizados. Para hacer esto, usamos el complemento dlllist . Vea abajo:

Al hacer lo mismo con el otro proceso sospechoso, @WannaDecryptor@ (PID 740), muestra su ruta de ejecución y también los archivos DLL utilizados. Vea abajo:

Los archivos dll cargados arriba nos dicen qué son capaces de hacer los archivos sospechosos. Por ejemplo, el proceso @WannaDecryptor@ es capaz de lo siguiente:

  1. Creación de socket utilizando el archivo dll Ws2_32.dll.
  2. Comunicación de red mediante el archivo dll WININET.DLL.
  3. Consultas de registro utilizando el archivo dll ADVAPI32.DLL.
  4. Cifrado mediante el archivo dll SECURE32.DLL.
  5. Interacción del navegador mediante el archivo dll URLMON.DLL.

En este punto, lo que sería interesante hacer es examinar los identificadores de archivos en busca de más pistas. Hacemos eso a continuación.

Examinar identificadores de archivos

La volatilidad permite a los analistas mostrar identificadores en un proceso. Esto se puede hacer en todos los objetos ejecutivos asegurables, como eventos, canalizaciones con nombre, claves de registro y mutex. Al visualizar las manijas podrás ver el acceso y su tipo.

El ejemplo de malware WannaCry anterior implementa un mutex. El propósito de este mutex es evitar que se ejecute más de una instancia del malware. Los autores de WannaCry utilizaron un viejo truco que crea un mutex con el nombre «MsWinZonesCacheCounterMutexA». Podemos ver esto usando el comando, como se muestra a continuación:

También podemos ver los tipos de identificadores de procesos para procesos sospechosos y determinar claves que podrían indicar que el registro ha sido manipulado. Se puede ver la siguiente información clave:

Luego podemos extraer los valores clave que se utilizan para realizar la persistencia utilizando el complemento printkey . Buscamos entre las carpetas Ejecutar, Runonce, WinlogonKeys, BootExecuteKey, Inicio y clave Servicios. En este caso, la tecla Ejecutar es como se muestra a continuación:

La captura de pantalla anterior muestra que una vez que se inicia el sistema, se ejecuta el archivo taskche.exe para mantener la persistencia. Podemos ver más información sobre el proceso como la clave de registro creada, los puertos de red en uso, los subprocesos iniciados y más.

Detectar y volcar DLL oculta

A veces, mientras visualiza los identificadores dentro de un proceso, es posible que detecte algunos archivos DLL que no serán visibles con el complemento dlllist. Por ejemplo, kernel32.dll siempre se carga con cada proceso, pero como se puede ver a continuación, no tiene ningún identificador.

En situaciones en las que esté buscando archivos DLL ocultos específicos, es posible que desee recurrir al uso de enlaces API. Básicamente, el complemento apihooks le permitirá determinar las funciones enlazadas y volcar el código desensamblado. Deberá examinar este código para identificar la ubicación del archivo dll oculto que está buscando.

Deshacerse del archivo DLL oculto identificado es tan simple como usar el complemento dlldump.

Conclusión

El marco de volatilidad es un conjunto importante de herramientas para un analista de seguridad. Las señales que se encuentran dentro del malware, como ciertas cadenas y ubicaciones de registro, se pueden utilizar para generar indicadores de compromiso.

Este artículo ha servido como un recorrido básico de las capacidades de Volatility. Sin embargo, cabe señalar que se puede hacer mucho más de lo que aquí se menciona.

Fuentes