Análisis de malware

Instrumentación de malware con Frida

18 de enero de por Pedro Tavares

La instrumentación de malware es una técnica también conocida como Instrumentación binaria dinámica (DBI) que permite inyectar y ejecutar código dentro de un proceso de destino para examinarlo.

Existe una técnica utilizada dentro del panorama inverso del malware que se utiliza para inspeccionar y analizar el comportamiento de un proceso durante su ejecución: el análisis dinámico. Esta fase comprende varios pasos desde el análisis del registro hasta el análisis del tráfico de la red. También se puede utilizar un enfoque complementario llamado DBI para interrogar un proceso de destino, inyectar scripts de destino, rastrear llamadas API y, esencialmente, inspeccionar sus componentes internos. Algunos marcos DBI populares, incluidos Pin, DynamoRIO y Frida de Intel. Frida tiene múltiples arquitecturas, está bien documentada y se puede ejecutar en sistemas operativos de escritorio y móviles como Windows, Linux, macOS, iOS, Android y QNX.

Con Frida, se puede inyectar un código JavaScript personalizado en los procesos de destino para monitorear, interceptar y modificar los valores de entrada y retorno de las llamadas a funciones durante su ejecución. Muchas herramientas utilizan Frida como parte de sus funciones, como el marco Runtime Mobile Security . Sin embargo, Frida proporciona una potente herramienta de línea de comandos que se puede utilizar para acceder inmediatamente a sus beneficios.

¡Conviértete en un ingeniero inverso certificado!

Obtenga capacitación práctica en vivo sobre análisis de malware desde cualquier lugar y conviértase en un analista certificado de ingeniería inversa. Comienza a aprender

Para usar Frida-tools en una máquina con Windows, necesitamos instalar Python3 y Frida como se presenta a continuación y en este artículo .

PS Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

python -m venv .

PS C:Toolsfridafrida_venvScripts .Activate.ps1

pip install frida

pip install objection

pip install frida-tools

1: Proceso de instalación de Frida ( fuente ).

Aprovechando las capacidades de Frida

Frida-rastro

Frida-trace es una herramienta distribuida con Frida con claras ventajas para el análisis de malware. Con esta herramienta, es posible rastrear llamadas API y el ingeniero de malware puede personalizar el comportamiento de una función específica.

Algunas de las posibles formas de ejecución son las siguientes, como se describe aquí :

frida-trace.exe -f malware.exe -i *CreateFile*

frida-trace.exe -f malware.exe -i KERNEL32.DLL!CreateFileA

frida-trace.exe -f malware.exe -i KERNEL32.DLL!OpenMutex*

log('File or device: ' + args[0].readAnsiString());

log('OpenMutexW: ' + args[2].readUtf16String());

Se puede analizar una llamada API de destino («*CreateFile*») o incluso intentar observar si se llama durante la ejecución del malware. Después de ejecutar la ejecución, se crean algunos archivos JavaScript en la carpeta __handlers__ y se pueden modificar la entrada y el valor de retorno de cada función.

Por ejemplo, al interceptar la llamada de Windows » OpenMutex() «, podemos analizar el nombre del mutex abierto si el malware ejecuta esa función durante el tiempo de ejecución. Según Microsoft , el parámetro » lpName » (posición 2) tiene el nombre del mutex que se va a abrir.

La siguiente línea se puede agregar al archivo JavaScript como se presenta a continuación.

log('OpenMutexW: ' + args[2].readUtf16String());

2: Línea de código responsable de escribir el segundo parámetro de la llamada OpenMutex en la consola durante el tiempo de ejecución ( fuente ).

Después de ejecutar Frida-trace nuevamente con los mismos parámetros, leerá los cambios del archivo JavaScript y escribirá el resultado en la consola. Como se observa, aparece el nombre de los mutex abiertos.

3: Mutex al que accede el malware durante su ejecución ( fuente ).

Como se describe en este artículo , Frida-trace es una excelente manera de beneficiarse inicialmente del marco Frida, pero escribir nuestro guión también es posible y más efectivo. Monitorear la memoria cuando el malware inyecta código malicioso es un punto clave durante una tarea de análisis de malware.

Como se demuestra a continuación, es posible rastrear la técnica de inyección de memoria con un script inicial. En detalle, las llamadas Win » VirtualAlloc » y » VirtualProtect » se monitorean y su contenido se muestra cuando se activan.

4: Seguimiento de llamadas de memoria con Frida ( fuente ).

Este enfoque nos permite comprender cada vez que se cambia una nueva región de memoria, su protección, etc.

5: Resultado del rastreo de memoria con Frida ( fuente ).

Se pueden encontrar más detalles sobre este escenario aquí [ 1 ] y [ 2 ].

Se desarrolló un marco llamado HawkEye para automatizar el uso de Frida durante un análisis de malware y está disponible en GitHub . Dependiendo de sus objetivos, un usuario puede agregar otras funcionalidades y funciones para analizar, ya que el código fuente es limpio y fácil de modificar. En resumen, este marco permite por defecto rastrear algunas llamadas, a saber:

6: Flujo de proceso del marco HawkEye después de analizar una muestra de malware.

Además, se lanzó una extensión para Ghidra ( ghidra2frida ). Funciona como un puente entre Ghida y Frida y le permite a Frida crear scripts ejecutados directamente por el motor dinámico de Frida para mejorar las funciones de análisis estático de Ghidra.

7: Ejemplo de ventana de flujo de trabajo de ghidra2frida.

Puede encontrar más detalles sobre cómo utilizar esta extensión aquí .

¡Conviértete en un ingeniero inverso certificado!

Obtenga capacitación práctica en vivo sobre análisis de malware desde cualquier lugar y conviértase en un analista certificado de ingeniería inversa. Start Learning

Using Frida

Frida-trace is one of Frida’s potent command-line tools, a great start point to collect details and interrogate Windows API calls efficiently. A DBI framework can be useful for collecting artifacts during a dynamic malware analysis task. With this kind of approach, bypassing malware restrictions is also possible, as users can customize and modify the processes’ internals in run-time.

Another benefit of using Frida is that it is well-documented, easy to use and the creation of new scripts is very straight. Let’s beat malware with Frida tools.

Sources