DGA(Domain Generation Algorithm)는 봇넷과 멀웨어가 C&C 서버(Command & Control)와 통신하기 위해 사용하는 고급 은닉 기술입니다. 보안 전문가나 침해 대응팀(Blue Team)에게도 매우 중요한 분석 포인트입니다.
📌 DGA(Domain Generation Algorithm)란?
DGA는 감염된 악성코드(봇)가 특정 알고리즘에 따라 주기적으로 생성되는 도메인들에 접속하여 C&C 서버를 찾는 방식입니다.
※ C&C서버 : C&C는 멀웨어나 봇넷이 작동하는 핵심 컨트롤 센터로, 공격자가 감염된 디바이스를 원격으로 조작하기 위한 지휘 본부
✅ 왜 사용하는가?
- C&C 서버 주소가 하드코딩되어 있으면, 도메인을 차단하거나 폐쇄하면 멀웨어 통신이 끊깁니다.
- 이를 피하기 위해 C&C 도메인을 계속 바꿔가며 접속하려고 만든 것이 DGA입니다.
🧠 DGA 작동 방식 (개념도)
악성코드 내부:
하루에 1000개의 도메인 생성 (ex: ajdka123.com, lskdf098.biz, ...)
→ 해당 도메인에 접속 시도
→ 그 중 1개라도 C&C 서버가 등록되었으면 접속 성공!
→ 명령 수신 및 데이터 탈취 수행
📌 공격자는 그 중 일부 도메인만 실제로 등록해두기 때문에, 탐지와 차단이 매우 어려워집니다.
🛠️ DGA의 주요 유형
유형 | 설명 | 예시 |
---|---|---|
시간 기반(Time-based) | 날짜, 시간 등을 기반으로 도메인 생성 | 20250330abc.com |
랜덤 기반(Randomized) | 난수 생성기 기반으로 도메인 구성 | xj29ql1.com |
사전 기반(Dictionary-based) | 단어 조합을 섞어 생성 | bigcatfast.net |
혼합형(Mixed) | 위 방법을 조합하여 생성 | 다양한 예측불가 도메인 |
ML 기반 | 최근엔 AI/ML로 자연스러운 도메인을 생성 | secure-connect-login.com (정상처럼 보임) |
🔥 유명한 DGA 기반 봇넷 사례
봇넷 | DGA 특징 | 설명 |
---|---|---|
Conficker | 시간 기반 DGA | 하루 250개 도메인 생성 |
Zeus | 사전 기반 DGA | 자연어 조합 도메인 사용 |
Bebloh | 시간 + 랜덤 조합 | 난수 기반 패턴 |
Necurs | 매우 복잡한 DGA 사용 | 광고 사기, 스팸 유포 |
BianLian | 모바일 기반 DGA | 안드로이드 악성코드 |
🔍 탐지 기법
탐지 방법 | 설명 |
---|---|
도메인 패턴 분석 | 비정상적 길이, 문자 조합, TTL 등 |
기계 학습 모델 | 정상/비정상 도메인을 학습하여 분류 |
NXDOMAIN 응답 모니터링 | 감염된 클라이언트는 실패 도메인(NXDOMAIN)에 많이 접속 |
피해지표 기반 차단 (IOC) | 유명한 DGA 패턴 리스트 블랙리스트화 |
💡 실전 예시 (Python 코드)
# 날짜 기반 DGA 예시
import datetime
import hashlib
def generate_domain(date):
seed = date.strftime('%Y%m%d')
h = hashlib.md5(seed.encode()).hexdigest()
return h[:10] + ".com"
today = datetime.date.today()
print(generate_domain(today)) # 예: "e3c5a1b7d2.com"
이와 같은 구조로 하루 수백 개의 도메인을 생성해놓고, 공격자는 단 한 개만 등록해도 통신이 성립됩니다.
🛡️ 방어/대응 전략
- DNS 로그 모니터링 및 머신러닝 기반 도메인 분석
- DGA 도메인 예측 및 사전 등록(도메인 싱크홀링)
- IDS/IPS를 통한 DGA 탐지 룰 적용 (ex: Suricata, Snort)
- 보안 솔루션에서 제공하는 DGA 탐지 기능 활성화
🧠 요약
항목 | 내용 |
---|---|
DGA 목적 | C&C 탐지 우회, 지속적 통신 유지 |
원리 | 알고리즘 기반 도메인 생성 후 접속 시도 |
장점 | 도메인 블랙리스트 무력화 |
탐지법 | 도메인 패턴 분석, NXDOMAIN, ML 탐지 |
대응책 | 싱크홀링, DNS 필터링, 예측/분석 모델 구축 |