Uma vez que o sistema esteja instalado e configurado, e impedindo atualizações de segurança, geralmente não há razão para a maioria dos arquivos e diretórios para evoluirem, exceeto os dados. É interessante, portanto, certificar se que os arquivos realmente não alteram: qualquer mudança seria, portanto, inesperada, valendo a pena investigar. Esta seção apresenta algumas ferramentas capazes de monitorar os arquivos e para avisar o administrador quando ocorrer uma mudança inesperada (ou simplesmente para listar tais mudanças).
14.3.3.1. Auditando Pacotes: debsums
e seus limites
debsums
é uma ferramenta interessante, pois permite encontrar o que instalou arquivos que foram modificados (potencialmente por um atacante), mas isso deve ser tomado com certa reserva. Primeiro, porque nem todos os pacotes do Debian contém as impressões digitais exigidas por este programa (que pode ser encontrado em
/var/lib/dpkg/info/pacote. Md5sums
quando existir).
Como um lembrete: a impressão digital é um valor, muitas vezes um número (mesmo que em notação hexadecimal), que contém uma espécie de assinatura para o conteúdo de um arquivo. Esta assinatura é calculada com um algoritmo (MD5 ou SHA1 sendo exemplos bem conhecidos) que garanta mais ou menos que, mesmo a mais ínfima mudança no conteúdo do arquivo implica uma mudança na impressão digital, o que é conhecido como o "efeito avalanche". Isto permite uma impressão digital numérica simples para servir como um teste para verificar se o conteúdo de um arquivo foram alterado. Estes algoritmos não são reversíveis, em outras palavras, para a maioria deles, sabendo a impressão digital não permite encontrar o conteúdo correspondente. Os recentes avanços matemáticos parecem enfraquecer o poder absoluto destes princípios, mas seu uso não é posto em causa, até agora, produzir a mesma impressão digital apartir de conteúdos diferentes ainda parece ser uma tarefa bastante difícil.
Além disso, os arquivos MD5sums
estão armazenados no disco rígido, um atacante completo, portanto, atualizara esses arquivos para que eles contenham as novas somas de controle para os arquivos subvertidos.
O primeiro inconveniente pode ser evitado, pedindo debsums
para basearsuas verificações em um pacote .deb
em vez de depender dos arquivos md5sums
. Mas que requer o download do arquivo .deb
correspondente primeiro:
#
apt-get --reinstall -d install `debsums -l`
[ ... ]
#
debsums -p /var/cache/apt/archives -g
É importante notar também que, em sua configuração padrão, debsums
gera automaticamente os arquivos md5sums
sempre que um pacote é instalado usando o APT.
O outro problema pode ser evitado de forma semelhante: o cheque deve simplesmente basear-se num puro arquivo .deb
. Uma vez que esta implica em ter todos os arquivos .deb
para todos os pacotes instalados, e ter certeza de sua integridade, a maneira mais simples é baixa los de um espelho Debian. Esta operação pode ser lenta e tediosa, e não deve, portanto, ser considerada uma técnica dinamica a ser utilizada numa base regular.
#
apt-get --reinstall -d install `grep-status -e 'Status: install ok installed' -n -s Pacote`
[ ... ]
#
debsums -p /var/cache/apt/archives --generate=all
Note que este exemplo usa o comando grep status
a partir do pacote dctrl-tools, que não é instalado por padrão.
14.3.3.2. Monitorando Arquivos: AIDE
A ferramenta AIDE (Advanced Intrusion Detection Environment - Ambiente Avançado de Deteccao Intrusao) permite verificar a integridade de arquivos, e detectar qualquer mudança em relacao a uma imagem gravada anteriormente do sistema válido. Esta imagem é armazenada como um banco de dados ( /var/lib/aide/aide.db
) que contém as informações relevantes de todos os arquivos do sistema (impressões digitais, permissões, timestamps e assim por diante). Este banco de dados é inicializado com aideinit
, que é então usado diariamente (pelo script /etc/cron.daily/
) para verificar que nada de relevante mudou. Quando forem detectadas alterações, AIDE grava os em arquivos de log (/var/log/aide/*.log
) e envia os seus resultados ao administrador por e-mail.
Muitas opções em /etc/default/aide
pode ser usadas para ajustar o comportamento do pacote aide. A configuração AIDE adequada é armazenada em /etc/aide/aide.conf
e /etc/aide/aide.conf.d/
(na verdade, esses arquivos são usados update-aide.conf
para gerar /var/lib/aide/aide.conf.autogenerated
). Configuração indica quais propriedades de arquivos precisam ser verificadas. Por exemplo, o conteúdo de arquivos log muda rotineiramente, e estas modificações podem ser ignoradas, desde que as permissões destes arquivos permaneçam o mesmo, mas ambos os conteúdos e as permissões de programas executáveis devem ser constantes. Embora não seja muito complexo, a sintaxe de configuração não é totalmente intuitiva, e a leitura de aide.conf(5) da página do manual é recomendada.
Uma nova versão do banco de dados é gerada diariamente em /var/lib/aide/aide.db.new
, se todas alterações registradas eram legítimas, ele pode ser usado para substituir o banco de dados de referência.