中文

ResolverFuzz:基于查询-响应模糊测试的 DNS 解析器漏洞自动化发现

密码学与安全 2023-10-06 v1 网络与互联网体系结构 软件工程

摘要

域名系统(DNS)是互联网的关键组件。DNS 解析器作为 DNS 客户端与 DNS 名称服务器之间的缓存,是 DNS 基础设施的核心部分,对 DNS 的可扩展性至关重要。然而,发现解析器漏洞并非易事,且现有工具未能很好地解决该问题。列举几点原因:首先,大多数已知的解析器漏洞为非崩溃型缺陷,无法被现有预言机(或消毒剂)直接检测。其次,缺乏可用于将测试用例归类为解析器漏洞的严格规范。第三,DNS 解析器具有状态性,而由于输入空间庞大,有状态模糊测试仍具挑战性。本文提出一种称为 ResolverFuzz 的新型模糊测试系统,以针对上述与 DNS 解析器相关的挑战,并开发了一系列新技术。首先,ResolverFuzz 通过聚焦于短查询-响应序列来执行约束性有状态模糊测试,基于我们对已公开 DNS CVE 的研究,这已被证明是发现解析器漏洞最有效的方式。其次,为生成更可能触发解析器漏洞的测试用例,我们将基于概率上下文无关文法(PCFG)的输入生成与字节级变异相结合,同时用于查询与响应。第三,我们利用差分测试与聚类来识别如缓存投毒漏洞等非崩溃型缺陷。我们在 4 种解析器模式下对 6 款主流 DNS 软件评估了 ResolverFuzz。总体而言,我们识别出 23 个可导致缓存投毒、资源消耗及崩溃攻击的漏洞。在负责任披露后,其中 19 个已被确认或修复,并分配了 15 个 CVE 编号。

关键词

引用

@article{arxiv.2310.03202,
  title  = {ResolverFuzz: Automated Discovery of DNS Resolver Vulnerabilities with Query-Response Fuzzing},
  author = {Qifan Zhang and Xuesong Bai and Xiang Li and Haixin Duan and Qi Li and Zhou Li},
  journal= {arXiv preprint arXiv:2310.03202},
  year   = {2023}
}

备注

Extended version. Accepted by USENIX Security 2024