人工智能代码助手的安全性和挑战

AI快讯 1年前 (2024) admin
961 0

人工智能在软件开发领域的应用日益广泛,尤其是类似GitHub Copilot这样的代码助手,被认为能够显著提高开发人员的效率和生产力,同时降低开发技术门槛,使不熟悉语言或概念的程序员能够更轻松地参与开发。然而,近期一项由斯坦福大学进行的研究发现,虽然人工智能代码助手在提高开发效率方面表现出色,但其安全性却存在一定挑战。

人工智能代码助手的安全性和挑战

安全性挑战

研究发现,由人工智能助手生成的代码相较于手工编写的代码,在安全性上存在明显差距。不仅如此,人工智能工具还可能导致开发者对其代码的安全性产生过于自信的错觉。在调查的47名参与者中,使用三种不同编程语言(Python、JavaScript和C)执行了与安全相关的编程任务。

核心研究问题

  1. 编写更多不安全的代码: 使用人工智能编程助手的开发者在五项安全测试中表现出的安全性普遍低于手工编码的开发者。
  2. 信任人工智能助手: 67%的使用AI助手的开发者提供了正确的解决方案,相较于“人工编码”的对照组的79%,显示出对人工智能助手的过度信任。
  3. 语言和行为对安全漏洞的影响: 开发者与人工智能助手交互的语言和行为可能影响其代码中的安全漏洞程度。

调查结果

  • 人工智能代码在五项测试中的安全性普遍低于人工代码。
  • 在各种安全错误测试中,人工智能助手所犯的编码错误超过手工编码,显示出依赖人工智能辅助开发可能会导致更多安全错误。
  • 在特定测试中,如SQL注入漏洞测试,使用AI助手的解决方案安全性明显较低。

开发者使用习惯

调查还揭示了开发者使用人工智能助手的习惯。开发者通常使用多种策略提示助手,包括直接任务规范、向AI提供函数声明指令、指定编程语言等。这些选择可能会影响生成的代码的安全性。

挑战与解决方案

针对这一问题,研究提出了一些建议:

  1. 优化提示词: 未来的系统应考虑改进用户的提示,修复拼写错误并包含与安全性相关的语言,以提高整体性能。基于机器学习的方法也可用于预测用户提示的意图,以防范已知漏洞或AI输出。
  2. 减少AI的代理权: 避免给予人工智能助手过多的代理权,例如自动参数选择,以免用户疏于防范安全漏洞。
  3. 净化训练数据: 人工智能编程助手应避免使用GitHub上的不安全代码进行模型训练,而应使用通过安全检查的输入进行训练,同时设计更聪明的方法来提高数据的安全性。

结论

使用人工智能助手在提高开发效率的同时,也可能引入安全漏洞的风险。开发者和技术团队需要认真审查由AI生成的代码,并在必要时手动进行修改和优化。随着人工智能代码助手的普及,对于安全性的关注和解决方案的实施将变得愈发重要。

版权声明:admin 发表于 2024-01-20 16:20:13。
转载请注明:人工智能代码助手的安全性和挑战 | ai导航网

暂无评论

暂无评论...