69% 的公司,给所有 AI agent 共用一把钥匙
一半以上的公司,已经在 AI agent 身上出过安全事故了。
VentureBeat 六月做了轮调研,对象是百人以上规模的企业。54% 的组织承认经历过 AI agent 安全事件,拆开看,18% 是确认发生的事故,36% 是抢在造成损失前掐掉的未遂。这还只是承认的部分。
同一轮调研里还有个数字,69% 的企业在多个 agent 之间共享凭证。同一把 API key、同一个服务账号,整支 agent 车队排着队用。

把这两个数字放一起看,你就明白事故不是运气不好,是结构性的。
先说清楚为什么共享凭证在 agent 时代是个完全不同量级的问题。给脚本共用账号,这事各家干了几十年,大部分时候也没炸。因为脚本是死的,执行路径写在代码里,它不会自己决定今天多干点什么。
agent 不是。agent 的定义就是让模型自主决策行动路径,它读到什么就可能去做什么。而 prompt 注入这类攻击,就是往它读的内容里塞指令,一封邮件、一个 issue、一段网页,都可能是投毒入口。我之前写过 GitHub 上的 agent 注入攻击,套路已经很成熟了。
现在把两件事拼起来。一个 agent 被注入,它手里的钥匙同时是其它十几个 agent 的钥匙,攻击者拿到的不是一个入口,是整支车队。共享凭证在脚本时代是省事,在 agent 时代是把爆炸半径从一个点放大到全域。
真正让我停下来的是调研里那组对照数字。车队里任何位置存在共享凭证的组织,过去 12 个月被事故或未遂命中的比例是 63.5%。每个 agent 都有独立限权身份的组织,这个数字是 40.9%。

一个身份管理动作,砍掉三分之一的事故率。安全领域里能用一个改动换这么大收益的杠杆,不多。
但实际做到的有多少呢,同一轮调研,只有约三分之一的组织给每个 agent 发独立身份,只有 30% 对最高风险的 agent 做沙箱隔离。云安全联盟的平行研究给了个呼应,超过半数组织经历过 agent 越权,就是 agent 干了超出它该干范围的事。
这次调研还捎出另一个缺口,和身份问题正好凑成一对。半数组织把通过了内部测试的 agent 部署到生产之后,闹出过客户可见的故障。行话叫评估的现实对齐缺口,你的测试集是你想象中的世界,生产环境是真实世界,agent 在前者拿满分,到后者照样翻车。身份是护栏,评估是准入,这两道很多团队一道都没立稳,就把 agent 放进了核心流程。
为什么大家不做。我自己的感受是,不是不懂,是 agent 上线的速度太快,身份体系没跟上。搭一个 agent 拿现成的 key 十分钟能跑通,给它申请独立服务账号、配最小权限、走审批,可能要两天。deadline 面前,十分钟赢了两天,一次又一次。
还有个更隐蔽的原因,很多 agent 是拿着人的身份在跑。你把自己的 token 给它,它继承了你能碰的一切。它出问题的时候,审计日志里写的是你的名字。这句话值得停一秒,agent 干的事,记在你头上。
拆到这里,给一份能直接用的身份卫生清单,对着自查就行。
第一条,每个 agent 一个身份。独立的服务账号或 scoped token,不共享,不借人的。这样一个 agent 沦陷,撤销它一个的凭证就完事,而且日志能说清楚是谁干的。
第二条,权限按任务给,不按方便给。读代码的 agent 不需要写权限,发通知的 agent 不需要读数据库。申请权限时问一句,这个任务的最小集合是什么,而不是,哪个现成的 key 权限够大。
第三条,高危 agent 进沙箱。能执行代码的、能碰生产数据的、能对外发东西的,跑在隔离环境里,出口收窄。70% 的组织没做这条,做了你就跑赢了大多数。
第四条,给撤销留后门。凭证要能单独吊销、快速吊销。出事时最贵的不是损失本身,是你发现根本不敢撤 key,因为撤了不知道会断掉多少共用它的东西。
可能有小伙伴会说,我们小团队总共就跑三个 agent,一人看得过来,搞独立身份是不是过度设计。我非常理解这个想法,三个 agent 的时候确实出不了大事。但恰恰是三个的时候,把每个 agent 单独发身份这个习惯立住,成本最低,就是多申请两个 token 的事。等规模涨到三十个再想迁移,那就不是发身份了,是给全公司换锁,而且大概率会一直拖着不换。安全习惯和代码规范一个道理,最便宜的建立时机永远是现在。
最后照例交代一下数据的成色,这轮调研样本只有 107 家,单一时间窗,数字别当铁律引用。但 63.5% 和 40.9% 的方向差距,和我平时看到的情况是对得上的。权限和身份这种事,平时是最没存在感的工程,出事时是第一个被追问的工程。
说真的,agent 安全这个话题接下来只会越来越热,因为部署量在指数涨,而身份体系的欠账还在原地。今天欠的每一把共享钥匙,都是将来某次事故复盘会上的一页 PPT。
趁着还没上那页 PPT,先把钥匙分了。