Tu tienda vende con total normalidad. Los pedidos entran, los clientes pagan, nada parece fallar. Y sin embargo, cada tarjeta que pasa por tu checkout puede estar copiándose a un servidor que no controlas. Eso es Magecart: el robo de datos de tarjeta directamente en la página de pago, sin malware en el ordenador del cliente y sin que tú lo veas hasta que llega el banco.
Qué es Magecart
«Magecart» no es un grupo ni un virus concreto: es el nombre con el que la industria (lo acuñó el equipo de RiskIQ, hoy en Microsoft) agrupa a decenas de bandas dedicadas al web skimming — robar datos de pago desde la propia web de la tienda. La firma Sansec, referencia mundial en malware de e-commerce, rastrea estos grupos y documenta miles de tiendas comprometidas cada año. El nombre viene de sus primeras víctimas (Magento + «cart»), pero hoy afecta a WooCommerce, PrestaShop, Magento, plataformas a medida y cualquier checkout que maneje la tarjeta en el navegador.
Cómo funciona el robo
Hay dos familias, y conviene entender las dos:
- Skimmer de cliente (JavaScript): el atacante inyecta un pequeño script en la página del checkout. Ese script escucha los campos del formulario de pago y, cuando el cliente teclea el número de tarjeta, el CVV y la fecha, hace una copia y la envía a un dominio del atacante. El cliente completa su compra con normalidad; el skimmer trabaja en paralelo, invisible.
- Skimmer de servidor: más difícil de ver desde fuera. El atacante modifica el código PHP del propio checkout para capturar los datos en el backend, antes de que lleguen a la pasarela. No hay nada raro en el JavaScript de la página — la fuga ocurre en tu servidor.
La exfiltración suele disfrazarse: los datos salen hacia dominios que imitan servicios legítimos (analítica, fuentes, CDNs) o se esconden en peticiones que parecen normales. Es la misma filosofía que vemos en otras familias: la familia SMILODON que investigamos, de linaje Magecart, llegó a ocultar su dominio de telemetría escrito del revés para que un simple grep no lo encontrara.
Por qué es tan traicionero
Un desfiguramiento de web se ve. Un ransomware se nota. Magecart no: tu web sigue funcionando y tu tienda sigue vendiendo. No hay pantalla de rescate ni caída. El dueño se entera semanas después, y casi siempre por la vía más cara:
- El banco o la pasarela detecta un patrón de fraude y bloquea la cuenta de comercio.
- Llegan chargebacks (contracargos) de clientes cuyas tarjetas se usaron en otro sitio.
- Una auditoría PCI encuentra el skimmer — y entonces ya hay que notificar.
Y ojo: el spam SEO o el aviso de «sitio peligroso» de Google que sí se ven a veces conviven con un skimmer que no se ve. Que Google no marque tu web no significa que el checkout esté limpio.
Cómo entran
Casi nunca por un exploit exótico. Los tres caminos habituales:
- Credencial robada. El clásico: un infostealer roba la contraseña de administración (del dueño, de la agencia o de un proveedor) desde un equipo infectado, y el atacante entra con un login legítimo. Sin fuerza bruta, sin ruido.
- Plugin, módulo o tema vulnerable. Una extensión desactualizada o nulled da el punto de entrada para inyectar el skimmer.
- Cadena de suministro. Un script de terceros que ya cargas (un chat, un widget, una analítica) se compromete río arriba, y el skimmer entra «por la puerta que tú abriste».
La defensa que de verdad funciona
La medida más eficaz es de arquitectura, no de parche: que la tarjeta nunca toque tu página. Con una pasarela de campos alojados (Stripe Elements, los iframes de la mayoría de pasarelas) o de redirección (Redsys y similares, que llevan al cliente a la página del banco), el número de tarjeta se introduce en un iframe del proveedor de pago o en el dominio del banco — fuera del DOM que un skimmer JavaScript puede leer. Es la razón por la que, en incidentes reales que hemos analizado, tiendas con el cargador del skimmer ya presente no llegaron a filtrar ni una sola tarjeta: no había nada que leer.
Sobre esa base, capas complementarias:
- CSP (Content-Security-Policy): restringe a qué dominios puede tu página enviar datos y de dónde puede cargar scripts. Un skimmer que intenta exfiltrar a un dominio no autorizado se bloquea (y en modo report, te avisa).
- SRI (Subresource Integrity): ancla cada script de terceros a un hash; si el script cambia río arriba, el navegador lo rechaza.
- Integridad de ficheros en el servidor: vigila cambios no autorizados en el código del checkout (el skimmer de servidor).
- Monitorización del checkout: comparar periódicamente qué scripts se cargan de verdad en la página de pago frente a una línea base conocida.
- PCI DSS 4.0 ya lo exige de forma explícita: los requisitos 6.4.3 (gestionar y justificar los scripts de la página de pago) y 11.6.1 (detectar cambios no autorizados en la cabecera y el contenido de la página de pago) están pensados justo contra el e-skimming.
Cómo detectarlo
Desde fuera, sin acceso al servidor, se gana mucha señal: enumerar los scripts que carga el checkout y ver si alguno apunta a un dominio que no reconoces, comprobar la CSP, y contrastar lo que ve un navegador con lo que ve un bot. Desde dentro: integridad de ficheros, revisión del código del checkout, y los logs de la pasarela. Una primera comprobación de superficie —cabeceras, TLS, scripts, reputación— la puedes hacer gratis con nuestro escáner; no sustituye a una revisión del checkout, pero te dice si hay banderas rojas evidentes.
Si administras una tienda concreta, tenemos guías específicas: Magecart en Magento, detectar un skimmer de tarjetas (formjacking) y qué hacer si robaron tarjetas en tu PrestaShop.
Qué hacer si ya te pasó
Un skimmer no se «limpia» borrando un fichero. La respuesta correcta es de DFIR:
- Preserva la evidencia antes de tocar nada: el cómo y el alcance del robo importan más que la prisa.
- Avisa a tu pasarela/banco: hay obligaciones de notificación, y cuanto antes se contenga el fraude, menor el daño.
- Cierra el vector, no solo el síntoma: rota credenciales (el infostealer sigue teniendo la vieja), activa 2FA y averigua CÓMO entraron — si no, vuelve.
- Según tu volumen, puede aplicar una investigación forense PCI formal.
El resumen honesto
Magecart es rentable precisamente porque es silencioso: no rompe nada visible, monetiza cada pago y el dueño se entera tarde. La buena noticia es que la defensa más fuerte es también la más fácil de razonar — saca la tarjeta de tu página — y el resto es vigilancia. Si vendes online y no sabes con certeza si tu checkout maneja la tarjeta en tu propio DOM o en el del proveedor de pago, esa es la primera pregunta que deberías responder hoy.
PathSentinel — investigación y seguridad web para pymes y e-commerce. Un milímetro más.
