AI写的代码45%有漏洞,从软件工程视角如何解决
AI编程工具正在快速进入开发流程,但带来一个现实问题:代码能跑,但不干净。
安全公司Tenzai今年1月发布研究报告,测试了五个主流AI编程工具——Claude Code、OpenAI Codex、Cursor、Replit、Devin。让它们构建相同的三个应用,结果15个应用里发现69个安全漏洞,其中6个被评为”严重”级别。
Veracode的另一项研究更直接:AI生成的代码在约45%的情况下会引入安全漏洞。
这不是要不要用AI的问题,是怎么在软件工程体系里管好它。
漏洞从哪来?
Tenzai的研究指出,AI擅长处理可以用通用方法解决的安全问题,但在需要结合业务上下文判断时表现不佳。最严重的漏洞集中在两个地方:API授权逻辑和业务逻辑——恰好是电商、金融系统的命门。
腾讯安全平台部联合北大、复旦发布的《AI生成代码在野安全风险研究》给出了更系统的分析:AI生成代码的安全性整体低于预期,功能正确性和安全性之间存在明显差距。AI模型的训练数据包含大量历史代码,其中混杂着过时或不安全的编码模式,这些缺陷会被继承下来。
软件工程视角的解决思路
传统软件工程里有一个概念叫”安全左移”——把安全检查从测试阶段提前到编码甚至设计阶段。AI编程工具的引入,让这个理念有了新的落地场景。
第一层:编码环节嵌入安全控制点
在AI生成代码后、合并到代码库之前,强制执行静态代码分析(SAST)。这不是新东西,但关键在于把它变成必经环节,而不是可选项。
腾讯云的实践是:在CI流水线里集成代码安全扫描,每次提交自动检测第三方库的已知漏洞(如Log4j),不通过则阻断部署。Cloudflare的做法更激进:每个生产变更都要经过约50个安全策略的验证管道,在部署前而非事件后捕捉问题。
第二层:引入AI辅助审计
Anthropic今年推出了Claude Code Review,用多Agent系统并行检查逻辑错误、安全漏洞、边界条件,然后交叉验证减少误报。内部测试显示,实质性评审的PR比例从16%提升到54%,误报率低于1%。
OpenAI也推出了Codex Security,用AI模型推理能力结合自动化验证机制做安全审计,提供高可信度漏洞发现和可执行修复方案。
这不是用AI替代人工审查,而是作为补充意见存在——在漏洞进入代码库之前先筛一遍。
第三层:建立审计轨迹
Claude Code构建了一套可观测与审计体系:从遥测指标、钩子机制到会话全量记录,实现对AI编程行为的监控。这套体系能拦截危险行为、保障代码安全、控制使用成本。
Beyond Identity推出的Ceros工具,部署在开发者机器上与Claude Code并行运行,提供实时可见性和每个行为的密码学审计轨迹。解决的问题是:AI在本地机器上以开发者的完整权限执行操作,但不会留下现有安全基础设施能捕获的审计记录。
第四层:明确责任归属
EFF(电子前哨基金会)今年提出一个原则:开发者必须对AI生成的代码负责。不是禁止用AI,是要求你能解释每一行代码为什么这么写。
这倒逼着一个改变:把AI当工具,不当外包。生成的东西,得逐行看、逐行理解、逐行验证。
从后置补救到前置控制
安全左移的核心逻辑是:在早期阶段修复问题,成本最低。AI编程工具让这个理念有了新的落地点——不是在测试阶段才发现漏洞,而是在编码环节就嵌入控制点。
软件工程发展了几十年,沉淀下来的实践(代码审查、静态分析、持续集成、审计日志)没有过时。AI编程工具进来后,这些机制不是要推翻,而是要适配。
夜雨聆风