Como posso detectar o Slowloris?

14

Tenho certeza de que estava sob ataque de Slowloris. Eu configurei uma regra do iptables para limitar o número máximo de conexões ao meu servidor da Web, mas gostaria de saber como posso descobrir se realmente foi um ataque do Slowloris e, se sim, como encontrar o endereço IP do invasor. Eu realmente gostaria de passar os logs para o ISP dele.

obrigado

Roubar
fonte

Respostas:

5

Os ataques do Slowloris funcionam enviando os dados da solicitação o mais lento possível. Portanto, se você puder medir a largura de banda usada por endereço IP, se estiver abaixo de algum limite (encontrado pela medição da largura de banda em um ataque conhecido de slowloris), você saberá que está sendo atacado.

Para evitar ataques, sugiro alternar o software do servidor da web. Eu uso cherokee que é resistente em sua configuração padrão. Não sei se o nginx é vulnerável, mas o lighttpd é. Também não posso ter certeza de que usar um servidor da web resistente como proxy fará alguma diferença.

Aqui estão mais informações: http://ha.ckers.org/blog/20090617/slowloris-http-dos/

dan_waterworth
fonte
10

Nível 1: DOS simples e lento


Para encontrar o endereço IP do invasor slowloris, eu uso a seguinte linha de comando:

netstat -ntu -4 -6 |  awk '/^tcp/{ print $5 }' | sed -r 's/:[0-9]+$//' |  sort | uniq -c | sort -n

Isso fornecerá o número de conexões ativas para cada IP conectado

Se você estiver sob um ataque simples do DOS, um garoto com um ou alguns IPs, aquele com 50 a 100 conexões (ou mais) provavelmente é um invasor do slowloris que pode ser descartado.

Isso é para detectá-los e descartá-los (com iptables ou seu hlfw preferido) em "tempo real" se você estiver conectado ao servidor durante o ataque.

Adicionar o tempo de processamento (argumento% D ou% T) em seus logs do apache também pode provavelmente ajudar a detectar ataques lentos "post-mortem" analisando os logs; se você não tiver essas informações em seus logs, não poderá encontrar nada de interessante. . Consulte http://httpd.apache.org/docs/current/mod/mod_log_config.html para obter a configuração do log.

Nível 2: DDOS grandes e reais


O netstat (use o watch netstat para atualização) ainda pode ajudar você a ver que alguns IPs estão sempre sempre conectados

Para combater o slowloris, no apache, instale os módulos reqtimeout e configure-o, exemplo:

http://pastebin.com/3BNNwfyb

Depois disso, todos os 408 que você vê no access_log têm 99,999% de certeza de que um ip do invasor do slowloris.

Usando o módulo reqtimeout apache, você pode enfrentar facilmente milhares de ips e milhares de pacotes / segundo em um servidor dedicado decente

O Iptables também pode ajudar um pouco com algo como:

iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j DROP
neofutur
fonte