Hackers ocultan código malicioso para el robo de datos de tarjetas de crédito en archivos CSS, de sitios de compras comprometidos

El pasado miércoles 9 de diciembre, a través de la cuenta de Twitter de Willem de Groot, fundador de la firma de seguridad Sanguine Security (SanSec), se dio a conocer una nueva técnica para ocultar código malicioso en Hojas de Estilo en Cascada (Cascading Style Sheets, CSS por sus siglas en inglés) con la finalidad de inyectar un clonador de tarjetas (credit card skimmer), también conocido como “Magecart script”, y finalmente robar información de pago y datos personales de los clientes.

En este caso particular existe un primer código JavaScript incrustado en la página de órdenes de pedido de la tienda en línea comprometida, desde la cual se obtiene y ejecuta otro código JavaScript externo que está alojado en un servidor controlado por los atacantes. La URI (Uniform Resource Identifier) maliciosa es obtenida del archivo CSS en una variable “–script”. Sin embargo, la URI maliciosa cloud-iq[.]net/pub/map.js fue deshabilitada una hora después de publicarse el tweet.

Al ocultar parte del código en un archivo CSS, se podría evadir herramientas de análisis de código automatizado e incluso podría pasar desapercibido en un análisis de código manual.

Según el foro de noticias ZDNet, Willem de Groot comentó que la mayoría del robo de datos sensibles de tarjetas bancarias sucede del lado del servidor, donde podría ser invisible para el comprador o de un análisis dinámico, del lado del cliente. También declaró que en cerca del 65% de sus investigaciones forenses durante el año, encontraron código malicioso para el robo de datos de tarjetas de crédito o débito del lado del servidor, estando oculto en base de datos, código PHP o en un proceso del sistema Linux.

Recomendaciones:

Para las empresas que brindan servicios de compras en línea se recomienda:

  • Mantener actualizados sus servidores Web o servidores de Aplicaciones, así como cualquier parte de la infraestructura, tecnologías o frameworks de los que dependan sus aplicaciones Web.
  • Realizar revisiones de código automatizadas y manuales a las aplicaciones Web.

Independiente de la forma en que se exfiltre la información sensible de tarjetas de crédito o débito, ya sea por medio de código JavaScript del lado del cliente o a través de código malicioso del lado del servidor, y desde la perspectiva de un comprador en línea o de un usuario final, se recomienda lo siguiente:

  • Utilizar tarjetas virtuales designadas para pagos de una sola vez. Estas permiten ingresar un monto fijo de dinero en la tarjeta de débito virtual, que expira después de una transacción o después de un tiempo corto determinado.
  • Utilizar tarjetas que soliciten en cada transacción o compra, un doble factor de autenticación (Two Factor Authentication, 2FA por sus siglas en inglés).

Referencias:
https://www.bleepingcomputer.com/news/security/credit-card-stealer-hides-in-css-files-of-hacked-online-stores/
https://www.zdnet.com/article/hackers-hide-web-skimmer-inside-a-websites-css-files/
https://twitter.com/gwillem/status/1336616035382857730