Como posso detectar o Slowloris?

Como posso detectar o Slowloris?

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

Obrigado

Responder1

Os ataques Slowloris funcionam enviando dados de solicitação o mais lentamente possível. Portanto, se você puder medir o uso da largura de banda por endereço IP, se estiver abaixo de algum limite (encontrado medindo a largura de banda em um ataque slowloris conhecido), você saberá que está sob ataque.

Para evitar ataques, sugiro trocar o software do seu servidor web. Eu uso o Cherokee que é resistente na configuração padrão. Não consigo verificar 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/

Responder2

Nível 1: DOS lento e simples


Para encontrar o endereço IP do invasor slowloris, 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 lhe dará o número de conexões ativas para cada IP conectado

Se você estiver sob um simples ataque DOS, uma criança com um ou alguns IPs, aquele com 50-100 conexões (ou mais) é provavelmente um invasor lento que você pode eliminar.

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

Adicionar o tempo de processamento (argumento% D ou% T) em seus logs do Apache provavelmente também pode ajudar a detectar ataques slowloris "postmortem" analisando os logs. Se você não tiver essas informações em seus logs, não conseguirá encontrar nada interessante . Verhttp://httpd.apache.org/docs/current/mod/mod_log_config.htmlpara a configuração do log.

Nível 2: DDOS realmente grande e lento


netstat (use watch netstat para atualização) ainda pode ajudá-lo a ver que alguns IPs estão sempre conectados

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

http://pastebin.com/3BNNwfyb

Depois disso, cada 408 que você vê no access_log tem 99,999% de certeza de que é um IP do invasor slowloris.

Usando o módulo reqtimeout apache, você pode facilmente enfrentar 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

informação relacionada