[论文解读] NXNSAttack: Recursive DNS Inefficiencies and Vulnerabilities
本文提出NXNSAttack,一种新型DNS漏洞,通过利用递归解析器的低效性,借助无限制的委派响应生成数据包风暴,实现超过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解析中断。
- 提出并评估MaxFetch(k),一种对递归解析器的实用算法增强,可防止不必要的主动获取DNS记录。
- 在真实世界条件下验证MaxFetch(1)的有效性,且不降低解析器吞吐量或延迟。
- 推动对主要DNS提供商和厂商的漏洞负责任披露与修补。
提出的方法
- 该攻击利用递归DNS解析器在接收到委派响应时,即使这些响应并非所查询域名的权威响应,也会主动获取记录的倾向。
- NXNSAttack通过生成大量不存在的域名(NXDomain)响应,其中包含NS记录,诱使解析器发起额外查询。
- 放大效应源于每个委派响应触发多个下游查询,使数据包总量远超初始攻击流量。
- 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 生成,并经人工编辑审核。