Blog
Walkthroughs técnicos

Cómo funciona un pentest de aplicación móvil

La secuencia real de un proyecto de iOS o de Android, de las rules of engagement al retest, incluido lo que este tipo de test no cubre a propósito.

M
Marta Alarcón
COO
29 de julio de 2026
7 min de lectura
Compartir:
Una aplicación móvil dibujada en tres capas, binario, almacenamiento en el dispositivo y transporte, con su tráfico pasando por un proxy que lo intercepta.

Qué es este test, y a qué responde

Un pentest de aplicación móvil es una evaluación manual de una app de iOS o de Android y del servidor con el que habla, hecha desde la posición de alguien que se ha descargado tu app en un dispositivo que controla por completo.

Esa última frase es toda la disciplina. Cuando una versión llega a una tienda, el atacante es dueño del tiempo de ejecución: la desmonta sin conexión, la instala en hardware sin restricciones, la engancha mientras corre y repite lo que envía, y nada de eso toca tu infraestructura.

Así que el test no responde a si la app es segura, sino a tres preguntas más estrechas: qué puede sacar alguien del paquete, qué puede saltarse en el dispositivo y qué le permite eso hacerle a tu servidor.

Alcance, versiones y rules of engagement

Nada técnico empieza hasta que el alcance está en papel: qué apps, qué plataformas, qué identificadores de versión, qué entorno de servidor, qué cuentas de prueba y qué podemos hacerle a cada cosa.

Las rules of engagement importan aquí más de lo que los clientes esperan, porque el trabajo tiene dos mitades con radios de daño muy distintos. Desmontar un paquete en nuestro hardware no toca nada tuyo. Seguir hasta tu API el token que encontramos dentro, sí. La NIST SP 800-115 define las rules of engagement como el documento que da al equipo de pruebas autoridad para realizar unas actividades definidas sin necesitar permisos adicionales. La mitad del servidor necesita antes ventanas acordadas, límites de frecuencia acordados y una persona de contacto con nombre.

Conviene decirlo de forma explícita
Probamos una versión que tú nos entregas, en nuestros propios terminales instrumentados. No en los teléfonos de tus usuarios, y no contra datos de producción salvo que se autorice antes por escrito una acción concreta y no destructiva.

Análisis estático: el paquete, desmontado

La primera fase técnica no necesita que nada esté en marcha. Abrimos el .apk, el .aab o el .ipa: el manifiesto o el Info.plist, el código compilado, los recursos, los SDK empaquetados y cada cadena de texto que se publicó por descuido.

Qué sale del paquete

  • Credenciales, claves de API y URL de endpoints escritas a fuego. OWASP lo pone en primer lugar del Mobile Top 10 de 2024, como M1: uso indebido de credenciales.
  • Restos de depuración que sobrevivieron a la compilación de publicación: equipos de preproducción, registros demasiado hablados, endpoints solo para desarrollo.
  • SDK de terceros y qué recogen. La cadena de suministro es la segunda de esa misma lista, como M2: seguridad insuficiente de la cadena de suministro.

Dónde se diferencian las plataformas

iOS y Android se acotan por separado, porque un fallo en una muchas veces no existe en la otra. La configuración de seguridad de red de Android deja que una app elija en qué autoridades de certificación confía, que renuncie al tráfico en claro y que fije certificados; para las apps orientadas a Android 9 (nivel de API 28) y superior, el valor por defecto pone cleartextTrafficPermitted a falso. App Transport Security funciona por defecto en las apps enlazadas contra el SDK de iOS 9.0 o posterior, y exige TLS 1.2 o superior y confidencialidad hacia el futuro mediante ECDHE. Las dos se pueden aflojar en unas pocas líneas, y aquí es donde te enteras.

En ejecución: la app en un dispositivo que controlamos

