WordPress Hosting

ataque de carding tarjetas a tienda online wordpress woocommerce

Qué es un ataque de tarjetas, carding o tarjeteo y cómo protegerse

Si en tu tienda online aparecen repentinamente montones de pequeños pedidos, aunque sean fallidos, estás recibiendo un conocido como ataque de carding o de tarjeteo, están intentando robar usando tu tienda online, y debes tomar medidas urgentemente para evitarlo.

¿Qué es un ataque de carding?

Un ataque de tarjetas o carding ocurre cuando hackers usan datos de tarjetas robadas para hacer compras pequeñas en tu tienda online, como en WooCommerce, para ver si las tarjetas funcionan.

Los atacantes, conocidos como «carders», suelen emplear bots automatizados para probar múltiples combinaciones de datos de tarjetas (número, fecha de vencimiento, CVV, etc.) en pequeñas transacciones, con el objetivo de identificar tarjetas válidas que luego usan para compras mayores, compras de tarjetas de regalo o reventa en la web oscura.

Normalmente funcionan en 4 pasos o fases:

  1. Fase de obtención de datos: Los datos de tarjetas se obtienen mediante phishing, skimming, brechas de datos, malware (como keyloggers) o compras en mercados clandestinos.
  2. Fase de validación: Los carders usan bots para realizar pequeñas transacciones (a menudo de bajo valor para evitar sospechas) en sitios de comercio electrónico.
  3. Fase de explotación: Una vez validadas, las tarjetas se usan para compras fraudulentas o se venden.
  4. Fase de monetización: Los bienes comprados (como tarjetas de regalo) se revenden o convierten en efectivo a través de criptomonedas u otros medios.

¿Cómo se si estoy recibiendo un ataque de carding

Lo puedes notar si ves muchos intentos de pago fallidos, especialmente desde la misma IP, múltiples pequeños pagos, de 1 o 2 euros, o si tu plataforma de pago (como Stripe o PayPal) te avisa de actividad sospechosa.

ataque carding

Por resumir, estos serían los síntomas de un ataque de carding:

  • Múltiples transacciones fallidas: Observas un aumento inusual de intentos de pago rechazados en tu pasarela de pago, a menudo desde la misma IP o con patrones similares.
  • Pedidos pequeños y repetitivos: Numerosos pedidos de bajo valor (por ejemplo, 1€) con diferentes datos de tarjetas, pero desde la misma IP o con información de facturación similar.
  • Pedidos con datos extraños o incoherentes (emails falsos, direcciones raras).
  • Múltiples tarjetas con el mismo BIN: Varias transacciones con tarjetas que comparten el mismo número de identificación bancaria.
  • Comportamiento inusual: Incremento de tráfico en la página de pago (por ejemplo, solicitudes a ?wc-ajax=checkout en WooCommerce) sin que se completen pedidos legítimos.
  • Alertas de la pasarela de pago: Tu pasarela de pago (como Stripe o PayPal) puede avisarte sobre actividades sospechosas o desactivar temporalmente tu cuenta.
  • Aumento de devoluciones de cargo: Clientes legítimos reportan cargos no autorizados, lo que indica que sus tarjetas fueron probadas en tu sitio.
  • Errores de transacciones de distintas IPs/países en minutos.

¿Qué hago si estoy recibiendo un ataque de carding?

