IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ キンドリル・インクの特許一覧

<>
  • 特許-ディープ・パケット分析 図1
  • 特許-ディープ・パケット分析 図2
  • 特許-ディープ・パケット分析 図3
  • 特許-ディープ・パケット分析 図4
  • 特許-ディープ・パケット分析 図5
  • 特許-ディープ・パケット分析 図6
  • 特許-ディープ・パケット分析 図7
  • 特許-ディープ・パケット分析 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-04
(45)【発行日】2024-12-12
(54)【発明の名称】ディープ・パケット分析
(51)【国際特許分類】
   H04L 43/028 20220101AFI20241205BHJP
   G06F 21/55 20130101ALI20241205BHJP
【FI】
H04L43/028
G06F21/55
【請求項の数】 18
(21)【出願番号】P 2022564206
(86)(22)【出願日】2021-04-13
(65)【公表番号】
(43)【公表日】2023-05-31
(86)【国際出願番号】 IB2021053038
(87)【国際公開番号】W WO2021214597
(87)【国際公開日】2021-10-28
【審査請求日】2023-06-07
(31)【優先権主張番号】16/856,429
(32)【優先日】2020-04-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521555742
【氏名又は名称】キンドリル・インク
【氏名又は名称原語表記】Kyndryl Inc.
【住所又は居所原語表記】One Vanderbilt Avenue,15th Floor,New York,New York 10017,USA
(74)【代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】ウドゥピ、アルジュン
(72)【発明者】
【氏名】シャイデラー、ティム
(72)【発明者】
【氏名】スール、マティアス
【審査官】長谷川 未貴
(56)【参考文献】
【文献】米国特許出願公開第2017/0310692(US,A1)
【文献】米国特許出願公開第2013/0227634(US,A1)
【文献】国際公開第2018/143096(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-101/00
G06F 21/00
(57)【特許請求の範囲】
【請求項1】
悪意のある流入ネットワーク・トラフィックから処理環境を保護するためのコンピュータ実装方法であって、
データ・パケットを含む流入ネットワーク・トラフィックの受信に応答して、前記データ・パケットのパケットおよびトラフィック分析を実行し、前記データ・パケットが悪意のないものか、悪意のあるものかを判定すること、および、サンドボックス環境内で前記データ・パケットを処理することであって、前記流入ネットワーク・トラフィックのデータ・パケットが、ネットワーク・ディープ分析システムおよびエンドポイント・コンピューティング・システムに並行して向けられること、
前記パケットおよびトラフィック分析に基づいて、前記データ・パケットが悪意のないものであると検出したことに応答して、前記処理環境内でのさらなる処理のために、前記処理されたデータ・パケットを前記サンドボックス環境から解放すること、および、
前記パケットおよびトラフィック分析に基づいて、前記データ・パケットが悪意のあるものであると検出したことに応答して、前記データ・パケットを破棄すること
を含む、コンピュータ実装方法。
【請求項2】
前記データ・パケットを前記破棄することは、
前記サンドボックス環境内で前記データ・パケットを前記処理することの結果を破棄すること
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記データ・パケットが未知のソースから受信されたと判定したことに応答して、前記エンドポイント・コンピューティング・デバイスでの前記データ・パケットをキャッシュすること、および前記データ・パケットを前記処理することを中断すること
をさらに含む、請求項1または2に記載のコンピュータ実装方法。
【請求項4】
前記データ・パケットが悪意のないことを示す信号が受信された後に、前記エンドポイント・コンピューティング・デバイス内で前記データ・パケットを処理すること
をさらに含む、請求項1~3のいずれか1項に記載のコンピュータ実装方法。
【請求項5】
前記サンドボックス環境内で前記データ・パケットを前記処理することは、既知のネットワーク・トラフィック・ソースからのデータ・パケットに対してのみを実行する、
請求項1~4のいずれか1項に記載のコンピュータ実装方法。
【請求項6】
前記流入ネットワーク・トラフィックがパケットのストリームであり、前記データ・パケットは、前記パケットの前記ストリームから選択される、
請求項1~5のいずれか1項に記載のコンピュータ実装方法。
【請求項7】
前記パケットのストリームの選択されないパケットは、前記エンドポイント・コンピューティング・デバイスによって処理される、
請求項に記載のコンピュータ実装方法。
【請求項8】
前記パケットおよびトラフィック分析が完了し、前記データ・パケットが悪意のあるものと見なされなくなるまで、前記データ・パケットの再送信要求を抑制すること
をさらに含む、請求項1~7のいずれか1項に記載のコンピュータ実装方法。
【請求項9】
前記パケットおよびトラフィック分析を実行する前記処理環境およびネットワーク分析エンジンは、動的キャッシング・バッファを含む、
請求項1~8のいずれか1項に記載のコンピュータ実装方法。
【請求項10】
前記動的キャッシング・バッファは、第1の部分および第2の部分を含み、前記第1の部分は、既知のソースからのデータ・パケットのために予約され、前記第2の部分は、未知のソースからのデータ・パケットのために予約される、
請求項9に記載のコンピュータ実装方法。
【請求項11】
悪意のある流入ネットワーク・トラフィックから処理環境を保護するためのコンピュータ・システムであって、前記システムは、
1つまたは複数のプロセッサ、1つまたは複数のコンピュータ可読メモリ、1つまたは複数のコンピュータ可読有形ストレージ・デバイスおよび前記1つまたは複数のコンピュータ可読有形ストレージ・デバイスの少なくとも1つに格納され、前記1つまたは複数のメモリの少なくとも1つを介した、前記1つまたは複数のプロセッサの少なくとも1つによる実行のためのプログラム命令を含み、
データ・パケットを含む流入ネットワーク・トラフィックの受信に応答して、前記データ・パケットのパケットおよびトラフィック分析を実行し、前記データ・パケットが悪意のないものか、悪意のあるものかを判定すること、および、サンドボックス環境内で前記データ・パケットを処理することであって、前記流入ネットワーク・トラフィックのデータ・パケットが、ネットワーク分析エンジンのネットワーク・ディープ分析システムおよびエンドポイント・コンピューティング・システムに並行して向けられること、
前記パケットおよびトラフィック分析に基づいて、前記データ・パケットが悪意のないものであると検出したことに応答して、前記処理環境内でのさらなる処理のために、前記処理されたデータ・パケットを前記サンドボックス環境から解放すること、および、
前記パケットおよびトラフィック分析に基づいて、前記データ・パケットが悪意のあるものであると検出したことに応答して、前記データ・パケットを破棄すること
を含む方法を実行することができる、コンピュータ・システム。
【請求項12】
前記データ・パケットを前記破棄することは、
前記サンドボックス環境内で前記データ・パケットを前記処理することの結果を破棄すること
をさらに含む、請求項11に記載のコンピュータ・システム。
【請求項13】
前記データ・パケットが未知のソースから受信された場合に、前記エンドポイント・コンピューティング・デバイスで前記データ・パケットをキャッシュする、前記エンドポイント・コンピューティング・デバイス内のキャッシュをさらに含み、前記エンドポイント・コンピューティング・デバイスは、前記データ・パケットを前記処理することを中断する、
請求項11または12に記載のコンピュータ・システム。
【請求項14】
前記エンドポイント・コンピューティング・デバイスは、
前記データ・パケットを前記エンドポイント・コンピューティング・デバイス内で処理し、前記エンドポイント・コンピューティング・デバイスは、前記データ・パケットが悪意のあるものでないことを示す信号および前記エンドポイント・コンピューティング・デバイス内で前記データ・パケットを前記処理することのトリガを受信するレシーバを含む、
請求項11~13のいずれか1項に記載のコンピュータ・システム。
【請求項15】
前記流入ネットワーク・トラフィックがパケットのストリームであり、前記データ・パケットは、前記パケットの前記ストリームから選択される、
請求項11~14のいずれか1項に記載のコンピュータ・システム。
【請求項16】
前記エンドポイント・コンピューティング・デバイスは、前記データ・パケットとして選択されない、前記パケットのストリームのデータ・パケットを処理する、
請求項15に記載のコンピュータ・システム。
【請求項17】
前記パケットおよびトラフィック分析を実行する前記処理環境および前記ネットワーク分析エンジンは、動的キャッシング・バッファを含み、
前記動的キャッシング・バッファは、第1の部分および第2の部分を含み、前記第1の部分は、既知のソースからのデータ・パケットのために予約され、前記第2の部分は、未知のソースからのデータ・パケットのために予約される、
請求項11~16のいずれか1項に記載のコンピュータ・システム。
【請求項18】
悪意のある流入ネットワーク・トラフィックから処理環境を保護するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、1つまたは複数のコンピュータ可読有形ストレージ・デバイスおよび前記1つまたは複数のコンピュータ可読有形ストレージ・デバイスの少なくとも1つに格納されるプログラム命令を含み、前記プログラム命令はプロセッサによって実行可能であり、前記プログラム命令は、
データ・パケットを含む流入ネットワーク・トラフィックの受信に応答して、前記データ・パケットのパケットおよびトラフィック分析を実行し、前記データ・パケットが悪意のないものか、悪意のあるものかを判定すること、および、サンドボックス環境内で前記データ・パケットを処理することであって、前記流入ネットワーク・トラフィックのデータ・パケットが、ネットワーク分析エンジンのネットワーク・ディープ分析システムおよびエンドポイント・コンピューティング・システムに並行して向けられること、
前記パケットおよびトラフィック分析に基づいて、前記データ・パケットが悪意のないものであると検出したことに応答して、前記処理環境内でのさらなる処理のために、前記処理されたデータ・パケットを前記サンドボックス環境から解放すること、および、
前記パケットおよびトラフィック分析に基づいて、前記データ・パケットが悪意のあるものであると検出したことに応答して、前記データ・パケットを破棄すること
を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にはネットワーク付属装置を安全にすることに関し、より詳細には、悪意のある流入ネットワーク・トラフィックから処理環境を保護するためのコンピュータ実装方法に関する。本発明は、さらに、悪意のある流入ネットワーク・トラフィックから処理環境を保護するためのシステムおよびコンピュータ・プログラム製品に関する。
【背景技術】
【0002】
ネットワーク・セキュリティは、主に、ファイアウォールおよびネットワーク・セキュリティ設備などのエッジ・デバイスが使用され、データ・フローを分析および管理し、セキュリティ違反の試行を検出/防止する。例えば展開されたエンドポイント保護などの、多段階セキュリティは、ここ数年で急増しているが、エッジ・デバイスは、依然として、セキュリティ攻撃に対する防御の第一線を実行する。
【発明の概要】
【0003】
一実施形態によれば、悪意のある流入ネットワーク・トラフィックから処理環境を保護するためのコンピュータ実装方法が提供され得る。方法は、データ・パケットを含む流入ネットワーク・トラフィックの受信に応答して、データ・パケットのパケットおよびトラフィック分析を実行し、データ・パケットが悪意のないものか、悪意のあるものかを判定すること、および、サンドボックス環境内でデータ・パケットを処理することを含むことができる。方法は、パケットおよびトラフィック分析に基づいて、データ・パケットが悪意のないものであると検出したことに応答して、処理環境内でのさらなる処理のために、処理されたデータ・パケットをサンドボックス環境から解放すること、および、パケットおよびトラフィック分析に基づいて、データ・パケットが悪意のあるものであると検出したことに応答して、データ・パケットを破棄することをさらに含むことができる。
【0004】
一実施形態によれば、悪意のある流入ネットワーク・トラフィックから処理環境を保護するためのコンピュータ・システムが提供され得る。システムは、データ・パケットを含む流入ネットワーク・トラフィックの受信に応答して、データ・パケットのパケットおよびトラフィック分析を実行し、データ・パケットが悪意のないものか、悪意のあるものかを判定し、コンピューティング環境がサンドボックス環境内でデータ・パケットを処理する、ネットワーク分析エンジンを含むことができる。さらに、ネットワーク分析エンジンは、パケットおよびトラフィック分析に基づいて、データ・パケットが悪意のないものであると検出したことに応答して、処理環境内でのさらなる処理のために、処理されたデータ・パケットをサンドボックス環境から解放することができる。
さらに、ネットワーク分析エンジンは、パケットおよびトラフィック分析に基づいて、データ・パケットが悪意のあるものであると検出したことに応答して、データ・パケットを破棄することができる。
【0005】
一実施形態によれば、悪意のある流入ネットワーク・トラフィックから処理環境を保護するためのコンピュータ・プログラム製品が提供され得る。コンピュータ・プログラム製品は、データ・パケットを含む流入ネットワーク・トラフィックの受信に応答して、データ・パケットのパケットおよびトラフィック分析を実行し、データ・パケットが悪意のないものか、悪意のあるものかを判定すること、および、コンピューティング環境がサンドボックス環境内でデータ・パケットを処理することを含むことができる。コンピュータ・プログラム製品は、パケットおよびトラフィック分析に基づいて、データ・パケットが悪意のないものであると検出したことに応答して、処理環境内でのさらなる処理のために、処理されたデータ・パケットをサンドボックス環境から解放すること、および、パケットおよびトラフィック分析に基づいて、データ・パケットが悪意のあるものであると検出したことに応答して、データ・パケットを破棄することをさらに含むことができる。
【0006】
本発明の実施形態は、異なる主題を参照して説明されることに留意されたい。特に、いくつかの実施形態は、方法のタイプの請求項を参照して説明されるが、他の実施形態は、装置のタイプの請求項を参照して説明される。しかしながら、当業者は、上記および以下の説明から、別段の通知がない限り、主題の1つのタイプに属する特徴の任意の組み合わせに加えて、異なる主題に関する特徴、特に、方法のタイプの請求項と装置のタイプの請求項の間の任意の組み合わせも、本文書内に開示されたものとしてみなされることが理解されよう。
【0007】
以上に定義された態様および本発明のさらなる態様は、以下で説明される実施形態の例から明らかであり、実施形態の例を参照して説明されるが、発明を限定するものではない。
【0008】
発明の好ましい実施形態は、単なる例として、以下の図面を参照して説明される。
【図面の簡単な説明】
【0009】
図1】悪意のある流入ネットワーク・トラフィックから処理環境を保護するための、本発明のコンピュータ実装方法の実施形態のブロック図。
図2】本明細書で提案されるセキュリティ環境のアーキテクチャの実施形態のブロック図。
図3図2に示されるユニットの機能を表す例示的な基本フローチャート。
図4】提案される概念の新たな機能と、ネットワーク分析エンジン側の最先端技術においてどのように組み込まれるかを強調する、例示的なフローチャートの第1の部分。
図5図4による例示的なフローチャート第2の部分。
図6】ネットワーク分析エンジン・フローとの対話におけるホスト分析エンジン処理のための例示的なフローチャート。
図7図6による例示的なフローチャートの第2の部分。
図8】提案される概念の少なくとも一部を実行するためのコンピューティング・システム機器のブロック図。
【発明を実施するための形態】
【0010】
本説明の文脈において、以下の慣例、用語、もしくは表現またはそれらの組み合わせを使用することができる。
【0011】
用語「処理環境」は、例えばルータもしくはネットワーク・セキュリティ・エンジンまたは組み合わせを介して、例えばインターネットなどの公衆ネットワークと接続され得る、例えば企業内ネットワーク内のコンピューティング・システムを示し得る。コンピューティング・システムは、エンドポイント・コンピューティング・デバイスを示すこともある。代替的に、処理のためのネットワーク・データ・パケットを受信するアプリケーションをし得る。
【0012】
用語「悪意のある流入ネットワーク・トラフィック」は、社内のネットワーク・デバイスと接続される公衆ネットワーク(例えばインターネット)から受信される、1つまたは複数のデータ・パケットを示し得る。データ・パケットは、社内の情報技術インフラストラクチャ、すなわち、エンドポイント・デバイス、ルータ、制御ユニット、ストレージ・システムなどに対して、少なくとも部分的に危険、例えばマルウェアであり得る。本文書の文脈において、攻撃の種類は重要ではない。しかしながら、例として、コンピュータ・ウイルス、ランサムウェア・ソフトウェア、スパイ・コードおよび他の形態のマルウェアなどが言及されるべきである。
【0013】
用語「データ・パケット」は、ネットワークを介して送信されている、または送信されることになるデータの量を示し得る。典型的なネットワーク・プロトコルは、送信プロトコル(すなわちパケット指向送信)の一部として定義されるデータ・パケットにおいて、大量のデータを送信する。
【0014】
用語「パケットおよびトラフィック分析」は、悪意のあるコンテンツに関するデータ・パケットの検査の処理を示し得る。検査は、パケットの一部としての特定のシグネチャ、疑わしい送信元アドレスなどを判定する。ネットワーク・ディープ・パケット分析システムに含まれるネットワーク分析エンジンにおいて通常実行されるパケットおよびトラフィック分析の目的は、悪意のある流入ネットワーク・トラフィックを検出し、そのようなデータ・パケットが、ホーム・ネットワーク内のエンドポイント・デバイスに送信されること防ぐことである。
【0015】
用語「サンドボックス環境」は、基礎となるコンピューティング・システムおよびオペレーティング・システムに影響を与えることなく、プログラム・コードの実行を可能にする、保護され、封じ込められた典型的には仮想的なフレームワークを示し得る。
【0016】
用語「エンドポイント・コンピューティング・デバイス」は、公衆ネットワークを介して受信された悪意のあるデータから保護される、社内ネットワークと接続された任意のデバイスを示し得る。
【0017】
用語「未知のソース」は、送信者が未知の名前もしくは未知のネットワーク識別子または両方を有する未知のエンティティである、データ・パケットの起源を示し得る。対照的に、用語「既知のネットワーク・トラフィック・ソース」は、送信者がすでに知られているエンティティである、データ・パケットの起源を示し得る。トラフィックは、このアドレスからそれ以前に受信されている可能性があり、悪意のないものとしてマークされているであろう。
【0018】
用語「パケットのストリーム」は、公衆ネットワークと社内ネットワークとの間の中央の接点において受信され得る、相互に関連し、または関連しない、連結されたデータ・パケットの、多かれ少なかれ途切れのないストリームを示し得る。しかしながら、データ・ストリームまたはパケットのストリームは、社内ネットワークの内部で送信されてもよい。
【0019】
用語「動的キャッシング・バッファ」は、バッファリングを必要とするデータ・パケットの数およびコンピューティング・デバイス内の空きリソースに応じてサイズを変更することができる、ネットワーク・ディープ・パケット分析システムの一部としての、例えば、エンドポイント・コンピューティング・デバイスまたはネットワーク分析エンジンなどのコンピューティング・デバイス内のストレージ領域を示し得る。この文脈において、「動的バッファ」という表現は、第1の部分および第2の部分を含むことができる。バッファが、異なるタイプのデータをバッファし得る別個のアドレス空間に分割することができることを説明している場合がある。例えば、2つの部分のうちの一方が、既知のデータ・ソースからのデータ・パケットをバッファし、動的キャッシング・バッファの2つの部分のうちの他方が、未知のデータ・ソースからのデータ・パケットをバッファし得る。
【0020】
これはまた、デバイスが、ネットワーク全体の主要なボトルネックとなり、40ギガビット毎秒あるいはそれどころか100ギガビット毎秒の帯域幅を扱うための処理要件が増大し続けるという問題も引き起こす。適切な防御の展開、特に大量のデータ量のディープ分析を使用するものは、高速CPU、大容量のメモリおよびSSD搭載のストレージを有するハードウェアを使用する必要があり、全てのネットワーク設定に、かなりのコストが追加される。
【0021】
トラフィック量の大幅な増大に加えて、セキュリティ攻撃がより複雑になり、ネットワークを介して受信される大きなペイロードの検査がしばしば必要となる。これまでに、攻撃者は、特別に巧妙な攻撃を行って、セキュリティ・デバイスを飽和させ、ゲートキーパをすり抜けてペイロードを忍び込ませることを可能としていることが示された。
【0022】
最後に、検査されるトラフィックのほとんどは、良性である。つまり、分析データ・パケットの99%以上を超えるほとんどのケースにおいて、無害であると分類され、それらの検査に費やされる時間は本質的には無駄となっている。
【0023】
すべての場合、最新のセキュリティ・デバイスが中心的なボトルネックとなり、非常に大量の追跡に対応する必要があり、分析のために大きなペイロードを捕捉および格納しなければならず、そこからごく少数の応答しか得られない。
【0024】
しかしながら、最先端の知識は、ネットワーク・アナライザが、ネットワークからエンドポイント・デバイスへの情報のフローのボトルネックとなる問題を解決しない。したがって、提案される概念の目的は、ネットワークからエンドポイント・デバイスへの高速な情報のフローを可能にし、同時に、データ・セキュリティを保証することである。
【0025】
そのため、悪意のある流入ネットワーク・トラフィックから処理環境を保護するための方法、コンピュータ・システムおよびコンピュータ・プログラム製品を提供することは、とりわけ有利な場合があり、複数の利点、寄与および技術的効果を提供し得る。
【0026】
本実施形態は、悪意のあるトラフィックを検出すると、トラフィックがドロップされるという意味において、NIDS/NIPS(network intrusion detection system/network intrusion protection system)とファイアウォールの機能を組み合わせることができる、ディープ・パケット検査(DPI)または同義語であるディープ・パケット分析(DPA)を最適化することができる。
【0027】
本実施形態は、ネットワーク分析エンジンとホストベース分析エンジンとの間でディープ・パケット分析を分散して、(i)ネットワーク分析エンジンがディープ・パケット分析を完了し得るまで流入データ・パケットをキャッシュし、(ii)同時に、ネットワーク・ディープ・パケット分析システム内にあるネットワーク分析エンジンは、エンドポイント・デバイスへの流入データ・パケットの再送信の際のボトルネックにならない可能性がある。
【0028】
したがって、本実施形態は、インライン・ネットワーク・セキュリティ設備によって引き起こされるネットワーク・パケット分析の遅延を短縮することができる。本実施形態は、並列で動作し得る専用のネットワーク・ディープ・パケット分析設備のグループによりディープ・パケット分析を行うことによって、ホスト分析エンジン上の負荷を軽減することもできる。
【0029】
加えて、本実施形態は、少なくともホスト分析エンジンにおいて動的バッファ・キャパシティを導入することによって、アプリケーションおよびそのネットワーク・トラフィックの挙動に基づいて、異なるアプリケーションおよびネットワーク・トラフィックを分類および処理し、さらなる拡張を可能とする。
【0030】
本実施形態は、悪意のあるネットワーク・トラフィックによってトリガされるネットワーク・トラフィックの連鎖および処理をさかのぼって検出し、終了させるためのワークフローも導入する。全体的に、エンドポイント・デバイスまたはエンドポイント処理環境全般に対するセキュリティが強化され、セキュリティ検査に起因するネットワーク遅延が大幅に低減され得る。
【0031】
本実施形態では、従来のシステムで行われるように、ホスト分析システムがエンドポイント上の完全な分析を行う必要はない。従来手法の欠点、すなわち、(i)分析のために必要とされる作業負荷が、このタスクのために最適化されていないハードウェア・レベルのデバイス(サーバおよびワークステーション)のみにかかること、および(ii)n個のエンドポイントに中継されるネットワーク・トラフィックが、ネットワーク分析エンジンで1回ではなく、n回分析されることが、克服され得る。ここで提案される概念とは対照的に、ホスト分析エンジンは、本方法にしたがって、ディープ・パケット分析タスクが、ネットワーク設備によって割り当てられ、ネットワーク・パケット分析に関するネットワーク分析エンジンからのフィードバックを待機し得るので、ネットワーク・パケットをキャッシュするのみで、ネットワーク・トラフィックの完全な分析を実行しなくてよい。したがって、パケット分析処理の負荷は、すなわち、分析の一部に作用する各構成要素である、ネットワーク分析エンジンおよびホスト分析エンジンの間で、動的に調整され、または平衡化され得、ネットワーク・パケット・ペイロードを復号し、分析を実行するためのCPUおよびメモリのリソース消費がホスト分析エンジン上で大幅に削減され得る。
【0032】
本実施形態のさらなる利点は、1つのデータ・パケット、例えば、第1のデータ・パケットの1番目または1つだけを、ネットワーク分析エンジンによるディープ分析のためにパケットの連続ストリームから選択すること、および他の受信データ・パケットをホスト、すなわちエンドポイント・デバイスに直接渡させることによって、ホストは、相関するデータ・パケットの完全なセットの中間バッファとして用いられ得ることによる。言い換えると、ネットワーク分析エンジン内でディープ分析を受ける、選択されたデータ・パケットは、エンドポイント・デバイスによるデータ・パケットの完全なセットの実行についてネットワーク分析エンジンに引き留められ得る。エンドポイント・デバイスは、ネットワーク分析エンジンから最後のデータ・パケットが届くまで、受信したデータ・パケットのセットが不完全であり、実行がトリガされないと判定し得る。この並列化の方法は、貴重な送信時間を節約でき、代表的なパケットの並列ディープ分析の方法によって、セキュリティが強化され得る。不足しているデータ・パケットが所定の時間内に届かない可能性がある場合、データ・パケットの完全なセットは、破棄され得、マルウェアの形態での被害が、エンドポイント・システムから防止され得る。
【0033】
加えて、タスクをネットワーク分析エンジンおよびホスト分析エンジン間で分割することにより、QoS(サービス品質(quality of service))フラグを設定し、特定のホスト・システムへのトラフィックをアクティブに調整することも可能となり得、他のデータ・パケットがすでにホスト・システムにルーティングされている間に、ディープ・パケット分析システム(すなわち、ネットワーク分析エンジン)が、分析のためにより多くの時間を与えることができる。
【0034】
以下では、方法および関連するシステムに適用可能な、追加的な実施形態が説明される。
【0035】
方法の一実施形態によれば、データ・パケットを破棄することは、サンドボックス環境でのデータ・パケットの処理の結果を破棄することを含み得る。したがって、実験的な処理およびサンドボックス環境が停止した後、危険な副作用は発生しない可能性がある。
【0036】
方法の一実施形態によれば、流入ネットワーク・トラフィック・データ・パケットは、ネットワーク・ディープ・パケット分析システムおよびエンドポイント・コンピューティング・デバイスに、並行に向けられ得る。公衆ネットワークおよび社内ネットワーク間に接続されたルータは、流入データ・ストリームの分割を可能とするように構成され得る。代替的に、ネットワーク・ディープ・パケット分析システムは、流入データ・パケットをエンドポイント・コンピューティング・デバイスへ直接ルーティングすると同時に、ディープ・パケット分析を実行するように構成され得る。このように、ネットワーク・ディープ・パケット分析システムは、公衆ネットワークからエンドポイント・デバイスへのデータの流れに対するボトルネックとならない可能性がある。しかしながら、ネットワーク・ティープ・パケット分析システムおよびエンドポイント・デバイス(例えばサンドボックス化している)でのデータ・パケットの特別な取り扱いのために、悪意のあるデータがエンドポイント・デバイスにとって危険にならないことを保証し得る。
【0037】
他の有利な実施形態によれば、方法は、データ・パケットが未知のソースから受信された可能性があると判定すると、エンドポイント・コンピューティング・デバイスにおいてデータ・パケットのキャッシングを行うこと、および、データ・パケットの処理を中断することも含み得る。このように、処理が行われないため、データ・パケットの悪意のあるコンテンツ(例えばマルウェア)でさえ、エンドポイント・デバイスにとって危険にならない可能性がある。データ・パケットを処理することは、データ・パケット内に悪意のあるコンテンツが存在しないとのネットワーク・ディープ・パケット分析システムからの信号が受信されたときに開始され得る。
【0038】
したがって、他の実施形態によれば、方法は、データ・パケットが悪意のないことを示す信号がエンドポイント・デバイスによって受信された後に、データ・パケットを処理すること、およびエンドポイント・デバイスでの処理の中断を終了する、すなわち、もはやサンドボックス環境内ではない、ことも含み得る。したがって、悪意のあるコンテンツをエンドポイント・コンピューティング・デバイス内で処理されること、および、ネットワーク・ディープ・パケット分析システムが、データの流れに対してボトルネックとなることを防止するため、ネットワーク・ディープ・パケット分析システムおよびエンドポイント・コンピューティング・デバイスは、協働して作動する。
【0039】
したがって、方法の実施形態によれば、サンドボックス環境内でデータ・パケットを処理することは、未知のネットワーク・トラフィック・ソースからのデータ・パケットに対してのみ実行され得る。順に、既知のソースから受信されたデータは、通常の処理環境内で、すなわち、サンドボックス環境内でなく、すぐに処理され得、データ・パケットのソースを単純に信頼する。
【0040】
方法の任意の1つの実施形態によれば、流入ネットワーク・トラフィックは、パケットのストリームであり得、データ・パケットは、パケットのストリームの中から選択され得る。したがって、同じソースからのデータ・パケットの連結されたストリームは、一つずつ検査および分析される必要はないが、同じソースからのストリームのデータ・パケットのうちの選択されたもののみが、分析され得る。これによって、ネットワーク・ディープ・パケット分析システムによる検査に要する労力および時間が削減できる。
【0041】
したがって、方法の他の実施形態によれば、データ・パケットとして選択されない、パケットのストリームの、特に同じデータ・ストリームからのパケットは、エンドポイント・コンピューティング環境によって直ちに処理され得る。
【0042】
さらなる実施形態によれば、方法は、パケットおよびトラフィック分析が完了し、データ・パケットが悪意のあるものと見なされなくなるまで、データ・パケットのデータ・パケット再送信要求を抑制することも含み得る。これにより、ネットワーク内およびさらなるエンドポイント・デバイスへの悪意のあるデータ・パケットの制御できない拡散を防止し得る。
【0043】
方法の他の実施形態によれば、パケットおよびトラフィック分析を実行する処理環境、特に、エンドポイント・コンピュータもしくはネットワーク分析エンジンまたは両方は、それぞれ、動的キャッシング・バッファを含み得る。このような動的キャッシング・バッファは、必要に応じて、処理環境リソースが許容する場合には、サイズを大きくすることができる。一方で、動的キャッシング・バッファのリソースが必要ない場合、関連するリソースが解放され、エンドポイント・コンピュータ・システムの主要タスクのために用いられ得る。
【0044】
方法の改良された実施形態によれば、動的バッファは、第1の部分および第2の部分を含み得る。それにより、第1の部分は、既知のソースからのデータ・パケットのために予約され得、第2の部分は、未知のソースからのデータ・パケットのために予約され得、または、その逆でもよい。したがって、悪意のある可能性の高いデータ・パケットは、流入データ・パケットのバッファ内の既知のソースからのデータ・パケットから分離され得る。バッファ・オーバーフローが発生する可能性がある場合、既知のソースからのデータは保持され得、一方、未知のデータ・ソースからのデータは、バッファから単純に削除され得る。代替的に、別個の部分にバッファを分離する必要がなく、単一のバッファが用いられ、受信したデータ・パケットは、それらが既知または未知のデータ・ソースに由来するかどうかを示すフラグを関連付けることができる。これにより、さらに動的な挙動が可能となり得る。
【0045】
以下では、図面の詳細な説明を行う。図面のすべての指示は、概略である。最初に、悪意のある流入ネットワーク・トラフィックから処理環境を保護するための、発明に係るコンピュータ実装方法の実施形態のブロック図が示される。その後、悪意のある流入ネットワーク・トラフィックから処理環境を保護するためのシステムの実施形態と同様にさらなる実施形態が説明される。
【0046】
図1は、悪意のある流入ネットワーク・トラフィックから処理環境を保護するための、コンピュータ実装方法、システムおよびコンピュータ・プログラム製品の実施形態のブロック図100を示す。方法、システムおよびコンピュータ・プログラム製品は、102において、データ・パケットを含む流入ネットワーク・トラフィックの受信に応答して、データ・パケットのパケットおよびトラフィック分析、特に、悪意のあるコンテンツを判定するために、ネットワーク分析エンジンによる集中的な分析を、104において実行すること、および、サンドボックス環境内、特に、エンドポイント・デバイスのサンドボックス環境内でデータ・パケットを、特に並列で、106において処理することを含む。
【0047】
方法、システムおよびコンピュータ・プログラム製品は、108において、パケットおよびトラフィック分析に基づいて、データ・パケットが悪意のないものであると検出したことに応答して、処理環境内でのさらなる処理のために、処理されたデータ・パケットをサンドボックス環境から、110において解放すること、および、112において、パケットおよびトラフィック分析に基づいて、データ・パケットが悪意のあるものであると検出したことに応答して、データ・パケットを、114において破棄することをさらに含むことができる。この削除処理は、少なくとも、サンドボックス環境内で実行され得る。その他のケース(すなわち、悪意のないケース)では、サンドボックス内で実行される結果およびデータ変換は、さらなる処理の間に用いられ得る。
【0048】
図2は、セキュリティ環境のアーキテクチャ200の実施形態のブロック図を示す。企業の技術的な境界206において公衆ネットワーク204から届くネットワーク・トラフィック202は、ルータ208を介して受信される。ネットワーク・トラフィック202は、ネットワーク・プロトコルに従うパケットまたはデータ・パケットで届く。ネットワーク・パケットは、ネットワーク・ディープ・パケット分析システム210によってブロックされない。しかしながら、エンドポイント(例えば、アプリケーション・サーバ、ユーザ・ワークステーションおよびエンドポイント・コンピューティング・デバイス)は、制限されていない方法で、処理したり、ネットワーク・パケットの処理の実行を開始したりしない。ネットワーク・ディープ・パケット分析が分析を完了し、プロセスの実行に対する肯定的または否定的な確認を提供するまで、パケットがキャッシュされるか、または、結果の削除のロールバックが可能となるように(例えば、サンドボックス環境内で)、ネットワーク・パケットの処理が制限される。
【0049】
したがって、ルータ208は、潜在的に悪意のあるデータ・パケットを、パケット分析結果データベース214から受信する、ネットワーク分析エンジン212を含む、ディープ・パケット分析システムにデータを送信する。並行して、ルータ208は、例えばスイッチ216を介して、エンドポイント218にデータ・パケットを送信する。このエンドポイント218は、エンドポイント・コンピューティング・デバイス218(他の例、上記参照)とすることができる。このエンドポイント218では、適切な方法でデータ・パケットを取り扱うために、ホスト分析エンジン220も利用可能である。代替的に、ネットワーク・ディープ・パケット分析は、データ・パケットを直接エンドポイントに送信するためのバイパスを備えていてもよい。
【0050】
図3は、図2に示されるユニットの機能を表す例示的な基本フローチャート300を示す。処理は、ネットワーク・トラフィックをキャッシュすること302から開始する。判定304は、ネットワーク・トラフィックが既知のソースに由来するものか否かをチェックする。そうである-ケース「Y」である-場合、処理は、エンドポイント・デバイス内で許可され制限された処理の実行306で継続する。このため、結果は、ネットワーク分析エンジン(NAE212、図2を参照)から受信される。次のステップにおいて、データ・パケットが悪意のあるデータ・トラフィックを含むかどうかを判定する310。そうでない-ケース「N」である-場合、制限されないプロセスの実行が発生し得る312。しかしながら、最後の判定結果がそうである-ケース「Y」である-場合、処理の実行が停止され、結果の削除が開始され、ネットワーク・トラフィックがブロックされる314。
【0051】
判定304の間にデータ・ソースが既知でないと判定された-ケース「N」である-場合、アクティビティ・フローが、ネットワーク分析エンジンから結果を受信すること308に進む前に、処理の実行は、316において中断される。
【0052】
このフローチャートは、ネットワーク分析エンジン(NAE212、図2を参照)およびホスト分析エンジン(HAE220、図2を参照)について図5~7のコンテキストで説明される、より洗練された実際のデータおよび処理のフローの短縮版である点に留意されたい。
【0053】
図4は、提案される概念の新たな機能と、ネットワーク分析エンジン側の最先端技術においてどのように組み込まれるかを強調する、例示的なフローチャート400を示す。流入ネットワーク・トラフィック402は、ネットワーク分析エンジンにミラーリングされ、パケット分析結果データベースに一致があるか否かの比較404が行われる。これに基づいて、ネットワーク・トラフィックが悪意のあるものであるか否かが、406において判定される。そうでない-ケース「N」である-場合、既知の真正のネットワーク・トラフィックであるか否かが判定される408。またもそうでない-ケース「N」である-場合、ディープ・パケット分析が、ネットワーク分析エンジン上で、410において実行される。その一部は、パケット検査およびパターン分析処理である412。このため、脅威インテリジェンスおよび悪意のあるパターンの情報414は、パターン分析処理の基礎および参照として、パケット検査およびパターン分析処理412に供給される。
【0054】
既知の真正トラフィックに関する判定408の間に、出力が肯定的である-ケース「Y」である-場合には、パケット検査およびパターン検証ステップが続く416。これもまた、脅威インテリジェンスおよび悪意のあるパターンのストアまたはデータベースからの情報が、パケット検査およびパターン検証ステップ416に供給される。
【0055】
図4の文脈で説明されたアクティビティは、図5の文脈で説明される、より洗練された処理ステップにより改良された最先端技術を部分的に表している。図4に示される処理フローの右側に、いくつかのオープンフロー接続がある点に留意されたい。しかしながら、処理フローの矢印は、図5に続くし、その逆もある。したがって、図4および図5は、統合的なフローチャートである。
【0056】
図5は、図4の文脈で説明されたフローチャートおよび処理フローを拡張する、ネットワーク分析エンジンとの対話におけるホスト分析エンジン処理フローの例示的なフローチャート500を示す。図5の左側で終わる処理フローの線は、図4に示される処理フローに続く。したがって、図4および図5は、統合的なフローチャートである。
【0057】
流入ネットワーク・トラフィック402は、502において、ルータからエンドポイント分析エンジンにミラーリングされる。したがって、ネットワークからの流入データ・パケットは、既知の技術とは対照的に、ネットワーク・ディープ・パケット分析システムを通過して、潜在的に大幅に遅延することはないが、エンドポイント・コンピューティング・システム、すなわち、エンドポイント・コンピューティング環境に直接的に送信される。
【0058】
しかしながら、流入データ・パケットの即時の実行または処理は、エンドポイント・コンピューティングシステムでは行われない。(図4の判定406からの)既知の悪意のあるトラフィックの場合、エンドポイント分析エンジンは、ネットワーク・トラフィックをドロップするように(例えば、トリガ信号によって)通知される504。さらなる検査は行われず506、受信されたネットワーク・トラフィック/受信されたデータ・パケットは、ネットワーク分析エンジン・レベルでドロップされる508。
【0059】
既知の真正のトラフィックに関する判定408において、肯定的な出力が判定され、結果パケット検査およびパターン検証ステップ416が実行される場合(図4を参照)、パケット分析結果に関する判定が行われる510。その結果、悪意のあるパターンが脅威インテリジェンス・ソース418に提供され512、パケット分析結果データベース内のネットワーク・パターン・マッチングに関するステップ404が実行される。追加的に、「1-N」ネットワーク・トラフィック・データがドロップされ、アプリケーション処理の「削除された結果」が(特に、ホスト分析エンジンへ)通知される514。
【0060】
パケット分析結果に関する判定510において、真正トラフィックであると判定された場合、処理は、エンドポイント分析エンジンへの確認(信号)で「1-P」を継続し、受信されたデータ・パケットに対する処理の実行を許可する516。
【0061】
パケット検査およびパターン分析(412、図4)の後、パケット分析結果が判定518においてチェックされる。セキュリティ侵害の兆候(indicator of compromise, IoC)が発見された場合、処理は、ステップ「2-N」を継続し、
すなわち、(ホスト分析エンジンへ)信号を発し、キャッシュされたネットワーク・トラフィックをドロップし、さらなるアプリケーション処理の実行の防止する520。
【0062】
パケット分析結果に関する判定518において、IoCが発見されない場合、フローは、ディープ・パケット検査522に続く。真正トラフィックのケースでは、フローは、エンドポイント・デバイスでのトラフィックの分析のためのさらなる処理の実行の有効化を継続する524(「2-P」)。一方で、悪意のあるトラフィックと判定された場合、パターンが、脅威インテリジェンス・ソース(図4に戻る)に提供される526。追加的に、「2-N」キャッシュされたネットワーク・トラフィックがドロップされ、さらなるアプリケーション処理の実行が防止される528。
【0063】
言い換えると、ネットワーク分析エンジン処理フローは、以下のようにも説明され得る。
1.トラフィックがネットワーク分析エンジンにて受信され、ここで、ネットワーク分析エンジンは、トラフィックをエンドポイントに転送し、さらに、ネットワーク分析ワークフローを開始する。
2.ネットワーク分析エンジンは、トラフィックが、以前に観測されたアプリケーション・トラフィックからの既知のパターンを含むかをチェックする。
a)「はい」の場合、パケットは、ディープ・パケット検査をバイパスし、パターンおよびパケットの検査および認証のために処理される。
b)「いいえ」の場合、パケットは、ディープ・パケット分析処理ワークフローによって処理される。
3.パケット検査およびパターン検証は、外部の脅威インテリジェンス・データベースを使用して、セキュリティ侵害の兆候(IoC)についてネットワーク・パケットをチェックし、ネットワーク・トラフィックを既知の悪意のあるパターンと照合する。これらの技術は、先行技術から知られている。
a)脅威インテリジェンスのチェックでIoCが検出された場合、分散エンドポイント分析エンジンは、キャッシュされたネットワーク・トラフィックをドロップし、識別された悪意のあるトラフィックについてのさらなる処理の実行を防止するコマンドを受信する。b)IoCが既知のアプリケーション・トラフィックについて検出された場合、分散エンドポイント分析エンジンは、キャッシュされたネットワーク・トラフィックを処理し、処理の実行を開始するコマンドを受信する。
4.新たなネットワーク・トラフィックが検出されると、ディープ・パケット検査のためのさらなるワークフローは、トリガされる。ネットワーク・トラフィックは、復号され、YARAルール(マルウェアの識別および分類についてのモデリングおよび記述言語)ならびに他の既知のマルウェアのパターンおよびシグネチャに対してチェックされる。
a)ディープ・パケット検査が悪意のあるパターンを検出した場合、分散エンドポイント分析エンジンは、キャッシュされたネットワーク・トラフィックをドロップし、識別された悪意のあるトラフィックについてのさらなる処理の実行を防止するコマンドを受信する。
b)ディープ・パケット検査が悪意のあるパターンを検出しない場合、分散エンドポイント分析エンジンは、キャッシュされたネットワーク・トラフィックを処理し、処理の実行を開始するメッセージを受信する。
5.分散エンドポイント分析エンジンにトリガ・メッセージを送信することによって、分散ネットワーク分析処理は終了する。
【0064】
図6は、ネットワーク分析エンジン・フローとの対話におけるホスト分析エンジン処理のための例示的なフローチャート600を示す。フローは、ネットワーク・トラフィックをエンドポイント分析エンジンにて受信すること602から開始する。ここで、ネットワーク・トラフィックは、キャッシュされる604。次に、パケット検査606がパケット分析結果データベース608(先に他の参照番号を用いて言及されたパケット分析結果データベースと同等)を用いて実行される。それが既知の悪意のあるトラフィックであるかどうかが判定される610。そうである-ケース「Y」である-場合、ネットワーク・トラフィックは、エンドポイント・コンピューティング・デバイスでドロップされ、キャッシュされたデータ・パケットが除去される612。
【0065】
既知の悪意のあるトラフィックに関する判定610が否定的な結果である-ケース「N」である-場合、処理フローは、既知の真正トラフィックに関する判定614に続く。そうでない-ケース「N」である-場合、ネットワーク・キャッシュを増加させ615、処理フローは、図7に続く。
【0066】
既知の真正トラフィックに関する判定614の結果が肯定的である-ケース「Y」である-場合、ネットワーク・キャッシュは、サイズが減少され、追加のネットワーク・トラフィックを待機する616。処理フローは、図7に続く。
【0067】
図7は、図6による例示的なフローチャートの第2の部分700を示す。図6から続いて、プロセス実行フラグのあるパケットであるか否かを判定する702。そうでない-ケース「N」である-場合、処理フローは図6、ステップに戻る。しかしながら、反対に、判定702が肯定的な結果である-ケース「Y」である-場合、処理の実行を開始する704。ネットワーク分析エンジンから肯定/否定の確認を受信すること706に続く。
【0068】
このため、信号接続ポイント「1-P」708(図5、516を参照)から、処理の実行に対するエンドポイント分析エンジンへの確認が受信される。そうでなければ、信号接続ポイント「1-N」710(図5、514を参照)から、ネットワーク・トラフィックをドロップし、(サンドボックス化された)アプリケーションの処理の実行の結果を削除することを示す信号が受信される。
【0069】
両方のケースにおいて、処理フローは、ネットワーク分析エンジンの結果に関する判定712に続く。「1-P」のケースでは、処理の実行が継続する714。「1-N」のケースでは、処理を終了し、処理結果を破棄し、ネットワーク・トラフィックをドロップする716。
【0070】
ネットワーク・キャッシュが増加する場合(615、図6を参照)では、肯定/否定の確認信号は、ネットワーク分析エンジンから受信される718。「2-P」のケースでは(図5を参照)、エンドポイント分析エンジンでトラフィックを分析するための、さらなる処理の実行を有効とする信号が発せられる720。そうでなければ、「2-N」から(図5を参照)、さらなるアプリケーションの処理の実行を防止するために、キャッシュされたネットワーク・トラフィックをドロップする信号が発せられる722。
【0071】
ネットワーク分析エンジンの結果は、調査され724、「2-P」のケースでは、エンドポイント・デバイスでの処理の実行が継続される726。他のケース「2-N」では、処理は停止され、ネットワーク・トラフィックはドロップされる728。
【0072】
言い換えると、図6および図7のコンテキストで説明されたアクティビティは、このようにして要約され得る。
1.パケットが、ホスト分析エンジンによって受信される。
2.ホスト分析エンジンは、ネットワーク・トラフィックをキャッシュすることを開始し、パケット分析をトリガする。
3.ホスト分析エンジンは、ネットワーク・トラフィックが既知のアプリケーション・トラフィックであるかをチェックする。
a)「はい」の場合、削減されたネットワーク・キャッシュのセグメントがこのトラフィックに割り当てられ、追加のネットワーク・トラフィックを待機する。
b)「いいえ」の場合、大きなネットワーク・キャッシュのセグメントがこのトラフィックに割り当てられ、エンドポイント・デバイス上のネットワーク・トラフィックについてのプロセスの実行をトリガしない。
4.既知のアプリケーション・トラフィックの場合、socconect()システム・コールのあるネットワーク・パケットが受信されると、ホスト・エンドポイント分析エンジンは、処理の実行の開始および処理の監視を許可し、加えて、ネットワーク・トラフィックが真正であるか、ホスト分析エンジンへの「ドロップ・ネットワーク・トラフィック」コマンドであるかについて、エンドポイント分析エンジンへの確認のために、ネットワーク分析エンジンを待機する。soconnect()関数は、connect(2)システム・コールと同等であり、アドレスnamとのソケットso上での接続を開始する点に留意されたい。
a)ネットワーク分析エンジンからの肯定的な確認が受信された場合、次に、処理は、完全に実行される。
b)処理の挙動は、分散エンドポイント分析エンジンによって監視される。これは、システムを通過する可能性があるゼロデイ攻撃を検出するのに用いられ、新たなシグネチャがリリースされると、ファイルの処理およびハッシュが分析のために利用可能となる。
c)ドロップ・ネットワーク信号が受信された場合、次に、処理結果がホスト分析エンジンによって破棄され、関連する残りのネットワーク・トラフィックがブロックされる。
5.未知のトラフィックの場合、処理の実行は、soconnect()システム・コールを受信した後でもトリガされず、ワークフローは、図4で説明したワークフローと同様に、さらなる処理の実行のためのネットワーク分析エンジンからのトリガ・メッセージを待機し、または、ネットワーク・トラフィックをドロップする。
【0073】
本発明の実施形態は、プログラム・コードを格納もしくは実行または両方をするのに適したプラットフォームに関係なく、実質的に任意のタイプのコンピュータと一緒に実装されることができる。図8は、一例として、提案された方法に関するプログラム・コードの実行に適したエンドポイント・コンピューティング・システムを示す。追加的に、ネットワーク・パケット分析システムも、同様のシステム設計に基づいてもよい。エンドポイント・コンピューティング・デバイスと、ネットワーク・パケット分析システムとの主な差異は、利用可能なキャッシュのサイズであり得る。往々にして、ネットワーク・パケット分析システムが約1TBのキャッシュを有することがあるが、エンドポイント・コンピューティング・システムのネットワーク・キャッシュのサイズは、例えば、数メガバイトに過ぎない。
【0074】
コンピューティング・システム800は、適切なコンピュータ・システムの一例に過ぎず、コンピュータ・システム800が、上述した機能のいずれかを実装もしくは実行または両方を行うことができるか否かにかかわらず、本明細書で説明する発明の実施形態の使用または機能の範囲について、如何なる制限を示すことを意図していない。コンピューティング・システム800には、コンポーネントがあり、コンピューティング・システム800は、多数の他の汎用または専用コンピューティング・システム環境または構成を用いて動作可能である。コンピューティング・システム/サーバ800を用いた使用に適当であり得る周知のコンピューティング・システム、環境、または構成、あるいはそれらの組み合わせの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式またはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル家電、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記システムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などを含むが、これらに限定されない。コンピュータ・システム/サーバ800は、コンピュータ・システム800によって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的文脈において説明され得る。概して、プログラム・モジュールは、特定のタスクを実行し、または特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。コンピュータ・システム/サーバ800は、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行される、分散型クラウド・コンピューティング環境において実施され得る。分散型クラウド・コンピューティング環境では、プログラム・モジュールが、メモリ・ストレージ・デバイスを含むローカルおよびリモート両方のコンピュータ・システム記憶媒体内に位置し得る。
【0075】
図に示されるように、コンピュータ・システム/サーバ800は、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム/サーバ800のコンポーネントは、1つまたは複数のプロセッサまたは処理ユニット802、システム・メモリ804、およびシステム・メモリ804を含む様々なシステム・コンポーネントをプロセッサ802に連結するバス806を含み得るが、これらに限定されない。バス806は、メモリ・バスまたはメモリ・コントローラ、周辺バス、高速グラフィック・ポート、および多様なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む、複数種類のバス構造のいずれかの1つまたは複数を表す。限定ではなく例として、そのようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ(ISA)・バス、マイクロ・チャネル・アーキテクチャ(MCA)・バス、拡張ISA(EISA)・バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)・ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)・バスを含む。コンピュータ・システム/サーバ800は、典型的には多様なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ800によってアクセス可能な任意の利用可能な媒体であってもよく、それは、揮発性媒体および不揮発性媒体の両方、リムーバブル媒体および非リムーバブル媒体の両方を含む。
【0076】
システム・メモリ804は、コンピュータ・システム可読媒体を、ランダムアクセス・メモリ(RAM)808またはキャッシュ・メモリ810あるいはその両方などの揮発性メモリの形態で含み得る。コンピュータ・システム/サーバ800は、他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピュータ・システム記憶媒体をさらに含み得る。単なる例として、ストレージ・システム812は、非リムーバブル不揮発性磁気媒体(図示せず、かつ典型的には「ハード・ドライブ」と呼ばれる)からの読み出しおよび書き込みのために提供され得る。図示されないが、リムーバブル不揮発性磁気ディスク(例えば、「フロッピー・ディスク」)からの読み出しおよび書き込みのための磁気ディスク・ドライブ、およびCD-ROM、DVD-ROM、または他の光学媒体などのリムーバブル不揮発性光ディスクからの読み出しまたは書き込みのための光学ディスク・ドライブが、提供されてもよい。このような事例では、それぞれが、1つまたは複数のデータ媒体インターフェースによってバス806に接続され得る。さらに図示され、後述されるように、メモリ804は、本発明の実施形態の機能を実行するように構成されるプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含み得る。
【0077】
プログラム・モジュール816のセット(少なくとも1つ)を有するプログラム/ユーティリティは、限定ではなく例として、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、メモリ804に記憶され得る。オペレーティング・システム、1つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、またはそれらの何らかの組み合わせは、ネットワーキング環境の実施を含み得る。プログラム・モジュール816は、概して、本明細書で説明される本発明の実施形態の機能または方法論あるいはその両方を実行する。
【0078】
コンピュータ・システム/サーバ800は、また、キーボード、ポインティング・デバイス、ディスプレイ820などの1つもしくは複数の外部デバイス818、ユーザがコンピュータ・システム/サーバ800と対話することを可能にする1つもしくは複数のデバイス、またはコンピュータ・システム/サーバ800が1つもしくは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、あるいはそれらの組み合わせと通信し得る。このような通信は、入力/出力(I/O)インターフェース814を介して発生し得る。さらに、コンピュータ・システム/サーバ800は、ローカル・エリア・ネットワーク(LAN)、汎用ワイド・エリア・ネットワーク(WAN)、または公衆ネットワーク(例えば、インターネット)、あるいはそれらの組み合わせなどの1つまたは複数のネットワークと、ネットワーク・アダプタ822を介して通信し得る。図示されるように、ネットワーク・アダプタ822は、バス806を介してコンピュータ・システム/サーバ800の他のコンポーネントと通信する。図示されないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネント、あるいはその両方が、コンピュータ・システム/サーバ800と併せて使用され得ると理解されるべきである。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ記憶システムなどを含むが、これらに限定されない。
【0079】
追加的に、ネットワーク分析エンジン212システムまたはホスト分析エンジンは、バス・システム806に付属され得る(オプションで、破線で示される)。
【0080】
本実施形態の種々の実施形態の説明は、例示を目的として示されたものであり、網羅的であること、または、開示された実施形態に限定されることを意図していない。多くの修正および変形が、説明された実施形態の範囲および精神から逸脱することなく可能であることが、当業者には明らかであろう。
本明細書で使用される用語は、実施形態の原理、実際の適用もしくは市場で見られる技術に対する技術的改善を最もよく説明するために、または、他の当業者が本明細書で開示された実施形態を理解できるようにするために、選択された。
【0081】
本実施形態は、システム、方法もしくはコンピュータ・プログラム製品またはその組み合わせとして具現化され得る。コンピュータ・プログラム製品は、本実施形態の態様をプロセッサに実行させるコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体(または複数の媒体)を含み得る。
【0082】
媒体は、伝搬媒体のための電子的、磁気的、光学的、電磁気的、赤外線または半導体システムであってよい。コンピュータ可読媒体の例は、半導体またはソリッドステート・メモリ、磁気テープ、リムーバブル・コンピュータ・ディスケット、ランダムアクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、リジッド磁気ディスク、および光学ディスクを含むことができる。現在の光学ディスクの例は、コンパクト・ディスク・リードオンリー・メモリ(CD-ROM)、コンパクト・ディスク・リード/ライト(CD-R/W)、DVD、Blu-Ray(登録商標)ディスクを含む。
【0083】
このコンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持および記憶することができる有形のデバイスとすることができる。このコンピュータ可読ストレージ媒体は、例えば、限定はされないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたはこれらの適当な組合せとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダムアクセス・メモリ(RAM)、リードオンリー・メモリ(ROM)、消去可能なプログラマブル・リードオンリー・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リードオンリー・メモリ(CD-ROM)、ディジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(登録商標)・ディスク、機械的にエンコードされたデバイス、例えばパンチカードまたはその上に命令が記録された溝の中の一段高くなった構造物、およびこれらの適当な組合せを含む。本明細書で使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が一過性の信号、例えば電波もしくは他の自由に伝搬する電磁波、またはウェーブガイドもしくは他の伝送体内を伝搬する電磁波(例えば光ファイバ・ケーブル内を通る光パルス)、または電線を通して伝送される電気信号であると解釈されるべきではない。
【0084】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から対応するそれぞれのコンピューティング/処理デバイスにダウンロードすることができ、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはそれらの組合せを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードすることができる。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジ・サーバ、またはこれらの組合せを含むことができる。それぞれのコンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それらのコンピュータ可読プログラム命令を、対応するそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に記憶するために転送する。
【0085】
本実施形態の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データであってもよく、またはSmalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同種のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードであってもよい。このコンピュータ可読プログラム命令は、全体がユーザのコンピュータ上で実行されてもよく、一部がユーザのコンピュータ上で実行されてもよく、独立型ソフトウェア・パッケージとして実行されてもよく、一部がユーザのコンピュータ上で、一部が遠隔コンピュータ上で実行されてもよく、または全体が遠隔コンピュータもしくは遠隔サーバ上で実行されてもよい。上記の最後のシナリオでは、遠隔コンピュータが、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、またはこの接続が、外部コンピュータに対して(例えばインターネット・サービス・プロバイダを使用してインターネットを介して)実施されてもよい。いくつかの実施形態では、本実施形態の態様を実施するために、例えばプログラム可能論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA)またはプログラム可能論理アレイ(PLA)を含む電子回路が、このコンピュータ可読プログラム命令の状態情報を利用してその電子回路をパーソナライズすることにより、このコンピュータ可読プログラム命令を実行してもよい。
【0086】
本明細書で説明した本実施形態の態様を、本発明の実施形態にしたがい、フローチャート命令および方法のブロック図、またはそれらの両方、装置(システム)、およびコンピュータ・プログラム製品を参照して説明した。フローチャートの図示およびブロック図またはそれら両方およびフローチャートの図示におけるブロックおよびブロック図、またはそれらの両方のいかなる組合せでもコンピュータ可読なプログラム命令により実装することができることを理解されたい。
【0087】
コンピュータ可読なプログラム命令は、機械を生成するための他のプログラマブル・データ・プロセッシング装置に提供することができ、コンピュータのプロセッサまたは他のプログラマブル・データ・プロセッシング装置による実行がフローチャートおよびブロック図のブロックまたは複数のブロックまたはこれらの組み合わせで特定される機能/動作を実装するための手段を生成する。これらのコンピュータ、プログラマブル・データ・プロセッシング装置および他の装置またはこれらの組み合わせが特定の仕方で機能するように指令するこれらのコンピュータ可読なプログラム命令は、またコンピュータ可読な記録媒体に格納することができ、その内に命令を格納したコンピュータ可読な記録媒体は、フローチャートおよびブロック図のブロックまたは複数のブロックまたはこれらの組み合わせで特定される機能/動作の特徴を実装する命令を含む製造品を構成する。
【0088】
コンピュータ可読なプログラム命令は、またコンピュータ、他のプログラマブル・データ・プロセッシング装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で操作ステップのシリーズに対してコンピュータ実装プロセスを生じさせることで、コンピュータ、他のプログラマブル装置または他のデバイス上でフローチャートおよびブロック図のブロックまたは複数のブロックまたはこれらの組み合わせで特定される機能/動作を実装させる。
【0089】
図中のフローチャートおよびブロック図は、本実施形態の種々の実施形態による、システム、方法およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を例示する。この点に関し、フローチャートのそれぞれのブロックまたはブロック図は、モジュール、セグメント、または命令の部分を表し、この部分は、特定の論理的機能(複数でもよい)を実装するための1つまたはそれ以上の実行可能な命令を含む。いくつかの代替的な実装においては、ブロック内に記載された機能は、図に記載された順序ではなく発生する場合がある。例えば、連続して示された2つのブロックは、含まれる機能に応じて、実質的に同時的に実行することができるか、または複数のブロックは、時として逆の順番で実行することができる。また、ブロック図およびフローチャートの図示、またはこれらの両およびブロック図中のブロックおよびフローチャートの図示またはこれらの組み合わせのそれぞれは、特定の機能または動作を実行するかまたまたは特定の目的のハードウェアおよびコンピュータ命令を遂行する特定目的のハードウェアに基づいたシステムにより実装することができることにも留意されたい。
【0090】
本明細書で使用される用語の目的は特定の実施形態を説明することだけであり、それらの用語が発明を限定することは意図されていない。文脈からそうでないことが明らかである場合を除き、本明細書で使用されるとき、単数形の「ある(a)」、「1つの(an)」および「その(the)」は複数形も含むことが意図されている。本明細書で使用されるとき、用語「備える(comprises)」もしくは「備える(comprising)」またはその両方は、明示された特徴、完全体(integer)、ステップ、動作、要素もしくは構成要素またはこれらの組合せの存在を指定するが、他の1つもしくは複数の特徴、完全体、ステップ、動作、要素、構成要素もしくはこれらのグループ、またはこれらの組合せの存在または追加を排除しないことも理解される。
【0091】
対応する構造体、材料、動作、ならびに、特許請求の範囲に記載された全ての手段またはステップおよび機能要素の等価物は、特許請求の範囲に記載された他の請求の要素とともに機能を実行するための任意の構造体、材料または動作を含むことが意図されている。図示および説明のために本実施形態の記述を提示したが、その記述が網羅的であること、または開示された形態の発明に限定されることは意図されていない。当業者には、発明の範囲および精神を逸脱することなく、多くの変更および変形形態が明白である。実施形態は、発明の原理および実用的用途を最もよく説明するため、ならびに企図された特定の使用に適したさまざまな変更を有するさまざまな実施形態の発明を当業者が理解することを可能にするために選抜し、説明した。
図1
図2
図3
図4
図5
図6
図7
図8