Skip to content

🕵️‍♂️🏴‍☠️ Is it possible to predict if an encrypted traffic is malicious? 📨🔒

License

Notifications You must be signed in to change notification settings

felmateos/snn-darknet-traffic-classification

 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

🔒 Internet Traffic Threat Classification with Spiking Neural Networks

🧠 Aplicação de Redes Neurais Pulsadas (SNNs) para a detecção de ameaças em tráfego de rede

Report Bug · Request Feature


📌 Contexto Geral

Este projeto é inspirado no artigo de Rasteh et al. (Neurocomputing, 2022) sobre classificação de tráfego de internet criptografado com Spiking Neural Networks (SNNs).

🎯 Objetivo: Reproduzir as técnicas do estudo original e aplicá-las a um novo conjunto de dados de tráfego de rede, explorando a eficácia das SNNs para detecção de ameaças em tráfego de internet.

As SNNs diferem das redes neurais convencionais ao processarem dados por picos de ativação (spikes), simulando a comunicação neuronal biológica.

Logo

⚡ Conjunto de Dados

Foram avaliados diferentes datasets:

  • CIC-IDS2017
    Dataset escolhido. Contém tráfego benigno e múltiplos tipos de ataques simulados, preservando os pacotes de rede.
    Link: CIC-IDS2017

Ameaças tratadas

  • Botnet: redes de computadores infectados controlados remotamente.
  • Exploit: ataques explorando falhas como XSS e SQL Injection.
  • Infiltration: simulações de introdução de malware por dispositivos infectados ou downloads maliciosos.

⚙️ Projeto do Experimento

Pré-processamento

  • Leitura de PCAPs → extração de fluxos de rede.
  • Rotulação de ameaças baseada nas classes fornecidas no dataset.
  • Undersampling de casos benignos usando DBSCAN para reduzir desbalanceamento (seleção de representantes dos clusters).

Modelagem

  • Rede construída em PyTorch
  • Seleção de hiperparâmetros feita via Optuna.

(back to top)


📊 Resultados e Avaliação

As métricas utilizadas foram:

  • Precisão: capacidade de evitar falsos positivos.
  • Revocação: capacidade de não perder casos positivos (evitar falsos negativos).
  • Acurácia: medida geral de acertos.

Resultados detalhados podem ser encontrados na pasta results/.



📊 Matriz de Confusão

A matriz de confusão abaixo mostra o desempenho do modelo no conjunto de teste.
Observa-se que a classe Benign_None apresenta maior precisão, enquanto há confusão entre Exploit e Botnet.

Confusion Matrix

📉 Evolução da Função de Perda

O gráfico mostra a evolução da função de perda (loss) ao longo das épocas de treinamento.
Nota-se uma rápida convergência nas primeiras iterações, estabilizando após poucas épocas.

Loss vs Epochs

🧠 Atividade da Rede Neural Pulsada

O gráfico a seguir ilustra o comportamento da rede em três estágios:

  • Entrada (codificação dos pacotes de rede em picos de disparo)
  • Camada Densa Pulsada (Spiking Dense Layer)
  • Camada de Saída (Readout Layer)

Essa visualização mostra como os padrões de disparos evoluem nas diferentes camadas da rede.

Spiking Network Activity

🔎 Análise dos Resultados

  • O modelo obteve excelente desempenho na detecção de tráfego benigno e ataques de infiltração, alcançando taxas de acerto superiores a 98%.
  • Para as classes Exploit e Botnet, o desempenho foi inferior, com confusão entre os dois tipos de ataques. Isso pode indicar semelhanças nos padrões de tráfego extraídos para essas classes.
  • A curva de loss mostra rápida convergência, sugerindo que o modelo aprende de forma eficiente nas primeiras épocas.
  • A análise de disparos nos neurônios evidencia como a SNN é capaz de representar diferentes padrões de tráfego por meio de atividades temporais distintas em cada camada.

👉 Em resumo, a abordagem com SNNs se mostrou promissora para detecção de ameaças em tráfego de rede, mas há espaço para melhorias na separabilidade entre Exploit e Botnet.


🚀 Como Reproduzir

Git Clone

git clone https://github.com/felmateos/snn-darknet-traffic-classification.git
cd snn-darknet-traffic-classification

Instalação

pip install -r requirements.txt

(back to top)

📚 Referência do Artigo Base

@article{rasteh2022encrypted,
  title={Encrypted internet traffic classification using a supervised spiking neural network},
  author={Rasteh, Ali and Delpech, Florian and Aguilar-Melchor, Carlos and Zimmer, Romain and Shouraki, Saeed Bagheri and Masquelier, Timoth{\'e}e},
  journal={Neurocomputing},
  volume={503},
  pages={272--282},
  year={2022},
  publisher={Elsevier}
}

🤝 Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para propor melhorias, relatar problemas ou abrir pull requests.

📜 Licença

Este projeto é licenciado sob a Licença MIT.

(back to top)

About

🕵️‍♂️🏴‍☠️ Is it possible to predict if an encrypted traffic is malicious? 📨🔒

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 80.1%
  • Python 19.9%