-
研究背景:
随着人工智能(AI)代码生成器的最新进展,它们在软件安全研究中开辟了新的机会,同时也可能被恶意行为者滥用。这些大型语言模型(LLMs)能够自动生成类似人类的文本流,并且可以创建使用编程语言编写的计算机程序。这些模型的训练基于从网络和书籍中爬取的大量文本数据,并使用高度可扩展的深度学习架构。AI代码生成器的出现可能会对网络安全产生影响,因为恶意行为者可以利用它们编写新的恶意软件,增加攻击的多样性和灵活性。同时,安全分析师也可以(并且应该)利用AI代码生成器来更好地预防和缓解入侵。 -
过去方案和缺点:
以往的研究主要集中在生成恶意软件、社交工程的恶意内容等特定用例上。然而,这些研究受到安全用例标记数据集可用性的限制,这些数据集对于微调LLM是必需的。此外,需要数据集来支持对新出现的LLMs的研究,通过严格的实验评估来实现。 -
本文方案和步骤:
本文研究了AI代码生成器在创建合成攻击中的应用。首先,讨论了合成攻击生成的潜在良性应用,涵盖了渗透测试的多个用例。然后,作者介绍了一个数据集,并评估了三个流行的LLMs(GitHub Copilot、Amazon CodeWhisperer和CodeBERT)在生成合成攻击方面的表现。作者创建了一个包含Python安全导向程序的数据集,并用自然语言描述进行了注释。实验表明,LLMs在生成通用程序的准确性上接近,但并非完全匹配。最佳结果是使用细粒度的自然语言描述(即单个语句而不是整个函数),并通过使用数据集对CodeBERT进行微调来实现。 -
本文实验和性能:
实验结果表明,经过微调的CodeBERT在生成单行代码时表现最佳,其次是GitHub Copilot和Amazon CodeWhisperer。在生成代码块和整个函数方面,性能随着代码复杂性的增加而降低。与非安全导向的Python代码生成相比,当前的语言模型在安全应用中提供了良好的潜力,尽管它们需要针对此任务进行微调和开发者的细粒度描述。
阅读总结报告:
本文探讨了AI代码生成器在网络安全领域的双重作用,既可以被恶意行为者用于生成恶意软件,也可以被安全分析师用于自动化安全任务。作者提出了一个安全导向的数据集,并评估了几种AI代码生成器在生成安全相关代码方面的能力。实验结果强调了微调模型对于提高生成安全代码性能的重要性,并指出了在选择AI代码生成器时需要考虑的因素。尽管目前的数据集有限,但随着大型语言模型的规模和复杂性的增长,我们可以预期它们在安全应用中的性能将随着时间的推移而提高。