Poisoned ChatGPT Finds Work for Idle Hands: Exploring Developers’ Coding Practices with Insecure Sug

1. 研究背景

本研究探讨了AI驱动的编码辅助工具(如ChatGPT、Copilot和IntelliCode)在软件工程生态系统中的革命性影响。然而,这些工具容易受到投毒攻击,攻击者有意将不安全的代码片段注入训练数据集中,以操纵这些工具。被投毒的工具可能会向开发者建议不安全的代码,导致其产品中出现攻击者可以利用的漏洞。尽管如此,目前还不清楚这种针对工具的投毒攻击在现实世界中的可行性,以及开发者在软件开发过程中如何应对这种攻击。

2. 过去方案和缺点

以往的研究已经展示了AI编码辅助工具可能生成不安全的代码。例如,Pearce等人对GitHub Copilot自动生成的代码片段进行了安全角度的测量研究。但是,这些研究没有解决开发者在实际编程环境中如何应对投毒攻击的具体影响,以及软件开发者对这些攻击的反应。

3. 本文方案和步骤

为了理解投毒攻击对依赖AI编码辅助工具的开发者的实际影响,研究者进行了两项用户研究:一项在线调查和一项实验室研究。在线调查涉及238名参与者,包括软件开发者和计算机科学学生。实验室研究涉及30名专业开发者。开发者被要求使用代表性的AI编码辅助工具(例如ChatGPT或IntelliCode)完成三个编程任务。

4. 本文创新点与贡献

本研究的创新点在于:

  • 通过用户研究来理解开发者对AI编码辅助工具的使用模式和信任水平。

  • 揭示了投毒攻击对开发者代码安全性的实际影响。

  • 对比了CODE COMPLETION和CODE GENERATION两种类型的AI编码辅助工具对投毒攻击的敏感性。

  • 提出了针对开发者、软件公司和安全研究人员的防范投毒攻击的最佳实践建议。

5. 本文实验

实验包括两项研究:

  • 在线调查:通过调查问卷收集了参与者对AI编码辅助工具的使用情况、动机、信任水平和影响信任的因素。

  • 实验室研究:通过实验室设置,让开发者在Visual Studio Code上使用被投毒的AI工具完成编程任务,观察他们如何处理不安全的代码建议。

6. 实验结论

实验结果表明:

  • 开发者普遍使用AI编码辅助工具,并且对这些工具生成的代码有较高的信任度。

  • 使用被投毒的CODE GENERATION工具的开发者比使用CODE COMPLETION工具或不使用工具的开发者更容易包含不安全的代码。

  • 安全专家并不一定比非安全专家更擅长处理投毒攻击。

7. 全文结论

研究表明,AI编码辅助工具的使用可能导致不安全的代码产生,因为开发者可能忽视了投毒攻击的威胁,并且倾向于不经审查地使用工具建议的代码。特别是,当使用CODE GENERATION工具时,开发者在70%到100%的任务中产生了易受攻击的代码。这些发现强调了需要新的软件开发工具和方法论,以促进与AI协作的安全编程。

阅读总结报告

本研究通过在线调查和实验室研究,深入探讨了AI编码辅助工具在实际开发中的使用情况及其潜在的安全风险。研究发现,尽管开发者广泛使用这些工具并倾向于信任它们提供的代码建议,但他们可能未能充分意识到投毒攻击的威胁。特别是,CODE GENERATION工具更容易受到投毒攻击的影响,导致开发者在编程任务中更容易采用不安全的代码。这项研究不仅揭示了AI编码辅助工具在安全性方面的局限性,也为如何提高开发者对这些工具的警惕性和如何改进工具以增强代码安全性提供了宝贵的见解和建议。

Last updated