Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

El manifiesto: permisos, componentes expuestos y política de red

5 tareas · 45 min · Principiante

El manifiesto de Android y el Info.plist de iOS son la ficha técnica de la app: declaran qué permisos pide, qué pantallas y servicios quedan abiertos a otras apps y con qué reglas habla con la red. Se leen en minutos y casi siempre dicen dónde mirar después. La habilidad no es reconocer cada línea, sino contrastar lo que la app declara con lo que la app dice hacer, y separar lo que es hallazgo de lo que es configuración normal. Trabajas sobre la configuración decodificada de Gaviota Móvil, en lectura.

0 de 5 · 0%

Objetivo de la sala

El manifiesto de Android y el Info.plist de iOS son la ficha técnica de la app: declaran qué permisos pide, qué pantallas y servicios quedan abiertos a otras apps y con qué reglas habla con la red. Se leen en minutos y casi siempre dicen dónde mirar después. La habilidad no es reconocer cada línea, sino contrastar lo que la app declara con lo que la app dice hacer, y separar lo que es hallazgo de lo que es configuración normal. Trabajas sobre la configuración decodificada de Gaviota Móvil, en lectura.

En Android, una pantalla (activity), un servicio, un receptor o un proveedor de contenido puede ser invocado por otras apps del teléfono si está exportado. Es lo que permite, por ejemplo, que la app de cámara abra tu app para compartir una foto. El peligro aparece cuando se exporta algo interno que no debía ser invocable desde fuera, y sin pedir ningún permiso a quien lo invoca.

Desde Android 12, quien compila para esa versión o una posterior debe escribir el valor de android:exported en todo componente que tenga filtros de intención; si falta, la app no se instala. Eso hace explícita la decisión, pero no la corrige: un valor true mal puesto sigue siendo un fallo. Para el pentester, la pregunta de cada componente exportado es: ¿lo necesita otra app y quién puede llamarlo?

Responde para continuar

Un componente tiene android:exported="true" y no declara ningún permiso. ¿Qué significa?

Ver pista de ayuda

Exportado quiere decir invocable desde fuera de la app.

El punto de entrada de la app, el que lleva la categoría de lanzador, debe estar exportado: es lo que permite abrirla desde el icono. Lo demás se juzga por su función. Una pantalla que muestra datos de una cuenta no debería poder abrirse desde otra app sin que el sistema compruebe quién llama.

Lee el manifiesto de Gaviota Móvil. Hay un componente exportado, distinto del arranque, que no pide ningún permiso a quien lo invoca y muestra datos de una transferencia.

Responde para continuar

¿Qué componente exportado, distinto del de arranque, no exige permiso a quien lo invoca?

Ver pista de ayuda

Revisa uno a uno los componentes con exported en true y mira cuáles declaran un atributo de permiso.

Un componente exportado que exige un permiso de nivel «firma» solo puede ser invocado por apps firmadas con la misma clave que la app que lo declaró; es decir, por el propio cliente. Es el patrón correcto para comunicarse entre dos apps de la misma empresa. Marcarlo como hallazgo de exposición sería ruido: un informe lleno de falsos positivos le quita crédito al hallazgo real.

El manifiesto trae un servicio de sincronización exportado. Mira cómo lo declara.

Responde para continuar

El servicio de sincronización está exportado, pero declara un permiso de nivel firma. ¿Qué haces con él?

Ver pista de ayuda

Piensa en quién puede conseguir un permiso de nivel firma.

Cada permiso que pide la app amplía lo que puede hacer si alguien la compromete, o lo que puede filtrar ella misma. El criterio es el de mínimo privilegio: cada permiso debe corresponder a una función real. Un permiso que ninguna función justifica es un hallazgo de privacidad y de superficie, aunque nadie lo esté usando mal hoy.

Lee la lista de funciones de la app y contrasta con los permisos que declara el manifiesto.

Responde para continuar

¿Qué permiso de los declarados no corresponde a ninguna función de la app? Escribe su nombre tal como aparece.

Ver pista de ayuda

Cruza los cinco usos que la gerencia de producto declara con los cuatro permisos que pide el manifiesto.

En las apps que apuntan a Android 9 o posterior, el tráfico sin cifrar está prohibido por defecto; una app solo lo acepta si su configuración de seguridad de red lo permite de forma explícita. En iOS, la protección de transporte de la app (ATS) exige HTTPS, y se puede relajar con excepciones por dominio. Un cliente con las dos apps suele repetir la misma excepción en ambas, por un servidor antiguo que nunca se migró.

Compara el archivo de configuración de red de Android con la sección de transporte del Info.plist: coinciden en un dominio que acepta HTTP.

Responde para continuar

¿Qué dominio aceptan sin cifrar las versiones de Android y de iOS?

Ver pista de ayuda

En Android busca la entrada con el tráfico en claro permitido; en iOS, el dominio de excepción de transporte.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad