2014年1月21日星期二

墙外楼: 2014年1月21日全国DNS污染始末以及分析

墙外楼
网络热门话题追踪 
Fire your boss

Do what you love and get paid for it. Lock in our old price before it goes up in two days, by getting a free course walk-through
From our sponsors
2014年1月21日全国DNS污染始末以及分析
Jan 21st 2014, 12:58, by 墙外仙

来源

丫丫丫~好久都没见到各位了,Ovear都有点想念各位了。于是今天就来码一篇=w=
群众:滚,你的反编译和海量查询系统呢
Ovear:QAQ Ovear刚刚考完试,也要让Ovear喘口气嘛。。那些文章很难写的,一不小心就被喷的要死
群众:吃翔翔,看你天天在某群里聊天,还说自己玩过头挂科了
Ovear:啊哈哈哈哈哈 今天下午出了个大新闻你们知道了
群众:啊?啥信息,喂别转移话题

=w=大概今天15:30的时候,Ovear正在调试新的服务器,结果发现肿么突然上不去了。。结果ping了以下,结果吓尿了,Ovear的域名都指向到[65.49.2.178]这个IP。Ovear第一反应就是,尼玛DNSPOD又被黑了! 为什么说DNSPOD被黑了呢,其实以前DNSPOD就出过一次类似的问题=。=,导致所有的域名都跪了,刚好Ovear这个域名还有测试的几个域名都是那里的,然后就到某交流群吐槽。结果管理员说他们的DNS被污染了,Ovear心想不会是全国DNS都被污染了吧。结果乌鸦嘴说中了。。还真的是全国劫持。

然后Ovear就很好奇,到底是怎么回事呢~有谁能做到这样的事情~于是就有了以下的分析和科普~
—————–以下内容为Ovear家电脑中病毒所致,跟本人无任何关系,谢绝跨省————————

balablabala说了这么久,肯定有同学问了,窝又不是学计算机的,(╯‵□′)╯︵┻━┻dns是什么玩意,跟我有什么关系!
那么DNS是什么呢,Ovear就来科普下┑( ̄Д  ̄)┍。
我们访问一般是通过域名[Domain]来访问的,咦DNS怎么也是D开头的,难道有关系?说对了!就是有关系:DNS的全称其实是[Domain Name System]翻译过来就是域名系统。
在互联网中,是只存在IP的,IP其实就是一串数字,相当于你家里的门牌号,大家在网络中想找到你,必须通过这个,所以IP对于每个人来说是唯一的。但是第四代IP都是XXX.XXX.XXX.XXX这样的,多难记啊,谁会没事记住IP呢,更何况以后天那么长的IPV6,要记住不是得要人命!这时候一个聪明的科学家出来,我们给IP加一个别名,大家通过别名不就可以不记住这个IP,也可以知道这个IP了!于是就有了域名[Domain]这个东西.
当你访问www.ovear.info的时候
电脑的DNS解析系统就会自动问DNS服务器:尼知道www.ovear.info对应的IP地址是神马么?
DNS:窝帮你查查,奥,找到了,IP是[122.10.94.169].
Ovear的电脑:谢啦,再见
DNS:恩
对应现实就是,问知道张三的人:尼知道张三家在哪里么? 回答 在南山区 balabalabla。

