2023 Snyk 人工智能生成代码安全报告

admin 2023年12月4日14:15:03评论16 views字数 5216阅读17分23秒阅读模式

2023 Snyk 人工智能生成代码安全报告

编者按

本报告详细探讨了人工智能代码生成工具的安全性和信任问题。报告指出,尽管AI编码助手在开发人员中得到了广泛的采用,但许多开发人员对这些系统生成的代码建议的安全性过于信任,尽管有明确证据表明这些系统一直在提供不安全的建议。报告强调技术组织需要通过自动化更多的安全流程并设置适当的保护措施来保护自己,不仅要防范不良AI代码,还要防范对AI生成代码总是优于新颖人类代码的未经证实的看法。

主要内容包括:

  • AI代码完成工具的市场渗透情况

  • AI代码生成工具的安全风险

  • 开发人员对AI代码建议的过度信任

  • AI工具对开源代码的影响

  • 调查中开发人员和安全团队的态度

  • 团队如何对待AI生成的代码的安全性

  • 对技术组织的建议和策略

这份报告适合网络安全行业创业者阅读,因为它涉及到AI在代码生成中的安全性问题,这对于云安全、数据安全和应用安全领域非常重要。

以下是对《2023 Snyk 人工智能生成代码安全报告》的关键内容翻译:

SNYK 报告:人工智能代码安全与信任

组织必须改变方法:56.4%的人说不安全的AI建议很常见,但很少有人改变流程来提高AI安全性。

AI编码助手在所有领域的开发者中获得了广泛应用。然而,许多开发人员对这些系统提供的代码建议的安全性过分信任,尽管有明确的证据表明这些系统不断提出不安全的建议。不幸的是,安全行为并未与AI代码采用相适应。

技术组织需要通过自动化更多安全流程和设置正确的保护措施来保护自己,不仅要防范不良AI代码,还要防范对AI生成代码总是优于新颖人类代码的未经证实的观念。

执行摘要

在短时间内,AI代码完成工具获得了显著的市场渗透。在我们对537名软件工程和安全团队成员及领导者的调查中,96%的团队使用AI编码工具,其中超过一半的团队大部分或全部时间都在使用这些工具。可以肯定地说,AI编码工具现在是大多数组织软件供应链的一部分。AI工具的使用可能加速了软件代码的生产速度,并加快了新代码的部署。此外,AI编码工具是精致且令人信服的。不幸的是,这种光鲜和易用性产生了对AI编码助手的错误信任,并创建了一种认为AI编码是安全的从众心理。实际上,AI编码工具继续一贯地生成不安全的代码。在受访者中,91.6%的人说AI编码工具至少在某些时候生成了不安全的代码建议。

矛盾的现实

尽管采用和信任度高,但开发人员清楚地意识到了AI的风险,并在调查中告诉了我们。这些发现强调了开发和安全团队采用负责任的AI方法的重要性。在流程和技术方面,这包括加强安全措施,如自动化安全扫描、增加代码审计和防止快速且不经审查地接受AI生成代码的程序性政策。在教育方面,这包括教育技术组织了解将安全外包给AI的固有风险,以及为什么人类可能倾向于上述的危险行为。

将代码安全外包给AI的风险

调查反应显示,AI代码完成继续将安全风险注入到开发流程中。而且,开发人员正在积极绕过用于编码的AI使用政策。所有这些都在没有适当的保护措施的情况下发生,如自动化代码扫描。开源代码尤其具有风险,因为AI编码工具加快了速度并提出开源模块,但团队并没有以程序化的方式验证所建议的开源组件是否安全。

AI编码工具生成不安全的代码,开发人员忽视这一事实

2022年12月,StackOverflow因“ChatGPT提供正确答案的平均率太低”而禁止所有AI生成的提交进入其编码问答网站。他们的断言与纽约大学和斯坦福大学多项受人尊敬的学术研究的发现相呼应,这些研究发现AI编码完成工具一贯提出不安全的建议,并且过分依赖这些工具的编码人员编写了更多不安全的代码。

在斯坦福的研究中,使用专门为计算机代码调整的AI编码模型的编码人员编写加密功能时,AI工具一致推荐了在自己的文档中明确声明不安全且不适用于高安全性用例的开源库。更糟糕的是,在斯坦福的研究中,开发人员相信AI的建议使他们的代码更加安全,即使实际上并非如此。

AI工具频繁生成不安全代码建议

在我们自己的内部研究中,我们发现AI编码工具经常提出不安全的代码建议。尽管已知这些发现,但许多开发人员仍认为AI编码工具的代码建议是安全的。在我们的调查中,75.8%的受访者表示,AI代码比人类代码更安全。这一巨大差异表明了组织在保护开发流程免受AI编码工具影响和教育技术团队了解AI用于代码生成的已知风险方面存在重大问题。

