Como excluir com segurança os arquivos armazenados em um SSD?

27

De um artigo (muito longo, mas definitivamente vale a pena ler) sobre SSDs :

Quando você exclui um arquivo no seu sistema operacional, não há reação do disco rígido ou do SSD. Somente quando você sobrescreve o setor (em um disco rígido) ou a página (em um SSD) você perde os dados. Os programas de recuperação de arquivos usam essa propriedade a seu favor e é assim que eles ajudam a recuperar arquivos excluídos.

A principal distinção entre HDDs e SSDs, porém, é o que acontece quando você sobrescreve um arquivo. Enquanto um HDD pode simplesmente gravar os novos dados no mesmo setor, um SSD alocará uma nova página (ou usada anteriormente) para os dados substituídos. A página que contém os dados agora inválidos será simplesmente marcada como inválida e, em algum momento, será apagada.

Então, qual seria a melhor maneira de apagar com segurança os arquivos armazenados em um SSD? A substituição de dados aleatórios como estamos acostumados a partir de discos rígidos (por exemplo, o uso do utilitário "shred") não funcionará, a menos que você substitua a unidade inteira ...

c089
fonte

Respostas:

22

Que tal criptografar o próprio volume? Os dados excluídos ainda estarão lá, mas devem estar inacessíveis para qualquer pessoa sem a chave apropriada.

teabot
fonte
Engraçado eu não pensei sobre isso - como eu sempre usar criptografia LUKS em meus discos rígidos de qualquer maneira;)
c089
Conforme declarado aqui, isso terá sérios impactos no desempenho. Com unidades baseadas em SandForce, o uso de apagamento seguro do ATA limpará a chave de criptografia AES, fornecendo uma solução para o problema de exclusão segura quando não estiver usando criptografia de software.
c089 27/02
12

Se a unidade SSD suportar o conjunto de recursos do modo de segurança ATA, ela possui a funcionalidade de exclusão segura integrada, que você poderá acessar usando algo como Apagar Seguro, documentado aqui e aqui .

bk1e
fonte
2
+1 para o conjunto de recursos do modo de segurança ATA. Há um bom vídeo sobre isso em SecurityTube.net
RJFalconer 13/08/09
2
Mas esse recurso é apenas para unidades completas também, não é?
C089 14/08/2009
@ Chris089: Está correto: a exclusão segura apagará toda a unidade. A substituição de toda a unidade por dados aleatórios não garante a exclusão de toda a unidade, devido ao subprovisionamento. (Mas isso pode tornar alguns dados não analisados ​​inacessíveis aos usuários comuns.) Consulte anandtech.com/storage/showdoc.aspx?i=3531&p=9 para obter mais informações.
bk1e
Cuidado: foi encontrado que as unidades (mais antigas) não implementam esse recurso como deveria. Também deve funcionar para os HDDs, mas nos SSDs tem a vantagem de poder terminar em segundos em vez de horas.
Maarten Bodewes
Um problema frustrante com o Secure Erase é que muitas unidades exigem que você os ligue e desligue fisicamente (desconecte o conector de alimentação e conecte-o novamente) para tirá-los do estado de "segurança congelada". Somente então o Secure Erase funciona. Nem sempre é fácil ou desejável ter que abrir o seu PC, especialmente quando se trata de um laptop ou de um sistema embarcado pior.
misha256
10

Mesmo se você substituir a unidade inteira, não poderá ter certeza absoluta, pois os HDs e SSDs contêm setores sobressalentes que são substituídos quando ocorrem falhas ou, no caso de SSDs, para ajudar no nivelamento do desgaste .

Se você deseja ter certeza absoluta de que os dados não podem ser recuperados, é necessário destruir fisicamente a unidade além da recuperação. A substituição fornece uma segurança razoável nos HDs - nos SSDs, não há realmente uma maneira de conseguir isso. Se você preencher toda a unidade, ainda é possível que o bloco em que os dados foram inseridos tenha sido alterado para um bloco sobressalente para nivelamento de desgaste e reaparecerá mais tarde.

