关于DNS重绑定攻击的思考

2019-04-02 / 无评论

浏览器通过DNS服务器将域名解析为IP地址,然后向对应的IP地址请求资源。而对于域名所有者,他可以设置域名所对应的IP地址。当用户第一次访问,解析域名获取一个IP地址。然后,域名持有者修改对应的IP地址,用户再次请求该域名,就会获取一个新的IP地址。对于浏览器来说,整个过程访问的都是同一域名,所以认为是安全的。这就造成了DNS重绑定攻击。

第一部分题目:

可以使用浏览器中的Java虚拟机(Java解释器)在Web上运行Java Web applet。浏览器中的Java虚拟机(JVM)与浏览器的其余部分一样强制执行相同的源策略。假设浏览器的JVM具有相同原始策略的以下实现:它允许从站点A获得的Java Web applet通过网络套接字与属于域A的所有IP地址进行通信,并且仅使用属于站点A。例如,JVM阻止站点A的applet设置到属于其他主机名的IP地址的套接字连接。正如所料,JVM依靠DNS解析协议来确定哪个IP地址属于哪个主机名。回想一下,在DNS协议中,DNS权威服务器可以使用多个IP地址来响应查询的主机名。因此,例如,如果用户访问包含Java小程序的www.foo.com网页,并且DNS服务器将www.foo.com绑定到两个IP地址(例如X和Y),那么JVM将允许applet从X和Y读取数据并将数据发送到X和Y不受限制。

假设Alice的公司FooBar Corp。在foobar.com/internal/的内部网络服务器上托管重要的机密文件,只允许其员工访问它。 FooBar的防火墙只允许访问公司本地Intranet内部的Web服务器;从公司网络外部直接连接到此Web服务器将被阻止。显示拥有注册网络域名attacker.com的攻击者(不同公司的员工)如果能诱使Alice从她的办公室机器访问attacker.com,就可以窃取FooBar的机密文件。您的攻击必须利用DNS协议中的上述弱点以及Alice的JVM处理主机名的多个绑定的方式。

请描述一下攻击的详细过程。

我们如何才能实现这种攻击呢?首先,我们需要诱导alice访问恶意域名attack.com,将恶意的域attack.com解析到恶意ip的服务器,服务器上通过js脚本来操作浏览器再次发送一次DNS请求,为了绕过防火墙,当恶意JS脚本向attacker.com发出第二个请求时,攻击者会将主机名“attacker.com”重新绑定到Intranet上的目标服务器的IP地址。JVM会认为这两个服务器属于同一个源,这样就将数据包发送给了外网的攻击者机器,攻击者同时接收数据包即可。

第二部分题目:

DNS-SEC是DNS记录的数据完整性和原始认证协议。为了回答这个问题,假设DNS-SEC的功能是通过提供签名证书来实现的,该证书允许DNS模块验证DNS记录来自注册为该域的权威DNS服务器。 例如,如果您访问CS部门。在comp.nus.edu.sg的主页上,您的计算机将收到加密签名的消息,其中说明comp.nus.edu.sg的IP地址为137.132.80.57,并且提供此IP地址的DNS服务器有权提供他们为nus.edu.sg。假设DNS-SEC无处不在地部署在互联网和FooBar的内部网络上。

你在第一部分的攻击会起作用吗?如果没有,请解释DNS-SEC如何防止攻击。如果是,请解释为什么DNS-SEC不会阻止它并建议一个简单的修复来防止攻击。

攻击仍然有效。DNS-SEC(域名系统安全扩展),是Internet工程任务组 (IETF)的对确保由域名系统中提供的关于互联网协议网络使用特定类型的信息规格套件。它是对DNS提供给DNS客户端(解析器)的DNS数据来源进行认证,并验证不存在性和校验数据完整性验证,但不提供或机密性和可用性。域名attacker.com在其上是合法的注册实体,因此其CA将被标记为权威域。DESSEC能防止中间人攻击,但是在这种情况下,DNS记录完整性也不会受到影响。此外,由于攻击者没有破坏任何DNS服务器,因此DNS记录的真实性不会受到损害。所以无法防御DNS重绑定攻击。

DNS pinning可以防止这种攻击,浏览器自己缓存DNS的域名和ip映射,如果dns server本地的TTL过期了,浏览器也会用他自己缓存的ip地址去连接,即在浏览器的缓存过期前,不会再信任DNS server的回应。

第三部分题目:

假设所有网站都启用了HTTPS,包括foobar.com和attacker.com。你在第一部分的攻击会起作用吗?如果没有,请通过显示哪些检查失败来解释HTTPS如何清楚地防止攻击。如果是,请解释为什么HTTPS不会阻止它。

HTTPS能阻止DNS重新绑定攻击。HTTPS协议将使浏览器针对网站发出的每个请求检查提供的证书。如果存在DNS重新绑定,则客户端会向同一个域(attacker.com)发出许多请求,但获取不同的ip(Intranet ip)。由于attacker.com的证书与原始域(Intranet)不匹配,将会引发认证错误。

无回应:“关于DNS重绑定攻击的思考”

发表评论

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