安全的AI生成代码

如何保护人工智能生成的代码 CI/CD

您的开发人员以前所未有的速度发布新功能。但与此同时,他们引入安全漏洞的速度也超过了您现有工具的处理能力。

人工智能编码工具不仅加速了开发进程,也加速了不安全代码的引入。 佐治亚理工学院Vibe安全雷达项目 仅在2026年3月,就记录了35个直接归因于人工智能编码工具的新CVE漏洞,而1月份仅有6个。研究人员估计,在整个开源生态系统中,实际漏洞数量可能要高出五到十倍。 CSA研究 研究发现,即使开发人员使用最新的基础模型,62% 的 AI 生成代码也包含设计缺陷或已知漏洞。

这个问题不是让开发人员放慢速度就能解决的。答案在于构建能够跟上人工智能快速开发步伐的安全基础设施,而大多数团队目前还没有做到这一点。

大多数球队直到为时已晚才发现的差距

AI 编码工具带来了一种传统的应用安全基础设施无法应对的特殊安全问题:高速、高容量的代码,其故障模式与人类编写的代码截然不同。

大多数团队都是以错误的方式发现这个漏洞的,例如,当一个本应被扫描器捕获的 CVE 出现在生产环境中,或者当一个秘密漏洞被泄露时。 commit由人工智能辅助工作流程开发的程序落入了攻击者手中。

没有人工智能专用控制 使用 Xygeni
代码漏洞 高密度、系统性失效模式 在 IDE 中写入时捕获到错误 commit
秘密曝光 人工智能辅助下的比率高出2倍 commits 跨所有层级的持续扫描 + 自动撤销
恶意依赖 人工智能会推荐未经安全检查的包裹。 发布时而非安装时检测到恶意软件
Pipeline 风险 无法了解代理工具的行为 行为基线 + 异常检测
成果 证券债务以人工智能的速度累积 覆盖范围可随开发速度而扩展

为什么人工智能生成的代码会在特定模式下失效

在了解控制方法之前,有必要了解为什么 AI 生成的代码与人类编写的代码的故障方式不同,因为故障模式决定了哪些控制方法真正重要。

基于安全推理的模式补全

低级逻辑模型(LLM)通过预测训练数据中已出现模式的统计可能延续来生成代码。当训练数据包含数百万个不安全代码示例时,该模型能够自信且流畅地重现这些模式。

该模型并非在进行安全推理,而是在补全模式。例如,请求“为此端点添加身份验证”会生成看起来像身份验证的代码,并且通常也能实现身份验证的功能,但可能会忽略令牌过期、错过授权检查或使用已弃用的加密原语,因为这些疏漏在训练数据中具有统计上的普遍性。

结构正确性而语义安全缺失

2025年12月,安全公司Tenzai对使用五种主流AI编码工具构建的15个生产应用程序进行了分析,发现样本中存在69个漏洞。每个应用程序都缺乏跨站请求伪造(CSRF)保护,也没有配置任何安全标头。每种工具都引入了服务器端请求伪造(SSRF)漏洞,所有15个应用程序都存在严重的安全漏洞。

这些并非特殊情况,而是人工智能工具优化目标(即可运行的代码,而非安全的默认设置)方面存在的系统性缺陷。

乔治城大学 CSET 单独测试了五大 LLM 中 86% 的 AI 生成的代码样本,发现存在 XSS 漏洞。

加速泄露秘密

人工智能辅助 commits 泄露秘密的速度是人类的两倍以上 commit秒。 该 CSA关于Vibe编码安全性的研究报告 这使得人工智能辅助的比例达到3.2%。 commit相比之下,仅供人类使用的 GitHub 的硬编码凭证比例为 1.5%,而 GitHub 在 2025 年的硬编码凭证比例同比增长了 34%。

其机制很简单:开发人员以人工智能的速度工作时,通常会将凭据粘贴到提示信息中作为上下文,而人工智能工具会忠实地将这些凭据包含在生成的输出中。开发人员在快速审查人工智能代码时,检查的是功能正确性,而不是机密信息的泄露。

隐形架构缺陷

传统安全工具擅长发现静态代码中已知的漏洞模式,例如 SQL 注入、跨站脚本攻击 (XSS) 和不安全的反序列化。但它们难以应对设计层面的缺陷,例如整个 API 路由缺少身份验证、访问控制逻辑存在缺陷,以及授权模型假定流程是顺序的但实际上可以被绕过。

人工智能生成的代码会引入更多设计缺陷,因为人工智能工具是在功能层面而非系统层面进行生成的。除非明确提供上下文信息,否则人工智能无法感知周围系统的安全模型,而大多数开发者并不会想到要提供这些信息。

如何保护您系统中的 AI 生成代码 CI/CD Pipeline

1. 将人工智能生成的代码视为不可信的输入 SAST 层

