(57)【特許請求の範囲】
【請求項１】
ネットワークトラフィックを検査する、コンピュータによって実装される方法であって、
トラフィックフローが第１の条件を満たすと判断することと、
前記トラフィックフローが前記第１の条件を満たすとの前記判断に基づき、前記トラフィックフローの第１の部分をネットワークサービスに送信することと、
前記第１の条件に基づき、第１の詳細レベルで前記トラフィックフローの前記第１の部分を、前記ネットワークサービスで検査することと、
前記検査に基づき、前記トラフィックフローが第２の条件を満たすと判断することと、
前記トラフィックフローが前記第２の条件を満たすとの前記判断に基づき、前記トラフィックフローの第２の部分を前記ネットワークサービスに送信することと、
第２の詳細レベルで前記トラフィックフローの前記第２の部分を、前記ネットワークサービスで検査することであって、前記第２の詳細レベルでの前記検査は、前記第１の詳細レベルでの前記検査より多くのコンピューティングリソース量を必要とする、段階と、
を備える、方法。
【請求項２】
前記第１の条件は、ヒューリスティック、前記トラフィックフローに関連するポリシー、又は関心のあるイベントのうちの１つを備える、
請求項１に記載の方法。
【請求項３】
前記第２の条件は、ヒューリスティック、前記トラフィックフローに関連するポリシー、又は関心のあるイベントのうちの１つを備える、
請求項１または２に記載の方法。
【請求項４】
前記第２の詳細レベルでの前記トラフィックフローの前記第２の部分の前記検査は、前記第１の詳細レベルでの前記トラフィックフローの前記第１の部分の前記検査より前記トラフィックフローのより大きい部分を検査することを有する、
請求項１から３の何れか一項に記載の方法。
【請求項５】
トラフィックフローの第１の部分は、複数のパケットのランダムサンプルを備える、
請求項１から４の何れか一項に記載の方法。
【請求項６】
前記第２の詳細レベルでの前記トラフィックフローの前記検査に基づき、前記トラフィックフローの第３の部分を前記ネットワークサービスに送信することと、
第３の詳細レベルで前記トラフィックフローの前記第３の部分を、前記ネットワークサービスで検査することと、
を更に備える、
請求項１から５の何れか一項に記載の方法。
【請求項７】
前記トラフィックフローがもはや前記第２の条件を満たさないと判断することと、
前記トラフィックフローがもはや前記第２の条件を満たさないことが判断された場合に、前記第１の詳細レベルで前記トラフィックフローの前記第３の部分を、前記ネットワークサービスで検査することと、
を更に備える、
請求項６に記載の方法。
【請求項８】
第２の詳細レベルでの前記トラフィックフローの前記第２の部分の前記検査は、侵入検出分析を実行することを有する、
請求項１から７の何れか一項に記載の方法。
【請求項９】
前記第１の条件は、前記トラフィックフローに関連するパラメータと、前記トラフィックフローのために所望されるセキュリティのレベルとを備える、
請求項１から８の何れか一項に記載の方法。
【請求項１０】
前記トラフィックフローの前記第２の部分は、前記トラフィックフローの前記第１の部分より多くの情報量を有する、
請求項１から９の何れか一項に記載の方法。
【請求項１１】
トラフィックフローが第１の条件を満たすと判断する分析モジュールと、
コントローラであって、
前記トラフィックフローが前記第１の条件を満たすとの前記判断に基づき、前記トラフィックフローの第１の部分をネットワークサービスに送信するよう、１又は複数のルータを設定するコントローラと、
ネットワークサービスであって、
前記第１の条件に基づき、第１の詳細レベルで前記トラフィックフローの前記第１の部分を検査し、
前記検査に基づき、前記トラフィックフローが第２の条件を満たすと判断するネットワークサービスと、
を備え、
前記コントローラは、前記トラフィックフローが前記第２の条件を満たすという前記判断に基づき、前記トラフィックフローの第２の部分を前記ネットワークサービスに送信するよう１又は複数のルータを更に設定し、
前記ネットワークサービスは、第２の詳細レベルで前記トラフィックフローの前記第２の部分を更に検査し、前記第２の詳細レベルでの前記検査は、前記第１の詳細レベルでの前記検査より多くのコンピューティングリソースの量を必要とする、
システム。
【請求項１２】
前記第１の条件は、ヒューリスティック、前記トラフィックフローに関連するポリシー、又は関心のあるイベントのうちの１つを備える、
請求項１１に記載のシステム。
【請求項１３】
前記第２の条件は、ヒューリスティック、前記トラフィックフローに関連するポリシー、又は関心のあるイベントのうちの１つを備える、
請求項１１または１２に記載のシステム。
【請求項１４】
前記第２の詳細レベルでの前記トラフィックフローの前記第２の部分の前記検査は、前記第１の詳細レベルでの前記トラフィックフローの前記第１の部分の前記検査より前記トラフィックフローのより大きい部分の検査を有する、
請求項１１から１３の何れか一項に記載のシステム。
【請求項１５】
トラフィックフローの第１の部分は、複数のパケットのランダムサンプルを備える、
請求項１１から１４の何れか一項に記載のシステム。
【請求項１６】
前記第２の詳細レベルでの前記トラフィックフローの前記検査に基づき、前記トラフィックフローの第３の部分を前記ネットワークサービスに送信することと、
第３の詳細レベルでの前記トラフィックフローの前記第３の部分を、前記ネットワークサービスで検査することと、
を更に備える、
請求項１１から１５の何れか一項に記載のシステム。
【請求項１７】
第２の詳細レベルでの前記トラフィックフローの前記第２の部分の前記検査は、侵入検出分析を実行することを有する、
請求項１１から１６の何れか一項に記載のシステム。
【請求項１８】
前記第１の条件は、前記トラフィックフローに関連するパラメータと、前記トラフィックフローのために所望されるセキュリティのレベルとを備える、
請求項１１から１７の何れか一項に記載のシステム。
【請求項１９】
前記ネットワークサービスは、
前記トラフィックフローがもはや前記第２の条件を満たさないと判断し、
前記トラフィックフローがもはや前記第２の条件を満たさないことが判断された場合に、前記第１の詳細レベルで前記トラフィックフローの前記第３の部分を、前記ネットワークサービスで検査する、
請求項１６に記載のシステム。
【請求項２０】
前記トラフィックフローの前記第２の部分は、前記トラフィックフローの前記第１の部分より多くの情報量を有する、
請求項１１から１９の何れか一項に記載のシステム。
【請求項２１】
少なくとも１つのコンピューティングデバイスにより実行される場合に、前記少なくとも１つのコンピューティングデバイスに複数のオペレーションを実行させるプログラムであって、
複数のオペレーションは、
トラフィックフローが第１の条件を満たすと判断するオペレーションと、
前記トラフィックフローが前記第１の条件を満たすとの前記判断に基づき、前記トラフィックフローの第１の部分をネットワークサービスに送信するオペレーションと、
前記第１の条件に基づき、第１の詳細レベルで前記トラフィックフローの前記第１の部分を、前記ネットワークサービスで検査するオペレーションと、
前記検査に基づき、前記トラフィックフローが第２の条件を満たすと判断するオペレーションと、
前記トラフィックフローが前記第２の条件を満たすとの前記判断に基づき、前記トラフィックフローの第２の部分を前記ネットワークサービスに送信するオペレーションと、
第２の詳細レベルで前記トラフィックフローの前記第２の部分を、前記ネットワークサービスで検査することであって、前記第２の詳細レベルでの前記検査は、前記第１の詳細レベルでの前記検査より多くのコンピューティングリソースの量を必要とする、検査するオペレーションと、
を備える、
プログラム。
【請求項２２】
前記第１の条件は、ヒューリスティック、前記トラフィックフローに関連するポリシー、又は関心のあるイベントのうちの１つを備える、
請求項２１に記載のプログラム。
【請求項２３】
前記第２の条件は、ヒューリスティック、前記トラフィックフローに関連するポリシー、又は関心のあるイベントのうちの１つを備える、
請求項２１または２２に記載のプログラム。
【請求項２４】
前記第２の詳細レベルでの前記トラフィックフローの前記第２の部分の前記検査は、前記第１の詳細レベルでの前記トラフィックフローの前記第１の部分の前記検査より前記トラフィックフローのより大きい部分を検査することを有する、
請求項２１から２３の何れか一項に記載のプログラム。
【請求項２５】
前記トラフィックフローの前記第２の部分は、前記トラフィックフローの前記第１の部分より多くの情報量を有する、
請求項２１から２４の何れか一項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は概してネットワークサービスに関する。
【背景技術】
【０００２】
ある場所から別の場所にデータをルーティングすることに加えて、近年のデータネットワークは、複数のパーソナライズドサービスを提供する。例えば、多くのネットワークは、複数のパケットの複数のシーケンスを検査する複数の侵入検出サービスを提供し、複数のネットワーク攻撃を検出し防止する。これらのサービスを提供することは、トラフィックフローのルーティングの変更を必要とし得る場合がある。例えば、トラフィックは、サービスを提供する特定のデバイスを介してルーティングされ得る。
【０００３】
従来のルーティングアルゴリズムは、それぞれのルータが有する、その近隣の複数のリンク及びデバイスからのローカル情報に依存し、データをルーティングする。ルータは、そのような情報をルーティングテーブルに維持する。受信パケットの宛先アドレスに基づき、ルータは、そのルーティングテーブルを用い、そのパケットを特定の近隣のデバイスに転送する。
【０００４】
ソフトウェア・デファインド・ネットワーク（ＳＤＮ）と呼ばれる技術は、制御機能及び転送機能を複数の別個のデバイスに分離する。制御デバイスは、ネットワークトポロジのグローバルな知見を用い、複数の個々のデータフローに関して複数の転送デバイスのネットワークを通る経路を判断し得る。このように、制御デバイスは、例えば、ネットワークを通る、遅延を最小化する、又は帯域幅を最大化する複数の経路を確立し得、又は特定のネットワークサービスを提供する特定のデバイスを通るデータフローをルーティングし得る。
【０００５】
複数のネットワークサービスを通る複数のデータフローをルーティングすることにより、パフォーマンスの懸念が生じる。例えば、侵入検出システムは、複数の複雑なオペレーションを実行し、複数の攻撃パターンを検出し得る。これらのオペレーションは、待機時間を増加させ、帯域幅を減少させ得、又は複数の高コストなネットワークリソースを消費し得る。
【発明の概要】
【０００６】
上記のことを考慮すると、ヒューリスティック及びポリシー条件に基づき、複数のトラフィックフローに対して、複数のネットワークリソースの改善された適用を提供するための機構を提供することは、有利であろう。
【０００７】
一実施形態において、システムは、ネットワーク内のトラフィックフローが第１の条件を満たすと判断し、トラフィックフローの第１の部分をネットワークサービスに送信する。ネットワークサービスは次に、第１の詳細レベルでトラフィックフローの第１の部分を検査し、トラフィックフローが第２の条件を満たすと判断する。ネットワークは次に、トラフィックフローが第２の条件を満たすと判断する段階に基づき、トラフィックフローの第２の部分をネットワークサービスに送信し得る。ネットワークサービスは、第２の詳細レベルでトラフィックフローの第２の部分を検査し得、第２の詳細レベルで検査する段階は、第１の詳細レベルで検査する段階より多くのコンピューティングリソース量を必要とする。
【０００８】
方法及びコンピュータ可読媒体の実施形態も開示される。
【０００９】
更なる複数の実施形態及び特徴、並びに様々な実施形態の構造及び動作が、複数の添付図面を参照して以下に詳細に説明される。
【図面の簡単な説明】
【００１０】
複数の添付図面は本明細書に組み込まれ、本明細書の一部を形成する。
【００１１】
【図１】一実施形態に従って、複数のネットワークリソースの増加を適用するよう構成されるネットワークのブロック図を示す。
【００１２】
【図２】一実施形態に従って、複数のネットワークフローに対して、ネットワークリソースのより多くの適用を提供するシステムの更なる詳細を示すブロック図を示す。
【００１３】
【図３】一実施形態による、フロー分析の複数の異なるレベルの機能を示す図を示す。
【００１４】
【図４】一実施形態による、複数のポリシーに基づき、マイクロフローに対するネットワークリソースのより多くの適用を実行する方法を示すフローチャートである。
【００１５】
【図５】一実施形態による、ネットワーク内の複数のトラフィックフローに対して、複数のネットワークリソースの割り当てを増加させるための方法を示すフローチャートである。
【００１６】
複数の図面において、同様の参照番号は概して同一又は類似の要素を示す。更に、概して参照番号の左端の（複数の）桁は、その参照番号が最初に現れる図面を特定する。
【発明を実施するための形態】
【００１７】
複数の実施形態において、複数のネットワークリソースは、ヒューリスティック及びポリシー条件に基づき、複数のトラフィックフローにより多く適用される。一例において、軽量ネットワークサービスは、まずデータフローの小さい部分を調査する。軽量ネットワークサービスは、複数の制限されたコンピューティングリソースを用いる技術を用いて、データフローのその部分を調査し得る。軽量サービスは、データフローを調査し、データストリームがより詳細な調査を必要とするかどうかを判断し得る。ネットワークサービスが、より詳細な調査が必要であると判断する場合のみ、全体のデータフローは、より多くのコンピューティングリソースを必要とし、待機時間により多くを、又はより高いコストを追加する技術を用いて調査され得る。
【００１８】
このように複数のリソースの増加を適用するべく、ネットワーククライアントは、複数の他のクライアント又はサービスとの複数のネットワーク接続に対する複数のプリファレンス又はポリシーを設定し得る。例えば、クライアントは、侵入検出システムにより、特定のパーティとの特定のタイプのトラフィックがモニタリングされることを明記するポリシーを提供し得る。複数の実施形態において、ネットワークは、クライアントへの、又はクライアントからのトラフィックをモニタリングし、トラフィックが複数のポリシー条件を満たすかどうかを検出し得、検出する場合、侵入検出システムを介してそれらの条件を満たすトラフィック（又はマイクロフロー）の部分をルーティングする。例えば、ネットワークは、侵入検出システムを介して、特定のタイプの、特定のパーティに向けられた複数のパケットをルーティングし得る。複数の実施形態はまた、複数のポリシー及びヒューリスティックに基づき、検査されるフロー量及び検査のレベルを高め得る。このように、ネットワークは、複数のトラフィックフローに対して複数のネットワークリソースをますます適用させることにより、ネットワークトラフィックの経済的な処理を提供し得る。
【００１９】
図１は、一実施形態に従って、複数のトラフィックフローに対して複数のネットワークリソースをますます適用させるネットワーク１００のブロック図を示す。
【００２０】
ネットワーク１００は、例えば、パーソナルコンピュータ、サーバ、モバイルデバイス、ローカルエリアネットワーク（ＬＡＮ）などの、複数のクライアントコンピューティングデバイス間でデータを送信するよう構成されるトラフィックネットワークであり得る。一実施形態において、ネットワーク１００は、ワイドエリアネットワーク（ＷＡＮ）、又はメトロポリタンエリアネットワーク（ＭＡＮ）である。一実施形態において、ネットワーク１００は、例えば、仮想ローカルエリアネットワーク（ＶＬＡＮ）、仮想プライベートネットワーク（ＶＰＮ）などの、複数の仮想ネットワーキングサービスを提供する。一実施形態において、ネットワーク１００は、遠く離れた場所のクライアント間にイーサネット（登録商標）接続性を提供する。例えば、ネットワーク１００は、遠く離れた場所のクライアント間のデータ通信のために専用の帯域幅を仮想回路に提供し得る。ネットワーク１００は、任意のポイント・ツー・ポイント、ポイント・ツー・マルチポイント、又はマルチポイント・ツー・マルチポイントの複数のネットワーキングプロトコルを利用し得る。用いられるネットワークアクセスプロトコルは、例えば、イーサネット（登録商標）、非同期転送モード（ＡＴＭ）、ハイレベルデータリンク制御（ＨＤＬＣ）、フレームリレー、同期光ネットワーキング（ＳＯＮＥＴ）／同期デジタルハイアラーキ（ＳＤＨ）、インターネットプロトコル（ＩＰ）、伝送制御プロトコル（ＴＣＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、マルチプロトコルラベルスイッチング（ＭＰＬＳ）などを含み得る。
【００２１】
一実施形態において、ネットワーク１００は、ルータ１１０ａ−ｆ、コントローラ１２０、ネットワークサービスプロバイダ１３０、データ収集モジュール１４０、分析モジュール１４２、ポリシーデータベース１４４、及びクライアントポータル１５０を含む。それぞれの構成要素が、以下順に説明される。ルータ１１０ａ−ｆのそれぞれは、複数のパケットを転送するレイヤ２又はレイヤ３デバイスであり得る。
【００２２】
コントローラ１２０は、例えば、クライアントプリファレンス、ネットワークポリシー、又はヒューリスティックに基づき、データをルーティングするようルータ１１０ａ−ｆを設定し得る。例えば、コントローラ１２０は、ルータ１１０ａ−ｆのルーティングテーブルを設定し、２つのクライアント間の仮想回路を作成し得る。コントローラ１１０は、分析モジュール１４２と通信し、ルータ１１０ａ−ｆをどのように設定するかについて判断を行い得る。
【００２３】
ネットワークサービスプロバイダ１３０は、複数のトラフィックフロー上で複数のサービスを実行するよう構成されるコンピューティングデバイスであり得る。例えば、ネットワークサービスプロバイダ１３０は、トラフィックフローの複数のパケットをモニタリングし、分析し、ブロックし、複製し、又は修正し得る、侵入検出システム、ファイアウォールサービス、アンチウイルスシステム、アンチスパムフィルタなどであり得る。一実施形態において、ネットワークサービスプロバイダ１３０はネットワーク１００の一部である。別の実施形態において、ネットワークサービスプロバイダ１３０は、例えばインターネットを介してネットワーク１００と通信する外部の第３のパーティにより別個に提供される。
【００２４】
一実施形態において、コントローラ１２０は、ネットワークサービスプロバイダ１３０を介して、トラフィックフロー、又はトラフィックフローの複数の部分をルーティングするよう複数のルータを設定する。例えば、第１のパーティが、トラフィックフローを確立し、第２のパーティと通信することを望み得るが、そのフローが侵入検出システムによりモニタリングされることを望み得る。コントローラ１２０は、複数のパーティ間のトラフィックフローを運搬し、そのルート内にサービスプロバイダ１３０を含めるように、一式のルータを設定し得る。一実施形態において、コントローラ１２０は、ネットワークから収集されるデータに基づきヒューリスティックを採用し、複数のフローに適用される複数のトラフィックフロールート及び複数のネットワークサービスを設定し得る。
【００２５】
データ収集モジュール１４０は、複数のネットワークフローに関連する複数のポリシーに基づき、それらのフローからデータを収集し得、分析のために分析モジュール１４２にそのデータを転送する。一実施形態において、ルータ１１０（例えば、任意のルータ１１０ａ−ｆ）は、新たなデータフローを検出し得る。新たなデータフローからのパケットが検出された場合に、ルータは、そのヘッダ及びその複数のコンテンツの両方を含むそのパケットを、データ収集モジュール１４０に転送し得る。
【００２６】
データ収集は、特定のフローのために所望される監視量に依存し得る。例えば、ポリシーは、フローに対する分析のレベルを明記し得、データ収集モジュール１４０は、明記された分析のレベルに基づき、複数のパケットから情報を収集し得る。一例において、データ収集モジュール１４０は、フローに対する適度な信頼を示す検査レベルで、フローに対する複数のパケットヘッダだけを収集する。別の例において、データ収集モジュール１４０は、フローに対するより高いレベルの信頼を示す、より低い検査レベルで、複数のヘッダのサブセットをサンプリングする。さらに別の例において、より詳細に検査されるフローに対して、データ収集モジュール１４０は、フロー全体を収集し得る。このように、データ収集及び分析の詳細のレベルは、更に以下で説明されるように、フローの分析に基づき調整され得る。
【００２７】
分析モジュール１４２は、データ収集モジュール１４２により収集されたデータを分析し、複数のポリシー条件又は複数のセキュリティフラグをトリガし得る複数の条件を検出し得る。複数の条件を検出するべく、分析モジュール１４２は、ポリシーデータベース１４４からポリシー情報を収集する。
【００２８】
ポリシーデータベース１４４は、例えば、ネットワーククライアント、ソース及び宛先アドレス、アプリケーションなどと関連する複数のポリシーを格納し得る。一実施形態において、クライアントは、その複数のトラフィックフローに関連する複数のポリシーを明記する。例えば、クライアント及びサーバは、ネットワーク１００を介して通信し得る。クライアントは、サーバとの自身のＨＴＴＰトラフィックを、侵入検出システムによりモニタリングされることを望むことを明記し得る。ポリシーデータベース１４４はまた、ヒューリスティックに基づき複数のポリシーを格納し得る。例えば、ネットワークマネージャは、異常トラフィックを、他のトラフィックよりも厳密に評価することを望み得る。マネージャは、平均パケットサイズが一定の閾値を超えるフローが、より厳密な調査のために、侵入検出システムを介して転送されるべきであることを述べるヒューリスティックベースのポリシーを確立し得る。
【００２９】
ポリシーデータベース１４４内の複数のポリシーを用いて、分析モジュール１４２は、データ収集モジュール１４０から取得されたフローデータを評価し、任意のポリシーが満たされているかどうかを判断し得る。任意の条件が満たされている場合、分析モジュール１４２は、コントローラ１２０と通信し、それに対して、満たされているポリシーに準拠してトラフィックをルーティングするよう、ルータ１１０ａ−ｆを設定するように命令し得る。例えば、分析モジュール１４２が、トラフィックフローの平均パケットサイズが、ヒューリスティックベースのルールにより確立された閾値を超えることを検出する場合、分析モジュール１４２はコントローラ１１０に通知し得、コントローラ１１０は、侵入検出システムによりモニタリングするためにネットワークサービスプロバイダ１３０を介してフローを転送するよう複数のルータを設定し得る。
【００３０】
クライアントポータル１５０は、複数のネットワーククライアントから複数のポリシー及び設定情報を受信し得る。一実施形態において、クライアントポータル１５０は、複数のクライアントに、ウェブインタフェースなどのユーザインタフェースを提供し、複数のクライアントは、それらの複数のネットワーク通信のための複数のポリシー及び設定情報を提供し得る。別の実施形態において、クライアントポータル１５０は、複数のクライアントが、それらのネットワーク通信のために複数のポリシー及び設定情報を提供することを可能にする複数のアプリケーションプログラムインタフェースを提供し得る。
【００３１】
クライアントポータル１５０は、特定のフロー、クライアント、パーティ、アプリケーションなどのために所望されるセキュリティ又はパフォーマンスの複数のハイレベルな指標を受信し得る。これらの指標に基づき、クライアントポータル１５０は、ポリシーデータベース１４４内の複数のポリシーを設定し得る。別の実施形態において、クライアントポータル１５０は、特定のフローのために所望される検査レベル又は侵入検出分析の複数の詳細なポリシーを受信する。
【００３２】
図２は、実施形態の一例に従って、複数のネットワークフローに対して、ネットワークリソースの改善された適用を提供するシステムの更なる詳細を示すブロック図を示す。
【００３３】
フローは、ルータ１１０ａ及び１１０ｂを介してトラベルするよう構成され得る。図２は、実施形態の一例に従って、フローが、フローのために判断される検査レベルに基づき、どのように処理され得るかを示す。
【００３４】
一実施形態において、複数のルータ１１０は、複数の新たなフローを検出し、フロー分析を実行し、対応するモジュールに複数のフローをルーティングし得る。一実施形態において、ルータ１１０は、新たなフローからパケットを検出し、分析モジュール１４２による分析のためにデータ収集モジュール１４０にパケットを転送する。分析モジュール１４２は、例えば、フローに対する検査レベルを提供することにより、コントローラ１２０に複数の分析命令を提供し得る。コントローラ１２０は次に、複数のルータ１１０を、それらのそれぞれの検査レベルに基づき複数のフローをルーティングするよう設定し得る。
【００３５】
一実施形態において、複数のルータ１１０は、複数のフローについてのメタデータのヒューリスティック分析を実行するよう構成され得る。例えば、ルータ１１０ａなどのルータ１１０は、複数のフローの平均パケットサイズをモニタリングするよう構成され得る。平均パケットサイズが、特定の範囲を逸脱する場合、ルータ１１０ａは、フローからの複数のパケットをデータ収集モジュール１４０に転送し得、分析モジュール１４２は、フローの検査レベルを高めるべきかどうかを判断し得る。
【００３６】
一実施形態において、コントローラ１２０は、複数のルータ１１０を、フローの検査レベルに基づき、サービスプロバイダ１３０にフローの複数のパケットのマイクロフローをルーティングするよう設定し得る。例えば、第１の検査レベルにおけるフローに対して、ルータ１１０ａは、プロバイダ１３０を介して何れのパケットもルーティングしないよう構成され得、フローメタデータのヒューリスティック分析を実行し得、直接ルータ１２０ｂにフローをルーティングし得る。このように、検査の第１のレベルは、ルータ１１０ａで実行され得る。
【００３７】
分析の第１のレベルを超えて、複数の異なるレベルの検査を実行するべく、複数のパケットは、パケットサンプラモジュール２３２、フローオプティマイザモジュール２３４、トラフィックサンプラモジュール２３６、及び連続分析計２３８を有するサービスプロバイダ１３０により提供される様々なモジュールに送信され得る。
【００３８】
具体的に、第２の検査レベルで、ルータ１１０ａは、分析のために、ネットワークサービスプロバイダ１３０に、複数のパケットヘッダの複数のサンプル（例えば、無作為抽出されたヘッダサンプル）からなるマイクロフローを、ルーティングするよう構成され得る。プロバイダ１３０におけるパケットサンプラモジュール２３２は次に、このマイクロフローを分析し得る。第３の検査レベルで、ルータ１１０ａは、複数のパケットヘッダからなるマイクロフローをプロバイダ１３０にルーティングするよう構成され得、プロバイダ１３０で、フローオプティマイザモジュール２３４は、マイクロフローを分析し得る。第４の検査レベルで、ルータ１１０ａは、プロバイダ１３０を介して、ヘッダ及び複数のコンテンツを含む複数のパケットからなるマイクロフローをルーティングするよう構成され得、プロバイダ１３０で、トラフィック検査器モジュール２３６は、マイクロフローを分析し得る。第５の検査レベルで、ルータ１１０ａは、プロバイダ１３０を介して、フロー全体をルーティングするよう構成され得、プロバイダ１３０で、連続分析計２３８は、フローを分析し得る。説明された複数の検査レベル及び複数のマイクロフローは、ネットワーク１００の複数の実施形態の機能を示すことを意図された単なる複数の例であり、関連分野の当業者によって、パケットフロー分析の異なる方法に適した複数の他の例が理解されるであろう。
【００３９】
プロバイダ１３０は、例えば、侵入検出、ファイアウォール、アンチスパムフィルタリングなどの複数のマイクロフローの分析を実行し得る。プロバイダ１３０は次に、分析の複数の結果に応じて、例えば、複数のセキュリティリスクを提することが判断された複数のパケットをブロックする段階、アラートを送信する段階、などの他の動作をフローに対して実行し得る。一実施形態において、プロバイダ１３０は、分析モジュール１４２と通信し、前の分析の複数の結果に基づき、フローの検査レベルを調整し得る。
【００４０】
図３は、実施形態の一例に従って、フロー分析の複数の異なるレベルの機能を示す図を示す。
【００４１】
レベル３０２で、フローに対して特に分析は実行されず、フローのメタデータに対するジェネリックヒューリスティック分析のみが実行される。例えば、分析は、パケットの平均サイズ、パケットの数、送信されるバイトなどを判断する段階を含み得る。
【００４２】
レベル３０４で、例えば、マイクロフローを特定し得るパケットサンプリングが、実行され得る。このレベルで、分析は、複数のパケットヘッダの複数のランダムサンプルを見る段階と、それらが一定の基準を満たすかどうかを判断する段階とを含み得る。例えば、パケットサンプリングは、ポリシーが適用されるマイクロフロー（例えば、レイヤ３及びレイヤ４ＩＰ、ポート、プロトコル情報、さらに特定のアドレスからの複数のＨＴＴＰパケット）を特定するために用いられ得る。そのポリシーは次に、コントローラ１１０に適用され得る。
【００４３】
レベル３０６で、例えば、パフォーマンスのレベルを確保しながら、フロー全体を見得るフロー最適化が、実行され得る。パフォーマンスレベルは、フローが特定され、検索される場合に、特定のサービスレベル（保証された帯域幅、待機時間、ジッタ、パケット損失など）を必要とし得るアプリケーションパフォーマンスデータベースで定義され得る。 このレベルで、分析は、フロー又はマイクロフロー内のすべてのパケットのヘッダを見る段階を含み、複数のポリシー又は複数のルールにマッチする複数の条件を検出し得る。
【００４４】
レベル３０８で、例えば、いくつかのパケットのペイロードを見得るトラフィック検査が、実行され得る。例えば、分析は、フロー又はマイクロフロー内の複数のランダムパケットのペイロードを見る段階と、特定のタイプのトラフィックに関連する攻撃パターンを探す段階とを含み得る。
【００４５】
レベル３１０で、例えば、フロー全体又はマイクロフローを見得る、連続した分析が実行され得る。例えば、分析は、フロー又はマイクロフロー内のすべてのパケットのヘッダ及びペイロードを見る段階と、特定のタイプのトラフィックに関連する複数の攻撃パターンを検出する段階とを含み得る。
【００４６】
図４は、実施形態の一例に従って、複数のポリシーに基づき、マイクロフローに対するネットワークリソースのより多くの適用を実行する段階の方法４００を示すフローチャートである。
【００４７】
段階４０２で、ネットワークは、そのネットワーク通信のうち１又は複数に関するクライアントからのポリシーを受信する。クライアントは、例えば、ソース及び宛先アドレス（例えば、ＩＰアドレス）、ソース及び宛先ポート（例えば、ＴＣＰ又はＵＤＰポート）、プロトコル（例えば、ＨＴＴＰ、ＲＴＰ）、アプリケーションなどの複数のパラメータに基づき、その複数の通信のすべて又は一部に対する複数のポリシーを明記し得る。一実施形態において、ネットワーククライアントは、その通信のすべて又は一部のために必要とされるパフォーマンス及びセキュリティを明記し得る。クライアントは、複数の特定の通信に対して所望されるパフォーマンス又はセキュリティのハイレベルな説明を提供し得（例えば、ＡＢＣ社との通信に対する高いセキュリティ、ＸＹＺ社との通信に対する高いスループットなど）、又は、（例えば、複数の特定のＩＰアドレス及びポート間の複数の通信に対する特定のＩＤＳサービスなどの）特定の低いレベルのポリシー詳細を提供し得る。
【００４８】
段階４０４で、ネットワークは、複数のクライアント通信に関連する複数のポリシーをポリシーデータベース内に格納する。段階４０２で説明されたように、一実施形態において、ネットワークは、クライアントにより提供されるハイレベルな入力に基づき、複数の低いレベルのポリシーを作成する。
【００４９】
段階４０６で、ネットワークは、分析のためにフローから複数のデータサンプルを収集する。段階４０８で示されるように、一実施形態において、ネットワークは、新たなデータフローから第１のパケットを収集し、そのフローがポリシーデータベースで確立された条件を満たすかどうかを判断し得る。例えば、ネットワークは、パケットの分析に基づき、侵入検出システムを介して、フローが伝えなければならないと明記するポリシーにマッチするソース及び宛先ＩＰアドレスを、フローが有することを、判断し得る。
【００５０】
段階４０８で、ネットワークが、データフローがポリシー条件を満たすと判断する場合、ネットワークは、段階４１０で示されるように、ポリシーに従って、その複数のフロールートを、フロー、又はそのフローのマイクロフローを転送するよう調整する。例えば、ネットワークは、例えば、複数のパケットの複数のヘッダなどのマイクロフローを、侵入検出システムを介してルーティングするよう、複数のルータのルーティングテーブルを調整し得る。
【００５１】
ネットワークは、フローチャートの段階４０６へのリターンで示されるように、複数のフローからデータを連続的に収集し、複数のポリシー条件が発生するかどうかを判断し得る。
【００５２】
図５は、実施形態の一例に従って、ネットワーク内の複数のトラフィックフローに対して複数のネットワークリソースの割り当てを増加させる段階の方法５００を示すフローチャートである。
【００５３】
段階５０２で、ネットワークは、フローのトラフィック検査レベルを初期レベルに設定し得る。
【００５４】
段階５０４で、ネットワークは、フローに対する検査レベル設定に基づき、フローのネットワークトラフィックを検査し得る。トラフィックを検査する段階は、例えば、ネットワークサービスを介して、例えば、マイクロフローなどのフローの一部を送信する段階を含み得る。送信する段階は、ネットワークサービスを介して、例えば、マイクロフローなどのフローの一部をリルーティングする段階、又はネットワークサービスを介して、パケットフローを並列に複製する段階を含み得る。一実施形態において、より高い検査レベル毎に、フローのより大きい部分が、検査され、複数の改善されたネットワークリソースが、フローを検査する段階に適用される。
【００５５】
段階５０６で、ネットワークは、フロー内で関心のあるイベントを検出し得る。例えば、侵入検出システムは、特定のタイプのサーバに不正アクセスする攻撃パターンにマッチする、フロー内の複数のパケットのシーケンスを検出し得る。ネットワークが関心のあるイベントを検出する場合、ネットワークは、段階５０８で示されるように、フローのトラフィック検査レベルを高め得る。フローのトラフィック検査レベルを高める段階は、図３に示されるより高いレベルでの、複数のパケットのフローのシーケンス内の複数の追加のパケットを検査する段階を含み得る。 ネットワークは次に、５０４で示されるように、高い検査レベルでフローを検査する段階を継続し、攻撃が実際に発生しているかどうかを更に判断し、それを適切に処理し得る。
【００５６】
同様に、ネットワークは、フローをモニタリングする段階を継続し、関心のあるイベントが継続するかどうかを判断し得る。侵入検出システムの例において、ネットワークは、攻撃パターンにマッチするシーケンスに、フローがマッチし続けるかどうかを判断するべく、モニタリングし得る。イベントが複数のパケットのサイズ又はデータフロー内の複数のパケットの数又は比に関わる複数の例において、ネットワークは、複数のパケットのサイズ、数又は比が、通常の範囲を外れるかどうかを判断するべく、モニタリングを継続し得る。イベントがもはや存在しない場合、ネットワークは、検査のレベルを下げ得る。検査のレベルを下げることにより、図３で示される、より低いレベルでの複数のパケットのフローのシーケンス内の複数の追加のパケットは、これにより、潜在的攻撃の複数の他のエリアを評価するべく、複数のネットワークリソースを解放する。  ［結論］
【００５７】
ポリシーデータベース１４４は、永続的メモリを含む、任意の格納されたタイプの構造化メモリであってよい。複数の例において、データベースは、リレーショナルデータベース又はファイルシステムとして実装されてよい。
【００５８】
図１及び図２の複数のブロック及び複数のモジュールのそれぞれは、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせで実装されてよい。
【００５９】
図１及び図２の複数のブロック及び複数のモジュールのそれぞれは、同一又は異なるコンピューティングデバイス上に実装されてよい。そのようなコンピューティングデバイスは、限定されないが、パーソナルコンピュータ、携帯電話などのモバイルデバイス、ワークステーション、埋め込みシステム、ゲームコンソール、テレビ、セットトップボックス、又は任意の他のコンピューティングデバイスを含み得る。更に、コンピューティングデバイスは、命令を実行し格納するために、限定されないが、プロセッサと、非一時的メモリを含むメモリとを有するデバイスを含み得る。メモリは、データ及びプログラム命令を具体的に実現し得る。ソフトウェアは、１又は複数のアプリケーションとオペレーティングシステムとを含み得る。ハードウェアは、限定されないが、プロセッサ、メモリ、及びグラフィカル・ユーザ・インタフェース・ディスプレイを含み得る。コンピューティングデバイスは、複数のプロセッサ、及び複数の共有又は別個のメモリ構成要素も有し得る。例えば、コンピューティングデバイスは、クラスタ化されたコンピューティング環境又はサーバファームの一部又は全体であってよい。
【００６０】
「（ａ）」、「（ｂ）」、「（ｉ）」、「（ｉｉ）」などの識別子は、異なる要素又は段階のために用いられることがある。これらの識別子は明確にするために用いられ、必ずしも要素又は段階の順序を示すものではない。
【００６１】
本発明は、複数の特定機能の実装を示す複数の機能的構成単位、及びそれらの関係を用いて上述された。これらの機能的構成単位の境界は、説明の利便性のために、本明細書で任意に画定された。複数の特定の機能及びそれらの関係が適切に実行される限り、代替の境界が画定され得る。
【００６２】
複数の具体的な実施形態についての前述の説明は、本発明の一般的性質をとても十分に明らかにしているので、当技術分野の技術内の知見を適用することで、過度の実験なしに、本発明の一般的概念から逸脱することなく、その他の人々がそのような複数の具体的な実施形態を容易に修正し得る、及び／又は様々な用途に容易に改作し得る。したがって、そのような変更及び改作は、本明細書に提供された教示及び指導に基づいて、開示されている複数の実施形態の均等物の趣旨内及び範囲内であるよう意図されている。本明細書の語句又は用語は、説明を目的とするものであって制限するものではなく、これにより本明細書の語句又は用語は、教示及び指導を考慮して当業者により解釈されることになることが理解されるべきである。
【００６３】
複数の本実施形態の広さ及び範囲は、上述された複数の例のいずれによっても限定されるべきではなく、次の特許請求の範囲及びその均等物のみに基づいて定義されるべきである。
本願によれば、以下の各項目もまた開示される。
［項目１］
ネットワークトラフィックを検査する、コンピュータによって実装される方法であって、
トラフィックフローが第１の条件を満たすと判断することと、
前記トラフィックフローが前記第１の条件を満たすとの前記判断に基づき、前記トラフィックフローの第１の部分をネットワークサービスに送信することと、
前記第１の条件に基づき、第１の詳細レベルで前記トラフィックフローの前記第１の部分を、前記ネットワークサービスで検査することと、
前記検査に基づき、前記トラフィックフローが第２の条件を満たすと判断することと、
前記トラフィックフローが前記第２の条件を満たすとの前記判断に基づき、前記トラフィックフローの第２の部分を前記ネットワークサービスに送信することと、
第２の詳細レベルで前記トラフィックフローの前記第２の部分を、前記ネットワークサービスで検査することであって、前記第２の詳細レベルでの前記検査は、前記第１の詳細レベルでの前記検査とは異なるコンピューティングリソース量を必要とする、段階と、
を備える、方法。
［項目２］
前記第１の条件は、ヒューリスティック、前記トラフィックフローに関連するポリシー、又は関心のあるイベントのうちの１つを備える、
項目１に記載の方法。
［項目３］
前記第２の条件は、ヒューリスティック、前記トラフィックフローに関連するポリシー、又は関心のあるイベントのうちの１つを備える、
項目１または２に記載の方法。
［項目４］
前記第２の詳細レベルでの前記トラフィックフローの前記第２の部分の前記検査は、前記第１の詳細レベルでの前記トラフィックフローの前記検査より高い前記トラフィックフローのコンテンツを検査することを有する、
項目１から３の何れか一項に記載の方法。
［項目５］
トラフィックフローの第１の部分は、複数のパケットのランダムサンプルを備える、
項目１から４の何れか一項に記載の方法。
［項目６］
前記第２の詳細レベルでの前記トラフィックフローの前記検査に基づき、前記トラフィックフローの第３の部分を前記ネットワークサービスに送信することと、
第３の詳細レベルで前記トラフィックフローの前記第３の部分を、前記ネットワークサービスで検査することと、
を更に備える、
項目１から５の何れか一項に記載の方法。
［項目７］
前記トラフィックフローがもはや前記第２の条件を満たさないと判断することと、
前記トラフィックフローがもはや前記第２の条件を満たさないことが判断された場合に、前記第１の詳細レベルで前記トラフィックフローの第３の部分を、前記ネットワークサービスで検査することと、
を更に備える、
項目１から６の何れか一項に記載の方法。
［項目８］
第２の詳細レベルでの前記トラフィックフローの前記第２の部分の前記検査は、侵入検出分析を実行することを有する、
項目１から７の何れか一項に記載の方法。
［項目９］
前記第１の条件は、前記トラフィックフローに関連するパラメータと、前記トラフィックフローのために所望されるセキュリティのレベルとを備える、
項目１から８の何れか一項に記載の方法。
［項目１０］
前記トラフィックフローの前記第２の部分は、前記トラフィックフローの前記第１の部分より多くの情報量を有する、
項目１から９の何れか一項に記載の方法。
［項目１１］
トラフィックフローが第１の条件を満たすと判断する分析モジュールと、
コントローラであって、
前記トラフィックフローが前記第１の条件を満たすとの前記判断に基づき、前記トラフィックフローの第１の部分をネットワークサービスに送信するよう、１又は複数のルータを設定するコントローラと、
ネットワークサービスであって、
前記第１の条件に基づき、第１の詳細レベルで前記トラフィックフローの前記第１の部分を検査し、
前記検査に基づき、前記トラフィックフローが第２の条件を満たすと判断するネットワークサービスと、
を備え、
前記コントローラは、前記トラフィックフローが前記第２の条件を満たすという前記判断に基づき、前記トラフィックフローの第２の部分を前記ネットワークサービスに送信するよう１又は複数のルータを更に設定し、
前記ネットワークサービスは、第２の詳細レベルで前記トラフィックフローの前記第２の部分を更に検査し、前記第２の詳細レベルでの前記検査は、前記第１の詳細レベルでの前記検査とは異なるコンピューティングリソースの量を必要とする、
システム。
［項目１２］
前記第１の条件は、ヒューリスティック、前記トラフィックフローに関連するポリシー、又は関心のあるイベントのうちの１つを備える、
項目１１に記載のシステム。
［項目１３］
前記第２の条件は、ヒューリスティック、前記トラフィックフローに関連するポリシー、又は関心のあるイベントのうちの１つを備える、
項目１１または１２に記載のシステム。
［項目１４］
前記第２の詳細レベルでの前記トラフィックフローの前記第２の部分の前記検査は、前記第１の詳細レベルでの前記トラフィックフローの前記検査より高い前記トラフィックフローのコンテンツの検査を有する、
項目１１から１３の何れか一項に記載のシステム。
［項目１５］
トラフィックフローの第１の部分は、複数のパケットのランダムサンプルを備える、
項目１１から１４の何れか一項に記載のシステム。
［項目１６］
前記第２の詳細レベルでの前記トラフィックフローの前記検査に基づき、前記トラフィックフローの第３の部分を前記ネットワークサービスに送信することと、
第３の詳細レベルでの前記トラフィックフローの前記第３の部分を、前記ネットワークサービスで検査することと、
を更に備える、
項目１１から１５の何れか一項に記載のシステム。
［項目１７］
第２の詳細レベルでの前記トラフィックフローの前記第２の部分の前記検査は、侵入検出分析を実行することを有する、
項目１１から１６の何れか一項に記載のシステム。
［項目１８］
前記第１の条件は、前記トラフィックフローに関連するパラメータと、前記トラフィックフローのために所望されるセキュリティのレベルとを備える、
項目１１から１７の何れか一項に記載のシステム。
［項目１９］
前記ネットワークサービスは、
前記トラフィックフローがもはや前記第２の条件を満たさないと判断し、
前記トラフィックフローがもはや前記第２の条件を満たさないことが判断された場合に、前記第１の詳細レベルで前記トラフィックフローの第３の部分を、前記ネットワークサービスで検査する、
項目１１から１８の何れか一項に記載のシステム。
［項目２０］
前記トラフィックフローの前記第２の部分は、前記トラフィックフローの前記第１の部分より多くの情報量を有する、
項目１１から１９の何れか一項に記載のシステム。
［項目２１］
少なくとも１つのコンピューティングデバイスにより実行される場合に、前記少なくとも１つのコンピューティングデバイスに複数のオペレーションを実行させるプログラムであって、
複数のオペレーションは、
トラフィックフローが第１の条件を満たすと判断するオペレーションと、
前記トラフィックフローが前記第１の条件を満たすとの前記判断に基づき、前記トラフィックフローの第１の部分をネットワークサービスに送信するオペレーションと、
前記第１の条件に基づき、第１の詳細レベルで前記トラフィックフローの前記第１の部分を、前記ネットワークサービスで検査するオペレーションと、
前記検査に基づき、前記トラフィックフローが第２の条件を満たすと判断するオペレーションと、
前記トラフィックフローが前記第２の条件を満たすとの前記判断に基づき、前記トラフィックフローの第２の部分を前記ネットワークサービスに送信するオペレーションと、
第２の詳細レベルで前記トラフィックフローの前記第２の部分を、前記ネットワークサービスで検査することであって、前記第２の詳細レベルでの前記検査は、前記第１の詳細レベルでの前記検査とは異なるコンピューティングリソースの量を必要とする、検査するオペレーションと、
を備える、
プログラム。
［項目２２］
前記第１の条件は、ヒューリスティック、前記トラフィックフローに関連するポリシー、又は関心のあるイベントのうちの１つを備える、
項目２１に記載のプログラム。
［項目２３］
前記第２の条件は、ヒューリスティック、前記トラフィックフローに関連するポリシー、又は関心のあるイベントのうちの１つを備える、
項目２１または２２に記載のプログラム。
［項目２４］
前記第２の詳細レベルでの前記トラフィックフローの前記第２の部分の前記検査は、前記第１の詳細レベルでの前記トラフィックフローの前記検査より高い前記トラフィックフローのコンテンツを検査することを有する、
項目２１から２３の何れか一項に記載のプログラム。
［項目２５］
前記トラフィックフローの前記第２の部分は、前記トラフィックフローの前記第１の部分より多くの情報量を有する、
項目２１から２４の何れか一項に記載のプログラム。
【図１】
0006598382.tif 000002
【図２】
0006598382.tif 000003
【図３】
0006598382.tif 000004
【図４】
0006598382.tif 000005
【図５】
0006598382.tif 000006