Você está na página 1de 71

Universidade Lúrio

Faculdade de Engenharia
Departamento Engenharia Informática
Trabalho de Culminação do Curso

SISTEMA BASEADO EM INTELIGÊNCIA ARTIFICIAL PARA DETECÇÃO


DE INTRUSÃO À REDES DE COMPUTADORES

Autor: Harruno Aboobacar Itar Ismael

Supervisor: Celso Vanimaly

Pemba, Junho de 2023


Universidade Lúrio
Faculdade de Engenharia
Departamento Engenharia Informática
Trabalho de Culminação do Curso

SISTEMA BASEADO EM INTELIGÊNCIA ARTIFICIAL PARA DETECÇÃO


DE INTRUSÃO À REDES DE COMPUTADORES

Monografia apresentada ao Curso de Licenciatura em


Engenharia Informática da Universidade Lúrio como
cumprimento do requisito obrigatório para obtenção do
título de Licenciado em Engenharia Informática.

Autor

_______________________________________

Harruno Aboobacar Itar Ismael

Supervisor

______________________________________

Celso Vanimaly

Pemba, Junho de 2023


PENSAMENTO

Josiene Rodrigues Rocha, uma vez disse:

⁠ “Com avanço tecnológico e o compartilhamento de informações,


não há sequer um segundo em que não estamos vulneráveis e a
mercê da violação de dados pessoais, a proteção destes
elementos é uma garantia fundamental de todos nós.”
PÁGINA DE ACEITAÇÃO

Cidade________________________________________

Data ___________/_______________/_____________

_____________________________________________

Presidente do Júri

_____________________________________________
Secretário

_____________________________________________
Vogal
DECLARAÇÃO DE HONRA

Eu Harruno Aboobacar Itar Ismael, declaro que sou autor desta Monografia e que
autorizo a Universidade Lúrio, a fazer uso da mesma, com a finalidade que julgue
conveniente.

__________________________________________
Harruno Aboobacar Itar Ismael

Pemba, ________ de _________________ de 2023


AGRADECIMENTO

Primeiramente gostaria de expressar meu mais profundo agradecimento a Allah (‫)هللا‬, o


Misericordioso, por sua orientação, bênçãos, graça, por me conceder sabedoria, força e
paciência para enfrentar os desafios encontrados ao longo deste trabalho acadêmico.

Aos meus amados pais, Aboobacar Itar Ismael & Fátima José da Cruz Cacauene, por
terem me dado a vida e por terem me criado com amor, apoio, princípios e valores sólidos.
O Vosso constante encorajamento e a crença em mim me fortaleceram nos momentos de
desafio e me motivaram a perseguir meus sonhos acadêmicos, vocês sempre estiveram ao
meu lado, incentivando-me a buscar conhecimento, explorar minhas paixões e enfrentar
os obstáculos com determinação, e este trabalho é mais um dos frutos colhidos graças ao
vosso suporte, portanto meu muito obrigado.

Ao meu supervisor Celso Vanimaly, pelo suporte, ralhas, suas correções e incentivos.
Além disso, gostaria também de expressar minha gratidão aos meus colegas e amigos,
que estiveram ao meu lado durante todo o processo de formação, pesquisa e redação, em
especial ao Juneque, Prosperino, Belilo e Nádia.

E a todos que direta ou indiretamente fizeram parte da minha formação e me apoiaram, o


meu muito obrigado.

A realização desta monografia representou um desafio gratificante e enriquecedor em


minha jornada acadêmica. Gostaria de expressar meus sinceros agradecimentos a todos
que contribuíram para o sucesso deste trabalho.

VI
DEDICATÓRIA

Este trabalho dedico aos meus amados pais,


Em especial á minha mãe (Fátima José Da Cruz Cacauene),
a quem dedico a minha vida e sou grato.

VII
Resumo

As crescentes e constantes ameaças cibernéticas e invasões representam desafios


significativos para a segurança das redes de computadores, pois os sistemas tradicionais
de deteção de intrusão (IDS) muitas vezes tentam acompanhar sem sucesso as táticas e
técnicas em evolução praticadas por agentes mal-intencionados, consequentemente
prejudicando a saúde da rede. Neste trabalho é apresentado estudo de um sistema baseado
em inteligência artificial que utiliza algoritmos de aprendizagem automática para
aprimorar os recursos de deteção de intrusão de rede de computadores. Foi utilizado o
conjunto de dados UNSW-NB15 (Nour, 2017), que inclui dados de tráfego de rede,
Fuzzers, Analysis, Backdoor, Dos, Exploits, Worms, Reconnaissance, Generic, logs do
sistema e eventos de segurança, que são pré-processados para extrair recursos relevantes.
Seguidamente, os algoritmos de aprendizagem automática, Random Forest Classifier, K-
Nearest Neighbor e XGBoost são implementados para treinamentos e testes dos modelos,
aplicando a abordagem de K-Fold Cross Validation para obter o desempenho de cada um.
Os resultados experimentais mostram que o modelo Random Forest Classifier obteve
melhor desempenho em relação aos outros com uma acurácia e precisão de 94%.

Palavras Chaves: Sistema de detenção de Intrusão, segurança de informação,


Aprendizagem Automática.

VIII
Abstract
The growing and constant cyber threats and intrusions pose significant challenges to
computer network security, as traditional intrusion detection systems (IDS) often
unsuccessfully attempt to keep up with the evolving tactics and techniques practiced by
malicious actors, consequently undermining network health. In this paper, a study of an
artificial intelligence-based system that uses machine learning algorithms to enhance
computer network intrusion detection capabilities is presented. The UNSW-NB15
dataset, which includes network traffic data, Fuzzers, Analysis, Backdoor, Dos, Exploits,
Worms, Reconnaissance, Generic, system logs, and security events, was used and
preprocessed to extract relevant features. Next, the machine learning algorithms, Random
Forest Classifier, K-Nearest Neighbor and XGBoost are implemented for training and
testing the models, applying the K-Fold Cross Validation approach to obtain the
performance of each. The experimental results show that the Random Forest Classifier
model performed better than the others with an accuracy and precision of 94%.

Keywords: Intrusion Detection System, information security, Machine Learning.

IX
Índice

Resumo .........................................................................................................................VIII

Abstract ........................................................................................................................... IX

Lista de Abreviaturas ..................................................................................................... XII

Índice de Tabelas ..........................................................................................................XIII

Índice de Figuras ......................................................................................................... XIV

CAPÍTULO 1: INTRODUÇÃO ..................................................................................... 15

1.1. Contextualização .............................................................................................. 15

1.2. Problematização ............................................................................................... 16

1.3. Justificativa ...................................................................................................... 18

1.4. Objetivos .......................................................................................................... 18

1.4.1. Objetivo Geral .......................................................................................... 18

1.4.2. Objetivos Específicos ............................................................................... 18

1.5. Resultados Esperados ...................................................................................... 19

1.6. Organização do Trabalho ................................................................................. 19

CAPÍTULO 2: EMBASAMENTO TEÓRICO .............................................................. 20

2.1. Redes de Computadores ................................................................................... 20

2.1.1. Modelo OSI .............................................................................................. 21

2.1.2. Modelo TCP/IP ......................................................................................... 21

2.2. Segurança da Informação ................................................................................. 22

2.2.1. Sistema de deteção de intrusão (IDS) ....................................................... 22

2.2.2. Sistema de deteção de intrusão em Redes (NIDS) ................................... 25

2.3. Aprendizado de máquina ................................................................................. 27

2.3.1. Aprendizado supervisionado e Não supervisionado................................. 27

2.4. Visão geral dos métodos de ML ...................................................................... 29

2.4.1. Random Forest Classifier (RFC).............................................................. 29

2.4.2. eXtreme Gradient Boosting (XGBoost) .................................................... 30

X
2.4.3. K-Nearest Neighbor (KNN) ...................................................................... 31

2.4.4. Considerações Gerais ............................................................................... 32

2.5. Métricas de Desempenho ................................................................................. 33

2.6. Trabalhos Correlacionados .............................................................................. 35

2.6.1. Considerações Gerais ............................................................................... 38

CAPÍTULO 3: METODOLOGIA .................................................................................. 39

3.1. Caraterísticas da Pesquisa ................................................................................ 39

3.2. Suporte tecnológico: ........................................................................................ 40

3.3. Materiais .......................................................................................................... 40

3.4. Conjunto de Dados (Dataset) .......................................................................... 41

3.5. Pré-Processamento do Dataset ......................................................................... 45

3.5.1. Limpeza do Dataset .................................................................................. 45

3.5.2. Normalização ............................................................................................ 45

3.5.3. Seleção de recursos ................................................................................... 46

3.6. Construção dos modelos .................................................................................. 50

3.7. Treinamento e teste .......................................................................................... 50

3.7.1. Avaliação dos Modelos ............................................................................ 51

3.7.2. Considerações Gerais ............................................................................... 52

CAPÍTULO 4: APRESENTAÇÃO, ANÁLISE E DISCUSSÃO DOS RESULTADOS


54

4.1. Avaliação do modelo Random Forest Classifier (RFC) .................................. 55

4.2. Avaliação do modelo XGBoost ....................................................................... 58

4.3. Avaliação do Modelo K- Nearest Neighbor (KNN) ........................................ 60

4.4. Discussão ......................................................................................................... 62

CAPÍTULO 5: CONCLUSÃO ....................................................................................... 64

Referências Bibliográficas .............................................................................................. 65

Apêndices ....................................................................................................................... 69

XI
Lista de Abreviaturas

IA Inteligência Artificial
IDS Intrusion Detection System
NIDS Network Intrusion Detection System
ML Machine Learning
RFC Random Forest Classifier
XGBoost eXtreme Gradient Boosting
SVM Support Vector Machine
KNN K-Nearest Neighbor
FP Feature Importance
OSI Open Systems Interconnection
TCP/IP Transmission Control Protocol/Internet Protocol
VP Verdadeiro Positivo
VN Verdadeiro Negativo
FP Falso Positivo
FN Falso Negativo
HIDS Host Intrusion Detection System
IBL Instance-based Learning
IGKM Algoritmo K-means Genético Melhorado
ELM Extreme Lerning Machine
MID Maximal Patterns for Intrusion Detection
SMOTE Synthetic Minority Over-Sampling Technique
SIEM Security Information and Event Management
WSN Wireless Sensor Networks
HTTP HyperTextTransferProtocol

XII
Índice de Tabelas

Tabela 1: Diferentes técnicas de IDS ............................................................................ 28


Tabela 2: Matriz de Confusão ....................................................................................... 34
Tabela 3: Caraterísticas da pesquisa .............................................................................. 39
Tabela 4: Suporte técnico (hardware) para realização do trabalho................................ 40
Tabela 5: Lista de recursos do Dataset UNSW-NB15 .................................................. 41
Tabela 6: instâncias das categorias de ataques no Dataset de treino e teste .................. 43
Tabela 7: Descrição dos tipos de ataques ...................................................................... 44
Tabela 8: Identificação das classes em número ............................................................. 46
Tabela 9: Descrição dos recursos do Dataset ................................................................ 47
Tabela 10: Análise de desempenho dos algoritmos ...................................................... 54

XIII
Índice de Figuras

Figura 1: Sistema de detenção de intrusão (IDS) .......................................................... 23


Figura 2: Arquitetura de NIDS ...................................................................................... 26
Figura 3: Ilustração diagramática de uma Random Forest ............................................ 29
Figura 4: Representação esquemática eXtreme Gradient Boosting (XGBoost) ........... 30
Figura 5: Ilustração de funcionamento do KNN, ilustrando como o valor K influencia a
classificação de nova instância ....................................................................................... 32
Figura 6: Etapas no processo de desenvolvimento do trabalho .................................... 39
Figura 7: Categorias de ataques ..................................................................................... 42
Figura 8: Instância das categorias de ataques representadas em %............................... 43
Figura 9: Principais recursos do dataset ........................................................................ 49
Figura 10: Distribuição das classes antes do Oversampling VS depois do Oversampling
........................................................................................................................................ 51
Figura 11: Método K-Fold Cross Validation. ............................................................... 51
Figura 12: Fluxo de dados, ate a construção dos modelos. ........................................... 53
Figura 13: Training Accuracy vs Validation Accuracy do modelo RFC. ..................... 55
Figura 14: Taxa de Erro de treinamento para 10 Fold do modelo RFC ........................ 56
Figura 15: Acurácia de treinamento para 10 Fold do modelo RFC .............................. 56
Figura 16: Loss de Validação para 10 Fold do modelo RFC ........................................ 57
Figura 17: Taxa de FP em (%) das classes do modelo RFC ......................................... 57
Figura 18: Training Accuracy VS Validation Accuracy do modelo XGBoost ............. 58
Figura 19: Acurácia de Validação para 10 Fold do modelo XGBoost.......................... 58
Figura 20: Training Loss VS Validation Loss para o modelo XGBoost ...................... 59
Figura 21: Taxa de FP em (%) das classes do modelo XGBoost .................................. 59
Figura 22: Training Accuracy vs Validation Accuracy do modelo KNN (k=5). .......... 60
Figura 23: Taxa de Erro de treinamento por Fold do modelo KNN (k=5). .................. 60
Figura 24: Training Loss VS Validation Loss para o modelo KNN (k=5) ................... 61
Figura 25: Acurácia de Validação para 10 Fold do modelo KNN (k=5). ..................... 61
Figura 26: Taxa de FP em (%) das classes do modelo KNN (k=5). ............................. 62

XIV
CAPÍTULO 1: INTRODUÇÃO
1.1. Contextualização

