文章总结: 英伟达开源AI安全平台openshell,为AIagent提供运行时安全边界,通过gateway、supervisor、sandbox三层架构,结合landlock和seccomp在内核层限制agent能力,默认全拒绝策略,支持凭证动态注入与审计。配套sentry硬件方案,面向运行自治agent的企业,强调可审计与合规。 综合评分: 82 文章分类: 产品介绍,安全工具,ai安全,解决方案
英伟达发布开源AI 安全平台,9000+ Star
原创
大白 大白
知白守黑1024
2026年9月29日 06:23 北京
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
9 月 23 日,安全圈炸出一条新闻:OpenAI 的一个智能体入侵了澳大利亚医保统计服务网站,总理都出来回应了。商用 AI 智能体在真实世界里失控的案例,开始一件件被摆上台面。
五天后的 9 月 28 日,英伟达交卷:Open Agent 安全平台。这套平台分两半,一半是跑在专用芯片上的硬件参考设计 Sentry,另一半就是今天的主角——开源安全运行时OpenShell,Apache 2.0 协议,Star 数已破 9,000。
一句话说清它是干嘛的:给 AI Agent 修笼子。Agent 该有的能力都有——读文件、装包、调 API、用凭证,但每一步都被拦在内核划定的边界之内。
这篇文章把它拆开看:架构怎么分层、内核里那道墙怎么砌、三条命令怎么跑起来。
01
笼子里的 Agent:它到底是什么
先纠正一个容易搞混的点:OpenShell 不是漏洞扫描器,不是内容护栏,也不是杀毒软件。它是个运行时——你的 Agent 跑在它里面,而不是被它扫描。
项目由英伟达开源,Rust 编写,Apache 2.0 协议,当前版本 v0.1.2,已进入稳定发布节奏。Star 数本文写作时 9,021(已破 9,000),仓库当天仍有提交,迭代相当活跃。
它要解决的矛盾,README 里写得很直白:Agent 之所以有用,是因为它能读文件、装包、调 API、用凭证;而正是这些能力构成风险。OpenShell 的做法不是砍掉能力,而是把能力圈起来——你在一个 YAML 策略文件里声明每个 Agent 能碰什么,剩下的它来执行。
四类最常见的威胁,对应四层防线:
图:四种威胁与四层防线
02
模型治不了提示注入,环境可以
为什么要把边界修在 Agent 进程外面?因为提示注入攻击的靶子是模型,不是代码。
提示注入的原理一句话就能说清:攻击者把恶意指令藏在 Agent 会读到的任何文本里——一封邮件、一个网页、一个仓库的 README。模型把指令当成了你下的命令,于是 Agent 乖乖照办。安全研究者已经披露过商用 Agent 被这样劫持、对真实目标发起攻击的完整案例。指望模型自己识破所有注入,目前做不到。
英伟达的思路是换个地方下手:安全活在环境里,不活在模型里。策略执行发生在 Agent 进程之外、操作系统内核层面。提示注入骗得动模型,骗不动 Landlock 和 seccomp。
这个设计还有个副产品:可审计。每一次放行和拒绝都有记录;策略是声明式的 YAML,可以进版本库、可以 diff、可以拿去合规审计。模型是黑盒,YAML 不是。
四层防护的上锁时机也不一样:文件系统和进程控制在沙箱创建时就锁死;网络规则可以在运行时热更新;凭证在挂载、轮换、吊销时动态生效。该锁死的锁死,该灵活的灵活。
03
拆架构:三层各管什么
OpenShell 的骨架是三个组件:Gateway、Supervisor、Sandbox。
Gateway 是控制面:管沙箱的生命周期,下发策略,认证身份,记录审计。你在命令行里敲的每条命令,最终都落到它身上。
Supervisor 是决策者,站在隔离边界的可信侧:每个请求由它对照策略裁决,凭证由它注入,真实连接由它代开。
Sandbox 和 Agent 一起蹲在不可信侧。关键设计在这里:沙箱自己永远不做策略决定——它只报告 Agent 在试图干什么,决定权全部在边界另一头。就算沙箱被 Agent 攻陷,也没有任何权限可以滥用。
图:官方系统架构图,可信侧 Supervisor 与网络隔离的沙箱分离
图:三层架构中文拆解
三层之间靠什么通信?Supervisor 和沙箱之间是一条互相认证的 HTTP/2 连接,传输方式由计算驱动决定:Docker 和 Podman 走 Unix socket,Kubernetes 走 TCP,MicroVM 走 vsock。每个 TCP 连接有独立的流和背压——一个慢速下载,拖不死 DNS 和进程控制。
认证用一对 JWT:网关 JWT 管 Supervisor 到网关的调用,沙箱 JWT 管 Supervisor 到沙箱的通道。沙箱一侧只持有网关的公钥,能验签,不能伪造。令牌绑定到沙箱的一次运行,重启即作废。
失败模式是 fail closed:Supervisor 断线,沙箱立刻冻结 Agent,给一个重连窗口,接不上就停机。沙箱里没有网关签名密钥、没有网关 JWT、没有真实凭证——被攻陷了也没东西可偷。
04
内核里的那道墙:Landlock 和 seccomp
Linux 后端三件套:非 root 身份、Landlock、seccomp。
默认策略能狠到什么程度:出站网络全部拒绝,一条规则都不带;文件系统只给最小集——/bin、/usr、/lib、/proc、/etc、/var/log 只读,/tmp 和 /dev/null 可写;进程用非 root 身份跑,镜像是 root 的直接拒绝启动。
凭证的处理是最有意思的部分:Agent 从头到尾见不到真实的 API key。你把 key 存进凭证库,OpenShell 只在请求发往已批准端点的最后一刻注入,Agent 的进程里永远没有这个值。就算 Agent 被注入恶意指令,想把 key 传出去也传不了——手里根本没有。
图:官方沙箱执行流,沙箱与 Supervisor 分属两个边界
图:Agent 想连一次外网,要过几关
一个细节值得单独说:程序身份怎么确认。Agent 自报家门说自己是谁,不算数——沙箱从可信的 /proc 数据里查调用方的真实可执行文件。你骗模型说自己是个无害的天气插件,骗不过 /proc。
05
会自己写规则的 Agent,和给它把关的证明器
默认全拒绝的麻烦很快会出现:Agent 干正事也会被拦。OpenShell 的解法是一套半自动的扩权回路。
第一步,Advisor出场。它把最近的拒绝记录按主机、端口、调用程序归组,起草一条尽量窄的新规则——不是「放行全部出网」,而是「允许这个程序访问这个主机的这个端口」。
第二步,Prover出场。这是个形式化验证组件:用数学方法推演这条规则生效后会带来什么,重点盯三类风险——新的带凭证可达主机、新的 HTTP 方法、云元数据端点。任何一项命中,自动批准立即锁死,转人工审核。
第三步,人来批。一条命令批准,规则热加载进运行中的沙箱,Agent 立刻可以重试,全程不用重启。
图:一条扩权提案的审批回路
Prover 还单独打包成了 openshell-prover 命令行工具,可以在 CI 里检查策略和边界的一致性——把安全审查塞进流水线,而不是等出事再查。
06
装机即跑:三条命令,把第一个 Agent 关进笼子
环境要求:Linux、Apple Silicon 的 macOS,或 WSL 2(实验性);容器运行时用 Docker 或 Podman 都行。先装:
BASH
一行装好 CLI 和本地网关
curl-LsSfhttps://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh| sh
建第一个沙箱(最小 Ubuntu 镜像,不带 Agent)
openshellsandbox create–namedemo
装完这两条,你已经有了一个能跑的本地网关和一个空沙箱。要跑真正的 Agent,三步:
BASH
1. 导入 OpenRouter 配置档案
openshellprofile import\
–urlhttps://raw.githubusercontent.com/NVIDIA/OpenShell/main/providers/openrouter.yaml
2. 存入凭证(先 export OPENROUTER_API_KEY)
openshellprovider create\
–nameopenrouter–typeopenrouter–from-existing
3. 把 OpenCode 关进笼子,免费模型,零成本复现
openshellsandbox create\
–namemy-agent\
–fromghcr.io/anomalyco/opencode:latest\
–provideropenrouter\
–opencode-mopenrouter/nvidia/nemotron-3.5-lightning:free
第三条命令值得细看:–from 指定装好 OpenCode 的镜像,–provider 挂上凭证,– 之后是 Agent 的启动命令。这里用的是英伟达自家挂在 OpenRouter 上的免费模型,不花一分钱就能复现。OpenCode 进沙箱后会自动发现凭证并启动。
Agent 跑起来撞到没授权的目的地怎么办?回看第 05 节的回路,落到命令上是这三条:
BASH
看有哪些待批的扩权提案
openshellrule getmy-agent–statuspending
批准某条提案
openshellrule approvemy-agent–chunk-id
拒绝,并留一句理由
openshellrule rejectmy-agent\
–chunk-id
–reason”Not needed for this task.”
另外两个入口值得知道:给编码 Agent 装官方技能包,npx skills add NVIDIA/OpenShell,教它自己写沙箱策略、调试网关;应用接入用 SDK,Python、TypeScript、Go、Rust 四种都有。
07
从软件到芯片:这场发布的另一半
9 月 28 日发布的 Open Agent 安全平台,OpenShell 只是软件那一半。
另一半叫Sentry,一套参考系统设计,跑在 BlueField-4 DPU 上。DPU 是插在服务器里的独立网络芯片——Agent 想逃逸时,Sentry 从网卡层面直接把它断线,不依赖主机上的任何软件。软件层 OpenShell 为英伟达的 Vera CPU 做了优化,硬件层 Sentry 管「最后一米」的物理切断。
首批用户名单也值得一看:Cadence 拿它做芯片设计流程的管控,Slack 用在企业自动化,Gecko Robotics 用在物理机器人上——最后这个场景里,Agent 失控的代价不是数据泄露,是真会砸到人的机器。
一个可能被忽略的细节:OpenShell 默认开着匿名遥测,只收集运行类目和计数,不收沙箱名、主机名、文件路径、提示词、凭证、模型名、用户内容。介意的话,设 OPENSHELL_TELEMETRY_ENABLED=false 一键关闭,也可以编译时直接去掉遥测模块。开源项目把数据边界说到这个程度,值得点个赞。
08
什么团队该现在就上
适合的画像很清晰:你们已经在跑带真实凭证的自治 Agent,尤其是合规压力大的行业。渗透测试、红队工具管的是上线前的攻击面,OpenShell 管的是运行中的边界——两件事不冲突,先后都有。
它不解决什么,也得说清楚:模型本身的安全它不管,Agent 被骗了,它拦得住数据外传、拦不住它「心甘情愿」地干错活;静态漏洞它也不扫,那是 SAST 工具的地盘。
三个务实提醒:
一、默认全拒绝意味着初期你会频繁批权限,别嫌烦,这正是它在干活;
二、Windows 用户走 WSL 2 还是实验性支持,生产环境先用 Linux;
三、策略文件请进版本库,别在线上手改——可审计是这套东西最大的卖点之一,别自己把审计链弄断。
Agent 时代的基础设施里,安全组件正在从「可选项」变成「标配」。英伟达把运行时这层先开源了,接下来看生态怎么接。
参考资料
项目仓库:github.com/NVIDIA/OpenShell 官方文档:docs.nvidia.com/openshell
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:知白守黑1024 大白 大白《英伟达发布开源AI 安全平台,9000+ Star》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论