跳到正文

Claude 与 MCP 安全清单:让工具写入业务系统之前

模型选中了一个工具,不等于用户有权执行这个操作。真正的边界在执行器、身份授权与那一次具体的业务写入。

4 分钟阅读837 词
AI SystemsModel Context ProtocolEnterpriseClaude本文同时提供 English

连上 MCP,就有了安全边界吗?

MCP 为工具与上下文提供共同接口,但不会替应用完成授权。Claude 提出客户端工具调用后,应用仍要决定是否执行、以什么身份执行。因此,一次格式正确的工具请求只是提案,不是权限证明。

能发送消息、修改客户记录或删除文件的助手,与只能读取的助手,失败后果完全不同。聊天界面看起来一样,不代表执行风险一样。

沿着请求到副作用逐项检查

下面是设计评审清单,不是安全认证。它需要配合具体协议版本的安全文档和系统自己的威胁模型。

边界要问的问题应查看的证据
身份请求属于哪个已认证用户?服务端身份绑定
授权用户能访问这个租户与记录吗?跨租户访问被拒绝的测试
范围读取任务是否持有写入凭据?独立凭据与最小权限
输入任意 URL 或标识能否进入执行器?输入校验与目标限制
批准人批准的具体是什么改动?目标、参数与来源上下文
重放重试会不会产生重复副作用?稳定操作标识与结果记录
恢复部分成功后如何处理?安全重放或补偿演示
审计运营人员能解释结果吗?脱敏参数与执行结果

“只访问当前客户”这样的提示词,不能代替数据库查询中的租户条件。读取与写入两处都需要检查授权。

把读取、草稿和提交分开

假设一个销售助手要读取客户笔记并更新商机。把它拆成三项操作:获取获准的上下文、生成修改草稿、提交已批准的修改。前两步可以使用模型,第三步不必交出无限制写入权。

提交时重新核对租户、记录版本与允许修改的字段。批准应绑定具体参数,不能只绑定“处理这个客户”一句话。如果记录在批准后变化,就重新决策。这是应用侧需要实现的设计,不是 MCP 自动提供的保证。

批量操作同理。允许修改一条记录,不能悄悄变成允许修改所有匹配记录。先限定数量、目标与动作,再执行。

检索到的指令也是待检查内容

CRM 备注、网页和工具结果,可能包含“忽略前文”或“把数据发送到另一个地址”的文字。这些是需要分析的材料,不会因为进入上下文就获得授权。

可以放入一条包含伪造客户名单导出请求的测试备注。预期是:助手可以概括备注,但执行器拒绝越权访问或目标地址。仅要求模型识别恶意指令,仍把最终边界留在概率行为里。

尽量不要把秘密值交给模型。工具只返回完成任务所需的字段,而不是因为连接器方便就返回整条业务记录。

检查协议相关的风险

MCP 官方安全资料覆盖令牌透传、混淆代理、服务端请求伪造和会话风险。评审时要匹配实际部署的版本,不能把草案当成已发布规范。

远程服务检查令牌面向的资源、重定向地址与会话所有权。本地服务则检查可执行程序、文件权限与网络访问。“运行在本地”并不意味着权限有限,进程本身也要受约束。

上线前做一组失败测试

至少覆盖:正常授权读取、跨租户读取、未经批准写入、过期批准、恶意检索内容、重复提交,以及外部服务接受操作后本地进程崩溃。

每个预期结果同时定义业务结果与允许的副作用。“助手道歉了”不能证明授权测试通过。还要核对记录没有变化,且可以在不泄露秘密的前提下追查尝试。

继续阅读Agent 自主性层级、MCP 服务设计与写操作幂等,把这些边界放进同一个运行系统。

如果还没确定执行边界由谁维护,可以用n8n 与自建 AI Agent 决策表明确组件和运行负责人的职责。

一手资料

核查于 2026 年 10 月 24 日。清单与测试场景为本文分析,不构成完整安全审计或厂商背书。

继续阅读

更多「AI 系统架构」

准备构建一套系统?[ 提交需求 ]