Como apagar com segurança uma unidade SSD?

36

Eu sou bastante novo na tecnologia SSD, então não sei como ela se compara aos discos rígidos quando se trata de apagar a unidade com segurança. É suficiente executar o Utilitário de Disco e apagar a unidade com a opção "substituir com zeros" ou foi projetada para discos rígidos? Existem outras ações que devem ser tomadas?

Não estou procurando segurança de nível NSA, apenas o tipo de limpeza que você faria se estivesse retornando ou vendendo o Mac.

Rinzwind
fonte
Você precisa apagar os dados ou persuadir outras pessoas que os dados foram apagados? Se você só precisa se convencer de que os dados sumiram, tente o comando ATA Secure Erase. Se você precisa convencer outras pessoas, pode ser necessário usar um serviço de destruição de disco.
DanBeale 19/08/11
Em segurança de TI: basta limpar uma unidade flash apenas uma vez? (Jul 26 '11)
Graham Perrin

Respostas:

45

Depende do seu nível de paranóia. Devido à maneira como os SSDs lidam com a gravação de dados, fazer um zero uma vez em um SSD não é tão bom quanto em um disco rígido.

Quando você escreve uma página de dados específica em um HD, os novos dados são simplesmente gravados nos dados antigos, substituindo-os. Escreva zeros em todo o disco e todos os dados antigos desaparecerão. Os SSDs, por outro lado, não podem simplesmente sobrescrever páginas individuais. Para substituir os dados em uma página, os dados antigos devem ser apagados primeiro e os SSDs não podem apagar páginas individuais; eles precisam apagar blocos inteiros que consistem em muitas páginas.

Então, o que acontece quando você solicita que um SSD substitua, digamos, a página 5, é que o SSD deixa os dados na página 5 sozinho, mas marca-os como inválidos, aloca outra página em branco no momento (digamos, 2305), escreve os novos dados da página 2305 e toma nota de que, da próxima vez que o sistema operacional solicitar a página 5, ele deverá receber a 2305. Os dados da página original nº 5 ficam lá até mais tarde, quando a unidade precisa de mais espaço, afasta as páginas válidas restantes do bloco e as apaga. Os SSDs têm mais capacidade de memória física do que expõem ao computador, para que possam manipular blocos como esse por um tempo antes de realmente apagar alguma coisa (e quando realmente apagam algo, não há uma boa maneira de prever quais blocos de dados restantes serão ser escolhido para apagamento). Veja esta revisão da AnandTech para mais detalhes (aviso: é bastante longo, e o material relevante está espalhado).

Resultado líquido: se você escrever zeros na unidade "inteira", na verdade não substituiu todos os dados antigos. Você atualizou a tabela a tradução do controlador para que ele nunca vai retornar qualquer um dos antigos dados para o OS (essas páginas são todos inválido). Mas se alguém for suficientemente hardcore para ignorar o controlador, poderá recuperar alguns dos seus dados.

A substituição duas vezes provavelmente funcionará, mas depende da estratégia de alocação do controlador. Sobrescrever duas vezes com dados aleatórios ( diskutil randomDisk 2 /dev/diskN) é um pouco mais provável de funcionar, mas ainda não é garantido. Ambos também têm alguns efeitos colaterais ruins: eles usam parte da vida útil da unidade e também aumentam a fragmentação lógica no SSD, diminuindo o desempenho de gravação.

Observe que as versões recentes do Utilitário de disco gráfico do OS X desativam as opções de apagamento seguro nos SSDs (pelos motivos discutidos acima), mas a versão da linha de comando ainda permite. BTW, também vi várias recomendações para apagar com segurança os SSDs convertendo-os para o formato criptografado, mas isso é (se houver) um pouco menos seguro do que sobrescrever dados aleatórios.

A melhor maneira de apagar com segurança um SSD é chamar o recurso de apagamento seguro interno do controlador. Isso deveria (se os projetistas do controlador fizessem seu trabalho) realmente apagar todos os blocos e também ter o efeito colateral de redefinir o mapa de página lógica, essencialmente desfragmentando-o e restaurando seu desempenho original. Infelizmente, a maioria dos utilitários que vi para fazer isso (por exemplo, o HDDErase da CMRR ) é executada no DOS, que não inicializa no Mac. Eu encontrei uma postagem em macrumors com instruções (bastante complexas) para fazer uma exclusão segura de um CD de inicialização do GParted. Também pode ser possível usar o Parted Magic a partir de uma unidade flash inicializável , mas eu não tentei isso.

Pesquisadores do Laboratório de Sistemas Não Voláteis da UCSD testaram várias maneiras de higienizar SSDs "apagando" a unidade, desmontando-a para contornar o controlador e verificando os dados remanescentes ( resumo , artigo completo ). Seus resultados concordam principalmente com o que eu disse acima (e também mostram que o comando interno de exclusão segura nem sempre é implementado corretamente):

Nossos resultados levam a três conclusões: Primeiro, os comandos internos são eficazes, mas os fabricantes às vezes os implementam incorretamente. Segundo, substituir o espaço de endereço visível inteiro de um SSD duas vezes é geralmente, mas nem sempre, suficiente para higienizar a unidade. Terceiro, nenhuma das técnicas existentes orientadas ao disco rígido para higienização individual de arquivos é eficaz em SSDs.

Gordon Davisson
fonte
11
Obrigado pela resposta extensa. Não é um problema para mim executar um comando Terminal, como você sugere. Mas para referência futura: o que os usuários comuns que não estão tão confortáveis ​​com o Terminal podem fazer? Basta usar a opção de 7 passagens do Disk Utility?
Rinzwind 14/01
4
Eu não sei se posso realmente "recomendar" alguma das opções neste momento - elas meio que são péssimas. Qualquer uma das opções de substituição usará o limite de gravação da vida útil da unidade e tenderá a aumentar a fragmentação e diminuir o desempenho. O melhor seria que a Apple adicionasse ATA-secure-delete (ou seja, a opção baseada em controlador) como uma opção no Disk Utility, mas quem sabe quando / se isso acontecerá.
Gordon Davisson 14/01
2
@Gordon - Essa foi uma ótima e informativa resposta! +1
Dolan Antenucci
Olá @GordonDavisson. Curioso se algo mudou desde que você escreveu esta resposta (houve algumas atualizações do SO desde então).
Samthebrand
@ SamtheBrand: Não mudou muito. Adicionei uma observação de que o Disk Utility (versão da GUI) agora não permite a exclusão segura de SSDs (porque realmente não funciona), corrigi o link para o HDDErase e adicionei uma observação de que o Parted Magic pode funcionar (embora eu não tenha tentado) )
Gordon Davisson
8

