59
Curso de Bacharelado em Ciência da Computação EVERTON GAMBA LERMEN FRAMEWORK PARA DETECÇÃO E FILTRAGEM DE ALERTAS DE INTRUSÃO UTILIZANDO REDES BAYESIANAS Canoas, 2008

Framework para Detec o e Filtragem de Alertas de Intrus o ... · IDS have been directed toward techniques that deal with decision problems, among them, Bayesian Networks - BN. This

Embed Size (px)

Citation preview

Curso de Bacharelado em Ciência da Computação

EVERTON GAMBA LERMEN

FRAMEWORK PARA DETECÇÃO E FILTRAGEM DE ALERTAS DE

INTRUSÃO UTILIZANDO REDES BAYESIANAS

Canoas, 2008

2

EVERTON GAMBA LERMEN

FRAMEWORK PARA DETECÇÃO E FILTRAGEM DE ALERTAS DE

INTRUSÃO UTILIZANDO REDES BAYESIANAS

Trabalho de conclusão apresentado para a banca examinadora do curso de Ciência da Computação do Centro Universitário La Salle, como exigência parcial para a obtenção do grau de Bacharel em Ciência da Computação, sob orientação do Prof. Me. Gaspare Giuliano Elias Bruno.

Canoas, 2008

3

DEDICATÓRIA

Dedicado esse trabalho de conclusão à minha família, em especial a minha

esposa, que nos momentos mais difíceis dessa jornada, sempre dedicou o seu amor

e incentivo. Aos grandes amigos, familiares e colegas que compartilharam de muitos

dias na execução de relatórios, artigos e seminários. Enfim a todas as pessoas que

contribuíram e ajudaram para a conclusão dessa caminhada.

4

RESUMO

O aumento das redes de computadores e utilização da Internet para

divulgação de produtos e/ou serviços, a preocupação com a segurança das informações por elas trafegadas e o aumento dos ataques fez surgir uma demanda por ferramentas que facilitem a identificação destes ataques. Os sistemas de detecção de intrusão surgiram para suprir esta necessidade. Mas, devido ao surgimento de novas técnicas de invasão, pesquisas que buscam adicionar “inteligência” aos sistemas de detecção de intrusão têm voltado seus olhares para técnicas que tratam problemas de decisão, entre elas redes bayesianas. Neste contexto, esta monografia busca apresentar uma proposta de framework que agregue aos sistemas de detecção de intrusão, redes bayesianas como método de classificação, possibilitando a identificação de novos ataques e diminuição dos falsos alertas.

PALAVRAS-CHAVE: Sistemas de Detecção de Intrusão, Redes Bayesianas.

ABSTRACT

The increase of computer networks and Internet use for spreading products and/or services, concern with security of the information and increase of attacks created a demand for tools that facilitates the identification of these attacks. The Intrusion Detection Systems - IDS appeared to supply this necessity. But the sprouting of new invasion techniques, researches that try to add “intelligence” to the IDS have been directed toward techniques that deal with decision problems, among them, Bayesian Networks - BN. This paper presents a proposal of framework that aggregate bayesian networks classification method to IDS’s, making possible identification of new attacks and reduction of false alerts. KEYWORDS: Intrusion Detection System, Bayesian Network.

5

LISTA DE ABREVIATURAS E SIGLAS

ASP Active Server Pages

CERT.br Centro de Estudos, Respostas e Tratamento de Incidentes de

Segurança do Brasil

CERT/CC Computer Emergency Response Team Coordination Center

CPU Central Processing Unit

EM Expectation Maximization

GAD Grafo Acíclico Dirigido

IDES Intrusion Detection Expert System

IDS Intrusion Detection System

IEEE Institute of Electrical and Electronics Engineers

IIS Internet Information Services

IPS Intrusion Prevention System

MEM Memória

RB Redes Bayesianas

SNMP Simple Network Management Protocol

SSH Secure Shell

TCP Transmission Control Protocol

UDP User Datagram Protocol

VPN Virtual Private Network

6

LISTA DE FIGURAS

Figura 1– Arquitetura genérica de um IDS. ............................................................... 17

Figura 2 – Linha de evolução dos sistemas de detecção de intrusão. ...................... 21

Figura 3 – Comparação entre modelos de redes bayesianas ................................... 34

Figura 4 – naive-Rede Bayesiana construída............................................................ 38

Figura 5 – Rede bayesiana durante fase de treinamento. ......................................... 43

Figura 6 – Rede bayesiana durante fase de teste 1. ................................................. 44

Figura 7 – Rede bayesiana durante fase de teste 2. ................................................. 46

Figura 8 – Rede bayesiana durante fase de teste 3. ................................................. 47

Figura 9 – Rede bayesiana durante fase de teste 4. ................................................. 48

Figura 10 – Nessus Web Servers – plugins selecionados. ....................................... 58

Figura 11 – Nessus Databases – plugins selecionados. ........................................... 59

7

LISTA DE TABELAS

Tabela 1 – Ferramentas e sua respectiva descrição ................................................. 35

Tabela 2 – Ferramentas de sua respectiva descrição ............................................... 36

Tabela 3 – Ferramentas, seus respectivos serviços e descrição .............................. 36

Tabela 4 – Faixa de valores definidas para cada variável ......................................... 38

Tabela 5 – Parâmetros de ataque ao servidor IIS. .................................................... 39

Tabela 6 – Parâmetros de ataque ao servidor SSH .................................................. 40

Tabela 7 – Parâmetros de ataque ao servidor SQL Server. ...................................... 40

Tabela 8 – Parâmetros de acesso normal ao servidor IIS. ........................................ 41

Tabela 9 – Parâmetros de acesso normal ao servidor SSH. ..................................... 41

Tabela 10 – Cenário de teste 1. ................................................................................ 44

Tabela 11 – Cenário de teste 2. ................................................................................ 45

Tabela 12 – Cenário de teste 3. ................................................................................ 47

Tabela 13 – Cenário de teste 4. ................................................................................ 48

8

LISTA DE GRÁFICOS

Gráfico 1 – Total de incidentes reportados ao CERT.br por ano. .............................. 12

Gráfico 2 – Sofisticação de ataque versus Conhecimento do invasor. ...................... 12

9

SUMÁRIO

1 INTRODUÇÃO ................................................................................................. 11

2 SISTEMA DE DETECÇÃO DE INTRUSÃO ................... ................................. 15

2.1 Componentes: categorias e métodos de análise ...... ............................... 17

2.1.1 Sensores .................................................................................................... 17

2.1.1.1 Baseado em computador ............................................................ 18

2.1.1.2 Baseado em rede ........................................................................ 18

2.1.2 Analisadores ............................................................................................... 19

2.1.2.1 Detecção por mau uso ................................................................ 20

2.1.2.2 Detecção por anomalia ............................................................... 20

2.2 IDSs: Comerciais e de Domínio Público ............. ...................................... 21

2.2.1 Comerciais .................................................................................................. 22

2.2.2 Domínio público .......................................................................................... 22

3 REDES BAYESIANAS .................................. .................................................. 24

3.1 Construção ........................................ .......................................................... 25

3.1.1 PC............................................................................................................... 26

3.1.2 EM .............................................................................................................. 26

3.2 Inferência ........................................ ............................................................. 27

3.2.1 Árvore de Junção ....................................................................................... 28

3.2.2 Monte Carlo ................................................................................................ 28

3.3 Aplicações ........................................ ........................................................... 29

4 TRABALHOS RELACIONADOS ............................ ........................................ 30

4.1 A Framework for an Adaptive Intrusion Detection Sys tem using Bayesian

Network ........................................... ..................................................................... 30

4.2 Bayesian Learning Networks Approach to Cybercrime D etection ......... 31

5 MODELO PROPOSTO .................................................................................... 32

5.1 Metodologia ....................................... .......................................................... 34

5.1.1 Ambiente .................................................................................................... 34

5.1.2 Experimentos .............................................................................................. 36

5.1.3 Construção ................................................................................................. 37

10

5.1.4 Validação .................................................................................................... 39

5.2 Parâmetros de simulação ........................... ................................................ 39

6 SIMULAÇÕES E RESULTADOS ........................... ......................................... 42

6.1 Cenário de treinamento 1 .......................... ................................................. 42

6.2 Cenário de teste 1 ................................ ....................................................... 43

6.3 Cenário de teste 2 ................................ ....................................................... 45

6.4 Cenário de teste 3 ................................ ....................................................... 46

6.5 Cenário de teste 4 ................................ ....................................................... 48

7 CONCLUSÕES ................................................................................................ 50

REFÊRENCIAS BIBLIOGRÁFICAS ........................ ............................................. 52

APÊNDICE A – EXEMPLO DE CAPTURA DE PACOTES, CPU E M EMÓRIA ... 55

APÊNDICE B – BASE UTILIZADA PARA TREINAMENTO DA RB .................... 56

APÊNDICE C – SCRIPT DE COLETA DE INFORMAÇÕES MEM E CPU .......... 57

APÊNDICE D – NESSUS WEB SERVERS PLUGINS ........... .............................. 58

APÊNDICE E – NESSUS DATABASES PLUGINS ............. ................................. 59

11

1 INTRODUÇÃO

Cada vez mais as redes de computadores e a Internet têm se tornado

