Skip to content

AbnerBissolli/Malicious-DNS-Detection

Repository files navigation

Malicious-DNS-Detection

Este projeto foi desenvolvido para fins avaliativas da disciplina de Ciência de Dados para Segurança, lecionada pelo professor doutor André Ricardo Grégio, do Curso de Mestrado em Informática da UFPR, no período de novembro de dezembro de 2021. O objetivo do projeto foi classificar nomes de domínios em benignos ou malignos utilizando algoritmos de aprendizado de máquina. O código-fonte fez parte do aprendizado dos autores e pode ser customizado, com os devidos ajustes, para outros usos.

O dataset coletado que embasou este trabalho está disponível em: https://www.unb.ca/cic/datasets/dns-2021.html

O trabalho seguiu os seguintes passos e etapas:

ETAPA 1 : TRATAMENTO DOS DADOS
  • PASSO 1: [01] [01] Data Cleaning.ipynb. Limpeza dos dados, junção dos datasets limpos, redução da quantidade de classes de benignos.
  • PASSO 2: [01] [02] Gerador de Atributos.ipynb. Geração de atributos TLD, SLD, SSD, SUB. Definição das classes Benign = 0 e Malware = 1
  • PASSO 3: [01] [03] Obtendo Características de Terceiros.ipynb. Utilizando IP, whois, IPWhois.
  • PASSO 4: [01] [04] Balanceando os dados para 50 - 50.ipynb
  • Passo 5: [01] [05] Train Test Split.ipynb
ETAPA 2 : GERAÇÃO DE CARACTERÍSTICAS
  • PASSO 6: [02] [01] Gerador de Características de Terceiros.ipynb. Definindo Domínios famosos a partir do ranking Alexa. SLD, connection, SLDs in SUB, age, creation, org, registrant, registrar, servers, email, country, state, address, name, privacy, SLD Distance.
  • PASSO 7: [02] [02] Gerador de Características Lexicográficas.ipynb. Geração das características SSD_len, SUB_len,SLD_len, SSD_pct, SUB_pct, SLD_pct, SSD_nan, SUB_nan, SLD_nan, SSD_etp, SUB_etp, SLD_etp, SUB_num.
  • PASSO 8: [02] [03] Gerador de Características Lexicográficas Part 2.ipynb. Dígitos sequenciais, caracteres sequenciais em SSD, SUB, SLD.
  • PASSO 9: [02] [04] Gerador de Características Lexicográficas Part 3.ipynb. Palavras comuns e famosas de sites famosos (words_reliable, words_catchy, words_countries, words_bad).
  • PASSO 10: [02] [05] Gerador de Características.ipynb. Características para pré-treino e pré-teste.
ETAPA 3 : NORMALIZAÇÃO
  • PASSO 11: [03] [01] Encoder.ipynb
  • PASSO 12: [03] [02] Normalizador.ipynb
ETAPA 4 : CLASSIFICADORES
  • PASSO 13: [04] [01] Classifier Random Forest.ipynb
  • PASSO 14: [04] [02] Classifier MLP.ipynb
  • PASSO 15: [04] [03] Classifier KNN.ipynb

As tecnologias usadas no desenvolvimento foram:
  • Jupiter Notebook
  • Linguagem Python
Abner Fontebom Bissolli Costa ([email protected]) e Michele Venturin ([email protected])

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published