DNS污染与劫持
Posted 少年阿斌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DNS污染与劫持相关的知识,希望对你有一定的参考价值。
先介绍一个万能方法
介绍一个 网站监测工具:iis7网站监测
IIS7网站监控工具可以做到提前预防各类网站劫持,并且是免费在线查询,适用于各大站长,政府网站,学校,公司,医院等网站。它可以做到24小时定时监控,同时它可以让你知道网站是否被黑,被入侵,被改标题,被挂黑链,被劫持,被墙及DNS是否被污染等等功能,更是拥有独家检测网站真实的完全打开时间,让你作为站长能清楚知道自己网站的健康情况!
检测地址:http://wzjk.iis7.net/?zmyc
问题发现
我经常从edx课程的课程进行学习
我根据火狐的提示一直以为是协议的SSL3.0和TLS1.0的协议过时了,现在浏览器不支持。
后来才发现是3级域名被污染了。
ping courses.edx.org/login
本地电脑ping
远程服务端ping
DNS污染
网域服务器缓存污染(DNS cache pollution),又称域名服务器缓存投毒(DNS cache poisoning),是指一些刻意制造或无意中制造出来的域名服务器数据包,把域名指往不正确的IP地址。
其工作方式是:由于通常的DNS查询没有任何认证机制,而且DNS查询通常基于的UDP是无连接不可靠的协议,因此DNS的查询非常容易被篡改,通过对UDP端口53上的DNS查询进行入侵检测,一经发现与关键词相匹配的请求则立即伪装成目标域名的解析服务器(NS,Name Server)给查询者返回虚假结果。
DNS污染指的是用户访问一个地址,国内的服务器(非DNS)监控到用户访问的已经被标记地址时,服务器伪装成DNS服务器向用户发回错误的地址的行为。为了减免网络上的交通,一般的域名都会把外间的域名服务器数据暂存起来,待下次有其他机器要求解析域名时,可以立即提供服务。一旦有关网域的局域域名服务器的缓存受到污染,就会把网域内的电脑导引往错误的服务器或服务器的网址。
某些国家或地区出于某些目的为了防止某网站被访问,而且其又掌握部分国际DNS根目录服务器或镜像,也会利用此方法进行屏蔽。
简单点说,DNS污染是指把自己伪装成DNS服务器,在检查到用户访问某些网站后,使域名解析到错误的IP地址。
原理解析
我们假设A为用户端,B为DNS服务器,C为A到B链路的一个节点的网络设备(路由器,交换机,网关等等)。一次被污染的DNS请求过程是
A向B构建UDP连接,然后,A向B发送查询请求,查询请求内容通常是:“A baidu.com”,这一个数据包经过节点设备C继续前往DNS服务器B;
然而在这个过程中,C通过对数据包进行特征分析(远程通讯端口为DNS服务器端口,激发内容关键字检查,检查特定的域名如上述的“courses.edx.org/login",以及查询的记录类型"A记录"),从而立刻返回一个错误的解析结果(如返回了"A 54.85.51.136"),作为链路上的一个节点,C机器的这个结果必定会先于真正的域名服务器的返回结果到达用户机器A,因此C节点所返回的查询结果就被A机器当作了最终返回结果,用于构建链接。
DNS劫持
DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址。
简单点说,DNS劫持指的是通过非法手段,获取DNS服务器的权限,然后把DNS配置进行修改,使域名解析到错误的IP地址。
DNS污染和DNS劫持的区别
DNS劫持是劫持了DNS服务器,进而修改其解析结果。
DNS污染是国内的某些服务器对DNS查询进行入侵检测,发现与黑名单上匹配的请求,该服务器就伪装成DNS服务器,给查询者返回虚假结果。它利用了UDP协议是无连接不可靠性。
一个是劫持了DNS服务器,一个是伪装成DNS服务器。造成的结果都是返回错误的IP地址。
如何解决DNS污染和劫持
方法1手动更换DNS服务器
对于 DNS劫持,可以通过手动更换DNS服务器为第三方公共DNS解决。
方法2修改hosts文件
修改hosts文件,操作系统中Hosts文件的权限优先级高于DNS服务器,操作系统在访问某个域名时,会先检测HOSTS文件,然后再查询DNS服务器。
可以在hosts添加受到污染的DNS地址来解决DNS污染和DNS劫持。
其他方法
3、通过一些软件编程处理,可以直接忽略返回结果是虚假IP地址的数据包,直接解决DNS污染的问题。
4、如果你是Firefox only用户,并且只用Firefox,又懒得折腾,直接打开Firefox的远程DNS解析就行了。在地址栏中输入:
about:config
找到network.proxy.socks_remote_dns一项改成true。
5、使用DNSCrypt软件,此软件与使用的OpenDNS直接建立相对安全的TCP连接并加密请求数据,从而不会被污染。
以上是关于DNS污染与劫持的主要内容,如果未能解决你的问题,请参考以下文章