Como posso ter certeza de que um diretório ou arquivo é realmente excluído?

14

Eu sei que a maioria dos arquivos, quando excluídos, não são realmente removidos do disco e podem ser recuperados posteriormente.

Como posso garantir que um diretório que eu deletei seja realmente removido do disco? Existem utilidades para isso?

Estou usando o Debian Linux.

    
por jcora 01.02.2013 / 12:36

2 respostas

11

Criptografe os dados antes de armazená-los. Para apagar os dados, limpe a chave.

Se você já escreveu os dados em texto simples, é tarde demais para apagá-los de maneira simples. Pode haver várias cópias dos dados espalhados em vários lugares:

  • no sistema de arquivos se o arquivo foi gravado várias vezes (sobrescrito ou substituído);
  • no sistema de arquivos se ele foi reorganizado como parte da desfragmentação;
  • no diário (isso provavelmente desaparecerá muito rapidamente depois que os dados foram gravados pela última vez);
  • nos backups;
  • em setores desativados (especialmente no SSD).

Para se livrar das cópias dos dados no sistema de arquivos, um método bruto é preencher o espaço livre ( cat /dev/zero >somefile e esperar que ele pare porque o sistema de arquivos está cheio). Isso sobrescreverá todos os blocos completos.

Pequenas partes dos dados podem permanecer em blocos incompletos parcialmente usados por outros arquivos. Isso é especialmente uma preocupação para nomes de arquivos, que podem permanecer em blocos que armazenam o conteúdo do diretório. Para se livrar de tudo, faça backup de todos os arquivos, sobrescreva completamente o dispositivo que contém o sistema de arquivos e restaure os arquivos.

A mídia de armazenamento pode reter dados em blocos que não estão mais em uso. Nos discos rígidos, isso significa blocos defeituosos que foram realocados; esta é uma ocorrência bastante rara até o disco começar a se desgastar. No SSD, essa é uma ocorrência comum devido ao uso de nivelamento. Em ambos os casos, a ameaça é muito baixa, porque o acesso a esses dados requer um invasor um tanto sofisticado, com hardware moderadamente caro e tempo para perder. Se você se preocupa com essas ameaças, criptografe seus dados e não deixe sua chave por aí.

Note que você pode ver conselhos sobre como apagar dados fazendo várias passagens ou usando dados aleatórios ao invés de zeros (“Gutmann wipe”). Esqueça: isso se aplica apenas aos discos rígidos dos anos 80 (e mesmo assim os dados não são tão baratos de reconstruir e a reconstrução é pouco confiável). Sobrescrever com zeros é bom o suficiente; fazer várias passagens aleatórias é um conselho obsoleto ou óleo de cobra. Veja Por que escrever zeros (ou dados aleatórios) em um disco rígido várias vezes é melhor do que apenas fazer isso uma vez?

    
por 02.02.2013 / 01:47
12

Existe uma ferramenta muito popular chamada shred . Ele sobrescreverá todos os arquivos 25 vezes antes de serem excluídos. Isso pode ser o que você está procurando.

O uso do shred é bastante simples

$ shred secret_archive.tar.gz

No entanto, nos sistemas modernos, shred pode ser ineficiente ou inútil se:

  • Seus programas criam arquivos temporários que você não conhece (Como muitos aplicativos GUI)
  • Seu FS é baseado em cópia com gravação (como ZFS ou Btrfs)
  • Seu FS é baseado em log (como o NILFS)
  • Seu FS usa registro de dados de dados (como JFS, ReiserFS, XFS, ext3 ou ext4 em algumas configurações)
  • Seu FS usa compactação
  • Seu FS aloca novas versões de arquivos em locais diferentes
  • Você tem instantâneos ou back-ups
  • Você está em uma rede FS
  • Você está usando um SSD com algoritmos de nivelamento de desgaste

Outras opções e possivelmente mais seguras são:

  • Criptografando dados críticos
  • Substituir toda a partição ou dispositivo de armazenamento
  • Destruição física do dispositivo
por 01.02.2013 / 13:01