현장 격리

Site isolation

사이트 분리특정 브라우저에서 교차 출처 사이트를 서로 분리할 수 있는 기능입니다. 이 기능은 원래 2009년 Reis et al. 에 의해 제안되었으며, 이후 마이크로소프트에서 가젤 리서치 브라우저에 이 기능을 구현하는 형태로 반복되었습니다. 그러나 이 기능은 구현 및 성능 문제로 인해 관심을 끌지 못했습니다.

2018년, 대중에게 스펙터멜트다운 취약점이 공개된 후, 구글은 크롬에서 사이트 격리를 추가하는 작업을 시작했고, 결국 2019년 이 기능의 출시로 끝이 났습니다. 2021년에 파이어폭스는 또한 프로젝트 핵분열이라는 코드명으로 작업하던 사이트 격리 버전을 자체적으로 출시했습니다.

이 기능의 보안 이점에도 불구하고 연구원들은 이 기능의 다양한 측면을 둘러싼 보안 문제도 발견했습니다. 여기에는 Spectre 및 Meltdown과 같은 일시적인 공격에 대한 인식된 보호와 이 기능을 통해 활성화된 새로운 타이밍 및 리소스 소진 공격에 대한 문제가 포함됩니다.

배경

2017년까지 주요 브라우저의 지배적인 보안 아키텍처는 인스턴스별 프로세스 모델을 고수했습니다. 여기에는 브라우저 프로세스, GPU 프로세스, 네트워킹 프로세스 및 렌더링 프로세스를 포함한 별개의 샌드박스 프로세스가 포함된 브라우저가 포함되었습니다. 단일 렌더링 프로세스는 웹 페이지를 볼 때 상승된 작업을 실행하기 위해 필요할 때 다른 권한 있는 서비스와 참여하게 됩니다.[1][2]

이 모델은 악의적인 자바스크립트가 운영체제에 접근하는 것과 관련된 문제를 성공적으로 방지했지만, 웹사이트를 서로 적절히 격리할 수 있는 기능은 부족했습니다.[3] 이러한 우려에도 불구하고, 보다 강력한 모델의 채택은 특히 성능 및 메모리와 관련된 새로운 모델에 대한 인식 문제로 인해 제한된 견인력에 직면했습니다.[2][4]

그러나 2017년 스펙터멜트다운의 악용이 공개되면서 이 풍경이 바뀌었습니다. 이전에 제한된 메모리에 액세스하는 것은 손상된 렌더러가 필요한 상대적으로 관련된 프로세스였지만 Spectre 취약성으로 인해 임의의 메모리에 액세스하기가 훨씬 쉬워졌습니다. 이는 프로세스별 보안 모델의 문제점을 드러냈는데, 자바스크립트를 사용하면 웹사이트는 렌더링 과정에서 이전에 렌더링된 교차 원본 페이지의 중요한 정보를 저장하는 메모리를 포함한 거의 모든 메모리를 읽을 수 있습니다. 따라서 서로 다른 웹 페이지의 렌더링을 완전히 분리된 프로세스로 분리할 수 있는 새로운 보안 아키텍처가 필요했습니다.[5][6]

역사

수년 동안 사이트 격리 아키텍처의 여러 버전이 제안되었습니다. 2009년, Reis et al. 에서는 페이지의 웹 출처에 따라 웹 페이지를 분리하는 프로세스별 모델의 첫 번째 버전을 제안했습니다.[1] 이는 이후 Gazelle Research Browser를 통해 향상되었습니다. Gazelle은 웹 주체를 기반으로 특정 문서 프레임을 분리했습니다. 이는 로드되는 특정 문서와 일치하는 보안 장벽입니다.[7] 비슷한 시기에 OP(나중에 OP2 브라우저가 되는), IBOS, Tahoma, SubOS 브라우저에서도 작업이 진행되고 있었는데, 이들은 모두 사이트 간 프로세스 분리 문제를 해결하기 위해 서로 다른 패러다임을 제안했습니다.[8][2]

