7
Proposta de Implementação de uma Honeypot para Detecção de Vulnerabilidades Marco A. Trentin 1 , Gustavo S. Linden 2 , Alcides A. S. Coelho Júnior 3 , André L. Fávero 3 Universidade de Passo Fundo - Campus I - Bairro São José - Fone (54) 316 8354 FAX (54) 316 8364 Cx. P. 611 - 99001-970 - Passo Fundo-RS [email protected], {40579,27891}@lci.upf.tche.br, [email protected] Resumo: O presente estudo visa identificar pontos vulneráveis em uma rede de computadores e demonstrar medidas para solucionar ou amenizar problemas de segurança envolvendo servidores. Assim, foi configurada uma rede de sistemas operacionais heterogêneos, conectados a Internet, para a detecção e análise dos ataques. As instalações dos sistemas operacionais foram executadas na forma “Out of the Box”, possibilitando testar a segurança dos sistemas operacionais com as configurações padrão de fábrica. Para detectar problemas relacionados à segurança foram monitorados os computadores e a rede, permitindo identificar pontos onde possíveis ataques podem ser realizados, devido a fraca segurança de serviços e servidores. Abstract: The present study seeks to identify vulnerable points in a computer network and to demonstrate measures to solve or to ease up problems of security involving servers. Thus, a computer network, of heterogeneous operational systems, was configured and connected to the Internet, for detection and analysis of the attacks. The installation of the operating systems was executed in the form "Out of the Box", allowing to test the safety of the operational systems with their standard factory configurations. To detect security problems, the computers and the network were monitored, allowing the identification of points where possible attacks could be accomplished, due the weak safety of services and servers. 1 Introdução A palavra segurança nunca foi tão importante para os ambientes computacionais como está sendo atualmente. Antigamente, não existia grande preocupação com este aspecto, pois o computador era privilégio de poucos (devido aos altos preços) e, também, poucos entendiam de informática (hardware e software). Porém, o cenário atual é outro. Com o passar dos anos o preço dos computadores diminuiu drasticamente, possibilitando uma maior aquisição, e conseqüente dependência, por arte das empresas. Para somar-se a isto, surgiu a Internet, que se apresenta como um meio global de troca de informações. Com o 1 Professor do curso de Ciência da Computação - UPF. 2 Acadêmico do curso de Ciência da Computação - UPF, bolsista FAPERGS. 3 Acadêmico do curso de Ciência da Computação - UPF.

deteccao vulnerabilidades

Embed Size (px)

DESCRIPTION

Artigo relacionado a deteccao de vulnerabilidades.

Citation preview

Page 1: deteccao vulnerabilidades

Proposta de Implementação de uma Honeypot para Detecção de Vulnerabilidades

Marco A. Trentin1, Gustavo S. Linden2, Alcides A. S. Coelho Júnior3, André L.

Fávero3

Universidade de Passo Fundo - Campus I - Bairro São José - Fone (54) 316 8354

FAX (54) 316 8364 Cx. P. 611 - 99001-970 - Passo Fundo-RS

[email protected], {40579,27891}@lci.upf.tche.br, [email protected]

Resumo: O presente estudo visa identificar pontos vulneráveis em uma rede de computadores e demonstrar medidas para solucionar ou amenizar problemas de segurança envolvendo servidores. Assim, foi configurada uma rede de sistemas operacionais heterogêneos, conectados a Internet, para a detecção e análise dos ataques. As instalações dos sistemas operacionais foram executadas na forma “ Out of the Box” , possibili tando testar a segurança dos sistemas operacionais com as configurações padrão de fábrica. Para detectar problemas relacionados à segurança foram monitorados os computadores e a rede, permitindo identificar pontos onde possíveis ataques podem ser realizados, devido a fraca segurança de serviços e servidores. Abstract: The present study seeks to identify vulnerable points in a computer network and to demonstrate measures to solve or to ease up problems of security involving servers. Thus, a computer network, of heterogeneous operational systems, was configured and connected to the Internet, for detection and analysis of the attacks. The installation of the operating systems was executed in the form "Out of the Box", allowing to test the safety of the operational systems with their standard factory configurations. To detect security problems, the computers and the network were monitored, allowing the identifi cation of points where possible attacks could be accomplished, due the weak safety of services and servers.