Si estás recibiendo un ataque, las acciones inmediatas incluyen:

  1. Identifica y bloquea el tráfico malicioso:
    • Revisa los logs de tu servidor o pasarela de pago para identificar IPs sospechosas o patrones de ataque (por ejemplo, múltiples solicitudes a ?wc-ajax=checkout).
    • Usa un plugin de seguridad, utilidades de tu hosting para bloquear IPs manualmente o configura reglas en Cloudflare para bloquear tráfico de ciertas regiones o con comportamiento anómalo.
    • Activa un CAPTCHA de inmediato, por ejemplo de Turnstile, para frenar bots automatizados.
  2. Avisa a tu pasarela de pago:
    • Contacta con tus pasarelas de pagos (Stripe, PayPal, etc.) para informarles del ataque. Pueden ayudarte a mitigar el problema y reactivar tu cuenta si fue suspendida, lo que a veces es incluso el primer aviso (esperemos que no).
    • Pregunta si ofrecen herramientas antifraude adicionales, como filtros basados en comportamiento.
  3. No captures fondos sospechosos:
    • Si usas autorización/captura, no captures pagos de transacciones sospechosas. Emite reembolsos inmediatos para evitar devoluciones de cargo.
  4. Refuerza la seguridad:
    • Activa un cortafuegos si aún no lo tienes.
    • Instala plugins antifraude y revisa la configuración de tu pasarela de pago.
    • Cambia contraseñas del panel de WordPress y habilita 2FA.
    • Si usas Cloudflare activa el modo «Under attack» para evitar el acceso a la mayoría de bots, incluidos los carders.
  5. Monitoriza y analiza:
    • Usa herramientas de analítica, como Google Analyticis, para monitorizar el tráfico en tiempo real.
    • Revisa los pedidos en WooCommerce para identificar patrones fraudulentos (por ejemplo, múltiples pedidos con la misma dirección de correo o IP).
  6. Comunica con tus clientes:
    • Si el ataque afecta a clientes legítimos (por ejemplo, retrasos en el procesamiento de pagos), infórmales para mantener la confianza.
    • Educa a tus clientes sobre prácticas seguras, como no compartir datos bancarios en sitios no fiables.

Cómo impedir ataques de carding en tu tienda online

No esperes a recibir un ataque de carding, son muy jodidos y te aseguro que si te pasa será un día (o más) que no olvidarás fácilmente, pero sobre todo porque un ataque de carding puede comprometer tu comercio online incluso a futuro, poniendo en entredicho tu fiabilidad como tienda online, haciéndote perder la confianza de los clientes.

Para empezar, vamos a ver unas cuantas medidas generales, genéricas si prefieres, de cómo protegerte y proteger a tus clientes de ataques de carding

Para proteger tu tienda online basada en WordPress y WooCommerce, puedes implementar una combinación de configuraciones, plugins, reglas de seguridad y buenas prácticas. A continuación, se detallan varias estrategias:

Configuraciones y buenas prácticas generales para evitar ataques de carding

  • Usa HTTPS: Asegúrate de que tu sitio use un certificado SSL para cifrar los datos de los clientes.
  • Vigila las transacciones: Revisa regularmente los informes de tu pasarela de pago y WooCommerce para detectar anomalías.
  • Usa tarjetas virtuales o monederos: Anima a los clientes a usar métodos de pago como Apple Pay o Google Pay, que generan tokens únicos por transacción.
  • Cumple con el estándar PCI: Asegúrate de que tu sitio cumple con el estándar de seguridad de datos del sector de pagos con tarjeta para evitar sanciones.
  • Usa pasarelas de pago seguras con autenticación fuerte: Implementa pasarelas que soporten 3D-Secure (como Verified by Visa o Mastercard SecureCode), que añaden una capa de autenticación para el cliente. Por ejemplo, Stripe y PayPal ofrecen estas opciones. 3D-Secure transfiere parte de la responsabilidad del fraude al proveedor de la tarjeta.
  • Activa comprobaciones de coincidencias de CVV y direcciones de facturación: Configura tu pasarela de pago para verificar la dirección de facturación (AVS) y el código CVV, lo que dificulta el uso de tarjetas robadas.
  • Actualiza regularmente: Mantén WordPress, WooCommerce, temas y plugins actualizados para corregir vulnerabilidades. Plantéate contratar un servicio de mantenimiento web especializado en tiendas online.
  • Revisa las transacciones: Si usas el método de autorización/captura, revisa los pedidos antes de capturar fondos. Si sospechas de carding, emite reembolsos en lugar de esperar devoluciones, lo que te supondrán cargos adicionales en las pasarelas e incluso nuevos bloqueos de cuenta, por ejemplo en Stripe.
  • Activa autenticación en dos pasos (2FA): Protege el acceso al escritorio de WordPress con 2FA para evitar que los atacantes comprometan tu sitio.

Configuraciones en el servidor para evitar ataques de carding

  • Limitación de velocidad (rate limiting): Configura tu servidor (por ejemplo, con Nginx o Apache) para limitar la frecuencia de solicitudes a variables (endpoints) como ?wc-ajax=checkout. Esto requiere ayuda de tu proveedor de hosting.
  • Firewall de aplicaciones web (WAF): Usa un WAF como el de Cloudflare (luego lo vemos más en detalle) para filtrar tráfico malicioso.

Configuraciones en WooCommerce para evitar ataques de carding

