(57)【要約】      （修正有）【課題】マルウェアイベントとバックグラウンドイベントとを分離してトラフィックデータに基づいてマルウェアを分類するための、システム、デバイス、および方法を提供する。【解決手段】マルウェアイベントとバックグラウンドノイズとを含むトラフィックデータを受け取り１００、トラフィックデータを特徴ベクトルに変換する１１０。マルウェアファミリに関連付けられた信号処理アルゴリズムを特徴ベクトルに対して実施してマルウェアイベントをバックグラウンドノイズから分離する１２０。マルウェアファミリに関連付けられたマルウェア分類アルゴリズムを使用してマルウェアイベントのスコアを決定し１３０、スコアに基づいてマルウェアファミリに関連するラベルをトラフィックデータに付けてトラフィックデータを分類する１６０。【選択図】図１
2016091549.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のプロセッサを含むデバイスの処理システムと、
１つまたは複数のコンピュータ可読媒体を含むメモリシステムとを備えるシステムであって、該１つまたは複数のコンピュータ可読媒体が、前記処理システムによって実行されたときに前記処理システムに動作を実施させる命令を含み、前記動作が、
マルウェアイベントとバックグラウンドノイズとを含むトラフィックデータを受け取ること、
前記トラフィックデータを特徴ベクトルに変換すること、
マルフェアファミリに関連付けられた信号処理アルゴリズムを、前記特徴ベクトルに対して実施して前記マルウェアイベントを前記バックグラウンドノイズから分離すること、
前記マルウェアファミリに関連付けられたマルウェア分類アルゴリズムを使用して前記マルウェアイベントのスコアを決定すること、および、
前記スコアに基づいて、前記マルウェアファミリに関連するラベルを前記トラフィックデータに付けることを含むシステム。
【請求項２】
前記トラフィックデータの前記特徴ベクトルへの変換は、
前記トラフィックデータ中のイベントを単語に変換すること、および、
前記単語に対してＮグラム分析を実施することを含む請求項１に記載のシステム。
【請求項３】
前記信号処理アルゴリズムは、独立成分分析信号処理アルゴリズムである請求項１に記載のシステム。
【請求項４】
前記信号処理アルゴリズムは、前記マルウェアファミリに対するモデルを前記信号処理アルゴリズムに入力することに基づいて前記マルウェアファミリに関連付けられる請求項１に記載のシステム。
【請求項５】
前記分類アルゴリズムは、前記マルウェアファミリのサンプル特徴ベクトルを前記分類アルゴリズムに入力することに基づいて前記マルウェアファミリに関連付けられる請求項１に記載のシステム。
【請求項６】
前記動作が、前記ラベルに基づいて、前記マルウェアイベントを生み出したマルウェアアプリケーションの影響を阻止すること、除去すること、中和することのうちの少なくとも１つを行うことをさらに含む請求項１に記載のシステム。
【請求項７】
前記動作が、
第２のマルウェアファミリに関連付けられた第２の信号処理アルゴリズムを前記特徴ベクトルに対して実施して前記マルウェアイベントを前記バックグラウンドノイズから分離し、および、
前記第２のマルウェアファミリに関連付けられた第２のマルウェア分類アルゴリズムを使用して前記マルウェアイベントの第２のスコアを決定することをさらに含み、前記マルウェアファミリに関連する前記ラベルを前記トラフィックデータに付けることは、さらに、前記スコアを前記第２のスコアと比較することに基づいている請求項１に記載のシステム。
【請求項８】
前記スコアを前記第２のスコアと比較することは、前記スコアおよび前記第２のスコアに対して距離関数を実施することを含み、
前記マルウェアファミリに関連する前記ラベルを前記トラフィックデータに付けることは、さらに、前記距離関数によって決定された距離に基づいている請求項７に記載のシステム。
【請求項９】
マルウェアイベントおよびバックグラウンドノイズを含むトラフィックデータを受け取るステップと、
前記トラフィックデータを特徴ベクトルに変換するステップと、
１つまたは複数のプロセッサを使用して、マルウェアファミリに関連付けられた信号処理アルゴリズムを前記特徴ベクトルに対して実施して前記マルウェアイベントを前記バックグラウンドノイズから分離するステップと、
前記マルウェアファミリに関連付けられたマルウェア分類アルゴリズムを使用して前記マルウェアイベントのスコアを決定するステップと、
前記スコアに基づいて、前記マルウェアファミリに関連するラベルを前記トラフィックデータに付けるステップとを含むコンピュータ実装方法。
【請求項１０】
前記トラフィックデータ中のイベントを単語に変換し、前記単語に対してＮグラム分析を実施して、前記トラフィックデータを前記特徴ベクトルに変換するステップを含む請求項９に記載のコンピュータ実装方法。
【請求項１１】
前記信号処理アルゴリズムは、独立成分分析信号処理アルゴリズムである請求項９に記載のコンピュータ実装方法。
【請求項１２】
前記信号処理アルゴリズムは、前記マルウェアファミリに対するモデルを前記信号処理アルゴリズムに入力することに基づいて前記マルウェアファミリに関連付けられる請求項９に記載のコンピュータ実装方法。
【請求項１３】
前記分類アルゴリズムは、前記マルウェアファミリのサンプル特徴ベクトルを前記分類アルゴリズムに入力することに基づいて前記マルウェアファミリに関連付けられる請求項９に記載のコンピュータ実装方法。
【請求項１４】
前記ラベルに基づいて、前記マルウェアイベントを生み出したマルウェアアプリケーションの影響を阻止すること、除去すること、中和することのうちの少なくとも１つを行うステップをさらに含む請求項９に記載のコンピュータ実装方法。
【請求項１５】
第２のマルウェアファミリに関連付けられた第２の信号処理アルゴリズムを、前記特徴ベクトルに対して実施して前記マルウェアイベントを前記バックグラウンドノイズから分離するステップと、
前記第２のマルウェアファミリに関連付けられた第２のマルウェア分類アルゴリズムを使用して前記マルウェアイベントの第２のスコアを決定するステップとをさらに含み、
前記マルウェアファミリに関連する前記ラベルを前記トラフィックデータに付けるステップは、さらに、前記スコアを前記第２のスコアと比較するステップに基づいている請求項９に記載のコンピュータ実装方法。
【請求項１６】
前記スコアおよび前記第２のスコアに対して距離関数を実施し、前記スコアを前記第２のスコアと比較するステップを含み、
前記マルウェアファミリに関連する前記ラベルを前記トラフィックデータに付けるステップは、さらに、前記距離関数によって決定された距離に基づいている請求項１５に記載のコンピュータ実装方法。
【請求項１７】
命令を記憶した非一時的なコンピュータ可読媒体であって、該命令が、コンピューティングシステムの少なくとも１つのプロセッサによって実行されたときに該コンピューティングシステムに方法を実施させ、該方法が、
マルウェアイベントおよびバックグラウンドノイズを含むトラフィックデータを受け取るステップと、
前記トラフィックデータを特徴ベクトルに変換するステップと、
マルウェアファミリに関連付けられた信号処理アルゴリズムを、前記特徴ベクトルに対して実施して前記マルウェアイベントを前記バックグラウンドノイズから分離するステップと、
前記マルウェアファミリに関連付けられたマルウェア分類アルゴリズムを使用して前記マルウェアイベントのスコアを決定するステップと、
前記スコアに基づいて、前記マルウェアファミリに関連するラベルを前記トラフィックデータに付けるステップとを含む非一時的なコンピュータ可読媒体。
【請求項１８】
前記トラフィックデータ中のイベントを単語に変換するステップと、前記単語に対してＮグラム分析を実施するステップとを含む前記トラフィックデータを前記特徴ベクトルに変換するステップを含む請求項１７に記載の非一時的なコンピュータ可読媒体。
【請求項１９】
前記方法が、前記ラベルに基づいて、前記マルウェアイベントを生み出したマルウェアアプリケーションの影響を阻止すること、除去すること、中和することのうちの少なくとも１つを行うステップをさらに含む請求項１７に記載の非一時的なコンピュータ可読媒体。
【請求項２０】
前記方法が、
第２のマルウェアファミリに関連付けられた第２の信号処理アルゴリズムを、前記特徴ベクトルに対して実施して前記マルウェアイベントを前記バックグラウンドノイズから分離するステップと、
前記第２のマルウェアファミリに関連付けられた第２のマルウェア分類アルゴリズムを使用して前記マルウェアイベントの第２のスコアを決定するステップとをさらに含み、前記マルウェアファミリに関連する前記ラベルを前記トラフィックデータに付けるステップは、さらに、前記スコアを前記第２のスコアと比較するステップに基づいている請求項１７に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１４年１０月３１日に出願されその全体が本明細書に組み込まれる、米国特許仮出願第６２／０７３，７７４号明細書に対する優先権を主張するものである。
【背景技術】
【０００２】
「マルウェア」とも呼ばれる、悪意あるソフトウェアは、例えばコンピュータ動作を混乱させるため、機密情報を集めるため、または私用コンピュータシステムへのアクセスを得るために使用される任意のソフトウェアである。マルウェアは、実行可能コード、スクリプト、アクティブコンテンツなどのように見える可能性がある。
【０００３】
マルウェアは、マルウェアイベント（例えば、マルウェアによって引き起こされるネットワークトラフィックまたは他のイベント）を分類モデルと比較する技法を使用して、検出および分類することができる。マルウェアを分類することで、マルウェアの影響を阻止、除去、または他の方法で中和するための適切なプロセスを識別するのが容易になる。
【０００４】
しかし、マルウェアイベントはしばしば、バックグラウンドイベントと混合されている。バックグラウンドイベントは、他のプロセス（マルウェアと合法の両方）からのトラフィックまたは他のイベント、ならびに、マルウェアがそれ自体のイベントを隠蔽するために発生させる意図的なノイズ、を含む可能性がある。
【０００５】
したがって、マルウェアイベントとバックグラウンドイベントとを分離してマルウェア分類を容易にするためのシステムおよび方法が必要とされている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本開示は、トラフィックデータ中のマルウェアイベントとバックグラウンドイベントとを分離してトラフィックデータに基づいてマルウェアを分類するための、システム、デバイス、および方法に関する。
【課題を解決するための手段】
【０００７】
少なくとも１つの実施形態では、コンピューティングデバイスが、マルウェアイベントとバックグラウンドノイズとを含むトラフィックデータを受け取り、トラフィックデータを特徴ベクトルに変換することができる。コンピューティングデバイスは、特徴ベクトルに対して信号処理アルゴリズムを実施して、マルウェアイベントをバックグラウンドノイズから分離することができ、信号処理アルゴリズムは、マルウェアファミリに関連付けられたものである。加えて、コンピューティングデバイスは、マルウェアファミリに関連付けられたマルウェア分類アルゴリズムを使用してマルウェアイベントのスコアを決定し、スコアに基づいてマルウェアファミリに関連するラベルをトラフィックデータに付けて、トラフィックデータを分類することができる。さらに、分類に基づいて、マルウェアアプリケーションを阻止、除去することができ、および／またはマルウェアアプリケーションの影響を中和することができる。
【０００８】
少なくとも１つの実施形態では、コンピューティングデバイスは、トラフィックデータ中のイベントを単語に変換してこれらの単語に対してＮグラム分析を実施することによって、トラフィックデータを特徴ベクトルに変換してもよい。
【０００９】
少なくとも１つの実施形態では、信号処理アルゴリズムは、独立成分分析信号処理アルゴリズムとしてもよい。
【００１０】
少なくとも１つの実施形態では、信号処理アルゴリズムは、マルウェアファミリに対するモデルを信号処理アルゴリズムに入力することによって、マルウェアファミリに関連付けられてよい。
【００１１】
少なくとも１つの実施形態では、分類アルゴリズムは、マルウェアファミリのサンプル特徴ベクトルを分類アルゴリズムに入力することによって、マルウェアファミリに関連付けられてよい。
【００１２】
少なくとも１つの実施形態では、コンピューティングデバイスは追加で、特徴ベクトルに対して第２の信号処理アルゴリズムを実施して、マルウェアイベントをバックグラウンドノイズから分離することができ、第２の信号処理アルゴリズムは、第２のマルウェアファミリに関連付けられたものである。そして、第２のマルウェアファミリに関連付けられた第２のマルウェア分類アルゴリズムを使用して、マルウェアイベントの第２のスコアを決定することができる。マルウェアファミリに関連するラベルをトラフィックデータに付けることはさらに、スコアを第２のスコアと比較することに基づいてもよい。
【００１３】
少なくとも１つの実施形態では、スコアを第２のスコアと比較することは、スコアおよび第２のスコアに対して距離関数を実施することを含むことができ、マルウェアファミリに関連するラベルをトラフィックデータに付けることはさらに、距離関数によって決定された距離に基づいてもよい。
【００１４】
本明細書に組み込まれ本明細書の一部をなす添付の図面は、本開示の様々な実施形態を例示し、本記述と共に、本開示の原理を説明するのに役立つ。
【図面の簡単な説明】
【００１５】
【図１】開示されるいくつかの実施形態による、例示的なマルウェア分類方法を示す流れ図である。
【図２】開示されるいくつかの実施形態による、例示的なマルウェア分類プロセスを示す流れ図である。
【図３】開示されるいくつかの実施形態による、混合トラフィックデータに対して信号処理アルゴリズムを使用した結果を実証する例示的なグラフである。
【図４】開示されるいくつかの実施形態による、マルウェアを分類するためのハードウェアシステムの例を示す図である。
【発明を実施するための形態】
【００１６】
後続の詳細な記述では、添付の図面を参照する。好都合な場合は常に、図面および後続の記述では、同じまたは類似の部分を参照するのに、同じ参照番号を使用する。本明細書では本開示の実施形態および特徴のいくつかの例について述べるが、本開示の主旨および範囲を逸脱することなく、修正、適応、および他の実装形態も可能である。したがって、後続の詳細な記述は本開示を限定しない。そうではなく、本開示の適正な範囲は、添付の特許請求の範囲によって定義される。
【００１７】
図１は、開示されるいくつかの実施形態による、例示的なマルウェア分類方法を示す流れ図である。いくつかの実施形態では、図１において述べる方法は、例えばデスクトップコンピュータ、ラップトップ、タブレットデバイス、モバイルデバイス（例えば、スマートフォン）などの、エンドユーザコンピューティングデバイスを使用して実施することができる。他の実施形態では、図１において述べる方法は、例えばデータベースサーバ（例えば、ドメイン名レジストリ）、ウェブサーバ、メインフレームコンピュータなどの、コンピューティングデバイスを使用して実施することができる。
【００１８】
プロセスは１００で開始することができ、このときコンピューティングデバイスはトラフィックデータを受け取る。いくつかの実装形態では、トラフィックデータは、正体不明のマルウェアアプリケーションを実行したことがわかっているかまたは疑われる、１つまたは複数のデバイスからのものとすることができる。したがって、トラフィックデータは、正体不明のマルウェアアプリケーションに対応するイベントと、バックグラウンドノイズ（例えば、マルウェアによって生み出された意図的なノイズ、他のアプリケーションからのイベントなど）に対応するイベントとを含む可能性がある。いくつかの実施形態では、トラフィックデータは、図１の方法を実施しているコンピューティングデバイスからのものとすることができる。他の実施形態では、トラフィックデータは、リモートデバイスから受け取られるものとすることができる。
【００１９】
いくつかの実施形態では、トラフィックデータは、正体不明のマルウェアアプリケーションを実行していることがわかっているかまたは疑われる１つまたは複数のデバイスの、メモリ使用、ネットワーク使用、ファイルシステム使用、レジストリ使用などを含むことができる。メモリ使用データは、例えば、アクセスされたメモリ場所、メモリに加えられた変更、使用されたメモリ量、不当なまたは保護されたメモリにアクセスする試み、などを含むことができる。ネットワーク使用データは、例えば、パケットキャプチャプログラムを使用して取り込まれたネットワークトレースおよび／またはパッケージを含むことができる。ネットワークパッケージを処理して、例えば、送出メッセージの宛先インターネットプロトコル（ＩＰ）アドレス、ユニフォームリソースロケータ（ＵＲＬ）アドレス、またはドメイン名、到着メッセージの送信元ＩＰアドレス、デバイスとの間で転送されるファイルのファイル名、使用される通信プロトコル、使用されるポート等、などの情報を決定することができる。ファイルシステム使用データは、例えば、追加されるファイルの名前、削除されるファイルの名前、改変されるファイルの名前、ファイルシステム構造の変更などを含むことができる。レジストリ・データは、例えば、システム・ハードウェア設定の変更、インストールされたプログラムの名前、アンインストールされたプログラムの名前、ユーザ・アカウントの変更などを含むことができる。
【００２０】
１１０において、トラフィックデータを特徴ベクトルに変換することができる。いくつかの実施形態では、トラフィックデータの要素を一連の単語に変換することができ、各単語は、特定のイベントの発生を示す。例えば、ネットワーク使用データに関連する単語は、マルウェアとリモート・コマンドアンドコントロール（Ｃ＆Ｃ）サーバとの間の双方向通信に対応するものとすることができ、各通信は、使用される通信プロトコル、使用されるポート、通信のタイプ、送信元ＩＰアドレス、宛先ＩＰアドレス、通信のファイル・サイズなどに基づいて、単語に変換される。一連の単語は、Ｎグラム分析を使用して処理することができ、単語は、例えば１〜５文字のＮグラム（すなわち１グラム〜５グラム）に分解することができる。Ｎグラム分析に基づいて、特徴ベクトルが構築される。
【００２１】
１２０において、特徴ベクトルを信号処理アルゴリズムに入力することができる。いくつかの実施形態では、特徴ベクトルを独立成分分析（ＩＣＡ）信号処理アルゴリズムに入力して、多変量特徴ベクトル（すなわち、マルウェアイベントとバックグラウンドイベントの両方を含む特徴ベクトル）を下位成分に分離することができる。例えば、ｍ個の独立な特徴ベクトルＳ＝［Ｓ１，．．．，Ｓｍ］Ｔおよび混合された特徴ベクトルＸ＝［Ｘ１，．．．，Ｘｍ］Ｔを仮定し、ここでＸ＝Ａ・Ｓであり、Ａは混合行列であるとすると、ＩＣＡ信号処理アルゴリズムは、分離行列Ｗ（≒）Ａ−１を決定することができ、したがって、Ｙ＝Ｗ・Ｘ≒Ｓが、Ｓに対する最良の近似となる。
【００２２】
ＩＣＡ信号処理アルゴリズムは、独立性に依拠して、混合から元の信号（例えば、特徴ベクトル）を回復する。例えば、２つの信号ＸおよびＹが与えられた場合、エントロピーＨ（Ｘ）は、Ｘの不確かさの尺度であり（すなわち、値が低いほど、Ｘに関して多くの情報がある）、条件付きエントロピーＨ（Ｘ｜Ｙ)は、Ｙが観察された後の、Ｘの不確かさの量であり、相互情報量Ｉ（Ｘ；Ｙ）＝Ｈ（Ｘ）−Ｈ（Ｈ｜Ｙ）は、Ｙが観察された後の、Ｘの不確かさの減少である。
【００２３】
したがって、推定された成分間の相互情報量を最小化するＩＣＡ信号処理アルゴリズムを有することによって、最大限に独立な潜在変数（すなわち、独立な成分の、隠された分布）を突き止めることができる。
【００２４】
いくつかの実施形態では、特定のマルウェアファミリに関連付けられた信号処理アルゴリズム（例えば、ＩＣＡ信号処理アルゴリズム）を使用することができる。このような実施形態では、信号処理アルゴリズムを訓練することによってこのアルゴリズムを開発することができる。例えば、マルウェアファミリ中の既知のマルウェアアプリケーションを、制御された環境で事前定義済み時間量にわたって実行して、マルウェアアプリケーションによって生成されたサンプルトラフィックデータを収集することができる。加えて、例えば通常の（マルウェアに感染していない）デバイスのウェブ閲覧を監視することによって、サンプルバックグラウンドノイズデータを生成することができる。マルウェアアプリケーションによって生成されたサンプルトラフィックデータ中のイベントの順序付けに基づいて、各マルウェアサンプルの特徴ベクトルを生み出すことができる。前述のように、サンプルトラフィックデータおよびサンプルバックグラウンドノイズを単語に変換することができ、単語に対してＮグラム分析を実施してサンプル特徴ベクトルを構築することができる。次いで、再帰的な特徴除去を使用して、マルウェアファミリとバックグラウンドトラフィックとの間の上位の際立った特徴（すなわちＮグラム特徴）を選択することができる。
【００２５】
特定のマルウェアファミリに対する信号処理アルゴリズムは、上位の際立った特徴を線形に混合することによって生成することができる。得られた混合は、信号処理アルゴリズムに入力されて、特定のマルウェアファミリに対するモデルが構築される。次いで、このモデルを信号処理アルゴリズムの一部として使用して、１２０で受け取られた特徴ベクトルを２つの下位成分、すなわちマルウェア特徴ベクトルとバックグラウンドノイズとに分解することができる。
【００２６】
いくつかの実施形態では、トラフィック中のいくつかのＮグラムが、マルウェアサンプルまたはバックグラウンドノイズサンプルデータ中にないことがある。したがって、いくつかの実装形態では、スキップ係数λを使用して、プロファイル中の単語を飛ばすことができる。例えば、λ＝１を伴う一連の単語「ｗ１  ｗ２  ｗ３  ｗ４」を使用して、バイグラム｛（ｗ１  ｗ２），（ｗ１  ｗ３），（ｗ２  ｗ３），（ｗ２  ｗ４），（ｗ３  ｗ４）}を生成することができる。
【００２７】
１３０において、分解されたマルウェア特徴ベクトルに対して分類アルゴリズムを実施して、特定のマルウェアファミリについての分類スコアを決定することができる。いくつかの実施形態では、機械学習分類アルゴリズムを使用することができる。例えば、マルウェアファミリのサンプル特徴ベクトルと、分解されたマルウェア特徴ベクトルとを分類アルゴリズムに入力することによって、集団機械学習法（例えば、ランダムフォレスト）を使用することができる。次いで、分類アルゴリズムは、分解されたマルウェア特徴ベクトルとマルウェアサンプルとの間の類似性に基づいて、スコアを出力することができる。出力されたスコアは、特定のマルウェアファミリについてのトラフィックデータの分類スコアを表すことができる。
【００２８】
いくつかの実施形態では、コンピューティングデバイスは、利用可能な各マルウェアファミリについて、１２０〜１４０を実施することができる。したがって、１４０において、コンピューティングデバイスは、各マルウェアファミリがテストされたかどうか（すなわち、各マルウェアファミリについてスコアが得られたかどうか）決定することができる。１４０で、テストすべき追加のマルウェアファミリがある場合は、コンピューティングデバイスは、１２０に戻って、次のマルウェアファミリに対する信号処理アルゴリズムおよび分類アルゴリズムを使用して、トラフィックデータの分解されていない特徴ベクトルを処理することができる。１４０で、テストすべき追加のマルウェアファミリがない場合は、コンピューティングデバイスは１５０に進むことができる。
【００２９】
他の実施形態では、コンピューティングデバイスは、出力されたスコアがしきい値スコアを満たすかまたは超えるかどうか決定することができる。スコアがしきい値スコアを満たすかまたは超える場合は、コンピューティングデバイスは１６０に直接進むことができ、そこでラベルが付けられる。スコアがしきい値スコアを満たさないかまたは超えない場合は、コンピューティングデバイスは、１２０に戻り、しきい値スコアを満たすかもしくは超えるスコアが得られるまで、または全ての分類がテストされるまで、後続のマルウェアファミリについて１２０〜１４０を実施することができる。
【００３０】
１５０において、分類スコアを距離関数に入力して、例えばスコアの各ペア間の距離メトリックを決定することができる。
【００３１】
１６０において、コンピューティングデバイスは、トラフィックデータを分類ラベルに関連付けることができる。分類ラベルは、特定のマルウェアファミリに関連するトラフィックをトラフィックデータが含むことを表すことができる。
【００３２】
いくつかの実施形態では、コンピューティングデバイスは、スコアの各ペア間の距離に基づいて、トラフィックデータを分類ラベルに関連付けることができる。例えば、特定のマルウェアファミリのスコアが他のあらゆるスコアから大きい距離を有する場合は、このマルウェアファミリに関連する分類ラベルをトラフィックデータに付けることができる。
【００３３】
他の実施形態では、コンピューティングデバイスは、トラフィックデータを、しきい値を満たしたかまたは超えた分類スコアに関連するマルウェアファミリの分類ラベルに関連付けることができる。例えば、分類スコアがＯｐｅｒａｔｉｏｎ  Ｓｈａｄｙ  ＲＡＴサイバー攻撃に関連し、分類スコアがしきい値を超える場合、トラフィックデータをラベルＳＲＡＴに関連付けることができる。
【００３４】
さらに他の実施形態では、コンピューティングデバイスは、トラフィックデータを、決定された最高の分類スコアに関連するマルウェアファミリの分類ラベルに関連付けることができる。例えば、分類スコアがＤａｒｋｎｅｓｓ（Ｏｐｔｉｍａ）Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ（ＤＤｏＳ）ボットに関連し、分類スコアが最高の分類スコアであった場合、トラフィックデータをラベルＤＡＲＫＮＥＳＳに関連付けることができる。
【００３５】
他の実装形態では、コンピューティングデバイスは、トラフィックデータにラベルを付けないと決定することができ、これは例えば、しきい値を満たすかもしくは超える分類スコアがないこと、および／またはスコアの各ペア間の距離が小さいことに基づいて決定することができる。したがって、例えば、トラフィックデータは、マルウェアトラフィックを含まない可能性があり、および／または、テストされるどんなマルウェアファミリにも関連しない新しいマルウェアファミリからのトラフィックを含む可能性がある。
【００３６】
様々な実施形態で、マルウェア分類ラベルを使用して、トラフィックデータ中で識別されたマルウェアの影響を阻止、除去、または他の方法で中和するための適切なプロセスを適用することができる。例えば、コンピューティングデバイスは、特定のマルウェアファミリによって破損されたことがわかっているデータファイルをマルウェア分類ラベルに基づいて隔離することができ、および／または、このデータファイルを隔離する命令をトラフィックデータの送信元に送ることができる。追加の例として、コンピューティングデバイスは、特定のマルウェアファミリに関連することがわかっている１つまたは複数のファイルを、ファイル名、場所、および／または、この１つもしくは複数のファイルによって生み出されたトラフィックイベントに基づいて、削除することができる。および／または、この１つまたは複数のファイルを削除する命令をトラフィックデータの送信元に送ることができる。
【００３７】
図１に描かれるステップは、特定の順序で実施されるものとして述べたが、述べた順序は例に過ぎず、開示されるいくつかの実施形態により、ステップの様々な異なるシーケンスが実施されてよい。加えて、これらのステップを離散的なステップとして述べるのは説明のために過ぎず、いくつかの実施形態では、複数のステップが、同時に、および／または単一の計算の一部として、実施されてもよい。さらに、述べたステップは、網羅的または絶対的なものとすることを意図しておらず、様々なステップが挿入または除去されてもよい。
【００３８】
図２は、開示されるいくつかの実施形態による、例示的なマルウェア分類プロセスを示す流れ図である。いくつかの実施形態では、図２において述べる方法は、例えばデスクトップコンピュータ、ラップトップ、タブレットデバイス、モバイルデバイス（例えば、スマートフォン）などの、エンドユーザコンピューティングデバイスを使用して実施することができる。他の実施形態では、図２において述べる方法は、例えばデータベースサーバ（例えば、ドメインネームレジストリ）、ウェブサーバ、メインフレームコンピュータなどの、コンピューティングデバイスを使用して実施することができる。
【００３９】
プロセスは２００で開始することができ、このときコンピューティングデバイスはトラフィックデータを受け取る。いくつかの実装形態では、トラフィックデータは、正体不明のマルウェアアプリケーションを実行したことがわかっているかまたは疑われる、１つまたは複数のデバイスからのものとすることができる。したがって、トラフィックデータは、正体不明のマルウェアアプリケーションに対応するイベントと、バックグラウンドノイズ（例えば、マルウェアによって生み出された意図的なノイズ、他のアプリケーションからのイベントなど）に対応するイベントとを含む可能性がある。いくつかの実施形態では、トラフィックデータは、図２の方法を実施しているコンピューティングデバイスからのものとすることができる。他の実施形態では、トラフィックデータは、リモートデバイスから受け取られるものとすることができる。
【００４０】
いくつかの実施形態では、トラフィックデータは、正体不明のマルウェアアプリケーションを実行していることがわかっているかまたは疑われる１つまたは複数のデバイスの、メモリ使用、ネットワーク使用、ファイルシステム使用、レジストリ使用などを含むことができる。前述のように、トラフィックデータを特徴ベクトルに変換することができる。
【００４１】
特徴ベクトルは、複数の信号処理アルゴリズムへの入力として送られてよい。例えば、図２に示すように、特徴ベクトルは、３つのＩＣＡ信号処理アルゴリズム２１０、２１２、および２１４への入力として送られてよい。各ＩＣＡ信号処理アルゴリズムは、特定のマルウェアファミリ（例えば、ＳＲＡＴ、Ｄａｒｋｎｅｓｓなど）に関連するものとすることができる。いくつかの実施形態では、各ＩＣＡ信号処理アルゴリズムは、前述のように、サンプル特徴ベクトルを使用してアルゴリズムを訓練することによって、開発される。
【００４２】
いくつかの実施形態では、ＩＣＡ信号処理アルゴリズム２１０、２１２、および２１４の各々の結果は、マルウェア特徴ベクトルおよびバックグラウンドノイズである。各アルゴリズムからのマルウェア特徴ベクトルは、対応するマルウェア分類アルゴリズムへの入力として送られてよく、対応するマルウェア分類アルゴリズムは、関連するマルウェアファミリ中にこの正体不明のマルウェアアプリケーションがある可能性を示すスコアを、マルウェア特徴ベクトルに割り当てる。例えば、ＩＣＡ信号処理アルゴリズム２１０、２１２、および２１４の各々は、マルウェア特徴ベクトル出力を、対応するマルウェア分類アルゴリズム、すなわちマルウェア分類アルゴリズム２２０、２２２、および２２４に送ることができる。いくつかの実施形態では、各マルウェア分類アルゴリズムは、特定のマルウェアファミリのサンプルマルウェア特徴ベクトルを使用して、テストされているマルウェア特徴ベクトルをスコア付けする。
【００４３】
いくつかの実施形態では、各ＩＣＡ信号処理アルゴリズムおよびそれに対応する分類アルゴリズムは、特定の順序で実施される一連のプロセスまたは計算スレッドを表すことができる。したがって、ＩＣＡ信号処理アルゴリズムと分類アルゴリズムの各ペアは、相互から独立しているものとすることができる。したがって、いくつかの実施形態では、ＩＣＡ信号処理アルゴリズムと分類アルゴリズムのペアは、任意の順序で実施されてもよく、および／または並列で実施されてもよい（例えば、複数のデバイス、複数のプロセッサ、並列プロセッサなどを使用して）。
【００４４】
各分類アルゴリズムは、スコアを出力することができ、出力されたスコアは、距離関数アルゴリズム（例えば、距離関数２３０）に送られてよい。距離関数アルゴリズムは、例えば、スコアの各ペア間の距離メトリックを決定することができる。
【００４５】
次いで、スコアの各ペアの距離メトリックは、分類ラベリングアルゴリズム２４０に送られてよい。いくつかの実施形態では、スコアの各ペア間の距離に基づいて、マルウェア信号に分類ラベル（例えば、ＳＲＡＴ、Ｄａｒｋｎｅｓｓなど）を割り当てることができる。例えば、あるマルウェアファミリからのスコアが他のあらゆるスコアから大きい距離を有する場合は、このマルウェアファミリに関連する分類ラベルをトラフィックデータに付けることができ、これは、トラフィックデータがこのマルウェアファミリ中のマルウェアアプリケーションからのトラフィックを含む可能性が高いことを示す。
【００４６】
いくつかの実装形態では、コンピューティングデバイスは、トラフィックデータにラベルを付けないと決定することができ、これは例えば、スコアの各ペア間の各距離が小さいことに基づいて決定することができる。したがって、例えば、トラフィックデータは、マルウェアトラフィックを含まない可能性があり、および／または、テストされるどんなマルウェアファミリにも関連しない新しいマルウェアファミリからのトラフィックを含む可能性がある。
【００４７】
様々な実施形態で、マルウェア分類ラベルを使用して、マルウェアの影響を阻止、除去、または他の方法で中和するための適切なプロセスを適用することができる。
【００４８】
図２に描かれるステップは、特定の順序で実施されるものとして述べたが、述べた順序は例に過ぎず、開示されるいくつかの実施形態により、ステップの様々な異なるシーケンスが実施されてよい。加えて、これらのステップを離散的なステップとして述べるのは説明のために過ぎず、いくつかの実施形態では、複数のステップが、同時に、および／または単一の計算の一部として、実施されてもよい。さらに、述べたステップは、網羅的または絶対的なものとすることを意図しておらず、様々なステップが挿入または除去されてもよい。
【００４９】
図３は、混合トラフィックデータに対してＩＣＡ信号処理アルゴリズムを使用した結果を実証する例示的なグラフである。グラフ３００は、マルウェアファミリに対応するデータのサンプルを表す特徴ベクトル３１０を含む累積密度関数（ＣＤＦ）グラフとすることができ、このサンプルはバックグラウンドノイズデータを含まない。例えば、特徴ベクトル３１０は、マルウェアファミリ中のマルウェアアプリケーションを、制御された環境で事前定義済み時間量にわたって実行し、イベントを記録し、イベントを単語に変換し、単語に対してＮグラム分析を実施して特徴ベクトル３１０を生成することによって、生み出すことができる。
【００５０】
グラフ３００はまた、マルウェアファミリ中のマルウェアからのイベントとバックグラウンドノイズからのイベントとを含む混合トラフィックデータを表す特徴ベクトル３２０を含むことができる。例えば、特徴ベクトル３２０は、受け取られたトラフィックデータ中のイベントを単語に変換し、単語に対してＮグラム分析を実施して特徴ベクトル３２０を生成することによって、生み出すことができる。
【００５１】
グラフ３００はまた、ＩＣＡ信号処理アルゴリズムから出力されたデータを表す特徴ベクトル３３０を含むことができる。特徴ベクトル３１０、３２０、および実施形態によっては他のサンプル特徴ベクトルが、ＩＣＡ信号処理アルゴリズムに入力され、ＩＣＡ信号処理アルゴリズムは、マルウェアイベントデータをバックグラウンドノイズから分離して特徴ベクトル３３０を生み出す。
【００５２】
図３に示すように、特徴ベクトル３１０と３３０とは類似し、よって、このマルウェアファミリに対するマルウェア分類器に特徴ベクトル３３０が入力された場合、分類器は、高い類似性スコアを出力するはずである。したがって、ＩＣＡ信号処理アルゴリズム出力は、元のマルウェア特徴に対する良い近似を提供する。
【００５３】
さらに、特徴ベクトル３２０は、線３１０および３３０とは顕著な違いを有し、よって、ＩＣＡ信号処理アルゴリズムからのデータと比較して、マルウェア分類器が、混合データについてはより低い類似性スコアを出力するはずであることを実証する。したがって、マルウェアファミリについて訓練されたＩＣＡ信号処理アルゴリズムを使用することで、混合トラフィックからバックグラウンドイベントを除去することができる。
【００５４】
図３に描かれるグラフは、ＩＣＡ信号処理アルゴリズムを実施する効果を例示するために提示するに過ぎず、限定することを意図していない。
【００５５】
図４は、開示されるいくつかの実施形態による、マルウェアを分類するためのハードウェアシステム４００の例を示す図である。例示的なシステム４００は、使用できる例示的なシステムコンポーネントを含む。しかし、コンポーネントおよび構成は様々である場合がある。
【００５６】
コンピュータ４０１は、プロセッサ４１０、メモリ４２０、ストレージ４３０、および入出力（Ｉ／Ｏ）デバイス（図示せず）を備えることができる。コンピュータ４０１は、様々な方式で実装されてよく、前述の実施形態のいずれかを実施するように構成されてよい。いくつかの実施形態では、コンピュータ４０１は、例えばデスクトップコンピュータ、ラップトップ、タブレットデバイス、モバイルデバイス（例えば、スマートフォン）などの、エンドユーザの汎用コンピュータとすることができる。他の実施形態では、コンピュータ４０１は、例えばデータベースサーバ（例えば、ドメイン名レジストリ）、ウェブサーバ、メインフレームコンピュータなどの、コンピューティングデバイスとすることができる。コンピュータ４０１は、スタンドアロンであるかまたはサブシステムの一部であってよく、サブシステムは、より大きいシステムの一部とすることができる。
【００５７】
プロセッサ４１０は、Ｉｎｔｅｌ（登録商標）製のＩｎｔｅｌ  Ｃｏｒｅ（登録商標）ファミリや、ＡＭＤ（登録商標）製のＰｈｅｎｏｍ（登録商標）ファミリなどからのマイクロプロセッサ等、１つまたは複数の知られている処理デバイスを含むことができる。メモリ４２０は、開示される実施形態に関係するいくつかの機能および動作を実施するためにプロセッサ４１０によって使用される情報および／または命令を記憶するように構成された、１つまたは複数のストレージデバイスを含むことができる。ストレージ４３０は、ストレージデバイスとして使用される、揮発性もしくは不揮発性、磁気、半導体、テープ、光学、取外し可能、非取外し可能、または他のタイプのコンピュータ可読記憶媒体を含むことができる。いくつかの実施形態では、ストレージ４３０は、例えば、トラフィックデータ、多変量特徴ベクトル、サンプル特徴ベクトル、マルウェアファミリモデルなどを含むことができる。
【００５８】
一実施形態では、メモリ４２０は、ストレージ４３０またはいずれか他の場所からロードされ得る命令を含めた、１つまたは複数のプログラムまたはサブプログラムを含むことができる。これらの命令は、コンピュータ４１０によって実行されたとき、開示される実施形態による様々なプロシージャ、動作、またはプロセスを実施する。例えば、メモリ４２０はマルウェア分類プログラム４２５を含むことができ、マルウェア分類プログラム４２５は、開示される様々な実施形態により、特徴ベクトルを処理してマルウェア特徴ベクトルをバックグラウンドノイズから分離し、マルウェア分類に基づいて特徴ベクトルをスコア付けし、トラフィックデータにラベルを付けるためのものである。メモリ４２０はまた、通信サポートやインターネットアクセス等を提供するプログラムなど、他の機能、動作、およびプロセスを実施する他のプログラムを含むこともできる。マルウェア分類プログラム４２５は、単一のプログラムとして具現化されてもよく、または別法として複数のサブプログラムを含んでもよく、複数のサブプログラムは、実行されたとき、共に動作して、開示される実施形態によりマルウェア分類プログラム４２５の機能を実施する。いくつかの実施形態では、マルウェア分類プログラム４２５は、前述の図１および２のプロセスの全部または一部を実施することができる。
【００５９】
コンピュータ４０１は、リンクを介してネットワーク４４０と通信することができる。例えば、リンクは、直接通信リンク、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、または他の適切な接続とすることができる。ネットワーク４４０は、インターネットならびに他のネットワークを含むことができ、これらのネットワークは様々なシステムおよびデバイスに接続され得る。
【００６０】
コンピュータ４０１は、コンピュータ４０１によるデータの受信および／または送信を可能にする１つまたは複数の入出力（Ｉ／Ｏ）デバイス（図示せず）を備えることができる。Ｉ／Ｏデバイスはまた、コンピュータ４０１が他のマシンおよびデバイスと通信するのを可能にする１つまたは複数のディジタルおよび／またはアナログ通信Ｉ／Ｏデバイスを含むことができる。Ｉ／Ｏデバイスはまた、キーボードやマウスなどの入力デバイスを含むことができ、表示装置やプリンタなどの出力デバイスを含むことができる。コンピュータ４０１は、Ｉ／Ｏデバイスを介して、外部マシンおよびデバイスからデータを受け取り、外部マシンおよびデバイスにデータを出力することができる。Ｉ／Ｏデバイスに組み込まれる入力および／または出力デバイスの構成および数は、様々な実施形態に応じて適宜、変動する場合がある。
【００６１】
システム４００の例示的な使用は、前述の実施形態に関して例として述べることができるものである。
【００６２】
本教示を例示的な実施形態に関して述べたが、当業者なら、真の主旨および範囲を逸脱することなく、述べた実施形態に様々な修正を加えることができるであろう。本明細書で使用される用語および記述は、例示として示すに過ぎず、限定とするものではない。特に、方法を例によって述べたが、方法のステップは、例示したのとは異なる順序で、または同時に実施されてもよい。さらに、用語「含む、備える（ｉｎｃｌｕｄｉｎｇ、ｉｎｃｌｕｄｅｓ）」、「有する（ｈａｖｉｎｇ、ｈａｓ）」、「伴う（ｗｉｔｈ）」、またはこれらの異型が詳細な記述および特許請求の範囲で使用される限り、このような用語は、用語「含む、備える（ｃｏｍｐｒｉｓｉｎｇ）」と同様にして包括的であるものとする。本明細書においては、例えばＡおよびＢなどのアイテムの列挙に対する用語「〜の１つまたは複数」は、Ａのみ、Ｂのみ、またはＡおよびＢ、を意味する。これらおよび他の変形も、後続の特許請求の範囲およびそれらの均等物において定義される主旨および範囲内で可能であることを、当業者なら認識するであろう。
【図１】
2016091549.tif 000003
【図２】
2016091549.tif 000004
【図３】
2016091549.tif 000005
【図４】
2016091549.tif 000006
【外国語明細書】
2016091549000001.pdf