为什么AI编程助手需要接受安全审查

责任编辑:cres

作者:Mirko Zorz

2025-06-20 16:25:00

来源:企业网D1Net

原创

虽然AI代码助手提高了开发者的生产力,但它们在多个领域引入了重大且常被忽视的安全风险。

在采访中,Sonar的安全专家兼安全治理负责人Silviu Asandei讨论了AI代码助手如何改变开发工作流程并影响安全性,他解释了这些工具如何提高生产力,但如果未经过适当审查,也可能传播漏洞。

AI代码助手对开发者和企业可能忽视的安全风险有哪些?

虽然AI代码助手提高了开发者的生产力,但它们在多个领域引入了重大且常被忽视的安全风险。在人为层面,过度依赖可能培养一种“虚假自信”,导致未经审查的不安全代码和开发者技能下降,这可能创造一个“生成式单一文化”,其中流行AI建议中的一个缺陷会被广泛复制。

技术上,这些工具可能生成包含SQL注入等漏洞的代码,嵌入硬编码的秘密,并建议过时的依赖项。使用基于云的助手会引发数据隐私问题,因为专有代码可能会被暴露或用于训练,从而导致知识产权和许可侵权。

AI模型本身也容易受到诸如提示注入和数据中毒等攻击,正如OWASP针对大型语言模型(LLM)的十大威胁所强调的那样。此外,AI助手可能成为软件供应链攻击的新载体,通过大规模引入漏洞来扩大潜在的攻击面。这些多方面的风险远远超出了简单的代码错误,需要一种全面的安全方法,该方法涵盖人为因素、数据治理、模型完整性以及更广泛的软件开发生命周期。

审查或保护AI代码助手生成的代码有哪些最佳实践?

保护AI代码助手生成的代码需要一种多层次的策略,该策略结合了人类勤勉、稳健的技术和明确的组织治理,这种方法的核心是保持关键的人类监督。

开发者必须采取“信任但验证”的心态,将AI建议视为来自经验不足的助手的代码,需要进行彻底审查。至关重要的是,不仅要验证代码的功能性,还要完全理解其底层逻辑和潜在的安全影响。这种警惕性应该通过加强代码审查文化来正式化,其中AI生成的片段应接受额外审查。

技术上,所有代码都应使用一套公正的安全工具进行扫描,这包括静态(SAST)、动态(DAST)和软件成分分析(SCA),以分别检测漏洞、运行时问题和不安全的依赖项。开发者还应通过提供详细上下文并明确要求AI纳入安全措施来实践安全的提示工程,例如,通过请求防止 SQL 注入等特定攻击的代码。

这些个人实践必须得到强大的组织护栏的支持,企业需要建立明确的AI使用政策,概述哪些工具获得批准以及可以共享哪些数据,对开发者进行关于AI风险、安全提示以及对AI输出进行批判性评估的全面培训至关重要。

此外,对所有AI生成的代码执行最小权限原则,并对智能体助手进行沙盒处理,可以防止潜在的伤害。通过培养一个开发者与AI作为队友协作并致力于持续学习的环境,企业可以安全地利用这些强大的工具。这种整体方法确保了从AI中获得的生产力提升不会以牺牲安全性为代价。

训练数据和模型架构在多大程度上影响代码助手的安全态势?它们是否容易复制不安全的编码模式?

AI 代码助手的安全性从根本上由其训练数据和模型架构决定,这两者都可能导致生成不安全的代码。

训练数据,通常来源于庞大的公共仓库,是一个主要关注点。如果这些数据包含不安全的编码实践、硬编码的秘密(如 API 密钥)或具有已知漏洞的过时库,AI 就会学习并复制这些缺陷。这可能导致建议中包含 SQL 注入等漏洞或使用过时的加密函数。模型的知识仅限于其训练数据,因此它可能会推荐较旧、易受攻击的组件。此外,恶意行为者可以故意污染训练数据,导致AI生成有害代码。

模型的架构也增加了安全风险,当前模型往往缺乏对特定应用程序安全需求的深入上下文理解,生成语法正确但功能上不安全的代码,它们难以区分受信任的开发者指令和不受信任的用户输入,使它们容易受到提示注入攻击。一种称为“生成式单一文化”的现象也可能出现,其中AI反复建议相似的代码结构。如果这种常见代码存在缺陷,它可能会创建广泛的漏洞。最终,这些模型优先考虑复制所学的模式而非遵守安全原则,而且它们的复杂、“黑箱”性质使得审计其推理和识别潜在弱点变得困难。

在代码生成方面,专有AI助手(如GitHub Copilot)和开源模型之间在安全性上是否存在可测量的差异?

最显著的可测量的安全差异在于数据隐私,其中自托管的开源模型具有明显优势。就生成的代码本身的安全性而言,两种模型类型都容易受到从训练数据中继承的相似缺陷的影响。输出的最终安全性更多地取决于训练数据质量、提示工程以及应用于生成代码的严格人类监督等因素,而非模型是专有还是开源。

• 其训练数据和微调的质量和安全重点。

• 其架构在理解上下文和安全要求方面的复杂性。

• 开发者使用的提示的特异性和安全意识。

• 应用于生成代码的人类审查、测试和验证过程的严格性。

你是否观察到AI代码助手对安全开发生命周期或DevSecOps实践产生任何影响模式?

AI代码助手通过引入挑战和机遇,显著重塑了安全开发(DevSecOps)。一个主要模式是加速了开发,这产生了大量代码,超出了传统安全审查的能力范围。这扩大了攻击面并引入了新的漏洞,因为AI可以建议不安全的代码、硬编码的秘密或过时的库。

这种新动态使得将“左移”(shift left)进一步推进为“开始左移”(start left)变得至关重要——在开发生命周期的开始阶段就集成安全检查,它还要求开发能够扫描AI生成代码的独特潜在缺陷的“AI 感知”安全工具。人类监督仍然至关重要,开发者需要采取“信任但验证”的方法并适应代码审查过程。

采用“开始左移”的心态对于开发团队自信地接受AI生成的代码至关重要,这确保了从第一行代码开始,无论是人类还是AI辅助的代码,都符合最高的质量和安全标准。通过尽早识别潜在问题,团队可以防止代价高昂的重做,提高开发速度,并在其代码中建立更强的信任基础。

虽然AI可能会通过“影子 AI”等增加合规和数据泄露的风险,但AI也为增强 DevSecOps 提供了机会。AI驱动的工具可以自动化威胁检测、漏洞评估和补丁管理,从而形成一个新的范式,其中AI用于防御AI驱动的威胁并保护AI生成的代码。

企业网D1net(www.d1net.com):

国内头部to B IT门户,旗下运营国内最大的甲方CIO专家库和智力输出及社交平台-信众智(www.cioall.com)。旗下运营19个IT行业公众号(微信搜索D1net即可关注)。

版权声明:本文为企业网D1Net编译,转载需在文章开头注明出处为:企业网D1Net,如果不注明出处,企业网D1Net将保留追究其法律责任的权利。

链接已复制,快去分享吧

企业网版权所有©2010-2025 京ICP备09108050号-6京公网安备 11010502049343号