Robo de tarjetas en el checkout: formjacking y Magecart
La tienda funciona. Los pedidos entran, el banco paga, nada parece ir mal. Y desde hace semanas o meses, otra persona está recogiendo los datos de las tarjetas de sus clientes.
Qué es
Formjacking es el robo de lo que un cliente escribe en un formulario de pago. Magecart es el nombre que se dio a los grupos que lo hacen en tiendas online desde mediados de la década de 2010, primero en Magento y después en todas las plataformas.
El ataque no rompe la tienda, porque una tienda rota se arregla. Cambia una cosa pequeña en el recorrido del pago y deja todo lo demás como está.
Las cuatro formas de hacerlo
1. Se cambia la dirección de pago
Su tienda envía al cliente a la página de pago del banco. El atacante cambia esa dirección por una página suya de aspecto idéntico, a menudo en un dominio que se diferencia del auténtico en una letra. El cliente escribe allí la tarjeta y después se le reenvía a la página real del banco, donde el pago se completa con normalidad. El cliente cree que la escribió dos veces. Usted ve un pedido pagado.
2. Se añade código a la página de checkout
Se añaden unas pocas líneas a un archivo o plantilla del checkout de su tienda. Copian todo lo que se escribe en los campos de la tarjeta y lo envían a otro lugar, mientras el formulario sigue funcionando como siempre.
3. Se cambian los ajustes de pago
En los archivos no cambia nada. El atacante cambia la dirección de la pasarela de pago o los datos del comercio guardados en la base de datos de la tienda, desde la administración o directamente.
4. Se cambia el script de un tercero
Su checkout carga un script de otra empresa, por ejemplo una herramienta de chat o de estadísticas. Esa empresa sufre una intrusión y el script se altera en su servidor. En su tienda no ha cambiado nada.
Dos casos que se hicieron públicos
- British Airways, 2018. Un código añadido a la página de pago de la aerolínea recogía datos de tarjetas de los clientes. En 2020, la autoridad británica de protección de datos multó a la empresa con 20 millones de libras.
- Ticketmaster UK, 2018. El código llegó a través de una herramienta de chat de un tercero en la página de pago. En 2020, la misma autoridad multó a la empresa con 1,25 millones de libras.
Las grandes empresas salen en las noticias. El mismo método se usa cada día en tiendas pequeñas, donde nadie está mirando.
Por qué las herramientas habituales no lo ven
- El antivirus busca código malicioso conocido. Una dirección web cambiada no es un virus.
- El cortafuegos bloquea tráfico sospechoso. Cuando el atacante ya ha entrado con una contraseña robada, el cambio parece trabajo normal.
- El escaneo externo, incluido el escaneo PCI trimestral, mira el servidor desde fuera. Desde fuera, la tienda está bien.
- Usted ve pedidos que se pagan.
Cómo suelen enterarse las tiendas
- El banco o el procesador de tarjetas les comunica que tarjetas usadas en su tienda se utilizaron después para cometer fraude.
- Los clientes escriben que se les pidió la tarjeta dos veces, o que ven cargos que no reconocen.
- No se enteran nunca.
Para entonces, el cambio suele llevar mucho tiempo en su sitio. Lo que sigue es una investigación, una posible suspensión de los pagos con tarjeta y la cuestión de si hay que avisar a los clientes y a la autoridad de protección de datos.
Qué hace HachiGuard en cada caso
Se detecta en la siguiente revisión. El archivo limpio vuelve a colocarse automáticamente y se le avisa.
Se detecta: todo cambio en un archivo de checkout se comunica, y los patrones de robo conocidos generan una alerta crítica. Se restaura automáticamente cuando el cambio añade un destino desconocido.
Se detecta y se comunica como crítico cuando aparece una dirección desconocida. Los ajustes no se revierten automáticamente.
Cubierto en parte. Nuestra revisión externa detecta un dominio de terceros nuevo en sus páginas públicas. Un cambio hecho dentro de un script que ya estaba ahí, en el servidor del tercero, no se detecta.
Qué más debería hacer
- Mantenga al día la plataforma y sus extensiones.
- Dé a cada administrador su propia cuenta, con una contraseña fuerte y verificación en dos pasos donde la plataforma la ofrezca. Elimine las cuentas que nadie usa.
- Siempre que pueda, envíe al cliente a la página de pago del propio banco en lugar de recoger la tarjeta dentro de su tienda.
- Cargue los menos scripts de terceros posibles en el checkout.