Hackeo silencioso en WordPress: cómo detectar si pierdes ventas

8 min de lectura

"Todo está funcionando bien". Esto es lo que muchos dueños de negocios piensan cuando echan un vistazo a su página, navegan un poco, lo ven todo en orden y no aparece ningún aviso de "hackeado" en la pantalla. Pero hace unos días me llamó un cliente para contarme un problema bastante distinto. Su web funcionaba bien, los clientes llegaban, los pedidos se realizaban con normalidad…

El problema apareció al revisar la contabilidad: las ventas se completaban, pero el dinero no siempre llegaba a su cuenta de Stripe. Cuando me llamó para que revisara la configuración de WooCommerce y Stripe, él ya había echado un vistazo y no había visto nada raro. ¿Qué estaba fallando realmente?

⚡ TL;DR: Resumen para impacientes

  • Lo visual no garantiza seguridad: que la web cargue bien no significa que esté limpia.
  • Los ataques son automatizados: los bots buscan vulnerabilidades en plugins obsoletos, no atacan a personas concretas.
  • El objetivo es el silencio: los ataques más dañinos son los que no se ven a simple vista.
  • Prevenir cuesta menos que reparar: mantener tu web al día es infinitamente más barato que solucionar una brecha y recuperar ventas perdidas.
Tabla de contenidos

El síntoma: las ventas se completan, pero el dinero no llega

Mi cliente estaba vendiendo a través de su web con normalidad, tenía ventas como siempre. Pero al gestionar los pedidos se dio cuenta de que algunos no se completaban del todo, no se actualizaban correctamente y que, aunque las ventas seguían entrando, esos ingresos no llegaban a Stripe como en otras ocasiones.

Por eso me contactó: quería que revisara la configuración de WooCommerce y Stripe para entender por qué no estaba funcionando correctamente. Él ya había echado un vistazo y lo había visto todo en orden. ¿Qué era exactamente lo que estaba fallando en su configuración?

Un caso más común de lo que parece: la web que "iba sobre la marcha"

Aunque esta situación pueda parecer rara, es mucho más frecuente de lo que pensamos. Hay muchas webs sin mantenimiento, con plugins y temas desactualizados, que se actualizan de vez en cuando o simplemente "cuando hay tiempo" — porque mientras todo siga funcionando, parece que todo está bien. Sin embargo, cada día aparecen miles de vulnerabilidades nuevas, y si no se actualizan la web y los plugins a tiempo, se está poniendo en riesgo todo el negocio sin saberlo.

No, este no es un caso aislado. Según datos de Patchstack, prácticamente todas las vulnerabilidades de WordPress (un 97%) tienen su origen en plugins y temas, no en el núcleo de WordPress — que, dicho sea de paso, es bastante seguro por sí solo. El problema aparece cuando esos plugins se instalan y se olvidan: de hecho, dos de cada tres sitios comprometidos tenían plugins desactualizados en el momento de sufrir la brecha.

Y aquí viene lo más importante para entender lo que le pasó a mi cliente: la mayoría de estos ataques no son dirigidos. Son bots que rastrean internet constantemente buscando patrones muy concretos — una versión de un plugin sin actualizar, una configuración débil — y cuando la encuentran, entran. No fue "mala suerte" ni un ataque personalizado. Fue, simplemente, una puerta que llevaba tiempo abierta.

Qué encontramos al revisar el sitio

Empecé revisando la configuración de WooCommerce y Stripe, tal y como me había comentado el cliente, y en un primer vistazo todo parecía correcto. Revisé copias de seguridad de días anteriores, comparé archivos… en principio, todo estaba en orden.

Hasta que me fijé en el iframe de Stripe: la tipografía tenía algo distinto al resto de iframes de la página, un detalle mínimo que a simple vista casi pasa desapercibido. Al revisar el código con el inspector del navegador, encontré algo que no tenía que estar ahí: código en ruso, oculto dentro del iframe. ¿Qué hacía ese fragmento? Capturaba los datos de los clientes mientras mostraba una interfaz visualmente idéntica a la de Stripe.

