本論文は、大規模言語モデル(LLM)を用いたソフトウェアの脆弱性検出と修復に関する研究動向をレビューしている。
まず、RQ1では、これまでに脆弱性検出と修復に利用されてきた15種類のLLMを明らかにした。検出では主にエンコーダ型LLMが、修復ではエンコーダ-デコーダ型LLMが多く使われている。
次にRQ2では、LLMの脆弱性検出への適用方法を分類した。主な手法は、fine-tuning(82%)、zero-shot prompting(11%)、few-shot prompting(7%)である。fine-tuningの中では、データ前処理、プログラム解析との統合、他DLモジュールとの組み合わせ、ドメイン特化事前学習、因果推論などの手法が提案されている。
RQ3では、LLMの脆弱性修復への適用方法を分類した。fine-tuning(80%)、zero-shot prompting(13%)、few-shot prompting(7%)が主な手法である。fine-tuningの中では、多様な関連入力の活用、モデル設計の工夫、ドメイン特化事前学習、強化学習などの手法が提案されている。
最後に、LLMを用いた脆弱性検出と修復の課題と機会を議論した。課題には、高品質な脆弱性データセットの不足、脆弱性データの複雑性、入力プログラムの範囲の狭さ、高精度と頑健性の確保、開発者との信頼と協調の構築などがある。一方で、高品質テストセットの構築、リポジトリレベルの検出/修復、大規模デコーダ型LLMの活用、先進的なLLM活用/適応手法の探索、カスタマイズされたLLMの開発などの機会が示された。
他の言語に翻訳
原文コンテンツから
arxiv.org
深掘り質問