indispensáveis para muitas empresas e instituições de ensino. A Internet possibilita

o acesso rápido à informação, melhorando a comunicação e reduzindo custos. As

empresas se utilizam da Internet para divulgar informações e realizar negócios com

clientes, parceiros e fornecedores. Da mesma maneira que as redes de

computadores e a Internet mudaram a forma das empresas fazerem negócios, o

risco envolvido nestas operações também aumentou. Ataques a redes de

computadores podem causar perda de dinheiro, tempo, reputação e informações

confidenciais.

Durante os últimos anos, o número de ataques a redes de computadores,

assim como a severidade destes, aumentou consideravelmente [ALLEN00]. No

Brasil, conforme mostra o Gráfico 1 – Total de incidentes reportados ao CERT.br por

ano., somente nos primeiros três meses de 2008, foram reportados mais ataques

que em todo o ano de 2002. Na década de 80, um hacker1, através de seu

computador pessoal, poderia acessar de dez a cem sistemas de computadores, ele

era um especialista em desenvolver métodos para invadir sistemas; hoje, qualquer

um pode realizar ataques a redes de computadores, utilizando ferramentas

automáticas de intrusão, facilmente encontradas na Internet [ALLEN00].

1 Hacker é um especialista em descobrir falhas em sistemas de computadores, explorando vulnerabilidades para obter acesso não autorizado.

12

Gráfico 1 – Total de incidentes reportados ao CERT.br por ano. Fonte: CERT.br, 2008.

O Gráfico 2 – Sofisticação de ataque versus Conhecimento do invasor. traz

uma comparação, ao longo de 20 anos (1980-2000), entre a sofisticação dos

ataques e o conhecimento técnico para realizá-los.

Gráfico 2 – Sofisticação de ataque versus Conhecimento do invasor. Fonte: CERT/CC, 2002.

13

Como conseqüência, técnicas clássicas de segurança de computadores estão

se tornando menos eficazes. Simultaneamente, a detecção de intrusão tem surgido

como uma nova e importante técnica para a proteção dos sistemas de computadores

[DEBAR00].

Detecção de intrusão pode ser definida como um processo de identificação de

comportamento malicioso tendo como alvo uma rede e seus recursos

[KRUEGEL03]. Os IDSs são ferramentas utilizadas para monitorar e analisar o

tráfego em uma rede de computadores. Isto não é uma tarefa fácil, devido ao grande

volume de informação trafegada e as necessidades diárias de atualizações destas

ferramentas, para se adaptarem a métodos até então desconhecidos de ataques.

Outro problema relevante é o grande volume de alertas e os chamados falsos

positivos – durante o processo de análise, o IDS considerou um tráfego normal de

dados como intrusão, bloqueando assim um acesso válido; ou os chamados falsos

negativos – o IDS considerou um tráfego de intrusão como normal deixando, assim,

a rede vulnerável.

Estudos para melhorar a eficácia dos IDSs, fazendo com que estas

ferramentas detectem ataques desconhecidos e reduzam o número de falsos

positivos e falsos negativos, vêm agregando, sob diferentes aspectos, redes

bayesianas (RB). Rede bayesiana é uma ferramenta de modelagem gráfica, utilizada

para modelar problemas de decisão que contenham incertezas [JEMILI07]. Nesse

contexto, o objetivo desta monografia é apresentar um modelo de framework para

detecção e análise das informações geradas pelos IDSs, utilizando redes

bayesianas e automatizando o processo de geração de regras – com o intuito de

diminuir o problema dos falsos positivos e falsos negativos.

A estrutura desta monografia compreende sete capítulos, contando esta

introdução. No segundo capítulo será abordado o conceito de IDS, onde são

apresentados os componentes, categorias e métodos de análises. Também são

apresentadas algumas ferramentas comerciais e de domínio público. O terceiro

capítulo detalha o conceito de RB, descrevendo métodos de construção, algoritmos

de inferência e algumas aplicações.

No quarto capítulo será descrito o modelo proposto, onde são detalhados os

pontos determinantes para a estrutura e definição dos dados a serem simulados,

que definem os resultados deste trabalho. O quinto capítulo, por sua vez, apresenta

as simulações e resultados obtidos, bem como a análise dos mesmos.

14

No sexto capítulo, são descritos dois trabalhos relacionados ao tema desta

monografia, onde são relatadas as limitações dos modelos propostos, mas também

destacadas as potencialidades referentes a cada estudo. Por fim, no sétimo capítulo,

é descrita a conclusão desta monografia, onde são apresentadas as limitações do

trabalho, bem como sugestões para trabalhos futuros.

15

2 SISTEMA DE DETECÇÃO DE INTRUSÃO

Em 1980, James P. Anderson publicou um estudo destacando maneiras de

aperfeiçoar a auditoria e a fiscalização da segurança nos clientes. A idéia original

por trás da detecção automática de intrusão é creditada a ele em seu artigo

“Computer Security Threat Monitoring and Surveillance” [ALEN00] [ALESSON99]

[ARVIDSON03].

Entre 1984 e 1986, Dorothy Denning e Peter Neumann pesquisaram e

desenvolveram o primeiro modelo de sistema de detecção de intrusão de tempo real

[BRUNEAU01] [ALEXSSON06] [CHEBROLU04]. Este protótipo foi chamado de

Sistema Especialista de Detecção de Intrusão (Intrusion Detection Expert System -

IDES). Inicialmente, o IDES foi um sistema baseado em regras, treinado para

detectar atividades maliciosas conhecidas. O artigo publicado por James P.

Anderson e o trabalho no IDES foi o começo de uma série de pesquisas em

sistemas de detecção de intrusão – realizadas entre as décadas de 80 e 90.

Os sistemas de detecção de intrusão são softwares ou hardwares que

automatizam o processo de monitoramento e análise. Ao serem propostos, para

complementar os níveis de segurança, permitem que as organizações protejam seus

sistemas de ameaças que vêm junto com o aumento da conectividade em rede.

Uma intrusão é definida como sendo uma violação das políticas de um sistema. Ela

pode ser causada por: a) ataques vindos da Internet; b) usuários de um sistema que

tentam obter privilégios adicionais, para os quais eles não estão autorizados; e

c) usuários que fazem uso malicioso dos privilégios que lhe são fornecidos.

A detecção de intrusão, por sua vez, refere-se aos mecanismos que são

desenvolvidos para detectar estas violações, sendo baseada na suposição de que

atividades intrusivas possuem características diferentes das atividades normais do

sistema. Assim, um IDS pode ser definido como um sistema automático de detecção

16

e alerta de qualquer natureza, onde uma intrusão tenha ocorrido ou esteja para

acontecer [AXELSSON06]. Cabe ressaltar que os IDSs não vêm para substituir

técnicas como autenticação e controle de acesso; mas sim, para agregar mais uma

camada de proteção às redes de computadores. Abaixo são destacadas algumas

razões para uma organização implementar um IDS [BACE01]:

a) Prevenir problemas de comportamento, aumentando a capacidade de

identificar e punir aqueles que atacam ou abusam do sistema;

b) Detectar ataques e outras violações de segurança que não são

abrangidas por outras medidas de segurança;

c) Detectar e lidar com as conseqüências dos ataques;

d) Documentar as ameaças existentes em uma organização;

e) Atuar como um controle de qualidade para projetos de segurança e

administração de rede, especialmente em grandes e complexas

organizações;

f) Fornecer informações úteis sobre ataques, possibilitando um melhor

diagnóstico, e conseqüente, recuperação e correção.

Buscando ilustrar a forma de funcionamento de um IDS, a Figura 1 abaixo

mostra uma arquitetura genérica. O sistema monitorado pode ser um único

computador, ou um segmento de rede. Os sensores serão abordados, mais

detalhadamente, no item 2.1, mas, sucintamente, são responsáveis por realizar a

coleta de informações. As informações coletadas pelos sensores podem ser

armazenadas em um banco de dados. Já os analisadores, se utilizam destas

informações para fazer a identificação e/ou classificação do trafego, podem, em caso

de um ataque, gerar alertas. Estes alertas gerados podem ser encaminhados a um

analista, o qual responde, de forma manual, ao ataque, ou fazendo uma nova

configuração na sensibilidade do analisador. Também é possível, que o alerta, gere

uma resposta automática, por exemplo, bloqueando o tráfego que o gerou.

17

Figura 1– Arquitetura genérica de um IDS. Fonte: Baseado em [ALEXSSON06]

Os sensores e os analisadores são descritos no item 2.1.

2.1 Componentes: categorias e métodos de análise

Um IDS pode ser dividido em dois componentes principais: sensores e

analisadores.

2.1.1 Sensores

Os sensores são os responsáveis por coletar os dados. A entrada para um

sensor pode ser qualquer parte de um sistema que contenha evidências de uma

intrusão. Os exemplos mais comumente utilizados, como entrada para um sensor,

são: “pacotes de rede”, “arquivos de log2” e “chamadas ao sistema operacional”. Os

sensores coletam estas informações e as encaminham para o analisador, podendo

ou não ser armazenadas antes do envio. As duas categorias principais de sensores

2 Arquivo de log é um arquivo que contém uma lista de ações e mensagens de erros, detalhando o histórico de operações de um software.

18

