Shuabang botnet: BlackHat App Store Optimization (BlackASO) en Google Play

martes, 25 de noviembre de 2014

ElevenPaths ha detectado apps maliciosas alojadas en Google Play (que ya han sido retiradas por la propia Google), destinadas en un principio posiblemente al Shuabang, o BlackASO (Black Hat App Store Optimization). Las apps maliciosas vinculaban cuentas falsas con el dispositivo real de la víctima, consiguiendo así cuentas muy creíbles. Con estas cuentas, el atacante enviaba tareas a las víctimas para que descargasen nuevas aplicaciones (aunque no se hacían efectivas en el dispositivo de la víctima). La cuenta del usuario permanece a salvo, no así sus datos personales sobre el teléfono. Describimos en el siguiente informe los detalles del curioso ataque.

Shuabang

El Shuabang o BlackASO (Black Hat App Store Optimization) es toda una industria en China, y desarrolla su actividad desde hace años. El objetivo del Shuabang es crear una infraestructura que permita valorar o inflar artificialmente las descargas de apps para posicionar mejor los programas en los mercados. La infraestructura precisa fundamentalmente cuentas de Google o iOS con las que falsear las acciones, de manera que parezcan que provienen de usuarios reales. Este "servicio" de posicionamiento se suele vender a terceros. En general, empresas que dicen dedicarse a mejorar el posicionamiento pero que se "abstraen" de los métodos empleados para conseguirlo.

Para realizar este fraude, el atacante necesita principalmente cuentas de Google activas, asociadas a dispositivos reales, y que no parezcan sospechosas para Google, pues de lo contrario las eliminará rápidamente. Para ello, utilizan diferentes técnicas. La más habitual es la contratación manual de usuarios, que crearán cuentas en el market y valorarán las apps que se les pida. Con estas apps maliciosas, sin embargo, han ideado un sistema por el que, a partir de un conjunto de cuentas falsas, las distribuye y asocia a diferentes dispositivos, de forma que se reaprovecha y automatiza al máximo el número de teléfonos distintos asociados a una cuenta. Además, permite enviar tareas a los dispositivos para que, bajo las cuentas falsas, simulen la descarga de apps y así las posicionen más alto en los mercados. Estas apps detectadas para realizar Shuabang tienen un potencial por encima de la media, puesto que demuestran un profundo conocimiento del funcionamiento concreto de los protocolos de autenticación con Google. Antes de entrar en detalle, veamos cómo funcionan las cuentas en Google.

Cómo funcionan las cuentas en Google

Cuando un usuario crea una cuenta de Google, una vez ha introducido su usuario y contraseña, tiene acceso con ella a decenas de servicios en Google, como un Single Sign On.

Esquema de funcionamiento de cuentas de Google

El usuario introduce la contraseña de la cuenta una sola vez en el dispositivo. A partir de ahí, se da de alta en un servicio de Google (por ejemplo en Google Play, enviándole usuario, contraseña, ID de dispositivo...), que le devolverá un token. Este token maestro se almacena en el manejador de cuentas del dispositivo (que queda asociado) y será el que se utilice el resto de tiempo para que no se tenga que introducir la contraseña de nuevo. De él, se deducirán otros tokens temporales. Habitualmente, un usuario puede tener varios dispositivos registrados en una misma cuenta. De esta forma puede elegir dónde instalar apps, por ejemplo. Para asociar un dispositivo a una cuenta, el proceso habitual es:

Registro de cuenta y asociación a dispositivo habitual


  • Bien crear la cuenta desde el mismo dispositivo. Con el fin de que no se creen cuentas fraudulentas de forma automática, Google descarta las cuentas creadas sobre dispositivos que no sean "reales", además de interponer un CAPTCHA.
  • O bien utilizar una cuenta de Google ya existente y presentarse en el mismo dispositivo con el que se quiere asociar. Para este proceso, tan solo es necesario introducir el usuario y contraseña de Google existente en el teléfono o añadir una nueva cuenta.
Con esto, realmente, lo que se hará es asociar un identificador del dispositivo a la cuenta. El teléfono o dispositivo Android aparecerá como dispositivo asociado a la cuenta en el panel de configuración de Google Play.

Este protocolo de registro y asociación a bajo nivel ha sido estudiado por la comunidad y en especial por los atacantes que realizan prácticas fraudulentas. Actualmente es posible conseguir el registro y la asociación programáticamente, realizando las llamadas a los servidores de Google y proporcionándole la información necesaria. El proceso no está documentado oficialmente.

Esta especie de botnet es un sofisticado sistema por el que un atacante es capaz de, a través del malware con mínimos privilegios, asociar a dispositivos reales cuentas creadas por el propio atacante. Dispone así de un conjunto de cuentas falsas asociadas a teléfonos "reales" y por tanto, válidas de cara a los servicios de Google, lo que les permitirá cometer diferentes tipos de fraude. En concreto la descarga artificial o valoración fraudulenta de apps.

