Categories: Tecnologia

Como excluir arquivos com segurança no Linux

Biehler Michael / Shutterstock.com

Destrua arquivos de dados antigos pelo mesmo motivo que destrói documentos em papel antigos. Dizemos a você o que você precisa saber sobre a exclusão segura de arquivos Linux. Este tutorial cobre o shredcomando e o secure-deleteconjunto de utilitários.

Os arquivos excluídos são normalmente recuperáveis

Excluir um arquivo, na verdade, não o remove do disco rígido. Tudo depende da forma como seu sistema de arquivos usa inodes. Estas são as estruturas de dados dentro do sistema de arquivos que contêm os metadados relativos aos arquivos. O nome do arquivo, sua posição no disco rígido, quais atributos e permissões ele possui e assim por diante, são armazenados em um inode. Um diretório não é mais do que um arquivo em si. Aquele que contém os nomes e números de inode dos arquivos que o diretório contém.

Quando você exclui um arquivo com rm, o sistema de arquivos libera o inode apropriado e ajusta o arquivo do diretório. Isso marca o espaço no disco rígido que o arquivo costumava ocupar como não utilizado. Imagine que você entra em uma biblioteca e examina o índice do cartão, encontra o cartão do catálogo de um livro e o rasga. O livro ainda está na estante. É apenas mais difícil de encontrar.

Em outras palavras, o espaço que era usado pelo arquivo agora está livre para ser usado por outros arquivos. Mas o conteúdo do arquivo antigo ainda permanece naquele espaço. Até que esse espaço seja sobrescrito, há uma boa chance de que o arquivo possa ser recuperado.

Mas livrar-se completamente de um arquivo não é tão simples quanto simplesmente substituí-lo. Como veremos.

Não faça isso com SSDs

Essas técnicas são para unidades de disco rígido eletromecânicas (HDD) tradicionais e não devem ser usadas com unidades de estado sólido (SSD). Não funcionará e causará gravações extras e desgaste desnecessário do SSD. Para apagar dados de um SSD com segurança, você deve usar o utilitário fornecido pelo fabricante do SSD.

O Comando de Fragmentação

shred foi projetado para realizar a substituição para você, de forma que um arquivo excluído não possa ser recuperado. Ele está incluído em todas as distribuições Linux testadas durante a pesquisa para este artigo, incluindo Ubuntu, Fedora e Manjaro.

Neste exemplo, trabalharemos em um diretório chamado ~ / research, que contém muitos arquivos de texto. Ele também contém alguns outros diretórios que, por sua vez, contêm outros arquivos. Vamos assumir que esses arquivos são confidenciais e devem ser totalmente apagados do disco rígido.

Podemos ver a estrutura em árvore do diretório usando o treecomando a seguir. A -dopção (diretório) faz treecom que apenas os diretórios sejam listados e não todos os arquivos. A estrutura da árvore do diretório é semelhante a esta:

árvore -d

Destruindo um único arquivo

Para destruir um único arquivo, podemos usar o seguinte comando. As opções que estamos usando são:

  • u : Desalocar e remover o arquivo após a substituição.
  • v : opção detalhada, de modo que shrednos diz o que está fazendo.
  • z : Executa uma substituição final com zeros.
shred -uvz Preliminary_Notes.txt_01.txt

shredsobrescreve o arquivo quatro vezes por padrão. As três primeiras passagens usam dados aleatórios e a passagem final usa zeros, conforme solicitamos. Em seguida, ele remove o arquivo e sobrescreve alguns dos metadados no inode

Definir o número de passes de substituição

Podemos pedir shredpara usar mais ou menos passagens de substituição usando a -nopção (número). shredsempre usará pelo menos um passe. O número que fornecemos aqui é o número de passes extras que precisamos shredexecutar. Portanto shred, sempre fará uma passagem a mais do que o número que pedimos. Para obter três passes no total, solicitamos dois passes extras:

shred -uvz -n 2 Preliminary_Notes.txt_02.txt

Como esperado, shredfaz três passes.

Menos passes – menos retalhamento, se quiser – é obviamente mais rápido. Mas é menos seguro? Curiosamente, três passes são provavelmente mais do que suficientes.

Destruindo vários arquivos

Os curingas podem ser usados shredpara selecionar grupos de arquivos a serem apagados. O  * representa vários caracteres e  ? representa um único caractere. Este comando excluiria todos os arquivos “Preliminary_Notes” restantes no diretório de trabalho atual.

shred -uvz -n 2 Preliminary_Notes _ *. *

Os arquivos restantes são processados  shredseparadamente.

shred não tem opção recursiva, portanto, não pode ser usado para apagar árvores de diretórios de diretórios aninhados.

O problema de excluir arquivos com segurança

