(57)【要約】【課題】ホワイトリストに登録された対象の異常を検知する。【解決手段】受信したデータを転送する通信装置であって、通信装置を経由した通信が許可された対象である許可対象を管理するためのホワイトリストを保持し、ホワイトリストに基づいて、受信したデータの転送制御を行う転送部、及び許可対象の通信に関する挙動を解析する制御部を有し、制御部は、許可対象の通信に関する挙動を示す監視パラメータを算出し、監視パラメータに基づいて、異常が発生した許可対象を検知する。【選択図】図２
2019125914.tif 000002
【特許請求の範囲】
【請求項１】
受信したデータを転送する通信装置であって、
演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続される通信インタフェースを備え、
前記通信装置を経由した通信が許可された対象である許可対象を管理するためのホワイトリストを保持し、
前記ホワイトリストに基づいて、前記受信したデータの転送制御を行う転送部、及び前記許可対象の通信に関する挙動を解析する制御部を有し、
前記制御部は、
前記許可対象の通信に関する挙動を示す監視パラメータを算出し、
前記監視パラメータに基づいて、異常が発生した前記許可対象を検知することを特徴とする通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記監視パラメータは、前記許可対象が行う通信の通信間隔であり、
前記制御部は、前記通信間隔及び閾値の比較結果に基づいて、前記異常が発生した許可対象を検知することを特徴とする通信装置。
【請求項３】
請求項２に記載の通信装置であって、
前記制御部は、
前記閾値として最大通信間隔を管理し、
第１許可対象の前記通信間隔が前記最大通信間隔より大きい場合、前記第１許可対象に異常が発生したことを検知することを特徴とする通信装置。
【請求項４】
請求項２に記載の通信装置であって、
前記制御部は、
前記閾値として最小通信間隔を管理し、
第１許可対象の前記通信間隔が前記最小通信間隔より小さい場合、前記第１許可対象に異常が発生したことを検知することを特徴とする通信装置。
【請求項５】
請求項２に記載の通信装置であって、
前記制御部は、
前記異常が発生した許可対象を検知した場合、前記異常が発生した許可対象が検知された旨を通知するためのアラートを生成し、送信することを特徴とする通信装置。
【請求項６】
請求項２に記載の通信装置であって、
前記制御部は、前記異常が発生した許可対象を検知した場合、前記異常が発生した許可対象の通信の遮断を前記転送部に指示することを特徴とする通信装置。
【請求項７】
請求項２に記載の通信装置であって、
前記制御部は、
前記通信装置を経由する複数の許可対象の通信を解析し、
前記複数の許可対象の通信の解析結果に基づいて、前記複数の許可対象の各々の通信間隔を算出し、
前記記憶装置に、前記複数の許可対象の各々の前記通信間隔を前記閾値として格納することを特徴とする通信装置。
【請求項８】
受信したデータを転送する通信装置に実行させるためのプログラムであって、
演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続される通信インタフェースを備え、
前記通信装置を経由した通信が許可された対象である許可対象を管理するためのホワイトリストを保持し、
前記プログラムは、
前記ホワイトリストに基づいて、前記受信したデータの転送制御を行う第１の手順と、
前記許可対象の通信に関する挙動を解析する第２の手順と、を前記通信装置に実行させ、
前記第２の手順は、
前記許可対象の通信に関する挙動を示す監視パラメータを算出する手順と、
前記監視パラメータに基づいて、異常が発生した前記許可対象を検知する手順と、を含むことを特徴とするプログラム。
【請求項９】
請求項８に記載のプログラムであって、
前記監視パラメータは、前記許可対象が行う通信の通信間隔であり、
前記第２の手順は、前記通信間隔及び閾値の比較結果に基づいて、前記異常が発生した許可対象を検知する手順を含むことを特徴とするプログラム。
【請求項１０】
請求項９に記載のプログラムであって、
前記通信装置は、前記閾値として最大通信間隔を管理し、
前記第２の手順は、第１許可対象の前記通信間隔が前記最大通信間隔より大きい場合、前記第１許可対象に異常が発生したことを検知する手順を含むことを特徴とするプログラム。
【請求項１１】
請求項９に記載のプログラムであって、
前記通信装置は、前記閾値として最小通信間隔を管理し、
前記第２の手順は、第１許可対象の前記通信間隔が前記最小通信間隔より小さい場合、前記第１許可対象に異常が発生したことを検知する手順を含むことを特徴とするプログラム。
【請求項１２】
請求項９に記載のプログラムであって、
前記異常が発生した許可対象が検知された場合、前記異常が発生した許可対象が検知された旨を通知するためのアラートを生成し、送信する手順を前記通信装置に実行させるためのプログラム。
【請求項１３】
請求項９に記載のプログラムであって、
前記異常が発生した許可対象が検知された場合、前記異常が発生した許可対象の通信の遮断する手順を前記通信装置に実行させるためのプログラム。
【請求項１４】
請求項９に記載のプログラムであって、
前記通信装置を経由する複数の許可対象の通信を解析する手順と、
前記複数の許可対象の通信の解析結果に基づいて、前記複数の許可対象の各々の通信間隔を算出する手順と、
前記記憶装置に、前記複数の許可対象の各々の前記通信間隔を前記閾値として格納する手順と、を前記通信装置に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホワイトリスト機能を有する通信装置に関する。
【背景技術】
【０００２】
近年、発電所等の重要なインフラのネットワークが攻撃者に侵入され、システム制御が奪われる等のインシデントが多発している。重要なインフラのネットワークに対する攻撃の防御策として、ファイアウォール装置、及びパーソナルコンピュータ等の計算機に搭載されるセキュリティソフト等が利用されている。しかし、前述のような防御策を講じていても攻撃者の侵入を防ぎ切れていない。
【０００３】
ネットワークに侵入された場合のリスクの軽減手法として、ホワイトリスト機能を利用する方法がある。ホワイトリスト機能とは、通信等の動作を許可する端末及びアプリケーション等の対象のリストを事前に生成し、当該リストに登録されていない対象の動作を排除する機能である。「稼動後は一定の動きを継続することが多く、例外的な動きをすることは極めて少ない」制御システムのようなシステム及び設備において、規定されていない動作を禁止する手法として、ホワイトリスト機能は大きな効果を発揮する。
【０００４】
ホワイトリスト機能をネットワークスイッチ等の通信装置に適用する技術として、特許文献１に記載の技術が知られている。
【０００５】
特許文献１には、「生成期間中に、受信したデータに含まれるヘッダ情報を格納するホワイトリストを記憶する記憶部と、運用期間中にデータを受信する場合、データに含まれるヘッダ情報がホワイトリストに格納されており、データの受信が生成期間中に受信したデータの受信履歴に基づく、データに含まれるヘッダ情報のホワイトリストを用いた通信制御に関する時間幅であるとき、データを宛先に向けて転送することを許可し、データに含まれるヘッダ情報がホワイトリストに格納されており、データの受信が時間幅ではないとき、データを宛先に向けて転送することを許可しない転送部と、を備える通信装置」が記載されている。
【０００６】
一方、システム内部の稼動状態を監視する技術として、特許文献２に記載の技術が知られている。
【０００７】
特許文献２には、「ネットワーク管理システムは、ＩＰノードから送信されるデータを受信して少なくとも各ＩＰノードが送信したデータの最新受信時刻を記憶するデータ取得装置と、データ取得装置の記憶部に記憶された各ＩＰノードの最新受信時刻に基づき各ＩＰノードの稼動状態を把握する管理装置と、を備える。」ことが記載されている。
【０００８】
特許文献１、２に記載の従来技術では、ホワイトリスト機能を有する通信装置は、受信したパケットのヘッダ情報等に基づいて、通信を許可する対象を登録したホワイトリストを生成する。従来の通信装置は、ホワイトリストに基づいて、登録されていない対象のパケットを検知できる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１７−００５４０２号公報
【特許文献２】特開２０１０−００３０５４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従来の通信装置は、ホワイトリストに登録される対象に関連するパケットを受信した場合、正当な通信と判定し、当該パケットの転送処理を行う。そのため、従来の通信装置は、ホワイトリストに登録された対象の異常を検知しないという課題がある。ホワイトリストに登録された対象の異常は、例えば、不正な持ち出し及び盗難等による端末の紛失、並びに、ウイルスに感染した対象を用いたネットワークへの侵入等である。
【００１１】
前述のような対象の異常を検知するためには、通信装置とは別に、端末等の対象の稼動を監視するシステム、及びセキュリティアプライアンス等を導入する必要がある。しかし、前述のシステム及びセキュリティアプライアンスの導入は、システムの全体の複雑化及びコストの増加を招いてしまうという課題がある。
【００１２】
本発明の目的は、ホワイトリストに登録される対象の異常を検知する通信装置及びプログラムを実現する。
【課題を解決するための手段】
【００１３】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、受信したデータを転送する通信装置であって、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続される通信インタフェースを備え、前記通信装置を経由した通信が許可された対象である許可対象を管理するためのホワイトリストを保持し、前記ホワイトリストに基づいて、前記受信したデータの転送制御を行う転送部、及び前記許可対象の通信に関する挙動を解析する制御部を有し、前記制御部は、前記許可対象の通信に関する挙動を示す監視パラメータを算出し、前記監視パラメータに基づいて、異常が発生した前記許可対象を検知することを特徴とする。
【発明の効果】
【００１４】
本発明の一態様によれば、ホワイトリスト機能を有する通信装置が、通信が許可された端末等の対象の異常を検知できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１５】
【図１】実施例１の通信システムの構成例を示す図である。
【図２】実施例１の中継装置の構成例を示す図である。
【図３Ａ】実施例１のホワイトリスト格納メモリに格納されるホワイトリストのデータ構造の一例を示す図である。
【図３Ｂ】実施例１のホワイトリスト格納メモリに格納されるホワイトリストのデータ構造の一例を示す図である。
【図４】実施例１の学習状態のパケット転送部が実行する処理を説明するフローチャートである。
【図５】実施例１の学習状態のホワイトリスト生成プログラムが実行する処理を説明するフローチャートである。
【図６】実施例１の学習状態の監視プログラムが実行する処理を説明するフローチャートである。
【図７】実施例１の運用状態のパケット転送部が実行する処理を説明するフローチャートである。
【図８】実施例１の運用状態の監視プログラムが実行する処理を説明するフローチャートである。
【図９】実施例１の運用状態の監視プログラムが周期的に実行する処理を説明するフローチャートである。
【発明を実施するための形態】
【００１６】
まず、本発明の概要について説明する。
【００１７】
本発明の中継装置は、ホワイトリストに登録された対象（端末及びアプリケーション）に対して以下のような処理を実行する。なお、以下の説明では、ホワイトリストに登録された対象を許可対象と記載する。
【００１８】
中継装置は、ネットワーク内の許可対象の通信に関する挙動を解析する。具体的には、中継装置は通信に関する挙動を示す監視パラメータを算出する。後述するように、通信間隔が監視パラメータとして用いられる。
【００１９】
許可対象である端末又は許可対象であるアプリケーションが稼働する端末がウイルスに感染し、ＤＤｏＳ攻撃の踏み台端末として利用された場合、短い間隔で頻繁に通信が行われる。そこで、中継装置は、通信間隔が所定の閾値より小さい通信を行う許可対象を、ウイルスに感染した許可対象として検知する。
【００２０】
不正な持ち出し又は盗難によって許可対象である端末又は許可対象であるアプリケーションが稼働する端末が紛失した場合、長時間通信が行われない。そこで、中継装置は、通信間隔が所定の閾値より大きい場合、すなわち、一定時間通信が行われていない場合、通信を行っていない許可対象を、紛失した許可対象として検知する。
【００２１】
以下、本発明に係る実施例を添付図面を用いて説明する。各図において共通の構成については同一の参照符号が付されている。
【実施例１】
【００２２】
図１は、実施例１の通信システムの構成例を示す図である。図２は、実施例１の中継装置１００の構成例を示す図である。
【００２３】
通信システムは、複数の中継装置１００及び複数の端末１０１から構成される。中継装置１００及びその他の通信装置は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、及びインターネット等のネットワーク１０５を構成する。
【００２４】
各中継装置１００は、複数の端末１０１と接続する。端末１０１は、アプリケーションが稼働するサーバ、スマートフォン、及びタブレット端末等である。なお、本実施例では、端末１０１の種別に限定されない。
【００２５】
中継装置１００は、ネットワークを通過するデータ（パケット）を中継する通信装置である。本実施例の中継装置１００は、ホワイトリスト機能を実現するためのホワイトリスト８００（図３Ａ参照）を保持する。ホワイトリスト８００は、通信が許可された対象（許可対象）を特定するための情報から構成されるリストである。
【００２６】
中継装置１００は、複数のパケット受信部２００、複数のパケット送信部２５０、パケット転送部３００、ソフトウェア制御部４００、装置時刻管理部５００、及び入出力インタフェース６００を有する。本実施例では、前述した各構成はハードウェアとして搭載される。
【００２７】
なお、各パケット受信部２００の番号は、各パケット受信部２００の識別番号を示し、各パケット送信部２５０の番号は、各パケット送信部２５０の識別番号を示す。なお、パケット受信部２００及びパケット送信部２５０は、一つのデバイス（パケット送受信部）として実現してもよい。
【００２８】
パケット受信部２００は、端末１０１及び他の中継装置１００等の外部装置からパケットを受信し、パケット転送部３００に当該パケットを送信する。このとき、パケット受信部２００は、受信したパケットに制御情報を付与する。制御情報は、例えば、パケット受信部２００の識別番号及びＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）の識別番号等である。パケット受信部２００及び外部装置の接続方式は、有線及び無線のいずれでもよい。接続方式が有線である場合、パケット受信部２００は、メタルケーブル及び光ケーブル等の回線を介して外部装置と接続する。
【００２９】
パケット送信部２５０は、パケット転送部３００からパケットを受信し、外部装置に当該パケットを送信する。パケット送信部２５０及び外部装置の接続方式は、有線及び無線のいずれでもよい。接続方式が有線である場合、パケット送信部２５０は、メタルケーブル及び光ケーブル等の回線を介して外部装置と接続する。
【００３０】
パケット転送部３００は、ホワイトリスト８００に基づいて、受信したパケットの転送又は廃棄等の転送制御を行う。パケット転送部３００は、ホワイトリスト８００に登録された情報の高速な検索、パケットのワイヤレートでの通信等、単純かつ高速な命令を実行するため、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等のハードウェアで構成される。パケット転送部３００の詳細な構成については後述する。
【００３１】
ソフトウェア制御部４００は、ホワイトリスト８００の生成、並びに、アラートの生成及び送信等の処理を実行する。ソフトウェア制御部４００の詳細な構成については後述する。
【００３２】
装置時刻管理部５００は、中継装置１００の時刻を管理する。なお、中継装置１００の時刻は、ＮＴＰ（Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）等を用いて時刻サーバと同期することによって取得してもよいし、また、入出力装置７００を介した入力に基づいて取得してもよい。この場合、中継装置１００は、装置時刻管理部５００を含まなくてもよい。
【００３３】
入出力インタフェース６００は、入出力装置７００と接続するためのインタフェースである。なお、入出力装置７００は、キーボード、マウス、及びタッチパネル等の入力装置、並びに、ディスプレイ及びプリンタ等の出力装置を含む。管理者等は、入出力装置７００を用いて、中継装置１００に情報を入力し、また、中継装置１００から情報を取得する。なお、入出力装置７００は中継装置１００に含まれてもよい。
【００３４】
次に、パケット転送部３００及びソフトウェア制御部４００の詳細な構成について説明する。
【００３５】
まず、パケット転送部３００の構成について説明する。パケット転送部３００は、転送先決定部３１０、時刻決定部３２０、転送テーブルメモリ３３０、ホワイトリスト格納メモリ３４０、転送設定メモリ３５０、及びタイマ格納メモリ３６０を含む。
【００３６】
転送テーブルメモリ３３０は、パケットを転送するために使用される転送テーブル（図示省略）を格納する記憶装置である。転送テーブルメモリ３３０は、例えば、ＣＡＭ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）及びＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等である。
【００３７】
なお、転送テーブルは、公知のものであるため詳細な説明は省略するが、パケットのヘッダ情報及びパケットの転送先となるパケット送信部２５０の識別情報の対応関係を格納するエントリを含む。転送テーブルは管理者等によって設定される。転送テーブルは、例えば、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルのレイヤ２の通信に用いられるＭａｃ  Ａｄｄｒｅｓｓ  Ｔａｂｌｅ、及びＯＳＩ参照モデルのレイヤ３の通信に用いられるＲｏｕｔｉｎｇ  Ｔａｂｌｅである。
【００３８】
ホワイトリスト格納メモリ３４０は、ホワイトリスト８００（図３Ａ参照）を格納する記憶装置である。ホワイトリスト格納メモリ３４０は、例えば、ＣＡＭ及びＤＲＡＭ等である。後述するように、ホワイトリスト８００は、ソフトウェア制御部４００によって生成される。
【００３９】
転送設定メモリ３５０は、中継装置１００の状態を指定する情報及び転送制御の設定情報等を格納する記憶装置である。転送設定メモリ３５０は、例えば、ＤＲＡＭ等である。転送設定メモリ３５０に格納される情報は管理者等によって設定される。
【００４０】
本実施例の中継装置１００の状態には、学習状態及び運用状態が存在する。学習状態はホワイトリスト８００を生成するための状態を示し、運用状態はホワイトリスト８００に基づくパケットの転送制御を行うための状態を示す。学習状態は、ネットワークの構築期間等、実際に通信システムが運用されていない期間に設定されることを想定している。
【００４１】
中継装置１００の状態は、管理者等が入力した指示（コマンド）に基づいて変更される。なお、中継装置１００の状態を変更する場合、管理者等は、入出力装置７００を用いて指示を入力する。
【００４２】
タイマ格納メモリ３６０は、許可対象の通信に関する挙動を監視するためのパラメータ（タイマ値）を格納する記憶装置である。タイマ格納メモリ３６０は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等である。
【００４３】
転送先決定部３１０は、受信したパケットのヘッダ情報をキーとして、転送テーブルメモリ３３０に格納される転送テーブルを参照し、パケットの転送先を決定する。また、転送先決定部３１０は、転送設定メモリ３５０に格納される情報に基づいて、中継装置１００の状態を制御する。
【００４４】
学習状態では、転送先決定部３１０は、パケットを受信した場合、受信したパケットからヘッダ情報及び制御情報を取得し、ソフトウェア制御部４００に送信する。また、転送先決定部３１０は、転送設定メモリ３５０に格納される情報に基づいて、パケットの転送制御処理を実行する。
【００４５】
運用状態では、転送先決定部３１０は、パケットを受信した場合、ホワイトリスト８００及び転送テーブルを用いて転送制御を行う。具体的には、転送先決定部３１０は、ホワイトリスト８００を参照して、パケットの送信又は受信を行う対象が許可対象であるか否かを判定する。また、転送先決定部３１０は、パケットの送信又は受信を行う対象が許可対象でないと判定された場合、転送設定メモリ３５０に設定された情報に基づいて、パケットの転送制御処理を実行する。
【００４６】
時刻決定部３２０は、装置時刻管理部５００から現時刻を取得し、パケットの受信時刻等を決定する。また、時刻決定部３２０は、後述する監視プログラム４２３を実行するＣＰＵ４１０に、決定された時刻を送信する。
【００４７】
次に、ソフトウェア制御部４００の構成について説明する。ソフトウェア制御部４００は、ＣＰＵ（Ｃｏｎｔｒｏｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４１０及びソフトウェアメモリ４２０を有する。
【００４８】
ＣＰＵ４１０は、ソフトウェアメモリ４２０に格納されるプログラムを実行する。ＣＰＵ４１０が、プログラムにしたがって処理を実行することによって、特定の機能を実現する機能部として動作する。以下の説明では、特定の機能を実現するプログラムを主語に処理を説明する場合、ＣＰＵ４１０がプログラムを実行していることを示す。
【００４９】
ソフトウェアメモリ４２０は、不揮発性の記憶素子であるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）及び揮発性の記憶素子であるＲＡＭから構成される。ＲＯＭは、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）等のプログラムを格納する。ＲＡＭは、ＣＰＵ４１０が実行するプログラムを格納し、また、プログラムが一時的に使用するワークエリアを含む。
【００５０】
本実施例のソフトウェアメモリ４２０は、ホワイトリスト生成プログラム４２１、転送設定プログラム４２２、及び監視プログラム４２３を格納する。
【００５１】
ホワイトリスト生成プログラム４２１は、受信したパケットを解析することによってホワイトリスト８００を生成し、ホワイトリスト格納メモリ３４０に格納する。
【００５２】
転送設定プログラム４２２は、入出力装置７００を介して入力された設定情報を転送テーブルメモリ３３０及び転送設定メモリ３５０に格納する。
【００５３】
監視プログラム４２３は、学習状態において、許可対象の異常を検知するための監視パラメータを設定する。また、監視プログラム４２３は、運用状態において、監視パラメータに基づいて許可対象の異常を検知する。
【００５４】
なお、パケット転送部３００及びソフトウェア制御部４００は、それぞれ、異なるハードウェアとして実現しているが、一つのハードウェアとして実現してもよい。
【００５５】
図３Ａ及び図３Ｂは、実施例１のホワイトリスト格納メモリ３４０に格納されるホワイトリスト８００のデータ構造の一例を示す図である。説明のため、ホワイトリスト８００を二つに分けて記載しているが、実際には一つのテーブルとして管理される。
【００５６】
ホワイトリスト８００は、複数のフィールドから構成されるエントリを一つ以上含む。一つのエントリが一つの許可対象に対応する。図３Ａに示すホワイトリスト８００にはｎ個のエントリが含まれる。エントリを構成する各フィールドには、制御情報及びヘッダ情報から取得された値が設定され、また、許可対象の通信の挙動を監視するための値が設定される。
【００５７】
ホワイトリスト８００に含まれるエントリは、ＩＤ８０１、パケット受信部番号８０２、ＶＬＡＮ番号８０３、Ｓｏｕｒｃｅ＿Ｍａｃ＿Ａｄｄｒｅｓｓ８０４、Ｄｅｓｔｉｎａｔｉｏｎ＿Ｍａｃ＿Ａｄｄｒｅｓｓ８０５、Ｐｒｏｔｏｃｏｌ８０６、Ｓｏｕｒｃｅ＿ＩＰ＿Ａｄｄｒｅｓｓ８０７、Ｄｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ａｄｄｒｅｓｓ８０８、Ｓｏｕｒｃｅ＿Ｐｏｒｔ番号８０９、Ｄｅｓｔｉｎａｔｉｏｎ＿Ｐｏｒｔ番号８１０、最小通信間隔８１１、最大通信間隔８１２、最終通信時刻８１３、及びタイマ８１４から構成される。
【００５８】
ＩＤ８０１は、ホワイトリスト８００に含まれるエントリを一意に識別するための識別情報を格納するフィールドである。
【００５９】
パケット受信部番号８０２は、パケット受信部２００を一意に識別するための識別番号を格納するフィールドである。ＶＬＡＮ番号８０３は、パケット受信部２００が所属するＶＬＡＮの識別番号を格納するフィールドである。パケット受信部番号８０２及びＶＬＡＮ番号８０３には、制御情報に含まれる値が設定される。
【００６０】
Ｓｏｕｒｃｅ＿Ｍａｃ＿Ａｄｄｒｅｓｓ８０４は、パケットの送信元のＭａｃアドレスを格納するフィールドである。Ｄｅｓｔｉｎａｔｉｏｎ＿Ｍａｃ＿Ａｄｄｒｅｓｓ８０５は、パケットの宛先のＭａｃアドレスを格納するフィールドである。Ｐｒｏｔｏｃｏｌ８０６は、プロトコルの種類を示す値を格納するフィールドである。Ｓｏｕｒｃｅ＿ＩＰ＿Ａｄｄｒｅｓｓ８０７は、パケットの送信元のＩＰアドレスを格納するフィールドである。Ｄｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ａｄｄｒｅｓｓ８０８は、パケットの宛先のＩＰアドレスを格納するフィールドである。Ｓｏｕｒｃｅ＿Ｐｏｒｔ番号８０９は、パケットの送信元のポート番号を格納するフィールドである。Ｄｅｓｔｉｎａｔｉｏｎ＿Ｐｏｒｔ番号８１０は、パケットの宛先のポート番号を格納するフィールドである。
【００６１】
Ｓｏｕｒｃｅ＿Ｍａｃ＿Ａｄｄｒｅｓｓ８０４、Ｄｅｓｔｉｎａｔｉｏｎ＿Ｍａｃ＿Ａｄｄｒｅｓｓ８０５、Ｐｒｏｔｏｃｏｌ８０６、Ｓｏｕｒｃｅ＿ＩＰ＿Ａｄｄｒｅｓｓ８０７、Ｄｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ａｄｄｒｅｓｓ８０８、Ｓｏｕｒｃｅ＿Ｐｏｒｔ番号８０９、及びＤｅｓｔｉｎａｔｉｏｎ＿Ｐｏｒｔ番号８１０には、ヘッダ情報に含まれる値が設定される。
【００６２】
最小通信間隔８１１は、通信間隔の最小値を格納するフィールドである。最大通信間隔８１２は、通信間隔の最大値を格納するフィールドである。最終通信時刻８１３は、エントリに対応する通信が行われた時刻を格納するフィールドである。最終通信時刻８１３には、例えば、パケットを最後に受信した時刻が格納される。タイマ８１４は、最終通信時刻８１３からの経過時間を格納するフィールドである。すなわち、タイマ８１４には、許可対象の通信間隔を示す値が格納される。
【００６３】
最小通信間隔８１１及び最大通信間隔８１２には、許可対象の通信の挙動を監視するための閾値が格納され、最終通信時刻８１３には、中継装置１００が許可対象に関連するパケットを最後に受信した時刻が格納される。また、タイマ８１４には、タイマによって計測されたタイマ値が設定される。
【００６４】
なお、エントリの構成は一例であってこれに限定されない。エントリには、制御情報及びヘッダ情報に含まれる少なくとも一つの値を設定するフィールドが含まれればよい。例えば、エントリは、ＴＯＳ（Ｔｙｐｅ  Ｏｆ  Ｓｅｒｖｉｃｅ）、フラグ、ＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）、ＩＤ、バージョン、及びヘッダ値等のヘッダ情報に含まれる値を格納するフィールドを含んでもよい。
【００６５】
次に、中継装置１００の学習状態及び運用状態における処理の詳細について説明する。まず、学習状態の中継装置１００の処理について説明する。
【００６６】
図４は、実施例１の学習状態のパケット転送部３００が実行する処理を説明するフローチャートである。図５は、実施例１の学習状態のホワイトリスト生成プログラム４２１が実行する処理を説明するフローチャートである。図６は、実施例１の学習状態の監視プログラム４２３が実行する処理を説明するフローチャートである。
【００６７】
学習状態では、中継装置１００は、受信したパケットを解析し、解析結果に基づいてホワイトリスト８００の生成及び更新を行う。また、必要に応じて転送テーブルも更新される。
【００６８】
まず、図４を用いてパケット転送部３００が実行する処理について説明する。
【００６９】
パケット転送部３００は、パケット受信部２００からパケットを受信した場合、当該パケットのヘッダ情報及び制御情報を取得し、取得したヘッダ情報及び制御情報をソフトウェア制御部４００に送信する（ステップＳ１０１）。このとき、パケット転送部３００の時刻決定部３２０は、装置時刻管理部５００から現時刻を取得し、パケットの受信時刻を決定する。パケット転送部３００は、ヘッダ情報、制御情報、及びパケットの受信時刻をソフトウェア制御部４００に送信する。
【００７０】
次に、パケット転送部３００は、転送テーブルを更新するか否かを判定する（ステップＳ１０２）。
【００７１】
例えば、パケット転送部３００は、ソフトウェア制御部４００から登録用のアドレスの通知を受信した場合、転送テーブルを更新すると判定する。
【００７２】
転送テーブルを更新しないと判定された場合、パケット転送部３００は、処理を終了する。
【００７３】
転送テーブルを更新すると判定された場合、パケット転送部３００は、転送テーブルを更新する（ステップＳ１０３）。なお、転送テーブルの更新方法は、公知の技術であるため詳細な説明は省略する。
【００７４】
ソフトウェア制御部４００は、パケット転送部３００からヘッダ情報等を受信した場合、受信したヘッダ情報等をソフトウェアメモリ４２０に一時的に格納し、ホワイトリスト生成プログラム４２１を呼び出す。
【００７５】
図５を用いてホワイトリスト生成プログラム４２１が実行する処理を説明する。
【００７６】
ホワイトリスト生成プログラム４２１は、ソフトウェアメモリ４２０からパケットのヘッダ情報及び制御情報を取得する（ステップＳ２０１）。
【００７７】
次に、ホワイトリスト生成プログラム４２１は、ヘッダ情報及び制御情報に基づいてホワイトリスト８００を参照し、パケットに関連する対象がホワイトリスト８００に登録されているか否かを判定する（ステップＳ２０２）。
【００７８】
具体的には、ホワイトリスト生成プログラム４２１は、ヘッダ情報及び制御情報に含まれる値と、ホワイトリスト８００のエントリに含まれる各フィールドの値とを比較する。ホワイトリスト生成プログラム４２１は、比較結果に基づいて、パケットに対応するエントリが存在するか否かを判定する。パケットに対応するエントリが存在する場合、ホワイトリスト生成プログラム４２１は、パケットに関連する対象がホワイトリスト８００に登録されていると判定する。
【００７９】
パケットに関連する対象がホワイトリスト８００に登録されていないと判定された場合、ホワイトリスト生成プログラム４２１は、ホワイトリスト８００に対象を登録する（ステップＳ２０３）。具体的には、以下のような処理が実行される。
【００８０】
ホワイトリスト生成プログラム４２１は、ホワイトリスト８００に含まれるエントリと同じデータ構造の一時エントリをソフトウェアメモリ４２０に生成する。
【００８１】
ホワイトリスト生成プログラム４２１は、一時エントリのＩＤ８０１に一意な識別番号を設定し、一時エントリの最小通信間隔８１１、最大通信間隔８１２、及びタイマ８１４に「０」を設定する。また、ホワイトリスト生成プログラム４２１は、一時エントリの最終通信時刻８１３にパケットの受信時刻を設定する。さらに、ホワイトリスト生成プログラム４２１は、一時エントリの残りのフィールドにヘッダ情報等に含まれる値を設定する。
【００８２】
ホワイトリスト生成プログラム４２１は、パケット転送部３００を介して、ホワイトリスト格納メモリ３４０に格納されるホワイトリスト８００に一時エントリを追加する。以上がステップＳ２０３の処理の説明である。
【００８３】
次に、ホワイトリスト生成プログラム４２１は、監視プログラム４２３にタイマ値の計測の開始を指示する（ステップＳ２０４）。当該指示には、ＩＤ８０１に設定された識別番号が含まれる。
【００８４】
監視プログラム４２３は、指示を受け付けた場合、当該指示に含まれる識別番号に対応するタイマを起動させ、タイマ値の計測を開始する。具体的には、監視プログラム４２３は、ＩＤ８０１と対応づけたタイマをタイマ格納メモリ３６０に格納し、タイマ値の計測を開始する。
【００８５】
ステップＳ２０２において、パケットに関連する対象がホワイトリスト８００に登録されていると判定された場合、ホワイトリスト生成プログラム４２１は、監視プログラム４２３を呼び出し（ステップＳ２０５）、その後、処理を終了する。このとき、ホワイトリスト生成プログラム４２１は、検索されたエントリのＩＤ８０１に設定された識別番号を監視プログラム４２３に入力する。
【００８６】
図６を用いて監視プログラム４２３が実行する処理について説明する。
【００８７】
監視プログラム４２３は、変数Ｔｍｉｎ及び変数Ｔｍａｘを設定する（ステップＳ３０１）。
【００８８】
具体的には、監視プログラム４２３は、ホワイトリスト８００を参照し、ＩＤ８０１が入力された識別情報に一致するエントリを検索する。監視プログラム４２３は、検索されたエントリの最小通信間隔８１１に格納される値を変数Ｔｍｉｎに設定し、最大通信間隔８１２に格納される値を変数Ｔｍａｘに設定する。
【００８９】
次に、監視プログラム４２３は、検索されたエントリのタイマ８１４を更新する（ステップＳ３０２）。
【００９０】
具体的には、監視プログラム４２３は、タイマ格納メモリ３６０を参照し、検索されたエントリに対応するタイマからタイマ値を取得し、検索されたエントリのタイマ８１４に取得したタイマ値を設定する。また、監視プログラム４２３は、タイマを初期化し、再度、計測を開始させる。
【００９１】
次に、監視プログラム４２３は、変数Ｔｍｉｎ及び変数Ｔｍａｘが「０」であるか否かを判定する（ステップＳ３０３）。
【００９２】
変数Ｔｍｉｎ及び変数Ｔｍａｘが「０」であると判定された場合、監視プログラム４２３は、検索されたエントリの最小通信間隔８１１、最大通信間隔８１２、及び最終通信時刻８１３を更新する（ステップＳ３０７）。その後、監視プログラム４２３は処理を終了する。
【００９３】
具体的には、監視プログラム４２３は、検索されたエントリの最終通信時刻８１３に現時刻を設定する。現時刻は時刻決定部３２０によって決定された時刻である。また、監視プログラム４２３は、検索されたエントリの最小通信間隔８１１及び最大通信間隔８１２に、タイマ８１４に格納されるタイマ値を設定する。
【００９４】
変数Ｔｍｉｎ及び変数Ｔｍａｘのいずれかが「０」ではないと判定された場合、監視プログラム４２３は、検索されたエントリの最終通信時刻８１３を更新する（ステップＳ３０４）。
【００９５】
具体的には、監視プログラム４２３は、検索されたエントリの最終通信時刻８１３に現時刻を設定する。
【００９６】
次に、監視プログラム４２３は、検索されたエントリのタイマ８１４に格納されるタイマ値が変数Ｔｍｉｎより小さいか否かを判定する（ステップＳ３０５）。
【００９７】
検索されたエントリのタイマ８１４に格納されるタイマ値が変数Ｔｍｉｎより小さいと判定された場合、監視プログラム４２３は、検索されたエントリの最小通信間隔８１１を更新する（ステップＳ３０８）。その後、監視プログラム４２３は処理を終了する。
【００９８】
具体的には、監視プログラム４２３は、検索されたエントリの最小通信間隔８１１に、タイマ８１４に格納されるタイマ値を設定する。
【００９９】
検索されたエントリのタイマ８１４に格納されるタイマ値が変数Ｔｍｉｎ以上であると判定された場合、監視プログラム４２３は、検索されたエントリのタイマ８１４に格納されるタイマ値が変数Ｔｍａｘより大きいか否かを判定する（ステップＳ３０６）。
【０１００】
検索されたエントリのタイマ８１４に格納されるタイマ値が変数Ｔｍａｘより大きいと判定された場合、監視プログラム４２３は、検索されたエントリの最大通信間隔８１２を更新する（ステップＳ３０９）。その後、監視プログラム４２３は処理を終了する。
【０１０１】
具体的には、監視プログラム４２３は、検索されたエントリの最大通信間隔８１２に、検索されたエントリのタイマ８１４に格納されるタイマ値を設定する。
【０１０２】
検索されたエントリのタイマ８１４に格納されるタイマ値が変数Ｔｍａｘ以下であると判定された場合、監視プログラム４２３は処理を終了する。
【０１０３】
以上で説明したように、本実施例の中継装置１００は、学習状態において、ホワイトリスト８００を生成するとともに、許可対象の異常を検知するために用いる閾値（最小通信間隔及び最大通信間隔）を学習する。
【０１０４】
なお、中継装置１００は、学習状態から運用状態に移行する場合、全ての許可対象のタイマ値の計測を終了する。
【０１０５】
次に、運用状態の中継装置１００の処理について説明する。
【０１０６】
図７は、実施例１の運用状態のパケット転送部３００が実行する処理を説明するフローチャートである。図８は、実施例１の運用状態の監視プログラム４２３が実行する処理を説明するフローチャートである。図９は、実施例１の運用状態の監視プログラム４２３が周期的に実行する処理を説明するフローチャートである。
【０１０７】
なお、図７及び図８は、中継装置１００がパケットを受信した場合に実行される処理を説明するフローチャートであり、図９は、周期的に実行される処理を説明するフローチャートである。
【０１０８】
運用状態では、中継装置１００は、受信したパケットを解析し、解析結果及びホワイトリスト８００に基づいて当該パケットの転送制御を行う。また、中継装置１００は、周期的に、各許可対象の通信間隔を監視する。
【０１０９】
図７を用いてパケット転送部３００が実行する処理について説明する。
【０１１０】
パケット転送部３００は、パケット受信部２００からパケットを受信した場合、ホワイトリスト格納メモリ３４０に格納されるホワイトリスト８００を参照し、パケットに関連する対象がホワイトリスト８００に登録されているか否かを判定する（ステップＳ４０１）。
【０１１１】
具体的には、パケット転送部３００は、パケットから取得されたヘッダ情報及び制御情報に基づいてホワイトリスト８００を参照し、ヘッダ情報及び制御情報に一致するエントリを検索する。ヘッダ情報及び制御情報に一致するエントリが存在する場合、パケット転送部３００は、パケットに関連する対象がホワイトリスト８００に登録されていると判定する。
【０１１２】
パケットに関連する対象がホワイトリスト８００に登録されていないと判定された場合、パケット転送部３００は、パケット転送制御を実行する（ステップＳ４０６）。その後、パケット転送部３００は処理を終了する。
【０１１３】
ステップＳ４０６のパケット転送制御では、パケット転送部３００は、受信したパケットの破棄、及びホワイトリスト８００に登録されていない対象のパケットを受信した旨の通知等を行う。なお、本実施例は、ホワイトリスト８００に登録されていない対象のパケットを検知した場合に実行される処理の内容に限定されない。
【０１１４】
パケットに関連する対象がホワイトリスト８００に登録されていると判定された場合、パケット転送部３００は、監視プログラム４２３を呼び出す（ステップＳ４０２）。その後、パケット転送部３００は待ち状態に移行する。
【０１１５】
このとき、パケット転送部３００は、時刻決定部３２０によって決定されたパケットの受信時刻及び検索されたエントリのＩＤ８０１に設定された識別番号を入力する。
【０１１６】
パケット転送部３００は、監視プログラム４２３から応答を受信したか否かを判定する（ステップＳ４０３）。
【０１１７】
監視プログラム４２３から応答を受信していないと判定された場合、パケット転送部３００は、一定時間経過した後、ステップＳ４０３に戻る。
【０１１８】
監視プログラム４２３から応答を受信したと判定された場合、パケット転送部３００は、応答に基づいて、受信したパケットの転送が可能か否かを判定する（ステップＳ４０４）。
【０１１９】
具体的には、パケット転送部３００は、応答の種別が「転送許可」及び「アラート」のいずれであるかを判定する。応答の種別が「転送許可」である場合、パケット転送部３００は受信したパケットの転送が可能であると判定する。一方、応答種別が「アラート」である場合、パケット転送部３００は受信したパケットの転送が可能でないと判定する。
【０１２０】
受信したパケットの転送が可能でないと判定された場合、パケット転送部３００は、パケット転送制御を実行する（ステップＳ４０６）。その後、パケット転送部３００は処理を終了する。
【０１２１】
受信したパケットの転送が可能であると判定された場合、パケット転送部３００は、パケットの転送制御を実行する（ステップＳ４０５）。その後、パケット転送部３００は処理を終了する。
【０１２２】
ステップＳ４０５のパケット転送制御では、パケット転送部３００は、パケットのヘッダ情報に含まれる宛先情報等に基づいて、送信先の装置にパケットを転送する。
【０１２３】
図８を用いて、パケット転送部３００から呼び出された監視プログラム４２３が実行する処理について説明する。
【０１２４】
監視プログラム４２３は、変数Ｔｍｉｎ及び変数Ｔｍａｘを設定する（ステップＳ５０１）。
【０１２５】
具体的には、監視プログラム４２３は、ホワイトリスト８００を参照し、ＩＤ８０１が入力された識別情報に一致するエントリを検索する。監視プログラム４２３は、検索されたエントリの最小通信間隔８１１に格納される値を変数Ｔｍｉｎに設定し、最大通信間隔８１２に格納される値を変数Ｔｍａｘに設定する。
【０１２６】
監視プログラム４２３は、検索されたエントリのタイマ８１４を更新する（ステップＳ５０２）。
【０１２７】
具体的には、監視プログラム４２３は、タイマ格納メモリ３６０を参照し、検索されたエントリに対応するタイマからタイマ値を取得し、検索されたエントリのタイマ８１４に取得したタイマ値を設定する。また、監視プログラム４２３は、タイマを初期化し、再度、計測を開始させる。
【０１２８】
次に、監視プログラム４２３は、検索されたエントリの最終通信時刻８１３を更新する（ステップＳ５０３）。
【０１２９】
具体的には、監視プログラム４２３は、検索されたエントリの最終通信時刻８１３に、入力されたパケットの受信時刻を設定する。
【０１３０】
次に、監視プログラム４２３は、検索されたエントリのタイマ８１４に格納されるタイマ値が変数Ｔｍｉｎより小さいか否かを判定する（ステップＳ５０４）。
【０１３１】
検索されたエントリのタイマ８１４に格納されるタイマ値が変数Ｔｍｉｎより小さいと判定された場合、監視プログラム４２３は、種別が「アラート」である応答をパケット転送部３００に送信する（ステップＳ５０７）。その後、監視プログラム４２３は処理を終了する。なお、監視プログラム４２３は、管理者等に許可対象の異常を通知するために、アラートを入出力装置７００に送信してもよい。
【０１３２】
なお、生成されるアラートには、許可対象の通信間隔が短いことを示す情報が含まれてもよい。
【０１３３】
検索されたエントリのタイマ８１４に格納されるタイマ値が変数Ｔｍｉｎ以上であると判定された場合、監視プログラム４２３は、検索されたエントリのタイマ８１４に格納されるタイマ値が変数Ｔｍａｘより大きいか否かを判定する（ステップＳ５０５）。
【０１３４】
検索されたエントリのタイマ８１４に格納されるタイマ値が変数Ｔｍａｘより大きいと判定された場合、監視プログラム４２３は、種別が「アラート」である応答をパケット転送部３００に送信する（ステップＳ５０７）。その後、監視プログラム４２３は処理を終了する。
【０１３５】
なお、生成されるアラートには、許可対象の通信間隔が長いことを示す情報が含まれてもよい。
【０１３６】
検索されたエントリのタイマ８１４に格納されるタイマ値が変数Ｔｍａｘ以下であると判定された場合、監視プログラム４２３は、種別が「転送許可」である応答をパケット転送部３００に送信する（ステップＳ５０６）。
【０１３７】
以上で説明したように、実施例１の中継装置１００は、ホワイトリスト８００に登録された許可対象の通信であっても、通信間隔が最小通信間隔８１１より小さい場合、及び、通信間隔が最大通信間隔８１２より大きい場合、通信を遮断し、又は異常が検知された旨を通知することができる。
【０１３８】
なお、ステップＳ５０４及びステップＳ５０５の判定回数に基づいて、種別が「アラート」である応答を生成するか否かを判定してもよい。判定回数は、任意のタイミングで管理者が設定し、また、更新できる。
【０１３９】
次に、図９を用いて、監視プログラム４２３が周期的に実行する処理について説明する。
【０１４０】
監視プログラム４２３は、実行契機を検知したか否かを判定する（ステップＳ６０１）。
【０１４１】
本実施例では、監視プログラム４２３は、実行周期を経過したか否かを判定する。実行周期を経過した場合、監視プログラム４２３は、実行契機を検知したと判定する。なお、監視プログラム４２３は、管理者等から実行指示を受け付けた場合、実行契機を検知したと判定してもよい。
【０１４２】
実行契機を検知していないと判定された場合、監視プログラム４２３は、一定時間経過した後、ステップＳ６０１に戻る。
【０１４３】
実行契機を検知したと判定された場合、監視プログラム４２３は、ホワイトリスト８００に含まれるエントリのループ処理を開始する（ステップＳ６０２）。
【０１４４】
具体的には、監視プログラム４２３は、ホワイトリスト８００からターゲットエントリを一つ選択する。また、監視プログラム４２３は、時刻決定部３２０から現時刻を取得する。なお、本実施例は、ターゲットエントリの選択方法に限定されない。
【０１４５】
次に、監視プログラム４２３は、変数Ｔｍａｘを設定する（ステップＳ６０３）。
【０１４６】
具体的には、監視プログラム４２３は、ターゲットエントリの最大通信間隔８１２に格納される値を変数Ｔｍａｘに設定する。
【０１４７】
次に、監視プログラム４２３は、ターゲットエントリのタイマ８１４を更新する（ステップＳ６０４）。
【０１４８】
具体的には、監視プログラム４２３は、タイマ格納メモリ３６０を参照し、ターゲットエントリに対応するタイマからタイマ値を取得し、ターゲットエントリのタイマ８１４に取得したタイマ値を設定する。なお、ステップＳ６０４ではタイマは初期化されない。
【０１４９】
次に、監視プログラム４２３は、ターゲットエントリのタイマ８１４に格納されるタイマ値が変数Ｔｍａｘより大きいか否かを判定する（ステップＳ６０５）。
【０１５０】
ターゲットエントリのタイマ８１４に格納されるタイマ値が変数Ｔｍａｘ以下であると判定された場合、監視プログラム４２３は、ステップＳ６０７に進む。
【０１５１】
ターゲットエントリのタイマ８１４に格納されるタイマ値が変数Ｔｍａｘより大きいと判定された場合、監視プログラム４２３は、種別が「アラート」である応答をパケット転送部３００に送信する（ステップＳ６０６）。その後、監視プログラム４２３はステップＳ６０７に進む。なお、監視プログラム４２３は、アラートを入出力装置７００に送信してもよい。
【０１５２】
なお、生成されるアラートには、通信が長い期間行われていないことを示す情報が含まれてもよい。
【０１５３】
パケット転送部３００は、応答を受信した場合、ターゲットエントリに対応する対象の通信を遮断できるようにターゲットエントリにフラグを付与してもよい。
【０１５４】
ステップＳ６０７では、監視プログラム４２３は、ホワイトリスト８００に含まれる全てのエントリについて処理が完了したか否かを判定する。
【０１５５】
ホワイトリスト８００に含まれる全てのエントリについて処理が完了していないと判定された場合、監視プログラム４２３は、ステップＳ６０２に戻り、新たなターゲットエントリを選択し、同様の処理を実行する。
【０１５６】
ホワイトリスト８００に含まれる全てのエントリについて処理が完了したと判定された場合、監視プログラム４２３は、一定時間経過した後、ステップＳ６０１に戻る。
【０１５７】
以上で説明したように、実施例１の中継装置１００は、ホワイトリスト８００に登録された許可対象の通信であっても、通信間隔が最大通信間隔８１２より大きい場合、通信を遮断し、又は異常が検知された旨を通知することができる。
【０１５８】
ホワイトリスト８００に登録された端末がウイルスに感染し、ＤＤｏＳ攻撃の踏み台端末となった場合、当該端末から、短時間に多量のパケットが送信される。従来の中継装置は、ホワイトリストに登録された端末から送信されたパケットを転送する。したがって、ＤＤｏＳ攻撃の検知及び防御ができない。一方、実施例１の中継装置１００は、通信時間が短い通信を検知した場合、通信を遮断できる。これによって、ＤＤｏＳ攻撃の検知及び防御が可能となる。
【０１５９】
ホワイトリストに登録された端末又はアプリケーションが稼働する端末において故障又は盗難等の異常が発生した場合、従来の中継装置は、異常を検知することができない。一方、実施例１の中継装置１００は、ホワイトリストに登録された端末であって、一定時間通信を行っていない端末を検知することによって、対象の異常を検知できる。
【０１６０】
許可対象の異常を検知するための装置を別途用意する必要がなく、また、中継装置１００の構成を大幅に変更する必要がない。そのため、低コストで許可対象の異常を検知する機能を提供できる。
【０１６１】
特許請求の範囲に記載した以外の発明の観点の代表的なものとして、次のものがあげられる。
【０１６２】
（１）受信したデータを転送する通信装置が実行する転送制御方法であって、
演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続される通信インタフェースを備え、
前記通信装置を経由した通信が許可された対象である許可対象を管理するためのホワイトリストを保持し、
前記転送制御方法は、
前記演算装置が、前記ホワイトリストに基づいて、前記受信したデータの転送制御を行う第１のステップと、
前記演算装置が、前記許可対象の通信に関する挙動を解析する第２のステップと、を含み、
前記第２のステップは、
前記演算装置が、前記許可対象の通信に関する挙動を示す監視パラメータを算出するステップと、
前記演算装置が、前記監視パラメータに基づいて、異常が発生した前記許可対象を検知するステップと、を含むことを特徴とする転送制御方法。
【０１６３】
（２）（１）に記載の転送制御であって、
前記監視パラメータは、前記許可対象が行う通信の通信間隔であり、
前記第２のステップは、前記演算装置が、前記通信間隔及び閾値の比較結果に基づいて、前記異常が発生した許可対象を検知するステップを含むことを特徴とする転送制御方法。
【０１６４】
（３）（２）に記載の転送制御方法であって、
前記通信装置は、前記閾値として最大通信間隔を管理し、
前記第２のステップは、前記演算装置が、第１許可対象の前記通信間隔が前記最大通信間隔より大きい場合、前記第１許可対象に異常が発生したことを検知するステップを含むことを特徴とする転送制御方法。
【０１６５】
（４）（２）に記載の転送制御方法であって、
前記通信装置は、前記閾値として最小通信間隔を管理し、
前記第２のステップは、前記演算装置が、第１許可対象の前記通信間隔が前記最小通信間隔より小さい場合、前記第１許可対象に異常が発生したことを検知するステップを含むことを特徴とする転送制御方法。
【０１６６】
（５）（２）に記載の転送制御方法であって、
前記演算装置が、前記異常が発生した許可対象を検知した場合、前記異常が発生した許可対象が検知された旨を通知するためのアラートを生成し、送信するステップを含むことを特徴とする転送制御方法。
【０１６７】
（６）（２）に記載の転送制御方法であって、
前記演算装置が、前記異常が発生した許可対象が検知した場合、前記異常が発生した許可対象の通信を遮断するステップを含むことを特徴とする転送制御方法。
【０１６８】
（７）（２）に記載の転送制御方法であって、
前記演算装置が、前記通信装置を経由する複数の許可対象の通信を解析するステップと、
前記演算装置が、前記複数の許可対象の通信の解析結果に基づいて、前記複数の許可対象の各々の通信間隔を算出するステップと、
前記演算装置が、前記記憶装置に、前記複数の許可対象の各々の前記通信間隔を前記閾値として格納するステップと、を含むことを特徴とする転送制御方法。
【０１６９】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【０１７０】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等が用いられる。
【０１７１】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０１７２】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【０１７３】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【０１７４】
１００  中継装置
２００  パケット受信部
２５０  パケット送信部
３００  パケット転送部
３１０  転送先決定部
３２０  時刻決定部
３３０  転送テーブルメモリ
３４０  ホワイトリスト格納メモリ
３５０  転送設定メモリ
３６０  タイマ格納メモリ
４００  ソフトウェア制御部
４１０  ＣＰＵ
４２０  ソフトウェアメモリ
４２１  ホワイトリスト生成プログラム
４２２  転送設定プログラム
４２３  監視プログラム
５００  装置時刻管理部
６００  入出力インタフェース
７００  入出力装置
８００  ホワイトリスト
【図１】
2019125914.tif 000003
【図２】
2019125914.tif 000004
【図３Ａ】
2019125914.tif 000005
【図３Ｂ】
2019125914.tif 000006
【図４】
2019125914.tif 000007
【図５】
2019125914.tif 000008
【図６】
2019125914.tif 000009
【図７】
2019125914.tif 000010
【図８】
2019125914.tif 000011
【図９】
2019125914.tif 000012