核心概念
大規模言語モデルを用いて、自動的に発見された脆弱性の正確な位置を特定することができる。
摘要
本研究は、大規模言語モデル(LLM)を用いた自動脆弱性位置特定(AVL)の包括的な調査を行っている。10種類以上の主要なLLMを検討し、エンコーダ専用、エンコーダ・デコーダ、デコーダ専用の3つのアーキテクチャタイプを対象とした。4つの異なるアプローチ(ゼロショット学習、ワンショット学習、識別ファインチューニング、生成ファインチューニング)を探索した。
評価フレームワークはC/C++用のBigVul、およびスマートコントラクトの脆弱性を含む追加データセットに適用された。結果は以下の通り:
- 識別ファインチューニングにより、既存の学習ベースの手法を大幅に上回るパフォーマンスが得られた。
- 入力長の制限や単方向コンテキストなどの課題が明らかになり、スライディングウィンドウや右方向埋め込みの2つの改善策を提案した。
- CWEや異なるプロジェクト間での一般化能力が示され、実用化への有望な道筋が見出された。
- 一方で、特定の脆弱性タイプや新しい脆弱性パターンの認識には課題があり、さらなる改善の必要性が示された。
統計資料
脆弱性のある関数には777,155行のコードが含まれ、そのうち56,215行が脆弱性箇所である。
スマートコントラクトデータセットには29,688行のコードが含まれ、4,183行が脆弱性箇所である。
引述
"識別ファインチューニングにより、既存の学習ベースの手法を大幅に上回るパフォーマンスが得られた。"
"入力長の制限や単方向コンテキストなどの課題が明らかになり、スライディングウィンドウや右方向埋め込みの2つの改善策を提案した。"
"CWEや異なるプロジェクト間での一般化能力が示され、実用化への有望な道筋が見出された。"