DNS 증폭 공격은 공격자가 스푸핑된 작은 DNS 쿼리를 개방형 DNS 서버로 전송하여 서버가 의심하지 않는 피해자에게 엄청나게 큰 응답을 반환하도록 하는 분산 서비스 거부(DDoS) 공격의 한 유형입니다. 즉, 작은 요청이 엄청난 응답을 트리거하여 표적에 압도적인 트래픽을 넘치게 하는 것입니다. 최소한의 공격자 리소스만 필요하고, IP 스푸핑으로 인해 추적이 매우 어렵고, 원래 전송된 트래픽보다 수백 배 많은 트래픽을 생성하여 기업, ISP 및 중요한 온라인 서비스에 대규모 중단을 초래할 수 있기 때문에 위험합니다.
DNS 증폭 및 반사형 DDoS 공격에 대한 이해
DNS 증폭 공격의 핵심은 도메인 이름 시스템의 오랜 특성 두 가지에 의존합니다: DNS는 기본적으로 UDP를 사용하며 UDP는 소스 IP 주소의 유효성을 검사하지 않습니다. 공격자가 피해자의 IP를 DNS 요청의 출처로 위조하면 응답하는 모든 DNS 서버는 자신도 모르게 피해자에게 응답을 폭파시킵니다.
따라서 DNS 서버는 이상적인 "반사경"이 됩니다. 공격자는 피해자에게 직접 연락할 필요가 없습니다. 대신 개방형 확인자와 잘못 구성된 DNS 서버가 트래픽 대포가 됩니다. DNS 응답, 특히 ANY 또는 DNSSEC 관련 응답에 초기 쿼리보다 훨씬 많은 데이터가 포함되어 있으면 공격자는 증폭 효과를 얻어 거의 추가 노력 없이도 영향력을 배가시킬 수 있습니다.

