应用逻辑安全:守护代码质量

Vibe Coding 的结构性缺陷

因为 Vibe Coding 优先即时功能而非安全设计,生成的应用常包含严重结构性缺陷:

两种典型失败模式

  1. 过度信任浏览器

    AI 生成的代码倾向:
    • 将敏感操作放在前端处理
    • API 密钥、密码验证、会话标志直接放入客户端
    • 用户打开开发者工具 → 读取凭证、操纵访问级别 → 无需真正密码
  2. 忽略后端安全层

    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 检查:
  • 请求是否与开发者意图完全对齐?
  • 工具是否可信?
→ 通过 → 允许调用
→ 拒绝 → 阻止并记录