You are on page 1of 158

DETECO DA INTRUSO UTILIZANDO CLASSIFICAO BAYESIANA Roberto Bomeny Maia

TESE

SUBMETIDA

AO

CORPO

DOCENTE

DA

COORDENAO

DOS

PROGRAMAS DE PS-GRADUAO DE ENGENHARIA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS

NECESSRIOS PARA A OBTENO DO GRAU DE MESTRE EM CINCIAS EM ENGENHARIA ELTRICA.

Aprovada por:

Prof. Jorge Lopes de Souza Leo, Dr.Ing.

Prof. Luiz Pereira Caloba, Dr.Ing.

Prof. Flvio Joaquim de Souza, Dr.

RIO DE JANEIRO, RJ - BRASIL ABRIL DE 2005

MAIA, ROBERTO BOMENY Deteco da Intruso Utilizando Classicao Bayesiana [Rio de Janeiro] 2005 XIX, 139 p. 29,7 cm (COPPE/UFRJ, M.Sc., Engenharia Eltrica, 2005) Tese - Universidade Federal do Rio de Janeiro, COPPE 1. Segurana da Informao 2. Redes de Computadores 3. Modelos Probabilsticos 4. Deteco da Intruso 5. Redes Bayesianas

I. COPPE/UFRJ

II. Titulo (srie)

ii

A minha me Nadege, minha av Celina, minha famlia e amigos. Obrigado por me terem apoiado nesse desao.

iii

Agradecimentos
Agradeo a minha av Celina, pois sem sua ateno no incio dos meus estudos jamais teria chegado at aqui. Ao meu companheiro de mestrado, Alexandre, que me incentivou a nalizar esse trabalho. Ao meu irmo que me deu inspirao para entrar no mestrado. Aos meus verdadeiros amigos que foram pacientes o suciente para suportar a minha dedicao e ausncia. Muito obrigado ao meu orientador, aos colegas, professores e membros da banca pela oportunidade. Agradeo em especial a Vnia, por estar ao meu lado nesse momento to importante da minha vida. Aos meus companheiros de trabalho da Embratel que me ajudaram muito em todo esse caminho. Obrigado UFRJ, COPPE e seus funcionrios pela colaborao.

iv

Resumo da Tese apresentada COPPE/UFRJ como parte dos requisitos necessrios para a obteno do grau de Mestre em Cincias (M.Sc.)

DETECO DA INTRUSO UTILIZANDO CLASSIFICAO BAYESIANA Roberto Bomeny Maia Abril/2005

Orientador: Jorge Lopes de Souza Leo Programa: Engenharia Eltrica

O crescimento assustador dos sistemas computacionais conectados em rede e a oferta cada vez maior dos servios oferecidos pela Internet, trazem s instituies o desao de oferec-los de maneira convel, ntegra e disponvel. Esses trs alicerces denem o conceito de segurana, que tem sido o objeto de pesquisa no intuito de encontrar arquiteturas que consigam identicar as tentativas de uso no autorizado ou indevido e intruses nos ambientes computacionais. A pesquisa de algoritmos de deteco de intruso tem evoludo muito nos ltimos anos, mas ao mesmo tempo em que so ecientes em detectar os ataques, so inecientes, pois geram uma quantidade muito grande de alarmes. Assim, o desao na construo desses algoritmos est em criar um modelo sucientemente robusto e capaz de reduzir a imensa quantidade de eventos gerados, melhorando a qualidade dos alarmes resultantes. O objetivo desse trabalho foi implementar um sistema de deteco de intruso, chamado NBIS (Nave Bayes Inference System), usando os mtodos de induo probabilstica e inferncia Bayesiana para desenvolver um classicador que pudesse ser treinado para identicar trs tipos diferentes de ataques: Guest, Neptune e Portsweep. Os testes utilizaram os dados simulados gerados pelo Laboratrio Lincoln do MIT. Os resultados dessa tese comprovaram a ecincia do modelo proposto do classicador Nave Bayes na deteco da Intruso. v

Abstract of Thesis presented to COPPE/UFRJ as a partial fulllment of the requirements for the degree of Master of Science (M.Sc.)

INTRUSION DETECTION USSING BAYESIAN CLASSIFIER Roberto Bomeny Maia Abril/2005

Advisors: Jorge Lopes de Souza Leo Department: Electrical Engineering

The hardwired frightful growth of network computational systems and the offer of services over the Internet bring to companies the challenge to present them with availability, condentiality and integrity. These three foundations dene the security concept, that it has been the object of research in an intention to nd architectures that identify the attempts of not authorized or improper use and intrusions in computational environments. The researches of intrusion detention algorithms have growth last years, but at the same time where they are efcient in detecting the attacks, they are inefcient, therefore they generate a great amount of alarms. Thus, the challenge in constructing these algorithms is to create a model enough robust and capable to reduce the immense amount of generated events, improving the quality of the resultant alarms. The objective of this work was to implement a intrusion detection system, call NBIS (Nave Bayes Inference System), using methods of probabilistic induction and Bayesiana inference to develop a classier that could be trained to identify three different types of attacks: Guest, Neptune and Portsweep. The tests had used the simulated data generated by MIT Lincoln Laboratory. The results of this thesis had proven the efciency of the Nave Bayes classier model for intrusion detention.

vi

Sumrio

Resumo Abstract Lista de guras Lista de tabelas Lista de acrnimos 1 Introduo 1.1 1.2 Motivao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

v vi xii xvii xix 1 2 3 6 6 7 10 11 11

2 Aspectos Gerais de Segurana 2.1 2.2 2.3 2.4 2.5 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sistemas de Deteco da Intruso (SDI) . . . . . . . . . . . . . . . . . . Deteco por Uso Indevido . . . . . . . . . . . . . . . . . . . . . . . . . Deteco por Anomalia . . . . . . . . . . . . . . . . . . . . . . . . . . . Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . .

vii

SUMRIO
2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 Sistemas Especialistas ou de Produo . . . . . . . . . . . . . . . Sistema Baseado em Modelo de Concluso . . . . . . . . . . . . Anlise por Transio de Estado . . . . . . . . . . . . . . . . . . Monitorao de Entrada de Comandos . . . . . . . . . . . . . . . Combinaes de Padres . . . . . . . . . . . . . . . . . . . . . . Abordagem Estatstica . . . . . . . . . . . . . . . . . . . . . . . Predio da Gerao de Padres . . . . . . . . . . . . . . . . . . Redes Neurais . . . . . . . . . . . . . . . . . . . . . . . . . . . Algoritmos Genticos . . . . . . . . . . . . . . . . . . . . . . .

viii 12 13 13 14 14 15 15 16 16 17 17 17 18 18 20 20 20 22 23 26 28 29

2.5.10 Baseado em Lgica Difusa . . . . . . . . . . . . . . . . . . . . . 2.5.11 Agentes Autnomos . . . . . . . . . . . . . . . . . . . . . . . . 2.5.12 Mtodos de Minerao de Dados . . . . . . . . . . . . . . . . . . 2.5.13 Mtodos Probabilsticos . . . . . . . . . . . . . . . . . . . . . . 2.5.14 Outros Mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Classicador Nave Bayes 3.1 3.2 3.3 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Teorema de Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introduo ao Classicador Nave Bayes . . . . . . . . . . . . . . . . . . 3.3.1 3.3.2 3.3.3 3.4 Modelo do Classicador . . . . . . . . . . . . . . . . . . . . . . Treinamento do Classicador . . . . . . . . . . . . . . . . . . . Inferncia do Classicador . . . . . . . . . . . . . . . . . . . . .

Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

SUMRIO
4 Aquisio e Levantamento dos Dados 4.1 4.2 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A Base DARPA 98 e DARPA 99 . . . . . . . . . . . . . . . . . . . . . . 4.2.1 4.3 Crticas Base DARPA 98 e DARPA 99 . . . . . . . . . . . . . .

ix 30 30 31 33 34 36 41 42 43 44 46 47 54 55 60 60 60 61 62 62 65 66

Mdulo de Carga de Dados . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 4.3.2 Carga dos Dados de Trfego . . . . . . . . . . . . . . . . . . . . Carga dos Dados de Eventos de Ataque . . . . . . . . . . . . . .

4.4

Denio das Classes e dos Tipos de Ataque . . . . . . . . . . . . . . . . 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 Ataque Guest . . . . . . . . . . . . . . . . . . . . . . . . . . . . Denio dos Vetores de Caractersticas . . . . . . . . . . . . . . Ataque Neptune . . . . . . . . . . . . . . . . . . . . . . . . . . Denio dos Vetores de Caractersticas . . . . . . . . . . . . . . Ataque Portsweep . . . . . . . . . . . . . . . . . . . . . . . . . Denio dos Vetores de Caractersticas . . . . . . . . . . . . . .

5 Implementao do NBIS 5.1 5.2 5.3 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objetivo do NBIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arquitetura do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.1 5.3.2 5.3.3 5.3.4 Mdulo de Carga de Dados . . . . . . . . . . . . . . . . . . . . . Mdulo de Treinamento . . . . . . . . . . . . . . . . . . . . . . Mdulo Classicador . . . . . . . . . . . . . . . . . . . . . . . . Mdulo de Sada do Sistema . . . . . . . . . . . . . . . . . . . .

SUMRIO
5.4 5.5 5.6 Avaliao de Desempenho . . . . . . . . . . . . . . . . . . . . . . . . . Ferramentas Utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . Treinamento do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6.1 5.6.2 5.6.3 5.7 Treinamento do Ataque Guest . . . . . . . . . . . . . . . . . . . Treinamento do Ataque Neptune . . . . . . . . . . . . . . . . . . Treinamento do Ataque Portsweep . . . . . . . . . . . . . . . . .

x 67 68 69 69 70 72 74 76 76 76 78 80 82 87 89 91 91 96 98 104

Classicao do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . .

6 Anlise dos Resultados 6.1 6.2 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classicao do Ataque Guest . . . . . . . . . . . . . . . . . . . . . . . 6.2.1 6.3 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Classicao do Ataque Neptune . . . . . . . . . . . . . . . . . . . . . . 6.3.1 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.4

Classicao do Ataque Portsweep . . . . . . . . . . . . . . . . . . . . . 6.4.1 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7 Concluso e Trabalhos Futuros 7.1 7.2 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Referncias Bibliogrcas A Anexo I

A.1 BCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

SUMRIO

xi

A.1.1 Programa dom . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 A.1.2 Programa bci . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 A.1.3 Programa bcx . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 A.2 Programas Auxiliares . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 B Apndice II 128

B.1 Ataque Guest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 B.2 Ataque Neptune . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 B.3 Ataque Portsweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

Lista de Figuras

1.1 2.1 2.2 2.3 2.4 3.1 3.2 4.1 4.2 4.3

Histrico do total de incidentes reportados CERT de 1995 a 2003 . . . . Modelo de gerenciamento de segurana . . . . . . . . . . . . . . . . . . Taxonomia dos SDIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sistemas de deteco da intruso por uso indevido . . . . . . . . . . . . . Sistemas de deteco da intruso por anomalia . . . . . . . . . . . . . . . Exemplo de um grco acclico direcionado (DAG) . . . . . . . . . . . . Estrutura em estrela do Classicador Nave Bayes . . . . . . . . . . . . . Diagrama da rede da avaliao do DARPA 98 . . . . . . . . . . . . . . . Diagrama em blocos do mdulo de carga de dados . . . . . . . . . . . . . Comportamento da caracterstica do nmero total de conexes (TxG) em 5 minutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1 7 9 10 11 22 23 31 35

45

4.4

Comportamento da caracterstica do nmero total de Reset (RST) em 5 minutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 48

4.5 4.6

Total de conexes em 1 minuto em toda a base de treinamento . . . . . . Detalhamento do total de conexes em um seguimento da base de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

48

xii

LISTA DE FIGURAS
4.7 Total de FSR da origem para o destino (FSR_a2b) em toda a base de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.8 Total de FSR da origem para o destino (FSR_a2b) em um seguimento da base de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.9 Total de FSR do destino para a origem (FSR_b2a) em toda a base de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.10 Total de FSR do destino para a origem (FSR_b2a) em um seguimento da base de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

xiii

49

49

50

50

4.11 Total de ACK da origem para o destino (ACK_a2b) na base de treinamento 51 4.12 Total de ACK da origem para o destino (ACK_a2b) em um seguimento da base de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.13 Total de pacotes recebidos e transmitidos em 1 minuto (BPP) na base de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.14 Total de pacotes recebidos e transmitidos em 1 minuto (BPP) em um seguimento da base de treinamento . . . . . . . . . . . . . . . . . . . . . . 4.15 Mdia de pacotes por conexo (MBPP) na base de treinamento . . . . . . 4.16 Mdia de pacotes por conexo (MBPP) em um seguimento da base de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.17 Evidncia de ataques Portsweep (sinalizado por um crculo) atravs do SDP em funo da quantidade de pacotes e o intervalo de tempo (chunk) . 4.18 Total de SDPs em 5 minutos na base de treinamento . . . . . . . . . . . . 4.19 Total de SDPs em 5 minutos em um seguimento da base de treinamento . 4.20 Total de SDPs em 5 minutos em um seguimento da base de treinamento . 56 56 57 57 53 52 52 52 51

4.21 Mdia de pacotes por conexo em 5 minutos (MBPP) na base de treinamento 58

LISTA DE FIGURAS
4.22 Detalhamento da mdia de pacotes por conexo em 5 minutos (MBPP) em um seguimento da base de treinamento . . . . . . . . . . . . . . . . . 4.23 Detalhamento da mdia de pacotes por conexo em 5 minutos (MBPP) em um seguimento da base de treinamento . . . . . . . . . . . . . . . . . 4.24 Ataque Portsweep com tempo de varredura ampliado . . . . . . . . . . . 4.25 Viso da Figura 4.24 com intervalo maior de tempo dentro um mesmo intervalo de tempo (chunk) . . . . . . . . . . . . . . . . . . . . . . . . . 5.1 5.2 5.3 Diagrama em bloco do sistema NBIS . . . . . . . . . . . . . . . . . . . . Diagrama em bloco do mdulo de treinamento . . . . . . . . . . . . . . . A base de dados das classes do ataque Guest possui 3 vetores de caractersticas (atributos), sendo um deles a denio das classes. A distribuio de probabilidade normal apresentada na parte central da gura. . 5.4 5.5 Diagrama em bloco da classicao . . . . . . . . . . . . . . . . . . . . Arquitetura do classicador Nave Bayes para o ataque Guest com os 2 vetores de caractersticas e as 2 classes Ataque e NAtaque. . . . . . . . . 5.6 5.7 Resultado do treinamento Nave Bayes para o ataque Guest. . . . . . . . Arquitetura do classicador Nave Bayes para o ataque Neptune com os 6 vetores de caractersticas e as 2 classes Ataque e NAtaque. . . . . . . . 5.8 5.9 Resultado do treinamento Nave Bayes para o ataque Neptune. . . . . . . Arquitetura do classicador Nave Bayes para o ataque Portsweep com os 2 vetores de caractersticas e as 2 classes Ataque e NAtaque. . . . . . . . 5.10 Resultado do treinamento Nave Bayes para o ataque Portsweep. . . . . . 6.1 6.2 Comportamento do vetor de caracterstica RST na base de teste. . . . . . Comportamento do vetor de caracterstica RST na base de teste com detalhamento do ataque. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

xiv

58

59 59

59 61 62

64 65

70 71

72 73

74 75 77

77

LISTA DE FIGURAS
6.3 6.4 Comportamento do vetor de caracterstica TxG na base de teste. . . . . . Comportamento do vetor de caracterstica TxG na base de teste com detalhamento do ataque. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.5 Representao grca dos pontos do conjunto de dados de teste em relao s classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6 6.7 Comportamento do vetor de caracterstica TxG em toda a base de teste. . Comportamento do vetor de caracterstica TxG em toda a base de teste com detalhamento do ataque. . . . . . . . . . . . . . . . . . . . . . . . . 6.8 6.9

xv 78

78

80 80

81

Comportamento do vetor de caracterstica FSR_a2b em toda a base de teste. 81 Comportamento do vetor de caracterstica FSR_a2b em toda a base de teste com detalhamento do ataque. . . . . . . . . . . . . . . . . . . . . . 82

6.10 Comportamento do vetor de caracterstica FSR_b2a em toda a base de teste. 82 6.11 Comportamento do vetor de caracterstica FSR_b2a em toda a base de teste com detalhamento do ataque. . . . . . . . . . . . . . . . . . . . . . 6.12 Comportamento do vetor de caracterstica ACK_a2b em toda a base de teste. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.13 Comportamento do vetor de caracterstica ACK_a2b em toda a base de teste com detalhamento do ataque. . . . . . . . . . . . . . . . . . . . . . 6.14 Comportamento do vetor de caracterstica BPP em toda a base de teste. . 6.15 Comportamento do vetor de caracterstica BPP em toda a base de teste com detalhamento do ataque. . . . . . . . . . . . . . . . . . . . . . . . . 6.16 Comportamento do vetor de caracterstica MBPP em toda a base de teste. 6.17 Comportamento do vetor de caracterstica MBPP em toda a base de teste com detalhamento do ataque. . . . . . . . . . . . . . . . . . . . . . . . . 85 85 85 84 84 83 83

LISTA DE FIGURAS
6.18 Representao grca dos pontos do conjunto de dados de teste em relao s classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.19 Comportamento do vetor de caracterstica SDP em toda a base de teste. . 6.20 Comportamento do vetor de caracterstica SDP em toda a base de teste com detalhamento do ataque. . . . . . . . . . . . . . . . . . . . . . . . . 6.21 Comportamento do vetor de caracterstica SDP em toda a base de teste com detalhamento do ataque. . . . . . . . . . . . . . . . . . . . . . . . . 6.22 Comportamento do vetor de caracterstica MBPP em toda a base de teste. 6.23 Comportamento do vetor de caracterstica MBPP em toda a base de teste com detalhamento do ataque. . . . . . . . . . . . . . . . . . . . . . . . . 6.24 Comportamento do vetor de caracterstica MBPP em toda a base de teste com detalhamento do ataque. . . . . . . . . . . . . . . . . . . . . . . . . 7.1 7.2 Resultado nal dos ataques . . . . . . . . . . . . . . . . . . . . . . . . . Comparao entre o classicador Bayesiana e Neuro-Fuzzy para o ataque Guest. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Comparao entre o classicador Bayesiana e Neuro-Fuzzy para o ataque Neptune. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4 Comparao entre o classicador Bayesiana e Neuro-Fuzzy para o ataque Portsweep. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

xvi

86 87

87

88 88

89

89 93

94

95

96

Lista de Tabelas

4.1 4.2

Lista dos ataques por classe do DARPA 98 . . . . . . . . . . . . . . . . . Lista dos campos de informao do arquivo de trfego. * Somente para o conjunto de dados de teste do DARPA 99 . . . . . . . . . . . . . . . . .

32

38

4.3

Levantamento quantitativo dos registros na base de dados de trfego de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.4 4.5

Levantamento quantitativo dos registros na base de dados de trfego de teste 39 Levantamento quantitativo dos registros e eventos de ataque na base de dados de trfego de treinamento . . . . . . . . . . . . . . . . . . . . . . 39

4.6

Levantamento quantitativo dos registros e eventos de ataque na base de dados de trfego de teste . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.7

Campos do banco de dados de eventos. * Somente para o conjunto de dados de teste do DARPA 99 . . . . . . . . . . . . . . . . . . . . . . . . 41

4.8

Lista dos ataques selecionados com o levantamento quantitativo na base de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.9

Lista dos ataques selecionados com o levantamento quantitativo na base de teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 44 47 55

4.10 Quanticao do Ataque Guest . . . . . . . . . . . . . . . . . . . . . . . 4.11 Quanticao do ataque Neptune . . . . . . . . . . . . . . . . . . . . . . 4.12 Quanticao do ataque Portsweep . . . . . . . . . . . . . . . . . . . . . xvii

LISTA DE TABELAS
6.1 6.2 6.3 Resultado da classicao do ataque Guest. . . . . . . . . . . . . . . . . Resultado da classicao do ataque Neptune. . . . . . . . . . . . . . . . Resultado da classicao do ataque Portsweep. . . . . . . . . . . . . . .

xviii 79 86 90

A.1 Lista de opes do programa dom. . . . . . . . . . . . . . . . . . . . . . 105 A.2 Lista de opes do programa bci. . . . . . . . . . . . . . . . . . . . . . . 106 A.3 Lista de opes do programa bcx. . . . . . . . . . . . . . . . . . . . . . 107

Lista de acrnimos
CERT : IA : IDS : SDI : NBIS : HIDS : NIDS : FDP : MAP : ML : DAG : DARPA : DoS : R2L : U2R : FP : FN : RP : RN : Computer Emergency Readiness Team; Inteligncia Articial; Intrusion Detection System; Sistema de Deteco de Intruso; Nave Bayes Inference System; Host Intrusion Detections System; Network Intrusion Detections System ; Funo de Distribuio de Probabilidade; Mximo A Posteriori; Mximo Likelihood; Directed Acyclic Graph; Defense Advanced Research Projects Agency; Denial of Service; Remote-to-Local; User-to-Root; Falso Positivo; Falso Negativo; Real Positivo; Real Negativo;

xix

Captulo 1 Introduo
Com o crescimento signicativo dos sistemas computacionais em rede, principalmente os conectados Internet, foi observado, um aumento exponencial dos eventos de segurana nos ltimos 5 anos, conforme observado na Figura 1.1. Com a valorizao dos contedos digitais, ou seja, a informao, e a oferta cada vez maior de servios na rede pblica, diferentes mecanismos de controle tm sido desenvolvidos com o objetivo de proteg-los.

Estatstica da CERT (1995-2003)

Total de Incidentes Reportados em Milhares

160 140 120 100 80 60 40 20 0 1995 1996 1997 1998 1999 Ano 2000 2001 2002 2003

Figura 1.1: Histrico do total de incidentes reportados CERT de 1995 a 2003

1.1 Motivao

O aprimoramento constante dos ataques e as facilidades computacionais que os atacantes possuem, constitui um cenrio desaador na construo de sistemas que possam detectar, prevenir e proteger os ambientes computacionais atuais.

1.1 Motivao
Segundo o centro nacional de segurana da computao (NCSC - National Computer Security Center) [1] [2] um ambiente computacional ou de rede considerado seguro desde que sejam estabelecidos mecanismos que garantam a condencialidade e a integridade dos dados e/ou comunicaes sem que as mesmas se tornem indisponveis aos usurios. Na cincia da computao existem hoje 3 tipos diferentes de tecnologia que podem ser utilizadas para garantir a segurana de um ambiente computacional, so elas: Firewall, Sistemas de Deteco de Vrus e Detectores de Intruso. O Firewall trabalha sobre regras preestabelecidas pela poltica de segurana permitindo ou bloqueando os trfegos que passam por ele, sem qualquer julgamento sobre o contedo deste. Ele um elemento ativo na rede e pode inuenciar diretamente na disponibilidade da informao em caso de falha. Os Sistemas de Deteco de Vrus tm a funo de vericar o contedo de arquivos e mensagens que trafegam na rede procura de padres preestabelecidos (assinaturas) de no conformidade, bloqueando-os e comunicando o evento ao usurio. Geralmente esto congurados nas estaes de trabalho e nos servidores. Os Sistemas de Deteco de Intruso (SDI) so elementos passivos da rede e trabalham como um coletor e analisador de trfego, procurando por evidncias de uso indevido geralmente baseados em regras ou comportamentos. Deteco de Intruso uma rea recente de estudo que prope prover maior segurana aos sistemas computacionais e s redes computacionais atuais, permitindo que elas operem em modo aberto. O objetivo da deteco de intruso detectar, preferencialmente em tempo real, o uso no autorizado ou indevido e abusos do ambiente computacional tanto

1.2 Objetivo

interno quanto externo [3]. Sua implementao tem sido um desao nos dias de hoje devido proliferao das redes que permitem o acesso aos usurios externos, tornando fcil aos invasores evitar qualquer tipo de identicao. Dentro deste cenrio a deteco da intruso torna-se um poderoso e necessrio instrumento para prover maior segurana aos sistemas computacionais e s redes de computadores, permitindo o estabelecimento de uma poltica que reconhea de maneira rpida e eciente as novas ameaas e assim realize as devidas alteraes nos processos existentes para elimin-las. Os sistemas atuais de deteco de intruso (SDI) so na sua grande maioria baseados em regras ou assinaturas previamente estabelecidas por um especialista. Esse modelo supe que aos ataques sejam conhecidos e mapeados a priori para que possam ser detectados. Alguns sistemas permitem compor as regras de maneira a detectar pequenas variaes das assinaturas conhecidas, mas no possuem qualquer mecanismo para identicar novo tipo de ataque. Existem estudos sendo realizados, propondo algoritmos mais exveis e inteligentes que possam detectar ataques conhecidos, variaes destes e novos ataques, sem que seja necessria a interveno do especialista. Este modelo ainda est longe de se tornar realidade, mas os trabalhos com inteligncia articial (IA) tm se mostrado capazes de auxiliar os pesquisadores nessa tarefa. Os algoritmos existentes para deteco da intruso, alm de detectarem os ataques, o que chamamos de real positivo, tambm geram uma quantidade muito grande de alarmes de situaes que no so evidncias de ataque e so denominados de falsos positivos. Assim, o desao na construo desses algoritmos est em criar um modelo sucientemente robusto e capaz de reduzir a imensa quantidade de eventos gerados, melhorando a qualidade dos alarmes resultantes.

1.2 Objetivo
Nesse cenrio desconhecido e altamente mutante da deteco da intruso o desao achar o equilbrio entre detectar uma evidncia real de ataque sem gerar quantidades

1.2 Objetivo

