Questão:
Verificador de integridade de arquivo
Olli
2014-02-05 06:44:11 UTC
view on stackexchange narkive permalink

Tenho uma grande quantidade de arquivos que nunca devem ser alterados, incluindo fotos RAW e arquivos de vídeo. Estou preocupado com a podridão de bits silenciosa.

Eu tenho backups para restaurar arquivos perdidos / corrompidos, mas comparar os arquivos atuais com os backups não é prático (por exemplo, os arquivos de vídeo estão em fitas digitais). Além disso, meu software de backup não fornece funcionalidade para isso.

Existe um software que verifica a lista de pastas, armazena somas de verificação confiáveis ​​e pode validar essa seleção para arquivos adicionados / removidos / modificados (corrompidos)?

Há cerca de 3 TB e 21 milhões de arquivos (uma grande parte deles são arquivos realmente pequenos, obviamente), então o consumo de memória é importante. Ele deve ser executado no Linux e de preferência no OS X também.

Observação : no Linux, já estou executando o ZFS, que tem somas de verificação robustas e scrub para detectar bitflips. No entanto, não é possível ou prático usar isso ou btrfs no OS X / discos óticos / discos USB que deveriam ser portáteis (ou seja, FAT). Eu prefiro uma solução agnóstica de sistema de arquivos.

