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

2480                                   Journal of Software  软件学报 Vol.32, No.8,  August 2021

                    即通过抛弃掉同源策略对源的依赖,允许 frame 更加灵活地设置主体或信任的资源,将能够可配置地解决
                                                           [9]
                 同源策略对同源不同 frame 的过度授权问题.Cao 等人 提出了一种可配置的源策略(configurable origin policy,
                 简称 COP)来替代同源策略.不同于同源策略以源作为访问控制主体的安全属性,COP 是验证浏览器标注的可配
                 置的 ID.一个 frame 可以自由更改它的 ID,并且确保 ID 是不可猜测的,以防恶意 frame 将自身主体安全属性设
                 置为受害者的 ID.浏览器在进行访问控制时,只有主客体 ID 一致时才允许.若需要对同源不同 frame 进行隔离,
                 授权的 frame 只需要设置新的 ID 并确保不将该 ID 分享给其他非授权的 frame 即可.同源策略对同源不同 frame
                 的过度授权将得以解决.此外,COP 还支持不同源之间的资源共享,这可以通过分享 ID 完成.
                    (3)  第 3 类是对浏览器其他安全机制的安全增强.
                    Stefan 等人 [60] 提出了 COWL 策略来防止敏感数据的泄漏,在该策略中,一个 frame 将根据接收到的来自其
                 他 frame 的敏感数据来设置安全标签.考虑到同源策略对同源不同 frame 的过度授权,Stefan 等人指出:在浏览器
                 进行同源策略验证时,将同时检查主客体的安全标签是否一致,若不一致,则拒绝访问.这种两层的访问控制将
                 不同安全标签的 frame 进行隔离,从而解决了该场景下的同源不同 frame 过度授权问题.Somé 等人                       [10] 发现,内容
                 安全策略机制会被同源策略所破坏.从访问控制角度来说,这种漏洞存在的原因是同源策略的过度授权;从部署
                 角度来说,是因为同一网站中有不同 frame 具备不同的内容安全策略标签,因此可以从部署角度来减轻安全威
                 胁.Pan 等人 [68] 提出了 CSPAutoGen 系统.CSPAutoGen 系统通过训练的手段来为每个网站生成对应的模版,根据
                 模版来为该网站设置内容安全策略规则.一个网站可以利用 CSPAutoGen 系统来为所有 frame 设置相同内容安
                 全策略规则,从而避免由于同源策略导致的过度授权.此外,许多工作也对内容安全策略策略进行了分析                                   [69−71] 与
                 不同角度的加固      [72,73] .
                    总的来说,前两类防御机制通过对同源策略进行修改,来应对同源不同 frame 的过度授权问题.相比而言,第
                 二类防御机制是从根本上解决问题,且除了实施细粒度的同源策略外,还可以将不同源的 frame 合并作为同一
                 个主体.然而,对同源策略的安全增强,为 Web 应用开发者提出了新的要求:Web 开发者需要确定资源的可信度
                 而设置不同主体,这将影响这些新的策略的可行性.第三类机制通常针对于特定的安全威胁场景,没有从根本上
                 来解决同源不同 frame 的过度授权问题,因此不具备普适性,但是不需要对同源策略进行更改,从而保持向后兼
                 容性.
                 3.3   不同源frame的过度授权与防御
                    浏览器同源策略的目标是进行源与源之间的隔离,然而为了满足 Web 应用的需求,同源策略规则对两类特
                 殊跨源资源访问没有作出限制:首先,同源策略允许一个 frame 向任意源的 Web 服务器发送数据;其次,同源策略
                 允许一个 frame 使用〈script src=“xxx”〉的方式来执行任意源的脚本.研究发现:结合浏览器的 cookie 机制,攻击者
                 可以利用这两类合法跨源资源请求来修改与偷取跨源数据,使得不同源的 frame 被过度授权.本小节将首先分
                 析不同源 frame 被过度授权的场景及安全威胁,最后总结分析现有的安全防御工作.
                 3.3.1    安全威胁
                    根据利用的同源策略规则的不同,研究者们发现了不同源 frame 可以获取过多权限的两种攻击:跨站请求
                 伪造(cross-site request forgery,简称 CSRF)攻击与跨站脚本注入(cross-site script inclusion,简称 XSSI)攻击.
                    CSRF 攻击存在两种形式,包括 preAuth-CSRF(也被称为 Login CSRF)攻击与 Auth-CSRF 攻击.preAuth-
                 CSRF 攻击由 Barth 等人 [11] 于 2008 年提出,该攻击发生在用户未登录受害者网站或者 cookie 已经过期的情况下.
                 在 preAuth-CSRF 攻击中,用户由于无意或者受到钓鱼攻击等访问了攻击者网页.攻击者网站(attacker.com)与受
                 害者网站(如 google.com)属于不同的源.当用户访问攻击者网页时,攻击者 frame 将主动向受害者网站发送一条
                 POST 网络请求,并且携带上攻击者自己选择的账号与密码.受害者网站将在认证账号密码后,将与用户浏览器
                 协商 cookie 来保存会话.此后,用户可能在 cookie 还没有过期前访问了受害者网站的网页,并且执行一系列的操
                 作,如在 Google 搜索引擎中进行搜索.由于 cookie 的存在,受害者网站服务器将会错误地认为该搜索行为来自于
                 攻击者账号.因此,攻击者将能够事后在自己的浏览器上访问受害者网站来获取用户的历史搜索信息,从而突破
                 同源策略对不同源 Web 应用资源的隔离限制.
   193   194   195   196   197   198   199   200   201   202   203