719. DNS 증폭 (위장 IP로 파싱 데이터/TXT 등 다량 요구 패킷 타격)
핵심 인사이트: 우리가 브라우저 창에
naver.com을 치면 나오는 IP 주소는 짧다. 하지만 DNS 서버에는 IP 주소 말고도 이메일 연결 정보(MX), 보안 서명(DNSSEC), 메모(TXT) 등 온갖 텍스트 정보가 백과사전처럼 빵빵하게 담겨있다. 해커가 피해자의 이름으로 DNS 서버에 "네이버 정보 요약본 말고, 네가 가진 네이버 백과사전 싹 다 가져와!(ANY 쿼리)"라고 시키면, 불쌍한 피해자는 거대한 백과사전 패킷에 맞아 압사당한다.
Ⅰ. DNS 증폭 (DNS Amplification) 공격의 뼈대
NTP, Memcached와 함께 전 세계 3대 반사 증폭(DRDoS) 무기로 꼽히는 공격입니다. 마찬가지로 **UDP(포트 53번)**의 허술한 신원 확인(IP 스푸핑 가능)과, 질문 크기 대비 답변 크기가 큰 인터넷 구조를 악용합니다.
Ⅱ. 증폭의 비결: ANY 쿼리와 TXT 레코드 악용 🌟
해커가 던지는 단 하나의 명령어에 답이 있습니다. 단순히 IP(A 레코드)만 물어보는 게 아닙니다.
1. ANY 타입 질의 요청
- 해커는 스푸핑된 피해자 IP를 달고 인터넷에 널려 있는 열린 DNS 서버(Open Resolver)에
naver.com의 정보를 묻는 쿼리를 쏩니다. - 이때 질의 타입(Query Type)을 **
ANY(또는ALL)**로 설정합니다. - 정상적인 IP(A 레코드)만 대답하면 패킷이 수십 바이트로 작지만,
ANY명령을 받은 DNS 서버는 네이버에 등록된 **이메일 주소(MX), 네임서버 목록(NS), IPv6 주소(AAAA), 그리고 길고 긴 문자열인 텍스트 정보(TXT 레코드)**까지 자기가 알고 있는 모든 TMI(Too Much Information)를 다 긁어모아서 대답해 줍니다.
2. DNSSEC 확장 정보에 의한 뻥튀기
- 앞서 705번 문서에서 배운 보안 서명 체계인 DNSSEC이 아이러니하게도 증폭 공격에 날개를 달아주었습니다.
- DNSSEC가 켜진 DNS는 해킹을 막기 위해 수백 바이트짜리 무거운 전자 서명 키 뭉치를 패킷에 덕지덕지 붙여서 답장합니다.
- 증폭률: 결국 60바이트짜리 해커의 쪼맨한
ANY쿼리는 이 모든 정보가 더해져 무려 **4,000~5,000바이트(약 50~100배 증폭)**짜리 초대형 벽돌 패킷으로 뻥튀기되어 피해자에게 반사 타격으로 꽂히게 됩니다.
Ⅲ. 현대의 방어 대책
통신사 백본망이나 DNS 서버 자체를 패치하여 방어합니다.
- Open Resolver 폐쇄 (설정 변경):
- 공격의 숙주가 되는 DNS 서버는 누구나 접속해서 질문할 수 있는 'Open Resolver'입니다.
- 서버 관리자는 DNS 설정(BIND 등)을 뜯어고쳐, **"우리 회사 내부 직원의 IP가 아닌 외부 인터넷의 낯선 놈이 물어보는 쿼리는 아예 대답해 주지 마라(Recursion 제한)"**라고 철저히 차단해야 합니다.
ANY쿼리 필터링 방화벽 제한:- 방화벽 단에서 일반적인 쿼리는 통과시키되, 비정상적으로 거대한 응답을 유발하는
ANY쿼리가 들어오거나, 동일 IP에서TXT레코드만 무친 듯이 반복 요청하면 차단(Rate Limiting)하는 룰을 심어둡니다.
- 방화벽 단에서 일반적인 쿼리는 통과시키되, 비정상적으로 거대한 응답을 유발하는
📢 섹션 요약 비유: 평범한 DNS 요청이 도서관 사서에게 "네이버 책(IP)이 어디 꽂혀 있나요?" 하고 묻고 "3번 책장에 있어요"라는 짧은 대답을 받는 것이라면, DNS 증폭 공격(ANY 쿼리)은 억울한 타겟의 명찰을 단 해커가 도서관 사서에게 "네이버에 관련된 모든 전집, 부록, 백과사전, 영수증(TXT, MX, DNSSEC) 싹 다 수레에 실어서 저 명찰 적힌 집으로 당장 배달해!"라고 시키는 무자비한 묻지마 배송 테러입니다. 타겟의 집은 거대한 백과사전 수레(증폭된 패킷)가 초당 수백 개씩 날아와 현관문(대역폭)이 꽉 막혀버리게 됩니다.