Skip to content

Projeto de Residência Acadêmica em Segurança da Informação que propõe um pipeline para análise de tráfego de redes IoT, a partir da implementação de técnicas de ciência de dados e aprendizado de máquina.

Notifications You must be signed in to change notification settings

Projeto-UFC-SiDi/projeto-ufc-sidi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 

Repository files navigation

“”

Projeto acadêmico:

Pipeline para Detecção de Intrusão em Redes IoT utilizando Aprendizado de Máquina: Um Estudo de Caso

Esse trabalho foi desenvolvido ao longo da Residência em Segurança da Informação pela Universidade Federal do Ceará e em parceria com o Instituto SiDi.

Contexto e Resumo do Projeto

O crescimento das redes IoT (Internet of Things) fez com que elas se tornassem alvo de ataques cibernéticos. Por isso, este projeto tem como objetivo propor um pipeline para analisar intrusão em traáego de redes IoT por meio de técnicas de Aprendizado de Máquina. Para validar o pipeline proposto, foi realizado um estudo de caso utilizando a base de dados IoT-23 e tres modelos de classificação: ́Arvore de Decisão, Random Forest e CatBoost. Os resultados demonstraram a eficácia do modelo Random Forest, que obteve precisão de 98,8% e recall de 99,5%, e a contribuicão de atributos na classificacão por meio do SHAP.

Conteúdo do Projeto

O conteúdo disponibilizado no GitHub consiste no código utilizado para a construção e validação do pipeline proposto, além das referências utilizadas para o estudo e desenvolvimento do presente projeto. Os dados brutos não puderam ser disponibilizados pelo seu tamanho exceder ao limite da plataforma, porém, pode ser obtido através do site Stratosphere, no qual é disponibilizado em duas versões, uma sendo de 21 GB e outra de 8,8 GB. Para o projeto, foi utilizado a versão menor que é composta por dados rotulados.

  • code: é a pasta com os códigos utilizados no projeto. Dentro da pasta, tem-se os seguintes arquivos:

    • Dataset.ipynb: código utilizado para extrair e coletar dados das capturas disponibilzadas, gerando um único arquivo .csv para as próximas etapas.
    • CatBoost.ipynb: consiste no pré-processamento e implementação do algoritmo CatBoost para a base gerada. Nela também é possível verificar as métricas, a Matriz de Confusão e a interpretabilidade do modelo através do SHAP.
    • Random Forest.ipynb: consiste no pré-processamento e implementação do algoritmo Random Forest com as métricas obtidas, Matriz de Confusão e SHAP.
    • Árvore de Decisão.ipynb: segue o mesmo padrão dos anteriores, porém a implementação é para o algoritmo Árvore de Decisão.
  • references: é a pasta que contém as referências que foram utilizadas para o estudo e execução do projeto apresentado.

  • requirements.txt: arquivo que contém os requisitos necessários para rodar os códigos do projeto.

Bibliotecas

  • Pandas
  • Numpy
  • Warnings
  • Sklearn
  • Seaborn
  • Matplotlib
  • SHAP
  • CatBoost
  • Imblearn (Imbalanced-learn)

Setup

Para executar o projeto, basta baixar o repositório, criar um ambiente virtual e instalar as bibliotecas que estão contidas no arquivo requirements.txt, através do seguinte comando: pip install -r requirements.txt

No VSCode, pode ser feito da seguinte maneira:

1 - Criar um ambiente virtual através do:

  • atalho: Ctrl + Shift + P
  • ou acessando a aba "Ver" e selecionar "Paleta de Comandos"
  • image

2 - Criar o ambiente virtual selecionando: Criar Ambiente... image

3 - Selecionar o ambiente virtual a ser criado, como o Venv a seguir: image

4 - Selecionar o caminho do Python instalado em seu computador: image

5 - Por fim, selecionar o arquivo "requirements.txt" como dependência do ambientevirutal a ser instalado: image

Dessa forma, é possível conferir a instalação do ambiente virtual através do Explorador no VSCode: image

Uma vez constatado o ambiente virtual, basta executar os notebooks disponibilizados.

Equipe do Projeto

Lucelia Lima Nathália Martins Lorena Medeiros

About

Projeto de Residência Acadêmica em Segurança da Informação que propõe um pipeline para análise de tráfego de redes IoT, a partir da implementação de técnicas de ciência de dados e aprendizado de máquina.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published