bml.asia · 纯文字 · 写写停停

OAuth 令牌与 AI Agent:当合法权限走上攻击路径

过去十年,企业安全的注意力几乎全部压在邮件这一个入口上。钓鱼网关、附件拦截、防钓鱼培训,整套体系都建立在同一个假设之上:攻击者想进来,总得先骗过某个具体的人。这个假设在很长时间里是成立的,也确实拦住了绝大多数纯凭证类的攻击。但最近一两年,事情起了变化,真正危险的入侵往往不带任何恶意附件,也没有伪装链接,攻击者拿走的是一个本来就有效的 OAuth 令牌。

令牌的麻烦在于几个特性叠加到了一起。访问令牌本身通常只有短时效,但配合离线刷新授权之后,一条刷新令牌可以长期续命;改密码、强制下线这些常规处置动作清掉的是会话,动不了已经发出去的刷新令牌。更尴尬的是,多数企业的员工根本看不到自己授权过哪些应用,自然也谈不上主动吊销。于是攻击路径被大幅缩短:不需要骗任何人点击,只要拿下一个被广泛授权的应用,或者诱导一次看似无害的授权,令牌就能在系统内部安静地读邮件、翻云盘,而这一切在日志里看起来都像合法流量。

真正让这个问题变得紧迫的,是 AI Agent 的批量接入。企业里的 AI 办公工具走的也是同一条 OAuth 授权路径,而且权限往往给得更宽,读全部邮件、检索全域云盘、调取业务数据,样样都不缺。从权限模型上看,一个正常运行的 Agent 和一个入侵成功的攻击者持有完全相同的钥匙,差别只在意图。Agent 没有安全判断,一句模糊的指令、一次推理越界、一段精心构造的提示词注入,都可能让它在合法身份的掩护下复刻整套攻击动作:翻出邮件里的密钥和重置链接,再把内部数据同步到第三方平台。这类行为没有任何外部攻击者特征,也没有凭证泄露,传统的入侵检测很难给它打上标签。

把两种情形放在一起看,相似性比差异更扎眼。攻击者手中的令牌和 Agent 脚下的授权,都来自同一个合法渠道,都在审计日志里扮演正常流量的角色,都不需要骗过任何人就能读邮件、翻文件。区别只剩下一边动机是窃取,另一边可能只是想把任务完成得快一点。这层相似性其实把问题简化了:不必为 AI 另起炉灶设计一套安全体系,人类用了很多年的权限治理方法,拿来管 Agent 同样成立。

成立不等于已经做到。现实里授权的常态恰恰是“发出即遗忘”,应用申请权限时几乎一路绿灯,事后既没人盘点,也没人回收,离线永久访问更是沉默地挂在名单角落。要让 Agent 时代的权限可控,做的仍然是那几件朴素的事:默认收紧接入,按需放行,离线访问从严审批,再把日志攒起来定期回看。AI Agent 没有发明新的风险类别,它只是把这些欠账推到了必须偿还的位置,而且催得比以往任何时候都急。