最重要的运营变化:不要减少 SAST 因为代码来自人工智能,所以覆盖率会降低。反之亦然。任何大量采用人工智能的团队都应该预料到发现的问题数量会显著增加,并应相应地配置工具。

在实践中,这意味着启用 SAST 在每个 commit不仅仅是 PR。AI 工具可以快速生成代码,而且开发人员 commit 逐步进行。等待公关审核意味着研究结果会在有人查看之前不断积累。这也意味着需要进行调整。 SAST 针对 AI 代码故障模式的严重性阈值:缺少身份验证和授权检查、SSRF、CSRF、不安全的反序列化和硬编码凭据,这些漏洞类别在 CVSS 中并不总是被评为严重,但却始终可以被利用。

核心挑战在于误报率。人工智能工具能够快速生成大量代码,但误报率也往往很高。 SAST 生成的警报数量如此之多,以至于开发人员学会了忽略它们。这就是所谓的警报疲劳,它完全违背了扫描的初衷。

西吉尼 SAST 以……为基准 OWASP基准 并实现了 100% 的真阳性率和 16.7% 的假阳性率。在 AI 生成的代码能够增加查找数量的环境下,这种预置性尤为重要。cis离子效应使得研究结果能够付诸行动,而不是被忽视。 了解更多关于Xygeni的信息 SAST →

2. 持续扫描秘密信息,而不仅仅是在特定时刻。 commit 次

Pre-commit hooks 必要但不充分。快速使用人工智能工具的开发人员经常绕过 hooks或者使用不支持这些功能的基于 Web 的 AI 编辑器,或者在 CI 脚本而非应用程序代码中生成密钥, hooks 切勿触发。

为人工智能辅助开发需求构建完整的机密安全态势 pre-commit hooks 对于使用本地 AI 工具的开发者,需要对所有分支进行持续的代码库扫描,包括完整的历史记录。 commit 覆盖范围(来自旧版的有效秘密) commit(s 仍然可被利用), pipeline 日志扫描(AI 生成的 CI 脚本经常将凭据作为插值变量打印到构建日志中),并在检测到时自动撤销,因为暴露和攻击者被发现之间的窗口通常以小时而不是天来衡量。

Xygeni Secrets Security 检测到存储库中超过 800 种密钥类型, pipeline 日志, IaC 文件和容器镜像。 --history 扫描模式会发现技术上已过时但仍然有效的密钥,这是人工智能辅助工作流程中常见的漏洞。密钥在被记录或发送到平台之前会进行混淆处理,因此检测过程本身不会造成新的泄露。检测到密钥后,会自动触发撤销工作流程。 →了解更多

3。 申请 SCA 具备恶意软件检测和人工智能建议的依赖项

AI 编码工具不仅会编写代码,还会建议依赖项。例如,开发者如果让助手“添加一个用于 JWT 解析的库”,得到的推荐软件包可能是一个合法的软件包,也可能是一个名称相似的拼写错误软件包,或者是一个在模型训练时合法但之后已被篡改的软件包。

CSA 2025 AI生成代码漏洞研究 还记录了“域名抢注”,攻击者注册人工智能工具虚构的软件包名称,将模型幻觉直接转化为供应链攻击途径。 Standard 基于 CVE SCA 没能捕捉到这些症状。

您真正需要的是:行为恶意软件检测,它可以标记具有可疑安装脚本、意外网络调用或混淆代码的软件包;拼写错误抢注和拼写错误抢注检测,它可以分析完整的依赖关系图,查找具有欺骗性名称的软件包;以及可达性过滤的 CVE 扫描,它可以区分实际调用的易受攻击函数和导入但从未执行的易受攻击函数。

西吉尼 SCA 结合了实时恶意软件检测 恶意软件预警 (MEW) 引擎会在发布时(而不仅仅是安装时)扫描 npm、PyPI、Maven、NuGet、RubyGems 和其他注册表,并且 可疑依赖关系扫描器 它通过分析完整的依赖关系图来检测域名抢注、依赖关系混乱和可疑的安装脚本。 看看它是如何运作的 →

4. 加强安全措施 guardrails ,在 pipeline不仅仅是在代码审查中

代码审查速度太慢且缺乏一致性,无法作为人工智能生成代码的主要安全控制措施。开发人员在快速审查人工智能输出时,首先检查的是功能正确性。安全正确性,即便检查,也是其次。

Pipeline电平 guardrails 自动强制执行要求:阻止引入新关键要求的构建。 SAST 如果检测到的新密钥超过可配置阈值,则阻止部署。 commit强制执行依赖策略,阻止未通过恶意软件检查或未锁定到精确摘要的软件包,并要求 SBOM 生成包含人工智能辅助代码的版本。

关键设计原则: guardrails 应该发出阻止或警告,而不仅仅是报告。如果发现的问题没有造成任何阻止,就会让开发者误以为这些问题可以忽略不计。

