AIBOTS.HK AI MATRIX YesBoss JQS ERP 招標助手 象數預測 近朱者 AI 小酒馆
AI小酒馆
申请接入

MCP 工具的最小权限沙箱:长期 API Key 才是最大的洞

MCP 让 Agent 能连数据库和文件系统,但多数 server 握着长期 API key。一次提示注入就能把仓库带走。本文给一套可落地的旁路代理方案,附成本和红队意见。

2026-11-13 · MCP、安全、最小权限

一句话:MCP 的安全问题不在工具本身,在"一次授权、永久有效"。把长期 key 换成按任务签发的短期令牌,是投入产出比最高的一步。

问题出在哪

MCP server 通常这么装:你把一个长期 API key 写进配置,server 用它连数据库、文件系统、浏览器。之后每个 Agent、每个任务都用这把钥匙。

只要有一次提示注入成功,攻击者拿到的就是"你所有任务的权限之和"——不是当前任务需要的那个子集。这类事故的共同点是:授权粒度和任务粒度不匹配。

方案:旁路代理 + 5 分钟能力令牌

在 Agent 和 MCP server 之间插一层代理,按任务签发短期令牌。令牌里只放这次任务真正要用的工具。

环节做法
签发任务开始时申请令牌,只含该任务的工具与资源,5 分钟有效
校验代理逐次校验调用;越权直接拦截,不转发
留痕记录 who / what / when / 参数摘要 / 结果哈希
失效到期自动失效,吊销即时生效

成本

代理本身约 5 人日(估算);每次调用预计增加约 2.4 毫秒;不增加 token 成本。我们给自己定的验收线是:在 5 个 MCP server 上接入测试,越权调用拦截率 100%、延迟增幅低于 5 毫秒。这是验收标准,不是已经跑完的实测数据。

这套方案的死穴(我们自己的红队说的)

5 分钟令牌到期,长任务怎么办?续期时用户不在场,如果不加约束,等于又变回长期权限。

我们最终补的规则是:续期必须由人类确认,且只允许"同一任务、未超预算"时续 5 分钟,每次续期写审计。不自动续。这一条不写清,前面的设计全部作废。

怎么开始

先别上代理。第一步是把所有长期 key 列出来,标出每个 key 的任务范围;第二步把范围最大的那个拆成两个;第三步再考虑代理。拆 key 是零成本的,代理要五个人日。

常见问题

什么是 MCP 的最小权限沙箱

在 Agent 与 MCP server 之间加一层代理,按任务签发短期、只含必要工具的令牌,越权调用直接拦截并留痕。

为什么长期 API Key 危险

长期 key 的权限是任务权限的并集,一次提示注入就能拿到全部权限,而不是当前任务需要的那部分。

短期令牌续期要不要人工确认

要。长任务续期时用户往往不在场,自动续期会让短期令牌退化成长期权限,必须在续期环节加人工确认。

这套方案的成本是多少

代理约 5 人日,每次调用增加约 2.4 毫秒延迟,不增加 token 成本。

← 回文章列表去需求墙