estudo de modelos bioinspirados para auxiliar na detecção ... · anomalias em redes de...

40
MARCOS VINICIUS DA SILVA ESTUDO DE MODELOS BIOINSPIRADOS PARA AUXILIAR NA DETECÇÃO DE ANOMALIAS EM REDES DE COMPUTADORES. LONDRINA - PR 2017

Upload: others

Post on 08-Jul-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

MARCOS VINICIUS DA SILVA

ESTUDO DE MODELOS BIOINSPIRADOS PARA AUXILIAR

NA DETECÇÃO DE ANOMALIAS EM REDES DE

COMPUTADORES.

LONDRINA - PR

2017

MARCOS VINICIUS DA SILVA

ESTUDO DE MODELOS BIOINSPIRADOS PARA AUXILIAR

NA DETECÇÃO DE ANOMALIAS EM REDES DE

COMPUTADORES.

Trabalho de Conclusão de Curso apresentado

ao Curso de Bacharelado em Ciência da

Computação do Departamento de Computação

da Universidade Estadual de Londrina, como

requisito parcial para a obtenção do título de

Bacharel em Ciência da Computação.

Orientador: Prof. Dr. Mario Lemes Proença Jr.

LONDRINA - PR

2017

MARCOS VINICIUS DA SILVA

ESTUDO DE MODELOS BIOINSPIRADOS PARA AUXILIAR

NA DETECÇÃO DE ANOMALIAS EM REDES DE

COMPUTADORES.

Trabalho de Conclusão de Curso apresentado ao

Curso de Bacharelado em Ciência da

Computação do Departamento de Computação da

Universidade Estadual de Londrina, como

requisito parcial para a obtenção do título de

Bacharel em Ciência da Computação.

BANCA EXAMINADORA

____________________________________

Prof. Dr. Nome do Orientador

Universidade Estadual de Londrina

____________________________________

Prof(a). Dr(a). Segundo Membro da Banca

Universidade Segundo Membro da Banca

____________________________________

Prof. Dr. Terceiro Membro da Banca

Universidade Terceiro Membro da Banca

____________________________________

Prof. Dr. Quarto Membro da Banca

Universidade Quarto Membro da Banca

Londrina-PR, _____de ___________de 2017.

Este trabalho é dedicado às crianças adultas que,

quando pequenas, sonharam em se tornar cientistas.

AGRADECIMENTOS

Os agradecimentos principais são direcionados à Gerald Weber, Miguel

Frasson, Leslie H. Watter, Bruno Parente Lima, Flávio de Vasconcellos Corrêa, Otavio Real

Sal- vador, Renato Machnievscz1 e todos aqueles que contribuíram para que a produção de

trabalhos acadêmicos conforme as normas ABNT com L ATEX fosse possível.

Agradecimentos especiais são direcionados ao Centro de Pesquisa em

Arquitetura da Informação2 da Universidade de Brasília (CPAI), ao grupo de usuários latex-

br3 e aos novos voluntários do grupo abnTEX24 que contribuíram e que ainda contribuirão

para a evolução do abnTEX2.

“Não vos amoldeis às estruturas deste mundo,

mas transformai-vos pela renovação da mente,

a fim de distinguir qual é a vontade de Deus: o

que é bom, o que Lhe é agradável, o que é

perfeito. (Bíblia Sagrada, Romanos 12, 2)

SILVA, M. V. Estudo de Modelos Bioinspirados para Auxiliar na Detecção de

Anomalias em Redes de Computadores.. 40p. Trabalho de Conclusão de Curso

(Bacharelado em Ciência da Computação) – Universidade Estadual de Londrina, Londrina-

PR, 2014.

RESUMO

Por ter milhões de ataques acontecendo diariamente às inúmeras redes de computadores, tais

ataques que podem prejudicar seriamente pessoas e empresas, esse trabalho visa fornecer

aplicações de modelos para detecção de anomalias em redes de computadores utilizando

modelos de Algoritmos Bioinspirados, com o intuito de auxiliar o administrador da rede na

identificação dos ataques.

Palavras-chave: Word 2013. Template ABNT-DC-UEL. Editoração de texto.

SILVA, M. V. Study of Bioinspired Models to Assist in the Detection of Anomalies in

Computer Networks.. 40p. Final Project (Bachelor of Science in Computer Science) – State

University of Londrina, Londrina-PR, 2014.

