estudo de modelos bioinspirados para auxiliar na detecção ... · anomalias em redes de...
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 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].
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 “falsopositivo”. Por outro lado, pode acontecer o que é
chamado de “falsonegativo”, 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. 562575, 2008.
[33] S. Farraposo, P. Owezarski, e E. Monteiro. A MultiScale
Tomographic Algorithm for Detecting and Classifying Traffic Anomalies. Proceedings