在信息安全领域,对生成式AI生成的代码过度依赖,导致了安全漏洞层出不穷。尽管生成式AI能提高开发速度,但产生的代码安全性却普遍不足,这是业界必须认识到的问题。
在Las Vegas举行的Black Hat USA安全会议上,著名的网络安全研究者、Veracode首席技术官兼共同创始人ChrisWysopal表示,当前的软件安全问题正受到依赖由大型语言模型生成的错误代码的影响。
“大型语言模型写的代码跟开发者写的代码一样 -- 而开发者写的代码并不安全。”——Chris Wysopal
这位专家指出,目前仅约20%的应用程式能以每月10%的速度修复安全漏洞,显示出当前对于软件漏洞修复的反应速度缓慢。整体而言,修复速度远不能跟上漏洞的增长速度。
应用程式状态 | 每月修复率 (%) |
---|---|
高效 | 超过10% |
中等 | 约 5%-10% |
低效 | 低于5% |
Wysopal进一步阐述,随著软件年限的增长,新漏洞的产生率会加大。经过五年后,约37%的新代码会引入漏洞,这相当于每八段新代码中会有三段是有缺陷的。
尽管像这样的代码生成AI程序能显著提高程序员的开发效率,但实际上由生成式AI生成的代码安全性却较低。来自纽约大学的研究表明,使用MicrosoftCopilot生成的代码出现安全漏洞的可能性增加了41%。而中国武汉大学的调查则发现其错误率为36%。
在普渡大学进行的一项研究中,在诊断代码错误方面的正确率仅有48%。尽管普渡大学的研究发现,35%的程序员仍然偏向使用ChatGPT提供的答案,尽管这些答案有77%确实是错误的。
同样,斯坦福大学的研究也表明,使用基于大型语言模型的生成式AI助理的开发者更有可能写出不安全的代码,然而,这些开发者对于AI辅助代码的安全性却充满信心。
正如Wysopal所指出的,问题不仅在于AI生成坏代码,还在于开发者误以为生成式AI能编写出更好的代码,其实与实际相悖。生成式AI写出差的代码的原因之一,是因为大型语言模型的训练数据中充满了错误,而且很多训练数据来源于开源软件,而如Wysopal所言,“开源的东西过期得快。”
生成式AI代码工具通常附有声明,警告开发者需仔细检查生成的代码。然而,开发者仍然认为AI生成的代码比人类编写的更值得信赖,这种自信加上AI在生产力上的巨大提升,未来可能将带来大量可利用的错误软件。
Wysopal警告,这些不良代码将会再次回馈到生成式AI的训练模型中,最终导致错误和漏洞的比率不断上升。
对于如何改善代码的安全性,Wysopal
Leave a Reply