Abra um terminal e digite o seguinte comando:

df -k

Observe a primeira coluna correspondente à partição do SSD que você deseja apagar irreversivelmente. Vamos dizer que sim /dev/disk1s2.

Digite o seguinte comando:

dd if=/dev/zero of=/dev/rdisk1s2 bs=100k

Onde /dev/rdisk1s2está o dispositivo bruto associado à sua partição no SSD. Este comando gravará completamente essa partição do 1º bloco disponível até o último. Este comando vai durar muito (~ 1/2 h para 100 Gbytes) sem uma boa barra de rolagem do progresso.

Depois que esse comando retorna o prompt do seu shell, o disco foi apagado completa e irreversivelmente. Inicie Disk Utilitye verifique esta partição. Ele lhe dirá que está danificado além de qualquer forma de reparo. E está certo.

Apenas formate esta partição como desejar.

Aqui está o que está acontecendo no nível de blocos físicos:filme de dd & DU apagando um SSD

dan
fonte
11
Isso é equivalente à opção do Disk Utility de substituir por zeros e não estará totalmente seguro nos SSDs pelo mesmo motivo. Veja minha resposta para a explicação detalhada.
Gordon Davisson
→ Gordon: Eu li sua resposta e acho que entendi e votei por sua qualidade. Minha resposta é usar o dispositivo de disco bruto e não o bloco (como Utilitário de Disco). Isso deve ser verificado no SSD (com ferramentas confiáveis), mas até onde eu sei no antigo HD padrão usando caches, a interface do disco bruto era a maneira mais fácil de evitar esse cache. Um dispositivo SSD é simplesmente um disco HD em que o cache tem capacidade total e o disco físico é removido.
dan
O uso do dispositivo bruto (/ dev / rdisk *) ignora os caches do SO, mas não ignora a camada de conversão do flash (que é a fonte do problema que descrevi). De fato, não há como ignorá-lo do sistema operacional - o controlador do dispositivo simplesmente nunca expõe o verdadeiro armazenamento de flash bruto ao barramento (SATA ou o que seja), e como o sistema operacional só pode interagir com a unidade pelo barramento, não há maneira de obter acesso bruto o suficiente para fazer uma substituição segura.
Gordon Davisson
O primeiro passo ddaqui é não apenas ignorar algum nível de cache (não temos como saber sua capacidade), mas esgotá-los parcialmente (esse é o estado da figura 3). O segundo passe realmente precisará encontrar novos blocos e apagá-los com segurança.
dan
Isso ainda não é suficiente, por dois motivos: primeiro, quando o Disk Utility formata o disco, ele substitui apenas um pouco (tabela de partição, cabeçalhos de volume, etc.), e não há garantia suficiente para esgotar a capacidade extra. Segundo, não há garantia de que o DU de gravação extra atinja diferentes blocos físicos do que o que foi apagado anteriormente - dependendo da estratégia de alocação do controlador, é perfeitamente possível que você esteja apenas apagando os mesmos blocos físicos repetidamente. Foi por isso que disse que nem mesmo substituir todo o espaço duas vezes seria suficiente.
Gordon Davisson
7

