什么是DNS劫持?DNS劫持就是通过劫持了DNS服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修改后的指定IP,其结果就是对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。
在讲DNS劫持之前,让我们来了解一下DNS解析的过程:
step1:客户机输入域名(以百度为例):www.baidu.com ,系统会先检查自己的本地hosts文件中是否有这个网址映射关系,若有进入step2,若无,则查找本地DNS解析器缓存,有则进入step2,无则进入step3。
step2: 缓存或hosts文件返回IP地址映射关系,并完成域名解析.
step3:查询本地服务器,若查询的域名在本地区域资源中(具有权威性)或区域服务器中有该域名缓存(不具权威性),则进入step10,否则进入step4.
step4:本地DNS服务器向13台根DNS服务器发起请求
step5:根服务器判断域名(.com)属于哪台GTLD服务器管理,并返回GTLD服务器IP
step6:本地DNS服务器向GTLD服务器发起请求.
step7:(.com)GTLD服务器返回域名(www.baidu.com)的主机IP给本地DNS服务器.
step8: 本地DNS服务器像(www.baidu.com)目的主机发送请求.
step9: 目的主机(www.baidu.com)返回主机IP给本地DNS服务器.
step10: 本地DNS服务器返回目的主机IP给客户机,完成解析.
那么当有人劫持了DNS服务器,返回了错误的IP地址,会出现什么结果呢?
是不是发现了?你访问的网址会失去响应或者跳到别的恶意网站,是不是会怀疑自己访问的是个假网址?哈哈..
DNS劫持一方面可能影响用户的正常体验,用户被引到假冒的网站进而无法正常浏览网页。用户量较大的网站域名被劫持后恶劣影响会不断扩大,用户可能被诱骗到冒牌网站进行登录等操作导致泄露隐私数据.
那么,在已经被劫持后,该怎么做呢?
修改域名服务商和邮箱密码,定期更换复杂度高的密码.
删除无用的DNS解析,恢复DNS设置,关闭域名的泛解析.
排查网站代码,清除垃圾页面.
收集非法添加的页面并设置404,使用百度站长工具提交死链.
若使用的是第三方DNS服务,则立即修改第三方DNS服务端账户密码,锁定账户信息,开启邮件或短信提醒.
更换服务商.
那么我们该如何预防DNS劫持呢?
为域名注册商和注册用邮箱设置复杂密码且经常更换.
将域名更新设置为锁定状态,不允许通过DNS服务商网站修改记录,使用此方法后,需要做域名解析都要通过服务商来完成,时效性较差。
定期检查域名帐户信息、域名whois信息,査看事件管理器,清理Web网点中存在的可疑文件.
加强网站的防SQL注入功能,SQL注入是利用SQL语句的特点向数据库写内容,从而获取到权限的方法.
设置Web站点文件夹及文件操作权限.
利用事务签名对区域传送和区域更新进行数字签名.
删除运行在DNS服务器上的不必要服务.
在网络外围和DNS服务器上使用防火墙服务.
相信做好以上几点,DNS劫持是很难发生啦~