IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社エヴリカの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-04
(45)【発行日】2023-12-12
(54)【発明の名称】情報処理装置、方法およびプログラム
(51)【国際特許分類】
   H04L 12/22 20060101AFI20231205BHJP
   H04L 12/66 20060101ALI20231205BHJP
   H04L 43/00 20220101ALI20231205BHJP
   G06F 21/53 20130101ALI20231205BHJP
【FI】
H04L12/22
H04L12/66
H04L43/00
G06F21/53
【請求項の数】 18
(21)【出願番号】P 2019119373
(22)【出願日】2019-06-27
(65)【公開番号】P2021005815
(43)【公開日】2021-01-14
【審査請求日】2022-03-22
(73)【特許権者】
【識別番号】510068091
【氏名又は名称】株式会社エヴリカ
(74)【代理人】
【識別番号】100145838
【弁理士】
【氏名又は名称】畑添 隆人
(74)【代理人】
【識別番号】100103137
【弁理士】
【氏名又は名称】稲葉 滋
(72)【発明者】
【氏名】山田 直樹
【審査官】羽岡 さやか
(56)【参考文献】
【文献】米国特許出願公開第2017/0093923(US,A1)
【文献】特開2016-134700(JP,A)
【文献】米国特許出願公開第2018/0115586(US,A1)
【文献】特開2016-129043(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-69/40
G06F 21/53
(57)【特許請求の範囲】
【請求項1】
1つ以上のセキュリティ検査項目についての検査を実行する情報処理装置であって、
該情報処理装置のOSによって提供されるファイルシステムを含むリソースが互いに隔離されるコンテナ型の仮想端末である、複数のコンテナと、
ネットワークを流れるデータを、宛先に到達する前に取得するデータ取得手段と、
前記宛先に前記データを送信するデータ送信手段と、
前記データの送信元または宛先毎に、該データが1以上の前記コンテナを経由して、または前記コンテナを経由することなく前記データ送信手段に転送される転送経路を決定する経路設定手段と、を備え、
前記複数のコンテナの一部は、前記検査を実行するためのアプリケーションが実装された検査コンテナであり、
前記検査コンテナは、取得された前記データについて前記検査を実行する検査手段を備え、
前記データは、ユーザ端末から送信されたデータ、及び該ユーザ端末から送信されたデータへの応答データを含み、
前記データ取得手段は、前記ユーザ端末から送信されたデータに、該データに係るプロトコルの種類に応じて定められたマークを付与し、
前記データ取得手段は、前記応答データに、該応答データに対応する前記ユーザ端末から送信されたデータに付与された前記マークと同一のマークを付与し、
前記応答データは、該応答データに付与された前記マークに対応する前記転送経路を参照して、前記コンテナまたは前記データ送信手段に転送される、
情報処理装置。
【請求項2】
前記セキュリティ検査項目毎に前記検査コンテナが構築される、
請求項1に記載の情報処理装置。
【請求項3】
前記経路設定手段は、前記データについて必要な1つ以上の検査が実行されるよう、該データが各検査に対応する検査コンテナを経由して前記データ送信手段に転送される転送経路を決定する経路設定手段であって、前記アプリケーションの更新に伴い、前記転送経路に使用されている更新前の該アプリケーションが実装された検査コンテナとは別に構築された、更新後の該アプリケーションが実装された稼働中でない検査コンテナを、前記データの転送経路に使用する検査コンテナとして設定する、
請求項2に記載の情報処理装置。
【請求項4】
1つ以上のセキュリティ検査項目についての検査を実行する情報処理装置であって、
該情報処理装置のOSによって提供されるファイルシステムを含むリソースが互いに隔離されるコンテナ型の仮想端末である複数のコンテナであって、該複数のコンテナの一部は、前記検査を実行するためのアプリケーションが実装され、前記セキュリティ検査項目毎に構築された複数の検査コンテナである、複数のコンテナと、
ネットワークを流れるデータを、宛先に到達する前に取得するデータ取得手段と、
前記宛先に前記データを送信するデータ送信手段と、
前記データについて必要な1つ以上の検査が実行されるよう、該データが各検査に対応する検査コンテナを経由して前記データ送信手段に転送される転送経路を決定する経路設定手段と、
前記アプリケーションについての更新処理を行うコンテナ管理手段と、を備え、
前記検査コンテナは、取得された前記データについて前記検査を実行する検査手段を備え、
前記経路設定手段は、前記アプリケーションの更新に伴い、前記転送経路に使用されている更新前の該アプリケーションが実装された検査コンテナとは別に構築された、更新後の該アプリケーションが実装された稼働中でない検査コンテナを、前記データの転送経路に使用する検査コンテナとして設定し、
前記コンテナ管理手段は、前記アプリケーションを更新する際、該アプリケーションに対応する前記セキュリティ検査項目について構築された前記複数の検査コンテナのうち、稼働中でない検査コンテナに、前記アプリケーションの更新要求を送信する、
情報処理装置。
【請求項5】
前記複数のコンテナの夫々は、該情報処理装置のOSによって提供されるネットワークリソースが互いに隔離される仮想端末であり、
前記稼働中でない検査コンテナは、前記データの転送経路に使用されていない検査コンテナである、
請求項3または4に記載の情報処理装置。
【請求項6】
前記検査コンテナは、前記更新要求を受信し、前記アプリケーションを更新する更新手段を更に備え、
前記経路設定手段は、前記更新手段により更新されたアプリケーションが実装された検査コンテナを、前記データの転送経路に使用する検査コンテナとして設定する、
請求項4に記載の情報処理装置。
【請求項7】
前記アプリケーションを更新する際、前記転送経路に使用されている更新前の該アプリケーションが実装された検査コンテナとは別に、更新後の該アプリケーションが実装された稼働中でない検査コンテナを新たに構築するコンテナ管理手段を更に備える、
請求項3に記載の情報処理装置。
【請求項8】
前記複数のコンテナの夫々は、該情報処理装置のOSによって提供されるネットワークリソースが互いに隔離される仮想端末であり、
前記稼働中でない検査コンテナは、前記データの転送経路に使用されていない検査コンテナであり、
前記経路設定手段は、前記更新後のアプリケーションが実装された検査コンテナを、前記データの転送経路に使用する検査コンテナとして設定する、
請求項7に記載の情報処理装置。
【請求項9】
前記経路設定手段は、前記アプリケーションの更新の際に確立済のコネクションに係る前記データについては、該確立済のコネクションにおいて使用中の前記更新前の該アプリケーションが実装された検査コンテナを通過する既存の転送経路を、前記更新後のアプリケーションが実装された検査コンテナが前記転送経路に使用する検査コンテナとして設定された後一定期間継続して使用するよう前記転送経路を設定する、
請求項3に記載の情報処理装置。
【請求項10】
前記複数のコンテナは、セキュリティに関する検査条件が記憶された検査条件データベースを備えるデータベースコンテナを更に備え、
前記データベースコンテナは、データ内の検査対象となる部分が前記検査条件に合致するか否かを判定する判定手段を備え、
前記検査手段は、前記データベースコンテナに対して、前記判定手段による判定を依頼することで、前記検査を実行する、
請求項1から9の何れか一項に記載の情報処理装置。
【請求項11】
前記検査手段は、前記判定手段による判定結果に基づいて、前記宛先への転送可否を判定する、
請求項10に記載の情報処理装置。
【請求項12】
前記経路設定手段は、前記データの送信元または宛先であるユーザ端末毎に、該送信元が必要とする1つ以上の前記検査が実行されるよう、該データが各検査に対応する検査コンテナを経由して前記データ送信手段に転送される転送経路を決定する、
請求項1または2に記載の情報処理装置。
【請求項13】
前記ユーザ端末が必要とする1つ以上の前記検査を示す契約情報を設定する契約情報設定手段を更に備え、
前記経路設定手段は、設定された前記契約情報に基づき、前記転送経路を決定する、
請求項12に記載の情報処理装置。
【請求項14】
前記データの次転送先が記憶された経路テーブルを更に備え、
前記検査コンテナは、前記データの次転送先が記憶されたコンテナ用経路テーブルを更に備え、
前記経路設定手段は、前記ユーザ端末について決定された前記転送経路を、前記経路テーブルおよび前記コンテナ用経路テーブルに設定する、
請求項12または13に記載の情報処理装置。
【請求項15】
情報処理装置のOSによって提供されるファイルシステムを含むリソースが互いに隔離される仮想端末である、複数のコンテナを備えた、1つ以上のセキュリティ検査項目についての検査を実行する該情報処理装置のコンピュータが、
ネットワークを流れるデータを、宛先に到達する前に取得するステップと、
前記宛先に前記データを送信するステップと、
前記データの送信元または宛先毎に、該データが1以上の前記コンテナを経由して、または前記コンテナを経由することなく前記データ送信ステップに転送される転送経路を決定する経路設定ステップと、
前記複数のコンテナの一部である、前記検査を実行するためのアプリケーションが実装された検査コンテナにおいて、取得した前記データについて前記検査を実行するステップと、を実行し、
前記データは、ユーザ端末から送信されたデータ、及び該ユーザ端末から送信されたデータへの応答データを含み、
前記データ取得ステップでは、前記ユーザ端末から送信されたデータに、該データに係るプロトコルの種類に応じて定められたマークを付与し、
前記データ取得ステップでは、前記応答データに、該応答データに対応する前記ユーザ端末から送信されたデータに付与された前記マークと同一のマークを付与し、
前記応答データは、該応答データに付与された前記マークに対応する前記転送経路を参照して、前記コンテナまたは前記データ送信ステップに転送される、
方法。
【請求項16】
情報処理装置のOSによって提供されるファイルシステムを含むリソースが互いに隔離される仮想端末である、複数のコンテナを備えた、1つ以上のセキュリティ検査項目についての検査を実行する該情報処理装置のコンピュータを、
ネットワークを流れるデータを、宛先に到達する前に取得するデータ取得手段と、
前記宛先に前記データを送信するデータ送信手段と、
前記データの送信元または宛先毎に、該データが1以上の前記コンテナを経由して、または前記コンテナを経由することなく前記データ送信手段に転送される転送経路を決定する経路設定手段と、
前記複数のコンテナの一部である、前記検査を実行するためのアプリケーションが実装された検査コンテナにおいて、取得した前記データについて前記検査を実行する検査手段と、として機能させ、
前記データは、ユーザ端末から送信されたデータ、及び該ユーザ端末から送信されたデータへの応答データを含み、
前記データ取得手段は、前記ユーザ端末から送信されたデータに、該データに係るプロトコルの種類に応じて定められたマークを付与し、
前記データ取得手段は、前記応答データに、該応答データに対応する前記ユーザ端末から送信されたデータに付与された前記マークと同一のマークを付与し、
前記応答データは、該応答データに付与された前記マークに対応する前記転送経路を参照して、前記コンテナまたは前記データ送信手段に転送される、
プログラム。
【請求項17】
情報処理装置のOSによって提供されるファイルシステムを含むリソースが互いに隔離される仮想端末である複数のコンテナであって、該複数のコンテナの一部は、1つ以上のセキュリティ検査項目についての検査を実行するためのアプリケーションが実装され、前記セキュリティ検査項目毎に構築された複数の検査コンテナである、複数のコンテナを備えた、前記検査を実行する該情報処理装置のコンピュータが、
ネットワークを流れるデータを、宛先に到達する前に取得するデータ取得ステップと、
前記宛先に前記データを送信するデータ送信ステップと、
前記データについて必要な1つ以上の検査が実行されるよう、該データが各検査に対応する検査コンテナを経由して前記データ送信ステップに転送される転送経路を決定する経路設定ステップと、
前記アプリケーションについての更新処理を行うコンテナ管理ステップと、を実行し、
前記検査コンテナは、取得された前記データについて前記検査を実行する検査ステップを実行し、
前記経路設定ステップでは、前記アプリケーションの更新に伴い、前記転送経路に使用されている更新前の該アプリケーションが実装された検査コンテナとは別に構築された、更新後の該アプリケーションが実装された稼働中でない検査コンテナを、前記データの転送経路に使用する検査コンテナとして設定し、
前記コンテナ管理ステップでは、前記アプリケーションを更新する際、該アプリケーションに対応する前記セキュリティ検査項目について構築された前記複数の検査コンテナのうち、稼働中でない検査コンテナに、前記アプリケーションの更新要求を送信する、
方法。
【請求項18】
情報処理装置のOSによって提供されるファイルシステムを含むリソースが互いに隔離される仮想端末である複数のコンテナであって、該複数のコンテナの一部は、1つ以上のセキュリティ検査項目についての検査を実行するためのアプリケーションが実装され、前記セキュリティ検査項目毎に構築された複数の検査コンテナである、複数のコンテナを備えた、前記検査を実行する該情報処理装置のコンピュータを、
ネットワークを流れるデータを、宛先に到達する前に取得するデータ取得手段と、
前記宛先に前記データを送信するデータ送信手段と、
前記データについて必要な1つ以上の検査が実行されるよう、該データが各検査に対応する検査コンテナを経由して前記データ送信手段に転送される転送経路を決定する経路設定手段と、
前記アプリケーションについての更新処理を行うコンテナ管理手段と、として機能させ、
前記検査コンテナを、取得された前記データについて前記検査を実行する検査手段として機能させ、
前記経路設定手段は、前記アプリケーションの更新に伴い、前記転送経路に使用されている更新前の該アプリケーションが実装された検査コンテナとは別に構築された、更新後の該アプリケーションが実装された稼働中でない検査コンテナを、前記データの転送経路に使用する検査コンテナとして設定し、
前記コンテナ管理手段は、前記アプリケーションを更新する際、該アプリケーションに対応する前記セキュリティ検査項目について構築された前記複数の検査コンテナのうち、稼働中でない検査コンテナに、前記アプリケーションの更新要求を送信する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ネットワーク上でデータを検査するための技術に関する。
【背景技術】
【0002】
従来、仮想ネットワークインフラストラクチャの仮想サーバ内の仮想マシンについての変化を検出し、仮想セキュリティ装置が仮想サーバ内で構成されるかどうかを判断し、仮想セキュリティ装置を仮想サーバ内で作成するよう要求を送信するステップを含み、更に、仮想セキュリティ装置が仮想マシン内で作成されるときに、仮想マシンが開始するのを許可するステップを含み、仮想セキュリティ装置は、仮想マシンから送信されるネットワークパケットに対してセキュリティ検査を実行し、更に、仮想マシンからのネットワークパケットをインターセプトするインターセプト機構を仮想サーバ内に作成するステップを含み、1つ又は複数のセキュリティポリシーが、1つ又は複数の仮想セキュリティ装置を識別し、仮想マシンからのネットワークパケットを処理する方法、が提案されている(特許文献1を参照)。
【0003】
また、従来、メイン仮想マシンと、サブ仮想マシンと、物理ネットワークカードと、を備え、メイン仮想マシンとサブ仮想マシンとの動作状態をそれぞれ取得するステップと、メイン仮想マシンに障害が生じていると検出された場合、仮想マシンと前記物理ネットワークカードとのバインディング関係を切り替えるように制御するステップと、サブ仮想マシンを新たなメイン仮想マシンに切り替えるように制御し、障害が生じているメイン仮想マシンを新たなサブ仮想マシンに切り替えるように制御するステップと、を実行する、物理ネットワークセキュリティ装置およびその制御方法が提案されている(特許文献2を参照)。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2016-129043号公報
【文献】特開2017-73763号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来、ネットワーク上のデータを検査するために、データが宛先に到達する前に通信検査装置や通信検査装置が備える仮想マシンでデータを取り込んで検査し、検査が終了した後に宛先に転送する技術がある。このような通信検査装置では、検査を実行するためのアプリケーションがストレージに格納されており、OS(オペレーティングシステム)がアプリケーションをメインメモリに読み込んで実行することで、当該検査を行っている。しかし、従来の技術では、アプリケーション等の更新に伴い、通信検査装置や仮想マシンの再起動等が必要となり、検査を継続的に実施できないという問題があった。
【0006】
本開示は、上記した問題に鑑み、ネットワーク上でデータを検査する通信検査装置において、検査の継続性を高めることを課題とする。
【課題を解決するための手段】
【0007】
本開示の一例は、1つ以上のセキュリティ検査項目についての検査を実行する情報処理装置であって、該情報処理装置のOSによって提供されるファイルシステムを含むリソースが互いに隔離されるコンテナ型の仮想端末である、複数のコンテナと、ネットワークを流れるデータを、宛先に到達する前に取得するデータ取得手段と、前記宛先に前記データを送信するデータ送信手段と、を備え、前記複数のコンテナの一部は、前記検査を実行するためのアプリケーションが実装された検査コンテナであり、前記検査コンテナは、取得した前記データについて前記検査を実行する検査手段を備える、情報処理装置である。
【0008】
本開示は、情報処理装置、システム、コンピューターによって実行される方法またはコンピューターに実行させるプログラムとして把握することが可能である。また、本開示は、そのようなプログラムをコンピューター、その他の装置、機械等が読み取り可能な記録媒体に記録したものとしても把握できる。ここで、コンピューター等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的または化学的作用によって蓄積し、コンピューター等から読み取ることができる記録媒体をいう。
【発明の効果】
【0009】
本開示によれば、ネットワーク上でデータを検査する通信検査装置において、検査の継続性を高めることが可能となる。
【図面の簡単な説明】
【0010】
図1】実施形態に係る従来の仮想化技術の構成を示す概略図である。
図2】実施形態に係るLinuxコンテナの構成を示す概略図である。
図3】実施形態に係るシステムの構成を示す概略図である。
図4】実施形態に係る通信検査装置のハードウェア構成を示す図である。
図5】実施形態に係る通信検査装置の機能構成の概略を示す図である。
図6】実施形態に係るコネクション管理テーブルの構成を示す図である。
図7】実施形態に係る第一経路テーブルの構成を示す図である。
図8】実施形態に係る第二経路テーブルの構成を示す図である。
図9】実施形態に係る契約情報テーブルの構成を示す図である。
図10】実施形態に係るコンテナの機能構成の概略を示す図である。
図11】実施形態に係るIPフィルタコンテナ#2のコンテナ用経路テーブルの構成を示す図である。
図12】実施形態に係るMAILフィルタコンテナ#1のコンテナ用経路テーブルの構成を示す図である。
図13】実施形態に係るパケット処理の流れの概要を示すフローチャートAである。
図14】実施形態に係るパケット処理の流れの概要を示すフローチャートBである。
図15】実施形態に係るパケット処理の流れの概要を示すフローチャートCである。
図16】実施形態に係る応答パケット処理の流れの概要を示すフローチャートAである。
図17】実施形態に係る応答パケット処理の流れの概要を示すフローチャートBである。
図18】実施形態に係るアプリケーション更新(少量モジュールの更新)処理の流れの概要を示すフローチャートである。
図19】実施形態に係るアプリケーション更新(大量モジュールの更新)処理の流れの概要を示すフローチャートである。
図20】実施形態に係る経路設定処理の流れの概要を示すフローチャートである。
図21】実施形態に係るアプリケーション更新に伴うコンテナ切り替え処理の流れの概要を示すフローチャートである。
図22】実施形態に係るコネクション管理テーブルの構成を示す図である。
図23】実施形態に係る第一経路テーブルAの構成を示す図である。
図24】実施形態に係る第一経路テーブルBの構成を示す図である。
【発明を実施するための形態】
【0011】
以下、本開示に係る情報処理装置、方法およびプログラムの実施の形態を、図面に基づいて説明する。但し、以下に説明する実施の形態は、実施形態を例示するものであって、本開示に係る情報処理装置、方法およびプログラムを以下に説明する具体的構成に限定するものではない。実施にあたっては、実施の態様に応じた具体的構成が適宜採用され、また、種々の改良や変形が行われてよい。
【0012】
本実施形態では、本開示に係る情報処理装置、方法およびプログラムを、通信検査装置において実施した場合の実施の形態について説明する。但し、本開示に係る情報処理装置、方法およびプログラムは、ネットワーク上のデータを検査するための技術について広く用いることが可能であり、本開示の適用対象は、本実施形態において示した例に限定されない。
【0013】
<コンテナについて>
本実施形態では、コンテナ型の仮想端末として、Linux(登録商標)コンテナ(Linux-Containers、LXC)を用いるが、Linuxコンテナはコンテナ型の仮想端末を例示するものであって、本開示に係る技術を実施するにあたっては、他の種類のコンテナ型の仮想端末が適宜採用されてもよい。
【0014】
図1は、本実施形態に係る従来の仮想化技術の構成を示す概略図である。図2は、本実施形態に係るLinuxコンテナの構成を示す概略図である。Linuxコンテナは、仮想化技術の1つであり、OS上にシステムのその他の部分から隔離されたアプリケーション(ユーザープロセス)実行環境を構築するものである。従来のサーバー仮想化技術では、ホストOSもしくはハイパーバイザー(仮想化ソフトウェア)上で、仮想マシン(Virtual Machine、VM)が作り出される。この仮想マシン内部では、個々の独立したゲストOSが実行され、複数のOS環境を構築可能にしている。具体的には、物理マシン上の共有リソース(CPU、メモリ、ハードディスク等)がハイパーバイザーにより複数に分割され、仮想マシンにそれぞれ提供されることで、仮想的なハードウェア環境を作り出している。そのため、このような仮想化技術は「ハードウェア仮想化」とも呼ばれる。
【0015】
一方、Linuxコンテナでは、物理マシン上で稼働するOSはホストOS一つでよい。ホストOSの内部は、物理リソースを管理する「カーネル空間」と、ユーザープロセスを実行する「ユーザ空間」とに分けられる。Linuxコンテナのようなコンテナ型の仮想化では、コンテナと呼ばれる仮想的なユーザ空間が複数作られ、その隔離された空間でアプリケーションが実行される。具体的には、Linuxコンテナでは、OSを通じて利用できるコンピューターのリソースをコンテナ毎に隔離することで、ホストOS上で直接動作するアプリケーションや他のコンテナから独立した空間(OS環境)を作り出すことを可能にしている。そのため、このようなコンテナ型の仮想化技術は「OSレベルの仮想化」とも呼ばれる。
【0016】
コンテナ環境では、Linuxカーネルの機能であるNamespace(名前空間)とcgroups(コントロールグループ)と呼ばれる資源管理の仕組みを用いることで、単一のOS内で複数のコンテナをプロセスとして稼働することを可能にしている。
【0017】
Namespaceは、単一のOS上に複数の分離された空間を実現するものであり、プロセスやファイルシステム等へのアクセスの分離を実現し、分離された空間のプロセスは、別の分離された空間からは不可視にするといった制御を実現する。なお、特定のコンテナに属さない外部の環境からは、コンテナの内部を含め、すべてのプロセスを見ることが可能である。ここで、名前空間は、「名前空間」という機能がひとつ存在するわけではなく、独立させたいリソース(項目)により複数の機能がある。「名前空間」の例として、mnt名前空間(マウント名前空間)、net名前空間(ネットワーク名前空間)等が挙げられる。
【0018】
mnt名前空間は、プロセスから見えるファイルシステムのマウント情報を分離するものである。よって、このmnt名前空間の機能により、各コンテナは独立したファイルシステムを有し、異なる名前空間のファイルシステムにアクセスすることができないようにすることが可能である。net名前空間は、ネットワークの制御を行う名前空間であり、各種ネットワークリソースを名前空間ごとに独立して持つことが可能である。具体的にはネットワークデバイス、IPアドレス、ルーティングテーブル、ポート番号、フィルタリングテーブル等を独立して持つことが可能である。よって、このnet名前空間の機能により、各コンテナがホストOSとは別に個別のIPアドレスを持つことが可能であり、複数のコンテナとホストOS間でネットワーク通信を行うことができる。
【0019】
Linuxコンテナではこれらの機能を用い、各種リソースが分離された空間を複数作成することで、コンテナを実現しているが、この分離された名前空間毎にハードウェア資源(リソース)を割り当て、リソースの使用制限を行うのがcgroupsである。具体的には、cgroupsは、プロセスをグループ化し、CPU、メモリ、ネットワーク等のリソースやそれらの組み合わせをプロセスの間で割り当て、制限することができる。この機能により、あるコンテナがホストOSのリソースを使い尽くし、ホストOS上のプロセスや他のコンテナに影響を与えないようにすることが可能となる。
【0020】
コンテナは、上述した特徴を有することにより、従来の仮想化技術と比較した場合に幾つかの利点を有する。例えば、コンテナの起動は、OSから見ると単にプロセスが起動しているだけであり、従来の仮想化技術にあるような仮想マシンのシャットダウンやブートという概念が存在しないため、仮想環境の起動や停止を高速で行うことができる。また、コンテナは、従来の仮想化技術のようなハードウェアの仮想化が不要であり、隔離された空間を作るだけで済むため、仮想化によるオーバーヘッドが少なく、コンテナでは、アプリケーションのプロセスがコンテナ毎に分離されるが、ホストOS環境から直接実行されるため、コンテナ上のCPUの利用において、ホストOSと同等の性能を発揮できるという利点を有する。
【0021】
本実施形態におけるコンテナ型の仮想技術では、各アプリケーションを独立化することで、アプリケーションの更新等の際、他のコンテナ内のアプリケーションに対する影響を抑えることが出来るため、従来の通信検査装置における検査と比較して、検査の継続性を高めることが出来る。また、コンテナ型の仮想技術では、上述の通り、従来の仮想マシンと比較した場合に、アプリケーションの更新等の際に必要となる仮想環境の停止や起動を高速で行うことができるため、従来の通信検査装置や仮想マシン上で検査が行われる場合と比較して、検査の継続性を高めることが出来る。さらに、検査項目(アプリケーション)毎に複数のコンテナを構築し、稼働中でないコンテナにおけるアプリケーションについて更新処理を行ったり、または、更新後のアプリケーションが実装された稼働中でないコンテナを新たに構築したりすることで、稼働中のコンテナを長時間停止する必要がなくなる。すなわち、データの転送経路に使用されるコンテナを、現在稼働中のコンテナから、アプリケーションの更新が完了したコンテナに切り替えるだけで、当該転送経路に使用されるコンテナにおけるアプリケーションの更新処理が完了することとなる。よって、アプリケーションの更新処理による検査の中断がほぼ発生せず、検査の継続性を高めることができる。
【0022】
<システムの構成>
図3は、本実施形態に係るシステム1の構成を示す概略図である。本実施形態に係るシステム1は、複数の情報処理端末であるユーザ端末90(以下、「クライアント90」と称する)が接続されるネットワークセグメント2と、クライアント90に係る通信を中継するための通信検査装置20と、を備える。また、ネットワークセグメント2内のクライアント90は、インターネットや広域ネットワークを介して遠隔地において接続された各種のサーバー80と、通信検査装置20を介して通信可能である。なお、クライアント90およびサーバー80は、それぞれ本願の発明の「宛先」の一例である。本実施形態において、通信検査装置20は、ネットワークセグメント2において、クライアント90とサーバー80との間に接続されることで、通過するデータ(パケット)を取得する。そして、通信検査装置20は、取得したデータのうち、検査対象でないデータ、および検査の結果転送してもよいと判定されたデータを転送する。
【0023】
図4は、本実施形態に係る通信検査装置20のハードウェア構成を示す図である。通信検査装置20は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、EEPROM(Electrically Erasable and Programmable Read Only Memory)やHDD(Hard Disk Drive)等の記憶装置14、NIC(Network Interface Card)15等の通信ユニット、等を備えるコンピューターである。但し、通信検査装置20の具体的なハードウェア構成に関しては、実施の態様に応じて適宜省略や置換、追加が可能である。また、通信検査装置20は、単一の装置に限定されない。通信検査装置20は、所謂クラウドや分散コンピューティングの技術等を用いた、複数の装置によって実現されてよい。
【0024】
[通信検査装置]
図5は、本実施形態に係る通信検査装置20の機能構成の概略を示す図である。通信検査装置20は、記憶装置14に記録されているプログラムが、RAM13に読み出され、CPU11によって実行されることで、データ取得部21、第一転送部22、経路設定部23、データ送信部24、応答データ取得部25、第二転送部26、応答データ送信部27、コンテナ管理部28、契約情報設定部29、拒否処理部33、コネクション管理部34を備える情報処理装置として機能する。なお、本実施形態では、通信検査装置20の備える各機能は、汎用プロセッサであるCPU11によって実行されるが、これらの機能の一部または全部は、1または複数の専用プロセッサによって実行されてもよい。また、これらの機能の一部または全部は、クラウド技術等を用いて、遠隔地に設置された装置や、分散設置された複数の装置によって実行されてもよい。なお、データ取得部21および第一転送部22は、例えば、通信検査装置20においてクライアント90側に位置するバランサーとして機能し、応答データ取得部25および第二転送部26は、通信検査装置20においてサーバー80側に位置するアウトバウンドとして機能するようにしてもよい。本実施形態では、当該バランサーおよびアウトバンドは、各々個別のIPアドレスを有するが、中継機器であるブリッジに、バランサーおよびアウトバウンドを備える場合は、バランサーおよびアウトバウンドの両者で一つのIPアドレスを有するようにしてもよい。
【0025】
通信検査装置20は、1つまたは複数の第一経路テーブル30および第二経路テーブル31(それぞれ本願の発明の「経路テーブル」の一例である)、契約情報テーブル32、コネクション管理テーブル35、36を備えており、各テーブルは記憶装置14に記憶されている。また、通信検査装置20は、例えばLinuxサーバーであり、コンテナ型の仮想端末であるLinuxコンテナが作成(構築)される。本実施形態では、通信検査装置20において、1つまたは複数の、Linuxコンテナであるフィルタコンテナ(検査コンテナ)50およびデータベースコンテナ60が作成されている。
【0026】
図6は、本実施形態に係るコネクション管理テーブル35、36の構成を示す図である。コネクション管理テーブル35、36は、クライアント90とサーバー80との間で接続中のコネクション(既存コネクション)を管理するためのテーブルであり、既存コネクションを特定する情報を保持(記憶)する。図示するように、コネクション管理テーブル35、36の各列には、送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、マーク情報の項目が保持されている。本実施形態において、「送信元IPアドレス」および「送信元ポート番号」は、データの送信元(クライアント90やサーバー80)のアドレスおよびポート番号を示す情報であり、「宛先IPアドレス」および「宛先ポート番号」は、データの宛先(クライアント90やサーバー80)のアドレスおよびポート番号を示す情報である。
【0027】
「マーク情報」には、データのプロトコル(TCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルが例示される)の種類(サーバー80が提供するサービスの種類)により定められたマークが格納される。プロトコルの種類により定められたマークは、例えば、HTTPSに関するプロトコルの場合(サーバー側のポート番号が443等の場合)にはマーク1、MAILに関するプロトコルの場合(サーバー側のポート番号が25、110、143等の場合)にはマーク2、それ以外のプロトコルの場合はマークなし等、任意に設定(定義)可能である。また、マーク情報には、後述する、既存コネクションであることを示すマーク(既存コネクションマーク)が格納されるようにしてもよい。なお、「マーク情報」は、受信したデータがどのプロトコルに関するものであるか判別できる情報であればよいため、上述した数字による「マーク情報」に限定されるものではなく、記号等を用いるようにしてもよい。
【0028】
図7は、本実施形態に係る第一経路テーブル30の構成を示す図である。第一経路テーブル30は、クライアント90から受信したデータの次転送先(次に転送すべき転送先)を決定するために参照される情報を保持するテーブルである。図示するように、第一経路テーブル30の各列には、送信元IPアドレス、転送先アドレスの項目が保持されている。本実施形態において、「送信元IPアドレス」は、データの送信元であるクライアント90のアドレスを示す情報であり、「転送先アドレス」は、データの次転送先のアドレスを示す情報である。
【0029】
図8は、本実施形態に係る第二経路テーブル31の構成を示す図である。第二経路テーブル31は、サーバー80から受信した応答データの次転送先を決定するために参照される情報を保持するテーブルである。図示するように、第二経路テーブル31の各列には、宛先IPアドレス、転送先アドレスの項目が含まれている。本実施形態において、「宛先IPアドレス」は、応答データの宛先であるクライアント90のアドレスを示す情報であり、「転送先アドレス」は、応答データの次転送先のアドレスを示す情報である。
【0030】
図9は、本実施形態に係る契約情報テーブル32の構成を示す図である。契約情報テーブル32は、クライアント90が必要とする1つ以上の検査項目(契約情報)を、クライアント90のアドレス情報と関連付けて保持し、クライアント90が要する検査を実行するようデータの転送経路を決定するために参照されるテーブルである。図示するように、契約情報テーブル32の各列には、クライアント名、クライアント90のアドレス情報、検査項目(フィルタリング種類)が含まれている。本実施形態では、「検査項目」として、IPフィルタリング、MAILフィルタリング、URLフィルタリング、HTTP(S)フィルタリングを例示する。なお、契約情報テーブル32に記憶される項目は、上述した項目に限るものではなく、例えば、当該フィルタリングを行う対象となるデータのプロトコルの種類を示す情報等が含まれてもよい。
【0031】
データ取得部21(本願の発明の「データ取得手段」の一例である)は、ネットワークを流れるデータを、宛先に到達する前に取得する。例えば、本実施形態におけるクライアント90から送信されたデータを、サーバー80に到達する前に取得する。なお、本実施形態において、通信検査装置20は、ネットワークセグメント2に接続されたクライアント90による通信の他、通信検査装置20を介する全ての通信を、検査の対象とすることが出来る。
【0032】
また、データ取得部21は、取得したデータにプロトコルの種類により定められたマークを付与する。具体的には、データ取得部21は、コネクション管理部34によりコネクション管理テーブル35に格納された、当該データに対応するコネクション情報(コネクションを特定する情報)を参照し、当該コネクション情報として格納されたマークと同一のマークをデータに付与する。なお、この際、データ取得部21は、取得したデータに設定された送信元IPアドレス、宛先IPアドレスおよび宛先ポート番号に基づきコネクション管理テーブル35を参照し、これらの情報が一致するコネクションを、当該データに対応するコネクションであると判定する。なお、データ取得部21は、当該三つの情報に送信元ポート番号を加えた四つの情報に基づきコネクション管理テーブル35を参照し、対応するコネクションを判定するようにしてもよい。また、パケットにマークを付ける機能(パケットのマーク機能)は、パケット自体にマークを付けるのではなく、OS内のパケットを管理するデータにマークを付けるものであり、マークを付けたOS内でのみ有効なものである。このように、マーク情報がデータに付与され、当該マーク情報を参照することで当該データの転送先が決定されることにより、データの種類(プロトコルの種類)に応じた検査を行うことが可能となる。
【0033】
コネクション管理部34は、データ取得部21または応答データ取得部25により取得されたデータについてのコネクション情報をコネクション管理テーブル35、36に格納する。具体的には、コネクション管理部34は、取得されたデータについてのコネクションが、コネクション管理テーブル35、36に格納されていないコネクション(新たなコネクション)である場合に、当該コネクションを特定する情報(送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、マーク)をコネクション管理テーブル35、36に格納する。なお、コネクション管理部34は、サーバーのポート番号(取得したデータのTCPヘッダにおける宛先ポート番号または送信元ポート番号)を参照することで、当該データのプロトコルを判定し、当該プロトコルに対応するマークをコネクション管理テーブル35、36のマーク情報の欄に格納する。
【0034】
第一転送部22は、経路設定部23が設定したルールおよび第一経路テーブル30に基づき、データ取得部21が取得したデータを、フィルタコンテナ50またはデータ送信部24に転送する。第一転送部22は、データ取得部21により取得されたデータに付与されたマーク情報および当該データのIPヘッダにおける送信元IPアドレスに基づき、前記ルールで指定された第一経路テーブル30を参照する。これにより、第一転送部22は、取得されたデータの転送先(転送先アドレス)を決定し、当該転送先へデータを転送する。なお、第一転送部22により、通信検査装置20における検査の対象でないと判断されたデータについては、フィルタコンテナ50を経由することなくデータ送信部24へ転送される。
【0035】
経路設定部23は、データの送信元または宛先であるクライアント90毎(または複数のクライアント90毎)に、当該クライアントが必要とする1つ以上の検査を実行するよう、各検査に対応するフィルタコンテナ50を経由するデータの転送経路を決定する。経路設定部23は、契約情報テーブル32に基づき、クライアント毎に(各クライアントのプロトコル種類毎に)、データの転送経路を決定する。経路設定部23は、決定された転送経路に基づき、第一経路テーブル30、第二経路テーブル31、および各フィルタコンテナ50が有するコンテナ用経路テーブル55を作成、更新する。
【0036】
また、経路設定部23は、データに付与されたマーク情報に基づき参照すべき経路テーブルを特定できるよう、当該マーク情報に対応する経路テーブルを指定するルールを設定する。また、経路設定部23は、当該マーク情報およびクライアント情報に基づき参照すべき経路テーブルを特定できるよう、当該マーク情報およびクライアント情報に対応する経路テーブルを指定するルールを設定するようにしてもよい。なお、当該ルール(コマンドデータ)は、経路テーブルと同様に、記憶装置14に記憶される。
【0037】
さらに、経路設定部23は、フィルタコンテナ50における更新部54により更新されたアプリケーションが実装されたフィルタコンテナ50やコンテナ管理部28により新たに構築された、更新後のアプリケーションが実装されたフィルタコンテナ50を、前記データの転送経路に使用するフィルタコンテナとして設定する。
【0038】
データ送信部24(本願の発明の「データ送信手段」の一例である)は、クライアント90から送信されたデータを、第一転送部22またはフィルタコンテナ50から受信し、宛先であるサーバー80に送信する。
【0039】
応答データ取得部25(本願の発明の「データ取得手段」の一例である)は、ネットワークを流れるデータを、宛先に到達する前に取得する。例えば、本実施形態におけるサーバー80から送信された応答データを、クライアント90に到達する前に取得する。
【0040】
また、応答データ取得部25は、取得した応答データにプロトコルの種類により定められたマークを付与する。具体的には、応答データ取得部25は、コネクション管理部34によりコネクション管理テーブル36に格納された、当該応答データに対応するコネクション情報を参照し、当該コネクション情報として格納されたマークと同一のマークを当該応答データに付与する。なお、この際、応答データ取得部25は、取得した応答データに設定された送信元IPアドレス、送信元ポート番号および宛先IPアドレスに基づきコネクション管理テーブル36を参照し、これらの情報が一致するコネクションを、当該応答データに対応するコネクションであると判定する。なお、応答データ取得部25は、当該三つの情報に宛先ポート番号を加えた四つの情報に基づきコネクション管理テーブル36を参照し、対応するコネクションを判定するようにしてもよい。マークの付与方法については、上述したデータ取得部21の場合と同様である。
【0041】
第二転送部26は、経路設定部23が設定したルールおよび第二経路テーブル31に基づき、応答データ取得部25が取得した応答データを、フィルタコンテナ50または応答データ送信部27に転送する。第二転送部26は、応答データ取得部25により取得された応答データに付与されたマーク情報および当該応答データのIPヘッダにおける宛先IPアドレスに基づき、前記ルールで指定された第二経路テーブル31を参照する。これにより、第二転送部26は、取得された応答データの転送先(転送先アドレス)を決定し、当該転送先へ応答データを転送する。なお、第二転送部26により、通信検査装置20における検査の対象でないと判断された応答データについては、フィルタコンテナ50を経由することなく応答データ送信部27へ転送される。
【0042】
応答データ送信部27(本願の発明の「データ送信手段」の一例である)は、サーバー80から送信された応答データを、第二転送部26またはフィルタコンテナ50から受信し、クライアント90に送信する。
【0043】
コンテナ管理部28は、通信検査装置20の管理者等の要求に応じて、コンテナ型の仮想端末であるコンテナを作成し、コンテナ内でアプリケーションを実行する。なお、コンテナ内ではアプリケーションが自動起動されるようにしてもよい。また、コンテナ管理部28は、アプリケーションサーバーから、機能改善や不具合修正等が行われたことによるアプリケーションの更新通知および更新用データを受信し、当該アプリケーションについての更新処理を行う。コンテナ管理部28は、アプリケーション内の少量モジュールについて更新が必要な場合、フィルタコンテナ50に当該更新要求および更新用データを送信する。この際、コンテナ管理部28は、当該アプリケーションに対応するセキュリティ検査項目について構築された(当該アプリケーションが実装された)複数のフィルタコンテナ50のうち、稼働中でないフィルタコンテナを決定し、この決定されたコンテナに対して更新要求等を送信する。一方、コンテナ管理部28は、アプリケーション内の大量モジュールについて更新が必要な場合、受信された更新用データを使用することで、更新に係るセキュリティ検査項目について更新前のアプリケーションで稼働中のフィルタコンテナとは別に、当該セキュリティ検査項目について更新後のアプリケーションが実装された稼働中でないフィルタコンテナを新たに構築する。なお、本実施形態において、「稼働中でないフィルタコンテナ」とは、データの転送(経路)に使用されていないフィルタコンテナである。
【0044】
契約情報設定部29は、クライアント90のアドレス情報および当該クライアント90が必要とする1以上の検査を示す契約情報を受信し、これらを関連付けて契約情報テーブル32に記憶する。契約情報設定部29は、固定IPアドレスを有するクライアント90の場合、当該クライアント90から、または複数の当該クライアント90を管理する管理者であるクライアント90から、1以上の当該クライアント90についてのIPアドレス(固定IPアドレス)を受信する。また、契約情報設定部29は、変動(動的)IPアドレスを有するクライアント90の場合、当該クライアント90を管理するVPNサーバーから、1以上の当該クライアント90についてのIPアドレス(変動IPアドレス)を受信する。なお、本実施形態では、クライアントの固定IPアドレスを管理者であるクライアント等から受信し、クライアントの変動IPアドレスをVPNサーバーから受信するようにしたが、これに限るものではなく、インターネットを介して通信検査装置20に接続する他の情報処理端末であってもよい。また、契約情報設定部29は、クライアント90または複数の当該クライアント90を管理する管理者であるクライアント90等から、契約情報を受信する。なお、契約情報設定部29は、当該検査を行う対象となるデータのプロトコルの種類を示す情報を受信するようにしてもよい。
【0045】
拒否処理部33は、フィルタコンテナ50により宛先へのデータの転送を拒否された場合に、当該データの送信元または宛先であるクライアント90に対してデータ転送についての拒否処理を行う。拒否処理部33は、例えば、IPフィルタリングによりデータ転送が拒否された場合、クライアント90との接続を拒否する(接続を切断する)。また、拒否処理部33は、例えば、MAILフィルタリングによりデータ転送が拒否された場合、クライアント90へデータ転送を拒否することを示すメール(エラーメール)を送信する。また、拒否処理部33は、例えば、URLフィルタリングやHTTP(S)フィルタリングによりデータ転送が拒否された場合、HTTPやHTTP(S)のページ上で転送を拒否することを示すメッセージが表示されるよう、クライアント90へ当該メッセージ(データ)を送信する。
【0046】
フィルタコンテナ50は、取得したデータについてセキュリティ検査を実行するためのアプリケーションが実装された、セキュリティ検査を実行するコンテナである。フィルタコンテナ50は、取得したデータについてセキュリティ検査を実行し、当該データに設定された宛先へのデータ転送を許可してよいか否かを決定する。本実施形態では、セキュリティ検査の検査項目として、IPフィルタリング、URLフィルタリング、MAILフィルタリング、HTTP(S)フィルタリングを例示する。但し、本開示に係る検査において採用され得る具体的な検査項目や検査手法は、本実施形態における例示に限定されない。具体的な検査項目や検査手法には、既知の、または将来開発される様々な検査項目および検査手法が採用されてよい。
【0047】
各種フィルタリングでは、取得したデータを宛先に通過させてよいか否かをフィルタ条件(検査条件)と照合することで判定し、宛先へのデータの転送を制限したり許可したりする(フィルタリングする)。IPフィルタリングは、IP、TCP、UDP、ICMP等のヘッダ情報に基づいて、フィルタリングを行う(データの通過、拒否を制御する)機能である。これにより、例えば、特定のIPアドレスを宛先とするデータについては、データの転送を拒否することができる。URLフィルタリングは、アクセス、閲覧できるインターネット上のWebサイトをフィルタリングするものであり、アクセス等を許可する(または拒否する)URLのリスト(テーブル)と照合を行うことでフィルタリングを行う。MAILフィルタリングは、主にSPAMフィルタおよびウィルスフィルタであり、メールの中から、迷惑な広告などのメール(スパムメール、迷惑メール)やウィルス感染したメール等をフィルタリングする。HTTP(S)フィルタリングは、HTTP(S)通信に係るデータにウィルスが含まれているか否かをフィルタリングする機能であり、アプリケーションレベルで解析することにより、IPフィルタリングおよびURLフィルタリングを併せて行うことができる。なお、応答データについては、クライアントからの要求に応じたコンテンツを送信するためのデータであるため、IPフィルタリングおよびURLフィルタリングは不要である。
【0048】
本実施形態では、セキュリティ検査項目毎にフィルタコンテナ50が構築される。すなわち、各フィルタコンテナ50は、1検査項目についての検査(1アプリケーション)のみを実行する。例えば、IPフィルタリングを行うためのアプリケーションが実装されたコンテナ(IPフィルタコンテナ)、URLフィルタリングを行うためのアプリケーションが実装されたコンテナ(URLフィルタコンテナ)、MAILフィルタリングを行うためのアプリケーションが実装されたコンテナ(MAILフィルタコンテナ)、HTTP(S)フィルタリングを行うためのアプリケーションが実装されたコンテナ(HTTP(S)フィルタコンテナ)、等のようにフィルタコンテナが構築される。但し、これに限られるものではなく、1つのフィルタコンテナに複数のアプリケーションが実装され、複数の検査項目に係る検査が実行されるようにしてもよい。
【0049】
また、本実施形態では、セキュリティ検査項目毎に複数のフィルタコンテナ50が構築される。換言すれば、同一のアプリケーションが実装されたフィルタコンテナ50が複数構築される。例えば、IPフィルタコンテナ#1、IPフィルタコンテナ#2、MAILフィルタコンテナ#1、MAILフィルタコンテナ#2等のように、各フィルタコンテナを複数構築する。
【0050】
データベースコンテナ60は、セキュリティ検査(フィルタリング)に必要とされる、セキュリティに関するフィルタ条件(脅威情報等)が記憶されたデータベースを保持するコンテナである。データベースコンテナ60は、取得したデータの検査対象となる部分がフィルタ条件に合致するか否かを判定する。本実施形態では、フィルタ条件が記憶されたデータベース(後述する「フィルタ条件データベース」に該当)として、IPデータベース、URLデータベース、SPAMデータベース、VIRUSデータベースが例示される。
【0051】
本実施形態では、フィルタ条件テータベースの種類毎にデータベースコンテナが構築される。すなわち、各データベースコンテナは、一種類のフィルタ条件データベースのみを備える。例えば、IPデータベースを備えるIPデータベースコンテナ、URLデータベースを備えるURLデータベースコンテナ、SPAMデータベースを備えるSPAMデータベースコンテナ、VIRUSデータベースを備えるVIRUSデータベースコンテナ、等のようにデータベースコンテナが構築される。但し、これに限定するものではなく、一つのデータベースコンテナが、複数種類のフィルタ条件データベースを備えていてもよい。なお、同一のフィルタ条件データベースを備えるデータベースコンテナを、複数構築するようにしてもよい。
【0052】
[コンテナ]
図10は、本実施形態に係るコンテナの機能構成の概略を示す図である。フィルタコンテナ50は、記憶装置14に記録されているプログラムが、RAM13に読み出され、CPU11によって実行されることで、転送データ受信部51、検査部52、転送部53、更新部54を備えるコンテナとして機能する。データベースコンテナ60は、記憶装置14に記録されているプログラムが、RAM13に読み出され、CPU11によって実行されることで、検査対象受信部61、判定部62、判定結果通知部63、更新部64を備えるコンテナとして機能する。なお、本実施形態では、フィルタコンテナ50およびデータベースコンテナ60の備える各機能は、汎用プロセッサであるCPU11によって実行されるが、これらの機能の一部または全部は、1または複数の専用プロセッサによって実行されてもよい。
【0053】
フィルタコンテナ50は、コンテナ用経路テーブル55を備えており、データベースコンテナ60は、フィルタ条件データベース65を備えており、各テーブルは記憶装置14に記憶されている。
【0054】
[フィルタコンテナ]
図11は、本実施形態に係るIPフィルタコンテナ#2のコンテナ用経路テーブル55の構成を示す図である。図12は、本実施形態に係るMAILフィルタコンテナ#1のコンテナ用経路テーブル55の構成を示す図である。コンテナ用経路テーブル55は、クライアント90やサーバー80から受信したデータの次転送先を決定するためにコンテナにおいて参照される情報を保持するテーブルである。コンテナ用経路テーブル55の各列には、送信元IPアドレス、宛先IPアドレス、転送先アドレス等の項目が保持される。コンテナ用経路テーブル55の「送信元IPアドレス」は、クライアント90からサーバー80に送信されるデータを転送する場合に参照される項目であり、コンテナ用経路テーブル55の「宛先IPアドレス」は、サーバー80からクライアント90に送信される応答データを転送する場合に参照される項目である。なお、フィルタリングの種類(検査内容)によっては、サーバー80からの応答データ(戻りパケット)については実施する必要のない検査があり、そのような検査に係るフィルタコンテナ50においては、コンテナ用経路テーブル55の「宛先IPアドレス」の項目は設けなくてもよい。
【0055】
例えば、図11図12では、IPフィルタコンテナとMAILフィルタコンテナのコンテナ用経路テーブル55を例示しているが、サーバー80からの応答データについてはIPフィルタリングを行う必要がないため、IPフィルタコンテナのコンテナ用経路テーブルには「宛先IPアドレス」の項目を設けていない。なお、フィルタコンテナ50においても、受信したデータのプロトコルにより次転送先を分岐させたい場合は、経路テーブルと同様に、コンテナ用経路テーブル55に「マーク情報」や「ポート番号」の項目を含むようにしてもよい。また、本実施形態では、図12に示すように、クライアント90からのデータを転送する際に参照するレコード(データ)と、サーバー80からの応答データを転送する際に参照するレコードの両者が同一の経路テーブルに含まれているが、これらを各々別の経路テーブルに格納するようにしてもよい。
【0056】
転送データ受信部51は、第一転送部22、第二転送部26、または他のフィルタコンテナ50から転送されたデータを受信する。
【0057】
検査部52は、受信(取得)したデータについてセキュリティ検査項目についての検査を実行する。
【0058】
さらに、検査部52は、抽出部521、検査対象送信部522、判定結果受信部523、転送可否判定部524を備えている。
【0059】
抽出部521は、取得したデータから、フィルタリング(検査)の設定項目に該当する部分である、検査対象となる部分を抽出する。例えば、IPフィルタコンテナの場合、抽出部521は、IPヘッダを抽出するようにしてもよい。なお、MAILフィルタコンテナのように複数のフィルタリング(検査)を必要とするフィルタコンテナの場合、抽出部521は、各検査について検査対象となる部分を抽出する。例えば、MAILフィルタコンテナの場合は、SPAMフィルタリングおよびVIRUSフィルタリングを行うため、抽出部521は、取得したデータから、これら各々の検査について、検査対象となる部分を抽出する。
【0060】
検査対象送信部522は、抽出部521により抽出された、取得したデータ内の検査対象となる部分を、当該フィルタリングに使用されるフィルタ条件データベース65を備えるデータベースコンテナ60に送信する。なお、上述の通り、複数のフィルタリング(検査)を必要とするフィルタコンテナの場合、検査対象送信部522は、各検査について抽出された検査対象となる部分を、それぞれ対応するデータベースコンテナ60へ送信する。
【0061】
判定結果受信部523は、データ内の検査対象となる部分を受信したデータベースコンテナ60の判定結果通知部63(後述する)から、検査対象となる部分がフィルタ条件に合致するか否か判定された結果を受信する。なお、上述の通り、複数のフィルタリング(検査)を必要とするフィルタコンテナの場合、判定結果受信部523は、複数のデータベースコンテナ60から、それぞれの検査に係る判定結果を受信する。
【0062】
転送可否判定部524は、判定結果受信部523が受信した判定結果に基づき宛先への転送可否を判定する。転送可否判定部524は、例えば、IPフィルタリングにより、取得したデータの宛先IPアドレスが、データを通過させない(拒否する)フィルタ条件に該当するという判定結果を受信することで、取得したデータを宛先へ転送させないと判定する。なお、上述の通り、複数のフィルタリング(検査)を必要とするフィルタコンテナの場合、転送可否判定部524は、複数のデータベースコンテナ60から送信された各判定結果に基づき、転送可否を判定する。例えば、複数の判定結果のうち一つでもデータを通過させないフィルタ条件に該当していると判定された結果が存在する場合、取得したデータを転送させないと判定する。
【0063】
転送部53は、転送可否判定部524により宛先への転送が許可されたデータを、コンテナ用経路テーブル55を参照することで、次転送先へ転送する。転送部53は、転送データ受信部51により受信されたデータのIPヘッダにおける送信元IPアドレスまたは宛先IPアドレスに基づき、コンテナ用経路テーブル55を参照する。これにより、転送部53は、クライアント90やサーバー80から取得されたデータの転送先を決定し、当該転送先へデータを転送する。
【0064】
更新部54は、コンテナ管理部28からアプリケーションの更新要求および更新用データを受信し、フィルタコンテナ50が備える、検査を実行するための当該アプリケーションを更新する。更新部54は、アプリケーションの更新が完了すると、コンテナ管理部28へ更新完了通知を送信する。
【0065】
[データベースコンテナ]
フィルタ条件(検査条件)データベース65には、セキュリティ検査項目についての検査に使用されるフィルタ条件(セキュリティに関するフィルタ条件)が保持されている。フィルタ条件データベース65には、フィルタリングを行う際の、データの転送を許可または拒否するためのフィルタ条件が保持される。フィルタ条件データベース65は、フィルタ条件として、フィルタリングする項目(パラメータ)、その具体的な値等、およびデータ通過の許可または拒否等のフィルタ種別を保持することができる。例えば、IPデータベースコンテナの有するフィルタ条件データベース65では、フィルタ条件として、パラメータである宛先IPアドレスが「10.1.1.1」である場合にデータ転送を「拒否」するという条件が保持される。
【0066】
検査対象受信部61は、検査対象送信部522から、データ内の検査対象となる部分を受信する。
【0067】
判定部62は、検査対象受信部61が取得した、データ内の検査対象となる部分が、フィルタ条件データベースに保持されたフィルタ条件に合致するか否かを判定する。例えば、IPデータベースコンテナの判定部62は、フィルタ条件が、宛先IPアドレスが「10.1.1.1」である場合にデータ転送を「拒否」するものである場合、検査対象受信部61が取得した、データ内の検査対象となる部分に含まれる宛先IPアドレスが、当該アドレスに合致するか否かを判定する。
【0068】
判定結果通知部63は、判定部62により判定された、データ内の検査対象となる部分がフィルタ条件に合致したか否かを示す判定結果についての情報を、判定結果受信部523に送信する。
【0069】
更新部64は、データベースコンテナ60が備えるフィルタ条件データベース65および当該フィルタ条件データベースの管理を行うアプリケーション等の更新を行う。更新部64は、コンテナ管理部28からフィルタ条件データベース65や当該データベースを管理するアプリケーションの更新要求および更新用データを受信し、当該フィルタ条件データベース65や当該アプリケーションを更新する。更新部64は、当該更新処理が完了すると、コンテナ管理部28へ更新完了通知を送信する。
【0070】
なお、本実施形態では、フィルタコンテナ50とは別にデータベースコンテナ60を構築することで、検査を行うアプリケーションを備える環境とデータベースを備える環境とを分離している。これより、検査を行うアプリケーションおよびデータベースをそれぞれ独立化することができ、それぞれを更新する際の他への影響を低減させている。但し、本開示に係る通信検査装置20は、データベースコンテナ60を独立して構築するものに限定されず、フィルタコンテナ50や通信検査装置20(コンテナ外)においてデータベースを備えるようにしてもよい。
【0071】
<処理の流れ>
次に、本実施形態に係るシステム1によって実行される処理の流れを、フローチャートを用いて説明する。なお、以下に説明するフローチャートに示された処理の具体的な内容および処理順序は、本開示を実施するための一例である。具体的な処理内容および処理順序は、本開示の実施の形態に応じて適宜選択されてよい。
【0072】
図13から図15は、本実施形態に係るパケット処理の流れの概要を示すフローチャートである。本実施形態では、IPフィルタリングおよびMAILフィルタリングの検査を必要とするクライアント90(IPアドレスが「192.168.1.2」)からの、MAILに関連するパケットの処理を例示する。本実施形態に係るパケット処理は、通信検査装置20によって、ネットワーク上を流れるクライアント90からのパケット(例えば、TCPパケット)が受信されたことを契機として実行される。
【0073】
ステップS101では、パケット(データ)を受信し、当該パケットに係るコネクションの管理およびパケットへのマーク付与が行われる。データ取得部21が、クライアント90からパケットを受信すると、コネクション管理部34は、受信したパケットに係るコネクションがコネクション管理テーブル35に格納されているか否かを確認する。具体的には、パケットに設定された送信元IPアドレス、送信元ポート番号、宛先IPアドレスおよび宛先ポート番号に基づき、コネクション管理テーブル35を参照することにより、当該パケットに係るコネクションの格納有無を確認する。
【0074】
当該パケットに係るコネクションが格納されていない場合(初めてのコネクションの場合)、コネクション管理部34は、当該コネクションに関するコネクション情報をコネクション管理テーブル35に格納する。この際、コネクション管理部34は、受信パケットの宛先ポート番号を参照することで当該パケットのプロトコルを判定し、判定されたプロトコルの種類に対応するマーク情報を格納する。データ取得部21は、パケットに設定された送信元IPアドレス、宛先IPアドレスおよび宛先ポート番号に基づき、コネクション管理テーブル35を参照することで、当該パケットに対応するコネクションに付与されたマークと同一のマークをパケットに付与する。本実施形態では、クライアント90からのパケットに係るコネクションについての情報が格納されるが(図6参照)、この際、当該パケットのプロトコル(MAIL関連)に基づくマーク情報としてマーク「2」が格納され、且つ取得されたデータに対してマーク「2」が付与される。その後、処理はステップS102へ進む。
【0075】
ステップS102では、データの次転送先が決定される。第一転送部22は、ステップS101で取得されたデータに付与されたマーク情報「2」および送信元IPアドレス「192.168.1.2」に基づき、第一経路テーブル30を参照することで、当該データの転送先を、「172.16.129.12(IPフィルタコンテナ#2)」と決定する。具体的には、経路設定部23により設定された、送信元IPアドレス「192.168.1.2」からのマーク情報「2」に係るデータは、第一経路テーブル#1(図7)を参照することとのルールに基づき、第一転送部22は、図7に示す第一経路テーブルを参照することで次転送先を決定する。その後、処理はステップS103へ進む。
【0076】
ステップS103では、データが次転送先に転送される。第一転送部22は、ステップS101で取得されたデータを、ステップS102で決定された転送先へ転送する。本実施形態では、取得されたデータがIPフィルタコンテナ#2へ転送される。その後、処理はステップS104へ進む。
【0077】
ステップS104では、IPフィルタコンテナ#2において、転送されたデータが受信される。転送データ受信部51は、ステップS103で転送された、クライアント90からのデータを受信する。その後、処理はステップS105へ進む。
【0078】
ステップS105では、IPフィルタコンテナ#2において、検査対象となる部分のデータが抽出される。抽出部521は、例えば、ステップS104で受信されたデータから、IPフィルタリングの対象となるIPヘッダを抽出する。その後、処理はステップS106へ進む。
【0079】
ステップS106では、抽出された検査対象となる部分が、IPデータベースコンテナ60に送信される。検査対象送信部522は、ステップS105で抽出された検査対象となる部分(IPヘッダ)を、IPフィルタリングに使用されるフィルタ条件データベース65を備えるIPデータベースコンテナ60に送信する。その後、処理はステップS107へ進む。
【0080】
ステップS107では、IPデータベースコンテナ60において、検査対象となる部分が受信される。検査対象受信部61は、ステップS106で送信された、検査対象となる部分を受信する。その後、処理はステップS108へ進む。
【0081】
ステップS108では、IPデータベースコンテナ60において、検査対象となる部分がフィルタ条件に合致するか否か判定される。判定部62は、ステップS107で受信された検査対象となる部分が、フィルタ条件データベース65に保持されたフィルタ条件に合致するか否かを判定する。その後、処理はステップS109へ進む。
【0082】
ステップS109では、判定結果がIPフィルタコンテナ#2に通知(送信)される。判定結果通知部63は、ステップS108で判定された判定結果をIPフィルタコンテナ#2に送信する。その後、処理はステップS110へ進む。
【0083】
ステップS110では、IPフィルタコンテナ#2において、判定結果が受信される。判定結果受信部523は、ステップS109で送信された判定結果を受信する。その後、処理はステップS111へ進む。
【0084】
ステップS111では、IPフィルタコンテナ#2において、判定結果に基づき宛先へのデータ転送可否が判定される。ステップS110で受信された判定結果に基づき、転送可否判定部524が、クライアント90から送信されたデータの宛先への転送を許可できないと判定した場合、データ転送を拒否することを示す拒否通知が通信検査装置20に送信され、処理はステップS112へ進む。一方、転送可否判定部524が、クライアント90から送信されたデータの宛先への転送を許可してよいと判定した場合、処理はステップS113へ進む。
【0085】
ステップS112では、データの転送についての拒否処理が行われる。実施形態では、拒否処理部33は、クライアント90との通信(接続)を切断する。その後、本フローチャートに示された処理は終了する。
【0086】
ステップS113では、宛先への転送が許可されたデータの次転送先が決定される。転送部53は、ステップS104で取得されたデータの送信元IPアドレス「192.168.1.2」に基づき、コンテナ用経路テーブル55を参照することで、当該データの転送先を、「172.16.129.13(MAILフィルタコンテナ#1)」と決定する。その後、処理はステップS114へ進む。
【0087】
ステップS114では、データが次転送先に転送される。転送部53は、ステップS104で取得されたデータを、ステップS113で決定された転送先へ転送する。本実施形態では、IPフィルタコンテナ#2における転送部53が、取得されたデータをMAILフィルタコンテナ#1へ転送する。その後、処理はステップS115へ進む。
【0088】
ステップS115では、MAILフィルタコンテナ#1において、IPフィルタコンテナ#2から転送されたデータが受信される。転送データ受信部51は、ステップS114で転送された、クライアント90からのデータを受信する。その後、処理はステップS116へ進む。
【0089】
ステップS116では、MAILフィルタコンテナ#1において、検査対象となる部分のデータが抽出される。抽出部521は、例えば、ステップS115で受信されたデータから、MAILフィルタリングであるSPAMフィルタリングおよびVIRUSフィルタリングの各々について、検査対象となる部分を抽出する。なお、クライアント90からの受信データのプロトコルがMAIL送信プロトコルの場合は、ステップS116~S1123におけるMAILフィルタリング(SPAMフィルタリングおよびVIRUSフィルタリング)が行われ、MAIL受信プロトコルの場合は、当該受信データがメール受信要求に係るデータであるため、当該MAILフィルタリングが行われないよう設定されてもよい。その後、処理はステップS117へ進む。
【0090】
ステップS117では、抽出された検査対象となる部分がそれぞれ、SPAMデータベースコンテナおよびVIRUSデータベースコンテナに送信される。検査対象送信部522は、ステップS116で抽出された、SPAMフィルタリングおよびVIRUSフィルタリングの各々についての検査対象となる部分を、MAILフィルタリングに使用されるフィルタ条件データベース65を備えるSPAMデータベースコンテナおよびVIRUSデータベースコンテナに送信する。その後、処理はステップS118へ進む。なお、図14には、ステップS117~S121において、MAILフィルタコンテナとSPAMデータベースコンテナとの間で行われるデータ処理のみを示しているが、MAILフィルタコンテナとVIRUSデータベースコンテナとの間においても、ステップS117~S121と同様の処理が行われる。MAILフィルタコンテナとVIRUSデータベースコンテナとの間で行われるデータ処理は、ステップS117~S121と同様の処理であるため、説明を省略する。
【0091】
ステップS118では、MAILデータベースコンテナ60において、検査対象となる部分が受信される。検査対象受信部61は、ステップS117で送信された、検査対象となる部分を受信する。その後、処理はステップS119へ進む。
【0092】
ステップS119では、SPAMデータベースコンテナ60において、検査対象となる部分がフィルタ条件に合致するか否か判定される。判定部62は、ステップS118で受信された検査対象となる部分が、フィルタ条件データベース65に保持されたフィルタ条件に合致するか否かを判定する。その後、処理はステップS120へ進む。
【0093】
ステップS120では、判定結果がMAILフィルタコンテナ#1に通知(送信)される。判定結果通知部63は、ステップS119で判定された判定結果をMAILフィルタコンテナ#1に送信する。その後、処理はステップS121へ進む。
【0094】
ステップS121では、MAILフィルタコンテナ#1において、判定結果が受信される。判定結果受信部523は、ステップS120で送信された判定結果を受信する。その後、処理はステップS122へ進む。
【0095】
ステップS122では、MAILフィルタコンテナ#1において、判定結果に基づき宛先へのデータ転送可否が判定される。ステップS121で受信された判定結果に基づき、転送可否判定部524が、クライアント90から送信されたデータの宛先への転送を許可できないと判定した場合、データ転送を拒否することを示す拒否通知が通信検査装置20に送信され、処理はステップS123へ進む。一方、転送可否判定部524が、クライアント90から送信されたデータの宛先への転送を許可してよいと判定した場合、処理はステップS124へ進む。
【0096】
ステップS123では、データの転送についての拒否処理が行われる。実施形態では、拒否処理部33は、クライアント90へデータ転送を拒否することを示すメールを送信する。その後、本フローチャートに示された処理は終了する。
【0097】
ステップS124では、宛先への転送が許可されたデータの次転送先が決定される。転送部53は、ステップS115で取得されたデータの送信元IPアドレス「192.168.1.2」に基づき、コンテナ用経路テーブル55を参照することで、当該データの転送先を、「172.16.129.100(通信検査装置(データ送信部24))」と決定する。その後、処理はステップS125へ進む。
【0098】
ステップS125では、データが次転送先に転送される。転送部53は、ステップS115で取得されたデータを、ステップS124で決定された転送先へ転送する。本実施形態では、転送部53が、取得されたデータをデータ送信部24へ転送する。その後、処理はステップS126へ進む。
【0099】
ステップS126では、MAILフィルタコンテナ#1から転送されたデータが受信される。データ送信部24は、ステップS125で転送された、クライアント90からのデータを受信する。その後、処理はステップS127へ進む。
【0100】
ステップS127では、データが宛先へ転送される。データ送信部24は、ステップS126で受信したデータを、宛先であるサーバー80へ転送する。その後、本フローチャートに示された処理は終了する。上述した方法により、クライアント90からのデータのうち、当該クライアント90が必要とする全ての検査を完了し、当該検査で転送許可と判定されたデータのみを、サーバー80に送信することが出来る。
【0101】
また、上述した方法により、各アプリケーションを独立化させることが可能となり、アプリケーションの更新の際、他のコンテナ内のアプリケーションや通信検査装置(コンテナ外)内のアプリケーション等に対する影響を抑えることが出来るため、従来の通信検査装置における検査と比較して、検査の継続性を高めることが出来る。また、検査がコンテナ型の仮想端末で実行されることにより、従来の仮想マシンと比較し、アプリケーションの更新等の際に必要となる仮想環境の停止や起動を高速で行うことができるため、従来の通信検査装置や仮想マシン上で検査が行われる場合と比較して、検査の継続性を高めることが出来る。
【0102】
なお、図13から図15では、クライアント90の要する検査項目(契約情報)が、IPフィルタリングおよびMAILフィルタリングである場合について例示したが、他の契約状況(他のフィルタリングの組み合わせ)の場合も同様に、フィルタコンテナを経由することで当該コンテナにおいて検査が実行される。例えば、図9の契約情報テーブル32の第1レコード(ユーザ1、IP)に示される通り、ユーザ1から受信されたデータ(IPパケット)は全て、IPフィルタコンテナを経由し転送される。また、図9の契約情報テーブル32の第3レコード(ユーザ3、IPとURL)に示される通り、ユーザ3から受信されたデータ(IPパケット)は全てIPフィルタコンテナに転送され、その後、当該データのうちHTTP等関連のデータについては更にURLフィルタコンテナに転送される。また、図9の契約情報テーブル32の第4レコード(ユーザ4、IPとURLとHTTPS)に示される通り、ユーザ4から受信されたデータ(IPパケット)のうち、HTTPS関連のデータについてはHTTPSフィルタコンテナに転送され、その他のデータについてはIPフィルタコンテナに転送される。
【0103】
また、本実施形態のように、同一クライアントからのデータであっても、当該データのプロトコルの種類に応じて、転送先のフィルタコンテナを変えるようにしてもよい。例えば、ユーザ2から受信されたMAILに関するデータについては、IPフィルタコンテナ#2へ、ユーザ2から受信されたデータのうちMAILに関するデータ以外のデータについては、IPフィルタコンテナ#1へ転送されるようにしてもよい。なお、本実施形態では、複数のクライアント90が、同一のフィルタコンテナやデータベースコンテナを使用することとしたが、これに限るものではなく、通信検査装置20が、クライアント90専用または複数のクライアント90からなるグループ専用のフィルタコンテナやデータベースコンテナを備えるようにしてもよい。
【0104】
また、本実施形態では、受信パケットのプロトコル種類に応じたマーク情報が当該パケットに付与され、当該マーク情報およびルールに基づき、当該パケットについて参照すべき経路テーブルが決定され、当該パケットの次転送先が決定される。そのため、経路テーブルおよびコンテナ用経路テーブルにおいてプロトコル情報(ポート番号やマーク情報等)は格納されていない。しかし、本開示の実施の態様はこれに限定されるものではなく、他の実施形態として、受信パケットにプロトコル種類に応じたマーク情報が付与されず、経路テーブルやコンテナ用経路テーブルにプロトコル情報が格納され、当該パケットの宛先ポート番号等と照合することで、当該パケットの次転送先が決定されるようにしてもよい。また、他の実施形態として、本実施形態と同様、受信パケットにプロトコル種類に応じたマーク情報が付与されるものの、ルールの設定は行わず、経路テーブルやコンテナ用経路テーブルにマーク情報を格納することで、当該経路テーブルのマーク情報と当該パケットに付与されたマーク情報を照合することで、次転送先が決定されるようにしてもよい。
【0105】
図16および図17は、本実施形態に係る応答パケット処理の流れの概要を示すフローチャートである。本実施形態では、IPフィルタリングおよびMAILフィルタリングの検査を必要とするクライアント90(IPアドレスが「192.168.1.2」)からの、MAILに関連するデータに対するサーバー80からの応答データ(応答パケット)の処理を例示する。本実施形態に係るパケット処理は、通信検査装置20によって、ネットワーク上を流れるサーバー80からの応答パケットが受信されたことを契機として実行される。
【0106】
ステップS201では、応答パケットを受信し、当該パケットに係るコネクションの管理およびパケットへのマーク付与が行われる。応答データ取得部25が、サーバー80からクライアント90への応答パケットを受信すると、コネクション管理部34は、受信したパケットに係るコネクションがコネクション管理テーブル36に格納されているか否かを確認する。当該パケットに係るコネクションが格納されていない場合(初めてのコネクションの場合)、コネクション管理部34は、当該コネクションに関するコネクション情報をコネクション管理テーブル36に格納する。この際、コネクション管理部34は、受信パケットの送信元ポート番号を参照することで当該パケットのプロトコルを判定し、判定されたプロトコルの種類に対応するマーク情報を格納する。応答データ取得部25は、パケットに設定された送信元IPアドレス、送信元ポート番号および宛先IPアドレスに基づき、コネクション管理テーブル36を参照することで、当該パケットに対応するコネクションに付与されたマークと同一のマークをパケットに付与する。本実施形態では、サーバー80からのパケットに係るコネクションについての情報が格納されるが、この際、当該パケットのプロトコル(MAIL関連)に基づくマーク情報としてマーク「2」が格納され、且つ取得されたデータに対してマーク2が付与される。その後、処理はステップS202へ進む。
【0107】
ステップS202では、データの次転送先が決定される。第二転送部26は、ステップS201で取得された応答データに付与されたマーク情報「2」および宛先IPアドレス「192.168.1.2」に基づき、第二経路テーブル31を参照することで、当該応答データの転送先を、「172.16.129.13(MAILフィルタコンテナ#1)」と決定する。具体的には、経路設定部23により設定された、宛先IPアドレス「192.168.1.2」のマーク情報「2」に係るデータは、第二経路テーブル#1(図8)を参照することとのルールに基づき、第二転送部26は、図8に示す第二経路テーブルを参照することで次転送先を決定する。その後、処理はステップS203へ進む。
【0108】
ステップS203では、応答データが次転送先に転送される。第二転送部26は、ステップS201で取得されたデータを、ステップS202で決定された転送先へ転送する。本実施形態では、取得されたデータをMAILフィルタコンテナ#1へ転送する。その後、処理はステップS204へ進む。
【0109】
ステップS204では、MAILフィルタコンテナ#1において、転送されたデータが受信される。転送データ受信部51は、ステップS203で転送された、サーバー80からの応答データを受信する。その後、処理はステップS205へ進む。
【0110】
ステップS205では、MAILフィルタコンテナ#1において、検査対象となる部分のデータが抽出される。抽出部521は、例えば、ステップS204で受信されたデータから、MAILフィルタリングであるSPAMフィルタリングおよびVIRUSフィルタリングの各々について、検査対象となる部分を抽出する。なお、サーバー80からの応答データのプロトコルがMAIL受信プロトコルの場合は、ステップS205~S212におけるMAILフィルタリング(SPAMフィルタリングおよびVIRUSフィルタリング)が行われ、MAIL送信プロトコルの場合は、当該応答データがメール送信データに対する応答データであるため、当該MAILフィルタリングが行われないよう設定されてもよい。その後、処理はステップS206へ進む。
【0111】
ステップS206では、抽出された検査対象となる部分がそれぞれ、SPAMデータベースコンテナおよびVIRUSデータベースコンテナに送信される。検査対象送信部522は、ステップS205で抽出された、SPAMフィルタリングおよびVIRUSフィルタリングの各々についての検査対象となる部分を、MAILフィルタリングに使用されるフィルタ条件データベース65を備えるSPAMデータベースコンテナおよびVIRUSデータベースコンテナに送信する。その後、処理はステップS207へ進む。なお、図16には、ステップS206~S210において、MAILフィルタコンテナとSPAMデータベースコンテナとの間で行われるデータ処理のみを示しているが、MAILフィルタコンテナとVIRUSデータベースコンテナとの間においても、ステップS206~S210と同様の処理が行われる。MAILフィルタコンテナとVIRUSデータベースコンテナとの間で行われるデータ処理は、ステップS206~S210と同様の処理であるため、説明を省略する。
【0112】
ステップS207では、MAILデータベースコンテナ60において、検査対象となる部分が受信される。検査対象受信部61は、ステップS206で送信された、検査対象となる部分を受信する。その後、処理はステップS208へ進む。
【0113】
ステップS208では、SPAMデータベースコンテナ60において、検査対象となる部分がフィルタ条件に合致するか否か判定される。判定部62は、ステップS207で受信された検査対象となる部分が、フィルタ条件データベース65に保持されたフィルタ条件に合致するか否かを判定する。その後、処理はステップS209へ進む。
【0114】
ステップS209では、判定結果がMAILフィルタコンテナ#1に通知(送信)される。判定結果通知部63は、ステップS208で判定された判定結果をMAILフィルタコンテナ#1に送信する。その後、処理はステップS210へ進む。
【0115】
ステップS210では、MAILフィルタコンテナ#1において、判定結果が受信される。判定結果受信部523は、ステップS209で送信された判定結果を受信する。その後、処理はステップS211へ進む。
【0116】
ステップS211では、MAILフィルタコンテナ#1において、判定結果に基づき宛先へのデータ転送可否が判定される。ステップS210で受信された判定結果に基づき、転送可否判定部524が、サーバー80から送信された応答データのクライアント90への転送を許可できないと判定した場合、データ転送を拒否することを示す拒否通知が通信検査装置20に送信され、処理はステップS212へ進む。一方、転送可否判定部524が、サーバー80から送信された応答データのクライアント90への転送を許可してよいと判定した場合、処理はステップS213へ進む。
【0117】
ステップS212では、データの転送についての拒否処理が行われる。実施形態では、拒否処理部33は、クライアント90へデータ転送を拒否することを示すメールを送信する。その後、本フローチャートに示された処理は終了する。
【0118】
ステップS213では、クライアント90への転送が許可された応答データの次転送先が決定される。転送部53は、ステップS204で取得された応答データの宛先IPアドレス「192.168.1.2」に基づき、コンテナ用経路テーブル55を参照することで、当該応答データの転送先を、「172.16.129.1(通信検査装置(応答データ送信部27))」と決定する。その後、処理はステップS214へ進む。
【0119】
ステップS214では、応答データが次転送先に転送される。転送部53は、ステップS204で取得された応答データを、ステップS213で決定された転送先へ転送する。本実施形態では、転送部53が、取得された応答データを応答データ送信部27へ転送する。その後、処理はステップS215へ進む。
【0120】
ステップS215では、MAILフィルタコンテナ#1から転送されたデータが受信される。応答データ送信部27は、ステップS214で転送された、サーバー80からの応答データを受信する。その後、処理はステップS216へ進む。
【0121】
ステップS216では、応答データがクライアント90に転送される。応答データ送信部27は、ステップS215で受信したデータを、クライアント90へ転送する。その後、本フローチャートに示された処理は終了する。上述した方法により、クライアント90からのデータに対応する応答データのうち、当該クライアント90が必要とする全ての検査を完了し、当該検査で転送許可と判定された応答データのみを、クライアント90に送信することが出来る。
【0122】
図16および図17では、クライアント90の要する検査項目(契約情報)が、IPフィルタリングおよびMAILフィルタリングである場合について例示したが、他の契約状況の場合も同様に、フィルタコンテナを経由することで当該コンテナにおいて検査が実行される。例えば、図9の契約情報テーブル32の第4レコード(ユーザ4、IPとURLとHTTPS)に示される通り、ユーザ4からのコンテンツ要求に対応する応答データ(IPパケット)のうち、HTTPS関連の応答データについてはHTTPSフィルタコンテナに転送され、VIRUSデータベース等に基づき検査が実行される。
【0123】
図18は、本実施形態に係るアプリケーション更新(少量モジュールの更新)処理の流れの概要を示すフローチャートである。本実施形態では、MAILフィルタリングに係るアプリケーション内の少量のモジュールについて更新処理が必要な場合を例示する。本実施形態に係るパケット処理は、通信検査装置20によって、MAILフィルタリングに係るアプリケーションサーバーからのアプリケーションの更新通知および更新用データが受信されたことを契機として実行される。
【0124】
ステップS301では、更新通知および更新用データが受信される。コンテナ管理部28は、アプリケーションサーバーから、MAILフィルタリングに係るアプリケーション(少量モジュール)の更新について、更新通知および更新用データを受信する。その後、処理はステップS302へ進む。
【0125】
ステップS302では、稼働中でないコンテナが決定される。コンテナ管理部28は、ステップS302で受信された更新通知に係るアプリケーションが実装された複数のMAILフィルタコンテナのうち、稼働中でないコンテナ(MAILフィルタコンテナ#2)を決定する。コンテナ管理部28は、例えば、経路設定部23により、経路テーブル30、31およびコンテナ用経路テーブル55に、データの転送経路として使用するよう設定されていないMAILフィルタコンテナを抽出することで、稼働中でないコンテナを決定してもよい。その後、処理はステップS303へ進む。
【0126】
ステップS303では、フィルタコンテナ50に更新要求および更新用データが送信される。コンテナ管理部28は、ステップS302で決定された稼働中でないフィルタコンテナであるMAILフィルタコンテナ#2へ、ステップS301で受信された更新通知および更新用データを送信する。その後、処理はステップS304へ進む。
【0127】
ステップS304では、MAILフィルタコンテナ#2において、更新要求および更新用データを受信する。更新部54は、ステップS303で送信された更新要求および更新用データを受信する。その後、処理はステップS305へ進む。
【0128】
ステップS305では、MAILフィルタコンテナ#2において、アプリケーションが更新される。更新部54は、ステップS304で受信した更新用データを使用することにより、MAILフィルタリングに係るアプリケーションを更新する。当該更新処理に伴い、フィルタコンテナの起動、停止が必要な場合は、起動、停止処理をアプリケーションの更新と併せて行うようにしてもよい。その後、処理はステップS306へ進む。
【0129】
ステップS306では、アプリケーションの更新完了通知が送信される。更新部54は、MAILフィルタリングに係るアプリケーションの更新処理が完了した後、通信検査装置20へ更新完了通知を行う。その後、処理はステップS307へ進む。
【0130】
ステップS307では、通信検査装置20において、アプリケーションの更新完了通知が受信される。コンテナ管理部28は、ステップS306で送信された更新完了通知を受信する。その後、処理はステップS308へ進む。
【0131】
ステップS308では、データ転送(経路)に使用されるフィルタコンテナとして、アプリケーションの更新が完了したフィルタコンテナが設定される。コンテナ管理部28は、経路テーブルおよびコンテナ用経路テーブルを更新することで、データ転送に使用されるMAILフィルタコンテナを、稼働中のMAILフィルタコンテナ#1から、アプリケーションの更新が完了したMAILフィルタコンテナ#2に切り替える。その後、本フローチャートに示された処理は終了する。
【0132】
このように、アプリケーション内の少量のモジュールについて更新が必要な場合は、通信検査装置20からの更新要求に従い、当該アプリケーションが実装された稼働中でないフィルタコンテナ50において当該アプリケーションの更新処理が行われる。
【0133】
上述した方法により、アプリケーションの更新の際に稼働中のコンテナを長時間停止する必要がなく、データの転送経路に使用されるコンテナを、現在稼働中のコンテナから、更新後のアプリケーションが実装されたコンテナに切り替えるだけで、当該転送経路に使用されるコンテナにおけるアプリケーションの更新処理を完了させることができる。換言すれば、アプリケーションの更新に伴う仮想端末の再起動等が不要となるため、当該アプリケーションを使用することができない時間が大幅に削減され、検査の継続性を高めることが出来る。
【0134】
なお、図18では、フィルタコンテナ50におけるアプリケーションの更新処理について例示したが、データベースコンテナ60における更新処理についても、当該フィルタコンテナの場合と同様の流れにより行われる。具体的には、データベースコンテナ60が備える更新部64が、コンテナ管理部28から、フィルタ条件データベース65や当該データベースを管理するアプリケーションについての更新要求および更新用データを受信することで、フィルタ条件データベース65や当該アプリケーションを更新する。
【0135】
図19は、本実施形態に係るアプリケーション更新(大量モジュールの更新)処理の流れの概要を示すフローチャートである。本実施形態では、MAILフィルタリングに係るアプリケーション内の大量のモジュールについて更新処理が必要な場合を例示する。本実施形態に係るパケット処理は、通信検査装置20によって、MAILフィルタリングに係るアプリケーションサーバーからのアプリケーションの更新通知および更新用データが受信されたことを契機として実行される。
【0136】
ステップS401では、更新通知および更新用データが受信される。コンテナ管理部28は、アプリケーションサーバーから、MAILフィルタリングに係るアプリケーション(大量モジュール)の更新について、更新通知および更新用データを受信する。その後、処理はステップS402へ進む。
【0137】
ステップS402では、更新後のアプリケーションが実装されたフィルタコンテナが新たに構築(作成)される。本実施形態では、コンテナ管理部28は、ステップS401で受信された更新用データを使用することにより、更新前のアプリケーションで稼働中のMAILフィルタコンテナ#1とは別に、更新後のアプリケーションが実装されたMAILフィルタコンテナ#2を新たに構築する。その後、処理はステップS403へ進む。
【0138】
ステップS403では、データ転送(経路)に使用されるフィルタコンテナとして、アプリケーションの更新が完了したフィルタコンテナが設定される。コンテナ管理部28は、経路テーブルおよびコンテナ用経路テーブルを更新することで、データ転送に使用されるMAILフィルタコンテナを、稼働中のMAILフィルタコンテナ#1から、アプリケーションの更新が完了したMAILフィルタコンテナ#2に切り替える。その後、本フローチャートに示された処理は終了する。
【0139】
このように、アプリケーション内の大量のモジュールについて更新が必要な場合は、通信検査装置20において、当該アプリケーションに対応するセキュリティ検査項目について、更新後のアプリケーションが実装された稼働中でないフィルタコンテナが新たに構築される。
【0140】
上述した方法により、アプリケーション内の少量のモジュールを更新する場合と同様に、アプリケーションの更新に伴う仮想端末の再起動等が不要となり、当該アプリケーションを使用することができない時間が大幅に削減され、検査の継続性を高めることが出来る。
【0141】
図20は、本実施形態に係る経路設定処理の流れの概要を示すフローチャートである。当該経路設定処理は、通信検査装置20による検査が実施される前の準備処理として行われるものであるが、契約情報テーブル32の各項目に変更が生じた場合は、適宜経路設定(転送経路の変更)が行われる。本実施形態では、管理者であるクライアント90等やVPNサーバー等からクライアントのアドレス情報が受信されたことを契機として実行される。
【0142】
ステップS501では、クライアント90のアドレス情報が受信される。契約情報設定部29は、例えば、固定IPアドレスを有するクライアント90についてのIPアドレスを、当該クライアント90または当該クライアント90を管理する管理者であるクライアント90から受信する。本実施形態では、例えばユーザ2についてのIPアドレス「192.168.1.2」が受信される。その後、処理はステップS502へ進む。
【0143】
ステップS502では、契約情報(クライアントが要する検査項目)が受信される。契約情報設定部29は、クライアント90または複数の当該クライアント90を管理する管理者であるクライアント90等から、契約情報を受信する。本実施形態では、例えばユーザ2についての契約情報である、「ユーザ2が検査項目「IP(フィルタリング)、MAIL(フィルタリング)」を要する」との情報が受信される。
【0144】
なお、ステップS501~ステップS502は順不同であり、契約情報設定部29によりクライアント90の契約情報が取得された後に、契約情報設定部29よりクライアント90のアドレス情報が取得されるようにしてもよい。また、契約情報設定部29により、クライアント90のアドレス情報および契約情報が同時に取得されるようにしてもよい。その後、処理はステップS503へ進む。
【0145】
ステップS503では、クライアント90のアドレス情報および契約情報が保持される。契約情報設定部29は、ステップS501で取得されたクライアント90のアドレス情報およびステップS502で取得された当該クライアント90の契約情報を関連付けて、契約情報テーブル32に記憶する。本実施形態では、例えば、ユーザ2について、アドレス情報「192.168.1.2」、および、契約情報「IP(フィルタリング)、MAIL(フィルタリング)を行うこと」が関連付けられて契約情報テーブル32に記憶される。その後、処理はステップS504へ進む。
【0146】
ステップS504では、各経路テーブルが作成または更新される。経路設定部23は、契約情報テーブル32に基づき、データの転送経路を決定し、参照すべき経路テーブル(第一経路テーブルや第二経路テーブル)を指定するルール、および、第一経路テーブル30、第二経路テーブル31、コンテナ用経路テーブル55を作成または更新する。本実施形態では、例えば経路設定部23は、図9の契約情報テーブル32の第2レコード「ユーザ2、IPアドレス「192.168.1.2」、検査項目「IP(フィルタリング)、MAIL(フィルタリング)」」に基づき、ユーザ2からのMAILに関するデータおよび対応する応答データが、通信検査装置(第一転送部22)、IPフィルタコンテナ#2、MAILフィルタコンテナ#1、通信検査装置(データ送信部24)、通信検査装置(第二転送部26)、MAILフィルタコンテナ#1、通信検査装置(応答データ送信部27)の順に転送されるよう転送経路を決定する。そして、経路設定部23は、ユーザ2から受信したMAILに関するデータが当該転送経路により転送されるよう、前記ルールおよび、図7図8図11図12に例示されるように、第一経路テーブル30、第二経路テーブル31、コンテナ用経路テーブル55を作成または更新する。その後、本フローチャートに示された処理は終了する。
【0147】
上述した方法により、クライアント90から受信されたデータについて、当該クライアント90が要する検査が実行されるよう、当該検査に対応するコンテナを経由する転送経路を決定することができる。
【0148】
なお、通信検査装置20やその他の情報処理装置において、フィルタコンテナおよびデータベースコンテナのログが収集されるようにしてもよい。例えば、フィルタコンテナから、各クライアントについて、どのような検査が実行されその検査結果がどのようなものであったかを示すログを収集し、当該ログをクライアント等に提供するようにしてもよい。また、例えば、データベースコンテナから、ネットワーク上の脅威情報を収集し、ネットワーク上の脅威についての傾向を把握する等に活用するようにしてもよい。
【0149】
図21は、本実施形態に係るアプリケーション更新に伴うコンテナ切り替え処理の流れの概要を示すフローチャートである。図18図19では、アプリケーションの更新に伴い、データの転送経路に使用するフィルタコンテナが、更新前の当該アプリケーションが実装された現在稼働中のフィルタコンテナ(旧コンテナ)から、更新後のアプリケーションが実装されたフィルタコンテナ(新コンテナ)へ、一括して切り替えられる。ここで、データが複数のパケットに分割して送信される場合や、通信の整合性確認のため行きのパケットと戻りのパケット(応答データ)が同一のフィルタコンテナを通過する場合(HTTP、HTTPS関連等)等には、上記のようにフィルタコンテナが一括して切り替えられることにより、コネクションが切断されてしまう可能性がある。図21では、このようなアプリケーションの更新に伴うフィルタコンテナの切り替えによるコネクションの切断の発生を防止する、コンテナ切り替え処理を例示する。
【0150】
具体的には、アプリケーション更新の際、確立済のコネクション(既存コネクション)については、当該アプリケーションを実装したフィルタコンテナの切り替えを一定期間行わず、現在稼働中の旧コンテナの使用を継続し、一定期間経過後に更新後のアプリケーションを実装した新コンテナを通過する新経路に切り替える。
【0151】
本実施形態では、HTTPSフィルタリングに係るアプリケーションについて更新処理が必要な場合を例示する。本実施形態に係るパケット処理は、通信検査装置20によって、HTTPSフィルタリングに係るアプリケーションサーバーからのアプリケーションの更新通知および更新用データが受信されたことを契機として実行される。
【0152】
ステップS601では、更新通知および更新用データが受信される。コンテナ管理部28は、アプリケーションサーバーから、HTTPSフィルタリングに係るアプリケーションの更新について、更新通知および更新用データを受信する。その後、処理はステップS602へ進む。
【0153】
ステップS602では、アプリケーション更新済みのHTTPSフィルタコンテナ#2が構築される。具体的には、図18(少量モジュールの更新)のステップS302~ステップS307または図19(大量モジュールの更新)のステップS402と同様の処理が行わる。本実施形態では、HTTPSフィルタコンテナ#1が稼働中のコンテナであり、アプリケーションの更新が完了した稼働中でないHTTPSフィルタコンテナ#2が構築される。その後、処理はステップS603へ進む。
【0154】
ステップS603では、アプリケーションの更新が完了したフィルタコンテナが起動される。コンテナ管理部28は、アプリケーションの更新が完了したHTTPSフィルタコンテナ#2を起動する。その後、処理はステップS604へ進む。
【0155】
ステップS604では、コネクション管理テーブル35、36に格納された既存コネクションに、既存コネクションであることを示すマーク(既存コネクションマーク)が付与される。コネクション管理部34は、コネクション確認時点でコネクション管理テーブル35、36に格納されているコネクション、すなわち、その時点でクライアント90とサーバー80との間で接続中のコネクションを既存コネクションであると決定(判定)する。そして、コネクション管理部34は、各既存コネクションについて、コネクション管理テーブル35、36のマーク情報の欄に既存コネクションマークを付与する。なお、既存コネクションマークは、プロトコルの種類により定められたマークとは異なるマークとなるよう、例えば9や10等、任意に設定可能である。
【0156】
図22は、本実施形態に係るコネクション管理テーブルの構成を示す図である。図示するように、本実施形態に係るコネクション管理テーブルには、既存コネクションAとして、ユーザ4(送信元IPアドレスが「192.168.1.4」、送信元ポート番号が「55555」)とサーバー(宛先IPアドレスが「8.8.8.8」、宛先ポート番号が「443」)との間のコネクションが格納されている。コネクション管理部34は、当該コネクションを既存コネクションであると決定し、コネクション管理テーブルの対応するレコード(マーク情報の欄)に既存コネクションマーク「9」を付与する。なお、当該コネクションは、既存コネクションマークを付与される以前は、宛先ポート番号「443」に基づきHTTPS関連のコネクションであると判定され、例えばマーク「1」が付与されていたものである。
【0157】
また、コネクション管理テーブルに既存コネクションが付与された後に新たに確立されたコネクションについては、図13のステップS101の処理と同様の方法でマークの付与が行われる。具体的には、図22のコネクション管理テーブルの第二レコードに例示されるように、コネクション確認後に新たに確立されたコネクションには、通常通りプロトコルに基づくマーク情報(例えば、1)が付与される。図22の第二レコードは、既存コネクションAと同一のユーザーおよびサーバー間で同一のプロトコルのコネクション(送信元ポート番号のみが異なるコネクション)が新たに確立された際に、当該コネクションの情報が格納されたものである。その後、処理はステップS605へ進む。
【0158】
ステップS605では、既存コネクションに該当する受信パケットに、既存コネクションマークの付与が開始される。通信検査装置20は、受信したパケットが、既存コネクションに該当する(既存コネクションを通過する)場合、当該受信したパケットに、ステップS604で付与した既存コネクションマークを付与する。例えば、受信したパケットの送信元IPアドレス、送信元ポート番号、宛先IPアドレスおよび宛先ポート番号の組み合わせが、既存コネクションのこれらの組み合わせと一致する場合に、当該パケットに既存コネクションマークが付与される。本実施形態では、コネクション管理テーブル35、36を参照することにより、クライアント90から受信したパケットについては、通信検査装置20におけるデータ取得部21が、サーバー80から受信した応答パケットについては、通信検査装置20における応答データ取得部25が、既存コネクションマークを付与する。なお、当該既存コネクションマークの付与は、上述したパケットのマーク機能により行う。その後、処理はステップS606へ進む。
【0159】
ステップS606では、HTTPSフィルタコンテナ#1を通過する既存コネクション(旧経路)の切替先経路として、アプリケーションの更新が完了したHTTPSフィルタコンテナ#2を通過する新たな経路が設定される。本実施形態では、経路設定部23は、HTTPSフィルタコンテナ#1(IPアドレス「172.16.129.21」)を通過する旧経路とは別に、旧経路において通過するHTTPSフィルタコンテナがHTTPSフィルタコンテナ#2(IPアドレス「172.16.129.22」)となるよう新経路を設定する。具体的には、経路設定部23は、更新に係るアプリケーションを実装した旧コンテナの前後に位置し、当該旧コンテナにデータを転送するバランサー、アウトバウンド、およびフィルタコンテナにおいて、旧経路が設定されている経路テーブルおよびコンテナ用経路テーブルとは別に、新コンテナを転送先とする新経路を設定した経路テーブルおよびコンテナ用経路テーブルを作成する。本実施形態では、HTTPSフィルタコンテナ#1の前後に位置するバランサーおよびアウトバウンドにおいて、新経路が設定された経路テーブル(第一経路テーブルおよび第二経路テーブル)が新たに作成される。
【0160】
図23および図24は、本実施形態に係る第一経路テーブルの構成を示す図である。図23は、HTTPSフィルタコンテナ#1(IPアドレス「172.16.129.21」)を通過する旧経路が設定された第一経路テーブルAであり、図24は、アプリケーションの更新が完了したHTTPSフィルタコンテナ#2(IPアドレス「172.16.129.22」)を通過する新経路が設定された第一経路テーブルBである。ステップS606では、例えば、第一経路テーブルAとは別に、第一経路テーブルBが作成される。同様に、第二経路テーブルについても、新たに新経路が設定された第二経路テーブルが作成される。
【0161】
また、ステップS606では、経路設定部23は、既存コネクションマークが付与されていないパケットについては新経路が設定された経路テーブルを参照し、既存コネクションマークが付与されているパケットについては旧経路が設定された経路テーブルを参照するよう、ルールを設定する。本実施形態では、例えば、既存コネクションマーク「9」が付与されていないパケットについては、第一経路テーブルBを参照し、既存コネクションマーク「9」が付与されたパケットについては、第一経路テーブルAを参照するよう、ルール設定が行われる。なお、ステップS603とステップS604~S606とは順不同であり、コネクション管理テーブルや受信パケットに既存コネクションマークが付与された後に、HTTPSフィルタコンテナ#2が起動されてもよい。その後、処理はステップS607へ進む。
【0162】
ステップS607では、ステップS605で開始した受信パケットへの既存コネクションマーク付与を終了し、経路テーブルおよびコンテナ用経路テーブルから旧経路が削除される。データ取得部21および応答データ取得部25は、ステップS606実行後一定期間(時間)が経過した後、受信パケットに対する既存コネクションマークの付与を終了する。また、経路設定部23は、更新に係るアプリケーションを実装した旧コンテナの前後に位置するバランサー、アウトバウンド、およびフィルタコンテナにおける経路テーブルにおいて、旧コンテナを転送先とする旧経路を削除する。さらに、既存コネクションマークが付与されているパケットについては旧経路が設定された経路テーブルを参照するよう設定されたルールを削除するようにしてもよい。
【0163】
なお、更新に係るアプリケーションを実装したフィルタコンテナを通過しない既存コネクションについては、ステップS607において、経路テーブルから旧経路を削除する代わりに、マーク情報の欄の既存コネクションマークを削除し、プロトコル種別に基づくマーク情報の付与を行う。これにより、当該コネクションについては、パケットへの既存コネクションマーク付与終了後も、引き続き既存コネクションを使用可能とする。
【0164】
このように、ステップS606の後、一定期間経過後にステップS607の処理が行われることで、当該期間中に全既存コネクション(または大半の既存コネクション)が終了すること、即ち、旧コンテナを使用するコネクションが終了することが期待され、これにより、コンテナ切り替えによる既存コネクション切断の発生を防止することが可能となる。なお、受信パケットへのマーク付与終了と旧経路削除との間には、時間間隔(タイムラグ)が生じてもよい。なお、経路テーブルから旧経路が削除される代わりに、旧経路が設定された経路テーブル(例えば、第一経路テーブルA)が削除されるようにしてもよい。その後、処理はステップS608へ進む。
【0165】
ステップS608では、更新前のアプリケーションを実装したHTTPSフィルタコンテナ#1が更新される。具体的には、図18のステップS303~ステップS307と同様の処理が行わる。その後、本フローチャートに示された処理は終了する。
【0166】
なお、本実施形態では、ステップS604において、コネクション管理テーブルに格納されている全てのコネクションについて既存コネクションマークが付与されるが、これに限定されるものではなく、フィルタコンテナの切り替えにより接続が切断されてしまうコネクションにのみ既存コネクションマークが付与されるようにしてもよい。また、ステップS606において、新経路が設定された経路テーブルおよびコンテナ用経路テーブルが新たに作成されることとしたが、これに限定されるものではなく、既存の経路テーブルおよびコンテナ用経路テーブルに新経路が追加されるようにしてもよい。
【符号の説明】
【0167】
1 システム
20 通信検査装置
90 クライアント
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24