ESET ha publicado un whitepaper que detalla sus hallazgos sobre la conexión que existe entre varias familias de troyanos bancarios latinoamericanos; un documento que también fue publicado por Virus Bulletin.
Durante mucho tiempo, los troyanos bancarios latinoamericanos fueron considerados como un grupo de malware. Los investigadores de ESET descubrieron que ese no es el caso y que, a pesar de tener mucho en común, entre los troyanos bancarios se pueden reconocer varias familias de malware distintas. A lo largo del último año publicamos una serie de artículos en los que analizamos el accionar de distintas familias de troyanos bancario de América Latina. Estas publicaciones se centran en los aspectos más importantes e interesantes de estas familias. Hasta ahora y como parte de esta serie, hemos desenmascarado a las siguientes familias de troyanos bancarios: Amavaldo, Casbaneiro, Mispadu, Guildma, Grandoreiro y Mekotio. En los próximos artículos analizaremos a Krachulka, Lokorrito, Numando, Vadokrist y Zumanek.
En este whitepaper analizamos a estas familias, pero desde otra perspectiva. En lugar de enfocarnos en los detalles que presenta cada familia y resaltar sus características únicas, nos centramos en lo que tienen en común. Si ha estado siguiendo nuestra serie, es posible que haya notado algunas de las similitudes existentes entre varias de estas familias de troyanos bancarios, como el uso de un mismo -y poco común- algoritmo para cifrar strings o similares algoritmos de generación de dominio (DGA, por sus siglas en inglés) para obtener direcciones de los servidores de C&C.
Las primeras similitudes que detectamos están en la implementación de estos troyanos bancarios. La más obvia de todas está relacionada con la casi idéntica implementación de los componentes centrales de los troyanos, como es el envío de notificaciones al operador, el escaneo periódico de las ventanas activas según el nombre o título, y los ataques a través de falsas ventanas emergentes diseñadas cuidadosamente con el objetivo de obtener información confidencial de víctimas. Además de eso, estas familias de malware comparten bibliotecas de terceros poco comunes, algoritmos de cifrado de strings y técnicas de ofuscación de strings y binarios.
Sin embargo, las similitudes no terminan ahí. Al analizar las cadenas de distribución de estas familias de malware nos dimos cuenta que también comparten la misma lógica: generalmente buscan un marcador (un objeto, como un archivo o un valor de clave de registro que es utilizado para indicar que la máquina ya ha sido comprometida), y descargan datos en archivos ZIP. Además de eso, hemos observado cadenas de distribución idénticas que terminan con la distribución de múltiples troyanos bancarios latinoamericanos. También vale la pena mencionar que desde 2019, la gran mayoría de estas familias de malware comenzaron a utilizar Windows Installer (archivos MSI) como parte de la primera etapa de la cadena de distribución.
Los troyanos bancarios latinoamericanos también comparten métodos de ejecución. Suelen traer sus propias herramientas empaquetadas en los archivos ZIP antes mencionados. Los dos métodos más comunes son la carga lateral de DLL y el abuso de un intérprete de AutoIt legítimo. Además, al usar el primero de los métodos, varias familias abusan de las mismas aplicaciones vulnerables para ese propósito (el llamado Bring Your Own Vulnerable Software) .
El término "troyano bancario latinoamericano" se debe a la región a la que suelen apuntar estos troyanos bancarios: América Latina. Sin embargo, desde finales de 2019, vemos que varios de ellos añadieron a España y Portugal a la lista de los países a los que apuntan. Además, como si fuese otro movimiento coordinado, diferentes familias utilizan en sus últimas campañas plantillas de correo spam similares.
Dada la cantidad de similitudes, uno debería esperar que también compartan las ventanas emergentes falsas que utilizan estos troyanos bancarios. De hecho, parece ser lo contrario. A pesar de que las ventanas tienen una apariencia similar (ya que están diseñadas para engañar a los clientes de las mismas entidades financieras), no hemos detectado el uso de ventanas idénticas por parte de varias familias.
Dado que no creemos que sea posible que autores de malware independientes presenten tantas ideas en común y tampoco creemos que un grupo sea responsable de mantener todas estas familias de malware, concluimos que se trata de múltiples actores de amenazas que cooperan entre sí. Puede encontrar información más detallada sobre las similitudes que identificamos en el whitepaper.
Técnicas de MITRE ATT&CK
En la tabla (en inglés) que publicamos más abajo, que es un agregado de las técnicas basadas en la tabla estándar MITRE ATT&CK, ilustramos muchas de las características que comparten los troyanos bancarios latinoamericanos. No es una lista exhaustiva, sino una que se centra en las similitudes, y muestra lo siguiente:
- el phishing es el vector de ataque más común
- dependen en gran medida de los lenguajes de scripting, principalmente VBScript
- La clave de ejecución del registro o la carpeta de inicio son los métodos más comunes de persistencia
- de alguna manera, todos ofuscan ya sea payloads o datos de configuración
- favorecen mucho la carga lateral de DLL
- para robar credenciales tienden a usar ventanas emergentes falsas o keyloggers
- dedican un considerable esfuerzo a recopilar capturas de pantalla y realizar escaneos en busca de software de seguridad
- prefieren algoritmos de cifrado personalizados sobre los establecidos
- no filtran todos los datos recolectados al servidor de C&C, sino que también usan diferentes ubicaciones
Nota: Esta tabla se creó utilizando la versión 7 del framework de MITRE ATT&CK.
Tactic | ID | Name | Amavaldo | Casbaneiro | Grandoreiro | Guildma | Krachulka | Lokorrito | Mekotio | Mispadu | Numando | Ousaban | Vadokrist | Zumanek |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Initial Access | T1566.001 | Phishing: Spearphishing Attachment | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
T1566.002 | Phishing: Spearphishing Link | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | |
Execution | T1059.005 | Command and Scripting Interpreter: Visual Basic | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
T1059.007 | Command and Scripting Interpreter: JavaScript/JScript | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | |
T1059.003 | Command and Scripting Interpreter: Windows Command Shell | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | |
T1059.001 | Command and Scripting Interpreter: PowerShell | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | |
T1047 | Windows Management Instrumentation | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | |
T1059 | Command and Scripting Interpreter | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | |
Persistence | T1547.001 | Boot or Logon Autostart execution: Registry Run Keys / Startup Folder | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
T1053.005 | Scheduled Task/Job: Scheduled Task | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
Defense Evasion | T1140 | Deobfuscate/Decode Files or Information | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
T1574.002 | Hijack Execution Flow: DLL Side-Loading | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | |
T1497.001 | Virtualization/Sandbox Evasion: System Checks | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | |
T1218.007 | Signed Binary Proxy Execution: Msiexec | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
T1036.005 | Masquerading: Match Legitimate Name or Location | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | |
T1197 | BITS Jobs | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | |
T1112 | Modify Registry | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | |
T1218.011 | Signed Binary Proxy Execution: Rundll32 | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | |
T1027.001 | Obfuscated Files or Information: Binary Padding | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | |
T1220 | XSL Script Processing | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | |
Credential Access | T1056.002 | Input Capture: GUI Input Capture | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
T1056.001 | Input Capture: Keylogging | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
T1555.003 | Credentials from Password Stores: Credentials from Web Browsers | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | |
T1552.001 | Unsecured Credentials: Credentials In Files | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | |
Discovery | T1010 | Application Window Discovery | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
T1518.001 | Software Discovery: Security Software Discovery | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
T1082 | System Information Discovery | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
T1083 | File and Directory Discovery | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | |
T1057 | Process Discovery | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | |
Collection | T1113 | Screen Capture | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
T1115 | Clipboard Data | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | |
Command and Control | T1132.002 | Data Encoding: Non-Standard Encoding | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
T1571 | Non-Standard Port | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | |
T1132.001 | Data Encoding: Standard Encoding | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | |
T1568.002 | Dynamic Resolution: Domain Generation Algorithms | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | |
T1568.003 | Dynamic Resolution: DNS Calculation | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | |
Exfiltration | T1048 | Exfiltration Over Alternative Protocol | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
T1041 | Exfiltration Over C2 Channel | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Como se puede apreciar, los troyanos bancarios latinoamericanos, aunque tienen sus diferencias, tienen muchas características en común.