2011年5月30日星期一

DNS劫持

一、DNS劫持的概念。
from wiki: DNS hijacking or DNS redirection is the practice of redirecting the resolution of Domain Name System (DNS) names to other DNS servers. This is done for malicious purposes such as phishing; for self-serving purposes by Internet service providers (ISPs) to direct users' HTTP traffic via the ISP's own webservers where advertisements are served, statistics can be collected, or other purposes of the ISP; and by DNS service providers to block access to selected domains as a form of censorship.
DNS劫持或DNS重定向是将对DNS的解析重定向到其他DNS服务器,字面意思即由非用户指定的DNS服务器实现DNS解析。这种技术用于如钓鱼的恶意应用,ISP也经常通过该技术打广告、进行统计信息收集等目的,而DNS服务商通过该技术进行特定域名的审查。


二、 DNS劫持的具体实现方法:
1、劫持用户的dns请求,返回给用户伪造的回复。如图。

DNS劫持的数据包并不是在网络数据包经过的路由器上,而是在其旁路产生的。所以DNS劫持并无法阻止正确的DNS解析结果返回,但由于旁路产生的数据包发回的速度较国外DNS服务器发回的快,操作系统认为第一个收到的数据包就是返回结果,从而忽略其后收到的数据包,从而使得DNS劫持得逞。而某些国家的DNS劫持在一段时期内的劫持IP却是固定不变的,从而可以忽略返回结果是这些IP地址的数据包,直接解决DNS劫持的问题。国内很多地方将这种场景描述为DNS缓存污染。

2、通过恶意软件修改用户的DNS设置,实现DNS劫持。
3、合法dns服务器劫持,如出于审查目的,或者isp的行为。

三、DNS劫持和NXDOMAIN
NXDOMAIN表示Non-eXistent Domain,指不存在的域名。如果用户对不存在的域名进行查询,域名服务器应该通知用户该域名不存在。但是有些运营商DNS服务器的处理方式是返回给用户一个属于该运营商的不存在的ip地址,比如广东电信就是这样作的。如下:

$ nslookup
> www.abcfakeabc.com
Server: 202.96.128.86
Address: 202.96.128.86#53


Non-authoritative answer:
Name: www.abcfakeabc.com
Address: 61.140.3.66

而经查,61.140.3.66是属于广州电信的ip地址。如果换作Google的DNS服务器,结果不一样。

$ nslookup
> www.abcfakeabc.com
Server: 8.8.8.8
Address: 8.8.8.8#53


** server can't find www.abcfakeabc.com: NXDOMAIN
会直接告诉用户这是不存在的域名。


浏览器的反应会更加冒犯或者令人不快。如果DNS服务器是202.96.128.86,在浏览器中输入www.abcfakeabc.com,返回页面如下:




而如果DNS为8.8.8.8,返回会规矩的多。



"ICANN strongly discourages the use of DNS redirection, wildcards, synthesized responses and any other form of NXDOMAIN substitution in existing gTLDs, ccTLDs and any other level in the DNS tree for registry-class domain names."

标签:


评论: 发表评论

订阅 博文评论 [Atom]





<< 主页

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

订阅 博文 [Atom]