También hay algunos ajustes que puedes hacer en WooCommerce para evitar, o por lo menos dificultar, los ataques de carding:

  1. En Ajustes > Cuentas y privacidad > Finalizar compra desactiva el pago como invitado y activa el inicio de sesión durante el pago, que son justo los ajustes contrarios a los que trae por defecto WooCommerce.
  2. En Ajustes > Productos > General > Comportamiento de añadir al carrito, desactiva la opción de Redirigir a la página del carrito tras añadir productos correctamente, para evitar todo automatismo que ayude a los bots.
  3. Define las páginas de términos y condiciones y política de privacidad para obligar a los bots de carding a realizar procesos más complejos al tener que marcar las casillas obligatorias antes de lanzar el pago.
  4. Activa la atribución de los pedidos, pues de esta manera puedes identificar el origen de los posibles ataques, no solo de carding.

Plugins WordPress para evitar ataques de carding

Hay varios plugins, tanto gratuitos como de pago, que pueden ayudar a evitar tanto ataques de carding, además de otros intentos de fraude. Estos son los más interesantes:

  • Anti-Fraud for WooCommerce (123 €) – Completo plugin premium anti-fraude con protección contra ataques de tarjetas y otros, con todo tipo de ajustes de bloqueos varios.
  • Yith WooCommerce Anti-Fraud (99 €) – Solución profesional a ataques de carding y muchos otros, con automatización de comprobaciones, bloqueos y análisis de riesgos.
  • SaferCheckout (gratis) – Completo y gratuito plugin anti-fraude en WooCommerce con montones de opciones de verificación y protección.
  • FraudLabs Pro (gratis) – Versión completa, pero hasta 500 detecciones, de un completo plugin de detección de fraudes para WooCommerce.
  • Un buen plugin de seguridad – Elige tú el plugin de seguridad perfecto, pero que te ayude a proteger tu web de todo tipo de amenazas.
  • Cualquier plugin de Turnstile para WordPress, aplicado a la página de pago, puede frenar de golpe a los bots de carding sin necesidad de nada más.

Hay otros muchos, teóricamente gratuitos, que en realidad son versiones de prueba sin funcionalidad alguna, o muy incompletos.

Regla de .htaccess para protegerte de ataques de carding

Puedes añadir reglas en el archivo .htaccess para restringir el acceso a variables (endpoints) críticas de WooCommerce, como la página de pago.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{QUERY_STRING} wc-ajax=checkout [NC]
RewriteCond %{REQUEST_URI} !wp-admin [NC]
RewriteCond %{HTTP_COOKIE} !wordpress_logged_in [NC]
RewriteRule ^(.*)$ - [R=429,L]
</IfModule>

Esta regla devuelve un error 429 (Too Many Requests) si se realizan demasiadas solicitudes POST a la variable de pago de WooCommerce si el usuario no está conectado a WordPress. Esto puede frenar bots automatizados.

Códigos y funciones WordPress para protegerte de ataques de carding

Hay algunos fragmentos de código que podemos añadir a nuestra web para reforzar la seguridad y tratar de impedir ataques de carding:

Limitar intentos de pago por IP

Esta función limita a 5 los intentos de pago por IP en una hora, mostrando un mensaje de error si se supera el límite:

add_action('woocommerce_checkout_process', 'limit_checkout_attempts_by_ip');
function limit_checkout_attempts_by_ip() {
$ip = $_SERVER['REMOTE_ADDR'];
$transient_name = 'checkout_attempts_' . md5($ip);
$attempts = get_transient($transient_name);

if ($attempts === false) {
set_transient($transient_name, 1, 3600); // 1 hora
} elseif ($attempts >= 5) { // Límite de 5 intentos por hora
wc_add_notice(__('Demasiados intentos de pago. Por favor, prueba de nuevo más tarde.', 'woocommerce'), 'error');
return;
} else {
set_transient($transient_name, $attempts + 1, 3600);
}
}

Bloquear países de alto riesgo

Puedes impedir pagos desde países asociados con alto riesgo de fraude con un código como el siguiente:

add_filter('woocommerce_countries_allowed_countries', 'restrict_high_risk_countries');
function restrict_high_risk_countries($countries) {
$high_risk = array('XX', 'YY'); // Sustituye los XX y YY por códigos ISO de países de alto riesgo
foreach ($high_risk as $country_code) {
unset($countries[$country_code]);
}
return $countries;
}