현대적 구현

2019년 구글 크롬USENIX Security 2019에서 스펙터 공격이 브라우저 렌더링 프로세스 내부에서 사용될 수 있음을 증명한 최근 연구에 따라 기존 브라우저 보안 모델의 세부 변경 사항을 설명하는 컨퍼런스 논문을 발표했습니다. 이 논문은 2009년 Reis et al. 의 연구에서 많이 차용한 모델의 변경을 제안했습니다. Chrome의 사이트 격리 구현은 프로세스 수준에서 웹 원본을 '사이트'의 주요 차별화 요소로 사용할 것입니다.[9][10] 또한 Chrome 팀은 OP와 OP2 웹 브라우저뿐만 아니라 Gazelle 웹 브라우저에서 제안했던 기능인 웹 프레임이 프로세스를 벗어나 실행된다는 아이디어도 구현했습니다. 이를 위해서는 Chrome의 프로세스 처리 코드를 대폭 재설계해야 했으며, 320명의 기고자로부터 5년 동안 4000건 이상의 커밋이 필요했습니다.[8]

Chrome의 사이트 격리 구현을 통해 여러 개의 범용 사이트스크립팅(uXSS) 공격을 제거할 수 있었고, 이를 통해 공격자는 동일한 출처의 정책을 손상시킬 수 있었습니다. Chrome 팀은 2014년과 2018년 사이에 보고된 94건의 uXSS 공격이 모두 Site Isolation에 배치되어 효과가 없다는 것을 발견했습니다.[11][12] 이 외에도 크롬 팀은 사이트 격리를 구현하면 공격자 프로세스와 동일한 프로세스에서 피해 주소 공간에 의존하는 다양한 유형의 타이밍 공격을 방지하는 데 효과적일 것이라고 주장했습니다.[8]

2021년 3월 파이어폭스는 사이트 격리 구현도 시작할 것이라고 발표했습니다. 이 기능은 프로젝트 핵분열이라는 암호명으로 여러 달 동안 개발되었습니다.[13] 파이어폭스의 구현은 크롬의 구현에서 발견된 몇 가지 결함, 즉 유사한 웹 페이지가 여전히 uXSS 공격에 취약하다는 사실을 반복했습니다.[14][11] 크롬과 마찬가지로 이 프로젝트에서도 파이어폭스의 프로세스 처리 코드를 다시 작성해야 했습니다.[15]

접수처

역사적으로 사이트 격리는 연구용 브라우저에서만 구현되었습니다. 이는 메모리 프로세스당 차지하는 공간의 양이 중복되어 자원 및 메모리 집약적인 접근 방식으로 간주되었기 때문입니다.[4][16] 이는 실제 구현에도 반영되었습니다.[17] Chrome의 사이트 격리 구현에는 사이트 격리 없이 평균적으로 1-2개의 코어가 필요했습니다.[4] 또한 사이트 격리 프로젝트를 수행하는 엔지니어들은 사이트 격리를 사용했을 때 메모리 사용량이 10~13% 증가하는 것을 관찰했습니다.[18][1]

Chrome은 uXSS와 일시적인 실행 공격에 대한 방어책으로 사이트 격리를 채택한 업계 최초의 주요 웹 브라우저였습니다. 이를 위해 여러 성능 및 호환성 장애를 극복하고 브라우저 보안을 개선하기 위한 업계 전체의 노력을 시작했습니다. 하지만, 기술의 흥미진진한 성과에도 불구하고, 현장 격리는 은총으로 간주되지 않습니다. 특히 사이트 고립의 타이밍 공격 방어 능력이 불완전한 것으로 나타났습니다.[19] 2021년, Agarwal et al.은 다른 출처의 웹 페이지에서 Chrome의 Spectre 방어를 깨고 데이터를 유출할 수 있는 Supok.js라는 악용을 개발할 수 있었습니다.[20] 같은 해에 마이크로소프트의 연구원들은 사이트 격리를 활용하여 다양한 타이밍 공격을 수행할 수 있었는데, 이를 통해 사이트 격리에 의해 사용되는 프로세스 간 통신 프로토콜을 신중하게 조작하여 출처 간 정보를 유출할 수 있었습니다.[19]

