U NIVERSIDADE FEDERAL DO PARÁ I NSTITUTO DE CIÊNCIAS EXATAS E NATURAIS
UM ESTUDO SOBRE SISTEMAS DE DETECÇÃO DE INTRUSÃO
A NTONIO EDIVALDO DE OLIVEIRA GASPAR K ARLA ARLA LIDIANE DE S. DE JESUS MILENE CHAVES DA SILVA MONOGRAFIA DE CONCLUSÃO DO CURSO DE PÓS-GRADUAÇÃO SUPORTE A R EDES EDES DE COMPUTADORES E TECNOLOGIAS INTERNET Orientador: Prof MSc. Jorge Koury Bechara Belém-PA, Belém-PA, 26 de junho de 2008.
ANTONIO EDIVALDO DE OLIVEIRA GASPAR ARLA LIDIANE DE S. DE JESUS K ARLA MILENE CHAVES DA SILVA
UM ESTUDO SOBRE SISTEMAS DE DETECÇÃO DE INTRUSÃO
Monografia de conclusão de curso apresentada como parte das atividades para obtenção do título de especialista, do curso de Pós-Graduação em Suporte a Redes de Computadores e Tecnologia Internet do Instituto de Ciências Exatas e Naturais da Universidade Federal do Pará.
Orientador: Prof. MSc. Jorge Koury Bechara Belém-PA, junho 2008
UM ESTUDO SOBRE SISTEMAS DE DETECÇÃO DE INTRUSÃO
Monografia de conclusão de curso apresentada como parte das atividades para obtenção do título de especialista, do curso de Pós-graduação de Suporte a Redes de Computadores e Tecnologia Internet e aprovada na sua forma final pelo Instituto de Ciências Exatas e Naturais da Universidade Federal do Pará.
Data da aprovação: ____ de _____________________ de ________. Conceito: _______________________ ________________________ _
_________________________________________________________ Orientador: Prof. MSc. Jorge Koury Bechara Belém-PA, 26 de junho de 2008
“Existe uma fronteira muito tênue entre ajudar administradores a protegerem seus sistemas e prover um livro de receitas para pessoas sem escrúpulos” Robert H. Morris
RESUMO
Sistema de Detecção de Intrusão (IDS) é um dos elementos essenciais à infraestrutura de segurança, que objetiva identificar tentativas de intrusão de modo que uma resposta apropriada possa ser invocada. IDS podem ainda auxiliar os administradores na recuperação de danos, na identificação e no rastreamento de ações do atacante. O presente trabalho objetiva apresentar as diversas abordagens sobre IDS, sua classificação, classificação, principais características, aplicabilidade, aplicabilidade, vantagens vantagens e desvantagens. O objetivo principal foi apresentar o Snort , um software Open Source para detecção de intrusões, juntamente com os principais tipos de ataques da atualidade. Também descreve inúmeras simulações e análises que objetivam avaliar a capacidade de detecção e a eficiência das assinaturas do Snort . Palavras-chave: Sistemas de Detecção de Intrusão (IDS), Detecção de Intrusão Baseada em Host (HIDS), (HIDS), Detecção Detecção de Intrusã Intrusãoo Baseada Baseada em Rede (NIDS), (NIDS), Máquinas Virtuais (VM), Snort .
ABSTRACT
The intrusion intrusion detectio detectionn system systemss (IDS), (IDS), compose compose one of the elements elements of the again againstst-int intrus rusio ionn infras infrastru truct cture ure that that obj objec ecti tive ve to identi identify fy attem attempts pts of way intrusion that an appropriate reply can be invoked. IDS can still assist the administrators administrators in the recovery of damages, the identification identification and the tracking of action of the aggressor. The present work intends to show to the diverse concept conceptss and studies studies on Detecti Detection on system systemss of Intrusi Intrusion, on, its classif classifica ication tion,, applicability, advantages and disadvantages. The main objective is to present the Snort, an Open Source software for detention of intrusions, together with the main main method methodolo ologie giess of attac attacks ks of the prese present nt tim time, e, throu through gh innum innumera erabl blee implementations and analyses on the detention capacity and efficiency of the signatures of the Snort. Keywords: Keywords: Intrusion Intrusion Detection System System (IDS), Host based Intrusion Intrusion Detection System System (HIDS), Network Intrusion Detection Detection System System (NIDS), Virtual Machine Machine (VM), Snort.
LISTA DE ILUSTRAÇÕES
1.1 1.1
Total otal de Inc Inciden idente tess rep epor orta tado doss ao CERT. ERT.Br Br de 199 1999 a 200 2007... 7..... .... .... .... .... .... .... .... .... .... .... .... ......
18
1.2
Evolução das ameaças computacionais levando em consideração a veloci vel ocidad dadee de propag propagaçã ação, o, ada adapta ptado do de [GOME [GOMES, S, 200 2006] 6] ... ...... ...... ...... ...... ...... ...... ...... ...... ...... ..... ..
19
W orm Code Red infectou mais de 302.500 hosts em pouco mais de nove horas horas em em 19 19 ddee junh junhoo ddee 22001 001 ... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ..... ..
19
W orm SQL Slammer em menos de 30 minutos infectou mais de 74.800 hosts em 2255 de jan janeir eiroo de 200 20033 ... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... .....
20
1. 1.44
Segura urança nça da Inf nfoormação at atrravé avés da correlaç elaçãão entre quatro princí ncípios básicos, básico s, ada adapta ptado do de [LAURE [LAUREAN ANO, O, 200 2005] 5] ... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ..... ..
22
1.5 1.5
Técni écniccas de cont contrra-i a-int ntru rusã são, o, ad adaapt ptad adoo de [JOR [JORG GE, 2006 2006]] .... .......... ...... .... .... .... .... ........ ...... ....... ....
29
1.6
Defense in depth usan usando do estra estratég tégia ia de defes defesaa em cama camada dass .... ...... .... .... .... .... .... .... .... .... .... .... ....
30
1.7
Choke point representado por um servidor Firewall .. .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ..
30
1.8
Firewall proteg protegend endoo uma rede rede de com comput putador adores es ... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... .....
33
1.9 1.9
Serv ervido dorr IDS IDS mo moni nittora orand ndoo a rede rede int nter erna na e ext extern erna aoFirewall .......................
35
2. 2.11
Clas Classi sififica caçã çãoo de IDS ... ..... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ..
48
2.2 2.2
Difer feren encciaç iação ent ntrre as clas classe sess de de dete tecç cção ão de intr ntrusão usão .... .......... ...... ....... ....... .......... ...... ....... ...... ...
50
2.3
Rede utilizando IDS baseados em host (FileServer e MailServer ) e rede (monitorando as interfaces interna e externa do Frewall ) ......................
51
2. 2.44
Módul ódulos os de um IDS IDS .. .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ....
52
2.5
IDS em uma arquitetura distribuída através do uso de vários agentes (sensores)
53
2. 2.66
Exem Exempl ploo de Me Mens nsag agem em IAP IAP .. .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ....
58
3.1 3.1
Sofi ofistica ticaçção do do at ataq aquue vs vs.. conh conhec eciime mennto téc técni nicco do in intr trus usoo, adap adapttad adoo de [ALLEN [ALLEN,, 200 2000] 0] ... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... .....
61
3. 3.22
Anat Anatom omia ia de um at ataq aque ue .. .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ....
63
3.3
Utilização de HIDS em hosts um umaa rede rede de comp comput utad ador ores es .. .... .... .... .... .... .... .... .... .... .... .... .... .... .... ....
74
3. 3.44
Níve Níveis is de abst abstraç ração ão ent entre re as difer diferen entes tes abor aborda dage gens ns de IDS IDS .... ...... .... .... .... .... .... .... .... .... ..... ..... .... ..
76
1.3a 1.3b
3. 3.55
Fluxo uxo do do am ambient ntee cl client ente-serv ervidor OSSEC uussando ndo ag agentes ntes ........ ............ ...... ..........
81
4.1 4.1
Posi osicion cionam amen ento to do Sen enssor NIDS IDS na rede rede .... ...... ........ .......... ...... ....... ....... ...... .... .... .... .... ........ ...... ....... ....... ...... .... ....
86
4. 4.22a
Exem empl ploo de tráfe feggo de rede sem anom nomali alias (período de um umaa sem eman ana) a) ........ ....
87
4. 4.22b
Exem empl ploo de tráfe feggo de rede sem anom nomali alias (período de três semanas) as) ... .........
87
4.3
Anomalia Flash Crowd , dete detect ctad adaa em um link link de comu comuni nica caçã çãoo .. .... .... .... .... .... .... .... .... .... .... ..
90
4.4 4.4
Ataqu taquee de Neg egaç ação ão de Serv erviço iço – DoS ... ....... .......... ...... ....... ....... ...... ....... ....... .......... ...... ....... ....... ...... .... .... .... .... ....... ...
93
4.5 4.5
Ataqu taquee de Neg egaç ação ão de Serv erviço iço Distr istrib ibuí uído do – DdoS doS ... ....... ...... .... .... .... .... ........ ...... ....... ....... .......... ...... .....
93
4.6 4.6
Siste istemá máttica ica de um ataq ataque ue DDoS DDoS .... ...... .... ....... ....... ...... .... .... .... .... ........ ...... ....... ....... ...... .... .... .... .... ........ ...... ....... ....... ...... .... ....
94
4.7
...................................................................... ....... Fluxo de funcionamento do Snort ...............................................................
101
4.8
Pilha funcional do Snort ....................................................................................
102
4.9
Posicionamento do IPS e sensores Snort em um umaa rede de comput putadores ... .....
104
5.1 5.1
Mon onit itor or de de máq máqui uina nass vir virtu tuai aiss (VM (VMM), titipo poss I e IIII .... ...... .... .... .... ........ ...... ....... ....... ...... .... .... .... .... ........ ...... ....... ...
10 1088
5. 5.22
Tela Tela prin princi cipa pall do Vmw Vmware are Works Worksta tatition on 5 .. .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ..
109 109
5.3
Cenário 1, host atacante Backtrack 3 ... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... .....
112
5. 5.44
Máqui áquina nass virt virtua uais is e sist sistem emaa anfi anfitr triã iãoo do cená cenári rioo 1 .. .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ....
112 112
5.5
Configuração da interface Host-only no Vmw Vmware are Wo Work rkst star ario ionn .... .... .... .... .... .... .... .... .... .... .... .... ....
113 113
5.6
Alertas de detecção de intrusão do Snort para o Web Scanner Nikto ...............
115
5.7
Classificação do ataque para o Web Scanner Nikto .. .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ..
115 115
5.8 5.8
Estat statíísti sticas de de dete teccção ção de int ntru russão do Snort nort para para o Web Scanner Nikto .......
116
5.9
Scannerr Nikto Nikto usando Estatísticas de de detecção de in intrusão par para o Web Scanne evasão evasão ...... ............ ............ ........... ........... ........... ........... ............ ........... ........... ............ ............ ............ ............ ............ ............ ........... ........... ........... ....... ..
118
5.10
Alertas gerados para o Web Scanner Nikto usan usando do eva evasã sãoo .... ...... .... .... .... .... .... .... .... .... .... .... .... .... ..
119 119
5.11
Alertas de port scanning para o teste do nmap ................................................
121
5.12
Estatísticas de intrusão para o nmap ...............................................................
121
5.13 5.13
Classi assifi fica caçção da assi assina natu turra de de int intrrusão usão para para o nmap .......................................
121
5.14
Alertas id identificando o port scanning com a opção TCP SYN Stealth ativa .....
122
5. 5.115
Class assific ficaçã ação da das as assinat atur uraas para para o nmap em modo Stealth .........................
122
5.16
Estatísticas de alertas para o nmap em modo Stealth. .. .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ....
123 123
5. 5.17 17
Esta Estatí tíst stic icas as de aler alerta tass par paraa o nm nmap ap usan usando do o par parâm âmet etro ro “-“--data-length” ..........
125
5.18
Alertas para o nmap usando o parâmetro “--data-length” .. .... ....... ....... ...... ....... ....... ...... .... .... .... .... .....
12 1255
5.19 5.19
Cen enár áriio 2 pa para sim simulaç ulaçõe õess das das ferr ferram amen enttas Ret Retiina, na, Nessus e Metasploit . .......
126
5. 5.20 20
Máqui áquina nass virt virtua uais is e sist sistem emaa anf anfititri rião ão do cená cenári rioo 2 .. .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ..
126 126
5. 5.21 21
Tela Tela prin princi cipa pall do soft softwa ware re Re Retitina na .. .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ....
128 128
5.22
Estatísticas de ale alertas exi exibidas pel pelo fonrtend BASE no teste de intrusão usando usa ndo o Ret Retina ina ... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... .....
128
5.23
Alertas produzidos pelo Snort após a utilização do Retina contra a máquina alvo
129
5.24
Scanner Nessus .................................................................. ............................................................................. ........... Figura 5.24. Scanner Nessus
130
5. 5.225
Estat atíístic ticas de al alertas ex exibidas das pe pelo frontend BASE no teste do Nessus .........
131
5.26
Nessus ............................................. Alertas de detecção para o port scanner Nessus
131
5.26
Metasploit Framework ............................................................. ........................................................................................ ...........................
132
5.28
Exploração da da vu vulnerabilidade Windows Metafile Escape() SetAbortProc Code Execution ............................................................. ............................................................................................................ ...............................................
135
5. 5.29 29
SetAbortProc ........... Pesq Pesqui uisa sa no MSF para para a vul vulne nera rabi bililida dade de ms ms06 06-0 -001 01 wm wmf f SetAbortProc
136
5.30
Seleção do payload para para a vul vulner nerabi abilid lidade ade ms0 ms06-00 6-0011 ...... ......... ...... ...... ...... ...... ...... ...... ...... ...... ...... ..... ..
136
5.31
Escolha das opções gerais do exploit .... ...... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ..... ..... .... .... .... .... .... .... .... .... ....
136 136
5.32
Conclusão da configuração do exploit ...............................................................
137
Alertas gera erados para a explo ploraçã ação da vulner nerabi abilidade ade ms06-0 06-0001 wmf
137
5. 5.333
SetAbortProc
5.34 5.34
Estat statíísti sticas ge gera rada dass pa parra a expl explor oraç ação ão da vuln vulner erab abiilida lidade de ms ms06 06-0 -001 01w wmf SetAbortProc .....................................................................................................
137
5.35
Relatório do scanner Nessus indi indica cand ndoo a vuln vulnera erabi bililidad dadee ms ms0303-02 0266 .... ....... ..... .... .... .... ....
140 140
5.36
Seleção do exploit no MSF MSF para para a vul vulne nera rabi bililidad dadee ms03ms03-02 0266 .... ...... .... .... .... .... .... ..... ..... .... .... .... ..
140 140
5.37
Seleção do payload para para a vul vulner nerabi abilid lidade ade ms0 ms03-02 3-0266 ... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...
141
5.38
Bind Shell para para acesso acesso remoto remoto ao com comput putador ador da vítim vítimaa ... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...
141
5. 5.39 39
Cons Co nsta tata taçã çãoo de cria criaçã çãoo de um umaa past pastaa após após o ataq ataque ue .. .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ....
142 142
5.40
Estatísticas de alertas no frontend BASE o teste obtenção de acesso .............
142
5.41
Alertas do Snort o tes teste te obt obtenç enção ão de ace acesso sso ... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... .....
142
5.42
Assinaturas do Snort para para o test testee obten obtençã çãoo de acess acessoo ..... ........ ..... .... .... .... .... .... .... .... .... .... .... ..... ..... .... ..
142 142
LISTA DE TABELAS
Tabela Tabela 4.1
Ferramentas Ferramentas para ataque DoS e tipo de tráfego tráfego respectivo respectivo ..... ........... ........... ........... ............ ......... ...
96
Tabela 5.1
Hosts usados na simulação simulação do cen cenário ário 1 ........... ................. ............ ............ ............ ........... ........... ............ ............ ........ ..
112
Tabela 5.2
Resumo de funções e exemplos de uso do Nikto ... ...... ... ... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... .....
114
Tabela Tabela 5.3 5.3
Síntese Síntese da simulaç simulação ão e resultados resultados obtid obtidos os na na detecçã detecçãoo (teste (teste 1) ...... ............ ............ ........... ..... 116
Tabela 5.4
Opções de evasão de IDS do Nikto ..... .......... ........... ............ ............ ............ ............ ............ ........... ........... ............ ............ ...... 117
Tabela Tabela 5.5 5.5
Síntese Síntese da simulaç simulação ão e resultados resultados obtid obtidos os na na detecçã detecçãoo (teste (teste 3). ..... ........... ............ ........... ..... 121
Tabela Tabela 5.6 5.6
Síntese Síntese da simulação simulação e result resultados ados obtid obtidos os na detecção detecção (teste 4).......... 4)................ ............ ........ .. 123
Tabela 5.7
Opções de evasão do nmap ..... ........... ........... ........... ............ ............ ............ ............ ............ ........... ........... ........... ........... ........... ..... 124
Tabela Tabela 5.8 5.8
Síntese Síntese da simulação simulação e result resultados ados obtid obtidos os na detecção detecção (teste 5).......... 5)................ ............ ........ .. 125
Tabela 5.9
Hosts usados na simulação do Cenário 2 ..... ........... ............ ............ ........... ........... ............ ............ ............ ............ ........ .. 126
Tabela Tabela 5.10 Síntese Síntese da simulaç simulação ão e resultado resultadoss obtidos obtidos na detecçã detecção o (teste (teste 6)........ 6).............. ............ .......... .... 129 Tabela 5.11 Descrição do teste teste e resultados para o tráfego gerado gerado peloNessus .................. 131 Tabela 5.12 Resultados para a execução do exploit ms06-001 wmf SetAbortProc via MSF.......... 138 Tabela 5.13 Resultados para a execução do exploit ms03-026 Buffer Overrun In RPC Interface ... 143
SUMÁRIO
Autoria: .......................................................................................................................3 RESUMO......................................................................................................................5 Abstract.......................................................................................................................6 Lista de ilustrações....................................................................................................7 Lista de tabelas........................................................................................................10 Sumário.....................................................................................................................11 Introdução.................................................................................................................16 1 Fundamentos de Segurança Segurança Computacional.....................................................17 1.1 Princípios Princípios de segurança da informação............... informação........................... ........................ .................................. .............................20 .......20 1.1.1 Outros conceitos importantes............................... importantes.......................................................... ................................................. ............................ ............ ............ .........23 ...23
1.2 Política de Segurança Segurança ........................ ..................................... ......................... ........................ ......................... ....................................25 .......................25 1.2.1 Normas existentes......................................................................................................................26 1.2.2 Formas e metodologias de proteção............................ proteção....................................................... ...................................................... ....................................27 .........27 1.2.3 Estratégias de segurança........................... segurança...................................................... ...................................................... .................................. ............. ............ ............. .......29 29
1.3 Mecanismos de proteção............ proteção........................ ......................... ......................... ........................ ...........................................31 ...............................31 1.3.1 Atualização do Sistema Operacional................................ Operacional........................................................... ...................................................... ................................32 .....32 1.3.2 Detecção de Vírus................................ Vírus........................................................... ..................................................... ...................................... .................. ............ ............ .........33 ...33 1.3.3 Firewalls......................................................................................................................................33 1.3.4 Password crackers.....................................................................................................................34 1.3.5
Criptografia.................................................................................................................................34
1.3.6 Scanners de Vulnerabilidades................................. Vulnerabilidades............................................................ ...................................................... ........................................ ..............34 .34 1.3.7 Configuração dos Sistemas.................................... Sistemas............................................................... .................................................... ............................... ............ ..........34 ....34 1.3.8 Detecção de Intrusão...................................................... Intrusão........................... ...................................................... .................................................. .............................. ..........35 ...35 1.3.9 Ferramentas de Descoberta de Rede e Scanners de Portas.............................. Portas.................................................. ........................35 ....35 1.3.10 Política de segurança ................................................... ........................ ..................................................... ..................................................... ..................................35 .......35 1.3.111 Respostas à Incidentes.................................... 1.3.1 Incidentes.............................................................. ..................................................... ...................................... ................. .........36 ...36
1.3.12 Testes de Negação de Serviço........................................ Serviço................................................................... .................................. ............. ............ ............. ...........36 ....36
2 Sistemas de Detecção de Intrusão......................................................................37 Intrusão......................................................................37 2.1
Terminologias...............................................................................................................38
2.2 Conceitos Conceitos e definições definições de IDS................. IDS............................. ......................... ......................... ........................ ..............................39 ..................39 2.3 Justificativa Justificativa para o uso uso de IDS............ IDS........................ ......................... ......................... .............................................41 .................................41 2.4 Limitações......... Limitações..................... ......................... ......................... ........................ ......................... ......................... .............................................42 .................................42 2.5
Vulnerabilidades...........................................................................................................44
2.5.1 IP Spoofing.................................................................................................................................44 2.5.2 Inserção......................................................................................................................................44 2.5.3 Evasão........................................................................................................................................46 2.5.4 Negação de serviço serviço ou Deny of Service Service (DoS).......................... (DoS)..................................................... ..................................... ................. ............47 .....47
2.6 Classificação Classificação de IDS................ IDS............................ ........................ ......................... ......................... ........................ ...................................48 .......................48 2.6.1 Método de Detecção............................... Detecção.......................................................... ...................................................... ............................................... ........................... ..........48 ...48 2.6.1.1 Baseado em assinatura............................... ........................... .................. ............ ...... .........................48 ...................48 2.6.1.2 Baseado em anomalia............................................ ........................... .............. ........ ............ ........ ..................49 ................49
2.6.2 Arquitetura...................................................................................................................................50 2.6.2.1 Segundo o alvo............................... ........................... ........................... .............. .....................50 ................50 2.6.2.2 Segundo a localização.............................................. ........................... .............. ......................51 ................51
2.6.3 Comportamento pós-detecção....................................................................................................53 2.6.4 Segundo a freqüência de uso........................................................... uso................................ ................................................. ............................ ............ ............ ........54 ..54
2.7 Entidades Entidades e padrões............ padrões........................ ......................... ......................... ........................ ......................... .......................................54 ..........................54 2.7.1 Intrusion Detection Detection Exchange Exchange Format Working Group - IDWG............................................... IDWG.............................. .....................55 ....55
2.8 Protocolos para troca de mensagens entre IDS........................ IDS............ ........................ ........................ ................. ........55 ...55 2.8.1 IDMEF.........................................................................................................................................56 2.8.2 O Modelo de Dados IDREF........................................ IDREF................................................................... ......................................... .................... ............ ............. ...........56 ....56 2.8.3 IAP - Internet Intrusion Alert................................... Alert.............................................................. ................................................... .............................. ............. ............57 .....57 2.8.3.1 Modelo de Comunicação....................................... ........................... .............. ........ ............ .........................57 ...................57 2.8.3.2 Sintaxe das Mensagens.......................................... ........................... ..................... .................57
2.9 Considerações Considerações sobre Avaliação Avaliação de IDS........................... IDS....................................... ................................. ..............................58 .........58
3 DETECÇÃO DE INTRUSÃO INTRUSÃO BASEADA BASEADA EM HOST (HIDS)........................ (HIDS)................ ................ ..........61 ..61 3.1 Ataques Ataques Locais.............. Locais.......................... ........................ ......................... ......................... ........................ ......................... ..................................62 .....................62 3.2 Classificação dos invasores de sistemas................... sistemas....... ........................ ....................... ....................... .................. ........... ......64 .64 3.3 Ameaças Ameaças digitais........... digitais....................... ......................... ......................... ........................ ......................... ......................... .................................66 .....................66 3.3.1 Worm..........................................................................................................................................66 3.3.2 Adwares e spywares.................................................................................................................68 3.3.3 Bots e Botnets................................. Botnets............................................................ ...................................................... ...................................................... ......................................68 ...........68 3.3.4 Cavalos de tróia (trojan horse)..................................................... horse)........................... ..................................................... ........................................ .................... .......69 69
3.3.4.1
Backdoor.................................................................................................................................69
3.3.4.2 Keylogger e Screenlogger.................................... .......................... ............ ...... ............ ............ .......................70 .................70
3.3.5 Rootkits.......................................................................................................................................71 3.3.6 Exploits.......................................................................................................................................72
3.4 IDS baseado em Host .......................... ...................................... ........................ ......................... ........................................ ..................................73 .......73 3.4.1 Conceito......................................................................................................................................73 3.4.2 Principais Características dos HIDS................................... HIDS.............................................................. ..................................... ................ ............ ............. .......75 75 3.4.3 IDSs baseados em rede x host.......................................................... host............................... ...................................................... .................................. ............. .......76 .76 3.4.4 Verificadores de integridade ..................................................... .......................... ...................................................... ............................................... .......................79 ...79
3.5 Exemplos Exemplos de HIDS....................... HIDS................................... ......................... ......................... ........................ ................................... ...............................79 ........79 3.5.1 TRIPWIRE..................................................................................................................................80 3.5.2
OSSEC......................................................................................................................................80
4 DETECÇÃO DE INTRUSÃO INTRUSÃO BASEADA BASEADA EM REDE (NIDS)........................ (NIDS)................ ................ ..........84 ..84 4.1 IDS baseado em rede (NIDS)................ (NIDS)............................ ......................... ......................... ........................ ..................................84 ......................84 4.1.1 Posicionamento do sensor na rede....................................................... rede............................ ...................................................... ..................................... ...........86 .86
4.2 Anomalias Anomalias no Tráfego de Rede................ Rede............................ ......................... ......................... ..........................................87 ..............................87 4.3 Classificação Classificação de Anomalias Anomalias na Rede............... Rede............................ ......................... .............................................89 .................................89 4.3.1 Anomalias de Operação da Rede.................................. Rede............................................................. .......................................... ..................... ............ ............ .......89 .89 4.3.2 Anomalias ‘Flash Crowd’.................................... Crowd’.............................................................. ..................................................... ......................................... ...................89 .....89 4.3.3 Anomalias de Medição....................................... Medição.................................................................. ..................................................... ..................................... ................. ........90 ..90 4.3.4 Ataques.......................................................................................................................................90 4.3.4.1 Classificação de Ataques a Redes............................... ................... ............ ...... ............ ............ ......................90 ................90 4.3.4.2 Ataques de Negação de Serviço DoS......................................................................................92 4.3.4.2.1 Tipos de ataques DoS.................................. ........................... ....................... ............ ...... ............ ..........94 ....94 4.3.4.2.2 Ferramentas para ataque DoS .......................... ........................... ................ ............ ...... ............ ...........96 .....96 4.3.4.3 Ataques de Varredura (Probing)................................ ....................... ............ ...... ............ ...........................96 .....................96 4.3.4.4 Ataques de Penetração................................. ........................... ............... ......... ............ ............ ..........................98 ....................98
4.4 O NIDS Snort...................... Snort................................... ......................... ........................ ........................ ......................... ........................................ ............................99 .99 4.4.1 Funcionamento do Snort.......................................................... Snort............................... ...................................................... ............................................ ......................100 .....100 4.4.2 Componentes do Snort.......................................................... Snort............................... ...................................................... ...................................... ................. ............ .......102 .102
4.5 Sistemas de Prevenção de Intrusão (IPS)......................... (IPS)............. ....................... ....................... ................... ............ .........104 ....104
5 Simulações e Resultados................................................................................... Resultados...................................................................................106 106 5.1 Utilização de Máquinas Virtuais......................... Virtuais............. ........................ ....................... ....................... ........................ .................. ........106 ..106 5.1.1 Máquinas Virtuais......................................................................................................................107 5.1.2 Tipos de máquinas virtuais.................................. virtuais............................................................. ...................................................... ...........................................108 ................108 5.1.3 Vmware Workstation.................................................................................................................108
5.2 Metodologia Metodologia e ambiente proposto........... proposto....................... ......................... ......................... ........................ ............................109 ................109
5.3 Seleção das ferramentas de ataque...................... ataque........... ....................... ........................ ........................ ...................... ............... ......11 .1111 5.4 Cenário 1 – Nikto e Nmap.......................... Nmap...................................... ......................... ......................... ................................. ...........................1 ......111 11 5.4.1 Distribuição Linux Backtrack.............................................. Backtrack................... ...................................................... ........................................ ................... ............ .........113 ...113 5.4.2 Nikto Web Server Scanner................................ Scanner........................................................... ...................................................... .......................................... ..................114 ...114 5.4.2.1 Teste de evasão usando o Nikto....................... Nikto....................... ........................... ..................... .....................1 ...... ...............117 17
5.4.3 Nmap Security scanner...................................................... scanner........................... ...................................................... ............................................ ....................... ...........119 .....119 5.4.3.1 Teste de evasão usando o Nmap ........................... ....................... ............ ...... ............ ............ .....................122 ...............122
5.5 Cenário 2 - Retina, Retina, Nessus e Metasploit Metasploit Framework.................. Framework..............................................126 ............................126 5.5.1 Retina Network Security Scanner............................... Scanner.......................................................... ....................................... .................. ............ ............ ...........127 .....127 5.5.2 Network Scanner Nessus................................ Nessus........................................................... ...................................................... ...............................................129 ....................129 5.5.3 Explotation atack com o Metasploit Framework........................... Framework...................................................... ....................................... .................132 .....132 5.5.3.1 Vulnerabilidade Vulnerabilidade ms06-001 wmf SetAbortProc........................................ .............. .................134 5.5.3.2 Vulnerabilidade Vulnerabilidade ms03-026 Buffer Overrun In RPC Interface.............................. ....................138 ...... ..............138
Considerações finais.............................................................................................144 Referências bibliográficas....................................................................................144 ANEXO 1 Tutorial de Instalação do Snort........................................................................ Snort.............................................................................150 .....150 ANEXO 2 Conteúdo do DVD................................................................................................... DVD...................................................................................................155 155
INTRODUÇÃO
A segurança na Internet sempre foi motivo de preocupação, tanto para usuários finais quanto para grandes grandes corporações. Isso deve-se deve-se em parte, à enorme desconfiança desconfiança na utilização de uma rede pública para transmitir dados como senhas de banco, números de cartão de crédito e outras transações relacionadas ao comércio eletrônico. Paralelamente ao aumento dos negócios on-line , o número de ataques às redes só tem aumentado. Vírus de computador, computador, worms, spywares, exploits , e é claro, hackers e scriptkids ; são alguns exemplos de ameaças que se proliferam na Internet todos os dias. Ataques automatizados também possibilitaram aos usuários iniciantes, ou com pouco conhecimento, explorar sem muito esforço o número crescente de máquinas vulneráveis. A conseqüência conseqüência desse cenário cenário é o consumo cada vez maior de soluções soluções que prometem alguma segurança. As abordagens de segurança compõe uma lista, quase sem fim; e variam desde a instalação de firewalls de rede, passando pela configuração segura ( hardening ) de servidores, anti-vírus corporativo, anti- spyares , anti-rootkit , verificadores de integridade, até o desenvolvimento de aplicações baseadas em rígidas metodologias e testes de segurança. Apesar Apesar de muit muitas as soluções soluções serem adotadas adotadas separadam separadamente ente,, o conjunto conjunto de várias várias dessas dessas medidas pode garantir um nível aceitável de segurança. Os sistemas de detecção detecção de intrusão, ou simplesmente IDS, procuram antecipar possíveis tentativas de invasão através de detecção na rede de padrões de ataques conhecidos ou pela detecção detecção de ocorrência bem sucedida de invasões através de mudanças significativas significativas sofridas nos sistemas.
O presente trabalho pretende mostrar a importância de soluções IDS na concepção atual de seguran segurança, ça, através através da apresent apresentação ação de definiç definições, ões, classif classificaç icação ão e aplicabi aplicabilid lidade. ade. Esta abor aborda dage gem m tem tem como como meto metodo dolo logi giaa a anál anális isee de info inform rmaç açõe õess disp dispon onív ívei eiss em font fontes es bibl bibliog iográf ráfic icas as espec específ ífic icas, as, arti artigos gos e infor informa maçõe çõess nos sites sites de segu seguran rança ça de manei maneira ra a fundamentar as discussões e simulações propostas. O trabalho foi dividido em cinco Capítulos. No primeiro foram introduzidos alguns fundame fundamentos ntos inerente inerentess à seguran segurança ça computa computacion cional. al. Ressalt Ressaltaa a imp importân ortância cia das normas, normas, estratégias e mecanismos utilizados na infra-estrutura de segurança. O segu segund ndoo Capí Capítu tulo lo pret preten ende de conc concei eitu tuar ar de form formaa gené genéri rica ca o tema tema,, cobr cobrin indo do as termi terminol nologi ogias, as, defi defini niçõe çõess sobre sobre Sistem Sistemas as de Detec Detecção ção de Intrus Intrusão, ão, sua sua im impor portâ tânci ncia, a, classifi classificaçã cação, o, caracter característi ísticas, cas, limi limitaç tações ões e vulnerab vulnerabili ilidade dades; s; apresent apresentando ando ainda, ainda, algumas algumas tentativas de padronização de sua arquitetura. O Capítulo três aprofunda a discussão do tema, apresentando as características de Sistema de Detecção de Intrusão baseado em Host ( Host Host based IDS - HIDS). Neste capítulo, também são abordados conceitos sobre a anatomia de ataques a hosts, a classificação atual para os intrusos, os principais tipos de ameaças, comparação entre as abordagens HIDS e NIDS. Este Capítulo também cita, como exemplo, os HIDS Trippewire e OSSEC. O Capítulo quatro apresenta a modalidade mais comumente encontrada de IDS, o IDS baseado em rede ( Network IDS - NIDS). Mostra Mostra o posicionamento posicionamento do Sensor Sensor NIDS na rede, conceitua conceitua anomalia de tráfego, tráfego, ataques à redes de computadores e formas de resposta ativa às ameaças. Como exemplo, é abordado o NIDS Snort, Snort, software software open source source utilizado no último capítulo, o qual foi reservado à simulações de testes de detecção de intrusão. O quinto e último Capítulo, mostra a metodologia de testes e os resultados obtidos com as simulações de detecção de intrusão usando máquinas virtuais e o NIDS Snort . Sistemas de Detecção de Intrusão são ferramentas indispensáveis para organizações que desej desejam am adota adotarr um mo model deloo que permi permita ta anali analisar sar intru intrusõe sõess de forma forma centr central aliz izada ada,, ou distri distribuí buída da.. Monit Monitora oram m as amea ameaças ças às redes, redes, autom automati atiza zando ndo o proce processo sso de análi análise se dos incidentes de segurança, o que agiliza o acompanhamento e a resposta aos ataques.
1 FUNDAMENTOS DE SEGURANÇA COMPUTACIONAL
Desde sua criação no fim dos anos 60, a Internet tem evoluído continuamente em sua proposta de solução para integração entre redes de computadores, sistemas e pessoas. Além de um elemento de integração, esta tecnologia proporcionou ainda a expansão do fluxo de informações, transformando cada vez mais a sociedade, seus hábitos e processos. Esta pretenção original por conectividade conectividade universal, no entanto, entanto, foi sufocada sufocada por diversos problemas de segurança. Pois, a estrutura dos protocolos utilizados na Internet limita a possibilidade de prevenir, identificar ou detectar possíveis ataques, tornando portanto, todos os sistemas sujeitos a ameaças internas, externas, acidentais ou maliciosas. Neste contexto, os ataques podem ocorrer por falhas de segurança não previstas ou, até mesmo, através de sistemas não protegidos ou com vulnerabilidades desconhecidas pelos administradores. Estatísticas Estatísticas compiladas compiladas pelo Centro de Estudos, Resposta e Tratamento de Incidentes de Segurança no Brasil (CERT.Br)1,
apresentadas no gráfico da figura 1.1, demonstram este
cenário através do aumento no número de incidentes de segurança reportados no período de 1999 a 2007.
1. Grupo de resposta a incidentes de segurança para a Internet brasileira (mantido pelo NIC.br). 17
Figura 1.1. Total de Incidentes reportados ao CERT.Br de 1999 a 2007.
O uso de recursos da Internet nas empresas trouxe, portanto, novas vulnerabilidades e desafios a serem vencidos. Se não bastassem as preocupações existentes com espionagem industrial, fraudes, erros e acidentes, as empresas precisam investir também em segurança contra hackers 2, invasões, vírus de computador, cavalos cavalos de tróia tróia 3 e outras ameaças que penetram através desta nova porta de acesso. Outra característica decorrente ao crescimento da Internet, é que o tempo de propagação dos ataques têm reduzido ao passo que a abrangência dos danos causados tem aumentado de forma significativa. significativa. A Figura 1.2 demonstra que houve uma mudança no objetivo dos ataques, pois em sua primeira geração, as ameaças tinham como alvo máquina local; atualmente as ameaças visam a prejudicar o funcionamento da infra-estrutura das redes, causando um verdadeiro colapso, uma vez que quase todas as operações ligadas aos computadores são fundamentadas no funcionamento das redes. Além disso, o tempo de impacto para que a ameaça ameaça se alastre alastre pela infra-est infra-estrutu rutura ra reduziu reduziu de semanas semanas para minutos, minutos, e tende tende a ser em segundos futuramente.
2
usuário com grande habilidade técnica em tecnologia que consegue acessar informações restritas, reservadas ou confidenciais, sem autorização, empregando meios ilícitos
3
Cavalo de Tróia.
Hacker.
Um programa malicioso malicioso,, enviado à vítima como um arquivo inofensivo, inofensivo, que possa levar o usuário a executá-lo. Uma vez instalado, o trojan pode abrir uma ou várias portas do computador para que quem o enviou possa ter acesso remoto. 18
s a ç a e m a s Redes regionais a d a i c Várias redes n ê g n a r Redes b a individuais e o v i Computador t e j b O
Próx. Geração 2ª Geração 1ª Geração Boot viruses
3ª Geração
Network DoS; Vírus de macro; Blended threat; mail bomb; (Worm e virus + trojan) 1ª Geração Negação Serviço (DoS); Widespread System Hacking; Bootdeviruses Danos limitados;
Semanas
Dias
Subversão de mecanismos prevenção; Danos à infra-estrutura; Massive Worms; DDoS; Mais ameaças;
Minutos
Segundos
Tempo de impacto na infra-estrutura global
Figura 1.2. Evolução das ameaças computacionais levando em consideração a velocidade de propagação, adaptado de [GOMES, 2006]
Um claro exemplo da evolução das ameaças às redes pode ser observado nos dois casos de worms4 que se espalharam pela Internet nos anos de 2001 e 2003: o Code Red e o SQL Slammer . O worm Slammer , que
infectou infectou vários sistemas em 2003, tem como objetivo objetivo atingir
sistemas Microsoft SQL Server 2000 e MSDE 2000 que não tenham sido atualizados com o patch
de segurança , provocando intenso volume de tráfego na rede, tanto na Internet como em
redes privadas internas. O worm Code Red foi observado pela primeira vez em 19 julho de 2001, quando multiplicou-se mais de 250 mil vezes, em aproximadamente nove horas. Cada cópia do worm varreu a Internet à procura de servidores com Windows NT ou Windows 2000 que não tinham instalado o patch de segurança da Microsoft. As Figuras 1.3 (a) e (b) a seguir, demonstram que o tempo de propagação dessas ameaças aos seus alvos diminuiu de 24 horas para apenas 30 minutos ( fonte: www.caida.org ).
Figura 1.3 (a) Worm Code Red infectou mais de 302.500 hosts em pouco mais de nove horas em 19 de junho de 2001. 4
Worm é um vírus de computador que se dissemina criando cópias funcionais de si mesmo (ou de partes) em outros
sistemas. A propagação se dá por conexão de rede ou anexos de e-mail. 19
Figura 1.3 (b) Worm SQL Slammer em menos de 30 minutos infectou mais de 74.800 hosts em 25 de janeiro de 2003.
Como resposta a tantas ameaças faz-se necessário conhecer, desenvolver procedimentos e ferramentas para enfrentar esses novos desafios. Este capitulo, é uma preparação para o estudo a ser desenvolvido no presente trabalho, apresentando uma breve discussão sobre os riscos associados as redes de computadores, conceitos sobre segurança computacional, políticas e mecanismos de proteção .
1.1 Princípios de segurança da informação No contexto da tecnologia tecnologia da informação, informação, pode-se definir genericamente genericamente segurança como a tentativa de minimizar a vulnerabilidade vulnerabilidade de bens (qualque ( qualquerr coisa de valor) e recursos, sendo vulnerabilidade qualquer fraqueza que possa ser explorada para atacar um sistema [ SOARES, segurança visa também aumentar a produtividade produtividade dos usuários através 1995]. Por outro lado, a segurança do maior controle sobre os ativos de informática, viabilizando viabilizando o uso de aplicações críticas críticas nas empresas. Os três conceitos principais que caracterizam a segurança da informação, segundo o padrão ABNT(2001) NBR ISO/IEC, são resumidos pela sigla CIA (do inglês “ Confidentiality, Integrity Integrity and Availability Availability”), disponibilidade;
que em português significa confidencialidade , integridade e
descritos a seguir:
Confidencialidade: Confidencialidade: proteção contra leitura ou cópia da informação por quem não está explicitamente autorizado por seu proprietário. Esta proteção deve incluir as informações de propriedade do usuário bem como as geradas em razão do uso de
20
algum sistema e que possam permitir a inferência de informações confidenciais, por exemplo, registros de acesso ou identificações de estações de trabalho;
Disponibilidade: Disponibilidade: proteção de qualquer serviço ou sistema contra a degradação ou não disponibilidade sem autorização. Há casos onde a disponibilidade da informação é considerada vital para o correto funcionamento da organização, como por exemplo, sistemas bancários ou ainda sistemas médico/hospitalares; médico/hospita lares;
Integridade: Integridade: proteç proteção ão de qualqu qualquer er inform informaç ação ão ou siste sistema ma contra contra remoçã remoçãoo ou alteração de qualquer espécie sem a permissão explicita de seu proprietário. proprietário . Ou seja, é a proteç proteção ão dos dados dados ou inform informaç ações ões contra contra modif modific icaçõ ações es int inten encio cionai naiss ou acidentais não-autorizadas;
Tais conceitos são conhecidos como atributos básicos em segurança da informação, princípios que orientam a análise, o planejamento e a implementação da segurança para um determinado conjunto de informações que se deseja proteger. A combinação em proporções apropriadas destes fundamentos facilita o suporte para que as empresas alcancem os seus objetivos, tornando os sistemas de informação mais seguros e confiáveis. Outra definição utilizada pelo National Computer Security Center (NCSC)5 identifica identifica um ambiente computacional como seguro quando se estabeleçam mecanismos para garantir a confidencialidade e a integridade dos dados e/ou comunicações sem que as mesmas se tornem indisponíveis indisponíveis aos usuários. Desta Desta forma, uma ameaça à segurança segurança da informação alcançará alcançará êxito quando ocorrer a quebra de uma ou mais de suas três propriedades fundamentais. Outros autores, entretanto, defendem que para considerar uma informação segura, o sistema deve ainda obedecer os seguintes aspectos:
Autenticidade: Autenticidade: garante que a informação ou o usuário da mesma é autêntico; atesta com exatidão, a origem do dado ou informação;
Não repúdio: repúdio: trata da possibilidade de identificar a autoria de determinada ação sem equívocos, ou seja, o não repúdio fornece prova irrefutável da realização de uma
5
http://www.nsa.gov/ 21
ação específica pelo usuário, como transferir dinheiro, autorizar uma compra ou enviar uma mensagem;
Privacidade: Privacidade: é a capacidade capacidade de um usuário usuário realizar ações em em um sistema sem que seja identificado,onde a informação pode ser considerada confidencial, mas não privada. Por este motivo, este conceito foge do escopo de confidencialidade. Uma informação privada deve ser vista, lida, alterada somente pelo seu dono;
Auditoria: Auditoria: consiste na rastreabilidade dos diversos passos que um negócio ou pro proce cess ssoo real realiz izou ou ou que que um umaa info inform rmaç ação ão foi foi subm submet etid ida, a, iden identi tifi fica cand ndoo os participantes, os locais e horários de cada etapa. Auditoria em software significa uma parte da aplicação, ou conjunto de funções do sistema, que viabiliza uma auditoria;
Legalidade: Legalidade: gara garant ntee a leg legalid alidad adee (jur (juríd ídic ica) a) da info inform rmaç ação ão;; ade aderênc rência ia ou compatibilidade de um sistema à legislação, onde todos os ativos estão de acordo com as cláusulas contratuais pactuadas ou a legislação política institucional, nacional ou internacional vigentes.
Em [STONEBURNER, 2001] é sugerido que a segurança é obtida somente através da relação relação e correta correta impl implemen ementaçã taçãoo de quatro quatro princípi princípios os da seguran segurança: ça: confiden confidencia cialid lidade, ade, integridade, disponibilidade e auditoria. A próxima figura 1.4 ilustra a relação entre os princípios para a obtenção da segurança da informação.
Figura 1.4. Segurança da Informação através da correlação entre quatro princípios básicos, adaptado de [LAUREANO, 2005]
22
A confidencialidade confidencialidade é dependente da integridade, pois se a integridade de um sistema for perdida, os mecanismos que controlam a confidencialidade não são mais confiáveis. A integridade é dependente da confidencialidade, pois se alguma informação confidencial for perdida (senha de administrador do sistema, por exemplo) os mecanismos de integridade podem ser desativados. Auditoria e disponibilidade são dependentes da integridade e confidencialidade, pois estes mecanismos garantem a auditoria do sistema (registros históricos) e a disponibilidade do sistema (nenhum serviço ou informação vital é alterado). Uma Uma vez vez esta estabe bele leci cido doss tais tais prin princí cípi pios os,, o níve nívell de segu segura ranç nçaa dese deseja jado do pode pode ser ser consub consubsta stanci nciado ado em um umaa “polít “polític icaa de segu seguran rança ça”, ”, a qual qual deve deve estabe estabele lecer cer norma normass e mecanismos para que este nível desejado seja seguido, monitorado e mantido.
1.1.1 Outros conceitos importantes Existem outras terminologias terminologias importantes relacionadas à segurança da informação. Nesta seção, serão apresentados alguns termos mais usados neste estudo, acompanhados de suas respectivas descrições.
Ativo: Ativo: um recurso de valor, como os dados de um banco de dados ou do sistema de arquivos, ou um recurso do sistema;
Vulnerabilidade: Vulnerabilidade: a vulnerabilidade vulnerabilidade pode ser definida como como uma falha no projeto, projeto, implementação implementação ou configuração configuração de um software ou sistema operacional que, quando explorada através de um ataque, resulta na violação da segurança de um sistema;
Ameaça: Ameaça: qualquer ação, acontecimento ou entidade que possa agir sobre um ativo, através de uma vulnerabilidade vulnerabilidade e conseqüentemente conseqüentemente podendo prejudicar prejudicar de forma temporári temporáriaa ou permanen permanente te o funciona funcionamen mento to deste deste sistema. sistema. As ameaças ameaças apenas existem se houverem vulnerabilidades, sozinhas pouco representam. Segundo Soares [SOARES, 1995], uma ameaça consiste na possibilidade de violação da segurança de
23
um sistema. Em inglês, é utilizado o termo “ threat ” para definir ameaça, podendo existir vários tipos de threat [SHIREY, 2000]: a) Ameaç Ameaçaa int intel elige igent nte: e: circu circunst nstânc ância ia onde onde um advers adversár ário io tem tem a pot potenc encia iali lidad dadee técni técnica ca e operac operacion ional al para para detec detecta tarr e explo explorar rar um umaa vul vulne nerab rabili ilidad dadee de um sistema; b) Ameaç Ameaça: a: pot potenc encia ial: l: exist existee quando quando houver houver um umaa circu circunst nstânc ância ia,, pot poten encia ciali lidad dade, e, ação ou evento que poderia romper a segurança e causar o dano; c) Amea Ameaça ça de Anál Anális ise: e: um umaa anál anális isee da prob probab abil ilid idad adee das das ocor ocorrê rênc ncia iass e das das conseqüências de ações prejudiciais a um sistema; d) Cons Conseq eqüê üênc ncia iass de um umaa amea ameaça ça:: resu result ltad adoo da ação ação de um umaa amea ameaça ça.. Incl Inclui ui:: divulgação, usurpação, decepção e rompimento; Além da classificação por tipo, conforme descrito em [ SÊMOLA, 2003], as ameaças podem ser divididas quanto a sua intencionalidade: a) Natura Naturais is:: decorr decorren ente tess de fenôm fenômeno enoss da nature natureza za,, como como incên incêndio dioss natu naturai rais, s, enchentes, terremotos, tempestades, poluição, etc; b) b) Inv Involunt untári árias:
ameaça aças
inco nconsci nscieentes,
qua quase
sem sempre
causa usadas
pelo
desconhecimento. Podem ser causados por acidentes, erros, falta de energia, etc; c) Voluntár Voluntárias: ias: ameaças ameaças proposit propositais ais causadas causadas por agentes agentes humanos humanos como como hackers , invasores, espiões, ladrões, criadores e disseminadores de vírus de computador, incendiários.
Interceptação: Interceptação: considera-se interceptação interceptação o acesso a informações por entidades não autorizadas (violação da privacidade e confidencialidade das informações);
Interrupção: Interrupção: pode ser definida como a interrupção do fluxo normal das mensagens ao destino;
24
Modificação: Modificação: consiste na modificação de mensagens por entidades não autorizadas, violação da integridade da mensagem.
Personificação: Personificação: considera-se personificação a entidade que acessa as informações ou transm transmite ite mensa mensage gem m se passa passando ndo por um umaa entida entidade de autênt autêntic ica, a, viola violação ção da autenticidade;
Ataque Ataque ou exploraç exploração ão:: a RFC 2828 6 conceitua o termo ataque como uma ação inteligente que ameaça a segurança de um sistema, um ataque pode ter sucesso ou não e estará explorando uma vulnerabilidade no sistema alvo ou inerente aos protocolos. A concretização concretização de uma ameaça, ocasionada ocasionada por uma ação intencional intencional,, configura um ataque. Um ataque pode ser ativo, tendo por resultado a alteração dos dados; passivo, quando objetiva a liberação dos dados; ou destrutivo visando à negação do acesso aos dados ou serviços. O fato de um ataque estar acontecendo não significa necessariamente que ele terá sucesso. O nível de sucesso de um ataque depende da vulnerabilidade do sistema ou da atividade e da eficácia de contra medidas existentes.
1.2 Política de Segurança De acordo com o RFC 2196( The Site Security Handbook )7, uma política de segurança consiste num conjunto formal de regras que devem ser seguidas pelos utilizadores dos recursos de uma organização. Uma política de segurança forma a base para o estabelecimento do que é ou não permitido. Formalmente, uma política de segurança é uma afirmação que divide os estados do sistema em um conjunto de estados autorizados, ou seguros, e em um conjunto de estados não autorizados, ou não seguros. Dessa forma, um sistema seguro é um sistema que se inicia em um estado autorizado e evolui entre estados seguros.
6
http://tools.ietf.org/html/2828
7
http://tools.ietf.org/html/2196 25
Infelizmente, Infelizmente, na prática, alguns problemas comprometem a garantia ou manutenção deste conc concei eito to.. Freq Freque uent ntem emen ente te é comu comum m enco encont ntra rarr um umaa resi resist stên ênci ciaa cole coleti tiva va dent dentro ro das das organizações para com as medidas de segurança. Pois, lamentavelmente, na maioria dos casos, aspec aspectos tos que propic propicia iam m a faci facili lidad dadee no acess acessoo à infor informa maçã çãoo têm têm um peso peso maior, maior, em detrimento de valores como a reputação da empresa, a integridade, a confiabilidade e a disponibilidade dos dados [ CAMPELLO e WEBER, 2001]. Contrariamente à esta postura, uma política de segurança deve estabelecer mecanismos e normas de controle que permitam criar níveis adequados de proteção à informação. informação. A política de segurança fornece, portanto, um enquadramento para a implementação de mecanismos de segurança, objetivando definir processos de segurança adequados para evitar que as ameaças tenham sucesso. Em síntese, podemos concluir que as políticas de segurança normalmente descrevem as relações, direitos e deveres que usuários e equipes técnicas devem estabelecer para com os sistemas. A política de segurança da informação visa ainda identificar riscos e implantar medidas que de forma efetiva tornem estes riscos gerenciáveis.
1.2.1 Normas existentes Uma das primeiras normas definidas foi a BS7799 - Code of Practice for Information Security Management .
Após um trabalho intenso de consulta pública e internacionalização,
em primeiro de dezembro de 2000 a norma foi aceita como um padrão internacional internacional ISO/IEC 17799:2000. A aderência ao ISO/IEC 17799 permite que as empresas demonstrem publicamente que foi foi feit feitoo um inves investi time mento nto no senti sentido do de prote protege gerr a Confi Confiden denci ciali alida dade, de, Inte Integri gridad dadee e Disponibilidade das informações. O padrão define 127 controles que permitem identificar as necessidades de segurança apropriadas para o ambiente definido como escopo do sistema de gerência de segurança a ser implantado. A norma ISO/IEC 17799 apresenta controles de segurança para implantação e administração de sistemas e redes, guias para implantação de Políticas de Segurança, planos de continuidade de negócio e aderência à legislação.
26
Em abril de 2001, a versão brasileira da norma ISO foi posta em consulta pública. A ABNT homologou a versão brasileira da norma, denominada NBR ISO/IEC 17799 em setembro de 2001. A atua atuall norm normaa ingl ingles esaa BS77 BS7799 99 não não se li limi mita ta a aspe aspect ctos os mera merame ment ntee técn técnic icos os de processamento, IT e redes, mas abrange todos os aspectos de segurança da organização, alguns destes itens são descritos a seguir: a) Polí Polític ticaa e Organiza Organização ção da Seguranç Segurança; a; b) Gestão Gestão da Segura Segurança nça Física Física e Contro Controle le de Acess Acesso; o; c) Procedim Procedimento entoss de Desenvolvi Desenvolviment mentoo e Manutenção Manutenção de Sistema Sistemas; s; d) Gestão Gestão da da Contin Continuida uidade de de Negócios Negócios;; e) Aderên Aderênci ciaa à Legi Legisla slaçã ção. o.
1.2.2 Formas e metodologias de proteção Uma importante estudo sobre modalidades de proteção aos sistemas foi proposto por [ZWICKY, 2000], o qual ressalta as seguintes formas possíveis de proteção: a) Nenhuma segurança: segurança: a abordagem abordagem mais simples, representada representada pela ausência de preocupações com segurança; b) Segurança por obscuridade: obscuridade : freqüentemente adotada, essa abordagem baseiase na premissa do desconhecimento, ou seja, considera um sistema seguro pelo simples fato de ninguém conhecê-lo (sua existência, seus métodos, seu conteúdo, etc). Exemplos práticos dessa abordagem são algoritmos criptográficos cujo segredo é o próprio método, sistemas operacionais de código fechado, etc; c) Segurança baseada na máquina: máquina : significa concentrar todos os esforços de segu seguran rança ça nas nas máqui máquinas nas propri propriam ament entee dit ditas, as, ou seja, seja, tenta tentarr min minimi imizar zar as ameaças existentes em cada um dos computadores existentes em um sistema. O principal problema dessa abordagem é a diversidade e o número de máquinas existe existente ntess em grande grandess corpo corporaç rações ões,, dific dificul ulta tando ndo mui muito to a manut manuten enção ção dos mecanismos utilizados;
27
d) Segurança baseada em rede: rede : significa reforçar o controle dos acessos de rede a todas as máquinas e serviços do sistema, evitando preocupações máquina-amáquina. Como desvantagem, esse método impossibilita o acesso a eventos ocorri ocorridos dos exclu exclusiv sivam ament entee dentro dentro das máqui máquinas nas,, como como é o caso caso de acess acessos os indevidos a determinados dispositivos, tentativas locais de subversão, etc. Além da classificação proposta por ZWICKY, outro estudo citado por [ HALME e BAUER, 1995], enumera seis estágios gerais, não exclusivos, visando proteger uma organização de
ataques:
Preempção: Preempção: atacar a ameaça de segurança antes que ela tenha chance de disparar seu ataque. Esta medida pró-ativa é difícil de ser praticada uma vez que muitos ataques são criados e não podem ser previstos;
Prevenção: Prevenção : eliminar eliminar ou reduzir reduzir de modo signific significativ ativoo todas as possibi possibilida lidades des de sucesso de um ataque específico. Exemplos deste método são as identificações e autorizações de usuários, controle de acesso e criptografia de informações. Este método de prevenção é necessário, mas não necessariamente suficiente, uma vez que, na medida em que os sistemas tem se tornado mais complexos, poderão existir vulnerabilidades desconhecidas e exploráveis nos sistemas, originadas a partir de vários erros de programação ( bugs). Um exemplo clássico, é proliferação de vírus e worms que visam explorar os erros de programação nos Sistemas Operacionais;
Desencorajamento: Desencorajamento : inti intimi mida darr os atac atacan ante tess para para que que os mesm mesmos os desi desist stam am dos dos ataques, através do aumento de riscos e conseqüências negativas. negativas. No entanto, parece óbvio que se os recursos protegidos são muito importantes, ou se as violações difi difici cilm lmen ente te são são desc descob ober erta tas, s, os atac atacan ante tess rara rarame ment ntee se assu assust star arão ão ante ante as dificuldades. Para o invasor , o desafio e a chance de adquirir conhecimentos e notoriedade compensa os riscos;
Detecção: Detecção : identificar identificar tentativas tentativas de intrusão de de modo que uma resposta resposta apropriada possa possa ser ser invoc invocada ada.. Este Este recur recurso so pode pode tamb também ém auxil auxiliar iar os admini administr strad adore oress na
28
ident identifi ificaç cação ão de inci inciden dentes tes,, recupe recuperaç ração ão de danos danos e rastre rastream ament entoo de açõe açõess do atacante. Ex: utilização de detectores de intrusão baseados em host ou rede;
Deflexão: Deflexão: tem por objetivo iludir ou atrair a atenção do invasor para um host previamente projetado para a finalidade de ser invadido(conhecido como pote de mel ou honey pot ), ), de modo que nenhum dano real aconteça, levando-o a acreditar que seu ataque foi bem sucedido. Este recurso possui a vantagem de se criar um ambiente controlado para estudar a ação do atacante. A maior dificuldade, no entanto, é configurar o “pote de mel” de modo a torná-lo mais realístico possível para enganar um atacante experiente;
Contramedida: Contramedida: procedimento de segurança que trata uma ameaça e reduz um risco. Corresponde ao conjunto de ações que pretende ativamente responder às intrusões enquanto elas estão ocorrendo. A efetividade de uma contramedida é diretamente proporcional à precisão da detecção de uma intrusão. Uma ação errônea em um usuário normal, no entanto, pode negar ao usuário o acesso legítimo aos serviços.
Estas técnicas de contramedidas podem cooperar mutuamente de forma a estabelecer múltiplas camadas de proteção aos recursos do sistema, como ilustrado na figura 1.5 a seguir. Perímetro do Sistema Desencorajamento Desencorajamento Externo Interno Prevenção Prevenção Detecção Externa Interna Preempção
Deflexão Contra Medidas
Tentativas de intrusão Pote de Mel
Recursos do Sistema
Figura 1.5. Técnicas Técnicas de contra-intrusão, contra-intrusão, adaptado de [JORGE, [JORGE, 2006]. 2006].
1.2.3 Estratégias de segurança No contexto de estratégias a serem adotadas em segurança da informação, [ ZWICKY, 2000] descreve métodos importantes visando tornar o sistema mais robusto:
29
Least privilege:
segue o princípio do “privilégio mínimo”, onde qualquer objeto
(usu (usuár ário io,, prog progra rama ma,, sist sistem ema, a, etc) etc) poss possui ui apen apenas as os priv privil ilég égio ioss estr estrit itam amen ente te necessários para executar as suas tarefas;
Defense in depth
(defesa em profundidade): utilizar redundância em mecanismos mecanismos de
segurança, segurança, caso um componente componente falhe há outro(s) garantindo a segurança. De acordo com este princípio, não se deve depender de apenas um mecanismo de segurança não importando quão forte ele pareça ser. Ao invés disso, recomenda-se que sejam utilizados múltiplos mecanismos de segurança e que estes estejam configurados no nível mais alto possível de segurança e redundância. A figura 1.6 a seguir exibe um diagrama genérico genérico que ilustra a aplicação aplicação deste conceito, onde a defesa é obtida pela estratégia de divisão da segurança nas seguintes camadas: prevenção do sistema (por exemplo, através de um firewall ); ); detecção detecção de intrusão (usando um sistema de Detecção de Intrusos) e mecanismos tolerantes à falha. Tolerância
Detecção
Prevenção
Figura 1.6. defense in depth usando estratégia de defesa em camadas.
Choke point :
é o ponto de acesso por onde tudo que transita entre a rede interna e
externa deve necessariamente passar; portanto é um ponto que possibilita um alto controle e monitoramento. A figura 1.7 a seguir, ilustra o conceito de choke point, usando um servidor firewall firewall como ponto único de acesso à rede:
Figura 1.7. choke point representado por um servidor Firewall.
Weakest Weakest link :
consiste em determinar qual o ponto mais fraco no sistema de
segurança;
30
Fail safe: em caso de falha o sistema se mantém em um estado seguro (indisponível,
mas seguro);
Universal participation :
a participação de todos os usuários, funcionários, etc, é
indispensável indispensável para que um bom sistema de segurança seja eficiente. eficiente. A educação educação dos usuários é fundamental para o sucesso na segurança (“do que adianta um forte sistema de segurança quando os usuários utilizam senhas facilmente dedutíveis?”);
Diversity of defense:
investir na diversidade dos sistemas de segurança dificulta o
trabalho do atacante porque ele precisa explorar as vulnerabilidades de sistemas diferentes;
Simplicidade:
sistemas simples são mais seguros. A complexidade esconde falhas
difíceis de serem percebidas. A estratégia fail safe reserva ainda duas posturas de proteção possivelmente adotadas: a) postu postura ra padrão padrão de nega negação ção:: espec especif ific icar ar apenas apenas o que é permi permiti tido do e proibi proibirr o resto. resto. Possui Possui como como caracte característ rística ica básica básica a prudênci prudência, a, ou seja, seja, estabel estabelece ece que “tudo aquilo que não é expressamente expressamente permitido é proibido”; b) postura postura padrão padrão de permissão permissão:: especifi especificar car somente somente o que é proibido proibido e permitir permitir o resto. Esta postura utiliza o conceito de permissividade, ou seja, “tudo aquilo que não é expressamente proibido é permitido”. Certamente a postura mais segura é a prudente. Deve-se permitir somente aquilo que se considera seguro. Do contrário, falhas em serviços não seguros e legais podem ser facilmente aproveitadas caso sejam descobertas.
1.3 Mecanismos de proteção Atualmente, existem vários mecanismos propostos para implementação das técnicas de segur seguran ança ça cita citadas das nas nas seçõ seções es ante anterio riores res,, que uti utili lizam zam desde desde medi medidas das simpl simples, es, como como autenticação, até ferramentas complexas como firewall e detecção de intrusão.
31
Vale ressaltar que, assim como nenhum sistema é totalmente seguro, nenhum mecanismo de segu seguran rança ça é perfe perfeit ito. o. Poi Poiss tão tão im import portan ante te quant quantoo o balan balancea ceame ment ntoo de vant vantag agens ens e desvantagens das diferentes abordagens, é a complementação destes mecanismos para a criação de um ambiente mais controlado e confiável. Os dispositivos são classificados como físicos ou lógicos, descritos a seguir:
Controles físicos: limitam o contato ou acesso direto a informação ou a infraestrutura que a suporta. Ex: Portas, trancas, paredes, blindagem, blindagem, etc;
Controles lógicos: são barreiras que impedem ou limitam o acesso a informação, que encontra-se em ambiente controlado, geralmente eletrônico, e que, de outro modo, ficaria ficaria exposta exposta a alteraç alteração ão não autoriz autorizada. ada. São exemplos exemplos de controle controless lóg lógicos icos:: cript criptog ograf rafia ia,, assi assinat natura ura digit digital al,,
mecan mecanism ismos os de garan garanti tiaa da int integ egrid ridade ade da
informação (hashing ), ), firewalls, Sistemas de Detecção de Intrusão (IDS), etc. Com o uso destes recursos, a proteção das redes contra os diversos tipos de ataques existentes torna-se trivial. Pois, em muitos casos, as simples correções de segurança detêm um grande número de ataques e invasões. Por exemplo, um firewall bem configurado e um antivírus atualizado conseguem fazer um bom serviço de proteção à rede. Mas existem diversas outras alternativas alternativas que podem ser utilizadas para garantir ainda mais a segurança das redes de computadores. Nas seções a seguir, é descrita a lista de doze diferentes itens que podem ser usados para garantir a segurança das redes, de acordo com o instituto americano NIST8 (1999).
1.3.1 Atualização do Sistema Operacional As empresas empresas ou comunid comunidades ades responsá responsáveis veis por seu desenvol desenvolvime vimento nto e distribu distribuiçã içãoo liberam normalmente atualizações para fixar problemas em seus sistemas. A não atualização dos sistemas pode facilmente permitir que intrusos invadam a rede devido a inúmeras vulnerabilidades. A melhor alternativa portanto, é sempre executar atualizações para corrigir eventuais problemas nos computadores mais importantes da rede e então implementar outras soluções de segurança para manter a rede segura; 8
National Institute of Standards and Technology - http://www.nist.gov/ 32
1.3.2 Detecção de Vírus Programa Programass antivír antivírus us são essenci essenciais ais para a seguran segurança ça das redes redes de computad computadores. ores. A solução mais efetiva, neste caso, é possuir o produto instalado em todos os computadores e ter uma política de atualização da base de dados dos antivírus, a partir de um servidor central, evitando que as estações precisem executar esta tarefa individualmente;
1.3.3 Firewalls
O Servidor firewall é um dispositivo (ou conjunto) colocado entre duas ou mais redes, que implementa uma barreira de segurança. Um firewall pode ser considerado um choke point ,
pois todo o tráfego entre as redes interna e externa deve passar obrigatoriamente por
ele. Desta forma, é um ótimo local para a aplicação de trechos da política de segurança. Estando bem configurado pode proteger a rede contra a maior parte dos ataques existentes atualmente. A figura 1.8 a seguir ilustra a utilização de um firewall protegendo uma rede composta por uma rede interna ( Green), rede wlan ( Blue) e rede de servidores DMZ ( Orange );
Figura 1.8. Firewall protegendo uma rede de computadores.
33
1.3.4 Password crackers
Estes Estes aplicat aplicativos ivos são utilizados utilizados pelos pelos invasore invasoress para descobrir descobrir as senhas senhas de arquivos arquivos criptografados. Descobrindo estas senhas, o invasor pode utilizá- las para acessar a rede e, com alguns truques, obter acesso total sobre a rede. Estes aplicativos também podem ser utilizados pelos administradores de rede para descobrir as senhas que são fracas ou fáceis de serem descobertas afim de evitar que outros descubram estas senhas.
1.3.5 Criptografia A criptografia baseia-se em algoritmos algoritmos e métodos computacionais computacionais eficientes para garantir a privacidade das informações trocadas entre duas entidades (a garantia de que somente as duas partes envolvidas consigam compreender os dados transmitidos) e a autenticidade dessas entidades (a garantia de que as partes envolvidas não terão suas identidades forjadas por uma terceira). Comumente, os invasores invadem as redes com informações colhidas no tráfego diário destas redes. Muitas das quais não estão criptografadas, tais como senhas e nomes de usuários. Um invasor pode retirar estas informações e utilizá- las para obter acesso e controle sobre a rede. Informações importantes, entretanto, podem ser criptografadas antes de serem transmitidas na rede ou mesmo, determinadas conexões importantes com os servidores podem ser protegidas por meio de criptografia.
1.3.6 Scanners de Vulnerabilidades Estes aplicativos permitem fazer a execução de relatórios sobre as vulnerabilidades da rede. Possuem uma base de dados com informações sobre ataques, vulnerabilidades, falhas e atualizações a partir do qual permitem a realização destes relatórios.
1.3.7 Configuração dos Sistemas A instala instalação ção dos sistema sistemass operaci operacionai onais, s, por padrão, padrão, possui diversos diversos serviços serviços que são automaticamente habilitados. Muitas vezes, serviços que nem utilizados são, permitindo que invasores se utilizem destes para penetrar na rede. A melhor solução é deixar somente os serviços que serão realmente utilizados no sistema. 34
1.3.8 Detecção de Intrusão Sistemas de detecção de intrusão são utilizados para monitorar um host ou uma rede inteira e enviar alertas alertas sobre eventos maliciosos. maliciosos. A monitoração da rede pode ser realizada realizada pela captura de pacotes através da interface de rede em modo promíscuo 9. A figura 1.9 a seguir ilustra um IDS de Rede ( Network IDS – NIDS).
Figura 1.9. Servidor IDS monitorando a rede interna e externa ao firewall.
1.3.9 Ferramentas de Descoberta de Rede e Scanners de Portas Sistemas como estes fazem o mapeamento da rede, identificando serviços que estão sendo executados em cada computador. Este tipo de ataque permite encontrar vulnerabilidades e identificar quais são os computadores menos protegidos, sendo que estas ferramentas podem ser utilizadas pelos administradores para documentar os ativos e serviços disponíveis, bem como descobrir as falhas das próprias redes.
1.3.10 Política de segurança É um conjunto de diretrizes, normas e procedimentos que devem ser seguidos e visam consci conscien entiz tizar ar e orien orientar tar todos todos os cola colabor borado adore ress da empre empresa sa do uso uso segu seguro ro do ambi ambient entee informatizado, a partir do qual é possível identificar o nível de segurança que a empresa quer alcançar.
9
Modo promíscuo, em relação à Ethernet , é um tipo de configuração configuração de recepção na qual todos os pacotes pacotes que trafegam trafegam pelo segmento de rede ao qual o receptor está conectado são recebidos pelo mesmo, não recebendo apenas os pacotes endereçados ao próprio. 35
1.3.11 Respostas à Incidentes Todas as redes, não importam o quão seguras elas sejam, possuem eventos de segurança e a equipe de administração da rede deve saber como manipular estes eventos, mesmo antes de algum algum event eventoo acont acontece ecer. r. É geral geralme mente nte consti constitu tuído ído por por um plano plano de conti contingê ngênc ncia ia e de resolução de problemas.
1.3.12 Testes de Negação de Serviço Estes tipos de ataques são muitos comuns na Internet . Servidores são desligados, serviços são parados, etc. Podem ser muito danosos, especialmente quando o intruso é esperto o sufic suficie iente nte para para lança lançarr ataqu ataques es de nega negaçã çãoo de servi serviço ço que não não podem podem ser ser rastre rastreado ados. s. Atualmente, Atualmente, existem empresas que podem ser contratadas contratadas para realização realização de ataques deste tipo, permitindo que os administradores visualizem quais são os pontos mais vulneráveis da suas redes.
36
2 SISTEMAS DE DETECÇÃO DE INTRUSÃO
Sistemas Sistemas de computaç computação ão seguros seguros,, visam visam estabel estabelece ecerr níveis níveis de operaçã operaçãoo para prover confiden confidencial cialida idade, de, disponib disponibilid ilidade ade e integrid integridade ade aos dados. dados. Atualmen Atualmente te existe existe um elevado elevado número de ferramentas e sistemas de segurança que pretendem fornecer ao menos um destes princípios. A maioria das empresas, entretanto, acaba ignorando os sistemas de detecção de intr intrus usão ão (IDS (IDS - Intrusi concent entran rando do suas suas defes defesas as em solu soluçõe çõess Intrusion on Detecti Detection on System System) conc preventivas preventivas como firewalls, anti-vírus, controle de acesso e criptografia. No entanto, existem inúmeras limitações em abordagens baseadas apenas em prevenção:
É difícil, talvez impossível, construir um sistema útil totalmente seguro. Isto é, a possível existência de alguma falha de projeto em um sistema com grande número de componentes não pode ser excluída. Também não pode ser excluída a possível ocorrência de falhas administrativas, administrativas, tanto em sua prática quanto na configuração de equipamentos e definição de políticas;
É impraticável jogar fora toda uma infra-estrutura (possivelmente não-segura) de computadores, redes e software em favor de sistemas novos e seguro;
A filosofia de segurança baseada em prevenção reprime as atividades atividades de um usuário, sendo sua produtividade inferior em comparação a sistemas onde a operação é mais “aberta”;
Sistemas baseados em criptografia não podem se defender contra chaves perdidas ou roubadas e senhas quebradas;
37
Finalm Fin alment ente, e, um siste sistema ma segu seguro ro pode pode ainda ainda ser ser vul vulner neráv ável el a usuári usuários os int intern ernos os legítimos (insiders ) fazendo mau-uso de seus privilégios.
Este capítulo pretende aprofundar o tema detecção de intrusão, abordando conceitos relacionados a intrusos e intrusões em sistemas computacionais, a importância do uso de sistemas de detecção da intrusão, as limitações e vulnerabilidades encontrados nos IDS. Pretende ainda ressaltar a sua classificação, descrever os padões disponíveis e os critérios de interoperabilidade entre IDS.
2.1 Terminologias Nesta seção, serão apresentados alguns termos utilizados no estudo de detecção de intrusão acompanhados de suas respectivas descrições.
Intrusão: Intrusão: como definido em [ HEADY, LUGER et al, 1990], “uma intrusão é qualquer conjunto de ações que tentem comprometer a integridade, confidencialidade ou dispon disponib ibili ilida dade de dos dos dados dados e/ou e/ou do siste sistema ma”. ”. De forma forma geral geral,, algun algunss auto autores res conceituam conceituam um intruso como alguém que tenta invadir um sistema ou fazer mau uso do mesmo. Para classificar e diferenciar as ações nocivas das legítimas, faz-se necessária a definição de uma política de segurança. As intrusões podem ser classificadas em: a) Intrusão devido ao ao mau uso do sistema: sistema: são os ataques ataques realizados realizados a pontos fracos fracos do siste sistema ma,, pontos pontos este este conh conheci ecidos dos.. Eles Eles podem podem ser ser detec detecta tados dos a parti partirr da monitoração de certas ações realizadas em determinados objetos; b) Intrus Intrusão ão devido devido a mu mudan dança ça de padrão padrão:: são detec detectad tadas as com a observ observaç ação ão de mudanças de uso em relação ao padrão normal do sistema. Primeiro monta-se um perfi perfill do sistem sistema, a, em segui seguida, da, atrav através és de monito monitoraç ração ão,, procu procurara-se se por divergências significantes em relação ao perfil construído;
38
Evento: Evento: um even evento to pode pode ser ser defi defini nido do como como todo todoss os paco pacote tess que que pode podem m ser ser observados dentro de uma janela de tempo, uma transição de estado de seção, ou um alerta gerado;
Detecção de Intrusão: Intrusão : processo automático de detectar e emitir alarmes quando uma intrusão ocorre;
Cenário de ataque: ataque : seqüência de ataques que um atacante dispara com o objetivo de atingir determinados propósitos;
Alerta: Alerta: mensagem que um IDS gera quando detecta uma intrusão em andamento;
Correlação de Alerta: Alerta : procedim procedimento ento que automatic automaticamen amente te correlacion correlacionaa alertas alertas baseados em suas similaridades e também reconstrói os cenários de ataque para que mais mais info inform rmaç açõe õess conte ontext xtua uais is e de ambi ambien ente te poss possam am ser ser forne orneci cida dass aos aos administradores.
2.2 Conceitos e definições de IDS Detecção Detecção de intrusão constitui o monitoramento de hosts ou fluxos de rede com o intuito de identificar ações não autorizadas. Um IDS tenta detectar, no estado de um determinado sistema (ou host ) ou no tráfego de rede, padrões de comportamento que denotem a ocorrência de ataques ou usos impróprios aos sistemas, alertando o responsável pelo sistema ou rede sobre a ocorrência e a natureza destes incidentes. As primeiras pesquisas sobre Sistemas de Detecção de Intrusão (IDS) datam de 1970, cujo desenvolvimento constitui uma evolução dos antigos sistemas de auditoria, conhecidos como sistemas especialistas, os quais definiam um processo de geração, gravação e revisão dos registros cronológicos dos eventos dos sistemas [ MAIA, 2005]. Por sua vez, [ SILVA, 2007] defi define ne dete detecçã cçãoo de intru intrusão são como como o proce processo sso de monito monitoraç ração ão de event eventos os em siste sistema mass computacionais em rede ou no tráfego de rede, onde a verificação destes objetiva encontrar de traços de intrusões, ataques, mau uso, ou ações que violem a política de segurança da organização, a partir da qual os níveis de disponibilidade, confidencialidade e integridade de sistemas de informação críticos, foram estabelecidos. 39
O objetivo de um IDS, portanto, é detectar e alertar, preferencialmente em tempo real, sobre o uso indevido (ou não autorizado) de sistemas em decorrência de ameaças lógicas; circunscritas a sistemas de computação presentes tanto em ambientes internos como externos de uma organização [ MAKHERJEE et al 1994]. O desenvolvimento de sistemas de detecção de intrusão em tempo real é motivado, segundo [ DENNING, 1987], por quatro fatores primordiais:
A maioria dos sistemas computacionais computacionais utilizados possui alguma falha de segurança que pode ser explorada por usuários mal intencionados. Descobrir e corrigir todas estas potenciais falhas de segurança não é viável técnica e comercialmente;
Inviabilidade de substituição de sistemas com falhas de segurança por versões mais seguras;
Desenvolver Desenvolver sistemas completamente livres de falhas de segurança, mesmo que isto seja uma meta crítica do projeto, é considerado tarefa virtualmente impossível;
Mesmo sistemas altamente seguros podem ser comprometidos por usuários internos que abusem de seus privilégios.
Em seu artigo [DENNING, 1987] sugere um modelo de sistema de detecção de intrusão em tempo real capaz de detectar detectar interrupções, penetrações e outras formas de abuso. Esse modelo baseia-se na hipótese de que uma violação de segurança pode ser detectada monitorando-se os registros de auditoria dos sistemas à procura de padrões de uso anormal. O modelo proposto DENNING, 1987] estabele por [DENNING, estabeleceu ceu uma metodolo metodologia gia estrutu estruturada rada baseada baseada em perfis, perfis, para
represent representar ar o comportam comportamento ento dos usuários usuários e sistema sistemas. s. Esta metodologia metodologia baseava baseava-se -se nas seguintes premissas básicas para detecção de intrusão:
Observar o comportamento dos usuários e sistemas, para adquirir conhecimento sobre esses eventos a partir dos registros de auditoria, como por exemplo a partir do registro do sistema sistema ou do tráfego da rede, objetivando objetivando de detectar comportamentos comportamentos anômalos;
40
O modelo de detecção deve ser independente do tipo de sistema, ambiente de aplicação, vulnerabilidade do sistema ou tipo de intrusão, provendo a arquitetura genérica para um sistema especialista de detecção da intrusão;
Atra Atravé véss do ajus ajuste te fino fino de um sist sistem ema, a, as ativ ativid idad ades es intr intrus usiv ivas as pode podem m ser ser identificadas e diferenciadas das atividades normais.
Uma das vantagens de um IDS em relação aos métodos tradicionais de análise de incidentes é a possibilidade de correlacionar diferentes tipos de dados. Coletar informações locais como os logs e o estado dos processos em execução, ou capturar na rede pacotes destinados à determinada porta, são exemplos de ações distintas com um mesmo fim: gerar dados que representem indícios de uma intrusão[ SILVA, 2007].
2.3 Justificativa para o uso uso de de IDS O cenário atual indica que a vasta quantidade de aplicações financeiras disponíveis na Internet e as vulnerabilidades de sistemas e protocolos possibilitam um cenário a cada dia mais propenso a tentativas de intrusões. Logo, sistemas vulneráveis podem ser atacados a qualquer momento, tornando imperativa a necessidade de reconhecer e denunciar intrusões, a qual deve ocorrer o mais cedo possível, preferencialmente em tempo real. Neste contexto, destacam-se as seguintes premissas: a) Sist Sistem emas as de dete detecç cção ão de intr intrus usão ão pode podem m ser ser útei úteiss como como comp comple leme ment ntos os aos aos mecanis mecanismos mos preventi preventivos, vos, detectan detectando do int intrusõe rusões, s, gerando gerando alertas alertas e acionan acionando do contramedidas sempre que as propriedades de segurança dos cada vez mais complexos sistemas de informação estiverem sob ataque; b) Um IDS pode forne fornece cerr aviso avisoss de que o sistem sistemaa está está sob ataque ataque,, mesmo mesmo não não sendo o sistema vulnerável ao ataque. Esses avisos podem ajudar os usuários a modificarem sua postura defensiva para aumentar a resistência ao ataque; c) IDS podem podem auxíli auxíliar ar na análi análise se complex complexaa de logs, logs, a maneira maneira mais mais comum comum para descobrir indícios de anomalias, tanto em hosts como no tráfego de rede, é 41
através de análise nos logs como em estações de trabalho e servidores firewall . A inspeção manual destes registros, que na maioria das vezes ocorre através de linhas de comando, é considerada uma prática viável, mas com o tempo, torna-se fati fatiga gant nte, e, pois pois este estess arqu arquiv ivos os de logs comument comumentee apresent apresentam am tamanhos tamanhos consideráveis, os quais precisam de tempo e paciência para serem analisados. Atuando como mecanismo de alerta o IDS, por sua vez, funciona como um repositório automático de eventos de segurança, selecionando apenas ocorrências de interesse estratégico, organizadas e classificadas segundo o grau de criticidade. O IDS pode também disponibilizar formas de acesso mais rápidas aos dados através de interfaces interfaces de consulta, consulta, o que automatiza a tarefa de gerar os dados para auditoria, diminuindo assim o trabalho de criação de relatórios. Estes dados são extremamente úteis pois podem ser usados para estabelecer relação de culpabilidade do atacante, assim como a extensão dos danos causados.
2.4 Limitações Não obstante as suas inúmeras vantagens, existem situações indesejáveis que podem ocorrer em mecanismos de detecção de intrusão, cuja probabilidade de ocorrência pode induzir a erros. Os mais comuns são conhecidos como falsos positivos, falsos negativos e erros de subversão., descritos a seguir: a) Falso positivo: termo utilizado para designar uma situação em que um IDS apon aponta ta um umaa ativ ativid idad adee como como send sendoo um ataq ataque ue quan quando do na verd verdad adee não não é. Basicamente, um falso positivo é um alarme falso; b) Falsos negativos: Em outras palavras, ocorre quando alguém compromete um sistema monitorado por um IDS e o IDS não gera alertas para atividades que deveriam ser classificadas como sendo a do comportamento de um ataque. Falsos negativos podem aparentar uma falsa idéia de segurança. Entre os os motivos para ocorrência de falsos positivos destacam-se:
42
■
As informações contidas nas regras ou configuração podem não ser suficientes para a confirmação da ocorrência do ataque;
■
O IDS pode estar sobrecarregado pelo tráfego intenso na rede. Este motivo dificulta o reconhecimento de padrões de ataque, que acabam sendo ocultados pelo grande volume de informações na rede;
■
O ataque não identificado pode ser conseqüência de uma evasão (consiste de técnicas para enganar uma ferramenta IDS fazendo com que o ataque passe despercebido) bem sucedida.
c) Erros de subversão: este tipo de erro é mais complexo e parecido com falso negativo. negativo. Um intruso pode usar o conhecimento conhecimento sobre a operação interna interna do IDS para alterar o seu estado, possivelmente permitindo comportamento anômalo do sistema. A ocorrência de falsos negativos é mais perigosa do que a ocorrência de falsos positivos, uma vez que uma entidade está sendo vítima de um ataque que não é de conhecimento do administrador da rede. Sem este conhecimento, o administrador não pode aplicar as medidas de defesa necessárias para combater o ataque. O erro de subversão, por sua vez, indica a necessidade do IDS estar corretamente configurado, pois neste caso, apesar de ser uma ferramenta de alerta para redes que estão sofrendo ataques, o IDS também podem ser o alvo. Logo, se um intruso suspeitar da existência de um IDS numa rede de seu interesse, a primeira coisa que faria seria atacá-lo, na tentativa de desabilitá-lo ou tornar sua configuração inútil para que não identifique suas ações. Existem outros fatores limitantes à atuação das ferramentas de detecção de intrusão, como:
Segmentação da rede (Redes Switched ): Em redes com Switch ao invés de HUB dificulta a captura de pacotes em arquiteturas centralizadas;
Limitação de recursos do sensor: sensor : processamento, armazenamento e memória que são utilizados para se analisar o tráfego; 43
Redes com altas taxas de transmissão: transmissão : além do problema de captura de pacotes em Redes de Alta-Transmissão, a análise de regras pode exigir um processamento considerável (ex: redes ATM, GigaBit Ethernet, etc);
Serviços criptografados (Virtual Private Network): Network) : torna-se torna-se inviáve inviávell a um IDS analisar os pacotes que estão transitando na interface e conseqüentemente muitos ataques podem passar despercebidos. O mesmo aplica-se a serviços criptografados como SSL e SSH.
2.5 Vulnerabilidades Com sua crescente popularização, os IDS vêm se tornando alvos freqüentes de ataques. Esta seção expõe os principais tipos de ataques conhecidos.
2.5.1 IP Spoofing É uma técnica de subversão de sistemas baseados no protocolo TCP/IP que consiste em mascarar ( spoof spoof ) pacotes IP utilizando endereços de remetentes falsificados. Neste caso o atacante pode se fazer passar por outra máquina e assim enganar o IDS.
2.5.2 Inserção Neste tipo de ataque um atacante coloca na rede pacotes especialmente modificados que são descartados pelo sistema alvo (por erros de CRC, por exemplo) mas tratados pelo IDS. Com isso, pode-se iludir o detector inserindo pacotes que mascarem um ataque, ganhando a aparência de uma ação autorizada. O sistema alvo, por sua vez, descarta esses pacotes forjados e aceita somente aqueles que representam o próprio ataque. A seguir são enumerados os tipos de ataques de inserção: a) Long URLs: existem várias técnicas que visam melhorar o desempenho dos IDSs. Uma dessas técnicas limita a quantidade de informações de uma requisição HTTP a serem analisadas. analisadas. Dessa forma, é possível a inserção de uma quantidade
44
suficiente de caracteres para mover o código de ataque para além do escopo da análise do IDS, o que faz com que o ataque não seja detectado; b) Self Reference: Reference: os caracter caracteres es “..” quando quando util utilizad izados os para acessar acessar diretóri diretórios os conduzem o usuário para um diretório superior (diretório pai) ao diretório atual. Já o cara caract cter er “.” “.” faz faz refe referê rênc ncia ia ao dire diretó tóri rioo atua atual. l. Send Sendoo assi assim, m, entã entãoo “c:\temp\.\.\.\.\.\” é equivalente a “c:\temp\”. O objetivo da técnica denominada Self Reference
é confudir os mecanismos de análise de assinaturas dos IDSs
enviando o seguinte tipo de requisição “Get /./cgibin/./phf”; c) URL Encoding: conforme a RFC 2616 10, caracteres binários arbitrários podem ser passados em uma requisição HTTP desde que estejam na seguinte notação: %xx, onde xx corresponde ao valor hexadecimal do caracter. Uma vez que a
requisição “Get /cgi-bin/teste.cgi HTTP/1.0” seja codificada torna-se “Get /cg%69-b Port rtan anto to,, os IDSs IDSs,, ante antess de anal analis isar arem em,, %69n/t%65st %69n/t%65st%65.c %65.cg%69 g%69 HTTP/1.0” HTTP/1.0”. Po qualquer string string devem decodificar a mesma; d) Multiple Slashes: os servidores web aceitam requisições contendo múltiplas barras, slashes , como em “Get /cgi-bin//scripts///phf.cgi HTTP/1.0”. Contudo, existe a possibilidade que alguns IDSs ao analisarem esses tipos de requisições falhem devido ao fato de que a assinatura existente contenha apenas uma barra; e) Parameter Hiding: uma requisição de página web pode conter informações adicionais, adicionais, parâmetros, que serão utilizadas para construir o conteúdo conteúdo de páginas páginas dinâmicas. dinâmicas. Esses parâmetros parâmetros são determinados determinados após um sinal de interrogação no identificador identificador uniforme de recursos, Uniform Resource Locator (URL), como em “Get /index.htm?user=normal HTTP/1.0”. Alguns IDSs, a fim de otimizar o processo
de análi análise se de pacot pacotes es ignor ignoram am tod todas as as infor informa maçõe çõess após após a indic indicaç ação ão de parâmetros; sendo assim, há a possibilidade possibilidade da inserção de um código malicioso após essa parte da requisição;
10 http://www.ietf.org/rfc/rfc2616.txt 45
f) Reverse Traversal: Traversal: consiste em uma tentativa de iludir os IDSs através de uma requisição na qual existam referências a outros diretórios que não estejam especificados na base de assinaturas dos IDSs. Por exemplo, a requisição “Get /cgi-bin/phf.cgi HTTP/1.0”, é facilmente detectada. Alguns IDSs, porém, podem
desconsiderar esta mesma requisição quando requerida da seguinte forma: “Get /cgi-bin/scripts/../phf.cgi HTTP/1.0”.
2.5.3 Evasão Ao contrário do ataque de inserção, na evasão o atacante realiza o processo inverso: cria pacotes que serão descartados pelo IDS e tratados pelo sistema alvo. Assim, um usuário mal intencionado pode realizar um ataque utilizando pacotes que não serão vistos pelos detectores, mas sim pelo sistema alvo. A evasão também existe uma classificação específica de ataques. a) Case Sensitivity : refere-se a capacidade do IDSs de detectar requisições tanto em letras maiúsculas, quanto em letras minúsculas (não são case sensitivity ), caso contrário o ataque será bem sucedido, pois sistemas operacionais tais como o Windows 98 e Windows 2000 Server não diferem letras maiúsculas de letras minúsc min úscula ulass (não (não são são case case sensitivity ), ou seja, o arquivo phf.cgi pode ser referenciado tanto como PHF.cgi quanto como PHF.CGI; b) Method Matching : No intuito de explorar as vulnerabilidades de um script e, ainda, tentar inviabilizar a detecção de tal ataque, pode-se utilizar métodos alternativos de solicitações tais como Put, Head e Post. Dessa forma, embora alguns IDSs identifiquem a requisição “Get /cgi-bin/phf.cgi HTTP/1.0” podem vir a não identificar uma requisição do tipo “Put /cgi-bin/phf.cgi HTTP/1.0”; c) Session Splicing : Diferent Diferenteme emente nte dos ataques ataques de fragmen fragmentaç tação, ão, este ataque ataque consiste no envio de diversos pacotes. Por exemplo, a solicitação “Get /cgi bin/phf.cgi HTTP/1.0” pode ser dividida em múltiplos pacotes “Ge”, “t”, “/”, “cgi”, “-bin”, “p”, “hf.c”, “gi”, “H”, “T”, “TP”, “/1”, “.0”. Sendo assim o processo de detecção é ainda mais difícil e para que seja possível os IDSs devem ser capazes de analisar uma seqüência de pacotes; 46
d) HTTP Mis-formating : Conforme a RFC 2616 a estrutura de uma requisição a um servidor servidor web deve deve segui seguirr o segui seguinte nte forma formato: to: método método
> URL versão CRFL CRFL; onde CRFL corresponde a uma linha em branco obrigatória. No entanto muitos servidores web aceitam requisições que não estejam plenamente em conformidade com essas especificações, por exemplo: método URL versão CRFL CRFL. Portanto existe a possibilidade de iludir alguns IDSs, pois ao ser realizada a comparação entre o pacote e a base de assinaturas de ataques não haverá relação, logo o pacote será considerado uma solicitação normal e não um ataque; e) DOS Directory DOS Directory Syntax : em plataformas Windows o separador de diretórios é representado por ‘\’, enquanto que a especificação do protocolo HTTP determina que o separador de diretórios web seja ‘/’. Isso faz com que toda vez que uma requisição do tipo “Get /cgi-bin/phf.cgi” é enviada a um servidor web da Microsoft, esse tenha que converter ‘/’ para ‘\’, de forma que a aplicação em questão questão int interpre erprete te a requisiç requisição ão como “Get “Get \cgi-bi \cgi-bin\ph n\phf.cg f.cgi”. i”. Portanto, Portanto, este este servidor aceita requisições como, “\cgi-bin\phf.cgi”, o que faz com que o IDS, ao analisar o pacote HTTP, não encontra a assinatura de um ataque conhecido.
2.5.4 Negação de serviço ou Deny of Service (DoS ) Ataque cujo objetivo é esgotar os recursos de um serviço ou rede tornando-o inacessível ou com com tempo tempo de respo resposta sta alto. alto. Os ataq ataque uess de nega negaçã çãoo de servi serviço çoss são norma normalme lmente nte execut executado adoss usando usando ferra ferrame menta ntass que que envia enviam m de forma forma ind indisc iscrim rimin inada ada requi requisiç sições ões a um determinado servidor, sobrecarregando os recursos do mesmo e, por vezes, tornando o sistema inoperável. Na grande maioria desses ataques o endereço de origem é forjado ( spoofing ) e, portanto, dificultam o processo de auditoria. Todos os sistemas conectados à Internet e que estejam executando serviços de rede baseados no protocolo TCP estão sujeitos a ataques de negação de serviços.
47
2.6 Classificação de IDS Segundo a metodologia proposta por [SILVA, 2007, p 57], os sistemas de detecção de intrusão podem ser classificados a partir do método de detecção utilizado, da arquitetura do sistema, da freqüência de uso e do comportamento deste após a detecção de eventos suspeitos ou intrusivos, conforme ilustrado na Figura a seguir (figura 2.1).
Figura 2.1 – Classificação de IDS
2.6.1 Método de Detecção Quanto ao método método utilizado para detectar detectar ataques, o IDS pode pode ser baseado em assinatura (abuso (abuso ou basea baseado do em conhe conheci cime mento nto)) ou em anom anomali aliaa (basea (baseado do em compor comportam tament ento). o). Anomalias Anomalias são desvios do comportamento comportamento normal de uso e assinaturas, assinaturas, por outro lado, são padrões conhecidos de ataques:
2.6.1.1 Baseado em assinatura O método de detecção por assinatura, assinatura, como também é conhecido, consiste no casamento casamento de padrões de dados contra bases de dados contendo padrões de ataques conhecidos referentes
48
a atividades hostis ocorridas no passado. São altamente altamente eficientes na identificação identificação de ataques e vulnerabilidades conhecidos, mas fracos na identificação de novas ameaças aos sistemas.
2.6.1.2 Baseado em anomalia O método de detecção detecção por anomalia, por outro lado, lado, busca dados raros ou não usuais usuais em um conjunto conjunto de dados, dados, aplicand aplicandoo medidas medidas estatíst estatística icass ou de int intelig eligênci ênciaa artific artificial ial para comparar atividades correntes de usuários, rede ou sistemas contra o conhecimento histórico armaze armazenad nadoo sobre sobre estes estes elem element entos. os. Probl Problem emas as comu comuns ns com os sistem sistemas as basea baseados dos em anomalias são que requerem treinamento extensivo de dados históricos, através de algoritmos de aprendizagem artificial, e tendem a possuir um custo computacional maior, porque devem realizar medições freqüentes, necessitam de tempo suficiente para convergir e possuem a sobrecarga sobrecarga de manter informação informação das ações realizadas realizadas no passado e ser atualizados atualizados a cada novo comportamento dos sistemas, usuários ou rede. Isto resulta em armazenamento de grande quantidade de dados e satisfatórios recursos de CPU para processá-los. A atualização de várias métricas de perfil do sistema deve ser feita sob medida rede a rede, sistema a sistema e, às vezes, usuário a usuário, devido ao fato dos padrões de comportamento e de uso do sistema variarem muito. O comportamento do tráfego normal é modelado modelado por um método sistemático. O crescente número de ataques requer uma atualização contínua da base de conhecimento dos sistemas de detecção baseados em assinaturas. Além disto, existe também um número desconhecido de vulnerabilidades descobertas mas não reveladas que não se encontram disponíveis para análise e inclusão na base de conhecimento. A maioria dos ataques é polimorfa e os atacantes exploram este polimorfismo para evadir os sistemas detectores. A solução óbvia seria utilizar uma abordagem de detecção por anomalia, modelando o que é normal ao invés do que é anômalo. Entretanto, apesar de vários sistemas de detecção por anomalia baseados em host terem sido propostos e implementados, tanto na literatura quanto na prática, a detecção por anomalia baseada em rede é ainda um campo aberto de pesquisa.
49
Enquanto as assinaturas de ataques são, em geral, mais simples de processar e localizar, os padrões de anomalia auxiliam mais freqüentemente na identificação de eventos suspeitos na rede. Alguns IDSs combinam as técnicas de detecção por assinatura e por anomalia; estes são conhecidos como sistemas híbridos. A Figura 2.2 a seguir, representa bem a diferenciação entre essas duas classes de detecção.
Figura 2.2: Diferenciação entre as classes de detecção de intrusão
2.6.2 Arquitetura A arquitetura de um IDS está dividida em duas categorias. A primeira define a natureza do alvo a ser monitorado: monitorado: baseado em host , rede ou híbrido. híbrido. A segunda categoria identifica identifica o tipo de localização ou composição formada pelo IDS: centralizado, hierárquico ou distribuído. Estas definições são descritas a seguir.
2.6.2.1 Segundo o alvo Um IDS pode ser classificado classificado pelo tipo de alvo a ser monitorado, como baseado em rede, baseado em host ou híbrido. Estas atividades atividades de coleta de dados, no entanto, entanto, sejam elas feitas no host ou na rede, determinam o tipo do IDS, baseado em host , em rede ou híbrido.
IDSs baseados em host ( Host Host Intrusion Detection System - HIDS) utilizam dados coletados coletados na própria máquina: arquivos de l og , registros de auditoria, integridade do sistema de arquivos, etc; permitindo a determinação exata de quais usuários e processos estão realizando operações maliciosas no sistema. É capaz de monitorar
50
acessos e alterações em arquivos de sistemas críticos, modificações nos privilégios dos usuários, processos, programas que estão sendo executados, uso da CPU e memória, entre outros eventos;
IDSs baseados em rede ( Network Intrusion Detection System - NIDS) realizam a monitoração do sistema através da captura e análise de cabeçalhos e conteúdo de pacotes de rede, os quais podem ser comparados comparados com padrões de ataques conhecidos ou assinaturas previamente previamente armazenadas em regras, arquivos ou bancos de dados, ou com com padr padrõões norm normai aiss do tráf tráfeg ego, o, para para
veri verifi fica caçã çãoo de alg algum desv desvio io do
comportamento comportamento normal da da rede. A figura figura 2.3 ilustra uma uma rede utilizando utilizando IDS IDS tanto tanto baseados em host (HIDS) como em rede (NIDS);
Figura 2.3. Rede utilizando IDS baseados em host ( FileServer FileServer e MailServe r) e rede (monitorando as interfaces interna e externa do firewall ). ).
IDSs Híbrido: grande grande parte das ferramentas ferramentas atuais de detecção detecção de intrusão explora explora o melhor das arquiteturas baseadas em host e rede, adotando soluções híbridas. Em busca busca de equil equilíbr íbrio io entre entre desem desempen penho, ho, simpl simplici icidad dade, e, abran abrangê gênci nciaa e robust robustez, ez, algumas implementações recentes provêem coleta de diferentes dados de hosts e do tráfego de rede, e interagem mecanismos centralizados com distribuídos.
2.6.2.2 Segundo a localização Uma arquitetura hierárquica para IDS consiste na distribuição parcial dos componentes do IDS de modo que os módulos de detecção distribuídos subordinados se comuniquem segundo a coordenação de gerentes centralizados, com a interação entre os módulos do
51
sistema sendo regida por fortes relações de subordinação. Esta abordagem surgiu para resolver alguns problemas referentes à implementação de sistemas completamente distribuídos. A figura 2.4 ilustra de forma genérica os módulos normalmente encontrados em um IDS. De acordo acordo com a arquit arquitet etura ura e local localiz izaçã açãoo dest destes es mó módul dulos, os, este estess siste sistema mass podem podem ser ser classificados em centralizados, hierárquicos e distribuídos. Base de Conhecimento
Configurações
Módulo de Detecção
Alarmes
Módulo de Gerenciamento
Exemplos Sensor de monitoração
Dados (raw data) Fonte de informações Ambiente monitorado
Figura 2.4 Módulos de um IDS
Algumas vantagens próprias dos sistemas distribuídos continuam existindo enquanto a solução de problemas, como a detecção detecção de falhas nos módulos do sistema, é facilitada facilitada através da estrutura hierárquica. A figura 2.5 ilustra o uso de IDS em uma arquitetura distribuída, cuja rede monitorada por vários agentes (sensores) detectores de intrusão, geram informações que servirão de base para os alertas. Neste caso a análise é fundamentada na correlação dos diversos dados coletados pelos agentes.
52
Figura 2.5. IDS em uma arquitetura distribuída através do uso de vários agentes (sensores).
Em contrapartida, aumentam as chances de ataques ao sistema, principalmente pela criação de pontos únicos de falha, representados pelos módulos mais altos da cadeia de hierar hierarqui quia. a. Se um desse dessess mó módul dulos os falha falhar, r, tod todoo o sistem sistemaa pode pode tornar tornar-se -se indis indispon ponív ível el,, contrapondo-se à principal motivação no uso de sistemas distribuídos.
2.6.3 Comportamento pós-detecção Esta classificação dos sistemas de detecção de intrusão leva em consideração as ações tomadas quando um padrão de intrusão é detectado:
IDS passivo: sistemas de detecção de intrusão que, ao detectar um padrão de ataque, apena apenass geram geram not notif ifica icaçõe çõess (via (via e-mails , SMNP MNP, etc) para um ope operado radorr ou
53
administrador administrador especialista através de console de gerenciamento informando sobre os ataques e ameaças emergentes, não reagindo aos ataques.
IDS Ativo: Ativo: projetado para realizar, por exemplo, bloqueio automático de conexões provenientes ou enviar pacotes de término (pacotes TCP com flags FIN e RST) de conexão para a fonte de fluxos de pacotes que sejam considerados intrusão. Podem possuir integração com roteadores ou firewalls . Esta classe de sistema, também conhecido como IPS ( Intrusion Intrusion Prevention Prevention System), tem sido alvo de pesquisas recentes.
2.6.4 Segundo a freqüência de uso Quanto à freqüência de uso, o IDS pode estar continuamente analisando os eventos de rede (análise em tempo real) ou ser configurado para análise periódica dos eventos de rede (análise off-line ou pos-mortem ).
2.7 Entidades e padrões Conforme visto nos tópicos anteriores, o sistema de detecção de intrusão (IDS) é uma solu soluçã çãoo comp compos osta ta por por dive divers rsos os comp compon onen ente tess como como sens sensor ores es,, agen agente tess e cons consol olee de gerenciamento gerenciamento que, muitas vezes, pertencem a fabricantes diferentes. Um grande esforço vem sendo sendo feit feitoo na tent tentati ativa va de padron padroniz izar ar a nomenc nomenclat latura ura e a funçã funçãoo de cada cada um desse dessess componen componentes, tes, principa principalmen lmente te para facilit facilitar ar a interaçã interaçãoo entre entre diferent diferentes es ferrame ferramentas ntas de detecção de intrusão. Enquanto alguns elementos são aceitos em grande parte da literatura, outros ainda são motivos de discrepâncias na definição da anatomia de um IDS. O CIDF (Common foi um umaa tent tentat ativ ivaa inic inicia iall de Common Intrusi Intrusion on Detecti Detection on Framewor Framework k ) foi padronização de IDS e começou a ser desenvolvido em 1997. O objetivo era permitir a intercomunicação entre dispositivos. No entanto, este projeto está parado desde o início do ano 2000. Apesar de bastante citado na literatura científica, o CIDF não chegou a se transformar transformar em um padrão nem teve grande repercussão no mercado, mas encorajou a criação
54
do grupo Intrusion Detection Exchange Format (IDWG), pelo IETF11, cujos resultados serão discutidos a seguir.
2.7.1 Intrusion Detection Exchange Format Working Group - IDWG Em agosto de 1998 foi criado o grupo IDWG ( Intrusion Detection Exchange Format Working Group),
pertencente ao IETF, o qual desenvolveu a proposta de padronização do
formato de dados e protocolos de comunicação para viabilizar a troca de informações, cujo resul resulta tado do foi a especi especifi ficaç cação ão de um protoc protocolo olo,, o IDXP IDXP ( Intrusi Intrusion on Detecti Detection on Exchange Exchange ). Protocol ). Dentre os documentos elaborados por este grupo, destaca-se o “ Intrusion Intrusion Detection Detection Message Exchange Requirements ”,
o qual especifica a proposta do formato de mensagens
IDMEF ( Intrusion Detection Message Exchange Format ) e os requisitos necessários para imple im pleme menta ntaçã çãoo deste deste,, além além da defini definiçã çãoo do protoc protocolo olo de comuni comunica caçã çãoo IDP ( Intrusion ). Detection Protocol ).
Para o IDP foram apresentados alguns requisitos fundamentais para
permitir a transmissão entre as entidades participantes.
Autenticação mútua entre sensores e console de gerenciamento;
Transm Transmis issão são segu segura ra de mensa mensage gens ns por meio meio de meca mecani nismo smoss que garan garanta tam m a confidencialidade e integridade do conteúdo das mensagens durante o processo de comunicação, através da utilização de algoritmos de criptografia;
Resistência a ataques de Negação de Serviço (DoS);
Proteção contra ataques do tipo replay , baseado no envio malicioso de suplicadas.
2.8 Protocolos para troca de mensagens entre IDS Existe um problema associado à implementação e uso de detecção de intrusos em arquiteturas distribuídas em redes de computadores de larga escala: a integração entre os sensores, uma vez que sensores de fabricantes diferentes não conseguem trocar informações. www.ietf.org 11 Internet Engineering Task Force - http:// www.ietf.org 55
Quando as redes remotas são independentes, a administração centralizada se torna difícil, pois nem sempre os produtos de IDS que estão sendo utilizados são os mesmos.
2.8.1 IDMEF Inicialmente o grupo IDWG definiu o modelo geral de um sistema de detecção de intrusão, a terminologia utilizada e os requisitos necessários para a interoperabilidade dos sistemas. Entre os requisitos está o desenvolvimento de um formato e de um protocolo específico para a troca de informações entre sistemas de detecção de intrusão. A fim de separar a semântica do mecanismo de comunicação, comunicação, o formato das mensagens de detecção de intrusão deve ser independente do protocolo de comunicação utilizado. O compartilhamento é feito através do envio de alertas formatados de acordo com o Intrusion Detection Message Exchange Format (IDMEF). O modelo de dados IDMEF é uma
representação de alertas orientada a objetos. Com ele consegue-se um padrão na especificação de alertas, permitindo o relacionamento entre ambientes de pouca ou grande complexidade. O formato das mensagens é independente do protocolo de comunicação, mas o Intrusion Detection Exchange Protocol (IDXP)
é sugerido pelo IDWG para o envio desses alertas.
Recente Recentement mente, e, o formato formato Intrusi (IDREF) foi Intrusion on Detecti Detection on Response Response Exchange Exchange Format Format (IDREF) proposto para a formatação de mensagens de resposta aos alertas. Tanto as mensagens IDMEF quanto as IDREF são baseadas na linguagem Extensible Markup Language – XML.
2.8.2 O Modelo de Dados IDREF O modelo de dados IDREF ( Intrusi Intrusion on Detecti Detection on Response Response Exchang Exchangee Format Format ) visa estender os trabalhos do grupo IDWG de forma a implementar mecanismos de envio de respostas aos alertas detectados. O modelo IDREF possui um forte relacionamento com o modelo IDMEF, pois as informações contidas em uma resposta dependem das informações prestadas pelo alerta. Sendo assim, muitas das informações existentes no modelo IDREF podem ter como origem informações de um alerta IDMEF recebido.
56
2.8.3 IAP - Internet Intrusion Alert O prot protoc ocol oloo IAP IAP ( Intrusi ) foi espec especifi ificam camen ente te constr construíd uídoo para para Intrusion on Alert Alert Protocol Protocol transportar alertas alertas e troca de dados entre agentes IDS. Como todo protocolo, ele é baseado em um modelo de comunicação e troca de mensagens. O IAP utiliza o TCP como protocolo a nível de transporte é primariamente destinado a transmissão de dados do sensor/analisador para para a esta estaçã çãoo de geren gerenci ciam ament entoo que informa informa a ocorrê ocorrênci ncia, a, grava grava o event eventoo e toma toma as determinadas contramedidas.
2.8.3.1 Modelo de Comunicação O protocolo IAP utiliza um modelo de comunicação similar ao HTTP 1.0. Um dos componentes faz requisições e o outro responde, mas algumas adaptações foram necessárias para que ele pudesse funcionar de maneira mais eficiente. A primeira é que o componente que estabelece a conexão pode responder e solicitar, isto é, não está caracterizado quem é o servidor e quem é o cliente. A segunda é que o protocolo HTTP suporta vários níveis de servidores proxy com a utilização do armazenamento de informações (cache). Já o protocolo IAP suporta somente um tipo de proxy que é similar a um túnel do protocolo HTTP, através do qual as informações são trocadas, mas não entendidas.
2.8.3.2 Sintaxe das Mensagens As mensagens que são trocadas através do protocolo IAP são baseadas em textos. Na figura 2 é mostrada uma requisição IAP que inclui o início de uma mensagem IDMEF. Toda requisição começa com uma linha contendo o tipo da operação e a versão do protocolo IAP que está sendo utilizada. Os cabeçalhos " Content-Length: " e "Content-Type :" são utilizados para indicar o tamanho e o tipo de informação que está sendo transferida. Todo cabeçalho é seguido por uma linha em branco e a mensagem, que pode estar vazia. Toda requisição é respondida por uma mensagem que tem um formato similar. Na primeira linha tem a versão do protocolo IAP e 3 dígitos de código de retorno que indicam se a solicitação foi bem sucedida ou não. Esta linha é seguida por cabeçalhos, uma linha em
57
branco e a mensagem, mensagem, como na requisição. Um exemplo de mensagem mensagem IAP está demonstrado na figura 2.6.
Figura 2.6: Exemplo de Mensagem Mensagem IAP
2.9 Considerações sobre Avaliação Avaliação de IDS Vários Vários indi indicado cadores res permitem permitem a avalia avaliação ção da qualidad qualidadee de sistemas sistemas de Detecçã Detecçãoo de Intrusão, entre os quais: a) Adaptab Adaptabilid ilidade: ade: express expressaa a capaci capacidade dade que que o IDS possui possui de de reconhe reconhecer cer lig ligeira eirass modificações de ataques já conhecidos. b) Extensib Extensibilid ilidade: ade: traduz traduz a capacidad capacidadee que o sistema sistema de detecção detecção possui possui em ser personalizado. c) Eficiênc Eficiência ia ou precisão precisão de detecçã detecção: o: traduz traduz a capacidade capacidade que o IDS possui possui para detectar corretamente a ocorrência de intrusões. A eficiência de um IDS é contabilizada através do número de erros que ocorrem. d) Impac Impacto to ou desempe desempenho nho de um sistem sistema: a: consti constitui tui um parâm parâmetr etroo que procura procura refletir o peso do processamento associado à função do IDS, face à quantidade de processamento da função normal do sistema. Neste parâmetro pode ser quantificado o grau de utilização do processador e os eventuais atrasos no processamento normal dos dados e o tráfego de rede gerado. Avaliar sistemas de detecção de intrusão é uma tarefa complexa devido aos seguintes motivos:
58
É difícil obter dados de alta qualidade para realizar a avaliação devido às questões de privacidade e competitividade, muitas organizações não desejam compartilhar seus dados com outras instituições;
Mesmo se dados reais estejam disponíveis, rotular as conexões de rede como normal ou intrusivas requer muito tempo por parte dos especialistas humanos;
A mudança constante do tráfego de rede r ede pode não somente introduzir novos tipos de intrusões, mas pode também alterar os aspectos de comportamento normal, tornando a construção de marcas comparativas ou de referência muito difícil;
Quando medindo o desempenho de um IDS, há a necessidade de medir não somente a taxa de detecção (ou seja, quantos ataques foram detectados corretamente), mas tamb também ém a taxa taxa de alar alarme mess fals falsos os (ou (ou seja seja,, quan quanta tass cone conexõ xões es norm normai aiss fora foram m incorretamente detectadas como ataques) bem como o custo da má (incorreta) classificação;
A complexidade da avaliação de um IDS torna-se também complexa pelo fato de que alguns ataques (por exemplo, negação de serviço e varredura) podem usar centenas de pacotes ou conexões conexões de rede, enquanto enquanto outros tipos de ataques ataques geralmente geralmente usam somente uma ou algumas poucas conexões.
Redes Redes de computa computadore doress geram geram grandes grandes quantid quantidades ades de dados dados durante durante sua operaçã operaçãoo normal e as atividades constituintes de um ataque formam uma parte muito pequena do tráfego e dos dados de auditoria. Esta parte pequena de instâncias de ataques nos dados de treinamento redobram a dificuldade da tarefa de aprendizagem dos métodos inteligentes. Sistemas baseados em detecção por anomalia são mais flexíveis, ou seja, generalizam bem para novos cenários de ataques. Infe Infeli lizm zmen ente te,, devi devido do a gran grande de dive divers rsid idad adee das das ativ ativid idad ades es de comu comuni nica caçã çãoo que que normalmente ocorre em um ambiente de rede, estes modelos em geral produzem uma grande taxa de alarmes falsos. Os desenvolvedores têm limitado o escopo dos modelos de detecção por anomalia a um usuário ou uma aplicação somente, onde a complexidade complexidade é possível de ser trabalhada [SILVA , 2007]. 59
Sistemas de reconhecimento de padrões ou detectores por assinatura são melhores na eliminação de alarmes falsos, porque estes comparam o tráfego corrente observado a um repositório repositório de modelos de ataques conhecidos. Em contrapartida, estes sofrem de uma taxa de detecção mais baixa com relação a novas atividades hostis.
60
3 DETECÇÃO DE INTRUSÃO BASEADA EM HOST (HIDS)
O cená cenário rio atual atual das das amea ameaças ças às redes redes de compu computa tador dores, es, onde onde a popul populari ariza zação ção de ferramentas ferramentas de ataque automatizado automatizado contribuíram para o aumento das estatísticas estatísticas de intrusão, tornaram extremamente simples a atividade de comprometer um host ou diversas redes. Entre os fatores que caracterizam esta situação, destacam-se o aumento da sofisticação dos ataqu ataques es e a dimin diminuiç uição ão dos conhe conhecim ciment entos os técni técnico coss nece necessá ssário rioss para para conduz conduzi-l i-los. os. Segundo [ALLEN, 2000], na década de 1980, os intrusos eram especialistas, tinham alto nível de perícia e desenvolviam individualmente seus métodos de invasão. Atualmente, qualquer usuário com o mínimo de conhecimento pode produzir um ataque através de ferramentas automatizadas. Conforme ilustrado na Figura 3.1, usuários experientes estão ficando mais astutos e seus ataques mais sofisticados, em compensação, o conhecimento requerido para que o intruso novato possa lançar um ataque conhecido está diminuindo.
Figura 3.1. Sofisticação do ataque vs. conhecimento técnico do intruso, adaptado de [ALLEN, 2000]
61
Alguns ataques têm como objetivo a introdução de códigos ou softwares conhecidos como Malwares (Malicious Malicious Softwares - Códigos Maliciosos) desenvolvidos para executar uma ação danosa em um computador, prejudicando o desempenho do sistema alvo e até mesmo a privacidade de seu usuário. A maioria dos ataques locais a sistemas computacionais derivam ou servem de base para ataques remotos, que, segundo os mesmos conceitos e princípios fazem uso dos meios de comunicação comunicação para executar executar as explorações. Torna-se essencial, essencial, portanto, conhecer as ameaças que comprometem a segurança dos hosts. Neste contexto, o uso de Sistemas de Detecção de Intrusão baseados em host (HIDS) constituem uma das principais ferramentas na monitoração monitoração e prevenção destas ameaças. Esta capítulo tem o objetivo de apresentar e discutir as principais formas de ataques locais a hosts e a importância dos HIDS na proteção dos sistemas computacionais. Para tanto, apresenta o seguinte contexto: a) Discuti Discutirr e caracte caracteriza rizarr a anatomi anatomiaa de ataque ataquess a hosts, ou ataques locais; b) Classificar Classificar os tipos tipos de de atacantes atacantes e as principais principais formas formas de ataques; ataques; c) Conceit Conceituar uar e descrever descrever vantage vantagens ns e desvantag desvantagens ens da abordage abordagem m de detecção detecção de intrusão baseada em host; d) Apresent Apresentar ar alguma algumass soluções soluções HIDS HIDS baseada baseadass em software livre.
3.1 Ataques Locais Os ataqu ataques es a redes redes de comput computado adores res geral geralme ment ntee inici iniciam am com com o levan levanta tame mento nto de informações e escolha de alvos específicos. Um servidor configurado incorretamente, um serviço vulnerável ou um administrador de rede com pouco conhecimento, são fatores que contribuem para que um atacante consiga obter o acesso e o controle de um host e, a partir deste, invadir outras máquinas na rede. A fase inicial de coleta de dados é denominada Footprint , onde são levantadas informações importantes do host alvo, como serviços ativos e
vulneráveis passivos de exploração remota. O processo de Footprint pode ser dividido em: 62
Engenharia Social: práticas utilizadas para obter acesso a informações importantes ou sigilosas em organizações ou sistemas por meio da persuasão ou exploração da confiança das pessoas, falsos e-mails ( spam spam), etc;
FingerPrint : tem por objetivo determinar qual o sistema operacional do host alvo;
Ataq Ataque uess de Varre Varredu dura ras: s: scanners de porta rtas, enum numeraç ração de servi rviços e vulnerabilidades, vulnerabilidades, etc. O scanner é um software que, dado um determinado determinado alvo, seja ele um software, um computador ou um dispositivo de rede, irá analisá-lo em busca de vulnerabilidades existentes (senhas padrão, serviços inseguros escutando em portas públicas, sistemas vulneráveis a falhas conhecidas, etc);
Após a fase inicial de levantamento de informações o atacante identifica uma máquina com alguma vulnerabilidade e a explora, podendo obter acesso privilegiado. Nesse momento a preocupação é não ser detectado (apagando logs e registros de acesso) e garantir futuros meios de acesso ao sistema através da instalação de backdoors . Este ciclo eventualmente recomeça com a utili utilizaç zação ão da máqui máquina na inv invadi adida da para para a varred varredura ura e inv invasã asãoo de out outros ros sistem sistemas as vulneráveis. O procedimento típico de invasão de um host pode ser dividido genericamente em 5 passos básicos, como pode ser visto no diagrama da figura. 3.2.
Figura 3.2 Anatomia de um ataque
Conforme descrito, frequentemente um atacante tenta elencar e invadir os computadores mais vulneráveis de uma rede. Entre os principais motivos da invasão, destacam-se:
Base para outros ataques: ataques : o objetivo final do cracker nem sempre é a máquina que ele ele inva invadi diu, u, mas mas outr outras as máqu máquin inas as mais mais im impo port rtan ante tess na rede rede,, ou seja seja,, um umaa 63
determinada máquina pode ser usada como um trampolim para atacar outros alvos. Em outras palavras, uma máquina invadida geralmente serve para executar atos maldosos, de modo que pareça que o atacante partiu da máquina comprometida, encobrindo a real origem do ataque. A máquina comprometida pode ser usada ainda como parte de um grupo de computadores que combinados podem realizar um ataque de negação distribuído ( DdoS ); );
CPU: CPU: frequentemente frequentemente invasões são articuladas articuladas objetivando objetivando utilizar o processamento do host comprome comprometido tido para execuçã execuçãoo de programa programas. s. Por que desperdi desperdiçar çar seus seus próprios recursos quando se pode usar uma máquina de terceiro para fazer isso por eles?
Espaço em disco: disco : uso do espaço em disco para distribuição de software pirata (warez , MP3, vídeos, etc). O espaço em disco no host comprometido também pode ser usado como meio para execução de crimes e fraudes digitais, como hospedagem de páginas falsas de bancos;
Roubo de dados: dados: objetivando furtar segredos industriais, registros bancários ou senhas de cartão de crédito;
Destruição de dados e danos à reputação: reputação : algumas invasões visam expor o usuário negativamente ou sabotar empresas. Isto ocorre através da divulgação de dados confidenciais ou mesmo destruição dados estratégicos;
Conhecimento e notoriedade: notoriedade : muitos atacantes são motivados motivados pelo simples desafio de invadir sistemas. A oportunidade de obter mais conhecimento e notoriedade, são os elementos que impulsionam os invasores, e para tanto eles não medem esforços para provar que sistemas totalmente seguros não existem;
3.2 Classificação dos invasores de sistemas Os invasores são divididos basicamente nas seguintes categorias:
64
a) Hacker : pess pessoa oa que que poss possui ui gran grande de faci facili lida dade de de anál anális ise, e, assi assimi mila laçã ção, o, compreensão compreensão dos aspectos aspectos relacionados relacionados à computação computação em geral. Geralmente são pessoas com alta capacidade mental e com pouca atividade social. Conhecem profundamente aspectos de linguagem de programação e um ou mais sistemas operacionais, o que permite o desenvolvimento de ferramentas que utilizam falhas nesses sistemas para invadi-los. Entretanto, o hacker busca essencialmente o conhecimento. Por falta de informação, a mídia classifica equivocadamente qualquer pessoa que cometa alguma fraude ou crime digital, como hacker; b) Cracker : indiv indivídu íduoo com um nível nível de conhe conhecim ciment entoo igua iguall ou superi superior or aos hackers .
Mas que, usualmente, além de invadir o sistema, causa danos aos
proprietários através do roubo de informações, alterações de conteúdo, etc; c) Phreaker : é um invasor especializado em telefonia. Aplica seus conhecimentos para para util utilizar izar ilegalm ilegalmente ente os serviços serviços das companh companhias ias telefôn telefônicas icas.. Foram Foram os pioneiros e portanto, deram origem às demais categorias; d) Lamer e Script e Script Kiddie: o termo Lamer (de acordo com o dicionário britânico, uma pessoa inepta ou ineficaz), muito utilizado no final dos anos 80 e meados dos dos anos anos 90, 90, é empr empreg egad adoo para para desi design gnar ar um umaa pess pessoa oa que que não não poss possui ui conhec conhecim iment entos os técni técnicos cos sobre sobre compu computa tador dores, es, porém porém,, faz-s faz-see passa passarr por um especialista. Costuma-se pensar também que lamer é um hacker iniciante, um aprendiz; o que na verdade é um equívoco. Um lamer é julgado assim por suas atitudes e não por seus conhecimentos. Já Script Kid seria o sinônimo moderno para o antigo termo lamer. Este indivíduo geralmente geralmente utiliza alguma ferramenta de invasão já disponível para download na Internet, ao invés de criar suas próprias ferramentas ou estratégias. Desenvolvem atividades relacionadas com segurança da informação utilizando-se do trabalho intelectual dos verdadeiros especialistas técnicos, mas não possuem conhecimento de programação. Geralmente Geralmente o Script Kiddie é um usuário sem muitos conhecimentos técnicos, que deseja invadir algum sistema sem nenhum objetivo importante.
65
3.3 Ameaças digitais Exis Existe tem m dife difere rent ntes es ti tipo poss de méto método doss de ataq ataque uess e amea ameaça çass digi digita tais is.. Prog Progra rama mass desenvolvidos com a intenção de prejudicar computadores pessoais e executar ações danosas em servidores são conhecidos como malwares (malicious code, malicious software ). Estes códigos maliciosos geralmente recebem a seguinte classificação: classificação: keyloggers , cavalos de tróia (trojans ou trojan horse), vermes (worms), vírus, rootkits e exploits . Apesar da classificação de ameaças ser bastante extensa, nesta seção serão abordadas apenas apenas as ferrame ferramenta ntass diretame diretamente nte relacion relacionadas adas ao comprome comprometim timento ento,, invasão, invasão, roubo roubo de dados e manutenção de privilégios em sistemas computacionais.
3.3.1 Worm
Depo Depois is dos dos víru víruss de comp comput utad ador or,, os worms tornaram-se a forma de ameaça mais conhecid conhecidaa na Interne Internet,t, sob a forma forma de código código malicio malicioso so com caracte característ rísticas icas similares similares aos vírus. Worms em geral se replicam e se propagam para outros computadores. Para tanto necessita explorar vulnerabilidades do host remoto (exploiting ), ), o que é a maior dificuldade neste processo. Worms
são organismos autônomos e em seu processo de duplicação e propagação não
necessitam de qualquer intervenção do atacante ou do usuário do computador atacante. Worms
também não necessitam infectar programas executáveis como os vírus, necessitando
apenas estarem presentes em um computador na rede local ou internet. Não existe uma classificação classificação universal para worms, contudo, com relação ao seu método de replicação pode-se considerar worms execução autônoma e execução pelo usuário. a) Worms de execução autônoma, como comentado anteriormente, são organismos pres present entes es em comput computado adores res conta contami mina nados dos e que não nece necessi ssita tam m inter interaç ação ão humana em seu processo de replicação. Estes exploram vulnerabilidades de serv serviç iços os e faze fazem m uso uso de TCP/ TCP/IP IP,, e-mail, comp compart artilh ilhame amento nto de arqui arquivos vos,, dispositivos de armazenamento removíveis, e serviços da Internet;
66
b) Worms de execução pelo usuário necessitam da interação do usuário para dar iníc início io ao proc proces esso so de infe infecç cção ão do comp comput utad ador or.. Nest Nestes es caso casoss é util utiliz izad adaa engenharia social para persuadir e convencer o usuário a executar e instalar um arquivo da internet ou um arquivo anexo em e-mail. A partir deste momento o worm
pode se alto enviar para outro grupo de computadores. A execução de
código remotamente por worms se dá em quatro etapas principais: Verificação de vulnerabilidade, Exploração, Proliferação e Cópia. Com o código copiado localmente (fase de Cópia) e executando no computador da vítima, a próxima fase é a de Proliferação, quando este computador passa ao papel de atacante e se prolifera para novos alvos, utilizando o mesmo método de Verificação de vulnerabilidade, Exploração e cópia. Os worms geralmente estão relacionados a atividades de intrusão pois também podem servir de base para ataques DDoS , roubo de dados e instalação de códigos passiveis de exploração remota, como buffer overflow. O Morris worm ou “ Internet Internet worm” foi um dos primeiros worms distribuídos pela Internet; trata-se também do primeiro worm a receber atenção da mídia. Ele foi escrito por Robert Tappan Morris Jr, estudante da Cornell University e para despistar sua origem, foi disseminado a partir do MIT em 2 de Novembro de 1988, realizando um ataque de DoS e em 10% dos computadores conectados a Internet. Este Worm fez uso de dois programas Unix, sendmail e fingerd , o que possibilitou a exploração de um tipo de vulnerabilidade de buffer overflow ( stack overflow) no fingerd , infectando universidades, computadores da NASA, organizações militares, e agências do governo federal americano. Este código malicioso foi importante primeiro porque foi prova de conceito da possibilidade de ataques remotos explorando vulnerabilidades de protocolos e serviços de rede. Assim como, evidenciou a vulnerabilidade dos centros de pesquisa e agências conectados à internet que não estavam preparados para responder a incidentes deste porte. O Computer Emergency Response Team/Coordination Center (CERT/CC) foi criado, a partir do incidente do Worm de Morris, pela DARPA ( Defense Advanced Research Projects 67
Agency ,
parte do Departamento de Defesa dos Estados Unidos) com o intuito de prover
iniciativas de pesquisas em vulnerabilidades de segurança, aumento de segurança de sistemas, e coordenação de times de resposta a incidentes de larga escala.
3.3.2 Adwares e spywares Paralelamente a atividade de malwares existe uma atividade, mais recente que vírus e worms, conhecida como Adware. Adwares
são aplicações instaladas em computadores alvos
(geralmente sem o consentimento e conhecimento do usuário), agregados a softwares gratuitos ou de uso limitado. Adwares têm a função de monitorar a atividade do usuário com o intuito exclusivamente comercial. As informações captadas, contém as preferências do usuário de naveg navegaç ação ão na int intern ernet et,, e são enviad enviadas as para para empre empresas sas fabri fabrican cantes tes ou come comerci rciai aiss para para posteriores propagandas e ofertas de produtos. Quando o usuário parte para navegação na Web através de seu navegador, alguns popups são abertos pelo adware com propaganda direcionada, e o usuário é redirecionado para páginas que comercializam estes produtos. O estudo de Adware é importante pois a disseminação da atividade de Adwares propiciou o surgimento de spywares. Spywares são também programas espiões, mas com o intuito malicioso malicioso de roubar informações pessoais como dados financeiros, financeiros, contas de acesso a internet banking e números de cartão de crédito. Spywares
têm os mais diversos fins maliciosos, contudo, não somente verificam sites
acessados, mas também armazenam e transmitem para o atacante informações armazenadas em cookies , senhas e outras informações capturadas pela digitação, informações comerciais e financeiras, como nomes de bancos, agência e conta, e outros.
3.3.3 Bots e Botnets De modo similar ao worm o bot é um programa capaz se propagar automaticamente, explorando vulnerabilidades existentes ou falhas na configuração de softwares instalados em um computador. Adicionalmente ao worm, dispõe de mecanismos de comunicação com o invasor, permitindo que o bot seja controlado remotamente.
68
Normalmente, Normalmente, o bot se conecta a um servidor de IRC ( Internet Relay Chat) e entra em um canal canal (sala) (sala) determi determinado nado.. Então, Então, ele aguarda aguarda por instruçõ instruções es do invasor, invasor, monitora monitorando ndo as mensagens que estão sendo enviadas para este canal. O invasor, ao se conectar ao mesmo servidor de IRC e entrar no mesmo canal, envia mensagens compostas por seqüências especia especiais is de caracte caracteres, res, que s˜ao interpret interpretadas adas pelo bot. Estas Estas seqüênci seqüências as de caracter caracteres es correspondem a instruções que devem ser executadas pelo bot . Botnets
são redes formadas por computadores infectados com bots. Estas redes podem ser
compostas por centenas ou milhares de computadores. Um invasor que tenha controle sobre uma botnet pode utiliza-la para aumentar a potencia de seus ataques, por exemplo, para enviar centenas centenas de milhares de e-mails de phishing ou spam, desferir ataques de negação de serviço, etc.
3.3.4 Cavalos de tróia ( trojan horse) São programas maliciosos que aparentemente parecem programas programas úteis aos usuários, mas que executam ocultamente tarefas maliciosas, podendo coletar informações ou abrir uma brecha de segurança como um backdoor . Diferentemente Diferentemente de vírus e worms, trojan horses não se propagam, necessitando ser instalados pelos próprios usuários. Geralmente Geralmente um trojan é instalado com o auxílio de um ataque de engenharia social, com apelos para convencer a vítima a executar o arquivo do servidor, o que muitas vezes acaba acontecendo, dada a curiosidade do internauta. Nos tópicos a seguir, serão abordados os tipos mais freqüentes de Trojan Horse. 3.3.4.1 Backdoor
Originalmente Originalmente um backdoor (também conhecido por Porta dos fundos) consiste de uma porta
usada por vários fabricantes para gerenciamento remoto de seus produtos. Dentre as
funcionalidades exercidas destacam-se as atualizações e correções de erros em aplicativos. Entretanto, um Backdoor pode ser uma falha de segurança que pode existir em um programa de computador ou sistema operacional, que pode permitir a invasão do sistema por 69
um cracker para que ele possa obter um total controle da máquina. Um backdoor pode também ser incluído por um atacante que queira garantir o seu retorno ao computador invadido. O computador da vítima, uma vez comprometido, pode ser novamente invadido sem a necessidade de execução de todas as fases que precedem uma invasão. Alguns backdoors são conhecidos como RAT ( Remote Administrator Tool ) ou ProRAT. ProRat é um backdoor da classe RAT, que possui muitas funções de espião. Seu nome é uma fusão da palavra inglesa professional , juntamente com a sigla RAT. Criado em Visual Basic, dentre
outras,
este
Keystrokes (Keylogger),
código
malicioso
pode
executar
as
seguintes
funções:
roubo de senhas, controle total sobre arquivos, fazer screenshots ,
visualizar informações do sistema, download de arquivos, etc.
3.3.4.2 Keylogger e Screenlogger Keylogger
(registrador do teclado) é um software de computad computador or cuja finalidade finalidade é
monitorar tudo o que é digitado. Muitas vezes esses programas são utilizados com objetivos ilícitos, através de spywares , "trojan horses ", entre entre outros. outros. Os Keylogger na maioria das vezes se infiltram no computador da vítima através de e-mails e links falsos. Geralmente, a pessoa só nota que o Keylogger foi instalado depois que o cracker responsável responsável pelo mesmo já tenha entrado no sistema através das senhas capturadas. Há Keylogger produzidos apenas para fins ilícitos, o que acaba sendo muito perigoso para as pessoas que são infectadas devido a seu criador poder ser um script kiddie, baixá-lo e configurá-lo com o intuito de roubar dados como senhas de jogos, MSN, e-mails e Orkut . Existem também os chamados keybank e os screenlogger. screenlogger. Keybank são Keylogger feitos especialmente para roubar senhas bancárias e de cartão, os screenlogger , por sua vez, armazenam a posição do cursor e captura a tela apresentada no monitor no momento em que o mouse é clicado. O consumo destas aplicações em termos de processamento, memória e tráfego de rede fazem-no imperceptível, imperceptível, podendo enviar via e-mail ou ftp as informações informações capturadas para um espião externo. Alguns conseguem manter-se ocultos no Task Manager do Windows (na lista
70
de proce processo ssos), s), ocult ocultam am seus seus arqui arquivos vos de logs, e mistur misturamam-nos nos aos aos do própri próprioo siste sistema ma operacional. Para tanto, a maioria dos Keyloggers utiliza o recurso Windows Hooks . Hook são mecanismos pelos quais eventos podem ser interceptados
antes de alcançarem
uma aplicação. A função pode agir em eventos modificando-as ou descartando-as. As facilidades fornecidas por Hooks permeiam o processamento ou modificação de qualquer mensagem, gravação ou inserção da mensagem de volta ao keyboard e eventos de mouse, etc. 3.3.5 Rootkits
Um invasor, ao realizar uma invasão, pode utilizar mecanismos para esconder e assegurar assegurar a sua presença no computador comprometido. O conjunto de programas que fornece estes mecanismos é conhecido como rootkit . Os rootkits possuem esse nome por serem, inicialmente, “kits” de programas para a plataforma Linux/Unix para manter o acesso ao sistema previamente comprometido, agindo como backdoor . O termo rootkit , portanto, refere-se a um conjunto de ferramentas usadas pelo invasor não para obter privilégios de root , mas sim para manter esses privilégios. Como “root ” é o usuário com o controle total do computador nas plataformas Unix, originou-se o nome “rootkit ” para denominar estes conjuntos de aplicativos. Um rootkit pode fornecer programas com as mais diversas funcionalidades. Dentre eles, podem ser citados:
Programas que substituem os comandos reais de um sistema operacional : objetivando esconder atividades e informações deixadas pelo invasor (normalmente presentes em todos os rootkits ), tais como arquivos, diretórios, processos, conexões de rede, etc;
LogClean: Programas para remoção de evidências em arquivos de logs;
71
Sniffers:
para capturar informações na rede onde o computador está localizado,
como por exemplo senhas que estejam trafegando em claro, ou seja, sem qualquer método de criptografia;
Scanners:
para mapear potenciais vulnerabilidades em outros computadores;
Outros tipos de malware: como cavalos de tróia, keyloggers , ferramentas de ataque de negação de serviço, etc.
Quando um rootkit é instalado, ele altera vários arquivos binários e instala novos módulos no núcleo do sistema operacional. operacional. Estes procedimentos alteram o comportamento do sistema operacional fazendo com que o rootkit fique imperceptível a um usuário ou qualquer ferramenta de detecção de malwares . 3.3.6 Exploits
Um exploit é um progra programa ma utili utilizad zadoo para para explo explorar rar um umaa vul vulner nerabi abili lidad dadee de out outro ro programa. Exploits são também conceituados como códigos maliciosos, porção de dados ou uma seqüência de coma comand ndos os que que se apro aprove veit itaa das das vuln vulner erab abil ilid idad ades es de um sist sistem emaa computacional ou serviços em execução. Estas ferramentas tem por finalidade : executar comandos arbitrários, obter um shell não autorizado e aumentar os privilégios de usuário por meio de erros de programação de serviços ou aplicações vulneráveis. A maioria dos exploits para Linux são escritos em linguagem C, Perl ou s cript shell. Exploits
são geralmente elaborados por hackers como programas de demonstração das
vulnerabilidades, a fim de que as falhas sejam corrigidas, ou por crackers a fim de ganhar acesso não autorizado a sistemas. Por isso muitos crackers não publicam seus exploits , conhecidos como 0 days, e o seu uso massificado deve-se aos script kiddies. Não existe entretanto um programa chamado exploit , existem exploits para explorar vulnerabilidades vulnerabilidades específicas específicas de sotwares espec específi ífico cos, s, de versõe versõess espec específ ífica icas. s. O grau grau de especificidade remete ao estudo de Buffer Overflows (que é traduzido como estouro de pilha), contudo, nem sempre exploits estão baseados em buffer overflows overflows , mas frequentemente este
72
tipo de vulnerabilidade é explorada, pois, a grande maioria das vulnerabilidades encontradas em alguns serviços são baseadas no buffer overflow . Um buffer overflow é uma anomalia, e ocorre quando, ao inserir uma quantidade de dados maior do que o programa está preparado para tratar (causando estouro do buffer ) ele irá executar instruções que não estão programadas, em um endereço de memória diferente do normal. Desta forma, seria possível colocar instruções nos próprios dados que está inserindo, fazendo o computador executar ações arbitrárias, não previstas. Permitindo assim ao exploit executar um comando aleatório, obter um shell ou mesmo ler arquivos no sistema. Os exploits são enquadrados em dois tipos: a) Exploit para execução local: local : o usuário mal intencionado deve ter uma conta no sist sistem emaa e esta estarr loga logado do para para exec execut utáá-lo lo loca localm lmen ente te.. Este Este ti tipo po de exploit geralmente é utilizado para o usuário ganhar um maior privilégio ou ler um arquivo que ele não possui permissão; b) Exploit para execução remota: remota : o invasor não precisa ter um conta no sistema remoto, o invasor somente precisa ter acesso a rede. Este tipo de exploit é utilizado para obter algum acesso não autorizado através da rede. Até meados dos anos 90, acreditava-se que os exploits exploravam exclusivamente exclusivamente problemas em aplicações e serviços para plataformas Unix. A partir do final desta década, especialistas demonstraram a capacidade de explorar vulnerabilidades em plataformas de uso massivo, por exemplo, sistemas operacionais Win32 (Windows 9x, NT, 2000 e XP).
3.4 IDS baseado em Host 3.4.1 Conceito Um IDS baseado em host monitora eventos e logs de máquinas individuais ( hosts) e servidores para detectar atividades suspeitas o mal uso ou intrusão no sistema. Ele aplica análise de assinatura contra múltiplos eventos de log e de comportamento do sistema, pode também tomar ações pró-ativas como barrar todo o tráfego para o host infectado. 73
Consiste Consistem, m, tipi tipicame camente nte,, de sistemas sistemas especi especialis alistas tas que fiscali fiscalizam zam diversos diversos tip tipos os de atividades, como chamadas de funções do sistema operacional, integridade do sistema de arquivos, acesso a arquivos considerados críticos, entre outros recursos; procurando por padrões que determinem desvios significativos em relação ao perfil de uso considerado regular. A detecção de intrusão baseada em host é a precursora dessa área, sendo que o alvo das primeiras ferramentas desenvolvidas com esse fim foram os conhecidos mainframes. Nesse ambiente, todos os usuários estavam localizados em um único ponto, fazendo uso dos mesmos recu recurs rsos os de arma armaze zena name ment nto, o, proc proces essa same ment nto, o, etc. etc.,, e torn tornan ando do mais mais fáci fácill a tare tarefa fa de monitoramento do sistema. [ CAMPELLO e WEBER, 2001]. O HIDS pode fazer uma análise mais precisa e confiável, indicando que processos e usuários estão envolvidos em algum tipo de ataque ao sistema operacional, e também suas conseqüências. O princi principal pal esfo esforço rço,, dessa dessa forma forma,, era realiz realizar ar visto vistoria riass perió periódic dicas as nos regi registr stros os de atividade do sistema, tentando detectar possíveis eventos não autorizados, e, em um estágio mais avançado, utilizar ferramentas que analisavam esses registros de forma automatizada. Essas ferramentas, então, analisam a atividade do sistema através de dados coletados na própr própria ia máqui máquina, na, permit permitin indo do a determ determina inaçã çãoo exat exataa de quais quais usuári usuários os e proce processo ssoss estão estão realizando operações maliciosas no sistema, o que garante boa precisão na detecção. A figura 3.3 a seguir, ilustra a utilização de HIDS em hosts de uma rede de computadores.
Figura 3.3 Utilização de HIDS em hosts uma rede de computadores
74
Uma sub-categoria desse tipo de IDS, citado por vários autores, é representado pelos chamados chamados IDS baseados em aplicação. aplicação. Preocupados em analisar dados gerados por aplicações aplicações específicas, como transações de bancos de dados, por exemplo, esses IDS representam um nível de abstração mais elevado na cadeia de detecção. As fontes mais comuns de informação informação usadas por IDS baseados em aplicação, são chamadas ao sistema, os arquivos de transação e logs
da aplicação. Por serem desenvolvidos desenvolvidos para monitorar atividades específicas, específicas, este tipo de
IDS geralmente consome menos recursos do host e são mais precisos em relação aos HIDS. Esta classificação é ilustrada na figura 3.4 a seguir.
Figura 3.4 - Níveis de abstração entre as diferentes abordagens de IDS
3.4.2 Principais Características dos HIDS Para detectar intrusões, o HIDS pode se basear em três fontes de informações:
Sistema de arquivos: Através da comparação com dados de um sistema de arquivos considerado confiável, o IDS verifica a integridade do sistema de arquivos, procurando por modificações classificadas como não autorizadas. Para diminuir a quantidade de falsos positivos, uma estratégia seria configurar o IDS especificando quais arquivos e diretórios podem ser alterados;
Conexão da rede: O IDS pode identificar atividades maliciosas através da análise das informações trocadas entre o host e uma entidade remota;
Conexã Conexãoo de portas portas TCP/UD TCP/UDP: P: pode pode mapear mapear portas aberta abertass em serviç serviços os ativos ativos e descobrir tentativas de aberturas de sessões UDP ou ou TCP em portas não autorizadas;
Arquivos de log :
Ο
IDS pode detectar atividades maliciosas através da análise de
informações contidas nos arquivos de log do sistema.
Alguns autores destacam ainda as seguintes características:
75
Verificar o sucesso ou falha de um ataque;
Ataques que ocorrem fisicamente num servidor podem ser detectados;
Ataq Ataque uess que que util utiliz izam am crip cripto togr graf afia ia pode podem m não não ser ser nota notado doss pelo peloss NIDS NIDS,, mas mas descobertos pelos HIDS, pois o SO primeiro decifra os pacotes;
Independem da topologia da rede;
Geram poucos “falsos positivos”, que são alarmes falsos de ataques;
Não necessita de hardware adicional.
O HIDS trabalha fazendo monitoração de login, para verificar se os logs de autenticação estão se comportando normalmente ou se existem atividades atividades inesperadas como, por exemplo, tentativas de obtenção privilégios de administradores para quem não tem esse perfil.
3.4.3 IDSs baseados em rede x host Uma das vantagens de um IDS em relação aos métodos tradicionais de análise de incidentes é a possibilidade de correlacionar diferentes tipos de dados. Coletar informações locais como os logs e o estado dos processos em execução, ou capturar na rede pacotes destinados a determinada porta, são exemplos de ações distintas com um mesmo fim: gerar dados que representem indícios de uma intrusão. Essas coletas, no entanto, sejam elas feitas no host ou na rede, determinam o tipo do IDS (baseado em host ou em rede) e apresentam vantagens e desvantagens características. As principais vantagens dessa abordagem são: a) Independência de rede: rede : independente da forma de comunicação utilizada entre as máqui máquinas nas (cifra (cifrada da ou não, não, com switches ou não), as tarefas de um IDS baseado em host não são diretamente afetadas; b) Não necessita de Hardware adicional: adicional : ao contrário dos NIDS, os HIDS não necessitam de servidores ou appliances adicionais para serem incorporados aos
76
hosts.
No entanto, algumas topologias podem utilizar um host gerente para
correlação e registro de eventos centralizados. c) Detecção de ataques internos: internos : é mais fácil, para um IDS baseado em host , porque é capaz de monitorar atividades específicas do sistema ( logon, logoff , uso do admin , podem ainda detectar ataques que utilizam criptografia, etc) e detectar atividades não autorizadas que representem abusos de privilégio por parte de usuários ou programas, desta forma gerando pouco falso positivos; d) Reação: Reação: embora não sendo uma atividade de responsabilidade direta do IDS, pode-se, com maior eficiência e facilidade, confinar/avaliar danos e recuperar erros usando uma ferramenta baseada em host . Como desvantagens são apresentados os seguintes itens: a) Dificuldade de instalação: instalação: cada máquina monitorada deve conter ao menos um elem elemen ento to do IDS IDS base basead adoo em host instala instalado do localme localmente, nte, dificul dificultand tandoo sua instalação em redes de larga escala; b) Dificuldade de manutenção: manutenção: pelo mesmo motivo apresentado acima, a tarefa de manutenção dessas ferramentas é dificultada; c) Dependência do S.O.: S.O. : É dependente do S.O. (um HIDS de Linux é totalmente diferente de um HIDS de Windows); d) Ataq Ataque uess ao próp própri rioo IDS IDS: como como os elem elemen ento toss da dete detecç cção ão deve devem m esta estar r localmente instalados, um atacante que conseguir invadir tal máquina pode desabilitar ou destruir a ferramenta instalada; e) Dificuldade de tratar ataques de rede: rede : alguns alguns ataques ataques são especial especialment mentee direcionados à infra-estrutura de rede, dificilmente tratados por IDS desse tipo; f) Desempenho: Desempenho : ferra ferrame ment ntas as desse desse ti tipo po são são extrem extremame ament ntee intru intrusiv sivas, as, ou seja, seja, interferem diretamente no funcionamento e desempenho do sistema monitorado; g) Depend Dependênc ência ia de pla platafo taforma rma:: é alta altame ment ntee depe depend nden ente te da plat plataf afor orma ma de monitoramento, devendo sofrer muitas modificações para se adaptar a outros ambientes.
77
Sistem Sistemas as int interl erliga igados dos em rede, rede, por sua sua vez, vez, repres represen enta taram ram um novo novo parad paradig igma ma no contexto de detecção de intrusão, sendo que a partir de então usuários migravam de uma máquina para outra, possivelmente com identidades diferentes, trocavam informações pela rede e, no caso de pessoas mal intencionadas, lançavam ataques que poderiam atingir todas as máquinas daquela rede. Para lidar com essa nova realidade, sistemas que realizavam uma anál anális isee loca locall dos dos dado dadoss prec precis isav avam am inte intera ragi girr para para gara garant ntir ir um umaa dete detecç cção ão em toda toda a organização, trocando volumosas trilhas de auditoria ou simples alarmes. O uso em grande escala da Internet voltou a atenção dos IDS para ataques à própria rede. Seqüestro de seções TCP 12, varredura de portas, negação de serviço, dentre outros, são exemplos de ataques dificilmente detectados por analisadores baseados em host . Assim, foram desenvolvidas desenvolvidas ferramentas específicas específicas que capturam e analisam pacotes de rede, permitindo a busca por ataques direcionados a detalhes específicos de rede e, inclusive, a determinadas máquinas, através da análise dos dados transportados nesses pacotes. Por esse motivo, a maioria dos IDS disponíveis atualmente são baseados em rede. Capturando pacotes pacotes em um backbone , segmento de rede ou nas entradas de uma organização, uma grande quantidade de informação pode ser monitorada com esse tipo de ferramenta, sem inte interf rfer erir ir no func funcio iona name ment ntoo ou dese desemp mpen enho ho das das máqu máquin inas as afet afetad adas as.. Norm Normal alme ment ntee direcionados a explorar vulnerabilidades latentes no sistema operacional, em protocolos ou em serviços, sua principal função é detectar ataques que seriam dificilmente percebidos por uma ferramenta que trabalhe com dados de um único host , direcionando esforços ao tráfego de toda a rede.
3.4.4 Verificadores de integridade Até mesmo os hosts mais mais bem protegi protegidos dos podem podem ser ocasion ocasionalme almente nte invadido invadidos. s. É importante que o administrador do sistema descubra essas violações o mais rápido possível. Existe Existem m um umaa grande grande varie varieda dade de de ferra ferrame ment ntas as de audit auditori oriaa e de verif verific icaçã açãoo para para essa essa finalidade. Para detectar programas mal-intencionados que o intruso incluem na rede, os
12 Seqüestro de seções TCP: baseia-se fundamentalmente na possibilidade de se prever o número de seqüência do TCP,
preferiu-se classificá-lo como sendo derivado de uma deficiência do IP. 78
verif verific icado adores res de inte integri gridad dadee examin examinam am arquiv arquivos os do sistem sistemaa para para dete determi rmina narr se houve houve alterações não autorizadas ou inesperadas. As ferramentas de auditoria registram e organizam eventos de sistema de modo que um ataque possa ser rapidamente reconhecido reconhecido e combatido. combatido. O principal problema com esses tipos de ferra ferrame menta ntass resid residee em sobrec sobrecarr arreg egar ar o admi adminis nistra trador dor do siste sistema ma com com um umaa série série de informações. Para combater isso, muitas das novas ferramentas tentam combinar logs de diversos hosts e filtrar informações que não sejam pertinentes. O real desafio é determinar exatamente o que é relevante e o que não é. Um problema com ferramentas de integridade e auditoria é que se estiverem localizadas no sistemas que está sendo protegido, elas ficam sujeitas a ataques. Por exemplo, o intruso pode modificar o programa básico e altera a integridade para ajustá-lo ao novo programa adulterado. Por essa razão, recomenda-se que informações de segurança importantes sejam armazenadas em outros sistemas ou em um meio físico que não possa ser modificado, como uma unidade WORM ( write-once read-many) .
3.5 Exemplos de HIDS Existe uma grande variedade de HIDS disponíveis, disponíveis, comerciais ou registrados sobre GPL. Nesta seção serão abordadas dois tipos de IDS utilizados atualmente: o tripwire e o OSSEC. 3.5.1 TRIPWIRE
O Tripwire é um umaa ferra ferrame menta nta para para UNIX UNIX desen desenvol volvi vida da para para mo monit nitora orame mento nto das das modificações modificações ocorridas no sistema de arquivos, mas não funciona como um IDS ativo porque ele não é capaz de realizar ações específicas para determinados tipos de ocorrências de alerta. A verificação de integridade dos arquivos deve ser feita com a intervenção do administrador. Após a instalação do Tripwire deve ser criado um banco de dados com informações dos arquivos que devem ser monitorados por ele, assim ele poderá fazer checagens periódicas buscando identificar qualquer alteração ocorrida nestes arquivos, baseando-se nas informações armazenadas no banco de dados criado. 79
Para garantir a segurança e a integridade do banco de dados, ele é armazenado de forma criptografada, onde será exigida a chave criptográfica e fornecida a passphrase, que é na verdade uma senha usada para gerar a chave. O uso do Tripwire pode trazer melhorias no nível de segurança, pois, apesar de não bloquear possíveis ataques de forma dinâmica, a constante verificação da integridade dos arquivos, pode determinar a dimensão dos danos causados por estes ataques e, dependendo, da freqüência com que é realizada, pode evitar maiores estragos pela identificação de pontos ultrapassados no sistema de segurança. As informações do Tripwire podem ser muito úteis para a tomada de medidas judiciais contra invasores, pois representam provas da invasão com detalhes dos passos dados no sistema.
3.5.2 OSSEC13 O OSSEC é um Host IDS Open Source criado pelo Daniel Cid. Ele é usado para análise de log, detecção de rootkits , alertas e repostas pró-ativas. O OSSEC realiza operações de Analise de Logs, Detecção de rootkits , integridade de Sistemas, checagem de integridade, alertas e resposta ativa (resposta em tempo real). Ele possui três métodos de funcionamento: a) Local - apenas na maquina onde está instalado:no modo standalone o host funciona como cliente e servidor, com uma lógica de processos mais simples, já que não necessita de comunicação com o servidor, porém com as características mini mi nima mass de fun funcion cionam amen ento to,, cump cumpri rind ndoo toda todass as func funcio iona nali lida dade dess de monitoramento. monitoramento. Este modo é útil para servidores isolados isolados ou em ambientes onde existem restrições de comunicação. A desvantagem deste modelo é que todos os registros ficam no servidor no qual precisamos fazer a análise forense, mas caso o servidor tenha sido comprometido, tais registros naturalmente inspiram pouca confiança; b) Agente Agente - onde onde func funcion ionaa como como clie cliente nte,, envia enviando ndo todas todas as informa informaçõe çõess para para o servidor processar e analisar. Serve para centralização dos logs no servidor 13 http//:www.ossec.org 80
central de logs, esse sendo monitorado pelo OSSEC. A comunicação entre agente e servidor é feita através de mensagens UDP. Para garantir a confiabilidade os pacotes são criptografados mediante a uma chave simétrica e única, gerada pelo servidor para cada host cliente. Os agentes são importantes pois podem ser
adici adiciona onados dos em estaç estaçõe õess com usuári usuários os leig leigos os (estaç (estaçõe õess Win/L Win/Linu inux) x) e em servidores; c) Servidor - onde analisa e une os logs e informes de vários agentes. tende a centralizar múltiplos pontos de gerenciamento de logs, em um único ponto de analise e alertas. Nesta configuração também é possível que o servidor receba as mensagens de um servidor Syslog remoto para analisar. A figura 3.5 exibe o fluxo fluxo de um ambient ambientee cliente cliente-serv -servidor, idor,usan usando do agentes agentes e a centrali centralizaçã zaçãoo de registros em um servidor OSSEC.
Figura 3.5. Fluxo do ambiente cliente-servidor OSSEC usando agentes.
A comu comuni nica caçã çãoo entr entree agen agente tess e serv servid idor or pode pode ser ser feit feitoo via via plain modo do plain text text ou mo criptografado, com gerenciamento próprio de chaves do OSSEC. O Ossec suporta os vários tipos de logs como Unix pam, Unix telnetd , sshd (OpenSSH) , Proftpd, Samba, Su, Sudo, Solaris ftpd, Imapd and pop3d, Horde imp, vsftpd, Named (bind), Postfix, Pure-ftpd, Sendmai l, Iptables firewall, Solais ipfilter firewall , AIX ipsec/ firewall, firewall, Netscreen firewall, Snor t IDS, Apache web server (access log and error log) , IIS web server, Squid proxy, Windows event logs, Generic unix authentiction (adduser, logins , etc).
Outra funcionalidade interessante do Ossec é o detector de rootkits ( syscheckd ). Este syscheckd ). scanner utiliza duas metodologias para identificar rootkits :
81
Identificação baseada em assinaturas;
Identificação baseada em anomalias.
Para a identificação baseada em assinaturas utiliza dois arquivos onde são detalhadas as características únicas de várias tipos de rootkits e trojans horses , por exemplo (lista) A lista a seguir, exibe algumas assinaturas de rootkits conhecidos: # adore Worm dev/.shit/red.tgz ! Adore Worm ::/rootkits/adorew.php usr/lib/libt ! Adore Worm ::/rootkits/adorew.php usr/bin/adore ! Adore Worm ::/rootkits/adorew.php */klogd.o ! Adore Worm ::/rootkits/adorew.php */red.tar ! Adore Worm ::/rootkits/adorew.php
A identifica identificação ção baseada baseada em anomalia anomaliass uti utiliza liza um enfoque enfoque mais mais intelig inteligente ente,, pois não busca rootkits conhecidos, mas por busca detectar anomalias no sistema. As anomalias podem ser:
Inspecionar Inspecionar o diretório /dev, neste caso só deveriam existir arquivos de dispositivos e scripts Makedev;
Procurar no System Files por arquivos com anomalias de permissão, por exemplo, arquivos arquivos cujo propriet proprietário ário seja root mas mas que tenha tenha permi permissã ssãoo de escrit escritaa para para "outros", ou arquivos com suid , diretórios escondidos, etc;
Buscar processos escondidos, utilizando as funções getsuid () () e kill () () para fazer uma lista de pid’s que estão sendo usados para depois comparar esta lista com a saida do comando ps. Se houverem houverem diferenças diferenças existe a possibilidade possibilidade de um rootki t a nível de kernel ou uma versão modificada do comando ps;
Buscar portas escondidas mediante mediante o uso do comando bind () () contra cada porta udp e tcp;
Revisar todas as interfaces de rede em busca de interfaces em modo promiscuo e comparar com a lista de comando ipconfig .
82
O OSSEC pode ser instalado em diversos Sistemas Operacionais, dentre os principais, destacam-se:
Slackware 10.1 and 10.2;
Open e FreeBSD;
Fedora e RedHat
Ubuntu 5.04, 5.10 and 6.06;
MacOSX 10
Debian 3.1 Sarge
Suse ES 9
Windows XP/2000 (agent only)
O OS OSSE SEC C HIDS HIDS tent tentaa dimi diminu nuir ir o temp tempoo dema demand ndad adoo pelo pelo admi admini nist stra rado dorr com com o monitoramento monitoramento do sistema, avisando o administrador de ataques, mudança ou alguma ameaça no sistema, sem a necessidade de analise total dos logs, em tempo real. Analise de logs, segurança local na maquina, entre outros fatores atualmente demanda muito tempo, coisa rara para administradores. O OSSEC tenta minimizar o impacto dessa falta de tempo, monitorando o sistema em tempo real, avisando o administrador de ataques, mudança ou alguma ameaça no sistema, sem a necessidade de analise total dos logs, valendo lembrar que analise de logs sempre será importante, independente de ferramentas auxiliares.
83
4 DETECÇÃO DE INTRUSÃO BASEADA EM REDE (NIDS)
Os ataques ataques às redes redes de computad computadores ores frequen frequenteme temente nte são antecipado antecipadoss por fazes fazes de reconh reconhec ecim iment entoo e colet coletaa de infor informa maçõe çõess como como enume enumeraç ração ão e scanning; posteriormente ocorrem as tentativas de obtenção do acesso. Estas ações conduzidas por hackers (ou crackes) implicam impl icam em explorar explorar vulnerab vulnerabili ilidade dadess remotame remotamente. nte. Conseqü Conseqüente entemen mente, te, devido devido à sua natureza, estas estas atividades atividades produzem “rastros” que são passíveis passíveis de serem identificados identificados por ferramentas para detecção de intrusão baseadas em rede, ou Network IDS (NIDS). Este capítulo pretende apresentar conceitos e aplicações referentes aos NIDS abordando os seguintes aspectos: a) Conc Concei eitu tuar ar o tem temaa NIDS NIDS;; b) Classificar Classificar os tipos tipos de anomalias anomalias de de tráfego tráfego e ataques ataques às às redes de de computadores; computadores; c) Apre Aprese sent ntaar o Snort ,um ,um dos NIDS mais populares da atualidade.
4.1 IDS baseado em rede (NIDS) O NIDS é um sistema responsável pela captura pacotes pacotes de dados, analisando o tráfego de rede dos sistemas monitorados e comparando esses pacotes com um banco de dados de assinaturas. Uma assinatura é um padrão presente em um pacote que pode indicar atividades suspeitas e detectar um ou múltiplos tipos de ataques. Caso o resultado dessa comparação seja positivo, pode ser gerado um alerta e um registro que pode resultar em uma ação. Semelhante a um sniffer , este tipo de IDS coloca a interface de rede no chamado modo promíscuo, que permite “escutar”, indistintamente, indistintamente, todos os pacotes que trafegam na sub-rede 84
no qual está inserido. As fontes de informação usadas por um IDS de rede variam desde dados de gerenciamento, obtidos através de agentes SNMP, por exemplo, até pacotes de rede carregando protocolos de mais alto nível (HHTP, SMTP, SMB, etc). A análise de todas essas informações oferece subsídios aos sistemas de detecção de intrusão, agregando precisão e desempenho às suas tarefas. A maioria dos ataques, como negação de serviço, DNS Spoofing , entre outros, são dific dificilm ilment entee detec detecta tados dos por por HIDS, HIDS, o que mot motiv ivou ou o desen desenvol volvim viment entoo de ferra ferrame ment ntas as específicas que capturam e analisam pacotes de rede. Por esse motivo, a maioria dos IDS disponíveis atualmente são baseados em rede. Sua principal função é detectar ataques que seriam dificilmente dificilmente percebidos por uma ferramenta que trabalhe com dados de um único host , direcionando esforços ao tráfego de toda a rede. Características positivas dos NIDS:
Detecção de ataques externos e internos;
Moni Monito tora rame ment ntoo pode pode ser ser forn fornec ecid idoo por por mú múlt ltip iplo loss sens sensor ores es em arqu arquit itet etur uras as distribuídas;
Ataques de DoS e varredura como port scanning , IP spoofing , SYN flooding e Teardrop podem ser detectados;
Pode detectar tentativas de ataques (ataques que não tiveram resultados);
Fica mais difícil um cracker apagar seu rastro;
Impõe dificuldades para o cracker saber se existe ou não um NIDS;
Causa Causa pouco pouco imp impact actoo no desem desempen penho ho da rede rede existe existente nte,, já que os NIDS NIDS são compostos, em sua maioria, por dispositivos passivos.
Desvantagens dos NIDS:
Dificuldade em processar todos os pacotes observados em redes com alto tráfego, podendo ainda apresentar perda de pacotes em redes congestionadas;
Em redes que fazem uso de switches, mu muit itas as veze vezess não não exis existe te o recu recurs rsoo no equipamento para copiar o tráfego de todas as portas para uma porta apenas, de forma que fica difícil colocar o IDS em um ponto que capture todo o tráfego da rede;
85
Não são capazes de analisar analisar dados criptografados, criptografados, prática cada vez mais comum nas redes;
Algumas soluções possuem dificuldades em tratar tráfego fragmentado;
4.1.1 Posicionamento do sensor na rede A captura de pacotes para análise em um NIDS é realizada por um elemento de rede normalmente conhecido como sensor. Existem várias possibilidades para o posicionamento deste dispositivo na rede sendo monitorada e que influenciam diretamente na utilidade e qualidade dos resultados obtidos. A Figura 4.1 apresenta os arranjos comumente utilizados para o posicionamento de sensores em uma rede de computadores.
Figura 4.1. Posicionamento do Sensor NIDS na rede.
Na primeira forma de posicionamento, apresentada na ilustração (a) da Figura (4.1), o sensor é colocado fora dos limites de proteção do firewall , de modo que todo o tráfego destinado à rede monitorada é selecionado para a coleta de pacotes. Esta configuração permite a observação de ataques direcionados ao firewall e a recursos protegidos por este. Em contrapartida, a quantidade de dados a serem tratados é consideravelmente maior. 86
Na ilustração (b), o sensor, posicionado dentro dos limites de proteção do firewall observa apenas o tráfego permitido e destinado à rede monitorada, eliminando assim a coleta de todos os pacotes bloqueados. Desta forma, a quantidade de dados a serem tratados reduz razoavelmente. Finalmente na ilustração (c), dois sensores são posicionados: um dentro dos limites de proteção do firewall e outro fora. Além das características apresentadas para as ilustrações anteriores, anteriores, esta abordagem permite, através da comparação comparação do tráfego coletado pelos sensores em ambos os lados do firewall , validar as regras de controle deste dispositivo.
4.2 Anomalias no Tráfego de Rede Anomalias no tráfego de rede são padrões que diferem do comportamento normal do tráfego previamente observado. Através da simples análise visual, observa-se na figuras 4.2 (a) e (b), que ilustram o monitoramento efetuado no tráfego de uma determinada rede, que se o mesmo não sofrer alterações ou anomalias que afetem seu comportamento (por exemplo, cong conges esti tion onam amen ento to,, ataq ataque ues, s, falh falhas as na infr infraa-es estr trut utur ura, a, etc) etc),, em algu alguns ns caso casos, s, a sua sua representação gráfica geralmente tenderá a um comportamento semelhante em todos os dias obse observ rvad ados os,, repe repeti tind ndo-s o-see cont contin inua uame ment nte, e, pode podend ndoo ocor ocorre rerr pequ pequen enas as alte altera raçõ ções es não não acentuadas. A figura 4.2(a) representa o tráfego tráfego amostrado durante uma semana, onde observa-se este padrã padrãoo estat estatíst ístic icoo de repet repetiçã ição. o. O gráfi gráfico co segui seguint nte, e, figu figura ra 4.2(b) 4.2(b) il ilust ustra ra três três sema semanas nas consecutivas para o mesmo padrão de tráfego.
Figura 4.2(a). Exemplo de tráfego de rede sem anomalias (período de uma semana). (curva em verde: upload / curva em azul: download)
Figura 4.2(b). Exemplo de tráfego de rede sem anomalias (período de três semanas). (curva em verde: upload / curva em azul: download) 87
De acordo com [SILVA, 2007], é possível detectar o comportamento anômalo, a partir da premissa que este será notoriamente diferente de um comportamento considerado padrão, pratica praticado do usualme usualmente nte por um usuário usuário legítim legítimo. o. Desta Desta forma, forma, podem podem ser impl implemen ementado tadoss modelos estatísticos de detecção de anomalias, ou baseados em regras (assinaturas) que detectam o uso indevido. Anomalias em redes, portanto, apresentam-se como mudanças significantes significantes e pouco comuns nos padrões conhecidos de tráfego em um ou múltiplos enlaces da rede. rede. O diag diagnós nósti tico co dessa dessass anoma anomali lias as envolv envolvee a amost amostrag ragem em de tráfe tráfego, go, detec detecçã ção, o, identificação e a quantificação desses fenômenos. As anomalia anomaliass podem podem represent representar, ar, entre entre outros outros fatores, fatores, indí indício cioss de ataques ataques,, eventos eventos relacionados à falha, abusos (ou mau uso) na rede, etc. Nem toda anomalia na rede, está relacionada a um ataque, mas todo tráfego suspeito deve ser monitorado e analisado. A seguir, são listadas algumas considerações em relação à necessidade de diagnosticar anomalias de rede [LAKHINA et al., 2004]:
Anomalias podem congestionar a rede e esgotar os recursos de um roteador;
Apesar de não necessariamente gerar impacto ao tráfego global da rede, algumas anomalias podem causar grande impacto para um cliente ou um usuário final;
Tão logo ocorram, os administradores de rede devem detectar as anomalias e classificá-las de modo a selecionar a resposta apropriada.
Anomalias podem compreender um vasto domínio de eventos, o qual representa o principal desafio desafio na sua detecção e classificação: classificação: de abuso a rede (por exemplo, ataques DoS, scans
e worms), falhas de equipamentos (por exemplo, interrupções), comportamento não
comum de usuários (por exemplo, exemplo, alterações bruscas bruscas sob demanda, alto volume de tráfego tráfego e uso de programas P2P) e mesmo devido a eventos novos e previamente desconhecidos. Anomalias no tráfego de rede, incluindo ataques e outros eventos suspeitos, podem ser detectadas pelos NIDS a partir de dados coletados do tráfego de rede, que são informações obtidas dos cabeçalhos e conteúdo dos pacotes de rede. Seqüestro de conexões TCP, varredura de portas, DNS spoofing , negação de serviço, dentre outros, são alguns exemplos de ataques
88
dificilmente detectados por analisadores baseados em host . Para detectar tais eventos, são necessárias ferramentas que capturam e analisam ataques direcionados a componentes de rede.
4.3 Classificação de Anomalias na Rede Um estudo feito por [ BARFORD, 2001], classificou as anomalias no tráfego de rede em quatro principais categorias: anomalias de operação da rede, ‘ flash crowd ’, ’, anomalias de medição e ataques; descritas a seguir.
4.3.1 Anomalias de Operação da Rede Identificadas visualmente, em muitos casos, através de súbitos aclives e declives no tráfego de rede da rede, alterações súbitas na taxa de bits seguidas de taxas de bits que são estáveis, em um nível diferente do padrão normal, em determinado período de tempo. Entre outros eventos, podem ser causados por: a) eventos de falhas falhas na rede (interrupção (interrupção de funcionament funcionamentoo de equipament equipamentos); os); b) a adiçã adiçãoo de novos novos equi equipam pamen entos tos ( traffic shape ou modelagem de tráfego); c) configu configuraçã raçãoo inadequad inadequadaa temporária temporária de disposi dispositivo tivos; s; d) definiçã definiçãoo de limites limites de taxas taxas podem resultar resultar em eventos eventos que geram difere diferença nçass significativas no comportamento da rede.
4.3.2 Anomalias ‘Flash Crowd’ Em geral, estão relacionadas a eventos como o lançamento de uma nova versão do software, resultando no aumento do acesso a um site Web, por exemplo, devido a algum tipo de publici publicidade dade naciona nacional.l. O comporta comportament mentoo flash identif ific icado ado por um rápido rápido flash crowd crowd é ident crescimento nos fluxos de um determinado tipo tráfego (por exemplo, fluxos FTP/HTTP), esgotando conseqüentemente os recursos de comunicação do site web (semelhante a um ataque DoS), ou ainda o link de comunicação, tendendo com o tempo ao retorno gradual da normalidade. Um exemplo típico de anomalia flash crowd é ilustrado na figura 4.3 a seguir, onde o fluxo de upload crescente (no sentido da rede interna para Internet) denuncia o súbito 89
aumento no acesso de um (ou vários) servidor(s) de uma determinada rede de computadores, entre 6:19h e 8:45h, congestionando conseqüentemente o link de comunicação. Anomalia Flash crowd
Figura 4.3. Anomalia Flash Crowd, detectada em um link de comunicação comunicação (curva em verde: upload / curva em azul: download )
4.3.3 Anomalias de Medição Anomalia cuja natureza não apresenta características de problemas atribuídos à infraestru estrutur turaa ou por por uso abusi abusivo vo da rede. rede. Norma Normalme lment ntee estão estão relaci relaciona onadas das a inform informaçõ ações es incorr incorreta etass repas repassad sadas as por por equip equipam ament entos os ( rotea dos parâ parâm metro etross ou roteador dores es,, switc switch, h, etc etc ) dos indicadores de rede, como: latência, throughput, perda de pacotes; ou seja, o equipamento funciona corretamente mas apresenta informações não condizentes com a realidade, devido a um problema do software de gerência ou na coleta de dados.
4.3.4 Ataques Ataques em redes de computadores compreendem um “conjunto de ações ilícitas que tentam tentam comprome comprometer ter a integrid integridade, ade, confide confidencia ncialida lidade, de, ou disponib disponibili ilidade dade de recursos recursos na rede”, independente do sucesso ou não destas ações. Regras de privacidade podem ser quebra quebrada dass devid devidoo a um ataq ataque, ue, compro compromet meten endo do a confi confiden dencia ciali lida dade de da inform informaç ação. ão. Informações podem ser alteradas, modificando a integridade dos dados e a infra-estrutura de rede pode tornar-se indisponível e não confiável.
4.3.4.1 Classificação de Ataques Ataques a Redes Violações às propriedades de segurança de dados e sistemas computacionais em rede podem ser descritas como:
90
a) Impedim Impedimento ento de acesso acesso a recursos recursos e sistemas sistemas em rede rede por um usuário, usuário, humano humano ou máquina, autorizado (violação de disponibilidade); b) Acess Acessoo aos dados dados sem sem autori autoriza zaçã çãoo (implí (implícit citaa ou explí explícit cita) a) do propri propriet etári árioo da informação (violação de confidencialidade); c) Alt Altera eraçã çãoo il ileg egal al do estad estadoo do sistem sistemaa ou de dados dados residi residindo ndo ou trafe trafega gando ndo no sistema (violação de integridade). A grande maioria dos ataques bem sucedidos ocorre devido a vulnerabilidades ou falhas pote potenci nciai aiss existe existente ntess nos siste sistema mass em rede, rede, que podem podem estar estar relac relacion ionada adass com com um umaa configuração incorreta do sistema ou falha no desenvolvimento do software. Existem diferentes classificações para ataques. Estes podem ser classificados quanto à sua origem, ao seu alvo e quanto aos seus objetivos. Quanto à origem, os ataques podem ser externos ou internos: a) Ataques externos: externos: são são lançados lançados de fora fora da rede rede por um um atacante atacante que tenta acessar acessar a rede para obter informações, divertir-se ou tornar indisponíveis determinados serviços da rede alvo; b) Ataque Ataquess int intern ernos: os: são aque aquele less prove proveni nient entes es de usuári usuários os int intern ernos os à rede rede que abusam de seus direitos e privilégios para realizar atividades não autorizadas e para obter acesso não autorizado a recursos e sistemas em rede. Uma classificação de ataques com base em alvo pode ser descrita como: a) Ataques Ataques à rede: rede: visam impedir impedir os usuário usuárioss de utilizar utilizar recursos recursos de rede rede ou tornar tornar os serviços de rede indisponíveis. Podem também monitorar o tráfego de rede para coletar informações convenientes para ações futuras; b) Ataques Ataques a sistemas sistemas:: o propósit propósitoo destes ataque ataquess é comprometer comprometer o sistema, sistema, bem como modificar informações ou remover arquivos críticos, tais como arquivos de senhas e de configuração do sistema. Neste contexto, encontram-se os ataques
91
que que visa visam m à mo modi difi fica caçã çãoo de pági página nass web (deface) para para depr deprec ecia iaçã çãoo ou ridicularização da imagem de empresas. Quanto a seus objetivos, os ataques mais freqüentes a redes de computadores podem ser classificados classificados como negação de serviço ou DoS; DoS; varredura ou Probing ; obtenção de acesso, também conhecido por U2R (User to Root ) e R2L ( Remote Remote to Local ). Estes ataques podem ser lançados no local ou remotamente, através de uma conexão de rede, sem qualquer conta de usuário ou acesso privilegiado ao sistema alvo, mas utilizando apenas o acesso publico concedido pelo sistema alvo. Uma estratégia típica utilizada pelos atacantes é disparar um ataque utilizando uma conta de usuário sem privilégio para ganhar acesso inicial ao sistema. Uma vez obtido o acesso ao sistema, o atacante utiliza conta de usuário autorizado para tentar elevar seus privilégios e obter controle completo do alvo. A maioria dos ataques é executada através de scripts , conhecidos como exploits , os quais automatizam os processos de tentativa de conexões em varias portas, enviando pacotes “fabricados” ou com códigos para consultas a bases de dados de sistemas, entre outros. Certos atacantes realizam também técnicas de falsificação de endereço ( spooffing ) de origem dos pacotes. Deste modo, o atacante consegue esconder sua origem ou até mesmo se passar por outra máquina conseguindo um acesso privilegiado.
4.3.4.2 Ataques de Negação de Serviço DoS O principal objetivo deste tipo de ataque é tentar reduzir o desempenho ou tornar inoperante um serviço, estação servidora ou equipamento ligado em rede. Alguns exemplos conhecidos de ataques desta categoria são: Apache2 , Mail bomb, SYN Flood , Ping of death, Smurf , Syslogd , Teardrop
e Udpstorm . Algumas estratégias utilizadas nos ataques DoS,
incluem: a) Inu Inundação ção ( Flood Flood ) visando impedir que usuários legítimos façam uso dela; b) Impedir Impedir ou romper romper a conexão conexão entre entre duas máquina máquinass visando visando impedir impedir o acesso acesso a um serviço; c) Impedir Impedir ou negar negar o acesso acesso de de um determi determinado nado serviç serviçoo ou site. site. 92
Os três tipos principais de ataques de negação de serviço são: a) Exploraçã Exploraçãoo de falhas: falhas: exploram vulnerabilidades no software do sistema alvo causando falhas em seu processamento ou extinguindo seus recursos; b) Flooding : envi enviam am a um sist sistem emaa mais mais info inform rmaç ação ão do que que ele ele é capa capazz de manipular, bloqueando assim qualquer tipo de uso deste recurso através da obstrução do canal de comunicação, ou esgotamento de recursos como memória e processamento;A figura 4.4 a seguir ilustra este conceito.
Serviço interrompido Figura 4.4. Ataque de Negação Negação de Serviço – DoS.
c) Ataques de negação de serviço distribuído ( Distributed DoS – DdoS): DdoS): são inun inunda daçõ ções es de ataq ataque uess DoS DoS onde onde vári vários os comp comput utad ador ores es efet efetua uam m ataq ataque uess simultaneamente, conforme ilustrado na figura 4.5 a seguir.
Serviço interrompido
Figura 4.5. Ataque de Negação de Serviço Serviço Distribuído - DDoS.
Neste tipo de ataque é realizada uma sobrecarga ou inundação de pacotes contra um determinado serviço, host ou rede, gerando muitas vezes uma quantidade de dados global
93
maior que a red rede ou host pode pode supo suport rtar ar,, torn tornan ando do a rede rede ou serv serviç iços os inst instáv ávei eiss e conseqüentemente prejudicando o seu desempenho. Estes ataques possuem uma estrutura previamente montada, onde diversas máquinas lançam um ataque sobre uma vítima. É comum o uso de várias “máquinas zumbis” para que o número de requisições de conexão ao servidor seja muito maior (figura 4.6) do que o produzido por uma única máquina. São ataques mais eficientes e complexos e difíceis de bloquear, uma vez que são originados de vários computadores atacando inúmeras portas. Atacante Mestre
Mestre
Zumbi Zumbi Zumbi Zumbi
Mestre
Zumbi Zumbi Zumbi Zumbi Zumbi Zumbi Zumbi Zumbi
Site Alvo Figura 4.6. Sistemática de um ataque ataque DDoS
4.3.4.2.1 Tipos de ataques DoS Esta seção é dedicada a enumerar e descrever os tipos de ataques DoS conhecidos. a) Smurf: ataqu ataquee que util utiliza iza de redes redes que permi permita tam m tráfe tráfego go na int interf erfac acee de broadcast .
O ataque consiste na falsificação do endereço de origem de um
pacote pacote ICMP echo request fazend ndoo com com que que um umaa gran grande de quan quanti tida dade de de request , faze respostas, pacotes ICMP echo reply , sejam direcionadas ao endereço que foi falsificado; b) UDP Storm: a exemplo do ataque anterior o objetivo é congestionar a rede e, por conseguinte, diminuir a largura de banda da mesma. Ao se estabelecer uma conexão entre dois serviços UDP, por exemplo, echo/UDP e chargen/UDP, serão gerados uma grande quantidade de pacotes na rede até que ocorra uma intervenção externa, como, por exemplo, reiniciar o serviço inetd;
94
c) SYN Flood: Flood: este ataque explora as limitações do processo inicial de uma conexão denominado handshake , procedimento que, através do envio de pacotes TCP com os flags SYN e ACK habilitados entre cliente e servidor, permite efetuar o inicio de uma conexão a um serviço. O objetivo é exceder os limites defini definidos dos para para o número número de conex conexões ões que podem podem ser ser estabe estabele leci cidas das à um determinado serviço. Isso faz com que não seja possível estabelecer quaisquer outras conexões a esse serviço até que o número de conexões em espera seja reduzido. O problema mais crítico que envolve esse tipo de ataque e os IDSs é a alta probabilidade de falsos positivos, uma vez que nem todas as tentativas de conexões em um pequeno intervalo intervalo de tempo, podem ser consideradas consideradas tentativas de SYN Flood; d) Teardrop: ao contrário do ataque denominado denominado Smurf , que utiliza a “força bruta” para gerar o ataque, utilizando-se de falhas em diferentes implementações da pil pilha ha TCP/ TCP/IP IP.. Este Este ataq ataque ue expl explor oraa a inca incapa paci cida dade de de algu alguns ns sist sistem emas as operac operacion ionai aiss de recons reconsti titui tuirr pacote pacotess IP frag fragme menta ntados dos.. Como Como resul resultad tado, o, os sis sistema emas sus suscetí etíveis a esse ataque que têm o seu func funciionam namento nto (S. (S.O) comprometido; e) ICMP Fragmentation: para ser transmitido entre redes locais, um pacote IP deve ser fragmentado toda vez que exceder o limite do maior quadro que uma determinada rede local é capaz de transmitir ( Maximum Transfer Unit - MTU). Nesse caso, é necessário dividir o pacote IP em fragmentos menores que a MTU. O protocolo ICMP é um protocolo auxiliar ao IP, que carrega informações de controle e diagnóstico, informando falhas como TTL do pacote IP excedido, erros erros de fragme fragment ntaçã açãoo e rotead roteadore oress conge congesti stiona onados dos.. O ataqu ataquee em quest questão ão consiste no envio de um pacote ICMP mal formado para uma determinada estação, fazendo com que a estação de destino ao receber este pacote reduza a MTU desnecessariamente. Isto faz com que a conexão entre essas duas estações fique extremamente lenta. Além disso, em função da quantidade de pacotes enviados uma razoável quantidade da largura de banda é consumida.
95
4.3.4.2.2 Ferramentas para ataque DoS Diversos tipos ferramentas de DoS foram desenvolvidos nos últimos anos. A Tabela 4.1 exibe algumas das principais ferramentas e respectivos ataques de DoS conhecidos. A maioria dessas ferramentas podem ser encontradas em sites na Internet como o Packet Storm14. Ferramentas
Tipo de tráfego gerado
Smurf
inundação de pacotes ICMP echo-reply
Trinoo
inundação de datagramas UDP em portas aleatórias
TFN e TFN2K
inundação de pacotes ICMP, UDM e TCP syn ( flag flag syn setado); pacotes errôneos; smurf
TFN2K ( ping ping flood )
inundação pacotes ICMP e smurf
TFN2K Targa 3
Pacotes IP inválidos
stacheldraht v.2.666
Inundaçã ação de pa pacotes ICM ICMP, UDP UDP, TCP TCP syn syn (fla (flagg sy syn seta setaddo), TCP null (nenhum flag setado), TCP ack (flag ack setado) e smurf
Shaft
Inundação de pacotes ICMP, UDP, TCP syn
mstream
inundação de pacotes TCP ack (flag ack setado) Tabela 4.1. Ferramentas para ataque DoS e tipo de tráfego respectivo.
4.3.4.3 Ataques de Varredura ( Probing ) Realizam varredura de uma rede ou de sistemas-alvo, através do envio de diferentes tipos de pacot pacotes es de rede, rede, em busca busca de vul vulne nerab rabil ilida idades des e inform informaçõ ações es de int intere eresse sse para para o planejamento planejamento de ataques. Tais informações são usadas para compreender compreender as características características de funci funciona oname ment ntoo da rede, rede, inclui incluindo ndo a sua top topolo ologia gia,, os hosts ativos ativos e suas suas respe respect ctiv ivas as confi configu guraç raçõe õess de softw software are,, inclu incluind indoo sistem sistemaa opera operaci ciona onal,l, versõe versõess de servi serviços ços ativ ativos, os, possíveis vulnerabilidades, etc. Também denominados ataques de sondagem (ou “ Probing ”), ”), estes não penetram ou comp compro rome mete tem m os sist sistem emas as.. Em gera geral, l, este estess ataq ataque uess poss possue uem m vári várias as deno denomi mina naçõ ções es,, dependen dependendo do das atividad atividades es que executa executam: m: network ou port port scanner scannerss, port ou network mappers ou vulnerability scanners . A seguir, são descritos os tipos
mais relevantes de ataques
de varredura: 14 http:www.packetstormsecurity.com 96
a) TCP connect : a cha chamada de sist sisteema connect (), (), prov provid idaa pelo pelo sist sistem emaa operacional, é usada para estabelecer conexão com um conjunto de portas na máquina alvo. Caso a porta esteja no estado listening , connect irá estabelecer umaa cone um conexã xão; o; caso caso cont contrá rári rioo o usuá usuári rioo rece recebe berá rá a mens mensag agem em de port portaa inalcançável; b) SYN Scan: técnica conhecida como “ half-open scanning ” por não estabelecer uma conexão TCP completa. O primeiro pacote a ser enviado está com o flag SYN configurado para estabelecer uma conexão real e, portanto, deve aguardar uma resposta da estação para a qual o pacote foi enviado. Ao receber uma resposta com os flags SYN/ACK ligados isto indica que a porta está no estado listening .
Já uma resposta com o flag RST ligado é uma indicação que a porta
está fechada. Se o flag SYN/ACK é recebido, o flag RST é imediatamente enviado para encerrar a conexão; c) ACK Scan: este tipo de sondagem envia pacotes com o flag ACK para uma porta específica. Caso seja retornado um pacote TCP com flag RST ligado, a por porta ta é clas classi sifi fica cada da como como "não "não filt filtra rada da"; "; caso caso seja seja reto retorn rnad adoo um ICMP ICMP unreachable, a porta é classificada como "filtrada"; d) Window Scan Scan: tipo de scan é muito similar ao ACK scan, no entanto é possível detec detecta tarr porta portass abert abertas as mesmo mesmo quando quando essas essas estão estão sendo sendo filt filtrad radas as por um firewall. Isso ocorre devido ao tamanho da janela TCP existentes em diversos sistemas operacionais operacionais (por exemplo: FreeBSD, SunOS e OpenVMS); e) FIN Scan : consiste em enviar um pacote com o flag FIN habilitado para uma determinada determinada porta. Segundo a RFC 793 as portas que estiverem fechadas fechadas devem responder com um pacote TCP com o flag RST ligado, enquanto que as portas que estiverem abertas devem ignorar o pacote em questão; f) UDP Scan : método usado para determinar determinar quais as portas UDP estão abertas. A técnica implica em enviar 0 bytes de dados de pacotes UDP para cada porta da estação alvo. Caso a resposta seja uma mensagem ICMP port unreachable unreachable então a porta está fechada;
97
g) TCP Ping: Ping: através desta técnica é possível determinar quais as estações que estão ativas no momento. Para tal, ao invés de enviar pacotes ICMP echo request
e agua aguarda rdarr pelas pelas respos resposta tass são são envia enviados dos pacot pacotes es com flag ACK
habilitado habilitado por toda a rede. r ede. Estações que estiverem ligadas devem responder com um pacote TCP com o flag RST habilitado; h) TCP fragmentation fragmentation scanning : esta forma de sondagem utiliza várias outras técnicas de varredura de portas tais como SYN scan, FIN scan, etc. Os pacotes enviados a estação alvo são fragmentados, ou seja, o cabeçalho TCP é dividido em vários pacotes. Com isso, os IDSs que não possuem mecanismos eficientes de remontagem de pacotes não conseguem conseguem identificar essa forma de ataque, pois os diversos datagramas enviados individualmente não correspondem a uma ameaça; i) Identificação Remota de Sistemas Operacionais ( fingerprinting ): a fim de identificar o sistema operacional instalado em uma determinada estação, se utiliza um conjunto de técnicas que detectam características da implementação do protocolo TCP/IP do sistema operacional que está instalado na estação alvo. Uma vez que essas características tenham sido identificadas é realizada uma comparação dessas informações com a base de dados da ferramenta de ataque, a fim de definir qual o sistema operacional da estação em questão. Embora seja difícil evitar que alguém lance uma sonda de varredura de portas contra um sistema em particular, a exposição pode ser minimizada através da desativação de todos os serviços desnecessários.
4.3.4.4 Ataques de Penetração Os ataques de penetração, conhecidos como ataques R2L e U2R, realizam aquisição ou altera alteração ção não não autori autoriza zada da dos dos privi privilég légios ios,, recurs recursos os ou dados dados do siste sistema ma,, viola violando ndo as propriedades de integridade e controle dos recursos e dados. Com estes ataques, pode-se ganhar controle de um sistema ao explorar uma variedade de falhas de software.
98
a) Ataque R2L ( Remote Remote to Local ): ocorre quando um usuário remotamente remotamente realiza um acesso não autorizado a uma maquina e consegue privilégios de usuário local. Neste tipo de ataque, são enviados pacotes para uma maquina na rede na qual qual o atac atacan ante te não não tem tem cont contaa e, em segu seguid ida, a, são são expl explor orad adas as algu alguma mass vulnerabilidades desta máquina que permitem a obtenção de acesso local como se fosse um usuário daquela maquina; b) Ataque U2R (User to Root ): ocorre quando um atacante inicia a exploração do host
com com um umaa cont contaa de usuá usuári rioo norm normal al do sist sistem emaa e cons conseg egue ue expl explor orar ar
vulnerabilidades deste para ganhar acesso de root ao sistema.
4.4 O NIDS Snort 15 Snort é
uma ferramenta NIDS Open Source originalmente projetado para ambientes de
rede com tráfego moderado. É baseado em uma linguagem orientada a regras, capaz de executar análises de tráfego e registros de pacotes em tempo real, combinando os benefícios dos métodos de inspeção baseados em assinatura de ataques, protocolo e anomalia. Sua popularidade deve-se à flexibilidade nas configurações de regras, em constante atualização, simplicidade e eficiência, o que o tornou também um padrão “de fato” para a indústria. O Snort surgiu em 1998 de um projeto chamado APE, desenvolvido por Marty Roesch. Marty, que estava insatisfeito com algumas características do programa tcpdump, um software desenvolvido desenvolvido para captura de pacotes, cujo objetivo é auxiliar a análise do tráfego do TCP/IP. Na época do seu lançamento, o APE possuía mais recursos e funcionalidades que o tcpdump. No mesmo ano, Marty modificou o projeto, utilizando a denominação Snort . A primeira versão funcionava apenas como um software de captura de pacotes. Os primeiros testes de Marty com o Snort incluíam o monitoramento de sua conexão de modem a cabo e a depuração de aplicativos de rede. Em 1999, foi introduzido no Snort a primeira análise baseada em assinatura, adicionando a este software a funcionalidade de detecção de intrusão.
15 http:www.snort.org 99
Em 22 de dezembro de 1998, o Snort foi disponibilizado no site Packet Storm pela primeira vez. Naquela época, o Snort possuía cerca de 1600 linhas de código e um total de dois arquivos. Mais tarde o projeto foi ampliado e portado para outras plataformas, como sistemas Linux, FreeBSD, NetBSD, OpenBSD, Windows, Sparc Solarios, Power PC, MacOS X e PA-RISC HP-UX, e nas plataformas de hardware Intel, RISC, PowerPC e Sparc. O fato de ser disponibilizado em Open Source permitiu ao uso do Snort sem qualquer preocupação de aquisição licenças de softwares proprietários, possibilitando também aos utilizadores desenvolver as suas próprias regras para detecção de ataques. Tal fato permitiu que, ao longo do tempo, inúmeras correções e melhorias fossem incorporadas ao Snort , o que ainda acontece atualmente.
4.4.1 Funcionamento do Snort Quando um pacote chega até uma interface de rede, ele passa por uma série de estágios até que se possa gerar um alerta, log ou descarte. Os estágios de processamento são antecipados pela fase de captura de pacotes. Para funcionar corretamente, o Snort necessita de um mecanismo que capture o tráfego à medida que ele passe pela rede. Este mecanismo é a biblioteca Libpcap, responsável por colocar a placa de rede no modo de operação promíscuo. A biblioteca Libpcap foi escrita como parte do tcpdump.
Esta biblioteca permite que programadores escrevam códigos para receber pacotes
da camada de link de dados, permitindo o desenvolvimento de programas para decodificar, exibir ou registrar pacotes. Assim que os pacotes chegam da placa de rede e são repassados para o mecanismo de decodificação do Snort pela pela biblioteca biblioteca Libpcap, o Snort precisa precisa decodificar decodificar os pacotes brutos da camada de link de dados. O decodificador de pacotes é responsável por implementar esta função. Nesta etapa, o Snort poderá, então, assumir três modalidades de funcionamento, descritas a seguir: a) Sniffer : esta modalidade simplesmente captura os pacotes e exibe continuamente continuamente as informações informações no monitor. (ex: ./snort ./snort -vde);
100
b) Packet codifica icador dor fará fará com que os dados dados sejam sejam formata formatados dos em Packet logger logger : codif ASCI AS CII3 I388 ou então ntão no form format atoo biná binári rioo e arqu arquiv ivad ados os no disc discoo rígi rígido do (ex: ./snort -dev -l ./log); c) Network Network intrusio intrusion n detecti detection on system system: Esta modalidade é a mais complexa e versátil, permitindo que o Snort analise o tráfego da rede de encontro a regras definidas pelo usuário, executando diversas ações baseadas em suas regras. (ex: ./snort -c /etc/snort/snort.conf /etc/snort/snort.conf -i eth0 -D). Após a decodificação de pacotes, os dados são então enviados para os pré-processadores que estiverem ativos, conforme ilustrado na figura 4.7 a seguir. Os pré-processadore pré-processadoress efetuam ajustes e reagrupamentos nos pacotes para que as regras sejam aplicadas de uma forma mais otimi oti mizad zada.. a.. Poste Posterio riorme rment ntee os dados dados passa passam m para para o sistem sistemaa de detec detecção ção de assin assinat atura urass responsável responsável pela comparação comparação dos dados com o banco de dados de regras pré-estabelecidas pré-estabelecidas no arquivo de configuração do Snort .
Figura 4.7. Fluxo de funcionamento do Snort
Ocorrendo sucesso na comparação das informações, outros componentes (módulos de saída) irão gerar alertas e registrar as ocorrências em arquivos de logs. Caso contrário o pacote será descartado.
101
4.4.2 Componentes do Snort O Snort possui uma arquitetura modular, ou seja, é dividido em componentes que trabalham em conjunto na captura de pacotes, detecção de ataques e no registro de alertas. A figura 4.8 a seguir apresenta a pilha funcional do Snort .
Figura 4.8. Pilha funcional do Snort
Esta seção é dedicada a descrição mais detalhada a respeito destes módulos funcionais, destacando a biblioteca libpcap , o decodificador de pacotes, pré-processadores, ferramenta ferramenta de detecção e outros componentes; descritos a seguir. a) Libpcap : O Snort util utiliza iza a bibl bibliot ioteca eca de funções funções libpcap , respon responsáv sável el por capturar tráfego de rede de baixo nível, como dados do cabeçalho dos pacotes TCP, UDP e ICMP (em nível de Transporte), IP (em nível de Rede) e Ethernet (em nível de Enlace); b) Decodificador de pacotes: pacotes : neste estágio é possível determinar qual protocolo está sendo utilizado em um determinado pacote. Assim, é possível comparar as informações com regras pré-estabelecidas referentes àquele protocolo. É possível gerar alertas de cabeçalhos incompletos ou mal formados, com seu conteúdo acima do normal, opções incomuns ou incorretas, dentre outros; c) Pré-pro Pré-process cessador adores es ( Pre-processors ): são com omppone onente ntes ou plug-ins que organizam ou modificam pacotes de dados antes que o sistema de detecção realize alguma operação caso um determinado pacote esteja sendo utilizado por 102
algum intruso. Alguns pré-processadores efetuam detecção por anomalia em cabeçalhos de pacotes e geração de alertas. Os pré-processadores também podem ser utilizados para desfragmentar pacotes. Quando uma grande fatia de dados é transferida transferida para um host , o pacote é normalmente fragmentado; d) Mecanismos de detecção: detecção : é o componente do Snort que manipula os dados do decodificador de pacotes ou do pré-processador e os compara com as regras. Para Para que que isso isso seja seja poss possív ível el,, prim primei eiro ro,, a ferr ferram amen enta ta de dete detecç cção ão proc procur uraa determinar qual conjunto de regras deve ser utilizada para comparação com o pacote. As regras estão divididas primeiramente por protocolos, TCP, UDP, ICMP ou IP. E então por características dos protocolos. Uma vez determinado o conjunto de regras, a ferramenta de detecção segue os padrões estabelecidos em cada regra. A primeira regra da lista a combinar com a informação do pacote é a primeira a disparar. Por padrão o Snort dispara o alerta apenas uma vez a cada pacote mas o Snort também é capaz de gerar alertas depois da ocorrência de um certo número de combinações bem sucedidas, dentro de um determinado período de tempo; e) Subsistema de resposta: resposta : Após as regras terem sido comparadas, entram em ação os componentes responsáveis por gerar alertas e logs. O mecanismo de log será responsável por registrar os pacotes que dispararam as regras. O mecanismo mecanismo de alerta é utilizado para notificar o administrador sobre o problema emergente. Da mesma forma que os pré-processadores pré-processadores essas funções são todas configuradas configuradas no arquivo de configuração do Snort; f) Módu Módulo loss de saíd saídaa (Output Output Modules Modules): basic basicam ament ente, e, os mó módul dulos os de saída saída controlam os tipos de saída gerados pelo sistema de logs e alertas. Dependendo da configuração do Snort , os módulos de saída podem realizar o log de alertas para o diretório padrão de logs do Snort , ou para outro formato de arquivo, como XML (eXtensible Markup Language ), ou para um banco de dados.
103
4.5 Sistemas de Prevenção de Intrusão (IPS) Resposta ativa pode ser definida como uma reconfiguração dinâmica ou alteração nos mecanismos que controlam o acesso a rede ou sessões. Quando se fala em alterar pacotes com o objetivo de anular ataques que estão acontecendo a dispositivos internos, está se falando de IPS ( Intrusion Intrusion Prevention System ). Em outras palavras, o IPS é posto em linha , ou no caminho do tráfego, e evita que o ataque chegue chegue até o sistema sistema alvo, respondendo respondendo automaticamente automaticamente a uma ameaça tentando minimizá-la ou, melhor ainda, contê-la completamente. Tudo isso sem a interferência de um administrador. A figura 4.9 ilustra este conceito conceito e exibe o posicionamento de um sistema IPS em relação ao tráfego. Nesta figura outros sensores distribuídos na rede também podem gerar alertas auxiliar o IPS na criação de regras através do correlacionamento de eventos, diminuindo assim a chance de falso positivos.
Figura 4.9. Posicionamento do IPS e sensores Snort em uma rede de computadores.
Em geral, todo IPS é um IDS, a diferença é que o IPS toma uma ação quando detecta algum ataque. Exemplos destas ações são: enganar conexões TCP, finalizando-as em ambos os sentidos ao se perceber que um possível ataque está a caminho; enviar pacotes ICMP, num esforço de convencer o invasor de que a máquina alvo está fora do ar e reconfigurar firewalls ou routers que estão no caminho, para bloquear o tráfego. Alg Alguns IPS IPS são são capaz pazes inclusi usive de dispa ispara rarr out outros ros soft oftware ares como, por exemplo, nameserver, lookups, nmap ou traceroutes, com a intenção de buscar informações sobre o atacante. Com isso, é possível ter uma certa automação e o administrador de sistema
104
não precisa estar atento todo o tempo ao que está se passando pela rede. Em contrapartida, a configuração incorreta do mesmo poderá gerar sérias conseqüências. De maneira geral, há quatro diferentes estratégias para respostas ativas baseadas na rede, cada uma delas correspondendo a uma camada diferente do protocolo, são elas: link de dados; rede; transporte e aplicação. No nível de link de dados, é possível desabilitar a porta do swicth por onde a informação (ataque) é transportado. No nível de rede é possível alterar alguma regra no firewall ou router . Bloqueando todos os pacotes de ou para o endereço do invasor. No nível de transporte, é possí possíve vell final finaliza izarr conexõ conexões es utili utiliza zando ndo os protoc protocolo oloss TCP (TCP (TCP FIN) FIN) ou encam encamin inhar har mensagens mensagens de host inatingível utilizando o ICMP. E no nível de aplicação, é possível alterar os dados do pacote individualmente. Snortsam 16 e o Guardian 17 são plug-ins de saída para o Snort que têm a capacidade de gerar
regras de firewall , bloqueando tentativas de invasão em tempo real. O Snortsam funciona como um agente de software e fornece uma ligação entre a detecção de uma exploração e a configuração de um firewall para bloquear o endereço IP de origem do ataque. O Guardian é uma ferramenta que tem a capacidade de ler os logs do Snort em tempo real e gerar regras de firewall bloqueando os IP's de origens dos ataques.
16 http:www.snortsam.net 17 http:www.chaotic.org/guardian 105
5 SIMULAÇÕES E RESULTADOS
Este capítulo apresenta os cenários utilizados para a realização das simulações de ataques, visando avaliar e discutir os resultados obtidos pela detecção de intrusão com o NIDS Snort . A intenção é aproximar os testes de um ambiente de rede sob ataque real, através do qual serão feitas análises do tráfego durante a realização das simulações. As implementações apresentadas neste capítulo utilizaram a abordagem de consolidação de um ambiente de simulação baseado em máquinas virtuais. Em vez da utilização de vários equipamentos com seus respectivos sistemas operacionais, usou-se somente um computador, abrigan abrigando do os div diversos ersos sistemas sistemas operaci operacionai onaiss (e suas suas respect respectivas ivas aplicaç aplicações ões e serviço serviços), s), hospedados em máquinas virtuais; cuja características e aplicabilidades são na seção a seguir.
5.1 Utilização de Máquinas Virtuais A utilização de máquinas virtuais está se tornando uma alternativa, tanto para ambientes de produção, quanto para teste e avaliação de software. Dentre as inúmeras vantagens, destacam-se: a) Comp Compat atib ibil ilid idad adee do soft softwa ware re:: a máqui áquina na virt virtua uall forn fornec ecee um umaa abst abstra raçã çãoo compatível de modo que todo o software escrito para ela funcione; b) Isolame Isolamento: nto: faz com com que os softwares softwares que funci funcionam onam na máquina máquina virtua virtuall e nas outras máquinas virtuais e máquinas reais estejam totalmente isolados;
106
c) Encapsul Encapsulame amento: nto: é usado usado para manipula manipularr e controla controlarr a execução execução do software software na máquina virtual; Uma das principais desvantagens na utilização de máquinas virtuais fica por conta do desempenho, desempenho, pois adicionar adicionar uma camada de software a um sistema pode afetar o desempenho desempenho do software que funciona na máquina virtual e o custo para a execução de um processo fica mais alto que em um computador real, mas os benefícios do uso de sistemas virtuais compensam esta deficiência.
5.1.1 Máquinas Virtuais A pesqu pesquisa isa e utili utiliza zação ção de máqui máquinas nas virtu virtuai aiss não não é um fato fato recen recente te,, suas suas orige origens ns remontam no final dos anos 50. As máquinas virtuais foram originalmente originalmente desenvolvidas para centralizar os sistemas de computador utilizados no ambiente VM/370 da IBM. Segundo descreve [RAITZ, 2005], uma máquina virtual (VM) pode ser definida como uma máquina abstrata, ao contrário de uma máquina emulada, emulada, que permite que a máquina real seja particionada particionada de tal modo que diversos sistemas operacionais operacionais sejam executados ao mesmo tempo. Um emulador é um software que simula um computador real, o que possibilita executar um aplicativo de uma plataforma plataforma em outra; por exemplo, um aplicativo aplicativo do Windows executando no Linux (ex: Wine). Segundo [LAUREANO, 2004], a funcionalidade e o nível de abstração de uma máquina virtual encontra-se em uma posição intermediária entre uma máquina real e um emulador, de forma que os recursos de hardware e de controle são abstraídos e usados pelas aplicações. O software de máquina virtual cria um ambiente através de um monitor de máquina virtual (Virtual Machine Monitor – VMM), também denominado “sistema operacional para sistemas operacionais”, que é um computador com seu próprio sistema operacional dentro de outro sistema operacional ( host ). ). O VMM pode criar uma ou mais máquinas virtuais sobre uma única máquina, sem que nenhuma interfira na outra e também não interfira no sistema real onde o software de máquina virtual está instalado.
107
Enquanto um emulador fornece uma camada de abstração completa entre o sistema em execução e o hardware, um VMM abstrai o hardware subjacente e controla uma ou mais máqui máquinas nas virtua virtuais is.. Cada Cada VM forne fornece ce faci facili lidad dades es para para uma apli aplicaç cação ão ou um “ sistema convidado ”
que acredita estar executando sobre um ambiente normal de acesso físico ao
hardware.
5.1.2 Tipos de máquinas virtuais Exist Existem em basic basicam ament entee duas duas aborda abordage gens ns para para a const construç rução ão de sistem sistemas as de máqui máquinas nas virtuais: o tipo I (figura 5.1a), onde o monitor de máquinas virtuais é implementado entre o hardware e os sistemas convidados, e o tipo II (figura 5.1b), onde o monitor é implementado como um processo de um sistema operacional real subjacente, denominado sistema anfitrião.
Figura 5.1. Monitor de máquinas virtuais (VMM), tipos I e II.
5.1.3 Vmware Workstation18 O VMware VMware® ® Works Workstat tatio ionn é um produt produtoo comerc comercia iall para para virtu virtual aliza ização ção de desktop e funciona como um monitor de máquinas virtuais para desenvolvimento/testes de software. Ele permi permite te que os usuári usuários os execu executem tem simult simultane aneam ament ente, e, em um úni único co PC, vário várioss siste sistema mass operac operacion ionais ais basea baseados dos em x86, x86, inclu inclusiv sivee Windo Windows, ws, Linux Linux e NetWa NetWare, re, e os respec respecti tivos vos aplicativos, por meio de máquinas virtuais portáteis interligadas em rede, sem que seja necessário particionar o disco rígido ou reinicializar a máquina (ver Figura 5.2).
18
www.vmware.c www.vmware.com/br/pdf/ws_datashe om/br/pdf/ws_datasheet_br.pdf et_br.pdf 108
Figura 5.2.Tela principal do Vmware Workstation 5
O VMware Workstation funciona criando máquinas virtuais seguras e totalmente isoladas que encap encapsul sulam am um siste sistema ma operac operacion ional al e seus seus aplic aplicat ativo ivos. s. A camada camada de virtu virtual aliza ização ção VMware mapeia os recursos físicos de hardware para os recursos da máquina virtual, de forma que cada máquina virtual tenha seus próprios componentes, como CPU, memória, discos, dispositivos de I/O etc., e seja o equivalente exato de uma máquina x86 padrão. O VMware Workstation é instalado no sistema operacional do host e oferece amplo suporte a hardware, pois herda o suporte a dispositivos dispositivos do host . Os arquivos das máquinas virtuais são armazenados em “discos virtuais” que aparecem como arquivos dentro de uma pasta no sistema anfitrião. Cada sistema operacional pode ter uma confi configu guraç ração ão de rede rede disti distinta nta,, com com seu própri próprioo endere endereço ço IP, assim assim como como out outras ras funciona funcionalida lidades. des. As máquina máquinass virtuais virtuais ficam acessíve acessíveis is na rede, rede, permitin permitindo do que se rode qualquer serviço, sem comprometer a segurança do sistema principal.
5.2 Metodologia e ambiente proposto Este trabalho tem como pressuposto a utilização de máquinas virtuais de tipo II para simulação dos ambientes de teste. A lista a seguir descreve o hardware e os softwares utilizados para a montagem do ambiente de simulação:
109
a) Software VMM (tipo II): VMWare Workstation 5; b) Sistema Sistema Anfitri Anfitrião ão para o VMM: VMM: Windows Windows XP Professi Professional onal (SP2); (SP2); c) Hard Hardwa ware re:: Micr Microc ocom ompu puta tado dorr PC-A PC-AT, T, Proc Proces essa sado dorr Inte Intell Pent Pentiu ium m 4 Dual Dual Core(3GHz), 2GB de Memória, Hard Disk 80GB (SATA); d) Sist Sistem emas as Oper Operac acio iona nais is convidados : Wind Window owss XP XP,, Wind Window owss 2003 2003 Server , Ubuntu Linux Server 8.04, Backtrack 3;. e) So Soft ftwa ware re NIDS NIDS:: Snort versão 2.8.2; f) Frontend para para consu consult ltaa dos dos alert alertas as: BASE19( Basic Basic Analy Analysi siss and Secu Securit rityy Engin e). O Snort armazena os alertas gerados na base MySQL ;
g) Download via oinkmaster 20 do conjunto de regras do SourceFire 21 (regras VRT Vulnerability Vulnerability Research Team
- Certified Certified Rules for Snort CURRENT ) e regras do
Bleeding Edge Threats22
Nas simulações foram avaliadas a capacidade de detecção, o volume de trafego detectado, a exatidão em relação a identificação do tráfego de ataque e a utilização de técnicas de evasão. A metodologia proposta é composta por etapas de: definição do ambiente de simulação (escolha dos computadores envolvidos nos testes, utilização de um monitor de máquinas virtuais, escolha Sistemas Operacionais, softwares, etc); seleção das ferramentas utilizadas nos ataques; montagem do ambiente de simulação; geração do tráfego; coleta e análise dos resultados. Os cená cenário rioss propos propostos tos foram foram conce concebid bidos os visand visandoo identi identific ficar ar o tráfe tráfego go malic malicios iosoo produzido pelas seguintes metodologias e ferramentas de ataque: a) Cenário 1:
Information Gathering : web scanning e enumeração e portas;
19 http://base.secureideas.net/ 20 http://oinkmaster.sourceforge.net/ 21 http://www.snort.org 22
http://www.bleedingthreats.net/ 110
b) b) Cen Cenári ário 2:
Vulnera Vulnerabili bility ty Assessm Assessment ent :
identif identifica icação ção de falhas/ falhas/vuln vulnerab erabilid ilidades ades de
segurança
Exploit and Attack : obtenção de acesso;
5.3 Seleção das ferramentas de ataque Essa etapa foi dedicada à pesquisa e obtenção de ferramentas que permitissem gerar o tráfego desejado desejado e implementar implementar o cenário proposto. Como o principal objetivo era a analisar a capacidade capacidade de detecção do Snort frente aos diversos ataques, foi dada preferência a escolha e ferramentas de ataque automatizado. Ao lon longo go dessa dessa etapa etapa as princi principai paiss font fontes es utili utilizad zadas as para para busca busca de ferra ferrame ment ntas as e aprendizado aprendizado sobre o uso das mesmas foram: a) Sites que disponib disponibiliz ilizam am informaç informações ões sobre sobre seguranç segurançaa e vulnerab vulnerabilid ilidades ades de sistemas computacionais; b) Artigos Artigos e periódic periódicos os publicados publicados que descreve descrevem m simulações simulações e resulta resultados dos usando estas ferramentas; c) Sit Sites es dos dos des desenv envolv olvedo edores res ( insecure.org e packetstorm.rlz.cl ). ).
5.4 Cenário 1 – Nikto e Nmap O primeiro cenário de estudo tem como proposta a execução testes com as ferramentas nmap
e nikto, a fim aferir a sensibilidade das assinaturas em relação a fase de obtenção de
info inform rmaç açõe õess ( Information ). Na fase fase Information atacante nte tent tentaa Information Gathering Information Gathering o ataca levantar o maior número informações possíveis sobre a rede alvo: hosts ativos, serviços e respectivas versões, versão dos sistema sistemas operacionais, etc; normalmente esta etapa é precu precurso rsora ra aos aos ataqu ataques es para para obt obtenç enção ão de acesso acesso,, bem como como ataqu ataques es DoS . De form formaa complementar, também serão apresentados alguns testes usando técnicas de evasão de IDS, visando demonstrar tentativas para enganar o Snort e realizar intrusões sem gerar alertas. 111
A figura 5.3 a seguir ilustra a rede de teste para o primeiro cenário, onde será avaliada a capacidade de detecção do NIDS Snort . Nesta figura são representadas as máquinas virtuais usadas usadas na simula simulaçã ção, o, endere endereço çoss IP, os Siste Sistema mass Operac Operacion ionai aiss usado usados; s; bem como como seus seus respectivos papéis no ambiente de simulação.
Figura 5.3. Cenário 1, host atacante Backtrack 3.
A tabel tabelaa 5.1 a segui seguirr apres apresent entaa um resum resumoo descr descriti itivo vo da figur figuraa anteri anterior, or, com os respectivos recursos alocados para cada máquina virtual no sistema hospedeiro. Host
1 2 3 4
Descrição Alvo Atacante Servidor Snort Snort
S.O Windows 2003 Server Linux Backtrack 3 Ubuntu Linux 8.04
Memória HD(GB) IP Interface de rede 192 MB 1.7 192.168.10.10 Host only 80 MB Live CD 192.168. 68.10.66 Host only 232 MB 9 192.168.10.2 Host-only 10.13.1.136 Bridge Monitoramento Windows XP(Sistema anfitrião) 2 GB 80GB 10.13.1.133 ----Tabela 5.1. Hosts usados na simulação do cenário 1
A figura 5.4 a seguir apresenta o diagrama de blocos que ilustra a disposição máquinas virtuais em relação ao Vmware Workstation e ao sistema anfitrião (Windows XP).
Figura 5.4. Máquinas virtuais e sistema anfitrião do cenário 1.
112
Conforme apresentado na tabela 5.1, para que alcançar os resultados desejados, o tráfego da rede de teste (monitorada) foi isolado através de uma configuração “ host-only ” do Vmware Workstation
(ver figura 5.5), a qual permite a criação de uma interface de rede virtual, cujo
tráfego não se mistura ao tráfego recebido pela interface de rede real (no sistema anfitrião). Desta forma é possível criar uma rede privada isolada da rede de produção.
Figura 5.5. Configuração da interface Host-only no Vmware Workstarion.
É possível observar também que no Cenário 1, o host atacante é representado pela distribuição Linux Backtrack 3. A seção a seguir apresenta maiores informações sobre esta distribuição.
5.4.1 Distribuição Linux Backtrack 23 Backtrack é
atualmente a melhor distribuição de Linux com foco em ferramentas de
segurança e testes de penetração (PenTest). O Backtrack pode pode ser usado diretamente do CDROM ( Live possui int interf erfac acee gráfi gráfica ca (KDE, (KDE, Flux Flux Box, Box, etc), etc), e em mi minut nutos, os, pode pode Live CD), possui dispon disponib ibili ilizar zar um conju conjunt ntoo de aplic aplicaç ações ões espe específ cífic icas as para: para: obt obtenç enção ão de infor informa maçõe çõess e reconhec reconhecime imento nto ( Footprinting ); ); enumeração e scanning ; testes em Web Servers; testes em rede s wireless; exploit e obtenção de acesso; elevação de privilégios e manutenção do acesso. Atualmente BackTrack consiste de mais de 300 ferramentas diferentes e atualizadas, que são logicamente estruturadas de acordo com o fluxo de trabalho de profissionais de segurança. Essa estrutura permite até mesmo a novatos encontrar as ferramentas relacionadas à uma tarefa específica para ser cumprida. Por estes motivos, o BackTrack tornou-se uma das principais distribuições de segurança atualmente. 23
www.remote-exploit.org/backtrack.html 113
5.4.2 Nikto24 Web Server Scanner
O primeiro teste no Cenário 1 consiste em listar as vulnerabilidades de um servidor Web Apache 2 usando o Web Server Scanner Nikto . Nikto
é um web server scanner Open Source (GPL), escrito em perl , que realiza diversos
tipos de testes em servidores Web, incluindo em arquivos CGIs potencialmente perigosos, auxiliando na identificação de problemas específicos em mais de 250 tipos de servidores. A utilização é via linha de comandos , porém é poderosa, podendo gerar relatórios nos formatos txt , html e csv através de varredura em servidores Web de forma simples e rápida. Nem todos os resultados apresentados pelo Nikto, entretanto, estão relacionados a falhas de segurança. Frequentemente, também são apresentados dados de caráter informativos, podendo ser úteis e cuja existência geralmente é ignorada por webmasters ou engenheiros de segurança. A tabela 5.2 a seguir exibe um resumo dos principais parâmetros do Nikto. Exemplo
Comando
Atualizaç Atualização ão os plug-in plug-inss Ex: #nikto #nikto.pl .pl -update -update Usan sando o Nik Nikto to
Ex: #nik #nikto to.p .pll -ho -hosst 192 192.1 .168 68.1 .10. 0.10 10 -C -C all all -o rela relato tori rio. o.tx txt; t; onde: - C all : força a checagem de todos os diretórios em busca de arquivos cgi; -host : endereço IP da vitima -o : Gera um arquivo de relatório Tabela 5.2. Resumo de funções e exemplos de uso do Nikto
A ferramenta Nikto, por padrão, pode ser encontrada na distribuição Backtrack 3.0, cuja invocação no menu “ Backtrack ”, ”, aciona a “janela Shell ” que dá o acesso a este script e suas respectivas opções de execução. A listagem a seguir demonstra a utilização do Nitko a partir da máquina do atacante ( Backtrack Backtrack ) e a identificação do Servidor Web Apache 2.2.9, instalado na máquina alvo Windows 2003 Server .
24
www.cirt.net/nikto2 114
# nikto.pl -C all -h 192.168.10.10 - Nikto v1.36/1.37 -----------------------------------------------------------------------+ Target IP: 192.168.10.10 + Target Hostname: 192.168.10.10 + Target Port: 80 + Start Time: Wed Jun 18 13:29:46 2008 ------------------------------------------------------------------------ Scan is dependent on "Server" string which can be faked, use -g to override + Server: Apache/2.2.9 (Win32) + Allowed HTTP Methods: GET,HEAD,POST,OPTIONS,TRACE
+ 14472 items checked - 0 item(s) found on remote host(s) + End Time: Wed Jun 18 13:30:31 2008 (45 seconds) -----------------------------------------------------------------------+ 1 host(s) tested
As estatísticas de alertas do Snort, armazenados armazenados na base MySQL do host Sensor , foram acessadas via interface interface Web na URL “http://10.13.1.136/base” “http://10.13.1.136/base”.. Basead Baseado o no tráfeg tráfego o gerado gerado pelo pelo atacan atacante te,, o frontend BASE frontend BASE gerou os alertas (figura 5.6) e a classificação classificação para o tipo de intrusão (figura 5.7). 5.7).
Figura 5.6. Alertas de detecção de intrusão do Snort para o Web Scanner Nikto
Figura 5.7. Classificação do ataque para o Web Scanner Nikto
115
Figura 5.8. Estatísticas de detecção de intrusão do Snort para o Web Scanner Nikto
A tabela 5.3 apresenta a síntese descritiva para o teste do Cenário 1 usando o Nikto . Síntese do teste Numero do Teste: 1
Tipo de ataque: Web Scanning
Tempo: 45 segundos
Metodologia Descrição
Utilizaçãoo da ferramenta Utilizaçã ferramenta nikto web scanning scanning contra o host alvo, objetivando testar a sensibilidade de detecção de assinaturas do Snort
Ferramentas/comandos
Nikto: #nikto.pl -C all -h 192.168.10.10
Passos
_ Zerar a contagem de alertas na interface (BASE); _ iniciar o nikto, iniciar o tcpdump para contagem de pacotes; _ Anotar os resultados e capturar as telas do BASE; _ Produzir os relatórios;
Maquinas Virtuais
Ubuntu 8.04 (sensor snort snort ) - 192.168.10.2 Windows 2003 Server (alvo) - 192.168.10.10 Backtrack 3 (atacante) - 192.168.10.66 Resultados obtidos
Número de alertas gerados: 817 Número de pacotes
Alertas únicos: 86 TCP
UDP
3 73 5
0
O Snort conseguiu identificar e alertar corretamente sobre o scanning gerado pelo Nikto.
Conclusão
Tabela 5.3. Síntese da simulação e resultados obtidos na detecção (teste 1).
A figu figura ra 5.8 5.8
exib exibee esta estatí tíst stic icas as de tráf tráfeg ego, o, demo demons nstr tran ando do que que o Nikto produz
essencialmente tráfego TCP, uma vez que simula o acesso de um cliente ao servidor Web em busca de arquivos que indiquem indiquem algum tipo de vulnerabilidade. vulnerabilidade. Os resultados demonstraram demonstraram que o Snort detectar corretamente corretamente scanning do Nikto e gerar gerar os alerta alertass aprop apropria riados dos , identifi identificand candoo o scanning atrav através és das das assin assinatu aturas ras “ web-application-activity” e ““webapplication-attack”.
116
5.4.2.1 Teste de evasão usando o Nikto O Nikto não foi concebido como uma ferramenta essencialmente furtiva, ou seja, capaz de realizar técnicas de evasão por padrão, no entanto, ele oferece suporte a bibliotecas de outro popular Web Scanner, o Whisker 25, implementando métodos evasivos, ou anti-IDS. Por isso, além de ser um excelente recurso para administradores que querem checar a segurança de servidores Web e scripts CGI, o Nikto também pode ser usado por atacantes para obter informações úteis a um possível ataque, sem gerar alertas em sistemas de detecção de intrusão. A tabela 5.4 apresenta as opções de evasão encontrados no Nikto. Opção Descrição 1 Random ndom URI URI encod ncodin ingg (non (non-U -UT TF8) 2 Add dire direct ctor oryy selfelf-re refe fere renc ncee /./ /./ 3 Premature URL ending 4 Prepe repend nd long long rand randoom str strin ingg to to re reque quest 5 Fake parameters to to files 6 TAB TAB as as req reque uest st spac spacer er inst instea eadd of of spa space cess 7 Random case se sensitivity 8 Use Use Win Windo dows ws dire direct ctor oryy sep separ arat ator or \ inst instea eadd of / 9 Session splicing Observações: Opções devem devem ser usadas usadas com o parâmetro -e. -e. Ex: nikto.pl -C all -host 200.128.X.X -e 9 Tabela 5.4. Opções de evasão de IDS do Nikto As técnicas de evasão usadas pelo Nikto são uma forma de automatizar a geração de tráfego anômalo. Independente da ação executada o objetivo dste tipo de ataque é dificultar a detecção, fazendo com que, no processo de análise do conteúdo de um pacote, o IDS perca informações vitai vitaiss para para identi identific ficaç ação ão do ataque ataque.. Ap Aplic licaç açõe õess no host alvo alvo,, por por sua sua vez, vez, rece recebe bem m as informações de forma integral, contidas nos pacotes enviados e, portanto, serão vítimas do ataque. Muitos sistemas têm problemas em detectar e manusear pacotes fragmentados ou perdem performance na utilização de módulos para remontagem de seção. As ferramentas de ataque exploram estas deficiências para contornar o perímetro de segurança imposto por ferramentas NIDS. 25 http://www.securityfocus.com/tools/727 117
Para o teste de evasão foi usado o mesmo Cenário do teste anterior (para o web scanner ). Nikto ), entretanto, usando a opção de evasão (-e) e o parâmetro “-9” (s ession Splicing ). O ataque usando Session Splicing Splicing consiste no envio de diversos pacotes. Por exemplo, a solicitação “Get /cgi-bin/phf.cgi HTTP/1.0” pode ser dividida em múltiplos pacotes “Ge”, “t”, “/”, “cgi”, “-bin”, “p”, “hf.c”, “gi”, “H”, “T”, “TP”, “/1”, “.0”. Sendo assim o processo de detecção é ainda
mais difícil para alguns NIDS. Como este parâmetro quebra os pacotes de consulta em pedaços muitos pequenos, o resultado é que o scanning torna-se bastante lento e gera mais alertas que o método tradicional. O Nikto gerou o seguinte relatório para evasão Session Splicing. »--------------------------------------------------------------------------- Nikto 1.36/1.37 www.cirt.net + Target IP: 192.168.10.10 + Target Hostname: 192.168.10.10 + Target Port: 80 + Us Using ID IDS Ev Evasion: Random UR URI en encoding (n (non-UTF8) + Start Time: Tue Jun 10 10:10:21 2008 --------------------------------------------------------------------------- Sc Scan an is de depe pend nden ent t on "S "Ser erve ver" r" st stri ring ng wh whic ich h ca can n be fa fake ked, d, us use e -g to override + Server ID string not sent - Server did not understand HTTP 1.1, switching to HTTP 1.0 + Server does not respond with '404' for error messages (uses '400'). + This may increase false-positives. + /mo%64%75le%73.ph%70?n%61m%65=%4de%6d%62%65%72%73%5f%4c%69%73%74%26l%65tte %72=Al%6c&%73or%74%62%79=p%61%73%73 - PHP Nuke module allows user names and passwo pas swords rds to be viewed vie wed. . See htt http:/ p://ww /www.f w.frog rog-ma -man.o n.org/ rg/tut tutos/ os/PHP PHP-Nu -Nuke6 ke6.0.0Members_List-Your_Account.txt for other SQL exploits in this module. (GET) + 16261 items checked - 1 item(s) found on remote host(s) + End Time: Tue Jun 10 10:11:22 2008 (61 seconds) --------------------------------------------------------------------------+ 1 host(s) tested
As figuras a seguir, capturadas do BASE, ilustram os resultados obtidos para o teste de evasão.
Figura 5.9. Estatísticas de detecção de intrusão para o Web Scanner Nikto usando evasão.
118
Figura 5.10. Alertas gerados para o Web Scanner Nikto usando evasão.
O resultado do teste de evasão usando o nikto não foi satisfatório. Pois, além do Nikto não conseguir identificar o tipo de servidor Web, foram gerados muitos falsos positivos , e alertas não relacionados ao ataque propriamente dito. É importante destacar que usando o conjunto de regras “ Unregistered”, o Snort não conseguiu detectar o scanning do nikto usando a evasão session splicing.
5.4.3 Nmap26 Security scanner Nmap
é um software livre que efetua um port port scan e permite ao administrador ou
possíveis invasores vasculhar uma rede verificando quais servidores estão ativos e quais serviços eles estão oferecendo. Desenvolvido Desenvolvido pelo auto-proclamado auto-proclamado hacker Fyodor, o nmap é muito conhecido pela sua rapidez e pelas opções que dispõe. O nmap é um programa CUI ( Console User Interface ), 26 http://nmap.org/ 119
pois é usando via linha de comandos , mas também existe uma interface gráfica (GUI), o NmapFE27 ( Nmap ), que torna a sua utilização mais simples. Nmap Front End ), O nmap oferece muitos parâmetros úteis para descoberta de rede e diversas tecnologias de scanner , como por exemplo, UDP, TCP connect , TCP SYN, ICMP entre outras. Para o teste do nmap, foi necessário habilitar os pré-processadores sfPortscan e frags3, no arquivo de configuração do Snort (/etc/snort/snort.conf), como descrito a seguir: a) Habi Habili littar o sfPortscan sfPortscan e alterar a diretiva “ sense_level” para "high" : # Disabled by default preprocessor sfportscan: proto { all } \ memcap { 10000000 } \ sense_level { high }
b) Ajustar Ajustar a conf configu iguraçã raçãoo do prepro preprocess cessado ador r frags3 frags3 para policy linux: preprocessor frag3_global: max_frags 65536 preprocessor frag3_engine: policy linux timeout 180 \ bind_to [192.168.10.0/24] \ detect_anomalies
Antes Antes do ajust ajustee cita citado do acim acima, a, usando usando a conf configu iguraç ração ão padrã padrão, o, o Snort não estava estava conseguindo gerar alertas para o port scanning do nmap. O nmap foi usado para descobrir as portas e os respectivos serviços disponíveis do host 192.168.10.10 (alvo). A lista a seguir exibe o resultado desta ação. bt~# nmap -sV 192.168.10.10 Starting Nmap 4.20 ( http://insecure.org ) at 2008-06-19 12:21 GMT Interesting ports on 192.168.10.10: Not shown: 1691 closed ports PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 2.2.9 ((Win32)) 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn 445/tcp open microsoft-ds Microsoft Windows 2003 microsoft-ds 1025/tcp open msrpc Microsoft Windows RPC 1026/tcp open msrpc Microsoft Windows RPC MAC Address: 00:0C:29:87:D3:0A (VMware) Service Info: OS: Windows S e r v i c e d e te t e c t i o n p e rf r f o r m e d . P l e a s e r e p o r t a n y i n c o r r e c t r e s u l t s a t h t tp tp : / / i n s e $ Nmap finished: 1 IP address (1 host up) scanned in 59.855 seconds
A opção “-sV” ( version detection ) é usada para determinar qual a versão dps serviços estão estão rodando. rodando. As Fig Figuras uras 5.11, 5.12 e 5.13, 5.13, exibem exibem os alertas alertas,, estatíst estatística icass e classifi classificaçã cação, o, respectivamente, capturadas no frontend BASE para o teste usando o nmap. 27 http://nmap.org/SoC/NmapFE.html 120
Figura 5.11. Alertas de port scanning para o teste do nmap.
Figura 5.12. Estatísticas de intrusão para o nmap
Figura 5.13. Classificação da assinatura de intrusão para o nmap
A tabela 5.5 apresenta a síntese descritiva para o teste usando o Nmap. Síntese do teste Numero do Teste: 3 Tipo de ataque: port Tempo:59 Tempo:59 segundos port scanning Metodologia utilização da ferramenta nmap objetivando testar a sensibilidade de Descrição detecção de assinaturas do Snort Ferramentas/comandos nmap -sV 192.168.10.10 (version detection) _ Zerar a contagem de alertas na interface (BASE) Passos _ iniciar o retina, iniciar o tcpdump para contagem de pacotes. _ iniciar o port scanning nmap _ Anotar os resultados e capturar as telas do BASE; Ubuntu 8.04 (sensor snort snort ) - 192.168.10.2 Maquinas Virtuais Windows 2003 Server (alvo) - 192.168.10.10 Backtrack 3 (atacante) - 192.168.10.66 Resultados obtidos Número de alertas gerados: 7 Alertas únicos: 2 Número de pacotes TCP UDP 1194 0 Conclusão O Snort conseguiu detectar com êxito o ataque gerado pelo nmap. Tabela 5.5.Síntese da simulação e resultados obtidos na detecção (teste (t este 3).
121
5.4.3.1 Teste de evasão usando o Nmap Conforme observado no teste 3, o port scanning do nmap pode ser facilmente detectado caso a rede possua um NIDS como o Snort , ou outro detector de intrusões ativo. Para tentar contornar, o
Nmap oferece a opção de fazer um half-open scan, especificando a opção “-sS”. Operando neste modo, o Nmap apenas envia um pacote SYN para cada porta alvo e espera receber um pacote ACK de confirmação sem, entretanto, responder com o segundo pacote ACK, que abriria a conexão. Esta técnica é conhecida por TCP SYN Stealth. Isso permite permite burlar muitos muitos programas programas de detecção detecção de intrusão, que monitoram e registram apenas conexões efetivamente estabelecidas. A lista a seguir exibe o resultado usando a parâmetro TCP SYN Stealth. bt~# nmap -sS 192.168.10.10 Starting Nmap 4.20 ( http://insecure.org ) at 2008-06-19 13:27 GMT Interesting ports on 192.168.10.10: Not shown: 1691 closed ports PORT STATE SERVICE 80/tcp open http 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds 1025/tcp open NFS-or-IIS 1026/tcp open LSA-or-nterm MAC Address: 00:0C:29:87:D3:0A (VMware) Nmap finished: 1 IP address (1 host up) scanned in 14.626 seconds
As Figuras 5.14, 5.15 e 5.16, exibem, respectivamente, os alertas, classificação e estatísticas, capturadas no frontend BASE para o teste usando o nmap no modo TCP SYN Stealth.
Figura 5.14. Alertas identificando o port scanning com a opção TCP SYN Stealth ativa.
Figura 5.15. Classificação das assinaturas para o nmap em modo Stealth.
122
Figura 5.16. Estatísticas de alertas para o nmap em modo Stealth.
A tabela 5.6 apresenta a síntese dos resultados para o teste 4 Síntese do teste Numero do Teste: 4 Tempo: 59 segundos Tipo de ataque:Scanning Stealth Metodologia utilização da ferramenta nmap em modo Stealth objetivando testar a Descrição sensibilidade de detecção de assinaturas do Snort Ferramentas/comandos nmap -sS 192.168.10.10 _ Zerar a contagem de alertas na interface (BASE) Passos _ iniciar nmap em modo stealth, iniciar o tcpdump para contagem de pacotes. _ Anotar os resultados e capturar as telas do BASE; Ubuntu 8.04 (sensor snort) - 192.168.10.2 Maquinas Virtuais Windows 2003 Server (alvo) - 192.168.10.10 Backtrack 3 (atacante) - 192.168.10.66 Resultados obtidos Número de alertas gerados 7 Alertas únicos: 2 Número de pacotes TCP UDP 171 0 Conclusão O Snort conseguiu identificar corretamente o scanning gerado pelo nmap em modo stealth. Tabela 5.6. Síntese da simulação e resultados obtidos na detecção (teste 4).
Apesar de várias referências indicarem o TCP SYN Stealth do nmap como uma forma de contornar o perímetro de segurança imposto por firewalls e IDS; para este tipo de evasão, o Snort conseguiu
gerar alertas adequadamente nas simulações realizadas, como apresentado
nos resultados anteriores (ver Tabela 5.6). Além da opção “-sS “-sS”” (TCP SYN Stealth ), o nmap possui parâmetros específicos para alterar o formato dos pacotes para tentar enganar firewalls e detectores de intrusão. As opções apresentadas na Tabela 5.7 a seguir, descrevem os parâmetros usados para implementar este tipo de ataque. 123
Opção
Descrição
-f; --mtu
Fragmentar pacotes (opcional com dado MTU)
D
Disfarça um rastreio( scan scan) usando iscas
-S
Disfarçar(Spoof ) endereço de origem
-e
Usar um interface especifico
-g/ --source-port
Usar um determinado numero de porta
--ttl
Ajustar o campo IP TTL tempo-de-vida
--spoof-ma --spoof-macc Disfarça Disfarçar( r(Spoof ) o endereço MAC --data-length
Acrescenta dados aleatórios nos pacotes . Tabela 5.7. Opções de evasão do nmap
O segundo teste de evasão usando nmap foi executado usando a opção de evasão “--data-length ”28. Norma Normalme lmente nte o Nmap envia envia pacotes pacotes mini minimali malistas stas contendo contendo apenas apenas o cabeçalho. Dessa forma os pacotes TCP têm normalmente 40 bytes e os echo requests ICMP tem apenas 28. A opção “ --data-length ” faz com que o Nmap acrescente acrescente o número informado de bytes aleatórios na maioria dos pacotes que envia. Este método também pode causar lentidão ocasional, mas pode tornar um rastreio( scan) ligeiramente menos chamativo. A lista a seguir apresenta o resultado deste comando. bt~# nmap --data-length 150 192.168.10.10 Starting Nmap 4.20 ( http://insecure.org ) at 2008-06-19 14:54 GMT Interesting ports on 192.168.10.10: Not shown: 1691 closed ports PORT STATE SERVICE 80/tcp open http 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds 1025/tcp open NFS-or-IIS 1026/tcp open LSA-or-nterm MAC Address: 00:0C:29:87:D3:0A (VMware)
Nmap finished: 1 IP address (1 host up) scanned in 13.616 seconds Neste teste, constatou-se que os bytes adicionados (150) pelo parâmetro “ --data-length ”, disfarçam a real natureza do pacote, confundindo a detecção do Snort , pois as assinaturas disponíveis não “combinam” com o tráfego coletado. O resultado é a geração de diversos falsos positivos, como observado nas figuras 5.17 e 5.18 a seguir:
28 http://nmap.org/man/pt-br/man-bypass-firewalls-ids.html 124
Figura 5.17. Estatísticas de alertas para o nmap usando o parâmetro “--data-length”
Figura 5.18. Alertas para o nmap usando o parâmetro “--data-length”
A tabela 5.8 apresenta a síntese dos resultados para o teste 5 Síntese do teste Numero do Teste: 5 Tipo de ataque: evasão Tempo: 59 segundos Metodologia Testar as assinaturas do Snort com técnicas de evasão Descrição nmap –data-legth 150 192.168.10.10 Ferramentas Passos _ Zerar a contagem de alertas na interface (BASE); _ iniciar o nmap, iniciar o tcpdump para contagem de pacotes; _ Anotar os resultados e capturar as telas do BASE. Maquinas Virtuais Ubuntu 8.04 (sensor snort) - 192.168.10.2 Windows 2003 Server (alvo) - 192.168.10.10 Backtrack 3 (atacante) - 192.168.10.66 Resultados obtidos Número de alertas gerados: 7 ( falso falso positivos) Alertas únicos: 4 TCP UDP Número de pacotes 310 0 Conclusão O Snort não conseguiu detectar o scanning do nmap usando evasão. Tabela 5.8. Síntese da simulação e resultados obtidos na detecção (teste 5).
Apesar do Snort ter gerado inúmeros alertas, os resultado r esultadoss da Tabela 5.8 demonstram que o parâmetro –data-lenght pode ser usado como técnica de evasão. Pois, neste caso, o Snort não conseguiu classificar classificar corretamente o tipo de tráfego, tráfego, confundindo os pacotes com tráfego encriptado
ou pacotes RPC incompletos. 125
5.5 Cenário 2 - Retina, Nessus e Metasploit Framework A figura 5.19 a seguir ilustra o segundo cenário de testes utilizando o NIDS Snort para simulação dos Scanners de vulnerabilidades Retina e Nessus e do Framework MetaSploit. Nele são representadas as máquinas virtuais usadas na simulação, bem como seus respectivos Sistemas Operacionais e endereços IP.
Figura 5.19. Cenário 2 para simulações das ferramentas ferramentas Retina, Nessus e Metasploit .
A tabel tabelaa 5.9 a segui seguirr apres apresent entaa um resum resumoo descr descriti itivo vo da figur figuraa anteri anterior, or, com os respectivos recursos alocados para cada máquina virtual no sistema hospedeiro. Host
1 2 3 4
Descrição Alvo Atacante Servidor Snort
S .O Windows 2003 Server Windows XP Professional Ubuntu Linux 8.04
Memória HD(GB) IP Interface de rede 192 MB 1.7 192.168.10.10 Host only 204 MB 2.5 192.168.10.64 Host only 232 MB 9 192.168.10.2 Host-only 10.13.1.136 Bridge Monitoramento Windows XP(Sistema anfitrião) 2 GB 80GB 10.13.1.133 ----Tabela 5.9 Hosts usados na simulação do Cenário 2
A figura 5.20 a seguir apresenta o diagrama de blocos que ilustra a disposição máquinas virtuais em relação ao Vmware Workstation e pelo sistema anfitrião (Windows XP).
Figura 5.20. Máquinas virtuais e sistema anfitrião do cenário 2.
126
5.5.1 Retina29 Network Security Scanner O software Retina Network Security Scanner , desenvolvido pela eEye Digital Security Security , é um netork scanner utili utiliza zado do para para ident identif ific icar ar vul vulner nerab abili ilidad dades es de segura segurança nça em redes redes corporativas. Além Além de sua grand grandee preci precisão são,, arqui arquitet tetura ura abert abertaa e capac capacid idade adess de varred varredura ura não intrusivas, Retina 5.0 oferece características únicas que o diferenciam de outros softwares de análise de vulnerabilidades: capacidade ilimitada de localização de equipamentos, relatórios completo completos, s, detecçã detecçãoo precisa precisa de sistema sistemass operaci operacionai onaiss e nova nova interfac interfacee de usuários usuários que ofere oferecem cem um nív nível el de preci precisão são de varre varredur duras as compl completo eto e melho melhoria ria na produt produtivi ividad dadee e velocidade da ferramenta para funções de gerência de vulnerabilidades. No presente trabalho foi utilizado o Retina 5.85 (versão evaluation ). A lista a seguir, destaca algumas informações possíveis de se obter com a execução do Retina em um ambiente de rede:
Exibe informações gerais como IP, nome e domínio, tempo de resposta;
Informa quantidade de portas abertas e para cada porta o serviço que está associado a ela, podendo varrer todas as portas ou pesquisar portas específicas;
Exib Exibee info inform rmaç açõe õess deta detalh lhad adas as sobr sobree os serv serviç iços os ofer oferec ecid idos os e a li list stag agem em de vulnerabilidades encontradas, classificando-as conforme o nível de seu risco (Alto, Médio Médio,, Baixo) Baixo).. Esta Esta opção, opção, desta destaca ca-se -se por forne fornece cerr uma breve breve descri descrição ção da vulnerabilidade e sugestões para remedia-la;
Lista e exibe informações detalhadas sobre os serviços oferecidos pelo host e suas respectivas vulnerabilidades;
Lista os compartilhamentos e informações sobre os mesmos;
Consolida todos os dados de auditoria em um relatório de segurança executivo.
A figura a seguir apresenta a tela de auditoria do Retina.
29
www.eeye.com/h www.eeye.com/html/products/retina/inde tml/products/retina/index.html x.html 127
Figura 5.21. Tela principal do software Retina.
O teste com o Scanner Retina consistiu inicialmente na instalação deste software no host atacante (Windos (Windos XP – 192.168.10.64). Posteriormente, o processo de scanning contra o host alvo (Windows 2003 – 192.168.10.10) foi iniciado usando o modo “ All Ports”. Baseado no tráfego do atacante, no host sensor (Ubuntu 8.04 / Snort / 192.168.10.2) gerou os seguintes alertas de intrusão para atividade portscan. As Figuras 5.22 e 5.23, Estatísticas e Alertas respectivamente; e a tabela 5.10, a seguir, apresentam os resultados obtidos desta análise.
Figura 5.22. Estatísticas de alertas exibidas pelo frontend BASE no teste de intrusão usando o Retina.
128
Figura 5.23. Alertas produzidos pelo Snort após a utilização do Retina contra a máquina alvo.
SÍNTESE DO TESTE Numero do Teste: 6
Tipo de ataque: Scanner Tempo: 2 min 1 seg. Metodologia utilização do software Retina, scanner de vulnerabilidades, para aferir Descrição a capacidade do Snort para para identificação de PortScanning Ferramentas Retina Network Scanner (modo All ports) ports) Passos _ Zerar a contagem de alertas na interface (BASE); _ Iniciar o retina; iniciar o tcpdump para contagem de pacotes; _ Anotar os resultados e capturar as telas do BASE. Ubuntu 8.04 (sensor snort) - 192.168.10.2 Maquinas Virtuais Windows 2003 Server (alvo) - 192.168.10.10 Windows XP (atacante) - 192.168.10.64 Resultados obtidos Número de alertas gerados: 17 Alertas únicos: 3 Número de pacotes TCP UDP 5233 861 O Snort conseguiu identificar e classificar corretamente portscan Conclusão gerado pelo Retina. Tabela 5.10. Síntese da simulação e resultados obtidos na detecção (teste 6).
5.5.2 Network Scanner Network Scanner Nessus30 Assim como o Retina, Nessus é um scanner que identifica identifica hosts, portas, serviços e suas versões, bem como as falhas conhecidas para estes serviços, apontando possíveis correções. O Nessus
é rápi rápido do,, confi onfiáv ável el,, poss possui ui arqui rquite tetu tura ra modul odular ar e base basead adaa no para paradi digm gmaa
cliente/servidor. O servidor atualmente pode ser executado em ambientes Linux, FreeBSD, NetBSD e Solaris e clientes estão disponíveis para Linux, Windows e plataformas JAVA.
30
http://www.nessus.org/ 129
Após a instalação do Nessus, é necessário realizar a atualização dos plug-ins para detecção de vulnerabilidades. Esta tarefa pode ser feita através da opção “ Update Plugins ”. Para tanto, existe dois processos de registro:
Direct : suporte comercial, com atualizações diárias de plug-ins
(U$1,200.00/ano);
Registered : gratuito, no entanto, só oferece atualização semanal aos plug-ins.
A figura 5.24 a seguir exibe a tela do software Nessus.
Figura 5.24. Scanner Nessus
Semelhante Semelhante ao teste teste com o Scanner Retina, a preparação do ambiente iniciou com a instalação do Nessus no host atacante (Windows XP – 192.168.10.64) e posteriormente a atualização dos plug-ins . Foi Foi usad usadoo o mod modoo “all plugins / Default settings” para testar a eficiência das assinaturas do Snort para para detecção do portscanning gerado pelo Nessus. As figuras 5.25 e 5.26 a seguir apresentam os dados obtidos da interface Web BASE para os alertas registrados no teste do Nessus, assim como a tabela 5.11 um resumo descritivo do teste.
130
Figura 5.25. Estatísticas de alertas exibidas pelo frontend BASE no teste do Nessus
Figura 5.26. Alertas Alertas de detecção para o port scanner Nessus Nessus
SÍNTESE DO TESTE Numero do Teste: 7
Tipo de ataque: network scanning Tempo:4 Tempo:4 minutos e 45 segundos Metodologia Utilizaçã Utili zaçãoo do Nessus para scanning do host , objetivando testar a Descrição eficiência de detecção de assinaturas do Snort Ferramentas/comandos settings) Nessus (All plugins / default settings) _ Zerar a contagem de alertas na interface (BASE) Passos _ Iniciar o Nessus; iniciar o tcpdump para contagem de pacotes. Ubuntu 8.04 (sensor snort) - 192.168.10.2 Maquinas Virtuais Windows 2003 Server (alvo) - 192.168.10.10 Windows XP (atacante) - 192.168.10.64 Resultados obtidos Número de alertas gerados: 736 Alertas únicos: 143 TCP UDP Número de pacotes 18666 117 O Snort conseguiu identificar o scanning gerado pelo Nessus. Conclusão Tabela 5.11 Descrição do teste e resultados para o tráfego gerado pelo Nessus
131
5.5.3 Explotation atack com o Metasploit Framework 31 O Metasploit Metasploit Framework , ou MSF, é uma ferramenta open source, objetiva a criação de um ambie ambiente nte de desenv desenvol olvim viment ento, o, test testee e explor exploraç ação ão de vul vulner nerabi abili lidad dades es de soft softwar ware, e, fornecendo fornecendo aos pesquisadores pesquisadores da área de segurança as ferramentas ferramentas necessárias e um completo ambiente de trabalho. O MSF foi foi desenv desenvolv olvido ido para para prove prover r testes testes de penetraç penetração ão ( PenTest PenTest ) e análise de vulnerabilidades em redes de computadores. Criado por H.D.Moore, o MFS é um conjunto das melhores plataformas de aprendizagem aprendizagem e investigação investigação para o profissional profissional de segurança ou do “hacker ético”. Ele possui centenas de exploits , payloads e ferramentas avançadas que permitem testar vulnerabilidades em muitos sistemas operacionais, serviços e aplicativos. A figura 5.27 exibe a tela principal do MSF. Além de disponibilizar um ambiente de janelas, o MSF também possui a execução de comandos via console e interface Web.
Figura 5.27. Metasploit Framework
31
www.metasploit.com/ 132
O Metasploit possui várias ferramentas dentre elas:
msfconsole - metasploit em modo console;
msfcli
msflogdump - exibe sessões de arquivos de log;
msfplayload - usado para gerar payloads payloads
msfpescan
- utilizado para analisar e de-compilar executáveis e DLLs;
msfencode
- um codificador interativo de payload encoder ;
msfupdate - utilizado para verificar e fazer download de atualização do framework ;
msfweb - Interface gráfica via browser
- interface de automatização de penetração e exploração; customizados;
O ciclo completo da pesquisa suportada pelo MSF compreende as seguintes etapas: a) Desco Descober berta ta da
Vulnerabilidade:
o pesq pesqui uisa sado dorr desc descob obre re um erro erro de
programação que pode levar ou não a uma brecha de segurança; b) Analise: Analise: o pesqui pesquisad sador or anali analisa sa a vul vulner nerabi abilid lidade ade para para deter determi mina narr quais quais as maneiras pela qual a mesma pode ser explorada. Perguntas-chave são feitas ness nessaa fase fase do dese desenv nvol olvi vime ment nto, o, como como por por exem exempl plo: o: De qual qual mane maneir iraa a vulnerabilidade pode ser explorada? Localmente ou remotamente? c) Desenvolvimento Desenvolvimento de exploit : após a fase de analise, começa o desenvolvimento da exploração em si, como prova da existência existência real da vulnerabilidade. vulnerabilidade. Técnicas de engenharia reversa, programação, debugger , etc; são usadas nessa fase; d) Teste do exploit : nessa fase o exploit é testado em diferentes ambientes e variáveis, service packs , patchs, etc. O exploit em si é a prova definitiva que a vulnerabilidade pode ser explorada. As seções seguintes abordam a utilização do MSF para exploração de duas vulnerabilidades basta bastant ntee conh conhec ecid idas, as, ms06 ms06-00 -001 1 e ms03 ms03-0 -026 26.. O obje objeti tivo vo é: descr descrev ever er sucin sucintam tamen ente te estas estas vulnerabilidades; como podem ser exploradas e, finalmente, demonstrar como o NIDS Snort pode pode auxili auxiliar ar a detecçã detecção o e alertar alertar sobre sobre ataque ataquess de obtenção de acesso; bem como na coleta de indicadores para elaboração de metodologias e análises de testes de penetração.
133
5.5.3.1 Vulnerabilidade Vulnerabilidade ms06-001 wmf SetAbortProc O primeiro teste com o MSF consistiu em explorar a vulnerabilidade na biblioteca GDI MS06-0 MS06-001 01 (Vulne Vulnerab rabili ility ty in Graph Graphics ics Rende Renderin ring g Engine Engine Could Could Allow Allow Remot Remotee Code Code Execution )32,
que trata de um problema na renderização de gráficos no formato WMF que
pode permitir a execução remota de código arbitrário em máquinas vulneráveis Esta vulnerabilidade utiliza a função “ metafile Escape( ) ” para executar código arbitrário através do procedimento SetAbortProc , afetando o visualizador de imagens e de fax do Windows; que ao abrir o arquivo, dá acesso à referida execução de código arbitrário. Sistemas afetados:
Microsoft Windows 2000 Service Pack 4;
Microsoft Windows XP Service Pack 1;
Microsoft Windows XP Service Pack 2;
Microsoft Windows XP Professional x64 Edition;
Microsoft Windows Server 2003;
Microsoft Windows Server 2003 Service Pack 1;
Microsoft Windows Server 2003 for Itanium-based Systems;
Microsoft Windows Server 2003 with SP1 for Itanium-based Systems;
Microsoft Windows Server 2003 x64 Edition
Foi utilizado o MSF instalado na máquina atacante Windows XP (192.168.10.64).Os passos necessários para execução deste ataque são descritos a seguir e ilustrados na figura 5.28: a) O ataqu ataquee inic inicia ia com com a chama chamada da ao exploit “Windows XP/2003/Vista Metafile Escape() SetAbortProc Code Execution”.
Quando lançado, este exploit fica à
espera espera de cone conexõe xõess no comput computado adorr do atac atacant ante, e, porta porta 8080. 8080. Para Para tanto tanto,, o atacante cria um e-mail falso ( spam spam ou phishing ) cujo conteúdo informa a URL para para a víti vítima, ma, por exemplo exemplo “http:/ “http://ip /ip_do_ _do_atac atacante ante:808 :8080/im 0/imagem agem.wmf .wmf”. ”. Ver Figura 5.28 (a);
32 http://www.rnp.br/cais/alertas/2006/MS06-001.html 134
b) b) Quan Quanto to o usuá usuári rioo receb recebee o e-mail e clica na URL, o Browser no computador da víti vítima ma é acio aciona nado do algu alguns ns segu segund ndos os após após o down downlo load ad da im imag agem em.. O “Visualizador de imagens e fax do Windows ” então é aberto, tentando carregar o arquivo “imagem.wmf ” aparentemente inofensivo. Ver Figura 5.28 (b); c) Nest Nestee mom momen ento to,, o “Visualizador Visualizador de imagens e fax do Windows ” fica bloqueado, não apresentando apresentando qualquer imagem. No entanto, a partir deste ponto do ataque, a máquina da vítima inicia uma conexão com host do atacante (através de um ). No MSF,. ao clicar em “ session Reverse Handler ).
1”, é estabelecida a sessão e o
atacante atacante ganha um Shell remoto para a máquina alvo (Figura 5.28 (c)). Com este acesso remoto à linha de comandos da máquina Windows, ele pode executar coma comand ndos os dive divers rsos os,, sem sem rest restri riçõ ções es,, um umaa vez vez que que poss possui ui perm permis issõ sões es de Administrador.
Figura 5.28. Exploração da vulnerabilidade Windows Metafile Escape() SetAbortProc Code Execution 135
As figuras a seguir exibem algumas telas do MSF capturadas durante a execução dos passos descritos anteriormente.
Na figura 5.30 é escolhido um shell para o payload (Generic (Generic Command Shell, Bind TCP Inline ).
Figura 5.30. Seleção do payload para para a vulnerabilidade ms06-001.
A figura 5.31 a seguir ilustra a etapa de configuração das opções do exploit , na qual são informados os campos SRVPORT (porta do servidor que receberá conexões) e URIPATH (def (defin inee o cami caminh nhoo após após o ende endere reço ço do host e port portaa do serv servid idor or do atac atacan ante te,, ex: ex: http://192.168.10.64:8080/imagem.wmf ). ).
Figura 5.31. Escolha das opções gerais do exploit .
136
Ultima tela da criação do exploit é mostrada a seguir, exibe as opções escolhidas para configuração do ataque no MSF. O botão “Aplicar” conclui a configuração e lança o exploit , que fica aguardando conexões na porta 8080.
Figura 5.32. Conclusão da configuração do exploit.
Os testes para detecção da exploração da vulnerabilidade ms06-001 foram executados conforme descrito nesta seção. Os resultados de captura de tráfego e detecção do ataque são expostos a seguir.
Figura 5.33. Alertas gerados para a exploração da vulnerabilidade ms06-001 wmf SetAbortProc
Figura 5.34. Estatísticas geradas para a exploração da vulnerabilidade ms06-001wmf ms06-001wmf SetAbortProc
137
A tabela 5.12 a seguir apresenta a síntese do teste usando o MSF (ms06-001). Numero do Teste: 8 Descrição Ferramentas
Síntese do teste Tipo de ataque: Obtenção de acesso Metodologia utiliz utilizaçã açãoo da ferra ferramen menta ta MSF MSF para para explor explorar ar a vul vulner nerabi abilid lidade ade ms06-001 MSF - exploit Wind Window owss XP/2 XP/200 003/ 3/Vi Vist sta a Meta Metafi file le Esca Escape pe() () SetAbortProc Code Execution
Passos
_ Zerar a contagem de alertas na interface (BASE) _ configurar o exploit no MSF para aceitar conexões da porta 8080 _ Anotar os resultados e capturar as telas do BASE. 4 minutos e 25 segundos Tempo Ubuntu 8.04 (sensor Snort ) - 192.168.10.2 Maquinas Virtuais Windows 2003 Server (alvo) - 192.168.10.10 Windows XP (atacante) - 192.168.10.64 Resultados obtidos Número de alertas gerados 3 2 Alertas únicos Número de pacotes TCP UDP Conclusão
Apesar de apresentar poucos alertas, o Snort produziu produziu indicadores suficientes para identificar o tipo de ataque (wmf metafile access) e a obtenção do acesso remoto ( Attack-Responses Directory listing ).
Tabela 5.12 Resultados para a execução do exploit ms06-001 wmf SetAbortProc via MSF
O número baixo de alertas gerados deve-se ao fato do Snort não possuir assinaturas diretamente diretamente relacionadas a este tipo exploração. Os alertas indicados foram para “ Web-Client Microsoft wmf metafile access ”, Responses Directory Directory listing ”,
quando a vítima acionou acessou a URL; e para “ Attack-
quando houve uma resposta do Command Shell na máquina
alvo para uma solicitação de listagem do diretório por parte do atacante.
5.5.3.2 Vulnerabilidade Vulnerabilidade ms03-026 Buffer Overrun In RPC Interface33 O segun segundo do teste teste usando usando o MSF obj objet etivo ivouu aferir aferir as assi assinat natura urass do Snort para a vulnerabilidade MS03-026 ( Buffer Overrun In RPC Interface Could Allow Code Execution ). Esta Esta vul vulner nerab abili ilidad dadee foi desc descobe oberta rta em julho julho de 2003, 2003, e afeta afeta um umaa int interf erfac acee DCOM DCOM ( Distributed ).na implementação do RPC ( Remote Procedure Call ) Distributed Component Object Model ).na da Microsoft.
33 http://www.rnp.br/cais/alertas/2003/MS03-026.html 138
Ao explorar essa vulnerabilidade um invasor pode executar um código arbitrário com privilégios do Sistema local em um sistema afetado. Assim, um invasor pode efetuar qualquer operação no sistema, inclusive instalar programas, visualizar, alterar ou excluir dados ou até mesmo criar novas contas com privilégios totais. Para tanto, o invasor deverá enviar uma solicitação feita especialmente às portas 135, 139, 445 ou a qualquer outra porta RPC configurada especificamente no computador remoto. Sistemas Afetados:
Microsoft Windows NT® 4.0
Microsoft Windows NT 4.0 Terminal Services Edition
Microsoft Windows 2000
Microsoft Windows XP
Microsoft Windows Server 2003
A RPC RPC (Cha (Chama mada da de Proc Proced edim imen ento to Remo Remoto to)) é um prot protoc ocol oloo usad usadoo pelo pelo sist sistem emaa operacional do Windows. A RPC fornece um mecanismo de comunicação entre processos que permite que um programa funcione em um computador e execute, um código em um computador remoto. A vulnerabilidade é inerente à parte do RPC que lida com troca de mensagens pelo TCP/IP. A falha ocorre devido à manipulação incorreta de mensagens corrompidas. A correção consiste na aplicação dos patches de segurança recomendados pela Microsoft. No teste 2, o relatório do feito pelo scanner Nessus sobre host alvo, indicou esta vulnerabilidade, conforme observado na figura 5.35 a seguir.
139
Figura 5.35. Relatório do scanner Nessus Nessus indicando a vulnerabilidade ms03-026.
As figuras a seguir exibem um resumo dos passos utilizados para configurar o MSF para explorar esta vulnerabilidade e testar as assinaturas do Snort para detecção deste tipo de ataque.
Figura 5.36. Seleção do exploit no MSF para a vulnerabilidade ms03-026
140
Figura 5.37. Seleção do payload para a vulnerabilidade ms03-026
A seleção do payload na figura anterior, indica a escolha do “ Meterpreter reverse TCP ”, ”, que utiliza a técnica “ Inject server DLL”. Neste método, o exploit realiza o upload de um DLL (metsrv.dll) para o computador vulnerável, através da porta TCP 135. A figura a seguir exibe o Shell remoto aberto pelo atacante obtido após lançar o exploit.
Figura 5.38. Bind Shell para para acesso remoto ao computador da vítima.
O bind Shell foi usado para criar uma pasta chamada “ exploit ” no computador computador alvo. Na figura a seguir, a confirmação da criação da pasta “ exploit ” no computador da vítima.
141
Figura 5.39. Constatação de criação de uma pasta após o ataque.
Os testes para detecção da exploração da vulnerabilidade ms03-026 foram executados conforme descrito nesta seção. Os resultados são apresentados a seguir.
Figura 5.40. Estatísticas de alertas no frontend BASE o teste obtenção de acesso
Figura 5.41. Alertas do Snort o teste obtenção de acesso
Figura 5.42. Assinaturas do Snort para para o teste obtenção de acesso 142
Numero do Teste: 9 Descrição Ferramentas
Síntese do teste Tipo de ataque: Obtenção de acesso Metodologia Utiliz Uti lizaç ação ão da ferram ferrament entaa MSF MSF para para explor explorar ar a vul vulner nerabi abilid lidade ade ms03-026 MSF: configurar exploit para ms03-026 Buffer Buffer Overrun Overrun In RPC Interface
_ Zerar a contagem de alertas na interface (BASE); _ configurar e lançar o exploit no MSF; _ Anotar os resultados e capturar as telas do BASE. 3 minutos e 25 segundos Tempo Ubuntu 8.04 (sensor Snort ) - 192.168.10.2 Maquinas Virtuais Windows 2003 Server (alvo) - 192.168.10.10 Windows XP (atacante) - 192.168.10.64 Resultados obtidos Número de alertas gerados 3 2 Alertas únicos O Snort conseguiu identificar corretamente o ataque do exploit à Conclusão Passos
vulnerabilidade ms03-026.
Tabela 5.13 Resultados para a execução do exploit ms03-026 Buffer Overrun In RPC Interface
Apesar do Snort usando no teste não possuir uma assinatura específica para ataques do tipo DCOM, o resultado da detecção mostrou-se satisfatório, satisfatório, uma vez que indicou a atividade maliciosa “ Attacke-Responses Directory Linsging ”. ”.
143
CONSIDERAÇÕES FINAIS
O pres presen ente te trab trabal alho ho apre aprese sent ntou ou um umaa prop propos osta ta de segu segura ranç nçaa de rede rede,, atra atravé véss da implementação de um Sistemas de Detecção de Intrusão. Os conceitos iniciais abordados demonstraram um fato irrefutável: apesar de intensa pesquisa e investimentos no mercado de TI, a existência de vulnerabilidades é um fator inerente tanto a protocolos, Sistemas Operacionais e aplicativos. Em se tratando de Sistemas Operacionais, Operacionais, particularmente, particularmente, o cenário é ainda mais grave, pois, nestes casos os danos relacionados aos ataques de worms, podem atingir proporções globais. É inútil, portanto, a comparação entre este ou aquele S.O. ser mais vulnerável; pois basta existir uma única brecha brecha de seguranç segurança a , passível de exploração, que a ameaça se concretiza, mesmo sob a guarda de firewalls . O aumento dos ataques, portanto, é uma realidade não apenas estatística, mas uma prova da sofisticação, complexidade e abrangência dos ataques. Logo, a adoção de normas de segurança, criptografia e mecanismos de prevenção é essencial. Mas tão importante quanto, é a necessidade de monitorar e conhecer tráfego de rede e através dessa prática gerenciar os riscos relacionados à segurança. Essa constatação motiva muitas soluções, que tentam agregar diversas funcionalidades, como anti-vírus corporativo, anti- spyware spyware, detecção e reação à intrusão; representando algumas vezes a última linha de defesa em sistemas vulneráveis. Desta forma, os IDS surgem como uma excelente solução de administração, permitindo a integração de várias tarefas distintas, embora distantes da perfeição. IDS podem, entretanto,
144
auxiliar na melhoria da segurança e, a exemplo do ocorrido nos últimos anos com firewalls e soluções de anti-vírus corporativo, certamente sofrerão melhoramentos, padronização e irão se popularizar popularizar nos próximos anos. Neste contexto, o levantamento de informações e simulações realizados no capítulo 5 (Simulaç (Simulações ões e Resulta Resultados), dos), permitiri permitiriam am div diversas ersas abordag abordagens ens teórico/ teórico/prát prática icas, s, bem como como estu estuda darr meto metodo dolo logi gias as asso associ ciad adas as à prot proteç eção ão e test testee de segu segura ranç nçaa de rede redes. s. Além Além da oportunidade oportunidade de aperfeiçoar aperfeiçoar o discernimento discernimento das inúmeras abordagens abordagens de testes, este trabalho permitiu ainda refletir e apontar diversas conclusões:
A necessidade constante da presença humana para acompanhar os logs e analisar os resultados torna-se um entrave no desenvolvimento de automação para IDS;
A importância do uso de metodologias para avaliação de riscos de segurança;
A importância de customizar o funcionamento do Snort para realidade o tráfego da rede, tentando assim evitar regras desnecessárias e falsos positivos;
Customização Customização dos pré-processadores pré-processadores Snort e regras para ataques de evasão (quando possível);
É im impr pres esci cind ndív ível el a atua atuali liza zaçã çãoo de regr regras as do Snort e apli aplica caçã çãoo de regr regras as perso personal naliza izadas das.. A utili utiliza zação ção das das regra regrass “Unregistered” mostrou-se totalmente totalmente ineficaz.
Necessidade de utilização de regras Emerging Threats ( Bleeding Bleeding Threats); Utilização do BASE ( Basic Analysis and Security Engine ), no auxilio de analise de logs e alertas gerados;
Utilização de outros complementos no auxilio da gerência e configuração tando do Snort quanto da base regras;
A utilização de IPS ou mecanismos reativos deve ser cuidadosamente avaliada, pois em caso de falso positivo, pode ocorrer um bloqueio ao tráfego legítimo;
Por outro lado, a metodologia utilizada neste trabalho também pode ser continuada através de novos experimentos que, certamente, complementariam o escopo apresentado; conforme descrito a seguir:
Avaliar o conjunto de assinaturas para outros tipos de ataques de evasão;
145
Estabelecer Estabelecer um estudo comparativo entre SourceFire SourceFire VRT e Bleeding Edge Threats, o qual pode demonstrar a eficiência ataques evasivos entre esses dois conjuntos de regras e auxiliar administradores de redes na customização do Snort ;
Avaliar o comportamento do tráfego e tipos de assinaturas para outros tipos de ataques, como, por exemplo: DoS, força bruta, etc;
Todas as simulações realizadas neste trabalho foram executadas em um ambiente de teste isolado, seria importante avaliar a detecção para os mesmos ataques e a geração de falso positivos na presença de um tráfego de fundo , ou seja, um fluxo de dados transmitido paralelo aos ataques, cujo objetivo é simular diferentes situações de tráfego espúrio;
Avali Avaliar ar as condi condiçõe çõess de detec detecção ção para para out outros ros ataq ataque uess produz produzido idoss pelo pelo MSF, MSF, inclusive com tentativas de evasão.
146
REFERÊNCIAS BIBLIOGRÁFICAS
[DRES [DRESCH CH,, 2004 2004]] DRES DRESCH CH,, Edua Eduard rdo. o. Inte Intero rope pera rabi bili lida dade de e Comp Compar arti tilh lham amen ento to de Informações Sobre Ataques entre Sistemas de Detecção de Intrusão Utilizando o SNORT: Modelo de conversão para CIDF. 2004. 82 f. Trabalho de Conclusão de Curso. (Graduação em Bacharelado Em Sistemas de Informação) - Sociedade Educacional de Santa Catarina. [SOARES, 1995] SOARES, Luiz F. G.; LEMOS, Guido; COLCHER, Sérgio. Redes de computadores: das LANs, MANs e WANs às redes ATM. Rio de Janeiro: Campus, 1995. [JUNIOR, 2006] JUNIOR, Francisco Vieira. Estudo de caso em segurança de redes usando como como ferra errame ment ntaa de IDS IDS (Int (Intru rusi sion on Dete Detect ctio ionn Sy Syst stem em)) o Sn Snor ort. t. FIEB FIEB 2006 2006.. 9p. 9p. Disponível em: http://www.fieb.org.br/iel/bitec/Arquivos/2006/FRANCISCO_VIEIRA_JUNIOR.pdf Acessado em: 13/03/2008. [CAMPELLO e WEBER, 2001] CAMPELLO, Rafael Saldanha, WEBER, Raul Fernando. Sistemas de Detecção de Intrusão. Disponível em: Acesso em: 12 de mar de 2008 [SOUZA e MARTINI, 1987] SOUZA, J.M.; MARTINI, M.R.B. Avaliação de confiabilidade de sistemas. In: Simpósio em Sistemas de Computadores Tolerantes a Falhas, 2., Campinas, Ago, 1987. Minicurso. Campinas, UNICAMP, 1987. p.24-28. [WEBER e JASCH-PÔRTO, 1996] WEBER, Taisy S.; JASCH-PÔRTO, Ingrid; WEBER, Raul. Tolerância a falhas: conceitos e técnicas, aplicações, arquitetura de sistemas confiáveis Notas de aula. Porto Alegre: Instituto de Informática, UFRGS, 1996. [ZWICKY, 2000] ZWICKY, Elizabeth D.; COOPER, Simon; CHAPMAN, Brent. Building Internet Firewalls. 2 ed. Sebastopol: O'Reilly & Associates, 2000. [HORA et al, 2001] HORA, Evandro Curvelo ; MATTOS, Cristiano Lincoln ; SILVA, Fabio ; CARNUT, Marco Antonio . Uma arquitetura extensível para a detecção remota de sniffers. In: Anais Simpósio de Segurança em Informática - SSI'2001, 2001, São José dos Campos/SP.
[FARMER e VENEMA, 1993] FARMER, Dan; VENEMA, Wietse. Improving the Security of Your Site By Breaking Into It. USENET posting, December 1993. [SILVA, 2005], Renato Maia. Redes neurais artificiais aplicadas à detecção de intrusão em redes TCP/IP. Dissertação (mestrado). Rio de Janeiro RJ PUC, Departamento de Engenharia Elétrica, 2005. 144p. [HEAD [HEADY Y, LUGE LUGER R et al, al, 1990] 1990] R. Heady Heady,, G. Luge Lugerr, A. Macca Maccabe be e M. Servi Servilla lla “The “The architec architecture ture of a network network level level intrusio intrusionn detecti detection on system system.. Technical echnical Report, Report, Computer Computer Science Department, University of New Mexico, Agosto de 1990 [JORGE, 2006], JORGE, Leandro Silva. Detecção de Intrusão em Redes de Computadores com estat estatíst ístic icas as PDF e class classif ific icado adores res Neura Neurais. is. Disse Disserta rtaçã çãoo (mestr (mestrado ado). ). Unive Universi rsidad dadee Presbiteriana Mackenzie. São Paulo SP. 106p. [LAKHINA, 2004] LAKHINA, A., A., CROVELLA, M., e Diot, C. (2004). Diagnosing Diagnosing networkwide traffic anomalies. In Proc. of the ACM SIGCOMM’2004, Portland, OR, EUA. [MAKHERJEE et al 1994] MAKHERJEE, B., HEBERLEIN, L. T., E LEVITT, K. N. Network intrusion detection. IEEE Network 8 (1994), 26–41. [ALLEN, 2000] ALLEN, Julia et al. State of the Practice of Intrusion Detection Technologies. Technica Technicall Report Report CMU/SEI-9 CMU/SEI-99-TR9-TR-028, 028, Software Software Enginee Engineering ring Institu Institute, te, Carnie Carnie Mellon Mellon University, jan. 2000. [ALLEN, 2000] ALLEN, Julia et al. State of the Practice of Intrusion Detection Technologies. Technical echnical Report Report CMU/SEI-9 CMU/SEI-99-TR 9-TR-028, -028, Software Software Enginee Engineering ring Institut Institute, e, Carnie Carnie Mellon Mellon University, jan. 2000. [SHIREY, 2000] SHIREY, R. RFC 2828 – Internet Security Glossary. The Internet Society, 2000. Disponível em: http://www.ietf.org/rfc/rfc2828.txt?number=2828. Acessado em: 08/04/2004. [SÊMOLA, 2003] SÊMOLA, Marcos. Gestão da Segurança da Informação – Uma visão Executiva. Executiva. Editora Campus. Rio R io de Janeiro, 2003. [HALME et al 1995] HALME, Lawrence R.; BAUER, Kenneth R. AINT Misbehaving – A Taxonomy axonomy of Anti-Int Anti-Intrusi rusion on Techniqu echniques. es. In: NATIO NATIONAL NAL INFORMA INFORMATIO TION N SYSTEMS SYSTEMS SECURITY CONFERENCE, CONFERENCE, 18., 1995, Baltimore, MD, USA. Anais… Anais… [S.l.: s.n.], 1995. [STONE [STONEBU BURNE RNER, R, 2001] 2001] STONE STONEBU BURNE RNER, R, Gary Gary. Underl Underlyi ying ng Technic echnical al Model Modelss for for Information Technology Security. NIST Special Publication 800-33, 2001. [BARFORD, 2001] BARFORD, P.; PLONKA, D. Characteristics of network traffic flow anomalies. In: ACM SIGCOMM INTERNET MEASUREMENT WORKSHOP, 1., 2001, San Fran Franci cisc sco, o, CA. CA. Proc Procee eedi ding ngs… s… New New York, ork, NY: NY: ACM ACM Pres Press, s, 2001 2001.. p. 69-7 69-73. 3. ISBN ISBN 1581134355.
[MAIA, [MAIA, 2005] 2005] MAIA, MAIA, Roberto Roberto Bomeny Bomeny.. Detecção Detecção da Intrusã Intrusãoo Util Utilizan izando do Classifi Classificaç cação ão Bayesiana. Tese de Mestrado. COPPE/UFRJ, Rio de Janeiro RJ, 2005. 139 p. [SILVA, 2007] Silva, S. L. Uma Metodologia para Detecção de Ataques no Tráfego de Redes Baseada em Redes Neurais. Tese de Doutorado do Curso de Pós-Graduação em Computação Aplicada. São José dos Campos SP. INPE, 2007. 256 p. [DENNING, 1987] DENNING, Dorothy. Dorothy. “An intrusion detection detection model”. IEEE Transactions Transactions on Software Engineering, Vol SE 13 No 2, Fevereiro de 1987. [GOMES, 2006]GOMES, Daniel. Detecção de intrusão em redes de computadores utilizando classi classifi ficad cadore oress one-cl one-clas ass. s. Pub Public licaç ação ão Escol Escolaa Pol Polit itécn écnic icaa de Perna Pernamb mbuco uco.. Trabal rabalho ho de Conclusão do Curso de Eng. da Computação. Recife PE, 2006. 74p. [LAUREANO, 2005] LAUREANO, Marcos Aurelio Pchek. Manual de Gestão de Segurança da Informação. 2005. 132p. [LAUREANO, 2004] LAUREANO, M. A. P. Uma abordagem para a proteção de detectores de intrusão baseada em máquinas virtuais. Dissertação (Mestrado em Informática Aplicada) Centro de Ciências Exatas e de Tecnologia, Pontifícia Universidade Católica do Paraná, Curitiba, 2004. 103 f. [RAITZ [RAITZ,, 2005] 2005] RAIT RAITZ, Z, Luci Lucian ano. o. Uti Utiliz lizaç ação ão de Máquin Máquinas as Virtuai irtuaiss para para Impla Implanta ntarr um Mecanismo Transparente de Detecção de Intrusão em Servidores Web. Depto. De Sistemas de Computação. Universidade Regional de Blumenau. Blumenau SC: 2005. 50p.
ANEXO 1 TUTORIAL DE INSTALAÇÃO DO SNORT
Este anexo visa apresentar a instalação do Snort com atualização de regras via oinkmaster. Para produzir este anexo, foi utilizado o Snort 2.8.2.1 e o Ubuntu Server 8.04.
1. obtendo privilégios de root e criando o diretório de instalação $ sudo -i Digite sua senha: # cd /root # mkdir snorttmp # cd /root/snorttmp
2. Instalando dependências e bibliotecas para compilação # apt-get install build-essential # apt-get install libpcap0.8-dev libmysqlclient15-dev mysql-client-5.0 mysql-server-5.0 bison flex apache2 libapache2-mod-php5 php5-gd php5mysql libphp-adodb php-pear pcregrep libpcre3-dev
3. Download do snort # cd /root/snorttmp #wget http://www.snort.org/dl/current/snort-2.8.2.1.tar.gz #tar zxvf snort-2.8.2.1.tar.gz
4. Download das regras (snort rules) Crie um diretório temporário para as regras: # mkdir /root/rules # cd /root/rules
Existem 4 tipos de download de regras do snort 1 - Subscrição (subscription release) - Pago 2 - Registrado (registered user release) - Gratuito 3 - Sem registro (unregistered user release) - Gratuito 4 - Comunidade (Community Rules ) - Gratuito
Recomen Recomendam damos os o méto método do 2. Para Para o dow downlo nload ad das regras regras “Sourc “Sourcefir efiree VRT VRT Certif Certified ied Rules Rules (registered user release)” o registro é obrigatório, mas sem custos. Faça o registro, para p ara a página: http://www.snort.org/pub-bin/downloads.cgi#VRT e baixe a versão mais atualizada das regras na URL a seguir: http://www.snort.org/pub-bin/downloads.cgi/Download/vrt_os/snortrules-snapshot-CURRENT.tar.gz Salve o arquivo no diretório “/root/snorttmp” e descompacte-o. #tar zxvf
snortrules-snapshot-CURR snortrules-s napshot-CURRENT.tar.gz ENT.tar.gz
5. Compilar o Snort # cd /root/snorttmp/snort-2.8.2.1 #./configure -enable-dynamicplugin –with-mysql # make # make install
6. Mover arquivos É necessário mover os arquivos de regras (rules) e o arquivo de configuração do Snort para o local definitivo. #mkdir /etc/snort /etc/snort/rules /var/log/snort #cd /root/snorttmp/snort-2.8.2.1/etc #cp * /etc/snort/ #cd /root/snorttmp/rules #cp * /etc/snort/rules /etc/snort/r ules
7. Configure Snort Edite o arquivo “/etc/snort/snort.conf “ Procure variável: var HOME_NET any Altere para: var HOME_NET 192.168.10.0/24 192.168.10.0/24
#ou outra diferente de 192.168.10.0/24
Procure a linha: var EXTERNAL_NET any Altere para: var EXTERNAL_NET !$HOME_NET #O que não for HOME_NET é externo Procure a linha: RULE_PATH ../rules Altere para: var RULE_PATH /etc/snort/rules #Caminho para as regras Procure a linha a seguir e remova o caractere de comentário “#” #output database: log, mysql, user=root password=test dbname=db host=localhost
Altere para: output database: log, mysql, user=snort password= snort_password dbname=snort host=localhost
Lembre-se de colocar a mesma senha no campo “snort_password” que será configurada para acesso a base snort no MySQL.
Salve o arquivo: /etc/snort/snort.conf Altere as configurações do arquivo de configuração para deixa-lo mais seguro: # chmod 600 /etc/snort/snort.conf 8. Configurar o Mysql
Faça o Login no mysql server: # mysql -u root -p Crie a base de dados snort. Conceda os privilégios de acesso ao usuário “snort” e atribua uma senha. mysql> create database snort; mysq mysql> l> gran grant t all all priv privil ileg eges es identified by 'snort_password';
on
snor snort. t.* *
mysql> exit
Use o “snort schema” para o Layout do banco de dados # mysql -D snort -u snort -p < /root/snorttmp/snort-2.8.2.1/schemas/create_mysql
Verifique se a base de dados do Snort foi criada corretamente correta mente # mysql -u snort -p mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | snort | +--------------------+
2 rows in set (0.00 sec) mysql> use snort; mysql> show tables; +------------------+ | Tables_in_snort | +------------------+ | data | | detail | | encoding | | event | | icmphdr | | iphdr | | opt | | reference | | reference_system | | schema | | sensor | | sig_class | | sig_reference | | signature | | tcphdr | | udphdr | +------------------+
16 rows in set (0.01 sec) mysql> exit
to
'sno 'snort rt'@ '@'l 'loc ocal alho host st' '
9. Testar o APACHE/PHP Crie um arquivo arquivo index.php com o seguinte seguinte conteúdo # nano /var/www/index.php /var/www/index.php
Teste o funcionamento do Apache/PHP acessando o servidor digitando http://localhost na barra de endereços do navegador.
10. Faça o download do BASE (Basic Analysis and Security Engine) # cd /var/www/ # wget http://ufpr.dl.sourceforge.net/sourceforge/secureideas/base-1.4.0.tar. gz # tar zxvf base-1.4.0.tar.gz base-1.4.0.tar.gz # rm /var/www/base-1.4.0.ta /var/www/base-1.4.0.tar.gz r.gz # mv /var/www/base-1.4.0 /var/www/base-1.4.0 /var/www/base # chmod 757 /var/www/base /var/www/base
11. Digite os comando a seguir para instalar as extensões do pear . # pear install Image_Color # pear install Image_Canvas-alpha # pear install Image_Graph-alpha
12. Configuração do BASE via WEB. Aponte seu Web Browser para a URL: http://IP_do_short/base/setup. Na página que abrir, clique em “continue” .... a) Passo 1 de 5: Em Language: Portugues-PT Digite o caminho para o ADODB: /usr/share/php/adodb b) Passo 2 de 5: Preencha os campos Database type = MySQL, Database name = snort, Database Host = localhost, Database username = snort, Database Password = SENHA_ACESSO_AO_SnortDB SENHA_ACESSO_AO_SnortDB c) Passo 3 de 5: Se você desejar a autenticação, digite o nome do usuário/senha para acesso. Ex: User name: admin / Password: toor d) Passo 4 de 5: Clique no botão “Create BASE AG”. Veja se aparece as mensagens: Successfully created 'acid_ag' Successfully created 'acid_ag_alert' Successfully created 'acid_ip_cache' Successfully created 'acid_event' Successfully created 'base_roles' Successfully INSERTED Admin role Successfully INSERTED Authenticated User role Successfully INSERTED Anonymous User role Successfully INSERTED Alert Group Editor role Successfully created 'base_users'
Adds tables to extend the Snort DB DB to support the BASE functionality functionality - DONE
e) Passo 5 de 5: Se tudo correu bem no passo 4 clique no botão “Now continue to step 5....” Ao final, aparecerá a página do BASE. Altere as permissões para o diretório: /var/www/base # chmod 775 /var/www/base /var/www/base
13. Altere o arquivo “/etc/rc.local” Adicione a seguinte entrada no final do arquivo. (obs: para “ouvir” a interface eth1). # /usr/local/bin/snort /usr/local/bin/snort -c /etc/snort/snort.conf /etc/snort/snort.conf -i eth1 -D
14. Instalação do Oinkmaster # apt-get install oinkmaster # nano /etc/oinkmaster.conf
Altere a seguinte linha # url = http://www.snort.org/pub-bin/oinkmaster.cgi// here>/
/snortrulesEx: url = http://www.snort.org/pub-bin/oinkmaster.cgi/
14.3. Testando o Oinkmaster Apenas simula a instalação. # oinkmaster -c -o /tmp/rules/
14.2. Usando as Bleeding Edge Threats Editar o arquivo oinkmaster.conf: # nano /etc/oinkmaster.conf
Adicione a seguinte linha url = http://www.bleedingsnort.com/bleeding.rules.tar.gz Para Instalar: # oinkmaster -i -o /etc/snort/rules/
Após a instalação, inclua a seguinte linha no final do arquivo “/etc/snort/snort.conf” include $RULE_PATH/bleeding.conf
Após a instalação será necessário reiniciar o Snort.
ANEXO 2 - CONTEÚDO DO DVD PASTA “MAQUINAS VIRTUAIS” Item bt3-final.iso UbuntuServer.zip W indows XP Professiona.
Descrição ISO da distribuição Backtrack 3 (Final release) Ubuntu Server 8.04* W indows XP Pro – atacante PASTA “SOFTWARE”
Item apache apa che_2. _2.2.92.9-wi win32 n32-x8 -x86-op 6-opens ensslsl-0.9 0.9.8h .8h-r2 -r2.ms .msii framework-3.1.exe idspm.v2.2.0.20.exe Nessus-3.0.6.1.exe NessusClient-3.0.0.msi nessus_3.0_advanced_user_guide.pdf nessus_3.0_client_guide.pdf nessus_3.0_installation_guide.pdf ossec-agent-win32-1.5.exe ossec-hids-1.5.1.tar.gz RetinaDemo585.exe snort-2.8.2.1.tar.gz Snort_2_8_2_1_Installer.exe VMware-s e-serverer-installerer-1.0.6-91891 891.exe VMware-workstation-6.0.4-93057.exe VMwa VMware re-w -wor orks ksta tatition on-6 -6.0 .0.4 .4-9 -930 3057 57.i.i38 386. 6.ta tar. r.gz gz W inPcap_4_0_2.exe
Descrição Servi Servidor dor WEB Apac Apache he 2.2. 2.2.9 9 ( for for Windows Windows)) MetaSploit Framework 3 (versão .3.1) IDS Po Policy Ma Manager: pa para ge gerenciamento regras do Snort. Security Scanner Nessus, para verificação falhas/vulnerabilidades. Cliente Nessus Manual do us usuário. Manual do Cliente Nessus Manual de instalação do Nessus Agente OSSEC (for W indows) Servidor OSSEC (for Linux) Security Scanner Nessus, para verificação falhas/vulnerabilidades (versão evaluate) Servidor IDS Snort (for Linux) Servidor IDS Snort (for W indows) VMware Se Server (fo (forr Win Windows)34 VMware Wo Workstation (f (for Wi Windows)35 VMwa VMware re Works Worksta tatition on (for (for Linu Linux) x) Programa an análise re rede ca captura pa pacotes plataformas Win32
Obs: A cópia desta monografia encontra-se no DVD (monografia_ids.pdf) 91AK1-YF7F1-15M71-4LMCD CD 34 Licençca VMWare Server : 91AK1-YF7F1-15M71-4LM registro. 35 As licenças do VMWare Workstation podem ser obtidas no site www.vmware.com através de registro.
de de de
de
em em