NVIDIA 把 AI agent 关进内核沙箱,凭据不进模型上下文

AI Agent安全NVIDIA开源

数据源:NVIDIA 官方新闻稿 + OpenShell 仓库文档

一次成功注入,等于交出全部凭据

把 API key 放进环境变量,是过去二十年服务端工程的默认动作。2026 年 9 月 28 日,NVIDIA 发布开放 agent 安全平台(Open Agent Safety Platform),把这个默认动作划成了 agent 时代的禁区。平台包含两件东西:开源软件 OpenShell(Apache 2.0,GitHub 仓库 NVIDIA/OpenShell),以及参考系统设计 Sentry——后者跑在 BlueField-4 DPU(Data Processing Unit,数据处理器)上,作为带外(out-of-band)看门狗监视主 CPU 上的 agent,官方称可在毫秒级隔离失控 agent。

仓库现状:Rust 实现,crates 下拆成 core、supervisor、credential-gateway、policy-engine、egress-gateway 等模块;18.2k stars、1,852 次提交;0.1.x 稳定版,约三周一个版本。提交密度加上三周一版的节奏,指向同一个判断——这套运行时还处在快速成形期,接生产的人要为接口变动预留成本。

OpenShell 的设计逻辑可以压缩成一条原则:agent 行为不可预测,就收窄它的可达范围,把授权判断从模型上下文挪进内核。 agent 运行时的竞争焦点随之改变——从「模型多守规矩」变成「越权能走多远」。

凭据进网关,不进上下文

自主 agent 的日常工作是执行 shell 命令、写文件、发网络请求,凭据通常就躺在环境变量、配置文件或 .env 里。一次成功的提示注入,或者仅仅一次模型误判,agent 就拿全部凭据行事。爆炸半径等于它被授予的权限集合,收窄权限就是收窄爆炸半径。 这是 OpenShell 全部设计的出发点。

提示词层面的护栏在对抗性输入面前没有强制力。system prompt 约束依赖模型的顺从,攻击者要做的只是让模型改主意;内核级权限边界不理会模型的主意,系统调用直接被拒绝。护栏与边界的区别在于强制者:一个靠模型自觉,一个靠内核。

OpenShell 命令行界面 图:OpenShell 命令行界面运行截图,agent 的动作在策略检查通过后才执行。来源:OpenShell 官方仓库文档

内核级强制是第一个关键机制。策略在 kernel 层生效,既不依赖运行时库,也不依赖容器配置;agent 落在边界内的每个动作都要过一次策略检查。容器解决的是进程隔离与镜像分发,OpenShell 回答另一个问题:agent 运行中对凭据、文件、网络的每一次访问,是否被授权。

凭据网关是第二个关键机制。API key 与 token 交给凭据网关(credential gateway)代持,在出站请求时注入;凭据自始至终不进入 agent 的上下文,也不落在它的文件系统里。对比「把 key 塞进 .env」的常规做法,泄露面从整台机器压缩到一个网关组件。模型可以被骗,被骗的模型手里没有钥匙。

出站流量同样被管住:出站网关(egress gateway)按目的地白名单放行,白名单之外一律不可达;文件系统与网络目标也只暴露 agent 该看到的目录和地址。

OpenShell 系统架构 图:OpenShell 架构——agent、supervisor、凭据网关、策略引擎、出站网关各自独立成模块,凭据与策略判断都在 agent 上下文之外完成。来源:OpenShell 官方仓库 docs/images

策略改动先过形式化验证,再谈生效

策略写错一条,等于开一个洞。OpenShell 把策略变更挡在形式化验证之后:新策略在生效前先过形式化验证,确认语义与预期一致。同类沙箱工具里,这一步少见——多数方案停留在策略即代码、改完即生效的状态。

supervisor 组件负责 agent 的创建、监控与终止,构成生命周期管理层。SDK 覆盖 Python、TypeScript、Go、Rust 四种语言,Kubernetes 部署走 Helm,工程接入的路径是完整的。