absurdas de eventos falsos ou falsos alarmes. Com esse intuito foi implementado e testado nesse trabalho um modelo de deteco da intruso utilizando-se um classicador com algoritmo de inferncia probabilstica, chamado Classicador Nave Bayes. Esse modelo utiliza como base o teorema de Bayes, cujo nome vem do seu criador Thomas Bayes, um matemtico do sculo XVIII, que teve seu postulato publicado em 1763, 3 anos aps a sua morte. A essncia da abordagem Bayesiana prover regras que expliquem como mudar o grau de crena atual em uma hiptese quando da constatao de novas evidncias. Sua aplicao tem sido observada em diversas reas do conhecimento, desde a medicina computao, sendo considerado um timo mtodo para lidar com a incerteza e a impreciso, que so fenmenos relacionados com a deteco da intruso. O objetivo desse trabalho foi implementar um sistema de deteco de intruso, chamado NBIS (Nave Bayes Inference System), usando os mtodos de induo probabilstica e inferncia Bayesiana para desenvolver um classicador que pudesse ser treinado para identicar trs tipos diferentes de ataques (Guest, Neptune e Portsweep) utilizando dados simulados gerados pelo Laboratrio Lincoln do MIT em um projeto apoiado pela agncia DARPA cujos resultados sero denominados de agora em diante como DARPA 98 e DARPA 99. O NBIS foi concebido em 4 mdulos, so eles: aquisio e carga de dados, treinamento, classicao e sada de relatrios, que sero detalhados nos captulos a seguir. A base de dados do DARPA 98 e DARPA 99, apesar de todos os seus problemas, freqentemente utilizada para testes de desempenho em sistemas de deteco de intruso e foi escolhida nesse trabalho com o intuito de permitir a comparao com outras pesquisas acadmicas. Tcnicas de minerao de dados (Data Mining) foram necessrias para lidar com a imensa quantidade de informao, 10 Giga bytes de dados comprimidos. Vrias transformaes e adequaes foram necessrias at que se obtivesse ua massa de dados para treinamento e teste que fosse suciente para realizar os experimentos. A classicao utilizada no NBIS uma variao simplicada da classicao com redes Bayesianas chamada Nave Bayes que utiliza como fundamento principal a inde-

1.2 Objetivo

pendncia condicional entre as suas variveis, as quais compem os vetores de caractersticas utilizadas na deteco dos ataques. A escolha correta desses vetores fator decisivo no desempenho do SDI, como ser visto no decorrer desse trabalho. Com os resultados dessa tese, acredita-se que se comprove a ecincia do modelo do classicador Nave Bayes proposto, permitindo que o mesmo possa ser utilizado dentro de uma arquitetura nova ou j existente de deteco da intruso. Esse trabalho est organizado da seguinte maneira: o Captulo 2 apresenta uma viso geral sobre segurana e apresenta os trabalhos desenvolvidos na rea de deteco da intruso; o Captulo 3 apresenta o teorema de Bayes e o classicador Nave Bayes. Toda a parte de aquisio e levantamento dos dados, e a denio dos vetores de caractersticas so apresentados no Captulo 4. O Captulo 5 apresenta a arquitetura do sistema NBIS e o treinamento do classicador Nave Bayes. No Captulo 6 so apresentados os resultados dos testes e por m, no Captulo 7, a concluso e os trabalhos futuros.

Captulo 2 Aspectos Gerais de Segurana


2.1 Introduo
Os requisitos fundamentais de segurana de um ambiente computacional so caracterizados pela conabilidade, integridade e condencialidade. A conabilidade trata da capacidade do ambiente computacional trabalhar ininterruptamente sem falhas, comportando-se do mesmo modo no qual foi congurado inicialmente, sendo imune a negao de servio, ou seja, quando a capacidade do sistema atinge um nvel inferior ao permitido, no possibilitando o acesso aos recursos oferecidos [4]. A integridade garante que os dados e a comunicao no ambiente computacional no foram alterados ou corrompidos indevidamente, ou seja, se preocupa com a exatido, delidade, no corrupo e a certeza da transferncia da informao entre as entidades. J a condencialidade garante que os recursos do ambiente computacional esto disponveis somente para pessoas autorizadas. Ento podemos denir que segurana de sistemas e redes o meio de garantir a conabilidade, a integridade e a condencialidade de um ambiente computacional. O processo de gerenciamento de segurana prope um modelo sucientemente robusto que garanta esses fundamentos bsicos, como apresentado na Figura 2.1. Como pode ser observada na Figura 2.1 a deteco de problemas o segundo nvel

2.2 Sistemas de Deteco da Intruso (SDI)


Recuperao do Sistema

Preveno

Monitorao e Anlise

Recuperao

Deteco

Identificao da Origem

Investigao

Deteco de Problemas

Figura 2.1: Modelo de gerenciamento de segurana no modelo de segurana e neste contexto que a deteco de intruso se aplica. Segundo BACE [5] dene-se deteco de intruso como o processo de monitorar eventos que ocorrem em um sistema computacional ou rede de computadores, analisando-os em busca de evidncias de segurana. Neste captulo ser apresentada uma reviso geral dos sistemas de deteco da intruso e as tecnologias utilizadas neles e uma viso atual do que est sendo desenvolvido hoje na rea.

2.2 Sistemas de Deteco da Intruso (SDI)


Os sistemas de deteco da intruso (SDI), cujo inicio do desenvolvimento datam de 1970, uma evoluo dos antigos sistemas de auditoria, os quais deniam um processo de gerao, gravao e reviso dos registros cronolgicos dos eventos dos sistemas. O objetivo de um SDI detectar, preferencialmente em tempo real, o uso no autorizado, indevido e ameaas lgicas, circunscrevendo tais ameaas a sistemas de computao presentes, tanto nos ambientes internos como externos [3]. O funcionamento de um SDI baseado na premissa de ser possvel detectar o comportamento anmalo, pois este ser notoriamente diferente de um comportamento considerado padro, usualmente praticado por um usurio legtimo. Tipicamente, os SDI implementam modelos estatsticos de deteco da anomalia ou so baseados em regras

2.2 Sistemas de Deteco da Intruso (SDI) que detectam o uso indevido.

Em seu artigo DENNING [6] sugere um modelo de sistema especialista de deteco de intruso em tempo real capaz de detectar interrupes, penetraes e outras formas de abuso. Esse modelo se baseia na hiptese de que uma violao de segurana pode ser detectada monitorando-se os registros de auditoria dos sistemas procura de padres de uso anormal. O modelo inclui pers, para representar o comportamento dos usurios e regras, para adquirir conhecimento sobre esse comportamento a partir dos registros de auditoria com o objetivo de detectar comportamentos anmalos. O modelo independente do tipo de sistema, ambiente de aplicao, vulnerabilidade do sistema ou tipo de intruso, provendo a arquitetura genrica para um sistema especialista de deteco da intruso. A Figura 2.2 mostra a taxonomia dos sistemas de deteco da intruso. Segundo SUNDARAM [7] os SDIs so classicados em dois tipos distintos de estratgia de monitorao: baseada em host (HIDS - Host Intrusion Detection System) ou baseada em rede (NIDS - Network Intrusion Detection System). O HIDS tem sua fonte de dados baseada nos eventos de auditoria gerados a partir do sistema operacional do host., enquanto o NIDS tem seu mecanismo baseado na anlise do trfego da rede, pacote a pacote, podendo tambm utilizar-se dos eventos de auditoria do sistema operacional. Alguns SDIs se utilizam da mquina de estados do sistema operacional ou do protocolo de rede como fonte de dados para deteco da intruso. Os SDIs podem detectar a intruso para poucos ataques em tempo real ou a posteriori, onde neste ltimo os dados so analisados de forma seqencial off line (batch). Geralmente os SDIs adotam uma congurao de quase tempo real para alguns ataques, ou seja, necessitam agregar informaes sucientes durante algum tempo para poder fazer um julgamento. Ao detectar um ataque o SDI pode simplesmente enviar alertas sobre o evento em questo agindo passivamente ou pode de maneira ativa atuar sobre os dispositivos de proteo fazendo com que os mesmos bloqueiem o ataque. Este modo deve ser utilizado com muito cuidado, pois pode se tornar uma nova vulnerabilidade. As abordagens de deteco da intruso so basicamente organizadas em trs grandes

2.2 Sistemas de Deteco da Intruso (SDI)

Ativo

Passivo

Pacote de Rede

Log de Eventos

Anlise de Estado

Tempo Real

A Posteriori

Quanto ao Comportamento do Ataque

Quanto a Fonte de Dados

Quanto ao Tempo de An lise

Classificao dos Sistemas de Detec o de Intruso

Quanto a Abordagem de Deteco

Quanto a Estratgia de Monitorao

Quanto ao Abordagem de Posicionamento

Anomalia

Uso Indevido

Host

Rede

Hbridos

Centralizado

Distribudo

Agentes

Figura 2.2: Taxonomia dos SDIs grupos: o primeiro, chamado de deteco por uso indevido (misuse detection) detalhado na Figura 2.3, cuja abordagem busca, a partir de um banco de dados de assinaturas de eventos anteriormente caracterizados como maliciosos, procurar pela presena destas particularidades no trfego analisado; o segundo grupo chamado de deteco por anomalia (anomaly detection) no qual, a partir de uma referncia de caractersticas de comportamento considerados normais, pesquisa-se qualquer desvio que seja signicativo dentro de limites pr-estabelecidos pelo especialista, conforme detalhado na Figura 2.4 e, por m, os sistemas hbridos que basicamente utilizam as duas tcnicas anteriormente citadas. Os SDIs de rede geralmente so congurados quanto ao seu posicionamento de modo centralizado, onde existe um SDI para cada seguimento de rede a ser monitorado. Os SDIs de host possuem conguraes individualizadas, ou seja, uma para cada estao a ser monitorada. A abordagem distribuda, tanto para NIDS quanto para HIDS, trabalha com agentes que cam instalados nos ns a serem monitorados, o qual transfere as informaes para um SDI central que responsvel pelo processamento. Segundo FRANK [8] os atuais sistemas de deteco da intruso podem ser signica-

2.3 Deteco por Uso Indevido

10

tivamente melhorados com a utilizao de mtodos de inteligncia articial (IA), sendo estes aplicados na reduo e classicao de dados.

2.3 Deteco por Uso Indevido


A deteco por uso indevido se baseia na representao dos eventos na forma de padres ou assinaturas os quais permitiro detectar pequenas variaes nas caractersticas do ataque. Por se basear em regras de assinatura esse modelo no detecta padres de ataques novos ou desconhecidos. O desao dos sistemas de deteco por uso indevido denir regras que englobem todas as possibilidades de ataques e no comprometa a utilizao normal do sistema Este modelo o mais utilizado atualmente em SDI. Existem vrios trabalhos sendo desenvolvidos para criao de sistemas de deteco por uso indevido mais ecientes. As principais linhas de pesquisa baseadas nesse modelo so: Sistemas Especialistas Baseados em Regras (Rule Based Expert Systems), Sistemas Baseados em Raciocnio (Model Based Reasoning Systems), Anlise por Transio de Estado (State Transition Analysis), Monitorao de Entrada de Comandos (Key Stroke Monitoring) e Reconhecimento de Padres (Pattern Matching).

Figura 2.3: Sistemas de deteco da intruso por uso indevido

2.4 Deteco por Anomalia

11

2.4 Deteco por Anomalia


A tcnica de deteco por anomalia pressupe que a atividade de um intruso necessariamente anmala [7]. Isto signica que se estabelecermos um perl de utilizao normal do sistema, qualquer variao deste perl que tenha signicado estatstico e ultrapasse o limiar estabelecido, pode vir a ser um ataque. O desao desse sistema estabelecer um limiar no qual no se deixe de detectar tentativas reais, chamadas de falso negativo, e nem detectar tentativas que na verdade so atividades normais, conhecidas como falsos positivos Esta tcnica se assemelha aos mtodos heursticos de deteco de vrus. Existem vrios trabalhos sendo desenvolvidos para se criar sistemas de deteco por anomalia, as principais linhas de pesquisa dessa tcnica so: aproximao estatstica (Statistical Approaches), gerador de padres por previso (Predictive Pattern Generation) e redes neurais (Neural Network).

Figura 2.4: Sistemas de deteco da intruso por anomalia

2.5 Trabalhos Relacionados


Atualmente, a questo da deteco da anomalia encontra-se em aberto, sendo esta rea do conhecimento solicitada a elaborar algoritmos sucientemente robustos e capazes de reduzir a imensa quantidade de alertas gerados. Muitos desses alarmes no podem ser considerados evidncias de ataques e so denominados como falsos positivos. Assim, o desao na construo destes modelos est na qualidade dos alarmes resultantes. Hoje

2.5 Trabalhos Relacionados

12

encontramos diversas linhas de pesquisa nessa rea, todas tm o objetivo de melhorar o desempenho dos sistemas e diminuir o nmero de evidncias geradas por eles. Abaixo descrevemos alguns estudos nessa rea, alguns mais antigos mas que so plenamente utilizados, como os Sistemas Especialistas e outros mais recentes, como os que utilizam Redes Neurais, Lgica Difusa e Redes Probabilsticas.

2.5.1 Sistemas Especialistas ou de Produo


Os sistemas especialistas, classicados como SDI de uso indevido, so denidos como sistemas computacionais capazes de representar e raciocinar sobre algum domnio de conhecimento com o intuito de solucionar problemas e gerar avisos [9]. Os sistemas baseados em regras possuem uma base de regras previamente conhecida que comparada com os eventos de entrada seguindo um processo de comparao na forma se - ento (if-thenelse). Se a regra comparada for coincidente, um evento de sada gerado, caso contrrio outra regra pesquisada e assim sucessivamente. A tcnica de sistemas especialistas separa a fase de raciocnio da fase de soluo do problema. A principal desvantagem dessa tcnica a necessidade de manter a base de regras sempre atualizada com as ltimas informaes de vulnerabilidades, pois h o risco de no se detectar novos ataques. Outros pontos importantes que comprometem esse modelo so: o sistema de busca requer elevado processamento do sistema, a no ordenao das regras pode levar a uma deciso ineciente e a qualidade das regras que devem ser descritas por um especialista. Exemplos de sistemas que utilizam essa abordagem so: MIDAS, IDES (Intrusion Detection Expert System), NIDES (Next Generation IDES), DIDS e CMDS. Muitos sistemas comerciais atualmente utilizam esse modelo de deteco e procuram minimizar os problemas de desempenho utilizando tcnicas de otimizao de hardware.

2.5 Trabalhos Relacionados

13

2.5.2 Sistema Baseado em Modelo de Concluso


Esta proposta uma variao da deteco por uso indevido proposto por GARVEY e LUNT [10]. Ele combina o modelo de uso indevido com o raciocnio evidente para suportar concluses sobre as ocorrncias. O modelo procura por seqncias de comportamento de tentativas de intruso que inram sobre cenrio de intruso. O sistema composto por trs componentes: O antecipador, que tenta predizer o prximo passo sobre o cenrio a ocorrer, o planejador, que traduz a hiptese em um formato compatvel com os eventos de auditoria, e o interpretado, que procura pelos dados nos eventos de auditoria. O sistema continua coletando mais evidncias da tentativa de intruso at alcanar um limiar de valor que caracterize uma tentativa de intruso. Esta metodologia prov a interdependncia do dado com os eventos de auditoria alm de reduzir drasticamente o processamento por evento, devido ao seu modo otimizado de procura na base de dados. A principal desvantagem desse modelo a responsabilidade que o especialista tem ao criar os cenrios. Os cenrios devem ser abrangentes e distintos, para no serem confundidos com um comportamento normal.

2.5.3 Anlise por Transio de Estado


Nesta tcnica, classicada como SDI de uso indevido, o sistema monitorado representado por um diagrama de transio de estados. Os dados so analisados enquanto o sistema faz a transio de um estado para outro. A transio realizada se alguma condio Booleana for verdadeira. A proposta de ILGUN [11] e PORRAS e KEMMERER [12] fazer a transio de um estado seguro para um no seguro baseado nos padres de ataques conhecidos. Algumas vantagens deste modelo so: detectar ataques cooperativos, detectar ataques que se espalham por mltiplas sees e prever situaes que comprometam o sistema e tomar aes pr-ativas. Contudo existem alguns problemas nesse modelo, como: s poderem ser especicados padres de ataques atravs de seqncias de eventos e a no deteco de ataques do tipo negao de servio (DoS), falha de login e variao do uso normal.

2.5 Trabalhos Relacionados

14

Exemplos de sistemas que utilizam essa abordagem so: STAT, USTAT e CP-Net (Colored Petric-Net).

2.5.4 Monitorao de Entrada de Comandos


Esta tcnica utiliza a entrada de comandos do usurio, no shell de comando, para determinar a ocorrncia de um ataque. O princpio procurar por seqncias de padres que indiquem um ataque [7]. Existem muitas desvantagens nesta tcnica, como: indisponibilidade de acesso entrada de comando do usurio, as vrias maneiras de se expressar um mesmo ataque, a possibilidade de se utilizar sinnimos para representar um comando no nvel do shell e a no anlise dos programas executados. Uma melhoria para essa tcnica seria monitorar os comandos pelas chamadas ao sistema operacional

2.5.5 Combinaes de Padres


KUMAR e SPAFFORD [13] propuseram um novo sistema de deteco da intruso, classicada como SDI de uso indevido, baseado em combinao de padres chamado IDIOT (Intrusion Detection In Our Time). Este modelo codica assinaturas de intruses conhecidas em padres que so comparadas com os eventos de auditoria. Igual ao modelo de anlise por transio de estado, este tenta igualar eventos de entrada com padres que representam cenrios de intruso. A diferena entre os dois est na associao, enquanto que o modelo de anlise por transio de estado est associado ao estado, o modelo por combinaes de padres est associado transio. As vantagens desse modelo so: a facilidade de especicar o que precisa ser comparado, independncia de plataforma, excelente desempenho e o potencial de detectar assinaturas do tipo falha de login que o modelo de anlise por transio de estado no era capaz. As principais desvantagens so: no permite que se representem padres mal denidos, alta complexidade em se traduzir os cenrios de ataques conhecidos em padres e a no deteco de conexes no autorizadas e nem ataques do tipo spoong.

2.5 Trabalhos Relacionados

15

2.5.6 Abordagem Estatstica


Esta tcnica, classicada como SDI por anomalia, baseada em pers que so atualizados conforme a utilizao do sistema. O novo perl gerado sempre comparado com o anterior para vericar se houve algum desvio signicativo na utilizao. Caso seja detectada alguma anomalia um evento gerado. A principal vantagem dessa tcnica o aprendizado do comportamento do usurio com o tempo, mas isso pode levar o sistema a aprender o comportamento de um invasor. Com isso aes que deveriam ser consideradas anmalas sero consideradas normais (falso negativo). O ponto mais importante desta tcnica a escolha dos parmetros para gerao do perl [7]. Devido a grande quantidade de parmetros possveis, torna-se difcil escolher o conjunto de parmetros que melhor deniro o perl. Em seu trabalho DENNING [6] props alguns modelos estatsticos, para serem utilizados nos sistemas de deteco da intruso por anomalia, abordando mtricas de tipos diferentes. Entre eles est o modelo operacional, o modelo de mdia e desvio padro, o multivariado, o processo Markov e o de sries temporais. Exemplos de sistemas que utilizam essa abordagem so: Evolues do IDES, NIDES e MIDAS e Haystack.

2.5.7 Predio da Gerao de Padres


Este mtodo de deteco de intruso, classicada como SDI por anomalia, tenta prever os eventos futuros baseados nos eventos que j ocorreram e se baseia no trabalho de TENG, CHEN e LU [14] na proposta de uma mquina indutiva baseada em tempo (TIM - Time-based Inductive Machine). Neste modelo so criadas regras que denem cenrios do tipo R1 - R2 => (R3 = 30%, R4 = 60%, R5 = 10%). Isto signica que se o evento R2 ocorrer depois de R1 e existe a possibilidade de 30% de que o evento R3 ocorra, 60% que o evento R4 ocorra e 10% que o evento R5 ocorra. Ento qualquer seqncia de eventos que no correspondam s regras sero marcadas como uma anomalia. A desvantagem nesse modelo que pode existir um cenrio que no esteja descrito nas regras e gere eventos. Isso pode ser contornado disparando-se avisos sobre qualquer evento que no combine

2.5 Trabalhos Relacionados

16

com pelo menos uma regra. Isso pode gerar uma quantidade alta de falsos positivos. As principais vantagens desse modelo so: o aprendizado das seqncias de padres pode ser feito automaticamente e atualizados com a entrada de novos eventos de auditoria, a fcil deteco de usurios tentando treinar o sistema e o desempenho na deteco, que ocorre em segundos aps a chegada do evento de segurana.

2.5.8 Redes Neurais


A abordagem Neural utiliza tcnicas de aprendizagem para caracterizar os comportamentos anmalos. Existem algumas propostas de se utilizar essa tcnica em conjunto com os sistemas especialistas para deteco de intruso por anomalia [15]. O algoritmo de realimentao (backpropagation) da Rede Neural utilizado para o aprendizado das sries temporais da rede. O objetivo fazer um sistema capaz de prever o comportamento ou a seqncia deles realizado pelo usurio. Se o comportamento observado for diferente do previsto pelo sistema, um alerta de anomalia ser gerado. A grande vantagem desse sistema a tolerncia a esprios nos dados. Mesmo com dados incompletos ou imprecisos a rede neural ir detectar uma intruso. Algumas desvantagens so: se a janela de tempo de aprendizado for pequena, a quantidade de falsos positivos aumenta e se for muito grande aumentaro as chances de falsos negativos, a topologia da rede s determinada aps vrias tentativas e os usurios podem treinar a rede com uso indevido na fase de treinamento.

2.5.9 Algoritmos Genticos


Em seus estudos M [16] props uma nova tcnica utilizando inteligncia articial atravs de algoritmo gentico para a deteco de intruso por uso indevido. Ele criou o GASSATA (Genetic Algorithm as an Alternative Tool for Security Audit Trail Analysis) que dene uma ferramenta de segurana alternativa para anlise de eventos de auditoria baseada em algoritmo gentico. Sua teoria se baseia na construo de uma matriz de duas dimenses. Uma das diagonais da matriz especica diferentes ataques conhecidos e o outro eixo os diferentes tipos de eventos derivados da auditoria. Essa matriz representa

2.5 Trabalhos Relacionados

17

os padres de intruso. Dado um registro de auditoria monitorado que inclui informaes sobre o nmero de ocorrncias de cada evento, GASSATA ir aplicar o algoritmo gentico para encontrar possveis ataques nos registros de auditoria [17].

2.5.10 Baseado em Lgica Difusa


O modelo de deteco de intruso usando lgica difusa (Fuzzy Logic) aplica as teorias da incerteza e da impreciso para determinar uma tentativa de intruso [18]. Esse conceito muito bem aceito, pois a denio de segurana em si incerta e imprecisa, portanto Difusa. Este mtodo associado tcnica de redes neurais, conhecido como Neural-Fuzzy, permite a criao dos parmetros difusos a partir do treinamento da rede, que um problema encontrado nesse modelo, pois sem o treinamento necessrio que um especialista crie os parmetros difusos e as regras de inferncia.

2.5.11 Agentes Autnomos


CROSBIE e SPAFFORD [19] propuseram a construo de um sistema de deteco da intruso baseado em agentes autnomos. Ao invs de se ter um nico sistema de grande porte de deteco de intruso, teramos vrios sistemas de pequeno porte trabalhando cooperativamente. Este modelo garante maior ecincia, tolerncia a falhas, recuperao, escalabilidade e extensibilidade. Exemplos de sistemas que utilizam essa abordagem so: AAFID (Autonomous Agents for Intrusion Detection) e EMERALD.

2.5.12 Mtodos de Minerao de Dados


O mtodo de minerao de dados usado para extrair automaticamente e adaptativamente padres normais de utilizao a partir dos dados de treinamento. Dois mtodos de minerao de dados so propostos por LEE, STOLFO e MOK [20], associao de regras (association rules) e episdios de freqncia seqencial (serial frequency episode), para coletar dados de eventos de auditoria, seleo de caractersticas e anlise a posteriori. O mtodo de associao de regras especica a correlao entre as diferentes caractersticas

2.5 Trabalhos Relacionados

18

selecionadas e o mtodo de episdios de freqncia seqencial representa a ocorrncia repetitiva de uma seqncia de padres em uma seqncia de eventos. Este modelo pode ser utilizado por qualquer outra tcnica, pois a extrao das informaes da base de dados independente do mecanismo de deteco de intruso.

2.5.13 Mtodos Probabilsticos


Os mtodos probabilsticos j so amplamente utilizados em diversas reas do conhecimento. Algumas pesquisas recentes tm implementado a abordagem probabilstica na deteco da intruso, mas especicamente a utilizao de tcnicas de raciocnio probabilstico, como as Redes Bayesianas. Nesse modelo, classicado como deteco por anomalia, utiliza-se a Rede Bayesiana na classicao dos atributos de segurana que podem levar o sistema a uma evidncia ou no de intruso. Esse modelo necessita de treinamento para poder realizar a deciso do sistema. Uma outra abordagem da Rede Bayesiana, chamada Nave Bayes, tem chamado a ateno pela sua simplicidade e rapidez, sendo usada com sucesso como classicador em sistemas de deteco da intruso. Como trabalhos recentes nesta rea podemos destacar: o trabalho de SABYAL et al. [21] que idealizaram um SDI de host utilizando o modelo Nave Bayes; a anlise feita por KRUEGEL et al. [22] da utilizao do modelo Nave Bayes na classicao de eventos de chamada do sistema operacional (system calls) na deteco de anomalias; o modelo de deteco em tempo real utilizando redes Bayesiana proposta por PUTTINI et al. [23]; o modelo de monitorao adaptativo proposto por VALDES e SKINNER [24]; o sistema ADAM criado por BARBAR et al. [25] que utiliza tcnicas de aprendizado no supervisionadas usando um estimador pseudo-Bayesiano em conjunto com o classicador Nave Bayes; e o trabalho apresentado por AMOR et al. [26] onde comparado um sistema de deteco da intruso usando Nave Bayes e rvore de deciso.

