烈火灼冰 - 论文翻译
type: channel
link: https://www.4c43.work/index.php/tag/%E8%AE%BA%E6%96%87%E7%BF%BB%E8%AF%91/
items: 【USTCStudy】网络安全协议大作业：论文翻译——DNS Cache Poisoning Attack Reloaded: Revolutions with Side Channels

【USTCStudy】网络安全协议大作业：论文翻译——DNS Cache Poisoning Attack Reloaded: Revolutions with Side Channels
type: item
date: 2022-05-13T12:50:00+08:00
description: DNS Cache Poisoning Attack Reloaded: Revolutions with Side Channels 标题：重载DNS缓存投毒攻击：侧信道革命 作者：Keyu Man、Zhiyun Qian、Zhongjie Wang、Xiaofeng Zheng、Youjun Huang、Haixin Duan 网页：SAD DNS 全文翻译 摘要 在本文中，我们报告了软件栈中的一系列缺陷，这些缺陷导致了DNS缓存投毒攻击的复兴。DNS缓存投毒攻击是一种可以在实践中通过简单而有效的基于随机化的防御措施，如随机化的源端口来缓解的攻击方式。 为了成功污染典型服务器上的DNS缓存，非中间人的攻击者需要同时发送2^{32}个欺骗性的响应，猜测正确的源端口（16位）和事务ID（16位），这是不切实际的数量。 令人惊讶的是，我们发现了一些弱点，允许对手通过先猜测源端口，然后猜测事务ID来“分割和征服”空间，导致只需要发送 2^{16}+2^{16} 个欺骗性的响应。 更糟糕的是，我们展示了对手扩展攻击窗口的一些方法，这极大地提高了成功的几率。 该攻击影响到DNS基础设施中的所有缓存层，如DNS转发器和解析器缓存，以及广泛的DNS软件栈，包括最流行的BIND、Unbound和dnsmasq，运行在Linux和潜在的其他操作系统之上。 受害者受到攻击的主要条件是，操作系统及其网络被配置为允许ICMP错误回复。 从我们的度量结果来看，我们发现互联网上超过34%的开放式解析器存在漏洞（特别是85%的流行DNS服务，包括谷歌的8.8.8.8）。 此外，我们在受控实验和生产性DNS解析器（有授权）中，针对各种可能影响攻击成功的服务器配置和网络条件，用积极的结果全面验证了所提出的攻击。 关键词 DNS缓存投毒，侧信道，非中间人攻击，ICMP速率限制 1 介绍 域名系统（DNS）是互联网的一个重要部分，最初是为了将人类可读的名字翻译/转换成IP地址。 如今，DNS也已经被许多其他的安全关键应用所淹没，如反垃圾邮件防御，路由安全（如RPKI）。 此外，DNS在引导TLS的信任方面也起着关键作用。现在，TLS证书通常通过证明一个域名的所有权来获得。因此，对DNS记录的完整性作出承诺可能导致灾难性的安全故障，包括签发欺诈性证书，从而破坏公钥密码的基础。 从历史上看，第一个被广泛宣传的DNS缓存投毒攻击是由Kaminsky在2008年发现的，他证明了非中间人的攻击者可以注入欺骗性的DNS响应并让它们被DNS解析器缓存。 这导致了许多DNS防御措施被广泛部署，包括源端口随机化和“生日保护”。 其他防御措施，如0x20编码和DNSSEC也获得了一些吸引力。不幸的是，由于缺乏激励和兼容性等原因，这两种防御措施远没有被广泛部署，正如最近的研究报告所述。 总而言之，源端口随机化成为成功发起DNS缓存投毒攻击需要克服的最重要障碍。事实上，在过去，已经有先前的攻击试图取消DNS请求的源端口随机化。 到目前为止，它们只被认为是不错的概念性攻击，但不是很实用。具体来说，要求攻击者轰炸源端口并使套接字接收缓冲区过载，这不仅是缓慢和不切实际的（不太可能及时成功），而且只能在有严格RTT要求的本地环境中才能实现。在中，假定解析器位于允许其外部源端口被去随机化的NAT后面，但是这种情况不适用于拥有公共IP的解析器。 相比之下，我们发现的漏洞既严重得多，又普遍适用于广泛的场景和情况。具体来说，我们能够对现代DNS基础设施中普遍存在的所有层次的缓存发起攻击，包括应用层DNS缓存（如浏览器中）、操作系统范围内的缓存、DNS转发器缓存（如家用路由器中），以及最广泛被针对的DNS解析器缓存。 这些漏洞还影响到几乎所有流行的DNS软件栈，包括BIND、Unbound和dnsmasq，这些软件运行在Linux和潜在的其他操作系统之上，主要的要求是允许受害者的操作系统产生传出的ICMP错误信息。有趣的是，这些漏洞是由UDP标准的设计缺陷或微妙的实现细节造成的，基于ICMP错误信息的全局速率限制这一共享资源的侧信道允许攻击者很稳妥的完成源端口的去随机化。 为了证明这种影响，我们设计了针对两个主要场景的攻击方法，包括运行在家用路由器上的DNS转发器，以及运行BIND/Unbound的DNS解析器。在获得授权的基础上，我们还对每天为7000万用户提供查询服务的生产环境DNS解析器进行了攻击测试，克服了一些实际的挑战，如干扰、必须等待缓存超时/过期、在解析器前端IP后面的多个后端服务器IP，以及多个权威域名服务器。在我们的压力测试中，我们还在更具挑战性的网络条件下评估了该攻击，并报告了积极的结果。 在本文中，我们做出了以下贡献。 我们系统地分析了应用程序和操作系统级别的表现之间的相互作用，从…