1P by neo 28일전 | favorite | 댓글 1개

소개

  • 이 블로그 게시물은 Chromium 웹 브라우저의 취약점인 CVE-2024-6778과 CVE-2024-5836을 발견한 과정을 설명함.
  • 이 취약점은 브라우저 확장 프로그램을 통해 샌드박스를 탈출할 수 있게 해줌.
  • Google은 이 버그 보고서에 대해 $20,000를 지급함.

WebUIs와 Chrome 샌드박스

  • Chromium은 신뢰할 수 없는 코드를 샌드박스 환경에서 실행하여 제한된 상호작용만 허용함.
  • WebUI는 Chromium의 GUI를 표시하기 위해 사용되며, 특정 내부 API에 접근할 수 있는 권한이 있음.
  • WebUI 페이지에서 실행되는 코드는 샌드박스를 우회할 수 있어, 공격자가 이를 악용할 수 있음.

엔터프라이즈 정책

  • Chromium의 엔터프라이즈 정책 시스템은 기업이나 학교 소유의 장치에 특정 설정을 강제 적용하기 위한 것임.
  • 사용자 정책은 특정 사용자나 브라우저 인스턴스에 적용되며, 로컬에서 설정할 수 있음.

정책 WebUI

  • Chromium에는 현재 장치에 적용된 정책을 볼 수 있는 WebUI가 있음.
  • 이 페이지에서 정책을 편집할 수 있는 비공식 기능이 존재함.

정책 테스트 페이지 악용

  • Chrome v117의 릴리스 노트에서 정책 테스트 페이지에 대한 언급을 발견함.
  • 이 페이지는 정책을 설정할 수 있는 비공식적인 방법을 제공함.

샌드박스 탈출

  • 임의의 사용자 정책을 설정할 수 있는 기능을 악용하여 샌드박스를 탈출할 수 있음.
  • 브라우저 스위처 기능을 사용하여 임의의 셸 명령을 실행할 수 있음.

Devtools API 악용

  • 악성 Chrome 확장을 통해 chrome://policy 페이지에서 JS를 자동으로 실행할 수 있는 방법을 찾음.
  • chrome.devtools.inspectedWindow.reload() API를 사용하여 WebUI 페이지에서 코드를 실행할 수 있음.

결론

  • 간단한 실수가 중첩되어 높은 심각도의 취약점으로 이어질 수 있음을 보여줌.
  • 오래된 코드가 항상 안전하지 않으며, 유사한 버그가 발생할 가능성을 고려해야 함.

GN⁺의 정리

  • 이 블로그 게시물은 Chromium의 취약점을 발견하고 보고하는 과정을 상세히 설명함.
  • 취약점은 브라우저 확장을 통해 샌드박스를 탈출할 수 있게 해주며, Google로부터 $20,000의 보상을 받음.
  • 이 글은 보안 연구자나 소프트웨어 엔지니어에게 유용한 정보를 제공하며, 유사한 취약점을 방지하기 위한 교훈을 제공함.
  • 유사한 기능을 가진 다른 프로젝트로는 Firefox의 보안 기능을 추천할 수 있음.
Hacker News 의견
  • Chrome OS의 "crosh" 셸을 디버그할 때 같은 API를 사용하여 OS 보호를 우회하고 루트 접근 권한을 얻었던 경험을 상기시킴. 이 글의 저자는 더 어려운 장애물을 극복했음. 훌륭한 작업임

  • 페이지 URL이 ${url}로 대체되는 것을 방지하기 위해 # 뒤에 두어 주석으로 만들 수 있음. AlternativeBrowserParameters에 URL이 전달되어야 하는지에 대한 검증 로직이 있는지 궁금함

  • 훌륭한 글과 작업임. 발견 과정에서의 흥분을 함께 느낄 수 있었음. 잘한 보상임

  • 멋진 취약점 체인과 훌륭한 글임. 취약한 코드의 분석도 좋았음. "F12를 눌러 다시 시도하세요" 같은 간단한 트릭에 항상 감명받음

  • WebUI 검증의 문제를 깊이 파고들기에는 너무 늦은 시간이지만, 이 문제를 해결한 사람에게 찬사를 보냄. 우리가 배포하는 것들에 대해 도구 체인을 의심하고 불신하는 것이 일반적이지만, 동시에 Google이나 MS 같은 대기업의 편리한 개발 도구에 너무 많은 신뢰를 두고 있음. 주로 자신의 코드를 작성하고 테스트하는 데 집중하고 싶기 때문임

  • 정말로 읽은 것 중 최고 중 하나임. 매우 영리한 탐정 작업임

  • Allen이라는 고등학생이 프로그래밍, 웹 개발, 사이버 보안에 관심이 있다고 함. 매우 인상적임

  • Chromium 프로젝트가 chrome://net-internals를 페이지가 너무 복잡하다는 이유로 제거하기로 결정함. 그리고 chrome://policy를 추가하며 불완전한 JSON 편집 지원을 제공함

  • 정말 멋진 글로, 스릴러 소설처럼 느껴졌음. 훌륭한 취약점 체인임