Quando um arquivo é excluído, seu conteúdo ainda pode ser deixado no sistema de arquivos, a menos que seja explicitamente substituído por outra coisa. O wipe
comando pode apagar com segurança os arquivos, mas não parece permitir o espaço livre em disco não usado por nenhum arquivo.
O que devo usar para conseguir isso?
Respostas:
Aviso: O hardware moderno do disco / SSD e os sistemas de arquivos modernos podem desviar os dados de locais onde você não pode excluí-los; portanto, esse processo ainda pode deixar os dados no disco. As únicas maneiras seguras de limpar dados são o comando ATA Secure Erase (se implementado corretamente) ou destruição física. Consulte também Como posso apagar com segurança todas as informações em um disco rígido?
Você pode usar um conjunto de ferramentas chamado exclusão segura.
Isso tem quatro ferramentas:
srm
- excluir com segurança um arquivo existentesmem
- excluir com segurança os traços de um arquivo do ramsfill
- limpe todo o espaço marcado como vazio no disco rígidosswap
- limpe todos os dados da troca de espaço.Na página do manual de
srm
fonte
cat /dev/zero >nosuchfile; rm nosuchfile
.A maneira mais rápida, se você precisa apenas de uma única passagem e deseja substituir tudo por zeros, é:
(execute a partir de um diretório no sistema de arquivos que você deseja limpar)
(o
sync
comando é uma medida de paranóia que garante que todos os dados sejam gravados no disco - um gerenciador de cache inteligente pode descobrir que pode cancelar gravações para quaisquer blocos pendentes quando o arquivo não está vinculado )Haverá um tempo durante esta operação em que não haverá espaço livre no sistema de arquivos, o que poderá levar dezenas de segundos se o arquivo resultante for grande e fragmentado, levando um tempo para excluir. Para reduzir o tempo em que o espaço livre é completamente zero:
Isso deve ser suficiente para impedir que alguém leia o conteúdo antigo do arquivo sem uma operação forense cara. Para uma variante um pouco mais segura, mas mais lenta, substitua
/dev/zero
por/dev/urandom
. Para mais paranóia, execute várias etapas com/dev/urandom
, embora se você precisar de muito esforço, oshred
utilitário do pacote coreutils seja o caminho a seguir:Observe que, acima, o arquivo pequeno é fragmentado antes de criar o maior, para que possa ser removido assim que o maior for concluído, em vez de ter que esperar que seja fragmentado, deixando o sistema de arquivos com espaço livre zero pelo tempo necessário. O processo de fragmentação demora muito tempo em um arquivo grande e, a menos que você esteja tentando ocultar algo da NSA, o IMO não é realmente necessário.
Todas as opções acima devem funcionar em qualquer sistema de arquivos.
Limites de tamanho de arquivo:
Como o DanMoulding aponta em um comentário abaixo, isso pode ter problemas com os limites de tamanho de arquivo em alguns sistemas de arquivos.
Para o FAT32, seria definitivamente uma preocupação devido ao limite de arquivos de 2GiB: a maioria dos volumes é maior que isso atualmente (8TiB é o limite de tamanho de volume IIRC). Você pode contornar isso canalizando a grande
cat /dev/zero
saída de saídasplit
para gerar vários arquivos menores e ajustar os estágios de destruição e exclusão de acordo.Com ext2 / 3/4, é menos preocupante: com o bloco 4K padrão / comum, o limite de tamanho do arquivo é 2TiB; portanto, você precisa ter um volume enorme para que isso seja um problema (o tamanho máximo do volume nessas condições é 16TiB).
Com o btrfs (ainda experimental), o tamanho máximo do arquivo e do volume é de 16EiB.
Em NTFS, o tamanho máximo do arquivo é maior que o tamanho máximo do volume, em alguns casos, mesmo.
Pontos de partida para obter mais informações:
http://en.wikipedia.org/wiki/Ext3#Size_limits
http://en.wikipedia.org/wiki/Btrfs
http://en.wikipedia.org/wiki/Ntfs#Scalability
Dispositivos virtuais
Conforme mencionado nos comentários recentemente, há considerações adicionais para dispositivos virtuais:
Para discos virtuais esparsamente alocados, outros métodos, como os usados por
zerofree
, serão mais rápidos (embora diferentementecat
edd
essa não seja uma ferramenta padrão em que você possa confiar em estar disponível em praticamente qualquer sistema operacional unix-like).Esteja ciente de que zerar um bloco em um dispositivo virtual esparso pode não limpar o bloco no dispositivo físico subjacente ; na verdade, eu diria que é improvável - o gerenciador de disco virtual apenas fará o bloco como não é mais usado para que possa ser alocado para outra coisa posteriormente.
Mesmo para dispositivos virtuais de tamanho fixo, você pode não ter controle de onde o dispositivo vive fisicamente, para que possa ser movido pela sua localização atual ou para um novo conjunto de discos físicos a qualquer momento, e o máximo que você pode limpar é a localização atual, não quaisquer locais anteriores em que o bloco tenha residido no passado.
Para os problemas acima em dispositivos virtuais: a menos que você controle o (s) host (s) e possa fazer uma limpeza segura do espaço não alocado depois de limpar os discos na VM ou mover o dispositivo virtual, não há nada que você possa fazer depois disso. facto. O único recurso é usar criptografia de disco completa desde o inícioportanto, nada não criptografado é todo gravado na mídia física em primeiro lugar. Ainda é possível que haja uma limpeza de espaço livre na VM, é claro. Observe também que o FDE pode tornar os dispositivos virtuais esparsos muito menos úteis, pois a camada de virtualização não pode realmente ver quais blocos não estão sendo usados. Se a camada do sistema de arquivos do sistema operacional envia comandos de apara para o dispositivo virtual (como se fosse um SSD) e o controlador virtual os interpreta, isso pode resolver isso, mas não conheço nenhuma circunstância em que isso realmente aconteça e uma resposta mais ampla. a discussão disso é uma questão para outro lugar (já estamos chegando perto de ser um tópico fora de questão para a pergunta original, portanto, se isso despertou seu interesse, algumas perguntas de experimentação e / ou acompanhamento podem estar em ordem).
fonte
secure-delete
ferramentas: usarsfill -llz
reduz todo o procedimento a uma passagem que apenas grava '0'.cat
edd
estão disponíveis em praticamente qualquer sistema operacional Unix-a-like, pois são consideradas ferramentas padrão, ondezerofree
não é provavelmente a menos que tenha sido adicionado explicitamente.zerofree
certamente funcionaria, é claro que a coisa "todo o sistema de arquivos temporariamente cheio" mencionado na página do manual (quase mas não completamente atenuada pelo pokery small.file do jiggery nos meus exemplos) é uma preocupação genuína se você estiver fazendo isso em um sistema ativo no momento, e forzerofree
realmente mais rápido na instância específica, ele é otimizado para: dispositivos de bloco virtual esparsamente alocados. Embora você não possa confiar em qualquer limpeza em um dispositivo virtual por motivos de segurança: a única resposta verdadeira nesse caso é a criptografia completa do dispositivo desde o início.AVISO
Fiquei chocado com quantos arquivos o photorec pôde recuperar do meu disco, mesmo após a limpeza.
Se há mais segurança no preenchimento do "espaço livre" apenas 1 vez com 0x00 ou 38 vezes com diferentes padrões cabalísticos, é mais uma discussão acadêmica. O autor do artigo seminal de 1996 sobre trituração escreveu para si mesmo um epílogo dizendo que isso é obsoleto e desnecessário para o hardware moderno. Não há nenhum caso documentado de dados sendo zerados fisicamente substituídos e recuperados posteriormente.
O verdadeiro link frágil neste procedimento é o sistema de arquivos . Alguns sistemas de arquivos reservam espaço para uso especial e não são disponibilizados como "espaço livre". Mas seus dados podem estar lá . Isso inclui fotos, e-mails pessoais em texto simples, o que for. Acabei de pesquisar no espaço reservado + space + ext4 e aprendi que 5% da minha
home
partição estava reservada. Acho que foi aqui quephotorec
encontrei muito do meu material. Conclusão: o método de trituração não é o mais importante, mesmo o método de múltiplas passagens ainda deixa os dados no lugar .Você pode tentar
# tune2fs -m 0 /dev/sdn0
antes de montá-lo. (Se essa for a partição raiz após a reinicialização, execute-m 5
ou-m 1
desmonte).Mas ainda assim, de uma maneira ou de outra, pode haver algum espaço restante.
A única maneira verdadeiramente segura é limpar toda a partição, criar um sistema de arquivos novamente e restaurar seus arquivos a partir de um backup.
Maneira rápida (recomendado)
Execute a partir de um diretório no sistema de arquivos que você deseja limpar:
Notas: o objetivo do arquivo pequeno é reduzir o tempo em que o espaço livre é completamente zero; o objetivo da sincronização é garantir que os dados sejam realmente gravados.
Isso deve ser bom o suficiente para a maioria das pessoas.
Caminho lento (paranóico)
Não há casos documentados de recuperação de dados após a limpeza acima. Seria caro e exigente em recursos, se possível.
No entanto, se você tiver um motivo para pensar que as agências secretas gastariam muitos recursos para recuperar seus arquivos, isso deve ser suficiente:
Demora muito mais tempo.
Aviso. Se você escolheu o caminho paranóico, depois disso, você ainda deseja fazer a limpeza rápida, e isso não é paranóia. A presença de dados puramente aleatórios é fácil e barata de detectar e levanta a suspeita de que na verdade são dados criptografados. Você pode morrer sob tortura por não revelar a chave de descriptografia.
Caminho muito lento (paranóico louco)
Até o autor do artigo seminal de 1996 sobre trituração escreveu um epílogo dizendo que isso é obsoleto e desnecessário para o hardware moderno.
Mas se você ainda tem muito tempo livre e não se importa de desperdiçar seu disco com muita substituição, lá vai:
Nota: isso é essencialmente equivalente ao uso da ferramenta de exclusão segura.
Antes da edição, este post era uma reescrita de David Spillett. O comando "cat" produz uma mensagem de erro, mas não consigo escrever comentários nas postagens de outras pessoas.
fonte
cat
comando é esperado para dar um erro "sem espaço deixado" em meus exemplos, no final da sua corrida. Você pode ocultar isso redirecionando o stderr para/dev/null
se houver algum problema. Eu costumo usar, empv
vez decat
oudd
para esse tipo de coisa, para obter uma indicação útil do progresso....raises the suspicion that it is actually encrypted data. You may die under torture for not revealing the decryption key.
Heh, era exatamente isso que eu estava pensando. Eu acho que isso significa que eu sou paranóico ...dd
executar como root dá acesso a mais do sistema de arquivos do quedd
sem raiz? Eu quero acreditar que isso é verdade, mas não vejo razão para isso no momento.Há um utilitário zerofree pelo menos no Ubuntu:
http://manpages.ubuntu.com/manpages/natty/man8/zerofree.8.html
Verifique também este link sobre o zerofree: Mantendo as imagens do sistema de arquivos dispersas - é de seu autor - Ron Yorston (9 de agosto de 2012)
fonte
Veja como fazer isso com uma GUI.
O avanço do BleachBit sobre o dd (que de outra forma é muito bom) é quando o disco está finalmente cheio, o BleachBit cria pequenos arquivos para limpar os inodes (que contém metadados como nomes de arquivos, etc.).
fonte
Uso
dd
para alocar um ou mais arquivos grandes para preencher o espaço livre e, em seguida, uso um utilitário de exclusão segura.Para alocar arquivos com o dd, tente:
Isso irá gerar um arquivo com
delete_me
tamanho de 100 MB. (Aquibs
está o "tamanho do bloco" definido como 1k ecount
é o número de blocos a serem alocados).Em seguida, use seu utilitário de exclusão segura favorito (eu venho usando
shred
) nos arquivos criados.NOTA: O buffer significa que, mesmo que você faça o disco inteiro , talvez não obtenha absolutamente tudo!
Este link recomenda
scrub
a limpeza de espaço livre. Ainda não tentei.fonte
scrub
uma vez e corrompeu todo o sistema de arquivos. Felizmente, tive o bom senso de experimentar primeiro um sistema de arquivos de teste, NÃO meus dados reais.Limpe uma unidade na velocidade máxima.
Hoje em dia, as instruções típicas para criptografar uma unidade dizem para você primeiro limpar a unidade.
O comando abaixo preencherá sua unidade com texto cifrado AES.
Use um CD ao vivo se precisar limpar sua unidade de inicialização principal.
Abra um terminal e eleve seus privilégios:
Vamos listar todas as unidades no sistema para serem seguras:
NOTA: Substitua
/dev/sd{x}
pelo dispositivo que deseja limpar.AVISO: Isto não é para amadores! Você pode deixar seu sistema não inicializável !!!
Estou surpreso com a rapidez com que isso é.
fonte
Você provavelmente já possui o pacote GNU coreutils instalado no seu sistema. Ele fornece o comando shred .
fonte
Você pode limpar seu espaço livre usando o pacote de exclusão segura.
Nesse pacote, você encontra a
sfill
ferramenta projetada para excluir os dados que estão no espaço em disco disponível nas mídias, de maneira segura e que não pode ser recuperada por ladrões, policiais ou outras ameaças.Para instalar o pacote de exclusão segura no Linux (Ubuntu), instale-o pelo seguinte comando:
Em seguida, para apagar seus dados sem espaço livre, tente o seguinte comando:
Onde / YOUR_MOUNTPOINT / OR_DIRECTORY é seu ponto de montagem (
df -h
,mount
) ou diretório para limpar o espaço livre.Leia o manual em http://manpages.ubuntu.com/manpages/hardy/man1/sfill.1.html
fonte
use dd e apenas zere o espaço livre. trata-se de um dado de mito que precisa ser sobrescrito várias vezes (basta perguntar a Peter Guntmann) e dados aleatórios, em oposição a 1 e então 0 implica atividade não natural. então o resultado final é uma unidade limpa, com muito menos tempo gasto escrevendo. além disso, os programas de exclusão segura não podem garantir que eles sobrescrevam o arquivo real em sistemas de arquivos modernos (registrados em diário). faça um favor a si mesmo e obtenha o photorec, analise sua unidade para ver a bagunça, limpe-a com zeros e, opcionalmente, com zeros para torná-la intacta. se o photorec ainda encontrar alguma coisa, lembre-se de que está digitalizando tudo o que está disponível; faça isso com cuidado novamente com o usuário root.
lembre-se, a cia / fbi / nsa não possui uma máquina sofisticada capaz de ler o estado real de seus bits de mídia magnética. isso foi apenas um artigo escrito há muito tempo. um "e se". você só precisa limpar uma vez.
fonte
Mais fácil é usar o scrub :
Isso criará uma
dump
pasta no local atual e criará o arquivo até que o disco esteja cheio. Você pode escolher um padrão com a-p
opção (nnsa|dod|bsi|old|fastold|gutmann
).Não é fácil instalar o scrub ( consulte os Fóruns do Ubuntu sobre isso ), mas depois que a instalação estiver concluída, você terá uma ferramenta realmente SIMPLES e eficiente em suas mãos.
fonte
scrub
uma vez e corrompeu todo o sistema de arquivos. Felizmente, tive o bom senso de experimentar primeiro um sistema de arquivos de teste, NÃO meus dados reais.scrub -X dump_dir
e parece ter funcionado bem. BTW, a instalação no Ubuntu 14.04 é muito simples:apt-get install scrub
.Aqui está o script "sdelete.sh" que eu uso. Veja os comentários para obter detalhes.
fonte
Encontrei uma solução simples que funciona no Linux e no MacOS. Mova a pasta raiz do seu disco e inicie este comando:
onde // DISKSPACE // é o tamanho em GB do seu disco rígido.
fonte
Às vezes eu uso este bash one-liner:
Quando começar a dizer que o disco está cheio, basta pressionar Ctrl+ Ce remover os
zero.*
arquivos criados .Funciona em qualquer sistema, independentemente do tamanho do arquivo.
Ignore os
cat: write error: File too large
erros.fonte
Esta não é uma resposta! Apenas um comentário para aqueles que desejam usar
pv
... então não se preocupe em votar.No Linux Mint 17.3, você pode usar
pv
( exibição de pipe ) para obter progresso na gravação. Por exemplo:A vantagem aqui é que você obtém uma barra de progresso, ETA e taxa de dados atualizada continuamente. A desvantagem é que isso está escrito em uma linha e, quando o disco está cheio (retornando um erro), ele desaparece. Isso acontece porque o tamanho total é aproximado, pois o sistema operacional provavelmente usará o disco enquanto essa operação muito longa estiver ocorrendo, especialmente no volume do sistema operacional.
Em um HD muito antigo, recebo uma taxa de dados de cerca de 13 MB / s usando
/dev/urandom
e cerca de 70 MB / s ao usá-lo/dev/zero
. Provavelmente isso melhoraria ainda mais ao usar um rawdd
oucat
nãopv
.fonte
Depois que o arquivo sai do registro do sistema de arquivos, os dados que são deixados no disco rígido ficam sem sequência de 1 e 0. Se você deseja substituir essa sequência sem sentido por outra sequência sem sentido, posso aconselhar alguns produtos comerciais para apagar unidades com segurança, como arconis.
fonte