站点隔离

站点隔离（英語：site isolation）是存在於某些網路瀏覽器中的安全功能，能够让跨源网站彼此隔离。这一功能最初由查尔斯·赖斯（Charles Reis）等人提出，随后微软在其Gazelle研究性浏览器（英语：Gazelle (web browser)）中实现了该功能的迭代版本。然而，由于实现过程中的问题以及性能方面的担忧，该功能最初未被广泛采用。 2017年，幽灵漏洞和熔断漏洞被公开披露，次年谷歌开始在Chrome中开发站点隔离功能，并于2019年发布。2021年，Firefox也推出了站点隔离功能，开发过程中使用了代号“Project Fission”。 该功能具有显著的安全优势，但研究人员发现了与之相关的一些安全问题，包括对瞬态执行攻击（英语：Transient execution CPU vulnerability）的保护效果不佳，以及由该功能引发的新型计时攻击（英语：Timing attack）和资源耗尽攻击。 2017年前，主流网页浏览器的主要安全架构采用每浏览实例一进程（process-per-browsing-instance）模型。浏览器有多个沙箱进程，包括浏览器进程、GPU进程、网络进程、渲染进程。在浏览网页时，若需要特权提升，渲染进程会与其他特权服务交互。 这种旧模型能够防止恶意JavaScript访问操作系统，但在有效隔离各个网站方面仍显不足。然而新模型在性能和内存方面存在明显问题，因此未被广泛使用。 2017年披露的幽灵漏洞和熔断漏洞揭示了旧模型的严重缺陷。在漏洞披露前，任意访问内存难度很大，需要攻陷渲染器；而通过幽灵漏洞，仅需利用JavaScript特性即可读取渲染进程中几乎所有的内存，从而获取先前渲染的跨源页面中的敏感信息。为了防止类似的问题，需要开发新的安全架构，将不同网页的渲染完全隔离到相互独立的进程中。 2009年，查尔斯·赖斯（Charles Reis）等人首次提出了每网站一进程（process-per-site）模型，根据页面的来源隔离网页。同年，Gazelle研究性浏览器（英语：Gazelle (web browser)）对此做出了改进，不仅在网站之间进行隔离，还在同一页面中为每个来自不同域的内容元素创建独立的进程。与此同时，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团队还声称，站点隔离也能有效防止幽灵和熔断漏洞的计时攻击（英语：Timing attack）变体，这些攻击依赖于攻击者代码与受害者数据在同一进程的地址空间内共存。 2021年3月，Firefox开发团队宣布他们也将推出实现站点功能。这一功能花费数月开发，代号为“Project Fission”，且重写了进程处理代码。Firefox的实现方法与Chrome相比，能够避免在某些特定网页上受到uXSS攻击。 2019年之前，站点隔离仅在研究性质的浏览器中实现。站点隔离启用后，进程占用的内存空间增加，因此被认为是资源密集型的。这种性能开销在实际使用中也有所体现。Chrome使用站点隔离后，平均会多占用一到两个处理器核心。此外，参与站点隔离项目的工程师观察到，使用站点隔离时内存使用量增加了10%到13%。 Chrome是首个采用站点隔离作为防御uXSS攻击和瞬态执行攻击（英语：Transient execution CPU vulnerability）的主流网页浏览器。为此，开发团队克服了多个性能瓶颈和兼容性问题，并在整个行业范围内推动了浏览器安全性（英语：Browser security）的提升。然而，站点隔离针对幽灵漏洞的某些防御措施仍显不足，尤其是在防御计时攻击方面。2021年，阿尤什·阿加瓦尔（Ayush Agarwal）等人开发了名为Spook.js的攻击，能够突破Chrome的幽灵漏洞防御，窃取其他来源的网页上的数据。同年，微软的研究人员通过精细操控站点隔离所采用的进程间通信协议，实施了各类计时攻击，最终获取跨源信息。 2023年，波鸿鲁尔大学的研究人员发现，他们能够利用站点隔离所需的进程架构來耗尽系统资源，并执行DNS欺骗等高级攻击。 Reis & Gribble 2009，第225-226頁. Dong et al. 2013，第78-79頁. Jia et al. 2016，第791-792頁. Dong et al. 2013，第89頁. Zhu, Wei & Tiwari 2022，第114頁. Jin et al. 2022，第1525頁. Röttger & Janc. Rogowski et al. 2017，第336-367頁. Reis & Gribble 2009，第224-225頁. Paul 2009. Wang et al. 2009，第1-2頁. Reis, Moshchuk & Oskov 2019，第1674頁. Dong et al. 2013，第80頁. Gierlings, Brinkmann & Schwenk 2023，第7049頁. Kocher et al. 2020，第96-97頁. Reis, Moshchuk & Oskov 2019，第1661頁. Reis, Moshchuk & Oskov 2019，第1663-1664頁. Bishop 2021，第25-26頁. Rokicki, Maurice & Laperdrix 2021，第476頁. Reis, Moshchuk & Oskov 2019，第1667頁. Kim & Lee 2023，第757頁. Kim et al. 2022，第1007頁. Reis, Moshchuk & Oskov 2019，第1668頁. Cimpanu 2019. Layzell 2019. Narayan et al. 2020，第714頁. Kokatsu 2020. Reis & Gribble 2009，第229-230頁. Wang et al. 2009，第12-13頁. Warren 2018. Reis, Moshchuk & Oskov 2019，第1671頁. Jin et al. 2022，第1526頁. Jin et al. 2022，第1527頁. Agarwal et al. 2022，第1529-1530頁. Jin et al. 2022，第1525-1530頁. Gierlings, Brinkmann & Schwenk 2023，第7037-7038頁. 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. ISSN 0001-0782. S2CID 373888. doi:10.1145/3399742 （英语）.  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） （英语）.