2.5.14 Outros Mtodos


Por ser uma rea de estudo recente muito se tem feito para amadurecer esses conceitos no meio acadmico. A seguir listamos algumas linhas de estudo que podem vir

2.5 Trabalhos Relacionados

19

a ser usadas como padro de mercado no futuro, so elas: anlise do comportamento dos estados do protocolo TCP (Specication-based Anomaly Detection), anlise atravs de visualizao grca do uxo de trfego (Graph Clustering and Graph Drawing), utilizao de clusterizao, redes neurais, VQ (Vector Quantization), SOM (Self-Organizing Map), RBF (Radial Basis Function) e SVM (Support Vector Machines).

Captulo 3 Classicador Nave Bayes


3.1 Introduo
Recentemente o interesse pelos mtodos de induo probabilsticos tem crescido signicantemente devido aos seus vrios atrativos como a exibilidade do modelo, sua resilincia a rudos e sua aderncia teoria da probabilidade. Neste captulo apresentamos um mtodo simples de induo probabilstico denominado classicador Nave Bayes, baseado no Teorema de Bayes.

3.2 Teorema de Bayes


Se por denio P (A, B ) = P (A|B ) P (B ) e P (B, A) = P (B |A) P (A) e se P (A, B ) = P (B, A) ento: P (A|B ) P (B ) = P (B |A) P (A) (F-3.1) Onde, P(A,B) a probabilidade conjunta, P(A|B) e P(B|A) so probabilidades condicionais e P(A) e P(B) so probabilidades marginais dadas por: P (A) = P (A|Bn )P (Bn ) e P (B ) = P (B |An )P (An ).

3.2 Teorema de Bayes Onde, n pode variar de 1 a +. Se passarmos o termo P(B) da Frmula 3.1 dividindo para o lado direito temos: P (A|B ) =
P (B |A)P (A) . P (B )

21

Essa frmula deni o teorema de Bayes onde, P (A) a probabilidade a priori de A. P (A|B ) a probabilidade a posteriori do evento A dado a ocorrncia de B. P (B |A) chamada de probabilidade condicional do evento B dada a ocorrncia do evento A, quando conhecemos A e no conhecemos B. Se conhecemos B mas no conhecemos A, ento chamada de verossimilhana. A verossimilhana ou likelihood de P (B |A) escrita como L(A|B ). P (B ) a probabilidade a priori de B e age como uma constante de marginalizao fazendo com que o resultado que sempre entre o intervalo 0 e 1. Com essas denies podemos escrever a regra de Bayes como: prob.posteriori =
verossimilhan aprob.priori . constantedenormaliza a o

A probabilidade a priori P(A) a probabilidade marginal do evento A levando-se em conta somente as informaes conhecidas sobre ele, ou seja, a distribuio probabilstica que expressa a incerteza sobre A antes que dados relevantes sejam levados em considerao. Freqentemente a probabilidade a priori a pura estimao subjetiva de um especialista. A verossimilhana ou likelihood o inverso da probabilidade condicional. Dado o evento A, usamos a probabilidade condicional P (B |A) para concluir sobre o evento B, mas se o evento B fornecido, usamos a funo de verossimilhana L(A|B ) para concluir sobre o evento A. A funo de verossimilhana uma funo de probabilidade condicional considerada em funo do seu segundo argumento, mantendo-se o primeiro xo, ento temos: a P (B |A = a),

A probabilidade marginal P (B ) difcil de ser calculada, assim passamos a escrever o teorema como uma proporcionalidade, ento temos:

3.3 Introduo ao Classicador Nave Bayes P (An |B ) P (B |An ) P (An ).

22

Como P (B |An ) uma probabilidade, a soma sobre todas as hipteses possveis deve ser igual a 1, ento conclumos que: P (An |B ) = Onde, n e m podem variar de 1 a +. Ento nesse caso, P (B ) = a constante de normalizao. P (B |Am ) P (Am ).
P (B |An )P (An ) . P (B |Am )P (Am )

3.3 Introduo ao Classicador Nave Bayes


O classicador Nave Bayes pode ser visto como um tipo especial de modelo grco probabilstico sendo considerado como um grafo acclico direcionado (DAG - Directed Acyclic Graph), ou seja, no possui ciclos. Nesse modelo os ns representam as variveis e os arcos representam a existncia de inuncias casuais diretas entre as variveis conectadas (Figura 3.1). A intensidade dessas inuncias so expressas pelas probabilidades condicionais [27].

Figura 3.1: Exemplo de um grco acclico direcionado (DAG) Podemos dizer que o classicador Nave Bayes pode ser encarado como uma rede Bayesiana com uma estrutura em estrela (Figura 3.2) [28].

3.3 Introduo ao Classicador Nave Bayes

23

A2 A3 C A4 A1

...

An

Figura 3.2: Estrutura em estrela do Classicador Nave Bayes A Rede Bayesiana uma das ferramentas que lida com informaes incertas baseada na teoria da probabilidade. Ela a representao de uma distribuio de probabilidade conjunta sobre todas as variveis representadas pelos ns do grafo. Se X(1) , , X(n) so variveis e pai(A) o n pai de A, ento a distribuio conjunta de X(1) at X(n) representado pelo produto das distribuies das probabilidades p(Xi |pai(Xi )) para i = 1 at n. Se o n X no possuir pai, ento ele dito um n incondicional. O Nave Bayes tem diversas vantagens devido a sua estrutura simplicada. Sua inferncia, no nosso caso a classicao, alcanada em tempo linear, enquanto a inferncia em uma rede Bayesiana tradicional com estrutura genrica um problema "NPcompleto". A estrutura do Nave Bayes pode ser facilmente atualizada permitindo adicionar ou remover evidncias no modelo. Entretanto, sua suposio de independncia condicional entre as variveis nem sempre verdadeira podendo trazer inuncias negativas ao resultado da inferncia.

3.3.1 Modelo do Classicador


O classicador Nave Bayes [29] [30] [31] [32] um mtodo de classicao antigo e bem conhecido e utiliza a abordagem probabilstica para associar uma classe a um objeto ou caso baseado nos valores dos atributos usados para descrev-los. Ele calcula a probabilidade condicional para cada classe e ento decide pela a classe mais provvel para um determinado objeto ou caso. Seja C a classe de atributo com domnio nito de m classes, onde dom(C ) = {c1 , , cm }. Seja U o conjunto dos outros atributos usados para descrever o caso ou o objeto,

3.3 Introduo ao Classicador Nave Bayes

24

onde U = {A1 , , An }. Esses atributos podem ser simblicos dom(Ak ) = {ak,1 , , ak,mk }, ou numricos dom(Ak ) = R. Utilizando essa notao o caso ou objeto pode ser descrito pelo vetor de atributos instanciados (a1 , , an ) do atributo (A1 , , An ). Para um dado vetor de atributos instanciados (a1 , , an ) o classicador Nave Bayes tenta calcular a probabilidade condicional P (C = ci |A1 = a1 , , An = an ) para todo o conjunto ci e ento decide pela a classe baseado na maior probabilidade. Para esse calculo necessrio armazenar a distribuio de probabilidade de classe para cada ponto do domnio de atributos, o que cresce exponencialmente com o aumento desse nmero, tornando o clculo impraticvel. Para evitar esse problema o classicador Nave Bayes explora as regras do teorema de Bayes em conjunto com a independncia condicional entre as variveis. Utilizando-se a regra de Bayes a probabilidade condicional invertida, ou seja:
f (A1 =a1 ,,An =an |C =ci )P (C =ci ) . f (A1 =a1 ,,An =an )

P (C = ci |A1 = a1 , , An = an ) =

Para que essa inverso seja sempre possvel a funo de densidade probabilstica tem que ser obrigatoriamente positiva, ou seja:

f (A1 = a1 , , An = an ) > 0. Existem duas observaes importantes a serem feitas sobre a frmula acima. Na primeira o denominador da equao pode ser descartado, pois para o caso ou objeto em anlise este valor xo e no tem qualquer inuncia na escolha da classe. Se for necessrio, essa inuncia pode ser restaurada normalizando-se a distribuio pelas classes, usando a seguinte equao:
m j =1

f (A1 = a1 , , An = an ) = Ento:

f (A1 = a1 , , An = an |C = ci ) P (C = ci ).

P (C = ci |A1 = a1 , , An = an ) =

P ( C = ci ) f (A1 p0

= a1 , , An = an |C = ci ). (F-3.2)

3.3 Introduo ao Classicador Nave Bayes Onde p0 = f (A1 = a1 , , An ) a constante de normalizao.

25

Na segunda observao, como podemos constatar, a inverso no trouxe qualquer ganho em relao ao espao de amostra que continua sendo exponencial. Para eliminar esse problema utilizamos a abordagem da independncia condicional entre as variveis. Para explorar essa abordagem, primeiramente aplicamos a regra da probabilidade seqencial, ou seja: Se temos uma amostra da observao X , onde:

P (|X ) P () L(|X ). Eq: 3.1

e uma segunda observao Y , independente da primeira, onde:

P (|X, Y ) P () L(|X, Y ). Eq: 3.2

Como X independente em relao a Y , temos:

P (X, Y |) = P (X |) P (Y |) ou Eq: 3.3

L(X, Y |) = L(X |) L(Y |). Eq: 3.4

Ento podemos concluir que:

P (|X, Y ) P () L(|X ) L(|Y ) Eq: 3.5

P (|X, Y ) P (|X ) L(|Y ). Eq: 3.6

Onde P (|X ) a probabilidade a posteriori para a observao X , que tratada como probabilidade a priori para a observao Y . Aplicando a inferncia seqencial na Frmula 3.2 temos:

3.3 Introduo ao Classicador Nave Bayes P (C = ci |A1 = a1 , , An = an ) = =


P (C =ci ) f (Aj p0

26

= aj |Aj 1 = aj 1 , , A1 = a1 , C = ci )

= f (A2 = a2 |A1 = a1 , C = ci ) = f (A1 = a1 |C = ci )P (C = ci ). Em seguida, aplicamos a independncia condicional que diz: dado o valor do atributo da classe, qualquer atributo Aj independente de qualquer outro, ou seja, assumimos que sabendo a classe suciente para determinar a densidade de probabilidade do valor aj , sem precisar saber o valor de qualquer outro atributo. Isso simplica signicantemente a frmula inicial, pois os termos multiplicadores Aj 1 , so cancelados na expresso acima. Com isso temos: P (C = ci |A1 = a1 , , An = an ) =
P (C =ci ) p0 n j =1

f (Aj = aj |C = ci )

Essa a frmula principal do classicador Nave Bayes. Para um atributo simblico Aj as probabilidades condicionais P (Aj = aj |C = Ci ) so armazenadas em uma tabela simples mx(mj 1), pois s temos uma condio para cada atributo, o que torna o clculo vivel. Para atributos numricos, geralmente suposto que a distribuio de densidade probabilstica uma distribuio normal, ento s precisamos armazenar a mdia ou valor
2 esperado j (ci ) e a varincia j (ci ). Se necessrio, os atributos numricos podem ser

discretizados e usados como atributos simblicos [33].

3.3.2 Treinamento do Classicador


A aprendizagem do classicador Nave Bayes pode ser feita usando-se mtodos de treinamento supervisionado. Em muitas aplicaes prticas, para a estimao de parmetros no modelo Nave Bayes utilizado o mtodo de mxima verossimilhana. A verossimilhana mxima, um mtodo de estimao de ponto que utiliza como estimador, de um parmetro populacional no observvel, um membro do espao de parmetros que maximize a funo de verossimilhana. Se X uma varivel aleatria

3.3 Introduo ao Classicador Nave Bayes

27

observvel e p denota o parmetro populacional no observvel a ser estimado, ento a probabilidade de uma sada observvel X = x em funo de p mantendo-se x xo a funo de verossimilhana

LX =x (p) = P (X = x|p). Ento, o valor de p que maximiza a funo L(p) a verossimilhana mxima estimada de p. Para aplicar o mtodo da mxima verossimilhana do classicador Nave Bayes basta estimar a densidade condicional probabilstica f (Aj = aj |C = ci ). Para atributos simblicos temos:
N (Aj =aj ,C =ci ) . N (C =ci )

P (Aj = aj |C = ci ) =

Onde N (C = ci ) o nmero de amostras que pertencem classe ci e N (Aj = aj , C = ci ) o nmero de amostras que alm de terem amostras pertencentes classe ci tenham o valor aj para o atributo Aj . Para assegurar que a probabilidade ser sempre positiva, classes no representadas so removidas. Se um atributo no correr para uma N ou a uniforme a priori de 1/N , determinada classe sua probabilidade denida por 1 2 onde N o nmero total de amostras, e adicionada distribuio estimada, a qual ento normalizada. Para um atributo numrico Aj a funo de estimao de verossimilhana mxima padro para parmetros de uma distribuio normal :
1 N (C =ci ) N (C =ci ) k=1

c i =

aj (k )

para a mdia ou valor esperado, onde aj (k ) o valor do atributo Aj na "k-esima"amostra caso pertena a classe ci , e para a varincia temos:
2 (ci ) = j 1 N (C =ci ) N (C =ci ) (aj (k ) k=1

ci )2 .

3.3 Introduo ao Classicador Nave Bayes

28

3.3.3 Inferncia do Classicador