形式化验证有自己的边界:它对抗「策略写错」,不解决「策略写对但写窄了」。策略写窄,agent 干不了活,运维压力会推着人放宽规则;意图一旦放宽,再严格的验证也只是精确执行一个宽松的意图。安全责任从代码层挪到了策略作者手里,策略本身会成为新的审计对象。

沙箱强制点示意 图:沙箱强制点示意——策略在文件系统、网络、凭据、出站流量几类边界上分别生效,每条边界对应独立组件。来源:OpenShell 官方仓库 docs/images

看门狗搬上 BlueField-4 DPU,隔离以毫秒计

Sentry 参考设计把看门狗搬出了主机。它跑在 BlueField-4 DPU 上,带外监视主 CPU 上运行的 agent,官方称可在毫秒级隔离失控 agent,演示环境里 Vera CPU 也参与了运行。

带外是这套设计的关键。带内监控与被监控对象共享同一个内核和信任域,主机沦陷,监控跟着沦陷;DPU 有独立的算力与网络路径,主 CPU 上的 agent 失控后也够不到看门狗本身。隔离动作按毫秒计,作恶窗口随之以毫秒计——前提是 DPU 侧的固件与软件栈守得住,看门狗自己成了新的高价值攻击目标。

官方新闻稿同时列出 12 家行业伙伴与集成方,云厂商和安全厂商都在名单里。生态站位的意思很直白:NVIDIA 要让「agent 跑在带边界的运行时里」成为默认部署形态,就像 hypervisor 之于虚拟机。

0.1.x 版本号,比「广泛可用」四个字更诚实

版本号先泼了盆冷水。OpenShell 目前是 0.1.x 稳定版,按约三周的节奏发版,官方措辞却是「现已广泛可用」(now broadly available)。三周一版的节奏本身就是信号:接口与语义仍在变动,接进生产要预留迁移成本;「广泛可用」四个字与 0.1.x 之间,判断空间留给用的人。

第二盆冷水:沙箱收敛爆炸半径,不消除风险。内核强制层、凭据网关、策略引擎自己成了新的信任基座,它们出问题等于边界失效。攻击面转移了位置,总量没有减少——要审计的对象从「agent 应用」扩大到「沙箱运行时」。

路线之争也还没有定论。Anthropic 的 Claude Managed Agents 等托管平台把沙箱做进云服务,用户无需自己搭边界;OpenShell 走自托管、可审计的路线。两条路的前提条件不同:数据不出域、需要自持审计线索的团队会选后者,没有专职运维边界能力的团队用托管服务省事得多。选择由合规要求和运维能力决定,两条路各有成立的场景。

软件白送,硬件照卖

商业账要算清楚。OpenShell 以 Apache 2.0 开源,降低的是 agent 部署的合规门槛;Sentry 参考设计绑在 BlueField-4 DPU 与 Vera CPU 上。软件免费分发,安全硬件按台计价——CUDA 时代的老打法再演一遍:生态工具免费,算力收钱。沙箱运行时本身不产生收入,边界跑在哪块硬件上,钱就在哪里结。

这套打法对用户也说得通:选 OpenShell 拿到的是可审计的边界和明确的硬件采购清单,选托管平台拿到的是免运维。两种交付形态各算各的账,单看仓库的开源协议,看不出整盘生意的结构。

回到开头那条分界线。提示词护栏管住的是模型说什么,内核边界管住的是进程能做什么;前者依赖模型的顺从,后者依赖策略的正确。NVIDIA 同时交出开源运行时和 DPU 看门狗之后,agent 安全的着力点已经从「让模型听话」挪到了「让越权走不远」。 模型会不会失控仍不可知,进程能走多远从此可测量、可审计——这是 9 月 28 日那份发布里真正的新东西,也是 0.1.x 版本号还没来得及兑现的部分。

参考链接:

  • NVIDIA 官方新闻稿
  • OpenShell 官方仓库 README
  • OpenShell 架构文档