Un troyano para Android oculto en juegos de Google Play, a pesar de Bouncer

Hace poco, en ESET descubrimos un curioso ataque furtivo dirigido a usuarios de Android. Se trata de una aplicación falsa en forma de juego que estaba empaquetada con otra llamada systemdata o resourcea, lo que sin duda es bastante sospechoso. ¿Por qué un juego que se descarga desde la tienda oficial Google Play Store incluye otra aplicación llamada “datos del sistema”? Ciertamente, esta aplicación/juego en particular no es una aplicación del sistema, como su nombre intenta sugerir.

Aunque la empaquetada se coloca inadvertidamente en el dispositivo, necesita pedirle permiso al usuario para poder instalarse. La aplicación móvil que solicita permiso para la instalación se hace pasar por “Manage Settings” (Administrar configuración). Tras su instalación, se ejecuta como un servicio en segundo plano.

ESET detecta los juegos que instalan este troyano como Android/TrojanDropper.Mapin y al troyano en sí como Android/Mapin. Según nuestros datos telemétricos, los usuarios de Android en la India son actualmente los más afectados, con el 73,58% de detecciones observadas.

El troyano backdoor toma el control del dispositivo y lo convierte en parte de una botnet, al mando del atacante. Además, configura temporizadores que retrasan la ejecución del payload malicioso. De este modo, disimula el hecho de que el juego troyanizado es el responsable de la conducta sospechosa.

En algunas variantes de esta infiltración, por lo menos deben transcurrir tres días para que el malware alcance la funcionalidad completa de un troyano. Probablemente sea este retraso lo que le permitió al TrojanDownloader pasar tanto tiempo sin ser detectado por Bouncer, el sistema de prevención de malware de Google.

A continuación, pide derechos de administrador de dispositivos y empieza a comunicarse con su servidor de C&C remoto. Android/Mapin contiene múltiples funcionalidades, tales como impulsar diversas notificaciones, descargar, instalar e iniciar aplicaciones, y obtener información confidencial del usuario; sin embargo, su principal objetivo parece ser el de mostrar anuncios de pantalla completa en el dispositivo infectado.

Vectores de distribución: Google Play y compañía

Lo más interesante acerca de este troyano es que estuvo disponible para descargar desde fines de 2013 y durante 2014 simulando ser los siguientes juegos, cuya imagen trató de imitar:

  • Hill Climb Racing
  • Plants vs Zombies 2
  • Subway Surfers
  • Traffic Racer
  • Temple Run 2 Zombies
  • Super Hero Adventure

El malware se subió a Google Play entre el 24 y el 30 de noviembre de 2013, y el 22 de noviembre de 2014. Según MIXRANK, Plants vs zombies 2 se descargó más de 10.000 veces antes de que se eliminara del sitio.

En esas mismas fechas, System Optimizer, Zombie Tsunami, Tom Cat Talk, Super Hero Adventure, Classic Brick Game y las aplicaciones ya mencionadas de Google Play Store, empaquetadas con el mismo backdoor y provenientes de los mismos desarrolladores, se subieron a varios mercados alternativos de aplicaciones para Android.

También se descubrió que el mismo backdoor se había empaquetado junto con otras aplicaciones subidas por el desarrollador PRStudio (no prStudio) en mercados alternativos para Android, en algunos de los cuales se hacía referencia a la tienda oficial Google Play Store. Este desarrollador subió al menos otras cinco aplicaciones con el troyano: Candy crush o Jewel crush, Racing rivals, Super maria journey, Zombie highway killer y Plants vs Zombies a diversos mercados para Android de terceros. Como podemos ver, los títulos presentan sutiles diferencias con los originales, pero podrían engañar a un usuario distraído.

Todos estos juegos infectados aún están disponibles para descargar desde estos mercados. Las aplicaciones infectadas se descargaron miles de veces, aunque cabe destacar que el troyano no tiene nada que ver con los juegos oficiales desarrollados por King u otros proveedores legítimos, sino que utiliza sus nombres para distribuirse.

A continuación podemos ver los íconos de los falsos juegos:

Aplicaciones infectadas por un troyano

Aplicaciones infectadas

jewel-crush-android

La aplicación recibe comentarios positivos

La aplicación recibe comentarios positivos

Infección: las víctimas deben instalar el malware 24 horas después de la ejecución

La forma en que se ejecuta este malware presenta algunas variaciones. En ciertos casos, se coloca el troyano en el dispositivo y, 24 horas después de que se ejecuta por primera vez la aplicación descargada, le pide a la víctima que lo instale. Este método le resulta menos sospechoso al usuario y le hace creer que la solicitud para instalar la aplicación proviene del sistema operativo.

Otras versiones del troyano no esperan 24 horas, sino que se inician de inmediato. Todas las variantes se activan después de que cambia la conectividad, cuando se registra un nuevo receptor de transmisión en el manifiesto.

cambio-conectividad

Cambio de conectividad

Cuando se cambia la conexión, se le solicita al usuario que instale la “aplicación del sistema”. El malware se hace pasar por Google Play Update o Manage Settings.

Si el usuario decide cancelar en lugar de instalar, la solicitud de instalación volverá a aparecer cada vez que se cambie la conexión. El usuario promedio se convencerá de que se trata de una actualización importante y es probable que en algún punto instale la aplicación, aunque más no sea para deshacerse de la notificación insistente. A continuación, el troyano inicia un servicio utilizando su propio receptor de transmisión registrado, a la espera de otro cambio en la conexión.

Cuando se establece una conexión, el malware intenta registrarse en los servidores de Google Cloud Messages (GCM) para poder recibir mensajes. Luego de registrarse en GCM, Android/Mapin registra el dispositivo infectado en su propio servidor. Para ello, envía el nombre de usuario, la cuenta de Google, el código IMEI, el ID de registro y su propio nombre.

Registro del dispositivo en el servidor del atacante

Registro del dispositivo en el servidor del atacante

Para evitar que lo desinstalen, el troyano exige que el usuario active el “administrador de dispositivos”:

Administrador de dispositivos

Administrador de dispositivos

Luego, le notifica al servidor remoto si logró activar el administrador de dispositivos correctamente. A continuación, aparece una publicidad en una ventana emergente de pantalla completa (intersticial). La publicidad intersticial se muestra cada vez que cambia la conectividad. Para entregar estas publicidades, usan indebidamente la aplicación legítima SDK AdMob.

Publicidades intersticiales

Publicidades intersticiales

Comunicación a través de Google Cloud Messaging

El troyano se comunica con el servidor usando Google Cloud Messaging (GCM), ya que de esta forma puede responder a los comandos que recibe del servidor. Hoy en día, estos tipos de comunicaciones se están haciendo cada vez más frecuentes entre el malware.

Comandos

Comandos

El troyano no implementa todas su funcionalidades en forma completa, y algunas de las implementadas no se utilizan. Existe la posibilidad de que esta amenaza esté todavía en desarrollo y que sus creadores sigan mejorando el troyano en el futuro. Su objetivo principal, controlado desde el servidor remoto, es entregarle anuncios al usuario final en forma agresiva, mientras que finge ser una aplicación del sistema.

También puede entregar otros programas maliciosos en el dispositivo del usuario. Cuenta con la capacidad de activar o desactivar publicidades intersticiales o de banner; cambiar el ID de editor para los anuncios mostrados; elegir si desea o no mostrarle anuncios al usuario; cambiar el tiempo de retardo entre los anuncios que se muestran; instalar, descargar e iniciar aplicaciones; impulsar notificaciones; revocar los derechos de administrador del dispositivo; cambiar el servidor con el que se comunica el malware; y crear accesos directos en la pantalla principal para direcciones URL que instalan las aplicaciones descargadas.

Después de ejecutar cada tarea recibida mediante GCM, el dispositivo cliente le informa al servidor remoto a través de HTTPS que la tarea se completó con éxito.

Conclusión

El troyano se logró subir sin problemas a la tienda Google Play Store, probablemente debido a que Bouncer no había implementado todas las técnicas de detección de malware pertinentes: en este caso, la emulación de un cambio en la conectividad de red.

