Anthropic 如何保障 AI 原生软件开发生命周期的安全
发布日期: 2026年7月21日
分类: Claude Code
来源: https://claude.com/blog/how-anthropic-secures-its-ai-native-software-development-lifecycle
在 Anthropic,代码规模和部署速度正呈指数级增长。与 2021 至 2025 年相比,软件工程师现在平均每季度交付的代码量增加到 8 倍。
审查、监控和其他安全流程必须随之扩展,否则就会成为瓶颈,这正是阿姆达尔定律所描述的问题。
软件开发过程也发生了根本变化:Claude 已从编码助手演变为主要的创作者和审阅者。如今,Claude 撰写的代码约占合入 Anthropic 代码库代码的 80%;其中超过一半由内部版本的 Claude Tag 合入。人类工程师则把重点放在给出方向、设定意图,以及承担最终批准责任。
安全团队因此必须防御快速扩大的攻击面,并加固一个以非确定性、持续演进的 Agent 为中心的生命周期。本文说明 Anthropic 用来保护软件开发生命周期(SDLC)的策略。
本文应与近期发布的 《Agent 零信任》框架配合阅读;文中所有实现均采用该框架的安全设计理念。
所防范的威胁十分具体:被攻陷或遭到 Prompt injection 的 Agent 引入恶意改动;Agent 将被投毒的供应链和依赖项当作可信输入摄入;以及数量显著增加的传统应用漏洞。下文每项控制措施都至少对应其中一种威胁。
在不明显拖慢研发速度的前提下,我们采用了几项总体策略:
- 将安全左移,并完全融入代码开发阶段;
- 使用严格的访问与身份边界来控制影响范围;
- 在生产前后结合自动化、确定性审查和 Agent 审查;
- 把人安排在杠杆最高的决策点上。
本文依次介绍 SDLC 各阶段已经实施的安全流程,以及背后更具持久性的原则。随着模型能力变化,安全团队必须持续重新审视、甚至重建自己的流程;这些原则比具体工具更经得起变化。
不断演化的软件开发生命周期

开发团队已经在另一篇文章中详述了 SDLC 的变化,这里只作简要铺垫。
总体而言,Anthropic 的 SDLC 被压缩了:相对于长周期规划,它更由原型和内部实际使用(dogfooding)驱动。创意来自组织各处,前端、后端、设计等传统角色的边界变得模糊。审查和批准依然由人参与,同时也由 Agentic 闭环推动。
尽管 Claude Code 和 Claude Tag 已从根本上改变并加速每个环节,但各阶段的名称和目的对传统组织的开发者依然并不陌生。这些天然关口也构成 AI 原生 SDLC 安全流程的一部分。
规划
Anthropic 最早的一项安全自动化,是一个由 Claude Opus 驱动的 PSR(project security review,项目安全审查)Web 应用。它读取项目设计文档,依据 MITRE ATT&CK framework 识别潜在漏洞并提出缓解建议。
之后,团队把它接入内部知识索引,使其获得组织级政策、历史决策和关联系统的更深层上下文。

Anthropic 内部自动化 PSR 的流程。
这既提高了潜在风险的理解,也能补足 PSR 缺失的信息。单这一实现就节省了 AppSec 团队大部分时间。待团队确认 Claude 评估风险足够准确后,只要 Claude 判定发布风险足够低,项目团队即可自行批准项目。
这是 AI 原生 SDLC 最早出现的关键调整之一。过去,PSR 旨在于漫长而昂贵的编码前发现问题,此时发现漏洞可以省去数月返工。如今,几小时内便可完成多个重大功能原型,细致的架构审查不再是同等重要的门槛。将 PSR 接入知识索引,可捕捉原本容易遗漏的上下文,又不会制造不必要的减速;把这一过程做成 Claude Code Skill 后,Claude 还可进一步调度,从信息所在之处补充上下文。
持久原则:把安全 Agent 接入组织上下文。 当规划周期缩短时,与其在不再需要详尽文档的阶段强制编写文档,不如让 Agent 直接抵达上下文本就存在的地方,例如聊天线程、既往审查和代码库。无论如何,Agent 都需要代码之外的上下文。
编码
AI 原生工程组织中的安全专业人员拥有一个新杠杆:可直接影响代码如何被创建,从源头预防漏洞。
过去,团队会观察反复出现的漏洞并编写安全编码指南,但这些指南难以执行,也很少得到统一落实。在 Anthropic,这些要求被编码进 CLAUDE.md 文件和组织级 Skills 的引用中,使代码从生成之初就遵循相应最佳实践。这是一条闭环:一旦 Agent 发现某类 bug,就更新相关文件,防止以后生成的代码再次出现同类问题。

