Core Concepts
ソフトウェアの脆弱性検出におけるChatGPTの性能を向上させるためのプロンプト設計に関する研究
Abstract
本研究は、ソフトウェアの脆弱性検出におけるChatGPTの性能を向上させるためのプロンプト設計について取り組んでいる。
主な内容は以下の通り:
基本的なプロンプトを適用し、ChatGPTの脆弱性検出能力を評価した。その結果、ChatGPTは従来の脆弱性検出手法よりも優れた性能を示すことが分かった。ただし、プロンプトに含まれるキーワードによって検出結果が偏る傾向があることも明らかになった。
APIコールシーケンスやデータフローといった補助情報をプロンプトに組み込むことで、プログラミング言語によって異なるものの、脆弱性検出精度の向上が確認できた。
チェーン・オブ・シンキングと呼ばれる多段階のプロンプト設計を行ったところ、C/C++プログラムの脆弱性検出では精度向上が見られたが、Javaプログラムでは精度が低下した。プロンプトの構成順序が検出精度に影響することが示唆された。
脆弱性の種類ごとの検出精度を分析したところ、ChatGPTの性能にはばらつきがあることが明らかになった。
本研究の成果は、ソフトウェアの脆弱性検出におけるChatGPTの活用を促進し、プロンプト設計の指針を提供するものと期待される。
Stats
脆弱性のある関数の検出数は1,091件/1,171件(Java)、1,007件/1,015件(C/C++)である。
脆弱性のない関数の検出数は352件/917件(Java)、6件/922件(C/C++)である。