初学者的模型上下文协议(MCP)课程

发表于 2025-08-12 12:52:05 | 已阅读: 201  次

MCP 安全最佳实践 - 2025年7月更新

MCP 实施的全面安全最佳实践

在使用 MCP 服务器时,请遵循以下安全最佳实践,以保护您的数据、基础设施和用户:

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

免责声明
本文件使用 AI 翻译服务 Co-op Translator 进行翻译。虽然我们力求准确,但请注意,自动翻译可能包含错误或不准确之处。原始文件的母语版本应被视为权威来源。对于重要信息,建议采用专业人工翻译。对于因使用本翻译而产生的任何误解或误释,我们不承担任何责任。