Professional Documents
Culture Documents
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
Aprovada por:
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
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.)
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.)
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4
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
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
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
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
4.9
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.
160 140 120 100 80 60 40 20 0 1995 1996 1997 1998 1999 Ano 2000 2001 2002 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.
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.
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
Ativo
Passivo
Pacote de Rede
Log de Eventos
Anlise de Estado
Tempo Real
A Posteriori
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-
10
tivamente melhorados com a utilizao de mtodos de inteligncia articial (IA), sendo estes aplicados na reduo e classicao de dados.
11
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.
13
14
Exemplos de sistemas que utilizam essa abordagem so: STAT, USTAT e CP-Net (Colored Petric-Net).
15
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.
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].
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.
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).
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:
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 )
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].
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.
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)
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:
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:
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
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 .
28
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
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.
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.
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
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
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.
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.
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.
36
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.
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
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
41
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.
42
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.
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%
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.
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.
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.
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%
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.
48
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).
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
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
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.
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
53
Figura 4.16: Mdia de pacotes por conexo (MBPP) em um seguimento da base de treinamento
54
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%
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.
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.
57
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.
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.
59
Figura 4.23: Detalhamento da mdia de pacotes por conexo em 5 minutos (MBPP) em um seguimento da base de treinamento
Figura 4.25: Viso da Figura 4.24 com intervalo maior de tempo dentro um mesmo intervalo de tempo (chunk)
61
modelo probabilstico de inferncia Bayesiana usando o classicador Nave Bayes para a classicao e deteco dos ataques.
1. Mdulo de Carga de Dados 2. Mdulo de Treinamento 3. Mdulo Classicador 4. Mdulo de Sada do Sistema
62
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-
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-
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
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.
65
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
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.
67
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).
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).
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.
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.
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.
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.
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.
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.
75
77
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.
78
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
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%
80
Ataque
No Ataque
Figura 6.5: Representao grca dos pontos do conjunto de dados de teste em relao s classes.
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.
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-
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
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.
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%.
85
Figura 6.15: Comportamento do vetor de caracterstica BPP em toda a base de teste com detalhamento do ataque.
Figura 6.17: Comportamento do vetor de caracterstica MBPP em toda a base de teste com detalhamento do ataque.
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%
Ataque
No Ataque
Figura 6.18: Representao grca dos pontos do conjunto de dados de teste em relao s classes.
87
Figura 6.20: Comportamento do vetor de caracterstica SDP em toda a base de teste com detalhamento do ataque.
88
Figura 6.21: Comportamento do vetor de caracterstica SDP em toda a base de teste com detalhamento do ataque.
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
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%.
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
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 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
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
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
sion Detection. In Proceedings of the 17th National Computer Security Conference (1994), pp. 1121. [14] T ENG , H. S., C HEN , K.,
E
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
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.
100
da intruso. Congresso de Cincias da Computao e Sistemas da Informao da Regio Sul (2004). [19] C ROSBIE , M.,
E
mous agents. In Proc. 18th NIST-NCSC National Information Systems Security Conference (1995), pp. 549558. [20] L EE , W., S TOLFO , S. J.,
E
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
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
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
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
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
using bayes estimators. In the 1st SIAM International Conference on Data Mining (April de 2001).
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
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
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
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
[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 -
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
OReilly & Associates, California, 1996. [47] CERT. Cert advisory ca-96.21, September de 1996. [48] CAI, W.,
E
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
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
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 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 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.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
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/
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
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 ) {
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
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 );
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
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"; } } } } } ###################################################################
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;
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
129
130
131
132
133
134
135
136
137
138
139