防DNS污染方案调研报告

网站被劫持了怎么办?

域名是否被墙。

DNS污染如何检测。                                                          网站劫持检测

网站打开速度检测。

检测网站是否被黑、被入侵、被改标题、被挂黑链。

在G+上碰到了出现DNS相关问题的网友,于是今天又测试了一下DNS的现状。整个过程很简单,只需一个命令即可:nslookup

在Windows的命令提示符下测试,基本的格式为:

nslookup DOMAIN DNS_IP

而国内的DNS问题基本分两种:

一、DNS记录劫持

DNS记录劫持是指DNS服务器上的DNS记录被恶意设定为不正确的内容。DNS劫持是长期的,不经手动更改不会修复。

一类是政策问题导致国内DNS会劫持某些站点,GFW你懂的。而另一类:

ISP为了其自身利益(妨碍访问竞争对手WZ、植入广告等等)进行的DNS劫持,这个在国内ISP中普遍存在,都有劫持DNS的能力。特点是,域名解析结果会一股脑的指向同一个IP,下面我们拿我所在的青岛联通的默认DNS(202.102.128.68)试试,得到以下两类结果:

C:Userscokebar>nslookup baidu.com 202.102.128.68
服务器: ns.sdjnptt.net.cn
Address: 202.102.128.68

非权威应答:
名称: baidu.com.lan
Address: 220.250.64.228

C:Userscokebar>nslookup facebook.com 202.102.128.68
服务器: ns.sdjnptt.net.cn
Address: 202.102.128.68

非权威应答:
名称: facebook.com.lan
Address: 220.250.64.228

C:Userscokebar>nslookup duowan.com 202.102.128.68
服务器: ns.sdjnptt.net.cn
Address: 202.102.128.68

非权威应答:
名称: duowan.com.lan
Address: 220.250.64.228

C:Userscokebar>nslookup taobao.com 202.102.128.68
服务器: ns.sdjnptt.net.cn
Address: 202.102.128.68

非权威应答:
名称: taobao.com.lan
Address: 123.129.254.19

一种是全劫持到123.129.254.18/123.129.254.19这两个地址,经查属于山东省济南市联通

另一种是劫持到220.250.64.228这个地址,经查是北京市联通

同时域名名称也在末尾多出了一个”.lan”

至此得出结论,202.102.128.68这个DNS并不是其实际的DNS服务器,他只是完成DNS劫持的使命的。下面分析一下整个的过程:

假如你通过浏览器访问google.com,那么202.102.128.68向你返回了123.129.254.18,于是你向这个IP发出了相应的打开google.com主页的请求,而这个请求被123.129.254.18这个服务器收到后,他会根据事先设定的规则判断,如果规则里说不对这个域名进行干扰,那么你的访问请求就会被forward到真正的google.com的服务器上去,可能对于大部分网站都属于这个情况,整个过程比直接返回真实IP慢不了多少,从延迟上肯定分辨不出。

而如果你要访问的域名在黑名单上,或者你输入了一个错误的不存在的域名,那么服务器处理的方式就多种多样了:

1、对于不存在的域名,直接返回一个联通预定义的提示你“输入的域名不存在”的网页,在提示用户的同时还能植入点广告可谓是一举两得,这个还属于良性的,比如说我将DNS改为联通的DNS,随便敲了个域名,得到下面的页面:http://nfdnserror17.wo.com.cn:8080/sdjc/self0.jsp?UserUrl=

我们可以ping以下这个不存在的域名来看看到底被指向到哪里了:

C:Userscokebar>ping dfslaw343412.com

正在 Ping dfslaw343412.com [220.250.64.228] 具有 32 字节的数据:

来自 220.250.64.228 的回复: 字节=32 时间=21ms TTL=247

再ping一下nfdnserror17.wo.com.cn

C:Userscokebar>ping nfdnserror17.wo.com.cn

正在 Ping nfdnserror17.wo.com.cn [220.250.64.228] 具有 32 字节的数据:

来自 220.250.64.228 的回复: 字节=32 时间=20ms TTL=247

可以看到得到的结果正是220.250.64.228这个IP,上面提到了,部分域名被劫持到这个IP。

2、forward到一个不正确的IP地址,导致无法连接服务器或者其他奇怪的现象,通常只针对被特殊照顾的极少数国外站点,比如说twitter可是说是重点照顾,facebook、youtube都没像twitter那样有DNS劫持+污染、封IP、TCP_RESET等那么全面的封锁形式。

我们可以试着ping以下twitter看看最终连接到哪里了:

C:Userscokebar>ping twitter.com

正在 Ping twitter.com [59.24.3.173] 具有 32 字节的数据:

请求超时。

可以看到被指向了59.24.3.173这一无法访问的IP。我们通过nslookup的-v参数来通过TCP方式查询google DNS看到真正的地址是199.59.X.X的三个地址:

C:Userscokebar>nslookup -v twitter.com 8.8.8.8

服务器:  google-public-dns-a.google.com

Address:  8.8.8.8

非权威应答:

名称:    twitter.com

Addresses:  199.59.148.82

199.59.150.7

199.59.149.198

杯具的是G+同样遭受联通的劫持,IPv4被解析到google其他服务器的IP上去了,导致G+无法打开,而在家里的铁通网实测是没有劫持的:

C:Userscokebar>ping plus.google.com

正在 Ping plus.google.com [74.125.39.102] 具有 32 字节的数据:

请求超时。

请求超时。

不过IPv6幸免于难可以连接并正常打开G+:

C:Userscokebar>ping plus.google.com

正在 Ping plus-china.l.google.com [2404:6800:4005:806::1009] 具有 32 字节的数据:

来自 2404:6800:4005:806::1009 的回复: 时间=288ms

来自 2404:6800:4005:806::1009 的回复: 时间=288ms

3、植入广告。返回一个带有广告的网页并将原网页嵌套进去,看起来就像你访问的站点放的广告一样,这个其实算违法了,以前这情况挺多,现在还这样搞的ISP没那么多了。

综上,DNS中间过了这么一道关后,实际劫不劫持全看ISP自己,虽然多数情况不会发生(被特殊照顾的某些国外网站除外 这些是必劫持),不过还是存在部分域名在部分省市存在劫持现象,影响正常访问某些站点或者被植入广告。

解决办法自不用说,对于多数ISP,如联通电信,使用114DNS通常没有问题,将DNS改为114.114.114.114/114.114.115.115,114DNS为各大运营商做DNS记录备份,号称无劫持,不过其实某些站点还是有劫持的比如说twitter,不过还好G+是完好的。
[2014.2.27]今天又使用了校园网测试,发现114DNS对于教育网政策不同,存在不解析Google的部分域名,劫持facebook等站点的现象,114DNS也不是最佳方案,对于这些站点还是老老实实挂上代理比较好。

二、DNS记录污染

DNS记录污染,指的是有人通过恶意伪造身份、利用漏洞等方式,向用户或者其他DNS服务器提供虚假的DNS记录。由于DNS记录存在一个生存期(TTL),在生存期内,DNS保存在缓存中,除非经过了大于一个TTL的时间,或者经手工刷新DNS缓存,虚假的记录会一直存在下去,并且如果污染了DNS服务器,这种污染还具有传染性。远程桌面连接软件

DNS污染具有暂时性,过了TTL周期,如果不进行再污染,污染就会消失。

DNS记录污染同劫持的不同之处,在于污染是对本来正确的DNS查询结果进行篡改,而劫持是DNS服务器自己把记录改成错误的内容。对于GFW来说,DNS劫持用于国内服务器,而对于国外服务器GFW无法更改其内容,故采用DNS污染方式篡改用户收到的信息。

