Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Permisos: normales, peligrosos y los que la app pide sin usar

5 tareas · 35 min · Principiante

Los permisos son lo que una aplicación le pide al sistema, y por extensión al usuario. Android los clasifica por nivel de protección: unos se conceden al instalar sin molestar a nadie, otros exigen que el usuario los apruebe cuando la app los necesita, y otros solo los puede tener quien comparta firma. En una revisión autorizada el permiso importa por dos motivos: lo que da si la app se compromete, y lo que revela de la app si se pide sin usar. En esta sala se contrasta la lista de permisos de Quetzal Recibos con el uso que el análisis estático encuentra en su código, y se redacta la medida que corresponde.

0 de 5 · 0%

Objetivo de la sala

Los permisos son lo que una aplicación le pide al sistema, y por extensión al usuario. Android los clasifica por nivel de protección: unos se conceden al instalar sin molestar a nadie, otros exigen que el usuario los apruebe cuando la app los necesita, y otros solo los puede tener quien comparta firma. En una revisión autorizada el permiso importa por dos motivos: lo que da si la app se compromete, y lo que revela de la app si se pide sin usar. En esta sala se contrasta la lista de permisos de Quetzal Recibos con el uso que el análisis estático encuentra en su código, y se redacta la medida que corresponde.

Según la documentación oficial de Android, los permisos de instalación se conceden al instalar la app. Entre ellos están los normales, que dan acceso a datos o acciones de riesgo mínimo para la privacidad, y los de firma, que solo se conceden a quien comparte certificado con la app o el sistema que los define. Los permisos peligrosos, en cambio, dan acceso a datos sensibles y exigen que el usuario los apruebe en tiempo de ejecución: la ubicación, los contactos, la cámara, el micrófono o los mensajes.

Para una revisión, el nivel decide la prioridad: un permiso peligroso sobrante es un hallazgo; uno normal casi nunca lo es. Los permisos propios de la app, definidos en su manifiesto, suelen ser de firma: sirven para que solo otras apps de la misma empresa llamen a sus componentes.

Responde para continuar

¿Qué distingue a un permiso peligroso de uno normal?

Ver pista de ayuda

Piensa en el diálogo que ve el usuario: lo piden los permisos que tocan datos sensibles, no los de riesgo mínimo.

El analizador estático busca en el código las referencias a cada permiso declarado. Un permiso con cero referencias es un permiso que la aplicación pide y no necesita: no hace nada útil, y si el permiso es peligroso, deja a la app con acceso a datos que no usa, y a un usuario con un diálogo de más. Si la aplicación se compromete por otro lado, ese acceso sobrante lo hereda quien la controle.

La medida es el mínimo privilegio: quitar de la declaración lo que no se usa. A veces el permiso es herencia de una biblioteca o de una función retirada, así que el hallazgo se redacta como «declarado sin uso» y se confirma con el equipo antes de proponer la baja.

Responde para continuar

En la salida del analizador, escribe el nombre corto del permiso peligroso que tiene cero referencias en el código.

Ver pista de ayuda

Compara las dos lecturas: declarados con su nivel, y uso en el código. Busca la fila con cero referencias.

Un número honesto abre el informe: cuántos permisos peligrosos declara la app. No cuenta el total de permisos, porque los normales casi no pesan, ni cuenta los que el usuario podría negar por su cuenta. Cuenta los que el manifiesto declara con nivel peligroso. Es un indicador de superficie, no de culpa: una app de mapas tiene más que una calculadora, y cada uno se justifica o no por la función.

El número se obtiene de la lista de permisos declarados y de su nivel de protección. Se anota junto a los permisos que se justifican por función, para que el lector vea cuántos de los peligrosos tienen una razón visible en la app.

Responde para continuar

Cuenta los permisos con nivel peligroso que declara el manifiesto de Quetzal Recibos y escribe cuántos son.

Ver pista de ayuda

Usa la lista de declarados con su nivel; no cuentes el permiso que define la propia app ni los de nivel normal.

Una aplicación puede definir sus propios permisos, normalmente de nivel de firma, para proteger sus componentes frente a otras apps. Definir el permiso no basta: hay que aplicarlo a los componentes, con el atributo permission o con los atributos de lectura y escritura de un proveedor. Un permiso definido y no aplicado es una intención que no llegó a ejecutarse, y suele aparecer en el análisis como «definido, no aplicado».

Este caso conecta con la sala anterior: el proveedor de recibos exportado sin permiso estaba pidiendo a gritos una protección, y la app tenía una definida. La corrección es aplicarla, no definir otra.

Responde para continuar

Escribe el nombre del permiso propio que la app define y no aplica a ningún componente.

Ver pista de ayuda

Está al final de las dos lecturas, en el bloque aparte de los permisos que define la propia app.

La medida de un hallazgo de permisos tiene dos caras. Para el permiso peligroso sin uso: quitarlo del manifiesto, tras confirmar que ninguna función ni biblioteca lo necesita. Para el permiso propio sin aplicar: aplicarlo al componente que debía proteger, y comprobar que las apps de la misma empresa que lo usan tienen la misma firma. En ambos casos la severidad se decide por lo que dejaría alcanzable, no por cuántos permisos haya.

Una medida mal redactada es la que pide «revisar los permisos» sin decir cuáles. Un informe útil nombra el permiso, el componente y el cambio exacto.

Responde para continuar

Para el permiso peligroso sin uso y el permiso propio sin aplicar, ¿qué medidas se proponen?

Ver pista de ayuda

Mínimo privilegio para lo que sobra, y aplicación real para lo que se definió pero no se usó.

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