são “baseado em computador” e “baseado em rede” [BACE01] [CHEBROLU04]

[SCARFONE07].

2.1.1.1 Baseado em computador

Um IDS que utilize sensor “baseado em computador” trabalha com as

informações coletadas de um único computador, oferecendo maior precisão e

confiabilidade em determinar quais processos e usuários estão envolvidos em um

ataque. As informações são normalmente obtidas de duas fontes: chamadas ao

sistema operacional e logs do sistema. As chamadas ao sistema operacional são

geradas pelo kernel3, sendo mais detalhadas e melhor protegidas que o sistema de

logs. Por outro lado, o sistema de logs é menor e, por isso, de fácil compreensão.

Abaixo, são destacadas algumas vantagens e desvantagens de IDSs que se

enquadram nesta categoria [BACE01].

a) Vantagens:

- Possui acesso a todo o contexto de informação necessária para

determinar quando uma intrusão ocorreu.

- Pode operar em ambientes onde a informação trafegada é

encriptada.

b) Desvantagens:

- É mais difícil de gerenciar, pois cada computador monitorado

deve ser configurado e gerenciado separadamente.

- Como o IDS roda no mesmo computador, ele pode ser

desativado em decorrência de um ataque.

- Concorre, computacionalmente, pelos mesmos recursos que o

computador monitorado, impactando no desempenho do

mesmo.

2.1.1.2 Baseado em rede

A grande maioria dos IDSs comerciais é da categoria “baseado em rede”.

Estes IDSs identificam ataques através da captura e análise dos pacotes trafegados

3 Kernel é o programa que forma a parte principal de um sistema operacional. Possui controle total sobre todas as ações que ocorrem no sistema.

19

na rede. Escutando um segmento de rede ou switch4, um IDS desta categoria pode

monitorar e proteger todos os computadores que se encontram conectados neste

segmento. A seguir, são destacadas algumas vantagens e desvantagens dos IDSs

que utilizam sensores desta categoria [BACE01].

a) Vantagens:

- Um número pequeno de IDSs pode monitorar uma grande infra-

estrutura de rede.

- O impacto na infra-estrutura de rede existente é bastante

pequeno. IDSs baseados em rede são normalmente dispositivos

passivos que analisam o tráfego da rede, sem interferir em sua

operação normal.

- É bastante seguro e até mesmo invisível para muitos atacantes.

b) Desvantagens:

- A necessidade de analisar os pacotes rapidamente faz com que

o IDS desta categoria detecte um número pequeno de ataques

de modo a consumir o menor recurso computacional possível,

diminuindo assim sua eficiência.

- Não consegue analisar informação encriptada. Este problema

aumenta, à medida que mais organizações e também atacantes

utilizem Redes Virtuais Privadas (Virtual Private Network - VPN).

- Possui uma visão mais limitada, sendo mais suscetível a falsos

positivos e falsos negativos.

2.1.2 Analisadores

Os analisadores recebem a entrada de um ou mais sensores ou ainda, de

outro analisador. O analisador é responsável por determinar se uma intrusão

ocorreu. A saída deste componente é a indicação de que uma intrusão tenha

ocorrido. Dessa forma, a saída pode conter evidências que suportem a conclusão

de intrusão. O analisador pode ainda, fornecer um guia, sobre quais ações podem

ser tomadas para bloquear o acesso intrusivo e/ou corrigir a falha de segurança que

4 Switch é um equipamento capaz de unir diversos computadores em uma mesma rede local (LAN).

20

possibilitou tal acesso. Os métodos de análises mais utilizados são “detecção por

mau uso” e “detecção por anomalia” [BACE01] [CHEBROLU04] [SCARFONE07]

[ALEXSSON06].

2.1.2.1 Detecção por mau uso

Este método analisa o comportamento intrusivo baseado no conhecimento

das vulnerabilidades do sistema e num modelo que descreve os ataques

conhecidos. A detecção por mau uso também é conhecido por detecção baseada

em assinatura, onde cada ataque ou grupo de ataques é identificado por uma

assinatura específica. A seguir, são destacadas vantagens e desvantagens, com

relação aos IDSs que utilizam este método de análise [BACE01].

a) Vantagens:

- É bastante eficiente na detecção de ataques conhecidos, não

gerando um número excessivo de falsos alarmes.

- Consegue diagnosticar rapidamente a utilização de uma

ferramenta ou técnica de ataque específica.

- Possibilita aos gerentes de sistemas, terem conhecimento do

seu nível de segurança, rastreando falhas de segurança em

seus sistemas.

b) Desvantagens:

- Identifica apenas ataques conhecidos e precisa,

constantemente, ser atualizado com novas assinaturas de

ataques.

- A maioria é projetada para utilizar assinaturas fortemente

definidas, fazendo com que não detecte variações de um ataque

conhecido.

2.1.2.2 Detecção por anomalia

Já este método busca identificar o comportamento intrusivo, assumindo que

um ataque é diferente de uma atividade normal. Detecções por anomalia constroem

um perfil que representa o comportamento normal de usuários, computadores e

conexões de rede. Estes perfis são construídos, a partir de dados coletados,

durante um período de operação normal. Abaixo, são destacadas algumas

vantagens e desvantagens dos IDSs que utilizam este método de análise [BACE01].

21

a) Vantagens:

- Pode detectar um comportamento intrusivo ou sintomas de um

ataque.

- Pode gerar informações que podem ser utilizadas para definir

assinaturas para detecção por mau uso.

b) Desvantagens:

- Normalmente, gera um grande número de falsos positivos e

falsos negativos.

- Requer um grande conjunto de dados de treinamento para

categorizar um comportamento normal.

2.2 IDSs: Comerciais e de Domínio Público

O desenvolvimento de sistemas de detecção de intrusão comerciais iniciou

por volta de 1990. A primeira empresa a colocar um IDS no mercado foi o

Laboratório Haystack. Simultaneamente a isto, o Centro de Suporte a Criptografia,

da Forca Aérea Americana, também desenvolveu um sistema capaz de analisar o

tráfego de informação em suas redes. Deste projeto, nasceu à empresa Wheel

Group, que mais tarde, foi comprada pela Cisco. O Figura 2 abaixo traça uma linha

do tempo, entre o primeiro insite sobre ameaças e monitoramento de computadores,

até o chamado “estouro” dos sistemas de detecção de intrusão.

Figura 2 – Linha de evolução dos sistemas de detecção de intrusão. Fonte: Baseado em [INNELLA01].

A seguir são descritos dois exemplos de IDSs de cada grupo – comercial e

domínio público.

22

2.2.1 Comerciais

a) Cisco Secure IDS

É um IDS baseado em rede, o qual realiza detecção por mau uso. O

Cisco Secure IDS utiliza uma base de assinatura para identificar

acesso malicioso, disparando assim, alertas de intrusão. O sistema é

composto por sensores – dispositivos de rede – que realizam um

monitoramento em tempo real dos pacotes trafegados na rede; e por

uma plataforma de gerenciamento, onde é possível configurar e

monitorar toda a ferramenta [CARTER01].

b) Enterasys Dragon IDS/IPS

Baseado em rede e em computador, este IDS suporta,

simultaneamente, detecção por assinatura e também por anomalia.

Vale ressaltar que, no site do fabricante, não foram encontradas

maiores informações sobre a técnica utilizada, para realizar a detecção

por anomalia [ENTERASYS08].

2.2.2 Domínio público

a) Snort

IDS de domínio público, capaz de analisar os pacotes trafegados na

rede em tempo real. É baseado em rede e realiza detecção por mau

uso, possuindo uma linguagem de regras bastante flexível [SNORT08].

b) Bro

IDS baseando em rede, o Bro analisa o tráfego de rede à procura de

atividades suspeitas. Ao localizar uma atividade suspeita, extrai a

semântica – em nível de aplicação – e realiza uma análise orientada a

evento. Tal análise compara a atividade identificada com um padrão

23

conhecido; sendo que a detecção não é apenas definida por

assinatura, mas também em termos de evento [BRO08].

Os IDSs, em sua maioria, utilizam o método de detecção por mau uso.

Pesquisas acadêmicas buscam agregar inteligência aos IDSs, tornando-os capazes

de realizar detecção por anomalia no comportamento – da rede ou do computador.

Dentre as linhas de pesquisa, que fazem use de redes neurais ou algoritmos

genéticos, uma bastante promissora, é a utilização de Redes Bayesianas (RB) como

método de classificação de ataques nos IDSs. O capítulo 3 desta monografia traz

alguns conceitos e aplicações de RB.

24

3 REDES BAYESIANAS

Redes Bayesianas, também conhecidas como redes probabilísticas causais

ou redes de confiança, têm sido cada vez mais utilizadas, em diferentes áreas do

conhecimento, para modelar domínios de problemas que contenham incerteza

[JEMILI07] [CHEBROLU04] [KRUEGEL03].

Uma RB pode ser descrita como um grafo acíclico dirigido (GAD), onde os

nodos representam variáveis randômicas e os arcos representam as diretas

dependências probabilísticas entre eles. Mais precisamente, para um GAD,

� � ��, ��, onde � representa um conjunto de nodos (ou vértices) e � um conjunto

direto de conexões (ou arcos) entre pares de nodos. A distribuição probabilística

comum, ���, sobre o conjunto de variáveis (normalmente discreta) posicionada