Por melhor que shredseja, há um problema. Os sistemas de arquivos com registro de mudanças modernos, como ext3 e ext4, fazem um tremendo esforço para garantir que não quebrem, sejam corrompidos ou percam dados. E com os sistemas de arquivos com registro em diário, não há garantia de que a sobregravação esteja realmente ocorrendo no espaço do disco rígido usado pelo arquivo excluído.

Se tudo o que você deseja tranquilidade é que os arquivos foram excluídos um pouco mais completamente do que rmteria feito, shredprovavelmente tudo bem. Mas não cometa o erro de pensar que os dados definitivamente sumiram e são totalmente irrecuperáveis. Possivelmente não é o caso.

O pacote de exclusão segura

Os secure-delete comandos tentam superar os melhores esforços dos sistemas de arquivos com diário e obter sucesso na substituição do arquivo com segurança. Mas exatamente as mesmas advertências se aplicam. Ainda não há garantia de que a substituição esteja realmente ocorrendo na região do disco rígido de que você precisa para apagar o arquivo de interesse. Há mais chance, mas não há garantia.

Os secure-deletecomandos usam a seguinte sequência de substituições e ações:

  • 1 sobrescrever com bytes de valor 0xFF.
  • 5 sobrescreve com dados aleatórios.
  • 27 sobrescreve com valores especiais definidos por Peter Gutmann.
  • Mais 5 substituições com dados aleatórios.
  • Renomeie o arquivo com um valor aleatório.
  • Truncar o arquivo.

Se tudo isso parece excessivo para você, você está em boa companhia. Também parece excessivo para Peter Gutmann, professor da Universidade de Aukland. Ele publicou um artigo em 1996 discutindo essas técnicas , do qual surgiu o mito urbano de que é necessário usar todas as técnicas discutidas naquele artigo de uma vez.

Peter Gutmann, desde então, tentou colocar o gênio de volta na garrafa, dizendo “Uma boa limpeza com dados aleatórios fará tão bem quanto o esperado.”

Mas estamos onde estamos, e essas são as técnicas empregadas pelos secure-deletecomandos. Mas primeiro, precisamos instalá-los.

Instalando Secure-delete

Use  apt-get para instalar este pacote em seu sistema se você estiver usando o Ubuntu ou outra distribuição baseada em Debian. Em outras distribuições Linux, use a ferramenta de gerenciamento de pacotes da distribuição Linux.

sudo apt-get install secure-delete

Existem quatro comandos incluídos no secure-deletepacote.

  1. srmé um seguro rm, usado para apagar arquivos, excluindo-os e sobrescrevendo seu espaço no disco rígido.
  2. sfill é uma ferramenta para sobrescrever todo o espaço livre em seu disco rígido.
  3. sswap é usado para substituir e limpar seu espaço de troca.
  4. sdmem é usado para limpar sua RAM.

O Comando srm

Você usa o srmcomando da mesma forma que o faria rm. Para remover um único arquivo, use o seguinte comando. A -zopção (zeros) faz smrcom que sejam usados ​​zeros para a limpeza final em vez de dados aleatórios. A -vopção (detalhada) srmnos informa de seu progresso.

srm -vz Chapter_One_01.txt

A primeira coisa que você notará é que srmé lento. Ele fornece algum feedback visual enquanto funciona, mas é um alívio quando você vê o prompt de comando novamente.

Você pode usar a opção -l(diminuir a segurança) para reduzir o número de passes para dois, o que acelera drasticamente.

srm -lvz Chapter_One_02.txt

srm informa que isso – em sua opinião – é menos seguro, mas ainda assim exclui e sobrescreve o arquivo para nós.

Você pode usar a opção -l (diminuir a segurança) duas vezes, para reduzir o número de passes para um.

srm -llvz Chapter_One_03.txt

Usando srm com vários arquivos

Também podemos usar curingas com srm. Este comando apagará e limpará as partes restantes do capítulo um:

srm -vc Chapter_One_0? .txt

Os arquivos são processados ​​por srmsua vez.

Excluindo diretórios e seus conteúdos com srm

A -ropção (recursiva) fará com que srmapague todos os subdiretórios e seus conteúdos. Você pode passar o caminho para o primeiro diretório srm.

Neste exemplo, estamos excluindo tudo do diretório atual, ~ / research. Isso significa que todos os arquivos em ~ / research e todos os subdiretórios foram removidos com segurança.

srm -vz *

srm começa a processar os diretórios e arquivos.

Ele eventualmente retorna você ao prompt de comando. Na máquina de teste em que este artigo foi pesquisado, demorou cerca de uma hora para remover cerca de 200 arquivos distribuídos entre o diretório atual e três diretórios aninhados.

Todos os arquivos e subdiretórios foram removidos conforme o esperado.

