在缺乏特定的安全和合规指导下,大模型生成的代码是否安全?
近期,安全公司Veracode《2025年GenAI代码安全报告》研究发现,在没有明确的安全约束下,AI生成的代码约45%存在安全漏洞,且更大的模型(超过1000亿参数)在安全性能方面并没有比更小模型(小于200亿参数)表现出显著优势。


AI编程工具在提升效率的同时,也带来了一定的安全隐患。特别是随着氛围编程(vibe coding)的兴起,迫使这一挑战更加严峻。Veracode首席技术官Jens Wessling表示,在氛围编程中,非专业或经验不足的开发者过度依赖AI生成代码,却未明确提出安全要求,实际上是将安全编码决策交给了大模型,而GenAI模型近一半概率都会做出错误选择。
未被约束的AI 为什么缺乏安全意识?
报告认为,人们相对较少关注AI生成代码的安全性,核心原因在于,开发者在让AI执行任务时,无需指定安全约束条件就能获得所需代码。例如,生成数据库查询语句时,模型不会主动区分使用预处理语句(安全方式)还是字符串拼接(不安全方式),最终选择取决于模型本身。
而模型在没有明确的安全或合规提示时,不会主动顾及安全和合规性,其原因可以归结为以下三点:
1)训练数据包含不安全代码:通用大模型基于海量公共数据训练,其中可能包含了许多过时、有缺陷或存在漏洞的代码。AI可能会将这些不安全的习惯视为“标准”,并在新代码中复用。
2)功能优先性原则:大模型的核心目标是高效、准确地满足用户的功能需求。而安全代码往往比不安全代码更复杂、冗长。AI通常会倾向于选择更简单、更快速实现功能的路径。
3)缺乏企业特定的安全上下文:AI通常无法准确理解企业的专属安全红线和行业合规要求,也无法准确区分系统中的敏感信息,从而无法主动执行企业规范。
aiXcoder策略:用规则强化AI安全开发
AI提效的浪潮已然不可逆,如何在提效的同时保障代码安全性和合规性?显然,当AI以每人每天数千行甚至数万行的速度生成代码时,仅靠后期的代码审核、测试等事后检测方式是远远不够的。
既然AI在缺乏特定安全和合规约束的情况下,生成的代码缺乏安全性,那如果企业将自身的安全规范、技术规范和合规要求内置到AI中,并强制AI在生成代码时严格遵循,是不是意味着可以从根本上提高代码安全性、降低安全隐患?
接下来,我们基于aiXcoder的自定义Agent功能来进行相关场景演示。aiXcoder策略:基于自定义Agent功能,将安全规则嵌入AI智能体工作流中,实现安全合规自动化,确保AI智能体执行安全编码标准。
aiXcoder自定义Agent功能,支持企业为不同研发项目和团队定制AI智能体。企业可将自身的安全规范、合规要求、业务逻辑、流程标准等,以可配置的方式,内置到专属智能体中,由此直接转化为Agent的实时行为准则。定制AI智能体支持按权限一键下发给团队成员使用,实现安全规范与研发规范的标准化协同。
有无规则约束的前后对比:从能用,到可靠好用
我们模拟了一个后端接口开发场景,直观对比Agent在有/没有明确规则约束前后的代码产出差异。
1、无规则约束的Agent代码生成
Agent在没有明确的安全和合规要求下,快速完成了接口的功能实现。
从代码来看,虽然遵循了RESTful API设计模式、日志记录、异常处理机制等通用规范,但其代码存在明显的安全与合规缺陷:
- 安全漏洞隐患:AI智能体默认忽略了对URL路径参数(如用户ID)的格式验证。这意味着任何字符串都可以作为参数传入,可能会产生大量无效的数据库查询,影响系统性能,也可能会导致业务逻辑漏洞。
- 数据合规风险:代码在日志中直接记录了完整的用户敏感信息(如邮箱、用户名)。这明显违反了企业对数据隐私保护的合规要求,一旦日志外泄,将导致大规模信息泄露。
无规则约束的Agent代码生成视频
在没有企业规则指导时,AI优先满足功能性,但其产出代码安全水位低,且不符合企业数据合规要求,无法在生产环境中使用。
2、内置规则后的“合规代码”产出
我们将企业明确的研发规则、安全规范和合规要求(如路径参数格式验证、敏感信息脱敏处理等),通过aiXcoder自定义Agent功能,注入到执行此次任务的后端开发智能体中,对其生成代码进行强制约束。
接收具体的规则要求后,在模型精准响应指令的情况下,Agent再次生成的代码发生了根本性变化:它准确理解并遵循这些复杂规则,生成了高安全、高性能的代码。
- 路径参数场景化校验:自定义AI智能体严格遵循了安全规则,自动在路径参数上添加了格式校验逻辑,精准匹配每个参数的业务场景,兼顾安全要求和业务输入。
- 强制执行数据合规:自定义AI智能体主动创建了脱敏工具类,内置了覆盖多场景的脱敏方法,后续所有模块都能直接调用,避免了“重复开发、规则不一致”的问题。同时,Agent对本次任务开发的后端接口所有操作(包括创建、查询、删除、检查等)的日志进行了脱敏处理,无论是正常业务流程还是异常场景,都不会暴露敏感数据。
内置安全规则的Agent代码生成视频
当Agent被提前注入企业专属研发规则、安全规范与合规要求后,在模型指令遵循较好的情况下,Agent会严格遵守相关规范产出代码,让生成代码从“能用”走向“可靠、可信和好用”。
通过演示案例的前后对比,我们可以看到,自定义AI智能体能够将写在文档里的开发规范转化为代码生成的智能执行逻辑,让生成的代码天然符合企业安全标准与合规要求。
最重要的是,内置了企业规则和最佳实践的自定义AI智能体可以下发给企业团队使用,使得代码的安全性和合规性不再依赖于大模型本身,以及开发者的个人记忆或意识,而是成为团队统一标准。这有助于降低代码测试和审查压力,减少后期技术债,提高代码的安全性和可维护性。
在企业级研发场景中,代码的安全性从来都不是“可选项”。保障代码安全并非单一环节的努力,而是贯穿软件开发全流程——从代码生成,到测试验证、代码审查,再到上线部署,每个环节都需要进行安全验证。aiXcoder 将持续深耕工业级研发场景,不断迭代智能化软件开发、智能化测试、智能代码审查等产品能力,助力企业构建“高效且安全”的智能化研发能力。