Para analizar malware en Android existen varias alternativas. Hoy veremos Androguard, una herramienta que permite a los analistas aumentar la interacción con el código malicioso y además analizar varias amenazas en búsqueda de similitudes y diferencias.

A lo largo de los últimos posts sobre Análisis de malware en Android compartimos con ustedes algunos conceptos y herramientas útiles al momento de investigar las capacidades de una amenaza para la plataforma móvil de Google. De a poco fuimos mencionando algunas metodologías para poder leer los permisos que solicita una aplicación, obtener parte del código fuente de la misma pasando desde el bytecode a Java. Cuando hablamos de los primeros pasos en el análisis de malware en Android, mencionamos una serie de herramientas, pero hubo una de ellas de las cuales no indagamos demasiado: Androguard.

Androguard no es solo una herramienta de análisis de malware en Android, en realidad se trata de un framework completo desarrollado en Python que nos permite interactuar directamente con un código malicioso, leer sus recursos, acceder al código, e incluso comparar distintas amenazas para encontrar similitudes o diferencias en sus métodos, clases y recursos. Además también es posible incorporar todas la funcionalidades de Androguard a scripts personalizados en Python para obtener información detallada y de manera sencilla acerca de un archivo.

Para aquellos que deseen usar este framework, lo pueden descargar e instalar directamente desde su página web o utilizar Santoku una distribución de Linux orientada a la seguridad de dispositivos móviles. De cualquiera de las dos maneras, Androguard posibilita al los especialista de seguridad una plataforma extremadamente compleja y útil para el análisis de códigos maliciosos en plataformas móviles. Además, también es posible descargar los módulos necesarios para incluirlo dentro de cualquier herramienta personal para análisis de malware en Android.

Por defecto Androguard trae consigo una serie de herramientas y scripts para facilitar el trabajo del analista y permite interactuar de una manera sencilla y dinámica con las amenazas. Una de las opciones más prácticas, y un buen lugar para empezar a aprender sobre este framework es Androlyze, que nos permite iniciar una shell interactiva de análisis. Para ello hay que ejecutar el script androlyze.py con la opción "-s", una vez que comience la ejecución se puede crear una instancia de un APK (Android Package) o un archivo DEX:

En la imagen anterior podemos ver como iniciar una shell interactiva y abrir un código malicioso para analizar. La primera línea abre el archivo para analizar (malware), para listar los permisos que la aplicación le solicita al usuario al momento de la instalación. Particularmente la amenaza que estamos analizando es una variante del troyano SMS Boxer que afectó a nueve países de Latinoamérica (md5: a8209f3b72cad9aaf9337af63d90f8ad) y a 63 países alrededor del mundo y que reportamos desde el Laboratorio de ESET Latinoamérica. En este caso podemos especificar que la aplicación solicita permisos para acceder a Internet, escribir en la tarjeta de memoria, leer la información del dispositivo y enviar mensajes de texto.

Toda la información contenida en el código malicioso puede ser accedida a través de la interfaz provista por Androguard, como así también la lectura del código fuente de la aplicación. A continuación podemos ver algunos de los métodos disponibles:

Como se podrán imaginar el alcance que este framework provee para el análisis de códigos maliciosos en Android es excelente y permite obtener una mayor comprensión de la amenaza como así también un mejor conocimiento de su estructura interna y funcionalidades. Además, Androguard cuenta con herramientas para comparación de archivos, búsqueda de similitudes con otras amenazas conocidas, funcionalidades de visualización y mucho más.

Hasta ahora hemos visto cómo interactuar con distintas herramientas para poder obtener información sobre la amenaza bajo análisis. Resaltamos los puntos más importantes de cada una e intentamos conocer qué información buscar según el tipo de código malicioso. ¿Sobre qué otra temática de análisis de malware en Android les gustaría tratar?

Pablo Ramos
Security Researcher