Overlays: La técnica preferida por los bankers en Android

Publicado por buguroo - 16/09/2019

Nueve años han pasado ya desde que se descubriese el primer malware bancario para dispositivos móviles Android. Era 2010, apenas un año y medio había pasado desde el lanzamiento del HTC Dream, el primer smartphone con Android como sistema operativo.

Este primer troyano bancario no robaba credenciales de acceso bancario como tal, sino que se encargaba de robar códigos de autorización para transacciones bancarias enviadas por SMS al usuario. Fue bautizado como Zitmo (Zeus-in-the-mobile), ya que se utilizaba junto al troyano bancario Zeus para Windows. A través de Zeus los atacantes robaban las credenciales de acceso, mientras que Zitmo les permitía robar los códigos de autorización para acceder a las cuentas robadas y autorizar las transacciones fraudulentas.

 

Evolución malware bancario

Android ha cambiado desde la aparición de Zitmo, y con él, también lo han hecho las técnicas de los atacantes para robar datos bancarios de los usuario infectados. Una de las características que más llama la atención es que en la actualidad es difícil encontrar un malware bancario como tal, en su lugar, la mayor parte de los troyanos bancarios son mucho más que eso. Son troyanos complejos y con múltiples funcionalidades: robo de SMS, robo de contactos, envío masivo de SMS a contactos, ransomware, etc.

Hemos podido observar que a lo largo de los años no ha cambiado demasiado el esquema de funcionamiento del malware bancario, pero sí que lo ha hecho su complejidad. El robo de credenciales bancarias sigue, desde el inicio, basado en mostrar ‘overlays’, ventanas que se abren encima de la ventana legítima de la aplicación bancaria. Estas ventanas fraudulentas, contienen básicamente un formulario muy similar al original, cuyo objetivo es que el usuario introduzca sus credenciales y se envíen al servidor de control.

Aunque en la actualidad existe malware bancario para Android, hay que destacar que los troyanos bancarios para Android son realmente troyanos espia completos, con mucha más funcionalidad que la necesaria para el robo de credenciales bancarias. Esto se debe a que habitualmente los autores de malware no buscan infectar a sus víctimas, sino vender su software a terceros, que con unos pocos pasos pueden configurar todas aquellas funcionalidades en las que estén interesados y distribuir el troyano.

 

Robo de credenciales con ‘overlays’

Entre los troyanos bancarios más populares en la actualidad encontramos Anubis Bankbot y Cerberus, otros ‘bankers’ cuya popularidad ha descendido son RedAlert y Marcher. De estos dos últimos es muy raro ver nuevas muestras desde hace meses, mientras que Anubis y Cerberus son troyanos en auge actualmente. 

La técnica utilizada por todos los troyanos bancarios para Android para robar credenciales de acceso se basa en mostrar ‘overlays’. El malware obtiene la lista completa de aplicaciones instaladas en el dispositivo, algo que es sencillo de conseguir y no requiere permisos especiales.

Una vez identificadas las aplicaciones instaladas, el troyano puede determinar a cuales de ellas debe realizar el ataque. A continuación viene la parte más compleja, detectar el momento en el que la aplicación es iniciada por el usuario, ya que, una vez iniciada el malware abrirá al mismo tiempo una ventana que simula la ventana de la entidad afectada solicitando las credenciales de acceso a la cuenta.

Para detectar el lanzamiento de la aplicación afectada, los troyanos bancarios suelen implementar un servicio de Android. Este servicio se encargará de comprobar una y otra vez la lista de procesos activos en el sistema, comprobando si alguna de las aplicaciones afectadas es ejecutada en algún momento.

Una de las formas utilizadas en Anubis para obtener la lista de procesos en ejecución consiste en utilizar la clase ‘UsageStatsManager’ de la API de Android. A través de esta clase, la aplicación maliciosa es capaz de obtener la lista de procesos en ejecución y la última vez que estuvo ejecutando en primer plano. Gracias a esta información, el troyano es capaz de obtener la aplicación que se encuentra ejecutando en primer plano en cada momento.

bankers-android-overlays-01

Código encargado de obtener la aplicación en primer plano (Anubis)

Por defecto, una aplicación no puede acceder a las estadísticas de uso si no solicita el permiso ‘PACKAGE_USAGE_STATS’, por lo que es necesario que el malware solicite, al menos, este permiso.

Otro permiso habitual es ‘REQUEST_IGNORE_BATTERY_OPTIMIZATIONS’, que permite a la aplicación maliciosa continuar su ejecución sin importar que el usuario tenga configurados ajustes de ahorro de energía. Recordemos que uno de los problemas de este tipo de malware es que necesitan ejecutar constantemente un servicio que compruebe los procesos en ejecución.

Una vez detectada la ejecución de una aplicación afectada, el malware lanza rápidamente el ‘overlay’ con el phishing. Para mostrar el ‘overlay’, no es necesario realizar ningún truco complejo, ya que puede lanzar una ‘Activity’ como cualquier otra aplicación de Android. El único inconveniente es que si el usuario pulsa el botón de ‘multitarea’, podrá ver todas las aplicaciones abiertas, lo que incluye la aplicación bancaria legítima y la actividad de la aplicación maliciosa.

bankers-android-overlays-02

Código encargado de inicializar la ‘WebView’ de phishing (Anubis)

La mayor parte del malware bancario implementa la actividad con el falso formulario de inicio de sesión utilizando una ‘WebView’. Esta ‘WebView’ cargará una web de phishing alojada en el servidor de control del malware, lo que permite al malware simplificar el desarrollo destinado a la ventanas de phishing y actualizar el estilo rápidamente si fuese necesario. 

bankers-android-overlays-03

Aplicación legítima

bankers-android-overlays-04

‘WebView’ fraudulenta

 

Aunque la mayoría de malware hace uso de ‘WebViews’, algunos de ellos también incluyen actividades nativas, como es el caso de Marcher.

Para lograr la persistencia en el sistema e iniciar el servicio malicioso cada vez que se inicie el sistema, estos troyano configuran el ‘receiver’ ‘RECEIVE_BOOT_COMPLETED’ en el servicio malicioso, lo que permitirá que el sistema inicie el servicio al arrancar el sistema.

 

Conclusiones

Como podemos observar, poco después del lanzamiento del primer smartphone con Android los atacantes ya vieron el potencial que tendrían los dispositivos móviles, y desarrollaron el primer malware bancario, ‘Zitmo’. Aunque este no robaba las credenciales por sí solo, sino que actuaba como apoyo del malware ‘Zeus’ para Windows.

A lo largo de los años la funcionalidad destinada al robo de credenciales bancarias no ha evolucionado demasiado, en cambio, los autores parecen preferir una evolución basada en el incremento de funcionalidades, lo que les permita tener malware genérico que aglutine varios tipos en uno solo. 

La tendencia hacia el desarrollo de malware genérico no sólo les permite obtener beneficios con el robo de datos bancarios, sino que les reporta beneficios a través del resto de funcionalidades: ransomware, envío masivo de mensajes SPAM, etc.

El desarrollo genérico, además, les permite obtener beneficio económico sin necesidad de infectar usuarios directamente, vendiendo el software malicioso a través de foros ‘underground’ en la ‘deep web’. Lo que reduce las dificultades y aumenta el beneficio.

.

.

Temas: Cybersecurity

 

 

Deep Learning for Online Fraud Prevention


Últimos artículos

Repaso de los principales mecanismos de autenticación utilizados

read more

¿Amigo o enemigo? Cuando el estafador es, además, su cliente

read more

CYBERCRIME.ORG. Cibercrimen como Empresa

read more