Aquel peligroso troyano bancario para Android del que informamos a principios de año encontró nuevamente la forma de infiltrarse en Google Play, más sigiloso que nunca.

BankBot ha estado evolucionando a lo largo del año, resurgiendo de vez en cuando en distintas versiones tanto en Google Play como en otras tiendas alternativas. La variante que descubrimos en la tienda oficial de Android el 4 de septiembre es la primera que logró combinar efectivamente los últimos avances de BankBot: ofuscación de código mejorada, una sofisticada funcionalidad para descargar el payload y un mecanismo de infección sigiloso que se aprovecha de la accessibilidad en Android.

Muchos troyanos se han aprovechado anteriormente de la accesibilidad en Android, mayormente afuera de Google Play. Análisis recientes de SfyLabs y Zscaler han confirmado que los criminales que propagan a BankBot lograron subir a Google Play una aplicación con funcionalidad para explotarla, aunque sin el payload del malware bancario.

El paquete completo, incluyendo este payload, logró llegar a la tienda oficial haciéndose pasar por un juego llamado Jewels Star Classic; es importante señalar que los atacantes utilizaron el nombre de la popular saga Jewels Star, desarrollada por ITREEGAMER, la cual no está relacionada a esta campaña maliciosa en absoluto.

Hemos notificado al equipo de seguridad de Google sobre la aplicación maliciosa, que habían instalado hasta 5.000 usuarios antes de que fuera eliminada de la tienda.

¿Cómo opera BankBot?

Cuando el usuario descarga Jewels Star Classic, desarrollado por GameDevTony (Fig. 1), obtiene un juego de Android que funciona, pero que tiene algunos elementos adicionales escondidos: malware bancario entre los recursos del juego y un servicio malicioso que espera ser ejecutado tras una ventana de tiempo preconfigurada.

 

Figura 1: La aplicación maliciosa descubierta en Google Play

El servicio malicioso se ejecuta 20 minutos después de la primera ejecución de Jewels Star Classic. El dispositivo infectado muestra una alerta instando al usuario a habilitar algo llamado “Google Service” (nota: el alerta aparece independientemente de la actividad que esté llevando a cabo el usuario, sin conexión aparente con el juego).

Tras hacer clic en OK, la única manera de evitar que aparezca la ventana, el usuario es llevado al menú de accesibilidad de Android, en el que se gestionan servicios con esta función. Entre los legítimos aparece uno nuevo llamado “Google Service”, que fue creado por el malware. Hacer clic en este servicio muestra una descripción tomada de las Condiciones de servicio originales de Google.

Figura 2: Alerta que insta al usuario a habilitar “Google Service”

 

Figura 3: “Google Service” listado entre los Servicios de accesibilidad en Android

 

Figura 4: Descripción del servicio malicioso tomada de las Condiciones de servicio de Google

Cuando el usuario decide activar el servicio, ve una lista de permisos requeridos (Fig. 5):

  • Observar tus acciones
  • Recuperar contenido de ventana
  • Prender Explore by Touch
  • Activar la accesibilidad web mejorada
  • Ejecutar acciones

Hacer clic en OK le otorga permisos de accesibilidad reales al servicio de accesibilidad propio del malware. Con esto, el usuario le da a la amenaza vía libre para ejecutar cualquier acción que necesite para continuar su actividad maliciosa.

Figura 5: Permisos que require la activación de “Google Service”

En la práctica, tras aceptar los permisos, al usuario se le niega brevemente el acceso a su pantalla debido a una “actualización” de Google Service (no hace falta decir que esto no es obra de Google) que está ocurriendo en segundo plano (Fig. 6).

Figura 6: Pantalla cubriendo la actividad maliciosa

El malware usa esta pantalla para cubrir sus próximos pasos: hacer clics, como si fuese el usuario, aprovechando los permisos obtenidos. Mientras el usuario espera que la supuesta actualización termine, el malware ejecuta las siguientes tareas:

  • Habilita la instalación de aplicaciones de fuentes desconocidas
  • Instala BankBot desde sus recursos y lo ejecuta
  • Activa el administrador de dispositivo para BankBot
  • Establece BankBot como aplicación de SMS por defecto
  • Obtiene permiso para sobreescribir otras apps

Una vez que se ejecutan con éxito estas tareas, el malware puede empezar a trabajar en su siguiente meta: robar los detalles de la tarjeta de crédito de la víctima. A diferencia de otras variantes de BankBot que apuntan a una extensa lista de aplicaciones de banca específicas e imitan sus páginas de inicio de sesión para recolectar credenciales, esta variante se enfoca exclusivamente en Google Play, una aplicación que todo usuario de Android tiene preinstalada en su dispositivo.

Cuando el usuario ejecuta la aplicación de Google Play, BankBot entra en acción y se superpone a la app legítima con un formulario falso, en el que le pide los datos de su tarjeta de crédito (Fig. 7).

Figura 7: Formulario falso que solicita los datos de la tarjeta de crédito de la víctima

