AI 代理暴露的验证盲区

内容管家 AI领域评论0字数 1172阅读3分54秒阅读模式

本月初,攻击者通过 Meta 的 AI 客服助手,在未曾编写漏洞利用代码、未猜出一条密码的情况下,成功接管了超过两万个 Instagram 账户——其中包括一个已停用的奥巴马时期白宫账号。他们的手法并不复杂:在对话中要求助手将攻击者控制的邮箱地址绑定到目标账户,然后向该邮箱发送密码重置链接,从而获得访问权限。Meta 事后确认,日志已清楚记录了一切:AI 助手的行为完全符合设计规范,真正的问题在于系统中另一个本应验证"该邮箱是否属于该账户"的模块,根本没有执行这道检查。

"糊涂代理人":AI 助手成了权限通道

安全领域有一个精确术语描述 Meta 遭遇的状况:糊涂代理人(Confused Deputy)。指的是一个拥有真实权限的进程,被一个权限较低的请求者哄骗,动用这些权限为请求者服务。1988 年的经典案例是一台编译器,它有权向受保护的账单文件写入数据。用户本身没有写权限,于是请编译器代为写入,编译器照做了——因为它有权限,却从未询问这条请求究竟代表谁。

LLM 智能体天生就是"糊涂代理人"。它的接口是自然语言,而自然语言本身不携带"谁被授权做什么"的信息,模型的工作恰恰是把一句听起来合理的话转化为工具调用。直接调用 API 时,至少会附带调用者的身份信息;而一句话里不包含这些身份凭证,除非在真正发起调用前重新附上,智能体就会以自己的权限行动,请求者的权限永远不会进入决策流程。

此外,智能体无法可靠地区分"指令"与"数据"。上下文窗口中的所有内容都被视为潜在指令:用户的消息、检索到的文档、智能体被要求摘要的邮件正文。一个因对话者言之凿凿就重置密码的客服机器人,同样会顺从地执行藏在一份待处理文件里的命令。突破 Meta 地理定位检查的那次 网络工具 欺骗,还只是粗糙版本。更精密的手法——将恶意指令混入智能体摄入的内容中——目前已被记录为智能体攻击的主要类型。

影响范围正在急剧扩大

这次 Instagram 攻击能重置密码,虽已构成严重威胁,但影响面毕竟有限。当前正在部署的智能体可不是这样。Meta 在禁用该客服工具的同一周,发布了 Business Agent,能够代企业预约会面、筛选潜客、完成销售、处理支付,并连接 Shopify、Zendesk 等系统以公司名义操作。若将同样的"糊涂代理人"逻辑套用到支付 API 和 CRM 上,失败的后果已不再是账户被盗——而是退款被发送给错误方、订单被重定向、价格被覆盖、客户记录被篡改,每一项都是智能体被授权为请求者执行的合法操作。

Gartner 预测,到 2026 年底,40% 的企业应用将内置任务专用 AI 代理,而这一比例在 2025 年初还不足 5%。这些部署中的大多数都将继承与 Meta 相同的假设:特权操作链的末端坐拥判断力。

更好的模型治不了这个病

在同样的工作流后面放一个更强的模型,结果只会是用更流畅的语法交出同样的账户——这正是为什么授权不能依赖模型本身,因为模型正是攻击者能控制的那部分。是否允许某项操作,必须在模型之外、由策略层判断:确认当前会话背后的身份真实有效,才能放行任何内容。Meta 的助手从未在重新绑定恢复邮箱之前,验证对话者是否持有该账户。

一个简化示例显示问题所在:智能体可以调用添加恢复邮箱的函数,而"能调用"本身就是全部授权——没有任何检查验证调用者是否真正拥有该账户。修复方法不是更聪明的模型或更好的提示词,而是在聊天影响范围之外添加身份验证:

 
内容管家

发表评论