¡Y tú también, Bruto! Las manipulaciones de los troyanos con Google Play

Contenidos

Para los escritores de virus Google Play es una especie de Tierra Prometida. Al llegar allí, las aplicaciones maliciosas obtienen un amplio público, la confianza de éste y una actitud indulgente de los sistemas de seguridad de los sistemas operativos (por ejemplo, con gran frecuencia la piedra en que tropieza el malware es que por defecto se deniega instalar aplicaciones de orígenes que no sean la tienda oficial). Pero es muy difícil ingresar a Google Play: una de las principales condiciones para que una aplicación entre a la tienda Google Play es que los programas se analizan a conciencia en busca de comportamientos indeseables, usando sistemas automáticos o manuales.

Algunos escritores de virus, después de intentos infructuosos de evadir el análisis, aprendieron a usar la aplicación cliente de la tienda para sus propios intereses. Últimamente vemos con frecuencia troyanos que usan la aplicación Google Play para, en el marco de campañas publicitarias, descargar, instalar y ejecutar aplicaciones de la tienda en el smartphone sin que el dueño lo sepa, y también para dejar comentarios y calificar la aplicación. Como regla, las aplicaciones instaladas por el troyano no causan daños inmediatos al usuario, pero la víctima puede perder dinero de su cuenta móvil al pagar el tráfico de datos móviles, que puede ser caro. Además, los troyanos pueden descargar e instalar no solo aplicaciones gratuitas, sino también de pago, haciendo que el usuario pague sumas aún mayores.

Veamos con qué medios se realizan estas manipulaciones en Google Play.

Nivel 1. Para novatos

El primer método es hacer que el software cliente oficial de Google Play ejecute las acciones que el delincuente quiere. La idea general es ejecutar el troyano para iniciar el cliente, abrir la página de la aplicación necesaria y después buscar los elementos de la interfaz (botones) e interactuar con ellos mediante el software para descargar, instalar y ejecutar la aplicación. Los elementos necesarios de la interfaz están marcados con rojo en la siguiente figura:

goo_1

goo_2 goo_3

Los métodos de interacción con la interfaz son diversos, pero en general podemos destacar las siguientes técnicas.

  1. Usar los servicios de accesibilidad del sistema operativo (usada por Trojan.AndroidOS.Ztorg).
  2. Fingir que es el usuario quién está introduciendo datos (usada por Trojan-Clicker.AndroidOS.Gopl.c).
  3. Usar una inyección en el proceso del cliente de Google Play para modificar la lógica de su funcionamiento (usada por Trojan.AndroidOS.Iop).

Veamos cómo funcionan estos troyanos usando como ejemplo Trojan.AndroidOS.Ztorg.n. Este malware usa los servicios de accesibilidad, originalmente pensados para crear aplicaciones que ayuden a las personas con necesidades especiales (por ejemplo, aplicaciones para controlar la interfaz gráfica mediante la voz). El troyano recibe del centro de administración una tarea que contiene un enlace a la aplicación necesaria, la abre en Google Play y ejecuta el siguiente código:

goo_4

Este código sirve para esperar que, cuando en la pantalla aparezca el elemento de interfaz necesario, el programa haga clic en él. De esta manera se pulsan consecutivamente los botones “COMPRAR” (en cuya imagen está el precio), “ACEPTAR” y “CONTINUAR”. Esto basta para comprar la aplicación, si el usuario tiene una tarjeta bancaria vinculada a su cuenta de Google.

Nivel 2. Para profesionales

Algunos escritores de virus no buscan caminos simples. En vez de usar el método simple y confiable descrito más arriba, escriben su propio software cliente para la tienda de aplicaciones, usando el API de HTTPS.

¡Y tú también, Bruto! Las manipulaciones de los troyanos con Google Play

(Voy a programar mi propio Google Play con troyanos y acceso root)

Lo complejo de este método es que para que este “cliente de fabricación casera” funcione, le hace falta información (por ejemplo, el login y contraseña del usuario, los tokens de ID), que no están disponibles para las aplicaciones comunes y corrientes. Los delincuentes tienen una gran suerte, porque todos los datos necesarios están almacenados de forma abierta, en el cómodo formato SQLite. El acceso a los mismos solo está restringido por el modelo de seguridad de Android, pero las aplicaciones pueden pasarlo por alto (por ejemplo haciendo el root del dispositivo) y obtener acceso a los datos sin ningún problema.

Por ejemplo, cuentan con su propio cliente de Google Play algunas versiones del malware Trojan.AndroidOS.Guerrilla.a, que se propaga mediante la herramienta de root Leech. Este cliente ejecuta tareas de descarga e instalación de aplicaciones gratuitas y de pago, y también puede calificar aplicaciones y dejar comentarios en la tienda de Google.

