Tabla de Contenidos

Seguridad en Android

Sistema de permisos

Android utiliza un sistema de permisos de aplicaciones para protegera al usuario. Dependiendo de la funcionalidad de la aplicación, requerirá unos permisos concretos.

Los permisos de las aplicaciones vienen definidos en el fichero AndroidManifest.xml, en las líneas <user-permission>

En Android 6.0 y posteriores, el sistema concede automáticamente los permisos normales a la aplicación en el momento de la instalación, mientras que los permisos peligrosos deben ser concedidos explícitamente por el usuario durante la ejecución de la aplicación.

Rooting

En sistemas Unix, el usuario con máximos privilegios es root

Por defecto, Android no habilita esta característica para proteger al usuario. Es relativamente sencillo obtener permisos de root en el teléfono. Se dice que se rootea el dispositivo accediendo así a funciones muy avanzadas no orientadas al usuario final, como por ejemplo instalar ROMs alternativas o desinstalar las aplicaciones preinstaladas del terminal.

Un teléfono rooteado es más potente, pero conlleva riesgos de seguridad. Una aplicación con permisos de root puede, por ejemplo, romper el sandboxing y acceder a datos de otras aplicaciones.

Algunas aplicaciones como SuperSu mitigan parcialmente el riesgo de asignación de permisos root concediendo estos permisos solamente a aplicaciones concretas.

Google Play Protect

Servicio de Google para protección contra amenazas en dispositivos móviles.

Realiza análisis del terminal automáticamente y de forma periódica.

En caso de perdida del dispositivo, permite localizarlo, bloquearlo de forma remota, mostrar en pantalla un mensaje para que la persona que pueda encontrarlo sepa con quién contactar, etc.

El mismo servicio es el encargado de analizar las aplicaciones que se suben a Google Play y de descartar aquellas que no cumplen c on los requisitos mínimos de seguridad.

También ofrece protección web, bloqueando el acceso a páginas potencialmente maliciosas.

Protección contra malware

Análisis de código

Descomprimir APK

Con cualquier herramienta que maneje ficheros zip, podemos descomprimir un fichero .apk. El fichero AndroidManifest.xml no es legible directamente porque está en formato binario, es necesario utilizar apktool:

java -jar apktool_2.0.3.jar d applicacion.apk

Decompilar

Utilizando la herramienta dex2jar, podemos obtener un fichero .jar (.class comprimido) que luego puede ser cargado en JD-GUI, un decompilador, para obtener el código fuente.

Análisis del código fuente

Una vez obtenido el código de una aplicación, se puede realizar una búsqueda estratégica para identificar rápidamente sentencias sospechosas: