(57)【要約】【課題】通信中継装置のリアルタイムの検査能力を超える量のデータの中継を行う場合に、検査漏れを避けつつも、データの中継が遅れることを防止できるようにする。【解決手段】負荷測定部１３０は、中継対象のデータの検査処理１２２を担う演算処理部１２０の負荷を測定する。データ中継部１１０は、ネットワークＡ又はＢから中継対象のデータを受け取った場合、負荷測定部１３０が求めた演算処理部１２０の負荷がある閾値以下であれば、演算処理部１２０のそのデータの検査を依頼し、検査によりそのデータが正常と判定されるとそのデータを中継する。一方、演算処理部１２０の負荷が閾値を超えている場合は、データ中継部１１０はそのデータの検査を後回しにして、そのデータを中継する。検査を後回しにされたデータは中継データ格納部１４０に格納され、演算処理部１２０の負荷が低い時に再検査に付される。【選択図】図１
2011061415.tif 000002
【特許請求の範囲】
【請求項１】
中継対象のデータをネットワーク間で中継するための中継手段と、
前記中継対象のデータの検査処理を含む演算処理を実行する演算処理手段と、
を備え、
前記中継手段は、
前記演算処理手段の負荷が第１の閾値以下の場合には前記検査処理の結果に基づき前記中継対象のデータを中継するか否かを制御し、
前記演算処理手段の負荷が前記第１の閾値を超える場合には、前記演算処理手段に前記中継対象のデータの検査処理を行わせることなく、又は前記演算処理手段による前記中継対象のデータの検査処理の完了を待つことなく、前記中継対象のデータを中継すると共に、後で前記演算処理手段に前記検査処理を行わせるために当該データを格納手段に格納する、
ことを特徴とする通信中継装置。
【請求項２】
前記演算処理手段の負荷が前記第１の閾値より小さい第２の閾値以下になった場合に、前記格納手段に格納したデータについての前記検査処理を前記演算処理手段に実行させ、当該検査処理の結果当該データが中継不可のデータであったと判明した場合には、その旨を報知する報知手段、
を更に備えることを特徴とする請求項１に記載の通信中継装置。
【請求項３】
中継対象のデータをネットワーク間で中継するための中継手段と、
中継対象のデータに対して、優先順位が定められた互いに異なる複数の検査処理を実行可能な演算処理手段と、
を備え、
前記中継手段は、
前記演算処理手段の負荷がいずれの段階にあるかに応じて、前記複数の検査処理のうち前記負荷が当該段階にあるときに実行すると定められた検査処理を前記演算処理手段に実行させ、前記演算処理手段により実行された検査処理の結果に基づき前記中継対象のデータを中継するか否かを制御し、
前記中継対象のデータを前記中継手段が中継した場合に、前記複数の検査処理の中に前記負荷が前記段階にあるときに後回しにすると定められた検査処理があれば、前記演算処理手段に当該検査処理を後で行わせるために前記中継対象のデータを格納手段に格納する、
ことを特徴とする通信中継装置。
【請求項４】
前記演算処理手段の負荷があらかじめ定められた閾値以下になった場合に、後で検査処理を実行させるために前記格納手段に格納したデータについて前記演算処理手段にその検査処理を実行させ、前記演算処理手段により実行された検査処理の結果当該データが中継不可のデータであったと判明した場合には、その旨を報知する報知手段、
を更に備えることを特徴とする請求項３に記載の通信中継装置。
【請求項５】
コンピュータを、
中継対象のデータをネットワーク間で中継するための中継手段、
前記中継対象のデータの検査処理を実行する検査手段、
として機能させ、
前記中継手段は、
前記コンピュータの負荷が第１の閾値以下の場合には前記検査処理の結果に基づき前記中継対象のデータを中継するか否かを制御し、
前記コンピュータの負荷が前記第１の閾値を超える場合には、前記検査手段に前記中継対象のデータの検査処理を行わせることなく、又は前記検査手段による前記中継対象のデータの検査処理の完了を待つことなく、前記中継対象のデータを中継すると共に、後で前記検査手段に前記検査処理を行わせるために当該データを格納手段に格納する、
ことを特徴とするプログラム。
【請求項６】
コンピュータを、
中継対象のデータをネットワーク間で中継するための中継手段、
中継対象のデータに対して、優先順位が定められた互いに異なる複数の検査処理を実行可能な検査手段、
として機能させ、
前記中継手段は、
前記コンピュータの負荷がいずれの段階にあるかに応じて、前記複数の検査処理のうち前記負荷が当該段階にあるときに実行すると定められた検査処理を前記検査手段に実行させ、前記検査手段により実行された検査処理の結果に基づき前記中継対象のデータを中継するか否かを制御し、
前記中継対象のデータを前記中継手段が中継した場合に、前記複数の検査処理の中に前記負荷が前記段階にあるときに後回しにすると定められた検査処理があれば、前記検査手段に当該検査処理を後で行わせるために前記中継対象のデータを格納手段に格納する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信中継装置及びプログラムに関する。
【背景技術】
【０００２】
例えば企業内の内部ネットワークとインターネット等の外部ネットワークとの間など、２つのネットワーク間の通信を中継するゲートウェイ装置などの通信中継装置が知られている。そして、通信中継装置の中には、それら両ネットワーク間で通信されるデータが正当なものであるかどうかを検査する機能を持つものがある。
【０００３】
この検査のための処理負荷を軽減するために、特許文献１に記載された装置では、通信相手又は通信に対応するアプリケーションに応じて、パケットを検査するか否かを制御している。
【０００４】
また、特許文献２に記載された装置では、ＩＤＳ（Intrusion Detection System:侵入検出システム）又はＩＰＳ（Intrusion Protection System:侵入防止システム）の処理速度を向上させるために、侵入検出処理を機能別に異なるハードウエアで実現したり、ハードウエアを複数化して負荷分散したりすることが開示されている。また、そのように複数のハードウエアで分散処理した場合でも通信データの順序に追い越しが生じないようにするための仕組みが記載されている。
【０００５】
なお、データ通信を中継する通信中継装置としては、ゲートウェイ装置の他にも、同一の論理的ネットワークを構成する異なる物理ネットワーク同士をデータリンク層で接続するブリッジ装置など様々な種類の装置がある。そのような各種の装置で中継するデータの検査を行う例も知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１８０２８０号公報
【特許文献２】特開２００８−２７１３４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、通信中継装置のリアルタイムの検査能力を超える量のデータの中継を行う場合に、検査漏れを避けつつも、データの中継が遅れることを防止できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
請求項１に係る発明は、中継対象のデータをネットワーク間で中継するための中継手段と、前記中継対象のデータの検査処理を含む演算処理を実行する演算処理手段と、を備え、前記中継手段は、前記演算処理手段の負荷が第１の閾値以下の場合には前記検査処理の結果に基づき前記中継対象のデータを中継するか否かを制御し、前記演算処理手段の負荷が前記第１の閾値を超える場合には、前記演算処理手段に前記中継対象のデータの検査処理を行わせることなく、又は前記演算処理手段による前記中継対象のデータの検査処理の完了を待つことなく、前記中継対象のデータを中継すると共に、後で前記演算処理手段に前記検査処理を行わせるために当該データを格納手段に格納する、ことを特徴とする通信中継装置である。
【０００９】
請求項２に係る発明は、前記演算処理手段の負荷が前記第１の閾値より小さい第２の閾値以下になった場合に、前記格納手段に格納したデータについての前記検査処理を前記演算処理手段に実行させ、当該検査処理の結果当該データが中継不可のデータであったと判明した場合には、その旨を報知する報知手段、を更に備えることを特徴とする請求項１に記載の通信中継装置である。
【００１０】
請求項３に係る発明は、中継対象のデータをネットワーク間で中継するための中継手段と、中継対象のデータに対して、優先順位が定められた互いに異なる複数の検査処理を実行可能な演算処理手段と、を備え、前記中継手段は、前記演算処理手段の負荷がいずれの段階にあるかに応じて、前記複数の検査処理のうち前記負荷が当該段階にあるときに実行すると定められた検査処理を前記演算処理手段に実行させ、前記演算処理手段により実行された検査処理の結果に基づき前記中継対象のデータを中継するか否かを制御し、前記中継対象のデータを前記中継手段が中継した場合に、前記複数の検査処理の中に前記負荷が前記段階にあるときに後回しにすると定められた検査処理があれば、前記演算処理手段に当該検査処理を後で行わせるために前記中継対象のデータを格納手段に格納する、ことを特徴とする通信中継装置である。
【００１１】
請求項４に係る発明は、前記演算処理手段の負荷があらかじめ定められた閾値以下になった場合に、後で検査処理を実行させるために前記格納手段に格納したデータについて前記演算処理手段にその検査処理を実行させ、前記演算処理手段により実行された検査処理の結果当該データが中継不可のデータであったと判明した場合には、その旨を報知する報知手段、を更に備えることを特徴とする請求項３に記載の通信中継装置である。
【００１２】
請求項５に係る発明は、コンピュータを、中継対象のデータをネットワーク間で中継するための中継手段、前記中継対象のデータの検査処理を実行する検査手段、として機能させ、前記中継手段は、前記コンピュータの負荷が第１の閾値以下の場合には前記検査処理の結果に基づき前記中継対象のデータを中継するか否かを制御し、前記コンピュータの負荷が前記第１の閾値を超える場合には、前記検査手段に前記中継対象のデータの検査処理を行わせることなく、又は前記検査手段による前記中継対象のデータの検査処理の完了を待つことなく、前記中継対象のデータを中継すると共に、後で前記検査手段に前記検査処理を行わせるために当該データを格納手段に格納する、ことを特徴とするプログラムである。
【００１３】
請求項６に係る発明は、コンピュータを、中継対象のデータをネットワーク間で中継するための中継手段、中継対象のデータに対して、優先順位が定められた互いに異なる複数の検査処理を実行可能な検査手段、として機能させ、前記中継手段は、前記コンピュータの負荷がいずれの段階にあるかに応じて、前記複数の検査処理のうち前記負荷が当該段階にあるときに実行すると定められた検査処理を前記検査手段に実行させ、前記検査手段により実行された検査処理の結果に基づき前記中継対象のデータを中継するか否かを制御し、前記中継対象のデータを前記中継手段が中継した場合に、前記複数の検査処理の中に前記負荷が前記段階にあるときに後回しにすると定められた検査処理があれば、前記検査手段に当該検査処理を後で行わせるために前記中継対象のデータを格納手段に格納する、ことを特徴とするプログラムである。
【発明の効果】
【００１４】
請求項１又は５に係る発明によれば、通信中継装置のリアルタイムの検査能力を超える量のデータの中継を行う場合に、データの中継が遅れることを防止しつつも、データ格納手段に格納したデータにより、中継したデータについて後で検査を行うことができる。
【００１５】
請求項３又は６に係る発明によれば、複数の検査処理のうち実行するものを演算処理手段又はコンピュータの負荷に応じて制御しつつも、中継対象のデータの中継時に実行しなかった検査処理については後で検査することができる。
【００１６】
請求項２又は４に係る発明によれば、中継対象のデータの中継時に実行しなかった検査処理を、演算処理手段又はコンピュータの負荷の低いときに実行することができる。
【図面の簡単な説明】
【００１７】
【図１】通信中継装置の実施形態の構成の一例を示す図である。
【図２】中継対象のデータが到来したときの通信中継装置の処理手順の一例を示すフローチャートである。
【図３】検査を後回しにしたデータについての再検査処理の手順の一例を示すフローチャートである。
【図４】通信中継装置の構成の別の例を示す図である。
【図５】検査設定記憶部に記憶されるデータ内容の一例を示す図である。
【図６】複数の検査機能の実行を段階的に後回しに設定する処理手順の一例を示すフローチャートである。
【図７】図４の通信中継装置に中継対象のデータが到来したときの処理手順の一例を示す図である。
【図８】図４の通信中継装置が検査を後回しにしたデータについての再検査を行う際の手順の一例を示す図である。
【発明を実施するための形態】
【００１８】
図１に、通信中継装置１００の実施形態の構成の一例を示す。通信中継装置１００は、ネットワーク同士の間で通信データを中継する装置である。例えばゲートウェイやブリッジなどがその一例である。通信中継装置は、ＯＳＩ参照モデルにおけるどのレイヤのデータを中継するものであってもよい。以下では、説明の便宜のため、通信中継装置がゲートウェイ装置である場合を主たる例として説明する。
【００１９】
図１の例では、通信中継装置１００は、ネットワークＡ２００とネットワークＢ３００との間に設けられ、それら２つのネットワーク間で通信されるデータを中継する。あくまで一例に過ぎないが、例えばネットワークＡは企業内のローカルエリアネットワークなどの（企業から見て）内部ネットワークであり、ネットワークＢはインターネットなどの（企業から見て）外部ネットワークである。
【００２０】
通信中継装置１００は、データ中継部１１０，演算処理部１２０，負荷測定部１３０，中継データ格納部１４０，及び不正通知部１５０を備える。
【００２１】
データ中継部１１０は、ネットワークＡ内の装置からネットワークＢ内の装置へ送られるデータ、及びその逆にＢ内の装置からからＡ内の装置へと送られるデータの中継のための制御を行う。
【００２２】
演算処理部１２０は、通信中継装置１００におけるデータ演算処理を行う装置である。演算処理部１２０は、例えばＣＰＵ（中央演算処理装置）などのプロセッサと作業用のメモリ（ＲＡＭなど）などのハードウエア、及び演算処理のためのプログラムなどのソフトウエアとに基づき構成される。演算処理部１２０が行う演算処理には、データ中継部１１０が中継しようとするデータの検査処理１２２が含まれる。検査処理１２２は、例えばウィルスチェック、ＩＰＳにおける不正パケットのチェックや不正アプリケーションのチェックなど、様々な検査のうちの１以上を実行する。演算処理部１２０は、このような検査処理１２２の他にも、通信中継装置１００における各種の演算処理を行う。
【００２３】
負荷測定部１３０は、演算処理部１２０の処理負荷を測定する。測定する負荷は、例えば演算処理部１２０のＣＰＵの使用率である。また、演算処理部１２０におけるメモリの使用率を演算処理部１２０の負荷として測定してもよい。また、ＣＰＵの使用率、メモリの使用率などといった複数の値を組み合わせて１つの負荷指標値を計算してもよい。なお、このような負荷の測定技術としては、従来のものを用いればよい。
【００２４】
なお、データ中継部１１０の処理をプログラムにより実現する場合、そのプログラムは演算処理部１２０のＣＰＵで実行する構成としてもよいし、別のＣＰＵで実行してもよい。図１では、説明の便宜上、後者の場合に相当する構成の例を示している。いずれの場合でも、負荷測定部１３０は、検査処理１２２を実行するハードウエア（ＣＰＵなど）の負荷を測定する。
【００２５】
中継データ格納部１４０は、データ中継部１１０から転送された中継対象のデータを、後での再検査のために格納する。不正通知部１５０は、中継データ格納部１４０に格納されたデータが再検査の結果不正なデータであると判定された場合に、あらかじめ登録された管理者に、不正データを検知した旨を通知する。
【００２６】
図２を参照して、中継対象のデータが到来したときの通信中継装置１００の処理手順の一例を説明する。まず、通信中継装置１００のデータ中継部１１０は、ネットワークＡ２００及びＢ３００から中継対象のデータの到来を待つ（Ｓ１０）。中継対象のデータが到来すると（Ｓ１０の判定結果が肯定Ｙ）、データ中継部１１０は、負荷測定部１３０に対して演算処理部１２０の現在の負荷を問い合わせる（Ｓ１２）。負荷測定部１３０は、この問合せに応じて、演算処理部１２０の現在の負荷の値をデータ中継部１１０に返す。なお、この代わりに、負荷測定部１３０はデータ中継部１１０とは非同期に、例えば定期的に演算処理部１２０の負荷を測定し、常に最新の測定結果をメモリに書き込んでおき、データ中継部１１０がそのメモリ上の最新の測定結果を参照するようにしてもよい。
【００２７】
データ中継部１１０は、演算処理部１２０の現在の負荷があらかじめ設定された閾値Ａ以下か否かを判定する（Ｓ１４）。負荷が閾値Ａ以下の場合、データ中継部１１０は演算処理部１２０に、中継対象のデータについての検査処理１２２を実行させる（Ｓ１６）。演算処理部１２０の負荷が閾値Ａ以下である場合、演算処理部１２０は、中継対象のデータに対し、実質的にリアルタイムで（すなわち許容可能な時間内に）検査処理１２２を実行する能力を有する。逆に言えば、閾値Ａとしては、そのような条件を満たす負荷の値を実験などにより求め、設定しておけばよい。
【００２８】
ステップＳ１６の指示に応じて、演算処理部１２０は中継対象のデータに対して検査処理１２２を実行する。検査処理１２２は、ネットワークＡからＢへ送られるデータと、その逆向きのデータとについて、同一の条件の検査を行ってもよいし、異なる条件の検査を行ってもよい。後者の場合には、例えば、データの内容やそのデータを送信又は受信するアプリケーションが同一であっても、ＡからＢの向きではそのデータは正常であるとして中継可能と判定されるが、逆向きの場合には不正と判定され中継が許可されない場合があり得る。演算処理部１２０は、その検査処理の結果をデータ中継部１１０に返す。
【００２９】
データ中継部１１０は、検査の結果が「正常」かどうかを判定する（Ｓ１８）。「正常」とは、中継対象のデータが中継可能な正当なデータであることである。逆に、「正常」でない場合、当該データは中継が禁止される。ステップＳ１８の判定で、検査の結果が「正常」であれば、データ中継部１１０は、検査した中継対象のデータを、送信元のネットワークから送信先のネットワークへと中継する（Ｓ２０）。一方、検査の結果が「不正」（すなわち「正常」でない）の場合には、検査した中継対象のデータを中継せずに破棄する（Ｓ２２）。
【００３０】
また、ステップＳ１４で、演算処理部１２０の負荷が閾値Ａを超えていると判定された場合（判定結果が否定Ｎ）、データ中継部１１０は、中継対象のデータを、検査処理１２２を行わずに、送信元のネットワークから送信先のネットワークへと中継する。そして、そのデータを中継データ格納部１４０に格納する（Ｓ２４）。すなわち、負荷が閾値Ａを超える状況で演算処理部１２０に検査処理１２２を実行させると許容範囲を超える時間を要し、データの中継に許容できない遅延を生じるので、ここではデータを検査なしで中継してしまうのである。ただしこれではセキュリティが甘くなるので、その補償のために、検査なしで中継したデータを中継データ格納部１４０に格納しておき、後で、例えば演算処理部１２０の負荷が低くなったときに、検査できるようにしている。すなわち、この実施形態では、演算処理部１２０の負荷が高い場合に、検査処理１２２の実行を後回しにするのである。検査せずに中継したデータを後で検査して不正であると判っても、中継した事実は取り消せないが、管理者はその中継されたデータについて何らかの対処を行うことができる。
【００３１】
次に、図３を参照して、中継データ格納部１４０に格納されたデータについての検査の手順の例を説明する。この手順では、負荷測定部１３０が測定する演算処理部１２０の負荷が閾値Ｂ以下になったかどうかを、例えば定期的に判定する（Ｓ３０）。演算処理部１２０の負荷がこの閾値Ｂ以下であれば、中継データ格納部１４０に格納されたデータについて検査処理１２２を実行しても、演算処理部１２０が通常実行する他の演算処理（例えば中継対象データに対する検査処理１２２）を妨げたり遅延させたりする可能性が許容可能な程度に収まる。逆に言えば、そのような負荷の値を閾値Ｂとして求め、通信中継装置１００に設定しておく。この閾値Ｂは、検査処理１２２をすぐに実行するか後回しにするかの判定のための前述の閾値Ａよりも小さい（低い）値である。
【００３２】
ステップＳ３０で、負荷測定部１３０が測定する演算処理部１２０の負荷が閾値Ｂ以下になったと判定されると、データ中継部１１０は、中継データ格納部１４０に格納されたデータを例えば１つ取り出し、そのデータについて演算処理部１２０に検査処理１２２を実行させる（Ｓ３２）。その検査処理１２２の結果、そのデータが正常であると判定されると（Ｓ３４の判定結果がＹ）、データ中継部１１０は中継データ格納部１４０からそのデータを削除する（Ｓ３６）。一方、その検査処理１２２でそのデータが不正であると判定されると（Ｓ３４の判定結果がＮ）、データ中継部１１０は、不正通知部１５０に、不正なデータを中継したことを表すメッセージを、例えば電子メールなどの通知手段を用いて、あらかじめ登録された管理者に通知させる（Ｓ３８）。このメッセージには、例えば、その不正なデータの送信元及び宛先の情報（例えばＩＰアドレスなど）、中継した日時、不正と判定された理由（例えばどのような検査で、どの条件に該当して不正と判定されたか、など）、などの情報が含まれる。ステップＳ３６又はＳ３８の処理が終わると、ステップＳ３０に戻り、以上に説明した処理を繰り返す。
【００３３】
以上に説明したように、この実施形態では、演算処理部１２０の負荷が閾値Ａより高い場合、すなわち検査処理１２２を実行すると中継に許容程度以上の遅延が生じる可能性が高い場合には、検査処理１２２を後回しにし、データを中継してしまうことで、遅延を回避している。そして、中継したデータの検査を、演算処理部１２０の負荷が低い時に実行することで、不正なデータを中継してしまった場合でも何らかの対処が取れるようにしている。
【００３４】
次に、図４を参照して、通信中継装置１００の別の例を説明する。図４の例は、演算処理部１２０が複数の検査機能を有しており、演算処理部１２０の負荷に応じてそれら個々の機能単位で検査を後回しにする点が、図１の例と異なる。
【００３５】
図示例では、演算処理部１２０は、ウィルスチェック機能１２２ａ，ＩＰＳ機能１２２ｂ，及びコンテンツフィルタ機能１２２ｃという３つの検査機能を有している。但し、これは一例に過ぎない。演算処理部１２０は、他の検査機能を有していてもよい。また、例示した３つの検査機能をすべて有している必要もない。
【００３６】
検査設定記憶部１６０は、個々の検査機能ごとに、その機能をデータの中継が要求された時にすぐに実行するか、後回しにするかという設定を記憶する。検査設定記憶部１６０に記憶されるデータ内容の例を図５に示す。この例では、ＩＰＳ機能１２２ｂのうちの不正パケットチェック機能と不正アプリケーションのチェック機能とがそれぞれ独立に制御可能となっている。なお、不正アプリケーションとは、例えば、ピアツーピアのファイル交換アプリケーションなど、通信中継装置１００が中継するネットワークのうちのいずれかで禁止されているもののことである。そして、これら２つの機能と、さらにウィルスチェック機能１２２ａとコンテンツフィルタ機能１２２ｃとのそれぞれについて、検査の実行の仕方を示す制御コードが設定されている。制御コード「ＯＮ」は、当該機能による検査を、データを中継する時点で実行することを示す。「ＬＡＴＥＲ」は、当該機能による検査を、データを中継する時点では実行せず、後回しにすることを示す。また「ＯＦＦ」は、当該機能による検査を実行しないことを示す。通信中継装置１００が持つ複数の検査機能のうち、どの検査機能を「ＯＦＦ」、すなわち使用しないもの、とするかは、通信中継装置１００の管理者が設定すればよい。
【００３７】
そして、「ＯＮ」すなわち使用すると設定された機能については、負荷測定部１３０が、定期的に測定した演算処理部１２０の負荷に応じて、その設定値を「ＬＡＴＥＲ」へと変更したり、逆に「ＬＡＴＥＲ」から「ＯＮ」に戻したりする。この検査設定記憶部１６０の更新処理の手順の一例を、図６に示す。
【００３８】
この処理では、演算処理部１２０の負荷として、演算処理部１２０が備えるＣＰＵの使用率を用いている。また、この処理のために、ＣＰＵの使用率について閾値１〜４の４つの閾値が設定されている。閾値１〜４は、その順に値が小さく設定されており、例えば閾値１は９０％、閾値２は８０％、閾値３は７０％、及び閾値４は２０％である。閾値４は、検査を後回しにしたデータの検査を行うか否かを判定する閾値Ｂ（図３参照）に相当するものであり、他の閾値よりも大幅に小さい値になっている。
【００３９】
この例は、図５に例示したコンテンツフィルタは使用しない設定のもとで、残りのＩＰＳ（不正パケットのチェック）、ＩＰＳ（不正アプリのチェック）、及びウィルスチェックの３つの機能を、ＣＰＵ負荷に応じて１つずつ段階的に後回しにしていく。それら３つの機能には、実行する優先順位が規定されている。図６の例では、ＩＰＳ（不正パケットのチェック）の優先順位が最高であり、ＩＰＳ（不正アプリのチェック）が次点、ウィルスチェックが最下位である。ＣＰＵ使用率が低ければそれら３つの検査機能をすべて使用して検査するが、使用率が上がるにつれて、優先順位が下のものから順に後回しにされる。
【００４０】
図６の手順を詳しく説明すると、まず負荷測定部１３０は、演算処理部１２０のＣＰＵの使用率を例えば定期的に測定し（Ｓ４０）、その使用率が最大の閾値１を超える段階にあれば（Ｓ４２の判定結果が肯定Ｙ）、それら３つの検査機能のすべてについて、検査設定記憶部１６０の制御コードを「ＬＡＴＥＲ」（後回し）にセットする（Ｓ４４）。また、ＣＰＵ使用率が閾値２から閾値１までの段階にある場合（Ｓ４２の判定結果が否定ＮかつＳ４６の判定結果が肯定Ｙ）は、優先順位の最も高いＩＰＳ（不正パケットのチェック）機能の制御コードを「ＯＮ」にし、残りの２つの制御コードを「ＬＡＴＥＲ」とする（Ｓ４８）。また、ＣＰＵ使用率が閾値３から閾値２までの段階にある場合（Ｓ４６の判定結果が否定ＮかつＳ５０の判定結果が肯定Ｙ）は、優先順位の最も高いＩＰＳ（不正パケットのチェック）機能と次点のＩＰＳ（不正アプリのチェック）機能の制御コードを「ＯＮ」にし、残る１つの制御コードを「ＬＡＴＥＲ」とする（Ｓ５２）。そして、ＣＰＵ使用率が閾値３以下の段階にある場合（Ｓ５０の判定結果が否定Ｎ）は、それら３つの機能の制御コードをすべて「ＯＮ」に設定する（Ｓ５４）。
【００４１】
また、負荷測定部１３０は、ＣＰＵ使用率が更に閾値４以下の場合（Ｓ５６の判定結果が否定Ｎ）は、データ中継部１１０に対し、中継データ格納部１４０に格納したデータ（検査を後回しにしたもの）についての再検査を依頼する（Ｓ５８）。
【００４２】
なお、図６の手順では、使用する検査機能の実行優先順位は固定であったが、その優先順位を管理者等のユーザが設定できるようにしてもよい。この場合、設定された優先順位に従って、ＣＰＵ使用率が大きくなるに連れて優先順位の低い検査機能から順に後回しにされることになる。
【００４３】
次に、図７を参照して、図４の装置に中継対象のデータが到来したときの処理の流れの例を説明する。まず、この例では、ネットワークＡ２００上にある端末１から通信中継装置１００に対し、ネットワークＢ３００上にある端末２を宛先とするデータが転送されたとする（Ｓ１０１）。このデータを受け取ったデータ中継部１１０は、検査設定記憶部１６０に記憶された設定を読み取り（Ｓ１０２）、読み取った設定に従って演算処理部１２０に対しそのデータを転送し検査を依頼する（Ｓ１０３）。すなわち、読み取った設定において制御コードが「ＯＮ」になっている検査機能の実行を演算処理部１２０に依頼する。演算処理部１２０は、受け取ったデータに対して指示された検査機能による検査処理を実行し（Ｓ１０４）、その検査の結果をデータ中継部１１０に返す（Ｓ１０５）。
【００４４】
そして、その検査の結果が「正常」である場合（実行された検査のすべてにおいて、そのデータが正常と判定された場合）（ＭＯＤＥ１）、データ中継部１１０は、そのデータを、ステップＳ１０２で制御コードが「ＬＡＴＥＲ」（後回し）と判明した検査機能を表す情報とを対応づけて、中継データ格納部１４０に格納する（Ｓ１０６）。また、この場合、データ中継部１１０は、そのデータを宛先であるネットワークＢ３００の端末２に向けて中継する（Ｓ１０７）。
【００４５】
ステップＳ１０５で受け取った検査の結果が「不正」である場合（実行された検査のいずれかで、そのデータが不正と判定された場合）（ＭＯＤＥ２）、データ中継部１１０は、そのデータを、宛先に向けて中継することはせず、破棄する（Ｓ１０８）。
【００４６】
なお、ステップＳ１０２の読み取りの結果、制御コードが「ＯＮ」になっている検査機能が検査設定記憶部１６０にない場合は、ステップＳ１０３〜Ｓ１０５の処理は行わなくてよい。この場合は、データ中継部１１０は、ＭＯＤＥ１の処理（Ｓ１０６及びＳ１０７）を実行すればよい。
【００４７】
次に、図８を参照して、中継データ格納部１４０に格納されたデータの再検査の際の処理の流れの例を説明する。
【００４８】
この処理では、まず負荷測定部１３０が、例えば定期的に演算処理部１２０の負荷を測定し、その測定値があらかじめ定めた閾値（図６の手順における閾値４）以下となると、データ中継部１１０にデータ再検査処理の実行を依頼する（Ｓ２０１。図６のＳ５８に対応）。データ中継部１１０は、この依頼に応じ、検査を後回しにしたデータが存在するかを中継データ格納部１４０に問い合わせる（Ｓ２０２）。この問合せに応じ、中継データ格納部１４０は、格納しているデータと、そのデータについての実行が後回しとされた検査機能を表す情報とを、データ中継部１１０に返す（Ｓ２０３）。なお、中継データ格納部１４０は、複数のデータを格納している場合は、例えば格納した日時が古い順に、例えば１つずつ、データ中継部１１０に返す。
【００４９】
データ中継部１１０は、中継データ格納部１４０から受け取ったデータを演算処理部１２０に転送し、後回しとされた各検査機能の実行を依頼する（Ｓ２０４）。この依頼に応じ、演算処理部１２０は検査を実行し（Ｓ２０５）、その結果をデータ中継部１１０に返す（Ｓ２０６）。
【００５０】
データ中継部１１０は、検査結果が「正常」であれば（ＭＯＤＥ１）、検査されたそのデータを破棄（中継データ格納部１４０から削除）する（Ｓ２０７）。一方、検査結果が「不正」であれば（ＭＯＤＥ２）、不正なデータを中継したことを表すメッセージをあらかじめ登録された管理者に通知するよう、不正通知部１５０に指示する（Ｓ２０８）。不正通知部１５０は、その指示に応じ、そのメッセージを電子メールなどのあらかじめ定められた通信手段で、管理者に通知する（Ｓ２０９）。
【００５１】
以上に例示した通信中継装置１００の演算処理機能を担う部分は、例えば、汎用のコンピュータに上述の各機能モジュールの処理を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、ＣＰＵ等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリメモリ（ＲＯＭ）等のメモリ（一次記憶）、ＨＤＤ（ハードディスクドライブ）を制御するＨＤＤコントローラ、各種Ｉ／Ｏ（入出力）インタフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばＩ／Ｏインタフェース経由で、ＣＤやＤＶＤなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭに読み出されＣＰＵ等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。なお、それら機能モジュール群のうちの一部又は全部を、専用ＬＳＩ(Large Scale Integration)、ＡＳＩＣ（Application Specific Integrated Circuit、特定用途向け集積回路）又はＦＰＧＡ（Field Programmable Gate Array）等のハードウエア回路として構成してもよい。
【００５２】
データ中継部１１０と演算処理部１２０の処理を、コンピュータに搭載された別々のＣＰＵで実行する場合は、負荷測定部１３０は演算処理部１２０の処理を実行するＣＰＵの使用率を測定すればよい。また、データ中継部１１０と演算処理部１２０の処理を同一のＣＰＵで実行する場合には、負荷測定部１３０はそのＣＰＵの使用率を測定すればよい。
【符号の説明】
【００５３】
１００  通信中継装置、１１０  データ中継部、１２０  演算処理部、１２２  検査処理、１３０  負荷測定部、１４０  中継データ格納部、１５０  不正通知部、２００  ネットワークＡ、３００  ネットワークＢ。
【図１】
2011061415.tif 000003
【図２】
2011061415.tif 000004
【図３】
2011061415.tif 000005
【図４】
2011061415.tif 000006
【図６】
2011061415.tif 000007
【図７】
2011061415.tif 000008
【図８】
2011061415.tif 000009
【図５】
2011061415.tif 000010