Auditorías de seguridad para Apps (II)

En el artículo anterior, comentábamos la importancia de la seguridad en aplicaciones móviles, y presentábamos la herramienta Mobile Security Framework (MobSF), haciendo especial hincapié en la forma de utilizarla para realizar el análisis de código estático.

Continuando con el mismo ejemplo que utilizamos para el anterior artículo (APK de Android), mostraremos brevemente cómo funciona el análisis dinámico con MobSF y el potencial que tiene.

El entorno puede ser configurado de varias formas, pudiendo elegir la que más se adapte a las necesidades del técnico de seguridad o a la situación en la que nos encontremos. Podríamos utilizar la propia máquina virtual que el framework proporciona, importándola a VirtualBox, que es la que utilizaremos a continuación. También tenemos la capacidad de utilizar un dispositivo Android real o una máquina virtual diferente, por ejemplo, preparada por nosotros mismos. Por el momento, no podemos ejecutar análisis dinámicos con iOS. Esperamos que se añada dicha funcionalidad en un futuro, ya que el proyecto se encuentra en constante evolución.

Si nos encontramos en la situación de analizar un APK, como en este caso de ejemplo, es muy útil completar el análisis anterior (estático) con los datos obtenidos del análisis dinámico, pudiendo obtener resultados mucho más concluyentes e interesantes.

Simplemente pulsando en Start Dynamic Analysis, nos lanza la máquina virtual donde ejecutará la aplicación. Preparamos el entorno de forma automática pulsando en Create Environment.

cp6

Ahora podemos interactuar con la aplicación de forma normal. Mientras, MobSF irá interceptando los datos y comunicaciones que se van generando, gracias a la configuración requerida del framework, VM y proxy, tal y como se detalla en la documentación oficial. Además, cuenta con opciones muy útiles, tales como tomar capturas de pantalla, compartir pantalla en la interfaz web y una especialmente interesante: un tester automático, que ejecuta todas las actividades de la aplicación. Así no olvidamos pasar nada por alto una vez hemos realizado la exploración manual.

Cuando finalizamos el análisis dinámico, es hora de estudiar los resultados para obtener las conclusiones pertinentes. Al igual que en el análisis estático, se nos presenta una intuitiva interfaz para visualizar los datos, además de poder descargar el reporte completo.

cp7

Seremos capaces de analizar desde las llamadas de la propia aplicación a las diferentes librerías, hasta las comunicaciones de red, pasando por los archivos locales y remotos que se están cargando en tiempo de ejecución, pudiendo tener las capturas de pantalla que deseemos, así como las tomadas automáticamente por los diferentes tester que proporciona la herramienta.

cp8

cp9

cp10

Por último, también tendremos disponible la funcionalidad de Web API Fuzzer, con la que podremos aplicar técnicas de fuzzing a las URLs con las que interactúa la aplicación móvil, es decir, con su Web API, que hemos podido obtener durante todo el proceso de análisis. Tiene como finalidad detectar vulnerabilidades en dicha API, utilizando una serie de test predefinidos (information gathering, security headers, session handling, etc).

Al igual que el resto de la herramienta, puede ser personalizada (el código fuente es público), por lo que podríamos cargar o generar nuestros propios test, añadiéndolos a la lógica del Web API Fuzzer.

cp11Imagen obtenida de la web oficial.

Conclusiones

Mobile Security Framework se encuentra, en constante mantenimiento y progresión. Se trata de un proyecto muy vivo. La última actualización es la que se ha detallado en esta serie de artículos, siendo muy reciente: 8 de marzo de 2016.

Se trata de una herramienta útil destinada a auditorías de seguridad de aplicaciones móviles, que sirve de gran ayuda al trabajo diario del técnico de seguridad. Es interesante también para asuntos de análisis de malware, pudiendo investigar el comportamiento tanto estático como dinámico (a modo de sandbox).

Es un framework muy interesante a tener en cuenta, tanto como para añadirlo a nuestra arsenal de tools, que permite identificar vulnerabilidades y puntos débiles, que pueden ser aprovechados con otras herramientas más intrusivas y quizá más enfocadas al pentesting de dispositivos móviles, como DrozerFrida o haciendo uso del propio Metasploit. Ese es otro asunto que quizás se trate en un futuro, en este mismo blog.