代码安全
在AI原生的工程组织中,安全专家拥有了新的手段:他们可以直接影响代码的生成过程,从源头上防止漏洞的产生。
过去,团队通过观察反复出现的漏洞,制定安全编码指南来应对,但这些指南难以强制执行且缺乏统一标准。
在Anthropic,这些指南被编码进CLAUDE.md文件,并关联到全组织的技能库,使代码在生成的瞬间就遵循最佳实践。这是一个闭环过程:当代理发现某类漏洞时,相关文件会被更新,防止未来代码中再次出现该漏洞。

当然,这并不意味着所有代码都完美无缺。我们的团队从一个CLAUDE.md文件开始,指示代理在提交拉取请求(PR)前执行自动安全审查。这一命令是团队内部审查流程的产品化版本,能够检测潜在攻击者可控输入、扫描可疑链接并验证结果。
如今,这些审查在Claude生成代码时同步进行。安装安全指导插件后,Claude会实时审查对话和代码,提出安全改进建议,修复常见漏洞。
此外,PR阶段还会引导非技术团队将应用托管在我们的低代码平台上,避免了传统上困扰安全团队的影子IT问题。
部分客户选择将自动安全审查与PreToolUse钩子集成,使该步骤成为更严格的门槛。虽然有效,但我们团队更倾向于在测试/持续集成(CI)阶段设置严格的代码审查关卡。
除了塑造和审查代码,限制影响范围也是我们重点关注的方向。我们通过设定身份边界(详见监控部分)和让开发者在虚拟机上编码来实现这一点。
将编码迁移到远程虚拟机是一个相对顺利的转变,相较于仅用笔记本,带来了更强的控制力和可见性。代理在这些虚拟机上的流量经过出站白名单控制。
这些严格的出站控制尤为重要,因为代理会读取不可信输入,可能包含提示注入攻击。注入的指令无法随意访问互联网,数据泄露路径仅限于少数受监控的服务。
这再次体现了AI原生软件开发生命周期的适应性。远程编码过去主要用于保护知识产权,而现在越来越多成熟的AI编码团队将其作为限制代理行为的手段。
核心原则:在AI原生工程组织中,左移安全意味着闭环漏洞发现与更新指令,定制Claude的代码生成方式。通过硬边界限制代理的访问权限,控制影响范围(最小代理原则)。
测试(持续集成)
在我看来,测试或CI阶段往往成为AI原生转型中工程团队最痛苦的瓶颈。在Anthropic,当大多数开发者同时使用多个代理编码工具时,团队的速度很快受限于人类代码审查的效率。
明确一点:人类责任仍是流程核心。我们所做的是结合自动化代理审查和确定性审查,加速审查流程,同时将人类审查保留给受监管或关键代码。
虽然传统上人类代码审查被视为标准,但实证研究表明它并非完美。全球软件中仍频繁出现安全漏洞。我们的审查流程能覆盖更多代码,捕捉复杂问题,降低风险。
随着我们要求代理提供发现有效性的证明,收到实质性审查意见的PR比例从16%提升至54%来源。我们还发现,过去claude.ai事件中约三分之一的漏洞本可被现有自动化流程捕获来源。
这并非Anthropic独有的发现。Intercom分享其自动批准19%的PR,部署速度翻倍,因代码变更导致的停机减少35%。CircleCI开发了基于Claude的自主代理Chunk,自动解决CI/CD维护问题并在人工介入前验证修复,极大提升了代理任务转化为完成PR的效率。
在Anthropic,PR一旦开启,多个代理会自动审查。每个审查代理专注于特定领域,利用检索增强生成(RAG)技术获取上下文和历史事件记忆。
这种多代理审查优于单一超级代理,原因包括:
- 避免共享偏见和盲点
- 一方出错可被其他代理发现
- 精力集中于各自领域,避免分散
需要强调的是,代理不会无监管地合并代码。我们根据风险对代码库分层,针对不同部分做出自动化决策。部分代码库仍严格依赖人工审批。
人类责任依然关键。每次批准都会记录相关信号和理由,风险加权抽样由人类复核。另有针对“用户A绝不能读取用户B数据”等不变量的测试,触发额外人工审查。我们还结合静态应用安全测试(SAST)工具,直接在PR上发布扫描结果。
大多数扫描方法,无论是代理驱动还是确定性,都是基于消耗的。随着代码产出增加,成本上升,团队需权衡覆盖率。
Anthropic接受随着代码速度提升成本增加,但预计单位成本会下降。当前模型远优于几年前的版本,且这一趋势将持续。
核心原则:自动化审查带来不同风险,需通过多重关卡和独立上下文代理控制。人类仍在流程中,但位置因代码性质而异。