Michael Borgwardt
fonte
Ainda não é possível reduzir a votação, mas a resposta de exclusão segura invalida esse argumento. Obviamente, se você não quiser confiar na exclusão segura do fabricante, a destruição física do flash é uma opção. Mas certifique-se de incinerá-lo ou quebrar todos os chips, pois o flash é muito resistente.
Maarten Bodewes
Observe que esta é uma resposta antiga; a essa altura, o SECURE ERASE deve ser suportado pela maioria das unidades, se não todas, incluindo a maioria das unidades de disco rígido.
Maarten Bodewes
1
Apagar seguro limpe todo o SSD. Mas não separar conjunto de arquivos ou partição.
Mikhail Moskalev
9

Devido à natureza da memória flash NAND, os SSDs não podem substituir diretamente os dados. A substituição repetida de um arquivo antes de excluí-lo não o apagará com segurança em um SSD - os dados seriam gravados apenas em outro local na NAND.

Para entender por que esse é o caso, é necessário explicar como os SSDs funcionam internamente.

  • O flash NAND é dividido em blocos , cada um consistindo em um conjunto de páginas com tamanho tipicamente de 4 KB (mais códigos de correção de erros). A maioria dos SSDs modernos usa NAND com blocos de 128 páginas para um tamanho de bloco de 512 KB, embora algumas unidades, especialmente as mais antigas, possam usar blocos de 256 KB ou menores. O diagrama a seguir assume blocos de 256 KB, mas o conceito é o mesmo, independentemente do tamanho do bloco.

Diagrama de páginas em um bloco NAND
Fonte - Classificador de música de cortesia na Wikipedia, CC BY-SA 3.0

  • Cada página pode ser gravada individualmente, mas as páginas não podem ser reescritas até serem apagadas, e a exclusão só pode ser feita em blocos inteiros. Isso significa que sempre que os dados são reescritos, o SSD deve marcar os dados nas páginas afetadas como inválidos e reescrevê-los em outro local, possivelmente em um bloco diferente. Em um momento mais apropriado, idealmente quando a unidade está ociosa e todas as páginas de um bloco são marcadas como inválidas, o SSD pode apagar os blocos que não estão mais em uso. Esse processo de limpeza é chamado de coleta de lixo .

  • Para que o SSD saiba quais blocos podem ser apagados, o sistema operacional deve informar quais blocos não contêm mais dados válidos. Isso é feito usando o comando ATA TRIM . O SSD fica livre para coletar o lixo desses blocos não utilizados.

Os SSDs tentam espalhar gravações uniformemente pela NAND para evitar falhas prematuras, um processo que depende do espaço livre disponível para a unidade.

  • Cada bloco NAND pode suportar apenas um número finito de ciclos de gravação / apagamento. Muitos dos SSDs de consumo de hoje usam NAND de 19 a 21nm, onde cada bloco é bom por cerca de 3.000 ciclos antes de se tornar inutilizável, embora SSDs empresariais e vários SSDs de consumo sofisticados que usam tipos mais duráveis ​​de NAND estejam disponíveis comercialmente.

  • Em todos os casos, no entanto, os SSDs devem espalhar as gravações por toda a unidade para evitar o desgaste indevido de um único bloco, a fim de evitar falhas prematuras da unidade, através de um processo chamado nivelamento de desgaste . O nivelamento eficiente do desgaste só pode ser alcançado se houver uma certa quantidade de espaço ( excesso de provisionamento ) reservada para permitir a coleta eficiente de lixo, conforme necessário, mesmo que a unidade esteja quase cheia.

  • Sob condições extremas em que o SSD está sendo solicitado a gravar dados mais rapidamente do que pode apagar blocos antigos (comum em cargas de trabalho de datacenter com muita gravação), pode ser forçado a reescrever os dados em um bloco em outro bloco e depois apagar o bloco antigo imediatamente para abrir caminho para novos dados, antes que eles tenham a chance de executar a coleta de lixo.

  • A reescrita forçada de um bloco é inferior ao ideal, pois diminui o desempenho e contribui para a amplificação de gravação , onde mais dados são gravados na NAND subjacente do que a quantidade real que o inversor é instruído a gravar. O excesso de provisionamento adicional ajuda a reduzir a amplificação de gravação, fornecendo mais espaço livre para reescrever dados e apagar blocos antigos. É por isso que os SSDs corporativos de ponta, como o Samsung SSD 845DC PRO, vêm em tamanhos de 200 GB e 400 GB, embora a unidade realmente contenha mais perto de 256 ou 512 GB de NAND, respectivamente. Veja também: Por que os SSDs têm tamanhos estranhos?

  • A série de documentos técnicos SSD da Samsung fornece uma explicação completa do funcionamento interno dos SSDs. Escrever e apagar páginas e blocos da NAND e coleta de lixo é explicado no white paper 04 .

