Tutorial de uso de Mobsf y Docker para análisis forense de apps android

Tutorial de uso de Mobsf y Docker para análisis forense de apps android

¿Qué es Docker?

Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y automatización de Virtualización a nivel de sistema operativo en Linux

¿Qué es Mobsf?

Es un entorno multiplataforma de análisis de malware, capaz de desentrañar rápidamente la esencia de un APK para mostrar al analista un panorama de aquello a lo que se enfrenta.

La herramienta puede ser utilizada para analizar ejecutables de Android (APK), iOS (IPA) y Windows Mobile (APPX), como también código fuente empaquetado en archivos ZIP.

Antes de empezar

En este caso vamos a usar la suite de Docker ToolBox.

Una vez instalado Docker ToolBox en el escritorio nos aparecen 3 iconos (Virtual Box, Kinematic y Docker Quickstart Terminal). Para usar Docker tenemos dos opciones:

  • Usar Kinematic(Alpha) que es mucho más visual

  • Usar Docker Quickstart Terminal

Instalación de Mobsf desde la terminal

Docker Terminal
El la terminal de Docker Quickstart Terminal ponemos los dos siguientes comandos:

docker pull opensecurity/mobsf

docker run -i -t -p 8000:8000 opensecurity/mobsf:latest

Instalación de Mobsf desde Kinematic(Alpha)

En este caso vamos a usar Kinematic ya que es la opción más sencilla y visual de instalar Mobfs y cualquier otro programa. Una vez abres el programa empieza a iniciarse comprueba que si el equipo tiene Hyper-V y los requisitos, si el proceso falla os da dos opciones reintentar o usar virtual box. En este caso usamos virtual box ya que las versiones home de Windows 10 no tienen Hyper-V.

Una vez se inicia os aparecerá una pantalla de Login, ahora tienes dos opciones crearte una cuenta en Kinematic o darle al botón de skip for now.
Kinematic Login
Una vez pasamos la pantalla de login nos aparecerá una pantalla como esta en la nos saldrán algunas imágenes que podemos descargar y usar en Docker.
Imagenes Kinematic Doker
Ahora usamos la lupa y buscamos mobsf y elegimos la imagen del desarrollador opensecurity. Una vez la encontramos le damos a Create y se comenzará a descargar.

Una vez acaba la descarga ya se ejecuta la imagen automáticamente. Si veis que no arranca sola podéis darle al botón de start,en esa pantalla os saldrá un log donde podéis ver como se ejecuta y los errores que se producen.

Para poder usar mobfs tenemos que acceder a su interfaz gráfica desde el navegador web. Para ello pulsamos el botón que veis en la siguiente imagen pintado de amarillo.
Mobfs en ejecución
Una vez se abre el navegador os carga una web en la que debéis subir un archivo apk, zip, app de iOS o Android para ponerla a analizar. Con sólo arrastrar el archivo a ese recuadro blanco ya se sube y empieza el análisis automáticamente.
Menú inicial mobsf
Para probar su funcionamiento vamos a usar la App Android de Mi Home, concretamente la versión 4.3.15 que ya contiene la traducción parcial al español.

Resultado Análisis App Mi Home
Como podemos ver en el siguiente análisis ninguna de las urls que están en el código de la App son sitios que estén en la lista negra por difusión de malware o que manden malware remotamente a la App.
Check Malware in Mi Home App

En el apartado de la seguridad de la firma nos dice que es una firma insegura porquw el algoritmo de cifrado SHA-1 fue roto en 2013. Para ello sólo hizo falta usar el servicio cloud de Amazon y romper el algoritmo les costó 10,000 dólares.

Firma app Android SHA1

Com sabemos la forma de la App usa de cifrado SHA1withRSA este cifrado se usa en Android desde la api 18 (Android 4.3 Jelly Bean) y es compatible con nuevas versiones de android posteriores. Aún así en la actualidad existen nuevos métodos para firmar apps más seguros.

¿Qué más cosas puedes analizar?

  • File information: consta del nombre de la muestra, su tamaño y los hashes resultados de diferentes funciones hash (MD5, SHA1, SHA256).

  • App information: aquí se encuentran los detalles de la aplicación mayormente obtenidos del Android Manifest, como ser el nombre del paquete, el nombre de clase de la actividad principal a ser lanzada por el laucher y atributos referentes a los requisitos de la plataforma para la cual la aplicación fue desarrollada.

Si mis desplazamos por la pantalla hacia abajo nos encontramos con los posibles elementos vulnerables de esta aplicación y seguidamente encontraremos en la pantalla cuatro recuadros que nos resumen la información referente a las actividades, servicios, receptores de intentos y proveedores de contenidos, indicando cuántos de ellos son exportados. La identificación de estos cuatro elementos es un paso rutinario en cualquier proceso de análisis de malware o pentesting de aplicaciones, ya que nos permitirá no solo saber cómo se comporta la aplicación, sino también encontrar posibles puntos de ataque.

También desde MobSF podemos analizar el código descompilado y nos permite acceder a un listado de las clases tanto en formato java como en smali. Además, encontramos dos opciones: una para escanear nuevamente la muestra y otra para iniciar su análisis dinámico.

Con el certificado podemos usar plataformas como Koodous para ver si ese desarrollador se vio involucrado en alguna App con malware que se encontrará por la red y saber un poco más sobre quién ese el desarrollador de esa App.

Otra cosa muy interesante es el listado de permisos con el podremos observar una lista de los permisos declarados en el manifest de la aplicación. Además de una descripción del mismo y una categorización según la peligrosidad que puede representar para el sistema al acceder a información o funcionalidad sensible.