
微软开源 NVXAgent 微虚拟机沙盒的硬件级隔离拆解AI Agent 越来越能干但随之而来的一个刚需问题Agent 要跑自己生成的代码这些代码没人审过、可能有 bug、也可能被利用。直接在主机的原生进程里跑风险很大。传统做法是把代码放进容器但容器与宿主机共享同一个内核隔离并不彻底。微软近期在官方 GitHub 账号下悄悄公开了一个项目NVX一个超轻量的微虚拟机Micro-VM沙盒专门用来以硬件强制隔离的方式运行不可信工作负载。它基于微软开源的 Rust 虚拟机管理程序 OpenVMM 构建运行 Linux 客户机同时支持 LinuxKVM / MSHV与 WindowsWHP跨平台运行。下面从为什么需要和怎么做到两个角度做技术拆解。一、它要解决什么问题Agent 场景下代码执行环境的痛点有三个痛点说明不可信Agent 自己写的代码未经审查可能有漏洞或被诱导执行危险操作共享内核风险容器与宿主机共享内核一旦漏洞穿透容器边界反主机风险仍在冷启动太重传统虚拟机开机慢、资源占大头不适合每次任务开一台的轻量场景NVX 的答案开一台临时的小电脑直接靠 CPU 硬件虚拟化把客机与宿主机隔开——里面的代码出了问题也很难碰到外面。同时尽可能做轻让用完即弃成为可接受的默认。二、核心特点特点说明超轻量不模拟完整电脑无固件只开放一小组固定设备跨平台Linux 上 KVM / MSHVWindows 上 WHP同一个系统镜像到处跑快照秒恢复冷启动约 0.2–0.4 秒快照恢复最快约 30 毫秒系统可选客机可跑 Alpine 或 Ubuntu开源 MIT装好 Python 3.10 以上3 条命令即可仓库microsoft/nvxMIT 协议dev 分支版本目前是 0.1.0 早期由微软研究院系统研究组与 Azure 研究院系统组联合开发底子来自 Nanvix 研究项目。三、隔离是怎么做的多层嵌套从源码与设计文档看Agent 的代码被关进多层盒子1. 设备白名单虚拟机里只有中断控制器、时钟、几个端口和 8 个固定的 virtio 插槽串口、PCI 总线、固件统统没有——攻击面被收窄到很小。2. 网络不直通流量交给内置的 Consomme NAT 处理只放行指定的 IP 和端口最多 256 条放行、256 条禁止外部主动连入的一律拒绝。3. 共享目录由主机把关文档里的做法是把代码目录挂进虚拟机同时禁止读取.git/credentials存密码文件。检查在宿主机侧完成虚拟机内绕不过去。4. 虚拟机里也不信任沙盒模式下Agent 程序跑在独立命名空间namespaces里只看得见自己的文件和进程且以普通用户身份运行清空全部 Linux 特权。5. 内核裁剪客机 Linux 6.18 不能加载内核模块并关掉 PCI、ACPI、USB、IPv6攻击面更小。四、快照为什么这么快写时复制快照恢复是 NVX 的亮点。一份快照包含 4 个文件清单manifest.bin、处理器与设备状态state.bin、内存memory.bin、可选的可写盘scratch.img。恢复时NVX 不把整个memory.bin读进内存而是用内核的MAP_PRIVATE写时复制把文件映射到内存客机读内存时系统按需从文件取页用到哪页读哪页客机改写某页时系统才悄然复制一份私有页面原文件一个字节不动因此同一份快照可同时恢复出多台互不影响的虚拟机。Windows 上对应PAGE_WRITECOPY思路一致。恢复入口在openvmm_entry/src/snapshot_restore/prepare.rs注释直白从打开的文件句柄创建私有映射。还有两个巧思快照由虚拟机自触发客机里的脚本先冻结程序与磁盘再往 0x605 端口写入一个字节写入之后的代码只在每台恢复出来的副本里运行效果类似 fork。恢复后重新播种随机数否则多台副本随机数状态一致生成的密钥/凭据可能碰撞NVX 每次恢复注入 64 字节新随机数和新的机器编号。文档把恢复目标定在约 10ms当前实测 30–116ms。五、开发者怎么用目前主要通过命令行sandbox provision → start → exec → stop/deprovisionOpenVMM 还提供一套 ttrpc 管理接口智能体框架可编程创建、等待、关闭虚拟机。附一个最简 Linux/KVM 启动序列与官方 README 一致gitclone https://github.com/microsoft/nvx.gitcdnvx python3 scripts/nvx.py download# 下载最新 release无需本地构建python3 scripts/nvx.py run# 启动打印 NVX-GUEST-BOOT-OK: alpine# 客机内优雅退出/sbin/nvx-exit0Windows 同样支持启用 Windows Hypervisor Platform 后python scripts\nvx.py downloadrun。六、与既有沙盒的对比方案隔离级别平台备注Docker 容器共享内核跨平台隔离不够彻底FirecrackerE2B 等用微 VMLinux only行业常用但单平台NVX微 VMLinux Windows首个 Windows 原生可跑微 VM 沙盒Hyperlight微 VMLinux已成微软 Agent 框架代码执行后端MXC / ACA Sandboxes多级云管理/托管类早期/正式并存NVX 最大差异化点是Windows 上也能原生跑意味着未来 Windows 电脑上也可能直接给 Agent 开一台本地隔离环境。七、当前限制与判断只支持 x86-64vCPU 只能选 1/2/4/8不支持嵌套虚拟化快照不能跨平台恢复不能直接跑标准容器镜像OCI无常公开快照流程命令行沙盒命令还不能自动管理检查与恢复待办里还有 Azure Files 挂载、计费、多租户隔离显然在为云计算生产环境做准备。所以当前它更像底层积木离开箱即用还有距离。小结AI Agent 越来越能干给它一台安全的电脑就成刚需。NVX 把硬件级隔离做得更轻并且第一次照顾了 Windows这是它区别于 Firecracker 系只能 Linux的差异化价值。除了隔离能力它精简攻击面 多副本恢复不共享状态 写时复制的设计思路对任何想给自己 Agent 运行时加隔离的开发者都有参考意义。