打开网易新闻 查看精彩图片

AI已成为现代软件开发的基础组成部分,大语言模型如今被直接嵌入开发者编写、重构和交付代码的全流程之中。这一趋势起初被视为生产力的提升,随后迅速演变为结构性变革——各组织在更短的时间内产出了大量代码,并将AI生成的内容整合进关键系统。

随着大语言模型的普及程度不断提高,外界的期待也随之水涨船高。许多团队默认每一代新模型都将在各方面带来可量化的提升,包括更强的安全表现。这种预期与传统软件的迭代改进逻辑一脉相承——不断优化积累,质量稳步提升。

然而,大语言模型走的是另一条路。

进步正触及天花板

当前模型改进的放缓,根源在于一个位于架构与算力之上的制约因素:训练数据的可用性与质量。前沿模型已消耗了大多数高质量的公开代码,目前新增用于训练的数据越来越多地由合成输出或对已有模式的变体构成。

这催生了一种递归学习效应:模型在早期模型的输出上进行训练,导致细小的缺陷不断传递和累积。在代码层面,这种现象表现为一些熟悉的弱点——缺失验证、不安全的查询以及不完整的访问控制——即便周围的逻辑看起来无懈可击,这些问题依然存在。

问题之所以持续,是因为模型并不具备实时适应能力。训练过程依赖于基于固定数据集构建的新模型版本,这意味着模型的改进受制于新增高质量数据的可获得性。

安全代码难以进入训练集

数据本身的性质带来了另一层局限。最安全的代码存在于企业内部环境中,如金融机构、医疗系统和政府机构,这些代码属于私有资产,受到严格管控,从未被用于训练前沿模型。

这在生产环境中定义安全软件开发的实践,与模型被训练去模仿的示例之间,形成了一道结构性鸿沟。即便企业代码质量大幅提升,也不会对模型行为产生影响,因为这些改进根本无法进入训练流程。

因此,模型所体现的安全特性,只是公开可用代码的反映——其中既有优良模式,也存在薄弱环节。

与此同时,AI使代码产出量大幅攀升,其速度从根本上改变了风险的积累方式。AI生成代码引入漏洞的密度与人工编写代码大致相当,但生成速度远高于后者,最终导致进入系统的漏洞数量净增。

大多数组织已难以修复所有已知漏洞,而将AI引入开发流程,既增加了新问题的涌入速度,也加大了管理复杂度。攻击者同样处于类似的条件下——自动化工具缩短了发现和利用漏洞所需的时间,压缩了从漏洞暴露到被利用之间的窗口期。

安全性并非优化目标

大语言模型在这一背景下的行为,折射出其设计初衷。这些模型以实用性和合理性为优化目标,因而能够高效生成符合开发者意图的可运行代码。安全性并非主要优化目标,在训练数据中也没有得到一致体现。

模型提供商正在引入额外层级,例如用于分析输出并提出修复建议的工具和智能体,这些举措是对系统的扩展,而非对底层模型行为的改变。这些补充手段在增加运营复杂性和成本的同时,也将责任向开发流程的下游转移。

核心矛盾并未改变:模型会复现其训练所基于的模式,包括不安全的实现方式,而在现有方法下,尚无清晰路径能够持续保证输出的安全性。

信任鸿沟

安全性并非首要目标这一现实,引出了一个更深层的问题,它超越了模型能力本身,延伸至组织应对软件风险的方式。

软件工程长期依赖代码创建与验证的分离原则——生成代码的系统与验证其安全性的系统相互独立,这种独立性确保了评估的客观性,并为结果提供了可信度。

AI生成代码压缩了这一边界。当生成与验证来自高度相关的系统时,整个过程开始趋近于"自我背书"——同一类技术既负责生成结果,又负责验证结果。

在安全领域,自我背书无法提供充分的保证。

如果一个系统引入了漏洞,那么依赖该系统或与其高度相关的系统来确认问题已解决,其可信度便大打折扣。

前行之路

组织无法控制前沿模型的训练方式,也无法影响塑造模型行为的数据集。他们能够掌控的,是如何在自身环境中使用AI,以及在部署前如何验证其输出。

组织应将AI生成的代码视为不可信输入,并对其施以与第三方组件同等的审查力度。这要求实施独立验证、将持续测试集成到开发流程,以及建立治理机制,以便对代码的生成与部署方式保持可见性。

这些都是应用安全领域的既有原则,而AI带来的规模与速度,使得这些原则的一致落地愈发关键。

模型性能的停滞反映了数据与训练方法的结构性局限。增量式改进将持续推进,但短期内不会从根本上改变模型生成代码的安全特性。

AI改变了软件的创作方式,提升了开发速度与规模,同时也使验证与问责的重要性进一步凸显。

当前的核心问题是:组织能否信任自己所选择部署的代码?

Q&A

Q1:大语言模型生成的代码为什么存在安全漏洞?

A:大语言模型的优化目标是代码的实用性和合理性,安全性并非其首要考量。此外,模型的训练数据主要来自公开代码,而最安全的企业级代码(如金融、医疗、政府系统中的代码)因属私有资产而无法进入训练集,导致模型所能学习到的安全实践存在结构性缺失。即便模型生成的代码逻辑看起来正确,仍可能包含缺失验证、不安全查询等常见安全弱点。

Q2:AI生成代码的速度加快会带来什么风险?

A:AI生成代码引入漏洞的密度与人工编写代码大致相当,但由于生成速度远高于人工,进入系统的漏洞总量会显著增加。大多数组织已难以修复所有已知漏洞,AI的加入使新问题涌入速度更快、管理难度更大。与此同时,攻击者也在利用自动化手段加速发现和利用漏洞,进一步压缩了安全响应窗口。

Q3:组织应该如何应对AI生成代码带来的安全风险?

A:组织应将AI生成的代码视为不可信输入,采取与审查第三方组件相同的严格标准。具体措施包括:实施独立验证、将持续测试集成到开发工作流中,以及建立治理机制以追踪代码的生成与部署情况。这些均属应用安全领域的成熟原则,在AI大规模介入开发流程的背景下,落实这些原则的紧迫性进一步提升。