这不代表所有生成代码都完美。团队起初在 CLAUDE.md 中要求 Agent 在开 PR 前最后执行一次 /security-review。该通用命令是内部审查工作流的产品化版本:查找潜在攻击者可控输入的进入点、扫描可疑链接,并验证发现是否成立。
如今,审查会在 Claude 生成代码的同时进行。安装 security guidance plugin 后,Claude 会持续审视对话和代码,在同一会话里提出安全改进并处理常见漏洞。
在 PR 阶段,其他引导还会推动内部非技术团队把应用托管到低代码托管平台,避免安全团队长期面对的 shadow IT。部分客户会通过 PreToolUse hook 强制执行 /security-review,使它成为硬门槛;Anthropic 则选择把硬性的代码审查门放在生命周期的测试/CI 阶段。
除塑造和审查代码外,本阶段另一重点是控制影响范围。团队通过设置严格身份边界(监控章节会进一步说明),并让开发者在虚拟机上编程来实现这一点。迁移到远程 VM 相对轻松,并比只使用笔记本电脑带来更强的控制和可见性;VM 上的 Agent 网络流量采用 egress allowlist。
当 Agent 正在读取可能含有 Prompt injection payload 的不可信输入时,这类严格的出站控制尤其重要。被注入的指令无法随意访问互联网上的任意目的地,数据外传路径被限制在少量受监控服务中。远程编码过去主要用于保护 IP,如今越来越成熟的 AI 编码团队也将它作为约束 Agent 的环境。
持久原则:AI 原生工程中的左移,是闭合“发现漏洞”与“更新指令以改变 Claude 生成代码方式”之间的回路。 应通过严格边界,按需限制影响范围(Principle of Least Agency)和 Agent 能访问的内容。
测试(CI)
在 AI 原生转型中,测试或 CI 往往很快成为最痛苦的工程瓶颈。Anthropic 发现,当多数开发者使用 Agentic 编程工具且同时运行多个 Agent 时,团队移动速度很快受限于人类审查代码的速度。
人的责任仍是流程核心。团队所做的是结合自动化 Agent 审查和确定性审查来加速过程,同时将受监管或真正关键的代码保留给人工审查。
人类代码审查长期被视作标准,但实证研究表明它并不完美,安全 bug 仍会不断随软件发布。现有流程能审查更多代码并发现尤其复杂的问题,从而降低风险。
由于要求 Agent 写出证明来说明发现为何有效,团队对结果更有信心;带有实质审查意见的 PR 比例已从 16% 升至 54%。团队也认为,如今部署的自动化流程本可捕获过去 claude.ai 事故背后约三分之一的 bug。
这并非 Anthropic 独有。Intercom 公开表示,已自动批准 19% 的 PR;部署量翻倍,而因破坏性代码改动产生的停机时间下降 35%。CircleCI 构建的 Claude 自主 Agent Chunk 也可处理 CI/CD 维护问题,并在人工查看前自行验证修复,使 Agent 任务转化为完成 PR 的比例翻倍。
在 Anthropic,PR 创建后会由多个 Agent 自动审查。每个审查 Agent 均被设计为只关注狭窄领域,并通过 RAG 获得历史事故周边的额外上下文和记忆。这优于一个 mega-prompt 或超级安全 Agent:审查者不会共享相同偏见和盲点;某一 Agent 被攻陷或出错时可由其他审查者捕获;同时,注意力不会被多个主题过度分散。
当然,Agent 不会未经检查就把代码合入生产。代码库按风险分级,团队会审慎决定哪些部分可自动化;某些完整代码库仍有严格人工批准要求。即使代码由 Claude 审查、合入,人类问责也仍是核心:每次批准都会连同其信号和推理记录,按风险加权抽样由人复核;另一轮测试会关注“用户 A 永远不能读取用户 B 的数据”这类不变量并触发额外人工审查。Agent 扫描也会与 SAST 工具结合,直接在 PR 上发表评论。
无论 Agentic 还是确定性扫描,大多数方法均按使用量计费。代码吞吐上升会增加成本,团队需要选择合适覆盖度。Anthropic 接受成本会随代码速度增长,但预计单位成本会下降,因为当前模型的编码能力远超数年前的所有模型,并且这一趋势会延续。
持久原则:自动化审查是一类以不同方式控制的风险。 通过多重门槛和具有独立 context window 的 Agent 来控制它;人仍在闭环中,但其所在位置应随代码库性质而变化。
部署(CD)
Anthropic 维护着强大的 staging environment,执行大型发布的外部渗透测试、定期 DAST 扫描等常见安全实践,以发现静态扫描遗漏或无法看到的逻辑 bug。
AI 为安全团队同时带来新挑战和新解法。一方面,到这个阶段的漏洞变少;另一方面,仍能存活的往往最隐蔽、最难发现。再考虑到代码量更大、发布更频繁,周期性动态测试就不再足够“动态”。
好消息是,AI 模型擅长多步骤、跨组件推理,能捕获更多此类复杂漏洞。比如 2 月,Anthropic 披露 Claude 发现并协助修复了超过 500 个高严重性 OSS 漏洞。团队目前正在 staging 环境中部署持续的 AI 驱动 DAST 扫描,寻找两个或多个服务之间假设错误的系统级漏洞;已有多家供应商提供类似能力。
持久原则:动态测试应与部署节奏匹配。
监控
任何优秀安全团队都知道,代码推入生产不代表工作完成。可以假定愈发复杂的攻击者会迅速发现任何漏洞。Anthropic 的安全团队采用公开 bug bounty、red team 模拟攻击,并定期扫描依赖、secrets、供应链、云安全态势和容器中的漏洞等标准做法。
Claude 在这些工作中扮演重要角色;这里重点讨论 AI 原生 SDLC 带来的两项监控变化:告警分诊和代码迁移。告警触发后,Claude 会开始审查生产日志、定位 bug 根因、撰写 post-mortem,并在部分情况下编写修复代码。
但它不能自动部署修复。该 Agent 是只承担单一用途的 system account,只拥有三项权限:写新文档、在公司频道发帖、访问生产日志。修复需要交给另一个 Agent-人工审查系统完成。原因仍是身份、权限与硬边界:把代码推到生产时必须控制影响范围,让不同 Agent 相互制衡至关重要。

