Sunteți pe pagina 1din 10

INTRODUCCIN A SEGURIDAD DE CAJEROS AUTOMTICOS O ATM

Todos en algn momento hemos utilizado un Cajero automtico ATM o si no lo


hemos visto por la calle, esos aparatos que sacan dinero (siempre que tengas en
una cuenta asociada a tu tarjeta), la idea principal es profundizar en los vectores
de ataque que existen en esas plataformas y desmitificar algunos puntos negros
de la industria .
Primero que todo empezamos con identificar las tres grandes marcas:
Wincor Nixdorf
Diebold
National Cash register (NCR)
Son las ms conocidas (si obviamos otras como triton, wrg o nautilus) y utilizadas
para proporcionar servicios bancarios a clientes desde retirar dinero a consultar su
estado de cuenta as como en algunos bancos hacer transacciones, depsitos u
otros servicios (dependiendo del perimetral que adquiera el banco).
Para eliminar un poco el miedo, o incrementarlo, os contar que la gran mayora
de ATMs del mundo funcionan en Windows XP y 7 (habis ledo bien, sigue
habiendo ATMs en XP, sin soporte y sin licencia). Slo menos del 1% del mundo
funciona en Linux (SUSE) y para mejor tranquilidad de todos se vienen ATM en
sistemas operativos en Android hechos por NCR (si no tenemos suficiente
vulnerabilidades de Android cada da para que dentro de poco sean tctiles, con
Android y saques dinero).
Pero las partes que caracteriza los servicios del ATM son los perimetrales
(hardware) y el software que se instala en los Windows, del cual cada marca tiene
su propio nombre comercial, pero que en s, todos deben cumplir con una norma
de transferencia de informacin mediante protocolo Exchance Financial Services
(XFS) (semi regulada por el CEN europeo) tambin existen variaciones como
J/XFS o WOSA/XFS o FREEXFS que son bsicamente aceptaciones del estndar
base hechas con diferentes lenguajes y fabricantes.
Luego tambin sobre XFS existe el software conocido como "Multivendor",
bsicamente un XFS que puede funcionar con diferentes marcas de ATM y
permite interactuar con cada hardware de ATM (que por cierto hay un montn de
versiones diferentes de hardware y de perimetrales pero tambin hay que decir
que tienen cosas malas los multivendor).
Una lista de nombres de proveedores XFS (por nombrar algunos de los ms
utilizados)
NCR Aptra
Diebold Agilis (Puede funcionar como multivendor pero es un problemn

instalarlo que no vale la pena ponerlo como multivendor)


Wincore - Procash/probase (Puede funcionar como multivendor)
KAL kalignite (Compaia independiente que tiene productos multivendor)
Dynasty - Jam services (antiguos contratistas de Diebold que ahora
pertenecen a Wincor y tienen su propia gama de soluciones multivendor)
FreeXFS
Todos desde fuera conocemos la carcasa de ATM o inclusive algunos de lobby
podemos ver toda su envergadura.

Foto de un Diebold opteva 522FL lobby Cash Dispense


Otro punto importante es la comunicacin del ATM al servidor central que permite
o deniega la transaccin financiera de acuerdo a las reglas (por decirlo claro si no
tienes pasta en la cuenta o crdito no puedes sacar dinero, transferirlo o pagar
servicios)
Algunos puntos importantes sobre el protocolo de comunicacin:

