Microsoft Execution Container (MXC) 개요

Microsoft Execution Container (MXC)는 신뢰할 수 없는 코드를 샌드박싱하기 위한 통합 추상화를 제공합니다

Microsoft Execution Container (MXC)는 Windows, Linux, macOS에서 신뢰할 수 없는 워크로드(특히 모델 출력, 플러그인, 도구)를 실행하도록 설계된 샌드박스 코드 실행 시스템입니다. 이는 애플리케이션에 직접 통합되는 SDK 종속성으로 작동하며, 개발자가 통합 격리 모델과 Rust, .NET, Node.js용 타입 SDK를 사용하여 격리된 환경 내에서 워크로드를 실행할 수 있게 합니다.

정책 기반 격리 모델

MXC는 JSON 기반 구성을 사용하여 보안 정책과 컨테이너 생성 요청을 정의합니다. 이를 통해 개발자는 기본 플랫폼별 샌드박스 구현을 관리할 필요 없이 컨테이너 유형, 격리 규칙, 워크로드 명령을 지정할 수 있습니다.

보안 정책 제어

MXC는 다음 영역에 대한 세밀한 제어를 제공합니다:

  • 파일 시스템 정책: 읽기 전용, 읽기-쓰기, 거부된 경로 목록을 정의합니다.
  • 네트워크 정책: 프록시 지원, 아웃바운드 제어, 호스트 필터링을 포함합니다(기능은 백엔드에 따라 다름).
  • UI 정책: 클립보드, 디스플레이, GUI 요소에 대한 액세스를 제어합니다.

수명 주기 관리

MXC는 컨테이너의 상태 인식 수명 주기를 지원하여 영구 컨테이너의 프로비저닝, 시작, 실행, 중지, 프로비저닝 해제를 가능하게 합니다.

크로스 플랫폼 백엔드 지원

MXC는 여러 격리 백엔드를 추상화하며, 호스트 운영 체제에 따라 가장 적합한 백엔드를 선택합니다.

런타임 플랫폼 기본 백엔드 기타 백엔드
Windows 11 processcontainer windows_sandbox, wslc, microvm, hyperlight, isolation_session
Linux bubblewrap lxc, microvm, hyperlight
macOS seatbelt 없음

참고: windows_sandbox, microvm, hyperlight는 현재 실험적으로 표시되어 있습니다.

개발자 도구 및 진단

제한적인 정책 생성을 용이하게 하기 위해 MXC는 액세스 거부 실패를 식별하고 해결하는 도구를 포함합니다:

  • 디버그 콘솔 모드: 네이티브 실행기와 함께 --debug 플래그를 사용하면 문제 해결을 위한 진단 출력을 제공합니다.
  • 감사 모드: --audit 플래그(지원되는 Windows 릴리스에서 사용 가능)를 사용하면 개발자가 관찰된 액세스를 기록하여 신뢰할 수 있는 도구에 필요한 권한만 부여하는 ProcessContainer 정책을 재구성할 수 있습니다. 경고: 감사 모드는 모든 샌드박스 보안을 비활성화하므로 신뢰할 수 없는 코드를 실행하는 데 절대 사용해서는 안 됩니다.

커뮤니티 통찰 및 기술 비평

MXC 출시 이후 Hacker News의 기술 토론에서 시스템의 여러 강점과 약점이 강조되었습니다.

인지된 유용성

일부 개발자는 MXC가 Bubblewrap 및 Seatbelt와 같은 기존 도구의 프론트엔드 역할을 하지만, 가치는 일관된 SDK와 정책 작성의 "학습" 모드에 있다고 언급했습니다. 한 사용자는 Codex가 이미 Windows에서 MXC를 활용하고 있다고 언급했습니다.

기술적 우려

비평가들은 구현 및 보안에 관한 여러 가지 점을 제기했습니다:

  • 플랫폼 동등성: macOS 지원은 특히 제한적입니다. 구체적으로, 세분화된 네트워킹(호스트 이름/IP/CIDR 필터링)이 macOS 백엔드에서 누락되어 있습니다.
  • 코드베이스 복잡성: 일부 사용자는 높은 양의 Rust 소스 코드 라인(약 350,000 SLOC)과 업스트림 샌드박스가 벤더링되지 않은 사실을 지적하며 시스템의 감사 가능성에 대한 우려를 표명했습니다.
  • 보안 구현: 일부 기여자는 샌드박스 탈출을 발견했다고 주장했으며 Bubblewrap 통합에서 기능 삭제 및 setuid 처리가 잘못 구현되었다고 주장했습니다.
  • 빌드 시스템: 빌드 스크립트가 모든 플랫폼에서 Windows 전용 작업을 수행하고 특정 바이너리에 크게 의존한다는 비판이 있었습니다.

대안적 접근 방식

토론 참가자들은 WASI P3를 사용하는 Wasmtime과 같은 WebAssembly(Wasm) 런타임이 OS 수준 샌드박싱에 비해 본질적인 플랫폼 독립성과 더 강력한 격리 속성으로 인해 샌드박스 플러그인에 더 효율적일 수 있다고 제안했습니다.

Sources

관련

  • Dispatch
  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트