web安全之DNS劫持

什么是DNS劫持?DNS劫持就是通过劫持了DNS服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修改后的指定IP,其结果就是对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。

在讲DNS劫持之前,让我们来了解一下DNS解析的过程:

DNS解析过程.png

  • 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劫持图解.png
是不是发现了?你访问的网址会失去响应或者跳到别的恶意网站,是不是会怀疑自己访问的是个假网址?哈哈..

DNS劫持一方面可能影响用户的正常体验,用户被引到假冒的网站进而无法正常浏览网页。用户量较大的网站域名被劫持后恶劣影响会不断扩大,用户可能被诱骗到冒牌网站进行登录等操作导致泄露隐私数据.

那么,在已经被劫持后,该怎么做呢?

  1. 修改域名服务商和邮箱密码,定期更换复杂度高的密码.

  2. 删除无用的DNS解析,恢复DNS设置,关闭域名的泛解析.

  3. 排查网站代码,清除垃圾页面.

  4. 收集非法添加的页面并设置404,使用百度站长工具提交死链.

  5. 若使用的是第三方DNS服务,则立即修改第三方DNS服务端账户密码,锁定账户信息,开启邮件或短信提醒.

  6. 更换服务商.

那么我们该如何预防DNS劫持呢?

  1. 为域名注册商和注册用邮箱设置复杂密码且经常更换.

  2. 将域名更新设置为锁定状态,不允许通过DNS服务商网站修改记录,使用此方法后,需要做域名解析都要通过服务商来完成,时效性较差。

  3. 定期检查域名帐户信息、域名whois信息,査看事件管理器,清理Web网点中存在的可疑文件.

  4. 加强网站的防SQL注入功能,SQL注入是利用SQL语句的特点向数据库写内容,从而获取到权限的方法.

  5. 设置Web站点文件夹及文件操作权限.

  6. 利用事务签名对区域传送和区域更新进行数字签名.

  7. 删除运行在DNS服务器上的不必要服务.

  8. 在网络外围和DNS服务器上使用防火墙服务.

相信做好以上几点,DNS劫持是很难发生啦~

-------------本文结束感谢您的阅读-------------