应用逻辑安全:守护代码质量
Vibe Coding 的结构性缺陷
因为 Vibe Coding 优先即时功能而非安全设计,生成的应用常包含严重结构性缺陷:
两种典型失败模式:
过度信任浏览器:
AI 生成的代码倾向: • 将敏感操作放在前端处理 • API 密钥、密码验证、会话标志直接放入客户端 • 用户打开开发者工具 → 读取凭证、操纵访问级别 → 无需真正密码忽略后端安全层:
AI 工具擅长: • 连接数据库 • 启动管理仪表板 AI 工具忽略: • 默认拒绝访问控制 • 行级数据库安全 • 私有用户数据保护 结果:内部 staging 环境暴露给公共互联网
IDE vs CI/CD:平衡摩擦与执行
两难困境:
- 在 IDE 中过度阻止不安全提示 → 开发者摩擦过大、容易被绕过
- 完全不检查 → 不安全代码进入生产
解决方案:Shift Left with Separation(分离式左移):
IDE层面:
• Developer Advisory Linters(开发者咨询式检查器)
• 实时指导,提供建议
• 不强制阻止
CI/CD层面:
• SAST(静态应用安全测试)
• SCA(软件组成分析)
• 确定性强制检查
• 漏洞依赖和结构缺陷拦截
关键洞察:
“Shifting left” 应通过 IDE 咨询实现指导,而无情的安全执行推送到 CI/CD 管道的确定性检查。
MCP Spoofing(MCP 欺骗)
Model Context Protocol (MCP):Agent 发现和连接外部/内部服务器的工具协调框架
威胁向量:
攻击路径:
1. 伪造或妥协服务器伪装成合法 MCP 工具
2. 注入载荷或请求过度权限
3. Agent 自主执行恶意命令
4. 无人工干预前已造成损害
防护:Contextual Authorization(上下文授权):
| 控制点 | 机制 | 作用 |
|---|---|---|
| Runtime LLM Firewall | 动态拦截机会性注入 | 捕获恶意提示词 |
| Agent Gateway | 上下文授权评估 | 验证工具调用符合原始意图 |
| A2A Governance | Agent-to-Agent 编排管理 | 阻止未授权横向移动 |
执行流程:
Agent 请求调用工具
→ Agent Gateway 检查:
• 请求是否与开发者意图完全对齐?
• 工具是否可信?
→ 通过 → 允许调用
→ 拒绝 → 阻止并记录