El Troyano Mapin consigue infectar sistemas Android a pesar de las medidas de seguridad de Google

android_stagefright-623x427

Los investigadores de ESET han descubierto recientemente un interesante ataque a usuarios de Android camuflado como aplicaciones de juegos pero con un añadido interesante. Estas aplicaciones se encuentran unidas a otras que tienen como nombre systemdata o resourcea y esto es, ciertamente, algo sospechoso. ¿Por qué una aplicación descargada desde Google Play Store viene con otra de nombre systemdata? Estas aplicaciones / juegos de Google Play no son aplicaciones del sistema, tal y como su nombre pretende sugerir.

La aplicación empaquetada se descarga en el dispositivo pero solicita al usuario confirmar la instalación. Esta aplicación se camufla como “Manage Settings” y, tras la instalación, la aplicación se ejecuta en segundo plano como un servicio.

ESET detecta los juegos que instala el troyano como Android/TrojanDropper.Mapin y el troyano mismo como Android/Mapin. De acuerdo con nuestra telemetría, los usuarios de Android en India son los más afectados actualmente, con un 73,58 % de detecciones observadas.

Estre troyano toma el control del dispositivo y lo hace formar parte de una botnet bajo el control del atacante. El troyano también establece un contador que retrasa la ejecución del código malicioso. Esto se hace así para que resulte menos obvio que el juego troyanizado es responsable de este comportamiento sospechoso. En algunas variantes de esta amenaza se necesitaron al menos 3 días para activar todas las funcionalidades del troyano. Muy probablemente, este retraso en la activación es lo que ha permitido a esta amenaza pasar a través del sistema de prevención de malware de Google Bouncer.

Tras instalarse, el troyano solicita permisos de administrador del dispositivo y empieza a comunicarse con su centro remoto de mando y control. Android/ Mapin contiene múltiples funcionalidades, tales como enviar notificaciones al usuario, descargar, instalar y ejecutar aplicaciones y obtener la información privada del usuario, pero su principal propósito parece que es mostrar anuncios a pantalla completa en el dispositivo infectado.

Vectores de distribución

Lo más interesante de este troyano es que estuvo disponible para su descarga de la tienda oficial de Google Play a finales de 2013 y 2014 camuflado dentro de aplicaciones como Hill climb racing the game, Plants vs zombies 2, Subway suffers, Traffic Racer, Temple Run 2 Zombies y Super Hero Adventure por los desarrolladores TopGame24h, TopGameHit y SHSH. El malware se subió a Google Play entre el 24 y el 30 de noviembre de 2013 y el 22 de noviembre de 2014.

De acuerdo a MIXRANK, Plants vs zombies 2 tuvo alrededor de 10.000 descargas antes de ser retirada. En las mismas fechas System optimizer, Zombie Tsunami, tom cat talk, Super Hero adventure, Classic brick game y las aplicaciones mencionadas anteriormente de la tienda Google Play, empaquetados con el mismo troyano, fueron subidas a varios mercados alternativos de Android por los mismos desarrolladores. El mismo troyano fue también fue encontrado con otras aplicaciones subidas por el desarrollador PRStudio (no confundir con prStudio) a mercados alternativos de Android, con algunos de ellos apuntando a la tienda de Google Play.

Este desarrollador subió al menos otras cinco aplicaciones troyanizadas a varios mercados alternativos de Android: Candy crush o Jewel crush, Racing rivals, Super maria journey, Zombie highway killer, Plants vs Zombies. Todos estos juegos infectados siguen disponibles para su descarga desde estos mercados y las aplicaciones infectadas han sido descargadas miles de veces. Tal y como se puede comprobar por los nombres e iconos usados, los creadores de este tipo de aplicaciones maliciosas buscan confundir a los usuarios utilizando nombres similares e iconos muy parecidos a los de las aplicaciones reales.

Imagen 1: Aplicaciones infectadas

mapin2

mapin3Imagen 2: La aplicación recibe comentarios positivos

Análisis

Existen variaciones en la forma en que se ejecuta este malware. Por ejemplo, el troyano puede esperar a solicitar su instalación 24 horas después de haberse descargado la aplicación maliciosa. Este método parece menos sospechoso de cara al usuario y le hace creer que la petición para instalar una aplicación proviene del propio sistema operativo. Versiones antiguas del troyano no se esperan tanto tiempo y se ejecutan inmediatamente. Sin embargo, todas las variantes se activan cuando se cambia el tipo de conectividad y un receptor broadcast se registra el manifiesto de la aplicación.

mapin4Cambio en el receptor de la conectividad

