O tripwire e a integridade de sistemas GNU/Linux



Documentos relacionados
Guia de Usuário do Servidor do Avigilon Control Center. Versão 5.6

Formação de Administradores de Redes Linux LPI level 1. Aula 2 SENAC TI Fernando Costa

O Sistema foi inteiramente desenvolvido em PHP+Javascript com banco de dados em MySQL.

Nero AG SecurDisc Viewer

O QUE É A CENTRAL DE JOGOS?

Resolução de Problemas de Rede. Disciplina: Suporte Remoto Prof. Etelvira Leite

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Manual de Instalação do e.sic - Sistema Municipal de Informações ao Cidadão

Auditando e criando relatório de análise de vulnerabilidades com Nessus

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

Pró-Reitoria de Administração - PRAd Assessoria de Informática - AI SISTEMA DE PUBLICAÇÃO DE LICITAÇÕES. Manual de Procedimentos

Atualização, backup e recuperação de software

Diagrama lógico da rede da empresa Fácil Credito

Conectar diferentes pesquisas na internet por um menu

Manual de Instalação SIM/SINASC

Carrera Pessoal Guia de uso

INSTRUÇÕES DE INSTALAÇÃO

Manual do Teclado de Satisfação Online WebOpinião

ITIL v3 - Operação de Serviço - Parte 1

Este artigo abaixo foi produzido originalmente para a Network Core Wiki. Reproduzo-a aqui na íntegra. Publicado originalmente em 07/12/2007.

MÓDULO DE MATRICULA UNASUS

Instruções de Instalação do IBM SPSS Modeler (Licença de Usuário Autorizado) IBM

Atualização, Backup e Recuperação de Software. Número de Peça:

Guia do Usuário. idocs Content Server v

Manual das planilhas de Obras v2.5

Primeiros passos das Planilhas de Obra v2.6

APÓS A INSTALAÇÃO, MÃOS À OBRA. E AO TECLADO. MANUAL DE INSTALAÇÃO

Atualizando versão do Aplicativo

agility made possible

Manual de Utilização do PDV Klavix

Especificação do Trabalho Prático

Fale.com. Manual do Usuário

Manual do usuário. Viewer

G-Bar. Módulo Básico Versão 4.0

SISTEMA OPERACIONAL - WINDOWS

Redes Ponto a Ponto. Os drivers das placas de rede devem estar instalados.

Dell SupportAssist para PCs e Tablets Guia de implementação

INSTALAÇÃO DO FIREFOX E JAVA PORTÁVEL CUSTOMIZADO PELO TRT DA 13ª REGIÃO

Manual do Usuário do Produto EmiteNF-e. Manual do Usuário

Medical Office 2015 Instruções de Instalação e Configuração

BR DOT COM SISPON: MANUAL DO USUÁRIO

Instalando o Operations Manager 2007 Reporting

O aplicativo de desktop Novell Filr é compatível com as seguintes versões do sistema operacional Windows:

Atualizações de Software Guia do Usuário

Seu manual do usuário SONY ERICSSON K550I

1) Verifique se o Microsoft.Net Framework 3.5 está instalado, para isto, abrir o Painel de Controle e verificar:

Instalando software MÉDICO Online no servidor

SISTEMA OPERACIONAL - MAC

CALEDÁRIO ESCOLAR. Página 1 de 24

Manual do Instar Mail v2.0

TransactionCentre - Módulo Client.exe Manual de Instalação

Usando o Conference Manager do Microsoft Outlook

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

Sensor de temperatura Parte 5 Cleiton Bueno Preparando o ambiente do Banco de dados Mysql

O Gerenciamento de Documentos Analógico/Digital

Programa EAD-EJEF. Como Navegar neste Site

Terminal de Consulta de Preço. Linha Vader. Modelo TT300 e TT1000i

Boletim Eletrônico de Recolhimento Manual do Sistema. Boletim Eletrônico de Recolhimento. Manual do Sistema

Seu manual do usuário SONY ERICSSON W890I

Guia de início rápido do Alteryx Server

Neste tópico, abordaremos a funcionalidade de segurança fornecida com o SAP Business One.