Segundo (Nakamura, 2016) a tecnologia da informação tem sido um instrumento muito


usado pelo homem, que busca assim realizar seus trabalhos de maneira mais fácil, rápida
e segura. A medida que as redes globais expandem a interconexão dos sistemas de
informação do mundo, o bom funcionamento das soluções de comunicação e computação
torna-se vital. No entanto, eventos recorrentes, como ataques de vírus, os sucessos de
invasores criminosos, entre outros, ilustram as fraquezas das tecnologias de informação
atuais e a necessidade de fornecer maior segurança para esses sistemas.

Segundo (Anand, Pranav, Neetish, & Jayasree, 2018) pesquisas mostram que os crimes
de invasão de rede aumentaram drasticamente ao longo das últimas duas décadas e levam
ao roubo de privacidade pessoal (senhas, dados pessoais, entre outros). Esses dados
roubados como parte da privacidade pessoal são vendidos nos mercados negros (Anand,
Pranav, Neetish, & Jayasree, 2018).

Dentre as ameaças à rede de computadores, encontramos a invasão, que normalmente é


realizada por um hacker com finalidades nocivas à saúde das informações que passam
pela rede ou que são armazenadas. Segundo (Nakamura, 2016), para monitorar o tráfego
e identificar invasões, temos os Intrusion Detection System, ou simplesmente IDS, que
quando configurados para monitorar todo o tráfego à rede, são chamados de NIDS
(Network Intrusion Detection System).

O uso de métodos de deteção de intrusos começou a crescer, usando métodos de deteção


de intrusos, pode - se coletar e usar informações de tipos de ataques conhecidos e
descobrir se alguém está tentando atacar a rede (Nakamura, 2016). A informação coletada
desse modo pode ser usada para melhorar a segurança da rede como também para usos
legais.

Segundo (Khraisat, Gondal, & Kamruzzaman, 2019) nas ultimas duas décadas, técnicas
avançadas de deteção de intrusos em redes de computadores tornam-se cada vez mais
importantes para prevenir ataques e proteger informações no ambiente, e ainda de acordo
com mesmo autor em redes de computadores é possível utilizar os conceitos de
inteligência artificial, utilizando suas características de reconhecimento de padrões e
generalização para realizar a classificação dos eventos que acontecem nesses ambientes.

15
Dessa forma, o presente projeto de pesquisa visa usar a abordagem de inteligência
artificial para realizar estudos sobre a problemática de intrusão a redes de computadores
e apresentar soluções que se possam considerar viáveis.

1.2. Problematização

De acordo com (Nakamura, 2016) desde o início da utilização de computadores e


equipamentos informáticos em ambientes corporativos e pessoais, têm-se pensado em
segurança. As intrusões em redes de computadores aumentaram significativamente na
última década, devido, em parte, a uma lucrativa economia subterrânea de cibercrime e à
disponibilidade de ferramentas sofisticadas para lançar essas intrusões (Dina &
Manivannan, 2021), ainda de acordo com os mesmos autores, a invasão de redes de
computadores constitui um dos principais problemas de segurança enfrentados por
organizações atualmente, e com esses problemas de segurança de rede sendo mais
proeminentes, a segurança dos recursos do sistema e da rede se torna um problema cada
vez mais importante.

Para (Whitman & Mattord, 2011) acreditam que a segurança da informação é um senso
bem informado de garantia de que os riscos e os controles da informação estão em
equilíbrio. Ele não está sozinho em sua perspetiva. Muitos profissionais de segurança da
informação reconhecem que alinhar as necessidades de segurança da informação deve ser
a principal prioridade.

Intrusão de rede é qualquer atividade não autorizada em uma rede de computadores


(Anand, Pranav, Neetish, & Jayasree, 2018), e relativamente ao IDS em redes de
computador é uma tecnologia que tornou-se um dos principais tópicos de pesquisa para a
resolução dos problemas voltados para a segurança em redes de computador (Shang-fu &
Chun-lan, 2012).

Segundo (Dent & Hutchinson, 2017) a exploração de vulnerabilidades previamente


desconhecidas, representam um desafio crítico para a segurança das redes de
computadores. Os sistemas tradicionais de detenção e prevenção de invasões muitas vezes
lutam para detetar esses ataques devido à sua natureza sem precedentes. O problema em
questão envolve o desenvolvimento de mecanismos de defesa adaptáveis capazes de
identificar e mitigar rapidamente explorações de dia zero para evitar acesso não
autorizado, violações de dados e comprometimento do sistema.

16
No trabalho de (D. L. Costa, 2015) afirmam que as problemáticas das ameaças internas
representam um risco significativo e muitas vezes subestimado para a segurança das redes
de computadores. Ao contrário dos invasores externos, os internos têm acesso legítimo
aos recursos da rede, tornando suas atividades maliciosas mais difíceis de detetar usando
técnicas tradicionais de detenção de intrusão. O desafio está no desenvolvimento de
métodos robustos para identificar comportamentos anômalos exibidos por usuários
internos, que podem fornecer avisos antecipados de possíveis violações de segurança e
infiltração não autorizada de dados.

Estes e outros ilustram a problemática do estudo em causa, que não deixa de assolar a
nossa realidade, Exemplo prático de intrusão foi dado recentemente, ano de 2021, quando
Moçambique registou pela primeira vez em sua história um ataque cibernético as suas
infraestruturas governamentais, Segundo (Lusa, 2022) o ataque bloqueou e tornou
inoperantes páginas da internet das principais instituições governamentais. Entre os alvos
estiveram os portais do Instituto Nacional de Gestão de Desastres, da Administração
Nacional de Estradas, da Administração Regional de Águas do Sul e do Instituto Nacional
de Transportes Terrestres.

O estado atual dos sistemas de deteção de intrusão ainda está longe de ser preciso quanto
a proteção e segurança das informações, pois segundo (Dina & Manivannan, 2021) as
ferramentas tradicionais, como o software antivírus e as firewalls, para prevenir os
ataques não podem ajudar a prevenir ou detetar ataques tão sofisticados ou novos, ou seja
muitos sistemas ainda sofrem com a dificuldade de revelar atividades suspeitas em
ambientes de rede devido as diversas características das redes de computadores e da
imprecisão de mecanismos de deteção.

Deste modo, os modelos desenvolvidos não garantem a totalidade dessa proteção e tendo
em vista o crescimento da utilização das redes de computador para tráfego de informações
muito sensíveis (como pin dos bancos, emails, ficheiros, palavras-passe, entre outras)
torna-se imprescindível a melhoria constante da segurança dessas redes de informações,
usando tecnologias mais eficazes (Anand, Pranav, Neetish, & Jayasree, 2018).

Assim, a pergunta que se desejar responder neste projeto de pesquisa é: Até que ponto a
utilização da inteligência artificial pode tornar o uso de redes de computadores mais
seguros?

17
1.3. Justificativa

Segundo (Nakamura, 2016) uso da internet tornou-se uma realidade e o pilar para
realização de maior parte das atividades diárias do homem, dessa forma a invasão de
hackers no mundo da informática tornou-se constante, e com isso estudos tem sido
realizado para procurar soluções para esta problemática.

O IDS é um componente importante para o sistema de segurança, complementa a


segurança de outras tecnologias por meio do fornecimento de informações para gestão,
ele não apenas deteta ataques que são descobertos por outros elementos de segurança,
mas também tenta fornecer notificação de novos ataques.

A realização do presente projeto de pesquisa é viável e desafiadora, uma vez que os


recursos estão ao alcance, e reunidas as mínimas condições de hardware (apresentadas
em 3.2 e 3.3) para os treinamentos e testes. E para realizar o estudo e desenvolver soluções
relacionadas a IDS baseado em IA é necessário que se tenha conhecimentos sólidos sobre
conceitos de, por exemplo: redes de computadores, sistemas de detenção de intrusão e
aprendizado de máquina.

Tendo em conta a problemática da segurança da informação e a necessidade de uso seguro


dos sistemas por parte dos seus utilizadores, a importância do desenvolvimento deste
projeto de pesquisa é justificada pela melhoria da segurança em redes de computador, e
pela necessidade de realizar novos estudos e pesquisas cientificas a fim de aprimorar
técnicas de ML para o uso em IDS e/ou NIDS, que ajudem as redes a se tornarem mais
seguras compradas aas técnicas tradicionais, de modo que os utilizadores se sintam mais
confortáveis e confiantes em uma rede de computadores.

1.4. Objetivos

O trabalho tem como objetivos, os seguintes:

1.4.1. Objetivo Geral

Realizar estudos de uma abordagem para detecção de intrusões em redes de


computadores usando Inteligência Artificial.

1.4.2. Objetivos Específicos

1) Estudar algoritmos de IA para analise de pacotes da rede;


2) Utilizar um Dataset para realização de treinos dos algoritmos;
18
3) Testar os algoritmos estudados;
4) Analisar resultados dos estudos realizados.

1.5. Resultados Esperados

✓ Criar um modelo de classificação de pacotes dentro de uma rede de


computadores;
✓ Criar um modelo que faça analise de actividades anormais dentro de uma
rede de computadores;
✓ Criar um modelo que possa ser usado para detetar intrusões dentro de uma
rede de computadores;
✓ Criar um modelo que possa prever novas formas de ataque de intrusos.

1.6. Organização do Trabalho

CAPÍTULO 1: No primeiro capítulo é feita uma contextualização sobre o tema em


estudo, a justificativa para realização da pesquisa, descreve os objetivos gerais e
específicos da pesquisa e por último apresenta a Organização do Trabalho;
CAPÍTULO 2: No capítulo dois está presente uma revisão sobre redes de
computadores, a segurança de informação, assim como os sistemas de detenção de
intrusão, uma descrição sobre os principais tipos de intrusos encontrados em redes de
computadores e seus ataques, e por fim é apresentado uma descrição sobre os sistemas
de detenção de intrusão em redes. Este capítulo também aborda sobre o Aprendizagem
automática (Machine Learning), suas principais áreas, o aprendizado supervisionado
e uma breve descrição sobre algoritmos implementados na pesquisa. Nessa secção
também é feita uma breve abordagem sobre alguns dos trabalhos relacionados com a
pesquisa; CAPÍTULO 3: Neste capítulo é feito uma descrição dos procedimentos
metodológicos utilizados durante o estudo; CAPÍTULO 4: O capítulo quatro
apresenta os resultados da pesquisa e faz uma discussão sobre os resultados obtidos;
e no CAPÍTULO 5: Este capítulo traz a conclusão sobre a pesquisa e considerações
sobre trabalhos futuros.

19
CAPÍTULO 2: EMBASAMENTO TEÓRICO

Com os avanços crescentes dos sistemas de computadores, juntamente com a Internet,


houve uma enorme expansão das redes de computadores interconectadas ao redor do
mundo. Nesta Secção, é apresentada uma breve pesquisa bibliográfica sobre sistema de
deteção de intrusão em redes de computadores.

2.1. Redes de Computadores

As redes de computadores têm se tornado cada vez mais presentes no mundo de hoje,
uma rede de computadores é muito mais do que um conjunto de dispositivos
interconectados. As redes de computadores são um sistema de computadores autónomos
interconectados com a finalidade de compartilhar informações digitais, a rede permite
analisar, organizar e divulgar a informação essencial (Kumar & Deepa, 2015).

Uma rede de computadores é uma coleção de computadores, que estão de alguma forma
conectados de modo que possam trocar dados entre eles e outros computadores na rede,
é criada quando dois ou mais computadores estão conectados para compartilhar
informações e recursos. E de acordo com (Tanenbaum & Wetherall, 2011), existem dois
tipos de configuração de rede, redes peer-to-peer e cliente/servidor.

● Redes peer-to-peer: são mais comumente implementadas onde menos de dez


computadores estão envolvidos e onde a segurança estrita não é necessária. Todos
os computadores têm o mesmo status, e eles se comunicam em pé de igualdade.
Os arquivos podem ser compartilhados pela rede e todos os computadores da rede
podem compartilhar dispositivos como impressoras ou scanners, que estão
conectados a qualquer computador.
● Redes cliente/servidor: são mais adequadas para redes maiores, um computador
central, ou servidor, atua como local de armazenamento de arquivos e aplicativos
compartilhados na rede. Normalmente, o servidor é superior a um computador de
desempenho médio. O servidor também controla o acesso à rede dos outros
computadores que são chamados de computadores clientes. Apenas o
administrador da rede terá direitos de acesso ao servidor, enquanto outros não.

Em virtude da grande expansão de redes de computadores e da necessidade de


comunicação de dados padronizada, criaram-se modelos de padronização para que todos

20
os dispositivos possam comunicar-se. De acordo com (Tanenbaum & Wetherall, 2011),
os principais modelos adotados são o modelo OSI e o TCP/IP.

2.1.1. Modelo OSI


Esse modelo se baseia em uma proposta desenvolvida pela ISO (International Standards
Organization). O modelo é chamado Modelo de Referência OSI (Open Systems
Interconnection), pois ele trata da interconexão de sistemas abertos, ou seja, sistemas que
estão abertos à comunicação com outros sistemas, e este modelo tem sete camadas,
nomeadamente:

i. Camada física – Transmissão do sinal por meio;


ii. Camada de enlace de dados – Verificação de erros, gerência o controle de links;
iii. Camada de rede – Endereçamento, tráfego, comutação;
iv. Camada de transporte – Conexão origem - destino;
v. Camada de sessão – Estabelecimento de sessões entre hosts da rede;
vi. Camada de apresentação – Representação da codificação dos dados;
vii. Camada de aplicação – Fornecer a interface de aplicação do usuário com o
protocolo de comunicação.

