マシンの脆弱性を示す: ソフトウェア脆弱性の自動優先順位付け

news

序章

ソフトウェアの脆弱性を検出して修復できれば、侵入の可能性を防ぐことができます。すべてのソフトウェア脆弱性が知られているわけではありませが、データ侵害につながる脆弱性の 86% はパッチ可能でしたが、ソフトウェア パッチを適用する際に不注意による損害が発生するリスクがいくらかあります。新しい脆弱性が特定されると、National Vulnerability Database (NVD) などの脆弱性データベースによって Common Vulnerabilities and Exposures (CVE) ディクショナリに公開されます。

Common Vulnerabilities Scoring System (CVSS) は、脆弱性の潜在的な重大度を把握するための優先順位付けのメトリックを提供します。しかし、適時性の欠如、脆弱な人口構成、正常化、スコアリングの再設定、意見の相違につながる可能性のある幅広い専門家のコンセンサスについて批判されています。たとえば、最悪のエクスプロイトの一部には、低い CVSS スコアが割り当てられています。さらに、CVSS は脆弱な人口規模を測定していません。現在の CVSS システムの設計では、重大な脆弱性が多すぎて、ユーザーの疲労を引き起こしています。

よりタイムリーで幅広いアプローチを提供するために、機械学習を使用して、関連するツイートを調べて、脆弱性の深刻度に関するユーザーの意見を分析します。このモデルは、脆弱性が多数の人々に影響を与える可能性が高いとユーザーが信じているかどうか、または脆弱性がそれほど危険ではなく悪用される可能性が低いかどうかを予測します。次に、モデルからの予測を使用して、CVSS などの従来のアプローチよりも迅速に脆弱性をスコアリングすると同時に、深刻度を測定するための別の方法を提供します。これは、実際の影響をより適切に反映します。

私たちの取り組みでは、ナウキャスティングを使用して、初期段階の CVE に優先順位を付けて緊急かどうかを判断するというこの重要なギャップに対処しています。ナウキャスティングは、リアルタイムで客観的にトレンドまたはトレンドの反転を判断する経済的規律です。この場合、CVE がリリースされた後、CVSS によってスコアが付けられる前に、ソーシャル メディアの反応を CVE のリリースに関連付けることの価値を認識しています。多くの CVE は、理想的には、CVE がリリースされた後できるだけ早く利用できるようにする必要がありますが、現在のプロセスではトリアージ イベントの優先順位付けが妨げられることが多く、最終的に深刻な脆弱性への対応が遅くなります。このクラウドソーシングによるアプローチは、図 1 に示すように、脆弱な集団の規模と広範な性質に関する多くの実践者の観察を反映しています。 (DoS)攻撃時のインターネット。

 

図 1: 重大度を反映した脆弱性に関するソーシャル コメントを示すツイート

モデルの概要

図 2 は、ツイートの内容の分析から始まり、2 つの予測評価で終わる全体的なプロセスを示しています。まず、ツイート コンテンツに対して Named Entity Recognition (NER) を実行して、名前付きエンティティを抽出します。次に、2 つの分類子を使用して、事前に識別されたエンティティに対する関連性と重大度をテストします。最後に、関連する重大なツイートを対応する CVE と照合します。

 

図 2: CVE スコア予測の手順のプロセス概要

各ツイートは、URL または URL でホストされているコンテンツを検査することによって CVE に関連付けられます。具体的には、メッセージ本文に CVE 番号が含まれている場合、または URL コンテンツに CVE が含まれている場合、CVE をツイートにリンクします。各ツイートは 1 つの CVE に関連付けられている必要があり、スコアリングされるセキュリティ関連のトピックに関連するものとして分類されている必要があります。最初の予測タスクでは、モデルが CVSS ランキングを事前にどれだけ正確に予測できるかを検討します。 2 番目のタスクは、Symantec Antivirus Signatures と Exploit DB に基づいて、CVE の脆弱性の将来の悪用を予測することです。これらのリストに最終的に存在することは、エクスプロイトが存在する可能性がある、または存在することを示すだけでなく、それらが公開されていることも示しているというのがその根拠です。

