Como limpar com segurança os arquivos da unidade SSD?

7

Ao tentar limpar com segurança os SSDs, temos vários problemas:

  • Os SSDs se desgastam após uma quantidade limitada de ciclos de apagamento
  • Os SSDs têm um controlador que mapeia dinamicamente os LBAs (endereços de blocos lógicos usados pelo sistema para acessar o disco) às células NVRAM (as células de memória flash atuais) para equilibrar o desgaste, o que significa dizer ao disco para sobrescrever os blocos que anteriormente armazenado um arquivo específico pode resultar na sobrescrita de quaisquer outros blocos sobressalentes.
  • Os SSDs têm uma porcentagem notável de capacidade de reserva que é usada para compensar as células de armazenamento que estão morrendo e reduzir o desgaste. Eles não são visíveis para o sistema e podem conter fragmentos de dados antigos.

Agora, quais opções temos dentro do Ubuntu para limpar com segurança os SSDs?

Ouvi dizer que alguns SSDs mais recentes devem ser capazes de se limpar com segurança, mas como posso saber se meu SSD é capaz disso e como eu o acionaria?
Também deve haver um comando ATA secure erase, como descobrir se isso é suportado e como eu acionaria isso?

Existem também maneiras de limpar com segurança apenas um determinado arquivo ou apenas o espaço não utilizado?
Eu acho que fazer um backup de todas as partições, limpando com segurança todo o disco e, em seguida, restaurar o backup seria possível, mas soa muito complicado e levaria muito tempo para ser prático. Existem outras alternativas? Se não, quais ferramentas posso usar para fazer o backup de partições sem fazer o backup de arquivos já excluídos?

É claro que as ferramentas padrão como shred ou wipe não são utilizáveis aqui para os pontos descritos acima. Eles simplesmente sobrescrevem um arquivo (sobrescrevendo seus clusters de sistema de arquivos que estão ligados a LBAs que não estão constantemente apontando nas mesmas células flash devido ao controlador de nivelamento de desgaste).

    
por Byte Commander 04.07.2016 / 11:58

1 resposta

5

Atualmente, não há como apagar com segurança arquivos no SSD sem apagar o conteúdo de toda a unidade ou acessar o firmware do SSD.

  • É impossível saber onde o SSD pode armazenar cópias anteriores de um bloco lógico.

  • Para piorar a situação, devido aos mecanismos journalling e copy-on-write do sistema de arquivos, pode ser impossível saber quais blocos lógicos podem conter uma cópia anterior de um determinado arquivo.

A única maneira de evitar o vazamento de arquivos excluídos para alguém com acesso direto à unidade é criptografá-los em primeiro lugar e manter a chave de criptografia protegida de olhares indiscretos.

Adendo:

Eu fiz algumas pesquisas e descobri que é possível apagar todos os arquivos excluídos anteriormente se você conseguir aprender todos os setores desocupados de um sistema de arquivos, o que geralmente é possível e oferecido por alguns ferramentas do sistema de arquivos (por exemplo, para a família ext *) e, em seguida, descartá-las (por exemplo, com blkdiscard(8) conforme descrito nesta resposta à questão vinculada ), que retorna os blocos para a coleta de lixo até que são usados novamente e sobrescritos no processo.

Isso é seguro contra todos que não podem acessar as células flash diretamente, então todos que

  • não possui um dispositivo de leitura de célula flash adequado e
  • não pode falar o firmware da unidade para revelar o conteúdo de blocos não atribuídos (o que exigiria uma modificação significativa do firmware na maioria dos casos e comandos ATA personalizados, pois não há uma maneira padronizada).
por David Foerster 07.07.2016 / 02:38