Início » Web » HashDos: a brecha que afeta milhões de sites com PHP, Java e outras linguagens

HashDos: a brecha que afeta milhões de sites com PHP, Java e outras linguagens

Por
5 anos atrás

A 23ª edição da Chaos Computer Club, conferência de segurança que acontece na Alemanha, começou essa semana e, para variar, as primeiras palestras já assustam. Além do aviso do pesquisador que encontrou uma brecha na rede 2G GSM que afeta milhões de celulares, hoje uma dupla de pesquisadores avisou que milhões de sites estão vulneráveis a um novo tipo de ataque de DoS, chamado HashDos, que pode deixá-los fora do ar se não for tratado logo.

Segundo os descobridores da brecha, os pesquisadores Alexander Klink e Julian Wälde, o problema está na maneira como certas linguagens usadas em servidores web armazenam valores em uma tabela hash. A grande maioria faz da mesma forma e pessoas mal-intencionadas podem tirar vantagem disso, enviando valores pré-determinados que sabem que não serão tratados como deveriam. Essas requisições, no final das contas, acaba gerando uma função quadrática que sobrecarrega os servidores.

Para provar que o método funciona, durante a apresentação dos detalhes do ataque, eles enviaram requisições do tipo HTTP POST com 2 MB de tamanho para um servidor web rodando Apache Tomcat. Isso fez com que o processamento do servidor atingisse 100% e permanecesse nesse nível durante toda a palestra.

Quais são as linguagens afetadas? A lista não é nada pequena. Nela constam PHP, ASP.NET, Java, Python, Ruby, Apache Tomcat, Apache Geronimo, Jetty, Glassfish, e até a V8, engine de renderização de JavaScript do Google.

A Microsoft já anunciou que vai liberar uma atualização para a ASP.NET que soluciona esse problema e versões mais novas do PHP (5.4.0RC4 e 5.3.9) já contam com uma correção. Mas segundo a W3Techs, a enorme maioria desses sites ainda roda a versão 5.2. PHP é a linguagem mais usada em servidores web no mundo, sendo responsável por cerca de 77% deles, ou 20 milhões de sites e 1 milhão de servidores web (números estimados).

Eis uma observação que oferece uma perspectiva interessante: os criadores da Perl, uma linguagem relativamente pouco usada na internet, trataram esse problema em meados de 2003.

A explicação é extremamente complexa, mas vale a pena pesquisar bem se você quiser impressionar seus amigos nerds: leia os detalhes nesse PDF liberado ontem pela dupla e veja aqui uma lista completa de linguagens afetadas e em quais versões delas essa falha já foi corrigida.

Com informações: Naked Security.

Mais sobre: , ,
  • Se fosse tão simples atualizar… quer dizer, em teoria é. Mas na prática…

  • “PHP, ASP.NET, Java, Python, Ruby, Apache Tomcat, Apache Geronimo, Jetty, Glassfish, e até a V8”

    UTA QUE ARIU!!!
    Se não conseguirem derrubar a internet dessa vez, não vão conseguir mais nunca…

  • Caramba que absurdo isso… Corrigiram no Perl em 2003… Isso significa que PROVAVELMENTE os responsáveis pelas outras linguagens souberam do ocorrido.

    Lamentável…

  • u.u Microsoft foi rápida dessa vez pelo menos

    • Maldita Microsoft, mal consigo ver seus movimentos!

    • TatoGomes

      Em termos, né. Desde (pelo menos) 2003 isso está por aí.

    • A Microsoft “vai” liberar. Versões mais novas do PHP “já” contam com uma correção.

      • O Perl tem a correção desde 2003.

        Os caras que apresentaram a falha estão a uns dois meses buscando que as empresas corrijam isso.

  • Para o pessoal de computação:

    Pelo que deu para entender daqueles slides (bem pouco),eles jogam valores que colidem na função de hash utilizada por essas linguagens fazendo com que buscas O(1) se tornem buscas O(n²)?

    Se sim, que dados são esses amrazenados em hash que uma requisição pode enviar para gerar o overflow dos buckets?

  • Redes 2G e linguagem de programação com falhas numa semana só? Eita!

    • As falhas já existiam, como aproveitá-las que é a novidade.

      • Então, é disso que estou falando. 🙂

  • Sempre que divulgam publicamente essas “bombas” sobre falhas de segurança, cogito se não seria melhor não falarem nada…

    • Suponho eu que, quando são publicadas, seria porque já se conhece a correção. Do contrário eu acho que seria uma irresponsabilidade.

    • Os caras que detectaram a falha, tão pegando no pé das empresas a 2 meses para que seja feita uma correção. Os próprios caras estão ajudando as empresas.

      Se a falha não for divulgada, a mesma poderá ser aproveitada sem que as empresas se preocupem em corrigi-la.

      A divulgação, faz com que a comunidade se esforce para que seus sistemas fiquem seguros.

      É dever de todos que administram servidores ficar atento as ultimas falhas e as correções.

      Você não deixa seu carro estacionado numa viela escura com as janelas abertas e a chave na ignição, porque o fária com seu servidor?

  • Igor Jacaúna

    2012 galera… 2012… E olha que nem está perto do dia 20/12/2012…

  • “Apache Tomcat, Apache Geronimo, Jetty, Glassfish, e até a V8, engine de renderização de JavaScript do Google” são linguagens agora? Arruma aí 😛

  • @AntonioVergas Microsoft vai liberar correções para ASP.NET, não PHP, isso que dar ler as coisas corrido.

    • Quem falou que a MS iria liberar correções pro PHP? Eu entendi que a MS não foi tão rápida assim como disseram, uma vez que pra PHP já tem as correções e pra ASP.NET ainda vai sair.

  • Cara, Perl faz em 2003 e ninguém nota isso.

    • Smess

      É pq Perl faz dever de casa cedinho, enquanto o resto… tsk tsk tsk…

      • verdade, tão cedinho que nenhum programador em sã consciência usa..(ou gosta)

  • Assustador.
    Um lance que notei no relatório em PDF, ASP .Net e Python, utilizam melhor a CPU

  • pois é, pensei em zoar disso também AEIUAEHUIE

  • Fiz um post explicando a falha e propondo uma solução “técnica” para o ASP .net.

    http://blog.ginx.com.br/2012/01/dos-usando-colisao-de-hash-no-asp-net/

  • Michael

    ehhh PHP. ta complicado viu.

Faça seu login no Tecnoblog

Crie a sua conta

Esqueci minha senha