1 Introdução A palavra segurança nunca foi tão importante para os ambientes computacionais como está sendo atualmente. Antigamente, não existia grande preocupação com este aspecto, pois o computador era privilégio de poucos (devido aos altos preços) e, também, poucos entendiam de informática (hardware e software). Porém, o cenário atual é outro. Com o passar dos anos o preço dos computadores diminuiu drasticamente, possibilitando uma maior aquisição, e conseqüente dependência, por arte das empresas. Para somar-se a isto, surgiu a Internet, que se apresenta como um meio global de troca de informações. Com o 1 Professor do curso de Ciência da Computação - UPF. 2 Acadêmico do curso de Ciência da Computação - UPF, bolsista FAPERGS. 3 Acadêmico do curso de Ciência da Computação - UPF.

Page 2: deteccao vulnerabilidades

advento da Internet, sem dúvida nenhuma a preocupação com segurança aumentou significativamente [KURTZ, 2000]. Para proteger os sistemas computacionais, diversos estudos foram realizados e técnicas de defesa foram criadas. Surgiram também os Administradores de Redes, com a função de gerenciar toda a estrutura física e lógica de uma rede, além de cuidar dos aspectos de segurança [ANÔNIMO, 2000]. Estes profissionais podem usar várias técnicas de prevenção de ataques, como adotar firewalls (filtragem do tráfego) em sua rede, criar políticas para os usuários, util izar filtros em roteadores, ou ainda, adotar um Sistema de Detecção de Intrusão (IDS). A utilização de IDS’s está aumentando de forma significativa, visto que é um mecanismo seguro, que permite o monitoramento de um computador ou de uma rede. Como este trabalho visa testar a segurança de computadores conectados a Internet, foi implementado o conceito de Honeynet, onde foi criado um ambiente “propício” para atrair invasores. Uma peça fundamental na criação de uma Honeynet é escolher um sistema IDS robusto, capaz de funcionar em qualquer situação. Em nossa rede, foi utili zado o IDS Snort, em conjunto com algumas outras ferramentas (como o AIDE) e técnicas, a fim de que seja criado um ambiente confiável para a realização de testes e descobertas.

2 Honeypot Honeypot é um alvo que é testado, atacado e comprometido. Na verdade, ele é um software instalado no computador que emula outro sistema operacional, seus serviços e suas vulnerabil idades, evitando que o invasor tenha acesso ao verdadeiro sistema operacional, que está suportando este “falso” sistema operacional e seus serviços. Alguns exemplos mais conhecidos de Honeypot são: BackOffice para Windows NT e 2000, Specter, Mantrap, The Deception toolkit e HoneyD para sistemas baseados em Unix [SPITZNER, 2002]. Um invasor, quando consegue acesso a um computador, que está utilizando um honeypot, tem a sensação de ter invadido um sistema real. Assim, o invasor em momento algum tem acesso ao sistema operacional real, mesmo porque ele não sabe que está em uma emulação de um sistema operacional. Para ele o software é o sistema operacional que ele conseguiu entrar. A vantagem desse sistema é obter informações sobre o ataque sem comprometer o sistema operacional.

2.1 Honeynet Honeynet é um tipo de honeypot que permite estudar e compreender o ataque mais detalhadamente. Muito util izado em pesquisas, além de detectar ataques, ela possibil ita monitorar as atividades do atacante após uma intrusão de sucesso. Em uma Honeynet o sistema operacional e os serviços utilizados não são emulados, diferentemente de um honeypot tradicional. O próprio sistema operacional serve de alvo para ataques. Uma Honeynet é uma rede de computadores, podendo ser de diversos sistemas operacionais, que foram instalados de forma semelhante a encontrada na maioria das empresas, e também

Page 3: deteccao vulnerabilidades