por � pode ser fatorada como [KJAERULFF08]:

� �� � � ��|����� ��

(1)

onde ���� traz o conjunto de variáveis pai para cada nodo � � �. A

fatoração da equação expressa um conjunto de suposições independentes, que são

representadas pelo GAD, em termos de pares de nodos, que não estão diretamente

conectados um ao outro por um arco direto. É a existência destas suposições de

independência e de um conjunto pequeno de pais para cada nodo, que permite

especificar a probabilidade condicional e executar, de forma eficiente, a inferência

em uma rede bayesiana.

Uma RB N � �X, G, P� é composta por [JENSEN apud KJAERULFF08]:

25

� um GAD � � ��, �� com nodos � � ���, … , ��� e arcos diretos �

� um conjunto de variáveis aleatórias, , representada pelos nodos de �

� um conjunto de distribuições de probabilidade condicional, �, contendo

um distribuição, ��������, para cada variável aleatória �

Na seqüência, serão abordados os métodos de construção (item 3.1) e de

inferência (item 3.2).

3.1 Construção

A construção de uma RB é realizada em duas etapas:

I. Entra-se com o problema manualmente, identificando as variáveis

relevantes e o relacionamento (causal) entre elas. O GAD resultante

especifica um conjunto de dependências e suposições de

independência, que serão reforçadas na distribuição de probabilidade

comum.

II. Especifica-se um conjunto de distribuição de probabilidade condicional,

��|�����, onde para cada “família”, ��� � !���, do GAD.

Uma RB pode ser construída de forma manual, automática (através de uma

base de dados), ou da combinação manual e base de dados. Nesse último método

de construção, parte do conhecimento sobre a estrutura é definida manualmente,

misturando os parâmetros com informações estatísticas extraídas da base de dados.

A construção manual de uma RB pode ser uma tarefa difícil, exigindo grande

habilidade e criatividade, como também um bom conhecimento do domínio do

problema. Uma vez construída, seja de forma manual ou automática, os parâmetros

da RB podem ser continuamente atualizados com novas informações. Assim, o

modelo inicial fornecido, é gradualmente aprimorado.

Independente da utilização de dados, completos ou incompletos, existem dois

paradigmas principais para construção de uma RB: o de independência condicional

e o de busca e pontuação. A seguir serão descritos dois métodos utilizados para

construir uma RB, sendo um de cada paradigma.

26

3.1.1 PC

O algoritmo PC, desenvolvido por Spirtes e Glymour em 1991, está inserido

no paradigma de independência condicional. Seu trabalho é procurar um RB que

represente o relacionamento independente entre as variáveis em uma base de

dados [KJAERULFF08].

O método PC para construção automática de uma RB possui quatro etapas:

a) Teste (condicional) de relação de independência entre cada par de

variáveis � " #|$�: busca determinar a validade condicional da

relação de independência, realizando testes com hipóteses

estatísticas.

b) Identificar o “esqueleto” do grafo: o esqueleto do grafo é obtido,

removendo a direção de todos os arcos dirigidos.

c) Identificar as colisões � % # & '�: a identificação de colisão é

baseada no esqueleto, procurando por subconjunto das variáveis

�, #, '�. d) Identificar os sentidos derivados: os sentidos derivados são

encontrados após a identificação do esqueleto e das colisões. Um

arco é dito derivado, quanto este é uma conseqüência lógica da ação

anterior.

3.1.2 EM

O algoritmo Expectation Maximization (EM) é um método de estimação a

partir de dados incompletos. Basicamente, se alguma variável, foi algumas vezes

observada e outras não, este algoritmo utiliza os casos para os quais as variáveis

foram observadas, para aprender a predizer seus valores quando não. Este método

está inserido dentro do paradigma de busca e pontuação [KJAERULFF08]

[LUNA04].

Este algoritmo duas etapas definidas:

27

a) Etapa E: nesta etapa são encontrados os valores estatísticos

esperados para os dados completos, incompletos e as estimativas

atuais dos parâmetros.

b) Etapa M: de posse destes valores, realiza uma estimativa de máxima

verossimilhança5.

3.2 Inferência

A realização de inferência em uma RB é, geralmente, um problema NP-difícil;

inclusive as inferências aproximadas consistem em um problema NP-difícil.

Felizmente, eficientes algoritmos foram desenvolvidos, tornando possível realizar

inferência em RB em frações de segundos. Contudo, esta eficiência é diretamente

dependente da estrutura do GAD [KJAERULFF08].

Normalmente, uma RB representa indicação causal do tipo % #, onde é

uma causa de # e, também, onde # normalmente assume o papel de um efeito

perceptível de . Esse efeito, tipicamente, não pode ser observado, sendo

necessário derivar à distribuição de probabilidade posterior ��|# � (�, dada a

observação # � (, utilizando a distribuição prévia ��� e a distribuição de

probabilidade condicional ��#|� especificada no modelo. Thomas Bayes criou o

famoso teorema de Bayes para realizar este cálculo:

��|# � (� � ��# � (|������# � (� , (2)

onde ��# � (� � ∑ ��# � (| � *��� � *�+ . Este teorema teve um papel

fundamental na inferência estatística, porque a probabilidade de uma causa pode

ser pressuposta, quando seu efeito for observado.

Existem, basicamente, dois métodos de inferência, os denominados exatos e

os aproximados. A seguir são descritos dois algoritmos, uma referente a cada

método de inferência.

5 Verossimilhança é uma função da probabilidade condicional. A Máxima Verossimilhança se baseia no cálculo onde ao se derivar uma equação e igualando-a a zero se pode chegar aos valores mínimos e/ou máximos.

28

3.2.1 Árvore de Junção

Árvore de junção faz parte dos métodos de algoritmos denominados exatos,

onde o cálculo das probabilidades é realizado a posteriori, através de somatório e

combinações de valores. O objetivo é construir uma estrutura de dados que pode

ser utilizada para calcular qualquer consulta através da passagem de mensagens na

árvore [JEMILI07] [KJAERULFF08] [LUNA04].

O primeiro passo do algoritmo árvore de junção é criar um grafo não

direcionado a partir da entrada de um GAD através de um procedimento chamado

de “moralização”. Este procedimento mantém os mesmos arcos, removendo as

direções e depois conectando os pais de cada filho. A construção deste algoritmo

segue quatro etapas:

1) Escolher uma ordem para os nodos.

2) Laço através de cada nodo. Para cada nodo ,, cria um conjunto $,

com todos os seus vizinhos. Remove o nodo , do grafo moralizado.

3) Constrói o grafo permitindo que cada $, seja um nodo. Conecta cada

nodo com arcos – com pesos – não direcionados. O peso de cada

arco vindo de $, para $- é |$, . $-|. 4) Permite a árvore de junção ser a árvore com peso máximo de medida

do conjunto de grafo.

3.2.2 Monte Carlo

Este algoritmo faz parte do grupo de métodos aproximados, utilizando

técnicas de simulação para obter valores aproximados das probabilidades. O

algoritmo de Monte Carlo gera um conjunto de amostras, escolhidas aleatoriamente,

realizando inferência sobre elas. A precisão dos resultados está diretamente

relacionando com o tamanho da amostra e, diferentemente dos métodos exatos, a

estrutura da rede não é relevante para a realização do cálculo de inferência. Abaixo

é descrito os passos realizados pelo algoritmo:

1) São geradas configurações aleatórias das variáveis.

29

2) É feita a seleção de uma configuração aleatória, por amostragem dos

estados das variáveis.

3) São realizadas novas amostras até se obter / configurações.

3.3 Aplicações

Nos itens anteriores, foram apresentados os conceitos de construção e

inferência em RB. Neste item, são apresentadas algumas aplicações que utilizam

RB e seus conceitos para a realização de tarefas, tais como [NEAPOLITAN03]:

� O Learning R&D Center da Universidade de Pittsburgh desenvolveu o

Andes, um tutor inteligente para física.

� O Microsoft Office, desde 1995, utilizam uma naive-RB para auxiliar na

seleção de tópicos de ajuda, baseado em consultas.

� SymText utiliza um modelo de contexto baseado em RB para extrair

informação de textos médicos escritos em linguagem natural. Esta

aplicação foi desenvolvida na Universidade de Utah.

� A Automotive Information Systems (AIS) desenvolveu mais de 600 RB

que são capazes de diagnosticar os 15 problemas mais comuns em,

aproximadamente, 10.000 carros diferentes.

Existem inúmeras aplicações, em diferentes áreas do conhecimento, que se

utilizam de redes bayesianas. Sua utilização está fortemente ligada à aquisição de

conhecimento a partir de uma base de informação.

30

4 TRABALHOS RELACIONADOS

Neste capítulo são apresentados os trabalhos relacionados a esta

monografia, suas vantagens e desvantagens, suas limitações e contribuições.

Com o objetivo de entender e analisar os diversos problemas, sobre a

utilização de redes bayesianas em um sistema de detecção de intrusão, foram

analisadas diversas iniciativas que abordam o assunto. Os trabalhos aqui

relacionados são: A Framework for an Adaptive Intrusion Detection System using

Bayesian Network, escrito por Farah Jemili, Dr. Montaceur Zaghdoud e Pr. Mohamed

