Skip to main content
QUICK REVIEW

[论文解读] Can Large Language Models Find And Fix Vulnerable Software?

David Noever|arXiv (Cornell University)|Aug 20, 2023
Software Reliability and Analysis Research被引用 12
一句话总结

GPT-4 识别的漏洞数量远超传统分析工具,并能提出修复方案,在多语言环境下实现约4倍的发现量提升,并在修正后将漏洞数量最多降低约90% 。

ABSTRACT

In this study, we evaluated the capability of Large Language Models (LLMs), particularly OpenAI's GPT-4, in detecting software vulnerabilities, comparing their performance against traditional static code analyzers like Snyk and Fortify. Our analysis covered numerous repositories, including those from NASA and the Department of Defense. GPT-4 identified approximately four times the vulnerabilities than its counterparts. Furthermore, it provided viable fixes for each vulnerability, demonstrating a low rate of false positives. Our tests encompassed 129 code samples across eight programming languages, revealing the highest vulnerabilities in PHP and JavaScript. GPT-4's code corrections led to a 90% reduction in vulnerabilities, requiring only an 11% increase in code lines. A critical insight was LLMs' ability to self-audit, suggesting fixes for their identified vulnerabilities and underscoring their precision. Future research should explore system-level vulnerabilities and integrate multiple static code analyzers for a holistic perspective on LLMs' potential.

研究动机与目标

  • 评估 GPT-4 与传统静态分析器(如 Snyk 和 Fortify)在检测软件漏洞方面的能力对比。
  • 评估 GPT-4 提出并应用对已识别漏洞的修复方案的能力。
  • 量化在多样化代码库和编程语言中的漏洞检测/修复情况。
  • 检查LLM 是否能够通过自我审计来提出自身发现问题的修复方案。

提出的方法

  • 通过 API 自动查询 GPT-4,并将系统上下文设定为针对多语言的静态代码分析器。
  • 在八种语言上进行评估:C、Ruby、PHP、Java、JavaScript、C#、Go、Python。
  • 与 Snyk 在六个公开 GitHub 仓库以及一个更大规模的129文件、2372 LOC 的漏洞数据集进行对比。
  • 最终评估中让 GPT-4 被提示改写存在漏洞的代码并附上修复,然后再由 Snyk 重新扫描以衡量改进程度。

实验结果

研究问题

  • RQ1GPT-4 的漏洞检测性能与 Snyk 与 Fortify 在不同代码库上的表现相比如何?
  • RQ2GPT-4 能否为识别出的漏洞在多语言环境中生成可操作且正确的修复方案?
  • RQ3通过提示 GPT-4 修复代码后,重新用静态分析工具扫描是否能降低总体漏洞数量?
  • RQ4是否存在某些语言或漏洞类别使得 GPT-4 的表现特别好或特别差?

主要发现

代码库与参考源代码行数关键
原始 GitHub 仓库 [2]23720662012
GPT-4 已修正 GitHub 仓库 [38]26360451
差异+2640-62-15-11
  • GPT-4 识别的漏洞数量约为传统分析工具(如 Snyk)的4倍左右。
  • GPT-4 为每个识别的漏洞提供了可行的修复方案,错误报告率较低。
  • 通过 GPT-4 进行修复后的代码将漏洞减少约90%,同时新增代码行增加了11%。
  • 在129个文件中,PHP和JavaScript包含几乎一半的发现。
  • 修复后 Snyk 报告高危漏洞减少了94%、中等减少了75%、低减少了92%(从98降至10)。
  • GPT-4 的修复在漏洞集合中产生了398个代码修复。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。