与使用我们或我们的合作伙伴控制的 DNS 相比,使用公共 DNS 是否存在任何已知风险?我们的解决方案涉及一些嵌入式设备,因此使用 Google DNS 可以让我们在各种位置部署时获得一定程度的可移植性,即只要我们有有效的互联网连接,我们通常就能够访问 Google 的 DNS(并非总是如此,但通常如此)。
鉴于我不是 DNS 工作原理的专家,我能想象的场景是这样的
a) 我们的路由器(或充当 DHCP 服务器的其他设备)通过私有网络分配一个地址,并向 DNS 发送一条新记录。
b) 其他人“劫持”该记录并将其指向我们私人 NW 之外的其他东西。
c) 下次我们私有网络上的某些东西试图解析私有网络上某台机器的名称时,它会被重定向到恶意服务器。
这种攻击真的可能发生吗?DNS 服务器如何确定来自我们域的更新确实来自我们的域?我知道运行 DNS 服务器本身有最佳实践,但作为客户端,您是否应该遵循任何等效的最佳实践?
注意:我并不关心 Google 能学到什么(他们学不到什么,因为我们只能访问我们自己的服务以及 Windows Update、Azure 等)。我更担心的是,通过使用公共服务,我们可能会让第三方实施恶意行为。
答案1
您通常想到的攻击是缓存投毒,攻击者可以强制服务器保存错误信息,并将合法流量重定向到特定的黑客控制的服务器。不过,这种技术很难使用。
如果您可以控制您的 DNS 区域,您可以始终使用 DNSSEC 来保护您区域的内容并确保在传输之前/之后所有内容都经过验证。
关于公共 DNS 服务器,很抱歉,我看不出它能给你带来什么,因为你无法将自己的记录推送到它上面。如果你指的是亚马逊的 Route53 之类的东西,嗯……我猜它们仍然可能被劫持,你仍然必须以自己的方式或其他方式更新它。