El negocio de las "FakeApps" y el malware en Google Play (VIII): Permisos en las apps

1 de junio de 2014
¿Qué ocurre si se instalan en un terminal aplicaciones de este tipo? Depende. Existen también varios tipos de "impacto" que pueden tener las apps falsas o el adware agresivo en general sobre el dispositivo, dependiendo de cómo han sido ideadas por los atacantes. Puede que se trate simplemente de publicidad agresiva, o puede que permitan realizar acciones mucho más peligrosas sin permiso del usuario. Y normalmente esto depende de sus permisos. Veamos qué significan los permisos en realidad y algunas posibilidades.

Obviamente, las apps que requieren más permisos, podrían llegar a tomar cierto control sobre el dispositivo, y espiar al usuario. Un ejemplo claro son las aplicaciones falsas que pueden activar el micrófono y grabar sonido. Si en su lógica añaden rutinas de activación remota y envío de resultados a un servidor, se hablaría de la posibilidad de espiar conversaciones. En realidad, no es algo en lo que los atacantes estén especialmente interesados. Pero sí pueden llegar a estarlo en la lectura de SMS, por ejemplo, porque en España es posible una estafa que ya hemos descrito anteriormente.


Clash of Clans falso cuando ni siquiera existía el oficial en Google Play
Aunque es cierto que la mayoría de FakeApps intentan simplemente cobrar su cuota por instalación o por bombardeo de anuncios. Y para conseguirlo, muchas se bastan con el acceso a internet para mostrar publicidad. Si además la app se inicia automáticamente con el teléfono, puede que no sea necesario arrancarla explícitamente para verse constantemente invadido por la publicidad.

La verdadera importancia de los permisos

Algunos permisos en Android no se entienden bien. Otros, son más potentes de lo que pudiera parecer. La inmensa mayoría, son ignorados por los usuarios. Veamos los más peligrosos o confusos y cómo los usan los atacantes:


Un wallpaper que permite realizar fotografías y vídeos además de modificar el historial entre otros permisos agresivos
  • SEND_SMS: Obviamente, permite a la aplicación enviar SMS, sin la validación explícita del usuario. No es un permiso que ofrezca mucha confianza. El desarrollador podría requerir el permiso a través de un intent, y entonces el usuario tendría que validar cada intento, pero si se declara en el manifiesto explícitamente, la app puede mandar en segundo plano SMS sin ninguna interacción. El peligro que conlleva está relacionado con la suscripción a los servicios premium y el gasto que esto supone.
  • READ_PHONE_STATE: Leer ID y estado del teléfono. Su uso suele ser legítimo. Por ejemplo, si se quiere poner en pausa una app cuando se recibe una llamada, la app debe tener este permiso. Algo cómo para los juegos. El problema es que esta "lectura del estado" también viene asociada con el acceso a información sensible, como el IMEI, IMSI (identificador tarjeta SIM) y al identificador único que Google asigna a cada terminal. En las primeras versiones este permiso ni siquiera tenía que ser solicitado. Por tanto, resulta complicado decidir si su uso es legítimo o no.
  • WRITE_EXTERNAL_STORAGE: Permite alterar o borrar archivos en la memoria del dispositivo. El problema es que con él, se podrían ver los archivos del resto de apps.
  • READ_EXTERNAL_STORAGE: Aunque pareciera implícito en el anterior, este permiso se introdujo en la versión 4.1. En versiones anteriores todas las aplicaciones pueden leer en la memoria externa. Útil para el robo de base de datos de WhatsApp, por ejemplo.
  • ACCESS_COARSE_LOCATION: Este permiso da a la app la posibilidad de ubicar al usuario sin GPS (el posicionamiento por Wi-Fi que realiza Google, y la de celdas propia de la telefonía). Dependiendo de dónde se use ofrece una precisión similar al GPS.
  • ACCESS_FINE_LOCATION: Localización GPS. Al otorgar este permiso permitimos también el anterior. Se suele utilizar para ofrecer una publicidad más eficaz, basada en el país, región, etc.
  • READ_CONTACTS: Permite leer información sobre los contactos almacenados (nombres, correos electrónicos, números de teléfono). Muchas empresas de supuesta mercadotecnia, roban esta información para almacenarla en su base de datos y traficar con ella.
  • WAKE_LOCK: Permite a las apps decirle al teléfono que no debe entrar en modo suspensión. Por ejemplo, podría ser usado en el malware que mina bitcoins.

