流量劫持
我们要访问一个网站的话,一般会有三个步骤:
①首先访问 DNS 服务器,将域名转换为 IP 地址。
②访问这个 IP 地址,这样用户就访问了目标网站。
③如果是一个建设良好的网站,一般会把静态资源放在 CDN 上。
流量劫持就是在这些环节当中,对数据进行偷窃、篡改,甚至转发流量进行攻击的这样一类行为。
一、DNS劫持
运营商的DNS服务器很难被攻破,不过计算机本地的DNS缓存就相对容易沦陷了,所谓的DNS投毒,就是通过污染计算机本地的DNS缓存,使用虚假的IP地址信息来替换真实的IP地址信息,以实现DNS劫持,这种劫持效果和运营商的DNS劫持效果差不多。
二、http劫持
所谓的HTTP劫持,是指来自网站的服务器的数据在到达用户的浏览器的半路上时,其数据被劫持并遭到篡改,这种情况一般出现在以http协议传输数据的网站上,因为这些数据是明文传送的。
三、CDN劫持
出现劫持一般有两种原因:一是 CDN 和用户之间,走的是 HTTP 协议,这种情况比较多见,解决起来比较容易,就是换成 HTTPS 协议;另一个是我们的服务器和 CDN 之间,以及 CDN 内部,是 HTTP 协议的,这样就比较头疼了。
四、如何防御
DNS劫持:锁定hosts文件,不允许修改;配置本地DNS服务器,或设置为信任的DNS服务器;路由器设置强密码;及时更新路由器固件;使用加密协议进行DNS查询;对个人终端进行病毒查杀;
HTTP劫持:使用https;拆分HTTP请求数据包;使用CSP和DOM事件进行监听和防御(通俗的讲开启CSP后可以让浏览器自动禁止外部注入恶意脚本,增加网站的安全性能。)
TCP劫持:使用加密通信,ssl代替http,或者使用IPSec-VPN等方法实现通信加密;通过本地复现流量劫持事件,并捕获网络流量,将正常流量与伪造的数据包作比较分析。劫持定位在内网确认大致位置,若在运营商层面,及时联系相关运营商
ARP劫持:避免共享式网络;将IP与MAC进行绑定;使用相关的防护设备、软件;定位问题主机进行处理;若为蠕虫病毒,查询全面流量记录进行分析。