2.1.2. Modelo TCP/IP


Este modelo começou a ser utilizado na ARPANET (rede de computadores geográfica,
destinada à pesquisa). Segundo (Tanenbaum & Wetherall, 2011) a maioria das
implementações atuais utilizam-se do Modelo TCP/IP, também chamado de Arquitetura
Internet. Diferentemente do modelo OSI, esse modelo conta apenas com 4 camadas
definidas: camada de host/Rede, camada Inter-Redes ou Internet, camada de transporte
camada de aplicação. O modelo TCP/IP não traz consigo as camadas de sessão e
apresentação, pois notou-se que a utilização dessas duas camadas é restrita apenas a
algumas aplicações.

Os modelos OSI e TCP/IP têm muito em comum, os dois se baseiam no conceito de uma
pilha de protocolos independentes, além disso, as camadas têm praticamente as mesmas
funções.

Como resultado, uma enorme quantidade de informações é transmitida, processada e


armazenada por esses sistemas, uma rede de computadores é a combinação de um
conjunto de hardware e software, ambos os componentes têm seus riscos,
vulnerabilidades e problemas de segurança (Borkar, Donode, & Kumari, 2017).

21
2.2. Segurança da Informação

A segurança é um assunto abrangente, que normalmente se fala de uma forma superficial


sobre o assunto, os ataques cibernéticos basicamente são baseados em crimes ou ataques
da vida real de acordo com (Nakamura, 2016), e na área de segurança da informação onde
nenhum sistema é totalmente seguro, procura-se formas para melhorar a nível máximo a
segurança de determinadas redes de computador.

Segundo (Kurose & Ross, 2013) existem duas formas de pensar em segurança de rede,
na primeira, é protegida a rede de invasões e pessoal com más intensões que estejam
querendo invadir ou danificar seus dados, e na segunda, é protegida a rede de seus
próprios utilizadores.

Para (Kurose & Ross, 2013) a segurança de informação deve proporcionar:

✔ Integridade: Garantia que os dados não serão alterados, corrompidos ou que


sofram alguma modificação indevida desde a sua criação.
✔ Confidencialidade: Garantia que os dados não serão acedidos por pessoas não
autorizadas ou ainda que contas particulares sejam inacessíveis a outros que não
sejam portadores da conta sem sua devida autorização.
✔ Disponibilidade: Garantia que os dados ou serviços, estejam disponíveis sempre
que garantidos ou programados para estarem protegendo contra a interrupção de
determinado serviço causando indisponibilidade de acesso a informação quando
se devia tê-la.

Assim, compreende-se então, segurança como uma prática que visa proporcionar a nível
máximo as caraterísticas descritas acima, com intuito de proteger a informação de
possíveis ameaças.

Existem várias formas para se tratar da segurança da informação, desde backups, antivírus
à antimalwares, firewall, entre outros. Entretanto como neste projeto de pesquisa o foco
é a proteção da rede e seu tráfego de dados, será dado enfoque aos principais meios de
proteção para os dados trafegados numa rede de computadores.

2.2.1. Sistema de deteção de intrusão (IDS)

Segundo (Kumar & Deepa, 2015) termo Deteção de Intrusões é definido como o processo
de monitorização de eventos que ocorrem num sistema informático ou numa rede
informática, procurando tráfego intrusivo.

22
Os incidentes de segurança têm várias causas, como a propagação de malware, os
atacantes que tentam criar privilégios para aceder a sistemas não autorizados, negação de
serviço, entre outros (Kurose & Ross, 2013).

Segundo (Costa, 2012) Sistema de Deteção de Intrusão-IDS (Intrusion Detection System)


permite a deteção de intrusões e a consequente notificação ao administrador da rede ou,
em conjunto com a firewall, bloqueia a porta utilizada na invasão ou o endereço IP do
atacante. O IDS é um software que verifica uma rede ou sistema em busca de atividades
maliciosas ou violações de políticas. Cada atividade ilegal ou violação geralmente é
registada centralmente usando um sistema SIEM ou notificada a uma administração.
Tidas como ferramentas importantes na possível deteção de anomalias, atividades
suspeitas ou inapropriadas e como sua principal função alertar esses eventos de forma
imediata para devido tratamento dos mesmos por parte do administrador. O IDS tem a
função de: coletar informações, analisar as informações, armazenar informações,
responder às atividades suspeitas.

A figura 1 ilustra o funcionamento do IDS, onde são analisados os dados que fluem pela
rede para procurar padrões e sinais de comportamento anormal, comparando a atividade
da rede com um conjunto de regras e padrões predefinidos para identificar qualquer
atividade que possa indicar um ataque ou intrusão, se o IDS detetar algo que corresponda
essas regras ou padrões, envia um alerta ao administrador do sistema, para ele poder
investigar o alerta e tomar medidas para evitar qualquer dano ou intrusão.

Figura 1: Sistema de detenção de intrusão (IDS)


Fonte: https://www.sunnyvalley.io/docs/network-security-tutorials/what-is-intrusion-detection-system

23
a) Tipos de Intrusos

No contexto de redes de computadores e segurança cibernética, um intruso refere-se a um


indivíduo ou entidade não autorizada que obtém acesso a uma rede, sistema ou aplicativo
com a intenção de comprometer sua segurança, roubar informações confidenciais,
interromper serviços ou realizar outras atividades maliciosas (Nalavade & B.B.Meshram,
2016).

Segundo (Nalavade & B.B.Meshram, 2016) as intrusões não autorizadas em um sistema


ou rede de computadores é uma das ameaças mais graves à segurança informática, e elas
são classificadas em 3 classes:

Impostor (Atacante externo):

▪ Um individuo que não está autorizado a usar o computador e que penetra no


sistema, burlando seu controle de acesso para explorar a conta de um usuário
legitimo.

Malfeitor (Atacante interno):

▪ Um usuário legitimo que acessa dados, programas ou recursos aos quais não tem
acesso autorizado ou aos quais tem acesso autorizado, mas usa de forma maliciosa
seus privilégios.

Usuário clandestino:

▪ Um individuo que se apodera do controle de supervisão do sistema e usa esse


controle para escapar de auditorias e controles de acesso ou para suprir a coleta
de dados de auditoria.

b) Classificação do IDS

De acordo com (Costa, 2012) há dois tipos clássicos de IDS de acordo com o alvo de
monitoramento:

✔ IDS baseado em Hosts: São chamados de HIDS, utilizam arquivos de log e


mecanismos (portas e protocolos) para monitoria de um sistema único
(servidor ou PC), mudanças de privilégios, execução de programas, entre
outros, o seu foco é o utilizador final.
✔ IDS baseado em Rede: Também conhecidos como NIDS (Network Intrusion
Detection System) são sistemas alimentados através da captura de pacote de
24
rede, em que cada pacote é analisado profundamente e comparada a uma base
de dados, contendo a assinatura de tráfego malicioso, regras de proibição ou
ainda outra forma de deteção híbrida e mais elaborada.

Considerando o método de deteção ainda de acordo com (Costa, 2012),

✔ IDS baseado em Assinatura: Método que compara as informações contidas


nos pacotes ou seus padrões com uma base de dados, contendo as principais e
documentadas formas de invasão.
✔ ISD baseado em Anomalia: O IDS conhece a natureza de determinados
eventos ou funcionalidades pré-definidas pelo administrador que podem se
enquadrar como suspeitas.

Cada ataque envolve uma serie de fatores, e cada um é particular e de maneira diferente,
para (Costa, 2012) os ataques cibernéticos possuem natureza mutável, uma vez que
envolvem a escrita de códigos ou, comumente, podem ser alterados sem modificar seus
fins.

Segundo (Costa, 2012) cada dia novos ataques surgem, isso faz com que a base de dados
dos IDS esteja constantemente em atualização, assim poderão existir ataques sem que
sejam detetados pelos IDS, ou em outras palavras seria necessária uma configuração
ponto a ponto para atualizar o IDS sobre os novos ataques que surgem, tarefa muito
trabalhosa e ineficiente, em contrapartida ou forma de solução, existe o NIDS, que realiza
a analise de toda rede.

2.2.2. Sistema de deteção de intrusão em Redes (NIDS)

Um NIDS é um conjunto de ferramentas de software que permite a análise e deteção de


intrusões em redes de dados (Costa, 2012). Um NIDS trabalha analisando o tráfego de
rede, geralmente, utilizando uma interface em modo promíscuo, funcionando como um
sniffer (Costa, 2012). Esse tipo de sistema, geralmente, atua com um ou mais sensores na
rede e uma estação de monitoramento. Quando um sensor deteta uma atividade anormal
na rede, um alerta é transmitido à estação de monitoramento que informará ao
administrador da rede sobre a situação.

Os NIDS são colocados em pontos estratégicos muito específicos dentro da rede para
monitorar o tráfego de e para todos os dispositivos conectados na rede, além disso, o
NIDS pode ser classificado em dois tipos, como NIDS on-line e off-line. O NIDS online

25
lida com os dados da rede em tempo real, enquanto o NIDS off-line cuida dos dados
armazenados para verificar e decidir se é um ataque ou não. Também pode ser usado
como um sistema de rede autônomo ou pode ser combinado com outras tecnologias para
aumentar as taxas gerais de deteção e previsão, conforme ilustra a figura 2 a arquitetura
do NIDS, onde Ele realiza uma observação do tráfego de passagem em toda a sub-rede e
compara o tráfego que é transmitido nas sub-redes com a coleção de ataques conhecidos.
Assim que um ataque é identificado ou um comportamento anormal é observado, o alerta
pode ser enviado ao administrador. Um exemplo de um NIDS é instalá-lo na sub-rede
onde os firewalls estão localizados para ver se alguém está tentando quebrar a firewall.

Figura 2: Arquitetura de NIDS

Fonte: (Costa, 2012)

O NIDS é eficaz a ataques novos ou, ainda não registados em uma base de dados de
acordo com (Costa, 2012), e é precisamente este ponto que o presente trabalho visa
estudar, apresentar um estudo que sirva como auxílio para analises de ataques e invasões
sobre redes de computadores. E como o objetivo da deteção de intrusão é construir um
sistema que seja automaticamente capaz de rastrear atividades na rede e detetar os
ataques.

a) Métodos de análise de eficácia

Algumas políticas de deteção de intrusão são utilizadas para identificar atividades


intrusivas. Essas políticas, geralmente, especificam qual o tipo de atividade será
considerado como intrusiva e, também, como o sistema deverá responder a esta atividade.

26
Políticas de deteção ideais devem ser simples, eficazes e fáceis de implementar, mas
também se preocupando em gerar o mínimo de falsos alarmes (Costa, 2012).

No entanto, por meio da implementação de IA é possível obter soluções que contribuam


para a automação desse processo, tornando a rede mais segura, além disso, devido a
capacidade da IA de generalização do padrão aprendido, novos ataques podem ser
detetados, sem a necessidade de atualização rotineira no banco de dados, bastando apenas
ensinar a máquina a realizar essa tarefa por meio do aprendizado de máquina, ponto
que vai ser apresentado a em 2.3.

2.3. Aprendizado de máquina

Segundo (Murphy, 2012) aprendizagem automática é conjunto de métodos que podem


detetar automaticamente padrões nos dados e, em seguida, usar os padrões descobertos
para prever dados futuros ou para realizar outros tipos de tomada de decisão sob incerteza
(como planejar, como coletar mais dados).

É uma área da IA voltada para descoberta de padrões usando um conjunto de dados para
posteriormente com base no conjunto de dados usados para detetar padrões, prever dados
de classes futuras ou tomar decisões sobre dados novos ou incertos, elas permitem que
uma máquina aprenda a partir de dados sem serem explicitamente programadas e segundo
(Murphy, 2012) existem dois tipos de aprendizado de máquinas, Aprendizado
supervisionado e Aprendizado não supervisionado.

2.3.1. Aprendizado supervisionado e Não supervisionado

Basicamente, o aprendizado supervisionado é quando a máquina é ensinada ou treinada


usando dados bem rotulados. O que significa que alguns dados já estão marcados com a
resposta correta, depois disso, a máquina recebe um novo conjunto de exemplos (dados)
para que o algoritmo de aprendizado supervisionado analise os dados de treinamento e
produza um resultado correto a partir dos dados rotulados. Diferente do aprendizado
supervisionado, o aprendizado não supervisionado é o treinamento de uma máquina
usando informações que não são classificadas nem rotuladas e permitindo que o algoritmo
atue sobre essas informações sem orientação, a tarefa da máquina é agrupar informações
não classificadas de acordo com semelhanças, padrões e diferenças sem nenhum
treinamento prévio de dados, (Silva, Spatti, Flauzino, Liboni, & Alves, 2017).

27
A estratégia de aprendizado supervisionado consiste em ter disponíveis as saídas
desejadas para um determinado conjunto de sinais de entrada, em outras palavras, cada
amostra de treinamento é composta pelos sinais de entrada e suas saídas correspondentes.
Na tabela 1, são apresentados alguns exemplos de diferentes algoritmos/técnicas de
aprendizagem automática supervisionada e não supervisionada para uso em IDS ou
NIDS.

Tabela 1: Diferentes técnicas de IDS


Fonte: (Borkar, Donode, & Kumari, 2017).

Algoritmo/técnica usada Dados dos testes usados Objetivos do IDS/NIDS