GFW的DNS污染过程,是当你向国外DNS服务器查询DNS记录时候,这些流量走到国外出口处即会遭到GFW的关键字审查,如果上了黑名单,GFW会立即向你返回一个虚假的DNS记录。由于默认的DNS查询方式是UDP,加上DNS查询结果只认最快返回的结果,所以你一定是先收到了GFW给你返回的虚假DNS记录;就算100ms后你收到了真正的来自国外DNS的回复,那也会被你的系统无视掉。如果GFW想彻底污染一个域名,那么不只是普通用户,连国内所有的DNS服务器也会收到虚假的DNS纪录导致全国性的DNS污染。

前一段,不明原因的发生了国内大规模的DNS污染事件,国内大部分站点和部分地区均受到影响无法通过域名访问。这必定与GFW强大的DNS污染能力有关。

不过不仅仅是国外出口处DNS记录可能污染,各省市的ISP也可能利用现有GFW的技术进行自己的DNS污染,这种污染范围小一些,也是GFW的一环。

防止DNS污染的方法目前来说就是使用TCP协议代替UDP来进行DNS查询,因为TCP协议是有连接的协议需要双方握手成功才能通讯,从而避免GFW这种简单的DNS污染方式。目前GFW对于TCP方式的DNS查询其实已有阻断能力,但未大规模部署,目前貌似只有dl.dropbox.com会遭遇TCP阻断:

C:Userscokebar>nslookup -v -d dl.dropbox.com 8.8.8.8

------------

Got answer:

HEADER:

opcode = QUERY, id = 1, rcode = NOERROR

header flags:  response, want recursion, recursion avail.

questions = 1,  answers = 1,  authority records = 0,  additional =

QUESTIONS:

8.8.8.8.in-addr.arpa, type = PTR, class = IN

ANSWERS:

->  8.8.8.8.in-addr.arpa

name = google-public-dns-a.google.com

ttl = 15619 (4 hours 20 mins 19 secs)

------------

服务器:  google-public-dns-a.google.com

Address:  8.8.8.8

read failed: Result too large

read failed: Result too large

read failed: Result too large

read failed: Result too large

*** google-public-dns-a.google.com 找不到 dl.dropbox.com: Unspecified error

然而遗憾的是,目前主流的操作系统,如果不借助第三方软件是无法将系统的DNS查询方式从默认的UDP改成TCP的,实现起来颇为不便。

下面我们测试一下通过google dns:8.8.8.8来查询twitter.com的情况:

C:Userscokebar>nslookup -v twitter.com 8.8.8.8

服务器:  google-public-dns-a.google.com

Address:  8.8.8.8

非权威应答:

名称:    twitter.com

Addresses:  199.59.148.82

199.59.150.7

199.59.149.198

C:Userscokebar>nslookup twitter.com 8.8.8.8

服务器:  google-public-dns-a.google.com

Address:  8.8.8.8

非权威应答:

名称:    twitter.com

Addresses:  59.24.3.173

243.185.187.39

加了-v 参数的nslookup命令是通过TCP查询的,下面没有加 -v 的是通过默认UDP查询的结果,可以看到出现了不同的结果,证明GFW会对twitter.com进行DNS污染,twitter的污染估计是全国性的,发生在国际出口处。

同样,在这里通过8.8.8.8查询plus.google.com也出现了DNS污染,解析出的IP同样是谷歌的服务器然而并不是提供G+服务的服务器,这样最直接的现象是无法连接服务器,同时也可能出现下图这种诡异的现象,而这样,就伪造出一种是谷歌服务器自己出问题的假象。

另:关于IPv6下状况的讨论

去年下半年,我在青岛这边测试,曾出现针对IPv6的非常严格的DNS劫持,并在不久后加入了DNS污染,后来甚至加入了极为严格的关键字审查策略,导致google许多页面遭遇tcp_reset,不过目前又逐步和IPv4的策略保持一致了。我当时测试的一个图,分别用IPv4和IPv6来ping G+:

IPv6时候返回了一个非常奇葩的[10::2222]的IPv6地址,假到离谱… 实测IPv6下也存在针对DNS的污染,而且会污染到比较奇葩的IP上:

