浏览器安全机制研究

2020-11-28 07:39陈欣华
中国管理信息化 2020年19期
关键词:安全机制沙箱浏览器

陈欣华

[摘    要] 浏览器安全机制是浏览器抵御网络攻击,保护用户信息安全的重要内容,对浏览器安全机制的研究具有重要的现实意义和实用价值。文中主要描述了浏览器安全的基本概念和遵循原则,概述了浏览器主要安全机制的内容和基本原理,通过分析注入攻击和沙箱逃逸两种攻击方式介绍了浏览器安全机制存在的缺陷。

[关键词] 浏览器;安全机制;同源策略;沙箱;安全机制缺陷

doi : 10 . 3969 / j . issn . 1673 - 0194 . 2020. 19. 076

[中图分类号] TP309    [文献标识码]  A      [文章编号]  1673 - 0194(2020)19- 0186- 02

0      引    言

随着信息技术的不断发展,浏览器成为人们获取信息不可或缺的重要方式,同样也使得浏览器成为网络攻击的重要目标。近些年频繁暴露的隐私信息泄露事件也使得浏览器安全越来越受到人们的关注。浏览器安全机制是浏览器抵御网络攻击、保护用户信息安全的重要内容。随着人们不断提高的信息安全需求,浏览器安全机制也在应对层出不穷的攻击方式的同时不断更新迭代。因此,对浏览器安全机制的研究,具有重要的现实意义和实用价值。

1      浏览器安全

浏览器安全是指在向用户提供完整浏览器功能的前提下,对用户信息安全进行防护,包括针对浏览器漏洞进行升级或提供补丁、拦截越权信息窃取、识别伪造的钓鱼网站等。根据信息安全标准,可以从机密性、完整性和可用性三个角度来描述浏览器安全遵循的安全原则:

(1)机密性:浏览器安全需要保证用户信息的机密性,即对攻击者通过恶意代码、越权访问等手段非法获取用户信息的攻击行为进行检测和拦截。

(2)完整性:浏览器安全需要保证用户信息的完整性,即对攻击者在未经授权的情况下恶意篡改或删除用户信息的攻击行为进行检测和拦截。

(3)可用性:浏览器安全需要保证浏览器对于用户的可用性,即在浏览器或网页服务器受到攻击时,保证用户能够使用浏览器正常地浏览网页和请求服务。

2      浏览器主要安全机制

浏览器主要的安全机制包括同源策略、浏览器沙箱、内容安全策略、Cookie机制等,下面分别对上述安全机制进行介绍。

2.1   同源策略

同源策略(Same-origin Policy, SOP)[1]是指页面之间互相访问时,禁止来自不同源的脚本读取或修改当前页面的某些属性,防止恶意的页面行为。需要注意的是,同源策略允许加载不同源的资源,并读取资源的高度、宽度等元属性,但是禁止脚本读取或修改返回的内容。同源策略是一種约定,是浏览器最基本的安全机制,所有浏览器均默认支持同源策略。

浏览器中页面的源通过<协议、主机、端口>的元组来定义。表1给出了与http://example.com/d1/a.html的源进行对比的示例。

2.2   浏览器沙箱

沙箱(Sandbox)[2]是一种隔离运行程序的安全机制,也可称为资源隔离模块。浏览器通过将不可信程序以有限权限运行在沙箱环境中,基于严格的访问控制策略限制不可信程序访问系统资源,从而阻止不可信程序的恶意行为。沙箱机制的基础是浏览器的多进程架构,每一个页面对应一个沙箱,页面崩溃时只会崩溃当前页面,不会影响其他页面,从而提高了浏览器的安全性和用户体验。

Google Chrome最早基于多进程架构实现沙箱机制,其主要进程包括高权限浏览器内核进程、低权限渲染引擎进程、插件进程、扩展进程,其沙箱架构如图1所示。网页代码在渲染引擎进程中执行,并通过沙箱进行隔离。网页代码与浏览器内核进程以及操作系统的通信必须通过进程间通信(IPC)通道,并执行严格的安全检查。其他的沙箱机制包括IE增强安全模式、FireFox 插件沙箱等。

2.3   内容安全策略

内容安全策略(Content Security Policy, CSP)[3]是一种以白名单的方式限制网页资源加载和执行的机制,最早由火狐浏览器引入,目前在主流的浏览器中均支持该机制。CSP在HTTP响应头部(X-Content-Security-Policy)或者页面中的meta元素定义页面信任的域和可以加载的资源。特别地,CSP默认禁止Eval及相关函数,以及内嵌的JavaScript代码。

2.4   其他安全机制

浏览器中其他的安全机制包括Cookie 机制、XSS过滤器、恶意网站拦截等:Cookie 机制通过消息摘要、数字签名和加密等技术来保证浏览器中保存的用户Cookie的安全性;XSS过滤器通过过滤用户输入,防止恶意的注入攻击,包括IE的XSS Filter和Chrome的XSSAuditor等;恶意网站拦截通过黑名单的方式拦截恶意网址,包括“挂马”网站和“钓鱼”网站等。

3      浏览器安全机制缺陷

尽管浏览器采用了多种安全机制,然而安全是相对的,这些安全机制仍然存在一定的缺陷。下面对注入攻击和沙箱逃逸这两种爆发频率和威胁度较高的缺陷进行分析。

3.1   注入攻击