O botão "Opções de segurança ..." no Utilitário de Disco está acinzentado para SSDs. De acordo com http://support.apple.com/kb/HT3680 , apagar um SSD normalmente pode ser seguro o suficiente:

Nota: Com o OS X Lion e uma unidade SSD, o Secure Erase e o Erasing Free Space não estão disponíveis no Disk Utility. Essas opções não são necessárias para uma unidade SSD porque uma exclusão padrão dificulta a recuperação de dados de um SSD. Para obter mais segurança, considere ativar a criptografia do FileVault 2 quando começar a usar a unidade SSD.

Ainda é possível executar algo parecido diskutil secureErase freespace 4 disk0s2com o Terminal na partição de recuperação.

Simplesmente ativar o FileVault 2 antes de apagar a unidade provavelmente é uma opção melhor. De acordo com esta resposta , executar uma limpeza remota também apenas apaga a chave de criptografia se o FileVault 2 estiver ativado:

Sim, quando você limpa remotamente o computador, ele faz uma limpeza segura. A Apple até avisa que pode levar até um dia. No entanto, se sua unidade foi criptografada com o FileVault 2, não é necessário apagar o disco. É suficiente apagar com segurança as chaves de criptografia armazenadas no disco, e é isso que elas fazem. É muito rápido e tão seguro quanto o sistema de criptografia subjacente, que por enquanto é muito seguro.

http://training.apple.com/pdf/wp_osx_security.pdf :

O FileVault 2 oferece aos departamentos de TI a capacidade de apagar a chave de criptografia de um determinado Mac a qualquer momento para garantir que os dados criptografados não possam ser acessados ​​pelas ferramentas de login ou recuperação de dados. Esse processo é chamado de limpeza remota.

Lri
fonte
5
Ativar a criptografia (por exemplo, FileVault) antes de armazenar dados confidenciais é uma excelente opção, mas me ocorre que o processo usado para "apagar" a chave de criptografia pode não ser totalmente seguro pelo mesmo motivo que uma exclusão segura padrão não é - - a chave de criptografia antiga ainda será armazenada no flash, apenas em uma página mapeada. Então, alguém que pode ignorar o controlador ainda poderia chegar à chave "apagado" ...
Gordon Davisson
@GordonDavisson, mas se você ativar novamente a criptografia ao formatar a unidade, a chave de criptografia antiga deverá ser substituída, portanto, os dados antigos não estarão acessíveis com segurança?
supersize
@supersize A chave de criptografia antiga pode ser substituída, mas depende exatamente de quais páginas físicas são apagadas durante a reformatação, e isso é algo que o firmware da unidade controla, não o sistema operacional.
Gordon Davisson