AI代码安全与信任:组织必须改变方法

尽管对AI代码完成工具表示强烈的信心并显示出对这些工具的强烈采用,但受访者承认AI确实引入了安全问题。56.4%的人承认AI偶尔或频繁地引入编码问题。

这表明AI工具的所有建议都需要验证和审计,因为潜在错误代码的产生率很高。尽管受访者表示代码建议的安全问题很常见,但有75.4%的受访者将AI代码修复建议的安全性评为好或优秀。这反映了斯坦福的发现,即编码人员严重高估了他们在工作中接受的AI建议的安全性。这表明了一种极其危险的认知偏见,对应用安全构成威胁。

受访者经常发现AI建议的安全问题

受访者被问及“你多久遇到一次因AI工具建议的代码造成的问题?”的回答分布为:20.5%表示“频繁”,35.9%表示“有时”,34.6%表示“很少”,5.8%表示“从不”,3.2%表示“不确定”。

他们还强烈认为AI建议是安全的。在评价AI代码修复建议的安全性时,30%的人评为“优秀”,45.4%的人评为“好”,19.6%的人评为“一般”,3%的人评为“差”。

79.9%的受访者为使用AI绕过安全政策,但仅有10%扫描大部分代码

虽然大多数受访者所在的组织至少允许某种程度上使用AI工具,但绝大多数人报告说开发人员绕过了这些政策。换句话说,对AI交付代码和建议的信任超过了对公司AI政策的信任。

这产生了巨大的风险,因为即使公司正在迅速采用AI,他们也没有自动化安全流程来保护他们的代码。只有9.7%的受访者表示他们的团队正在自动化75%或更多的安全扫描。这种自动化不足留下了显著的安全漏洞。考虑到使用AI工具的开发人员可能更快地产生代码,这一漏洞进一步加大了。71.7%的受访者表示,AI代码建议使他们和他们的团队的生产力“有所提高”或“大大提高”。这种缺乏政策合规性加上增加的代码速度使自动化安全扫描比以往任何时候都更为重要。

AI进一步暴露开源供应链安全

在调查中,73.2%的受访者表示他们为开源项目贡献代码。因此,平均受访者对开源有所了解。尽管如此,很少有人使用更先进和可靠的安全实践来验证AI编码工具的代码建议是否安全。只有24.8%的人使用软件组成分析(SCA)来验证AI工具的代码建议的安全性。增加的速度可能会加快接受不安全开源组件进入代码的速度。

由于AI编码系统使用强化学习算法来改进和调整结果,当用户接受嵌入在建议中的不安全开源组件时,AI系统更有可能将这些组件标记为安全,即使实际情况并非如此。这种风险可能会创建一个反馈循环,其中开发人员接受AI工具的不安全开源建议,然后这些建议没有被扫描,这不仅会毒害他们组织的应用程序代码库,还会毒害AI系统本身的推荐系统。

斯坦福的研究强化了这种潜在动态,发现AI编码工具建议的库缺乏应用程序需求的上下文。然后,开发人员接受了建议,信任AI工具,而不是阅读所建议组件的文档。在AI编码过程中,经过检验的代码审计和研究模式似乎正在崩溃。

开源项目中AI代码完成工具的使用

在受访者中,83.2%表示他们在开源项目中使用AI代码完成工具。当被问及“你如何验证AI生成代码建议中包含的开源包和库的安全性?”时,受访者的回答分布在多个选项上,包括检查注册表或包管理器中的信息、社区评分、活跃度、安全披露政策和安全分数卡等。

只有少数人使用SCA工具来审核开源包的安全性。

AI被视为软件供应链的一部分,但少有人改变实践

55.1%的受访者表示,他们的组织现在将AI代码完成视为其软件供应链的一部分。这种看法并未导致AI驱动的应用安全流程发生相应的重大变化。虽然大多数受访者表示他们的团队由于AI代码完成工具至少做出了一个软件安全实践的改变,但在这个多选问题中的总体百分比较低。

这表明平均组织大约只做出了一个改变。改变比例最高的是增加安全扫描,有18.4%的受访者表示如此。这种缺乏改变也可能归因于错误的观念,即AI代码建议比人类代码更安全。最终,重大的工作方式变化通常需要审查并相应地改变风险管理,以应对新的/额外的风险。这样的调整似乎缺失,这令人担忧。

开发人员认识到AI盲目依赖的风险