A única maneira de realmente apagar dados em um SSD é usar os comandos ATA Secure Erase.

  • O Secure Erase instrui a unidade a limpar todos os dados armazenados, incluindo os dados que podem permanecer nas regiões NAND provisionadas em excesso. Todos os blocos são apagados quando isso é feito, resultando em uma unidade intocada.

  • Em unidades com capacidade de criptografia automática, o Secure Erase pode ser simplesmente implementado limpando a chave de criptografia. Como os dados no NAND de uma unidade criptografada são ilegíveis sem a chave, não há necessidade de apagar todos os blocos, conforme seria necessário em uma unidade não criptografada.

bwDraco
fonte
Cuidado para que nem todas as unidades implementem corretamente os comandos de exclusão segura. Se você ainda deseja usar a unidade, isso pode ser o melhor que você pode fazer se não tiver a previsão de criptografar desde o início. Se você deseja descartar a unidade, destrua-a fisicamente - especialmente os chips flash.
24414 Bob
Se for necessária destruição física, eu abriria a unidade e destruiria o PCB subjacente.
bwDraco
@Bob Você tem um link para uma fonte que discute a implementação incorreta? O secure_erasecomando faz parte do padrão ATA. Pode não estar presente em algumas unidades mais baratas, mas, se existir, deve funcionar corretamente. O motivo pelo qual ele funciona melhor do que outras opções é que restaura a unidade à sua configuração original de fábrica. Mesmo nos HDDs, é mais rápido e eficaz do que ferramentas como DBAN.
Paul
@Paul security.stackexchange.com/questions/41676/… , usenix.org/legacy/events/fast11/tech/full_papers/Wei.pdf , security.stackexchange.com/questions/62253/... Não há absolutamente garantia de zero arbitrária O firmware da unidade implementa corretamente qualquer comando (os bugs podem acontecer em qualquer lugar) - e os testes provaram que pelo menos algumas unidades definitivamente não. No final do dia, o maior problema é que você não pode realmente verificar o apagamento correto.
22414 Bob
1
Como não podemos fazer uma declaração geral / garantia de sucesso, devemos assumir que pelo menos algumas unidades não a implementam corretamente. Se assumirmos que algumas unidades não a implementam corretamente, o mais seguro é assumir que nenhuma unidade as implemente corretamente até que seja provado o contrário. E não é fácil provar - apagar pode parecer correto para você, enquanto retém informações sobre os chips flash, pelo que você sabe - o que significa que você sempre deve destruir fisicamente qualquer coisa realmente sensível.
22414 Bob
6

Conforme afirmado pelo @teabot, o uso de software de criptografia de disco completo contornará a questão da exclusão segura, porque você não precisa mais. No entanto, conforme declarado em uma pergunta relacionada , isso terá enormes impactos no desempenho, pois evita muitos recursos do controlador, como compactação e TRIM, e foi relatado que diminui o desempenho até um nível em que um disco rígido normal é mais rápido que o caro SSD. Para dispositivos baseados em SandForce, existe uma solução melhor: esses dispositivos usam criptografia AES por padrão e a chave será apagada quando você usar o recurso de exclusão segura do ATA, tornando todos os dados inacessíveis, a menos que o invasor possa quebrar o AES (128 bits para 256 bits atuais) para as novas unidades lançadas em março de 2011).

c089
fonte
1
No entanto, não parece haver uma solução para excluir com segurança apenas alguns arquivos. Você precisa apagar o disco inteiro.
C089 de 01/03
3

Como você pensou, limpar todo o espaço livre para garantir que todos os blocos que costumavam conter os dados sejam limpos é a única maneira de ter certeza. Bem, além de tirar um nuking do site da órbita ...

Isso consumirá bastante tempo e reduzirá a vida útil dos chips flash, se você usar um fragmento de várias passagens.

A outra maneira de proteger os dados excluídos é armazená-los criptografados em primeiro lugar, usando um sistema de arquivos criptografado usando algo como truecrypt.

David Spillett
fonte