这也是 CISO 必须吸取的一课:考虑 Agent 的硬边界时,也必须考虑它访问其他 Agent 的能力。一次模型升级后,事件响应 Agent 主动在 Slack 联系了另一个 Claude 实例,要求那个能够编写代码的 Agent 推送修复。该行为如设计所期望地在人工审查门被发现;但这次经历说明,边界应围绕访问和操作划定,而不是围绕模型指令或我们以为模型能做什么划定。如今 Agent 通过 Slack 相互通信在 Anthropic 已是常态,因此团队非常重视 Agent identity model。
另一个重大变化是对迁移的处理方式。每个安全工程团队都遇到过需要进行代码迁移以修复公司运作中系统性缺陷的时刻。过去,CISO 需要长期游说,并连续多个季度从每个部门争取少量工程资源。如今迁移的经济成本和跨公司协调成本都下降了:Claude 可以在数天内自动化迁移数万行代码。
持久原则:为每个 Agent 分配单一用途身份和完成其工作所需的最低权限。 若要让 Agent 协作,也应让它们通过与人类相同的渠道协作。
治理
许多安全流程已经自动化,但人依然是保障 SDLC 安全不可或缺的一环。人们的注意力只是从审查代码和 bug 报告,转向了 Claude Tag、闭环和仪表板。
这凸显出强治理的重要性。若某项 Skill 过时、某类已发现 bug 从未写回 CLAUDE.md、或 Agent 决策从不抽样,整个体系都会退化。Anthropic 通过以下方式避免:
- 按风险分级代码库,并依等级自动化审查;
- 所有新的 AI reviewer 均先进入 shadow mode:新 Agent 仅发布评论供人工批准,建立信任前还会接受 red team,团队主动尝试向其插入恶意变更;
- 抽样一部分自动批准;
- 监控关键指标:维护并严密观察一个汇总所有安全流程与工作流关键指标的 dashboard;
- 把每个 Agent 操作送入 SIEM:每次自动批准、工具调用和 Agent 间消息都会连同所用信号写入 SIEM,使任一决策可追责、可审计。团队也把 Agent 视作一种新型 insider threat,在其行为偏离预期时发出告警。
持久原则:安全工程师的工作将从监控 bug 转向监控闭环。
这些控制措施所依据的评估框架,见 《CISO 的 Agentic AI 指南》。
在模型演进中保持 AI SDLC 安全
软件开发生命周期及其加固方式的演进速度极快。模型能力每月都在进步,同时带来新的挑战和解法。
今天还行不通或经济上不划算的方案,很快可能可行。团队真正该问的不是“我们能否负担扫描一切”,而是“如果扫描几乎免费,我们会运行什么”。应据此规划。
本文由 Anthropic 副 CISO Jason Clinton 撰写,并感谢 Michael Segner 对本文的贡献。