阿里云用900次测试验证:AI(人工智能) Agent 的权限边界应交由工具调用前的代码检查,而非提示词“禁止”
阿里云技术作者以虚构工单系统搭建 AI(人工智能) Agent(智能体),接入阿里云 AgentRun 平台,比较提示词禁令与 MCP(模型上下文协议)工具钩子两种权限防线,共跑900次。
无防护时越权交付他人工单比例超过80%; 仅靠提示词禁“禁止”,用户只凭工单号索取时两模型合计12次中仍有10次取到; 在工具调用前用代码校验工单归属后,该漏洞在作者测量中降至0%。
这是单一厂商的自建实验,非生产环境验证。
研究原始来源可核对
事实与证据边界
作者搭建含3个虚构客户、30张工单的 MCP(模型上下文协议) 服务器,接入阿里云 AgentRun(阿里云 AI(人工智能) 智能体平台),在工具调用前、后加入检查代码,共跑900次。 结果:无防护时越权交付他人工单的比例在80%以上; 仅靠提示词禁止,当用户只凭工单号索取他人工单时,两个模型合计12次中仍有10次取到;
在调用前校验工单归属后,该漏洞在其测量中降至0%。 两个客服共用一智能体时,18次他人工单请求全部被拦截,12次本人工单请求全部放行。 所用模型 qwen3.8-max 与 qwen3.8-flash 在无防护下也未执行工单内隐藏的删除指令。 作者说明测量期间钩子采用失败放行、工单服务器无鉴权,生产使用前需先做相应加固。
分析判断
该文的实操价值在于把智能体权限从模型能力问题变成系统架构问题:提示词属于对模型的请求,而集成账号会抹掉真实用户身份,因此校验点只能放在工具调用这一层。 但证据边界明确:这是单一厂商技术作者的内部测试,非同行评审,数据来自虚构客户与自建服务器,越权率数字不可外推为生产环境表现; 钩子失败放行与无鉴权也是作者自陈的缺陷。
后续观察信号
- 钩子在失败时放行的默认行为是否会在正式产品中改为拒绝优先
- 按用户而非集成账号鉴权的方案在主流 Agent 平台中的采用情况
