文章目录
浏览器安全
近年来随着互联网的发展,人们发现浏览器才是互联网最大的入口,绝大多数用户使用互联网的工具是浏览器。因此浏览器市场的竞争也日趋白热化。浏览器安全在这种激烈竞争的环境中被越来越多的人所重视。一方面,浏览器天生就是一个客户端,如果具备了安全功能,就可以像安全软件一样对用户上网起到很好的保护作用;另一方面,浏览器安全也成为浏览器厂商之间竞争的一张底牌,浏览器厂商希望能够针对安全建立起技术门槛,以获得竞争优势。因此近年来随着浏览器版本的不断更新,浏览器安全功能变得越来越强大。在本章中介绍了一些主要的浏览器安全功能。
同源策略
- 浏览器最核心最基本的安全功能,可以说Web是构建在同源策略之上的
- 浏览器的同源策略,限制了来自不同源的“document”或脚本,对当前“document”读取或设置某些属性
- 这一策略极其重要,试想如果没有同源策略,可能a.com的一段JavaScript脚本,在b.com未曾加载此脚本时,也可以随意涂改b.com的页面(在浏览器的显示中)。为了不让浏览器的页面行为发生混乱,浏览器提出了“Origin”(源)这一概念,来自不同Origin的对象无法互相干扰。
浏览器中JavaScript的同源策略
在浏览器中,
<script>、<img>、<iframe>、<link>
等标签都可以跨域加载资源,而不受同源策略的限制。这些带“src”属性的标签每次加载时,实际上是由浏览器发起了一次GET请求。不同于XMLHttpRequest的是,通过src属性加载的资源,浏览器限制了JavaScript的权限,使其不能读、写返回的内容。但XMLHttpRequest受到同源策略的约束,不能跨域访问资源,在AJAX应用的开发中尤其需要注意这一点。
浏览器沙箱
背景:在网页中插入一段恶意代码,利用浏览器漏洞执行任意代码的攻击方式,在黑客圈子里被形象地称为“挂马”。“挂马”是浏览器需要面对的一个主要威胁。近年来,独立于杀毒软件之外,浏览器厂商根据挂马的特点研究出了一些对抗挂马的技术。
采用多进程架构方案
- 多进程方案将浏览器的各个功能模块分开,达到防治"牵一发而动全身"的目的
- 首家采用多线程架构的是Chrome
沙箱架构
- 渲染引擎由Sandbox隔离,网页代码要与浏览器内核进程通信、与操作系统通信都需要通过IPCchannel,在其中会进行一些安全检查。
- 对于浏览器来说,采用Sandbox技术,无疑可以让不受信任的网页代码、JavaScript代码运行在一个受到限制的环境中,从而保护本地桌面系统的安全。
隐忧
- 虽然有多进程架构和Sandbox的保护,但是浏览器所加载的一些第三方插件却往往不受Sand-box管辖,Flash、Java、PDF、.Net Frame-work在近年来都成为浏览器攻击的热点。
恶意网址拦截
背景:除了挂马所加载的恶意网址之外,钓鱼网站、诈骗网站对于用户来说也是一种恶意网址。为了保护用户安全,浏览器厂商纷纷推出了各自的拦截恶意网址功能。
两类恶意网址:
-
挂马网站,这些网站通常包含有恶意的脚本如JavaScript或Flash,通过利用浏览器的漏洞(包括一些插件、控件漏洞)执行shellcode,在用户电脑中植入木马;
shellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名。shellcode常常使用机器语言编写。 可在暂存器eip溢出后,塞入一段可让CPU执行的shellcode机器码,让电脑可以执行攻击者的任意指令。
-
钓鱼网站,通过模仿知名网站的相似页面来欺骗用户。
黑名单
-
为了避免将复杂的恶意网址识别模型放在客户端上,避免收集用户的历史记录而侵犯隐私,浏览器厂商目前只是以推送恶意网址黑名单为主
-
PhishTank
-
-
Google也公开了内部SafeBrowsing API,使得社会能获得Google的恶意网址库。
EV SSL证书
- 扩展验证证书(Extended Validation Certificate,简称:EV证书)是一种根据一系列特定标准颁发的X.509电子证书。并向前兼容普通证书。如果浏览器不支持EV模式,则会把该证书当做普通证书;如果浏览器支持(需要较新版本的浏览器)EV模式,则会在地址栏中特别标注。
高速发展的浏览器安全
“浏览器安全”领域涵盖的范围非常大,且今天浏览器仍然在不断更新,不断推出新的安全功能。
-
IE 8中的XSS Filter功能
- 当用户访问的URL中包含了XSS攻击的脚本时,IE就会修改其中的关键字符使得攻击无法成功完成,并对用户弹出提示框。
-
Firefox 4中的Content Security Policy(CSP)
- 其做法是由服务器端返回一个HTTP头,并在其中描述页面应该遵守的安全策略。(由于XSS攻击在没有第三方插件帮助的情况下,无法控制HTTP头)
- 由于配置复杂,维护成本巨大而未能推广开
-
对于畸形URL的处理标准不同
- IE和Chrome中
www.google.com\abc
被解析为www.google.com/abc
- Firefox却不如此解析,
www.google.com\abc
将被认为是非法的地址 - 类似于上述对用户友好的功能也可能带来安全隐患
- IE和Chrome中
-
扩展和插件
- 除了插件可能存在漏洞外,插件本身也可能会有恶意行为。扩展和插件的权限都高于页面JavaScript的权限,比如可以进行一些跨域网络请求等
新的功能带来了更多的挑战
小结
浏览器的安全以同源策略为基础,加深理解同源策略,才能把握住浏览器安全的本质。在当前浏览器高速发展的形势下,恶意网址检测、插件安全等问题都会显得越来越重要。紧跟浏览器发展的脚步来研究浏览器安全,是安全研究者需要认真对待的事情。