Uma vulnerabilidade de ataque de negação de serviço baseada em hash foi descoberta no sistema de arquivos Btrfs, a próxima geração do sistema de arquivos Linux.
Apenas recentemente a SUSE considerou o Btrfs como uma solução pronta para uso e enquanto não há qualquer distribuição que utiliza este sistema de arquivos como padrão, os desenvolvedores podem brincar com o sistema para descobrir potenciais problemas.
Dois tipos de ataque de negação de serviço foram descobertos. O desenvolvedor Pascal Junod, descobriu que é muito fácil realizar um ataque de negação de serviço local contra o sistema de arquivos Btrfs baseado em colisões de hash. Para este ataque, o usuário já deve ter acesso local ao sistema, mas uma vez estando lá, é bem fácil executar o ataque, como mostrado no blog do desenvolvedor. "Eu gostaria de mostrar como um hash-DoS pode ser aplicado em um sistema de arquivos Btrfs de modo surpreendente e inesperado.", comentou Pascal.
Os dois diferentes tipos de ataques ao Btrfs, reportados por Pascal:
Computei o tempo para criar 4000 arquivos vazios no mesmo diretório, cujos nomes foram selecionados aleatoriamente. Isso levou cerca de 0,2 segundos. O sistema utilizado é uma distribuição Fedora dentro de uma máquina virtual (e com o sistema de arquivos Btrfs). Então, computei o tempo para criar esses mesmos 4000 arquivos vazios no mesmo diretório, cujos nomes foram entretanto escolhidos por hash para o mesmo valor CRC32C. Esta operação falhou após 5 segundos e resultou na criação de apenas 61 arquivos. Em outras palavras, esse primeiro ataque permite que um invasor, em um cenário de diretórios compartilhados, evite que a vítima crie um arquivo com um nome conhecido anteriormente.
Em segundo lugar:
Criei vários arquivos com nomes aleatórios em um diretório (cerca de 500). O tempo necessário para removê-los é desprezível. Então, criei o mesmo número de arquivos, mas dando-lhes apenas 55 diferentes valores CRC32C. O tempo necessário para removê-los é tão grande que eu não fui capaz de entender o processo e o matei após 220 minutos.
Em seu blog, Pascal publicou alguns exemplos de código Python, juntamente com outros detalhes técnicos do ataque. Chris Mason, o mantenedor do Btrfs, espera ter as vulnerabilidades corrigidas no lançamento do kernel 3.8.
FONTE: Linux Magazine OnLine