Tratar con intentos excesivos de “cardado”

34

Actualmente estamos configurados utilizando Magento en una pila LAMP para nuestra plataforma de comercio electrónico. Hace uno o dos meses comenzamos a notar muchos intentos de cardado en nuestro sitio web. Todos los intentos de transacciones serían por una pequeña cantidad, solo para verificar si su tarjeta de crédito es válida. A medida que uno es rechazado, generalmente lo intentan nuevamente, cambiando el número de la tarjeta en 1 o 2 números. Estos intentos suceden muy rápidamente, en sucesión. Como puede imaginar, esto se suma rápidamente en nuestro sistema de procesadores de tarjetas de crédito y, a menudo, nos apagamos por un breve período de tiempo para evitar más intentos.

La mayoría de los ataques procedían de fuera de los EE. UU. y somos una empresa exclusiva de EE. UU., por lo que utilizamos mod_geoip para denegar todo el tráfico desde fuera del país. Esto ha ayudado con los ataques masivos, pero todavía conseguimos que las personas carden desde los orígenes de los EE. UU. Estoy realmente interesado en saber lo que está pasando aquí. ¿Cómo configuran los scripts para intentos masivos de órdenes como esta? ¿Hay realmente algo más que pueda hacer para aplastar esto? ¡Cualquier información sobre este tipo de ataques es apreciada!

  

Esta pregunta fue Cuestión de la semana sobre seguridad de TI .
  Lea el entrada de blog del 14 de septiembre de 2012 para obtener más detalles o envíe su propia Pregunta de la semana.

    
pregunta jkphl 29.08.2012 - 15:50
fuente

8 respuestas

24

Dado que tiene una fuerte verificación de nombre / dirección, etc., es muy probable que se conozca que su sitio devuelve valores diferentes para diferentes tipos de errores. Lo mejor que puede hacer para desalentar la prueba de la tarjeta es asegurarse de que las transacciones rechazadas proporcionen el mismo resultado, independientemente de la razón por la que el procesador le informó que se rechazó.

    
respondido por el Jeff Ferland 29.08.2012 - 18:32
fuente
21

Puede usar un mecanismo " CAPTCHA " para limitar los ataques de fuerza bruta. Dependiendo del producto, podría configurar el CAPTCHA para impedir que un usuario envíe otra transacción después de varios intentos fallidos; y o, introduzca un límite de tiempo (por ejemplo, 15 ~ 20 segundos) entre transacciones.

Si es posible, también puede probar un mecanismo de autenticación para sus usuarios y solo permitir que cuentas específicas realicen transacciones.

    
respondido por el w.c 29.08.2012 - 16:49
fuente
9

Si sus atacantes están usando números de cuenta secuenciales, entonces es un regalo que puede usar para filtrar intentos. Si alguien intenta 001, luego 002, entonces 003 es una buena suposición de que están cardando y luego puede filtrar los intentos desde esa dirección IP.

El problema es que los atacantes inteligentes luego modificarán sus ataques aleatorizando los números de tarjeta que intentan, o lo más probable es que aleatoricen un bloque de números, por lo que tendrá que buscar otros signos. Si construye una base de datos de direcciones IP y solicita, puede buscar estos signos como un gran número de transacciones de pequeño valor, o usar un algoritmo para detectar intentos de transacciones en bloque.

O, por supuesto, los cardadores pueden adaptarse: podrían comenzar a usar múltiples servidores para intentos, o intentar transacciones más grandes, menos intentos por hora, etc. Sin embargo, tendrán que adaptarse para seguir usando su sistema, y algunos de ellos pueden no ser capaces de hacerlo, o no querer molestar. Por lo menos tendrán que trabajar para ello.

    
respondido por el GdD 29.08.2012 - 16:21
fuente
7

No creo que a esta persona (personas) le importe si obtienen números válidos o no, ya que, como usted dice, también está validando direcciones, y lo intentan de forma secuencial. Ser bloqueado por el procesador CC podría ser realmente un objetivo , especialmente si son sus competidores o lo están haciendo por lulz.

Hay un par de opciones que puedo agregar a la lista: Puede asignar al azar el nombre del campo de entrada y almacenar el nombre del campo en la sesión o en algún lugar seguro, como este si usa PHP:

