Skip to main content
QUICK REVIEW

[论文解读] Injection Attacks Reloaded: Tunnelling Malicious Payloads over DNS

Philipp Jeitner, Haya Shulman|arXiv (Cornell University)|May 11, 2022
Web Application Security Vulnerabilities参考文献 30被引用 10
一句话总结

本文揭示了由于DNS设计原则中的透明性,导致其存在一个关键的安全漏洞:攻击者可将恶意负载编码进DNS记录,并利用其发起注入攻击——如DNS缓存投毒和远程代码执行——针对应用程序和服务。作者证明超过96%的公开DNS解析器存在漏洞,且此类攻击可绕过传统防护机制,如DNSSEC和输入净化。

ABSTRACT

The traditional design principle for Internet protocols indicates: "Be strict when sending and tolerant when receiving" [RFC1958], and DNS is no exception to this. The transparency of DNS in handling the DNS records, also standardised specifically for DNS [RFC3597], is one of the key features that made it such a popular platform facilitating a constantly increasing number of new applications. An application simply creates a new DNS record and can instantly start distributing it over DNS without requiring any changes to the DNS servers and platforms. Our Internet wide study confirms that more than 1.3M (96% of tested) open DNS resolvers are standard compliant and treat DNS records transparently. In this work we show that this `transparency' introduces a severe vulnerability in the Internet: we demonstrate a new method to launch string injection attacks by encoding malicious payloads into DNS records. We show how to weaponise such DNS records to attack popular applications. For instance, we apply string injection to launch a new type of DNS cache poisoning attack, which we evaluated against a population of open resolvers and found 105K to be vulnerable. Such cache poisoning cannot be prevented with common setups of DNSSEC. Our attacks apply to internal as well as to public services, for instance, we reveal that all eduroam services are vulnerable to our injection attacks, allowing us to launch exploits ranging from unauthorised access to eduroam networks to resource starvation. Depending on the application, our attacks cause system crashes, data corruption and leakage, degradation of security, and can introduce remote code execution and arbitrary errors. In our evaluation of the attacks in the Internet we find that all the standard compliant open DNS resolvers we tested allow our injection attacks against applications and users on their networks.

研究动机与目标

  • 调查DNS对DNS记录的透明处理方式所带来的安全影响,即在未验证的情况下保留不受信任的数据。
  • 识别应用程序在消费DNS数据时缺乏输入验证,从而导致新型注入攻击类别的产生。
  • 评估现有防御措施(如DNSSEC、DNS over HTTPS和DNS over TLS)对这些新发现攻击向量的有效性。
  • 证明即使经过良好保护的系统(包括eduroam和LDAP)在依赖未经验证的DNS输入时,也易受此类攻击。
  • 倡导在应用层对DNS数据进行验证,挑战‘下层协议(如DNS)应负责所有数据完整性检查’的假设。

提出的方法

  • 作者设计了带有编码负载的恶意DNS记录,利用下游应用程序在字符串解析上的缺陷。
  • 对300万个公开DNS解析器进行了大规模互联网测量,确认96%在未修改的情况下保留了DNS记录内容。
  • 攻击模型通过社会工程手段(如电子邮件、广告网络)诱骗解析器缓存恶意记录,随后将这些记录传递给受害应用程序。
  • 研究人员在真实系统上实现并测试了注入攻击,包括DNS缓存投毒、XSS和LDAP注入,使用精心构造的DNS响应。
  • 评估了DNSSEC、DoT、DoH及其他防御机制的韧性,表明它们无法阻止此类攻击,原因在于缺乏应用层验证。
  • 研究包括对威胁模型的分析,将本攻击与DNS重绑定及传统Web注入攻击进行比较,突出其在传递机制和影响范围上的关键差异。

实验结果

研究问题

  • RQ1DNS在处理记录时的透明性在多大程度上为新型注入攻击面提供了可能?
  • RQ2为何即使具备加密和传输层保护机制,现有防御措施(如DNSSEC、DoT和DoH)仍无法防止这些注入攻击?
  • RQ3这些漏洞在真实DNS基础设施中(尤其是公开解析器中)的普遍程度如何?
  • RQ4在哪些应用程序和服务中(如eduroam、LDAP和DNS缓存)此类攻击最为有效?
  • RQ5为弥合协议透明性与应用层对DNS数据信任之间的安全差距,需要哪些架构层面的变更?

主要发现

  • 在测试的130万个(96%)公开DNS解析器中,有超过130万个符合标准,且在未修改的情况下保留了恶意负载在DNS记录中。
  • 作者成功在10.5万个公开DNS解析器上演示了DNS缓存投毒攻击,其根源在于下游应用程序缺乏输入验证。
  • 所有测试的eduroam服务均易受此类注入攻击影响,可导致未授权访问和资源耗尽。
  • 传统Web应用程序中的输入净化无法防范此类攻击,因为恶意数据是通过DNS而非用户输入传递的。
  • 在常见配置下,DNSSEC无法阻止此类攻击,因为攻击利用的是应用层的误解释,而非DNS数据伪造。
  • 即使采用现代防护机制如DNS over HTTPS和DNS over TLS,也无法缓解这些攻击,因为它们未在应用层验证DNS记录的语义内容。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。