ABSTRACT

Millions of cybernetic attacks happen to computer networks on a daily basis. These attacks

may be seriously harmful to individuals and companies; Thus, this paper aims to provide

applications of network anomaly detection models with bioinspired algorithms and,

consequently, support network administrators on the identification of attacks.

Keywords: Word 2013, ABNT-DC-UEL template, Text editoration.

LISTA DE ILUSTRAÇÕES

Figura 1 - Árovere sintática representando o polinômio (4*10) + 5 ........................................ 31

LISTA DE TABELAS

LISTA DE ABREVIATURAS E SIGLAS

ABNT Associação Brasileira de Normas Técnicas

BNDES Banco Nacional de Desenvolvimento Econômico e Social

IBGE Instituto Brasileiro de Geografia e Estatística

IBICT Instituto Brasileiro de Informação em Ciência e Tecnologia

NBR Norma Brasileira

SUMÁRIO

1 INTRODUÇÃO .......................................................................................................... 23

2 FUNDAMENTAÇÃO TEÓRICA E ESTADO DA ARTE ..................................... 26

2.1 Computação Bioinspirada e Computação Evolucionária ....................................... 26

2.1.1 Algoritmos Genéticos .........................................................................................................27

2.1.1.1 Indivíduo.......................................................................................................................................... 27

2.1.1.2 População ........................................................................................................................................ 28

2.1.1.3 Função Objetivo (fitness) ................................................................................................................. 28

2.1.1.4 Operador de Seleção ........................................................................................................................ 29

2.1.1.5 Pressão Seletiva ............................................................................................................................... 29

2.1.1.6 Operador de Crossover .................................................................................................................... 29

2.1.1.7 Elitismo............................................................................................................................................ 30

2.1.1.8 Mutação ........................................................................................................................................... 30

2.1.2 Programação Genética ........................................................................................................30

2.1.2.1 Árvore Sintática ............................................................................................................................... 31

2.2 Sistemas de Detecção de Intrusão .......................................................................... 32

2.2.1 Detecção de Anomalias em Redes de Computadores ........................................................32

REFERÊNCIAS ..................................................................................................................... 34

23

1 INTRODUÇÃO

A Internet nos proporcionou facilidade e eficiência para se comunicar

num âmbito global, onde informações trafegam pela rede constantemente. Transações

bancárias, armazenamento de dados de grandes empresas, e manipulação de

informações pessoais, são só alguns exemplos, dentre várias ações que podem ser feitas

utilizando a grande rede global que chamamos de Internet. E com incontáveis serviços

oferecidos pela rede de computadores, seu uso torna-se uma parte importante do nosso

cotidiano, acarretando em um sucessivo aumento na quantidade de dispositivos

conectados a mesma.

No entanto, com o tráfego de dados fluindo em larga escala, ataques

cibernéticos aos usuários da rede tornaram-se frequentes. Ataques como negação de

serviço (Denial-of-Service, DOS), espionagem, Spoofing e intrusão podem comprometer

drasticamente os sistemas e dispositivos conectados na rede, além de ocasionar

significativas perdas de dados [15], [16].

E com a possibilidade de ocorrer ataques na rede, se faz necessário e

imprescindível à garantia da integridade e confiabilidade das informações que nela são

utilizadas [14], [15], [19]. Sendo assim, uma maneira de auxiliar na proteção dos

sistemas de TI que são utilizados nas redes, são empregados sistemas de Detecção de

Intrusão (Intrusion Detection Systems, IDS).

Sistemas de detecção de intrusão se destinam a auxiliar na segurança

de redes de computadores. Através do monitoramento das atividades realizadas na rede,

os sistemas de detecção de intrusão conseguem determinar se a mesma está ou não

sendo alvo de ataques ou invasões. Os IDS’s são classificados em dois tipos, os

baseados em assinatura, e os baseados em detecção de anomalias [17].

A categoria de IDS’s que são baseados em assinatura exige um

armazenamento dos ataques já conhecidos (assinatura de ataques) para que possam

reconhecer uma intrusão quando a rede estiver sendo atacada. O problema deste tipo de

IDS, é que vão surgindo novos tipos de ataques a todo o momento, e isso requer uma

constante atualização em sua base de conhecimento de ataques [15].

Já a outra categoria de IDS baseada em detecção de anomalias, cria

um perfil de comportamento normal da rede e quando desvios de comportamento são

notados no tráfego, é emitido um alerta avisando sobre as atividades anômalas

encontradas [15], [18], [19].

Diversas técnicas são aplicadas no desenvolvimento dos IDS’s, e uma

das técnicas que vem sendo muito bem aproveitada para tal objetivo, é o uso de

algoritmos bioinspirados. Inspirados nos seres encontrados na natureza, os algoritmos

bioinspirados são eficazes para resolver diversos problemas que não são resolvíveis pela

computação tradicional.

No presente trabalho, é estudado o uso de Algoritmos Genéticos e

Programação Genética no auxilio de detecção de anomalias em redes de computadores.

Ambas heurísticas citadas acima fazem parte de uma área de estudo dos algoritmos

bioinspirados, que é a computação evolutiva, na qual se baseia na teoria da evolução das

espécies, de Charles Darwin [2].

25

2 FUNDAMENTAÇÃO TEÓRICA E ESTADO DA ARTE

Neste capítulo serão apresentados os conceitos iniciais necessários

para o entendimento do problema abordado e as soluções propostas por trabalhos

relacionados.

2.1 Computação Bioinspirada e Computação Evolucionária

Inúmeros problemas computacionais que não são solucionáveis por

técnicas clássicas da computação, podem ser resolvidos ao se aplicar conceitos baseados

em características encontradas na natureza [1].

Fenômenos como a teoria da evolução, trabalho coletivo, sistema

imunológico e redes neurais são alguns exemplos de características provenientes da

natureza, que podem ser aplicadas computacionalmente, através da Computação

Bioinspirada [1].

Uma das particularidades naturais que é muito bem aproveitada pela

computação, é a evolução dos seres-vivos, inspirada na teoria da seleção natural

(Charles Darwin 1859) [2]. Computação Evolucionária é uma ramificação da

Computação Bioinspirada, onde o conceito da evolução dos seres-vivos é aplicado [2].

Segundo Darwin, os organismos que melhor se adaptam ao meio em

que vivem, têm melhores chances de sobreviver, e assim, repassar suas características

genéticas para gerações subsequentes [3].

Assim como na evolução natural, os algoritmos baseados em

computação evolucionária funcionam da mesma forma. Á partir da criação de uma

população inicial, cada indivíduo da população é submetido a uma função avaliadora

(função fitness), e somente os indivíduos que obtiverem os melhores resultados serão

selecionados para transpassar suas informações genéticas aos membros da próxima

geração [2].

No presente trabalho, serão estudados dois modelos evolutivos:

Algoritmo Genético (Genetic algotithm, GA) e Programação Genética (Genetic

program, GP), que são as duas principais frentes de algoritmos evolucionários [2], [4].

27

2.1.1 Algoritmos Genéticos

Existem diversos problemas científicos, como análise do mercado

financeiro, busca e otimização, aprendizado de máquinas, problemas de engenharia, etc.

que requerem um excessivo custo computacional, o que inviabiliza o uso de alguns tipos

de algoritmos para se chegar a uma solução. E muitos desses problemas podem ser

solucionados de maneiras menos dispendiosa, com a aplicação de algoritmos genéticos

[4], [8].

Apresentado por John Holland, no livro “Adaptation in Natural and

Artificial System”, em 1975, Algoritmo Genético é um modelo probabilístico derivado

da computação evolucionaria [4], [5].

Por ser um modelo evolutivo, os algoritmos genéticos seguem a

abstração Darwinista da teoria da evolução. Onde de maneira análoga ao natural, é

aplicado artificialmente o conceito de adaptabilidade do seres-vivos com relação ao

meio em que vivem.

Segundo Mitchell [4], um simples algoritmo genético funciona da

seguinte maneira:

1. Escolhe-se de maneira aleatória um conjunto de cromossomos

(candidatos à solução do problema) para ser a população inicial.

2. Calcula-se o fitness (conhecida também como função objetivo) de

cada cromossomo da população.

3. Operadores de Seleção, Crossover e Mutação:

a) Seleciona um par de cromossomos da população de acordo

com os cromossomos que obtiverem os melhores fitness.

b) Faça o crossover dos pais, á partir de um ponto aleatório, para

gerar dois filhos. Caso não dê certo o crossover, os filhos serão

cópias idênticas dos pais.

c) Faça a mutação nos genes dos dois cromossomos filhos,