Todos los cajeros requieren comunicarse con el Core Network para verificar
transacciones (para aprobar, Denegar, emitir errores o enviar mensajes
especficos)
Por facilidad y gran adaptacin del mercado de cajeros a Windows como sistema
operativo se utiliza una comunicacin TCP/IP para la comunicacin fiable con el
Core network desde el ATM
El protocolo de comunicacin est basado en la Norma ISO 8583 (ISO 8583
Financial transaction card originated messages)
La informacin del protocolo se transmite en TEXTO PLANO! (hay algunas
soluciones para esto pero como todo es un negocio, por defecto no viene cifrado)
Generalmente, al estar en Windows los cajeros, las recomendaciones que siguen
la industria de cajeros que siempre escucharan son las siguientes:
Cifrado de comunicaciones (se suele usar VPN por que la comunicacin del
propio software no se permite cifrado por iniciativa de interoperabilidad)
Cifrado de disco
Proteccin de BIOS
Configuracin de nuevos componentes (verificar que se puedan poner en
produccin y emitan errores si es necesario en el Journal Virtual)
Pasar los estndares Payment Card Industry
Compra de soluciones Antivirus, Antimalware, listas blancas
Gestin de parches (depende del contrato con el fabricante generalmente suelen
ser a cada 3 meses los ms precavidos y algunos fabricantes no actualizan
parches cruciales como Java... para qu, si java todos sabemos con no tiene fallas
de seguridad ;) )
Correlacin de eventos (bsicamente esto se entiende como extraer un archivo
que se llama Journal donde estn los registros de todo lo que ocurre a nivel de
XFS en el ATM), pero tambin se implementa en algunos casos a nivel de
Windows
Polticas de seguridad del sistema operativo Windows
o Gestin de contraseas (lo administra el dueo del ATM)
o Restriccin de accesos (lo administra el dueo del ATM)

o Proteccin de llaves acceso al software (lo administra el fabricante es su


puerta de acceso)
o Actualizaciones del sistema operativo de Windows (lo administra en algunos
casos el fabricante. No en todos, pero si no hacen caso al fabricante, se quitan la
responsabilidad por cualquier modificacin al sistema operativo Windows,... pero
al fin y al cabo es Windows)
Dispositivos anti skimming
Polticas de respuesta a incidentes, polticas de deteccin, remediacin,
recuperacin etc.. (todas las polticas que quieras pueden existir)
Identificacin del personal que tiene acceso (trasportadoras de valores, personal
tcnico interno , proveedor etc..)

La foto anterior detalla un poco la red bancaria desde Visa hasta el punto de
atencin al cliente en este caso el ATM (depende del banco pueden implementar
ms capas, conectores u otros servicios secundarios)
Bueno hay una larga lista de recomendaciones en promedio se pueden dar ms
de 300 recomendaciones desde el proceso de compra, manufactura,
implementacin mantenimiento etc.. No vamos a entrar en tantos detalles.
Aqu lo importante es la proliferacin de malware para cajeros automticos que
segn los ltimos anlisis de Kaspersky, son el TOP5 objetivos de ciber ataques y
las faltas de prcticas correctas dejando todo a empresas de seguridad como
antivirus y soluciones. La verdad que como muchos conocemos las Big
Enterprises con productos de seguridad hacen su mejor esfuerzo pero en general
utilizan soluciones reactivas (no tienen muchos mtodos pro-activos) y al final
llega un ruso (quien dice ruso dice ucraniano, chino o mafia... bueno ya me
entendis) y te parte en dos la red con un buen 0day. Se puede ver un ejemplo de

esto en la nota extrada de laconferencia EAST, la red de pagos electrnicos en


