直接答案: Veracode 在其 2025 年 GenAI 代码安全报告中指出,45% 的 AI 生成代码样本引入了安全缺陷——只有 55% 是安全的——而且这一比例并没有随着模型变大而改善。Java 表现最差(安全率 29%),Python 最好(62%)。结论不是停用 AI,而是 AI 生成的代码必须和其他代码一样通过安全扫描与评审,因为生成速度不等于安全性。
AI 编程工具如今几乎无处不在——Veracode 引用的 GitHub 2024 年开发者调查显示,97% 的开发者用过这类工具。这让一个问题变得迫切:它们产出的代码是否安全到可以默认信任?Veracode 的研究给出了一个令人不适但有用的答案。
Veracode 测了什么
Veracode 的 2025 年分析覆盖了 100 多个大语言模型、80 个编程任务、四种编程语言和四类常见漏洞。头条结果是:只有 55% 的 AI 生成代码是安全的,也就是说 45% 引入了已知安全缺陷。
有两个发现值得强调。第一,不安全并不集中在老旧的弱模型上——Veracode 报告称,即便模型在生成语法正确代码方面进步显著,安全通过率仍大致持平。更大、更新并不意味着更安全。第二,风险因语言和漏洞类别而差异悬殊。
| 语言 | 报告的安全通过率 |
|---|---|
| Python | 62% |
| JavaScript | 57% |
| C# | 55% |
| Java | 29% |
按漏洞类型看,Veracode 报告称模型对 SQL injection 的处理尚可(约 80% 安全),但在跨站脚本(XSS)和 log injection 上表现极差,绝大多数情况下生成的都是不安全代码。
为什么 AI 偏偏在安全上吃力
报告把这一差距归因于三个结构性原因。它们值得理解,因为单靠更大的模型解决不了:
- 训练数据污染。 模型从既包含安全模式也包含不安全模式的公开代码中学习,两者在它眼里都「正常」。
- 缺失安全上下文。 生成某个函数的模型很少了解应用的信任边界,于是写出能运行但缺少安全控制的代码。
- 数据流推理能力有限。 判断一个变量是否承载不可信输入,需要当前模型无法可靠完成的分析。
功能正确和安全是两个不同的目标,而今天的模型优化的是前者。
「45%」不能推出什么
一个惊人的统计数字容易引发过度反应。要让这个数字保持诚实:
- 它不意味着生产环境中 45% 的 AI 辅助代码可被利用;这是一项针对特定任务和漏洞类型的受控测试。
- 它不意味着任何单一工具有 45% 的不安全率;结果因模型、提示词和语言而异。
- 它不意味着人写的代码就没有缺陷;它意味着 AI 并没有消除安全评审的必要。
- 它是一家应用安全公司发布的厂商研究。方法论合理,方向也与其他研究一致,但具体数字取决于 Veracode 的测试设计。
站得住脚的解读是方向性的,而且很有力:相当大比例的 AI 生成代码存在安全缺陷,而且这一比例不会自行缩小。
工程团队该做什么
以上没有任何一条是在反对使用 AI 辅助。它主张的是把 AI 输出当作「未经验证即不可信」来对待——成熟团队本来就是这样对待任何进入代码仓库的代码的。
- 扫描一切。 在合并之前就对 AI 生成的代码运行 SAST(必要时加上 DAST),而不是等出了事故再补。
- 保留人工评审关口。 对涉及安全的变更强制评审;不要让生成量侵蚀监督力度。
- 盯住薄弱点。 对输出处理(XSS)、日志记录,以及你们团队在用而得分较低的语言,投入额外审查。
- 管好依赖。 AI 可能推荐过时甚至不存在的包;核实并锁定版本。
- 留下记录。 为 AI 辅助的变更及其评审保留审计轨迹。
这与本站试点方法论背后的纪律一致,也与 AI 编程试点评分卡中的硬性安全关口一致。它还与我们那篇对齐 OWASP 的检查清单中面向 agent 的控制措施互补:那篇讲的是 agent 能做什么,这篇讲的是它写出的代码。
托管平台能帮上什么忙
各人在自己笔记本上随意使用 AI,会让「扫描并评审一切」难以落实。一个把 AI 工作路由到受管环境和评审工作流的平台,能让安全关口成为默认设置,而不是一种指望。MonkeyCode 的公开资料描述了自动代码评审以及围绕 AI 变更的任务加评审工作流;请把它当作落实这些控制的基础设施,并在产品文档中核实当前能力。
一句话总结
Veracode 的 45% 是一次有益的现实检验:AI 写了大量代码,其中相当大一部分默认并不安全——无论模型给人的感觉多么强大。正确的回应不是禁用,也不是盲信,而是让 AI 生成的代码经过与其他代码相同的扫描与评审,盯住已知薄弱点,并用工作流而非意志力来守住这些关口。
来源边界: 45% 这一数字、各语言通过率,以及「安全性没有随模型规模改善」的观察,均来自 Veracode 2025 年 GenAI 代码安全报告及配套博客,核验于 2026 年 7 月 20 日。Veracode 是一家应用安全厂商;这些统计数字反映其测试方法论,属于方向性证据,并非对每个工具或代码库的普适测量。