|
凌晨三点,劫持我盯着浏览器地址栏里那个熟悉的劫持淘宝域名,页面却弹出一个澳门赌场的劫持广告。这不是劫持第一次了。上周查资料时,劫持某学术网站也莫名其妙跳转到色情直播平台。劫持路由器重启过,劫持DNS换过,劫持甚至重装了系统——问题依旧。劫持直到我抓包分析才发现,劫持HTTP协议本身就像没上锁的劫持邮局,任何中间人都能拆开你的劫持信件,塞进一张假广告再重新封好。劫持 HTTP劫持的劫持本质就是中间人攻击。你的劫持电脑和服务器之间隔着十几个路由器,每个节点都有机会篡改传输内容。运营商最常干这种事,他们用DPI设备扫描流量,发现HTTP请求就注入一段JavaScript代码。这段代码可能只是弹个广告,也可能是挖矿脚本,更狠的直接窃取cookie冒充你登录。我认识一个做电商的朋友,他的店铺后台曾被人植入恶意代码,所有订单金额都被偷偷改掉一分钱——几乎看不出来,但积少成多,一个月损失了六万。 技术上防劫持不难,HTTPS加密就能解决大部分问题。但诡异的是,某些地区对HTTPS连接也会做手脚。去年我访问GitHub时,证书链里凭空多出一个中间证书,浏览器报警说“不受信任的颁发者”。点开详情才发现,那是一个企业级根证书——显然是某个安全设备自动安装的。这种“合法”劫持更可怕,因为用户根本无从分辨。 普通用户能做什么?至少别用HTTP登录任何账号。我见过太多人为了省事,在公共WiFi上直接输密码,结果被同网络的攻击者用ettercap工具抓包。那种工具操作简单到令人发指,选个网卡点个开始,整个局域网的所有明文密码就像流水一样滚出来。还有那些免费VPN,你以为在加密,其实数据先经过他们的服务器——他们就是中间人本尊。 浏览器地址栏的小锁图标不是装饰。你点击“继续访问”那个红色警告页面时,等于主动放弃了所有安全保护。我有个同事贪方便,在办公室电脑上装了个破解版浏览器插件,结果每天午休时间浏览器都会自动打开几个垃圾网页。查了半天,插件作者在代码里埋了定时劫持逻辑——这种案例在安全社区里比比皆是。 说到底,HTTP劫持是互联网早期设计的原罪。那时候没人想到网络会承载这么多敏感信息,所以协议里根本没考虑加密。现在补丁打了一堆,但底层的脆弱性依然存在。你问我彻底解决的办法?除非全世界的网站都强制HTTPS,并且所有终端都严格校验证书——这基本等于让所有网络设备重写一遍。现实点说,我们只能学会辨别异常:如果页面加载突然变慢、网址栏出现奇怪后缀、或者原本干净的网站冒出广告,八成是被劫持了。这时候别再输入任何东西,直接关掉页面。 |