(57)【要約】エミュレーション部（２０６）は、ネットワーク構成情報に基づいて、ファイアウォール装置により管理されるネットワークと等価な仮想ネットワークを構築する。チェック実行部（２０５）は、ファイアウォール装置に設定されているポリシを検証するための指示をエミュレーション部（２０６）に与える。エミュレーション部（２０６）は、与えられた指示に従って接続部（２０７）を介してファイアウォール装置へパケットを送る。チェック実行部（２０５）は、ファイアウォール装置からの応答に基づいてファイアウォール装置に設定されているポリシを検証する。
2004062216.tif 000002
【特許請求の範囲】
【請求項１】
ファイアウォール装置にポリシが正しく設定されているか否かをチェックするポリシチェック装置であって、
上記ファイアウォール装置により管理されるネットワークの構成を記述するネットワーク構成情報を格納する構成情報格納手段と、
上記ファイアウォール装置により実行されるべきポリシを記述するポリシ情報を格納するポリシ情報格納手段と、
上記ネットワーク構成情報に基づいて仮想ネットワークを構築し、その仮想ネットワークを利用してパケットを送信するエミュレーション手段と、
上記仮想ネットワークと上記ファイアウォール装置とを接続する接続手段と、
上記エミュレーション手段により送信されたパケットをモニタすることにより、上記ファイアウォール装置の動作が上記ポリシ情報に従っているか否かを検証するチェック実行手段、
を有するポリシチェック装置。
【請求項２】
請求項１に記載のポリシチェック装置であって、
上記エミュレーション手段は、上記ファイアウォール装置により許可されるべきパケットを上記ファイアウォール装置へ送信し、
上記チェック実行手段は、上記ファイアウォール装置から上記パケットを受信できなかったときは、上記ファイアウォール装置に正しくポリシが設定されていないと判断する。
【請求項３】
請求項１に記載のポリシチェック装置であって、
上記エミュレーション手段は、上記ファイアウォール装置により拒否されるべきパケットを上記ファイアウォール装置へ送信し、
上記チェック実行手段は、上記ファイアウォール装置から上記パケットを受信したときは、上記ファイアウォール装置に正しくポリシが設定されていないと判断する。
【請求項４】
請求項１に記載のポリシチェック装置であって、
上記エミュレーション手段は、上記ファイアウォール装置により拒否されるべきパケットを上記ファイアウォール装置へ送信し、
上記チェック実行手段は、上記ファイアウォール装置から所定のメッセージを含むパケットを受信したときは、上記ファイアウォール装置に正しくポリシが設定されていると判断する。
【請求項５】
条件および結果から構成されるポリシがファイアウォール装置に正しく設定されているか否かをチェックするポリシチェック装置であって、
上記ファイアウォール装置により実行されるべきポリシから特異点条件を検出する検出手段と、
上記ファイアウォール装置により実行されるべきポリシから上記特異点条件以外の所定数の通常領域条件を選択する選択手段と、
上記特異点条件および上記所定数の通常領域条件についてそれぞれ対応する結果が上記ファイアウォール装置により得られるか否かを検証する検証手段、
を有するポリシチェック装置。
【請求項６】
請求項５に記載のポリシチェック装置であって、
上記検出手段は、許可すべきアドレスと拒否すべきアドレスとの閾値アドレスを上記特異点条件として検出する。
【請求項７】
請求項５に記載のポリシチェック装置であって、
上記検出手段は、許可すべきポート番号と拒否すべきポート番号との閾値ポート番号を上記特異点条件として検出する。
【請求項８】
請求項５に記載のポリシチェック装置であって、
上記検証手段は、上記特異点条件および上記所定数の通常領域条件にそれぞれ対応するパケットを上記ファイアウォール装置へ送信し、そのパケットを受信した上記ファイアウォールの動作に基づいてそのファイアウォール装置にポリシが正しく設定されているか否かを検証する。
【請求項９】
ファイアウォール装置にポリシが正しく設定されているか否かをチェックするポリシチェック方法であって、
上記ファイアウォール装置により管理されるネットワークの構成を記述するネットワーク構成情報を取得し、
上記ファイアウォール装置により実行されるべきポリシを記述するポリシ情報を取得し、
上記ネットワーク構成情報に基づいて仮想ネットワークを構築し、
その仮想ネットワークを利用して上記ファイアウォール装置へパケットを送信し、
上記ファイアウォール装置へ送信されたパケットをモニタすることにより、上記ファイアウォール装置の動作が上記ポリシ情報に従っているか否かを検証する、
を特徴とするポリシチェック方法。
【請求項１０】
条件および結果から構成されるポリシがファイアウォール装置に正しく設定されているか否かをチェックするポリシチェック方法であって、
上記ファイアウォール装置により実行されるべきポリシから特異点条件を検出し、
上記ファイアウォール装置により実行されるべきポリシから上記特異点条件以外の所定数の通常領域条件を選択し、
上記特異点条件および上記所定数の通常領域条件についてそれぞれ対応する結果が上記ファイアウォール装置により得られるか否かを検証する、
を特徴とするポリシチェック方法。
【請求項１１】
ファイアウォール装置にポリシが正しく設定されているか否かをチェックさせるためのポリシチェックプログラムであって、
コンピュータにより実行されたときに、
上記ファイアウォール装置により管理されるネットワークの構成を記述するネットワーク構成情報を取得する手段、
上記ファイアウォール装置により実行されるべきポリシを記述するポリシ情報を取得する手段、
上記ネットワーク構成情報に基づいて仮想ネットワークを構築する手段、
その仮想ネットワークを利用して上記ファイアウォール装置へパケットを送信する手段、
上記ファイアウォール装置へ送信されたパケットをモニタすることにより、上記ファイアウォール装置の動作が上記ポリシ情報に従っているか否かを検証する手段、
を提供するポリシチェックプログラム。
【請求項１２】
条件および結果から構成されるポリシがファイアウォール装置に正しく設定されているか否かをチェックするポリシチェックプログラムであって、
コンピュータにより実行されたときに、
上記ファイアウォール装置により実行されるべきポリシから特異点条件を検出する手段、
上記ファイアウォール装置により実行されるべきポリシから上記特異点条件以外の所定数の通常領域条件を選択する手段、
上記特異点条件および上記所定数の通常領域条件についてそれぞれ対応する結果が上記ファイアウォール装置により得られるか否かを検証する手段、
を提供するポリシチェックプログラム。
【発明の詳細な説明】
【技術分野】  本発明は、ファイアウォールのポリシが適切に設定されていることをチェックする装置、方法、およびそのためのプログラムに係わる。
【背景技術】  近年、ネットワークに接続する端末装置の数が増加し、あらゆる種類の情報がネットワークを介して送受信されるようになってきている。そして、ネットワークに接続するサーバ装置は、不特定多数のユーザからアクセスされ得る状態になっている。このため、予め決められたアクセスのみを許可するため、あるいは予め決められたアクセス以外のアクセスを拒否するために、ファイアウォールが構築されることが多くなってきている。
ファイアウォールには、例えば、特開２００１−３５８７１７号公報に記載されているように、予めポリシ（セキュリティポリシ）が設定されている。ここで、「ポリシ」とは、どのようなアクセスを許可または拒否すべきかを記述した情報であり、例えば、許可または拒否すべき送信元アドレス、送信先アドレス、送信元ポート番号、送信先ポート番号などが設定される。そして、ファイアウォール装置は、そのファイアウォールを通過しようとするパケットを検出すると、そのパケットが予め設定されているポリシを満たしているか否かを調べる。このとき、そのパケットがポリシを満たしていれば、そのパケットは送信先アドレスへ転送される。一方、そのパケットがポリシを満たしていなければ、そのパケットは拒否される。すなわち、そのパケットは、ファイアウォールを通過できない。
このように、ファイアウォール装置は、予め設定されているポリシに従ってアクセスの許可／拒否を判断する。このため、ポリシが正しく設定されていないと、許可されるべきアクセスが拒否されてしまったり、拒否されるべきアクセスが許可されてしまったりする。したがって、ネットワークの運用開始前にファイアウォールのポリシの設定をチェックしておく必要がある。
ファイアウォールのポリシの設定のチェックは、一般には、実際に運用するネットワークを構築した後、そのネットワークに接続されているサーバ装置やＩＰホスト装置間でファイアウォールを介して実際にメッセージを送受信することにより行われている。すなわち、チェック作業が人手で行われている。
しかし、この方法では、実際にネットワークを構築した後でないと、ポリシのチェックを行うことができないので、早い段階でファイアウォールのバグ等を修正することが困難になる。また、管理すべきネットワークの規模が大きくなると、許可すべき通信パスの数または拒否すべき通信パスの数が膨大であり、全てのアクセスパターンについて人手でチェックを行うことは実質的に不可能である。
また、他のチェック方法としては、ポートスキャンツールを用いる方法が考えられる。この方法は、送信先アドレスとして様々なＩＰアドレスを順番に指定しながら各ＩＰアドレスにＳＹＮメッセージを送信し、それに対する応答の有無によってポリシが適切に設定されているかを調べるものである。なお、この種のポートスキャンツールは、ＩＰ層ネットワークテスタまたはインターネットテストツールとして知られており、その技術に関連する文献は、例えば、下記のサイトから入手可能である。
2004062216.tif 000003
しかし、この方法においては、実際に設定されているＩＰアドレスからでないとチェックを行うことができない。すなわち、任意のアドレスからチェックを行うことは実質的にできない。また、送信先のＩＰアドレスに実際にＩＰホストが存在しないと、その送信先から応答メッセージが戻ってこないので、この場合もチェックを行うことができない。さらに、ＵＤＰ通信の場合は、一般に、送信先端末は応答メッセージを返送しないので、この場合もチェックを行うことができない。さらに、許可すべき通信パスの数または拒否すべき通信パスの数が増加すると、ポリシのチェックに要する時間は非現実的な程度に長くなってしまう。
このように、現在行われているチェック方法には、様々な問題がある。ところが、ファイアウォールのポリシの設定方法に係わる研究は広く行われているものの、ポリシが正しく設定されていることをチェックする方法については、ほとんど検討されておらず、上述のようにネットワークを構築した後に人手でチェックしているというのが実状である。このため、ファイアウォールのポリシの設定方法に係わる文献は数多く存在するものの、そのポリシが正しく設定されていることをチェックする方法に係わる文献は見つからなかった。
【発明の開示】
本発明の目的は、実際のネットワークが構築される前に、ファイアウォールのポリシをチェックできる方法を提供することである。本発明の他の目的は、許可または拒否の判断をすべき通信パスの数が多い場合であっても、ファイアウォールのポリシが正しく設定されていることを一定以上の精度でチェックできる方法を提供することである。本発明のさらに他の方法は、任意の通信プロトコルが採用されているネットワークにおいて、ファイアウォールのポリシをチェックできる方法を提供することである。
本発明のポリシチェック装置は、ファイアウォール装置にポリシが正しく設定されているか否かをチェックする装置であって、上記ファイアウォール装置により管理されるネットワークの構成を記述するネットワーク構成情報を格納する構成情報格納手段と、上記ファイアウォール装置により実行されるべきポリシを記述するポリシ情報を格納するポリシ情報格納手段と、上記ネットワーク構成情報に基づいて仮想ネットワークを構築してその仮想ネットワークを利用してパケットを送信するエミュレーション手段と、上記仮想ネットワークと上記ファイアウォール装置とを接続する接続手段と、上記エミュレーション手段により送信されたパケットをモニタすることにより上記ファイアウォール装置の動作が上記ポリシ情報に従っているか否かを検証するチェック実行手段、を有する。
この発明によれば、ファイアウォール装置が管理する実際のネットワークと等価な仮想ネットワークが構築され、その仮想ネットワークを利用してファイアウォール装置のポリシがチェックされるので、実際にネットワークを構築する前にファイアウォール装置のポリシをチェックできる。また、上記仮想ネットワークを利用してファイアウォール装置へパケットを送信した場合、その送信先は当該ポリシチェック装置内に存在するので、送信先端末が応答メッセージを返送しない通信プロトコルであっても、ファイアウォール装置のポリシのチェックを行うことができる。
本発明の他の態様のポリシチェック装置は、条件および結果から構成されるポリシがファイアウォール装置に正しく設定されているか否かをチェックする装置であって、上記ファイアウォール装置により実行されるべきポリシから特異点条件を検出する検出手段と、上記ファイアウォール装置により実行されるべきポリシから上記特異点条件以外の所定数の通常領域（サンプリング領域）条件を選択する選択手段と、上記特異点条件および上記所定数の通常領域条件についてそれぞれ対応する結果が上記ファイアウォール装置により得られるか否かを検証する検証手段、を有する。
この発明によれば、ファイアウォール装置が許可／拒否の判断を行うすべてのパターンについてポリシのチェックが行われるのではなく、所定数の条件についてのみチェックを行うので、チェックに要する時間が短縮される。このとき、ポリシを構成する条件の中の特異点条件についてはチェックが実行されるので、これによってポリシの設定ミスまたは記述ミスの大部分は検出される。また、通常領域内の条件についてのチェック回数を増やせば、ポリシの設定ミスまたは記述ミスが存在しないことの確率を統計的に算出できる。
【図面の簡単な説明】  図１は、ファイアウォール装置により管理されるネットワークの構成を示す図である。
図２は、ファイアウォール装置とポリシチェック装置との接続を説明する図である。
図３は、図１に示すネットワークを簡略化することにより得られるネットワークの構成を示す図である。
図４は、図３に示す簡略化ネットワークがポリシチェック装置によりエミュレーションされた状態を示す図である。
図５は、ポリシチェック装置の構成図である。
図６Ａ〜図６Ｃは、ネットワーク構成情報の実施例である。
図７は、ポリシ情報の実施例である。
図８は、ポリシチェック装置の動作を説明する概略フローチャートである。
図９は、ポリシチェック装置により実行されるチェック方法を模式的に示す図である。
図１０は、ポリシチェック処理のフローチャートである。
図１１は、抽出されたポリシ文の例である。
図１２は、特異点および他の選択点を決定する方法について説明する図である。
図１３Ａ〜図１３Ｅは、特異点およびサンプリング領域内のアドレスおよびポート番号を抽出する処理を説明する図である。
図１４は、ポリシ情報からチェックすべきアドレス／ポート番号を抽出する処理を示すフローチャートである。
図１５は、本発明の機能を記述したプログラムを実行するコンピュータのブロック図である。
図１６は、本発明に係わるプログラムの提供方法を説明する図である。
【発明を実施するための最良の形態】  以下、本発明の実施形態について図面を参照しながら説明する。
図１は、ファイアウォール装置により管理されるネットワークの構成を示す図である。ここでは、このネットワークは、ネットワーク１〜３から構成されている。そして、各ネットワーク１〜３は、ファイアウォール装置１００を介して相互に接続されている。
ネットワーク１は、ルータ１１、１２を含み、ルータ１１を介してファイアウォール装置１００に接続されている。ここで、ファイアウォール装置１００とルータ１１との間は、「１９２．１６８．１１．０／２４」が割り当てられているサブネットワークにより互いに接続されている。なお、「１９２．１６８．１１．０／２４」は、ＩＰアドレスとして「１９２．１６８．１１．０」〜「１９２．１６８．１１．２５５」が割り当てられていることを意味する。そして、ファイアウォール装置１００の入出力ポートＮＩＣ−１は、このサブネットワークに接続されおり、ＩＰアドレスとして「１９２．１６８．１１．１」が割り当てられている。また、ネットワーク１は、それぞれ「１９２．１６８．１２．０／２４」「１９２．１６８．１３．０／２４」「１９２．１６８．１４．０／２４」「１９２．１６８．１５．０／２４」が割り当てられたサブネットワークを含んでいる。
同様に、ネットワーク２は、ルータ２１、２２、２３、２４を含み、ルータ２１を介してファイアウォール装置１００に接続されている。ここで、ファイアウォール装置１００とルータ２１との間は、「アドレス＝１９２．１６８．２１．０／２４」が割り当てられているサブネットワークにより互いに接続されている。そして、ファイアウォール装置１００の入出力ポートＮＩＣ−２は、このサブネットワークに接続されおり、ＩＰアドレスとして「１９２．１６８．２１．１」が割り当てられている。また、ネットワーク２は、それぞれ「１９２．１６８．２２．０／２４」「１９２．１６８．２３．０／２４」「１９２．１６８．２４．０／２４」「１９２．１６８．２５．０／２４」が割り当てられたサブネットワークを含んでいる。
一方、ネットワーク３は、ルータ３１、３２、３３を含み、ルータ３１および３２を介してファイアウォール装置１００に接続されている。ここで、ファイアウォール装置１００とルータ３１、３２との間は、「アドレス＝１９２．１６８．３１．０／２４」が割り当てられているサブネットワークにより互いに接続されている。そして、ファイアウォール装置１００のポート入出力ポートＮＩＣ−３は、このサブネットワークに接続されおり、ＩＰアドレスとして「１９２．１６８．３１．１」が割り当てられている。また、ネットワーク３は、それぞれ「１９２．１６８．３２．０／２４」「１９２．１６８．３３．０／２４」「１９２．１６８．３４．０／２４」「１９２．１６８．３５．０／２４」が割り当てられたサブネットワークを含んでいる。
上記ネットワークシステムにおいて、ファイアウォール装置１００には、ネットワーク１、２、３間のアクセスまたはパケット転送を制限するためのセキュリティポリシが設定されている。そして、ファイアウォール装置１００は、そのファイアウォールを通過しようとするパケットを受信すると、設定されているポリシに従ってそのパケットを許可または拒否する。
本発明の実施形態のポリシチェック装置は、ファイアウォール装置（図１においては、ファイアウォール装置１００）に正しくポリシが設定されているか否かをチェックする。ただし、実施形態のポリシチェック装置は、ネットワーク（図１においては、ネットワーク１〜３）が実際に構築される前に、そのファイアウォール装置に設定されているポリシをチェックすることができる。
図２は、ファイアウォール装置とポリシチェック装置との接続を説明する図である。ポリシチェック装置２００は、複数の入出力ポート（ＮＩＣ−１ｘ〜ＮＩＣ−３ｘ）を備え、それらのポートを介してファイアウォール装置１００に接続される。ここで、ファイアウォール装置１００は、図１に示した例では、ポートＮＩＣ−１〜ＮＩＣ−３を介してネットワーク１〜３に接続している。そして、後で詳しく説明するが、ファイアウォール装置１００のポリシをチェックするときは、それらのネットワーク１〜３は、ポリシチェック装置２００の中に仮想的に構築される。よって、ファイアウォール装置１００のポリシをチェックするときは、ファイアウォール装置１００のポートＮＩＣ−１〜ＮＩＣ−３は、それぞれポリシチェック装置２００のポートＮＩＣ−１ｘ〜ＮＩＣ−３ｘに接続されることになる。
なお、ポリシチェック装置２００の各入出力ポートがサポートするメディア（通信方法または通信プロトコル）は、ファイアウォール装置１００の対応する入出力ポートがサポートするメディアと同じである。例えば、ファイアウォール装置１００のポートＮＩＣ−１およびポリシチェック装置２００のポートＮＩＣ−１ｘは、共に、「１９２．１６８．１１．０／２４」が割り当てられているサブネットワークの通信方式（例えば、１００ＢＡＳＥ−ＴＸ  全二重）をサポートする。
ところで、ファイアウォール装置１００は、到着したパケットを許可するか或いは拒否するかを判断する際には、そのパケットが到着したポート（ＮＩＣ−１〜ＮＩＣ−３）を検出すると共に、そのパケットのアドレス等をチェックする。しかし、ファイアウォール装置１００は、上記判断をする際に、そのパケットがどのようなルートを辿ってきたのかを認識する必要はない。このため、ポリシチェック装置２００は、ファイアウォール装置１００が管理しようとするネットワークをエミュレートする際、そのネットワーク構成を簡略化することが可能である。
図３は、図１に示すネットワークを簡略化することにより得られるネットワークの構成を示す図である。この簡略化されたネットワークでは、ファイアウォール装置１００から見て１段目のルータ装置のみが存在し、２段目以降のルータ装置は省略される。すなわち、図１に示すネットワーク１は、１つのルータ装置（ルータ１０）、およびそのルータ装置に接続される４つのサブネットワーク「１９２．１６８．１２．０／２４」「１９２．１６８．１３．０／２４」「１９２．１６８．１４．０／２４」「１９２．１６８．１５．０／２４」により表現される。
同様に、図１に示すネットワーク２は、１つのルータ装置（ルータ２０）、およびそのルータ装置に接続される４つのサブネットワーク「１９２．１６８．２２．０／２４」「１９２．１６８．２３．０／２４」「１９２．１６８．２４．０／２４」「１９２．１６８．２５．０／２４」により表現される。また、図１に示すネットワーク３は、２つのルータ装置（ルータ３０ａ、３０ｂ）、およびそれらのルータ装置に接続される４つのサブネットワーク「１９２．１６８．３２．０／２４」「１９２．１６８．３３．０／２４」「１９２．１６８．３４．０／２４」「１９２．１６８．３５．０／２４」により表現される。
図４は、図３に示す簡略化ネットワークがポリシチェック装置２００によりエミュレーションされた状態を示す図である。図４において、ネットワーク１ｘは、図３に示す簡略化されたネットワーク１をエミュレートすることにより得られる仮想的なネットワークである。ここで、ネットワーク１は、図１または図３に示すように、ファイアウォール装置１００のポートＮＩＣ−１に接続されているので、ポリシチェック装置２００内に構築されたネットワーク１ｘは、ポートＮＩＣ−１ｘを介してファイアウォール装置１００のポートＮＩＣ−１に接続される。
同様に、ネットワーク２ｘは、図３に示す簡略化されたネットワーク２をエミュレートすることにより得られる仮想的なネットワークであり、ポートＮＩＣ−２ｘを介してファイアウォール装置１００のポートＮＩＣ−２に接続される。また、ネットワーク３ｘは、図３に示す簡略化されたネットワーク３をエミュレートすることにより得られる仮想的なネットワークであり、ポートＮＩＣ−３ｘを介してファイアウォール装置１００のポートＮＩＣ−３に接続される。
図５は、ポリシチェック装置２００の構成図である。なお、ポリシチェック装置２００は、コンピュータを用いて予め記述されたソフトウェアプログラムを実行することにより実現される。
入出力部２０１は、ＧＵＩ等のユーザインタフェースを提供し、ユーザからのデータ入力を受け付ける。なお、ユーザは、この入出力部２０１を介して、ネットワーク構成情報、ポリシ情報、メディア情報を入力することができる。ここで、これらの情報は、例えば、ＣＳＶ形式で記述される。また、入出力部２０１は、ファイアウォール装置１００に設定されているポリシをチェックした結果を、例えば、ディスプレイ画面またはプリンタに出力する。
ネットワーク構成情報格納部２０２は、入出力部２０１を介して入力されたネットワーク構成情報を格納する。ここで、ネットワーク構成情報は、ファイアウォール装置１００によって管理されるネットワークの構成を示す情報である。
図６Ａ〜図６Ｃは、ネットワーク構成情報の実施例である。図６Ａは、ファイアウォール装置１００の各ポートＮＩＣ−１〜ＮＩＣ−３のＩＰアドレスを表示する情報の例である。また、図６Ｂは、ファイアウォール装置１００に接続される各ネットワーク１〜３に属するサブネットワークを管理する情報の例である。さらに、図６Ｃは、ファイアウォール装置１００の各ポートＮＩＣ−１〜ＮＩＣ−３に接続するゲートウェイおよびそのゲートウェイの先に存在するサブネットワークを管理する情報の例である。ここで、ファイアウォール装置１００の各ポートＮＩＣ−１〜ＮＩＣ−３に接続するゲートウェイも、ポリシチェック装置２００によりエミュレーションされる。そして、ポリシチェック装置２００の各ポートＮＩＣ−１ｘ〜ＮＩＣ−３ｘのＩＰアドレスとして、対応するゲートウェイのＩＰアドレスが設定される。また、各ゲートウェイの先に存在するサブネットワークは、図６Ｂに示す情報が使用される。
ポリシ情報格納部２０３は、入出力部２０１を介して入力されたポリシ情報を格納する。ここで、ポリシ情報は、ファイアウォール装置１００により実行されるべきポリシ（すなわち、ファイアウォール装置１００の動作を定義するセキュリティポリシ）を記述した情報である。
図７は、ポリシ情報の実施例である。ポリシ情報を構成する各ポリシは、それぞれ条件部および結果部を含む。条件部は、この例では、「送信元ＩＰアドレス」「送信元ポート番号」「送信先ＩＰアドレス」「送信先ポート番号」「プロトコル」から構成されている。なお、ポート番号は、ＴＣＰまたはＵＤＰのサービスを指定するポート番号である。また、「プロトコル」は、通信プロトコル（例えば、ＴＣＰ、ＵＤＰ、ＩＣＭＰなど）を識別する。一方、結果部は、条件部に記述されている条件を満たすパケットを受信したときのファイアウォール装置１００の動作（許可または拒否）を表示する。
なお、ポリシ情報格納部２０３に格納されるポリシ情報は、基本的には、ファイアウォール装置１００に実際に設定されているポリシ情報と同じ情報である。ただし、このポリシ情報は、ファイアウォール装置１００の動作を確認するために利用されると共に、ファイアウォール装置１００に設定されているポリシ情報が正しく定義または記述されていることを確認するためにも利用されるので、ファイアウォール装置１００に実際に設定されているポリシ情報とは独立して作成される。
検出／選択部２４は、ポリシ情報格納部２０３に格納されているポリシ情報から、実際にチェックすべき条件を抽出する。なお、検出／選択部２０４の動作については、後で詳しく説明する。
チェック実行部２０５は、検出／選択部２０４により抽出された条件に従って、ファイアウォール装置１００に設定されているポリシをチェックする。具体的には、エミュレーション部２０６に対して、検出／選択部２０４により抽出された条件に対応するパケットの送信を指示する。また、チェック実行部２０５は、エミュレーション部２０６によるパケット送信の結果が、ポリシ情報の結果部に記述されている動作と一致するか否かをチェックする。そして、そのチェック結果を入出力部２０１へ送る。
ここで、チェック実行部２０５により実行されるチェック方法の実施例を示す。
１．通信プロトコルがＴＣＰの場合
（ａ）送信パケットがファイアウォール装置１００により許可される場合
（１）ＳＹＮ／ＳＹＮＡＣＫ／ＡＣＫ／ＦＩＮ／ＲＳＴ／データパケットがファイアウォール装置１００を通過できることを確認する
（ｂ）送信パケットがファイアウォール装置１００により拒否される場合
（１）ＳＹＮ／ＳＹＮＡＣＫ／ＡＣＫ／ＦＩＮ／ＲＳＴ／データパケットがファイアウォール装置１００を通過しないことを確認する
（２）ＳＹＮ／ＳＹＮＡＣＫ／ＡＣＫ／ＦＩＮ／ＲＳＴ／データパケットがファイアウォール装置１００により無視されることを確認する
（３）ファイアウォール装置１００がＳＹＮ／ＳＹＮＡＣＫ／ＡＣＫ／ＦＩＮ／ＲＳＴ／データパケットを拒否する際に予め決められた応答をすることを確認する
２．通信プロトコルがＵＤＰまたはＩＣＭＰの場合
（ａ）送信パケットがファイアウォール装置１００により許可される場合
（１）ダミーパケットがファイアウォール装置１００を通過できることを確認する
（ｂ）送信パケットがファイアウォール装置１００により拒否される場合
（１）ダミーパケットがファイアウォール装置１００を通過しないことを確認する
（２）ダミーパケットがファイアウォール装置１００により無視されることを確認する
（３）ファイアウォール装置１００がダミーパケットを拒否する際に予め決められた応答をすることを確認する
なお、ファイアウォール装置１００に設定されているポリシをチェックする際には、そのファイアウォール装置１００により管理されるネットワークにおいて実際に使用されるアプリケーションを利用することが望ましい。したがって、ポリシチェック装置装置２００は、そのようなアプリケーションを呼び出して利用する機能を備えていることが望ましい。
エミュレーション部２０６は、ネットワーク構成情報格納部２０１に格納されているネットワーク構成情報に基づいて、ファイアウォール装置１００により管理されるネットワークに対応する仮想的なネットワークを構築する。エミュレーション部２０６により構築される仮想ネットワークの実施例は、図５に示した通りである。また、エミュレーション部２０６は、チェック実行部２０５からの指示に従ってパケットを作成して送信する。
接続部２０７は、まず、入出力部２０１から入力されたメディア情報に従ってポートＮＩＣ−１ｘ〜ＮＩＣ−３ｘのメディアを設定する。そして、エミュレーション部２０６により作成されたパケットをそれらのポートＮＩＣ−１ｘ〜ＮＩＣ−３ｘを介してファイアウォール装置１００へ出力する。また、ファイアウォール装置１００からポートＮＩＣ−１ｘ〜ＮＩＣ−３ｘを介して受信したパケットをエミュレーション部２０６に渡す。
図８は、ポリシチェック装置２００の動作を説明する概略フローチャートである。なお、このフローチャートの処理は、例えば、ユーザ（ここでは、ファイアウォール装置１００をチェックする操作者）からの指示により開始される。
ステップＳ１では、入出力部２０１を介してユーザにより入力されるネットワーク構成情報をネットワーク構成情報格納部２０２に格納する。なお、ネットワーク構成情報の実施例は、図６Ａ〜図６Ｃを参照しながら説明した通りである。ステップＳ２では、入出力部２０１を介してユーザにより入力されるポリシ情報をポリシ情報格納部２０３に格納する。なお、ポリシ情報の実施例は、図７を参照しながら説明した通りである。
続いて、ステップＳ３およびＳ４では、検出／選択部２０４、チェック実行部２０５、エミュレーション部２０６、及び接続部２０７により、ファイアウォール装置１００に設定されているポリシをチェックする処理が実行される。なお、この処理については、後で詳しく説明する。
そして、ステップＳ３およびＳ４において非正常動作が検出されなかったときは、処理を終了する。一方、非正常動作が検出されたときは、ステップＳ５において、その非正常動作に係わるポリシを入出力部２０１に通知する。これにより、ファイアウォール装置１００において発生した非正常動作に対応するポリシが、ユーザに通知されることになる。
図９は、ポリシチェック装置２００により実行されるチェック方法を模式的に示す図である。ここでは、図７に示す２つのポリシがチェックされる場合が描かれている。
図７に示す第１番目のポリシは、下記の通りである。
「サブネットワーク１９２．１６８．１４．０／２４からサブネットワーク１９２．１６８．３３．０／２４へのＴＣＰによるアクセスであって、送信先のポート番号が８０であるパケットは、許可する。」
この場合、ポリシチェック装置２００は、送信元アドレスが１９２．１６８．１４．０／２４の中の所定のＩＰアドレスであり、送信先アドレスが１９２．１６８．３３．０／２４の中の所定のＩＰアドレスであり、且つ送信先のポート番号として「８０」が設定されたパケットを作成し、仮想ネットワーク１ｘから仮想ネットワーク３ｘへ送信する。このとき、仮想ネットワーク１ｘの中に設けられているルータ１０は、上記パケットの送信先アドレスに従ってそのパケットをポートＮＩＣ−１ｘに導く。これにより、上記パケットはファイアウォール装置１００へ送られる。
ファイアウォール装置１００は、ＮＩＣ−１を介して上記パケットを受信すると、設定されているポリシに従ってそのパケットを処理する。ここで、ポリシが正しく設定されているとすると、ファイアウォール装置１００は、そのパケットをＮＩＣ−３を介して出力する。この結果、このパケットは、仮想ネットワーク３ｘに送られ、さらに、ルータ３０ｂによって指定された送信先へ転送される。
そして、ポリシチェック装置２００のチェック実行部２０５は、ファイアウォール装置１００から受信したパケットを解析することにより、ファイアウォール装置１００に設定されているポリシが正しいか否かをチェックする。具体的には、例えば、仮想ネットワーク１ｘから送信されたパケットが、ポートＮＩＣ−３ｘを介して受信できたか否かをチェックする。そして、これにより、「実際のネットワークにおけるサブネットワーク１９２．１６８．１４．０／２４からサブネットワーク１９２．１６８．３３．０／２４への送信先のポート番号が８０であるＴＣＰによるアクセス」に係わるポリシがファイアウォール装置１００に正しく設定されているか否かをチェックすることができる。
なお、ファイアウォール装置１００に上記ポリシが正しく設定されていなかったとすると、例えば、上述のようにして仮想ネットワーク１ｘから仮想ネットワーク３ｘへ送信されたパケットは、ファイアウォール装置１００によって拒否されるので、ポリシチェック装置２００は、そのパケットを受信できないことになる。
図７に示す第２番目のポリシは、下記の通りである。
「サブネットワーク１９２．１６８．２５．０／２４からサブネットワーク１９２．１６８．３３．０／２４へのＴＣＰによるアクセスであって、送信先のポート番号が８０であるパケットは、拒否する。」
この場合、ポリシチェック装置２００は、送信元アドレスが１９２．１６８．２５．０／２４の中の所定のＩＰアドレスであり、送信先アドレスが１９２．１６８．３３．０／２４の中の所定のＩＰアドレスであり、且つ送信先のポート番号として「８０」が設定されたパケットを作成し、仮想ネットワーク２ｘから仮想ネットワーク３ｘへ送信する。このとき、仮想ネットワーク２ｘの中に設けられているルータ２０は、上記パケットの送信先アドレスに従ってそのパケットをポートＮＩＣ−２ｘに導く。これにより、上記パケットはファイアウォール装置１００へ送られる。
ファイアウォール装置１００は、ＮＩＣ−２を介して上記パケットを受信すると、ポリシに従ってそのパケットを処理する。ここで、ポリシが正しく設定されているとすると、ファイアウォール装置１００は、そのパケットを拒否する。この結果、このパケットは、ポリシチェック装置２００へは転送されないことになる。
そして、ポリシチェック装置２００のチェック実行部２０５は、所定時間が経過してもなおファイアウォール装置１００から上記パケットを受信しない場合には、ファイアウォール装置１００に設定されているポリシが正しいと判断する。なお、ファイアウォール装置１００に上記ポリシが正しく設定されていなかったとすると、上述のようにして仮想ネットワーク２ｘから仮想ネットワーク３ｘへ送信されたパケットは、例えば、ファイアウォール装置１００を通過してしまう。したがって、ポリシチェック装置２００は、上記パケットを受信したときは、ファイアウォール装置１００に設定されているポリシが正しくないと判断する。
このように、実施形態のチェック方法によれば、ファイアウォール装置１００により管理されるネットワークと等価な仮想ネットワークが構築され、その仮想ネットワークを利用してパケットの送受信を行うことができるので、ネットワークを実際に構築する前であってもファイアウォール装置１００に設定されているポリシをチェックすることができる。また、このチェック方法においては、ポリシチェック装置２００から送信されたパケットがファイアウォール装置１００を介してポリシチェック装置２００に戻ってくるか否かをモニタするので、例えば、ＵＤＰのようにパケットの送信先から送信元へ応答メッセージを返送しないプロトコルであっても、ファイアウォール装置１００の動作をチェックすることができる。
図１０は、図８のポリシチェック処理（ステップＳ３）のフローチャートである。ステップＳ１１は、検出／選択部２０４により実行される前処理であって、ポリシ格納部２０３に格納されているポリシ情報（図７参照）をアドレス毎およびポート番号毎に分解して組み合わせることにより得られる膨大な数のポリシ文から予め用意されているアルゴリズムに基づいて所定数のポリシ文を抽出する。この処理により抽出されたポリシ文の例を図１１に示す。
ステップＳ１２では、ステップＳ１１により得られた複数のポリシ文の中からポリシ文を１つ抽出する。ステップＳ１３では、抽出したポリシ文に対応するパケットを作成する。例えば、図１１に示す第１番目のポリシ文が抽出されたときは、「送信元アドレス＝１９２．１６８．１４．１」「送信元ポート番号＝１」「送信先アドレス＝１９２．１６８．３３．１」「送信先ポート番号＝８０」が設定されたパケットを作成する。ここで、このパケットを作成することは、「ＩＰアドレス＝１９２．１６８．１４．１」が割り当てられた送信元ＩＰホストを仮想ネットワーク１ｘに設けると共に、「ＩＰアドレス＝１９２．１６８．３３．１」が割り当てられた送信元ＩＰホストを仮想ネットワーク３ｘに設けることと等価である。すなわち、ステップＳ１３では、ポリシ文の条件に対応する仮想ネットワークがポリシチェック装置２００内にエミュレーションされる。
ステップＳ１４では、ステップＳ１３で作成したパケットを送信する。このとき、通信プロトコルはポリシ文に従う。また、このパケットは、仮想ネットワーク内のルータにより送信先アドレスに従って転送される。すなわち、このパケットは、ファイアウォール装置１００へ転送される。そして、ファイアウォール装置１００は、ポリシチェック装置２００からパケットを受信すると、自装置に実際に設定されているポリシに従ってそのパケットを許可または拒否する。
ステップＳ１５では、ステップＳ１４で送信したパケットがファイアウォール装置１００を通過して戻ってくるか否かをモニタする。そして、ステップＳ１６において、ファイアウォール装置１００に設定されているポリシの正常性を判定する。具体的には、例えば、ファイアウォール装置１００により許可されるべきパケットを送信した場合は、そのファイアウォール装置１００を介してパケットが返送されてくれば正常と判断し、返送されてこなければ非正常と判断される。同様に、ファイアウォール装置１００により拒否されるべきパケットを送信した場合は、そのファイアウォール装置１００を介してパケットが返送されてくれば非正常と判断し、返送されてこなければ正常と判断される。
なお、この方法は、最も単純なチェックの例であり、より複雑な検証を行うことも可能である。チェック方法の実施例については、上述した通りである。すなわち、例えば、通信プロトコルがＴＣＰであるときに、ファイアウォール装置１００により許可されるべきＳＹＮメッセージを送信し、そのメッセージに対応するＡＣＫメッセージが返送されるか否かによりファイアウォール装置１００に設定されているポリシの正常性をチェックしてもよい。
ステップＳ１７は、ステップＳ１１により得られたすべてのポリシ文について上記ステップＳ１３〜Ｓ１６処理を実行するために設けられている。
次に、図１０の前処理（ステップＳ１１）について説明する。なお、この前処理は、ポリシチェックに要する時間を短縮するために導入されたものである。
ファイアウォールのポリシを、あらゆるアドレス／ポート番号の組合せについてチェックをしようとすると、膨大な時間を要することになる。一例として、図７に示す第１番目のポリシについて検討すると、以下の組合せが必要になる。
送信元アドレスの数：２５６（２８）個
送信先アドレスの数：２５６（２８）個
送信元ポート番号の数：６５５３６（２１６）個
送信先ポート番号の数：１個
プロトコルの数：１個
従って、すべての組合せについてチェックを行おうとすると、チェック回数は下記のように算出される。
チェック回数＝２５６×２５６×６５５３６×１×１
＝４２９４９６７２６９
ここで、１回のチェックに要する時間を１ミリ秒と仮定すると、上記ポリシについてのチェック時間は、約５０日となる。さらに、ファイアウォール装置には、一般に、複数のポリシが設定されていることが多いので、それらのすべてについてチェックすることは、実質的に不可能である。
そこで、本発明では、すべての組合せについてチェックを行うことなく、ポリシの設定ミスまたは記述ミスが発生する可能性が高い組合せ、あるいはポリシの設定ミスまたは記述ミスを検出できる可能性が高い組合せについてのチェックを行うと共に、他の組合せについては選択的にチェックを行う。
このため、本発明では、ポリシの設定ミスまたは記述ミスを検出できる可能性が高い組合せを検出するために、「特異点」という概念を導入する。ここで、「特異点」とは、ポリシの設定ミスまたは記述ミスが発生する確率が一様でない点のことをいい、ファイアウォール装置の内部処理が変化することとなるようなポリシパラメータ（アドレス、ポート番号など））の閾値またはその近傍の値を意味する。下記に特異点の一例を示す。
１．送信元アドレス（ＴＣＰ／ＵＤＰ／ＩＣＭＰ）
（１）プライベートアドレスとグローバルアドレスとの境界
（２）ネットワークアドレス
（３）ブロードキャストアドレス
（４）マルチキャストアドレス
（５）ファイアウォールの手前側にあるアドレスとファイアウォールの先にあるアドレスとの境界
（６）送信先と同じＩＰアドレス
（７）送信先のＮＡＴ変換後のアドレス
２．送信先アドレス（ＴＣＰ／ＵＤＰ／ＩＣＭＰ）
（１）ライベートアドレスとグローバルアドレスとの境界
（２）ネットワークアドレス
（３）ブロードキャストアドレス
（４）マルチキャストアドレス
（５）ファイアウォールの手前側にあるアドレスとファイアウォールの先にあるアドレスとの境界
（６）送信元と同じＩＰアドレス
（７）送信元のＮＡＴ変換後のアドレス
３．送信元ポート番号（ＴＣＰ／ＵＤＰ）
（１）指定された範囲の「始まり」および「終わり」
（２）指定された範囲の「始まり±１」および「終わり±１」
（３）ウェルノウン（ｗｅｌｌ−ｋｎｏｗｎ）ポートの「始まり」および「終わり」
（４）ウェルノウンポートの「始まり±１」および「終わり±１」
（５）送信先ポートと同じポート番号
（６）ＵＤＰの場合は、ＴＣＰと同等のポート番号
（７）ＴＣＰの場合は、ＵＤＰと同等のポート番号
４．送信先ポート番号（ＴＣＰ／ＵＤＰ）
（１）定された範囲の「始まり」および「終わり」
（２）指定された範囲の「始まり±１」および「終わり±１」
（３）ウェルノウンポートの「始まり」および「終わり」
（４）ウェルノウンポートの「始まり±１」および「終わり±１」
（５）送信元ポートと同じポート番号
（６）ＵＤＰの場合は、ＴＣＰと同等のポート番号
（７）ＴＣＰの場合は、ＵＤＰと同等のポート番号
５．送信元ポート番号（ＩＣＭＰ）
（１）指定された範囲の「始まり」および「終わり」
（２）指定された範囲の「始まり±１」および「終わり±１」
（３）送信先ポートと同じポート番号
６．送信先ポート番号（ＩＣＭＰ）
（１）指定された範囲の「始まり」および「終わり」
（２）指定された範囲の「始まり±１」および「終わり±１」
（３）送信元ポートと同じポート番号
図１２は、特異点および他の選択点を決定する方法について説明する図である。ここでは、ポリシを定義する条件の１つとして、「送信元ＩＰアドレスの範囲＝１９２．１６８．１４．０〜１９２．１６８．１４．２５５」が指定されているものとする。この場合、例えば、以下の４点が特異点として検出される。
点Ａ：１９２．１６８．１４．０（指定された範囲の「始まり」）
点Ｂ：１９２．１６８．１４．１（指定された範囲の「始まり＋１」）
点Ｃ：１９２．１６８．１４．２５４（指定された範囲の「終わり−１」）
点Ｂ：１９２．１６８．１４．２５５（指定された範囲の「終わり」）
また、上述の指定された範囲の中で、特異点を除く連続する領域（すなわち、１９２．１６８．１４．２〜１９２．１６８．１４．２５３）のことを、「サンプリング領域」と呼ぶことにする。そして、このサンプリング領域の中から、チェックすべき送信元アドレスとして所定数のＩＰアドレスが抽出される。
そして、ポリシチェック装置は、上述のようにして、ポリシとして設定されている送信元アドレス、送信先アドレス、送信元ポート番号、送信先ポート番号について、それぞれ、特異点を検出すると共に各サンプリング領域から所定数のアドレスまたはポート番号を選択する。そして、それらの組合せに基づいてポリシ文を作成する。
ここで、特異点は、上述したように、ポリシの設定ミスまたは記述ミスを検出できる可能性が高い点である。例えば、許可すべき送信元アドレスとして「１９２．１６８．１４．０〜１９２．１６８．１４．２５５」と設定すべきところを、誤って「１９２．１６８．１４．０〜１９２．１６８．１４．１５５」と記述してしまったとすると、特異点として検出した「１９２．１６８．１４．２５５（指定された範囲の「終わり」）」についてチェックを行うことにより、その記述ミスを検出できる。よって、各特異点についてファイアウォール装置の動作をチェックすれば、ポリシの設定ミスまたは記述ミスが存在したとしても、その大部分を検出することができるものと推測される。
一方、サンプリング領域では、ポリシの設定ミスまたは記述ミスが発生する可能性が一様であると考えられる。そこで、この前提の下で、あるポリシによりある送信元アドレス範囲の通信が許可されている場合に、その範囲に対応するサンプリング領域内で通信が拒否される確率について検討する。なお、ここでは、上記送信元アドレス範囲に対応する特異点においてファイアウォール装置により通信が許可されることが確認されているものとする。
この場合、サンプリング領域内のあるアドレス（Ｘ１）を送信元アドレスとするアクセスがファイアウォール措置により通信が許可されるにもかかわらず、そのサンプリング領域内の他のアドレス（Ｘ２）を送信元アドレスとするアクセスが拒否されるケースとしては、ファイアウォール装置にインストールされているソフトウェアのバグ、あるいは人為的な設定または記述ミスに起因すると考えられる。ここで、これらの原因によって、アドレスＸ１において通信が許可されるにもかかわらず、アドレスＸ２において通信が拒否される確率が「１／１０」であるものとする。ただし、ポリシが正しく記述されているにもかかわらずファイアウォール装置の動作が非正常になるようなバグが存在する確率は非常に低いと考えられる。
そうすると、サンプリング領域からｎ＋１個のアドレスを選択したときに、それらのうちのｎ個のアドレスについて通信が許可され、且つ、残りの１個のアドレスについて通信が拒否される確率は、「１／１０ｎ」になる。従って、例えば、サンプリング領域から１０個のアドレスを選択してチェックしたときに、そのすべてのアドレスおいてポリシ通りの結果が得られたとすると、そのサンプリング領域においてポリシに従わない動作が生じる確率は「１／１０１０」にまで低くなる。さらに、サンプリング領域内のアドレスＸ１において通信が許可されるのもかかわらず、アドレスＸ２において通信が拒否される確率を「１／２」としたとしても、サンプリング領域がら１０個のアドレスを選択してチェックを行えば、そのサンプリング領域においてポリシに従わない動作が生じる確率は１／１０２４であり、十分に小さくなる。よって、各サンプリング領域から選択するアドレスまたはポート番号の数は、この実施例では、それぞれ「１０」とする。
上述のようにして特異点およびサンプリング領域を利用すれば、チェック回数を少なくすることができる。ここでは、アドレス／ポート番号のすべての組合せについてチェックを行う場合と同様に、図７に示す第１番目のポリシについて検討する。
この場合、ポリシをチェックすべき送信元アドレスとしては、図１３Ａに示すように、４個の特異点アドレスが検出されると共に、１０個のサンプリング領域アドレスが選択されるので、合計１４個のアドレスが抽出されることになる。同様に、図１３Ｂおよび図１３Ｃに示すように、１４個の送信元ポート番号および１４個の送信先アドレスが抽出される。なお、送信先ポート番号および通信プロトコルについては、それぞれ、予め１つの番号およびプロトコルが指定されている。よって、これらの抽出されたアドレス／ポート番号の各組合せについてチェックを行おうすると、チェック回数は下記のように算出される。
チェック回数＝１４×１４×１４×１×１
＝２７４４
ここで、１回のチェックに要する時間を１ミリ秒と仮定すると、上記ポリシについてのチェック時間は、２．７４４秒となる。すなわち、この実施形態のチェック方法によれば、ファイアウォール装置に設定されているポリシが正しいことを一定の確率で保証しながら、極めて短時間でそのチェックを行うことができる。
図１４は、ポリシ情報からチェックすべきアドレス／ポート番号を抽出する処理を示すフローチャートであり、図１０に示す前処理（ステップＳ１１）に相当する。なお、図１４に示す処理は、ポリシ毎に実行されるものとする。ここでは、例えば、図７の第１番目のポリシについて実行されるものとする。
ステップＳ２１では、まず、指定されたポリシ情報から送信元アドレスについて設定されている情報を抽出する。すなわち、「送信元アドレス範囲＝１９２．１６８．１４．０〜１９２．１６８．１４．２５５」が抽出される。ステップＳ２２では、ステップＳ２１で抽出した送信元アドレス範囲の中の「始まりアドレス」を検出する。すなわち、「送信元アドレス＝１９２．１６８．１４．０」が検出される。ステップＳ２３では、ステップＳ２１で抽出した送信元アドレス範囲の中の「始まりアドレス＋１」を検出する。すなわち、「送信元アドレス＝１９２．１６８．１４．１」が検出される。ステップＳ２４では、ステップＳ２１で抽出した送信元アドレス範囲の中の「終わりアドレス」を検出する。すなわち、「送信元アドレス＝１９２．１６８．１４．２５５」が検出される。ステップＳ２５では、ステップＳ２１で抽出した送信元アドレス範囲の中の「終わりアドレス−１」を検出する。すなわち、「送信元アドレス＝１９２．１６８．１４．２５４」が検出される。
さらに、ステップＳ２６では、サンプリング領域の中から所定数の送信元アドレスが選択される。すなわち、「アドレス範囲＝１９２．１６８．１４．２〜１９２．１６８．１４．２５３」の中から１０個のＩＰアドレスが選択される。
ステップＳ３１では、指定されたポリシ情報から送信元ポート番号について設定されている情報を抽出する。すなわち、「送信元ポート番号範囲＝０〜６５５３５」が抽出される。ステップＳ３２〜Ｓ３５は、基本的に、ステップＳ２２〜Ｓ２５と同じである。したがって、この処理により、チェックすべき送信元ポート番号として「０」「１」「６５５３４」「６５５３５」が検出される。また、ステップＳ３６は、基本的に、ステップＳ２６と同じである。したがって、この処理により、チェックすべき送信元ポート番号として「ポート番号＝２〜６５５３３」の中から１０個のポート番号が選択される。
ステップＳ４１では、指定されたポリシ情報から送信先アドレスについて設定されている情報を抽出する。すなわち、「送信先アドレス範囲＝１９２．１６８．３３．０〜１９２．１６８．３３．２５５」が抽出される。ステップＳ４２〜Ｓ４５は、基本的に、ステップＳ２２〜Ｓ２５と同じである。したがって、この処理により、チェックすべき送信先アドレスとして「１９２．１６８．３３．０」「１９２．１６８．３３．１」「１９２．１６８．３３．２５４」「１９２．１６８．３３．２５５」が検出される。また、ステップＳ４６は、基本的に、ステップＳ２６と同じである。したがって、この処理により、チェックすべき送信先アドレスとして「アドレス範囲＝１９２．１６８．３３．２〜１９２．１６８．３３．２５３」の中から１０個のＩＰアドレスが選択される。
ステップＳ５１では、指定されたポリシ情報から送信先ポート番号について設定されている情報を抽出する。すなわち、「送信先ポート番号＝８０」が抽出される。この場合、送信先ポート番号が１個だけ指定されており、そのポート番号自体が特異点であり、サンプリング領域は存在しない。よって、ステップＳ５２〜Ｓ５６は実行されない。なお、ステップＳ５２〜Ｓ５６は、基本的に、ステップＳ２２〜２６と同じである。
ステップＳ６１では、指定されたポリシ情報から通信プロトコルを検出する。ここでは、「プロトコル＝ＴＣＰ」が検出される。
そして、上述のようにして抽出された送信元アドレス、送信元ポート番号、送信先アドレス、送信先ポート番号、プロトコルの各組合せについてポリシのチェックが行われる。
なお、ポリシチェック装置が提供する機能は、コンピュータを用いて上述の各フローチャートの処理を記述したプログラムを実行することにより実現される。そのプログラムを実行するコンピュータ３００のブロック図を図１５に示す。
ＣＰＵ３０１は、上述の各フローチャートの処理を記述したプログラムを記憶装置３０２からメモリ３０３にロードして実行する。記憶装置３０２は、例えばハードディスクであり、上記プログラムを格納する。なお、記憶装置３０２は、コンピュータ３００に接続される外部記憶装置であってもよい。メモリ３０３は、例えば半導体メモリであり、ＣＰＵ３０１の作業領域として使用される。なお、図５に示すネットワーク構成情報格納部２０２およびポリシ情報格納部２０３は、記憶装置３０２またはメモリ３０３により実現される。
記録媒体ドライバ３０４は、ＣＰＵ３０１の指示に従って可搬性記録媒体３０５にアクセスする。可搬性記録媒体３０５は、例えば、半導体デバイス（ＰＣカード等）、磁気的作用により情報が入出力される媒体（フレキシブルディスク、磁気テープ等）、光学的作用により情報が入出力される媒体（光ディスクなど）を含むものとする。通信制御装置３０６は、ＣＰＵ３０１の指示に従ってネットワークを介してデータを送受信する。
図１６は、本発明に係わるソフトウェアプログラムの提供方法を説明する図である。本発明に係わるプログラムは、例えば、以下の３つの方法の中の任意の方法で提供される。
（１）コンピュータにインストールされて提供される。この場合、プログラムは、例えば、コンピュータ３００の出荷前にそのコンピュータ３００にプレインストールされる。
（２）可搬性記録媒体に格納されて提供される。この場合、可搬性記録媒体３０５に格納されるプログラムは、基本的に、記録媒体ドライバ３０４を介して記憶装置３０２にインストールされる。
（３）ネットワーク上に設けられているプログラムサーバから提供される。この場合、基本的には、コンピュータ３００は、プログラムサーバからダウンロードすることにより対応するプログラムを取得する。ただし、プログラムをプログラムサーバからダウンロードすることなしに、サーバにおいてそのプログラムを実行することにより得られる機能の提供を受けるようにしてもよい。
【図１】
2004062216.tif 000004
【図２】
2004062216.tif 000005
【図３】
2004062216.tif 000006
【図４】
2004062216.tif 000007
【図５】
2004062216.tif 000008
2004062216.tif 000009
【図７】
2004062216.tif 000010
【図８】
2004062216.tif 000011
【図９】
2004062216.tif 000012
【図１０】
2004062216.tif 000013
【図１１】
2004062216.tif 000014
【図１２】
2004062216.tif 000015
2004062216.tif 000016
【図１４】
2004062216.tif 000017
【図１５】
2004062216.tif 000018
【図１６】
2004062216.tif 000019
【国際調査報告】
2004062216.tif 000020
2004062216.tif 000021