知往鉴今:Chromium近几年UXSS木马病毒剖析及减轻、防止和检验对策
一、序言
UXSS(实用跨站脚本攻击)是这种攻击方式,运用网页或网页拓展中的服务端木马病毒,在浏览随意資源(来原)时实行恶意代码(一般为JavaScript)。简而言之:
受害人浏览恶意网站(被攻陷/被感柒)后,网络攻击能够读书受害人的Gmail內容、FaceBook上的个人信息,并能够替代受害人实行别的使用,比如上传电子邮箱、图片上传等。
本项探讨的关键目地,是剖析先前3年来(2014年至2017年)Chromium网页中执行的不确定性减轻对策,并探寻可用以防止或检验UXSS木马病毒的前沿技术。
二、背静
SOP(同源对策)是Web程序运行安会建模中更为关键的定义之首。大部分,它能够避免不一样来原相互之间浏览储存在服务端上的统计资料(即:Cookie、网页菜单栏的內容、与一些Web程序运行有关的內容、服务端能用的內容)。
Origin是HTML规范中界定的URI预案,是服务器与网关的组成。假如2个URI都应用了同样的合同(比如:HTTPS)、同样的服务器(比如:google.com)和同样的网关(比如:443),那麼就会将两者觉得是同源的。不然,会分辨2个URI应属不一样源,初始状况下不可以浏览相互的统计资料。
在JavaScript中,应用实行语义(Execution Context)来表达编码被执行的坏境。初始状况下的语义是vscode实行语义(Global Execution Context),一般是在网页载入新页面时被建立。每一GEC常有自身的JS内嵌集,每一JS成员变量相等实行语义相同。API函数一般应用语义来实行浏览查验。
跨站脚本攻击(XSS)是这种服务端编码引入进攻,容许网络攻击毁坏客户与易受攻击的Web程序运行中间的互动。XSS木马病毒一般容许网络攻击以被害客户的身分实行随意使用,并浏览网址上的随意统计资料,进而避开SOP。当Web程序运行应用客户出示的键入转化成輸出內容,而沒有开展适度的认证时,就会造成这种木马病毒。现阶段,XSS是更为普遍的Web程序运行进攻种类。
实用跨站脚本攻击(UXSS)能够在网页本身或网页拓展中运用木马病毒来保持XSS的标准,而已不是在Web程序运行中运用木马病毒。因而,网络攻击不但能够浏览单独网址上的客户应用程序,还要浏览网页当今开启的一切网页,包含內部网页网页。针对应用一切网页的客户而言,针对一切网页而言,造成UXSS进攻的木马病毒,全是最关键的威协之首。Chromium Severity Guidelines将该类木马病毒分类为高严重后果木马病毒。
从网络攻击的视角看来,UXSS漏洞利用将会与沙箱肇事的无线代码执行(RCE)进攻相同有價值,由于UXSS木马病毒因此更为靠谱,而且在很多状况下能够考虑网络攻击的要求,否则网络攻击的目的是彻底攻陷受害人的设施。
在此项探讨中,常常牵涉到Chromium的多程序构架。相关该主題的大量详情,请参阅Chromium的管方word表格。本探讨中更为有关的內容给出:
1、Browser Process是网页程序运行的最关键、权利最大的程序。该程序具备两者之间电脑上运作Chrome的客户同样的限权,包含对文件系统、互联网栈、体系API等的访问限制。网页程序操纵最高级别的网页对话框、操作界面、进程间通信,并开展别的高级管理使用。
2、Renderer Process是1个限权较低的程序,承担向客户显视页面并实行JavaScript。Chromium为网页中开启的不一样网站建立了好几个渲染器程序,列举每一程序全是单独的,而且都会沙箱中运作,因而与进攻网页程序(Browser Process)对比,进攻渲染器程序的危害性取决于更低。
Blink是Chromium应用的渲图模块。
V8是Chromium应用的JavaScript和WebAssembly模块。
在布署升级的导行(Navigation)构架(也称之为PlzNavigate)以前(2017年10月以前),渲染器程序中的无线代码执行木马病毒能够简易地变换为UXSS。其缘故取决于,导行是由渲染器程序起动的,而恶意代码能够绕开跨源安全大检查。在PlzNavigate合理的状况下,网页程序承担解决全部导行恳求,并实行对策。
除此之外,在2016年12月之前,将完成的UXSS漏洞利用变换为Android上的无线代码执行漏洞利用是比较简单的。简而言之,网络攻击不用一切客户互动,也不用得到一切批准,只能在受害人的设施上安裝随意程序运行。在此之后,在根据Web流安装应用程序时,自始至终会提醒客户再次开展身份认证。
在Chrome的木马病毒奖赏方案中,对于UXSS和渲染器无线代码执行木马病毒递交的钱财奖赏是同样的。
三、简述
Chromium网页以及部件严格遵守了同源对策的定义。借助在Blink和V8语义的安会建模中应用SOP和站名防护等新作用,能够在每个方面上处理这
4.5 拓展API:涵数或成员变量的泄露,及其应用随意或尚未受权的createContext
4.5.1 叙述
拓展的体系能够浏览JavaScript內部的特殊部位,一起再也不能客户语义出示公众API。因为在API保持中存有不一样的不正确,因而有某些方法能够保持对拓展API的乱用。
这类别木马病毒的关键目的全是泄露內部成员变量。比如Bug 590275:
RequireForJsInner在內部成员变量启用GetProperty,该成员变量用以存储模块体系的另存涵数。在Object.prototype上界定的getter涵数将会会泄露该成员变量。接着,泄露的成员变量将用以获得跨源浏览,比如:
1、根据当地涵数(比如Bug 590118中的user_gestures.RunWithUserGesture);
2、根据乱用SendRequestNatives::GetGlobal来获得Bug 546677中的受害人对话框成员变量。
对于不一样的木马病毒,运用了不一样的修补系统。列举,1个特别注意的事例是:
1、终止在公众API中应用给出的creationContext;
2、提升对关联的阻拦。
4.5.2 汇报
(1)2015年6月6日(497507) 根据当地涵数保持跨源角本
(2)2015年9月22日(534923) 根据unload_event模快保持实用XSS
(3)2015年10月22日(546677) SendRequestNatives :: GetGlobal的实用XSS
(4)2016年2月26日(590118) 应用捕获的当地涵数的实用XSS
(5)2016年2月26日(590275) ModuleSystem::RequireForJsInner內部成员变量泄露造成实用XSS木马病毒
(6)2016年3月26日(598165) 根据Object.prototype.create阻拦关联造成的实用XSS木马病毒
(7)2016年4月6日(601073) 拓展关联中的实用XSS木马病毒
(8)2016年4月19日(604901) 根据SchemaRegistry保持的持久化实用XSS木马病毒
6.png
4.6 V8:缺乏或有误应用浏览查验
4.6.1 叙述
这类别木马病毒与第二类差不多,惟一的差别是查验的部位应当坐落于V8端。
以Bug 354123为例:
Object.setPrototypeOf的当今保持没有任何安全大检查。以便保持UXSS漏洞利用,网络攻击能够用1个成员变量来修改受害人的对话框原形,该成员变量具备重新定义的初始方式/特性浏览器,从受害人的JS语义中泄露成员变量。
对于该木马病毒,其解决方法比较简单,只需加上务必的浏览启用查验只能。
4.6.2 汇报
(1)2014年3月19日(354123)
(2)2015年2月6日(455961)
(3)2016年6月10日(619166)
7.png
4.7 特殊于Flash的难题
4.7.1 叙述
在Flash软件中,有其本身的SOP对策保持。此类木马病毒融合了软件本身中缺乏的安全大检查,及其Chromium的编码中对Flash的适用难题。
这类别的大部分不正确,全是由Adobe开展修补的。对于Bug 569496的修补方式,是为了防止PPB_Flash_MessageLoop中的网页载入。
4.7.2 汇报
(1)2014年10月20日(425280) 应用文件上传和跳转绕开Flash跨域对策(只限Chrome)
(2)2015年4月27日(481639) 根据ActionScript的Sound成员变量保持实用SOP绕开
(3)2015年12月14日(569496) 应用Flash信息循坏造成实用XSS木马病毒
8.png
4.8 修改难题:外界依靠项、修改方式(比如:设计模式、DevTools)、软件(比如:Pepper)和独特资源类型
4.8.1 叙述
此类木马病毒的缘故取决于Chromium编码库的不一样部位,没有任何实用的方式和周期性。事实上,能够将这种木马病毒独立分成类别,但人们将其放到“修改难题”的归类中,好像更为有效某些。
因为木马病毒的特性不一样,因此修补系统也彻底不一样。
列举,有2个难题(Bug 429542和Bug 594383)全是由file://合同的独特解决造成的。其修补方法为:
1、使“file:”变成合理的惟一来原;
2、在复位主架构以前运用WebSettings。
4.8.2 汇报
(1)2014年11月2日(429542) Linux上根据/proc/self/fd/保持文档到文档SOP绕开
(2)2014年12月23日(444927) 承继的designMode和跨对话框拖放容许改动跨源iframe的DOM
(3)2015年2月28日(4
相关文章
- 1条评论
- 鸽吻葵袖2022-05-29 22:24:52
- 造成这种木马病毒。现阶段,XSS是更为普遍的Web程序运行进攻种类。实用跨站脚本攻击(UXSS)能够在网页本身或网页拓展中运用木马病毒来保持XSS的标准,而已不是在Web程序运行中运用木马病毒。因而,网络