Decision tree, random forest, N / D Para detetar com precisão
K-NN. potenciais ataques;
Clustering e KDD. NSL-KDD 2009 Dataset. Para detetar novas anomalias
chamadas NEC;
Data Mining and Machine Cabeçalhos de pacotes e Garantir a segurança
Learning. cabeçalhos de pacotes de cibernética;
fluxo de rede
Artificial Neural SO Android Detetar os comportamentos
Network (ANN), IDS. de anomalia em celulares
Android;
SDN, NIDS. N/D Permite maior controle
dinâmico de um ambiente de
rede;
Genetic Programming Fuzzy NSL-KDD Resolver o problema de
Inference System for classificação em IDS
Classification (GPFISClass)
Epigenetic algorithm. KDD-NSL Adicional uma informação
de futuros descendentes

O principal objetivo do projeto filosófico de um IDS é minimizar as ocorrências de


alarmes falsos positivos e aumentar a precisão de sua deteção. Portanto, o projeto e a
implementação de qualquer IDS devem levar essa filosofia em consideração (Kasongo &
Sun, 2020). De acordo com (Borkar, Donode, & Kumari, 2017) IDS ’s baseados em
aprendizagem automática (ML) surgiram como os principais sistemas no domínio de
pesquisa de deteção de intrusão. O ML dá aos sistemas a capacidade de aprender e
melhorar usando dados anteriores. Em outras palavras, programas de computador
baseados em ML não precisam ser explicitamente projetados (programados). Eles são
capazes de aprender por si mesmos.

28
2.4. Visão geral dos métodos de ML

As seções a seguir fornecem uma revisão das abordagens de ML supervisionadas usadas


neste trabalho, uma vez que nosso objetivo é projetar um sistema de deteção de intrusão
de rede com os diferentes classificadores de aprendizagem automática supervisionada.
Este trabalho de pesquisa, investiga o desempenho dos classificadores Random Forest
Classifier (RFC), eXtreme Gradient Boosting (XGBoost) e K-Nearest Neighbor (KNN)
na deteção de intrusão.

2.4.1. Random Forest Classifier (RFC)

O algoritmo RFC, recebe este nome por utilizar uma combinação de múltiplas árvores de
decisão. Dado um conjunto de dados, são amostradas aleatoriamente 𝑛 instâncias, com
possibilidade de repetição, sendo 𝑛 o número de instâncias do conjunto de dados original.
Cada árvore é induzida a partir de um desses subconjuntos, porém cada nó da árvore
utiliza 𝑚 atributos da quantidade total 𝑓 de atributos, sendo 𝑚 = 1 quando 𝑓 = 1, e 𝑚<𝑓
quando 𝑓> 2. Os 𝑚 atributos são escolhidos aleatoriamente e com repetição (Silva J. A.,
2018).
Através do uso combinado dessa variedade de árvores de decisão é possível convergir o
valor de erro para um valor que não sofreu Overfit, ou sobreajuste em relação ao conjunto
de dados fornecido e é necessário estabelecer a quantidade desejada de árvores de decisão
presentes na RFC.
A Figura 3 ilustra uma representação de Random Forest, onde é fornecido um conjunto
de dados. O conjunto de dados inicial é dividido em vários subconjuntos aleatórios e com
repetição que, por sua vez, servirão para realizar indução de cada árvore de decisão
correspondente.

Figura 3: Ilustração diagramática de uma Random Forest

Fonte: (Silva J. A., 2018)


29
A classificação final da Random Forest é feita através de votação, onde cada árvore
de decisão providencia uma classificação, e a classe que for maioria entre os votos
é eleita como a classificação final da Random Forest.
2.4.2. eXtreme Gradient Boosting (XGBoost)

O XGBoost é uma técnica de conjunto recente que foi introduzida como um membro da
família de aumento de gradiente, da mesma categoria das florestas aleatórias, o XGBoost
é um aprendizado de conjunto combinando o resultado de vários modelos fracos
(Abualdenien & Borrmann, 2022). A ideia principal das técnicas de XGBoost é construir
várias sequenciais (serão referidos como arvores fracas), onde a próxima arvore tenta
corrigir o erro cometido pela anterior, adicionando um peso maior a elas nas arvores
construídas posteriormente, como ilustrado na figura 4.

Figura 4: Representação esquemática eXtreme Gradient Boosting (XGBoost)

Fonte: (Abualdenien & Borrmann, 2022)

O XGBoost define uma função de perda e, ao construir iterativamente novas árvores,


concentra-se em minimizar essa função de perda. XGBoost pode ser expresso como a
Equação 1 (Abualdenien & Borrmann, 2022):
𝐾

𝑦̂𝑖 = 𝜙(𝑥𝑖 ) = ∑ 𝑓𝑘 (𝑥𝑖 ), 𝑓𝑘 𝜖 𝐹


𝑘=1

(1)
Onde 𝑓𝑘 representa uma árvore de decisão independente, 𝐹 é o espaço das árvores, 𝑥𝑖
representa as variáveis independentes e 𝐾 são as funções aditivas. O objetivo é minimizar
a equação 2.
ℒ(𝜙) = ∑ 𝑙(𝑦̂𝑖 , 𝑦𝑖 ) + ∑ Ω (𝑓𝑘 )
(2)
𝑖 𝑘

30
Onde 𝐿 é uma função de perda e 𝛺 é um valor de penalidade que representa a
complexidade do modelo levando em consideração o número e pontuação de folhas.

2.4.3. K-Nearest Neighbor (KNN)

O algoritmo KNN pertence à família de algoritmos IBL (Instance-based Learning). Os


algoritmos desta família armazenam todas as instâncias de treinamento e, quando uma
nova instância é apresentada ao algoritmo para ser classificada, um conjunto de instâncias
similares (próximas) à nova instância é recuperada do conjunto de treinamento e utilizada
para classificar a nova instância (Faria, 2016).
No caso do algoritmo KNN, para classificar uma nova instância são recuperados os k
vizinhos mais próximos e é atribuída, a nova instância, a classe mais frequente entre esses
k vizinhos. Para determinar quais são os vizinhos mais próximos, é utilizado a Distância
Euclidiana, uma medida de dissimilaridade representada na equação 3:

𝑝
𝑑𝑖𝑗 = {∑𝑘=1(𝑋𝑖𝑘 − 𝑋𝑗𝑘 )2 }1/2 (3)

Ao aplicar o teorema de Pitágoras, a distância entre os pontos passa a poder ser calculada.
A fórmula empregada é apresentada na equação 4:

𝑑 = √(𝑥𝐴0 − 𝑥𝐵0 )2 + (𝑥𝐴1 − 𝑥𝐵1 )2 (4)

Uma vez que a distância entre todos os k vizinhos mais próximos é determinada, o
algoritmo analisa qual a classificação da maioria e, com base nisso, qual será o rótulo do
dado apresentado.
● Logica do KNN
A Figura 5 apresenta um exemplo para ilustrar o funcionamento do algoritmo KNN. Na
figura existe uma instância a ser classificada representada pela interrogação (?), e
instâncias de treinamento já classificadas associadas à classe triângulo e à classe
quadrado.
Para o valor de k = 1, pelo funcionamento do algoritmo KNN, a nova instância será
classificada como pertencente à classe quadrado, uma vez que a classe do vizinho mais
próximo é a classe quadrado. Caso o valor de k = 3, a classe da nova instância será
triângulo, dado que duas instâncias dos três vizinhos mais próximos têm classe triângulo
31
e uma tem classe quadrado. Já no caso de k = 7, a classe da nova instância será a classe
quadrado. Neste algoritmo, o que determina a classificação é a maior frequência das
classes dos k vizinhos mais próximos da instância a ser classificada.

Figura 5: Ilustração de funcionamento do KNN, ilustrando como o valor K influencia a


classificação de nova instância

Fonte: (Faria, 2016).

2.4.4. Considerações Gerais

O trabalho proposto vem como uma solução automática e mais segura para identificação
de ataques em uma rede de computadores, comparado aos métodos tradicionais de
detenção de intrusão, pois segundo (Costa, 2012) estes apresentam algumas limitações
como à ataques novos ou desconhecidos, obrigando ao administrador a realizar constantes
atualizações a base de dados do IDS, em contrapartida essa proposta de solução resolve
essas limitações, utilizando as técnicas de ML, que como descritas em 2.3, os algoritmos
de aprendizagem supervisionado são aqueles que utilizam um conjunto de dados bem
rotulados para treinarem e aprenderem padrões nas relações entre entradas e saídas. Após
aprenderem as relações entre entradas e saídas, retornam as saídas apropriadas para novas
entradas. Estes modelos geralmente são usados em dois tipos de problemas: Classificação
e Regressão.

Um modelo de classificação faz conclusões de valores observados para identificar uma


determinada classe entre as possibilidades existentes (Binaria ou múltiplas), se ajustando
de acordo com os exemplos contidos no conjunto de dados rotulados em que o algoritmo
identifica padrões para fazer futuras classificações, ou seja, o modelo é treinado e dado
uma ou mais entradas, o modelo tentará prever a qual classe cada uma das entradas
32
pertence, enquanto que, os algoritmos de regressão prevê em valores numéricos de saída
com base nos dados que alimentam a entrada do sistema. O algoritmo constrói um modelo
com base no seu treinamento sobre os recursos dos dados de entrada e utiliza este modelo
para prever valores quantitativos dos novos dados.

A escolha dos algoritmos RFC, XGBoost e KNN deveu-se ao facto destes algoritmos
serem algoritmos muito poderosos e versáteis, permitirem a classificação multiclasse,
redução do tempo de treinamento e fácil implementação, o RFC usa técnica de
classificação, o XGBoost e o KNN podem ser usados para problemas de classificação e
regressão.

A principal diferença entre uma RFC e o XGBoost é que a primeira constrói árvores de
decisão independentemente, simultaneamente, e usa uma média não ponderada de votos,
enquanto a segunda constrói e avalia iterativamente árvores individuais (que geralmente
são curtas, também conhecidas como tocos de decisão) e tenta aprender com observações
classificadas incorretamente adicionando um peso maior a elas nas árvores construídas
posteriormente e leva muito mais tempo pata treinar do que uma RFC.

2.5. Métricas de Desempenho

Quando se desenvolvem projetos de ML, é crucial a utilização de métricas apropriadas


para cada problema. O valor delas reflete a qualidade de um modelo, portanto se forem
mal escolhidas, será impossível avaliar se o modelo de fato está atendendo os requisitos
necessários.

A avaliação de um modelo de classificação é feita a partir da comparação entre as classes


preditas pelo modelo e as classes verdadeiras de cada exemplo (Steurer, Hill, & Pfeifer,
2021). Segundo (R & R, 2016) todas as métricas de classificação têm como objetivo
comum medir quão distante o modelo está da classificação perfeita, porém fazem isto de
formas diferentes. E uma forma bastante simples de visualizar a performance de um
modelo de classificação é através de uma matriz de confusão.

2.5.1. Matriz de Confusão

Segundo (R & R, 2016) matriz de confusão permite visualizar facilmente quantos


exemplos foram classificados corretamente e erroneamente em cada classe, que ajuda a
entender se o modelo está favorecendo uma classe em detrimento da outra. Isto é

33
importante principalmente em situações em que os erros possuem custos diferentes. Essa
matriz indica quantos exemplos existem em cada grupo:

▪ Verdadeiro Positivo (VP): valores classificados como positivos nos dados


originais e corretamente previstos como positivos no modelo.
▪ Verdadeiro Negativo (VN): valores classificados como negativos nos dados
originais e corretamente previstos como negativos no modelo.
▪ Falso Positivo (FP): valores classificados como negativos nos dados originais e
erroneamente previstos como positivos no modelo.
▪ Falso Negativo (FN): Valores classificados como positivos nos dados originais e
erroneamente previstos como negativos no modelo.

Valores Reais

Positivo Negativo
VP FP
Positivo
Valores Ex: modelo previu ataque, e é ataque Ex: modelo previu ataque, mas não era ataque

Preditos FN VN
Negativo
Ex: modelo não previu ataque, mas Ex: modelo não previu ataque, e não era
era ataque ataque

Tabela 2: Matriz de Confusão


Fonte: Autor

2.5.2. Acurácia (Accuracy)

A Accuracy é a medida mais utilizada para classificação de modelos, representada na


equação 5, descreve a relação entre todos os casos corretamente classificados sobre o total
de casos analisados. Esta métrica é diretamente relacionada à performance do modelo.

𝑉𝑃+𝑉𝑁
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = (5)
𝑉𝑃+𝑉𝑁+𝐹𝑁+𝐹𝑃

2.5.3. Precisão (Precision)

A Precision, também é uma das métricas mais comuns para avaliar modelos de
classificação, representada na Equação 6, descreve a relação entre todos os casos
positivos corretamente classificados sobre o total de casos classificados como
positivos.:

𝑉𝑃
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = (6)
𝑉𝑃+𝐹𝑃
34
2.5.4. Micro-Precisão (Micro Precision)

Segundo (Shams, 2011) no método de Micro-Precisão, você soma os verdadeiros


positivos, falsos positivos e falsos negativos individuais do sistema para diferentes
conjuntos e os aplica para obter as estatísticas, ou seja, a Micro Precision é a soma de
todos os verdadeiros positivos dividida pela soma de todos os verdadeiros positivos e
falsos positivos. Em outras palavras, é dividido o número de previsões corretamente
identificadas pelo número total de previsões. O cálculo é dado pela equação 7:

