O CERT.Bahia gostaria de alertar a todos sobre uma importante falha de segurança no serviço httpd/Apache, vulnerabilidade essa que facilita ataques de negação de serviço (DoS - Denial of Service) com até mesmo um baixo número de máquinas.
Esta vulnerabilidade afeta todas as versões do Apache. (Anteriores a versão 2.2.20)
Foi descoberta uma falha que permite múltiplas requisições sobrepostas do campo range no cabeçalho das requisições HTTP para o serviço Apache. Dessa forma o serviço consome alto nível de CPU e memória, o que leva o servidor a não disponibilizar mais recurso para outras atividades, assim negando o serviço do ativo em questão.
Esta vulnerabilidade pode ser explorada remotamente, onde o atacante executa um script já disponível na internet, e especifica qual o ip do “alvo”, assim tornando o serviço inoperante em alguns instantes.
A equipe de desenvolvedores do Apache já informou que irá resolver o problema em até 48 horas. Sendo assim atualizar o se ambiente no momento que o patch disponível é aconselhável.
Enquanto não é disponibilizada uma atualização, segue abaixo algumas medidas que servirão para mitigar os riscos de ataque:
A equipe de desenvolvedores do Apache lançou uma nova versão com a correção do problema. Atualize seu apache para versão informada para resolver o problema informado.
Utilize o SetEnvIf ou mod_rewrite para detectar o alto número de requisições com campo range possivelmente comprometidas e então ignorá-las.
# Ignorar requisições com campo range quando maiores que 5. # CVE-2011-3192 SetEnvIf Range (,.*?){5,} bad-range=1 RequestHeader unset Range env=bad-range # log opcional. CustomLog logs/range-CVE-2011-3192.log common env=bad-range
# Ignorar requisições com campo range quando maiores que 5. # CVE-2011-3192 RewriteEngine on RewriteCond %{HTTP:range} !(^bytes=[^,]+(,[^,]+){0,4}$|^$) RewriteRule .* - [F]
Esse número 5 foi escolhido para um caso padrão, mas em alguns casos, esse número pode ser maior. Consulte o manual do Apache para verificar qual valor exato para seu caso.
LimitRequestFieldSize 200