C:Userscokebar>nslookup plus.google.com 2001:4860:4860::8888

服务器:  google-public-dns-a.google.com

Address:  2001:4860:4860::8888

名称:    plus.google.com.lan

Addresses:  2001:da8:112::21ae

1.1.1.1

C:Userscokebar>nslookup -v plus.google.com 2001:4860:4860::8888

服务器:  google-public-dns-a.google.com

Address:  2001:4860:4860::8888

非权威应答:

名称:    plus-china.l.google.com

Addresses:  2404:6800:4005:804::1006

74.125.31.102

74.125.31.139

74.125.31.100

74.125.31.113

74.125.31.138

74.125.31.101

Aliases:  plus.google.com

而联通DNS和学校的DNS的状况都是只对IPv4做了劫持,IPv6无事:

C:Userscokebar>nslookup plus.google.com 2001:da8:7007:107::77

服务器:  ns2.dnscache.upc.edu.cn

Address:  2001:da8:7007:107::77

非权威应答:

名称:    plus-china.l.google.com

Addresses:  2404:6800:4005:c00::66

74.125.39.102

Aliases:  plus.google.com

不过目前GFW对IPv6的研究不足还无法做到像IPv4上那样的方式屏蔽youtube和facebook,开了https,规避了关键字审查后就能通过IPv6正常浏览了,而IPv4下就算你开了https你也上不了。

总结

DNS这种方式在设计出来后就遗留给了我们这样那样的安全问题,要伪造DNS记录太简单了,让其成为了GFW前期封杀网站的得力手段。不过通过DNS封杀风险也不小,出国前不久的全国性DNS污染事件,还有更早些时候GFW污染了国外DNS服务器导致某些国外国家无法正常上网的事件。同样DNS也是ISP植入广告、屏蔽竞争对手网站的给力方式。

就目前来说,对于联通、电信、移动之类的多数ISP,使用114DNS是较好的解决方案,在规避ISP恶意劫持DNS的同时,保证了像G+这样的能直连的google服务器的访问,而google DNS建议弃用吧,不像前几年好用了,现在一来可能会遭遇DNS污染,二来google dns对国内某些CDN的支持可能不是太好,三来ping比较高。

如果是教育网等一些用114DNS仍然会有劫持的用户,可以考虑使用dns代理,这样可以保证谷歌站点的直连,而其他被墙站点多数不仅仅是dns问题,仍然需要挂代理解决

原文地址:https://www.cnblogs.com/asd667/p/9896206.html

时间: 2024-10-31 19:04:42

防DNS污染方案调研报告的相关文章

一个防DNS污染的github项目

https://github.com/googlehosts/hosts 使用方法: 1.找到你需要的网站 2.$ sudo gedit /etc/hosts 3.粘贴到# The following lines are desirable for IPv6 capable hosts之前 4.保存退出gedit,执行$sudo /etc/init.d/networking restart 原文地址:https://www.cnblogs.com/vennchan/p/11563480.html

Android APK加固技术方案调研

@author ASCE1885的 Github 简书 微博 CSDN 最近项目中需要实现自己的APK加固方案,因此就有了这一篇调研报告. 软件安全领域的攻防向来是道高一尺魔高一丈,攻防双方都处于不断的演变和进化过程中,因此软件加固技术需要长期持续的研究与投入. 目前成熟的第三方解决方案 1. 娜迦 针对Android平台下的APP被逆向分析,破解,植入木马病毒后,用户敏感信息泄露或者被钓鱼网站劫持,NAGA Android保护采用防止静态分析与防止动态调试全面防护的思路,在未保护程序运行的不同

国内智能硬件行业 调研报告

