2011年5月30日星期一

DNS缓存污染


一、概念。
域名服务器缓存污染DNS cache poisoning),又名域名服务器快取侵害DNS cache pollution),是指一些刻意制造或无意中制造出来的域名服务器分组,把域名指往不正确的IP地址。一般来说,外间在互联网上一般都有可信赖的域名服务器,但为减免网络上的交通,一般的域名都会把外间的域名服务器数据暂存起来,待下次有其他机器要求解析域名时,可以立即提供服务。一但有关网域的局域域名服务器的缓存受到污染,就会把网域内的电脑导引往错误的服务器或服务器的网址。
域名服务器缓存污染可能是通过域名服务器软件上的设计错误而产生,但亦可能由别有用心者通过研究开放架构的域名服务器系统来利用当中的漏洞。

二、缓存污染攻击。
一般来说,一部连上了互联网的电脑都会使用互联网服务供应商(ISP)提供的域名服务器。这个服务器一般只会为供应商的客户来服务,通常都会储蓄起部份客户曾经请求过的域名的缓存。缓存污染攻击就是针对这一种服务器,以影响服务器的用户或下游服务。





三、防火长城的缓存污染攻击。

在中国,对于所有经过防火长城的在UDP的53端口上的域名查询进行IDS入侵检测,一经发现与黑名单关键词相匹配的域名查询请求,其会马上伪装成目标域名的解析服务器给查询者返回虚假结果。由于通常的域名查询查询没有任何认证机制,而且域名查询通常基于的UDP协议是无连接不可靠的协议,查询者只能接受最先到达的格式正确结果,并丢弃之后的结果。

对于不了解相关知识的网民来说也就是,由于系统默认使用的ISP提供的域名查询服务器查询国外的权威服务器时即被防火长城被污染,使其缓存受到污染,因而默认情况下查询ISP的服务器就会获得虚假IP地址;而用户直接查询境外域名查询服务器(比如 Google Public DNS)又可能会被防火长城污染,从而在没有任何防范机制的情况下仍然不能获得目标网站正确的IP地址。



四、DNS缓存污染之于DNS劫持,相对被动,DNS劫持更显主动。

$nslookup
> www.facebook.com
Server: 202.96.128.86           //广东电信DNS服务器
Address: 202.96.128.86#53


Non-authoritative answer:
Name: www.facebook.com
Address: 203.98.7.65                       //dns缓存污染
> server 8.8.8.8                                //Google DNS服务器
Default server: 8.8.8.8
Address: 8.8.8.8#53
> www.facebook.com
Server: 8.8.8.8
Address: 8.8.8.8#53


Non-authoritative answer:
Name: www.facebook.com
Address: 46.82.174.68                    //DNS劫持
个人认为DNS劫持和DNS缓存污染没有太明确的界限,DNS劫持概念更大一些,而DNS缓存污染只是DNS劫持的一种方式。



标签:


评论: 发表评论

订阅 博文评论 [Atom]





<< 主页

This page is powered by Blogger. Isn't yours?

订阅 博文 [Atom]