Ucrania, que tuvo su peor noche en el 2014, fue el Jackpot de 54 cajeros
automticos, que sumado, es un montn de pasta por un 0day y un poco de
coding de XFS.
Los casos de malware para ATM empezaron desde la publicacin de las APIs de
interaccin de XFS de NCR de ex trabajadores chinos y, desde ah, ha ido
migrando en mltiples malware como:
Tyupkin y sus derivados
Plotus y sus derivados( estaba destinado a NCR inicialmente pero existen
ajustes tambin para diebold)
Carbanak (estaba enfocado a comprometer la red del banco pero utiliza
mensajes XFS para enviar rdenes a los cajeros automticos para extraer dinero
fsicamente)
SUCESSFULL (el primer malware multivendor)
GreenDispenser (primera aparicin finales de Septiembre 2015 en mexico
tambin multivendor)
Hay que tener claro que las soluciones de seguridad enfocadas en software del
mercado estn pensadas para asegurar el sistema operativo Windows y sus
aplicativos (igual te sirve para un desktop), pero NO estn pensados para
asegurar los dispositivos del ATM y sus comunicaciones porque generalmente
suelen ser cajas bobas (que solo reciben instrucciones) para efectuar las rdenes
enviadas por el host de transacciones central. Por lo que pinta, continuarn as
hasta que no haya productos enfocados al core de negocio de ATMs y menos al
sistema operativo
Tambin encontramos productos como skimmers, que permiten la clonacin de la
tarjeta en el momento de su insercin junto con la utilizacin de
cmaras. Krebsonsecurity tiene una seccin completa explicando muchos
ejemplos reales.

Esta es una slide que suelo utilizar para explicar el tipo de atacante que ha
penetrado en la institucin o la red y que conocimientos tericamente requiere
para llevar a cabo los ataques.