B. Ahmed, publicado na IEEE em 2007 e Bayesian Learning Networks Approach to

Cybercrime Detection, escrito por N. S. Abouzakhar, A. Gani, G. Manson, M.

Abuitbel e D. King, publicado na PGNET em 2003.

4.1 A Framework for an Adaptive Intrusion Detection System using Bayesian

Network

O artigo [JAMILE07] apresentado, propõe a utilização de redes bayesianas

como método de identificação de ataques em sistemas de identificação de intrusão.

O framework utiliza o algoritmo K2, limitando em quatro, o número de parentes de

cada nodo e utilizando dois métodos de classificação: a) Normal e Ataque, b) DOS,

Probing, R2L, U2R e Outros; para construção/aprendizagem, sobre a base do

DARPA’99.

Foram consideradas as seguintes variáveis, nesta respectiva ordem:

protocol_type, service, land, wrong_fragment, num_failed_logins, logged_in,

31

root_shell, is_guest_login, attack_type. Optou-se também por utilizar o algoritmo

árvore de junção para realizar inferências sobre a rede.

Um ponto importante, mas que deve ser considerado com cuidado é o fato de

ocorrer uma realimentação da RB. Este procedimento deve ser adotado, quando se

tem uma base grande de conhecimento, pois, caso contrário, pode ocorrer erro de

classificação, prejudicando toda a rede.

Uma comparação direta dos resultados obtidos nesta proposta e neste

trabalho em questão não pode ser realizada, em virtude das variáveis e base de

conhecimento utilizadas. Contudo, ambas mostraram eficiência na detecção de

ataques.

4.2 Bayesian Learning Networks Approach to Cybercri me Detection

Este artigo [ABOUZAKHAR03] também apresenta uma abordagem para

identificação de ataques em sistemas de detecção de intrusão, utilizando redes

bayesianas. Contudo, os algoritmos de construção/aprendizagem e inferência não

são informados, apenas informa que em, foi utilizada árvore de decisão, para

transformar as variáveis contínuas em discretas. Como no artigo anterior, este

também utiliza a base do DARPA para construção/aprendizagem da rede. Porém,

as variáveis utilizadas não são iguais – protocol_type, service, count, srv_count,

attack_type, rerror_rate, srv_rerror_rate, duration, serror_rate, srv_serror_rate –

montando, dessa forma, a rede bayesiana de forma diferente.

Diferentemente do artigo anterior, é utilizando um método conhecido como Lift

Chart para validar a aprendizagem da RB.

Uma comparação direta dos resultados obtidos nesta proposta e neste

trabalho em questão não pode ser realizada, em virtude das variáveis e base de

conhecimento utilizadas. Contudo, ambas mostraram eficiência na detecção de

ataques.

32

5 MODELO PROPOSTO

Atualmente, a maioria dos IDSs utiliza identificação de intrusão por regras

estáticas, tornando a identificação de um ataque, neste caso, muito mais reativa,

pois é necessário que: I) o ataque já tenha sido mapeado; II) tenha uma regra

gerada para o IDS utilizado; e III) demanda constante atualização da base de

ataques. A proposta desta monografia está centrada no desenvolvimento de um

framework para detecção e filtragem de alertas de intrusão utilizando, para isto,

redes bayesianas.

O modelo proposto visa agregar pró-atividade ao IDS, tornado possível

identificar novos ataques. Para adquirir esta “inteligência”, é necessário identificar o

“perfil” de acesso normal e de ataque do ou dos computadores monitorados. Este

perfil, também chamado de base de conhecimento, é utilizado para treinar a rede

bayesiana. É com base nestas informações que os acessos passam a ser

classificados em normal ou ataque. A eficiência deste framework proposto, ou de

qualquer IDS que se utilize de redes bayesianas, está diretamente relacionada à

fase de treinamento e, conseqüentemente, a base de conhecimento. Quanto maior

e mais confiável for a base de conhecimento, mais eficaz será a identificação de

acessos normais e de ataques; diminuindo, assim, o número de falsos positivos e

falsos negativos. Os diferenciais apresentados neste modelo, com relação aos

modelos estudados são:

a) Estrutura da rede

Optou-se por construir a estrutura da rede, de forma manual, montando

assim, uma naive-RB. Já para construir o conhecimento, ou seja,

aprender as probabilidades, o algoritmo EM foi escolhido, por

possibilitar esta construção de conhecimento, a partir de dados

incompletos, e por estar disponível na ferramenta Netica.

33

b) Variáveis contempladas

� ip_origem: identifica o endereço IP do computador que originou o

acesso.

� ip_destino: identifica o endereço IP do computador ao qual o

acesso foi direcionado.

� porta_destino: identifica o serviço acessado no computador

destino.

� mem: indica o nível de utilização de memória do computador

destino.

� cpu: indica o nível de utilização de processamento do computador

destino.

� ataque: pode conter apenas dois valores, sim ou não.

c) Proposta de utilização

Por ser uma técnica custosa computacionalmente, este framework é

proposto para ser utilizado, não em um ambiente de produção, onde o

tempo de resposta é crítico, mas sim em frente a uma honeynet, ou

seja, um ambiente preparado para ser invadido, não comprometendo

assim, a performance de acesso da rede de produção. Também se

optou por gerar regras estáticas, dos novos ataques identificados, para

IDSs baseados em regras.

Visando ilustrar a RB criado, a Figura 3 traz a direita, a rede bayesiana

proposta no artigo [JAMILE07], ao centro a rede aqui proposta e a esquerda, a rede

proposta no artigo [ABOUZAKHAR03].

34

Figura 3 – Comparação entre modelos de redes bayesianas. Fonte: Elaborado pelo próprio autor.

Na seqüência, será demonstrada a metodologia utilizada (item 5.1) e os

parâmetros necessários às simulações (item 5.1).

5.1 Metodologia

Para desenvolver o framework proposto, inicialmente, foram realizadas

leituras de artigos, publicações e livros sobre Sistemas de Detecção de Intrusão e

Redes Bayesianas; apresentando, assim, as tecnologias envolvidas. Visando uma

melhor compreensão, a metodologia foi dividida em quatro etapas – ambiente,

simulação, construção e validação – detalhadas a seguir.

5.1.1 Ambiente

Para validar o framework proposto foi necessário montar um ambiente, onde

ataques e tráfegos normais de rede pudessem ser simulados de forma controlada;

garantindo assim, confiabilidade para a fase de validação. Para isto, foram utilizados

três computadores, denominados respectivamente: invasor, honeywall e vítima.

35

a) Invasor

Neste computador foram instaladas ferramentas, amplamente divulgadas

na Internet, para realizar a simulação dos ataques. A Tabela 1 traz as

ferramentas utilizadas, bem como uma breve descrição sobre elas. Em

relação ao sistema operacional, inicialmente, foi instalado o Windows XP

e, posteriormente, o FreeBSD 6.3 – devido a algumas das ferramentas

utilizadas, não estarem disponíveis para plataforma Windows, a não ser

com a utilização de emuladores.

Tabela 1 – Ferramentas e sua respectiva descrição

Ferramentas Descrição

Nessus É uma ferramenta que varre uma rede a procura

de vulnerabilidades conhecidas e erros de

configuração.

Metasploit O objetivo desta ferramenta é oferecer

informações úteis para testes de ataques,

desenvolvimento de assinaturas para IDSs e

pesquisa de vulnerabilidades.

Web Application

Stress Tool

É uma ferramenta utilizada para realizar teste de

estresse em servidores WEB.

SSHBrute.py Script desenvolvido em python para realizar

ataques de força bruta em servidores SSH.

Fonte: Elaborado pelo próprio autor.

b) Honeywall

Este computador foi configurado com ferramentas para análise e

armazenamento de logs e para comportar o framework proposto. Também

foram criados scripts (ver APÊNDICE A) para realizar as tarefas de coleta

e armazenamento das informações. Na Tabela 2 são mencionadas as

ferramentas utilizadas, as quais são descritas sucintamente. O SO

escolhido foi o FreeBSD 6.2, compilado em modo bridge com três

interfaces de rede: externa, interna e gerenciamento. Deste modo, este

computador se torna invisível para o “Invasor”, monitorando todo o tráfego

de entrada e saída, direcionado a “Vítima”. Através da interface de

36

gerenciamento, eram coletadas as informações de processamento e

memória.

Tabela 2 – Ferramentas de sua respectiva descrição

Ferramentas Descrição

Snort Ferramenta de detecção de intrusão baseada em

regras.

MySQL Banco de dados livre.

Net-SNMP Ferramenta para requisitar ou inserir informações

em agentes SNMP.

TCPDUMP Permite interceptar e visualizar pacotes TCP/IP

entre outros trafegados na rede.

Fonte: Elaborado pelo próprio autor.

c) Vítima

Neste computador foram instalados serviços conhecidos e, possivelmente,

vulneráveis a ataques e duas interfaces de rede: uma externa e outra de

gerenciamento. A Tabela 3 mostra os serviços configurados, a ferramenta

utilizada e uma breve descrição. O sistema operacional instalado foi o

Windows 2000 Professional SP1.

Tabela 3 – Ferramentas, seus respectivos serviços e descrição

Ferramentas Serviço Descrição

IIS/ASP 80 Servidor WEB da Microsoft com

