Software
Malware
Comercio electrónico

Target comparte su propia herramienta de detección de 'skimming' web

La herramienta de código abierto simula la navegación y las compras online para identificar el códigos maliciosos destinados a robar la información de las tarjetas de pago en los sitios web de los minoristas.

seguridad, ciberseguridad
El "web skimming" (robo de información web) ha sido una de las principales lacras de las tiendas online en los últimos años, con ataques que van desde simples inyecciones de scripts en los formularios de pago, hasta sofisticados compromisos de scripts y servicios legítimos de terceros. A veces denominados ataques de Magecart, se han convertido en la principal causa de fraude con tarjetas no presentes (CNP) y han afectado a pequeñas y grandes marcas por igual, así como a diferentes tipos de plataformas de comercio electrónico.
 
Como uno de los principales minoristas online, Target comenzó a buscar soluciones hace unos años para combatir esta amenaza y mantener a sus propios clientes protegidos mientras compraban en su plataforma. Dado que en aquel momento no existían herramientas de detección de este tipo de ataques, dos ingenieros de seguridad de la empresa decidieron desarrollar las suyas propias. Tras más de tres años de uso activo en Target.com, el escáner del lado del cliente de la empresa ha sido publicado como un proyecto de código abierto denominado Merry Maker.
 
"Merry Maker simula continuamente la navegación online y completa las transacciones de prueba para buscar la presencia de código malicioso", ha exlicado la compañía en un blog. "Merry Maker actúa como un invitado en Target.com al completar varias actividades típicas, incluidas las comprasonline. Mientras lo hace, la herramienta recopila y analiza una variedad de información que incluye solicitudes de red, archivos JavaScript y actividad del navegador para determinar si hay algún tipo de actividad no deseada".
 

¿Qué es el skimming de tarjetas?

El skimming de tarjetas es un tipo de ataque en el que se inserta un dispositivo o mecanismo malicioso en el punto de una transacción legítima para capturar los detalles de la tarjeta. Se trata de un ataque "man-in-the-middle". En el mundo físico, los dispositivos de skimming se colocan en la ranura de la tarjeta de los cajeros automáticos o en los terminales de pago de los surtidores de gasolina, para capturar los datos codificados en la banda magnética de la tarjeta. Suelen ir acompañados de pequeñas cámaras o de superposiciones en el teclado de PIN para capturar también los números de PIN introducidos por los usuarios. La transición a las tarjetas con chip, que utilizan el cifrado junto con otras funciones de autenticación y validación de las transacciones, tiene por objeto combatir estos ataques con tarjeta.
 
Los ataques de skimming web o skimming digital siguen un principio similar, pero utilizan un código malicioso inyectado en las páginas de pago de los sitios de compras online, con el objetivo de capturar y desviar los datos de la tarjeta y otra información de pago introducida por los usuarios en los formularios. Estos scripts maliciosos de skimming acaban en los sitios web de varias maneras: mediante el uso de credenciales administrativas débiles o robadas, explotando vulnerabilidades en las aplicaciones web, que permiten a los atacantes cargar código no autorizado en los servidores web, o comprometiendo servicios de terceros, como los de análisis web, cuyos scripts legítimos ya están cargados en las páginas de pago.
 
Los grupos de skimming en la web utilizan técnicas sofisticadas para que su código de registro de teclas sea difícil de detectar. El código puede estar fuertemente ofuscado y añadirse a los archivos JavaScript existentes o almacenarse en otro tipo de recursos como CSS, o incluso incrustado en imágenes, puede también alojarse en dominios de terceros que tienen nombres similares a los utilizados por los servicios legítimos, o en redes de distribución de contenidos con sólo una pequeña función de importación en el sitio web real.
 

Merry Maker utiliza la detección del lado del cliente

Los propietarios de sitios web pueden utilizar diferentes tecnologías en los servidores web para detectar la modificación no autorizada de archivos de script. Sin embargo, los sitios web pueden ser muy complejos, ya que utilizan código generado dinámicamente basado en información almacenada en bases de datos, que luego se sirve a los usuarios sobre la marcha. Por ello, una estrategia de defensa adecuada requiere también escaneos realizados con rastreadores del lado del cliente que puedan capturar el código completo renderizado que recibiría el navegador de un usuario normal. Así es exactamente como el Merry Maker de Target fue diseñado para funcionar.
 
