Fiabilidad

Formjacking

¿Qué es el Formjacking?

Formjacking es el equivalente en software al robo de tarjetas de crédito. Es un portmanteau que combina “form” con parte de “hi-jacking”.

Roba datos de tarjetas de crédito de formularios online, normalmente en sitios de comercio electrónico. Los sitios web afectados siguen funcionando con normalidad, lo que dificulta su detección. ¿Qué es el formjacking? Es el ladrón invisible.

El skimming de tarjetas de crédito es el robo de datos de tarjetas de crédito en máquinas físicas como los cajeros automáticos. Los actores de la amenaza introducen una pieza de hardware físico dentro del cajero o sobre un elemento externo del mismo.

El dispositivo ilegal extrae una copia de los datos de la banda de cada tarjeta utilizada en el cajero. Esto incluye:

  • El número de la tarjeta de crédito
  • La fecha de caducidad
  • El nombre completo del titular de la tarjeta

También es habitual que se instale una cámara estenopeica apuntando al teclado. La cámara captura el número de identificación personal (PIN) de 4 dígitos.

Diccionario Techopedia: Formjackig

En lugar de dirigirse a dispositivos físicos, el formjacking se centra en los formularios de los sitios web de comercio electrónico. Desde el punto de vista del actor de la amenaza, estos formularios son un objetivo perfecto. Recogen información personal sobre el usuario y los datos de su tarjeta de crédito.

Esto proporciona a los ciberdelincuentes todo lo que necesitan para realizar fraudes con tarjetas de crédito sin presencia del titular (CNP). Los actores de la amenaza rara vez abusan ellos mismos de la tarjeta de crédito. En su lugar, venden todos los datos de la tarjeta obtenidos en la Dark Web.

En lugar de insertar físicamente una pieza de hardware en un dispositivo, los ciberdelincuentes “inyectan” código JavaScript malicioso en una página web. El código malicioso recopila el número de la tarjeta de crédito de la víctima y otra información personal y envía el paquete de datos a los actores de la amenaza.

Y lo que es más importante, se permite que la misma información pase al resto de la página web. La transacción de la víctima se completa como si nada malo hubiera ocurrido. Por lo que respecta al comerciante y al cliente, todo ha funcionado exactamente como se esperaba. Se realiza el pedido, se envía la mercancía y no se levanta ninguna sospecha.

Con la introducción de las tarjetas de pago sin contacto, la sustracción física de tarjetas se hizo mucho más difícil. Irónicamente, ese aumento de la seguridad en los usos físicos de una tarjeta de pago contribuyó al cambio y a la rápida adopción del formjacking.

El formjacking está tan extendido hoy en día que existen colectivos de ciberdelincuentes especializados en atacar exclusivamente sitios de comercio electrónico.

Magecart es una asociación de al menos siete grupos distintos de piratas informáticos. Se dedica exclusivamente al formjacking. Magecart ha llevado a cabo con éxito ataques contra objetivos de alto perfil como British Airways, Ticketmaster y Newegg.

¿Cómo funciona el Formjacking?

Se utilizan diferentes técnicas que conducen al mismo resultado final, la exfiltración de información personal y datos de tarjetas de crédito.

qué es formjacking
Tipos de formjacking. Imagen realizada por Techopedia

1. Incrustación de JavaScript en el código de un sitio web

La primera técnica consiste en incrustar JavaScript en el código de un sitio web. Esto cambia la funcionalidad de la página web. El código añadido toma una copia de los datos sensibles y la envía a los actores de la amenaza. El código suele estar ofuscado o codificado para que no pueda ser leído directamente por un ser humano sin descodificarlo.

Todos los sitios web de comercio electrónico deben interactuar con su socio de procesamiento de transacciones de tarjetas de pago. Puede ser un banco, una compañía de tarjetas de crédito o un socio de pago acreditado que se sitúa entre los comerciantes y las compañías de tarjetas de crédito.

El socio de pago proporcionará algún tipo de software de pasarela de pago que debe incluirse en la arquitectura del sitio web. Las palabras o nombres de variables en el JavaScript malicioso que por necesidad se dejan en texto plano suelen recibir nombres que sugieren que el código está relacionado con Google Analytics, con el software de la pasarela de pago o con las cookies.

