Como posso detectar o Slowloris?

14

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

Obrigado

    
por Rob 26.12.2010 / 13:43

2 respostas

5

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

Para evitar ataques, sugerimos mudar o software do seu servidor da web. Eu uso cherokee que é resistente em sua configuração padrão. Eu não posso verificar se o nginx é vulnerável, mas o lighttpd é. Eu também não posso ter certeza de que usar um servidor web resistente como um proxy fará qualquer diferença.

Veja mais informações: link

    
por 26.12.2010 / 16:14
10

Nível 1: simples slowloris DOS

Para encontrar o endereço IP do atacante 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

Isto lhe dará o número de conexões ativas para cada IP conectado

Se você está sob um simples ataque DOS, um kiddie com um ou poucos IPs, aquele com 50-100 conexões (ou mais) é provavelmente um atacante slowloris que você pode derrubar.

Isto é para detectar e soltar (com iptables ou sua hlfw preferida) eles "em tempo real" se você estiver conectado no servidor durante o ataque.

Adicionar o tempo de processamento (argumento% D ou% T) nos logs do apache também pode ajudar a detectar ataques de slowloris "postmortem" analisando os logs, se você não tiver essa informação em seus registros, não poderá encontre algo interessante.  Consulte o link para a configuração do registro.

Nível 2: DDOS grandes e reais em slowloris

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

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

link

Depois disso, a cada 408 que você vê no access_log é 99.999% de certeza que um slower é um atacante ip.

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

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
    
por 05.11.2012 / 02:50