Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
degas — 딥러닝 모델 기반 DGA 생성 도메인 탐지 | Kitploit
도구/GitHubGitHub/matthoffman/degas
Threat IntelligenceMachine LearningPapers & ResearchLearning & EducationDNS AnalysisAnomaly Detection
GitHubmatthoffman/degas

degas

딥러닝 모델 기반 DGA 생성 도메인 탐지

저장소 보기
2377년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Degas

딥러닝 모델을 사용한 DGA 생성 도메인 탐지

에드거 드가, "네 명의 무용수"

실행

저는 현재 개발에 Conda(Anaconda/Miniconda)를 사용하고 있지만, 포함된 requirements.txt를 사용하면 Pipenv나 virtualenv도 사용할 수 있을 것입니다.

conda:

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

Pipenv:

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

Virtualenv도 비슷하지만, 이제 Pipenv 대신 virtualenv를 사용할 이유는 정말로 없습니다.

모델 재훈련

models 디렉토리에 훈련된 모델이 체크인되어 있습니다. 직접 훈련하려면 먼저 S3에서 훈련 데이터를 다운로드해야 합니다:

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

모델 빌더가 기대하는 간단한 CSV 형식으로 데이터를 처리합니다:

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

이 단계들은 훈련 데이터를 변경하지 않는 한 한 번만 실행하면 됩니다.

그런 다음 생성된 데이터셋으로 모델을 재훈련하려면, 먼저 선택한 패키지 관리자로 tensorflow-gpu를 설치하여(conda install tensorflow-gpu 또는 pip install tensorflow-gpu) 훈련이 GPU 가속으로 이루어지도록 하세요.

그런 다음 실행합니다:

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

사용 가능한 튜닝 옵션을 보려면 python degas/runner train-model --help를 실행하세요. GTX 1070에서 약 1시간 30분이 걸립니다. 약 9 에포크를 실행한 후 조기 종료됩니다. 예를 들어 5 에포크만 실행해도 훈련 시간을 절반으로 줄이면서 좋은 정확도를 얻을 수 있습니다: python degas/runner train-model --epochs 5 data/processed

예측하기

이 프로젝트는 기본 딥러닝 라이브러리로 Tensorflow를 사용하므로, 추론(inference)에 이 프로젝트를 사용하는 권장 방법은 Tensorflow Serving을 사용하는 것입니다.

다음과 같이 서빙할 수 있습니다:

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

사용 가능한 옵션에 대한 자세한 내용은 Tensorflow Serving 문서를 참조하세요.

Degas 소개

이 작업에 딥러닝을 사용하는 이유는 무엇일까요? 잘 작동하고 구현도 어렵지 않기 때문입니다. Byu et al, 2018에서:

"심층 신경망은 최근 DGA 탐지에 관한 문헌(Woodbridge et al., 2016; Saxe & Berlin, 2017; Yu et al., 2017)에 등장했습니다. 이는 모델 훈련의 복잡성을 높이고 더 큰 데이터셋을 요구하는 대가로, 정확도에서 기존 머신러닝 방법을 크게 능가합니다."

훈련에 사용할 수 있는 데이터가 충분하므로, 딥러닝 모델을 만드는 것은 대안들만큼 쉽거나 더 쉽습니다.

참고 자료

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

왜 "Degas"인가?

  • 이름이 있는 프로젝트를 작업하는 것이 "DGA-detector" 같은 것보다 더 재미있기 때문입니다.
  • 인상파 화가의 이름을 프로젝트에 붙이면 더 인상적으로 들릴까요?
  • 고전적인 "Samba 네이밍 알고리즘"( egrep -i '^d.*g.*a.* /usr/share/dict/words )의 첫 번째 결과였기 때문입니다.

참고로 저는 이 이름을 Edgar Degas에서처럼 "de-gah"로 발음합니다. "모든 기체를 제거하다"라는 뜻의 "de-gas"가 아니라요.

도구 다운로드