En una publicación anterior describimos los mecanismos utilizados por el troyano bancario Trojan-Banker.AndroidOS.Gugi.с para eludir los mecanismos de protección de Android 6. En este artículo, analizaremos con más detenimiento la familia completa de troyanos bancarios Gugi.
WebSocket
La familia de troyanos bancarios móviles Troyan-Banker.AndroidOS.Gugi es interesante porque usa el protocolo WebSocket para interactuar con sus servidores de administración. Este protocolo combina las ventajas del protocolo HTTP con las de los sockets comunes y corrientes; ya que no es necesario abrir ningún puerto adicional en el dispositivo, todas las comunicaciones pasan por el puerto estándar 80 y se puede intercambiar datos en tiempo real.
Llama la atención que a pesar de lo fácil que es usar esta tecnología, no está tan difundida entre los delincuentes. Entre los troyanos móviles que utilizan la tecnología WebSocket, más del 90% pertenecen a la familia Trojan-Banker.AndroidOS.Gugi.
Uso de WebSocket en los troyanos móviles SMS
El primer caso del uso de las tecnologías WebSocket en los troyanos móviles registrado por nuestra compañía se remonta a diciembre de 2013. Se trata del Troyano SMS.AndroidOS.FakeInst.fn . A juzgar por su código, este troyano lo crearon los mismos delincuentes que crearon los troyanos de la familia Trojan-Banker.AndroidOS.Gugi.
Durante su registro inicial, el troyano Trojan FakeInst.fn carga en el servidor una gran cantidad de datos acerca del dispositivo, entre ellos el número de teléfono, la información sobre el operador celular, IMEI, IMSI, etc.
El malware puede recibir desde el servidor un fichero JSON con los siguientes comandos (y los datos para estos comandos):
- sms: envíar un mensaje al número especificado con el texto especificado
- intercept: activar o desactivar la interceptación de SMS entrantes
- adres: cambiar la dirección del servidor de administración
- port: cambiar el puerto del servidor de administración
- contacts: enviar a todos los números de teléfono de los contactos del dispositivo infectado SMS con el contenido especificado
Además, el troyano roba todos los SMS salientes.
Sólo un par de semanas después de que se descubriera FakeInst.fn, a mediados de enero de 2014, apareció una nueva versión de este troyano, que ya no usaba WebSocket. Sus comunicaciones las llevaba a cabo a través del protocolo Http (mediante las solicitudes get y post). Entre todos los paquetes de instalación de este troyano logramos encontrar sólo dos (a mediados de marzo de 2014) que usaban WebSocket. Al parecer, los delincuentes decidieron dejar de usar esta tecnología por un tiempo. Pero casi después de dos años volvieron a usarla , en la familia Gugi.
De troyanos bancarios a malware bancario móvil
Dos años después de la primera versión del troyano Trojan-SMS.AndroidOS.FakeInst.fn, que usaba WebSocket, apareció un nuevo troyano, Trojan-Banker.AndroidOS.Gugi.a.
El código de Gugi tiene muchas similitudes (en los nombres de variables y métodos) con el del troyano Trojan-SMS.AndroidOS.FakeInst.fn. Los principales cambios en Gugi fueron la aparición de una ventana de phishing para robar los datos de tarjetas de crédito del usuario, y la utilización de WebSockets: todos los paquetes de instalación del troyano bancario móvil Gugi usan la tecnología WebSocket para comunicarse con el servidor de administración. De esta forma los delincuentes dejaron de lado el malware de tipo Trojan-SMS para pasar a utilizar el tipo Trojan-Banker.
El desarrollo de Trojan-Banker.AndroidOS.Gugi
Se puede dividir el desarrollo de Trojan-Banker.AndroidOS.Gugi en dos etapas.
“Fanta”
La primera etapa empezó a mediados de diciembre de 2015. En todas las versiones del troyano pertenecientes a esta primera etapa se usa la palabra “Fanta” seguido por el número de la versión, por ejemplo “Fanta v.1.1”.
En la versión 1.0 el troyano Gugi puede ejecutar las siguientes acciones al recibir el correspondiente comando del servidor de administración:
- dejar de funcionar
- robar todos los contactos del dispositivo
- robar todos los SMS del dispositivo
- enviar SMS con el texto especificado al número especificado
- enviar solicitud USSD
- robar SMS del grupo o conversación especificado
Menos de dos semanas después, a finales de diciembre de 2015, logramos detectar la siguiente versión de Gugi, “Fanta v.1.1”. Su principal diferencia respecto a la versión anterior es que en el código existe la posibilidad de desactivar la visualización de la ventana de phishing (recordemos que los delincuentes también pueden utilizar Gugi como troyano SMS). Esta versión está mucho más difundida que la primera. Además, los delincuentes ahora pueden agregar contactos al dispositivo infectado mediante un comando enviado desde el servidor de administración.
A principios de febrero de 2016 detectamos dos nuevas versiones de Gugi, “Fanta v.2.0” y “Fanta v2.2”. En estas versiones se reforzaron las tendencias bancarias del troyano. En primer lugar, apareció una ventana phishing destinada a robar el login y contraseña del sistema de banca en línea de uno de los mayores bancos rusos. En segundo lugar, en el código del troyano apareció una lista de números pertenecientes a dos bancos rusos: todos los SMS entrantes enviados desde estos números, aparte de enviarse al servidor de los delincuentes, como los demás SMS, también se ocultan al usuario.
En todas estas versiones las ventanas phishing solo se mostraban después de recibir un comando del servidor o inmediatamente después de encenderse el teléfono y no se cerraban hasta que el usuario no introdujera sus datos.
Después, a mediados de marzo de 2016, descubrimos la versión “Fanta v.2.2”, que se convirtió en la más masiva de las detectadas, llegando a representar más del 50% del total de paquetes de la etapa “Fanta”. A partir de esta versión, las ventanas phishing se superponen a las aplicaciones bancarias y a la aplicación Google Play.
Ventana phishing que se superpone a la aplicación Google Play Store
También apareció una ventana de phishing, que aparece antes de la ventana de robo de datos de la tarjeta bancaria, con el texto “¡Vincule su tarjeta a Google Play Market y reciba 200 rublos para comprar cualquier aplicación!
Además, empezando con esta versión, el troyano lucha empecinadamente para evitar que se lo elimine. Si el malware tiene derechos de administrador del dispositivo, su eliminación es posible solo si se le quita estos derechos. Por eso, si el troyano no tiene derechos de administrador del dispositivo, pide de forma agresiva que se los den, poniendo su ventana por encima de la ventana de configuración del dispositivo.
En abril de 2016 descubrimos la última versión conocida en la actualidad, perteneciente a la etapa “Fanta v2.3”. En esta versión había un solo cambio sustancial: si el usuario se las arregló para quitarle al troyano los derechos de administrador del dispositivo, el malware puede cambiar la contraseña, haciendo que este se bloquee.
Los productos de Kaspersky Lab detectan todas las versiones de la etapa “Fanta” como Trojan-Banker.AndroidOS.Gugi.a.
“Lime”
El primer archivo perteneciente a la segunda etapa, “Lime”, fue descubierto una semana antes de la aparición de la versión “Fanta v.2.3.”, a principios de abril de 2016.
El código de los paquetes de instalación de esta etapa tenía ciertas modificaciones. En algunas partes del código (y en el nombre de las versiones) ya no estaba la palabra “Fanta” y en algunos lugares se la había reemplazado por la palabra “Lime”. El mismo nombre del troyano (Lime) estaba indicado en el panel de administración desde donde los delincuentes controlan este malware.
Panel de administración del troyano
Las versiones del troyano de la etapa “Lime” no cambian la contraseña del dispositivo cuando pierden los derechos de administrador del dispositivo.
El primer archivo que descubrimos en abril de 2016 tenía la versión 1.1 y a juzgar por el código, era un prototipo de evaluación. El siguiente paquete de instalación del periodo “Lime” lo descubrimos a mediados de mayo de 2016. También tenía la versión 1.1, pero sus funciones estaban perfeccionadas.
El principal cambio en la versión 1.1 de la etapa “Lime” es la aparición de nuevas ventanas de phishing. Ahora el troyano podía atacar 5 aplicaciones bancarias de diversos bancos rusos. Además, apareció un nuevo comando: recibir la lista de reglas de procesamiento de SMS entrantes. Estas reglas determinan qué mensajes ocultar al usuario y a qué mensajes se deben enviar las respuestas especificadas.
Además, durante el mes de mayo año de 2016 descubrimos archivos identificados por los autores como versiones 1.2 y 1.5, cuyas funciones, a pesar de los diferentes números, seguían siendo las mismas.
Mientras tanto, salió la nueva versión Android 6.0, que tiene características que interfieren con el funcionamiento del troyano. En junio descubrimos una nueva versión (2.0) del troyano, en la que los delincuentes agregaron soporte para Android 6. En los dispositivos que ejecutan Android 6, el troyano primero solicita el derecho de superponer sus ventanas a las de otras aplicaciones. Después usa este derecho para bloquear el dispositivo casi del todo y obligar al usuario a otorgarle derechos de administrador del dispositivo a la aplicación maliciosa, además de permisos para leer y enviar mensajes SMS y hacer llamadas.
Las versiones 3.0 y 3.1, descubiertas en julio, tienen la misma funcionalidad que la versión 2.0 y usan el mismo servidor de administración, pero con otros puertos. Descubrimos solamente dos paquetes de instalación, uno para cada versión. Al mismo tiempo, se sigue difundiendo activamente la versión 2.0.
Los productos de Kaspersky Lab detectan todas las versiones de la etapa “Lime” como Trojan-Banker.AndroidOS.Gugi.c.
Propagación
El troyano se propaga activamente mediante spam SMS con enlaces a páginas phishing, con un mensaje de que el usuario ha recibido, supuestamente, una fotografía por MMS.
Información sobre el mensaje MMS en el sitio phishing
Al pulsar el botón “ver” del mensaje se descarga el troyano Trojan-Banker.AndroidOS.Gugi. Es muy probable que el nombre del troyano descargado desde tal sitio sea similar a img09127639.jpg.apk.
Como ya escribimos en la publicación anterior, los dos últimos meses hemos visto un crecimiento explosivo de los ataques del troyano Trojan-Banker.AndroidOS.Gugi: en agosto el número de usuarios atacados por Gugi fue casi el triple que en julio y casi 20 veces mayor que en junio.
Número de usuarios de los productos de Kaspersky Lab para dispositivos móviles que sufrieron ataques de la familia de troyanos bancarios móviles Trojan-Banker.AndroidOS.Gugi
Hasta la fecha, una parte significativa de los ataques se realiza mediante Lime v.2.0. Todos los servidores de administración activos que conocemos pertenecen a las versiones Lime 1.5 – 3.1. Ninguno de los servidores conocidos relacionados con las versiones Fanta está disponible desde mediados de agosto de 2016.
Más del 93% de los usuarios atacados se encontraban en Rusia.
MD5 de los archivos maliciosos mencionados en el texto
0x8EB8170A6B0957ED4943DAF6BA5C0F0A
0x01BC8A2C84D1481042723F347056B1B3
0xBF257FD4F46605A5DBE258561891D77B
0x01CD86238FE594CAC2495CE6BD38FAFA
0xCBCC996BF49FFE3F90B207103102177B
0x4C7C48B919C26278DD849ED4BB0B3192
0x11F51C119BC1E7D2358E2565B2287925
0xFA7C61CF2563F93DEA4BB9964D2E7806
0xC5A727E6C6A5E57EDDB16E6556D5D666
0xD644E6E68F83504787443E8C8A3CB47F
0xE778EAB7A2FB55C7BC67F15A692DE246
0xE6C3329A8CC357C5BA455BB3C4372DE3
0x8BE9C3EDED33E2ADD22DE1A96C4A6B2B
Gugi: de troyano SMS a malware bancario móvil