悬空DNS记录带来的安全威胁

今天介绍的这篇论文来自2016年的CCS会议,题目是《All Your DNS Records Point to Us: Understanding the Security Threats of Dangling DNS Records》,其DOI信息在这里

这篇文章主要以工作量及工作的公益性见长,难度在CCS会议论文中算不上高,只要有基本的DNS相关知识就可以读懂。这篇文章也是我正式进入研究生阶段阅读的第一篇论文,同时其反映的问题也是我在配置VPS与域名时经常忽视的,所以感觉十分熟悉。下面介绍论文内容。

摘要

若一条DNS记录指向的资源无效,但这条记录又没有从DNS中删除,则我们称其为悬空DNS记录(dangling DNS record,文中简称为Dare)。本文阐述其带来的安全威胁。文中的工作表明,Dare可以很容易地被攻击者利用,以进行域名劫持。特别地,论文确定了攻击者可以利用的三种攻击向量。通过调查Alexa的前10000位域名与52个edu区域,可以发现467个可以被利用的Dare,说明它是真实而普遍的威胁。通过利用这些Dare,攻击者可以获得这些域名(或子域名)的完全控制权,甚至可以将这些域名去证书授权中心(Certificate Authority,CA)注册。很明显,这一可能性存在的潜在原因是缺乏对DNS记录所指向的资源的真实性检查。文章随后提到了三种有效减轻Dare威胁的防御机制。

介绍

域名系统作为互联网最重要的组成部分之一,不仅提供了重要的命名服务,而且提供了访问Internet服务的基本信任节点。因此,其也常常被攻击者青睐。然而,对于DNS服务器和DNS记录点之间的链接的认证,却很少有人关注。

DNS记录主要由一个元组构成:<name, TTL, class, type, data>。它本质上是一个指针,其中,data字段指向持有name字段代指资源的主机。当与name字段对应的服务中止时,域名拥有者除了释放data字段指向的主机外,还应删除关联的DNS记录。但是在实际上,域名拥有者大多数会忘记删除DNS记录,于是就造成了悬空DNS记录。传统观念认为,Dare是安全的。但文中指出,Dare是一种真正的、普遍的威胁。根据DNS记录类型的分类,文中将Dare分为4种类型:Dare-ADare-CNDare-MXDare-NS

攻击手段

针对这一问题,文中提出了三种攻击向量。

  • 利用云平台公共IP地址池随机分配的性质进行攻击。云平台越来越受到网站的欢迎。在云中,IP地址池是在用户间共享的。实际上,许多域名管理员错误地信任这些短暂的、公共分配的资源,导致各种类型的Dare产生。
  • 利用废弃第三方服务进行攻击。现在的网站广泛使用第三方服务。为了与这些服务更加一体化,域名拥有者需要在授权DNS(aDNS)服务器中增加一条A记录或CNAME记录,并在其第三方服务账号中声明对域名的所有权。所有成功声明所有权的第三方服务账号,都可以控制这个域名的内容。令人惊讶的是,大多数第三方服务不会验证声明所有权的请求。
  • 由于域名会过期,简单地在DNS的data字段中寻找过期的域名。

分析

文章针对4种类型的Dare作了广泛的分析,包括横跨7年的Alexa前一百万域名,与2700个edu域、1700个gov域中Alexa包括的前一万域名。对于第一种攻击向量,文章作者开发了一个叫做IPScouter的工具,以在云空间中压榨更多的IP地址。对于第二种攻击向量,文中测试了9个常用的第三方服务。对于第三种,文章反复核对了WHOIS数据与域名注册商,以识别过期域名。

最终共发现了791个确认的Dare与5982个可能的Dare。更令人担心的是,在335个高价值的域,包含edugov与Alexa前一万,也发现了Dare。通过利用这些Dare,攻击者可以进行多样的欺骗活动,包括垃圾邮件、网络钓鱼与Cookie劫持。通过自动而免费的证书认证中心(Certificate Authoritiy,CA),例如Let's Encrypt,攻击者甚至可以对子域名认证并伪造一个HTTPS网站。

缓和手段

文中认为,Dare产生不安全的根本原因在于缺少对DNS记录指向内容的真实性检查。因此,提出三种DNS服务器与第三方服务可以采取的减轻不安全Dare的手段。

  • 首先设计一种机制,令aDNS服务器可以验证A记录指向资源的真实性。
  • 在第三方服务环境下,建议打破悬空的CNAME记录的解析链,为服务的每个用户采用一个更安全的独立名称空间。
  • 最后,提议aDNS服务器应该定期检查DNS记录点的域的到期时间。

结语

以上就是这篇论文提及的大致内容。可以看到,从提出攻击向量模型到分析,工作量是相当大的。且文中有一节内容专门提及道德注意事项,说明其在工作过程中没有进行攻击,并提醒相关组织对这一问题进行防御。这些都是在平时的研究中应当注意的问题。