
Hay una herramienta llamadaCASCO(Http Rey de carga insoportable). Es una herramienta de denegación de servicio del servidor web. Está diseñado para generar volúmenes de tráfico único y ofuscado en un servidor web, evitando los motores de almacenamiento en caché y, por lo tanto, accediendo al grupo de recursos directos del servidor.
He estado probando esto en Nginx y descartó Nginx en segundos. A continuación se muestra el fragmento de registros de mis pruebas.
192.168.1.10 - - [17/May/2013:16:37:35 +0800] "GET /?UDY=CLZFTJP HTTP/1.1" 200 199265 "http://www.usatoday.com/search/results?q=BZWVGQ" "Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.5.22 Version/10.51"
192.168.1.10 - - [17/May/2013:16:37:35 +0800] "GET /?YGNBNQK=BEPPWCSMKJ HTTP/1.1" 200 199272 "http://www.google.com/?q=PJCSSRQLT" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; .NET CLR 2.0.50727; InfoPath.2)"
192.168.1.10 - - [17/May/2013:16:37:35 +0800] "GET /?XETRTJ=LFV HTTP/1.1" 200 199264 "http://www.usatoday.com/search/results?q=QHDEEM" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; .NET CLR 2.0.50727; InfoPath.2)"
192.168.1.10 - - [17/May/2013:16:37:35 +0800] "GET /?JYJHZB=ZHIB HTTP/1.1" 200 199265 "http://www.mywebsite.com/UPHIBL" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.1) Gecko/20090718 Firefox/3.5.1"
192.168.1.10 - - [17/May/2013:16:37:35 +0800] "GET /?VHXLKAIB=NCU HTTP/1.1" 200 199266 "http://www.mywebsite.com/KIPQLJH" "Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)"
192.168.1.10 - - [17/May/2013:16:37:36 +0800] "GET /?IGCQSNG=BNKSM HTTP/1.1" 200 199267 "http://engadget.search.aol.com/search?q=POZWPGSTV" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; .NET CLR 2.0.50727; InfoPath.2)"
192.168.1.10 - - [17/May/2013:16:37:36 +0800] "GET /?HUL=BMZAQXXXF HTTP/1.1" 200 199267 "http://www.usatoday.com/search/results?q=KUQNRADOUP" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; .NET CLR 2.0.50727; InfoPath.2)"
192.168.1.10 - - [17/May/2013:16:37:36 +0800] "GET /?ZWOWYGEZ=PBEAVXZF HTTP/1.1" 200 199271 "http://engadget.search.aol.com/search?q=FXWHN" "Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)"
Mi servidor de prueba (CentOS 6.4 64 bits) está configurado con Varnish pero, como decía la herramienta, omitió el almacenamiento en caché de Varnish.
Puedo instalar fail2ban pero ¿cómo debo definir expresiones regulares para este tipo de solicitud? ¿O hay alguna forma de configurar Nginx para protegerse de este tipo de ataques? ¿Quizás reescribir la regla o algo así?
Respuesta1
Acabo de encontrarme con este hilo y noté que tiene 2 votos negativos. De todos modos, sólo quiero publicar lo que hice para bloquear las solicitudes de HULK.
En /etc/nginx/conf.d/default.conf
(o similar). Agregué lo siguiente dentro del server
bloque:
if ($args ~* "(.{1,})=(.{1,})" ){
rewrite ^/$ /444_rewrite?;
}
location /444_rewrite {
return 444;
}
¿Que hace?
Dado que el sitio utiliza una URL amigable y ninguna de las URL del sitio comienza con ?
y =
, puedo redirigir todas esas solicitudes GET extrañas a 444. El argumento (.{1,})=(.{1,})
le dice a Nginx que redirija todas las solicitudes GET que tengan caracteres entre =
ellas.