Sunteți pe pagina 1din 15

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.

Cmo funcionan los cajeros automticos?

Andas corto de dinero, por lo que decides buscar un cajero automtico,


insertar la tarjeta, responder a lo que te va pidiendo en la pantalla, y al
cabo de un para de minutos te podrs marchar con dinero y un recibo.
Estas mquinas ahora se pueden encontrar en muchos sitios y no solo
en la calle, como centros comerciales, hoteles, empresas, estaciones de
tren, etc. Has pensado alguna vez en el proceso de hacer disponible
ese dinero para ti en cualquier parte del pas y en diferentes sitios? Es
algo que damos por hecho, pero hay un interesante sistema tras esta
simple transferencia. Lo cierto es que dependiendo de pas, no todas las
tarjetas funcionan igual. Aparte de los cheques y las tarjetas de crdito
que usamos, muchos bancos usan las llamadas check cards en
contraste con las tarjetas usadas en cajeros.
Estas tarjetas son como las tarjetas de crdito, en el sentido de que
trabajan de manera similar en lugar de dar crdito por una compra
realizada y recibir un cobro al mes (como lo hace una tarjeta de
crdito), una tarjeta de dbito o check card descuenta el dinero al
instante. Salvo excepciones, en muchos sitios las tarjetas para cajeros
automticos estn pensadas solo para estos dispositivos, mientras que
las tarjetas de dbito valen para hacer compras en gasolineras, tiendas,
hoteles, restaurantes, etc. Hay excepciones, donde algunos hoteles o
renta de vehculos solo aceptan tarjetas de crdito. En el caso de
Espaa, lo tenemos bastante ms simplificado, y ya sea tarjetas de
crdito o de dbito, nos sirve prcticamente en cualquier sitio y tambin
para los cajeros automticos. Cmo funcionan estos cajeros?
Un cajero automtico es simplemente un terminal de datos con dos
dispositivos de entrada y cuatro de salida. Como cualquier otro terminal
de datos, el cajero automtico tiene que comunicarse y conectarse por
medio de un centro de datos (ordenador) que se haga cargo de este
proceso. Este ordenador es algo parecido a una ISP o proveedor de
servicios de Internet, donde hace de pasarela a las redes de cajeros
automticos que hay disponibles para los usuarios (los que quieren

sacar dinero). El sistema utilizado puede ser mediante una lnea


dedicada o de marcado.
Los cajeros con lneas dedicadas conectan directamente con el sistema
por medio de una lnea de telfono dedicada punto a punto mediante
cuatro hilos. Los cajeros de marcado conectan mediante una lnea de
telfono normal usando un modem y un nmero gratuito de telfono, o
mediante una ISP usando un nmero de acceso local tambin marcado
por el modem. Se suelen preferir los cajeros automticos con lneas
dedicadas para zonas con mucho movimiento por su capacidad de
procesamiento. Los de marcado se suelen usar en zonas donde el coste
tiene ms relevancia. Obviamente, el gasto en las lneas de marcado es
menor que el de las lneas dedicadas. El centro de datos que inicia la
comunicacin puede pertenecer al mismo banco o por un proveedor de
servicios independiente.
En la siguiente parte del artculo, veremos las partes que componen un
cajero automtico y como es el proceso para obtener el dinero cuando
metemos la tarjeta bancaria. Lo puedes ver pulsando aqu.

Las partes de un cajero automtico

En esta segunda parte del artculo sobre los cajeros automticos,


veremos las partes que tiene, como nos dan el dinero y algunos temas
de seguridad. Probablemente seas una de las millones de personas que
han usado un cajero automtico. Como ya debes saber, un cajero
automtico tiene dos dispositivos de entrada: el lector de entrada el cual
captura informacin almacenada en la banda magntica en la parte
trasera de una tarjeta de crdito o de dbito. La central de
procesamiento con la que se comunica el cajero usa esta informacin
para dirigir la transaccin con el banco o la compaa de tarjetas

