Giter Site home page Giter Site logo

martinsnathalia / deteccao_intrusao_redes_iot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from projeto-ufc-sidi/projeto-ufc-sidi

0.0 0.0 0.0 7.23 MB

Projeto de Residência Acadêmica que visa propor 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.

Jupyter Notebook 100.00%

deteccao_intrusao_redes_iot's Introduction

“”

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:

  1. Baixar o repositório;
  2. Criar um ambiente virtual;
  3. Instalar as bibliotecas contidas no arquivo requirements.txt, através do seguinte comando:
pip install -r requirements.txt

Equipe do Projeto

Lucelia Lima Nathália Martins Lorena Medeiros

deteccao_intrusao_redes_iot's People

Contributors

martinsnathalia avatar lucelialima avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.