Se não houver nenhum software que faça isso automaticamente, já que você está no OSX e Linux, você poderia facilmente configurar um script bash e um cron job para fazer isso com `md5sum` para verificar todos os seus arquivos, construir um relatório etc.
Eu sugiro que você fique de olho no sistema de arquivos de próxima geração ** btrfs **: https://plus.google.com/+AaronSeigo/posts/ZAmXwESunL2
Em um alinhamento diferente da questão * conforme declarado *: você pode estar interessado em testar [git-anexo] (https://git-annex.branchable.com/ "git-anexo"). Seu caso de uso de "arquivista" cobre tanto a detecção de corrupções quanto o reparo de outras cópias. Sim, você pode solicitar a cópia semiautomática de dados entre áreas de armazenamento para garantir que haja cópias suficientes disponíveis. A configuração padrão é um pouco "invasiva", pois todos os arquivos são substituídos por links simbólicos para diretórios somente leitura dedicados para evitar gravações indesejadas (pode ser desabilitado). Principalmente uma ferramenta Linux, parece que está disponível como pacote de aplicativos e homebrew.
Trzy respostas:
#1
+19
Olli
2014-02-07 01:55:20 UTC
view on stackexchange narkive permalink

Comecei a usar o AIDE:

AIDE (Advanced Intrusion Detection Environment) é um verificador de integridade de arquivos e diretórios.

Rastreia arquivos alterados, adicionados e modificados e atributos de arquivo. Suporta vários algoritmos de soma de verificação, incluindo sha256 / sha512.

No Ubuntu, o pacote aide está disponível no repositório base ( apt-get install aide ). No OS X, a compilação falhou com erros misteriosos, mas a instalação com macports foi bem-sucedida:

  sudo port install aide  

Exemplo de configuração o arquivo está disponível em /opt/local/etc/aide.conf . A execução é simples:

  aide --init # Inicializa o banco de dados - calcula checksumsaide --check # Verifica os arquivos no banco de dados --update # Verifica os arquivos no banco de dados e atualiza o banco de dados  

Todos os dados são armazenados em um arquivo de texto simples (que é obviamente vulnerável a corrupção, mas manter uma cópia é fácil), portanto, mudar a ferramenta para outra deve ser simples.


Coisas positivas:

  • Rápido
  • Suporta vários algoritmos de soma de verificação fortes. O uso de md5 é altamente desencorajado, pois está basicamente quebrado.
  • Fácil de executar no cron
  • Baseado em testes curtos, sem problemas até agora. Detectou todas as alterações (no conteúdo e nos atributos de arquivo configurados) corretamente, bem como arquivos adicionados e removidos.
  • Oferece suporte a exclusões de arquivos complicadas: por exemplo, não há sentido em arquivos temporários de soma de verificação ou qualquer arquivo que deveria mudança.
  • Calcula várias somas de verificação (configurável). Isso fornece garantias relativamente boas para o futuro - mesmo se um algoritmo de hash for comprometido, o banco de dados de integridade ainda é útil, mesmo contra modificações intencionais (vs. bit rot).
  • As somas de verificação são armazenadas em texto simples e os cabeçalhos incluem definições de campo. Isso é útil se o arquivo de configuração for perdido ou se for analisado com outro programa.
  • Arquivo de configuração fácil de armazenar e banco de dados de soma de verificação em cada disco / CD / pasta (estrutura). Com isso, todas as opções de configuração são armazenadas automaticamente e é fácil executar a verificação de integridade novamente.

Pontos negativos:

  • A configuração requer a edição do arquivo de configuração no editor de texto, em vez de ter uma bela IU. Da mesma forma, a verificação de saída é enviada diretamente para o terminal.
  • A última versão é de 2010, mas por outro lado, possui recursos completos, portanto, não há necessidade de atualizações constantes.
  • A integridade do banco de dados de soma de verificação não é validada automaticamente. Felizmente, fazer isso separadamente é fácil ( sha1sum checksums.db > checksums.db.sha1sum )
Funciona bem no Windows?
`aide --init` (ou qualquer outra coisa que tentei fazer com o` aide`) não funciona no Ubuntu - os mantenedores do pacote quebraram. Você deve usar `aideinit` ao invés.
O MD5 tem problemas de segurança, mas por que isso importa para o propósito do OP? Ele não está procurando fazer hash de dados confidenciais com segurança. Na verdade, o MD5 é muito comumente usado como soma de verificação de arquivo - [exemplo] (https://help.ubuntu.com/community/UbuntuHashes). Tirando isso, +1 para uma boa resposta.
Outro ponto - a configuração do arquivo de texto e a saída CLI seria um aspecto positivo para muitas pessoas, em vez de negativo.
#2
+11
palacsint
2014-02-07 03:59:10 UTC
view on stackexchange narkive permalink

Tenho usado o cfv para isso há anos.

  • Suporta operações recursivas (você pode criar um arquivo de soma de verificação por diretório ou um arquivo de soma de verificação para uma subárvore completa).
  • Pode ignorar maiúsculas e minúsculas e corrigir as opções de separador de caminho para uso em plataforma cruzada, o que é bastante útil se você deseja verificar / criar somas de verificação em diferentes sistemas de arquivos e / ou sistemas operacionais.
  • É um aplicativo de console, mas tem uma boa barra de progresso (ao contrário do simples md5sum ).
  • Ele pode detectar arquivos adicionados (opção -u ).

Não sei se roda ou Mac OS X ou não, mas está em MacPorts.

Hmm. `sha1sum *> files.sha1sum; cfv` funciona bem. De acordo com o homem, `-r -m -u` é o conjunto adequado de opções para verificar arquivos sem hashes. Parece funcionar bem, MAS se o arquivo com soma de verificação for modificado, ainda assim a saída será OK. Se o arquivo com soma de verificação for removido, ele imprimirá corretamente "1 não encontrado, 1 não verificado". Eu estava prestes a abrir um tíquete de bug, mas não me preocupei em registrar-me no sourceforge.
@Olli: Eu não acho que você precisa da bandeira `-m`. De acordo com o manual, `-m` * não compara checksums *. Tente `cfv -T -uu -f test1.sha1` (se você tiver um arquivo` sha1` para uma árvore de diretório completa).
por algum motivo, isso verifica tudo duas vezes (e sim, eu sei que os comentários não são um fórum de suporte).
#3
+7
Journeyman Geek
2014-02-07 05:41:20 UTC
view on stackexchange narkive permalink

Nenhuma escola como a velha. Admito que tenho um pouco de preconceito aqui devido à minha formação forense, mas você poderia executar somas md5 e compará-las.

Embora este tópico do SO tenha alguns métodos interessantes, gosto bastante de hashdeep. O uso de memória é baixo, embora consuma uma série de ciclos do processador, mas por meio da magia do modo de auditoria, ele faz tudo que você pede por meio da linha de comando automaticamente - pegando um arquivo de texto e comparando-o com o que ele lista .

Embora o site tenha binários do Windows, algumas distribuições e gerenciadores de pacotes mac têm portas - você pode encontrar uma lista completa aqui

hashdeep - incluindo estimativas de tempo - parecia bom, mas eu realmente não gosto da interface: a) no mac terminal, a barra de progresso / estimativas está seriamente quebrada, b) para pastas, você tem que fornecer `--recursive`. Caso contrário, em `--audit` ele apenas percorre recursivamente e imprime` Arquivo conhecido não usado` para cada arquivo, c) se o arquivo for copiado, de acordo com o hashdeep ele é movido (e o antigo é relatado como "Sem correspondência"), em vez de "adicionado", d) auditoria e atualização requerem duas passagens.
"Embora este tópico do SO tenha alguns métodos interessantes [...]": Era para haver um link?
Acho que ele quis dizer este tópico _SR_.
Acabei de tentar * hashdeep * e esperava que ele relatasse os arquivos que adicionei ou removi desde a criação da tabela hash. Parece que não há opções para denunciá-los. Estranho.


Estas perguntas e respostas foram traduzidas automaticamente do idioma inglês.O conteúdo original está disponível em stackexchange, que agradecemos pela licença cc by-sa 3.0 sob a qual é distribuído.
Loading...