(57)【要約】【目的】  状態テーブルなどにより通信状況を管理し，パケット到着時の通信状況に従ってパケットの通過や廃棄などの動作を決定するステートフルファイアウォールにおいて，通信状況により動作を変化させるステートフルファイアウォールの設定解析する方式を提供することにある．【構成】  通信状況により動作を変化させるステートフルファイアウォールの設定を通信状況のログを用いて，動作が通信状況により変化しないフィルタだけからなるステートレスファイアウォールの選定に変換する設定変換機能を用いてステートフルファイアウォールの設定を解析する方式．【選択図】  図５
2009182574.tif 000002
【特許請求の範囲】
【請求項１】
状態テーブルなどにより通信状況を管理し，パケット到着時の通信状況に従ってパケットの通過や廃棄などの動作を決定するステートフルファイアウォールにおいて，通信状況により動作を変化させるフィルタ（ステートフルフィルタと呼ぶ）を含むステートフルファイアウォールの設定（ステートフル設定と呼ぶ）を，時刻ｔの通信状況を用いて，動作が通信状況に依存しないフィルタ（ステートレスフィルタと呼ぶ）だけからなるステートレスファイアウォールの設定（時刻ｔのステートレス設定と呼ぶ）に変換する設定変換機能を有することを特徴とするファイアウォール設定解析方式．
【請求項２】
１又は複数のパケットヘッダ情報と時刻ｔを指定されたときに，時刻ｔのステートレス設定を用いて，そのパケットヘッダ情報を持つパケットに対してアクションを施すステートフルフィルタを，ステートフル設定の中から検出するフィルタ逆引き機能（ステートフル逆引き機能と呼ぶ）を有することを特徴とする請求項１記載のファイアウォール設定解析方式． 
【請求項３】
時刻ｔのステートレス設定において，どのようなパケットが到着しても決してアクションを施すことのないフィルタを検出する冗長フィルタ検出機能を有することを特徴とする請求項１記載のファイアウォール設定解析方式．
【請求項４】
複数のファイアウォールが多段に接続されたネットワークにおいて，１又は複数のパケットヘッダ情報と時刻ｔを指定されたときに，各ファイアウォールの時刻ｔのステートレス設定を用いて，そのパケットヘッダ情報を持つパケットに対して実際にアクションを施すステートフルフィルタ（実効フィルタと呼ぶ）を検出する実効フィルタ検出機能を有することを特徴とする請求項１記載のファイアウォール設定解析方式．
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，コンピュータネットワークのファイアウォール設定解析方式に関するものである．
【背景技術】
【０００２】
近年，ネットワークに配置されるホストやサーバの増加，ネットワークセキュリティに対する意識の高まりによって，ファイアウォールに設定するルール(以下フィルタ)数は増加している．また，サーバの追加や削除などのネットワーク構成を変更することにより，ファイアウォールの設定を実際のネットワークに合わせて変更する必要がある．このような状況においてファイアウォールの設定にフィルタを追加や削除などを行うには設定を詳細に把握した上で行う必要がある．
昨今では，実際の通信の状態を監視し，それをもとに通過や遮断を判断する機能を持つ
ステートフルファイアウォールが用いられることがある．ステートフルファイアウォールでは，通信の通過や遮断の判断にかかわるフィルタが通信の状態によって変わるという特徴があるため，より詳細なアクセス制御が可能となるが，それらの設定の把握は難しくなる．
また，ネットワークセキュリティを高めるために，ファイアウォールを多段に用いることがある．多段のファイアウォールでは，ネットワークの構成を考慮した上で，ファイアウォール設定を行う必要がある．
ファイアウォールの設定ミスにより，通過すべき通信を通過させていないというような状況が発生する場合が多くあることが報告されている．このような場合はネットワーク利用者にとって不便であり，また，本来通過させてはいけない通信を通過させる設定などのファイアウォールの設定の間違いは不正アクセスやコンピュータウィルスの発生の原因となる．それらの原因を探すためにファイアウォールの解析を行う際にはファイアウォールの設定をなるべく早く把握し，原因となっているフィルタを探し出す必要がある．
このような問題を解決する従来技術には以下のようなファイアウォール設定解析方式がある．
１．１又は複数のパケットヘッダ情報を指定されたときに，ステートレス設定を用いて，そのパケットヘッダ情報を持つパケットに対してアクションを施すステートレスフィルタを，ステートレス設定の中から検出するフィルタ逆引き機能がある（非特許文献１参照．）．
【非特許文献１】「複数ネットワークアクセス検査装置を有するLANのためのフィルタ逆引きシステムの実現」，マルチメディア，分散，協調とモバイル(DICOMO 2006)シンポジウム，２００６年，Vol.2006ｐ．905-908，July 2006」 ２．ステートレス設定を解析し，冗長，矛盾があるフィルタを自動で検出する方式がある（非特許文献２参照．）．
【非特許文献２】「Inferring the Impact of Firewall Policy Changes by Analyzing Spatial Relations between Packet Filters」，Proc. of 2006 IEEE International Conference on Communication Technology，p.203-208，27-30 Nov 2006． これらの技術により，コンピュータネットワークのセキュリティを向上させることができる． ここでは，以降の説明で用いる用語，ステートレスファイアウォールとステートフルファイアウォールの動作の概要を示す．・用語  protocol，src，dst，sport，dportはそれぞれ次の意味を持つ．       protocol：プロトコルを示す       src：送信元アドレスを示す       dst：送信先アドレスを示す       sport：送信元アドレスを示す       dport：送信先アドレスを示す       action：動作を示す  フィルタfのprotocolフィールドを指定するには，f.protocolのように”.”を用いて表す． ・ステートレスファイアウォール  ここでは，ステートレスファイアウォールの例として，iptablesの動作の概要を示す．図１にステートレスファイアウォールのモデルを示す．ステートレスファイアウォールでは，ステートレス設定を用いてパケットの通過や廃棄を決定する．図２にステートレス設定の例を示す．ステートレス設定とはステートレスフィルタの集合である．ここでは，ステートレスフィルタとしてiptablesの次のような形式を用いる．ここで，-p，-s，-d，--sport，--dportの組をヘッダ条件と呼ぶ．また，-jのフィールドをフィルタのアクションと呼ぶ．fi：iptables -A FORWARD -p protocol -s src -d dst -sport sport -dport dport     -j action       fi：フィルタを識別するためのidである．       -p：このフィルタが対象とするプロトコルを指定するフィールドである．        tcpまたはudpを指定する．明示しない場合は任意のプロトコルを表す．       -s：このフィルタが対象とする送信元アドレスを指定する．ここでは133.68.13.1       のようなIPアドレスの指定と，133.68.13.0/24のようなネットワークアドレス        による指定を扱う．ネットワークアドレスを指定した場合は領域として扱い，        133.68.13.0/24の例では[133.68.13.0，133.68.13.255]が指定する領域になる．        明示しない場合は任意のアドレスを表す．        -d：このフィルタが対象とする送信先アドレスを指定する．指定の方式は-sの        フィールドと同様である．       --sport：このフィルタが対象とする送信元ポート番号を指定する．ここでは，“80”        のように単一のポートを指定する．明示しない場合は任意ポート番号を表す．        --dport：このフィルタが対象とする送信先ポート番号を指定する．指定の方式は-s        のフィールドと同様である．        -j：このフィルタのヘッダ条件と照合に成功するパケットの処理を指定する．        ACCEPTであればパケットはファイアウォールを通過するが，DROPであればパ        ケットは廃棄される．   このとき，キーk(protocol,src,dst,sport,dport)とフィルタfiが与えられたとき，次の条件を満たす場合にkはフィルタfiと照合に成功するという．        fi.protocol=k.protocol         ∧ fi.srcが領域の時min(fi.src) <= k.src <= max(fi.src)，        fi.srcがIPアドレスの時fi.src=k.src        ∧ fi.dstが領域の時min(fi.dst) <= k.dst <= max(fi.dst)，        fi.dstがIPアドレスの時fi.dst=k.dst        ∧ fi.sport = k.sport        ∧ fi.dport = k.dport        ここで，min()，max()はそれぞれ，領域の最小値と最大値を表す．        ただし，fiのフィールドがフィルタで明示されていない場合は該当するフィールド        の真偽はパケットのヘッダの値にかかわらず真となる． パケットがファイアウォールに到着した場合のステートレスファイアウォールの動作は次の通りである．STEP１．ファイアウォールはパケットのヘッダをキーとして，ステートレス設定f1〜fnと照合を行う．成功するフィルタfiをfmとする．パケットのヘッダを次のように定義する．    パケットpのヘッダ：protocol src dst sport dport    protocol：上位層のプロトコルを示す．ここでは，tcpまたはudpとする．STEP２．fmが空でなければ，fmに示されているアクションを元に通過や廃棄を決定する．       fmが空ならば，どのフィルタとも照合に成功しなかった場合に行われるファイア        ウォールのデフォルト動作を元に通過や廃棄が決定する． ・  ステートフルファイアウォール  ここでは，ステートフルファイアウォールの例として，iptablesの動作の概要を示す．図３にステートフルファイアウォールのモデルを示す．ステートフルファイアウォールでは，ステートフル設定とステートテーブルを用いてパケットの通過や廃棄を決定する．また，図４にステートフル設定の例を示す．  ステートフル設定とはステートフルフィルタの集合である．ここでは，ステートフルフィルタとしてiptablesの次のような形式を用いる．fi：iptables -A FORWARD-p protocol -s src -d dst -sport sport -dport dport -m state --state state -j action       fi：フィルタを識別するためのidである．       -p，-s，-d，--sport，--dport：ステートレスフィルタと同様である．       --state：このフィルタが対象とする接続の状態を指定する．ここでは，        ESTABLISHEDの指定を扱う．ESTABLISHEDの指定では，双方向のパケット        を検出していることを指定することを示す．       -j：ステートレスフィルタと同様である．図３のステートテーブルはパケットを監視するために用いるテーブルである．ステートテーブルはステートエントリの集合であり，ステートエントリは主に次の項目で構成される．        ステートエントリ：protocol timeout src1 dst1 sport1 dport1 flag src2 dst2 sport2 dport2       timeout：このステートエントリがステートテーブルに存在できる時間を秒数で表        す．1秒ごとに減少していき，0になるとステートテーブルからこのステートエン        トリが削除される．       flag：UNREPLIEDでは，srcからdstの通信を検出した状態である．UNREPLIED        フラグがセットされていなければ，双方向のパケットを検出済みである． パケットがステートフルファイアウォールに到着した場合の動作概要を次に示す．STEP１．パケットのヘッダをもとにステートテーブルの書き換えが行われる．パケットのヘッダのp.proto，p.src，p.dst，p.sport，p.dportとステートテーブルの各ステートエントリのprotocol，src1，dst1，sport1，dport1，をそれぞれ比較し，一致するステートエントリが存在する場合はそのエントリのtimeoutの値を増加させる．また，protocol，src2，dst2，sport2，dport2，とも比較し，一致するエントリが存在すればtimeoutの値を増加させ，UNREPLIEDフラグが設定されていればそれを取り除く．どれにも一致しなければ新しい通信の組として，ステートテーブルにステートエントリを次の形式で追加する．protocol=p.proto timeout=30 src1=p.src dst1=p.dst sport1=p.sport dport1=p.dport flag=UNREPLIED src2=p.dst dst2=p.src sport2=p.dport dport2=p.sport(ここでは，初期のタイムアウトとして30秒���例とする)STEP２. フィルタリストFmを空集合とする．STEP３.パケットのヘッダをキーとして，ステートフル設定の中のステートフルフィルタf1〜fnを順に調べ，ヘッダ条件の照合に成功するものをフィルタリストFmとする．STEP４. Fm が空集合であればSTEP７へ．そうでなければ，Fmの初めのフィルタfを取り出す．STEP５. fがステートレスフィルタであればfm=fとし，STEP６へ．        fがステートフルフィルタであれば，パケットのヘッダのp.proto，p.src，p.dst，        p.sport，p.dportとステートテーブルの各ステートエントリeのe.protocol1，e.src1，        e.dst1，e.sport1，e.dport1，をそれぞれ比較し，一致するものがあり，そのエン        トリにUNREPLIEDフラグがなければfm=fとして，STEP６へ．        パケットのヘッダのp.proto，p.src，p.dst，p.sport，p.dportとステートテーブル        の各ステートエントリeのe.protocol，e.src2，e.dst2，e.sport2，e.dport2をそれ        ぞれ比較し一致するエントリがあればfm=fとしてSTEP６へ．        ステートエントリに一致するものがない場合はSTEP４へ．STEP６．fmで指定されたフィルタのアクションを実行する．廃棄のときは，パケットのヘッダp.proto，p.src，p.dst，p.sport，p.dportとステートテーブルの各ステートエントリのe.protocol，e.src1，e.dst1，e.sport1，e.dport1，をそれぞれ比較し，一致するものがある場合はそのステートエントリを削除する．STEP７．ファイアウォールのデフォルト動作を元に通過や廃棄が決定する．
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のコンピュータネットワークのファイアウォール設定解析方式には，以下の問題がある．
１．ステートフルファイアウォールでは，通信の状況を保持するステートテーブルとステートフル設定によって，パケットの通過や廃棄を判断する．したがって，ステートフル設定を見ただけでは過去のあるホスト宛のパケットがどのフィルタによって通過や廃棄が決定されたのかがわからない．ステートテーブルのログを人手により解析し，通信の状態を把握することによりステートフル設定の中からパケットの通過や廃棄に影響を与えたフィルタを見つけるのは容易ではない．
２．非特許文献１の方式は，ステートレス設定が対象であり，ステートフル設定に対してそれらを直接適用することが不可能である．このためステートフル設定の確認を行うには，ファイアウォールの設定をそれぞれ見る必要がある．つまり，ネットワーク管理者が注目したいホスト(IPアドレス)やポート番号に限定して設定を解析することができないため，ある特定のホストを宛先とするパケットに対するフィルタなどというように．条件を絞って確認することができない．これらはネットワークトラブル時にステートフル設定の確認や修正を行う負担も増加させる．
３．ステートレス設定が対象であり，ステートフル設定における冗長フィルタを検出することができない(非特許文献２)．
４． 非特許文献１で示されている実効フィルタ検出の方式は，ステートレス設定を対象としており，ステートフルファイアウォールが多段に設置されたネットワークにおいて，ネットワーク内のどのファイアウォールのどのフィルタによって特定のヘッダ情報を持つパケットの通過や廃棄が判断されたのかを即座に把握することができない．
５．ステートフルファイアウォールが多段に設置されているネットワークにおいて，特定のパケットが，あるファイアウォールにおいては通過するようになっているが，他のファイアウォールでは廃棄するような矛盾を検出することができない．
【課題を解決するための手段】
【０００４】
第１の発明のファイアウォール設定解析方式は，状態テーブルなどにより通信状況を管理し，パケット到着時の通信状況に従ってパケットの通過や廃棄などの動作を決定するステートフルファイアウォールにおいて，通信状況により動作を変化させるフィルタ（ステートフルフィルタと呼ぶ）を含むステートフルファイアウォールの設定（ステートフル設定と呼ぶ）を，時刻ｔの通信状況を用いて，動作が通信状況に依存しないフィルタ（ステートレスフィルタと呼ぶ）だけからなるステートレスファイアウォールの設定（時刻ｔのステートレス設定と呼ぶ）に変換する設定変換機能を有することを特徴とする．
第２の発明のファイアウォール設定解析方式は，状態テーブルなどにより通信状況を管理し，パケット到着時の通信状況に従ってパケットの通過や廃棄などの動作を決定するステートフルファイアウォールにおいて，通信状況により動作を変化させるフィルタ（ステートフルフィルタと呼ぶ）を含むステートフルファイアウォールの設定（ステートフル設定と呼ぶ）を，時刻ｔの通信状況を用いて，動作が通信状況に依存しないフィルタ（ステートレスフィルタと呼ぶ）だけからなるステートレスファイアウォールの設定（時刻ｔのステートレス設定と呼ぶ）に変換する設定変換機能，及び，１又は複数のパケットヘッダ情報と時刻ｔを指定されたときに，時刻ｔのステートレス設定を用いて，そのパケットヘッダ情報を持つパケットに対してアクションを施すステートフルフィルタを，ステートフル設定の中から検出するフィルタ逆引き機能を有することを特徴とする．
第３の発明のファイアウォール設定解析方式は，状態テーブルなどにより通信状況を管理し，パケット到着時の通信状況に従ってパケットの通過や廃棄などの動作を決定するステートフルファイアウォールにおいて，通信状況により動作を変化させるフィルタ（ステートフルフィルタと呼ぶ）を含むステートフルファイアウォールの設定（ステートフル設定と呼ぶ）を，時刻ｔの通信状況を用いて，動作が通信状況に依存しないフィルタ（ステートレスフィルタと呼ぶ）だけからなるステートレスファイアウォールの設定（時刻ｔのステートレス設定と呼ぶ）に変換する設定変換機能，及び，時刻ｔのステートレス設定において，どのようなパケットが到着しても決してアクションを施すことのないフィルタを検出する冗長フィルタ検出機能を有することを特徴とする．
第４の発明のファイアウォール設定解析方式は，状態テーブルなどにより通信状況を管理し，パケット到着時の通信状況に従ってパケットの通過や廃棄などの動作を決定するステートフルファイアウォールにおいて，通信状況により動作を変化させるフィルタ（ステートフルフィルタと呼ぶ）を含むステートフルファイアウォールの設定（ステートフル設定と呼ぶ）を，時刻ｔの通信状況を用いて，動作が通信状況に依存しないフィルタ（ステートレスフィルタと呼ぶ）だけからなるステートレスファイアウォールの設定（時刻ｔのステートレス設定と呼ぶ）に変換する設定変換機能，及び，複数のファイアウォールが多段に接続されたネットワークにおいて，１又は複数のパケットヘッダ情報と時刻ｔを指定されたときに，各ファイアウォールの時刻ｔのステートレス設定を用いて，そのパケットヘッダ情報を持つパケットに対して実際にアクションを施すステートフルフィルタ（実効フィルタと呼ぶ）を検出する実効フィルタ検出機能を有することを特徴とする．
【発明の効果】
【０００５】
本発明のコンピュータネットワークのファイアウォール設定解析方式は，コンピュータネットワークの利用時に生じる異常の原因究明を容易にする方式である．また，ファイアウォールの設定誤りを容易にし，セキュリティを向上させる方式である．
・  異常の原因究明を容易にする
異常が起きた場合に、その異常が起こっているホストやサーバのIPアドレスなどを元に
調べるべきフィルタを絞り込むことが可能となる．
２．ファイアウォールの設定誤りを少なくする
ネットワーク内に存在するファイアウォールにおいて、同一のヘッダ情報を持つパケットに対して、通過と廃棄が指定されているなどを検出することが容易になる．
【実施例】
【０００６】
第１の発明の実施例を図５に示す．設定変換機能では，ステートフル設定，ステートテーブルログ，時刻tを入力として受付け，時刻tにおけるステートレス設定とステートフル設定の中のどのフィルタがステートレスフィルタに変換されたかを記録する変換表を出力する．
ここで，時刻tの任意のパケットに対する，変換前のステートフル設定とステートテーブルログを用いたステートフルファイアウォールの通過や廃棄の判断と，変換後のステートレス設定を用いたステートレスファイアウォールの同じパケットに対する通過や遮断の判断が同じになるように変換する．このモデルを図６に示す．図６上部のステートフルFWでは，時刻tのステートテーブルの内容を S(t)，また，時刻tに到達したパケットを P(t)と表す．ここでステートフルFW設定はネットワーク管理者が書き換えない限り不変であるためSFC(Stateful Firewall Configuration)と表す．
ここで，パケット P(t)の通過・遮断の判断の結果R_1(t)とそれの判断の元となったフィルタf1はSFC,S(t),P(t)により決定される．次に，図６下部のステートレスFWではパケットの通過・遮断の判断はSLC(Stateless Firewall Configuration)を用いて行われるため，結果R_2(t)と判断の元となったフィルタf2はSLC(t),P(t)により決定される．したがって，R_1(t)=R_2(t)となるように，SFC,S(t)からSLC(t)を定める．また， f1と f2の対を表すデータとして記録しておくことで，SLC(t)の解析を行った結果をもとにSFCの時刻tの解析結果を得ることが可能となる． 
設定変換機能の説明を次に示す．図５の入力例として，図４に示したiptablesを用いたステートフル設定の例，図７にステートテーブルログの例を用いる．また，時刻tとして2007/01/10 10:11:00を入力したものとする．
ここで，ステートテーブルのログのエントリは次の通りである．
ステートテーブルのログエントリ：id timestamp operation protocol src1 dst1 sport1 dport1 flag src2 dst2 sport2 dport2
id：ログを識別するidであり，ログのエントリが記録された順番に付けられる．
timestamp：このエントリが記録された時間を示す．
operation：ログが記録された際に行われた動作を示す．ADD,CHANGE,DELETE
があり，それぞれ次の通りである．
ADD：ステートテーブルにエントリが追加された場合である．
CHANGE：エントリのフラグに変化が起きた場合である．
DELETE：ステートテーブルからエントリが削除された場合である．
flag：UNREPLIEDでは，src1からdst1の通信を検出した状態である．
UNREPLIEDフラグがセットされていなければ，双方向のパケットを検出済みで
ある．
設定変換機能の全体の動作概要を述べる．
STEP1．フィルタ判別機能によってステートレスフィルタとステートフルフィルタを分け，ステートレスフィルタはそのまま設定変換機能の出力とし，ステートフルフィルタはフィルタ検索機能に渡す．
STEP２．ステートテーブル復元機能が，時刻tにおけるステートテーブルの内容をステートテーブルのログから復元する．
STEP３．フィルタ条件候補出力機能が，時刻ｔにおけるステートテーブルの内容からフィルタ条件候補集合を求め，出力する．
STEP４．フィルタ検索機能が，フィルタ条件候補集合のそれぞれについて，ステートフルフィルタのパケットヘッダ条件との照合を行い，照合に成功した組についてフィルタ候補集合として出力する．
STEP５．ステートレスフィルタ出力機能が，フィルタ候補集合を用いてステートレスフィルタを出力する．
各機能の詳細な説明を次に述べる．
フィルタ判別機能は入力されたステートフル設定のなかのステートフルフィルタとステートレスフィルタを分ける機能であり，ステートフル設定中のステートレスフィルタはそのまま設定変換機能の出力とする．ステートフルフィルタについては条件部を判別するため，条件部検索機能に渡す．動作手順を次に示す．
STEP１−１．ステートフルフィルタf1〜fnのfi(i=1〜n)に対して次の動作を行う．
STEP１−２．fiに-stateフィールドがなければ，それを設定変換機能の出力とする．
fiに-stateフィールドがあれば，それを条件部検索機能に渡す．
動作例として，図４に示すステートフル設定では，フィルタf1がステートフルフィルタの形式に当てはまるため，フィルタf1を条件部検索機能に渡す．f2，f3，f4，f5，f6はステートレスフィルタの形式であるため，そのまま出力する．
次に，ステートテーブル復元機能が，指定された時刻tにおけるステートテーブルの内容をステートテーブルのログから復元する．復元する動作手順は次の通りである．
STEP２−１．ステートテーブルのログの中の時刻t以前のすべてのエントリを取得し，それらのリストをL1とする．
STEP２−２．L1において，各エントリのoperationフィールドがDELETEであるすべてのエントリのリストをL2とする．
STEP２−３．L2の各エントリei(i=1〜n)に対して次の動作を行う．
STEP２−４．L1の各エントリej(j=1〜m)において次の条件を満たすエントリejをL1から削除する．
ei.timestamp >= ej.timestamp 
∧  ei.src1=ej.src1 ∧ ei.dst1=ej.dst1∧ ei.sport1=ej.sport1∧ ei.dport1=ej.dport1
∧  ei.src2=ej.src2 ∧ ei.dst2=ej.dst2∧ ei.sport2=ej.sport2∧ ei.dport2=ej.dport2
ただし，ei.timestamp > =ej.timestampはeiのタイムスタンプがejのタイムスタンプと同時かそれよりも後かを表す．
STEP２−５．L1において，オペレーションを示すフィールドがCHANGEであるすべてのエントリをリストL3とする．
STEP２−６．L3の各エントリek(k=1〜m)に対して次の動作を行う．
STEP２−７．L1の各エントリej(j=1〜m)において次の条件を満たすエントリejをL1から削除する．
ek.timestamp >= ej.timestamp 
∧  ek.src1=ej.src1 ∧ ek.dst1=ej.dst1∧ ek.sport1=ej.sport1∧ ek.dport1=ej.dport1
∧  ek.src2=ej.src2 ∧ ek.dst2=ej.dst2∧ ek.sport2=ej.sport2∧ ek.dport2=ej.dport2
ただし，ek.timestamp >= ej.timestampはeiのタイムスタンプがejのタイムスタンプと同時かそれよりも後かを表す．
STEP２−８．L1の各エントリeからtimestamp,operationのフィールドを取り除く．
これによって，L1に時刻tのステートテーブルの内容S(t)が復元できる．
動作例を次に示す．ここでは入力として，図７に示したステートテーブルのログを用いる．手順を次に示し，結果を図８に示す．
STEP２−１． 各エントリのタイムスタンプが2007/01/10 10:11:00以前のものをL1とする．
L1={e1,e2,e3,e4,e5,e6,e7,e8,e9}
STEP２−２．L1において，operationフィールドがDELETEであるすべてのエントリをL2とする．
L2={e3,e6}
STEP２−３．L2の各エントリe3,e6に対して次の動作を行う．
STEP２−４(e3)．L1の各エントリej(j=1〜m)において次の条件を満たすエントリejをL1から削除する．
e3.timestamp >= ej.timestamp 
∧  e3.src1=ej.src1 ∧ e3.dst1=ej.dst1∧ e3.sport1=ej.sport1∧ e3.dport1=ej.dport1
∧  e3.src2=ej.src2 ∧ e3.dst2=ej.dst2∧ e3.sport2=ej.sport2∧ e3.dport2=ej.dport2
この条件にe1，e2，e3が該当し，それらをL1から削除する．
L1={ e4,e5,e6,e7,e8,e9}
STEP２−４(e6)．L1の各エントリej(j=1〜m)において次の条件を満たすエントリejをL1から削除する．
e6.timestamp >= ej.timestamp 
∧  e6.src1=ej.src1 ∧ e6.dst1=ej.dst1∧ e6.sport1=ej.sport1∧ e6.dport1=ej.dport1
∧  e6.src2=ej.src2 ∧ e6.dst2=ej.dst2∧ e6.sport2=ej.sport2∧ e6.dport2=ej.dport2
この条件にe4，e5，e6が該当し，それらをL1から削除する．
L1={ e7,e8,e9}
STEP２−５．L1において，オペレーションを示すフィールドがCHANGEであるすべてのエントリをリストL3とする．
L3={e9}
STEP２−６．L3のe9に対して次の動作を行う．
STEP２−７．L1の各エントリej(j=1〜m)において次の条件を満たすエントリejをL1から削除する．
e9.timestamp >= ej.timestamp 
∧  e9.src1=ej.src1 ∧ e9.dst1=ej.dst1 ∧ e9.sport1=ej.sport1 ∧ e9.dport1=ej.dport1
∧  e9.src2=ej.src2 ∧ e9.dst2=ej.dst2 ∧ e9.sport2=ej.sport2 ∧ e9.dport2=ej.dport2
ここでは，e7が該当し，それらをL1から削除する．
L1={ e8,e9}
STEP２−８．L1の各エントリeからtimestamp,operationのフィールドを取り除く．
フィルタ条件候補出力機能では，時刻tのステートテーブルの内容を元に，フィルタ条件候補集合を出力する．フィルタ条件候補cは次の通りである．
フィルタ条件候補ｃ：id protocol src dst sport dport flag
id：フィルタ条件候補を識別するidである．
flag：UNREPLIEDでは，srcからdstの通信を検出した状態である．UNREPLIED
フラグがセットされていなければ，双方向のパケットを検出済みである．
動作手順を次に示す．
STEP３−１．時刻tのステートテーブルの内容の各エントリeについて次の動作を行う．
STEP３−２．e.protocol，e.src1，e.dst1，e.sport1，e.dport1，e.flagの組に対してid
を”e.id”+”-f”としてフィルタ条件候補c1を出力する．
e.protocol，e.src2，e.dst2，e.sport2，e.dport2の組に対してidを”e.id”+”-b”と
してフィルタ条件候補c2を出力する．
図８のステートテーブルの内容についての動作例を次に示し，その結果を図９に示す．
STEP３−１．e8,e9に対してそれぞれ次の動作を行う．
STEP３−２(e8)．e8.protocol，e8.src1，e8.dst1，e8.sport1，e8.dport1，e8.flagの組に対
してe8-fをつけてフィルタ条件候補c1を出力する．
c1=(e8-f tcp src=133.68.13.41 dst=133.68.21.4 sport=2210 dport=8080  
UNREPLIED)
e8のprotocol，src2，dst2，sport2，dport2の組に対してidをつけてフィルタ条件候補を出力する．
c2=(e8-b：tcp src=133.68.21.4 dst=133.68.13.41 sport=8080 dport=2210) 
STEP３−２ (e9)．e9.protocol，e9.src1，e9.dst1，e9.sport1，e9.dport1，e9.flagの組に
対してidをつけてフィルタ条件候補を出力する．
c1=(e9-f： tcp src=133.68.13.32 dst=133.68.13.41 sport=1474 dport=3389)
e9のprotocol，src2，dst2，sport2，dport2の組に対してidをつけてフィルタ条
件候補を出力する．
c2=(e9-b：tcp src=133.68.13.41 dst =133.68.13.32 sport=3389 dport=1474)
フィルタ検索機能では，フィルタ条件候補集合とステートフルフィルタで指定されている条件を照合し，照合に成功するペアをステートレスフィルタ出力機能に渡す．動作手順は次の通りである．
STEP４−１．フィルタ候補集合FCを空集合とする．
STEP４−２．フィルタ条件候補集合のそれぞれをｃとしてSTEP４−３を行う． 
STEP４−３．フィルタ条件候補cのc.protocol，c.src，c.dst，c.sport，c.dportをキーと
して，ステートフルフィルタ集合の各フィルタとの照合を行い，照合
に成功する場合はそのフィルタとフィルタ条件候補の組をフィルタ候補集合FC
に加え，STEP４−３．を抜ける．
STEP４−４．フィルタ候補集合FCをステートレスフィルタ出力機能に渡す．
動作例を次に示す．入力は図４のf1と図９に示すフィルタ候補集合とする． 
STEP４−１．フィルタ候補集合FCを空集合とする．
FC={}
STEP４−２．e8-f，e8-b，e9-f，e9-bに対して次を行う．
STEP４−３a．フィルタ条件候補e8-fとステートフルフィルタ集合の各フィルタとの照合
* =  tcp  ∧  *=133.68.13.41 ∧ *= 133.68.21.4 ∧*=2210 ∧*=8080
各要素がフィルタで明示されていないため，それぞれが真となり，照合に成功する．
したがって，次の組をFCに加える．
{f1,e8-f}
STEP４−３b．フィルタ条件候補e8-bとステートフルフィルタ集合の各フィルタとの照合
* =  tcp ∧*= 133.68.21.4 ∧*=133.68.13.41 ∧ *=8080 ∧     *=2210
各要素がフィルタで明示されていないため，それぞれが真となり，照合に成功する．
したがって，次の組をFCに加える．
{f1,e8-b}
STEP４−３c．経過は省略するが，e9-f はf1との照合に成功し，次の組をFCに加える．
{f1,e9-f}
STEP４−３d．経過は省略するが，e9-b はf1との照合に成功し，次の組をFCに加える．
{f1,e9-b}
STEP４−４．フィルタ候補集合FCをステートレスフィルタ出力機能に渡す．
FC={{f1,e8-f}，{f1,e8-b}，{f1,e9-f}，{f1,e9-b}}
ステートレスフィルタ出力機能では，フィルタ候補集合を元に，ステートレスフィルタを生成する．また，ステートレスフィルタ出力機能では，変換に使用したステートフルフィルタとステートエントリ，出力したステートレスフィルタの変換表を出力する．動作手順を次に示す．
STEP５−１．フィルタ候補集合の各要素cについて次の動作を行う．
STEP５−２．cのフィルタをf, cのフィルタ候補条件をccとする．
ccにUNREPLIEDフラグがなければ，次のフィルタを生成gする．
g.protocol=cc.protocol，g.src=cc.src，g.dst=cc.dst，g.sport=cc.sport，g.dport=cc.dport，g.action=f.action
また，ステートフルフィルタidのfiを元に新しいフィルタidを生成し，新しいフィルタid，変換に使用したステートエントリid，ステートフルフィルタidの組を変換表に加える．
動作例を次に示す．入力としては，FC={{f1,e8-f}，{f1,e8-b}，{f1,e9-f}，{f1,e9-b}}が与えられたものとする． 
STEP５−１．FC={{f1,e8-f}，{f1,e8-b}，{f1,e9-f}，{f1,e9-b}}に対してそれぞれ次の動作を
行う．
STEP５−２{f1,e8-f}．f=f1，cc=e8-f．UNREPLIEDフラグが存在するため，フィルタを生
成しない．
STEP５−２{f1,e8-b} ．f=f1，cc=e8-b．e8-bではUNREPLIEDがないため，次のフィル
タを出力する．
g.protocol =tcp，g.src=133.68.21.4，g.dst=133.68.13.41，g.sport=8080，
g.dport=2210，g.action)=ACCEPT
f1-1：iptables -A FORWARD -p tcp -s 133.68.21.4 --sport 8080 -d 133.68.13.41 
--dport 2210  -j ACCEPT
また，変換表にf1-1とe8，f1のエントリを追加する．
STEP５−２{f1,e9-f} ．e9-fではUNREPLIEDがないため，次のフィルタを出力する．
g.protocol =tcp，g.src =133.68.13.32，g.dst=133.68.13.41，g.sport=1474，
g.dport=3389，g.action=ACCEPT
f1-2：iptables -A FORWARD -p tcp -s 133.68.13.32 --sport 1474 -d 133.68.13.41 --dport 3389  -j ACCEPT
また，変換表にf1-2とe9，f1のエントリを追加する．
STEP５−２{f1,e9-b} ．e9-bではUNREPLIEDがないため，次のフィルタを出力する．
f1-3：iptables -A FORWARD -p tcp -s 133.68.13.41 -sport 3389 -d 133.68.13.32 --dport 1474  -j ACCEPT
また，変換表にf1-3とe9，f1のエントリを追加する．
この機能の出力は図１０のf1-1,f1-2,f1-3となり，変換されずに出力されるフィルタf2,f3,f4,f5,f6と合わせて設定変換機能の出力となる．図１１に変換表を示す．
第２の発明の実施例を図１２に示す．ステートフル逆引き機能の動作手順を次に示す．
STEP１．ステートフル設定，状態テーブルのログ，時刻tを用いて，ステートレス設定と変換表を得る．
STEP２．ステートレス逆引き機能によって，指定されたパケットヘッダ情報に一致するステートレスフィルタの集合(ステートレス逆引き結果と呼ぶ)を出力する．
STEP３．逆変換機能がステートレス逆引き結果の中のidを検索し，ステートフル設定から変換されたステートレス設定をステートフルなものに逆変換し，時刻tにおけるステートフル逆引き結果を出力する．
動作例を次に示す．ここでは，各入力は次の通りとする．
時刻t：2007/01/10 10:11:00
ステートフル設定：図４に示すステートフル設定
状態テーブルのログ：図７に示した状態テーブルのログ
パケットヘッダ情報：プロトコル:tcp，送信元IPアドレス：指定しない
宛先IPアドレス：133.68.13.41，送信元ポート番号：指定しない，
宛先ポート番号：3389
STEP１．ステートフル設定，状態テーブルのログ，時刻tを用いて，ステートレス設定と変換表を得る．実施例１で示した入力と同じであるので，図１０に示すステートレス設定と図１１に示す変換表を得る．
STEP２．ステートレス逆引き機能が，ステートレス設定から，入力したパケットヘッダ情報にかかわるフィルタ集合を出力する．この機能の詳細は非特許文献１を参照されたい．
ステートレス逆引き結果を図１３に示す．
STEP３．逆変換機能がステートレス逆引き結果の中のidを検索し，ステートフル設定から変換されたステートレス設定をステートフルなものに逆変換し，時刻tにおけるステートフル逆引き結果を出力する．ここでは，f1-2が変換表の変換後idに存在する．そのエントリの変換前idのf1を取得し，f1-2をf1で置き換える．この結果を図１４に示す．
第３の発明の実施例を図１５に示す．時刻tにおける冗長フィルタを検出する動作手順を次に示す．
STEP１．設定変換機能が，時刻tにおけるステートレス設定に変換する．
STEP２．ステートレス設定の冗長フィルタを検出するシステムが変換の結果であるステートレス設定の冗長フィルタを検出する．この結果が，時刻tにおける冗長フィルタである．
ここで，入力として図１６に示すステートフル設定と図７に示すステートテーブルのログを用いる．また，時刻として2007/01/10 10:11:00を指定したものとする．
STEP１．設定変換機能が，時刻tにおけるステートレス設定に変換する．
設定変換機能の入力のステートフル設定の中のステートフルフィルタは実施例１
で用いたもの同じであり，ステートテーブルのログと時刻も実施例１と同じであ
るから，設定変換の結果は図１７となる．
STEP２．ステートレス設定の冗長フィルタを検出するシステムを用いて，時刻tにおける冗長フィルタを検出する．
ここでは，f1とf2-2が同じ送信先IPアドレスを指定してあり，133.68.13.41が
送信先であるパケットはf1によって通過や廃棄が判断される．その結果，f2-2
が実際のパケットの通過や廃棄の判断にかかわらない．このようなフィルタを冗
長フィルタ検出機能は出力する．ここでは，f2-2が冗長フィルタであるという結
果を得る．
第４の発明の実施例を図１８に示す．
実効フィルタ検出機能では，サブネットの接続関係を表したテーブルであるサブネット接続関係表(以下snt)と各サブネットIPアドレスの範囲を表した領域定義表(以下sdt)を用いる．各表の説明を次に示し，それぞれの例を図１９，図２０に示す．この２つの詳細については非特許文献１を参照されたい．
・  サブネット接続関係表(snt)
id:ノードのidを表す．extranetのidは常に1とする．
name：ノードの名前を表す．サブネットの名前またはファイアウォールの名前を保持する．
type：このノードがサブネットかファイアウォールかを表す．サブネットはs，ファイアウォールであればnである．
parentid：このノードの親ノードを示す．ここで，親ノードとは，自身と直接接続されているノードのうち，extranetに近いノードである．
childid：このノードの子ノードを示す．
・  領域定義表(sdt)
subnetname：サブネットの名前を示す．
address：このサブネットのIPアドレス範囲を示す．
また，実効フィルタ検出機能では，経路フィルタ表を使用する．表の説明を次に示し，例を図２１に示す．
・経路フィルタ表
order：送信元から送信先までに通るファイアウォールの順番を表す．
name：送信元から送信先までに通るファイアウォールの名前を表す
filter：ファイアウォールにおけるパケットヘッダの照合に成功するフィルタを示す．
実効フィルタ検出機能の動作の概要を次に示す．入力として，パケットヘッダ情報を受け付ける．
STEP１．入力されたパケットヘッダ情報の送信元IPアドレスが含まれるsubnetnameを，領域定義表(sdt)を用いて検索し，S1とする．送信元IPアドレスの指定がない場合や領域定義表のどれにも当てはまらない場合はS1=extranetとする．
STEP２．入力されたパケットヘッダ情報の送信先IPアドレスが含まれるsubnetnameを，領域定義表(sdt)を用いて検索し，S2とする．送信先IPアドレスの指定がない場合や領域定義表のどれにも当てはまらない場合はS2=extranetとする．
STEP３．経路検索機能が，サブネット接続関係表(snt)を用いてS1からS2までの経路を求め，経路フィルタ表を作成する． 
STEP４．FW設定・ステートテーブルログ検索機能が，経路フィルタ表に存在する各ファイアウォールについて，ファイアウォール設定とステートテーブルログをステートフル逆引き機能に渡す．逆引き結果書き込み機能が，ステートフル逆引き機能の出力であるパケットヘッダ情報に関わるフィルタ取得し，それを経路フィルタテーブルに書き込む．
STEP５．実効フィルタ判定機能が経路フィルタテーブルを元に実効フィルタを求める．
各機能の手順を次に示す．
・経路検索機能
この機能は入力として，送信元サブネット名S1，送信先サブネット名S2を受付，
経路フィルタ表を出力する．
STEP３−１．S1からextranetまでの経路リストR1を作成する．
STEP３−１−１．ノード名n=S1とする．また，経路リストR1を空にする．    
STEP３−１−２．R1にnを追加する．
STEP３−１−３．n=extranetであればSTEP３−２へ．そうでなければSTEP
３−１−４へ．
STEP３−１−４．nの親ノードidをサブネット接続関係表から得て，親ノードの
名前を検索し，n=親ノードの名前としてSTEP３−１−２へ．
STEP３−２．S2からextranetまでの経路リストR2を作成する．詳細手順は次の通りで
ある．
STEP３−２−１．ノード名n=S2とする．また，経路リストR2を空にする．    
STEP３−２−２．R2にnを追加する．
STEP３−２−３．n=extranetであればSTEP３−３へ．そうでなければSTEP
３−２−４へ．
STEP３−２−４．nの親ノードidをサブネット接続関係表から得て，親ノードの
名前を検索し，n=親ノードの名前としてSTEP３−２−２へ．
STEP３−３．R1を先頭から見て，同じ要素がR2に存在する時点で，その要素をcとする．
STEP３−４．経路リストR を空にする．R1の先頭から，cの１つ前までの要素を順番に経路リストRに加える．
STEP３−５．R2のcからS2までの要素を順番にRに加える．
STEP３−６． Rの各要素を先頭から走査し，サブネット接続関係表におけるtypeがNの場合は，順番を1から順に付加し，経路フィルタ表に追加する．
各機能の詳細を次に示す．ここでは，検索条件として次を入力したものとする．
時刻：2007/01/10 10:05:00
protocol:tcp
src：10.10.10.5
dst：133.68.13.193
sport：1050
dport：22
経路検索機能の動作例を図１９，図２０を用いて説明する．
STEP３−０．ここでは，srcが領域定義表のどのサブネットにも属さないため，S1をextranetとするS2は領域定義表を用いて検索し，hostnetとする．
STEP３−１．S1からextranetまでの経路リストR1を作成する．
STEP３−１−１．ノード名n=extranetとする．また，経路リストR1を空にする．     
STEP３−１−２．R1にextranetを追加する．
STEP３−１−３．n=extranetであるからSTEP３−２へ．
この時点で，R1={extranet}である．
STEP３−２．S2からextranetまでの経路リストR2を作成する． 
STEP３−２−１．ノード名n=hostnetとする．また，経路リストR2を空にする．
STEP３−２−２(a)．R2にhostnetを追加する．
STEP３−２−３(a)．n=extranetでないので， STEP３−２−４へ．
STEP３−２−４(a)．nの親ノードidをサブネット接続関係表から得ると，3
である．親ノードの名前を検索しfirewall2を得る，n=firewall2としてSTEP３
−２−２へ．
STEP３−２−２(b)．R2にfirewall2を追加する．
STEP３−２−３(b)．n=extranetでないので， STEP３−２−４へ．
STEP３−２−４(b)．nの親ノードidをサブネット接続関係表から得ると，5
である．親ノードの名前を検索しsubnet1を得る，n=subnet1としてSTEP３−２−２へ．
STEP３−２−２(c)．R2にsubnet1を追加する．
STEP３−２−３(c)．n=extranetでないので， STEP３−２−４へ．
STEP３−２−４(c)．nの親ノードidをサブネット接続関係表から得ると，2で
ある．親ノードの名前を検索しfirewall1を得る，n=firewall1としてSTEP３−２−２へ．
STEP３−２−２(d)．R2にfirewall1を追加する．
STEP３−２−３(d)．n=extranetでないので， STEP３−２−４へ．
STEP３−２−４(d)．nの親ノードidをサブネット接続関係表から得ると，1
である．親ノードの名前を検索しextranetを得る，n=extranetとしてSTEP３−
２−２へ．
STEP３−２−２(e)．R2にextranetを追加する．
STEP３−２−３(e)．n=extranetであるから，STEP３−３へ．
この時点で，R2={hostnet，firewall2，subnet1，firewall1，extranet}である．
STEP３−３．R1を先頭から見て，同じ要素がR2に存在する時点で，その要素をcとす
る．ここでは，R1の先頭であるextranetがR2に存在するため，それをcとする．
STEP３−４． 経路リストR を空にする．R1の先頭から，cの１つ前までの要素を順番に経路リストRに加える．ここでは，cの1つ前の要素がないため，何も追加しない．
R={}
STEP３−５．R2のcからS2までの要素を順番にRに加える．
R={ extranet，firewall1，subnet1，firewall2，hostnet }
STEP３−６． Rの各要素を先頭から走査し，サブネット接続関係表におけるtypeがNの場合は，順番を1から順に付加し，経路フィルタ表に追加する．
firewall1のtypeがN，firewall2のtypeがNであるため，この２つを経路フィ
ルタ表に順に追加する．
この結果を図２２に示す．
・FW設定・ステートテーブルログ検索機能
経路フィルタ表の各ファイアウォールにおいて，指定されたパケットヘッダ情報に関係するフィルタを求めるために，ステーフル逆引き機能の入力を生成する機能である．動作手順を次に示す．
STEP４−１．経路フィルタ表の各エントリeについて，経路フィルタ表のorderを昇順として次を行う．
STEP４−２．ファイアウォール設定からエントリeのフィアウォール設定，ステートテーブルログからエントリeのファイアウォールのステートテーブルのログを取得し，ステートフル逆引き機能の入力とする．
FW設定・ステートテーブルログ検索機能の動作例を図２２を用いて説明する．
STEP４−１．経路フィルタ表の各エントリeについて，経路フィルタ表のorderを昇順として次を行う．
STEP４−２．ファイアウォール設定DBからエントリeのフィアウォール設定，ステートテーブルログDBからエントリeのファイアウォールのステートテーブルのログを取得し，ステートフル逆引き機能の入力とする．また，各エントリeのファイアウォール名を逆引き結果書き込み機能に渡す．
STEP４−２(firewall1) ．firewall1のファイアウォール設定(ここでは図２３を用
いる)，ステートテーブルのログ(ここでは図２４を用いる)をステートフル逆引き
機能に渡す．
firewall1を逆引き結果書き込み機能に渡す．
STEP４−２(firewall2) ．firewall2のファイアウォール設定(図２５)，ステートテ
ーブルのログが空とし，これらをステートフル逆引き機能に渡す．
firewall2を逆引き結果書き込み機能に渡す．
・  逆引き結果書き込み機能
ステートフル逆引き機能の出力を経路フィルタ表に書き込む機能である．フィルタ・ステートテーブルログ検索機能からファイアウォール名を取得し，ステートフル逆引き機能からステートフル逆引き結果を取得する．ファイアウォール名が一致するエントリのfilter列にステートフル逆引き結果を書き込む
firewall1
firewall1の設定における逆引き結果は図２６となり，これらを経路フィルタ表
に書き込む{firewall1,{f1,f2,f3}}．
firewall2
firewall2の設定における逆引き結果は図２７となり，これらを経路フィルタ表に
書き込む{firewall1,{f2,f4}}．
この結果を図２８に示す．
・  実効フィルタ判定機能
経路フィルタ表を元に，実効フィルタを求める機能である．動作手順を次に示す．
ただし，この機能はパケットヘッダ情報として，protocol,src,dst,sport,dportのすべてを指定された場合に正しく機能するものである．
STEP５−１．実効フィルタリストEを空にする．
STEP５−２．経路フィルタ表の各エントリeのフィルタ列において，先頭のフィルタを残して他は削除する．
STEP５−３．経路フィルタ表の各エントリeについて，orderを昇順として次の手順を行う．
STEP５−４．eのフィルタfのf.actionがACCEPTであれば，実効フィルタリストEに加える．f.actionがDROPであれば実効フィルタリストEに加え，STEP５−５へ．
STEP５−５．実効フィルタリストEを出力する．
動作例を次に示す．ここでは，経路フィルタ表として図２８を用いる．
STEP５−１．実効フィルタリストEを空にする．
E={}
STEP５−２．経路フィルタ表の各エントリeのフィルタ列において，先頭のフィルタを残して他は削除する．経路フィルタ表は図２９となる．
STEP５−３．経路フィルタ表の各エントリeについて，orderを昇順として次の手順を行う．
STEP５−４．eのフィルタfのf.actionがACCEPTであれば，実効フィルタリストEに
加える．f.actionがDROPであれば実効フィルタリストEに加え，STEP５−５
へ．
STEP５−４(order =1)．f.actionがACCEPTであるから，実効フィルタリストに加える．
E={{firewall1,f1}}
STEP５−４(order =2)．f.actionがACCEPTであるから，実効フィルタリストに加える．
E={{firewall1,f1},{firewall2,f2}}
STEP５−５．実効フィルタリストEを出力する．
【産業上の利用可能性】
【０００７】
このようなコンピュータネットワークのファイアウォール設定解析方式は，ローカルエリアネットワークなどのコンピュータネットワークの管理運用におおいに役立つ．
【図面の簡単な説明】
【０００８】
【図１】ステートレスファイアウォールの動作概要である．
【図２】ステートレス設定の例である．
【図３】ステートフルファイアウォールの動作概要である．
【図４】ステートフル設定の例である．
【図５】発明１による，ステートフル設定をステートレス設定に変換するデータフロー図である．
【図６】ステートレス設定とステートフル設定の変換のモデルである．
【図７】設定変換機能の入力となる，ステートテーブルのログの例である．
【図８】図７のステートテーブルのログから復元した2007/01/10 10:11:00におけるステートフルテーブルの内容である．
【図９】図７から生成したフィルタ条件候補集合である．
【図１０】設定変換機能によって出力される，ステートフルフィルタをステートレスフィルタに変換したものとステートレスフィルタをあわせたステートレス設定の例である．
【図１１】図４のステートフル設定と図１０の時刻tにおけるステートレス設定の変換表の例である．
【図１２】発明２による，ステートフル設定の中から特定のパケットヘッダ情報にかかわるものだけを検出するデータフロー図である．
【図１３】ステートフル設定をステートレス設定に変換した後，特定のパケットヘッダにかかわるフィルタを検出した例である．
【図１４】図１３を，変換表を用いてステートフル設定に逆変換した結果である．
【図１５】発明３による， ステートフル設定の中から，時刻tにおける冗長フィルタを検出するデータフロー図である．
【図１６】図１５の入力例のステートフル設定の例である．
【図１７】図１６を時刻2007/01/10 10:11:00におけるステートレス設定に変換した例である．
【図１８】発明４による実効フィルタ検出機能の構成例である．
【図１９】図１８におけるサブネット接続関係表の例である．
【図２０】図１８における領域定義表の例である．
【図２１】図１８における経路フィルタ表の例である．
【図２２】図１８において，経路検索機能の出力例である．
【図２３】図１８の動作例におけるfirewall1の設定例である．
【図２４】図１８の動作例におけるfirewall1のステートテーブルのログである．
【図２５】図１８の動作例におけるfirewall2の設定例である．
【図２６】図１８の動作例における，firewall1のステートフル逆引きの結果である．
【図２７】図１８の動作例における，firewall2のステートフル逆引きの結果である．
【図２８】図１８の動作例における，実効フィルタ候補を追加した結果である．
【図２９】図１８の動作例における，冗長な実効フィルタ候補を削除した結果である．
【図１】
2009182574.tif 000003
【図２】
2009182574.tif 000004
【図３】
2009182574.tif 000005
【図４】
2009182574.tif 000006
【図５】
2009182574.tif 000007
【図６】
2009182574.tif 000008
【図７】
2009182574.tif 000009
【図８】
2009182574.tif 000010
【図９】
2009182574.tif 000011
【図１０】
2009182574.tif 000012
【図１１】
2009182574.tif 000013
【図１２】
2009182574.tif 000014
【図１３】
2009182574.tif 000015
【図１４】
2009182574.tif 000016
【図１５】
2009182574.tif 000017
【図１６】
2009182574.tif 000018
【図１７】
2009182574.tif 000019
【図１８】
2009182574.tif 000020
【図１９】
2009182574.tif 000021
【図２０】
2009182574.tif 000022
【図２１】
2009182574.tif 000023
【図２２】
2009182574.tif 000024
【図２３】
2009182574.tif 000025
【図２４】
2009182574.tif 000026
【図２５】
2009182574.tif 000027
【図２６】
2009182574.tif 000028
【図２７】
2009182574.tif 000029
【図２８】
2009182574.tif 000030
【図２９】
2009182574.tif 000031