(57)【要約】【課題】トラフィック制御に関するルールが正当に機能しているか否かを容易かつ低コストで検証すること。【解決手段】フロー状態監視部１０５は、ＦＷ装置＃１およびＦＷ装置＃２がそれぞれ旧ルールおよび新ルールを適用して出力するフレームを取得し、旧ルールおよび新ルールそれぞれが適用されるフローの状態を監視する。そして、フロー状態監視部１０５は、フローの状態が旧ルールおよび新ルールの両方に関して終了すると、その旨をフレーム保持部１０７へ通知する。フレーム保持部１０７は、フローが終了した旨が通知されると、このフローのルール別のフレーム群からなる２つのキャプチャ情報をフロー比較部１０８へ出力する。フロー比較部１０８は、２つのキャプチャ情報を比較し、完全に一致していればこれらのキャプチャ情報を廃棄する一方、差分があればこれらのキャプチャ情報を出力する。【選択図】        図１
2008197910.tif 000002
【特許請求の範囲】
【請求項１】
トラフィックを制御するルールの差異に起因するトラフィックの変化を検証するルール検証装置であって、
１つの処理に対応するトラフィックに相当するフローに対して第１のルールが適用されて得られる第１のフレーム群と第２のルールが適用されて得られる第２のフレーム群とを取得する取得手段と、
前記取得手段によって取得された第１のフレーム群および第２のフレーム群を参照してそれぞれのルールが適用されたフローの開始および終了を監視する監視手段と、
前記取得手段によって取得された第１のフレーム群および第２のフレーム群を保持する保持手段と、
前記監視手段によって第１のフレーム群および第２のフレーム群の双方からフローの終了が検出された際に、前記保持手段によって保持された第１のフレーム群および第２のフレーム群を比較し、差分がない第１のフレーム群および第２のフレーム群を廃棄する廃棄手段と
を有することを特徴とするルール検証装置。
【請求項２】
前記廃棄手段によって廃棄されないフレーム群であって、差分がある第１のフレーム群および第２のフレーム群を出力する出力手段をさらに有することを特徴とする請求項１記載のルール検証装置。
【請求項３】
前記出力手段は、
検証の対象外のフローがあらかじめ設定されたフィルタ手段を含み、
前記フィルタ手段によって対象外とされたフローに対応する第１のフレーム群および第２のフレーム群は出力せずに廃棄することを特徴とする請求項２記載のルール検証装置。
【請求項４】
前記監視手段は、
フローごとのエントリを備え、適用されたルールごとのフローの状態を各エントリにおいて管理する管理テーブルを含み、
前記取得手段によってフレームが取得されると、取得されたフレームの種類に応じてこのフレームが属するフローに対応する前記管理テーブルのエントリを更新することを特徴とする請求項１記載のルール検証装置。
【請求項５】
前記取得手段によって前回のフレームが取得されてから所定時間経過するまで次のフレームが取得されないフローおよびルールにおいてタイムアウトの発生を検出する検出手段をさらに有し、
前記廃棄手段は、
前記検出手段によって検出されたタイムアウトをフローの終了と同等に扱って、前記保持手段によって保持された第１のフレーム群および第２のフレーム群の比較を開始することを特徴とする請求項１記載のルール検証装置。
【請求項６】
前記取得手段は、
フローへのルール適用時に施されるアドレス変換と同一のアドレス変換を第１のフレーム群および第２のフレーム群の各フレームに対して実行する変換手段を含むことを特徴とする請求項１記載のルール検証装置。
【請求項７】
前記取得手段によって取得されたフレームがデータ転送を制御する制御フローのフレームであるかデータ転送を行うデータフローのフレームであるかを判定する判定手段と、
前記判定手段による判定の結果、制御フローのフレームである場合に、この制御フローに関連するデータフローを記憶する記憶手段とをさらに有し、
前記廃棄手段は、
前記監視手段によって第１のフレーム群および第２のフレーム群の双方からフローの終了が検出され、かつ、このフローに関連づけて前記記憶手段に記憶されたすべての制御フローおよびデータフローの終了が検出された際に、終了が検出されたすべてのフローに対応する第１のフレーム群および第２のフレーム群の比較を行うことを特徴とする請求項１記載のルール検証装置。
【請求項８】
前記取得手段は、
ファイアウォールにおいて遮断するフレームを規定する第１のルールおよび第２のルールが適用されて得られるフレーム群を取得することを特徴とする請求項１記載のルール検証装置。
【請求項９】
トラフィックを制御するルールの差異に起因するトラフィックの変化を検証するルール検証方法であって、
１つの処理に対応するトラフィックに相当するフローに対して第１のルールが適用されて得られる第１のフレーム群と第２のルールが適用されて得られる第２のフレーム群とを取得する取得工程と、
前記取得工程にて取得された第１のフレーム群および第２のフレーム群を参照してそれぞれのルールが適用されたフローの開始および終了を監視する監視工程と、
前記取得工程にて取得された第１のフレーム群および第２のフレーム群を保持する保持工程と、
前記監視工程にて第１のフレーム群および第２のフレーム群の双方からフローの終了が検出された際に、前記保持工程にて保持された第１のフレーム群および第２のフレーム群を比較する比較工程と、
前記比較工程における比較の結果、差分がない第１のフレーム群および第２のフレーム群を廃棄する廃棄工程と
を有することを特徴とするルール検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トラフィックを制御するルールの差異に起因するトラフィックの変化を検証するルール検証装置およびルール検証方法に関し、特に、トラフィック制御に関するルールが正当に機能しているか否かを容易かつ低コストで検証することができるルール検証装置およびルール検証方法に関する。
【背景技術】
【０００２】
従来、例えばサーバとクライアントの間の通信においては、不正なアクセスを防止するためにネットワーク上にファイアウォール装置が設置されることがある。ファイアウォール装置は、例えばルータなどに組み込まれてサーバとクライアントの間に設置され、フレームの送信元や宛先のＩＰアドレスおよびポート番号などから不正なフレームを検出し、検出されたフレームを廃棄することで不正アクセスを防止している。つまり、ファイアウォール装置は、設定されたルールに従ってトラフィックを遮断することにより、ネットワークのセキュリティを維持している。
【０００３】
このようなファイアウォールにおけるルールは、ネットワークの管理者が設定するものであり、上述したＩＰアドレスやポート番号以外にも、フレームの通信経路やサービスタイプなどに関して細かく設定することが可能となっている。そして、例えば特許文献１などにおいては、ファイアウォールのルールを自動的に設定することが検討されている。
【０００４】
【特許文献１】特開２００６−２０９３２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ファイアウォールの運用中に上記のルールを変更したり、ファイアウォール装置そのものを交換したりする場合には、ルール変更により、遮断されるトラフィックが変更される。このとき、例えばルールの設定ミスなどの要因により、所望のトラフィック以外のトラフィックが遮断されてしまうことがあり、必要なフレームが通信不可能となってしまう虞がある。
【０００６】
このような事態を回避するためには、ルール変更に際して、あらかじめルールの検証をしておくことが考えられる。すなわち、変更前の旧ルールが設定されたファイアウォール装置に入出力されるフレームを採取（キャプチャ）しておくとともに、変更後の新ルールが設定されたファイアウォール装置に入出力されるフレームをキャプチャし、キャプチャされたフレームを比較することにより、遮断されるトラフィックの変化を調査すれば良い。このとき、ルールの変更によって意図した変化のみが発生していれば問題はないが、意図していないトラフィックが遮断されていれば、新ルールの設定に何らかの問題があることになる。
【０００７】
しかしながら、ファイアウォール装置に入出力されるフレームをキャプチャするためには、相応の記憶容量を備えたストレージなどが必要となり、すべてのフレームをキャプチャするには、キャプチャされたフレームのために膨大な記憶容量を用意しなければならない。このため、ファイアウォールのルール変更という一時的な目的のために大容量のストレージが必要となり、コストの増大などを招くことから、すべてのフレームをキャプチャするルール検証は現実的ではない。
【０００８】
一方、定期的に一部のフレームをキャプチャしてルール検証を行う場合には、ストレージの容量は小さくて済むが、キャプチャされていないタイミングでのトラフィックの遮断を調査することができず、新ルールの設定が正当であるとの確証が得られない。
【０００９】
本発明はかかる点に鑑みてなされたものであり、トラフィック制御に関するルールが正当に機能しているか否かを容易かつ低コストで検証することができるルール検証装置およびルール検証方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、本発明は、トラフィックを制御するルールの差異に起因するトラフィックの変化を検証するルール検証装置であって、１つの処理に対応するトラフィックに相当するフローに対して第１のルールが適用されて得られる第１のフレーム群と第２のルールが適用されて得られる第２のフレーム群とを取得する取得手段と、前記取得手段によって取得された第１のフレーム群および第２のフレーム群を参照してそれぞれのルールが適用されたフローの開始および終了を監視する監視手段と、前記取得手段によって取得された第１のフレーム群および第２のフレーム群を保持する保持手段と、前記監視手段によって第１のフレーム群および第２のフレーム群の双方からフローの終了が検出された際に、前記保持手段によって保持された第１のフレーム群および第２のフレーム群を比較し、差分がない第１のフレーム群および第２のフレーム群を廃棄する廃棄手段とを有することを特徴とする。
【００１１】
また、本発明は、上記発明において、前記廃棄手段によって廃棄されないフレーム群であって、差分がある第１のフレーム群および第２のフレーム群を出力する出力手段をさらに有することを特徴とする。
【００１２】
また、本発明は、上記発明において、前記出力手段は、検証の対象外のフローがあらかじめ設定されたフィルタ手段を含み、前記フィルタ手段によって対象外とされたフローに対応する第１のフレーム群および第２のフレーム群は出力せずに廃棄することを特徴とする。
【００１３】
また、本発明は、上記発明において、前記監視手段は、フローごとのエントリを備え、適用されたルールごとのフローの状態を各エントリにおいて管理する管理テーブルを含み、前記取得手段によってフレームが取得されると、取得されたフレームの種類に応じてこのフレームが属するフローに対応する前記管理テーブルのエントリを更新することを特徴とする。
【００１４】
また、本発明は、上記発明において、前記監視手段は、前記取得手段によってフローの開始を示す開始フレームが取得されると、前記管理テーブルに新規エントリを追加し、追加された新規エントリにおいて、開始フレームに適用されたルールに対応するフローの状態を接続状態に設定することを特徴とする。
【００１５】
また、本発明は、上記発明において、前記監視手段は、前記取得手段によってフローの終了を示す終了フレームが取得されると、このフローに対応する前記管理テーブルのエントリにおいて、終了フレームに適用されたルールに対応するフローの状態を終了状態に設定することを特徴とする。
【００１６】
また、本発明は、上記発明において、前記取得手段によって前回のフレームが取得されてから所定時間経過するまで次のフレームが取得されないフローおよびルールにおいてタイムアウトの発生を検出する検出手段をさらに有し、前記廃棄手段は、前記検出手段によって検出されたタイムアウトをフローの終了と同等に扱って、前記保持手段によって保持された第１のフレーム群および第２のフレーム群の比較を開始することを特徴とする。
【００１７】
また、本発明は、上記発明において、前記取得手段は、フローへのルール適用時に施されるアドレス変換と同一のアドレス変換を第１のフレーム群および第２のフレーム群の各フレームに対して実行する変換手段を含むことを特徴とする。
【００１８】
また、本発明は、上記発明において、前記取得手段によって取得されたフレームがデータ転送を制御する制御フローのフレームであるかデータ転送を行うデータフローのフレームであるかを判定する判定手段と、前記判定手段による判定の結果、制御フローのフレームである場合に、この制御フローに関連するデータフローを記憶する記憶手段とをさらに有し、前記廃棄手段は、前記監視手段によって第１のフレーム群および第２のフレーム群の双方からフローの終了が検出され、かつ、このフローに関連づけて前記記憶手段に記憶されたすべての制御フローおよびデータフローの終了が検出された際に、終了が検出されたすべてのフローに対応する第１のフレーム群および第２のフレーム群の比較を行うことを特徴とする。
【００１９】
また、本発明は、上記発明において、前記取得手段は、ファイアウォールにおいて遮断するフレームを規定する第１のルールおよび第２のルールが適用されて得られるフレーム群を取得することを特徴とする。
【００２０】
また、本発明は、トラフィックを制御するルールの差異に起因するトラフィックの変化を検証するルール検証方法であって、１つの処理に対応するトラフィックに相当するフローに対して第１のルールが適用されて得られる第１のフレーム群と第２のルールが適用されて得られる第２のフレーム群とを取得する取得工程と、前記取得工程にて取得された第１のフレーム群および第２のフレーム群を参照してそれぞれのルールが適用されたフローの開始および終了を監視する監視工程と、前記取得工程にて取得された第１のフレーム群および第２のフレーム群を保持する保持工程と、前記監視工程にて第１のフレーム群および第２のフレーム群の双方からフローの終了が検出された際に、前記保持工程にて保持された第１のフレーム群および第２のフレーム群を比較する比較工程と、前記比較工程における比較の結果、差分がない第１のフレーム群および第２のフレーム群を廃棄する廃棄工程とを有することを特徴とする。
【発明の効果】
【００２１】
本発明によれば、１つの処理に対応するトラフィックに相当するフローに対して第１のルールが適用されて得られる第１のフレーム群と第２のルールが適用されて得られる第２のフレーム群とを取得し、取得された第１のフレーム群および第２のフレーム群を参照してそれぞれのルールが適用されたフローの開始および終了を監視し、第１のフレーム群および第２のフレーム群を保持し、第１のフレーム群および第２のフレーム群の双方からフローの終了が検出された際に、保持された第１のフレーム群および第２のフレーム群を比較し、差分がない第１のフレーム群および第２のフレーム群を廃棄する。このため、すべてのフレームを適用されたルールごとにキャプチャするとともに、１つの処理に対応するフローのフレームがそれぞれのルールに関してすべて揃ったときにキャプチャされたフレーム群を比較し、一致していればこれらのフレーム群を廃棄することになる。したがって、廃棄されないフレーム群のみを調査すれば、ルールの差異がフローに対して与える影響を総合的に分析することができるとともに、すべてのフレームをキャプチャしても差分がないフローに関してはフレーム群が廃棄され、必要な記憶容量が増大することがない。結果として、トラフィック制御に関するルールが正当に機能しているか否かを容易かつ低コストで検証することができる。
【００２２】
また、本発明によれば、廃棄されないフレーム群であって、差分がある第１のフレーム群および第２のフレーム群を出力するため、ルールの差異によるルール適用後のフレーム群の違いをフロー単位で分析することができ、相互関係があるフロー内のフレームに対するルール変更の影響を総合的に調査することができる。
【００２３】
また、本発明によれば、検証の対象外のフローがあらかじめ設定されたフィルタを備え、フィルタによって対象外とされたフローに対応する第１のフレーム群および第２のフレーム群は出力せずに廃棄する。このため、例えばルール変更によって意図した差分が生じているフローに関しては、フレーム群を廃棄することができ、意図しない差分が生じたフローのフレーム群のみを取得して、原因を調査することができる。
【００２４】
また、本発明によれば、フローごとのエントリを備え、適用されたルールごとのフローの状態を各エントリにおいて管理する管理テーブルを有し、フレームが取得されると、取得されたフレームの種類に応じてこのフレームが属するフローに対応する管理テーブルのエントリを更新する。このため、複数のフローが同時進行で発生する場合にも、フローごとのフレームからそれぞれのフローの状態を確実に管理することができる。
【００２５】
また、本発明によれば、フローの開始を示す開始フレームが取得されると、管理テーブルに新規エントリを追加し、追加された新規エントリにおいて、開始フレームに適用されたルールに対応するフローの状態を接続状態に設定する。このため、新たなフローが開始された場合には、このフローの開始を管理テーブルに確実に反映することができる。
【００２６】
また、本発明によれば、フローの終了を示す終了フレームが取得されると、このフローに対応する管理テーブルのエントリにおいて、終了フレームに適用されたルールに対応するフローの状態を終了状態に設定する。このため、ルールごとにフローの終了を記録しておくことができ、複数のルールそれぞれに関してフローが終了したことを個別に管理することができる。
【００２７】
また、本発明によれば、前回のフレームが取得されてから所定時間経過するまで次のフレームが取得されないフローおよびルールにおいてタイムアウトの発生を検出し、検出されたタイムアウトをフローの終了と同等に扱って、保持された第１のフレーム群および第２のフレーム群の比較を開始する。このため、タイムアウトが発生したフローのフレーム群を必要以上に記憶し続けることがなく、確実に記憶容量の増大を防止することができる。
【００２８】
また、本発明によれば、フローへのルール適用時に施されるアドレス変換と同一のアドレス変換を第１のフレーム群および第２のフレーム群の各フレームに対して実行するため、フレームの送信元や送信先のアドレスがアドレス変換によって変わる場合でも、同一フロー内のフレームを正確に把握し、正しくフローの状態を監視することができる。
【００２９】
また、本発明によれば、取得されたフレームがデータ転送を制御する制御フローのフレームであるかデータ転送を行うデータフローのフレームであるかを判定し、判定の結果、制御フローのフレームである場合に、この制御フローに関連するデータフローを記憶し、第１のフレーム群および第２のフレーム群の双方からフローの終了が検出され、かつ、このフローに関連づけて記憶されたすべての制御フローおよびデータフローの終了が検出された際に、終了が検出されたすべてのフローに対応する第１のフレーム群および第２のフレーム群の比較を行う。このため、制御フローとデータフローが分かれているプロトコルなどにおいては、関連するフローがすべて終了してからこれらのフローのフレーム群が比較され、フロー間の相互関係も考慮してルールの差異による影響を総合的に調査することができる。
【００３０】
また、本発明によれば、ファイアウォールにおいて遮断するフレームを規定する第１のルールおよび第２のルールが適用されて得られるフレーム群を取得するため、ファイアウォールによってフレームを遮断するルールが正当に機能しているか否かを容易かつ低コストで検証することができる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。なお、以下においては、トラフィック制御としてファイアウォールを例に挙げて説明するが、本発明は、例えば複数のサーバの処理負荷を均等にするために処理要求を分散して転送する負荷分散装置などのルールを検証する際にも応用することができる。
【００３２】
（実施の形態１）
図１は、本発明の実施の形態１に係るルール検証装置１００の要部構成を示すブロック図である。図１に示すルール検証装置１００は、入力フレーム複製部１０１、出力フレーム複製部１０２、入力フレーム複製部１０３、出力フレーム複製部１０４、フロー状態監視部１０５、フロー管理テーブル１０６、フレーム保持部１０７、フロー比較部１０８、および結果出力部１０９を有している。
【００３３】
本実施の形態に係るルール検証装置１００は、サーバおよびクライアントとファイアウォール装置（以下「ＦＷ装置」と略記する）との間に設置され、サーバおよびクライアントから送信されるフレームは、ルール検証装置１００を経由してＦＷ装置に入力され、ＦＷ装置から出力されるフレームは、ルール検証装置１００を経由してサーバおよびクライアントに受信される。また、本実施の形態においては、旧ルールが設定されているＦＷ装置＃１が運用中であり、新ルールが設定されているＦＷ装置＃２を検証するものとする。
【００３４】
入力フレーム複製部１０１は、クライアントから送信されたフレームを複製し、それぞれ同一のフレームをＦＷ装置＃１およびＦＷ装置＃２に入力する。
【００３５】
出力フレーム複製部１０２は、ＦＷ装置＃１から出力されたフレームを複製し、それぞれ同一のフレームをサーバおよびフロー状態監視部１０５へ出力する。
【００３６】
入力フレーム複製部１０３は、サーバから送信されたフレームを複製し、それぞれ同一のフレームをＦＷ装置＃１およびＦＷ装置＃２に入力する。
【００３７】
出力フレーム複製部１０４は、ＦＷ装置＃１から出力されたフレームを複製し、それぞれ同一のフレームをクライアントおよびフロー状態監視部１０５へ出力する。
【００３８】
ここで、本実施の形態に係る各フレームは、１つの処理に相当するフロー内で通信されており、各フローは、サーバおよびクライアント間の複数のフレームの送受信によって構成されている。すなわち、例えばＴＣＰ（Transmission Control Protocol）などの一般的なプロトコルによる通信の場合、図２に示すような一連のフロー内で複数のフレームがやり取りされ、１つの処理が実行される。
【００３９】
図２に示す例においては、フローの開始を示す「ＴＣＰ  ＳＹＮ」フレームがクライアントからサーバへ送信されると、応答確認フレームであるＡＣＫがサーバおよびクライアント間でやり取りされた後、「ＨＴＴＰ（Hyper Text Transfer Protocol）リクエスト」フレームがクライアントからサーバへ送信される。そして、このフローの最後には、フローの終了を示す「ＴＣＰ  ＦＩＮ」フレームがクライアントからサーバへ送信され、ＡＣＫがやり取りされた後にフローが終了する。このようなフローによって、１つの処理が実行されるため、フロー内でのフレームは密接に関係しており、１つのフレームが廃棄されると、その影響はフロー全体に及ぶことになる。反対に、１つのフレームが廃棄されても、他のフローには直接的な影響がほとんどない。
【００４０】
フロー状態監視部１０５は、ＦＷ装置＃２が新ルールを適用して出力するフレームを取得するとともに、出力フレーム複製部１０２、１０４から出力されるフレームを取得し、これらのフレームをフレーム保持部１０７へ出力する。また、フロー状態監視部１０５は、取得したフレームを用いて旧ルールおよび新ルールそれぞれが適用されるフローの状態を監視する。すなわち、フロー状態監視部１０５は、フレームを取得すると、このフレームが属するフローのエントリをフロー管理テーブル１０６から検索し、既にエントリがある場合は、フレームの内容に応じてフローの状態を更新する。
【００４１】
具体的には、フレームがフローの開始を示す開始フレームであれば、フロー状態監視部１０５は、このフローの状態を「接続中」に更新し、フレームがフローの終了を示す終了フレームであれば、フロー状態監視部１０５は、このフローの状態を「終了」に更新する。このとき、フロー状態監視部１０５は、フレームが出力フレーム複製部１０２、１０４から出力されたかＦＷ装置＃２から出力されたかに応じて、旧ルールおよび新ルールのどちらが適用されたフローであるか区別してフロー状態を更新する。
【００４２】
また、フロー状態監視部１０５は、フレームが属するフローのエントリがフロー管理テーブル１０６に未登録である場合は、新たにエントリを生成し、既にエントリがある場合と同様にフロー状態を更新する。なお、フロー状態監視部１０５は、エントリを識別する際には、フレームのヘッダに格納されているサーバおよびクライアントのＩＰアドレスおよびポート番号を参照すれば良い。
【００４３】
さらに、フロー状態監視部１０５は、フロー管理テーブル１０６のいずれかのエントリのフローが旧ルールおよび新ルールの両方に関して「終了」の状態となると、その旨をフレーム保持部１０７へ通知する。
【００４４】
フロー管理テーブル１０６は、フロー状態監視部１０５によって登録されたフローごとのエントリを有しており、旧ルールを適用したＦＷ装置＃１を経由するフローの状態と新ルールを適用したＦＷ装置＃２を経由するフローの状態とを管理する。具体的には、フロー管理テーブル１０６は、例えば図３に示すように、フローごとのクライアントおよびサーバのＩＰアドレスおよびポート番号と、それぞれのＦＷ装置を経由したフローの状態とを対応付けて記憶している。フロー管理テーブル１０６は、それぞれのＦＷ装置に対応するフローの状態として、「未接続」、「接続中」、および「終了」を記憶している。
【００４５】
フレーム保持部１０７は、フロー状態監視部１０５から出力されるフレームをキャプチャ情報として保持する。具体的には、フレーム保持部１０７は、例えば図４に示すように、ＦＷ装置＃１から出力されたフレームとＦＷ装置＃２から出力されたフレームとを区別し、各フローについてフレームの受信時刻とフレームのデータとを保持する。したがって、フレーム保持部１０７は、フロー管理テーブル１０６のそれぞれのエントリについて、ＦＷ装置＃１に対応するキャプチャ情報とＦＷ装置＃２に対応するキャプチャ情報との２つのキャプチャ情報を保持することになる。そして、フレーム保持部１０７は、フロー状態監視部１０５からフローが終了した旨が通知されると、このフローに対応する２つのキャプチャ情報をフロー比較部１０８へ出力する。
【００４６】
フロー比較部１０８は、フレーム保持部１０７からキャプチャ情報が出力されると、２つのキャプチャ情報を比較し、ＦＷ装置＃１から出力されたフレーム群とＦＷ装置＃２から出力されたフレーム群とが完全に一致していれば、これらのキャプチャ情報を廃棄する。すなわち、フロー比較部１０８は、旧ルールを適用した場合と新ルールを適用した場合とでフローに変化がなければ、このフローに関するキャプチャ情報を廃棄する。
【００４７】
一方、フロー比較部１０８は、ＦＷ装置＃１から出力されたフレーム群とＦＷ装置＃２から出力されたフレーム群との間に差分があれば、これらのキャプチャ情報を結果出力部１０９へ出力する。すなわち、フロー比較部１０８は、旧ルールを適用した場合と新ルールを適用した場合とでフローに変化があれば、このフローに関する２つのキャプチャ情報を結果出力部１０９へ出力する。例えば図４に示したキャプチャ情報の例では、旧ルールを適用したＦＷ装置＃１からはフレーム４が出力されてキャプチャされているのに対し、新ルールを適用したＦＷ装置＃２からはフレーム４が出力されていない。このため、フロー比較部１０８は、エントリ１に対応するフローにおける２つのキャプチャ情報を結果出力部１０９へ出力する。
【００４８】
なお、フロー比較部１０８は、例えば時系列にフレームのバイナリパターンを比較したり、ＴＣＰのシーケンス番号を比較したりすることにより、キャプチャ情報の比較を行う。
【００４９】
結果出力部１０９は、フロー比較部１０８から出力されるキャプチャ情報を例えば外部の分析用端末などへ出力する。すなわち、結果出力部１０９は、旧ルールを適用した場合と新ルールを適用した場合とで出力されるフレームが変化したフロー内のすべてのフレームのデータを外部へ出力する。したがって、旧ルールが適用された場合と新ルールが適用された場合とで出力されるフレームに差分がある場合は、このフレームを含むフロー内のすべてのフレームが外部へ出力されることになる。
【００５０】
次いで、上記のように構成されたルール検証装置１００による検証動作について、図５に示すフロー図を参照しながら説明する。
【００５１】
まず、クライアントやサーバからフレームが送信されると、このフレームは、入力フレーム複製部１０１または入力フレーム複製部１０３によって複製され、ＦＷ装置＃１およびＦＷ装置＃２に入力される（ステップＳ１０１）。そして、ＦＷ装置＃１において旧ルールが適用されたフレームは、出力フレーム複製部１０２または出力フレーム複製部１０４へ出力されて複製され、フロー状態監視部１０５へ出力される。同時に、ＦＷ装置＃２において新ルールが適用されたフレームは、フロー状態監視部１０５へ出力される。これにより、フロー状態監視部１０５によって、ＦＷ装置＃１およびＦＷ装置＃２の両方を経由したフレームが取得されたことになる（ステップＳ１０２）。
【００５２】
フロー状態監視部１０５によってフレームが取得されると、フロー状態監視部１０５によってフロー管理テーブル１０６が検索され、取得されたフレームに対応するエントリがあるか否かが判定される（ステップＳ１０３）。すなわち、フロー状態監視部１０５によって、取得されたフレームのヘッダが参照され、サーバおよびクライアントのＩＰアドレスおよびポート番号が取得され、このＩＰアドレスおよびポート番号に一致するエントリがフロー管理テーブル１０６に登録済みであるか否かが判定される。
【００５３】
この判定の結果、エントリが未登録であれば（ステップＳ１０３Ｎｏ）、フロー状態監視部１０５によってフロー管理テーブル１０６に新たなエントリが追加され（ステップＳ１０４）、フレームを出力したＦＷ装置に対応する状態が「接続中」に更新される。すなわち、例えばＦＷ装置＃１から出力されたフレームに対応するエントリが追加される場合には、ＦＷ装置＃１に対応するフローの状態が「接続中」とされ、ＦＷ装置＃２に対応するフローの状態が「未接続」とされる。
【００５４】
また、フロー状態監視部１０５によって取得されたフレームは、フレーム保持部１０７へ出力され、フレーム保持部１０７によってフレームのデータが受信時刻に対応付けられ、キャプチャ情報として保持される（ステップＳ１０５）。このキャプチャ情報には、フロー管理テーブル１０６に新たに追加されたエントリの識別番号とＦＷ装置＃１およびＦＷ装置＃２のどちらから出力されたかの情報とが付加されている。
【００５５】
一方、フロー状態監視部１０５によるエントリの検索の結果、エントリが既に登録されていれば（ステップＳ１０３Ｙｅｓ）、フロー状態監視部１０５によってフレームの内容が参照され、フローの状態が変化したか否かが判定される（ステップＳ１０６）。この結果、フローの状態が変化していなければ（ステップＳ１０６Ｎｏ）、フレームがフレーム保持部１０７へ出力され、キャプチャ情報として保持される（ステップＳ１０５）。このとき、既に同一のフローの同一のＦＷ装置から出力されたフレームのキャプチャ情報がフレーム保持部１０７に保持されている場合には、このキャプチャ情報に追加される形でフレームが保持される。
【００５６】
また、フローの状態が変化していれば（ステップＳ１０６Ｙｅｓ）、フロー状態監視部１０５によって、フロー管理テーブル１０６におけるフロー状態が更新される（ステップＳ１０７）。すなわち、ＦＷ装置＃１から出力されたフレームによってフロー状態の変化が検知されれば、このフローに対応するエントリのＦＷ装置＃１に関する状態が更新される。同様に、ＦＷ装置＃２から出力されたフレームによってフロー状態の変化が検知されれば、このフローに対応するエントリのＦＷ装置＃２に関する状態が更新される。
【００５７】
そして、フロー状態監視部１０５によって、状態が更新されたエントリが参照され、ＦＷ装置＃１およびＦＷ装置＃２の両方に関するフロー状態が「終了」となっているか否かが判定される（ステップＳ１０８）。この結果、両方が終了していなければ（ステップＳ１０８Ｎｏ）、フレームがフレーム保持部１０７へ出力され、キャプチャ情報として保持される（ステップＳ１０５）。このとき、既に同一のフローの同一のＦＷ装置から出力されたフレームのキャプチャ情報がフレーム保持部１０７に保持されている場合には、このキャプチャ情報に追加される形でフレームが保持される。
【００５８】
また、両方のフロー状態が「終了」となった場合も（ステップＳ１０８Ｙｅｓ）、フレームがフレーム保持部１０７へ出力され、キャプチャ情報として保持される（ステップＳ１０９）。このとき、フローが終了したことから、既に同一のフローの同一のＦＷ装置から出力されたフレームのキャプチャ情報がフレーム保持部１０７に保持されていると考えられ、このキャプチャ情報に追加される形でフレームが保持される。また、両方のフローが終了した場合には、フロー状態監視部１０５によって、フローが終了した旨がフレーム保持部１０７へ通知される（ステップＳ１１０）。
【００５９】
そして、フローの終了が通知されたフレーム保持部１０７によって、終了したフローの２つのキャプチャ情報がフロー比較部１０８へ出力される。すなわち、フレーム保持部１０７へ終了が通知されたフローについては、ＦＷ装置＃１およびＦＷ装置＃２の両方に対応する状態が「終了」になっているため、ＦＷ装置＃１およびＦＷ装置＃２それぞれに対応するキャプチャ情報がフロー比較部１０８へ出力される。このように、終了したフローのキャプチャ情報については、次々にフロー比較部１０８へ出力されるため、フレーム保持部１０７の記憶容量を特に大容量にする必要はない。すなわち、フレーム保持部１０７の記憶容量は、同時進行する可能性があるフロー内のすべてのフレームを保持できる程度であれば良いことになる。
【００６０】
キャプチャ情報がフロー比較部１０８へ出力されると、フロー比較部１０８によって２つのキャプチャ情報が比較され、同一のフローに関して保持されたフレーム群の間に差分があるか否かが判定される（ステップＳ１１１）。この判定の結果、フレーム群の間に差分がある場合は（ステップＳ１１１Ｙｅｓ）、同一のフローについてＦＷ装置＃１から出力されたフレーム群とＦＷ装置＃２から出力されたフレーム群とが異なっていることを意味し、ルールの変更による影響があるフローとして、フロー全体のキャプチャ情報が結果出力部１０９を介して外部へ出力される（ステップＳ１１２）。
【００６１】
このように、ルールの変更に起因して差分が生じたフローに関しては、違いがあったフレームのみではなく、フロー全体のキャプチャ情報が外部へ出力されるため、ルールの変更によって意図した差分であるか否かを確認することができるとともに、意図した差分でない場合には、フロー内での他のフレームの遮断による影響を考慮して原因を調査することができる。
【００６２】
一方、キャプチャ情報の比較の結果、フレーム群の間に差分がない場合は（ステップＳ１１１Ｎｏ）、フロー比較部１０８によって、キャプチャ情報が廃棄される（ステップＳ１１３）。すなわち、同一のフローについてＦＷ装置＃１およびＦＷ装置＃２が同一のフレーム群を出力した場合は、このフローに対してはルールの変更による影響がないと考えられるため、フロー内のすべてのフレームを含むキャプチャ情報が廃棄される。
【００６３】
このため、フロー比較部１０８における比較の結果、不要なキャプチャ情報が廃棄され、必要な記憶容量が増大することはない。また、差分が生じたキャプチャ情報についても、結果出力部１０９から外部へ出力されるため、ルール検証装置１００内に留まることはなく、必要な記憶容量が増大することはない。
【００６４】
以上のように、本実施の形態によれば、新旧ルールそれぞれが設定されたＦＷ装置から出力されたフレームを用いてフロー状態を監視するとともに、各フローについて新旧ルールそれぞれが適用されたフローのフレーム群をキャプチャし、新旧ルール双方に対応するフローの状態が終了となると、このフローについてルールごとにまとめてキャプチャされたフレーム群を比較し、差分があればフレーム群を外部に出力する一方、差分がなければフレーム群を廃棄する。このため、ルールの変更によって出力されるフレーム群に差分が生じないフローについては、フロー終了後、直ちにフレーム群が廃棄されることになり、多数のフレームを記憶しておく必要がない。したがって、ルールの違いによる出力フレームの違いを検証するために大容量のストレージを必要とせず、結果として、トラフィック制御に関するルールが正当に機能しているか否かを容易かつ低コストで検証することができる。
【００６５】
（実施の形態２）
本発明の実施の形態２の特徴は、前回のフレームがＦＷ装置から出力されてから所定時間が経過した場合には、タイムアウトの発生を検出し、フローが終了したのと同等に扱う点である。
【００６６】
図６は、本実施の形態に係るルール検証装置１００の要部構成を示すブロック図である。同図において、図１と同じ部分には同じ符号を付し、その説明を省略する。図６に示すルール検証装置１００は、図１に示したルール検証装置１００にタイムアウト検出部２０１を追加した構成を有している。
【００６７】
タイムアウト検出部２０１は、フロー状態監視部１０５によってフレームが取得された受信時刻をフローごと、かつＦＷ装置ごとに記録しておき、前回フレームが取得されてから所定時間が経過しても次のフレームが取得されない場合にタイムアウトを検出する。そして、タイムアウト検出部２０１は、フロー管理テーブル１０６において、タイムアウトを検出したフローの状態を更新する。すなわち、タイムアウト検出部２０１は、例えば図７に示すように、タイムアウトを検出したフローのＦＷ装置に対応する状態をタイムアウトを示す「ＴＯ」に更新する。図７においては、エントリ２のフローのＦＷ装置＃２に対応する状態が「ＴＯ」に更新されている。
【００６８】
次いで、上記のように構成されたルール検証装置１００による検証動作について、図８に示すフロー図を参照しながら説明する。同図において、図５と同じ部分には同じ符号を付し、その詳しい説明を省略する。
【００６９】
まず、クライアントやサーバから送信されたフレームは、入力フレーム複製部１０１または入力フレーム複製部１０３によって複製され、ＦＷ装置＃１およびＦＷ装置＃２に入力される（ステップＳ１０１）。そして、ＦＷ装置＃１およびＦＷ装置＃２から出力されたフレームがフロー状態監視部１０５によって取得される（ステップＳ１０２）。フロー状態監視部１０５によってフレームが取得されると、フロー管理テーブル１０６から取得されたフレームのエントリが検索される（ステップＳ１０３）。
【００７０】
検索の結果、エントリが未登録であれば（ステップＳ１０３Ｎｏ）、実施の形態１と同様に、フロー管理テーブル１０６に新たなエントリが追加され（ステップＳ１０４）、フロー状態が「接続中」に更新されるとともに、フレーム保持部１０７によってフレームがキャプチャ情報として保持される（ステップＳ１０５）。また、本実施の形態においては、タイムアウト検出部２０１によって、フロー状態監視部１０５によってフレームが取得された受信時刻がフローごと、かつフレームを出力したＦＷ装置ごとに記録される。
【００７１】
一方、フロー状態監視部１０５によるエントリの検索の結果、エントリが既に登録されていれば（ステップＳ１０３Ｙｅｓ）、フレームの受信時刻がタイムアウト検出部２０１へ通知され、タイムアウト検出部２０１に記録された受信時刻が更新される（ステップＳ２０１）。同時に、フロー状態監視部１０５によってフレームの内容が参照され、フローの状態が変化したか否かが判定され（ステップＳ１０６）、フロー状態が変化していなければ（ステップＳ１０６Ｎｏ）、フレームがフレーム保持部１０７によって保持される（ステップＳ１０５）。また、フローの状態が変化していれば（ステップＳ１０６Ｙｅｓ）、フロー状態監視部１０５によって、フロー管理テーブル１０６におけるフロー状態が更新される（ステップＳ１０７）。
【００７２】
そして、フロー状態監視部１０５によって、状態が更新されたエントリが参照され、ＦＷ装置＃１およびＦＷ装置＃２の両方に関するフロー状態が「終了」または「ＴＯ」となっているか否かが判定される（ステップＳ２０２）。すなわち、本実施の形態においては、タイムアウト検出部２０１によって随時タイムアウトの検出が行われており、タイムアウトが検出された場合には、対応するフローの状態が「ＴＯ」に更新されているため、タイムアウトが発生したフローについては終了したフローと同等に扱われる。なお、タイムアウト検出の処理については、後に詳述する。フロー状態監視部１０５による判定の結果、両方のフロー状態が終了またはタイムアウトでなければ（ステップＳ２０２Ｎｏ）、フレームがフレーム保持部１０７によって保持される（ステップＳ１０５）。
【００７３】
また、両方のフロー状態が終了またはタイムアウトである場合も（ステップＳ２０２Ｙｅｓ）、フレームがフレーム保持部１０７によって保持される（ステップＳ１０９）。同時に、フロー状態監視部１０５によって、フローが終了した旨がフレーム保持部１０７へ通知される（ステップＳ１１０）。
【００７４】
そして、フローの終了が通知されたフレーム保持部１０７によって、終了したフローの２つのキャプチャ情報がフロー比較部１０８へ出力される。キャプチャ情報がフロー比較部１０８へ出力されると、フロー比較部１０８によって２つのキャプチャ情報が比較され、同一のフローに関して保持されたフレーム群の間に差分があるか否かが判定される（ステップＳ１１１）。この判定の結果、フレーム群の間に差分がある場合は（ステップＳ１１１Ｙｅｓ）、フロー全体のキャプチャ情報が結果出力部１０９を介して外部へ出力される（ステップＳ１１２）。一方、キャプチャ情報の比較の結果、フレーム群の間に差分がない場合は（ステップＳ１１１Ｎｏ）、フロー比較部１０８によって、キャプチャ情報が廃棄される（ステップＳ１１３）。
【００７５】
ここで、本実施の形態に係るタイムアウト検出処理について、図９に示すフロー図を参照しながら説明する。タイムアウト検出処理は、タイムアウト検出部２０１によって定期的に実行されている。なお、タイムアウト検出部２０１には、フロー状態監視部１０５によってフレームが取得されるたびに、フローごと、かつフレームを出力したＦＷ装置ごとにフレームの受信時刻が記録されている。
【００７６】
そして、タイムアウト検出処理を実行するタイミングになると、タイムアウト検出部２０１によって、フロー管理テーブル１０６から「接続中」の状態を含むエントリが検出される（ステップＳ３０１）。フロー管理テーブル１０６において接続中となっているフローは、フローの終了を示す終了フレームがフロー状態監視部１０５によって取得されていないフローであるが、前回フレームが取得されてからの経過時間はフロー管理テーブル１０６からは不明である。そこで、タイムアウト検出部２０１によって、該当するフローおよびＦＷ装置に対応する最新の受信時刻が確認され、この受信時刻から所定時間（例えば１分）が経過しているか否かが判定される（ステップＳ３０２）。
【００７７】
この判定の結果、最新のフレーム受信時刻から所定時間が経過していれば（ステップＳ３０２Ｙｅｓ）、タイムアウト検出部２０１によって、該当するＦＷ装置を経由するフローについてはタイムアウトが発生したと判断され、フロー管理テーブル１０６における状態が「接続中」から「ＴＯ」に更新される（ステップＳ３０３）。そして、タイムアウト検出部２０１によって、「接続中」の状態を含むとして検出されたエントリすべてについて処理が終了したか否かが判断され（ステップＳ３０４）、まだ終了していなければ、フローおよびＦＷ装置ごとに前回の受信時刻から所定時間が経過しているか否かの判定が繰り返される。
【００７８】
一方、最新のフレーム受信時刻から所定時間が経過していなければ（ステップＳ３０２Ｎｏ）、まだタイムアウトは発生していないと判断され、「接続中」の状態を含むとして検出されたエントリすべてについて処理が終了するまで、上記と同様の動作が繰り返される。
【００７９】
このように本実施の形態においては、ＦＷ装置からフレームが出力されない時間が所定時間を経過すると、このＦＷ装置におけるフローにタイムアウトが発生したと判断され、フロー管理テーブル１０６の状態が「ＴＯ」に更新される。そして、フロー状態監視部１０５によって、フロー管理テーブル１０６の状態が確認される際には、ＦＷ装置＃１およびＦＷ装置＃２の両方に対応するフローが「終了」または「ＴＯ」となっている場合にフローが終了したと判断される。このため、サーバまたはクライアントからの応答がなくタイムアウトが発生しているにも拘らず、フローの状態を接続中のままと認識することを防止し、タイムアウトを終了と同様に扱ってフレーム保持部１０７からキャプチャ情報を出力させることができる。結果として、タイムアウトが発生したフローのキャプチャ情報を必要以上に記憶し続けることがなく、確実に記憶容量の増大を防止することができる。
【００８０】
以上のように、本実施の形態によれば、フローごと、かつＦＷ装置ごとの最新のフレーム受信時刻を記録しておき、所定時間経過しても次のフレームがＦＷ装置から出力されない場合にはタイムアウトと判断し、タイムアウトをフローの終了と同様に扱って処理を実行する。このため、タイムアウトが発生したフローについても早急にキャプチャ情報を廃棄または外部へ出力することができ、キャプチャ情報を保持するために必要な記憶容量を確実に削減することができる。
【００８１】
（実施の形態３）
本発明の実施の形態３の特徴は、キャプチャ情報の比較の結果、差分がある場合でも廃棄して良いフローの条件が設定されたフィルタを設け、必要以上にキャプチャ情報が外部へ出力されないようにする点である。
【００８２】
図１０は、本実施の形態に係るルール検証装置１００の要部構成を示すブロック図である。同図において、図１と同じ部分には同じ符号を付し、その説明を省略する。図１０に示すルール検証装置は、図１に示したルール検証装置１００にフィルタ部３０１を追加した構成を有している。
【００８３】
フィルタ部３０１は、フロー比較部１０８におけるキャプチャ情報の比較の結果、たとえ２つのキャプチャ情報の間に差分があっても対象外となるフローの条件をあらかじめ記憶している。そして、フィルタ部３０１は、フロー比較部１０８からキャプチャ情報が出力された場合に、出力されたキャプチャ情報があらかじめ記憶されたフローの条件に適合するか否かを判定し、条件に適合する場合には、このキャプチャ情報を廃棄する。つまり、フィルタ部３０１は、あらかじめ記憶されたフローの条件に適合しないキャプチャ情報のみを結果出力部１０９へ出力する。
【００８４】
ここで、フィルタ部３０１に記憶される条件は、例えば旧ルールから新ルールへ変更することによって遮断を意図したフローなどであり、フロー比較部１０８によるキャプチャ情報の比較の結果、差分が生じるのが当然であるフローなどである。具体的には、例えば「http://www.fujitsu.com/extra/宛てのＨＴＴＰリクエスト」などの条件がフィルタ部３０１に設定されている。この例においては、「http://www.fujitsu.com/extra/」宛てのＨＴＴＰリクエストに関するフローについては、たとえＦＷ装置＃１およびＦＷ装置＃２から出力されたフレーム群に差分があったとしても、これらのフレーム群は、フィルタ部３０１によって廃棄され、結果出力部１０９から外部へ出力されることはない。
【００８５】
以上のように、本実施の形態によれば、ルール変更によるキャプチャ情報の差分が許容されるフローについては、フィルタリングにより外部へ出力されないようにするため、必要なキャプチャ情報のみを外部へ出力することができ、効率的にルール変更が正当に機能しているか否かを検証することができる。
【００８６】
なお、本実施の形態においては、フィルタ部３０１においてキャプチャ情報が廃棄された場合には、廃棄されたキャプチャ情報に対応するフローの識別子とフィルタ部３０１に記憶されているフローの条件とが結果出力部１０９経由で外部へ出力され、フィルタリングによってキャプチャ情報の廃棄が生じたことが把握可能なようにしても良い。
【００８７】
（実施の形態４）
本発明の実施の形態４の特徴は、ＦＷ装置においてアドレス変換が行われている場合に、ルール検証装置においても同様のアドレス変換を行い、正確にフロー状態を監視する点である。
【００８８】
図１１は、本実施の形態に係るルール検証装置１００の要部構成を示すブロック図である。同図において、図１と同じ部分には同じ符号を付し、その説明を省略する。図１１に示すルール検証装置１００は、図１に示したルール検証装置１００にアドレス変換部４０１を追加した構成を有している。
【００８９】
アドレス変換部４０１は、ＦＷ装置＃１およびＦＷ装置＃２におけるアドレス変換と同一のアドレス変換ルールでフロー状態監視部１０５によって取得されたフレームのアドレスを変換する。すなわち、アドレス変換部４０１は、フロー状態監視部１０５によってフレームが取得されると、このフレームのヘッダに格納されているサーバおよびクライアントのＩＰアドレスをアドレス変換し、ＦＷ装置と同様に変換されたアドレスをフロー状態監視部１０５へ通知する。
【００９０】
本実施の形態においては、ＦＷ装置＃１およびＦＷ装置＃２がアドレス変換を行っており、同一のサーバまたはクライアントでも通信の方向によってアドレスが異なる場合を想定している。すなわち、例えばＩＰアドレスが「２０．０．０．１」のサーバからクライアントへフレームが送信される場合、送信元のサーバのＩＰアドレスがＦＷ装置において「３０．０．０．１」に変換されると、クライアントにおいてはサーバのＩＰアドレスが「３０．０．０．１」と認識されている。したがって、サーバからクライアントへの通信においては、送信元のサーバのＩＰアドレスが「２０．０．０．１」であるのに対し、クライアントからサーバへの通信においては、宛先のサーバのＩＰアドレスが「３０．０．０．１」となる。
【００９１】
このような場合、これらの通信は同一フロー内で生じているにも拘らず、ＩＰアドレスの変換によりフロー状態監視部１０５においては異なるフローと判断されてしまうことになるため、本実施の形態では、アドレス変換部４０１がＦＷ装置と同様のアドレス変換を行う。これにより、アドレス変換が行われている場合でも、同一のフローの状態を適切に監視することが可能となる。
【００９２】
以上のように、本実施の形態によれば、ＦＷ装置がフレームのアドレス変換を行う場合には、ＦＷ装置と同様のアドレス変換を行ってフロー状態を監視するため、通信方向に関わらず同一フロー内のフレームを正確に把握し、正しくフロー状態を監視することができる。
【００９３】
（実施の形態５）
本発明の実施の形態５の特徴は、制御フローとデータフローが別々に発生するプロトコルにおいて、１つのフローが終了しただけではなく、関連するすべてのフローが終了した場合に、これらのフローのキャプチャ情報を比較する点である。
【００９４】
本実施の形態においては、例えばＦＴＰ（File Transfer Protocol）のように、データ転送の制御に関する制御フローとデータ転送そのものを行うデータフローとが別々に成立するプロトコルを想定している。
【００９５】
具体的には、例えば図１２に示すように、制御フローでは、「ＴＣＰ  ＳＹＮ」フレームや「ＴＣＰ  ＦＩＮ」フレームなどの開始フレームおよび終了フレームのほかに、データ転送のためのポートを制御する「ＦＴＰ  ＰＯＲＴ」フレームがクライアントからサーバへ送信される。一方、例えば図１３に示すように、データフローでは、「ＴＣＰ  ＳＹＮ」フレームや「ＴＣＰ  ＦＩＮ」フレームなどの開始フレームおよび終了フレームのほかに、実際のデータを転送するデータ転送フレームがクライアントからサーバへ送信される。これらの制御フローとデータフローは、互いに関連しており、１つの制御フローに対して複数のデータフローが付随していることもある。
【００９６】
図１４は、本実施の形態に係るルール検証装置１００の要部構成を示すブロック図である。同図において、図１と同じ部分には同じ符号を付し、その説明を省略する。図１４に示すルール検証装置１００は、図１に示したルール検証装置１００に制御フロー検出部５０１および関連フロー保持部５０２を追加した構成を有している。
【００９７】
制御フロー検出部５０１は、出力フレーム複製部１０２、１０４から出力されるフレームを取得し、制御フローが発生していることを検出する。すなわち、制御フロー検出部５０１は、例えば上述した「ＦＴＰ  ＰＯＲＴ」フレームなどの制御フローに特有のフレームを検出し、制御フローが発生していることを検出する。そして、制御フロー検出部５０１は、制御フローが制御するデータ転送のデータフローの識別子を取得し、制御フローおよび関連するデータフローを関連フロー保持部５０２へ通知する。なお、制御フロー検出部５０１は、「ＦＴＰ  ＰＯＲＴ」フレームなどのフレームから関連するデータフローの識別子を取得する。
【００９８】
関連フロー保持部５０２は、制御フロー検出部５０１から通知された制御フローと関連するデータフローとの識別子を保持する。
【００９９】
本実施の形態においては、フロー状態監視部１０５は、フロー管理テーブル１０６においてＦＷ装置＃１およびＦＷ装置＃２の双方に対応する状態が終了となったフローがある場合、関連フロー保持部５０２を参照して、関連するすべての制御フローおよびデータフローが終了しているか確認する。そして、関連するフローの中にまだ終了していないフローがある場合には、フレーム保持部１０７に対してフローが終了した旨を通知せず、関連する制御フローおよびデータフローすべてが終了した場合にのみ、これらのフローすべてが終了の状態であることをフレーム保持部１０７へ通知する。
【０１００】
したがって、フレーム保持部１０７は、関連する制御フローおよびデータフローのすべてが終了するまでは、これらのフローのフレームを保持しており、すべての関連フローが終了したタイミングですべての関連フローのキャプチャ情報をフロー比較部１０８へ出力する。これにより、制御フローと関連するデータフローとに関するキャプチャ情報の比較が同時に行われることになり、関連フローすべてのうち差分が生じているフローのキャプチャ情報が結果出力部１０９から出力されることになる。結果として、例えば外部の分析用端末などで関連するフローを総合的に調査して、ルール変更の影響を確認することができる。
【０１０１】
次いで、上記のように構成されたルール検証装置１００による検証動作について、図１５および図１６に示すフロー図を参照しながら説明する。同図において、図５と同じ部分には同じ符号を付し、その詳しい説明を省略する。
【０１０２】
まず、クライアントやサーバから送信されたフレームは、入力フレーム複製部１０１または入力フレーム複製部１０３によって複製され、ＦＷ装置＃１およびＦＷ装置＃２に入力される（ステップＳ１０１）。そして、ＦＷ装置＃１およびＦＷ装置＃２から出力されたフレームがフロー状態監視部１０５によって取得される（ステップＳ１０２）。このとき、ＦＷ装置＃１およびＦＷ装置＃２から出力されたフレームは、制御フロー検出部５０１によっても取得され、制御フローであることを示すフレームであるか否かが判定される（ステップＳ４０１）。
【０１０３】
この結果、フレームの識別子が制御フローのフレームであることを示している場合には（ステップＳ４０１Ｙｅｓ）、制御フロー検出部５０１によって、このフレームの内容から関連するデータフローが把握され、制御フローと関連するデータフローとの識別子が関連フロー保持部５０２へ通知される。通知された関連フローは、関連フロー保持部５０２によって保持される（ステップＳ４０２）。そして、制御フロー検出部５０１によって取得されたフレームが制御フローのフレームでない場合や（ステップＳ４０１Ｎｏ）、関連フロー保持部５０２によって関連フローが保持された後には、実施の形態１と同様に、フロー状態監視部１０５によって、フロー管理テーブル１０６から取得されたフレームのエントリが検索される（ステップＳ１０３）。
【０１０４】
検索の結果、エントリが未登録であれば（ステップＳ１０３Ｎｏ）、実施の形態１と同様に、フロー管理テーブル１０６に新たなエントリが追加され（ステップＳ１０４）、フロー状態が「接続中」に更新されるとともに、フレーム保持部１０７によってフレームがキャプチャ情報として保持される（ステップＳ１０５）。
【０１０５】
一方、フロー状態監視部１０５によるエントリの検索の結果、エントリが既に登録されていれば（ステップＳ１０３Ｙｅｓ）、フロー状態監視部１０５によってフレームの内容が参照され、フローの状態が変化したか否かが判定され（ステップＳ１０６）、フロー状態が変化していなければ（ステップＳ１０６Ｎｏ）、フレームがフレーム保持部１０７によって保持される（ステップＳ１０５）。また、フローの状態が変化していれば（ステップＳ１０６Ｙｅｓ）、フロー状態監視部１０５によって、フロー管理テーブル１０６におけるフロー状態が更新される（ステップＳ１０７）。
【０１０６】
そして、フロー状態監視部１０５によって、状態が更新されたエントリが参照され、ＦＷ装置＃１およびＦＷ装置＃２の両方に関するフロー状態が「終了」となっているか否かが判定される（ステップＳ１０８）。フロー状態監視部１０５による判定の結果、両方のフロー状態が終了でなければ（ステップＳ１０８Ｎｏ）、フレームがフレーム保持部１０７によって保持される（ステップＳ１０５）。
【０１０７】
また、両方のフロー状態が終了である場合も（ステップＳ１０８Ｙｅｓ）、フレームがフレーム保持部１０７によって保持される（ステップＳ１０９）。そして、フロー状態監視部１０５によって、フロー状態が終了となったフローの関連フローが関連フロー保持部５０２から読み出され、関連フローすべてのフロー状態が終了となっているか否かが判定される（ステップＳ４０３）。すなわち、データフローのフロー状態が終了となった場合には、関連する制御フローとこの制御フローに関連するすべてのデータフローとが終了しているか判定され、制御フローのフロー状態が終了となった場合には、関連するすべてのデータフローが終了しているか判定される。
【０１０８】
この判定の結果、まだすべての関連フローのフロー状態が終了となっていなければ（ステップＳ４０３Ｎｏ）、フロー状態監視部１０５からフレーム保持部１０７へフロー状態が終了となった旨が通知されることなく、次にＦＷ装置＃１またはＦＷ装置＃２から出力されるフレームに対して上記の処理が繰り返される。一方、すべての関連フローのフロー状態が終了となっていれば（ステップＳ４０３Ｙｅｓ）、フロー状態監視部１０５によって、フローが終了した旨がフレーム保持部１０７へ通知される（ステップＳ１１０）。
【０１０９】
そして、フローの終了が通知されたフレーム保持部１０７によって、終了したすべての関連フローそれぞれのキャプチャ情報がフロー比較部１０８へ出力される。キャプチャ情報がフロー比較部１０８へ出力されると、フロー比較部１０８によってフローごとの２つのキャプチャ情報が比較され、同一のフローに関して保持されたフレーム群の間に差分があるか否かが判定される（ステップＳ１１１）。この判定の結果、フレーム群の間に差分がある場合は（ステップＳ１１１Ｙｅｓ）、フロー全体のキャプチャ情報が結果出力部１０９を介して外部へ出力される（ステップＳ１１２）。一方、キャプチャ情報の比較の結果、フレーム群の間に差分がない場合は（ステップＳ１１１Ｎｏ）、フロー比較部１０８によって、キャプチャ情報が廃棄される（ステップＳ１１３）。
【０１１０】
以上のように、本実施の形態によれば、制御フローと関連するデータフローとを保持しておき、１つのフローのフロー状態が終了となった場合に、関連フローすべてのフロー状態が終了となったか否かを判定し、関連フローすべてのフロー状態が終了となった時にのみ、関連フローすべてのキャプチャ情報の比較を行う。このため、キャプチャ情報が外部に出力される際には、互いに関連するすべてのフローのうちフレーム群に差分が生じたフローのキャプチャ情報が出力されることになり、フロー間の相互関係も考慮してルール変更の影響を総合的に調査することができる。
なお、上記実施の形態１〜５においては、ＦＷ装置＃１、ＦＷ装置＃２、およびルール検証装置１００が別体として設けられるものとしたが、本発明のルール検証装置は、ＦＷ装置と一体的に設けられても良い。
【０１１１】
（付記１）トラフィックを制御するルールの差異に起因するトラフィックの変化を検証するルール検証装置であって、
１つの処理に対応するトラフィックに相当するフローに対して第１のルールが適用されて得られる第１のフレーム群と第２のルールが適用されて得られる第２のフレーム群とを取得する取得手段と、
前記取得手段によって取得された第１のフレーム群および第２のフレーム群を参照してそれぞれのルールが適用されたフローの開始および終了を監視する監視手段と、
前記取得手段によって取得された第１のフレーム群および第２のフレーム群を保持する保持手段と、
前記監視手段によって第１のフレーム群および第２のフレーム群の双方からフローの終了が検出された際に、前記保持手段によって保持された第１のフレーム群および第２のフレーム群を比較し、差分がない第１のフレーム群および第２のフレーム群を廃棄する廃棄手段と
を有することを特徴とするルール検証装置。
【０１１２】
（付記２）前記廃棄手段によって廃棄されないフレーム群であって、差分がある第１のフレーム群および第２のフレーム群を出力する出力手段をさらに有することを特徴とする付記１記載のルール検証装置。
【０１１３】
（付記３）前記出力手段は、
検証の対象外のフローがあらかじめ設定されたフィルタ手段を含み、
前記フィルタ手段によって対象外とされたフローに対応する第１のフレーム群および第２のフレーム群は出力せずに廃棄することを特徴とする付記２記載のルール検証装置。
【０１１４】
（付記４）前記監視手段は、
フローごとのエントリを備え、適用されたルールごとのフローの状態を各エントリにおいて管理する管理テーブルを含み、
前記取得手段によってフレームが取得されると、取得されたフレームの種類に応じてこのフレームが属するフローに対応する前記管理テーブルのエントリを更新することを特徴とする付記１記載のルール検証装置。
【０１１５】
（付記５）前記監視手段は、
前記取得手段によってフローの開始を示す開始フレームが取得されると、前記管理テーブルに新規エントリを追加し、追加された新規エントリにおいて、開始フレームに適用されたルールに対応するフローの状態を接続状態に設定することを特徴とする付記４記載のルール検証装置。
【０１１６】
（付記６）前記監視手段は、
前記取得手段によってフローの終了を示す終了フレームが取得されると、このフローに対応する前記管理テーブルのエントリにおいて、終了フレームに適用されたルールに対応するフローの状態を終了状態に設定することを特徴とする付記４記載のルール検証装置。
【０１１７】
（付記７）前記取得手段によって前回のフレームが取得されてから所定時間経過するまで次のフレームが取得されないフローおよびルールにおいてタイムアウトの発生を検出する検出手段をさらに有し、
前記廃棄手段は、
前記検出手段によって検出されたタイムアウトをフローの終了と同等に扱って、前記保持手段によって保持された第１のフレーム群および第２のフレーム群の比較を開始することを特徴とする付記１記載のルール検証装置。
【０１１８】
（付記８）前記取得手段は、
フローへのルール適用時に施されるアドレス変換と同一のアドレス変換を第１のフレーム群および第２のフレーム群の各フレームに対して実行する変換手段を含むことを特徴とする付記１記載のルール検証装置。
【０１１９】
（付記９）前記取得手段によって取得されたフレームがデータ転送を制御する制御フローのフレームであるかデータ転送を行うデータフローのフレームであるかを判定する判定手段と、
前記判定手段による判定の結果、制御フローのフレームである場合に、この制御フローに関連するデータフローを記憶する記憶手段とをさらに有し、
前記廃棄手段は、
前記監視手段によって第１のフレーム群および第２のフレーム群の双方からフローの終了が検出され、かつ、このフローに関連づけて前記記憶手段に記憶されたすべての制御フローおよびデータフローの終了が検出された際に、終了が検出されたすべてのフローに対応する第１のフレーム群および第２のフレーム群の比較を行うことを特徴とする付記１記載のルール検証装置。
【０１２０】
（付記１０）前記取得手段は、
ファイアウォールにおいて遮断するフレームを規定する第１のルールおよび第２のルールが適用されて得られるフレーム群を取得することを特徴とする付記１記載のルール検証装置。
【０１２１】
（付記１１）トラフィックを制御するルールの差異に起因するトラフィックの変化を検証するルール検証方法であって、
１つの処理に対応するトラフィックに相当するフローに対して第１のルールが適用されて得られる第１のフレーム群と第２のルールが適用されて得られる第２のフレーム群とを取得する取得工程と、
前記取得工程にて取得された第１のフレーム群および第２のフレーム群を参照してそれぞれのルールが適用されたフローの開始および終了を監視する監視工程と、
前記取得工程にて取得された第１のフレーム群および第２のフレーム群を保持する保持工程と、
前記監視工程にて第１のフレーム群および第２のフレーム群の双方からフローの終了が検出された際に、前記保持工程にて保持された第１のフレーム群および第２のフレーム群を比較する比較工程と、
前記比較工程における比較の結果、差分がない第１のフレーム群および第２のフレーム群を廃棄する廃棄工程と
を有することを特徴とするルール検証方法。
【産業上の利用可能性】
【０１２２】
本発明は、トラフィック制御に関するルールが正当に機能しているか否かを容易かつ低コストで検証する場合に適用することができる。
【図面の簡単な説明】
【０１２３】
【図１】実施の形態１に係るルール検証装置の要部構成を示すブロック図である。
【図２】実施の形態１に係るフローの例を示す図である。
【図３】実施の形態１に係るフロー管理テーブルの例を示す図である。
【図４】実施の形態１に係るキャプチャ情報の例を示す図である。
【図５】実施の形態１に係る検証動作を示すフロー図である。
【図６】実施の形態２に係るルール検証装置の要部構成を示すブロック図である。
【図７】実施の形態２に係るフロー管理テーブルの例を示す図である。
【図８】実施の形態２に係る検証動作を示すフロー図である。
【図９】実施の形態２に係るタイムアウト検出処理を示すフロー図である。
【図１０】実施の形態３に係るルール検証装置の要部構成を示すブロック図である。
【図１１】実施の形態４に係るルール検証装置の要部構成を示すブロック図である。
【図１２】実施の形態５に係る制御フローの例を示す図である。
【図１３】実施の形態５に係るデータフローの例を示す図である。
【図１４】実施の形態５に係るルール検証装置の要部構成を示すブロック図である。
【図１５】実施の形態５に係る検証動作を示すフロー図である。
【図１６】図１５に続く図である。
【符号の説明】
【０１２４】
１０１、１０３  入力フレーム複製部
１０２、１０４  出力フレーム複製部
１０５  フロー状態監視部
１０６  フロー管理テーブル
１０７  フレーム保持部
１０８  フロー比較部
１０９  結果出力部
２０１  タイムアウト検出部
３０１  フィルタ部
４０１  アドレス変換部
５０１  制御フロー検出部
５０２  関連フロー保持部
【図１】
2008197910.tif 000003
【図２】
2008197910.tif 000004
【図３】
2008197910.tif 000005
【図４】
2008197910.tif 000006
【図５】
2008197910.tif 000007
【図６】
2008197910.tif 000008
【図７】
2008197910.tif 000009
【図８】
2008197910.tif 000010
【図９】
2008197910.tif 000011
【図１０】
2008197910.tif 000012
【図１１】
2008197910.tif 000013
【図１２】
2008197910.tif 000014
【図１３】
2008197910.tif 000015
【図１４】
2008197910.tif 000016
【図１５】
2008197910.tif 000017
【図１６】
2008197910.tif 000018