Uma vulnerabilidade no cryptsetup que permite desativar a criptografia em partições LUKS2.

Foi descoberta uma vulnerabilidade no pacote Cryptsetup, utilizado para a criptografia de partições de disco no Linux (CVE-2021-4122), que permite desativar a criptografia em partições no formato LUKS2 (Linux Unified Key Setup) através da modificação de metadados. Para explorar essa vulnerabilidade, um atacante precisa ter acesso físico ao dispositivo criptografado, ou seja, o método é principalmente relevante para ataques a dispositivos externos criptografados, como pen drives, que o invasor pode acessar, mas não conhece a senha para descriptografar os dados.

O ataque é aplicável apenas ao formato LUKS2 e está relacionado à manipulação de metadados responsáveis pela ativação da extensão 'reencriptação online', que permite iniciar o processo de recriptação de dados em tempo real sem interromper o uso da partição, quando necessário mudar a chave de acesso. Como o processo de descriptografar e criptografar com uma nova chave leva muito tempo, a 'reencriptação online' permite que o trabalho com a partição não seja interrompido, executando a recriptação em segundo plano, transferindo gradualmente os dados de uma chave para outra. Também há a possibilidade de escolha de uma chave de destino vazia, o que permite converter a partição para um estado descriptografado.

O atacante pode fazer alterações nos metadados do LUKS2 que simulam uma interrupção inesperada da operação de descriptografia devido a uma falha, levando à descriptografia parcial da partição após a ativação e uso do dispositivo modificado pelo proprietário. Nesse caso, o usuário que conecta o dispositivo modificado e o desbloqueia com a senha correta não recebe nenhum aviso sobre a execução do processo de recuperação da operação de recriptação interrompida e pode descobrir sobre o andamento dessa operação apenas com o comando 'luks Dump'. A quantidade de dados que o atacante pode descriptografar depende do tamanho do cabeçalho LUKS2, mas com o tamanho padrão (16 MiB) pode ultrapassar 3 GB.

O problema é causado pelo fato de que, embora a recriptografia exija o cálculo e a verificação de hashes das chaves nova e antiga, para começar a descriptografia, o hash não é necessário se o novo estado implica na ausência de uma chave para criptografia (plaintext). Além disso, os metadados do LUKS2, que definem o algoritmo de criptografia, não são protegidos contra modificações caso caiam nas mãos de um invasor. Para bloquear essa vulnerabilidade, os desenvolvedores adicionaram ao LUKS2 uma proteção adicional para os metadados, para os quais agora é verificado um hash adicional calculado com base nas chaves conhecidas e no conteúdo dos metadados, ou seja, o atacante agora não pode modificar os metadados de forma discreta sem conhecer a senha para descriptografá-los.

Um cenário típico de ataque exige que o invasor tenha a oportunidade de obter o dispositivo várias vezes. Inicialmente, o atacante, que não conhece a senha de acesso, faz alterações na área de metadados que iniciam a descriptografia de parte dos dados na próxima ativação do dispositivo. Em seguida, o dispositivo é devolvido ao lugar e o atacante espera até que o usuário o conecte, inserindo a senha. Durante a ativação do dispositivo pelo usuário, um processo em segundo plano de recriptografia é iniciado, durante o qual parte dos dados criptografados é substituída por dados descriptografados. Posteriormente, se o atacante conseguir obter o dispositivo novamente, parte dos dados no dispositivo estará em formato descriptografado.

O problema foi identificado pelo mantenedor do projeto cryptsetup e corrigido nas atualizações do cryptsetup 2.4.3 e 2.3.7. O estado da formação de atualizações que corrigem o problema nas distribuições pode ser acompanhado nas seguintes páginas: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. A vulnerabilidade se manifesta apenas a partir do lançamento do cryptsetup 2.2.0, que introduziu suporte à operação "online reencryption". Como uma solução alternativa de proteção, pode-se usar a execução com a opção "—disable-luks2-reencryption".

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster