101
UNIVERSIDADE TECNOL ´ OGICA FEDERAL DO PARAN ´ A PROGRAMA DE P ´ OS-GRADUAC ¸ ˜ AO EM ENGENHARIA EL ´ ETRICA E INFORM ´ ATICA INDUSTRIAL ANDR ´ E LUIZ PEREIRA DE FRANC ¸A ESTUDO, DESENVOLVIMENTO E IMPLEMENTAC ¸ ˜ AO DE ALGORITMOS DE APRENDIZAGEM DE M ´ AQUINA, EM SOFTWARE E HARDWARE,PARA DETECC ¸ ˜ AO DE INTRUS ˜ AO DE REDE: UMA AN ´ ALISE DE EFICI ˆ ENCIA ENERG ´ ETICA DISSERTAC ¸ ˜ AO CURITIBA 2015

UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

Embed Size (px)

Citation preview

Page 1: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

UNIVERSIDADE TECNOLOGICA FEDERAL DO PARANAPROGRAMA DE POS-GRADUACAO EM ENGENHARIA ELETRICA E

INFORMATICA INDUSTRIAL

ANDRE LUIZ PEREIRA DE FRANCA

ESTUDO, DESENVOLVIMENTO E IMPLEMENTACAO DEALGORITMOS DE APRENDIZAGEM DE MAQUINA, EM

SOFTWARE E HARDWARE, PARA DETECCAO DE INTRUSAO DEREDE: UMA ANALISE DE EFICIENCIA ENERGETICA

DISSERTACAO

CURITIBA

2015

Page 2: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

ANDRE LUIZ PEREIRA DE FRANCA

ESTUDO, DESENVOLVIMENTO E IMPLEMENTACAO DEALGORITMOS DE APRENDIZAGEM DE MAQUINA, EM

SOFTWARE E HARDWARE, PARA DETECCAO DE INTRUSAO DEREDE: UMA ANALISE DE EFICIENCIA ENERGETICA

Dissertacao apresentada ao Programa de Pos-graduacao em Engenharia Eletrica e InformaticaIndustrial da Universidade Tecnologica Federal doParana como requisito parcial para obtencao do graude “Mestre em Ciencias” – Area de Concentracao:Engenharia de Automacao e Sistemas.

Orientador: Prof. Dr. Volnei Antonio Pedroni

Coorientador: Dr. Ricardo Pereira Jasinski

CURITIBA

2015

Page 3: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

Dados Internacionais de Catalogação na Publicação

F814e França, André Luiz Pereira

2015 Estudo, desenvolvimento e implementação de algoritmos de

aprendizagem de máquina, em software e hardware, para detecção

de intrusão de rede : uma análise de eficiência energética /

André Luiz Pereira de França.-- 2015.

100 f.: il.; 30 cm

Texto em português, com resumo em inglês.

Dissertação (Mestrado) - Universidade Tecnológica Federal

do Paraná. Programa de Pós-Graduação em Engenharia Elétrica e

Informática Industrial, Curitiba, 2015.

Bibliografia: f. 97-100.

1. Sistemas de detecção de intrusão (Segurança do

computador). 2. Aprendizado do computador. 3. Árvores de

decisão. 4. Algoritmos computacionais. 5. Software –

Desenvolvimento. 6. Hardware - Avaliação. 7. Redes de

Computação - Medidas de segurança. 8. Métodos de simulação. 9.

Energia - Consumo. 10. Engenharia elétrica - Dissertações. I.

Pedroni, Volnei A. (Volnei Antonio), orient. II. Jasinski,

Ricardo Pereira, coorient. III. Universidade Tecnológica

Federal do Paraná - Programa de Pós-Graduação em Engenharia

Elétrica e Informática Industrial. IV. Título.

CDD 22 -- 621.3

Biblioteca Central da UTFPR, Câmpus Curitiba

Page 4: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao
Page 5: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

AGRADECIMENTOS

Agradeco primeiramente a Santıssima Trindade: Deus Pai, Filho e Espırito Santo, por

me iluminar em cada decisao tomada ate hoje e por sempre me mostrar o caminho certo a seguir.

Aos meus pais, Evaldo e Adilma, e as tres Marias pelo incentivo, apoio e carinho.

A Taisa Costa pelo companheirismo ao longo do mestrado.

Ao meu orientador Prof. Dr. Volnei Pedroni pelo conhecimento tecnico transmitido e

pela oportunidade de fazer parte da equipe do Laboratorio de Microeletronica da UTFPR.

Ao meu coorientador Dr. Ricardo Jasinski pela ajuda nas implementacoes e testes dos

algoritmos desenvolvidos ao longo do trabalho.

Ao colega de pesquisa MSc. Paulo Cemin pelo desenvolvimento da plataforma de

medicao de consumo utilizada como ferramenta neste trabalho.

Aos colegas de pesquisa Prof. Dr. Altair Santin e Eduardo Viegas pelo

desenvolvimento do cenario de rede e do algoritmo de extracao de caracterısticas, descritos

na secao 3.1 e pela realizacao das tarefas de selecao de caracterısticas descritas no inıcio das

secoes 4.1, 5.1 e 6.1 deste documento.

Aos colegas Diego Reis e Jose Galvao pela troca de experiencias e conhecimentos nas

disciplinas cursadas.

A secretaria do CPGEI Denise Erthal por responder, de prontidao, todas as perguntas

que fiz sobre o programa de mestrado.

Aos membros da banca avaliadora desta dissertacao, professores Volnei Pedroni, Altair

Santin e Andre Mariano, pela revisao do documento e pelas sugestoes de correcoes e melhorias,

que engrandeceram ainda mais o trabalho.

A Intel por promover, atraves de seu University Research Office, o projeto de pesquisa

e desenvolvimento do qual esta dissertacao e resultado.

A Capes pelo apoio financeiro atraves da concessao da bolsa DS durante 12 meses.

Ao CNPq pelo apoio financeiro atraves da concessao da bolsa DTC durante 12 meses.

Page 6: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

RESUMO

FRANCA, Andre Luiz Pereira de. Estudo, Desenvolvimento e Implementacao de Algoritmosde Aprendizagem de Maquina, em Software e Hardware, para Deteccao de Intrusao de Rede:Uma Analise de Eficiencia Energetica. 2015. 100 f. Dissertacao (Mestrado em EngenhariaEletrica e Informatica Industrial) – Programa de Pos-graduacao em Engenharia Eletrica eInformatica Industrial, Universidade Tecnologica Federal do Parana. Curitiba, 2015.

O constante aumento na velocidade da rede, o numero de ataques e a necessidade de eficienciaenergetica estao fazendo com que a seguranca de rede baseada em software chegue ao seulimite. Um tipo comum de ameaca sao os ataques do tipo probing, nos quais um atacanteprocura vulnerabilidades a partir do envio de pacotes de sondagem a uma maquina-alvo. Estetrabalho apresenta o estudo, o desenvolvimento e a implementacao de um algoritmo de extracaode caracterısticas dos pacotes da rede em hardware e de tres classificadores de aprendizagemde maquina (Arvore de Decisao, Naive Bayes e k-vizinhos mais proximos), em software ehardware, para a deteccao de ataques do tipo probing. O trabalho apresenta, ainda, resultadosdetalhados de acuracia de classificacao, taxa de transferencia e consumo de energia para cadaimplementacao.

Palavras-chave: Deteccao de Intrusao de Rede. Ataques Probing. Aprendizagem de Maquina.Arvore de Decisao. Naive Bayes. KNN. Eficiencia Energetica.

Page 7: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

ABSTRACT

FRANCA, Andre Luiz Pereira de. Study, Development and Implementation of MachineLearning Algorithms, in Software and Hardware, for Network Intrusion Detection: an EnergyEfficiency Analysis. 2015. 100 f. Dissertacao (Mestrado em Engenharia Eletrica e InformaticaIndustrial) – Programa de Pos-graduacao em Engenharia Eletrica e Informatica Industrial,Universidade Tecnologica Federal do Parana. Curitiba, 2015.

The increasing network speeds, number of attacks, and need for energy efficiency are pushingsoftware-based network security to its limits. A common kind of threat is probing attacks, inwhich an attacker tries to find vulnerabilities by sending a series of probe packets to a targetmachine. This work presents the study, development, and implementation of a network packetsfeature extraction algorithm in hardware and three machine learning classifiers (Decision Tree,Naive Bayes, and k-nearest neighbors), in software and hardware, for the detection of probingattacks. The work also presents detailed results of classification accuracy, throughput, andenergy consumption for each implementation.

Keywords: Network Intrusion Detection. Probing attacks. Machine Learning. Decision Tree.Naive Bayes. KNN. Energy Efficiency.

Page 8: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

LISTA DE FIGURAS

–FIGURA 1 Divisao de um IDS quanto ao tipo e tecnica de deteccao . . . . . . . . . . . . . . . . 19–FIGURA 2 Etapas da Aprendizagem de Maquina num exemplo da literatura . . . . . . . . . 24–FIGURA 3 Histograma para a caracterıstica comprimento do exemplo . . . . . . . . . . . . . . 24–FIGURA 4 Histograma para a caracterıstica luminosidade do exemplo . . . . . . . . . . . . . . 25–FIGURA 5 Plano para as caracterısticas luminosidade e largura do exemplo . . . . . . . . . 25–FIGURA 6 Exemplo de uma Arvore de Decisao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26–FIGURA 7 Exemplo grafico da classificacao pelo kNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30–FIGURA 8 Campos do cabecalho IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33–FIGURA 9 Campos do cabecalho UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33–FIGURA 10 Campos do cabecalho ICMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33–FIGURA 11 Campos do cabecalho TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33–FIGURA 12 Cenario para geracao de trafego normal e de ataque . . . . . . . . . . . . . . . . . . . . 40–FIGURA 13 Montagem da chave da hash que acessa as linhas da tabela de atributos . . . 44–FIGURA 14 Celulas da tabela a serem consideradas para se obter o valor dos atributos 45–FIGURA 15 Fluxograma simplificado do extrator de caracterısticas . . . . . . . . . . . . . . . . . . 46–FIGURA 16 Ambiente para avaliacao dos algoritmos em software . . . . . . . . . . . . . . . . . . . 48–FIGURA 17 Plataforma usada para medicao do consumo energetico em software . . . . . 49–FIGURA 18 Diagrama em blocos do extrator de caracterısticas em hardware . . . . . . . . . 51–FIGURA 19 Memoria RAM que armazena os atributos dependentes da comunicacao . . 52–FIGURA 20 Modulo de atualizacao das linhas da memoria de atributos . . . . . . . . . . . . . . 53–FIGURA 21 Modulo de zeramento das celulas a serem apagadas da tabela de atributos 54–FIGURA 22 Modulo de controle do extrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55–FIGURA 23 Maquina de estados que controla o extrator de caracterısticas . . . . . . . . . . . . 55–FIGURA 24 Kit com FPGA Cyclone IV GX para avaliacao dos algoritmos em hardware 57–FIGURA 25 Circuito para medicao do consumo do extrator em hardware . . . . . . . . . . . . 57–FIGURA 26 Arvore de Decisao para deteccao de probing . . . . . . . . . . . . . . . . . . . . . . . . . . . 60–FIGURA 27 Implementacao em hardware da Arvore de Decisao . . . . . . . . . . . . . . . . . . . . 62–FIGURA 28 Circuito para estimacao da taxa de transferencia dos classificadores . . . . . . 63–FIGURA 29 Circuito para medicao do consumo dos classificadores em hardware . . . . . 64–FIGURA 30 Maquina de estados que controla o circuito de medicao dos classificadores 66–FIGURA 31 Modelo Naive Bayes para deteccao de probing . . . . . . . . . . . . . . . . . . . . . . . . . 68–FIGURA 32 Fluxograma do Naive Bayes para deteccao de probing em software . . . . . . 71–FIGURA 33 Implementacao combinacional do Naive Bayes em hardware . . . . . . . . . . . . 73–FIGURA 34 Implementacao sequencial do Naive Bayes em hardware . . . . . . . . . . . . . . . 74–FIGURA 35 Fluxograma do kNN para deteccao de probing em software . . . . . . . . . . . . . 78–FIGURA 36 Implementacao do kNN em hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79–FIGURA 37 Circuito do Normalizador do kNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80–FIGURA 38 Circuito do Calculador de Distancia do kNN . . . . . . . . . . . . . . . . . . . . . . . . . . . 81–FIGURA 39 Energia gasta na extracao em hardware para diferentes frequencias . . . . . . 86–FIGURA 40 Consumo de potencia pelo no de classificadores em 50 MHz . . . . . . . . . . . . 92–FIGURA 41 Energia gasta na classificacao em software e hardware (em 50 MHz) . . . . . 93–FIGURA 42 Energia gasta na classificacao em hardware para diferentes frequencias . . 94

Page 9: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

LISTA DE QUADROS

–QUADRO 1 Atributos dos pacotes considerados no banco de dados KDD 99 . . . . . . . . 32–QUADRO 2 Atributos extraıdos diretamente do cabecalho de cada pacote . . . . . . . . . . . 41–QUADRO 3 Atributos extraıdos a partir da comunicacao entre hosts . . . . . . . . . . . . . . . . 42–QUADRO 4 Como cada atributo do cabecalho dos pacotes e extraıdo . . . . . . . . . . . . . . . 43–QUADRO 5 Como cada atributo dependente da comunicacao e atualizado . . . . . . . . . . 47–QUADRO 6 Atributos selecionados para deteccao de probing pela Arvore de Decisao 60–QUADRO 7 Atributos selecionados para deteccao de probing pelo Naive Bayes . . . . . 67–QUADRO 8 Atributos selecionados para deteccao de probing pelo kNN . . . . . . . . . . . . 77

Page 10: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

LISTA DE TABELAS

–TABELA 1 Probabilidades para o atributo udp sport na implementacao do Naive Bayes 70–TABELA 2 Area utilizada pelo extrator de caracterısticas implementado em hardware 84–TABELA 3 Taxa de transferencia dos extratores em software e hardware . . . . . . . . . . . . 85–TABELA 4 Energia consumida na operacao de extracao em software e hardware . . . . . 85–TABELA 5 Matriz de confusao para o classificador Arvore de Decisao . . . . . . . . . . . . . . 87–TABELA 6 Matriz de confusao para o classificador Naive Bayes . . . . . . . . . . . . . . . . . . . . 88–TABELA 7 Matriz de confusao para o classificador kNN . . . . . . . . . . . . . . . . . . . . . . . . . . . 88–TABELA 8 Acuracia dos classificadores sobre a base de testes . . . . . . . . . . . . . . . . . . . . . . 88–TABELA 9 Area utilizada pelos classificadores implementados em hardware . . . . . . . . 89–TABELA 10 Taxa de transferencia dos classificadores implementados . . . . . . . . . . . . . . . . 90–TABELA 11 Energia consumida pelos classificadores implementados . . . . . . . . . . . . . . . . 92

Page 11: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

LISTA DE SIGLAS

A/D Analogico/DigitalARFF Attribute-Relation File FormatDAQ Data AcQuisitionDoS Denial of ServiceFIFO First In First OutFPGA Field-Programmable Gate ArrayHIDS Host-based Intrusion Detection SystemICMP Internet Control Message ProtocolID3 Iterative Dichotomiser 3IDPS Intrusion Detection and Prevention SystemIDS Intrusion Detection SystemIP Internet ProtocolkNN k-Nearest NeighborsLED Light-Emitting DiodeNIDS Network-based Intrusion Detection SystemPCAP Packet CAPturePLL Phase-Locked LoopR2L Remote to LocalRAM Random Access MemoryROM Read-Only MemorySoC System-on-a-ChipSVM Support Vector MachineTCP Transmission Control ProtocolU2R User to RootUDP User Datagram ProtocolUSB Universal Serial Bus

Page 12: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

SUMARIO

1 INTRODUCAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.1 MOTIVACAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.2 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.2.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.2.2 Objetivos Especıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.3 ESTRUTURA DA DISSERTACAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 REVISAO DE LITERATURA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.1 SISTEMA DE DETECCAO DE INTRUSAO (IDS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.1.1 Deteccao Baseada em Assinatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.1.2 Deteccao Baseada em Anomalia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2 APRENDIZAGEM DE MAQUINA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.2.1 Extracao de Caracterısticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2.2 Classificador Arvore de Decisao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.2.3 Classificador Naive Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.2.4 Classificador k-Vizinhos Mais Proximos (kNN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.3 APRENDIZAGEM DE MAQUINA PARA DETECCAO DE INTRUSAO . . . . . . . . . 312.3.1 Aplicacoes de Extracao de Caracterısticas em Software e Hardware . . . . . . . . . . . . . . 312.3.2 Aplicacoes de Arvore de Decisao em Software e Hardware . . . . . . . . . . . . . . . . . . . . . . 352.3.3 Aplicacoes de Naive Bayes em Software e Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . 362.3.4 Aplicacoes de kNN em Software e Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 DESENVOLVIMENTO DO EXTRATOR DE CARACTERISTICAS . . . . . . . . . . . 393.1 IMPLEMENTACAO EM SOFTWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.2 AVALIACAO EM SOFTWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.3 IMPLEMENTACAO EM HARDWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503.4 AVALIACAO EM HARDWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 DESENVOLVIMENTO DA ARVORE DE DECISAO . . . . . . . . . . . . . . . . . . . . . . . . . . 594.1 IMPLEMENTACAO EM SOFTWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.2 AVALIACAO EM SOFTWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614.3 IMPLEMENTACAO EM HARDWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624.4 AVALIACAO EM HARDWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635 DESENVOLVIMENTO DO NAIVE BAYES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.1 IMPLEMENTACAO EM SOFTWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.2 AVALIACAO EM SOFTWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725.3 IMPLEMENTACAO EM HARDWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725.3.1 Versao Combinacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725.3.2 Versao Sequencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735.4 AVALIACAO EM HARDWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756 DESENVOLVIMENTO DO KNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766.1 IMPLEMENTACAO EM SOFTWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766.2 AVALIACAO EM SOFTWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.3 IMPLEMENTACAO EM HARDWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

Page 13: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

6.4 AVALIACAO EM HARDWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847.1 EXTRATOR DE CARACTERISTICAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847.1.1 Area do Circuito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847.1.2 Taxa de Transferencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857.1.3 Consumo de Energia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857.2 CLASSIFICADORES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867.2.1 Acuracia de Classificacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877.2.2 Area dos Circuitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897.2.3 Taxa de Transferencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907.2.4 Consumo de Energia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 917.3 PUBLICACOES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948 CONCLUSAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95REFERENCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

Page 14: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

13

1 INTRODUCAO

Com o uso difundido da internet e surgimento diario de novas ameacas na grande rede,

torna-se fundamental a aplicacao de sistemas de protecao. Um destes sistemas e o chamado

Sistema de Deteccao de Intrusao (IDS). Dentre as classes de IDS, ha o Sistema de Deteccao

de Intrusao de Rede (NIDS), cuja finalidade e detectar possıveis intrusoes (ataques) a partir da

analise dos pacotes de rede (CORONA et al., 2013). Em caso de deteccao de uma ameaca, um

alarme e gerado para o administrador de rede.

Um tipo comum de ameaca sao os ataques do tipo probing, nos quais um atacante

envia pacotes de sondagem para uma maquina-alvo, na tentativa de encontrar portas abertas e

identificar servicos para, assim, explorar possıveis vulnerabilidades. Os ataques do tipo probing

sao executados com ferramentas farejadoras (sniffers) de rede e escaneadoras (scanners) de

portas (PUKKAWANNA et al., 2014). Geralmente os ataques do tipo probing precedem outros

tipos de ataque, entao a deteccao de tentativas de intrusao nessa fase inicial pode prevenir

ataques mais graves.

Quanto a tecnica de deteccao, um NIDS pode ser classificado em duas categorias:

baseado em assinatura e baseado em anomalia. A tecnica de deteccao por assinatura procura

por padroes de ataques conhecidos nos pacotes de rede. Por exemplo, os bytes do pacote podem

ser analisados em busca de ataques, combinacao estranha de flags e tentativas de acesso nao

autorizadas. O NIDS baseado em assinatura possui baixa taxa de alarmes falsos, pois procura

por padroes adicionados em seu banco de dados. Entretanto, nao e possıvel detectar novos tipos

de ataques (GARCIA-TEODORO et al., 2009).

A tecnica de deteccao por anomalia consiste em capturar comportamentos que desviam

do comportamento normal da rede. Esse metodo se utiliza de dados de entrada para treinamento

e construcao de um modelo padrao de comportamento. Quando alguma atividade na rede e

classificada como anormal, um alarme e gerado. Embora o NIDS baseado em anomalia possa

detectar novos ataques, ha a possibilidade de que um alarme gerado seja falso (TSAI et al.,

2009). Apesar dessa desvantagem, como a rede sempre esta sujeita a novas ameacas, a deteccao

Page 15: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

14

por anomalia e importante para NIDS. O desafio se encontra no projeto de um bom classificador

que deve possuir acuracia e baixa taxa de alarmes falsos.

A deteccao por anomalia pode fazer uso de tecnicas de Aprendizagem de Maquina.

Tais tecnicas sao comumente utilizadas para descobrir modelos de comportamento a partir de

um conjunto de dados de treinamento. As aplicacoes de Aprendizagem de Maquina utilizam

classificadores, que sao funcoes que mapeiam dados em classes. Nesse caso, o NIDS pode,

entao, classificar um evento como normal ou malicioso a partir de caracterısticas do proprio

evento (BRUGGER, 2004). Alguns exemplos de classificadores sao: Arvore de Decisao, Naive

Bayes, k-Vizinhos Mais Proximos (kNN, do ingles k-Nearest Neighbors), Maquina de Vetor de

Suporte (SVM, do ingles Support Vector Machine) e Redes Neurais Artificiais.

A geracao e o uso de um classificador sao dois estagios separados. O estagio de

treinamento usa um conjunto de dados de treinamento e um algoritmo gerador do modelo.

Nessa fase sao escolhidas as caracterısticas dos dados de entrada a serem examinadas e obtido

o modelo do classificador. No caso do NIDS, as caracterısticas sao valores obtidos dos pacotes

ou de atividades da rede (WU; BANZHAF, 2010).

O segundo estagio e a classificacao. Nessa fase, executada em tempo real, as

caracterısticas sao extraıdas de um determinado evento e enviadas para o modelo classificador.

No caso do NIDS, os eventos podem ser classificados em normal ou ataque (WU; BANZHAF,

2010).

1.1 MOTIVACAO

Tradicionalmente, um NIDS e concebido em forma de software, e assim, integrado a

um sistema operacional. Um exemplo e a plataforma Snort, um NIDS de codigo aberto, que

possui versoes para Windows e Unix (ROESCH, 1999).

Entretanto, os sistemas de rede, no geral, incluindo os sistemas de seguranca,

enfrentam duas preocupacoes principais: taxa de transferencia e eficiencia energetica. A

empresa Cisco relatou que o trafego IP medio em 2013 foi de 158 terabits por segundo e

estimou que esse valor deve quase triplicar ate 2018 (CISCO, 2014). Ao mesmo tempo, sistemas

computacionais ja respondem por 6% de todo o consumo de energia mundial (SOMAVAT;

NAMBOODIRI, 2011), e dispositivos moveis reforcam a necessidade de aproveitar ao maximo

a energia disponıvel.

No caso do NIDS, as altas taxas de transferencia das redes atuais e o crescimento do

numero de ataques impedem a analise de ameacas em tempo real (WU; BANZHAF, 2010).

Page 16: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

15

Uma abordagem promissora para melhorar a taxa de transferencia e a eficiencia

energetica de sistemas de rede e mover algoritmos de software para hardware. Usando circuitos

dedicados, tarefas que necessitam de muitas instrucoes em software podem ser realizadas num

unico ciclo de clock em hardware. Como nao ha necessidade de suporte a algoritmos de

uso geral, o hardware resultante pode operar a uma fracao do consumo de energia de um

processador generico.

Para aplicacao de NIDS em hardware, porem, um fator importante do software — a

flexibilidade — deve ser levado em consideracao. Devido ao aumento na quantidade e variedade

de ameacas, os sistemas de seguranca devem possibilitar mecanismos de atualizacao. Por isso,

implementacoes em hardware devem ter a caracterıstica de reconfigurabilidade (CHEN et al.,

2011). Uma alternativa viavel para atualizacao em hardware e usar FPGA.

Outra razao para o uso de hardware e a imunidade as infeccoes de software. Circuitos

de hardware sao difıceis de serem modificados sem acesso direto, e podem ser isolados do

ambiente de software.

O uso de NIDS tambem e promissor em Sistemas em um Chip (SoCs). O numero de

SoCs conectados a internet deve chegar a 50 bilhoes ate 2020 (EVANS, 2011). Uma vez que

SoCs estao associados com mobilidade e bateria, a seguranca com eficiencia energetica e um

topico importante.

Neste trabalho, serao apresentados os desenvolvimentos, implementacoes e avaliacoes

de um extrator de caracterısticas dos pacotes de rede em hardware (versao correspondente a um

extrator existente em software) e de tres classificadores de Aprendizagem de Maquina (Arvore

de Decisao, Naive Bayes e kNN), em software e hardware, modelados para deteccao de ataques

do tipo probing. Serao apresentadas comparacoes de eficiencia energetica, taxa de transferencia

e acuracia entre as implementacoes.

Em geral, as ferramentas de NIDS comerciais utilizam a tecnica de deteccao por

assinatura, para evitar alarmes falsos. Na literatura, tecnicas de deteccao de intrusao por

anomalia tem sido propostas nos ultimos anos. Para seguir essa tendencia, escolheu-se

utilizar algoritmos de Aprendizagem de Maquina nesta dissertacao. A comparacao entre

implementacoes de algoritmos em software e hardware tambem e outra tendencia considerada.

Ha poucos trabalhos sobre o desenvolvimento de classificadores para deteccao de intrusao em

hardware e nenhum que desenvolve e compara esses algoritmos em software e hardware.

Entre os trabalhos que utilizam as tecnicas de Aprendizagem de Maquina para deteccao

de intrusao, os classificadores mais utilizados sao o SVM, a Arvore de Decisao e o kNN (TSAI

Page 17: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

16

et al., 2009). Neste trabalho, escolheu-se dois desses classificadores, Arvore de Decisao e kNN,

mais o Naive Bayes, para considerar uma complexidade incremental nas implementacoes dos

classificadores. O SVM sera desenvolvido e implementado futuramente.

O ataque-alvo de deteccao escolhido foi o probing, pois este compreende o primeiro

passo do atacante numa intrusao mais grave.

1.2 OBJETIVOS

1.2.1 OBJETIVO GERAL

Desenvolver, implementar e comparar, em software e hardware, algoritmos

necessarios ao desenvolvimento de um NIDS baseado em anomalia para deteccao de ataques

do tipo probing. Neste trabalho, foram considerados os seguintes algoritmos: um extrator de

caracterısticas dos pacotes de rede em hardware (baseado num extrator existente em software,

desenvolvido por Eduardo Viegas e Altair Santin) e tres classificadores de Aprendizagem de

Maquina (Arvore de Decisao, Naive Bayes e kNN), em software e hardware, modelados para

deteccao de probing.

1.2.2 OBJETIVOS ESPECIFICOS

• Desenvolver e implementar, em hardware (FPGA), um algoritmo de extracao de

caracterısticas dos pacotes de rede para deteccao de probing, baseado em um extrator

existente em software.

• Desenvolver e implementar, em software e hardware (FPGA), o classificador Arvore de

Decisao para deteccao de probing.

• Desenvolver e implementar, em software e hardware (FPGA), o classificador Naive Bayes

para deteccao de probing.

• Desenvolver e implementar, em software e hardware (FPGA), o classificador kNN para

deteccao de probing.

• Comparar a taxa de transferencia e a eficiencia energetica entre o extrator de

caracterısticas existente em software e sua versao correspondente desenvolvida em

hardware.

• Comparar a acuracia de classificacao, a taxa de transferencia e a eficiencia energetica

entre as versoes em software e hardware dos classificadores.

Page 18: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

17

1.3 ESTRUTURA DA DISSERTACAO

Esta dissertacao esta dividida em oito capıtulos. No primeiro capıtulo foram

apresentados conceitos introdutorios sobre a importancia do NIDS para seguranca de rede,

tecnicas de deteccao de intrusao, problemas na implementacao de NIDS em software e motivos

para a avaliacao de NIDS em hardware.

No segundo capıtulo sera apresentada a revisao de literatura, abordando a

fundamentacao teorica das tecnicas de deteccao de intrusao de rede e das tecnicas de

Aprendizagem de Maquina e o estado da arte do uso de Aprendizagem de Maquina para

deteccao de intrusao de rede, em software e hardware.

No terceiro capıtulo sera explicado o funcionamento de um extrator de caracterısticas

dos pacotes de rede existente em software e apresentada a implementacao correspondente desse

extrator em hardware.

Nos quarto, quinto e sexto capıtulos serao apresentados os desenvolvimentos e

implementacoes, em software e hardware, dos classificadores Arvore de Decisao, Naive Bayes

e kNN para deteccao de probing.

No setimo capıtulo serao apresentados os resultados comparativos entre as diferentes

implementacoes dos algoritmos, incluindo acuracia de classificacao, taxa de transferencia e

eficiencia energetica.

Por fim, no capıtulo oito, as conclusoes e trabalhos futuros serao apresentados.

Page 19: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

18

2 REVISAO DE LITERATURA

Neste capıtulo serao apresentados os conceitos que norteiam a dissertacao. Nas secoes

2.1 e 2.2 serao expostas, respectivamente, as fundamentacoes teoricas das tecnicas de deteccao

de intrusao e de Aprendizagem de Maquina. Na secao 2.3 serao apresentados alguns trabalhos

que usam Aprendizagem de Maquina para deteccao de intrusao, em software e hardware.

2.1 SISTEMA DE DETECCAO DE INTRUSAO (IDS)

Um Sistema de Deteccao de Intrusao e uma ferramenta que monitora o trafego de rede

ou as atividades do sistema em busca de tentativas de intrusoes. Uma intrusao (frequentemente

tambem chamada de ataque) pode ser definida como uma atividade maliciosa que viola polıticas

de seguranca de uma rede (CORONA et al., 2013). Em caso de identificacao de tentativa de

intrusao, o IDS envia um alarme para a administracao de rede (KIZZA, 2013). O IDS difere

do Sistema de Deteccao e Prevencao de Intrusao (IDPS), pois este ultimo detecta e procura

tambem impedir as tentativas de intrusao.

Quanto ao tipo, um IDS divide-se em IDS baseado em host (HIDS) e IDS baseado em

rede (NIDS), conforme mostra a figura 1. A imagem mostra, ainda, a divisao do IDS quanto

a tecnica de deteccao: baseado em assinatura e baseado em anomalia. Essas tecnicas serao

explicadas mais adiante. Ha tambem outras divisoes nao apresentadas.

Um HIDS e executado em um dispositivo individual na rede. O sistema monitora

dados do dispositivo, como dados do kernel do Sistema Operacional, arquivos do sistema e

aplicativos (CORONA et al., 2013). O HIDS registra o estado desses dados e compara com o

registro anterior. Se arquivos importantes do sistema foram modificados ou excluıdos, um sinal

de alerta e enviado ao administrador (KIZZA, 2013).

Um NIDS coleta informacoes de um ou mais nos da rede, como as interfaces

ou dispositivos (CORONA et al., 2013). O sistema monitora o trafego que entra em um

determinado dispositivo na rede em busca de intrusoes (KIZZA, 2013). O NIDS trabalha em

Page 20: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

19

Figura 1: Divisao de um IDS quanto ao tipo e tecnica de deteccao.

Fonte: Autoria Propria

modo promıscuo, isto e, analisa todo o trafego do ponto monitorado. Caso um ataque seja

detectado, um sinal de alerta e enviado ao administrador.

Ha diferencas entre o NIDS e o Firewall. O Firewall e configurado com um conjunto

de regras, para permitir ou bloquear acesso a um servico ou host particular. Independentemente

do conteudo, o trafego so e recebido caso condiga com padroes permitidos. Ja o NIDS analisa

todos os pacotes da rede, independentemente da origem ser autorizada ou nao.

Em geral, os ataques de rede no campo de deteccao de intrusao podem ser divididos

em quatro principais categorias (KENDALL, 1999):

• Probes: ataques que visam obter informacoes sobre o sistema a fim de descobrir possıveis

vulnerabilidades, ou seja, sao utilizados para futuros ataques. Estes ataques incluem

farejamento da rede e escaneamento de portas e enderecos. Exemplos: ip sweep, mscan,

nmap, saint e satan.

• Denial of Service (DoS): ataque que faz com que a memoria ou algum outro recurso

computacional esteja tao ocupado, ou tao cheio, que nao consiga atender os usuarios

autorizados. Exemplos: apache2, back, land, mailbomb, syn flood, ping of death, process

table, smurf, syslogd, teardrop e udpstorm.

• User to Root (U2R): ataque no qual o atacante que possui uma conta normal na maquina

consegue obter acesso a conta de administrador, atraves de alguma vulnerabilidade.

Exemplos: eject, ffbconfig, fdformat, loadmodule, perl, ps e xterm;

• Remote to Local (R2L): ataque em que o objetivo e, a partir de alguma vulnerabilidade,

obter acesso a uma conta na maquina de forma remota. Exemplos: dictionary, ftp-write,

guest, imap, named, phf, sendmail, xlock e xsnoop.

Page 21: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

20

Dois dos exemplos de ataques do tipo probing sao ip sweep e nmap. No ataque

ip sweep, o atacante monitora a rede para descobrir quais maquinas estao disponıveis. Isto

geralmente e feito a partir do envio de pacotes ICMP de ping a todos os possıveis enderecos

de uma sub-rede e verificacao de quais maquinas respondem. Para detectar esse tipo de ataque,

pacotes de ping enviados a todas as maquinas da rede, vindos de uma mesma origem, podem

ser procurados (KENDALL, 1999).

O nmap e uma ferramenta para escaneamento de portas de uma rede. Assim, por

exemplo, pode ser efetuado um escaneamento para descobrir portas abertas numa determinada

maquina. A ferramenta permite que o usuario especifique quais as portas a serem escaneadas,

o intervalo de tempo entre os escaneamentos e se as portas devem ser escaneadas de forma

sequencial ou de forma aleatoria. Um ataque de escaneamento de porta pode ser detectado

a partir da constatacao de que pacotes tenham sido enviados a varias portas de uma maquina

dentro de uma janela de tempo (KENDALL, 1999).

2.1.1 DETECCAO BASEADA EM ASSINATURA

Quanto a tecnica de deteccao, um IDS divide-se em baseado em assinatura e baseado

em anomalia. No primeiro, o sistema mantem uma lista de padroes de ataques conhecidos e

monitora os eventos de rede a procura destes padroes (CATANIA; GARINO, 2012).

Uma vantagem do IDS baseado em assinatura e que as ameacas sao detectadas

eficientemente e com uma baixa taxa de erros, pois o sistema consulta padroes de ataques

em seu banco de dados. Em compensacao, esse sistema nao consegue detectar novos tipos

de ataques ou variacoes dos ataques conhecidos. Alem disso, na tentativa de deixar o sistema

atualizado, a lista de ataques conhecidos pode ficar grande de tal maneira que novos ataques

nao possam ser incluıdos.

Como exemplos de assinaturas podem ser citados: uma tentativa de conexao de um

endereco IP reservado e um pacote com combinacao ilegal de flags do protocolo TCP. No

primeiro caso, a assinatura pode ser verificada a partir do campo endereco de origem do

cabecalho IP. No segundo caso, as flags do cabecalho TCP podem ser comparadas contra

combinacoes nao permitidas previamente conhecidas.

Um dos NIDS mais utilizados comercialmente e o Snort, que detecta intrusoes por

assinatura. O programa possui tres modos de operacao: farejamento, registro de pacote e

detector de intrusao de rede. No modo de farejamento, os pacotes da rede sao lidos e mostrados

na tela. No modo de registro de pacote, os pacotes sao gravados em disco. No modo de deteccao

Page 22: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

21

de intrusao, o trafico e monitorado e comparado contra as assinaturas da ferramenta, podendo-

se identificar diversos tipos de ataques de rede. A ferramenta permite, tambem, que o usuario

escreva assinaturas ou regras de deteccao proprias (SOURCEFIRE, 2014).

2.1.2 DETECCAO BASEADA EM ANOMALIA

No IDS baseado em anomalia o objetivo e criar um modelo de comportamento normal

ou de anomalia, para assim classificar cada evento em uma dessas categorias. No caso em que o

comportamento normal e modelado, um alarme e gerado quando um evento desvia em relacao

ao modelo. No caso em que o comportamento anomalo e modelado, um alarme e gerado quando

um evento condiz com o modelo (GARCIA-TEODORO et al., 2009).

Uma vantagem desse sistema e que ataques previamente desconhecidos podem ser

detectados. Em compensacao, o IDS baseado em anomalia e suscetıvel a alarmes falsos, pois

uma ameaca pode ter caracterısticas semelhantes as de um evento legıtimo e vice-versa. Um

alarme e dito falso-positivo quando um evento legıtimo e classificado como ameaca, e falso-

negativo quando uma ameaca e classificada como evento legıtimo. Ha, ainda, as situacoes de

verdadeiro-positivo, quando uma ameaca e classificada como ameaca e verdadeiro-negativo,

quando um evento legıtimo e classificado como legıtimo.

Um IDS baseado em anomalia e eficiente se as taxas de falso-positivo e falso-

negativo sao baixas e as taxas de verdadeiro-positivo e verdadeiro-negativo sao altas (GARCIA-

TEODORO et al., 2009). Para garantir a eficiencia, o modelo deve ser atualizado sempre que

houver mudancas nas definicoes de comportamento normal ou de ataque.

Apesar da possibilidade de alarmes falsos, a deteccao baseada em anomalia e uma

importante tecnica para IDS, porque a rede sempre esta exposta a novas ameacas. O desafio

consiste em descobrir fronteiras entre comportamentos normais e anomalos para uma boa

acuracia de classificacao (WU; BANZHAF, 2010).

De acordo com o processo de modelagem de deteccao, as tecnicas de deteccao

por anomalia podem ser divididas em tres grupos: baseadas em estatıstica, baseadas em

conhecimento e baseadas em Aprendizagem de Maquina (GARCIA-TEODORO et al., 2009).

Nas tecnicas baseadas em estatıstica, o modelo de comportamento e criado a partir do

perfil estatıstico do trafego de rede. O perfil e construıdo a partir de metricas como a taxa de

trafego, numero de pacotes relativos a um protocolo, taxa de conexoes, numero de diferentes

enderecos IP, etc. Em tempo real, o perfil estatıstico do trafego e obtido e comparado com o

perfil previamente tracado. Se o grau de irregularidade de um determinado evento superar um

Page 23: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

22

certo limiar, o sistema gera um alarme (GARCIA-TEODORO et al., 2009).

Uma vantagem das tecnicas baseadas em estatıstica e que um conhecimento previo

sobre as atividades consideradas normais nao e necessario. Uma desvantagem e a dificuldade de

configuracao dos parametros estatısticos. Alem disso, o sistema muitas vezes utiliza suposicoes

estaticas das atividades de rede (GARCIA-TEODORO et al., 2009).

Nas tecnicas baseadas em conhecimento, a classificacao dos eventos de rede e feita

a partir de um conjunto de regras, envolvendo tres fases. Primeiro, diferentes atributos e

classes sao identificados a partir dos eventos de treinamento. Depois, um conjunto de regras,

parametros e procedimentos de classificacao sao deduzidos. Por fim, o evento e classificado.

Por exemplo, o conjunto de regras pode ser especificado manualmente por um especialista,

descrevendo assim o comportamento esperado (GARCIA-TEODORO et al., 2009).

As tecnicas baseadas em conhecimento tem como pros: robustez, flexibilidade e

escalabilidade. E como contras: dificuldade e tempo necessario para se obter conhecimento

sobre os eventos de rede a serem analisados (GARCIA-TEODORO et al., 2009).

Nas tecnicas baseadas em Aprendizagem de Maquina, classificadores podem ser

utilizados para construcao de um modelo de comportamento para os eventos de rede, e assim

todo o trafego pode ser testado usando esse modelo (TSAI et al., 2009). Se o classificador

assinalar o trafego como ameaca, o sistema deve avisar a gerencia de rede. As caracterısticas do

trafego de rede que podem ser avaliadas incluem valores obtidos diretamente do cabecalho

dos pacotes, como o tipo de protocolo e as flags do cabecalho TCP, e variaveis de estado

dependentes da comunicacao entre origem e destino, como numero de bytes trocados (GOGOI

et al., 2012).

Os classificadores de Aprendizagem de Maquina possuem importantes caracterısticas,

como adaptabilidade, tolerancia a erros e resiliencia a ruıdos (WU; BANZHAF, 2010). Tambem

sao aplicaveis em tarefas de aprendizagem em que nao ha conhecimento previo sobre os padroes

a serem classificados (BRUGGER, 2004). Mas sao altamente dependentes do modelo gerado, e

consequentemente da qualidade dos dados de treinamento (GARCIA-TEODORO et al., 2009).

2.2 APRENDIZAGEM DE MAQUINA

Nesta secao sera fundamentada a teoria da Aprendizagem de Maquina, visto que alguns

algoritmos de aprendizagem foram estudados, desenvolvidos e implementados para deteccao de

probing no presente trabalho.

Page 24: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

23

As tecnicas de Aprendizagem de Maquina sao usadas para classificar padroes de dados

em categorias ou classes. Para este fim, sao utilizados dados de treinamento, previamente

categorizados, para construcao de um modelo de aprendizado (classificador). Uma vez gerado

o modelo, novos padroes de dados podem ser classificados (MITCHELL, 1997).

Na fase de aprendizagem, utiliza-se um conjunto de dados de treinamento previamente

rotulados e um algoritmo gerador do modelo. Essa fase pode ser computacionalmente intensa

e a qualidade do conjunto de dados afeta diretamente a qualidade do modelo a ser obtido (WU;

BANZHAF, 2010).

Na fase de classificacao, as mesmas caracterısticas avaliadas nos exemplos de

treinamento sao extraıdas dos novos exemplos a serem classificados. Essas caracterısticas sao

aplicadas, entao, ao classificador para escolha das classes dos novos exemplos.

Em resumo, o ciclo do projeto em Aprendizagem de Maquina e dividido em cinco

etapas: obtencao de dados, escolha das caracterısticas, escolha do classificador, treinamento

(aprendizagem) e avaliacao de resultados.

2.2.1 EXTRACAO DE CARACTERISTICAS

Nesta secao sera fundamentada a teoria da extracao de caracterısticas, etapa preliminar

ao uso de um classificador. No presente trabalho, um algoritmo extrator de caracterısticas foi

implementado para deteccao de probing.

Para a classificacao de padroes por Aprendizagem de Maquina, o primeiro passo e

extrair caracterısticas que distinguem bem os padroes. As caracterısticas podem ser valores

numericos e nao-numericos. Um caso classico da literatura e a separacao de duas especies

de peixes: robalo e salmao (DUDA et al., 2002). Neste caso, uma camera pode fotografar

os peixes, para que na sequencia algumas caracterısticas sejam extraıdas. Antes da extracao,

porem, e necessaria uma etapa de pre-processamento, para isolar os peixes nas imagens. A

figura 2 mostra o arranjo do problema juntamente com as etapas necessarias para classificacao.

O objetivo da extracao de caracterısticas e reduzir a quantidade de dados, descrevendo

as amostras a partir de atributos ou caracterısticas. No problema exemplo, podem-se imaginar

algumas caracterısticas que diferenciam as duas especies, como comprimento, luminosidade,

largura, numero e forma das nadadeiras e posicao da boca. A figura 3 mostra um possıvel

histograma separando uma quantidade de robalo e salmao por comprimento. Na media, os

robalos parecem maiores que os salmoes, porem nao ha um valor limiar de comprimento que

separe bem as duas classes.

Page 25: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

24

Figura 2: Arranjo de um exemplo classico de Aprendizagem de Maquina: separacao de peixes emsalmao e robalo e etapas necessarias para classificacao.

Fonte: Duda et al. (2002)

Figura 3: Histograma para a caracterıstica comprimento para as duas classes.

Fonte: Duda et al. (2002)

Agora, na figura 4, tem-se um histograma separando os peixes por luminosidade.

Percebe-se que essa separacao e mais satisfatoria que a separacao por comprimento. Ainda

assim, nao ha um valor limiar de luminosidade que separe completamente as duas classes. O

menor numero de erros de classificacao acontece para x*. Admitindo-se erros de classificacao,

esse valor pode ser deslocado para a direita ou esquerda. Deve ser avaliado o custo para o erro,

pois para quem compra um robalo nao ha muita insatisfacao caso o peixe entregue seja um

salmao, mas o caso inverso gera enorme insatisfacao, pois o salmao e mais caro.

Page 26: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

25

Figura 4: Histograma para a caracterıstica luminosidade para as duas classes.

Fonte: Duda et al. (2002)

Na procura por outra caracterıstica, pode-se observar que em geral o robalo e mais

largo que o salmao. Mas, considerando que nenhuma caracterıstica sozinha separa bem as

classes, pode-se usar mais de uma caracterıstica. Utilizando vetores do tipo v = (luminosidade,

largura) para descrever os exemplos no espaco bidimensional, obtem-se a figura 5. Pode-se

definir a reta mostrada como a fronteira de decisao, em que todos os pontos abaixo da reta sao

classificados como salmao e todos os pontos acima da reta sao classificados como robalo.

Figura 5: Salmoes e robalos espalhados no plano conforme as caracterısticas luminosidade elargura. A decisao de fronteira escolhida e a reta que melhor separa as duas classes.

Fonte: Duda et al. (2002)

A fronteira de decisao escolhida ainda produz erros de classificacao, mas percebe-se

que esta generaliza o problema. Poderia ser escolhida uma fronteira nao linear que mudasse

Page 27: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

26

suas curvas para separar completamente as duas classes. Porem, o objetivo da aprendizagem e

generalizar a classificacao para novos exemplos e nao se adaptar completamente aos exemplos

de treinamento (DUDA et al., 2002).

2.2.2 CLASSIFICADOR ARVORE DE DECISAO

Nesta subsecao sera fundamentada a teoria da Arvore de Decisao, pois este foi o

primeiro classificador desenvolvido e implementado para deteccao de probing no presente

trabalho.

A Arvore de Decisao e implementada como um conjunto de regras ‘se-entao’ e

classifica um exemplo atravessando uma estrutura em arvore ate que uma folha associada a

uma classe seja atingida. Cada no da arvore testa uma caracterıstica (atributo) do exemplo a

ser classificado, e cada ramo, partindo de um no, corresponde a um dos valores possıveis da

caracterıstica. Os nos finais sao chamados de folhas e correspondem as possıveis classes. A

Arvore de Decisao deve ser considerada quando o problema-alvo possui instancias descritas

por um conjunto fixo de atributos com classes de saıda discretas. (MITCHELL, 1997).

A figura 6 apresenta um exemplo de Arvore de Decisao para classificacao de frutas. A

classificacao e feita de cima para baixo, comecando pela raiz da arvore na qual o atributo cor e

testado. A partir do valor do primeiro atributo, o proximo atributo (tamanho ou forma) e testado

no no correspondente. Este processo se repete ate que uma folha contendo uma das possıveis

classes da instancia seja selecionada: melancia, maca, uva, banana, toranja, limao ou cereja.

Figura 6: Exemplo de uma Arvore de Decisao para classificacao de frutas.

Fonte: Adaptado de Duda et al. (2002)

Um vetor do tipo v = (doce, vermelha, redonda, medio) para as caracterısticas (sabor,

cor, forma, tamanho) e classificado como maca. No primeiro teste, o da cor, e selecionado o

Page 28: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

27

terceiro ramo, pois a cor do exemplo a ser classificado e vermelha. O segundo teste, entao, e o do

tamanho. Como no exemplo o tamanho e medio, esse e classificado como maca. Esse simples

exemplo mostra uma das vantagens da Arvore de Decisao com relacao a outros classificadores:

a interpretabilidade (DUDA et al., 2002). O modelo e composto por regras que sao faceis de

visualizar e de entender.

O algoritmo basico para a construcao do modelo da arvore, a partir de exemplos de

treinamento previamente categorizados, e o ID3 (Iterative Dichotomiser 3). A primeira tarefa

e determinar qual o atributo a ser testado na raiz da arvore. Para isso, cada atributo e avaliado

a partir de um parametro estatıstico — o ganho de informacao — para determinar o quao bem

separa as classes dos exemplos de treinamento. O atributo com maior ganho de informacao e

escolhido como raiz da arvore. Um no descendente e entao criado para cada valor possıvel do

atributo raiz e o processo de avaliacao dos atributos e repetido (MITCHELL, 1997).

No ID3 e realizada uma busca ‘gulosa’ por uma arvore que se encaixe com os exemplos

de treinamento, na qual o algoritmo nunca reconsidera as escolhas anteriores. Obrigatoriamente

os atributos tambem devem ter valores discretos para o calculo do ganho de informacao. Uma

evolucao do ID3 e o algoritmo C4.5, que permite trabalhar com atributos de valores contınuos

(MITCHELL, 1997).

O ganho de informacao faz uso de outro parametro estatıstico: a entropia, que

caracteriza a pureza ou impureza de uma colecao aleatoria de exemplos. A entropia de um

conjunto de exemplos S com c classes e definida na equacao (1), na qual pi e a proporcao de

exemplos da classe i em S (MITCHELL, 1997).

Entropia(S) =c

∑i=1−pi log2 pi (1)

A partir da entropia, pode ser calculado o ganho de informacao G(S,A) de um atributo

A, relativo a colecao de exemplos S, conforme a equacao (2). Nesta, Valores(A) e o conjunto

de todos os valores possıveis do atributo A, Sv e o subconjunto de S para o qual A tem valor

v, |Sv| e a quantidade de exemplos de Sv e |S| e a quantidade de exemplos de treinamento de S

(MITCHELL, 1997).

Ganho(S,A) = Entropia(S)− ∑v∈Valores(A)

|Sv||S|

Entropia(Sv) (2)

A construcao da Arvore de Decisao termina apos todos os atributos terem sido

considerados nos nos da arvore.

Page 29: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

28

2.2.3 CLASSIFICADOR NAIVE BAYES

Nesta subsecao sera fundamentada a teoria do Naive Bayes, pois este foi o segundo

classificador desenvolvido e implementado para deteccao de probing no presente trabalho.

Os algoritmos bayesianos utilizam distribuicoes de probabilidade para descrever a

relacao entre dados e classes. Para a classificacao de um novo exemplo, sao calculadas

as probabilidades desse pertencer a cada classe e, entao, a classe de maior probabilidade

e assinalada. O conhecimento previo sobre o problema deve ser aplicado e quando as

probabilidades iniciais nao sao conhecidas, estes valores devem ser estimados a partir dos

exemplos de treinamento (MITCHELL, 1997). O teorema de Bayes e dado pela equacao (3):

P(c|X) =P(X |c)P(c)

P(X)(3)

Em que:

• P(c|X) e a probabilidade da classe c dado o vetor X , ou seja, a probabilidade do vetor X

pertencer a classe c;

• P(X |c) e a probabilidade do vetor X dada a classe c, ou seja, a probabilidade do vetor X

existir tendo c como classe;

• P(c) e a probabilidade previa da classe c, que nao depende do vetor X ;

• P(X) e a probabilidade previa do vetor X existir;

Para calcular a classe de maior probabilidade, o denominador pode ser desprezado,

pois e uma constante que independe das classes. Assim, a classe a ser escolhida e dada pela

equacao (4), em que c j corresponde as possıveis classes do problema (MITCHELL, 1997).

c = arg max P(X |c j) ·P(c j) (4)

O termo P(c j) e calculado como o numero de exemplos da classe c j divido pelo

numero total de exemplos de treinamento. O termo P(X |c j), com X tendo n atributos, e

calculado, para cada classe c j, considerando todas as combinacoes possıveis dos diferentes

valores dos n atributos de X . Para simplificar essa condicao, o classificador Naive Bayes assume

que os atributos sao condicionalmente independentes. Assim, a probabilidade P(X |c j) pode ser

calculada pelo produto das probabilidades individuais de cada atributo inferindo a classe c j

Page 30: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

29

(MITCHELL, 1997). Se o vetor X tem n atributos, a classe escolhida pelo classificador Naive

Bayes e dada pela equacao (5).

cnb = arg max

(n

∏i=1

P(ai|c j)

)·P(c j) (5)

Na equacao, o subscrito nb indica Naive Bayes. Se o atributo ai de um exemplo de

teste tem valor v, o termo P(ai|c j) e igual a divisao do numero de exemplos de treinamento da

classe c j com atributo ai igual a v pelo numero total de exemplos de treinamento.

Se os valores dos atributos forem contınuos, estes devem ser discretizados antes da

aplicacao da equacao. Isso e feito a partir da definicao de intervalos de variacao para os valores

de atributo. Assim, havera probabilidades para cada intervalo (DUDA et al., 2002).

2.2.4 CLASSIFICADOR K-VIZINHOS MAIS PROXIMOS (KNN)

Nesta subsecao sera fundamentada a teoria do kNN, pois este foi o terceiro

classificador desenvolvido e implementado para deteccao de probing no presente trabalho.

Alguns classificadores de Aprendizagem de Maquina, como a Arvore de Decisao e o

Naive Bayes, constroem uma descricao explıcita da funcao-alvo de classificacao a partir dos

exemplos de treinamento. O mesmo nao acontece para os algoritmos baseados em instancias.

Neste caso, nao ha construcao de um modelo e a etapa de treinamento consiste simplesmente

em armazenar os exemplos de treinamento em memoria (MITCHELL, 1997).

O algoritmo baseado em instancias mais fundamental e o kNN, o qual classifica novas

instancias a partir do grau de similaridade para com os exemplos de treinamento. Assim, a

aproximacao da funcao-alvo acontece na hora da classificacao e muda para cada nova instancia.

O kNN assume que as instancias podem ser representadas no espaco Euclidiano, em

que cada atributo corresponde a uma coordenada. Assim, por exemplo, num problema cujas

instancias tenham tres atributos, estas podem ser representadas no espaco tridimensional. Uma

implicacao e que os atributos precisam ser valores numericos. Para a classificacao de uma

nova instancia, o kNN procura os k exemplos de treinamento mais similares e atribui a classe

que mais aparece entre esses k exemplos. A medida de similaridade empregada e a distancia

Euclidiana. Entao, os k exemplos mais similares sao os k vizinhos mais proximos da instancia

de teste a ser classificada. O k e um parametro de projeto do classificador (MITCHELL, 1997).

Para encontrar os k vizinhos mais proximos de uma instancia de teste, o algoritmo

precisa computar a distancia dessa para todos os exemplos de treinamento. A distancia

Page 31: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

30

Euclidiana entre duas instancias v1 = (a1,a2, ...,an) e v2 = (b1,b2, ...,bn) de n atributos

e calculada conforme a equacao (6). O algoritmo tambem precisa manter os k pares

distancia/classe correspondentes aos vizinhos, para que ao final das iteracoes, a classe de maior

ocorrencia seja assinalada.

d(v1,v2) =

√n

∑i=1

(bi−ai)2 (6)

O funcionamento grafico do kNN pode ser conferido na figura 7. Neste problema, ha

14 instancias de treinamento: 7 da classe azul e 7 da classe vermelha. Cada instancia possui

dois atributos, de modo que podem ser representadas no espaco bidimensional. Ha tambem uma

instancia de teste, representada em branco, a qual se quer classificar como azul ou vermelha.

Figura 7: Exemplo grafico da classificacao de uma instancia em azul ou vermelha pelo kNN.

Fonte: Autoria Propria

Considerando a distancia Euclidiana, temos que para:

• k = 1: A classe da instancia de teste sera vermelha, pois a instancia de treinamento mais

proxima pertence a classe vermelha;

• k = 2: A classe da instancia de teste pode ser vermelha ou azul (criterio de projeto), pois

ha uma instancia de treinamento de cada classe nas proximidades;

• k = 3: A classe da instancia de teste sera azul, pois entre as tres instancias de treinamento

mais proximas, duas sao da classe azul. Para esse caso e mostrada a regiao esferica que

abriga os tres vizinhos mais proximos.

Page 32: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

31

No exemplo, os atributos das instancias tem magnitudes semelhantes. Mas em outros

casos isso pode nao acontecer. Para evitar que atributos com um intervalo maior de valores

possıveis tenham maior influencia no calculo da distancia, e necessario normalizar os atributos.

Por exemplo, todos os atributos podem ser normalizados entre -1 e +1.

2.3 APRENDIZAGEM DE MAQUINA PARA DETECCAO DE INTRUSAO

Nesta secao sera apresentado o estado da arte dos trabalhos que envolvem o uso de

extracao de caracterısticas, Arvore de Decisao, Naive Bayes e kNN para deteccao de intrusao,

em software e hardware.

2.3.1 APLICACOES DE EXTRACAO DE CARACTERISTICAS EM SOFTWARE EHARDWARE

Para detectar intrusoes, o primeiro passo e extrair caracterısticas dos pacotes de rede

para analise. A seguir, serao apresentados alguns trabalhos da literatura que aplicam extracao

de caracterısticas. Em alguns casos nao foram utilizados classificadores de Aprendizagem de

Maquina para deteccao de intrusao, mas considera-se aqui que o processamento de atributos

dos pacotes antes da fase de deteccao e uma forma de extracao de caracterısticas.

Na literatura, boa parte dos estudos de deteccao de intrusao por anomalia utiliza o

conjunto de dados publico KDD 99 (UNIVERSITY OF CALIFORNIA, IRVINE, 1999). Este

foi construıdo a partir do banco de dados DARPA Intrusion Detection Evaluation Data Set,

gerado pelo Lincoln Labs do Massachusetts Institute of Technology em 1998. O laboratorio

montou um ambiente para adquirir dados de uma simulacao da rede local da Forca Aerea

americana durante nove semanas. Na simulacao tambem foram gerados ataques dos tipos

probing, DoS, U2R e R2L. Ao todo, foram gerados cinco milhoes de conexoes de treinamento

e dois milhoes de conexoes de teste.

Para avaliacao do KDD 99 foram extraıdas 41 caracterısticas dos registros de conexoes,

divididas em tres grupos, conforme mostra o quadro 1. Apesar de ser bastante utilizado, o KDD

99 e antigo e, desde a sua montagem, os padroes de trafego normal mudaram bastante e os

ataques de rede evoluıram. Por isso, novos conjuntos de dados para NIDS tem sido propostos.

Para geracao do conjunto de dados geralmente utiliza-se um cenario de rede

envolvendo maquinas hosts e um servidor. Gogoi et al. (2012) montaram um ambiente

composto por um roteador conectado a internet, switches para interconexao da rede local, um

servidor e maquinas clientes. Dentre os clientes, algumas maquinas eram responsaveis por gerar

Page 33: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

32

Grupo de caracterısticas Quantidade Exemplos

De pacotes individuais 9tipo de protocolo, numero de bytes enviados e

tipo de servico de rede

De trafico, considerandouma janela de tempo

de 2 segundos19

numero de conexoes para o mesmo host,numero de conexoes para o mesmo servico e

porcentagem de conexoes com errosde sincronismo

Do conteudo da conexao(carga util dos pacotes) 13

numero de tentativas de login sem sucesso,numero de acessos de administrador e

numero de operacoes de criacao de arquivo

Quadro 1: Atributos dos pacotes considerados no banco de dados KDD 99.

Fonte: Adaptado de UNIVERSITY OF CALIFORNIA, IRVINE (1999)

ataques contra maquinas vıtimas. Para geracao do trafego de ataque foram utilizados scripts em

linguagem C. Utilizou-se trafego simulado de internet para producao dos registros normais.

Com relacao as caracterısticas utilizadas para deteccao de intrusao, ha varias propostas

para classificacao de trafego em normal ou ataque. Davis e Clark (2011) escreveram uma

revisao do estado da arte no pre-processamento de dados envolvendo aplicacoes de NIDS,

incluindo uma lista grande de caracterısticas sugeridas pelos trabalhos analisados.

Para deteccao de probing, em geral sao utilizadas caracterısticas provenientes do

cabecalho dos pacotes. A analise do cabecalho reduz os requerimentos de processamento, pois

o cabecalho corresponde apenas a uma pequena porcao do pacote. Alem disso, a abordagem

atraves do cabecalho continua valida mesmo quando a carga util do pacote esta criptografada.

Outra vantagem do processamento apenas do cabecalho e que existem ferramentas prontas para

este fim, como Libpcap, Tcpdump e NetFlow (DAVIS; CLARK, 2011).

Em geral, as caracterısticas analisadas sao provenientes dos cabecalhos IP, UDP, ICMP

e TCP, mostrados, respectivamente, nas figuras 8, 9, 10 e 11. Todos os pacotes de rede

possuem cabecalho IP (20 bytes), apos os 14 bytes do cabecalho Ethernet. Os cabecalhos UDP

(8 bytes), ICMP (8 bytes) e TCP (20 bytes), para os pacotes destes protocolos, aparecem apos o

cabecalho IP.

Alguns trabalhos consideram apenas caracterısticas individuais do cabecalho dos

pacotes para deteccao de probing. Um dos trabalhos pioneiros com essa propriedade foi o

Spade, que funciona como um plugin do Snort (STANIFORD et al., 2002). Foram considerados

como atributos os enderecos IP de origem e destino e as portas de origem e destino, que

sao extraıdos a partir do proprio Snort. Utilizou-se uma tecnica estatıstica, baseada em

probabilidades, para deteccao de probing.

Page 34: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

33

Figura 8: Campos do cabecalho IP.

Fonte: Adaptado de Postel (1981a)

Figura 9: Campos do cabecalho UDP.

Fonte: Adaptado de Postel (1980)

Figura 10: Campos do cabecalho ICMP.

Fonte: Adaptado de Postel (1981b)

Figura 11: Campos do cabecalho TCP.

Fonte: Adaptado de Postel (1981c)

Page 35: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

34

Porem, como os ataques de rede podem ser encontrados a partir de um conjunto de

pacotes em vez de um unico pacote, caracterısticas relativas a conexao tambem devem ser

consideradas (DAVIS; CLARK, 2011).

As caracterısticas relativas a conexao tambem podem vir do cabecalho dos pacotes,

mas nesse caso sao considerados os varios pacotes que compoem uma unica conexao ou

multiplas conexoes. O trafico numa unica conexao e unidirecional e tem enderecos e portas

em comum. As caracterısticas sao observadas durante o fluxo de conexao, como contadores de

pacotes, contadores de bytes e tempo medio de chegada de pacotes (DAVIS; CLARK, 2011).

Estevez-Tapiador et al. (2003) consideraram as flags do cabecalho TCP como

caracterısticas para deteccao de ataques. Esses atributos foram extraıdos com o tcpdump.

Para cada conexao, quantizou-se a sequencia de combinacao das flags em sımbolos, para uso

num modelo de Cadeias de Markov. Assim, foi possıvel detectar ataques que modificavam o

comportamento normal das sessoes TCP.

Quando multiplas conexoes sao analisadas, como nos casos em que hosts utilizam

varios servicos diferentes (um por vez), considera-se uma certa janela de tempo. Nos trabalhos

da literatura, podem ser encontradas janelas que variam de 2s ate 24h (DAVIS; CLARK, 2011).

Muraleedharan et al. (2010) consideraram os seguintes atributos: numero de pacotes,

tamanho medio do pacote, duracao media da sessao, numero de sessoes, numero medio de

pacotes por sessao e numero de sessoes com apenas um pacote. A partir destes atributos,

extraıdos com o NetFlow, construiu-se um modelo de comportamento normal para os protocolos

TCP, UDP e ICMP. Ataques probing e DoS foram detectadas a partir do teste Qui-quadrado.

Ha alguns trabalhos que envolvem NIDS em hardware. Song e Lockwood (2005)

desenvolveram um sistema em FPGA (Xilinx XCV2000E) que implementa 222 regras do

Snort para deteccao de intrusao a partir dos cabecalhos dos pacotes. A entrada do circuito

e um pacote e os atributos analisados sao os enderecos IP e as portas de origem e destino e o

protocolo. Para extrair os atributos, simplesmente acessou-se o offset de cada campo. De acordo

com os valores dos atributos, os pacotes sao compactados numa sequencia de bits para serem

comparados com as assinaturas do Snort (armazenadas em blocos de memoria RAM). Foram

utilizados o algoritmo Bit Vector (BV) e a estrutura de Memoria de Conteudo Enderecavel

Ternaria (TCAM) para resumir as informacoes dos pacotes a partir dos atributos. Foi obtida

uma taxa de transferencia da ordem de 2,5 Gbps para a arquitetura completa.

Katashita et al. (2007) tambem desenvolveram um sistema que implementa regras do

Snort. Alem de assinaturas para os cabecalhos, foram incluıdas tambem assinaturas para a

Page 36: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

35

carga util dos pacotes, totalizando 1225 regras. A entrada do circuito e um pacote. O NIDS

incluiu duas placas com FPGA. A placa principal continha a FPGA Virtex-II Pro 100, na qual

foram sintetizados os circuitos de comparacao das regras do Snort. Utilizou-se a tecnica do

Automato Finito Nao-determinıstico (NFA) para comparacao dos bits das assinaturas. A placa

de interface continha a FPGA Virtex-II Pro 7, a qual recebia o trafego ethernet e transmitia

para a placa principal via protocolo 10 Gigabit Ethernet XAUI. O circuito principal ocupou em

media 62.500 celulas logicas. Obteve-se uma taxa de transferencia de 10 Gbps para o NIDS.

Mediu-se ainda o consumo energetico do sistema completo: 49 W.

Das et al. (2008) desenvolveram uma arquitetura, em FPGA (Xilinx Virtex II

xc2v1000), composta de um modulo de extracao de caracterısticas e um modulo de deteccao,

que utiliza a tecnica estatıstica Analise de Componentes Principais (PCA) para detectar port

scan e syn flood. A arquitetura tem como entrada o cabecalho dos pacotes e considera as flags

do TCP ao longo de uma conexao como atributos. O modulo de extracao tem quatro partes. A

primeira recebe os enderecos IP e portas de origem e destino, que formam uma chave, e as flags

do TCP. A segunda parte e composta por funcoes hash de Jenkins, que fornecem um endereco

a partir da chave. A terceira parte e uma tabela, em forma de memoria, que e acessada pelas

hashes e armazenam os valores das flags. A ultima parte do extrator calcula o valor agregado

dos atributos a partir da tabela. O extrator se mostrou eficiente, pois resumiu as informacoes

das conexoes numa porcao constante de memoria. Para analisar os resultados da sistema foram

utilizados registros do KDD 99. Com relacao ao extrator de caracterısticas, obteve-se uma taxa

de transferencia da ordem de 21 Gbps.

A partir da analise dos trabalhos desta subsecao, conclui-se que poucos trabalhos do

estado da arte apresentam resultados especıficos quando a extracao de caracterısticas. Em

geral, os valores de taxas de transferencia sao apresentados para o sistema completo. Tambem

e pequeno o numero de trabalhos que apresentam comparacoes entre implementacoes em

software e hardware e medicoes de consumo dos sistemas de deteccao de intrusao.

Pode-se dizer, ainda, que boa parte dos trabalhos de deteccao de intrusao em hardware

apresenta implementacoes das assinaturas do Snort, em detrimento das tecnicas de deteccao

por anomalia. Outros trabalhos com essa caracterıstica sao: (HARWAYNE-GIDANSKY et al.,

2009), (LE; PRASANNA, 2013) e (PONTARELLI et al., 2013).

2.3.2 APLICACOES DE ARVORE DE DECISAO EM SOFTWARE E HARDWARE

A Arvore de Decisao e uma boa escolha para deteccao de intrusao por algumas

razoes: os dados de entrada podem ser contınuos ou discretos, nao ha necessidade de pre-

Page 37: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

36

processamento, o modelo e de facil entendimento e o classificador nao e computacionalmente

intenso. Alem disso, as classes de saıda sao discretas: normal ou ataque. Uma desvantagem e

que se o modelo necessitar de atualizacao, a arvore inteira deve ser reconstruıda.

Koshal e Bag (2012) criaram dois modelos detectores de intrusao, um com a Arvore

de Decisao e outro com o SVM. Os dados de treinamento e teste foram retirados do NSL-KDD,

um banco de dados criado a partir do KDD 99, mas com algumas melhorias como a exclusao

de registros duplicados (UNIVERSITY OF NEW BRUNSWICK, 2014). Antes do modelo da

arvore ser gerado, utilizou-se o algoritmo de Selecao de Caracterısticas baseado em Correlacao

(CFS) que selecionou 11 atributos relevantes (para a classificacao) do total de 41 atributos do

NSL-KDD. Mostrou-se que para o conjunto de teste, a arvore obteve uma acuracia de 99,9%.

Ibrahim et al. (2012) criaram quatro modelos detectores de intrusao com a Arvore de

Decisao, cada um com um tipo diferente de algoritmo: C5 (sucessor do algoritmo C4.5), CRT,

QUEST e CHAID. Os conjuntos de dados de treinamento e teste foram retirados do NSL-KDD

e os ataques alvo de deteccao foram probing, DoS, R2L e U2R. Mostrou-se que para o conjunto

de teste, as acuracias para os diferentes algoritmos variaram de 93% a 99%.

Os dois trabalhos citados acima foram avaliados em software. Foram apresentados

apenas resultados de acuracia de classificacao, sem avaliacao de taxa de transferencia e consumo

energetico. Utilizou-se o NSL-KDD para modelagem dos classificadores, entao a acuracia

obtida pode nao ser a mesma no cenario de rede atual. Nao foram encontrados trabalhos que

utilizam a Arvore de Decisao para deteccao de intrusao de rede em hardware.

2.3.3 APLICACOES DE NAIVE BAYES EM SOFTWARE E HARDWARE

Uma vantagem do Naive Bayes para deteccao de intrusao e que as probabilidades sao

constantes para cada intervalo de atributo e, numa implementacao baseada em tabela, o modelo

pode ser facilmente atualizado sem alteracao da estrutura do classificador.

Li e Li (2010) criaram um modelo detector de intrusao que utiliza o Naive Bayes em

conjunto com o algoritmo AdaBoost. Os dados de treinamento e teste foram retirados do KDD

99 e os ataques alvo de deteccao foram probing, DoS, R2L e U2R. Foram utilizados apenas seis

atributos para geracao do modelo. A acuracia obtida para a base de dados de teste foi de 84%.

Mukherjee e Sharma (2012) criaram um modelo detector de intrusao que utiliza o

Naive Bayes. Os conjuntos de dados de treinamento e teste foram retirados do NSL-KDD.

Foram avaliadas algumas tecnicas de selecao de caracterısticas, para reduzir o total de atributos

utilizados na modelagem do Naive Bayes. Mostrou-se que para a classificacao dos vetores do

Page 38: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

37

conjunto de teste em normal ou probing, os modelos apos selecao de caracterısticas foram mais

eficientes que o modelo do classificador utilizando todas as 41 caracterısticas do NSL-KDD.

Tuncer e Tatar (2010) desenvolveram um NIDS na FPGA Cyclone III. O processador

Nios II, que pode ser sintetizado no interior da FPGA, foi utilizado para extrair os atributos e

classificar os pacotes em normal ou ataque com o Naive Bayes. Os atributos considerados no

modelo foram: protocolo, tamanho do pacote, endereco IP de origem, endereco IP de destino,

porta de origem e porta de destino. Para construcao do modelo, foram gerados 250 pacotes de

treinamento, dos quais 199 eram normais e 51 eram ataques. No momento da classificacao, sao

calculadas as probabilidades do pacote ser normal e de ser ataque. Se a primeira probabilidade

for maior, o pacote e encaminhado. Caso contrario, o pacote e descartado. O sistema embarcado

foi testado com o proprio conjunto de treinamento e nesse caso a acuracia foi de 97,2%.

Vijayasarathy et al. (2011) desenvolveram um sistema para deteccao de ataques DoS,

com o classificador Naive Bayes, na FPGA Virtex 4. Para pacotes do protocolo TCP, os atributos

considerados foram as flags do cabecalho e o intervalo de tempo de chegada entre os pacotes.

Este ultimo atributo tambem foi considerado para os pacotes do protocolo UDP. Os pacotes

de treinamento e de teste foram retirados do KDD 99 e de trafego gerado pela Society for

Electronic Transactions and Security (SETS), instituicao da area de seguranca de rede da India.

As acuracias, para os diferentes conjuntos de dados, ficaram acima de 97%.

Nos trabalhos citados nesta subsecao, foram apresentados apenas resultados de

acuracia de classificacao, sem avaliacao de taxa de transferencia e consumo energetico. Em

software, o KDD 99 serviu como base de dados para modelagem dos classificadores, entao a

acuracia obtida pode nao ser a mesma no cenario de rede atual. No primeiro deles, ha outro

problema. Nao foi utilizado algoritmo de selecao para definir os atributos mais relevantes para

classificacao e por isso a acuracia no conjunto de teste ficou abaixo de 85%.

Os trabalhos em hardware utilizaram bases de dados atuais (e tambem o KDD 99 no

ultimo artigo), mas nao houve maiores explicacoes sobre como essas bases foram geradas. No

primeiro deles, ha outros problemas. A acuracia foi avaliada apenas na base de treinamento, e

assim nao e possıvel concluir se o modelo classificador e generico. Alem disso, foram utilizados

apenas 250 pacotes para treinamento.

2.3.4 APLICACOES DE KNN EM SOFTWARE E HARDWARE

O classificador kNN e apropriado para deteccao de intrusao porque fornece uma

fronteira nao linear entre as classes normal e ataque. Alem disso, o modelo pode ser facilmente

Page 39: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

38

atualizado, pois consiste apenas em exemplos de treinamento armazenados em memoria. Uma

desvantagem do kNN e o alto esforco computacional, que ocorre inteiramente na hora da

classificacao e cresce com o numero de instancias de treinamento.

Li e Guo (2007) criaram um modelo detector de intrusao, baseado em anomalia,

que utiliza o kNN em conjunto com o algoritmo Transductive Confidence Machines (TCM).

Utilizou-se o TCM para reduzir o tamanho do conjunto de dados de treinamento necessario no

kNN. Os conjuntos de dados de treinamento e teste foram retirados do KDD 99 e os ataques

alvo de deteccao foram probing, DoS, R2L e U2R. Mostrou-se que para o conjunto de teste, o

modelo TCM-kNN obteve uma acuracia maior do que 99%, acertando mais classificacoes que

os algoritmos SVM, Redes Neurais e kNN padrao, tambem analisados.

Cheng et al. (2009) criaram um modelo detector de intrusao que utiliza o kNN em

conjunto com o algoritmo Multivariate Adaptive Regression Splines (MARS). Utilizou-se o

MARS para selecionar a classe mais comum entre os k vizinhos selecionados pelo kNN. Os

conjuntos de dados de treinamento e teste tambem foram retirados do KDD 99. Mostrou-se que

para o conjunto de teste, o modelo kNN-MARS obteve uma acuracia na faixa de 98%, acertando

mais classificacoes que os algoritmos SVM e kNN padrao.

Os dois trabalhos citados acima foram avaliados em software. Foram apresentados

apenas resultados de acuracia de classificacao, sem avaliacao de taxa de transferencia e consumo

energetico. Utilizou-se o KDD 99 para modelagem dos classificadores, entao a acuracia obtida

pode nao ser a mesma no cenario de rede atual. Nao foram encontrados trabalhos que utilizam

o kNN para deteccao de intrusao de rede em hardware.

Page 40: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

39

3 DESENVOLVIMENTO DO EXTRATOR DE CARACTERISTICAS

Neste capıtulo sera explicado o funcionamento do extrator de caracterısticas dos

pacotes de rede para deteccao de probing existente e apresentado o desenvolvimento da

implementacao correspondente em hardware. Serao apresentados, tambem, as plataformas e

metodos utilizados para avaliacao e comparacao das duas implementacoes.

3.1 IMPLEMENTACAO EM SOFTWARE

Nesta secao sera explicado o funcionamento do extrator de caracterısticas em software

que serviu de base para desenvolver a versao correspondente em hardware. O trabalho descrito

a seguir foi desenvolvido por Eduardo Kugler Viegas e pelo Prof. Dr. Altair Olivo Santin

(VIEGAS et al., 2013, 2014a, 2014b).

Os autores primeiramente montaram o banco de pacotes de rede, do qual os pacotes

sao objetos de classificacao. Para geracao do trafego criou-se o cenario com maquinas virtuais

mostrado esquematicamente na figura 12. O servidor e a maquina-alvo que recebe o trafego e

deve classifica-lo como normal ou ataque.

O trafego normal foi gerado com ferramentas de workload, a partir de requisicoes de

100 maquinas-cliente ao servidor: 54 gerando requisicoes HTTP, 33 gerando requisicoes SMTP,

7 gerando requisicoes SSH e 6 gerando requisicoes SNMP. O trafego de probing foi gerado com

a ferramenta Nessus, programa usado para auditar uma rede a procura de possıveis falhas. Com

o Nessus, selecionaram-se classes de ataques probing para inspecao e gerou-se o trafego de

ataque contra o servidor.

Os trafegos normal e de ataque foram gerados concomitantemente durante um perıodo

de trinta minutos. Os pacotes foram armazenados num arquivo PCAP, o qual mantem o

historico dos pacotes e pode ser utilizado como entrada para ferramentas de analise de rede. Ao

todo, foram gerados 9.431.075 pacotes, dos quais 9.416.113 sao normais e 14.962 sao ataques

probing. O software de extracao de caracterısticas usa o arquivo PCAP como entrada.

Page 41: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

40

Figura 12: Cenario para geracao de trafego normal e de ataque.

Fonte: Adaptado de Viegas et al. (2014a)

Com relacao as caracterısticas, os autores seguiram a literatura e escolheram atributos

que podem ser extraıdos: 1) diretamente do cabecalho de cada pacote e 2) a partir dos pacotes

pertencentes a uma mesma comunicacao entre hosts, considerando certa janela de tempo.

Os atributos escolhidos que podem ser extraıdos diretamente do cabecalho de cada

pacote sao mostrados no quadro 2. Cada atributo, com excecao do payload length, possui um

prefixo (ip, udp, icmp, tcp) indicando a qual cabecalho pertence. Os atributos do cabecalho IP

sao comuns a todos os pacotes, enquanto que os atributos dos cabecalhos UDP, ICMP e TCP

estao presentes apenas nos pacotes de protocolo UDP, ICMP e TCP, respectivamente.

Os atributos dos cabecalhos IP (para todos os pacotes) e UDP, ICMP e TCP (para

os pacotes com estes protocolos) estao em campos bem definidos nos pacotes. O atributo

payload length, que define o tamanho da carga util, pode ser calculado a partir do tamanho

do pacote descontando-se o tamanho dos cabecalhos.

Os atributos que podem ser extraıdos a partir de uma mesma comunicacao entre hosts

sao mostrados no quadro 3. A maioria dos atributos sao contadores e alguns sao calculados a

partir do cabecalho. Porem, nesse caso, considera-se cada conexao entre os hosts, dentro de

uma janela de 2 s. Em cada conexao, uma das maquinas e sempre o servidor e a outra maquina

pode ser um dos clientes que geram trafego normal ou o cliente que gera ataques.

O extrator foi desenvolvido em C++. Foi utilizada a biblioteca Libpcap para ler os

pacotes do arquivo PCAP e acessar estruturas com os campos dos protocolos UDP, ICMP e TCP.

Page 42: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

41

Numero Atributo Descricao Tamanho (bits)1 ip type Tipo de servico 82 ip length Tamanho do pacote IP 163 ip id Numero de identificacao 164 ip offset Offset do fragmento 135 ip RF Flag reservada 16 ip DF Flag “nao fragmente” 17 ip MF Flag “mais fragmentos” 18 ip proto Protocolo (TCP, UDP ou ICMP) 89 ip checksum Checksum do cabecalho IP 16

10 udp sport Porta de origem do cabecalho UDP 1611 udp dport Porta de destino do cabecalho UDP 1612 udp length Tamanho do datagrama 1613 udp checksum Checksum do datagrama 1614 icmp type Tipo da mensagem 815 icmp code Codigo da mensagem 816 icmp checksum Checksum da mensagem 1617 tcp sport Porta de origem do cabecalho TCP 1618 tcp dport Porta de origem do cabecalho TCP 1619 tcp seq Numero de sequencia 3220 tcp ack Numero de confirmacao 3221 tcp ffin Flag fin 122 tcp fsyn Flag syn 123 tcp frst Flag rst 124 tcp fpsh Flag push 125 tcp fack Flag ack 126 tcp furg Flag urgent 127 payload length Tamanho da carga util 16

Quadro 2: Lista de atributos extraıdos diretamente do cabecalho de cada pacote para distincaoentre trafego normal e de probing.

Fonte: Adaptado de Viegas et al. (2013).

Cada uma destas estruturas possui estruturas com os cabecalhos Ethernet, IP e do protocolo

correspondente, alem do timestamp e da carga util do pacote. Variaveis int armazenam cada um

dos 50 atributos mostrados nos quadros 2 e 3.

Para extracao das caracterısticas do quadro 2, as estruturas com os campos de cada

protocolo sao acessadas. O quadro 4 explica como cada atributo e extraıdo dependendo do

protocolo do pacote. Quando o protocolo e TCP, os atributos relativos aos cabecalhos UDP e

ICMP sao igualados a zero. Um raciocınio semelhante pode ser aplicado aos protocolos UDP e

ICMP, com excecao para as flags do cabecalho TCP. Para protocolos diferentes do TCP, as flags

sao igualadas a dois, visto que zero (flag nao setada) e um valor valido para o protocolo TCP.

Page 43: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

42

Numero Atributo Descricao1 conn status Estado da conexao TCP2 count c2s No de pacotes enviados do cliente para o servidor3 count s2c No de pacotes enviados do servidor para o cliente

4 count serv c2sNo de pacotes enviados, para o mesmo

servico, do cliente para o servidor

5 count serv s2cNo de pacotes enviados, para o mesmo

servico, do servidor para o cliente

6 num bytes c2sNo de bytes da carga util enviados

do cliente para o servidor

7 num bytes s2cNo de bytes da carga util enviados

do servidor para o cliente

8 num bytes serv c2sNo de bytes da carga util, enviados para omesmo servico, do cliente para o servidor

9 num bytes serv s2cNo de bytes da carga util, enviados para omesmo servico, do servidor para o cliente

10 num pushed c2sNo de pacotes com a flag PUSH setada

enviados do cliente para o servidor

11 num pushed s2cNo de pacotes com a flag PUSH setada

enviados do servidor para o cliente

12 num syn fin c2sNo de pacotes com as flags SYN e FIN setadas

enviados do cliente para o servidor

13 num syn fin s2cNo de pacotes com as flags SYN e FIN setadas

enviados do servidor para o cliente

14 num fin c2sNo de pacotes com a flag FIN setadaenviados do cliente para o servidor

15 num fin s2cNo de pacotes com a flag FIN setadaenviados do servidor para o cliente

16 num ack c2sNo de pacotes com a flag ACK setada

enviados do cliente para o servidor

17 num ack s2cNo de pacotes com a flag ACK setada

enviados do servidor para o cliente

18 num syn c2sNo de pacotes com a flag SYN setada

enviados do cliente para o servidor

19 num syn s2cNo de pacotes com a flag SYN setada

enviados do servidor para o cliente

20 num rst c2sNo de pacotes com a flag RST setadaenviados do cliente para o servidor

21 num rst s2cNo de pacotes com a flag RST setadaenviados do servidor para o cliente

22 first packet Verdadeiro se e o primeiro pacote trocado pelos hosts

23 first serv packetVerdadeiro se e o primeiro pacote

trocado pelos hosts para o mesmo servico

Quadro 3: Lista de atributos extraıdos a partir dos pacotes pertencentes a uma mesmacomunicacao entre hosts, considerando um janela de tempo de 2 s, para distincao entre trafegonormal e de probing.

Fonte: Adaptado de Viegas et al. (2013).

Page 44: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

43

Atributos / Protocolo UDP ICMP TCP

Do cabecalho IP A partir daestrutura IP

A partir daestrutura IP

A partir daestrutura IP

Do cabecalho UDP A partir daestrutura UDP 0 0

Do cabecalho ICMP 0A partir da

estrutura ICMP 0

Do cabecalho TCP(portas, seq e ack) 0 0

A partir daestrutura TCP

Do cabecalho TCP(flags) 2 2

A partir daestrutura TCP

payload length

Tamanho IPmenos tamanhodos cabecalhos

IP e UDP

Tamanho IPmenos tamanhodos cabecalhos

IP e ICMP

Tamanho IPmenos tamanhodos cabecalhos

IP e TCP

Quadro 4: Explicacao de como cada atributo do cabecalho dos pacotes e extraıdo.

Fonte: Adaptado de Viegas et al. (2014b).

Para a extracao dos atributos do quadro 3, e necessario guardar algumas variaveis de

estado da comunicacao entre hosts durante a janela de tempo de 2 segundos. Para esse fim, os

autores implementaram uma tabela de tamanho constante para armazenar os atributos.

A tabela tem 65536 (216) linhas e cada linha e acessada a partir da funcao hash FNV.

A chave da hash e um valor de 5 ou 7 bytes, formada a partir de dados da maquina cliente e da

caracterıstica a ser extraıda. Para os atributos com o infixo “ serv ”, no meio do nome, a chave

tem 7 bytes, composta dos 4 bytes do endereco IP do cliente, dos 2 bytes da porta do cliente

(iguais a 0 se o protocolo for ICMP no qual nao ha porta) e 1 byte que identifica o atributo a

ser extraıdo. Como esses atributos sao definidos para o mesmo servico (por isso o “ serv ”), a

porta do cliente, que identifica o servico em questao, tambem e considerada.

Para os demais atributos, que sao definidos apenas de host para host,

independentemente do servico requisitado, a chave da hash e composta por 5 bytes. Os dois

bytes da porta do cliente nao sao considerados nesse caso. A figura 13 mostra como a chave da

hash e montada e como uma determinada linha da tabela e acessada.

Do total de 23 atributos dependentes da comunicacao, os atributos first packet e

first serv packet nao precisam ser guardados na tabela, visto que podem ser extraıdos a

partir dos contadores de pacotes (atributos com o prefixo count). Assim, cada comunicacao

envolvendo dois hosts ocupa 21 linhas na tabela. Por exemplo, a comunicacao entre cliente A

e servidor ocupa 21 linhas, a comunicacao entre cliente B e servidor tambem ocupa 21 linhas e

Page 45: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

44

Figura 13: Montagem da chave da hash que acessa as linhas da tabela de atributos dependentesdos pacotes de uma mesma comunicacao.

Fonte: Adaptado de Viegas et al. (2014b)

assim por diante. Cada linha armazena um atributo de determinada comunicacao.

As linhas da tabela foram divididas em cinco celulas (de 0 a 4) com vida util de 0,5

segundos. A soma das celulas totaliza 2,5 segundos, mas a cada extracao uma das celulas e

desconsiderada, de forma que a janela de tempo para cada atributo e de 2 segundos. O processo

funciona da seguinte forma: se no tempo 0 s inicia-se uma extracao, os atributos sao atualizados

na celula 0, enquanto o conteudo da celula 4 deve ser apagado. A celula 0 continua sendo

atualizada ate o tempo de 0,5 s. A partir de 0,5 s, os atributos sao atualizados na celula 4

(previamente apagada), enquanto o conteudo da celula 3 deve ser apagado. E assim por diante,

de modo que as celulas sao utilizadas em ordem decrescente.

A cada momento, para extrair-se uma caracterıstica, devem ser somadas as celulas

desconsiderando-se a celula a ser apagada. A figura 14 mostra graficamente o funcionamento

temporal de cada celula e quais celulas devem ser somadas para se obter o valor do atributo.

Cada celula tem tamanho de 16 bits, de modo que uma linha possui 80 bits e a tabela

completa ocupa 5.242.880 bits.

O fluxograma do extrator e mostrado de forma resumida na figura 15. A primeira

operacao e justamente criar a tabela de atributos dependentes da comunicacao, com valor zero

em todas as celulas. Depois, configuram-se as celulas a ser atualizada e a ser apagada como 0 e

4, respectivamente, e o timestamp do extrator em zero.

Page 46: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

45

Figura 14: Celulas das linhas da tabela a serem consideradas para se obter o valor dos atributosdependentes da comunicacao.

Fonte: Adaptado de Viegas et al. (2014b)

Na sequencia, le-se um pacote. Se o timestamp do pacote (lido do arquivo PCAP, no

qual armazena-se a diferenca de tempo de chegada entre os pacotes a partir do tempo 0) for

maior que o timestamp da aplicacao por 0,5 s (janela de tempo de cada celula) ou mais, tres

operacoes sao feitas antes do prosseguimento da extracao. Primeiro, zeram-se os conteudos de

todas as celulas a serem apagadas. Segundo, decrementam-se as celulas a ser atualizada e a ser

apagada. Terceiro, soma-se 0,5 s ao timestamp da aplicacao e, entao, o teste da diferenca de

timestamps e repetido.

Quando nenhum zeramento e necessario, a extracao continua. Testa-se, entao, o

protocolo do pacote. Para cada um dos protocolos da aplicacao, UDP, ICMP ou TCP, as

funcoes correspondentes de extracao dos atributos do cabecalho e dos atributos dependentes

da comunicacao sao chamadas. A seguir, se houver mais pacotes a serem extraıdos, a aplicacao

volta ao ponto de leitura de pacote. Caso contrario, a aplicacao e encerrada.

A extracao dos atributos que dependem da comunicacao esta mostrada

simplificadamente como funcao na figura 15. Nesta etapa, os 23 atributos sao extraıdos,

um apos o outro. Cada extracao compreende: montar a chave da hash, calcular o valor da hash,

Page 47: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

46

Figura 15: Fluxograma simplificado do extrator de caracterısticas.

Fonte: Adaptado de Viegas et al. (2014b)

atualizar a celula da linha da tabela dada pela hash e calcular o valor do atributo a partir da

soma da celulas, excluindo-se a celula a ser apagada.

Quando o IP do servidor e o IP de origem do pacote, os atributos com sufixo

“ s2c” devem ser atualizados na tabela, enquanto que os atributos com sufixo “ c2s” nao sao

atualizados (embora sejam extraıdos). Quando o IP do servidor e o IP de destino do pacote, a

logica inverte-se. O quadro 5 mostra como cada atributo deve ser atualizado.

Page 48: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

47

Tipo Nome Generico Atualizacao

Estado da conexao TCP conn status

Valor definido a partir de maquinade estados dependente das flagsdo TCP (POSTEL, 1981c). Para

protocolos ICMP e UDP tem valores“icmp” e “udp”, respectivamente.

Contadores de pacotes count x2x

Incrementado de um em um a cada pacote.Se a origem do pacote e o servidor,

incrementa-se os atributos do tipo s2c.Se o destino do pacote e o servidor,

incrementa-se os atributos do tipo c2s.Quando ha o infixo serv (de servico),

o incremento acontece apenas parapacotes de mesmo servico (mesmas portas).

Contadores de bytes num bytes x2x

Incrementado com o tamanho da carga util.Se a origem do pacote e o servidor,

incrementa-se os atributos do tipo s2c.Se o destino do pacote e o servidor,

incrementa-se os atributos do tipo c2s.Quando ha o infixo serv (de servico),

o incremento acontece apenas parapacotes de mesmo servico (mesmas portas).

Contadores de flags num flag x2x

Incrementado para pacotes TCPquando a flag em questao esta setada.Se a origem do pacote e o servidor,

incrementa-se os atributos do tipo s2c.Se o destino do pacote e o servidor,

incrementa-se os atributos do tipo c2s.

Primeiro pacote first packet

“1” se o pacote em questao e oprimeiro da comunicacao entre cliente

e servidor; “0” caso contrario.Esse tipo de atributo e extraıdo apartir dos contadores de pacotes.

Quando ha o infixo serv (de servico),considera-se os pacotes de mesmo servico.

Quadro 5: Explicacao de como cada atributo dependente da comunicacao e atualizado.

Fonte: Adaptado de Viegas et al. (2014b).

O programa tem a funcionalidade de gerar um arquivo com os atributos extraıdos dos

pacotes. O formato gerado e o ARFF, que armazena as instancias com seus respectivos atributos

e classes (THE UNIVERSITY OF WAIKATO, 2014). Para o arquivo PCAP com a base de

pacotes, foi gerado um arquivo ARFF com as caracterısticas extraıdas e a classe (normal ou

ataque) dos 9.431.075 pacotes. Para saber se cada pacote era normal ou ataque, o extrator

verificou o endereco IP do cliente (para saber se este era o Nessus ou um dos workloads).

Page 49: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

48

Dos total de vetores de caracterısticas, os autores formaram um conjunto de

treinamento com 7480 vetores (3740 vetores normais e 3740 vetores de ataque) e um conjunto

de teste tambem com 7480 vetores (3740 vetores normais e 3740 vetores de ataque).

3.2 AVALIACAO EM SOFTWARE

Em posse do extrator fornecido pelos autores, este foi compilado e executado numa

placa-mae DN2800MT com processador Atom, fabricada pela Intel. Os processadores da

linha Atom sao de baixo consumo e voltados para aplicacoes em que a eficiencia energetica

e desejada. Os principais perifericos que compoem o ambiente, mostrado na figura 16, sao

um processador N2800, uma memoria RAM DDR3 de 4 GB e um disco rıgido de 500 GB. O

sistema operacional utilizado foi o openSUSE 13.1.

Figura 16: Ambiente para avaliacao dos algoritmos em software.

Fonte: Autoria Propria

Do arquivo com todos os pacotes, tambem fornecido, montou-se um novo arquivo

PCAP com 8.000.000 de pacotes atraves do programa Wireshark. O Wireshark e um analisador

de protocolos de rede de codigo aberto. Com esta ferramenta e possıvel capturar o trafego de

rede e analisa-lo em tempo real ou partir de um arquivo PCAP. Para o arquivo com 8.000.000

de pacotes, foram realizadas cem execucoes da aplicacao de extracao de caracterısticas em

sequencia, a fim de considerar a media de multiplas execucoes.

Para calcular a taxa de transferencia e o consumo energetico do extrator, foi necessario

obter o tempo de processamento e a potencia consumida pela aplicacao. Considera-se que o

consumo da aplicacao e o incremento de consumo da placa-mae durante o tempo de execucao

Page 50: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

49

da aplicacao em relacao ao consumo da placa-mae no estado inativo (sem executar nenhuma

aplicacao de usuario).

Para obter o tempo de processamento e o consumo referentes a aplicacao, utilizou-

se a plataforma desenvolvida por Cemin (2015) e mostrada esquematicamente na figura 17.

Alimenta-se a placa-mae com 15 VDC. Um resistor de 270 mΩ inserido entre a fonte e a placa

faz a funcao de sensor de corrente. Utiliza-se o DAQ USB-6008 da National Instruments,

operando a 5000 amostras/s com 12 bits de resolucao, para amostrar o consumo da placa-mae.

Figura 17: Plataforma usada para medicao do tempo de processamento e do consumo energeticodos algoritmos em software.

Fonte: Adaptado de Cemin (2015)

A plataforma possui a habilidade de medir o consumo de uma aplicacao especıfica

sendo executada no processador, descontando outras tarefas que por acaso sejam escalonadas

pelo Sistema Operacional. Para isso, monitora-se um sinal de sincronismo enviado via porta

paralela ao DAQ, que fica em nıvel alto enquanto a aplicacao esta sendo executada e nıvel baixo

caso contrario. A geracao desse sinal e possibilitada atraves do kernel do Linux instrumentado

para reconhecer o Thread Group ID (TGID) a qual pertence a aplicacao.

Com as amostras validas do DAQ (ou seja, as amostras feitas com o sinal de

sincronismo em nıvel alto), o valor da tensao de alimentacao da fonte e o valor da resistencia,

pode-se calcular o consumo de potencia da aplicacao.

Atraves de registros de timestamps durante a execucao, tambem e possıvel calcular

isoladamente o tempo de processamento da aplicacao especıfica na placa-mae, com uma

resolucao de 1 µs.

Page 51: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

50

Utilizou-se a plataforma descrita para avaliar a aplicacao do extrator de caracterısticas.

O clock do processador foi travado na frequencia maxima (1,86 GHz) e habilitaram-se apenas

um core e uma thread. Os tempos de processamento para a aplicacao completa, que consiste na

leitura mais extracao dos pacotes, e apenas para a leitura, foram obtidos isoladamente. A partir

do tempo de processamento da aplicacao completa (tempol+e), desconta-se o tempo de leitura

(tempol) para obter o tempo de extracao, visto que para leitura dos pacotes e necessario acessar

o disco rıgido e esta operacao nao faz parte da extracao. Assim, foi utilizada a equacao (7) para

calcular a taxa de transferencia do extrator, em pacotes por segundo.

Taxa de Trans f erencia (pacotes/s) =numero de pacotes

tempol+e − tempol(7)

Utilizou-se a equacao (8) para calcular a energia consumida por cada extracao,

em joules (J). A potencia da placa para a aplicacao completa e para a leitura (Pl+e e Pl ,

respectivamente) tambem foram obtidas separadamente. O termo Pinat corresponde a potencia

da placa-mae quando inativa, ou seja, sem executar aplicacao de usuario.

Energia por extracao (J) =(Pl+e−Pinat) · tempol+e− (Pl−Pinat) · tempol

numero de pacotes(8)

3.3 IMPLEMENTACAO EM HARDWARE

O extrator de caracterısticas foi implementado em hardware com a linguagem VHDL,

utilizando o ambiente de desenvolvimento Sigasi. A ferramenta facilita a codificacao, pois

tem funcionalidades como auto-completar, navegacao entre arquivos, correcao de erros da

linguagem e muitas outras.

A figura 18 mostra o diagrama em blocos do extrator implementado. O circuito possui

como entradas um sinal de clock (std logic), um sinal de reset (std logic), um sinal de inıcio de

extracao (boolean) e o cabecalho do pacote de rede (std logic vector de 432 bits). As portas

de saıda sao um sinal de fim de extracao (boolean), um sinal de pronto para outra extracao

(boolean) e os atributos extraıdos (vetor com os 50 atributos, cada um unsigned de 32 bits).

O sinal do cabecalho possui 432 bits pois este e o total de bits do maior cabecalho

possıvel na aplicacao: 54 bytes, quando o protocolo e TCP. Para os protocolos ICMP ou UDP,

o cabecalho do pacote possui 42 bytes e assim pode ser compreendido no sinal de 432 bits.

O vetor com os atributos extraıdos e do tipo record, composto pelos 50 atributos. A

Page 52: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

51

Figura 18: Diagrama em blocos do extrator de caracterısticas em hardware.

Fonte: Autoria Propria

partir do tipo record, cada atributo pode ser acessado atraves de seu nome. Todos os atributos

foram definidos com 32 bits, pois este e o tamanho dos maiores atributos (tcp seq e tcp ack).

O digrama mostra que o circuito do extrator e composto por varios modulos. Um

destes e o extrator de atributos do cabecalho dos pacotes. A entrada do modulo e o proprio sinal

do cabecalho e a saıda e um vetor composto pelos 27 atributos dessa categoria. Os atributos

sao calculados a partir do acesso aos diferentes campos do cabecalho (offsets do sinal de 432

bits), conforme explicado no quadro 4 para o extrator em software. A extracao dos atributos do

cabecalho nao depende dos demais modulos do circuito.

Para armazenar os atributos baseados na comunicacao entre cliente e servidor,

projetou-se uma tabela em forma de memoria RAM. O endereco desta memoria e fornecido

pelo modulo de calculo da hash. Este modulo tem como entradas o sinal de cabecalho do

pacote e um sinal de identificacao do atributo a ser extraıdo (natural, com variacao de 0 a 49

correspondendo aos 50 atributos). A saıda do modulo e o valor da hash (natural, com variacao

de 0 a 65535).

Page 53: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

52

Primeiramente, a chave da hash e montada a partir dos bytes do endereco IP e da

porta do cliente e de um numero primo que representa o atributo dependente da comunicacao

a ser extraıdo. Esse numero primo e obtido consultando-se uma tabela a partir do numero de

identificacao do atributo. O numero de identificacao, uma das entradas do modulo, deve variar

de 27 a 49 nesse caso, visto que os atributos extraıdos diretamente do cabecalho de cada pacote

nao sao registrados na memoria.

O fornecimento do numero de identificacao do atributo e funcao do modulo de

controle, que sera explicado mais adiante. Por enquanto e suficiente saber que um numero

e fornecido por vez. Assim, ao fim da extracao de um atributo, incrementa-se o numero de

identificacao para extracao do proximo atributo e assim por diante.

A partir do valor da hash, acessa-se a memoria de atributos mostrada na figura 19.

De forma semelhante a implementacao em software, ha 65536 (216) linhas subdivididas em 5

celulas de 16 bits (unsigned). A memoria tem como entradas o sinal de clock, um sinal de

endereco (natural, com variacao de 0 a 65535), um sinal de habilitacao de escrita (boolean) e

uma linha de entrada. A memoria fornece uma linha de saıda.

Figura 19: Memoria RAM que armazena os atributos dependentes da comunicacao.

Fonte: Autoria Propria

A cada ciclo de clock, a tabela fornece na saıda a linha correspondente ao endereco

configurado. Ao habilitar-se a escrita, a linha da tabela dada pelo endereco e sobrescrita com a

linha de entrada e esta aparece na saıda, em seguida. Cada linha de saıda da tabela corresponde

a um unico atributo de determinada comunicacao.

A linha de saıda da tabela e entrada para o modulo de atualizacao de linha, mostrado

na figura 20. Alem da linha a ser atualizada, o modulo ainda possui como entradas o sinal de

clock, o sinal de reset, o sinal de cabecalho do pacote, o numero de identificacao do atributo,

o ındice da celula a ser atualizada e o ındice da celula a ser apagada. O modulo fornece como

saıdas a linha apos atualizacao e o atributo extraıdo.

Page 54: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

53

Figura 20: Modulo de atualizacao das linhas da memoria de atributos.

Fonte: Autoria Propria

Da linha da tabela, primeiramente um multiplexador seleciona a celula a ser atualizada.

Esta celula, juntamente com o cabecalho do pacote e o numero de identificacao do atributo,

constituem a entrada do modulo de atualizacao de celula. Conforme o atributo em questao

e os campos do cabecalho do pacote, atualiza-se a celula como explicado no quadro 5 da

implementacao em software.

Na sequencia, a celula atualizada e mesclada com as outras 4 celulas nao atualizadas

para formar a linha de tabela atualizada. Internamente ao modulo de atualizacao da linha, a linha

atualizada ainda tem suas celulas somadas, desconsiderando a celula a apagar, para calculo do

atributo. Externamente ao modulo de atualizacao da linha, a linha atualizada e encaminhada

para a memoria de atributos, para sobrescrever a linha previa.

No fim do modulo de atualizacao da linha calcula-se o valor do atributo. Para a maioria

dos atributos, o valor e simplesmente o resultado do somatorio das celulas da linha atualizada.

Para os atributos first packet e first serv packet, que nao sao mantidos na tabela, os valores sao

registrados quando o extrator trata os atributos contadores de pacotes. Assim, quando o numero

de identificacao e 48 ou 49, em vez do valor do somatorio, o valor de atributo fornecido na saıda

vem do registrador correspondente. A cada fim de calculo de atributo, o valor e registrado no

shift-register atributos comunicacao sreg, mostrado no diagrama do inıcio da secao.

Page 55: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

54

Ao fim de cada janela de tempo deve-se zerar as celulas a serem apagadas. Isto e feito

pelo modulo de apagamento de colunas. A cada 0,5 s, o extrator deve manter qualquer pacote

recebido em espera para proceder com a operacao de apagamento. Assim, diferentemente da

implementacao em software, que verificava o timestamp do pacote para inıcio ou nao de um

apagamento, em hardware, o inıcio da operacao de apagamento e determinıstico. Cada celula a

ser apagada na tabela e zerada em dois ciclos de clock.

O modulo de apagamento, mostrado na figura 21, faz interface diretamente com a

memoria e com o modulo de controle, que sera explicado mais adiante. As entradas sao o sinal

de clock, o sinal de reset, uma linha da tabela, o ındice da celula a ser apagada e um sinal de

inıcio de apagamento (boolean). As saıdas sao o endereco da tabela no qual a linha com a

celula apagada sera sobrescrita, a linha com a celula apagada, um sinal de habilitacao de escrita

na memoria (boolean) e um sinal de fim de apagamento (boolean). O funcionamento do modulo

e simples: cada linha da memoria e recebida uma a uma, zera-se a celula a ser apagada de cada

linha e escreve-se a nova linha na memoria a partir da habilitacao de escrita.

Figura 21: Modulo de zeramento das celulas a serem apagadas da tabela de atributos.

Fonte: Autoria Propria

O processo de extracao e controlado pelo modulo de controle, mostrado na figura 22.

As entradas sao o sinal de clock, o sinal de reset, o sinal de inıcio de extracao e o sinal de fim de

apagamento. As saıdas sao o ındice da celula a ser atualizada, o ındice da celula a ser apagada,

o sinal de identificacao do atributo a ser extraıdo, o sinal de inıcio de apagamento, um sinal de

registro de atributo (boolean), o sinal de fim de extracao e o sinal de pronto para outra extracao.

Uma das funcoes do controle e temporizar as janelas de tempo. A cada 0,5 s, o modulo

decrementa os ındices das celulas a serem atualizada e apagada e sinaliza uma operacao de

apagamento pendente. Outra funcao do modulo e controlar a maquina de estados do extrator,

mostrada na figura 23. Sao sete estados no total: inativo, calcula hash, fornece linha da tabela,

atualiza linha da tabela, registra atributo, fim de extracao e apagamento de coluna.

O primeiro estado e o inativo. Quando a extracao e iniciada, o extrator passar a operar

em modo normal, no qual a cada ciclo de clock a maquina de estados move-se entre os estados

Page 56: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

55

Figura 22: Modulo de controle do extrator.

Fonte: Autoria Propria

Figura 23: Maquina de estados que controla o extrator de caracterısticas.

Fonte: Autoria Propria

de dois a cinco, cujos nomes descrevem exatamente as operacoes realizadas, ja descritas. A

partir do quinto estado, “registra atributo”, ha duas possibilidades. Se nao foram extraıdos todos

os atributos ainda, o numero de identificacao de atributo e incrementado e retorna-se ao estado

calcula hash. Caso contrario, a maquina vai para o estado de fim de extracao. No estado de fim

de extracao, se houver pendencia de apagamento, a maquina ira para o estado de apagamento.

No fim de um apagamento a maquina retorna ao estado inicial.

Por simplicidade nao foi mostrado na imagem, mas a condicao “inicia extracao” forca

a maquina a sempre prosseguir para o estado calcula hash. No estado de fim de extracao, porem,

a condicao “apagamento pendente” tem prioridade sobre a condicao “inicia extracao”.

Page 57: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

56

O modulo de controle sinaliza, ainda, que o extrator esta pronto para outra extracao

quando o estado da maquina e inativo ou fim de extracao e nao ha apagamento pendente.

Ao fim da extracao, os atributos do shift-register em conjunto com os atributos

extraıdos diretamente de cada cabecalho constituem os atributos de saıda do circuito.

A extracao de um pacote dura 93 ciclos de clock porque sao necessarios 1 ciclo para

inıcio da operacao mais 92 ciclos para calculo do atributos dependentes da comunicacao (23

atributos · 4 ciclos). A cada 0,5 s ha uma operacao de apagamento que dura 131.072 ciclos,

sempre realizada entre pacotes. Essa operacao diminui a taxa de transferencia do extrator e se

um pacote chegar durante o apagamento, este deve ser registrado. A mesma conclusao e valida

para o extrator em software.

Para validacao da implementacao do extrator em hardware, foi codificado um

testbench em VHDL que le e extrai 1.000.000 de pacotes e compara os resultados com os

resultados obtidos pelo extrator em software. Os arquivos VHDL do extrator e do testbench

foram compilados e simulados no programa ModelSim. O ModelSim e uma ferramenta de

simulacao logica para verificacao e depuracao de circuitos digitais. A execucao do teste com

sucesso indicou que os extratores em software e hardware sao equivalentes.

3.4 AVALIACAO EM HARDWARE

Para avaliacao do extrator em hardware foi utilizado o kit de desenvolvimento com a

FPGA Cyclone IV GX da Altera (chip EP4CGX150N), mostrado na figura 24. A linha Cyclone

e desenvolvida para atender aplicacoes que necessitam de baixo consumo energetico. Para

sıntese do circuito do extrator descrito em VHDL e posterior gravacao na FPGA foi utilizado o

programa Quartus II, da Altera. A ferramenta possibilita o projeto de dispositivos programaveis,

permitindo a analise e a sıntese de circuitos a partir de linguagem de descricao de hardware.

O kit de desenvolvimento e instrumentado com conversores A/D que permitem a

medicao do consumo da FPGA. Para este fim, utilizou-se a ferramenta Power Monitor da Altera

em um computador para ler, via USB, a potencia consumida pelas oito trilhas que alimentam o

chip. Somando-se os valores de cada trilha obtem-se o consumo total da FPGA.

Utilizou-se a equacao (9) para calcular a taxa de transferencia do extrator em hardware,

em pacotes por segundo. O termo tempoapag refere-se ao tempo de apagamento das colunas da

tabela de atributos, enquanto o termo tempoext refere-se ao tempo de extracao. A definicao do

numerador da equacao vem do fato de que ha duas operacoes de apagamento no perıodo de um

segundo.

Page 58: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

57

Figura 24: Kit com FPGA Cyclone IV GX para avaliacao dos algoritmos em hardware.

Fonte: Autoria Propria

Taxa de Trans f erencia (pacotes/s) =1−2 · tempoapag

tempoext(9)

Para medicao do consumo do extrator em funcionamento, foi projetado o circuito da

figura 25. O circuito possui como entradas um sinal de clock (std logic) e um sinal de reset

(std logic). A saıda e um atributo. Apenas um atributo extraıdo e fornecido por vez, para o

Quartus II nao mapear cada bit de saıda em pinos de I/O. Considerando todos os atributos,

seriam necessarios 1600 pinos, porem, a FPGA utilizada so possui 508 pinos de I/O.

Figura 25: Circuito para medicao do consumo do extrator em hardware.

Fonte: Autoria Propria

A entrada de cabecalho do extrator e fornecida por um circuito gerador de numeros

aleatorios. Esta opcao foi utilizada porque a operacao do extrator nao depende de valores exatos

dos campos do cabecalho. Ha, ainda, um modulo de controle que simplesmente inicia uma nova

Page 59: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

58

extracao um ciclo de clock apos o fim da extracao anterior. O fim da extracao tambem habilita

uma nova geracao de numeros aleatorios.

Como o extrator ocupa mais de 99% da area, considerou-se que o consumo do circuito

de medicao se deve ao extrator. Utilizou-se a equacao (10) para calcular o consumo energetico

por operacao de extracao, na qual o termo Pexec refere-se a potencia da FPGA com o extrator

em funcionamento e o termo Pbase refere-se a potencia base do chip. Esta ultima foi medida

para um simples buffer, gravado na FPGA, que recebe um bit de entrada e transfere-o para a

saıda. Desconta-se a potencia base (cujo valor medido foi de 165 mW) para saber o incremento

causado pelo extrator de caracterısticas. Considera-se, tambem, que o extrator trabalha na

taxa de transferencia dada pela equacao (9). Os resultados da avaliacao do extrator serao

apresentados no capıtulo 7.

Energia por extracao (J) =Pexec−Pbase

Taxa de Trans f erencia(10)

Page 60: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

59

4 DESENVOLVIMENTO DA ARVORE DE DECISAO

Neste capıtulo serao apresentados os desenvolvimentos do classificador Arvore de

Decisao para deteccao de probing, em software e hardware. Para cada implementacao serao

apresentados, tambem, as plataformas e metodos utilizados para avaliacao. A tarefa de selecao

de caracterısticas usadas pela Arvore de Decisao, explicada no inıcio da secao 4.1, foi realizada

por Eduardo Kugler Viegas (VIEGAS et al., 2014a).

4.1 IMPLEMENTACAO EM SOFTWARE

Em posse dos conjuntos de dados, tambem fornecidos pelos desenvolvedores do

extrator em software, foi possıvel treinar o primeiro classificador para deteccao dos ataques do

tipo probing: a Arvore de Decisao. Para modelagem do classificador, foi utilizado o algoritmo

J48 do programa Weka. O Weka e um ambiente de Aprendizagem de Maquina que possui

uma grande gama de classificadores. O J48 e uma implementacao em Java do algoritmo C4.5

(comentado na subsecao 2.2.2).

Antes da tarefa de aprendizagem, porem, foi executada uma selecao de caracterısticas

do tipo wrapper-based. Esta etapa e considerada pre-processamento e o objetivo e eliminar as

caracterısticas redundantes e/ou irrelevantes para a classificacao. Para este fim, a selecao de

caracterısticas, que deve ser atrelada ao classificador em questao (neste caso, o J48), avalia

a acuracia de classificacao para varias combinacoes de caracterısticas e seleciona o menor

conjunto de caracterısticas que fornece o melhor resultado.

No Weka, utilizou-se um algoritmo genetico com 100 geracoes e 100 populacoes para

busca dos atributos mais relevantes para classificacao do conjunto de testes pela arvore. Do total

de 50 atributos, foram selecionados os 11 atributos mostrados no quadro 6.

Utilizando, entao, as 11 caracterısticas selecionadas, o algoritmo J48 foi executado

com as configuracoes padrao sobre o conjunto de treinamento. A figura 26 mostra a Arvore

de Decisao resultante. A arvore possui 24 nos, que correspondem aos testes dos atributos e 28

Page 61: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

60

Numero Atributo1 ip DF2 ip checksum3 tcp sport4 tcp dport5 tcp frst6 tcp fpush7 tcp fack8 count serv s2c9 num ack c2s

10 num ack s2c11 num syn c2s

Quadro 6: Atributos selecionados para deteccao de probing pela Arvore de Decisao.

Fonte: Adaptado de Viegas et al. (2014a).

folhas, que correspondem as classificacoes das instancias em normal ou ataque do tipo probing.

Figura 26: Arvore de Decisao para deteccao de probing.

Fonte: Autoria Propria

O primeiro atributo testado e a flag “Don’t Fragment” do cabecalho IP. Se o atributo

for 0, o algoritmo segue para o lado esquerdo da figura; se o atributo for 1, o algoritmo segue

para o lado direito. Se, por exemplo, um vetor tem ip DF igual a 0 e count serv s2c maior

que 6, este e classificado como normal. Para classificacao de qualquer vetor basta percorrer a

arvore, testando os atributos em cada no, ate atingir uma folha com a respectiva classe.

O modelo da arvore foi implementado em software com a linguagem C++, utilizando

o ambiente de desenvolvimento NetBeans. Esta ferramenta e de codigo aberto e possibilita

Page 62: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

61

o desenvolvimento de aplicacoes em Java, HTML, PHP, C/C++ e outras linguagens. O

classificador recebe um vetor contendo todas as 50 caracterısticas e classifica-o a partir dos

testes ‘se-entao’ realizados nas caracterısticas especıficas da arvore.

Para validacao da implementacao, as 7480 instancias do conjunto de dados de teste

foram lidas do arquivo ARFF correspondente e classificadas pela aplicacao. As classificacoes

da aplicacao foram, entao, comparadas com as classificacoes obtidas com o programa Weka.

Este teste foi realizado com o auxılio das bibliotecas da plataforma Google Test, passando as

classes retornadas pela aplicacao como valores a serem verificados e as classes retornadas pelo

Weka como valores esperados. A execucao do teste com sucesso indicou que o classificador

implementado e equivalente ao classificador do J48. Os resultados de acuracia de classificacao

serao apresentados no capıtulo 7.

4.2 AVALIACAO EM SOFTWARE

Para avaliacao do classificador Arvore de Decisao em software, foram utilizados o

mesmo ambiente de compilacao e execucao e a mesma plataforma de medicao comentados na

secao 3.2. A Arvore de Decisao foi integrada ao extrator de caracterısticas, de modo que um

pacote de entrada e primeiramente lido, depois extraıdo e por fim, classificado pela aplicacao.

Para o arquivo com 8.000.000 de pacotes, foram realizadas cem execucoes da aplicacao

em sequencia, para considerar uma media. Utilizou-se a equacao (11) para calcular a taxa de

transferencia do classificador, em pacotes por segundo. O termo tempol+e+c refere-se ao tempo

de processamento da aplicacao completa (leitura + extracao + classificacao), enquanto o termo

tempol+e refere-se ao tempo de processamento das operacoes de leitura e extracao.

Taxa de Trans f erencia (pacotes/s) =numero de pacotes

tempol+e+c − tempol+e(11)

Utilizou-se a equacao (12) para calcular a energia consumida por cada classificacao,

em joules (J). O termo Pl+e+c corresponde a potencia da placa-mae durante a execucao da

aplicacao completa; o termo Pl+e corresponde a potencia da placa-mae durante a execucao das

operacoes de leitura e extracao; o termo Pinat corresponde a potencia da placa-mae quando

inativa.

Energia por classi f ic. (J) =(Pl+e+c−Pinat) · tempol+e+c− (Pl+e−Pinat) · tempol+e

numero de pacotes(12)

Page 63: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

62

4.3 IMPLEMENTACAO EM HARDWARE

O modelo da Arvore de Decisao para deteccao de probing da figura 26 foi

implementado em hardware a partir da transcricao direta do algoritmo em comparadores e

portas logicas. Para isso, foram utilizados a linguagem VHDL e o ambiente Sigasi.

A figura 27 mostra aproximadamente 1/6 do circuito do classificador. A entrada do

circuito e o vetor com todas as caracterısticas em valores unsigned de 32 bits e a saıda e a

classe: normal ou ataque. Varios comparadores verificam os intervalos de valores dos atributos

da arvore. Na sequencia, as saıdas dos comparadores sao combinadas numa soma de produtos

que e nıvel alto quando o vetor e classificado como ataque e nıvel baixo quando o vetor e

classificado como normal.

Figura 27: Implementacao em hardware da Arvore de Decisao para deteccao de probing(aproximadamente 1/6 do circuito mostrado).

Fonte: Adaptado de Franca et al. (2015)

A arquitetura em VHDL do classificador foi descrita num processo, para que a

implementacao em hardware tambem utilizasse as declaracoes do tipo ‘se-entao’. O circuito,

porem, e inteiramente combinacional.

Para validacao da implementacao, foi codificado um testbench que le e classifica as

7480 instancias do conjunto de dados de teste e compara os resultados com os resultados obtidos

no Weka. Os arquivos VHDL do classificador e do testbench foram compilados e simulados no

programa ModelSim. A execucao do teste com sucesso indicou que o classificador Arvore

de Decisao implementado em hardware e equivalente ao classificador Arvore de Decisao

implementado em software.

Page 64: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

63

4.4 AVALIACAO EM HARDWARE

Para avaliacao do classificador Arvore de Decisao em hardware, foram utilizados os

mesmos kit com FPGA e ferramenta de medicao de consumo comentados na secao 3.4.

Como sera mostrado no capıtulo 7, o circuito da arvore e pequeno e por isso o

classificador pode trabalhar com uma grande taxa de transferencia. Em vez de verificada, essa

taxa foi, entao, estimada. Para isso, foi projetado o circuito da figura 28. O circuito consiste

numa memoria FIFO, para registrar um atributo por vez, e no modulo classificador.

Figura 28: Circuito para estimacao da taxa de transferencia dos classificadores.

Fonte: Autoria Propria

O circuito tem como entradas um sinal de clock (std logic), um sinal de reset

(std logic), um sinal de inıcio de classificacao (boolean), um atributo (valor unsigned de 32

bits) e um sinal de habilitacao de registro do atributo (boolean). As portas de saıda sao um sinal

de fim de classificacao (boolean) e a classe (normal ou ataque). O circuito tem, ainda, um sinal

generico: o tipo do classificador, que pode ser escolhido antes da compilacao.

Utilizou-se a equacao (13) para calcular a taxa de transferencia da Arvore de Decisao

(e dos demais classificadores em hardware a serem apresentados), em pacotes por segundo. O

termo tempoclass refere-se ao tempo de classificacao. Para os classificadores combinacionais, o

tempo de classificacao e o tempo de propagacao entre a FIFO e a saıda da classe, verificada com

a ferramenta TimeQuest Timing Analyzer, do Quartus II. Para os classificadores sequenciais,

o tempo de classificacao e a divisao entre a quantidade de ciclos de clock necessarios para

classificacao pela frequencia maxima (verificada no proprio Quartus II) de operacao.

Taxa de Trans f erencia (pacotes/s) =1

tempoclass(13)

Page 65: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

64

Para avaliacao do consumo do classificador foi desenvolvido o circuito mostrado na

figura 29. O circuito possui as seguintes caracterısticas:

• Numero configuravel de replicas do classificador;

• Memoria ROM com 2000 vetores de atributos (1000 vetores normais e 1000 vetores de

ataque, retirados do arquivo ARFF de teste) e respectivas classes esperadas;

• PLL para selecionar a frequencia de operacao;

• Memoria FIFO para ler os vetores da ROM e aplica-los nas entradas dos classificadores;

• Detector de erro de classificacao, que sinaliza quando um vetor e incorretamente

classificado.

Figura 29: Circuito para medicao do consumo dos classificadores em hardware.

Fonte: Adaptado de Franca et al. (2015)

O circuito de medicao tem como entradas um sinal de clock (std logic), um sinal

de reset (std logic), um sinal de habilitacao (boolean) do circuito de teste (composto pelas

memorias) e um sinal de habilitacao dos classificadores (boolean). O sinal de reset e os dois

sinais de habilitacao sao selecionados, respectivamente, a partir de um botao e de duas chaves

do kit de desenvolvimento. A saıda e o sinal de deteccao de erro de classificacao (boolean),

mostrado em um LED do kit.

O circuito possui, ainda, tres sinais genericos que devem ser escolhidos antes da

compilacao: classificador (pois o circuito e usado para avaliacao da arvore e dos demais

classificadores em hardware a serem apresentados nos capıtulos 5 e 6), o numero N de replicas

Page 66: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

65

do classificador e a frequencia de operacao (que seleciona o valor de saıda do PLL, a partir de

um sinal interno de 50 MHz da FPGA).

Esse circuito e importante por dois motivos. Primeiro, e possıvel observar se ha

incremento linear no consumo conforme o numero de replicas e assim obter o consumo do

classificador a partir de regressao linear. Segundo, com o circuito de medicao e possıvel

aumentar a frequencia de operacao e monitorar a saıda de erro de classificacao. Como a classe

esperada da memoria e comparada com a classe obtida em tempo real, um erro de classificacao

significa que o classificador nao consegue funcionar corretamente na frequencia em questao.

A memoria ROM tem como entradas o sinal de clock e o endereco (std logic vector

de 11 bits). A saıda e um vetor de 1601 bits (std logic vector), composto pelos vetores de

teste (1600 bits) e a classe esperada (1 bit). O endereco de 11 bits implica em 2048 linhas de

memoria, que sao suficientes para armazenar os 2000 vetores de teste. Os vetores sao lidos da

ROM continuamente.

A memoria FIFO tem N linhas e e utilizada para evitar a simplificacao do circuito, pelo

Quartus II, no momento da sıntese e assim manter as N replicas do classificador.

Com o circuito em funcionamento, a cada ciclo de clock, um vetor da ROM e

armazenado na FIFO, que funciona como shift-register. Isso acontece ate N vetores da ROM

serem armazenados na FIFO. A partir deste momento, os vetores na FIFO sao deslocados um

a um de forma que o vetor N+1 da ROM e registrado no lugar do vetor 1 na FIFO. Esse

deslocamento dos vetores de teste acontece ate os 2000 vetores da ROM serem classificados.

Na sequencia o ciclo se repete a partir do vetor 1, de modo que a operacao de classificacao dos

2000 vetores acontece continuamente.

Quando o sinal de habilitacao do circuito de teste esta em nıvel baixo, nao ha

incremento de endereco da ROM nem deslocamento na FIFO e assim as memorias permanecem

estaticas. Quando o sinal de habilitacao dos classificadores esta em nıvel baixo, as entradas dos

classificadores recebem um vetor zerado em vez de receber o vetor de atributos da memoria.

A partir desses sinais de habilitacao e possıvel medir o consumo dos classificadores em

funcionamento e em modo inativo.

O circuito de medicao conta, ainda, com um modulo de deteccao de erro de

classificacao. Neste, as classes obtidas em tempo real sao comparadas com as classes esperadas.

Se houver erro de classificacao em qualquer uma das N replicas do classificador, sinaliza-se um

erro de classificacao no LED de saıda. Neste caso, o LED permanece aceso ate que o circuito

seja reiniciado, indicando que o classificador nao consegue operar na frequencia em questao.

Page 67: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

66

A sequencia de operacoes do circuito e controlada pelo modulo de controle. O modulo

coordena o inıcio e o fim de cada classificacao, de modo que a classificacao de um novo vetor

so e iniciada apos o fim da classificacao do vetor anterior. O inıcio de cada classificacao, por

sua vez, esta condicionado ao previo carregamento do vetor da ROM para a FIFO. A figura 30

mostra a maquina de estados de controle. Uma vez no estado de erro detectado, o circuito de

medicao so pode voltar ao modo de execucao mediante o sinal de reset.

Figura 30: Maquina de estados que controla as operacoes do circuito de medicao dosclassificadores.

Fonte: Autoria Propria

Apos a finalizacao do circuito de medicao, os seguintes procedimentos foram adotados

para calculo do consumo do classificador: fixou-se um valor de frequencia de operacao e

compilou-se o circuito para varias replicas da Arvore de Decisao; o consumo da FPGA foi

medido, entao, com os classificadores habilitados. Percebeu-se que o consumo de potencia

variou linearmente com o numero de replicas do classificador e assim essa foi obtida atraves de

regressao linear (coeficiente angular da regressao, que desconta o consumo base da FPGA). A

partir do valor de potencia, Pclass, utilizou-se a equacao (14) para calcular a energia consumida

por cada classificacao, em joules (J).

Energia por classi f ic. (J) = Pclass · tempoclass (14)

Page 68: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

67

5 DESENVOLVIMENTO DO NAIVE BAYES

Neste capıtulo serao apresentados os desenvolvimentos do classificador Naive Bayes

para deteccao de probing, em software e hardware. A tarefa de selecao de caracterısticas usadas

pelo Naive Bayes, explicada no inıcio da secao 5.1, foi realizada por Eduardo Kugler Viegas

(VIEGAS et al., 2014a).

5.1 IMPLEMENTACAO EM SOFTWARE

Para modelagem do classificador Naive Bayes, foi utilizado o algoritmo Naive Bayes

do programa Weka. Primeiramente, porem, foram selecionadas as caracterısticas, no modo

wrapper-based, mais relevantes para o Naive Bayes atraves de um algoritmo genetico com

100 geracoes e 100 populacoes. Do total de 50 atributos, foram selecionados os 10 atributos

mostrados no quadro 7.

Numero Atributo1 ip DF2 udp sport3 tcp sport4 tcp ack5 num bytes serv s2c6 num fin c2s7 num ack c2s8 num syn s2c9 num rst c2s

10 num rst s2c

Quadro 7: Atributos selecionados para deteccao de probing pelo Naive Bayes.

Fonte: Adaptado de Viegas et al. (2014a).

Utilizando, entao, as 10 caracterısticas selecionadas, o algoritmo Naive Bayes do

Weka foi executado sobre o conjunto de treinamento. Entre as configuracoes padrao, uma foi

alterada: utilizou-se a opcao useSupervisedDiscretization, para converter atributos numericos

Page 69: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

68

contınuos em atributos discretos. Nesse caso, os atributos sao discretizados a partir de algumas

divisoes do intervalo de variacao de seus valores. A discretizacao e necessaria para o calculo

das probabilidades, conforme mencionado na subsecao 2.2.3. A figura 31 mostra o modelo

resultante do classificador.

Figura 31: Modelo Naive Bayes para deteccao de probing.

Fonte: Autoria Propria

As informacoes de probabilidades estao implıcitas e precisam ser obtidas. A influencia

Page 70: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

69

de um atributo de valor v na probabilidade de um pacote ser normal e dada pela divisao entre

o numero presente na intercessao da coluna “Class normal” com a linha com o valor de v e o

numero presente na intercessao da coluna “Class normal” com a linha “[total]” do atributo. O

mesmo raciocınio pode ser aplicado para calcular a influencia do atributo na probabilidade do

pacote ser ataque.

Como exemplo, pode-se observar o primeiro atributo: ip DF. Se um pacote possui

ip DF = 0, a parcela deste atributo na probabilidade do pacote ser normal e P(ip DF =

0|normal) = 2029/3742. Ja a parcela desse atributo na probabilidade do pacote ser ataque

e P(ip DF = 0|ataque) = 18/3742. Seguindo a mesma logica, tem-se que para ip DF = 1:

P(ip DF = 1|normal) = 1713/3742 e P(ip DF = 1|ataque) = 3724/3742. O ip DF e um

exemplo de atributo discreto, pois assume valor 0 ou 1.

Os atributos contınuos foram discretizados em intervalos pelo Weka. Este e o caso do

atributo num syn s2c, por exemplo, que foi divido em quatro intervalos: [−∞ ate 1,5], [1,5 ate

2,5], [2,5 ate 92] e [92 ate ∞]. Para cada pacote, deve ser verificado em qual intervalo recai o

valor desse atributo, pois cada intervalo tem sua propria influencia nas probabilidades.

O denominador das divisoes das probabilidades nao e igual ao numero de exemplos de

treinamento, pois o algoritmo de discretizacao cria exemplos “virtuais” para todos os valores

de atributos no intuito de evitar que algum atributo tenha um intervalo com zero exemplos

(o que forneceria um valor zero para a multiplicacao das probabilidades). Por causa disso,

tambem, os numeradores das divisoes nao sao necessariamente iguais aos numeros de exemplos

de treinamento de determinada classe para o valor de atributo considerado.

Da figura, tambem podem ser retiradas as probabilidades previas de cada classe.

Observando-se o cabecalho das tabelas, tem-se que P(normal) = 0,5 e P(ataque) = 0,5. A

probabilidade previa de cada classe e 50% pois o conjunto de dados de treinamento tem um

numero igual de exemplos de ataque e de exemplos normais: 3740. Como P(c) e igual para

as duas as classes, pode-se assumir que a equacao (15) expressa a probabilidade de um pacote

ser normal enquanto que a equacao (16) expressa a probabilidade de um pacote ser ataque. A

maior probabilidade indica a classe na qual o pacote sera classificado.

P(normal|pacote) = P(ip DF |normal) ·P(ud p sport|normal) ·P(tcp sport|normal)·

P(tcp ack|normal) ·P(num bytes serv s2c|normal) ·P(num f in c2s|normal)·

P(num ack c2s|normal) ·P(num syn s2c|normal) ·P(num rst c2s|normal)·

P(num rst s2c|normal)

(15)

Page 71: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

70

P(ataque|pacote) = P(ip DF |ataque) ·P(ud p sport|ataque) ·P(tcp sport|ataque)·

P(tcp ack|ataque) ·P(num bytes serv s2c|ataque) ·P(num f in c2s|ataque)·

P(num ack c2s|ataque) ·P(num syn s2c|ataque) ·P(num rst c2s|ataque)·

P(num rst s2c|ataque)

(16)

O modelo Naive Bayes foi implementado em software utilizando o ambiente NetBeans

e a linguagem C++. Foram declaradas tabelas para cada atributo, contendo as constantes de

probabilidades. Cada linha das tabelas e uma estrutura que contem 3 valores: limite superior,

probabilidade para pacote normal e probabilidade para pacote ataque. O limite superior

foi declarado como inteiro de 32 bits e armazena o valor superior do limite (arredondado

para baixo) de cada intervalo de valores dos atributos, advindos do modelo do Weka. As

probabilidades para pacote normal e para pacote ataque foram declaradas como floats de 32

bits e armazenam os valores de probabilidades do modelo do Weka, conforme explicado alguns

paragrafos acima.

A tabela 1 apresenta o exemplo de como foi construıda a tabela de constantes para o

atributo udp sport. O campo limite superior indica quais os valores de probabilidades devem

ser utilizadas no classificador. Se, por exemplo, um pacote tem udp sport = 50000, devem ser

selecionadas Pnormal = (72.0/3746.0) e Pataque = (2.0/3746.0) pois 50000 e maior que 48793

e menor que 51350 (ou seja, encaixa-se na condicao de limite superior de valor 51350). Foram

criadas funcoes que retornam os valores de probabilidades normal e de ataque, considerando

em qual intervalo de limite superior o valor do atributo se encaixa. As tabelas para os demais

atributos foram construıdas da mesma forma.

Tabela 1: Probabilidades para os intervalos de valores do atributo udp sport na implementacao emsoftware do Naive Bayes.

Limite superior: inteiro de 32 bits Pnormal: float de 32 bits Pataque: float de 32 bits26 (2829.0 / 3746.0) (3114.0 / 3746.0)

48579 (700.0 / 3746.0) (5.0 / 3746.0)48793 (1.0 / 3746.0) (26.0 / 3746.0)51350 (72.0 / 3746.0) (2.0 / 3746.0)51930 (1.0 / 3746.0) (592.0 / 3746.0)

4294967295 (143.0 / 3746.0) (7.0 / 3746.0)Fonte: Autoria propria.

Para a classificacao, o Naive Bayes obtem as probabilidades de um pacote ser normal

e de ser ataque a partir do vetor com todos os 50 atributos e assinala a classe de maior

Page 72: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

71

probabilidade. A probabilidade do pacote ser normal e dada pelo produto das probabilidades

de cada atributo inferindo a classe normal. A probabilidade do pacote ser ataque e dada pelo

produto das probabilidades de cada atributo inferindo a classe ataque. A figura 32 mostra o

fluxograma do classificador, apresentando em detalhes os calculos das probabilidades.

Figura 32: Fluxograma do classificador Naive Bayes para deteccao de probing em software.

Fonte: Autoria Propria

Nas caixas que mostram os detalhes dos calculos das probabilidades, estao presentes

as funcoes “pNormal” e “pAtaque”. Estas sao as funcoes que verificam em qual limite superior

o valor do atributo se encaixa, para assim retornar os valores individuais das probabilidades.

Ambas as funcoes recebem dois parametros: a tabela e o valor do atributo correspondente.

Para validacao da implementacao, as 7480 instancias do conjunto de dados de teste

foram lidas do arquivo ARFF correspondente e classificadas pela aplicacao. As classificacoes

da aplicacao foram, entao, comparadas com as classificacoes obtidas com o programa Weka.

Este teste foi realizado com o auxılio das bibliotecas da plataforma Google Test, passando as

classes retornadas pela aplicacao como valores a serem verificados e as classes retornadas pelo

Weka como valores esperados. A execucao do teste com sucesso indicou que o classificador

implementado e equivalente ao classificador Naive Bayes do Weka.

Page 73: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

72

5.2 AVALIACAO EM SOFTWARE

A avaliacao do classificador Naive Bayes em software foi realizada de forma

semelhante a avaliacao da Arvore de Decisao em software, explicada na secao 4.2. A unica

alteracao foi a troca do classificador.

5.3 IMPLEMENTACAO EM HARDWARE

Foram desenvolvidas duas versoes do classificador Naive Bayes para deteccao de

probing em hardware: uma versao combinacional e uma versao sequencial. A implementacao

combinacional e praticamente uma traducao direta do classificador em software. Com isso, as

operacoes de consultas as tabelas de probabilidades e multiplicacoes ocorrem em paralelo para

cada atributo, fato que reduz o tempo de classificacao. Em contrapartida, a implementacao

sequencial faz uma operacao por vez, utilizando menos recursos de hardware. Foram utilizados

a linguagem VHDL e o ambiente de desenvolvimento Sigasi para as implementacoes.

5.3.1 VERSAO COMBINACIONAL

Na implementacao combinacional, transcreveu-se diretamente o algoritmo da figura 32

em consultas a tabelas, multiplicadores e um comparador.

A figura 33 mostra parte do circuito do classificador. A entrada do circuito e o vetor

com todas as caracterısticas em valores unsigned de 32 bits e a saıda e a classe: normal ou

ataque. Para cada valor de atributo do Naive Bayes, sao realizadas consultas as tabelas de

probabilidade normal e de probabilidade de ataque. Ha dois multiplicadores, cada um de dez

entradas: um multiplicador para o produto das probabilidades normais e um multiplicador para

o produto das probabilidades de ataque. Por fim, o comparador verifica qual o maior produto e

assinala a classe de maior probabilidade.

De forma semelhante a versao em C++, na versao em VHDL tambem ha uma tabela

para cada atributo. Cada linha da tabela tambem e composta por uma estrutura com tres valores:

limite superior, probabilidade normal e probabilidade de ataque. O limite superior e unsigned

de 32 bits e as probabilidades individuais sao floats de 32 bits (no padrao IEEE 754: 1 bit para

sinal, 8 bits para expoente e 23 bits para mantissa).

As consideracoes feitas com relacao as tabelas da implementacao em software tambem

sao validas para a implementacao combinacional em hardware. As tabelas foram declaradas

como constantes no codigo VHDL. O circuito e inteiramente combinacional.

Page 74: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

73

Figura 33: Implementacao combinacional do Naive Bayes em hardware para deteccao de probing.

Fonte: Adaptado de Franca et al. (2015)

Para validacao da implementacao, foi codificado um testbench que le e classifica as

7480 instancias do conjunto de dados de teste e compara os resultados com os resultados obtidos

no Weka. Os arquivos VHDL do classificador e do testbench foram compilados e simulados

no programa ModelSim. A execucao do teste com sucesso indicou que o classificador Naive

Bayes combinacional implementado em hardware e equivalente ao classificador Naive Bayes

implementado em software.

5.3.2 VERSAO SEQUENCIAL

A implementacao sequencial do classificador Naive Bayes consulta as tabelas de

probabilidades de forma serial. Assim, as probabilidades normal e de ataque de cada atributo

sao multiplicadas por vez. O circuito, mostrado na figura 34, utiliza apenas dois multiplicadores

de duas entradas, mas precisa de 73 ciclos de clock para classificar um pacote. Uma memoria

ROM armazena os valores de limite superior, probabilidade normal e probabilidade de ataque

para cada intervalo dos atributos.

O circuito tem como entradas um sinal de clock (std logic), um sinal de reset

(std logic), um sinal de inıcio de classificacao (boolean) e os atributos (valores unsigned de

32 bits). As portas de saıda sao um sinal de fim de classificacao (boolean) e a classe (normal

ou ataque).

Page 75: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

74

Figura 34: Implementacao sequencial do Naive Bayes em hardware para deteccao de probing.

Fonte: Adaptado de Franca et al. (2015)

A memoria ROM tem como entradas o sinal de clock e o endereco (std logic vector de

7 bits). E tem como saıda uma linha (std logic vector de 96 bits) composta pela concatenacao

do limite superior (std logic vector de 32 bits) com as probabilidades normal e de ataque (ambas

std logic vector de 32 bits, a partir da conversao de valores float de 32 bits). O endereco de 7

bits implica em 128 linhas, que sao suficientes para armazenar os valores para cada intervalo de

atributo, que totalizam 70 linhas.

A classificacao comeca quando os atributos selecionados para o Naive Bayes sao

registrados no registrador “atributos reg”. Para cada atributo, sao lidas as linhas (uma por

ciclo de clock) correspondentes da tabela. A consulta a tabela consiste em comparar o valor

do atributo com o limite superior. Enquanto o valor do atributo esta dentro do limite superior,

os registradores das probabilidades normal e de ataque sao sobrescritos com os valores advindos

da memoria. Esses registradores armazenam valores float de 32 bits, entao as probabilidades

individuais lidas da memoria precisam ser convertidas em float novamente.

O ultimo limite superior para cada atributo e um vetor com todos os bits iguais a ‘1’,

que representa o valor ∞ do modelo do Weka. Este vetor e utilizado para sinalizar, atraves do

Page 76: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

75

buffer do circuito, o fim de um atributo na tabela. Neste momento, os valores de probabilidades

do atributo sao multiplicados pelos valores de probabilidades acumuladas. Os registradores das

probabilidades acumuladas tambem armazenam valores floats de 32 bits. Como os valores de

probabilidade sao menores do que 1, foi mantida a mesma precisao em bits para registrar os

resultados das multiplicacoes.

Ao termino da multiplicacao das probabilidades de todos os dez atributos, um

comparador classifica o pacote em normal ou ataque, a partir da verificacao do maior valor

de probabilidade acumulada.

Todo esse fluxo da classificacao e controlado por uma maquina de tres estados. Antes

do inıcio de classificacao, o circuito fica no estado “inativo”. Apos o pulso de inıcio, o

circuito vai para o estado “calculando”, no qual permanece ate a multiplicacao de todas as

probabilidades. Apos o fim de todos os atributos, o circuito vai para o estado “fim”, no qual

deixa o sinal de fim de classificacao em nıvel alto.

A classificacao dura 73 ciclos de clock porque sao necessarios 70 ciclos para percorrer

as 70 linhas de valores da memoria, mais 1 ciclo para inıcio de classificacao, mais 2 ciclos

iniciais para registro dos atributos e registro dos primeiros valores de probabilidades individuais.

No inıcio de classificacao todos os registradores de probabilidades sao carregados com o valor

um, fator neutro na multiplicacao.

Para validacao da implementacao, foi codificado um testbench que le e classifica as

7480 instancias do conjunto de dados de teste e compara os resultados com os resultados

obtidos no Weka. Os arquivos VHDL do classificador e do testbench foram compilados e

simulados no programa ModelSim. A execucao do teste com sucesso indicou que o classificador

Naive Bayes sequencial implementado em hardware e equivalente ao classificador Naive Bayes

implementado em software.

5.4 AVALIACAO EM HARDWARE

A avaliacao dos classificadores Naive Bayes em hardware (versoes combinacional e

sequencial) foi realizada de forma semelhante a avaliacao da Arvore de Decisao em hardware,

explicada na secao 4.4. A unica alteracao foi a troca do classificador.

Page 77: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

76

6 DESENVOLVIMENTO DO KNN

Neste capıtulo serao apresentados os desenvolvimentos do classificador kNN para

deteccao de probing, em software e hardware. As tarefas de clusterizacao da base de dados

de treinamento, de selecao do melhor parametro k e de selecao de caracterısticas usadas pelo

kNN, explicadas no inıcio da secao 6.1, foram realizadas por Eduardo Kugler Viegas (VIEGAS

et al., 2014a).

6.1 IMPLEMENTACAO EM SOFTWARE

Para avaliacao do classificador kNN, foi utilizado o algoritmo IBk (o IB vem de

Instance-Based) do programa Weka. Como os atributos dos pacotes de rede tem diferentes

variacoes de valores, e importante normaliza-los, conforme mencionado na subsecao 2.2.4. O

Weka utiliza a equacao (17) para normalizar os atributos, em que max e min sao os valores

maximo e mınimo do atributo, a ser normalizado, na base de treinamento. Para normalizar os

atributos entre -1 e +1, os valores de escala e translacao devem ser 2 e -1, respectivamente.

Atributonorm = escala ·(

Atributo−minmax−min

)+ translacao (17)

A base de dados de treinamento possui mais de 7000 vetores. Se para a classificacao

do kNN fossem calculadas as distancias para todos esses vetores, o tempo necessario seria

demasiadamente grande. Para reduzir a quantidade de calculos de distancias, foi utilizado o

algoritmo k-Means do Weka para clusterizacao da base de treinamento. Este processo substitui

grandes grupos de vetores semelhantes (proximos uns dos outros) por um unico vetor (cluster):

o centroide dos vetores.

Com o k-Means, foram selecionados 100, 200, 300, 400 e 500 clusters, ja normalizados

entre -1 e +1, para cada classe. Um algoritmo genetico de busca, do Weka, forneceu o melhor

resultado de classificacao para o caso de 500 clusters de cada classe. Assim, gerou-se um novo

arquivo ARFF contendo 500 centroides normais e 500 centroides de ataque. Na sequencia,

Page 78: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

77

aplicou-se um algoritmo genetico para busca do melhor parametro k para o classificador, entre

1 e 10. O melhor resultado foi obtido para k = 3.

Apos definir o conjunto de clusters e o parametro k, foram selecionadas no modo

wrapper-based as caracterısticas mais relevantes para o kNN atraves de um algoritmo genetico

com 100 geracoes e 100 populacoes. Foram selecionados os 19 atributos mostrados no quadro 8.

Os valores maximo e mınimo de cada atributo na base de treinamento tambem sao mostrados.

Numero Atributo Mınimo Maximo1 ip len 29 58442 ip id 0 655093 ip MF 0 14 ip proto 1 175 udp dport 0 609606 tcp sport 0 654167 tcp ack 0 42945048808 tcp frst 0 29 tcp fpush 0 2

10 tcp fack 0 211 fr length 0 580412 conn status 0 1513 count fr s2c 0 420514 num bytes s2c 0 11468815 num bytes serv c2s 0 3266416 num bytes serv s2c 0 11468817 num syn fin s2c 0 1717318 num ack c2s 0 272219 num syn s2c 0 7949

Quadro 8: Atributos selecionados para deteccao de probing pelo kNN e seus valores maximos emınimos na base de dados de treinamento.

Fonte: Adaptado de Viegas et al. (2014a).

O kNN foi implementado em software com o C++ utilizando o ambiente NetBeans.

Primeiramente foram criadas duas estruturas de dados. A primeira contem 19 variaveis do tipo

float de 32 bits, para armazenar os atributos normalizados, e uma classe (normal ou ataque). A

segunda estrutura de dados contem um valor de distancia do tipo float de 32 bits e uma classe,

para armazenar o par distancia/classe dos vizinhos. Foi criada, tambem, uma tabela constante

que armazena os 1000 vetores (centroides) de treinamento. Cada vetor e do formato da primeira

estrutura de dados, contendo os 19 atributos normalizados e a classe correspondente.

Apos a definicao das estruturas de dados e da tabela com os vetores de treinamento,

foram criadas duas funcoes auxiliares usadas durante a classificacao. A primeira funcao

Page 79: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

78

normaliza um vetor de entrada e a segunda funcao calcula o quadrado da distancia Euclidiana

entre dois vetores. A raiz quadrada da distancia Euclidiana foi descartada, pois e uma operacao

custosa e nao influencia na procura dos vizinhos mais proximos.

A figura 35 mostra o fluxograma do kNN para classificacao de novos vetores.

Primeiramente os atributos do kNN do vetor de entrada sao normalizados entre -1 e +1.

Na sequencia sao calculadas as distancias desse vetor normalizado para cada um dos 1000

vetores de treinamento. Durante os calculos das distancias, os tres vizinhos mais proximos sao

mantidos. Ao final, a classe mais comum entre os vizinhos e selecionada.

Figura 35: Fluxograma do classificador kNN para deteccao de probing em software.

Fonte: Autoria Propria

Para validacao da implementacao, as 7480 instancias de teste foram lidas do

arquivo ARFF correspondente e classificadas pela aplicacao. As classificacoes foram, entao,

comparadas com as classificacoes obtidas com o Weka. Esse teste foi realizado com o auxılio

das bibliotecas do Google Test, passando as classes retornadas pela aplicacao como valores

a serem verificados e as classes do Weka como valores esperados. A execucao do teste com

sucesso indicou que o kNN implementado e equivalente ao classificador IBk do Weka.

Page 80: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

79

6.2 AVALIACAO EM SOFTWARE

A avaliacao do classificador kNN em software foi realizada de forma semelhante a

avaliacao da Arvore de Decisao em software, explicada na secao 4.2. A unica alteracao foi a

troca do classificador.

6.3 IMPLEMENTACAO EM HARDWARE

O kNN foi implementado em hardware de forma sequencial e e composto por varios

modulos. Foram utilizados o ambiente de desenvolvimento Sigasi e a linguagem VHDL.

A figura 36 mostra o circuito do classificador em diagrama de blocos. Sao necessarios

24.096 ciclos de clock para classificar um pacote. Uma memoria ROM armazena os 1000

vetores de treinamento. As entradas sao um sinal de clock (std logic), um sinal de reset

(std logic), um sinal de inıcio de classificacao (boolean) e os atributos (valores unsigned de

32 bits). As saıdas sao um sinal de fim de classificacao (boolean) e a classe (normal ou ataque).

Figura 36: Implementacao do kNN em hardware para deteccao de probing.

Fonte: Adaptado de Franca et al. (2015)

O primeiro modulo do classificador e o Normalizador, mostrado na figura 37, que tem

como entradas o sinal de clock, o sinal de reset, um sinal de inıcio de normalizacao (boolean)

e os atributos. As saıdas sao um sinal de fim de normalizacao (boolean) e um vetor com os 19

atributos do kNN normalizados entre -1 e +1 (floats de 32 bits).

A normalizacao comeca quando o pulso de inıcio e passado para nıvel alto. Neste

Page 81: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

80

Figura 37: Circuito do Normalizador do kNN.

Fonte: Autoria Propria

momento os atributos do kNN sao registrados no shift register “atributos sreg”. Durante a

normalizacao, os atributos sao deslocados no shift register, de modo que apenas um atributo

e normalizado por vez. A operacao de normalizacao consiste em multiplicar o atributo

pelo coeficiente angular correspondente na tabela de coeficientes e somar o resultado com o

coeficiente linear. Os coeficientes para cada atributo foram calculados a partir da equacao (17),

modificada para o formato de reta.

A tabela de coeficientes foi implementada como constante e armazena os coeficientes

de normalizacao (floats de 32 bits) para cada atributo, tambem na forma de shift register.

Os coeficientes sao deslocados no shift register, para a normalizacao do atributo em questao.

Assim, sao necessarios apenas um multiplicador e um somador. Foi utilizado um multiplicador

que fornece o resultado apos 5 ciclos de clock, para aumentar a frequencia maxima de operacao

do modulo.

Apos a operacao de normalizacao, cada atributo e registrado e deslocado no

shift register “atributos normalizados sreg”. O vetor de saıda e composto por todos os atributos

normalizados.

A normalizacao e controlada por uma maquina de tres estados. Antes do inıcio da

normalizacao, o circuito fica no estado “inativo”. Apos o pulso de inıcio, o circuito vai para

o estado “normalizando”, no qual permanece ate a normalizacao de todos os 19 atributos. Em

seguida o circuito vai para o estado “fim”, no qual deixa o sinal de fim de normalizacao em nıvel

alto. A operacao completa dura 96 ciclos de clock: 95 ciclos para normalizar os 19 atributos,

mais 1 ciclo do pulso de inıcio de normalizacao.

A memoria ROM do classificador tem como entradas o sinal de clock e o endereco

Page 82: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

81

(std logic vector de 10 bits). A saıda e um vetor (std logic vector de 1601 bits) composto

da instancia de treinamento com todos os atributos, mais um bit que corresponde a classe da

instancia. Os vetores de treinamento, que possuem atributos normalizados entre -1 e +1, sao

convertidos em std logic vector para serem armazenados. O endereco de 10 bits implica em

1024 linhas de memoria, que sao suficientes para armazenar os 1000 vetores de treinamento.

Na sequencia implementou-se o modulo de calculo de distancia, mostrado na figura 38,

que tem como entradas o sinal de clock, o sinal de reset, um sinal de inıcio de calculo (boolean)

e os dois vetores (um de treinamento e um de teste; cada um com 19 floats de 32 bits,

correspondendo aos atributos normalizados do kNN) dos quais se quer calcular a distancia

(quadrado da distancia Euclidiana, conforme mencionado na secao 6.1). As saıdas sao um

sinal de fim de calculo (boolean) e o resultado da distancia (float de 32 bits).

Figura 38: Circuito do Calculador de Distancia do kNN.

Fonte: Autoria Propria

O calculo de distancia comeca quando o pulso de inıcio e passado para nıvel alto. Neste

momento o vetor de treinamento (que vem da memoria ROM) e o vetor de teste sao registrados

nos shift registers “vetor treinamento sreg” e “vetor teste sreg”, respectivamente. A cada pulso

de clock, os atributos de ambos os vetores sao deslocados nos shift registers.

A operacao de calculo de distancia consiste em subtrair os atributos correspondentes

dos vetores, elevar o resultado ao quadrado e somar este quadrado com o valor de distancia

acumulada, ate todos os atributos serem considerados. Como cada atributo e considerado por

vez, sao necessarios apenas um subtrator, um multiplicador (usado para a operacao de elevar

ao quadrado) e um somador. Todos os resultados sao computados como floats de 32 bits. Ha,

ainda, um registrador para a saıda do subtrator e um registrador para a saıda do multiplicador,

nao mostrados na figura.

O fluxo de calculo da distancia e controlado por uma maquina de tres estados. Antes

do inıcio do calculo, o circuito fica no estado “inativo”. Apos o pulso de inıcio, o circuito vai

Page 83: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

82

para o estado “calculando”, no qual permanece ate todos os atributos serem considerados no

calculo. Em seguida o circuito vai para o estado “fim”, no qual deixa o sinal de fim do calculo

de distancia em nıvel alto.

O calculo de distancia dura 22 ciclos de clock: 19 ciclos para calcular a distancia

individual de cada um dos 19 atributos, mais 1 ciclo do pulso de inıcio do calculo, mas 2 ciclos

de registro dos valores iniciais de diferenca e de multiplicacao.

Em seguida implementou-se o modulo ordenador, que mantem os tres pares

distancia/classe dos vizinhos mais proximos e classifica o vetor de teste. O modulo tem como

entradas o sinal de clock, o sinal de reset, um sinal de clear (boolean), um sinal de habilitacao

(boolean) e um par distancia/classe (float de 32 bits/normal ou ataque). A saıda e a classe do

vetor.

Quando habilitado, o ordenador ordena tres pares distancia/classe. A ordenacao

mantem sempre os pares com as menores distancias durante o processo de classificacao do

kNN. A cada pulso de clock, o circuito verifica se o par de entrada tem distancia menor do

que as distancias dos pares ja registrados. Em caso afirmativo, o novo par e armazenado no

ordenador. Caso contrario, o novo par e descartado.

O sinal de clear tem por objetivo reiniciar o ordenador, armazenando tres pares com

o valor maximo permitido para o float de 32 bits e a classe ataque. A cada classificacao, o

ordenador deve ser reiniciado, antes de serem procurados os vizinhos mais proximos.

Considerando os tres pares armazenados, o ordenador seleciona a classe do vetor de

teste: ataque, caso haja dois ou tres pares com o valor de classe ataque, ou normal, caso

contrario.

Por fim, implementou-se o modulo completo do kNN. O classificador instancia cada

um dos modulos descritos anteriormente, isto e, normalizador, memoria ROM, calculador de

distancia e ordenador. O modulo tambem e responsavel por gerar os pulsos de inıcio dos

modulos internos e os enderecos de acesso a memoria ROM com os vetores de treinamento.

O pulso de inıcio de classificacao e tambem o pulso de inıcio de normalizacao. A

partir do pulso de fim de normalizacao, o kNN gera um pulso que ao mesmo tempo inicia o

primeiro calculo de distancia e reinicia o ordenador. A partir do fim do calculo de distancia,

o kNN gera dois pulsos: um pulso que ao mesmo tempo incrementa o endereco da ROM e

habilita o ordenador e outro pulso, atrasado em dois ciclos de clock, para iniciar o proximo

calculo de distancia. Esse atraso de dois ciclos de clock permite que o endereco da ROM seja

incrementado em um ciclo e um novo vetor de treinamento esteja disponıvel no outro ciclo.

Page 84: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

83

A classificacao de um vetor dura 24.096 ciclos de clock porque sao necessarios 96

ciclos para a normalizacao, mais 1000·(22+2) ciclos para as demais operacoes. O calculo

de distancia, que dura 22 ciclos, e multiplicado por 1.000, pois existem 1000 vetores de

treinamento. O fator 2 que se soma aos ciclos do calculo de distancia e devido aos dois ciclos

de atraso entre um calculo e outro, conforme explicado no paragrafo anterior.

Para validacao da implementacao, foi codificado um testbench que le e classifica as

7480 instancias do conjunto de dados de teste e compara os resultados com os resultados obtidos

no Weka. Os arquivos VHDL do classificador e do testbench foram compilados e simulados

no programa ModelSim. A execucao do teste com sucesso indicou que o classificador kNN

implementado em hardware e equivalente ao classificador kNN implementado em software.

6.4 AVALIACAO EM HARDWARE

A avaliacao do classificador kNN hardware foi realizada de forma semelhante a

avaliacao da Arvore de Decisao em hardware, explicada na secao 4.4. A unica alteracao foi

a troca do classificador.

Page 85: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

84

7 RESULTADOS

Neste capıtulo serao apresentados os resultados da dissertacao. Na secao 7.1 serao

apresentados os resultados obtidos para o extrator de caracterısticas existente em software e para

a implementacao correspondente desenvolvida em hardware. Na secao 7.2 serao apresentados

os resultados obtidos para os diferentes classificadores. Por fim, na secao 7.3 serao apresentadas

as publicacoes resultantes desta dissertacao.

7.1 EXTRATOR DE CARACTERISTICAS

Nesta secao serao apresentados os resultados obtidos para as duas versoes do extrator

de caracterısticas, com relacao a area de circuito (para o extrator em hardware), taxa de

transferencia e consumo de energia.

7.1.1 AREA DO CIRCUITO

A tabela 2 apresenta a area usada pelo extrator de caracterısticas em hardware, quanto

a celulas logicas e bits de memoria. Cada linha mostra os recursos utilizados pelos modulos

que compoem o circuito. O extrator completo ocupa 2.683 celulas logicas e 5.242.880 bits de

memoria. A totalidade dos bits de memoria e usada pela tabela de atributos.

Tabela 2: Area utilizada pelo extrator de caracterısticas implementado em hardware.Modulo Celulas Logicas Bits de Memoria

apagamento coluna 33 0controle 122 0

tabela atributos 600 5.242.880hash 728 0

extrator atributos cabecalho 60 0atualiza linha 523 0

restante 617 0extrator de caracterısticas 2.683 5.242.880

Fonte: Autoria propria.

Page 86: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

85

7.1.2 TAXA DE TRANSFERENCIA

A tabela 3 apresenta a taxa de transferencia das duas versoes do extrator de

caracterısticas. O extrator em hardware funcionou corretamente para uma frequencia de

operacao de 50 MHz, o que resultou numa taxa de transferencia de 534.815 pacotes/s. A taxa

de transferencia do extrator em software e 295.615 pacotes/s, o que corresponde a 55% da taxa

em hardware.

Tabela 3: Taxa de transferencia dos extratores em software e hardware (em 50 MHz).Implementacao Pacotes/s

extrator em software 295.615extrator em hardware 534.815

Fonte: Autoria propria.

Ambos os extratores atendem a taxa de transferencia maxima teorica do link de Fast

Ethernet de 150.000 pacotes/s (CISCO, 2009).

7.1.3 CONSUMO DE ENERGIA

A tabela 4 apresenta o consumo de energia dos extratores. O extrator de caracterısticas

em software gasta 5,03 µJ para extrair um pacote, enquanto a implementacao em hardware

gasta 1,15 µJ (em 50 MHz). O extrator de caracterısticas em hardware, entao, consome 23%

da energia consumida pela implementacao em software na operacao de extracao.

Tabela 4: Energia consumida na operacao de extracao em software e hardware (em 50 MHz).Implementacao Energia por Extracao (µJ)

extrator em software 5,03extrator em hardware 1,15

Fonte: Autoria propria.

Adicionalmente, calculou-se tambem a energia consumida por extracao em hardware

para as frequencias de operacao de 10, 20, 30 e 40 MHz. A figura 39, na qual o infixo “hw”

significa hardware, mostra que esses valores variam pouco em relacao ao valor obtido para 50

MHz (no maximo 15 nJ). Conclui-se, entao, que o consumo energetico do extrator em hardware

depende minoritariamente da frequencia. O consumo de potencia e o tempo para extracao mais

apagamento sao, respectivamente, diretamente e inversamente proporcionais a frequencia de

operacao, e por isso o valor de energia se mantem quase constante.

Page 87: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

86

Figura 39: Energia gasta para extrair um pacote em hardware para diferentes frequencias deoperacao.

Fonte: Autoria Propria

7.2 CLASSIFICADORES

Nesta secao serao apresentados os resultados obtidos para os classificadores, com

relacao a acuracia de classificacao, area de circuito (para os classificadores em hardware), taxa

de transferencia e consumo de energia.

Os classificadores em hardware que utilizam ponto flutuante (Naive Bayes e kNN)

tambem foram avaliados com 10 e 16 bits, em adicao as implementacoes originais, com 32 bits.

Nesses casos, todos os valores float dos classificadores tem o mesmo tamanho (32, 16 ou 10

bits), tanto para sinais e resultados internos quanto para os valores armazenados em memoria.

Avaliou-se essa reducao porque as operacoes com float em hardware sao custosas.

A implementacao do ponto flutuante de 16 bits no Naive Bayes e no kNN utilizou 1 bit

para sinal, 6 bits para expoente e 9 bits para a mantissa. Ja a implementacao de 10 bits, para os

dois classificadores, utilizou 1 bit para sinal, 6 bits para expoente e 3 bits para a mantissa. Esses

parametros forneceram o melhor resultado de acuracia. Alem disso, no kNN, a normalizacao

do atributo tcp ack entre -1 e +1 requer ao menos 6 bits de expoente, devido ao grande valor

maximo do atributo.

Os resultados desta secao serao apresentados com as seguintes convencoes:

Page 88: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

87

• As implementacoes sao nomeadas com os prefixos ad, nb e knn, denotando os

classificadores Arvore de Decisao, Naive Bayes e kNN, respectivamente;

• Os classificadores Naive Bayes incluem os infixos comb e seq, denotando as versoes

combinacional e sequencial, respectivamente;

• Os classificadores que usam ponto flutuante incluem os sufixos 32, 16 e 10, indicando o

numero de bits da representacao em float.

7.2.1 ACURACIA DE CLASSIFICACAO

Nesta subsecao serao apresentados os resultados de acuracia de classificacao dos

classificadores, considerando o conjunto de dados de teste (7480 instancias: 3740 normais e

3740 ataques). Alem da acuracia, serao mostradas as estimativas das taxas de falso-positivo e

falso-negativo, a partir do isolamento dos erros de classificacao.

A tabela 5 mostra a matriz de confusao para o classificador Arvore de Decisao. Neste

tipo de apresentacao de dados, os acertos do classificador sao mostrados na diagonal principal

e os erros sao mostrados na diagonal secundaria. Dos 3740 vetores normais, 3736 foram

realmente classificados como normais e 4 foram classificados como ataques. Dos 3740 vetores

de ataque, 3734 foram realmente classificados como ataques e 6 foram classificados como

normais. Esses resultados foram obtidos tanto no programa Weka quanto nas implementacoes

em software e hardware do classificador. Os resultados implicam numa acuracia de 99,87%,

taxa de falso-positivo de 0,11% e taxa de falso-negativo de 0,16%, para o classificador Arvore

de Decisao.

Tabela 5: Matriz de confusao para o classificador Arvore de Decisao.Normal Ataque ← classificado como

3736 4 Normal6 3734 Ataque

Fonte: Autoria propria.

A tabela 6 mostra a matriz de confusao para o classificador Naive Bayes. Dos 3740

vetores normais, 3727 foram realmente classificados como normais e 13 foram classificados

como ataques. Dos 3740 vetores de ataque, 3730 foram realmente classificados como ataques

e 10 foram classificados como normais. Esses resultados foram obtidos tanto no programa

Weka quanto nas implementacoes em software e hardware (para ponto flutuante de 32 bits)

do classificador. Os resultados implicam numa acuracia de 99,69%, taxa de falso-positivo de

0,35% e taxa de falso-negativo de 0,27%, para o classificafor Naive Bayes.

Page 89: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

88

Tabela 6: Matriz de confusao para o classificador Naive Bayes.Normal Ataque ← classificado como

3727 13 Normal10 3730 Ataque

Fonte: Autoria propria.

A tabela 7 mostra a matriz de confusao para o classificador kNN. Dos 3740 vetores

normais, 3656 foram realmente classificados como normais e 84 foram classificados como

ataques. Dos 3740 vetores de ataque, 3719 foram realmente classificados como ataques e

21 foram classificados como normais. Esses resultados foram obtidos tanto no programa

Weka quanto nas implementacoes em software e hardware (para ponto flutuante de 32 bits)

do classificador. Os resultados implicam numa acuracia de 98,60%, taxa de falso-positivo de

2,25% e taxa de falso-negativo de 0,56%, para o classificafor kNN.

Tabela 7: Matriz de confusao para o classificador kNN.Normal Ataque ← classificado como

3656 84 Normal21 3719 Ataque

Fonte: Autoria propria.

A tabela 8 apresenta a acuracia de cada classificador, considerando tambem as

implementacoes em hardware com ponto flutuante de 16 e 10 bits. As versoes em software

foram avaliadas apenas com 32 bits para os valores float.

Tabela 8: Acuracia dos classificadores sobre a base de testes.Classificador Acuracia (%) Implementacao

ad 99,87 software e hardwarenb comb 32 99,69 software e hardwarenb comb 16 99,69 hardwarenb comb 10 99,68 hardwarenb seq 32 99,69 software e hardwarenb seq 16 99,69 hardwarenb seq 10 99,68 hardware

knn 32 98,60 software e hardwareknn 16 98,57 hardwareknn 10 97,09 hardware

Fonte: Autoria propria.

O classificador que obteve a maior acuracia foi a Arvore de Decisao, acertando 99,87%

das classificacoes (em software e hardware). Na sequencia vem o Naive Bayes com float de 32

bits, que acertou 99,69% das classificacoes (em software e hardware). As implementacoes

Page 90: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

89

em hardware do Naive Bayes com 16 e 10 bits acertaram 99,69% e 99,68%, respectivamente.

Nestes casos, o circuito diminuiu, como sera mostrado em breve, mas nao houve reducao de

acuracia para 16 bits e uma reducao mınima para 10 bits. Percebe-se que as implementacoes

combinacional e sequencial do Naive Bayes sao equivalentes do ponto de vista de acuracia.

Ja o kNN de 32 bits acertou 98,60% das classificacoes (em software e hardware). As

implementacoes em hardware com 16 e 10 bits acertaram 98,57% e 97,09%, respectivamente.

Nestes casos, o circuito tambem diminuiu em detrimento da reducao de acuracia.

7.2.2 AREA DOS CIRCUITOS

A tabela 9 apresenta a area usada pelos classificadores em hardware, quanto a celulas

logicas, bits de memoria e multiplicadores de 9 bits dedicados. A Arvore de Decisao e

o classificador mais compacto entre todos os classificadores, ocupando apenas 167 celulas

logicas. A arvore nao possui requisitos de memoria e nem multiplicadores.

Tabela 9: Area utilizada pelos classificadores implementados em hardware.Classificador Celulas Logicas Bits de Memoria Multiplicadores de 9 bits

ad 167 0 0nb comb 32 8.420 0 126nb comb 16 3.085 0 36nb comb 10 2.115 0 0nb seq 32 1.380 10.112 14nb seq 16 743 6.528 4nb seq 10 633 4.992 0

knn 32 6.300 465.920 14knn 16 3.090 228.352 4knn 10 2.024 128.000 2

Fonte: Autoria propria.

A versao combinacional do classificador Naive Bayes utiliza a maior area, com 8.420

celulas logicas. Nao foram utilizados bits de memoria na sıntese porque o circuito armazena

os valores de probabilidades dos atributos em celulas logicas. Ate por isso a quantidade

de celulas e grande. Foram necessarios 126 multiplicadores de 9 bits para a multiplicacao

das probabilidades normal e de ataque dos atributos. Ao reduzir-se os valores float do

classificador para 16 e 10 bits, foram obtidos 3.085 celulas logicas, 36 multiplicadores e 2.115

celulas logicas, 0 multiplicadores, respectivamente. Para 10 bits, o Quartus II sintetizou os

multiplicadores com celulas logicas, em vez de usar multiplicadores dedicados.

A versao sequencial do classificador Naive Bayes utiliza 1.380 celulas logicas. A

Page 91: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

90

reducao na quantidade de celulas foi possıvel a partir do armazenamento dos valores de

probabilidades dos atributos na memoria ROM. Foram utilizados 10.112 bits de memoria para

esse armazenamento. Como o classificador compartilha os multiplicadores das probabilidades,

foram necessarios apenas 14 multiplicadores de 9 bits. Ao reduzir-se os valores float do

classificador para 16 e 10 bits, foram obtidos 743 celulas logicas, 6.528 bits de memoria, 4

multiplicadores e 633 celulas logicas, 4.992 bits de memoria, 0 multiplicadores (nesse caso os

multiplicadores do classificador tambem foram sintetizados com celulas logicas).

O classificador kNN requer a maior quantidade de bits de memoria: 465.920, utilizados

para armazenar os vetores de treinamento do algoritmo. Foram necessarios, ainda, 6.300

celulas logicas e 14 multiplicadores de 9 bits. Esses ultimos sao utilizados nos modulos de

normalizacao e de calculo de distancia. Ao reduzir-se os valores float do classificador para 16

e 10 bits, foram obtidos 3.090 celulas logicas, 228.352 bits de memoria, 4 multiplicadores e

2.024 celulas logicas, 128.000 bits de memoria, 2 multiplicadores, respectivamente.

7.2.3 TAXA DE TRANSFERENCIA

A tabela 10 apresenta a taxa de transferencia dos classificadores. Nao ha valores de

taxa de transferencia em software para os classificadores com float de 10 e 16 bits, visto que em

software avaliaram-se apenas float de 32 bits.

Tabela 10: Taxa de transferencia dos classificadores em software e hardware (em 50 MHz).Classificador Pacotes/s (hardware) Acuracia Relativa (%) Pacotes/s (software)

ad 68.653.027 100,00 15.198.631nb comb 32 3.529.216 100,00 821.358nb comb 16 5.947.813 100,00 -nb comb 10 7.869.182 99,99 -nb seq 32 619.041 100,00 821.358nb seq 16 991.232 100,00 -nb seq 10 1.204.657 99,99 -

