Publicado o Shufflecake, uma ferramenta para criar partições criptografadas ocultas no disco

A Kudelski Security, especializada em auditoria de segurança, divulgou a ferramenta Shufflecake, que permite a criação de sistemas de arquivos ocultos, dispersos pelo espaço livre existente nas partições, e indistinguíveis de dados residuais aleatórios. As partições são criadas de tal forma que, sem conhecer a chave de acesso, é problemático provar sua existência mesmo durante uma análise forense. O código das utilitários (shufflecake-userland) e do módulo do kernel Linux (dm-sflc) é escrito em C e distribuído sob a licença GPLv3, o que impossibilita a inclusão do módulo publicado no kernel Linux principal devido à incompatibilidade com a licença GPLv2, sob a qual o kernel é fornecido.

O projeto é posicionado como uma solução mais avançada do que Truecrypt e Veracrypt para ocultar dados que requerem proteção, que possui suporte nativo à plataforma Linux e permite a criação de até 15 partições ocultas em dispositivos, aninhadas uma dentro da outra para dificultar a detecção de sua existência. Embora a própria aplicação do Shufflecake não seja um segredo, como pode ser inferido pela presença de utilitários correspondentes no sistema, o número total de partições ocultas criadas é impossível de determinar. As partições ocultas criadas podem ser formatadas a critério do usuário para suportar qualquer sistema de arquivos, como ext4, xfs ou btrfs. Cada partição é tratada como um dispositivo de bloco virtual separado com sua própria chave de desbloqueio.

Para confundir as pistas, é sugerido o uso do modelo de comportamento de "negação plausível" (plausible deniability), cuja essência é que os dados valiosos são ocultados como camadas adicionais em partições criptografadas que contêm dados de menor valor, formando uma hierarquia oculta de partições. Em caso de pressão, o proprietário do dispositivo pode revelar a chave para a partição criptografada, mas nessa partição podem estar ocultas outras partições (até 15 níveis aninhados), e determinar sua presença e provar sua existência é problemático.

O segredo é garantido pela formação de cada seção como um conjunto de fatias criptografadas, colocadas em posições aleatórias no dispositivo de armazenamento. Cada fatia é criada dinamicamente no momento em que a seção precisa de espaço adicional para armazenamento. Para dificultar a análise, as fatias de diferentes seções são intercaladas, ou seja, as seções Shufflecake não estão ligadas a áreas contínuas e as fatias de todas as seções são misturadas. Informações sobre as fatias utilizadas e livres são armazenadas em um mapa de localização vinculado a cada seção, referenciado pelo cabeçalho criptografado. Os mapas e o cabeçalho são criptografados e, sem o conhecimento da chave de acesso, são indistinguíveis de dados aleatórios.

O cabeçalho é dividido em slots, cada um definindo sua seção e as fatias associadas. Os slots no cabeçalho são organizados em uma ordem empilhada e estão recursivamente vinculados — o slot atual contém a chave para descriptografar os parâmetros da seção anterior na hierarquia (menos oculta), permitindo o uso de uma única senha para descriptografar todas as seções menos ocultas relacionadas à seção selecionada. Cada seção menos oculta considera as fatias das seções aninhadas como livres.

Por padrão, todas as seções aninhadas do Shufflecake têm o mesmo tamanho visível que a seção de nível superior. Por exemplo, se o dispositivo de 1 GB tiver três seções ativas, cada uma delas aparecerá para o sistema como uma seção com tamanho de 1 GB e o espaço em disco total disponível será compartilhado entre todas as seções — se o tamanho total dos dados salvos ultrapassar o tamanho real do dispositivo, um erro de entrada/saída começará a ser emitido.

Seções aninhadas não abertas não participam da distribuição de espaço, ou seja, tentar preencher uma seção de nível superior resultará em sobrescrita de dados nas seções aninhadas, mas não permitirá revelar sua existência através da análise do tamanho dos dados que podem ser armazenados na seção antes do início da exibição do erro (presume-se que as seções superiores contenham dados imutáveis para desviar a atenção e nunca sejam usadas separadamente, enquanto o funcionamento normal é sempre com a última seção aninhada, a própria estrutura pressupõe que é mais importante preservar o segredo da existência dos dados do que perder esses dados).

Na prática, são sempre criadas 15 seções Shufflecake — as seções utilizadas estão vinculadas à senha do usuário, e as seções não utilizadas recebem uma senha gerada aleatoriamente (não é possível entender quantas seções estão realmente em uso). Durante a inicialização das seções Shufflecake, o disco, a seção ou o dispositivo de bloco virtual alocado para seu armazenamento é preenchido com dados aleatórios, o que impede a identificação de metadados e dados do Shufflecake em um fundo geral.

A implementação do Shufflecake possui um desempenho bastante alto, mas devido à sobrecarga, fica aproximadamente duas vezes atrás em termos de capacidade de transmissão em comparação com a criptografia de discos baseada em subsistemas LUKS. A aplicação do Shufflecake também resulta em custos adicionais de memória RAM e espaço para armazenamento de dados de serviço no disco. O custo de memória é estimado em 60 MB por seção, enquanto o espaço no disco é de 1% do tamanho total. Para comparação, uma técnica similar chamada WORAM resulta em uma desaceleração de 5 a 200 vezes com 75% de perda de espaço útil no disco.

A ferramenta e o módulo do núcleo foram testados apenas em funcionamento no Debian e Ubuntu com núcleos 5.13 e 5.15 (o funcionamento em Ubuntu 22.04 é suportado). Observa-se que o projeto ainda deve ser considerado como um protótipo funcional, que não deve ser usado para armazenar dados importantes. No futuro, está planejada uma otimização adicional do desempenho, confiabilidade e segurança, bem como a possibilidade de inicialização a partir das seções Shufflecake.

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