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 : CLASSIFICADORESAs tecnologias usadas no desenvolvimento foram:
- PASSO 13: [04] [01] Classifier Random Forest.ipynb
- PASSO 14: [04] [02] Classifier MLP.ipynb
- PASSO 15: [04] [03] Classifier KNN.ipynb
- Jupiter Notebook
- Linguagem Python