Apagando HD

Acabo de vender meu notebook mais antigo pelo Mercado Livre (incrível como ele desvalorizou de R$ 2700,00 para R$ 700,00 em apenas 3 anos).

Algo que eu considero importante antes de vender um notebook é apagar todos os arquivos pessoais, arquivos confidenciais, senhas salvas e qualquer outra informação que possa te prejudicar se cair nas mãos de alguém mal intencionado. Uma boa solução seria formatar o disco, certo? Errado.

A não ser que o disco esteja criptografado, formatar não é suficiente. Após uma formatação comum, os blocos que possuíam conteúdo são simplesmente marcados como disponíveis na tabela de endereços, ou seja, os dados permanecem no disco e podem ser recuperados utilizando alguma ferramenta específica, como o extundelete sobre o qual eu escrevi em outro artigo.

A forma mais eficiente de limpar completamente o disco e tornar os dados irrecuperáveis sem causar danos ao disco é a técnica conhecida como disk wiping utilizando um disk scrubbing, que basicamente sobrescreve todo o disco com zeros e/ou uns.

O método mais tradicional e simples de fazer um disk scrubbing em sistemas Unix é utilizar o dd ou o cat.

  1. Dê boot por um live disk

  2. Opcionalmente delete todas as partições com o gparted ou o fdisk

  3. Verifique badblocks com o badblocks ou fsck:

    badblocks -wvs /dev/sda
    fsck -f /dev/sda
    

    Acredito que utilizar o -w com o badblocks já é suficiente para não permitir a recuperação de dados do disco, pois ele escreve várias vezes em todos os blocos do disco. Para fazer o programa repetir a verificação várias vezes, utilize a opção -p. O processo demora algumas horas, uma forma de acelerar é aumentar o número de blocos testados por vez com a opção -c.

  4. Utilize um dos seguintes métodos, repetindo quantas vezes achar necessário

    2 vezes deve ser suficiente, a menos que o disco seja analisado por especialistas muito determinados.

    • Método 1

      Escrever zeros em todo o disco: dd if=/dev/zero of=/dev/sda

    • Método 2

      Escrever zeros e uns aleatoriamente (recomendado): dd if=/dev/urandom of=/dev/sda

    • Método 3

      Mesma função dos comandos anteriores, mas utilizando o cat. Escreve bits aleatórios duas vezes e zeros na terceira vez.

      cat /dev/urandom > /dev/sda;
      cat /dev/urandom > /dev/sda;
      cat /dev/zero > /dev/sda
      

      Em um HD de 250GB rodei com algumas mensagens para ter noção de tempo, mas mesmo após 10h não saiu na primeira:

      echo "Inicio em `date`";
      
      cat /dev/urandom > /dev/sda;
      echo "Escrita #1 finalizada em `date`";
      
      cat /dev/urandom > /dev/sda;
      echo "Escrita #2 finalizada em `date`";
      
      cat /dev/zero > /dev/sda;
      echo "Escrita #3 finalizada em `date`"
      

      Portanto acho melhor utilizar algum programa que exiba o andamento

    • Método 4

      Shred: Já vem instalado em várias distribuições. Exemplo de uso: shred -n 3 -z -v /dev/sda.

    • Método 5

      Baixe algum outro programa. Existem vários softwares gratuitos especialmente para essa finalidade que gravam zeros e uns em todo o disco e automaticamente repetem o processo várias vezes.

      Em uma busca rápida encontrei os seguintes programas: Dban, Autoclave, Wipe, KillDisk.

      Aparentemente, o mais utilizado para essa função é o DBAN, um boot disk de 11MB que pode ser baixado em http://www.dban.org/.

      O processo é um pouco demorado e depende do HD, em média deve levar algo em torno de 2 minutos por GB.


Julio Batista Silva
Julio Batista Silva
Engenheiro de Dados

Eu sou um engenheiro de computação apaixonado por ciência, tecnologia, fotografia e idiomas. Atualmente trabalhando como Engenheiro de Dados na Alemanha.

comments powered by Disqus