(57)【特許請求の範囲】
【請求項１】
セキュリティルールＲiの集合Ｓを含む電子デバイスにおいてセキュリティルールの衝突を管理する方法であって、
ルールＲiのそれぞれは、インデックスｉによって識別され、
ルールのそれぞれは、条件属性のリストＣと、対応する少なくとも１つの判断とを備え、
前記条件属性のリストは、ｍ個の個々の条件属性Ｃnをさらに備え、ｍ個の個々の条件属性Ｃnは、条件を設定するための対応する値の区間によって識別され、ｎは、ルールにおける異なる条件属性を識別する変数である
方法において、
前記方法は、前記電子デバイスによって実行される複数のステップとして、
‐衝突管理ツリーのレベルｎのルートノードを構成する（１０７）ステップであって、ここで、ルートレベルでは、ｎはｍに等しい、構成するステップと、
‐ｍ個のノードレベルを備える前記衝突管理ツリーを構築する（１１３、１１５、１１７、１１９、１２１、１２３、１２５、１２７、１３１、１３３、１３５）ステップであって、
異なるレベルの前記ノードは、前記条件属性の区間又は部分区間によってラベル付けされるアークによって互いに接続され、
前記ノードは、対応するノードにつながっている前記アークをラベル付けする前記区間又は前記部分区間によって設定された前記条件を満たす、１つ又は複数のルールによって識別される、
構築するステップと、
‐ノードレベルｎ＝１を起源として、前記アークにリーフを追加することによって、前記衝突ツリーを完成する（１２９）ステップであって、
リーフのそれぞれは、現在のリーフにつながっている前記アークをラベル付けする前記区間又は前記部分区間によって設定された前記条件を満たす１つ又は複数のルールによって識別される、
完成するステップと、
‐同一のリーフに少なくとも２つのルールがあるか否かをチェックすると共に、同一のリーフに少なくとも２つのルールがある場合に、前記セキュリティルールの集合Ｓに少なくとも１つの構成ミスのアノマリがあると判断するステップであって、
前記ツリーにおいて、前記アークの少なくともいくつかは、前記セキュリティルールの集合Ｓに少なくとも１つの構成ミスのアノマリがあるときに、条件を設定するための値の区間の部分区間によってラベル付けされる、
チェックすると共に判断するステップと
を含む、方法。
【請求項２】
前記衝突管理ツリーを構築することは、
ａ）変数Ｘを定義する（１１５）と共に、前記セキュリティルールの集合Ｓの最初のルールの検討中の前記条件属性値に対応するＲ1（Ｃn）の値によって変数Ｘを初期化する（１１７）ステップと、
ｂ）前記インデックスｉを２に設定する（１１７）ステップと、
ｃ）前記インデックスｉを、レベルｎの現在のノードにおける検討中のルールＲの個数と比較し（１１９）、
ｉが、レベルｎの現在のノードにおける検討中のルールＲの個数以下である場合に、Ｘを、（Ｘ−Ｒi［Ｃ］）∪（Ｒi［Ｃ］−Ｘ）∪（Ｘ∩Ｒi［Ｃ］）の値と置き替え（１２１）、ここで、∪は数学的演算の和集合を示し、∩は数学的演算の共通集合を示し、ここで、（Ｘ−Ｒi［Ｃn］）、（Ｒi［Ｃn］−Ｘ）、及び（Ｘ∩Ｒi［Ｃn］）は、前記条件属性Ｃnの前記区間又は前記部分区間に対応する前記和集合演算の集合であり、
次に、インデックスｉを１だけインクリメントすると共に、前記インデックスｉが、前記検討中のルールＲの個数よりも大きい場合には、値Ｘを返す（１２３）、
比較するステップと、
ｄ）前記Ｘの集合のそれぞれが１つのアークのみをラベル付けするのに使用されるように、レベルｎ−１のノードへのアークを形成するのに前記Ｘの集合を使用する（１２５）ステップであって、
前記レベルｎ−１のノードは、前記対応するルールによって識別され、それによって、前記ノードのそれぞれが、対応するノードにつながっている前記アークをラベル付けする前記対応する集合によって設定された前記条件を満たす前記ルールによってのみ識別される、
使用するステップと
をさらに含む、請求項１に記載の方法。
【請求項３】
ｅ）現在のレベルｎのすべてのノードが処理されたか否かを判断する（１３１）と共に、そうでない場合には、現在のレベルｎのすべてのノードが処理されるまで、ステップａ）〜ｄ）を繰り返すステップと、
ｆ）ｎを１だけデクリメントし（１３５）、その後、ステップａ）〜ｅ）を繰り返すステップと
をさらに含む、請求項２に記載の方法。
【請求項４】
前記ステップｅの判断は、レベルｎ＋１のすべてのノードをチェックすることと、
前記レベルｎ＋１を起源とするすべてのアークが処理されたことを検証することと
を含む、請求項３に記載の方法。
【請求項５】
前記電子デバイスを管理する管理者にアノマリに関して警告すること、及び／又は、
衝突の存在しないルールの集合を提供すること
をさらに含む、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
衝突の存在しないルールの集合を提供することは、前記ルールの優先順序を考慮することと、リーフにおいて最も高い優先度を有する前記ルールを選ぶこととを含み、
前記対応する属性値は、ルートから開始して、現在のリーフにつながっている前記属性値を採用することによって取得される、
請求項５に記載の方法。
【請求項７】
衝突の存在しないルールの集合を提供することは、
リーフのそれぞれにおいて、同じ判断を有する少なくとも１つの第１のルール及び第２のルールが存在するか否かを判断することと、
同じ判断を有する少なくとも１つの第１のルール及び第２のルールが存在する場合には、これらのルールから最も高い優先度を有するルールを選ぶことと
を含み、
前記第２のルールが、すべてのリーフにおいて、同じ判断を有する別のルールによって先行されている場合には、前記第２のルールは完全に冗長なものとして検出され、
前記対応する属性値は、ルートから開始して、現在のリーフにつながっている前記属性値を採用することによって取得される、
請求項５に記載の方法。
【請求項８】
前記ルール集合Ｓは、ファイアウォールルール、侵入検知、オペレーションシステムにおけるファイルアクセスの管理、電子メールアプリケーション、及び／又は産業メカニズムに適用される、請求項１〜７のいずれか一項に記載の方法。
【請求項９】
前記ルール集合Ｓは、前記方法を適用している間に構築される前記衝突管理ツリーに対応する前記ルール集合Ｓのデータ構造体に保持される、請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
アノマリの存在しない前記提供されたルールの集合における前記ルールは、互いに素である、請求項５〜７のいずれか一項に記載の方法。
【請求項１１】
コンピュータプログラム製品であって、電子デバイスのコンピュータ手段にロードされて実行されると、請求項１〜１０のいずれか一項に記載の方法におけるすべてのステップを実装するための命令を含むコンピュータプログラム製品。
【請求項１２】
通信システムにおいてセキュリティルールの衝突を管理することが可能な電子デバイスであって、
前記電子デバイスはセキュリティルールＲiの集合Ｓを含み、
前記ルールＲiのそれぞれは、インデックスｉによって識別され、
前記ルールのそれぞれは、条件属性のリストＣと、対応する少なくとも１つの判断とを備え、
前記条件属性のリストは、ｍ個の個々の条件属性Ｃnをさらに備え、ｍ個の個々の条件属性Ｃnは、条件を設定するための対応する値の区間によって識別され、ここで、ｎは、ルールにおける異なる条件属性を識別する変数である
電子デバイスにおいて、
前記電子デバイスは、
‐衝突管理ツリーのレベルｎのルートノードを構成する手段であって、ここで、ルートレベルでは、ｎはｍに等しい、構成する手段と、
‐ｍ個のノードレベルを備える前記衝突管理ツリーを構築する手段であって、
異なるレベルの前記ノードは、前記条件属性の区間又は部分区間によってラベル付けされるアークによって互いに接続され、
前記ノードは、対応するノードにつながっている前記アークをラベル付けする前記区間又は前記部分区間によって設定された前記条件を満たす、１つ又は複数のルールによって識別される、
構築する手段と、
‐ノードレベルｎ＝１を起源として、前記アークにリーフを追加することによって、前記衝突管理ツリーを完成する（１２９）手段であって、
リーフのそれぞれは、現在のリーフにつながっている前記アークをラベル付けする前記区間又は前記部分区間によって設定された前記条件を満たす１つ又は複数のルールによって識別される、
完成する手段と、
‐同じリーフに少なくとも２つのルールがあるか否かをチェックする手段であって、
同じリーフに少なくとも２つのルールがある場合に、前記電子デバイスは前記セキュリティルールの集合Ｓに少なくとも１つの構成ミスのアノマリがあると判断するように構成され、
前記ツリーにおいて、前記アークの少なくともいくつかは、前記セキュリティルールの集合Ｓに少なくとも１つの構成ミスのアノマリがあるときに、条件を設定するための値の区間の部分区間によってラベル付けされる、
チェックする手段と
を含む、電子デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
［技術分野］
本発明は、アクセス制御ルールの集合に存在する様々なアノマリ（anomaly）を検出するために使用することができる衝突管理方法に関する。このようなアクセス制御ルールは、着信トラフィック及び発信トラフィックをフィルタリングするためのファイアウォール等の電子デバイス、ファイルアクセスを管理するためのオペレーティングシステム、侵入検知のための攻撃シグネチャデータベース、ルールを管理するための電子メールアプリケーション、又は産業メカニズムにおいて使用することができる。本発明は、同様に、このような電子デバイス及びこの方法を実施するように構成されたコンピュータプログラムに関する。
【０００２】
［発明の背景］
通信システムで実施されている現在のセキュリティメカニズムは、パケットをフィルタリングする作業に多くのルールが指定されるアクセス制御システムでこの作業を行うために、多数の技法を使用する。侵入検知システムも、ルールの集合を使用して、監視されるネットワークから捕捉された異なるフローを、ルールの集合に記載された現在の既知の攻撃と照合する。ルールを記述する作業は、アクセス制御目的の場合もあれば、侵入検知の目的の場合もあるが、困難な作業ではない。しかしながら、多数のルールの集合を取り扱い、テストされていないルールがあるか否か、又は冗長な他のルールがあるか否かを発見することは、特に、一連の管理者によって記述された非常に多くのルールを取り扱う時に容易な作業ではない。
【０００３】
セキュリティルールは、セキュリティポリシーの仕様を満たすように、注意深く記述されると共にうまく編成されるべきである。これは、一人のオペレータが解決することができる容易な作業ではないので、この問題を克服するために、新規且つ高速で自動的な方法が導入されるべきである。さらに、管理者には、構成ミスのタイプ及びそのような構成ミスにつながったルールの集合に関しての正確な情報が与えられるべきである。
【０００４】
多くの現在の企業、政府機関、学究機関、及び軍事機関は、自身の情報システムを安全にするためにコンポーネントの集合を使用する。ファイアウォールは、組織内の異なる信頼のゾーンをトラバースするトラフィックをフィルタリングして取り締まるために最も多く使用されているセキュリティ設備である。たとえば、インターネットは、信頼されないゾーンとみなされ、インターネットに対するすべての着信トラフィック及び発信トラフィックは、攻撃を防止するために適切なフィルタリングルールで制御されるべきである。
【０００５】
ファイアウォールは、トラフィックをフィルタリングして、組織内で考えられる様々なゾーンをトラバースするフローを制御するための強力な解決策を提供するが、定義されたセキュリティポリシーによるファイアウォールの適切な構成は、依然として困難な作業のままである。ターゲットのセキュリティポリシーに従って正しいルールを扱うことを困難にする理由には、様々な理由がある。第１に、当該組織の異なるサブ組織（異なるロケーション、国、及び大陸に位置するもの）には異なるファイアウォールがインストールされている場合がある。第２に、時と共に異なる管理者によって記述されている可能性のある数百又は数千のルールが、異なるファイアウォールで指定されている。最後に、ルールを追加又は削除することによって新しいセキュリティポリシーに従い様々なルールを更新することによって、管理者の作業はほとんど実行不可能になる。これらの理由のすべてから、管理者が、記述された様々なルールの検証、解析、及び修正を行うことを助けるための効率的な技法が導入されるべきである。
【０００６】
ファイアウォールの構成ミスの問題の解決を試みる様々なシステムがある。これらのシステムは、異なるアノマリを検出するために異なる方法を使用するが、これらのアノマリを検出するのにほぼ同じ問題を共有している。
【０００７】
Ehab S. Al-Shaer及びHazem H. Hamed著「Discovery of Policy Anomalies in Distributed Firewalls」（IEEE INFOCOM 2004）と題する刊行物は、アノマリを検出する方法を開示しているが、この方法は、オペレータによって提示されるすべてのルールを検討するときに存在し得るすべてのアノマリを検出するとは限らない。その理由は、その検出手法が、ルールを２つずつ比較することに基づいているためである。
【０００８】
１つの条件属性ｄＩＰ（宛先ＩＰ（destination IP））しか有しない以下の説明例を考えることができる。
Ｒ1：ｄＩＰ∈［４０−９０］→受理
Ｒ2：ｄＩＰ∈［８０−１２０］→拒否
Ｒ3：ｄＩＰ∈［５０−１１０］→受理
【０００９】
上記ルール集合では、ｄＩＰは、宛先のインターネットプロトコル（ＩＰ）アドレスを示している。この場合、提案される方法は、ルールＲ1及びＲ2の和集合のために、ルールＲ3が完全にシャドウイングしていること（complete shadowing）を検出しない。あるルールがマッチするすべてのパケットに対して、より高い優先順位を有する前のルール又はルールの組み合わせがすでにマッチしたという理由で、当該ルールが決して適用されない、そのようなルールが少なくとも１つ存在する場合、ルール集合は、完全なシャドウイングアノマリを含むことになる。
【００１０】
F. Cuppens、N. Cuppens-Boulahia、及びJ. Garcia-Alfaro著「Detection and Removal of Firewall Misconfiguration」（IASTED International Conference on Communication, Network and Information Security (CNIS 2005)）と題する刊行物は、上記問題を解決する別の解決法を開示しているが、この方法も、多くの欠点を有する。冗長性についての曖昧な定義が導入されている。実際には、同じ属性値を有する２つのルールが存在する場合に、最初のルールが冗長なルールとみなされ、３つ以上の同一のルールが存在する場合も同様である。この理由から、この欠点を抑制するために、シャドウイングの検出は、冗長性より前に検討される。しかしながら、（１）或るルールが、そのルールと同じ判断を有する、より低い優先度を有する１つ又は２つ以上のルールから成る集合よりも高い優先順位を有し、且つ、（２）最初のルールがマッチするすべてのパケットが、他のルール（複数可）の組み合わせによってもマッチされ、且つ、（３）最初のルールの条件属性値が、より低い優先度を有するルールの条件属性値に厳密に含まれる場合には、より高い優先度を有する最初のルールは、冗長なものとして検出される。これに加えて、或るルール集合が検討され、それらのルールが再配列される場合、いくつかのアノマリが、最初のルール集合では検出される一方、２番目のルール集合では検出されない場合があり、また、その逆の場合もある。以下のルール集合は、これらの２つの問題を示す一例である。
Ｒ1：ｄＩＰ∈［２０−９０］→受理
Ｒ2：ｄＩＰ∈［４０−１２０］→拒否
Ｒ3：ｄＩＰ∈［１０−５５］→受理
Ｒ4：ｄＩＰ∈［３０−１１０］→受理
【００１１】
この例では、ルールＲ1は、ルールＲ3及びＲ4の組み合わせに起因して冗長なルールとして検出される。しかしながら、ルールＲ1及びＲ3の順序が、以下に提示するように変更された場合、Ｒ1は、冗長なルールとしては検出されず、シャドウイングとして検出される。
Ｒ3：ｄＩＰ∈［１０−５５］→受理
Ｒ2：ｄＩＰ∈［４０−１２０］→拒否
Ｒ1：ｄＩＰ∈［２０−９０］→受理
Ｒ4：ｄＩＰ∈［３０−１１０］→受理
【００１２】
この状況は、その手法の曖昧さに起因するものである。その手法は、冗長性の実際の定義を検討するのではなく、異なるアルゴリズムを先に採用する。これに加えて、異なるルールの実行順序は、オリジナルのルール集合に従って維持されない。
【００１３】
E. Al-Shaer及びH. Hamed著「Modeling and management of firewall policies」（IEEE TRANS.NETW.SERV.MANAGE., vol. 1-1, April 2004, XP-002464039）と題する科学刊行物は、レガシーファイアウォールにおけるルールの衝突及び潜在的な問題を明らかにするための、ファイアウォールポリシーアノマリの自動発見、並びに、ルールの挿入、削除、及び変更のためにアノマリのないポリシー編集を提供する一組の技法及びアルゴリズムを開示している。
【００１４】
E. AL-Shaer他著「Conflict classification and analysis of distributed firewall policies」（IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, vol. 23, No. 10, October 2005）と題する科学刊行物は、集中型ファイアウォール及び分散ファイアウォールにおいてポリシーアノマリを自動的に発見するための一組の技法及びアルゴリズムを開示している。
【００１５】
米国特許出願公開第２００６／０２９４５７７号公報は、異なるファイアウォールデザイン間の不一致を解決する、システム、コンピュータで実施可能な方法、及びコンピュータ使用可能媒体を開示している。
【００１６】
したがって、セキュリティルールの衝突を検出して管理する、改良された方法が必要とされている。
【００１７】
［発明の概要］
本発明の第１の態様によれば、請求項１に記載される衝突を管理する方法が提案される。すなわち、セキュリティルールＲiの集合Ｓを含む電子デバイスにおいてセキュリティルールの衝突を管理する方法であって、
ルールＲiのそれぞれは、インデックスｉによって識別され、
ルールのそれぞれは、条件属性のリストＣと、対応する少なくとも１つの判断とを備え、
前記条件属性のリストは、ｍ個の個々の条件属性Ｃnをさらに備え、ｍ個の個々の条件属性Ｃnは、条件を設定するための対応する値の区間によって識別され、ｎは、ルールにおける異なる条件属性を識別する変数である
方法において、
前記方法は、前記電子デバイスによって実行される複数のステップとして、
‐衝突管理ツリーのレベルｎのルートノードを構成する（１０７）ステップであって、ここで、ルートレベルでは、ｎはｍに等しい、構成するステップと、
‐ｍ個のノードレベルを備える前記衝突管理ツリーを構築する（１１３、１１５、１１７、１１９、１２１、１２３、１２５、１２７、１３１、１３３、１３５）ステップであって、
異なるレベルの前記ノードは、前記条件属性の区間又は部分区間によってラベル付けされるアークによって互いに接続され、
前記ノードは、対応するノードにつながっている前記アークをラベル付けする前記区間又は前記部分区間によって設定された前記条件を満たす、１つ又は複数のルールによって識別される、
構築するステップと、
‐ノードレベルｎ＝１を起源として、前記アークにリーフを追加することによって、前記衝突ツリーを完成する（１２９）ステップであって、
リーフのそれぞれは、現在のリーフにつながっている前記アークをラベル付けする前記区間又は前記部分区間によって設定された前記条件を満たす１つ又は複数のルールによって識別される、
完成するステップと、
‐同じリーフに少なくとも２つのルールがあるか否かをチェックすると共に、同じリーフに少なくとも２つのルールがある場合に、前記セキュリティルールの集合Ｓに少なくとも１つの構成ミスのアノマリがあると判断するステップであって、
前記ツリーにおいて、前記アークの少なくともいくつかは、前記セキュリティルールの集合Ｓに少なくとも１つの構成ミスのアノマリがあるときに、条件を設定するための値の区間の部分区間によってラベル付けされる、
チェックすると共に判断するステップと
を含む、方法である。
【００１８】
提案される発明は、検討されているフィルタリング設備をトラバースするインバウンドトラフィック及びアウトバウンドトラフィックをフィルタリングするために管理者によって指定された異なるセキュリティルールの起こり得るすべての構成ミスを見つけることができる新規の方法を導入する。このメカニズムには、他の解決法と比較すると、多くの利点がある。提案される方法は、ルールの再配列（すなわちルールの優先度）に依存しない。この方法は、冗長性、シャドウイング等の、すべての起こり得るアノマリを見つける。異なるアノマリを、管理者に正確に提示することもできる。したがって、アノマリの一因となったすべてのルール及びそれらの属性範囲値を、さらなる調査のために、管理者に正確に示すことができる。したがって、ネットワークエレメントの管理者は、すべての構成ミスに関して警告を受けることができ、アプリオリに定義されたポリシーに従って、エラーの存在しない最良のルール集合を選ぶのは、管理者次第である。また、この方法が、管理者の選択に従って、エラーの存在しない１つの可能なルール集合を自動的に与えるように、この方法をアプリオリに調整することも可能である。
【００１９】
提案される方法は、「ルール記憶保持（rules memory keeping）」の利点も有する。この方法は、すべての構成ミスのアノマリ及び可能性を見つけるだけでなく、同時に、オリジナルのルール集合を、後に説明するようなそのデータ構造体に保持する。さらに、この方法は、ルールの更新に対して不変である。対応するアノマリが存在しない最終的なルール集合を盲目的に与える他の方法とは異なり、本提案の方法は、異なるアノマリを見つけながら、オリジナルのルール集合を保持する。本提案の方法は、ルールの順序にかかわらず同じ結果を与え、すべてのアノマリが見つけられるのに対して、他の方法は、生成される最後のルール及び追加又は省略される新規のルールに依存する。
【００２０】
本発明の第２の態様によれば、検出された衝突を管理することができる電子デバイスのコンピュータ手段にロードされて実行されると、第１の態様による方法を実施するための命令を含むコンピュータプログラム製品がさらに提供される。
【００２１】
本発明の第３の態様によれば、請求項１２に記載の衝突を管理することが可能な電子デバイスが提供される。すなわち、通信システムにおいてセキュリティルールの衝突を管理することが可能な電子デバイスであって、
前記電子デバイスはセキュリティルールＲiの集合Ｓを含み、
前記ルールＲiのそれぞれは、インデックスｉによって識別され、
前記ルールのそれぞれは、条件属性のリストＣと、対応する少なくとも１つの判断とを備え、
前記条件属性のリストは、ｍ個の個々の条件属性Ｃnをさらに備え、ｍ個の個々の条件属性Ｃnは、条件を設定するための対応する値の区間によって識別され、ここで、ｎは、ルールにおける異なる条件属性を識別する変数である
電子デバイスにおいて、
前記電子デバイスは、
‐衝突管理ツリーのレベルｎのルートノードを構成する手段であって、ここで、ルートレベルでは、ｎはｍに等しい、構成する手段と、
‐ｍ個のノードレベルを備える前記衝突管理ツリーを構築する手段であって、
異なるレベルの前記ノードは、前記条件属性の区間又は部分区間によってラベル付けされるアークによって互いに接続され、
前記ノードは、対応するノードにつながっている前記アークをラベル付けする前記区間又は前記部分区間によって設定された前記条件を満たす、１つ又は複数のルールによって識別される、
構築する手段と、
‐ノードレベルｎ＝１を起源として、前記アークにリーフを追加することによって、前記衝突管理ツリーを完成する（１２９）手段であって、
リーフのそれぞれは、現在のリーフにつながっている前記アークをラベル付けする前記区間又は前記部分区間によって設定された前記条件を満たす１つ又は複数のルールによって識別される、
完成する手段と、
‐同じリーフに少なくとも２つのルールがあるか否かをチェックする手段であって、
同じリーフに少なくとも２つのルールがある場合に、前記電子デバイスは前記セキュリティルールの集合Ｓに少なくとも１つの構成ミスのアノマリがあると判断するように構成され、
前記ツリーにおいて、前記アークの少なくともいくつかは、前記セキュリティルールの集合Ｓに少なくとも１つの構成ミスのアノマリがあるときに、条件を設定するための値の区間の部分区間によってラベル付けされる、
チェックする手段と
を含む、電子デバイスである。
【００２２】
本発明の他の特徴及び利点は、添付図面を参照して、非限定的な例示の実施形態の以下の説明から明らかになる。
【００２３】
［発明の実施形態の詳細な説明］
次に、添付図面を関して、本発明のいくつかの実施形態をより詳細に説明する。以下の説明では、本発明の実施形態は、インターネットプロトコル（ＩＰ）を使用する通信システムの文脈で説明される。しかしながら、本発明は、ＩＰの使用に決して限定されるものではない。
【００２４】
本発明は、フィルタリング設備の内部の論理デバイス又は物理デバイスにおいて実施することができる。この設備の唯一の条件は、この設備が、いくつかの条件が満たされたときに適用される、対応する動作又は判断を提供するルールの集合を使用するということである。これらのデバイスの例は、シグネチャデータベースで収集されたルールの集合を使用するハードウェアファイアウォール、ソフトウェアファイアウォール（ｎｅｔｆｉｌｔｅｒ、ｉｐｆｉｌｔｅｒ等）、侵入検知／防止システム（ｓｎｏｒｔ、ｄｒａｇｏｎ等）である。さらに、この技法は、サービス品質（ＱｏＳ）管理ツール、ルータ（ルーティング表管理、ボーダゲートウェイプロトコル集約等）、光ネットワークユニット（ＯＮＵ）、ギガビットイーサネット（登録商標）受動光ネットワーク（ＧｅＰＯＮ）、光ライン終端装置（ＯＬＴ）、ルールを管理するための電子メールアプリケーション等の、他の非セキュリティ設備に一般化することができる。また、本発明は、新しい世代のネットワークにも役立つ。実際には、本発明は、現在のボイスオーバーＩＰ（ＶｏＩＰ）ネットワークで重要性が大きくなったセッションボーダコントローラ（ＳＢＣ）及びアプリケーションレイヤゲートウェイ（ＡＬＧ）の衝突構成に使用されるように推奨される。
【００２５】
当該技術分野で行われた関連する研究は、ルールの集合におけるいくつかのアノマリを検出することにのみ焦点を当ててきたが、本発明は、ファイアウォールの構成ミスだけでなく、ｓｎｏｒｔのルール等の侵入検知ルール、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ、Ｕｎｉｘ（登録商標）等の異なるオペレーティングシステム（ＯＳ）におけるファイル（又はディレクトリ）アクセス制御、産業メカニズム、及びオートメーションにも適用される。以下の詳細な説明では、本発明がより詳細に説明され、ファイアウォールルールが本発明の適用性を効率的に示すことから、本発明の様々なプロシージャが、これらのルールの集合に適用される。
【００２６】
ソフトウェアデバイス又はハードウェアデバイスのいずれかである現在の多くのセキュリティ設備の部分品は、主として、表１に紹介されるルールのようなルールの集合によって構成されている。一般に、各ルールは、属性値の集合に従って、受理、拒否、アラート、ログ等の判断を提供する。ファイアウォールフィルタリング機能の場合、これらの属性は、異なるＩＰパケットヘッダフィールドに関連付けることができる。しかしながら、この属性リストは、セッション開始プロトコル（ＳＩＰ）を含む現在のＶｏＩＰプロトコル等のアプリケーションプロトコルに関連付けることもできる他の特徴に拡張可能である。簡単にするために、以下の説明では、いくつかのＩＰヘッダフィールドのみが検討され、たとえば、プロトコル（Ｐ）（たとえば、伝送制御プロトコル、ユーザデータグラムプロトコル、インターネット制御メッセージプロトコル等）、送信元ＩＰアドレス（ｓＩＰ）、宛先ＩＰアドレス（ｄＩＰ）、送信元ポート（ｓＰ）、宛先ポート（ｄＰ）等のみが検討される。異なる条件属性が満たすべき唯一の条件は、それらの条件属性が取り得る値が有限集合又は有限区間に属するということである。
【００２７】
以下では、ある文法が提供される。この文法は、異なる複数のルールのそれぞれに関して、対応する判断（複数可）を実現するために、ある一組の条件が満たされるべきであるということを説明するのに使用される。単一のルールのグローバルシンタックスは、以下のように定義することができる。
Ｒi→<条件（複数）> ： <判断（複数）>
<条件（複数）> → 条件∧<条件（複数）> ／ 条件
<判断（複数）> → 判断 <ＯＰ> <判断（複数）> ／ 判断
<ＯＰ> → ∧／∨／…
【００２８】
このシンタックスでは、ＯＰは、オペランドを示し、∧は、ＡＮＤ演算を示し、∨は、ＯＲ演算を示す。「条件」端子は、属性が或る集合に属するか否かに関してその属性が検査される際の任意の条件とすることができる。この集合は、単一の集合に対応してもよく、多くの集合の共通集合に対応してもよく、異なる集合の和集合に対応してもよく、及び／又は、他の任意の演算集合に対応してもよい。「判断」端子は、ファイアウォール等のルールを管理するエレメントが適用することができる、「拒否」、「受理」、「ログ」等の任意の動作に対応する。この集合は、離散値（「ｔｃｐ」、「ｕｄｐ」、「ａ」、「ｂ」、「ｌｅｆｔ」、「ｒｉｇｈｔ」、「ｕｐ」、「ｄｏｗｎ」、「１」、「２」、「
【００２９】
【数１】
0005204581.tif 000002
【００３０】
」、「
【００３１】
【数２】
0005204581.tif 000003
【００３２】
」、「Paris」、「London」、「read」、「write」、「execute」等）、及び／又は、連続値（区間［−３０；５０００］、［２０．３６；５６２］等）を含むことができる。しかしながら、これらの集合又は区間は有限であるべきである。
【００３３】
【表１】
0005204581.tif 000004
【００３４】
上記に提示したグローバルシンタックスから、表１の例に関してのフィルタリングルールシンタックスは、
<条件（複数）> → <Ｐ> ∧ <ＳＩＰ> ∧ <ＳＰ> ∧ <ＤＩＰ> ∧ <ＤＰ>
<判断> → 受理 ／ 拒否
となる。
【００３５】
表記∧は、論理ＡＮＤ演算を意味する。表１では、５つの条件属性（略して属性）のみが提示されている。すなわち、Ｐ、ｓＩＰ、ｓＰ、ｄＩＰ、及びｄＰのみが提示されている。本発明の実施形態の以下の説明では、シャドウイングアノマリのみが考慮される。他のアノマリは、たとえ曖昧であっても、以下で説明する方法によってすべて検出されることに留意すべきである。現在知られている衝突検出方法は、完全なルールアノマリ（complete rule anomaly）を使用するが、本発明の実施形態は、以下で説明するような部分ルール構成ミス定義（partial rule misconfiguration definition）を使用する。
【００３６】
以下の説明では、Ｓは、複数（少なくとも１つ）のルールＲiを備えるフィルタリングルールの集合を示す。この場合、定義から、Ｓ内において決して適用されないルールＲiの少なくとも一部が存在する場合、またその場合に限り、Ｒは部分的なシャドウイング（partial shadowing）を有する。これは、このルール部分がマッチし得るすべてのパケットが、それ以前の、より高い優先度を有するルールの少なくとも一部によって事前にマッチされ得るということに起因する。
【００３７】
本発明は、起こり得るすべてのアノマリを検出することができるロバストで簡潔な方法を、最適な方法で提供する。すなわち、空間消費及び時間消費が最小にされる。かなりのアノマリを有する多数のルールの解析は、特に、実験をしていない（non experimented）セキュリティ管理者によって記述されたときは、容易な作業ではない。さらに、本発明の実施形態は、ネットワーク管理者に、アノマリの存在しないルールの適切な組み合わせを選ばせる。この決定は、自動的に行うこともできるし、管理者の好みに従って手動で行うこともできる。
【００３８】
本発明の実施形態は、すべての条件及び対応する判断を要約するツリーを使用する。このツリーは、衝突管理ツリーと呼ぶことができる。図１のフローチャートに提示されるアルゴリズムは、本発明の一実施形態を示し、ルールの初期集合を最適な集合に分割・集約するために従う異なるステップを与えている。このアルゴリズムから生成されたツリーは、ノード、アーク、及びリーフという３つのコンポーネントを含む。第１に、各ノードは１つの条件属性に対応し、たとえば、ｓＩＰは、この例における１つの条件属性である。第２に、各アークは、１つの条件属性値、又は、値の１つの範囲でラベル付けされる。最後に、リーフは、カップル、すなわち、ルール番号及びその対応する判断に対応する。或るリーフに到達するまで、ルールの条件属性値及びノード値に基づいてツリーを上から下にトラバースすることによって、異なるルールを読み出すことができる。或るリーフに到達すると、２つの場合が起こり得る。ルートからリーフへツリーをトラバースするときに見られる異なる値に従って、１つのカップルしか存在しないか、又は、少なくとも２つのカップルがある。前者の場合、対応するルールにはアノマリが存在しない。この後者の場合には、異なるルール間の衝突が、検査されたリーフに存在する。
【００３９】
以下では、図１のフローチャートをより詳細に説明する。まず、ステップ１０１において、ルール集合Ｓが定義され、このルール集合は、個々のルールＲiを含む。ここで、ｉは、集合Ｓにおけるルール番号ｉを指定する正の整数である。さらに、各ルールは、ｍ個の条件属性も含む。ここで、ｍは、正の整数である。次に、ステップ１０３において、ルール集合Ｓが空であるか否かがチェックされる。ルール集合が空である場合、ステップ１０５において、単一のノードが、失敗の値と共に返される。ここでこのプロシージャは終了する。
【００４０】
他方、ステップ１０３において、ルール集合が空でないと判断された場合、最初のルートノードが、ステップ１０７において構築される。この最初のルートノードは、レベルｎのノードである。ここで、ｎは、異なるノードレベルを識別する変数であり、ルートレベルでは、ｎはｍに等しい。各ノードレベルは、１つの条件属性に対応する。したがって、ｍ個の異なるノードレベルがあり、最後のレベルの後にリーフがある。ノードの各レベルは、いくつかの並列のノードを有する場合があることに留意すべきである。ノードは、異なるルールによってさらに識別され、その結果、最初のノードは、ルール集合Ｓに含まれるすべてのルールで識別されるようになる。
【００４１】
次に、ステップ１０９において、条件属性のリストＣが空であるか否かがチェックされる。空である場合、取得された衝突ツリーが、ステップ１１１において返される。条件属性のリストＣが空でない場合、このプロシージャは、ステップ１１３において、ＣnをＣのｎ番目の属性であるとして定義することによって続行される。次に、ステップ１１５において、変数Ｘが定義され、ステップ１１７において、この変数は、Ｒ1［Ｃn］の値、すなわち、最初のルールの現在の条件属性値を取るように定義される。同時に、インデックスｉが２に設定される。
【００４２】
次に、ステップ１１９において、インデックスｉが、現在のノードの集合Ｓのカージナル値と比較される。このカージナル値は｜Ｓ｜とも示される。カージナル値とは、現在のノードのルールの個数を意味する。このルールの個数は、必ずしも、ルール集合全体のルールの個数と同じ値であるとは限らない。ｉが、現在のノードのＳのカージナル値よりも大きくない場合、Ｘは、ステップ１２１において、（Ｘ−Ｒi［Ｃn］）∪（Ｒi［Ｃn］−Ｘ）∪（Ｘ∩Ｒi［Ｃn］）の値を取るように、すなわち、集合（Ｘ−Ｒi［Ｃn］）と、集合（Ｒi［Ｃn］−Ｘ）と、集合（Ｘ∩Ｒi［Ｃn］）との和集合の値を取るように定義される。次に、インデックスｉが１だけインクリメントされる。このステップが計算されると、このプロシージャは、ステップ１１９において、インデックスｉが現在のノードのＳのカージナル値よりも大きいか否かを再び比較することによって続行される。インデックスｉが現在のノードのＳのカージナル値よりも大きい場合、ステップ１２３において、Ｘの現在の値が返される。この値Ｘは、ステップ１２１において定義された集合から構成される。次に、ステップ１２５において、ステップ１２１で説明したような集合が、現在のノードからレベルｎ−１のノードへのアークを構築するのに使用され、それによって、これらのアークは、これらの異なる集合でラベル付けされるようになる。したがって、現在のノードからレベルｎ−１のノードに向かうアークは、集合の個数と同数だけ存在する。レベルｎ−１のノードは、さらに、対応するルールでも識別され、それによって、各ノードは、対応するノードにつながっているアークをラベル付けする対応する集合によって設定された条件を満たすルールによってのみ、識別されることになる。集合は、条件属性の値又はこれらの値の部分範囲に対応することに留意すべきである。したがって、各ノードレベルは、いくつかの並列な子ノードを有する場合がある。子ノードは、父ノード又は現在のノードにアークで接続されたノードであるように定義される。
【００４３】
次に、ステップ１２７において、ｎ−１が０に等しいか否かが判断される。０に等しい場合、検査すべき属性条件はなく、ステップ１２９において、ステップ１２１で定義された各集合に関して単一のリーフが返される。返されたリーフのそれぞれは、対応するカップル（Ｒi，Ｄi）の値を取る。ここで、Ｒiは、現在のノードの残りのルールに対応し、Ｄiは、対応する判断（複数可）に対応する。各リーフは、現在のリーフにつながっているアークをラベル付けする集合の条件を満たす１つ又は複数のルールによって識別される。現在のリーフに衝突がない場合には、１つのカップルのみが返されるのに対して、衝突がある場合には、少なくとも２つのカップルが返される。
【００４４】
このプロシージャは、次に、ステップ１３１において、現在の条件属性Ｃnに関して、又は、同様にレベルｎに関して、すべてのノードが処理されたか否かを判断することによって続行される。これは、集合には対応するノードが常に存在するので、直前のレベル（すなわちレベルｎ＋１）のすべてのノードをチェックすると共に、すべての集合が処理されたことを検証することによって行われる。集合は、ステップ１２１において定義されたもの、すなわち、和集合を取得するための集合である。これは、等価的に、直前のレベルのノード（複数可）からのすべてのアークが処理されたことをチェックすることとして表すこともできる。すべてのノードが処理されていない場合には、ステップ１３３において、次のノードが検討され、次に、このプロシージャはステップ１１５で続行される。このループは、すべてのノードが処理されるまで続行される。他方、ステップ１３１において、現在のレベルｎに関して、すべてのノードが処理されたと判断される場合、このプロシージャは、ステップ１３５において、現在のノードＣnをＣから削除することによって続行される。すなわち、ｎは、値ｎ−１を取る。ステップ１３５から、このプロシージャは、ステップ１０９に直接向かう。
【００４５】
次に、提案される方法のオペレーションをより良く示すために、いくつかの具体例を説明する。ルール集合Ｓが２つのルールＲ1及びＲ2のみを含む単純な例にこの方法を適用することによって始めることにする。
Ｒ1：Ｐ∈｛ｔｃｐ｝∧ｓＩＰ∈［１０−５５］∧ｓＰ∈任意∧ｄＩＰ∈［６０−８０］∧ｄＰ∈｛８０｝→受理；
Ｒ2：Ｐ∈｛ｔｃｐ｝∧ｓＩＰ∈［６０−８０］∧ｓＰ∈任意∧ｄＩＰ∈［３０−１２０］∧ｄＰ∈｛２１，２２，８０｝→拒否。
【００４６】
この場合も、条件属性の個数は５である。この場合、５番目（ｎ＝５）の条件属性はＰであり、ステップ１１７、１１９、１２１、及び１２３を実行することによって、１つの値、すなわちｔｃｐのみが取得される。ステップ１１７、１１９、１２１、及び１２３は、以下の説明におけるパーティショニングプロシージャとして知られている。図２は、このステップが実行された後に取得されるツリーの最初の部分を示している。
【００４７】
４番目（ｎ＝４）の条件属性はｓＩＰである。パーティショニングプロシージャを適用することによって、２つの異なる区間［１０−５５］及び［６０−８０］が取得される。ここで、区間［１０−５５］及び［６０−８０］は、ステップ１２１の和集合演算の集合である。したがって、図３に示すようなサブツリーが返され、図２に示すようなツリーに取り付けられる。
【００４８】
３番目（ｎ＝３）の条件属性はｓＰである。パーティショニングプロシージャを適用することによって、ツリーは、図４に示すように拡張される。この時、ツリーは、２つの互いに素な(disjoint)ブランチを含む。
【００４９】
２番目（ｎ＝２）の条件属性はｄＩＰである。パーティショニングプロシージャを適用することによって、ツリーは、図５に示すように、再び拡張される。しかしながら、さらに別のブランチは追加されず、既存のブランチのみが拡張される。
【００５０】
１番目（ｎ＝１）の条件属性はｄＰである。パーティショニングプロシージャをこの例に適用することによって、既存のブランチが再び拡張されるが、新しいブランチは追加されない。これを図６に示す。したがって、このとき、２つのｓＰノード、２つのｄＩＰノード、及び２つのｄＰノードが存在し、それらのノードは、それぞれ１つのアークのみを含む。
【００５１】
最後に、ｎ＝０のとき、検査する条件属性はない。５つの条件属性のすべてが検査されている。その場合、条件特徴（condition feature）の集合を示すＣは空である。したがって、図６の未決定の各アークに関して単一のノードが返される。それらのノードのそれぞれは、残りのカップル、すなわち、ルール番号（複数可）及びその対応する判断（複数可）を含む。図７に示すように生成された衝突ツリーによれば、各リーフには、１つのカップルしかない。したがって、部分的なシャドウイングアノマリはない。この結果に従って、アノマリは存在せず、２つのルールは独立である。
【００５２】
次の例は、アノマリを含む３ルール集合の集合に対する同じアルゴリズムの実行を示している。集合Ｓは次の通りである。
Ｒ1：Ｐ∈任意∧ｓＩＰ∈ 任意∧ｓＰ∈任意∧ｄＩＰ∈ ｘ．ｘ．ｘ．［１−１２０］∧ｄＰ∈［２１−８０］→受理；
Ｒ2：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ｘ．ｘ．ｘ．［１−６０］∧ｄＰ∈［１０−２５］→ 拒否；
Ｒ3：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈ 任意∧ｄＩＰ∈ｘ．ｘ．ｘ．［３１−２００］∧ｄＰ∈［２１−６５５３５］→拒否。
【００５３】
図８は、図１ａ及び図１ｂのフローチャートのアルゴリズムを適用することによって生成された衝突ツリーを示している。ツリーがどのようにして取得されるのかをより良く示すために、数値例を次に説明する。ｎ＝１であると仮定すると、現在検査される条件属性はｄＰであり、ｄＰの最も左のノードを検討するものとする。ここで、このノードは、ルールＲ1及びＲ2を含む。このノードは、ルートからのパス｛Ｐ：任意，ｓＩＰ：任意，ｓＰ：任意，ｄＩＰ：［１−１３０］｝に従うことによって取得される。このパスは、図８の衝突ツリーのルートから最も左のパスである。この場合、Ｒ1［Ｃn］＝Ｒ1［ｄＰ］＝［２１−８０］であり、Ｒ2［Ｃn］＝Ｒ2［ｄＰ］＝［１０−２５］である。ここで、Ｃnは、現在検査されている属性であり、この場合には、ｄＰ、すなわち宛先ポートである。
【００５４】
パーティショニングプロシージャの適用を続けるものとする。
Ｘ←Ｒ1［Ｃn］＝Ｒ1［ｄＰ］＝［２１−８０］；ｉ＝２
｜Ｓ｜＝｜｛Ｒ1，Ｒ2｝｜＝２
【００５５】
この場合、条件ｉ＝２が満たされる。この時、Ｘ←（Ｘ−Ｒ2［ｄＰ］）∪（Ｒ2［ｄＰ］−Ｘ）∪（Ｘ∩Ｒ2［ｄＰ］）は、Ｘ←（［２１−８０］−［１０−２５］）∪（［１０−２５］−［２１−８０］）∪（［２１−８０］∩［１０−２５］）＝［２６−８０］∪［１０−２０］∪［２１−２５］となる。［２６−８０］∩［１０−２０］∩［２１−２５］＝｛｝、すなわち空集合であることに留意すべきである。
【００５６】
次に、ｉがインクリメントされ、その結果、ｉ←ｉ＋１＝３となる。この時、ｉ＝３>｜Ｓ｜＝｜｛Ｒ1，Ｒ2｝｜＝２となる。これは、３つの集合、すなわち、［２６−８０］、［１０−２０］、及び［２１−２５］に対応する結果Ｘが返されることを意味する。これらの３つの集合は、ノードｄＰ：｛Ｒ1，Ｒ2｝を起源とする３つのアークがある理由である。
【００５７】
図８から、この３ルール集合が、破線の輪郭線で描かれたリーフによって視覚的に示されている、４つの部分的シャドウイングアノマリを含むことを理解することができる。しかしながら、各リーフにおいてシャドウイングされたルールの個数をカウントすると、１つのリーフが、より低い優先度を有する２つのルールをシャドウイングさせて３つのルールを含むので、図８は、５つのシャドウイングアノマリを示している。最初の部分的シャドウイングは、２つのルールＲ1及びＲ2の以下の部分に対応する。
Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ｘ．ｘ．ｘ．［１−３０］∧dＰ∈ ［２１−２５］→｛Ｒ1：受理，Ｒ2：拒否｝。
【００５８】
使用される優先度がファーストマッチである場合、すなわち、Ｒ1が、優先度に従った順序で最初である場合、衝突ツリーによって検出されるように、衝突ツリーからの上記生成されたルールに従ったＲ1及びＲ2の双方がマッチするパケットは、Ｒ2の判断（拒否）の代わりにＲ1の判断（受理）を常に取り、逆の場合も同じである。これと同じ部分的シャドウイングアノマリは、ルールＲ1、Ｒ2、及びＲ3の以下の部分に関して発生する。
−第２の部分的シャドウイング｛Ｒ1，Ｒ2，Ｒ3｝：
Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ｘ．ｘ．ｘ．［３１−６０］∧ｄＰ∈［２１−２５］→｛Ｒ1：受理，Ｒ2：拒否，Ｒ3：拒否｝；
−第３の部分的シャドウイング ｛Ｒ1，Ｒ3｝：
Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ｘ．ｘ．ｘ．［３１−６０］∧ｄＰ∈［２６−８０］→｛Ｒ1：受理，Ｒ3：拒否｝；
−第４の部分的シャドウイング｛Ｒ1，Ｒ3｝：
Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ｘ．ｘ．ｘ．［６１−１２０］∧ｄＰ∈［２１−８０］→｛Ｒ1：受理，Ｒ3：拒否｝。
【００５９】
部分的シャドウイングアノマリが検出されると、２つの異なる解決法が、その問題を解決するために提供される。第１の解決法によれば、管理者は、衝突ツリーによって検出された異なるアノマリに関しての警告を受ける。管理者は、次に、検出されたそれらの異なるアノマリに関して適切な判断を行うことができる。
【００６０】
第２の解決法によれば、アノマリの存在しないルールの集合を提供することによって、結果が自動化される。この解決法は、ルールの優先順序付けを考慮することを含む。したがって、ルールＲiが、ルールＲjよりも高い優先度のために順位が最初である場合に、Ｒiが、衝突に対応するパスのルールとして選ばれる。したがって、この解決法は、管理者によって提供された最初のルール集合のマッチング順序と同じマッチング順序を維持する。これに加えて、決して適用されない異なる属性値は、最初のルール集合から削除される。この解決法は、管理者への警告に加え、オプションとして考えられる。上記例に関して、以下の集合が、アノマリを有しない新しい集合として提供される。
Ｒ1'：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ｘ．ｘ．ｘ．［１−１２０］∧ｄＰ∈［２１−８０］→受理；
Ｒ2'：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ ｘ．ｘ．ｘ．［１−６０］∧ｄＰ∈［１０−２０］→拒否；
Ｒ3'： Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ ｘ．ｘ．ｘ．［３１−１２０］∧ｄＰ∈［８１−６５５３５］→拒否；
Ｒ32'：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈ 任意∧ｄＩＰ∈ ｘ．ｘ．ｘ．［１２１−２００］∧ｄＰ∈［２１−６５５３５］→ 拒否。
【００６１】
衝突ツリーから生成されたこれらのルールは、完全に互いに素であり(disjoint)、アノマリが存在しない。それらのルールは互いに素であるので、それらのルールの実行の結果は、異なるルールの順序を変更しても同じである。この例では、Ｒ1は変更されていない。すなわち、Ｒ1は当初のＲ1である。Ｒ1は、以下のようにして衝突ツリーから取得される。
Ｒ11：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ ｘ．ｘ．ｘ．［１−３０］∧ｄＰ∈［２１−２５］→受理；
Ｒ12：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ ｘ．ｘ．ｘ．［１−３０］∧ｄＰ∈［２６−８０］→受理；
Ｒ13：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ｘ．ｘ．ｘ．［３１−６０］∧ｄＰ∈［２１−２５］→受理；
R14：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ｘ．ｘ．ｘ．［３１−６０］∧ｄＰ∈［２６−８０］→受理；
Ｒ15：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ｘ．ｘ．ｘ．［６１−１２０］∧ｄＰ∈［２１−８０］→受理；
【００６２】
次にこのルール集合は以下のルール集合にグループ化される。
Ｒ1(1-2)：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ｘ．ｘ．ｘ．［１−３０］∧ｄＰ∈［２１−２５］∪［２６−８０］→受理；
Ｒ1(3-4)：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ｘ．ｘ．ｘ．［３１−６０］∧ｄＰ∈［２１−２５］∪［２６−８０］→受理；
Ｒ15：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ｘ．ｘ．ｘ．［６１−１２０］∧ｄＰ∈［２１−８０］→受理。
【００６３】
これは次に、１つのルールにグループ化される。
Ｒ1(1-5)：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ｘ．ｘ．ｘ．［１−３０］∪ｘ．ｘ．ｘ．［３１−６０］∪ｘ．ｘ．ｘ．［６１−１２０］∧ｄＰ∈［２１−２５］∪［２６−８０］∪［２１−２５］∪［２６−８０］∪［２１−８０］→受理；
【００６４】
このルールはオリジナルのルールＲ1に等しい。
Ｒ1(1-5)：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ ｘ．ｘ．ｘ．［１−１２０］∧ｄＰ∈［２１−８０］→受理。
【００６５】
他の２つのルールＲ2及びＲ3は、以下の方法で衝突ツリーから取得される。
Ｒ21：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ ｘ．ｘ．ｘ．［１−３０］∧ｄＰ∈［１０−２０］→拒否；
Ｒ22：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ｘ．ｘ．ｘ．［３１−６０］∧ｄＰ∈［１０−２０］→拒否；
Ｒ31：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ ｘ．ｘ．ｘ．［３１−６０］∧ｄＰ∈［８１−６５５３５］→ 拒否；
Ｒ32：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ ｘ．ｘ．ｘ．［６１−１２０］∧ｄＰ∈［８１−６５５３５］→ 拒否；
Ｒ33：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ ｘ．ｘ．ｘ．［１２１−２００］∧ｄＰ∈［２１− ６５５３５］→拒否。
【００６６】
上記のルール集合は以下のルール集合に等しい。
Ｒ2(1-2)：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ ｘ．ｘ．ｘ．［１−３０］∪ｘ．ｘ．ｘ．［３１−６０］∧ｄＰ∈［１０−２０］→拒否；
Ｒ3(1-2)：Ｐ∈任意∧ｓＩＰ∧任意∧ｓＰ∈任意 ∧ｄＩＰ∈ ｘ．ｘ．ｘ．［３１−６０］∪ｘ．ｘ．ｘ．［６１−１２０］∧ｄＰ∈［８１−６５５３５］→拒否；
Ｒ33：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ ｘ．ｘ．ｘ．［１２１−２００］∧ｄＰ∈［２１−６５５３５］→拒否。
【００６７】
これは同様に、以下のルール集合に等しい。
Ｒ2'：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ ｘ．ｘ．ｘ．［１−６０］∧ｄＰ∈［１０−２０］→ 拒否；
Ｒ31'：Ｐ∈任意∧ｓＩＰ任意∧ｓＰ∈任意∧ｄＩＰ∈ｘ．ｘ．ｘ．［３１−１２０］∧ｄＰ∈［８１−６５５３５］→拒否；
Ｒ32'：Ｐ∈任意∧ｓＩＰ∈任意∧ｓＰ∈任意∧ｄＩＰ∈ｘ．ｘ．ｘ．［１２１−２００］∧ｄＰ∈［２１−６５５３５］→拒否。
【００６８】
図１ａ及び図１ｂのフローチャートに示すような衝突ツリーアルゴリズムを使用することによって生成された、あるルール集合に対応する衝突ツリーが、２つ以上のカップル（すなわち、ルール及びその対応する判断（複数可）を有するリーフ）を含まない場合には、そのルール集合にはアノマリが存在しない。たとえば、図９に示すツリーは、いかなるアノマリも存在しない。このツリーは、衝突ツリーアルゴリズムを適用して衝突ツリーから生成される。衝突は、より高い優先度を有するルールの方を選んで選ばれるので、管理者の決定を考慮することなく直接の決定が行われる。
【００６９】
本発明の他の能力を示すために、「Detection and Removal of Firewall Misconfiguration」と題する刊行物に定義されたような冗長性アノマリを含む表１に提示される例を検討することにする。その文書では、冗長性は、次のように定義されている。Ｓをフィルタリングルールの集合とする。この場合、Ｓは、次の条件が当てはまるような少なくとも１つのフィルタリングルールＲiがＳに存在する場合、またその場合に限り、完全な冗長性（complete redundancy）を含む。この条件は、すなわち、（１）Ｒiが他のどのルールによってもシャドウイングされない；（２）ＳからＲiを削除しても、フィルタリング結果は変化しない、という条件である。ルールＲiが完全に冗長であるか否かをチェックするには、このルールが存在する各リーフに関して、同じ判断を有する少なくとも１つのルールが存在することをチェックすることで十分である。提示を簡便にするために、次の例では、宛先ＩＰ（ｄＩＰ）の条件属性に対応するノードレベルのみをより詳細に説明する。
【００７０】
Ｒ1が冗長なルールとして検出される一方、ルールＲ4は、シャドウイングされたルールとして検出される。しかしながら、表２に示すように、ルールＲ1及びＲ3の順序が交換され、同じ優先順序が維持される場合、ルールＲ1は、冗長なルールとして検出されない。これは、その刊行物の冗長性の定義における曖昧さに起因するものである。冗長性チェック機能は、検討中の現在のルールに続く次のルールを調べているので、ルールＲ1の冗長性は、順序がＲ3と交換されたときには、アルゴリズム上の理由から検出されない。実際には、或るルールが、同じ判断及びより低い優先順序を有する別のルール又は少なくとも２つの他のルールの組み合わせに含まれる条件属性値の部分集合を有する場合、最初のルールが冗長なものとして検出される一方、他のルール（複数可）は維持される。
【００７１】
【表２】
0005204581.tif 000005
【００７２】
上記で定義したような冗長性をチェックするには、衝突ツリーにおける異なるリーフを調べて、各ルールについて、より低い優先度を有し且つ検査されているルールの判断と同じ判断を有する、別のルールの存在をチェックすることで十分である。たとえば、図１０に示す衝突ツリーによれば、あらゆるリーフにおいて、同じ判断及びより低い優先度を有する少なくとも別のルールがあるように見えるため、ルールＲ1は、冗長なものとして検出される。実際には、Ｒ1がその存在を示す最初の３つのリーフに、より低い優先度及び同じ判断を有するＲ3が存在し、より低い優先度及び同じ判断を有するＲ5が、Ｒ1が存在する最後の３つのリーフに存在する。Ｒ1が存在する３番目のリーフには、２つのルールＲ3及びＲ5が共に存在する。ルールの順序にかかわらず一般的な冗長性を検出するには、たとえば表２に提示されるＲ1について、検査されているルールと同じ判断を有し、より低い優先度又はより高い優先度を有する別のルールの存在をチェックすることで十分である。
【００７３】
「Detection and Removal of Firewall Misconfiguration」と題する刊行物で定義されているようなシャドウイングアノマリの検出には、冗長性アルゴリズムを適用した後、各リーフに１つのルールのみを保持することで十分である。ルールＲiがマッチするすべてのパケットが、より高い優先順序を有する前のルール又はルールの組み合わせによってすでにマッチされていることから、ルールＲiは決して適用されない、そのようなルールＲiが少なくとも１つＳに存在する場合に、ルール集合Ｓは、完全なシャドウイングアノマリを含む。この場合、Ｒiは、完全にシャドウイングされたルールと呼ばれる。本発明で提案される方法を使用することによるルールＲiの完全なシャドウイングの検出には、このルールが存在する各リーフをチェックすることで十分である。したがって、そのルールが存在するリーフのすべてにおいて、そのルールが、より高い優先順序を有するルールの空でない有限集合によって部分的にシャドウイングされている場合、このルールは、完全にシャドウイングされている。したがって、いずれかのルールが、生成された新しい衝突ツリーのどのリーフにも存在しない場合には、そのルールは、シャドウイングアノマリとみなされる。これを行う１つのオプションは、図９で行われたように、リーフにおいて、より低い優先度を有するルールを削除することを含む。図１１は、冗長性アルゴリズムを適用した後にシャドウイングアルゴリズムを適用した結果を提示している。
【００７４】
図１１に示す衝突ツリーから、エラーの存在しない以下のルールの集合が生成される。
Ｒ3'：ｄＩＰ∈ｘ．ｘ．ｘ．［１−５５］→受理；
Ｒ2'：ｄＩＰ∈ｘ．ｘ．ｘ．［９１−１２０］→拒否；
Ｒ5'：ｄＩＰ∈ｘ．ｘ．ｘ．［５６−９０］→受理；
このルールの集合は、「Detection and Removal of Firewall Misconfiguration」と題する刊行物で紹介されているような冗長性及びシャドウイングのアノマリの定義を適用することによって取得される。
【００７５】
しかしながら、次のアノマリ定義、すなわち、決して適用されないルールＲiの少なくとも一部がＳに存在する場合、またその場合に限り、Ｒは部分的シャドウイングを提示するというアノマリ定義も使用することができる。この定義が、図１０に示すオリジナルの衝突ツリー上で使用される場合、これと対応するアノマリが存在しない衝突ツリーは図１２に示される。この結果は、図１２において、単に、各リーフの最初のルールを選び、現在のリーフの他のルールを削除することによって取得される。
【００７６】
図１２に示す衝突ツリーから、エラーの存在しない以下のルール集合が生成される。ｄＩＰ条件属性のみが、例示の題材として検討されている。
Ｒ1'：ｄＩＰ∈ｘ．ｘ．ｘ．［２０−９０］→受理；
Ｒ2'：ｄＩＰ∈ｘ．ｘ．ｘ．［９１−１２０］→拒否；
Ｒ3'：ｄＩＰ∈ｘ．ｘ．ｘ．［１−１９］→受理；
【００７７】
図１１の衝突ツリーから生成されたルール集合は、図１２の衝突ツリーから生成されたルール集合と異なっていることに留意すべきである。これは、「Detection and Removal of Firewall Misconfiguration」と題する刊行物において紹介されている冗長性の定義に起因するものである。実際には、最初のルール集合に関しては、オリジナルのルール集合に従った実行順序が維持されない一方、本発明で提案されるオプションを使用すると、実行順序は維持される。本発明は、このように、特に時間消費の意味で複雑度の少ない衝突管理方法を提供する。管理者は、図１ａ及び図１ｂのフローチャートのアルゴリズムから自動的に生成された衝突ツリーから採用される適切な手段を選ぶことができる。
【００７８】
衝突ツリーのリーフにおける異なるルールを使用することによって、完全なシャドウイング及び完全な冗長性等の構成ミスを発見することができる。これらの構成ミスを別の方法で定義することができる。ルールの構成ミスの定義にかかわらず、その検出は、異なる衝突ツリーのリーフに存在する、異なるルールに直接的に依存する。ルールは、完全にシャドウイングされると同時に、完全に冗長である場合がある。他の多くのアノマリ（一般化、相関等）を定義してもよい。これらのアノマリのすべてを、衝突ツリーから検出することができ、特にリーフから検出することができる。
【００７９】
上記例の衝突ツリーから生成されたルールは、完全に互いに素であり、アノマリが存在しない。それらのルールは互いに素であるので、それらの実行の結果は、異なるルールの順序を変更しても同じである。
【００８０】
本発明は、同様に、ネットワーク機器のコンピュータ手段にロードされて実行されると、本発明の実施形態の任意の方法ステップを実装することができるコンピュータプログラム製品に関するものでもある。
【００８１】
本発明は、同様に、上述した方法ステップを実施するように構成されたネットワーク機器に関するものでもある。コンピュータプログラムは、ネットワーク機器に実行されるように構成することができる。
【００８２】
図面及び上記説明で詳細に本発明を図示して説明してきたが、このような図示及び説明は、例証又は例示とみなされるべきであり、限定とみなされるべきではない。本発明は、開示した実施形態に限定されるものではない。
【００８３】
特許を請求する発明を実施する際に、図面、開示、及び添付の特許請求の範囲を検討することによって、当業者は、開示した実施形態に対する他の変形を理解して達成することができる。特許請求の範囲において、「備える」又は「含む」という用語は、他の要素又はステップを排除するものではなく、不定冠詞「a」又は「an」は複数を排除するものではない。単一のプロセッサ又は他のユニットが、特許請求の範囲で列挙されたいくつかのアイテムの機能を遂行する場合がある。単に、異なる特徴が、互いに異なる従属請求項に列挙されているということは、これらの特徴の組み合わせを好都合に使用することができないことを示すものではない。特許請求の範囲におけるどの参照符号も、本発明の範囲を限定するものとみなされるべきではない。
【図面の簡単な説明】
【００８４】
【図１ａ】本発明の一実施形態による衝突検出方法を示すフローチャートである。
【図１ｂ】本発明の一実施形態による衝突検出方法を示すフローチャートである。
【図２】本発明の一実施形態による衝突ツリーを作成するときのステップを示す図である。
【図３】本発明の一実施形態による衝突ツリーを作成するときのステップを示す図である。
【図４】本発明の一実施形態による衝突ツリーを作成するときのステップを示す図である。
【図５】本発明の一実施形態による衝突ツリーを作成するときのステップを示す図である。
【図６】本発明の一実施形態による衝突ツリーを作成するときのステップを示す図である。
【図７】本発明の一実施形態による衝突ツリーを作成するときのステップを示す図である。
【図８】本発明の一実施形態に従って取得されたルールアノマリを示す衝突ツリーを示す図である。
【図９】本発明の一実施形態に従って取得されたルールアノマリの存在しない衝突ツリーを示す図である。
【図１０】ルールアノマリの含む別の衝突ツリーの一部を示す図である。
【図１１】ルールアノマリの存在しない図１０の衝突ツリーの一部を示す図である。
【図１２】ルールアノマリの存在しない図１０の衝突ツリーの一部を示す図である。
【図１ａ】
0005204581.tif 000006
【図１ｂ】
0005204581.tif 000007
【図２】
0005204581.tif 000008
【図３】
0005204581.tif 000009
【図４】
0005204581.tif 000010
【図５】
0005204581.tif 000011
【図６】
0005204581.tif 000012
【図７】
0005204581.tif 000013
【図８】
0005204581.tif 000014
【図９】
0005204581.tif 000015
【図１０】
0005204581.tif 000016
【図１１】
0005204581.tif 000017
【図１２】
0005204581.tif 000018