Skip to main content
QUICK REVIEW

[論文レビュー] On the Use of Fine-grained Vulnerable Code Statements for Software Vulnerability Assessment Models

Triet Huynh Minh Le, M. Ali Babar|arXiv (Cornell University)|Mar 16, 2022
Software Engineering Research被引用数 4
ひとこと要約

本稿では、微細な脆弱性コード文とその周囲の文脈を用いて、関数レベルでのソフトウェア脆弱性(SV)深刻度を評価する機械学習的手法を提案する。脆弱性のある文はサイズが5.8倍小さいにもかかわらず、非脆弱性の文よりも7.5–114.5%高いマチウズ相関係数(MCC)を示し、文脈統合により性能が向上し、MCC 0.64、F1スコア 0.75に達する。これは、事前修正におけるSV評価の強力なベースラインを確立する。

ABSTRACT

Many studies have developed Machine Learning (ML) approaches to detect Software Vulnerabilities (SVs) in functions and fine-grained code statements that cause such SVs. However, there is little work on leveraging such detection outputs for data-driven SV assessment to give information about exploitability, impact, and severity of SVs. The information is important to understand SVs and prioritize their fixing. Using large-scale data from 1,782 functions of 429 SVs in 200 real-world projects, we investigate ML models for automating function-level SV assessment tasks, i.e., predicting seven Common Vulnerability Scoring System (CVSS) metrics. We particularly study the value and use of vulnerable statements as inputs for developing the assessment models because SVs in functions are originated in these statements. We show that vulnerable statements are 5.8 times smaller in size, yet exhibit 7.5-114.5% stronger assessment performance (Matthews Correlation Coefficient (MCC)) than non-vulnerable statements. Incorporating context of vulnerable statements further increases the performance by up to 8.9% (0.64 MCC and 0.75 F1-Score). Overall, we provide the initial yet promising ML-based baselines for function-level SV assessment, paving the way for further research in this direction.

研究の動機と目的

  • NVDレポートにおけるCVSSメトリクスの公開遅延(脆弱性修正後平均146日)を是正すること。
  • 微細な脆弱性コード文とその文脈が、関数レベルでのソフトウェア脆弱性(SV)評価を改善できるかを調査すること。
  • コードから直接7つのCVSSメトリクス(例:アクセスベクトル、深刻度)を予測するデータ駆動型モデルを開発し、修正の優先順位付けを早期に可能とすること。
  • 脆弱性のあるコード行とそうでないコード行の間で、SV評価メトリクスの予測効果を相対的に評価すること。
  • 実世界の多様なJavaプロジェクトを用いた関数レベルSV評価の強力で再利用可能なベースラインを確立すること。

提案手法

  • 本研究では、200のJavaプロジェクトから抽出した429件の実世界の脆弱性における1,782個の関数を対象とする。
  • 脆弱性のある文は、既存の微細なSV検出手法を用いて特定され、その周囲のコード文脈が保持される。
  • さまざまな特徴抽出手法(例:コード埋め込み、構文的特徴)が、脆弱性のある文と非脆弱性の行に適用される。
  • 複数の機械学習分類器(例:ランダムフォレスト、XGBoost)を用いて、7つのCVSSメトリクス(アクセスベクトル、アクセス複雑度、認証、機密性、完全性、可用性、深刻度)を予測する。
  • 性能評価にはマチウズ相関係数(MCC)とF1スコアが用いられ、統計的有意性はウィルコクソン符号順位検定で検証される。
  • モデルは脆弱性のある文と関数内の他の全行を統合して、文脈の影響が予測性能に与える影響を評価する。
Figure 2 . Methodology used to answer the research questions. Note: The vulnerable function is the one described in Fig. 1 .
Figure 2 . Methodology used to answer the research questions. Note: The vulnerable function is the one described in Fig. 1 .

実験結果

リサーチクエスチョン

  • RQ1微細な脆弱性のある文は、非脆弱性の文と比較して、ソフトウェア脆弱性のCVSSメトリクス予測にどの程度有効であるか。
  • RQ2脆弱性のある文の周囲のコード文脈を組み込むことで、関数レベルの脆弱性評価モデルの性能はどの程度向上するか。
  • RQ3コードレベルの入力を用いてトレーニングされた機械学習モデルは、脆弱性レポートが公開される前でも、CVSSメトリクスの予測において高い性能を達成できるか。
  • RQ4脆弱性のある文のサイズは非脆弱性の行と比較してどの程度小さく、そのサイズが予測能に影響を与えるか。
  • RQ5提案されたモデルの一般化能力は、多様な実世界のソフトウェアプロジェクトにわたってどの程度成立するか。

主な発見

  • 脆弱性のある文は、非脆弱性の文よりも5.8倍小さいサイズ(コード行数)であるが、CVSSメトリクスの予測において7.5–114.5%高いマチウズ相関係数(MCC)を達成する。
  • 脆弱性のある文の周囲の文脈統合により、モデル性能が最大8.9%向上し、ピークMCCは0.64、F1スコアは0.75に達する。
  • 脆弱性のある文単体でも、非脆弱性の文よりもMCCで7.4–114.5%、F1スコアで5.5–43.6%高い性能を示し、その高い予測的関連性が裏付けられる。
  • 研究結果はp値 < 0.01で統計的に有意であり、効果量も無視できないほど大きく、複数のメトリクスにわたって堅牢性が確認される。
  • 提案されたモデルは、多様な分野や規模の実世界Javaプロジェクトを用いた学習でも強く性能を発揮しており、実用的応用可能性が示唆される。
  • データセットとトレーニング済みモデルは公開されており、他のプログラミング言語や応用分野への再利用・拡張を支援する。
Figure 3 . Class distributions of the seven CVSS metrics.
Figure 3 . Class distributions of the seven CVSS metrics.

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。