Habremos leído u oído muchísimas veces el argumento de que la seguridad en Android siempre está en entredicho: ya sea por el último malware creado, o por un fallo de seguridad, es uno de los argumentos más utilizados en contra del sistema operativo móvil.
La historia que os traemos hoy tiene que ver con una especie de estafa que se ha realizado hace poco: una aplicación de linterna que promete lo imposible, y viene con una desagradable sorpresa para los usuarios.
La historia comienza de la mano de José C. Agudo y Miguel Ángel Cardenete, dos desarrolladores que, llevados por la curiosidad, empezaron a trastear con el código de una aplicación de linterna que hace brillar el LED más que ninguna otra app de linterna y totalmente gratuita para averiguar cómo se suponía que lo hacía. Sin embargo, cuando empezaron a profundizar descubrieron que la aplicación venía con una desagradable sorpresa: lee tu número de teléfono, se conecta a Internet y te da de alta en un servicio de SMS premium, todo ello sin que te enteres.
El caso de la linterna molona
El funcionamiento de la aplicación es sencillo: se promociona como linterna (y cumple con esa función), pero cuenta con un mecanismo que captura tu número de teléfono sin tener el permiso necesario. Al capturar tu número de teléfono, te suscribe a un servicio de mensajes premium, pero el sistema requiere de un código de verificación enviado por SMS que ha de ser introducido en una página web (un método que no es para nada seguro, pero eso lo veremos más adelante).
Una vez el proveedor envía ese código, la aplicación intercepta el código a través del permiso de leer SMS, y lo introduce en la página para confirmar tu suscripción al servicio. Y listo, nada más instalar la aplicación tienes un servicio de mensajes premium contratado a tu línea de teléfono.
¿Cómo se supone que lo hace?
Averiguar cómo funciona la aplicación no es nada sencillo, ya que el reto aumenta al estar el código ofuscado utilizando Proguard. La aplicación dispone de los siguientes permisos:
<uses-permission android:name=»android.permission.CAMERA» />
<uses-permission android:name=»android.permission.WRITE_EXTERNAL_STORAGE» />
<uses-permission android:name=»android.permission.READ_SMS» />
<uses-permission android:name=»android.permission.INTERNET» />
<uses-permission android:name=»android.permission.READ_PHONE_STATE» />
<uses-permission android:name=»android.permission.RECEIVE_SMS» />
<uses-permission android:name=»android.permission.WRITE_SMS» />
<uses-permission android:name=»android.permission.ACCESS_NETWORK_STATE» />
<uses-permission android:name=»android.permission.ACCESS_WIFI_STATE» />
<uses-permission android:name=»android.permission.GET_ACCOUNTS» />
En ningún momento pide permiso para enviar mensajes SMS o llamar por teléfono, permiso que marca Android como «Esto puede comportar costes adiciones» (y podéis ver en la captura). Sin embargo, este aviso no sale con los permisos de leer mensajes SMS, cosa de la que se aprovecha esta aplicación.
Una vez está instalada, hace al usuario aceptar unos términos y condiciones del usuario (estos en concreto) junto con un texto en la pantalla que empieza con «Pulsando ACEPTAR enviarás el pin para proceder a la suscripción» , que se encuentra en la parte baja de la pantalla, a un tamaño mínimo y con el contraste visiblemente reducido. Podéis ver en la captura a lo que me refiero: a menos que te fijes, los términos son difíciles de ver.
Cuando el usuario ha aceptado esos términos claramente abusivos, la aplicación ejecuta este código:
Account[] arrayOfAccount = AccountManager.get(this).getAccounts();
String numero=»»;
for(int i=1;1<arrayOfAccount.length;i++){
Account localAccount = arrayOfAccount[i];
if (!localAccount.type.equals(«com.whatsapp»)) {
numero = localAccount.name;
}
}
La aplicación no tiene permisos para obtener el número de teléfono, pero parece que es capaz de saltarse esta limitación buscando una cuenta activa de WhatsApp (y para lo que sí tiene permiso concedido), algo que no parece muy difícil teniendo en cuenta el alcance de la conocida aplicación de mensajería. También se cree que puede utilizar otros métodos para acceder al número sin necesitar el permiso si el de arriba falla, aunque esto todavía esta por confirmar.
Ya tiene nuestro permiso y nuestro número de teléfono, y con esto solicita la suscripción al servicio Premium. Pero no es suficiente, ya que este tipo de servicios requiere de una verificación por parte del usuario a la operadora, que en este caso se realiza a través de un SMS que contiene un código que el usuario debe introducir en una página web. Para conseguir completar esta verificación, y utilizando el permiso de recibir los mensajes SMS, captura ese SMS de verificación, extrae el código correspondiente, y completa automáticamente la verificación en el formulario web dedicado a ello.
Con esto ya podríamos dar por concluida la estafa, pero la cosa no acaba aquí: si tienes la aplicación de Facebook instalada en tu Android, la aplicación publicará en tu perfil un post con publicidad sobre esta aplicación, lo cual hace mucho más rápida su distribución y aumenta su alcance considerablemente.
¿Todavía esta disponible la aplicación? ¿Como se si estoy afectado y como lo arreglo?
Se podría decir que la aplicación esta y no esta disponible a la vez: mientras que fue retirada de Google Play por la propia Google después de alcanzar entre 10.000 y 50.000 descargas, la aplicación en mercados de aplicaciones como AppsZoom ha tardado mucho más en caer, llegando a conseguir entre 100.000 y 500.000 descargas.
La aplicación en sí cuenta con el identificador único de com.linterna.molona, así que es recomendable que revises el identificador de tus aplicaciones de linterna (sobre todo si has instalado alguna en los últimos días). De todas formas, los afectados se encontrarán en la factura de final de mes unos 30€ (media, puede ser mayor o menor a ese número) de gastos en servicios premium, un indicador bastante fiable para averiguar si estás afectado o no.
Si por desgracia te ha tocado, lo más aconsejable es que contactes con tu operadora para que te aconsejen sobre los pasos para salir de estos servicios, que pueden variar de caso a caso porque la aplicación esta hecha para cambiar de proveedores y enviar múltiples solicitudes a suscripciones. Esto hace que sea mucho más complicado de combatir. y que cada caso puede ser diferente.
¿En resumen?
El funcionamiento de esta aplicación de linterna molona se sostiene sobre cuatro pilares que revelan algunos fallos y cosas que podrían funcionar mejor:
- Los operadores suelen tener los servicios premium activados por defecto, lo cual deja abierta la posibilidad a estafas como esta.
- La web de activaciones es del todo insegura si deja que un bot registre números de forma automática y sin intervención del usuario
- Los usuarios no son del todo conscientes de lo que significan los permisos de cada aplicación o lo que puede establecer el aceptar unos términos de usuario (que, aunque en este caso sean del todo abusivos, sirven para cubrirse las espaldas).
- La aplicación es capaz de distribuirse a través de Facebook, lo cual contribuye a que más gente la utilice.
Lo que esta claro es que el programador en cuestión ha sido lo suficientemente listo como para embolsarse una buena cantidad de dinero (haced cuentas: 100.000-500.000 descargas a 30€ cada una…) a costa de los usuarios. Podéis leer información más técnica sobre la aplicación en el artículo original, cargado de código y explicaciones de cómo funciona cada aspecto de la estafa.
Aunque esto trate de una estafa reciente en concreto, probablemente es como estafen todas las aplicaciones de Android que pretenden hacerlo: pequeños trucos que se aprovechan del desconocimiento de los usuarios, o directamente de los usuarios que no leen los permisos antes de instalar o le dan un pequeño vistazo a lo que aceptan.
De todas formas, ya sabéis lo que os recomendamos desde aquí: leed los permisos de cualquier aplicación que pretendáis instalar, y si no estáis seguros pulsad a cancelar. Eso, un poco de sentido común y no pulsar aceptar a la ligera deberían de hacer el resto a la hora de manteneros alejados de todo este tipo de estafas.