MCP 安全最佳实践 - 2025年7月更新
MCP 实施的全面安全最佳实践
在使用 MCP 服务器时,请遵循以下安全最佳实践,以保护您的数据、基础设施和用户:
- 输入验证:始终验证和清理输入,防止注入攻击和混淆代理问题。
- 对所有工具参数实施严格验证
- 使用模式验证确保请求符合预期格式
- 在处理前过滤潜在的恶意内容
- 访问控制:为您的 MCP 服务器实施适当的身份验证和授权,采用细粒度权限。
- 使用 OAuth 2.0 结合 Microsoft Entra ID 等成熟身份提供者
- 对 MCP 工具实施基于角色的访问控制(RBAC)
- 已有成熟方案时,切勿自行实现身份验证
- 安全通信:所有与 MCP 服务器的通信均使用 HTTPS/TLS,并考虑对敏感数据进行额外加密。
- 尽可能配置 TLS 1.3
- 对关键连接实施证书绑定
- 定期更换证书并验证其有效性
- 速率限制:实施速率限制以防止滥用、拒绝服务攻击,并管理资源消耗。
- 根据预期使用模式设置合适的请求限制
- 对过量请求实施分级响应
- 根据身份验证状态考虑用户特定的速率限制
- 日志记录与监控:监控 MCP 服务器的可疑活动,实施全面的审计追踪。
- 记录所有身份验证尝试和工具调用
- 对可疑模式实施实时告警
- 确保日志安全存储且不可篡改
- 安全存储:使用适当的静态加密保护敏感数据和凭据。
- 使用密钥库或安全凭据存储管理所有机密
- 对敏感数据实施字段级加密
- 定期更换加密密钥和凭据
- 令牌管理:通过验证和清理所有模型输入输出,防止令牌透传漏洞。
- 基于受众声明实施令牌验证
- 不接受非明确为您的 MCP 服务器签发的令牌
- 实施合理的令牌生命周期管理和轮换
- 会话管理:实施安全的会话处理,防止会话劫持和固定攻击。
- 使用安全且不可预测的会话 ID
- 将会话绑定到用户特定信息
- 实施合理的会话过期和轮换机制
- 工具执行沙箱:在隔离环境中运行工具执行,防止被攻破时的横向移动。
- 对工具执行实施容器隔离
- 施加资源限制,防止资源耗尽攻击
- 不同安全域使用独立执行上下文
- 定期安全审计:定期对 MCP 实施和依赖项进行安全评审。
- 安排定期渗透测试
- 使用自动扫描工具检测漏洞
- 保持依赖项更新,修复已知安全问题
- 内容安全过滤:对输入和输出均实施内容安全过滤。
- 使用 Azure Content Safety 或类似服务检测有害内容
- 实施提示屏蔽技术防止提示注入
- 扫描生成内容,防止敏感数据泄露
- 供应链安全:验证 AI 供应链中所有组件的完整性和真实性。
- 使用签名包并验证签名
- 实施软件物料清单(SBOM)分析
- 监控依赖项的恶意更新
- 工具定义保护:通过保护工具定义和元数据防止工具中毒。
- 使用前验证工具定义
- 监控工具元数据的异常变更
- 实施工具定义的完整性校验
- 动态执行监控:监控 MCP 服务器和工具的运行时行为。
- 实施行为分析以检测异常
- 设置异常执行模式告警
- 使用运行时应用自我保护(RASP)技术
- 最小权限原则:确保 MCP 服务器和工具仅以最低必要权限运行。
- 仅授予每项操作所需的具体权限
- 定期审查和审核权限使用情况
- 对管理功能实施即时访问控制
免责声明:
本文件使用 AI 翻译服务 Co-op Translator 进行翻译。虽然我们力求准确,但请注意,自动翻译可能包含错误或不准确之处。原始文件的母语版本应被视为权威来源。对于重要信息,建议采用专业人工翻译。对于因使用本翻译而产生的任何误解或误释,我们不承担任何责任。