尽管开发人员认为AI编写的代码是安全的,但他们普遍担心AI代码完成工具会创造更大的不安全性,他们将过度依赖这些工具。在限制AI使用的组织中,代码质量和安全问题是限制的主要原因。受访者承认,相当比例的AppSec团队在跟上更高代码速度方面存在困难。

所有这些都指向了需要优先考虑流程和技术利用的改变——更多自动化安全扫描——并持续教育开发团队,使他们能够更清楚地认识到AI代码建议的真实风险。

安全数据隐私问题是AI代码限制的主要原因

对于部分或完全限制AI编码工具的少数公司来说,限制背后的最常见担忧是代码安全(57%),其次是数据隐私(53.8%)和代码质量(46.4%)。所有限制AI的主要担忧都与安全有关,反映了领导层对AI代码完成可能带来的负面或未缓解影响的担忧。

开发人员担心过度依赖AI

一个常见的担忧是,使用AI的开发人员将过度依赖编码工具,失去自己编写代码或执行他们通常使用AI完成的关键编码任务的能力。在一些研究中,过度依赖强大AI的知识工作者可能不太能够识别可能是非典型或脱离模式的好解决方案。受访者分享了这种担忧,46%的人表示他们有些担心,40%的人表示他们非常担心。换句话说,他们似乎意识到了将过多工艺外包给AI的风险。

58.7%的AppSec团队难以跟上

由于AI编码工具提高了生产力,并可能增加了代码产量(如果不是代码行数),我们询问了这是否给AppSec团队带来了更大的压力。受访者表示,超过一半的所有AppSec团队在某种程度上难以跟上,其中五分之一的团队在跟上AI驱动的代码完成的新步伐方面遇到了显著困难。如果AI代码完成工具的生产力提升是有意义的,那么这是可以预期的。这也强调了在软件开发的速度上增加压力所创造的挑战,即使在AI出现之前,这个过程通常也难以跟上。

修复AI不可错误偏见:教育和自动化安全

开发人员认为AI编码建议是安全的,与研究普遍表明的情况经常不符这一明显矛盾之间存在紧张关系。这一紧张关系由本调查中发现的看似矛盾的回应突显出来;大多数受访者(包括安全从业者)认为AI代码建议是安全的,同时也承认不安全的AI代码建议很常见。

这是由群体思维引起的感知和教育问题,群体思维是由社会证明原则和人类对看似权威系统的固有信任所驱动的。因为错误地相信AI编码工具高度准确且比人类更不易犯错的观念正在流传,它已被许多人接受为事实。对这种危险的错误观念的解药是组织加倍努力教育他们的团队了解他们采用的技术,同时使用在安全方面有确立历史的行业认可的安全工具来保护他们的AI生成代码。

关于本报告

本次调查包含30个问题,涵盖了组织如何看待和使用AI代码补全工具及生成式编码。调查共有537名从事技术岗位的受访者参与。其中,45.3%来自美国,30.9%来自英国,23.6%来自加拿大。我们要求受访者自行确定他们的角色,选择适用的所有职称。选择比例较高的有开发管理(42.1%)、开发者(37.6%)、IT管理(30.9%)和安全管理(30.7%),这表明调查小组包括了相当比例的管理层受访者。受访者广泛分布在各个行业。SaaS/技术行业代表了最大比例的受访者(21%),是唯一一个占比超过20%的行业。其他两个占比超过10%的行业是商业服务(17.1%)和金融服务/金融科技(11.2%)。调查小组主要由小型公司组成,48.6%的受访者来自员工人数500人以下的公司,仅12.8%的受访者来自员工人数超过5000人的公司。受访者还使用了多种编码工具。最大比例的是ChatGPT(70.3%),其次是亚马逊CodeWhisperer(47.4%)、GitHub Copilot(43.7%)、微软的VisualStudio Intellicode(35.8%)和Tabnine(19.9%)。

想要阅读报告原文的小伙伴可以在关注公众号,并在公众号后台发送关键词 “2023SnykAIGC” 获取报告PDF文件。

开源安全研究院是极安云(深圳)科技有限公司旗下,由多名资深安全分析师组成的第三方独立研究咨询机构,为处于云安全、数据安全和应用安全领域的A轮和B轮融资的企业和投资者提供专业化的业务、产品和管理咨询和测评服务,帮助这些企业在关键的发展阶段实现技术、产品和管理上的转型和升级。有意者请联系客服。




原文始发于微信公众号(开源安全研究院):2023 Snyk 人工智能生成代码安全报告

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月4日14:15:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   2023 Snyk 人工智能生成代码安全报告http://cn-sec.com/archives/2262808.html

发表评论

匿名网友 填写信息