¿Cómo detener el ataque de fuerza bruta que está DDoSing nuestro servidor?

2

Tenemos una aplicación web y eso ha sido frecuentemente golpeado con un nombre de usuario y contraseña aleatorios para encontrar un intento de inicio de sesión exitoso. Presentamos CAPTCHA, generación de token al azar, pero eso no impidió que el pirata informático golpeara nuestro servidor web. Nuestra CPU de servidor web alcanza el 99% de nivel de uso y ralentiza el sitio web para usuarios genuinos.

Necesitamos saber si hay alguna forma de dejar de golpear el servidor web (tal vez en el lado del cliente). No sé si es posible. ¿Alguien puede decir cómo manejar esto?

Información adicional: el pirata informático llega a nuestro sitio desde 1000 IP diferentes, bloqueamos todos aquellos, pero siempre viene con un nuevo conjunto de IP. Además, tiene millones de nombres de usuario y contraseñas robadas de algún sitio web y está usando las que están en nuestro sitio.

    
pregunta whoami 24.03.2017 - 07:37
fuente

3 respuestas

10

Lo que tienes no es tanto un problema de fuerza bruta sino un problema de carga. Específicamente, tienes que pensarlo como un escenario DDoS. Múltiples direcciones IP que llegan a su servidor y consumen recursos.

Las protecciones a nivel de cuenta no van a hacer nada, necesita manejar el ataque en el nivel de tráfico.

Los servicios de mitigación DDoS son exactamente lo que necesita, pero dependiendo de la complejidad del ataque, pueden ser demasiado costosos. Puede intentar trabajar con su empresa de alojamiento o ISP para ver qué pueden hacer.

    
respondido por el schroeder 24.03.2017 - 08:39
fuente
5

Busque herramientas como fail2ban que le permiten limitar el número de intentos de inicio de sesión desde una sola dirección IP. Prohibir automáticamente una IP después de 3 intentos fallidos de inicio de sesión durante 1 hora reducirá efectivamente el número de intentos de contraseña de 1000 IP a menos de 1 por segundo, sin afectar demasiado a sus usuarios legítimos.

    
respondido por el Dmitry Grigoryev 24.03.2017 - 08:54
fuente
2

Lo que necesita es combinar varias soluciones para lograr los resultados deseados. Como lo señalaron Dmitry y schroeder, debe implementar este servidor en un entorno de carga equilibrada para reducir la carga del servidor único. A partir de ahí, también debe usar algo como Fail2Ban para evitar el abuso excesivo de una sola IP. Fail2Ban fácilmente podría revisar sus registros de acceso de Apache / Nginx en busca de fallos de autenticación para bloquear esos IP's.

Si el ancho de banda no es tan preocupante como la carga general, simplemente no se puede usar Fail2Ban para bloquear esas conexiones entrantes que podría ser suficiente para reducir la carga en el servidor.

    
respondido por el Andrew 24.03.2017 - 15:35
fuente

Lea otras preguntas en las etiquetas