Analizando malware en Android con Androguard

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

Autor , ESET

  • Gracias lo usare con mi android (Y)

  • Rubén

    Felicidades por el post! Como sugerencia estaría bien algun artículo sobre pentest de aplicaciones Android, buscando vulnerabilidades por ejemplo con la última versión de Mercury…yo lo dejo caer por si sale :P

    • Hola Rubén,

      Me alegro que te haya interesado la información que compartimos en el blog. Tendremos en cuenta lo que nos comentas para en un futuro incluir información acerca de cómo realizar un pentest a una aplicación de Android y qué datos tener en consideración.

      Saludos,

      Pablo

  • Hola compañeros, estoy probando AndroGuard pero he visto que no ningún manual, conocéis alguno??

    También he visto que es capaz de dibujar el flujo de la app en modo gráfico, ¿sabéis como se puede acceder a esa opción?

    Gracias a todos!!!

    • Hola Reivaj,

      Puntualmente el manual de Androguard como toda la documentación lo podés encontrar en http://doc.androguard.re/html/index.html, sin embargo además de la documentación también podés consultar un blog de la misma persona que desarrolla la herramienta en http://androguard.blogspot.com
      Nosotros vamos a seguir compartiendo con ustedes información acerca de cómo utilizar esta herramienta y sus utilidades.

      Saludos,

      Pablo

  • Buen post Gracias :D

Síguenos