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!