Xygeni DevAI 是一款可作为代理安全副驾驶使用的设备 VS Code 扩展 以及 IntelliJ/JetBrains 插件 增量运行 SAST 在开发人员编写代码时进行扫描,解释检测到的漏洞的利用路径,并提供经 Xygeni MCP 服务器验证的修复建议,以评估风险、策略和重大变更影响。秘密检测, SCA和 IaC 所有扫描均在同一个IDE会话中运行。 →了解更多

6. 监控人工智能编码工具的异常行为

AI智能体工具,即那些不仅生成建议,还能在您的环境中自主采取行动的工具,会引入新的威胁面。具有存储库写入权限的智能体编码工具, pipeline 触发访问权限或秘密访问权限一旦被攻破,将成为高价值目标。

CVE-2025-54135 (CurXecute) 是 Cursor AI 代码编辑器中的一个远程代码执行漏洞,允许攻击者在开发者的机器上执行任意代码,而无需用户交互。该漏洞于 2026 年初被披露。 佐治亚理工学院 Vibe 安全雷达 研究指出,随着人工智能工具变得越来越自主,攻击面正在迅速扩大。

在您的系统中对人工智能工具活动进行行为监控 pipeline 应注意意外变化 CI/CD 工作流配置文件(人工智能工具被入侵或受到提示注入攻击的最明显信号之一)、人工智能编码工具进程在构建期间向意外目标发出网络请求、开发人员工作站对密钥存储的异常访问模式,以及人工智能工具引入的先前版本中不存在的新依赖项。

通过积极争取让商标与其相匹配的域名优先注册来维护 优先
代码 SAST 在每个 commit低 FPR 配置 危急
代码 VS Code/IntelliJ IDEA 中的 IDE 安全反馈
秘密 Pre-commit hooks +持续存储库扫描 危急
秘密 Git历史记录扫描,查找有效的旧版密钥。 危急
秘密 检测到自动撤销 危急
依赖 SCA 具备恶意软件和域名抢注检测功能 危急
依赖 基于可达性过滤的 CVE 优先级排序
Pipeline 基于新的关键发现构建基础
Pipeline 在构建时强制执行依赖策略
Pipeline SBOM 人工智能辅助发布生成
代理工具 对人工智能工具活动的行为监测
代理工具 人工智能编码工具的最小权限访问

Xygeni 如何实现 AI 生成代码的端到端安全

保护人工智能生成的代码需要全面覆盖。 SDLC从开发者接受建议到最终产品上线,整个过程都需要借助人工智能加速开发。那些只覆盖某一层面的工具难免会留下漏洞,而人工智能加速开发能够可靠地发现这些漏洞。

阶段 Xygeni 能力 捕获什么
在集成开发环境(IDE)中 DevAI + MCP 服务器 写入时(之前)的漏洞 commit
At commit SAST + 秘密安全 代码缺陷、硬编码凭证、暴露的 API 密钥
构建 SCA 具备恶意软件检测和可达性 恶意或易受攻击的人工智能建议的依赖关系
In pipeline CI/CD 安全 + 异常检测 不安全的构建、恶意工具入侵、注入的工作流
部署后 DAST+ ASPM 运行时可利用性验证,统一的风险态势

关键区别在于连接所有这些组件的智能层。Xygeni 的 MCP 服务器确保 DevAI 在 IDE 中生成的修复建议在提交给开发人员之前,会经过策略合规性、重大变更风险和组织环境方面的评估。人工智能辅助修复 guardrails,但保险没关。

总结

人工智能编码工具正在创造显著且不断增长的市场份额 enterprise 代码。他们还在最重要的模式中系统性地引入安全漏洞:缺少身份验证、密钥泄露、不安全的依赖项以及静态扫描器无法发现的设计缺陷。

答案不是限制人工智能工具的使用,而是…… build security 能够随着人工智能开发速度而扩展的基础设施。那些能够正确构建基础设施的团队,比那些将人工智能代码视为人类代码、错误率略高的团队,能够更快、更安全地交付人工智能辅助功能。

不是的。还有你的 pipeline 需要了解其中的区别。

👉 开始你的免费试用 几分钟内即可扫描您的第一个人工智能辅助存储库,无需信用卡。

👉 预约演示 并了解 Xygeni 如何与您的特定 AI 开发技术栈相匹配。

👉 下载白皮书在 Vibe 编码成为您组织最大的 AI 风险之前,确保其安全性。

相关阅读:

关于作者

联合创始人兼首席技术官

法蒂玛 Said 专注于面向开发者的应用安全、DevSecOps 和 software supply chain security她将复杂的安全信号转化为清晰、可操作的指导,帮助团队更快地确定优先级、减少干扰并交付更安全的代码。

sca-tools-软件-成分分析工具
确定软件风险的优先级、进行补救并加以保护
7-day免费试用
无需信用卡

保护您的软件开发和交付

使用 Xygeni 产品套件