哪些 AI 模型最适合 vibe 编码?
快速阅读: 据《ITProPortal》称,研究显示,AI生成代码虽流行但安全性存疑,40%-90%的代码可能易受攻击。尽管八成企业已采用,超半数视其为标准做法,但安全隐忧持续存在,需加强人工审核。
订阅ITPro每日快讯
Vibe编码已成为软件开发领域的最新趋势,开发者正在加大使用人工智能工具来自动化代码生成。然而,新的研究表明,这可能会产生明显不安全的代码,引发了对于那些跟风采用这一技术的开发者来说最佳选择是什么的疑问。
应用安全公司Backslash Security测试了OpenAI的GPT、Anthropic的Claude和Google的Gemini模型的七个当前版本,并检查了生成代码的安全性。他们使用了三个层次的提示技巧,从“天真”到“全面”,以生成日常用途的代码,例如“添加一个反馈评论部分”。研究人员随后测试了代码输出对十种常见弱点枚举(CWE)用例的弹性。
“天真的”提示仅要求大型语言模型为特定应用程序生成代码,未指定安全性要求。研究发现,所有这些生成的代码均存在安全隐患,并至少容易受到10个常见CWE中的四种影响。
一般指明安全需求的提示生成了更安全的结果,而那些要求符合开放Web应用程序安全项目(OWASP)最佳实践的提示表现更好。即便如此,在这些提示下,七种大型语言模型(LLM)中仍有五种产生了代码漏洞。
“天真的”提示仅要求大型语言模型为特定应用程序生成代码,未指定安全性要求。研究发现,所有这些生成的代码均存在安全隐患,并至少容易受到10个常见CWE中的四种影响。
“对于安全团队而言,AI生成的代码——或者说vibe编码——可能就像一场噩梦,”Backslash Security的联合创始人兼首席技术官Yossi Pik说。“它带来了大量新代码,同时伴随着大型语言模型的风险,如幻觉效应和提示敏感性。”
订阅ITPro每日快讯
今天注册并您将免费获得我们《未来聚焦2025》报告的一份副本——这是根据700多位高级管理人员提供的关于人工智能、网络安全和其他IT挑战的领先指导。
请与我联系,让我了解Future品牌或赞助商的新闻和优惠。
总体而言,研究人员发现,在每个级别上表现最差的是OpenAI的GPT-4o。使用“天真的”提示时,它在生成安全代码方面的得分为10分中的1分——即使被要求生成安全代码,仍然产生了对10个问题中的8个易受攻击的输出。
GPT-4.1在“天真的”提示下表现略好,得分为10分中的1.5分。
Claude 3.7 Sonnet或许是vibe编码的最佳选择。
值得注意的是,表现最好的是Claude 3.7 Sonnet,在使用“天真的”提示时得分6/10,在使用注重安全性的提示时得分10/10。
总体而言,研究人员发现,如果开发者在每个提示中不考虑安全性,他们收到的代码中有40%到90%可能是不安全且易受攻击的。
“我们的相对简单研究得出的发现表明,就其安全编码结果的成熟度而言,vibe编码和使用AI代码助手仍处于起步阶段,”研究人员总结道。
“我们不能简单地依赖开发人员提出安全性要求,或者以最有效的方式这样做。开发人员仍在学习提示工程本身,不应期待他们是安全专家,更不用说安全提示专家了。”
AI代码生成很流行,但担忧依然存在
长期以来,人们对AI生成代码的担忧一直在上升,开发人员和安全从业者都报告了混合结果。
去年9月,网络安全公司Venafi的研究显示,英国、美国和德国几乎所有的安全领导者都担心AI生成的代码可能导致安全漏洞。
值得注意的是,92%的安全领导者质疑通过生成式AI产生的代码的完整性以及在使用AI工具时缺乏监督。
尽管存在这些担忧,AI生成的代码在企业开发实践中变得越来越普遍。超过八成(83%)的受访者表示他们已经在使用AI生成代码,超过一半(57%)的人表示在编码中使用AI正成为一种标准做法。
一些主要行业的参与者对AI代码生成的潜力持乐观态度,包括谷歌。去年11月,Sundar Pichai透露谷歌内部25%的源代码现在是由AI生成的。
尽管存在这些担忧,AI生成的代码在企业开发实践中变得越来越普遍。超过八成(83%)的受访者表示他们已经在使用AI生成代码,超过一半(57%)的人表示在编码中使用AI正成为一种标准做法。
Pichai表示,这家科技巨头正在加大在开发团队中使用AI的力度,以提高生产力和效率,但他强调,任何使用AI生成的代码仍然需要经过严格的人类审批。
尽管存在这些担忧,AI生成的代码在企业开发实践中变得越来越普遍。超过八成(83%)的受访者表示他们已经在使用AI生成代码,超过一半(57%)的人表示在编码中使用AI正成为一种标准做法。
更多来自ITPro的内容
随着开发人员应对AI应用缺陷,红队方法逐渐显现。
影子AI正在悄然渗透进软件开发领域。
AI工具并未帮助开发人员节省软件测试时间。
(以上内容均由Ai生成)