DNS 증폭의 작동 방식: 기술 가이드
이 공격은 개념적으로는 간단하지만 트래픽 메커니즘은 악의적인 방식으로 정교합니다. 일반적인 공격은 4단계로 진행됩니다:
- 공격자가 피해자의 IP 주소를 스푸핑합니다.
- 공격자는 수천(또는 수백만) 개의 DNS 쿼리를 개방형 DNS 확인자에게 보냅니다.
- 이러한 확인자는 스푸핑된 주소에 대해 대용량 DNS 응답을 반환합니다.
- 원치 않는 데이터의 홍수는 피해자를 압도합니다.
일반적인 위조 요청은 패킷 수준에서 다음과 같이 보일 수 있습니다:
yaml
소스 IP: 피해자 IP(스푸핑)
대상 IP: 8.8.8.8
프로토콜: UDP/53
쿼리 유형: ANY
쿼리: example.com
공격자는 60바이트의 요청만 보낼 수 있지만 DNS 확인자는 고급 형태의 증폭을 통해 수 킬로바이트, 때로는 수만 바이트의 데이터를 반환할 수도 있습니다.
공격자는 거의 아무것도 투자하지 않지만 피해자는 그 대가를 지불하는 비대칭적인 교환이 진짜 위험입니다.
증폭 요인: "작은 입력, 큰 출력"이 치명적인 이유
DNS 쿼리 유형에 따라 증폭 수준도 달라집니다. 그 차이는 엄청날 수 있습니다:
| 쿼리 유형 | 요청 크기 | 응답 크기 | 증폭 계수 |
|---|---|---|---|
| 기록 | 60바이트 | 512바이트 | ~8.5x |
| ANY | 60바이트 | 3,500바이트 | ~58x |
| DNSSEC | 70 바이트 | 4,000바이트 이상 | ~57x |
| NXNSAttack | 60바이트 | 40,000바이트 이상 | 600x+ |
봇넷이 특히 위협적인 이유는 규모 때문입니다. 100Mbps와 같이 낮은 대역폭만 사용하는 봇넷은 증폭하는 동안 수 Gbps의 아웃바운드 DNS 응답 트래픽을 생성할 수 있습니다. Cloudflare와 CISA는 DNS 증폭만으로 수백 Gbps를 초과하는 여러 건의 실제 DDoS 공격을 문서화했습니다.
통제된 실험실에서 DNS 증폭 공격 시뮬레이션하기
공격자의 작동 방식을 이해하기 위해 연구자와 모의 침투 테스터는 종종 법적으로 승인된 격리된 환경에서 DNS 증폭을 시뮬레이션합니다. Python과 Scapy를 사용한 간단한 개념 증명은 증폭을 트리거하는 것이 얼마나 쉬운지 보여줍니다:
python
scapy.all에서 가져오기 *
대상 = "192.168.1.10" # 피해자(스푸핑된 IP)
dns_서버 = "192.168.1.53" # 오픈 DNS 확인자
packet = IP(src=target, dst=dns_server)/UDP(dport=53)/DNS(rd=1, qd=DNSQR(qname="example.com", qtype="ANY"))
FOR I IN RANGE(1000):
보내기(패킷, 버버스=0)
print("DNS 증폭 시뮬레이션 전송.")
이 스크립트는 두 가지 가혹한 현실을 강조합니다:
- 공격자는 피해자에게 직접 연락하지 않습니다.
- DNS 서버는 원치 않는 공범이 됩니다.
- 최소한의 대역폭으로도 엄청난 효과를 낼 수 있습니다.
이는 공격이 얼마나 비대칭적인지 보여주는 생생한 예시입니다.
DNS 증폭이 현대 조직에 위험한 이유
이러한 위험은 트래픽 급증을 훨씬 뛰어넘습니다. DNS 증폭은 시스템 전체에 영향을 미칩니다:
- 공격자를 위한 저렴한 비용: 고대역폭 인프라가 필요하지 않습니다.
- 어려운 어트리뷰션: IP 스푸핑은 공격자의 신원을 모호하게 합니다.
- 글로벌 공격 표면: 수백만 개의 오픈 리졸버가 여전히 노출되어 있습니다.
- 부수적 피해: DNS 제공업체, CDN, 클라우드 플랫폼, ISP는 다운스트림 중단을 겪습니다.
대규모 증폭 공격이 발생하는 동안 조직은 종종 보고를 합니다:
| Metric | 일반 트래픽 | 공격 중 |
|---|---|---|
| DNS QPS | 1,200 | 480,000 |
| 아웃바운드 Mbps | 40Mbps | 2.9Gbps |
| 모든 쿼리 비율 | <1% | 86% |
| 상위 소스 IP | 예측 가능 | 스푸핑/랜덤화 |
잘 설계된 네트워크도 이 정도 규모에서는 무너질 수 있습니다.
DNS 증폭을 조기에 감지하기: 로그, 규칙 및 트래픽 패턴
트래픽이 "합법적인" 것처럼 보이기 때문에(DNS 쿼리에 대한 DNS 응답) 기존 방화벽은 증폭 공격을 놓치는 경우가 많습니다. 탐지를 위해서는 행동 기반 모니터링이 필요합니다.
수리카타 탐지 규칙
이 규칙은 모든 쿼리에서 의심스러운 급증에 플래그를 지정합니다:
yaml
알림 DNS 임의 임의 -> 임의 임의 (
메시지:"DNS 증폭 공격 가능성";
dns_query_type == ANY;
임계값:모두 입력, 추적_by_src, 카운트 50, 초 1;
sid:100001;
)
SQL을 사용한 DNS 로그 분석
SIEM은 이상 징후를 즉시 발견할 수 있습니다:
sql
SELECT source_ip, COUNT(*) as 쿼리
FROM dns_logs
WHERE query_type = 'ANY'
GROUP BY source_ip
카운트(*)가 5000을 초과합니다;
모든 쿼리의 갑작스러운 급증은 종종 본격적인 공격의 서막을 알리는 신호탄입니다.

