Inicio / Blog / Recopilación de utilidades para analizar APKS

Recopilación de utilidades para analizar APKS

Publicado el 10/03/2015, por Asier Martínez (INCIBE)
Utilidades para analizar APKS

Como reflejan los datos recopilados en el informe sobre la situación del malware para Android, el sistema operativo de Google se ha convertido en la plataforma móvil más afectada por el malware, centrando el 99% de las amenazas desarrolladas para smartphones. De manera global, existen dos tipos de análisis: estático y dinámico. El primero analiza diferentes aspectos de las aplicaciones sin llegar a ejecutarlas, mientras que el segundo se centra en un análisis basado en el comportamiento de la aplicación una vez ejecutada. De manera habitual, las utilidades y servicios de análisis dinámico incorporan información obtenida a partir de un análisis estático previo.

A continuación se indican algunas de las aplicaciones de uso más extendido que permiten realizar estos dos tipos de análisis, agrupándolas en aquellas que pueden ser ejecutadas en local, previo proceso de instalación, y aquellas que corresponden a servicios online.

Utilidades Android

De manera general, todas ellas pueden utilizarse gratuitamente, a excepción de algún caso en el que se establecen limitaciones si van a ser utilizadas con un fin comercial.

Herramientas locales

Estático

  • Androguard: desarrollada en Python, y por tanto multiplataforma, incorpora gran cantidad de funcionalidades y permite acceder a multitud de características de una APK. Algunas de las opciones más destacadas son:
    • Descompilar APKs y por tanto permite el acceso a permisos, Receivers, Activities, Content Providers, Services, Package Name, clases, métodos, etc.
    • Indicador de peligrosidad.
    • Comparar el código de dos aplicaciones para comprobar la similitud entre ambas.
    Está disponible en https://code.google.com/p/androguard/
  • APKInspector: también desarrollada en Python, su característica principal es que dispone de un interface gráfico a través del cual se pueden visualizar diferentes aspectos de las APKs analizadas como por ejemplo el AndroidManifest.xml. Está disponible en https://github.com/honeynet/apkinspector/
  • APKTool: es una utilidad multiplataforma que permite descompilar y volver a compilar las aplicaciones. Está disponible en https://code.google.com/p/android-apktool/
  • APKStudio: es un IDE (entorno de desarrollo integrado) multiplataforma que permite descompilar y compilar APKs. Está disponible en https://apkstudio.codeplex.com/
  • Androwarn: es una utilidad cuyo objetivo es detectar y advertir de comportamientos potencialmente peligrosos. Para ello, analiza multitud de aspectos de las APKs como por ejemplo:
    • Posibilidad de exfiltración de información sensible como configuraciones del dispositivo móvil, geolocalización, credenciales de acceso Wi-Fi, información de contactos, etc.
    • Posibilidad de envío de SMS Premium o capacidad para realizar llamadas.
    • Capacidad de grabación de video y audio.
    Los reportes generados tienen un diseño muy intuitivo y claro. Está disponible en https://github.com/maaaaz/androwarn
  • Dex2Jar: permite convertir un fichero .APK en uno .JAR de manera que se pueda visualizar el código de la aplicación. Está disponible en https://code.google.com/p/dex2jar/
  • JD-GUI: es una herramienta con interface gráfica que permite interactuar de una manera intuitiva con ficheros con extensión .CLASS. Está disponible en http://jd.benow.ca/
  • JAD: Es una aplicación multiplataforma que permite convertir ficheros .DEX en ficheros .CLASS. Está disponible en http://varaneckas.com/jad/

Dinámico

  • DroidBox: es una utilidad por línea de comandos, la cual permite el acceso a multitud de información como por ejemplo:
    • Comunicaciones establecidas por la aplicación.
    • Posibilidad de exfiltración de información sensible.
    • Mapa que muestra el comportamiento de la APK.
    • Comparar el código de dos aplicaciones para comprobar la similitud entre ambas.
    Está disponible en https://code.google.com/p/droidbox/

Servicios online

Estático

  • Virustotal: analiza las aplicaciones con más de 50 motores antivirus. Así mismo, realiza un análisis estático de las mismas con Androguard e incorpora diferentes módulos como ExifTool o TrID para obtener información adicional. Dispone tanto de una API pública con limitaciones como de una API privada. El servicio es accesible en https://www.virustotal.com/
  • Andrototal: el servicio está en fase BETA. Analiza las aplicaciones con varios motores antivirus, menos que Virustotal. Además, muestra información como los permisos y las activities de la aplicación analizada. El servicio es accesible en http://andrototal.org/ (Enlace no disponible actualmente)

Dinámico

  • APKScan: Muestra gran cantidad de información:
    • Información general: hashes, tamaño, etc.
    • Análisis con Virustotal.
    • Capturas de pantalla de la aplicación en ejecución.
    • Captura del tráfico de red.
    • Posibilidad de exfiltración de información.
    Dispone de una API privada.
  • Mobile Sandbox: permite acceder a la información habitual de un análisis estático como permisos solicitados, receivers, services, content providers, etc. y muestra de una manera intuitiva la información a la que accede la aplicación, por lo que se pueden observar claramente los riesgos que supone la instalación de la misma. El servicio es accesible en http://mobilesandbox.org/
  • Akana: es un entorno interactivo online que muestra la información típica de un análisis estático junto con el análisis de Virustotal. El servicio es accesible en http://www.mobiseclab.org/ (Enlace no disponible actualmente)
  • Anubis: junto con la información característica de un análisis estático, muestra otra como el tráfico de red, captura de pantalla de la aplicación en ejecución, cadenas significativas, etc. El servicio es accesible en http://anubis.iseclab.org/ (Enlace no disponible actualmente)

Existen varias distribuciones que recopilan éstas y otras utilidades para realizar los análisis anteriormente descritos. De todas ellas, destacan las siguientes:

  • Santoku: es un entorno basado en Linux que incorpora un gran número de utilidades entre las que se encuentran muchas destinadas al análisis de malware para dispositivos móviles. Está disponible en https://santoku-linux.com/
  • Android Reverse Engineering (A.R.E): es una máquina virtual con multitud de herramientas expresamente diseñadas para el análisis de aplicaciones para Android. Está disponible en https://github.com/hannoL/AREsoft
  • MobiSec Lab: es un entorno basado en Ubuntu que incluye la infraestructura necesaria para realizar el análisis de aplicaciones. Está disponible en http://sourceforge.net/projects/mobisec/files/

En el caso de no disponer de muestras y querer conseguir algunas para probar las herramientas que se han descrito en el artículo, es posible obtenerlas a partir de diferentes orígenes:

  • APK Downloader: es un servicio online que permite descargar aplicaciones de Google Play. Está disponible en https://apps.evozi.com/apk-downloader/?id= (Enlace no disponible actualmente)
  • MyAPPSharer: es una utilidad disponible en Google Play que, una vez instalada en el dispositivo móvil, permite extraer otras aplicaciones instaladas en el terminal.
  • Contagio Mobile: el popular blog de malware para Android, dispone de un gran número de muestras que pueden ser descargadas para poder analizarlas.