¡Esta es una revisión vieja del documento!
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
- CONAN mobile
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.
Una vez obtenido el código de una aplicación, se puede realizar una búsqueda estratégica para identificar rápidamente sentencias sospechosas:
- Acceso s SQLite: db, sqlite, database, insert, delete, select, table, cursor…
- Notificaciones toast (tapjacking): toast
- Identificadores: uid, user-id, imei, deviceId, deviceSerialNumber…
- Conexiones: http, url, HttpURLConnection, URLConnection…
- Intents
- Localización GPS: getLastKnownLocation, requestLocationUpdates, getLatitude…
- Credenciales: username, user, pass, password…
