Automated Mapping of Vulnerability Advisories onto their Fix Commits in Open Source Repositories

要約

タイトル:オープンソースリポジトリ内の脆弱性アドバイザリーを修正コミットに自動マッピングする方法

要約:脆弱性に関する包括的で正確なデータソースの欠如は、ソフトウェア脆弱性(およびその修正)の研究と理解にとって重大な障害となっています。本論文では、実践的な経験から派生したヒューリスティックと機械学習(ML)-特に自然言語処理(NLP)-を組み合わせて、この問題に対処するアプローチを示します。本研究では、アドバイザリーから脆弱性に関する主要な情報が抽出されます。そして、ヒューリスティックを使って、関連プロジェクトのソースコードリポジトリから無関係なコミットをフィルタリングすることで、候補となる修正コミットのサブセットを取得します。最後に、各候補コミットに対して、該当のアドバイザリーに一致すると予測されるコミットの特徴を反映する数値的特徴ベクトルを構築します。これらの特徴ベクトルは、最終的に候補修正コミットのランキングリストを作成するために利用されます。MLモデルによって各特徴に割り当てられたスコアは、ユーザーが予測を解釈できるように可視化されています。

– 脆弱性に関する包括的で正確なデータソースの欠如が、ソフトウェア脆弱性(およびその修正)の研究と理解にとって重大な障害となっている
– 提案手法は、アドバイザリーから脆弱性に関する主要な情報を抽出し、関連プロジェクトのソースコードリポジトリから無関係なコミットをフィルタリングすることで、候補となる修正コミットのサブセットを取得する
– 各候補コミットに対して特徴ベクトルを構築し、これらの特徴ベクトルを利用して候補修正コミットのランキングリストを作成する
– MLモデルによって各特徴に割り当てられたスコアは、ユーザーが予測を解釈できるように可視化されている
– 実験では、FixFinderというプロトタイプ実装を用いて、1,248の公開脆弱性アドバイザリーに対応する2,391の既知の修正コミットを含む手動のカスタムデータ・セットを用いて評価された。上位10位を考慮すると、修正コミットが特定できた脆弱性の割合は最大で84.03%であり、最初の修正コミットを特定できた脆弱性の割合は65.06%であった。
– 本手法により、既知の脆弱性を修正するためのOSSリポジトリの検索に必要な労力が大幅に削減される。

要約(オリジナル)

The lack of comprehensive sources of accurate vulnerability data represents a critical obstacle to studying and understanding software vulnerabilities (and their corrections). In this paper, we present an approach that combines heuristics stemming from practical experience and machine-learning (ML) – specifically, natural language processing (NLP) – to address this problem. Our method consists of three phases. First, an advisory record containing key information about a vulnerability is extracted from an advisory (expressed in natural language). Second, using heuristics, a subset of candidate fix commits is obtained from the source code repository of the affected project by filtering out commits that are known to be irrelevant for the task at hand. Finally, for each such candidate commit, our method builds a numerical feature vector reflecting the characteristics of the commit that are relevant to predicting its match with the advisory at hand. The feature vectors are then exploited for building a final ranked list of candidate fixing commits. The score attributed by the ML model to each feature is kept visible to the users, allowing them to interpret the predictions. We evaluated our approach using a prototype implementation named FixFinder on a manually curated data set that comprises 2,391 known fix commits corresponding to 1,248 public vulnerability advisories. When considering the top-10 commits in the ranked results, our implementation could successfully identify at least one fix commit for up to 84.03% of the vulnerabilities (with a fix commit on the first position for 65.06% of the vulnerabilities). In conclusion, our method reduces considerably the effort needed to search OSS repositories for the commits that fix known vulnerabilities.

arxiv情報

著者 Daan Hommersom,Antonino Sabetta,Bonaventura Coppola,Dario Di Nucci,Damian A. Tamburri
発行日 2023-05-10 06:47:20+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, OpenAI

カテゴリー: cs.CR, cs.LG, cs.SE パーマリンク