有针对性的攻击(即渗透网络)的第一部分是尽可能多地了解目标。公司在内部网络中使用与公共可用站点相同的域名是很常见的。主机名称描述其用途也很常见。
如果您不使用拆分 DNS,则意味着您将有关域内所有主机的信息发布在一个公共可用的地方。这些发布的信息将揭示主机的名称以及内部使用的 IP 地址,从而可以让攻击者深入了解公司的基础设施。
DNS 只是将文本名称映射到 IP 地址。
仅举一个例子,当攻击者知道内部主机的这些映射时,它可以做什么:
- 访问公开可用的 DNS 信息,发现有一个名为 wiki.example.com 的主机,其 IP 地址为 10.1.2.3。鉴于主机的名称,这可能是一个内部 wiki,它可能提供有关该公司的有趣信息。让我们尝试获取那里发布的公司实习生信息。
- 为此,攻击者设置了自己的网站 example.attacker。此服务器最初解析为攻击者控制的外部 IP 地址。该域的 DNS 服务器也由攻击者控制。该服务器的链接将包含一个有趣的网络钓鱼邮件或类似邮件,以便公司内部的人可以访问该站点。
- 一旦该站点被访问并下载了一些脚本,攻击者就会将该站点的 IP 地址更改为从公司可见的该站点的 IP 地址,它喜欢攻击的站点的 IP 地址:即 example.attacker 现在将解析为相同的 IP 地址 10.1 .2.3 作为 wiki.example.com。这个技巧称为DNS 重新绑定。
- 已经从攻击者站点下载的脚本然后尝试访问 example.attacker。由于此站点现在解析为 10.1.2.3,此请求将访问内部服务器 wiki.example.com,但名称为 example.attacker。仅用于单个域的服务器通常会忽略请求的 Host 标头,因此站点的内容不仅可以通过使用 wiki.example.com 还可以通过 example.attacker 访问,只要两个名称解析到相同的 IP 地址即可。
- 因为同源策略仅通过 DNS 名称而不是 IP 地址限制访问,来自原始 example.attacker 主机的已加载脚本现在可以与新的 example.attacker 主机站点(即 wiki.example.com)交互,从而获取来自本网站的信息并将这些信息转发给攻击者。
总而言之:你对你的目标了解得越多,你就能更好地妥协它。拆分 DNS 不是防止所有数据泄漏的最终解决方案,但它有助于保护至少部分数据。因此,它是纵深防御的一部分。
过去,我在拆分 DNS 方面遇到过很多问题,程序不正确地尊重 ttls。它们缓存解析很长时间,并且由于 DNS 不一致(即它取决于我的源 IP),它们会中断。
看起来您在受保护的公司网络和未受保护的互联网中使用相同的系统(笔记本电脑或移动设备?)。这是一个非常糟糕的主意,因为这为恶意软件进入公司网络提供了一个简单的载体,绕过了它们可能拥有的所有保护措施。安全的方法是让公司笔记本永远不直接连接到互联网,而只在外面使用 VPN,通过公司网络隧道传输所有内容,包括 DNS 查找。并且私有硬件不应连接到受保护的公司网络,而应在公司内部使用时包含在单独的网络中。如果以这种方式使用,您也不应该看到拆分 DNS 的问题,因为您永远不会在同一系统上的外部和内部 DNS 设置之间切换。