Cuando buscamos analizar la memoria de sistemas móviles, ya sea con objeto de análisis de malware o auditoría forense, existe una gran cantidad de herramientas capaces de ayudarnos con este trabajo. Con anterioridad vimos cómo podíamos utilizar LiME para analizar la RAM de un smartphone y también estuvimos repasando una gran variedad de otras técnicas sencillas para el análisis de memoria en Android.

A continuación dedicaremos una breve reseña a otra herramienta para el volcado de memoria en dispositivos móviles que nuestro colega @juanurss nos ha recomendado recientemente. ¡Manos a la obra!

Fridump, Frida y el análisis de memoria

Fridump es una herramienta de código abierto que facilita el volcado de memoria desde dispositivos móviles tanto iOS como Android. Como su nombre lo anticipa, se cimienta sobre Frida: un framework de instrumentación dinámica de aplicaciones al que ya le hemos dedicado previamente un espacio en nuestra plataforma. Además de permitir volcar memoria de procesos en particular, permite realizar rápidamente búsquedas de cadenas de texto sobre los resultados.

Una vez más vemos cómo la versatilidad y portabilidad de Frida se ponen al servicio del análisis de malware. Para utilizar la herramienta deberemos configurar el cliente en el host y el servidor en el emulador o dispositivo móvil, tal y como se indica en la documentación. Luego podremos instalar Fridump clonando el repositorio de Github.

Si estamos trabajando con un teléfono móvil conectado vía USB deberemos utilizar el comando -u. Si estamos utilizando un emulador, es posible que nos demos con que Frida no logra identificar correctamente a qué dispositivo emulado debe conectarse. Para resolver este problema realicé un fork del proyecto que pueden encontrar en este enlace, añadiendo un nuevo parámetro para poder estipular el ID del emulador al cual conectarse.

Para conocer el listado de dispositivos disponibles y sus respectivos ID pueden emitir el siguiente comando:

frida-ls-devices

Una vez que ya sabes el ID del dispositivo, simplemente pones a correr la herramienta con el siguiente comando. La opción -v, como es de esperarse, es el modo verbose; -r volcará también direcciones de memoria de solo lectura; -s procesará los resultados del volcado para extraer las strings; -d indicará el ID del dispositivo; y finalmente deberemos indicar el nombre del proceso cuya memoria queremos extraer. Por supuesto, la aplicación a la cual Frida se enlazará debe estar activa al momento de la emisión del comando.

python fridump.py -v -r -s -d emulator-5554 com.google.android.gm

En la siguiente captura de pantalla vemos el resultado de la ejecución de la herramienta. Distinguiremos una lista de archivos .data con los dumps de memoria y además un archivo strings.txt donde se encontrarán las cadenas de texto que se procesaron.

Sobre ese archivo de strings pueden realizarse un sinfín de búsquedas según cuál sea la motivación original del análisis. Por ejemplo, en la imagen que se muestra a continuación veremos los resultados de buscar textos como “password” o “user” sobre la memoria de Gmail. Mediante estas búsquedas podríamos intentar encontrar consultas a bases de datos, nombres de variables, librerías utilizadas, tokens y rutas del sistema de archivos, entre otras cosas.

En conclusión, Fridump es una herramienta flexible que vale la pena tener en mente al momento de analizar una aplicación móvil, tanto para Android como iOS, especialmente considerando que actualmente se encuentra en su versión 0.1 y que de seguro podremos ver surgir muchas nuevas funcionalidades durante los meses por venir.