Skip to main content
QUICK REVIEW

[論文レビュー] Learning To Predict Vulnerabilities From Vulnerability-Fixes: A Machine Translation Approach

Aayush Garg, Renzo Degiovanni|arXiv (Cornell University)|Dec 21, 2020
Software Engineering Research参考文献 38被引用数 5
ひとこと要約

本論文では、過去の脆弱性修正とそのコードコンテキストを活用して、手動での特徴工学を伴わずに潜在的特徴を自動抽出する、機械翻訳にインspiredされたエンコーダ・デコーダモデルを提案する。Linux Kernel、OpenSSL、Wiresharkで評価した結果、現実的な学習設定において、最先端の手法よりも4.7倍高いマチュー相関係数(MCC)を達成した。

ABSTRACT

Vulnerability prediction refers to the problem of identifying the system components that are most likely to be vulnerable based on the information gained from historical data. Typically, vulnerability prediction is performed using manually identified features that are potentially linked with vulnerable code. Unfortunately, recent studies have shown that existing approaches are ineffective when evaluated in realistic settings due to some unavoidable noise included in the historical data. To deal with this issue, we develop a prediction method using the encoder-decoder framework of machine translation that automatically learns the latent features (context, patterns, etc.) of code that are linked with vulnerabilities. The key idea of our approach is to learn from things we know, the past vulnerability fixes and their context. We evaluate our approach by comparing it with existing techniques on available releases of the three security-critical open source systems (Linux Kernel, OpenSSL, and Wireshark) with historical vulnerabilities that have been reported in the National Vulnerability Database (NVD). Our evaluation demonstrates that the prediction capability of our approach significantly outperforms the state-of-the-art vulnerability prediction techniques (Software Metrics, Imports, Function Calls, and Text Mining) in both recall and precision values (yielding 4.7 times higher MCC values) under realistic training setting.

研究の動機と目的

  • 手動で設計された特徴に依存し、過去のデータのノイズに敏感である既存の脆弱性予測手法の限界を解消すること。
  • 過去のデータに避けがたいノイズが含まれる現実的な設定において、予測性能を向上させること。
  • 過去の脆弱性修正とその周囲のコードコンテキストから、潜在的なパターンを学習する自動化された手法を開発すること。
  • ソフトウェアメトリクス、インポート、関数呼び出し、テキストマイニングといった最先端の手法と比較して、精度と再現率の両面で優れるようにすること。

提案手法

  • 本手法は、機械翻訳におけるシーケンス・ツー・シーケンスモデルをインspiredしたエンコーダ・デコーダ型ニューラルネットワークアーキテクチャを採用する。
  • エンコーダは脆弱性修正のコンテキスト(例:周囲のコード変更)を処理し、文脈的な表現を生成する。
  • デコーラは、与えられたコードコンポonentが脆弱であるかどうかの予測を生成し、脆弱性予測をシーケンス生成タスクとして扱う。
  • モデルはバージョン管理システムとNVDレコードから抽出した過去の脆弱性-修正ペアを、エンド・ツー・エンドで学習する。
  • コードのパターンや脆弱性に関連する構造的変更から、複雑な潜在的特徴を自動で学習する。
  • フレームワークは、ノイズが混入した過去のデータを想定した現実的な学習条件で評価されている。

実験結果

リサーチクエスチョン

  • RQ1機械翻訳にインspiredしたモデルは、現実的でノイズが混在した学習環境において、従来の脆弱性予測手法を上回ることができるか?
  • RQ2過去の脆弱性修正から学習することで、手動で設計された特徴と比較して、予測精度をどの程度向上させられるか?
  • RQ3提案手法は、最先端の手法と比較して、精度、再現率、MCCの観点でどの程度の性能を示すか?
  • RQ4本モデルは、Linux Kernel、OpenSSL、Wiresharkのような多様でセキュリティが重要なオープンソースシステムの間で一般化できるか?

主な発見

  • 提案手法は、現実的な学習設定において、既存の最先端手法よりも4.7倍高いマチュー相関係数(MCC)を達成した。
  • モデルは、Linux Kernel、OpenSSL、Wiresharkの3つのすべてのシステムにおいて、精度と再現率の両面で優れた性能を示した。
  • 手動で設計された特徴への依存を顕著に低減し、コード内の潜在的脆弱性パターンの自動発見を可能にした。
  • エンコーダ・デコーダフレームワークは、脆弱性に関連するコード変更の文脈的・構造的パターンを効果的に捉えた。
  • ノイズが混入した過去のデータで学習しても、本モデルは特徴ベースのベースラインを上回る高い性能を維持した。

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

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

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

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