AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 553143
Accepted
markgraf
markgraf
Asked: 2019-11-21 04:56:07 +0800 CST2019-11-21 04:56:07 +0800 CST 2019-11-21 04:56:07 +0800 CST

Como posso acelerar o apagamento seguro de um disco?

  • 772

Eu preciso apagar discos rígidos com segurança de tempos em tempos e usei uma variedade de ferramentas para fazer isso:

  • cat /dev/zero > /dev/disk
  • cat /dev/urandom > /dev/disk
  • shred
  • badblocks -w
  • DBAN

Todos eles têm em comum o fato de levarem séculos para serem executados.

Em um caso cat /dev/urandom > /dev/diskmatou o disco, aparentemente superaquecendo-o.

Existe uma abordagem "boa o suficiente" para conseguir que quaisquer dados no disco sejam inutilizados em tempo hábil? Sobrescrever superblocos e alguns blocos estrategicamente importantes ou algo assim?

Os discos (tanto giratórios quanto ssd) vêm de computadores doados e serão usados ​​para instalar Linux-Desktops neles posteriormente, entregues a pessoas que não podem comprar um computador, mas precisam de um.

Os discos dos computadores doados geralmente não foram criptografados. E às vezes os doadores nem pensam em excluir os arquivos antes.

Atualização :

Das respostas que chegaram até agora, parece que não há atalhos. Minha melhor aposta é provavelmente configurar um computador de laboratório para apagar vários discos de uma só vez. Mais um motivo para pedir doações a grandes empresas :-)

Obrigado a todos!

security performance
  • 15 15 respostas
  • 13537 Views

