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