我一直在阅读有关kaminsky DNS错误,试图更好地了解它是如何工作的。 我认为我有这个要点,但丹提到bailiwicks,被用来作为防火墙后面的DNS服务器的目标。
有人可以解释什么是一个bailiwick是什么,并举例说明它是如何使用目标服务器在防火墙后利用kaminsky错误?
Ehtyar发布的“Linux Journal” 文章有一个相当好的解释,说明了一个域名是什么以及它与DNS的关系。 基本上,额外的logging被添加到DNS响应,以帮助find委托DNS服务器。 引用文章中的例子:
$ dig @ns1.example.com www.example.com ;; ANSWER SECTION: www.example.com. 120 IN A 192.168.1.10 ;; AUTHORITY SECTION: example.com. 86400 IN NS ns1.example.com. example.com. 86400 IN NS ns2.example.com. ;; ADDITIONAL SECTION: ns1.example.com. 604800 IN A 192.168.2.20 ns2.example.com. 604800 IN A 192.168.3.30
攻击的细节在丹的幻灯片 (见幻灯片24/25)。 攻击防火墙后面的服务器:
1.badguy.com ”)。 debian.org ')。 这导致从目标到“ debian.org ”的DNS查询。 badguy.com ”的IP地址的“ badguy.com ”)中进行stream式传输。 security.debian.org ”解决了坏人的地址。 有很多方法可以让服务器在防火墙后面查找IP地址,内部客户端请求,parsing服务器日志中的IP地址等。bortzmeyer提到防火墙在很大程度上与攻击无关。
正如马克·约翰逊(Mark Johnson)所提到的那样,DNS服务器的下属是其权威的域名集合。 一次,recursion名称服务器接受来自权威名称服务器的非本地数据。 因此,foo.example的权威名称服务器可以在他的答案中添加额外的数据,说明www.bar.example的IP地址,他相信。 这是Kashpureff袭击的基础。 很长时间以来,名称服务器不再相信本地数据,正如RFC 2181第5.4.1节所述。
Kaminsky攻击不会使用非本地数据,因此也可以使用最近的名称服务器。 Luke Quinane提到的“ Linux杂志”文章解释得非常好(但Luke Quinane的文章的其余部分,特别是关于防火墙的文章是值得怀疑的)。
关于防火墙,这大多是一个无关的问题。 如果一个名字服务器想要接收其查询的答案,那么它需要是可以访问的,所以无论是有防火墙还是在它之前都没有关系:Kaminsky攻击只需要一个通道,即DNS。
由于Kaminsky攻击是在客户端机器将使用的名称服务器上,所以这些机器是否受到防火墙的保护并不重要。 (一个很好的例子,为什么防火墙不是一个神奇的设备,并没有保护一切。)