No llevo mucho tiempo manejando Android pero la verdad es que la facilidad con la que una aplicación puede hacer más de lo que dice me está sorprendiendo... No es nada raro descargarse aplicaciones que no provienen de fuentes "de confianza", y viendo el nulo control que hay en el Market por parte de Google (ver '
La cruda realidad del Market de Android'), puedes llevarte una sorpresa.
Dejando de lado las posibles técnicas para saltarse los permisos que el usuario otorga (más bien acepta) a la aplicación, me gustaría hacer hincapié en algo mucho más simple, lo que todos pueden ver pero que no debería ser público, el típico 'read4all'.
Cuando instalamos una aplicación se nos muestran unos permisos que tenemos que aceptar. En el blog
El Android Libre tenéis
un artículo en el que se explica cada uno de ellos. Estos permisos delimitan bastante las capacidades de las aplicaciones pero, ¿son suficientes?.
Voy a poner un par de ejemplos en los que los permisos igual no son lo suficientemente restrictivos:
1. Tu información personal – Leer datos de contacto
Cuando estaba realizando la aplicación
QuoteIt me sorprendió que el permiso fuera tan
genérico, pudiendo acceder a todos los datos de cualquier contacto. Si la aplicación solo necesita el email de los contactos, ¿por qué debería tener acceso también a su dirección, teléfono, etc? Creo que se debería mantener el permiso global pero
crear subpermisos para que podamos controlar algo más a qué datos accede la aplicación.
2. Almacenamiento – modificar/borrar archivos en SD
Al igual que hay un permiso para poder escribir en 'sdcard', ¿por qué no lo hay para la lectura?. Como veremos más tarde, hay demasiada información delicada almacenada en 'sdcard' como para que no haya un control de qué aplicaciones pueden acceder a ella.
3. Comunicación de red – acceso íntegro a Internet
Al igual que en el primer ejemplo, programando
QuoteIt Slim me sorprendió que l
a ejecución de comandos no necesitara declaración de permisos de seguridad. Es cierto que los comandos disponibles permiten hacer muy pocas cosas pero sigue siendo un problema. En la RootedCON 2011, Francisco Jesús Gómez y Carlos Juan Diaz ('
Cloud Malware Distribution: DNS will be your friend') comentaron como era posible almacenar y distribuir malware a través de la infraestructura de servidores DNS Caché públicos de Internet. Relacionado con este tema, puesto que una aplicación
no necesita ningún permiso para realizar un ping por consola, podría aprovecharse de este método para controlar la aplicación u obtener información del dispositivo de forma transparente.
Vistos estos tres ejemplos, ahora toca profundizar un poco más con el tema del 'read4all' y la 'sdcard'.
El problema, a parte de lo ya comentado anteriormente, creo que se encuentra en el uso que hacen las aplicaciones de la SD. Entiendo que en él se almacene información que pueda resultarle util al usuario cuando conecta el teléfono al ordenador en modo USB, pero ¿es recomendable sabiendo que cualquiera puede acceder a esos datos?. ¡Las fotos sí pero mis conversaciones de WhatsApp no!
Alguna de la información que se almacena en la SD (p.e de las aplicaciones que tengo instaladas en mi teléfono):
1. La cache de la aplicación de Tuenti.
2. Fotos y videos de la cámara (y capturas de pantalla).
3. Descargas realizadas.
4. Titanium Backup.
5. Backup Dolphin HD
6. Databases (automáticas) de WhatsApp
7. Caché de Dropbox.
Como ya he dicho, hay algunas que entiendo que estén ahí almacenadas pero, ¿la caché de Tuenti?, ¿backups sin proteger?, ¿la caché de Dropbox?, etc. Con respecto a los backups, Titanium debería de protegerlos pues es un peligro que cualquier aplicación pueda acceder a esos archivos, el de Dolphin HD no se genera salvo que el usuario lo haga manualmente por lo que si se hace, hay que retirarlo lo antes posible (puedes tener credenciales almacenadas, etc) aunque todos los backups deberían protegerse. Con respecto a WhatsApp, ahora las bases de datos ya están cifradas (aunque desconozco lo seguro que pueda ser) aunque por ese mismo motivo, como el usuario no puede acceder a su contenido, no veo comprensible que estén ahí. Finalmente, lo que más me sorprendió es la carpeta Dropbox que contiene todos los archivos que hayas visualizado... (desde la aplicación puedes borrar la caché)
Como véis, si las aplicaciones utilizan la SD para almacenar
información sensible sin proteger, cualquier aplicación podrá acceder a ella sin problemas. Sobretodo hay que tener cuidado con el tema de backups, como el caso de Titanium.
-------------------------