NOTAS:
Generalmente las bandas menos avanzadas tecnolgicamente utilizaran
skimmers que se implementan en la carcasa del ATM y fcilmente adquiribles por
internet
Luego tienes las partes modificadas (que se est poniendo de moda) donde
encuentran internamente (tienen acceso fsico) en el ATM componentes de
comunicacin GSM (primeras versiones de malware utilizaban mensajes de
celular para enviar ordenes mediante usb a los cajeros o hardware que se
comunica
mediante
bluetooth
para
enviar
la
informacin
Luego vienen los ms avanzados que ya te comprometen una red bancaria o la
gran mayora de ATMs y que como veremos interactan con el XFS directamente
aprovechando vulnerabilidades del Windows para escalar los privilegios
necesarios
si
as
fuese
necesario
Tambin encuentras grupos que no solo involucran conocimiento de desarrollo
de software sino tambin de hardware para clonacin de tarjetas chip EMV

En este primer nivel de presentacin (aplicaciones del proveedor de ATM) que es


generalmente donde el proveedor tcnico interactuar mediante las aplicaciones
podemos encontrar por nombrar algunas:
Diebold:
- ACU.exe
- OSD+.exe

- TMPtool.exe
NCR:
- Ulmntapp.exe
Wincor Nixdorf:
- FWMAIN32.exe
- Cfgmanager.exe
En este segundo layer (API XFS) podemos encontrar los permisos y conectores
para interactuar con el XFS es la API que permite que los programadores
desarrollen de la forma correcta y autorizada.
Podemos encontrar archivos como:
NCR:
UsbEPP2.dll
NCRUsb80.dll
NCRDisp.dll
Program Files/Common files/ncr/ ul*.dll
Diebold:
Aqu encontramos todas las libreras de EmPower para interaccin con cada
dispositivo son cientos entonces describirlas es un poco largo pero dentro de la
carpeta diebold en el directorio C:/ .
En el tercer layer (XFS MANAGER) se encuentra el core de la comunicacin y los
estndares que todo proveedor debe de seguir de acuerdo al CEN de estndares
europeo.
Su ltima versin 3.20 hay mtodos como:
WFS_CMD_CIM_CASH_IN
WFS_CMD_CIM_CASH_IN_END
WFS_CMD_CIM_CASH_IN_ROLLBACK
WFS_CMD_CIM_RETRACT
WFS_CMD_CIM_SET_CASH_IN_UNIT_INFO
WFS_CMD_CIM_END_EXCHANGE
WFS_CMD_CIM_RESET
WFS_CMD_CIM_REPLENISH
WFS_CMD_CIM_CASH_UNIT_COUNT
Bueno que para los que programen en C tiene todo inclusive el cdigo fuente. Es
bastante entretenido, mas de 70 pdf con todas las especificaciones (ah esta la
base de interaccin de malware SUCESSFULL)
En este ultimo layer (Sistema operativo) podemos encontrar las libreras
necesarias y drivers para operar la intercomunicacin con los perimetrales
actualmente lo ms comn es que todo est conectado por USB, aunque en el

caso de Diebold vienen tambin puertos firewire de 9 pines, bsicamente nuestro


sistema operativo Windows 7 professional.
Se puede acceder a cualquiera de las capas directamente, como lo demuestran
los malware saltndose los controles de accesos mediante diferentes tcnicas,
pero como podemos ver en ste, es un ejemplo que entraremos en profundidad
ms adelante. Para ir entrando en materia, esto es un poco de las tripas de un
cajero NCR cuando termina sus operaciones de comprobacin y se dispone a
enviar las instrucciones para que el "device controler" del dispensador enve las
instrucciones para dispensar/presentar el dinero requerido por el cliente
Una de las libreras que hemos hablado para dispensar dinero. Este ejemplo
es NCRDisp.dll, no vamos a entrar mucho en detalle para una introduccin pero:

Como podemos ver mediante aDeviceimageUSB (de la primera foto) enva las
instrucciones de kernel mode de dispensado de dinero una vez que ha verificado
que la tarjeta existe, el cliente insert el Pin correcto, luego haba disposicin del
dinero y la transaccin fue autorizada. Estos procesos de verificacin no se toman
en NCRDisp
Pero el deviceIOControl hace el release de la informacin para que lo opere el
board de interaccin que se encuentra dentro de la caja fuerte del ATM que
mueve los cabezales para la extraccin del dinero de las cajas de forma que el
cliente a seleccionado.
Que si esto mismo intentamos interactuar con esta instruccin por API
requeriremos la gua de desarrollo de NCR WOSA XFS (que por cierto se publico
en baidu) developer guide pero requerir de los accesos y permisos de APTRA o
poner a APTRA en modo silent debug, ms adelante profundizaremos en la
interaccin para evitar los controles.
En este otro ejemplo (de get rick or die trying) este mismo proceso que hemos
visto en NCR lo identificamos en un Wincor Nixdorf en Windows 7. Entenderemos
cmo opera para efectuar las funciones de dispensado. En este ejemplo Wincor
hace uso de driver convencional usbio.sys que interacta mediante usb para
enviar las instrucciones al dispensador.

De la misma manera, en este grfico de llamada de funciones (callgraph) se


puede observar cmo se comunican entre s. En este caso, a travs del envi de
IOCTLs, usando el API DeviceIoControl A su vez, esta DLL es importada
por PSAPI.DLL que, de la misma manera importa la DLL necesaria para describir
la comunicacin con cada dispositivo.

A continuacin se puede observar en el desensamblado de PSCOUT30.dll (librera


que define la comunicacin con el cash dispenser) una de las funciones
exportadas que permiten controlar el perimetral. (En este caso: Dispensar dinero)
A travs de este anlisis se puede percibir que cualquier proceso con privilegios
elevados posee la capacidad de controlar el driver para enviarle instrucciones a
los dispositivos, pudiendo en este caso, instrumentarlo para dispensar dinero.
Por lo tanto, primero requieres conseguir ciertos privilegios en el sistema operativo
y luego interactuar con el "device controler".
Espero que esto haya valido como introduccin, y concienciar que los ATMs son
extremadamente vulnerables puesto que todo lo proveen unos fabricantes y se les
hace caso ciego (100% de obediencia a lo que ellos dictan), algunos factores
como la falta de acceso fsico por la entidad bancaria, las constantes y dementes
formas de operar la industria por seguridad mediante oscuridad y la sobre
complejidad en los procesos y software de ATM solo dificultan el asegurarlo para
las instituciones bancarias correctamente, porque para los ciber atacantes lo ven
como un reto y con mucho beneficio liquido disponible.

S-ar putea să vă placă și