当然这样解释还是不怎么恰当的,因为一个DNS服务器是不可能知道所有域名的地址的,因为这需要耗费极大地代价,所以这时候就出现了递归DNS和根DNS。(由于篇幅原因,Ovear就简单的说一下,其实还是有问题的。Ovear以后再写一篇文章详细阐述下DNS的工作原理,或者看[http://en.wikipedia.org/wiki/Domain_Name_System] QAQ)
根DNS是什么呢?大家想想,每个域名都有一个后缀,比如说ovear是[.info]后缀的。那么就有一个专门记录[.info]后缀的dns服务器,其他后缀也一样。这个DNS就是该域名的根DNS。
那么递归DNS呢?其实递归DNS就是一个代理人,是用来缓解[根DNS]压力的,如果大家都去问[根DNS],那[根DNS]不早就跪了。毕竟一个人(网站)的地址不是经常变的,所以就有了TTL这一说法,根据DNS的规定,在一个TTL时间呢,大家就认为你家里(域名所指向的IP)的地址是不会变的,所以代理人[递归DNS]在这个时间内,是只会问一次[根DNS]的,如果你第二次问他,他就会直接告诉你域名所指向的IP地址。这样就可以解决[根DNS]负载过大的问题啦。
顺便这一张图也可以很准确反映出来之前所说的~ =w=

1

说了这么久,口水都干了,那么DNS到底跟这次事件有什么关系呢~
首先来看张图

2

瓦特!肿么这么多域名都指向同一个IP了,这是什么情况0 0。其实这就是典型的[DNS污染]了。
我们知道互联网有两种协议,一种是TCP,一种则是UDP了(知道泥煤啊(╯‵□′)╯︵┻━┻都说我不是学计算机的了)。
TCP和UDP的主要差别就是:能不能保证传递信息的可靠性。UDP是不管消息是否到达了目标,通过什么途径的,他只管我发出去了就好,所以UDP比TCP快得多,但是可靠性没有TCP好。

3

而DNS查询默认就是用的是UDP,那么就很好劫持啦。在UDP包任何传输的路途上,直接拦截,然后返回给接收端就行了。
啧啧,说道这大家也隐隐约约知道这次事件的问题了吧,范围如此之广的劫持,必须要在各个省市的主干网上进行,而能处理这么大数据,同时能控制这么多主干网的。。啧啧啧。。。没错!就是GFW了~至于GFW是什么,Ovear在这就不说了,不然可能大家都见不到Ovear了QAQ。
说道这里,Ovear就准备手动查一下,到底是不是所推测的GFW呢?于是拿到了这个图(From XiaoXin)

4

与此同时运维也在各地的服务器上开始了跟踪查询,发现全国各地解析时间均为25ms左右。这时候结论就出来了。

这样就明显了,肯定是GFW做的了~~于是Ovear又好奇的查了下,这个IP是什么来头,为什么都要指向到这里去,于是Ovear发现了一些好玩的东西~(http://bgp.he.net/net/65.49.2.0/24#_dns)

5

从侧面点出了此次事件的始作俑者。
那么某FW为什么要这么做呢?Ovear在这里做一个无责任的推测,最有可能的就是:某FW的员工本来是想屏蔽这个IP段的,但是呢一不小心点进去了DNS污染这个选项,然后又没写污染目标,于是就全局污染了啧啧啧~

但是有些童鞋会问了(╯‵□′)╯︵┻━┻为什么他们都说用8.8.8.8就没事了~
其实这样子说是不正确的,因为Ovear之前用的就是8.8.8.8,上面也说了DNS查询默认使用的UDP查询,所以不管你用什么,照样劫持不误。其实8.8.8.8没问题是因为污染事件已经基本结束导致的,那么为什么污染结束后其他国内DNS都不能用,而Goole的DNS确可以正常的使用~于是Ovear就找到了张有趣的图片~

6

我先来解释下上面命令的用途吧~这个命令是用来直接向DNS服务器查询域名的~
其中的[-vc]参数是强制使用TCP来查询DNS服务器,这样就可以避免UDP污染的地图炮。

那么为什么污染结束后,DNS还会受到污染呢?其实原因很简单。Ovear之前说了,[递归DNS]是需要询问[根DNS]的,而默认的询问方式是采用的UDP,所以在国内的DNS服务器,自然就受到污染了。而之前Ovear也提到过TTL这件事~
在TTL周期内,根据协议[递归DNS]是直接吧结果缓存在自己那,是不会再去查询[根DNS]的,所以国内的DNS就把错误的结果缓存起来了~
而Google的DNS服务器基本都是在国外,所以查询的时候影响并不大,但是国内挺多域名使用DNSPOD啦,DNSLA的DNS,所以Google进国内查,还是会受到一定影响的。
因此,如果要完全避免这次的影响,有两个条件
1、你的域名的DNS必须是在国外
2、你查询的DNS必须在国外,而且如果在污染期需要通过TCP查询。
这样就可以避免这个问题了。

然后Ovear又手贱查了下这次的TTL,啧啧

7

如果没有人员来手动干预,这次的事件还是要持续蛮久的~。

另外Ovear在这里奉劝一句媒体,不要听风就是风,听雨就是雨。不要一味的把责任推给无关的DNSPOD等厂商。自己要有判断力。
顺便引用江主席的一句话

媒体啊,还是要提高自己的知识水平,晓得不晓得啊?(装幽默)唉,我也替你们着急啊,真的

———切换场景到Ovear家里—————–
咚咚咚
谁啊?
送快递的~你买的东西到了
啊!这么快就到了,咕嘿嘿,我期待了好久呢!
来了来了~

本文免翻墙链接:谷歌镜像 | 亚马逊镜像

Shop Amazon's New Kindle Fire

相关日志

You are receiving this email because you subscribed to this feed at blogtrottr.com.

If you no longer wish to receive these emails, you can unsubscribe from this feed, or manage all your subscriptions

没有评论:

发表评论