você está aqui: Home  → Arquivo de Mensagens

srm - deleção segura de arquivos

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 12 de junho de 2013

Ao apagarmos um arquivo, na verdade estamos apenas liberando os blocos de dados a ele alocados, que ficam então livres para serem usados por outros arquivos a serem criados.

Para realmente apagar arquivos, eliminando completamente qualquer traço de sua existência, precisamos de um utilitário que não apenas libere os blocos mas que também inutilize todas as informações contidas nos blocos de dados previamente alocados.

O utilitário srm, que faz parte do pacote secure-delete, foi projetado para apagar os dados de forma segura, tornando impossível a sua recuperação por invasores ou outros tipos de ladrões de dados. O algorítimo de deleção é baseado no artigo Secure Deletion of Data from Magnetic and Solid-State Memory.

Para instalar o pacote em sistemas Debian GNU/Linux e derivados, digite:

  sudo apt-get install secure-delete

O pacote secure-delete traz também as seguintes ferramentas:

Ferramenta Função
sswap apaga de forma segura o conteúdo da área de troca (swap)
sdmem apaga de forma segura o conteúdo da memória
sfill apaga de forma segura o conteúdo de blocos de dados e inodes livres

O processo de deleção segue os seguintes passos (da documentação do programa: man srm)

  • 1 passagem com 0xff
  • 5 passagens aleatórias. /dev/urandom é usado para geração segura de números randômicos (secure RNG).
  • 27 passagens com valores especiais definidos por Peter Gutmann
  • 5 passagens aleatórias. /dev/urandom é usado para geração segura de números randômicos (secure RNG).
  • Renomeia o arquivo para um valor aleatório
  • trunca o arquivo

Como medida adicional de segurança, o arquivo é aberto no modo O_SYNC e após cada passagem uma chamada fsync() é feita. srm escreve em blocos de 32k para efeito de velocidade, preenchendo os buffers do cache de disco para força-los a ser esvaziadas e a sobreescrever dados antigos que pertenciam ao arquivo.

Como podemos ver, o processo pode ser demorado. Eu fiz um teste, apagando com o comando srm um arquivo de 136 MB de tamanho:

  # ls -lh fe1.txt
  -rw-------  1 root root 136M Jun 11 12:26 fe1.txt
  # time srm fe1.txt 
  
  real    52m17.073s
  user    0m0.356s
  sys     1m40.278s

57 minutos e 17 segundos para apagar o arquivo.

Todavia, o autor do programa faz alguns alertas:

  • NFS: cuidado com NFS. Não é possível garantir que os dados foram completamente removidos dos discos remotos.
  • RAID: sistemas RAID usam discos com caches grandes e distribuição dos dados em vários discos tornam difícil a remoção total dos dados.
  • swap, /tmp, etc.: alguns arquivos podem ser copiados temporariamente para outras partes do disco. Recomenda-se usar o aplicativo sfill, parte do pacote secure_deletion, para apagar também o espaço livre no disco (blocos e index nodes). Entretanto, se um pequeno arquivo já tiver adquirido um bloco com seus dados, nenhuma ferramenta conhecida poderá ajudá-lo. Para apagar de forma segura o espaço de troca (swap), utilize a ferramenta sswap.

Referência: man srm

Saiba mais



Veja a relação completa dos artigos de Rubens Queiroz de Almeida