(𝑉𝑃1+𝑉𝑃2+...+𝑉𝑃𝑛)
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛𝑀𝑖𝑐𝑟𝑜 = (7)
(𝑉𝑃1+𝑉𝑃2+...+𝑉𝑃𝑛+𝐹𝑃1+𝐹𝑃2+...+𝐹𝑃𝑛)

2.5.5. Revocação (Recall)

Recall representada na Equação 8, descreve a relação entre todos os casos positivos


corretamente classificados sobre o total de casos corretamente classificados. A Recall é
bastante útil quando precisamos minimizar os falsos negativos.

𝑉𝑃
𝑅𝑒𝑐𝑎𝑙𝑙 = (8)
𝑉𝑃+𝐹𝑁

2.5.6. Score F1

De forma bastante simples, representada na equação 9, ela é uma maneira de


visualizarmos as métricas Precision e Recall juntas, e quanto mais próximo de 1, melhor
é o desempenho do modelo:

2∗𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛∗𝑅𝑒𝑐𝑎𝑙𝑙
𝐹1 = (9)
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑅𝑒𝑐𝑎𝑙𝑙

2.6. Trabalhos Correlacionados

Técnicas baseadas em inteligência artificial com algoritmos heurísticos como Genetic


Algorithm, Trees, Data Mining and ANN são utilizadas em IDS ganhando sua capacidade

35
de aprendizado e desenvolvimento, o que os torna mais precisos e eficientes para
enfrentar o crescente número de ataques imprevisíveis.

Em seguida uma abordagem de trabalhos relacionados:

No trabalho do (Anand, Pranav, Neetish, & Jayasree, 2018) apresentam um sistema de


deteção de intrusão que usa algoritmo k-means genético melhorado (IGKM) para detetar
o tipo de intrusão, usando o conjunto de dados KDD-99 cup para treinar o algoritmo, o
trabalho também faz a comparação entre um IDS que usa o algoritmo k-means++ e um
IDS que usa o algoritmo IGKM enquanto usa um subconjunto menor do conjunto de
dados KDD-99 com mil instâncias e o conjunto de dados KDD-99, com os experimentos
realizados pode se concluir que a deteção de intrusão que utiliza o algoritmo IGKM é
mais precisa quando comparada ao algoritmo k-means++. Ao usar o algoritmo k-
means++ fornece uma precisão de 53,27% e o algoritmo IGKM fornece uma precisão de
72,91%. A precisão do algoritmo IGKM é maior para grandes conjuntos de dados, isso
ocorre porque o algoritmo IGKM é usado para agrupar grandes conjuntos de dados.

Do ponto de vista de (Pradhan & Sahu, 2012) levaram em consideração as ações do


usuário como parâmetro na deteção de anomalias usando backpropagation em seu teste.
O trabalho deles é muito promissor. A rede neural de backpropagation teve uma taxa de
classificação de 100%, a taxa de deteção foi de 88% em ataques em geral, sejam ataques
conhecidos ou desconhecidos. A principal vantagem deste trabalho é a quantidade
mínima de dados de treinamento que precisa dar bons resultados de classificação do
tráfego.

O trabalho de (Yaseen, Othman, & Nazri, 2016), foi proposto o Sistema multiagente em
tempo real para um sistema de deteção de intrusão adaptável, que é um IDS adaptativo
que pode detetar e aprender ataques desconhecidos em tempo real, que usa dois modelos
de classificação: SVM adaptativo e Extreme Lerning Machine (ELM) multinível para
classificar o comportamento normal e ataques conhecidos, neste estudo foi usado o
conjunto de dados KDDCup-99 como referência para avaliar os experimentos no trabalho
proposto. Além disso, o conjunto de dados de 10% KDD foi usado para treinamento,
obtendo os seguintes resultados: Sistema multiagente em tempo real para um sistema de
deteção de intrusão adaptável exibiu uma precisão de deteção significativamente melhor
que atingiu 95,86% e pode detetar e aprender ataques desconhecidos mais rapidamente
(até 61%).

36
Em referência a (Ouiazzane, Addou, & Barramou, 2019), os autores propuseram uma
abordagem de deteção de intrusão baseada em um sistema multiagente hierárquico. O
modelo é baseado em duas camadas principais, a Camada do Gerenciador e a Camada
Local. A camada de gerenciamento gerência a segurança de uma rede e distingue três
níveis de agentes de gerenciamento que são: um gerenciador de política de segurança
colocado no topo da hierarquia, um gerenciador de extranet e vários gerenciadores de
intranet. Enquanto a Camada Local consiste em um conjunto de agentes locais que
gerenciam a segurança de um domínio de Broadcast realizando tarefas específicas de
monitoramento e existem três tipos de agentes locais: agente local extranet, agente local
intranet e agente local interno. Esta abordagem é limitada em termos do tipo de ataques a
serem detetados, só pode detetar ataques conhecidos e o autor planeja melhorar o modelo
para suportar ataques desconhecidos.

A proposta de (Al-Janabi & Saeed, 2011) utiliza a base de dados da KDDCup’99, para
realizar o treinamento da rede neural, porém são utilizadas apenas 22 entradas da base de
dados (que contém 41), em razão da dificuldade de se obter alguns detalhes característicos
da KDDCup’99. Deste modo, obteve-se uma taxa de deteção de, aproximadamente, 90%
com índices aceitáveis de falsos alarmes.

Em (Wang, Ma, & Zhang, 2012), os autores apresentaram um modelo eficaz, denominado
MID (Maximal Patterns for Intrusion Detection), que utilizou a mineração de padrões de
frequência máxima para detetar intrusões e gerar regras por inferência que não precisam
definir todas as regras de associação e descoberta de padrões. Este algoritmo é muito novo
e eficiente para detetar intrusões de dados de rede. Após a implementação do MID, os
resultados são muito precisos e o desempenho do algoritmo é robusto para aqueles ataques
invisíveis ou não ativos. Ele usou o arquivo de dados TCP para verificar o arquivo de log
do usuário das atividades de rede.

Segundo (Borkar, Donode, & Kumari, 2017), uma pesquisa de mineração de dados e
aprendizagem automática para deteção de instruções de segurança cibernética é realizada
para garantir a segurança cibernética. O cabeçalho do pacote e o cabeçalho do pacote de
fluxo de rede são usados para que o sistema de deteção de instruções possa alcançar redes
e dados no nível do kernel. O escopo futuro que é mantido em mente é que a mineração
de dados e a aprendizagem automática não podem ser executados sem dados
representativos. A complexidade de diferentes algoritmos de aprendizagem automática e
mineração de dados é discutida. O artigo também fornece um conjunto de critérios de
comparação para métodos de aprendizado de máquina/mineração de dados.
37
2.6.1. Considerações Gerais

Grande parte dos trabalhos relacionados realizam a detenção de intrusão usando


conjuntos de dados mais antigos como NSLKDD, KDD98, KDDCUP 99, CIDDS-001,
DARPA e ADFA. No entanto, esses conjuntos de dados (a maioria dos quais concebidos
há mais de duas décadas) têm uma série de limitações que os tornam pouco confiáveis e
desatualizados. O uso desses conjuntos de dados não pode mais ser considerado uma
representação precisa ou abrangente de ambientes de ataque modernos, e os algoritmos
treinados neles não refletirão o desempenho de saída realista. Esses conjuntos de dados
não incluem tipos de ataque recentes e representam erroneamente o tráfego normal de
forma que ataques possam facilmente passar despercebidos como comportamento
normal. O que diferencia deste trabalho, onde foi usado o UNSW-NB15, que tenta
simular ambientes de rede modernos por meio da incorporação dos ataques discretos mais
modernos.

Os algoritmos pospostos (RFC, KNN e XGBoost) são algoritmos populares de


aprendizagem automática usados para IDS, funcionam bem com conjuntos de dados de
alta dimensão, tornando-o adequado para sistemas de deteção de intrusão que geralmente
lidam com um grande número de recursos. As vantagens de usar esses algoritmos em
relação a outros estudos que não os empregam incluem sua capacidade de lidar com dados
de alta dimensão, flexibilidade em lidar com diferentes tipos de dados, resistência ao
overfitting, interoperabilidade por meio de medidas de importância de recursos e forte
desempenho preditivo.

Entretanto, vale ressaltar que cada IDS possui algum conhecimento especial na deteção
de determinados ataques, ou seja, diferentes IDS‘s podem ter diferentes níveis de
sensibilidade na deteção de diferentes tipos de intrusões e a escolha do algoritmo depende
de vários fatores, como requisitos específicos do sistema de deteção de intrusão, dados
disponíveis, recursos computacionais e o compromisso entre precisão e
interoperabilidade.

38
CAPÍTULO 3: METODOLOGIA

Neste capítulo são descritos todos os métodos utilizados para a construção da solução
para o problema de pesquisa. Este capítulo faz uma descrição do conjunto de dados com
as classes de estudo no presente trabalho e também dos passos que foram seguidos para
a construção dos modelos, desde a sua implementação e a análise do desempenho.
3.1. Caraterísticas da Pesquisa

A tabela 3 ilustra as caraterísticas de pesquisa do presente trabalho:

Tabela 3: Caraterísticas da pesquisa


Fonte: Autor (Will, 2012)

CARATERÍSTICAS DA PESQUISA
Objetivos Procedimentos Técnicos Abordagens

● Pesquisa Explicativa ● Pesquisa Experimental; ● Pesquisa Quantitativa


● Pesquisa Bibliográfica;

A realização do trabalho obedeceu as seguintes etapas, apresentadas na figura 4, onde são


discutidas em 3.5, 3.6 e 3.7 respetivamente.

CONSTRUÇÃO DE MODELOS DE ML
PRÉ-PROCESSAMENTO
DE DADOS RFC, KNN, XGBoost

Limpeza dos Dados

Normalização dos Dados Treinamentos

Testes
Seleção de Recursos

Deteção de Intrusão

Figura 6: Etapas no processo de desenvolvimento do trabalho


Fonte: Autor

39
3.2. Suporte tecnológico:

Na tabela 4, é descrita as especificações do computador usado para os experimentos,


desde a construção, treinamento e teste dos modelos, uma vez que as especificações
apresentadas suportam todos os experimentos necessários para a realização do trabalho.

Tabela 4: Suporte técnico (hardware) para realização do trabalho.


Fonte: Autor

Computador Especificações

Dell Latitude E5570 CPU RAM SO


Intel® Core™ i5 6200U
@2.30GHz 2.40Ghz 8GB Windows10

3.3. Materiais

A linguagem e as bibliotecas usadas para implementação dos modelos de inteligência


artificial foram as seguintes:

1) Python - é uma linguagem de programação de uso gratuito e de código-fonte


aberto, conta com uma vasta biblioteca padrão e documentação que possibilitam
que muitas coisas sejam feitas sem dependências adicionais. É uma linguagem de
alto nível interpretada, orientada a objeto dinâmica e flexível (Simplilearn, 2022).
2) Matplotlib e Pandas - Biblioteca para criação de gráficos e visualizações de dados
(Scikit Learn, 2022).
3) Scikit-learn - é uma biblioteca desenvolvida para a linguagem Python essa
biblioteca fornece uma interface mais amigável para a implementações de muitos
algoritmos de Machine Learning. Essa biblioteca também fornece ferramentas para
a análise do desempenho de modelos (scikit-learn, 2022).
4) Numpy - Biblioteca especializada para arrays e matrizes em Python (Simplilearn,
2022).
5) Jupyter Notebook - é o aplicativo da Web original para criar e compartilhar
documentos computacionais. Ele oferece uma experiência simples, simplificada e
centrada em documentos (Jupyter, 2023).

40
3.4. Conjunto de Dados (Dataset)

Nesta sessão vamos descrever o Dataset usado para o treinamento e testes das técnicas de
ML. De salientar que o Dataset é público, UNSW-NB15, conjunto este que será discutido
em 3.4.1.

3.4.1. Conjunto de dado da UNSW-NB15

Segundo (Shang-fu & Chun-lan, 2012) a eficácia de um Sistema de Deteção de Intrusão


de Rede é avaliada com base em seu desempenho na identificação precisa de ataques que
requerem um conjunto de dados abrangente que contém tráfego normal e anormal. O
conjunto de dados UNSW-NB15 tenta simular ambientes de rede modernos por meio da
incorporação dos ataques discretos mais modernos (Nour, 2017).

Para nossos processos experimentais, utilizamos o conjunto de dados de ataques UNSW-


NB15, que em seu formato limpo contém 44 recursos, conforme mostrado na Tabela 5.
Dos 44 recursos, 4 instâncias são recursos não numéricos (categoriais) e 40 são numéricos
em natureza.

Tabela 5: Lista de recursos do Dataset UNSW-NB15


Fonte: (Nour, 2017)

No. Recurso Categoria No. Recurso Categoria


1 dur float 24 tcprtt float
2 proto nominal 25 synack float
3 service nominal 26 ackdat float
4 state nominal 27 smean integer
5 spkts integer 28 dmean integer
6 dpkts integer 29 trans_depth integer
7 sbytes integer 30 response_body_len integer
8 dbytes integer 31 ct_srv_src integer
9 rate float 32 ct_state_ttl integer
10 sttl integer 33 ct_dst_ltm integer
11 dttl integer 34 ct_src_dport_ltm integer
12 sload float 35 ct_dst_sport_ltm integer
13 dload float 36 ct_dst_src_ltm integer
14 sloss integer 37 is_ftp_login binary
15 dloss integer 38 ct_ftp_cmd integer

41
16 sinpkt float 39 ct_flw_http_mthd integer
17 dinpkt float 40 ct_src_ltm integer
18 sjit float 41 ct_srv_dst integer
19 djit float 42 is_sm_ips_ports binary
20 swin integer 43 attack_cat nominal
21 stcpb integer 44 label integer
22 dtcpb integer
23 dwin integer

