Microsoft가 에이전트 격리 계층 MXC 1.0을 풀었다
허용 범위는 에이전트 바깥에서 선언하고 MIT 라이선스로 공개
Microsoft Execution Containers(MXC)가 1.0으로 나왔다. 파일과 네트워크 허용 범위를 JSON 정책으로 선언하면 컨테이너가 실행 중에 강제한다. Windows, macOS, Linux를 지원하고 MIT 라이선스다.
Microsoft가 10월 7일 MXC(Microsoft Execution Containers) 1.0을 정식 공개했다. 에이전트가 쓸 수 있는 파일, 네트워크, 화면 접근 범위를 개발자나 IT 관리자가 미리 선언하면 컨테이너가 실행 중에 그 경계를 강제하는 격리 계층이다. 정책은 에이전트의 통제 밖에 있다. 모델이 쓴 코드, 플러그인, 도구 어느 쪽도 스스로 권한을 넓히지 못한다.
GitHub 저장소는 MIT 라이선스이고 Windows 11, macOS, Linux를 지원한다. 이미 GitHub Copilot, OpenAI Codex, Replit, LM Studio, Unsloth AI가 붙었다. Anthropic의 Claude Code, Box, Perplexity, Manus 등은 도입 예고 단계다.
한 줄 정리
Microsoft가 에이전트의 파일과 네트워크 권한을 에이전트 바깥의 JSON 정책으로 강제하는 격리 도구를 MIT 라이선스로 풀면서 에이전트 권한 통제가 제품 기능에서 공용 부품으로 내려왔다.
한눈에 보기
| 백엔드 | 지원 환경 | 쓰임새 |
|---|---|---|
| 프로세스 컨테이너 | Windows 11, macOS, Linux | 생성 코드 실행처럼 지연이 짧아야 하는 작업 |
| 세션 컨테이너 | Windows 11 | 별도 계정과 에이전트 신원으로 오래 도는 데스크톱 작업 |
| WSL 컨테이너 | Windows 11 | 리눅스 도구 체인이 필요한 작업 |
| 마이크로VM | Windows 11, Linux (실험) | 하드웨어 격리가 필요한 위험 작업 |
Microsoft는 백엔드마다 보안 성질이 다르니 작업별로 맞는 걸 골라야 한다고 적었다. 프로세스 컨테이너는 윈도우에서 AppContainer, 맥에서 Seatbelt, 리눅스에서 Bubblewrap으로 구현된다.
정책을 쓰는 방식
정책은 하나의 JSON 스키마로 쓴다. 격리 환경, 프로세스 실행 설정, 파일 시스템(쓰기 가능, 읽기 전용, 차단 위치), 네트워크(들어오고 나가는 통신), 화면 접근 다섯 영역을 다룬다. 플랫폼별 구현 차이는 MXC가 흡수한다.
운영 모드는 셋이다. Enforcement는 범위 밖 행동을 막고 보고서는 남기지 않는다. Learning은 막으면서 JSON 활동 기록을 남긴다. Permissive는 허용하되 기록만 쌓는다. 처음에는 Permissive로 에이전트가 실제로 뭘 건드리는지 모은 뒤 Learning을 거쳐 Enforcement로 조이는 순서가 자연스럽다.
아직 비어 있는 부분도 있다. Intune 관리 정책과 Microsoft Agent 365를 통한 에이전트 신원 분리는 예고만 됐다. 마이크로VM은 실험 단계이고 세션과 WSL 컨테이너는 윈도우 전용이다. 해커뉴스에는 특정 백엔드에서 PowerShell이 안 뜬다는 사용 후기가 올라왔는데 공식 확인은 아니다.
누가 만져야 하나
직원 열 명 안팎의 팀에서 이걸 직접 설치해 JSON을 쓸 사람은 드물다. 실제 접점은 두 곳이다. 쓰는 에이전트 도구가 MXC 위에서 돌아가는지, 아니면 도구 제작사가 자체 방식으로 권한을 다루는지. 그리고 외주 개발자나 사내 개발 담당에게 "에이전트가 쓸 수 있는 폴더와 외부 주소 목록을 정책으로 보여 달라"고 요구할 수 있는지.
최근 Anthropic 모델이 경찰 제보 사이트에 가짜 제보를 낸 일이 있었다. 그 사건의 교훈은 모델이 틀린다는 사실이 아니라 틀린 행동이 나갈 수 있는 출구가 열려 있었다는 사실이었다. MXC는 출구 쪽을 조이는 도구다. 네트워크 허용 목록에 없는 주소로는 에이전트가 요청을 못 보낸다.
위시클레이 관점
권한 목록을 에이전트 밖에 두는 것이 MXC의 핵심이다. 모델이 쓴 코드가 자기 권한을 못 넓힌다는 문장은 보안 용어처럼 들리지만 팀 운영으로 옮기면 간단하다. 신입 직원에게 "회계 폴더는 건드리지 마세요"라고 부탁하는 것과 계정에 회계 폴더 권한을 아예 안 주는 것의 차이다.
Copilot, Codex, Replit이 같은 격리 계층을 쓰기 시작하면 에이전트 도구끼리 권한 모델이 닮아 간다. 그러면 팀이 도구를 바꿔도 "무엇을 열고 무엇을 닫을지"라는 목록은 그대로 들고 갈 수 있다. 도구 선택보다 권한 목록 작성이 팀의 자산이 되는 쪽으로 무게가 옮겨 간다. 이번 주에 해 볼 일은 지금 쓰는 에이전트가 읽고 쓰는 폴더와 접속하는 외부 주소를 한 장에 적어 보는 일이다. 적을 수 없다면 그 에이전트는 아직 통제 아래에 있지 않다.