com os mesmos serviços de rede [PROJECT, 2002]. Por não haver modificações, para tornar mais ou menos seguro, a Honeynet reflete exatamente a situação da segurança encontrada na maioria das empresas atualmente. Pela grande capacidade de aprendizado que a mesma possibilita, e por ser um sistema real, uma Honeynet apresenta grandes riscos, porque o invasor pode conseguir acesso total aos computadores desta rede, e não é possível prever o que ele fará com esse controle. Mas o conhecimento adquirido pela análise da invasão é muito maior do que a simples detecção da intrusão, que é o caso de um honeypot. Após verificar uma intrusão, os passos do invasor são monitorados para descobrir técnicas, ferramentas e, é claro, a real intenção da invasão, a fim de identificar quais os problemas existentes na segurança desta rede. O conhecimento adquirido com um honeypot é limitado em comparação a uma Honeynet, mas por outro lado os riscos envolvendo um honeypot comprometido são bem menores, uma vez que o atacante nunca terá posse real do sistema.

3 IDS IDS (Intrusion Detection System) é um sistema, implementado por software, com o objetivo de detectar intrusões. Existem diversas ferramentas IDS, para diferentes plataformas. Atualmente, percebe-se que os ataques ocorrem diariamente e são inúmeros. Com o uso de um IDS, pode-se saber quem são os atacantes, os alvos e as formas de ataque, permitindo descobrir quais são os pontos vulneráveis de uma rede, ou seja, onde atacantes poderão focar seus ataques. Os IDS podem ser de dois tipos: IDS assinaturas/rede ou de comportamento/host.

3.1 IDS de Assinatura ou de Rede Este tipo de IDS analisa os pacotes que trafegam na rede, buscando identificar assinaturas de ataques conhecidos. Um bom exemplo de IDS que funciona dessa forma é o Snort [CASWELL, 2002]. É o software de detecção de instrução mais conhecido e util izado atualmente, sendo freeware, sob licença GPL. Ele funciona através da coleta e análise de todos os pacotes que trafegam em um segmento de rede, comparando-os com regras (pass,log,alert) associadas a assinaturas, que são pacotes correspondentes a invasões já detectadas e guardadas em um banco de dados. As regras quali ficam o que deve ser feito: pass, se esse é um tráfego de rede normal e não implica na segurança da rede; log, registra esse pacote para passar informações ao gerente de rede sobre os pacotes que estão trafegando na rede; alert, registra e alerta se algum pacote possuir conteúdo “malicioso” .

3.2 IDS de Comportamento ou de Host Este tipo de IDS monitora as atividades de um computador, identificando diferenças no padrão diário do mesmo. Ele tem a mesma função que o IDS de assinaturas, porém ele trabalha de forma diferente. Ele possui informações do padrão de comportamento diário do sistema. Se o sistema que esta sendo monitorado sair do seu padrão, são coletados pacotes e informações do que esta acontecendo, analisados e gerado um alerta, o que permite ao

Page 4: deteccao vulnerabilidades

usuário analisar a razão do alerta. Essa coleta de pacotes permite criar uma assinatura do ataque, de forma que, se for um novo ataque, poderá ser acrescentado no banco de dados do IDS de assinaturas. Como esse sistema de detecção não se baseia em assinaturas e sim em padrões, é possível detectar novas formas de ataques. Ele é bastante utilizado em pesquisas.

3.3 AIDE AIDE (Advanced Intrusion Detection Environment) é um ambiente avançado de detecção de intrusão, que tem a finalidade de detectar intrusões em um host, através da comparação de arquivos previamente determinados do host com uma comparação feita anteriormente e armazenada em um banco de dados, que pode estar local ou remotamente. Através desta comparação, ele consegue identificar a modificação de qualquer arquivo importante (previamente determinado) dentro do banco de dados. Este software roda em plataformas Unix, e é um substituto freeware, sob licença GPL, do Tripwire [LEHTI, 2002].