モデリングアプローチ

Twitter データから CVSS スコアと悪用可能性を予測するには、複数の手順が必要です。まず、機械学習モデルによって処理される自然言語の適切な表現 (または機能) を見つける必要があります。この作業では、テキストから特徴を抽出するための自然言語処理で、(1) N-gram 特徴と (2) Word 埋め込みの 2 つの自然言語処理方法を使用します。次に、これらの機能を使用して、分類モデルを使用してツイートがサイバー セキュリティ分野に関連しているかどうかを予測します。第 3 に、これらの機能を使用して、関連するツイートが深刻度を示す強い発言をしているかどうかを予測します。最後に、重大で関連性のあるツイートを、対応する CVE まで一致させます。

N グラムは、2 グラムの単語ペアや 3 グラムの単語トリプルなどの単語シーケンスです。言い換えれば、それらはテキストからの n 個の単語の連続したシーケンスです。これらの n-gram を抽出した後、元のテキストを bag-of-ngram として表すことができます。次の文を考えてみましょう。

Linux に重大な脆弱性が見つかりました。

すべての 2 グラム機能を考慮すると、bag-of-ngram 表現には「重大」、「重大な脆弱性」などが含まれます。

単語の埋め込みは、以前のコンテキストで単語がどのように使用されたかによって単語の意味を学習し、その意味をベクトル空間で表現する方法です。単語の埋め込みは、より正式には分布仮説として知られている、それが保持する会社によって単語の意味を知っています。これらの単語埋め込み表現は機械にやさしく、類似した単語には類似した表現が割り当てられることがよくあります。単語の埋め込みはドメイン固有です。私たちの仕事では、脅威に関連する単語は防御、サイバーリスクサイバーセキュリティ脅威、および IoTベースなど、サイバーセキュリティのトピックに固有の用語をさらにトレーニングします。埋め込みにより、分類子は、類似した単語の知識と概念の違いの意味を暗黙のうちに組み合わせることができます。概念的には、単語の埋め込みは、分類子がこれらの埋め込みを使用して、次のような関係を暗黙的に関連付けるのに役立ちます。

デバイス+感染=ゾンビ

デバイスと呼ばれるエンティティに感染と呼ばれるメカニズムが適用されている場合 (悪意のあるソフトウェアに感染する)、それはゾンビになります。

ソーシャル メディアのツイートが自然言語と言語的に異なる問題に対処するために、以前の研究と自然言語処理 (NLP) コミュニティのソフトウェアを活用しています。これは、一貫性の低い大文字化や、’@’ や ‘#’ などのさまざまな特殊文字を考慮した語幹などの特定のニュアンスに対処します。

 

図 3: 重大度を測定するためにツイート内の名前付きエンティティを識別することの価値を示すツイート

Named Entity Recognition (NER) は、文内のコンテキストに基づいて名詞を構成する単語を識別し、サイバー セキュリティの単語を組み込んだ埋め込みの恩恵を受けます。 NER を使用して名詞を正しく識別することは、文を解析する方法にとって重要です。たとえば、図 3 では、 2018 年 10 月が日付の要素として扱われている一方で、NER によってWindows 10がエンティティとして理解されるようになっています。この機能がないと、図 3 のテキストが建物の窓の物理的な概念と混同される可能性があります。

NER トークンが識別されると、脆弱性がそれらに影響を与えるかどうかをテストするために使用されます。 Windows 10の例では、 Windows 10がエンティティであり、分類子は、ユーザーがWindows 10に影響を与える深刻な脆弱性があると考えているかどうかを予測します。ツイートに複数のエンティティが含まれている場合でも、エンティティごとに 1 つの予測が行われます。名前付きエンティティを含まないツイートをフィルタリングすると、ソフトウェアの脆弱性に関する観察を表明することに関連するツイートのみに絞り込まれます。