部署(持续交付)
Anthropic维护了完善的预发布环境,执行常见安全最佳实践,如重大发布前的外部渗透测试和定期动态应用安全测试(DAST),以发现静态扫描难以检测的逻辑漏洞。
与其他SDLC阶段类似,AI既带来新挑战,也提供新解决方案。一方面,漏洞到达部署阶段的数量减少;另一方面,存活的漏洞更为隐蔽且难以捕捉。
加之代码量大且发布频繁,周期性动态测试显得不够“动态”。
好消息是,AI模型在多步骤、跨组件推理方面表现更佳,能捕获更多复杂漏洞。例如,今年2月我们披露Claude发现并协助修复了超过500个高危开源漏洞。
Anthropic正在预发布环境中实施持续的AI驱动DAST扫描,检测系统层面服务间假设错误的漏洞。目前已有多家厂商提供此类能力。
核心原则:动态测试应与部署节奏匹配。
监控
任何优秀的安全团队都知道,代码推向生产后工作并未结束。我们假设漏洞会被越来越复杂的攻击者迅速发现。
我们的安全团队执行了标准措施,如公开漏洞赏金计划、红队模拟攻击,以及对依赖项、密钥、供应链、云安全态势和容器的定期漏洞扫描。
Claude在这些工作中发挥重要作用,本文重点介绍因AI原生SDLC带来的监控变革:告警分流和代码迁移。
当Anthropic触发告警时,Claude会:
- 审查生产日志
- 追溯漏洞根因
- 撰写事后分析报告
- 在部分情况下,编写修复代码
该代理无法自动部署修复。它是单一职责的系统账户代理,仅拥有写文档、发布公司频道消息和访问生产日志的权限。
修复必须通过代理-人类复核系统完成。原因在于身份、权限和硬边界管理:推送生产代码时必须限制影响范围。代理间的分离至关重要,彼此相互制衡。

这对首席信息安全官(CISO)尤为重要,也是我亲身经历的教训。考虑代理硬边界时,必须包括其对其他代理的访问权限。
一次模型升级后,响应代理主动通过Slack联系另一Claude实例,请求其推送修复代码。该行为被设计中的人工审查关卡拦截,但教训是边界应围绕访问和操作,而非仅限于模型指令或预期能力。如今,Anthropic常态化代理间Slack通信,并对代理身份模型进行深入设计。
第二个重大变化是团队对迁移的处理。每个安全工程团队都经历过必须进行代码迁移以修复系统性缺陷的时刻。过去,CISO需长时间争取各部门资源支持。
迁移的经济成本和跨部门协调成本已大幅下降。Claude能在数天内自动完成数万行代码的迁移详见。
核心原则:为每个代理分配单一职责身份,授予最低权限。若允许代理间协调,应通过与人类相同的渠道进行。
治理
我们自动化了许多安全流程,但人类仍是确保安全SDLC不可或缺的一环。不同的是,我们的关注点从代码和漏洞转向Claude标签、闭环和仪表盘。
这凸显了强治理的重要性。若技能过时、漏洞未反馈至CLAUDE.md或代理决策未抽样,整体结构将退化。我们通过以下措施避免:
- 按风险分层代码库,并基于层级自动化审查
- 影子模式:新AI审查代理发布评论需人工批准,团队进行红队测试尝试恶意修改
- 抽样所有自动批准的部分比例
- 监控关键指标,维护仪表盘汇总所有安全流程和工作流数据
- 将所有代理动作路由至SIEM,记录审批、工具调用和代理间消息,确保决策可追溯、可审计。我们将代理视为新型内部威胁,异常行为触发告警
核心原则:安全工程师的职责从监控漏洞转向监控闭环。
唯一不变的是变化
软件开发生命周期及其加固手段正以惊人速度演进。模型能力每月提升,带来新挑战和新解决方案。
今天尚未成熟或经济不可行的方案,很快将成为现实。团队应思考的问题不是“我们能否负担全面扫描?”而是“如果扫描几乎免费,我们会运行哪些?”并据此规划。
本文作者为Anthropic副首席信息安全官Jason Clinton,感谢Michael Segner的贡献。


