tripwire – Checando a integridade do sistema

A primeira versão do Tripwire foi escrita por Gene Kim e Dr. Eugene Spafford da Universidade de Purdue em 1992 e lançado para a comunidade de código aberto. Desde 1999, a Tripwire Inc. continuou a inovar e expandir a plataforma para um conjunto completo de soluções de segurança.  

O Tripware é uma ótima ferramenta para checar a integridade do sistema, sendo um sistema de detecção de intruso baseado em host que ajuda a manter o administrador informado em caso de mudanças indesejadas mantendo estas informações em sua base de dados.

Instalação

Neste artigo o tripwire será instalado em um sistema Debian versão 7 (Wheezy), certifique-se de que seu arquivo /etc/sources.list esteja bem configurado e efetue a instalação com o comando apt-get:

apt-get install tripwire

O tripwire utiliza duas chaves criptográficas, na tela inicial é questionada a criação da chave do “site”, que é a chave utilizada para assinar as configurações e políticas  e chave local, que é responsável por assinar arquivos específicos do sistema e sua base de dados.

A tela apresentada informa sobre a possibilidade de uma das senhas ser comprometida caso algum atacante esteja conectado ao servidor, pois nesse momento da instalação e configuração a senha não é criptografada.

Recuse a criação de ambas as chaves para possamos gerar as mesmas manualmente, por fim são informadas as localizações dos binários e bases de dados.

Configuração

Conforme descrito acima, o tripwire utiliza um par de chaves, estas são criadas informando o local das mesmas, no caso /etc/tripwire bastando digitar uma senha e em seguida repetir a mesma:

Chave do site

twadmin --generate-keys --site-keyfile /etc/tripwire/site.key

Chave local

twadmin --generate-keys --local-keyfile /etc/tripwire/`hostname`-local.key

O tripwire utiliza dois arquivos de configuração, o twcf.txt e o twpol.txt que são responsáveis pelo armazenamento de configurações e políticas. Estes encontram-se em formato texto, porém o tripwire os lê as configurações e políticas em formato binário, com os comandos a seguir é realizado o processo de criação do arquivo de configuração, será questionada as chaves do do site criada anteriormente.

twadmin --create-cfgfile --cfgfile /etc/tripwire/tw.cfg --site-keyfile /etc/tripwire/site.key /etc/tripwire/twcfg.txt

Em seguida é criado o arquivo de políticas, após a execução dos comandos será solicitada a senha do site:

twadmin --create-polfile --cfgfile /etc/tripwire/tw.cfg --polfile /etc/tripwire/tw.pol --site-keyfile /etc/tripwire/site.key /etc/tripwire/twpol.txt

Após a conversão dos arquivos, a configuração dos mesmos pode ser visualizada com os seguintes comandos:

twadmin --print-cfgfile --cfgfile /etc/tripwire/tw.cfg
twadmin  --print-polfile --polfile /etc/tripwire/tw.pol

Após realizada a configuração e conferidos os arquivos, o banco de dados do tripwire deve ser inicializado com os seguintes comandos, será iniciada a senha local criada anteriormente:

tripwire --init --cfgfile /etc/tripwire/tw.cfg --polfile /etc/tripwire/tw.pol

Finalmente é efetuada a checagem do sistema com os seguintes comandos:

tripwire --check --cfgfile /etc/tripwire/tw.cfg --polfile /etc/tripwire/tw.pol

Os relatórios são localizados no diretório /var/lib/tripwire, na sessão a seguir será demonstrado como ler os relatórios gerados, manter a base de dados atualizada e automatizar as checagens.

Administração

Como informado anteriormente, os relatórios do tripwire ficam armazenados e /var/lib/tripwire/report ou de acordo com o parâmetro REPORTFILE no arquivo de configuração.

Os relatórios possuem por padrão o formato HOSTNAME-AAAAMMDD-HHMMss.twr, com a linha de comandos a seguir é possível exibir os relatórios:

twprint --print-report --twrfile /var/lib/tripwire/report/HOSTNAME-20141024-155019.twr

Ao analisar o arquivo de relatório, é possível ver ver diversos detalhes, como número de arquivos checados, hostname, endereço ip, a linha de comandos utilizada para gerar o relatório, dentre outros.

O processo de atualização da base de dados consiste em desmarcar os arquivos que não devem ser atualizados. Por exemplo, o administrador do sistema teve a necessidade de adicionar um novo usuário. Com isso serão reportadas as mudanças nos arquivos /etc/passwd e /etc/shadow, neste caso foi uma alteração realizada pelo administrador do sistema e a base de dados deve ser atualizada, porém no caso de uma alteração não reconhecida pelo administrador é necessário analisar o ocorrido e não atualizar a base de dados.

O arquivo temporário aberto para atualização da base de dados é bem intuitivo. Basta remover o “x” do ítem em questão para que este não seja atualizado na base de dados do tripwire, após atualizar a base de dados com o comando a seguir será solicitada a senha do local e a base atualizada.

tripwire --update --twrfile /var/lib/tripwire/report/HOSTNAME-20141024-155418.twr

Automatizando tarefas

A tarefa de checagem do sistema pode ser adicionada ao crontab do servidor de acordo com o tempo necessário, a seguir um exemplo de checagem a cada hora enviando um email ao administrador do sistema:

00 *    * * *   root    tripwire --check --cfgfile /etc/tripwire/tw.cfg --polfile /etc/tripwire/tw.pol | mail -s "Tripwire Report `hostname`" user@domain.com

O tripwire pode também enviar emails com o resultado de relatórios, para isso deve ser configurado o arquivo /etc/tripwire/twcfg.txt e alterados os parâmetros descritos a seguir:

MAILMETHOD    =SMTP
SMTPHOST      =localhost
SMTPPORT      =25
TEMPDIRECTORY =/tmp

Os comandos a seguir podem ser utilizados para testar as configurações de email:

tripwire --test --email user@ddomain.com

Após alterar o arquivo com as opções mais adequadas, é necessário gerar um novo arquivo de configuração. Este processo deve ser realizado da mesma forma como descrito anteriormente onde é criado o arquivo de configuração. O mesmo processo serve para o arquivo de políticas, devendo ser informada a senha do site para o arquivo de políticas.

 Conclusão

Com o tripwire é possível incrementar ainda mais a segurança do sistema possibilitando tomar ações em caso de acessos indevidos ao sistema.

 Gostou deste artigo? Clique aqui e baixe em formato PDF agora mesmo!