knn 32 1.843 100,00 7.900knn 16 2.507 99,97 -knn 10 3.018 98,47 -

Fonte: Autoria propria.

A Arvore de Decisao em hardware tem a maior taxa de transferencia entre todos os

classificadores, classificando mais de 68 milhoes de pacotes por segundo. Esse valor e 4,5 vezes

a taxa de transferencia da versao correspondente em software. A versao combinacional do Naive

Bayes em hardware com float de 32 bits tambem e mais rapida que a versao em software, por

um fator de 4,3. Em contrapartida, o Naive Bayes em software e mais rapido que a versao

Page 92: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

91

sequencial do Naive Bayes em hardware com float de 32 bits por um fator de 1,3. O mesmo

acontece para o kNN, no qual a versao em software e mais rapida por um fator de 4,3. Isso

acontece, nos dois ultimos casos, porque as implementacoes em hardware sao inteiramente

sequenciais e os classificadores possuem frequencia maxima de operacao bem menor que a

frequencia de clock do processador da placa-mae.

A acuracia relativa indica a predicao de cada classificador em hardware relativa a

versao em software. Para as versoes com float de 32 bits, a acuracia relativa e 100% porque

hardware e software fornecem os mesmos resultados. Ao reduzir-se o numero de bits em

hardware, a acuracia e reduzida (com excecao do Naive Bayes de 16 bits). A perda de acuracia

foi menor do que 2 pontos percentuais em todos os casos, mas a partir da reducao do tamanho

do float de 32 para 10 bits em hardware, aumentaram-se as taxas de transferencia em 123%,

95% e 64% para Naive Bayes combinacional, Naive Bayes sequencial e kNN, respectivamente.

Com excecao do kNN, todos os outros classificadores (tanto em software quanto em

hardware) sao capazes de atender a taxa maxima da Fast Ethernet de 150.000 pacotes/s.

7.2.4 CONSUMO DE ENERGIA

O consumo dos classificadores em hardware foi medido para 50 MHz, porque nao

houve erro de classificacao em nenhum classificador nessa frequencia de operacao.

A figura 40 mostra o grafico da potencia do circuito de medicao pelo numero de

replicas dos classificadores em hardware. O consumo varia linearmente com o numero de

replicas, entao as potencias consumidas pelos classificadores foram calculadas atraves de

regressao linear como o coeficiente angular da reta de tendencia correspondente. Cada uma das

dez linhas, se projetadas, cruzam o eixo vertical em aproximadamente 200 mW (caso para 0

classificadores). Este valor e devido, majoritariamente, ao consumo base da FPGA e ao circuito

de medicao e portanto nao e considerado no calculo de consumo dos classificadores.

E importante ressaltar que o coeficiente angular inclui, tambem, o consumo da parte

do circuito de medicao que e proporcional ao numero de replicas dos classificadores. Assim, os

consumos reais dos classificadores em hardware sao ainda menores do que os valores que serao

apresentados a seguir.

A tabela 11 resume o consumo de energia e a acuracia relativa dos classificadores

implementados. O termo Phab refere-se a potencia media consumida por cada classificador em

hardware, enquanto habilitado, obtida por regressao linear, conforme comentado acima. O

termo Pdes refere-se a potencia media consumida por cada classificador em hardware, enquanto

Page 93: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

92

Figura 40: Potencia do circuito de medicao pelo no de classificadores em 50 MHz.

Fonte: Autoria Propria

desabilitado, tambem obtida por regressao linear. Essa potencia, porem, nao entrou no calculo

de consumo, pois considera-se que cada classificador em hardware opera na sua taxa de

transferencia, de forma que entre a chegada de pacotes o circuito sempre esta ativo.

Tabela 11: Energia consumida pelos classificadores em software e hardware (em 50 MHz).

ClassificadorPdes

(mW)Phab

(mW)Energia por op.

em hardware (nJ)Acuracia

Relativa (%)Energia por op.

em software (nJ)ad 1,37 2,76 0,055 100,00 53,54

nb comb 32 3,58 714,45 42,87 100,00 635,25nb comb 16 3,36 85,55 5,13 100,00 -nb comb 10 3,09 35,91 2,15 99,99 -nb seq 32 3,90 14,72 21,49 100,00 635,25nb seq 16 2,73 5,62 8,20 100,00 -nb seq 10 2,53 4,51 6,58 99,99 -

knn 32 84,30 105,12 50.659,43 100,00 58.387,93knn 16 28,71 33,39 16.089,38 99,97 -knn 10 15,47 17,26 8.319,38 98,47 -

Fonte: Autoria propria.

A Arvore de Decisao em hardware e o classificador mais eficiente energeticamente,

gastando 55 pJ por classificacao; apenas 0,1% do consumo da versao em software. As versoes

com float de 32 bits dos classificadores Naive Bayes combinacional e sequencial tambem sao

mais eficientes que a versao em software. O primeiro consome 42,87 nJ por classificacao,

Page 94: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

93

6,7% do consumo em software, e o segundo consome 21,49 nJ, 3,4% do consumo em software.

Quanto ao kNN, mais uma vez a versao em hardware consome menos: 50,66 µJ, o que

corresponde a 86,8% do consumo da versao em software.

As economias de energia obtidas a partir da reducao do tamanho do ponto flutuante

de 32 para 10 bits em hardware foram de 95%, 69% e 84% para Naive Bayes Combinacional,

Naive Bayes Sequencial e kNN, respectivamente.

A figura 41 mostra lado a lado a energia gasta por cada classificador para classificar um

pacote. As barras pretas correspondem aos classificadores em software (mostrados com o sufixo

“sw”), enquanto as barras cinzas correspondem aos classificadores em hardware (mostrados

com o sufixo “hw”). Atraves da imagem e possıvel confirmar que a diferenca de consumo

entre a implementacao em hardware mais eficiente (Arvore de Decisao) e a implementacao em

software mais eficiente (Arvore de Decisao) e de tres ordens de magnitude.

Figura 41: Energia gasta para classificar um pacote em software e hardware (em 50 MHz).

Fonte: Autoria Propria

Adicionalmente, calculou-se tambem a energia consumida por classificacao em

hardware para as frequencias de operacao de 10, 20, 30 e 40 MHz. A figura 42 mostra que esses

valores sao proximos aos obtidos para 50 MHz. Conclui-se, entao, que o consumo energetico

dos classificadores em hardware depende minoritariamente da frequencia. O consumo

de potencia e o tempo de classificacao sao, respectivamente, diretamente e inversamente

proporcionais a frequencia de operacao, e por isso o valor de energia se mantem quase constante.

Page 95: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

94

Figura 42: Energia gasta para classificar um pacote em hardware em diferentes frequencias.

Fonte: Autoria Propria

Como observacao final, ressalta-se que caso um classificador em hardware nao

operasse em sua taxa de transferencia, a potencia desse enquanto desabilitado entraria no

calculo do consumo energetico. Porem, para evitar essa situacao, outra tatica poderia ser

adotada: executar o circuito com uma frequencia mais baixa de forma a preencher todo o tempo

de chegada entre pacotes com a classificacao. O mesmo raciocınio e valido para o extrator.

7.3 PUBLICACOES

O desenvolvimento deste trabalho proporcionou a publicacao de dois artigos em

congressos internacionais do IEEE, conforme referencias abaixo:

• FRANCA, Andre L.; JASINSKI, Ricardo; PEDRONI, Volnei A.; SANTIN, Altair O.

Moving Network Protection from Software to Hardware: An Energy Efficiency Analysis.

In: Computer Society Annual Symposium on VLSI 2014 (ISVLSI 2014). Tampa, Estados

Unidos: IEEE, 2014. p. 456-461

• FRANCA, Andre L.; JASINSKI, Ricardo; CEMIN, Paulo; PEDRONI, Volnei A.;

SANTIN, Altair O. The Energy Cost of Network Security: A Hardware vs. Software

Comparison. In: International Symposium on Circuits and Systems 2015 (ISCAS 2015).

Lisboa, Portugal: IEEE, 2015.

Page 96: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

95

8 CONCLUSAO

Neste trabalho foram desenvolvidos algoritmos necessarios ao projeto de um Sistema

de Deteccao de Intrusao de Rede baseado em anomalia. Os algoritmos contemplados foram

um extrator de caracterısticas dos pacotes da rede em hardware (versao correspondente a um

extrator existente em software) e tres classificadores de Aprendizagem de Maquina (Arvore

de Decisao, Naive Bayes e k-Vizinhos mais Proximos, ou kNN), em software e hardware,

modelados para deteccao de ataques do tipo probing.

Os algoritmos em software foram implementados em C++ e avaliados numa placa-mae

Atom DN2800MT com o Sistema Operacional openSUSE 13.1. Os algoritmos em hardware

foram implementados em VHDL e avaliados na FPGA Cyclone IV GX, da Altera. Para as

duas versoes do extrator de caracterısticas foram comparados consumo energetico e taxa de

transferencia. Para as versoes em software e hardware dos classificadores, alem do consumo

energetico e taxa de transferencia, comparou-se, ainda, a acuracia de classificacao.

O extrator de caracterısticas em software, desenvolvido por Eduardo Kugler Viegas

e Altair Olivo Santin, obteve uma taxa de transferencia de 295.615 pacotes/s. A versao

correspondente em hardware, em contrapartida, obteve uma taxa de transferencia de 534.815

pacotes/s. Com relacao ao consumo energetico por operacao de extracao, os valores das versoes

em software e hardware foram de 5,03 µJ e 1,15 µJ, respectivamente. O extrator em hardware,

entao, opera numa velocidade quase duas vezes maior, gastando apenas 23% do valor de

energia da implementacao em software. O extrator em hardware ocupa 2.683 celulas logicas e

5.242.880 bits de memoria da FPGA.

Quanto aos classificadores, a Arvore de Decisao obteve a melhor acuracia de

classificacao na base de dados de testes: 99,87%, tanto em software quanto em hardware. Na

sequencia vem Naive Bayes e kNN, com acuracias de 99,69% e 98,60%, respectivamente, tanto

em software quanto em hardware (com float de 32 bits). Para Naive Bayes e kNN avaliou-se,

ainda, a reducao do tamanho do ponto flutuante em hardware. As perdas de acuracia foram

menores do que 2 pontos percentuais na reducao de 32 para 10 bits.

Page 97: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

96

Os classificadores em hardware foram comparados, tambem, quanto a area. A

Arvore de Decisao e o classificador mais compacto, ocupando 167 celulas logicas. A

versao combinacional do Naive Bayes ocupa a maior area, com 8.420 celulas logicas e 126

multiplicadores de 9 bits. O kNN utiliza a maior quantidade de bits de memoria, 465.920, alem

de 6.300 celulas e 14 multiplicadores. A versao sequencial do Naive Bayes ocupa 1.380 celulas

logicas, 10.112 bits de memoria e 14 multiplicadores. Reduzindo-se o float de 32 para 10 bits,

as areas de Naive Bayes combinacional e sequencial e kNN foram reduzidas em mais de 50%.

A Arvore de Decisao em hardware alcancou a maior taxa de transferencia entre

todos os classificadores: 68.653.028 pacotes/s, ou 4,5 vezes a taxa da versao correspondente

em software (15.198.631 pacotes/s). A versao combinacional do Naive Bayes em hardware

(3.529.217 pacotes/s) tambem e mais rapida que a versao em software (821.358 pacotes/s), mas

o mesmo nao acontece para a versao sequencial em hardware (619.041 pacotes/s). Para o kNN,

a versao em software (7.900 pacotes/s) tambem e mais rapida que a versao em hardware (1.843

pacotes/s). Nos ultimos dois casos isso acontece porque os classificadores em hardware sao

inteiramente sequenciais e operam numa frequencia bem menor que a frequencia de clock do

processador da placa-mae. A partir da reducao do tamanho do ponto flutuante de 32 para 10

bits em hardware, aumentaram-se as taxas de transferencia em 123%, 95% e 64% para Naive

Bayes combinacional, Naive Bayes sequencial e kNN, respectivamente.

A Arvore de Decisao em hardware e o classificador mais eficiente energeticamente,

gastando 55 pJ para classificar um pacote, ou 0,1% da energia gasta pela versao correspondente

em software (53,54 nJ). As versoes combinacional (42,87 nJ) e sequencial (21,49 nJ) do Naive

Bayes em hardware tambem sao mais eficientes que a versao em software (635,25 nJ). Em

relacao ao kNN, mais uma vez, embora por pouco, a versao em hardware (50,66 µJ) e mais

eficiente energeticamente que a versao em software (58,39 µJ). As economias de energia obtidas

a partir da reducao do tamanho do ponto flutuante de 32 para 10 bits em hardware foram de 95%,

69% e 84% para Naive Bayes Combinacional, Naive Bayes Sequencial e kNN, respectivamente.

Os trabalhos futuros incluem: 1) otimizacao do classificador kNN em hardware, a

partir da realizacao de operacoes em paralelo e avaliacao do calculo de distancia Manhattan

em vez da Euclidiana (MANOLAKOS; STAMOULIAS, 2010); 2) desenvolvimento dos

classificadores Maquina de Vetor de Suporte (SVM, do ingles Support Vector Machine) e

Analise de Discriminante Linear (LDA, do ingles Linear Discriminant Analysis) para deteccao

de probing; 3) desenvolvimento dos classificadores Arvore de Decisao, Naive Bayes, kNN,

SVM e LDA para deteccao de ataques do tipo DoS.

Page 98: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

97

REFERENCIAS

BRUGGER, S. T. Data Mining Methods for Network Intrusion Detection. Davis: Universityof California, Davis, 2004. 64 p.

CATANIA, Carlos A.; GARINO, Carlos G. Automatic network intrusion detection: Currenttechniques and open issues. Computers & Electrical Engineering, v. 38, n. 5, p. 1062-1072,set. 2012.

CEMIN, Paulo R. Plataforma de Medicao de Consumo para Comparacao entre Softwaree Hardware em Projetos Energeticamente Eficientes. 2015. 99 f. Dissertacao (Mestrado emEngenharia Eletrica e Informatica Industrial) – Programa de Pos-Graduacao em EngenhariaEletrica e Informatica Industrial, Universidade Tecnologica Federal do Parana, Curitiba, 2015.

CHEN, Hao; CHEN, Yu; SUMMERVILLE, Douglas H. A Survey on the Application of FPGAsfor Network Infrastructure Security. IEEE Communications Surveys & Tutorials, v. 13, n. 4,p. 541-561, nov. 2011.

CHENG, Xiang et al. Intrusion Detection System Based on KNN-MARS. In: WRI WorldCongress on Software Engineering 2009 (WCSE ’09). Xiamen, China: IEEE, 2009. p. 392-396.

CISCO. Bandwidth, Packets Per Second, and Other Network Performance Metrics. SanJose: Cisco, 2009. 3 p.

CISCO. Visual Networking Index: Forecast and Methodology, 2013–2018. San Jose: Cisco,2014. 14 p.

CORONA, Igino; GIACINTO, Giorgio; ROLI, Fabio. Adversarial attacks against intrusiondetection systems: Taxonomy, solutions and open issues. Information Sciences, v. 239, p.201-225, ago. 2013.

DAS, Abhishek et al. An FPGA-Based Network Intrusion Detection Architecture. IEEETransactions on Information Forensics and Security, v. 3, n. 1, p. 118-132, mar. 2008.

DAVIS, Jonathan J.; CLARK, Andrew J. Data preprocessing for anomaly based networkintrusion detection: A review. Computers & Security, v. 30, n. 6-7, p. 353-375, set.-out. 2011.

DUDA, Richard O.; HART, Peter E.; STORK, David G. Pattern Classification. 2. ed. [S.l.]:Willey Interscience, 2002.

ESTEVEZ-TAPIADOR, Juan M.; GARCIA-TEODORO, Pedro; DIAZ-VERDEJO, JesusE. Stochastic Protocol Modeling for Anomaly Based Network Intrusion Detection. In:International Workshop on Information Assurance 2003 (IWIAS 2003). Darmstadt,Alemanha: IEEE, 2003. p. 3-12.

EVANS, Dave. The Internet of Things: How the Next Evolution of the Internet Is ChangingEverything. San Jose: Cisco, 2011. 11 p.

Page 99: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

98

FRANCA, Andre L. et al. The Energy Cost of Network Security: A Hardware vs. SoftwareComparison. In: International Symposium on Circuits and Systems 2015 (ISCAS 2015).Lisboa, Portugal: IEEE, 2015.

GARCIA-TEODORO, Pedro et al. Anomaly-based network intrusion detection: Techniques,systems and challenges. Computers & Security, v. 28, n. 1-2, p. 18-28, fev.-mar. 2009.

GOGOI, Prasanta et al. Packet and Flow Based Network Intrusion Dataset. In: InternationalConference on Contemporary Computing 2012 (IC3 2012). Noida, India: Springer, 2012. p.322-334.

HARWAYNE-GIDANSKY, Jared; STEFAN, Deian; DALAL, Ishaan. FPGA-based SoC forReal-Time Network Intrusion Detection using Counting Bloom Filters. In: Southeastcon 2009.Atlanta, Estados Unidos: IEEE, 2009. p. 452-458.

IBRAHIM, Heba E.; BADR, Sherif M.; SHAHEEN, Mohamed A. Phases vs. Levels usingDecision Trees for Intrusion Detection Systems. International Journal of Computer Scienceand Information Security (IJCSIS), v. 10, n. 8, p. 1-7, ago. 2012.

KATASHITA, Toshihiro et al. FPGA-Based Intrusion Detection System for 10 Gigabit Ethernet.IEICE Transactions on Information and Systems, E90-D, n. 12, p. 1923-1931, dez. 2007.

KENDALL, Kristopher. A Database of Computer Attacks for the Evaluation ofIntrusion Detection Systems. 1999. 124 f. Dissertacao (Mestrado em Electrical Engineeringand Computer Science) – Department of Electrical Engineering and Computer Science,Massachusetts Institute of Technology, Cambridge, 1999.

KIZZA, Joseph M. Guide to Computer Network Security. 2nd. ed. [S.l.]: Springer, 2013.

KOSHAL, Jashan; BAG, Monark. Cascading of C4.5 Decision Tree and Support VectorMachine for Rule Based Intrusion Detection System. International Journal of ComputerNetwork and Information Security (IJCNIS), v. 4, n. 8, p. 8-20, ago. 2012.

LE, Hoang; PRASANNA, Viktor K. A Memory-Efficient and Modular Approach for Large-Scale String Pattern Matching. IEEE Transactions on Computers, v. 62, n. 5, p. 844-857,mai. 2013.

LI, Wei; LI, QingXia. Using Naive Bayes with AdaBoost to Enhance Network AnomalyIntrusion Detection. In: International Conference on Intelligent Networks and IntelligentSystems 2010 (ICINIS 2010). Shenyang, China: IEEE, 2010. p. 486-489.

LI, Yang; GUO, Li. An active learning based TCM-KNN algorithm for supervised networkintrusion detection. Computers & Security, v. 26, n. 7-8, p. 459-467, dez. 2007.

MANOLAKOS, Elias S.; STAMOULIAS, Ioannis. Flexible IP cores for the k-NN classificationproblem and their FPGA implementation. In: International Symposium on ParallelDistributed Processing, Workshops and Phd Forum 2010 (IPDPSW 2010). Atlanta, EstadosUnidos: IEEE, 2010. p. 1-4.

MITCHELL, Tom M. Machine Learning. [S.l.]: McGraw-Hill, 1997.

Page 100: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

99

MUKHERJEE, Saurabh; SHARMA, Neelam. Intrusion Detection using Naive Bayes Classifierwith Feature Reduction. In: International Conference on Computer, Communication,Control and Information Technology 2012 (C3IT-2012). Hooghly, India: Elsevier, 2012.p. 119-128.

MURALEEDHARAN, N.; PARMAR, Arun; KUMAR, Manish. A Flow based AnomalyDetection System using Chi-square Technique. In: International Advance ComputingConference 2010 (IACC 2010). Patiala, India: IEEE, 2010. p. 285-289.

PONTARELLI, Salvatore; BIANCHI, Giuseppe; TEOFILI, Simone. Traffic-Aware Design of aHigh-Speed FPGA Network Intrusion Detection System. IEEE Transactions on Computers,v. 62, n. 11, p. 2322-2334, nov. 2013.

POSTEL, Jon. RFC 768 - User Datagram Protocol. Marina del Rey: USC InformationSciences Institute, 1980. 3 p.

POSTEL, Jon. RFC 791 - Internet Protocol. Marina del Rey: USC Information SciencesInstitute, 1981. 45 p.

POSTEL, Jon. RFC 792 - Internet Control Message Protocol. Marina del Rey: USCInformation Sciences Institute, 1981. 21 p.

POSTEL, Jon. RFC 793 - Transmission Control Protocol. Marina del Rey: USC InformationSciences Institute, 1981. 85 p.

PUKKAWANNA, Sirikarn et al. Investigating the Utility of S-Transform for Detecting Denial-of-Service and Probe Attacks. In: International Conference on Information Networking2014 (ICOIN 2014). Phuket, Tailandia: IEEE, 2014. p. 282-287.

ROESCH, Martin. Snort - Lightweight Intrusion Detection for Networks. In: USENIXConference on System Administration 1999 (LISA ’99). Berkeley, Estados Unidos: USENIXAssociation, 1999. p. 229-238.

SOMAVAT, Pavel; NAMBOODIRI, Vinod. Energy Consumption of Personal ComputingIncluding Portable Communication Devices. Journal of Green Engineering, p. 447-475, jul.2011.

SONG, Haoyu; LOCKWOOD, John W. Efficient Packet Classification for Network IntrusionDetection Using FPGA. In: International Symposium on Field-programmable Gate Arrays2005 (FPGA ’05). Monterey, Estados Unidos: ACM, 2005. p. 238-245.

SOURCEFIRE. SNORT Users Manual. Disponıvel em: <http://manual.snort.org/>. Acessoem: 09 dez. 2014.

STANIFORD, Stuart; HOAGLAND, James A.; MCALERNEY, Joseph M. Practical AutomatedDetection of Stealthy Portscans. Journal of Computer Security, v. 10, n. 1-2, p. 105-136,2002.

THE UNIVERSITY OF WAIKATO. Attribute-Relation File Format (ARFF). Disponıvel em:<http://weka.wikispaces.com/ARFF>. Acesso em: 13 nov. 2013.

TSAI, Chih-Fong et al. Intrusion detection by machine learning: A review. Expert Systemswith Applications, v. 36, n. 10, p. 11994-12000, dez. 2009.

Page 101: UNIVERSIDADE TECNOLOGICA FEDERAL DO …repositorio.utfpr.edu.br/jspui/bitstream/1/1166/1/CT_CPGEI_M... · TABELA 1 – Probabilidades para o atributo udp sport na implementac¸ao

100

TUNCER, Taner; TATAR, Yetkin. FPGA Based Programmable Embedded Intrusion DetectionSystem. In: International Conference on Security of Information and Networks 2010 (SIN’10). Taganrog, Russia: ACM, 2010. p. 245-248.

UNIVERSITY OF CALIFORNIA, IRVINE. KDD Cup 1999 Data. Disponıvel em:<http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html>. Acesso em: 10 set. 2013.

UNIVERSITY OF NEW BRUNSWICK. The NSL-KDD Data Set. Disponıvel em:<http://nsl.cs.unb.ca/NSL-KDD/>. Acesso em: 10 set. 2013.

VIEGAS, Eduardo K. et al. EEIDS: Method and Energy-Efficient FPGA-based SoCImplementation for Anomaly Detection System. PUCPR/UTFPR: Curitiba, 2013. n. 2.

VIEGAS, Eduardo K. et al. EEIDS: Method and Energy-Efficient FPGA-based SoCImplementation for Anomaly Detection System. PUCPR/UTFPR: Curitiba, 2014. n. 3.

VIEGAS, Eduardo K. et al. EEIDS: Method and Energy-Efficient FPGA-based SoCImplementation for Anomaly Detection System. PUCPR/UTFPR: Curitiba, 2014. n. 4.

VIJAYASARATHY, R.; RAGHAVAN, S.; RAVINDRAN, Balaraman. A System Approach toNetwork Modeling for DDoS Detection using a Naive Bayesian Classifier. In: InternationalConference on Communication Systems and Networks 2011 (COMSNETS 2011).Bangalore, India: IEEE, 2011. p. 1-10.

WU, Shelly X.; BANZHAF, Wolfgang. The use of computational intelligence in intrusiondetection systems: A review. Applied Soft Computing, v. 10, n. 1, p. 1-35, jan. 2010.