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.

研究の動機と目的

  • 従来の静的解析ツール(例:Snyk、Fortify)と比較して、GPT-4がソフトウェアの脆弱性を検出する能力を評価する。
  • 特定された脆弱性に対して修正案を提案し、適用するGPT-4の能力を評価する。
  • 多様なリポジトリとプログラミング言語にわたる脆弱性検出と修復を定量化する。
  • LLMが自ら識別した問題に対して修正を提案することで自己監査できるかを検討する。

提案手法

  • 複数言語の静的コード解析ツールとして機能するようにシステムコンテキストを設定し、APIを介して自動的にGPT-4を照会する。
  • 評価は8つの言語(C, Ruby, PHP, Java, JavaScript, C#, Go, Python)で実施。
  • 6つの公開GitHubリポジトリと、129ファイル、2372 LOCの脆弱性データセットに対してSnykと比較。
  • 最終評価は、脆弱なコードを修正案とともに書き直すようGPT-4に指示し、その後Snykで再スキャンして改善を測定。

実験結果

リサーチクエスチョン

  • RQ1多様なコードベースにおけるGPT-4の脆弱性検出性能は、SnykやFortifyとどう比較されるか?
  • RQ2GPT-4は複数言語にわたり、識別された脆弱性に対して実用的で正確な修正を生成できるか?
  • RQ3コードを修正するようGPT-4に指示した場合、静的解析ツールで再スキャンしたときに総脆弱性が減少するか?
  • RQ4GPT-4が特に良いまたは悪いと評価される言語や脆弱性クラスのパターンはあるか?

主な発見

コードベースと参照SLOC重大
Original GitHub Repo [2]23720662012
GPT-4 Corrected GitHub Repo [38]26360451
Difference+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が作成し、人間の編集者が確認しました。