Por qué era casi imposible detectarlo a simple vista

Un cambio de tipografía de un par de píxeles en un iframe de pago es exactamente el tipo de detalle que el 99% de los usuarios —y hasta muchos desarrolladores— nunca llegan a notar. "Ver" una web es fijarse en si carga, si se ve bien y si el proceso de compra termina con un mensaje de confirmación. "Inspeccionarla" es otra cosa: es abrir las herramientas de desarrollador, revisar qué código se está ejecutando realmente en el navegador y comparar ese código con lo que debería estar cargando la pasarela de pago original.

La mayoría de los propietarios de una tienda online nunca llegan a ese segundo paso, y no tienen por qué saber hacerlo — para eso existe el mantenimiento profesional. El problema es que un atacante lo sabe, y por eso este tipo de código se diseña para pasar el filtro más exigente de todos: el ojo humano mirando una pantalla que funciona con normalidad.

Un hackeo silencioso no busca romper tu web. Busca que sigas creyendo que todo funciona mientras el dinero de tus clientes va a otro sitio.

El proceso de limpieza y recuperación

Lo primero y fundamental en estas situaciones, antes de limpiar nada, es cerrar la web para poner a salvo a los clientes y evitar que se sigan robando sus datos. Una vez la web está en mantenimiento, hay que identificar el código malicioso — que casi nunca es un fichero aislado y fácil de encontrar, hay que revisar todo bien hasta dar con él.

La lección: el mantenimiento no es un gasto, es un seguro

El coste de este problema para el cliente no fue solo el dinero de las ventas que fueron a parar al atacante mientras el código estuvo activo. Fue también el tiempo perdido gestionando la crisis, las llamadas de clientes confundidos y el impacto directo en la confianza de su marca.

Cuando echamos números, la pérdida económica de solo unos días de brecha superaba con creces lo que habría supuesto contratar un servicio de mantenimiento web profesional durante varios años.

Un mantenimiento no es simplemente "darle a actualizar plugins cuando nos acordamos". Es contar con monitorización constante, copias de seguridad limpias, parches de seguridad al día y revisiones de código para evitar que una puerta se quede abierta. En definitiva: el mantenimiento no es un gasto prescindible, es la póliza de seguro que evita que tu negocio se detenga.

Conclusión: qué aprender de este caso

Si algo debes llevarte de esta historia, son estas cuatro ideas:

  1. Lo visual no garantiza seguridad: que la web cargue bien no significa que esté limpia.
  2. Los ataques son automatizados: los bots buscan vulnerabilidades en plugins obsoletos, no atacan a personas concretas.
  3. El objetivo es el silencio: los ataques más dañinos son los que no se ven a simple vista.
  4. Prevenir cuesta menos que reparar: mantener tu web al día es infinitamente más barato que solucionar una brecha y recuperar ventas perdidas.

¿Tu web también "va sobre la marcha"?

Si no recuerdas cuándo fue la última vez que actualizaste los plugins de tu sitio, o si nunca has revisado si tu pasarela de pago es 100% segura, no esperes a notar que los ingresos dejan de llegar a tu cuenta.

¿No estás seguro de si tu web está realmente protegida? Pásale mi Web Audit Suite y te digo exactamente qué está pasando bajo el capó de tu tienda.

Desarrollador de páginas web WordPress

Soy Unai, tu Desarrollador WordPress de confianza

Como desarrollador especialista en mantenimiento y seguridad WordPress, monitorizo tu web, mantengo plugins y núcleo al día, y reviso el código de tus pasarelas de pago para que un hackeo silencioso nunca te cueste una venta sin que lo sepas.

Solicita presupuesto sin compromiso

¿Hablamos?

Si estás aquí es porque estás interesado en tener tu propia página web y puede que estés pensando en que te ayude y sea tu diseñador web