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