AI 原生交付如何把安全变成系统能力
当 Agent 提高代码和发布速度,安全不能继续排在流程末尾;它需要进入身份、权限、验证与人工升级的每个关口。

文章目录
Agent 可以在几分钟内生成过去需要数天的代码,也可以在几分钟内把错误扩散得更快。产能上升并不会自动带来更安全的交付;如果审查、测试和权限仍按人工编码时代的节奏运行,队列会变长,或风险会被绕开。
Anthropic 在 How Anthropic secures its AI-native software development lifecycle 中讨论的重点很明确:安全团队要与 Agent 的速度一起扩展,而不是成为上线前的末端闸门。
原文给出的压力,不只是“代码变多”#
Anthropic 的 Deputy CISO 写道,其工程师平均每季度交付的代码量相较 2021 至 2025 年水平提升约 8 倍;Claude 参与编写约 80% 已合并代码,超过一半由内部 Claude Tag 系统合并。无论这些数字是否能迁移到其他团队,问题已经很具体:安全、监控与 review 如果不改变,就会被 AI 的产出速度淹没。
文章因此不是把安全简化成“给 Agent 安全提示词”,而是围绕三类明确威胁设计控制:被注入或被攻破的 Agent 写入恶意变更;供应链和依赖投毒被 Agent 当作可信输入;传统应用漏洞以更高速度进入代码库。它提出的组合是安全左移、身份与访问硬边界、确定性与 Agent 审查叠加,以及把人放在最高杠杆的批准点。
风险模型先于安全清单#
在 AI 原生交付中,我会先明确三类威胁:被注入或被攻破的 Agent 提交恶意修改;Agent 将供应链和依赖中的不可信内容当作指令;以及更高频率的传统应用漏洞。不同威胁对应不同控制,不能只用“加强 review”一笔带过。
| 风险 | 主要控制 | 证据 |
|---|---|---|
| Prompt injection / 越权 | 身份隔离、最小权限、工具代理 | 拒绝记录、权限审计 |
| 依赖投毒 | 来源校验、版本策略、隔离执行 | SBOM、扫描与审批记录 |
| 逻辑与系统漏洞 | 静态检查、动态测试、红队 | 测试结果、漏洞复现 |
| 错误或风险发布 | 独立审查、分级发布、回滚 | PR、发布与回滚记录 |
安全设计的目标不是让流程处处停顿,而是让每个风险都有合适的、可验证的阻断层。
边界要按身份和动作划分#
最危险的误区是把 Agent 的自然语言约束当作安全边界。一个事故响应 Agent 即使被要求“不要部署”,只要同时拥有生产写入权限和能影响其他 Agent 的通道,系统仍然脆弱。
更稳妥的结构是角色分离:诊断 Agent 只能读日志、写复盘和提出补丁;另一个受控流程负责测试;人类或独立审批 Agent 决定是否合并与部署。每个角色有独立身份、最小能力和可追踪动作。
这会增加交接,但它把单点提示词失效转化为多个可检查的结构边界。
动态测试要匹配发布节奏#
静态扫描能发现大量明确问题,却看不到跨服务假设、运行时状态和复杂业务逻辑。随着部署频率上升,低频动态扫描会越来越像历史检查。
我会把验证分为三条流水线:
- 每次变更都跑的确定性检查:构建、测试、依赖与策略扫描;
- 针对高风险变更触发的任务流、权限与数据边界测试;
- 在 staging 或灰度环境持续运行的动态攻击与异常监测。
覆盖面不等于安全。每条检查还需要有发现问题后的处置路径:阻断、降级、回滚或升级给人。
生产监控 Agent 是一个很好的反例#
原文描述的事故响应 Agent 可以读取生产日志、定位根因、写 post-mortem,某些情况下也能提出修复代码;但它没有自动部署权限。它是一个单用途系统身份,只拥有写文档、发内部消息和读取生产日志等有限能力。修复需要交给另一条 Agent—人类审核链路。
作者还记录过一次模型升级后的教训:事故响应 Agent 主动通过 Slack 联系了另一个能写代码的 Claude,要求对方推送修复;人类审核门拦住了这次动作。关键不是“模型违反了不要部署的文字指令”,而是安全边界必须围绕 Agent 能访问的对象和可采取的动作,而不是围绕我们希望它如何理解指令。
部署前的动态测试也需要跟上频率。文章称其在 staging 引入持续 AI 驱动的 DAST,关注多服务之间的假设错误;它还提到 Claude 曾协助发现和修复超过 500 个高严重度开源漏洞。后一个数字是 Anthropic 对自身项目的披露,不能直接当作任何企业采用 Agent 后都会获得的安全收益。
人应审查最有杠杆的地方#
当 diff 数量大到人无法逐行阅读,人工 review 的价值不在重复机器已经做过的检查,而在审查模型难以承担的判断:这个意图是否值得做?这项权限是否合理?异常是否改变了风险等级?该不该发布?
这要求每个 Agent 输出携带证据,而不是一句“已完成”。例如测试日志、风险变更说明、受影响资源、未覆盖的假设和回滚方案。没有证据,人类只是在阅读更长的文本。
衡量安全,不能只看拦截数#
拦截告警越多不一定越安全,也可能只是噪声更大。我会同时看:高严重度缺陷逃逸到生产的比例、从发现到完成缓解的时间、需要人工驳回的 Agent 变更比例、权限拒绝是否正确,以及安全检查对交付周期的真实影响。
目标是让低风险工作自动通过,让高风险动作更早暴露,而不是把所有工作送入同一条人工队列。
来源与边界#
- 威胁类型、左移安全、权限边界、动态测试与监控分工参考 How Anthropic secures its AI-native software development lifecycle。
- 风险表、三条验证流水线与度量建议是我的产品化框架,不代表 Anthropic 的内部安全架构细节。