アーカイブ / AI Agent
関数単位の脆弱性ラベルから、修正候補の文を絞り込む
WAVES
WAVESの原論文から掲載した図です。細部はクリックして拡大できます。
原論文の図の説明を読む
Figure 2. An illustrative example of code encoder design
概要
- 関数に付いた脆弱性ラベルから文の仮ラベルを作り、文ごとの調査順位を学習する。
- 文内の目立つ語と文全体の情報を別々に集約し、予測を合わせる。
- 著者は関数検出が既存法と同程度で、文の位置特定が改善したと述べるが、確認できた範囲に改善幅の数値はない。
補足:編集した模式図で仕組みを確認する
VISUAL EXPLAINER
図でつかむ、WAVESの仕組み
- 01関数コードと関数ラベル
- 02文ごとの特徴化
- 03仮ラベルで学習
- 04疑わしい文の順位
原論文の説明をもとにした模式図です。処理の細部は省略しています。
研究の背景
脆弱な関数を特定できても、修正担当者には関数内のどの文が問題かを探す作業が残る。長い関数ほど確認するコードが増え、検出結果を実際の修正につなげにくい。
文ごとに正解ラベルを付けるには、脆弱性を理解する専門家の手間がかかる。WAVESは既にある関数単位のラベルを利用して、文単位の位置特定まで行う。
手法
入力した関数を細かな語に分け、Transformerという前後の語の関係を読むモデルで各語を数値の特徴に変える。同じ文の語をまとめる際には、特徴の最大値を取る方法と平均を取る方法を併用する。たとえば短い整数型への代入を含む文では、型を示す語と計算式全体の双方を判断材料にできる。
複数インスタンス学習とは、集合全体の正解だけから中の要素を学ぶ方法で、ここでは関数が集合、各文が要素に当たる。脆弱な関数では予測スコア上位k件の文へ正の仮ラベルを付け、脆弱でない関数では文を負と扱って学習する。利用時は文のスコアを出し、少なくとも一文が危険なら関数も危険と判定する。
新規性
WAVESが狙う進歩は、関数全体に付いた脆弱性ラベルだけで学習し、関数内の文ごとの疑わしさも出すことにある。著者は、この課題に複数インスタンス学習を適用した点を主要な貢献としている。
各文の表現には、目立つ一部の語を拾う集約と、文全体の情報を平均する集約を併用する。学習時にも文の順位を使うため、修正箇所の絞り込みを予測の中心に置いている。
従来手法との違い
従来の関数単位の検出では「この関数が危険」という結果の後に、開発者が該当する文を探す必要がある。学習後の注意スコアなどを説明として使う方法も、著者らによれば位置特定を学習目標にしていない。
文単位で教師あり学習する方法には、専門家による文ごとの正解付けが要る。WAVESは関数の正解ラベルから仮の文ラベルを作り、文の順位と関数全体の判定をともに出す。
実験結果
著者は関数単位の検出と文単位の位置特定を評価対象とし、本文でFFMPeg+Qemu、Reveal、Fanらのデータセット、CVEfixesの四つを挙げている。前二者には関数単位のラベルしかないため、文単位の評価条件はデータセットごとに異なる。
表にあるFanらの試験分割は脆弱な関数626件と非脆弱な関数17,774件、CVEfixesはそれぞれ588件と960件である。要旨は、既存法と比べ関数検出は同程度、文の位置特定は上回ったと述べる。確認できた本文の範囲では結果表と指標の数値はなく、改善幅は示せない。
応用の可能性
編集上の応用案 · 論文が実証した用途とは区別しています。
編集上の応用案:開発チームが脆弱性の疑いがあるC/C++関数を調べる際、関数のコードをWAVES型の仕組みに入力する。出力は関数の判定と、危険度の高い文の順位である。
担当者は上位の文から周辺のデータの流れを読み、必要ならテストや既存の静的解析結果と照合して修正する。順位は調査の着手点として使い、文を単独で脆弱と断定する扱いは避ける。
応用先の候補からNauhに相談できます。
導入時の検証
導入時の検証案 · 対象データでの再評価が必要です。
導入時の検証案:既知の修正履歴がある関数を少量集め、関数単位の正解と、確認できる範囲の修正文を整理する。まず既存の関数単位検出結果を基準に、WAVES型の順位付けを加えたとき調査対象の文がどれだけ絞られるか比べる。
修正文が上位k件に入る割合、誤警報が出た関数の数、担当者が原因箇所へ到達する時間を測る。仮ラベルの誤りを見込んで、順位の低い文にも実際の欠陥がないか一部を人手で確認する。
限界と課題
著者は、正解のない文へ付ける仮ラベルが学習初期には不正確だと説明する。また、文に脆弱性があるかを絶対的に判定する方式より、スコア順に候補を示す方式を勧めている。
編集上の確認事項は、実際のコードベースでの見逃しと誤警報、関数が長い場合の順位の安定性、調査時間の短縮幅である。確認できた本文の範囲では結果表まで到達していないため、改善率や最良順位の数値は判断できない。
出典
元のタイトル・要旨を確認する(英語)
Weakly Supervised Vulnerability Localization via Multiple Instance Learning
Software vulnerability detection has emerged as a significant concern in the field of software security recently, capturing the attention of numerous researchers and developers. Most previous approaches focus on coarse-grained vulnerability detection, such as at the function or file level. However, the developers would still encounter the challenge of manually inspecting a large volume of code inside the vulnerable function to identify the specific vulnerable statements for modification, indicating the importance of vulnerability localization. Training the model for vulnerability localization usually requires ground-truth labels at the statement-level, and labeling vulnerable statements demands expert knowledge, which incurs high costs. Hence, the demand for an approach that eliminates the need for additional labeling at the statement-level is on the rise. To tackle this problem, we propose a novel approach called WAVES for WeAkly supervised Vulnerability Localization via multiplE inStance learning, which does not need the additional statement-level labels during the training. WAVES has the capability to determine whether a function is vulnerable (i.e., vulnerability detection) and pinpoint the vulnerable statements (i.e., vulnerability localization). Specifically, inspired by the concept of multiple instance learning, WAVES converts the ground-truth label at the function-level into pseudo labels for individual statements, eliminating the need for additional statement-level labeling. These pseudo labels are utilized to train the classifiers for the function-level representation vectors. Extensive experimentation on three popular benchmark datasets demonstrates that, in comparison to previous baselines, our approach achieves comparable performance in vulnerability detection and state-of-the-art performance in statement-level vulnerability localization.
論文本体の取得範囲に基づく解説。AIが作成した未校閲の記事です。性能の数値は著者の評価条件に依存します。応用例と検証計画は編集上の提案です。解説更新:2026-09-29