O comando sfill

E se você estiver preocupado com um arquivo que excluiu usando rm, como você pode repassar aquele antigo terreno e certificar-se de que foi sobrescrito? O sfillcomando substituirá todo o espaço livre em seu disco rígido.

Ao fazer isso, você notará que tem cada vez menos espaço livre no disco rígido, até o ponto em que não há espaço livre nenhum. Quando sfillconcluído, ele libera todo o espaço livre de volta para você. Se você estiver administrando um sistema multiusuário, isso seria muito problemático, portanto, essa é uma tarefa de manutenção que deve ser realizada fora do horário.

Mesmo em um computador de usuário único, a perda de espaço no disco rígido significa que ele fica inutilizável, uma vez que sfillocupa a maior parte do espaço. Isso é algo que você começaria e depois se afastaria.

Para tentar acelerar um pouco as coisas, você pode usar a opção -l(diminuir a segurança). As outras opções são as opções -v(detalhada) e -z  (zeros) que vimos anteriormente. Aqui, estamos pedindo sfillpara sobrescrever com segurança todo o espaço livre no diretório / home.

sudo sfill -lvz / home

Sinta-se a vontade. No computador de teste – que tem apenas um disco rígido de 10 GB – isso foi iniciado no meio da tarde e concluído durante a noite.

Vai se agitar por horas. E isso é com a opção -l(diminuir a segurança). Mas, eventualmente, você retornará ao prompt de comando.

O Comando sswap

O sswapcomando sobrescreve o armazenamento em sua partição swap. A primeira coisa que precisamos fazer é identificar sua partição swap. Podemos fazer isso com o blkidcomando, que lista os dispositivos de bloco.

sudo blkid

Você precisa localizar a palavra “swap” e anotar o dispositivo de bloco ao qual ela está conectada.

Podemos ver que a partição swap está conectada /dev/sda5.

Precisamos desligar as gravações em disco na partição de swap durante a substituição. Usaremos o swapoffcomando:

sudo swapoff / dev / sda5

Agora podemos usar o sswapcomando.

Usaremos /dev/sda5como parte da linha de comando para o sswapcomando. Também usaremos as -vopções (verbosa) e -ll(diminuir a segurança), que usamos anteriormente.

sudo sswap -llv / dev / sda5

sswapcomeça a trabalhar em sua partição swap, sobrescrevendo tudo o que está nela. Não leva tanto tempo quanto sfill. Parece que sim.

Depois de concluído, precisamos restabelecer a partição de swap como um espaço de swap ativo. Fazemos isso com o swaponcomando:

sudo swapon / dev / sda5

O comando sdmem

O secure-deletepacote ainda contém uma ferramenta para limpar os chips de memória de acesso aleatório (RAM) do computador.

Um ataque de inicialização a frio requer acesso físico ao computador logo após ele ser desligado. Esse tipo de ataque pode, potencialmente, permitir a recuperação de dados de seus chips de RAM.

Se você acha que precisa se proteger contra esse tipo de ataque – e seria um exagero para a maioria das pessoas pensar que precisariam – você pode limpar sua RAM antes de desligar o computador. Usaremos as opções -v(detalhado) e -ll(diminuir a segurança) mais uma vez.

sudo sdmem -vll

A janela do terminal será preenchida com asteriscos como uma indicação de que sdmemestá passando por sua RAM.

A opção fácil: basta criptografar sua unidade

Em vez de excluir arquivos com segurança, por que não proteger seu disco rígido ou sua pasta de início usando criptografia?

Se você fizer isso, ninguém poderá acessar nada, seja um arquivo ativo ou excluído. E você não precisa estar em guarda e lembrar de apagar arquivos confidenciais com segurança, porque todos os seus arquivos já estão protegidos.

A maioria das distribuições do Linux pergunta se você deseja usar criptografia no momento da instalação. Dizer “sim” poupará muitos aborrecimentos futuros. Você não pode lidar com informações secretas ou sensíveis. Mas se você acha que pode dar ou vender o computador para outra pessoa quando terminar de usá-lo, a criptografia também simplificará isso.

maisroot

Recent Posts

O novo aplicativo “PC Manager” da Microsoft se parece muito com o CCleaner

Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…

1 ano ago

Como reiniciar um PS4

Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…

1 ano ago

Veja por que as reticências são tão assustadoras ao enviar mensagens de texto…

A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…

1 ano ago

O telescópio James Webb acaba de capturar os “Pilares da Criação”

A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…

1 ano ago

Você poderá baixar o Proton Drive mais cedo do que pensa

O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…

1 ano ago

Como aumentar o zoom no Photoshop

Para ver suas fotos mais de perto ou para uma edição precisa , você pode…

1 ano ago