"Merry Maker está diseñado para imitar el comportamiento de los usuarios reales cuando navegan por un sitio web: buscar un producto, añadirlo al carrito, introducir los datos de pago y enviar el pedido", explican los ingenieros de Target en otra entrada del blog. "Todo el código del lado del cliente que se ejecuta durante esos pasos sólo puede ejecutarse completamente en un navegador real".
 
El marco tiene dos componentes: un tablero de administración donde los defensores pueden definir las reglas de detección y revisar las alertas, y el escáner del lado del cliente en sí, que se implementa utilizando Headless Chrome, una versión del popular navegador controlada por programación. Desde su lanzamiento en 2018, el escáner ha completado más de un millón de escaneos en Target.com.
 
 
Para automatizar el navegador sin cabeza, Merry Maker se basa en un componente de Node.js llamado Puppeteer que proporciona una API para controlar el navegador a través del protocolo DevTools, mediante instrucciones escritas en JavaScript. Para complementar esto, los ingenieros de Target desarrollaron una herramienta llamada JS Scope que enumera las peticiones de javascript y engancha las llamadas a funciones nativas del navegador.
 
"JS Scope nos permite comprender mejor el comportamiento del código del lado del cliente más allá del análisis estático", explican los ingenieros. "Cada llamada de función enganchada, solicitud web, respuesta, cookie y otras llamadas relevantes, son capturadas y analizadas casi en tiempo real".
 
El escáner puede ejecutar múltiples reglas de detección a los eventos y contenidos capturados por el headless chrome en tiempo real. El escáner es compatible con las reglas YARA —un mecanismo para clasificar e identificar muestras de malware— y puede tomar conjuntos de reglas disponibles públicamente que otros defensores han escrito o hechos a medida para detectar tipos específicos de datos o cadenas. Además, admite reglas de detección basadas en indicadores de peligro (IOC) conocidos, como los dominios de skimming digital, que pueden obtenerse de listas públicas o de un proveedor de inteligencia de seguridad.
 
También es posible escribir reglas de detección más complejas mediante Typescript, un lenguaje de programación desarrollado por Microsoft que se basa en JavaScript y amplía su sintaxis. Y hay detecciones más genéricas para nombres de dominio desconocidos, que adoptan un enfoque de lista blanca en el que las solicitudes a cualquier dominio que no haya sido incluido en la lista blanca se marcan como potencialmente sospechosas.
 
Las alertas generadas por el escáner pueden recibirse de tres maneras: a través del panel de control de Merry Maker; a través de Kafka, una plataforma de transmisión de eventos distribuida de código abierto; o a través de GoAlert, otro proyecto de código abierto de Target que admite la programación de llamadas, escaladas automáticas y notificaciones a través de SMS o llamadas de voz.
 
Merry Maker puede desplegarse como un contenedor Docker, lo que significa que puede desplegarse fácilmente en la infraestructura de la nube en todo el mundo para imitar la diversidad geográfica de los usuarios reales. Algunos skimmers activan su código malicioso sólo a los visitantes de ciertas ubicaciones o de ciertos navegadores con determinadas configuraciones de idioma. Todos estos perfiles de visitantes pueden ser imitados con Merry Maker.
 

Los skimmers están evolucionando y la detección mantenerse al día

Las herramientas y técnicas de detección nunca son una panacea. Deben complementarse con medidas preventivas activas, como mantener actualizados todos los scripts, complementos, marcos y plug-ins de terceros que componen un sitio, escaneos de vulnerabilidad estáticos y dinámicos, auditorías de seguridad de código internas y externas, gestión adecuada de credenciales y autenticación de dos factores, eliminación de código innecesario de las páginas críticas, como los formularios de pago, y aprovechamiento de los mecanismos de seguridad basados en el navegador, como la Política de Seguridad de Contenidos (CSP) y la Integridad de Subrecursos (SRI). Aunque ninguno de ellos por sí solo ofrece una protección perfecta, cuando se utilizan juntos reducen significativamente la posibilidad de una infección por skimmer.
 