O UNSW-NB15 é subdividido nos seguintes conjuntos de dados principais: UNSW-


NB15-TRAIN, que é empregue para treinar os modelos e o UNSW-NB15-TEST, que
é empregue para testar os modelos treinados. O conjunto de dados de deteção de
intrusão UNSW-NB15 contém 10 categorias de ataques: Normal, Generic, Exploits,
Fuzzers, DoS, Reconnaissance, Analysis, Backdoor, Shellcode e Worms, ilustrados na
figura 7. A distribuição detalhada dessas categorias em termos de número de registos
por ataque, bem como a distribuição do conjunto de treinamento/teste, é ilustrada na
Tabela 6, na figura 8 é ilustrada as instancias desses registos em percentagens e a Tabela
7 descreve tipos de tráfego apresentados no conjunto de dados.

Figura 7: Categorias de ataques


Fonte: Autor

42
Tabela 6: instâncias das categorias de ataques no Dataset de treino e teste
Fonte: Autor

Categoria de Ataques Instâncias (Treino) Instâncias (Teste)


Normal 56000 37000
Generic 40000 18871
Exploits 33393 11132
Fuzzers 18184 6062
DoS 12264 4089
Reconnaissance 10491 3496
Analysis 2000 677
Backdoor 1746 583
Shellcode 1133 378
Worms 130 44
Total 175,341 82,332

Figura 8: Instância das categorias de ataques representadas em %

Fonte: Autor

43
Tabela 7: Descrição dos tipos de ataques
Fonte: (Nour, 2017)

Tipo de Ataque Descrição

Normal Tráfego que não contém nenhuma ameaça

Generic Ataque de colisão nas chaves secretas das cifras. Funciona


contra todas as cifras de bloco

Exploits Código que tira proveito de uma vulnerabilidade de software ou


falha de segurança. Frequentemente incorporado ao malware,
permitindo uma propagação bastante fácil e rápida

Fuzzers Processo automatizado de encontrar bugs de software


crackeáveis, alimentando aleatoriamente diferentes
permutações de dados em um programa de destino até que uma
dessas permutações revele uma vulnerabilidade

DoS Impede que usuários legítimos usem serviços da Web ao


inundar a rede/servidor com tentativas de autenticação
inválidas, forçando-o a travar ou travar

Reconnaissance Coleção de técnicas simples que coletam informações sobre a


rede/servidor de destino, como nmap

Analysis Tipo genérico para descrever a varredura de portas, spam e


penetração de arquivos html

Backdoor Tipo de malware que nega a autenticação normal para conceder


acesso remoto a recursos como bancos de dados e servidores de
arquivos
Shellcode Conjunto de instruções/declarações que são injetadas e
executadas por um programa defeituoso. Manipula diretamente
os registradores e as funções de um programa
Worms Código autorreplicantes malicioso. Consome muita memória do
sistema e largura de banda da rede. Diminui a disponibilidade
de sistemas

44
As características envolvidas do conjunto de dados UNSW-NB 15 são classificados em
seis grupos (Nour, 2017) como segue e refletidos na Tabela 9.

1) Recursos de fluxo: este grupo inclui os atributos do identificador entre Hosts,


como cliente para servidor ou servidor para cliente.
2) Recursos básicas: esta categoria envolve os atributos que representam conexões
de protocolos.
3) Recursos de conteúdo: este grupo encapsula os atributos de TCP/IP; também
eles contêm alguns atributos de serviços HTTP.
4) Recursos do tempo: esta categoria contém os atributos de tempo, por exemplo,
tempo de chegada entre pacotes, início/fim tempo de pacote e tempo de ida e volta
do protocolo TCP.
5) Recursos gerados adicionais: esta categoria pode ser divididos em dois grupos:
recursos de uso geral onde cada recurso tem sua finalidade própria, a fim de
proteger o serviço de protocolos; E os recursos de conexão são construídos a partir
do fluxo de 100 conexões de registo com base na ordem sequencial do último
recurso de tempo.
6) Recursos rotulados: este grupo representa o rótulo de cada registo.

3.5. Pré-Processamento do Dataset

O pré-processamento do Dataset consistiu nas seguintes etapas:

3.5.1. Limpeza do Dataset

Como mencionado em 3.4.1. o conjunto de dado usado se encontra em seu formato limpo,
ou seja, no conjunto de dados não há valores nulos, pois observamos que todas as
características são contínuas por natureza e provaram ser úteis para a classificação.

3.5.2. Normalização

A normalização consistiu em transformar dados categóricos (não compreensíveis em


linguagem computacional) em dados numéricos aplicando a codificação de rótulos, com
a implementação da função Label Encoding, que segundo (Scikit Learn, 2022) refere-se
à conversão dos rótulos em um formato numérico para convertê-los em um formato
legível por máquina, nomeados conforme a tabela 8, e a posterior a implementação da
função normalize.
45
Tabela 8: Identificação das classes em número
Fonte: Autor

No Classe No Classe
0 Analysis 5 Generic
1 Backdoor 6 Normal
2 DoS 7 Reconnaissance
3 Exploits 8 Worms
4 Fuzzers

● Função normalize

A principal função de normalização é baseada no escalonamento de dados, que consiste


no algoritmo minmax, que é capaz de converter o intervalo atual de dados normalmente
no intervalo [–1, 1] e [0, 1]. A fórmula de normalização é apresentada na equação 9:

((𝑥− 𝑥𝑚𝑖𝑛 )(− 𝑚𝑖𝑛 ))


𝑝= (𝑥𝑚𝑎𝑥 − 𝑥𝑚𝑖𝑛 )+𝑚𝑖𝑛
(9)

onde (min, max) é o intervalo especificado da variável de entrada, (xmin, xmax) o


intervalo inicial de valores das variáveis de entrada e p é o valor de entrada convertido.

Deste modo foi possível fazer o treinamento dos algoritmos e o teste que serão explicados
no ponto 3.7.

3.5.3. Seleção de recursos

Segundo (Kuhn & Johnson, 2013) a seleção de recursos é focada principalmente na


remoção de preditores não informativos ou redundantes do modelo.

Pois, quando apresentados dados com altíssima dimensionalidade (quantidade excessiva


de colunas), os modelos geralmente apresentam lentidão, porque o tempo de treinamento
aumenta exponencialmente com o número de recursos, uma vez os modelos têm um risco
crescente de overfitting com o aumento do número de colunas, desta forma, perde-se a
eficácia ao tentar aplicar o modelo aos novos dados.

Na tabela 9 são descritos os recursos do Dataset, os mesmos que com aplicação de técnica
de SelectKBest foi feita a seleção dos recursos.

46
Tabela 9: Descrição dos recursos do Dataset
Fonte: (Nour, 2017)

# RECURSO DESCRIÇÃO
Recursos de fluxo
1 srcip Endereço IP de origem
2 Proto Protocolo de transação
Recursos Básicos
3 service http, ftp, ssh, dns, entre outros
4 state O estado e seu protocolo dependente.
5 spkts Contagem de pacotes de origem para destino
6 dpkts Destino para contagem de pacotes de origem
7 dur Duração total do registro
8 sbytes Bytes de origem para destino
9 dbytes Bytes de destino para origem
10 sttl Da origem ao destino, tempo de vida
11 dttl Do destino a origem, tempo de vida
12 sload Bits de origem por segundo
13 dload Bits de destino por segundo
14 sloss Pacotes de origem retransmitidos ou descartados
15 dloss Pacotes de destino retransmitidos ou descartados
Recursos de conteúdo
16 swin Propaganda do Windows TCP de origem
17 dwin Propaganda do Windows TCP de Destino
18 stcpb Número de sequência TCP de origem
19 dtcpb Número de sequência TCP de destino
20 trans_depth A profundidade da transação de solicitação/resposta na
conexão HTTP
21 smeansz Média do tamanho do pacote de fluxo transmitido pela
origem
22 dmeansz Média do tamanho do pacote de fluxo transmitido pelo
destino
23 response_body_len O tamanho do conteúdo dos dados transferidos do
servidor do serviço HTTP
Recursos do tempo
24 sjit Tremulação da origem (mSec)
25 djit Tremulação de destino (mSec)
26 sinpkt Tempo de chegada entre pacotes de origem (mSec)
27 dinpkt Tempo de chegada entre pacotes de destino (mSec)
47
28 tcprtt A soma de 'synack' e 'ackdat' do TCP
29 synack O tempo entre o SYN e o SYN_ ACK pacotes do TCP
30 ackdat O tempo entre o SYN_ACK e o ACK pacotes do TCP.
31 is_sm_ips_ports Se a origem for igual ao destino endereços IP e números
de porta origem e destino forem iguais, esta variável
assume o valor 1 senão 0
Recursos gerados adicionais
32 ct_srv_src Nº de conexões que contêm o mesmo serviço e endereço
de origem em 100 conexões de acordo com a última vez
33 ct_state_ttl Nº para cada estado de acordo com a faixa específica de
valores para tempo de vida de origem/destino.
34 ct_dst_ltm Nº de conexões do mesmo endereço de destino em 100
conexões de acordo com a última vez.
35 ct_src_dport_ltm Nº de conexões do mesmo endereço de origem e porta de
destino em conexões de acordo com a última vez
36 ct_dst_sport_ltm Nº de conexões do mesmo endereço de destino e da porta
de origem em 100 conexões de acordo com a última vez.
37 ct_dst_src_ltm Nº de conexões do mesmo endereço de origem e destino
em 100 conexões de acordo com a última vez
38 is_ftp_login Se a sessão ftp for acessada pelo usuário e senha então 1
senão 0.
39 ct_ftp_cmd Nº de fluxos que possui comando na sessão ftp.
40 ct_flw_http_mthd Nº de fluxos que possuem métodos como Get e Post no
serviço http
41 ct_src_ltm Nº de conexões que contêm o mesmo serviço e endereço
de destino em 100 conexões de acordo com o último
horário
42 ct_srv_dst Nº de conexões que contêm o mesmo serviço e endereço
de destino em 100 conexões de acordo com o último
horário
Recursos rotulados
43 attack_cat O nome de cada categoria de ataque.
44 label 0 para normal e 1 para registros de ataque.

48
➢ SelectKBest

A técnica de seleção de recursos aplicada foi o SelectKBest, é de natureza univariada.


Usando diferentes testes estatísticos univariados, ele seleciona K-melhores recursos do
conjunto de recursos do conjunto de dados (Zulfiker, Kabir, Biswas, Nazneen, & Uddin,
2021). O trabalho usou o método baseado em teste qui-quadrado (𝜒2) para selecionar os
melhores recursos K. O teste 𝜒2 pode ser realizado apenas em características não
negativas. Ele calcula a pontuação 𝜒2 para cada recurso não negativo e o recurso de
destino. A pontuação 𝜒2 para 𝑛 pares de frequências esperadas e observadas pode ser
derivada pela equação 10.

2
(𝑂𝐹𝑖 −𝐸𝐹𝑖 )
𝜒2 = ∑𝑛
𝑖=1 (10)
𝐸𝐹𝑖

Onde, 𝑂𝐹𝑖 é a frequência observada para o i-ésimo valor do recurso 𝐹 e 𝐸𝐹𝑖 é a frequência
esperada para o i-ésimo valor do recurso 𝐹.

Da tabela 8, usando a técnica acima menciona foram selecionados os seguintes recursos


apresentados na figura 9:

Figura 9: Principais recursos do dataset

Fonte: Autor

49
Portanto, de acordo com a seleção de recursos na figura 9, os demais recursos podem ser
descartados no treinamento, pois mesmo apesar da eliminação desses recursos a
performance dos modelos não foi afetada, pois eles eram de baixa importância, não
afetando assim os resultados.

Foi usada também técnica de seleção de recursos Feature Importance que segundo
(Saarela & Jauhiainen, 2021) é uma técnica usada para determinar a importância relativa
de cada recurso em um conjunto de dados ao criar um modelo de classificação, entretanto
optamos pelo SelectKBest, devido a sua capacidade de redução de Overfit e lidar melhor
com a alta dimensionalidade dos dados ou grande numero de recursos (Zulfiker, Kabir,
Biswas, Nazneen, & Uddin, 2021). E posteriormente seguiu-se o processo de construção
dos modelos, que vai ser descrito no ponto 3.6.

3.6. Construção dos modelos

Os modelos foram construídos usando scikit-learn 1.1.3, uma vez que a scikit-learn traz
uma ampla variedade de algoritmos de ML, supervisionados, usando uma interface
consistente e orientada a tarefas, permitindo assim uma fácil comparação de métodos
para uma determinada aplicação.

Durante este trabalho, a biblioteca foi utilizada para a criação de 3 (três) modelos:
Random Forest Classifier (RFC), eXtreme Gradient Boosting (XGBoost) e K- Nearest
Neighbor (KNN).

3.7. Treinamento e teste

Para o treinamento e teste foi implementado a aprendizagem automática supervisionada,


utilizando o scikit-learn e a plataforma Jupyter Notebook, que é um aplicativo Web de
código aberto que permite criar e compartilhar documentos que contêm código ativo, a
escolha dessa plataforma foi pelo facto de suas funções incluírem limpeza e
transformação de dados, simulação numérica, modelagem estatística, visualização de
dados e aprendizado de máquina.
Entretanto, vale ressaltar que antes dos treinamentos e testes dos algoritmos, dividimos
os dados em 80% para treinos e 20% para testes, usando a técnica de Train Test Split.
Os dados do treinamento foram à posterior balanceados, uma vez que os mesmos se
encontravam desbalanceandos conforme ilustra a Figura 8. Para esse processo foi utilizada a
técnica de sobreamostragem SMOTE Oversampling, que consiste em aumentar de forma
artificial o número de instâncias das classes minoritárias, igualando com as maioritárias conforme

