Coluna do Kurt COLUNA OSSEC Veja como monitorar e bloquear ataques sem levantar um dedo. U ma das coisas que eu aprendi sobre a segurança de computadores é o log. Se você não tem logs, tentar reconstruir o que aconteceu quando algo quebrar, ou quando alguma máquina for invadida, é quase impossível. A segunda coisa que aprendi foi que é preciso centralizar os logs; essa é a única forma de obter um panorama completo da situação e garantir que um agressor não consiga simplesmente apagar os logs de uma máquina comprometida, deixando o administrador sem material para analisar. Mas nenhum desses aprendizados chamará a atenção do administrador para um agressor ou, mais importante ainda, impedirá que um agressor entre. Eles simplesmente oferecerão algo para observar quando o administrador descobrir que foi invadido. Para isso, é necessário um ser humano no processo, certo? Bem, é preciso ou um ser humano ou algum software inteligente. Não seria ótimo se pudéssemos monitorar os arquivos de log críticos (como de email e web) e realmente ter um programa para reagir a ataques, notificar o administrador e até bloquear futuros acessos do agressor? Bem, você não é o único. O brasileiro Daniel B. Cid é o líder do desenvolvimento do projeto OSSEC, um esforço para criar um sistema de código aberto para detecção de intrusos com base nas máquinas [2]. O OSSEC usa uma técnica tradicional de servidor e agente: o administrador instala o software agente em cada sistema a ser monitorado e um servidor central coleta todos os dados e envia alertas. Além disso, o projeto OSSEC lançou uma interface web; porém, ela só é capaz de exibir relatórios, e não pode ser usada para configurar o sistema. Instalação Na instalação do OSSEC há três opções. A opção server (servidor) permite usar o OSSEC para monitorar a si mesmo e coletar alertas de outros sistemas. A opção 16 agent (agente) simplesmente monitora eventos locais e informa ao servidor qualquer acontecimento interessante. A opção local realiza o monitoramento localmente e pode enviar alertas por email, mas não escuta agentes remotos (então é a opção certa caso você só tenha um servidor ou queira testar o OSSEC). Simplesmente baixe o pacote do OSSEDC e descompacte-o num diretório: # # # # wget http://www.ossec.net/files/ossec-hids-2.0.tar.gz tar -zxf ossec-hids-2.0.tar.gz cd ossec-hids-2.0 ./install.sh Agora, basta escolher o idioma, o tipo de servidor e informar se você deseja executar o daemon de verificação de integridade, o mecanismo de detecção de rootkits, ativar a resposta ativa e ativar o firewall para bloquear ataques. Se você estiver configurando o sistema como agente, também é preciso apontá-lo para o servidor e colar nele a chave do agente. Ela é uma longa cadeia de caracteres usada para garantir a segurança nas comunicações entre cada agente e o servidor, evitando a injeção de mensagens falsas e assim por diante. Por que é importante evitar que esse tipo de mensagem forjada seja enviada ao servidor? Cuidado Se um agressor conseguir realizar ataques forjados ou falsos e um sistema bloquear IPs ou usuários por conta disso, o agressor conseguirá facilmente bloquear sistemas legítimos e “trancar usuários do lado de fora”. Na pior das hipóteses, pode ser preciso invadir seu próprio sistema caso as contas estejam bloqueadas, e é por isso que a maioria dos HIDS e NIDS suportam listas brancas. Os administradores simplesmente criam uma lista de máquinas e redes críticas. http://www.linuxmagazine.com.br Hospedagem IlImItada Uol Host. O UOL HOST acaba de lançar seus novos planos, sem limites de transferência de dados e sem limite de domínios, com preços a partir de R$ 7,90*. Além disso, suporte técnico, construtor de sites, e-mails e o mais moderno Painel de Controle para administração da sua hospedagem. Agora o céu é o limite para a audiência de seu site. 0800 723 6000 www.uol.com.br/host *Nos primeiros 3 meses, depois R$14,90. Promoção válida até 30/06/2009. Gabarito apresentamos o novo lImIte dos planos de Hospedagem Uol Host. COLUNA | Insegurança Obviamente, determinar quais máquinas são críticas depende da configuração exata (servidores DNS, de email e web, de autenticação, roteadores etc. são um bom começo). No OSSEC, a lista branca fica no arquivo ossec.conf (por padrão, em /var/ossec/etc/), e é possível especificar máquinas ou redes individuais: <global> <white_list>127.0.0.1</white_list> <white_list>1.2.3.4</white_list> <white_list>10.0.0.0/8</white_list> <white_list>192.168.0.0/16</white_list> </global> Rodando... O OSSEC traz seu próprio programa de controle, chamado ossec-control. Além disso, quando instalado num sistema Red Hat Enterprise Linux ou CentOS, são criados scripts de inicialização em rc.d/, que permitem que os serviços do OSSEC sejam controlados pelo utilitário padrão chkconfig. Quando o OSSEC estiver em execução, deve ser possível ver diversos programas em execução. Os processos de monitoramento geralmente precisam ser executados pelo usuário root: USER ossecm root ossec root root ossec PID 17381 17385 17389 17393 17405 17409 Agente COMMAND .../ossec-maild .../ossec-execd .../ossec-analysisd .../ossec-logcollector .../ossec-syscheckd .../ossec-monitord Com o servidor em execução, é hora de encaminhar para ele o restante dos logs. Simplesmente instale o OSSEC em todas as máquinas que precisarem ser monitoradas e escolha a opção de instalação de agente, naturalmente. Durante a instalação, serão perguntados o IP do servidor e algumas opções padrão relativas ao monitoramento. Ao término desse processo, será preciso criar e importar a chave do agente, o que é feito pelo programa manage_agents. No servidor, basta adicionar o agente. Depois de terminar isso, extraia a chave de um agente particular, copie-a e cole-a (prefira logins remotos via SSH). Use o comando manage_agents no agente para importar a chave. O processo é semelhante no Windows, mas foi criada uma interface gráfica para 18 facilitar a vida do administrador (felizmente, as versões em linha de comando ainda estão disponíveis e permitem o gerenciamento remoto via scripts na linha de comando). Por padrão, o OSSEC monitora todos os arquivos em /etc/, /bin/, /sbin/, /usr/bin/ e /usr/sbin/ (essencialmente, as vísceras de quase qualquer sistema) e vários arquivos de log de daemons de rede (named, smbd, myusql, telnetd etc.). Para modificar os diretórios a ser monitorados ou para acrescentar novas regras aos serviços de monitoramento, basta editar o arquivo ossec.conf, que usa um formato no estilo XML bem autoexplicativo. Interface web Agora que o OSSEC já está configurado e em ação, protegendo sua rede, o que você deve fazer? Um recurso que eu adoro no OSSEC são os relatórios. Por exemplo, é possível gerar relatórios em texto relativos à maior atividade por IP, nomes usados em tentativas de login e assim por diante. Claro que um relatório em texto não deve impressionar seu chefe, mas felizmente existe uma solução. A interface web do OSSEC permite consultas posteriores, mas infelizmente não suporta a configuração do servidor ou dos agentes (para isso ainda é preciso ater-se à linha de comando). Além disso, a interface web do OSSEC permite visualizar de uma única vez o estado do servidor e dos agentes. Conclusão Um dos maiores problemas da segurança é a quantidade de esforço de configuração e manutenção contínuos que o problema exige. O OSSEC oferece um grau de segurança e proteção ativa com custo mínimo de configuração e baixa manutenção. Faltam nele alguns recursos que eu adoraria ver (como me informar o que mudou num arquivo em vez de apenas me dizer que o arquivo foi alterado) e também alguns recursos de usabilidade (como gerenciamento de alterações e configuração em massa), mas, com essa enorme simplicidade de configuração e gerenciamento, acho que ainda vale a pena. n Mais informações [1]OSSEC: http://www.ossec.net/ Kurt Seifried é consultor de segurança da informação especializado em redes e Linux desde 1996. Ele frequentemente se pergunta como a tecnologia funciona em grande escala mas costuma falhar em pequena escala. http://www.linuxmagazine.com.br