Cuando se cambia la conexión se le solicita al usuario que instale la “system application”. El malware se camufla haciéndose pasar por Google Play Update o Manage Settings.

mapin5_6Imagen3: Peticiones de instalación realizadas por el troyano

Si el usuario elige la opción de Cancelar se le mostrará esta pantalla de instalación siempre que se cambie el tipo de conexión. El usuario medio pensará que se trata de algún tipo de actualización importante y es muy probable que termine instalando el malware solo para librarse de la notificación. Después de instalarse, el troyano inicia un servicio con su propio receptor de broadcast, esperando un nuevo cambio en la conexión.

Cuando se active una conexión, el malware trata de registrarse con los servidores de Google Cloud Messages (GMC) antes de empezar a recibir mensajes. Tras registrarse en el GMC, Android/Mapin se registrará el dispositivo infectado en su propio servidor enviando el nombre de usuario, la cuenta de Google, IMEI, ID de registro y su propio nombre del paquete.

mapin7

Imagen 4: Registro del dispositivo en el servidor del atacante

Para prevenir su desinstalación, el troyano exige que el usuario le otorgue permisos de administrador del dispositivo.

mapin8_9Imagen 3: Solicitud de permisos de Administrador del dispositivo

El troyano notificará al servidor remoto si la activación de los permisos de administración del dispositivo se realizó con éxito o no. Seguidamente, al usuario se le mostrará un anuncio (interstitial) a pantalla completa y se mostrará cada vez que cambie el tipo de conexión. Estos anuncios se envían por un uso ilegítimo del SDK AdMob.

mapin10_11Imagen 4: Anuncios Interstitial

Comunicación

El troyano se comunica con el servidor usando Google Cloud Messaging (GCM). Este sistema de comunicación está siendo utilizado cada vez más frecuentemente por el malware actual y permite al troyano responder a los comandos enviados por el servidor.

mapin12Imagen 5: Comandos

A día de hoy, aún no se ha implementado toda la funcionalidad posible en este troyano y parte de la que sí está implementada no es utilizada por sus creadores. Existe la posibilidad de que esta amenaza se encuentre aún en fase de desarrollo y el troyano reciba mejoras en el futuro. Su propósito principal, controlado desde el servidor remoto, es mostrar publicidad agresiva a los usuarios mientras se camufla como una aplicación del sistema.

También puede instalar otros programas maliciosos en el dispositivo del usuario, activar o desactivar banners de anuncios intersitiales, cambiar el ID del editor, elegir si mostrar o no anuncios al usuario, cambiar el tiempo de retraso existente entre distintos anuncios, instalar, descargar y ejecutar aplicaciones, enviar notificaciones, eliminar permisos de administrador del dispositivo, cambiar el servidor con el que se comunica el malware y generar enlaces directos en la pantalla de inicio a direcciones web que descargan e instalan aplicaciones. Tras ejecutar cada una de estas tareas, recibidas mediante GMC, el dispositivo del cliente informará al servidor remoto vía HTTPS de que sus tareas se han realizado con éxito.

Conclusión

El troyano consiguió ser subido a la tienda de Google Play probablemente porque el mecanismo de Bouncer no tenía implementados los detectores de malware, en este caso los que se encargan de detectar cambios extraños en la conectividad a diferentes redes. Otra pregunta interesante sería averiguar por qué Bouncer no analizó de forma estática el fichero malicioso que había dentro del juego subido.

Por ese motivo, el troyano permaneció sin ser detectado y fue proporcionado a los usuarios sin restricción alguna. El juego infectado “Super Hero adventure” fue subido a Google Play Store por el desarrollador “SHSH” y es posible que más aplicaciones de este desarrollador fueran subidas a la tienda oficial. Estos troyanos fueron retirados de la tienda oficial de Google, pero estuvieron sin ser detectados alrededor de un año y medio. Quizás por este caso y otros similares, Google anunció en marzo de 2015 que todas las aplicaciones y sus actualizaciones pasarían por un proceso de revisión humana.

La mejor manera de evitar la descarga de malware de la tienda oficial es descargando aplicaciones de desarrolladores de confianza y leyendo los comentarios de los usuarios que ya están usándolas. También es importante tener en cuenta si los permisos que exige una aplicación están justificados. Si tu sistema funciona de manera anómala, sería interesante que enviases una muestra del instalador de la aplicación sospechosa a su casa de antivirus para que proceda a analizarla.

Josep Albors a partir de una investigación de Lukas Stefanko

Más información:
Nombre 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

 

 

 

 

3 Comentarios
  1. Josep Albors

Añadir un comentario

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