Hace siete años, en 2009, descubrimos un nuevo tipo de ataque para bancos. En vez de esforzarse por infectar los equipos de miles de usuarios de todo el mundo, los criminales fueron directo hacia los cajeros automáticos, infectándolos con un programa malicioso llamado “Skimer”. Siete años después, nuestro Equipo Global de Investigación y Análisis (GReAT, Global Research and Analysis Team) y nuestro Equipo de Pruebas de Penetración (Penetration Testing Team) fueron convocados para responder a un incidente. Juntos descubrieron una nueva y mejorada versión de Skimer.
Infecciones de tipo viral
Los criminales suelen empaquetar sus programas maliciosos para dificultar el análisis a los investigadores. Los responsables de Skimer lo hicieron usando el empaquetador Themida que está disponible en el mercado y empaca tanto el infectador como el dropper.
Cuando el malware se ejecuta, determina si el sistema de archivos es FAT32. Si lo es, descarga el archivo netmgr.dll en la carpeta C:WindowsSystem32. En cambio, si el sistema de archivos es NTFS, reemplaza el mismo archivo en el flujo de datos NTFS correspondiente al archivo ejecutable XFS del servicio, quizás para dificultar el análisis forense.
Después de la instalación, el ejemplar aplica un parche al punto de acceso ejecutable XFS (SpiService.exe) para agregar una llamada a la función LoadLibrary al archivo netmgr.dll descargado. Themida también protege este archivo.
Punto de entrada en SpiService.exe antes de la infección
Punto de entrada en SpiService.exe después de la infección
Si la instalación es exitosa, se reinicia el cajero automático. La biblioteca maliciosa se carga en SpiService.exe gracias a la llamada LoadLibrary, y le otorga acceso completo a XFS.
Funciones
A diferencia de Tyupkin, que tenía un código mágico y un tiempo limitado de actividad, Skimer solo se activa cuando se inserta una tarjeta mágica (con datos específicos grabados en Track 2, ver los indicadores de infección al final de este texto). Es una forma inteligente de implementar el control de acceso a las funciones del programa malicioso.
Cuando se inserta la tarjeta mágica, el programa malicioso queda listo para interactuar con dos tipos de tarjetas diferentes, cada cual con distintas funciones:
- Tarjeta tipo 1 -- solicitar comandos en la interfaz
- Tarjeta tipo 2 -- ejecutar el comando almacenado en el Track 2
Cuando se expulsa la tarjeta, se muestra un formulario al usuario diciéndole que tiene 60 segundos para insertar la llave de sesión. Al hacerlo, el usuario queda autentificado y el programa malicioso listo para aceptar 21 diferentes códigos de actividad. Estos códigos se deben ingresar en el tablero del pin.
Esta es la lista de las características más importantes:
- Mostrar los detalles de instalación;
- Expedir dinero, 40 notas del cartucho especificado;
- Comenzar a registrar la información de las tarjetas que se insertan en el cajero;
- Imprimir la información recolectada de las tarjetas
- Eliminarse a sí mismo;
- Modo de depuración;
- Actualizar (el código actualizado del programa malicioso está integrado en la tarjeta).
Mientras tanto, el malware también crea los siguientes archivos o flujos NTFS (según el tipo de sistema de archivos). El programa utiliza este programa en diferentes etapas de su actividad, por ejemplo, mientras almacena la configuración o los datos de las tarjetas robadas y cuando hace un log de sus actividades:
C:WindowsTempattrib1 | recolecta los datos de las tarjetas desde el tráfico de redes o del lector de tarjetas; |
C:WindowsTempattrib4 | registra los datos de diferentes interfaces que se encargan de la comunicación con el teclado (para conseguir datos como el pin); |
C:WindowsTempmk32 | hace lo mismo que el anterior; |
C:WindowsTemp:attrib1 | hace lo mismo que el archivo homólogo; |
C:WindowsTemp:attrib4 | hace lo mismo que el archivo homólogo; |
C:WindowsTemp:mk32 | hace lo mismo que el archivo homólogo; |
C:WindowsTemp:opt | registra las actividades de la mula. |
Ventana principal
El siguiente video muestra la interacción de las mulas de dinero con el cajero automático.
[youtube https://www.youtube.com/watch?v=hOcFy02c7x0&w=560&h=315]Conclusiones
Hemos identificado ataques de Tyupkin, Carbanak y “Black box” en los casos más recientes de abuso de cajeros automáticos a los que hemos respondido. La evolución de Backdoor.Win32.Skimer demuestra que el interés del atacante por estas familias de malware aumenta a medida que los cajeros automáticos se convierten en una herramienta cada vez más útil para los criminales.
Un detalle importante es que el malware espera que se inserte la tarjeta con la información codificada en Track2 para activarse. Los bancos pueden buscar los números de estas tarjetas en sus sistemas de procesamiento y detectar cajeros automáticos que podrían estar infectados, descubrir mulas de dinero y bloquear los intentos de activar el programa.
También recomendamos realizar análisis antivirus regulares, usar listas de admitidos, implementar una buena política de gestión de dispositivos, cifrar los discos por completo, proteger el BIOS del cajero con una contraseña para que sólo se permita el reinicio desde el disco duro y aislar la red del cajero de cualquier otra red del banco.
Kaspersky Lab ha identificado 49 variantes de este programa, 37 de las cuales afectan a cajeros del mismo fabricante. La versión más reciente se descubrió a principios de mayo de 2016.
Kaspersky Lab detecta todas las variantes que mencionamos como Backdoor.Win32.Skimer. Los archivos SpiService.exe parchados se detectan como Trojan.Win32.Patched.rb
Como esta es una investigación que todavía está en curso, hemos compartido el informe completo con diferentes autoridades, CERTs, instituciones financieras y con los clientes de Kaspersky Lab Threat Intelligence-Service. Para más información, puede escribir a intelreports@kaspersky.com
Apéndice I. Indicadores de infección
Hashes
F19B2E94DDFCC7BCEE9C2065EBEAA66C
3c434d7b73be228dfa4fb3f9367910d3
a67d3a0974f0941f1860cb81ebc4c37c
D0431E71EBE8A09F02BB858A0B9B80380
35484d750f13e763eae758a5f243133
e563e3113918a59745e98e2a425b4e81
a7441033925c390ddfc360b545750ff4
Nombres de archivos
C:WindowsTempattrib1
C:WindowsTempattrib4
C:WindowsTempmk32
C:WindowsTemp:attrib1
C:WindowsTemp:attrib4
C:WindowsTemp:mk32
C:WindowsTemp:opt
C:WindowsSystem32netmgr.dll
Datos de Track 2
******446987512*=********************
******548965875*=********************
******487470138*=********************
******487470139*=********************
******000000000*=********************
******602207482*=********************
******518134828*=********************
******650680551*=********************
******466513969*=********************
Infectando cajeros automáticos