gerados após o crossover, e insira os cromossomos filhos na

nova população.

4. Faça da nova população a população atual.

5. Vá ao passo 2.

2.1.1.1 Indivíduo

Tipicamente chamado de cromossomo, um indivíduo representa uma

possível solução do problema a ser resolvido. Cada indivíduo é formado por uma sequencia

de bits, e todo processo realizado por um algoritmo genético, acontece através da manipulação

desses bits (genes) dos indivíduos.

A maneira com que um gene é representado varia conforme o problema,

sendo assim, um gene pode ser representado por 0 ou 1, números reais, caracteres, ou até

mesmo por árvores que retratam o código de um programa [7].

2.1.1.2 População

Uma população é composta por um conjunto distinto de indivíduos, e é

modificada a cada geração [7]. A população inicial é formada por indivíduos gerados

aleatoriamente, porém, em determinados problemas, pode ser que com essa maneira de gerar

a população inicial, não de bons resultados.

Em cada geração, uma quantidade “n” de cromossomos mais aptos a

resolver o problema é selecionada (seleção), e á partir desses “n” cromossomos, são gerados

(crossover) novos indivíduos. Posteriormente, são retirados alguns cromossomos da

população atual, e inseridos os novos indivíduos [10]. Formando assim uma nova população.

2.1.1.3 Função Objetivo (fitness)

Um indivíduo só consegue passar seus genes para a próxima geração, se

estiver bem adaptado ao ambiente. E nos algoritmos genéticos, a maneira de avaliar cada

indivíduo, é através da função fitness [9].

A função fitness é o método que julga o quão apto está o indivíduo em seu

meio [12]. De uma maneira mais técnica, a função objetivo analisa o indivíduo (vetor de bits)

e retorna um valor real, indicando se o mesmo é ou não uma boa solução para o problema.

A interpretação do resultado obtido pela função de fitness vai depender da

natureza do problema que se pretende resolver. Isto é, pode ser um problema de maximização,

onde os melhores indivíduos são os que têm maiores fitness, ou um problema de minimização,

que é o contrário, os melhores indivíduos são os que detêm os menores valores de fitness.

A escolha de uma boa função objetivo é de extrema importância para se

chegar a resultados mais correto.

29

2.1.1.4 Operador de Seleção

Em cada geração, são selecionados alguns indivíduos, comumente

chamados de cromossomos pais, para transpassarem seus genes aos indivíduos da próxima

geração. A maneira com que esses indivíduos são selecionados é através da seleção [4].

O operador de seleção vai analisar os indivíduos e escolher os mais bem

adaptados, de acordo com o fitness de cada indivíduo, para gerarem novos membros (filhos)

entre si, e esses filhos farão parte da nova geração. Existem diversas maneiras de fazer a

seleção, dentre elas, destacam-se a seleção por torneio e o método Roulette Wheel.

Na seleção por torneio, sorteiam-se de maneira aleatória dois (ou mais)

indivíduos da população, e o que tiver o maior valor de fitness será selecionada para repassar

seus genes á próxima geração [13].

E na seleção pelo método da roleta (Roulette Wheel), cada indivíduo

recebe uma fatia de um circulo virtual, proporcional ao seu valor de fitness, quanto maior o

valor retornado pela função objetivo, maior será a fatia atribuída a ele. Após a atribuição da

porcentagem, a roleta é girada de acordo com a quantidade de indivíduos da população, e um

indivíduo será selecionado cada vez que a roleta for girada [13], [6].

Dependendo da natureza do problema, a forma como os indivíduos serão

selecionados pode causar o que é chamado de pressão seletiva.

2.1.1.5 Pressão Seletiva

A pressão seletiva acontece quando apenas os melhores indivíduos são

explorados, fazendo com que aumente as chances de se encontrar solução que já foram

descobertas. E a exploração apenas dos melhores indivíduos, faz com que a convergência á

uma solução não necessariamente boa aconteça mais rapidamente [13].

2.1.1.6 Operador de Crossover

Após selecionar os pais, é preciso gerar os “filhos”, que serão os novos

membros a serem inseridos na população ao mesmo tempo em que alguns indivíduos da

população antiga são retirados. Neste trabalho, é aplicado o elitismo para alterar a população

em cada geração.

O processo de gerar novos indivíduos é chamado de crossover. Esse

operador genético consiste em pegar dois pais que foram selecionados e cruzar seus genes

