Verificação de integridade no repositório de pacotes?

2

Quando há atualizações de segurança, eu as reviso e instalo assim que possível e penso em usar atualizações automáticas.

De tempos em tempos, quero inicializar a partir de um CD de inicialização simples e verificar se o sistema foi comprometido.

Por esse motivo, quero verificar se algum pacote / binário foi modificado, verifique o bootloader, verifique se há rootkits.

Suponha que eu inicializei a partir de um CD de inicialização limpa e montei o sistema de arquivos hdd.

Como posso obter uma lista de todos os hashes sha256 de todos os binários e arquivos de configuração instalados e verificá-los com as versões do repositório Debian?

Eu examinei sistemas de detecção de intrusão (debsums,) Afick, Aide, FCheck, Integrit, Osiris, OSSEC, Samhain, Tripwire, mas todos eles têm em comum, que desejam criar um banco de dados em bom estado antes da auditoria. Isso não é muito escalável, porque as atualizações são bastante frequentes, o que torna esse banco de dados em bom estado menos útil. Recriar o banco de dados em bom estado após a atualização também não é muito seguro - digamos que o apt-get tenha um bug e tenha instalado um pacote malicioso, então a soma de verificação desse pacote malicioso terminará no banco de dados em boas condições.

Acho que a solução real é checar o repositório de pacotes da distribuição. Como posso fazer isso?

Já verifiquei o link , mas as instruções estão incompletas.

    
por user539484 09.05.2013 / 06:02

1 resposta

1

Para verificar a integridade de um arquivo individual em um pacote em relação aos repositórios, não há um meio fácil de baixar o pacote. Os repositórios geralmente fornecem esses arquivos:

  • Release{,.gpg} , InRelease - estes fornecem os hashes dos arquivos Packages .
  • O arquivo Packages fornece hashes dos pacotes.
  • O arquivo Contents , quando presente, fornece listas de arquivos de pacotes.

Não há arquivos que forneçam os hashes de arquivos individuais - eles estão contidos nos pacotes ( DEBIAN/md5sums no arquivo control ).

Então, se você não confia no sistema local:

  1. Você terá que baixar o arquivo Contents (se disponível).
  2. Corresponda o arquivo ao pacote usando esse arquivo e faça o download do pacote.
  3. Em seguida, use o md5sums para verificar o arquivo.

Se um arquivo Contents não estiver disponível e você não confiar no sistema local, divirta-se fazendo o download do pacote every para ver o que forneceu o arquivo.

Isso não é escalável.

    
por muru 09.03.2017 / 09:57