链路劫持原理是什么?如何应对链路劫持?

链路劫持是对于服务器返回的数据包内容进行篡改或者抢先与服务器进行回包,在回包中强行插入恶意业务逻辑,干扰用户的正常使用,同样会造成广告、挂马等一系列的危害后果。  

2015 年,代码托管网站 GitHub 遭遇大流量 DDoS攻击。攻击者使用了链路劫持技术, 通过劫持百度广告联盟的 JS 脚本并将其替换成攻击 Github 的恶意代码,然后访问百度海 量用户的浏览器加载改恶意代码,发动针对 GitHub 的大规模分布式拒绝服务攻击。2016 年,美国最大的比特币公司 Blockchain 遭遇了 DNS 劫持,导致 Blockchain 的用户正常登录 后被引导至错误的页面,从而导致 Blockchain 的巨大损失。

1.链路劫持原理是什么?

链路劫持是指第三方(可能是运营商、黑客或者内鬼)通过在用户客户端至服务器之 间的网络线路中植入恶意设备,侦听用户和服务器之间的通信数据,达到窃取和篡改用户 重要数据的目的。链路劫持最常用的就是在网页中植入广告,当然也可以进行挂马、钓鱼, 还可以窃取帐号密码、银行卡、身份证等重要个人数据。

链路劫持的原理是侦听网络上的数据包,发现某些设定特征的包时,抢在服务器回包 之前进行回包,这样客户端会自动忽略服务器真正的响应包而接受先到的假回包,从而受 到欺骗和劫持。  

2.如何应对链路劫持?

从链路劫持的原理来看,其实是网络链路上侦听、伪造 TCP 包,达到控制目标网络链 路的行为。我们发现核心的问题是,客户端没有办法识别返回的应答是服务器返回的,还是第三方返回的,所以信任了第三方的应答,丢弃了真正的应答。解决这个问题可以通过 全程 HTTPS 来解决,HTTPS 使用了加密技术,第三方无法知道通信的密钥,保证通信的安全而不被劫持。 


参考文献:云原生应用架构实践》 网易云基础服务架构团队 著 

https://sq.163yun.com/blog/article/221404388877201408