Maneira rápida de obter soma de verificação para todos os arquivos em um diretório aninhado enorme

1

Temos um requisito para filtrar o conteúdo enviado pelo usuário. No entanto, percebi que a maior parte do conteúdo enviado por usuários originou-se do nosso próprio sistema : por exemplo, alguém faz o download de um pdf da nossa biblioteca de documentos, renomeia-o como outra coisa para atender às necessidades deles e enviá-lo novamente para a seção "conteúdo personalizado", que pode ser compartilhada com outros usuários.

Eu gostaria de marcar esses arquivos como confiáveis, sem que alguém precise realmente analisá-los, e achei que poderia fazer isso usando o tamanho do arquivo e algum tipo de soma de verificação. eg

  • para um novo arquivo
    • encontre todos os arquivos em nossa pasta da biblioteca de recursos com a mesma extensão de arquivo e o mesmo tamanho de arquivo
    • para todos aqueles com a mesma extensão & tamanho, faça algum tipo de comparação de checksum.
    • Se encontrarmos uma correspondência, declaramos o novo arquivo como confiável.

Agora, nosso diretório da biblioteca de recursos é de 132 GB - bastante grande. Então, qualquer solução que envolva olhar todos os arquivos lá (até mesmo todos os arquivos com a mesma extensão) será bem lenta.

Parece que a coisa mais sensata a ser feita é manter algum tipo de banco de dados (não necessariamente usando um DBMS literal) de checksums de arquivo, que é atualizado automaticamente quando o conteúdo é alterado ou talvez executado com um agendador uma vez por dia. Então, para qualquer arquivo novo, eu posso pegar a soma de verificação e procurar no banco de dados.

Parece que isso deve ser um problema resolvido. Alguém tem alguma ideia?

obrigado, Max

    
por Max Williams 05.07.2018 / 13:47

2 respostas

1

Você pode ver o software de monitoramento de integridade de arquivos .

Basicamente, eles são projetados para detectar a introdução de rootkits nos sistemas de arquivos, mas no núcleo eles têm um banco de dados para arquivos com meta-informação (checksum, hashes) e monitoram arquivos que foram alterados ou adicionados sob um conjunto de diretórios você quer.

O mais antigo sobre o qual eu ouvi falar é o Tripwire , mas uma versão de código aberto foi criado chamado AIDE . Um mais recente é OSSEC recomendado em link .

    
por 05.07.2018 / 15:11
0

Isso pode ser um problema resolvido, mas é muito específico para ter qualquer ferramenta padrão no mundo Unix / Linux. Sua pergunta contém uma grande parte da resposta. Você precisa de um banco de dados, ou mais precisamente, você precisa de um índice de somas de verificação. E também você precisa de um componente que irá adicionar, atualizar e verificar novos arquivos contra este índice. Eu acho que você terá que implementá-lo e o local natural de implementação estará no mecanismo de upload (por exemplo, uma página da web).

    
por 05.07.2018 / 13:58