Si el usuario cae en la trampa e ingresa los datos, los atacantes, en esencia, ganaron. Gracias a que BankBot se estableció a sí mismo como la aplicación de mensajería por defecto, puede interceptar todos los mensajes SMS que pasan por el dispositivo infectado. Esto les permite a los atacantes evadir la doble autenticación basada en SMS en la cuenta bancaria de la víctima, que sería potencialmente el último obstáculo protegiendo a la víctima.

¿Qué lo hace tan peligroso?

En este campaña, los criminales reunieron una serie de técnicas cada vez más populares entre creadores de malware para Android: abusar del servicio de accesibilidad de Android, hacerse pasar por Google y establecer un timer que demora la actividad maliciosa para evadir las medidas de seguridad de Google.

Las técnicas combinadas hacen muy difícil para la víctima reconocer la amenaza a tiempo. Como el malware se hace pasar por Google y espera 20 minutos antes de mostrar la primera alerta, la víctima tiene muy pocas chances para relacionar su actividad con la app de Jewel Star Classic que acaba de descargar. Además, los muchos nombres diferentes que el malware usa a lo largo del proceso de infección complican significativamente los esfuerzos para ubicarlo y eliminarlo manualmente.

¿Cómo limpiar un dispositivo infectado?

Si sueles descargar muchas aplicaciones diferentes desde Google Play y otras tiendas, fíjate si no te topaste con este malware.

Verificar la presencia de Jewels Star Classic en tu teléfono no es suficiente, ya que los atacantes cambian frecuentemente las aplicaciones utilizadas para propagar a BankBot. Para ver si tu dispositivo está infectado, te recomendamos prestar atención a los siguientes indicadores:

  • Presencia de una app llamada “Google Update” (mostrada en Fig. 8, se encuentra en Ajustes → Aplicaciones → Administrador de aplicaciones → Google Update).
  • Un administrador de dispositivo activo llamado “System update” (se muestra en la Fig. 9 y se encuentra en Ajustes → Pantalla de bloqueo y seguridad → Otros ajustes de seguridad → Administradores de dispositivos).
  • Aparición repetida del alerta de “Google Service” (mostrada en la Fig.2)

 

Figura 8: Las aplicaciones maliciosas en el Administrador de aplicaciones

 

Figura 9: BankBot disfrazado de System update dentro de los Administradores de dispositivo activos

Si detectas alguno de estos indicadores, es probable que tu dispositivo se haya infectado con esta variante de BankBot.

Para limpiar manualmente tu dispositivo, primero necesitarías deshabilitar los derechos de administrador de “System Update”, luego proceder a desinstalar tanto “Google Update” como la aplicación troyanizada asociada, en este caso Jewel Star Classic.

Puede que determinar qué aplicación troyanizada dio lugar a la infección sea dificultoso debido a la demora de 20 minutos en la actividad maliciosa, y a que la aplicación funciona como se espera. Para detectar y eliminar la amenaza con todos sus componentes, recomendamos usar una solución de seguridad móvil.

Las soluciones de seguridad de ESET detectan y bloquean esta variante de BankBot como Android/Spy.Banker.LA. 

¿Cómo mantenerte protegido?

Además de usar una solución de seguridad confiable, hay otras cosas que puedes hacer para evitar ser víctima de malware móvil:

  • Cuando sea possible, dale prioridad a las tiendas de aplicaciones oficiales y no a las alternativas. Aunque no es perfecta, Google Play emplea mecanismos de seguridad avanzados, lo cual no siempre es el caso en otras tiendas.
  • Cuando dudes acerca de instalar una app, verifica su popularidad mirando el número de instalaciones, las calificaciones y los comentarios de los usuarios anteriores.
  • Tras ejecutar cualquier cosa que hayas instalado en tu dispositivo móvil, presta atención a los permisos y derechos que solicita. Si una aplicación requiere permisos intrusivos, sobre todo relacionados a accesibilidad, léelos con cuidado y asígnalos solo si estás totalmente seguro de que la app es confiable.

 

¿Qué es BankBot?

Detectado por ESET inicialmente el 26 de diciembre y analizado primero por Dr. Web, BankBot es un troyano bancario para Android controlado remotamente, capaz de recolectar datos bancarios usando formularios de login falsos para varias aplicaciones, interceptando mensajes de texto para evadir el doble factor de autenticación y mostrando notificaciones push no solicitadas.

Poco después del descubrimiento de las apps troyanizadas con BankBot en Google Play a principios de 2017, confirmamos que las apps maliciosas derivaban de código fuente que se había hecho público en foros underground en diciembre de 2016. La disponibilidad pública del código derivó en un aumento en el número y la sofisticación de troyanos bancarios móviles.

Muestra analizada/IoCs

Nombre del paquete Hash
com.mygamejewelsclassic.app B556FB1282578FFACDBF2126480A7C221E610F2F
com.w8fjgwopjmv.ngfes.app 4D3E3E7A1747CF845D21EC5E9F20F399D491C724