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.
Só para começar o ano bem..né não Gustavo?
Perfeito.. hgehehehe
Show !
E já saiu o PoC: http://www.1337day.com/exploits/17321
é como eu sempre digo: “Quanto mais aprendo, mais descubro que tenho mais a aprender”.
e olha q ele funciona em ..