DNS 증폭 방어하기: 실용적이고 실행 가능한 기술
일부 DDoS 변종과 달리 DNS 증폭은 적절한 설정을 통해 크게 완화할 수 있습니다.
BIND에서 오픈 재귀 비활성화
바인드
옵션 {
재귀 번호;
허용-쿼리 { trusted; };
};
acl "trusted" {
192.168.1.0/24;
};
재귀를 제한하면 공용 인터넷에서 DNS 서버를 악용할 수 없습니다.
응답률 제한(RRL) 활성화
바인드
rate-limit {
초당 응답 수 5;
창 5;
슬립 2;
};
RRL은 반복적인 응답을 조절하고 증폭 가능성을 크게 줄입니다.
iptables를 통한 IP 스푸핑 방지(BCP 38) 구현
bash
iptables -A INPUT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -s 192.168.0.0/16 -j DROP
이렇게 하면 가장 일반적인 스푸핑 벡터 중 하나인 위조된 개인 주소 범위가 네트워크에 유입되는 것을 방지할 수 있습니다.
ANY 및 DNSSEC 비율 모니터링
모든 쿼리가 급증하는 것은 결코 긍정적이지 않습니다.
펜리전트를 통한 모의 침투 테스트 및 자동화된 검증
수동 감사는 매우 중요하지만, 오늘날의 DNS 인프라는 너무 크고 동적이어서 한 번 테스트하고 잊어버리기에는 너무 큽니다. 사소한 구성이라도 잘못 구성하면 증폭 위험이 다시 발생할 수 있습니다.
다음과 같은 플랫폼이 여기에 해당합니다. 펜리전트지능형 자동화된 모의 침투 테스트 시스템은 의미 있는 가치를 제공합니다:
DNS 잘못된 구성 검사
펜리전트는 자동으로 식별할 수 있습니다:
- 공개적으로 노출된 오픈 리졸버
- 누락되거나 잘못 구성된 RRL
- DNSSEC 증폭 위험
- 남용을 허용하는 재귀 정책
미래의 위협: NXNSAttack에서 리플렉터 회전까지
최근 연구에 따르면 공격자들은 기존의 증폭 기법을 넘어선 새로운 기법을 사용하고 있다는 불안한 추세를 보이고 있습니다. NXNSAttack과 같은 기술은 추천 체인을 악용하여 극단적인 증폭을 생성하고, '리플렉터 로테이션'은 대규모 DNS 서버 풀을 사용하여 필터링과 블랙리스트를 피합니다.
요약하자면, 증폭은 진화하고 있으며 방어자들도 이에 맞춰 진화해야 한다는 것입니다.
결론
DNS 증폭 공격은 무고한 표적에 대해 합법적인 인프라를 무기화하기 때문에 가장 효율적이고 파괴적인 형태의 DDoS 중 하나입니다. DNS 서버를 증폭기로 바꾸고, 작은 쿼리를 대규모 플러드로 변환하며, 위조된 IP 주소 뒤에 공격자를 숨깁니다. 적은 노력과 높은 영향력, 글로벌 확장성이 결합된 이 공격은 현대의 조직이 무시할 수 없는 위협입니다.
다행히도 오픈 재귀 비활성화, RRL 사용, 스푸핑 방지 적용, 트래픽 이상 모니터링, 정기적인 DNS 포스처 테스트 등 적절한 구성을 통해 조직은 노출을 크게 줄일 수 있습니다. DNS 규모가 크거나 지속적으로 변화하는 환경의 경우 Penligent와 같은 자동화된 플랫폼을 사용하면 취약점이 눈에 띄지 않게 다시 나타나지 않도록 할 수 있습니다.
가동 시간, 가용성, 신뢰가 비즈니스 성공을 정의하는 세상에서 DNS 보안은 선택 사항이 아니라 기본입니다.
