惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
Martin Fowler
Martin Fowler
B
Blog RSS Feed
D
DataBreaches.Net
L
LangChain Blog
月光博客
月光博客
S
SegmentFault 最新的问题
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
美团技术团队
Jina AI
Jina AI
博客园 - 司徒正美
雷峰网
雷峰网
Last Week in AI
Last Week in AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
IT之家
IT之家
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
小众软件
小众软件
罗磊的独立博客
博客园_首页
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
A
About on SuperTechFans
Engineering at Meta
Engineering at Meta

博客园 - iTech

7万星的AI交易框架:让大模型模拟投行多空辩论,自动做交易决策 71000颗星的AI交易团队:让大模型模拟投行分工,自动做交易决策 13400颗星的开源项目:输入一句话,AI全自动帮你做短视频 102颗星的沙盒:当AI学会自己写代码、跑测试、做部署 AI 技术日报 - 2026-05-08 29k 星的 PageIndex:不用向量数据库,靠推理就能做 RAG 每天花两小时刷信息?这个开源项目帮你全自动搞定 读源码像读小说?试了 DeepWiki 和 Zread,我再也不想裸读 GitHub 了 Matt Pocock 开源的这套 .claude 技能,为什么让工程师集体上头? Cursor Team Kit:Cursor 官方团队在用的 17 个 AI 工作流 AI 技术日报 - 2026-05-07 AI 技术日报 - 2026-05-06 AI 技术日报 - 2026-05-05 Anthropic CEO 说 12 个月内程序员要失业,我扒完他的底牌,发现事情没那么简单 把工程师的肌肉记忆装进 Claude Code,这个 4300 Star 的项目我后悔没早用 AI 技术日报 - 2026-05-04 AI 技术日报 - 2026-05-03 AI 技术日报 - 2026-05-02 六大 Agent 框架横评:谁支持 Skills?谁能自动创建 Agent?MCP 呢? Wechatsync:一个 Chrome 插件,一键把文章同步到 31 个平台 LangChain 开源了 Open SWE:Stripe、Ramp、Coinbase 内部都在造的编程 Agent Cockpit:把 Claude Code 从终端里搬出来,装进浏览器 Cursor 把自家的 AI Agent 开放了:写几行 TypeScript 就能调 Cursor 干活 AI 技术日报 - 2026-05-01 AI 写代码每次结果都不一样?Archon 用 YAML 工作流把 AI 编程变成流水线 AI 写代码比你快了,但你还是得学编程——只不过学法得换 腾讯的龙虾特工队:4 个 AI Agent 同日更新,全家桶正式成型 Agno 不做更聪明的 Agent,它要把所有 Agent 框架包进同一个操作系统 Hermes Agent 终于有了像样的 Web 界面,而且还支持远程访问 Datawhale 出了一套 29 学科知识地图,把 AI 的底牌全掀了
微软 MXC:让 AI 代码安全执行的跨平台沙箱引擎
iTech · 2026-06-10 · via 博客园 - iTech

微软 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