これらの正規化されたツイートから、ユーザーの言葉の選択を観察することで、ユーザーが脆弱性の重要性をどの程度強調しているかについての洞察を得ることができます。形容詞の選択は、分類器が強い意見を捉えるのに役立ちます。 Twitter ユーザーは、ツイート内で大きさを伝えるために、または図 4 のように脆弱性に関連する何かの重要性を強調するときに、強い形容詞や最上級を使用することがよくあります。表 1 は、より深刻な脆弱性を示す傾向がある重要な形容詞の分析を示しています。

 

図 4: 強い形容詞の使用を示すツイート

 

表 1: 非常に深刻な CVE と相関する単語の対数オッズ比

最後に、処理された特徴が 2 つの異なる分類子で評価され、スコアが出力されて関連性と重大度が予測されます。名前付きエンティティが識別されると、それを構成するすべての単語が単一のトークンに置き換えられ、モデルがそのエンティティに偏るのを防ぎます。最初のモデルは、2、3、および 4 つのトークンのシーケンスがロジスティック回帰モデルに入力される n-gram アプローチを使用します。 2 番目のアプローチは、埋め込みレイヤー、ドロップアウト レイヤー、完全に接続されたレイヤーで構成される 1 次元の畳み込みニューラル ネットワーク (CNN) を使用して、ツイートから特徴を抽出します。

データの評価

私たちのアプローチのパフォーマンスを評価するために、2017 年 12 月から 2018 年 7 月までの間に脆弱性またはddos というキーワードを含む 6,000 件のツイートのデータセットをキュレートしました。すべてのラベル付けでは、複数のユーザーが個別にラベルに同意する必要があり、偽の注釈を排除するために複数の統計および専門家指向の手法が使用されます。関連性分類子のラベルには 5 つのアノテーターが使用され、重大度アノテーション タスクには 10 個のアノテーターが使用されました。ヒューリスティックを使用して、深刻でない回答者を除外しました。たとえば、ユーザーがツイートの大部分について他のアノテーターの意見に同意しなかった場合などです。ツイートのサブセットは専門家によって注釈が付けられ、残りの注釈の品質を測定するために使用されました。

単語の埋め込みや n-gram などのツイート コンテンツから抽出された特徴を使用して、Amazon Mechanical Turk からの注釈付きデータをラベルとして使用するモデルを構築しました。まず、モデルは、注釈付きデータをグラウンド トゥルースとして使用して、ツイートがセキュリティの脅威に関連しているかどうかを学習します。これにより、「税金の抜け穴を悪用する方法は次のとおりです」などのステートメントが、ユーザーが悪意のあるツールとしてソフトウェアの脆弱性を悪用しているというサイバー セキュリティ関連の議論と混同されるのを防ぐことができます。次に、アノテーターが脅威を重大と認識したかどうかに基づいて、予測モデルが脆弱性にスコアを付けます。

CVSS予測結果

関連性分類子と重大度分類子の両方がさまざまなデータセットに適用されました。データは 2017 年 12 月から 2018 年 7 月まで収集されました。最も顕著なのは、関連性分類子に使用するために元の 6,000 件のツイートから 1,000 件のツイートが除外され、重大度分類子のために 466 件のツイートが除外されたことです。パフォーマンスを測定するために、精度-再現率曲線の下の領域(AUC) を使用します。これは、2 種類のエラー (偽陽性と偽陰性) を最小限に抑えることのトレードオフをまとめた正確性スコアであり、スコアが 1 に近いほどパフォーマンスが優れていることを示します。 .

  • 関連性分類器のスコアは 0.85
  • CNN を使用した重大度分類器のスコアは 0.65
  • 埋め込みなしのロジスティック回帰モデルを使用した重大度分類子のスコアは 0.54

