Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
degas — Detecção de domínios gerados por DGA usando modelos de aprendizado profundo | Kitploit
Ferramentas/GitHubGitHub/matthoffman/degas
Inteligência de AmeaçasAprendizado de MáquinaPapers e PesquisaAprendizado e EducaçãoAnálise de DNSDetecção de Anomalias
GitHubmatthoffman/degas

degas

Detecção de domínios gerados por DGA usando modelos de aprendizado profundo

Ver Repositório
2375há 7 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Degas

Detecção de domínios gerados por DGA usando modelos de deep learning

Edgar Degas, "Quatro Dançarinas"

Executando

Atualmente estou usando Conda (Anaconda/Miniconda) para desenvolvimento, mas você também deve conseguir usar Pipenv ou virtualenv com o requirements.txt incluído.

conda:

root@kitploit:~
conda env create -f environment.yml
conda activate degas

Pipenv:

root@kitploit:~
pipenv install -r requirements.txt
pipenv shell

Virtualenv é semelhante, mas realmente não há mais razão para usar virtualenv em vez de Pipenv.

Retreinando o modelo

Há um modelo treinado no diretório models. Se quiser treinar o seu próprio, primeiro você precisará baixar os dados de treinamento do S3:

root@kitploit:~
python degas/runner download-data

Processe os dados para o formato CSV simples que o construtor do modelo espera:

root@kitploit:~
python degas/runner process-data data/raw data/processed

Essas etapas só precisam ser executadas uma vez, a menos que você altere os dados de treinamento.

Para então retreinar o modelo usando o conjunto de dados gerado, primeiro instale o tensorflow-gpu usando o gerenciador de pacotes de sua preferência (conda install tensorflow-gpu ou pip install tensorflow-gpu) para que o treinamento seja acelerado por GPU.

Então, execute:

root@kitploit:~
python degas/runner train-model data/processed

Execute python degas/runner train-model --help para ver algumas opções de ajuste disponíveis. Isso leva cerca de uma hora e meia em uma GTX 1070. Ele executa apenas cerca de 9 épocas antes de interromper; você poderia potencialmente executá-lo por, digamos, 5 épocas e ainda obter boa precisão com metade do tempo de treinamento: python degas/runner train-model --epochs 5 data/processed

Fazendo previsões

Como este projeto usa o Tensorflow como biblioteca subjacente de deep learning, a maneira recomendada de usá-lo para inferência é usar o Tensorflow Serving.

Você deve conseguir servir o modelo usando:

root@kitploit:~
docker run -p 8501:8501 \
  --mount type=bind,source=models/degas,target=/models/degas\
  -e MODEL_NAME=degas -t tensorflow/serving

Consulte a documentação do Tensorflow Serving para obter mais informações sobre as opções disponíveis.

Sobre o Degas

Por que deep learning para essa tarefa? Porque funciona bem e não é difícil de implementar. De Byu et al, 2018:

"Redes neurais profundas apareceram recentemente na literatura sobre detecção de DGA Woodbridge et al. (2016); Saxe & Berlin (2017); Yu et al. (2017). Elas superam significativamente os métodos tradicionais de machine learning em precisão, ao custo de aumentar a complexidade do treinamento do modelo e exigir conjuntos de dados maiores."

Como há muitos dados disponíveis para treinar, criar um modelo de deep learning é tão fácil ou mais fácil do que as alternativas.

Referências

https://openreview.net/forum?id=BJLmN8xRW&noteId=BJLmN8xRW http://faculty.washington.edu/mdecock/papers/byu2018a.pdf

Por que "Degas"?

  • Porque é mais divertido trabalhar em um projeto com nome, em vez de "DGA-detector" ou algo assim.
  • Talvez nomear o projeto em homenagem a um pintor impressionista o faça parecer mais impressionante?
  • Foi o primeiro resultado do clássico "algoritmo de nomenclatura Samba" ( egrep -i '^d.*g.*a.* /usr/share/dict/words )

Para constar, eu pronuncio "de-gah", como em Edgar Degas, e não "de-gas", como em "remover todo o gás."

Baixar ferramenta