Analisis Estatico Android
Herramientas
Entre las herramientas más conocidas tenemos:
Analizar
Permisos de AndroidManifest.xml
Debuggable
Este atributo permite depurar la aplicación.
En el caso de no estar indicado el valor (es decir, si nos encontramos solamente android:debuggable
), el apk NO es depurable.
AllowBackup
En el caso de estar como "true", permite realizar backups de los datos que contiene a través de ADB.
WAKE_LOCK
Permite que el dispositivo permanezca activo y evita que entre en estado de suspensión.
GET_TASKS
Permite a la aplicación acceder a los procesos que se encuentran activos/corriendo en el dispositivo.
WRITE_EXTERNAL_STORAGE
Permite a la aplicación acceso de escritura al contenido de la tarjeta SD.
Directorios y ficheros
Para analizar el código fuente de la aplicación, podemos usar JADX.
En los WebView, debemos tener en cuenta
myWebView.settings.javaScriptEnabled = true
ya que puede facilitar la ejecución de XSS.
Almacenamiento y Base de datos
Buscar palabras clave y llamadas a APIs usadas para almacenar información. Algunas de las clases y funciones son:
clase
SharedPreferences
( almacena parejas de clave-valor)clase
FileOutPutStream
(usa almacenamiento interno o externo)funciones
getExternal*
(usa almacenamiento externo)función
getWritableDatabase
(devuelve una bdd SQLiteDatabase con permisos de escritura)
Buscar en el código fuente:
función
getReadableDatabase
(devuelve una bdd SQLiteDatabase con permisos de lectura)funciones
getCacheDir
ygetExternalCacheDirs
(usan ficheros cacheados)
Ubicación común de claves/API keys/contraseñas:
res/values/strings.xml
build configs (local.properties o gradle.properties)
/data/data/<package-name>/shared_prefs
/data/data/<package-name>/files/
Base de datos
La ruta donde se almacenan las bdd de las aplicaciones es
/data/data/<package-name>/databases/
Copiar la base datos de la aplicación al entorno de pruebas con
y posteriormente abrir SQLite e importar la base de datos.
Last updated