DNS相关专题---DNS劫持和DNS污染

 

1、DNS劫持


DNS 污染 是指流量分析劫持设备在分析到需要的DNS查询请求后(一般为udp53号端口,要抓取的dns的ip地址设置白名单),抢先伪装一个DNS回复请求给用户,为什么会抢先呢,因为用户和流量分析劫持设备是网内对网内,不管是时延也好还是其它链路质量也好,都要比网间要快很多很多,而udp的特点是没有验证机制,用户会接受第一个查询结果,其余的将会被抛弃。

 

 

DNS欺骗是一门改变DNS原始指向IP的艺术。 
什么是DNS:Domain Name Server 域名服务器 域名虽然便于人们记忆,但网络中的计算机之间只能互相认识IP地址,它们之间的转换工作称为域名解析。 
DNS欺骗即域名信息欺骗是最常见的DNS安全问题。当一个DNS服务器掉入陷阱,使用了来自一个恶意DNS服务器的错误信息,那么该DNS服务器就被欺骗了。欺骗后便会为客户机器提供错误的IP地址指向,例如你打开百度的网址却成了另外的一个未知网页,试想如果跳转的页面被无声无息地挂着马又会多糟糕。

2、http请求劫持


http请求劫持是指流量分析劫持设备在分析道需要的http请求后,伪装客户端给源站发一个reset标记断开连接,然后伪装源站给用户回一个302重定向到cache设备上,比如说你访问的是www.aaa.com/123.html,cache设备是1.1.1.1,被劫持后会发一个http://1.1.1.1/www.aaa.com/123.html的302重定向给用户,用户自然就被引导到1.1.1.1上面了。

 

3.DNS劫持

域名服务器上都会保存一大堆的域名记录(每条记录包含“域名”和“IP地址”)。当收到域名查询的时候,域名服务器会从这堆记录中找到对方想要的,然后回应给对方。

如果域名服务器上的某条记录被【人为修改】了(改成错的),那么一旦要查询这条记录,得到的就是错误的结果。这种情况称之为“域名劫持”。

★谁有“域名劫持”的企图?

“域名劫持”通常是电信运营商(ISP)干的好事儿。很多宽带用户用的域名服务器就是 ISP 提供给你的。

举例:

前几年曾经出现过:某个 ISP 跟某网站勾结,把维基百科的流量重定向到XX。具体搞法是:该 ISP 篡改自己的域名服务器的记录,把里面跟维基百科 相关的域名记录的 IP地址 修改为XX的 IP地址。如此一来,假设你用的是这个 ISP 的域名服务器,当你在浏览器输入 http://zh.wikipedia.org/的时候,你的电脑查询到的 IP地址 其实是XX的 IP地址,所以浏览器打开的是“XX”的主页。

★如何对付“域名劫持”?

刚才说了,“域名劫持”的根源在于:域名服务器上的记录被人给改了。要对付这种耍流氓,最直接的办法就是不要使用这种流氓 ISP 提供的域名服务器,改用国外那些比较靠谱的。目前口碑最好的,大概是 Google 提供的两个域名服务器,IP地址 分别是 8.8.8.8 和 8.8.4.4 ——这俩不光是地址好记,更重要的是,不会耍流氓。

 

 

 

4、啥是“域名污染”?

先提醒一下:“域名污染”这个词还有其它几个别名,分别是“域名欺骗”、“域名缓存投毒”(洋文叫:DNS cache poisoning)。今后看到这几个别名,要晓得是同一个意思。

“域名污染”的原理,简单说来是这样滴:当你的电脑向域名服务器发送了“域名查询”的请求,然后域名服务器把回应发送给你的电脑,这之间是有一个时间差的。如果某个攻击者能够在域名服务器的“DNS应答”还没有到达你的电脑之前,先伪造一个错误的“DNS应答”发给你电脑。那么你的电脑收到的就是错误的信息,并得到一个错误的 IP地址。

★谁有“域名污染”的企图?

从技术上讲,只要攻击者能够位于“你”和“域名服务器”的传输线路中间,那么攻击者就有机会搞“域名污染”。能够做到这点的,可能是一个黑客/骇客,也可能是 ISP。

★某国家防火墙的两种“域名污染”

刚才俺解释了“域名污染”的原理,那种形式不妨称为“直接污染”。由于某国家防火墙的特殊性,它不但可以做到“直接污染”,还可以做到“间接污染”。而普通的骇客顶多只能做到“直接污染”,难以做到“大范围的间接污染”。

那么这两种污染有啥区别捏?且听俺细细道来。

◇某国家防火墙部署在哪?

首先有必要先扫盲一下“某国家防火墙(其实是一种IDS,也就是入侵检测系统)的部署位置”。X国互联网只有少数几个国际出口(名气较大的是:A出口、B出口、C出口)。如果你要访问国外网站,你的网络数据流就必定会经过其中的某个“国际出口”。

◇某国家防火墙的直接污染

因为某国家防火墙部署在国际出口。如果你用的是【国外的】域名服务器,你的“DNS请求”必定会经过国际出口;同样,域名服务器的“DNS应答”必定也会经过国际出口才能到你的电脑。这一来一回就给某国家防火墙 提供了机会。

这种污染就是俺所说的“直接污染”。

◇某国家防火墙 的间接污染

刚才介绍了“使用国外域名服务器会被直接污染”。那如果你用的是【国内的】域名服务器捏?就会被“间接污染”。过程如下:

1. 比方说你用的是电信的 DNS服务器,然后你想要访问某个被不受欢迎的网站。

2. 对于不受欢迎的网站,其网站服务器必定在国外,而且网站的域名肯定也不会使用 CN 之下的域名。所以,被封锁的网站,其上级域名的“权威域名服务器”肯定也是在国外。

3. 当你向“电信的DNS服务器”查询反共网站的域名,这台“电信的DNS服务器”就会去找这个不受欢迎的网站的上一级域名对应的“权威域名服务器”去进行“域名查询”。

4. 因为是从国外进行域名查询,相关的数据流必定要经过国际出口。一旦经过国际出口,就会被 某国家防火墙 污染。

5. 如此一来,“电信的域名服务器”拿到的是已经被污染的域名记录(里面的IP是错的)。而且“电信的域名服务器”会把这条错误的记录保存在自己的域名缓存中。

6. 下次如果有另一个网友也找这台“电信的域名服务”查询这个不受欢迎的网站,也会查到错误的结果。

上述过程不断重复,最终会导致:全国所有的域名服务器,它们的缓存中只要是包含了不受欢迎的网站的记录,记录中的 IP地址 必定是错的(这个错误的 IP地址 也就是 某国家防火墙 伪造的那个)。所以说“间接污染”是很牛逼的,可以把错误的域名记录扩散到全国。

刚才俺说了,“域名污染”也叫“域名缓存投毒”。“投毒”一词真的非常形象——就好象在某条河流的源头下毒,从而把整条河流的水都污染。“域名污染”直接破坏了互联网的基础设施。

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(前端知识)