【引言】

随着现实世界与网络世界日益融为一体,网络服务已经渗入国民经济的各个领域。几乎所有的互联网上层应用,如在线支付、视频会议、电子邮件等,均需依赖域名系统实现网络资源的寻址与定位。作为互联网的中枢神经,域名系统在网络安全体系中起到至关重要的作用,一直都是国际互联网治理领域的热点话题。从普通用户的视角来看,一旦域名系统发生故障,其后果与直接中断网络服务无异。

长期以来的实践证明,域名系统具有灵活的扩展性和优异的解析性能,然而域名系统的安全性却颇为脆弱,安全研究人员持续发现域名系统的大量安全缺陷。围绕域名系统的安全研究也成为了国际学术界关注的重点,每年顶级学术会议均有多篇相关论文发表。

《互联网域名系统安全学术前沿系列》推送将介绍近年间在网络安全国际四大顶级学术会议中发表的域名系统安全相关研究工作。本推送为该系列的首篇文章,分享的论文主题为面向域名权威服务器的域名劫持攻击。本文从域名服务器域名(Nameserver Domain, 以下简称NSDOM)入手,研究域名服务器的“易被劫持性(hijackability)”。针对域名服务器的劫持,本文提出了三种攻击漏洞,分别为存在拼写错误的NS记录、域名服务器内存的比特错误、WHOIS记录中过期的电子邮件;随后,本文分别检测了由这三种漏洞引发的潜在劫持情况,并成功模拟了实际的攻击场景;此外,本文还发现大部分域名服务器运行着过期版本的DNS软件,导致域名服务器易受DDoS等攻击,进而为相应域名的解析带来安全隐患。该论文发表于网络安全领域顶级会议ACM CCS 2017(录取率151/843=17.9%)。

作者介绍:张淑涵,网络研究院2022级硕士生,清华大学计算机系NASP实验室成员,师从李丹教授,目前主要研究方向为DNS系统测量与安全分析。

【背景介绍】

由于域名托管服务的普及,越来越多的域名授权不在自己子域内的域名服务器来提供解析服务,也即违反Bailiwick规则。例如,域名example.com授权ns.example.com为域名服务器是满足Bailiwick规则(in-bailiwick)的;而若其将ns.another.com或ns.example.xyz作为域名服务器,则将违反Bailiwick(out-of-bailiwick)。在out-of-bailiwick的情况下,多个域名服务器之间将产生解析依赖关系。

本文发现,这种因违反Bailiwick规则而产生的域名解析依赖关系是广泛存在的。作者从5个规模较大的通用顶级域(gTLD):com, net, org, xyz, info的区域文件中选取服务域名数量最多的前10,000个NSDOM(ns.example.com的NSDOM是example.com)作为研究对象。结果显示,有36.4%的NSDOM的解析至少依赖于一个不满足Bailiwick规则的域名服务器;更重要的是,这样的解析依赖关系具有传递性,在域名之间形成了解析依赖链条,前10,000个NSDOM中的依赖链条最长可达8跳;显然,处于依赖链条下游的NSDOM难以察觉更难以控制其解析所依赖的上游NSDOM,而上游的NSDOM被劫持将影响其所有下游NSDOM及其服务域名的解析。因此,若域名服务器被劫持,其危害性和隐蔽性远大于单个域名被劫持。基于域名服务器的劫持可能进一步引发伪造DNS应答、劫持域名证书、伪造MX记录劫持电子邮件等恶意行为。

【攻击漏洞】

针对域名服务器劫持,本文提出了以下三个漏洞,分别对应三种劫持攻击:

1. 面向NS记录拼写错误的typosquatting劫持攻击

域名注册者或管理员在手动配置域名的NS记录时,可能出现将域名服务器名称拼写错误的情况。例如,对于图表1中的polishop.com这一域名,其在com顶级域名服务器中的一条NS记录出现了拼写错误,而这个错误的域名服务器被攻击者发现并注册,此时若解析器选择该条NS记录进行polishop.com的查询,将会访问攻击者控制的恶意域名服务器,并得到恶意的解析应答。

图表1. polishop.com的顶级域名服务器和权威域名服务器各自返回的NS记录集合

2. 面向域名服务器内存比特错误的bitsquatting劫持攻击

由于硬件故障、极端环境等原因,域名服务器在返回应答时内存中可能出现比特错误(bit-flip),造成解码后的NS记录出现错误。文章提到,由于域名服务器通常为多个域名提供解析服务,“域名服务器域名”相较于“单个域名”来说会被更频繁地请求,发生这类比特错误的概率也相对越高。然而,不同于typosquatting攻击,由于本文讨论的比特错误发生在域名服务器的内存中,域名服务器二级存储中的NS记录本身是正确的,因而bitsquatting攻击条件成立的概率相对小于typosquatting攻击。图表2简要展示了bitsquatting的攻击流程:

图表2. bitsquatting攻击流程

3. 面向WHOIS记录中过期电子邮件的劫持攻击

电子邮件过期分为两种情况:电子邮件本身过期或电子邮件使用的域名过期。由于域名WHOIS记录中的电子邮件信息通常用于在注册商处管理或修改该域名的基本信息,攻击者可通过劫持过期电子邮件的方式假冒域名所有者对域名信息进行篡改;特别地,如果该域名恰好是域名服务器域,攻击者可进一步劫持授权该域名服务器的域名的解析,从而导致更严重的危害。

从域名服务器的角度出发,除上述三类劫持攻击以外,本文还对域名服务器运行的DNS软件版本进行了扫描。由于部分版本较低的DNS软件安全防护功能较弱,运行过时版本的DNS软件会使得域名服务器易受DDoS等攻击,进而为其服务的所有域名的解析带来安全隐患。

【主要发现】