4 Configuração atual da Honeynet A nossa Honeynet encontra-se dentro do Laboratório Computacional de Pesquisa do Curso de Ciência da Computação, da Universidade de Passo Fundo – RS, e é composta por quatro computadores. Em três destes estão instalados distribuições de sistemas operacionais com kernel Linux, e no quarto está instalado o Windows 2000 Server. Todos encontram-se em um mesmo segmento. Um computador (gateway) controla o fluxo de um túnel, o qual permite o acesso da Internet a esta Honeynet. Este gateway também tem a finalidade de isolar a Honeynet do resto da rede da Universidade. Isto é importante, pois esta rede tem por finalidade trazer subsídios para um projeto de pesquisa na área de segurança, principalmente através da monitoração de invasões reais, vindas de toda a Internet. Como estes computadores possuem IP real e estão abertos a invasões, este gateway não pode permitir que ataques sejam realizados à rede corporativa de nossa Universidade, a partir de nossa Honeynet. Então, por motivos de segurança, este túnel é utili zado para poder conduzir o tráfego da Honeynet diretamente ao roteador, e assim à Internet, não permitindo com isso que este tráfego passe por redes inseguras.

Figura 1: Configuração da Honeynet atual

Page 5: deteccao vulnerabilidades

5 Garantindo o controle e o monitoramento da Honeynet A instalação dos sistemas operacionais foi executada sem qualquer reforço ou preocupação com a segurança (out of the box). As configurações adotadas foram as configurações padrão para servidor que acompanham o cd-rom de cada distribuição de sistema operacional. Inicialmente foi feita a instalação do sistema operacional, depois foram habilitados os serviços. Também foram modificados arquivos de configuração para coletar informações do estado e operações executadas no computador, para somente depois conectar o computador com o resto da rede. Como a comunicação entre os computadores é através de um Hub, o Snort foi instalado em apenas um computador da rede. Para garantir a integridade das informações, caso ocorram invasões, o Snort envia os alertas que ele gera para outro computador, em que o invasor não consiga acesso. Para se comunicar com a Internet é preciso passar pelo gateway. Então, também neste gateway foi configurado um sensor do Snort, para se ter mais confiabilidade nas informações obtidas. Os serviços que rodam nestes computadores são preferencialmente os que vieram junto com o sistema operacional, mas quando era preciso algum outro programa, era feita a compilação da versão mais recente. Todas a máquinas utilizam IP real, e para disponibili zar maiores informações para a Internet, foram retiradas todas as regras do firewall que existe entre estes computadores e o roteador. Isso permitiu que aos atacantes conhecessem melhor nossa rede e o que havia dentro dela. Para garantir a nossa análise posterior a alguma invasão, os sistemas operacionais dos computadores sofreram recompilações e programas foram adicionados, como é o caso do AIDE, para verificar quais arquivos foram comprometidos pelo cracker, se houve algum trojan instalado ou teve alguma configuração alterada. Também foi assegurado a gravação de todos os comandos digitados no computador. Com isto pode-se ter noções mais precisas do objetivo do ataque. Mesmo com todas essas precauções tomadas, não há garantia de segurança total do sistema. Para garantir um controle ainda maior é preciso instalar um firewall, o que garante que a nossa rede não seja um meio para outros ataques. Este firewall limitaria a saída a partir de nossa Honeynet.

6 Algumas informações obtidas Nesta sessão é possível observar alguns logs registrados de tentativas de intrusão a nossa Honeynet. As informações apresentadas abaixo foram geradas por atacantes tentando encontrar pontos fracos no sistema alvo. Jun 7 20:0 9:3 4 l ogger sshd[ 2756] : scanned fr om 206. 111. 91. 126 wi t h SSH-1. 0- SSH_Ver s io n_Mapper. Don' t pani c . Jun 7 20:0 9:3 4 l ogger sshd[ 2755] : Did n ot r eceiv e i dent i f i ca t io n st ri ng f r om 20 6.1 11. 91. 126

Figura 2: exemplos de logs gerados por portscan de vulnerabili dade do ssh

Page 6: deteccao vulnerabilidades

No exemplo acima, foi utilizado um scanner de vulnerabilidades existentes no SSH-1.0. Quem alertou este scanner não foi o Snort, e sim o próprio daemon ssh do computador atacado. Mas no caso não houve continuidade do ataque, porque o sshd, que o computador estava rodando, não apresentava a vulnerabilidade que a ferramenta estava procurando.

