近来,DNS缓存漏洞的问题不断出现在各大媒体,此漏洞直指互联网脆弱的安全系统,而安全性差的根源在于设计缺陷。利用该漏洞轻则可以让用户无法打开网页,重则金融诈骗,给受害者造成巨大损失。
攻击者给DNS服务器注入非法网络域名地址,当服务器接受这个非法地址的时候,说明其缓存就被攻击了,而且以后响应的域名请求将会受黑客所控制。当这些非法地址进入服务器缓存,用户的浏览器或者邮件服务器就会自动跳转到DNS指定的地址。比如缓存里www.baidu.com对应的IP明明119.75.216.30,被侵入后改成了别的IP即使下次域名输入的完全正确,却无法访问到原生态的百度了,运气差点可能会有所损失。
这种攻击往往被归类为域欺骗攻击(pharming attack),由此它会导致出现很多严重问题。首先,用户往往会以为登陆的是自己熟悉的网站,事实上却并不是。就连URL地址也是合法的。
那么,黑客究竟是怎么做到使缓存服务器接受非法地址呢?
当一个DNS缓存服务器从用户处获得域名请求时,服务器会在缓存中寻找是否有这个地址。如果没有,它就会上级DNS服务器发出请求。攻击者必须通过发送伪造查询响应、获得正确的查询参数以进入缓存服务器,进而控制合法DNS服务器。这个过程通常持续不到一秒钟,因此黑客攻击很难获得成功。
而目前的漏洞,使得这一过程朝向有利于攻击者转变。这是因为对缓存服务器进行持续不断的查询请求,服务器不能给与回应。黑客只要利用这个时间伪造响应报文给缓存DNS服务器,缓存DNS服务器上就记录了错误的域名到IP地址的对应关系,然后缓存DNS服务器把这个错误的对应关系发给先前查询的用户计算机的浏览器。
攻击者控制域名服务器后,每个查询请求都会被重新定向到黑客指定的服务器上。这也就意味着,黑客可以控制所有域名下的子域名。任何涉及到子域网址的查询,都可以引导至由重新指定的任何服务器上。
端口随机化选择是一种比较有用的防护举措,但是这会破坏给DNS服务器的保护,全方位开放面临的风险也很大。还有一种比较有效的防护措施就是,当检测到面临潜在攻击风险时,让DNS服务器切换到使用TCP连接。当然最好的方法就是DNS服务器智能化,能够准确分析每个查询响应,以便剔除攻击者发送的非法应答中的有害信息。
任何事物都有两面性,DNS缓存在一定程度上提高了域名解析的效率,方便了客户访问网络。但又把一些弱点暴露在外面,给不法份子以可乘之机。当然我们不能讳疾忌医,我们要趋利避害扬长避短,最大限度地发掘和利用DNS缓存的潜能,为我们做更多更好的服务。(资料来源:http://dns.qy.com.cn )