(57)【特許請求の範囲】
【請求項１】
ネットワークのダイナミックアクセス制御リストを生成するための方法であって、
プロセッサによって、
アクセス制御リスト（ＡＣＬ）の要求を受信するステップと、
前記ＡＣＬの要求を受信することに応答して、
複数のリソース記述を第１のデータ送信装置から受信するステップとを含み、前記複数のリソース記述の各々は、ネットワークの複数のコンピューティング・デバイスに関連付けられ、各リソース記述は、
コンピューティング・デバイスのインターネットプロトコル（Ｉｎｔｅｒｎｅｔ
Ｐｒｏｔｏｃｏｌ：ＩＰ）定義に対応する情報、
前記コンピューティング・デバイスの所望のアクセスに対応する情報、および
前記コンピューティング・デバイスの許可されたアクセスに対応する情報のうちの１つ以上を含み、前記方法は、さらに、前記プロセッサによって、前記ＡＣＬの要求を受信することに応答して、
前記ネットワークについてのポリシー実行ポイント（ＰＥＰ）グラフを第２のデータ送信装置から受信するステップと、
前記ＡＣＬを生成するために前記複数のリソース記述および前記ＰＥＰグラフを利用するステップとを含み、前記ＡＣＬは、前記ネットワークのＰＥＰを通過するネットワーク・トラフィックを制御するための少なくとも１つのポリシーを含み、前記ネットワークは、１つ以上のＰＥＰを含む、方法。
【請求項２】
前記ＡＣＬの要求を受信するステップは、
前記ネットワークの前記複数のコンピューティング・デバイスの１つ以上のポートと通信を送受信する、前記ネットワークのＰＥＰ、
前記ネットワークのコンピューティング・デバイス、または
ユーザに関連付けられたコンピューティング・デバイス、のうちの１つ以上から前記要求を受信するステップを含む、請求項１に記載の方法。
【請求項３】
前記ＡＣＬの要求を受信するステップは、
第２コンピューティング・デバイスに届けられるデータパケットを第１コンピューティング・デバイスから前記ＰＥＰにおいて受信することに応答して、前記ネットワークのＰＥＰから前記要求を受信するステップを含む、請求項２に記載の方法。
【請求項４】
前記ＡＣＬを前記ＰＥＰにおいて受信するステップと、
前記データパケットが前記第２コンピューティング・デバイスに届けられることを前記少なくとも１つのポリシーが許可するかどうかを判断するために、前記ＡＣＬを前記ＰＥＰにおいて構文解析するステップと、
前記データパケットをブロックするまたは前記第２コンピューティング・デバイスに届けるかどうかを前記ＰＥＰにおいて決定するために、前記構文解析の結果を利用し、これに応答して、前記データパケットをブロックするまたは届けるステップとをさらに含む、請求項３に記載の方法。
【請求項５】
前記ＡＣＬを生成するために前記複数のリソース記述および前記ＰＥＰグラフを利用するステップは、
前記ネットワークの前記コンピューティング・デバイス間の複数のパスを特定するステップを含み、前記複数のパスの各々は、前記ＰＥＰグラフ上の少なくとも１つのＰＥＰを通過し、前記利用するステップは、さらに、
前記複数のパスのサブセットを破棄してＰＥＰベクトルを生成するために、前記リソース記述を利用するステップと、
前記ＡＣＬを生成するために前記ＰＥＰベクトルを利用するステップとを含む、請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記複数のパスのサブセットを破棄するために前記リソース記述を利用するステップは、前記複数のパスの各々について、
前記複数のパスの各々について、送信元コンピューティング・デバイスを特定するステップと、
前記複数のパスの各々について、宛先コンピューティング・デバイスを特定するステップと、
ネットワーク・トラフィックがパス上で許可されているかどうかを判断するために、前記送信元コンピューティング・デバイスの所望のアクセスに対応する情報、および前記宛先コンピューティング・デバイスの許可されたアクセスに対応する情報を利用するステップと、
ネットワーク・トラフィックが許可されていない場合、前記パスを破棄するステップとを含む、請求項５に記載の方法。
【請求項７】
前記コンピューティング・デバイスのＩＰ定義に対応する前記情報は、前記コンピューティング・デバイスのＩＰアドレス、ドメイン名、またはＭＡＣアドレス、のうちの１つ以上についてのデータ送信装置へのクエリを含む、請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記コンピューティング・デバイスの所望のアクセスに対応する前記情報は、
前記コンピューティング・デバイスが接続したい１つ以上の宛先コンピューティング・デバイスの識別情報、
前記コンピューティング・デバイスが接続したい前記１つ以上の宛先コンピューティング・デバイスの１つ以上のサービスの識別情報、
前記１つ以上のサービスに対応する許可されたプロトコル情報、または
前記１つ以上のサービスに対応する許可されたポート情報、のうちの１つ以上を含む、請求項１から７のいずれか１項に記載の方法。
【請求項９】
前記コンピューティング・デバイスの許可されたアクセスに対応する前記情報は、
前記コンピューティング・デバイスによって提供される１つ以上のサービスの識別情報、
前記コンピューティング・デバイスがアクセス許可を与える１つ以上の送信元コンピューティング・デバイスの識別情報、
前記提供された１つ以上のサービスに対応する許可されたプロトコル情報、
前記提供された１つ以上のサービスに対応する許可されたポート情報、または
前記提供された１つ以上のサービスの各々の期限、のうちの１つ以上を含む、請求項１から８のいずれか１項に記載の方法。
【請求項１０】
前記ＡＣＬの要求は、前記データパケットからの情報をさらに含み、前記データパケットからの情報は、
送信元コンピューティング・デバイスのＩＰアドレス、
宛先コンピューティング・デバイスのＩＰアドレス、
ＭＡＣアドレス、
タイムスタンプ、
前記ＰＥＰの識別子、
プロトコル情報、
送信元コンピューティング・デバイスポート情報、または
宛先コンピューティング・デバイスポート情報、のうちの１つ以上を含む、請求項３に記載の方法。
【請求項１１】
ネットワークのアクセス制御リストを動的に生成するためのシステムであって、
複数のコンピューティング・デバイスと、
複数のポイントポリシー実行ポイント（ＰＥＰ）を有するネットワークと、
前記ネットワークを介して前記複数のコンピューティング・デバイスと通信中のプロセッサと、
プログラミング命令を含むコンピュータ読み取り可能な媒体とを含み、前記プログラミング命令は、前記プロセッサによって実行されると、前記プロセッサに、
アクセス制御リスト（ＡＣＬ）の要求を受信させ、
前記ＡＣＬの要求を受信することに応答して、
第１のデータ送信装置から複数のリソース記述を受信させ、前記複数のリソース記述の各々は、前記複数のコンピューティング・デバイスに関連付けられ、各リソース記述は、
コンピューティング・デバイスのインターネットプロトコル（ＩＰ）定義に対応する情報、
前記コンピューティング・デバイスの所望のアクセスに対応する情報、および
前記コンピューティング・デバイスの許可されたアクセスに対応する情報のうちの１つ以上を含み、前記プロセッサに、さらに、前記ＡＣＬの要求を受信することに応答して、
第２のデータ送信装置から前記ネットワークについてのＰＥＰグラフを受信させ、
前記ＡＣＬを生成するために、前記複数のリソース記述および前記ＰＥＰグラフを利用させるように構成され、前記ＡＣＬは、前記ネットワークのＰＥＰを通過するネットワーク・トラフィックを制御するための少なくとも１つのポリシーを含み、前記ネットワークは、１つ以上のＰＥＰを含む、システム。
【請求項１２】
前記プロセッサに前記ＡＣＬの要求を受信させるように構成された前記プログラミング命令は、
前記ネットワークの前記複数のコンピューティング・デバイスの１つ以上のポートと通信を送受信する、前記ネットワークのＰＥＰ、
前記ネットワークのコンピューティング・デバイス、または
ユーザに関連付けられたコンピューティング・デバイス、のうちの１つ以上から前記要求を前記プロセッサに受信させるように構成されたプログラミング命令を含む、請求項１１に記載のシステム。
【請求項１３】
前記プロセッサに前記ＡＣＬの要求を受信させるように構成された前記プログラミング命令は、前記プロセッサに、第２コンピューティング・デバイスに届けられるデータパケットを第１コンピューティング・デバイスから前記ＰＥＰにおいて受信することに応答して、前記ネットワークのＰＥＰから前記要求を受信させるように構成されたプログラミング命令を含む、請求項１２に記載のシステム。
【請求項１４】
追加プログラミング命令をさらに含み、前記追加プログラミング命令は、前記プロセッサによって実行されると、前記プロセッサに、
前記ＡＣＬを前記ＰＥＰにおいて受信させ、
前記データパケットが前記第２コンピューティング・デバイスに届けられることを前記少なくとも１つのポリシーが許可するかどうかを判断するために、前記ＡＣＬを前記ＰＥＰにおいて構文解析させ、
前記データパケットをブロックするまたは前記第２コンピューティング・デバイスに届けるかどうかを前記ＰＥＰにおいて決定するために、前記構文解析の結果を利用させ、これに応答して、前記データパケットをブロックまたは届けさせるように構成される、請求項１３に記載のシステム。
【請求項１５】
前記ＡＣＬを生成するために前記複数のリソース記述および前記ＰＥＰグラフを前記プロセッサに利用させるように構成された前記プログラミング命令は、前記プロセッサに、
前記ネットワークの前記コンピューティング・デバイス間の複数のパスを特定させ、前記複数のパスの各々は、前記ＰＥＰグラフ上の少なくとも１つのＰＥＰを通過し、前記プロセッサに、さらに、
前記複数のパスのサブセットを破棄してＰＥＰベクトルを生成するために、前記リソース記述を利用させ、
前記ＡＣＬを生成するために前記ＰＥＰベクトルを利用させるように構成されたプログラミング命令を含む、請求項１１から１４のいずれか１項に記載のシステム。
【請求項１６】
前記複数のパスのサブセットを破棄するために前記リソース記述を前記プロセッサに利用させるように構成された前記プログラミング命令は、前記複数のパスの各々について、前記プロセッサに、
前記複数のパスの各々について、送信元コンピューティング・デバイスを特定させ、
前記複数のパスの各々について、宛先コンピューティング・デバイスを特定させ、
ネットワーク・トラフィックがパス上で許可されているかどうかを判断するために、前記送信元コンピューティング・デバイスの所望のアクセスに対応する情報、および前記宛先コンピューティング・デバイスの許可されたアクセスに対応する情報を利用させ、
ネットワーク・トラフィックが許可されていない場合、前記パスを破棄させるように構成されたプログラミング命令を含む、請求項１５に記載のシステム。
【請求項１７】
前記コンピューティング・デバイスの前記ＩＰ定義に対応する前記情報は、前記コンピューティング・デバイスのＩＰアドレス、ドメイン名、またはＭＡＣアドレス、のうちの１つ以上についてのデータ送信装置へのクエリを含む、請求項１１から１６のいずれか１項に記載のシステム。
【請求項１８】
前記コンピューティング・デバイスの所望のアクセスに対応する前記情報は、
前記コンピューティング・デバイスが接続したい１つ以上の宛先コンピューティング・デバイスの識別情報、
前記コンピューティング・デバイスが接続したい前記１つ以上の宛先コンピューティング・デバイスの１つ以上のサービスの識別情報、
前記１つ以上のサービスに対応する許可されたプロトコル情報、または
前記１つ以上のサービスに対応する許可されたポート情報、のうちの１つ以上を含む、請求項１１から１７のいずれか１項に記載のシステム。
【請求項１９】
前記コンピューティング・デバイスの許可されたアクセスに対応する前記情報は、
前記コンピューティング・デバイスによって提供される１つ以上のサービスの識別情報、
前記コンピューティング・デバイスがアクセス許可を与える１つ以上の送信元コンピューティング・デバイスの識別情報、
前記提供された１つ以上のサービスに対応する許可されたプロトコル情報、
前記提供された１つ以上のサービスに対応する許可されたポート情報、または
前記提供された１つ以上のサービスの各々の期限、のうちの１つ以上を含む、請求項１１から１８のいずれか１項に記載のシステム。
【請求項２０】
前記ＡＣＬの要求は、前記データパケットからの情報をさらに含み、前記データパケットからの情報は、
送信元コンピューティング・デバイスのＩＰアドレス、
宛先コンピューティング・デバイスのＩＰアドレス、
ＭＡＣアドレス、
タイムスタンプ、
前記ＰＥＰの識別子、
プロトコル情報、
送信元コンピューティング・デバイスポート情報、または
宛先コンピューティング・デバイスポート情報、のうちの１つ以上を含む、請求項１３に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
関連出願および優先権主張
本願は、２０１６年３月２１日に出願された米国特許出願第１５／０７５，４５８号に基づく優先権を主張する。優先権出願のすべての開示内容を、引用により本明細書に援用する。
【０００２】
背景
ネットワーキングにおいて、ネットワーク・インターフェースへのデータの流れならびにネットワーク・インターフェースからのデータの流れを許可および制限するために、ネットワーク機器（ルータ、スイッチ、およびファイヤウォールなど）によってアクセス制御リスト（ＡＣＬ）が利用される。ＡＣＬは、どのユーザまたはシステムプロセスにオブジェクトへのアクセス権を与えてもよいか、および、所定のオブジェクトに対してどの動作を容認してよいかについて指定する。ＡＣＬがインターフェース上で設定されている場合、ネットワーク機器は、インターフェースを通過しているデータを解析し、ＡＣＬに記載されている基準と比較し、データの流れを許可または禁止する。ＡＣＬは、全体的に、不要なアドレスおよび／またはポートへのユーザおよび機器のアクセス、ならびに不要なアドレスおよび／またはポートからのユーザおよび機器へのアクセスを限定することによってインバウンド・トラフィックおよびアウトバウンド・トラフィックの両方を制御するように構成することができる。具体的には、その他の機器はパケットをフィルタリングすることができるが、ＡＣＬは、送られてきたパケットが転送されるかまたはブロックされるかを、通常、ルータのインターフェースにおいて制御することによって、ネットワーク・トラフィックをフィルタリングする。ＡＣＬ基準は、トラフィックの送信元アドレスもしくはトラフィックの宛先アドレス、ターゲットポート、またはプロトコル、またはそれらのうちの何らかの組み合わせであり得る。通常、インターネットプロトコル（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ：ＩＰ）アドレスは、ＩＰネットワーク上の送信元機器の識別子として機能する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
旧来のアクセス制御システムは、手動で保守および／または設定されたＡＣＬを利用する。しかしながら、大規模なＩＰネットワークは数万ものノードおよび数百ものルータならびにゲートウェイを有する可能性があることを考慮すると、ＡＣＬを手動で管理および作成することによって、ＡＣＬの数が多くなるため、このようなネットワークにとって多くの困難が生じる。さらに、特定のトラフィックの流れについてのＡＣＬ間の空間的関係は、ＡＣＬ管理チームにしか知られていない場合が多いため、旧来のネットワークＡＣＬは、２つの任意のセキュリティ領域間に孤立して存在する。これによって、手動でＡＣＬ変更を行う際、チームメンバが特定のトラフィックの流れが可能であることを忘れてしまう可能性があるため、エラーが発生する重大な機会が残されたままになってしまう。これに加えて、手動で設定されたＡＣＬは、ＡＣＬが守るように課せられたサービスまたは環境への明示的な接続を持たず、ＡＣＬの両側でのサービスの削除または追加は、ＡＣＬ自体に何ら影響がない。これらは重大なＡＣＬ管理の問題につながる。ＡＣＬ管理チームに気づかれていないと、特定のアクセス制御エントリがサービスの新しいセットによって超過して使用される可能性があるためである。
【０００４】
本開示は、上述の問題に対処するための、ダイナミックアクセス制御リストを自動的に作成するためのシステムおよび方法を開示する。
【課題を解決するための手段】
【０００５】
概要
実施形態において、ネットワークのアクセス制御リストを動的に生成するための方法（およびシステム）は、プロセッサがアクセス制御リスト（ＡＣＬ）の要求を受信するステップを含んでもよい。また、方法は、ＡＣＬの要求を受信することに応答して、複数のリソース記述を第１のデータ送信装置から受信するステップと、ネットワークについてのポリシー実行ポイント（ＰＥＰ）グラフを第２のデータ送信装置から受信するステップと、ＡＣＬを生成するために複数のリソース記述およびＰＥＰグラフを利用するステップとを含んでもよく、ＡＣＬは、ネットワークのＰＥＰによってネットワーク・トラフィックを制御するための少なくとも１つのポリシーを含み、ネットワークは、１つ以上のＰＥＰを含む。複数のリソース記述の各々は、ネットワークの複数のコンピューティング・デバイスと関連付けられてもよく、コンピューティング・デバイスのインターネットプロトコル（ＩＰ）定義に対応する情報、コンピューティング・デバイスの所望のアクセスに対応する情報、およびにコンピューティング・デバイスの許可されたアクセス対応する情報のうちの１つ以上を含んでもよい。
【０００６】
実施形態において、ＡＣＬの要求を受信するステップは、ネットワークの複数のコンピューティング・デバイスの１つ以上のポートと通信を送受信するネットワークのＰＥＰ、ネットワークのコンピューティング・デバイス、およびユーザに関連付けられたコンピューティング・デバイスのうちの１つ以上からの要求を受信するステップを含む。いくつかの実施形態において、ＡＣＬの要求を受信するステップは、ＰＥＰにおいて第２コンピューティング・デバイスに届けられる第１コンピューティング・デバイスからのデータパケットを受信することに応答して、ネットワークのＰＥＰからの要求を受信するステップを含んでもよい。また、方法は、ＰＥＰにおいて生成されたＡＣＬを受信するステップと、少なくとも１つのポリシーが第２コンピューティング・デバイスにデータパケットが届けられることを許可するかどうかを判断するためにＡＣＬを構文解析するステップと、データパケットをブロックするまたは第２コンピューティング・デバイスに届けるかどうかを決定するための構文解析の結果を利用し、これに応答して、データパケットをブロックするまたは届けるステップとを含んでもよい。また、ＡＣＬの要求は、データパケットからの情報を含んでもよい。ある実施形態において、データパケットからの情報は、送信元コンピューティング・デバイスのＩＰアドレス、宛先コンピューティング・デバイスのＩＰアドレス、ＭＡＣアドレス、タイムスタンプ、ＰＥＰの識別子、プロトコル情報、送信元コンピューティング・デバイスのポート情報、または宛先コンピューティング・デバイスのポート情報、のうちの１つ以上を含んでもよい。
【０００７】
少なくとも１つの実施形態において、ＡＣＬを生成するために複数のリソース記述およびポリシー実行ポイントグラフを利用するステップは、ネットワークのコンピューティング・デバイス間の複数のパスを特定するステップと、ＰＥＰベクトルを生成するために複数のパスのサブセットを破棄するためにリソース記述を利用するステップと、ＡＣＬを生成するためにポリシー実行ポイントベクトルを利用するステップとを含んでもよい。複数のパスの各々は、ＰＥＰグラフ上の少なくとも１つのＰＥＰを包囲する。いくつかの実施形態において、複数のパスのサブセットを破棄するためにリソース記述を利用するステップは、複数のパスの各々について送信元コンピューティング・デバイスを特定するステップと、複数のパスの各々について宛先コンピューティング・デバイスを特定するステップと、ネットワーク・トラフィックがパス上で許可されているかを判断するために、送信元コンピューティング・デバイスの所望のアクセスに対応する情報および宛先コンピューティング・デバイスの許可されたアクセスに対応する情報を利用するステップとを複数のパスの各々について含んでもよい。ネットワーク・トラフィックが許可されない場合、システムは、パスを破棄してもよい。
【０００８】
実施形態において、コンピューティング・デバイスのＩＰ定義に対応する情報は、データ送信装置に対する、コンピューティング・デバイスのＩＰアドレス、ドメイン名、またはＭＡＣアドレス、のうちの１つ以上についてのクエリを含む。
【０００９】
実施形態において、コンピューティング・デバイスの所望のアクセスに対応する情報は、コンピューティング・デバイスが接続したい１つ以上の宛先コンピューティング・デバイスの識別情報、コンピューティング・デバイスが接続したい１つ以上の宛先コンピューティング・デバイスの１つ以上のサービスの識別情報、１つ以上のサービスに対応する許可されたプロトコル情報、または１つ以上のサービスに対応する許可されたポート情報、のうちの１つ以上を含む。
【００１０】
別の実施形態において、コンピューティング・デバイスの許可されたアクセスに対応する情報は、コンピューティング・デバイスから提供された１つ以上のサービスの識別情報、コンピューティング・デバイスがアクセス許可を与える１つ以上の送信元コンピューティング・デバイスの識別情報、１つ以上の提供されたサービスに対応する許可されたプロトコル情報、１つ以上の提供されたサービスに対応する許可されたポート情報、または１つ以上の提供されたサービスの各々の期限、のうちの１つ以上を含む。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係る、ダイナミックアクセス制御リストを生成するためのネットワークシステムの例示的なブロック図である。
【図２】実施形態に係る、ダイナミックアクセス制御リストを生成する処理の例示的なフローチャートである。
【図３】実施形態に係る、例示的なポリシー実行ポイント（ＰＥＰ）グラフを示す図である。
【図４】実施形態に係る、例示的なＰＥＰベクトルを示す図である。
【図５】実施形態に係る、プログラム命令を含むまたは実行するために使用され得る例示的なハードウェアのブロック図である。
【発明を実施するための形態】
【００１２】
詳細な説明
記載の特定のシステム、方法論、またはプロトコルは、変わることがあるため、本開示は、これらに限定されない。本明細書において用いられる用語は、特定のバージョンまたは実施形態を説明するためだけのものであり、本開示の範囲を限定するものではない。
【００１３】
本明細書において使用する場合、単数形「１つの（ａ）」、「１つの（ａｎ）」、および「前記（ｔｈｅ）」は、前後関係から明らかでない限り、複数を指すことを含む。定義されない限り、本明細書において使用されるすべての技術用語および科学用語は、当業者によって共通して理解されるのと同じ意味を有する。本明細書において言及するすべての刊行物を、引用により本明細書に援用する。本明細書に記載のすべてのサイズは、例にすぎず、本発明は、後述する特定のサイズまたは寸法を有する構造に限定されない。本明細書において使用する場合、用語「備える（ｃｏｍｐｒｉｓｉｎｇ）」は、「限定されないが、含む（ｉｎｃｌｕｄｉｎｇ，  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」を意味する。
【００１４】
以下の用語は、本願上、後述するそれぞれの意味を持つものとする。
「アクセス制御リスト」または「ＡＣＬ」は、ネットワークを不正アクセスから守るためにネットワーク機器を通るトラフィックの流れを制御するために用いられるファイルシステム構造体を指す。限定されないが、たとえば、ゲートウェイ、ルータ、スイッチ、ファイヤウォールなどがあり得る。ＡＣＬは、ネットワーク機器と通信中の１つ以上のコンピューティング・デバイスまで、ネットワーク・トラフィック（データパケット、ビットストリームなど）にネットワーク機器を通過させるべきかどうかを判断する。このネットワーク・トラフィックは、一般に、データパケットの形で送信され、データパケットには、送信元システムおよび宛先システムのネットワークアドレスが埋め込まれている。ＡＣＬは、規則の一覧を含み、規則の一覧は、データパケットの１つ以上の属性、およびデータパケットの属性に対応するアクションの一覧を示してもよい。データパケットの属性は、たとえば、インターネットプロトコル（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ：ＩＰ）のヘッダおよび伝送制御プロトコル（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ：ＴＣＰ）のヘッダから得られた、イーサネット（登録商標）フレーム（ＭＡＣ）フィールドと、ＩＰアドレスと、ＴＣＰポートおよびプロトコル情報との組み合わせを含む情報を含んでもよい。
【００１５】
「ネットワーク機器」は、ファイルおよびリソースを共有できるように、ネットワークを利用したさまざまなコンピューティング・デバイス同士またはコンピューティング・デバイス間の通信を許可する機器を指す。限定されないが、たとえば、ゲートウェイ、ハブ、ブリッジ、ルータ、無線アクセスポイント、モデム、スイッチ、ファイヤウォールなどがあり得る。ネットワーク機器は、ネットワークポリシー判断が実施または実行される「ポリシー実行ポイント」（ＰＥＰ）を含んでもよい。なお、本開示は、ＰＥＰとしてネットワーク機器を説明するが、ＰＥＰは、任意の物理装置または仮想装置に適用してもよく、本開示の原理から逸脱しない範囲で、ネットワーク機器でなくてもよい。
【００１６】
「コンピューティング・デバイス」または「電子機器」は、プロセッサ、および非一時的なコンピュータ読み取り可能なメモリを備える機器を指す。メモリは、プログラミング命令を含んでもよく、プログラミング命令は、プロセッサによって実行されると、プログラミング命令に応じてコンピューティング・デバイスに１つ以上の動作を行わせる。本明細書において使用する場合、「コンピューティング・デバイス」または「電子機器」は、１つの機器であってもよく、または、互いに通信し、データおよび／または命令を共有する１つ以上のプロセッサを有する任意の数の機器であってもよい。コンピューティング・デバイスまたは電子機器として、限定されないが、たとえば、パーソナルコンピュータ、サーバ、メインフレーム、ゲームシステム、テレビ、および、スマートフォン、携帯情報端末、カメラ、タブレットコンピュータ、ラップトップコンピュータ、メディアプレーヤなど、持ち運び可能な電子機器などがある。コンピューティング・デバイスまたはプロセッサの例のさまざまな構成要素は、図５を参照して後述する。
【００１７】
図１は、ネットワーク化されたコンピュータシステムの一実施形態のブロック図である。図１の実施形態において、複数の送信元コンピューティング・デバイス１０１ａ、１０１ｂ、１０１ｃ…１０１ｎは、ネットワーク１１０を介して、１つ以上のネットワーク機器１１１ａ、１１１ｂ、および１１１ｃと通信している。一実施形態において、ネットワーク１１０は、１つ以上のローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、および／またはインターネットなど、１つ以上の有線および／または無線ネットワークを備えてもよい。実施形態において、システムは、１つ以上のネットワークを含んでもよく、パブリックネットワークとプライベートネットワークとの組み合わせを含んでもよい。実施形態において、システムは、たとえば、ＴＣＰ／ＩＰネットワーク（たとえば、レート制御プロトコル（Ｒａｔｅ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）またはＲＣＰ、伝送制御プロトコル（Ｔｒａｎｓｐｏｒｔ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）またはＴＣＰ、Ｆａｓｔ  ＴＣＰ、ストリームＴＣＰ／ＩＰまたはＳＴＣＰ、ｅＸｐｌｉｃｉｔ  Ｃｏｎｔｒｏｌ  ＰｒｏｔｏｃｏｌまたはＸＣＰなど）、電気通信ネットワーク、無線ネットワーク、モバイルネットワークなどを含む、（ネットワーク１１０に代表される）幅広いさまざまなネットワーク環境を含んでもよい。
【００１８】
図１の実施形態において、ネットワーク機器１１１ａ、１１１ｂ、および１１１ｃは、宛先コンピューティング・デバイス１０２ａ、１０２ｂ、１０２ｃ…１０２ｎのうちの１つ以上に宛てたパケットのすべてを受信する。したがって、ネットワーク化されたシステム上の送信元コンピューティング・デバイスおよび宛先コンピューティング・デバイスは、ネットワーク上の通信を容易にするように構成された１つ以上のネットワーク機器によって隔てられている。ネットワーク機器１１１ａ、１１１ｂ、および１１１ｃは、着信パケットごとに宛先を判断し、着信パケットを適切な宛先へ送るように構成される。いくつかの実施形態において、ネットワーク機器１１１ａ、１１１ｂ、および１１１ｃは、ＰＥＰとして機能するように構成されてもよく、ダイナミックＡＣＬ（後述する）を受信および／または生成してもよい。また、ネットワーク機器は、着信および／または発信パケットの属性（プロトコル、送信元アドレス、宛先アドレスなど）を解析し、ダイナミックＡＣＬ規則を用いて、不要なパケットが通過しないように選択的にブロックしてもよい。また、ネットワーク機器は、ネットワーク機器を互いに、およびネットワーク１１０に通信可能に相互接続するための複数のポート（入力ポートおよび／または出力ポート）を含んでもよい。ネットワーク機器は、その最大ポート数まで取り付けられた任意の２つの機器間で、データパケット、ビットストリーム、またはフレームなど、データ単位を運ぶように構成される。
【００１９】
ネットワーク機器は、通常、複数のインターフェースを含み、インターフェースは、ネットワーク機器が、それぞれのインターフェースにおけるパケット、またはそれぞれのインターフェースから送られてくるパケットの流れを、ＡＣＬを利用してどのように制御するかを定義する。上述したように、ＡＣＬは、特定のインターフェースに届いているパケット、または特定のインターフェースから送られたパケットがネットワーク機器を超えて通信されてもよいかどうかを当該ネットワーク機器が判断するために用いる情報の一覧を含む。たとえば、ＡＣＬは、ＩＰアドレスおよびそのＩＰアドレスの許容プロトコルのタイプの一覧を含んでもよい。別の例において、ＡＣＬは、ＩＰアドレスおよびポート識別子の一覧を含んでもよい。いずれの例においても、ＡＣＬの特定のエントリが、パケットの１つ以上のフィールドに基づいて、通信の許可または拒否を制御してもよい。
【００２０】
システムの１つ以上のコンピューティング・デバイス（送信元または宛先）は、コンピューティング・デバイスに関連付けられたリソース記述を有してもよい。実施形態において、コンピューティング・デバイスのリソース記述は、限定されないが、コンピューティング・デバイスのＩＰ定義に関係する情報（ＩＰアドレスなど）と、所望のアクセスに対応する情報と、許可されたアクセスに対応する情報とを含んでもよい。また、いくつかの実施形態において、リソース定義は、コンピューティング・デバイスおよび／また提供されたサービスが何を表しているかを記述したテキスト記述を、必要であれば、含んでもよい。
【００２１】
実施形態において、コンピューティング・デバイスのＩＰ定義に関係する情報は、ＩＰ定義を取り出すための、権限を有するデータ送信装置へのクエリを含んでもよい。実施形態において、ＩＰ定義は、送信元コンピューティング・デバイスまたは宛先コンピューティング・デバイスなど、トラフィックの流れの送信元または宛先としてネットワークのセクションを特定する。限定されないが、たとえば、ＩＰアドレス、ドメイン名、ＭＡＣアドレスなどがあり得る。
【００２２】
実施形態において、所望のアクセスに対応する情報は、その他のコンピューティング・デバイスとの求められた接続、つまり、その他のコンピューティング・デバイスによって提供された１つ以上のサービスへの接続要望に関する情報を含む。たとえば、実施形態において、許可されたアクセスに対応する情報は、コンピューティング・デバイスの識別情報、コンピューティング・デバイスによって提供されたサービスの識別情報、コンピューティング・デバイス（および／またはサービス）のプロトコルおよび／またはポート情報などを含んでもよい。
【００２３】
実施形態において、許可されたアクセスに対応する情報は、コンピューティング・デバイスの露出、つまり、コンピューティング・デバイスの１つ以上のサービスおよび／またはリソース（データファイル、ウェブアクセス、プリンターサービス、ルーティングサービス、センサなど）のその他のコンピューティング・デバイスおよびサービスに関係した特定のコンピューティング・デバイスへの利用可能性、ポート、および／またはプロトコル仕様に関する情報を含む。たとえば、実施形態において、許可されたアクセスに対応する情報は、提供されたサービスの識別情報、サービスが提供されるコンピューティング・デバイスの識別情報、正しいポートおよびプロトコルの識別情報、サービスの提供期限などを含んでもよい。
【００２４】
実施形態において、リソース記述を定義するデータ構造は、データを持つ２つのノードであるリソース・ノード（所望のアクセスに対応する情報）および露出ノード（許可されたアクセスに対応する情報）に、ファイルシステムに類似する階層構造で格納されてもよい。また、リソース・ノードは、コンピューティング・デバイスのＩＰアドレスに関係する情報を含んでもよい。たとえば、行列など、その他の種類のデータ構造は、本開示の範囲に含まれる。
【００２５】
また、システムは、プログラミング命令を含むコンピュータ読み取り可能な媒体を備え、プログラミング命令は、実行されると、プロセッサに、ダイナミックＡＣＬを生成、保守させ、ＰＥＰ（または、複数のＰＥＰ）に送らせる。コンピュータ読み取り可能な媒体は、ネットワーク機器のメモリ装置であってもよく、ネットワーク機器と通信中の遠隔システム（ここでは図示せず）など、別の機器のメモリであってもよい。また、システムは、１つ以上のデータ格納システムへのアクセスも含むおよび／または有し得る。また、システムは、１つ以上のデータ送信装置へのアクセスを含むおよび／または有してもよい。
【００２６】
図２は、実施形態に係る、ダイナミックＡＣＬを作成するための例示的なフローチャート２００を示す。ステップ２０１において、システムは、ＡＣＬの要求を受信し得る。
【００２７】
実施形態において、システムは、コンピューティング・デバイスおよび／またはＰＥＰなどネットワークの別のノードへ送信するためのデータ（パケットなど）またはネットワーク・トラフィックをネットワークのＰＥＰが受信するたびに、ネットワークのＰＥＰから要求を受信してもよい。また、実施形態において、要求は、ＰＥＰと関連付けられた識別子、ＰＥＰにおいて受信されたデータまたはネットワーク・トラフィックから取り出された情報など、情報を含んでもよい。データパケットから取り出された情報は、限定されないが、送信元アドレス、宛先アドレス、送信元および宛先のＴＣＰ／ＵＤＰポート、ＭＡＣアドレス、タイムスタンプ、ＰＥＰ識別子などを含むインターネットプロトコル（ＩＰ）アドレスを含んでもよい。
【００２８】
これに代えて、および／またはこれに加えて、システムは、ＡＣＬの要求を、ネットワーク管理者など、ユーザから受信してもよい。また、実施形態において、システムは、コンピューティング・デバイスからのＡＣＬの要求も受信してもよい。
【００２９】
要求を受信したことに応答して、システムは、ネットワークの１つ以上のコンピューティング・デバイスに関連付けられたリソース記述を受信し得る（２０２）。実施形態において、システムは、システムがどのコンピューティング・デバイスのためにリソース記述を受信し得るかを特定するために、ＡＣＬの要求において受信した情報を解析してもよい。たとえば、ＡＣＬの要求をＰＥＰから受信し、送信元アドレスおよび宛先アドレスなど、パケット情報を含む場合、システムは、送信元コンピューティング・デバイスおよび宛先コンピューティング・デバイスに関連付けられたリソース記述を受信してもよい。これに代えて、および／またはこれに加えて、システムは、要求を送信したＰＥＰと関連付けられたネットワーク上のコンピューティング・デバイスと関連付けられたリソース記述を受信してもよい。別の実施形態において、システムは、ＰＥＰグラフ（後述する）におけるパスに基づいてデータパケットが経由し得るＰＥＰに関連付けられたネットワークのコンピューティング・デバイスに関連付けられたリソース記述を受信してもよい。上述したように、リソース記述は、限定されないが、コンピューティング・デバイスのＩＰ定義（ＩＰアドレスなど）に関係する情報、所望のアクセスに対応する情報、および許可されたアクセスに対応する情報を含んでもよい。
【００３０】
一例を挙げると、たとえば、ＩＰアドレスとリスニングポートのセットによっていくつかのサービスを同一の方法で提供するＡ、Ｂ、およびＣコンピューティング・デバイス含む例示的なネットワークについて、リソース定義は、ＩＰアドレスとポートのセットを含んでもよい。また、リソース定義は、対応する機器ごとに、たとえば以下のような所望のアクセスおよび許可されたアクセスに対応する情報を含んでもよい。
【００３１】
・Ａは、ＢおよびＣからの接続を許可する（コンピューティング・デバイスＡの許可されたアクセス）
・Ｂは、Ｃからの接続を許可する（コンピューティング・デバイスＢの許可されたアクセス）
・Ｃは、Ａからの接続を許可する（コンピューティング・デバイスＣの許可されたアクセス）
・Ａは、ＢまたはＣへのアクセスを必要としない（コンピューティング・デバイスＡの所望のアクセス）
・Ｂは、ＡおよびＣへのアクセスを必要とする（コンピューティング・デバイスＢの所望のアクセス）
・Ｃは、Ａへのアクセスを必要とする（コンピューティング・デバイスＣの所望のアクセス）
また、システムは、ネットワークについてのＰＥＰグラフも受信（および／または生成）し得る（２０３）。ＰＥＰグラフは、関連付けられたリソース記述およびネットワークのＰＥＰによって定義される、ネットワークのコンピューティング・デバイス間の空間的関係を定義する。なお、ＰＥＰグラフは、コンピュータ・ネットワークのさまざまな構成要素（たとえば、リンク、ノードなど）の配置を定義するネットワークトポロジーとは無関係である。
【００３２】
実施形態において、ＰＥＰグラフは、ネットワークのコンピューティング・デバイス間に、各々が少なくとも１つのＰＥＰを通過するように１つ以上のパスを含んでもよい。コンピューティング・デバイスのサービスのうちの１つ以上へのアクセスを提供するコンピューティング・デバイス間のパスになり得るすべてのパスを生成するために使用され得る方法として、限定されないが、幅優先探索アルゴリズム、深さ優先探索アルゴリズムなどがあり得る。
【００３３】
また、これに加えて、ＰＥＰグラフは、ＰＥＰグラフにおいて、ＰＥＰごとにＰＥＰ記述を含んでもよい。また、ＰＥＰ記述は、限定されないが、ＰＥＰ識別子、ＰＥＰの種類に対応する情報、ＰＥＰについての任意の追加メタデータ、（ＡＣＬの生成された部分の前に付加されるまたは後ろに付加される情報がリソースもしくはコンピューティング・デバイス間の流れおよび／または関係として表現できない場合に当該情報を指定するための）プレフィックス／ポストフィックス情報などを含んでもよい。図３は、上述の例示的なネットワークについての例示的なＰＥＰグラフ３００を示す。図３に示すように、ＰＥＰグラフ３００は、コンピューティング・デバイスＡと、Ｂと、Ｃとの間に複数のパスを含んでもよく、各パスは、ＰＥＰ３０１、３０２、および３０３のうちの１つ以上を経由する。
【００３４】
図２を再び参照すると、次に、システムは、ＰＥＰグラフの許可されたパスのみを含むＰＥＰベクトルを生成するためにＰＥＰグラフの１つ以上のパスを破棄するために、コンピューティング・デバイスについてのリソース記述を利用し得る（２０４）。また、ＰＥＰベクトルは、コンピューティング・デバイス間のパスに存在するＰＥＰを指定してもよい。実施形態において、システムは、パスごとに、送信元コンピューティング・デバイスおよび宛先コンピューティング・デバイスを特定してもよい。次に、システムは、送信元コンピューティング・デバイスの所望のアクセス情報、および宛先コンピューティングの許可されたアクセス情報を利用して、ネットワーク・トラフィックが当該パス上で許可されているかどうかを判断する。システムは、ネットワーク・トラフィックが許可されていないパスを破棄してもよい。たとえば、宛先コンピューティング・デバイスがその他のコンピューティング・デバイスによる宛先コンピューティング・デバイスのリソースへのアクセスを許可しない場合、システムは、２つのコンピューティング・デバイス間のパスを破棄してもよい。別の例において、送信元コンピューティング・デバイスが、その他のコンピューティング・デバイスのリソースへのアクセスを所望しない場合、システムは、２つのコンピューティング・デバイス間のパスを破棄してもよい。同様に、システムは、コンピューティング・デバイスのプロトコル、ポート、またはその他の仕様と一致しないコンピューティング・デバイスへのパス、および／またはコンピューティング・デバイスのプロトコル、ポート、またはその他の仕様と一致しないコンピューティング・デバイスからのパスを破棄してもよい。図４は、ＣがＢからのアクセスを許可しないために図３のＰＥＰグラフ３００からパス３１０を削除することによって生成された、上述の例示的なネットワークについての例示的なＰＥＰベクトル４００を示す図である。
【００３５】
次に、システムは、ＰＥＰを経由する各パスの属性およびポリシーを保存することによって、リソース記述および生成されたＰＥＰベクトルを利用してＰＥＰごとのＡＣＬを生成し得る（２０５）。実施形態において、システムは、ＡＣＬの生成の際に、妥当な想定を用いてもよい。たとえば、システムは、常にｈｉｇｈポートから接続が開始されることを想定してもよい。システムは、ＰＥＰにおいて宣言された許容アクセスのみを許可するための「デフォルトｄｅｎｙ」を利用してもよい。ＰＥＰベクトル４００を有する上記の例示的なネットワークについて、リソース記述を使用して生成された例示的なＡＣＬポリシーは、以下の通りであろう。
【００３６】
【表１】
0006526338.tif 000002
【００３７】
上述したように、デフォルトｄｅｎｙは、ＰＥＰにおいて宣言された許容アクセスのみを許可する。たとえば、上記の生成されたＡＣＬポリシーによると、ＰＥＰ３０１は、Ｃによって生成され、Ａを宛先とする、定義されたプロトコルおよびポートによるネットワーク・トラフィックのみを許可することになり、その他のすべてのネットワーク・トラフィックまたはアクセス要求を拒否することになる。同様に、ＰＥＰ３０２は、ＣからＡおよびＢからＡへの、それぞれの定義されたプロトコルおよびポートによるアクセスのみを許可することになり、ＰＥＰ３０３は、定義されたプロトコルおよびポートによるＢからＡへのアクセスのみを許可することになる。
【００３８】
実施形態において、ネットワークのＰＥＰが、第２コンピューティング・デバイスのサービスまたはリソース（または第２コンピューティング・デバイス宛てのデータパケット）へのアクセス要求を第１コンピューティング・デバイスから受信した場合、ＰＥＰは、ダイナミックＡＣＬを要求し、ダイナミックＡＣＬを利用して、アクセス要求を受け付けるべきか拒否するべきかを判断してもよい。具体的には、ＰＥＰは、生成されたダイナミックＡＣＬを使用して、ネットワークのデータパケットをブロックまたは送信してもよい。
【００３９】
実施形態において、システムは、上記の生成されたＡＣＬポリシーを、ＰＥＰと互換性のある、ベンダーに特有の構文にフォーマットしてもよい。
【００４０】
実施形態において、ユーザは、ＰＥＰグラフを定義するおよび／またはリソース記述を調整することによって、ＡＣＬポリシーを変更できるため、システムは、修正されたＡＣＬを自動的に生成することになる。コンピューティング・デバイスのＩＰ定義を変更することによって、コンピューティング・デバイスの許可されたアクセスに対応する情報を変更することによって、またはコンピューティング・デバイスの所望のアクセスに対応する情報を変更することによって、リソース記述を調整してもよい（どのアクセスを許可するかの決定は、接続を受信しているコンピューティング・デバイスによって判断されるが、パスの受信側および発信側の両方がこのような接続性を宣言する必要がある）。
【００４１】
図５は、実施形態に係る、上述した工程段階など、プログラム命令を含むまたは実行するために使用され得る内蔵ハードウェアの例のブロック図を示す。バス５００は、ハードウェアのその他の図示された構成要素を相互接続する情報ハイウェイとして機能する。ＣＰＵ５０５は、システムの１つ以上のプロセッサを表し、プログラムを実行するために必要な計算および論理演算を行う。ＣＰＵ５０５は、単独または図５に開示されたその他の構成要素のうちの１つ以上と共に、本開示の範囲で使用される用語に従う処理装置、コンピューティング・デバイス、またはプロセッサの例である。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５１０およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５１５は、メモリ素子またはプロセッサ読み取り可能な記憶媒体の例を構成する。
【００４２】
コントローラ５２０は、任意選択の１つ以上の有形のコンピュータ読み取り可能なメモリ素子５２５を、システムバス５００にインターフェース接続する。これらのメモリ素子５２５は、たとえば、外付けまたは内蔵ディスクドライブ、ハードドライブ、フラッシュメモリ、ＵＳＢドライブなどを含み得る。前に示したように、これらのさまざまなドライブおよびコントローラは、任意選択の機器である。
【００４３】
インターフェースを提供し、１つ以上のデータセットに関連付けられたクエリまたは解析を実行するためのプログラム命令、ソフトウェア、またはインタラクティブ・モジュールは、ＲＯＭ５１０および／またはＲＡＭ５１５に格納されてもよい。必要に応じて、プログラム命令は、コンパクトディスク、デジタルディスク、フラッシュメモリ、メモリーカード、ＵＳＢドライブなど、有形のコンピュータ読み取り可能な媒体５２５、ブルーレイ（登録商標）ディスクなど、光ディスク記憶媒体、および／またはディスクコントローラ５２０によって制御されるその他の記録媒体に格納されてもよい。
【００４４】
任意選択のディスプレイ・インターフェース５４０は、バス５００からの情報が、音声形式、映像形式、グラフィック形式、または英数字の形式でディスプレイ５４５に表示されることを許可してもよい。プリント機器など、外部装置との通信は、さまざまな通信ポート５５０を利用して生じ得る。通信ポート５５０は、インターネットまたはイントラネットなど、通信ネットワークに接続されてもよい。
【００４５】
また、ハードウェアは、キーボード５６０などの入力装置、またはマウス、ジョイスティック、タッチスクリーン、リモコン、ポインティングデバイス、映像入力装置、および／または音声入力装置など、その他の入力装置５６５からのデータの受信を可能にするインターフェース５５５を含んでもよい。
【００４６】
さまざまな上に開示した特徴ならびに機能およびその他の特徴ならびに機能、またはそれらの代替物は、望ましくは、多くの異なるシステムまたはアプリケーション、またはシステムとアプリケーションとの組み合わせに組み合わされてもよいということが理解されるだろう。また、さまざまな現在予期しないまたは予想外の代替例、変更例、それらにおける変形例または改良例は、のちに当業者によって製作される可能性があり、また、これらは、以下の請求項に含まれるものとする。
【図１】
0006526338.tif 000003
【図２】
0006526338.tif 000004
【図３】
0006526338.tif 000005
【図４】
0006526338.tif 000006
【図５】
0006526338.tif 000007