Microsoft Execution Containers (MXC) 1.0.0 发布:面向 AI 代理的策略驱动型容器化方案

TL;DR – MXC 1.0.0 带来了什么以及为何重要

Microsoft Execution Containers (MXC) 1.0.0 现已正式发布,这是一个策略驱动的执行层,旨在将 AI 代理与宿主系统隔离。开发人员可以通过声明 JSON 策略来限制文件、网络和 UI 访问,MXC 则通过特定平台的容器(进程、会话、WSL 或实验性的 MicroVM)来强制执行这些限制。这为企业提供了一种具体的方法,既能利用代理的生产力,又能避免“要么完全不受限制,要么全部封锁”的困境。


容器化是代理的核心安全原语

代理不能成为自身的安全权威。 MXC 强制代理运行在由开发人员或组织定义的边界内,并在代理代码之外强制执行。在实践中,一个负责更新网站的编码代理可以被授予对存储库的读/写权限以及对生产配置的只读权限,而任何修改该配置的企图都会被容器拦截,无论模型意图如何。

“如果没有受管理的执行边界,代理可能会认为更改服务器配置是完成任务的最快方式,并可能破坏生产站点。” – Microsoft 博客

MXC 架构与支持的后端

后端 平台 典型用例 关键隔离属性
进程容器 Windows 11, macOS, Linux 低延迟工作负载、模型生成的代码、工具执行 使用 AppContainer (Win), Seatbelt (macOS), Bubblewrap (Linux) – 轻量级沙箱
会话容器 仅限 Windows 11 需要桌面、剪贴板、UI 隔离的长期运行代理 独立的 Windows 账户与会话;隔离桌面、剪贴板、输入
WSL 容器 (WSLc) 仅限 Windows 11 以 Linux 为先的工具链、依赖 Linux 包的工作负载 在 WSL 内执行,提供完整的 Linux 环境
MicroVM Windows 11, Linux (实验性) 需要硬件级隔离的高风险工作负载 硬件强制的 VM 边界,完全的 Linux 兼容性

每个后端都将相同的 JSON 策略映射到特定平台的强制执行机制,让开发人员无论在何种宿主操作系统上,都能编写统一的策略文件。

策略模式 – 可以锁定哪些内容?

MXC 策略分为五个领域:

  1. 容器化 (Containment) – 选择后端(进程、会话等)。
  2. 进程 (Process) – 命令行、参数、工作目录、环境变量。
  3. 文件系统 (File system) – 针对读取、写入和禁止访问路径的显式允许/拒绝列表。
  4. 网络 (Network) – 入站/出站规则,启用/禁用回环。
  5. 用户界面 (User interface) – 与桌面、剪贴板或 UI 元素交互的权限。

一个典型的编码代理策略如下所示:

{
  "containment": "process",
  "process": {"command": "python", "args": ["agent.py"]},
  "filesystem": {"allowRead": ["/repo/**"], "allowWrite": ["/repo/**"]},
  "network": {"allowOutbound": ["git.example.com:443"]},
  "ui": {"allowDesktop": false}
}

该策略位于代理之外,因此代理无法提升自身的权限。

操作模式 – 从学习到强制执行

MXC 支持三种互斥模式,帮助团队迭代最小权限策略:

模式 访问结果 活动报告 推荐阶段
强制执行 (Enforcement) 被拦截的操作将被拒绝 无报告 生产环境
学习 (Learning) 被拦截的操作将被拒绝 并 记录 JSON 活动日志 策略编写
许可 (Permissive) 所有操作均被允许 但 会被记录 JSON 活动日志 早期测试

在学习模式下,被拒绝的文件访问尝试会出现在活动报告中,允许开发人员将缺失的路径添加到策略中,而不会使系统面临风险。

与 Microsoft Entra 和 Agent 365 的集成(未来展望)

微软宣布 Entra 即将能够为代理活动打上与登录用户不同的独特身份标签。这将实现:

  • Microsoft Agent 365 中的代理级审计追踪。
  • 针对代理主体而非人类用户的策略强制执行,防止受损的代理影响用户的更广泛访问权限。
  • 细粒度治理(例如,在保持员工生产力的同时,封锁单个行为异常的代理)。

现实世界的采用 – 合作伙伴与框架

博客列出了一些早期采用者:

  • NVIDIA OpenShell – 集成 MXC 以实现文件、网络和凭据控制。
  • GitHub Copilot, OpenAI Codex, Replit, LM Studio, Unsloth AI – 已经为开发人员工作流提供了 MXC 沙箱支持。
  • 即将获得支持的包括 Anthropic Claude Code, Box, Egnyte, Heidi Health, Nous Research’s Hermes Agent, Manus, Perplexity, Raycast, Simular 等。

这些集成表明 MXC 不仅仅是一个概念验证;它正被用于生产级的编码助手,这些助手需要在保护宿主系统的同时,对存储库和工具链进行细粒度访问。

社区反馈 – 优势与担忧

  • 积极评价 – 评论者赞赏终于能够在没有管理员权限的情况下锁定应用权限(例如,关于 Windows 11 25H2 允许在无需提升权限的情况下创建 AppContainer 的说明)。
  • 对成熟度的批评 – 一些用户将此版本标记为“技术预览版”而非真正的 1.0 GA,指出文档(特别是 Bubblewrap 集成)缺乏完善,且需要更深层的安全模型重构。
  • 企业关注 – 有人提出 MXC 是否会仅限于企业客户,担心普通用户可能无法获得同等级别的保护。
  • 替代方案 – 一位评论者建议使用现有的 Linux 容器/虚拟机,认为 Linux 上已经存在“开箱即用”的解决方案。

这些观点强调,虽然 MXC 填补了以 Windows 为中心的代理安全空白,但其采用将取决于工具的成熟度、清晰的文档以及企业许可之外的更广泛可用性。

入门指南

  1. 克隆 MXC 存储库:https://github.com/microsoft/mxc。
  2. 从存储库的 README 安装特定语言的 SDK(C#, Python 等)。
  3. 使用上述模式草拟 JSON 策略。
  4. 在学习 (Learning) 模式下运行代理以生成活动报告。
  5. 完善策略,然后切换到强制执行 (Enforcement) 模式进行生产。

欢迎通过 GitHub Issues 追踪器提交反馈和错误报告。


总结

Microsoft Execution Containers 1.0.0 为开发人员提供了一种具体的、策略驱动的方法,可以在主流操作系统上对 AI 代理进行沙箱化,将代理能做什么(容器化)与代理是谁(未来的 Entra 身份)分离开来。通过提供多种隔离后端、清晰的 JSON 策略模型以及用于安全策略迭代的三种操作模式,MXC 将“不受限制或全部封锁”的困境转化为一种可管理的安全性态势——前提是工具链能够成熟,文档能够跟上进度。

Sources

相关