Page 201 - 《软件学报》2021年第8期
P. 201

罗武  等:浏览器同源策略安全研究综述                                                             2483


                        攻击者 frame 所利用的受害者网站的 cookie.浏览器自动阻止第三方 cookie 的特性,将能够应对 CSRF
                        与 XSSI 攻击.Franken 等人设计了一个框架来评估浏览器与浏览器扩展阻止第三方 cookie 功能的有效
                        性,实验发现了现有实现中的几个缺陷,这些缺陷将导致阻止第三方 cookie 功能被绕过.
                    除了防御这些攻击外,研究者们还提出了一系列的方案来帮助 Web 应用检测其网页中是否存在 CSRF 攻
                 击.Pellegrino 等人 [84] 提出了一个基于模型的安全测试框架 Deemon,来自动检测 CSRF 漏洞.Deemon 能够动态追
                 踪 Web 应用中诸如网络交互、服务器端执行与数据库操作等行为.根据追踪到的行为,Deemon 将推断出 Web
                 应用对应的模型图,然后利用推断的模型图进行图遍历,来识别脆弱的网络请求.这些脆弱的网络请求将作为
                 CSRF 漏洞的候选,最后,Deemon 在真实的 Web 应用上对候选 CSRF 漏洞进行验证.实验发现了 10 个著名的开
                 源 Web 应用上的 14 个未知的 CSRF 漏洞.Calzavara 等人     [85,86] 提出了第一种基于机器学习的方法 Mitch 来进行
                 CSRF 漏洞检测.Mitch 将著名网站中的 5 828 个 HTTP 请求作为训练集来运行有监督的机器学习算法.实验表
                 明,Mitch 在 20 个主要的网站中检测到了 35 个新的 CSRF 漏洞以及 3 个已知形式但之前未检测到的 CSRF 漏
                 洞.这些检测工具将有助于提醒 Web 应用开发者来进行安全加固.
                    通常而言,检测攻击的防御机制并不能从根本上防御这两类攻击,但能帮助 Web 应用开发者来进行安全加
                 固.而通过加强同源策略规则与 cookie 机制的两类方案能应对 CSRF 与 XSSI 攻击,但带来了一些其他问题:前
                 者在网络请求中携带了网页来源,从而面临着网页隐私泄漏风险;后者阻止第三方 cookie,但却对目前 Web 应用
                 的用户追踪等其他需求造成了影响.
                 3.4   方案对比与讨论
                    同源策略规则不足主要体现在 3 个方面:同源策略允许第三方脚本以宿主 frame 的权限执行,攻击者因而可
                 以利用第三方脚本来攻破宿主 frame,进而突破同源策略的限制(见第 3.1 节);新型场景与策略的出现,使得同源
                 不同 frame 需要被赋予不同的权限,但同源策略规则无法支持这些场景与策略(见第 3.2 节);同源策略允许一个
                 frame 给任意源发送网络请求,导致攻击者可以利用其他浏览器机制来访问跨源资源(见第 3.3 节).我们对这 3
                 类安全威胁进行总结分析,包括攻击方式、在当前 Internet 上发起攻击的影响范围评估及其代表性研究工作(见
                 表 5).
                            Table 5    Comparison on security threates caused by limitations of same-origin policy
                                         表 5   同源策略规则不足所引起的安全威胁对比
                                    攻击方式                     影响范围                   代表性研究工作
                                                     Alexa top 10k 网站中,88.45%的                [6]
                                  劫持第三方脚本            网站至少包含一个第三方脚本                 Nikiforakis 等人
                                                                         [6]
                          第三方      利用第三方           Alexa top 75k 网站中,37%的网站至少       Lauinger 等人 [36] ;
                          脚本的       脚本漏洞           包含一个已知漏洞版本的第三方脚本        [36]      Stock 等人 [35]
                         过度授权                                                               [37]
                                   利用第三方            Alexa top 100k 网站中,13%的网站       Kumar 等人  ;
                                                                                            [8]
                                  脚本的间接引用             运行有隐式依赖的外部脚本      [37]         Ikram 等人
                                 利用不同 URL 的          Alexa top1M 网站中,80%的网站         Lerner 等人 [31] ;
                                                                                            [9]
                                    同源 frame            将存在被攻击的风险     [31]            Cao 等人 ;
                         同源不同     利用不同位置的        Alexa top 10k 网站中,22%的网站注册了消息       Son 等人 [14] ;
                         frame 的    同源 frame   过滤器,存在被不同位置同源 frame 攻击的风险       [14]  Barth 等人 [59]
                         过度授权                                                               [10]
                                   利用不同安全            Alexa top 10k 网站的 1M 网页中,       Somé 等人  ;
                                 策略的同源 frame         31.1%网页存在被攻击的风险     [10]        Stefan 等人 [60]
                                                     从 Alexa top 1500 选取的 300 个    Sudhodanan 等人 [74] ;
                          不同源       CSRF 攻击          网站中,68%的网站能被攻击      [74]        Barth 等人 [11]
                         frame 的                                                            [12]
                         过度授权       XSSI 攻击          Alexa top 150 网站中,80%的网站       Lekies 等人 [75]  ;
                                                         存在被攻击的风险    [12]            Grossman
                    表 6 对应对以上安全威胁的防御机制进行了总结分析,包括方案目标、网页加载开销、兼容性与可用性以
                 及是否要求浏览器修改.总体而言,这些防御机制可以归为两个出发点.
                    •   增加强隔离机制:针对这些安全威胁,可以通过在同源策略的基础上增加强隔离机制来进行防御,包括
                        应对第三方脚本过度授权的 4 类防御机制(见第 3.1.3 节)、应对同源不同 frame 过度授权的前两类防
   196   197   198   199   200   201   202   203   204   205   206