Cuando Android pide permiso, escúchelo

Ariel Torres
(0)
13 de abril de 2013  

Cuando pasé de iPhone a Android, en abril de 2012, ocurrieron dos cosas. Primero, me sentí de nuevo en casa; el ecosistema Android se parece mucho al de la PC, al revés que el de Apple, lo que es, por otro lado, lógico. Segundo, me di cuenta de que para obtener una app para Android sin meter la pata e instalar algo potencialmente peligroso había que hacer un posgrado; de nuevo, al revés que con el iPhone.

En las siguientes semanas leí mucho sobre la seguridad de Android y descubrí otras dos cosas. Primero, que el escenario era menos dramático de lo que me había parecido en un primer momento, si bien no menos complejo. Segundo, que los permisos de Android parecían escritos en sánscrito.

PC en miniatura

Tu smartphone es una computadora personal de bolsillo. Esto quiere decir que cuando lo encendés carga un sistema operativo muy semejante al de la PC; un sistema operativo es el conjunto de programas que hacen que un amasijo de metal, plástico y chips se comporte como una PC con Windows, una Mac, un satélite de comunicaciones, un Smart TV o una PlayStation. En el fondo, el 99% de las cosas que hoy se enchufan o usan baterías son computadoras o están controladas por computadoras, y su personalidad está determinada en gran medida por el sistema operativo. Tanto es así que en casa tengo una vieja PC con la mitad de memoria RAM que mi smartphone. Otro dato: los relojes basados en Android, como el Motoactv, poseen entre 1000 y 16.000 veces más memoria que las primeras computadoras personales.

IOS

En el caso del iPhone, la iPad, el iPhone Touch y la Apple TV ese sistema se llama iOS y está basado en Darwin, el sistema operativo de código fuente abierto de Apple, descendiente del NeXTSTEP, que Steve Jobs llevó consigo cuando regresó a Apple en 1996 y del que se derivó también el Mac OS X.

Android

Por su parte, HTC, LG, Motorola, Samsung y Sony (entre otros) usan el sistema operativo de código fuente abierto Android, que Google distribuye bajo la licencia Apache. Google compró la compañía Android en agosto de 2005 y dio a conocer la primera versión en 2007 (el mismo año en que nació el iPhone), una jugada brillante que catapultó al buscador a la movilidad, lo puso a la par de Apple, jaqueó las aspiraciones celulares de Facebook y bloqueó la ventana de oportunidad que se le había abierto a Microsoft.

Android está basado en el núcleo de Linux (componente que Google debe distribuir bajo la Licencia Pública General) y hereda mucho de su legendaria robustez contra los ataques informáticos; robustez, no invulnerabilidad. En condiciones normales, ni los usuarios ni las aplicaciones bajadas de la tienda de Google tienen privilegios de administrador o, como se dice en algunos Unix y en Linux, root (raíz, en inglés).

¿Root?

Root es el nombre del administrador de un sistema Unix o Linux, también conocido como superusuario, avatar, toor (root al revés) y baron . Los orígenes de la palabra root posiblemente tengan que ver con que el administrador era el único capaz de cambiar el directorio raíz ( root directory , del que dependen todos los demás) de un Unix. Otra teoría es que al principio, en Unix, el administrador tenía sus archivos en el directorio root. En todo caso, con un amigo pudimos rastrear los manuales de Unix hasta su segunda versión, de junio de 1972, cuando existían sólo 10 instalaciones de Unix en el mundo, y allí todavía no se menciona la palabra root. Seguimos avanzando por los archivos hasta que encontramos el término root en el manual del Unix de Sun, el SunOS, versión 1.1, de marzo de 1984. También le escribí a Ken Thompson, uno de los creadores de Unix, pero al cierre de esta columna aún no me había respondido.

Como fuera, en Android, rootear un teléfono significa obtener privilegios de administrador. Si no tenés muy claro lo que estás haciendo, esta práctica no es precisamente la más recomendable, desde el punto de vista de la seguridad.

