一种新的DNS漏洞被发现

在近期的Black Hat大会上,Wiz.io的研究人员披露了他们从DNS托管服务提供商(如:Amazon Route53、Google Cloud DNS)构建的服务逻辑中,发现了一种新的DNS漏洞类型。

该漏洞一旦被利用,可能会给企业甚至国家带来巨大安全风险,正如Wiz.io研究人员所描述:“这个新的DNS漏洞使国家级别的窃密活动像注册域名一样简单!”

以下是Wiz.io发布的漏洞详情描述:

· 漏洞的详情

https://www.wiz.io/blog/black-hat-2021-dns-loophole-makes-nation-state-level-spying-as-easy-as-registering-a-domain

· 漏洞修复建议

https://www.wiz.io/blog/is-your-organization-leaking-sensitive-dynamic-dns-data-heres-how-to-find-out

情景化复原漏洞详情

为了便于理解,以下是互联网域名系统国家工程研究中心(ZDNS)技术专家对本次wiz.io披露的DNS漏洞详情进行的“情景化”复原:

企业A将自己的权威域example.com托管在能提供DNS即服务的云服务商AWS上,使用云服务的好处不言而喻,能为企业A提供全球分布式域名解析,提供更强的抗DDoS能力以及更灵活的混合云解决方案。

于是,企业A在AWS上注册了账号,并在AWS上创建了example.com权威区,在区中创建了如www、mail等所有服务域名。而作为一个标准的DNS服务,AWS会在企业A创建example.com权威区时为此权威区生成一条SOA记录内容如下:

ns-1161.awsdns-61.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

P.S. SOA记录的第一个部分代表的是example.com权威区的primary DNS服务器的名称。它其实在告诉来访者,example.com虽然有多个DNS,但primary DNS(主DNS)是ns-1161.awsdns-61.co.uk.,而primary DNS角色在传统DNS场景中代表它可以接受DNS动态更新指令。

企业A为了方便,对内部IT应用服务和企业内部终端的管理使用了域服务。员工的windows电脑平时在企业网络环境中使用的是域控提供的DNS服务,当员工的电脑IP地址发生变化或者一些情况下,电脑会主动向企业本地的DNS发起动态指令。

P.S. 通过这个指令内容除了可以看到终端的IP地址外,如果请求的内容有规则的话,其实也能推测出使用者的信息。例如zhangsan-pc.sales.example.com,这可能是企业A公司销售部-张三的终端。为了方便管理,大多数企业IT管理人员一定会让这个内容“更加规则”。

接下来重点出现了,恶意人员也注册了AWS账号,并在AWS平台上直接创建ns-1161.awsdns-61.co.uk.域,然后创建ns-1161.awsdns-61.co.uk.的A记录对应自己私建的一个用于劫持查询的服务器1.3.3.7。

P.S. AWS作为云服务提供商,平台天生提供“多租户”隔离能力,这样的操作表面看没什么问题。但wiz.io研究人员发现,ns-1161.awsdns-61.co.uk.因自身就是AWS的公有云DNS名字,一旦创建了这个“特殊”名字,此名字的租户之间隔离就被打破了!

企业A的员工带着windows电脑离开了企业网络,回到家连上wifi。当他开始像平常一样上网、办公的时候,windows电脑开始要执行动态更新的操作,这个指令通过此时的“外部DNS”最终发给了AWS。

而AWS作为公有云服务,肯定无法完成此指令的正常交互。于是,windows按照自己的机制查询了example.com的SOA的primary DNSns-1161.awsdns-61.co.uk. 的A记录,拿到了1.3.3.7这个地址,最终向这个地址发出动态更新数据。于是,恶意人员轻松获取到企业A员工发来的信息,甚至生成了员工办公地点的地图画像!

此漏洞带给我们的思考

DNS从诞生至今已经有数十年历史,如今它是支撑大数据、云计算、人工智能等新技术快速发展的基础设施。面对环境的变化,如果我们还是继续使用或者按照传统的、专门为受信内部企业所构建的DNS软件、DNS场景、DNS架构作为企业甚至政府部门的域名管理系统,会暴露出来更多漏洞。

针对上述案例中的企业,我们建议企业在使用域名、设计DNS系统时:

(1)域名的规划要做顶层设计,例如将域名进行拆分,规范哪些域名是内部的、哪些域名是外部的,从而避免类似问题的发生。

(2)域名的管理要从“由点到面”的“平面化”管理,走向“多平面,立体式”的域名管理,做好分层管理,要通过系统化的技术实现全网域名管控。

(3)DNS系统架构和软件要与企业的信息化建设升级同步演进,内网-外网、云上-云下,不同场景中DNS系统的设计和软件实现要有整体的解决方案。

目前了解到AWS和Google已经及时修复了这个问题,ZDNS公有云解析服务平台并不存在此问题。同时,通过ZDNS专业的DNS安全在线检测工具check.zdns.cn,我们发现目前国内企业DNS系统还存在很多隐患,例如下面两个企业的检测结果:

该企业域名存在"父子域"不一致问题,即顶级域com认为他有3个DNS,且名字是ns11-ns13,而企业的DNS系统上配置的名字却出现ns4和ns5。在这个场景下,如果ns4和ns5出现问题,则马上会导致拒绝服务。而即使不出问题,因为这种不合规配置,导致部分LocalDNS触发了逻辑判断问题,进而可能部分地区出现解析延时变大,或者解析异常。

该企业实际是做了一个DNS集群,表面看是能支撑大流量的查询,但它对外只用一个NS名称和一个IP服务,这极其容易被攻击者利用达到缓存投毒的目的。因为,攻击者只需要模拟一个源IP来代替该企业DNS应答解析结果,实现对LocalDNS的缓存投毒。一旦投毒成功,将给企业带来巨大损失。

从中我们不难看出,DNS的建设是一个系统工程,DNS的安全防护涉及诸多维度。面对频繁发生的DNS安全漏洞,企业务必要提高重视程度,及时检测发现,及时填补漏洞,避免造成更大的损失。

声明:本文来自域名国家工程研究中心,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。