Token USB Rainbow Ikey2032. Guia de instalação e alteração da senha (PIN)

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

FTP Protocolo de Transferência de Arquivos

Introdução ao icare 2

Generated by Foxit PDF Creator Foxit Software For evaluation only. Capitulo 1

MINISTÉRIO DA SAÚDE. Secretária de Gestão Estratégica e Participativa da Saúde SGEP. Coordenação de Desenvolvimento dos Sistemas de Saúde - CDESS

Manual de Utilização

MANUAL DA SECRETARIA

Política de Privacidade do Serviço OurSound para Estabelecimentos

Obs: É necessário utilizar um computador com sistema operacional Windows 7.

Sistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery

Sumário. 1. Instalando a Chave de Proteção Novas características da versão Instalando o PhotoFacil Álbum 4

CENTRAL GERENCIADORA DE BOLICHE PS 2009

Visualizador de Documentos Fiscais Eletrônicos FAQ (Perguntas frequentes)

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

Gerenciador de Multi-Projetos. Manual do Usuário GMP Corporation

Especificação Técnica Sistema ABS TEM+

Questões de Informática Prova Comentada Ministério Público da União

PASSO A PASSO PARA CADASTRAR OFERTAS, PRODUTOS E SERVIÇOS

Manual Comunica S_Line

NFe ACBrMonitorPLUS. Manual da Nota Fiscal Eletrônica. OASyS Informática (Office Automation System)

LABORATÓRIO UNIDADES 1 REVISÃO LINUX E COMANDOS BÁSICOS ABRINDO A MÁQUINA VIRTUAL UBUNTU SERVER PELO VIRTUALBOX

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO

MANUAL DO ANIMAIL Terti Software

Guia do Usuário do Cisco Unified MeetingPlace para Outlook versão 7.1

Como instalar os recursos adicionais para convidados e acesso aos aplicativos

Manual de Instalação e Utilização VPN

CONFIGURAÇÃO MINIMA EXIGIDA:

Í N D I C E A N A L Í T I C O

Instalação do Sirius sem estações. O primeiro passo é instalar o Firebird 1.5, ele se encontra no CD de instalação do Sirius na pasta Firebird.

Do Word 2007 para o Office 365 para empresas

MANUAL DE EMISSÃO E INSTALAÇÃO DO CERTIFICADO TIPO A1 (GOOGLE CHROME)

TUTORIAL PARA UTILIZAÇÃO DA PLATAFORMA LMS

Transcrição:

O tripwire e a integridade de sistemas GNU/Linux Elmer Sens José Ricardo Simões Rodrigues Junho de 2003. Resumo Neste breve artigo pretendemos abordar a utilização de uma poderosa e gratuita ferramenta de software de auditoria para verificar se crackers alteraram arquivos e programas de servidores ou estações executando GNU/Linux. Sumário 1 Introdução 2 1.1 tripwire e hash........................... 2 2 Obtenção e instalação 2 3 Configuração do tripwire 3 3.1 /etc/tripwire/twcfg.txt..................... 3 3.2 /etc/tripwire/twpol.txt..................... 4 3.3 /etc/tripwire/twinstall.sh................... 5 4 Execução do tripwire 6 5 Verificação de integridade do sistema 7 5.1 O Relatório do tripwire...................... 7 6 Atualizando a base de dados 8 7 Automatizando tudo 8 8 Conclusões 9 9 Bibliografia consultada 10 Os autores são estudantes do curso de Pós Graduação Lato Sensu em Administração de Redes Linux da Universidade Federal de Lavras. O presente artigo foi escrito como atividade da disciplina Segurança em Redes e Criptografia ministrada pelo Prof. Joaquim Quinteiro Uchôa. Endereços para correspondência eletrônica: elmer@linuxmail.org e simoes@uni.de, respectivamente 1

1 Introdução A integridade dos arquivos e programas de um sistema, principalmente de um servidor, é imprescindível. Quase sempre um cracker usa a primeira invasão do sistema para implantar os ditos rootkits que nada mais são que programas conhecidos como ps, ls, more, login, cat, etc, com modificações que, por exemplo, capturam senhas de usuários. Outra possibilidade é a de se substituir os atuais programas instalados por outros de versões mais antigas com conhecidas vulnerabilidades, a implantação de trojans e alteração de arquivos de configuração. A funcionalidade do tripwire é justamente notificar o administrador da ocorrência de modificações em arquivos vitais do sistema, e, consequentemente, minimizar o impacto de invasões que não puderam ser impedidas por seu firewall, por exemplo. O tripwire possui versões comerciais para os unices em geral e MS Windows NT, vide http://www.tripwire.com bem como uma licença para fins acadêmicos e de pesquisa; a versão GNU/Linux é licenciada sob a GNU/GPL (vide licença em http://www.fsf.org/licenses/licenses.pt.html). 1.1 tripwire e hash Em criptografia existe uma técnica denominada função hash que, tendo como entrada um conjunto de bits de um arquivo qualquer, mediante cálculos matemáticos, produz como saída uma cadeia de bits de tamanho fixo denominada hash. Boas funções hash devem, em teoria, tornar impossível a obtenção da cadeia de bits original a partir do hash. A técnica de obtenção de hashes é usada, por exemplo, no armazenamento de senhas em sistemas GNU/Linux, de modo que não se armazena a senha propriamente dita, apenas seu hash, o qual é comparado com o hash da senha que o usuário digita quando do login. O tripwire gera uma base de dados contendo informações como hash, permissões e data de modificação de cada arquivo pré-estabelecido para proteção. No processo de verificação, una nova base de dados é gerada e comparada à primeira, emitindo um relatório para o administrador. Nem sempre as informações constantes do relatório são indícios de violação do sistema. Se escolhermos proteger os arquivos /etc/passwd e /etc/shadow, caso haja a necessidade de inclusão de novos usuários ou mesmo um usuário modificar sua senha, o tripwire relatará uma violação. 2 Obtenção e instalação O tripwire pode ser obtido em qualquer repositório de arquivos, como o já tradicional http://www.rpmfind.net ou no CD de instalação de sua distribuição GNU/linux predileta. Usando o conveniente aplicativo gerenciador de pacotes rpm, a instalação é feita digitando-se os comandos da figura 1 na página seguinte. A instalação do exemplo foi feita a partir de um CD da distribuição Red Hat 7.2 em um sistema Conectiva 8.0. A versão do tripwire é a 2.3.1-5. Instalado o software, podemos iniciar a configuração. 2

Figura 1: Instalação do tripwire usando rpm 3 Configuração do tripwire O funcionamento do tripwire é controlado por dois arquivos de configuração: /etc/tripwire/twcfg.txt e /etc/tripwire/twpol.txt. No primeiro arquivo temos parâmetros gerais como caminho para executáveis do software e no segundo temos as políticas de proteção dos arquivos, indicando quais dever ser protegidos. 3.1 /etc/tripwire/twcfg.txt Após a instalação, são copiados arquivos de exemplo que poder ser mudados de acordo com nossas necessidades. A figura 2 (veja texto selecionado) mostra duas modificações essenciais a serem feitas no arquivo twcfg.txt. Figura 2: Arquivo /etc/tripwire/twcfg.txt modificado A primeira é a inclusão da variável TEMPDIRECTORY que instrui o tripwire a usar o diretório /temp/tripwire ao invés do diretório /temp, onde todos 3

os usuários podem gravar e ler. Use mkdir /temp/tripwire e chmod 700 /temp/tripwire para criar o diretório com as permissões corretas. A segunda é o uso da opção GOBALEMAIL que faz o envio de um relatório recém-gerado aos endereços especificados. Isso é necessário se quisermos a geração automatizada de relatórios usando o cron para análise remota. 3.2 /etc/tripwire/twpol.txt Veja, na figura 3, o arquivo /etc/tripwire/twpol.txt instalado originalmente. Figura 3: Arquivo /etc/tripwire/twpol.txt original O arquivo /etc/tripwire/twpol.txt contém, em resumo, regras que agrupam arquivos e diretórios e o nível de segurança de cada arquivo ou diretório. Na figura 3 temos a seção denominada Networking Programs com aplicativos voltados para a rede. Abaixo da definição rulename é especificado o nível de segurança deste grupo de arquivos mediante uso da palavrra-chave severity. O valor SIG HI indica que a regra se aplica a arquivos de extrema importância para 4

o sistema. Outros valores possível são SIG LOW e SIG MED, significância baixa e média, respectivamente. O valor SEC CRIT associado aos arquivos da regra denota que não devem ser alterados em qualquer circunstância. Outros valores possíveis são listados no preâmbulo do arquivo /etc/tripwire/twpol.txt. É importante que seja feita uma análise cuidadosa do conteúdo do arquivo /etc/tripwire/twpol.txt pois alguns arquivos listados na configuração de exemplo podem não estar presentes em sua instalação. Comente-os usando # para evitar as mensagens de erro produzidas no momento da geração ou verificação da base de dados. Evidentemente, é possível a inclusão de mais arquivos. Escolha um dos grupos pré-definidos e adicione o arquivo com caminho completo. 3.3 /etc/tripwire/twinstall.sh Finalizadas as alterações necessárias nos arquivos de configuração e de políticas, é necessário iniciar o tripwire executando o shell script /etc/tripwire/ twinstall.sh o qual objetiva gerar duas senhas, local e site, e que serão usadas para autorizar a manutenção do tripwire e proteger os arquivos de configuração. A proteção aos arquivos twpol.txt e twcfg.txt é necessária pois um intruso poderia modificá-los a exemplo do que pode acontecer com os logs de uma invasão. Execute /etc/tripwire/twinstall.sh conforme a figura 4 e digite as duas senhas (passphrases) pedidas. Figura 4: Execução do bash script /etc/tripwire/twinstall.sh Após sua execução, serão criados os arquivos /etc/tripwire/tw.cfg e /etc/tripwire/tw.pol versões protegidas de /etc/tripwire/twcfg.txt e /etc/tripwire/twpol.txt. Os arquivos tw.cfg e tw.pol são binários e não podem ser lidos diretamente. Para tanto deve ser usado o utilitário twadmin com a sintaxe seguinte: 5

# twadmin -m f -c /etc/tripwire/tw.cfg # twadmin -m p -p /etc/tripwire/tw.pol Os arquivos /etc/tripwire/twcfg.txt e /etc/tripwire/twpol.txt não são mais necessários e podem ser apagados seguramente, o que é recomendado. 4 Execução do tripwire A base de dados inicial deverá, a seguir, ser gerada para proteger os arquivos indicados segundo a política definida. É fundamental que a primeira base de dados seja feita em um sistema idôneo e que não tenha sofrido qualquer tipo de intrusão ou logo após a instalação do sistema. Figura 5: Primeira execução do tripwire Para gerar a base de dados inicial, use o comando tripwire --init conforme figura 5. O processamento pode levar alguns minutos dada a quantidade de cálculos matemáticos envolvidos e o número de arquivos a serem processados. Eventualmente, não existindo em seu sistema algum arquivo listado em sua política, o tripwire retornará uma mensagem similar à seguinte: # Warning: File system error. # Filename: /nome/do/arquivo # No such file or directory # Continuing... Tais mensagens são apenas avisos e não interrompem a execução do programa. Para evitá-las, proceda como descrito na seção 3.2 na página anterior. Não ocorrendo problemas, a base de dados será gerada em /var/lib/tripwire/hostname.domain.twd a qual não pode ser lida diretamente. Para garantir a integridade total de sua base de dados, é recomendado que você guarde uma cópia desse arquivo e de toda a árvore abaixo de /etc/tripwire em uma mídia removível como CD-R. 6