para que dois novos indivíduos sejam gerados [6], [13]. Existem diversas variações da

aplicação do crossover, como multiponto, uniforme, ordenado, aritmético e o operador de

crossover simples.

No crossover simples, para cruzar os cromossomos pais, é preciso dividir

cada cromossomo em duas partes, de tal forma que fique uma sequência de bits à esquerda e

uma à direita de um determinado ponto de divisão. O ponto de divisão de um cromossomo

pode ser escolhido aleatoriamente ou pode-se dividir ao meio o cromossomo. Feito a divisão

dos dois cromossomos, misturam-se as partes geradas para que sejam criados dois novos

indivíduos [6].

2.1.1.7 Elitismo

Elitismo consiste em manter na população subsequente, o indivíduo de

melhor fitness (mais adaptado) de cada geração. Já que o mesmo pode ser perdido durante a

geração de uma nova população, e assim, perder uma possível solução para o problema [6],

[14].

2.1.1.8 Mutação

Tendo uma probabilidade de uso muito pequena, geralmente em torno de

1% de chances de uso, a mutação funciona como uma válvula de escape, alterando o valor ou

trocando a posição dos genes de indivíduos da população [11]. A utilização da mutação tem

de ser minuciosa, para ser aplicada nos momentos certos, a fim de aumentar as chances de

encontrar outras soluções para o problema.

2.1.2 Programação Genética

Proposta por Koza, em 1992, a programação genética funciona de

maneira muito semelhante aos algoritmos genéticos, tendo sua inspiração também baseada na

teoria da evolução, de Charles Darwin [14]. A única diferença entre os algoritmos genéticos e

31

programação genética, é a forma de representação dos indivíduos. Nos algoritmos genéticos,

os indivíduos são representados como uma sequência de bits (um vetor, por exemplo), e na

programação genética, os indivíduos representam um programa de computador que

comumente são retratados como árvores sintáticas [21], [22].

Nos demais operadores genéticos, como crossover, função de aptidão

(fitness), mutação e seleção, o funcionamento é idêntico ao que é visto em AG. E cada um

desses operadores está descrito acima, no tópico de algoritmo genético.

A programação genética é totalmente probabilística, então, pode ser que

os resultados gerados não sejam os melhores. Ela manipula solução corretas e incorretas,

podendo gerar resultados não esperados [22].

2.1.2.1 Árvore Sintática

Em computação, árvores sintáticas são representações computacionais de

um programa. Entretanto, elas não são estritamente usadas para representar programas apenas,

árvores sintáticas podem também representar fórmulas aritméticas, booleanas e polinômios,

por exemplo [23].

Uma árvore é constituída por nós e arestas, possuindo nós folhas e nós

pais, onde os nós folhas representam as variáveis e constantes, e os nós pais representam as

operações que podem ser realizadas, de acordo com a gramática ou função [22], [24].

Na imagem abaixo, é apresentado um exemplo de um polinômio

representado por uma árvore sintática. O polinômio representado é (4*10) + 5.

Figura 1 - Árovere sintática representando o polinômio (4*10) + 5

2.2 Sistemas de Detecção de Intrusão

Um sistema de detecção de intrusão (Intrusion Detection System, IDS) é

um sistema utilizado para detectar algum tipo de invasão ou ataque na rede [16]. Funcionando

de um modo geral em paralelo com a rede, os IDS's monitoram todo o tráfego da rede e, envia

para o administrador da rede algum tipo de alarme na medida em que problemas são

identificados [25].

Alertas são gerados, por várias situações, como por exemplo, tentativas

de intrusão na rede, ataques realizados por terceiros, uma má configuração da rede, falhas nos

elementos de rede, defeitos em softwares, etc [26].

Apesar dos alertas serem gerados por ações maliciosas, atividades

imprevisíveis podem originar alarmes não necessariamente relacionados às invasões. Esses

alarmes são conhecidos como “falso­positivo”. Por outro lado, pode acontecer o que é

chamado de “falso­negativo”, que é quando uma invasão passa despercebida pela rede [27].

Uma das abordagens empregadas na construção de IDS’s é baseada na

assinatura de invasão, o que implica na frequente atualização de sua base de dados, para poder

estar ciente de novos ataques ou alguma outra forma de ataque desconhecida.

Além dos sistemas de detecção baseados em assinaturas, existem outros

