(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-26
(54)【発明の名称】ローカルおよびクラウド分類サービスを用いたアプリケーションベースのトラフィック分類に係るカバレッジの増大
(51)【国際特許分類】
H04L 12/66 20060101AFI20240318BHJP
H04L 12/22 20060101ALI20240318BHJP
【FI】
H04L12/66
H04L12/22
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023561665
(86)(22)【出願日】2022-04-05
(85)【翻訳文提出日】2023-12-05
(86)【国際出願番号】 US2022071543
(87)【国際公開番号】W WO2022217218
(87)【国際公開日】2022-10-13
(32)【優先日】2021-04-09
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-08-26
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】517392861
【氏名又は名称】パロ アルト ネットワークス,インコーポレイテッド
【氏名又は名称原語表記】Palo Alto Networks,Inc.
【住所又は居所原語表記】3000 Tannery Way,Santa Clara,California 95054,United States of America
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジアン,モンイン
(72)【発明者】
【氏名】シュイ,シェンミン
(72)【発明者】
【氏名】ファン,モンラン
(72)【発明者】
【氏名】ラム,ホー ユイ
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA15
5K030HA08
5K030HD03
5K030JA11
5K030LC14
(57)【要約】
クラウドベースのトラフィック分類エンジンは、既知のアプリケーションに基づいて開発されたアプリケーションベースのトラフィッククラスのカタログを維持し、そして、ローカルトラフィック分類エンジンは、これらのクラスのサブセットを維持する。ローカルエンジンによって分類することができない、ファイアウォールによってインターセプトされたネットワークトラフィックは、分類のためにクラウドベースエンジンに転送される。トラフィックのクラスを決定すると、クラウドベースエンジンは、決定されたクラスおよび対応するシグネチャをローカルエンジンに転送する。ファイアウォールは、クラウドベースエンジンによって通信されるクラスに対応するシグネチャを用いて更新される、キャッシュを維持する。アプリケーションから送信された後続のネットワークトラフィックは、アプリケーションに対応すると判定され、そして、キャッシュされたシグネチャに基づいて、ファイアウォールにおいてローカルに分類され得る。キャッシュのファイアウォールへのローカルは、クラウドに保管された分類情報のカタログがスケーリングするので、トラフィック分類動作の待ち時間を低減する。
【特許請求の範囲】
【請求項1】
方法であって、
サイバーセキュリティデバイスによって、第1セッションの最中に通信される1つ以上のパケットのセットを検出するステップと、
少なくとも部分的に、前記サイバーセキュリティデバイスによって維持されるシグネチャのセットに基づいて、アプリケーションが特定され得るかを判定するステップと、
前記サイバーセキュリティデバイスによって維持される前記シグネチャのセットに基づいて、
前記アプリケーションが特定され得ないと判定することに基づいて、前記パケットのセットのうち少なくとも第1パケットを、クラウドベースサービスに転送するステップと、
少なくとも部分的に、前記第1パケット、および、前記クラウドベースサービスが実行されるクラウド内に維持されている複数のシグネチャに基づいて、前記クラウドベースサービスによって、前記アプリケーションが特定され得るかを判定するステップであり、前記複数のシグネチャは、前記シグネチャのセットを含む、ステップと、
前記アプリケーションが特定され得ると判定する前記クラウドベースサービスに基づいて、前記サイバーセキュリティデバイスに、前記アプリケーションの指示、および、前記アプリケーションのパケットに関連付けられた前記複数のシグネチャの第1シグネチャを通信するステップと、
を含む、方法。
【請求項2】
前記方法は、さらに、
少なくとも部分的に、前記アプリケーションの指示を受信する前記サイバーセキュリティデバイスに基づいて、前記パケットのセットに対して、前記アプリケーションを指示するセキュリティポリシを適用するステップ、
を含む、請求項1に記載の方法。
【請求項3】
前記方法は、さらに、
前記クラウドベースサービスから前記第1シグネチャの指示を獲得する前記サイバーセキュリティデバイスに基づいて、前記第1シグネチャを用いて前記シグネチャのセットを更新するステップと、任意的に、
第2セッションの最中に通信される後続パケットを検出する前記サイバーセキュリティデバイスに基づいて、少なくとも部分的に、前記サイバーセキュリティデバイスによって維持される前記更新された前記シグネチャのセットに基づいて、前記アプリケーションを前記第2セッションと関連するものとして特定するステップと、
を含む、請求項1に記載の方法。
【請求項4】
前記シグネチャのセットは、対応するアプリケーションのセットに対して定義されたシグネチャのセットを含み、
前記複数のシグネチャは、対応する複数のアプリケーションに対して定義された複数のシグネチャを含み、かつ、
前記複数のアプリケーションは、前記アプリケーションのセットを含む、
請求項1に記載の方法。
【請求項5】
アプリケーションが特定され得るかを判定するステップは、一致が特定され得るかを決定するために、前記シグネチャのセットを前記パケットのセットに適用すること、を含み、
前記クラウドベースサービスによって、前記アプリケーションが特定され得るかを判定するステップは、一致が特定され得るかを判定するために、前記複数のシグネチャを前記第1パケットに適用すること、を含み、かつ、任意的に、
前記第1シグネチャは、前記複数のシグネチャに含まれるが、前記シグネチャのセットには含まれず、かつ、
前記アプリケーションが特定され得ると判定するステップは、前記第1パケットが前記複数のシグネチャのうちの前記第1シグネチャに一致すると判定すること、を含む、
請求項1に記載の方法。
【請求項6】
前記方法は、さらに、
第3セッションの最中に通信される1つ以上のパケットのセットを検出するステップに基づいて、
少なくとも部分的に、前記サイバーセキュリティデバイスによって維持される前記シグネチャのセットに基づいて、前記第3セッションと関連するアプリケーションが特定され得るかを判定すること、
前記第3セッションのためのアプリケーションが特定され得ないと判定することに基づいて、
少なくとも部分的に、前記第3セッションの前記パケットのセットに関連する送信元アドレス、宛先アドレス、ポート番号、および、ネットワーク通信プロトコルのうちの少なくとも1つに基づいて、類似のネットワークトラフィックが未知であると以前に判定されたかを判定すること、および、
類似のネットワークトラフィックが未知であると以前に判定されたと判定することに基づいて、
前記パケットのセットのいずれも前記クラウドベースサービスに転送することなく、前記第3セッションの前記パケットのセットが未知のトラフィックであると判定すること、
を含む、請求項1に記載の方法。
【請求項7】
アプリケーションクラスによってネットワークトラフィックを分類するためのプログラムコードを含む、1つ以上の非一時的機械可読記憶媒体であって、前記プログラムコードは、
第1セッションのネットワークトラフィックを検出し、
前記ネットワークトラフィックがアプリケーションクラスのセットのうちの1つへと分類され得るかを判定し、
前記ネットワークトラフィックが前記アプリケーションクラスのセットのうちの1つへと分類され得ないと判定すること基づいて、
前記ネットワークトラフィックの1つ以上のパケットをクラウドベースサービスに通信し、
前記クラウドベースサービスから、第1アプリケーションクラスの指示、および、通信された前記1つ以上のパケットに関連する第1シグネチャを獲得することに基づいて、
前記第1アプリケーションクラスの指示を前記第1セッションの識別子に関連付け、
前記第1アプリケーションクラスは、前記アプリケーションクラスのセットに含まれていなかったものであり、かつ、
前記第1アプリケーションクラスを用いて前記アプリケーションクラスのセットを更新する、
非一時的機械可読記憶媒体。
【請求項8】
前記プログラムコードは、さらに、
第2セッションのネットワークトラフィックの後続の検出に基づいて、
前記ネットワークトラフィックが前記アプリケーションクラスのセットのうちの1つへと分類され得るかを判定し、かつ、
前記ネットワークトラフィックを前記クラウドベースサービスに通信することなく、前記ネットワークトラフィックが前記第1アプリケーションクラスへと分類され得ると判定する、
請求項7に記載の非一時的機械可読記憶媒体。
【請求項9】
前記ネットワークトラフィックが、前記アプリケーションクラスのセットのうちの1つへと分類され得るかを判定する、前記プログラムコードは、
前記ネットワークトラフィックをシグネチャのセットに対して評価し、
前記シグネチャのセットの各々は、前記アプリケーションクラスのセットのうちの対応する1つに関連付けられており、
前記ネットワークトラフィックが、前記アプリケーションクラスのセットのうちの1つへと分類され得ないと判定する、前記プログラムコードは、
前記ネットワークトラフィックが、前記シグネチャのセットのうちのいずれにも一致させられ得ないと判定する、
請求項7に記載の非一時的機械可読記憶媒体。
【請求項10】
前記プログラムコードは、さらに、
前記通信された1つ以上のパケットがアプリケーションクラスへと分類され得なかったという指示を、前記クラウドベースサービスから獲得することに、少なくとも部分的に、基づいて、
未知のトラフィックとして前記ネットワークトラフィックを分類する、
請求項7に記載の非一時的機械可読記憶媒体。
【請求項11】
前記プログラムコードは、さらに、
第2セッションのネットワークトラフィックの検出に基づいて、前記ネットワークトラフィックが前記アプリケーションクラスのセットのうちの1つへと分類され得るかを判定し、
前記第2セッションの前記ネットワークトラフィックが分類され得ないと判定することに基づいて、
前記ネットワークトラフィックと共通の送信元アドレス、宛先アドレス、ポート番号、および、ネットワーク通信プロトコルのうちの少なくとも1つを有する以前に検出されたネットワークトラフィックが、未知のトラフィックとして以前に分類されたかを判定し、かつ、
以前に検出された前記ネットワークトラフィックが未知のトラフィックとして分類されたと判定することに基づいて、
前記クラウドベースサービスにパケットを通信することなく、前記第2セッションの前記ネットワークトラフィックを未知のトラフィックとして分類する、
請求項7に記載の非一時的機械可読記憶媒体。
【請求項12】
前記プログラムコードは、さらに、
前記第1アプリケーションクラスを指示する第1セキュリティポリシを、前記ネットワークトラフィックに適用する、
請求項7に記載の非一時的機械可読記憶媒体。
【請求項13】
装置であって、
プロセッサと、
命令が保管されたコンピュータ可読記憶媒体と、を含み、
前記プロセッサによって前記命令が実行されると、前記装置に、
サイバーセキュリティデバイスによって分類され得なかった第1パケットを獲得し、
前記第1パケットを分類するために、複数のアプリケーションシグネチャに対して前記第1パケットを評価し、
前記複数のアプリケーションシグネチャは、複数のアプリケーションを表しており、
前記第1パケットを前記複数のアプリケーションシグネチャのうちの1つにマッチングすることに基づいて、
前記第1パケットを、一致するアプリケーションシグネチャによって表される前記複数のアプリケーションのうちの1つのアプリケーションクラスへと分類し、
前記第1パケットが分類された前記アプリケーションクラス、および、前記一致するアプリケーションシグネチャを、前記サイバーセキュリティデバイスに通信する、
ようにさせる、
装置。
【請求項14】
前記装置は、さらに、
前記プロセッサによって実行可能な命令を含み、前記装置に、
前記第1パケットが前記複数のアプリケーションシグネチャのいずれにも一致し得ないと判定することに基づいて、
前記第1パケットが、汎用クラスのセットのうちの1つの汎用クラスに従って、分類され得るかを判定し、
前記第1パケットが汎用クラスに従って分類され得ると判定することに基づいて、
前記第1パケットの前記汎用クラスを前記サイバーセキュリティデバイスに通信する、
ようにさせる、
請求項13に記載の装置。
【請求項15】
前記装置は、さらに、
前記プロセッサによって実行可能な命令を含み、前記装置に、
前記第1パケットが前記複数のアプリケーションシグネチャのいずれにも一致し得ないと判定することに基づいて、
少なくとも部分的に、前記第1パケットに基づいて、新しいアプリケーションシグネチャが作成されるように指示し、かつ、任意的に、
少なくとも部分的に、前記第1パケットに基づく、前記新しいアプリケーションシグネチャの作成に基づいて、
前記新しいアプリケーションシグネチャを用いて前記複数のアプリケーションシグネチャを更新する、
ようにさせる、
請求項13に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般的に、デジタル情報の送信に関し、そして、ネットワークセキュリティのためのネットワークアーキテクチャまたはネットワーク通信プロトコルに関する。
【0002】
セキュリティポリシを実施することの一部として、ファイアウォールは、トラフィック分類を実施する。ファイアウォールは、一般的に、ポート、ネットワークプロトコル、または、それらの組合せに基づいて、ネットワークトラフィックを分類する。ファイアウォールは、また、ネットワークトラフィックを分類することの一部として、ディープパケットインスペクション、または、パケットスニッフィング(packet sniffing)も実行し得る。ディープパケットインスペクションでは、ネットワークパケットのコンテンツが検査され、こそれ、ネットワークパケットを介して通信されるデータから生成されるシグネチャのマッチングに基づく、ネットワークトラフィックのコンテンツベースの分類を促進する。
【図面の簡単な説明】
【0003】
本開示の実施形態は、添付の図面を参照することによって、より良好に理解され得る。
【
図1】
図1は、アプリケーションによるネットワークトラフィックの低レイテンシ分類について、ローカルおよびクラウドベースのトラフィック分類を組み合わせることに係る概念図を示している。
【
図2】
図2は、アプリケーションシグネチャ作成について、未分類(unclassified)ネットワークトラフィックの自動収集に係る概念図を示している。
【
図3】
図3は、検出されたネットワークトラフィックをアプリケーションによって分類するための、一つの例示的な動作に係るフローチャートである。
【
図4】
図4は、検出されたネットワークトラフィックをアプリケーションによって分類するための、一つの例示的な動作に係るフローチャートである。
【
図5】
図5は、ファイアウォールから転送されたパケットを、アプリケーションを表すクラスへと分類するための、一つの例示的な動作に係るフローチャートである。
【
図6】
図6は、ローカルトラフィック分類エンジンおよびクラウドベースのトラフィック分類エンジンを有する、一つの例示的なコンピュータシステムを示している。
【
図7】
図7は、検出されたネットワークトラフィックをアプリケーションによって分類するための、一つの例示的な動作に係るフローチャートである。
【
図8】
図8は、ネットワークトラフィックのクラウドベースの分類を、アプリケーションによって実行するための、一つの例示的な動作に係るフローチャートである。
【
図9】
図9は、検出されたネットワークトラフィックに関連付けられたアプリケーションを決定し、かつ、それに応じてネットワークトラフィックを分類するための、一つの例示的な動作に係るフローチャートである。
【発明を実施するための形態】
【0004】
以下の説明は、本開示の態様を具現化する、例示的なシステム、方法、技術、および、プログラムフローを含んでいる。しかしながら、本開示は、これらの具体的な詳細が無くても、実施され得ることが理解される。他のインスタンスにおいては、説明を不明瞭にしないために、よく知られている命令インスタンス、プロトコル、構造、および、技法は、詳細には示されていない。
【0005】
概要
【0006】
ファイアウォールベースのトラフィック分類エンジンは、ネットワークトラフィックをアプリケーションによって分類するために、ファイアウォール上にローカルに保管された分類情報に基づいて、ネットワークトラフィックを分析する。ネットワークトラフィックは、アプリケーションを表すシグネチャに対して、ネットワークトラフィックを評価すること、および、ネットワークトラフィックを、一致するシグネチャ(a matching signature)によって表されるアプリケーションに対応するクラスへと分類することに基づいて、アプリケーションによって分類され得る。ローカルトラフィック分類サービスは、検出回避技法(detection evasion techniques)が実施されているか否かにかかわらず、アプリケーションベースのポリシ実施を提供するが、ローカルに保管され、かつ、このアプローチ、並びに、新しいシグネチャが作成される際にスケールアップする能力で活用され得るシグネチャの数は、ファイアウォールのハードウェア制限のせいで制限されている。
【0007】
本明細書で開示されるのは、ファイアウォール上でローカルに実行されているトラフィック分類エンジン、および、クラウド内で実行されているクラウドベースのトラフィック分類エンジン、によって提供される機能の組み合わせを用いて、トラフィック分類サービスのカバレッジを拡張するための技術である。クラウドベースエンジンは、それによりネットワークトラフィックを分類することができるアプリケーションのカタログ、および、開発されてきた対応するシグネチャを維持し、そして、ローカルエンジンは、最も一般的に使用されるか、または、頻繁にアクセスされるアプリケーションを表すことができる、このカタログのサブセットを維持する。ローカルエンジンにローカルに利用可能な情報に基づいて、アプリケーションによっては分類することができない、ファイアウォールによってインターセプトされたネットワークトラフィックは、それによりネットワークトラフィックが分類され得るアプリケーションのより大きなカタログに基づく分類のために、クラウドベースエンジンに転送される。トラフィックを、シグネチャマッチングに基づいて、アプリケーションを表すクラスへと分類すると、クラウドベースエンジンは、対応するアプリケーションおよびマッチングシグネチャを示す、決定されたクラスを、ローカルエンジンに転送する。ファイアウォールは、元々ファイアウォールにインストールされていた分類情報に含まれていなかった、クラウドベースエンジンによって通信された対応するアプリケーションに係るシグネチャおよび指示で更新される、キャッシュを維持する。クラスによって示されるアプリケーションを含むセッションの最中に交換される後続のネットワークトラフィックは、キャッシュされたシグネチャに基づいて、ローカルエンジンによって、それに応じて分類され得る。キャッシュを、それがインターセプトするネットワークトラフィックに基づいて決定されたシグネチャのキャッシングを通じて、ファイアウォールにローカライズすることは、クラウドに保管された分類情報のカタログがスケールアップする際でさえ、ローカルトラフィック分類動作のレイテンシを低減さする。追加的に、トラフィック分類を、分類情報のカタログが維持されるクラウドへ拡張することは、どのネットワークトラフィックが分類され得るかに従ってアプリケーションの範囲を増加させ、従って、未知のトラフィックとして通過するネットワークトラフィックの量を低減し、そして、ファイアウォールにおけるアプリケーションベースのセキュリティポリシの実施を改善する。
【0008】
シグネチャがまだ決定されておらず、そして、従って、ローカルエンジンまたはクラウドベースエンジンによって分類することができないアプリケーションのネットワークトラフィックは、クラウドベースエンジンによって、シグネチャ作成サービスに転送され得る。アプリケーションシグネチャの作成は、従来、アプリケーション環境をセットアップすること、および、ネットワークトラフィックをキャプチャすることに係る手動の努力によって達成されるので、検出されたネットワークトラフィックを、直接的に、シグネチャ作成サービスに直接自動転送することにより、このステップを排除することは、新しいシグネチャの作成のための手動の研究と開発に係る、費用および関連する課題を低減する。
【0009】
例示的な説明
【0010】
図1は、アプリケーションによるネットワークトラフィックの低レイテンシ分類について、にローカルおよびクラウドベースのトラフィック分類を組み合わせることに係る概念図を示している。ファイアウォール129は、クライアント101のために、ネットワーク127にわたり着信(incoming)および発信(outgoing)するネットワークトラフィックをモニタリングおよび制御する。ファイアウォール129の一部として実行さするローカルトラフィック分類エンジン(「ローカルエンジン(“local engine”)」)103は、検出されたネットワークトラフィックを、対応するアプリケーションによって分類する。クラウドベースのトラフィック分類エンジン(「クラウドベースエンジン(“cloud-based engine”)」)107が、クラウド117内で実行している。例えば、クラウドベースエンジン107は、クラウド117において利用可能な1つ以上のノード(例えば、物理マシン及び/又は仮想マシン)上で実行し得る。ファイアウォール129は、クラウドベースエンジン107からローカルエンジン103に通信されるトラフィック分類情報を保管するアプリケーションクラスキャッシュ(「キャッシュ(“cache”)」)105を維持する。
【0011】
図1は、一連の文字A-Fを用いて注釈されている。これらの文字は、動作の段階(stage)を表している。これらの段階は、この実施例のために順序付けられているが、これらの段階は、本開示を理解するのを助けるための一つの例を示しており、そして、特許請求の範囲(claims)を限定するために使用されるべきではない。特許請求の範囲内に含まれる技術的事項(subject matter)は、順序、および、動作のいくつかに関して変化し得る。
【0012】
段階Aにおいて、ファイアウォール129は、「eMarket」という名前のアプリケーションのリソースを維持するサーバ109との、クライアント101によって開始されたセッションを検出する。アプリケーション「eMarket」は、サーバ109上で実行され、かつ、それに対してクライアント101がアクセスを要求する、ウェブアプリケーションであり得る。ファイアウォール129は、サーバ109からクライアント101に送信されたパケット121を検出する。クライアント101とサーバ109との間で送信されたネットワークトラフィックの検出は、ローカルエンジン103をトリガして、パケット121及び/又はクライアント101によって発行された要求を評価し、適切なアプリケーションを指定するセキュリティポリシが適用され得るように、アプリケーションによってネットワークトラフィックを分類する。
【0013】
段階Bにおいて、ローカルエンジン103は、パケット121を評価し、そして、パケット121がアプリケーションクラスへと分類され得るか否かを決定する。ローカルエンジン103は、アプリケーションを表しているネットワークトラフィックのクラスを含むアプリケーションクラス123を維持する。アプリケーションを表すアプリケーションクラス123において定義されたネットワークトラフィックのクラスの各々は、また、そのアプリケーションのパケットに対するシグネチャにも関連している。アプリケーションクラス123内に含まれるシグネチャは、パケットデコーディング(packet decoding)の一部として適用されるアプリケーションシグネチャ、及び/又は、コンテキストベースのシグネチャを含み上う。ローカルエンジン103は、シグネチャのうちの1つがパケット121と一致するか否かを判定するために、パケット121に対してアプリケーションクラス123のシグネチャを評価することに基づいて、パケット121がアプリケーションクラス123のうちの1つへと分類され得るか否かを判定する。ローカルエンジン103は、また、キャッシュ105からアプリケーションクラスに対応するシグネチャを読み取り、そして、キャッシュされたシグネチャがパケット121に一致し、かつ、従って、パケット121を対応するアプリケーションクラスへと分類され得るかを判定するために、パケット121に対して読み取られたシグネチャを評価する
ことができる。この例におけるローカルエンジン103は、パケット121が、アプリケーションクラス123およびキャッシュ105内にローカルに維持されるクラスのうちの1つへと分類され得ないことを決定する。すなわち、アプリケーションクラス123、または、キャッシュ105のいずれも、「eMarket」と名付けられたアプリケーションを表している、アプリケーションクラスおよび関連するシグネチャを含まない。
【0014】
段階Cにおいて、ローカルエンジン103は、パケット121のうち少なくともパケット121Aを、分類のために、クラウドベースエンジン107に転送する。ローカルエンジン103は、パケット転送ポリシ125によって指定されるように、パケット121の全て、サブセット、または、1つを、クラウドベースエンジン107に転送することができる。パケット転送ポリシ125は、また、ローカルエンジン103がクラウドベースエンジン107に転送すべきペイロードの一部を(例えば、オフセット値、パケットの特定のフィールド、等に基づいて)示すこともできる。ローカルエンジン103によって最初に未分類にされるパケットは、アプリケーションクラスカタログ(「カタログ(“catalog”)」)115に基づく、さらなる評価のために、クラウドベースエンジン107に転送される。カタログ115は、定義されたアプリケーションクラス、および、対応するアプリケーションシグネチャ、コンテキストベースのシグネチャ、等の広範なセットを含んでいる。ローカルエンジン103によってローカルにアクセスされるアプリケーションクラス123は、カタログ115内に保管されたアプリケーションクラスのサブセットを含んでおり、そうして、アプリケーションクラス123のうちの1つへと分類されないパケットを、クラウドベースエンジン107に転送することは、それによってパケットが分類され得る、アプリケーションの範囲を拡張する。
【0015】
段階Dにおいて、クラウドベースエンジン107は、パケット121Aを評価し、そして、パケット121Aがカタログ115内に含まれるアプリケーションクラスのうちの1つへと分類され得るか否かを決定する。例えば、クラウドベースエンジン107は、一致(match)が特定され得るかを判定するために、カタログ内に保管されたアプリケーションクラスに関連付けられたシグネチャに対してパケット121Aを評価することができる。この実施例において、アプリケーション「eMarket」を表すシグネチャは、アプリケーションクラス123には含まれないが、カタログ115に含まれている。クラウドベースエンジン107は、従って、カタログ115内に含まれるシグネチャを適用すること、および、アプリケーション「eMarket」を表すシグネチャ119がパケット121Aに一致すると判定することに基づいて、パケット121Aは、アプリケーション「eMarket」に対応するアプリケーションクラスへと分類され得ると判定する。
【0016】
段階Eにおいて、クラウドベースエンジン107は、ローカルエンジン103に、アプリケーション「eMarket」を表すアプリケーションクラスの指示、および、対応するシグネチャ119を通信する。ローカルエンジン103は、クラウドベースエンジン107から、アプリケーション「eMarket」に対応するアプリケーションクラスのシグネチャ119および指示を獲得し、そして、パケット121を「eMarket」のためのアプリケーションクラスへと分類する。パケット121を分類することの一部として、ローカルエンジン103は、クライアント101とサーバ109との間のセッションのセッションIDを、パケット121が分類されたアプリケーションクラスの指示と関連付けることができ、その結果、パケット121、および、セッションの最中に通信される任意の後続するパケットは、アプリケーション「eMarket」を表すアプリケーションクラスに関連付けられる。パケット121をアプリケーションベースのトラフィッククラスへと分類することにより、ファイアウォール129は、アプリケーション「eMarket」に対応するアプリケーションクラスについて、特定的に定義された細粒度ポリシを、その後に、適用することができる。
【0017】
段階Fにおいて、ローカルエンジン103は、クラウドベースエンジンから通信されたアプリケーションクラスの指示およびシグネチャ119を用いてキャッシュ105を更新する。ローカルエンジン103は、シグネチャ119、および、アプリケーション「eMarket」について定義された対応するアプリケーションクラスを、キャッシュ105に書き込む。アプリケーション「eMarket」のコンテンツにアクセスするために、クライアント101とサーバ109との間の後続するセッションの一部として送信されたパケットを検出すると、ローカルエンジン103は、キャッシュ105からシグネチャ119を読み出すこと、および、分類のためにパケットをクラウドベースエンジン107に送信することではなく、セッションの最中に交換されたパケットをシグネチャ119に対して評価することに基づいて、ローカルに、パケットを適切なアプリケーションクラスへと分類することができる。
【0018】
図2は、アプリケーションシグネチャ作成について、未分類ネットワークトラフィックの自動収集に係る概念図を示している。アプリケーションシグネチャ作成のためのアプリケーションのネットワークトラフィックの収集は、従来、骨の折れる手作業であるが、このネットワークトラフィックの収集を自動化するために、ローカルエンジン103およびクラウドベースエンジン107を利用することができる。
図2は、ローカルエンジン103およびクラウドベースエンジン107が、クライアント101と、「vstream」と名付けられたアプリケーションのリソースを保管する、サーバ209との間のセッションのパケット221が、アプリケーションクラスへと分類され得るか否かを決定する一つの例を示している。
【0019】
ローカルエンジン103は、パケット転送ポリシ125によって指定されたパケット221のうち少なくともパケット221Aを、クラウドベースエンジン107に送信する。ローカルエンジン103は、パケット221が、アプリケーションクラス123、または、
図1を参照して同様に説明されるように、シグネチャがキャッシュ105から読み取られるアプリケーションクラス、のうちの1つへと分類され得ないと判定する。クラウドベースエンジン107は、次いで、パケット221Aがカタログ115内に含まれるアプリケーションクラスのうちの1つへと分類され得ないと判定する。例えば、アプリケーション「vstream」を表すシグネチャは、まだ作成されておらず、かつ、カタログ115へと挿入されていないことがある。クラウドベースエンジン107は、パケット221が未知のトラフィックとして分類されるべきであることをローカルエンジン103に通信し、それに応じてファイアウォール129のポリシが適用される。
【0020】
パケット221Aがカタログ115内のアプリケーションクラスへと分類され得なかったという判定に基づいて、クラウドベースエンジン107は、パケット221Aをシグネチャ作成サービス211に転送することによって、アプリケーションシグネチャ作成のためのパケット221Aを指定する。シグネチャ作成サービス211は、クラウド217およびファイアウォール219の外部のサーバにおいて実行され得る。クラウドベースエンジン107は、収集されたパケットのリポジトリ213内に保管するために、パケット221の追加のパケットを(例えば、パケット221Aに加えて)シグネチャ作成サービス211に送信し得る。クラウドベースエンジン107は、送信元アドレス、宛先アドレス、ポート番号、及び/又は、ネットワークプロトコルといった、シグネチャ作成サービス211への通信におけるパケット221の追加の特定情報を含むことができ、その結果、同じアプリケーションクラスへと分類されるであろう類似のパケットは、シグネチャ作成のためにグループ化され得る。パケット221をシグネチャ作成サービス211に転送することにより、「vstream」と名付けられたアプリケーションに対するシグネチャを後で作成することが可能になる。後に、一旦、アプリケーション「vstream」を表すアプリケーションシグネチャが作成されると、「vstream」に対応するアプリケーションクラスのシグネチャおよび指示が、カタログ115及び/又はアプリケーションクラス123へと挿入され得る。その結果として、ローカルエンジン103およびクラウドベースエンジン107は、後に、検出されたものを「vstream」を表すアプリケーションクラスへと分類することができる。
【0021】
図3-
図5は、ローカルおよびクラウドベースのトラフィック分類エンジンを利用することによって、アプリケーションベースのトラフィック分類のカバレッジを増加させるための例示的な動作に係るフローチャートである。例示的な動作は、先の図との整合性のために、ローカルトラフィック分類エンジン(以降は、「ローカルエンジン(“local engine”)」)およびクラウドベースのトラフィック分類エンジン(以降は、「クラウドエンジン(“cloud engine”」)を参照して説明されている。プログラムコードについて選択される名称は、特許請求の範囲を限定するものではない。プログラムの構造および編成は、プラットフォーム、プログラマ/アーキテクトのプリファレンス、プログラミング言語、等によって変動し得る。加えて、コード単位(プログラム、モジュール、方法、機能、等)の名称は、同じ理由で変動し、かつ、任意であり得る。
【0022】
図3-
図4は、検出されたネットワークトラフィックをアプリケーションによって分類するための、一つの例示的な動作に係るフローチャートである。
図3における例示的な動作は、ファイアウォールの一部として実行することができる、ローカルエンジンによって実行される。ブロック301において、ローカルエンジンは、セッションのネットワークトラフィックを検出する。ネットワークトラフィックは、セッションを開始するクライアントからサーバに発行されるアプリケーションにアクセスするための要求、応答としてサーバからクライアントに送信されるデータ、それらの組合せ、などであり得る。
【0023】
ブロック302において、ローカルエンジンは、アプリケーションを表すシグネチャのカタログからの利用可能なシグネチャのセットを、ネットワークトラフィックに適用する。シグネチャのセットをネットワークトラフィックに適用することは、一致するシグネチャが発見され得るか否かを判定するために、ネットワークトラフィックに対してシグネチャを評価することを指す。シグネチャのカタログは、それによってネットワークトラフィックが分類され得る複数のアプリケーションの表示、および、複数のアプリケーションのうち対応するアプリケーションを表している、アプリケーションシグネチャ及び/又はプロトコルベースのシグネチャといった、複数のシグネチャを含んでいる。アプリケーションを表すシグネチャの各々は、ネットワークトラフィックをそのアプリケーションに対応するクラスへと分類するためのクライテリアとして示され得る。ローカルエンジンに利用可能なシグネチャのセットは、ローカルにアクセスすることができるシグネチャのこのカタログのサブセットであり、そして、最も人気があり、または、一般的にアクセスされるアプリケーションを表すシグネチャであり得る。ネットワークトラフィックに適用されるシグネチャのセットは、また、ファイアウォールのために維持されるシグネチャキャッシュから読み取られたシグネチャも含み得る。ローカルエンジンは、ネットワークトラフィックを分類する1つ以上の段階で、シグネチャのセット、または、その異なるサブセットを適用し得る。例えば、ローカルエンジンは、第1段階において、アプリケーション通信プロトコルをネットワークトラフィックに適用し得る。そして、次いで、第2段階において、トラフィックデコーディングの一部として、ネットワークトラフィックに関連するシグネチャに対応する追加のシグネチャを適用し得る(例えば、Hypertext Transfer Protocol(HTTP)トラフィック、File Transfer Protocol(FTP)トラフィック、等のためのシグネチャ)。
【0024】
ブロック303において、ローカルエンジンは、シグネチャのセットをネットワークトラフィックに適用した結果として、一致するシグネチャが見つかったかを判定する。ローカルエンジンは、ネットワークトラフィックがシグネチャのうち第1シグネチャに一致したかを判定する。一致するシグネチャを特定することは、ネットワークトラフィックを、一致するシグネチャを有するアプリケーションに対応するクラスへと分類することに寄与する。一致が見つかった場合に、動作は、ブロック304に続く。一致が見つからなかった場合に、動作は、ブロック305に続く。
【0025】
ブロック304において、ローカルエンジンは、セッションのためのネットワークトラフィックを、一致するシグネチャに対応するアプリケーションベースのクラスへと分類する。アプリケーションベースのクラスは、特定のアプリケーション、または、アプリケーションのグループ(例えば、アプリケーションスイートに属しているアプリケーション)に対応し得る。ネットワークトラフィックを分類することは、ローカルエンジンが、セッションのセッションIDを、ネットワークトラフィックが分類されたクラスの指示に関連付けることを含み得る。その結果、セッションの最中に検出された後続のパケットも、また、決定されたクラスに関連付けられる。アプリケーションについて特定的に定義されたセキュリティポリシは、ネットワークトラフィック、および、セッションの最中で、その後検出される任意のネットワークトラフィックに対して適用され得る。動作は、遷移点Aに続き、それは、
図4の遷移点Aに続いている。
【0026】
ブロック305において、ローカルエンジンは、類似のネットワークトラフィックが、以前に未知のトラフィックとして分類されたかを判定する。ローカルエンジンは、以前のローカルおよびクラウドベースの分類に基づいて、未知のトラフィックとして分類されたネットワークトラフィックの表示を維持することができ、同じ特性を有する未知のネットワークトラフィックのクラウドに対して繰り返されるアップロードを低減し、そして、従って、コストを低減し得る。例えば、未知のトラフィックの表示は、未知のネットワークトラフィックに関連する、送信元アドレス、宛先アドレス、ポート番号、及び/又は、ネットワークプロトコルの組み合わせを含むことができ、そして、ファイアウォールのために維持される追加のキャッシュ内に保管され得る。ローカルエンジンは、未知のネットワークトラフィックの表示に対して、ネットワークトラフィックのメタデータを(例えば、ネットワークトラフィックのヘッダに基づいて)評価することができ、送信元アドレス、宛先アドレス、ポート番号、及び/又は、ネットワークプロトコルの同じ組み合わせを有する以前に検出されたネットワークトラフィックが、未知のトラフィックとして分類されていたかを判定する。類似のネットワークトラフィックが未知として分類されていない場合に、動作は、ブロック306に続く。類似のネットワークトラフィックが未知として分類されていた場合に、動作は、遷移点Bに続き、それは、
図4の遷移点Bに続いている。
【0027】
ブロック306において、ローカルエンジンは、ネットワークトラフィックの1つ以上のパケットを、分類のためにクラウドベースサービスに転送する。ローカルエンジンに添付された(例えば、インストールされ、または、他の方法でアクセス可能な)ポリシは、クラウドベースサービスに転送/アップロードされるべきネットワークトラフィックの一部を指示することができる。例えば、ポリシは、ネットワークトラフィックを構成する1つの検出されたパケットまたは各検出されたパケットが、クラウドベースサービスに転送されるべきか否かを指示することができる。ポリシは、また、クラウドに転送されるべきパケットの一部を示すこともできる。一つの例として、ポリシは、ペイロードの全体またはペイロードの所定の部分が転送されるべきであることを示すことができる。ローカルエンジンから転送されたネットワークトラフィックを受信することに基づいて、クラウドベースサービスが実行する動作が、
図5を参照して説明されている。動作は、遷移点Cに続き、それは、
図4の遷移点Cに続いている。
【0028】
ブロック407において、ローカルエンジンは、アプリケーションによってネットワークトラフィックが分類され得るかを判定する。ローカルエンジンは、転送されたパケットがどのように分類され得るかに係るクラウドベースサービスから指示を獲得することに基づいて、ネットワークトラフィックが、アプリケーションに対応するクラスへと分類され得るかを判定する。ローカルエンジンは、転送されたパケットがアプリケーションによって分類され得る場合には、転送されたパケットが一致したアプリケーションおよび対応するシグネチャを表すクラスの指示を獲得し得る。転送されたパケットがアプリケーションによって分類され得ない場合に、ローカルエンジンは、クラウドベースサービスから、転送されたパケットが未知のトラフィックとして分類され得るという指示を獲得することができる。ネットワークトラフィックがアプリケーションを表すトラフィッククラスへと分類され得る場合に、動作は、ブロック409に続く。ネットワークトラフィックがアプリケーションを表すトラフィッククラスへと分類され得ない場合に、動作は、ブロック413に進む。
【0029】
ブロック409において、ローカルエンジンは、クラウドベースサービスから通信されたシグネチャおよびクラスの指示を用いて、シグネチャのセットを更新する。例えば、ローカルエンジンは、ブロック407においてクラウドベースサービスから通信されたシグネチャ、および、対応するアプリケーションの表示を、シグネチャキャッシュに書き込むことができ、その結果、シグネチャは、後続のトラフィック分類イベントのためにローカルにアクセスされ得る。キャッシュに書き込まれるシグネチャは、アプリケーションを表している、コンテンツベースのシグネチャ及び/又はコンテキストベースのシグネチャであり得る。クラスの指示は、クラスの名前、識別子(identifier、ID)、等であってよく、それは、クラスが表すアプリケーションの名前、ID、等に対応し得る。後に、一旦、アプリケーションを含む異なるセッションの最中に、ネットワークトラフィックが続いて検出されると、ローカルエンジンは、キャッシュからシグネチャを読み取り、そして、ネットワークトラフィックを、分類のためにクラウドベースサービスに転送する代わりに、ブロック303において、それに応じて、ネットワークトラフィックを分類することができる。
【0030】
ブロック411において、ローカルエンジンは、クラスの指示をセッションに関連付ける。例えば、ローカルエンジンは、クラスの名前、ID、等を、ローカルエンジンによって維持されるセッションに対するセッションIDに関連付けることができる。トラフィッククラスの表示をセッションに関連付けることは、そのセッションIDを有するセッションの一部として通信されるネットワークトラフィックを、クラスへと効果的に分類する。クラスを指定することに基づいて、アプリケーションについて特定的に定義されたセキュリティポリシは、次いで、セッションのネットワークトラフィックに対して適用され得る。
【0031】
ブロック413において、ローカルエンジンは、ネットワークトラフィックを未知のトラフィックのクラスへと分類する。ローカルエンジンは、未知のトラフィッククラスに使用される名前、ID、等を、セッション(例えば、セッションのセッションID)に関連付けることができ、その結果、セッションの最中に交換される任意のネットワークトラフィックは、未知のトラフィックとして処理することができ、そして、未知のトラフィックに対して定義された対応するセキュリティポリシが適用され得る。
【0032】
ブロック415において、ローカルエンジンは、ネットワークトラフィックのメタデータを用いて、未知のトラフィックの維持された指示を更新する。ローカルエンジンは、ネットワークトラフィックのヘッダに基づいて、およびネットワークトラフィックを復号することに基づいて決定され得るネットワークトラフィックに関連付けられた送信元アドレス、宛先アドレス、ポート番号、及び/又はネットワークプロトコルを示している新しいエントリを未知のトラフィックの指示に追加し得る(例えば、新しいエントリをキャッシュに書き込み得る)。これらのメタデータの同様な組み合わせに関連付けられ、その後に検出されたネットワークトラフィックは、ブロック305において、未知である可能性が高いものとして特定され得る。
【0033】
図5は、ファイアウォールから転送されたパケットを、アプリケーションを表すクラスに分類するための、一つの例示的な動作に係るフローチャートである。
図5における例示的な動作は、クラウド内で実行する、クラウドベースエンジンによって実行される。例示的な動作は、
図3を参照して説明したように、1つ以上の未分類パケットが、ファイアウォール上で実行しているローカルエンジンから転送されたものと、仮定している。
【0034】
ブロック501において、クラウドベースエンジンは、ファイアウォールによって検出され、かつ、ファイアウォールから転送された1つ以上のパケットを獲得する。獲得されたパケットの各々は、ヘッダ、および、ペイロードまたはペイロードの指定された部分を含み得る。クラウドベースエンジンに転送されるパケットの部分(例えば、ペイロードの部分)は、ファイアウォールに保管されたポリシによって定義され得る。
【0035】
ブロック503において、クラウドベースエンジンは、パケットがアプリケーションを表すクラスへと分類され得るかを判定するために、シグネチャカタログからのシグネチャをパケットに対して適用する。クラウドベースエンジンは、アプリケーションに対応する複数のクラスの表示、および、パケットをクラスの各々へと分類するための対応する複数のクライテリアを維持することができる。パケットをクラスに分類するためのクライテリア(criterion/criteria)は、そのクラスと同じアプリケーションを表すシグネチャカタログからのシグネチャを示し、そのクライテリアにおいて示されたシグネチャがパケットに一致する場合に、パケットがそのクラスへと分類されるようにする。シグネチャカタログは、アプリケーションシグネチャ、および、アプリケーションに/から(to/from)送信されたるネットワークトラフィックに基づいて事前定義された、既知のネットワークプロトコルのためのデコーダを用いて適用される、コンテキストベースのシグネチャといった、シグネチャの各々を含んでいる。クラウドに保管されたシグネチャカタログは、ファイアウォールに保管されたシグネチャがシグネチャカタログのシグネチャのサブセットであるという点で、パケットが最初に評価されるファイアウォールに保管されたシグネチャと区別することができる。その最中にパケットが検出されたセッションに関連するアプリケーションについて、シグネチャが既知であるか、または、定義されている場合に、シグネチャカタログのシグネチャを適用することは、パケットが対応するクラスへと分類され得るように、一致(match)を結果として生じる。
【0036】
ブロック505において、クラウドベースエンジンは、シグネチャマッチングに基づいて、パケットがクラスのうちの1つへと分類され得るかを判定する。パケットは、シグネチャカタログのシグネチャのうちの1つがパケットに一致した場合に、クラスへと分類され得る。パケットがトラフィッククラスへと分類され得る場合に、動作は、ブロック507に続く。パケットがトラフィッククラスへと分類され得ない場合に、動作は、ブロック509に続く。
【0037】
ブロック507において、クラウドベースエンジンは、パケットのクラスの表示、および、一致するシグネチャを、ファイアウォールに通信する。パケットのクラスは、パケットが一致したシグネチャに対応するクラスである。クラスの表示は、クラス、または、それが表すアプリケーションの名前、ID、等であり得る。ファイアウォールに通信されるシグネチャは、パケットが一致したシグネチャである。
【0038】
ブロック509において、クラウドベースエンジンは、パケットが汎用トラフィッククラスへと分類され得るか判定する。汎用トラフィッククラス(generic traffic class)は、ブラウザベースのアプリケーションのための「ウェブブラウジング(“web-browsing”)」、または、未知の伝送制御プロトコル(Transmission Control Protocol、TCP)ポートを使用するアプリケーションのための「unknown_TCP」といった、共通特性を有しているアプリケーションのクラスを表す。クラウドベースエンジンは、汎用トラフィッククラスのセット、および、パケットを汎用トラフィッククラスのうちの1つへと分類するための対応するクライテリアに基づいて、パケットを評価することができる。ここで、クライテリアは、対応する汎用トラフィッククラスへと分類されるために、パケットヘッダ及び/又はペイロードによって示されるべき、1つ以上の特性を示し得る。クラウドベースエンジンは、クライテリアのうちの1つが満足されるかを判定するために、これらのクライテリアに対してパケットを評価する。パケットが一般的なトラフィッククラスへと分類され得る場合に、動作は、ブロック511に続く。パケットが一般的なトラフィッククラスへと分類され得ない場合に、動作は、ブロック513に続く。
【0039】
ブロック511において、クラウドベースエンジンは、汎用トラフィッククラスの指示をファイアウォールに通信する。クラウドベースエンジンは、汎用トラフィッククラスの名前、ID、等をファイアウォールに通信する。汎用クラスは、既知のアプリケーションについて定義された対応するシグネチャを有していないが、パケットがそこへと分類される汎用クラスにより、ファイアウォールは、ポート番号及び/又はネットワークプロトコルのレベルで定義されたセキュリティポリシではなく、アプリケーションの汎用クラスのレベルで定義されたセキュリティポリシを実施することができる。
【0040】
ブロック513において、クラウドベースエンジンは、シグネチャ作成のためにパケットを指定する。シグネチャ作成のためにパケットを指定することは、例えば、分類され得なかったパケットが保管される、外部サーバにパケットを送信することを含み得る。クラウドベースエンジンは、また、パケットヘッダ、または、トラフィックデコーディングから抽出された、ポート番号、送信元アドレス、宛先アドレス、及び/又は、ネットワークプロトコルをパケットに関連付けてもよく、それによって、パッケトは、共通のシグネチャおよびトラフィッククラスの作成のために同様のトラフィックが集約され得るように、パケットを区別
+することができる。
【0041】
ブロック515において、クラウドベースエンジンは、パケットがアプリケーションによって分類され得ないことをファイアウォールに通信する。ファイアウォールへの通信は、パケットがアプリケーションに対応するクラスのいずれにも分類され得ないこと、または、パケットが未知のトラフィックとして分類され得ることを示すことができる。セッションの最中に検出されたパケットは、従って、ファイアウォールポリシを適用する目的のために、未知のトラフィックとして扱われ得る。
【0042】
変形例
【0043】
フローチャートは、例示の理解を助けるために提供されており、そして、特許請求の範囲を限定するために使用されるべきではない。フローチャートは、特許請求の範囲内で変動し得る例示的な動作を示している。追加的な動作が実行されてよく、より少ない動作が実行されてよく、並行して動作が実行されてよく、そして、異なる順序で動作が実行されてもよい。例えば、ブロック413および415に示される動作は、並行して、または、同時に実行され得る。フローチャート及び/又はブロック図の各ブロック、および、フローチャート及び/又はブロック図におけるブロックの組み合わせは、プログラムコードによって実装され得ることが理解されるだろう。プログラムコードは、汎用コンピュータ、専用コンピュータ、もしくは、他のプログラム可能な機械または装置のプロセッサに対して提供され得る。
【0044】
理解されるように、本開示の態様は、1つ以上の機械可読媒体に保管されたシステム、方法、または、プログラムコード/命令として具現化され得る。従って、態様は、ハードウェア、ソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコード、等を含む)、もしくは、本明細書では、全てが、一般的に「回路(“circuit”)」、「モジュール(“module”)」、または「システム(“system”)」と呼ばれ得る、ソフトウェア態様とハードウェア態様との組合せの形態をとることができる。例示的な図において個々のモジュール/ユニットとして提示される機能は、プラットフォーム(オペレーティングシステム及び/又はハードウェア)、アプリケーションエコシステム、インターフェイス、プログラマの好み、プログラミング言語、管理者の好みなどのいずれか1つに従って、異なるように編成され得る。
【0045】
1つ以上の機械可読媒体の任意の組み合わせが利用され得る。機械可読媒体は、機械可読信号媒体または機械可読記憶媒体であってよい。機械可読記憶媒体は、例えば、これらに限定されるわけではないが、プログラムコードを保管するために電子、磁気、光学、電磁気、赤外線、または半導体技術のうち任意の1つまたは組み合わせを採用する、システム、装置、またはデバイスであり得る。機械可読記憶媒体のより具体的な例(非網羅的なリスト)は、以下を含む。ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュメモリ)、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)、光記憶デバイス、磁気記憶デバイス、または、上記の任意の適切な組み合わせである。本明細書のコンテキストにおいて、機械可読記憶媒体は、命令実行システム、装置、またはデバイスによって、もしくは、それらと関連して使用するためのプログラムを含むか、または、保管することができる、任意の有形媒体であり得る。機械可読記憶媒体は、機械可読信号媒体ではない。
【0046】
機械可読信号媒体は、例えば、ベースバンド内、または、搬送波の一部として、その中で具現化される、機械可読プログラムコードを用いて伝搬されたデータ信号を含み得る。そうした伝搬信号は、これらに限定されるわけではないが、電磁、光学、または、それらの任意の適切な組合せを含む、様々な形態のいずれかをとることができる。機械可読信号媒体は、機械可読記憶媒体ではなく、命令実行システム、装置、またはデバイスによって、もしくは、それらと関連して使用するためのプログラムを、通信、伝搬、または移送することができる、任意の機械可読媒体であり得る。
【0047】
機械可読媒体上に具現化されたプログラムコードは、これらに限定されるわけではないが、無線、有線、光ファイバケーブル、RF、等、または、前述のものの任意の適切な組合せを含む、任意の適切な媒体を使用して送信され得る。
【0048】
プログラムコード/命令は、また、特定の方法で機能するように、機械に指示することができる機械可読媒体に保管されてもよく、その結果、機械可読媒体に保管された命令は、フローチャート及び/又はブロック図の1つ以上のブロックにおいて指定された機能/動作を実施する命令を含む製品を生成する。
【0049】
図6は、ローカルトラフィック分類エンジンおよびクラウドベースのトラフィック分類エンジンを有する、一つの例示的なコンピュータシステムを示している。コンピュータシステムは、プロセッサ601(おそらく、複数のプロセッサ、複数のコア、複数のノードを含み、かつ/あるいは、マルチスレッドを実装している、など)を含んでいる。コンピュータシステムは、メモリ607を含む。メモリ607は、システムメモリ、または、機械可読媒体に係る既に上述した可能な実現形態(realization)のうち任意の1つ以上、であり得る。コンピュータシステムは、また、バス603、および、ネットワークインターフェイス605も含む。システムは、また、ローカルトラフィック分類エンジン611、および、クラウドベースのトラフィック分類エンジン613も含む。ローカルトラフィック分類エンジン611は、関連するアプリケーションに基づいて、ネットワークトラフィックを分類するために、ネットワークトラフィックを分析し、そして、未知のネットワークトラフィックを、特定のために、クラウドベースのトラフィック分類エンジン613に転送する。クラウドベースのトラフィック分類エンジン613は、ローカルトラフィック分類エンジン611について利用可能なものよりも広範囲なネットワークトラフィッククラスのカタログを活用することによって、関連するアプリケーションに基づいて、ローカルアプリケーション特定エンジン611によって転送されたネットワークトラフィックを分類する。ローカルトラフィック分類エンジン611、および、クラウドベースのトラフィック分類エンジン613は、必ずしも同じコンピュータシステム上で実行されるとは限らない。例えば、ローカルトラフィック分類エンジン611は、ファイアウォール上で実行することができ、そして、クラウドベースのトラフィック分類エンジン613は、クラウド内で実行することができる。前述の機能のいずれか1つは、ハードウェア及び/又はプロセッサ601において部分的に(または、全体的に)実装され得る。例えば、機能は、特定用途向け集積回路を用いて、プロセッサ601内に実装されたロジックにおいて、周辺デバイスまたはカード上のコプロセッサにおいて、等で、実装され得る。さらに、実現形態は、より少ない、または、
図6に示されていない追加的な構成要素(例えば、ビデオカード、オーディオカード、追加のネットワークインターフェイス、周辺デバイス、等)を含み得る。プロセッサ601、および、ネットワークインターフェイス605は、バス603に結合されている。バス603に結合されているものとして示されているが、メモリ607は、プロセッサ601に結合され得る。
【0050】
上記は、例示的な実施形態を十分に説明しているが、イノベーションを説明するときに、言語は、いくらか制限される。さらに、地域および国家の知的財産(IP)オフィスは、様々な要件を有してい。以下の説明および対応するフローチャートは、言語の制約および無数の国/地域の知的財産オフィスの要件を考慮して、わずかに異なる言語で技術を開示しようとするものである。「プログラムコードを実行する(“executing program code”)」というフレーズは、コンピュータ、セキュリティ機器、仮想マシン、クラウドベースサービスといった、無数の実行実装(executing implementation)のいずれかで実行するプログラムコードを指す。
【0051】
図7は、検出されたネットワークトラフィックをアプリケーションによって分類するための、一つの例示的な動作のフローチャートである。ブロック701において、サイバーセキュリティデバイス(例えば、ファイアウォール)のプログラムコードを実行することは、第1セッションの最中に通信された1つ以上のパケットのセットを検出する。ブロック703において、サイバーセキュリティデバイスのプログラムコードを実行することは、少なくとも部分的に、サイバーセキュリティデバイスによって維持されているシグネチャのセットに基づいて、アプリケーションが特定され得るかを判定する。ブロック705においては、サイバーセキュリティデバイスによって維持されているシグネチャのセットに基づいてアプリケーションが特定され得ないと判定することに基づいて、サイバーセキュリティデバイスのプログラムコードを実行することは、パケットのセットのうちの少なくとも第1パケットをクラウドベースサービスに転送する。ブロック707において、クラウドベースサービスのプログラムコードを実行することは、少なくとも部分的に、第1パケット、および、クラウドベースサービスが実行されるクラウド内に維持されている複数のシグネチャに基づいて、アプリケーションが特定され得るかを判定する。ここで、複数のシグネチャは、シグネチャのセットを含んでいる。ブロック709において、アプリケーションが特定され得ると判定することに基づいて、クラウドベースサービスのプログラムコードを実行することは、サイバーセキュリティデバイスに、アプリケーションの指示、および、アプリケーションのパケットに関連付けられた複数のシグネチャのうち第1シグネチャを通信する。ブロック711において、サイバーセキュリティデバイスのプログラムコードを実行することは、アプリケーションの指示および第1シグネチャを受信する。
【0052】
図8は、ネットワークトラフィックのクラウドベースの分類を、アプリケーションによって実行するための、一つの例示的な動作に係るフローチャートである。ブロック801において、プログラムコードを実行することは、第1セッションのネットワークトラフィックを検出する。ブロック803において、プログラムコードを実行することは、ネットワークトラフィックが、アプリケーションクラスのセットのうちの1つへと分類され得るかを判定する。ブロック805においては、ネットワークトラフィックがアプリケーションクラスのセットのうちの1つへと分類され得ないという判定に基づいて、プログラムコードを実行することは、ネットワークトラフィックの1つ以上のパケットをクラウドベースサービスに通信する。ブロック807においては、クラウドベースサービスから、第1アプリケーションクラスの指示、および、通信された1つ以上のパケットに関連付けられた第1シグネチャを獲得することに基づいて、プログラムコードを実行することは、第1アプリケーションクラスの指示を第1セッションの識別子(identifier)に関連付ける。ここで、第1アプリケーションクラスは、アプリケーションクラスのセットに含まれていなかった。ブロック809において、プログラムコードを実行することは、第1アプリケーションクラスでアプリケーションクラスのセットを更新する。
【0053】
図9は、検出されたネットワークトラフィックに関連付けられたアプリケーションを決定し、かつ、それに応じてネットワークトラフィックを分類するための、一つの例示的な動作に係るフローチャートである。ブロック901において、プログラムコードを実行することは、サイバーセキュリティデバイスによって分類され得なかった第1パケットを獲得する。ブロック903において、プログラムコードを実行することは、第1パケットを分類するために、複数のアプリケーションシグネチャに対して第1パケットを評価する。ここで、複数のアプリケーションシグネチャは、複数のアプリケーションを表している。ブロック905においては、第1パケットを複数のアプリケーションシグネチャのうちの1つとマッチングすることに基づいて、プログラムコードを実行することは、第1パケットを、一致するアプリケーションシグネチャによって表される複数のアプリケーションのうちの1つのアプリケーションクラスに分類する。ブロック907において、実行プログラムコードは、第1パケットが分類されたアプリケーションクラス、および、一致するアプリケーションシグネチャを、サイバーセキュリティデバイスに通信する。
【0054】
本開示の態様は、様々な実装形態および利用を参照して説明されているが、これらの態様は、例示的なものであり、かつ、特許請求の範囲は、それらに限定されるものではないことが理解されるだろう。一般的に、本明細書で説明されるように、トラフィック分類サービスの範囲を拡張することによってアプリケーションベースのトラフィック分類およびポリシ実施のカバレッジを増大させるための技法は、任意の1つ以上のハードウェアシステムと整合性のある設備を用いて実装され得る。多くの変形、修正、追加、および、改良が、可能である。
【0055】
複数のインスタンスが、単一のインスタンスとして本明細書で説明される構成要素、動作、または、構造について、提供され得る。最終的に、様々な構成要素、動作、および、データストアの間の境界は、いくらか任意的であり、そして、特定の動作が、特定の例示的な構成のコンテキストで示されている。機能に係る他の割り当てが想定され、そして、本開示の範囲内に含まれ得る。一般的に、例示的な構成において別個の構成要素として提示される構造および機能は、組み合わされた構造または構成要素として実装され得る。同様に、単一の構成要素として提示された構造および機能は、別個の構成要素として実装され得る。これら及び他の変形、修正、追加、および、改良は、本開示の範囲内に含まれ得る。
【0056】
用語
【0057】
本明細書は、説明の効率および容易さのために、クラウド技術に関連する省略表現(shorthand term)を使用する。「クラウド(“a cloud”)」を参照する場合、この説明は、クラウドサービスプロバイダのリソースを参照している。例えば、クラウドは、クラウドサービスプロバイダのサーバ、仮想マシン、および、ストレージデバイスを包含することができる。「クラウド宛先(“cloud destination”)」および「クラウドソース(“cloud source”)」という用語は、ネットワーク接続のためのエンドポイントとして使用され得るネットワークアドレスを有する、エンティティを指す。エンティティは、物理デバイス(例えば、サーバ)であってよく、または、仮想エンティティ(例えば、仮想サーバまたは仮想ストレージデバイス)であってもよい。より一般的な用語では、顧客にアクセス可能なクラウドサービスプロバイダリソースは、ネットワーク接続を介してアクセス可能なクラウドサービスプロバイダエンティティによって所有/管理されるリソースである。しばしば、アクセスは、クラウドサービスプロバイダによって提供されるアプリケーションプログラミングインターフェイスまたはソフトウェア開発キットに従う。
【0058】
接続詞「および(“and”)」を伴うリストに先行する「少なくとも1つの(“at least one of”)」というフレーズの使用は、排他的なリストとして扱われるべきではなく、かつ、特に別段の記載がない限り、各カテゴリから1つの項目を伴うカテゴリのリストとして解釈されるべきではない。「A、B、およびCのうちの少なくとも1つ(“at least one of A,B,and C”)」と記載されたフレーズは、列挙された項目のうちの1つだけ、列挙された項目のうちの複数、並びに、列挙された項目のうちの1つ以上および列挙されていない別の項目に反することがある。
【0059】
例示的な実施形態
【0060】
例示的な実施形態は、以下を含む。
【0061】
実施形態1:方法であって、サイバーセキュリティデバイスによって、第1セッションの最中に通信される1つ以上のパケットのセットを検出するステップと、少なくとも部分的に、前記サイバーセキュリティデバイスによって維持されるシグネチャのセットに基づいて、アプリケーションが特定され得るかを判定するステップと、前記サイバーセキュリティデバイスによって維持される前記シグネチャのセットに基づいて、前記アプリケーションが特定され得ないと判定することに基づいて、前記パケットのセットのうち少なくとも第1パケットを、クラウドベースサービスに転送するステップと、少なくとも部分的に、前記第1パケット、および、前記クラウドベースサービスが実行されるクラウド内に維持されている複数のシグネチャに基づいて、前記クラウドベースサービスによって、前記アプリケーションが特定され得るかを判定するステップであり、前記複数のシグネチャは、前記シグネチャのセットを含む、ステップと、前記アプリケーションが特定され得ると判定する前記クラウドベースサービスに基づいて、前記サイバーセキュリティデバイスに、前記アプリケーションの指示、および、前記アプリケーションのパケットに関連付けられた前記複数のシグネチャの第1シグネチャを通信するステップを含む、方法。
【0062】
実施形態2:さらに、少なくとも部分的に、前記アプリケーションの指示を受信する前記サイバーセキュリティデバイスに基づいて、前記パケットのセットに対して、前記アプリケーションを指示するセキュリティポリシを適用するステップを含む、実施形態1に記載の方法。
【0063】
実施形態3:さらに、前記クラウドベースサービスから前記第1シグネチャの指示を獲得する前記サイバーセキュリティデバイスに基づいて、前記第1シグネチャを用いて前記シグネチャのセットを更新するステップを含む、実施形態1または2に記載の方法。
【0064】
実施形態4:さらに、第2セッションの最中に通信される後続パケットを検出する前記サイバーセキュリティデバイスに基づいて、少なくとも部分的に、前記サイバーセキュリティデバイスによって維持される前記更新された前記シグネチャのセットに基づいて、前記アプリケーションを前記第2セッションと関連するものとして特定するステップを含む、実施形態3に記載の方法。
【0065】
実施形態5:前記シグネチャのセットは、対応するアプリケーションのセットに対して定義されたシグネチャのセットを含み、前記複数のシグネチャは、対応する複数のアプリケーションに対して定義された複数のシグネチャを含み、かつ、前記複数のアプリケーションは、前記アプリケーションのセットを含む、実施形態1乃至4いずれか一つに記載の方法。
【0066】
実施形態6:アプリケーションが特定され得るかを判定するステップは、一致が特定され得るかを決定するために、前記シグネチャのセットを前記パケットのセットに適用することを含み、かつ、前記クラウドベースサービスによって、前記アプリケーションが特定され得るかを判定するステップは、一致が特定され得るかを判定するために、前記複数のシグネチャを前記第1パケットに適用することを含む、実施形態1乃至5いずれか一つに記載の方法。
【0067】
実施形態7:前記第1シグネチャは、前記複数のシグネチャに含まれるが、前記シグネチャのセットには含まれず、かつ、前記アプリケーションが特定され得ると判定するステップは、前記第1パケットが前記複数のシグネチャのうちの前記第1シグネチャに一致すると判定することを含む、実施形態6に記載の方法。
【0068】
実施形態8:さらに、第3セッションの最中に通信される1つ以上のパケットのセットを検出するステップに基づいて、少なくとも部分的に、前記サイバーセキュリティデバイスによって維持される前記シグネチャのセットに基づいて、前記第3セッションと関連するアプリケーションが特定され得るかを判定すること、前記第3セッションのためのアプリケーションが特定され得ないと判定することに基づいて、少なくとも部分的に、前記第3セッションの前記パケットのセットに関連する送信元アドレス、宛先アドレス、ポート番号、および、ネットワーク通信プロトコルのうちの少なくとも1つに基づいて、類似のネットワークトラフィックが未知であると以前に判定されたかを判定すること、および、類似のネットワークトラフィックが未知であると以前に判定されたと判定することに基づいて、前記パケットのセットのいずれも前記クラウドベースサービスに転送することなく、前記第3セッションの前記パケットのセットが未知のトラフィックであると判定することを含む、実施形態1乃至7いずれか一つに記載の方法。
【0069】
実施形態9:さらに、アプリケーションが特定され得ないとクラウドベースサービスが判定することに基づいて、アプリケーションシグネチャの作成のために第1パケットを指定することを含む、実施形態1乃至8いずれか一つに記載の方法。
【0070】
実施形態10:アプリケーションクラスによってネットワークトラフィックを分類するためのプログラムコードを含む、1つ以上の非一時的機械可読記憶媒体であって、前記プログラムコードは、第1セッションのネットワークトラフィックを検出し、前記ネットワークトラフィックがアプリケーションクラスのセットのうちの1つへと分類され得るかを判定し、前記ネットワークトラフィックが前記アプリケーションクラスのセットのうちの1つへと分類され得ないと判定すること基づいて、前記ネットワークトラフィックの1つ以上のパケットをクラウドベースサービスに通信し、前記クラウドベースサービスから、第1アプリケーションクラスの指示、および、通信された前記1つ以上のパケットに関連する第1シグネチャを獲得することに基づいて、前記第1アプリケーションクラスの指示を前記第1セッションの識別子に関連付け、前記第1アプリケーションクラスは、前記アプリケーションクラスのセットに含まれていなかったものであり、かつ、前記第1アプリケーションクラスを用いて前記アプリケーションクラスのセットを更新する、非一時的機械可読記憶媒体。
【0071】
実施形態11:前記プログラムコードは、さらに、第2セッションのネットワークトラフィックの後続の検出に基づいて、前記ネットワークトラフィックが前記アプリケーションクラスのセットのうちの1つへと分類され得るかを判定し、かつ、前記ネットワークトラフィックを前記クラウドベースサービスに通信することなく、前記ネットワークトラフィックが前記第1アプリケーションクラスへと分類され得ると判定する、実施形態10に記載の非一時的機械可読記憶媒体。
【0072】
実施形態12:前記ネットワークトラフィックが、前記アプリケーションクラスのセットのうちの1つへと分類され得るかを判定する、前記プログラムコードは、前記ネットワークトラフィックをシグネチャのセットに対して評価し、前記シグネチャのセットの各々は、前記アプリケーションクラスのセットのうちの対応する1つに関連付けられている、実施形態10または11に記載の非一時的機械可読記憶媒体。
【0073】
実施形態13:前記ネットワークトラフィックが、前記アプリケーションクラスのセットのうちの1つへと分類され得ないと判定する、前記プログラムコードは、前記ネットワークトラフィックが、前記シグネチャのセットのうちのいずれにも一致させられ得ないと判定する、実施形態12に記載の非一時的機械可読記憶媒体。
【0074】
実施形態14:前記プログラムコードは、さらに、前記通信された1つ以上のパケットがアプリケーションクラスへと分類され得なかったという指示を、前記クラウドベースサービスから獲得することに、少なくとも部分的に、基づいて、未知のトラフィックとして前記ネットワークトラフィックを分類する、実施形態10乃至13いずれか一つに記載の非一時的機械可読記憶媒体。
【0075】
実施形態15:前記プログラムコードは、さらに、第2セッションのネットワークトラフィックの検出に基づいて、前記ネットワークトラフィックが前記アプリケーションクラスのセットのうちの1つへと分類され得るかを判定し、前記第2セッションの前記ネットワークトラフィックが分類され得ないと判定することに基づいて、前記ネットワークトラフィックと共通の送信元アドレス、宛先アドレス、ポート番号、および、ネットワーク通信プロトコルのうちの少なくとも1つを有する以前に検出されたネットワークトラフィックが、未知のトラフィックとして以前に分類されたかを判定し、かつ、以前に検出された前記ネットワークトラフィックが未知のトラフィックとして分類されたと判定することに基づいて、前記クラウドベースサービスにパケットを通信することなく、前記第2セッションの前記ネットワークトラフィックを未知のトラフィックとして分類する、実施形態10乃至14いずれか一つに記載の非一時的機械可読記憶媒体。
【0076】
実施形態16:前記プログラムコードは、さらに、前記第1アプリケーションクラスを指示する第1セキュリティポリシを、前記ネットワークトラフィックに適用する、実施形態10乃至15いずれか一つに記載の非一時的機械可読記憶媒体。
【0077】
実施形態17:装置であって、プロセッサと、命令が保管されたコンピュータ可読記憶媒体と、を含み、前記プロセッサによって前記命令が実行されると、前記装置に、サイバーセキュリティデバイスによって分類され得なかった第1パケットを獲得し、前記第1パケットを分類するために、複数のアプリケーションシグネチャに対して前記第1パケットを評価し、前記複数のアプリケーションシグネチャは、複数のアプリケーションを表しており、前記第1パケットを前記複数のアプリケーションシグネチャのうちの1つにマッチングすることに基づいて、前記第1パケットを、一致するアプリケーションシグネチャによって表される前記複数のアプリケーションのうちの1つのアプリケーションクラスへと分類し、前記第1パケットが分類された前記アプリケーションクラス、および、前記一致するアプリケーションシグネチャを、前記サイバーセキュリティデバイスに通信する、ようにさせる装置。
【0078】
実施形態18:さらに、前記プロセッサによって実行可能な命令を含み、前記装置に、前記第1パケットが前記複数のアプリケーションシグネチャのいずれにも一致し得ないと判定することに基づいて、前記第1パケットが、汎用クラスのセットのうちの1つの汎用クラスに従って、分類され得るかを判定し、前記第1パケットが汎用クラスに従って分類され得ると判定することに基づいて、前記第1パケットの前記汎用クラスを前記サイバーセキュリティデバイスに通信するようにさせる、実施形態17に記載の装置。
【0079】
実施形態19:さらに、前記プロセッサによって実行可能な命令を含み、前記装置に、前記第1パケットが前記複数のアプリケーションシグネチャのいずれにも一致し得ないと判定することに基づいて、少なくとも部分的に、前記第1パケットに基づいて、新しいアプリケーションシグネチャが作成されるように指示すようにさせる、実施形態17または18に記載の装置。
【0080】
実施形態20:前記装置は、さらに、前記プロセッサによって実行可能な命令を含み、前記装置に、少なくとも部分的に、前記第1パケットに基づく、前記新しいアプリケーションシグネチャの作成に基づいて、前記新しいアプリケーションシグネチャを用いて前記複数のアプリケーションシグネチャを更新するようにさせる、実施形態19に記載の装置。
【0081】
実施形態21:方法であって、第1セッションのネットワークトラフィックを検出するステップと、ネットワークトラフィックがアプリケーションクラスのセットのうちの1つへと分類され得るか判定するステップと、ネットワークトラフィックがアプリケーションクラスのセットのうちの1つへと分類され得ないと判定することに基づいて、ネットワークトラフィックの1つ以上のパケットをクラウドベースサービスに通信するステップと、クラウドベースサービスから、第1アプリケーションクラスの指示および通信された1つ以上のパケットに関連する第1シグネチャを獲得することに基づいて、第1アプリケーションクラスの指示を第1セッションの識別子に関連付けるステップであり、第1アプリケーションクラスがアプリケーションクラスのセットに含まれていなかったステップと、第1アプリケーションクラスを用いてアプリケーションクラスのセットを更新するステップを含む、方法。
【国際調査報告】