15 respostas

  • Voted
  1. Best Answer
    200_success
    2019-11-21T06:30:23+08:002019-11-21T06:30:23+08:00

    Sobrescrever o superblock ou a tabela de partição apenas torna inconveniente reconstruir os dados, que obviamente ainda estão lá se você apenas fizer um dump hexadecimal.

    Os discos rígidos têm um recurso de apagamento integrado: ATA Secure Erase , que você pode ativar usando hdparm:

    1. Escolha uma senha (qualquer senha):

      hdparm --user-master u --security-set-pass hunter1 /dev/sdX

    2. Iniciar apagamento:

      hdparm --user-master u --security-erase hunter1 /dev/sdX

    Como esse é um recurso integrado, é improvável que você encontre um método mais rápido que realmente ofereça um apagamento real. (Cabe a você, no entanto, determinar se ele atende ao seu nível de paranóia.)

    Como alternativa, use o disco com criptografia de disco completo e jogue fora a chave quando quiser descartar os dados.

    • 46
  2. Criggie
    2019-11-21T16:48:48+08:002019-11-21T16:48:48+08:00

    Resposta potencialmente impopular: Aguente o tempo para limpar completamente os discos com segurança.

    Você aceitou doação de hardware de várias fontes e fez promessas de que seus dados serão apagados com segurança. Então você tem que fazer o que prometeu e apagar os discos com segurança.

    Se eu fosse um doador e descobrisse que você não estava cumprindo suas promessas, não lhe daria mais hardware no futuro.

    E não reduza o tempo de execução do DBAN pensando que limpar a primeira metade ou os primeiros 10% é suficiente, quando não é.


    Para tornar suas execuções de DBAN mais convenientes, você geralmente remove unidades de hosts? Nesse caso, tenha um desktop de baixo consumo de energia com várias portas SATA. Quando você tiver algumas unidades prontas para limpeza, configure-as todas nesta máquina e limpe-as com um DBAN ISO inicializável ou uma sessão DBAN de inicialização por rede. Em seguida, deixe a máquina funcionando até que a última esteja concluída.

    Você pode usar um dock de disco SATA-USB, mas eles tendem a ser muito lentos em comparação com as conexões SATA nativas.

    Segundo, você tem um fluxo de trabalho para armazenar doações e depois processá-las? Ou você aceita o hardware, testa, limpa e guarda os itens para uso? Eu sugiro que você crie um pipeline que funcione para você e faça do DBAN um estágio nesse pipeline. Então, quando você retira uma máquina da loja, ela já está limpa e em boas condições.

    • 20
  3. xenoid
    2019-11-21T05:13:13+08:002019-11-21T05:13:13+08:00

    ddcom grandes blocos pode ser mais rápido que cat:

    dd if=/dev/zero of=/dev/disk bs=16M
    

    Matar um disco no processo é bom, provavelmente foi marginal de qualquer maneira.

    Se você criptografar com LUKS, isso pode ser feito após a configuração da criptografia (torna mais difícil identificar o espaço usado/não usado no disco).

    Você não pode evitar a E/S, a 50 MB/s (que é uma boa velocidade para discos antigos), 250 GB levam 5.000 segundos (cerca de 1,5 horas) para gravar. A única questão é o quão perto disso você pode chegar.

    • 13
  4. pipe
    2019-11-21T13:24:53+08:002019-11-21T13:24:53+08:00

    blkdiscard - descarta setores em um dispositivo

    Eu não tentei isso, mas de uma leitura rápida, você pode tentar blkdiscard .

    Isso apenas enviará comandos simples para a unidade e deve ser muito rápido, mas não encontrei nenhuma garantia de que os dados nos blocos serão apagados. Existem algumas dicas embora.

    • Da página de manual:

    AVISO: Todos os dados na região descartada no dispositivo serão perdidos!

    • Da Wikipédia :

    O TRIM informa ao SSD para marcar uma região LBA como inválida e as leituras subsequentes na região não retornarão nenhum dado significativo. Por um período muito breve, os dados ainda podem residir no flash internamente. No entanto, após a emissão do comando TRIM e a coleta de lixo, é altamente improvável que mesmo um cientista forense consiga recuperar os dados.

    Obviamente, eu não confiaria nisso para negócios sérios, mas como sua exigência é "boa o suficiente", pode ser uma opção viável. Presumivelmente, também funciona em SSDs, o que pode ser um obstáculo mais sério se você estiver lidando com computadores antigos doados.

    • 7
  5. Alex Baranowski
    2019-11-21T05:12:49+08:002019-11-21T05:12:49+08:00

    Do ponto de vista da segurança (paranóico), provavelmente não é possível.

    Existe um cenário em que você pode reescrever apenas uma pequena parte do disco, e a maioria das pessoas considerará salvá-lo. Se uma unidade foi criptografada substituindo o cabeçalho de criptografia (um local onde a chave de criptografia é armazenada) deve impossibilitar a recuperação.

    Mas há outro problema - o SSD pode potencialmente manter os dados do cabeçalho (os dados aleatórios que foram usados ​​para sobrescrever o cabeçalho podem ser salvos em outras células).

    • 6
  6. ChuckCottrill
    2019-11-21T17:41:59+08:002019-11-21T17:41:59+08:00

    A maioria das empresas que se preocupam com a segurança de dados já criptografa suas unidades, não (deveria) fornecer chaves de criptografia de unidade, portanto, os dados da unidade já são efetivamente 'apagados' de qualquer maneira.

    O apagamento paralelo resolveria o maior problema de velocidade. A velocidade de E/S SATA não é o seu gargalo, a velocidade de gravação física do HDD é o limite. As placas-mãe modernas têm pelo menos 4-8 conexões de unidade SATA. Configure um (ou mais) computador(es) de laboratório para inicializar a partir do SSD (rápido). Conecte 4-6 unidades a serem apagadas e, em seguida, use o método preferido para apagar das abordagens fornecidas.

    Suponha que você tenha 4 drives (b,c,d,e)... então um script simples apagaria todos os drives em paralelo. E os computadores do laboratório permitem que você registre os apagamentos da unidade.

    ts=$(date +%Y%m%d%H%M%S)
    mkdir -p erase-${ts}
    # figure out where your linux mounts the drives (avoid trashing your SSD)
    for drive in b c d e; do
        target="sd$drive"
        dd if=/dev/zero of=/dev/${target} bs=16M 2>&1 |tee erase-${ts}/${target} &
    done
    

    Embora, eu executasse cada apagamento de unidade em um terminal separado, para poder observar erros em unidades específicas. Unidades com mais de alguns erros devem ser substituídas. As informações SMART das unidades lhe darão uma ideia da idade da unidade.

    Se você tiver de 2 a 4 computadores de laboratório configurados, o desafio seria manter unidades suficientes carregadas nos computadores de laboratório para mantê-los ocupados apagando unidades. Suponha que você tenha 5 unidades por computador de laboratório X 3 computadores de laboratório = 15 unidades sendo apagadas em paralelo. Você está terminando um lote a cada 30 (ish) minutos

    Todas as apostas estão desativadas com SSD, elas funcionam de maneira diferente. A maioria tem uma velocidade de gravação muito mais rápida. E nenhuma das opções acima apaga setores que foram mapeados fora de uso pela detecção de blocos defeituosos (alguns dados podem não ser apagados de qualquer maneira).

    Vários estudos foram feitos, notadamente um grande estudo do Google, que descobriu que após os primeiros dois anos, a probabilidade de falha do disco rígido atingiu 5-6% (por ano) e aumentou significativamente nos anos seguintes. Qualquer disco com mais de 5 anos tem uma probabilidade de falha substancial. Considere apenas aposentar (destruir, reciclar) discos rígidos com mais de cinco anos.

    Meu conselho seria apenas manter as unidades com três ou menos anos de idade, ou substituir todas as unidades e aposentar (destruir ou reciclar).

    • 5
  7. Harper - Reinstate Monica
    2019-11-24T09:35:26+08:002019-11-24T09:35:26+08:00

    Desafio do quadro:

    Pare de desmontar os PCs

    Já desmontei muitos PCs na minha vida. Você está reclamando do tempo, mas está perdendo tempo desmontando PCs para geração de imagens - cada PC precisa ser testado duas vezes e depois testado novamente.

    E seu período de queima é chá fraco. Você está montando o sistema apenas o tempo suficiente para configurar e testar sua unidade recém-imagerada. Portanto, você enviará PCs defeituosos para os clientes (muitos são fornecidos a você por um motivo ; falhas mesquinhas, por exemplo, problemas térmicos são uma delas).

    Mude sua linha de montagem. Coloque o PC em rack, conecte um KVM e use o PC para limpar o PC . Isso também lhe dará um prático burn-in de "executou por algum tempo"; e se você usar /dev/urandom uma CPU robusta/queima térmica também.

    Você pode inicializar no ambiente Windows e excluir todos, exceto os arquivos e aplicativos do sistema, ou inicializar a partir de um CD ou, se o sistema for capaz, inicializar a partir de um pendrive. Ou você pode criar uma imagem do sistema primeiro e limpar o espaço livre após a instalação da nova imagem.

    Se estiver executando nativamente no sistema operacional legado, não há necessidade de excluir e limpar arquivos e aplicativos do sistema Windows, por exemplo, World of Warcraft tem 40 GB de dados que não precisam ser limpos com segurança. Assim \Windows, \Program Filese outros diretórios do sistema podem ser excluídos da limpeza de segurança. (Se eles colocam dados lá, eles não podem esperar uma limpeza segura deles). Existe uma versão altamente portátil do perl 4 que facilitaria o trabalho com isso, e o perl 4 é poderoso o suficiente para esse tipo de coisa.

    Se eu estivesse usando o sistema operacional nativo, faria isso em 2 etapas: primeiro exclua todos os arquivos que não são do sistema e não do aplicativo; em seguida, preencha o disco com zeros (ou cópias de um arquivo de sistema se você estiver preocupado com a análise forense de disco da camada CIA).

    Ou limpe-o por último , após a imagem

    Mesma coisa; ainda usar o próprio PC para a imagem, por exemplo, inicializando a partir de um CD e puxando a imagem pela ethernet ou qualquer outra coisa.

    Agora, construa a imagem com uma ação na primeira inicialização, na qual ela limpa o espaço livre e se desativa.

    Todos os dados são substituídos por a) os arquivos da nova imagem ou b) sua substituição de espaço livre.

    Se você quiser que esta função seja "capaz de check-point", ou seja, não tenha que recomeçar após uma falha de energia, então simplesmente escreva arquivos imensos com nomes aleatórios em /tmp/ até que o disco esteja cheio. Ao confirmar que o disco está cheio, faça com que ele remova os arquivos /tmp/ e, em seguida, remova a si mesmo.

    Quando o disco estiver 100% ocupado com novos dados, os dados antigos devem ter sido substituídos.

    • 5
  8. Ole Tange
    2019-11-21T12:39:35+08:002019-11-21T12:39:35+08:00

    Mesmo em um dispositivo em que o sistema de arquivos foi descartado, muitas vezes é possível recuperar, digamos, imagens JPG apenas lendo o dispositivo.

    Para tornar isso mais difícil, talvez você possa substituir todos os inícios de arquivos com dados.

    Algo como:

    mount /dev/disk /mnt
    find /mnt -type f |
      parallel --pipe --block 8k --roundrobin -q perl -ne 'chomp;open(A,"+<",$_);print A "0"x8192'
    

    Se houver apenas alguns arquivos, isso seria mais rápido do que substituir a unidade completa.

    • 2
  9. fraxinus
    2019-11-22T05:49:08+08:002019-11-22T05:49:08+08:00

    /dev/zero é rápido, /dev/urandom é lento e pesado em CPU.

    Ambos são melhor usados ​​com dd usando um bloco grande (bs=1M) do que com cat. cat não entende de blocos, ele move um caractere de cada vez, usando muitos ciclos de CPU.

    O shred é a ferramenta otimizada para esse fim, fazendo basicamente o que o dd faz de forma organizada. Ele usa menos dados "aleatórios" (em comparação com obter tudo de /dev/urandom) ao substituir o disco com dados aleatórios - ainda aleatório o suficiente para empurrar um SSD para fora dos blocos sobressalentes e dificultar a análise magnética do HDD por interferência de caracteres cruzados, mas menos cpu-com fome para gerar.

    Eu nunca usei o DBAN, mas pelo que li parece basicamente uma ferramenta semelhante a um fragmento em um wrapper inicializável.

    Então, novamente, há o comando ATA SECURITY_ERASE (e até mesmo o comando SECURITY_ERASE_ENHANCED), acessível em hdparm. Eles simplesmente escrevem 0's no disco sem a necessidade de empurrá-los na interface. No HDD, eles são tão rápidos quanto dd (horas). No SSD, eles são blkdiscard em todo o disco. A variedade aprimorada tenta zerar também os blocos marcados como ruins.

    blkdiscard - funciona apenas em SSD. Marca os blocos como livres para que apareçam como 0's, não há garantia de quando serão apagados internamente.

    • 1
  10. Artelius
    2019-11-23T13:52:17+08:002019-11-23T13:52:17+08:00

    Não instale um sistema operacional, imagine-o

    Se você vai colocar GNU/Linux nele de qualquer maneira, você pode fazer as duas coisas em uma única etapa: pegue uma unidade (ou imagem) com uma nova instalação e clone-a no novo disco.

    Se o seu sistema operacional ocupa, por exemplo, 8 GB, então são 8 GB de espaço que você não precisa deixar em branco primeiro. Não muito em comparação com 1 TB, admito, mas também pode economizar algum tempo de instalação. Quanto mais você pré-instalar melhor ;)

    Se a imagem de origem for muito curta para cobrir todo o disco (melhor muito curta do que muito longa), você pode usar ddpara apagar o resto do disco. E, em seguida, redimensione a partição após a clonagem, se desejar.

    Se você quiser usar um arquivo de imagem em vez de clonar um disco, poderá usar um recurso útil chamado "arquivos esparsos" para reduzir o tamanho do arquivo sempre que os blocos forem todos zeros na imagem.

    • 1

relate perguntas

  • Colocando IP externo em uma variável - falha na operação grep [duplicado]

  • Qual é a promessa do OpenBSD em resumo?

  • Fortalecendo a segurança dos servidores rhel6/7 [fechado]

  • É possível manter um servidor como refém se alguém tiver acesso root? [fechado]

  • Existe um daemon syslog que implementa RFC 5848 "Signed Syslog Messages"?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve