• Nenhum resultado encontrado

Além dos hosts, roteadores e até mesmo switches podem ser configurados para fazer o log remoto. A centralização dos logs facilita não só a segurança, mas a própria adminis- tração da rede. 

Como os logs guardam muitas evidências de ações maliciosas de um ataque, é bastante comum que um atacante, após invadir uma máquina, apague ou altere os logs do sistema para esconder seus rastros. Para evitar isso, é possível configurar o sistema para que ele efetue os seus logs pela rede em um outro sistema. A máquina responsável por receber os logs através da rede é denominada loghost e, em geral, essa é sua única função. 

A configuração básica para que o syslogd receba logs pela rede é feita acrescentando a opção -r ao comando de inicialização do daemon. Nos hosts que vão gerar os logs é neces- sário editar o arquivo de configuração do syslog. E para cada priority ou facility que se deseje registrar, deve-se acrescentar “@<log host>” à lista de ações. 

O exemplo a seguir, uma linha do arquivo /etc/syslog.conf, faz com que o daemon syslog registre os eventos de logins na máquina lhost.exemplo: 

authpriv.* @lhost.exemplo

Ad m in is tr aç ão d e S is te m as L in ux : R ed es e S eg ur an ça

Analisadores de logs

q

1 A atividade de ler logs é difícil, repetitiva e com poucos resultados visíveis. 1 Necessidade de associar registros entre os diversos equipamentos da rede. 1 Exemplos: logcheck, swatch e log-analysis.

Logcheck

q

Projetado para executar automaticamente e verificar o sistema de arquivos de log em busca de registros que permitam identificar violações de segurança e atividades incomuns. 1 Instalação:

#apt-get install logcheck logcheck-database logtail 1 Arquivo de configuração:

2 /etc/logcheck/logcheck.conf 1 Paranóico (paranoid). 1 Servidor (server).

1 Estação de trabalho (workstation).

Em muitos ambientes computacionais a tarefa de ler logs é um atividade difícil, repetitiva e com poucos resultados visíveis. Um análise aprofundada exige que o usuário possua grandes conhecimentos do sistema, pois os logs registram tudo que acontece com o kernel, com os daemons e demais utilitários. No arquivo /var/log/syslog, por exemplo, são gravadas automati- camente entradas e saídas de usuários ou invasores, comandos efetuados, mensagens, etc. Outro problema em acompanhar diariamente os logs está relacionado com a necessidade de associar registros entre os diversos equipamentos da rede, buscando, por exemplo, ras- trear os passos de uma possível invasão. Um exemplo seria a necessidade de, ao verificar o log de um servidor web e encontrar um registro suspeito, ter de cruzar essa informação com o log de um roteador ou firewall. Infelizmente não existe uma norma que defina um padrão único e uniforme para o registro de logs em qualquer sistema ou aplicação. Dessa forma, cada desenvolvedor constrói o seu próprio padrão, dificultando, ainda mais, sua associação com outro registro.

Nesse cenário aparecem ferramentas como o binário logcheck, que permite fi ltrar e asso-logcheck, que permite fi ltrar e asso-, que permite filtrar e asso-

ciar registros de forma simples e rápida. O logcheck foi projetado para executar automa-logcheck foi projetado para executar automa- foi projetado para executar automa-

ticamente e verificar o sistema de arquivos de log em busca de registros que permitam identificar violações de segurança e atividades incomuns. O logcheck utiliza um programa chamado logtail, que “lembra” da última posição lida (linha) em um arquivo de log. Dessa forma ele evita registrar um mesmo evento várias vezes.

Instalação

Para instalar o logcheck em um ambiente Debian, execute:

#apt-get install logcheck logcheck-database logtail

Por padrão, o logcheck é executado de hora em hora ou após um reboot da máquina. Seu funcionamento consiste, basicamente, em comparar as linhas dos arquivos de log do sistema com sua base de informações. Quando uma linha possui um correspon- dente com a base de dados, uma mensagem é enviada para o administrador informando o problema.

l

Ca pí tu lo 5 - S eg ur an ça – I nt ro du çã o

Configuração

As configurações do logcheck estão disponíveis no arquivo /etc/logcheck/logcheck.conf. Os principais parâmetros são o usuário padrão para o qual serão enviados os relatórios de alerta (SENDMAILTO) e o nível de detalhe da análise (REPORTLEVEL). Os três níveis de detalhe possíveis são: workstation, server e paranoid. O nível server (servidor) é o nível padrão, o paranoid (paranóico) é recomendado apenas para máquinas de alta segurança

executando poucos serviços e workstation (estação de trabalho), para máquinas relativa-workstation (estação de trabalho), para máquinas relativa- (estação de trabalho), para máquinas relativa-

mente não críticas. Se desejar adicionar novos arquivos de logs, adicione-os em

/etc/logcheck/logcheck.logfiles. Esse arquivo já está configurado para utilizar o syslog.

Para executar o logcheck, basta digitar no shell:

#su –s /bin/bash –c “/usr/sbin/logcheck” logcheck

q

O que o atacante faz após invadir uma máquina? 1 Apagar logs.

1 Instalar rootkits.

2 Modificam binários e/ou módulos do kernel.

Por mais atento que seja, nenhum administrador está totalmente livre de ter uma de suas máquinas invadidas. Embora raro, pode acontecer de um atacante explorar uma vulnerabi- lidade ainda não conhecida ou divulgada de algum daemon, para a qual ainda não há uma correção disponível. 

Ao invadir um sistema, o atacante vai, inicialmente, tentar apagar seus rastros e garantir uma forma de controlar a máquina, para permitir que ele se logue novamente. Uma forma de fazer isso é através dos chamados rootkits, que são conjuntos de programas para esses objetivos. Em geral, os rootkits sobrescrevem binários do sistema (por exemplo, init, ls, netstat) e, em alguns casos, carregam módulos no kernel. A seguir serão apresentadas algumas ações que podem ser tomadas para detectar um sistema comprometido, além de dicas sobre como proceder no caso de o sistema ter sido invadido.