suporte a linguagem script ASP.

SSHWindows 22 Servidor de acesso remoto, baseado

em linha de comando, comum em

servidores Unix.

MSSQL 1433 Banco de dados da Microsoft

Fonte: Elaborado pelo próprio autor.

5.1.2 Experimentos

Para validar o framework proposto, foi necessário realizar ataques e acessos

normais de rede, utilizando as ferramentas anteriormente citadas. Como o objetivo

37

não era confrontar o framework em volume de ataque, mas sim sua eficiência,

optou-se por realizar três tipos de ataques:

- Ataques de inserção de código em servidores WEB (IIS/ASP);

- Ataques de força bruta a servidores SSH;

- Ataques de inserção de código a servidores SQL Server.

Para cada tipo de ataque, foram realizados 201 ataques e 100 acessos

normais, para posterior construção da RB, montagem dos cenários de treinamento e

teste. Para cada rodada eram gerados dois arquivos, um com o logs do TCPDUMP,

e outro com as informações de processamento e memória. Este método foi adotado

para identificar o perfil normal e o perfil em ataque do computador “Vítima”. As

informações foram coletadas com o auxílio da ferramenta TCPDUMP e NET-SNMP,

sendo armazenadas em um banco de dados MySQL. O APÊNDICE A, mostra um

exemplo de informações de tráfego de rede, processamento e memória, coletas a

partir de um ataque.

5.1.3 Construção

A primeira etapa para construção do framework foi iniciada pela escolha da

ferramenta e linguagem de programação. Durante esta etapa foram consideradas,

basicamente, duas ferramentas e, conseqüentemente, duas linguagens de

programação distintas, são elas: I) Weka – uma ferramenta opensource para

desenvolvimento em Java; e II) Netica – uma ferramenta comercial, mas disponível

para utilização gratuita, com limitações para desenvolvimento, oferecendo API em C.

Por possuir recursos para construção automática da RB, algoritmo de inferência e

boa documentação, foi escolhida a ferramenta Netica e sua API em linguagem C

para desenvolvimento.

Na segunda etapa, foi feita a opção por construir uma naive-RB que pode ser

vista na Figura 4, juntamente com o algoritmo EM, para construção do conhecimento

– a partir da base de dados. A variável ataque é definida como nodo pai, e as

demais, como nodos filhos independentes.

38

Figura 4 – naive-Rede Bayesiana construída. Fonte: Elaborado pelo próprio autor.

Durante esta segunda etapa, identificou-se a necessidade de realizar um

tratamento da base de conhecimento, para uma melhor construção e treinamento da

RB. Um ponto considerado importante, foi a conversão dos valores numéricos das

variáveis memória (mem) e processamento (cpu) em baixa, média, alta. A

conversão foi realizada analisando a faixa de valores destas variáveis, no perfil

normal e no perfil de ataque. A Tabela 4 apresenta duas conversões, trazendo a

faixa de valores e sua respectiva descrição. Com as faixas de valores utilizadas na

primeira conversão, foi construída a RB. Durante o treinamento, devido esta

distribuição, se identificou que um ataque que gerasse uma utilização alta de

memória (na faixa entre 66 a 100), resultava em um falso negativo, ou seja, um

ataque era considerado como tráfego normal de rede. Foi necessária, então, uma

nova conversão, redistribuindo a faixa de valores da variável memória.

Tabela 4 – Faixa de valores definidas para cada variável

Variável Faixa de valores

(1ª. conversão)

Faixa de valores

(2ª. conversão)

Descrição

MEM 1 a 35 1 a 35 Baixa

36 a 65 36 a 50 Média

66 a 100 51 a 100 Alta

CPU 1 a 25 1 a 25 Baixa

26 a 50 26 a 50 Média

51 a 100 51 a 100 Alta

Fonte: Elaborado pelo próprio autor.

Utilizando o exemplo de ataque apresentado no APÊNDICE A, são extraídas

as informações e aplicadas as conversões de valores, utilizadas na construção da

RB.

39

Com a rede construída e já treinada com as informações da base de dados

(ver APÊNDICE B), foi iniciado o processo de inferência, para verificar se o

conhecimento adquirido estava correto. Para a realização das inferências, foi

utilizado o algoritmo árvore de junção, disponível na ferramenta Nética.

5.1.4 Validação

Para realizar a validação do framework foi criado um cenário de treinamento;

além de quatro cenários de teste. De posse das informações, o comportamento do

framework foi analisado quanto:

a) ao número de falsos positivos e falsos negativos, em relação ao tráfego

conhecido.

b) ao número de falsos positivos e falsos negativos, em relação ao tráfego

desconhecido.

5.2 Parâmetros de simulação

Para cada simulação de ataque e acesso normal de rede, foram utilizados

ferramenta e scripts distintos. A seguir, são apresentados os parâmetros que foram

utilizados nos cenário durante as simulações.

Na Tabela 5, estão os parâmetros utilizados nas simulações de ataque ao

servidor IIS – porta 80.

Tabela 5 – Parâmetros de ataque ao servidor IIS.

Parâmetro Descrição

Ferramenta Nessus for Windows

IPs Origem 192.168.47.1-192.168.47.5

IP Destino 192.168.47.129

Plugins Selecionados Web Servers (ver APÊNDICE B)

No. Conexões 100

Fonte: Elaborado pelo próprio autor.

40

Na Tabela 6, estão os parâmetros utilizados nas simulações de ataque ao

servidor SSH – porta 22.

Tabela 6 – Parâmetros de ataque ao servidor SSH

Parâmetro Descrição

Script SSHBrute.py

IPs Origem 192.168.47.1-192.168.47.5

IP Destino 192.168.47.129

Arquivo de senhas 100 registros de senha

No. Conexões 100

Fonte: Elaborado pelo próprio autor.

Na Tabela 7, estão os parâmetros utilizados nas simulações de ataque ao

servidor SQL Server – porta 1433.

Tabela 7 – Parâmetros de ataque ao servidor SQL Server.

Parâmetro Descrição

Ferramenta Nessus for Windows

IPs Origem 192.168.47.10

IP Destino 192.168.47.129

Plugins Selecionados (ver APÊNDICE C)

No. Conexões 1

Fonte: Elaborado pelo próprio autor.

Na Tabela 8, estão os parâmetros utilizados nas simulações de acesso

normal e ao servidor IIS – porta 80.

41

Tabela 8 – Parâmetros de acesso normal ao servidor IIS.

Parâmetro Descrição

Ferramenta Microsoft Web Application Stress Tool

IPs Origem 192.168.47.5-192.168.47.9

IP Destino 192.168.47.129

Configurações (ver APÊNDICE D)

No. de Conexões 50

Fonte: Elaborado pelo próprio autor.

Na Tabela 9, estão os parâmetros utilizados nas simulações de acesso

normal ao servidor SSH – porta 22.

Tabela 9 – Parâmetros de acesso normal ao servidor SSH.

Parâmetro Descrição

Ferramentas Putty e WinSCP

IPs Origem 192.168.47.5-192.168.47.9

IP Destino 192.168.47.129

No. de Conexões 50

Fonte: Elaborado pelo próprio autor.

No capítulo 5, serão apresentados os resultados obtidos a partir de cada uma

das simulações.

42

6 SIMULAÇÕES E RESULTADOS

Para testar o framework proposto, foram realizados cinco cenários, sendo um

de treinamento e quatro de teste, com o intuito de obter os percentuais de

identificação de ataque e acesso normal ao computador vítima.

Durante os testes foram realizadas inferências na rede bayesiana,

ocasionando alterações na variável ataque, resultando com que um tráfego seja

considerado normal ou ataque. Nos próximos itens, os cenários são descritos mais

detalhadamente, bem como os resultados obtidos.

6.1 Cenário de treinamento 1

Para iniciar a identificação de ataques e acessos normais de rede, utilizando o

algoritmo árvore de junção, de inferência, é necessário, primeiramente, realizar o

treinamento da RB. O treinamento foi realizado utilizando a base de conhecimento

gerada, ou seja, 200 ataques e 100 acessos normais de rede. A Figura 5 abaixo

traz a rede em sua distribuição inicial.

43

Figura 5 – Rede bayesiana durante fase de treinamento. Fonte: Elaborado pelo próprio autor.

As probabilidades da RB foram calculadas pela ferramenta Nética, utilizando

o algoritmo EM.

6.2 Cenário de teste 1

Neste cenário, a RB foi confrontada com um ataque conhecido, ou seja,

mapeado durante a fase de treinamento. Um ataque, partindo de um computador

conhecido por realizar ataques. O objetivo deste cenário é verificar se não ocorre

um falso negativo. A Tabela 10 traz os valores testados.

44

Tabela 10 – Cenário de teste 1.

Variáveis Valores

ip_origem 192.168.47.3

ip_destino 192.168.47.129

porta_destino 80

mem media

cpu media

ataque *

Fonte: Elaborado pelo próprio autor.

O asterisco no valor da variável ataque indica a informação que se deseja

verificar.

A Figura 6 mostra as inferências realizas, de acordo com o ataque

monitorado.

Figura 6 – Rede bayesiana durante fase de teste 1. Fonte: Elaborado pelo próprio autor.

É possível observar que as inferências realizadas resultaram na indicação de

