En anteriores publicaciones comenzamos a utilizar MobSF para analizar una muestra de malware para Android. En aquel entonces, vimos parte de la información más relevante que el análisis estático con esta herramienta nos puede brindar. Ha llegado el momento de ver qué ocurre cuando ejecutamos la aplicación maliciosa con la ayuda de este framework de análisis móvil.

Análisis dinámico

Para realizar el análisis dinámico de APK, la herramienta incluye una VM de Android que funciona sobre VirtualBox y que debemos configurar al preparar el entorno de trabajo. Si damos un vistazo a las aplicaciones que en dicha VM están instaladas obtendremos algunas pistas de cómo funciona el análisis dinámico de aplicaciones: vemos que se trata de un sistema rooteado que posee Xposed con diferentes módulos instalados dedicados a burlar técnicas antiemulación, ocultar el hecho de que el sistema está rooteado, espiar conexiones SSL incluso con certificate pinning o registrar el funcionamiento de la aplicación a través de Droidmon.

mobsf analisis dinamico

La imagen que vemos a continuación nos ayudará a recordar cómo se veía la interfaz web una vez que hemos concretado el análisis estático. Para dar comienzo al análisis dinámico podemos dirigirnos al menú lateral o bien a la sección “Options”.

opciones mobsf

Esto restaurará la snapshot de la VM que guardamos al configurar el entorno de análisis y abrirá una segunda interfaz web a través de la cual podremos controlar el proceso. En la parte superior podremos encontrar una secuencia de botones. Lo primero que deberemos hacer es inicializar el ambiente de trabajo haciendo clic en el primer botón comenzando por la izquierda; esto configurará un proxy para las conexiones HTTP(S), instalará el APK y lo inicializará, entre otras cosas.

analisis dinamico

Una vez que el ambiente fue creado exitosamente podremos ver en la máquina virtual cómo se inicializa la aplicación, con la que deberemos interactuar para detonar diferentes comportamientos. En este caso podemos ver que se trata de una aplicación extorsiva, una variante del “virus de la policía”.

img_04

En la interfaz web también podremos ejecutar comandos directamente mediante adb y dispondremos de un conjunto de botones que, entre otras funciones, nos permitirán ver la pantalla de la VM en la página web, generar intentos para detonar las diferentes actividades –exportadas o no– y crear snapshots de la máquina virtual. Una vez que hayamos concretado el análisis podemos proceder a finalizarlo presionando el botón “Finish”.

img_05

Esto nos abrirá otra interfaz web que nos permitirá sondear los resultados del análisis dinámico. En la parte superior podremos ver un conjunto de botones que nos permitirán descargar el registro de los paquetes HTTP(S) enviados, de Logcat, de Droidmon, de los dumps del sistema y también los archivos almacenados en la carpeta de datos de la aplicación (/data/data/<paquete>).

img_06

Otra cosa que podremos observar en la anterior imagen es un botón verde con la inscripción “Start Web API Fuzzer”. Esto nos abrirá una nueva interfaz que nos permitirá realizar inteligencia sobre los dominios que hayan sido detectados al interceptar el tráfico de red, por ejemplo, para recolectar más información sobre ese dominio.

img_07

Del mismo modo que en la interfaz de análisis estático, dispondremos de un menú lateral que nos permitirá desplazarnos rápidamente entre las diferentes secciones de los resultados del análisis dinámico. Si observamos la diversidad de las opciones en este menú podremos darnos una idea de la gran cantidad de información que podremos obtener con esta herramienta.

img_08

A continuación repasaremos algunos de los resultados arrojados por MobSF para la muestra en cuestión. Parte de la información que se pudo obtener fue la siguiente:

  • Archivos accedidos: la herramienta nos muestra un listado de todos los archivos que fueron accedidos por la aplicación durante su ejecución. En particular, podemos ver cómo esta muestra accedió al archivo de preferencias compartidas y a demás ficheros correspondientes a la apertura de puertos y gestión de conexiones de red.

archivos accedidos

  • Información del dispositivo: en esta sección encontraremos todas las características del dispositivo que permiten su identificación y que fueron accedidas por la aplicación, como ser el IMEI, el número telefónico, el nombre de la operadora telefónica o el código ISO del país.

informacion del dispositivo

  • Base 64: cada vez que una cadena de texto sea decodificada en base 64, el resultado de tal función será registrado por MobSF y mostrado al analista en esta sección.

base 64

  • Reflexión: en esta sección podremos ver las diferentes veces que la función invoke ha sido llamada con sus respectivos argumentos.

reflection mobsf

  • Activity Tester: muestra las capturas de pantallas obtenidas tras iniciar automáticamente las actividades declaradas en el manifiesto de la aplicación.

activity tester

  • Paquetes HTTP(S): todos los paquetes capturados durante la ejecución de la aplicación serán mostrados en esta sección, incluyendo aquellas conexiones protegidas por SSL.

HTTP(s)

  • Direcciones URL: las direcciones URL que hayan sido procesadas por la API de Android aparecerán listadas en esta sección, ya sea que correspondan al análisis de tráfico de red o a un recurso local. Cabe mencionar que encontraremos varias URL resultantes de la operatoria de la VM no necesariamente vinculadas a la ejecución de la muestra.

url mobsf

  • Malware check: sobre el listado de URL registradas, la aplicación generará un estimativo de cuán benigno es cada dominio.

malware check

  • Otros: obtendremos mucha más información en el análisis dinámico, como ser el listado de bases de datos utilizadas por la aplicación y el listado de archivos accedidos junto a un enlace para poder echarles un vistazo. La herramienta también nos mostrará un conjunto de strings que podrían llegar a ser direcciones de correo electrónico, aunque puede tratarse muchas veces de falsos positivos como ocurre en este caso.

informacion extra mobsf

Conclusión

La importancia de este tipo de herramientas gratuitas para el trabajo diario de los analistas de malware radica en la disminución de tiempo al automatizar tareas reiterativas, por ejemplo, al analizar archivos APK. El alcance de MobSF excede ampliamente la funcionalidad que hemos ejemplificado en esta reducida serie de publicaciones. No obstante, hemos logrado poner en evidencia cómo este entorno de trabajo puede llegar a ser un gran aliado en el análisis de códigos móviles.