Page 192 - 《软件学报》2021年第8期
P. 192
2474 Journal of Software 软件学报 Vol.32, No.8, August 2021
型仍然把属于同一个浏览实例的 frame 放置在同一个渲染进程中.据此,内存攻击者通常存在于图 2 所示的第 1
类研究场景中.
2.2 研究方向
浏览器中,不同主体之间数据的隐私保护与代码的隔离执行归功于同源策略.同源策略实施的有效性极大
地影响浏览器的安全,因而大量的研究者们对同源策略进行了研究.我们研究与分析了近年来与 Web 相关领域
的顶级会议(S&P、CCS、UsenixSecurity、NDSS、OSDI 以及 WWW 等)上与同源策略有关的论文,这些研究现
状可以分为以下 3 部分.
(1) 同源策略规则不足及应对(见第 3 节):在策略攻击者存在的情况下,考虑同源策略规则有可能存在的
不足与缺陷,分析这些不足可能导致的后果,并给出相应的弥补方案.例如,同源策略无法处理第三方
脚本的安全威胁、无法限制同源不同 frame 的权限、与其他浏览器机制协作时还会为不同源的 frame
赋予过多权限等.
(2) 跨域/跨源通信支持安全威胁及应对(见第 4 节):这一类研究方向考虑浏览器允许的跨域/跨源通信机
制,针对这些合法的通信方式进行安全分析,发现其中存在的安全威胁并提供相应的防御方案.
(3) 内存攻击下的同源策略安全(见第 5 节):这一类研究方向考虑在浏览器中发起内存攻击的可能性,并
基于此给出相应的内存攻击方案与防御措施.在内存攻击者存在的情况下,同源策略将无法实施有效
的资源访问控制,需要借助一些内存防御方案来进行抵御.
我们分析总结了这 3 类同源策略安全研究方向的攻击者类型、攻击原理、防御机制以及代表性研究工作,
表 2 给出了总结分析结果.
Table 2 Three research directions of same-origin policy security
表 2 同源策略安全的 3 类研究方向
研究方向 攻击者类型 攻击原理概述 防御机制概述 代表性研究工作
同源策略允许 frame Nikiforakis
第三方脚本的 隔离第三方脚本并提供 [6]
过度授权与防御 嵌入第三方脚本并赋予 安全的资源共享机制 等人 ; [30]
其与 frame 相同的权限 Ingram 等
同源策略 同源不同 策略 同源策略赋予同源的不同 设计与实现细粒度或 Cao 等人 ;
[9]
规则不足 frame 的过度 攻击者 frame 相同权限,然而存在 动态的同源策略,并增强 Lerner 等 [31]
及应对 授权与防御 不同 frame 不同权限的需求 其他相关浏览器机制
不同源 同源策略允许嵌入第三方脚本 为网络请求增加 [11]
frame 的过度 与发送任意网络请求,与 cookie 灵活的策略规则 Barth 等人 [12] ;
授权与防御 机制的配合将能破坏同源策略 或增强 cookie 机制 Lekies 等人
无服务器辅助的 跨域/跨源 API 所引起的 提供应用程序 [13]
跨域/ 跨域/跨源通信 机密性破坏与同源策略 级别的 API 安全 Singh 等人 ;
跨源通信 机制与防御 策略 规则的不一致性 封装或安全使用检测 Son 等 [14]
机制安全 服务器辅助的 攻击者
威胁及 跨域/跨源通信 跨域/跨源协议所引起的 修复跨域/跨源协议 Popescu [15] ;
应对 机密性与完整性破坏 漏洞与进行安全增强 Chen 等人 [16]
机制与防御
代码注入 注入任意代码来绕过 W^X、地址 Song 等人 [17] ;
攻击与防御 同源策略访问跨源资源 空间随机化 Blazakis 等人 [19]
内存攻击 代码重入 内存 利用代码重用攻击以 常数盲化、地址空间 Snow 等人 [32] ;
下的同源 攻击与防御 攻击者 获得任意代码执行能力 随机化、控制流完整性 Athanasakis
策略安全 来绕过同源策略限制 等人 [20]
仅数据攻击 修改安全相关元数据来 内存隔离、地址 Jia 等人 [22] ;
与防御 欺骗或绕过同源策略限制 空间随机化 Reis 等人 [33]
3 同源策略规则不足及应对
浏览器同源策略的目的是实现基于源的资源隔离,这些资源涵盖了 JavaScript 与 DOM 对象、cookie、本地
存储以及服务器返回的网络响应等.同源策略规则的不足,将使得攻击者能够绕过同源策略来非法获取不同源
的资源.同源策略规则的不足体现在以下 3 个方面.