(57)【要約】【解決手段】いくつかの実施形態において、マルウェア解析システムは、ファイアウォールからマルウェア候補サンプルを受信し、マルウェア候補サンプルがマルウェアであるか否かを判定するために仮想マシンを用いてマルウェア候補サンプルを解析し、マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャーを自動的に生成することを備える。いくつかの実施形態において、マルウェア候補サンプルは既存のシグネチャーと一致せず、マルウェアはゼロデイ攻撃である。【選択図】図１
2014519113.tif 000002
【特許請求の範囲】
【請求項１】
システムであって、
ファイアウォールからマルウェア候補サンプルを受信し、
前記マルウェア候補サンプルがマルウェアであるか否かを判定するために仮想マシンを用いて前記マルウェア候補サンプルを解析し、
前記マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャーを自動的に生成する、ように構成されているプロセッサと、
前記プロセッサに接続され、前記プロセッサに命令を提供すように構成されているメモリと、
を備えるシステム。
【請求項２】
請求項１に記載のシステムであって、
前記マルウェア候補サンプルは、既存のシグネチャーに一致しない、システム。
【請求項３】
請求項１に記載のシステムであって、
前記マルウェア候補サンプルは、既存のシグネチャーに一致せず、前記マルウェアはゼロデイ攻撃である、システム。
【請求項４】
請求項１に記載のシステムであって、
前記ファイアウォールは第１の装置上で実行され、前記仮想マシンは第２の装置上で実行される、システム。
【請求項５】
請求項１に記載のシステムであって、
前記ファイアウォールはセキュリティ機器によって実装され、前記仮想マシンは仮想マシン機器によって実装される、システム。
【請求項６】
請求項１に記載のシステムであって、
前記ファイアウォールは第１の装置上で実行されるホスト型ファイアウォールであり、前記仮想マシンは仮想マシン機器によって実装される、システム。
【請求項７】
請求項１に記載のシステムであって、
前記仮想マシンはセキュリティクラウドサービスによって実装される、システム。
【請求項８】
請求項１に記載のシステムであって、
前記ファイアウォールは、前記マルウェア候補サンプルを生成するために、ネットワークトラフィックフローを復号して、前記仮想マシンを用いた解析を行う、システム。
【請求項９】
請求項１に記載のシステムであって、
前記プロセッサは、さらに、前記シグネチャーを前記ファイアウォールに送信するように構成され、
前記ファイアウォールは、１つ又は複数のファイアウォールポリシー内に前記シグネチャーを備える、システム。
【請求項１０】
請求項１に記載のシステムであって、
前記プロセッサは、さらに、前記シグネチャーを前記ファイアウォールに送信するように構成され、
前記ファイアウォールは、ゲートウェイセキュリティ装置、セキュリティ機器、ネットワーク・ルーティング装置、又は、ホスト型ファイアウォールを実行する汎用コンピュータにおいて実装される、システム。
【請求項１１】
請求項１に記載のシステムであって、
前記プロセッサは、さらに、前記シグネチャーをクラウドセキュリティサービスに送信するように構成されている、システム。
【請求項１２】
請求項１に記載のシステムであって、
前記プロセッサは、さらに、ヒューリスティックスに基づいて、マルウェアを特定するために、前記仮想マシンを用いるエミュレーションの際に、前記マルウェア候補サンプルの挙動を監視するように構成されている、システム。
【請求項１３】
請求項１に記載のシステムであって、
前記メモリは、さらに、マルウェアを特定するために、前記プロセッサに、前記仮想マシンを用いるエミュレーションの際に、前記マルウェア候補サンプルの挙動を監視させる命令を前記プロセッサに与えるように構成され、
マルウェア候補を示す監視対象となる挙動は、HTTPトラフィック用の非標準的なHTTPポートに接続すること、架空ドメインにアクセスすること、非標準的な実行ファイル拡張子を有する実行ファイルをダウンロードすること、ｅメールサーバ用のDNSクエリを実行すること、一般的な長さよりも短い長さのHTTPヘッダを用いて通信を行うこと、HTTPトラフィックにおいてポスト法で通信を行うこと、IRCトラフィック用の非標準的なIRCポートに接続すること、侵入防止システム回避手法を用いて通信を行うこと、及び、HTTPポートを介して分類されていないトラフィックの通信を行うことの１つ以上を含む、システム。
【請求項１４】
請求項１に記載のシステムであって、
前記メモリは、さらに、マルウェアを特定するために、前記プロセッサに、前記仮想マシンを用いるエミュレーションの際に、前記マルウェア候補サンプルの挙動を監視させる命令を前記プロセッサに与えるように構成され、
マルウェア候補を示す監視対象となる挙動は、通常のドメイン名の長さよりも長いドメイン名を持つドメインにアクセスすること、ダイナミックDNSドメインにアクセスすること、ファストフラックスドメインにアクセスすること及び最近作成されたドメインにアクセスすることの１つ以上を含む、システム。
【請求項１５】
請求項１に記載のシステムであって、
前記メモリは、さらに、悪質なドメインを特定するために、前記プロセッサに、前記仮想マシンを用いるエミュレーションの際に、前記マルウェア候補サンプルの挙動を監視させる命令を前記プロセッサに与えるように構成され、
アクセスされたドメインが閾値を超える長さのドメイン名を持つこと、アクセスされたドメインがダイナミックDNSドメインであるか否か、アクセスされたドメインがファストフラックスドメインであるか否か、及びアクセスされたドメインが最近作成されたドメインであるか否かのうちの１つ以上に基づいて、  監視対象となるドメインアクセスに関連する挙動は、悪質なドメインである可能性を示す、システム。
【請求項１６】
請求項１に記載のシステムであって、
前記プロセッサは、さらに、ハッシュ関数またはファイルヘッダ情報のダイジェストを用いて、ファイル型シグネチャーを生成するように構成されている、システム。
【請求項１７】
請求項１に記載のシステムであって、
前記プロセッサは、さらに、マルウェア候補に関するログ情報を前記仮想マシンに送信するように構成され、
前記ログ情報は、セッション情報、アプリケーション識別情報、ＵＲＬカテゴリー情報、及び、脆弱性警告情報の１つ以上を含む、システム。
【請求項１８】
請求項１に記載のシステムであって、
前記プロセッサは、さらに、マルウェア候補に関するログ情報を前記仮想マシンに送信するように構成され、
前記仮想マシンは、前記ログ情報を用いた事後解析を行って、前記マルウェア候補がマルウェアであるか否かを判定する、システム。
【請求項１９】
方法であって、
ファイアウォールからマルウェア候補サンプルを受信し、
前記マルウェア候補サンプルがマルウェアであるか否かを判定するために、仮想マシンを用いて前記マルウェア候補サンプルを解析し、
前記マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャーを自動的に生成する、方法。
【請求項２０】
請求項１９に記載の方法であって、
さらに、マルウェアを特定するために、前記仮想マシンを用いるエミュレーションの際に、前記マルウェア候補サンプルの挙動を監視する、方法。
【請求項２１】
コンピュータプログラム製品であって、
コンピュータ読み取り可能な記憶媒体に組み込まれ、
ファイアウォールからマルウェア候補サンプルを受信するためのコンピュータ命令と、
前記マルウェア候補サンプルがマルウェアであるか否かを判定するために、仮想マシンを用いて前記マルウェア候補サンプルを解析するためのコンピュータ命令と、
前記マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャーを自動的に生成するためのコンピュータ命令と、を備えるコンピュータプログラム製品。
【請求項２２】
請求項２１に記載のコンピュータプログラム製品であって、
さらに、マルウェアを特定するために、前記仮想マシンを用いるエミュレーションの際に、前記マルウェア候補サンプルの挙動を監視するためのコンピュータ命令を備えるコンピュータプログラム製品。
【請求項２３】
システムであって、
ファイアウォールからマルウェア候補サンプルを受信し、
前記マルウェア候補サンプルがマルウェアであるか否かを判定するために、仮想マシンを用いて前記マルウェア候補サンプルを解析し、
前記マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャーを自動的に生成し、
前記シグネチャーを複数のセキュリティ装置に配布する、ように構成されているプロセッサと、
前記プロセッサに接続され、前記プロセッサに命令を与えるように構成されているメモリと、
を備えるシステム。
【請求項２４】
システムであって、
複数のネットワークトラフィックフローを監視し、
既存のシグネチャーと一致しないマルウェア候補サンプルを生成するために暗号化ネットワークトラフィックフローを復号し、
仮想マシンを用いて前記マルウェア候補サンプルを解析することによって前記マルウェア候補サンプルがマルウェアであるか否かを判定するために前記仮想マシンを実行するマルウェア解析装置にマルウェア候補サンプルを送信し、
前記マルウェア解析装置から前記マルウェア候補サンプルの解析結果を受信し、
前記マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャーを自動的に生成し、
前記シグネチャーに基づいてネットワークアクセス用のセキュリティポリシーを実行するように構成されているプロセッサと、
前記プロセッサに接続され、前記プロセッサに命令を与えるように構成されているメモリと、
を備えるシステム。
【請求項２５】
システムであって、
マルウェア候補サンプルがマルウェアであるか否かを判定するために、仮想マシンを用いてシグネチャーが存在しない前記マルウェア候補サンプルを解析し、
前記マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャーを自動的に生成し、
前記シグネチャーに基づくファイアウォールルールを追加し、
前記シグネチャーを用いて前記ファイアウォールルールを実行するように構成されているプロセッサと、
前記プロセッサに接続され、前記プロセッサに命令を与えるように構成されているメモリと、
を備えるシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
ファイアウォールは、一般的に、不正なアクセスからネットワークを保護する一方で、承認された通信がファイアウォールを通過することを許可する。ファイアウォールは、通常、ネットワークアクセスに対してファイアウォール機能を提供する装置、装置群又はコンピュータ等のデバイス上で実行されるソフトウェアである。たとえば、ファイアウォールは、装置（コンピュータ、スマートフォンやその他の種類のネットワーク通信可能な装置等）のオペレーティングシステム内に組み込まれるものでもよい。また、ファイアウォールは、コンピュータサーバ、ゲートウェイ、ネットワーク／ルーティング装置（ネットワークルータ等）又はデータ機器（セキュリティ機器やその他の種類の専用装置等）上のソフトウェアに組み込まれるもの、又は、ソフトウェアとして実行されるものでもよい。
【０００２】
ファイアウォールは、通常、ルール群に基づいて、ネットワーク送信を拒絶又は許可する。このようなルール群はポリシーとも呼ばれる。たとえば、ファイアウォールは、ルール群又はポリシーを適用することによって、インバウンドトラフィックのフィルタリングを行なうことができる。また、ファイアウォールは、ルール群又はポリシーを適用することによって、アウトバウンドトラフィックのフィルタリングを行なうこともできる。ファイアウォールは、さらに、基本ルーティング機能を実施可能である。
【発明の概要】
【０００３】
本発明のさまざまな実施形態を、添付の図面と共に以下に詳細に記載する。
【図面の簡単な説明】
【０００４】
【図１】いくつかの実施形態に従うマルウェア解析システムの機能図。
【０００５】
【図２】いくつかの実施形態に従うマルウェア解析システムのアーキテクチャを示すブロック図。
【０００６】
【図３】いくつかの実施形態に従うマルウェア解析システム用のデータ機器のハードウェアコンポーネントを示す機能図。
【０００７】
【図４】いくつかの実施形態に従うマルウェア解析システム用のデータ機器の論理コンポーネントを示す機能図。
【０００８】
【図５】いくつかの実施形態に従うマルウェア解析システムのフローチャート。
【０００９】
【図６】いくつかの実施形態に従うマルウェア解析システムの別のフローチャート。
【００１０】
【図７】いくつかの実施形態に従うマルウェア解析システムの別のフローチャート。
【００１１】
【図８】いくつかの実施形態に従うマルウェア解析システムの別のフローチャート。
【００１２】
【図９】いくつかの実施形態に従うマルウェア解析システムの別のフローチャート。
【００１３】
【図１０】いくつかの実施形態に従うマルウェア解析システムの別のフローチャート。
【発明を実施するための形態】
【００１４】
本発明は、プロセス、装置、システム、組成、コンピュータ読み取り可能な記憶媒体上に実現されるコンピュータプログラム製品、及び／又は、プロセッサに接続される記憶装置上に保存される、及び／又は、プロセッサに接続される記憶装置により提供される命令を実行するように構成されるプロセッサ等のプロセッサを含む、さまざまな態様で実施可能である。本明細書において、これらの態様又は本発明を実施する他のあらゆる形態を、手法とも称する。一般に、本明細書で開示する処理の各工程の順序は、本発明の要旨の範囲内で変更可能である。他に明記しない限り、あるタスクを実行するように構成されるものとして記載されるプロセッサまたは記憶装置等の構成要素は、任意の時点でそのタスクを実行するように一時的に構成される一般的な構成要素として実現されるものでもよいし、そのタスクを実行するように製造された専用の構成要素として実現されるものでもよい。本明細書において用いられる「プロセッサ」という用語は、コンピュータプログラム命令等のデータを処理するように構成される１つ以上のデバイス、回路及び／又は処理コアを示す。
【００１５】
本発明の１つ又は複数の実施形態の詳細を、本発明の原理を例示する添付の図面と共に、以下に記載する。本発明を実施形態に関連して説明するが、本発明はいかなる実施形態にも限定されるものではない。本発明の範囲は請求項によってのみ限定されるものであり、本発明には、多数の変形例、変更例及びそれらの等価物が包含される。以下、本発明が十分に理解されるように、数多くの具体的な詳細を説明するが、これらの詳細は例示に過ぎず、これらの具体的な詳細の一部または全部を省略した形態でも請求項に従って本発明を実施可能である。理解を容易にするために、本発明に関連する技術分野で周知の技術要素に関しては、本発明を不要に不明確にすることがないように、詳細に説明しない。
【００１６】
ファイアウォールは、一般的に、不正なアクセスからネットワークを保護する一方で、承認された通信がファイアウォールを通過することを許可する。ファイアウォールは、通常、ネットワークアクセスに対してファイアウォール機能を提供する装置、装置群又はデバイス上で実行されるソフトウェアである。たとえば、ファイアウォールは、装置（コンピュータ、スマートフォンやその他の種類のネットワーク通信可能な装置等）のオペレーティングシステム内に組み込まれるものでもよい。また、ファイアウォールは、コンピュータサーバ、ゲートウェイ、ネットワーク／ルーティング装置（ネットワークルータ等）又はデータ機器（セキュリティ機器やその他の種類の専用装置等）等、さまざまな種類の装置上のアプリケーションソフトウェアに組み込まれるもの、又は、アプリケーションソフトウェアとして実行されるものでもよい。
【００１７】
ファイアウォールは、通常、ルール群（一連の規則）に基づいて、ネットワーク送信を拒絶又は許可する。このようなルール群はポリシーとも呼ばれる。たとえば、ファイアウォールは、保護対象の装置に不要な外部トラフィックが到達することがないようにルール群又はポリシーを適用することによって、インバウンドトラフィックのフィルタリングを行なうことができる。また、ファイアウォールは、ルール群又はポリシーを適用することによって、アウトバウンドトラフィックのフィルタリングを行なうこともできる（たとえば、本明細書に記載するもの等様々な基準に基づいて起動可能な許可、遮断、監視、通知、ログ、及び／又は、その他の動作をファイアウォールルール又はファイアウォールポリシーにおいて指定することができる）。ファイアウォールは、さらに、基本ルーティング機能を実施可能である。
【００１８】
基本パケットフィルタ型ファイアウォールは、ネットワークを介して送信される個々のパケットを検査することによって、ネットワーク通信トラフィックのフィルタリングを行う（ステートレスなパケットフィルタ型ファイアウォールであるパケットフィルタ型ファイアウォール又は第１世代ファイアウォール等）。ステートレスなパケットフィルタ型ファイアウォールは、通常、（たとえば、パケットの送信元および送信先アドレス情報とプロトコル情報とポート番号との組み合わせを用いて）個々のパケット自体を検査して、検査されたパケットに基づいてルールを適用する。
【００１９】
また、アプリケーション・ファイアウォールは、アプリケーションレイヤのフィルタリングを実行することができる（ＴＣＰ／ＩＰスタックのアプリケーションレベル上で動作するアプリケーションレイヤ・フィルタリング・ファイアウォール又は第２世代ファイアウォール等）。アプリケーションレイヤ・フィルタリング・ファイアウォール又はアプリケーション・ファイヤウォールは、一般的に、所定のアプリケーション及びプロトコル（たとえば、Hyper Text Transfer Protocol（HTTP）を用いるウェブブラウジング、Domain Name System（DNS）要求、File Transfer Protocol（FTP）を用いるファイル転送及びさまざまなその他の種類のアプリケーションやTelnet、DHCP、TCP、UDP及びTFTP（GSS）等その他のプロトコル）を特定可能である。たとえば、アプリケーション・ファイアウォールは、標準ポートを介した通信を試みる不正なプロトコルを遮断することができる（たとえば、アプリケーション・ファイアウォールによって一般的にプロトコルを特定可能な非標準ポートを用いて擦り抜けようと試みる不正な／ポリシー外のプロトコル）。
【００２０】
また、ステートフル・ファイアウォールは、パケットのネットワーク送信のフロー／パケットフローに関連する一連のパケットのコンテクスト内で各パケットを検査する、ステートフルなパケット検査を行うことができる（ステートフル・ファイアウォール又は第３世代ファイアフォール等）。このファイアウォール技術では、ファイアウォールを通過したすべての接続の記録を保持し、あるパケットが新たな接続の開始なのか、既存の接続の一部なのか、あるいは、無効なパケットであるのかを判定することができるため、これを、一般的に、ステートフルなパケット検査と称する。たとえば、接続状態自体を、ポリシーにおける１つのルールを起動する基準の１つとすることができる。
【００２１】
先進ファイアウォール又は次世代ファイアウォールは、上述したようなステートレス及びステートフル・パケットフィルタリング及びアプリケーションレイヤ・フィルタリングを行なうことができる。また、次世代ファイアウォールは、さらに別のファイアウォール技術も実行可能である。たとえば、先進ファイアウォール又は次世代ファイアウォールとも称される最新のファイアウォールは、ユーザ及びコンテンツの識別も可能である（次世代ファイアウォール等）。特に、所定の次世代ファイアウォールでは、これらのファイアウォールが自動的に識別可能なアプリケーションのリストを何千ものアプリケーションに拡大しつつある。このような次世代ファイアウォールの例として、パロアルトネットワークス社から市販されているものが挙げられる（たとえば、パロアルトネットワークスのＰＡシリーズ・ファイアウォール）。たとえば、パロアルトネットワークスの次世代ファイアウォールは、以下のような様々な識別技術を用いて、単なるポート、ＩＰアドレスやパケットではなく、アプリケーション、ユーザ及びコンテンツを企業が識別して制御することを可能にする。APP-IDによる正確なアプリケーション識別、User-IDによるユーザ識別（たとえば、ユーザ又はユーザグループ）及びContent-IDによるリアルタイムのコンテンツ・スキャニング（たとえば、ウェブサーフィンの制御やデータ及びファイル転送の制限）。これらの識別技術によって、従来のポート遮断ファイアウォールにより提供される従来のアプローチに従う代わりに、企業によるビジネス関連概念を用いたアプリケーションの使用が確実に可能になる。また、たとえば、専用機器として実現されるような次世代ファイアウォール用の専用ハードウェアは、汎用ハードウェア上で実行されるソフトウェアよりも高性能なレベルのアプリケーション検査を可能にする（たとえば、ネットワークスループットを最大にするとともに待ち時間を最小限に抑えるシングルパス・ソフトウェアエンジンと緊密に一体化された専用の特定機能処理を用いるパロアルトネットワークス社により提供されるセキュリティ機器）。
【００２２】
現在のファイアウォールは、通常、シグネチャー及び／又はヒューリスティックスに基づく強制を行う。このため、マルウェアを検出するためには、ファイアウォールは、一般的に、マルウェアを検出可能な既存のシグネチャー又は既存のヒューリスティックス（たとえば、所定のシグネチャー及び／又は所定のヒューリスティック）を備える必要がある。
【００２３】
ただし、ゼロアワー攻撃ともデイゼロ攻撃とも称されるゼロデイ攻撃は、他者又はソフトウェア開発者にとって新たな及び／又は今までに未確認又は未知の（オペレーティングシステム、アプリケーションソフトウェア、セキュリティソフトウェア及び／又はその他の形態のコンピューティング／ネットワークプラットフォームにおける）脆弱性を利用したエクスプロイトを試みるマルウェア脅威又は攻撃である。ゼロデイ・エクスプロイトは、通常、セキュリティホールへの攻撃をエクスプロイトするソフトウェアを意味する。ゼロデイ・エクスプロイトは、対象となるソフトウェア／プラットフォームの開発者が脆弱性を認識する前に、及び／又は、対象となるソフトウェア／プラットフォームのプロバイダーが脆弱性に対する解決策を提供する前に（たとえば、セキュリティホールにパッチを適用するアップデートを配布する前に）、及び／又は、セキュリティ・プロバイダーがマルウェアを検出可能なアップデートを提供する前に（たとえば、脆弱性を利用したエクスプロイトを試みる攻撃を検出可能なシグネチャー及び／又はヒューリスティックを配布する前に）、ハッカー又はアタッカーにより用いられる又は共有される。
【００２４】
ゼロデイ・エクスプロイトに対処する様々なアプローチが存在するが、このようなアプローチには各々異なった問題点がある。たとえば、脆弱性評価ソフトウェアは、ソフトウェアプラットフォーム及び／又はアプリケーションの脆弱性を特定しようとするものである。しかし、脆弱性評価手法では、すべての新たな脆弱性候補を特定することはできない。また、たとえば、（ファイアウォール及び／又は侵入検出／防止システム等によって実現される）ホワイトリスト手法は、周知の問題のないアプリケーションに基づいてアクセスを制限することができる。しかし、このようなアプローチは非常に限定的であり、周知の問題のないアプリケーションの中には、試験の際には特定されなかった、又は、脆弱性評価手法では特定されなかったような脆弱性が後で見つかることもあり得る。（たとえば、周知の問題のあるアプリケーション、又は、周知の脆弱性を持つアプリケーションを遮断するシグネチャーに基づく手法を用いる）ブラックリスト手法とホワイトリスト手法とを組み合わせる手法を用いて、周知の問題のないアプリケーションにアクセスを限定する、及び／又は、周知の問題のあるアプリケーションへのアクセスを防止することもできる。しかし、このアプローチも、上述のアプローチと同様の問題点があり、同様に、ユーザ及びネットワーク／コンピューティング環境に対して非常に限定的である。他の現在のアプローチは、ホストが感染した（たとえば、悪質なファイルをダウンロードした）可能性があることを判定して、感染したホストを検疫するものであるが、このようなアプローチでは、ホストの感染を防止することはできず、また、一般的に、同じ悪質なファイルによる他のホストの将来的な感染を防ぐこともできない。
【００２５】
ネットワーク上で通信する装置をさらに保護するために必要なものは、（たとえば、新たなゼロデイ・エクスプロイトを効果的に防止するように）既存のシグネチャーが検出しないマルウェアを検出するためのマルウェア解析システムである。したがって、マルウェア解析システムを開示する。特に、本明細書に記載する様々な手法を用いて、ゼロデイ保護を可能にするマルウェア解析を提供する。ゼロデイ保護は、既存のシグネチャーでは存在しない新たなマルウェア脅威を検出し、新たなマルウェア脅威に対してリアルタイムで自動的に新たなシグネチャーを生成することによって、ゼロデイ・エクスプロイトから保護する。たとえば、仮想マシン（virtual machine：ＶＭ）を用いて、ファイル転送時に（たとえば、ファイルダウンロード時に）リアルタイムで実行可能なヒューリスティック型解析手法を用いた（ＶＭサンドボックス環境等における）挙動プロファイリングを実行するようにしてもよい。ダウンロード中のファイルが悪質なものであると判定されると、ファイアウォールは、その解析結果に基づいて、自動的にファイルのダウンロードを遮断して、新たなシグネチャーを生成して配布し、悪質なものと判定されたファイルをダウンロードする将来的なファイル転送要求を自動的に遮断する。いくつかの実施形態において、ＶＭを用いるマルウェア解析システムによって、様々なヒューリスティック手法を実行し、（たとえば、JavaScript（登録商標）等の実行コードを備える）ファイルの共同、ウェブサイトのコンテンツ、及び／又は、他の挙動をエミュレートして、マルウェア候補サンプルを解析する。たとえば、所定のウェブサイトにアクセスして、そのウェブサイトから所定のコンテンツをダウンロードするＶＭエミュレーションは、所定のプラットフォーム、ソフトウェア又はレジストリ設定に対する変更等、ある種疑いのある挙動と見なすことができる。以下、種々の実施形態を参照して、ＶＭ環境を用いたマルウェア解析のための他の様々なヒューリスティック型解析手法を説明する。
【００２６】
いくつかの実施形態において、マルウェア解析システムは、ファイアウォールからマルウェア候補サンプルを受信し、マルウェア候補サンプルがマルウェアであるか否かを判定するために仮想マシンを用いてマルウェア候補サンプルを解析し、マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャー（たとえば、ファイル用のハッシュ型シグネチャー及び／又は本明細書に記載する他の種類のシグネチャー）を自動的に生成することを備える。いくつかの実施形態において、シグネチャーは、複数のネットワーク装置／機能（たとえば、ルータ及びゲートウェイ）及び／又はセキュリティ装置／機能（たとえば、セキュリティ／ファイアウォール機器、セキュリティ／ファイアウォールゲートウェイ、ホスト型ファイアウォール、ホスト型セキュリティスイート、及び、セキュリティクラウドサービス）に配布される。いくつかの実施形態において、マルウェア候補サンプルは、既存のシグネチャーと一致しない。いくつかの実施形態において、マルウェア候補サンプルは、既存のシグネチャーと一致せず、マルウェアはゼロデイ攻撃である。
【００２７】
いくつかの実施形態において、ファイアウォールは、第１の装置上で実行され、仮想マシンは第２の装置上で実行される。いくつかの実施形態において、ファイアウォールは、セキュリティ機器（たとえば、ファイアウォール機器）によって実施され、仮想マシンは、仮想マシン（ＶＭ）機器によって実施される。いくつかの実施形態において、ファイアウォールは、第１の装置上で実行されるホスト型ファイアウォールであり、仮想マシンは、仮想マシン機器によって実施される。いくつかの実施形態において、仮想マシンは、セキュリティクラウドサービスによって実施される。いくつかの実施形態において、ファイアウォールは、ネットワークトラフィックフローを復号して、仮想マシンを用いた解析を行うように、マルウェア候補サンプルを生成する。
【００２８】
いくつかの実施形態において、マルウェア解析システムは、さらに、シグネチャーをファイアウォールに送信することを備え、ファイアウォールは、１つ又は複数のファイアウォールポリシー内にシグネチャーを備える。いくつかの実施形態において、マルウェア解析システムは、さらに、シグネチャーをファイアウォールに送信することを備え、ファイアウォールは、ゲートウェイセキュリティ装置、セキュリティ機器、ネットワーク・ルーティング装置、又は、ホスト型ファイアウォールを実行する汎用コンピュータにおいて実施される。いくつかの実施形態において、マルウェア解析システムは、さらに、シグネチャーをクラウドセキュリティサービスに送信することを備える。
【００２９】
いくつかの実施形態において、マルウェア解析システムは、さらに、仮想マシンを用いるエミュレーションの際にマルウェア候補サンプルの挙動を監視して、マルウェアを特定することを備える。たとえば、本明細書に記載するような様々なヒューリスティックに基づく手法を用いて（たとえば、URL、DNS、プロトコル、及び／又はファイル又は他の情報、活動若しくは挙動プロファイリング手法を用いて）、マルウェア候補サンプルがマルウェアであると判定する、又は、マルウェアと判定するべきであると判定するようにしてもよい。
【００３０】
いくつかの実施形態において、マルウェア解析システムは、マルウェア候補に関するログ情報を仮想マシンに送信することを備える。たとえば、ログ情報は、セッション情報、アプリケーション識別情報、ＵＲＬカテゴリー情報、及び／又は、脆弱性警告情報を含むものでもよい。いくつかの実施形態において、仮想マシンは、ログ情報を用いて事後解析を行って、マルウェア候補がマルウェアであるか否かを判定する。
【００３１】
いくつかの実施形態において、マルウェア解析システムは、複数のネットワークトラフィックフローを監視することと、暗号化ネットワークトラフィックフローを復号して、既存のシグネチャーと一致しないマルウェア候補サンプルを生成することと、仮想マシンを実行し仮想マシンを用いてマルウェア候補サンプルを解析することによってマルウェア候補サンプルがマルウェアであるか否かを判定するマルウェア解析装置にマルウェア候補サンプルを送信することと、マルウェア解析装置からマルウェア候補サンプルの解析結果を受信することと、マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャーを自動的に生成することと、シグネチャーに基づいてネットワークアクセス用のセキュリティポリシーを実行（強制）することと、を備える。
【００３２】
いくつかの実施形態において、マルウェア解析システムは、仮想マシンを用いてシグネチャーが存在しないマルウェア候補サンプルを解析することによって、マルウェア候補サンプルがマルウェアであるか否かを判定することと、マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャーを自動的に生成することと、シグネチャーに基づくファイアウォールルールを追加することと、シグネチャーを用いてファイアウォールルールを実行することと、を備える。
【００３３】
図１は、いくつかの実施形態に従うマルウェア解析システムの機能図である。図１に示すように、ファイアウォール１００で、ネットワークトラフィックが監視される。いくつかの実施形態において、データ機器（たとえば、ファイアウォールを備えるセキュリティ機器等、セキュリティ機能を備えるデータ機器）を用いて、ネットワークトラフィックが監視される。いくつかの実施形態において、ゲートウェイ（たとえば、セキュリティゲートウェイ等、セキュリティ機能を備えるゲートウェイ）を用いて、ネットワークトラフィックが監視される。いくつかの実施形態において、ホスト（たとえば、ネットワークサーバや、パーソナルコンピュータ、ノートパソコン、タブレットやスマートフォンのようなクライアントコンピューティング装置等、ホスト装置上で実行されるセキュリティソフトウェア）を用いて、ネットワークトラフィックが監視される。いくつかの実施形態において、インライン監視技術を用いて、ネットワークトラフィックが監視される。いくつかの実施形態において、ネットワークトラフィックが収集及び／又は監視される（たとえば、ネットワークトラフィックの一部は、インライン監視技術を用いて監視される、及び／又は、ネットワークトラフィックの一部は、ネットワークトラフィックのログ等、ネットワークトラフィックをオフラインで監視するために収集及び解析される）。
【００３４】
いくつかの実施形態において、ステート型ファイアウォールを用いて、ネットワークトラフィックが監視される。いくつかの実施形態において、ステート型ファイアウォールは、APP-ID（アプリケーションＩＤ）エンジンを用いてトラフィックフローを監視するものでもよい（アプリケーション（APP）シグネチャー・チェック１０８）。たとえば、監視対象となるネットワークトラフィックは、HTTPトラフィック、FTPトラフィック、DNS要求、分類されていないアプリケーショントラフィック（たとえば、未知のアプリケーショントラフィック）、及び／又は、その他の種類のトラフィック（たとえば、他の種類の既知のプロトコル又は未知のプロトコルを用いるトラフィック）を含むものでもよい。
【００３５】
図１に示すように、１０２で、ネットワークトラフィックの監視が開始荒れる。ＩＰアドレス及びポートエンジン１０４は、パケット解析に基づいて、監視対象のトラフィックフロー（たとえば、セッション）用のＩＰアドレス及びポート番号を決定する。いくつかの実施形態において、次にユーザ識別を行う（たとえば、ソースＩＰアドレスに基づいてユーザＩＤを推定するようにしてもよい）。ポリシーチェックエンジン１０６は、ＩＰアドレス及びポート番号に基づいて、いずれかのポリシーが適用されているか否かを判定する。アプリケーションシグネチャー・チェックエンジン１０８は、（たとえば、パケットフロー解析に基づくアプリケーション識別のために種々のアプリケーションシグネチャーを用いるAPP-IDエンジンを使用して）アプリケーションを識別する。たとえば、APP-IDエンジン１０８は、HTTPトラフィック、FTPトラフィック、DNS要求、未知のトラフィック及び種々の他の種類のトラフィック等、どのような種類のトラフィックをセッションが含むかを判定するように構成されるものでもよい。このように分類されたトラフィックを、デコーダ１１２、１１４及び１１６等、適当なデコーダに送って、各監視対象のセッションのトラフィックフローに関して分類されたトラフィックを復号（解読）するようにしてもよい。監視対象のトラフィックが暗号化されている（たとえば、SSL、SSH又はその他の既知の暗号化プロトコルを用いて暗号化されている）場合には、（たとえば、自己署名証明書を用いる中間者手法を適用して）復号エンジン１１０を用いて監視対象のトラフィックを復号するようにしてもよい。既知プロトコルデコーダエンジン１１２は、既知のプロトコルを用いて（たとえば、既知のプロトコルに様々なシグネチャーを適用して）トラフィックフローを復号して解析し、監視対象のトラフィック解析を報告・ポリシー強制（実行）エンジン１２０に報告する。特定トラフィック（復号不要）エンジン１１４は、特定されたトラフィックを報告・ポリシー強制エンジン１２０に報告する。未知プロトコルデコーダエンジン１１６は、（たとえば、様々なヒューリスティックスを適用して）トラフィックフローを復号して解析し、監視対象のトラフィック解析を報告・ポリシー強制エンジン１２０に報告する。
【００３６】
いくつかの実施形態において、上述した既知プロトコルデコーダエンジン１１２と、特定トラフィックエンジン１１４と、未知プロトコルデコーダエンジン１１６とを用いた様々なトラフィック監視手法の結果は、報告・ポリシー強制エンジン１２０（たとえば、ネットワーク／ルーティングポリシー、セキュリティポリシー、及び／又はファイアウォールポリシー）に提供される。たとえば、アプリケーション識別、ユーザ識別、及び／又は、既存のシグネチャー（たとえば、ファイル型シグネチャー、プロトコル型シグネチャー、及び／又は、マルウェア又は疑いのある挙動を検出するための他の種類／形態のシグネチャー）と照合される他の情報を用いて、監視対象のネットワークトラフィックにファイアウォールポリシーを適用するようにしてもよい。
【００３７】
図１に示すように、ＶＭマルウェア解析エンジン１１８は、ファイアウォールからマルウェア候補サンプルを受信する。いくつかの実施形態において、上述した既知プロトコルデコーダエンジン１１２と、特定トラフィックエンジン１１４と、未知プロトコルデコーダエンジン１１６とを用いた様々なトラフィック監視手法の結果は、報告・ポリシー強制エンジン１２０（たとえば、ネットワーク／ルーティングポリシー、セキュリティポリシー、及び／又はファイアウォールポリシー）に提供される。この結果は、既存のシグネチャーのいずれにも一致しない。一部の実施形態において、いずれの既存のシグネチャーも一致しない場合には、マルウェア候補サンプルを、さらなる解析のために選択し、さらなる解析（たとえば、サンドボックス環境を提供してマルウェアを検出する仮想マシンを用いるリアルタイムの挙動プロファイリング解析、及び／又は、様々な実施形態に関して記載するようなログ情報を用いる事後解析）を実行するＶＭマルウェア解析エンジンに転送して、マルウェア候補サンプルがマルウェアであるか否かを判定するようにしてもよい。いくつかの実施形態において、様々なルール／ポリシーを適用して、さらなる解析のために仮想マシンエンジンにマルウェア候補サンプルを提供するべきか否かを判定する。このようなルール／ポリシーは、地理（たとえば、コンテンツを供給している国／地理）に基づくものでもよい。ＵＲＬカテゴリーに基づくものでもよい。ファイルの種類（たとえば、ＰＤＦや他のファイルの種類）に基づくものでもよい。ファイルサイズに基づくものでもよい（たとえば、リアルタイムＶＭエミュレーション解析用に転送されるファイルサイズは、１ＧＢ等の最大容量または他のファイルサイズに限定され、ＶＭ技術を用いてリアルタイムでエミュレートされるファイルが大きくなりすぎないようにする）。難読化されたJavaScript（登録商標）（たとえば、非常に長い変数、評価関数を用いるパックコードを含む長い変数、及びその他の難読化手法）に基づくものでもよい。及び／又は、リアルタイムＶＭエミュレーション・マルウェア解析に適した疑わしいマルウェアを選択するルール／ポリシーでもよい。
【００３８】
いくつかの実施形態において、マルウェア候補サンプルがマルウェアであると判定された場合には、本明細書に記載する様々な手法を用いて新たなシグネチャーを生成する。いくつかの実施形態において、他の装置又は他の機能を用いて、新たなシグネチャーを生成する。たとえば、ファイアウォールが新たなシグネチャーを生成するものでもよい。
【００３９】
いくつかの実施形態において、ファイアウォール１００は、（図示しない）コンテンツＩＤエンジンをさらに備える。いくつかの実施形態において、コンテンツＩＤエンジンにより特定されたコンテンツを、アプリケーション、ユーザ及び／又は別の情報等、他の情報と様々に組み合わせて、報告・ポリシー強制エンジン１２０を用いて、様々なセキュリティ／ファイアウォールポリシー／ルールを実行するようにしてもよい。
【００４０】
いくつかの実施形態において、様々な他の機能アーキテクチャ及びフローを提供して、本明細書に記載するホスト情報プロファイル技術を用いてポリシー実行を実施する。たとえば、これらの機能の一部を汎用プロセッサ上で実行されるソフトウェアで実施するようにしてもよい。及び／又は、これらの機能の一部をネットワークトラフィックの高速パケット処理のためのハードウェア・アクセラレーション技術を用いて実施するようにしてもよい。
【００４１】
図２は、いくつかの実施形態に従うマルウェア解析システムのアーキテクチャを示すブロック図である。図２に示すように、クライアントデバイス２０４Ａ、２０４Ｂ及び２０４Ｃｈ、セキュリティ装置２０２を介してインターネット２０６と通信を行う。いくつかの実施形態において、セキュリティ装置２０２は、図示するように、ファイアウォール２１２を備える。いくつかの実施形態において、図示するように、クライアント装置２０４Ａ〜２０４Ｃの１つ以上がファイアウォール２１４（たとえば、ホスト型ファイアウォール）を備える。いくつかの実施形態において、セキュリティ装置２０２は、データ機器（たとえば、セキュリティ機器）、ゲートウェイ（たとえば、セキュリティサーバ）、サーバ（たとえば、ファイアウォール２１２を含むセキュリティソフトウェアを実行するサーバ）、及び／又は、たとえば、コンピューティング・ハードウェア、ソフトウェア又はこれらの様々な組み合わせを用いて実現可能な他のセキュリティ装置を含む。いくつかの実施形態において、ファイアウォール２１２及び／又はファイアウォール２１４は、図１を参照して上述した機能の一部又は全部を実行する。たとえば、クライアント装置２０４Ａ〜２０４Ｃは、コンピュータ、ノートパソコン、タブレット、スマートフォン、及び／又は、ネットワーク通信能力を備える種々の他の種類のコンピューティング装置等、有線及び／又は無線通信を介してインターネットにアクセス可能な様々なコンピューティング装置を含むものでもよい。また、図示するように、サーバ２０８Ａ及び２０８Ｂは、インターネットと通信する。たとえば、クライアント装置は、インターネットを介してサーバにより提供されるサービス、たとえば、ウェブ関連サービス（ウェブサイト、クラウド型サービス、ストリーミングサービスやｅメールサービス等）、ピアツーピア関連サービス（ファイル共有等）、ＩＲＣサービス（チャットサービス等）、及び／又は、インターネットを介して提供される任意の他のサービス等、にアクセス可能である。
【００４２】
また、図２に示すように、仮想マシン（Virtual Machine；ＶＭ）機器／サーバ２１６が提供される。たとえば、ＶＭ機器／サーバ２１６は、VMware（登録商標）又はXEN（登録商標）仮想マシン／仮想化ソフトウェア（Microsoft Windows（登録商標）又はゲストホストとして監視対象のクライアント装置のＯＳを実行する）、並びに、適切な性能又は高性能に必要な／推奨される任意のハードウェア及びその他ソフトウェア／プラットフォーム要件を備えるものでもよい。たとえば、ハードウェア要件は、仮想マシン／仮想化ソフトウェアを実行するためのコンピューティング要件に関して通常高く、他の専用機器又はサーバにＶＭ機能を備えることにより、他のセキュリティ機器／装置はこのようなハードウェアを必要としないため、より低コストのハードウェアを用いることができる。ＶＭ機器／サーバ２１６は、ファイアウォール２１２と通信する。たとえば、ファイアウォール２１２は、既存のシグネチャーのどれとも一致しないマルウェア候補サンプルをＶＭ機器／サーバ２１６に送信して、本明細書に記載する技術を用いてさらなる解析を行うようにしてもよい。マルウェア候補サンプルがマルウェアであると判定された場合には、ＶＭ機器／サーバ２１６（又は、その他の機能／装置）は、そのマルウェアに関する新たなシグネチャーを自動的に生成して、ファイアウォール２１２に送信して、ファイアウォール２１２のシグネチャー／データ及び／又はルール／ポリシーを更新し、そのマルウェアを検出可能として、そのマルウェアを遮断する等の適当な措置をファイアウォール２１２が講じることができるようにしてもよい。したがって、このような技術を用いて、ゼロデイ攻撃でも検出及び遮断できる。いくつかの実施形態において、仮想マシン機器／サーバ２１６は、クライアント装置の１つ以上（たとえば、クライアント２０４Ｂのファイアウォール２１４）、及び／又は、セキュリティクラウドサービス２１０、及び、場合によっては、他の装置／機能と通信する。
【００４３】
いくつかの実施形態において、ＶＭ機器／サーバ２１６は、セキュリティ機器／ゲートウェイ／サーバ２０２上で実行される、又は、セキュリティ機器／ゲートウェイ／サーバ２０２に組み込まれる。いくつかの実施形態において、ＶＭ機器／サーバ２１６は、セキュリティクラウドサービス２１０上で実行される、または、セキュリティクラウドサービス２１０に組み込まれる。
【００４４】
たとえば、セキュリティ装置２０２（統合セキュリティ機器／ゲートウェイ／サーバ等）は、（たとえば、暗号化通信技術等の秘密通信を用いて）セキュリティクラウドサービス２１０と通信を行って、セキュリティ関連のコンテンツのアップデート（シグネチャー、ヒューリスティックス、アプリケーションＩＤ関連情報、ユーザＩＤ関連情報、コンテンツＩＤ関連情報、信頼済み／信頼できないゾーン情報、及び／又は、ポリシー／ルール等）を受信するものでもよい。また別の例として、セキュリティ装置２０２（統合セキュリティ機器／ゲートウェイ／サーバ等）は、（たとえば、暗号化通信技術等の秘密通信を用いて）セキュリティクラウドサービス２１０と通信を行って、監視対象のトラフィック情報（たとえば、パケットフローの一部等、監視対象のトラフィック情報のサブセット形態のもの等のマルウェア候補サンプル、監視対象のURL／DNS情報、アップロード／ダウンロード／アクセス用に求められる監視対象のファイル、及び／又は、その他の情報トラフィックに加えて、フローに関係するクライアント装置のためのコンテンツ情報やユーザ識別及び／又はアプリケーション識別情報等の他の情報）を提供するものでもよく、セキュリティクラウドサービス２１０は追加のリアルタイム解析及び／又は事後解析（たとえば、様々な実施形態に関して記載されるような、新たなマルウェア脅威及びゼロデイ攻撃を含むマルウェアを検出する、及び／又は、セキュリティクラウドサービスの他の顧客用に受信及び解析された他のサンプルと比較するための追加のヒューリスティック解析）を行うものでもよい。以下で明らかになるように、図１に関連して上述した機能の一部又はすべては、セキュリティクラウドサービスによって、全体として、又は、部分的に、支援される、又は、実施されるものでもよい。セキュリティクラウドサービスは、これらの機能の一部を実行することによって、クライアント装置（たとえば、２０４Ｂ）、セキュリティ装置２０２、及び／又は、ＶＭ機器／サーバ２１６の処理を削減することができる。セキュリティクラウドサービスは、また、追加のヒューリスティック型解析を提供することができ、及び／又は、（ネットワークトラフィック挙動及び／又はＵＲＬを含む）さらに多くの情報のネットワークトラフィックフローを受信することによって追加の情報を用いることができ、このような情報を集めて、セキュリティ装置２０２には（まだ）知られていない可能性のある（まだシグネチャーが存在していないもの等）所定のアプリケーショントラフィックフロー及び／又はＵＲＬ用により多くの情報を提供することができる。
【００４５】
いくつかの実施形態において、本明細書に記載する様々な技術を用いて自動的に生成される新たなシグネチャーは、ホスト型ファイアウォール、セキュリティ機器、ネットワーク装置、及び／又は、セキュリティクラウドサービス等の様々な他のセキュリティ機能／装置及び／又はサービスに配布される。いくつかの実施形態において、既存のシグネチャーが存在しないマルウェアを検出するための仮想マシン（ＶＭ）機能は、セキュリティ機器、ファイアウォール機器、ネットワーク／データ機器に組み込まれる、及び／又は、セキュリティサーバ、ネットワークサーバ又はゲートウェイ、及び／又は、クライアント装置（たとえば、パーソナルコンピュータ、ノートパソコン、タブレット、及び／又は、仮想マシンを実行するために十分なプロセッサ及びメモリを備える他の汎用クライアント装置）等のホスト装置上で実行される。いくつかの実施形態において、既存のシグネチャーが存在しないマルウェアを検出するためのＶＭ機能は、セキュリティクラウドサービスにより提供される。いくつかの実施形態において、クライアント装置等のホスト装置、及び／又は、ゲートウェイ又はセキュリティサーバ等のサービスは、ＶＭ機能／装置にマルウェア候補サンプルを提供する。
【００４６】
図３は、いくつかの実施形態に従うマルウェア解析システム用のデータ機器のハードウェアコンポーネントを示す機能図である。図示される例は、データ機器２０２（データ機器又はゲートウェイ等）に備えることができる物理コンポーネントを例示する。具体的には、データ機器２０２は、高性能マルチコアＣＰＵ３０２とＲＡＭ３０４とを備える。データ機器２０２は、さらに、ポリシー及びその他の構成情報並びに既存のシグネチャーを保存するのに用いられる記憶装置３１０（たとえば、１つ以上のハードディスク又は半導体記憶装置）を備える。データ機器２０２は、さらに、１つ以上のハードウェア・アクセラレータを必要に応じて備えるものでもよい。たとえば、データ機器２０２は、暗号及び復号動作を行うように構成される暗号化エンジン３０６、及び、シグネチャー照合を実行し、ネットワークプロセッサーとして動作し、及び／又は、他のタスクを実行するように構成される１つ以上のＦＰＧＡ３０８を備えるものでもよい。
【００４７】
図４は、いくつかの実施形態に従うマルウェア解析システム用のデータ機器の論理コンポーネントを示す機能図である。図示される例は、データ機器２０２に備えることができる論理コンポーネントを例示する。図示するように、データ機器２０２は、管理プレーン４０３と、データプレーン４０４とを備える。いくつかの実施形態において、管理プレーンは、たとえば、ポリシーを構成する及びログデータを見るためのユーザインタフェースを提供することによって、ユーザインタラクションを管理するものである。データプレーンは、たとえば、パケット処理やセッション処理を行うことによって、データを管理するものである。
【００４８】
クライアント２０４Ａが、ＳＳＬ等の暗号化セッションプロトコルを用いてサーバ２０８Ｂにアクセスを試みると仮定する。ネットワークプロセッサ４０６は、クライアント２０４Ａからパケットを受信し、そのパケットを処理のためにデータプレーン４０４に供給するように構成される。フロー４０８は、パケットが新たなセッションの一部であると特定し、新たなセッションフローを作成する。それに続くパケットは、フロールックアップに基づき、セッションに属するものと見なされる。該当する場合には、ＳＳＬ復号器４１０によりＳＳＬ復号が実行される。そうでなければ、ＳＳＬ復号器４１０による処理は省略される。アプリケーション識別モジュール４１２は、セッションがどの種類のトラフィックを含むかを判定し、そのトラフィックフローに関係するユーザを識別するように構成される。たとえば、アプリケーション識別モジュール４１２は、受信データのＧＥＴ要求を認識し、セッションがHTTPデコーダを必要とするという結論を下すものでもよい。プロトコルの種類ごとに、対応するデコーダ４１４が存在する。いくつかの実施形態において、アプリケーション識別モジュール（APP-IDエンジン等）によりアプリケーション識別が実行され、他の機能／エンジンによりユーザ識別が実行される。アプリケーション識別モジュール４１２による特定に基づいて、パケットが適当なデコーダ４１４に送信される。デコーダ４１４は、（バラバラの順序で受信した可能性のある）パケットを正しい順序に組み立てて、トークン化を行い、情報を中質する。デコーダ４１４は、また、シグネチャー照合を行って、パケットに何が生じたかを判断する。また、図示するように、シグネチャー４１８は、管理プレーン４０２に受信・保存される。いくつかの実施形態において、監視、同定及び復号されたセッションのトラフィックフローに基づいて、様々な実施形態を参照して記載したように、シグネチャーを用いたポリシー・エンフォースメントを適用する（ポリシーは、１つ以上のルールを含むものでもよく、ルールは１つ以上のシグネチャーを適用するものでもよい）。いくつかの実施形態において、様々な実施形態を参照して記載した種々の技術を利用して、デコーダ４１４は、新たに生成されたシグネチャーを含む、管理プレーン４０２によって提供されるシグネチャー４１８を用いて、ポリシー４１６を実行するものでもよい。
【００４９】
図５は、いくつかの実施形態に従うマルウェア解析システムのフローチャートである。ステップ５０２では、ファイアウォール（又は、ネットワークルータやIDS／IPS機能／装置等、その他のインラインセキュリティ若しくはネットワーク装置／機能）からマルウェア候補サンプルが受信される。ステップ５０４では、仮想マシンを用いて、マルウェア候補サンプルが解析される。
【００５０】
ステップ５０６では、マルウェア候補サンプルがマルウェアであると判定された場合に、新たなシグネチャーが自動的に生成され。いくつかの実施形態において、新たなシグネチャーは、新たなファイル型シグネチャー（たとえば、マルウェアファイルを識別するためのＭＤ５ハッシュ型シグネチャー、マルウェアファイルを識別するためのファイルの種類に基づくファイルのヘッダ情報からのダイジェスト、又は、疑わしいJavaScript（登録商標）若しくはＰＤＦファイルに新たなデータを付加する最近追加されたヘッダリファレンスであるJavaScript（登録商標）を含むＰＤＦファイル等の解析に基づくヒューリスティック型ファイルシグネチャー生成技術）である。いくつかの実施形態において、新たなシグネチャーは、ＤＮＳ型シグネチャー、ＵＲＬ型シグネチャー、ＩＰ型シグネチャー、プロトコル型シグネチャー、ポート型シグネチャー、及び／又は、インラインネットワークセキュリティ（フィルタリングやファイアウォール等）技術を用いて効果的に適用及び実行可能な他の種類のシグネチャー又はこれらの組み合わせである。たとえば、新たなシグネチャーは、悪質なコンテンツを含むと判定されるＰＤＦファイル用に生成されるものでもよい。該当する場合には、ＰＤＦファイルを易読化し、解析するようにしてもよい。ＰＤＦファイルに（JavaScript（登録商標）等の）スクリプトが含まれていることを検出すると、悪質なJavaScript（登録商標）要素用を検出する悪質スクリプト検出エンジンを用いて、スクリプトをスキャンする。場合によっては、ＰＤＦファイルの１つ以上のスクリプト部分内で識別されたパターンを用いてシグネチャーを生成するようにしてもよい。ＰＤＦファイルの１つ以上のスクリプト部分内で識別されたパターンを用いてシグネチャーが生成されなかった場合、及び／又は、ＰＤＦファイルにスクリプトが含まれていない場合には、ＰＤＦファイルのクロスリファレンステーブルに関係するＰＤＦファイルの部分を用いてシグネチャーを生成するようにしてもよい。生成されたシグネチャーを用いて、以降に受信したＰＤＦファイルがマルウェアを含むか否かを検出するようにしてもよい。
【００５１】
ステップ５０８では、新たなシグネチャーがファイアウォールに送信される。いくつかの実施形態において、新たなシグネチャーは、他のセキュリティ機能／装置及び／又はセキュリティクラウドサービスに配布される。
【００５２】
図６は、いくつかの実施形態に従うマルウェア解析システムの別のフローチャートである。ステップ６０２では、クライアント装置からの／クライアント装置へのネットワークトラフィックフローが監視される。ステップ６０４では、暗号化ネットワークトラフィックフローが復号され、既存のシグネチャーが一致しない場合には、マルウェア候補サンプルが生成され。ステップ６０６では、マルウェア候補サンプルがマルウェア解析装置（たとえば、上述したマルウェア解析及び検出に関する様々な技術を用いて、ＶＭを実行して挙動プロファイル解析を行う仮想マシン（ＶＭ）機器又はサーバ）に送信される。ステップ６０８では、マルウェア候補サンプルの解析結果がマルウェア解析装置から受信される。ステップ６１０では、マルウェア候補サンプルがマルウェアであると判定された場合に、新たなシグネチャーが自動的に生成される。ステップ６１２では、新たなシグネチャーに基づいて、ネットワークアクセス／制御のためにセキュリティポリシーが実行される（たとえば、セキュリティポリシーは、様々なファイアウォールルール又は新たなシグネチャーを用いる／適用することができるその他のネットワークアクセス／制御ルールを含むものでもよい）。
【００５３】
図７は、いくつかの実施形態に従うマルウェア解析システムの別のフローチャートである。ステップ７０２では、（たとえば、セキュリティ／ファイアウォール機器／装置／サーバにより実行される）仮想マシンを用いて、マルウェア候補サンプルが解析される。ステップ７０４では、マルウェア候補サンプルがマルウェアであると判定された場合に、新たなシグネチャーが自動的に生成される。ステップ７０６では、新たなシグネチャーに基づく、又は、新たなシグネチャーを用いる新たなファイアウォールルールが追加される。ステップ７０８では、新たなシグネチャーを用いて、新たなファイアウォールルールが実行される。
【００５４】
実施形態において、ＶＭを用いるマルウェア解析システムによって様々なヒューリスティック技術を実行して、ファイルまたはウェブサイトコンテンツの挙動大間その他の挙動をエミュレートし、ＶＭ環境の制御された／安全なサンドボックス環境内でマルウェア候補サンプルの解析を行う。たとえば、マルウェアと関連することが多い疑惑のある挙動を特定するための挙動プロファイリング技術は、セキュリティアプリケーション／プラットフォーム設定に対するプログラムで実行される変更（たとえば、ウィンドウズ（登録商標）・フィルタリング・プラットフォーム（Windows（登録商標） Filtering Platform：WFP）設定に対する変更、インターネットエクスプローラー（Internet Explorer：IE）ブラウザ設定に対する変更、自動開始レジストリに対する変更、及び／又は、インストールドライバに対する変更）を含むものでもよい。マルウェア解析及び特定に関する様々な他のヒューリスティック手法を図８、図９、及び図１０を参照して以下に記載する。
【００５５】
図８は、いくつかの実施形態に従うマルウェア解析システムの別のフローチャートである。ステップ８０２では、マルウェア又はマルウェア候補を特定するためにネットワークトラフィック内における挙動が監視される（たとえば、ＶＭを用いてマルウェア候補サンプルの挙動をエミュレートする／監視する）。ステップ８０４では、（たとえば、HTTPトラフィック用のポート８０以外のポートを用いる）HTTPトラフィック用の非標準的なHTTPポートに接続するネットワークトラフィック内における挙動が監視される。ステップ８０６では、架空ドメインにアクセスするネットワークトラフィック内における挙動が監視される。ステップ８０８では、非標準的な実行ファイル拡張子を有する実行ファイル（たとえば、一般的な「exe」ファイル拡張子と異なるファイル拡張子を有する実行ファイル）をダウンロードするネットワークトラフィック内における挙動が監視される。ステップ８１０では、ｅメールサーバ用のDNSクエリを実行するネットワークトラフィック内における挙動が監視される。ステップ８１２では、一般的な長さよりも短い長さのHTTPヘッダを用いて通信を行うネットワークトラフィック内における挙動が監視される。たとえば、閾値は３つのHTTPヘッダフィールドで設定され得、以下のように２つのHTTPヘッダフィールド「User-agent」及び「host」しかない場合に起動され得る。
GET/xin.rar HTTP/1.1
User-Agent: RookIE/1.0
Host: www.wc86.com
【００５６】
ステップ８１４では、HTTPトラフィックにおいてポスト法で通信を行うネットワークトラフィック内における挙動が監視される。ステップ８１６では、HTTPポートを介して分類されていないトラフィック（たとえば、未知のアプリケーショントラフィック）の通信を行うネットワークトラフィック内における挙動が監視される。いくつかの実施形態において、マルウェア候補を特定するためのネットワークトラフィック挙動監視に関して様々な他のヒューリスティックスを実行するようにしてもよい。たとえば、（HTTPプロトコルトラフィックにのみ通常用いられるポート８０を用いるIRCプロトコルトラフィック等の）IRCトラフィック用の非標準的なIRCポートに接続する挙動を特定するようにネットワークトラフィックの監視を行うようにしてもよい。別の例として、侵入防止システム回避手法を用いて通信を行うネットワークトラフィック内における挙動を監視する。一例として、HTTPポスト要求において、３つのIPパケットによってストリング「POST」を送信すると仮定する。第１のパケットは、１つの文字「P」であり、第２のパケットは、「P」の重複パケットであり、第３のパケットは「ost」である。この方法は、TCPパケットを再組立てしないファイアウォール／IPS機能を回避するものであるが、TCPパケットの再組立てを含む本明細書に記載する技術を用いることによって、この種の挙動を検出できる。ステップ８１８では、監視及び分類対象のネットワークトラフィックの挙動を相関させて、監視／分類された疑わしい挙動に基づきスコア（たとえば、重大性スコア又はマルウェアスコア）が算出される。
【００５７】
図９は、いくつかの実施形態に従うマルウェア解析システムの別のフローチャートである。ステップ９０２では、マルウェアを特定するためにネットワークトラフィック内における挙動が監視される（たとえば、マルウェア候補サンプルの挙動をエミュレート／監視するためにＶＭを用いる）。ステップ９０４では、通常のドメイン名の長さよりも長いドメイン名を持つドメインにアクセスするネットワークトラフィック内における挙動が監視される（たとえば、既知のマルウェアは、ドメイン2.0.0.805.784286832.1595022578.128.4096.014a0d3f846ea4af889dd9d8bc8aa80bc65807eadd2dbb27f1.twothousands.comにアクセスする。これは閾値長が９０である）。ステップ９０６では、ダイナミックDNSドメインにアクセスするネットワークトラフィック内における挙動が監視される。ステップ９０８では、ファストフラックスドメインにアクセスするネットワークトラフィック内における挙動が監視される。ステップ９１０では、最近作成されたドメインにアクセスするネットワークトラフィック内における挙動が監視される。ステップ９１２では、監視及び分類対象のネットワークトラフィックの挙動を相関させて、監視／分類された疑わしい挙動に基づきスコア（たとえば、重大性スコア又はマルウェアスコア）が算出される。
【００５８】
図１０は、いくつかの実施形態に従うマルウェア解析システムの別のフローチャートである。ステップ１００２では、悪質なドメインを特定するためにアクセスしたドメイン関連挙動が監視される（たとえば、マルウェア候補サンプルの挙動をエミュレート／監視するためにＶＭを用いる）。ステップ１００４では、アクセスしたドメインのドメイン名の長さに関するアクセスドメイン関連挙動が監視される。ステップ１００６では、アクセスしたドメインがダイナミックDNSドメインであるか否かに関するアクセスドメイン関連挙動が監視される。ステップ１００８では、アクセスしたドメインがファストフラックスドメインであるか否かに関するアクセスドメイン関連挙動が監視される。ステップ１０１０では、アクセスしたドメインが最近作成されたドメインであるか否かに関するアクセスドメイン関連挙動が監視される。ステップ１０１２では、監視及び分類対象のネットワークトラフィックの挙動を相関させて、監視／分類された疑わしい挙動に基づきスコア（たとえば、重大性スコア又はマルウェアスコア）が算出される。
【００５９】
自明のことであるが、上述した様々な実施形態に従うマルウェア解析システムを用いて、他の種々のヒューリスティック型マルウェア検出技術を適用可能である。また、上述した様々な技術を用いて、種々のシステム及びネットワークアーキテクチャを適用可能である。たとえば、インラインフィルタリング機能を提供し、上述したような仮想マシン解析技術を実行する統合型セキュリティ機器において、上述したマルウェア解析のための様々な技術を実現するようにしてもよい。別の例として、マルウェア解析結果（たとえば、新しいシグネチャー、及び／又は、他の機能部による新しいシグネチャーの生成を容易にするマルウェア解析結果）を他の種々のセキュリティ機能部（たとえば、セキュリティ機器、ネットワーク機器、及び／又は、ホスト型セキュリティソフトウェア）に通信可能な別の機器又はコンピュータサーバを用いて、仮想マシン機能を実現するようにしてもよい。また別の例として、マルウェア解析結果（たとえば、新しいシグネチャー、及び／又は、他の機能部による新しいシグネチャーの生成を容易にするマルウェア解析結果）を他の種々のセキュリティ機能部（たとえば、セキュリティ機器、ネットワーク機器、及び／又は、ホスト型セキュリティソフトウェア）に通信可能な、及び／又は、新たなセキュリティアップデート（たとえば、セキュリティクラウドサービスベンダーからのシグネチャーアップデートに登録している様々なセキュリティ装置／ソフトウェアに新たなシグネチャーをプッシュする）を生成可能な（たとえば、上述したようなログ情報を用いる所定の事後解析技術を実行する）セキュリティクラウドサービスを用いて、又は、セキュリティクラウドサービスの支援により、仮想マシン機能を実現するようにしてもよい。
【００６０】
以上、理解を助ける目的で実施形態を詳細に説明したが、本発明は上述した詳細に限定されるものではなく、本発明は多くの別の形態で実施可能である。上述した実施形態は例示に過ぎず、限定するものではない。
【図１】
2014519113.tif 000003
【図２】
2014519113.tif 000004
【図３】
2014519113.tif 000005
【図４】
2014519113.tif 000006
【図５】
2014519113.tif 000007
【図６】
2014519113.tif 000008
【図７】
2014519113.tif 000009
【図８】
2014519113.tif 000010
【図９】
2014519113.tif 000011
【図１０】
2014519113.tif 000012
【国際調査報告】
2014519113.tif 000013