2023년, 루어 대학교 보훔의 연구원들은 사이트 격리에 필요한 프로세스 아키텍처를 활용하여 시스템 리소스를 소진하고 DNS 중독과 같은 고급 공격도 수행할 수 있음을 보여주었습니다.[21]

참고문헌

  1. ^ a b c Reis, Charles; Gribble, Steven D. (April 2009). "Isolating web programs in modern browser architectures". Proceedings of the 4th ACM European conference on Computer systems. ACM. pp. 219–232. doi:10.1145/1519065.1519090. ISBN 978-1-60558-482-9. S2CID 8028056. Archived from the original on 2023-12-24. Retrieved 2023-12-24.
  2. ^ a b c Dong, Xinshu; Hu, Hong; Saxena, Prateek; Liang, Zhenkai (2013). Crampton, Jason; Jajodia, Sushil; Mayes, Keith (eds.). A Quantitative Evaluation of Privilege Separation in Web Browser Designs. Lecture Notes in Computer Science. Berlin, Heidelberg: Springer. pp. 75–93. doi:10.1007/978-3-642-40203-6_5. ISBN 978-3-642-40203-6. Archived from the original on 2023-12-29. Retrieved 2023-12-29.
  3. ^ Jia, Yaoqi; Chua, Zheng Leong; Hu, Hong; Chen, Shuo; Saxena, Prateek; Liang, Zhenkai (2016-10-24). ""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. pp. 791–804. doi:10.1145/2976749.2978414. ISBN 978-1-4503-4139-4. S2CID 7573477.
  4. ^ a b c Zhu, Yongye; Wei, Shijia; Tiwari, Mohit (2022). "Revisiting Browser Performance Benchmarking From an Architectural Perspective". IEEE Computer Architecture Letters. 21 (2): 113–116. doi:10.1109/LCA.2022.3210483. S2CID 252641754. Archived from the original on 2023-07-30. Retrieved 2023-12-24.
  5. ^ Rogowski, Roman; Morton, Micah; Li, Forrest; Monrose, Fabian; Snow, Kevin Z.; Polychronakis, Michalis (2017). "Revisiting Browser Security in the Modern Era: New Data-Only Attacks and Defenses". 2017 IEEE European Symposium on Security and Privacy (EuroS&P). pp. 366–381. doi:10.1109/EuroSP.2017.39. ISBN 978-1-5090-5762-7. S2CID 7325479. Archived from the original on 2020-02-10. Retrieved 2023-12-24.
  6. ^ "A Spectre proof-of-concept for a Spectre-proof web". Google Online Security Blog. Archived from the original on 2023-12-24. Retrieved 2023-12-24.
  7. ^ Wang, Helen; Grier, Chris; Moshchuk, Alexander; King, Samuel T.; Choudhury, Piali; Venter, Herman; King, Sam (2009-02-19). "The Multi-Principal OS Construction of the Gazelle Web Browser". SSYM'09: Proceedings of the 18th Conference on USENIX Security Symposium. Archived from the original on 2023-09-04. Retrieved 2023-12-29.
  8. ^ a b c Reis, Charles; Moshchuk, Alexander; Oskov, Nasko (2019). Site Isolation: Process Separation for Web Sites within the Browser. pp. 1661–1678. ISBN 978-1-939133-06-9. Archived from the original on 2023-11-28. Retrieved 2023-12-24.
  9. ^ Bishop, Douglas L. (2021). Improvements of User's Security and Privacy in a Web Browser (Thesis). University of Dayton. Archived from the original on 2023-12-24. Retrieved 2023-12-24.
  10. ^ Rokicki, Thomas; Maurice, Clémentine; Laperdrix, Pierre (2021). "SoK: In Search of Lost Time: A Review of JavaScript Timers in Browsers". 2021 IEEE European Symposium on Security and Privacy (EuroS&P) (PDF). pp. 472–486. doi:10.1109/EuroSP51992.2021.00039. ISBN 978-1-6654-1491-3. S2CID 263897590. Archived (PDF) from the original on 2022-12-17. Retrieved 2023-12-24.
  11. ^ a b Kokatsu, Jun (2020-11-10). "Deep Dive into Site Isolation (Part 1)". Microsoft Browser Vulnerability Research. Archived from the original on 2023-12-24. Retrieved 2023-12-24.
  12. ^ Kim, Young Min; Lee, Byoungyoung (2023). Extending a Hand to Attackers: Browser Privilege Escalation Attacks via Extensions. pp. 7055–7071. ISBN 978-1-939133-37-3. Archived from the original on 2023-12-24. Retrieved 2023-12-24.
  13. ^ "Firefox to get a 'site isolation' feature, similar to Chrome". ZDNET. Archived from the original on 2023-12-29. Retrieved 2023-12-29.
  14. ^ Narayan, Shravan; Disselkoen, Craig; Garfinkel, Tal; Froyd, Nathan; Rahm, Eric; Lerner, Sorin; Shacham, Hovav; Stefan, Deian (2020). Retrofitting Fine Grain Isolation in the Firefox Renderer. pp. 699–716. ISBN 978-1-939133-17-5. Archived from the original on 2023-12-24. Retrieved 2023-12-24.
  15. ^ "NIKA:\fission-news-1\>". mystor.github.io. Archived from the original on 2023-12-29. Retrieved 2023-12-30.
  16. ^ Reis, Charles; Gribble, Steven D. (2009-04-01). "Isolating web programs in modern browser architectures". Proceedings of the 4th ACM European conference on Computer systems. EuroSys '09. New York, NY, USA: Association for Computing Machinery. pp. 219–232. doi:10.1145/1519065.1519090. ISBN 978-1-60558-482-9. S2CID 8028056.
  17. ^ Wang, Helen; Grier, Chris; Moshchuk, Alexander; King, Samuel T.; Choudhury, Piali; Venter, Herman; King, Sam (2009-02-19). "The Multi-Principal OS Construction of the Gazelle Web Browser". USENIX Security Symposium '09. Archived from the original on 2023-09-04. Retrieved 2023-12-29.
  18. ^ Warren, Tom (2018-07-12). "Chrome now uses more RAM because of Spectre security fixes". The Verge. Archived from the original on 2022-10-25. Retrieved 2023-12-30.
  19. ^ a b Jin, Zihao; Kong, Ziqiao; Chen, Shuo; Duan, Haixin (2022). "Timing-Based Browsing Privacy Vulnerabilities Via Site Isolation". 2022 IEEE Symposium on Security and Privacy (SP). pp. 1525–1539. doi:10.1109/SP46214.2022.9833710. ISBN 978-1-6654-1316-9. S2CID 247570554. Archived from the original on 2022-07-28. Retrieved 2023-12-24.
  20. ^ Agarwal, Ayush; o'Connell, Sioli; Kim, Jason; Yehezkel, Shaked; Genkin, Daniel; Ronen, Eyal; Yarom, Yuval (2022). "Spook.js: Attacking Chrome Strict Site Isolation via Speculative Execution". 2022 IEEE Symposium on Security and Privacy (SP). pp. 699–715. doi:10.1109/SP46214.2022.9833711. ISBN 978-1-6654-1316-9. S2CID 251140823. Archived from the original on 2022-10-27. Retrieved 2023-12-24.
  21. ^ Gierlings, Matthias; Brinkmann, Marcus; Schwenk, Jörg (2023). Isolated and Exhausted: Attacking Operating Systems via Site Isolation in the Browser. pp. 7037–7054. ISBN 978-1-939133-37-3. Archived from the original on 2023-12-24. Retrieved 2023-12-24.