
微软推出 Microsoft Execution Container (MXC),这是一套用于在 Windows、Linux 和 macOS 上安全运行不受信任代码(如模型输出、插件及工具)的沙盒执行系统。MXC 以 SDK 依赖形式嵌入应用,通过统一的隔离模型和类型化接口,提供从操作系统原生进程沙箱到完整虚拟机的多种隔离后端。
核心特性与架构
MXC 支持跨平台部署,并根据宿主环境自动匹配最佳隔离后端:
- Windows: 默认使用
processcontainer,可选windows_sandbox、wslc及实验性的microvm、hyperlight等。 - Linux: 默认使用
bubblewrap,支持lxc、microvm和hyperlight。 - macOS: 默认使用
seatbelt。
系统基于 JSON 配置版本化的容器创建请求与安全策略,支持细粒度的文件系统(读写/只读/禁止)、网络(代理/出站控制)及 UI(剪贴板/图形界面)访问控制。MXC 具备状态感知的生命周期管理能力,涵盖配置、启动、执行、停止及销毁全流程。
开发者集成与使用
开发者可通过包管理器直接安装 Rust、.NET 或 Node.js SDK,无需克隆代码仓库。Node 和 .NET 包内含原生运行时资产,而 Rust crate 则将 SDK、引擎及选定后端编译至应用中。此外,MXC 提供平台特定的执行器二进制文件(如 wxc-exec.exe),支持通过 JSON 请求进行非 SDK 模式的测试与执行。
以 Node.js 为例,开发者可快速启动一个网络默认拒绝的容器化任务:
import { spawn, type ContainerRequest } from '@microsoft/mxc-sdk/v1';
const request: ContainerRequest = {
command: 'node -e "console.log(\'hello from container\')"',
network: { egress: { default: 'deny' } },
timeoutMs: 30_000,
};
const child = await spawn(request);调试、审计与遥测
为解决沙盒环境下的访问权限问题,MXC 提供两种诊断模式:
- 调试模式: 通过
--debug参数获取详细的诊断输出。 - 审计模式: 使用
--audit参数可暂时关闭沙盒保护,记录工作负载的实际访问需求并生成策略工件。注意: 此模式严禁用于运行不受信任的代码。
在隐私方面,官方构建版本包含可选的诊断遥测功能。该功能默认关闭,仅在用户明确同意、管理策略允许且应用在请求中启用时才会发送数据。本地开源构建不包含指向微软的遥测路由,且在非 Windows 平台上无效。
构建与贡献
若需开发 MXC 或使用独立执行器,可从源代码构建。构建环境需满足以下条件:
- Rust 工具链(版本固定为 1.93)
- Node.js 24 或更高版本及 npm
- 对应后端所需的平台工具链
项目遵循标准的开源贡献流程,详细 API 参考、容器生命周期说明及后端指南均托管于代码仓库的 docs/ 目录下。