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 app Nombre del paquete MD5 Detección
Highway Zombie com.heighwayzombie 2f6323af124f9fd57edb1482827f9481 Android/TrojanDropper.Mapin
Plant vs Zombie com.plantzombie 8721901a2caaeb98a19e0fb909ce2569 Android/TrojanDropper.Mapin
USubway Suffer com.subwaysuffers ba3c1894310d38aa814ad3c58f1c8469 Android/TrojanDropper.Mapin
Climb racing com.hillclimbrace 87cc79d6f6795fea0df109e181d1a3e8 Android/TrojanDropper.Mapin
Temple run 2 Zoombie com.templerunzombies d5afd7ba5b3bd24cd4fa5201882e1a9d Android/TrojanDropper.Mapin
Traffic Racer com.traficracer 9cbfd66f35a36d9f75a89f342da9c784 Android/TrojanDropper.Mapin
Google Play update com.system.main f8df9e2d21018badc7555a9233a8b53e Android/Mapin
Arrange Block - Brick game com.game.arrangeblock d7facf652d3947a53f85431ba8a4cd4a Android/TrojanDropper.Mapin
Manage Settings com.appgp.main 5586e93ac84317348904adfe01c9715c Android/Mapin
Candy crush com.tgame.candycrush 745e9a47febb444c42fb0561c3cea794 Android/TrojanDropper.Mapin
Manage Settings com.appgp.main c19896fdd3b96b9324c6b79cc39eca5b Android/Mapin
Super maria adventure com.game.supermario 0d7c889e8a9be51a58041d55095f104f Android/TrojanDropper.Mapin
Manage Settings com.appgp.main c19896fdd3b96b9324c6b79cc39eca5b Android/Mapin
Super maria journey com.tgame.maria ee8e4e3801c0101998b7dfee33f35f95 Android/TrojanDropper.Mapin
Google Play Update com.appgp.main 195432955e70ec72018ead058f7abc2d Android/Mapin
Zombies highway killer com.absgame.zombiehighwaykiller 1516174c4a7f781c5f3ea6ac8447867b Android/TrojanDropper.Mapin
Manage Settings com.appgp.main f05ac3ac794ee8456db4d0331830d2d8 Android/Mapin
Plants Vs Zombies com.tgame.plantvszombie 10edaf2b4c25375644faf78a25790061 Android/TrojanDropper.Mapin
Google Play Update com.appgp.main f8879f759b00ed9d406dd14ce450584b Android/Mapin
Plants Vs Zombies com.popcap.pvz_row 9b72df484915ce589ade74e65ecdfaed Android/TrojanDropper.Mapin

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