El problema radica en el modelo de permisos de Android (-x). El investigador de seguridad belga Arne Swinnen ha ayudado a Google a arreglar un problema de seguridad en Android 7 que permitía (en los sistemas operativos anteriores) a los atacantes obtener suficientes datos sobre el dispositivo y sus aplicaciones como para determinar la identidad real del dueño del dispositivo. Swinnen, un contribuyente bastante conocido en los programas de caza de bugs de Facebook, ha descubierto un problema con el sistema de permisos de archivos y carpetas que solía limitar el acceso a los datos más importantes que se guardan dentro de las carpetas de aplicaciones en los dispositivos Android.

android malware

El investigador afirma que un atacante (representado en este caso por una aplicación falsa que se haya instalado en el dispositivo) podría usar los comandos de Android para cambiar el directorio actual de trabajo de la aplicación al de la carpeta de otra aplicación.

Un problema con el modelo de permisos de Android

El modelo de permisos de aplicaciones de Android por defecto les permitiría acceder al directorio y ejecutar un archivo, pero no les permitiría mostrar una lista de los contenidos de la carpeta para descubrir nuevos archivos o leer ninguna parte de su contenido. Para poder hacer esto, la aplicación debería saber el destino exacto del archivo al que quiere acceder. Esto abre algunos agujeros de seguridad. “Sin embargo, lo más remarcable es que los archivos existentes que se encuentran en el interior de estos directorios se pueden listar y se puede obtener su meta-información, siempre y cuando se conozca el nombre del archivo,” explica Swinnen.

Una de estas situaciones es la aplicación de YouTube para Android, que utiliza un archivo estándar llamado youtube.xml dentro del directorio /data/data/com.google.android.youtube/shared_prefs/ para guardar los datos procesados en el interior de la aplicación a tiempo real.

Un atacante podría listar repetidas veces este archivo y tomar su tamaño y la última fecha de modificación (ya que no tienen permisos de lectura). Dado que la aplicación de YouTube actualiza este archivo cada pocos segundos cuando la aplicación está siendo utilizada, una aplicación falsa podría monitorizar este archivo y determinar si la aplicación está siendo usada (y por lo tanto el dispositivo). Otras aplicaciones tienen archivos similares, guardados en otras secciones de su estructura interna, así que el ataque podría trasladarse a cualquier otra aplicación.

Un ataque de fuerza bruta a la aplicación de Instagram podría revelar el nombre real del usuario del Smartphone

Además de esto, para las aplicaciones que utilizan nombres de archivos fácilmente predecibles, como por ejemplo Instagram o Facebook, la aplicación falsa podría lanzar ataques de fuerza bruta para leer dichos archivos.

En el  caso de Instagram, este archivo se encuentra en el directorio /data/data/com.instagram.android/shared_prefs/.xml, y en el caso de Facebook está en /data/data/com.facebook.katana/shared_prefs/XStorage-LATEST-.xml. Para Instagram, el valor de ID de usuario incrementa y siempre se encuentra entre 0 y 2500000000. Según Swinnen, realizar un ataque de fuerza bruta a través de los IDs de Instagram requeriría unos 4 días en un dispositivo Nexus 4.

El investigador ha llegado a crear un script para realizar el ataque de fuerza bruta que se ejecuta en segundo plano en el sistema operativo de Android, lo que significa que el usuario no necesitará tener abierta la aplicación falsa todo el rato. Una vez que se identifique una coincidencia para el archivo con el ID correcto en la dirección del archivo de la aplicación, entonces el atacante obtiene el ID de Instagram del dueño del teléfono, que suele darle como resultado la obtención de la identidad real del usuario.

Swinnen ha enviado el bug a Google en diciembre del año pasado, y la compañía lo ha arreglado con el lanzamiento de Android 7. También se le han dado 500 dólares por su duro trabajo.