Introdução
Neste laboratório, você aprenderá a utilizar o Tripwire, um poderoso Sistema de Detecção de Intrusão baseado em Host (HIDS), para monitorar a integridade de arquivos. O Tripwire funciona criando um banco de dados de referência (baseline) dos arquivos do seu sistema e, periodicamente, os digitaliza para detectar quaisquer adições, exclusões ou modificações. Este processo é essencial para identificar alterações não autorizadas e manter a segurança do sistema.
Você passará por todo o processo, desde a configuração inicial das chaves de segurança até a personalização das políticas de monitoramento, criação da linha de base, detecção de alterações e revisão de relatórios.
Configurar as Chaves do Tripwire
Bem-vindo ao laboratório. O pacote tripwire já foi pré-instalado em seu ambiente para economizar tempo. Sua primeira tarefa é configurar as chaves criptográficas que o Tripwire utiliza para proteger seu banco de dados e arquivos de configuração. Essas chaves garantem que um invasor não consiga adulterar os próprios arquivos do Tripwire para esconder seus rastros.
Primeiro, verifique se o Tripwire está instalado conferindo sua versão.
tripwire --versionVocê deverá ver uma saída exibindo a versão instalada do Tripwire.
Tripwire(R) 2.4.3.7 (i686-pc-linux-gnu) ...Em seguida, gere as chaves criptográficas manualmente usando o
twadmin. Você precisa criar tanto uma chave de site (site key) quanto uma chave local (local key). A chave de site protege os arquivos de política e configuração, enquanto a chave local protege o banco de dados na máquina local.Primeiro, gere a chave de site:
sudo twadmin --generate-keys --site-keyfile /etc/tripwire/site.keySe o arquivo de chave já existir, você será solicitado a sobrescrevê-lo. Digite
ye pressione Enter para confirmar.Quando for solicitada a senha (passphrase) da chave de site, digite
labex-passworde pressione Enter. Em seguida, confirme a senha digitando-a novamente.Nota: A entrada da senha fica oculta por segurança - você não verá nenhum caractere enquanto digita, mas o sistema ainda está recebendo sua entrada.
Em seguida, gere a chave local:
sudo twadmin --generate-keys --local-keyfile /etc/tripwire/$(hostname)-local.keyNovamente, se for solicitado para sobrescrever um arquivo de chave existente, digite
ye pressione Enter.Quando solicitada a senha da chave local, digite
labex-passworde pressione Enter. Confirme a senha digitando-a novamente. Lembre-se, a entrada da senha está oculta.Após inserir as senhas, ambas as chaves serão geradas e salvas no diretório
/etc/tripwire/. O processo de geração de chaves pode levar alguns minutos para ser concluído.
Personalizar a Política de Monitoramento
Antes de criar o banco de dados inicial (a linha de base), você precisa configurar quais arquivos e diretórios o Tripwire deve monitorar. Devido a problemas de compatibilidade com o arquivo de política padrão que podem causar falhas de segmentação durante a inicialização, você criará uma política simplificada focada em arquivos essenciais do sistema e no diretório do seu projeto.
Primeiro, crie um backup do arquivo de política original.
sudo cp /etc/tripwire/twpol.txt /etc/tripwire/twpol.txt.bakCrie um novo arquivo de política simplificado que evite sistemas de arquivos virtuais problemáticos.
sudo nano /etc/tripwire/twpol-simple.txtAdicione o seguinte conteúdo ao arquivo. Esta política simplificada monitora arquivos vitais do sistema e o diretório do seu projeto, evitando caminhos que possam causar erros de inicialização:
# ## Simplified Tripwire Policy File for Lab Environment # @@section GLOBAL TWBIN = /usr/sbin; TWETC = /etc/tripwire; TWVAR = /var/lib/tripwire; @@section FS SEC_CRIT = $(IgnoreNone)-SHa ; SEC_BIN = $(ReadOnly) ; SEC_CONFIG = $(Dynamic) ; SEC_LOG = $(Growing) ; SEC_INVARIANT = +tpug ; SIG_LOW = 33 ; SIG_MED = 66 ; SIG_HI = 100 ; ( rulename = "Tripwire Binaries", severity = $(SIG_HI) ) { $(TWBIN)/siggen -> $(SEC_BIN) ; $(TWBIN)/tripwire -> $(SEC_BIN) ; $(TWBIN)/twadmin -> $(SEC_BIN) ; $(TWBIN)/twprint -> $(SEC_BIN) ; } ( rulename = "Tripwire Data Files", severity = $(SIG_HI) ) { $(TWVAR)/$(HOSTNAME).twd -> $(SEC_CONFIG) -i ; $(TWETC)/tw.pol -> $(SEC_BIN) -i ; $(TWETC)/tw.cfg -> $(SEC_BIN) -i ; $(TWETC)/$(HOSTNAME)-local.key -> $(SEC_BIN) ; $(TWETC)/site.key -> $(SEC_BIN) ; $(TWVAR)/report -> $(SEC_CONFIG) (recurse=0) ; } ( rulename = "Critical system files", severity = $(SIG_HI) ) { /bin -> $(SEC_BIN) ; /sbin -> $(SEC_BIN) ; /etc/passwd -> $(SEC_CONFIG) ; /etc/shadow -> $(SEC_CONFIG) ; } ( rulename = "Lab Project Files", severity = $(SIG_HI) ) { /home/labex/project -> $(SEC_BIN) ; }Salve o arquivo e saia do
nanopressionandoCtrl + O, depoisEntere, finalmente,Ctrl + X.Substitua o arquivo de política original pela sua versão simplificada.
sudo cp /etc/tripwire/twpol-simple.txt /etc/tripwire/twpol.txt
Agora você criou uma política de monitoramento simplificada que funcionará de forma confiável no ambiente de laboratório. Na próxima etapa, você usará esta política para criar o banco de dados inicial.
Inicializar o Banco de Dados do Tripwire
Com sua política simplificada configurada, você está pronto para criar o banco de dados do Tripwire. Este banco de dados serve como o instantâneo de referência "conhecido como íntegro" do seu sistema. O Tripwire comparará o estado atual dos seus arquivos com esta linha de base para detectar quaisquer alterações.
Primeiro, recrie o arquivo de configuração com sua nova chave de site para garantir a compatibilidade.
sudo twadmin --create-cfgfile --site-keyfile /etc/tripwire/site.key /etc/tripwire/twcfg.txtVocê será solicitado a inserir a senha da sua chave de site. Digite
labex-passworde pressione Enter.Converta o arquivo de política simplificado para o formato binário assinado que o Tripwire utiliza.
sudo twadmin --create-polfile /etc/tripwire/twpol.txtNovamente, insira a senha da sua chave de site (
labex-password) quando solicitado.Inicialize o banco de dados. Este comando verifica todos os arquivos e diretórios especificados em sua política e registra suas assinaturas criptográficas e atributos.
sudo tripwire --initVocê será solicitado a inserir a senha da sua chave local. Digite
labex-passworde pressione Enter.Durante a inicialização, você poderá ver um aviso sobre o arquivo de banco de dados não existir inicialmente:
#### Warning: File system error. #### Filename: /var/lib/tripwire/68b1139d06fc790d9895e107.twd #### No such file or directory #### Continuing...Isso é normal e esperado na primeira inicialização. O processo continuará e criará o arquivo de banco de dados.
Assim que o processo for concluído, verifique se o arquivo do banco de dados foi criado.
ls -l /var/lib/tripwire/Você deve ver um arquivo nomeado com o hostname da sua máquina e a extensão
.twd(por exemplo,68b1139d06fc790d9895e107.twd). A presença deste arquivo confirma que seu banco de dados de referência foi estabelecido com sucesso.total 8 -rw-r--r-- 1 root root 4164 Aug 29 11:00 68b1139d06fc790d9895e107.twd drwxr-xr-x 2 root root 6 Nov 11 2021 report
Seu sistema Tripwire agora está devidamente inicializado com um banco de dados de referência. Quaisquer alterações futuras nos arquivos monitorados serão detectadas quando você executar as verificações de integridade.
Detectar e Relatar Alterações em Arquivos
Agora que o Tripwire possui uma linha de base, você pode testar sua capacidade de detectar alterações. Você criará um novo arquivo no diretório do seu projeto para ver como o Tripwire detecta modificações em áreas monitoradas.
Primeiro, crie um novo arquivo no diretório
project. Este é um diretório que você adicionou explicitamente à política de monitoramento.touch ~/project/test_file.txtCom a alteração feita, execute uma verificação de integridade. O Tripwire escaneará o sistema e o comparará com o banco de dados de referência.
sudo tripwire --checkVocê será solicitado a inserir a senha da sua chave local. Digite
labex-passworde pressione Enter.Após a conclusão da varredura, o Tripwire gerará um relatório e imprimirá um resumo no console. O resumo destacará os objetos que foram adicionados ou modificados. Você deve ver uma saída semelhante a esta:
=============================================================================== Rule Summary: =============================================================================== Rule Name Severity Level Added Removed Modified --------- -------------- ----- ------- -------- Tripwire Binaries 100 0 0 0 Critical system files 100 0 0 0 * Tripwire Data Files 100 1 0 0 * Lab Project Files 100 1 0 1 (/home/labex/project) Total objects scanned: 16 Total violations found: 3 =============================================================================== Object Summary: =============================================================================== ------------------------------------------------------------------------------- Rule Name: Lab Project Files (/home/labex/project) Severity Level: 100 ------------------------------------------------------------------------------- Added: "/home/labex/project/test_file.txt" Modified: "/home/labex/project"O relatório mostra que o Tripwire detectou:
- Adicionado (Added): O novo arquivo
test_file.txtno diretório do seu projeto. - Modificado (Modified): O próprio diretório
/home/labex/project(porque seu conteúdo mudou). - Arquivos de Dados do Tripwire (Tripwire Data Files): O arquivo do banco de dados também foi sinalizado como "adicionado" porque esta é a primeira verificação desde a inicialização.
- Adicionado (Added): O novo arquivo
Esta saída confirma que o Tripwire detectou com sucesso as alterações feitas no sistema de arquivos.
Revisar o Relatório de Integridade
O resumo do comando --check fornece uma boa visão geral, mas para uma análise detalhada, você pode visualizar o arquivo de relatório completo. Esses relatórios são armazenados em formato binário e devem ser lidos usando o utilitário twprint.
Primeiro, liste o conteúdo do diretório de relatórios para encontrar o nome do relatório mais recente. Os relatórios possuem carimbos de data e hora em seus nomes de arquivo.
sudo ls -lt /var/lib/tripwire/report/A saída listará os arquivos de relatório, com o mais recente no topo. Anote o nome do arquivo, que normalmente segue o formato
hostname-YYYYMMDD-HHMMSS.twr.total 4 -rw------- 1 root root 3456 Aug 29 11:02 68b1139d06fc790d9895e107-20250829-110252.twrUse o comando
twprintpara visualizar o relatório em um formato legível por humanos. Substitua[REPORT_FILENAME]pelo nome real do arquivo que você anotou no comando anterior.sudo twprint --print-report --twrfile /var/lib/tripwire/report/[REPORT_FILENAME]Por exemplo:
sudo twprint --print-report --twrfile /var/lib/tripwire/report/68b1139d06fc790d9895e107-20250829-110252.twrO relatório detalhado mostra as mesmas informações que o resumo, mas com metadados adicionais:
Report created on: Fri Aug 29 11:02:52 2025 Database last updated on: Never Host name: 68b1139d06fc790d9895e107 Host IP address: 172.18.0.8 Policy file used: /etc/tripwire/tw.pol Configuration file used: /etc/tripwire/tw.cfg Database file used: /var/lib/tripwire/68b1139d06fc790d9895e107.twd Command line used: tripwire --checkO relatório fornece detalhes abrangentes sobre cada alteração, incluindo carimbos de data/hora, propriedades do arquivo e somas de verificação (checksums). Esse nível de detalhe é crucial para análises forenses, permitindo entender exatamente quais mudanças ocorreram em seu sistema.
Você também pode visualizar uma versão mais detalhada com atributos de arquivo usando a flag
--verbose:sudo twprint --print-report --verbose --twrfile /var/lib/tripwire/report/[REPORT_FILENAME]Isso mostrará informações adicionais como permissões de arquivo, proprietário, tamanho e vários hashes criptográficos para cada alteração detectada.
Compreender como ler esses relatórios é essencial para que administradores de sistema investiguem possíveis incidentes de segurança e mantenham a integridade do sistema.
Resumo
Neste laboratório, você aprendeu os fundamentos do uso do Tripwire para monitoramento de integridade de arquivos. Você configurou com sucesso as chaves de segurança do Tripwire, personalizou sua política de monitoramento para incluir um diretório de projeto específico e estabeleceu um banco de dados de referência do estado dos arquivos do seu sistema.
Além disso, você praticou o fluxo de trabalho principal de um administrador de sistemas ao modificar arquivos intencionalmente, executar uma verificação de integridade para detectar essas alterações e analisar o relatório detalhado para entender o que foi alterado. Essas habilidades são fundamentais para manter a segurança do sistema e detectar atividades não autorizadas.



