(57)【要約】      （修正有）【課題】低コストで、マルウェアらしいもの、または悪意のないらしいものとして、実行可能ファイルを分類する。【解決手段】複数の悪意のない実行可能ファイル、および複数のマルウェアの実行可能ファイルを含むトレーニング・コーパスからのそれぞれの実行可能ファイルの時間的に順序付けられたネットワーク動作アーチファクトにより特徴ベクトルを取得し、一方、未知の実行可能ファイルについての特徴ベクトルを生成し、機械学習技法を利用して、未知の実行可能ファイルの分類を出力する。【選択図】図１
2015079504.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク動作アーチファクトを使用することによって、実行可能ファイルがマルウェアであるかどうかを判定する方法であって、
複数の悪意のない実行可能ファイル、および複数のマルウェアの実行可能ファイルを含むトレーニング・コーパスを識別するステップと、
電子ハードウェアプロセッサが、複数のネットワーク動作アーチファクトの各々をそれぞれの文字セットに、関連付けるステップと、
電子ハードウェアプロセッサが、前記トレーニング・コーパスからの各実行可能ファイルに、文字セットのそれぞれのストリングを割り当てるステップであって、文字セットの各ストリングが、前記トレーニング・コーパスからのそれぞれの実行可能ファイルの時間的に順序付けられたネットワーク動作アーチファクトを表し、それにより、文字セットの複数のストリングが取得される、割り当てるステップと、
電子ハードウェアプロセッサが、文字セットの前記複数のストリングの各々について、固定されたｎ＞１の場合に、長さｎの連続したサブストリングのそれぞれのセットを取得するステップと、
電子ハードウェアプロセッサが、長さｎの連続したサブストリングの前記それぞれのセットの共用体を順序付けるステップであって、それにより、長さｎの連続したサブストリングの順序付けられたユニバースが取得される、順序付けるステップと、
電子ハードウェアプロセッサが、前記トレーニング・コーパスからの実行可能ファイルごとに、それぞれの特徴ベクトルを形成するステップであって、各それぞれの特徴ベクトルが、前記トレーニング・コーパスからの前記それぞれの実行可能ファイルについて、連続したｎグラムの前記それぞれのセットにおける長さｎの連続したサブストリングの集計リストを含み、それにより、複数の特徴ベクトルが取得される、形成するステップと、
電子ハードウェアプロセッサが、前記トレーニング・コーパスからの悪意のない実行可能ファイル、またはマルウェアの実行可能ファイルのどちらかに関連付けられるときの前記複数の特徴ベクトルの各それぞれの特徴ベクトルを分類するステップであって、それにより、分類された特徴ベクトルのセットが取得される、分類するステップと、
前記分類された特徴ベクトルのセットで機械学習システムをトレーニングするステップであって、該機械学習システムが電子ハードウェアプロセッサを含む、トレーニングするステップと、
未知の実行可能ファイルを識別するステップと、
電子ハードウェアプロセッサが、前記未知の実行可能ファイルについての特徴ベクトルを生成するステップと、
前記未知の実行可能ファイルについての前記特徴ベクトルを、前記機械学習システムにサブミットするステップと、
電子ハードウェアプロセッサが、悪意のないらしいもの、およびマルウェアらしいもののうちの１つとして、前記未知の実行可能ファイルの分類を取得するステップと、
電子ハードウェアプロセッサが、前記未知の実行可能ファイルの前記分類を出力するステップと
を含む方法。
【請求項２】
前記複数のネットワーク動作アーチファクトが、以下のタイプのアーチファクト、すなわち、トラフィック方向タイプ、プロトコルタイプ、ポート番号タイプ、サイズタイプ、ドメイン名システム（ＤＮＳ）レコードタイプ、およびハイパーテキスト転送プロトコル（ＨＴＴＰ）メソッドタイプを含む、請求項１に記載の方法。
【請求項３】
前記トラフィック方向タイプが、インバウンド・トラフィック・アーチファクト、およびアウトバウンド・トラフィック・アーチファクトを含み、
前記プロトコルタイプが、ユーザ・データグラム・プロトコル（ＵＤＰ）アーチファクト、および伝送制御プロトコル（ＴＣＰ）アーチファクトを含み、
前記ポート番号タイプが、ポート５３アーチファクト、ポート８０アーチファクト、ポート４４２アーチファクト、ポート８０８０アーチファクト、およびポート８０００アーチファクトを含み、
前記サイズタイプが、第１四分位アーチファクト、第２四分位アーチファクト、第３四分位アーチファクト、および第４四分位アーチファクトを含み、
前記ＤＮＳレコードタイプが、Ａレコード・アーチファクト、ＭＸレコード・アーチファクト、およびＳＤＡレコード・アーチファクトを含み、
前記ＨＴＴＰメソッドタイプが、ＧＥＴメソッド・アーチファクト、ＰＯＳＴレコード・アーチファクト、およびＨＥＡＤレコード・アーチファクトを含む、
請求項２に記載の方法。
【請求項４】
前記割り当てるステップが、前記トレーニング・コーパスからのそれぞれの実行可能ファイルを、仮想化された環境において実行するステップを含む、請求項１に記載の方法。
【請求項５】
前記割り当てるステップが、ネットワーク・トラフィックを観察するステップを含む、請求項１に記載の方法。
【請求項６】
前記機械学習システムが、サポートベクトル機械、決定木、およびｋ−最近傍分類器のうちの、少なくとも１つを含む、請求項１に記載の方法。
【請求項７】
前記出力するステップが、表示するステップ、永続的記憶装置に記憶するステップ、およびソフトウェア・モジュールに提供するステップのうちの、少なくとも１つを含む、請求項１に記載の方法。
【請求項８】
前記未知の実行可能ファイルについての前記特徴ベクトルを前記生成するステップが、前記未知の実行可能ファイルを仮想化された環境において実行するステップを含む、請求項１に記載の方法。
【請求項９】
前記未知の実行可能ファイルについての前記特徴ベクトルを前記生成するステップが、前記未知の実行可能ファイルのネットワーク・トラフィックを観察するステップを含む、請求項１に記載の方法。
【請求項１０】
悪意のないらしいもの、およびマルウェアらしいもののうちの１つとして、前記未知の実行可能ファイルの分類を前記取得するステップが、マルウェアらしいものとして前記未知の実行可能ファイルの分類を取得するステップを含み、
前記方法が、
前記未知の実行可能ファイルに関連付けられたエンティティからのネットワーク・トラフィックを遮断するステップ
をさらに含む請求項１に記載の方法。
【請求項１１】
ネットワーク動作アーチファクトを使用することによって、実行可能ファイルがマルウェアであるかどうかを判定するための、少なくとも１つの電子ハードウェアプロセッサを含むシステムであって、
前記少なくとも１つの電子ハードウェアプロセッサが、
複数の悪意のない実行可能ファイル、および複数のマルウェアの実行可能ファイルを含むトレーニング・コーパスを識別し、
複数のネットワーク動作アーチファクトの各々を、それぞれの文字セットに関連付け、
前記トレーニング・コーパスからの各実行可能ファイルに、文字セットのそれぞれのストリングを割り当て、そこでは、文字セットの各ストリングが、前記トレーニング・コーパスからのそれぞれの実行可能ファイルの時間的に順序付けられたネットワーク動作アーチファクトを表し、それにより、文字セットの複数のストリングが取得され、
文字セットの前記複数のストリングの各々について、固定されたｎ＞１の場合に、長さｎの連続したサブストリングのそれぞれのセットを取得し、
長さｎの連続したサブストリングの前記それぞれのセットの共用体を順序付け、それにより、長さｎの連続したサブストリングの順序付けられたユニバースが取得され、
前記トレーニング・コーパスからの実行可能ファイルごとに、それぞれの特徴ベクトルを形成し、そこでは、各それぞれの特徴ベクトルが、前記トレーニング・コーパスからの前記それぞれの実行可能ファイルについて、連続したｎグラムの前記それぞれのセットにおける長さｎの連続したサブストリングの集計リストを含み、それにより、複数の特徴ベクトルが取得され、
前記トレーニング・コーパスからの悪意のない実行可能ファイル、またはマルウェアの実行可能ファイルのどちらかに関連付けられるときの前記複数の特徴ベクトルの各それぞれの特徴ベクトルを分類し、それにより、分類された特徴ベクトルのセットが取得され、
前記分類された特徴ベクトルのセットで機械学習システムをトレーニングし、
未知の実行可能ファイルを識別し、
前記未知の実行可能ファイルについての特徴ベクトルを生成し、
前記未知の実行可能ファイルについての前記特徴ベクトルを、前記機械学習システムにサブミットし、
悪意のないらしいもの、およびマルウェアらしいもののうちの１つとして、前記未知の実行可能ファイルの分類を取得し、
前記未知の実行可能ファイルの前記分類を出力するように
構成されている、
システム。
【請求項１２】
前記複数のネットワーク動作アーチファクトが、以下のタイプのアーチファクト、すなわち、トラフィック方向タイプ、プロトコルタイプ、ポート番号タイプ、サイズタイプ、ドメイン名システム（ＤＮＳ）レコードタイプ、およびハイパーテキスト転送プロトコル（ＨＴＴＰ）メソッドタイプを含む、請求項１１に記載のシステム。
【請求項１３】
前記トラフィック方向タイプが、インバウンド・トラフィック・アーチファクト、およびアウトバウンド・トラフィック・アーチファクトを含み、
前記プロトコルタイプが、ユーザ・データグラム・プロトコル（ＵＤＰ）アーチファクト、および伝送制御プロトコル（ＴＣＰ）アーチファクトを含み、
前記ポート番号タイプが、ポート５３アーチファクト、ポート８０アーチファクト、ポート４４２アーチファクト、ポート８０８０アーチファクト、およびポート８０００アーチファクトを含み、
前記サイズタイプが、第１四分位アーチファクト、第２四分位アーチファクト、第３四分位アーチファクト、および第４四分位アーチファクトを含み、
前記ＤＮＳレコードタイプが、Ａレコード・アーチファクト、ＭＸレコード・アーチファクト、およびＳＤＡレコード・アーチファクトを含み、
前記ＨＴＴＰメソッドタイプが、ＧＥＴメソッド・アーチファクト、ＰＯＳＴレコード・アーチファクト、およびＨＥＡＤレコード・アーチファクトを含む、
請求項１２に記載のシステム。
【請求項１４】
前記少なくとも１つの電子ハードウェアプロセッサが、前記トレーニング・コーパスからのそれぞれの実行可能ファイルを仮想化された環境において実行することによって、前記トレーニング・コーパスからの各実行可能ファイルに、文字セットのそれぞれのストリングを割り当てるようにさらに構成されている、請求項１１に記載のシステム。
【請求項１５】
前記少なくとも１つの電子ハードウェアプロセッサが、ネットワーク・トラフィックを観察することによって、前記トレーニング・コーパスからの各実行可能ファイルに、文字セットのそれぞれのストリングを割り当てるようにさらに構成されている、請求項１１に記載のシステム。
【請求項１６】
前記機械学習システムが、サポートベクトル機械、決定木、およびｋ−最近傍分類器のうちの、少なくとも１つを含む、請求項１１に記載のシステム。
【請求項１７】
出力するように構成された前記少なくとも１つのプロセッサが、表示する、永続的記憶装置に記憶する、およびソフトウェア・モジュールに提供するうちの、少なくとも１つを行うようにさらに構成されている、請求項１１に記載のシステム。
【請求項１８】
前記未知の実行可能ファイルについての前記特徴ベクトルを生成するように構成された前記少なくとも１つのプロセッサが、前記未知の実行可能ファイルを仮想化された環境において実行するようにさらに構成されている、請求項１１に記載のシステム。
【請求項１９】
前記未知の実行可能ファイルについての前記特徴ベクトルを生成するように構成された前記少なくとも１つのプロセッサが、前記未知の実行可能ファイルのネットワーク・トラフィックを観察するようにさらに構成されている、請求項１１に記載のシステム。
【請求項２０】
悪意のないらしいもの、およびマルウェアらしいもののうちの１つとして、前記未知の実行可能ファイルの分類を取得するように構成された前記少なくとも１つのプロセッサが、マルウェアらしいものとしての分類時に、前記未知の実行可能ファイルに関連付けられたエンティティからのネットワーク・トラフィックを遮断するようにさらに構成されている、請求項１１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、２０１３年１０月１１日に出願され、「ＣＬＡＳＳＩＦＹＩＮＧ  ＭＡＬＷＡＲＥ  ＢＹ  ＯＲＤＥＲ  ＯＦ  ＢＥＨＡＶＩＯＲ  ＡＲＴＩＦＡＣＴＳ」と題された、米国特許仮出願第６１／８８９８８９号明細書の優先権および利益を主張するものであり、その全体が、参照により本明細書に組み込まれる。
【０００２】
本発明は、一般に、コンピュータコードがマルウェアであるかどうかを識別することに関する。
【背景技術】
【０００３】
コードがマルウェアであるかどうかを識別するために、ランタイムの実行ファイルシステムおよびレジストリ・アーチファクトを使用することは、計算的に非常に高くつく。さらに、後続のマルウェア作者が、このタイプの解析を、事実上潜り抜けることがある。
【発明の概要】
【課題を解決するための手段】
【０００４】
いくつかの実施形態によれば、ネットワーク動作アーチファクトを使用することによって、実行可能ファイルがマルウェアであるかどうかを判定する方法が提示される。方法は、複数の悪意のない実行可能ファイル、および複数のマルウェアの実行可能ファイルを含むトレーニング・コーパスを識別するステップと、電子ハードウェアプロセッサが、複数のネットワーク動作アーチファクトの各々を、それぞれの文字セットに関連付けるステップと、電子ハードウェアプロセッサが、トレーニング・コーパスからの各実行可能ファイルに、文字セットのそれぞれのストリングを割り当てるステップであって、文字セットの各ストリングが、トレーニング・コーパスからのそれぞれの実行可能ファイルの時間的に順序付けられたネットワーク動作アーチファクトを表し、その結果、文字セットの複数のストリングが取得される、割り当てるステップと、電子ハードウェアプロセッサが、文字セットの複数のストリングの各々について、固定されたｎ＞１の場合に、長さｎの連続したサブストリングのそれぞれのセットを取得するステップと、電子ハードウェアプロセッサが、長さｎの連続したサブストリングのそれぞれのセットの共用体を順序付けるステップであって、その結果、長さｎの連続したサブストリングの順序付けられたユニバースが取得される、順序付けるステップと、電子ハードウェアプロセッサが、トレーニング・コーパスからの実行可能ファイルごとに、それぞれの特徴ベクトルを形成するステップであって、各それぞれの特徴ベクトルが、トレーニング・コーパスからのそれぞれの実行可能ファイルについて、連続したｎグラムのそれぞれのセットにおける長さｎの連続したサブストリングの集計リストを含み、その結果、複数の特徴ベクトルが取得される、形成するステップと、電子ハードウェアプロセッサが、トレーニング・コーパスからの悪意のない実行可能ファイル、またはマルウェアの実行可能ファイルのどちらかに関連付けられるときの複数の特徴ベクトルの各それぞれの特徴ベクトルを分類するステップであって、その結果、分類された特徴ベクトルのセットが取得される、分類するステップと、分類された特徴ベクトルのセットで機械学習システムをトレーニングするステップであって、機械学習システムが電子ハードウェアプロセッサを含む、トレーニングするステップと、未知の実行可能ファイルを識別するステップと、電子ハードウェアプロセッサが、未知の実行可能ファイルについての特徴ベクトルを生成するステップと、未知の実行可能ファイルについての特徴ベクトルを、機械学習システムにサブミットするステップと、電子ハードウェアプロセッサが、悪意のないらしいもの、およびマルウェアらしいもののうちの１つとして、未知の実行可能ファイルの分類を取得するステップと、電子ハードウェアプロセッサが、未知の実行可能ファイルの分類を出力するステップとを含む。
【０００５】
上の実施形態のさまざまなオプションの特徴は、以下を含む。複数のネットワーク動作アーチファクトは、以下のタイプのアーチファクト、すなわち、トラフィック方向タイプ、プロトコルタイプ、ポート番号タイプ、サイズタイプ、ドメイン名システム（ＤＮＳ）レコードタイプ、およびハイパーテキスト転送プロトコル（ＨＴＴＰ）メソッドタイプを含むことができる。トラフィック方向タイプは、インバウンド・トラフィック・アーチファクト、およびアウトバウンド・トラフィック・アーチファクトを含むことができる。プロトコルタイプは、ユーザ・データグラム・プロトコル（ＵＤＰ）アーチファクト、および伝送制御プロトコル（ＴＣＰ）アーチファクトを含むことができる。ポート番号タイプは、ポート５３アーチファクト、ポート８０アーチファクト、ポート４４２アーチファクト、ポート８０８０アーチファクト、およびポート８０００アーチファクトを含むことができる。サイズタイプは、第１四分位アーチファクト、第２四分位アーチファクト、第３四分位アーチファクト、および第４四分位アーチファクトを含むことができる。ＤＮＳレコードタイプは、Ａレコード・アーチファクト、ＭＸレコード・アーチファクト、およびＳＤＡレコード・アーチファクトを含むことができる。ＨＴＴＰメソッドタイプは、ＧＥＴメソッド・アーチファクト、ＰＯＳＴレコード・アーチファクト、およびＨＥＡＤレコード・アーチファクトを含むことができる。割り当てるステップは、トレーニング・コーパスからのそれぞれの実行可能ファイルを、仮想化された環境において実行するステップを含むことができる。割り当てるステップは、ネットワーク・トラフィックを観察するステップを含むことができる。機械学習システムは、サポートベクトル機械、決定木、およびｋ−最近傍分類器のうちの、少なくとも１つを含むことができる。出力するステップは、表示するステップ、永続的記憶装置に記憶するステップ、およびソフトウェア・モジュールに提供するステップのうちの、少なくとも１つを含むことができる。未知の実行可能ファイルについての特徴ベクトルを生成するステップは、未知の実行可能ファイルを仮想化された環境において実行するステップを含むことができる。未知の実行可能ファイルについての特徴ベクトルを生成するステップは、未知の実行可能ファイルのネットワーク・トラフィックを観察するステップを含むことができる。悪意のないらしいもの、およびマルウェアらしいもののうちの１つとして、未知の実行可能ファイルの分類を取得するステップは、マルウェアらしいものとして未知の実行可能ファイルの分類を取得するステップを含むことができる。方法は、未知の実行可能ファイルに関連付けられたエンティティからのネットワーク・トラフィックを遮断するステップをさらに含むことができる。
【０００６】
いくつかの実施形態によれば、ネットワーク動作アーチファクトを使用することによって、実行可能ファイルがマルウェアであるかどうかを判定するためのシステムが提示される。システムは、少なくとも１つの電子ハードウェアプロセッサを含み、電子ハードウェアプロセッサは、複数の悪意のない実行可能ファイル、および複数のマルウェアの実行可能ファイルを含むトレーニング・コーパスを識別し、複数のネットワーク動作アーチファクトの各々を、それぞれの文字セットに関連付け、トレーニング・コーパスからの各実行可能ファイルに、文字セットのそれぞれのストリングを割り当て、そこでは、文字セットの各ストリングが、トレーニング・コーパスからのそれぞれの実行可能ファイルの時間的に順序付けられたネットワーク動作アーチファクトを表し、その結果、文字セットの複数のストリングが取得され、文字セットの複数のストリングの各々について、固定されたｎ＞１の場合に、長さｎの連続したサブストリングのそれぞれのセットを取得し、長さｎの連続したサブストリングのそれぞれのセットの共用体を順序付け、その結果、長さｎの連続したサブストリングの順序付けられたユニバースが取得され、トレーニング・コーパスからの実行可能ファイルごとに、それぞれの特徴ベクトルを形成し、そこでは、各それぞれの特徴ベクトルが、トレーニング・コーパスからのそれぞれの実行可能ファイルについて、連続したｎグラムのそれぞれのセットにおける長さｎの連続したサブストリングの集計リストを含み、その結果、複数の特徴ベクトルが取得され、トレーニング・コーパスからの悪意のない実行可能ファイル、またはマルウェアの実行可能ファイルのどちらかに関連付けられるときの複数の特徴ベクトルの各それぞれの特徴ベクトルを分類し、その結果、分類された特徴ベクトルのセットが取得され、分類された特徴ベクトルのセットで機械学習システムをトレーニングし、未知の実行可能ファイルを識別し、未知の実行可能ファイルについての特徴ベクトルを生成し、未知の実行可能ファイルについての特徴ベクトルを、機械学習システムにサブミットし、悪意のないらしいもの、およびマルウェアらしいもののうちの１つとして、未知の実行可能ファイルの分類を取得し、未知の実行可能ファイルの分類を出力するように、構成されている。
【０００７】
上の実施形態のさまざまなオプションの特徴は、以下を含む。複数のネットワーク動作アーチファクトは、以下のタイプのアーチファクト、すなわち、トラフィック方向タイプ、プロトコルタイプ、ポート番号タイプ、サイズタイプ、ドメイン名システム（ＤＮＳ）レコードタイプ、およびハイパーテキスト転送プロトコル（ＨＴＴＰ）メソッドタイプを含むことができる。トラフィック方向タイプは、インバウンド・トラフィック・アーチファクト、およびアウトバウンド・トラフィック・アーチファクトを含むことができる。プロトコルタイプは、ユーザ・データグラム・プロトコル（ＵＤＰ）アーチファクト、および伝送制御プロトコル（ＴＣＰ）アーチファクトを含むことができる。ポート番号タイプは、ポート５３アーチファクト、ポート８０アーチファクト、ポート４４２アーチファクト、ポート８０８０アーチファクト、およびポート８０００アーチファクトを含むことができる。サイズタイプは、第１四分位アーチファクト、第２四分位アーチファクト、第３四分位アーチファクト、および第４四分位アーチファクトを含むことができる。ＤＮＳレコードタイプは、Ａレコード・アーチファクト、ＭＸレコード・アーチファクト、およびＳＤＡレコード・アーチファクトを含むことができる。ＨＴＴＰメソッドタイプは、ＧＥＴメソッド・アーチファクト、ＰＯＳＴレコード・アーチファクト、およびＨＥＡＤレコード・アーチファクトを含むことができる。少なくとも１つの電子ハードウェアプロセッサは、トレーニング・コーパスからのそれぞれの実行可能ファイルを仮想化された環境において実行することによって、トレーニング・コーパスからの各実行可能ファイルに、文字セットのそれぞれのストリングを割り当てるようにさらに構成されてよい。少なくとも１つの電子ハードウェアプロセッサは、ネットワーク・トラフィックを観察することによって、トレーニング・コーパスからの各実行可能ファイルに、文字セットのそれぞれのストリングを割り当てるようにさらに構成されてよい。機械学習システムは、サポートベクトル機械、決定木、およびｋ−最近傍分類器のうちの、少なくとも１つを含むことができる。出力するように構成された少なくとも１つのプロセッサは、表示する、永続的記憶装置に記憶する、およびソフトウェア・モジュールに提供するうちの、少なくとも１つを行うようにさらに構成されてよい。未知の実行可能ファイルについての特徴ベクトルを生成するように構成された少なくとも１つのプロセッサは、未知の実行可能ファイルを仮想化された環境において実行するようにさらに構成されてよい。未知の実行可能ファイルについての特徴ベクトルを生成するように構成された少なくとも１つのプロセッサは、未知の実行可能ファイルのネットワーク・トラフィックを観察するようにさらに構成されてよい。悪意のないらしいもの、およびマルウェアらしいもののうちの１つとして、未知の実行可能ファイルの分類を取得するように構成された少なくとも１つのプロセッサは、マルウェアらしいものとしての分類時に、未知の実行可能ファイルに関連付けられたエンティティからのネットワーク・トラフィックを遮断するようにさらに構成されてよい。
【０００８】
実施形態のさまざまな特徴は、添付の図面と併用して検討されるとき、実施形態の以下の詳細な説明を参照してよりよく理解されるようになるのと同じように、より十分に評価されてよい。
【図面の簡単な説明】
【０００９】
【図１】本発明のいくつかの実施形態による、実行可能ファイルのセットの各々についての特徴ベクトルを生成する方法を示す流れ図である。
【図２】本発明のいくつかの実施形態による、機械学習システムをトレーニングする方法を表す流れ図である。
【図３】本発明のいくつかの実施形態による、実行可能ファイルを分類する方法を表す流れ図である。
【図４】本発明のいくつかの実施形態によるシステムの概略図である。
【発明を実施するための形態】
【００１０】
次に、本発明の本実施形態（例示的な実施形態）への参照を詳細に行うこととし、実施形態の例は、添付の図面に示されている。可能な限り、図面全体を通して、同一の参照番号が、同一のまたは同様の部品を指すために使用されることになる。以下の説明において、説明の一部を形成する添付の図面への参照が行われ、本発明を実践することができる特定の例示的な実施形態が例証として示されている。これらの実施形態は、当業者が本発明を実践できるように十分詳細に説明され、他の実施形態が利用されてもよいこと、および本発明の範囲から逸脱せずに変更が行われてもよいことを理解されたい。したがって、以下の説明は、例示であるにすぎない。
【００１１】
いくつかの実施形態は、高レベルなネットワーク動作イベントが行われる順序を考慮することによって、マルウェアを検出する。個々のイベントは、文字セットのアルファベット上にマップされ、それらの英字の簡潔な連結を介して、実行トレースがキャプチャされる。マルウェアのコーパスを活用して、実行可能ファイルが、マルウェアか悪意のないものかを予測することができる分類器を生み出すために、分類技法が適用される。
【００１２】
図１は、いくつかの実施形態による、実行可能ファイルのセットの各々についての特徴ベクトルを生成する方法を示す流れ図である。図１の方法は、図２および図３の方法の一部として含まれてよく、図４を参照して説明するシステムを使用して実装されてよい。
【００１３】
ブロック１０２で、方法は、ネットワーク動作アーチファクトのセットの各々を、それぞれの文字セットに関連付ける。本明細書で使用するとき、「文字セット」とは、１つまたは複数の文字の集まりである。たとえば、以下の引用符内の項目は、文字セットである：“Ａ”、“ＡＡ”、“ＡＢ”、“Ａ１”、“ＡＢ２”、“ｏｕｔｂｏｕｎｄ＿ｔｒａｆｆｉｃ”、“ＤＮＳ  ｒｅｃｏｒｄ  ｏｆ  ｔｙｐｅ  Ａ”など。文字セットは、ＡＳＣＩＩ文字のセットである必要はなく、他のデータタイプを包含する。
【００１４】
下の表は、例示的な関連付けられた文字セットと一緒に、例示的な動作アーチファクトを表す。
【００１５】
【表１】
2015079504.tif 000003
【００１６】
動作アーチファクトは、同様のタイプのサブセットにグループ化されることに留意されたい。例示的なグループは、トラフィック方向タイプ、プロトコルタイプ、ポート番号タイプ、サイズタイプ、ドメイン名システム（ＤＮＳ）レコードタイプ、およびハイパーテキスト転送プロトコル（ＨＴＴＰ）メソッドタイプを含む。このように、その関連付けられた文字セットが同じ英字で始まるネットワーク動作アーチファクトが、一緒にグループ化されてよい。
【００１７】
関連付けられた文字セットが文字「Ｄ」で始まる、表の中のネットワーク・アーチファクトの例は、関連付けられたペイロードのサイズを反映する。より詳細には、ブロック１０６を参照して以下で説明されるように、サンドボックスにおけるその実行の持続時間にわたって、同じ実行ファイルによって送られた（それぞれ、受信された）ペイロードの総量に対して、四分位数が決定される。
【００１８】
ブロック１０４で、方法は、実行可能ファイルのセットを識別する。識別は、いくつかのやり方のうちのいずれかで遂行することができる。一例として、識別は、実行可能ファイルのコピーを入手すること、および電子的に記憶することによって遂行することができる。別の例として、識別は、名前で、たとえば、それぞれのファイルの名前で、実行可能ファイルを識別することによって遂行することができる。後者のそのような実施形態において、方法のオペレータは、実行可能ファイルのコピーを入手する必要がなく、むしろ、実行時に実行可能ファイルによって生成されるネットワーク・トラフィックを観察することで十分であることがある。上の例は、組み合わされてもよい。すなわち、いくつかの実施形態は、たとえば、入手することと、ファイル名に関連付けられたネットワーク・トラフィックを観察することの両方によって、実行ファイルを識別することができる。
【００１９】
図１の説明全体を通して続く例として、ブロック１０４は、ファイル転送プロトコル（ＦＴＰ）を介して、「ｍｏｎｅｙ．ｅｘｅ」と名付けられた１つを含む３つの実行可能ファイルの集まりを入手することによって、およびそれらのファイルを永続的なメモリに記憶することによって、十分に遂行することができる。通常、実際の実装では、はるかに多くの実行可能ファイル、たとえば、およそ数十、数百、または数千の実行可能ファイルが使用されることに留意されたい。
【００２０】
ブロック１０６で、方法は、ブロック１０４で識別された実行可能ファイルのセットにおいて、それぞれの実行可能ファイルについて時間的に順序付けられたネットワーク動作アーチファクトを取得する。方法は、好適なテスト時間間隔にわたって、たとえば、非限定的な例として、１時間にわたって、そのようなアーチファクトを取得することができる。これを遂行するために、実行ファイルは、制御された環境、または「サンドボックス」において実行されてよい。そのようなサンドボックスは、実行ファイルには通常のオペレーティングシステムに見える、仮想化された環境を含むことができる。しかしながら、サンドボックスは、サンドボックス内から発信した通信がサンドボックスを出ないように制限する、もしくは防ぐことができ、サンドボックスの外側から発信した通信がサンドボックスに入らないように制限する、もしくは防ぐことができる。いくつかの実装において、サンドボックスは、そうでない場合にサンドボックスの外側から発信することになる通信をシミュレートする。さらに、サンドボックスは、それぞれの実行ファイルが関与するネットワーク動作イベントの詳細を、自動的に記録することができる。いくつかの実施形態において、サンドボックスは、あらゆるネットワーク動作イベントのタイムスタンプ、ならびに任意のペイロードのサイズを記録する。
【００２１】
ブロック１０４の説明で始めた例を続けると、サンドボックス環境において、ファイル「ｍｏｎｅｙ．ｅｘｅ」を実行することができる。サンドボックスは、たとえば、テスト間隔の持続時間にわたって、実行ファイルが２つのネットワーク動作イベントを生み出すことを記録することができ、２つのネットワーク動作イベントは、すなわち、ポート５３でのメールサーバ（ＭＸ）へのＤＮＳクエリ、それに続くポート８０での着信ＵＤＰ通信である。第１のネットワーク動作イベントは、３つのネットワーク・アーチファクト、すなわち、「アウトバウンド・トラフィック」、「ポート５３」、および「タイプＭＸのＤＮＳレコード」を含む。（解説しやすさのため、上の表から、その関連付けられた文字セットが「Ｄ」で始まるネットワーク・アーチファクト、すなわち、ペイロードサイズを指し示すネットワーク動作アーチファクトは、本例の今行われている説明では省かれている。）
【００２２】
ここでのケースと同様に、単一のネットワーク動作イベントが、複数のネットワーク動作アーチファクトを引き起こすことがあることに留意されたい。そのような事例において、アーチファクトの順序は、たとえば、関連付けられた文字セットに従って、辞書学的に設定されてよい。
【００２３】
本例を続けると、単一のネットワーク動作イベントから、３つのネットワーク動作アーチファクトが生じたので、それらのアーチファクトは、それらの関連付けられた文字セットに従って辞書学的に順序付けられ、すなわち（「アウトバウンド・トラフィック」、「ポート５３」、および「タイプＭＸのＤＮＳレコード」）である。第２の例示的なネットワーク動作イベント、すなわち、ポート８０での着信通信は、２つの関連付けられたネットワーク動作アーチファクトを有する。適切に順序付けると、それらは（「着信トラフィック」、「ポート８０」）である。したがって、この例のための時間的に順序付けられたネットワーク動作アーチファクトは、（「アウトバウンド・トラフィック」、「ポート５３」、および「タイプＭＸのＤＮＳレコード」、「着信トラフィック」、「ポート８０」）である。
【００２４】
ブロック１０８で、方法は、時間的に順序付けられた文字セットのストリングを、観察されたネットワーク動作アーチファクトに関連付ける。このプロセスは、散漫な記述の代わりに文字セットを使うことを含むことができる。今行われている例を続けると、ｍｏｎｅｙ．ｅｘｅのための関連付けられた、順序付けられた文字セットのストリングは、表に照らして、（Ａ０，Ｃ０，Ｅ１，Ａ２，Ｂ０）であってよい。
【００２５】
ブロック１１０で、方法は、ブロック１０４で識別された実行可能ファイルのセットから、時間的に順序付けられたネットワーク動作アーチファクトがまだ決定されていない、追加の実行可能ファイルがあるかどうかを判定する。追加の実行可能ファイルがある場合、プロセスは、ブロック１０６に戻り、追加のそれぞれの実行可能ファイルについて、ブロック１０６および１０８が実施される。そうでない場合、プロセスは、ブロック１１２へと分岐する。
【００２６】
図１の説明は、ブロック１０６および１０８の措置を、順次に、実行ファイル１つずつ実施することを表すように見えるが、実施形態は、そのように限定されないことに留意されたい。実施形態は、一度に複数の実行ファイルについて、これらの操作を並行して実施することができる。いくつかの実施形態は、ブロック１０６および１０８の操作を、部分的に並行して、および部分的に順次に、たとえば、バッチ処理で実施することができる。
【００２７】
ブロック１１２で、方法は、なんらかの固定されたｎについて、長さｎの連続したサブストリングの順序付けられたユニバースを取得する。検討中のすべての実行可能ファイルについて、ブロック１０２〜１０８がひとたび実施されると、ブロック１１２の措置が実施されてよい。いくつかの実装において、たとえば、図２を参照して以下でさらに論じる実行可能ファイルのトレーニング・コーパスにおいて、ブロック１０２〜１１０が実行ファイルごとにひとたび実施されると、ブロック１１２が実施されてよい。
【００２８】
長さｎの連続したサブストリングの順序付けられたユニバースは、以下のように取得することができる。はじめに、ｎの値が固定される。ｎの好適な値には、非限定的な例として、２、３、４、５、または６が含まれる。次に、ブロック１０４で識別された実行ファイルに関連付けられた、各時間的に順序付けられた文字セットのストリングが構文解析されて、長さｎの連続したサブストリングのそのフルセットを取得する。連続していないサブストリング、すなわち、内側の文字セットを省いたサブストリングは、考慮されない。連続したサブストリングは、マージされ、重複が取り除かれ、すなわち、共用体が形成される。最終的に、結果としてのセットは、首尾一貫した仕方で、たとえば、辞書学的に順序付けられる。これらの操作の生成物が、長さｎの連続したサブストリングの順序付けられたユニバースの例である。
【００２９】
今行われている例を続ける。実行可能ファイルｍｏｎｅｙ．ｅｘｅを含む、本例の３つの実行可能ファイルに、ブロック１０２〜１１０を適用したことから、以下の時間的に順序付けられた文字セットのストリング、すなわち、（Ａ０，Ｃ０，Ｅ０）、（Ａ０，Ｃ０，Ｅ１）、および（Ａ０，Ｃ０，Ｅ１，Ａ２，Ｂ０）が取得されたと仮定する。最後のストリングが、ｍｏｎｅｙ．ｅｘｅから生じたものである。ｎ＝３である場合、これらのストリングから取られる長さ３の連続したサブストリングのユニバースは、以下の通り、すなわち、｛（Ａ０，Ｃ０，Ｅ０），（Ａ０，Ｃ０，Ｅ１），（Ｃ０，Ｅ１，Ａ２），（Ｅ１，Ａ２，Ｂ０）｝である。先行するリストにおける各３つ組は、この例において検討中の３つの実行ファイルに関連付けられた、時間的に順序付けられた文字セットのストリングのうちの少なくとも１つにおいて、連続した仕方で発生する。最終的に、長さ３の連続したサブストリングのユニバースの順序付けは、非限定的な例として、辞書学的に、｛（Ａ０，Ｃ０，Ｅ０），（Ａ０，Ｃ０，Ｅ１），（Ｃ０，Ｅ１，Ａ２），（Ｅ１，Ａ２，Ｂ０）｝をもたらし、したがって、順序は変わらない。
【００３０】
代替として、今行われている例を、ｎ＝３の代わりに、ｎ＝２で続けることができる。長さ２の連続したサブストリングの対応するユニバースは、以下の通り、すなわち、｛（Ａ０，Ｃ０），（Ｃ０，Ｅ０），（Ｃ０，Ａ１），（Ｃ０，Ｅ１），（Ｅ１，Ａ２），（Ａ２，Ｂ０）｝である。このリストの順序付けは、辞書学的に、長さ２の連続したサブストリングの以下の順序付けられたユニバース、すなわち、｛（Ａ０，Ｃ０），（Ａ２，Ｂ０），（Ｃ０，Ａ１），（Ｃ０，Ｅ０），（Ｃ０，Ｅ１），（Ｅ１，Ａ２）｝をもたらす。
【００３１】
ブロック１１４で、方法は、ｎを固定したまま、長さｎの連続したサブストリングの順序付けられたユニバースに基づいて、ブロック１０４で識別されたそれぞれの実行可能ファイルについての特徴ベクトルを形成する。個々の実行可能ファイルについて、これは、関連付けられた、順序付けられた文字セットのストリングにおいて現れる、長さｎの連続したサブストリングの数を集計することによって遂行することができる。より詳細には、固定されたｎおよび個々の実行可能ファイルについて、長さｎの連続したサブストリングの順序付けられたユニバースをはじめとして、実行可能ファイルについて順序付けられた文字セットのストリングにおいてそれぞれのサブストリングが現れる回数の集計で各エントリを置き換えて、関連付けられた特徴ベクトルを形成することができる。
【００３２】
例を続けると、ｎ＝３の場合、長さ３の連続したサブストリングの順序付けられたユニバースは、上で説明したように、｛（Ａ０，Ｃ０，Ｅ０），（Ａ０，Ｃ０，Ｅ１），（Ｃ０，Ｅ１，Ａ２），（Ｅ１，Ａ２，Ｂ０）｝であり、実行可能ファイルｍｏｎｅｙ．ｅｘｅに関連付けられた、順序付けられた文字セットのストリングは、（Ａ０，Ｃ０，Ｅ１，Ａ２，Ｂ０）である。ｍｏｎｅｙ．ｅｘｅおよびｎ＝３についての関連付けられた特徴ベクトルは、したがって（０，１，１，１）である。その理由は、（Ａ０，Ｃ０，Ｅ０）が、ｍｏｎｅｙ．ｅｘｅに関連付けられた、順序付けられた文字セットのストリングにおいて現れず、長さ３の連続したサブストリングの順序付けられたユニバースからの残りの３つ組が、一度ずつ現れるからである。
【００３３】
例を続けると、ｎ＝２の場合、長さ２の連続したサブストリングの順序付けられたユニバースは、｛（Ａ０，Ｃ０），（Ａ２，Ｂ０），（Ｃ０，Ａ１），（Ｃ０，Ｅ０），（Ｃ０，Ｅ１），（Ｅ１，Ａ２）｝である。ｍｏｎｅｙ．ｅｘｅに関連付けられた、順序付けられた文字セットのストリング、すなわち、（Ａ０，Ｃ０，Ｅ１，Ａ２，Ｂ０）について、対応する特徴ベクトルは、｛１，１，０，０，１，１｝である。これは、ｍｏｎｅｙ．ｅｘｅについての順序付けられた文字セットのストリングにおいて、（Ｃ０，Ａ１）も（Ｃ０、Ｅ０）も現れないが、長さ２の連続したサブストリングの順序付けられたユニバースにおける他のペアが、一度ずつ現れるからである。
【００３４】
連続したサブストリングの順序付けられたユニバースを、実際に検出されたものに限定することは、すべての考え得るストリングの全体のセットと比較して、実質的に論説の定義域を縮小することに留意されたい。これは、結果的により速いパフォーマンスとなり、実質的により少ないメモリを要する。
【００３５】
図１のプロセスに従って形成された特徴ベクトルは、図２および図３を参照して説明されるプロセスのどちらにも使用されるように、永続的なメモリに出力されてよい。
【００３６】
図２は、いくつかの実施形態による、機械学習システムをトレーニングする方法を表す流れ図である。図２の方法は、上で図１を参照して説明した方法を組み込むことができ、下で図４を参照して説明するシステムを使用して実施されてよい。
【００３７】
ブロック２０２で、方法は、実行可能ファイルのトレーニング・コーパスを識別する。ファイルは、図１のブロック１０４を参照して上で説明したやり方で識別されてよい。一般に、実行可能ファイルは、マルウェア、または悪意のないもののどちらかとして分類される。分類は、ファイルが取得された時点で、または後の時点で取得されてよい。分類は、マルウェアの検出および識別においてトレーニングされた、１つまたは複数のアナリストによって実施されてよい。
【００３８】
ブロック２０４で、方法は、上のブロック２０２で識別されたものからの各実行可能ファイルを、特徴ベクトルに関連付ける。これは、図１を参照して上で説明したように、ブロック１０４で言及された「実行可能ファイルのセット」として使用される、実行可能ファイルのトレーニング・コーパスを用いて遂行することができる。結果としての開始特徴ベクトルは、永続的なメモリ、および／または揮発性のメモリに記憶されてよい。
【００３９】
ブロック２０６で、方法は、悪意のない、またはマルウェアの実行可能ファイルのどちらかに関連付けられるときの各特徴ベクトルを分類する。一般に、このブロックの措置は、各特徴ベクトルを、各々がマルウェアまたは悪意のない実行ファイルを表す２セットのうちの１つに、グループ分けすることによって実施されてよい。代替として、またはそれに加えて、たとえば、１がマルウェアを表し、０が悪意のないものを表すビット値を保持するように構成された分類フィールドを追加することによって、各特徴ベクトルを修正することができる。
【００４０】
ブロック２０８で、方法は、分類された特徴ベクトルで、機械学習システムをトレーニングする。非限定的な例として、サポートベクトル機械、決定木、およびｋ−最近傍分類器を含む、さまざまな機械学習技法が使用されてよい。トレーニングのための厳密な技法は、使用される機械学習技法によって異なる。それでもなお、従来の技法が使用されてよい。
【００４１】
ブロック２０８の結果は、未知の実行ファイルを分類する準備ができている、適切にトレーニングされた機械学習技法である。
【００４２】
図３は、いくつかの実施形態による、実行可能ファイルを分類する方法を表す流れ図である。図３の方法は、図１を参照して上で説明した技法を組み込むことができ、図２を参照して上で説明したような、トレーニングされた機械学習技法を利用することができる。さらに、図３の方法は、図４を参照して下で説明するシステムを使用して実施されてよい。
【００４３】
ブロック３０２で、方法は、未知の実行可能ファイルを識別する。識別は、図１のブロック１０４を参照して上で説明されたやり方で実施されてよい。
【００４４】
ブロック３０４で、方法は、未知の実行可能ファイルについての特徴ベクトルを生成する。このブロックの措置は、図１を参照して上で論じたように実施されてよい。より詳細には、このブロックの措置は、図２の長さｎの連続したサブストリングの順序付けられたユニバースを使用して、特徴ベクトルを形成することができる。
【００４５】
ブロック３０６で、方法は、トレーニングされた機械学習技法、たとえば、図２を参照して上で説明したトレーニングされた学習機械に、特徴ベクトルをサブミットする。トレーニングされた機械学習技法は、特定のトレーニングされた機械学習技法に固有のやり方で、特徴ベクトルを処理する。
【００４６】
ブロック３０８で、方法は、トレーニングされた機械学習技法から、未知の実行可能ファイルの分類を取得する。そのような技法が間違いなく正確ではないこともあり得ると認識して、分類は、「悪意のないらしいもの」、および「マルウェアらしいもの」のうちの１つとしてであってよい。分類は、トレーニングされた機械学習技法によって生み出された電子データを含むことができる。
【００４７】
ブロック３１０で、技法は、分類を出力する。出力は、たとえば、コンピュータ・モニタによって表示される形式であってよい。いくつかの実施形態において、出力は、ソフトウェア・モジュール、または永続的記憶装置に対してである。いくつかの実施形態において、ソフトウェア・モジュールへの出力は、実行ファイルのコピーに関連付けられた少なくともなんらかのネットワーク・トラフィックを遮断するためのソフトウェア・モジュールを起動する。
【００４８】
図４は、いくつかの実施形態によるシステムの概略図である。とりわけ、図４は、開示される実施形態の実装において使用され得る、さまざまなハードウェア、ソフトウェア、および他のリソースを示す。実施形態において、示されるように、トレーニングおよび分類コンピュータ４０６は、プロセッサ４１０を含むことができ、プロセッサ４１０は、ランダムアクセスメモリに結合されて、オペレーティングシステムの制御下で、またはオペレーティングシステムと連携して稼働する。実施形態におけるプロセッサ４１０は、１つまたは複数のサーバ、クラスタ、または他のコンピュータもしくはハードウェアリソースに組み込まれてよく、あるいは、クラウドベースのリソースを使用して実装されてもよい。プロセッサ４１０は、一般に、制御論理を実行し、トレーニングおよび分類の操作を制御するようにプログラムされる、または構成されてよい。
【００４９】
プロセッサ４１０は、永続的なメモリと通信することができる。永続的なメモリは、本明細書で開示されたさまざまな方法のうちのいずれかを実行するようにプロセッサ４１０を構成するプログラム命令を記憶することができる。プロセッサ４１０はまた、永続的なメモリ４１２と通信することができる。永続的なメモリ４１２は、分類されるべき、もしくは分類された実行可能ファイル、特徴ベクトル、連続したサブストリングの順序付けられたユニバース、または他のデータにアクセスする、あるいはそれらを記憶するために、ローカルなハードドライブまたはドライブアレイに記憶されたデータベースなどである。
【００５０】
プロセッサ４１０は、イーサネット（登録商標）またはワイヤレス・データ接続などのネットワーク・インターフェース４０８とさらに通信することができ、ネットワーク・インターフェース４０８は次いで、インターネット、または他の公共もしくは私設ネットワークなどの、１つまたは複数のネットワーク４０４と通信する。ネットワーク・インターフェースは、コンピュータ４０２と４０６との間のネットワーク・トラフィックをモニタすることができてよい。
【００５１】
トレーニングおよび分類コンピュータ４０６、関連付けられたネットワーク接続、ならびに他のハードウェア、ソフトウェア、およびサービス・リソースの、他の構成が可能である。
【００５２】
一定の実施形態が、コンピュータ・プログラムまたはプログラムのセットとして実施されてよい。コンピュータ・プログラムは、アクティブおよび非アクティブ両方の、さまざまな形式において存在することができる。たとえば、コンピュータ・プログラムは、ソースコード、オブジェクトコード、実行可能コード、他のフォーマットでのプログラム命令からなるソフトウェア・プログラムとして、ファームウェア・プログラムとして、またはハードウェア記述言語（ＨＤＬ）ファイルとして存在することができる。上のいずれかは、記憶デバイスおよび信号を含む、一時的な、または非一時的なコンピュータ可読媒体上で、圧縮形式、または非圧縮形式で具体化されてよい。例示的なコンピュータ可読記憶デバイスには、従来のコンピュータ・システムＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（読み出し専用メモリ）、ＥＰＲＯＭ（消去可能なプログラマブルＲＯＭ）、ＥＥＰＲＯＭ（電気的に消去可能なプログラマブルＲＯＭ）、および磁気または光学ディスクまたはテープが含まれる。
【００５３】
本発明を、その例示的な実施形態を参照して説明してきたが、当業者は、真の趣旨および範囲から逸脱することなく、説明された実施形態に対するさまざまな修正形態を行うことができるだろう。本明細書で使用された用語および説明は、例証としてのみ記述され、限定として意図されていない。とりわけ、例を使って方法を説明してきたが、方法のステップは、図示されたものとは異なる順序で、または同時に実施されてもよい。当業者は、これらの、および他の変形形態が、以下の特許請求の範囲およびその均等物において定義されるような趣旨および範囲内で可能であることを認識するであろう。
【図１】
2015079504.tif 000004
【図２】
2015079504.tif 000005
【図３】
2015079504.tif 000006
【図４】
2015079504.tif 000007
【外国語明細書】
2015079504000001.pdf