Por que NginX e Lighttpd não são afetados por Slowloris?

19

Estou investigando a vulnerabilidade a Slowloris e acho que entendo como e por que esse tipo de ataque funciona.

O que eu não entendo é porque Lighttpd e NginX não são afetados (de acordo com o mesmo artigo como link acima). O que eles fazem de tão diferente?

    
por The Shurrican 17.06.2011 / 18:13

3 respostas

23

O Apache tem uma teoria de 'Máximo de Clientes'

Esse é o número de conexões simultâneas que ele pode manipular. I.E. se um servidor apache tiver um limite de '100 clientes máximos' e cada solicitação levar 1 segundo para ser concluído, ele poderá processar um máximo de 100 solicitações por segundo.

Um aplicativo como o SlowLoris inundará um servidor com conexões, no nosso exemplo se o SlowLoris enviar 200 conexões por segundo, e o Apache só puder manipular 100 conexões por segundo, a fila de conexões continuará aumentando e usar toda a memória da máquina trazendo isso para um inferno. Isso é semelhante à maneira como o LOIC Anônimo funciona.

O NGINX e o Lighttpd (entre outros) não têm conexões máximas, eles usam threads de trabalho, portanto, teoricamente, não há limite para o número de conexões que eles podem manipular. Se você monitorar suas conexões do Apache, verá que a maioria das conexões ativas são dados "Enviando" ou "Recebendo" do cliente. No NGINX / Lighttpd eles simplesmente ignoram essas requisições e deixam elas rodarem em segundo plano, sem usar recursos do sistema, e só precisa processar conexões com algo acontecendo (Analisando respostas, lendo dados de servidores backend etc.)

Na verdade, eu respondi uma pergunta semelhante esta tarde, então as informações lá também podem ser interessantes para você Reduzindo o enfileiramento de pedidos do Apache

    
por 17.06.2011 / 18:39
9

O Nginx é realmente vulnerável ao ataque de slowloris. Recurso escasso é o número máximo de conexões simultâneas de trabalho. Esse número pode ser calculado como worker_connections * worker_processes e equivale a 512 na configuração nginx padrão. Então, é muito fácil derrubar o nginx desprotegido com ferramentas como goloris .

    
por 04.03.2014 / 15:09
7

O comentário de valyala deve ser aceito como resposta.

A maioria dos servidores nginx usa configurações padrão e, portanto, vulneráveis a ataques de slowload. Eu usei slowloris para derrubar alguns dos sites nginx do meu amigo usando apenas meu laptop e normalmente demorava menos de 5 minutos (meus amigos me desafiaram a fazer isso).

Como valyala afirmou, tecnicamente, o nginx não é vulnerável ao slowloris, mas as configurações padrão limitam o número máximo de conexões, portanto, quando as conexões excedem esse número, o nginx descarta a nova solicitação, o que resulta em uma negação de serviço. / p>

As formas conhecidas de proteger o nginx de slowlloris incluem limitar o número de conexões do mesmo IP e aumentar a configuração worker_connections. O ataque ainda pode funcionar, mas fica mais difícil (talvez levando mais de 5 minutos?: D)

    
por 02.03.2017 / 06:02