注入攻击是指基于用户非法输入的攻击方式,主要包括跨站脚本攻击(Cross Site Scripting, XSS)[4]和SQL注入(SQL Injection)[5]:SQL注入是指攻击者在用户输入中包含非法SQL代码,试图操作服务端数据的攻击方式,其攻击目标是服务端;跨站脚本攻击是指攻击者在Web页面中插入恶意脚本,试图获取用户敏感信息(如Cookie)的攻击方式,其攻击目标是客户端。

注入攻击需要Web服务端和浏览器客户端对用户输入进行严格的检测和限制,然而在实际应用中总是存在安全限制不够完整的Web服务和浏览器,可被攻击者利用。例如,Dolière 等人[3]对 10 000 个顶级 Alexa 站点的 100 万个页面进行分析,发现由于同源策略限制不完整,至少 31.1%的嵌入同源 iframe并启用 CSP 的页面存在安全风险。Zheng等人[6]对Cookie注入攻击进行了分析,总结出Cookie注入漏洞的主要原因是SOP没有完整的域隔离。

3.2   沙箱逃逸

沙箱逃逸是指攻击者脱离沙箱的限制,获取更高的权限,从而能够访问和修改敏感数据。沙箱作为浏览器的重要安全机制,目前存在大量基于沙箱漏洞实现沙箱逃逸的研究和攻击行为。常见的沙箱逃逸包括以下几种:

(1) 基于策略引擎的沙箱逃逸。大多数沙箱基于进程的类型和资源特性设置访问控制策略,然而系统中的大量资源存在各种各样的特性,当访问控制策略权限限制不完整或者存在冲突时,可能导致攻击者绕过策略限制完成沙箱逃逸,例如,漏洞 CVE-2014-0257即利用Elevation Polices权限设置过高使得不可信进程可创建高权限进程来实现沙箱逃逸,漏洞 CVE-2016-1692即利用Chrome 浏览器Blink中非法类型CSS 样式表的策略冲突来实现沙箱逃逸。

(2) 基于共享资源的沙箱逃逸。当沙箱内存在不同级别进程均可访问的共享资源时,不可信程序与可信程序可访问相同的数据,导致不可信程序可能访问用户的敏感信息或者操纵可信程序。例如,Brain 等人[7]利用文件存储对话框和剪贴板等方式获取高权限进程即将调用的对象信息,通过在该对象中附加恶意代码达到控制高权限进程的目标,实现IE11 增强安全模式的沙箱逃逸。

(3)基于提权漏洞的沙箱逃逸。基于提权漏洞的沙箱逃逸是指不可信进程利用沙箱所在运行时环境的系统内核漏洞,获取更高权限,从而实现沙箱逃逸。例如,Yason[8]分析指出了IE 10 增强保护模式可通过文件系统、注册表访问等实现基于提权漏洞的沙箱逃逸。

(4)基于编码缺陷的沙箱逃逸。当沙箱的安全策略实现在开发过程中存在编码错误或缺失时,可导致攻击者利用该编码缺陷执行恶意代码或绕过策略检查,实现沙箱逃逸。例如,漏洞CVE-2013-2839即利用Chrome在C++对象类型转换时类型检查不完整的缺陷实现对敏感对象的访问。

4      总    结

浏览器安全机制是保护浏览器用户信息安全的重要内容。文章对浏览器安全机制进行了分析,首先描述了浏览器安全的基本概念和遵循原则,接着概述了当前浏览器主要安全机制的内容和基本原理,包括同源策略、浏览器沙箱和内容安全策略等,最后通過分析注入攻击和沙箱逃逸这两种最常见和危害最高的攻击方式,介绍了浏览器安全机制在权限限制、策略实现等方面存在的安全缺陷。

主要参考文献

[1]Saiedian H, Broyle D. Security Vulnerabilities in the Same-Origin Policy: Implications and Alternatives[J]. Computer, 2011.

[2]Schreuders Z C, Mcgill T, Payne C. The State of the Art of Application Restrictions and Sandboxes: A Survey of Application-Oriented Access Controls and Their Shortfalls[J]. Computers & Security, 2013.

[3]Some D F, Bielova N, Rezk T. On the Content Security Policy Violations due to the Same-Origin Policy[J]. Cryptography and Security, 2017.

[4]Shalini S, Usha S. Prevention Of Cross-Site Scripting Attacks XSS on Web Applications in the Client Side[J]. International Journal of Computer Science Issues,2011.

[5]William G J H, Jeremy V, Alessandro O. A Classification of SQL Injection Attacks and Countermeasures[C]. International Symposium on Secure Software Engineering, 2006.

[6]Zheng X, Jiang J, Liang J, et al. Cookies lack integrity: real-world implications[C]. Usenix Security Symposium, 2015.

[7]Brain G. Thinking out of the Sandbox Violating Trust Boundaries in Uncommon Ways[C]. Black Hat USA, 2017.

[8]Yason M. Diving into IE 10 Enhanced Protected Mode Sandbox[C]. Black Hat Asia,2014.

猜你喜欢
安全机制沙箱浏览器
反浏览器指纹追踪
Removing a stone
巧用沙箱检测文件安全
关于税收应用中的数据库安全机制浅析
Domino安全策略研究
铁路信号设备维护与安全机制分析
论10kV配电线路接地故障分析及预防
基于函数注入的沙箱拦截识别方法
环球浏览器
基于多安全机制的 Linux 应用沙箱的设计与实现