Dos tiendas, dos estilos

Igual que iOS, Android tiene su tienda de apps, llamada Google Play, que en octubre de 2012 contabilizaba unos 700.000 programas, última cifra oficial de Google, que desde entonces no ha dado otra estadística de su tienda. Extraoficialmente, se calcula que Play ha superado las 800.000 apps.

Pese a que el modelo de negocios es semejante, la apuesta de la tienda de aplicaciones de Google es bastante diferente de la de Apple. Publicar en Play cuesta 25 dólares por única vez (en lugar de 99 dólares por año del AppStore) y los programadores pueden poner allí más o menos lo que se les antoje, mientras no violen ninguna ley ni los acuerdos que firman con Google. En pocas palabras, se prohíbe lo obvio, desde la pornografía hasta programas que roban datos, proponen apuestas, hacen spam o dañan dispositivos. "Fuera de eso, los desarrolladores pueden crear lo que quieran", me dice Nicolás Bortolotti, director de relaciones para desarrolladores Región Sur de Google.

El asunto no tiene que ver sólo con la censura de contenidos, sino también con aspectos técnicos, como, por ejemplo, los lenguajes de scripting , mayormente prohibidos en AppStore, aunque eso se ha relajado un poco ahora. Además, se puede programar para Android desde cualquier plataforma (Windows, Mac, Linux), mientras que XCode , la herramienta para programar para Mac OS X y iOS, sólo corre en Mac.

El que no haya un control tan estricto sobre los contenidos y las tecnologías que usemos es uno de los mayores atractivos que Android tiene para mí. Pero esta libertad deja cierto margen para que el pícaro abuse de nuestra confianza y, llegado el caso, viole el acuerdo con Google, publicando en la tienda una app maliciosa. Ha ocurrido y me temo que seguirá ocurriendo. En febrero, por ejemplo, Google detectó y erradicó 60.000 apps que hacían spam. Es un número inmenso que prueba que cada tanto podemos caer en alguna trampa, y no queremos eso.

¿Me permite?

Así que, ¿cómo asegurarnos de que una app de Android es segura? Con el iPhone y la iPad nos cuida Apple, lo que es a la vez bueno y malo; malo, digo, porque nos releva de la indispensable disciplina de la seguridad informática, y no siempre Apple va a estar como un ángel de la guarda mirando por sobre nuestros hombros.

Ahora, ¿cómo nos protegemos en Android? Ahí vamos.

Habrás notado que antes de bajarte una app de Play tenés que autorizar al programa para que haga una serie de operaciones protegidas por Android, algo que en la jerga se llama permisos. Por ejemplo, hacer llamadas de teléfono, mandar SMS, escribir en la tarjeta SD, acceder a Internet, geolocalizar el equipo y varias cosas más. Los permisos se autorizan todos a la vez, en masa, al instalar la app, y no se pueden modificar hasta que se la desinstale y se la vuelva a instalar. Esto, en principio, evita que te importune cada dos por tres con cartelitos y alertas, lo que no es poco.

Por desgracia, nada que tenga que ver con seguridad digital es sencillo, y los permisos, una buena idea por definición, resultan tan herméticos que primero no los entendemos y luego simplemente los pasamos por alto. Y entonces puede ocurrir algo como esto.

Sólo una cara bonita

Estaba desvelado y probando fondos de pantalla animados cuando encontré uno que parecía prometedor. Cuando fui a instalarlo me pedía permiso para geolocalizarme por GPS. What? ¿No será mucho?

Sí, era mucho. Vamos, ya me había cruzado con varios fondos de pantalla animados que no pedían ningún permiso; ninguno del todo. Podía entender que un fondo de pantalla gratis quisiera ubicarme de forma aproximada (por Internet) para mostrar publicidad. ¿Pero geolocalizarme por GPS? Ergo, no la instalé.

