当前位置: 首页 > news >正文

微软 MXC:让 AI 代码安全执行的跨平台沙箱引擎

微软 MXC:让 AI 代码安全执行的跨平台沙箱引擎

当你让 AI Agent 执行一段代码时,怎么确保它不会删掉你的文件、连上恶意服务器、或者逃逸出容器?这是每一个 AI 编程工具都必须面对的安全问题。微软给出的答案是 MXC(Microsoft eXecution Container)——一个策略驱动的跨平台沙箱执行系统,刚以 MIT 协议开源。

项目概况

指标 数据
GitHub microsoft/mxc
Stars 817+
语言 Rust(核心)+ TypeScript(SDK)
协议 MIT
最新版本 v0.6.1(2026-06-02)
平台 Windows / Linux / macOS

MXC 是微软为运行不可信代码(大模型输出、插件、工具)而设计的沙箱系统。它不是一个容器运行时,而是一个统一的沙箱抽象层——在 Windows 上用 AppContainer,在 Linux 上用 Bubblewrap 或 LXC,在 macOS 上用 Seatbelt,甚至可以启动完整微虚拟机(MicroVM)。所有这些后端,用同一套 JSON 配置和 TypeScript SDK 驱动。

核心架构

多后端沙箱

MXC 最大的设计亮点是策略与实现分离。你定义"这段代码能做什么",MXC 根据当前操作系统选择最佳后端:

后端 平台 状态 特点
ProcessContainer Windows 稳定 基于 AppContainer,零虚拟化开销
Bubblewrap Linux 稳定 轻量级命名空间沙箱
LXC Linux 稳定 完整容器隔离
Seatbelt macOS 实验性 macOS 原生沙箱框架
Windows Sandbox Windows 实验性 轻量级 Hyper-V 虚拟机
MicroVM (NanVix) Windows/Linux 实验性 微虚拟机,最强隔离
Hyperlight Windows/Linux 实验性 轻量级 hypervisor 沙箱
WSLC Windows 实验性 WSL 容器隔离
IsolationSession Windows 实验性 Windows Insider 专属

稳定后端无需任何实验性标志,开箱即用。

策略驱动

MXC 的安全模型围绕三个维度:

文件系统策略:精确控制只读路径和读写路径。你可以让沙箱只能读工具链、只能写临时目录:

const config = createConfigFromPolicy({
  version: '0.6.0-alpha',
  filesystem: {
    readonlyPaths:  tools.readonlyPaths,
    readwritePaths: temp.readwritePaths,
  },
  network: { allowOutbound: false },
  timeoutMs: 30_000,
});

网络策略:支持出站白名单/黑名单、代理配置、主机过滤。你可以完全禁止联网,也可以只允许特定域名。

UI 策略:控制剪贴板、显示和 GUI 访问——防止沙箱内程序窃取剪贴板内容。

生命周期管理

MXC 支持两种模式:

  • One-shot:一次性执行,进程结束沙箱自动销毁。适合执行单条 AI 生成的命令。
  • State-aware:多步生命周期(provision → start → exec → stop → deprovision)。适合需要多轮交互的长会话,比如 AI Agent 反复修改文件并运行测试。

技术细节

Rust 核心 + TypeScript SDK

MXC 的原生沙箱包装器用 Rust 编写,编译为平台原生二进制(Windows 上是 wxc-exec.exe,Linux 上是 lxc-exec,macOS 上是 mxc-exec-mac)。SDK 层是 TypeScript 的 @microsoft/mxc-sdk,npm 直接安装:

npm install @microsoft/mxc-sdk

这种"Rust 做底层、TypeScript 做接口"的架构,让 MXC 既有原生性能,又能无缝集成到 Node.js 生态——而 Node.js 正是 VS Code、Cursor、Windsurf 等 AI 编程工具的运行时。

JSON Schema 版本化

MXC 的配置有严格的 JSON Schema,当前稳定版 0.6.0-alpha,开发版 0.7.0-dev。版本化设计确保向后兼容——旧配置在新版本中仍然有效。

最小权限构建

每个后端有独立的 Cargo crate(lxcwxc_commonmxc_darwin 等),你可以只构建当前平台需要的组件,不需要全量编译。

使用场景

MXC 的设计目标非常明确:安全执行 AI 生成的代码。具体场景包括:

AI 编程助手:当 Copilot、Cursor 或任何 AI Agent 要运行代码时,通过 MXC 沙箱执行,限制文件系统和网络访问,防止恶意输出造成破坏。

插件系统:VS Code 扩展、工具插件在沙箱中运行,不能越权访问用户文件。

CI/CD 流水线:执行来自外部的构建脚本、测试代码,隔离不可信输入。

在线代码执行平台:类似 LeetCode、CodePen 的场景,用户提交代码在沙箱中运行。

五分钟上手