que são baseados em detecção de anomalias. O modelo baseado em detecção de anomalias

cria um perfil do comportamento habitual da rede para emitir um alerta caso alguma atitude

desvie desse padrão criado.

2.2.1 Detecção de Anomalias em Redes de Computadores

Em um ambiente por onde se trocam milhões de informações

diariamente, conseguir distinguir um tráfego de dados suspeito não é uma tarefa tão simples.

E uma técnica para sistemas de detecção de intrusão, é a baseada em anomalias.

Tal método mantém um monitoramento do tráfego de dados, com o

intuito de reconhecer o comportamento anômalo da rede [27]. Primeiramente, um IDS cria um

modelo do comportamento da rede, através de técnicas como aprendizado de máquina,

estatística, e outras áreas da inteligência artificial.

E só após o reconhecimento de como a rede se comporta, será possível

identificar falhas na mesma, e assim diferir o que é considerado tráfego normal de anômalo

33

[28], [29]. Desse modo, é possível detectar distúrbios no comportamento normal da rede,

sinalizando possíveis ataques [29], [30], [31], [32], [33], [34].

REFERÊNCIAS

[1] DE MEDEIROS, Talles Henrique et al. Computação Bioinspirada

aplicada à Robótica.

[2] POZO, Aurora et al. Computação evolutiva. Universidade Federal

do Paraná, 61p.(Grupo de Pesquisas em Computação Evolutiva, Departamento de

Informática-Universidade Federal do Paraná), 2005.

[3] DARWIN, Charles; PAUL, Joaquim Da Mesquita. Coleção

Planeta VIvo. A origem das espécies. 1985.

[4] MITCHELL, Melanie. An introduction to genetic algorithms. MIT

press, 1998.

[5] PACHECO, Marco Aurélio Cavalcanti et al. Algoritmos genéticos:

princípios e aplicações. ICA: Laboratório de Inteligência Computacional Aplicada.

Departamento de Engenharia Elétrica. Pontifícia Universidade Católica do Rio de

Janeiro. Fonte desconhecida, 1999.

[6] HAMAMOTO, Anderson Hiroshi. APLICAÇÃO DE

ALGORITMOS GENÉTICOS PARA AUXILIAR NA GERÊNCIA DE REDES.

[7] Holland, John H. Adaptation in natural and artificial systems: an

introductory analysis with applications to biology, control, and artificial intelligence.

MIT press, 1992.

[8] AKACHUKWU, Chichebe M. et al. A decade survey of

engineering applications of genetic algorithm in power system optimization. In:

Intelligent Systems, Modelling and Simulation (ISMS), 2014 5th International

Conference on. IEEE, 2014. p. 38-42.

35

[9] SINDHIYA, S.; GUNASUNDARI, S. A survey on genetic

algorithm based feature selection for disease diagnosis system. In: Computer

Communication and Systems, 2014 International Conference on. IEEE, 2014. p. 164-

169.

[10] OWAIS, Suhail et al. Survey: using genetic algorithm approach

in intrusion detection systems techniques. In: Computer Information Systems and

Industrial Management Applications, 2008. CISIM'08. 7th. IEEE, 2008. p. 300-307.

[11] WHITLEY, Darrell. A genetic algorithm tutorial. Statistics and

computing, v. 4, n. 2, p. 65-85, 1994.

[12] DEB, Kalyanmoy et al. A fast and elitist multiobjective genetic

algorithm: NSGA-II. IEEE transactions on evolutionary computation, v. 6, n. 2, p. 182-

197, 2002.

[13] BENTO, Eduardo Prevedello; KAGAN, Nelson. Algoritmos

genéticos e variantes na solução de problemas de configuração de redes de distribuição.

Sba: Controle & Automação Sociedade Brasileira de Automatica, v. 19, n. 3, p. 302-

315, 2008.

[14] BARCELLOS, João Carlos Holland de. Algoritmos genéticos

adaptativos: um estudo comparativo. 2000. Tese de Doutorado. Universidade de São

Paulo.

[15] PISANI, Paulo Henrique; LORENA, Ana Carolina. Detecção de

intrusões com dinâmica da digitação: uma revisão sistemática. Universidade Federal do

ABC, Santo André, Brasil, Technical Report, v. 6, p. 2011, 2011.

[16] VIJAYARANI, S. and SYLVIAA, Maria S. et al. Intrusion

