Logo Android

Android al ser el sistema para dispositivos móviles más utilizado hoy en día en el mundo es también el más atacado. Una de sus particularidades es el sistema de permisos que utiliza cuando algún desarrollador quiere crear una nueva aplicación, y en este post vamos a presentar en que consiste como una primera aproximación para tener aplicaciones seguras.

Como parte de una investigación para determinar el uso que dan los desarrolladores de aplicaciones móviles al sistema de permisos, investigadores del Colegio de Ingeniería de la Universidad de California, Berkeley desarrollaron una aplicación para analizar cerca de 1000 aplicaciones diferentes y ver su comportamiento. Del estudio vale la pena resaltar algunas observaciones interesantes sobre los permisos de una aplicación en Android.

Cuando una persona quiere desarrollar una nueva aplicación para Android, se encuentra con que debe utilizar la API que va a permitirle interactuar con el teléfono: tener acceso al hardware como por ejemplo la cámara, el micrófono o dispositivos de red como Bluetooth o Wi-Fi, controlar los ajustes y características de configuración e incluso acceder a los datos guardados por el usuario.

Para lograr el acceso a la información del dispositivo y las características de seguridad la API de Android es controlada por un sistema de permisos que el usuario va a poder ver en el momento que está instalando la aplicación, de tal forma que cualquier solicitud la aplicación deberá mostrarnos sobre que va a tomar el control de tal forma que se puede decidir si se autoriza la aplicación o si se decide cancelar el proceso de instalación.

En las versiones 2.x de Android los desarrolladores cuentan con 134 permisos, mientras que en las últimas versiones de este sistema operativo (4.x) las aplicaciones pueden manejar 145 permisos que van desde tener acceso a las propiedades del equipo hasta tener control sobre los mensajes SMS, pasando por el control de todas las características del dispositivo.

Dentro de estos permisos, es muy importante diferenciar el tipo de funcionalidades de la aplicación para diferenciar entre los que no representan un riesgo de seguridad para el usuario (por ejemplo BIND_WALLPAPER o BATTERY_STATS) y aquellos que permiten manipular información sensible: DELETE_PACKAGES, CAMERA, READ_SMS, WRITE_SMS entre otros.

Antes de iniciar con el desarrollo de una aplicación, para lograr que esta realmente garantice la seguridad para la información de sus usuarios es importante tener en cuenta además del sistema de permisos la arquitectura multicapas propuesta por Android que contiene la descripción de las características de seguridad con que cuenta esta plataforma.

Así que al momento de que alguien desee desarrollar una nueva aplicación para Android, en cualquiera de sus versiones es muy importante que conozca las opciones que tiene la API de Android de forma que sea un desarrollo seguro para el usuario y no dejar la aplicación abierta con permisos innecesarios que aumenten las posibilidades que tengan algún fallo o se conviertan en una vulnerabilidad de seguridad para el usuario. Este punto, puede marcar notablemente la diferencia para que una aplicación sea considerada maliciosa o no.

Y para los usuarios finales es muy importante que como parte de los consejos para determinar si una aplicación para Android es legítima fijarse en los permisos de seguridad. Al momento de instalar una aplicación, Android muestra en pantalla todos los permisos que esta solicita. En el caso de observar una cantidad excesiva de permisos para una aplicación cuya función es sencilla (fondos de pantalla, editores de foto, etc.), es recomendable evitar la instalación del programa.

H. Camilo Gutiérrez Amaya
Especialista de Awareness & Researchblu