Se solicita [Duda] Ataque masivo L7 de POST en Nginx/HestiaCP (Bypasseando WAF y rotando Referers)

  • Autor Autor AnalyticsR
  • Fecha de inicio Fecha de inicio
AnalyticsR

AnalyticsR

Delta
Verificado
Verificación en dos pasos activada
Verificado por Binance
Precio
$10 USD
Formas de pago
  1. Transferencia bancaria
  2. Paypal
Método de entrega
Sin intermediario
Plazo para pagar
Máximo 1 día
Plazo de entrega
Máximo 1 día
Comisiones
No existen
Buenas, gente de Forobeta. Vengo a ver si me podéis echar un cable con un dolor de cabeza bastante pesado que tengo en un servidor VPS con HestiaCP y Nginx.

Tengo una web en producción que está recibiendo un ataque L7 masivo y constante a base de peticiones POST. El problema es que los bots están tirando un volumen brutal de peticiones que llegan permanentemente al servidor devolviendo un código 405 Method Not Allowed en los logs (ocupando exactamente 1823 bytes por petición).

El escenario técnico es el siguiente:
  • El dominio va protegido por Sucuri WAF, y aunque tengo las IPs de Sucuri permitidas, el botnet de alguna manera logra colar este tráfico de POST a través del proxy.
  • Los bots rotan IPs constantemente (vienen tanto desde rangos de Sucuri como por otras vías) y van cambiando el Referer en cada petición simulando webs aleatorias (Netflix, Wikipedia, Booking, GitHub, etc.), por lo que filtrar por IP individual o por dominio de referencia en Nginx se vuelve inviable.
  • No quiero meter el Captcha o la pantalla de bloqueo de Sucuri porque arruinaría la experiencia de usuario y rompería llamadas internas de la aplicación.
  • Toda la plataforma utiliza peticiones POST de forma generalizada en distintas partes de la web, por lo que no puedo simplemente cortar los POST a nivel de ruta global sin romper la funcionalidad.

Si a alguien se le ocurre una estrategia avanzada en Nginx, reglas de iptables/fail2ban, o cualquier enfoque a nivel de backend/sysadmin que sea efectivo para frenar este tipo de flooding de POST basura sin meter de por medio los molestos captchas de Sucuri, se agradece un montón cualquier aportación. ¡Un saludo y gracias de antemano!
 
Hola. Si el 405 lo genera Nginx, el POST no llega a PHP. El bloqueo va por comportamiento. En Sucuri, map con la IP real y limit_req sobre POST, rate bajo, burst corto. A los reincidentes, return 444.
 
Atrás
Arriba