Los códigos ISO de los distintos países los tienes en este PDF online de la agencia tributaria española.

Limitar acceso al pago solo a usuarios conectados

No es ideal para todas las tiendas, pero bloquea a todo visitante no conectado previamente con un usuario registrado en tu web:

add_action('template_redirect', 'solo_para_clientes_checkout');
function solo_para_clientes_checkout() {
if (is_checkout() && !is_user_logged_in()) {
wp_redirect(wp_login_url());
exit;
}
}

Limitar las ventas diarias de productos baratos

Otra estrategia puede ser limitar la cantidad de ventas diarias (pedidos) de productos baratos, que suelen ser los que usan los carders para sus prácticas. Con este código de Business Bloomer puedes conseguirlo:

add_filter( 'woocommerce_is_purchasable', 'ayudawp_limite_pedidos_baratos_diarios', 9999, 2 );
function ayudawp_limite_pedidos_baratos_diarios( $is_purchasable, $product ) {
// APLICAMOS SOLO A PRODUCTOS DE 1 A 5 EUROS
if ( $product->get_price() > 5 || $product->get_price() < 1 ) return $is_purchasable;

// OBTENEMOS DATOS DE PEDIDOS EXISTENTES
$all_orders = wc_get_orders(
array(
'limit' => -1,
'date_created' => date( 'Y-m-d' ),
'return' => 'ids',
)
);
$count = array();
foreach ( $all_orders as $all_order ) {
$order = wc_get_order( $all_order );
$items = $order->get_items();
foreach ( $items as $item ) {
$product_id = $item->get_product_id();
if ( $product_id ) {
$count[$product_id] = isset( $count[$product_id] ) ? $count[$product_id] + absint( $item['qty'] ) : absint( $item['qty'] );
}
}
}

// LIMITAMOS A 3 PEDIDOS POR DIA LOS PRODUCTOS BARATOS ANTES DEFINIDOS
if ( $count[$product->get_id()] >= 3 ) return false;
return $is_purchasable;
}

Bloquear temporalmente tu tienda online cuando haya demasiados pedidos fallidos

Una solución que puede parecer extrema, pero que puede evitarte muchos problemas si estás en pleno ataque de carding, es bloquear la generación de nuevos pedidos cuando la cosa se ponga dura y veas que aumentan enormemente los pedidos fallidos.

Con este código puedes bloquear la tienda si crecen desmesuradamente los pedidos fallidos:

// CONTEO DE PEDIDOS FALLIDOS LOS ULTIMOS 10 MINUTOS
function bbloomer_get_failed_orders_last_10mins() { 
$args = array(
'status' => 'failed',
'date_created' => '>' . ( time() - 10 * MINUTE_IN_SECONDS ),
'limit' => -1,
'return' => 'ids',
);
$failed_orders = wc_get_orders( $args );
return $failed_orders ? count( $failed_orders ) : 0;
}

// CUANDO FALLE EL SIGUIENTE PEDIDO SE CREA UN TRANSIENT PARA BLOQUEAR LA TIENDA
add_action( 'woocommerce_order_status_failed', 'bbloomer_monitor_failed_orders_behavior' );
function bbloomer_monitor_failed_orders_behavior( $order_id ) {
$failed_orders_count = get_failed_orders_last_10mins();
if ( $failed_orders_count >= 2 ) {
set_transient( 'bbloomer_failed_order_lock', time(), 10 * MINUTE_IN_SECONDS );
wp_mail( get_option( 'admin_email' ), 'WooCommerce Lockdown Active', 'A WooCommerce lockdown is active for 10 minutes due to a carding attack.' ); 
} 
}

// SI ESTA CREADO EL TRANSIENT IMPEDIMOS LOS PAGOS
add_filter( 'woocommerce_available_payment_gateways', 'bbloomer_disable_cc_gateway' );
function bbloomer_disable_cc_gateway( $gateways ) {
if ( get_transient( 'bbloomer_failed_order_lock' ) && isset( $gateways['stripe'] ) ) {
unset( $gateways['stripe'] );
}
return $gateways;
}

