Este projeto utiliza técnicas de Machine Learning para detectar e analisar anomalias em tráfego de redes de computadores. O objetivo é identificar padrões de comportamento fora do comum, que podem indicar potenciais ameaças ou comportamentos anômalos. Assim, a solução contribui para a segurança e o monitoramento de redes.
Os dados utilizados neste projeto foram obtidos do Hugging Face - CIC IDS 2018 Dataset, uma referência em estudos de Intrusion Detection System (IDS). O dataset original foi desenvolvido pela University of New Brunswick (UNB) e está disponível também em:
O arquivo principal utilizado foi Thuesday-20-02-2018_TrafficForML_CICFlowMeter.csv.
O núcleo do projeto envolve a análise exploratória detalhada do tráfego de rede e a aplicação de modelos de Machine Learning para identificar anomalias. São utilizadas técnicas de pré-processamento, visualização de dados e experimentação com diferentes algoritmos de detecção, buscando avaliar a performance em cenários reais de tráfego.
- Conhecer e entender a estrutura dos dados de tráfego de rede com EDA.
- Aplicar técnicas de Machine Learning para detecção de anomalias.
- Avaliar os modelos com base em métricas como precisão, recall e F1-score.
- Identificar padrões anômalos para apoiar ações de segurança e resposta a incidentes.
- Visualizar e interpretar os resultados de forma acessível.
O projeto é desenvolvido em Jupyter Notebooks, segmentando as principais fases do processo:
-
Carregamento e Preparação dos Dados:
- Leitura do arquivo CSV de tráfego de rede e tratamento inicial dos dados.
-
Análise Exploratória de Dados (EDA):
- Exploração das principais características do tráfego, identificação de features relevantes e visualização de padrões.
-
Pré-processamento para Machine Learning:
- Seleção de features.
- Normalização e divisão dos dados em conjuntos para treino e teste.
-
Aplicação de Algoritmos de Detecção de Anomalias:
Experimentação com modelos supervisionados e não supervisionados:
- SGDOneClassSVM (Não supervisionado)
- Isolation Forest (Não supervisionado)
- Random Forest (Supervisionado)
- SVM -Support Vector Classifier (Supervisionado)
-
Avaliação dos Resultados:
- Análise das métricas de performance e discussão dos principais achados.
- Python 3.13.5
- Pandas:
- NumPy:
- Matplotlib & Seaborn:
- Scikit-learn:
- Jupyter Notebook:
- Priscila Borges