技术揭秘:安全浏览器真的安全吗?

中国的互联网公司做事情的浮躁已是众所周知。在浏览器行业,各种加壳浏览器在Webkit和Trident上套个马甲,再加点组件,动辄就冠之以"最快"、"最安全"来装点自己。你别说,人家还不脸红。

我一个在Chrome开发团队的哥们告诉我,Chrome 90%的开发资源只用来做3件事:快、安全、稳定。

这就是差距。

本文要吐槽的是"安全浏览器"。说实话,浏览器+安全的概念不错,虽然内核是人家的,自己还是能折腾出点花样的。但这几天看到某知名厂商随时把"最安全"挂在嘴边,我愤青的内心就被撩动了。

举例来说,当你网购时,有"经验"的卖家会"好心"向你推荐某知名安全浏览器,主打安全,你还心存感激。所以当他发你一个链接,该浏览器没报任何风险,你就放心大胆支付消费了。结果呢?这是一个钓鱼陷阱,你的资金早已直接捐给了骗子。安全浏览器真的安全吗?

纯粹技术分析太过于抽象,我选择360安全浏览器、猎豹浏览器和谷歌Chrome作为分析对象。为什么选这三款呢?360安全浏览器和猎豹浏览器都出身于国内主流安全厂商,体现了国内最高的安全实力,目前也均卖力主打安全牌;Chrome则是国际上公认最安全的产品之一,包括Firefox也采用了 Chrome的一些安全技术。IE呢?就不用提了吧。

浏览器安全应该需要什么指标?

有同学可能会说,安全应该是杀毒软件的工作职责呀。是的,完全正确。杀病毒、拦钓鱼确实是杀毒软件的份内事。但如果只能依靠杀毒软件,所谓安全的浏览器就只能称之为坑爹货!既然取名安全或者主打安全牌,就要拿出点干货来!

那么,安全的浏览器需要什么干货呢?顾名思义,就是你在浏览器内进行的任何操作都应该是受到保护和避开风险的。通俗地说,你访问色情网站,它要保证你不中毒;你网上购物,它要保证你不被盗;你登录微博,它要保证你的隐私不会泄露……

从技术角度来讲,安全的浏览器需要拦截别有用心的人一切可能的浏览攻击行为,至少要包括以下几个部分:

钓鱼网址访问拦截

挂马网站访问拦截

下载文件安全检测

防止键盘敲击遭记录

木马程序执行拦截

系统内核保护

网购支付页面防篡改

……

这些标准是不是过于严格?安全无小事。恰恰相反,以上这些是最最基本的,缺任何一项都存在风险。比如,如果没有木马拦截,对方发给你一张"宝贝细节图",你就可能已经中招,支付后才发现没转到支付宝上,钱款彻底无影踪。你要没中过招,问问身边的人,就知道网络有多危险了。

你的安全浏览器挂了几个钩?

哪款浏览器能实现上述功能?我采用了一个工具进行分析,可通过查看它挂了什么"钩子"(Hook)来判断它在哪些地方做了安全监控,再通过代码逆向的方式查看它具体设计了哪些功能?

"钩子",程序设计中的一个专业名词。Windows系统中存在一些重要的系统关键点,在这些关键点上"挂钩子",如下图,就可以在Windows原生程序流程的基础上运行额外的程序,实现特定的功能。如果要做安全防护,同样可以在一些关键处挂上安全监控的钩子。

图注:钩子(Hook)可以在Windows原生程序流程上增加关键点,运行额外的程序功能。

一般来说,系统中最关键的位置往往是内核,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,是一个操作系统的核心。任何程序包括恶意程序从启动到关闭的整个过程,都离不开内核的管理。因此,几乎所有安全软件都会在内核上挂钩子–内核钩子。