# 1. 克隆并构建(需要 Rust 1.93+)
git clone https://github.com/microsoft/mxc.git
cd mxc
./build.sh  # Linux
# 或 build.bat  # Windows
# 或 ./build-mac.sh  # macOS# 2. 在 TypeScript 中使用
npm install @microsoft/mxc-sdk
import {
  spawnSandboxFromConfig, createConfigFromPolicy,
  getAvailableToolsPolicy, getTemporaryFilesPolicy,
  getPlatformSupport,
} from '@microsoft/mxc-sdk';// 检查平台支持
if (!getPlatformSupport().isSupported) {
  throw new Error('MXC not available on this host');
}// 构建安全策略
const tools = getAvailableToolsPolicy(process.env);
const temp  = getTemporaryFilesPolicy();const config = createConfigFromPolicy({
  version: '0.6.0-alpha',
  filesystem: {
    readonlyPaths:  tools.readonlyPaths,
    readwritePaths: temp.readwritePaths,
  },
  network: { allowOutbound: false },
  timeoutMs: 30_000,
});// 要执行的命令
config.process!.commandLine = 'python -c "print(\'hello from sandbox\')"';// 在沙箱中运行
const child = spawnSandboxFromConfig(config, { usePty: false });
child.stdout!.on('data', (d) => process.stdout.write(d));
child.on('close', (code) => console.log('exit:', code));

当前状态与展望

MXC 目前仍处于早期预览阶段(Early Preview)。微软明确表示:

  • 底层沙箱实现仍在持续演进
  • 部分策略配置可能过于宽松,将在正式发布前收紧
  • 当前不应将 MXC 的安全配置文件视为真正的安全边界
  • 欢迎安全研究人员参与测试和反馈

从提交活跃度来看,项目非常活跃——几乎每天都有提交,涵盖后端改进、CI 优化、Bug 修复和文档更新。最新版本 v0.6.1 于 2026 年 6 月 2 日发布。

为什么值得关注

在 AI Agent 大爆发的 2026 年,代码执行安全是一个从"加分项"变成"必选项"的基础设施问题。MXC 的出现有几个信号意义:

  1. 微软亲自下场:这不是社区项目,是微软内部 AI 安全基础设施的外溢。Copilot、Security Copilot 等 产品最终都可能使用这套系统。

  2. 策略优于隔离:传统的"要么全开要么全锁"思路不够灵活。MXC 的细粒度策略模型——精确到路径级别的读写控制——才是 Agent 时代需要的。

  3. 跨平台统一:一套配置适配三大操作系统,解决了 AI 工具"Windows 能跑 Linux 跑不了"的常见问题。

  4. Rust + TypeScript 的工程选择:用 Rust 保证底层安全性和性能,用 TypeScript 降低集成门槛,这个组合在 AI 工具链中越来越主流。

如果你在构建 AI 编程工具、插件系统或任何需要执行不可信代码的场景,MXC 值得认真研究。


项目地址:github.com/microsoft/mxc
SDK 包:@microsoft/mxc-sdk

http://www.jsqmd.com/news/984347/

相关文章:

  • 海口音响采购指南:JBL及主流品牌服务商综合解析(2026年版) - 优质品牌商家
  • 使用的时候连import都不行
  • Spring源码速成,看这篇就够了!
  • 语义主权时代——2026年GEO服务商全球选型战略指南 - GEO优化
  • 如何用GetQzonehistory轻松备份QQ空间完整历史记录
  • i.MX6接口时序设计实战:从SD卡、以太网到显示接口的硬件与驱动配置
  • 信息学奥赛刷题避坑指南:以‘分数线划定’为例,详解stable_sort与自定义cmp的坑
  • 小程序毕设项目:基于Android的全民健身App设计与实现 (源码+文档,讲解、调试运行,定制等)
  • 2026年深圳搬家公司精选榜单:企业搬迁/居民搬家/跨城物流一站点评与避坑选择 - 品牌发掘
  • 沙石分离机行业技术现状与供应商综合能力分析(2026年) - 优质品牌商家
  • 2026天河区搬家公司权威测评|零加价实景实测+全域价格表+商圈专属避坑全攻略 - gzdjxd
  • 2026年更新:山东企业绩效薪酬咨询优选——上海创锟企业管理咨询有限公司深度解析 - 2026年企业资讯
  • 湖北起重吊装搬迁公司服务能力评估与市场格局分析 - 优质品牌商家
  • 华为eNSP实验:手把手教你从零规划并配置一个ISIS多区域网络(含NET地址计算详解)
  • 成都绿植租赁与绿化养护服务品牌分析:市场格局与选择指南(2026年) - 优质品牌商家
  • 小程序毕设项目:基于Android的宠物社区app设计与实现 (源码+文档,讲解、调试运行,定制等)
  • 面向新手的RL经验
  • 当SingleR不给力时:手把手教你用Seurat和文献Marker基因手动注释细胞类型
  • 格力中央空调多联机销售厂家综合评价与市场分析 - 优质品牌商家
  • 2026年玉溪插卡对讲机厂家选择指南:趋势、本地化与长期价值 - 2026年企业资讯
  • 2026年北京茅台酒回收行业格局与耐用性服务企业分析报告 - 优质品牌商家
  • 发展速度开始让人目不暇接
  • 从“制造高地”到“AI认知高地”——2026年合肥企业GEO选型实战指南 - GEO优化
  • 分布式数据分片怎么做
  • 智能象棋助手VinXiangQi:深度学习如何让AI看懂中国象棋棋盘
  • RTX 3090装Detectron2踩坑记:一招解决nvcc报错‘compute_86‘不支持
  • 告别误报!用MATLAB手把手教你实现雷达CFAR检测(附完整代码与对比分析)
  • 2026导向:片材板材控温机生产企业综合实力甄选 - 企业推荐官【官方】
  • 从 WWDC 到 AI Agent:开发者为什么又开始重新关心 DeepSeek API Key、Base URL 和统一模型入口
  • 2026年6月正规的青岛采光井防水补漏公司有哪些推荐 现浇混凝土/玻璃采光顶/地下室采光井公司选择指南 - 海棠依旧大