La CSP es un mecanismo mediante el cual un sitio web puede indicar a los navegadores los nombres de dominio externos de confianza desde los que se pueden cargar scripts ejecutables en su contexto. Si el navegador encuentra un script que no es de uno de los dominios de la lista blanca de la política CSP, debería rechazar su carga. Aunque puede ser un gran mecanismo defensivo, CSP no aborda los casos en los que un servicio de terceros de confianza que ha sido incluido en la lista blanca se ve comprometido y la inyección maliciosa se produce en su extremo.
 
SRI viene a complementar a CSP porque permite a los sitios web especificar un hash criptográfico para los recursos externos que obtienen, por ejemplo, de una CDN. El navegador validará que el recurso externo, como un script, tiene el hash especificado por el sitio web que intenta importarlo y se negará a cargarlo si el valor del hash no coincide. Esto pretende proteger contra la manipulación maliciosa de los recursos externos. El problema con el SRI es que no es fácil de mantener, especialmente en sitios web muy grandes con muchos recursos externos y código dinámico.
 
"No hay respuestas fáciles a este problema", explica a CSO Chris Carlson, director senior de ciberseguridad y uno de los desarrolladores de Merry Maker. "La ISR puede ser un desafío si una organización depende en gran medida de los recursos de terceros para la telemetría/analítica". Para Target, un primer paso clave para mejorar la seguridad del sitio web ha sido ayudar a los equipos que deciden el contenido de terceros a comprender los riesgos. Hemos eliminado todo el contenido de terceros que se sirve en las páginas sensibles que podemos y estamos trabajando para utilizar ISR en los scripts de origen". Los otros miembros del personal de Target que crearon Merry Maker son el ingeniero principal Eric Brandel y el ingeniero distinguido Caleb Walch.
 
En una presentación en Black Hat Europe en 2021, los investigadores de la empresa de seguridad Cyberpion presentaron varias técnicas de evasión de la detección que los skimmers pueden utilizar para evadir la detección basada en el cliente, incluyendo las llamadas inyecciones "sin script", en las que un script legítimo de terceros utiliza un servicio de cuarta parte para almacenar otras fuentes de datos que afectan al comportamiento del script y que pueden cargarse en el contexto del script a través de peticiones Ajax. Comprometer estas fuentes de datos de terceros también puede proporcionar a los atacantes una vía de ataque, mientras el código del propio script de terceros permanece limpio. Este es un ejemplo de un ataque a la cadena de suministro digital en el que el ataque se mueve hacia arriba en la cadena.
 
"Merry Maker puede detectar los compromisos de primera o tercera parte (o para el caso, de cuarta parte) porque está examinando todo el código JavaScript (no su origen) y todo el tráfico de red generado para los indicadores de intención maliciosa", dicen los ingenieros de Target a CSO. "Independientemente del origen, Merry Maker detecta los indicadores".
 
Dicho esto, existen técnicas e incluso bibliotecas de código abierto diseñadas para detectar el uso de navegadores sin cabeza y distinguirlos de los visitantes activos reales. Los skimmers podrían hacer uso de estos métodos para evitar mostrar su código malicioso a los escáneres automatizados como Merry Maker.
 
"Como ocurre con muchas cosas en el ámbito de la ciberseguridad, se trata de seguir el ritmo de la evolución de las amenazas", afirman los ingenieros de Target. "Tenemos contramedidas para intentar mitigar la probabilidad de que esto afecte a la detección y, afortunadamente, Puppeteer cuenta con una creciente comunidad de bibliotecas para combatir este tipo de técnicas".
 


TE PUEDE INTERESAR...

Accede a la cobertura de nuestros encuentros
 
Lee aquí nuestra revista digital de canal

DealerWorld Digital

 

Forma parte de nuestra comunidad
 
¿Interesado en nuestros foros? 

 

Whitepaper

Documento Pure Storage y Kyndryl INFRAESTRUCTURAS