El ataque

El atacante disponía de 12.500 cuentas de Google ya creadas con usuario y contraseña, pero no registradas a ningún dispositivo. La inmensa mayoría de las cuentas en esa base de datos han sido creadas por el propio atacante, y se las proporcionaba a las víctimas infectadas para que las registrasen en su teléfono.

Esquema de ataque resumido


Fundamentalmente, lo que ha conseguido es que sus víctimas realicen dos acciones:
  • Asociar cuentas a dispositivos de forma automática y así conseguir tokens.
  • Utilizar esos tokens de forma distribuida para simular descargas.


Ejemplo real de envío de una cuenta a un dispositivo infectado con el que será asociada

La aplicaciones convierten al dispositivo en un zombi, que cada 10 minutos recoge tareas que realizar, entre ellas, recoger esas cuentas falsas del servidor central y asociarlas a los datos del teléfono de la víctima. La cuenta de Google "original" en el dispositivo de la víctima permanece a salvo y el atacante no tiene acceso a ella en ningún momento. Cada cuenta es asociada a entre 10 y 30 dispositivos físicos de las víctimas. Las combinaciones entre cuentas de Google y asociación de dispositivos son innumerables. En la imagen se muestra un ejemplo de cuenta del atacante, asociada a 18 dispositivos reales en la India de las víctimas.


Ejemplo de cuenta asociada a diferentes dispositivos de víctimas

Desde principios de octubre hasta finales del mismo mes, el atacante ha subido a Google Play más de 300 aplicaciones disfrazadas de juegos, chistes, fondos de pantalla y entretenimiento en general. De ellas, aproximadamente 100, cometían el fraude asociando esas cuentas falsas a la configuración e identificador del dispositivo. Algunas de las 200 restantes, aunque inofensivas en una primera versión, eran más tarde actualizadas para cometer el fraude. Los permisos de las apps eran:


Permisos de las apps que infectan a los usuarios

Con este esquema de asociación de cuenta y dispositivo real, el atacante se ha podido hacer con una base de datos de 60.000 tokens. El ataque se ha centrado en víctimas de Brasil, India y Rusia, aunque está preparado para añadir cualquier país.

El esquema completo de ataque era el siguiente:


Esquema general del ataque

Conclusiones 

El atacante, aunque con un fin último conocido (posicionamiento fraudulento) ha conseguido varios hitos interesantes con el desarrollo de estas apps maliciosas:
  • Ha creado o comprado 12.567 cuentas de Google. La creación de cuentas requiere romper un CAPTCHA.
  • Ha conseguido comprender a bajo nivel, cómo funciona el sistema de registro y asociación de dispositivos a cuentas, y lo ha programado para que se realice automáticamente. Esto no está documentado oficialmente y existen muy poca documentación en Internet al respecto.
  • Ha conseguido introducir alrededor de 100 apps maliciosas en Google Play, con permisos aparentemente inocuos.
  • Ha conseguido gestionar un sistema de tareas que optimiza al máximo la actividad de la red de infectados, repartiendo tareas de descarga, asociación de cuentas, etc.
  • Ha conseguido que las características de teléfonos de las víctimas sirvan para que sean asociadas a cuentas, y así poder gestionar el fraude por clic de forma inteligente, como si un usuario falso se encontrara registrado en el teléfono de la víctima.
  • Aunque los datos relativos a la cuenta de la víctima queden a salvo, esta app maliciosa supone un aprovechamiento de los recursos y una vulneración de la privacidad.
Aunque es una técnica conocida y desarrollada desde hace tiempo a través de varias apps, los atacantes tienen como objetivo Google Play, como lugar de distribución privilegiado, pero con el que más problemas se encuentran a la hora de publicar. Una vez conseguido y gracias a lo inteligente de la técnica, el éxito es notable. La app se encuentra totalmente en desarrollo en estos momentos, y da la sensación de que ha experimentado con estas técnicas. 

Un informe completo de la amenaza en formato PDF está disponible desde esta dirección.

ElevenPaths ha podido determinar cómo, desde cuándo y con qué métodos se ha cometido el fraude, además de establecer enlaces entre el atacante y otros grupos de atacantes y recopilar evidencias incriminatorias. Basadas en estas correlaciones, ElevenPaths ha podido encontrar cuentas de desarrolladores de Google Play que posiblemente pertenecen al mismo grupo de atacantes. Todo esto ha sido posible gracias a Path5, un producto desarrollado por ElevenPaths que permite realizar una detección temprana, investigación y correlación de cualquier tipo de información relativa a aplicaciones de Android, entre otras funcionalidades. Este reporte supone un ejemplo real de la potencia y efectividad de un producto como Path5 para investigar casos similares.


Sergio de los Santos
ssantos@11paths.com

1 comentario:

  1. Is it working the Black hat Optimization techniques to optimize Google Play Store>

    ResponderEliminar