100% que o tráfego analisado é realmente um ataque, ou seja, 0% de falso negativo.

45

Este percentual foi obtido, em virtude do ataque testado, ter sido mapeado durante a

fase de treinamento.

6.3 Cenário de teste 2

O cenário de teste 2 confrontou a RB com um acesso normal, também

mapeado durante a fase de treinamento. O acesso partiu de um computador

conhecido por realizar acessos desta natureza. O objetivo deste cenário é verificar

se não ocorre um falso positivo. A Tabela 11 traz os valores testados.

Tabela 11 – Cenário de teste 2.

Variáveis Valores

ip_origem 192.168.47.7

ip_destino 192.168.47.129

porta_destino 22

mem baixa

cpu baixa

ataque *

Fonte: Elaborado pelo próprio autor.

A Figura 7 mostra as inferências realizas, de acordo com o acesso normal

realizado.

46

Figura 7 – Rede bayesiana durante fase de teste 2. Fonte: Elaborado pelo próprio autor.

Como se pode observar, as inferências realizadas resultaram na indicação de

100% que o tráfego analisado é realmente um acesso normal. Novamente, por ter

sido mapeado durante a fase de treinamento, ocorreu 0% de falso positivo.

6.4 Cenário de teste 3

Este cenário tem o objetivo de identificar se, um ataque, partindo de um

computador conhecido por realizar acesso normal, é identificado pela RB como um

ataque, ou gera um falso negativo. A Tabela 12 traz os valores testados.

47

Tabela 12 – Cenário de teste 3.

Variáveis Valores

ip_origem 192.168.47.8

ip_destino 192.168.47.129

porta_destino 80

mem media

cpu alta

ataque *

Fonte: Elaborado pelo próprio autor.

A Figura 8 mostra as inferências realizas, de acordo com o ataque realizado.

Figura 8 – Rede bayesiana durante fase de teste 3. Fonte: Elaborado pelo próprio autor.

Neste cenário, um computador, que durante a fase de treinamento só havia

realizado acesso normal, realiza um ataque. Embasado, fortemente, nas variáveis de

memória e processamento, a rede verificou um percentual de 100% de possibilidade

deste acesso, ser um ataque.

48

6.5 Cenário de teste 4

Neste último cenário a RB é confrontada com um novo ataque, ou seja, as

variáveis ip_origem e porta_destino, não foram identificas durante o treinamento. A

Tabela 13 traz os valores testados.

Tabela 13 – Cenário de teste 4.

Variáveis Valores

ip_origem 192.168.47.10

ip_destino 192.168.47.129

porta_destino 1433

mem media

cpu alta

ataque *

Fonte: Elaborado pelo próprio autor.

A Figura 9 mostra as inferências realizas, de acordo com o ataque realizado.

Figura 9 – Rede bayesiana durante fase de teste 4. Fonte: Elaborado pelo próprio autor.

49

Mesmo não conhecendo o computador de origem e a porta de destino, a RB

identificou com 96,9% o acesso como sendo um ataque, ou seja, 3,15% de ser um

falso positivo. Apesar do elevado percentual, esta informação deve ser analisa com

cuidado, pois pode ocorrer que, mesmo para um acesso normal a este serviço, a

utilização de processamento e memória sejam elevados; ocasionando, assim, uma

mudança no perfil de acesso normal e de ataque. Logo, se este fosse um acesso

normal, ocorreria um falso positivo.

Caba ressaltar novamente, que quanto maior e mais confiável for a base de

conhecimento, melhor e mais eficiente será a identificação de acesso normal e

ataque.

50

7 CONCLUSÕES

Ao longo deste trabalho foi apresentado um modelo de framework para

sistema de detecção de intrusão utilizando redes bayesianas. Os resultados aqui

apresentados são de grande relevância, pois possibilitam que outras propostas

sejam norteadas por este estudo.

Durante a realização dos cenários de testes, tornou-se possível identificar que

a utilização de redes bayesianas obteve sucesso na identificação de ataques e

tráfego normal de rede, seja ele conhecido ou não. A utilização das variáveis de

memória e processamento contribuiu diretamente para estes resultados. Frente a

esses resultados, a utilização de redes bayesianas em sistemas de identificação de

intrusão mostrou-se viável, uma vez que foi baixo o percentual de falsos positivos e

falsos negativos.

As potencialidades deste trabalho estão: a) na utilização de uma Naive-Rede

bayesiana, que possibilita maior independência das variáveis; b) na utilização das

variáveis de processamento e memória; e c) na proposta de utilizar este framework

em uma honeynet, não limitando sua utilização em conseqüência do tempo de

resposta – ao transformar o conhecimento aprendido pela rede bayesiana gerando

regras estáticas, para serem utilizadas em sistemas de identificação de intrusão

desta natureza, em uma rede de produção, onde o tempo de resposta é importante.

Este trabalho contribui de forma a auxiliar, na identificação de novos ataques,

tendo em vista que o framework desenvolvido reduz o número de falsos alertas,

podendo ser utilizado também como uma base de conhecimento de reputação de

computadores. Entretanto, este trabalho possui algumas limitações: a) restringiu sua

base de conhecimento a apenas três ataques, que tiveram características distintas

no perfil de acesso normal e no perfil de ataque; b) uma ferramenta escolhida –

Netica – necessita de licença para operar com total funcionalidade; c) as regras

51

estáticas geradas, a partir da base de conhecimento da rede bayesiana, são

compatíveis apenas com a ferramenta Snort; d) não leva em consideração o tempo

de resposta para identificação de um acesso; e e) não foi prevista nesta fase,

realimentação da RB com novos conhecimentos.

Tendo em vista as contribuições e as limitações identificadas, seria

interessante aprimorar o desenvolvimento do framework, agregando interfaces

gráficas de controle e gerenciamento. Como alternativa, poderia ser utilizada a

ferramenta Weka e a linguagem de programação Java. Também é válida a busca

por uma alternativa aos scripts utilizados para obter as informações de

processamento e memória do computador vítima.

A RB construída mostrou eficiência, contudo, a inclusão de novas variáveis

pode vir a contribuir para o aprimoramento da rede. Algumas variáveis identificadas,

mas não utilizadas neste trabalho são: número de conexões realizadas em certa

fatia de tempo e detalhamento do pacote.

52

REFÊRENCIAS BIBLIOGRÁFICAS

ABOUZAKHAR, N. S.; GANI A.; MANSON, G.; ABUITBEL, KING, D. Bayesian Learning Networks Approach to Cybercrime Detection . PGNet, 2003. ALLEN, Julia; CHRISTIE, Alan; FITHEN, Willian; MCHUGH, John; PICKEL, Jed; STONER, Ed. State of the Practice of Intrusion Detection Techno logies . Technical Report – CMU/SEI-99-TR-028. Carnegie Mellon Software Engineering Institute, Pittsburgh, 2000. ARVIDSON, Martin; CARLBACK, Markus. Intrusion Detection Systems – Technologies, Weaknesses and Trends . Examensarbete utfört I Informationsteori, Stockholm, 2003. AXELSSON, Stefan; SANDS, David. Understanding Intrusion Detection through Visualization . Springer, 2006. AXELSSON, Stefan. The Base-Rate Fallacy and its Implications for the Difficulty of Intrusion Detection* . Departament of Computer Engineering, Chalmers University of Technology, Göteborg, Sweden, 1999. ANDERSON, James P. Computer Security Threat Monitoring and Surveillanc e. James P. Anderson, Co. Fort Washington, PA, 1980. BACE, Rebecca; MELL, Peter. Intrusion Detection Systems . NIST Special Publication on Intrusion Detection System, 2001. BOLZONI, Damiano; ETALLE, Sandro; HARTEL, Pieter; ZAMBON, Emmanuele. POSEIDON: a 2-tier Anomaly-based Network Intrusion Detection System* . IEEE, 2006.

53

BRAGA, Bruno R.; D’AMEIDA, José N.; BAIÃO, Fernanda; MATTOSO, Marta L. ISDMiner: Data Mining de Modelos de Detecção de Int rusão . Relatório Técnico do Projeto ClusterMiner – RT-006. UFRJ, Rio de Janeiro, 2004. BRO, 2008, BRO Intrusion Detection System . Disponível em: <http://www.bro-ids.org/>. Acessado em: maio 2008. BRUNEAU, Guy. The History and Evolution of Intrusion Detection . SANS Institute, 2001. CABRERA, João D.; MEHRA, Raman K. Control and Estimation Methods in Information Assurance – A Tutorial on Intrusion Det ection Systems . IEEE, 2002. CHEBROLU, Srilatha; ABRAHAM, Ajith; THOMAS, Johnson P. Feature deduction and ensemble design of intrusion detection systems . Computers & Security, 2004. CARTER, Earl; STIFFLER, Rick. Intrusion Detection: Cisco IDS Overview . Disponível em: <http://www.ciscopress.com/articles/article.asp?p=24696>. Acessado em: maio 2008. DEBAR, Hervé; DACIER, Marc; WESPI, Andreas. A Revised Taxonomy for Intrusion Detection Systems . Annales des Te'le'communiications. 55(7-8), p 361-378, 2000. ENTERASYS, 2008, Enterasys Secure Networks . Disponível em: <http://www.enterasys.com/products/advanced-security-apps/dragron-intrusion-detection-protection.aspx>. Acesso em: maio 2008. FAGUNDES, Leonardo L. Metodologia para avaliação de sistemas de detecção de intrusão . Unisinos, São Leopoldo, 2002. FAOUR, Ahmad; LERAY, Philippe; ETER, Bassam. A SOM and Bayesian Network Architecture for Alert Filtering in Network Intrusi on Detection Systems . IEEE, 2006. INNELLA, Paul. The Evolution of Intrusion Detection Systems . Tetrad Digital Integrity, 2001.