对于上述三种漏洞,本文分别检测了由其引发的潜在劫持情况,并对实际的攻击场景进行了模拟。

1. typosquatting劫持攻击:在本文生成的926,742个存在拼写错误的域名服务器名称中,有5%的域名服务器已被注册,其中有7%正作为活跃域名服务器而被使用(Exploited),其余已被注册的typo域名服务器可能是攻击者提前“占好位”,正在等待拼写错误的发生(Proactive)。对于这些活跃的域名服务器,本文进一步通过HTTP请求检验域名服务器应答的IP地址是否为恶意,发现有16.8%的活跃域名服务器返回了恶意应答。通过注册部分活跃的typo域名服务器,本文成功劫持了共47个受害域名的查询流量,在一个月的观测时段内,平均每天可劫持2000条查询请求。

2. bitsquatting劫持攻击:在本文生成的605,965个存在bit-flip的域名服务器名称中,有3.3%的域名服务器已被注册,其中有3%正作为活跃域名服务器而被使用。类似地,通过HTTP请求,本文发现有86%的活跃域名服务器返回了恶意应答。然而,通过注册部分活跃的bit-flip域名服务器模拟实际的攻击场景,本文在一个月的观测时段内平均每天仅能劫持1条受害域名的查询请求,这进一步验证了bitsquatting攻击发生的概率相对小于typosquatting攻击。

图表3. 已被注册的typo/bit-flip域名服务器的应答性质

3. WHOIS过期电子邮件劫持:文章发现前10,000个NSDOM中,有11个NSDOM的WHOIS记录电子邮件使用的域名已失效;2个NSDOM的WHOIS记录电子邮件本身已失效。根据电子邮件的所有者信息,本文将这13个NSDOM的被劫持风险划分为三个等级,并分别标注了可能受到劫持影响的域名数量,如图表4所示。

图表4. WHOIS电子邮件过期的13个NSDOM及其各自服务的域名数量,按照三个风险等级进行划分

对于域名服务器运行的DNS软件版本,本文通过扫描前10,000个NSDOM域下的312,304个域名服务器,发现有78.33%的域名服务器运行BIND软件,其中6.99%可获取BIND版本信息。以扫描时最新版本BIND软件的发行日期作为基准,图表5展示了这些域名服务器BIND软件的过期天数分布。可以看出,有80%左右的域名服务器BIND软件过期时间长于2015年发行的CVE-2015-5477版本(已证实该版本存在安全漏洞),即运行着存在安全隐患的BIND。值得注意的是,这些域名服务器影响着至少128万个域名的解析,且其中有514个是域名服务器域,也即还会潜在影响更大规模的域名解析。

图表5. 域名服务器BIND软件过期天数的累积分布

【结论】

本文围绕域名服务器的“易被劫持性”,提出了三种攻击漏洞及其对应的劫持攻击,并分别进行了潜在劫持情况的检测以及攻击场景的实现;另外,本文分析了域名服务器运行过时版本DNS软件的规模及其所带来的安全隐患。文章在最后也给出了相应的缓解措施,包括DNSSEC部署、域名注册商增强资源记录确认和检验机制等。

【思考与验证】

阅读完本篇文章,我们产生了如下的一些思考,主要包含三点:

1. 我们注意到,仅在请求域名的NS记录时未返回相应glue记录的条件下,typosquatting和bitsquatting两种攻击才成立,其原因为:typosquatting和bitsquatting两种攻击的核心是解析器对某个错误的域名服务器域(分别由拼写错误和比特错误导致)进行显式查询,而如果解析器在得到NS记录的同时也得到了相应的glue记录,即可直接向域名服务器IP地址发起下一步的查询;此时即使解析器得到的NS记录指向错误的域名服务器域,也不会对其进行显式地解析。当然,利用解析器的缓存机制,这两种攻击也可以成功将错误的NS记录注入解析器的缓存中,实现缓存污染攻击。

进一步,文章在描述bitsquatting攻击时提到,仅当受害域名授权的域名服务器所在顶级域与该域名不同时,bitsquatting攻击才成立,原因是如果域名与其授权的域名服务器在相同的顶级域,通常向顶级域名服务器请求该域名的NS记录时会附带返回域名服务器的glue记录,因而解析器可以直接得到域名服务器的IP地址而非对NS记录中错误的域名服务器域进行显式查询。为了验证这一点,我们对Tranco Top 1M(https://tranco-list.eu)中的所有二级域名相应的顶级域名服务器发起了对域名NS记录的查询,并观察应答中是否有附带的glue记录,结果如图表6所示。在总计2,507,896条NS记录中,共有1,394,604条(55.6%)没有对应的glue记录;进一步,按照域名与域名服务器顶级域和二级域是否相同进行划分,我们发现,即使域名和域名服务器在相同的顶级域,仍有56,401条(5.9%)的NS记录没有相应的glue记录,因而这部分NS记录也是易受bitsquatting攻击的。

图表6. Tranco Top 1M二级域名的NS记录有/无对应glue记录的数量

2. 对于typosquatting攻击,当DNS注册商同时也是域名托管服务商时(例如GoDaddy),通常会自动地为所注册的域名随机分配域名服务器,此时便不需要域名注册者手动输入配置NS记录,因而typosquatting攻击的条件也就不成立。然而,文章并未对域名注册者需要手动配置NS记录这一情况是否普遍进行详细论述。

3. 本文提出的缓解措施之一为加强DNSSEC部署,然而对于本文提出的攻击漏洞而言,DNSSEC仅能在域名与域名服务器顶级域相同的情况下起到防御作用。

原文链接

https://doi.org/10.1145/3133956.3133988

张淑涵-NASP,编辑&审校|张一铭、刘保君、赵汉卿

声明:本文来自NISL实验室,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。