我注意到一个多年前第一次看到的问题在多个地方再次出现,而且显然它仍然是非常常见的dns名称空间冲突。当一个私有域名能够在公共互联网上解析时,DNS名称空间冲突就会发生,不管是否有意为之。ICANN有很多这方面的信息,如果你正在寻找一个深入的主题;相反,我将关注潜在的安全问题。
一、这个问题
让我们从一个例子开始。假设您拥有互联网域example.org。这是你的互联网存在-你所有的电子邮件都是@example.org,你的web服务器在这个域,甚至你的Active Directory域是corp.example.org。世界上一切都好。
当在您的组织中配置主机时,您要做的事情之一是设置您的DNS后缀搜索列表。这是您的系统将添加到主机名的域列表,如果它们最初无法解决此问题。在我们的场景中,您的DNS后缀搜索列表是example.org和corp.example.org。因此,如果主机试图解析邮件服务器,它们也可以尝试mailserver.example.org和mailserver.corp.example.org。
让我们还假设您遵循良好的安全实践,并且已经拆分了DNS,因此Internet上没有人能够解析您的内部主机名。您还不允许内部主机直接解析Internet主机名。
到目前为止有什么问题吗?不。计算机之神对我们微笑。
随着组织的扩展,您发现需要添加一个新的内部域,因此您选择example.com。哦哦!您在Internet上不拥有该域,但您将只在内部网络上使用它。这不是问题,对吧?不,这是个问题。
问题在于你并不拥有example.com这个域名,而是在内部使用它;这是一个DNS名称冲突。一旦主机直接访问Internet(从家里、客户的网络等),这个问题就会出现。当这种情况发生时,他们将无法解析带有example.org或corp. example.org后缀的主机—但只要他们尝试用example.com后缀解析主机(您不拥有该后缀),他们就会成功。
这是一个怎样的问题呢?在最好的情况下,它不是。如果您的主机试图解决example.com无法解决的问题,那么除了一些信息泄漏之外,应该没有问题。但是,如果他们试图解决example.com中确实存在的问题,然后试图开始使用它,又该如何呢?
例如,我们的主机在Internet上,正在尝试访问内部邮件服务器主机名。唯一可以解决的是mailserver.example.com,我们没有它。然后他们开始通过一个你不拥有的服务器发送电子邮件——你的私人的、内部的、唯一的电子邮件。看到问题了吗?
这只在主机名已经存在于外部域中时才会发生,对吗?错了。
如果使用了DNS通配符,那么任何主机名的解析都将超出您的控制范围,您的主机将向潜在的恶意服务器发送数据。想想看,如果我能告诉您的主机它们的代理、活动目录或邮件服务器在您的组织之外的位置,那么获取关于您的组织的信息或破坏您的主机是多么容易。你怎么知道?
这不是理论上的攻击。在过去的几周里,我已经找到了很多这样的组织。具体来说,它们在内部使用自己并不拥有的域,它们的主机跑到组织之外,将这些域解析为恶意的IP地址。
还有一些组织占用多个域(显然包括内部域),并设置通配符DNS来将它们指向自己的ip。用于什么目的?我不知道,但我怀疑它不可能是好的
二、发现、预防和应对
那么如何检测呢?几个方面:
1. 从您的DNS中为与您的组织相关的客户使用的所有域创建一个列表。确保您拥有所有这些域。如果没有,他们解析为什么ip ?考虑换掉它们。这也是一个很好的威胁狩猎技巧!
2. Windows主机喜欢在浏览时解析wpad/wpad.dat。DNS搜索后缀往往会被添加到其中,因此要查找到Internet上的任何wpad.dat的HTTP请求,然后查找请求要发送到哪些域。即使他们不是你自己的主机(如顾问),你仍然应该关注,因为他们可以作为一个支点进入你的网络。顺便说一下,wpad.dat不是您希望您的主机使用的东西。
预防这实际上是相当容易的-只要确保你拥有你使用的任何域,或使用那些没有互联网域名。(不过,根据我的研究,在某些版本的Windows上可能会出现这个问题。)
如果您在您的网络上发现了这种情况,我建议您立即查看您的主机正在解析什么,正在输出什么数据,更重要的是,正在返回什么数据。
我还建议您屏蔽Internet设备上的IP地址和外部域,以防止内部主机访问它们。
最后,这是一个很大的问题,我想很多人都没有意识到。幸运的是,很容易发现并开始调查。从长远来看,现在做这件事可能会让你免受很多伤害。