(57)【特許請求の範囲】
【請求項１】
ネットワークに接続され、前記ネットワークからデータを受信する、複数のデータ受信部を含む通信装置であって、
前記複数のデータ受信部それぞれは、
１以上のデータ受信部からなるデータ受信部群に所属し、
前記受信したデータに、当該データ受信部が所属するデータ受信部群を示す制御情報を付加し、
前記通信装置は、
前記複数のデータ受信部それぞれが受信したデータに基づいて、ホワイトリストを生成する制御部と、
前記データ受信部群それぞれの優先度を示す優先度情報と、
前記ホワイトリストを記憶するホワイトリスト格納第１メモリと、を含み、
前記制御部は、
第１データ受信部が受信した第１データの制御情報及び前記第１データの複数種類のヘッダ情報を受信し、
前記優先度情報が示す前記第１データ受信部が所属する第１データ受信部群の優先度と、前記ホワイトリスト格納第１メモリが格納することができるホワイトリストのエントリ数を示す収容条件と、に基づいて、前記第１データの複数種類のヘッダ情報から、パラメータを選択し、
前記第１データの制御情報と、前記選択した１以上のパラメータと、を含むエントリを、前記ホワイトリストに追加する、通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記制御部によって生成中のホワイトリストを格納し、前記収容条件が示すエントリ数より多くのエントリを格納することができる、ホワイトリスト格納第２メモリをさらに含み、
前記制御部は、
前記第１データの制御情報と、前記優先度情報が示す前記第１データ受信部が所属する第１データ受信部群の優先度に基づいて前記第１データの複数種類のヘッダ情報から選択したパラメータと、を含むエントリを、前記ホワイトリスト格納第２メモリに格納されたホワイトリストに追加し、
ホワイトリストを生成する生成状態の終了命令を受け付けた場合、前記ホワイトリスト格納第２メモリに格納されたホワイトリストのエントリ数をカウントし、
前記カウントしたエントリ数が、前記収容条件が示すエントリ数以下である場合、前記ホワイトリスト格納第２メモリに格納されたホワイトリストを前記ホワイトリスト格納第１メモリに格納し、
前記カウントしたエントリ数が、前記収容条件が示すエントリ数を超過する場合、
前記ホワイトリスト格納第２メモリに格納されたホワイリストから、前記優先度情報が示す優先度に基づいて選択した第２データ受信部群を示す制御情報を含むエントリを取得し、
前記取得したエントリそれぞれのヘッダ情報を示す一部のパラメータをマスクし、
前記取得したエントリのうち、マスク後の全てのパラメータ値が同一のエントリを１つのエントリに集約する、通信装置。
【請求項３】
請求項２に記載の通信装置であって、
前記制御部は、
前記収容条件が示すエントリ数を前記カウントしたエントリ数が超過し、かつ前記ホワイトリスト格納第２メモリに格納されたホワイトリストの全てのエントリの所定のパラメータがマスクされている場合、
前記ホワイトリスト格納第２メモリに格納されたホワイリストから、前記第２データ受信部群を示す制御情報を含む１以上のエントリを削除する、通信装置。
【請求項４】
請求項１に記載の通信装置であって、
前記制御部によって生成中のホワイトリストを格納し、前記収容条件が示すエントリ数より多くのエントリを格納することができる、ホワイトリスト格納第２メモリをさらに含み、
前記制御部は、
前記第１データの制御情報と、前記優先度情報が示す前記第１データ受信部が所属する第１データ受信部群の優先度に基づいて前記第１データの複数種類のヘッダ情報から選択したパラメータと、を含むエントリを、前記ホワイトリスト格納第２メモリに格納されたホワイトリストに追加し、
前記ホワイトリスト格納第２メモリに格納されたホワイトリストの、前記第１データ受信部群を示す制御情報を含むエントリ数、をカウントし、
前記カウントしたエントリ数が、前記収容条件が示すエントリ数を超過する場合、
カウント対象のエントリそれぞれのヘッダ情報を示す一部のパラメータをマスクし、
カウント対象のエントリのうち、マスク後の全てのパラメータ値が同一のエントリを１つのエントリに集約する、通信装置。
【請求項５】
請求項２乃至４のいずれか１項に記載の通信装置であって、
前記ホワイトリスト格納第２メモリに格納されたホワイトリストのエントリそれぞれのパラメータは、Ｓｏｕｒｃｅ  Ｍａｃ  Ａｄｄｒｅｓｓ、Ｄｅｓｔｉｎａｔｉｏｎ  Ｍａｃ  Ａｄｄｒｅｓｓ、ｐｒｏｔｏｃｏｌ、Ｓｏｕｒｃｅ  ＩＰ  Ａｄｄｒｅｓｓ、Ｄｅｓｔｉｎａｔｉｏｎ  ＩＰ  Ａｄｄｒｅｓｓ、Ｓｏｕｒｃｅ  ｐｏｒｔ番号、及びＤｅｓｔｉｎａｔｉｏｎ  ｐｏｒｔ番号の少なくとも１つを含み、
前記制御部は、
前記少なくとも１つを含むエントリのパラメータをマスクする際に、Ｓｏｕｒｃｅ  ｐｏｒｔ番号又はＤｅｓｔｉｎａｔｉｏｎ  ｐｏｒｔ番号の一方、Ｓｏｕｒｃｅ  ｐｏｒｔ番号又はＤｅｓｔｉｎａｔｉｏｎ  ｐｏｒｔ番号の他方、ｐｒｏｔｏｃｏｌ、Ｄｅｓｔｉｎａｔｉｏｎ  ＩＰ  Ａｄｄｒｅｓｓ、Ｄｅｓｔｉｎａｔｉｏｎ  Ｍａｃ  Ａｄｄｒｅｓｓ、Ｓｏｕｒｃｅ  ＩＰ  Ａｄｄｒｅｓｓ、Ｓｏｕｒｃｅ  Ｍａｃ  Ａｄｄｒｅｓｓの優先順位でマスクを実施する、通信装置。
【請求項６】
請求項１に記載の通信装置であって、
データのヘッダ情報とデータの転送先との対応を示す転送情報と、
前記転送情報を参照して、前記複数のデータ受信部が受信したデータを転送するデータ転送部と、をさらに含み、
前記データ転送部は、前記制御部がホワイトリストを生成する生成状態において、
前記第１データ受信部から前記第１データを受信し、
前記第１データから前記制御情報及び前記複数種類のヘッダ情報を抽出し、
前記抽出した制御情報及び複数種類のヘッダ情報を、前記制御部に送信し、
前記転送情報が示す前記第１データのヘッダ情報に対応する宛先に、前記第１データを転送する、通信装置。
【請求項７】
請求項１に記載の通信装置であって、
データのヘッダ情報とデータの転送先との対応を示す転送情報と、
前記転送情報を参照して、前記複数のデータ受信部が受信したデータを転送するデータ転送部と、
データ転送に関する設定を格納する転送設定メモリと、をさらに含み、
前記データ転送部が前記ホワイトリスト格納第１メモリに格納されたホワイトリストを用いたデータ転送を行う、運用状態を有し、
前記制御部は、
前記データ転送部が前記運用状態において前記ホワイトリスト格納第１メモリに格納されたホワイトリストに登録されていないデータを受信した場合に、当該データに対して行う第１処理、を示すホワイトリスト登録外データ受信時動作設定を受け付け、
前記ホワイトリスト登録外データ受信時動作設定を、前記転送設定メモリに格納し、
前記第１処理は、当該データの破棄、前記転送情報が示す当該データのヘッダ情報に対応する宛先への当該データの転送、又は特定の宛先への当該データの転送のいずれかであり、
前記データ転送部は、
前記運用状態において、第２データ受信部から第２データを受信し、
前記第２データが前記ホワイトリスト格納第１メモリに格納されたホワイトリストに登録されていないと判定した場合、
前記転送設定メモリを参照して、前記第１処理を前記第２データに対して行う、通信装置。
【請求項８】
請求項７に記載の通信装置であって、
表示装置に接続され、
前記データ転送部は、前記第２データの制御情報及び前記第２データのヘッダ情報を前記制御部に送信し、
前記制御部は、前記第２データの制御情報及び前記第２データのヘッダ情報を、前記表示装置に出力する、通信装置。
【請求項９】
請求項１に記載の通信装置であって、
前記データ受信部群は、同一のＶＬＡＮに所属するデータ受信部からなる、通信装置。
【請求項１０】
請求項１に記載の通信装置であって、
ホワイトリストを生成する生成状態と、前記ホワイトリスト格納第１メモリに格納されたホワイトリストを用いたデータ転送を行う運用状態と、を有し、
第３データ受信部がリンクアップした場合に前記生成状態に移行し、前記リンクアップから所定時間経過後に前記運用状態に移行する、通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置に関する。
【背景技術】
【０００２】
近年、発電所などの重要インフラ内のネットワークに攻撃者が侵入し、システムの制御を奪うといった事件が多発している。重要インフラのネットワークにおいては、ファイアウォール装置、及びパーソナルコンピュータ等の端末に搭載されているウィルスソフト等による防御対策は実施されているが、システム制御を奪おうとする攻撃者の侵入を防ぎきれていない。攻撃者に侵入された際のリスクを軽減する手法として、ホワイトリスト機能を利用する方法がある。ホワイトリスト機能は、ネットワークを流れる正規通信内情報に含まれる正規端末情報をホワイトリスト収容装置に登録し、ホワイトリスト収容装置に登録された正規端末以外からの非正規通信を遮断することでセキュリティレベルを高める機能である。
【０００３】
本技術の背景分野として、特開２００９−２３９５２５号公報（特許文献１）、及び特開２０１５−０５０７６７号公報（特許文献２）がある。特許文献１には、「パケットフィルタリング装置は、ＳＩＰサーバから送信されたパケットを受信し、受信したパケットが、ＳＩＰクライアントから所定の間隔で送信される認証要求に対する応答であるか否かを判定し、認証要求に対する応答であると判定され、当該パケットの送信元情報がホワイトリストに記憶されていない場合に、当該パケットの送信元情報を取得してホワイトリストに格納する。そして、パケットフィルタリング装置は、ネットワークに輻輳が発生していると検出した場合に、ネットワーク上のパケットを受信し、当該受信されたパケットのうち、ホワイトリストに送信元が記憶されているパケットを、ホワイトリストに送信元が記憶されていないパケットよりも優先して送信先に転送する。」と記載されている（要約参照）。
【０００４】
特許文献２には、「ネットワークスイッチは、許容された通信規則を含むホワイトリストが予め格納され、ホワイトリストを基盤として、複数のスイッチインタフェースを介して入力された１つ以上のパケットを監視し、ホワイトリストに従うパケットに対しては通信を許容するホワイトリスト監視部と、ホワイトリストをアップデートさせてホワイトリスト監視部に送るホワイトリスト管理部とを含む。」と記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２３９５２５号公報
【特許文献２】特開２０１５−０５０７６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の技術において、パケットフィルタリング装置はパケットの送信元を示す情報のみからなるエントリをホワイトリストに登録する。従って、特許文献１に記載の技術は、登録された送信元である正規端末がマルウェアに感染し悪意ある通信を実施した場合や、悪意あるユーザが当該正規端末を操作できる場合においては攻撃を阻止することができない。
【０００７】
特許文献２に記載の技術において、ネットワークスイッチは、前述した場合における攻撃を阻止するために、送信元、送信先、及びプロトコル等の複数種類の情報からなるエントリが登録されたホワイトリストを保持する。しかし、各エントリに含まれる情報の種類数が増大すると、ホワイトリストのエントリ数も増大する可能性が高い。
【０００８】
また、一般的なパケット中継装置に搭載されているメモリの容量は有限であるため、当該メモリに格納することができるホワイトリストのエントリ数（以下、収容条件と呼ぶ）も有限である。従って、特許文献２に記載の技術において、ホワイトリストのエントリ数が収容条件に達し、当該ホワイトリストが所望のセキュリティレベルと一致しない可能性がある。
【０００９】
そこで本発明の一態様は、収容条件と通信のセキュリティレベルとに応じた、セキュリティレベルの高いホワイトリストを生成する通信装置を提供する。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の一態様は以下の構成を採用する。ネットワークに接続され、前記ネットワークからデータを受信する、複数のデータ受信部を含む通信装置であって、前記複数のデータ受信部それぞれは、１以上のデータ受信部からなるデータ受信部群に所属し、前記受信したデータに、当該データ受信部が所属するデータ受信部群を示す制御情報を付加し、前記通信装置は、前記複数のデータ受信部それぞれが受信したデータに基づいて、ホワイトリストを生成する制御部と、前記データ受信部群それぞれの優先度を示す優先度情報と、前記ホワイトリストを記憶するホワイトリスト格納第１メモリと、を含み、前記制御部は、第１データ受信部が受信した第１データの制御情報及び前記第１データの複数種類のヘッダ情報を受信し、前記優先度情報が示す前記第１データ受信部が所属する第１データ受信部群の優先度と、前記ホワイトリスト格納第１メモリが格納することができるホワイトリストのエントリ数を示す収容条件と、に基づいて、前記第１データの複数種類のヘッダ情報から、パラメータを選択し、前記第１データの制御情報と、前記選択した１以上のパラメータと、を含むエントリを、前記ホワイトリストに追加する、通信装置。
【発明の効果】
【００１１】
本発明の一態様によれば、収容条件と通信のセキュリティレベルとに応じた、セキュリティレベルの高いホワイトリストを生成することができる。
【図面の簡単な説明】
【００１２】
【図１】実施例１におけるパケット中継装置の構成例を示すブロック図である。
【図２】実施例１におけるホワイトリストの一例である。
【図３】実施例１におけるホワイトリストのエントリの集約アルゴリズムの一例を示す説明図である。
【図４Ａ】実施例１における優先度格納Ｓ／Ｗメモリ領域が保持する優先度情報の一例である。
【図４Ｂ】実施例１におけるパケット受信部番号別ホワイトリスト生成数カウンタが保持するカウンタ値の一例である。
【図５】実施例１における転送設定メモリが保持する転送設定情報の一例である。
【図６】実施例１における転送設定プログラムが入出力装置から入力を受け付ける転送設定に関する命令の一覧の一例である。
【図７Ａ】実施例１におけるホワイトリスト登録外パケット受信時ログの一例である。
【図７Ｂ】実施例１におけるエントリ集約時ログの一例である。
【図７Ｃ】実施例１におけるホワイトリストログの一例である。
【図８】実施例１における、パケット中継装置の生成状態に移行するまでの動作例、及び生成状態中のパケット転送部の動作例を示すフローチャートである。
【図９】ホワイトリスト生成プログラムによるホワイトリスト生成処理の一例を示すフローチャートである。
【図１０】実施例１における生成状態から運用状態に至るパケット中継装置の処理の一例を示すフローチャートである。
【図１１】実施例１における転送先決定部が生成したパケット情報の一例である。
【発明を実施するための形態】
【実施例１】
【００１３】
図１は、データの一例であるパケットを中継する、パケット中継装置の構成例を示すブロック図である。パケット中継装置１００は、通信装置の一例である。パケット中継装置１００は、パケットの中継、及びホワイトリストの生成を実行する。ホワイトリストとは、パケット中継装置１００による中継（転送）・通信が許可されたパケットの一覧（許可リスト）を示す。
【００１４】
パケット中継装置１００は、例えば、複数のパケット受信部２００、パケット転送部３００、Ｓ／Ｗ（ＳｏｆｔＷａｒｅ）制御部４００、複数のパケット送信部５００、及び入出力インタフェース６００を含み、それぞれ内部バスによって接続される。
【００１５】
パケット受信部２００それぞれは、例えば、端末や他のパケット中継装置等の外部装置と、メタルケーブルや光ケーブル等の回線で接続され、接続された外部装置からパケットを受信する。パケット受信部２００それぞれは、パケット受信部２００を一意に識別する受信部番号を有する。
【００１６】
パケット受信部２００それぞれは、パケットを受信した際に、当該パケットに当該パケット受信部２００に対応する制御情報を付加する。制御情報は、１以上のパケット受信部２００からなるパケット受信部群を示す情報である。パケット受信部２００のパケット受信部番号、及び当該パケット受信部２００が所属するＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）の識別子であるＶＬＡＮ番号は、それぞれ当該パケット受信部２００が付加する制御情報の一例である。
【００１７】
パケット転送部３００は、パケット受信部２００からパケットを受信し、Ｓ／Ｗ制御部４００が生成したホワイトリストに従って、受信したパケットの転送、又は廃棄等を行う。Ｓ／Ｗ制御部４００は、ホワイトリストを生成する。パケット送信部５００それぞれは、端末や他のパケット中継装置等の外部装置と、メタルケーブルや光ケーブル等の回線で接続され、パケット転送部３００から受信したパケットを、接続された外部装置へと送信する。
【００１８】
パケット受信部２００及びパケット送信部５００は、通常、ハードウェアで構成される。また、パケット受信部２００及びパケット送信部５００は、図１では説明のため別の部として記載しているが、パケット受信部２００とパケット送信部５００が一体化したパケット送受信部であってもよい。
【００１９】
入出力インタフェース６００は、入出力装置６１０が接続される。入出力インタフェース６００は、入出力装置６１０を介して、利用者からの入力を受け付ける。また、入出力インタフェース６００は、プログラムの実行結果等を入出力装置６１０に出力する。入出力装置６１０は、例えば、キーボードやマウス等の利用者からの入力を受ける入力装置、及びディスプレイ装置やプリンタ等のパケット中継装置１００の処理結果を利用者が視認可能な形式で出力する出力装置を含む。
【００２０】
なお、図１では入出力装置６１０は、パケット中継装置１００と独立した装置として記載されているが、パケット中継装置１００にディスプレイや操作ボタン等の入出力装置６１０が備え付けられていてもよい。
【００２１】
パケット転送部３００は、ホワイトリスト格納Ｈ／Ｗ（ＨａｒｄＷａｒｅ）メモリ３１０と、転送先決定部３２０と、転送テーブルメモリ３３０と、転送設定メモリ３４０と、を含む。ホワイトリスト格納Ｈ／Ｗメモリ３１０は、例えば、ＣＡＭ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）やＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等であり、Ｓ／Ｗ制御部４００が生成したホワイトリストを格納する。ホワイトリスト格納Ｈ／Ｗメモリ３１０は有限なメモリであるため、保持できるホワイトリストのエントリ数に上限がある。以下、当該上限を収容条件と呼ぶ。
【００２２】
転送テーブルメモリ３３０は、例えば、ＣＡＭやＤＲＡＭ等であり、パケットのヘッダ情報と、パケットの転送先即ちパケット送信部５００と、の対応を示す情報を格納する。当該情報は管理者等によって作成され、予め転送テーブルメモリ３３０に格納されている。ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルのレイヤ２の通信に用いられるＭａｃ  Ａｄｄｒｅｓｓ  Ｔａｂｌｅや、ＯＳＩ参照モデルのレイヤ３の通信に用いられるＲｏｕｔｉｎｇ  Ｔａｂｌｅは、当該対応を示す情報の一例である。
【００２３】
転送設定メモリ３４０は、例えば、ＤＲＡＭ等であり、後述するパケット中継装置１００のモードや状態、ホワイトリスト登録外パケット受信時の動作等の設定情報を格納する。転送設定メモリ３４０に格納される設定情報は、入出力装置６１０を介して、管理者等により設定される。
【００２４】
転送先決定部３２０は、パケット受信部２００からパケットを受信し、受信したパケットのヘッダ情報をキーに転送テーブルメモリ３３０内を検索することにより、受信したパケットの転送先を決定する。
【００２５】
また、転送先決定部３２０は、後述するホワイトリスト運用状態中にパケットを受信した場合、ホワイトリスト格納Ｈ／Ｗメモリ３１０に格納されたホワイトリストを検索し、受信したパケットがホワイトリスト対象パケットであるか否かを判定する。転送先決定部３２０は、受信したパケットがホワイトリスト登録外パケットであると判定した場合、転送設定メモリ３４０が保持するホワイトリスト登録外パケット受信時動作設定が示す処理を、当該パケットに対して行う。なお、ホワイトリスト運用状態を単に運用状態とも呼ぶ。
【００２６】
転送先決定部３２０は、後述するホワイトリスト生成状態中にパケットを受信すると、受信したパケットから所定のヘッダ情報及び所定の制御情報を抽出し、Ｓ／Ｗ制御部４００へと送信する。転送先決定部３２０は、転送設定メモリ３４０の設定内容に従い、ホワイトリストを利用した通信を実施するか否かなどの判別を行う。なお、ホワイトリスト生成状態を単に生成状態とも呼ぶ。
【００２７】
パケット転送部３００は、ホワイトリストの高速検索、パケットのワイヤレートでの通信など、単純で高速な命令を実行するため、通常、ハードウェアで構成される。パケット転送部３００は、例えば、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等で構成されてもよい。
【００２８】
Ｓ／Ｗ制御部４００は、ＣＰＵ（Ｃｏｎｔｒｏｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４１０と、Ｓ／Ｗメモリ４２０と、を含む。ＣＰＵ４１０は、Ｓ／Ｗメモリ４２０に格納されたプログラムを実行するプロセッサを含む。Ｓ／Ｗメモリ４２０は、不揮発性の記憶素子であるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）及び揮発性の記憶素子であるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を含む。ＲＯＭは、不変のプログラム（例えば、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ））などを格納する。ＲＡＭは、ＤＲＡＭのような高速かつ揮発性の記憶素子であり、プロセッサが実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【００２９】
Ｓ／Ｗメモリ４２０は、ホワイトリスト生成プログラム４２１、転送設定プログラム４２５、優先度格納Ｓ／Ｗメモリ領域４２２、ホワイトリスト格納Ｓ／Ｗメモリ領域４２３、及びパケット受信部番号別ホワイトリスト生成数カウンタ４２４を含む。
【００３０】
Ｓ／Ｗメモリ４２０に格納されたプログラムはプロセッサによって実行されることで、定められた処理を記憶装置及び通信ポート（通信デバイス）等を用いながら行う。従って、本実施例及び他の実施例においてプログラムを主語とする説明は、プロセッサを主語とした説明でもよい。若しくは、プログラムが実行する処理は、そのプログラムが動作する計算機及び計算機システムが行う処理である。
【００３１】
プロセッサは、プログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、プロセッサは、ホワイトリスト生成プログラム４２１に従って動作することでホワイトリスト生成部として機能し、転送設定プログラム４２５に従って動作することで転送設定部として機能する。さらに、プロセッサは、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【００３２】
ホワイトリスト生成プログラム４２１は、転送先決定部３２０から受信した制御情報及びヘッダ情報から、ホワイトリストを生成する。ホワイトリスト格納Ｈ／Ｗメモリ３１０の収容条件は、例えば、予めホワイトリスト生成プログラム４２１に予め記述されている。また、例えば、パケット中継装置１００の起動時に、ホワイトリスト生成プログラム４２１が、ホワイトリスト格納Ｈ／Ｗメモリ３１０の容量を取得し収容条件を算出してもよい。
【００３３】
また、ホワイトリスト生成プログラム４２１は、ホワイトリスト格納Ｓ／Ｗメモリ領域４２３の使用量を監視し、必要に応じてホワイトリスト格納Ｓ／Ｗメモリ領域４２３に格納されたホワイトリストのエントリの集約を所定のアルゴリズムに従って実施する。集約とは、ホワイトリストの１以上のエントリを１つのエントリにまとめることである。なお、集約を実施するための所定のアルゴリズムは、ホワイトリスト生成プログラム４２１に予め記述されている。
【００３４】
転送設定プログラム４２５は、入出力装置６１０から入力された転送設定を転送設定メモリ３４０及び／又はホワイトリスト生成プログラム４２１に書き込む。また、転送設定プログラム４２５は、入出力装置６１０から入力された後述する優先度情報を優先度格納Ｓ／Ｗメモリ領域４２２に格納する。
【００３５】
優先度格納Ｓ／Ｗメモリ領域４２２は、優先度情報を格納する。ホワイトリスト格納Ｓ／Ｗメモリ領域４２３は、ホワイトリスト生成プログラム４２１が生成したホワイトリストを一時的に格納する。なお、ホワイトリスト格納Ｓ／Ｗメモリ領域４２３は、ホワイトリスト格納Ｈ／Ｗメモリ３１０の持つメモリ領域より大きい。
【００３６】
パケット受信部番号別ホワイトリスト生成数カウンタ４２４は、ホワイトリストＳ／Ｗメモリ領域４２３に格納されたホワイトリストのエントリ数を、当該エントリに対応するパケットを受信したパケット受信部２００ごとにカウントする。
【００３７】
図２は、ホワイトリスト格納Ｈ／Ｗメモリ３１０及びホワイトリスト格納Ｓ／Ｗメモリ領域４２３に格納されるホワイトリストの一例である。図２の例ではホワイトリストはｎ個のエントリを含む。ホワイトリストの各エントリは、複数のパラメータを含む。当該複数のパラメータそれぞれは、パケット受信部２００から受信したパケットから転送先決定部３２０が抽出した制御情報又はヘッダ情報である。
【００３８】
エントリ７００は、ホワイトリストに含まれるエントリの一例である。エントリ７００は、例えば、それぞれパケットの制御情報を示すパラメータである、パケット受信部番号７０１、及びＶＬＡＮ番号７０２を含む。エントリ７００は、例えば、それぞれパケットのヘッダ情報を示すパラメータである、Ｓｏｕｃｅ  Ｍａｃ  Ａｄｄｒｅｓｓ７０３、Ｄｅｓｔｉｎａｔｉｏｎ  Ｍａｃ  Ａｄｄｒｅｓｓ７０４、Ｐｒｏｔｏｃｏｌ７０５、Ｓｏｕｒｃｅ  ＩＰ  Ａｄｄｒｅｓｓ７０６、Ｄｅｓｔｉｎａｔｉｏｎ  ＩＰ  Ａｄｄｒｅｓｓ７０７、Ｓｏｕｒｃｅ  ｐｏｒｔ番号７０８、及びＤｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ番号を含む。
【００３９】
パケット受信部番号７０１は、パケット受信部２００それぞれを一意に識別する番号である。パケット受信部番号７０１により、パケットを受信したパケット受信部２００が特定される。なお、パケット受信部２００とパケット送信部５００が一体化したパケット送受信部の場合、パケット受信部番号７０１は、パケット送受信部それぞれを一意に識別する番号であるパケット送受信部番号である。ＶＬＡＮ番号７０２は、パケット受信部２００が所属するＶＬＡＮを一意に識別する番号である。
【００４０】
Ｓｏｕｒｃｅ  Ｍａｃ  Ａｄｄｒｅｓｓ７０３は、パケットの送信元Ｍａｃアドレスを示す。Ｄｅｓｔｉｎａｔｉｏｎ  Ｍａｃ  Ａｄｄｒｅｓｓ７０４は、パケットの宛先Ｍａｃアドレスを示す。ｐｒｏｔｏｃｏｌ７０５は、プロトコルの種類を示す。Ｓｏｕｒｃｅ  ＩＰ  Ａｄｄｒｅｓｓ７０６は、パケットの送信元ＩＰアドレスを示す。Ｄｅｓｔｉｎａｔｉｏｎ  ＩＰ  Ａｄｄｒｅｓｓ７０７は、パケットの宛先ＩＰアドレスを示す。Ｓｏｕｒｃｅ  ｐｏｒｔ番号７０８は、パケットの送信元ポート番号を示す。Ｄｅｓｔｉｎａｔｉｏｎ  ｐｏｒｔ番号７０９は、パケットの宛先ポート番号を示す。ここで、ポート番号とは、パケットを送受信する際のプログラム（アプリケーション、ソフトウェア）を識別する番号である。
【００４１】
なお、エントリ７００は、図２の例に限らず、１種類以上の制御情報を示すパラメータと、複数種類のヘッダ情報を示すパラメータと、を含めばよい。エントリ７００は、例えば、前述したヘッダ情報を示すパラメータに加えて又は代えて、ＴＯＳ（Ｔｙｐｅ  Ｏｆ  Ｓｅｒｖｉｃｅ）、フラグ、ＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）、ＩＤ、バージョン、及びヘッダ値等のヘッダ情報を含んでもよい。
【００４２】
図３は、図２に例示したホワイトリストのエントリの集約アルゴリズムの一例を示す説明図である。本実施例において、ホワイトリスト生成プログラム４２１は、パケット受信部番号が同値の１以上のエントリに対して集約を実施する。ホワイトリスト生成プログラム４２１が、エントリの集約を実施する契機については後述する。
【００４３】
ホワイトリスト生成プログラム４２１は、例えば、集約対象のパケット受信部番号を有するエントリに含まれるヘッダ情報を示す一部のパラメータをマスクし、マスク後の全てのパラメータが同一のエントリを１つのエントリにまとめることにより集約を行う。パラメータのマスクとは、当該パラメータをＤｏｎ’ｔ  Ｃａｒｅ情報に置換することである。
【００４４】
エントリ形態７１１は、集約が一度も行われていないエントリの形態を示す。集約対象のパケット受信部番号を有する１以上のエントリがエントリ形態７１１で表される場合、ホワイトリスト生成プログラム４２１は、当該エントリのＳｏｕｒｃｅ  ｐｏｒｔ番号とＤｅｓｔｉｎａｔｉｏｎ  ｐｏｒｔ番号のうち、当該エントリにおいて出現する値の種類数が多いほうをマスクすることにより集約を行う。
【００４５】
Ｓｏｕｒｃｅ  ｐｏｒｔ番号とＤｅｓｔｉｎａｔｉｏｎ  ｐｏｒｔ番号の一方のマスクによる集約が実施された後、さらに集約が必要な場合、ホワイトリスト生成プログラム４２１は、他方をマスクすることにより集約を行う。エントリ形態７１２は、Ｓｏｕｒｃｅ  ｐｏｒｔ番号とＤｅｓｔｉｎａｔｉｏｎ  ｐｏｒｔ番号の双方がマスクされ、Ｄｏｎ’ｔ  Ｃａｒｅ情報に置換されたエントリの形態を示す。
【００４６】
さらに集約が必要な場合、ホワイトリスト生成プログラム４２１は、ｐｒｏｔｏｃｏｌ、Ｄｅｓｔｉｎａｔｉｏｎ  ＩＰ  Ａｄｄｒｅｓｓ、Ｄｅｓｔｉｎａｔｉｏｎ  Ｍａｃ  Ａｄｄｒｅｓｓ、Ｓｏｕｒｃｅ  ＩＰ  Ａｄｄｒｅｓｓの順にパラメータをマスクする。集約対象のパケット受信部番号を有する全てのエントリに対して、集約アルゴリズムが示す集約が全て実施された場合（図３の集約アルゴリズムの例において、当該エントリがエントリ形態７１６で表される場合）、当該エントリは集約限界であるという。
【００４７】
なお、集約処理において、制御情報をマスクするパラメータとしてもよい。また、集約処理における制御情報又はヘッダ情報を示すパラメータのマスク順序に制限はないが、図３の集約アルゴリズムのように、エントリの集約によるセキュリティレベルの低下への影響が少ないパラメータから順にマスクが実施されることが好ましい。また、図３の集約アルゴリズムのように、ホワイトリスト生成プログラム４２１は、エントリの集約によるセキュリティレベルの低下への影響が同等であるパラメータ（例えば、Ｓｏｕｒｃｅ  ｐｏｒｔ番号とＤｅｓｔｉｎａｔｉｏｎ  ｐｏｒｔ番号）については、出現する値の種類数が多いパラメータをマスクすることにより、エントリ数をより削減することができる。
【００４８】
また、図３では、ヘッダ情報を示すパラメータのうち１種類のヘッダ情報を示すパラメータのみがマスクされていないエントリ形態を集約限界としているが、複数種類のヘッダ情報を示すパラメータがマスクされていないエントリ形態を集約限界としてもよい。また、ホワイトリスト生成プログラム４２１は、一度に複数種類のパラメータをマスクしてもよい。また、ホワイトリスト生成プログラム４２１は、パラメータをマスクする代わりに、例えば、当該パラメータの値を、集約対象のパケット受信部番号を有するエントリの全ての当該パラメータの値を含む区間に変更してもよい。
【００４９】
図４Ａは、優先度格納Ｓ／Ｗメモリ領域４２２が保持する優先度情報の一例である。優先度格納Ｓ／Ｗメモリ領域４２２は優先度フィールド４２２１、４２２２を含む。優先度フィールド４２２１、４２２２は、パケット受信部番号（１〜ｎ）をインデックスとしたエントリをもち、各インデックスに対応するパケット受信部２００の優先度を格納する。
【００５０】
優先度フィールド４２２１は、入出力装置６１０から管理者等によって入力された優先度の値を格納する。優先度フィールド４２２２は、転送設定プログラム４２５が、ホワイトリスト機能状態が生成状態から運用状態への移行するホワイトリスト機能状態設定命令を受け付けた時点における、優先度フィールド４２２１の値を格納する。
【００５１】
図４Ａの優先度フィールド４２２１、４２２２は、パケット受信部番号が１であるパケット受信部２００の優先度が１、パケット受信部番号が２であるパケット受信部２００の優先度が２、パケット受信部番号が３であるパケット受信部２００の優先度が１０、パケット受信部番号がｎであるパケット受信部２００の優先度が１、である状態を示す。なお、本実施例において、優先度は１〜１０の１０段階で表されているが、優先度の段階数に制限はない。なお、優先度の値が大きいパケット受信部２００ほど高優先である、即ちセキュリティレベルが高いものとする。また、優先度の値が小さいパケット受信部２００ほど高優先であるとしてもよい。また、異なるパケット受信部２００の優先度が同じであってもよい。
【００５２】
例えば、重要な通信を担う端末（例えば制御ネットワークにおけるＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）など）が接続されているパケット受信部２００の優先度を高く設定し、その他の端末（例えば制御ネットワークにおける一般的なＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ））が接続されているパケット受信部２００の優先度を低く設定しておくとよい。
【００５３】
このように優先度が設定されることにより、ホワイトリスト生成プログラム４２１は、ホワイトリストのエントリ数が収容条件を超過した場合に、低優先の端末が接続されているパケット受信部２００に対応するエントリを先に集約するため、重要な通信を担う端末のセキュリティレベルが保たれる。
【００５４】
図４Ｂは、パケット受信部番号別ホワイトリスト生成数カウンタ４２４が保持するカウンタ値の一例である。パケット受信部番号別ホワイトリスト生成数カウンタ４２４は、パケット受信部番号をインデックスとしたエントリをもち、各インデックスに対応するホワイトリストのエントリ数を格納する。図４Ｂは、パケット受信部番号が１であるパケット受信部２００に対応するエントリ数が１００、パケット受信部番号が２であるパケット受信部２００に対応するエントリ数が５２０、パケット受信部番号が３であるパケット受信部２００に対応するエントリ数が４５、パケット受信部番号がｎであるパケット受信部２００に対応するエントリ数が６０２、である状態を示す。
【００５５】
図５は、転送設定メモリ３４０が保持する転送設定情報の一例である。なお、転送設定情報は、ホワイトリスト生成プログラム４２１中に記述されていてもよい。転送設定情報は、例えば、転送設定の種別を示す保持情報５０１、保持情報５０１の状態を示す保持内容５０２、及び保持内容５０２の初期状態を示す初期状態５０３を含む。図５において、保持内容５０２を示す各セルには「／」で区切られた複数の値が記載されているが、実際には当該複数の値のいずれか１つが格納される。初期状態５０３は、対応する保持内容５０２に記載されている複数の値のいずれか１つを格納する。以下、転送設定情報に従ったパケット中継装置１００の動作の概略の一例を説明する。
【００５６】
転送先決定部３２０はパケットを受信すると、レコード５０４の保持内容５０２が、ホワイトリスト機能が有効であるホワイトリストスイッチモードであるか、ホワイトリスト機能が無効であるノーマルスイッチモードであるかを判定する。
【００５７】
レコード５０４の保持内容５０２がノーマルスイッチモードである場合、転送先決定部３２０は、受信したパケットのヘッダ情報をキーに転送テーブルメモリ３３０を検索する。転送先決定部３２０は、検索結果に従い転送先を決定し、パケットを転送する。
【００５８】
レコード５０４の保持内容５０２がホワイトリストスイッチモードである場合、転送先決定部３２０はレコード５０５の保持内容５０２が、ホワイトリストを生成する生成状態であるか、ホワイトリストを用いた転送を行う運用状態であるかを判定する。
【００５９】
以下、レコード５０５の保持内容５０２が生成状態である場合の動作例を説明する。転送先決定部３２０は、受信したパケットに対して、ノーマルスイッチモードのパケット転送と同様の処理を行いながら、受信したパケットの所定のヘッダ情報及び所定の制御情報をホワイトリスト生成プログラム４２１に送信する。ホワイトリスト生成プログラム４２１は、転送先決定部３２０から受信したヘッダ情報及び制御情報からホワイトリストを生成する。
【００６０】
ホワイトリスト生成プログラム４２１は、必要に応じて、生成中のホワイトリストのエントリの集約を行う。ホワイトリスト生成プログラム４２１は、エントリの集約を行った際、レコード５０９の保持内容５０２を参照する。レコード５０９の保持内容５０２が「有効」である場合、ホワイトリスト生成プログラム４２１は、例えば、エントリの集約を実施したことを示すログを入出力装置６１０に出力する。
【００６１】
以下、レコード５０５の保持内容５０２が運用状態である場合の動作例を説明する。転送先決定部３２０は、パケット受信部２００から受信したパケットが、ホワイトリスト格納Ｈ／Ｗメモリ３１０に格納されたホワイトリストに登録済みか否かを判定する。当該パケットが当該ホワイトリストに登録済みである場合、転送先決定部３２０は、受信したパケットに対して、ノーマルスイッチモードのパケット転送と同様の処理を行う。
【００６２】
当該パケットが当該ホワイトリストに登録済みでない場合、転送先決定部３２０は、レコード５０６の保持内容５０２が示す処理を当該パケットに対して行う。レコードの保持内容５０２が示す処理は、例えば、当該パケットの廃棄、当該パケットの通過即ち当該パケットに対するノーマルスイッチモードと同様のパケット転送、又は当該パケットの特定のパケット送信部５００への転送等を含む。
【００６３】
また、このとき、転送先決定部３２０は、レコード５０７の保持内容５０２を参照する。レコード５０７の保持内容５０２が「有効」である場合、転送先決定部３２０は、当該パケットの所定の制御情報及び所定のヘッダ情報を転送設定プログラム４２５に送信する。転送設定プログラム４２５は、入出力装置６１０に当該制御情報及び当該ヘッダ情報をログとして出力する。
【００６４】
なお、転送先決定部３２０は、パケット受信部２００からパケットを受信したときに、レコード５０８の保持内容５０２を参照し、受信したパケットに含まれるパケット受信部番号に対応する値が「対象」であるか「対象外」であるか判定してもよい。受信したパケットに含まれるパケット受信部番号に対応する値が「対象外」である場合、転送先決定部３２０は、その他の設定情報に関わらず、当該パケットに対して、ノーマルスイッチモードと同様の処理をする。
【００６５】
なお、例えば、レコード５０７の保持内容５０２が「有効」であり、パケット送信部５００にＳｙｓｌｏｇサーバ又はＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）サーバが接続されている場合を考える。このとき、転送先決定部３２０は、ホワイトリスト登録外パケットを当該パケット送信部５００にパケットを送信し、ＳｙｓｌｏｇサーバがＳｙｓｌｏｇ機能を使用することにより、又はＳＮＭＰサーバがＴｒａｐ機能を使用することにより、ホワイトリスト登録外パケットを受信時ログの出力を行ってもよい。
【００６６】
図６は、転送設定プログラム４２５が入出力装置６１０から入力を受け付ける転送設定に関する命令の一覧の一例である。転送設定に関する命令一覧は、例えば、命令の種別を示す命令種別１１０１、命令種別１１０１が示す命令による設定内容を示す設定内容１１０２、及び設定内容１１０２の初期状態を示す初期状態１１０３を含む。
【００６７】
レコード１１０４〜１１０９が示す命令それぞれは、レコード５０４〜５０９それぞれが示す転送設定を変更する命令である。レコード１１０４〜１１０８の命令種別１１０１、設定内容１１０２、及び初期状態１１０３それぞれは、レコード５０４〜５０９の保持情報５０１、保持内容５０２、及び初期状態５０３に対応する。
【００６８】
レコード１１１０が示す命令は、転送設定プログラム４２５が優先度フィールド４２２１の各セルに優先度を設定する命令である。レコード１１１１が示す命令は、ホワイトリスト生成プログラム４２１が、生成したホワイトリストを入出力装置６１０に表示する命令である。
【００６９】
図７Ａは、ホワイトリスト登録外パケット受信時ログの一例である。ホワイトリスト登録外パケット受信時ログ１２０１は、例えば、転送先決定部３２０がホワイトリスト登録外パケットを受信した旨を示す情報、当該パケットの制御情報、及び当該パケットのヘッダ情報等を含む。
【００７０】
図７Ｂは、エントリ集約時ログの一例である。エントリ集約時ログ１２０２は、例えば、ホワイトリスト生成プログラム４２１が集約を実施したことを示す情報、集約対象となったパケット受信部番号、及び集約後のホワイトリストのエントリ数等を含む。
【００７１】
図７Ｃは、ホワイトリスト生成プログラム４２１が、入出力装置６１０に表示するホワイトリストログの一例である。ホワイトリストログ１２０３は、ホワイトリストの各エントリのパラメータを含む。なお、ホワイトリストログ１２０３において、「Ｄ」と表示されているパラメータはＤｏｎ’ｔ  Ｃａｒｅを示し、当該パラメータはマスクが実施され、集約された状態である。
【００７２】
また、ｍａｔｃｈｅｄ  ｐａｃｋｅｔｓ列に表示されている数字は、生成状態中に転送先決定部３２０が受信した、当該エントリに対応するパケットの数を示す。ホワイトリストログ１２０３において、例えば＃１と＃４のエントリは、同一のパケット受信部番号が１であるパケット受信部２００が受信したパケットから生成されたエントリであり、さらにＳＭＡＣ（Ｓｏｕｒｃｅ  Ｍａｃ  Ａｄｄｒｅｓｓ）、ＤＭＡＣ（Ｄｅｓｔｉｎａｔｉｏｎ  Ｍａｃ  Ａｄｄｒｅｓｓ）、ＳＩＰ（Ｓｏｕｒｃｅ  ＩＰ  Ａｄｄｒｅｓｓ）、及びＤＩＰ（Ｄｅｓｔｉｎａｔｉｏｎ  ＩＰ  Ａｄｄｒｅｓｓ）が同値である。
【００７３】
ホワイトリスト生成プログラム４２１が、パケット受信部番号が１であるパケット受信部２００に対応するエントリを集約する場合、例えば、Ｓｐｏｒｔ（Ｓｏｕｒｃｅ  Ｐｏｒｔ番号）をマスクすることにより、＃１と＃４は全く同一のエントリとなる。従ってホワイトリスト生成プログラム４２１は、このような場合に＃１又は＃４の一方のエントリを、不要なエントリとして削除することにより、集約が行われる。
【００７４】
以下、本実施例のパケット中継装置１００がホワイトリストを生成する詳細な処理の一例を説明する。また、前述の通り、転送先決定部３２０、ホワイトリスト生成プログラム４２１、及び転送設定プログラム４２５は、必要に応じて、転送設定メモリ３４０の保持内容５０２に格納された設定を確認しながら処理を行うが、以下の説明において確認処理を割愛して記載する。
【００７５】
また、保持内容５０２は、ホワイトリスト生成プログラム４２１に記述されていてもよいが、転送設定プログラム４２５は受け付けた転送設定を転送設定メモリ３４０に格納し、転送先決定部３２０、ホワイトリスト生成プログラム４２１、及び転送設定プログラム４２５は、転送設定メモリ３４０に格納されている保持内容５０２を参照するものとして説明する。
【００７６】
図８は、本実施例のパケット中継装置１００の生成状態に移行するまでの動作例、及び生成状態中のパケット転送部３００の動作例を示すフローチャートである。なお、図８の例においては、全てのパケット受信部２００がホワイトリスト生成の対象であるものとする。
【００７７】
転送設定プログラム４２５は、入出力装置６１０から各パケット受信部優先度設定命令を受け付け、各パケット受信部優先度設定命令が示す各パケット受信部２００の優先度を優先度フィールド４２２１に格納して、各パケット受信部２００のホワイトリスト生成の優先度を設定する。また、転送設定プログラム４２５は、入出力装置６１０からホワイトリスト登録外パケット受信時動作設定命令及びホワイトリスト登録外パケット受信時ログ出力設定命令を受け付け、ホワイトリスト登録外パケット受信時動作設定命令及びホワイトリスト登録外パケット受信時ログ出力設定命令が示す設定内容を転送設定メモリ３４０に格納して、ホワイトリスト登録外パケット受信時の動作を設定する（ステップ９０１）。
【００７８】
転送設定プログラム４２５は、入出力装置６１０からホワイトリスト機能をホワイトリストスイッチモードに変更するホワイトリスト機能設定命令を受け付け、ホワイトリスト機能設定命令が示す設定内容を転送設定メモリ３４０に格納して、ホワイトリスト機能をホワイトリストスイッチモードに設定する（ステップ９０２）。転送設定プログラム４２５は、入出力装置６１０から状態を生成状態に変更するホワイトリスト機能状態設定命令を受け付け、ホワイトリスト機能状態設定命令が示す設定内容を転送設定メモリ３４０に格納して、ホワイトリスト機能状態を生成状態に変更する（ステップ９０３）。
【００７９】
なお、ステップ９０２の処理が実施されてからステップ９０３の処理が実施されるまでの間、ホワイトリスト機能状態は運用状態である。従って、ホワイトリスト格納Ｈ／Ｗメモリ３１０が既にホワイトリストを保持している場合、転送先決定部３２０はこの間、当該ホワイトリストに従って、受信したパケットに対する処理を決定する。ホワイトリスト格納Ｈ／Ｗメモリ３１０にホワイトリストが存在しない場合、転送先決定部３２０はこの間、受信したパケットをホワイトリスト登録外パケットとして転送する。
【００８０】
転送設定プログラム４２５は、優先度フィールド４２２１内の情報を優先度フィールド４２２２にコピーして、優先度情報を保存する（ステップ９０４）。パケット受信部２００のいずれかがパケットを受信する、又は転送設定プログラム４２５が入出力装置６１０からのホワイトリスト機能状態を運用状態に変更するホワイトリスト機能状態設定命令を受信するまで処理が待ち状態になる（ステップ９０５）。
【００８１】
転送設定プログラム４２５が入出力装置６１０からホワイトリスト機能状態を運用状態に変更するホワイトリスト機能状態設定命令を受信した場合（ステップ９０６：運用状態への変更）、図１０の処理へ移行する。また、パケット受信部２００のいずれかがパケットを受信した場合（ステップ９０６：パケット受信）、当該パケット受信部２００は受信したパケットをパケット転送部３００に送信する（ステップ９０７）。
【００８２】
パケット転送部３００の転送先決定部３２０は、受信したパケットの所定のヘッダ情報及び所定の制御情報をキーにし、ホワイトリスト格納Ｈ／Ｗメモリ３１０内のホワイトリストを検索する（ステップ９０８）。転送先決定部３２０は、当該ヘッダ情報及び当該制御情報を含むエントリが既にホワイトリストに登録済みか否かを判定する（ステップ９０９）。
【００８３】
当該ヘッダ情報及び当該制御情報を含むエントリが当該ホワイトリストに登録済みである場合（ステップ９０９：ＹＥＳ）、転送先決定部３２０は当該パケットのヘッダ情報をキーに転送テーブルメモリ３３０を検索する。つまり、転送先決定部３２０は、当該パケット内のヘッダ情報から当該パケットを転送する送信先のパケット送信部５００を決定し、送信先に対応する当該パケット送信部５００にパケットを転送（送信）し（ステップ９１０）、ステップ９０５へと戻る。
【００８４】
当該ヘッダ情報及び当該制御情報を含むエントリが当該ホワイトリストに登録済みでない場合（ステップ９０９：ＮＯ）、転送先決定部３２０はステップ９１０の処理と同様に、パケット内のヘッダ情報から送信先を決定し、対応するパケット送信部５００にパケットを転送（送信）し、さらに、当該パケットの当該ヘッダ情報及び当該制御情報をコピーしてホワイトリスト生成プログラム４２１に送信し（ステップ９１１）、ステップ９０５へと戻る。
【００８５】
図９は、ホワイトリスト生成プログラム４２１によるホワイトリスト生成処理の一例を示すフローチャートである。ホワイトリスト生成プログラム４２１は、転送先決定部３２０からパケットのヘッダ情報及び制御情報を受信すると、受信したパケットのヘッダ情報及び制御情報をキーにホワイトリストＳ／Ｗメモリ領域４２３内のホワイトリストを検索する（ステップ９５１）。
【００８６】
ホワイトリスト生成プログラム４２１は、当該ヘッダ情報及び当該制御情報を含むエントリがホワイトリストＳ／Ｗメモリ領域４２３内のホワイトリストに登録済みか否かを判定する（ステップ９５２）。当該ヘッダ情報及び当該制御情報を含むエントリが当該ホワイトリストに登録済みであった場合（ステップ９５２：ＹＥＳ）、ホワイトリスト生成プログラム４２１は、図９のスタートに戻って、ヘッダ情報及び制御情報の受信を待機する。
【００８７】
当該ヘッダ情報及び当該制御情報を含むエントリが当該ホワイトリストに登録済みでない場合（ステップ９５２：ＮＯ）、ホワイトリスト生成プログラム４２１は、当該ヘッダ情報及び当該制御情報に対応する当該ホワイトリストのエントリを新規に生成する（ステップ９５３）。ホワイトリスト生成プログラム４２１は、生成したエントリを、ホワイトリストＳ／Ｗメモリ領域４２３内のホワイトリストに格納する。
【００８８】
なお、ホワイトリスト生成プログラム４２１は、ステップ９５３において、ホワイトリストＳ／Ｗメモリ領域４２３内のホワイトリストの、新規に生成するエントリの制御情報を含むエントリ、の集約状況に応じて、当該新規に生成するエントリのエントリ形態を選択する。具体的には、例えば、ホワイトリスト内のパケット受信部番号７０１が１であるエントリが、既に何度かの集約が行われエントリ形態７１４で表されている場合、ホワイトリスト生成プログラム４２１は、新規に生成するエントリに対応するパケット受信部番号７０１が１であれば、当該エントリをエントリ形態７１４が示す形態で生成する。
【００８９】
ホワイトリスト生成プログラム４２１は、新規に生成したエントリに対応するパケットを受信したパケット受信部番号のパケット受信部番号別ホワイトリスト生成数カウンタ４２４のカウンタ値をインクリメントする（ステップ９５４）。
【００９０】
ホワイトリスト生成プログラム４２１は、インクリメントを実施したカウンタ値が、ホワイトリスト格納Ｈ／Ｗメモリ３１０の収容条件を超過しているか否か判定する（ステップ９５５）。当該カウンタ値が収容条件以下である場合（ステップ９５５：ＮＯ）、ホワイトリスト生成プログラム４２１は、処理を終了する。当該カウンタ値が収容条件を超過している場合（ステップ９５５：ＹＥＳ）、ホワイトリスト生成プログラム４２１は、インクリメントを実施したカウンタ値に対応するパケット受信部番号と同値のパケット受信部番号７０１を持つホワイトリストＳ／Ｗメモリ領域４２３内のホワイトリストのエントリ、が集約限界であるか否かを判定する（ステップ９５６）。
【００９１】
例えば、ホワイトリスト生成プログラム４２１が、図３に示したアルゴリズムに従って集約を実施する場合において、当該エントリが既にエントリ形態７１６まで集約されている場合、集約限界であると判定する。また、当該エントリがエントリ形態７１１〜７１５のいずれかで表されている場合、ホワイトリスト生成プログラム４２１は、集約限界でないと判定する。
【００９２】
ホワイトリスト生成プログラム４２１は、集約限界であると判定した場合（ステップ９５６：ＹＥＳ）、ホワイトリストのエントリ数が収容条件を超過するため、ホワイトリストの生成が不可能と判断し、入出力装置６１０にエラーを表示し、処理を終了する（ステップ９５７）。なお、例えば、収容条件がより大きいホワイトリスト格納Ｈ／Ｗメモリ３１０を有するパケット中継装置１００が、再度ホワイトリストの生成を行うことにより、当該エラーに対処することができる。
【００９３】
ホワイトリスト生成プログラム４２１は、集約限界でないと判定した場合（ステップ９５６：ＮＯ）、所定のアルゴリズムに従い当該ホワイトリスト格納Ｓ／Ｗメモリ領域４２３内のホワイトリストのエントリの集約を実施する（ステップ９５８）。ホワイトリスト生成プログラム４２１は、集約を実施したエントリに対応する当該パケット受信部番号のパケット受信部番号別ホワイトリスト生成数カウンタ４２４のカウンタ値を、集約後のエントリ数に従い修正する（ステップ９５９）。
【００９４】
ホワイトリスト生成プログラム４２１は、集約の結果、当該カウンタ値が減少しているか否か判定する（ステップ９６０）。当該カウンタ値が減少した場合（ステップ９６０：ＹＥＳ）、ホワイトリスト生成プログラム４２１は、図９のスタートに戻って、ヘッダ情報及び制御情報の受信を待機する。当該カウンタ値が減少していない場合（ステップ９６０：ＮＯ）、ホワイトリスト生成プログラム４２１は、ステップ９５６へと戻る。なお、図９において、ステップ９５４〜ステップ９６０の処理が省略されてもよい。
【００９５】
図１０は、図８のステップ９０６において運用状態への変更と判定された場合における、生成状態から運用状態に至るパケット中継装置の処理の一例を示すフローチャートである。ホワイトリスト生成プログラム４２１は、パケット受信部番号別ホワイトリスト生成数カウンタ４２４の全てのパケット受信部番号のカウンタ値を積算することで、生成したホワイトリストのエントリ総数を算出する（ステップ１００１）。
【００９６】
ホワイトリスト生成プログラム４２１は、算出したエントリ総数が収容条件を超過しているか否かを判定する（ステップ１００２）。ホワイトリスト生成プログラム４２１は、エントリ総数が収容条件を超過していないと判定した場合（１００２：ＮＯ）、ホワイトリスト格納Ｓ／Ｗメモリ領域４２３上のホワイトリストをホワイトリスト格納Ｈ／Ｗメモリ３１０へと書き込む（ステップ１００３）。続いて、転送設定プログラム４２５が、転送設定メモリ３４０に記録されているホワイトリスト機能状態を運用状態へと変更する。
【００９７】
ホワイトリスト生成プログラム４２１は、ステップ１００１で算出したエントリ総数が収容条件を超過していると判定した場合（ステップ１００２：ＹＥＳ）、ホワイトリスト格納Ｓ／Ｗメモリ領域４２３のホワイトリストの全てのエントリが集約限界であるか否かを判定する（ステップ１００４）。
【００９８】
ホワイトリスト生成プログラム４２１は、集約限界でないエントリが存在すると判定した場合（ステップ１００４：ＮＯ）、例えば、集約限界でないエントリのうち、優先度フィールド４２２１の優先度が最低のパケット受信部番号を含むエントリに対し、所定のアルゴリズムによるホワイトリストのエントリの集約を実施する（ステップ１００５）。
【００９９】
なお、優先度が最低の複数のパケット受信部番号が存在する場合、ホワイトリスト生成プログラム４２１は、当該複数のパケット受信部番号から、例えば、ランダムに１つのパケット受信部番号を選択してもよいし、最小又は最大のパケット受信部番号を選択してもよい。また、ステップ１００５において、ホワイトリスト生成プログラム４２１は、例えば、集約限界でないエントリのうち、優先度フィールド４２２１の優先度が所定順位以下のパケット受信部番号を含むエントリに対し、集約を実施してもよい。
【０１００】
ホワイトリスト生成プログラム４２１は、集約を実施した後、優先度フィールド４２２１の、集約を実施したエントリに対応するパケット受信部の優先度を所定値インクリメントすることにより、優先度を引き上げ（ステップ１００６）、ステップ１００１へと戻る。
【０１０１】
ホワイトリスト生成プログラム４２１は、全てのエントリが集約限界であると判定した場合（ステップ１００４：ＹＥＳ）、これ以上の集約ができないため、例えば、ホワイトリストに含まれるエントリのうち、優先度フィールド４２２２に記憶した優先度が最低のパケット受信部番号を含むエントリをホワイトリストから削除する（ステップ１００７）。
【０１０２】
なお、ステップ１００７において、ホワイトリスト生成プログラム４２１は、例えば、優先度フィールド４２２２の優先度が最低のパケット受信部番号を含むエントリから、所定数のエントリをランダムに選択して削除してもよい。また、ステップ１００７において、ホワイトリスト生成プログラム４２１は、例えば、ホワイトリストに含まれるエントリのうち、優先度フィールド４２２２の優先度が所定順位以下のパケット受信部番号を含むエントリをホワイトリストから削除してもよい。
【０１０３】
ホワイトリスト生成プログラム４２１は、ステップ１００７における削除後のホワイトリストのエントリ総数を、ステップ１００１と同様の方法で算出する（ステップ１００８）。ホワイトリスト生成プログラム４２１は、ステップ１００２と同様に、ホワイトリストのエントリ総数が収容条件を超過しているか否かを判定する（ステップ１００９）。
【０１０４】
ホワイトリスト生成プログラム４２１は、ステップ１００８で算出したエントリ総数が収容条件を超過していないと判定した場合（ステップ１００９：ＮＯ）、ステップ１００３と同様にホワイトリスト格納Ｓ／Ｗメモリ領域４２３上のホワイトリストをホワイトリスト格納Ｈ／Ｗメモリ３１０へと書き込む（ステップ１０１０）。続いて、転送設定プログラム４２５が、転送設定メモリ３４０に記録されているホワイトリスト機能状態を運用状態へと変更する。
【０１０５】
ホワイトリスト生成プログラム４２１は、ステップ１００８で算出したエントリ総数が収容条件を超過していると判定した場合（ステップ１００９：ＮＯ）、ステップ１００７へと戻る。
【０１０６】
図１１は、転送先決定部３２０が生成したパケット情報の一例である。パケット情報１３０１、１３０２は、転送先決定部３２０が、パケット受信部２００が受信したパケットから抽出した所定の制御情報及び所定のヘッダ情報からなる。転送先決定部３２０は、運用状態において、パケット情報１３０１、１３０２に含まれる制御情報及びヘッダ情報をキーにホワイトリスト１２３０を検索する。
【０１０７】
パケット情報１３０１は、図７Ｃのホワイトリストログ１２０３が示す＃２のエントリと、マスクしたＳｐｏｒｔ情報（およびｍａｔｃｈｅｄ  ｐａｃｋｅｔｓ情報）を除いて全て一致する情報である。従って転送先決定部３２０は、パケット情報１３０１に対応するパケットをホワイトリストに登録のあるパケットとして、転送を実施する。
【０１０８】
逆にパケット情報１３０２は、ホワイトリストログ１２０３が示すどのエントリとも、一致しない。従って、転送先決定部３２０は、パケット情報１３０２に対応するパケットを、ホワイトリスト登録外のパケットとして、ホワイトリスト登録外パケット受信時の動作設定に従い、処理する。
【０１０９】
本実施例のパケット中継装置１００は、複数種類のヘッダ情報を含むホワイトリストのエントリを生成することにより、正規端末内の詳細な通信内容をホワイトリスト化することができる。従って、パケット中継装置１００は、例えば、正規端末がマルウェアに感染する、又は悪意あるユーザに操作される等の事態が起きても、通常時には実施されない端末間の通信や、悪意ある命令を実行する通信を遮断することができる。
【０１１０】
また、パケット中継装置１００は、ホワイトリスト格納Ｈ／Ｗメモリ３１０の収容条件、及びパケット受信部２００ごとの優先度に基づいて、リストの集約を実施する。これにより、パケット中継装置１００は、パケット受信部ごとに設定された優先度に従うセキュリティレベルを有するホワイトリストであって、収容条件を最大限に活かした即ちセキュリティレベルの高いホワイトリスト、を生成することができる。また、パケット中継装置１００は、ホワイトリストの生成処理を自動で行うことにより、管理者の手間を省くことができる。
【実施例２】
【０１１１】
本実施例のパケット中継装置１００は、ステップ９５４〜９６０、及びステップ１００５〜１００７におけるリストのエントリ集約を、パケット受信部２００単位ではなく、ＶＬＡＮ番号単位で実施する。また、本実施例において、優先度格納Ｓ／Ｗメモリ領域４２２は、ＶＬＡＮ番号単位で優先度を保持する。また、パケット受信部番号別ホワイトリスト生成数カウンタ４２４は、ＶＬＡＮ番号単位でカウンタ値を保持する。
【実施例３】
【０１１２】
本実施例のパケット中継装置１００は、入出力装置６１０からの命令により、ホワイトリストの集約をパケット受信部２００単位、又はＶＬＡＮ番号単位で行うことを選択する。本実施例において、転送設定メモリ３４０は、ホワイトリストの集約をパケット受信部２００単位、又はＶＬＡＮ番号単位のいずれかで行うことを示す設定情報を格納する。また、優先度格納Ｓ／Ｗメモリ領域４２２は、パケット受信部番号単位、及びＶＬＡＮ番号単位で優先度を保持する。また、パケット受信部番号別ホワイトリスト生成数カウンタ４２４は、パケット受信部番号単位及びＶＬＡＮ番号単位でカウンタ値を保持する。
【実施例４】
【０１１３】
本実施例のパケット中継装置１００は、例えばボタンや鍵穴等の物理的なインタフェースを有し、当該インタフェースによってホワイトリスト機能等の設定を制御してもよい。例えば、パケット中継装置１００は、物理的な鍵によって操作が制御されるボタンのＯＮ／ＯＦＦによりホワイトリスト機能のモードを決定する。本実施例のパケット中継装置１００は、物理的なインタフェースを用いてホワイトリスト機能等の設定変更を実施することで、セキュリティのレベルを高めることができる。
【実施例５】
【０１１４】
本実施例のパケット中継装置１００は、ホワイトリスト生成状態と運用状態との間の状態移行を、入出力装置６１０からの命令があった際ではなく、特定のパケット受信部２００がリンクアップした際に変更してもよい。例えば、特定のパケット受信部２００がリンクアップすると、パケット中継装置１００は生成状態へと移行する。また、例えば、当該リンクアップから一定時間が経過すると、パケット中継装置１００は自動的に運用状態へと移行する。本実施例のパケット中継装置１００は、外部からの入力を必要とせず、ホワイトリスト機能状態を変更することができる。
【０１１５】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１１６】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１１７】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１１８】
１００  パケット中継装置、２００  パケット受信部、３００  パケット転送部、３１０  転送先決定部、３２０  ホワイトリスト格納Ｈ／Ｗメモリ、３４０  転送設定メモリ、４００  Ｓ／Ｗ制御部、４１０  ＣＰＵ、４２０  Ｓ／Ｗメモリ、４２１  ホワイトリスト生成プログラム、４２２  優先度格納Ｓ／Ｗメモリ領域、４２３  ホワイトリスト格納Ｓ／Ｗメモリ領域、４２４  パケット受信番号別ホワイトリスト生成数カウンタ、５００  パケット送信部、６１０  入出力装置
【図１】
0006433865.tif 000002
【図２】
0006433865.tif 000003
【図３】
0006433865.tif 000004
【図４Ａ】
0006433865.tif 000005
【図４Ｂ】
0006433865.tif 000006
【図５】
0006433865.tif 000007
【図６】
0006433865.tif 000008
【図７Ａ】
0006433865.tif 000009
【図７Ｂ】
0006433865.tif 000010
【図７Ｃ】
0006433865.tif 000011
【図８】
0006433865.tif 000012
【図９】
0006433865.tif 000013
【図１０】
0006433865.tif 000014
【図１１】
0006433865.tif 000015