Actualmente hay una voz, cada vez más insistente, pidiéndole a las empresas y los usuarios de casa que actualicen su Windows XP a una versión más nueva de Windows. Se dice que, si no es por las funciones, que sea al menos para mejorar el soporte y la seguridad de su sistema operativo. En este sentido vale la pena recordar que los cajeros automáticos son prácticamente computadoras que controlan el acceso al dinero en efectivo, y resulta que muchos de ellos funcionan con versiones de Windows XP. Con el inminente fin del soporte para Windows XP programado para el 8 de abril de 2014, la industria bancaria enfrentará el riesgo de sufrir ataques informáticos dirigidos sus cajeros automáticos. Este riesgo no es hipotético y ya se ha hecho presente y se ha identificado que delincuentes informáticos están atacando cajeros automáticos con técnicas cada vez más sofisticadas.
Hacia fines de 2013, publicamos en el blog un artículo sobre un nuevo malware para cajeros automáticos en México, que les permitía a los atacantes forzarlos para que expidieran efectivo utilizando un teclado externo. Esta amenaza recibió el nombre de Backdoor.Ploutus. Semanas después, descubrimos una nueva variante que mostraba que el malware había evolucionado para transformarse en una arquitectura modular. Adicionalmente, la nueva variante también estaba disponible en idioma inglés, lo que indicó que el autor del malware estaba expandiendo su franquicia hacia otros países. La nueva variante se identificó como Backdoor.Ploutus.B (denominado Ploutus para fines de este blog).
Lo interesante de la nueva investigación que hicimos sobre Ploutus es que esta variante les permitía a los ciberdelincuentes enviar un simple mensaje de texto al cajero automático afectado, para luego dirigirse al mismo y recoger el dinero entregado por el aparato. Esto puede parecer increíble pero esta técnica se está empleando en varios lugares del mundo en este momento y en este blog compartiremos cómo funciona esto.
Figura 1. Forma en que los atacantes retiran dinero de un cajero automático utilizando un teléfono.
Conectar un teléfono móvil al cajero automático
Los delincuentes informáticos pueden controlar el cajero automático de forma remota utilizando un teléfono móvil que está conectado en el interior del cajero automático. Existen varias formas de conectar un teléfono móvil a un cajero automático. Un método muy común es utilizar una configuración llamada USB tethering (conexión de dispositivos), que es efectivamente una conexión a Internet compartida entre el teléfono y la computadora (o en este caso, el cajero automático).
Los atacantes deben configurar el teléfono correctamente, conectarlo al cajero automático e infectar el cajero con Ploutus. Una vez realizados todos estos pasos, se establece una conexión bidireccional y el teléfono está listo para ser utilizado.
Dado que el teléfono está conectado al cajero automático a través de un puerto USB, el teléfono consume energía de la conexión, lo que permite cargar la batería, y por lo tanto, el teléfono puede permanecer encendido indefinidamente.
Envío de mensajes de texto al cajero automático
Tras conectar el teléfono móvil al cajero automático y de completar la configuración, los delincuentes pueden enviar comandos específicos por mensaje de texto al teléfono conectado dentro del cajero automático. Cuando el teléfono detecta un nuevo mensaje en el formato requerido, el dispositivo móvil convierte el mensaje en un paquete de red y lo reenvía al cajero automático a través del cable USB.
El monitor del paquete de red (NPM, por sus siglas en inglés) es un módulo del malware que actúa como un rastreador y vigila todo el tráfico de la red en el cajero. En cuanto el cajero afectado recibe un paquete válido TCP (Protocolo de Control de Transmisión) o UDP (Protocolo de Datagrama de Usuario) desde el teléfono, el NPM analiza el paquete y busca el número “5449610000583686” en un ajuste específico dentro del paquete para poder procesar todo el paquete de datos. Una vez detectado ese número específico, el NPM lee los siguientes 16 dígitos y los utiliza para crear una línea de comando para ejecutar Ploutus. Este es un ejemplo de dicho comando o instrucción sigue a continuación:
cmd.exe /c PLOUTOS.EXE 5449610000583686=2836957412536985
En las versiones anteriores de Ploutus, el delincuente principal debía informarle estos dígitos al encargado o cómplice que recogía el dinero, lo que le daba la oportunidad de estafar al delincuente principal si supiera lo que el código les permite hacer. En esta versión de Ploutus, el cómplice nunca ve los 16 dígitos, lo que le da al delincuente principal la seguridad y la capacidad de tener control total de los retiros de dinero. El código permanece activo durante 24 horas.
El uso de mensajes SMS para controlar cajeros automáticos de forma remota es un método mucho más conveniente para todas las partes involucradas en esta estafa, dado que es discreto y funciona prácticamente de forma instantánea. El delincuente principal sabe exactamente cuánto dinero recogerá su enviado y, a su vez, quien va por el dinero no necesita quedarse merodeando cerca del cajero automático esperando a que salga el efectivo. El delincuente principal y su cómplice pueden actuar de forma sincronizada para que el dinero sea expedido en el momento exacto en que la persona simule retirar dinero o pase caminando frente al cajero automático.
La suma de los factores del ataque
Ahora que conocemos en detalle cómo funciona esta estafa, este es un resumen del ataque completo:
Figura 2. Resumen del ataque Ploutus a cajeros automáticos
Recapitulación del proceso
- El atacante instala Ploutus en el cajero automático y conecta un teléfono móvil a la máquina con un cable USB.
- El delincuente envía dos mensajes de texto al teléfono móvil que está conectado al cajero.
- SMS 1 debe contener un ID de activación válido para poder activar Ploutus en el cajero.
- SMS 2 debe contener un comando válido para activar la entrega del dinero y poder retirar el efectivo.
- El teléfono detecta los mensajes de texto válidos recibidos y los reenvía al cajero automático como si fuera un paquete TCP o UDP.
- Dentro del cajero, el módulo del monitor del paquete de red recibe el paquete TCP/UDP y, si contiene un comando válido, ejecuta Ploutus.
- Un cómplice recoge físicamente el dinero del cajero automático.
Pudimos reproducir este ataque en nuestros laboratorios con un auténtico cajero automático infectado con Ploutus. En este breve video le mostramos cómo funciona este ataque.
Default Chromeless Player
Si bien en esta demostración utilizamos el malware Ploutus, Symantec Security Response ha descubierto otros códigos maliciosos que están atacando a los cajeros automáticos. En el caso de Ploutus, el objetivo de los atacantes es robar dinero desde adentro del cajero, sin embargo, otros códigos que hemos analizado intentan robar el PIN y los datos de la tarjeta del cliente, mientras que algunos intentan concretar ataques de tipo “hombre en medio” (“man in the middle”). Es evidente que los atacantes tienen varias ideas de cómo robar dinero de un cajero automático.
¿Qué podemos hacer para proteger los cajeros automáticos?
Los cajeros automáticos modernos cuentan con medidas de seguridad avanzadas, como los disco duros encriptados, que pueden evitar estos tipos de técnicas de instalación. Sin embargo, en el caso de los cajeros más antiguos que funcionan con Windows XP, la protección contra estos tipos de ataques es más complicada, en especial cuando los cajeros automáticos ya están en funcionamiento en varias ubicaciones remotas. Otro inconveniente que se debe enfrentar es la seguridad física de la computadora instalada en el cajero. Si bien el dinero en los cajeros está dentro de una caja fuerte, por lo general la computadora no está protegida. Sin un sistema de seguridad física adecuado, el atacante tiene una amplia ventaja sobre los cajeros automáticos, especialmente los más viejos.
Algunas medidas que recomendamos considerar para complicar la tarea a los delincuentes son:
- Actualizar el sistema operativo por uno que tenga un soporte adecuado, como Windows 7 u 8.
- Contar con una protección física adecuada y pensar en la posibilidad de instalar cámaras de seguridad en los cajeros.
- Asegurar el BIOS (Sistema Básico de Entrada/Salida) para evitar que se inicien medios no autorizados, como los CD-ROM o memorias USB.
- Realizar un cifrado completo del disco para evitar su manipulación.
- Utilizar una solución de bloqueo de sistema, como Symantec Data Center Security: Service Advanced (conocida anteriormente como Critical System Protection).
Combinando estas medidas de seguridad, le será muy difícil a los atacantes infectar un cajero automático sin la ayuda de un cómplice infiltrado.
Las soluciones de seguridad para consumidores, endpoint sy protección de servidores seguirán soportando los sistemas Windows XP, sin embargo recomendamos a los usuarios de dicho sistema operativo mirar a uno más actual lo más pronto posible para reducir los riesgos.