图示展现了站点隔离如何将不同网站分为不同进程
站点隔离 (英語:site isolation )是存在於某些網路瀏覽器 中的安全功能,能够让跨源 网站彼此隔离。这一功能最初由查尔斯·赖斯(Charles Reis )等人提出,随后微软 在其Gazelle研究性浏览器 中实现了该功能的迭代版本。然而,由于实现过程中的问题以及性能 方面的担忧,该功能最初未被广泛采用。
2017年,幽灵漏洞 和熔断漏洞 被公开披露,次年谷歌 开始在Chrome 中开发站点隔离功能,并于2019年发布。2021年,Firefox也推出了站点隔离功能,开发过程中使用了代号“Project Fission ”。
该功能具有显著的安全优势,但研究人员发现了与之相关的一些安全问题,包括对瞬态执行攻击 的保护效果不佳,以及由该功能引发的新型计时攻击 和资源耗尽攻击。
背景
2017年前,主流网页浏览器 的主要安全架构 采用每浏览实例 一进程 (process-per-browsing-instance )模型。浏览器有多个沙箱 进程,包括浏览器进程、GPU 进程、网络进程、渲染 进程。在浏览网页 时,若需要特权提升 ,渲染进程会与其他特权服务交互。
这种旧模型能够防止恶意JavaScript 访问操作系统 ,但在有效隔离各个网站 方面仍显不足。然而新模型在性能 和内存 方面存在明显问题,因此未被广泛使用。
2017年披露的幽灵漏洞 和熔断漏洞 揭示了旧模型的严重缺陷。在漏洞披露前,任意访问内存难度很大,需要攻陷渲染器;而通过幽灵漏洞,仅需利用JavaScript特性即可读取渲染进程中几乎所有的内存,从而获取先前渲染的跨源 页面中的敏感信息。为了防止类似的问题,需要开发新的安全架构,将不同网页的渲染完全隔离到相互独立的进程中。
历史
2009年,查尔斯·赖斯(Charles Reis )等人首次提出了每网站一进程(process-per-site )模型,根据页面的来源隔离网页。同年,Gazelle研究性浏览器 对此做出了改进,不仅在网站之间进行隔离,还在同一页面中为每个来自不同域的内容元素创建独立的进程。与此同时,OP(OP2浏览器的前身)、IBOS、Tahoma、SubOS浏览器也在进行相关工作,提出了不同方式以解决站点之间的进程分离问题。
应用
2019年,Google Chrome 项目的赖斯等人在USENIX Security 上发表了一篇论文,详细介绍了他们对浏览器安全模型所做的更改,以应对先前出现的幽灵漏洞。该论文称,这些更改参考了他和其他人在2009年提出的模型。Chrome的站点隔离根据来源在进程层面区分“站点”。此外,Chrome团队还实现了在进程外执行网站框架,这是Gazelle网络浏览器以及OP和OP2网络浏览器的作者建议的功能。这些改动需要重构 Chrome的进程处理代码。为此,320名贡献者在5年内共提交 了4000多次代码。
Chrome使用的站点隔离功能能够防止多种通用跨站脚本 (uXSS )攻击。这种攻击允许攻击者破坏同源策略 ,从而获得在其他网站上注入和加载攻击者控制的JavaScript的无限制访问权。Chrome团队发现,2014年至2018年间报告的94起uXSS攻击全部因站点隔离而失效。除此之外,Chrome团队还声称,站点隔离也能有效防止幽灵和熔断漏洞的计时攻击 变体,这些攻击依赖于攻击者代码与受害者数据在同一进程的地址空间 内共存。
2021年3月,Firefox 开发团队宣布他们也将推出实现站点功能。这一功能花费数月开发,代号为“Project Fission”,且重写了进程处理代码。Firefox的实现方法与Chrome相比,能够避免在某些特定网页上受到uXSS攻击。[ 26]
缺陷
2019年之前,站点隔离仅在研究性质的浏览器中实现。站点隔离启用后,进程占用的内存空间增加,因此被认为是资源密集型的。这种性能开销在实际使用中也有所体现。Chrome使用站点隔离后,平均会多占用一到两个处理器核心 。此外,参与站点隔离项目的工程师观察到,使用站点隔离时内存使用量增加了10%到13%。
Chrome是首个采用站点隔离作为防御uXSS攻击和瞬态执行攻击 的主流网页浏览器。为此,开发团队克服了多个性能瓶颈和兼容性问题,并在整个行业范围内推动了浏览器安全性 的提升。然而,站点隔离针对幽灵漏洞的某些防御措施仍显不足,尤其是在防御计时攻击方面。2021年,阿尤什·阿加瓦尔(Ayush Agarwal )等人开发了名为Spook.js的攻击,能够突破Chrome的幽灵漏洞防御,窃取其他来源的网页上的数据。同年,微软的研究人员通过精细操控站点隔离所采用的进程间通信协议 ,实施了各类计时攻击,最终获取跨源信息。
2023年,波鸿鲁尔大学 的研究人员发现,他们能够利用站点隔离所需的进程架构來耗尽系统资源,并执行DNS欺骗 等高级攻击。
参考资料
引用
来源
Reis, Charles; Gribble, Steven D. Isolating web programs in modern browser architectures . Proceedings of the 4th ACM European conference on Computer systems. ACM. April 2009: 219–232 [2023-12-24 ] . ISBN 978-1-60558-482-9 . S2CID 8028056 . doi:10.1145/1519065.1519090 . (原始内容存档 于2023-12-24) (英语) .
Rogowski, Roman; Morton, Micah; Li, Forrest; Monrose, Fabian; Snow, Kevin Z.; Polychronakis, Michalis. Revisiting Browser Security in the Modern Era: New Data-Only Attacks and Defenses . 2017 IEEE European Symposium on Security and Privacy (EuroS&P). 2017: 366–381 [2023-12-24 ] . ISBN 978-1-5090-5762-7 . S2CID 7325479 . doi:10.1109/EuroSP.2017.39 . (原始内容存档 于2020-02-10) (英语) .
Röttger, Stephen; Janc, Artur. A Spectre proof-of-concept for a Spectre-proof web . Google Online Security Blog. [2023-12-24 ] . (原始内容存档 于2023-12-24) (英语) .
Dong, Xinshu; Hu, Hong; Saxena, Prateek; Liang, Zhenkai. Crampton, Jason; Jajodia, Sushil; Mayes, Keith , 编. A Quantitative Evaluation of Privilege Separation in Web Browser Designs . Lecture Notes in Computer Science. Berlin, Heidelberg: Springer. 2013: 75–93 [2023-12-29 ] . ISBN 978-3-642-40203-6 . doi:10.1007/978-3-642-40203-6_5 . (原始内容存档 于2023-12-29) (英语) .
Warren, Tom. Chrome now uses more RAM because of Spectre security fixes . The Verge. 2018-07-12 [2023-12-30 ] . (原始内容存档 于2022-10-25) (英语) .
Reis, Charles; Moshchuk, Alexander; Oskov, Nasko. Site Isolation: Process Separation for Web Sites within the Browser . 2019: 1661–1678 [2023-12-24 ] . ISBN 978-1-939133-06-9 . (原始内容存档 于2023-11-28) (英语) .
Zhu, Yongye; Wei, Shijia; Tiwari, Mohit. Revisiting Browser Performance Benchmarking From an Architectural Perspective . IEEE Computer Architecture Letters. 2022, 21 (2): 113–116 [2023-12-24 ] . S2CID 252641754 . doi:10.1109/LCA.2022.3210483 . (原始内容存档 于2023-07-30) (英语) .
Paul, Ryan. Inside Gazelle, Microsoft Research's "browser OS" . Ars Technica. 2009-07-10 [2024-03-07 ] . (原始内容存档 于2024-06-05) (美国英语) .
Jin, Zihao; Kong, Ziqiao; Chen, Shuo; Duan, Haixin. Timing-Based Browsing Privacy Vulnerabilities Via Site Isolation . 2022 IEEE Symposium on Security and Privacy (SP). 2022: 1525–1539 [2023-12-24 ] . ISBN 978-1-6654-1316-9 . S2CID 247570554 . doi:10.1109/SP46214.2022.9833710 . (原始内容存档 于2022-07-28) (英语) .
Layzell, Nika. NIKA:\fission-news-1\> . mystor.github.io. 2019-02-04 [2023-12-30 ] . (原始内容存档 于2023-12-29) (英语) .
Agarwal, Ayush; o'Connell, Sioli; Kim, Jason; Yehezkel, Shaked; Genkin, Daniel; Ronen, Eyal; Yarom, Yuval. Spook.js: Attacking Chrome Strict Site Isolation via Speculative Execution . 2022 IEEE Symposium on Security and Privacy (SP). 2022: 699–715 [2023-12-24 ] . ISBN 978-1-6654-1316-9 . S2CID 251140823 . doi:10.1109/SP46214.2022.9833711 . (原始内容存档 于2022-10-27) (英语) .
Rokicki, Thomas; Maurice, Clémentine; Laperdrix, Pierre. SoK: In Search of Lost Time: A Review of JavaScript Timers in Browsers . 2021 IEEE European Symposium on Security and Privacy (EuroS&P) (PDF) . 2021: 472–486 [2023-12-24 ] . ISBN 978-1-6654-1491-3 . S2CID 263897590 . doi:10.1109/EuroSP51992.2021.00039 . (原始内容存档 (PDF) 于2022-12-17) (英语) .
Wang, Helen; Grier, Chris; Moshchuk, Alexander; King, Samuel T.; Choudhury, Piali; Venter, Herman; King, Sam. The Multi-Principal OS Construction of the Gazelle Web Browser . SSYM'09: Proceedings of the 18th Conference on USENIX Security Symposium. 2009-02-19 [2023-12-29 ] . (原始内容存档 于2023-09-04) (美国英语) .
Jia, Yaoqi; Chua, Zheng Leong; Hu, Hong; Chen, Shuo; Saxena, Prateek; Liang, Zhenkai. " The Web/Local" Boundary is Fuzzy: A Security Study of Chrome's Process-based Sandboxing . Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. CCS '16. New York, NY, USA: Association for Computing Machinery. 2016-10-24: 791–804. ISBN 978-1-4503-4139-4 . S2CID 7573477 . doi:10.1145/2976749.2978414 (英语) .
Bishop, Douglas L. Improvements of User's Security and Privacy in a Web Browser (学位论文). University of Dayton. 2021 [2023-12-24 ] . (原始内容存档 于2023-12-24) (英语) .
Cimpanu, Catalin. Firefox to get a 'site isolation' feature, similar to Chrome . ZDNET. 2019-02-06 [2023-12-29 ] . (原始内容存档 于2023-12-29) (英语) .
Narayan, Shravan; Disselkoen, Craig; Garfinkel, Tal; Froyd, Nathan; Rahm, Eric; Lerner, Sorin; Shacham, Hovav; Stefan, Deian. Retrofitting Fine Grain Isolation in the Firefox Renderer . 2020: 699–716 [2023-12-24 ] . ISBN 978-1-939133-17-5 . (原始内容存档 于2023-12-24) (英语) .
Gierlings, Matthias; Brinkmann, Marcus; Schwenk, Jörg. Isolated and Exhausted: Attacking Operating Systems via Site Isolation in the Browser . 2023: 7037–7054 [2023-12-24 ] . ISBN 978-1-939133-37-3 . (原始内容存档 于2023-12-24) (英语) .
Kokatsu, Jun. Deep Dive into Site Isolation (Part 1) . Microsoft Browser Vulnerability Research. 2020-11-10 [2023-12-24 ] . (原始内容存档 于2023-12-24) (英语) .
Kim, Young Min; Lee, Byoungyoung. Extending a Hand to Attackers: Browser Privilege Escalation Attacks via Extensions . 2023: 7055–7071 [2023-12-24 ] . ISBN 978-1-939133-37-3 . (原始内容存档 于2023-12-24) (英语) .
Kocher, Paul; Horn, Jann; Fogh, Anders; Genkin, Daniel; Gruss, Daniel; Haas, Werner; Hamburg, Mike; Lipp, Moritz; Mangard, Stefan; Prescher, Thomas; Schwarz, Michael; Yarom, Yuval. Spectre attacks: exploiting speculative execution . Communications of the ACM. 2020-06-18, 63 (7): 93–101 [2024-06-05 ] . ISSN 0001-0782 . S2CID 373888 . doi:10.1145/3399742 . (原始内容存档 于2024-04-13) (英语) .
Kim, Sunwoo; Kim, Young Min; Hur, Jaewon; Song, Suhwan; Lee, Gwangmu; Lee, Byoungyoung. {FuzzOrigin}: Detecting {UXSS} vulnerabilities in Browsers through Origin Fuzzing . 2022: 1008–1023. ISBN 978-1-939133-31-1 . (原始内容存档 于2024-01-10) (英语) .