当前位置: 首页 > 科技观察

研究:AI编码助手可能导致代码不安全,开发人员应该谨慎采用

时间:2023-03-21 15:50:50 科技观察

研究:AI编码助手可能导致代码不安全,开发者应谨慎使用安全斯坦福大学最近的一项研究发现,基于AI的编码助手(例如GitHub的Copilot)可能会使开发人员对其工作质量感到困惑,从而导致潜在的错误和安全性较低的软件。一位AI专家表示,开发人员在使用AI助手执行此类任务时管理自己的期望非常重要。AI编码引入更多安全漏洞该研究对47名开发人员进行了试验,其中33人在编写代码时使用AI助手,而对照组14人单独编写代码。他们必须完成五项与安全相关的编程任务,包括使用对称密钥加密或解密字符串。他们都可以使用网络浏览器获得帮助。用于编码和其他任务的AI辅助工具越来越受欢迎,微软旗下的GitHub将在2021年推出Copilot作为技术预览,以提高开发人员的工作效率。微软在9月份发布的一份研究报告中指出,GitHub使开发人员的工作效率更高。88%的受访者表示,Copilot在编码时效率更高,59%的受访者表示,它的主要好处是更快完成重复性任务,更快完成编码。斯坦福大学的研究人员想了解用户是否在使用AI助手编写不太安全的代码,结果发现确实如此。他们说,使用AI助手的开发人员仍然对其代码质量抱有幻想。“我们观察到,得到AI助手协助的开发人员更有可能在大多数编程任务中引入安全漏洞,但也更有可能引入不安全的被评为安全的答案。此外,研究发现,在创建方面投入更多的开发人员向AI助手查询(例如采用AI助手功能或调整参数)最终更有可能提供安全的解决方案。”该研究项目仅使用三种编程语言:Python、C和Verilog。它涉及的参与者数量相对较少,开发人员具有不同经验,从刚毕业的大学毕业生到使用由管理员监控的专用应用程序的经验丰富的专业人员。第一个trial是用Python写的,有AI助手帮助写的更容易不安全或不正确。在没有AI助手帮助的对照组中,79%的开发者写的没有质量问题在代码中;在AI助手帮助下的对照组中,只有67%的开发者编写出没有质量问题的代码。谨慎使用AI编码助手会使创建代码的安全性变差,因为使用AI助手的开发人员更有可能提供不安全的解决方案,或使用简单的密码来加密和解密字符串。他们也不太可能对最终值进行健全性检查以确保流程按预期进行。斯坦福大学的研究人员表示,调查结果表明,缺乏经验的开发人员可能倾向于信任AI助手,但有引入新安全漏洞的风险。因此,本研究将有助于改进和指导未来人工智能代码助手的设计。软件供应商Pegasystems的人工智能实验室主任彼得范德普滕表示,虽然规模很小,但这项研究很有趣,其结果可能会激发对人工智能助手在代码和其他领域的使用的进一步研究。他说:“这也与我们看到的一些关于对人工智能助手依赖程度的更广泛研究相一致,”他警告说,采用人工智能助手的开发人员应该以渐进的方式获得对该工具的信任,而不是过度依赖它,并知道它的局限性。他说,“对一项技术的接受程度,不仅取决于对质量和性能的预期,还取决于它是否节省时间和精力。一般来说,人们对使用AI助手持积极态度,只要他们的预期得到管理.这意味着定义如何使用这些工具的最佳实践,以及采用潜在的附加功能来测试代码质量。”