3,2,1 … Empezamos!
Nueva entrada en el blog en la cual vamos a explicar los diferentes tipos de análisis en una auditoría móvil, aplica tanto a Android como iOS.
En este post nos vamos a centrar en conocer brevemente cuáles son los tipos de análisis de auditorías móviles que podemos realizar sobre estas. Existen dos tipos de análisis: estático y dinámico.
ANÁLISIS ESTÁTICO
El análisis estático de una aplicación consiste en el estudio del comportamiento de esta sin necesidad de interactuar con ella. Durante este análisis se realiza una revisión del código fuente en busca de posibles vulnerabilidades como pueden ser los puntos de inserción de la aplicación (incorrecta validación de datos) o las diferentes modificaciones que puede realizar durante el proceso de ejecución.
Algunas de las cosas más relevantes que suelen ser revisadas en este apartado son:
- Comprobar si el código está ofuscado.
- Comprobar si la aplicación se ejecuta en un móvil rooteado y/o emulado y/o virtualizado.
- Analizar el archivo “Androidmanifest.xml” en el cual podremos revisar los permisos de los que dispone la aplicación, comprobar si se pueden hacer copias de la app o se puede poner en modo debug entre otras cosas (sólo para Android).
- Comprobar si existen credenciales en el código fuente de la aplicación.
- Revisar si existen URLs o IPs expuestas en el código fuente.
- Revisar los ficheros .plist (sólo para iOS) en busca de configuraciones erróneas en la configuración de red, entre otras cosas.
Existen varias herramientas que facilitan este tipo de análisis como pueden ser jadx, Hopper, MobSF o GrapeFruit entre otras.
ANÁLISIS DINÁMICO
El análisis dinámico de una aplicación consiste en el estudio del comportamiento de esta durante su ejecución. En esta parte del análisis nos centramos en las comunicaciones que se realizan entre el cliente y servidor analizando las diferentes peticiones y respuestas en tiempo de ejecución, la modificación de ficheros, etc.
Algunas de las cosas más relevantes que se suele revisar en este apartado son:
- Analizar en tiempo real el comportamiento de la aplicación mientras se ejecuta.
- Analizar la información que se almacena en las bases de datos locales.
- Revisar si está habilitado el portapapeles y si se almacenada información sensible.
- Revisar si la aplicación gestiona correctamente los errores durante la ejecución.
- Comprobar si es posible evadir el Certificate Pinning.
Existen varias herramientas que facilitan este tipo de análisis como pueden ser Frida, Drozer o BurpSuite entre otras.
Una cosa importante que me gustaría destacar es que, si nos encontramos en una auditoría Android e iOS, es IMPORTANTE realizar el análisis dinámico de ambas aunque las peticiones se haga a la misma URL. Os podéis preguntar el motivo de esto ya que, de primeras, puede parecer que es hacer el mismo trabajo 2 veces. La respuesta es sencilla: mientras se interactúa con la aplicación, dependiendo cómo esté configurada, puede almacenar en el dispositivo información sensible en diferentes bases de datos, cookies de sesión, etc.
Por ello, es muy importante que, cuando se realice una auditoría que este disponible para ambos sistemas operativos, se compruebe tanto la parte estática como la dinámica de la aplicación Android e iOS.
Espero que os haya sido útil para conocer de forma resumida los diferentes análisis que existen en el proceso de una auditoría móvil.
¡Nos vemos en el próximo! 😊






