做变电站远程智能巡检那阵子,现场每个能动的设备旁边都有一个急停按钮,红色蘑菇头,拍下去就断电。甲方验收时专门问过一句:这个按钮断了网线,还管用吗。
急停按钮的价值不在你按下它,在它一直都在。
让 AI 靠近物理设备的第一步,不是提升它的能力,是把「谁能让它停下来」这件事写死。
这周有几件事,让我觉得这句话从经验变成了硬约束。
10 月 7 日,安全公司 JFrog 披露了 LMCache 的一个漏洞,CVSS 评分 9.8,目前没有修复版本。LMCache 是很多团队为了省掉重复计算,给自托管推理服务叠的一层缓存。问题出在它的多进程模式:开一个网络端口,没有认证,其中一类消息在还没校验类型之前就做了反序列化,一条消息就能执行对方的代码,而官方容器以 root 运行。项目自带的 Kubernetes 部署示例,恰好就是监听所有网卡的那个写法。
同一周,Pwn2Own 爱尔兰站第一天付了约 38.85 万美元买下 32 个零日,被打穿的包括 OpenAI 的 Codex 编码 agent,和一个叫 LiteLLM 的网关。拿下 Codex 的不是什么新手法,是参数注入:往程序自己拼出来的命令行里塞额外的参数。
打穿 2026 年编码 agent 的,是一个 1990 年代就有的漏洞类别。
这两件事放在一起,结论有点不舒服:agent 的安全水位不取决于它多聪明,取决于它外面那层壳拼得多糙。
我自己踩过类似的坑。早期做 AI 巡检后端,为了省一次重复计算,我在服务和模型之间加了一层缓存。当时只算了它省下多少算力时间,没算过它多开了哪些端口、跑在什么权限下、谁在盯它的漏洞公告。后来那套系统做四层架构重构,第一件事不是拆服务,是把「谁对外开了端口」列成一张表。
为省钱叠的每一层中间件,都是一个新的、通常没人管的攻击面。
省下来的钱,最后是按漏洞偿还的。
10 月 8 日 Anthropic 更新了使用政策,11 月 12 日生效。媒体都在写「禁止虐待模型」那条,我更在意另一条:当模型接入能够自主采取物理行动的硬件时,必须有合格操作员能够监视这台设备,并让它停下来。
同一天它启动了面向电网、水务、工厂的防御计划,十一家创始伙伴里有做工业控制器的 Rockwell、做工控安全的 Dragos 和 Nozomi。官方自己写了一句很实在的话:这些设备设计寿命几十年,不能为了打补丁停机,已知漏洞可以在那儿躺很多年。
这句话我太熟了。变电站里的装置不是服务器,说重启就重启。一条告警要落到动作上,中间那道人工确认不是流程冗余,是唯一能兜住误报的东西。当年做生产领域智能安监,误报和漏报的成本根本不对称,指标本身就在替你做价值判断。
但我要指出这条政策的留白:它写了「能够监视并停止」,没有写监视的粒度、停机的延迟上限、停机通道是否独立于被控系统。这三点在真实工程里才是决定性的。
让人看得见,才是让人停得下的前提。
合同留白的地方,正是架构师该补的地方。
还有一个更根本的问题。OpenAI 被解雇的一名安全研究员公开说,他被解雇的真实原因是几个月里一直在提一个担忧:团队正在失去监控 agent 思维过程的能力,而这本是捕捉它不当行为的最好工具之一。
不能把「事后读一遍它的思考」当成审计手段来规划。
可观测性要建在动作层,不能建在解释层。回路是给人看的,不是给模型看的。
一、把自建推理栈的网络边界画一遍。 逐个查这些组件是不是绑了可路由地址、开了什么端口、容器以什么用户运行、官方有没有安全公告。这一步不花预算,今天就能画完。
二、给每一条会驱动物理动作的输出,定一条独立于它的停机通道,并实测一次延迟。 通道要和 agent 所在的进程、网络、权限完全分开,测出来的秒数写进设计文档,不写「尽快停机」。
三、把「中间件漏洞响应时效」写进选型评分表。 找同类组件过去一年的修复时长做对照,服务再好、性能再强,长期不修漏洞的那一层不该进关键链路。