智能家居行业调研报告 本报告将概要地描述国内外智能家居行业动态以及相关的技术进展,为公司下一阶段新产品的研发方向.产品整合和市场推广等公司战略提供一定的参考信息. 近几年,随着物联网的深入发展,智能家居,与之前仅仅为少数富豪所享受的不同,这次会逐渐走进寻常百姓家.2014年1月13日,谷歌公司收购智能家居公司NestLabs,这次收购给谷歌带来进入新市场的跳板.国内外众多电子科技展中,智能家居成为展览的主角之一.随着技术的进步,智能家居的软硬件成本呈下降趋势,当智能家居有了足够高的性价比和实用性

SANS:2016年网络威胁情报现状调研报告

2016年8月份,SANS发布了最新一期有关网络威胁情报的发展现状调研报告. 注意,本文不是译文.原文请前往http://www.sans.org/reading-room/,题为<The SANS State of Cyber Threat Intelligence Survey: CTI Important and Maturing>,需翻墙. 报告指出,随着网络空间安全威胁日趋严重,网络威胁情报(CTI)的作用更加凸显.41%的受访者表示他们运用CTI的能力趋于成熟,更有26%的人表示能

SANS:2016年安全分析调研报告

2016年12月6日,SANS发布了第4期(2016年度)安全分析调研报告.报告对全球348名受访者进行了调研.结果显示,38%的人用安全分析来评估风险,35%的人用安全分析来识别恶意行为,31%的人用来实现合规.这也是安全分析最常用的三个场景.安全分析自动化不足的问题依然没有多大改观,和上次调研相比,依然仅有4%的人认为自己完全最到了安全分析自动化,仅有22%的人使用了机器学习相关的工具来参与安全分析. 1.数据收集的范围 首先是应用日志(包括应用的审计日志),第二是网络FW/IDS/IPS/

Session共享实现方案调研

1.背景 随着互联网的日益壮大,网站的pv和uv成线性或者指数倍的增加.单服务器单数据库早已经不能满足实际需求.目前大多数大型网站的服务器都采用了分布式服务集群的部署方式,所谓集群,就是让一组计算机服务器协同工作,解决大并发,大数据量瓶颈问题.但是在服务集群中,session共享往往是一个比较头疼的问题.因为session是在服务器端保存的,如果用户跳转到其他服务器的话,session就会丢失,一般情况下,session不可跨服务器而存在.于是就有了分布式系统的session共享问题. 2.Se

解析《中国互联网软件测试行业2018年度调研报告》

之前收到了一份TesterHome的调查问卷邀请:2018年度中国测试行业问卷调研.最近问卷的汇总结果出来了,有2000+的测试童鞋参与了问卷调查. 从幸存者偏差角度来说,无论是覆盖率还是准确性,结果都有待商榷.不过也能从一定程度上给予参考. 这里我会挑几个测试同学们感兴趣的部分,说说我的看法,请大家理性看待... 传送门:中国互联网软件测试行业2018年度调研报告 一.测试人员年龄分布 从年龄的分布区间来看,目前测试行业的主力军还是26~30岁的同学.中国互联网行业软件测试岗位大概起始于04年

电梯调度——调研报告

需求调研报告 立项背景: 石家庄铁道大学基础教学大楼是一座18层的建筑,其内部配备4部电梯,学生和老师使用电梯的高峰时段相对集中于每次上课/下课的时段,故电梯的使用具有突发性和荷载量大的特点,故设计合理的电梯调度算法,避免出现 “公共汽车”,即把电梯作为总线,它从底部到顶部,停在每一层楼,打开门,让人们进出,然后把门关上,继续前进.之后到达顶层,它会下去.可以极大的提高电梯的工作效率. 石家庄铁道大学基础教学楼的电梯配置如下: 电梯数量:4部 电梯的最大容量为15人 电梯经过每楼层的时间:3秒

DNS污染和DNS劫持的解决办法

DNS污染是指一些刻意制造或无意中制造出来的域名服务器分组,把域名指往不正确的IP地址. DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址. DNS污染解决方法 1.使用各种SSH加密代理,在加密代理里进行远程DNS解析,或者使用VPN上网. 2.修改hosts文件,操作系统中Hosts文件的权限优先级高于DNS服务器,操作系统在访问某个域名