Los dominios a los que se envían los datos suelen utilizar nombres que pueden ser malinterpretados si no se examinan con atención. Leves errores ortográficos y sustituciones, como el uso de una “i” en lugar de una “l”, pueden engañar al lector haciéndole creer que el nombre de dominio es seguro.

He aquí algunos ejemplos reales que se han utilizado en el pasado:

  • google-analyitics.org
  • google-analytics.cm
  • googietagmanagar.com
  • googlc-analytics.cm
  • api-googles.com
  • tracker-visitors.com

2. Cargar un script “descargador” en la página web

Otra estrategia consiste en cargar sólo un pequeño script “descargador” en la página web. Este pequeño trozo de código sólo tiene una función. Cuando se activa, descarga el script de formjacking real desde una ubicación de alojamiento remoto. Los actores de amenazas incluso han utilizado GitHub como ubicación remota para sus scripts maliciosos.

Esta técnica de descarga tiene la ventaja de que los actores de la amenaza pueden cambiar el código en el JavaScript maligno una vez, y todos los sitios web infectados utilizarán automáticamente el script actualizado la próxima vez que lo descarguen.

Si el JavaScript procede de un servidor mantenido por los autores de la amenaza, pueden examinar los metadatos de la solicitud. Pueden comprobar la dirección IP, el agente de usuario y la referencia y decidir si devuelven un script malicioso, un script limpio o incluso nada en absoluto.

Si sospechan que la solicitud procede de un investigador de seguridad que intenta diagnosticar el ataque, los actores de la amenaza variarán las respuestas enviadas de vuelta. Esto impedirá que las herramientas básicas de automatización analicen el script malicioso.

Se han visto casos en los que una lista de denegación en el servidor del actor de la amenaza contenía direcciones IP propiedad de empresas de ciberseguridad. La descarga del JavaScript a estas direcciones IP fue bloqueada.

3. Redirigir al usuario a un sitio web engañoso

Otra técnica -aunque poco utilizada- consiste en redirigir al usuario a un sitio web de apariencia similar alojado en un servidor bajo el control de los actores de la amenaza y devolverlo al sitio web real una vez completada la parte de introducción de datos de la compra.

Sea cual sea el método utilizado, el código se engancha a alguna acción del usuario, como hacer clic en un botón de la página web.

Se añade un código a la página web que se suma o sustituye al código auténtico que se activa cuando:

  • Se envía un formulario al pulsar el botón “Comprar”, “Enviar” o similar.
  • Se pulsa la tecla “Intro”, lo que puede indicar el envío de un formulario.
  • Se detecta actividad del botón del ratón.
  • Se activa un evento de carga de página para confirmar que se ha realizado un pedido.

Con menos frecuencia, el JavaScript puede basarse en un temporizador. Cada medio segundo aproximadamente, “raspa” una copia de los datos del formulario y los recoge.

¿Cómo se infectan los sitios web?

Cualquier sitio web moderno que no sea trivial utiliza una gran cantidad de módulos y código de terceros para ofrecer al usuario la experiencia y funcionalidad que espera de los sitios web profesionales.

Los secuestradores de formularios se aprovechan del mismo tipo de vulnerabilidades que buscan otros ciberdelincuentes.

  • Los sitios web se construyen a menudo sobre sistemas de gestión de contenidos (CMS). Como todo software, éstos pueden tener vulnerabilidades. Los sitios web que no se actualizan a la última versión del CMS tendrán vulnerabilidades que pueden ser explotadas.
  • Cualquier código de terceros, plug-in u otros módulos pueden tener vulnerabilidades. Es importante mantenerlos parcheados y actualizados, junto con el sistema operativo del servidor web y las páginas web principales.
  • Se han observado vulnerabilidades en el propio software de comercio electrónico. Estas pueden conducir a un acceso directo a los datos de la transacción sin tener que robarlos de los datos introducidos en un formulario.
  • Los actores de la amenaza pueden intentar obtener acceso administrativo al servidor web forzando una contraseña. Pueden probar con una contraseña obtenida de una violación de datos anterior con la esperanza de que el administrador haya utilizado la misma contraseña en más de un sistema.
  • Las bibliotecas y herramientas de software de código abierto se utilizan más que nunca. Se han dado casos en los que se ha incluido de forma encubierta código malicioso en un envío a un proyecto de código abierto que luego se ha incluido inadvertidamente en el producto publicado.
  • Las páginas web que muestran anuncios han sido infectadas cuando los actores de la amenaza fabricaron un anuncio con una carga útil que contenía código de formjacking. El anuncio se enviaba a la red publicitaria, que lo distribuía sin saberlo a miles y miles de sitios web.

