Atacando los cajeros automáticos desde la red interna del banco

viernes, 3 de noviembre de 2017

Todos hemos oído hablar de los típicos ataques contra cajeros de banco utilizando elementos, llamémosles ‘físicos’, para simular teclados, lectores de tarjetas o incluso colocando cámaras para poder registrar el número pin del usuario de la tarjeta. Todos estos ataques se basan fundamentalmente en tener acceso presencial al cajero que se pretende atacar. En los últimos meses, la forma de ataque ha variado hacia conseguir un acceso a la red interna de la oficina del banco y de esa forma tomar el control del cajero (o de los cajeros) desde dentro de la red.

Ataque físico instalando teclado y lector de tarjetas falsos. Fuente.

Muchos bancos aún utilizan ordenadores PC con Windows XP como sistema operativo en sus cajeros automáticos, lo cual es ya de por sí un enorme problema de seguridad debido a la discontinuidad del mismo por parte de Microsoft. Por otro lado, las transacciones y operaciones las gestiona XFS (Extensions of Financial Services), un estándar con arquitectura cliente-servidor el cual provee una API para permitir acceder y administrar los cajeros (y sus periféricos, como por ejemplo el dispositivo encargado de entregar el dinero). XFS de base, no se centra demasiado y deja en manos de cada desarrollador el nivel de seguridad que quiera aplicar a su capa de comunicación con la aplicación principal del cajero. Aquí podemos encontrar toda la información sobre XFS versión 3.20.

El malware Backdoor.Win32.Skimer, que apareció en 2009, infectaba el núcleo central del cajero tomando el control total del mismo habilitando además toda una serie de comandos los cuales se podían activar desde el teclado numérico accesible desde el exterior del banco. Para acceder a este ‘panel de control’ del malware, una vez infectado el cajero, el atacante sólo tenía que introducir una tarjeta especial en la banda magnética, utilizar un pin y luego ejecutar uno de los 21 comandos de los que disponía como, por ejemplo, sacar dinero, imprimir datos de las tarjetas por la impresora de recibos o incluso autodestruirse si fuera necesario. Además, permitía guardar la información (pin, número completo, etc.) de las tarjetas registradas en el cajero dentro la misma tarjeta utilizada para acceder al menú del malware

Vectores de infección en la red del banco y proceso de obtención de acceso al cajero, con la opción de infección por pendrive USB añadida. Fuente.

Skimer era un malware bastante efectivo, siempre y cuando se pudiera infectar el sistema, habitualmente consiguiendo un acceso físico al cajero para poder infectarlo. Normalmente los cajeros automáticos no están conectados directamente a la red local del banco y mucho menos a Internet. La conexión con la red del banco se suele realizar a través de VPNs internas. La forma más rápida de acceder a un cajero es conseguir llegar a un puerto USB o al CDROM, aunque no se trata de una tarea sencilla, tampoco es imposible. Es por esta complejidad de acceso físico por lo que últimamente los ataques tienen como objetivo acceder a la red interna del banco y desde allí ejecutar el malware el cual infectará a todos los cajeros posibles dentro de la misma. Las formas de infectar internamente la red del banco pueden ser: desde enviar el malware utilizando phishing clásico enviado a los diferentes empleados a copiarlo dentro de un pendrive e intentar que algún empleado del banco lo introduzca en uno de sus ordenadores (al más estilo Stuxnet, el cual se infectó desde un pendrive dentro de una red hipotéticamente segura al no estar conectada a internet). El control de los USB dentro de un organismo, y mucho más en empresas como los bancos, se convierte en una tarea importante, sino vital. En ElevenPaths ya hemos hablado de nuestro paper 'Hidden Networks' el cual permite seguir la pista de los pendrives USB y dibujar una red alternativa que muestra el camino que han seguido los mismos:


Uno de los malware más conocidos es el llamado Ripper, una versión mejorada de Skimer, que utiliza funciones importadas de las librerías XFS MSXFS.DLL y XFS_CONF.dll. En esta ocasión, el método de infección no se basa en el acceso físico al cajero. Ripper fue el primer malware que accedía a los cajeros utilizando la red corporativa del banco para posteriormente instalar el malware en los cajeros en vez de utilizar la instalación física. La ingeniería social (aquí podríamos incluir también los pendrives o USB) y el phishing son los principales vectores de infección, siendo los propios trabajadores del banco los que podrían ejecutar enlaces y programas que contienen los ficheros con malware.

El ataque que mejor muestra cómo se puede conseguir este tipo de accesos desde dentro de la red corporativa es el caso Taiwan Network Attack. Este ataque reúne toda una batería de técnicas sofisticadas para conseguir llegar al objetivo final de infectar y tomar el control del cajero automático. Este ataque supuso una pérdida de 2.5 millones de dólares para 22 sucursales del banco First Commercial Bank de Taiwán. En el siguiente gráfico del paper de TrendMicro se muestran todos los pasos:

Fases del ataque Taiwán Network Attack. Fuente.

Fase 1. El ataque se centra en infectar la red de la sucursal en Londres del banco utilizando técnicas de phishing o incluso la mencionada anteriormente a través de pendrives.

Fase 2. Una vez se obtiene acceso a la red, se consiguen robar las credenciales de acceso de administrador a través del sistema de grabación de voz.
Fase 3. Con estas credenciales se obtuvo acceso utilizando su propia VPN a la sucursal en Taiwán y también a algunos servidores de dichas oficinas.

Fase 4. Utilizando los mencionados servidores, los atacantes aprendieron la topología de red de la empresa, identificaron el sistema de actualización de parches para los cajeros y, a partir de ella, las credenciales de administración.

Fase 5. Posteriormente, con estas credenciales, accedieron al servidor de actualizaciones de los cajeros y prepararon una actualización falsa - lista para ser distribuida-, que se cargó en los cajeros como si fuera absolutamente real y oficial. El objetivo de este paquete era habilitar el servicio remoto Telnet en los cajeros.

Fase 6. Una vez activado el servicio Telnet en los cajeros, los atacantes pudieron abrir sesiones remotas y tomar el control de los cajeros.

Fase 7. Los atacantes instalaron en ciertos cajeros varios programas para realizar algunas pruebas de apertura de los dispensadores de dinero (sin sacar de momento ninguna cantidad). Algunos cómplices fueron a la ubicación física de dichos cajeros para comprobar que realmente funcionaron. Para comunicarse entre ellos utilizaron la aplicación de mensajería segura Wickr Me en sus smartphones.

Fase 8. Una vez confirmado que todos los cajeros estaban ya preparados, subieron a los cajeros aplicaciones modificadas que serían las encargadas de sacar el dinero. De nuevo, los cómplices estarían frente a los cajeros a la hora indicada pero esta vez para retirar el dinero y pasar el siguiente cajero.

Fase 9. Durante este tiempo, los atacantes, van eliminando toda pista en los cajeros infectados y desconectando las sesiones Telnet.

Este ataque, debido a su complejidad y efectividad, demuestra que cada vez más, bandas completas de delincuentes se están tomando en serio este tipo de ataques dirigidos a entidades bancarias. Ahora más que nunca es necesaria una revisión completa de la seguridad interna de dichas redes, así como de la gestión y mantenimiento de los cajeros automáticos.

Fran Ramírez (@cyberhadesblog) escritor del libro 'Microhistorias: anécdotas y curiosidades de la Informática' e investigador en ElevenPaths.

No hay comentarios:

Publicar un comentario