// SI ESTA CREADO EL TRANSIENT DESACTIVAMOS COMPRAS BARATAS
add_filter( 'woocommerce_is_purchasable', 'bbloomer_disable_cheap_purchases', 9999, 2 );
function bbloomer_disable_cheap_purchases( $purchasable, $product ) {
if ( $product->get_price() > 9.99 || $product->get_price() < 0.01 ) return $purchasable;
if ( get_transient( 'bbloomer_failed_order_lock' ) ) {
return false;
}
return $purchasable;
}

¿Qué hace este código?

  1. Conteo de pedidos fallidos : La función bbloomer_get_failed_orders_last_10mins()recupera todos los pedidos fallidos creados en los últimos 10 minutos y devuelve el recuento. Utiliza el recuento wc_get_orders()para obtener los pedidos según su estado y hora.
  2. Configuración de bloqueo ante múltiples fallos : Cuando se produce un fallo en un pedido, la función bbloomer_monitor_failed_orders_behavior()comprueba si ha habido al menos dos fallos en los últimos 10 minutos. De ser así, establece un bloqueo transitorio del sitio durante 10 minutos y envía un aviso por correo electrónico al administrador del sitio sobre el bloqueo.
  3. Desactivación de la pasarela de pago : si existe el transitorio, la función bbloomer_disable_cc_gateway() desactiva la pasarela de pago con tarjetas de crédito (por ejemplo, Stripe).
  4. Impedir de compras de bajo valor : La función bbloomer_disable_cheap_purchases()evita la compra de productos de bajo valor (menos de 10$) cuando el bloqueo está activo.

Cómo usar Cloudflare gratis para evitar ataques de carding

El plan gratuito de Cloudflare ofrece herramientas para mitigar ataques de carding, configurables así:

  1. Configura Cloudflare en tu sitio:
    • Regístrate en Cloudflare y añade tu dominio.
    • Cambia los DNS de tu dominio para que apunten a los servidores de Cloudflare (esto suele tardar 24 horas).
    • Configura un certificado SSL gratuito en Cloudflare para habilitar HTTPS (mejor la configuración estricta).
  2. Activa el modo de protección contra bots:
  3. Configura reglas de firewall:
    • Ve a Seguridad > Reglas de seguridad y crea reglas para proteger el endpoint de pago de WooCommerce (?wc-ajax=checkout). Ejemplo:
      • Regla: Bloquea solicitudes POST a ?wc-ajax=checkout si el número de solicitudes excede un límite (por ejemplo, 10 en 1 minuto).
      • Configuración: Usa la opción Rate Limiting (disponible en el plan gratuito con límites básicos) para restringir solicitudes por IP.
    • Bloquea IPs o países sospechosos: En Seguridad > Reglas de seguridad, crea una regla para bloquear tráfico de regiones con alto riesgo de fraude (ajústalo según tu audiencia).
  4. Activa CAPTCHAs con Cloudflare Turnstile:
    • Cloudflare Turnstile es una alternativa gratuita a reCAPTCHA. Integra Turnstile en tu página de pago usando algún plugin.
    • Configura Turnstile para que aparezca en la página de pago, lo que obliga a los usuarios a verificar que no son bots.
  5. Vigila el tráfico:
    • Usa Analítica > Analítica de seguridad en Cloudflare para identificar picos de tráfico sospechosos o solicitudes bloqueadas.
    • Revisa las IPs bloqueadas y ajústalas si es necesario para evitar falsos positivos.
  6. Optimiza la configuración de seguridad:
    • Activa el modo Under Attack (en el panel principal) si detectas un ataque activo. Esto muestra un desafío automático (como un CAPTCHA) a todos los visitantes.
    • Configura la comprobación de integridad del navegador para bloquear solicitudes de bots con comportamientos raros.

Resumiendo

Los ataques de tarjetas o carding son una práctica muy extendida de fraude online y debes, obligatoriamente, preparar tu tienda online para este tipo de prácticas ilegales, no solo porque te complican tu cómoda vida de ventas online sino porque pueden poner en riesgo tu reputación como comercio electrónico, hacerte perder clientes, incluso impedir nuevas ventas en tu Ecommerce.

Así que protege tu web contra este tipo de ataques, e informa a tus empleados de cómo actuar en caso necesario, animándoles a leer esta guía, o teniéndola a mano en la documentación importante de tu negocio.

Compartir en redes
Resumir con IA

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en las estrellas para valorarlo!

Promedio de puntuación 5 / 5. Total de votos: 11

¡Todavía no hay votos! Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!



Sobre el autor

Scroll al inicio