50
ilustrado na figura 10. Uma nota importante, é que o Oversampling só foi aplicado aos dados de
treinamento e não os dados da validação, para não induzir ao modelo a validar dados não realistas.

Figura 10: Distribuição das classes antes do Oversampling VS depois do Oversampling


Fonte: Autor

3.7.1. Avaliação dos Modelos

A avaliação de desempenho de um modelo é uma tarefa que permite determinar a


capacidade de generalização do modelo sobre um conjunto de dados novos. Para
avaliação dos modelos implementados foi utilizada a técnica de K-Fold Cross Validation,
que permite dividir o conjunto de dados brutos em K subconjuntos, um dos subconjuntos
é escolhido como o conjunto de teste e os subconjuntos de dados K-1 restantes são
considerados como o conjunto de treinamento em cada iteração (Ren, Han, & Li, 2019),
conforme mostrado na Figura 11. Em seguida, a precisão da classificação de cada
classificador é expressa como o valor médio de os modelos K obtidos a partir do número
de treinamento K.

Figura 11: Método K-Fold Cross Validation.

Fonte: (Ren, Han, & Li, 2019).

51
O uso dessa técnica permite obter informação sobre a capacidade de generalização do
modelo e gerar pontos de estimação sobre a capacidade de generalização do modelo,
permitindo saber o que acontece com o modelo quando treinado em diferentes conjuntos
aleatórios de dados, para os nossos experimentos foi usado 10 K-Fold Cross Validation
(K=10).

Os modelos possuem diversos parâmetros, cada um desses parâmetros pode assumir


características específicas, com base em suas configurações de hiper-parâmetros, e os
hiper-parâmetros podem se apresentar como intervalos ou condições, alguns dos quais
podem ser alterados programaticamente durante a modelagem (scikit-learn, 2022). O
modelo KNN é um deles que possui parâmetros, neste caso o número de vizinhos, uma
vez que ele se baseia nos vizinhos mais próximos para realizar a classificação, desta feita
é de tamanha importância definir o melhor número de vizinho, pois este pode ditar a
classificação final do modelo.

Para o treinamento e otimização de hiper-parâmetros foi utilizado o GridSearchCV, que


nada mais é do que uma técnica que realiza uma busca por “força bruta”, para encontrar
os hiper-parâmetros do modelo de classificação que melhor atendem o problema (scikit-
learn, 2022).

Selecionar manualmente os melhores hiper-parâmetros no processo de ML pode remeter


os modelos a classificações erradas ou não realistas, a instância GridSearchCV ajuda a
automatizar esse processo, determinando programaticamente as melhores configurações
para parâmetros especificados.

3.7.2. Considerações Gerais

Durante a fase de treinamento e teste, os algoritmos supervisionados aprendem padrões e


relacionamentos nos dados de treinamento. Eles ajustam seus parâmetros internos com
base nos recursos de entrada fornecidos e nos valores alvo correspondentes, o conjunto
de teste, que foi separado do conjunto de treinamento, é usado para avaliar o quão bem o
modelo treinado generaliza para dados não vistos. As previsões do modelo no conjunto
de teste são comparadas com os valores iniciais para calcular as métricas de avaliação.

Pese embora alguns modelos podem demonstrar uma capacidade de predição adequada
durante o treinamento, estes, podem falhar em predizer novos dados de teste não rotulados
durante o treinamento, nesse contexto, as métricas: matriz de confusão, Precision,
accuracy, recall e f1 foram utilizadas para avaliar o desempenho dos modelos para
52
validação dos resultados. Essas métricas de avaliação são calculadas para cada iteração,
a média e o desvio padrão das métricas em todas as iterações fornecem uma estimativa
mais robusta do desempenho do modelo em comparação com uma única divisão de teste
e de treino.

A validação cruzada ajuda a estimar o desempenho do modelo em dados não vistos,


detetando overfitting e ajustando Hiper parâmetros.

A figura 12 ilustra o de fluxo de dado no processo de treinamento e teste, até a construção


do modelo final.

Figura 12: Fluxo de dados, até a construção dos modelos.

Fonte: Autor

53
CAPÍTULO 4: APRESENTAÇÃO, ANÁLISE E DISCUSSÃO DOS
RESULTADOS

Este capítulo apresenta os resultados obtidos, a avaliação do desempenho dos modelos


construídos neste trabalho, a avaliação do desempenho desses modelos foi feita tomando
como métricas: Accuracy, Precision. Recall e F1. Uma vez que objetivo geral deste estudo
é criar uma aproximação para um sistema de deteção de intrusão a redes de computadores
por meio da utilização da Inteligência Artificial, com alta precisão, ou seja, um modelo que
ao classificar um ataque, exista uma alta probabilidade de o ataque ser realmente um ataque
e gerando poucos falsos negativos, por essa razão, a métrica Precision foi escolhida como
a principal, visto que, determina essa probabilidade.

A tabela 10, descreve os resultados gerais dos modelos estudados e implementados.

Tabela 10: Análise de desempenho dos algoritmos


Fonte: Autor

Métricas
Algoritmos Dataset
Accuracy Precision Recall F1

RFC UNSW-NB15 0.9453 0.9447 0.9453 0.9453

XGBoost UNSW-NB15 0.8884 0.8883 0.8884 0.8884

KNN UNSW-NB15 K=5 0.9146 0.9145 0.9145 0.9146

O processamento do conjunto de dados realizado antes do treinamento dos modelos


permitiu que os modelos aprendessem melhor, e a normalização das classes para os
valores 0 a 8 de modo que fosse possível o aprendizado, e com aplicação da técnica k
Fold cross Validation com k = 10 foi possível treinar e gerar 10 pontos, onde em seguida
foi calculada a média das métricas usadas para validação dos modelos.

O uso da técnica SMOTE Oversampling permitiu obter um balanceamento das classes


para o treinamento, pois o modelo antes era induzido a classe majoritária no conjunto de
dados (Normal) e apresentava uma média de acurácia de 98% em todos modelos,
resultado bom, mas não confiável.

Desde modo foi possível obter o desempenho de cada modelo, descrito nos próximos
subcapítulos.

54
4.1. Avaliação do modelo Random Forest Classifier (RFC)

O gráfico ilustrado na figura 13 mostra o comportamento da acurácia do Treinamento e a


acurácia da validação do modelo, onde o modelo obteve 99,81% de acurácia de
treinamento e para a validação o modelo alcançou uma média de 94% de acurácia.

Com tudo pode ser observado no gráfico que a acurácia do treinamento e validação são
próximos e tanto a taxa de treinamento e validação são altas, isso significa que o modelo
está em Bom Encaixe (GOOD FIT), ou seja, não está não está Underfit (insuficiente) ou
Overfit (sobre ajuste).

Figura 13: Training Accuracy vs Validation Accuracy do modelo RFC.

Fonte: Autor

O conceito de perda de treinamento não é aplicável a classificadores de Random Forest,


pois eles não otimizam uma função de perda durante o treinamento. Em vez disso, os
classificadores de Random Forest usam um conjunto de árvores de decisão para fazer
previsões.

Desta feita, foi calculado e mostrado a precisão ou taxa de erro para cada Fold de
validação cruzada como ilustrado na figura 14.

55
Figura 14: Taxa de Erro de treinamento para 10 Fold do modelo RFC

Fonte: Autor

Os gráficos das figuras 15 e 16 mostram o comportamento da acurácia de validação e o


Validation loss do modelo Random Forest Classifier obtido ao fim da execução da
validação cruzada 10 vezes.

Figura 15: Acurácia de treinamento para 10 Fold do modelo RFC

Fonte: Autor

56
Figura 16: Loss de Validação para 10 Fold do modelo RFC

Fonte: Autor

De acordo com a matriz de confusão (Apêndice E) o modelo apresenta taxa alta de


assertividade, com alguns erros nas classes 1,4,5 e 7, onde as taxas de FP das classes é
ilustrada na figura 17. De modo geral o modelo obteve 15884 acertos em um total de
16233, cometendo 349 erros.

Figura 17: Taxa de FP em (%) das classes do modelo RFC


Fonte: Autor

O modelo RFC obteve um desvio padrão (Std) de 0,2%, o que significa que as variações
do conjunto de dados são homogéneas e não apresentam um alto grau de dispersão.

57
4.2. Avaliação do modelo XGBoost

Na figura 18 é ilustrado o gráfico do comportamento da acurácia de treinamento e


acurácia da validação do modelo XGBoost obtidos através da validação cruzada de 10
Fold, onde o modelo obteve 90,17% e 88,84% respetivamente.

De modo geral o modelo está em com um bom desempenho, apesar de levar mais tempo
em relação ao RFC e KNN para o processo de treinamento, levando até 1h de tempo.

Figura 18: Training Accuracy VS Validation Accuracy do modelo XGBoost

Fonte: Autor

Os gráficos ilustrados nas figuras 19 e 20 mostram a comportamento da acurácia de


validação e o Training loss VS Validation loss do modelo XGBoost obtido na execução
da validação cruzada de 10 Fold.

Figura 19: Acurácia de Validação para 10 Fold do modelo XGBoost.

Fonte: Autor
58
Figura 20: Training Loss VS Validation Loss para o modelo XGBoost

Fonte: Autor

De acordo com a matriz de confusão (Apêndice G) o modelo apresenta taxa alta de


assertividade, com alguns erros nas classes 1,4,5,7 e 8, onde as taxas em % de FP das
classes é ilustrada na figura 21. De modo geral, o modelo obteve 15683 acertos em um
total de 16174, cometendo 491 erros.

Figura 21: Taxa de FP em (%) das classes do modelo XGBoost


Fonte: Autor

59
O modelo XGBoost obteve um desvio padrão (Std) de 0,18%, o que significa que as
variações do conjunto de dados são homogêneas e não apresentam um alto grau de
dispersão.

4.3. Avaliação do Modelo K- Nearest Neighbor (KNN)

O gráfico ilustrado na figura 22 mostra o comportamento da acurácia do Treinamento e a


acurácia da validação do modelo, onde o modelo obteve média de 91,46% de acurácia de
treinamento e para a validação o modelo alcançou uma média de 97,41% de acurácia.

Figura 22: Training Accuracy vs Validation Accuracy do modelo KNN (k=5).

Fonte: Autor

O gráfico mostrado na figura 23 ilustra o comportamento da taxa de erro de treinamento


do modelo obtido ao fim da execução da validação cruzada para 10 Fold.

Figura 23: Taxa de Erro de treinamento por Fold do modelo KNN (k=5).
Fonte: Autor
60
A figura 24 ilustra os gráficos do Training loss e Validation loss para o modelo KNN
obtido na execução da validação cruzada de 10 Fold.

Figura 24: Training Loss VS Validation Loss para o modelo KNN (k=5)

Fonte: Autor

A figura 25 mostra o gráfico do comportamento da acurácia de validação obtido a execução


de validação cruzada de 10 Fold.

Figura 25: Acurácia de Validação para 10 Fold do modelo KNN (k=5).

Fonte: Autor

61
De acordo com a matriz de confusão (Apêndice F) o modelo apresenta boa taxa de
assertividade, com alguns erros nas classes 1,4,5,7 e 8, onde o modelo obteve 15702
acertos em um total de 16234, cometendo 532 erros.

Figura 26: Taxa de FP em (%) das classes do modelo KNN (k=5).


Fonte: Autor

O modelo KNN com k=5 é obteve um desvio padrão (Std) de 0,27%, o que significa que
as variações do conjunto de dados são homogêneas e não apresentam um alto grau de
dispersão.

4.4. Discussão

Ao fim dos experimentos realizados, modelos acima descritos usando o conjunto de dados
UNSW-NB15, notamos que o modelo Random Forest Classifier se destaca como o
melhor em relação aos outros, onde obteve os melhores resultados e principalmente na
métrica escolhida para estudo e avaliação neste trabalho, com 94.47% de precisão e
melhor tempo de treinamento, seguindo o KNN com 91.45% e o XGBoost com 88.83%
de precisão.

Uma das abordagens similares é a (Meftah, Rachidi, & Assem, 2019) que aplicam um
processo de deteção de intrusão de rede baseado em anomalias em dois estágios usando

62
o conjunto de dados UNSW-NB15. Usam eliminação Recursive Feature Elimination e
Random Forests entre outras técnicas, para selecionar os melhores recursos de conjunto
de dados para fins de aprendizado automática; em seguida, realizam uma classificação
binária para identificar o tráfego intrusivo do normal, usando várias técnicas de mineração
de dados, incluindo Logistic Regression, Gradient Boost Machine e SVM. Os resultados
da classificação do primeiro estágio mostram que o uso da SVM relata a maior precisão
(82,11%). Em seguida, alimentam a saída da SVM para uma variedade de classificadores
multinominais, a fim de melhorar a precisão da previsão do tipo de ataque.

Os resultados dessa pesquisa são satisfatórios, visto que a detenção de intrusão em redes
de computadores é crucias para garantir a segurança dos utilizadores na rede de
computadores.

