Una aplicación móvil se ejecuta en un dispositivo que su desarrollador no controla. Todo lo que se incluye en el paquete se puede leer, cualquier comprobación hecha en el dispositivo se puede eludir y cualquier secreto incrustado en el código es público el mismo día en que se publica la aplicación.
Analizamos la aplicación de forma estática y en dispositivos instrumentados, interceptamos su tráfico y probamos el backend con el que se comunica. La pregunta es siempre la misma: qué puede hacer alguien que tiene el dispositivo en sus manos o que comparte una red con él.
01Alcance
Qué ponemos a prueba
Almacenamiento local: bases de datos, preferencias, keychain y keystore, archivos de registro, copias de seguridad
Criptografía: algoritmos, gestión de claves, secretos incrustados
Red: configuración TLS, anclaje de certificados (certificate pinning), tráfico sin cifrar
Autenticación: biometría, tokens, gestión de sesiones, vinculación al dispositivo
Interacción con la plataforma: deep links, intents, esquemas de URL, WebView, portapapeles
Calidad del código y configuración de compilación: indicadores de depuración, componentes exportados, permisos
Resiliencia: detección de root y jailbreak, protección contra la manipulación, ofuscación
API del backend que usa la aplicación
02Enfoque
Cómo se realiza el trabajo
01
Análisis estático
El paquete se desempaqueta y se descompila. Leemos la configuración, buscamos secretos y estudiamos cómo la aplicación almacena y protege los datos.
02
Análisis dinámico
La aplicación se ejecuta en dispositivos instrumentados. Interceptamos sus funciones, eludimos sus comprobaciones y observamos lo que escribe y lo que envía.
03
Análisis del tráfico
El tráfico se intercepta con el anclaje de certificados desactivado. Después, el backend se prueba directamente, sin las restricciones que impone el cliente.
04
Abuso de la plataforma
Llamamos a la aplicación desde otras aplicaciones del dispositivo a través de sus enlaces, intents y componentes exportados.
Clase de debilidad que hay detrás de cada hallazgo.
The MITRE Corporation
06Preguntas
Preguntas sobre este servicio
¿Tenemos que darles el código fuente?
No. La aplicación se prueba tal como se distribuye. El código fuente hace el trabajo más rápido y los hallazgos más precisos, y puede añadirse con el servicio «Revisión de seguridad del código».
¿Se incluye el backend?
Sí. Una prueba móvil sin el backend cubre la mitad de la superficie de ataque. La API se prueba a través de la interfaz que usa la aplicación.
Nuestra aplicación usa anclaje de certificados y detección de root. ¿Impide eso las pruebas?
Frena a un atacante y también nos frena a nosotros. Eludimos las protecciones e indicamos cuánto esfuerzo requirió, lo que le dice cuánto valen.