次に、このアプローチを使用して CVSS 格付けを予測できるかどうかを評価します。この評価では、すべてのツイートが CVSS スコアの少なくとも 5 日前に発生する必要があります。 CVE の重大度予測スコアは、CVE に関連し、関連付けられているツイートの中で最大の重大度スコアとして定義されます。表 1 は、3 つのモデルの結果を示しています。ランダムに重大度を推測するモデル、CVE をカバーするツイートの量に基づくモデル化、および投稿の前半で説明した ML ベースのアプローチです。表 2 のスコアリング メトリックは、ロジスティック回帰モデルを使用した上位 K での精度です。たとえば、K=100 の場合、これは、100 の最も深刻な脆弱性のうち何パーセントが正しく予測されたかを特定する方法です。ランダム モデルは 59 を予測しましたが、私たちのモデルは上位 100 件のうち 78 件と、最も深刻な脆弱性 10 件すべてを予測しました。

 

表 2: ランダムにシミュレートされた予測、「いいね」などの定量的特徴のみに基づくモデル、およびモデルの結果の比較

エクスプロイト予測結果

また、実環境での CVE の悪用可能性を特定するモデルの実際的な能力も測定しました。これが追跡の動機となる要因の 1 つであるためです。これを行うために、次のデータ ソースに存在する既知のエクスプロイトを持つ重大な脆弱性を収集しました。

  • Symantec Antivirus シグネチャ
  • Symantec Intrusion Prevention System シグネチャ
  • ExploitDB カタログ

エクスプロイト予測用のデータセットは、2016 年 1 月から 2017 年 11 月までに収集された 377,468 件のツイートで構成されていました。予測評価で使用された 1,409 件の CVE のうち、134 件の公的に武器化された脆弱性が 3 つのデータ ソースすべてで見つかりました。

前述のソースからの CVE をグラウンド トゥルースとして使用すると、当社の CVE 分類モデルは、CVSS よりも脆弱性から運用化されたエクスプロイトを検出する予測に適していることがわかります。表 3 は、最も重大な CVE のトップ 10 のうち 7 つと、上位 100 の脆弱性のうち 21 が実際に悪用されたことが判明したことを示す精度スコアを示しています。 CVSS スコア自体を使用して、上位 10 位の 1 つと上位 100 位の 16 と比較してください。リコール スコアは、K 例で見つかった 134 の兵器化された脆弱性の割合を示しています。トップ 10 の脆弱性では、134 件 (5.2%) に 7 件が含まれていましたが、CVSS スコアのトップ 10 には、悪用された CVE が 1 件 (0.7%) しか含まれていませんでした。

 

表 3: CVSS スコアリング、単純なボリューム モデル、および NLP モデルを比較した場合の上位 10、50、および 100 の脆弱性の精度と再現率のスコア

結論

脆弱性を防止することは、一部のサイバー セキュリティ違反を効果的に軽減するため、組織の情報セキュリティ体制にとって重要です。私たちの研究では、CVE スコアリング リリースよりも前のソーシャル メディア コンテンツを機械学習モデルで効果的に使用して、脆弱性スコアを予測し、脆弱性が利用可能になる数日前に優先順位を付けることができることを発見しました。私たちのアプローチには、CVE スコアにはない新しい社会的感情コンポーネントが組み込まれており、スコアが実際の脆弱性の悪用をより適切に予測できるようになります。最後に、私たちのアプローチにより、ソフトウェアの脆弱性のより実用的な優先順位付けが可能になり、攻撃者によって武器化される可能性が高い脆弱性を効果的に示します。 NIST は、現在の CVSS 方法論が不十分であることを認めています。 CVSS をスコアリングする現在のプロセスは、2019 年 10 月までに ML ベースのソリューションに置き換えられる予定であり、人間の関与は限られています。ただし、採点作業に社会的要素を利用する兆候はありません。

この作業は、Leidos と FireEye の支援を受けて、 IARPA CAUSEプログラムの下でオハイオ州立大学の研究者によって主導されました。この作業は、もともと 2019 年 6 月にNAACLで発表されたもので、私たちの論文ではこの作業について詳しく説明しており、 Wiredにも取り上げられました。

参照: https://www.mandiant.com/resources/blog/automated-prioritization-of-software-vulnerabilities

Comments

タイトルとURLをコピーしました