Plants Vs. Zombies 2 falso (con apenas 200 kilobytes) que necesita acceder al micrófono
Es complicado aconsejar sobre los permisos que realmente pueden resultar peligrosos o no. Evidentemente, todo acceso a Internet puede resultar peligroso, pero... ¿qué app no lo requiere hoy en día? Cualquier app quiere monetizar su inversión con publicidad legítima (banners controlados y respetuosos con la experiencia de usuario) y esta publicidad necesita conexión a internet. Por tanto, solicitar ese permiso no indica nada sobre la legitimidad de una aplicación.

También puede ocurrir que una app declare que necesita ciertos permisos, pero eso no implica que los utilice en su código. Por ejemplo, puede que los haya declarado por otras razones:

  • Su SDK de publicidad se lo recomienda porque es la librería de publicidad la que lo necesita, no el código de la aplicación.
  • No tiene la intención de usarlo en esa versión, pero sí en posteriores. Una app puede actualizarse automáticamente si no aumenta los permisos en la versión siguiente y está firmada por el mismo certificado. Si se añade algún permiso, la actualización debe ser aprobada explícitamente por el usuario. Puede que algunos atacantes prefieran declarar ciertos permisos en una primera versión aunque no los usen, levantando así menos sospechas. Luego podrían actualizarse automáticamente y ahora sí, hacer uso de ellos.



Juego totalmente falso, pero que puede acceder a información sensible
Otros permisos, quizás sí son mucho más agresivos, y pueden hacer sospechar directamente:
  • RECEIVE_BOOT_COMPLETED: Permite a la app permanecer a la escucha de cuándo se ha encendido el teléfono y actuar en consecuencia. Sería el equivalente a anclarse en alguno de los puntos de inicio del sistema.
  • INSTALL_SHORTCUT: Instalar accesos directos en la pantalla de inicio a otras stores "menos controladas" o a otras apps, es una práctica habitual del adware y malware en general. En el mundo del escritorio, sería quizás el equivalente a insertar en favoritos un enlace.
  • WRITE_SETTINGS: Debe haber un buen motivo para modificar la configuración del dispositivo.
  • SYSTEM_ALERT_WINDOW: Fundamentalmente, permite mostrarse sobre cualquier otra aplicación en el teléfono, tapando al resto y, por tanto, mostrando la publicidad más agresiva posible.


TubeMate (aplicación legítima expulsada de Google Play) falso con permisos para enviar SMS
Pero esto no es una guía completa de permisos, ni existe una regla fija que permita hacer sospechar. Solo en los casos más extremos (supuestos libros que requieran envío de SMS, fondos de escritorio con capacidad de grabar con el micrófono...) es posible que pueda descartarse directamente la app. Ni siquiera el sobrevalorado sentido común sirve en estos casos. Muchas aplicaciones que contienen adware, se disfrazan de utilidades que (de ser legítimas), necesitarían estos permisos. Por tanto incluso los usuarios más avispados podrían llegar a ser víctima de estos fakes si solo sospechen de los permisos. Deben ser revisados, sí, pero también comparados con muchos otros factores. Y eso es complicado.

Aunque no lo parezca, este WhatsApp es falso, y requiere menos permisos que el original

* El negocio de las "FakeApps" y el malware en Google Play (I): Introducción
* El negocio de las "FakeApps" y el malware en Google Play (II): Tipos de "fakes"
* El negocio de las "FakeApps" y el malware en Google Play (III): Estrategias
* El negocio de las "FakeApps" y el malware en Google Play (IV): Política y rentabilidad
* El negocio de las "FakeApps" y el malware en Google Play (V): Limpieza automática
* El negocio de las "FakeApps" y el malware en Google Play (VI): Limpieza "manual"
* El negocio de las "FakeApps" y el malware en Google Play (VII): Cómo llegan a las víctimas
* El negocio de las "FakeApps" y el malware en Google Play (VIII): Permisos en las apps
* El negocio de las "FakeApps" y el malware en Google Play (IX): ¿Qué hacen y cómo se programan las apps?

Sergio de los Santos
ssantos@11paths.com