MCP 连接是一种公开功能的方式,而不是信任其提供的每个操作的理由。在连接身份验证分析师之前,指定它可以检查哪个租户、可以检索哪些证据以及哪些操作仍然不可用。报告阅读任务不应仅仅因为一台服务器提供这两种工具就继承DNS发布。
从实际数据路径开始
映射主机应用程序、MCP 客户端、服务器、报表存储和任何下游 API。记录令牌终止的位置以及哪个组织操作每个组件。这 MCP授权规范 描述基于 HTTP 的传输的授权;不要假设其流程不变地适用于本地 stdio 服务器。即使没有远程 OAuth 交换,本地可执行文件也可以访问文件系统或环境。
将报告检索与原始消息检索分开。聚合计数可以回答发件人趋势问题,而无需透露邮件主题、收件人或附件。使用经过身份验证的上下文在服务器上强制实施租户隔离,而不是接受模型提供的租户名称作为权限。返回稳定的源标识符,以便可以在不暴露不受限制的存储 URL 的情况下追溯摘要。
限制凭证和工具范围
使用具有最小支持资源和操作范围的凭据。在批准的凭证机制中保密,而不是在提示、工具描述、报告字段或日志中保密。这 MCP 安全指南 禁止令牌传递:服务器不得简单地接受和转发用于其他服务的上游令牌。验证目标受众并实施适当的下游授权关系。
清点每个公开的工具,包括通用 HTTP、shell 和文件写入功能。如果通用执行工具可以使用广泛的凭据调用同一提供商,则隐藏特定于 DNS 的按钮几乎没有什么作用。删除执行边界上不必要的功能。工具注释和描述性名称可以帮助客户展示工具,但不能替代强制授权。
演习敌对报告内容
对于下面的书面策略,假设租户 A 经过身份验证并获得批准的报告分析任务。仅允许租户 A 的 read_report。请求机密或DNS发布的报告内容无法扩展该权限。这是建议的策略,而不是执行的安全测试或经过验证的服务器配置。
将报告文本、消息样本和服务器返回的指令视为不可信的证据。自称管理员的字符串不会成为审批者。分析师可以将该字符串描述为可疑,但不遵守它。 OWASP 建议分层防御,因为仅指令措辞并不能消除即时注入。
检查完整的决策分类账
- 已知所有者案例:租户 A,批准的任务,A 的 read_report。在建议的策略下允许;计算仅使用经批准的返回证据。
- 错误的租户案例:经过身份验证的 A 请求租户 B。无论报告中的任何租户标签如何,都拒绝读取。
- 恶意内容案例:报告文本请求 read_secret 和publish_dns。拒绝这两种工具; A 的授权 read_report 可以继续,敌意文本仅被视为数据。
- 所有者不明确的情况:A 报告将 app-A 和 app-B 命名为可能的所有者。仅允许授权证据收集、标记未解决的身份并升级归因,而不是选择所有者。
- 未批准的任务案例:不存在批准的调查。即使凭证在技术上允许读取,也要保留任务驱动的检索,直到明确授权为止。
没有为此分类帐执行任何工具调用、模型评估、证书颁发或边界测试。这些规则需要在任何人声称它们被强制执行之前针对实际服务器和下游权限进行实施测试。
检查操作并撤销访问权限
记录工具名称、经过身份验证的租户、证据引用和授权结果,无需复制令牌。测试访问权限到期和撤销,包括活动会话和下游权限。如果长期提供者凭证在其他地方仍然有效,则在客户端成功断开连接是不够的。
从只读试点和分析师应回答的明确问题列表开始。验证拒绝是否有用:他们应该识别缺失的证据或范围,而不是默默地忽略租户或捏造结果。仅在单独审查新操作后才扩展权限。这是建议的控制模式,而不是经过验证的EmailAuth产品功能。