Un rato después encontré otro que solicitaba permisos para acceder a la red (grosso modo, Internet), leer la identidad y estado del teléfono (¿perdón?), impedir que el equipo entrara en suspensión, ver las cuentas en el dispositivo y editar o borrar datos en la tarjeta SD. Demasiado, para un fondo de pantalla.

Lectura de identidad

La verdad es que casi todos estos permisos podrían tener una explicación, pero, como me dice Guido de Caso, doctor en ciencias de la computación y autor de la notable app Granizo Alertas: "Definitivamente, algunos nombres son malísimos, eso está fuera de discusión". Exacto, confunden.

Por ejemplo, hay un permiso llamado Leer la identidad y el estado del teléfono . La palabra identidad mete miedo y muchas apps lo piden. ¿De qué se trata? Ni más ni menos que de leer el IMEI ( International Mobile Station Equipment Identity ), el número que identifica a cada dispositivo GSM y LTE; podés ver el IMEI de tu teléfono marcando *#06#. Además, esta función protegida de Android le informa a la app qué está haciendo el componente de telefonía de tu dispositivo. ¿Por qué podría un programa pedir algo así? Oh, bueno, es una larga historia.

"El tema es el siguiente –me dice Guido–: a medida que Android saca nuevas versiones se van agregando permisos. A veces son para cosas que antes no existían, como la cámara frontal. Pero a veces agregan permisos sobre cosas que siempre estuvieron, pero deciden que es importante proteger. Con Android 1.5 o anterior leer la identidad del teléfono era algo que no requería permisos especiales. Ahora bien, cuando Android agrega este requerimiento, el desarrollador tiene que avisarle al usuario mediante el Manifest (el documento donde se manifiestan los permisos que solicita la app), si su app quiere ser compatible con Android 1.5 o anterior."

La cuestión es que este es uno de los permisos a los que tenemos que prestarle atención. "Al autor honesto le sirve para que su app sepa cuándo hay una llamada en curso y no interfiera con ella. Pero podría ser usada con malas intenciones", me advierte Bortolotti. Guido ofrece un ejemplo concreto: "El asunto es que si es el único permiso que tiene la app, no pasa nada. El programa sabe tu DNI, ¿y qué? Ahora, si le sumás GPS y acceso a Internet, tenés un gran hermano en potencia". De hecho, el permiso es usado activamente por las agencias de publicidad digital para rastrear dispositivos e incluso para añadir el dispositivo en listas de telemarketing, según aseguran en los sitios para desarrolladores de Android.

Cuidado y sentido común

Hay muchos documentos en línea donde se listan y explican los permisos, empezando por la documentación de Google (en inglés). También encontré este buen resumen en español del clásico sitio El Androide Libre.

Como pueden ver, no es fácil tener todo eso en mente (ni digamos captar las sutilezas) cada vez que bajamos una app. Así que les pregunté a Bortolotti y de Caso a qué permisos hay que prestarles particular atención, cuáles deberían alertarnos de que la app podría tener alguna intención aviesa.

Ambos coincidieron en la lista, que por fortuna es breve. "El primero, a mi juicio, es el de usar servicios que podrían costar dinero; por ejemplo, enviar SMS y hacer llamadas telefónicas. Luego, la geolocalización detallada por GPS", me dice Nicolás. Guido concuerda, aunque en su opinión la geolocalización por GPS es más crítica todavía que la de llamar o mandar SMS. "El acceso a Internet es otro permiso con el que hay que tener cuidado, aunque hoy casi todas las apps lo piden", agrega.

Los otros permisos que Bortolotti señala como sensibles son el acceso a la tarjeta SIM y el leer y cambiar la configuración del equipo. "Esto, en el 80% de los casos es peligroso", alerta.