A inferncia no classicador Nave Bayes combina o modelo probabilstico e o de regra de deciso. A regra mais comum usada para inferncia Nave Bayes mxima a posteriori, ou seja, escolhe a classe que obtiver maior densidade de probabilidade condicional a posteriori. Esse tipo de inferncia conhecido como regra de deciso MAP (Mximo A Posteriori). A deciso ento dada por:
=ci ) Classe(f1 , , fn ) = argmaxci P (C p0 n j =1

f (Aj = aj |C = ci ).

Se utilizarmos a funo de distribuio normal P (x) com mdia ou valor esperado e varincia dada por, P (x) =
1 e 2
(x )2 2

para descrever o comportamento dos atributos das classes do classicador, tal que sua normal seja representada por x N (, ) e similarmente a funo de probabilidade a priori da varivel aleatria , que a mdia da funo de verossimilhana, tal que sua normal seja representada por N (0 , 0 ), ento temos: P (x|) =
1 e 2
(x )2 2

P () =

1 e 20

( 0 )2 20

Aplicando essas equaes ao teorema de Bayes, temos: P (|x) =


1 e 2
(x )2 2

1 e 20

( 0 )2 20

. (F-3.3)

Em alguns casos, a funo de probabilidade a priori P () no representada por uma equao de distribuio normal e sim por uma equao linear como, por exemplo, a freqncia relativa da varivel aleatria dada por: P () =
nci . n

3.4 Concluso

29

Onde: nci a quantidade de amostras da classe ci e n o nmero total de amostras. Aplicando-se essa propriedade na Frmula 3.3 temos: P (|x) = 1
(x )2 22

22

nci . n

Nesse caso a escolha da classe mais provvel utilizando-se o mtodo MAP o valor de x que maximize P (|x).

3.4 Concluso
O classicador Nave Bayes simples, rpido e de fcil implementao. Apesar de usar a argumentao da independncia probabilstica, o que em muitos casos no verdadeiro, ele tem sido amplamente usado em vrias reas de pesquisa e com muito sucesso. Variaes do seu modelo tm sido propostas e observamos nos resultando melhoras nos resultados da classicao, mas sempre trazendo nus para o desempenho do sistema que suporta o classicador no sentido do consumo dos recursos do mesmo. Dentre alguns trabalhos podemos citar: FRIEDMAN e GOLDSZMIDT [34] propuseram a interligao entre as variveis, quebrando o paradigma da independncia condicional e trazendo maior liberdade para o modelo; um classicador possibilstico foi apresentado por BORGELT e GEBHARDT [35], o qual muito mais simples de ser implementado, mas no consegue lidar com variveis contnuas; e LANGLEY e SAGE [32] apresentaram uma simplicao do modelo Nave Bayes baseado em "Greedy". Esse trabalho se limita a utilizar o Classicador Nave Bayes como demonstrado nesse captulo.

Captulo 4 Aquisio e Levantamento dos Dados


4.1 Introduo
Para realizar a implementao do NBIS foi necessria a criao de um ambiente de teste onde fosse possvel validar as hipteses presentes neste trabalho. Para realizar tais testes se fez necessria obter uma base de dados de trfego que contivesse alm das evidncias de ataque, trfego livre dessas ocorrncias. Esse conjunto de dados deveria estar organizado de tal modo que as indicaes de ataques estivessem bem documentadas e com referncias precisas da sua ocorrncia no tempo. Existem duas bases de trfego conhecidas que so usadas para essa nalidade, o 1999 KDD [36] e o DARPA 98 [37] e o DARPA 99 [38]. O 1999 KDD foi desenvolvido pelo Departamento de Informtica e Cincia da Computao da Universidade de Irvine na Califrnia (UCI - University of California, Irvine) baseado no trabalho realizado pela agncia DARPA, mas utilizando outras mtricas de marcao das informaes dos arquivos de trfego. A base DARPA 98 e DARPA 99, criado pelo Laboratrio Lincoln do Instituto de Tecnologia de Massachusetts (MIT Lincoln Labs), foi a base escolhida para realizar as experincias nesse trabalho devido a boa documentao disponvel no site [39] e tambm por ser um trabalho padro amplamente usado pelos pesquisadores da rea de segurana, facilitando assim a comparao entre outros trabalhos realizados pela comunidade acadmica.

4.2 A Base DARPA 98 e DARPA 99

31

Nesse captulo apresentado todo o processo de aquisio de dados, preparao das informaes da base do DARPA 98 e DARPA 99 para carga no banco de dados e a denio dos vetores de caractersticas que sero usados para os testes.

4.2 A Base DARPA 98 e DARPA 99


Avaliao de Deteco de Intruso DARPA 98 e DARPA 99 foi um trabalho realizado em conjunto pelo Grupo de Tecnologia da Informao de Sistemas (IST - Information Systems Technology) do Laboratrio Lincoln do MIT, a Agncia de Pesquisa de Projetos Avanados de Defesa (DARPA - Defense Advanced Research Projects Agency) e o Laboratrio de Pesquisa da Fora Area dos Estados Unidos (AFRL/SNHS) com o objetivo de criar um ambiente capaz de simular uma rede local tanto no comportamento das aplicaes como no trfego, na qual ataques pudessem ser submetidos e avaliados pelos sistemas de deteco de intruso.

Figura 4.1: Diagrama da rede da avaliao do DARPA 98 A primeira avaliao do DARPA foi feita em 1998 [37] na qual foram feitas simulaes de trfego normal equivalente a uma rede contendo 100 usurios com pers diferentes e 1000 estaes conforme a Figura 4.1. Mais de 300 instncias de 32 diferentes tipos de ataques foram lanados durante 9 semanas, 7 para coleta de dados de treinamento

4.2 A Base DARPA 98 e DARPA 99

32

e 2 para os dados de teste. A gerao de trfego normal junto com os ataques se fez necessrios para possibilitar a ocorrncia de falsos alarmes, denominado falsos positivos. Diversos servios foram injetados na rede tais como: HTTP, FTP, SMTP, IRC, Telnet, SNMP, dentre outros. Os dispositivos de segurana foram omitidos na congurao da rede, pois o objetivo o teste dos sistemas de deteco de intruso. Os ataques foram realizados do lado externo da infra-estrutura da rede local e esto listados na Tabela 4.1. Eles foram classicados em quatro grupos: probes, negao de servio (DoS Denial of service), remoto para local (R2L Remote-to-Local) e usurio para root (U2R User-to-Root). Classe dos Ataques Apache2 Arppoison Back Crashiis Dosnuke Land Tipos de Ataques Mailbomb Neptune Ping da Morte Process Table Selfping Smurf SSHprocesstable Syslogd TCPreset Teardrop UDPstorm Dictionary FTPwrite Guest HTTPtunnel Imap Named Ncftp Netbus Netcat Phf Ppmacro Sendmail SSHtrojan Xlock Xsnoop GuessTelnet GuessPop/Ftp Anypw Casesen Eject Ffbcong Fdformat Loadmodules Ntfsdos Perl Ps Sechole Xterm/Xterm1 Yaga InsideSniffer IPSweep Portsweep Ls Domain Mscan NtInfoScan Nmap Queso ResetScan Saint Satan DoS R2L U2R Probe

Tabela 4.1: Lista dos ataques por classe do DARPA 98

4.2 A Base DARPA 98 e DARPA 99

33

A segunda verso do DARPA veio em 1999 [38] com alguns aprimoramentos, mas com os mesmos conceitos. Alguns ataques novos foram incorporados e os arquivos de trfegos foram separados em dois, um de entrada e outro de sada. A principal diferena foi a incluso da plataforma Microsoft Windows no cenrio da rede. As modicaes apresentadas nessa nova verso no interferiram com a evoluo desse trabalho em relao aos dados do DARPA 98. Como resultado das simulaes do DARPA 98 e DARPA 99 vrios arquivos de coleta foram gerados. Os arquivos usados nesse trabalho foram: arquivo bruto de trfego chamado de dumple, e o arquivo contendo a lista detalhada das conexes com informaes sobre os eventos de ataques efetuados, chamado de listle. Cada arquivo contm informao de um dia (24 horas) de trfego. O arquivo bruto de trfego (dumple) gerado por um coletor de trfego (sniffer) que coleta todo trfego que passa pelo segmento de rede e guarda em arquivo no formato bruto com todas as informaes referentes aos protocolos vistos no segmento de rede. O arquivo de eventos (listle) contm uma linha para cada conexo ou pacote (TCP, UDP ou ICMP) com as seguintes informaes: identicador nico para cada conexo referente ao dia da coleta, data, hora, durao, nome do servio e protocolo, porta de servio de origem, porta de servio de destino, endereo IP de origem, endereo IP de destino, identicador de ataque (0 para normal e 1 para ataque) e o nome do ataque.

4.2.1 Crticas Base DARPA 98 e DARPA 99


Em seu artigo Testando Sistemas de Deteco de Intruso: Uma Crtica Avaliao de Sistemas de Deteco de Intruso do DARPA 1998 e DARPA 1999 realizada pelo Laboratrio Lincoln, MCHUGH [40] faz um levantamento detalhado sobre as fragilidades da abordagem feita nessa avaliao. Dentre as mais importantes e relevantes para esse trabalho temos: erro na data e hora dos arquivos de dados, erro na marcao dos ataques, falta de arquivos de marcao dos ataques de 1998, falta de uma marcao nica das conexes, lista de ataques incompleta e sem informaes sobre os mesmos e muitos outros como veremos a seguir.

4.3 Mdulo de Carga de Dados

34

A falta de detalhamento dos procedimentos realizados na avaliao e do racional utilizado para essa escolha tornam o trabalho muito obscuro podendo inuenciar na interpretao dos resultados. A taxonomia dos ataques usados foi desenvolvida privilegiando o ponto de vista do atacante e isso pode ter introduzido inuncias na avaliao dos ataques. A quantidade e qualidade de trfego normal e de fundo gerados para a avaliao, alm de no corresponderem ao cenrio descrito, podem ter inuenciado nos resultados dos testes, onde os valores de falso positivo podem ter sido inferiores aos que se encontraria utilizando-se trfego real. A mesma crtica pode ser feita em relao ao trfego de ataque que no foi distribudo em conjunto com o trfego de fundo, prejudicando a anlise dos resultados.

4.3 Mdulo de Carga de Dados


Segundo DIHUA [41] o processador de dados (data mining) deve ser entendido como uma estrutura utilizada com o objetivo de classicar e descrever as caractersticas principais encontradas em cada conexo ou sesso de rede. Para tanto, esta estrutura utiliza uma coleo de programas que validam as regras de captura dos comportamentos presentes nas informaes coletadas. Como resultado das operaes da prospeco de dados, esperado, segundo BLOEDORN at al. [42], que estes sistemas sejam capazes de produzir um sumrio dos dados sucientemente claro onde sejam facilitadas as operaes de extrao e classicao dos dados. Como requisito fundamental, segundo DENNING [6] o prospector de dados deve ser independente de qualquer sistema, ambiente de aplicao, vulnerabilidade sistmica ou tipo de intruso, mas deve ser concebido e implementado com o objetivo de prover um modelo de propsito geral. Observando as questes anteriormente citadas, foi construdo um modelo apresentado na Figura 4.2, onde o primeiro componente, fase de pr-carga, tem a funo de gerar um

4.3 Mdulo de Carga de Dados

35

arquivo intermedirio a partir do arquivo bruto de trfego (dumple) para em seguida ser normalizado, fase de adequao, e ento ser carregado na base de dados, fase de carga de dados. Esse mesmo procedimento realizado para o arquivo de eventos (listle). Nesse processo entramos com o arquivo bruto de dados e samos com uma base de dados organizada.

Figura 4.2: Diagrama em blocos do mdulo de carga de dados Nesse trabalho os arquivos utilizados para carga no bando de dados foram: o conjunto de dados de treinamento do DARPA 98 e o conjunto de dados de teste do DARPA 99. No se utilizou o mesmo conjunto de dados porque os arquivos de lista de ataques para o conjunto de dados de teste do DARPA 98 no apresentaram com as marcaes dos ataques, necessrias para a mensurao e comparao dos resultados. O processo de carga de dados foi a parte mais sensvel do trabalho, pois qualquer inconsistncia nessa fase traria repercusses desastrosas para os outros mdulos do sistema. Foi necessrio criar dois procedimentos separados para a carga de dados, um para o arquivo bruto de trfego e outro para o arquivo de eventos como mostrado na Figura 4.2. Nos dois casos foi necessria a normalizao dos dados de entrada antes da carga na base de dados.

4.3 Mdulo de Carga de Dados

36

4.3.1 Carga dos Dados de Trfego


A carga do arquivo bruto de trfego feita processando-se o arquivo dumple, para o conjunto de dados de treinamento e de teste, mais de 10GBytes comprimidos, gerando-se um novo arquivo no formato CSV contendo as informaes das conexes. Entende-se por conexo o processo de conversao m a m entre dois ns de rede [43]. Nesse processo de conexo existem sinalizaes de incio, meio e m da conversao. O processo de criao do arquivo CSV feito pelo software TCPTrace [44] com uma pequena alterao no seu cdigo fonte para salvar a informao de tempo nos campos de data e hora. O TCPTrace uma ferramenta de uso gratuito que tem a funo de mapear o protocolo TCP, descartando os demais, o que no causou problemas uma vez que todos os ataques escolhidos para o teste utilizam o protocolo TCP. A principal funo desta ferramenta construir sesses TCP a partir dos diferentes pacotes presentes no trfego bruto. Para cada sesso criada uma linha no arquivo CSV com todas as informaes sobre a determinada conexo. Anteriormente fase de carga de dados algumas informaes geradas pelo TCPTrace so normalizadas e salvas em um arquivo no formato SQL para carga no banco de dados. Nesse processo so inseridos o identicador nico para cada sesso carregada na base de dados (SessionID) e os campos: status do ataque (Status), nome do ataque (AttackName) e nome da classe do ataque (AttackClass). A data e hora so formatadas em um nico campo de tempo linear transformado em segundos referenciando-se a data base de 01/01/1998 ou 01/01/1999 a 0:00 hora (Start_Time). Na base de dados do conjunto de dados de teste foi necessrio incluir mais um campo para identicar o sentido do uxo do trfego, ou seja, entrante ou sainte (Fluxo). A Tabela 4.2 lista todos os campos disponveis no banco de dados de trfego. O primeiro campo (SessionID) o identicador nico para cada conexo referente ao dia de coleta, o segundo campo (Session) o identicador da sesso referenciada no arquivo de trfego, seguido das informaes de endereo IP de origem (Host_a) e destino (Host_b), porta de servio de origem (Port_a) e destino (Port_b), data (Dia, Ms, Ano) e hora da conexo (Hora, Minuto e Segundo) e o tempo linear (Start_Time). Em seguida encontramos o total de pacotes enviados (total_packtes_a2b) e recebidos (to-

4.3 Mdulo de Carga de Dados

37

SessionID host_b dia hora Start_Time resets_sent_a2b ack_pkts_sent_b2a sack_pkts_sent_a2b dsack_pkts_sent_b2a unique_bytes_sent_a2b actual_data_pkts_b2a rexmt_data_pkts_a2b rexmt_data_bytes_b2a zwnd_probe_bytes_a2b outoforder_pkts_b2a SYN/FIN_pkts_sent_a2b req_1323_ws/ts_b2a req_sack_a2b sacks_sent_b2a urgent_data_bytes_a2b mss_requested_b2a min_segm_size_a2b avg_segm_size_b2a min_win_adv_a2b zero_win_adv_b2a initial_window_bytes_a2b initial_window_pkts_b2a

Session port_a ms minuto total_packets_a2b resets_sent_b2a pure_ acks_sent_a2b sack_pkts_sent_b2a max_sack_blks/ack_a2b unique_bytes_sent_b2a actual_data_bytes_a2b rexmt_data_pkts_b2a zwnd_probe_pkts_a2b zwnd_probe_bytes_b2a pushed_data_pkts_a2b SYN/FIN_pkts_sent_b2a adv_wind_scale_a2b req_sack_b2a urgent_ data_pkts_a2b urgent_data_bytes_b2a max_segm_size_a2b min_segm_size_b2a max_win_adv_a2b min_win_adv_b2a avg_win_adv_a2b initial_window_bytes_b2a ttl_stream_length_a2b

host_a port_b ano segundo total_packets_b2a ack_pkts_sent_a2b pure_acks_sent_b2a dsack_pkts_sent_a2b max_sack_blks/ack_b2a actual_data_pkts_a2b actual_data_bytes_b2a rexmt_data_bytes_a2b zwnd_probe_pkts_b2a outoforder_pkts_a2b pushed_data_pkts_b2a req_1323_ws/ts_a2b adv_wind_scale_b2a sacks_sent_a2b urgent_data_pkts_b2a mss_requested_a2b max_segm_size_b2a avg_segm_size_a2b max_win_adv_b2a zero_win_adv_a2b avg_win_adv_b2a initial_window_pkts_a2b ttl_stream_length_b2a

4.3 Mdulo de Carga de Dados missed_data_a2b truncated_ data_b2a data_xmit_time_a2b idletime_max_b2a throughput_a2b AttackName missed_data_b2a truncated_packets_a2b data_xmit_time_b2a hardware_dups_a2b throughput_b2a AttackClass truncated_data_a2b truncated_packets_b2a idletime_max_a2b hardware_dups_b2a Status *Fluxo

38

Tabela 4.2: Lista dos campos de informao do arquivo de trfego. * Somente para o conjunto de dados de teste do DARPA 99

tal_packtes_b2a) pela origem e pelo destino. Os demais campos so as sinalizaes do protocolo TCP e podem servir de vetores de caracterstica para o classicador. Os 3 ltimos campos da base fazem referncia ao tipo de trfego, se normal ou com ataque. Se a sesso for normal o campo status ter o valor 0, o campo AttackName conter a string No Ataque e o campo AttackClass ter a string Sem Classe. Caso seja uma evidncia de ataque o campo Status ser igual a 1 e os campos AttackName e AttackClass contero a informao sobre o ataque em questo. O ltimo campo Fluxo s usado na base do conjunto de dados de teste do DARPA 99 para referenciar a direo do trfego, se de entrada conter a string IN e de sada a string OUT. Registros de Treinamento Total Relao sobre o Total de Registros Total de Registros No Ataques Ataques 2.398.703 829.580 1.569.123 34,58% 65,42%

Tabela 4.3: Levantamento quantitativo dos registros na base de dados de trfego de treinamento

Aps a carga de todos os arquivos brutos de trfego na base de dados de treinamento e de teste realizou-se o levantamento quantitativo das informaes na base, que so mostradas na Tabelas 4.3, 4.4, 4.5 e 4.6.

4.3 Mdulo de Carga de Dados

39

Registros de Teste Total Relao sobre o Total de Registros Total de Registros No Ataques Ataques 1.196.733 1.109.694 87.039 92,73% 7,27%

Tabela 4.4: Levantamento quantitativo dos registros na base de dados de trfego de teste

Registros de Treinamento Tipos de Ataques ejectfail format_clear warez ffb_clear format-fail dict_simple spy perlmagic phf format ftp-write imap loadmodule ffb multihop Quantidade 1 1 1 1 1 1 4 4 5 6 6 6 8 10 10 Tipos de Ataques eject anomaly rootkit warezmaster land Guest telnet dict ipsweep nmap warezclient back portsweep satan neptune Quantidade 11 11 16 19 35 50 884 923 1.031 1.654 2.216 11.617 23.948 1.526.643

Total de Registros de Ataques = 1.569.123 Tabela 4.5: Levantamento quantitativo dos registros e eventos de ataque na base de dados de trfego de treinamento

4.3 Mdulo de Carga de Dados

40

Registros de Treinamento Tipos de Ataques xterm1 ffbcong imap land ls selfping sendmail fdformat loadmodule named netbus sshtrojan perl xsnoop ftpwrite dosnuke netcat xterm ipsweep xlock eject crashiis casesen Quantidade 1 2 2 2 2 2 2 3 3 3 3 3 3 3 4 4 4 4 5 5 8 9 9 Tipos de Ataques sechole ps phf secret httptunnel guest queso guesspop ncftp ntinfoscan ppmacro guesstelnet guessftp dict back portsweep mscan sshprocesstable processtable mailbomb apache2 satan neptune Quantidade 9 9 11 13 24 27 28 30 38 45 64 67 80 86 161 262 484 753 1113 1351 1727 8488 72.075

Total de Registros de Ataques = 87.039 Tabela 4.6: Levantamento quantitativo dos registros e eventos de ataque na base de dados de trfego de teste

4.3 Mdulo de Carga de Dados

41

4.3.2 Carga dos Dados de Eventos de Ataque


A marcao dos eventos de ataque na base de trfego precisou de levantamento detalhado a priori, pois as informaes de tempo do arquivo de eventos no coincidiam com as conexes da base de dados. A forma encontrada para fazer esse relacionamento foi procurar na base de trfego pelo conjunto: porta de servio e endereo IP de origem e destino. Para isso as informaes dos eventos de ataque foram carregadas no banco de dados para facilitar a manipulao dos dados. Uma normalizao dos dados foi necessria para formatar os dados para carga no banco, como pode ser visto na Figura 4.2. A Tabela 4.7 lista todos os campos disponveis no banco de dados de eventos. Day Hour host_a port_b Month Minute port_a AttackName Year Second host_b *Flow

Tabela 4.7: Campos do banco de dados de eventos. * Somente para o conjunto de dados de teste do DARPA 99

Aps a carga dos eventos na base de dados, um programa fazia a comparao do conjunto, porta de servio e endereo IP de origem e destino da base de eventos com a base de trfego para cada dia carregado. O resultado era armazenado no arquivo de relatrio com as seguintes informaes: Dia, Ms, Ano, Hora, Minuto, Segundo, Host_a, Port_a, Host_b, Port_b, Sesso. Com esse conjunto realizava-se uma comparao manual das duas informaes e se o evento fosse dado como invlido era ento descartado. Se a informao fosse constatada como um evento de ataque real, ento a marcao dos campos status e do nome do ataque e classe eram feitas na base de dados de trfego baseado no nmero da sesso. Para o conjunto de dados de teste do DARPA 99 o campo de uxo (Flow) tambm era levado em considerao na busca dos dados na base de trfego.

4.4 Denio das Classes e dos Tipos de Ataque

42

4.4 Denio das Classes e dos Tipos de Ataque


Como pudemos observar no processo de carga dos dados a marcao dos eventos de ataque foram identicados pelo campo Status e AttackName do arquivo de lista de eventos, onde 0 signica no haver ataque e 1 a presena de ataque seguido do nome do mesmo. Foram escolhidas somente duas classes para cada tipo de ataque selecionado. A classe Ataque, que dene a presena de um evento de ataque sob anlise e a classe NAtaque, que dene a no presena do mesmo, podendo nesse caso ser um trfego normal ou um outro tipo de ataque. A escolha dos ataques para realizao do trabalho se baseou principalmente na distribuio dos mesmos na base de dados. Levou-se em considerao a possibilidade deles serem percebidos como trfego de rede e tivessem relevncia no cenrio atual de segurana. Tentou-se selecionar um ataque de cada classe, mas a classe U2R no possui ataques com perl de rede, sua presena s percebida na anlise de deteco de intruso de host (HIDS). As Tabelas 4.8 e 4.9 listam os ataques que foram denidos para os testes junto com os valores quantitativos da ocorrncia na base de dados de treinamento e de teste e o percentual em relao ao total geral de registros e ao total de registros de evidncia de ataque. Registros de Treinamento Tipos de Ataques Quantidade de Registros Relao sobre o Total de Registros Guest (R2L) Portsweep (Probe) Neptune (DoS) 50 11.617 1.526.643 0,002% 0,48% 63,64% Relao sobre o Total de Registros c/ Ataque 0,003% 0,74% 97,29%

Tabela 4.8: Lista dos ataques selecionados com o levantamento quantitativo na base de treinamento

Foi escolhido um ataque de cada classe passvel de anlise atravs de trfego de rede. Como pode ser observado h uma predominncia do ataque Neptune tanto na base de

4.4 Denio das Classes e dos Tipos de Ataque Registros de Teste Tipos de Ataques Quantidade de Registros Relao sobre o Total de Registros GuessTelnet (R2L) Portsweep (Probe) Neptune (DoS) 67 262 72075 0,0056% 0,0219% 6,0226% Relao sobre o Total de Registros c/ Ataque 0,0770% 0,3010% 82,8077%

43

Tabela 4.9: Lista dos ataques selecionados com o levantamento quantitativo na base de teste

treinamento como na base de teste. O ataque Portsweep possui uma alta ocorrncia na base de treinamento, mas o mesmo comportamento no observado na base de testes. J o ataque Guest, que na base de teste recebeu o nome de GuessTelnet, possui pouca ocorrncia nas duas bases. Veremos a seguir mais detalhadamente de cada um dos ataques selecionados e como eles foram representados para a classicao.

4.4.1 Ataque Guest


Segundo KENDALL [45] o ataque Guest uma variao do ataque de Dicionrio sendo classicado como um ataque de acesso remoto para um usurio local (R2L Remote to Local). um ataque no qual o atacante tenta obter acesso a uma estao atravs de tentativas sucessivas a possveis usurios e senhas. Como Guest geralmente o nome de uma conta de usurio criada para permitir o acesso de visitantes ao sistema, muitas vezes vindo pr-congurada sem senha ou com uma senha default fraca, torna-se a primeira tentativa de vulnerabilidade praticada pelos invasores [46]. O ataque Guest geralmente observado em infra-estruturas que utilizam os servios Telnet ou rlogin, estes servios de rede tm a nalidade de prover acesso remoto a usurios. Nesse trabalho utilizamos como referncia o ataque Guest sobre o servio Telnet na porta de servio 23. Esse tipo de ataque pode ser analisado por dois tipos de detectores de intruso, de host

4.4 Denio das Classes e dos Tipos de Ataque

44

ou de rede. Os SID de hosts detectam este ataque atravs da anlise dos logs de tentativas sucessivas de acesso conta Guest, bastando para isso estabelecer um limiar para gerao dos alarmes. Quando esse tipo de ataque investigado por um SID de rede, no se tem acesso aos logs do sistema, ento tem que se encontrar uma caracterstica no trfego que evidencie esse comportamento. Os ataques Guest simulados na Avaliao de Deteco de Intruso DARPA 98 e DARPA 99 foram feitos utilizando-se um programa em Perl que tentava acessos sucessivos conta Guest utilizando uma senha baseada em permutaes de nome de usurios. A Tabela 4.10 descreve detalhes sobre as informaes contidas na base de dados de trfego de treinamento e teste sobre esse ataque. Guest Quantidade Quantidade Relao sobre de Ataques de tros Regiso Total de Registros Relao sobre o Total de Registros c/ Ataque Dados de Treinamento Dados de Teste 1 4 50 67 0,0021% 0,0056% 0,0032% 0,0770%

Tabela 4.10: Quanticao do Ataque Guest

A quantidade de ataques desse tipo tanto na base de treinamento quanto na de teste muita baixa, inferior a 1%, o que prejudicou muito a anlise dos vetores de caractersticas e a realizao dos testes. Como o comportamento desse ataque bem conhecido, pode-se fazer um simulador que gerou dados sintetizados com o objetivo de aumentar o nmero de amostras e conseqentemente melhorar o treinamento.

4.4.2 Denio dos Vetores de Caractersticas


Observando-se o comportamento do ataque Guest vericou-se que a diferena do seu comportamento para o normal a sua ocorrncia no tempo, ou seja, enquanto em uma situao normal ocorrem no mximo 3 a 5 conexes dentro de um minuto, durante um ataque Guest observamos a ocorrncia de um nmero superior a 30 conexes nesse mesmo

4.4 Denio das Classes e dos Tipos de Ataque espao de tempo.

45

Para representar esse comportamento utilizamos as seguintes caractersticas: total de conexes (TxG) na porta 23 (Telnet) e o total de sinais Reset (RST) do protocolo TCP (resets_sent_a2b), no sentido da origem para o destino, no intervalo de 5 minutos. O comportamento dessas duas variveis podem ser observadas nas Figuras 4.3 e 4.4 onde temos a quantidade de cada uma na presena ou no de ataque. Os dados dos grcos foram gerados com as informaes da base de dados de treinamento e de um sintetizador aleatrio de dados que gerou mais informaes baseadas nas existentes para melhorar a anlise.

Figura 4.3: Comportamento da caracterstica do nmero total de conexes (TxG) em 5 minutos

Figura 4.4: Comportamento da caracterstica do nmero total de Reset (RST) em 5 minutos

4.4 Denio das Classes e dos Tipos de Ataque

46

Conforme evidenciado pelas Figuras 4.3 e 4.4 a presena deste ataque facilmente identicada pelo nmero total de conexes que signicativamente maior que nos trfegos considerados normais, o mesmo comportamento observado com o nmero total de Resets. Esse comportamento j era esperado, pois um nmero elevado de TxG indica uma alta taxa de conexes ou tentativa de conexo e associado a um alto valor de RST indica uma taxa elevada de desconexes, coincidindo com o padro de uma tentativa de acesso a uma conta de usurio mal sucedida . Fazendo-se uma anlise mais criteriosa sobre os pontos na vertical da Figura 4.3 (sinalizado com um crculo), observamos que os mesmos representam evidncias de outros ataques que possuem as mesmas caractersticas, como o ataque Dicionrio (Dict) e Neptune que esto presentes na mesma porta de servio utilizada pelo ataque Guest.

4.4.3 Ataque Neptune


O ataque Neptune, tambm conhecido como ataque SYN Flood, classicado como um ataque de negao de servio (DoS Denial of service). Segundo KENDALL [45] toda implementao TCP/IP vulnervel a esse tipo de ataque ou pelo mesmo em algum grau. O objetivo desse ataque fazer solicitaes sucessivas de conexes a um servio. Como a solicitao de uma conexo causa a abertura de um processo para que o mesmo seja atendido, e esse mecanismo ocupa recursos do sistema, se forem feitas muitas solicitaes simultaneamente isso pode levar o servio ao esgotamento fazendo com que o mesmo pare de responder a novas solicitaes, temporariamente ou permanentemente. Ou seja, negando a oferta do servio que o objetivo principal deste tipo de ataque [47]. O sintoma desse ataque no host atacado depende basicamente do servio nele congurado. Esse ataque pode ser detectado por um SDI de rede ou de host. No primeiro observase o nmero de conexes SYN destinadas a uma mesma estao. No segundo monitora-se o tamanho da tabela de conexes at um limite pr-estabelecido. A simulao do ataque Neptune na Avaliao de Deteco de Intruso DARPA 98 e DARPA 99 foi realizada utilizando-se um programa em linguagem C da bugtraq o qual cria um nmero congurvel de conexes simultneas para um host destino especicado.

4.4 Denio das Classes e dos Tipos de Ataque

47

A Tabela 4.11 descreve detalhadamente as informaes contidas na base de dados de trfego de treinamento e teste sobre esse ataque. Neptune Quantidade Quantidade Relao sobre de Ataques de tros Regiso Total de Registros Relao sobre o Total de Registros c/ Ataque Dados de Treinamento Dados de Teste 13 4 1.526.643 72.075 63,6% 6,0% 97,3% 82,8%

Tabela 4.11: Quanticao do ataque Neptune

Podemos observar pelos nmeros que o ataque netuno o mais quantitativo de todos os ataques, tanto na base de treinamento quanto na base de teste. Ele est presente em 63,6% dos registros de treinamento, mais que a quantidade de registros de trfego normal (no ataque). O mesmo no acontece na base de teste, mas mesmo assim ele bem representativo em relao aos registros de ataques, 82,8%. Esses nmeros facilitaram muito a escolha dos vetores de caractersticas.

4.4.4 Denio dos Vetores de Caractersticas


Como dito anteriormente o ataque Neptune tem uma caracterstica marcante, a alta quantidade de solicitaes de conexo de uma origem externa para um destino interno rede em um curto espao de tempo. Inicialmente pensou-se que somente o nmero total de conexes (TxG) e o nmero total de sinais FIN, SYN e RST, denominado FSR [48], no intervalo de tempo seriam sucientes para detectar o comportamento desse ataque. O FSR a soma dos trs sinais (FSR = FIN+SYN+RST) utilizados por uma conexo TCP/IP, o SYN marca o incio de uma sesso, o FIN o trmino e o RST o encerramento da mesma. Esses trs sinais juntos fazem a indicao de uma conexo m a m. Uma quantidade elevada de FSR pode indicar uma anomalia de comportamento do trfego, como por exemplo, um ataque. As Figuras 4.5 a 4.16 mostram o comportamento desses sinais na base de dados de

4.4 Denio das Classes e dos Tipos de Ataque treinamento.

48

Figura 4.5: Total de conexes em 1 minuto em toda a base de treinamento

Figura 4.6: Detalhamento do total de conexes em um seguimento da base de treinamento Observamos na Figura 4.6 que na presena de ataque o nmero total de conexes (TxG) em 1 minuto muito superior ao do trfego normal. Algumas indicaes de ataques se misturam no trfego normal (sinalizado com um circulo) indicando uma variao desse ataque que se espalha no tempo para no ser percebido. Observamos que os ataques marcados nos grcos 4.5, 4.6, 4.7 e 4.8 no podem ser identicados somente pela presena do FSR e do nmero de conexes, pois se confundem com o trfego normal. Por esse motivo foram acrescentados mais 3 vetores de caractersticas, so eles: o total do sinal ACK enviado da origem para o destino no intervalo de 1 minuto (ACK_a2b), o total de pacotes recebidos e transmitidos em 1 minuto (BPP) e a mdia desse total pelo nmero de conexes (MBPP).

4.4 Denio das Classes e dos Tipos de Ataque

49

Figura 4.7: Total de FSR da origem para o destino (FSR_a2b) em toda a base de treinamento

Figura 4.8: Total de FSR da origem para o destino (FSR_a2b) em um seguimento da base de treinamento O sinal ACK vindo de uma origem externa em direo rede interna indica que alguma estao que iniciou uma conexo est respondendo normalmente a uma conversao. A no existncia desse sinal em uma conversao j iniciada indica que algum pediu uma conexo mas no continuou o processo. Isso pode ocorrer por vrios motivos, um deles seria a rede estar ocupada. Mas a ocorrncia sucessiva desse fenmeno associada a um mesmo endereo IP de origem uma forte evidncia de um ataque Neptune em andamento, como pode ser visto nas Figuras 4.11 e 4.12. O total de pacotes transmitidos e recebidos (BPP) por si s no uma boa evidncia de ataque, mas usado em conjunto com a mdia (MBPP) em relao ao total de conexes

4.4 Denio das Classes e dos Tipos de Ataque

50

Figura 4.9: Total de FSR do destino para a origem (FSR_b2a) em toda a base de treinamento

Figura 4.10: Total de FSR do destino para a origem (FSR_b2a) em um seguimento da base de treinamento (TxG) torna-se muito til nesse processo como podemos ver nas Figuras 4.13, 4.14, 4.15 e 4.16. A Figura 4.16 mostra claramente o comportamento do ataque Neptune em relao quantidade de informaes enviadas e recebidas, praticamente nenhuma. Isso um contra-senso, pois se existe uma solicitao de conexo porque no existe trfego? Essa uma das caractersticas dos ataques DoS. Como o Neptune predominante na base de treinamento, no existe quase trfego normal interferindo no seu comportamento, somente alguns pontos isolados que podem

4.4 Denio das Classes e dos Tipos de Ataque

51

Figura 4.11: Total de ACK da origem para o destino (ACK_a2b) na base de treinamento

Figura 4.12: Total de ACK da origem para o destino (ACK_a2b) em um seguimento da base de treinamento ser observados nas Figuras 4.5, 4.7 e 4.9. Essa falta de informao de trfego normal pode atrapalhar o treinamento do sistema. Os 6 vetores de caractersticas apresentados at aqui so os que iro representar esse ataque no sistema de classicao Nave Bayes.

4.4 Denio das Classes e dos Tipos de Ataque

52

Figura 4.13: Total de pacotes recebidos e transmitidos em 1 minuto (BPP) na base de treinamento

Figura 4.14: Total de pacotes recebidos e transmitidos em 1 minuto (BPP) em um seguimento da base de treinamento

Figura 4.15: Mdia de pacotes por conexo (MBPP) na base de treinamento

4.4 Denio das Classes e dos Tipos de Ataque

53

Figura 4.16: Mdia de pacotes por conexo (MBPP) em um seguimento da base de treinamento

4.4 Denio das Classes e dos Tipos de Ataque

54

4.4.5 Ataque Portsweep


O Portsweep um ataque da famlia dos Port Scanners ou varredores de portas. Segundo os estudos desenvolvidos por STANIFORD [49], a varredura de portas pode ser caracterizada pela ocorrncia de pacotes destinados a N combinaes diferentes de portas de servio oriundas de uma mesma fonte e detectvel em M segundos. A estratgia no uso da varredura de portas objetiva identicar os servios disponveis em um servidor, e assim explorar as possveis vulnerabilidades, presentes nas diferentes implementaes que suportam as facilidades oferecidas. Conforme observado por NORTHCUTT [50], a estratgia de execuo de um processo de varredura de portas pode ser reunida em dois grupos. O primeiro denominado varredura horizontal, que busca uma porta de servio especca a partir de uma lista de endereos IP, conhecido como IPSweep. O segundo chamado de varredura vertical ou Portsweep, que a partir de um nico endereo IP, tenta detectar todos os servios disponveis na estao. As tcnicas de varreduras de portas podem ser classicadas como: aberta, meio aberta, secreta e ociosa. Na varredura aberta, realizada uma conexo completa, ou seja, um sinal SYN enviado pela fonte, e como resposta esperado um sinal SYN/ACK do receptor. Este comportamento se realizar no cenrio onde o servio solicitado esteja disponvel na estao destino. Caso contrrio, esperada uma sinalizao RST/ACK, indicando assim a indisponibilidade do mesmo. A varredura meio aberta similar varredura aberta, sendo que na primeira, quando a porta estiver disponvel, enviado o pacote de retorno RST ao invs de um ACK. No modo secreto, envia-se um pacote com vrias informaes de sinais de controle do protocolo (ags) inconsistentes, como SYN e ACK juntos como solicitao de conexo ao invs de somente um SYN. A varredura ociosa utiliza um terceiro agente, usado com o objetivo de receber os pacotes de retorno, produzidos pelo receptor. Esta tcnica permite ocultar a identicao do originador da varredura, tornando-se assim uma estratgia mais eciente para a identi-

4.4 Denio das Classes e dos Tipos de Ataque cao de servios.

55

Esse ataque pode ser detectado por um SDI de rede analisando a quantidade de conexes solicitadas em diferentes portas de servios em um curto espao de tempo. A simulao do ataque Portsweep na Avaliao de Deteco de Intruso DARPA 98 e DARPA 99 foi realizada utilizando-se programas usuais de mercado como, NMap, Satan, Saint dentre outros. A Tabela 4.12 descreve detalhadamente as informaes contidas na base de dados de trfego de treinamento e teste sobre esse ataque. Portsweep Quantidade Quantidade Relao sobre de Ataques de tros Regiso Total de Registros Relao sobre o Total de Registros c/ Ataque Dados de Treinamento Dados de Teste 14 13 11.617 262 0,48% 0,022% 0,74% 0,30%

Tabela 4.12: Quanticao do ataque Portsweep

Podemos observar pelos nmeros que o ataque Portsweep no tem um quantitativo representativo de ataques, tanto na base de treinamento quanto na base de teste. Ele est presente em apenas 0,48% dos registros de treinamento e 0,02% na base de teste. Os nmeros melhoram em relao aos registros de ataques, 0,74% para o treinamento e 0,3% para teste. Se levarmos em considerao a grande quantidade de ataques Neptune existentes, como visto anteriormente, esses nmeros no so to ruins, permitindo a escolha dos vetores de caractersticas.

4.4.6 Denio dos Vetores de Caractersticas


Observamos que o processo de conexo utilizado pelos programas de varredura apresentam como caracterstica serem de durao muito curta, geralmente restrito a um ou dois pacotes. Assim, segundo os estudos de DICKERSON (2000), conclui-se que os res-

4.4 Denio das Classes e dos Tipos de Ataque

56

pectivos trfegos que denem o evento de segurana investigado ca melhor caracterizado pelo conjunto chamado SDP (Source IP, Destination IP e Destination Port), constitudo pelo endereo IP de origem, endereo IP de destino e porta de servio de destino. A quantidade de ocorrncias dos SDPs no tempo nos d uma viso tridimensional (Figura 4.17) bem clara do comportamento de uma varredura [18].

Figura 4.17: Evidncia de ataques Portsweep (sinalizado por um crculo) atravs do SDP em funo da quantidade de pacotes e o intervalo de tempo (chunk) Outra caracterstica a mdia de pacotes enviados e recebidos em relao ao nmero total de conexes em um intervalo de tempo (MBPP).

Figura 4.18: Total de SDPs em 5 minutos na base de treinamento As Figuras 4.18 a 4.23 mostram o comportamento desses vetores de caractersticas na base de dados de treinamento.

4.4 Denio das Classes e dos Tipos de Ataque

57

Figura 4.19: Total de SDPs em 5 minutos em um seguimento da base de treinamento

Figura 4.20: Total de SDPs em 5 minutos em um seguimento da base de treinamento As Figuras 4.18 e 4.21 fornecem uma viso geral do comportamento do trfego normal em relao aos vetores de caractersticas SDP e MBPP. O ataque est concentrado na parte inferior esquerda dos grcos (sinalizado com um crculo) que esto detalhados nos grcos seguintes. No grco 4.20 ca evidenciado pela linha horizontal cravada no valor 1 na parte inferior do grco, o comportamento normal da caracterstica SDP. Os ataques so as outras linhas horizontais superiores, variando de valores. Essas linhas evidenciam o acesso sucessivo a diferentes portas de servios em um curto espao de tempo. Existem alguns ataques que aparecem junto com o trfego normal (sinalizado com crculos). Esse comportamento explicado por variaes do ataque no qual o tempo de varredura ampliado para no ser detectado. Esse tipo de variao pode ser detectado aumentando-se o tempo do acmulo dos vetores de caractersticas, como pode ser observado nas Figuras 4.24 e 4.25.

4.4 Denio das Classes e dos Tipos de Ataque

58

Figura 4.21: Mdia de pacotes por conexo em 5 minutos (MBPP) na base de treinamento

Figura 4.22: Detalhamento da mdia de pacotes por conexo em 5 minutos (MBPP) em um seguimento da base de treinamento Na Figura 4.23 observamos dois comportamentos fora do padro do ataque (sinalizados com crculos). Fazendo-se uma investigao mais detalhada observou-se que no total de pacotes recebidos e transmitidos havia no somente o ataque em curso, mas um acesso porta de servio 80 (HTTP) entre o host atacante e o atacado. Apesar de no ser um comportamento comum, pode-se encontrar essa situao em um cenrio real de rede.

4.4 Denio das Classes e dos Tipos de Ataque

59

Figura 4.23: Detalhamento da mdia de pacotes por conexo em 5 minutos (MBPP) em um seguimento da base de treinamento

Figura 4.24: Ataque Portsweep com tempo de varredura ampliado

Figura 4.25: Viso da Figura 4.24 com intervalo maior de tempo dentro um mesmo intervalo de tempo (chunk)

Captulo 5 Implementao do NBIS


5.1 Introduo
O Sistema de Inferncia Nave Bayes (NBIS Nave Bayes Inference System) a proposta de um novo sistema de deteco de intruso em redes de computadores baseado no modelo probabilstico com o intuito de contribuir na melhora do desempenho dos sistemas SDI hoje existentes. Nesse captulo iremos apresentar a implementao do sistema de deteco de intruso proposto nesse trabalho. Passaremos por todas as etapas que compem o sistema at a deciso nal gerada pelo classicador.

5.2 Objetivo do NBIS


O NBIS foi idealizado com o objetivo de estudar e analisar condies especcas de segurana em redes de computadores. O NBIS se posiciona no cenrio de segurana como um sistema probabilstico de deteco de intruso baseado em assinatura. A implementao permitiu avaliar o seu desempenho na deteco de alguns tipos de ataques ou anomalias de comportamento de trfego e compar-lo com outro modelo baseado em lgica Fuzzy [18] e sua derivao Neuro-Fuzzy. Sua arquitetura baseada no

5.3 Arquitetura do Sistema

61

modelo probabilstico de inferncia Bayesiana usando o classicador Nave Bayes para a classicao e deteco dos ataques.

5.3 Arquitetura do Sistema


A arquitetura do NBIS utiliza o modelo de inferncia probabilstico com inferncia seqencial Bayesiana, distribuio normal dos vetores de caracterstica e classicao probabilstica atravs do classicador Nave Bayes. O NBIS possui 4 blocos fundamentais, como descrito na Figura 5.1, que formam a arquitetura do sistema que vai desde a aquisio dos dados at o mdulo de classicao e deciso. Os blocos so:

1. Mdulo de Carga de Dados 2. Mdulo de Treinamento 3. Mdulo Classicador 4. Mdulo de Sada do Sistema

Figura 5.1: Diagrama em bloco do sistema NBIS

5.3 Arquitetura do Sistema

62

5.3.1 Mdulo de Carga de Dados


O Mdulo de Carga de Dados foi apresentado no Captulo 4 e tem a responsabilidade de fazer a carga e normalizao dos dados de treinamento e teste para uso pelos outros mdulos.

5.3.2 Mdulo de Treinamento


O treinamento a parte mais importante da arquitetura, pois um treinamento mal feito pode colocar em risco toda a arquitetura do sistema. O Mdulo de Treinamento formado por programas que acessam a base de dados do conjunto de treinamento, carregado pelo Mdulo de Carga de Dados. O processo de treinamento ocorre em duas etapas (Figura 5.2). Na primeira gerado o arquivo com os dados de treinamento baseados nos vetores de caractersticas denidas para cada tipo de ataque, como foi apresentado no Captulo 4, a partir do conjunto de dados de treinamento.
1 Etapa Arq. de Config. de Classes Arquivo de Cabealho Prog. Gerador de Dados de Treinamento Programa de Treinamento Arq. de Dados de Treinamento Acesso Leitura Acesso Escrita/Criao Filtro Arq. de Config. de Classes 2 Etapa

Base de Dados de Trein.

Base de Dados de Eventos

Figura 5.2: Diagrama em bloco do mdulo de treinamento Na segunda etapa feito o treinamento do sistema, que consiste em gerar os arquivos de congurao a partir do arquivo de dados de treinamento, gerado no passo anterior, que sero usados pelo Mdulo Classicador. O processo de gerao do arquivo de dados de treinamento consiste em ler as in-

5.3 Arquitetura do Sistema

63

formaes do banco de dados de treinamento, ltr-las, process-las e orden-las na seqncia correta para a carga pelo programa de treinamento. Antes da fase de processamento feita uma ltragem nos dados de entrada. Essa ltragem funciona como um pr-classicador e depende do tipo de ataque que se est analisando. Para cada seqncia que processada vericado se os dados geram uma sada de indicao de ataque, ou seja, se aquele conjunto de dados uma evidncia real ou no de ataque. Isso feito vericando-se a existncia de marcao de ataque na base de dados de eventos, descrita no Captulo 4, para aquele conjunto de dados usados para gerar os vetores de caracterstica. A partir dessa informao inserida ao nal da seqncia de dados a indicao da classe qual esse conjunto de dados pertence, podendo ser a classe Ataque ou No Ataque, representada por NAtaque. gerado ao nal dessa fase o arquivo de cabealho, contendo a identicao de cada vetor de caracterstica e da classe por ltimo. O treinamento utiliza o arquivo de dados de treinamento como entrada e gera a base de dados das classes do classicador na sada. Como estamos representando os dados de entrada a partir de uma distribuio normal, essa base de dados conter as informaes sobre a mdia ou valor esperado e varincia para cada distribuio de densidade probabilstica de verossimilhana, ou seja, para cada classe. Alm disso a base de dados possui informaes sobre a distribuio de probabilidade a priori e os valores mnimo e mximo de cada classe. A Figura 5.3 mostra um exemplo da base de dados das classes do classicador para o ataque do tipo Guess. O programa de treinamento utiliza como apoio outros dois arquivos de congurao. O arquivo de domnio, que contm as informaes dos valores mximo e mnimo de cada vetor de caracterstica, o qual gerado e utilizado pelo prprio programa de treinamento. O arquivo de cabealho (header) possui a informao sobre o nome do campo de cada vetor de caracterstica e da classe e a ordem em que eles aparecem no arquivo de dados de treinamento. O mtodo de treinamento implementado no NBIS o treinamento supervisionado de verossimilhana mxima, onde se calcula para cada conjunto classe e vetor de caracterstica o valor que maximiza a funo de densidade probabilstica de verossimilhana. Como foi dito anteriormente, utilizou-se o conceito da distribuio normal para representar a dis-

5.3 Arquitetura do Sistema

64

Figura 5.3: A base de dados das classes do ataque Guest possui 3 vetores de caractersticas (atributos), sendo um deles a denio das classes. A distribuio de probabilidade normal apresentada na parte central da gura. tribuio dos valores de vetores de caracterstica. Isso signica que utilizamos a funo de densidade probabilstica de distribuio normal explicada no Captulo 3. O resultado do treinamento o valor da distribuio normal para cada classe e vetor de caracterstica no formato N ( , 2 ) mais a quanticao dos vetores utilizados. Para o clculo da mdia ou valor esperado e a varincia so utilizadas as seguintes frmulas pelo programa de treinamento: =
1 n 1 n n i=1

xi para o clculo da mdia ou valor esperado e )2 para o valor da varincia.

