[논문 리뷰] NXNSAttack: Recursive DNS Inefficiencies and Vulnerabilities
이 논문은 재귀 레졸버의 비효율성을 악용하여 무제한의 참조 응답을 통해 패킷 폭풍을 일으키는 새로운 DNS 취약성인 NXNSAttack을 소개한다. 이는 1620배 이상의 증폭 요소를 달성한다. 저자들은 불필요한 사전 검색을 방지하는 알고리즘인 MaxFetch(k)를 제안하였으며, 이는 BIND에 구현되어 실제 데이터셋을 통해 검증되었으며, 레졸버 성능에 영향을 주지 않았다.
This paper exposes a new vulnerability and introduces a corresponding attack, the NoneXistent Name Server Attack (NXNSAttack), that disrupts and may paralyze the DNS system, making it difficult or impossible for Internet users to access websites, web e-mail, online video chats, or any other online resource. The NXNSAttack generates a storm of packets between DNS resolvers and DNS authoritative name servers. The storm is produced by the response of resolvers to unrestricted referral response messages of authoritative name servers. The attack is significantly more destructive than NXDomain attacks (e.g., the Mirai attack): i) It reaches an amplification factor of more than 1620x on the number of packets exchanged by the recursive resolver. ii) In addition to the negative cache, the attack also saturates the 'NS' section of the resolver caches. To mitigate the attack impact, we propose an enhancement to the recursive resolver algorithm, MaxFetch(k), that prevents unnecessary proactive fetches. We implemented the MaxFetch(1) mitigation enhancement on a BIND resolver and tested it on real-world DNS query datasets. Our results show that MaxFetch(1) degrades neither the recursive resolver throughput nor its latency. Following the discovery of the attack, a responsible disclosure procedure was carried out, and several DNS vendors and public providers have issued a CVE and patched their systems.
연구 동기 및 목표
- 재귀 레졸버 행동에서 기인하는 이전에 알려지지 않은 DNS 시스템 내의 취약성을 식별하고 분석하는 것.
- 공인 이름 서버에서 무제한 참조 응답이 발생할 경우 대규모 패킷 폭풍이 유발되어 DNS 해석이 방해될 수 있음을 보여주는 것.
- 불필요한 사전 DNS 레코드 검색을 방지하는 실용적인 알고리즘적 개선인 MaxFetch(k)를 제안하고 평가하는 것.
- MaxFetch(1)의 효과성을 실제 환경 조건에서 검증하여 레졸버의 처리량이나 지연 시간에 영향을 주지 않는 것.
- 주요 DNS 제공업체 및 벤더들 사이에서 책임감 있는 공개 및 패치 적용을 촉진하는 것.
제안 방법
- 이 공격은 재귀 레졸버가 쿼리된 도메인의 공인 서버가 아니더라도 참조 응답에 대해 사전에 레코드를 검색하는 경향이 있음을 악용한다.
- NXNSAttack은 NS 레코드를 포함한 존재하지 않는 도메인(NXDomain) 응답의 폭주를 생성하여 레졸버가 추가 쿼리를 시작하도록 속이는 방식이다.
- 증폭 효과는 각 참조 응답이 다운스트림 쿼리를 여러 번 유발함으로써 초기 공격 트래픽을 초월해 패킷 수량이 급격히 증가함에 따라 발생한다.
- MaxFetch(k) 알고리즘은 쿼리당 최대 k개의 사전 검색을 제한하며, MaxFetch(1)은 제안된 프로덕션 수준의 강화된 버전이다.
- 이 보안 조치는 BIND 레졸버에 구현되었으며, 실제 DNS 쿼리 데이터셋을 사용하여 성능 영향을 측정하기 위해 평가되었다.
- 평가 결과, MaxFetch(1)은 패킷 폭풍을 방지하면서도 실제 환경과 유사한 조건에서 낮은 지연 시간과 높은 처리량을 유지함을 확인하였다.
실험 결과
연구 질문
- RQ1어떻게 보기에 정당한 참조 응답을 통해 재귀 DNS 레졸버가 대규모 패킷 증폭을 유도할 수 있는가?
- RQ2재귀 레졸버의 비효율성으로 인해 DNS 해석 과정에서 달성 가능한 최대 증폭 요소는 얼마인가?
- RQ3기존의 DNS 캐싱 메커니즘, 특히 음성 캐싱과 NS 섹션 캐싱은 이러한 공격에 기여하거나 완화하는 데 어느 정도 기여하는가?
- RQ4재귀 레졸버 로직에 경량 알고리즘 변경을 가하면 성능 저하 없이 공격을 방지할 수 있는가?
- RQ5MaxFetch(1)은 실제 DNS 트래픽 워크로드에서 얼마나 효과적인가? 그리고 레졸버의 처리량과 지연 시간을 유지하는가?
주요 결과
- NXNSAttack은 패킷 볼륨에서 1620배를 초월하는 증폭 요소를 달성하여 기존의 NXDomain 공격보다 훨씬 높은 수준이다.
- 이 공격은 음성 캐시와 레졸버 캐시의 NS 섹션을 모두 포화시켜 자원 고갈과 서비스 장애를 유발한다.
- MaxFetch(1) 보안 조치 알고리즘은 실제 세계의 DNS 데이터셋에서 패킷 폭풍을 방지하면서도 측정 가능한 지연 시간 증가 없이 처리량을 유지한다.
- 이 공격은 책임감 있는 공개를 통해 이루어졌으며, 여러 DNS 벤더와 공용 DNS 제공업체에서 CVE 할당 및 패치가 적용되었다.
- 연구 결과, 스푸핑이나 위조 패킷 없이도 재귀 레졸버의 설계 결함이 대규모로 악용될 수 있음을 입증하였다.
- 결과적으로, 레졸버 수준에서의 알고리즘적 강화가 프로토콜 수준의 증폭 공격에 효과적이고 효율적인 방어 수단임을 입증하였다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.