レポートのタイトルとノイズの多いデータに基づいてセキュリティ バグ レポートを特定する
Mayana Pereira | Scott Christiansen |
---|---|
CELA データ サイエンス | 顧客セキュリティおよび信頼 |
Microsoft | Microsoft |
"要約" - セキュリティ バグ レポート (SBR)の特定は、ソフトウェア開発ライフサイクルにおいて不可欠なステップです。 教師あり機械学習ベースのアプローチでは、通常、バグ レポート全体をトレーニングに利用できること、またラベルがノイズ フリーであることが前提となっています。 私たちの知る限り、この調査は、タイトルだけが利用可能であり、ラベル ノイズが含まれる場合でも、SBR に対して正確なラベル予測が可能であることを示すための最初の調査です。
"インデックスの用語" - 機械学習、間違ったラベル付け、ノイズ、セキュリティ バグ レポート、バグ リポジトリ
I. 概要
ソフトウェア開発チームは、報告されたバグの中でセキュリティ関連の問題を急いで識別する必要があります。このような問題は、コンプライアンス要件を満たしたり、ソフトウェアと顧客データの整合性を確保したりするために、より迅速な解決が求められるからです。
機械学習および人工知能ツールを使用すると、確かにソフトウェア開発が迅速かつアジャイルで、しかも正確になります。 何人かの研究者が、セキュリティ バグを特定するという問題に機械学習を応用しています [2]、[7]、[8]、[18]。これまでに公表されている研究では、機械学習モデルのトレーニングとスコア付けにバグ レポート全体を利用できることが前提になっていました。 しかし、実際は必ずしもそうとは限りません。 バグ レポートの一部が利用できない状況があります。 たとえば、バグ レポートには、パスワードや PII (個人を特定できる情報) などの機密データが含まれている場合があります。これがまさに、現在 Microsoft が直面している事態なのです。 したがって、バグ レポートのタイトルしか利用できない場合など、使用できる情報が少ない場合でも適切にセキュリティ バグを識別できる方法を確立することが重要になってきます。
さらに、バグ リポジトリには、多くの場合、間違ってラベル付けされたエントリが含まれています [7]。セキュリティ以外のバグ レポートがセキュリティ関連として分類されていたり、その逆のケースもあります。 間違ったラベル付けが発生する理由はいくつもあり、開発チームにセキュリティの専門知識が不足しているといった場合から、特定の問題にあいまいさが伴っている (たとえば、セキュリティ以外のバグを悪用して間接的にセキュリティ上の問題が引き起こされることがあります) といった場合に至るまでさまざまです。 SBRのラベル付けが間違っていると、セキュリティの専門家はコストと時間のかかる労力を払ってバグ データベースを手動で確認する必要があるため、これは深刻な問題につながります。 ノイズがさまざまな分類子にどのような影響を与えるか、また堅牢 (または脆弱) な各種機械学習手法が、さまざまな種類のノイズで汚染されたデータ セットにどのように対処しているかを理解することは、ソフトウェア エンジニアリングの実践に自動分類を取り入れる際に取り組まなければならない問題です。
予備的な研究では、バグ リポジトリには本来的にノイズが含まれていること、また、そのノイズが機械学習分類子のパフォーマンスに悪影響を与える可能性があるという主張はなされています [7]。 しかし、セキュリティ バグ レポート (SBR)の識別という問題に関連して、さまざまなレベルと種類のノイズが、さまざまな教師あり機械学習アルゴリズムのパフォーマンスにどのように影響するかということについての体系的かつ定量的な研究はまだありません。
本研究では、トレーニングとスコアリングにタイトルだけしか使用できない場合でも、バグ レポートの分類が可能であることを示します。 知る限り、これは上記の内容を確認しようとする初めての研究です。 また、これはバグ レポートを分類する際のノイズの影響に関する初めての体系的研究でもあります。 クラスに依存しないノイズに対する3つの機械学習手法 (ロジスティック回帰、単純ベイズ、AdaBoost)の堅牢性について比較研究を行います。
いくつかの単純な分類子について、ノイズの一般的影響を捉える分析モデルが複数ありますが [5]、[6]、これらの結果では、精度に対するノイズの影響に関して厳密な範囲が指定されておらず、また、その有効性は特定の機械学習手法に限定されます。 機械学習モデルにおけるノイズの影響を正確に分析する際は、通常、計算実験が行われます。 このような分析が、ソフトウェア測定データ [4] から衛星画像分類 [13] や医療データ [12] に至るまで、さまざまなシナリオについて行われています。 ただし、これらの分析はデータ セットの性質や基盤となる分類の問題に強く依存しているため、私たちが対象としている固有の問題をこれらの結果によって説明することはできません。 確認できる限りでは、特にセキュリティ バグ レポートの分類に対する、ノイズの多いデータ セットの影響という問題に関しては、公表されている結果はこれまでありません。
本研究の貢献内容:
レポートのタイトルのみに基づいて、セキュリティ バグ レポート (SBR)を識別する分類器をトレーニングします。 私たちの知る限り、本研究はこれを実施した初めてのものです。 これまでの研究では、完全なバグ レポートが使用されるか、追加の補足機能を使用してバグ レポートが強化されていました。 タイトルのみに基づくバグの分類は、プライバシー上の懸念があるのために完全なバグ レポートを利用できないシナリオに特に関連性があります。 たとえば、パスワードやその他の機密データが含まれたバグ レポートがこれに該当します。
また、本研究は、SBRの自動分類に使用されるさまざまな機械学習モデルと手法におけるラベルのノイズトレランスに関する最初の体系的研究でもあります。 クラスに依存するノイズとクラスに依存しないノイズに対する3つの異なる機械学習手法 (ロジスティック回帰、単純ベイズ、AdaBoost)の堅牢性について比較研究を行います。
論文の再メインは次のように示されています: セクションIIでは、文献の前の作品のいくつかを紹介します。 セクション III では、データ セットと、データの事前処理方法について説明します。 セクション IV では手順について、セクション V では実験の分析結果について説明します。最後にセクション VI では、結論と今後の研究について説明します。
II. これまでの研究
バグ リポジトリへの機械学習の応用。
ほんの数例挙げるだけでも、セキュリティ バグの検出 [2]、[7]、[8]、[18]、バグの重複識別 [3]、バグのトリアージ [1]、[11] など、面倒なタスクを自動化しようとする試みの中で、テキスト マイニング、自然言語処理、および機械学習をバグ リポジトリに応用する研究に関するさまざまな文献が存在します。 理想的には、機械学習 (ML) と自然言語処理の組み合わせによって、バグ データベースの選別に必要な手動の作業が減り、これらのタスクを遂行するために必要な時間が短縮され、結果の信頼性が向上する可能性があります。
[7]の筆者たちは、バグの説明に基づいて SBRの分類を自動化する自然言語モデルを提案しています。 筆者たちは、トレーニング データ セット内のすべてのバグ説明からボキャブラリを抽出し、関連ワード、ストップ ワード (分類に無関係と思われる一般的な単語)、およびシノニムという3つのワード リストに手動で選別しました。 セキュリティ エンジニアによって評価されたデータのみでトレーニングされたセキュリティ バグ分類子のパフォーマンスと、一般のバグ報告者によってラベル付けされたデータでトレーニングされた分類子のパフォーマンスを比較しました。 セキュリティ エンジニアによってレビューを受けたデータでトレーニングを行った場合、モデルの効率は明らかに向上しますが、提案されたモデルは手動で生成されたボキャブラリに基づいているため、人力による選別に依存することになります。 さらに、さまざまなレベルのノイズがモデルにどの程度影響を与えるか、さまざまな分類子がノイズにどのように反応するか、また、クラスが異なるとノイズがパフォーマンスに与える影響も異なるかどうかといったことは分析されていません。
Zouら[18] は、バグ レポートに含まれる複数の種類の情報を利用しました。これらの情報には、バグ レポートのテキスト以外のフィールド (時間、重要度、優先度などのメタ特徴) とバグ レポートのテキスト コンテンツ (テキストの特徴、すなわち概要フィールドのテキスト) が含まれます。 これらの特徴に基づき、自然言語処理と機械学習の手法を使用して SBRを自動的に識別するためのモデルが構築されました。 [8]の筆者たちは、同様の分析を実行しますが、さらに、教師ありと教師なしの機械学習手法のパフォーマンスを比較し、モデルをトレーニングするために必要なデータ量を調べました。
[2]の筆者たちも、さまざまな機械学習手法を調査し、レポートの説明に基づいて SBRまたはNSBR (セキュリティ以外のバグ レポート) としてバグを分類しています。 これらは、TF-IDF に基づくデータ処理とモデル トレーニングのためのパイプラインを提案しています。 彼らは、提案したパイプラインと、Bag-of-Words および単純ベイズに基づくモデルを比較しました。 Wijayasekara ら [16] は、テキスト マイニングの手法を使用して、頻出単語に基づいて各バグ レポートの特徴ベクトルを生成し、隠れた影響を持つバグ (HIB)を識別しています。 Yang ら [17] は、用語の頻度 (TF) と単純ベイズを使用して、影響の大きいバグ レポート (SBR など)を識別することを主張しました。 [9]の筆者たちは、バグの重大度を予測するモデルを提案しています。
ラベル ノイズ
ラベル ノイズを含むデータ セットを処理する際の問題については、広範な研究が行われています。 Frenay と Verleysen は [6] において、ノイズが含まれるさまざまな種類のラベルを識別するために、ラベル ノイズの分類法を提案しています。 筆者たちは、次の3種類のノイズを提案しています。すなわち、true クラスとインスタンスの特徴量の値に関係なく発生するラベル ノイズ、true ラベルにのみ依存するラベル ノイズ、および間違ったラベル付けの確率も特徴量の値に依存するラベル ノイズです。 私たちの研究では、最初の2種類のノイズを調査します。 理論的な観点から言えば、ラベル ノイズは、特定の場合 [14]を除き、通常はモデルのパフォーマンスを低下させます [10]。 一般に、堅牢なメソッドは、ラベル ノイズを処理する際にオーバーフィットの回避策を使用しています [15]。 分類におけるノイズの影響に関する研究は、衛星画像の分類 [13]、ソフトウェア品質の分類 [4]、内科領域の分類 [12] など、これまで多くの分野で行われています。 SBRの分類の問題については、ノイズを含むラベルの影響に関する緻密な定量化を扱った研究は、私たちの知る限りまだ発表されていません。 このシナリオでは、ノイズ レベル、ノイズの種類、およびパフォーマンス低下の間の正確な関係性がまだ確立されていません。 さらに、ノイズが存在するときに分類子がどのように動作するかを理解することは価値があります。 一般に、ソフトウェア バグ レポートのコンテキストにおいて、ノイズの多いデータ セットがさまざまな機械学習アルゴリズムのパフォーマンスに及ぼす影響を体系的に調べた研究が存在するかどうかは不明です。
III. データ セットの説明
使用したデータ セットは 1、073、149のバグタイトルで構成され、そのうち 552、073 が SBR に対応し、521、076 が NSBR に対応します。 このデータは、2015年、2016年、2017年、および 2018年に Microsoftのさまざまなチームから収集されました。 すべてのラベルは、シグネチャベースのバグ検証システムによって取得されたか、または人力でラベル付けされたものです。 データ セット内のバグ タイトルは、問題の概要を示す、10 語程度の非常に短いテキストです。
A. データの前処理では、各バグ タイトルを空白スペースごとに解析し、トークンの一覧を生成しました。 トークンの各一覧は、次のように処理されます。
ファイル パスを表すトークンはすべて削除しました
次の記号が存在するトークンは分割しました: { 、(、)、-、}、{、[、]、}
ストップ ワード、数字のみで構成されているトークン、およびコーパス全体での出現回数が5回未満のトークンを削除しました。
IV. 方法
機械学習モデルのトレーニング プロセスは、主に次の2つのステップで構成されます。つまり、特徴ベクトルへのデータのエンコードと、教師あり機械学習分類子のトレーニングです。
A. 特徴ベクトルと機械学習の手法
1 つ目の部分では、[2] で使用されているように、単語の出現頻度 - 逆文書頻度アルゴリズム (TF-IDF)を使用して、特徴ベクトルにデータをエンコードします。 TF-IDF は、単語の出現頻度 (TF) とその逆文書頻度 (IDF) に重み付けする情報検索手法です。 各単語または用語には、それぞれの TF および IDF スコアがあります。 TF-IDF アルゴリズムでは、ドキュメントに出現する回数に基づいて、その単語に重要度が割り当てられますが、さらに重要なのは、データ セット内のタイトルのコレクション全体において、そのキーワードがどの程度の関連性を有しているかが確認される点です。 ここでは、単純ベイズ (NB)、ブースト デシジョン ツリー (AdaBoost)、ロジスティック回帰 (LR) という3つの分類手法をトレーニングし、比較しています。 これらの手法を選択したのは、文献の報告全体にわたって、これらがセキュリティ バグ レポートの識別という関連タスクで良好なパフォーマンスを示していたためです。 これらの結果は暫定的な分析において確認されました。つまり、これら3つの分類子はサポート ベクトル マシンおよびランダム フォレストのパフォーマンスを上回っていました。 この実験では、エンコードとモデルのトレーニングに scikit-learn ライブラリを使用しています。
B. ノイズの種類
この研究で調査したノイズとは、トレーニング データのクラス ラベルのノイズを指します。 このようなノイズが存在する場合、その結果として、学習プロセスおよび生成されたモデルは、間違ってラベル付けされたサンプルによって損なわれてしまいます。 ここでは、クラス情報に適用されるさまざまなノイズのレベルの影響を分析しています。 ラベル ノイズの種類については、これまで文献においてさまざまな用語を用いて議論されています。 この研究では、分類子における2つの異なるラベル ノイズの影響を分析します。1 つはクラスに依存しないラベル ノイズで、インスタンスをランダムに選択してラベルを反転することによって導入されます。もう1つはクラスに依存するノイズで、クラスごとにノイズが発生する可能性が異なります。
a) クラス非依存ノイズ: クラス非依存ノイズとは、インスタンスのtrueのクラスとは無関係に発生するノイズを指します。 この種類のノイズでは、間違ったラベルを付ける確率 pbr が、データ セット内のすべてのインスタンスで同じになります。 確率 pbrを使用してデータ セット内の各ラベルをランダムに反転することにより、クラスに依存しないノイズをデータ セットに導入します。
b) クラス依存ノイズ: クラス依存ノイズとは、インスタンスのtrueのクラスに依存するノイズを指します。 この種類のノイズでは、SBR クラスに間違ったラベルを付ける確率は psbr であり、NSBR クラスに間違ったラベルを付ける確率は pnsbr です。 確率 psbrを使用して、true ラベルが SBR であるデータ セット内の各エントリを反転させることにより、クラスに依存するノイズをデータ セットに導入します。 同様に、NSBR インスタンスのクラス ラベルを確率 pnsbrを使用して反転させます。
c) シングルクラス ノイズ: シングルクラス ノイズはクラス依存ノイズの特殊なケースであり、pnsbr = 0 および psbr> 0 です。 クラスに依存しないノイズの場合、psbr = pnsbr = pbr であることに注意してください。
C: ノイズの生成
実験では、さまざまなノイズの種類の影響と、SBR 分類子のトレーニングのレベルを調査します。 この実験では、データ セットの 25%をテスト データとして設定し、10%を検証データとして設定し、65%をトレーニング データとして設定します。
pbr、psbr、および pnsbrのさまざまなレベルについて、トレーニング データ セットと検証データ セットにノイズを追加します。 テスト データ セットには変更を加えません。 使用されるさまざまなノイズ レベルは、P = {0.05 × i|0 <i <10} です。
クラスに依存しないノイズの実験では、pbr ∈ Pの場合について、次の操作を行います。
トレーニング データ セットおよび検証データ セットにノイズを生成します。
トレーニング データ セット (ノイズあり)を使用して、ロジスティック回帰、単純ベイズ、および AdaBoost モデルをトレーニングします。* 検証データ セット (ノイズあり)を使用して、モデルをチューニングします。
テスト データ セット (ノイズなし)を使用してモデルをテストします。
クラスに依存するノイズの実験では、psbr ∈ P かつ pnsbr ∈ Pの場合について、psbr と pnsbrのすべての組み合わせに対して次の操作を行います。
トレーニング データ セットおよび検証データ セットにノイズを生成します。
トレーニング データ セット (ノイズあり)を使用して、ロジスティック回帰、単純ベイズ、および AdaBoost モデルをトレーニングします。
検証データ セット (ノイズあり)を使用して、モデルをチューニングします。
テスト データ セット (ノイズなし)を使用してモデルをテストします。
V. 実験結果
このセクションでは、セクション IV で説明されている方法に従って実施された実験の結果を分析します。
a) トレーニングデータセット内のノイズのないモデルパフォーマンス: この論文の貢献の1つは、意思決定のためのデータとしてバグのタイトルのみを使用してセキュリティバグを特定するための機械学習モデルの提案です。 これにより、機密データが存在するために開発チームがバグ レポートを全面的に共有したくない場合でも、機械学習モデルのトレーニングを行うことができるようになります。 バグのタイトルのみを使用してトレーニングを行った場合の、3 つの機械学習モデルのパフォーマンスを比較します。
最高のパフォーマンスを発揮した分類子は、ロジスティック回帰モデルです。 これは、最高の AUC 値 (0.9826)を示した分類子であり、FPR 値 0.0735 に対して再現率は 0.9353 でした。 単純ベイズ分類子のパフォーマンス (AUC 値 0.9779) はロジスティック回帰分類子よりもわずかに低く、FPR 値 0.0769 に対して再現率は 0.9189 でした。 AdaBoost 分類子は、前述の2つの分類子と比較した場合パフォーマンスが劣りました。 AUC 値 0.9143を達成し、FPR 値 0.0774 に対して再現率は 0.7018 でした。 ROC 曲線下面積 (AUC) は、TPR と FPRの関係を1 つの値に要約するため、複数のモデルのパフォーマンスを比較するための優れた指標です。 以降の分析では、比較分析をAUC 値のみに限定します。
A. クラス ノイズ: 単一クラス
すべてのバグが既定で NSBR クラスに割り当てられ、セキュリティ専門家がバグ リポジトリを確認している場合にのみ、バグが SBR クラスに割り当てられるというシナリオが考えられます。 このシナリオは単一クラスの実験設定で表され、pnsbr = 0 および 0< psbr<0.5 と仮定します。
表 II からは、3 つの分類子すべてについて、AUC への影響が非常にわずかであることが見て取れます。 psbr = 0 でトレーニングされたモデルの AUC-ROCをpsbr = 0.25のモデルの AUC-ROC と比較した場合、その差は、ロジスティック回帰で 0.003、単純ベイズで 0.006、AdaBoost で 0.006 です。 psbr = 0.50の場合の各モデルの AUC 値と、psbr = 0 でトレーニングされた各モデルの AUC 値との差は、ロジスティック回帰で 0.007、単純ベイズで 0.011、AdaBoost で 0.010 です。 単一クラス ノイズが存在している状況でトレーニングされたロジスティック回帰分類子は、AUC メトリックの変動が最も小さく、単純ベイズおよび AdaBoost 分類子と比較した場合、より堅牢な動作を示していると言えます。
B. クラス ノイズ: クラスに依存しない
クラスに依存しないノイズによってトレーニング セットが破損している場合について、3 つの分類子のパフォーマンスを比較します。 トレーニング データ内のさまざまなレベルの pbrを使用してトレーニングされたモデルごとに AUC 値を測定します。
表 IIIを見ると、実験でノイズが増分されるごとに AUC-ROC 値が減少しています。 ノイズのないデータでトレーニングしたモデルで測定された AUC-ROC と、クラスに依存しないノイズを使用してトレーニングされたモデルの AUC-ROCの差は、pbr = 0.25の場合、ロジスティック回帰で 0.011、単純ベイズで 0.008、AdaBoost で 0.0038 です。 ノイズ レベルが 40% 未満の場合、単純ベイズおよび AdaBoost 分類子では、ラベル ノイズが AUC に有意な影響を与えないことが観察されています。 一方、ロジスティック回帰分類子は、ラベル ノイズのレベルが 30%を超える場合、AUCの測定値に影響が出ています。
図 1. クラスに依存しないノイズでの AUC-ROCの変動。 ノイズ レベル pbr = 0.5の場合、分類子はランダムな分類子 (つまり、AUC ≈ 0.5) と同様に動作します。 しかし、低いノイズ レベル (pbr ≤ 0.30) では、他の2つのモデルと比較して、ロジスティック回帰学習器が優れたパフォーマンスを示していることが観測されます。 ただし、0.35 ≤ pbr ≤0.45 では、単純ベイズ学習器の方が優れた AUC-ROC メトリックを示しています。
C: クラス ノイズ: クラスに依存する
実験の最後のセットでは、異なるクラスに異なるノイズ レベルが含まれるシナリオ、つまり psbr ≠ pnsbrを検討します。 トレーニング データで p.sbr と pnsbrを個別に 0.05 ずつ系統的に増分し、3 つの分類子の動作の変化を観察しています。
表 IV (ロジスティック回帰)、表 V (単純ベイズ)、表 VI (AdaBoost) は、各クラスのさまざまなレベルでノイズが増加するにつれて、AUC がどのように変動するかを示しています。 すべての分類子について、どちらのクラスでもノイズ レベルが 30%を超えると、AUC メトリックに影響が出ることがわかります。 単純ベイズの動作が最も堅牢です。 負のクラスに含まれるノイズ ラベルが 30% 以下の場合、正のクラスのラベルの 50%を反転しても、AUC への影響は非常にわずかでした。 この場合、AUCの低下は 0.03 です。 AdaBoost は、3 つの分類子すべての中で最も堅牢な動作を示していました。 両方のクラスでノイズ レベルが 45%を超える場合にのみ、AUC に有意な変化が発生しています。 このケースでは、低下が 0.02 より大きくなったら AUCの観察を開始しました。
D. 元のデータ セットの残余ノイズの存在について
このデータ セットは、シグネチャベースの自動化システムおよび専門家の人力によってラベル付けされました。 そのうえ、すべてのバグ レポートはさらに専門家によって人力で確認され、閉じられました。 データ セットに含まれるノイズの量は最小限であり、統計的に有意ではないと予想されますが、残余ノイズが存在したとしても、私たちの結論は無効にはなりません。 実際、説明のために、元のデータセットが、すべてのエントリに対して 0 <p <1/2 独立かつ同一に分散された (i.i.d) に等しいクラスに依存しないノイズによって破損していると仮定します。
元のノイズに、pbr i.i.dの確率で、クラスに依存しないノイズを追加した場合、エントリごとに生成されるノイズは p* = p (1 − pbr) + (1 − p) pbr となります。 0 <p、pbr< 1/2の場合、ラベル p∗ ごとの実際のノイズは、データセット pbr に人工的に追加したノイズよりも厳密に大きいことがわかります。 このため、そもそも完全にノイズのないデータ セット (p = 0)を使用して分類子をトレーニングした場合、パフォーマンスはさらに向上することになります。 要約すると、実際のデータ セットに残余ノイズが存在するということは、私たちが使用した分類子のノイズに対する弾力性が、ここに示した結果よりも優れていることを意味します。 さらに、データ セット内の残余ノイズが統計的に関与しているとしたら、分類子の AUC は、厳密に 0.5 未満のノイズ レベルに対して 0.5 になってしまいます (当てずっぽ)。 結果内にこのような動作は見られません。
VI. 結論と今後の研究
この論文の貢献には2つの要素があります。
まず、バグ レポートのタイトルのみに基づいて、セキュリティ バグ レポートを分類できることの実行可能性を示しています。 これは、プライバシーの制約のためにバグ レポート全体を利用できないシナリオにとって特に重要です。 たとえば、私たちが使用したバグ レポートには、パスワードや暗号化キーなどの個人情報が含まれており、分類子のトレーニングには使用できませんでした。 結果は、レポートのタイトルしか使用できない場合でも、高い精度で SBRの識別を実行できることを示しています。 TF-IDF とロジスティック回帰の組み合わせを利用する私たちの分類モデルでは、AUC 値 0.9831 というパフォーマンスが示されています。
2 番目に、間違ってラベル付けされているトレーニング データと検証データの影響を分析しました。 さまざまなノイズの種類とノイズ レベルに対する堅牢性に関して、よく知られている3つの機械学習の分類手法 (単純ベイズ、ロジスティック回帰、AdaBoost)を比較しました。 3 つの分類子はいずれも、単一クラスのノイズに対しては堅牢です。 トレーニング データのノイズは、分類子の結果に対して有意な影響を与えまていせん。 50%のノイズ レベルでは、AUCの減少は非常に小さい (0.01) ものです。 両方のクラスに存在し、クラスに依存しないノイズの場合、単純ベイズおよび AdaBoost モデルは、ノイズ レベルが 40%を超えるデータ セットでトレーニングした場合にのみ、AUC に有意な変動が見られます。
最後に、クラスに依存するノイズは、両方のクラスとも 35%を超えるノイズが存在する場合にのみ、AUC に有意な影響を及ぼします。 最も高い堅牢性を示したのは AdaBoost でした。 負のクラスに含まれるノイズ ラベルが 45% 以下の場合、正のクラスのラベルの 50% にノイズが含まれていても、AUC への影響は非常に小さくなります。 この場合、AUCの減少は 0.03 未満です。 私たちの知る限り、本研究は、セキュリティ バグ レポートを識別するために、ノイズを含むデータ セットの影響を系統的に調査した最初の研究です。
今後の研究
本論文は、セキュリティ バグの識別に向けた機械学習分類子のパフォーマンスに対して、ノイズがどのように影響するかということに関する初めての体系的研究となっています。 この研究にはいくつかの興味深い後継研究が考えられます。たとえば、セキュリティ バグの重大度レベルを決定する際に、ノイズが含まれるデータ セットの影響を調べる、トレーニング済みモデルのノイズに対する弾力性へのクラスの不均衡の影響を理解する、データ セットに敵対的に導入されたノイズの影響について理解する、などです。
REFERENCES
[1] John Anvik、Lyndon HiewとGail C Murphy。 だれがこのバグを修正するのか? 「第 28 回ソフトウェア エンジニアリングに関する国際会議の議事録」、361 - 370 ページ。 ACM、2006。
[2] Diksha Behl、Sahil HandaとAnuja Arora。 「A bug mining tool to identify and analyze security bugs using naive bayes and tf-idf (単純ベイズと tf-idfを使用してセキュリティ バグを特定し、分析するためのバグ マイニング ツール)」。 2014年開催の 「最適化、信頼性、および情報技術に関する国際会議 (ICROIT)」、294 - 299 ページ。 IEEE、2014。
[3] Nicolas Bettenburg、Rahul Premraj、Thomas ZimmermannとSunghun Kim。 重複するバグ レポートは本当に有害か? ソフトウェア メインテナント、2008年。ICSM 2008。I Enterprise Edition Eの国際会議(337-345ページ)。 IEEE、2008。
[4] Andres Folleco、Taghi M Khoshgoftaar、Jason Van HulseとLofton Bullard。 「Identifying learners robust to low quality data (低品質データに対して堅牢な学習器を識別する)」。 情報の再利用と統合、2008年。IRI 2008。I Enterprise Edition E国際会議(190-195ページ)。 IEEE、2008。
[5] Benoˆıt Frenay。「Uncertainty and label noise in machine learning (機械学習における不確実性とラベル ノイズ)」。 博士論文、ルーヴァン カトリック大学、ルーヴァン ラ ヌーヴ、ベルギー、2013年。
[6] Benoˆıt FrenayとMichel Verleysen。 「Classification in the presence of´ label noise: a survey (ラベル ノイズが存在する場合の分類に関する調査)」。 "ニューラル ネットワークおよび学習システムに関する IEEEの議事録"、25 (5): 845 - 869 ページ、2014年。
[7] Michael Gegick、Pete RotellaとTao Xie。 テキストマイニングによるセキュリティバグレポートの特定: 業界のケーススタディ。 「2010年開催の第 7 回ソフトウェア リポジトリ マイニング (MSR) に関する IEEEの作業部会」、11 - 20 ページ。 IEEE、2010。
[8] Katerina Goseva-PopstojanovaとJacob Tyo。 「Identification of security related bug reports via text mining using supervised and unsupervised classification (教師ありおよび教師なしの分類を使用した、テキスト マイニングによるセキュリティ関連バグ レポートの識別)」。 "2018年開催のソフトウェアの品質、信頼性、セキュリティ (QRS) に関する IEEEの国際会議"、344 - 355 ページ、2018年。
[9] Ahmed Lamkanfi、Serge Demeyer、Emanuel GigerとBart Goethals。 「Predicting the severity of a reported bug (報告されたバグの重大度の予測)」。 「2010年開催の第 7 回マイニング ソフトウェア リポジトリ (MSR) に関する IEEEの作業部会」、1 - 10 ページ。 IEEE、2010。
[10] Naresh ManwaniとPS Sastry。 「Noise tolerance under risk minimization (リスク最小化におけるノイズ トレランス)」。 "人工頭脳工学に関する IEEEの議事録"、43 (3): 1146 - 1151 ページ、2013年。
[11] G MurphyとD Cubranic。 「Automatic bug triage using text categorization (テキスト分類を使用した自動バグ トリアージ)」。 "第 16 回ソフトウェア エンジニアリングおよびナレッジ エンジニアリングに関する国際会議の議事録"。 Citeseer、2004。
[12] Mykola Pechenizkiy、Alexey Tsymbal、Seppo PuuronenとOleksandr Pechenizkiy。 医療におけるクラスノイズと教師あり学習メイン:特徴抽出の効果。 null、708 - 713 ページ。 IEEE、2006。
[13] Charlotte Pelletier、Silvia Valero、Jordi Inglada、Nicolas Champion、Claire Marais Sicre、Gerard Dedieu。「Effect of training class label noise on classification performances for land cover mapping with satellite image time series (時系列衛星画像を使用した土地被覆マッピングの分類パフォーマンスへのクラス ラベル ノイズのトレーニングの影響)」。 『Remote Sensing (リモート センシング)』、9 (2): 173 ページ、2017年。
[14] PS Sastry、GD NagendraとNaresh Manwani。 「A team of continuousaction learning automata for noise-tolerant learning of half-spaces (半角スペースのノイズトレラントな学習のための連続動作学習オートマトンのチーム)」。 "システム、人、人工頭脳工学に関する IEEEの議事録、パート B (人工頭脳工学)"、40 (1):19 - 28 ページ、2010年。
[15] Choh-Man Teng。 「A comparison of noise handling techniques (ノイズ処理手法の比較)」。 "FLAIRS カンファレンス"、269 - 273 ページ、2001年。
[16] Dumidu Wijayasekara、Milos ManicとMiles McQueen。 「Vulnerability identification and classification via text mining bug databases (バグ データベースのテキスト マイニングを使用した脆弱性の識別と分類)」。 Industrial Electronics Society、IECON 2014-40th Annual Conference of the IEEE、3612 ~ 3618 ページ。IEEE、2014年。
[17] Xinli Yang、David Lo、Qiao Huang、Xin XiaとJianling Sun。 「Automated identification of high impact bug reports leveraging imbalanced learning strategies (不均衡な学習戦略を活用した、影響の大きいバグ レポートの自動識別)」。 "2016年開催の第 40 回 IEEE Computer Software and Applications Conference (COMPSAC)年次会議"、第1巻、227 - 232 ページ。 IEEE、2016。
[18] Deqing Zou、Zhijun Deng、Zhen LiとHai Jin。 「Automatically identifying security bug reports via multitype features analysis (マルチタイプの特徴分析を使用した、セキュリティ バグ レポートの自動識別)」。 "情報セキュリティとプライバシーに関するオーストラリア会議"、619 - 633 ページ。 Springer、2018。