El síntoma: solo aparece el formulario de tarjeta
De un día para otro, sin haber instalado ni actualizado nada, en la página de pago de tu tienda PrestaShop desaparecen los métodos de pago habituales (PayPal, transferencia bancaria, Bizum, etc.) y solo se muestran las casillas para introducir el número de tarjeta, la fecha de caducidad y el CVV.
Aunque lo primero que se suele sospechar es un fallo del módulo de checkout o un problema de caché o de restricciones de pago, si los módulos de pago siguen instalados y activos en el back office y el problema persiste tras descartar la configuración, la causa más probable es una modificación no autorizada de archivos de la tienda: alguien ha inyectado código malicioso que altera la pantalla de pago.
Por qué ocurre y por qué es grave
Este tipo de ataque, conocido como web skimming, funciona así:
Se introduce código oculto en un archivo JavaScript (u otro archivo) que utiliza la página de compra.
Ese código altera el proceso de pago y muestra un formulario de tarjeta preparado para capturar los datos bancarios de tus clientes.
Suele ir acompañado de una puerta trasera que permite al atacante modificar archivos de la web sin pasar por el panel de administración, por lo que puede reinfectar la tienda aunque limpies un archivo concreto.
Debe tratarse como una incidencia de seguridad grave: aunque no se pueda confirmar el robo de datos, tampoco se puede descartar.
Cómo confirmarlo
Comprueba en el back office que los módulos de pago siguen instalados y activos. Si lo están pero no aparecen en el checkout, es un indicio claro.
Desactiva temporalmente el módulo de checkout (por ejemplo, un módulo de one page checkout): si al desactivarlo reaparecen los métodos de pago, el código inyectado está interfiriendo en ese flujo.
En el Administrador de archivos de cPanel, ordena por fecha de modificación y busca archivos JavaScript o PHP modificados recientemente sin tu intervención, código ofuscado (base64, eval) o ficheros con nombres extraños.
Avisa a soporte: podemos revisar los registros del servidor para confirmar accesos no autorizados y el periodo de la intrusión.
Qué hacer para recuperar la tienda
Restaura una copia de seguridad limpia con la herramienta JetBackup de tu cPanel, eligiendo una fecha claramente anterior a la intrusión.
Si quieres conservar los pedidos y clientes recientes, puedes restaurar solo los archivos (sin la base de datos). Si restauras también la base de datos, se perderán los pedidos y clientes posteriores a la fecha de la copia.
Cambia todas las contraseñas: cPanel, FTP, base de datos y usuarios administradores de la tienda.
Revisa los usuarios administradores del back office y elimina los que no reconozcas.
Si prefieres que hagamos nosotros la restauración a una fecha determinada, es un trabajo con coste adicional; consúltanos por ticket.
La restauración no soluciona la causa raíz
Restaurar la copia deja la web como estaba, pero no corrige la vulnerabilidad por la que entraron. Si tu tienda usa una versión de PrestaShop obsoleta (por ejemplo, la rama 1.6, que ya no recibe ni parches de seguridad), los atacantes pueden volver a entrar al día siguiente.
La solución de fondo es actualizar la tienda a una versión moderna de PrestaShop con soporte y parches de seguridad. Ten en cuenta también que los módulos comerciales de terceros quedan fuera de nuestro soporte: para problemas propios del módulo debes acudir al desarrollador del mismo.