No exemplo abaixo ocorreu uma procura por serviços sshd em uma faixa de IP. Todos os computadores foram “scanneados” , sem exceção. Neste caso não foi procurada uma vulnerabil idade em especial. O atacante apenas queria saber quais computadores tinham o serviço rodando para posteriormente verificar se algum dos computadores com sshd estão rodando uma versão com vulnerabil idades possíveis de serem exploradas. Após, o atacante realmente verificou a versão do sshd em um dos computadores, o que pode ser visto nas duas últimas linhas da figura abaixo. Jun 9 11:24:24 logger snort[849]: [111:13:1] spp_stream4: STEALTH ACTIVITY (SYN FIN scan) detection {TCP} 62.194.74.79:22 -> Mandrake:22 Jun 9 11:24:24 logger snort[849]: spp_portscan: PORTSCAN DETECTED to port 22 from 62.194.74.79 (STEALTH) Jun 9 11:24:24 logger snort[849]: [111:13:1] spp_stream4: STEALTH ACTIVITY (SYN FIN scan) detection {TCP} 62.194.74.79:22 -> Windows2000:22 Jun 9 11:24:24 logger snort[849]: [111:13:1] spp_stream4: STEALTH ACTIVITY (SYN FIN scan) detection {TCP} 62.194.74.79:22 -> logger:22 Jun 9 11:24:24 logger snort[849]: [111:13:1] spp_stream4: STEALTH ACTIVITY (SYN FIN scan) detection {TCP} 62.194.74.79:22 -> conectiva8:22 Jun 9 11:24:27 logger sshd[10649]: Did not receive identification string from 62.194.74.79 Jun 9 11:27:40 logger snort[849]: spp_portscan: portscan status from 62.194.74.79: 5 connections across 4 hosts: TCP(5), UDP(0) STEALTH Jun 9 11:39:40 logger snort[849]: spp_portscan: End of portscan from 62.194.74.79: TOTAL time(1s) hosts(4) TCP(5) UDP(0) STEALTH Jun 9 12:44:23 logger sshd[10693]: Did not receive identification string from 200.249.122.45

Figura 3: exemplos de logs gerados por portscan na porta 22

7 Conclusão Um computador que for conectado na Internet nunca está 100% seguro, principalmente se forem utilizadas as configurações que acompanham o cd-rom da distribuição do sistema operacional. Quanto mais desatualizado o sistema operacional, menos seguro ele se torna, isso porque o número de bugs é maior, permitindo assim mais tempo para que os crackers transformem estes bugs em vulnerabil idades. Neste pouco tempo de existência de nossa Honeynet, pode-se perceber o quanto computadores com IP real sofrem tentativas de ataques, e com grandes chances de sucesso. Por isto, a preocupação com segurança em empresas que dependam de computadores, com acesso a Internet, para o sucesso de seus negócios, deve ser constante e sempre atualizada. Uma vez que uma Honeynet pode ser atacada, e os invasores obeterem sucesso, é imperativo que as pessoas que a administram também cerquem-se de cuidados para que o

Page 7: deteccao vulnerabilidades

invasor não venha efetuar outros ataques, principalmente a outras redes da mesma instituição, a partir da máquina em que obteve acesso.

8 Referências Bibliográficas ANÔNIMO, Autor. Segurança máxima. Editora: Campus, ed.: Segunda. 2000, 826 p. CASWELL, B.; BAKER, A.; GREEN, C.; et al. Snort.org. Disponível em: http://www.snort.org. Acesso em 20 de junho de 2002. CHESWICK, B. An Evening with Berferd. Disponível em: http://www.tracking-hackers.com/papers/berferd.pdf. Acesso em 10 de junho de 2002. KURTZ, G., MCCLURE, S., SCAMBRAY, J. Hackers expostos. Editora: Makron books. São Paulo 2000, 470 p. LEHTI, R.; VIROLAINEN, P. AIDE – Advanced Intrusion Detection Enviroment. Disponível em: http://www.cs.tut.fi/~rammer/aide.html. Acesso em 22 de junho de 2002. PROJECT, Honeynet. Conheça o seu Inimigo – O Projeto Honeynet. Editora: Makron books. São Paulo 2002, 336 p. SPITZNER, L.; DITTRICH, D.; ROESCH, M. HoneyNet Project. Disponível em: http://project.Honeynet.org/papers/Honeynet 2002. Acesso em 25 de junho de 2002.