(57)【要約】  アプリケーションネットワークアクティビティの自動分類のための開示されるコンピュータ実装方法は、（１）語彙キーワードを含む語彙辞書を構築することであって、所定の語彙キーワードを含むヘッダを有するネットワークストリームが、語彙辞書内の所定の語彙キーワードに関連付けられたアクティビティタイプの通信を表わす、ことと、（２）ネットワークの観点で、アプリケーションとサーバとの間の通信を表すネットワークストリームを識別することと、（３）語彙辞書を利用する語彙解析を介して、ネットワークストリームの１つ以上のヘッダフィールドからキーワードの集合を抽出することと、（４）ネットワークストリームのヘッダフィールドから抽出されたキーワードの集合内のそれぞれのキーワードに関連付けられたアクティビティタイプに基づいて、ネットワークストリームを分類することと、を含み得る。様々な他の方法、システム、及びコンピュータ可読媒体も開示される。
2019512133.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションネットワークアクティビティの自動分類のためのコンピュータ実装方法であって、前記方法の少なくとも一部が少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法は、
語彙キーワードを含む語彙辞書を構築することであって、所定の語彙キーワードを含むヘッダを有するネットワークストリームが、前記語彙辞書内の前記所定の語彙キーワードに関連付けられたアクティビティタイプの通信を表す、ことと、
ネットワークの観点で、アプリケーションとサーバとの間の通信を表すネットワークストリームを識別することと、
前記語彙辞書を利用する語彙解析を介して、前記ネットワークストリームの１つ以上のヘッダフィールドからキーワードの集合を抽出することと、
前記ネットワークストリームの前記ヘッダフィールドから抽出された前記キーワードの集合内のそれぞれのキーワードに関連付けられたアクティビティタイプに基づいて、前記ネットワークストリームを分類することと、を含む、方法。
【請求項２】
前記語彙辞書を構築することが、
サンドボックス環境において既知のアプリケーションを実行することと、
前記アプリケーション上で動作を実施することにより、前記既知のアプリケーションに生成されたネットワークストリームを生成させることと、
前記生成されたネットワークストリームの前記ヘッダから少なくとも１つの観測されたキーワードを抽出することと、
前記観測されたキーワードを、前記既知のアプリケーションに前記生成されたネットワークストリームを生成させた前記動作に関連付けることと、を含む、請求項１に記載の方法。
【請求項３】
前記語彙辞書を構築することが、前記語彙辞書にユーザ定義の語彙キーワードを追加することを含む、請求項１に記載の方法。
【請求項４】
前記語彙辞書を構築することが、語彙キーワードとアクティビティタイプとのユーザ定義の関連付けを前記語彙辞書に追加することを含む、請求項１に記載の方法。
【請求項５】
前記アプリケーションによって生成された複数のネットワークストリームの前記分類を特定の時点で記述する前記アプリケーションの状態プロファイルに、前記ネットワークストリームの前記分類を追加することを更に含む、請求項１に記載の方法。
【請求項６】
前記ネットワークストリームを分類することが、前記ネットワークストリームの前記ヘッダフィールドから抽出された複数の特定のキーワードの存在に基づいて、前記ネットワークストリームに特定の分類を割り当てることを含む、請求項１に記載の方法。
【請求項７】
前記１つ以上のヘッダフィールドから前記キーワードの集合を抽出することが、前記ヘッダフィールドをトークン化することを含む、請求項１に記載の方法。
【請求項８】
前記ヘッダフィールドをトークン化することが、非英数字の区切り文字に沿って前記ヘッダフィールドをトークン化することを含む、請求項７に記載の方法。
【請求項９】
前記ネットワークストリームが、ハイパーテキスト転送プロトコル（ＨＴＴＰ）ストリームを含む、請求項１に記載の方法。
【請求項１０】
ネットワークトラフィックポリシーを施行するネットワーク管理システムに前記ネットワークストリームの前記分類を提供することを更に含む、請求項１に記載の方法。
【請求項１１】
コンピューティングシステムをマルウェアから保護するソフトウェアセキュリティシステムに、前記ネットワークストリームの前記分類を提供することを更に含む、請求項１に記載の方法。
【請求項１２】
前記ネットワークの観点が、
ルータと、
サーバと、
ゲートウェイと、
スイッチと、
ネットワークインターフェースデバイスと、
ネットワークハブと、のうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項１３】
アプリケーションネットワークアクティビティの自動分類のためのシステムであって、前記システムは、
語彙キーワードを含む語彙辞書を構築する、メモリに格納された構築モジュールであって、所定の語彙キーワードを含むヘッダを有するネットワークストリームが、前記語彙辞書内の前記所定の語彙キーワードに関連付けられたアクティビティタイプの通信を表す、構築モジュールと、
ネットワークの観点で、アプリケーションとサーバとの間の通信を表すネットワークストリームを識別する、メモリに格納された識別モジュールと、
前記語彙辞書を利用する語彙解析を介して、前記ネットワークストリームの１つ以上のヘッダフィールドからキーワードの集合を抽出する、メモリに格納された抽出モジュールと、
前記ネットワークストリームの前記ヘッダフィールドから抽出された前記キーワードの集合内のそれぞれのキーワードに関連付けられたアクティビティタイプに基づいて、前記ネットワークストリームを分類する、メモリに格納された分類モジュールと、
前記構築モジュール、前記識別モジュール、前記抽出モジュール、及び前記分類モジュールを実行するように構成されている、少なくとも１つの物理的プロセッサと、を備える、システム。
【請求項１４】
前記構築モジュールが、前記語彙辞書を、
サンドボックス環境において既知のアプリケーションを実行することと、
前記アプリケーション上で動作を実施することにより、前記既知のアプリケーションに生成されたネットワークストリームを生成させることと、
前記生成されたネットワークストリームの前記ヘッダから少なくとも１つの観測されたキーワードを抽出することと、
前記観測されたキーワードを、前記既知のアプリケーションに前記生成されたネットワークストリームを生成させた前記動作に関連付けることと、によって構築する、請求項１３に記載のシステム。
【請求項１５】
前記構築モジュールが、ユーザ定義の語彙キーワードを前記語彙辞書に追加することによって、前記語彙辞書を構築する、請求項１３に記載のシステム。
【請求項１６】
前記構築モジュールが、語彙キーワードとアクティビティタイプとのユーザ定義の関連付けを前記語彙辞書に追加することによって、前記語彙辞書を構築する、請求項１３に記載のシステム。
【請求項１７】
前記分類モジュールが、前記アプリケーションによって生成された複数のネットワークストリームの前記分類を特定の時点で記述する前記アプリケーションの状態プロファイルに、前記ネットワークストリームの前記分類を追加する、請求項１３に記載のシステム。
【請求項１８】
前記分類モジュールが、前記ネットワークストリームの前記ヘッダフィールドから抽出された複数の特定のキーワードの存在に基づいて、前記ネットワークストリームに特定の分類を割り当てることによって、前記ネットワークストリームを分類する、請求項１３に記載のシステム。
【請求項１９】
前記抽出モジュールが、前記ヘッダフィールドをトークン化することによって、前記１つ以上のヘッダフィールドから前記キーワードの集合を抽出する、請求項１３に記載のシステム。
【請求項２０】
１つ以上のコンピュータ可読命令を含む非一時的コンピュータ可読媒体であって、前記命令は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
語彙キーワードを含む語彙辞書を構築することであって、所定の語彙キーワードを含むヘッダを有するネットワークストリームが、前記語彙辞書内の前記所定の語彙キーワードに関連付けられたアクティビティタイプの通信を表す、ことと、
ネットワークの観点で、アプリケーションとサーバとの間の通信を表すネットワークストリームを識別することと、
前記語彙辞書を利用する語彙解析を介して、前記ネットワークストリームの１つ以上のヘッダフィールドからキーワードの集合を抽出することと、
前記ネットワークストリームの前記ヘッダフィールドから抽出された前記キーワードの集合内のそれぞれのキーワードに関連付けられたアクティビティタイプに基づいて、前記ネットワークストリームを分類することと、をさせる、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
ネットワーク上でデジタル送信される情報量が増加するにつれ、個人及び組織は、そのようなネットワークトラフィックを制御及び／又は解析するための改善された方法を模索する場合がある。ネットワークトラフィックを制御するいくつかの方法は、そのネットワークストリームによって伝送される情報のタイプに応じて様々なネットワークストリームを分類する能力に依存する。ネットワークトラフィックを分類することは、ネットワークトラフィックポリシーの施行及び／又はマルウェアの識別を含む様々なコンテキストにおいて使用され得る。例えば、組織は、「ソーシャルメディア」分類に類別されたネットワークストリームをブロックすることができる。
【０００２】
残念ながら、ネットワークストリームを識別及び分類する従来の伝統の方法は、ネットワークストリームを適切に識別及び解析するため、ネットワークストリームを生成したアプリケーションの予備知識を必要とする場合がある。ネットワークストリームを識別し分類する他の従来の方法は、ネットワークストリームを生成するエンドポイントデバイス上にソフトウェアエージェントが存在することを必要とする場合がある。更に、ネットワークアクティビティを分類する従来の方法は、ネットワークストリームを生成したアプリケーションに基づいてネットワークトラフィックを単純に分類し、よって、管理者が事例に基づいてネットワークトラフィックを制御することを可能にする、適切なきめ細かい制御を提供できない場合がある。したがって、本開示は、アプリケーションネットワークアクティビティを自動的に分類するための改善されたシステム及び方法に対する必要性を識別し、それに対処する。
【発明の概要】
【０００３】
より詳細に後述するように、本開示は、ネットワークストリームのヘッダから抽出されたキーワードに基づいてネットワークストリームに分類を割り当てることによる、アプリケーションネットワークアクティビティの自動分類のための様々なシステム及び方法を説明する。一実施例では、アプリケーションネットワークアクティビティの自動分類のためのコンピュータ実装方法は、（１）語彙キーワードを含む語彙辞書を構築することと、（２）ネットワークの観点で、アプリケーションとサーバとの間の通信を表すネットワークストリームを識別することと、（３）語彙辞書を利用する語彙解析を介して、ネットワークストリームの１つ以上のヘッダフィールドからキーワードの集合を抽出することと、（４）ネットワークストリームのヘッダフィールドから抽出されたキーワードの集合内のそれぞれのキーワードに関連付けられたアクティビティタイプに基づいて、ネットワークストリームを分類することと、を含み得る。所定の語彙キーワードを含むヘッダを有するネットワークストリームは、語彙辞書内の所定の語彙キーワードに関連付けられたアクティビティタイプの通信を表し得る。一実施形態では、ネットワークストリームとしては、ハイパーテキスト転送プロトコル（ＨＴＴＰ）ストリームが挙げられ得る。加えて、いくつかの実施形態では、ネットワークの観点としては、ルータ、サーバ、ゲートウェイ、スイッチ、ネットワークインターフェースデバイス、及び／又はネットワークハブが挙げられ得る。
【０００４】
いくつかの実施例では、語彙辞書を構築することは、サンドボックス環境において既知のアプリケーションを実行することと、既知のアプリケーションに、アプリケーション上で動作を実施することによってネットワークストリームを生成させることと、生成されたネットワークストリームのヘッダから少なくとも１つのキーワードを抽出することと、観測されたキーワードを、既知のアプリケーションに生成されたネットワークストリームを生成させた動作に関連付けることと、を含み得る。更に、語彙辞書を構築することは、語彙辞書にユーザ定義の語彙キーワードを追加することを含み得る。加えて又はあるいは、語彙辞書を構築することは、語彙キーワードとアクティビティタイプとの間のユーザ定義の関連付けを語彙辞書に追加することを含み得る。
【０００５】
いくつかの実施形態では、１つ以上のヘッダフィールドからキーワードの集合を抽出することは、ヘッダフィールドをトークン化することを含み得る。いくつかの実施例では、ヘッダフィールドをトークン化することは、非英数字の区切り文字に沿ってヘッダフィールドをトークン化することを含み得る。
【０００６】
本明細書に記載の方法は、様々な手段でネットワークストリームを分類し得る。いくつかの例において、ネットワークストリームを分類することは、ネットワークストリームのヘッダフィールドから抽出した複数の特定のキーワードの存在に基づいて、ネットワークストリームに特定の分類を割り当てることを含み得る。更に、コンピュータ実装方法は、アプリケーションによって生成された複数のネットワークストリームの分類を特定の時点で記述する、アプリケーションの状態プロファイルに、ネットワークストリームの分類を追加することを含み得る。
【０００７】
いくつかの実施例では、コンピュータ実装方法は、ネットワークトラフィックポリシーを施行するネットワーク管理システムにネットワークストリームの分類を提供することを更に含み得る。加えて又はあるいは、コンピュータ実装方法は、コンピューティングシステムをマルウェアから保護するソフトウェアセキュリティシステムに、ネットワークストリームの分類を提供することを更に含み得る。
【０００８】
一実施形態において、前述の方法を実装するためのシステムは、（１）語彙キーワードを含む語彙辞書を構築する、メモリに格納された構築モジュールと、（２）ネットワークの観点で、アプリケーションとサーバとの間の通信を表すネットワークストリームを識別する、メモリに格納された識別モジュールと、（３）語彙辞書を利用する語彙解析を介して、ネットワークストリームの１つ以上のヘッダフィールドからキーワードの集合を抽出する、メモリに格納された抽出モジュールと、（４）ネットワークストリームのヘッダフィールドから抽出されたキーワードの集合内のそれぞれのキーワードに関連付けられたアクティビティタイプに基づいてネットワークストリームを分類する、メモリに格納された分類モジュールと、（５）構築モジュール、識別モジュール、抽出モジュール、及び分類モジュールを実行するように構成されている少なくとも１つの物理プロセッサと、を含み得る。
【０００９】
いくつかの実施例では、上述の方法は、非一時的コンピュータ可読媒体上のコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行された場合、コンピューティングデバイスに、（１）語彙キーワードを含む語彙辞書を構築することと、（２）ネットワークの観点で、アプリケーションとサーバとの間の通信を表すネットワークストリームを識別することと、（３）語彙辞書を利用する語彙解析を介して、ネットワークストリームの１つ以上のヘッダフィールドからキーワードの集合を抽出することと、（４）ネットワークストリームのヘッダフィールドから抽出されたキーワードの集合内のそれぞれのキーワードに関連付けられたアクティビティタイプに基づいて、ネットワークストリームを分類することと、をさせ得る、１つ以上のコンピュータ実行可能命令を含み得る。
【００１０】
上述の実施形態のいずれかによる特徴は、本明細書に記載される一般原理に従って、互いに組み合わせて使用されてもよい。これら及び他の実施形態、特徴、及び利点は、添付の図面及び特許請求の範囲と併せて以下の発明を実施するための形態を読むことによって更に十分に理解されるだろう。
【図面の簡単な説明】
【００１１】
添付の図面は、いくつかの例示的な実施形態を図示するものであり、本明細書の一部である。以下の説明と併せて、これらの図面は、本開示の様々な原理を実証及び説明する。
【図１】アプリケーションネットワークアクティビティの自動分類のための例示的なシステムのブロック図である。
【図２】アプリケーションネットワークアクティビティの自動分類のための追加の例示的なシステムのブロック図である。
【図３】アプリケーションネットワークアクティビティの自動分類のための例示的な方法のフローチャートである。
【図４】語彙辞書を作製するための例示的なコンピューティングシステムのブロック図である。
【図５】アプリケーションネットワークアクティビティの自動分類のための例示的なコンピューティングシステムのブロック図である。
【図６】本明細書で説明及び／又は図示される実施形態のうちの１つ以上を実施できる例示的なコンピューティングシステムのブロック図である。
【図７】本明細書で説明及び／又は図示される実施形態のうちの１つ以上を実施できる例示的なコンピューティングネットワークのブロック図である。
【００１２】
図面を通して、同一の参照符号及び記述は、必ずしも同一ではないが、類似の要素を示す。本明細書で説明される例示的実施形態は、様々な修正物及び代替的な形態が可能であるが、特定の実施形態が例として図面に示されており、本明細書に詳細に記載される。しかしながら、本明細書に記載される例示的実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の特許請求の範囲内にある全ての修正物、等価物、及び代替物を網羅する。
【発明を実施するための形態】
【００１３】
本開示は、概して、アプリケーションネットワークアクティビティの自動分類のためのシステム及び方法を対象とする。より詳細に後述するように、本明細書に記載されたシステム及び方法は、ネットワークストリームのヘッダから抽出されたキーワードに基づいたそれらのストリームの分類を可能にし得る。このような分類は、エンドポイントデバイス上での存在なしに、また、ネットワークストリームの発信元を知る必要もなく、行われ得る。
【００１４】
以下、図１〜図２を参照して、アプリケーションネットワークアクティビティの自動分類のための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実施方法の詳細な説明も図３に関連して提供される。語彙辞書の作成のための例示的なシステムの詳細な説明は、図４と併せて提供される。アプリケーションネットワークアクティビティを自動的に分離するための例示的なシステムの更なる詳細な説明は、図５と併せて提供される。更に、本明細書で説明される実施形態のうちの１つ以上を実施できる例示的なコンピューティングシステム及びネットワークアーキテクチャについての詳細な説明が、それぞれ、図６及び図７と関連して提供されることになる。
【００１５】
図１は、アプリケーションネットワークアクティビティの自動分類のための例示的なシステム１００のブロック図である。この図に図示されるように、例示的なシステム１００は、１つ以上のタスクを実施するための１つ以上のモジュール１０２を含んでもよい。例えば、より詳細に後述するように、例示的なシステム１００は、語彙キーワードを含む語彙辞書１２０を構築する構築モジュール１０４を含んでもよい。所定の語彙キーワードを含むヘッダを有するネットワークストリームは、語彙辞書１２０内の所定の語彙キーワードに関連付けられたアクティビティタイプの通信を表し得る。例示的なシステム１００は、ネットワークの観点で、アプリケーションとサーバとの間の通信を表すネットワークストリームを識別する、識別モジュール１０６を追加的に更に含んでもよい。例示的なシステム１００は、語彙辞書１２０を利用する語彙解析を介して、ネットワークストリームの１つ以上のヘッダフィールドからキーワードの集合を抽出する、抽出モジュール１０８を更に含んでもよい。また、例示的なシステム１００は、ネットワークストリームのヘッダフィールドから抽出されたキーワードの集合内のそれぞれのキーワードに関連付けられたアクティビティタイプに基づいてネットワークストリームを分類する、分類モジュール１１０を含んでもよい。別々の要素として図示されるが、図１のモジュール１０２のうちの１つ以上は、単一のモジュール又はアプリケーションの部分を表してもよい。
【００１６】
特定の実施形態では、図１のモジュール１０２のうち１つ以上は、コンピューティングデバイスによって実行されると、コンピューティングデバイスに１つ以上のタスクを実施させ得る、１つ以上のソフトウェアアプリケーション又はプログラムを表し得る。例えば、より詳細に後述するように、モジュール１０２のうちの１つ以上は、図２に示されるデバイス（例えば、コンピューティングデバイス２０２及び／若しくはサーバ２０６）、図６のコンピューティングシステム６１０、並びに／又は図７の例示的なネットワークアーキテクチャ７００の部分など、１つ以上のコンピューティングデバイスに格納され、その上で動くように構成されている、ソフトウェアモジュールを表してもよい。図１のモジュール１０２のうち１つ以上はまた、１つ以上のタスクを実施するように構成されている１つ以上の専用コンピュータの全て又は一部を表し得る。
【００１７】
図１の例示的なシステム１００は、様々な方法で実装され得る。例えば、例示的なシステム１００の全て又は一部は、図２における例示的なシステム２００の部分を表してもよい。図２に示されるように、システム２００は、ネットワーク２０４を介してサーバ２０６と通信するコンピューティングデバイス２０２を含んでもよい。一実施例では、コンピューティングデバイス２０２は、モジュール１０２のうち１つ以上でプログラムされてもよい。それに加えて、又は別の方法として、サーバ２０６はモジュール１０２のうち１つ以上でプログラムされてもよい。
【００１８】
一実施形態では、図１によるモジュール１０２のうちの１つ以上は、コンピューティングデバイス２０２及び／又はサーバ２０６のうちの少なくとも１つのプロセッサによって実行されると、コンピューティングデバイス２０２及び／又はサーバ２０６がネットワークストリームのヘッダに存在するキーワードに基づいてネットワークストリームを分類することを可能にする。例えば、より詳細に後述するように、モジュール１０２のうちの１つ以上は、コンピューティングデバイス２０２及び／又はサーバ２０６に、アプリケーションネットワークアクティビティの分類を自動化させ得る。例えば、より詳細に後述するように、構築モジュール１０４は、語彙キーワード２２０を含む語彙辞書１２０を構築し得る。所定の語彙キーワードを含むヘッダを有するネットワークストリームは、語彙辞書１２０内の所定の語彙キーワードに関連付けられたアクティビティタイプの通信を表す。識別モジュール１０６は、ネットワークの観点２１０で、アプリケーション２１４とサーバ２０６との間の通信を表すネットワークストリーム２１２を識別し得る。抽出モジュール１０８は、語彙辞書１２０を利用する語彙解析を介して、ネットワークストリーム２１２のヘッダフィールド２１８からキーワードの集合２２０を抽出し得る。分類モジュール１１０は、ネットワークストリーム２１２のヘッダフィールドから抽出されたキーワードの集合２２０内のそれぞれのキーワードに関連付けられたアクティビティタイプに基づいて、ネットワークストリーム２１２を分類し得る。
【００１９】
コンピューティングデバイス２０２は、一般に、コンピュータ実行可能命令を読み取ることができる任意のタイプ又は形態のコンピューティングデバイスを表す。コンピューティングデバイス２０２の例としては、非限定的に、ラップトップ、タブレット、デスクトップ、サーバ、携帯電話、携帯情報端末（ＰＤＡ）、マルチメディアプレーヤー、埋め込みシステム、ウェアラブルデバイス（例えば、スマートウォッチ、スマートグラスなど）、ゲーム機、それらの１つ以上の組み合わせ、図６の例示的なコンピューティングシステム６１０、あるいは他の任意の好適なコンピューティングデバイスが挙げられる。
【００２０】
サーバ２０６は、一般に、ネットワークストリームのヘッダからキーワードを抽出できるコンピューティングデバイスのタイプ又は形態を表す。サーバ２０６の例としては、限定することなく、様々なデータベースサービスを提供するように、かつ／又はある特定のソフトウェアアプリケーションを作動させるように構成されたアプリケーションサーバ及びデータベースサーバが挙げられる。
【００２１】
ネットワーク２０４は、一般に、通信若しくはデータ転送を容易にすることが可能な、任意の媒体又はアーキテクチャを表す。ネットワーク２０４の例としては、非限定的に、イントラネット、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、インターネット、電力線通信（ＰＬＣ）、セルラーネットワーク（例えば、Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ（ＧＳＭ（登録商標））ネットワーク）、図７の例示的なネットワークアーキテクチャ７００などが挙げられる。ネットワーク２０４は、無線接続又は有線接続を使用して、通信又はデータ転送を容易にしてもよい。一実施形態では、ネットワーク２０４は、コンピューティングデバイス２０２とサーバ２０６との間の通信を容易にしてもよい。
【００２２】
本明細書で使用する用語「ネットワークの観点」は、一般に、多数のエンドポイント間におけるネットワークトラフィックの視野を提供する任意のデバイス、ハードウェア、及び／又はソフトウェアを指す。例えば、ネットワークの観点は、ルータ、サーバ、ゲートウェイ、スイッチ、ネットワークインターフェースデバイス、ネットワークハブ、同一物の１つ以上の仮想化変異体、同一物の１つ以上の組み合わせ、あるいはデバイス及び／若しくはアプリケーション間のネットワークベースの通信を制御する及び／又は容易にする他の任意の好適なデバイス及び／又はソフトウェアであり得る。
【００２３】
用語「辞書」、「語彙辞書」、及びその派生語は、本明細書で使用するとき、一般に、ネットワークストリームのヘッダフィールド内の意味のある要素を識別するために使用され得る短いテキスト文字列の集合、概して単一の単語又は頭字語を指す。これらの短いテキスト文字列及び意味のある要素はまた、「語彙キーワード」又は「キーワード」として本明細書で称される場合がある。語彙辞書に格納されたそれぞれの語彙キーワードは、ネットワークストリーム分類、アプリケーション動作、及び／又は他の任意の関連情報と関連付けて格納されてもよい。本明細書に記載されたシステム及び方法は、語彙辞書の全部又は一部をデータベースに格納し得る。
【００２４】
図３は、アプリケーションネットワークアクティビティの自動分類のための例示的なコンピュータ実装方法３００のフローチャートである。図３に示されるステップは、任意の好適なコンピュータ実行可能コード及び／又はコンピューティングシステムによって実施されてもよい。いくつかの実施形態では、図３に示すステップは、図１のシステム１００、図２のシステム２００、図６のコンピューティングシステム６１０、及び／又は図７の例示的なネットワークアーキテクチャ７００の部分の構成要素のうち１つ以上によって実行されてもよい。
【００２５】
図３に示されるように、ステップ３０２で、本明細書に記載されるシステムのうちの１つ以上は、語彙キーワードを含む語彙辞書を構築し得る。所定の語彙キーワードを含むヘッダを有するネットワークストリームは、語彙辞書内の所定の語彙キーワードに関連付けられたアクティビティタイプの通信を表し得る。例えば、構築モジュール１０４は、図２のコンピューティングデバイス２０２の一部として、語彙キーワード２２０を含み得る語彙辞書１２０を構築し得る。
【００２６】
構築モジュール１０４は、語彙辞書１２０を構築するための完全な及び／又は部分的な自動化方法を利用し得る。例えば、構築モジュール１０４は、サンドボックス環境において既知のアプリケーションを実行し、アプリケーション上で動作を実施することによって既知のアプリケーションにネットワークストリームを生成させることにより、語彙辞書を構築し得る。構築モジュール１０４はまた、アプリケーションを開く、アプリケーションを閉じる、アプリケーションにファイルを開かせる、などの様々な動作を実施し得る。構築モジュール１０４は次いで、生成されたネットワークストリームのへッダから観測されたキーワードを抽出し、観測されたキーワードを、既知のアプリケーションに生成されたネットワークストリームを生成させた動作に関連付け得る。
【００２７】
具体例として、構築モジュール１０４は、サンドボックス環境においてスカイプなどのソーシャルメディアプログラムを実行し得る。構築モジュール１０４は次いで、「連絡先を追加する」要求の発行、音声通話の開始、テキストメッセージの送信、又はスカイプの予期される挙動及び／若しくは機能の一部である他の任意の好適な動作など、スカイプでの様々な動作を実施し得る。これらの動作は、スカイプが構築モジュール１０４によって実施される動作の処理を試みるときに、スカイプにネットワークストリームを生成させ得る。構築１０４は次いで、それぞれのネットワークストリームのヘッダからキーワードを抽出し、それぞれのネットワークストリームのヘッダから抽出されたキーワードを、スカイプにネットワークストリームを生成させた動作に関連付け得る。いくつかの実施形態では、単一のユーザ開始動作が、アプリケーションに、ユーザ開始動作に応答して複数の動作を実施させ得る。例えば、「連絡先を追加する」ユーザ開始要求は、スカイプに、連絡先要求の受信者へのメッセージ、要求を開始したユーザに関するデータベースの更新、及び／又は、連絡先要求を開始したユーザが名乗っている本人であることを保証する認証要求といった複数のネットワークストリームを生成させ得る。このような実施例では、構築モジュール１０４は、生成されるネットワークストリームをユーザ開始動作、アプリケーションの応答動作、又はその両方に関連付けてもよい。
【００２８】
加えて又はあるいは、構築モジュール１０４は、語彙辞書１２０にユーザ定義の語彙キーワードを追加することによって、語彙辞書１２０を構築してもよい。例えば、管理者は、ネットワークストリームのヘッダで頻繁に発見されるあるキーワードを認識し、それに応じて、それらのキーワードを語彙辞書１２０に追加してもよい。更に、構築モジュール１０４は、語彙キーワードとアクティビティタイプとのユーザ定義の関連付けを語彙辞書１２０に追加してもよい。重ねて、管理者は、語彙キーワードとネットワークストリームの分類との間の関連付けの予備知識を有し、それに応じて、それらの関連付けを語彙辞書１２０に追加してもよい。上述のプロセスの具体的な例として、システム管理者は、ネットワークアドレス「ｈｔｔｐ：／／ｍｅｄｉａ．ａｄｍｏｂ．ｃｏｍ」を宛先とするネットワークストリームが、ネットワークストリームがアプリケーション内の広告機能に関連する可能性があることを示す語彙キーワード「ａｄｍｏｂ」を含む、という予備知識を有し得る。それに応じて、管理者は、構築モジュール１０４が、キーワード「ａｄｍｏｂ」を分類「広告」に関連付けて語彙辞書１２０に追加するようにさせ得る。
【００２９】
辞書作製プロセスの図示された実施例が、図４に関連して提供される。図４に示すように、本明細書に記載されたシステム及び方法は、サンドボックス４０２でアプリケーション２１４を実行し、アプリケーション２１４上で動作４０４を実施し得る。アプリケーション２１４上で動作４０４を実施することにより、アプリケーション２１４は、生成されたストリーム４０６として図示されているネットワークストリームを生成し得る。生成されたストリーム４０６は、様々な語彙キーワードを含むヘッダ４０８を含み得る。この実施例では、構築モジュール１０４（図４には図示せず）は、生成されたストリーム４０６のヘッダ４０８からキーワード４１０を抽出し、キーワード４１０を動作４０４に関連付け、関連付けられたキーワード及び動作を語彙辞書１２０に格納し得る。
【００３０】
図３のステップ３０４において、本明細書に記載されたシステムのうちの１つ以上は、ネットワークの観点で、アプリケーションとサーバとの間の通信を表すネットワークストリームを識別し得る。例えば、識別モジュール１０６は、図２のコンピューティングデバイス２０２の一部として、ネットワークの観点２１０で、アプリケーション２１４とサーバ２０６との間の通信を表すネットワークストリーム２１２を識別し得る。
【００３１】
識別モジュール１０６は、様々な手段で様々なネットワークストリームを識別し得る。一実施形態では、ネットワークストリームは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）ストリームを表し得る。ＨＴＴＰストリームは、一般に、特定の規約に従ってフォーマットされたヘッダを含む。つまり、ＨＴＴＰストリームの所定のヘッダフィールドは、異なるＨＴＴＰストリームのヘッダ内の同一フィールドと同様の情報を含む可能性がある。この知識により、本明細書に記載されるシステム及び方法は、抽出元のフィールドに基づいて、抽出された語彙キーワードに重要性を割り当てることができ得る。当然ながら、本明細書に記載されるシステム及び方法は、ＨＴＴＰネットワークストリームを解析するだけに限定されない。例えば、識別モジュール１０６は、ファイル転送プロトコル（ＦＴＰ）ストリーム、簡易メール転送プロトコル（ＳＭＴＰ）ストリーム、又は他の任意の好適なネットワークストリームを識別し得る。いくつかの実施形態では、識別モジュール１０６は、特定のタイプのネットワークストリームを特異的に識別すると同時に、他のタイプのネットワークアクティビティを無視し得る。例えば、識別モジュール１０６は、ＨＴＴＰストリームを優先的に識別すると同時に、ＦＴＰストリームを無視し得る。
【００３２】
更に、識別モジュール１０６は、様々なコンテキストにおいてネットワークストリームを識別し得る。例えば、識別モジュール１０６は、オフィスビルのような特定の地理的領域に対してほとんど又は全てのネットワークトラフィックを扱うように配置されたネットワークルータを通るネットワークストリームを識別し得る。このような実施例では、識別モジュール１０６は、ファイアウォール、又はルータの動作を容易にする他のオペレーティングソフトウェアの一部として動作し得る。同様に、識別モジュール１０６は、特定のエリアにサービスを提供するアクセスポイントの一部として動作し得る。加えて又はあるいは、識別モジュール１０６は、より微細なレベルで動作し得る。具体的には、識別モジュール１０６は、携帯電話などの単一のコンピューティングデバイスの中に及び／又は外へ流れるネットワークストリームを識別し得る。このような実施例では、識別モジュール１０６は、コンピューティングデバイスにインストールされたセキュリティアプリケーションの一部として動作し得る。
【００３３】
図３のステップ３０６において、本明細書に記載されるシステムのうちの１つ以上は、語彙辞書を利用する語彙解析を介して、ネットワークストリームの１つ以上のヘッダフィールドからキーワードの集合を抽出し得る。例えば、抽出モジュール１０８は、図２のコンピューティングデバイス２０２の一部として、語彙辞書１２０を利用する語彙解析を介して、ネットワークストリーム２１２のヘッダフィールド２１８からキーワード２２０を抽出し得る。
【００３４】
抽出モジュール１０８は、ヘッダフィールド２１８から様々な方法でキーワードを抽出し得る。いくつかの実施例では、抽出モジュール１０８は、ヘッダフィールドをトークン化することによって１つ以上のヘッダフィールドからキーワードの集合を抽出し得る。多数のネットワークストリームヘッダは、良好に確立されたプロトコルに従うネットワークアドレスを組み込むため、ヘッダフィールドをトークン化することは、ヘッダフィールドを非英数字の区切り文字に沿ってトークン化することを含み得る。例えば、ヘッダフィールドは、テキスト文字列として「ｍｅｄｉａ．ａｄｍｏｂ．ｃｏｍ」などのユニフォームリソースロケータ（ＵＲＬ）を含み得る。抽出モジュール１０８は、このテキスト文字列を非英数字に沿って語彙キーワード「ｍｅｄｉａ」、「ａｄｍｏｂ」、及び「ｃｏｍ」に分けることにより、トークン化し得る。加えて又はあるいは、抽出モジュール１０８は、語彙辞書１２０から既知の語彙キーワードに一致する一連の正規表現を適用し、正規表現のうちの１つ以上と一致するヘッダフィールド２１８内のテキスト文字列の集合をキーワード２２０として使用してもよい。一般に、抽出モジュール１０８は、任意の好適なテキスト解析法を使用して、ヘッダフィールドからキーワードを抽出し得る。
【００３５】
図３に戻り、ステップ３０８において、本明細書に記載されるシステムのうちの１つ以上は、ネットワークストリームのヘッダフィールドから抽出されたキーワードの集合内のそれぞれのキーワードに関連付けられたアクティビティタイプに基づいて、ネットワークストリームを分類し得る。例えば、分類モジュール１１０は、図２のコンピューティングデバイス２０２の一部として、ネットワークストリーム２１２のヘッダフィールド２１８から抽出されたキーワード２２０に関連付けられたアクティビティタイプに基づいて、ネットワークストリーム２１２を分類し得る。
【００３６】
分類モジュール１１０は、様々な手段でネットワークストリーム２１２を分類し得る。例えば、分類モジュール１１０は、キーワード２２０とネットワークストリームの特定のクラスとの関連付けに基づいて、ネットワークストリーム２１２に分類を割り当て得る。いくつかの実施形態では、語彙辞書１２０は、それぞれの語彙キーワードをネットワークストリームの特定の値又は分類にマップし得る。分類モジュール１０８は、それに応じて、関連する値、又は関連するアプリケーションアクティビティのタイプを調べる鍵として、キーワード２２０のうちの１つ以上を使用し得る。特定の実施例として、語彙辞書１２０は、キーワード「ｏａｕｔｈ」を値「認証（authentication）」にマップし得る。分類モジュール１０８は、それに応じて、ヘッダに「ｏａｕｔｈ」語彙キーワードを含むネットワークストリームを認証タイプのアプリケーションアクティビティとして分類し得る。
【００３７】
分類モジュール１１０は、ネットワークストリームのヘッダフィールドから抽出された複数の特定のキーワードの存在に基づいて、ネットワークストリームに特定の分類を割り当てることによって、ネットワークストリームを分類し得る。例えば、分類モジュール１１０は、ネットワークストリーム２１２のヘッダから抽出されたそれぞれのキーワードに基づいて、ネットワークストリーム２１２を分類してもよい。このような実施例の特定のインスタンスとして、モジュール１０２のうちの１つ以上は、ネットワークストリーム２１２から「ソーシャルメディア」及び「チャット要求」に対応するキーワードを抽出し得る。分類モジュール１１０は、それに応じて、「ソーシャルメディア」クラスストリーム並びに「チャット要求」クラスストリームの両方として、ネットワークストリーム２１２を分類し得る。加えて又はあるいは、分類モジュール１１０は、ネットワークストリーム２１２に階層分類を割り当ててもよい。例えば、「チャット要求」は、ネットワークストリームの「ソーシャルメディア」クラスの子クラスであってもよい。ゆえに、ネットワークストリーム２１２を「チャット要求」ストリームとして分類することは、ネットワークストリーム２１２をネットワークストリームの「ソーシャルメディア」としても本質的に分類し得る。
【００３８】
いくつかの実施形態では、分類モジュール１１０は、その結果の全部又は一部を外部システムに提供してもよい。例えば、分類モジュール１１０は、ネットワークトラフィックポリシーを施行するネットワーク管理システムにネットワークストリームの分類を提供してもよい。これらのシステムは、分類モジュール１１０によって提供される分類を使用して、様々なタスクを実施し得る。例えば、ネットワーク管理システムは、特定の分類のネットワークストリームをブロックすることによって、データ消失防止（ＤＬＰ）ポリシーを施行し得る。ネットワークトラフィックに対するこのような緻密な制御により、アプリケーションは、ネットワークアクティビティを実行することが可能になり、ゆえにより広い範囲の機能へのアクセスを有することが可能になり得、通常ならば、それらの機能へのアクセスは、従来の方法を使用してネットワークトラフィックポリシーを施行した場合にブロックされ得る。特定の実施例として、コンピューティングデバイス上で実行する第１のアプリケーション及び第２のアプリケーションは、それぞれ２つのネットワークストリームを生成し得る。第１のアプリケーションは、アップロードネットワークストリーム及びダウンロードネットワークストリームを生成し得る一方、第２のアプリケーションは、ダウンロードネットワークストリーム及び広告関連ネットワークストリームを生成し得る。しかし、ネットワークトラフィックコントローラは、ダウンロードアクティビティからコンピューティングデバイスをブロックし、それに応じて、第１及び第２のアプリケーションによって生成されるダウンロードストリームをブロックし得る。ネットワークトラフィックコントローラは、第１のアプリケーションからのアップロードネットワークストリーム及び第２のアプリケーションからの広告関連ネットワークストリームを通過させ、それによってアプリケーションに、通常ならばネットワークトラフィック管理へのさほどきめ細かくないアプローチを使用したときに有し得る機能よりも高い機能を与え得る。
【００３９】
付加的な実施例として、分類モジュール１１０は、コンピューティングシステムをマルウェアから保護するソフトウェアセキュリティシステムにネットワークストリームの分類を提供してもよい。ソフトウェアセキュリティシステムは、アプリケーションがコンピューティングシステムに有害となり得る挙動を示しているかどうかを判定するための解析の一部として、ネットワークストリームの分類を使用し得る。特定の実施例として、ソフトウェアセキュリティシステムは、ワード処理アプリケーションがファイル転送ネットワークストリームを作製する可能性が低いことを認識し得る。このように、ソフトウェアセキュリティシステムが、特定のネットワークストリームがファイル転送ネットワークストリームとして分類され、ワード処理アプリケーションによって生成されたと判定した場合、ソフトウェアセキュリティシステムは、ワード処理アプリケーションが潜在的に悪意のある挙動を示していると判定し、それに応じて応答し得る。
【００４０】
更に、本明細書に記載されるシステムは、アプリケーションによって生成された複数のネットワークストリームの分類を特定の時点で記述するアプリケーションの状態プロファイルに、ネットワークストリームの分類を追加することを含み得る。様々な他のシステム及び／又は方法は、限定するものではないが、マルウェア検出及び／又はソフトウェア解析の他の形態を含む、様々な目的のためにこのような状態プロファイルを使用し得る。状態プロファイルに分類を追加する分類モジュール１１０の図示された例が、図５に関連して提供される。図示のように、アプリケーション５０２は、ネットワークストリーム５０４、５０６、及び５０８を生成し得る。前述のように、モジュール１０２のうちの１つ以上は、これらのネットワークストリームを識別し、ヘッダからキーワードを抽出し、ヘッダから抽出したキーワードに基づいてネットワークストリームを分類し得る。分類モジュール１１０は、それに応じて、図５のモジュール１０２の一部として、ネットワークストリーム５０４、５０６、及び５０８に分類５１４、５１６、及び５１８をそれぞれ割り当て、所定の時点で、アプリケーション５０２によって生成されたアクティブなネットワークストリームの分類を記述する状態プロファイル５２０にこれらの分類を追加し得る。
【００４１】
より詳細に前述したように、本明細書に記載されるシステム及び方法は、ネットワークストリームを生成したアプリケーションをホストするエンドポイントデバイス上に存在がない場合であっても、コンピューティングデバイスがネットワークストリームを解析し分類することを可能にし得る。本明細書に記載されるシステム及び方法は、ネットワークストリームのヘッダから語彙キーワードを抽出することによってこれを達成し得る。これらのキーワードは、次いで、キーワードが表すネットワークストリームのクラスに関連付けて語彙キーワードを格納する、予め生成された語彙辞書に格納された情報に従って、ネットワークストリームを分類するために使用され得る。
【００４２】
図６は、本明細書に記載及び／又は図示される実施形態のうち１つ以上を実装できる例示的なコンピューティングシステム６１０のブロック図である。例えば、コンピューティングシステム６１０の全て又は一部は、単独で又は他の要素と組み合わせのいずれかで、（図３に示されるステップのうち１つ以上などの）本明細書に記載されるステップのうち１つ以上を実施してもよく、及び／又はそれを実施するための手段であってもよい。コンピューティングシステム６１０の全て又は一部は、また、本明細書に記載及び／又は図示される他の任意のステップ、方法、若しくは処理を実施し、及び／又はそれを実施するための手段となり得る。
【００４３】
コンピューティングシステム６１０は、コンピュータ可読命令を実行することが可能な任意のシングル若しくはマルチプロセッサのコンピューティングデバイス又はシステムを幅広く表す。コンピューティングシステム６１０の例としては、非限定的に、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、ハンドヘルドデバイス、又は他の任意のコンピューティングシステム若しくはデバイスが挙げられる。その最も基本的な構成において、コンピューティングシステム６１０は、少なくとも１つのプロセッサ６１４及びシステムメモリ６１６を含んでもよい。
【００４４】
プロセッサ６１４は、データの処理又は命令の解釈及び実行が可能な任意のタイプ若しくは形式の物理的処理ユニット（例えば、ハードウェア実装型中央処理ユニット）を、一般に表す。特定の実施形態では、プロセッサ６１４は、ソフトウェアアプリケーション又はモジュールから命令を受信してもよい。これらの命令は、プロセッサ６１４に、本明細書において記載及び／又は図示される例示的な実施形態のうちの１つ以上の機能を実施させてもよい。
【００４５】
システムメモリ６１６は、一般に、データ及び／又は他のコンピュータ可読命令を格納することができる任意のタイプ若しくは形態の揮発性又は不揮発性記憶デバイスを表す。システムメモリ６１６の例としては、非限定的に、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、又は他の任意の好適なメモリデバイスが挙げられる。必須ではないが、特定の実施形態では、コンピューティングシステム６１０は、揮発性メモリユニット（例えば、システムメモリ６１６など）、及び不揮発性記憶デバイス（例えば、詳細に後述するような、一次記憶デバイス６３２など）の両方を含み得る。一実施例では、図１のモジュール１０２のうち１つ以上がシステムメモリ６１６にロードされ得る。
【００４６】
特定の実施形態では、例示的なコンピューティングシステム６１０は、また、プロセッサ６１４及びシステムメモリ６１６に加えて、１つ以上の構成要素又は要素を含んでもよい。例えば、図６に示されるように、コンピューティングシステム６１０は、メモリコントローラ６１８、入力／出力（Ｉ／Ｏ）コントローラ６２０、及び通信インターフェース６２２を含んでもよいが、それらはそれぞれ通信基盤６１２を介して相互接続されてもよい。通信基盤６１２は、一般に、コンピューティングデバイスの１つ以上の構成要素間の通信を容易にすることができる、任意のタイプ又は形態の基盤を表す。通信基盤６１２の例としては、非限定的に、通信バス（産業標準アーキテクチャ（ＩＳＡ）、周辺装置相互接続（ＰＣＩ）、ＰＣＩエクスプレス（ＰＣＩｅ）、又は類似のバスなど）、及びネットワークが挙げられる。
【００４７】
メモリコントローラ６１８は、一般に、メモリ若しくはデータを扱うこと、又はコンピューティングシステム６１０の１つ以上の構成要素間の通信を制御することが可能な、任意のタイプ又は形態のデバイスを表す。例えば、特定の実施形態では、メモリコントローラ６１８は、通信基盤６１２を介して、プロセッサ６１４、システムメモリ６１６、及びＩ／Ｏコントローラ６２０の間の通信を制御してもよい。
【００４８】
Ｉ／Ｏコントローラ６２０は、一般に、コンピューティングデバイスの入出力機能を調整及び／又は制御することが可能な、任意のタイプ又は形態のモジュールを表す。例えば、特定の実施形態では、Ｉ／Ｏコントローラ６２０は、プロセッサ６１４、システムメモリ６１６、通信インターフェース６２２、ディスプレイアダプタ６２６、入力インターフェース６３０、及び記憶インターフェース６３４など、コンピューティングシステム６１０の１つ以上の要素間におけるデータの転送を制御し、又はそれを容易にし得る。
【００４９】
通信インターフェース６２２は、例示的なコンピューティングシステム６１０と１つ以上の追加のデバイスとの間の通信を容易にすることが可能な、任意のタイプ又は形態の通信デバイス又はアダプタを幅広く表す。例えば、特定の実施形態では、通信インターフェース６２２は、コンピューティングシステム６１０と、追加のコンピューティングシステムを含む私設又は公衆ネットワークとの間の通信を容易にし得る。通信インターフェース６２２の例としては、非限定的に、有線ネットワークインターフェース（ネットワークインターフェースカードなど）、無線ネットワークインターフェース（無線ネットワークインターフェースカードなど）、モデム、及び他の任意の好適なインターフェースが挙げられる。少なくとも１つの実施形態では、通信インターフェース６２２は、インターネットなどのネットワークへの直接リンクを介して、リモートサーバへの直接接続を提供し得る。通信インターフェース６２２はまた、例えば、ローカルエリアネットワーク（イーサネット（登録商標）ネットワークなど）、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラー電話接続、衛星データ接続、又は他の任意の好適な接続を通して、リモートサーバへの接続を間接的に提供し得る。
【００５０】
特定の実施形態では、通信インターフェース６２２はまた、外部バス又は通信チャネルを介して、コンピューティングシステム６１０と１つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成された、ホストアダプタを表し得る。ホストアダプタの例としては、非限定的に、小型コンピュータシステムインターフェース（ＳＣＳＩ）ホストアダプタ、ユニバーサルシリアルバス（ＵＳＢ）ホストアダプタ、米国電気電子学会（ＩＥＥＥ）１３９４ホストアダプタ、アドバンストテクノロジーアタッチメント（ＡＴＡ）、パラレルＡＴＡ（ＰＡＴＡ）、シリアルＡＴＡ（ＳＡＴＡ）、及び外部ＳＡＴＡ（ｅＳＡＴＡ）ホストアダプタ、ファイバーチャネルインターフェースアダプタ、イーサネット（登録商標）アダプタなどが挙げられる。通信インターフェース６２２はまた、コンピューティングシステム６１０が分散型又はリモートコンピューティングに関与することを可能にし得る。例えば、通信インターフェース６２２は、実行のためにリモートデバイスから命令を受信、又はリモートデバイスに命令を送信し得る。
【００５１】
図６に示すように、コンピューティングシステム６１０はまた、ディスプレイアダプタ６２６を介して通信基盤６１２に連結される少なくとも１つのディスプレイデバイス６２４を含み得る。ディスプレイデバイス６２４は、ディスプレイアダプタ６２６によって転送される情報を視覚的に表示することができる、任意のタイプ若しくは形態のデバイスを、一般に表す。同様に、ディスプレイアダプタ６２６は、ディスプレイデバイス６２４に表示するために、通信基盤６１２から（又は当該技術分野において既知であるように、フレームバッファから）グラフィックス、テキスト、及び他のデータを転送するように構成された、任意のタイプ若しくは形態のデバイスを、一般に表す。
【００５２】
図６に示すように、例示的なコンピューティングシステム６１０はまた、入力インターフェース６３０を介して通信基盤６１２に連結される少なくとも１つの入力デバイス６２８を含み得る。入力デバイス６２８は、コンピュータ又は人間のいずれかが生成した入力を、例示的なコンピューティングシステム６１０に提供することができる、任意のタイプ若しくは形態の入力デバイスを、一般に表す。入力デバイス６２８の例としては、非限定的に、キーボード、ポインティングデバイス、音声認識デバイス、又は他の任意の入力デバイスが挙げられる。
【００５３】
図６に示すように、例示的なコンピューティングシステム６１０はまた、記憶インターフェース６３４を介して通信基盤６１２に連結される、一次記憶デバイス６３２及びバックアップ記憶デバイス６３３を含み得る。記憶デバイス６３２及び６３３は、一般に、データ及び／又は他のコンピュータ可読命令を格納することができる、任意のタイプ若しくは形態の記憶デバイス又は媒体を表す。例えば、記憶デバイス６３２及び６３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、ソリッドステートドライブ、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどであり得る。格納インターフェース６３４は、一般に、格納デバイス６３２及び６３３とコンピューティングシステム６１０の他の構成要素との間でデータを転送するための、任意のタイプ若しくは形態のインターフェース又はデバイスを表す。
【００５４】
特定の実施形態では、記憶デバイス６３２及び６３３は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を格納するように構成された取外し可能な記憶ユニットから読み取る、及び／又はそれに書き込むように構成され得る。好適な取外し可能な記憶ユニットの例としては、非限定的に、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられる。記憶デバイス６３２及び６３３はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令が、コンピューティングシステム６１０にロードされることを可能にする、他の同様の構造体又はデバイスを含み得る。例えば、記憶デバイス６３２及び６３３は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み取るように、及びこれを書き込むように構成され得る。記憶デバイス６３２及び６３３はまた、コンピューティングシステム６１０の一部であってもよく、又は他のインターフェースシステムを介してアクセスされる別個のデバイスであってもよい。
【００５５】
他の多くのデバイス又はサブシステムが、コンピューティングシステム６１０に接続され得る。反対に、図６に示す構成要素及びデバイスの全てが、本明細書に記載及び／又は図示される実施形態を実践するために存在する必要があるわけではない。上記で言及したデバイス及びサブシステムはまた、図６に示されるのとは異なる方法で相互接続され得る。コンピューティングシステム６１０はまた、任意の数のソフトウェア、ファームウェア、及び／又はハードウェアの構成を用い得る。例えば、本明細書で開示する例示的な実施形態の１つ以上は、コンピュータ可読媒体上で、コンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される）としてコード化されてもよい。「コンピュータ可読媒体」という用語は、本明細書で使用するとき、一般に、コンピュータ可読命令を格納又は保有することができる、任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、非限定的に、搬送波などの伝送型媒体、並びに磁気記憶媒体（例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク）、光学記憶媒体（例えば、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、及びブルーレイ（ＢＬＵ−ＲＡＹ（登録商標））ディスク）、電子記憶媒体（例えば、ソリッドステートドライブ及びフラッシュメディア）、及び他の分散システムなどの非一時的媒体が挙げられる。
【００５６】
コンピュータプログラムを包含するコンピュータ可読媒体は、コンピューティングシステム６１０にロードされ得る。コンピュータ可読媒体に格納されたコンピュータプログラムの全て又は一部は、次に、システムメモリ６１６に、及び／又は記憶デバイス６３２及び６３３の様々な部分に格納され得る。プロセッサ６１４によって実行されると、コンピューティングシステム６１０にロードされたコンピュータプログラムは、プロセッサ６１４に、本明細書に記載及び／又は図示される例示的な実施形態のうち１つ以上の機能を実施させ、及び／又はそれらを実施するための手段となり得る。追加的に又は代替案として、本明細書に記載及び／又は図示される例示的な実施形態の１つ以上は、ファームウェア及び／又はハードウェアに実装されてもよい。例えば、コンピューティングシステム６１０は、本明細書に開示される例示的な実施形態のうちの１つ以上を実装するように適合される、特定用途向け集積回路（ＡＳＩＣ）として構成されてもよい。
【００５７】
図７は、クライアントシステム７１０、７２０、及び７３０、並びにサーバ７４０及び７４５がネットワーク７５０に連結され得る、例示的なネットワークアーキテクチャ７００のブロック図である。上記に詳述したように、ネットワークアーキテクチャ７００の全て又は一部は、単独又は他の要素との組み合わせのいずれかで、本明細書に開示されるステップのうちの１つ以上（図３に示されるステップのうちの１つ以上など）を実施し得るが、及び／又はそれを実施するための手段となり得る。ネットワークアーキテクチャ７００の全て又は一部はまた、本開示に記載される他のステップ及び特徴を実施するのに使用され得るか、及び／又はそれを実施するための手段となり得る。
【００５８】
クライアントシステム７１０、７２０、及び７３０は、一般に、図６の例示的なコンピューティングシステム６１０など、任意のタイプ若しくは形態のコンピューティングデバイス又はシステムを表す。同様に、サーバ７４０及び７４５は、様々なデータベースサービスを提供し、及び／又は特定のソフトウェアアプリケーションを実行するように構成された、アプリケーションサーバ又はデータベースサーバなどのコンピューティングデバイス又はシステムを、一般に表す。ネットワーク７５０は、例えばイントラネット、ＷＡＮ、ＬＡＮ、ＰＡＮ、又はインターネットを含む、任意の電気通信又はコンピュータネットワークを、一般に表す。一実施例では、クライアントシステム７１０、７２０、及び／若しくは７３０、並びに／又はサーバ７４０及び／若しくは７４５は、図１からのシステム１００の全て、又は一部を含み得る。
【００５９】
図７に示すように、１つ以上の記憶デバイス７６０（１）〜（Ｎ）はサーバ７４０に直接取り付けられてもよい。同様に、１つ以上の記憶デバイス７７０（１）〜（Ｎ）は、サーバ７４５に直接取り付けられ得る。記憶デバイス７６０（１）〜（Ｎ）及び記憶デバイス７７０（１）〜（Ｎ）は、データ及び／又は他のコンピュータ可読命令を格納することができる、任意のタイプ若しくは形態の記憶デバイス又は媒体を、一般に表す。特定の実施形態では、記憶デバイス７６０（１）〜（Ｎ）及び記憶デバイス７７０（１）〜（Ｎ）は、ネットワークファイルシステム（ＮＦＳ）、サーバメッセージブロック（ＳＭＢ）、又は共通インターネットファイルシステム（ＣＩＦＳ）などの様々なプロトコルを使用して、サーバ７４０及び７４５と通信するように構成されたネットワーク接続ストレージ（ＮＡＳ）デバイスを表し得る。
【００６０】
サーバ７４０及び７４５はまた、ストレージエリアネットワーク（ＳＡＮ）ファブリック７８０に接続され得る。ＳＡＮファブリック７８０は、一般に、複数の格納デバイス間の通信を容易にすることが可能な、任意のタイプ若しくは形態のコンピュータネットワーク又はアーキテクチャを表す。ＳＡＮファブリック７８０は、サーバ７４０及び７４５と、複数の記憶デバイス７９０（１）〜（Ｎ）及び／又はインテリジェント記憶アレイ７９５との間の通信を容易にし得る。ＳＡＮファブリック７８０はまた、記憶デバイス７９０（１）〜（Ｎ）及びインテリジェント記憶アレイ７９５が、クライアントシステム７１０、７２０、及び７３０にローカルで取り付けられたデバイスとして現れるような方式で、ネットワーク７５０並びにサーバ７４０及び７４５を介して、クライアントシステム７１０、７２０、及び７３０と、記憶デバイス７９０（１）〜（Ｎ）及び／又はインテリジェント記憶アレイ７９５との間の通信を容易にし得る。記憶デバイス７６０（１）〜（Ｎ）及び記憶デバイス７７０（１）〜（Ｎ）と同様に、記憶デバイス７９０（１）〜（Ｎ）及びインテリジェント記憶アレイ７９５は、データ及び／又は他のコンピュータ可読命令を格納することができる任意のタイプ若しくは形態の記憶デバイス又は媒体を、一般に表す。
【００６１】
特定の実施形態では、また図６の例示的なコンピューティングシステム６１０を参照すると、図６の通信インターフェース６２２などの通信インターフェースは、それぞれのクライアントシステム７１０、７２０、及び７３０とネットワーク７５０との間の接続を提供するために使用され得る。クライアントシステム７１０、７２０、及び７３０は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ７４０又は７４５上の情報にアクセスすることが可能であり得る。かかるソフトウェアは、クライアントシステム７１０、７２０、及び７３０が、サーバ７４０、サーバ７４５、記憶デバイス７６０（１）〜（Ｎ）、記憶デバイス７７０（１）〜（Ｎ）、記憶デバイス７９０（１）〜（Ｎ）、又はインテリジェント記憶アレイ７９５によってホストされるデータにアクセスすることを可能にし得る。図７は、データを交換するために（インターネットなどの）ネットワークを使用することを示しているが、本明細書に記載及び／又は図示される実施形態は、インターネット又は任意の特定のネットワークベースの環境に限定されない。
【００６２】
少なくとも１つの実施形態では、本明細書に開示される例示的な実施形態のうち１つ以上の全て又は一部は、コンピュータプログラムとしてコード化され、サーバ７４０、サーバ７４５、記憶デバイス７６０（１）〜（Ｎ）、記憶デバイス７７０（１）〜（Ｎ）、記憶デバイス７９０（１）〜（Ｎ）、インテリジェント記憶アレイ７９５、又はこれらの任意の組み合わせ上にロードされ、これらによって実行され得る。本明細書に開示される例示的な実施形態のうち１つ以上の全て又は一部はまた、コンピュータプログラムとしてコード化され、サーバ７４０に格納され、サーバ７４５によって作動し、ネットワーク７５０上でクライアントシステム７１０、７２０、及び７３０に配信されてもよい。
【００６３】
前述のように、コンピューティングシステム６１０、及び／又はネットワークアーキテクチャ７００の１つ以上の構成要素は、単独で又は他の要素と組み合わせのいずれかで、アプリケーションネットワークアクティビティの自動分類のための例示的な方法の１つ以上のステップを実施してもよく、かつ／又は実施するための手段であってもよい。
【００６４】
前述の開示は、特定のブロック図、フローチャート、及び実施例を使用して様々な実施形態を記載しているが、本明細書に記載及び／又は図示されるそれぞれのブロック図の構成要素、フローチャートのステップ、動作、及び／又は構成要素は、個別にかつ／又は集合的に、広範なハードウェア、ソフトウェア、又はファームウェア（若しくはそれらの任意の組み合わせ）の構成を使用して実現されてもよい。それに加えて、同じ機能性を達成するように他の多くのアーキテクチャを実現することができるので、他の構成要素内に包含される構成要素のあらゆる開示は、本質的に例示と見なされるべきである。
【００６５】
一部の実施例では、図１の例示的なシステム１００の全て又は一部は、クラウドコンピューティング環境又はネットワークベースの環境の一部を表してもよい。クラウドコンピューティング環境は、インターネットを介して、様々なサービス及びアプリケーションを提供してもよい。これらのクラウドベースのサービス（例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしての基盤など）は、ウェブブラウザ又は他のリモートインターフェースを通してアクセス可能であってもよい。本明細書に記載する様々な機能は、リモートデスクトップ環境又は他の任意のクラウドベースのコンピューティング環境を通して提供されてもよい。
【００６６】
様々な実施形態では、図１の例示的なシステム１００の全て又は一部は、クラウドベースのコンピューティング環境内におけるマルチテナンシーを容易にしてもよい。換言すれば、本明細書に記載するソフトウェアモジュールは、本明細書に記載する機能の１つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム（例えば、サーバ）を構成してもよい。例えば、本明細書に記載するソフトウェアモジュールの１つ以上は、２つ以上のクライアント（例えば、顧客）がサーバ上で作動しているアプリケーションを共有するのを可能にするように、サーバをプログラムしてもよい。このようにプログラムされたサーバは、複数の顧客（即ち、テナント）の間で、アプリケーション、オペレーティングシステム、処理システム、及び／又は記憶システムを共有してもよい。本明細書に記載するモジュールの１つ以上はまた、ある顧客が別の顧客のデータ及び／又は設定情報にアクセスできないように、顧客ごとにマルチテナントアプリケーションのデータ及び／又は設定情報を分割してもよい。
【００６７】
様々な実施形態によれば、図１の例示的なシステム１００の全て又は一部は仮想環境内で実現されてもよい。例えば、本明細書に記載するモジュール及び／又はデータは、仮想機械内で常駐及び／又は実行してもよい。本明細書で使用するとき、「仮想機械」という用語は、一般に、仮想機械マネージャ（例えば、ハイパーバイザ）によってコンピューティングハードウェアから抽出される、任意のオペレーティングシステム環境を指す。それに加えて、又は別の方法として、本明細書に記載するモジュール及び／又はデータは、仮想化層内で常駐及び／又は実行してもよい。本明細書で使用するとき、「仮想化層」という用語は、一般に、オペレーティングシステム環境にオーバーレイする、並びに／あるいはそこから抽出される、任意のデータ層及び／又はアプリケーション層を指す。仮想化層は、基礎となる基本オペレーティングシステムの一部であるかのように仮想化層を提示する、ソフトウェア仮想化ソリューション（例えば、ファイルシステムフィルタ）によって管理されてもよい。例えば、ソフトウェア仮想化ソリューションは、最初に基本ファイルシステム及び／又はレジストリ内の場所に方向付けられる呼び出しを、仮想化層内の場所にリダイレクトしてもよい。
【００６８】
一部の実施例では、図１の例示的なシステム１００の全て又は一部は、モバイルコンピューティング環境の一部を表してもよい。モバイルコンピューティング環境は、携帯電話、タブレットコンピュータ、電子ブックリーダー、携帯情報端末、ウェアラブルコンピューティングデバイス（例えば、ヘッドマウントディスプレイを備えたコンピューティングデバイス、スマートウォッチなど）などを含む、広範なモバイルコンピューティングデバイスによって実現されてもよい。一部の実施例において、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間での１つのみのフォアグラウンドアプリケーションの提示、リモート管理特性、タッチスクリーン特性、位置及び移動データ（例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される）、システムレベルの構成への修正を制限する、及び／又は第３者のソフトウェアが他のアプリケーションの挙動を検査する能力を限定する制限されたプラットフォーム、アプリケーションのインストールを（例えば、認可されたアプリケーションストアからのみ生じるように）制限する制御などを含む、１つ以上の個別の特性を有することができる。本明細書で説明される様々な機能は、モバイルコンピューティング環境に対して提供され得る、及び／又はモバイルコンピューティング環境と相互作用し得る。
【００６９】
それに加えて、図１の例示的なシステム１００の全て又は一部は、情報管理のための１つ以上のシステムの部分を表してもよく、それと相互作用してもよく、それによって生成されるデータを消費してもよく、かつ／又はそれによって消費されるデータを生成してもよい。本明細書で使用するとき、「情報管理」という用語は、データの保護、組織化、及び／又は記憶を指してもよい。情報管理のためのシステムの例としては、非限定的に、記憶システム、バックアップシステム、アーカイブシステム、複製システム、高可用性システム、データ検索システム、仮想化システムなどを挙げることができる。
【００７０】
一部の実施形態では、図１の例示的なシステム１００の全て又は一部は、情報セキュリティのための１つ以上のシステムの部分を表してもよく、それによって保護されるデータを生成してもよく、かつ／又はそれと通信してもよい。本明細書で使用するとき、「情報セキュリティ」という用語は、保護されたデータに対するアクセスの制御を指してもよい。情報セキュリティのためのシステムの例としては、非限定的に、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、本人認証システム、アクセス制御システム、暗号化システム、ポリシー遵守システム、侵入検出及び防止システム、電子証拠開示システムなどを挙げることができる。
【００７１】
一部の実施例によれば、図１の例示的なシステム１００の全て又は一部は、エンドポイントセキュリティのための１つ以上のシステムの部分を表してもよく、それと通信してもよく、かつ／又はそれから保護を受けてもよい。本明細書で使用するとき、「エンドポイントセキュリティ」という用語は、不正及び／若しくは違法な使用、アクセス、並びに／又は制御からのエンドポイントシステムの保護を指してもよい。エンドポイント保護のためのシステムの例としては、非限定的に、アンチマルウェアシステム、ユーザ認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどを挙げることができる。
【００７２】
本明細書に記載及び／又は図示されるプロセスパラメータ及びステップの順序は、単なる例として与えられるものであり、所望に応じて変更することができる。例えば、本明細書に図示及び／又は記載されるステップは特定の順序で図示又は考察されることがあるが、これらのステップは、必ずしも図示又は考察される順序で実施される必要はない。本明細書に記載及び／又は図示される様々な例示的な方法はまた、本明細書に記載若しくは図示されるステップの１つ以上を省略するか、又は開示されるものに加えて追加のステップを含んでもよい。
【００７３】
様々な実施形態を、完全に機能的なコンピューティングシステムの文脈で本明細書に記載及び／又は図示してきたが、これらの例示的な実施形態の１つ以上は、実際に配布を実施するのに使用されるコンピュータ可読媒体の特定のタイプにかかわらず、様々な形態のプログラム製品として配布されてもよい。本明細書に開示される実施形態はまた、特定のタスクを実施するソフトウェアモジュールを使用して実現されてもよい。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体又はコンピューティングシステムに格納されてもよい、スクリプト、バッチ、若しくは他の実行可能ファイルを含んでもよい。一部の実施形態では、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態の１つ以上を実施するようにコンピューティングシステムを構成してもよい。
【００７４】
それに加えて、本明細書に記載するモジュールの１つ以上は、データ、物理的デバイス、及び／又は物理的デバイスの表現を、１つの形態から別の形態へと変換してもよい。例えば、本明細書に列挙されたモジュールのうちの１つ以上は、変換されるネットワークストリームを識別し、ネットワークストリームからヘッダ情報を抽出し、ヘッダからキーワードの集合を抽出し、キーワードの集合をネットワークストリームの分類に変換し、アプリケーションによって生成されたネットワークアクティビティを表す状態プロファイルに分類を適用し、分類の結果をデータベースに格納し、分類の結果をマルウェア検出システムに提供し、かつ／又は分類の結果をネットワークトラフィック制御システムに提供し得る。それに加えて、又は別の方法として、本明細書に列挙されるモジュールの１つ以上は、コンピューティングデバイス上で実行し、コンピューティングデバイスにデータを格納し、並びに／あるいは別の方法でコンピューティングデバイスと相互作用することによって、プロセッサ、揮発性メモリ、不揮発性メモリ、及び／又は物理的コンピューティングデバイスの他の任意の部分を、１つの形態から別の形態へと変換してもよい。
【００７５】
上述の記載は、本明細書に開示される例示的な実施形態の様々な態様を他の当業者が最良に利用するのを可能にするために提供されてきた。この例示的な記載は、網羅的であることを意図するものではなく、又は開示される任意の正確な形態に限定することを意図するものではない。本開示の趣旨及び範囲から逸脱することなく、多くの修正及び変形が可能である。本明細書に開示される実施形態は、あらゆる点で例示的であり、限定的ではないものと見なされるべきである。本開示の範囲を決定する際に、添付の特許請求の範囲及びそれらの等価物を参照するべきである。
【００７６】
別途記載のない限り、「〜に接続される」及び「〜に連結される」という用語（並びにそれらの派生語）は、本明細書及び特許請求の範囲で使用するとき、直接的接続及び間接的接続（即ち、他の要素若しくは構成要素を介する）の両方を許容するものとして解釈されるものである。それに加えて、「ａ」又は「ａｎ」という用語は、本明細書及び特許請求の範囲で使用するとき、「〜のうち少なくとも１つ」を意味するものとして解釈されるものである。最後に、簡潔にするため、「含む」及び「有する」という用語（並びにそれらの派生語）は、本明細書及び特許請求の範囲で使用するとき、「備える」という単語と互換性があり、同じ意味を有する。
【図１】
2019512133.tif 000003
【図２】
2019512133.tif 000004
【図３】
2019512133.tif 000005
【図４】
2019512133.tif 000006
【図５】
2019512133.tif 000007
【図６】
2019512133.tif 000008
【図７】
2019512133.tif 000009
【手続補正書】
【提出日】平成30年8月27日(2018.8.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アプリケーションネットワークアクティビティの自動分類のためのコンピュータ実装方法であって、前記方法の少なくとも一部が少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法は、
語彙キーワードを含む語彙辞書を構築することであって、所定の語彙キーワードを含むヘッダを有するネットワークストリームが、前記語彙辞書内の前記所定の語彙キーワードに関連付けられたアクティビティタイプの通信を表す、ことと、
ネットワークの観点で、アプリケーションとサーバとの間の通信を表すネットワークストリームを識別することと、
前記語彙辞書を利用する語彙解析を介して、前記ネットワークストリームの１つ以上のヘッダフィールドからキーワードの集合を抽出することと、
前記ネットワークストリームの前記ヘッダフィールドから抽出された前記キーワードの集合内のそれぞれのキーワードに関連付けられたアクティビティタイプに基づいて、前記ネットワークストリームに少なくとも１つのアクティビティタイプを割り当てることと、を含む、方法。
【請求項２】
前記語彙辞書を構築することが、
サンドボックス環境において既知のアプリケーションを実行することと、
前記アプリケーション上で動作を実施することにより、前記既知のアプリケーションに生成されたネットワークストリームを生成させることと、
前記生成されたネットワークストリームの前記ヘッダから少なくとも１つの観測されたキーワードを抽出することと、
前記観測されたキーワードを、前記既知のアプリケーションに前記生成されたネットワークストリームを生成させた前記動作に関連付けることと、を含む、請求項１に記載の方法。
【請求項３】
前記語彙辞書を構築することが、前記語彙辞書にユーザ定義の語彙キーワードを追加することを含む、請求項１に記載の方法。
【請求項４】
前記語彙辞書を構築することが、語彙キーワードとアクティビティタイプとのユーザ定義の関連付けを前記語彙辞書に追加することを含む、請求項１に記載の方法。
【請求項５】
前記アプリケーションによって生成された複数のネットワークストリームの前記アクティビティタイプを特定の時点で記述する前記アプリケーションの状態プロファイルに、前記ネットワークストリームに割り当てられた前記アクティビティタイプを追加することを更に含む、請求項１に記載の方法。
【請求項６】
前記ネットワークストリームに前記アクティビティタイプを割り当てることが、前記ネットワークストリームの前記ヘッダフィールドから抽出された複数の特定のキーワードの存在に基づいて、前記ネットワークストリームに特定のアクティビティタイプを割り当てることを含む、請求項１に記載の方法。
【請求項７】
前記１つ以上のヘッダフィールドから前記キーワードの集合を抽出することが、前記ヘッダフィールドをトークン化することを含む、請求項１に記載の方法。
【請求項８】
ネットワークトラフィックポリシーを施行するネットワーク管理システムに、前記ネットワークストリームに割り当てられた前記アクティビティタイプを提供することを更に含む、請求項１に記載の方法。
【請求項９】
コンピューティングシステムをマルウェアから保護するソフトウェアセキュリティシステムに、前記ネットワークストリームに割り当てられた前記アクティビティタイプを提供することを更に含む、請求項１に記載の方法。
【請求項１０】
アプリケーションネットワークアクティビティの自動分類のためのシステムであって、前記システムは、
語彙キーワードを含む語彙辞書を構築する、メモリに格納された構築する手段であって、所定の語彙キーワードを含むヘッダを有するネットワークストリームが、前記語彙辞書内の前記所定の語彙キーワードに関連付けられたアクティビティタイプの通信を表す、構築する手段と、
ネットワークの観点で、アプリケーションとサーバとの間の通信を表すネットワークストリームを識別する、メモリに格納された識別する手段と、
前記語彙辞書を利用する語彙解析を介して、前記ネットワークストリームの１つ以上のヘッダフィールドからキーワードの集合を抽出する、メモリに格納された抽出する手段と、
前記ネットワークストリームの前記ヘッダフィールドから抽出された前記キーワードの集合内のそれぞれのキーワードに関連付けられたアクティビティタイプに基づいて、前記ネットワークストリームに少なくとも１つのアクティビティタイプを割り当てる、メモリに格納された分類する手段と、
前記構築する手段、前記識別する手段、前記抽出する手段、及び前記分類する手段を実行するように構成されている、少なくとも１つの物理的プロセッサと、
を備える、システム。
【請求項１１】
前記構築する手段が、前記語彙辞書を、
サンドボックス環境において既知のアプリケーションを実行することと、
前記アプリケーション上で動作を実施することにより、前記既知のアプリケーションに生成されたネットワークストリームを生成させることと、
前記生成されたネットワークストリームの前記ヘッダから少なくとも１つの観測キーワードを抽出することと、
前記観測されたキーワードを、前記既知のアプリケーションに前記生成されたネットワークストリームを生成させた前記動作に関連付けることと、によって構築する、請求項１０に記載のシステム。
【請求項１２】
前記構築する手段が、ユーザ定義の語彙キーワードを前記語彙辞書に追加することによって、前記語彙辞書を構築する、請求項１０に記載のシステム。
【請求項１３】
前記構築する手段が、語彙キーワードとアクティビティタイプとのユーザ定義の関連付けを前記語彙辞書に追加することによって、前記語彙辞書を構築する、請求項１０に記載のシステム。
【請求項１４】
前記分類する手段が、前記アプリケーションによって生成された複数のネットワークストリームの前記アクティビティタイプを特定の時点で記述する前記アプリケーションの状態プロファイルに、前記ネットワークストリームに割り当てられた前記アクティビティタイプを追加する、請求項１０に記載のシステム。
【請求項１５】
前記分類する手段が、前記ネットワークストリームの前記ヘッダフィールドから抽出された複数の特定のキーワードの存在に基づいて、前記ネットワークストリームに特定のアクティビティタイプを割り当てることによって、前記アクティビティタイプを前記ネットワークストリームに割り当てる、請求項１０に記載のシステム。
【国際調査報告】
2019512133.tif 000010
2019512133.tif 000011