特許第6106780号(P6106780)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パロ・アルト・ネットワークス・インコーポレーテッドの特許一覧

<>
  • 特許6106780-マルウェア解析システム 図000002
  • 特許6106780-マルウェア解析システム 図000003
  • 特許6106780-マルウェア解析システム 図000004
  • 特許6106780-マルウェア解析システム 図000005
  • 特許6106780-マルウェア解析システム 図000006
  • 特許6106780-マルウェア解析システム 図000007
  • 特許6106780-マルウェア解析システム 図000008
  • 特許6106780-マルウェア解析システム 図000009
  • 特許6106780-マルウェア解析システム 図000010
  • 特許6106780-マルウェア解析システム 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6106780
(24)【登録日】2017年3月10日
(45)【発行日】2017年4月5日
(54)【発明の名称】マルウェア解析システム
(51)【国際特許分類】
   G06F 21/56 20130101AFI20170327BHJP
【FI】
   G06F21/56 310
【請求項の数】20
【外国語出願】
【全頁数】25
(21)【出願番号】特願2016-45104(P2016-45104)
(22)【出願日】2016年3月9日
(62)【分割の表示】特願2014-512893(P2014-512893)の分割
【原出願日】2012年5月17日
(65)【公開番号】特開2016-146192(P2016-146192A)
(43)【公開日】2016年8月12日
【審査請求日】2016年3月17日
(31)【優先権主張番号】13/115,032
(32)【優先日】2011年5月24日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】513293740
【氏名又は名称】パロ・アルト・ネットワークス・インコーポレーテッド
【氏名又は名称原語表記】PALO ALTO NETWORKS INCORPORATED
(74)【代理人】
【識別番号】110000028
【氏名又は名称】特許業務法人明成国際特許事務所
(72)【発明者】
【氏名】シエ・ホワガーン
(72)【発明者】
【氏名】ワーン・シンラン
(72)【発明者】
【氏名】リウ・ジアーンシア
【審査官】 脇岡 剛
(56)【参考文献】
【文献】 特開2004−302538(JP,A)
【文献】 米国特許出願公開第2009/0282483(US,A1)
【文献】 米国特許出願公開第2008/0133540(US,A1)
【文献】 特開2003−241989(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/56
(57)【特許請求の範囲】
【請求項1】
ァイアウォールを実行するように構成された第1プロセッサを有する第1の装置と、
仮想マシンを実行するように構成された第2プロセッサを有する第2の装置と、
前記第1の装置の前記第1プロセッサを用いる前記ファイアウォールの実行は、
ネットワークトラフィックフローに関連するアプリケーションの種類を特定することと、
少なくとも前記特定されたアプリケーションに基づき前記ネットワークトラフィックフローをデコードし、前記ネットワークトラフィックフローのデコードによって、前記ネットワークトラフィックフローに関連する1以上のパケットを正しい順序に組み立てるデコーダを選択することと、
前記ネットワークトラフィックフローの少なくとも一部から、マルウェア候補サンプルを生成するために前記ファイアウォールを使用することと、
既存のシグネチャーに一致しない前記マルウェア候補サンプルを決定することと、
前記マルウェア候補サンプルを前記ファイアウォールから前記仮想マシンに送信することと、を含み、
前記第2の装置の前記第2プロセッサを用いる前記仮想マシンの実行は、
マルウェアの特定のためのエミュレーションの際に前記マルウェア候補サンプルの挙動を監視するために前記仮想マシンを用いことと、
記マルウェア候補サンプルがマルウェアであると判定された場合に、前記仮想マシンを使用してシグネチャーを自動的に生成することと、
少なくとも一部の前記シグネチャーに基づくネットワークアクセスのためのセキュリティポリシーを強制するように構成されている前記ファイアウォールに、前記シグネチャーを前記仮想マシンから送信することと、を含む
システム。
【請求項2】
前記マルウェアの特定のためのエミュレーションの際に前記マルウェア候補サンプルの挙動を監視するために、前記仮想マシンを用いることは、セキュリティアプリケーションの設定と、プラットフォームの設定との少なくとも一部のプログラムの変更を特定することを含む
請求項1に記載のシステム。
【請求項3】
前記マルウェアの特定のためのエミュレーションの際に前記マルウェア候補サンプルの挙動を監視するために、前記仮想マシンを用いることは、HTTPトラフィック用の非標準的なHTTPポートに接続すること、架空ドメインにアクセスすること、非標準的な実行ファイル拡張子を有する実行ファイルをダウンロードすること、eメールサーバ用のDNSクエリを実行すること、一般的な長さよりも短い長さのHTTPヘッダを用いて通信を行うこと、HTTPトラフィックにおいてポスト法で通信を行うこと、IRCトラフィック用の非標準的なIRCポートに接続すること、侵入防止システム回避手法を用いて通信を行うこと、及び、HTTPポートを介して分類されていないトラフィックの通信を行うことの1つ以上を特定することを含む
請求項1に記載のシステム。
【請求項4】
前記マルウェアの特定のためのエミュレーションの際に前記マルウェア候補サンプルの挙動を監視するために、前記仮想マシンを用いることは、アクセスされたドメインが閾値を超える長さのドメイン名を持つこと、アクセスされたドメインがダイナミックDNSドメインであるか否か、アクセスされたドメインがファストフラックスドメインであるか否か、及びアクセスされたドメインが最近作成されたドメインであるか否かのうちの1つ以上を特定することを含む
請求項1に記載のシステム。
【請求項5】
前記マルウェアの特定のためのエミュレーションの際に前記マルウェア候補サンプルの挙動を監視するために、前記仮想マシンを用いることは、悪質なドメインの特定を含み、
前記監視対象のアクセスされたドメインは、アクセスされたドメインが閾値を超える長さのドメイン名を持つこと、アクセスされたドメインがファストフラックスドメインであるか否か、及びアクセスされたドメインが最近作成されたドメインであるか否かのうちの1つ以上に基づき、潜在的に悪質なドメインであることを示す
請求項1に記載のシステム。
【請求項6】
記第の装置の前記第1プロセッサを用いる前記ファイアウォールを実行することは、さらに、マルウェア候補に関するログ情報を前記仮想マシンに送信することを含み、
前記ログ情報は、セッション情報、アプリケーション識別情報、URLカテゴリー情報、及び、脆弱性警告情報の1つ以上を含む
請求項1に記載のシステム。
【請求項7】
前記シグネチャーは、マルウェアファイルを識別するためのMD5ハッシュ型シグネチャー、マルウェアファイルを識別するためのファイルの種類に基づくファイルのヘッダ情報からのダイジェスト、及びヒューリスティック型ファイルシグネチャーの1つ以上によって構成される
請求項1に記載のシステム。
【請求項8】
前記シグネチャーは、DNS型シグネチャー、URL型シグネチャー、IP型シグネチャー、プロトコル型シグネチャー、及びポート型シグネチャーの1つ以上によって構成される
請求項1に記載のシステム。
【請求項9】
前記ネットワークトラフィックフローは、PDFファイルを含み、
前記シグネチャーは、前記PDFファイルに含まれるスクリプトの少なくとも一部に基づき生成される
請求項1に記載のシステム。
【請求項10】
前記ネットワークトラフィックフローは、PDFファイルを含み、
前記シグネチャーは、前記PDFファイルに含まれるクロスリファレンステーブルの少なくとも一部に基づき生成される
請求項1に記載のシステム。
【請求項11】
前記ネットワークトラフィックフローの少なくとも一部から、前記マルウェア候補サンプルを生成するために前記ファイアウォールを使用することは、前記ネットワークトラフィックフローの復号を含む
請求項1に記載のシステム。
【請求項12】
前記第2の装置の前記第2プロセッサを用いる前記仮想マシンを実行すること、さらに、前記シグネチャーを、前記仮想マシンから、前記第1の装置以外の1以上のセキュリティ装置に送信することを含む
請求項1に記載のシステム。
【請求項13】
ネットワークトラフィックフローに関連するアプリケーションの種類を特定することと、
少なくとも前記特定されたアプリケーションに基づき前記ネットワークトラフィックフローをデコードし、前記ネットワークトラフィックフローのデコードによって、前記ネットワークトラフィックフローに関連する1以上のパケットを正しい順序に組み立てるデコーダを選択することと、
前記ネットワークトラフィックフローの少なくとも一部から、マルウェア候補サンプルを生成するために、第1の装置の実行によってファイアウォールを使用することと、
既存のシグネチャーに一致しない前記マルウェア候補サンプルを決定するために、前記ファイアウォールを使用することと、
前記マルウェア候補サンプルを前記ファイアウォールから、第2の装置によって実行される仮想マシンに送信することと、
マルウェアの特定のためのエミュレーションの際に前記マルウェア候補サンプルの挙動を監視するために、前記仮想マシンを用いることと、
前記マルウェア候補サンプルがマルウェアであると判定された場合に、前記仮想マシンを使用してシグネチャーを自動的に生成することと、
少なくとも一部の前記シグネチャーに基づくネットワークアクセスのためのセキュリティポリシーを強制するように構成されている前記ファイアウォールに、前記シグネチャーを前記仮想マシンから送信することと、
を含む方法。
【請求項14】
前記マルウェアの特定のためのエミュレーションの際に前記マルウェア候補サンプルの挙動を監視するために、前記仮想マシンを用いることは、セキュリティアプリケーションの設定と、プラットフォームの設定との少なくとも一部のプログラムの変更を特定することを含む
請求項13に記載の方法。
【請求項15】
前記マルウェアの特定のためのエミュレーションの際に前記マルウェア候補サンプルの挙動を監視するために、前記仮想マシンを用いることは、HTTPトラフィック用の非標準的なHTTPポートに接続すること、架空ドメインにアクセスすること、非標準的な実行ファイル拡張子を有する実行ファイルをダウンロードすること、eメールサーバ用のDNSクエリを実行すること、一般的な長さよりも短い長さのHTTPヘッダを用いて通信を行うこと、HTTPトラフィックにおいてポスト法で通信を行うこと、IRCトラフィック用の非標準的なIRCポートに接続すること、侵入防止システム回避手法を用いて通信を行うこと、及び、HTTPポートを介して分類されていないトラフィックの通信を行うことの1つ以上を特定することを含む
請求項13に記載の方法。
【請求項16】
前記マルウェアの特定のためのエミュレーションの際に前記マルウェア候補サンプルの挙動を監視するために、前記仮想マシンを用いることは、アクセスされたドメインが閾値を超える長さのドメイン名を持つこと、アクセスされたドメインがダイナミックDNSドメインであるか否か、アクセスされたドメインがファストフラックスドメインであるか否か、及びアクセスされたドメインが最近作成されたドメインであるか否かのうちの1つ以上を特定することを含む
請求項13に記載の方法。
【請求項17】
前記マルウェアの特定のためのエミュレーションの際に前記マルウェア候補サンプルの挙動を監視するために、前記仮想マシンを用いることは、悪質なドメインの特定を含み、
前記監視対象のアクセスされたドメインは、アクセスされたドメインが閾値を超える長さのドメイン名を持つこと、アクセスされたドメインがファストフラックスドメインであるか否か、及びアクセスされたドメインが最近作成されたドメインであるか否かのうちの1つ以上に基づき、潜在的に悪質なドメインであることを示す
請求項13に記載の方法。
【請求項18】
さらに、マルウェア候補に関するログ情報を前記仮想マシンに送信することを含み、
前記ログ情報は、セッション情報、アプリケーション識別情報、URLカテゴリー情報、及び、脆弱性警告情報の1つ以上を含む
請求項13に記載の方法。
【請求項19】
前記シグネチャーは、マルウェアファイルを識別するためのMD5ハッシュ型シグネチャー、マルウェアファイルを識別するためのファイルの種類に基づくファイルのヘッダ情報からのダイジェスト、及びヒューリスティック型ファイルシグネチャーの1つ以上によって構成される
請求項13に記載の方法。
【請求項20】
ネットワークトラフィックフローに関連するアプリケーションの種類を特定することと、
少なくとも前記特定されたアプリケーションに基づき前記ネットワークトラフィックフローをデコードし、前記ネットワークトラフィックフローのデコードによって、前記ネットワークトラフィックフローに関連する1以上のパケットを正しい順序に組み立てるデコーダを選択することと、
前記ネットワークトラフィックフローの少なくとも一部から、マルウェア候補サンプルを生成するために、第1の装置の実行によってファイアウォールを使用することと、
既存のシグネチャーに一致しない前記マルウェア候補サンプルを決定するために、前記ファイアウォールを使用することと、
前記マルウェア候補サンプルを前記ファイアウォールから、第2の装置によって実行される仮想マシンに送信することと、
マルウェアの特定のためのエミュレーションの際に前記マルウェア候補サンプルの挙動を監視するために、前記仮想マシンを用いることと、
前記マルウェア候補サンプルがマルウェアであると判定された場合に、前記仮想マシンを使用してシグネチャーを自動的に生成することと、
少なくとも一部の前記シグネチャーに基づくネットワークアクセスのためのセキュリティポリシーを強制するように構成されている前記ファイアウォールに、前記シグネチャーを前記仮想マシンから送信することと、
を前記第1及び第2の装置に実行させるためのプログラム。
【発明の詳細な説明】
【背景技術】
【0001】
ファイアウォールは、一般的に、不正なアクセスからネットワークを保護する一方で、承認された通信がファイアウォールを通過することを許可する。ファイアウォールは、通常、ネットワークアクセスに対してファイアウォール機能を提供する装置、装置群又はコンピュータ等のデバイス上で実行されるソフトウェアである。たとえば、ファイアウォールは、装置(コンピュータ、スマートフォンやその他の種類のネットワーク通信可能な装置等)のオペレーティングシステム内に組み込まれるものでもよい。また、ファイアウォールは、コンピュータサーバ、ゲートウェイ、ネットワーク/ルーティング装置(ネットワークルータ等)又はデータ機器(セキュリティ機器やその他の種類の専用装置等)上のソフトウェアに組み込まれるもの、又は、ソフトウェアとして実行されるものでもよい。
【0002】
ファイアウォールは、通常、ルール群に基づいて、ネットワーク送信を拒絶又は許可する。このようなルール群はポリシーとも呼ばれる。たとえば、ファイアウォールは、ルール群又はポリシーを適用することによって、インバウンドトラフィックのフィルタリングを行なうことができる。また、ファイアウォールは、ルール群又はポリシーを適用することによって、アウトバウンドトラフィックのフィルタリングを行なうこともできる。ファイアウォールは、さらに、基本ルーティング機能を実施可能である。
【発明の概要】
【0003】
本発明のさまざまな実施形態を、添付の図面と共に以下に詳細に記載する。
【図面の簡単な説明】
【0004】
図1】いくつかの実施形態に従うマルウェア解析システムの機能図。
【0005】
図2】いくつかの実施形態に従うマルウェア解析システムのアーキテクチャを示すブロック図。
【0006】
図3】いくつかの実施形態に従うマルウェア解析システム用のデータ機器のハードウェアコンポーネントを示す機能図。
【0007】
図4】いくつかの実施形態に従うマルウェア解析システム用のデータ機器の論理コンポーネントを示す機能図。
【0008】
図5】いくつかの実施形態に従うマルウェア解析システムのフローチャート。
【0009】
図6】いくつかの実施形態に従うマルウェア解析システムの別のフローチャート。
【0010】
図7】いくつかの実施形態に従うマルウェア解析システムの別のフローチャート。
【0011】
図8】いくつかの実施形態に従うマルウェア解析システムの別のフローチャート。
【0012】
図9】いくつかの実施形態に従うマルウェア解析システムの別のフローチャート。
【0013】
図10】いくつかの実施形態に従うマルウェア解析システムの別のフローチャート。
【発明を実施するための形態】
【0014】
本発明は、プロセス、装置、システム、組成、コンピュータ読み取り可能な記憶媒体上に実現されるコンピュータプログラム製品、及び/又は、プロセッサに接続される記憶装置上に保存される、及び/又は、プロセッサに接続される記憶装置により提供される命令を実行するように構成されるプロセッサ等のプロセッサを含む、さまざまな態様で実施可能である。本明細書において、これらの態様又は本発明を実施する他のあらゆる形態を、手法とも称する。一般に、本明細書で開示する処理の各工程の順序は、本発明の要旨の範囲内で変更可能である。他に明記しない限り、あるタスクを実行するように構成されるものとして記載されるプロセッサまたは記憶装置等の構成要素は、任意の時点でそのタスクを実行するように一時的に構成される一般的な構成要素として実現されるものでもよいし、そのタスクを実行するように製造された専用の構成要素として実現されるものでもよい。本明細書において用いられる「プロセッサ」という用語は、コンピュータプログラム命令等のデータを処理するように構成される1つ以上のデバイス、回路及び/又は処理コアを示す。
【0015】
本発明の1つ又は複数の実施形態の詳細を、本発明の原理を例示する添付の図面と共に、以下に記載する。本発明を実施形態に関連して説明するが、本発明はいかなる実施形態にも限定されるものではない。本発明の範囲は請求項によってのみ限定されるものであり、本発明には、多数の変形例、変更例及びそれらの等価物が包含される。以下、本発明が十分に理解されるように、数多くの具体的な詳細を説明するが、これらの詳細は例示に過ぎず、これらの具体的な詳細の一部または全部を省略した形態でも請求項に従って本発明を実施可能である。理解を容易にするために、本発明に関連する技術分野で周知の技術要素に関しては、本発明を不要に不明確にすることがないように、詳細に説明しない。
【0016】
ファイアウォールは、一般的に、不正なアクセスからネットワークを保護する一方で、承認された通信がファイアウォールを通過することを許可する。ファイアウォールは、通常、ネットワークアクセスに対してファイアウォール機能を提供する装置、装置群又はデバイス上で実行されるソフトウェアである。たとえば、ファイアウォールは、装置(コンピュータ、スマートフォンやその他の種類のネットワーク通信可能な装置等)のオペレーティングシステム内に組み込まれるものでもよい。また、ファイアウォールは、コンピュータサーバ、ゲートウェイ、ネットワーク/ルーティング装置(ネットワークルータ等)又はデータ機器(セキュリティ機器やその他の種類の専用装置等)等、さまざまな種類の装置上のアプリケーションソフトウェアに組み込まれるもの、又は、アプリケーションソフトウェアとして実行されるものでもよい。
【0017】
ファイアウォールは、通常、ルール群(一連の規則)に基づいて、ネットワーク送信を拒絶又は許可する。このようなルール群はポリシーとも呼ばれる。たとえば、ファイアウォールは、保護対象の装置に不要な外部トラフィックが到達することがないようにルール群又はポリシーを適用することによって、インバウンドトラフィックのフィルタリングを行なうことができる。また、ファイアウォールは、ルール群又はポリシーを適用することによって、アウトバウンドトラフィックのフィルタリングを行なうこともできる(たとえば、本明細書に記載するもの等様々な基準に基づいて起動可能な許可、遮断、監視、通知、ログ、及び/又は、その他の動作をファイアウォールルール又はファイアウォールポリシーにおいて指定することができる)。ファイアウォールは、さらに、基本ルーティング機能を実施可能である。
【0018】
基本パケットフィルタ型ファイアウォールは、ネットワークを介して送信される個々のパケットを検査することによって、ネットワーク通信トラフィックのフィルタリングを行う(ステートレスなパケットフィルタ型ファイアウォールであるパケットフィルタ型ファイアウォール又は第1世代ファイアウォール等)。ステートレスなパケットフィルタ型ファイアウォールは、通常、(たとえば、パケットの送信元および送信先アドレス情報とプロトコル情報とポート番号との組み合わせを用いて)個々のパケット自体を検査して、検査されたパケットに基づいてルールを適用する。
【0019】
また、アプリケーション・ファイアウォールは、アプリケーションレイヤのフィルタリングを実行することができる(TCP/IPスタックのアプリケーションレベル上で動作するアプリケーションレイヤ・フィルタリング・ファイアウォール又は第2世代ファイアウォール等)。アプリケーションレイヤ・フィルタリング・ファイアウォール又はアプリケーション・ファイヤウォールは、一般的に、所定のアプリケーション及びプロトコル(たとえば、Hyper Text Transfer Protocol(HTTP)を用いるウェブブラウジング、Domain Name System(DNS)要求、File Transfer Protocol(FTP)を用いるファイル転送及びさまざまなその他の種類のアプリケーションやTelnet、DHCP、TCP、UDP及びTFTP(GSS)等その他のプロトコル)を特定可能である。たとえば、アプリケーション・ファイアウォールは、標準ポートを介した通信を試みる不正なプロトコルを遮断することができる(たとえば、アプリケーション・ファイアウォールによって一般的にプロトコルを特定可能な非標準ポートを用いて擦り抜けようと試みる不正な/ポリシー外のプロトコル)。
【0020】
また、ステートフル・ファイアウォールは、パケットのネットワーク送信のフロー/パケットフローに関連する一連のパケットのコンテクスト内で各パケットを検査する、ステートフルなパケット検査を行うことができる(ステートフル・ファイアウォール又は第3世代ファイアフォール等)。このファイアウォール技術では、ファイアウォールを通過したすべての接続の記録を保持し、あるパケットが新たな接続の開始なのか、既存の接続の一部なのか、あるいは、無効なパケットであるのかを判定することができるため、これを、一般的に、ステートフルなパケット検査と称する。たとえば、接続状態自体を、ポリシーにおける1つのルールを起動する基準の1つとすることができる。
【0021】
先進ファイアウォール又は次世代ファイアウォールは、上述したようなステートレス及びステートフル・パケットフィルタリング及びアプリケーションレイヤ・フィルタリングを行なうことができる。また、次世代ファイアウォールは、さらに別のファイアウォール技術も実行可能である。たとえば、先進ファイアウォール又は次世代ファイアウォールとも称される最新のファイアウォールは、ユーザ及びコンテンツの識別も可能である(次世代ファイアウォール等)。特に、所定の次世代ファイアウォールでは、これらのファイアウォールが自動的に識別可能なアプリケーションのリストを何千ものアプリケーションに拡大しつつある。このような次世代ファイアウォールの例として、パロアルトネットワークス社から市販されているものが挙げられる(たとえば、パロアルトネットワークスのPAシリーズ・ファイアウォール)。たとえば、パロアルトネットワークスの次世代ファイアウォールは、以下のような様々な識別技術を用いて、単なるポート、IPアドレスやパケットではなく、アプリケーション、ユーザ及びコンテンツを企業が識別して制御することを可能にする。APP-IDによる正確なアプリケーション識別、User-IDによるユーザ識別(たとえば、ユーザ又はユーザグループ)及びContent-IDによるリアルタイムのコンテンツ・スキャニング(たとえば、ウェブサーフィンの制御やデータ及びファイル転送の制限)。これらの識別技術によって、従来のポート遮断ファイアウォールにより提供される従来のアプローチに従う代わりに、企業によるビジネス関連概念を用いたアプリケーションの使用が確実に可能になる。また、たとえば、専用機器として実現されるような次世代ファイアウォール用の専用ハードウェアは、汎用ハードウェア上で実行されるソフトウェアよりも高性能なレベルのアプリケーション検査を可能にする(たとえば、ネットワークスループットを最大にするとともに待ち時間を最小限に抑えるシングルパス・ソフトウェアエンジンと緊密に一体化された専用の特定機能処理を用いるパロアルトネットワークス社により提供されるセキュリティ機器)。
【0022】
現在のファイアウォールは、通常、シグネチャー及び/又はヒューリスティックスに基づく強制を行う。このため、マルウェアを検出するためには、ファイアウォールは、一般的に、マルウェアを検出可能な既存のシグネチャー又は既存のヒューリスティックス(たとえば、所定のシグネチャー及び/又は所定のヒューリスティック)を備える必要がある。
【0023】
ただし、ゼロアワー攻撃ともデイゼロ攻撃とも称されるゼロデイ攻撃は、他者又はソフトウェア開発者にとって新たな及び/又は今までに未確認又は未知の(オペレーティングシステム、アプリケーションソフトウェア、セキュリティソフトウェア及び/又はその他の形態のコンピューティング/ネットワークプラットフォームにおける)脆弱性を利用したエクスプロイトを試みるマルウェア脅威又は攻撃である。ゼロデイ・エクスプロイトは、通常、セキュリティホールへの攻撃をエクスプロイトするソフトウェアを意味する。ゼロデイ・エクスプロイトは、対象となるソフトウェア/プラットフォームの開発者が脆弱性を認識する前に、及び/又は、対象となるソフトウェア/プラットフォームのプロバイダーが脆弱性に対する解決策を提供する前に(たとえば、セキュリティホールにパッチを適用するアップデートを配布する前に)、及び/又は、セキュリティ・プロバイダーがマルウェアを検出可能なアップデートを提供する前に(たとえば、脆弱性を利用したエクスプロイトを試みる攻撃を検出可能なシグネチャー及び/又はヒューリスティックを配布する前に)、ハッカー又はアタッカーにより用いられる又は共有される。
【0024】
ゼロデイ・エクスプロイトに対処する様々なアプローチが存在するが、このようなアプローチには各々異なった問題点がある。たとえば、脆弱性評価ソフトウェアは、ソフトウェアプラットフォーム及び/又はアプリケーションの脆弱性を特定しようとするものである。しかし、脆弱性評価手法では、すべての新たな脆弱性候補を特定することはできない。また、たとえば、(ファイアウォール及び/又は侵入検出/防止システム等によって実現される)ホワイトリスト手法は、周知の問題のないアプリケーションに基づいてアクセスを制限することができる。しかし、このようなアプローチは非常に限定的であり、周知の問題のないアプリケーションの中には、試験の際には特定されなかった、又は、脆弱性評価手法では特定されなかったような脆弱性が後で見つかることもあり得る。(たとえば、周知の問題のあるアプリケーション、又は、周知の脆弱性を持つアプリケーションを遮断するシグネチャーに基づく手法を用いる)ブラックリスト手法とホワイトリスト手法とを組み合わせる手法を用いて、周知の問題のないアプリケーションにアクセスを限定する、及び/又は、周知の問題のあるアプリケーションへのアクセスを防止することもできる。しかし、このアプローチも、上述のアプローチと同様の問題点があり、同様に、ユーザ及びネットワーク/コンピューティング環境に対して非常に限定的である。他の現在のアプローチは、ホストが感染した(たとえば、悪質なファイルをダウンロードした)可能性があることを判定して、感染したホストを検疫するものであるが、このようなアプローチでは、ホストの感染を防止することはできず、また、一般的に、同じ悪質なファイルによる他のホストの将来的な感染を防ぐこともできない。
【0025】
ネットワーク上で通信する装置をさらに保護するために必要なものは、(たとえば、新たなゼロデイ・エクスプロイトを効果的に防止するように)既存のシグネチャーが検出しないマルウェアを検出するためのマルウェア解析システムである。したがって、マルウェア解析システムを開示する。特に、本明細書に記載する様々な手法を用いて、ゼロデイ保護を可能にするマルウェア解析を提供する。ゼロデイ保護は、既存のシグネチャーでは存在しない新たなマルウェア脅威を検出し、新たなマルウェア脅威に対してリアルタイムで自動的に新たなシグネチャーを生成することによって、ゼロデイ・エクスプロイトから保護する。たとえば、仮想マシン(virtual machine:VM)を用いて、ファイル転送時に(たとえば、ファイルダウンロード時に)リアルタイムで実行可能なヒューリスティック型解析手法を用いた(VMサンドボックス環境等における)挙動プロファイリングを実行するようにしてもよい。ダウンロード中のファイルが悪質なものであると判定されると、ファイアウォールは、その解析結果に基づいて、自動的にファイルのダウンロードを遮断して、新たなシグネチャーを生成して配布し、悪質なものと判定されたファイルをダウンロードする将来的なファイル転送要求を自動的に遮断する。いくつかの実施形態において、VMを用いるマルウェア解析システムによって、様々なヒューリスティック手法を実行し、(たとえば、JavaScript(登録商標)等の実行コードを備える)ファイルの共同、ウェブサイトのコンテンツ、及び/又は、他の挙動をエミュレートして、マルウェア候補サンプルを解析する。たとえば、所定のウェブサイトにアクセスして、そのウェブサイトから所定のコンテンツをダウンロードするVMエミュレーションは、所定のプラットフォーム、ソフトウェア又はレジストリ設定に対する変更等、ある種疑いのある挙動と見なすことができる。以下、種々の実施形態を参照して、VM環境を用いたマルウェア解析のための他の様々なヒューリスティック型解析手法を説明する。
【0026】
いくつかの実施形態において、マルウェア解析システムは、ファイアウォールからマルウェア候補サンプルを受信し、マルウェア候補サンプルがマルウェアであるか否かを判定するために仮想マシンを用いてマルウェア候補サンプルを解析し、マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャー(たとえば、ファイル用のハッシュ型シグネチャー及び/又は本明細書に記載する他の種類のシグネチャー)を自動的に生成することを備える。いくつかの実施形態において、シグネチャーは、複数のネットワーク装置/機能(たとえば、ルータ及びゲートウェイ)及び/又はセキュリティ装置/機能(たとえば、セキュリティ/ファイアウォール機器、セキュリティ/ファイアウォールゲートウェイ、ホスト型ファイアウォール、ホスト型セキュリティスイート、及び、セキュリティクラウドサービス)に配布される。いくつかの実施形態において、マルウェア候補サンプルは、既存のシグネチャーと一致しない。いくつかの実施形態において、マルウェア候補サンプルは、既存のシグネチャーと一致せず、マルウェアはゼロデイ攻撃である。
【0027】
いくつかの実施形態において、ファイアウォールは、第1の装置上で実行され、仮想マシンは第2の装置上で実行される。いくつかの実施形態において、ファイアウォールは、セキュリティ機器(たとえば、ファイアウォール機器)によって実施され、仮想マシンは、仮想マシン(VM)機器によって実施される。いくつかの実施形態において、ファイアウォールは、第1の装置上で実行されるホスト型ファイアウォールであり、仮想マシンは、仮想マシン機器によって実施される。いくつかの実施形態において、仮想マシンは、セキュリティクラウドサービスによって実施される。いくつかの実施形態において、ファイアウォールは、ネットワークトラフィックフローを復号して、仮想マシンを用いた解析を行うように、マルウェア候補サンプルを生成する。
【0028】
いくつかの実施形態において、マルウェア解析システムは、さらに、シグネチャーをファイアウォールに送信することを備え、ファイアウォールは、1つ又は複数のファイアウォールポリシー内にシグネチャーを備える。いくつかの実施形態において、マルウェア解析システムは、さらに、シグネチャーをファイアウォールに送信することを備え、ファイアウォールは、ゲートウェイセキュリティ装置、セキュリティ機器、ネットワーク・ルーティング装置、又は、ホスト型ファイアウォールを実行する汎用コンピュータにおいて実施される。いくつかの実施形態において、マルウェア解析システムは、さらに、シグネチャーをクラウドセキュリティサービスに送信することを備える。
【0029】
いくつかの実施形態において、マルウェア解析システムは、さらに、仮想マシンを用いるエミュレーションの際にマルウェア候補サンプルの挙動を監視して、マルウェアを特定することを備える。たとえば、本明細書に記載するような様々なヒューリスティックに基づく手法を用いて(たとえば、URL、DNS、プロトコル、及び/又はファイル又は他の情報、活動若しくは挙動プロファイリング手法を用いて)、マルウェア候補サンプルがマルウェアであると判定する、又は、マルウェアと判定するべきであると判定するようにしてもよい。
【0030】
いくつかの実施形態において、マルウェア解析システムは、マルウェア候補に関するログ情報を仮想マシンに送信することを備える。たとえば、ログ情報は、セッション情報、アプリケーション識別情報、URLカテゴリー情報、及び/又は、脆弱性警告情報を含むものでもよい。いくつかの実施形態において、仮想マシンは、ログ情報を用いて事後解析を行って、マルウェア候補がマルウェアであるか否かを判定する。
【0031】
いくつかの実施形態において、マルウェア解析システムは、複数のネットワークトラフィックフローを監視することと、暗号化ネットワークトラフィックフローを復号して、既存のシグネチャーと一致しないマルウェア候補サンプルを生成することと、仮想マシンを実行し仮想マシンを用いてマルウェア候補サンプルを解析することによってマルウェア候補サンプルがマルウェアであるか否かを判定するマルウェア解析装置にマルウェア候補サンプルを送信することと、マルウェア解析装置からマルウェア候補サンプルの解析結果を受信することと、マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャーを自動的に生成することと、シグネチャーに基づいてネットワークアクセス用のセキュリティポリシーを実行(強制)することと、を備える。
【0032】
いくつかの実施形態において、マルウェア解析システムは、仮想マシンを用いてシグネチャーが存在しないマルウェア候補サンプルを解析することによって、マルウェア候補サンプルがマルウェアであるか否かを判定することと、マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャーを自動的に生成することと、シグネチャーに基づくファイアウォールルールを追加することと、シグネチャーを用いてファイアウォールルールを実行することと、を備える。
【0033】
図1は、いくつかの実施形態に従うマルウェア解析システムの機能図である。図1に示すように、ファイアウォール100で、ネットワークトラフィックが監視される。いくつかの実施形態において、データ機器(たとえば、ファイアウォールを備えるセキュリティ機器等、セキュリティ機能を備えるデータ機器)を用いて、ネットワークトラフィックが監視される。いくつかの実施形態において、ゲートウェイ(たとえば、セキュリティゲートウェイ等、セキュリティ機能を備えるゲートウェイ)を用いて、ネットワークトラフィックが監視される。いくつかの実施形態において、ホスト(たとえば、ネットワークサーバや、パーソナルコンピュータ、ノートパソコン、タブレットやスマートフォンのようなクライアントコンピューティング装置等、ホスト装置上で実行されるセキュリティソフトウェア)を用いて、ネットワークトラフィックが監視される。いくつかの実施形態において、インライン監視技術を用いて、ネットワークトラフィックが監視される。いくつかの実施形態において、ネットワークトラフィックが収集及び/又は監視される(たとえば、ネットワークトラフィックの一部は、インライン監視技術を用いて監視される、及び/又は、ネットワークトラフィックの一部は、ネットワークトラフィックのログ等、ネットワークトラフィックをオフラインで監視するために収集及び解析される)。
【0034】
いくつかの実施形態において、ステート型ファイアウォールを用いて、ネットワークトラフィックが監視される。いくつかの実施形態において、ステート型ファイアウォールは、APP-ID(アプリケーションID)エンジンを用いてトラフィックフローを監視するものでもよい(アプリケーション(APP)シグネチャー・チェック108)。たとえば、監視対象となるネットワークトラフィックは、HTTPトラフィック、FTPトラフィック、DNS要求、分類されていないアプリケーショントラフィック(たとえば、未知のアプリケーショントラフィック)、及び/又は、その他の種類のトラフィック(たとえば、他の種類の既知のプロトコル又は未知のプロトコルを用いるトラフィック)を含むものでもよい。
【0035】
図1に示すように、102で、ネットワークトラフィックの監視が開始荒れる。IPアドレス及びポートエンジン104は、パケット解析に基づいて、監視対象のトラフィックフロー(たとえば、セッション)用のIPアドレス及びポート番号を決定する。いくつかの実施形態において、次にユーザ識別を行う(たとえば、ソースIPアドレスに基づいてユーザIDを推定するようにしてもよい)。ポリシーチェックエンジン106は、IPアドレス及びポート番号に基づいて、いずれかのポリシーが適用されているか否かを判定する。アプリケーションシグネチャー・チェックエンジン108は、(たとえば、パケットフロー解析に基づくアプリケーション識別のために種々のアプリケーションシグネチャーを用いるAPP-IDエンジンを使用して)アプリケーションを識別する。たとえば、APP-IDエンジン108は、HTTPトラフィック、FTPトラフィック、DNS要求、未知のトラフィック及び種々の他の種類のトラフィック等、どのような種類のトラフィックをセッションが含むかを判定するように構成されるものでもよい。このように分類されたトラフィックを、デコーダ112、114及び116等、適当なデコーダに送って、各監視対象のセッションのトラフィックフローに関して分類されたトラフィックを復号(解読)するようにしてもよい。監視対象のトラフィックが暗号化されている(たとえば、SSL、SSH又はその他の既知の暗号化プロトコルを用いて暗号化されている)場合には、(たとえば、自己署名証明書を用いる中間者手法を適用して)復号エンジン110を用いて監視対象のトラフィックを復号するようにしてもよい。既知プロトコルデコーダエンジン112は、既知のプロトコルを用いて(たとえば、既知のプロトコルに様々なシグネチャーを適用して)トラフィックフローを復号して解析し、監視対象のトラフィック解析を報告・ポリシー強制(実行)エンジン120に報告する。特定トラフィック(復号不要)エンジン114は、特定されたトラフィックを報告・ポリシー強制エンジン120に報告する。未知プロトコルデコーダエンジン116は、(たとえば、様々なヒューリスティックスを適用して)トラフィックフローを復号して解析し、監視対象のトラフィック解析を報告・ポリシー強制エンジン120に報告する。
【0036】
いくつかの実施形態において、上述した既知プロトコルデコーダエンジン112と、特定トラフィックエンジン114と、未知プロトコルデコーダエンジン116とを用いた様々なトラフィック監視手法の結果は、報告・ポリシー強制エンジン120(たとえば、ネットワーク/ルーティングポリシー、セキュリティポリシー、及び/又はファイアウォールポリシー)に提供される。たとえば、アプリケーション識別、ユーザ識別、及び/又は、既存のシグネチャー(たとえば、ファイル型シグネチャー、プロトコル型シグネチャー、及び/又は、マルウェア又は疑いのある挙動を検出するための他の種類/形態のシグネチャー)と照合される他の情報を用いて、監視対象のネットワークトラフィックにファイアウォールポリシーを適用するようにしてもよい。
【0037】
図1に示すように、VMマルウェア解析エンジン118は、ファイアウォールからマルウェア候補サンプルを受信する。いくつかの実施形態において、上述した既知プロトコルデコーダエンジン112と、特定トラフィックエンジン114と、未知プロトコルデコーダエンジン116とを用いた様々なトラフィック監視手法の結果は、報告・ポリシー強制エンジン120(たとえば、ネットワーク/ルーティングポリシー、セキュリティポリシー、及び/又はファイアウォールポリシー)に提供される。この結果は、既存のシグネチャーのいずれにも一致しない。一部の実施形態において、いずれの既存のシグネチャーも一致しない場合には、マルウェア候補サンプルを、さらなる解析のために選択し、さらなる解析(たとえば、サンドボックス環境を提供してマルウェアを検出する仮想マシンを用いるリアルタイムの挙動プロファイリング解析、及び/又は、様々な実施形態に関して記載するようなログ情報を用いる事後解析)を実行するVMマルウェア解析エンジンに転送して、マルウェア候補サンプルがマルウェアであるか否かを判定するようにしてもよい。いくつかの実施形態において、様々なルール/ポリシーを適用して、さらなる解析のために仮想マシンエンジンにマルウェア候補サンプルを提供するべきか否かを判定する。このようなルール/ポリシーは、地理(たとえば、コンテンツを供給している国/地理)に基づくものでもよい。URLカテゴリーに基づくものでもよい。ファイルの種類(たとえば、PDFや他のファイルの種類)に基づくものでもよい。ファイルサイズに基づくものでもよい(たとえば、リアルタイムVMエミュレーション解析用に転送されるファイルサイズは、1GB等の最大容量または他のファイルサイズに限定され、VM技術を用いてリアルタイムでエミュレートされるファイルが大きくなりすぎないようにする)。難読化されたJavaScript(登録商標)(たとえば、非常に長い変数、評価関数を用いるパックコードを含む長い変数、及びその他の難読化手法)に基づくものでもよい。及び/又は、リアルタイムVMエミュレーション・マルウェア解析に適した疑わしいマルウェアを選択するルール/ポリシーでもよい。
【0038】
いくつかの実施形態において、マルウェア候補サンプルがマルウェアであると判定された場合には、本明細書に記載する様々な手法を用いて新たなシグネチャーを生成する。いくつかの実施形態において、他の装置又は他の機能を用いて、新たなシグネチャーを生成する。たとえば、ファイアウォールが新たなシグネチャーを生成するものでもよい。
【0039】
いくつかの実施形態において、ファイアウォール100は、(図示しない)コンテンツIDエンジンをさらに備える。いくつかの実施形態において、コンテンツIDエンジンにより特定されたコンテンツを、アプリケーション、ユーザ及び/又は別の情報等、他の情報と様々に組み合わせて、報告・ポリシー強制エンジン120を用いて、様々なセキュリティ/ファイアウォールポリシー/ルールを実行するようにしてもよい。
【0040】
いくつかの実施形態において、様々な他の機能アーキテクチャ及びフローを提供して、本明細書に記載するホスト情報プロファイル技術を用いてポリシー実行を実施する。たとえば、これらの機能の一部を汎用プロセッサ上で実行されるソフトウェアで実施するようにしてもよい。及び/又は、これらの機能の一部をネットワークトラフィックの高速パケット処理のためのハードウェア・アクセラレーション技術を用いて実施するようにしてもよい。
【0041】
図2は、いくつかの実施形態に従うマルウェア解析システムのアーキテクチャを示すブロック図である。図2に示すように、クライアントデバイス204A、204B及び204Ch、セキュリティ装置202を介してインターネット206と通信を行う。いくつかの実施形態において、セキュリティ装置202は、図示するように、ファイアウォール212を備える。いくつかの実施形態において、図示するように、クライアント装置204A〜204Cの1つ以上がファイアウォール214(たとえば、ホスト型ファイアウォール)を備える。いくつかの実施形態において、セキュリティ装置202は、データ機器(たとえば、セキュリティ機器)、ゲートウェイ(たとえば、セキュリティサーバ)、サーバ(たとえば、ファイアウォール212を含むセキュリティソフトウェアを実行するサーバ)、及び/又は、たとえば、コンピューティング・ハードウェア、ソフトウェア又はこれらの様々な組み合わせを用いて実現可能な他のセキュリティ装置を含む。いくつかの実施形態において、ファイアウォール212及び/又はファイアウォール214は、図1を参照して上述した機能の一部又は全部を実行する。たとえば、クライアント装置204A〜204Cは、コンピュータ、ノートパソコン、タブレット、スマートフォン、及び/又は、ネットワーク通信能力を備える種々の他の種類のコンピューティング装置等、有線及び/又は無線通信を介してインターネットにアクセス可能な様々なコンピューティング装置を含むものでもよい。また、図示するように、サーバ208A及び208Bは、インターネットと通信する。たとえば、クライアント装置は、インターネットを介してサーバにより提供されるサービス、たとえば、ウェブ関連サービス(ウェブサイト、クラウド型サービス、ストリーミングサービスやeメールサービス等)、ピアツーピア関連サービス(ファイル共有等)、IRCサービス(チャットサービス等)、及び/又は、インターネットを介して提供される任意の他のサービス等、にアクセス可能である。
【0042】
また、図2に示すように、仮想マシン(Virtual Machine;VM)機器/サーバ216が提供される。たとえば、VM機器/サーバ216は、VMware(登録商標)又はXEN(登録商標)仮想マシン/仮想化ソフトウェア(Microsoft Windows(登録商標)又はゲストホストとして監視対象のクライアント装置のOSを実行する)、並びに、適切な性能又は高性能に必要な/推奨される任意のハードウェア及びその他ソフトウェア/プラットフォーム要件を備えるものでもよい。たとえば、ハードウェア要件は、仮想マシン/仮想化ソフトウェアを実行するためのコンピューティング要件に関して通常高く、他の専用機器又はサーバにVM機能を備えることにより、他のセキュリティ機器/装置はこのようなハードウェアを必要としないため、より低コストのハードウェアを用いることができる。VM機器/サーバ216は、ファイアウォール212と通信する。たとえば、ファイアウォール212は、既存のシグネチャーのどれとも一致しないマルウェア候補サンプルをVM機器/サーバ216に送信して、本明細書に記載する技術を用いてさらなる解析を行うようにしてもよい。マルウェア候補サンプルがマルウェアであると判定された場合には、VM機器/サーバ216(又は、その他の機能/装置)は、そのマルウェアに関する新たなシグネチャーを自動的に生成して、ファイアウォール212に送信して、ファイアウォール212のシグネチャー/データ及び/又はルール/ポリシーを更新し、そのマルウェアを検出可能として、そのマルウェアを遮断する等の適当な措置をファイアウォール212が講じることができるようにしてもよい。したがって、このような技術を用いて、ゼロデイ攻撃でも検出及び遮断できる。いくつかの実施形態において、仮想マシン機器/サーバ216は、クライアント装置の1つ以上(たとえば、クライアント204Bのファイアウォール214)、及び/又は、セキュリティクラウドサービス210、及び、場合によっては、他の装置/機能と通信する。
【0043】
いくつかの実施形態において、VM機器/サーバ216は、セキュリティ機器/ゲートウェイ/サーバ202上で実行される、又は、セキュリティ機器/ゲートウェイ/サーバ202に組み込まれる。いくつかの実施形態において、VM機器/サーバ216は、セキュリティクラウドサービス210上で実行される、または、セキュリティクラウドサービス210に組み込まれる。
【0044】
たとえば、セキュリティ装置202(統合セキュリティ機器/ゲートウェイ/サーバ等)は、(たとえば、暗号化通信技術等の秘密通信を用いて)セキュリティクラウドサービス210と通信を行って、セキュリティ関連のコンテンツのアップデート(シグネチャー、ヒューリスティックス、アプリケーションID関連情報、ユーザID関連情報、コンテンツID関連情報、信頼済み/信頼できないゾーン情報、及び/又は、ポリシー/ルール等)を受信するものでもよい。また別の例として、セキュリティ装置202(統合セキュリティ機器/ゲートウェイ/サーバ等)は、(たとえば、暗号化通信技術等の秘密通信を用いて)セキュリティクラウドサービス210と通信を行って、監視対象のトラフィック情報(たとえば、パケットフローの一部等、監視対象のトラフィック情報のサブセット形態のもの等のマルウェア候補サンプル、監視対象のURL/DNS情報、アップロード/ダウンロード/アクセス用に求められる監視対象のファイル、及び/又は、その他の情報トラフィックに加えて、フローに関係するクライアント装置のためのコンテンツ情報やユーザ識別及び/又はアプリケーション識別情報等の他の情報)を提供するものでもよく、セキュリティクラウドサービス210は追加のリアルタイム解析及び/又は事後解析(たとえば、様々な実施形態に関して記載されるような、新たなマルウェア脅威及びゼロデイ攻撃を含むマルウェアを検出する、及び/又は、セキュリティクラウドサービスの他の顧客用に受信及び解析された他のサンプルと比較するための追加のヒューリスティック解析)を行うものでもよい。以下で明らかになるように、図1に関連して上述した機能の一部又はすべては、セキュリティクラウドサービスによって、全体として、又は、部分的に、支援される、又は、実施されるものでもよい。セキュリティクラウドサービスは、これらの機能の一部を実行することによって、クライアント装置(たとえば、204B)、セキュリティ装置202、及び/又は、VM機器/サーバ216の処理を削減することができる。セキュリティクラウドサービスは、また、追加のヒューリスティック型解析を提供することができ、及び/又は、(ネットワークトラフィック挙動及び/又はURLを含む)さらに多くの情報のネットワークトラフィックフローを受信することによって追加の情報を用いることができ、このような情報を集めて、セキュリティ装置202には(まだ)知られていない可能性のある(まだシグネチャーが存在していないもの等)所定のアプリケーショントラフィックフロー及び/又はURL用により多くの情報を提供することができる。
【0045】
いくつかの実施形態において、本明細書に記載する様々な技術を用いて自動的に生成される新たなシグネチャーは、ホスト型ファイアウォール、セキュリティ機器、ネットワーク装置、及び/又は、セキュリティクラウドサービス等の様々な他のセキュリティ機能/装置及び/又はサービスに配布される。いくつかの実施形態において、既存のシグネチャーが存在しないマルウェアを検出するための仮想マシン(VM)機能は、セキュリティ機器、ファイアウォール機器、ネットワーク/データ機器に組み込まれる、及び/又は、セキュリティサーバ、ネットワークサーバ又はゲートウェイ、及び/又は、クライアント装置(たとえば、パーソナルコンピュータ、ノートパソコン、タブレット、及び/又は、仮想マシンを実行するために十分なプロセッサ及びメモリを備える他の汎用クライアント装置)等のホスト装置上で実行される。いくつかの実施形態において、既存のシグネチャーが存在しないマルウェアを検出するためのVM機能は、セキュリティクラウドサービスにより提供される。いくつかの実施形態において、クライアント装置等のホスト装置、及び/又は、ゲートウェイ又はセキュリティサーバ等のサービスは、VM機能/装置にマルウェア候補サンプルを提供する。
【0046】
図3は、いくつかの実施形態に従うマルウェア解析システム用のデータ機器のハードウェアコンポーネントを示す機能図である。図示される例は、データ機器202(データ機器又はゲートウェイ等)に備えることができる物理コンポーネントを例示する。具体的には、データ機器202は、高性能マルチコアCPU302とRAM304とを備える。データ機器202は、さらに、ポリシー及びその他の構成情報並びに既存のシグネチャーを保存するのに用いられる記憶装置310(たとえば、1つ以上のハードディスク又は半導体記憶装置)を備える。データ機器202は、さらに、1つ以上のハードウェア・アクセラレータを必要に応じて備えるものでもよい。たとえば、データ機器202は、暗号及び復号動作を行うように構成される暗号化エンジン306、及び、シグネチャー照合を実行し、ネットワークプロセッサーとして動作し、及び/又は、他のタスクを実行するように構成される1つ以上のFPGA308を備えるものでもよい。
【0047】
図4は、いくつかの実施形態に従うマルウェア解析システム用のデータ機器の論理コンポーネントを示す機能図である。図示される例は、データ機器202に備えることができる論理コンポーネントを例示する。図示するように、データ機器202は、管理プレーン403と、データプレーン404とを備える。いくつかの実施形態において、管理プレーンは、たとえば、ポリシーを構成する及びログデータを見るためのユーザインタフェースを提供することによって、ユーザインタラクションを管理するものである。データプレーンは、たとえば、パケット処理やセッション処理を行うことによって、データを管理するものである。
【0048】
クライアント204Aが、SSL等の暗号化セッションプロトコルを用いてサーバ208Bにアクセスを試みると仮定する。ネットワークプロセッサ406は、クライアント204Aからパケットを受信し、そのパケットを処理のためにデータプレーン404に供給するように構成される。フロー408は、パケットが新たなセッションの一部であると特定し、新たなセッションフローを作成する。それに続くパケットは、フロールックアップに基づき、セッションに属するものと見なされる。該当する場合には、SSL復号器410によりSSL復号が実行される。そうでなければ、SSL復号器410による処理は省略される。アプリケーション識別モジュール412は、セッションがどの種類のトラフィックを含むかを判定し、そのトラフィックフローに関係するユーザを識別するように構成される。たとえば、アプリケーション識別モジュール412は、受信データのGET要求を認識し、セッションがHTTPデコーダを必要とするという結論を下すものでもよい。プロトコルの種類ごとに、対応するデコーダ414が存在する。いくつかの実施形態において、アプリケーション識別モジュール(APP-IDエンジン等)によりアプリケーション識別が実行され、他の機能/エンジンによりユーザ識別が実行される。アプリケーション識別モジュール412による特定に基づいて、パケットが適当なデコーダ414に送信される。デコーダ414は、(バラバラの順序で受信した可能性のある)パケットを正しい順序に組み立てて、トークン化を行い、情報を中質する。デコーダ414は、また、シグネチャー照合を行って、パケットに何が生じたかを判断する。また、図示するように、シグネチャー418は、管理プレーン402に受信・保存される。いくつかの実施形態において、監視、同定及び復号されたセッションのトラフィックフローに基づいて、様々な実施形態を参照して記載したように、シグネチャーを用いたポリシー・エンフォースメントを適用する(ポリシーは、1つ以上のルールを含むものでもよく、ルールは1つ以上のシグネチャーを適用するものでもよい)。いくつかの実施形態において、様々な実施形態を参照して記載した種々の技術を利用して、デコーダ414は、新たに生成されたシグネチャーを含む、管理プレーン402によって提供されるシグネチャー418を用いて、ポリシー416を実行するものでもよい。
【0049】
図5は、いくつかの実施形態に従うマルウェア解析システムのフローチャートである。ステップ502では、ファイアウォール(又は、ネットワークルータやIDS/IPS機能/装置等、その他のインラインセキュリティ若しくはネットワーク装置/機能)からマルウェア候補サンプルが受信される。ステップ504では、仮想マシンを用いて、マルウェア候補サンプルが解析される。
【0050】
ステップ506では、マルウェア候補サンプルがマルウェアであると判定された場合に、新たなシグネチャーが自動的に生成され。いくつかの実施形態において、新たなシグネチャーは、新たなファイル型シグネチャー(たとえば、マルウェアファイルを識別するためのMD5ハッシュ型シグネチャー、マルウェアファイルを識別するためのファイルの種類に基づくファイルのヘッダ情報からのダイジェスト、又は、疑わしいJavaScript(登録商標)若しくはPDFファイルに新たなデータを付加する最近追加されたヘッダリファレンスであるJavaScript(登録商標)を含むPDFファイル等の解析に基づくヒューリスティック型ファイルシグネチャー生成技術)である。いくつかの実施形態において、新たなシグネチャーは、DNS型シグネチャー、URL型シグネチャー、IP型シグネチャー、プロトコル型シグネチャー、ポート型シグネチャー、及び/又は、インラインネットワークセキュリティ(フィルタリングやファイアウォール等)技術を用いて効果的に適用及び実行可能な他の種類のシグネチャー又はこれらの組み合わせである。たとえば、新たなシグネチャーは、悪質なコンテンツを含むと判定されるPDFファイル用に生成されるものでもよい。該当する場合には、PDFファイルを易読化し、解析するようにしてもよい。PDFファイルに(JavaScript(登録商標)等の)スクリプトが含まれていることを検出すると、悪質なJavaScript(登録商標)要素用を検出する悪質スクリプト検出エンジンを用いて、スクリプトをスキャンする。場合によっては、PDFファイルの1つ以上のスクリプト部分内で識別されたパターンを用いてシグネチャーを生成するようにしてもよい。PDFファイルの1つ以上のスクリプト部分内で識別されたパターンを用いてシグネチャーが生成されなかった場合、及び/又は、PDFファイルにスクリプトが含まれていない場合には、PDFファイルのクロスリファレンステーブルに関係するPDFファイルの部分を用いてシグネチャーを生成するようにしてもよい。生成されたシグネチャーを用いて、以降に受信したPDFファイルがマルウェアを含むか否かを検出するようにしてもよい。
【0051】
ステップ508では、新たなシグネチャーがファイアウォールに送信される。いくつかの実施形態において、新たなシグネチャーは、他のセキュリティ機能/装置及び/又はセキュリティクラウドサービスに配布される。
【0052】
図6は、いくつかの実施形態に従うマルウェア解析システムの別のフローチャートである。ステップ602では、クライアント装置からの/クライアント装置へのネットワークトラフィックフローが監視される。ステップ604では、暗号化ネットワークトラフィックフローが復号され、既存のシグネチャーが一致しない場合には、マルウェア候補サンプルが生成され。ステップ606では、マルウェア候補サンプルがマルウェア解析装置(たとえば、上述したマルウェア解析及び検出に関する様々な技術を用いて、VMを実行して挙動プロファイル解析を行う仮想マシン(VM)機器又はサーバ)に送信される。ステップ608では、マルウェア候補サンプルの解析結果がマルウェア解析装置から受信される。ステップ610では、マルウェア候補サンプルがマルウェアであると判定された場合に、新たなシグネチャーが自動的に生成される。ステップ612では、新たなシグネチャーに基づいて、ネットワークアクセス/制御のためにセキュリティポリシーが実行される(たとえば、セキュリティポリシーは、様々なファイアウォールルール又は新たなシグネチャーを用いる/適用することができるその他のネットワークアクセス/制御ルールを含むものでもよい)。
【0053】
図7は、いくつかの実施形態に従うマルウェア解析システムの別のフローチャートである。ステップ702では、(たとえば、セキュリティ/ファイアウォール機器/装置/サーバにより実行される)仮想マシンを用いて、マルウェア候補サンプルが解析される。ステップ704では、マルウェア候補サンプルがマルウェアであると判定された場合に、新たなシグネチャーが自動的に生成される。ステップ706では、新たなシグネチャーに基づく、又は、新たなシグネチャーを用いる新たなファイアウォールルールが追加される。ステップ708では、新たなシグネチャーを用いて、新たなファイアウォールルールが実行される。
【0054】
実施形態において、VMを用いるマルウェア解析システムによって様々なヒューリスティック技術を実行して、ファイルまたはウェブサイトコンテンツの挙動大間その他の挙動をエミュレートし、VM環境の制御された/安全なサンドボックス環境内でマルウェア候補サンプルの解析を行う。たとえば、マルウェアと関連することが多い疑惑のある挙動を特定するための挙動プロファイリング技術は、セキュリティアプリケーション/プラットフォーム設定に対するプログラムで実行される変更(たとえば、ウィンドウズ(登録商標)・フィルタリング・プラットフォーム(Windows(登録商標) Filtering Platform:WFP)設定に対する変更、インターネットエクスプローラー(Internet Explorer:IE)ブラウザ設定に対する変更、自動開始レジストリに対する変更、及び/又は、インストールドライバに対する変更)を含むものでもよい。マルウェア解析及び特定に関する様々な他のヒューリスティック手法を図8図9、及び図10を参照して以下に記載する。
【0055】
図8は、いくつかの実施形態に従うマルウェア解析システムの別のフローチャートである。ステップ802では、マルウェア又はマルウェア候補を特定するためにネットワークトラフィック内における挙動が監視される(たとえば、VMを用いてマルウェア候補サンプルの挙動をエミュレートする/監視する)。ステップ804では、(たとえば、HTTPトラフィック用のポート80以外のポートを用いる)HTTPトラフィック用の非標準的なHTTPポートに接続するネットワークトラフィック内における挙動が監視される。ステップ806では、架空ドメインにアクセスするネットワークトラフィック内における挙動が監視される。ステップ808では、非標準的な実行ファイル拡張子を有する実行ファイル(たとえば、一般的な「exe」ファイル拡張子と異なるファイル拡張子を有する実行ファイル)をダウンロードするネットワークトラフィック内における挙動が監視される。ステップ810では、eメールサーバ用のDNSクエリを実行するネットワークトラフィック内における挙動が監視される。ステップ812では、一般的な長さよりも短い長さのHTTPヘッダを用いて通信を行うネットワークトラフィック内における挙動が監視される。たとえば、閾値は3つのHTTPヘッダフィールドで設定され得、以下のように2つのHTTPヘッダフィールド「User-agent」及び「host」しかない場合に起動され得る。
GET/xin.rar HTTP/1.1
User-Agent: RookIE/1.0
Host: www.wc86.com
【0056】
ステップ814では、HTTPトラフィックにおいてポスト法で通信を行うネットワークトラフィック内における挙動が監視される。ステップ816では、HTTPポートを介して分類されていないトラフィック(たとえば、未知のアプリケーショントラフィック)の通信を行うネットワークトラフィック内における挙動が監視される。いくつかの実施形態において、マルウェア候補を特定するためのネットワークトラフィック挙動監視に関して様々な他のヒューリスティックスを実行するようにしてもよい。たとえば、(HTTPプロトコルトラフィックにのみ通常用いられるポート80を用いるIRCプロトコルトラフィック等の)IRCトラフィック用の非標準的なIRCポートに接続する挙動を特定するようにネットワークトラフィックの監視を行うようにしてもよい。別の例として、侵入防止システム回避手法を用いて通信を行うネットワークトラフィック内における挙動を監視する。一例として、HTTPポスト要求において、3つのIPパケットによってストリング「POST」を送信すると仮定する。第1のパケットは、1つの文字「P」であり、第2のパケットは、「P」の重複パケットであり、第3のパケットは「ost」である。この方法は、TCPパケットを再組立てしないファイアウォール/IPS機能を回避するものであるが、TCPパケットの再組立てを含む本明細書に記載する技術を用いることによって、この種の挙動を検出できる。ステップ818では、監視及び分類対象のネットワークトラフィックの挙動を相関させて、監視/分類された疑わしい挙動に基づきスコア(たとえば、重大性スコア又はマルウェアスコア)が算出される。
【0057】
図9は、いくつかの実施形態に従うマルウェア解析システムの別のフローチャートである。ステップ902では、マルウェアを特定するためにネットワークトラフィック内における挙動が監視される(たとえば、マルウェア候補サンプルの挙動をエミュレート/監視するためにVMを用いる)。ステップ904では、通常のドメイン名の長さよりも長いドメイン名を持つドメインにアクセスするネットワークトラフィック内における挙動が監視される(たとえば、既知のマルウェアは、ドメイン2.0.0.805.784286832.1595022578.128.4096.014a0d3f846ea4af889dd9d8bc8aa80bc65807eadd2dbb27f1.twothousands.comにアクセスする。これは閾値長が90である)。ステップ906では、ダイナミックDNSドメインにアクセスするネットワークトラフィック内における挙動が監視される。ステップ908では、ファストフラックスドメインにアクセスするネットワークトラフィック内における挙動が監視される。ステップ910では、最近作成されたドメインにアクセスするネットワークトラフィック内における挙動が監視される。ステップ912では、監視及び分類対象のネットワークトラフィックの挙動を相関させて、監視/分類された疑わしい挙動に基づきスコア(たとえば、重大性スコア又はマルウェアスコア)が算出される。
【0058】
図10は、いくつかの実施形態に従うマルウェア解析システムの別のフローチャートである。ステップ1002では、悪質なドメインを特定するためにアクセスしたドメイン関連挙動が監視される(たとえば、マルウェア候補サンプルの挙動をエミュレート/監視するためにVMを用いる)。ステップ1004では、アクセスしたドメインのドメイン名の長さに関するアクセスドメイン関連挙動が監視される。ステップ1006では、アクセスしたドメインがダイナミックDNSドメインであるか否かに関するアクセスドメイン関連挙動が監視される。ステップ1008では、アクセスしたドメインがファストフラックスドメインであるか否かに関するアクセスドメイン関連挙動が監視される。ステップ1010では、アクセスしたドメインが最近作成されたドメインであるか否かに関するアクセスドメイン関連挙動が監視される。ステップ1012では、監視及び分類対象のネットワークトラフィックの挙動を相関させて、監視/分類された疑わしい挙動に基づきスコア(たとえば、重大性スコア又はマルウェアスコア)が算出される。
【0059】
自明のことであるが、上述した様々な実施形態に従うマルウェア解析システムを用いて、他の種々のヒューリスティック型マルウェア検出技術を適用可能である。また、上述した様々な技術を用いて、種々のシステム及びネットワークアーキテクチャを適用可能である。たとえば、インラインフィルタリング機能を提供し、上述したような仮想マシン解析技術を実行する統合型セキュリティ機器において、上述したマルウェア解析のための様々な技術を実現するようにしてもよい。別の例として、マルウェア解析結果(たとえば、新しいシグネチャー、及び/又は、他の機能部による新しいシグネチャーの生成を容易にするマルウェア解析結果)を他の種々のセキュリティ機能部(たとえば、セキュリティ機器、ネットワーク機器、及び/又は、ホスト型セキュリティソフトウェア)に通信可能な別の機器又はコンピュータサーバを用いて、仮想マシン機能を実現するようにしてもよい。また別の例として、マルウェア解析結果(たとえば、新しいシグネチャー、及び/又は、他の機能部による新しいシグネチャーの生成を容易にするマルウェア解析結果)を他の種々のセキュリティ機能部(たとえば、セキュリティ機器、ネットワーク機器、及び/又は、ホスト型セキュリティソフトウェア)に通信可能な、及び/又は、新たなセキュリティアップデート(たとえば、セキュリティクラウドサービスベンダーからのシグネチャーアップデートに登録している様々なセキュリティ装置/ソフトウェアに新たなシグネチャーをプッシュする)を生成可能な(たとえば、上述したようなログ情報を用いる所定の事後解析技術を実行する)セキュリティクラウドサービスを用いて、又は、セキュリティクラウドサービスの支援により、仮想マシン機能を実現するようにしてもよい。
【0060】
以上、理解を助ける目的で実施形態を詳細に説明したが、本発明は上述した詳細に限定されるものではなく、本発明は多くの別の形態で実施可能である。上述した実施形態は例示に過ぎず、限定するものではない。
<請求項1>
システムであって、
ファイアウォールからマルウェア候補サンプルを受信し、
前記マルウェア候補サンプルがマルウェアであるか否かを判定するために仮想マシンを用いて前記マルウェア候補サンプルを解析し、
前記マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャーを自動的に生成する、ように構成されているプロセッサと、
前記プロセッサに接続され、前記プロセッサに命令を提供すように構成されているメモリと、
を備えるシステム。
<請求項2>
請求項1に記載のシステムであって、
前記マルウェア候補サンプルは、既存のシグネチャーに一致しない、システム。
<請求項3>
請求項1に記載のシステムであって、
前記マルウェア候補サンプルは、既存のシグネチャーに一致せず、前記マルウェアはゼロデイ攻撃である、システム。
<請求項4>
請求項1に記載のシステムであって、
前記ファイアウォールは第1の装置上で実行され、前記仮想マシンは第2の装置上で実行される、システム。
<請求項5>
請求項1に記載のシステムであって、
前記ファイアウォールはセキュリティ機器によって実装され、前記仮想マシンは仮想マシン機器によって実装される、システム。
<請求項6>
請求項1に記載のシステムであって、
前記ファイアウォールは第1の装置上で実行されるホスト型ファイアウォールであり、前記仮想マシンは仮想マシン機器によって実装される、システム。
<請求項7>
請求項1に記載のシステムであって、
前記仮想マシンはセキュリティクラウドサービスによって実装される、システム。
<請求項8>
請求項1に記載のシステムであって、
前記ファイアウォールは、前記マルウェア候補サンプルを生成するために、ネットワークトラフィックフローを復号して、前記仮想マシンを用いた解析を行う、システム。
<請求項9>
請求項1に記載のシステムであって、
前記プロセッサは、さらに、前記シグネチャーを前記ファイアウォールに送信するように構成され、
前記ファイアウォールは、1つ又は複数のファイアウォールポリシー内に前記シグネチャーを備える、システム。
<請求項10>
請求項1に記載のシステムであって、
前記プロセッサは、さらに、前記シグネチャーを前記ファイアウォールに送信するように構成され、
前記ファイアウォールは、ゲートウェイセキュリティ装置、セキュリティ機器、ネットワーク・ルーティング装置、又は、ホスト型ファイアウォールを実行する汎用コンピュータにおいて実装される、システム。
<請求項11>
請求項1に記載のシステムであって、
前記プロセッサは、さらに、前記シグネチャーをクラウドセキュリティサービスに送信するように構成されている、システム。
<請求項12>
請求項1に記載のシステムであって、
前記プロセッサは、さらに、ヒューリスティックスに基づいて、マルウェアを特定するために、前記仮想マシンを用いるエミュレーションの際に、前記マルウェア候補サンプルの挙動を監視するように構成されている、システム。
<請求項13>
請求項1に記載のシステムであって、
前記メモリは、さらに、マルウェアを特定するために、前記プロセッサに、前記仮想マシンを用いるエミュレーションの際に、前記マルウェア候補サンプルの挙動を監視させる命令を前記プロセッサに与えるように構成され、
マルウェア候補を示す監視対象となる挙動は、HTTPトラフィック用の非標準的なHTTPポートに接続すること、架空ドメインにアクセスすること、非標準的な実行ファイル拡張子を有する実行ファイルをダウンロードすること、eメールサーバ用のDNSクエリを実行すること、一般的な長さよりも短い長さのHTTPヘッダを用いて通信を行うこと、HTTPトラフィックにおいてポスト法で通信を行うこと、IRCトラフィック用の非標準的なIRCポートに接続すること、侵入防止システム回避手法を用いて通信を行うこと、及び、HTTPポートを介して分類されていないトラフィックの通信を行うことの1つ以上を含む、システム。
<請求項14>
請求項1に記載のシステムであって、
前記メモリは、さらに、マルウェアを特定するために、前記プロセッサに、前記仮想マシンを用いるエミュレーションの際に、前記マルウェア候補サンプルの挙動を監視させる命令を前記プロセッサに与えるように構成され、
マルウェア候補を示す監視対象となる挙動は、通常のドメイン名の長さよりも長いドメイン名を持つドメインにアクセスすること、ダイナミックDNSドメインにアクセスすること、ファストフラックスドメインにアクセスすること及び最近作成されたドメインにアクセスすることの1つ以上を含む、システム。
<請求項15>
請求項1に記載のシステムであって、
前記メモリは、さらに、悪質なドメインを特定するために、前記プロセッサに、前記仮想マシンを用いるエミュレーションの際に、前記マルウェア候補サンプルの挙動を監視させる命令を前記プロセッサに与えるように構成され、
アクセスされたドメインが閾値を超える長さのドメイン名を持つこと、アクセスされたドメインがダイナミックDNSドメインであるか否か、アクセスされたドメインがファストフラックスドメインであるか否か、及びアクセスされたドメインが最近作成されたドメインであるか否かのうちの1つ以上に基づいて、 監視対象となるドメインアクセスに関連する挙動は、悪質なドメインである可能性を示す、システム。
<請求項16>
請求項1に記載のシステムであって、
前記プロセッサは、さらに、ハッシュ関数またはファイルヘッダ情報のダイジェストを用いて、ファイル型シグネチャーを生成するように構成されている、システム。
<請求項17>
請求項1に記載のシステムであって、
前記プロセッサは、さらに、マルウェア候補に関するログ情報を前記仮想マシンに送信するように構成され、
前記ログ情報は、セッション情報、アプリケーション識別情報、URLカテゴリー情報、及び、脆弱性警告情報の1つ以上を含む、システム。
<請求項18>
請求項1に記載のシステムであって、
前記プロセッサは、さらに、マルウェア候補に関するログ情報を前記仮想マシンに送信するように構成され、
前記仮想マシンは、前記ログ情報を用いた事後解析を行って、前記マルウェア候補がマルウェアであるか否かを判定する、システム。
<請求項19>
方法であって、
ファイアウォールからマルウェア候補サンプルを受信し、
前記マルウェア候補サンプルがマルウェアであるか否かを判定するために、仮想マシンを用いて前記マルウェア候補サンプルを解析し、
前記マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャーを自動的に生成する、方法。
<請求項20>
請求項19に記載の方法であって、
さらに、マルウェアを特定するために、前記仮想マシンを用いるエミュレーションの際に、前記マルウェア候補サンプルの挙動を監視する、方法。
<請求項21>
コンピュータプログラム製品であって、
コンピュータ読み取り可能な記憶媒体に組み込まれ、
ファイアウォールからマルウェア候補サンプルを受信するためのコンピュータ命令と、
前記マルウェア候補サンプルがマルウェアであるか否かを判定するために、仮想マシンを用いて前記マルウェア候補サンプルを解析するためのコンピュータ命令と、
前記マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャーを自動的に生成するためのコンピュータ命令と、を備えるコンピュータプログラム製品。
<請求項22>
請求項21に記載のコンピュータプログラム製品であって、
さらに、マルウェアを特定するために、前記仮想マシンを用いるエミュレーションの際に、前記マルウェア候補サンプルの挙動を監視するためのコンピュータ命令を備えるコンピュータプログラム製品。
<請求項23>
システムであって、
ファイアウォールからマルウェア候補サンプルを受信し、
前記マルウェア候補サンプルがマルウェアであるか否かを判定するために、仮想マシンを用いて前記マルウェア候補サンプルを解析し、
前記マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャーを自動的に生成し、
前記シグネチャーを複数のセキュリティ装置に配布する、ように構成されているプロセッサと、
前記プロセッサに接続され、前記プロセッサに命令を与えるように構成されているメモリと、
を備えるシステム。
<請求項24>
システムであって、
複数のネットワークトラフィックフローを監視し、
既存のシグネチャーと一致しないマルウェア候補サンプルを生成するために暗号化ネットワークトラフィックフローを復号し、
仮想マシンを用いて前記マルウェア候補サンプルを解析することによって前記マルウェア候補サンプルがマルウェアであるか否かを判定するために前記仮想マシンを実行するマルウェア解析装置にマルウェア候補サンプルを送信し、 前記マルウェア解析装置から前記マルウェア候補サンプルの解析結果を受信し、
前記マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャーを自動的に生成し、
前記シグネチャーに基づいてネットワークアクセス用のセキュリティポリシーを実行するように構成されているプロセッサと、
前記プロセッサに接続され、前記プロセッサに命令を与えるように構成されているメモリと、
を備えるシステム。
<請求項25>
システムであって、
マルウェア候補サンプルがマルウェアであるか否かを判定するために、仮想マシンを用いてシグネチャーが存在しない前記マルウェア候補サンプルを解析し、
前記マルウェア候補サンプルがマルウェアであると判定された場合にシグネチャーを自動的に生成し、
前記シグネチャーに基づくファイアウォールルールを追加し、
前記シグネチャーを用いて前記ファイアウォールルールを実行するように構成されているプロセッサと、
前記プロセッサに接続され、前記プロセッサに命令を与えるように構成されているメモリと、
を備えるシステム。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10