소개
- 이 블로그 게시물은 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의 보안 기능을 추천할 수 있음.