Esta fase es del móvil y de nada más. La versión se instala en un terminal con root o con jailbreak y la vemos trabajar. MASVS-RESILIENCE-1 enuncia la premisa mejor de lo que podríamos nosotros: correr sobre una plataforma que ha sido manipulada puede ser muy peligroso para una app, porque eso puede desactivar ciertas funciones de seguridad. Así que la manipulamos a propósito, y después examinamos en qué daba por hecho la app que podía confiar.

  • Almacenamiento local inseguro. MASVS-STORAGE-1 cubre los datos que se guardan a propósito; MASVS-STORAGE-2 cubre las fugas que nadie quiso, normalmente como efecto secundario de usar ciertas API o capacidades del sistema como las copias de seguridad o los registros.
  • Detección de root y de jailbreak, probada tal como está construida y no como está documentada. MASVS-RESILIENCE-4 existe porque la instrumentación en tiempo de ejecución permite a un atacante cambiar el comportamiento de la app mientras se ejecuta.
  • Comunicación entre procesos y secuestro de enlaces profundos: componentes exportados, esquemas de URL propios, enlaces universales, portapapeles, notificaciones. MASVS-PLATFORM-1 gobierna los mecanismos que usan las apps para exponer datos o funcionalidad de forma intencionada.
  • Comportamiento de la sesión y de la biometría: qué protege de verdad una acción sensible, y qué sobrevive a dejar la app en segundo plano, a una captura de pantalla o a una restauración desde copia de seguridad.

El tráfico, y el servidor que hay detrás de la app

Ahora la app habla y necesitamos leerla, lo que significa derrotar la fijación de certificados en un dispositivo que ya controlamos. Ese salto no es un hallazgo por sí mismo. Es la entrada a la mitad del proyecto donde está el daño.

La mitad que se salta la mayoría de los tests de móvil
MASVS-AUTH-1 lo dice sin rodeos: la aplicación de la autenticación y de la autorización tiene que estar en el extremo remoto. Un test que se para en el binario ve dónde están las llaves, nunca qué abren.

En el lado del servidor el trabajo es el que cubre un proyecto de API, acotado a la superficie que llama la app. Empieza por la autorización rota a nivel de objeto, la primera del OWASP API Security Top 10 de 2023: cambiar el identificador de una petición de tu objeto al de otra persona y ver si el servidor comprueba algo. La autorización rota a nivel de función, el consumo de recursos sin restricciones y la gestión inadecuada del inventario están en la misma lista.

Esas cadenas pocas veces terminan en la app: los mismos identificadores de objeto llegan a la API, y la API llega hasta donde pueda llegar la cuenta cloud que hay detrás.

Explotación, encadenado y verificación

Hasta aquí tenemos candidatos. La explotación convierte un candidato en un hecho, y es lo que separa un pentest de un escaneo. La NIST SP 800-115 traza la raya: mientras los escáneres de vulnerabilidades solo comprueban la posible existencia de una vulnerabilidad, la fase de ataque de un pentest la explota para confirmar que existe.

Una clave dentro del binario es una nota. Una clave que además sigue autenticando contra un endpoint de producción, que a continuación devuelve los registros de otro cliente, es un incidente que alguien todavía no ha tenido. Así que cada candidato se lleva hasta donde llegue, y las fases hacen bucle: el modelo de cuatro etapas de la NIST SP 800-115, planificación, descubrimiento, ataque e informe, tiene un camino de realimentación documentado que vuelve del ataque al descubrimiento.

Cada paso que funciona se guarda para que tus desarrolladores puedan repetirlo: petición y respuesta, guion de instrumentación, estado del dispositivo e identificador de la versión.

Qué recibes, y el retest que lo cierra

  • Una lectura ejecutiva. Qué puede hacer un atacante, con qué datos y qué cuesta. Escrita para reenviarla.
  • Una lectura técnica. Por hallazgo: componente y plataforma afectados, pasos para reproducirlo, la petición y la respuesta o el guion de enganche, evidencia, severidad y corrección.
  • El paquete de evidencias. Capturas, registros, guiones de prueba de concepto y el identificador de la versión que hay detrás de cada prueba.
  • Un mapa de cobertura, para que veas qué se verificó y no solo qué falló. La lista de comprobación de OWASP MAS incluye enlaces a los casos de prueba de MASTG de cada control de MASVS.

La severidad se puntúa con CVSS, que mantiene FIRST. Una puntuación base es la severidad técnica intrínseca, constante entre entornos y en el tiempo, y la especificación es explícita en que alimenta un proceso de riesgo que pesa además la exposición normativa, el impacto en el cliente y la pérdida para el negocio. Los hallazgos se ordenan por lo que alcanzan en tu entorno.

Después el retest. Un hallazgo está cerrado cuando la prueba de concepto original deja de funcionar contra la versión corregida, relanzada en los mismos dispositivos y con los mismos pasos. Eso pilla la corrección dirigida a la demostración en vez de al patrón, y la corrección que entró en la app mientras el servidor seguía aceptando la petición antigua. Todos los proyectos de Asperis lo incluyen sin coste adicional.

Qué necesitas tener listo, y cuánto dura