El almacenamiento en la tarjeta SD, otro permiso muy solicitado, también debería hacernos pensar dos veces. "Sin embargo, el almacenamiento en la tarjeta –me explica Guido– se usa mucho para cachear cosas (almacenar datos de forma temporaria, un uso legítimo). Por ejemplo, en mi app se guardan las fotitos de los perfiles de Twitter, porque, si no, es muy lento volver a bajarlas cada vez. Otro ejemplo es el de poner una minibase de datos. Android viene de fábrica con un SQLite que usa un archivito que se guarda en la tarjeta SD."

Receta personal

Desde mi punto de vista también hay que ser cuidadoso con el antes mencionado Leer identidad y estado del teléfono . Este permiso tiene un historial complejo que confunde incluso a los programadores (¿qué queda para nosotros, entonces?). Android es, en cierta medida, un ecosistema motorizado por la comunidad de desarrolladores y usuarios. Si desalentamos que se use este permiso no bajando las apps que lo pidan sin una necesidad valedera, la calidad general de las apps mejorará. ¿Cuándo sería valedera? No tengo una respuesta simple y directa. Pero es obvio que un protector de pantalla o un editor de texto no tienen por qué saber ni mi IMEI ni si estoy hablando por teléfono.

Mi método para decidir si instalo o no una app: sentido común. Si no tiene nada que ver con telefonía (un fondo animado, un jueguito), que no me pida permisos para llamar o enviar SMS. Un editor de fotos no tiene que cambiar la configuración del smartphone.

Revisando mi teléfono me encuentro con un reputado administrador de archivos que pide permisos para ubicarme de forma aproximada por Internet. No hay necesidad de eso. Lo quito y me quedo con Computer , de Byte Experts, que me parece mucho mejor y no pide permisos inexplicables.

Opuestamente, hay aplicaciones que necesitan pedir muchos permisos por la sencilla razón de que hacen muchas cosas. Por ejemplo, la excepcional JuicyDefender es capaz de activar Wi-Fi cuando llego a casa; para eso, debe conocer mi ubicación detallada. Así que está OK.

Algunas apps pueden desconcertar, pero cuando uno lee qué funciones cumplen, si el programador es un sujeto honesto (y la inmensa mayoría lo es), los permisos cobran sentido. Por ejemplo, la excelente app Contador de calorías , de FatSecret, pide autorización para controlar hardware y sacar fotos. De nuevo, esto asusta. ¡Espionaje! Nada de eso. La app incluye un lector de códigos de barras para escanear las etiquetas de los productos y averiguar así cuántas calorías tienen. Para eso necesita acceder a la cámara. (Y sí, estoy a dieta.)

Los comentarios de los usuarios son una muy útil fuente de información para detectar trampas; conviene prestarles atención. Puede que haya 50 personas que digan que el programita es genial, pero he visto que más tarde o más temprano alguien detecta que hay algo raro, si la app no es del todo bienintencionada.

Otro factor por tener en cuenta: si la app es de software libre lo más probable es que sea segura, porque su código fuente está abierto, así que el desarrollador ni tiene la intención ni puede –teóricamente– esconder rutinas peligrosas. En rigor, el asunto es un poquito más complejo, pero en general los piratas no exponen su código ;)

Así que, a leer los permisos, siempre. Y, ante la duda, hay que buscar otra app. Siempre hay opciones en Android, y esa es una de sus mayores ventajas.

PS : si sos desarrollador de Android y conocés otros trucos para interpretar correctamente los permisos, tu comentario será más que bienvenido.

ADEMÁS

MÁS leídas ahora

ENVÍA TU COMENTARIO

Ver legales

Los comentarios publicados son de exclusiva responsabilidad de sus autores y las consecuencias derivadas de ellos pueden ser pasibles de sanciones legales. Aquel usuario que incluya en sus mensajes algún comentario violatorio del reglamento será eliminado e inhabilitado para volver a comentar. Enviar un comentario implica la aceptación del Reglamento.

Para poder comentar tenés que ingresar con tu usuario de LA NACION.

Descargá la aplicación de LA NACION. Es rápida y liviana.