Tripwire - Checando a integridade do sistema

O Tripware é uma ótima ferramenta para checar a integridade do sistema. Sendo um sistema de detecção de intrusão, 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.

[ Hits: 6.380 ]

Por: Leandro Nascimento de Souza em 03/11/2014 | Blog: http://www.mailgateway.com.br


Introdução / Instalação



Introdução

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 intrusão 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.

Devido à falta de documentação detalhada em português desta ferramenta, elaborei este artigo para ajudar no entendimento do sistema.

Instalação

Lembramos que o indicador # informa os comandos que devem ser digitados como usuário root.

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 a 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 que 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 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 site criadas anteriormente:

# twadmin --create-cfgfile --cfgfile /etc/tripwire/tw.cfg --site-keyfile

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 seçã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 em /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

Ao analisar o arquivo de relatório, é possível ver diversos detalhes, como o 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 item 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

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 e-mail 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 e-mails 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 e-mail:

# 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.

Recomendo que sejam lidas as páginas de manual dos comandos abaixo, para que sejam desenvolvidas maiores habilidades com a ferramenta:
  • tripwire
  • twadmin
  • twprint

Este artigo encontra-se publicado em meu site pessoal, podendo ser acessado através do endereço:
Na mesma página, o mesmo artigo podo ser baixado em versão PDF.

   

Páginas do artigo
   1. Introdução / Instalação
Outros artigos deste autor

DNS e DNS reverso rapidamente no Linux

Leitura recomendada

Encapsulando BIND 9 e Apache 2 para obter maior segurança

Desvendando código malicioso no fórum Viva o Linux

Gerenciamento de segurança da informação com open source (parte 1)

Implementação de OpenVAS-5 em Ubuntu 10.04.4 LTS

Alta Disponibilidade com LVS

  
Comentários
[1] Comentário enviado por elimoraissilva em 05/11/2014 - 05:00h

Ótimo artigo, obrigado.

[2] Comentário enviado por Buckminster em 10/11/2014 - 20:12h

Muito bom. Parabéns.


Contribuir com comentário