Después de iniciarse, Guerrilla empieza a recopilar la información que necesita:

  1. Datos de autentificación de la cuenta del usuario en Google Play.
  2. Para realizar operaciones en Google Play hay que usar tokens especiales que se crean para autentificar al usuario. En el caso más simple, si el usuario ya está autorizado en Google Play, el troyano puede usar los tokens presentes en el caché local. Lo realiza haciendo una simple búsqueda en la base de datos ubicada en /data/system/users/0/accounts.db:

    ¡Y tú también, Bruto! Las manipulaciones de los troyanos con Google Play

    Con la ayuda del código de abajo el troyano revisa si existen tokens listos, es decir, si el usuario está autorizado y puede ejecutar operaciones en Google Play:

    ¡Y tú también, Bruto! Las manipulaciones de los troyanos con Google Play

    Si no hay tales tokens, el malware obtiene el login y la contraseña guardada en caché y se autoriza a sí mismo medianteOAuth:

    ¡Y tú también, Bruto! Las manipulaciones de los troyanos con Google Play

    ¡Y tú también, Bruto! Las manipulaciones de los troyanos con Google Play

  3. Android_id, el identificador único del dispositivo.
  4. Google Service Framework ID, el identificador único del dispositivo en los servicios de Google.
  5. Al principio el malware trata de obtener este identificador usando métodos estándar, pero si por alguna razón no lo consigue, ejecuta el siguiente código:

    ¡Y tú también, Bruto! Las manipulaciones de los troyanos con Google Play

    ¡Y tú también, Bruto! Las manipulaciones de los troyanos con Google Play

  6. Google Advertising ID es un identificador único de visualización de publicidad, que se asigna a los servicios de Google Play.
  7. Guerrilla lo obtiene de la siguiente manera:

    ¡Y tú también, Bruto! Las manipulaciones de los troyanos con Google Play

    ¡Y tú también, Bruto! Las manipulaciones de los troyanos con Google Play

  8. De una forma similar el malware recibe los datos sobre el dispositivo, procesados por hash, del archivo /data/data/com.google.android.gms/shared_prefs/Checkin.xml.

El troyano, después de recopilar los datos que acabamos de mencionar, empieza a recibir tareas para descargar e instalar aplicaciones. He aquí la estructura de una de las tareas:

¡Y tú también, Bruto! Las manipulaciones de los troyanos con Google Play

El troyano descarga una aplicación por medio de solicitudes POST que envía a estos enlaces:

  1. https://android.clients.google.com/fdfe/search para hacer una búsqueda por una solicitud enviada por los delincuentes. Esta solicitud es necesaria para simular la interacción del usuario con el cliente Google Play (el escenario principal de la instalación de aplicaciones desde el cliente principal supone que el usuario primero hace una solicitud de búsqueda y solo después pasa a la página de la aplicación).
  2. https://android.clients.google.com/fdfe/details, con la ayuda de esta solicitud se recopila información adicional sobre la solicitud, necesaria para descargarla.
  3. https://android.clients.google.com/fdfe/purchase, se cargan el token y los datos de la compra que se usarán en la siguiente solicitud.
  4. https://android.clients.google.com/fdfe/delivery, el troyano recibe la URL y cookie necesarias para descargar el archivo.apk.
  5. https://android.clients.google.com/fdfe/log, confirmación de la descarga (para aumentar el contador de descargas).
  6. https://android.clients.google.com/fdfe/addReview, envío de calificación y de comentario.

Al crear sus solicitudes los delincuentes tratan de reproducir de la forma más exacta posible solicitudes análogas enviadas por el cliente oficial. Por ejemplo, en una de ellas se usa el siguiente conjunto de encabezados HTTP:

¡Y tú también, Bruto! Las manipulaciones de los troyanos con Google Play

Después de la ejecución de las solicitudes, de forma opcional se realizan la descarga, instalación (mediante el comando ‘pm install -r’, que permite instalar la aplicación sin el consentimiento del usuario) y ejecución de la aplicación.

Conclusión

Los troyanos que utilizan la aplicación Google Play para descargar, instalar y ejecutar aplicaciones de la tienda en el smartphone sin que el usuario se entere suelen ser propagados por malware que ya tiene privilegios de root en el dispositivo. Es precisamente esto lo que les permite ejecutar este tipo de ataques contra la aplicación cliente de Google Play. Remarcamos que, según los resultados del segundo trimestre de 2016, el malware que apunta a recibir privilegios root ocupó más de la mitad de los puestos de la estadística TOP20 de malware móvil, por lo que no hay que subestimar esta amenaza. Sobre todo porque el malware root no solo puede descargar otros programas maliciosos que afecten al ecosistema de Android y que gasten el dinero del usuario para comprar aplicaciones que no necesita, sino también otro software nocivo.

Publicaciones relacionadas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *