Como de costume, as palestras que abrem a Chaos Computer Club são de arrasar, deixando sempre a galera de boca aberta. Dois pesquisadores apresentaram um excelente paper, em que provam que milhões de sites estão vulneráveis a um novo tipo de ataque de DoS, o HashDos, que pode deixá-los fora do ar se não for tratado logo.

Praticamente todas as linguagens de programação voltadas ao mundo WEB são vulneráveis ao HashDos. O problema está no fato de como ela/linguagem (PHP,JAVA, asp.net e tantas outras) armazena valores em uma tabela hash dentro de servidores web. A maioria das linguagens faz da mesma forma, ninguém vai reinventar a roda para isso né? Só que hacker e cracker podem facilmente tirar proveito disso enviando alguns valores que não serão tratados como deveriam.

E é aí que está o pulo do gato. Esses valores acabam se multiplicando, para ser mais exato, elevados ao quadrado, requisitando assim cada vez mais processamento. Não importa a arquitetura do seu servidor: a CPU dele chegará a 100% de utilização facilmente e isso foi provado, via demo, no dia da apresentação pelos dois pesquisadores – bem legal.

Uma simples requisição HTTP POST com 2MB foi enviada a um servidor APACHE TOMCAT logo no início da apresentação. Em alguns segundos, o servidor chegou a 100% de utilização de CPU e ficou no gargalo até o final. Vocês poderão baixar o vídeo desta apresentação a partir do seguinte link ou assisti-lo abaixo:

Microsoft e tantas outras empresas informaram que liberarão logo, logo um patch que mitigará este tipo de ataque, mas até lá, como mitigar ou resolver este tipo de problema ?

Saíram algumas recomendações para PHP/TOMCAT, que seria limitar o número de requisições HTTP. O Suhosin faz isso ou você pode adicionar um patch no próprio PHP, em que deixará você utilizar a variável max_input_vars.

Para ASP.NET, tem a receita de bola abaixo tirada do site TheHackerNews:

Limiting HTTP POST and GET request lengths (Microsoft ASP.NET) : Microsoft suggests to limit the HTTP request length. Most applications don’t require very long HTTP requests, except for file uploads.

<configuration>

 <system.web>
 <httpRuntime maxRequestLength=”200”/>
 </system.web>
</configuration>

Já a mitigação do problema para linguagens de programação, como JAVA e Ruby, será lançada na próxima semana, acredito eu.

Compartilhar:

Este post tem 5 comentários

  1. Só para começar o ano bem..né não Gustavo?

Deixe uma resposta

Fechar Menu