Los cajeros automáticos irrumpieron y se hicieron parte de nuestras vidas en 1967, cuando se instaló el primer ejemplar de ATM en la sucursal londinense del banco Barclays. Actualmente, millones de personas en todo el mundo utilizan a diario cajeros automáticos para retirar dinero en efectivo, ingresarlo en cuentas de tarjetas bancarias y pagar por diversos servicios. La gente usa los cajeros automáticos, sin pensar qué tipo de hardware tienen adentro, cuáles son las peculiaridades de su software y cuáles las características de seguridad. Por desgracia, los fabricantes de cajeros automáticos y sus clientes inmediatos, los bancos, prestan muy poca atención a la seguridad de estos dispositivos. Esto lo confirma el creciente número de robos de dinero en efectivo de cajeros automáticos mediante métodos no destructivos, es decir sin usar ni herramientas para cortar metales, ni explosivos.
Para entender por qué ocurre esto, primero debemos poner en claro qué es un cajero automático.
Hardware
Un cajero automático o ATM es muy similar a un juego de construcción por bloques. El fabricante los ensambla usando varias partes: el dispositivo de entrega de dinero (dispensador), el lector de tarjetas y otros módulos fabricados por diferentes empresas. Los módulos se colocan en el recinto, que consta generalmente de dos partes, la parte superior, llamada pantalla o área de servicio, y un depósito inferior, similar a una caja fuerte blindada.
El área de servicio también incluye módulos como la unidad del sistema (sí, una unidad del sistema común y corriente, a veces incluso en la misma caja de una computadora personal típica), teclado (EPP o PIN-pad cifrado), lector de tarjetas, etc. Desde el área de servicio es imposible, según el fabricante del cajero automático, obtener acceso al dinero. Probablemente por esta razón, la cubierta de la carcasa es de plástico, y el acceso no autorizado al área de servicio sólo está protegido por una cerradura sencilla. Por cierto, tanto las cerraduras como las llaves se pueden adquirir a través de Internet, ya que cada fabricante usa la misma cerradura para todos sus dispositivos, y la mayoría de los bancos, por regla general, no las reemplazan por otras que tengan llaves únicas.
La caja fuerte está mucho mejor protegida. Es un “sandwich” de acero y hormigón con dos tipos de cerradura: de código (ya sea electrónico o físico, aunque a veces son electromecánicos) y de llave, por lo general del sistema Chubb. En la caja fuerte se encuentran los dispositivos que tienen relación directa con el dinero: un dispensador de dinero en efectivo, y un módulo para la recepción de dinero en efectivo.
Todos los dispositivos están conectados a la unidad del sistema, que en este caso cumple funciones de host (como la llamaremos) a través de los puertos USB o RS232 (a menudo llamado puerto COM). A veces, estos puertos se encuentran directamente instalados en la unidad del sistema, y en caso de que su número no sea suficiente, se usa un divisor USB/COM. En los modelos antiguos de ATM, que todavía pueden encontrarse en funcionamiento, se utiliza el método de conexión mediante el bus SDC.
Software
El conjunto de software que se puede encontrar en prácticamente todos los cajeros automáticos es simple:
- sistema operativo,
- software de control de los módulos del cajero automático,
- software utilizado para interactuar con el usuario (ya sea el cliente o el operador del ATM),
- software para la comunicación con el centro de procesamiento (que se hace cargo de los aspectos informáticos y tecnológicos de la transacción)
- y software antivirus o software para supervisar la integridad del sistema.
En principio, este conjunto es suficiente para llevar a cabo las funciones inmediatas del cajero automático, pero por alguna razón algunos bancos instalan Acrobat Reader versión 6.0, Radmin, TeamViewer y otros programas innecesarios y hasta peligroso en algunos casos.
El sistema operativo que la gran mayoría de los cajeros automáticos sigue utilizando … ¡es Windows XP! Y esto a pesar de que Microsoft dejó de publicar actualizaciones de seguridad para este sistema operativo en abril de 2014. Por supuesto, todas las vulnerabilidades de día cero (0 días) de este sistema se quedan sin resolver. Los ingenieros de servicio de los cajeros automáticos a menudo creen que si el cajero automático funciona, lo mejor que se puede hacer es “no tocarlo” (es decir: “no actualizarlo”). Como consecuencia, en algunos cajeros automáticos hasta hoy se puede encontrar la vulnerabilidad crítica MS08-067, que permite la ejecución remota de código.
Los módulos de los ATM están implementados mediante microcontroladores con sistemas operativos de tiempo real (RTOS), circunstancia que deprime a los muchachos de IDA Pro, ya que es casi imposible usar el análisis estadístico en este tipo de sistemas.
Pues bien, esta información, en principio, es suficiente para que los piratas informáticos empiecen a atacar.
Malware
En 2009, el mundo de los cajeros automáticos se vio conmovido por la aparición de Backdoor.Win32.Skimer, el primer programa malicioso que apuntaba a los cajeros automáticos. Skimer atacaba los cajeros automáticos de un fabricante en particular, uno de los líderes del mercado. Con la ayuda del malware, los delincuentes vaciaban el dispensador y además recibían los datos de las tarjetas que habían sido procesadas por el cajero automático infectado. Desde entonces, los cajeros automáticos de diferentes fabricantes sufrieron varias veces las consecuencias del malware.
En el esquema de robo de dinero de cajeros automáticos mediante software malicioso se pueden distinguir cuatro fases principales:
- El atacante obtiene acceso local o remoto al cajero.
- Inyecta el código malicioso en el sistema del cajero automático.
- Como regla general, una vez realizada la infección, se reinicia el cajero automático. El sistema se reinicia, en apariencia, de modo normal, pero en realidad ya está bajo el control de un programa malicioso, es decir, de los delincuentes.
- La etapa final, es decir, el objetivo de todas estas acciones es el robo de dinero.
Obtener acceso al interior del cajero automático no es una tarea tan difícil, como lo demostraron los expertos en el foro internacional de seguridad informática Positive Hack Days. La infección también se manifiesta de forma no muy clara, ya que puede ejecutarse código arbitrario en un sistema inseguro (o que no es lo suficientemente seguro). La recepción del dinero tampoco es tan difícil. Para abrir la interfaz del malware suele bastar con introducir un PIN especial o la tarjeta del delincuente, y después empezar a llenarse los bolsillos de dinero.
Nos centraremos en cómo el programa malicioso puede tomar el control del cajero automático.
Acerca del estándar XFS
De esta manera, los atacantes lograron infectar la unidad del sistema del cajero automático. ¿Qué pasa después?
Aquí es imprescindible hacer una pequeña explicación. Como ya mencionamos, el cajero automático funciona con una aplicación basada en Windows. En general, su tarea consiste en organizar la interacción del usuario (ya se trate del cliente o del personal de servicio) con el centro de procesamiento, que envía comandos al cajero automático, y el dispositivo que ejecuta estos comandos. El intercambio de información con el centro de procesamiento se produce mediante protocolos de conexión directa (NDC o DDC), los usuarios usan una interfaz gráfica de usuario, pero el funcionamiento de cada uno de los módulos del cajero automático depende de los correspondientes proveedores de servicios (pasarelas peculiares instaladas en estos módulos). Para transmitir las órdenes a los proveedores de servicios y que estos las retransmitan al dispositivo, y también para recibir la información de estado, se utiliza un nivel llamado XFS Manager, que funciona de conformidad con el concepto WOSA.
Esquema general de funcionamiento del cajero automático en el contexto del estándar XFS
XFS (CEN / XFS, anteriormente llamados WOSA / XFS), o eXtensions for Financial Service es un estándar que proporciona una arquitectura cliente-servidor para la comunicación de aplicaciones financieras con dispositivos tales como cajeros automáticos en la plataforma Windows. El estándar tiene por objetivo unificar el funcionamiento del software con cualquier tipo de dispositivos, independientemente del fabricante, y proporciona para este propósito una API común.
Por lo tanto, cualquier aplicación desarrollada teniendo en cuenta el estándar XFS, puede controlar los objetos de bajo nivel, operando sólo con la lógica descrita en este estándar. Y esta aplicación bien puede ser el backdoor Tyupkin o cualquier otro programa malicioso.
¿Qué posibilidades brinda XFS?
Por ejemplo, el dispensador, el dispositivo de más interés para los atacantes, puede emitir dinero sin mediar ningún tipo de autorización. Y en algunos modelos de cajeros automáticos con la ayuda de XFS se puede abrir la caja fuerte y desbloquear las bandejas de efectivo usando métodos de software.
[youtube https://www.youtube.com/watch?v=Uxd0TRdE6sw&w=560&h=315]Ejemplo de explotación de la vulnerabilidad MS08_067, que permite la ejecución de código arbitrario.
El video fue mostrado por los expertos en la conferencia BlackHat Europa 2014
En lo que respecta al lector de tarjetas, XFS permite leer y escribir datos en la banda magnética de la tarjeta de crédito e incluso recibir el historial de transacciones almacenados en el chip EMV de la-tarjeta.
Hay que mencionar el teclado cifrado Encrypted Pin-Pad (PPE). Se cree que el PIN es imposible de interceptar porque se ingresa en el PPE del cajero automático y se convierte en un PID-Bloc directamente dentro del módulo de cifrado (para este fin, el teclado EPP dispone de claves, cuyos pares están en el módulo de seguridad de hardware del banco). Sin embargo, XFS nos permite usar un teclado de PIN en dos modos:
- abierto – para introducir diversos valores numéricos, tales como la cantidad que desea de dinero en efectivo que desea sacar;
- y protegido (seguro), modo al que el teclado PPE cambia para introducir el código PIN y las llaves de cifrado.
Esta característica permite realizar un ataque del tipo “hombre en el medio” (MiTM). Para hacerlo, sólo hay que interceptar el comando que el host envía al teclado PPE en el modo protegido e informar al dispositivo que el trabajo continúa en modo abierto. En el mensaje de respuesta, el teclado PPE transmite las pulsaciones de teclado en la forma de texto simple, que es lo que quería el atacante.
Pero ¿qué pasa con la autenticación y el acceso exclusivo? Y la especificación del estándar, ¿es también imposible de conseguir?
Por desgracia, no lo es si se trata de XFS. Este estándar no prevé ningún tipo de autenticación, y el acceso exclusivo a los proveedores de servicio está implementado, pero no con fines de seguridad. Es sólo una función que hace obligatorio el envío de comandos en un sólo flujo de datos, para excluir la posibilidad de dejar fuera de servicio el delicado hardware al enviar dos comandos iguales al mismo tiempo.
Usted entiende, ¿verdad? Es un estándar para aplicaciones financieras, pero que no contiene ningún mecanismo de seguridad. ¿Dónde obtener la especificación para constatar este hecho? En cualquier motor de búsqueda, al hacer la solicitud “ATM XFS”, la especificación estará entre los primeros resultados.
Acerca de las herramientas de control de integridad
Algunos bancos utilizan a veces herramientas de control de integridad en sus ATM, las cuales prometen impedir la ejecución no autorizada de código basándose en una lista de admitidos, el control de los dispositivos y unidades conectadas, así como otros métodos útiles -en teoría- para hacer frente a los ataques.
Pero no debemos olvidar que se trata de software, y al igual que cualquier otro software, no es perfecto. Puede ser vulnerable a ataques tales como salida del kiosco (evasión de las limitaciones del modo de pantalla completa para obtener acceso al sistema operativo), evasión de listas de admitidos, desbordamiento de memoria, elevación de privilegios hasta el nivel de usuario SYSTEM y otros. Como comprenderá, a menudo las vulnerabilidades existentes permiten a los delincuentes acceder al sistema operativo para realizar sus oscuros designios.
Acerca de las características no documentadas
Los chicos malos pueden utilizar y modificar las utilidades cuyo destino original, según los desarrolladores o fabricantes de cajeros automáticos, es comprobar el correcto funcionamiento de los dispositivos. Una de las funciones de estas herramientas es verificar el funcionamiento del dispensador de dinero. Para llevar a cabo esta verificación, el ingeniero debe confirmar su legitimidad abriendo la puerta de la caja fuerte o efectuando determinadas acciones con las bandejas del dispensador. La lógica es simple: si puede abrir la caja fuerte, entonces usted tiene la llave, es decir, usted es un ingeniero con licencia o un recogedor autorizado. Pero basta con sustituir un par de bytes en la utilidad por otros bytes “correctos” para hacer una “prueba” de retiro de dinero sin control de ningún tipo.
Otra forma de hacerse rico es cambiar la denominación de los billetes emitidos, también utilizando la herramienta de diagnóstico. Como resultado, el atacante recibe el dinero del cajón con el valor nominal más grande (por ejemplo, 100 dólares o euros), mientras que el cajero automático considera que le dio la más pequeña de las denominaciones disponibles (cinco o diez). Por lo tanto, con la tarjeta se pueden recibir varios miles en vez de algunos cientos.
Acerca de black box
Otro tipo de ataque, que es cada vez más frecuente en las noticias, es el llamado ataque black box. En las grabaciones de video de sistemas de vigilancia se ve lo siguiente: el atacante abre el área de servicio, conecta su caja mágica al cajero automático y se va. Un poco más tarde, varias personas que en apariencia son simples clientes se acercan al cajero automático y retiran una enorme cantidad de dinero. Por supuesto, los atacantes no dejan abandonada su caja mágica, sino que la recuperan una vez alcanzado el objetivo. El resultado se descubre, por lo general, varios días después: los empleados del banco, al ver la bandeja vacía y no encontrar las entradas de registro correspondientes, no pueden entender que fue lo que pasó.
Pero no hay nada de magia. Al conectar al dispensador una microcomputadora especial en vez del host, los atacantes eluden todas las medidas de seguridad implementadas en el host: antivirus, controles de integridad, incluido el cifrado de disco completo, etcétera.
Acerca de la inseguridad de las comunicaciones
Como se mencionó anteriormente, como canal de transmisión de datos entre la unidad de sistema y los dispositivos se utiliza USB, RS232, o SDC. Al parecer, no hay nada que impida que los atacantes envíen los comandos necesarios directamente al puerto del dispositivo, sin pasar por su proveedor de servicios. Las interfaces son estándar y a menudo no se necesitan controladores específicos. Aquí tampoco hay ninguna autorización prevista, lo que de hecho convierte estos protocolos patentados en presa fácil, porque lo único que hay que hacer es escuchar y repetir. Como resultado, el delincuente adquiere el control directo de los módulos del cajero automático y hace uso de características no documentadas (por ejemplo, después de modificar el firmware para este módulo). Además, los atacantes pueden usar un analizador de tráfico (sea de software o hardware) conectándolo directamente al puerto del dispositivo que le interesa, por ejemplo un lector de tarjetas, con el fin de obtener los datos transmitidos. Y este analizador será bastante difícil de detectar.
El control directo del dispensador permite vaciar las bandejas de dinero del cajero automático, sin escribir entradas en los registros que lleva a cabo el cajero automático.
Un típico paquete es el envío de un comando para que la primera bandeja del dispensador expida un billete.
Para los no iniciados, esto parecería magia. Pero esta magia, como todo truco, tiene tres pasos o acciones: sacar el dinero de la bandeja, abrir la ranura de entrega de dinero (desde donde hacen su aparición los billetes) y ofrecer el dinero al cliente.
[youtube https://www.youtube.com/watch?v=ksEmXuV324I&w=560&h=315]Ejemplo de ataque black box contra un cajero automático, video elaborado por los expertos para mostrarlo en BlackHat Europa 2014
Los skimmers de hardware son cosa del siglo pasado. En cambio, la conexión directa permite leer y escribir la banda magnética de una tarjeta de crédito. Como conexión directa se pueden utilizar analizadores de tráfico de software, que son fáciles de encontrar en Internet. Como contaba uno de mis amigos, en todos los cajeros automáticos de un importante banco había skimmers instalados. Los delincuentes, al descubrir esta vulnerabilidad en la red del banco, instalaron en los cajeros automáticos una utilidad sniffer USB, con cuya ayuda recolectaron todos los datos de las tarjetas bancarias de forma abierta durante cinco años. Quién sabe, puede que su tarjeta haya estado allí.
Datos interceptados de la tarjeta Track2
Acerca de la red
La conexión entre los cajeros automáticos y el centro de procesamiento puede protegerse de varias maneras. Por ejemplo, mediante el uso de VPN de hardware o software, o el uso de cifrado SSL / TLS, cortafuegos, así como de la autenticación MAC, implementada en los protocolos xDC. Sin embargo, a menudo los bancos consideran que todas estas medidas son demasiado complejas y no utilizan ninguna protección en absoluto.
En tales casos, un atacante puede realizar un ataque “hombre en el medio”, que dejará en sus manos los datos de la tarjeta y todo el dinero del cajero automático. Para realizarlo, se necesita acceso remoto al dispositivo. Por lo general, el delincuente lo obtiene utilizando cualquiera de los servicios vulnerables disponibles a través de Internet, o mediante métodos de ingeniería social. Pero también se puede usar el acceso físico al hardware de red, incluyendo el cable Ethernet del cajero automático.
En el camino al verdadero centro de procesamiento aparece un centro falsificado que envía comandos al software del cajero automático para la emisión de billetes. Y se puede retirar dinero usando cualquier tarjeta, incluso si está vencida o con un saldo de cero, siempre que el centro de procesamiento falso la “reconozca”. Como centro de procesamiento falso se puede utilizar un producto casero que admita la comunicación con el cajero automático por protocolo XDC, como los simuladores de centro de procesamiento, originalmente diseñados para comprobar la configuración de red (otro “regalo” del proveedor a los delincuentes).
Comandos para la entrega de 40 billetes desde la cuarta bandeja, enviados desde un centro de procesamiento falso y guardados en los registros de software del cajero automático. Lucen casi como si fueran verdaderos
Pero ¿dónde encuentran los delincuentes cajeros automáticos que pueden ser atacados a través de la red? ¿Escanean todas la redes que tienen cerca o compran la información en los foros clandestinos?
Resulta que basta con enviar una consulta correcta al motor de búsqueda www.shodan.io (los expertos conocen bien este escáner de Internet). Los datos recogidos por este escáner suelen ser suficientes para este tipo de ataques.
#Shodan shows thousands of exposed ATMs potentially vulnerable to a network attack @_endless_quest_ #TheSAS2016 pic.twitter.com/9E3SSYwG89
— Eugene Kaspersky (@e_kaspersky) February 9, 2016
O simplemente pueden inspeccionar con detenimiento los cajeros automáticos en centros comerciales y de negocios.
A veces para acceder al sistema ATM no se necesita ni siquiera abrirlo. Todas las conexiones están en el exterior
¿Quién es el culpable? ¿y ahora qué hacemos?
Esta parte es la más triste, y he aquí por qué.
Cuando, durante el proceso de análisis de vulnerabilidades de banqueros automáticos, descubrimos una vulnerabilidad, por supuesto enviamos al fabricante una notificación con la descripción de las deficiencias y la forma de resolverlas. Y a menudo las respuestas son desconcertantes:
“The vulnerabilities are essentially normal specifications of the card readers and not unexpected. As long as the ATM is running within normal parameters, these problems cannot possibly occur.”
Traducción:
“Las vulnerabilidades son, en esencia, especificaciones normales de los lectores de tarjetas y no son algo inesperado. Mientras el cajero esté funcionando dentro de parámetros normales, es casi imposible que estos problemas ocurran“.
“However this vulnerability is inherent in the USB technology and is expected be mitigated by the use of appropriate physical controls on access to the ATM top box.”
Traducción:
“Sin embargo esta vulnerabilidad es inherente a la tecnología USB y se supone que hay que mitigarla mediante controles físicos adecuados de acceso a la caja superior del cajero automático”.
“We regret informing you that we had decided to stop producing this model more than 3 years ago and warranties for our distributors been expired.”
Traducción:
“Lamentamos informarle que decidimos dejar de producir este modelo hace más de 3 años y la garantía para nuestros distribuidores ha caducado“.
En efecto, ¿por qué los vendedores tendrían que preocuparse de que los cajeros automáticos sin garantía sigan siendo utilizados por los bancos de todo el mundo, y de que a menudo su seguridad física deje mucho que desear? Por desgracia, la realidad es que los fabricantes sólo están interesados en vender nuevos productos, pero no en eliminar las deficiencias en sistemas existentes, y los bancos no son capaces de hacer frente a los problemas actuales por cuenta propia, debido a que carecen de las competencias necesarias.
Afortunadamente, algunos fabricantes entienden lo peligroso que puede ser el uso no autorizado de los cajeros automáticos, y publican actualizaciones de seguridad. Como medidas contra los ataques dirigidos a los dispensadores se utilizan la autenticación de dos vías y la criptografía (pero hay que recordar que no se trata de cualquier cifrado, sino de un cifrado correctamente implementado).
Sin embargo, como lo demuestra la realidad, las medidas compensatorias existentes pueden proteger los cajeros automáticos contra el malware, pero resultan inútiles contra los ataques black box o los ataques de red. Un enorme número de fallas de seguridad y de vulnerabilidades, que no requieren ningún conocimiento específico de la máquina para explotarlos, hace que los cajeros automáticos sean un objetivo deseable para los que tienen sed de enriquecimiento ilícito.
Hay una salida
Considerando todo lo expuesto, los fabricantes de cajeros automáticos pueden reducir los riesgos de ataques contra sus productos.
- En primer lugar, es necesario revisar la norma XFS, poniendo énfasis en la seguridad, y también introducir la autenticación de dos vías entre el dispositivo y el software legítimo, lo que permitirá reducir la probabilidad de emisión no autorizada de dinero mediante troyanos y evitar que los delincuentes obtengan el control directo de los módulos del cajero automático.
- En segundo lugar, es necesario implementar un mecanismo de “emisión de confianza” para excluir la posibilidad de ataques mediante sustitución del centro de procesamiento.
- En tercer lugar, es necesario implementar la protección criptográfica y el control de integridad de los datos transmitidos entre todos los dispositivos del cajero automático.
¿Qué tienen que hacer los bancos? ¡Empezar a actuar!
Exigir que los fabricantes de cajeros automáticos y software para los mismos los hagan seguros. Las vulnerabilidades deben ser eliminadas por el fabricante tan pronto como sea posible, y hay que insistir en recordarles que lo hagan. Para impedir el hackeo de los cajeros automáticos hay que activar todos los medios de protección que se tenga a disposición. Rellenar una lista de verificación automática PCI DSS no es una panacea y no protege de ninguna manera los cajeros automáticos contra los ataques, ni al banco contra las pérdidas financieras y de reputación. Es mejor aplicar una protección proactiva, que incluya el análisis periódico de la seguridad de los cajeros automáticos y las pruebas de penetración, que lidiar con los incidentes y su investigación (y a menudo sale mucho más barato).
Recuerde, el enemigo no duerme.
¡Mis mejores deseos de seguridad!
PS: Durante la redacción de este texto ningún cajero automático resultó dañado.
PPS: Una visión general de los problemas de seguridad de los dispositivos financieros no es un manual de instrucciones.
Jackpot en el cajero automático: malware y otras formas de enriquecimiento
Osvaldo
I´m very interesting in this topic. Can I download this report in PDF?