# 다수의 새로운 macOS 샌드박스 탈출 취약점

> Clean Markdown view of GeekNews topic #17652. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=17652](https://news.hada.io/topic?id=17652)
- GeekNews Markdown: [https://news.hada.io/topic/17652.md](https://news.hada.io/topic/17652.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-11-09T09:48:04+09:00
- Updated: 2024-11-09T09:48:04+09:00
- Original source: [jhftss.github.io](https://jhftss.github.io/A-New-Era-of-macOS-Sandbox-Escapes/)
- Points: 1
- Comments: 1

## Topic Body

### macOS 샌드박스 탈출의 새로운 시대: 간과된 공격 표면과 10개 이상의 새로운 취약점 발견

- macOS 시스템에서 대부분의 프로세스는 제한된 샌드박스 환경에서 실행됨. 공격자가 원격 코드 실행(RCE)을 얻더라도 그 능력은 제한적임. 다음 단계는 샌드박스를 우회하여 더 넓은 파일 접근 권한을 얻는 것임.
- 샌드박스 탈출 취약점을 발견하기 위해 기존 문제를 검토한 결과, 중요한 **간과된 공격 표면**과 새로운 공격 기법을 발견함. 이를 통해 **여러 새로운 샌드박스 탈출 취약점**을 발견함: CVE-2023-27944, CVE-2023-32414, CVE-2023-32404, CVE-2023-41077, CVE-2023-42961, CVE-2024-27864, CVE-2023-42977 등.

### macOS 샌드박스에 대하여

##### 앱 샌드박스
- Mac AppStore의 요구에 따라 대부분의 애플리케이션은 **앱 샌드박스** 제한과 함께 실행됨. 샌드박스 애플리케이션은 특정 권한을 가져야 하며, 샌드박스에 들어가면 **컨테이너화**되어 파일 작업이 제한됨.
- 샌드박스 애플리케이션이 생성한 파일은 기본적으로 **격리**되며, 샌드박스 앱은 이 속성을 제거할 수 없음.
- 샌드박스 없는 애플리케이션은 모든 사용자 데이터와 시스템 리소스에 무제한 접근 가능함. 반면, 샌드박스 제한이 있는 애플리케이션은 제한된 접근만 가능함.
- **포크된** 자식 프로세스는 부모 프로세스의 샌드박스 제한을 **상속**하지만, `LaunchService.framework`를 통해 시작된 프로세스는 제한을 상속하지 않음.

##### 서비스 샌드박스
- 대부분의 Apple **데몬 서비스**는 **서비스 샌드박스** 컨텍스트에서 실행됨. 이들은 시스템 위치에 정의된 샌드박스 프로필에 의해 제한됨.
- 서비스 샌드박스는 보통 **컨테이너화**되지 않으며, 파일은 기본적으로 **격리되지 않음**.

### 공격 표면

#### 기존의 일반적인 방법

##### LaunchService.framework을 통한 공격
- 시스템 LaunchService 프레임워크를 통해 비샌드박스 애플리케이션을 공격하는 방법이 있음. 예를 들어, CVE-2021-30864는 시스템 비샌드박스 애플리케이션 **Terminal.app**의 **$HOME** 환경 변수를 조작할 수 있음.
- 새로운 비샌드박스 애플리케이션을 드롭하고 실행할 수 있지만, 새로 드롭된 애플리케이션은 **격리**되어 실행이 방지됨.

##### 사용 가능한 Mach 서비스 공격
- 앱 샌드박스 프로필에 나열된 사용 가능한 Mach 서비스를 공격하는 방법이 있음. 시스템의 모든 Mach 서비스 정보는 `/System/Library/xpc/launchd.plist` 파일에 저장됨.

#### 새로운 간과된 방법

- **PID 도메인**에 존재하는 XPC 서비스는 간과된 서비스임. 이들은 요청에 따라 애플리케이션에 의해 시작되고 요청 애플리케이션이 종료되면 종료됨.
- **PID 도메인**의 XPC 서비스는 샌드박스 애플리케이션에서 호출할 수 있으며, 추가적인 권한 검사나 샌드박스 검사가 없음.

### 새로운 취약점 및 익스플로잇

#### Beta-No-CVE-1
- 이 취약점은 macOS Sonoma 베타 버전에만 영향을 미침.
- 취약점은 XPC 서비스 `/System/Library/PrivateFrameworks/StorageKit.framework/XPCServices/storagekitfsrunner.xpc`에 존재함.
- 이 서비스는 샌드박스 제한 없이 실행 가능하며, 임의의 시스템 명령을 실행할 수 있음.

#### Beta-No-CVE-2
- 이 취약점도 베타 전용 소프트웨어에만 영향을 미침.
- 취약점은 XPC 서비스 `/System/Library/PrivateFrameworks/AudioAnalyticsInternal.framework/XPCServices/AudioAnalyticsHelperService.xpc`에 존재함.
- 임의의 경로를 압축할 수 있으며, 생성된 zip 파일은 격리되지 않음.

#### CVE-2023-27944
- 취약점은 XPC 서비스 `/System/Library/PrivateFrameworks/TrialServer.framework/XPCServices/TrialArchivingService.xpc`에 존재함.
- 이 서비스는 **서비스 샌드박스**에 들어가지만, 드롭된 파일은 격리되지 않음.

#### CVE-2023-32414
- 취약점은 XPC 서비스 `/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/XPCServices/ArchiveService.xpc`에 존재함.
- 이 서비스는 서비스 샌드박스에 들어가지만, 드롭된 파일은 격리되지 않음.

#### CVE-2023-32404
- 취약점은 XPC 서비스 `/System/Library/PrivateFrameworks/WorkflowKit.framework/XPCServices/ShortcutsFileAccessHelper.xpc`에 존재함.
- 이 서비스는 샌드박스 제한 없이 실행 가능하며, **전체 디스크 접근**을 위한 특별한 TCC 권한을 가짐.

#### CVE-2023-41077
- 취약점은 XPC 서비스 `/System/Library/Frameworks/ImageCaptureCore.framework/XPCServices/mscamerad-xpc.xpc`에 존재함.
- 이 서비스는 샌드박스 제한 없이 실행 가능하며, **사진** 및 **이동식 볼륨**에 직접 접근할 수 있는 특별한 TCC 권한을 가짐.

## Comments



### Comment 31061

- Author: neo
- Created: 2024-11-09T09:48:05+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=42084588) 
- XPC 서비스를 개별적으로 패치하는 것은 이상하며, 이는 샌드박스 자체의 설계 문제로 보임. 많은 XPC 서비스가 샌드박스 앱에서 접근 가능한 이유에 의문을 가짐
  - MacOS는 블랙리스트가 아닌 기능 기반의 Darwin 컨테이너를 가져야 함
  - SBPL(샌드박스 프로파일 언어)이 흥미로움. 관련 정보는 GitHub에서 확인 가능함
  - MacOS에 SBPL을 처리하는 Scheme 인터프리터가 있는지 궁금함
  - "sandbox-exec"가 이를 처리하는 것으로 보임

- 보안 프레임워크가 새로운 문제를 야기하며, 보안이 더 강화되었다고 느끼지 않음
  - 네덜란드 세법처럼 패치의 연속이며, 이미 의식을 가진 것처럼 보임

- XPC 관련 결함이 계속 발견될 가능성이 높으며, Apple이 서비스 강화 접근 방식을 재설계하지 않는 한 지속적인 CVE가 발생할 것으로 예상됨

- 샌드박스를 사랑하면서도 싫어함
  - 샌드박스는 훌륭한 2차 방어선이지만, 대기업은 샌드박스를 탈출하지 못할 때 RCE 수정을 거부하며 주 방어선으로 사용함

- MacOS는 세밀한 권한을 위해 설계되지 않았으며, 기존 Mac OS와 NeXTSTEP 기술 위에 추가할 수 없음
  - 보안 연구자가 아닌 앱 개발자로서 여러 우회를 발견했지만, Apple의 보안 취약점 보고 시스템이 비효율적이라 포기함
  - MacOS는 보안 연극의 희생양이 되었으며, 사용자와 개발자에게 해를 끼치고 있음

- iOS에서도 취약점이 존재하며, 약 20억 대의 활성 기기가 있음

- PID 도메인의 XPC 서비스는 샌드박스 제한을 우회하는 영리한 방법이며, Apple의 패치는 임시방편처럼 보임
  - 샌드박스 상속 방식을 전면적으로 재설계할 필요가 있음

- 샌드박스를 탈출하면 샌드박스가 없는 상태로 돌아가는 것인지, 더 높은 권한 상태로 가는 것인지 궁금함