63
CAPÍTULO 5: CONCLUSÃO
Estudamos os algoritmos de IA para análise de pacotes da rede e selecionamos algoritmos
de classificação para IDS para implementação.
Selecionamos o dataset UNSW-NB15 e fizemos o uso do mesmo para realização de testes
dos algoritmos, realizamos o seu pré-processamento de para permitir que os modelos
aprendessem os padrões do dataset com técnicas de multiplicação de instâncias de modo
a ter classes balanceadas.
Treinamos e testamos os algoritmos estudados, foram usadas técnicas de aprendizado de
máquinas supervisionadas e implementação por meio da linguagem de programação
Python;
Analisamos os resultados dos e concluímos que com os experimentos realizados neste
trabalho, o modelo Random Forest Classifier obteve 94,47% de precisão, e pela
definição de precisão significa que, toda vez que o modelo classifica um ataque malicioso,
existe uma probabilidade de 0.9447 de que a rede esteja realmente a sofrer um ataque.
Os resultados aqui apresentados mostram que é possível fazer o uso de modelos de
classificação para a classificação de diferentes tipos de ataques que uma rede de
computadores pode sofrer e concluímos no geral que os objetivos foram alcançados.

5.1. Trabalhos Futuros

Após a análise dos resultados foi possível encontrar alguns pontos que podem evoluir em
relação a solução proposta, buscando a produção de resultados melhores dos que foram
obtidos neste trabalho de pesquisa:
▪ Realizar o estudo para implementação de modelos que sejam capazes de
reconhecer ataques acima de 99% de precisão;
▪ Construção de um conjunto de dados mais robustos e diversificado que inclua
vários e novos tipos de ataques, uma vez que ele vem crescendo a cada dia.
▪ Realizar trabalho futuro efetuando o treinamento do modelo utilizando outros
algoritmos como, SVM, RNN e Naïve Bayes, com o objetivo de diminuir o
reconhecimento de falsos negativos de novos ataques que possuem características
novas ou semelhantes;

64
Referências Bibliográficas
Abualdenien, J., & Borrmann, A. (January de 2022). Ensemble-learning approach for the
classification of Levels Of Geometry (LOG) of building elements. Ensemble-
learning approach for the classification of Levels Of Geometry (LOG) of building
elements. doi:DOI: 10.1016/j.aei.2021.101497

Al-Janabi, S. T., & Saeed, H. A. (2011). A Neural Network Based Anomaly Intrusion
Detection System. pp. 221-226. doi:10.1109/DeSE.2011.19

Anand, S. J., Pranav, Neetish, M., & Jayasree, N. (2018). Network Intrusion Detection
Using Improved Genetic k-means Algorithm. (IEEE, Ed.) pp. 2441-2446.
doi:10.1109/ICACCI.2018.8554710

Borkar, A., Donode, A., & Kumari, A. (2017). A Survey on Intrusion Detection System
(IDS) and Internal Intrusion Detection and Protection System (IIDPS). pp. 949-
953. doi:10.1109/ICICI.2017.8365277

Costa, W. E. (10 de Outubro de 2012). Sistema de detecção de intrusão em redes baseado


em soa (nids-soa) para suportar a interoperabilidade entre ids s: aplicação ao nidia.
Dissertação.

D. L. Costa, K. S. (2015). Applying Machine Learning to Network Intrusion Detection:


An Investigation on Insider Threats. IEEE Transactions on Dependable and
Secure Computing.

Dent, A. Z., & Hutchinson, E. J. (2017). Evolving Threats: Adaptive Defense


Mechanisms for Zero-Day Exploits in Computer Networks. ACM Transactions
on Information and System Security.

Dina, A. S., & Manivannan, D. (Dezembre de 2021). Intrusion detection based on


Machine Learning techniques in computer networks.
doi:https://doi.org/10.1016/j.iot.2021.100462

Faria, M. M. (Dezembro de 2016). Detecção de Intrusões em Redes de Computadores


com Base nos Algoritmos KNN, K-Means++ e J48 .

IBM. (17 de 08 de 2020). REDES NEURAIS. Obtido de IBM Cloud Education:


https://www.ibm.com/cloud/learn/neural-networks

Infowester. (24 de 02 de 2014). Ataques DoS (Denial of Service) e DDoS (Distributed.


Obtido em 03 de 12 de 2022, de https://www.infowester.com/ddos.php
65
Jupyter. (2023). Jupyter . Obtido de Jupyter Documentation Site:
https://docs.jupyter.org/en/latest/

Kasongo, . M., & Sun, Y. (February de 2020). A deep learning method with wrapper
based feature extraction for wireless intrusion detection system.
doi:https://doi.org/10.1016/j.cose.2020.101752

Khraisat, A., Gondal, I., & Kamruzzaman, P. V. (17 de July de 2019). Survey of intrusion
detection systems: techniques, datasets and challenges. (F. U. Internet Commerce
Security Laboratory, Ed.) 22. doi:https://doi.org/10.1186/s42400-019-0038-7

Kuhn, M., & Johnson, K. (2013). Modelagem Preditiva Aplicada (1 Edição ed.).
Springer.

Kumar, M. B., & Deepa, B. (Setembro de 2015). Computer Networking: A Survey.


International Journal of Trend in Research and Development, pp. 126-130.

Kurose, J., & Ross, K. (2013). REDES DE COMPUTADORES E A INTERNET - uma


abordagem top-down (6a ed.). Pearson Education.

Liu, G., Zhao, H., Fan, F., Liu, G., Xu, Q., & Nazir, S. (11 de 02 de 2022). An Enhanced
Intrusion Detection Model Based on ImprovedkNN in WSNs. (P. Bellavista, Ed.)
An Enhanced Intrusion Detection Model Based on ImprovedkNN in WSNs, p. 22.
doi:https://doi.org/10.3390/s22041407

Lusa. (21 de 02 de 2022). Made for minds. Obtido de https://www.dw.com/pt-002/ataque-


de-hackers-deixa-inoperacionais-portais-mo%C3%A7ambicanos/a-60854704

Michael, N. (2011). Artificial Intelligence - A guide to Intelligent Systems (3rd Edition


ed.). University of Tasmania: PEARSON.

Murphy, K. P. (2012). Machine Learning - A Probabilistic Perspective. Palo Alto ,


California: Library of Congress Cataloging.

Nakamura, E. T. (2016). Segurança da informação e Redes. Londrina: Editora e


Distribuidora Educacional S.A.

Nalavade, K., & B.B.Meshram. (2016). METHODOLOGIES FOR INTRUSION


DETECTION & PREVENTION. Journal of Engineering Research and Studies,
7.

66
Neto, H. S., Ávila, C. d., Lacerda, W. S., & Simão, V. (8 de Junho de 2017). Sistema de
Detecção de Intrusão em Redes de Computadores Utilizando Redes Neurais
Artificiais. Network Intrusion Detection System using Neural Networks, pp. 206-
213.

Nour, M. (2017). The UNSW-NB15 Dataset. Obtido de


https://research.unsw.edu.au/projects/unsw-nb15-dataset

Ouiazzane, D., Addou, M., & Barramou, F. (2019). A multi-agent model for network
intrusion detection. (IEEE, Ed.) doi:978-1-7281-4368-2/19/$31.00

Owasp. (s.d.). Session hijacking attack. Obtido de owasp:


https://owasp.org/wwwcommunity/attacks/Session_hijacking_attack

Pradhan, M., & Sahu, S. (2012). Anomaly detection using artificial neural network.
International Journal of Engineering Sciences \& Emerging Technologies, pp. 29-
36.

R, M. N., & R, P. (December de 2016). Performance Analysis of Text Classification


Algorithms using Confusion Matrix. International Journal of Engineering and
Technical Research (IJETR), 2454-4698.

Ren, Q., Han, S., & Li, M. (19 de Fevereiro de 2019). Tectonic discrimination of olivine
in basalt using data mining techniques based on major elements: a comparative
study from multiple perspectives. doi: 10.1080/20964471.2019.1572452

Saarela, M., & Jauhiainen, S. (03 de Feb de 2021). Comparison of feature importance
measures as explanations for classification models. p. 272. Obtido de
https://link.springer.com/article/10.1007/s42452-021-04148-9

Scikit Learn. (2022). Obtido em 24 de 11 de 2022, de Scikit Learn - Support Vector


Machines: https://scikit-learn.org/stable/modules/svm.html

scikit-learn, D. (2022). Scikit-Learn. Obtido em 29 de 08 de 2022, de Scikit-Learn:


https://scikit-learn.org/stable/getting_started.html

Shams, R. (21 de August de 2011). I am Learning. Obtido de I am Learning:


http://rushdishams.blogspot.com/2011/08/micro-and-macro-average-of-
precision.html

67
Shang-fu, G., & Chun-lan, Z. (2012). Intrusion Detection System Based on Classification.
Xi’ an University of Science and Technology, pp. 78-83. doi:978-1-4673-1332-
2/12/$31.00

Silva, I. N., Spatti, D. H., Flauzino, R. A., Liboni, L. H., & Alves, S. F. (2017). Artificial
Neural Networks - A Practical Course (2ª ed.). São Paulo: Artliber Editora Ltda.

Silva, J. A. (2018). Detecção de Insultos em Mídias de Redes Sociais atraves de


Aprendizado de Maquina.

Simplilearn. (2022). Simplilearn - Provedor de Curso de Treinamento de Certificação


Online. Obtido de Simpleleran: https://www.simplilearn.com/tutorials/python-
tutorial/jupyter-notebook

Steurer, M., Hill, R. J., & Pfeifer, N. (2021). Metrics for evaluating the performance of
machine learning based automated valuation models. Journal of Property
Research, 38, 99-129. doi:https://doi.org/10.1080/09599916.2020.1858937

Stuart, R., & Norving, P. (2021). Artificial Intelligence - A Modern Approach. Global
Edition.

Tanenbaum, A. S., & Wetherall, D. J. (2011). Computer Nerwork (5 Edição ed.). Boston:
PEARSON.

Wang, H., Ma, C., & Zhang, H. (2012). An Innovative Model for Intrusion Detection by
Mining of Maximum Frequent Patterns. World Automation Congress (WAC),
IEEE, pp. 145-148.

Whitman, M. E., & Mattord, H. J. (2011). PRINCIPLES OF INFORMATION SECURITY


(Fourth Edition ed.). COURSE TECHNOLOGY.

Will, D. E. (2012). Metodologia da Pesquisa Científica (2a ed.). Palhoça: UnisulVirtual.

Yaseen, W. L., Othman, Z. A., & Nazri, M. Z. (Novembro de 2016). Real-time Multi-
agent System for an Adaptive Intrusion Detection System. Obtido em 02 de 09 de
2022, de 10.1016/j.patrec.2016.11.018

Zulfiker, M. S., Kabir, N., Biswas, A. A., Nazneen, T., & Uddin, M. S. (27 de 4 de 2021).
An in-depth analysis of machine learning approaches to predict depression.
Current Research in Behavioral Sciences 2, p. 12.
doi:https://doi.org/10.1016/j.crbeha.2021.100044

68
Apêndices

Apêndice A: Link para download do Dataset:


https://github.com/Harruna/Intrusion-Detection-System

Apêndice B: 10 Fold RFC


Fold Accuracy Precision Recall F1_Score
1 0.9506 0.9505 0.9506 0.9506
2 0.9434 0.9434 0.9434 0.9434
3 0.9442 0.9441 0.9442 0.9442
4 0.9462 0.9462 0.9462 0.9462
5 0.9437 0.9437 0.9437 0.9437
6 0.9433 0.0432 0.9433 0.9433
7 0.9440 0.9440 0.9440 0.9440
8 0.9469 0.9468 0.9469 0.9469
9 0.9455 0.9455 0.9455 0.9455
10 0.9405 0.9405 0.9405 0.9405
Media 0.9453 0.9447 0.9453 0.9453
Desvio
0.0021 0.0022 0.0021 0.0021
Padrão

Apêndice C: 10 Fold XGBoost


Fold Accuracy Precision Recall F1_Score
1 0.8896 0.8896 0.8896 0.8896
2 0.8868 0.8868 0.8868 0.8868
3 0.8890 0.8889 0.8889 0.8890
4 0.8924 0.8920 0.8924 0.8924
5 0.8879 0.8879 0.8879 0.8879
6 0.8862 0.8862 0.8862 0.8862
7 0.8862 0.8862 0.8862 0.8862
8 0.8904 0.8900 0.8904 0.8904
9 0.8882 0.8882 0.8882 0.8882
10 0.8871 0.8871 0.8871 0.8871
Media 0.8884 0.8883 0.8884 0.8884
Desvio
0.0018 0.0018 0.0018 0.0018
Padrão

69
Apêndice D: 10-Fold KNN (K=5)
Fold Accuracy Precision Recall F1_Score
1 0.9220 0.9220 0.9220 0.9220
2 0.9126 0.9125 0.9125 0.9126
3 0.9141 0.9141 0.9141 0.9141
4 0.9154 0.9154 0.9154 0.9154
5 0.9130 0.9129 0.9129 0.9130
6 0.9140 0.9140 0.9140 0.9140
7 0.9130 0.9130 0.9130 0.9130
8 0.9166 0.9166 0.9166 0.9166
9 0.9134 0.9134 0.9134 0.9134
10 0.9122 0.9121 0.9121 0.9122
Media 0.9146 0.9145 0.9145 0.9146
Desvio
0.0028 0.0027 0.0027 0.0028
Padrão

Apêndice E: Matriz de confusão do modelo Random Forest Classifier

70
Apêndice F: Matriz de confusão do modelo KNN (K=5)

Apêndice G: Matriz de confusão do modelo XGBoost

71

Você também pode gostar