asociada. Por otro lado est el teclado, el cual deja saber al banco o
compaa de tarjetas que tipo de transaccin quiere hacer (retirada de
fondos, consulta de gastos, etc.) y la cantidad exacta. Tambin vale para
introducir el nmero de identificacin personal para comprobar la
identidad del usuario. Este nmero viaja por la red encriptado para
mayor seguridad.
Hay cuatro partes principales de salida en un cajero automtico. Hay
unos altavoces que dan ayuda audible cuando el usuario tiene un
problema, y se activa pulsando una tecla determinada. Luego tenemos
la pantalla donde vemos lo que va pasando. Esta parte es importante
para que el usuario sepa en cada momento los pasos del proceso que
est en marcha. Dependiendo de la mquina, la pantalla puede ser
simple y monocroma o en color. Hay tambin disponible
una impresora que imprime los recibos de las operaciones como
comprobante. Por ltimo, tenemos el dispensador de dinero, el cual es el
corazn del cajero automtico y el mecanismo ms importante del
sistema. La parte inferior de la mayora de los cajeros automticos
contienen el dinero.
El mecanismo que entrega el dinero tiene un llamado ojo electrnico
que cuenta cada billete segn es entregado al usuario. La cuenta de
billetes y toda la informacin perteneciente a una operacin es grabada
en un registro. La informacin del registro es impresa cada cierto tiempo
y la copia es mantenida por el compaa del cajero durante un cierto
tiempo (dependiendo del pas puede ser hasta dos aos. Si algn
usuario tiene algn problema con una transaccin, se puede pedir el
registro de la operacin en duda y a `partir de ah intentar solucionar el
problema. A parte del ojo electrnico que cuenta los billetes, el
dispensador de dinero tambin tiene un sensor que evala el espesor de
cada billete. Si dos billetes se quedan atascados juntos, en lugar de ser
entregados al usuario, son desviados a un recipiente diferente aislado.
Lo mismo pasa con los billetes que estn muy gastados, rotos o muy
doblados. El nmero de billetes rechazados es tambin registrado por lo
que los administradores del cajero pueden saber la calidad de los billetes
cargados en la mquina. Una alta tas de billetes rechazados puede
indicar un problema con los billetes o el mecanismo del dispensador.

Cuando un usuario quiere hacer una transaccin, tiene que dar la


informacin necesaria por medio del lector de tarjetas y el teclado. El
cajero automtico se encarga de enviar esta informacin al procesador
para que lo redirija al banco o compaa de tarjetas que gestiona las
tarjetas utilizadas. Si el usuario est pidiendo dinero, el centro de
procesamiento ejecuta una transferencia electrnica de fondos desde la
cuenta del usuario a la cuenta en el centro de proceso de datos. Una vez
que los fondos son transferidos al centro de datos que tiene el banco, el
procesador enva un cdigo de aprobacin al cajero autorizando a la
entrega del dinero.
Seguridad en los cajeros automticos
Los cajeros automticos mantienen los nmeros de identificacin
personal y otra informacin importante segura en forma de encriptacin
usando un software para esto, como Triple DES. Sin embargo hay
muchas cosas que puedes hacer para proteger tu informacin y dinero.
Muchos bancos recomiendan que elijas tu propio nmero personal y lo
memorices. Nunca se debe llevar este cdigo escrito en la cartera o en
cualquier otro sitio donde lo puedan ver. Hay que usar unos nmeros
que puedas recordar fcilmente pero que se puedan asociar a tu
personalidad. Esto significa no usar fechas de cumpleaos, telfonos o
cosas relacionadas con tu entorno.
Las tarjetas se deben guardar en un bolso o cartera pero en un rea
donde no se araen o puedan doblarse. Hay que coger la tarjeta antes
de llegar al cajero automtico. Sers ms vulnerable a un ataque si
ests frente a un cajero y ests distrado buscando la tarjeta por todos

los lados. Para teclear el cdigo de usuario, lo mejor es estar de frente


al cajero y hacerlo con una mano mientras que con la otra tapas lo que
ests tecleando. Lo puedes hacer con la propia cartera. Esto previene
que se grabe el nmero de alguna manera. Una vez que tengas el
dinero, no te quedes en el mismo sitio contando el dinero. En todo caso
hazlo de una forma rpida. A poder ser, se deben elegir cajeros
automticos que estn en una zona bien iluminada y con un buen
trnsito de gente. Muchos cajeros son internos y permiten bloquear la
puerta mientras se est sacando dinero. Esto es algo que se debe hacer
para prevenir cualquier contratiempo.
Leer mas artculos relacionados

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