Otra pregunta interesante es por qué Bouncer no analizó en forma estática el archivo ejecutable que se entregaba junto con los demás elementos del juego subido. Por este motivo, el troyano permaneció sin ser detectado y se distribuyó abiertamente a los usuarios. El desarrollador “SHSH” subió a la Play Store el juego infectado “Super Hero adventure”, y es posible que existan más aplicaciones suyas en la tienda oficial de Google.

Eventualmente, se eliminaron los troyanos de la tienda de Google Play, pero pasó casi un año y medio sin que fueran detectados. Tal vez debido a este y otros casos similares, Google anunció que, a partir de marzo de 2015, todas las aplicaciones y actualizaciones deben pasar por una revisión humana.

Las mejores prácticas para evitar la descarga de malware desde la tienda oficial de Google consisten en descargar aplicaciones provenientes de desarrolladores de confianza y leer los comentarios de personas que ya las estén usando. También hay que considerar si los permisos que solicita una aplicación para su instalación están justificados.

En caso de que ocurra algo sospechoso, envíale una muestra a tu proveedor antivirus para su análisis, explicando los motivos que tienes para dudar de la aplicación.

Más información

Nombre de la appNombre del paqueteMD5Detección
Highway Zombiecom.heighwayzombie2f6323af124f9fd57edb1482827f9481Android/TrojanDropper.Mapin
Plant vs Zombiecom.plantzombie8721901a2caaeb98a19e0fb909ce2569Android/TrojanDropper.Mapin
USubway Suffercom.subwaysuffersba3c1894310d38aa814ad3c58f1c8469Android/TrojanDropper.Mapin
Climb racingcom.hillclimbrace87cc79d6f6795fea0df109e181d1a3e8Android/TrojanDropper.Mapin
Temple run 2 Zoombiecom.templerunzombiesd5afd7ba5b3bd24cd4fa5201882e1a9dAndroid/TrojanDropper.Mapin
Traffic Racercom.traficracer9cbfd66f35a36d9f75a89f342da9c784Android/TrojanDropper.Mapin
Google Play updatecom.system.mainf8df9e2d21018badc7555a9233a8b53eAndroid/Mapin
Arrange Block - Brick gamecom.game.arrangeblockd7facf652d3947a53f85431ba8a4cd4aAndroid/TrojanDropper.Mapin
Manage Settingscom.appgp.main5586e93ac84317348904adfe01c9715cAndroid/Mapin
Candy crushcom.tgame.candycrush745e9a47febb444c42fb0561c3cea794Android/TrojanDropper.Mapin
Manage Settingscom.appgp.mainc19896fdd3b96b9324c6b79cc39eca5bAndroid/Mapin
Super maria adventurecom.game.supermario0d7c889e8a9be51a58041d55095f104fAndroid/TrojanDropper.Mapin
Manage Settingscom.appgp.mainc19896fdd3b96b9324c6b79cc39eca5bAndroid/Mapin
Super maria journeycom.tgame.mariaee8e4e3801c0101998b7dfee33f35f95Android/TrojanDropper.Mapin
Google Play Updatecom.appgp.main195432955e70ec72018ead058f7abc2dAndroid/Mapin
Zombies highway killercom.absgame.zombiehighwaykiller1516174c4a7f781c5f3ea6ac8447867bAndroid/TrojanDropper.Mapin
Manage Settingscom.appgp.mainf05ac3ac794ee8456db4d0331830d2d8Android/Mapin
Plants Vs Zombiescom.tgame.plantvszombie10edaf2b4c25375644faf78a25790061Android/TrojanDropper.Mapin
Google Play Updatecom.appgp.mainf8879f759b00ed9d406dd14ce450584bAndroid/Mapin
Plants Vs Zombiescom.popcap.pvz_row9b72df484915ce589ade74e65ecdfaedAndroid/TrojanDropper.Mapin

Sigue leyendo: 8 consejos para determinar si una aplicación para Android es legítima

Autor Lukas Stefanko, ESET

Síguenos