VulStyle:コードスタイロメトリを補助信号に用いるマルチモーダル事前学習による脆弱性検出

arXiv cs.LG / 2026/4/30

💬 オピニオンIdeas & Deep AnalysisModels & Research

要点

  • VulStyleは、関数レベルのソースコード、選択した非終端AST構造、コードスタイロメトリ(CStyle)特徴量を組み合わせるマルチモーダル脆弱性検出モデルです。
  • 非終端ASTノードのみを用いることで構造のオーバーヘッドを抑えつつ、意味階層を保ったまま脆弱性検出に活用します。
  • VulStyleは7つのプログラミング言語の4.9M関数でマスク付き言語モデリングにより事前学習し、その後5つの脆弱性ベンチマークで微調整します。
  • 実験ではBigVulおよびVulDeePeckerで最先端の結果が示され、強力なトランスフォーマーベースラインに対してF1が4〜48%改善したと報告されています。
  • CStyleとAST構造の寄与を切り分けるアブレーション、誤り分析、攻撃者を現実的に想定した脅威モデルも含まれています。

要旨: 私たちは、関数レベルのソースコード、非終端 Abstract Syntax Tree(AST)構造、コードスタイルメトリ(CStyle)特徴を共同でエンコードするマルチモーダルなソフトウェア脆弱性検出モデルであるVulStyleを提案します。従来研究では、コード表現にトークンレベルのモデルや完全なASTツリーを主に用いてきましたが、危険なプログラミング慣行を示すスタイル上の手掛かりを見落としがちであるか、あるいは高い構造的オーバーヘッドを招くことが多いという課題があります。本手法では、意味的な階層を保ちながら入力複雑度を下げるために非終端ASTノードのみを選択し、補助的な脆弱性シグナルとして統語的および語彙的なCStyle特徴を統合します。
VulStyleは、7つのプログラミング言語にまたがる490万件の関数に対してマスク付き言語モデリングにより事前学習され、5つのベンチマークデータセット(Devign、BigVul、DiverseVul、REVEAL、VulDeePecker)にわたって微調整されます。VulStyleはBigVulおよびVulDeePeckerにおいて最先端の性能を達成し、強力なトランスフォーマー基準モデルに対してF1を4〜48%向上させ、さらにすべてのベンチマークにおいて競争的、または最良の平均性能を実現します。私たちは、CStyleとAST構造の効果を切り分けるアブレーション研究、エラー事例の分析、攻撃者が現実的な状況で検出タスクに直面する脅威モデルの提示、これらを貢献します。

VulStyle:コードスタイロメトリを補助信号に用いるマルチモーダル事前学習による脆弱性検出 | AI Navigate