2 =

n i=1 (xi

Onde: xi o valor do atributo ou vetor de caracterstica de uma determinada classe e n a quantidade total de amostras dessa mesma classe.

5.3 Arquitetura do Sistema

65

5.3.3 Mdulo Classicador


A inferncia e a classicao no NBIS so feitas em um nico passo, conforme o diagrama em bloco da Figura 5.4. Nesse processo o programa de classicao Nave Bayesiano l a base de dados das classes do classicador, gerado na fase de treinamento, e as informaes do banco de dados de teste contendo os novos valores de entrada a serem classicados. Antes do processamento feita uma ltragem nos dados de entrada. Essa ltragem funciona como uma "pr-classicao"separando as informaes pertinentes ao ataque em questo que sero analisadas pelo classicador Nave Bayes. Esse processo reduz signicativamente a quantidade de dados a ser analisada pelo classicador.
Arq. de Config. de Classes Base de Dados de Teste Mdulo Classificador Base de Dados de Eventos Arq. de Cabealho Arq. de Sada de Deciso

Acesso Leitura Acesso Escrita/Criao Filtro

Figura 5.4: Diagrama em bloco da classicao Para que fosse possvel medir o desempenho do classicador foi necessrio marcar a seqncia de dados de teste com a classe correta antes da classicao. Esse processo semelhante ao realizado na primeira fase do treinamento, mas sem qualquer modicao da base de dados das classes do classicador. Com isso possvel vericar se a classicao realizada foi correta ou no. A inferncia usada pelo NBIS a inferncia Bayesiana com seqencialmente. Neste modelo a probabilidade a posteriori usada como probabilidade a priori no prximo passo de inferncia. Para cada classe calculada a probabilidade a posteriori da nova evidncia dados os valores de treinamento. A denio da classe feita usando-se o mtodo de mximo a posteriori, conhecido como MAP (Mximo A Posteriori). Sendo assim o novo

5.3 Arquitetura do Sistema

66

atributo ou vetor de caracterstica ser classicado na classe em que ocorrer o maior valor de probabilidade a posteriori. O calculado do MAP feito usando-se o teorema de Bayes. Para isso precisamos da probabilidade a priori de cada classe. O clculo da probabilidade a priori de uma classe dada pela razo entre a freqncia da ocorrncia de amostras de uma mesma classe e o nmero total de amostra e calculada pela seguinte frmula: P riori =
nci n

Onde: nci a quantidade de vetores de caracterstica da classe ci e n o nmero total de amostras da base. Outra informao fornecida pelo classicador a conana. Esse valor expressa o quanto de certeza o classicador tem sobre aquela determinada classicao, estando ela certa ou errada. Se esse valor for igual a 1, ento o classicador est dizendo que tem 100% de conana de estar certo na sua resposta. Se esse valor for igual a 0, ento o classicador tem 0% de conana na sua classicao, ou seja, no tem certeza alguma. Geralmente isso ocorre quando os valores de entrada esto fora do raio de atuao do classicador. A conana calculada pela razo entre o valor da probabilidade a posteriori da classe escolhida pela soma das probabilidades a posteriori de todas as classes como segue: Conf iana =
cli n i=1 (P osterioricln )

P osteriori

Onde: Conf iana a conana do classicados, P osterioricli a probabilidade da classe cli escolhida e o denominador a soma da probabilidade de todas as n classes. O arquivo de sada da classicao semelhante ao arquivo de dados de treinamento com duas colunas a mais, uma com o resultado da classicao e outra com o valor da conana.

5.3.4 Mdulo de Sada do Sistema


Ao nal do processo de inferncia e classicao o Mdulo Classicador gera os arquivos de sada de deciso que so usados para gerar os relatrios de medidas de de-

5.4 Avaliao de Desempenho sempenho do sistema.

67

5.4 Avaliao de Desempenho


Para medir o desempenho do sistema foi necessrio criar um padro que pudesse aferir o trabalho realizado. O padro de medida de mercado para sistemas de deteco de intruso usa como base a anlise quantitativa de alarmes de intruso ou de tentativa de intruso verdadeiros, denominados Real Positivos (RP), e a quantidade de indicao de intruso falsas, mas que foram confundidas como verdadeiras, denominado Falso Positivo (FP). Dessas duas medidas podemos obter o Falso Negativo (FN), calculado retirando-se do nmero total de amostras de ataque s indicaes verdadeiras (RP), e o Real Negativo, calculada retirando-se do nmero total de amostras sem evidncia de ataque as erroneamente detectadas. Os valores teis para avaliar o classicador so descritos abaixo:

1. Total de Amostras Analisadas (TAA): Indica o total das amostras contidas na base de dados que foram usadas para o teste e analisadas pelo classicador. 2. Real Positivo (RP): Quantidade de eventos com indicao de ataque e que foram comprovadas, indicando que o sistema acertou na classicao. 3. Falso Positivo (FP): Quantidade de eventos com indicao de ataque e que no foram comprovados, ou seja, o sistema errou na classicao. 4. Real Negativo (RN): Quantidade de eventos sem indicao de ataque e que foram comprovadas que no eram, indicando que o sistema acertou na classicao. 5. Falso Negativo (FN): Quantidade de eventos sem indicao de ataque e que foram comprovadas como sendo, ou seja, o sistema errou na classicao. 6. Total de Ataques (TAt): Indica a quantidade real de ataques presentes na base de dados usada para o teste. O TAt pode ser achado somando-se a quantidade da Real Positivos com a quantidade de Falso Negativos (TAt = RP + FN).

5.5 Ferramentas Utilizadas

68

7. Percentual Referencial de Ataque (PRA): Indica o percentual de ataques presentes na base em anlise. calculado pela razo entre o total de ataques e o nmero total de amostras efetivamente analisadas (PRA = TAt /TAA). 8. Percentual de Acerto Referencial (PAR): Indica a ecincia do classicador. calculado pela razo entre a quantidade de Real Positivo e o nmero total de ataques presentes na amostra (PAR = RP/TAt). 9. Percentual de Acerto (PA): Indica o quanto o classicador acertou. calculado pela razo da soma dos acertos e o nmero total de amostras efetivamente analisadas (PA = RN + RP/TAA). 10. Percentual de Erro (PE): Indica o quanto o classicador errou. calculado pela razo da soma dos erros e o nmero total de amostras analisadas (PE = FP + FN/TAA).

5.5 Ferramentas Utilizadas


A arquitetura do NBIS foi desenvolvida utilizando-se programas escritos em Perl, descritos no Anexo I, e Banco de Dados MySQL sobre plataforma Linux. Para a carga e normalizao dos dados brutos do DARPA 98 e DARPA 99 foram usados vrios programas escritos em Perl. No treinamento e classicao foi usada uma coleo de softwares desenvolvidos por Cristian Borgelt do Departamento de Engenharia de Linguagem e Processamento do Conhecimento da Universidade de Magdeburg na Alemanha. O sistema chamado de indutor de classicao Bayesiana (BCI Bayesian Classier Induction), descrito no Anexo I, foi apresentado em um dos seus trabalhos [35] e em seu livro [28]. Ele permite fazer classicaes baseadas em Redes Bayesianas ou Nave Bayesiana. Nesse trabalho utilizou-se a linha Nave Bayesiana, devido a caracterstica do problema como apresentado no Captulo 4. O BCI foi todo desenvolvido em linguagem "C"e seu cdigo fonte disponibilizado. Ele composto por 3 utilitrios principais. O dom, o bci e o bcx. O dom usado para gerar o arquivo de domnio das classes usado na fase de treinamento. O bci o programa de treinamento e usa o arquivo de domnio como base junto com o arquivo de dados de trei-

5.6 Treinamento do Sistema

69

namento como visto anteriormente nesse captulo. O bcx o classicador propriamente dito, ele responsvel por calcular os valores das probabilidades usadas na classicao Nave Bayesiana e gerar o arquivo de sada com o resultado da classicao. Os utilitrios do BCI foram incorporados a programas escritos em Perl que tornaram o sistema unicado conforme apresentado pela arquitetura do sistema.

5.6 Treinamento do Sistema


Aplicando-se a teoria apresentada na arquitetura do sistema e as informaes levantadas na fase de aquisio e levantamento de dados, temos todas as ferramentas para iniciar o treinamento do sistema para cada um dos ataques apresentados. Para isso utilizamos o programa de treinamento do BCI (Bayes Classier Induction) apresentado anteriormente.

5.6.1 Treinamento do Ataque Guest


O ataque Guest representado na base de dados de treinamento somente por 1 ataque com 50 registros. Devido a essa escassez de dados, foi necessria a criao de dados sintetizados para melhorar a deciso do sistema. Esses dados foram criados por um programa gerador de dados aleatrios que foi ajustado a m de criar valores para os dois vetores de caractersticas dentro dos patamares observados como trfego sobre ataque e normal. Mesmo utilizando os dados sintetizados o mais recomendvel seria levantar mais dados de trfego real, principalmente sob ataque para melhorar o treinamento do sistema. O levantamento dos vetores de caractersticas para o treinamento do ataque Guest feito atravs de um programa em Perl que acessa a base de dados de treinamento separando-a em blocos de 5 minutos e procura pela ocorrncia da porta de servio de destino 23 (Telnet) nesse intervalo. Se existirem registros com essa caracterstica ento contabiliza-se o nmero total de conexes (TxG) e o total de Resets (RST) enviados pelo atacante. Esse processo se repete para todos os endereos IPs de origem nica, ou seja, todas as conexes cujo endereo IP de origem seja o mesmo, at o m da lista de IPs ou o m do intervalo de tempo, percorrendo toda a base.

5.6 Treinamento do Sistema

70

Os vetores de caractersticas so ento salvos no arquivo de treinamento e a classe qual pertencem identicada atravs das indicaes Ataque e NAtaque respectivamente no campo Deciso no nal de cada linha. Pelos resultados obtidos os dois vetores de caractersticas foram sucientes para caracterizar esse ataque e foram usadas para treinar o classicador Nave Bayes considerando a arquitetura mostrada na Figura 5.5.

Figura 5.5: Arquitetura do classicador Nave Bayes para o ataque Guest com os 2 vetores de caractersticas e as 2 classes Ataque e NAtaque. Aps esse levantamento realiza-se o treinamento utilizando o programa BCI. Esse programa l todos os campos do arquivo de treinamento e calcula as funes de distribuio de probabilidade normal para cada vetor de caracterstica e para cada classe. A sada desse programa mostrada na Figura 5.6 que a base de dados das classes usado pelo classicador.

5.6.2 Treinamento do Ataque Neptune


O ataque Neptune tem uma representatividade muito elevada na base de dados de treinamento, os 13 ataques possuem 1.526.643 registros, representando 63,6% do total da base. O levantamento dos vetores de caractersticas para o treinamento do ataque Neptune feito atravs de um programa em Perl que acessa a base de dados de treinamento separando-a em blocos de 1 minuto. Dentro desse intervalo de tempo procura-se pelo conjunto endereo IP de origem e endereo IP destino nicos, ou seja, todas as conexes cujo endereo IP de origem e destino sejam os mesmos, e analisam-se todas as sesses

5.6 Treinamento do Sistema

71

Figura 5.6: Resultado do treinamento Nave Bayes para o ataque Guest. desse conjunto, calculando-se o nmero total de conexes (TxG), a quantidade de FSR da origem para o destino (FSR_a2b) e do destino para a origem (FSR_b2a), o total de sinais ACKs da origem para o destino (ACK_a2b), o total de pacotes transmitidos e recebidos (BPP) e a sua razo pelo nmero total de conexes (MBPP = BPP/TxG). Esse processo se repete at o m da lista de IPs ou o m do intervalo de tempo, percorrendo a base toda. Os vetores de caractersticas so ento salvos no arquivo de treinamento e a classe a qual pertencem identicada atravs das indicaes Ataque e NAtaque no campo Deciso no nal de cada linha. Pelos resultados obtidos os seis vetores de caractersticas foram sucientes para caracterizar esse ataque e foram usados para treinar o classicador Nave Bayes considerando a arquitetura mostrada na Figura 5.7. Aps esse levantamento realiza-se o treinamento utilizando o programa BCI. Esse programa l todos os campos do arquivo de treinamento e calcula as funes de distribuio de probabilidade normal para cada vetor de caracterstica e para cada classe. A sada desse programa mostrada na Figura 5.8 que a base de dados das classes usado pelo classicador.

5.6 Treinamento do Sistema

72

Figura 5.7: Arquitetura do classicador Nave Bayes para o ataque Neptune com os 6 vetores de caractersticas e as 2 classes Ataque e NAtaque.

5.6.3 Treinamento do Ataque Portsweep


O ataque Portsweep tem uma representatividade signicativa na base de dados de treinamento, com 14 ataques representando 0,48% do total da base e 0,74% dos registros de ataque. Se expurgarmos o ataque Netuno da base esses valores passam para 1,33% e 27,35% respectivamente. O levantamento dos vetores de caractersticas para o treinamento do ataque Portsweep feito atravs de um programa em Perl que acessa a base de dados de treinamento separando-a em blocos de 5 minutos. Dentro desse intervalo de tempo procura-se pelo conjunto endereo IP de origem e endereo IP destino nicos, ou seja, todas as conexes cujo endereo IP de origem e destino sejam os mesmos, e analisam-se todas as sesses desse conjunto, calculando-se o total de portas acessadas por este par de endereos nesse intervalo (SDP) e a razo do nmero total de pacotes transmitidos e recebidos pelo nmero total de conexes (MBPP = BPP/TxG). Esse processo se repete at o m da lista de IPs ou o m do intervalo de tempo, percorrendo a base toda. Os vetores de caractersticas so ento salvos no arquivo de treinamento e a classe qual pertencem identicada atravs das indicaes Ataque e NAtaque no campo

5.6 Treinamento do Sistema

73

Figura 5.8: Resultado do treinamento Nave Bayes para o ataque Neptune. Deciso no nal de cada linha. Pelos resultados obtidos os seis vetores de caractersticas foram sucientes para caracterizar esse ataque e foram usadas para treinar o classicador Nave Bayes considerando a arquitetura mostrada na Figura 5.9. Aps esse levantamento realiza-se o treinamento utilizando o programa BCI. Esse programa l todos os campos do arquivo de treinamento e calcula as funes de distribuio de probabilidade normal para cada vetor de caracterstica e para cada classe. A sada desse programa mostrada na Figura 5.10 que a base de dados das classes usado pelo classicador.

5.7 Classicao do Sistema

74

Figura 5.9: Arquitetura do classicador Nave Bayes para o ataque Portsweep com os 2 vetores de caractersticas e as 2 classes Ataque e NAtaque.

5.7 Classicao do Sistema


Essa a ltima etapa do sistema. Aps o treinamento ter sido realizado e os arquivos de congurao das classes terem sido criados pode-se iniciar a fase de classicao dos ataques usando a base de dados de trfego de teste. Para isso utilizamos o programa de classicao do BCI (Bayes Classier Induction) apresentado anteriormente. O detalhamento da classicao ser visto no prximo captulo, onde sero apresentados os resultados e as anlises dos mesmos.

5.7 Classicao do Sistema

75

Figura 5.10: Resultado do treinamento Nave Bayes para o ataque Portsweep.

Captulo 6 Anlise dos Resultados


6.1 Introduo
Para todos os ataques a classicao feita executando-se um programa similar ao programa de treinamento s que ao invs de gerar o arquivo de dados de treinamento para cada conjunto de vetor de caracterstica feita a sua classicao. O resultado do classicador ento comparado com a informao de presena ou no de ataque na base de dados de teste. As informaes so contabilizadas e apresentadas na sada na forma de relatrio seguindo as recomendaes da avaliao de desempenho apresentada no Captulo 5. Neste captulo sero apresentados os resultados da classicao para cada ataque com as suas devidas anlises que serviro de insumo para a concluso do trabalho.

6.2 Classicao do Ataque Guest


Na base de teste o ataque Guest est representado por 4 ataques com 67 registros no total, representando uma quantidade muito pequena em relao ao restante da base. As Figuras 6.1 a 6.4 mostram com detalhes o comportamento desses ataques na base de teste. Podemos observar na Figura 6.2 que existe uma grande intercesso entre o ataque e o

6.2 Classicao do Ataque Guest

77

Figura 6.1: Comportamento do vetor de caracterstica RST na base de teste.

Figura 6.2: Comportamento do vetor de caracterstica RST na base de teste com detalhamento do ataque. trfego normal (sinalizado com um crculo), que deve prejudicar a classicao. O comportamento marcado com um crculo na Figura 6.1 no parece ser normal, provavelmente um outro tipo de ataque na mesma porta de servio que o Guest utiliza. O vetor de caracterstica TxG esta bem comportado como podemos observar na Figura 6.4, com grande diferenciao entre o trfego normal e o ataque. Na Figura 6.3, podemos observar o mesmo comportamento visto no grco anterior, conrmando a suspeita da existncia de outro ataque.

6.2 Classicao do Ataque Guest

78

Figura 6.3: Comportamento do vetor de caracterstica TxG na base de teste.

Figura 6.4: Comportamento do vetor de caracterstica TxG na base de teste com detalhamento do ataque.

6.2.1 Resultados
A Tabela 6.1 apresenta o resultado da classicao do ataque Guest. O primeiro ponto importante a se observar a quantidade total de ataques (TAt) que apresenta a quantidade de 8 ataques, enquanto que realmente s existem 4, como foi apresentado anteriormente. Essa diferena ocorre devido ao particionamento da base em intervalos de tempo independentes realizado pelo sistema. Ento se um ataque tem incio em um intervalo de tempo e se propaga para o prximo, o sistema poder cont-lo como 2 ou mais ataques ao invs de 1. Dos 8 ataques encontrados pelo sistema na base somente 2 foram detectados e esto

6.2 Classicao do Ataque Guest

79

identicados pelo nmero de Real Positivo (RP), os outros 6 no foram detectados como evidncia de ataque, cando contabilizados como Falsos Negativos (FN). O sistema tambm detectou 9 ataques que no eram evidncia do ataque Guest e foram identicados como Falsos Positivos (FP). Em uma anlise mais detalhada desses eventos, evidenciou-se a presena de outros ataques similares ao Guest, como dito anteriormente. O nmero alto de Real Negativo (RN) indica que o classicador no est confundindo trfego normal com ataques. A Figura 6.5 oferece uma viso do cenrio de classicao com as duas classes e os pontos para classicao em torno delas. Em relao quantidade de amostras analisadas o sistema teve um bom desempenho com 99,05% de taxa de acerto (PA) e 0,95% de taxa de erro (PE), apesar da taxa de acerto referencial (PAR) ter sido baixa, 25%. Ataque Guest ndices Total de Amostras Analisadas (TAA) Total de Ataques (TAt = RP + FN) % Referencial de Ataque (PRA=TAt/TAA) Total de Falso Positivo (FP) Total de Falso Negativo (FN) Total de Real Positivo (RP) Total de Real Negativo (RN) % de Acerto (PA=RP+RN/TAA) % de Erro (PE=FP+FN/TAA) % de Acerto Referencial (PAR=RP/TAt) Valor 1.580 8 0,51% 9 6 2 1.563 99,05% 0,95% 25%

Tabela 6.1: Resultado da classicao do ataque Guest.

6.3 Classicao do Ataque Neptune

80

Ataque

No Ataque

Figura 6.5: Representao grca dos pontos do conjunto de dados de teste em relao s classes.

6.3 Classicao do Ataque Neptune


Na base de teste o ataque Neptune est representado por 4 ataques com 72.075 registros no total, representando uma quantidade razovel de informao. As Figuras 6.6 a 6.17 mostram com detalhes o comportamento desses ataques na base de teste.

Figura 6.6: Comportamento do vetor de caracterstica TxG em toda a base de teste. Podemos observar pelas Figuras 6.6 a 6.11 que os vetores de caractersticas possuem comportamentos muito semelhantes e que existe uma grande diferenciao entre o ataque e o trfego normal.

6.3 Classicao do Ataque Neptune

81

Figura 6.7: Comportamento do vetor de caracterstica TxG em toda a base de teste com detalhamento do ataque.

Figura 6.8: Comportamento do vetor de caracterstica FSR_a2b em toda a base de teste. Podemos observar nas Figuras 6.12 e 6.13 que existe uma grande diferenciao entre o ataque e o trfego normal para esse vetor de caracterstica, o qual se mantm sempre em zero quando na presena de ataque. Podemos observar nas Figuras 6.14 e 6.15 que existe uma grande diferenciao entre o ataque e o trfego normal quando da presena do ataque, mas no comportamento geral eles se confundem. Podemos observar nas Figuras 6.16 e 6.17 que existe uma grande diferenciao entre o trfego normal com ataque que se mantm sempre em zero. Pelas caractersticas apresentadas em todos os grcos acima ca bem evidenciado o comportamento do ataque se diferenciando do trfego normal. possvel que o classi-

6.3 Classicao do Ataque Neptune

82

Figura 6.9: Comportamento do vetor de caracterstica FSR_a2b em toda a base de teste com detalhamento do ataque.

Figura 6.10: Comportamento do vetor de caracterstica FSR_b2a em toda a base de teste. cador se confunda com outros tipos de ataques, pois existem ataques com comportamento muito similar ao do Neptune presentes na base.

6.3.1 Resultados
A Tabela 6.2 apresenta o resultado da classicao do ataque Neptune. O primeiro ponto importante a se observar a quantidade total de ataques que est marcando 26 e como foi apresentado anteriormente s existem 4. Essa diferena ocorre devido ao particionamento da base em intervalos de tempo independentes pelo sistema. Ento se um ataque tem incio em um intervalo de tempo e se propaga para o prximo, o sistema poder cont-lo como 2 ou mais ataques ao invs de 1. Principalmente por esse ataque

6.3 Classicao do Ataque Neptune

83

Figura 6.11: Comportamento do vetor de caracterstica FSR_b2a em toda a base de teste com detalhamento do ataque.

Figura 6.12: Comportamento do vetor de caracterstica ACK_a2b em toda a base de teste. ter uma caracterstica de longa durao sua presena foi detectada em vrios intervalos de tempo. Essa diferena apesar de ser grande no prejudica a anlise, pois comparados a um sistema real podemos dizer que os ataques foram identicados, s que para o mesmo ataque alguns alarmes foram gerados a mais. Dos 26 ataques encontrados pelo sistema na base todos foram detectados e esto identicados pelo percentual de Real Positivos (RP). O sistema tambm detectou 10 ataques que no eram evidncia do ataque Neptune e foram identicados como Falso Positivo (FP). Em uma anlise mais detalhada esses ataques foram evidenciados como outros ataques similares ao Neptune, como previsto anteriormente. O nmero alto de Real Negativo (RN) indica que o classicador no est confundindo trfego normal com ataques.

6.3 Classicao do Ataque Neptune

84

Figura 6.13: Comportamento do vetor de caracterstica ACK_a2b em toda a base de teste com detalhamento do ataque.

Figura 6.14: Comportamento do vetor de caracterstica BPP em toda a base de teste. A Figura 6.18 oferece uma viso do cenrio de classicao com as duas classes e os pontos para classicao em torno delas. Em relao quantidade de amostras analisadas o sistema teve um excelente desempenho com 99,9% de taxa de acerto (PA) e somente 0,01% de taxa de erro (PE), e com a taxa de acerto referencial (PAR) de 100%.

6.3 Classicao do Ataque Neptune

85

Figura 6.15: Comportamento do vetor de caracterstica BPP em toda a base de teste com detalhamento do ataque.

Figura 6.16: Comportamento do vetor de caracterstica MBPP em toda a base de teste.

Figura 6.17: Comportamento do vetor de caracterstica MBPP em toda a base de teste com detalhamento do ataque.

6.3 Classicao do Ataque Neptune

86

Ataque Neptune ndices Total de Amostras Analisadas (TAA) Total de Ataques (TAt = RP = FN) % Referencial de Ataque (PRA=TAt/TAA) Total de Falso Positivo (FP) Total de Falso Negativo (FN) Total de Real Positivo (RP) Total de Real Negativo (RN) % de Acerto (PA=RP+RN/TAA) % de Erro (PE=FP+FN/TAA) % de Acerto Referencial (PAR=RP/TAt) Valor 10.163 26 0,26% 10 0 26 10.127 99,90% 0,098% 100%

Tabela 6.2: Resultado da classicao do ataque Neptune.

Ataque

No Ataque

Figura 6.18: Representao grca dos pontos do conjunto de dados de teste em relao s classes.

6.4 Classicao do Ataque Portsweep

87

6.4 Classicao do Ataque Portsweep


Na base de teste o ataque Portsweep est representado por 13 ataques com 262 registros no total, representando uma quantidade baixa de informao. As Figuras 6.19 a 6.24 mostram com detalhes o comportamento desses ataques na base de teste. Pelas caractersticas apresentadas nos grcos ca bem evidenciado o comportamento do ataque se misturando com o trfego normal. possvel que o classicador gere um nmero expressivo de Falsos Positivos, pois com certeza ele ir se confundir com o trfego normal e com outros ataques, pois existem trfegos auto-similares ao ataque Portsweep.

Figura 6.19: Comportamento do vetor de caracterstica SDP em toda a base de teste.

Figura 6.20: Comportamento do vetor de caracterstica SDP em toda a base de teste com detalhamento do ataque.

6.4 Classicao do Ataque Portsweep

88

Figura 6.21: Comportamento do vetor de caracterstica SDP em toda a base de teste com detalhamento do ataque.

Figura 6.22: Comportamento do vetor de caracterstica MBPP em toda a base de teste.

6.4 Classicao do Ataque Portsweep

89

Figura 6.23: Comportamento do vetor de caracterstica MBPP em toda a base de teste com detalhamento do ataque.

Figura 6.24: Comportamento do vetor de caracterstica MBPP em toda a base de teste com detalhamento do ataque.

6.4.1 Resultados
A Tabela 6.3 apresenta o resultado da classicao do ataque Portsweep. O primeiro ponto importante a se observar a quantidade total de ataques (TAt) que apresenta a quantidade de 19 ataques, enquanto que realmente s existem 13, como foi apresentado anteriormente. Essa diferena ocorre devido ao particionamento da base em intervalos de tempo independentes realizado pelo sistema. Ento se um ataque tem incio em um intervalo de tempo e se propaga para o prximo, o sistema poder cont-lo como 2 ou mais ataques ao invs de 1

6.4 Classicao do Ataque Portsweep Ataque Portsweep ndices Total de Amostras Analisadas (TAA) Total de Ataques (TAt = RP + FN) % Referencial de Ataque (PRA=TAt/TAA) Total de Falso Positivo (FP) Total de Falso Negativo (FN) Total de Real Positivo (RP) Total de Real Negativo (RN) % de Acerto (PA=RP+RN/TAA) % de Erro (PE=FP+FN/TAA) % de Acerto Referencial (PAR=RP/TAt) Valor 2.470 19 0,77% 1.109 1 18 1.342 55,06% 44,94% 94,74%

90

Tabela 6.3: Resultado da classicao do ataque Portsweep.

Dos 19 ataques encontrados pelo sistema na base 18 foram detectados e esto identicados pelo percentual de Real Positivos (RP). O sistema deixou de detectar 1 ataque que era uma evidncia real do ataque Portsweep sendo identicados como Falso Negativo (FN). O alarmante foi a quantidade de Falsos Positivos (FP), contabilizados em 1109. Esse comportamento era esperado conforme foi explicado anteriormente. Em relao quantidade de amostras analisadas o sistema teve um desempenho mediano com 55,06% de taxa de acerto (TA) e 44,94% de taxa de erro (TE) apesar da taxa de acerto referencial (PAR) ter sido de 94,74%.

Captulo 7 Concluso e Trabalhos Futuros


7.1 Concluso
Pelos resultados obtidos no Captulo 6 e pela experincia adquirida durante o trabalho de aquisio dos dados, levantamento dos vetores de caracterstica e os testes de classicao o classicador Nave Bayes mostrou-se um excelente modelo para realizar a tarefa de classicao aplicada deteco da intruso. Sua simplicidade de implementao e a rapidez de processamento foram fatores relevantes no processo. Podemos observar pelos nmeros nais que para alguns tipos de ataque o comportamento do classicador no foi o esperado. Alguns fatores especcos e outros gerais inuenciaram para esses resultados e sero detalhados a seguir. Os problemas mencionados no Captulo 4 sobre as falhas no desenvolvimento do DARPA 98 e DARPA 99 prejudicaram o resultado do trabalho, principalmente os problemas de marcao dos ataques que nem sempre estavam bem correlacionados com os dados dos trfegos, o que possivelmente nos levou a inserir erros na base de dados de treinamento e teste como: a no marcao de trfegos com evidncia de ataques e marcao errnea de trfegos normais como ataque. A falta de informaes sobre como foram realizados os ataques prejudicou a anlise do comportamento dos mesmos e conseqentemente a denio dos vetores de caractersticas. Outros fatores mencionados no captulo 4 podem ter inuenciado nos resultados, mas sua extenso no pode ser mensurada, pois

7.1 Concluso intrnseco ao modelo de teste realizado pelo Laboratrio Lincoln do MIT.

92

Foram observadas algumas questes sobre os dados de treinamento que inuenciaram nos resultados de alguns ataques, mas que devem ser consideradas para todos, como a anlise prvia dos dados estabelecendo-se limites superiores e/ou inferiores para que os mesmos no prejudiquem o resultado nal como um todo. Um exemplo deste problema pode ser observado pela Figura 4.21 dos dados de treinamento do vetor de caracterstica MBPP do ataque Portsweep que possui um ponto entre 350.000 e 400.000, enquanto que a maioria dos dados tem seu comportamento entre 0 e 5.000. A mesma evidncia pode ser observada no vetor de caracterstica ACK_a2b e BPP do ataque Neptune (Figuras 4.11 e 4.13). Como o classicador Nave Bayes necessita de treinamento supervisionado de suma importncia que existam dados de treinamento sucientes para que as funes de densidade probabilsticas possam cobrir o espao amostral de modo a reetir os comportamentos possveis de cada ataque. Pode ser observado pelos nmeros da tabela 4.8 que os ataques Guest e Portsweep no possuem dados de treinamento sucientes para um bom aprendizado, reetindo diretamente sobre os resultados apresentados no Captulo 6. O resultado do ataque Guest (Figura 7.1) no foi satisfatrio, pois obteve-se um percentual de acerto em relao indicao real de ataque de 25%, ou seja, dos 8 ataques somente 2 foram detectados. Devido quantidade de acerto nos registros que no tm evidncia de ataque (Real Negativo), ou seja, trfego normal, o percentual de acerto geral foi de 99,05%, considerado excelente. A quantidade de 9 falsos positivos (FP) muito boa e indica que o classicador no confundiu o trfego normal com evidncias de ataques. A deteco deste tipo de ataque foi prejudicado pela falta de dados de treinamento, que se tentou compensar com a gerao de dados sintetizados, mas como estes no reetem todas as variaes de comportamento do ataque, a melhora no foi signicativa. A falta de informao sobre os ataques nos dados de teste no permitiu que uma anlise mais detalhada dos falsos negativos (FN) pudesse ser feita. Uma validao dos vetores de caractersticas na presena de uma quantidade maior de dados de treinamento aconselhada para melhorar o desempenho do classicador nesse tipo de ataque. A classicao do ataque Neptune foi excelente, 100% de acerto real, ou seja, todos

7.1 Concluso

93

os 26 ataques indicados na base de teste foram detectados. Dos 10.127 registros de trfego normal somente 10 foram indicados como evidncia falsa de ataque Neptune (Falso Negativo). Esses nmeros comprovam que uma boa escolha dos vetores de caractersticas em conjunto com uma quantidade satisfatria do conjunto de dados de treinamento fator determinante para uma boa classicao. Os resultados podem ser observados na Figura 7.1.

Figura 7.1: Resultado nal dos ataques O resultado da deteco do ataque Portsweep no foi satisfatrio (Figura 7.1), apesar do excelente resultado de 94,74% de acerto referncia, ou seja, dos 19 ataques da base de teste 18 foram detectados. O mau resultado referenciado grande quantidade de erros de classicao, dos 1.343 registros de trfego normal 1109 foram identicados com evidncia falsa de ataque, ou seja, quase 83% de erro. importante ressaltar que dos 1.109 registros de trfego (FP) todos eram realmente normais e no evidncias de outros ataques. Esse problema se deve a grande intercesso das informaes de trfego normal com evidncia de ataque nos vetores de caractersticas. Essas evidncias esto sinalizadas nos referidos grcos dos vetores de caractersticas dos dados de treinamento (Figuras 4.18 a 4.23). Neles podemos observar que houve a inuncia de uma informao espria no vetor de caracterstica MBPP que fez com que a funo de distribuio de probabilidade (FDP) casse com o valor de varincia muito fora do real. A FDP do vetor de caracterstica SDP para a classe no ataque cou com mdia 1 e varincia 0, denindo

7.1 Concluso

94

uma deciso abrupta, o que no aconselhvel para um classicador. Uma tentativa para melhorar o classicador foi feita modicando-se o programa de classicao para no analisar trfegos nas portas utilizadas com oferta de servios na rede como: HTTP (80), SMTP (25), FTP (21 e 22), SSH (22). Essa alterao na losoa de anlise fez com que o nmero de falsos positivos diminusse para praticamente 12% contra os 83% anteriores, mas em compensao o nmero de ataques detectados diminuiu quase 50%. Como soluo nal para o problema essa alternativa no se mostrou ecaz. A soluo para diminuir a quantidade de falsos positivos do ataque Portsweep a melhoria dos vetores de caractersticas, ou com a substituio de alguns deles ou com a incluso de outros que possam separar claramente no espao amostral a evidncia de ataque do trfego normal. Em paralelo a esse trabalho, outra tese de mestrado [51] com defesa prevista para maio de 2005 com mesmo orientador, estava realizando os mesmos testes sobre os mesmos ataques referenciando a mesma base de dados de treinamento e de teste utilizando lgica neuro-difusa (Neuro-Fuzzy). Para alguns ataques os vetores de caractersticas usados foram os mesmos, mas para outros o mesmo conjunto de vetores no se mostrou eciente tendo que ser ajustado conforme a necessidade.

Figura 7.2: Comparao entre o classicador Bayesiana e Neuro-Fuzzy para o ataque Guest.

7.1 Concluso

95

Como pode ser observado na Figura 7.2 do ataque Guest o classicador Bayesiano assinalou mais falsos positivos que o Neuro-Fuzzy, 9 contra 5 respectivamente, mostrando que com poucos dados de treinamento as curvas de pertinncias do Neuro-Fuzzy so mais sensveis do que as funes de densidade probabilsticas do Bayes. Nos demais ndices os dois foram compatveis. No ataque Neptune o classicador Bayesiana se mostrou superior ao Neuro-Fuzzy, como podemos observar na Figura 7.3 atravs dos ndices Falso Positivo (FP) onde do total de 26 ataques o Bayes obteve 26 acertos (100%) contra 23 (88,46%) do NeuroFuzzy e Real Positivo (RP) onde o Bayes se confundiu em 10 casos, 0,1% em relao quantidade de Real Negativo (RN), e o Neuro-Fuzzy em 541 casos, representando 5,6% sobre a mesma referncia.

Figura 7.3: Comparao entre o classicador Bayesiana e Neuro-Fuzzy para o ataque Neptune. Em relao ao ataque Portsweep os dois modelos obtiveram resultados muito semelhantes (Figura 7.4). Os problemas que afetaram o classicador Bayesiano tambm afetaram o Neuro-Fuzzy, que para chegar a esse resultado precisou dividir os valores dos vetores de caractersticas em 4 faixas e realizar a anlise em cada uma dessas 4 faixas. Olhando os resultados dos dois classicadores podemos concluir que cada um possui suas particularidades, o Bayes mais simples e o Neuro-Fuzzy mais robusto, mas chegaram

7.2 Trabalhos Futuros

96

Figura 7.4: Comparao entre o classicador Bayesiana e Neuro-Fuzzy para o ataque Portsweep. praticamente aos mesmos resultados. Ento conclumos que os dois mtodos so muito interessantes e podem ser aplicados na nalidade em questo. Pelo exposto neste trabalho o classicador Bayesiano se mostrou um excelente mtodo para ser utilizado na deteco da intruso. A sua utilizao comercial tem sido percebida em alguns softwares de anti-spam. Existem outros trabalhos de pesquisa sendo realizados para utiliz-lo como uma plataforma genrica de tomada de deciso como o Hugin [52]. O ponto fraco desse modelo, como em todos os modelos que utilizam treinamento supervisionado, o alto grau de dependncia do especialista para a determinao dos vetores de caractersticas para cada tipo de ataque novo que surge. A utilizao de PCA (Principal Component Analysis) e clusterizao tm sido estudadas para resolver esse problema.

7.2 Trabalhos Futuros


A concluso que muito trabalho ainda pode ser feito utilizando-se esse mtodo na deteco da intruso como, por exemplo: o mapeamento de outros ataques, a melhoria do treinamento, testar outros algoritmos de inferncias mais ecientes, otimizar a escolha

7.2 Trabalhos Futuros dos atributos das classes e fazer correlao de eventos de rede com os de host.

97

Como mencionado anteriormente a fragilidade dos sistemas inteligentes est no treinamento, principalmente quando este supervisionado. Uma das sadas para esse problema a utilizao de redes Bayesianas em conjunto com clusterizao Fuzzy [53], permitindo que o espao amostral do conjunto de treinamento seja dividido em subconjuntos (cluster) que iro denir as melhores classes a serem utilizadas no processo. FRIEDMAN, GEIGER e GILDSZMIDT [54] propuseram um algoritmo para melhorar a preciso das redes Bayesianas e pode ser aplicado ao Nave Bayes. A proposta transforma o modelo de rede estrela do Nave Bayes em uma rede com conexes somente entre os atributos, no se estendendo ao n pai. Esse modelo cria uma interdependncia entre os atributos dando maior sensibilidade ao classicador. Outra proposta a utilizao de redes Bayesianas dinmicas (DBN Dynamic Bayesian Network) apresentada por [55] onde a ocorrncia de eventos no tempo pode ser capturada utilizando-se uma mistura dos modelos de Markov (HMM Hidden Markov Model) e sistemas lineares dinmicos (LDS - Linear Dynamical Systems). A tcnica de Anlise de Componentes Principais ou PCA (Principal Component Analysis) [56] tem sido alvo de estudo para a otimizao da escolha dos vetores de caractersticas para sistemas inteligentes.

Referncias Bibliogrcas
[1] NCSC. Trusted Computer System Evaluation Criteria, red book ed. Department of Defence, 1985. [2] NCSC. Trusted Computer System Evaluation Criteria, orange book ed. Department of Defence, 1985. [3] M AKHERJEE , B., H EBERLEIN , L. T., tion. IEEE Network 8 (1994), 2641. [4] VOYDOCK , V.,
E E

L EVITT, K. N. Network intrusion detec-

K ENT, S. Security in high-level network protocols. IEEE Com-

mum. Mag. 23, 7 (july de 1985), 1224. [5] BACE , R. G. Intrusion Detection, 1 ed. Macmillan Technical Publishing, Indianapolis, 2000. [6] D ENNING , D. E. An intrusion detection model. IEEE Transaction on Software Eng 13 (1987), 222232. [7] S UNDARAM , A. An introduction to intrusion detection.

"http://www.acm.org/crossroads/xrds2-4/intrus.html", 1996. ACM Crossroads. [8] F RANK , J. Articial intelligence and intrusion detection: Current and future directions. In Proceedings of the 17th National Computer Security Conference (Baltimore, MD, 1994). [9] JACKSON , P. Introduction to expert systems. Addison-Wesley Longman Publishing Co., Inc., 1986.

REFERNCIAS BIBLIOGRFICAS

99

[10] G ARVEY, T. D., E L UNT, T. F. Model-based intrusion detection. In Proceedings of the 14:th National Computer Security Conference (Baltimore, MD, USA, outubro de 1991), NIST, National Institute of Standards and Technology/National Computer Security Center, pp. 372385. [11] I LGUN , K. USTAT: A real-time intrusion detection system for UNIX. In Proceedings of the 1993 IEEE Symposium on Research in Security and Privacy (Oakland, CA, 1993), pp. 1628. [12] P ORRAS , P.,
E

K EMMERER , R. Penetration state transition analysis Arule-based

intrusion detection approach. In Proceedings of the Eighth Annual Computer Security Applications Conference (San Antonio, TX, nov de 1992), IEEE, IEEE Computer Society Press, pp. 220229. [13] K UMAR , S.,
E

S PAFFORD , E. H. A Pattern Matching Model for Misuse Intru-

sion Detection. In Proceedings of the 17th National Computer Security Conference (1994), pp. 1121. [14] T ENG , H. S., C HEN , K.,
E

L U , S. C.-Y. Security audit trail analysis using induc-

tively generated predictive rules. In Proceedings of the 6th Conference on Articial Intelligence Applications (maro de 1990), IEEE, IEEE Service Center, Piscataway, NJ, pp. 2429. [15] D EBAR , H., B ECKER , M.,
E

S IBONI , D. A neural network component for an

intrusion detection system. In Proceedings of the 1992 IEEE Computer Society Symposium on Research in Security and Privacy (Oakland, CA, maio de 1992), pp. 240250. [16] M , L. Gassata, a genetic algorithm as an alternative tool for security audit trail analysis. In Proceedings of th 1th international workshop on the recent advances in intrusion detection held in Louvain-la-Neuve (Belgiun, 1998), pp. 1416. [17] L UO , J. Integrating fuzzy logic with data mining methods for intrusion detection. Tese de Mestrado, Mississippi State University, August de 1999.

REFERNCIAS BIBLIOGRFICAS [18] M AIA , R., S OARES , A. A.,


E

100

L EO , J. Utilizao da lgica difusa na deteco

da intruso. Congresso de Cincias da Computao e Sistemas da Informao da Regio Sul (2004). [19] C ROSBIE , M.,
E

S PAFFORD , E. H. Defending a computer system using autono-

mous agents. In Proc. 18th NIST-NCSC National Information Systems Security Conference (1995), pp. 549558. [20] L EE , W., S TOLFO , S. J.,
E

M OK , K. W. Mining audit data to build intrusion

detection models. In Proceedings of 4th internacional conference on knowledge discovery and data mining held in New York (New York, August de 1998), edited by Rakesh Agrawal e Poul Stolorz, Ed., NY:AAAI Press, pp. 6672. [21] S EBYALA , A. A., O LUKEMI , T.,
E

S ACKS , L. Active platform security through

intrusion detection using naive bayesian network for anomaly detection. In Proceedings of the London Communications Symposium 2002 (jul de 2002). [22] K RUEGEL , C., M UTZ , D., ROBERTSON , W.,
E

VALEUR , F. Bayesian event clas-

sication for intrusion detection. In ACSAC 03: Proceedings of the 19th Annual Computer Security Applications Conference (2003), IEEE Computer Society, p. 14. [23] P UTTINI , R. S., M ARRAKCHI , Z.,
E

M , L. A Bayesian Classication Model for

Real-Time Intrusion Detection. In AIP Conf. Proc. 659: Bayesian Inference and Maximum Entropy Methods in Science and Engineering (maro de 2003), pp. 150 162. [24] VALDES , A.,
E

S KINNER , K. Adaptive, model-based monitoring for cyber attack

detection. In RAID 00: Proceedings of the Third International Workshop on Recent Advances in Intrusion Detection (2000), Springer-Verlag, pp. 8092. [25] DANIEL BARBAR , N. W.,
E

JAJODIA , S. Detecting novel network intrusions

using bayes estimators. In the 1st SIAM International Conference on Data Mining (April de 2001).

REFERNCIAS BIBLIOGRFICAS [26] A MOR , N. B., B ENFERHAT, S.,


E

101 E LOUEDI , Z. Naive bayes vs decision trees in

intrusion detection systems. In SAC 04: Proceedings of the 2004 ACM symposium on Applied computing (2004), ACM Press, pp. 420424. [27] P EARL , J. Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference. Morgan Kaufmann Publishers Inc., 1988. [28] B ORGELT, C.,
E

K RUSE , R. Graphical Models - Methods for Data Analysis and

Mining. J. Wiley & Sons, Chichester, United Kingdom, 2002. [29] G OOD , I. J. The Estimation of Probabilities. An Essay on Modern Bayesian Methods. MIT Press, Cambridge, MA, 1965. [30] D UDA , R. O., E H ART, P. E. Pattern Classication and Scene Analysis. John Wiley & Sons, 1973. [31] L ANGLEY, P., I BA , W.,
E

T HOMPSON , K. An analysis of bayesian classiers. In

National Conference on Articial Intelligence (1992), pp. 223228. [32] L ANGLEY, P., E S AGE , S. Induction of selective bayesian classiers. pp. 399406. [33] D OUGHERTY, J., KOHAVI , R.,
E

S AHAMI , M. Supervised and unsupervised dis-

cretization of continuous features. In ICML (1995), pp. 194202. [34] F RIEDMAN , N., E G OLDSZMIDT, M. Building classiers using bayesian networks. In AAAI/IAAI, Vol. 2 (1996), pp. 12771284. [35] B ORGELT, C., E G EBHARDT, J. A naive Bayes style possibilistic classier. In Proc. 7th European Congress on Intelligent Techniques and Soft Computing (EUFIT99, Aachen, Germany) (Aachen, Germany, 1999), Verlag Mainz. [36] B LAKE , C.,
E

M ERZ , C. UCI repository of machine learning databases, 1998.

[37] L IPPMANN , R., F RIED , D., G RAF, I., H AINES , J., K ENDALL , K., M C C LUNG , D., W EBER , D., W EBSTER , S., W YSCHOGROD , D., C UNNINGHAM , R.,
MAN , E

Z ISS -

M. Evaluating intrusion detection systems: The 1998 DARPA off-line in-

trusion detection evaluation. In Proceedings of the DARPA Information Survivabi-

REFERNCIAS BIBLIOGRFICAS

102

lity Conference and Exposition (Los Alamitos, CA, 2000), IEEE Computer Society Press. [38] L IPPMANN , R., H AINES , J. W., F RIED , D. J., KORBA , J., E DAS , K. Analysis and results of the 1999 darpa off-line intrusion detection evaluation. In Recent Advances in Intrusion Detection (2000), pp. 162182. [39] Darpa intrusion detection evaluation. "http://www.ll.mit.edu/IST/ideval/index.html", 2001. [40] M C H UGH , J. The 1998 lincoln laboratory ids evaluation: A critique. In Recent Advances in Intrusion Detection (2000), pp. 145161. [41] D IHUA , L., H ONGZHI , W., E X IUMEI , W. Data mining for intrusion detection. The 2002 Conference Technology and Management (2002), 4150. [42] B LOEDORN , E., C HRISTIANSEN , A. D., H ILL , W., S KORUPKA , C., TALBOT, L. M., E T IVEL , J. Data mining for network intrusion detection: How to get started, August de 2001. Technical Paper. [43] P OSTEL , J. Dod standard transmission control protocol, January de 1980. [44] R AMADAS , M. Tcptrace manual. Internetworking Research Group, August de 2003. [45] K ENDALL , K. A database of computer attacks for the evaluation of intrusion detection systems. S.m. thesis, Department of Electrical Engineering and Computer Science, MIT, June de 1999. [46] G ARFINKEL , S.,
E

S PAFFORD , G. Practical UNIX & Internet Security, 2 ed ed.

OReilly & Associates, California, 1996. [47] CERT. Cert advisory ca-96.21, September de 1996. [48] CAI, W.,
E

LI, L. Anomaly detection using tcp header information.


E

[49] S TANIFORD , S., H OAGLAND , J. A.,

M C A LERNEY, J. M. Practical automated

detection of stealthy portscans. J. Comput. Secur. 10, 1-2 (2002), 105136.

REFERNCIAS BIBLIOGRFICAS

103

[50] N ORTHCUTT, S. Network Intrusion Detection - An Analysts Handbook, 1th ed. New Riders, 1999. [51] S OARES , A. A. Deteco da intruso utilizando lgica fuzzy. Tese de mestrado a defender, Universidade Federal do Rio de Janeiro, 2005. [52] Hugin expert. "http://www.hugin.com/", 2004. [53] B ORGELT, C., T IMM , H.,
E

K RUSE , R. Probabilistic networks and fuzzy cluste-

ring as generalizations of naive bayes classiers. In Computational Intelligence in Theory and Practice, B. Reusch e K.-H. Temme, Eds., Advances in Soft Computing. Physica-Verlag, Heidelberg, Germany, 2001, pp. 121138. [54] F RIEDMAN , N., G EIGER , D.,
E

G OLDSZMIDT, M. Bayesian network classiers.

Machine Learning 29, 2-3 (1997), 131163. [55] M URPHY, K. P. An introduction to graphical models. Unpublished, May de 2001. [56] J OLIFFE , I. Principal Component Analysis, 2nd edition ed. Springer Verlag, 2002.

Apndice A Anexo I
O NBIS foi desenvolvido utilizando um conjunto de programas auxiliares em Perl e o software indutor de classicao Bayesiana (BCI - Bayesian Classier Induction) desenvolvidos por Cristian Borgelt do Departamento de Engenharia de Linguagem e Processamento do Conhecimento da Universidade de Magdeburg na Alemanha [35] e [28].

A.1 BCI
O BCI foi todo desenvolvido em linguagem C e seu cdigo fonte disponibilizado. Ele composto por 3 utilitrios principais. O dom, o bci e o bcx. O dom usado para gerar o arquivo de congurao do domnio das classes usado na faze de treinamento. O bci o programa de treinamento e usa o arquivo de domnio como base junto com o arquivo de dados de treinamento. O bcx o classicador propriamente dito, ele responsvel por calcular os valores das probabilidades usadas na classicao Nave Bayesiana e gerar o arquivo de sada com o resultado da classicao.

A.1.1 Programa dom


O programa dom l o arquivo de entrada de dados de treinamento e gera na sada o arquivo de congurao do domnio com o tipo de cada vetor de caracterstica e seus valo-

A.1 BCI

105

res. Quando o vetor de caracterstica uma varivel aleatria numrica a sada apresenta somente o maior (max) e menos valor (min). A Tabela A.1 apresenta a lista de opes do programa. Um exemplo de utilizao do comando : sh > dom a arq _entrada_dados arq _conf _domnio usage: dom [options] [-d|-h hdrle] table domle determine attribute domains version 1.9 (2003.08.16) (c) 1995-2003 Christian Borgelt -s sort domains alphabetically (default: order of appearance) -S sort domains numerically/alphabetically -a automatic type determination (default: all symbolic) -i do not print intervals for numeric attributes -l# output line length (default: no limit) -b/f/r# blank characters, eld and record separators(default: "\t\r", "\t", "\n") -u# unknown value characters (default: "?") -n number of tuple occurrences in last eld -d use default header (eld names = eld numbers) -h read table header (eld names) from hdrle hdrle le containing table header (eld names) table table le to read (eld names in rst record) domle le to write domain descriptions to Tabela A.1: Lista de opes do programa dom.

A.1.2 Programa bci


O programa bci l o arquivo de entrada de dados de treinamento e o arquivo de congurao de domnio, gerado pelo programa dom, e gera na sada o arquivo de congurao de classe com as funes de densidade probabilstica para cada vetor de caracterstica e para cada classe denida. A Tabela A.2 apresenta a lista de opes do programa. Um exemplo de utilizao do comando :

A.1 BCI sh > bci a arq _conf _domnio arq _entrada_dados arq _sada_ conf _classes usage: bci [options] domle [-d|-h hdrle] table bcle naive and full Bayes classier induction version 2.6 (2004.04.15) -F induce a full Bayes classier (default: naive Bayes) -c# class eld name (default: last eld) -w# balance class frequencies (weight tuples) l: lower, b: boost, s: shift weights -s# simplify classier (naive Bayes only) a: by adding, r: by removing attributes -L# Laplace correction (default: 0) -t distribute tuple weight for unknown values -m use maximum likelihood estimate for the variance -p print relative frequencies (in percent) -l# output line length (default: no limit) -b/f/r# blank characters, eld and record separators (default: "\t\r", "\t", "\n") -u# unknown value characters (default: "?") -n number of tuple occurrences in last eld domle le containing domain descriptions -d use default table header (eld names = eld numbers) -h read table header (eld names) from hdrle hdrle le containing table header (eld names) table table le to read (eld names in rst record) bcle le to write Bayes classier to Tabela A.2: Lista de opes do programa bci.

106

A.1.3 Programa bcx


O programa bcx l o arquivo de entrada de dados de teste e o arquivo de congurao de classes, gerado pelo programa bci, e gera na sada o arquivo de classicao. A Tabela A.3 apresenta a lista de opes do programa. Um exemplo de utilizao do comando :

A.2 Programas Auxiliares sh > bcx a arq _conf _classes arq _entrada_dados arq _sada_classif icao usage: bcx [options] bcle [-d|-h hdrle] table [outle] naive and full Bayes classier execution version 2.8 (2004.04.15) (c) 1998-2004 Christian Borgelt -c# classication eld name (default: bc) -p# condence/probability eld name (default: no condence output) -L# Laplace correction (default: as specied in classier) -v/V (do not) distribute tuple weight for unknown values -m/M (do not) use maximum likelihood estimate for the variance -a align elds (default: do not align) -w do not write eld names to the output le -b/f/r# blank characters, eld and record separators (default: "\t\r", "\t", "\n") -u# unknown value characters (default: "?") -n number of tuple occurrences in last eld bcle le containing classier description -d use default table header (eld names = eld numbers) -h read table header (eld names) from hdrle hdrle le containing table header (eld names) table table le to read (eld names in rst record) outle le to write output table to (optional) Tabela A.3: Lista de opes do programa bcx.

107

A.2 Programas Auxiliares


Para cada tipo de ataque criou-se um programa em Perl que acessava a base de dados e separava os vetores de caractersticas tanto para o treinamento como para a classicao. Esses programas tambm so responsveis por gerar os relatrios de anlise de resultados. Abaixo listamos o programa para o ataque Neptune que serviu de base para a construo do outros dois programas.

A.2 Programas Auxiliares #!/usr/bin/perl

108

################################################################### # Denio dos Pacotes Necessrios ao Programa ################################################################### use DBI; #################################################################### # Abrindo e Conectando ao Banco #################################################################### my $dbh = DBI->connect( DBI:mysql:SFIS:localhost, , , ) || die "Database connection not made: $DBI::errstr"; open ( TREINAMENTO, ">/root/BIS/Dados/BIS_Ataque_Analise/Neptune/ DS/NeptuneDSetCompleto.dat"); open ( TPOS, ">/root/BIS/Dados/BIS_Ataque_Analise/Neptune/ DS/TP_NeptuneDSet.dat"); open ( FPOS, ">/root/BIS/Dados/BIS_Ataque_Analise/Neptune/ DS/FP_NeptuneDSet.dat"); open ( FNEG, ">/root/BIS/Dados/BIS_Ataque_Analise/Neptune/ DS/FN_NeptuneDSet.dat"); open ( TNEG, ">/root/BIS/Dados/BIS_Ataque_Analise/Neptune/ DS/TN_NeptuneDSet.dat"); open ( RESUMO, ">/root/BIS/Dados/BIS_Ataque_Analise/Neptune/

A.2 Programas Auxiliares DS/ResumoNeptuneDSet.dat"); system ( "clear");

109

print "########################################################### \n"; print "# \n"; print "# NBIS \n"; print "# Naive Bayesian Inference System \n"; print "# \n"; print "# Modulo Detector de Ataques Neptune (Data Set) \n"; print "# Verso 1.0.1 \n"; print "# \n"; print "########################################################## \n"; print "\n"; ################################################################# # Limpando os Micro Fluxos ################################################################# $DeletaFluxosSQL = qq {Delete From Fluxos}; $DeletaFluxos = $dbh->prepare( $DeletaFluxosSQL ); $DeletaFluxos->execute(); ################################################################# # Pega o Menor e o Maior Tempo ################################################################# $MinTime = 0; $MaxTime = 0;

A.2 Programas Auxiliares $AuxTime = 0; $DeltaTime = 60; $FP = 0; $FN = 0; $TP = 0; $TN = 0; $TotalMin = 0; $TSessions = 0; $FNAtaque = 0;

110

my $sql = qq {select Min(Start_Time) as MinTime, Max(Start_Time) as MaxTime From DSBruto }; $sth = $dbh->prepare( $sql ); $sth->execute(); $sth->bind_columns( undef, \$MinTime, \$MaxTime ); $sth->fetch(); $AuxTime = $MinTime + $DeltaTime; while( $MinTime < $MaxTime ) { print "####################################################### \n"; print "Inicio da Analise para o Intervalo de Tempo [$MinTime,$AuxTime] \n"; print "\n"; ################################################################### # Inserindo os MicroFluxos no Intervalo de Tempo Analisado

A.2 Programas Auxiliares

111

################################################################### $CriaFluxosSQL = qq { Insert Into Fluxos Select SessionID, Session, host_a, host_b, port_a, port_b, Day, Month, Year, Hour, Minute, Second, Start_Time, total_packets_a2b, total_packets_b2a, resets_sent_a2b, resets_sent_b2a, ack_pkts_sent_a2b, ack_pkts_sent_b2a, pure_acks_sent_a2b, pure_acks_sent_b2a, sack_pkts_sent_a2b, sack_pkts_sent_b2a, dsack_pkts_sent_a2b, dsack_pkts_sent_b2a, max_sack_blks_ack_a2b, max_sack_blks_ack_b2a, unique_bytes_sent_a2b, unique_bytes_sent_b2a, actual_data_pkts_a2b, actual_data_pkts_b2a, actual_data_bytes_a2b, actual_data_bytes_b2a, rexmt_data_pkts_a2b, rexmt_data_pkts_b2a, rexmt_data_bytes_a2b, rexmt_data_bytes_b2a, zwnd_probe_pkts_a2b, zwnd_probe_pkts_b2a, zwnd_probe_bytes_a2b, zwnd_probe_bytes_b2a, outoforder_pkts_a2b, outoforder_pkts_b2a, pushed_data_pkts_a2b, pushed_data_pkts_b2a, syn_pkts_sent_a2b, n_pkts_sent_a2b, syn_pkts_sent_b2a, n_pkts_sent_b2a, req_1323_ws_ts_a2b, req_1323_ws_ts_b2a, adv_wind_scale_a2b, adv_wind_scale_b2a, req_sack_a2b, req_sack_b2a, sacks_sent_a2b, sacks_sent_b2a, urgent_data_pkts_a2b, urgent_data_pkts_b2a, urgent_data_bytes_a2b, urgent_data_bytes_b2a, mss_requested_a2b, mss_requested_b2a, max_segm_size_a2b, max_segm_size_b2a, min_segm_size_a2b, min_segm_size_b2a, avg_segm_size_a2b, avg_segm_size_b2a, max_win_adv_a2b, max_win_adv_b2a, min_win_adv_a2b, min_win_adv_b2a, zero_win_adv_a2b, zero_win_adv_b2a,

A.2 Programas Auxiliares avg_win_adv_a2b, avg_win_adv_b2a, initial_window_bytes_a2b, initial_window_bytes_b2a, initial_window_pkts_a2b, initial_window_pkts_b2a, ttl_stream_length_a2b, ttl_stream_length_b2a, missed_data_a2b, missed_data_b2a, truncated_data_a2b, truncated_data_b2a, truncated_packets_a2b, truncated_packets_b2a, data_xmit_time_a2b, data_xmit_time_b2a, idletime_max_a2b, idletime_max_b2a, hardware_dups_a2b, hardware_dups_b2a, throughput_a2b, throughput_b2a,

112

Status, AttackName, AttackClass From DSBruto Where Start_Time >= $MinTime And Start_Time < $AuxTime}; $CriaFluxos = $dbh->prepare( $CriaFluxosSQL ); $CriaFluxos->execute(); ################################################################### # Conta o Numero de Sessoes ################################################################### $NSessions = 0; $ChecaSessionsSQL = qq {select count(*) as NSessions From Fluxos Where Start_Time >= $MinTime And Start_Time < $AuxTime }; $ChecaSessions = $dbh->prepare( $ChecaSessionsSQL ); $ChecaSessions->execute(); $ChecaSessions->bind_columns( undef, \$NSessions ); $ChecaSessions->fetch(); if ( $NSessions > 0 ) {

A.2 Programas Auxiliares

113

################################################################### # Verica e existncia de Portsweep no intervalo de tempo ################################################################### $TemAtaque1MinSQL = qq {select count(*) as TemAtaque1Min From Fluxos Where Start_Time >= $MinTime And Start_Time < $AuxTime And AttackName = "neptune"}; $TemAtaque1Min = $dbh->prepare( $TemAtaque1MinSQL ); $TemAtaque1Min->execute(); $TemAtaque1Min->bind_columns( undef, \$TemAtaque1Min ); $TemAtaque1Min->fetch(); #################################################################### # Lista os SID nicos Presentes em Fluxos #################################################################### $ListaSIDSQL = qq {select Distinct Host_a as SID, Host_b as DID From Fluxos Where Start_Time >= $MinTime And Start_Time < $AuxTime}; $ListaSID = $dbh->prepare( $ListaSIDSQL ); $ListaSID->execute(); $ListaSID->bind_columns( undef, \$SID, \$DID ); while ($ListaSID->fetch()) { #################################################################### # Calculo Trafego Global em cinco Minutos

A.2 Programas Auxiliares

114

#################################################################### $TrafTotalSQL = qq {select count(*) As TxGlobal From Fluxos Where Start_Time >= $MinTime And Start_Time < $AuxTime And Host_a = \"$SID\"And Host_b = \"$DID\"}; $TrafTotal = $dbh->prepare( $TrafTotalSQL ); $TrafTotal->execute(); $TrafTotal->bind_columns( undef, \$TxGlobal ); $TrafTotal->fetch(); $ResetTotalSQL = qq { select sum(resets_sent_a2b + syn_pkts_sent_a2b + n_pkts_sent_a2b) as FSR_a, sum((resets_sent_a2b + syn_pkts_sent_a2b + n_pkts_sent_a2b)/(total_packets_a2b + total_packets_b2a)) as FSR_a2b, sum(resets_sent_b2a + syn_pkts_sent_b2a + n_pkts_sent_b2a) as FSR_b, sum((resets_sent_b2a + syn_pkts_sent_b2a + n_pkts_sent_b2a)/ (total_packets_a2b + total_packets_b2a)) as FSR_b2a, sum((total_packets_a2b + total_packets_b2a)) as BPP, sum((ack_pkts_sent_a2b)) as ACK_a2b, sum((ack_pkts_sent_b2a)) as ACK_b2a, sum((ack_pkts_sent_a2b + ack_pkts_sent_b2a)) as ACK From Fluxos Where Start_Time >= $MinTime And Start_Time < $AuxTime And Host_a = \"$SID\" And Host_b = \"$DID\"}; $ResetTotal = $dbh->prepare( $ResetTotalSQL );

A.2 Programas Auxiliares $ResetTotal->execute();

115

$ResetTotal->bind_columns( undef, \$FSR_a, \$FSR_b, \$FSR_a2b, \$FSR_b2a, \$BPP, \$ACK_a2b, \$ACK_b2a, \$ACK ); $ResetTotal->fetch(); $TemAtaqueSQL = qq {select count(*) as TemAtaque From Fluxos Where Host_a = \"$SID\"And Host_b = \"$DID\" And Start_Time >= $MinTime And Start_Time < $AuxTime And AttackName = "neptune"}; $TemAtaque = $dbh->prepare( $TemAtaqueSQL ); $TemAtaque->execute(); $TemAtaque->bind_columns( undef, \$TemAtaque ); $TemAtaque->fetch(); $TotalLocalSQL = qq { select SessionID, Session, Hour, Minute, Second, Day, Month, Year, Host_a, Port_a, Host_b, Port_b, Status, AttackName From Fluxos Where Host_a = \"$SID\"And Host_b = \"$DID\" And Start_Time >= $MinTime And Start_Time < $AuxTime}; $TotalLocal = $dbh->prepare( $TotalLocalSQL ); $TotalLocal->execute(); $TotalLocal->bind_columns( undef, \$SessionID, \$Session, \$Hour, \$Minute, \$Second, \$Day, \$Month, \$Year, \$Host_a, \$Port_a, \$Host_b, \$Port_b, \$Status, \$AttackName ); $TotalLocal->fetch(); if ( $TxGlobal > 0 )

A.2 Programas Auxiliares { $TSFR = $FSR_a2b + $FSR_b2a; $TXGBPP = $BPP/$TxGlobal; $MBPP = sprintf(%d,$TXGBPP);

116

open ( OUTPUT, ">/root/BIS/Dados/BIS_Ataque_Analise/Neptune/TS/Neptune.dat"); print "$TxGlobal $FSR_a $FSR_b $ACK_a2b $BPP $MBPP ($Status) $AttackName $SessionID $Day\/$Month\/$Year $Hour\:$Minute\:$Second $Host_a\:$Port_a $Host_b\:$Port_b\n"; if ( $TemAtaque > 0 ) { print TREINAMENTO "$TxGlobal $FSR_a $FSR_b $ACK_a2b $BPP $MBPP Ataque\n"; print OUTPUT "$TxGlobal $FSR_a $FSR_b $ACK_a2b $BPP $MBPP Ataque\n"; $RealAtaqueName = "neptune" } else { print TREINAMENTO "$TxGlobal $FSR_a $FSR_b $ACK_a2b $BPP $MBPP NAtaque\n"; print OUTPUT "$TxGlobal $FSR_a $FSR_b $ACK_a2b $BPP $MBPP NAtaque\n"; $RealAtaqueName = "Nao Ataque" } close OUTPUT; system ( "bcx -M -pConf -h /root/BIS/Dados/BIS_Ataque_Analise/Neptune/TS/Neptune.hdr

A.2 Programas Auxiliares /root/BIS/Dados/BIS_Ataque_Analise/Neptune/TS/Neptune.nbc /root/BIS/Dados/BIS_Ataque_Analise/Neptune/TS/Neptune.dat /root/BIS/Dados/BIS_Ataque_Analise/Neptune/TS/Neptune.out > /dev/null");

117

open ( INPUT, "/root/BIS/Dados/BIS_Ataque_Analise/Neptune/TS/Neptune.out"); $Linha = <INPUT>; while ( $Linha = <INPUT> ) { chomp ($Linha); ( $Lixo1, $Lixo2, $Lixo3, $Lixo4, $Lixo5, $Lixo6, $Deciso, $BC, $Conf) = split ( / /, $Linha); $Conf = $Conf * 100; $ListaReg = qq { select Host_a, Host_b, Port_a, Port_b, Session, SessionID, Day, Month, Year, Hour, Minute, Second, Status, AttackName From Fluxos Where Host_a = \"$SID\" And Host_b = \"$DID\"And Start_Time >= $MinTime And Start_Time < $AuxTime}; $ListaReg = $dbh->prepare( $ListaReg ); $ListaReg->execute(); $ListaReg->bind_columns ( undef, \$Host_a, \$Host_b, \$Port_a, \$Port_b, \$Session, \$SessionID, \$Day, \$Month, \$Year, \$Hour, \$Minute, \$Second, \$Status, \$AttackName); if ( $RealAtaqueName eq "neptune"and $BC eq "Ataque")

A.2 Programas Auxiliares { $FlagAtaque = 1; print "= [Neptune System [ $MinTime - $AuxTime ] ] ========== \n"; print TPOS "= [Neptune System [ $MinTime - $AuxTime ] ] ====== \n"; print TPOS "Darpa: $RealAtaqueName \n"; print "Darpa: $RealAtaqueName \n"; print TPOS "Bayes: $BC com Conana de $Conf%\n"; print "Bayes: $BC com Conana de $Conf%\n"; print TPOS "VC = $TxGlobal $FSR_a $FSR_b $ACK_a2b $BPP $MBPP \n"; print "VC = $TxGlobal $FSR_a $FSR_b $ACK_a2b $BPP $MBPP \n"; print TPOS "$TemAtaque Conexes Neptune\n"; print "$TemAtaque Conexes Neptune\n"; while ($ListaReg->fetch()) { print "$AttackName ataque na Sesso:$SessionID em $Day\/$Month\/$Year do $Host_a:$Port_a para $Host_b:$Port_b \n";

118

print TPOS "$AttackName Ataque na Sesso:$SessionID em $Day\/$Month\/$Year do $Host_a:$Port_a para $Host_b:$Port_b \n"; } print "================================================ \n"; print TPOS "============================================ \n"; } elsif ( $RealAtaqueName ne "neptune"and $BC eq "Ataque")

A.2 Programas Auxiliares { $FlagAtaque = 1; print "= [Neptune System [ $MinTime - $AuxTime ] ] =========== \n"; print FPOS "= [Neptune System [ $MinTime - $AuxTime ] ] ======= \n"; print FPOS "Darpa: $RealAtaqueName \n"; print "Darpa: $RealAtaqueName \n"; print FPOS "Bayes: $BC com Conana de $Conf%\n"; print "Bayes: $BC com Conana de $Conf%\n"; print FPOS "VC = $TxGlobal $FSR_a $FSR_b $ACK_a2b $BPP $MBPP \n"; print "VC = $TxGlobal $FSR_a $FSR_b $ACK_a2b $BPP $MBPP \n"; print FPOS "$TemAtaque Conexes Neptune \n"; print "$TemAtaque Conexes Neptune \n"; while ($ListaReg->fetch()) { print "$AttackName ataque na Sesso:$SessionID em $Day\/$Month\/$Year do $Host_a:$Port_a para $Host_b:$Port_b \n";

119

print FPOS "$AttackName Ataque na Sesso:$SessionID em $Day\/$Month\/$Year do $Host_a:$Port_a para $Host_b:$Port_b \n"; } print "=============================================== \n"; print FPOS "========================================== \n"; } elsif ( $RealAtaqueName eq "neptune"and $BC eq "NAtaque")

A.2 Programas Auxiliares { print "= [Neptune System [ $MinTime - $AuxTime ] ] =========== \n";

120

print FNEG "= [Neptune System [ $MinTime - $AuxTime ] ] =========== \n"; print FNEG "Darpa: $RealAtaqueName \n"; print "Darpa: $RealAtaqueName \n"; print FNEG "Bayes: $BC com Conana de $Conf%\n"; print "Bayes: $BC com Conana de $Conf%\n"; print FNEG "VC = $TxGlobal $FSR_a $FSR_b $ACK_a2b $BPP $MBPP \n"; print "Bayes: $BC com Conana de $Conf%\n"; print FNEG "$TemAtaque Conexes Neptune \n"; print "$TemAtaque Conexes Neptune \n"; while ($ListaReg->fetch()) { print "$AttackName ataque na Sesso:$SessionID em $Day\/$Month\/$Year do $Host_a:$Port_a para $Host_b:$Port_b \n"; print FNEG "$AttackName Ataque na Sesso:$SessionID em $Day\/$Month\/$Year do $Host_a:$Port_a para $Host_b:$Port_b \n"; } print "================================================ \n"; print FNEG "=========================================== \n"; } else {

A.2 Programas Auxiliares if ( $RealAtaqueName eq "Nao Ataque"and $BC eq "NAtaque") { print "= [Neptune System [ $MinTime - $AuxTime ] ] =========== \n";

121

print TNEG "= [Neptune System [ $MinTime - $AuxTime ] ] =========== \n"; print TNEG "Darpa: $RealAtaqueName \n"; print TNEG "Bayes: $BC com Conana de $Conf%\n"; print TNEG "VC = $TxGlobal $FSR_a $FSR_b $ACK_a2b $BPP $MBPP \n"; print TNEG "$TemAtaque Conexes Neptune \n"; while ($ListaReg->fetch()) { print "$AttackName ataque na Sesso:$SessionID em $Day\/$Month\/$Year do $Host_a:$Port_a para $Host_b:$Port_b \n"; print TNEG "$AttackName Ataque na Sesso:$SessionID em $Day\/$Month\/$Year do $Host_a:$Port_a para $Host_b:$Port_b \n"; } print "=================================================== \n"; print TNEG "============================================== \n"; } } } } } ###################################################################

A.2 Programas Auxiliares # Contabilizao dos ataques no intervalo de tempo

122

################################################################### print "TESTE: TemAtaque1Min=$TemAtaque1Min FlagAtaque=$FlagAtaque TSessions=$TSessions \n"; $TSessions = $TSessions + 1; if ( $TemAtaque1Min > 0 and $FlagAtaque > 0 ) { $TP = $TP + 1; print "TP=$TP \n"; } elsif ( $TemAtaque1Min < 1 and $FlagAtaque > 0 ) { $FP = $FP + 1; print "FP=$FP \n"; } elsif ( $TemAtaque1Min > 0 and $FlagAtaque < 1 ) { $FN = $FN + 1; print "FN=$FN \n"; } elsif ( $TemAtaque1Min < 1 and $FlagAtaque < 1 ) { $TN = $TN + 1;

A.2 Programas Auxiliares print "TN=$TN \n"; } $FlagAtaque = 0; $TemAtaque1Min = 0; }

123

################################################################## # Limpando os Micro Fluxos ################################################################## $DeletaFluxosSQL = qq {Delete From Fluxos }; $DeletaFluxos = $dbh->prepare( $DeletaFluxosSQL ); $DeletaFluxos->execute(); ################################################################## # Atualizando os Limites de Tempo ################################################################## $TotalMin = $TotalMin + 1; $MinTime = $AuxTime; $AuxTime = $MinTime + 60; } ################################################################## # Resumo das Informaes ################################################################## $TAtaques = $TP + $FN; if ( $TP < 1 )

A.2 Programas Auxiliares { $PAcerto = 0; $PTP = 0; } else { $PAcerto = ($TP * 100)/$TAtaques; $PTP = $TP / $TSessions; } if ( $FP < 1 ) { $PFP = 0; } else { $PFP = $FP / $TSessions; } if ( $FN < 1 ) { $PFN = 0; } else {

124

A.2 Programas Auxiliares $PFN = $FN / $TSessions; } if ( $TN < 1 ) { $PTN = 0; } else { $PTN = $TN / $TSessions; } if ( $TN < 1 and $TP < 1 ) { $QA = 0; } else { $QA = (($TN + $TP)*100)/$TSessions; } if ( $FP < 1 and $FN < 1 ) { $QE = 0; } else

125

A.2 Programas Auxiliares { $QE = (($FP + $FN)*100)/$TSessions; } if ( $PAcerto < 1 ) { $QR = 0; } else { $QR = ($PAcerto*100)/$TSessions; } print RESUMO "#############################################\n"; print RESUMO "# BIS - Bayesian Inference System \n"; print RESUMO "# Modulo Contador da Qualidade dos Alarmes \n"; print RESUMO "# Verso 1.0.0 \n"; print RESUMO "# \n"; print RESUMO "############################################\n"; print RESUMO "\n"; print RESUMO "############# Nmeros Gerais #################\n"; print RESUMO "Numero Total de Intervalos = $TotalMin \n"; print RESUMO "Numero Total de Intervalos Analisados = $TSessions \n"; print RESUMO "Numero Total de Ataques = $TAtaques \n"; print RESUMO "Perc. de Acerto Referencial = $PAcerto \n";

126

A.2 Programas Auxiliares print RESUMO "\n"; print RESUMO "######## Resumo do Processo #################\n"; print RESUMO "FP = $FP ($PFP) \n"; print RESUMO "FN = $FN ($PFN) \n"; print RESUMO "TP = $TP ($PTP) \n"; print RESUMO "TN = $TN ($PTN) \n"; print RESUMO "\n"; print RESUMO "########### Avaliao do Processo ###############\n"; print RESUMO "Qualidade de Acerto = $QA \n"; print RESUMO "Qualidade de Erro = $QE \n"; print RESUMO "Qualidade de Ref = $QR \n"; print RESUMO "\n"; print RESUMO "##############################################\n"; close TREINAMENTO; close TPOS; close FPOS; close FNEG; exit;

127

Apndice B Apndice II
Foi realizada uma modicao no programa BCI para gerar sadas dos resultados parciais da inferncia Nave Bayesiana. Apresentaremos a seguir a sada com os resultados para cada tipo de ataque. As seguintes designaes devem ser observadas: Classe0 => No Ataque. Classe1 => Ataque. Classe Provvel => Resultado do classicador Nave Bayesiano. Classe Denida => Marcao do DARPA

B.1 Ataque Guest


DARPA = 0 e Bayes = 0 => RN ou TN Varivel de Entrada cl1 (Vin): 1 Media (u) da cl1: 49.4949 Distancia p/ a Media (Vin - u): -48.4949 Varincia (o2) cl1: 8.3454 Calc. Epsilon (exp-(Vin-u)2/s): 6.4172e-62

B.1 Ataque Guest


Calc. sqrt (sqrt 2PI*o2): 7.24125 Calc. Likelihood (Epsilon/sqrt) da cl1: 8.862e-63 Varivel de Entrada cl0 (Vin): 1 Media (u) da cl0: 2.52918 Distancia p/ a Media (Vin - u): -1.52918 Varincia (o2) cl0: 48.8221 Calc. Epsilon (exp-(Vin-u)2/s): 0.976336 Calc. sqrt (sqrt 2PI*o2): 17.5145 Calc. Likelihood (Epsilon/sqrt) da cl0: 0.0557444 LLH1: 8.862e-63 LLH0: 0.0557444 Prob. a Prior1 (igual a Prob. Poster anterior): 0.371612 Prob. a Prior0 (igual a Prob. Poster anterior): 0.628388 Calc. da Prob. a Poster1 (llh1*prior1): 3.29322e-63 Calc. da Prob. a Poster0 (llh0*prior0): 0.0350291 Soma das Prob. a Poster (poster0+poster1): 0.0350291 Varivel de Entrada cl1 (Vin): 0 Media (u) da cl1: 94.4434 Distancia p/ a Media (Vin - u): -94.4434 Varincia (o2) cl1: 8.21882 Calc. Epsilon (exp-(Vin-u)2/s): 2.18176e-236 Calc. sqrt (sqrt 2PI*o2): 7.18612 Calc. Likelihood (Epsilon/sqrt) da cl1: 3.03607e-237

129

B.1 Ataque Guest


Varivel de Entrada cl0 (Vin): 0 Media (u) da cl0: 0.111981 Distancia p/ a Media (Vin - u): -0.111981 Varincia (o2) cl0: 1.31262 Calc. Epsilon (exp-(Vin-u)2/s): 0.995235 Calc. sqrt (sqrt 2PI*o2): 2.87183 Calc. Likelihood (Epsilon/sqrt) da cl0: 0.34655 LLH1: 3.03607e-237 LLH0: 0.34655 Prob. a Prior1 (igual a Prob. Poster anterior): 3.29322e-63 Prob. a Prior0 (igual a Prob. Poster anterior): 0.0350291 Calc. da Prob. a Poster1 (llh1*prior1): 9.99845e-300 Calc. da Prob. a Poster0 (llh0*prior0): 0.0121394 Soma das Prob. a Poster (poster0+poster1): 0.0121394 Prob. a Poster da cl0: 0.0121394 Prob. a Poster da cl1: 9.99845e-300 Prob. a Poster Final (cl0 se cl0>cl1/cl1 se cl1>cl0): 0.0121394 Soma das Prob. a Poster (poster0+poster1): 0.0121394 Conana: 1 Classe Provvel: 0 Classe Denida: 0

130

B.2 Ataque Neptune

131

B.2 Ataque Neptune


DARPA = 0 e Bayes = 0 => RN ou TN Varivel de Entrada cl1 (Vin): 23 Media (u) da cl1: 1.12037 Distancia p/ a Media (Vin - u): 21.8796 Varincia (o2) cl1: 0.105881 Calc. Epsilon (exp-(Vin-u)2/s): 0 Calc. sqrt (sqrt 2PI*o2): 0.815641 Calc. Likelihood (Epsilon/sqrt) da cl1: 0 Varivel de Entrada cl0 (Vin): 23 Media (u) da cl0: 61.1082 Distancia p/ a Media (Vin - u): -38.1082 Varincia (o2) cl0: 1.08983e+06 Calc. Epsilon (exp-(Vin-u)2/s): 0.999334 Calc. sqrt (sqrt 2PI*o2): 2616.79 Calc. Likelihood (Epsilon/sqrt) da cl0: 0.000381893 LLH1: 0 LLH0: 0.000381893 Prob. a Prior1 (igual a Prob. Poster anterior): 0.00169551 Prob. a Prior0 (igual a Prob. Poster anterior): 0.998304 Calc. da Prob. a Poster1 (llh1*prior1): 0 Calc. da Prob. a Poster0 (llh0*prior0): 0.000381245

B.2 Ataque Neptune


Soma das Prob. a Poster (poster0+poster1): 0.000381245 Varivel de Entrada cl1 (Vin): 46 Media (u) da cl1: 4018.22 Distancia p/ a Media (Vin - u): -3972.22 Varincia (o2) cl1: 5.73788e+06 Calc. Epsilon (exp-(Vin-u)2/s): 0.252854 Calc. sqrt (sqrt 2PI*o2): 6004.35 Calc. Likelihood (Epsilon/sqrt) da cl1: 4.21118e-05 Varivel de Entrada cl0 (Vin): 46 Media (u) da cl0: 103.485 Distancia p/ a Media (Vin - u): -57.485 Varincia (o2) cl0: 1.39199e+06 Calc. Epsilon (exp-(Vin-u)2/s): 0.998814 Calc. sqrt (sqrt 2PI*o2): 2957.39 Calc. Likelihood (Epsilon/sqrt) da cl0: 0.000337735 LLH1: 4.21118e-05 LLH0: 0.000337735 Prob. a Prior1 (igual a Prob. Poster anterior): 0 Prob. a Prior0 (igual a Prob. Poster anterior): 0.000381245 Calc. da Prob. a Poster1 (llh1*prior1): 0 Calc. da Prob. a Poster0 (llh0*prior0): 1.2876e-07 Soma das Prob. a Poster (poster0+poster1): 1.2876e-07 Varivel de Entrada cl1 (Vin): 22

132

B.2 Ataque Neptune


Media (u) da cl1: 0.0925926 Distancia p/ a Media (Vin - u): 21.9074 Varincia (o2) cl1: 3.69513 Calc. Epsilon (exp-(Vin-u)2/s): 6.2556e-29 Calc. sqrt (sqrt 2PI*o2): 4.81842 Calc. Likelihood (Epsilon/sqrt) da cl1: 1.29827e-29 Varivel de Entrada cl0 (Vin): 22 Media (u) da cl0: 53.0078 Distancia p/ a Media (Vin - u): -31.0078 Varincia (o2) cl0: 441635 Calc. Epsilon (exp-(Vin-u)2/s): 0.998912 Calc. sqrt (sqrt 2PI*o2): 1665.8 Calc. Likelihood (Epsilon/sqrt) da cl0: 0.000599661 LLH1: 1.29827e-29 LLH0: 0.000599661 Prob. a Prior1 (igual a Prob. Poster anterior): 0 Prob. a Prior0 (igual a Prob. Poster anterior): 1.2876e-07 Calc. da Prob. a Poster1 (llh1*prior1): 0 Calc. da Prob. a Poster0 (llh0*prior0): 7.72123e-11 Soma das Prob. a Poster (poster0+poster1): 7.72123e-11 Varivel de Entrada cl1 (Vin): 0.17 Media (u) da cl1: 3298.91 Distancia p/ a Media (Vin - u): -3298.74

133

B.2 Ataque Neptune


Varincia (o2) cl1: 3.37976e+06 Calc. Epsilon (exp-(Vin-u)2/s): 0.199921 Calc. sqrt (sqrt 2PI*o2): 4608.22 Calc. Likelihood (Epsilon/sqrt) da cl1: 4.33837e-05 Varivel de Entrada cl0 (Vin): 0.17 Media (u) da cl0: 0.705143 Distancia p/ a Media (Vin - u): -0.535143 Varincia (o2) cl0: 181.526 Calc. Epsilon (exp-(Vin-u)2/s): 0.999212 Calc. sqrt (sqrt 2PI*o2): 33.7722 Calc. Likelihood (Epsilon/sqrt) da cl0: 0.0295868 LLH1: 4.33837e-05 LLH0: 0.0295868 Prob. a Prior1 (igual a Prob. Poster anterior): 0 Prob. a Prior0 (igual a Prob. Poster anterior): 7.72123e-11 Calc. da Prob. a Poster1 (llh1*prior1): 0 Calc. da Prob. a Poster0 (llh0*prior0): 2.28447e-12 Soma das Prob. a Poster (poster0+poster1): 2.28447e-12 Varivel de Entrada cl1 (Vin): 4 Media (u) da cl1: 3544.55 Distancia p/ a Media (Vin - u): -3540.55 Varincia (o2) cl1: 3.26797e+06 Calc. Epsilon (exp-(Vin-u)2/s): 0.14691

134

B.2 Ataque Neptune


Calc. sqrt (sqrt 2PI*o2): 4531.36 Calc. Likelihood (Epsilon/sqrt) da cl1: 3.24208e-05 Varivel de Entrada cl0 (Vin): 4 Media (u) da cl0: 6.44402 Distancia p/ a Media (Vin - u): -2.44402 Varincia (o2) cl0: 826.722 Calc. Epsilon (exp-(Vin-u)2/s): 0.996394 Calc. sqrt (sqrt 2PI*o2): 72.0725 Calc. Likelihood (Epsilon/sqrt) da cl0: 0.0138249 LLH1: 3.24208e-05 LLH0: 0.0138249 Prob. a Prior1 (igual a Prob. Poster anterior): 0 Prob. a Prior0 (igual a Prob. Poster anterior): 2.28447e-12 Calc. da Prob. a Poster1 (llh1*prior1): 0 Calc. da Prob. a Poster0 (llh0*prior0): 3.15825e-14 Soma das Prob. a Poster (poster0+poster1): 3.15825e-14 Varivel de Entrada cl1 (Vin): 2 Media (u) da cl1: 3533.9 Distancia p/ a Media (Vin - u): -3531.9 Varincia (o2) cl1: 3.25894e+06 Calc. Epsilon (exp-(Vin-u)2/s): 0.14751 Calc. sqrt (sqrt 2PI*o2): 4525.1 Calc. Likelihood (Epsilon/sqrt) da cl1: 3.25981e-05

135

B.2 Ataque Neptune


Varivel de Entrada cl0 (Vin): 2 Media (u) da cl0: 3.42846 Distancia p/ a Media (Vin - u): -1.42846 Varincia (o2) cl0: 660.706 Calc. Epsilon (exp-(Vin-u)2/s): 0.998457 Calc. sqrt (sqrt 2PI*o2): 64.4309 Calc. Likelihood (Epsilon/sqrt) da cl0: 0.0154966 LLH1: 3.25981e-05 LLH0: 0.0154966 Prob. a Prior1 (igual a Prob. Poster anterior): 0 Prob. a Prior0 (igual a Prob. Poster anterior): 3.15825e-14 Calc. da Prob. a Poster1 (llh1*prior1): 0 Calc. da Prob. a Poster0 (llh0*prior0): 4.89419e-16 Soma das Prob. a Poster (poster0+poster1): 4.89419e-16 Prob. a Poster da cl0: 4.89419e-16 Prob. a Poster da cl1: 0 Prob. a Poster Final (cl0 se cl0>cl1/cl1 se cl1>cl0): 4.89419e-16 Soma das Prob. a Poster (poster0+poster1): 4.89419e-16 Conana: 1 Classe Provvel: 0 Classe Denida: 0

136

B.3 Ataque Portsweep

137

B.3 Ataque Portsweep


DARPA = 0 e Bayes = 0 => RN ou TN Varivel de Entrada cl1 (Vin): 32 Media (u) da cl1: 1.91917 Distancia p/ a Media (Vin - u): 30.0808 Varincia (o2) cl1: 0.0743002 Calc. Epsilon (exp-(Vin-u)2/s): 0 Calc. sqrt (sqrt 2PI*o2): 0.683258 Calc. Likelihood (Epsilon/sqrt) da cl1: 0 Varivel de Entrada cl0 (Vin): 32 Media (u) da cl0: 56.2387 Distancia p/ a Media (Vin - u): -24.2387 Varincia (o2) cl0: 1.15124e+06 Calc. Epsilon (exp-(Vin-u)2/s): 0.999745 Calc. sqrt (sqrt 2PI*o2): 2689.51 Calc. Likelihood (Epsilon/sqrt) da cl0: 0.00037172 LLH1: 0 LLH0: 0.00037172 Prob. a Prior1 (igual a Prob. Poster anterior): 0.00502424 Prob. a Prior0 (igual a Prob. Poster anterior): 0.994976 Calc. da Prob. a Poster1 (llh1*prior1): 0 Calc. da Prob. a Poster0 (llh0*prior0): 0.000369853

B.3 Ataque Portsweep


Soma das Prob. a Poster (poster0+poster1): 0.000369853 Varivel de Entrada cl1 (Vin): 1 Media (u) da cl1: 14.3638 Distancia p/ a Media (Vin - u): -13.3638 Varincia (o2) cl1: 1964.12 Calc. Epsilon (exp-(Vin-u)2/s): 0.955555 Calc. sqrt (sqrt 2PI*o2): 111.09 Calc. Likelihood (Epsilon/sqrt) da cl1: 0.00860165 Varivel de Entrada cl0 (Vin): 1 Media (u) da cl0: 1 Distancia p/ a Media (Vin - u): 0 Varincia (o2) cl0: 0 Calc. Epsilon (exp-(Vin-u)2/s): 1 Calc. sqrt (sqrt 2PI*o2): 1.77245e-06 Calc. Likelihood (Epsilon/sqrt) da cl0: 564190 LLH1: 0.00860165 LLH0: 564190 Prob. a Prior1 (igual a Prob. Poster anterior): 0 Prob. a Prior0 (igual a Prob. Poster anterior): 0.000369853 Calc. da Prob. a Poster1 (llh1*prior1): 0 Calc. da Prob. a Poster0 (llh0*prior0): 208.667 Soma das Prob. a Poster (poster0+poster1): 208.667 Prob. a Poster da cl0: 208.667

138

B.3 Ataque Portsweep


Prob. a Poster da cl1: 0 Prob. a Poster Final (cl0 se cl0>cl1/cl1 se cl1>cl0): 208.667 Soma das Prob. a Poster (poster0+poster1): 208.667 Conana: 1 Classe Provvel: 0 Classe Denida: 0

139

You might also like