Formjacking explicado: cómo los atacantes roban datos de tarjetas en las páginas de checkout
El formjacking no requiere una brecha en tu servidor — basta con un script de terceros comprometido. Aquí está la anatomía completa y lo que realmente detiene el ataque.
El formjacking es la interceptación del envío de un formulario HTML por parte de un JavaScript inyectado que reenvía los valores al servidor del atacante. A diferencia de una brecha clásica, tu servidor original permanece intacto en la mayoría de los casos — el código se ejecuta íntegramente en el navegador del visitante, sobre los datos que él mismo introduce.
La cadena de ataque es casi siempre la misma. El atacante compromete una dependencia de terceros — un tag manager, un widget de A/B testing, un script de chat o un paquete npm — y añade un listener al evento submit del formulario de checkout o de inicio de sesión. Al enviarlo, el script lee los campos (número de tarjeta, CVV, correo, contraseña) y hace un POST silencioso a un dominio recién registrado, antes o simultáneamente al envío legítimo. El usuario no nota nada.
Por qué los WAF no lo detectan: el reverse proxy solo ve las solicitudes a tu origin. El POST de exfiltración va al dominio del atacante, no a ti — así que nunca pasa por el WAF. Los escáneres de firmas de archivos tampoco lo capturan, porque el código malicioso no está en tus archivos sino en un script cargado desde un host externo en tiempo de ejecución.
Cómo lo detecta ExploitShield: cada envío de formulario realizado por el headless browser se captura a nivel de red mediante un MITM proxy. El host de destino se enriquece con la antigüedad WHOIS, datos RDAP, reputación IP y más de 500 listas de bloqueo. Un nuevo punto de exfiltración — un dominio de días de vida — se marca en sus primeras horas, junto con el script iniciador, el archivo y la línea de código.
La conclusión práctica para equipos de e-commerce: inventaría cada script de terceros en tus páginas de checkout e inicio de sesión, aplica Subresource Integrity donde sea posible y monitorea los destinos de salida durante la ejecución real en el navegador. Es el único lugar donde el formjacking es visible antes de que algún cliente pierda los datos de su tarjeta.