<input type = "text" name = "ccnum" />

a:

<input type = "text" name = "<?php echo $ccFieldName; ?>" />

Además, puede forzar a sus usuarios a habilitar JavaScript (aproximadamente el 96% de los usuarios tienen habilitado JS). Es probable que su (s) abusador (es) esté usando una herramienta de línea de comandos como wget para intentar golpear su servidor, y si es así, no podría analizar JS. Una vez que haya habilitado Javascript, puede agregar su campo de entrada para la tarjeta de crédito una vez que su documento esté listo, con un nombre aleatorio como el de arriba para que fracasen todos los intentos actuales de automatizar solicitudes.

    
respondido por el ajacian81 30.08.2012 - 00:00
fuente
5

Cuando esto le estaba sucediendo a una organización que conozco, le dijeron a su procesador que rechazara todos los cargos por debajo de un determinado umbral. Esto detuvo completamente las transacciones de bajo valor, y los cardadores rápidamente dejaron su sitio solo.

Si aún no ha hecho nada al respecto, considere comunicarse con su oficina local del FBI. Pueden estar interesados en el caso. El proceso de "degustación" de la cuenta posiblemente proviene de algún lugar rastreable.

    
respondido por el John Deters 09.09.2012 - 21:49
fuente
3

Una opción a considerar sería introducir un retraso artificial en el proceso de verificación de la tarjeta de crédito. A los usuarios legítimos no les debe importar un ligero retraso en el proceso, pero debería obstaculizar significativamente la utilidad de su sitio para los guiones de cardado.

    
respondido por el Winston Ewert 29.08.2012 - 20:21
fuente
3

Una vez que identifique una secuencia sospechosa de solicitudes (presumiblemente por una coincidencia de patrón en tiempo real en transacciones fallidas recientemente). Primero, rechace automáticamente todas las solicitudes posteriores que coincidan por un período de tiempo (por lo menos horas). Esto eliminará la carga en su sistema de procesamiento de transacciones real y dejará de suministrar al culpable cualquier información útil, de hecho, le proporcionará información errónea, ya que las solicitudes válidas también se rechazarán. Reduzca la velocidad de su respuesta para limitar la tasa de solicitudes nuevas.

    
respondido por el ddyer 29.08.2012 - 21:48
fuente
0

Hemos tenido el mismo problema aquí. Decidimos que la forma más rápida y fácil de usar era implementar una extensión moderna de Recaptcha ('No soy un robot'). Nos decidimos por la extensión Google Recaptcha de Yireo porque fue rápida y fácil de implementar ( enlace ), pero También puede implementar su propio aquí ( enlace ).

Para nuestra implementación de Yireo, utilicé la configuración de 'Registro de clientes' y 'Facturación de pago de una página' como 'Sí', todos los demás se configuraron como 'No'. Hay un problema que noté con Yireo cuando usé la configuración de 'Inicio de sesión de una página' como 'Sí', luego nuestros usuarios registrados tenían problemas para iniciar sesión en sus cuentas (por alguna razón no se mostraba recaptcha, y cuando intentaron para iniciar sesión indicaría 'recaptcha no válido' en un bloque de mensajes). Entonces, cambié esa configuración a 'No', y ahora los usuarios normales pueden iniciar sesión y la tarjeta también ha dejado de hacer ping a nuestro procesador de pagos. Todos están felices ahora.

Una nota sobre la extensión de Yireo. Utiliza etiquetas cortas de PHP (tontas), por lo que si usa una versión de PHP inferior a 5.4, deberá activar la compatibilidad de etiquetas cortas en su PHP.ini. ¡Asegúrese de leer los requisitos de la extensión Yireo antes de la implementación!

EDITAR: Recaptcha no hace nada para prevenir los ataques. Aparentemente, es muy fácil engañar al sistema porque la recaptcha solo usa una cookie en caché después del primer intento, por lo que los bots pueden ejecutarse después de eso simplemente usando la cookie. Mal diseño de Google. Se supone que Recaptcha previene los bots, pero no puede en su estado actual.

    
respondido por el lanrosta 03.08.2015 - 19:24
fuente

Lea otras preguntas en las etiquetas