El grupo de amenazas persistente avanzada (APT) conocido como UNC2891 ejecutó uno de los ciberataques más sofisticados contra la infraestructura bancaria, dirigiéndose directamente a los sistemas Linux que operan cajeros automáticos (ATM). Su modus operandi combinó acceso físico, malware en memoria, y técnicas de anti-forense de última generación para evitar detección mientras intentaban manipular servidores de switching y módulos HSM.
Este ataque demostró que los cajeros automáticos deben tratarse como endpoints completos y críticos, ya que pueden ser utilizados como punto de entrada para comprometer todo el entorno bancario.
¿Quién es UNC2891?
UNC2891 es un grupo motivado financieramente con amplios conocimientos en sistemas embebidos, particularmente en infraestructura de ATM basada en Linux. Utilizaron acceso físico directo, malware en el bootloader, rootkits a nivel kernel y múltiples canales de comando y control. Su capacidad para operar sin dejar rastro digital inmediato demuestra una amenaza altamente profesionalizada.

Anatomía Técnica del Ataque
Acceso Físico y Bootloader Malicioso
Usando una memoria USB insertada físicamente en el ATM, modificaron el cargador de arranque GRUB2 para cargar un kernel Linux modificado junto con un proceso init alterado:
menuentry 'Recovery' {
set root=(hd0,1)
linux /vmlinuz root=/dev/sda1 init=/malware/init quiet
initrd /initrd.img
}
Esto evitó Secure Boot y dio control total del sistema desde el arranque.
Malware en Memoria
El malware fue cargado dinámicamente usando LD_PRELOAD
para interceptar funciones de bibliotecas críticas del sistema, logrando modificar el comportamiento sin tocar el disco.
int dispense_cash() {
if (getenv("TRIGGER") != NULL) {
run_command("dispense --amount=1000");
}
return original_dispense();
}
Escalada de Privilegios y Rootkits
Instalaron módulos del kernel (LKM) que interceptaban llamadas al sistema (syscalls
), ocultaban archivos y conexiones de red, y deshabilitaban mecanismos de logging tradicionales.
Persistencia y Anti-Forense
El grupo configuró servicios systemd
falsos y modificó GRUB para asegurar reinicios maliciosos persistentes. Usaron técnicas como:
- Reemplazo de binarios (
ps
,netstat
, etc.) - Logging redirigido o eliminado
- Ejecución de procesos directamente en RAM
Forense de Red Revela Beaconing Oculto
Durante la revisión de tráfico, se observó tráfico de beaconing cada 600 segundos hacia una Raspberry Pi interna, en el puerto 929. Sin embargo, no se identificó ningún PID asociado.
Esto llevó a los investigadores a cuestionarse si las herramientas de forense podían capturar estados de procesos en modo suspensión o reposo. Se creó un script personalizado que capturaba sockets activos cada segundo durante 10 minutos.
El resultado: los sockets existían, pero no estaban vinculados a procesos visibles.
Suplantación del Proceso LightDM
En el volcado de memoria, aparecieron dos procesos sospechosos:
lightdm --session 11 19
Pero sus ubicaciones eran anómalas:
/tmp/lightdm (PID 8239)
/var/snap/.snapd/lightdm (PID 8914)
Esto confirmó que los atacantes usaron suplantación de procesos: el backdoor se hacía pasar por el lightdm
legítimo, usando rutas y argumentos similares para evitar ser detectado durante la respuesta a incidentes.
Estos procesos se comunicaban activamente con la Raspberry Pi y con el servidor interno de correo, que tenía conectividad a internet.
¿Por Qué No Fue Detectado?
La técnica clave fue el uso de bind mounts de Linux para ocultar /proc/[pid]
, haciendo que herramientas convencionales de forense no pudieran ver el proceso:
bashCopyEdittmpfs on /proc/8239 type tmpfs (rw,nosuid,nodev)
ext4 on /proc/8914 type ext4 (rw,...)
Esta técnica fue añadida recientemente a MITRE ATT&CK como T1564.013 – Ocultar Artefactos: Bind Mounts.
Objetivo Final: Servidor de Switching ATM
El objetivo de UNC2891 era acceder al servidor de switching y desplegar el rootkit CAKETAP, el cual manipula las respuestas de los HSM para autorizar falsamente transacciones y permitir retiros de efectivo fraudulentos.
El ataque fue detenido antes de lograrlo, pero el daño potencial era crítico.
Resumen del Incidente
El ataque usó múltiples pivotes:
- ATM comprometido →
- Servidor de Monitoreo de Red (pivot) →
- Servidor de Correo (persistencia) →
- Servidor de Switching ATM (objetivo final)
Usaron DNS dinámico para el C2, permitiendo rotación de IP y ocultamiento de infraestructura.
Recomendaciones de Detección y Defensa
Para Equipos de Seguridad:
- Monitorear syscalls
mount
yumount
usando auditd o eBPF - Alertar si
/proc/[pid]
está montado sobretmpfs
- Bloquear ejecución desde
/tmp
,.snapd
u otras rutas temporales - Capturar imágenes de memoria además de disco durante IR
- Verificar binarios en rutas inusuales o con nombres duplicados (
lightdm
,sshd
, etc.)
A Nivel Infraestructura:
- Asegurar físicamente puertos de red y puertos USB de ATM
- Segmentar el monitoreo de red del core bancario
- Detectar conexiones internas inusuales a dispositivos no autorizados (ej. Raspberry Pi)
El ataque de UNC2891 representa una nueva era en el crimen financiero digital: uno que mezcla acceso físico, rootkits en Linux, y evasión forense avanzada. No se puede proteger lo que no se puede ver, y este caso demostró que los atacantes pueden operar invisiblemente en sistemas críticos si no se moderniza la postura defensiva.

Es un conocido experto en seguridad móvil y análisis de malware. Estudió Ciencias de la Computación en la NYU y comenzó a trabajar como analista de seguridad cibernética en 2003. Trabaja activamente como experto en antimalware. También trabajó para empresas de seguridad como Kaspersky Lab. Su trabajo diario incluye investigar sobre nuevos incidentes de malware y ciberseguridad. También tiene un profundo nivel de conocimiento en seguridad móvil y vulnerabilidades móviles.
Envía tips de noticias a info@noticiasseguridad.com o www.instagram.com/iicsorg/
También puedes encontrarnos en Telegram www.t.me/noticiasciberseguridad