Ten esto listo antes del primer día

  • Una versión firmada e instalable por plataforma, idealmente la de publicación, más el identificador para imprimirlo en el informe.
  • Cuentas de prueba, dos por rol como mínimo, con lo que haga falta para pasar el alta: entrega del código de un solo uso en un sitio legible, comprobaciones de identidad en modo de pruebas, un monedero de prueba con saldo.
  • El entorno de servidor y las URL base, y una decisión entre producción y preproducción, declarando cualquier diferencia de autenticación, de volumen de datos o de configuración.
  • Personas de contacto con nombre en los dos lados, y un canal por el que un hallazgo crítico llegue a quien decide en menos de una hora.
  • Documentación de la API, el inventario de SDK y los informes anteriores.

De cuánto es la ventana

Una app de una sola plataforma son normalmente una o dos semanas de pruebas activas. Las dos, iOS y Android, o un servidor complejo dentro del alcance, se van a dos o tres semanas. El alcance se acuerda antes de que se abra esa ventana y el retest va detrás de tus correcciones.

Qué lo mueve: las plataformas que entran, cuántos roles autenticados hay, el tamaño de la superficie de API, si la app maneja pagos, identidad o datos de salud, y si hay que derrotar antes los controles de resiliencia.

Los marcos con los que se corresponde

  • OWASP MASVS, hoy en la v2.1.0, publicada en enero de 2024. Ocho grupos de control: MASVS-STORAGE, MASVS-CRYPTO, MASVS-AUTH, MASVS-NETWORK, MASVS-PLATFORM, MASVS-CODE, MASVS-RESILIENCE y MASVS-PRIVACY. Desde la v2.0.0 elimina los antiguos niveles de verificación L1, L2 y R, que pasaron a ser los perfiles de pruebas de MAS dentro del MASWE.
  • OWASP MASTG, la guía de pruebas que va al lado: casos de prueba, técnicas, herramientas y demostraciones para Android y para iOS. MASVS dice qué tiene que ser verdad; MASTG dice cómo se comprueba.
  • NIST SP 800-115, Technical Guide to Information Security Testing and Assessment, septiembre de 2008, para la forma del proyecto: planificación, descubrimiento, ataque, informe.
  • PTES, cuyos siete apartados van de las interacciones previas al encargo y la recogida de inteligencia al informe, pasando por modelado de amenazas, análisis de vulnerabilidades, explotación y postexplotación.

El OWASP Mobile Top 10 de 2024 es una lista de concienciación y no una metodología; los hallazgos se corresponden con ella porque tus interlocutores la conocen. Para las apps que compras en vez de construir, la NIST SP 800-163 revisión 1, Vetting the Security of Mobile Applications, de abril de 2019, es el proceso complementario.

Qué no cubre un pentest de móvil

  • No hace que la app sea segura en un dispositivo hostil. MASVS-RESILIENCE-4 aspira a que el análisis dinámico sea lo más difícil posible. Difícil, no imposible. La atestación de la app móvil y las comprobaciones de root suben el coste del atacante; no sustituyen a un servidor que valide cada petición.
  • No es una prueba completa de tu servidor. Cubrimos la superficie de API que llama la app. Los endpoints que no toca ningún cliente móvil, los servicios internos y los paneles de administración necesitan su propio proyecto de aplicación web.
  • No es una auditoría de código fuente. Un binario publicado enseña lo que se publicó, que es la vista del atacante, pero no es tu repositorio: la lógica a la que no lleguemos dentro de la ventana se puede quedar sin ver.
  • No es una evaluación de infraestructura ni de cloud. Los servidores, el almacenamiento, la configuración de identidad y la red que hay detrás de tu API son de un proyecto cloud.
  • No es continuo. Un pentest es un momento concreto contra una versión con nombre; la siguiente publicación puede reintroducir cualquier cosa que se cerrase. La NIST SP 800-115 llama a la técnica intensiva en trabajo y muy exigente en pericia: el intercambio es profundidad en una versión, no cobertura en el tiempo.
  • No es un certificado de cumplimiento. El informe es evidencia que un auditor puede aceptar, no una declaración de ISO 27001 ni del ENS.

Si un proveedor dice que su test de móvil cubre las seis, pregúntale cuál de las seis no está haciendo.

Fuentes

Todas las referencias a marcos y todos los valores por defecto de plataforma de este artículo salen de aquí.

M
Marta Alarcón
COO
Compartir:

Si algo de aquí se parece a un problema que llevas encima, media hora de llamada para acotarlo con un pentester senior vale más que leer otro artículo.

Hablar con un pentester senior