Encontrada vulnerabilidade na deduplicação do Btrfs e do ZFS |
Membros da universidade de Vrije (Vrije Universiteit Amsterdam) encontraram uma falha de segurança no recurso de deduplicação dos sistemas de arquivos ZFS e Btrfs. O erro foi encontrado pelo grupo de pesquisadores Andrei Bacs, Saidgani Musaev, Kaveh Razavi, Cristiano Giuffrida, Herbert Bos que pretende apresentar na conferência FAST'22 (20th USENIX Conference on File and Storage Technologies) e tornar seu conhecimento publico no dia 23 de Fevereiro deste ano.
Essa vulnerabilidade ocorre especificamente no inline deduplication que permite o invasor utilizar uma classe de ataque chamada DUPEFS e obter arquivos sensíveis do sistema (e até arquivos secretos dos usuários) mesmo remotamente (tanto em LAN quanto em servidores na internet). Em seu paper, os pesquisadores apresentam como cada sistema de arquivos trabalha com inline deduplication para assim melhor entender como explorar a vulnerabilidade.
Como cada sistema de arquivos trabalha com inline deduplication. |
Este paper possui 15 páginas muito bem detalhado apresentando todo o cenário do ataque e todos os seus resultados tanto no Linux (utilizando ambos os sistemas de arquivos) quanto no FreeBSD. Eu incentivo a todos acompanhar sua apresentação no evento já que se trata de uma vulnerabilidade grave e que os desenvolvedores irão precisar concentrar esforços na solução do problema.
Isso significa que estamos em risco? Em partes pode ser que sim como pode ser que não. Primeiro que, apesar da vulnerabilidade ser grave, não são todos que conseguem explorá-la; segundo que no paper os pesquisadores apresentam algumas formas de defesa (em Deduplication Defenses) como medidas paliativas como forçar a criptografia e ofuscação imposta por um gateway intermediário na rede até que soluções sejam apresentadas.
E terceiro é que há um ponto a se considerar aqui tratando-se de Btrfs (já estou ouvindo o chilique de que sou fanboy de Btrfs). Em minha série ZFS VS Btrfs mencionei que ambos os sistemas de arquivos oferecem recursos iguais PORÉM, implementados de formas diferentes e com técnicas diferentes; deduplicação não é uma exceção a essa regra. No vídeo primeiro video da série que você pode conferir abaixo, eu explico a diferença na implementação de recursos entre os dois sistemas de arquivos. Confiram a diferença entre a deduplicação de ZFS e do Btrfs:
Ou seja, essa vulnerabilidade não afeta o Btrfs como mencionado no paper apresentado pelos pesquisadores, pois inline deduplication já não é utilizado no Btrfs há um bom tempo. Inline deduplication para o Btrfs foi desenvolvido pela Fujitsu como pode ser lido clicando aqui e já não é mais mantido (ele foi simplesmente abandonado pois a Fujitsu não tem mais planos para ele), os patches eram incompletos e este recurso é muito complexo para ser implementado no kernel Linux.
Qu Wenruo que foi um dos autores do inline deduplication para o Btrfs informou aos pesquisadores o:
"Como um dos autores originais, eu e o meu empregador não temos mais interesse em continuar dedupe. Além do mais, a implementação original possui um limite, um extent tem que ser escrito no disco antes que possa ser utilizado pelo write-time dedupe."
Para deduplicação o Btrfs utiliza a técnica out of band deduplication (como mencionei no meu vídeo), o módulo ioctl e ferramentas em userspace como BEES.
Moral da história
O que os pesquisadores utilizaram na verdade foi uma versão muito antiga do btrfs (talvez de 4 anos atrás) e deveriam ter testando ao menos uma versão que possui out of band deduplication (de preferencia versões mais recentes do kernel Linux).
Vou reforçar que já estou ouvindo me chamarem de fanboy de Btrfs (SARCASMO ON: Não são eles que são fanboys de ZFS ou do Ext4, sou eu que sou fanboy de Btrfs... Eu não apresentei nenhum argumento técnico, foi só coisa de fanboy mesmo... Sempre assim...)
E por ultimo vamos ver se os sites (como o que postou o artigo Examinando o Btrfs, o sistema de arquivos do Linux perpetuamente semi-acabado) chegarão a publicar sobre essa falha no ZFS (honestamente eu duvido) pois esse já não é a primeira que eu posto. Alias, vamos ver quanto tempo vai levar para isso ser corrigido no ZFS. Basta lembrar do caso do alto consumo de CPU no ZFS por exemplo que levou anos para ser corrigido. Este caso pode ser lindo clicando aqui.
Nenhum comentário:
Postar um comentário
Viu algum erro e quer compartilhar seu conhecimento? então comente aí.
Observação: somente um membro deste blog pode postar um comentário.