深度剖析站点隔离机制,Part 2(上)
接上篇《深度剖析站点隔离机制,Part 1》
在上一篇文章中,我们为读者解释了站点隔离以及相关安全机制是如何缓解诸如UXSS和Spectre之类的黑客攻击的。然而,由于渲染器进程中的安全漏洞极为常见,因此,Chromium的威胁模型假设渲染器进程可能会遭到入侵,也就是该进程是不可信任的。为了与这种威胁模型保持一致,Chromium在2019年宣布了对站点隔离机制进行相应的改进,以进一步缓解被入侵的渲染器进程可能造成的危害。在这篇文章中,我们将为读者解释这些改进的细节,以及在此过程中发现的各种安全漏洞。
什么是被入侵的渲染器进程?
攻击者可能会在Chromium的渲染器进程中发现安全漏洞,例如在JavaScript引擎、DOM或图像解析逻辑中,这并不稀奇。有时,这些漏洞可能涉及内存错误(例如,UAF漏洞),导致攻击者的网页在渲染过程中能够执行他们自己的、任意的、本地的代码(例如汇编/C++代码,而不是JavaScript代码)。我们称这样的进程为“被入侵的渲染器”——作者:kaszAnforowicz
这意味着,被入侵的渲染器进程不仅可以读取渲染器进程中的所有内存空间,还可以对其进行写入操作。比如说,允许攻击者伪造渲染器进程的IPC消息给其他进程。这里列出了站点隔离的改进之处。
一个可以实现UXSS的站点隔离绕过漏洞
在寻找绕过站点隔离的方法时,我想起了Bo0oM发现的一个非常有趣的UXSS漏洞。在当时,站点隔离还只是一个实验性的功能,而且出于禁用状态,我想知道是否可以用这个漏洞来绕过站点隔离措施。
于是,我在启用站点隔离机制的情况下对UXSS漏洞进行了测试,发现它在某些方面仍然奏效。当源发生变化后,之前网站的流程仍会被重用。例如,如果试图访问cookie,会导致渲染器进程崩溃,因为站点隔离机制认为该进程不应该为另一个源请求cookie。
这简直就是一个完美的漏洞,完全可以用来绕过站点隔离,因为这个行为类似于一个被入侵的渲染器:我们可以覆盖渲染器进程中的源信息;当然,我们无法藉此绕过进程隔离安全机制。通过这个漏洞,我们可以测试哪个API不会在意伪造的源,并允许我们访问其他源的信息。所以,在进行测试的同时,我也把这个有趣的行为告诉了Masato。很快,他就发现了一个漏洞。原来,我们可以创建一个带有伪造源的BlobURL,并且,只要导航到这个BlobURL,就可以访问目标网站的cookie。
虽然我们挖到了上述漏洞,但我们必须确保这个漏洞仍然存在于稳定版中,因为UXSS的漏洞早已经被修复了。为此,我们进行验证并发现,只要在发送IPC创建BlobURL之前通过WinDbg修改源,就能在稳定版上触发这个漏洞。
在创建Blob URL时,通过在浏览器进程中对源进行相应的验证,就能修复这个问题。
伪造IPC消息
我们可以从上一个漏洞中可以清楚地看到,通过被入侵的渲染器测试站点隔离改进情况的最简单的方法,就是在渲染器进程发送源或URL信息的地方伪造IPC消息。但是,通过阅读代码来寻找这样的地方,并使用MojoJS来发送伪造的IPC消息,似乎是一项浩大的工程。
于是,我为WinDbg创建了一个名为spoof.js的JavaScript调试器扩展。因为spoof.js能够修改渲染器内存中的源和URL,所以,我只需要进行正常的WebAPI调用,就能完成IPC的测试工作。这样做还有一个意想不到的好处,就是还可以伪造传统的IPC消息,而非Mojo实现的IPC消息(如果我选择用MojoJS进行测试,就不可能做到这一点)。
postMessage中安全漏洞
在使用spoof.js进行测试的过程中,我意外发现不仅可以将postMessage发送到一个跨站点的窗口/frame中,还可以通过伪造源来接收来自不同的目标源的消息。
为了修复这个漏洞,只要通过在浏览器进程中对postMessage IPC的源进行相应的验证即可。
利用被入侵的渲染器欺骗地址栏
遗憾的是,我通过spoof.js只在postMessage中找到了一个漏洞。之后,我开始思考是否能够通过其他地方中的漏洞来绕过站点隔离,以确定代码审查与测试的目标。所以,我决定研究一下导航机制。
如果您稍微研究一下Chromium的导航机制,就会发现一个有趣的步骤:渲染器进程在提交导航时会向浏览器进程发送一个IPC消息。这个IPC消息非常耐人寻味,因为渲染器进程可以在导航启动后(即网络进程已经开始下载响应后),知道渲染器进程会将导航提交至哪个源和URL。如果浏览器进程的验证机制不够严谨,就容易出现安全漏洞。
在测试导航的处理过程时,我注意到,如果源是一个不透明的源(opaqueorigin),我就可以佯称导航已经提交至渲染器进程的任何URL。之所以存在这个漏洞,是因为任何URL都可以是一个不透明的源(使用iframe/CSP沙箱),所以对常规的的源与URL进行检查是没有任何意义的。目前,这个检查已经得到了加强,以确保地址栏欺骗无法实施。
滥用协议处理程序
我的另一个想法是,如果我可以使用registerProtocolHandlerAPI来导航任何协议到一些“坏”的URL(例如DataURL),结果会如何?所以,我检查了它们的实现代码,发现下面的限制是可以绕过/欺骗的:
协议/scheme必须位于allow-list中:
- 这个检查是在渲染器进程中进行的,而浏览器进程只实现了与浏览器处理的协议(例如http:, https:等)相关的deny-list检查。
- 目标URL必须与注册窗口同源。
- 这个检查也是在渲染器进程里面进行的,因此可以绕过。
- 用户必须接受权限提示。
- 权限提示中显示的源是用目的URL计算出来的,而目的URL可以用前面提到的方法进行伪造。
- 跨源的iframe可以调用registerProtocolHandler API。
- 如果传递Data URL,权限提示中不会显示源信息。
有了这些绕过技术,攻击者就可以通过以下步骤绕过站点隔离机制:
- 请求一个协议处理程序的权限,将以下Data URL作为目标URL:data:text/html,点击劫持一个带有自定义协议链接的受害者页面(如tel:、mailto:等)。
- 点击该链接会导航到上面的Data URL,该URL会在受害者的渲染器进程中执行。
通过在浏览器进程中加入适当的检查,就能修复这个漏洞。
Reader模式下的安全漏洞
当Edge开始提供阅读视图时,我们决定考察一下DOMDistiller,其作用是为Chrome中的Reader模式提供支持。我很好奇DOMDistiller是如何实现的,所以,开始着手对其进行了相应的安全测试。
Reader模式在渲染前会对网站的HTML内容进行过滤处理,以获得良好的阅读体验。虽然它们试图删除大部分危险的标签(如script、style等),但许多事件处理程序并没有进行适当地过滤(如
这本质上意味着,如果攻击者能够利用图像或视频解析中的内存破坏漏洞,或者能够绕过CSP,攻击者就能够入侵Reader模式进程或在Reader模式下执行脚本。
Reader模式的呈现方式为chrome-distiller:scheme,其中主机名为GUID,url参数指向要处理的页面,例如:
而且,由于可以重用GUID来呈现其他跨站点页面,因此,攻击者可以通过以下步骤利用Reader模式:
- 打开新的窗口进入受害者的网站(Reader模式会缓存页面)。
- 使用相同的GUID将受害者窗口导航到Reader模式。
- 这时,攻击者的窗口和受害者的窗口将处于在同一个过程中,使其可以窃取机密信息。
通过在主机名中加入url参数的哈希值以及改进过滤措施,就可以修复这个漏洞。
由此可以看出,Reader模式的设计非常脆弱,因为同一个进程可以处理来自不同站点的敏感数据,并且这个进程很容易被攻击者所入侵。如果借鉴一下“TheRuleof 2”的创意,那么站点隔离的“The Rule of 2”就是:
其他研究人员发现的站点隔离绕过方法
实际上,其他研究人员已经发现了许多很好的站点隔离绕过方法。
小结
在上一篇文章中,我们为读者解释了站点隔离以及相关安全机制是如何缓解诸如UXSS和Spectre之类的黑客攻击的。然而,由于渲染器进程中的安全漏洞非常常见,因此,Chromium的威胁模型假设渲染器进程可能会遭到入侵,也就是该进程是不可信任的。为了与这种威胁模型保持一致,Chromium在2019年宣布了对站点隔离机制进行相应的改进,以进一步缓解被入侵的渲染器进程可能造成的危害。在这篇文章中,我们将为读者解释这些改进的细节,以及在此过程中发现的各种安全漏洞。由于本文篇幅较长,所以分为两部分发表,更多精彩内容,我们将在下篇中加以介绍。
(未完待续)
本文翻译自:https://microsoftedge.github.io/edgevr/posts/deep-dive-into-site-isolation-part-2
鸿蒙官方战略合作共建——HarmonyOS技术社区
推荐系统
windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载
语言:中文版系统大小:5.31GB系统类型:Win11windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载,微软win11发布快大半年了,其中做了很多次补丁和修复一些BUG,比之前的版本有一些功能上的调整,目前已经升级到最新版本的镜像系统,并且优化了自动激活,永久使用。windows11中文版镜像国内镜像下载地址微软windows11正式版镜像 介绍:1、对函数算法进行了一定程度的简化和优化
微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载
语言:中文版系统大小:5.31GB系统类型:Win11微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载,微软2022年正式推出了win11系统,很多人迫不及待的要体验,本站提供了最新版的微软Windows11正式版系统下载,微软windows11正式版镜像 是一款功能超级强大的装机系统,是微软方面全新推出的装机系统,这款系统可以通过pe直接的完成安装,对此系统感兴趣,想要使用的用户们就快来下载
微软windows11系统下载 微软原版 Ghost win11 X64 正式版ISO镜像文件
语言:中文版系统大小:0MB系统类型:Win11微软Ghost win11 正式版镜像文件是一款由微软方面推出的优秀全新装机系统,这款系统的新功能非常多,用户们能够在这里体验到最富有人性化的设计等,且全新的柔软界面,看起来非常的舒服~微软Ghost win11 正式版镜像文件介绍:1、与各种硬件设备兼容。 更好地完成用户安装并有效地使用。2、稳定使用蓝屏,系统不再兼容,更能享受无缝的系统服务。3、为
雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载
语言:中文版系统大小:4.75GB系统类型:雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业的雨林木风品牌,其系统口碑得到许多人认可,积累了广大的用户群体,雨林木风是一款稳定流畅的系统,一直以来都以用户为中心,是由雨林木风团队推出的Windows11国内镜像版,基于国内用户的习惯,做了系统性能的优化,采用了新的系统
雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO
语言:中文版系统大小:5.91GB系统类型:Win7雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO在系统方面技术积累雄厚深耕多年,加固了系统安全策略,雨林木风win7旗舰版系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。win7 32位旗舰装机版 v2019 05能够帮助用户们进行系统的一键安装、快速装机等,系统中的内容全面,能够为广大用户
番茄花园Ghost Win7 x64 SP1稳定装机版2022年7月(64位) 高速下载
语言:中文版系统大小:3.91GB系统类型:Win7欢迎使用 番茄花园 Ghost Win7 x64 SP1 2022.07 极速装机版 专业装机版具有更安全、更稳定、更人性化等特点。集成最常用的装机软件,集成最全面的硬件驱动,精心挑选的系统维护工具,加上独有人性化的设计。是电脑城、个人、公司快速装机之首选!拥有此系统
番茄花园 Windows 10 极速企业版 版本1903 2022年7月(32位) ISO镜像快速下载
语言:中文版系统大小:3.98GB系统类型:Win10番茄花园 Windows 10 32位极速企业版 v2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动激活
新萝卜家园电脑城专用系统 Windows10 x86 企业版 版本1507 2022年7月(32位) ISO镜像高速下载
语言:中文版系统大小:3.98GB系统类型:Win10新萝卜家园电脑城专用系统 Windows10 x86企业版 2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程
相关文章
- 安全服务公司 Mimecast 确认 SolarWinds 黑客窃取了公司内部多个项目源代码
- 在黑客攻击频发的当今,如何保护自己免受黑客脚本的潜在威胁?
- U盘无法安全卸载怎么办 U盘无法安全卸载解决方法
- 2021年十大端点安全趋势
- 电脑怎么检查硬件故障 判断电脑故障看这个就够!
- 多达61%公司在2020年遭受勒索软件冲击
- 在线网速测试怎么测?
- 看看黑客都在偷窥什么!入侵个人电脑揭密(图)
- 黑客创建假冒 DirectX 12 下载网站被曝光,安装恶意软件窃取加密货币
- Ubiquiti提醒客户注意数据泄露问题
- 是否系统越复杂,漏洞就会越多?
- 26项网络安全国家标准获批发布
- 阿里20载磨一剑:为数字基建搭新安全架构培养人才
- PHP注入实例之PHP网站系统入侵(图)
热门系统
- 1华硕笔记本&台式机专用系统 GhostWin7 32位正式旗舰版2018年8月(32位)ISO镜像下载
- 2深度技术 Windows 10 x86 企业版 电脑城装机版2018年10月(32位) ISO镜像免费下载
- 3电脑公司 装机专用系统Windows10 x86喜迎国庆 企业版2020年10月(32位) ISO镜像快速下载
- 4雨林木风 Ghost Win7 SP1 装机版 2020年4月(32位) 提供下载
- 5深度技术 Windows 10 x86 企业版 六一节 电脑城装机版 版本1903 2022年6月(32位) ISO镜像免费下载
- 6深度技术 Windows 10 x64 企业版 电脑城装机版2021年1月(64位) 高速下载
- 7新萝卜家园电脑城专用系统 Windows10 x64 企业版2019年10月(64位) ISO镜像免费下载
- 8新萝卜家园 GhostWin7 SP1 最新电脑城极速装机版2018年8月(32位)ISO镜像下载
- 9电脑公司Ghost Win8.1 x32 精选纯净版2022年5月(免激活) ISO镜像高速下载
- 10新萝卜家园Ghost Win8.1 X32 最新纯净版2018年05(自动激活) ISO镜像免费下载
热门文章
- 1迅雷云播“手机看片神器”使用教程(随时随地秒速离线云播放)
- 2微信公众号怎么年审? 微信公众号年审流程及所需材料介绍
- 3Win10怎么设置网络按流量计费 Win10网络设置流量收费教程
- 4i7 6700主频是多少 i7-6700参数详解
- 5win7蓝屏代码7f指什 怎么解决 很严重
- 6安卓手机安装运行win7系统教程 安卓手机装win7系统教程
- 7aoc一体机电脑win10改win7系统及bios设置
- 8华硕b460主板装win7系统及bios设置教程 10代CPU安装Win7教程 BIOS设置 U盘启动 完美支持USB驱动
- 9高通骁龙8cx怎么样 高通骁龙8cx处理器详细介绍
- 10Steam提示“需要在线进行更新,请确认您的网络连接正常”怎么办?
常用系统
- 1电脑公司 装机专用系统Windows10 x86企业版 版本1903 2022年4月(32位) ISO镜像快速下载
- 2新萝卜家园 Ghost Win7 x64 SP1 极速版2022年7月(64位) 高速下载
- 3雨林木风 Ghost Win7 SP1 装机版 2020年12月(32位) 提供下载
- 4新萝卜家园电脑城专用系统 Windows10 x64 喜迎国庆 企业版 版本1903 2021年10月(64位) ISO镜像免费下载
- 5深度技术Ghost Win8.1 x32位 特别纯净版2020年3月(免激活) ISO镜像高速下载
- 6番茄花园Ghost Win8.1 x64 办公纯净版2019年10月(激活版) ISO镜像高速下载
- 7番茄花园 Windows 10 元旦特别 极速企业版 2021年1月(32位) ISO镜像快速下载
- 8笔记本系统Ghost Win8.1 (X64) 全新纯净版2018年10月(永久激活) 提供下载
- 9番茄花园 Windows 10 官方企业版 2020年4月(64位) ISO高速下载
- 10深度技术 Windows 10 x64 企业版 电脑城装机版2020年9月(64位) 高速下载