本論文は、ソフトウェア脆弱性検出の評価において、従来の関数レベルの評価では不十分であり、リポジトリレベルでの評価が必要であることを示している。具体的には以下の3つの課題に取り組んでいる:
関数レベルの脆弱性検出: 与えられたコードスニペットが脆弱性を含むかどうかを予測する。
脆弱性関連の依存関係の予測: コードスニペットと関連する依存関係を特定し、開発者に脆弱性の説明を提供する。
リポジトリレベルの脆弱性検出: 2つ目のタスクで特定した依存関係を活用し、関数間の脆弱性を検出する。
作者らは大規模なデータセットを収集し、プログラム解析、教師あり学習、fine-tuning、プロンプトベースの19の手法を評価した。その結果、リポジトリレベルの脆弱性検出手法が関数レベルの手法よりも優れていることを示した。また、時系列でデータを分割した場合、プログラム解析やプロンプトベースの手法は性能が変わらないが、教師あり学習やfine-tuningベースの手法は性能が低下することが分かった。さらに、依存関係の特定においては、語彙ベースの手法が意味ベースの手法よりも優れていることが明らかになった。
To Another Language
from source content
arxiv.org
Key Insights Distilled From
by Xin-Cheng We... at arxiv.org 04-25-2024
https://arxiv.org/pdf/2404.15596.pdfDeeper Inquiries