幽灵域名(Ghost Domain Names)

作者:{Woody}@ArkTeam

攻击者通常会利用域名来进行一些恶意活动,例如钓鱼、僵尸网络命令与控制、恶意软件传播等。为了防御这种攻击,一种有效的应对方法是将上层DNS服务器中的恶意域名删除。然而由于DNS实现方面的漏洞,导致恶意域名在被删除之后仍然能够存活很久,我们称之为”幽灵域名”。幽灵域名的概念在2012年由清华大学的江健、段海新等人提出,相关论文发表在NDSS 2012上。

下面介绍幽灵域名形成场景,在该场景中,攻击者试图将”phishing.com“的解析数据保存到一个目标DNS服务器中。我们假设攻击者已经在.com域的授权服务器中注册了一个名为”phishing.com“的域名。


图1幽灵域名形成(a)

第一步:缓存域名的解析数据。攻击者先向目标DNS服务器查询一个phishing.com的子域名,例如www.phishing.com。在逐级解析过程中,.com域的授权服务器会将phishing.com的解析数据返回给目标DNS服务器(图1第3步),DNS应答为图2的形式,其中”授权部分”(authority section)和”额外信息部分”(additional section)包含了该域的NS记录和A记录(相关概念参考DNS资源记录”Resource Record”),它们共同指出了子域名中的授权服务器和其IP地址。


图2 phishing.com的解析数据

目标DNS服务器接收并缓存了解析数据,这些数据的有效期为86400秒。现在假设43200秒后,phishing.com被安全人员检测出是恶意域名,并从.com域中删除掉该域名的相关解析记录。此时目标DNS服务器依然可以解析phishing.com,因为该服务器中存有phishing.com的解析数据,这些数据在43200秒后才会过期。


图3幽灵域名形成(b)

第二步:刷新幽灵域名缓存数据的过期时间。.com域的域名解析记录被删除后,攻击者为了不让目标DNS服务器中的缓存过期,首先将phishing.com的NS记录更换一个新名字,例如ns1.phishing.com(原来为ns.phishing.com),然后向目标DNS服务器查询ns1.phishing.com的A记录,目标DNS服务器中由于没有该记录的解析数据,所以向phishing.com域中的授权服务器进行查询,并收到如下应答:


图4 phishing.com的应答报文

根据DNS的信用机制,应答报文中返回的新的NS记录将比原来缓存中的NS记录具有更高的可信度,因此目标DNS服务器用这条新的解析数据覆盖了原来的缓存,这个新的缓存将重新具有86400秒的可用期。因此攻击者只要用该方法在每次缓存过期前提前在目标DNS服务器上进行更新,该服务器就可以一直对幽灵域名进行解析。

参考文献

[1] Jiang J, Liang J, Li K, et al. Ghost Domain Names: Revoked Yet Still Resolvable[J]. 2012.

[2] DOMAIN NAMES – IMPLEMENTATION AND SPECIFICATION. https://tools.ietf.org/html/rfc1035.

发表评论

电子邮件地址不会被公开。 必填项已用*标注