Skip to main content
QUICK REVIEW

[논문 리뷰] ResolverFuzz: Automated Discovery of DNS Resolver Vulnerabilities with Query-Response Fuzzing

Qifan Zhang, Xuesong Bai|arXiv (Cornell University)|2023. 10. 04.
Software Testing and Debugging TechniquesComputer Science인용 수 3
한 줄 요약

ResolverFuzz는 확률적 문맥 자유 문법(PCFG)과 바이트 수준의 변형을 사용한 제약된 상태 기반 쿼리-응답 변형을 통해 DNS 라우터 취약점을 자동으로 탐지하는 블랙박스 퍼지 프레임워크이다. 차별 테스팅과 클러스터링을 통해 캐시 오염 등의 크래시가 발생하지 않는 버그를 탐지하여 주요 DNS 소프트웨어에서 총 23개의 취약점—중요한 15개는 CVE에 할당됨—을 발견하였다.

ABSTRACT

Domain Name System (DNS) is a critical component of the Internet. DNS resolvers, which act as the cache between DNS clients and DNS nameservers, are the central piece of the DNS infrastructure, essential to the scalability of DNS. However, finding the resolver vulnerabilities is non-trivial, and this problem is not well addressed by the existing tools. To list a few reasons, first, most of the known resolver vulnerabilities are non-crash bugs that cannot be directly detected by the existing oracles (or sanitizers). Second, there lacks rigorous specifications to be used as references to classify a test case as a resolver bug. Third, DNS resolvers are stateful, and stateful fuzzing is still challenging due to the large input space. In this paper, we present a new fuzzing system termed ResolverFuzz to address the aforementioned challenges related to DNS resolvers, with a suite of new techniques being developed. First, ResolverFuzz performs constrained stateful fuzzing by focusing on the short query-response sequence, which has been demonstrated as the most effective way to find resolver bugs, based on our study of the published DNS CVEs. Second, to generate test cases that are more likely to trigger resolver bugs, we combine probabilistic context-free grammar (PCFG) based input generation with byte-level mutation for both queries and responses. Third, we leverage differential testing and clustering to identify non-crash bugs like cache poisoning bugs. We evaluated ResolverFuzz against 6 mainstream DNS software under 4 resolver modes. Overall, we identify 23 vulnerabilities that can result in cache poisoning, resource consumption, and crash attacks. After responsible disclosure, 19 of them have been confirmed or fixed, and 15 CVE numbers have been assigned.

연구 동기 및 목표

  • 기존의 퍼지 테스팅 오라클이 감지하지 못하는 비크래시, 의미론적 버그를 탐지하는 데 도전한다.
  • 특히 캐시 오염 및 자원 고갈 취약점에 대해 엄밀한 사양이 부족한 DNS 라우터 동작에 대한 문제를 해결한다.
  • 기존에 알려진 라우터 취약점을 유발하는 데 가장 효과적인 짧은 쿼리-응답 시퀀스에 집중함으로써 효과적인 상태 기반 퍼지 테스팅을 가능하게 한다.
  • 이중화 K-means를 사용한 테스트 케이스 클러스터링을 통해 불일치하는 동작에 대한 수동 분류 작업을 줄인다.
  • 로컬라이즈된 네임서버 계층을 국소화하고 동시에 여러 라우터 테스팅을 가능하게 하는 확장성 있고 생산 환경에 안전한 테스트 인프라를 구축한다.

제안 방법

  • 실증적 증거에 기반해, 가장 알려진 라우터 취약점을 유발하는 데 효과적인 제약된 상태 기반 퍼지 테스팅을 수행하며, 단일 쿼리-응답 쌍만 변형한다.
  • 구문적으로 유효한 DNS 메시지 생성을 위해 확률적 문맥 자유 문법(PCFG)을 사용하고, 바이트 수준의 변형을 조합하여 입력 다양성과 커버리지를 높인다.
  • 여러 라우터 구현체 간의 차별 테스팅을 통해 캐시 오염 또는 자원 고갈 취약점을 시사하는 불일치하는 동작을 탐지한다.
  • 새로운 이분화 K-means 클러스터링 기법을 사용해 불일치하는 테스트 케이스를 그룹화하여 수동 조사 작업을 크게 줄인다.
  • 공개 DNS 라우터에 영향을 주지 않도록 DNS 네임서버 계층을 모의하는 로컬이고 고립된 테스트 인프라를 도입한다.
  • 코드 인strumentation이나 바이너리 리라이팅 없이도 블랙박스 테스팅이 가능한 경량 모니터링 도구(예: tcpdump, 캐시 덤프)를 활용한다.

실험 결과

연구 질문

  • RQ1짧은 쿼리-응답 시퀀스에 제약된 상태 기반 퍼지 테스팅이 알려진 DNS 라우터 취약점의 대부분을 효과적으로 유발할 수 있는가?
  • RQ2문법 기반 및 변형 기반 입력 생성 방식은 DNS 라우터의 의미론적 버그 탐지에 어떻게 기여하는가?
  • RQ3차별 테스팅과 클러스터링은 불일치하는 라우터 동작에 대한 수동 조사에 소요되는 노력의 어느 정도를 줄일 수 있는가?
  • RQ4블랙박스 퍼지 테스팅 프레임워크는 실제 운영 환경에서 사용되는 DNS 소프트웨어에서 크래시가 발생하지 않는 취약점(예: 캐시 오염, 자원 고갈)을 탐지할 수 있는가?
  • RQ5제안된 인프라는 고처리량, 안전하고 확장 가능한 여러 라우터 모드의 퍼지 테스팅을 얼마나 효과적으로 지원하는가?

주요 결과

  • ResolverFuzz는 4개의 라우터 모드(단순 재귀, 단순 포워딩, CDNS(후계 없음 포함/포함))에서 작동하는 6종의 주요 DNS 소프트웨어에 대해 총 23개의 알려지지 않은 취약점을 발견하였다.
  • 이 중 19개의 취약점은 책임감 있는 공개 이후 확인되거나 수정되었으며, 15개는 CVE 식별자가 할당되었다.
  • 한 가지 심각한 취약점($CP1$)은 밸리윅 검사를 완전히 우회할 수 있게 하여, TLD 영역(예: .com 도메인)의 어떤 도메인이라도 경로 외부에서 캐시 오염이 가능하게 한다.
  • 테스트 생성기의 경우 PCFG와 바이트 수준의 변형이 효과적인 변형 다양성을 크게 높여, 유효한 DNS 메시지 구조에 대해 강력한 커버리지를 확보하였다.
  • 차별 테스팅은 23개의 불일치하는 동작을 성공적으로 탐지하였고, 클러스터링을 통해 의미적으로 유사한 극단적 케이스를 그룹화하여 조사 작업을 크게 줄였다.
  • 로컬 테스트 인프라는 공개 DNS 서비스에 영향을 주지 않으면서도 여러 라우터를 동시에 테스트할 수 있도록 하여 고처리량 퍼지 테스팅을 지원하였다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.