5 Verificação de integridade do sistema A partir de agora, podemos gerar relatórios de integridade do sistema de arquivos com o comando tripwire --check. Em nosso sistema, o resultado foi o apresentado na figura 6. Figura 6: Parte da saída da execução do comando tripwire --check É possível o envio de uma cópia do relatório por e-mail (vide seção 3.1 na página 4) usando o comando tripwire --check --email-report. Assim é gerado um arquivo protegido no diretório /var/lib/report que é acessível via comando twprint --print-report -r /caminho/do/arquivo/- de/relatório Veja, na figura 6, que foi adicionado um arquivo listado na linha Tripwire Data Files. Trata-se do arquivo de relatório em /var/lib/report. Agora, iremos modificar um dos arquivos protegidos com o intuito de verificar o relatório do tripwire. Adicionamos um usuário ao sistema e executamos tripwire --check novamente. Nas figuras 7 na página seguinte e 8 na página 9 temos relatório do tripwire apontando que dois arquivos foram modificados: /etc/passwd e /etc/shadow. 5.1 O Relatório do tripwire O relatório do tripwire contem quatro partes, cada uma com uma ou mais seções, conforme a tabela 1 na página 10. 7

Figura 7: Parte da saída da execução do comando tripwire --check apontando arquivos modificados 6 Atualizando a base de dados Após auditoria feita no sistema e verificada a ausência de intrusão real, apenas modificações do arquivo decorrentes da ação do administrador, a base de dados deve ser atualizada para refletir a situação atual do sistema. Use o comando a seguir, digitando tudo em uma linha: # tripwire --update --twrfile /var/lib/tripwire/report/ hostname-timestamp.twr Caso hajam alterações de arquivos protegidos, é prudente impedir que as informações relativas ao objeto sejam atualizados. Entre no modo de edição dos arquivos a serem atualizados com o comando: # tripwire --update --r /var/lib/tripwire/report/ hostname-timestamp.twr -V /usr/bin/emacs Substitua o argumento da opção -V na parte final do comando por seu editor favorito. O tripwire irá abrir um arquivo temporário em seu editor. Desmarque os arquivos que não devem ser atualizados na base de dados, feche o editor, informe sua senha e a base será atualizada. 7 Automatizando tudo Escreva um shell script como a listagem da figura 9 na próxima página e agende sua execução com o cron. Arquive-o na pasta /etc/cron.daily para ex- 8

Figura 8: Detalhe dos arquivos modificados ecução diária. Adapte-o à suas necessidades adicionando, por exemplo uma linha que envie o relatório por e-mail, conforme descrito na seção 3.1 na página 4. #!/bin/sh HOST_NAME= uname -n if [! -e /var/lib/tripwire/{$host_name}.twd]; then echo "** ERRO: Base de dados de {$HOST_NAME} n~ao encontrada. **" echo "** Execute: /etc/tripwire/twinstall.sh ***" echo "** e/ou tripwire --init. **" else test -f /etc/tripwire/tw.cfg && /usr/bin/tripwire --check fi Figura 9: Exemplo de Shell script para automatização das verificações 8 Conclusões O tripwire é mais uma frente de defesa de nossos sistemas. Deve sempre ser aliado à implementação de um firewall robusto, um IDS e uma política de segurança e uso rígida. A gratuidade do software é uma característica inerente ao software livre e é outro atrativo. Muitas outras funcionalidades estão presentes no tripwire. Nunca é demais recomendar a leitura de páginas de manual: twintro, twadmin, twprint, twconfig, tripwire, twpolicy, twfiles, todos com informações muito úteis, 9

Tabela 1: Seções do Relatório do tripwire Seção Propósito Report Summary Lista host name, IP, arquivos de política e de configuração, base de dados e comandos usados para geração do relatório. Rule Summary Sumário das adições, modificações e apagamentos e total de violações encontradas. Essa seção ajuda a encontrar erros rapidamente. Object Detail Contém dados específicos das violações reportadas na seção Report Summary. Aqui devemos verificar se trata-se de uma violação real (um cracking)ou simples alteração devida às atividades normais do sistema. Error Report Mostra erros encontrados, quase sempre, em razão de arquivos listados em twpol.txt e inexistentes em seu sistema. as quais ajudaram na feitura deste trabalho. Vale também uma visita ao sítio da versão free do tripwire: www.tripwire.org. 9 Bibliografia consultada LITT, Steve. Tripwire. Linux Productivity Magazine, [s.l], v. 2, N. 4, Abril de 2003. Disponível em <http://www.troubleshooters.com/lpm/200304/ 200304.htm>. Acesso em 20 de junho de 2003. 10