54

JEMILI, Farah; ZAGHDOUD, Dr. Montaceur; AHMED, Pr. Mohamed B. A Framework for an Adaptative Intrusion Detection Sys tem using Bayesian Network . IEEE, 2007. KABIRI, Peyman; GHORBANI, Ali A. Research on Intrusion Detection and Response: A Survey . Internation Journal of Network Security, Vol. 1, No. 2, PP.84-102, 2005. KJAERULFF, Uffe B.; MADSEN, Anders L. Bayesian Networks and Influence Diagrams , A Guide to Construction and Analysis. Springer, 2008. KRUEGEL, Christopher; MUTZ, Darren; ROBERTSON, William; VALEUR, Fredrik. Bayesian Event Classification for Intrusion Detecti on . IEEE, 2003. LUNA, José E. O. Algoritmos EM para Aprendizagem de Redes Bayesianas a partir de Dados Incompletos . Universidade Federal de Mato Grosso do Sul, 2004. MCHUGH, John; CHRISTIE, Alan; ALLEN, Julia. Defending Yourself: The Role of Instrusion Detection Systems . IEEE, 2000. NEAPOLITAN, Richard E. Lerning Bayesian Networks . Prentice-Hall, Inc. 2003. SCARFONE, Karen; MELL Petter. Guide to Intrusion Detection and Prevention Systems (IDPS) . National Institute of Standards and Technology, 2007.

55

APÊNDICE A – EXEMPLO DE CAPTURA DE PACOTES, CPU E M EMÓRIA Informações coletadas utilizando o TCPDUMP. Em destaque, estão os valores utilizados para construção da base de conhecimento. No. Time Source Destination Protocol Info 12 2008-05-14 16:54:43.905846 192.168.47.4 192.168.47.129 TCP 60529 > ssh [SYN] Seq=0 Win=65535 Len=0 MS S=1460 WS=1 TSV=676272 TSER=0 14 2008-05-14 16:54:43.909831 192.168.47.4 192.168.47.129 TCP 60529 > ssh [ACK] Seq=1 Ack=1 Win=66608 Le n=0 TSV=676276 TSER=0 … 1262 2008-06-14 16:56:29.071944 192.168.47.4 192.168.47.129 TCP 51262 > ssh [FIN, ACK] Seq=1200 Ack=2897 W in=66608 Len=0 TSV=740792 TSER=85515

Informações coletadas via SNMP. Em destaque está o valor utilizado para construção da base de conhecimento. Time CPU MEM 2008-05-14 16:54:43 2 32 2008-05-14 16:54:44 2 32 2008-05-14 16:54:45 2 32 2008-05-14 16:54:46 2 32 … 2008-06-14 16:56:25 30 45 2008-06-14 16:56:26 30 45 2008-06-14 16:56:27 30 45 2008-06-14 16:56:28 30 45 2008-06-14 16:56:29 30 45

Está é uma entrada gerada, na base de conhecimento, a partir das informações obtidas anteriormente. IP Origem IP Destino Porta Destino CPU MEM Ataque IP_192_168_47_4 IP_192_168_47_129 tcp_22 media media sim

56

APÊNDICE B – BASE UTILIZADA PARA TREINAMENTO DA RB

ip_origem ip_destino port_destino men cpu ataque no_entradas

IP_192_168_47_1 IP_192_168_47_129 tcp_22 baixa alta sim 2

IP_192_168_47_1 IP_192_168_47_129 tcp_22 media alta sim 18

IP_192_168_47_1 IP_192_168_47_129 tcp_80 alta alta sim 9

IP_192_168_47_1 IP_192_168_47_129 tcp_80 media alta sim 8

IP_192_168_47_1 IP_192_168_47_129 tcp_80 media media sim 3

IP_192_168_47_2 IP_192_168_47_129 tcp_22 baixa alta sim 2

IP_192_168_47_2 IP_192_168_47_129 tcp_22 media alta sim 16

IP_192_168_47_2 IP_192_168_47_129 tcp_22 media media sim 2

IP_192_168_47_2 IP_192_168_47_129 tcp_80 alta alta sim 12

IP_192_168_47_2 IP_192_168_47_129 tcp_80 media alta sim 6

IP_192_168_47_2 IP_192_168_47_129 tcp_80 media media sim 2

IP_192_168_47_3 IP_192_168_47_129 tcp_22 baixa alta sim 2

IP_192_168_47_3 IP_192_168_47_129 tcp_22 media alta sim 16

IP_192_168_47_3 IP_192_168_47_129 tcp_22 media media sim 2

IP_192_168_47_3 IP_192_168_47_129 tcp_80 alta alta sim 12

IP_192_168_47_3 IP_192_168_47_129 tcp_80 media alta sim 5

IP_192_168_47_3 IP_192_168_47_129 tcp_80 media media sim 3

IP_192_168_47_4 IP_192_168_47_129 tcp_22 baixa alta sim 2

IP_192_168_47_4 IP_192_168_47_129 tcp_22 media alta sim 16

IP_192_168_47_4 IP_192_168_47_129 tcp_22 media media sim 2

IP_192_168_47_4 IP_192_168_47_129 tcp_80 alta alta sim 11

IP_192_168_47_4 IP_192_168_47_129 tcp_80 media alta sim 7

IP_192_168_47_4 IP_192_168_47_129 tcp_80 media media sim 2

IP_192_168_47_5 IP_192_168_47_129 tcp_22 baixa baixa nao 10

IP_192_168_47_5 IP_192_168_47_129 tcp_22 baixa alta sim 2

IP_192_168_47_5 IP_192_168_47_129 tcp_22 media alta sim 17

IP_192_168_47_5 IP_192_168_47_129 tcp_22 media media sim 1

IP_192_168_47_5 IP_192_168_47_129 tcp_80 baixa baixa nao 10

IP_192_168_47_5 IP_192_168_47_129 tcp_80 alta alta sim 11

IP_192_168_47_5 IP_192_168_47_129 tcp_80 media alta sim 8

IP_192_168_47_5 IP_192_168_47_129 tcp_80 media media sim 1

IP_192_168_47_6 IP_192_168_47_129 tcp_22 baixa baixa nao 10

IP_192_168_47_6 IP_192_168_47_129 tcp_80 baixa baixa nao 10

IP_192_168_47_7 IP_192_168_47_129 tcp_22 baixa baixa nao 10

IP_192_168_47_7 IP_192_168_47_129 tcp_80 baixa baixa nao 10

IP_192_168_47_8 IP_192_168_47_129 tcp_22 baixa baixa nao 10

IP_192_168_47_8 IP_192_168_47_129 tcp_80 baixa baixa nao 10

IP_192_168_47_9 IP_192_168_47_129 tcp_22 baixa baixa nao 10

IP_192_168_47_9 IP_192_168_47_129 tcp_80 baixa baixa nao 10

Obs.: A coluna no_entradas, se refere ao número de entradas existentes na base.

57

APÊNDICE C – SCRIPT DE COLETA DE INFORMAÇÕES MEM E CPU #!/bin/sh ## IP Gerenciamento – Computador vitima VITIMA=10.100.1.102 while [ $# = 0 ] do ## Garante o sincronismo de hora antes de captura r as informacoes ntpdate -Bb ${VITIMA} >> /dev/null data_hora=`date "+%Y-%m-%d %H:%M:%S` ## Comando snmp para buscar a memoria total do co mputador vitima mem_total=`snmpget -v 1 -c public -Oqv ${VITIMA} .1.3.6.1.2.1.25.2.2.0 | awk -F" " '{print $1}'` ## Comando snmp para buscar a memoria livre do co mputador vitima mem_livre=`snmpget -v 1 -c public -Oqv ${VITIMA} .1.3.6.1.4.1.311.1.1.3.1.1.1.29.0` ## Subtrai a men_total da men_livre para identifi car o total de memoria utilizada mem_utilizada=`let mem_utilizada=$mem_total-$mem_ livre` ## Calcula em percentual a memoria utilizada percentual_mem_utilizada=`let percentual=$mem_uti lizada*100/$mem_total` ## Percentual de utilizacao cpu percentual_cpu_utilizada=`snmpget -v 1 -c public -Oqv ${VITIMA} HOST- RESOURCES-MIB::hrProcessorLoad.1` echo "$data_hora;$percentual_cpu_utilizada;$perce ntual_mem_utilizada" >> /dados/monitoramento.txt done

58

APÊNDICE D – NESSUS WEB SERVERS PLUGINS

Figura 10 – Nessus Web Servers – plugins selecionados. Fonte: Elaborado pelo próprio autor.

59

APÊNDICE E – NESSUS DATABASES PLUGINS

Figura 11 – Nessus Databases – plugins selecionados. Fonte: Elaborado pelo próprio autor.