Uno de los mayores problemas de seguridad que tiene Android es la falta de control sobre las aplicaciones del Market.
Muchos de los programas o juegos que se disponen, incluso gratuitamente, para todos los usuarios cuando son instalados solicitan acceder a permisos especiales que a más de uno le hace levantar las cejas y preguntarse por qué un juego similar al "Snake" necesita saber nuestra posición geográfica.


Los permisos que una aplicación de Android puede utilizar se definen en en el archivo AndroidManifest.xml, con la etiqueta dentro de la raíz del archivo apk, los grupos a los que pertenecen se componen de:
  • Cuentas: permiso para acceder a las cuentas gestionadas por el Account Manager.
  • Gastar dinero: sin que el usuario tenga que interactuar (!!).
  • Herramientas de desarrollo: r elativos a herramientas para desarrolladores.
  • Acceso al hardware: facilita acceso directo al hardware del dispositivo.
  • Localización: con el que se conocerá la localización del usuario.
  • Mensajes: para enviar o interceptar mensajes del usuario.
  • Red: facilita conectividad con la red.
  • Información personal: acceso a contactos, calendario, e-mail, etcétera.
  • Llamadas: permiso para interceptar o modificar el estado del teléfono, llamadas salientes...
  • Almacenamiento: acceso a la tarjeta SD.
  • Herramientas del sistema: relativo al API del sistema.


Durante la instalación se le muestra al usuario que permisos necesita para su funcionamiento y si deseamos concedérselos. Si no estamos conformes, simplemente no se instalará. No pudiendo deseleccionar o cambiarlos antes de su ejecución.


Debido a este modelo de seguridad ha sido posible que ya se haya desarrollado malware como Tapsnake, un supuesto juego con la función real de enviar el geoposicionamiento de la víctima a un servidor web en Internet. En este caso en concreto presentaba el siguiente archivo de Manifiesto:






Podéis ver un análisis detallado de Tapsnake realizado por Víctor Antonio Torre para el laboratorio de Hispasec.

Para solucionar el problema hay herramientas como DroidWall que realmente son un front-end de iptables y con las que se puede denegar o conceder acceso a la red a las aplicaciones que queramos.




Otra (futura) opción, es el uso TaintDroid, un firmware que actualmente se está desarrollando y que pronto se publicará opensource, convirtiendo el terminal en una sandbox y con la que rápidamente se podrá detectar que aplicaciones tratan de acceder a datos sospechosos.


¿Instalaríais un juego que pide acceso a la SD (esa donde guardas las fotos) e Internet? Pues como yo, seguro que sí: siguiente, siguiente, aceptar, sí. Jugar.


Publicado por Alejandro Ramos en http://www.securitybydefault.com/2010/10/fuga-de-datos-personales-en-android.html