Escolar Documentos
Profissional Documentos
Cultura Documentos
Monografia - Sistema de Detenção de Intrusos A Redes de Computador Usando Inteligência Artificial
Monografia - Sistema de Detenção de Intrusos A Redes de Computador Usando Inteligência Artificial
Faculdade de Engenharia
Departamento Engenharia Informática
Trabalho de Culminação do Curso
Autor
_______________________________________
Supervisor
______________________________________
Celso Vanimaly
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
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.
VI
DEDICATÓRIA
VII
Resumo
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%.
IX
Índice
Resumo .........................................................................................................................VIII
Abstract ........................................................................................................................... IX
X
2.4.3. K-Nearest Neighbor (KNN) ...................................................................... 31
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
XIII
Índice de Figuras
XIV
CAPÍTULO 1: INTRODUÇÃO
1.1. Contextualização
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).
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
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.
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.
1.4. Objetivos
19
CAPÍTULO 2: EMBASAMENTO TEÓRICO
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.
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.
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.
21
2.2. Segurança da Informação
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.
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.
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).
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.
23
a) Tipos de Intrusos
▪ 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:
b) Classificação do IDS
De acordo com (Costa, 2012) há dois tipos clássicos de IDS de acordo com o alvo de
monitoramento:
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.
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.
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.
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).
É 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.
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.
28
2.4. Visão geral dos métodos de ML
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.
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.
(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.
𝑝
𝑑𝑖𝑗 = {∑𝑘=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:
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.
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.
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.
33
importante principalmente em situações em que os erros possuem custos diferentes. Essa
matriz indica quantos exemplos existem em cada grupo:
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
𝑉𝑃+𝑉𝑁
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = (5)
𝑉𝑃+𝑉𝑁+𝐹𝑁+𝐹𝑃
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)
(𝑉𝑃1+𝑉𝑃2+...+𝑉𝑃𝑛)
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛𝑀𝑖𝑐𝑟𝑜 = (7)
(𝑉𝑃1+𝑉𝑃2+...+𝑉𝑃𝑛+𝐹𝑃1+𝐹𝑃2+...+𝐹𝑃𝑛)
𝑉𝑃
𝑅𝑒𝑐𝑎𝑙𝑙 = (8)
𝑉𝑃+𝐹𝑁
2.5.6. Score F1
2∗𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛∗𝑅𝑒𝑐𝑎𝑙𝑙
𝐹1 = (9)
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑅𝑒𝑐𝑎𝑙𝑙
35
de aprendizado e desenvolvimento, o que os torna mais precisos e eficientes para
enfrentar o crescente número de ataques imprevisíveis.
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
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
CARATERÍSTICAS DA PESQUISA
Objetivos Procedimentos Técnicos Abordagens
CONSTRUÇÃO DE MODELOS DE ML
PRÉ-PROCESSAMENTO
DE DADOS RFC, KNN, XGBoost
Testes
Seleção de Recursos
Deteção de Intrusão
39
3.2. Suporte tecnológico:
Computador Especificações
3.3. Materiais
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.
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
42
Tabela 6: instâncias das categorias de ataques no Dataset de treino e teste
Fonte: Autor
Fonte: Autor
43
Tabela 7: Descrição dos tipos de ataques
Fonte: (Nour, 2017)
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.
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
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
Deste modo foi possível fazer o treinamento dos algoritmos e o teste que serão explicados
no ponto 3.7.
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
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 𝐹.
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.
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).
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.
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).
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.
Fonte: Autor
53
CAPÍTULO 4: APRESENTAÇÃO, ANÁLISE E DISCUSSÃO DOS
RESULTADOS
Métricas
Algoritmos Dataset
Accuracy Precision Recall F1
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)
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).
Fonte: Autor
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
Fonte: Autor
56
Figura 16: Loss de Validação para 10 Fold 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
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.
Fonte: Autor
Fonte: Autor
58
Figura 20: Training Loss VS Validation Loss para o 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.
Fonte: Autor
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
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.
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.
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
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.
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
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.
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
Pradhan, M., & Sahu, S. (2012). Anomaly detection using artificial neural network.
International Journal of Engineering Sciences \& Emerging Technologies, pp. 29-
36.
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
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.
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.
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
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
70
Apêndice F: Matriz de confusão do modelo KNN (K=5)
71