Cómo detectar el formjacking

El formjacking no presenta signos visibles de que algo va mal. El visitante del sitio web no puede darse cuenta de que algo va mal. El comerciante ve que las compras se realizan al ritmo previsto.

Si todo parece funcionar, se supone que todo va bien. Lo que se necesita es algo que pueda escanear y analizar el sitio web para verificar que todo está bien.

Supervisión de la integridad de los archivos

File Integrity Monitoring (FIM) es una herramienta de software que escanea un conjunto objetivo de archivos y carpetas y crea un registro de su tamaño, tiempos de modificación y otras características. Esto se registra como línea de base.

Si en futuras exploraciones se detecta algún cambio en los archivos supervisados, se emite una alerta. Esto funciona bien para sitios estáticos, pero los sitios que tienen contenido dinámico, como los carritos de la compra que cambian en función de su funcionamiento normal, pueden confundir a los sistemas FIM.

La arquitectura del sitio web determina dónde se producen los cambios dinámicos. Si están exclusivamente en una base de datos back-end, FIM capturará los cambios en las páginas web. Pero si algunas de las páginas web se generan en tiempo real, no se pueden alinear con la base. Por tanto, un sistema FIM no será de ayuda.

Además, un sistema FIM no puede detectar amenazas incrustadas en módulos de terceros porque el módulo se alineará con la amenaza que ya contiene.

Así pues, para los sitios dinámicos, los sistemas FIM deben complementarse con una línea de base de comunicaciones y una supervisión de las conexiones. Se trata de un conjunto de listas de permitidos y denegados que aceptan o bloquean las comunicaciones del sitio web.

El tráfico web normal está permitido. Las conexiones salientes que no están sirviendo páginas web se comparan con una lista de permitidos que contiene los detalles de las conexiones salientes válidas que realizará el sitio web, incluidos los módulos de terceros.

Por ejemplo, las conexiones de los módulos de la pasarela de pago se caracterizan y se enumeran en la lista permitida. Sólo se permiten intentos de conexión a las direcciones IP y puertos remotos certificados en la lista de permitidos.

Una vez que todas las conexiones operativas válidas hacia y desde el sitio web han sido identificadas, caracterizadas y añadidas a las listas permitidas, la exfiltración de datos por transmisión se hace imposible.

También se bloquea el redireccionamiento de páginas web, y muchas de las rutas de infección entrantes se bloquean automáticamente.

Otras amenazas de Formjacking

Actualmente, el Formjacking se centra en el robo de datos de tarjetas de pago. Por supuesto, puede utilizarse para capturar cualquier tipo de dato que se introduzca en un formulario online.

Esto podría incluir banca online, información sanitaria y cualquier tipo de credenciales de inicio de sesión. También puede utilizarse para alterar los datos que se envían al sitio web auténtico.

Por ejemplo, en los sistemas de votación electrónica, el software de formjacking podría modificar un determinado porcentaje de los votos para influir en el resultado.

El formjacking es un tipo de ciberdelincuencia con un potencial especialmente insidioso.

Temas relacionados

Marshall Gunnell
Editor

Marshall es un experimentado escritor técnico y entusiasta de los videojuegos con sede en Tokio. Es un profesional en el arte de las palabras con cientos de artículos destacados en VGKAMI, Business Insider, How-To Geek, PCWorld, Zapier, y mucho más. Sus escritos han llegado a una audiencia masiva de más de 70 millones de lectores.