A lo largo de los últimos años, los malware bancarios (también conocidos como “bankers”) han visto disminuida su popularidad entre los cibercriminales. Una de las razones para explicar esta realidad puede deberse a que tanto las compañías desarrolladoras de soluciones de seguridad, como los desarrolladores de navegadores, están continuamente ampliando el campo de acción de sus mecanismos de protección contra ataques de troyanos bancarios. Esto hizo que los fraudes mediante malware bancarios sean más difíciles de realizar, lo que trajo como resultado que los creadores de estos códigos maliciosos se enfocaran más en el desarrollo de otros tipos de malware más rentables y fáciles de desarrollar, como ransomware, mineros de criptomonedas o códigos maliciosos para robar criptomonedas.
Sin embargo, recientemente descubrimos una nueva familia de malware bancario que utiliza una técnica innovadora para manipular el navegador: en lugar de usar métodos complejos de inyección de procesos para monitorear la actividad del navegador, el malware coloca hooks para interceptar eventos específicos del bucle de mensajes de Windows, de tal modo que pueda inspeccionar los valores de las ventanas en busca de actividades bancarias.
Una vez que la actividad bancaria es detectada, el malware inyecta un JavaScript malicioso en el sitio web, ya sea a través de la consola JavaScipt del navegador o directamente en la barra de dirección. Todas estas operaciones son realizadas sin que el usuario se entere. Si bien se trata de un truco aparentemente sencillo, logra vencer los mecanismos avanzados de protección contra ataques complejos en navegadores.
Introducción
En enero de este año notamos por primera vez al grupo detrás de este malware bancario propagando sus primeros proyectos; siendo uno de ellos un malware que robaba criptomonedas reemplazando la dirección de las billeteras en el portapapeles. El grupo se focalizó en malware de clipboard durante unos meses, hasta que finalmente introdujo la primera versión del malware bancario, detectado por ESET como Win32/BackSwap.A, el 13 de marzo de 2018.
En la imagen a continuación se puede apreciar un alarmante pico en la tasa de detección en comparación con los proyectos previos. Los autores han estado muy activos en el desarrollo del banker y han estado introduciendo nuevas versiones casi que a diario; tomando descansos solamente los fines de semana.
Distribución y ejecución del malware bancario
El banker es distribuido mediante campañas de spam maliciosas a través del correo, que contienen como adjunto un downloader JavaScript, fuertemente ofuscado, de una familia comúnmente conocida como Nemucod. De acuerdo a lo que vimos, las campañas de spam están dirigidas principalmente contra usuarios polacos.
Frecuentemente, las máquinas de las víctimas también están comprometidas por el popular downloader Win32/TrojanDownloader.Nymaim, el cual parece propagarse utilizando un método similar. Hasta el momento, no sabemos si esto se trata de una coincidencia o si estas dos familias tienen conexión directa.
El payload es enviado como una versión modificada de una aplicación legítima que está parcialmente sobrescrita por el payload malicioso. Asimismo, van cambiando la aplicación que modifican de manera regular (ejemplos de apps que fueron trastocadas con un propósito malicioso incluyen, por ejemplo, TPVCGateway, SQLMon, DbgView, WinRAR Uninstaller, 7Zip, OllyDbg, y FileZilla Server). Por otra parte, la app es manipulada para que salte hacia el código malicioso durante su inicialización. Una de las técnicas utilizadas para lograr esto es agregando un puntero al payload malicioso en la tabla de funciones _initterm(), la cual es una parte interna del entorno de ejecución de C que inicializa todas las variables globales y otras partes del programa que necesitan inicializarse antes de que se llame a main().
Este método puede parecer una reminiscencia de una “troyanización”, pero la diferencia es que la aplicación original deja de funcionar, y una vez que el control es traspasado hacia el malware, nunca volverá al código original. Por lo tanto, la intención no es engañar a los usuarios y hacerlos creer que están ejecutando la aplicación original, sino más bien aumentar la capacidad de camuflaje del malware para que pase desapercibido frente a posibles análisis y detecciones. Esto hace que el malware sea difícil de identificar para un analista, ya que varias herramientas de ingeniería inversa, como IDA Pro, presentarán a la función principal original como el legítimo inicio del código de la aplicación y lograrán que en un primer momento un analista no detecte nada sospechoso.
El payload es una pequeña porción de código con todos sus datos embebidos en él, que no presenta direccionamiento fijo. Las cadenas de caracteres están almacenadas en texto plano, lo cual arruina el pequeño rastro que dejaba el malware, ya que todas las API de Windows que se necesitan son buscadas mediante hash en tiempo de ejecución. El malware empieza por copiarse a sí mismo dentro de la carpeta de inicio para asegurarse la persistencia y luego proceder con su funcionalidad.
Comments