(57)【要約】【課題】複数の通信装置間で送受信されるフレームに基づいて通信制御を行う通信制御装置、通信制御方法、及びコンピュータプログラムの提供。【解決手段】通信装置１０，２０で送受信されるフレームを中継するネットワークデバイス１００は、インラインで挿入された通信制御装置１１０を備え、ＭＡＣ１１３，１１４を通じて入力されたフレームの転送を制御部１１１が一時的に保留し、フレームから順次データを抽出し、抽出したデータとコネクションに関する情報とを検査部１１２に渡してセキュリティ検査を行う。悪意のないデータであると検査部１１２が判断した場合、保留したデータを元の送信先へ送信し、そうでない場合には、リセット信号を送信元及び送信先に送信してコネクションを切断するか、又は送信すべきデータの内容を置換する内容置換を行う。【選択図】図１
2008028740.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信装置を接続可能になしてあり、接続された複数の通信装置のうち、一の通信装置から他の通信装置へ送信されるフレームに基づいて通信制御を行う装置において、
前記フレームから順次的にデータを抽出する抽出手段と、該抽出手段により抽出されたデータに基づいて通信を制御すべきであるか否かを判定する判定手段とを備え、該判定手段が通信を制御すべきでないと判定した場合、抽出したデータを前記他の通信装置へ送信するようにしてあることを特徴とする通信制御装置。
【請求項２】
前記抽出手段にて抽出されたデータを検査すべく、検査装置を接続するインタフェースを更に備えることを特徴とする請求項１に記載の通信制御装置。
【請求項３】
前記判定手段は、前記データが前記他の通信装置内の任意のアプリケーションに渡される契機となるデータであるか否かを判定する手段を備え、前記アプリケーションに渡される契機となるデータであると判定した場合、通信を制御すべきであると判定するようにしてあることを特徴とする請求項１又は請求項２に記載の通信制御装置。
【請求項４】
前記フレームは、連続するシーケンス番号が付された複数のセグメントからなり、前記抽出手段は、各セグメントからデータを抽出するようにしており、抽出したデータを、抽出元のセグメントに付されたシーケンス番号に関連付けて記憶する手段と、前記データを記憶した結果、前記アプリケーションに渡すことができる一連のバイト列が完成したか否かを前記シーケンス番号に基づいて判断する手段とを備え、前記バイト列が完成したと判断した場合、前記判定手段は通信を制御すべきであると判定するようにしてあることを特徴とする請求項３に記載の通信制御装置。
【請求項５】
前記判定手段が通信を制御すべきと判定した場合、前記他の通信装置に対してアクセスの遮断を要求する信号を送信する手段を備えることを特徴とする請求項１乃至請求項４の何れか１つに記載の通信制御装置。
【請求項６】
前記判定手段が通信を制御すべきと判定した場合、前記一の通信装置及び他の通信装置に対してアクセスの遮断を要求する信号を送信する手段を備えることを特徴とする請求項１乃至請求項４の何れか１つに記載の通信制御装置。
【請求項７】
前記判定手段が通信を制御すべきと判定した場合、抽出したデータの一部又は全部を他のデータにより置換する手段と、置換したデータを前記他の通信装置へ送信する手段とを備えることを特徴とする請求項１乃至請求項４の何れか１つに記載の通信制御装置。
【請求項８】
一の通信装置から他の通信装置へ送信されるフレームに基づいて通信制御を行う方法において、
前記フレームから順次的にデータを抽出し、抽出したデータに基づいて通信を制御すべきであるか否か判定し、通信を制御すべきでないと判定した場合、抽出したデータを他の通信装置へ送信することを特徴とする通信制御方法。
【請求項９】
コンピュータに、一の通信装置から他の通信装置へ送信されるフレームに基づいて通信制御を行わせるコンピュータプログラムにおいて、
コンピュータに、前記フレームから順次的にデータを抽出させるステップと、コンピュータに、抽出させたデータに基づいて通信を制御させるべきであるかを判定させるステップと、コンピュータに、通信を制御させるべきでないと判定された場合、抽出させたデータを他の通信装置へ送信させるステップとを有することを特徴とするコンピュータプログラム。
【請求項１０】
コンピュータに、前記データが前記他の通信装置内の任意のアプリケーションに渡される契機となるデータであるか否かを判定させるステップを有することを特徴とする請求項９に記載のコンピュータプログラム。
【請求項１１】
前記フレームは、連続するシーケンス番号が付された複数のセグメントからなり、各セグメントからデータを抽出させるようにしており、コンピュータに、抽出させたデータを、抽出元のセグメントに付されたシーケンス番号に関連付けて記憶させるステップと、コンピュータに、前記データを記憶させた結果、前記アプリケーションに渡すことができる一連のバイト列が完成したか否かを前記シーケンス番号に基づいて判断させるステップとを有することを特徴とする請求項１０に記載のコンピュータプログラム。
【請求項１２】
コンピュータに、通信を制御させるべきと判定された場合、前記他の通信装置に対してアクセスの遮断を要求する信号を送信させるステップを有することを特徴とする請求項９乃至請求項１１の何れか１つに記載のコンピュータプログラム。
【請求項１３】
コンピュータに、通信を制御させるべきと判定された場合、前記一の通信装置及び他の通信装置に対してアクセスの遮断を要求する信号を送信させるステップを有することを特徴とする請求項９乃至請求項１１に記載のコンピュータプログラム。
【請求項１４】
コンピュータに、通信を制御させるべきと判定された場合、抽出させたデータの一部又は全部を他のデータにより置換させるステップと、コンピュータに、置換させたデータを前記他の通信装置へ送信させるステップとを有することを特徴とする請求項９乃至請求項１１に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信装置間で送受信されるフレームに基づいて通信制御を行う通信制御装置、通信制御方法、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、企業内ネットワーク、組織内ネットワーク等の内部ネットワークのセキュリティを確保する手法として、ファイアウォールを外部ネットワークとの境界に設置する手法が知られている（例えば、特許文献１参照）。
【０００３】
ファイアウォールは、予め設定されたフィルタリングルールに基づいて、ＩＰパケットをフィルタリングする機能をもっている。フィルタリングルールは、送信元ＩＰパケット、送信先ＩＰパケット、プロトコル等のヘッダ情報と、そのヘッダ情報に対する対応するアクション（受け入れ又は拒絶）との集合である。
【０００４】
ファイアウォールは、ＩＰパケットのヘッダ情報に適合するフィルタリングルールの内容に基づいて、当該ＩＰパケットを受け入れ又は拒絶することにより、内部ネットワークを不適切なＩＰパケットの侵入から防御可能としている。
【０００５】
しかしながら、ファイアウォールは、フィルタリングルールに従ってアクションを決定するため、受け入れに対応したヘッダ情報をもつＩＰパケットに関しては、不正なＩＰパケットであっても侵入を防御することができないという問題点を有している。
【０００６】
そこで近年では、ファイアーウォールの後段の内部ネットワークに分岐接続されたネットワーク傍受型の侵入検知システム（ＩＤＳ：Intrusion Detection System）が提案されている（例えば、特許文献２参照）。
【０００７】
このＩＤＳでは、予め攻撃パターンのデータベースを保持しており、内部ネットワークから傍受したＩＰパケットをそのデータベースと照合し、攻撃となるＩＰパケットか否かを判定する。傍受したパケットが攻撃となるＩＰパケットであると判定した場合、ＩＤＳは攻撃パケットが侵入した旨を管理者に通知する。
【特許文献１】特開２００１−３１３６４０号公報
【特許文献２】特開２００２−３４２２７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、前述したような侵入検知システムでは、攻撃パケットの侵入を検知して管理者に通知したとしても、通知が管理者に届くまでに、内部ネットワーク上の該当通信装置が攻撃パケットによる攻撃を受けてしまう虞があるという問題点を有している。
【０００９】
本発明は斯かる事情に鑑みてなされたものであり、通信装置間で送受信されるフレームから順次的にデータを抽出し、抽出したデータに基づいて通信制御すべきであるか否かを判定し、通信制御すべきでないと判定した場合に抽出したデータを送信する構成とすることにより、ファイアウォールを通過するようなパケットであっても通信制御を行い、不正アクセスなどを未然に防止することができる通信制御装置、通信制御方法、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る通信制御装置は、複数の通信装置を接続可能になしてあり、接続された複数の通信装置のうち、一の通信装置から他の通信装置へ送信されるフレームに基づいて通信制御を行う装置において、前記フレームから順次的にデータを抽出する抽出手段と、該抽出手段により抽出されたデータに基づいて通信を制御すべきであるか否かを判定する判定手段とを備え、該判定手段が通信を制御すべきでないと判定した場合、抽出したデータを前記他の通信装置へ送信するようにしてあることを特徴とする。
【００１１】
本発明にあっては、通信装置間で送受信されるフレームから順次的にデータを抽出し、抽出したデータに基づいて通信を制御すべきであるか否かを判定し、通信を制御すべきであると判定した場合に抽出したデータを送信する構成とすることにより、ファイアウォールを通過するようなパケットであっても、通信制御を行うことができるため、不正アクセスに係るデータの送信等を停止することができ、不正アクセス等が未然に防止される。
【００１２】
本発明に係る通信制御装置は、前記抽出手段にて抽出されたデータを検査すべく、検査装置を接続するインタフェースを更に備えることを特徴とする。
【００１３】
本発明にあっては、検査装置を接続するインタフェースを備えるため、セキュリティの有無などを検査する場合には、ＦＰＧＡ（Field Programmable Gate Array）、ＡＳＩＣ（Application Specific Integrated Circuit）などの専用のハードウェアにより構成される検査装置を接続し、その検査装置に検査を依頼することができる。
【００１４】
本発明に係る通信制御装置は、前記判定手段は、前記データが前記他の通信装置内の任意のアプリケーションに渡される契機となるデータであるか否かを判定する手段を備え、前記アプリケーションに渡される契機となるデータであると判定した場合、通信を制御すべきであると判定するようにしてあることを特徴とする。
【００１５】
本発明にあっては、送信先の通信装置内にインストールされている任意のアプリケーションに渡される契機となるようなデータを検出した場合、通信を制御すべきであると判定するため、通信装置内で不具合を生じさせるような攻撃コードの送信が未然に防止される。
【００１６】
本発明に係る通信制御装置は、前記フレームは、連続するシーケンス番号が付された複数のセグメントからなり、前記抽出手段は、各セグメントからデータを抽出するようにしており、抽出したデータを、抽出元のセグメントに付されたシーケンス番号に関連付けて記憶する手段と、前記データを記憶した結果、前記アプリケーションに渡すことができる一連のバイト列が完成したか否かを前記シーケンス番号に基づいて判断する手段とを備え、前記バイト列が完成したと判断した場合、前記判定手段は通信を制御すべきであると判定するようにしてあることを特徴とする。
【００１７】
本発明にあっては、各セグメントから抽出したデータを、抽出元のセグメントに付されたシーケンス番号に関連付けて記憶し、記憶した結果、送信先の通信装置内にインストールされているアプリケーションに渡すことができる一連のバイト列が完成したか否かを判定し、バイト列が完成したと判断した場合、通信を制御すべきであると判定するため、セグメントのシーケンス番号を管理することによって通信制御すべきであるか否かが判定される。
【００１８】
本発明に係る通信制御装置は、前記判定手段が通信を制御すべきと判定した場合、前記他の通信装置に対してアクセスの遮断を要求する信号を送信する手段を備えることを特徴とする。
【００１９】
本発明にあっては、通信を制御すべきと判定した場合、送信先の通信装置に対してアクセスの遮断を要求する信号を送信するため、不正アクセスに係るデータなどが通信装置へ受け渡される前に通信が遮断される。
【００２０】
本発明に係る通信制御装置は、前記判定手段が通信を制御すべきと判定した場合、前記一の通信装置及び他の通信装置に対してアクセスの遮断を要求する信号を送信する手段を備えることを特徴とする。
【００２１】
本発明にあっては、通信を制御すべきと判定した場合、送信元及び送信先の双方に対してアクセスの遮断を要求する信号を送信するため、不正アクセスに係るデータなどが通信装置へ受け渡される前に通信が確実に遮断される。
【００２２】
本発明に係る通信制御装置は、前記判定手段が通信を制御すべきと判定した場合、抽出したデータの一部又は全部を他のデータにより置換する手段と、置換したデータを前記他の通信装置へ送信する手段とを備えることを特徴とする。
【００２３】
本発明にあっては、通信を制御すべきであると判定した場合、抽出したデータの一部又は全部を他のデータにより置換し、置換したデータを送信するようにしているため、通信を遮断することなく不正アクセスなどが防止される。
【００２４】
本発明に係る通信制御方法は、一の通信装置から他の通信装置へ送信されるフレームに基づいて通信制御を行う方法において、前記フレームから順次的にデータを抽出し、抽出したデータに基づいて通信を制御すべきであるか否か判定し、通信を制御すべきでないと判定した場合、抽出したデータを他の通信装置へ送信することを特徴とする。
【００２５】
本発明にあっては、通信装置間で送受信されるフレームから順次的にデータを抽出し、抽出したデータに基づいて通信を制御すべきであるか否かを判定し、通信を制御すべきであると判定した場合に抽出したデータを送信する構成とすることにより、ファイアウォールを通過するようなパケットであっても、通信制御を行うことができるため、不正アクセスに係るデータの送信等を停止することができ、不正アクセス等が未然に防止される。
【００２６】
本発明に係るコンピュータプログラムは、コンピュータに、一の通信装置から他の通信装置へ送信されるフレームに基づいて通信制御を行わせるコンピュータプログラムにおいて、コンピュータに、前記フレームから順次的にデータを抽出させるステップと、コンピュータに、抽出させたデータに基づいて通信を制御させるべきであるかを判定させるステップと、コンピュータに、通信を制御させるべきでないと判定された場合、抽出させたデータを他の通信装置へ送信させるステップとを有することを特徴とする。
【００２７】
本発明にあっては、通信装置間で送受信されるフレームから順次的にデータを抽出し、抽出したデータに基づいて通信を制御すべきであるか否かを判定し、通信を制御すべきであると判定した場合に抽出したデータを送信する構成とすることにより、ファイアウォールを通過するようなパケットであっても、通信制御を行うことができるため、不正アクセスに係るデータの送信等を停止することができ、不正アクセス等が未然に防止される。
【００２８】
本発明に係るコンピュータプログラムは、コンピュータに、前記データが前記他の通信装置内の任意のアプリケーションに渡される契機となるデータであるか否かを判定させるステップを有することを特徴とする。
【００２９】
本発明にあっては、送信先の通信装置内にインストールされている任意のアプリケーションに渡される契機となるようなデータが検出された場合、通信を制御すべきと判定されるため、通信装置内で不具合を生じさせるような攻撃コードの送信が未然に防止される。
【００３０】
本発明に係るコンピュータプログラムは、前記フレームは、連続するシーケンス番号が付された複数のセグメントからなり、各セグメントからデータを抽出させるようにしており、コンピュータに、抽出させたデータを、抽出元のセグメントに付されたシーケンス番号に関連付けて記憶させるステップと、コンピュータに、前記データを記憶させた結果、前記アプリケーションに渡すことができる一連のバイト列が完成したか否かを前記シーケンス番号に基づいて判断させるステップとを有することを特徴とする。
【００３１】
本発明にあっては、各セグメントから抽出したデータを、抽出元のセグメントに付されたシーケンス番号に関連付けて記憶し、記憶した結果、送信先の通信装置内にインストールされているアプリケーションに渡すことができる一連のバイト列が完成したか否かを判定し、バイト列が完成したと判断した場合、通信を制御すべきであると判定するため、セグメントのシーケンス番号を管理することによって通信制御すべきであるか否かが判定される。
【００３２】
本発明に係るコンピュータプログラムは、コンピュータに、通信を制御させるべきと判定された場合、前記他の通信装置に対してアクセスの遮断を要求する信号を送信させるステップを有することを特徴とする。
【００３３】
本発明にあっては、通信を制御すべきと判定した場合、送信先の通信装置に対してアクセスの遮断を要求する信号を送信するため、不正アクセスに係るデータなどが通信装置へ受け渡される前に通信が遮断される。
【００３４】
本発明に係るコンピュータプログラムは、コンピュータに、通信を制御させるべきと判定された場合、前記一の通信装置及び他の通信装置に対してアクセスの遮断を要求する信号を送信させるステップを有することを特徴とする。
【００３５】
本発明にあっては、通信を制御すべきと判定した場合、送信元及び送信先の双方に対してアクセスの遮断を要求する信号を送信するため、不正アクセスに係るデータなどが通信装置へ受け渡される前に通信が確実に遮断される。
【００３６】
本発明に係るコンピュータプログラムは、コンピュータに、通信を制御させるべきと判定された場合、抽出させたデータの一部又は全部を他のデータにより置換させるステップと、コンピュータに、置換させたデータを前記他の通信装置へ送信させるステップとを有することを特徴とする。
【００３７】
本発明にあっては、通信を制御すべきであると判定した場合、抽出したデータの一部又は全部を他のデータにより置換し、置換したデータを送信するようにしているため、通信を遮断することなく不正アクセスなどが防止される。
【発明の効果】
【００３８】
本発明による場合は、通信装置間で送受信されるフレームから順次的にデータを抽出し、抽出したデータに基づいて通信を制御すべきであるか否かを判定し、通信を制御すべきであると判定した場合に抽出したデータを送信する構成としている。したがって、ファイアウォールを通過するようなパケットであっても、不正アクセスに係るデータの送信等を停止することができ、不正アクセス等を未然に防止することができる。特に、本発明に係る通信制御装置は、任意の通信経路上にインラインで挿入することができるため、既存のネットワーク構成及び設定を変更することなく使用することができる。
【００３９】
本発明による場合は、検査装置を接続するインタフェースを備えるため、セキュリティの有無などを検査する場合には、ＦＰＧＡ、ＡＳＩＣなどの専用のハードウェアにより構成される検査装置を接続し、その検査装置に検査を依頼することができる。また、フレームからのデータの抽出、再構成するときの重複、欠落、及び順序逆転への対応を検査装置で行う必要がなくなり、検査装置を独立して開発することができる。そのため、将来的に新たな検査手法が見出されたときに全体の構成を容易にアップデートすることができる。また、検査装置では、通常のデータファイルを処理するプログラムによって行うことができる。
【００４０】
本発明による場合は、送信先の通信装置内にインストールされている任意のアプリケーションに渡される契機となるようなデータを検出した場合、通信を制御すべきであると判定する。したがって、通信装置内のアプリケーションがクラッシュして不具合を招くような攻撃コードの送信を未然に防止することができる。
【００４１】
本発明による場合は、各セグメントから抽出したデータを、抽出元のセグメントに付されたシーケンス番号に関連付けて記憶し、記憶した結果、送信先の通信装置内にインストールされているアプリケーションに渡すことができる一連のバイト列が完成したか否かを判定し、バイト列が完成したと判断した場合、通信を制御すべきであると判定する。したがって、セグメントのシーケンス番号を管理することにより、通信を制御すべきであるか否かを判定することができる。
【００４２】
本発明による場合は、通信を制御すべきであると判定した場合、送信先の通信装置に対してアクセスの遮断を要求する信号を送信する。したがって、不正アクセスに係るデータ等を受け渡す前に通信を遮断することができ、不正アクセス等による被害を最小限に抑えることができる。
【００４３】
本発明による場合は、通信を制御すべきであると判定した場合、送信元及び送信先の双方に対してアクセスの遮断を要求する信号を送信する。したがって、コネクション確立時の最初のパケットで通信制御すべきと判定した場合、コネクションを確立させる前に通信を遮断することができる。また、フレームの送信元に対して通信相手がクローズド状態であるかの如くみせることができ、通信の遮断を確実なものにすることができる。
【００４４】
本発明による場合は、通信を制御すべきであると判定した場合、抽出したデータの一部又は全部を他のデータにより置換し、置換したデータを送信する。したがって、通信を遮断することなく不正アクセス等を防止することができ、通信を遮断することが望ましくない状況下で使用することができる。また、データの一部又は全部を他のデータにより置換するため、有害な情報を無害化したり、情報漏洩を防止することができる。
【発明を実施するための最良の形態】
【００４５】
以下、本発明をその実施の形態を示す図面に基づいて具体的に説明する。
実施の形態１．
図１は本実施の形態に係る通信制御システムの概略構成を説明する模式図である。図中１０は、インターネット網などの外部ネットワークＮ１に接続された通信装置、２０は、企業内ネットワーク、組織内ネットワークなどの内部ネットワークＮ２に接続された通信装置である。通信装置１０，２０としては、通信手段を備えた装置であれば如何なる装置であってもよく、例えば、パーソナルコンピュータ、電話機、情報家電、ゲーム機等が含まれる。
【００４６】
外部ネットワークＮ１及び内部ネットワークＮ２は、本発明に係る通信制御装置１１０を内蔵したネットワークデバイス１００により接続されている。このネットワークデバイス１００は、スイッチ、ルータ等の通信ネットワーク上で送受信されるフレームを中継するための装置である。
【００４７】
ネットワークデバイス１００は、ＣＰＵ１０１、フォワーディングエンジン１０２の他に、外部ネットワークＮ１側のＰＨＹ１０３及びＭＡＣ１０４、並びに内部ネットワークＮ２側のＰＨＹ１０６及びＭＡＣ１０５を備える。なお、図１では簡略化する目的で内部ネットワークＮ２側に１組のＰＨＹ１０６及びＭＡＣ１０５を設けた構成としたが、複数組のＰＨＹ及びＭＡＣを設けて複数の通信装置を接続できるようにしてもよいことは勿論のことである。
【００４８】
ＣＰＵ１０１は、受信したフレームのチェックを行った後に最適な通信経路を設定し、設定した情報をフォワーディングエンジン１０２に通知する。フォワーディングエンジン１０２は、ＣＰＵ１０１から通知される情報と、受信したフレームのヘッダ情報とを参照して、受信したフレームの出力先を決定する。
【００４９】
ネットワークデバイス１００が、外部ネットワークＮ１側のＰＨＹ１０３又は内部ネットワーク側のＰＨＹ１０６を通じてフレームを受信した場合、インラインで挿入された通信制御装置１１０がそのフレームに基づいて通信制御を行う。
【００５０】
通信制御装置１１０は、内部ネットワークＮ２側のＭＡＣ１０５とＰＨＹ１０６と間に接続されており、制御部１１１、検査部１１２、及びＭＡＣ１１３，１１４を備えている。
【００５１】
制御部１１１は、ＭＡＣ１１３又は１１４を通じて入力されたフレームの転送を一時的に保留し、フレームからデータを順次的に抽出し、抽出したデータとコネクションに関する情報とを検査部１１２へ渡して検査依頼を行う。なお、制御部１１１については、後に詳述することとする。
【００５２】
検査部１１２は、主としてデータのセキュリティに関する検査を行う。検査手法としては、既存の検査手法を用いることもでき、また、将来的に開発される如何なる検査手法を用いることも可能である。検査手法の例としては、本願出願人が特願２００５−５０２９３２号明細書、及び特願２００５−５０２９３５号明細書において提案している不正処理判定方法を挙げることができる。検査部１１２の検査対象は、制御部１１１によって抽出されるデータであるため、通常のデータファイルを処理するプログラムによって検査することができる。
【００５３】
次に、制御部１１１の詳細について説明する。図２は制御部１１１に入力されるフレームの詳細を示す模式図であり、図３は制御部１１１の内部構成を説明するブロック図である。例えば、通信装置１０と通信装置２０との間でＴＣＰにより通信を行う場合、図２（ａ）に示したように、受信フレームは、ＭＡＣヘッダ、ＩＰヘッダ、及びＴＣＰヘッダからなるヘッダ部分と、ヘッダ以外のデータとにより構成される。制御部１１１は、検査部１１２に検査依頼を行うために受信フレームからヘッダ以外のデータを抽出する。同様に、通信装置１０と通信装置２０との間でＵＤＰにより通信を行う場合、図２（ｂ）に示したように、受信フレームは、ＭＡＣヘッダ、ＩＰヘッダ、及びＵＤＰヘッダからなるヘッダ部分と、ヘッダ以外のデータにより構成される。制御部１１１は、検査部１１２に検査依頼を行うために受信フレームからヘッダ以外のデータを抽出する。また、ヘッダ部分を参照した場合にエラーがあることが検証されたとき、制御部１１１は、検査部１１２に検査依頼を行うために、受信フレームの全体を検査依頼の対象データとして抽出する。
【００５４】
図３に示すように、受信フレームは制御部１１１内のフレーム受信部１１に入力される。フレーム受信部１１は、入力されたフレームをバッファメモリ１４へ格納し、バッファ管理テーブル１５及びフレーム管理テーブル１６へ管理情報を書き込む処理を行う。また、それと同時にフレームの種別判定、ヘッダのチェック、チェックサムのチェックを行い、フレームの種別、ヘッダエラーの有無に応じて後のどのブロックにフレームを渡すかの判断を行う。
【００５５】
テーブルマネージャ１２は、各処理部が次に行うべきフレームの処理キューの管理を行う。また、バッファ管理テーブル１５、フレーム管理テーブル１６の空き管理、並びに各テーブルへの書き込み及び読み込みを行う。
【００５６】
バッファメモリインタフェース１３は、バッファメモリ１４への書き込み、及びバッファメモリ１４からの読み込みを行う。
【００５７】
フラグメント処理部１７は、フラグメント化されたＩＰフレームをＩＰ  ＳＡ，ＩＰ  ＤＡ，Ｐｒｏｔｏｃｏｌ，ＩＤの情報を元にＩＰフラグメントの組み立ての管理を行う。管理情報はフラグメント管理テーブル２０に保持し、受信したフレームの情報に従って適宜情報の新規設定、更新を行う。なお、フラグメントの組み立てを行うのはＴＣＰ又はＵＤＰのフレームだけである。フラグメント化されたＴＣＰフレームに限り、ここでチェックサムのチェックを行う。更に、ＩＰフラグメントのオーバラップ部分の同一性検査を行ってもよい。
【００５８】
コネクション管理部１８は、ＴＣＰのコネクション管理とＴＣＰフレームをシーケンス番号順に並び替えて再構築を行うためのフレームの順序の管理を行う。管理情報は、コネクション管理テーブル２１に保持し、受信したフレームの情報に従って適宜情報の新規設定、更新を行う。更に、ＴＣＰフレームのオーバラップ部分の同一性検査を行う。
【００５９】
管理マネージャ１９は、フラグメント管理テーブル２０、コネクション管理テーブル２１の空き管理を行うと共に、これらのテーブルに対してアクセスし、データの書き込み及び読み込みを行う。
【００６０】
検査部インタフェース２２は、受信したフレームを前段の処理で判定したフレーム形式、検査依頼形態に従って検査依頼用のヘッダ情報の作成、及びフレームのデータをバッファメモリ１４から取り出し、検査部インタフェース２２から検査部１１２に対して検査依頼データの送信を行う。また、検査部１１２から送信される検査結果をフレーム管理テーブル１６及びコネクション管理テーブル２１に反映し、フレームの処理を決定する。
【００６１】
フレーム送信部２３は、検査部１１２による検査結果に応じてフレームの送信、ＲＳＴ置換、破棄を行う。また、送信、ＲＳＴ置換したフレームのフレーム管理テーブル１６、バッファ管理テーブル１５上の管理情報の解放を行う。
【００６２】
以下、通信制御装置１１０により実行される処理の手順について説明する。図４及び図５は通信制御装置１１０が実行する処理の手順を説明するフローチャートである。通信制御装置１１０が、ＭＡＣ１１３又は１１４を通じてネットワークデバイス１００の外部から送信されるフレームをフレーム受信部１１にて受信した場合（ステップＳ１１）、そのフレームをバッファメモリ１４に保持する（ステップＳ１２）。このとき、テーブルマネージャ１２はバッファ管理テーブル１５及びフレーム管理テーブル１６に対して管理情報の書き込みを行う。
【００６３】
制御部１１１は、フレーム受信部１１でのフレーム種別の判定、ヘッダのチェック、チェックサムのチェックの結果、エラーのないＩＰパケットであるか否かを判断する（ステップＳ１３）。エラーを含んだＩＰパケットであると判断した場合（Ｓ１３：ＮＯ）、受信したフレームの全体について検査部１１２に検査を依頼する（ステップＳ１４）。そして、検査部１１２による検査結果に応じて処理を実行する（ステップＳ１５）。ここで、実行する処理は、フレームの送信、破棄、リセット置換、データ置換である。
【００６４】
一方、ステップＳ１３でエラーのないＩＰパケットであると判断した場合（Ｓ１３：ＹＥＳ）、テーブルマネージャ１２は、フレーム受信部１１での処理を受けてそのＩＰパケットがフラグメント化されているか否かを判断する（ステップＳ１６）。フラグメント化されていると判断した場合（Ｓ１６：ＹＥＳ）、後述するフラグメント処理を行う（ステップＳ１７）。
【００６５】
フラグメント処理の結果、全てのフラグメントが集まったか否かを判断する（ステップＳ１８）。全てのフラグメントが集まっていないと判断した場合（Ｓ１８：ＮＯ）、受信フレームが破棄されているか否かを判断する（ステップＳ１９）。受信フレームが破棄されていない場合（Ｓ１９：ＮＯ）、バッファメモリ１４から読み込んだ受信フレームをフレーム送信部２３からＭＡＣ１１３又は１１４へ出力することにより受信フレームの送信を行う（ステップＳ２０）。また、受信フレームが破棄されている場合には（Ｓ２０：ＹＥＳ）、本フローチャートによる処理を終了する。
【００６６】
ステップＳ１６において、ＩＰパケットがフラグメント化されていないと判断した場合（Ｓ１６：ＮＯ）、又はステップＳ１８において、全てのフラグメントが集まったと判断した場合（Ｓ１８：ＹＥＳ）、テーブルマネージャ１２は、通信プロトコルがＴＣＰであるか否かを判断する（ステップＳ２１）。ＴＣＰであるか否かはＩＰパケットのヘッダをチェックすることにより判断することができる。
【００６７】
通信プロトコルがＴＣＰであると判断した場合（Ｓ２１：ＹＥＳ）、後述するＴＣＰセグメント処理を行い（ステップＳ２２）、ストリーム断片が抽出されるか否かを判断する（ステップＳ２４）。
【００６８】
図６はストリーム断片の生成の様子を示す模式図である。一般に、２つの装置間を伝送される通信パケットは、失われたり、重複したり、順序が入れ替われる場合がある。ＴＣＰは、信頼性のないネットワーク上で信頼性のあるストリーム配送サービスを提供するプロトコルであり、送信者側アプリケーションが送出した一連のバイトの並び（ストリーム）を受信側アプリケーションがそのまま受け取ることを保証する。このような信頼性のあるストリーム配送サービスでは、受信側で受信したデータは重なりなく順番通りになるように並び替えられるため、必ずしもパケットの到達ごとにデータがアプリケーションに渡されるわけではない。あるパケットの受信により受信側アプリケーションに渡された直前のデータ末尾から連続する一連のバイト列が得られるとき、これらのバイト列を受信側アプリケーションへ渡すことが可能となる。本明細書では、この一連のバイト列をデータストリーム断片と定義している。
【００６９】
したがって、図６（ａ）に示したように、「ａａａａａａａａ」というデータがアプリケーションに渡された状況下で、セグメントが連続しないデータ「ｃｃｃｃｃｃｃｃ」を受信した場合、そのデータをアプリケーションに渡すことはできず、データストリーム断片は発生しない。次に、「ａａａａａａａａ」及び「ｃｃｃｃｃｃｃｃ」に連続するデータ「ｂｂｂｂｂｂｂｂ」を受信した場合、パケットの受信によってアプリケーションに渡すことができる連続する一連のバイト列が得られたため、データストリーム断片が発生することになる。
【００７０】
コネクション管理テーブル２１の登録状況を参照することにより、ストリーム断片が抽出されたと判断した場合（Ｓ２３：ＹＥＳ）、検査部インタフェース２２を通じてＴＣＰストリームの検査依頼を行い（ステップＳ２４）、検査部１１２による検査結果に応じて処理を実行する（ステップＳ２５）。ここで、実行する処理は、フレームの送信、破棄、リセット置換、内容置換である。ストリーム断片が抽出されない場合は（Ｓ２３：ＮＯ）、処理をステップＳ１９に移行させる。
【００７１】
ステップＳ２１において、通信プロトコルがＴＣＰでないと判断した場合（Ｓ２１：ＮＯ）、テーブルマネージャ１２は、通信プロトコルがＵＤＰであるか否かを判断する（ステップＳ２６）。通信プロトコルがＵＤＰであると判断した場合（Ｓ２６：ＹＥＳ）、検査部インタフェース２２を通じてＵＤＰの検査依頼を行い（ステップＳ２７）、検査部１１２による検査結果に応じて処理を実行する（Ｓ２５）。一方、通信プロトコルがＵＤＰでないと判断した場合（Ｓ２６：ＮＯ）、処理をステップＳ１４へ移行させ、フレーム全体について検査依頼を行い（Ｓ１４）、検査結果に応じた処理を実行する（Ｓ１５）。
【００７２】
前述したフローチャートのステップＳ１５及びステップＳ２５で、検査結果が望ましくない状況である場合、すなわち、送信先に対する攻撃コードが検出された場合、送信先で管理している情報が漏洩する虞があると検出された場合などにおいて、本実施の形態では、（１）順方向ＲＳＴ置換、（２）逆方向ＲＳＴ置換、（３）順方向内容置換、（４）パケットの破棄、の何れかの処理を行い、送信先での不具合の発生を抑える。
【００７３】
図７は順方向ＲＳＴ置換及び逆方向ＲＳＴ置換を説明する説明図である。順方向ＲＳＴ置換では、悪意のあるデータが検出されたとき、そのデータの送信先に対してリセット信号を送信し、データをアプリケーションへ渡す前にコネクションを切断する処理を行う。一方、逆方向ＲＳＴ置換では、コネクション確立時の最初のパケット、すなわち、ＳＹＮフラグがセットされたパケットにより悪意のある接続である確信できる場合、コネクションを確立させる前に通信を切断する。逆方向ＲＳＴ置換では、送信元に対して通信相手がクローズ状態であるかの如くみせかけることができるため、コネクションの切断を確実なものにする。
【００７４】
図７に示した例について説明する。（ａ）外部ネットワークＮ１に接続された通信装置１０は、内部ネットワークに接続された通信装置２０に対してＴＣＰパケットを送信する。そのパケットを中継する際にネットワークデバイス１００内の通信制御装置１１０はＴＣＰストリームに対して検査を行う。（ｂ）悪意のあるデータを検出した場合、順ＲＳＴ置換を行い、通信先である通信装置２０に対してリセット信号を送信する。また、悪意のあるデータを検出してから所定時間は、通信装置１０からのアクセス（ｄ）、及び通信装置２０からのアクセス（ｆ）の何れに対してもリセット信号を送信することにより（ｅ，ｇ）、確実にコネクションを接続する。また、通信装置１０から送信されたＴＣＰパケットを所定時間が経過した後に受信した場合、ネットワークデバイス１００内の通信制御装置１１０は、再度、検査を行う。悪意のデータが検出されない場合、そのデータを通信装置２０へ送信する。
【００７５】
図８は順方向内容置換を説明する説明図である。ある特定のバイト列を等長の他のバイト列へ置換する。図８に示した例では、受信したデータの下位ビットを予め定めた「ｘｘｘｘ」により置換する様子を示している。このように、内容置換したデータを送信するため、有害な情報を無害化したり、情報の漏洩を防止したりすることができ、コネクションを切断することが望ましくない状況下で使用することができる。
【００７６】
図９はフラグメント処理の手順を説明するフローチャートである。フラグメント処理部１７は、フラグメント化されたＩＰパケットが、再構成ＩＰパケットのフラグメントであるか否かを判断する（ステップＳ３１）。再構成ＩＰパケットのフラグメントでないと判断した場合（Ｓ３１：ＮＯ）、フラグメント管理テーブル２０への登録を行い（ステップＳ３７）、再構成リストを初期化した上で（ステップＳ３８）、図に示していないタイマを起動する（ステップＳ３９）。そして、処理を後述するステップＳ３４へ移行させる。
【００７７】
ステップＳ３１で再構成ＩＰパケットのフラグメントであると判断した場合（Ｓ３１：ＹＥＳ）、ＩＰパケットは既に完成しているか否かを判断する（ステップＳ３２）。ＩＰパケットが完成していないと判断した場合（Ｓ３２：ＮＯ）、タイマを起動させてから所定時間が経過したか否かを判断することにより、タイムアウトとなったか否かを判断する（ステップＳ３３）。なお、ＩＰパケットが既に完成していると判断した場合（Ｓ３２：ＹＥＳ）、及びタイムアウトとなったと判断した場合（Ｓ３３：ＹＥＳ）、受信フレームを破棄し（ステップＳ３６）、本フローチャートによる処理を終了する。
【００７８】
タイムアウトとなっていないと判断した場合（Ｓ３３：ＮＯ）、再構成リストへの挿入位置を決定し（ステップＳ３４）、データのオーバラップ部分に矛盾があるか否かを判断する（ステップＳ３５）。データのオーバラップ部分に矛盾があると判断した場合（Ｓ３５：ＹＥＳ）、受信フレームを破棄し（Ｓ３６）、本フローチャートによる処理を終了する。また、データのオーバラップ部分に矛盾がないと判断した場合（Ｓ３５：ＮＯ）、受信フレームを破棄することなく本フローチャートによる処理を終了する。
【００７９】
図１０はＴＣＰセグメント処理の手順を説明するフローチャートである。ＴＣＰに準拠したパケットを受信した場合、まず、コネクション管理されているＴＣＰセグメントであるか否かを判断する（ステップＳ４１）。コネクション管理されているＴＣＰセグメントでないと判断した場合（Ｓ４１：ＮＯ）、そのセグメントがコネクション開始のセグメントであるか否かを判断する（ステップＳ４４）。コネクション開始のセグメントでないと判断した場合（Ｓ４４：ＮＯ）、図４に示したフローチャートのステップＳ１４へ処理を移行させる。
【００８０】
ステップＳ４１でコネクション管理されているＴＣＰセグメントであると判断した場合（Ｓ４１：ＹＥＳ）、又はステップＳ４４でコネクション開始のＴＣＰセグメントであると判断した場合（Ｓ４４：ＹＥＳ）、コネクション管理テーブル２１への登録を行い（ステップＳ４２）、キューイングリストの初期化を行う（ステップＳ４３）。
【００８１】
そして、コネクション管理テーブル２１の登録内容を参照することにより、次に期待されるシーケンス番号を有するか否かを判断する（ステップＳ４５）。次に期待されるシーケンス番号を有すると判断した場合（Ｓ４５：ＹＥＳ）、ストリーム断片とすべきデータを特定する（ステップＳ４６）。すなわち、ＴＣＰセグメントのデータがキューイングされているデータと連続する場合は、キューイングされているものを連結したデータをストリーム断片とし、連続していない場合には、ＴＣＰセグメントのデータをストリーム断片とする。また、データがなければストリーム断片は空とする。ストリーム断片とすべきデータを特定した後、次に期待されるシーケンス番号を更新する（ステップＳ４７）。
【００８２】
一方、ステップＳ４５で次に有するシーケンス番号を持たないと判断した場合（Ｓ４５：ＮＯ）、ＴＣＰセグメントのデータをキューイングリストへ追加し、データのオーバラップ部分に矛盾があるか否かを判断する（ステップＳ４９）。データのオーバラップ部分に矛盾があると判断した場合（Ｓ４９：ＹＥＳ）、受信したフレームを破棄し（ステップＳ５０）、本フローチャートによる処理を終了する。また、データのオーバラップ部分に矛盾がないと判断した場合（Ｓ４９：ＮＯ）、本フローチャートによる処理を終了する。
【００８３】
実施の形態２．
実施の形態１では、受信したフレームのセキュリティ検査を行うために、通信制御装置１１０内に専用のハードウェア（検査部１１２）を設ける構成としたが、スイッチ、ルータなどのネットワークデバイスの全体を制御するＣＰＵにその検査を行わせる構成としてもよい。
【００８４】
図１１は本実施の形態に係る通信制御システムの概略構成を説明する模式図である。実施の形態１と同様に、本発明に係る通信制御装置２１０を備えたネットワークデバイス２００が、外部ネットワークＮ１に接続された通信装置１０、及び内部ネットワークＮ２に接続されたＮ２に接続された通信装置２０に接続されている。
【００８５】
ネットワークデバイス２００は、ＣＰＵ２０１、フォワーディングエンジン２０２の他に、外部ネットワークＮ１側のＰＨＹ２０３及びＭＡＣ２０４、並びに内部ネットワークＮ２側のＰＨＹ２０６及びＭＡＣ２０５を備える。なお、図１１では簡略化する目的で内部ネットワークＮ２側に１組のＰＨＹ２０６及びＭＡＣ２０５を設けた構成としたが、複数組のＰＨＹ及びＭＡＣを設けて複数の通信装置を接続できるようにしてもよいことは勿論のことである。
【００８６】
ネットワークデバイス２００が、外部ネットワークＮ１側のＰＨＹ２０３又は内部ネットワーク側のＰＨＹ２０６を通じてフレームを受信した場合、インラインで挿入された通信制御装置２１０がそのフレームに基づいて通信制御を行う。通信制御装置２１０がストリーム断片などのセキュリティ検査を行う場合、実施の形態１と異なり、本実施の形態ではネットワークデバイス２００のＣＰＵ２０１に対して検査依頼を行う。なお、制御部２１１の内部構成については、実施の形態１で説明したものと全く同様であるため、その説明を省略することとする。
【００８７】
実施の形態３
実施の形態１及び実施の形態２では、ネットワークデバイスの内部にインラインで挿入される構成としたが、専用のハードウェアとして構成することも可能である。
【００８８】
図１２は本実施の形態に係る通信制御装置の内部構成を説明するブロック図である。図１２に示した通信制御装置３００は、制御部３０１、検査部３０２、並びに受信側のＰＨＹ３０５ａ、ＭＡＣ３０６ａ、及び送信側のＰＨＹ３０５ｂ、ＭＡＣ３０６ｂを備えている。
【００８９】
制御部３０１は、ＰＨＹ３０５ａ及びＭＡＣ３０６ａを通じて受信したフレームの転送を一時的に保留し、フレームからデータを順次的に抽出し、抽出したデータとコネクションに関する情報とを検査部３０２に渡して検査依頼を行う。
【００９０】
検査結果が望ましくない状況である場合、実施の形態１と同様に、フレームの破棄、リセット置換、内容置換などを行い、不具合を発生させるようなアプリケーションにデータが渡る前にコネクションの切断を行ったり、情報の漏洩を防止したりする。
【００９１】
なお、このような通信制御装置３００をパーソナルコンピュータなどの情報処理装置に組み込み、一部のセキュリティ検査を、その情報処理装置が備えるＣＰＵに検査させる構成であってもよい。
【００９２】
実施の形態４．
前述した実施の形態では、何れもハードウェアの処理により検査を行わせる構成としたが、ソフトウェアの処理により判定処理を行う構成であってもよい。
【００９３】
図１３は本発明のコンピュータプログラムがインストールされた情報処理装置の内部構成を説明するブロック図である。図中４００は、パーソナルコンピュータなどの情報処理装置である。この情報処理装置４００は、ＣＰＵ４０１、メモリ４０３、ハードディスク４０４、ネットワークカード４０５、ネットワークカード４０６を備え、これらのハードウェアが互いにバス４０２を介して接続されている。
【００９４】
ハードディスク４０４には、本発明のコンピュータが予めインストールされており、ＣＰＵ４０１が、このプログラムをメモリ４０３上にロードして実行することにより、装置全体を本発明に係る通信制御装置として機能させる。
【００９５】
判定手順等は実施の形態１に示したものと全く同様であり、例えば、ネットワークカード４０５を通じて受信したフレームの転送を一時的に保留し、フレームから順次的にデータを抽出し、抽出したデータとコネクションに関する情報とをＣＰＵ４０１に渡して検査依頼を行う。
【図面の簡単な説明】
【００９６】
【図１】本実施の形態に係る通信制御システムの概略構成を説明する模式図である。
【図２】制御部に入力されるフレームの詳細を示す模式図である。
【図３】制御部の内部構成を説明するブロック図である。
【図４】通信制御装置が実行する処理の手順を説明するフローチャートである。
【図５】通信制御装置が実行する処理の手順を説明するフローチャートである。
【図６】ストリーム断片の生成の様子を示す模式図である。
【図７】順方向ＲＳＴ置換及び逆方向ＲＳＴ置換を説明する説明図である。
【図８】順方向内容置換を説明する説明図である。
【図９】フラグメント処理の手順を説明するフローチャートである。
【図１０】ＴＣＰセグメント処理の手順を説明するフローチャートである。
【図１１】本実施の形態に係る通信制御システムの概略構成を説明する模式図である。
【図１２】本実施の形態に係る通信制御装置の内部構成を説明するブロック図である。
【図１３】本発明のコンピュータプログラムがインストールされた情報処理装置の内部構成を説明するブロック図である。
【符号の説明】
【００９７】
１０，２０  通信装置  
１００  ネットワークデバイス
１０１  ＣＰＵ
１０２  フォワーディングエンジン
１０３，１０６  ＰＨＹ
１０４，０５  ＭＡＣ
１１０  通信制御装置
１１１  制御部
１１２  検査部
１１３，１１４  ＭＡＣ
Ｎ１  外部ネットワーク
Ｎ２  内部ネットワーク
【図１】
2008028740.tif 000003
【図２】
2008028740.tif 000004
【図３】
2008028740.tif 000005
【図４】
2008028740.tif 000006
【図５】
2008028740.tif 000007
【図６】
2008028740.tif 000008
【図７】
2008028740.tif 000009
【図８】
2008028740.tif 000010
【図９】
2008028740.tif 000011
【図１０】
2008028740.tif 000012
【図１１】
2008028740.tif 000013
【図１２】
2008028740.tif 000014
【図１３】
2008028740.tif 000015