Detection System - A Study. International Journal of Security, Privacy and Trust

Management (IJSPTM). Vol 4, No 1, February 2015.

[16] MENESES, Rayane; LEITE, Adriana; GIRARDI, Rosario.

Application ontology for the development of case-based intrusion detection systems. In:

Information Systems and Technologies (CISTI), 2015 10th Iberian Conference on.

IEEE, 2015. p. 1-4.

[17] FERNANDES, Gilberto; RODRIGUES, Joel JPC; PROENÇA,

Mario Lemes. Autonomous profile-based anomaly detection system using principal

component analysis and flow analysis. Applied Soft Computing, v. 34, p. 513-525,

2015.

[18] AMARAL, Alexandre Aguiar et al. Deep IP flow inspection to

detect beyond network anomalies. Computer Communications, v. 98, p. 80-96, 2017.

[19] CARVALHO, Luiz Fernando; BARBON, Sylvio; MENDES,

Leonardo de Souza; PROENÇA, Mario Lemes. Unsupervised learning clustering and

self-organized agents applied to help network management. Expert Systems with

Applications, v. 54, p. 29-47, 2016.

[20] KOZA, John R. Genetic Programming. Massachusetts Institute of

Technology. Complex adaptive systems. 1998.

[21] SOUZA, Luzia Vidal de. Programação genética e combinação de

preditores para previsão de séries temporais. 2013.

[22] MCPHEE, Nicholas Freitag; POLI, Riccardo; LANGDON,

William B. Field guide to genetic programming. 2008.

[23] FERREIRA, Juliana Oliveira; DE OLIVEIRA, Humberto César

Brandão; DE PAULA, Melise Maria Veiga. SIGM-TREE: OTIMIZAÇÃO DE

ÁRVORES SINTÁTICAS APLICADA À CLASSIFICAÇÃO DE PADRÕES. CEP, v.

37130, p. 000, 2009.

[24] Aurora Pozo, Andrea de Fatima Cavalheiro, Celso Ishida,

Eduardo Spinosa, Ernesto Malta Rodrigues. Computação Evolutiva. Departamento

37

de Informática ­ Universidade Federal do Paraná.

[25] B.Santos Kumar, T.Chandra Sekhara Phani Raju, M.Ratnakar,

Sk.Dawood Baba, N.Sudhakar. Intrusion Detection System­ Types and Prevention.

Wellfare Institute of Science, Technology & anagement. 2013.

[26] Bruno Bogaz Zarpelão. Detecção de Anomalias em

Redes de Computadores. Universidade Estadual de Campinas – Faculdade de

Engenharia Elétrica e Computação. etembro 2010.

[27] Cléber Taschetto Murini. Análise dos Sistemas de Detecção de

Intrusão em Redes: Snort e Suricata Comparando com Dados da Darpa. Universidade

Federal de Santa Maria. 2014.

[28] Lília de Sá Silva, Antonio Montes, José Demisio Simões da

Silva. Evolução dos Trabalhos em Detecção de Anomalias na Rede. 2005.

[29] Alexandre Aguiar Amaral, Leonardo de Souza Mendes, Bruno

Bogaz Zarpelão, Mario Lemes Proença Junior. Deep IP Flow Inspection to Detect

beyond Network Anomalies. 2017.

[30] Guilherme Filipe Zorego Rodrigues Morais. Análise e

Implementação de Sistemas IDS e IPS. Universidade de Lisboa. 2011.

[31] Roberto Silva Netto. Detecção de Intrusão Utilizando Redes

Neurais Artificiais no Reconhecimento de Padrões de Ataque. Universidade Federal de

Itajubá ­ UNIFEI. 2006.

[32] S. S. Kim e A. L. N. Reddy. Statistical Techniques for Detecting

Traffic Anomalies Through Packet Header Data. IEEE/ACM Transactions on

Networking, v. 16, n. 3, p. 562­575, 2008.

[33] S. Farraposo, P. Owezarski, e E. Monteiro. A MultiScale

Tomographic Algorithm for Detecting and Classifying Traffic Anomalies. Proceedings

of IEEE International Conference on Communications 007, p. 363370, 2007.

[34] Luiz Fernando Carvalho, Sylvio Barbon, Leonardo de Souza

Mendes, Mario Lemes Proença. Unsupervised learning clustering and selforganized

agents applied to help network management. 2016.