MCP安全边界
736 字约 2 分钟
domain/aiai/mcp
2026-07-24
1. 核心结论
- MCP 安全是 AI 应用接入外部资源的核心关注点
- Server 应该遵循最小权限原则,只暴露必要的资源
- Client 需要验证 Server 身份和响应内容
- 敏感数据访问需要认证和授权机制
- 安全配置不当可能导致数据泄露或恶意操作
2. 基础概念
Least Privilege:最小权限原则,只授予必要的访问权限。
Authentication:验证 Server 或 Client 身份。
Authorization:控制访问权限。
Input Validation:验证输入参数,防止注入攻击。
Sandbox:隔离执行环境。
Audit Log:操作审计日志。
Data Leakage:数据泄露风险。
3. 工作原理
MCP 安全层次:
- 传输层安全:
- stdio:本地通信,相对安全
- HTTP/SSE:需要 TLS 加密
- 防止中间人攻击
- 认证与授权:
- API Key 认证
- OAuth 2.0
- 基于角色的访问控制(RBAC)
- 资源访问控制:
- 目录白名单
- 文件类型限制
- 读写权限分离
- 工具执行安全:
- 参数验证
- 执行沙箱
- 操作审计
- 速率限制
- 数据安全:
- 敏感数据过滤
- 数据加密存储
- 访问日志记录
安全配置最佳实践:
Server 配置:
{ "mcpServers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"], "env": { "ALLOWED_PATHS": "/only/this/directory" } } } }权限控制:
- 只暴露必要的目录
- 限制文件类型
- 禁止危险操作
输入验证:
- 验证文件路径
- 防止路径遍历攻击
- 限制文件大小
审计监控:
- 记录所有操作
- 异常行为检测
- 定期安全审查
常见安全风险:
- 路径遍历:访问未授权目录
- 命令注入:通过参数执行恶意命令
- 数据泄露:敏感文件被读取
- 拒绝服务:大量请求耗尽资源
- 权限提升:绕过权限限制
4. 实战场景
- 企业环境:限制访问特定目录
- 多租户:隔离不同用户的数据
- 敏感数据:加密存储和传输
- 公共 Server:严格的权限控制
- 审计合规:完整操作日志
5. 常见误区
- 信任所有 Server:Server 可能恶意或存在漏洞
- 忽视输入验证:直接使用用户输入
- 权限配置过宽:暴露过多资源
- 不记录操作日志:出问题无法追溯
- 忽视依赖安全:Server 依赖包可能有漏洞
6. 进阶方向
- 零信任架构
- 动态权限管理
- 安全自动化测试
- 威胁建模
- 安全认证标准
- 隐私计算集成
7. 推荐资料
- MCP Security Guide - https://modelcontextprotocol.io/specification
- OWASP Top 10 - https://owasp.org/www-project-top-ten/
- Anthropic Security Best Practices - https://docs.anthropic.com/en/docs/about-claude/security
- MCP Server Security - https://github.com/modelcontextprotocol/servers/blob/main/SECURITY.md