(57)【要約】【課題】通信フローの解析だけでは得られない情報を利用した柔軟な通信制御を可能にして、高度なセキュリティを確保し得る、通信制御装置、クライアント装置、通信制御方法、及びプログラムを提供する。【解決手段】通信制御装置２００は、クライアント装置１００で実行されるプロセス１０１がサーバ装置３００に対する通信を要求し、それに合わせて、クライアント装置が、要求から抽出した識別情報を送信した場合に、識別情報を受信する、識別情報受信部２０１と、クライアント装置１００からサーバ装置３００に向けて送信された通信フローを受信する、通信フロー受信部２０２と、通信フローのヘッダ部分と識別情報とを照合し、両者が一致するかどうかを判定する、照合部２０７と、照合の結果、ヘッダ部分が識別情報と一致する通信フローが存在する場合に、通信フローに対して設定ルールに基づいて、通信制御を行う、一時制御部２０８と、を備えている。【選択図】図１
2019176273.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置とサーバ装置との間のデータ通信を制御するための装置であって、
前記クライアント装置で実行されるプロセスが前記サーバ装置に対する通信を要求し、それに合わせて、前記クライアント装置が、当該装置に対して、前記要求から抽出した識別情報を送信してきた場合に、前記識別情報を受信する、識別情報受信部と、
前記クライアント装置から前記サーバ装置に向けて送信された通信フローを受信する、通信フロー受信部と、
受信された前記通信フローのヘッダ部分と前記識別情報とを照合し、両者が一致するかどうかを判定する、照合部と、
前記照合部による照合の結果、前記ヘッダ部分が前記識別情報と一致する通信フローが存在する場合に、当該通信フローに対して、設定ルールに基づいて、通信制御を行う、制御部と、
を備えている、
ことを特徴とする通信制御装置。
【請求項２】
請求項１に記載の通信制御装置であって、
前記制御部による前記通信制御の内容に応じて、受信された前記通信フローに含まれるデータの解析を行う、解析部と、
前記データの解析の結果に応じて、前記データの解析対象となった前記通信フローに対して、通信制御を行う、第２の制御部と、
を備えている、
ことを特徴とする通信制御装置。
【請求項３】
請求項２に記載の通信制御装置であって、
前記制御部が、前記設定ルールに基づいて、前記通信制御として、当該通信フローに対する、データ解析、送信の許可、及び廃棄のうちのいずれかを選択し、送信の許可又は廃棄を選択した場合は選択した処理を実行し、
前記制御部が、前記通信制御として、前記データ解析を選択した場合に、前記解析部が、受信された前記通信フローに含まれるデータの解析を行い、
前記第２の制御部が、前記データの解析の結果に応じて、前記通信制御として、前記データの解析対象となった前記通信フローに対する、送信の許可又は廃棄を実行する、
ことを特徴とする通信制御装置。
【請求項４】
請求項２又は３に記載の通信制御装置であって、
前記識別情報が、ヘッダ識別情報、前記プロセスを識別するためのプロセス識別情報、及び前記クライアント装置を識別するためのクライアント識別情報を含み、
前記照合部が、受信された前記通信フローのヘッダ部分と、前記識別情報に含まれる前記ヘッダ識別情報とを照合し、
前記制御部が、ヘッダ識別情報、プロセス識別情報、及びクライアント識別情報それぞれの内容に応じて通信制御の内容を決定するルールに基づいて、通信制御を行い、
前記解析部が、前記データの解析によって、受信された前記通信フローから、それに含まれるデータの内容を特定するデータ識別情報を抽出し、
前記第２の制御部が、ヘッダ識別情報、プロセス識別情報、クライアント識別情報、及びデータ識別情報それぞれの内容に応じて通信制御の内容を決定するルールに基づいて、通信制御を行う、
ことを特徴とする通信制御装置。
【請求項５】
サーバ装置及び通信制御装置とデータ通信を行う装置であって、
当該装置で実行されるプロセスが前記サーバ装置に対する通信を要求した場合に、前記
要求から、識別情報を抽出する、識別情報抽出部と、
抽出された前記識別情報を、前記通信制御装置に送信する、識別情報送信部と、
を備えている、
ことを特徴とするクライアント装置。
【請求項６】
クライアント装置とサーバ装置との間のデータ通信を制御するための方法であって、
（ａ）前記クライアント装置で実行されるプロセスが前記サーバ装置に対する通信を要求し、それに合わせて、前記クライアント装置が、前記要求から抽出した識別情報を送信してきた場合に、前記識別情報を受信する、ステップと、
（ｂ）前記クライアント装置から前記サーバ装置に向けて送信された通信フローを受信する、ステップと、
（ｃ）受信された前記通信フローのヘッダ部分と前記識別情報とを照合し、両者が一致するかどうかを判定する、ステップと、
（ｄ）前記（ｃ）のステップによる照合の結果、前記ヘッダ部分が前記識別情報と一致する通信フローが存在する場合に、当該通信フローに対して、設定ルールに基づいて、通信制御を行う、ステップと、
を有する、
ことを特徴とする通信制御方法。
【請求項７】
コンピュータによって、クライアント装置とサーバ装置との間のデータ通信を制御するためのプログラムであって、
前記コンピュータに、
（ａ）前記クライアント装置で実行されるプロセスが前記サーバ装置に対する通信を要求し、それに合わせて、前記クライアント装置が、前記要求から抽出した識別情報を送信してきた場合に、前記識別情報を受信する、ステップと、
（ｂ）前記クライアント装置から前記サーバ装置に向けて送信された通信フローを受信する、ステップと、
（ｃ）受信された前記通信フローのヘッダ部分と前記識別情報とを照合し、両者が一致するかどうかを判定する、ステップと、
（ｄ）前記（ｃ）のステップによる照合の結果、前記ヘッダ部分が前記識別情報と一致する通信フローが存在する場合に、当該通信フローに対して、設定ルールに基づいて、通信制御を行う、ステップと、
を実行させる、
ことを特徴とするプログラム。
【請求項８】
コンピュータによって、サーバ装置及び通信制御装置とデータ通信を行うためのプログラムであって、
前記コンピュータに、
（ａ）当該コンピュータで実行されるプロセスが前記サーバ装置に対する通信を要求した場合に、前記要求から、識別情報を抽出する、ステップと、
抽出された前記識別情報を、前記通信制御装置に送信する、ステップと、
実行させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント装置とサーバ装置との間の通信制御を行うための、通信制御装置、それに用いられるクライアント装置、及び通信制御方法に関し、更には、これらを実現するためのプログラムに関する。
【背景技術】
【０００２】
近年、外部犯によるサイバー攻撃、マルウェアに感染した内部端末からの情報漏えい等のセキュリティ事故が多発している。セキュリティ事故多発の背景として、ＩＰヘッダの偽装、ヘッダ部を正常に見せながらのデータ部へのウイルスの埋め込み等、不正ユーザの攻撃手法が多様化しており、従来の通信フローフィルタリング型のファイアウォールでは、このような攻撃に対応しきれない現状がある。
【０００３】
上記の問題を解決する技術がいくつか提案されている（例えば、非特許文献１及び特許文献１参照）。代表的な技術としてＤＰＩ（Deep Packet Inspection）が挙げられる。ＤＰＩは、通信フローのヘッダ部分ではなくデータ部を解析する技術であり、ＤＰＩを利用して通信制御を行うことで、データ部分に埋め込まれたウイルス、及び許可されたアプリケーションの不正な通信を検出できる。
【０００４】
非特許文献１は、ＳＳＬ（Secure Sockets Layer）により通信が暗号化されている場合においても、ＤＰＩを利用した通信制御を行うことができる装置を開示している。非特許文献１に開示された装置は、クライアントからサーバに対してＳＳＬ通信を行う際、ＳＳＬプロキシによってＳＳＬ通信を終端させ、通信フローの復号を行う。その後、当該装置は、復号された通信フローに対してＤＰＩを行い、解析結果に問題がなければ再び暗号化して本来の宛先との間で新たにＳＳＬ通信を行い、問題があれば遮断することで、暗号化通信の制御を実現している。なお、ＤＰＩは、ＳＳＬプロキシ上で行われても良いし、復号した通信フローの転送後に、ＵＴＭ（Unified Threat Management）アプライアンス等の別の機器の上で行われても良い。
【０００５】
また、特許文献１は、ＤＰＩを行うことなく、通信を行うアプリケーションの情報を基に通信制御を行うシステムを開示している。特許文献１に開示されているシステムでは、エージェントが導入された仮想マシンが用いられる。エージェントは、アプリケーションが通信を行う際、ＯＳＩ参照モデルのトランスポート層にネットワークソケットイベント要求が行われると、その要求がトランスポート層に到達する前に、その要求をインターセプトする。その後、エージェントは、通信を行うアプリケーションの識別情報をセキュリティサーバに送信し、インターセプトしたネットワークソケットイベント要求の許可又は拒絶の判断を実行する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１６−５１４２９５公報
【非特許文献】
【０００７】
【非特許文献１】”Blue Coat 商品情報 SSL復号/SSL通信セキュリティ対策 − プロキシ 帯域制御”、［online］、マクニカネットワークス、［2017年10月25日検索］、インターネット〈URL：http://www.macnica.net/bluecoat/ssl_va.html〉
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、非特許文献１に開示されている通信制御装置、及び特許文献１に開示されているシステムには、それぞれ以下のような問題がある。
【０００９】
まず、非特許文献１に開示されている通信制御装置には、通信フローの送信元プロセスに基づく通信制御ができないという問題がある。例えば、内部ネットワークに機密情報が格納されているデータベースがあり、一部のクライアントにのみ、このデータベースへのレコードの更新／挿入／削除が許可されているとする。そして、この一部のクライアントのいずれかがマルウェアに感染し、マルウェアによって、データベースのレコードが、不正に更新、即ち、改ざんされようとしたとする。
【００１０】
このような場合、非特許文献１に開示されている通信制御装置では、どのクライアントからどのような通信フローが送られているのかについては識別できる。しかし、この通信制御装置では、どのプロセスから送られてきた通信フローであるかについては識別できないため、マルウェアのプロセスによるデータベースレコードの改ざんを防ぐことは困難である。
【００１１】
これに対して、特許文献１に開示されているシステムでは、上記の非特許文献１に開示されている通信制御プログラムの問題を解決できると考えられる。具体的には、特許文献１に開示されているシステムは、通信フローの送信元のプロセスを識別できるため、予め許可されていないプロセス、即ち、マルウェア等の不正なプロセスからの通信フローを遮断できる。
【００１２】
しかしながら、特許文献１に開示されているシステムでは、ネットワークソケットイベント要求と要求元アプリケーションの識別情報のみで通信制御が行われ、通信フローのデータ部の検査は行われない。このため、当該システムには、どのような処理を行う通信フローなのかを判断できず、データ部の情報を含めた通信制御を行うことができないという問題が発生する。
【００１３】
具体的には、特許文献１に開示されているシステムには、例えば、特定のユーザには、データベースのレコードの参照のみを許可し、更新／挿入／削除は許可しない、といった柔軟な通信制御ができないという問題がある。
【００１４】
また、送信元及び送信先のＩＰアドレス、ポート番号等のトランスポート層以下の情報と、アプリケーション識別情報のみで通信制御が行われるとする。更に、セキュリティサーバで許可された、レコードの参照／更新／挿入／削除が可能な業務用アプリケーションを入れたクライアントが存在するとする。このような場合に、特許文献１に開示されたシステムでは、クライアントが不正ユーザにより乗っ取られると、レコードの参照のために入れたにも関わらず、レコードの削除が行われる可能性がある。
【００１５】
［発明の目的］
本発明の目的の一例は、上記問題を解消し、通信フローの解析だけでは得られない情報を利用した柔軟な通信制御を可能にして、高度なセキュリティを確保し得る、通信制御装置、クライアント装置、通信制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１６】
上記目的を達成するため、本発明の一側面における通信制御装置は、クライアント装置とサーバ装置との間のデータ通信を制御するための装置であって、
前記クライアント装置で実行されるプロセスが前記サーバ装置に対する通信を要求し、それに合わせて、前記クライアント装置が、当該装置に対して、前記要求から抽出した識
別情報を送信してきた場合に、前記識別情報を受信する、識別情報受信部と、
前記クライアント装置から前記サーバ装置に向けて送信された通信フローを受信する、通信フロー受信部と、
受信された前記通信フローのヘッダ部分と前記識別情報とを照合し、両者が一致するかどうかを判定する、照合部と、
前記照合部による照合の結果、前記ヘッダ部分が前記識別情報と一致する通信フローが存在する場合に、当該通信フローに対して、設定ルールに基づいて、通信制御を行う、制御部と、
を備えている、
ことを特徴とする。
【００１７】
また、上記目的を達成するため、本発明の一側面におけるクライアント装置は、サーバ装置及び通信制御装置とデータ通信を行う装置であって、
当該装置で実行されるプロセスが前記サーバ装置に対する通信を要求した場合に、前記要求から、識別情報を抽出する、識別情報抽出部と、
抽出された前記識別情報を、前記通信制御装置に送信する、識別情報送信部と、
を備えている、
ことを特徴とする。
【００１８】
また、上記目的を達成するため、本発明の一側面における通信制御方法は、クライアント装置とサーバ装置との間のデータ通信を制御するための方法であって、
（ａ）前記クライアント装置で実行されるプロセスが前記サーバ装置に対する通信を要求し、それに合わせて、前記クライアント装置が、前記要求から抽出した識別情報を送信してきた場合に、前記識別情報を受信する、ステップと、
（ｂ）前記クライアント装置から前記サーバ装置に向けて送信された通信フローを受信する、ステップと、
（ｃ）受信された前記通信フローのヘッダ部分と前記識別情報とを照合し、両者が一致するかどうかを判定する、ステップと、
（ｄ）前記（ｃ）のステップによる照合の結果、前記ヘッダ部分が前記識別情報と一致する通信フローが存在する場合に、当該通信フローに対して、設定ルールに基づいて、通信制御を行う、ステップと、
を有する、
ことを特徴とする。
【００１９】
更に、上記目的を達成するため、本発明の一側面における第１のプログラムは、コンピュータによって、クライアント装置とサーバ装置との間のデータ通信を制御するためのプログラムであって、
前記コンピュータに、
（ａ）前記クライアント装置で実行されるプロセスが前記サーバ装置に対する通信を要求し、それに合わせて、前記クライアント装置が、前記要求から抽出した識別情報を送信してきた場合に、前記識別情報を受信する、ステップと、
（ｂ）前記クライアント装置から前記サーバ装置に向けて送信された通信フローを受信する、ステップと、
（ｃ）受信された前記通信フローのヘッダ部分と前記識別情報とを照合し、両者が一致するかどうかを判定する、ステップと、
（ｄ）前記（ｃ）のステップによる照合の結果、前記ヘッダ部分が前記識別情報と一致する通信フローが存在する場合に、当該通信フローに対して、設定ルールに基づいて、通信制御を行う、ステップと、
を実行させる、
ことを特徴とする。
【００２０】
加えて、上記目的を達成するため、本発明の一側面における第２のプログラムは、コンピュータによって、サーバ装置及び通信制御装置とデータ通信を行うためのプログラムであって、
前記コンピュータに、
（ａ）当該コンピュータで実行されるプロセスが前記サーバ装置に対する通信を要求した場合に、前記要求から、識別情報を抽出する、ステップと、
抽出された前記識別情報を、前記通信制御装置に送信する、ステップと、
実行させる、
ことを特徴とする。
【発明の効果】
【００２１】
以上のように、本発明によれば、通信フローの解析だけでは得られない情報を利用した柔軟な通信制御を可能にして、高度なセキュリティを確保することができる。
【図面の簡単な説明】
【００２２】
【図１】図１は、本発明の実施の形態におけるクライアント装置及び通信制御装置の概略構成を示すブロック図である。
【図２】図２は、本発明の実施の形態におけるクライアント装置及び通信制御装置の構成を具体的に示すブロック図である。
【図３】図３は、本発明の実施の形態において識別情報記憶部に格納される識別情報の一例を示す図である。
【図４】図４は、本発明の実施の形態において制御情報記憶部に格納されている制御情報の一例を示す図である。
【図５】図５は、本発明の実施の形態におけるクライアント装置の動作を示すフロー図である。
【図６】図６は、本発明の実施の形態における通信制御装置の通信フロー受信部における通信フロー受信処理を示すフロー図である。
【図７】図７は、本発明の実施の形態における通信制御装置の識別情報受信部における識別情報受信処理を示すフロー図である。
【図８】図８は、本発明の実施の形態における通信制御装置の照合部における照合処理を示すフロー図である。
【図９】図９は、本発明の実施の形態における通信制御装置の一次制御部における一次制御処理を示すフロー図である。
【図１０】図１０は、本発明の実施の形態における通信制御装置の解析部における解析処理を示すフロー図である。
【図１１】図１１は、本発明の実施の形態における通信制御装置の二次制御部における二次制御処理を示すフロー図である。
【図１２】図１２は、本発明の実施の形態における通信制御装置の通信フロー送信部における通信フロー送信処理を示すフロー図である。
【図１３】図１３は、本発明の実施の形態における通信制御装置の識別情報制御部における識別情報制御処理を示すフロー図である。
【図１４】図１４は、本発明の実施の形態におけるクライアント装置及び通信制御装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【００２３】
（実施の形態）
以下、本発明の実施の形態における、通信制御装置、クライアント装置、通信制御方法、及びプログラムについて、図１〜図１４を参照しながら説明する。
【００２４】
［装置構成］
最初に、図１を用いて、本実施の形態におけるクライアント装置及び通信制御装置の概略構成について説明する。図１は、本発明の実施の形態におけるクライアント装置及び通信制御装置の概略構成を示すブロック図である。
【００２５】
図１に示すように、本実施の形態における通信制御装置２００は、本実施の形態におけるクライアント装置１００とサーバ装置３００との間のデータ通信を制御するための装置である。クライアント装置１００からサーバ装置３００に対して通信を行う際は、必ず通信制御装置２００を経由することとなる。また、通信制御装置２００は、クライアント装置１００、及びサーバ装置３００と共に、通信システムを構築している。
【００２６】
クライアント装置１００は、そのＯＳ（Operating System）上で動作するプロセス１０１によって、通信制御装置２００を介して、サーバ装置３００に対して通信を行う端末である。例えば、クライアント装置１００は、業務用端末であり、サーバ装置３００は、業務用データを格納するデータベースサーバである。また、プロセス１０１は業務用データを扱う業務用アプリケーションのプロセスである。更に、クライアント装置１００のＯＳ上では、プロセス１０１だけでなく、複数のプロセスが動作しても良い。また、本実施の形態では、クライアント装置１００と同様の動作をする別のクライアント装置が複数台あってもよい。
【００２７】
図１に示すように、クライアント装置１００は、識別情報抽出部１０３と、識別情報送信部１０４とを備えている。
【００２８】
識別情報抽出部１０３は、クライアント装置１００自身で実行されるプロセス１０１がサーバ装置３００に対する通信を要求した場合に、この要求から、識別情報を抽出する。識別情報送信部１０４は、抽出された識別情報を、通信制御装置２００に送信する。
【００２９】
また、図１に示すように、通信制御装置２００は、識別情報受信部２０１と、通信フロー受信部２０２と、照合部２０７と、一次制御部２０８とを備えている。
【００３０】
識別情報受信部２０１は、クライアント装置１００で実行されるプロセス１０１がサーバ装置３００に対する通信を要求し、それに合わせて、クライアント装置１００が、通信制御装置２００に対して、要求から抽出した識別情報を送信すると、この識別情報を受信する。
【００３１】
通信フロー受信部２０２は、クライアント装置１００からサーバ装置３００に向けて送信された通信フローを受信する。照合部２０７は、受信された通信フローのヘッダ部分と、識別情報受信部２０１が受信した識別情報とを照合し、両者が一致するかどうかを判定する。一次制御部２０８は、照合部２０７による照合の結果、ヘッダ部分が識別情報と一致する通信フローが存在する場合に、この通信フローに対して、設定ルールに基づいて、通信制御を実行する。
【００３２】
このように、本実施の形態では、通信制御装置２００は、クライアント装置１００から、プロセスの要求から抽出された識別情報を取得し、この識別情報を用いて通信制御を行っている。つまり、本実施の形態によれば、通信制御装置２００は、通信フローの解析だけでは得られない情報を利用して、通信制御を行うことができ、結果、高度なセキュリティの確保が可能となる。
【００３３】
続いて、図２〜図４を用いて、本実施の形態におけるクライアント装置１００及び通信制御装置２００の構成についてより具体的に説明する。図２は、本発明の実施の形態にお
けるクライアント装置及び通信制御装置の構成を具体的に示すブロック図である。
【００３４】
［クライアント装置］
最初に、クライアント装置の構成について具体的に説明する。図２に示すように、本実施の形態では、クライアント装置１００は、通信フロー送信部１０２と、エージェント１０５と、を備えている。
【００３５】
通信フロー送信部１０２は、プロセス１０１から通信要求が届くと、この通信要求に応じたデータを、サーバ装置３００に送信する。通信要求は、例えば、ネットワークソケットイベント要求である。
【００３６】
エージェント１０５は、上述した、識別情報抽出部１０３と、識別情報送信部１０４とを備えている。また、エージェント１０５は、クライアント装置１００にインストールされたプログラムによって構築されており、識別情報抽出部１０３と識別情報送信部１０４も、プログラムによって構築されている。
【００３７】
識別情報抽出部１０３は、本実施の形態では、通信要求がプロセス１０１から通信フロー送信部１０２に届く前に、この通信要求をインターセプトし、この通信要求から識別情報（後述）を抽出し、抽出した識別情報を識別情報送信部１０４に出力する。また、この時、識別情報抽出部１０３は、通信ログを監視し、通信ログに基づいて、識別情報を抽出しても良い。
【００３８】
識別情報は、ヘッダ識別情報と、プロセス識別情報と、クライアント装置識別情報と、を含む。ヘッダ識別情報は、ＯＳＩ参照モデルのトランスポート層以下の情報である。ヘッダ識別情報としては、例えば、ＩＰヘッダに含まれるＩＰアドレス、及びＴＣＰ／ＵＤＰヘッダに含まれるポート番号が挙げられる。プロセス識別情報は、通信を行ったプロセスを識別ための情報である。プロセス識別情報としては、例えば、プロセス名、実行ユーザ名が挙げられる。クライアント識別情報は、クライアント装置１００を識別するための識別情報である。クライアント識別情報としては、例えば、コンピュータ名、ＯＳ名が挙げられる。
【００３９】
識別情報送信部１０４は、識別情報抽出部１０３から受け取った識別情報を、通信制御装置２００に対して送信する。
【００４０】
このような構成により、エージェント１０５は、クライアント装置１００が外部と通信を行う際に、通信の要求元であるプロセス１０１の識別情報と、クライアント装置１００の識別情報と、通信フローのヘッダ識別情報と、を紐付け、これらを通信制御装置に送信する。
【００４１】
［通信制御装置］
次に、通信制御装置２００の構成について具体的に説明する。本実施の形態では、通信制御装置２００は、クライアント装置１００からサーバ装置３００に送信される通信フローを検査し、検査結果に応じて通信フローを中継するか否かを判定する。
【００４２】
図２に示すように、本実施の形態では、通信制御装置２００は、上述した構成に加え、通信フロー送信部２０３と、識別情報記憶部２０４と、通信フロー記憶部２０５と、制御情報記憶部２０６と、解析部２０９と、二次制御部２１０と、識別情報制御部２１１とを備える。
【００４３】
識別情報受信部２０１は、本実施の形態では、エージェント１０５がインストールされ
た複数のクライアント装置から、識別情報が送信されてくると、これを受信し、受信した識別情報と、受信時刻と、エントリ番号と、を識別情報記憶部２０４に格納する。エントリ番号は、識別情報記憶部２０４に格納する識別情報ごとに一意に割り当てられる番号である。
【００４４】
識別情報記憶部２０４は、識別情報を格納する。識別情報記憶部２０４は、例えば、データベースである。図３は、本発明の実施の形態において識別情報記憶部に格納される識別情報の一例を示す図である。
【００４５】
通信フロー受信部２０２は、本実施の形態では、クライアント装置１００からサーバ装置３００宛に送信された通信フローを受信し、受信した通信フローと、通信フロー格納位置情報（後述）と、を通信フロー記憶部２０５に格納する。
【００４６】
通信フロー格納位置情報は、通信フロー記憶部２０５における通信フローが格納されている場所を特定するための情報である。通信フロー格納位置情報は、例えば、バッファＩＤである。
【００４７】
通信フロー記憶部２０５は、通信フローを記憶する。通信フロー記憶部２０５は、例えば、メモリーの受信バッファである。
【００４８】
このような構成により、通信制御装置２００は、クライアント装置から送信された通信フローを中継する。また、通信制御装置２００は、本来の宛先であるサーバ装置３００への通信フローの送信を保留することができる。
【００４９】
照合部２０７は、本実施の形態では、通信フロー記憶部２０５に格納されている通信フローのヘッダ部分と、識別情報記憶部２０４に格納されているエントリのヘッダ識別情報と、を照合する。照合部２０７は、照合処理でマッチする通信フローが見つかった場合、一次制御部２０８に、当該エントリのエントリ番号と、当該通信フローの通信フロー格納位置情報（後述）と、を出力する。一方、見つからなかった場合、照合部２０７は、処理を終了する。
【００５０】
なお、照合部２０７は、照合処理を、定期的に実行しても良いし、通信フロー受信部２０２による通信フロー記憶部２０５への通信フローの格納をトリガーとして、照合処理を実行しても良い。また、照合部２０７は、識別情報受信部２０１による識別情報記憶部２０４への識別情報の格納をトリガーとして、照合処理を実行しても良い。
【００５１】
このような構成により、クライアント装置１００から送信された通信フローの送信元プロセス、プロセスの実行ユーザ等、通信フローのヘッダ情報から得られない情報と、通信フローとが紐付けられることになる。言い換えると、クライアント装置１００のエージェント１０５が抽出した情報と通信フローとが紐付けられる。
【００５２】
制御情報記憶部２０６は、制御情報（後述）を記憶する。制御情報記憶部２０６は、例えば、データベースである。
【００５３】
制御情報は、一次制御部２０８と二次制御部２１０とによって通信フロー送信の許可又は破棄を判定するために使用される情報である。制御情報は、予め制御情報記憶部２０６に登録されている必要がある。
【００５４】
図４は、本発明の実施の形態において制御情報記憶部に格納されている制御情報の一例を示す図である。図４に示すように、制御情報は、ヘッダ識別情報と、プロセス識別情報
と、クライアント識別情報と、データ識別情報と、一次制御情報と、二次制御情報と、を含む。
【００５５】
データ識別情報は、後述する解析部２０９が、通信フローのデータ部から抽出する情報であり、通信フローに含まれるデータの内容を特定する。具体的には、データ識別情報は、データの内容として、例えば、データベースへのレコードの挿入（INSERT）、クレジットカード等の秘密情報の取り出し（SELECT）等を特定する。
【００５６】
一次制御情報は、ヘッダ識別情報と、プロセス識別情報と、クライアント識別情報とが一致するエントリがある場合に、一次制御部２０８が、対象通信フローの通信制御の内容を決定する情報である。一次制御情報によって決定される通信制御としては、例えば、通信フローのデータ解析、送信の許可、及び破棄が挙げられる。一次制御情報は、一次制御部２０８による通信制御のルールを規定している。
【００５７】
二次制御情報は、ヘッダ識別情報と、プロセス識別情報と、クライアント装置識別情報と、データ識別情報と、が一致するエントリがある場合に、二次制御部２１０が、対象通信フローの通信制御の内容を決定する情報である。二次制御情報によって決定される通信制御としては、例えば、通信フローの送信の許可、及び破棄が挙げられる。二次制御情報も、二次制御部２１０による通信制御のルールを規定している。
【００５８】
一次制御部２０８は、本実施の形態では、ヘッダ識別情報と、プロセス識別情報と、クライアント識別情報と、一次制御情報とに基づいて、通信制御を行う。具体的には、一次制御部２０８は、照合部２０７から受け取ったエントリ番号を基に、識別情報記憶部２０４から当該エントリのヘッダ識別情報と、プロセス識別情報と、クライアント識別情報とを読み込む。そして、一次制御部２０８は、読み込んだ各情報それぞれが、制御情報記憶部２０６に格納されているエントリとマッチする場合に、当該エントリの一次制御情報に基づいて、通信フローの制御方法を決定する。
【００５９】
例えば、一次制御情報が「通信フローのデータ解析」の場合、一次制御部２０８は、解析部２０９に通信フロー格納位置情報と、識別情報記憶部２０４のエントリ番号と、を出力する。また、一次制御情報が「許可」の場合、一次制御部２０８は、通信フロー送信部２０３に通信フロー格納位置情報を出力する。更に、一次制御情報が「破棄」の場合、一次制御部２０８は、通信フロー記憶部２０５の通信フローを破棄する。
【００６０】
このような構成により、通信制御装置２００によれば、通信フローのヘッダ情報、通信フローの送信元プロセス、クライアント装置１００の情報を組み合わせた柔軟な通信制御が可能となる。
【００６１】
例えば、特定のクライアント−サーバ間の通信において、業務用アプリケーションのプロセス１０１からのデータベースへのアクセスは許可するが、それ以外のマルウェア等のプロセスからのデータベースへのアクセスは許可しない、という通信制御が可能となる。
【００６２】
また、通信を許可する場合に、通信フロー解析の有無を設定可能とすることで、信頼できるクライアント装置１００のアプリケーションプログラムから送られてきた通信フローは、通信フロー解析をせずに送信する、といった通信制御が可能となる。
【００６３】
解析部２０９は、一次制御部２０８から通信フロー格納位置情報を受け取ると、受け取った通信フロー格納位置情報に基づいて、通信フロー記憶部２０５にある通信フローを特定する。また、解析部２０９は、特定した通信フローに対して、データ部の解析を行い、データ識別情報を抽出する。そして、解析部２０９は、通信フロー格納位置情報と、識別
情報記憶部２０４のエントリ番号と、解析結果から抽出したデータ識別情報と、を二次制御部２１０に出力する。なお、解析部２０９は、通信制御装置２００の内部に含む構成としているが、通信制御装置２００の外側から接続する構成としてもよい。
【００６４】
二次制御部２１０は、データの解析の結果に応じて、データの解析対象となった通信フローに対して、通信制御を行う。二次制御部２１０は、本実施の形態では、ヘッダ識別情報と、プロセス識別情報と、クライアント識別情報と、データ識別情報と、二次制御情報とに基づいて通信制御を行う。
【００６５】
具体的には、二次制御部２１０は、解析部２０９から受け取ったエントリ番号を基に、識別情報記憶部２０４から当該エントリのヘッダ識別情報と、プロセス識別情報と、クライアント識別情報とを読み込む。
【００６６】
そして、読み込んだ識別情報とデータ識別情報とが、それぞれ、制御情報記憶部２０６に格納されているヘッダ識別情報、プロセス識別情報、クライアント識別情報、及びデータ識別情報とマッチするとする。この場合、二次制御部２１０は、マッチした制御情報に該当する通信制御で、解析部２０９から受け取った通信フロー格納位置情報によって特定した、通信フロー記憶部２０５にある通信フローを制御する。
【００６７】
また、二次制御部２１０は、通信制御が「許可」である場合は、通信フロー送信部２０３に通信フロー格納位置情報を出力する。一方、二次制御部２１０は、通信制御が「破棄」である場合は、通信フロー記憶部２０５の通信フローを破棄する。
【００６８】
このような構成により、通信制御装置２００によれば、通信フローのヘッダ情報と、データ部の解析結果と、通信フローの送信元プロセスの情報と、クライアント装置１００の情報と、を組み合わせた柔軟な通信制御が可能となる。
【００６９】
例えば、特定のクライアント−データベースサーバ間の通信において、あるアプリケーションに対しては、データの参照(SELECT)のみ許可し、別のアプリケーションに対しては、参照(SELECT)、挿入(INSERT)、更新(UPDATE)、削除(DELETE)の全てを許可する、という通信制御が可能となる。
【００７０】
通信フロー送信部２０３は、一次制御部２０８又は二次制御部２１０から通信フロー格納位置情報を受け取ると、受け取った通信フロー格納位置情報を基に特定した通信フロー記憶部２０５の通信フローを、サーバ装置３００に対して送信する。
【００７１】
識別情報制御部２１１は、識別情報記憶部２０４を監視し、受信してから一定時間が経過した識別情報を削除する。具体的には、識別情報制御部２１１は、識別情報記憶部２０４に格納されたエントリの受信時刻を参照し、現在時刻から当該時刻を引いた時間が、予め設定された時間を超えている場合に、当該エントリを削除する。なお、識別情報制御部２１１は、前記削除処理を、定期的に実行してもよいし、通信制御装置２００で発生するイベントをトリガーとして実行してもよい。
【００７２】
このような構成により、通信制御装置２００は、受信してから一定時間が経過した識別情報を削除することで、不要に読み込まれるエントリ数を減らし、照合部における照合処理の速度を向上させることができる。
【００７３】
［装置動作］
次に、本実施の形態におけるクライアント装置１００及び通信制御装置２００の動作について図５〜図１３を用いて説明する。また、以下の説明においては、適宜図１〜図４を
参照する。また、本実施の形態１では、クライアント装置１００と通信制御装置２００とを動作させることによって、通信制御方法が実施される。よって、本実施の形態における通信制御方法の説明は、以下のクライアント装置１００及び通信制御装置２００の動作説明に代える。
【００７４】
最初に、図５を用いて、本実施の形態におけるクライアント装置１００の動作について説明する。図５は、本発明の実施の形態におけるクライアント装置の動作を示すフロー図である。具体的には、図５は、エージェント１０５の検出処理及び識別情報送信処理を示している。
【００７５】
図５に示すように、まず、クライアント装置１００において、識別情報抽出部１０３は、クライアント装置１００上で動作するプロセス１０１がサーバ装置３００に対して通信要求を出すと、この通信要求が通信フロー送信部１０２に到達する前に、これをインターセプトする（ステップＳ０１０１）。
【００７６】
次に、識別情報抽出部１０３は、インターセプトした通信要求から識別情報を抽出する（ステップＳ０１０２）。
【００７７】
次に、識別情報抽出部１０３は、通信フロー送信部１０２を介して、サーバ装置３００に、インターセプトした通信要求を送信する（ステップＳ０１０３）。次に、識別情報抽出部１０３は、抽出した識別情報を識別情報送信部１０４に出力する（ステップＳ０１０４）。
【００７８】
その後、識別情報送信部１０４は、識別情報抽出部１０３から出力されてきた識別情報を、通信制御装置２００に対して送信する（ステップＳ０１０５）。
【００７９】
続いて、図６〜図１３を用いて、本実施の形態における通信制御装置２００動作について説明する。図６〜図１３までには、通信制御装置２００の動作のフローが示されている。
【００８０】
図６は、本発明の実施の形態における通信制御装置の通信フロー受信部における通信フロー受信処理を示すフロー図である。
【００８１】
図６に示すように、最初に、通信フロー受信部２０２は、クライアント装置１００の通信フロー送信部１０２からサーバ装置３００宛に送信された通信フローを受信する（ステップＳ０２０１）。次に、通信フロー受信部２０２は、ステップＳ０２０１で受信した通信フローを、通信フロー記憶部２０５に格納する（ステップＳ０２０２）。
【００８２】
図７は、本発明の実施の形態における通信制御装置の識別情報受信部における識別情報受信処理を示すフロー図である。
【００８３】
図７に示すように、最初に、識別情報受信部２０１は、クライアント装置１００の識別情報送信部１０４から送信された識別情報を受信する（ステップＳ０３０１）。次に、識別情報受信部２０１は、受信した識別情報と、受信時刻と、エントリ番号と、を識別情報記憶部２０４に格納する（ステップＳ０３０２）。
【００８４】
図８は、本発明の実施の形態における通信制御装置の照合部における照合処理を示すフロー図である。
【００８５】
図８に示すように、最初に、照合部２０７は、ステップＳ０２０２又はステップＳ０３
０２を契機として、ステップＳ０４０１に進む。ステップＳ０４０１では、照合部２０７は、識別情報記憶部２０４に格納されているエントリを読み込み、ステップＳ０４０２に進む。
【００８６】
ステップＳ０４０２で、照合部２０７は、通信フロー記憶部２０５に格納されている通信フローのヘッダ部を解析する。その後、照合部２０７は、ヘッダ識別情報が一致するヘッダをもつ通信フローが存在するかどうかを判定する（ステップＳ０４０３）。
【００８７】
ステップＳ０４０３の判定の結果、ヘッダ識別情報が一致するヘッダをもつ通信フローが存在しない場合は、照合部２０７は、処理を終了する。一方、ステップＳ０４０３の判定の結果、ヘッダ識別情報が一致するヘッダをもつ通信フローが存在する場合は、照合部２０７は、一次制御部２０８に、当該エントリのエントリ番号と、当該通信フローの通信フロー格納位置情報とを出力する（ステップＳ０４０４）。
【００８８】
図９は、本発明の実施の形態における通信制御装置の一次制御部における一次制御処理を示すフロー図である。
【００８９】
図９に示すように、最初に、一次制御部２０８は、照合部２０７から識別情報記憶部２０４のエントリ番号と通信フロー格納位置情報とを受け取る（ステップＳ０５０１）。
【００９０】
次に、一次制御部２０８は、エントリ番号を基に、識別情報記憶部２０４の当該エントリを読み込む（ステップＳ０５０２）。次に、一次制御部２０８は、制御情報記憶部２０６のエントリを読み込む（ステップＳ０５０３）。
【００９１】
次に、一次制御部２０８は、識別情報記憶部２０４のエントリのヘッダ識別情報と、プロセス識別情報と、クライアント識別情報と、が一致するエントリが制御情報記憶部２０６に存在するかどうかを判定する（ステップＳ０５０４）。
【００９２】
ステップＳ０５０４の判定の結果、一致するエントリが存在しない場合は、一次制御部２０８は、ステップＳ０５０５を実行する。一方、ステップＳ０５０４の判定の結果、一致するエントリが存在する場合は、一次制御部２０８は、ステップＳ０５０６を実行する（ステップＳ０５０４）。
【００９３】
ステップＳ０５０５では、一次制御部２０８は、通信フロー格納位置情報を基に特定した通信フロー記憶部２０５の通信フローを破棄する。
【００９４】
ステップＳ０５０６では、一次制御部２０８は、当該エントリの一次制御情報が「破棄」であるかどうかを判定する。ステップＳ５０６の判定の結果、当該エントリの一次制御情報が「破棄」である場合は、一次制御部２０８は、ステップＳ０５０５に進む。一方、ステップＳ５０６の判定の結果、当該エントリの一次制御情報が「破棄」でない場合は、一次制御部２０８は、ステップＳ０５０７に進む。
【００９５】
ステップＳ０５０７では、一次制御部２０８は、当該エントリの一次制御情報が「許可」であるかどうかを判定する。ステップＳ０５０７の判定の結果、当該エントリの一次制御情報が「許可」である場合は、一次制御部２０８は、ステップＳ０５０８に進む。一方、ステップＳ０５０７の判定の結果、当該エントリの一次制御情報が「許可」でない場合は、一次制御部２０８は、ステップＳ０５０９に進む。
【００９６】
ステップＳ０５０８では、一次制御部２０８は、通信フロー格納位置情報を通信フロー送信部２０３に出力する。
【００９７】
ステップＳ０５０９では、一次制御部２０８は、通信フロー格納位置情報を解析部２０９に出力する。
【００９８】
図１０は、本発明の実施の形態における通信制御装置の解析部における解析処理を示すフロー図である。
【００９９】
図１０に示すように、最初に、解析部２０９は、一次制御部２０８から、通信フロー格納位置情報と、識別情報記憶部２０４のエントリ番号と、を受け取る（ステップＳ０６０１）。
【０１００】
次に、解析部２０９は、通信フロー格納位置情報を基に特定した通信フロー記憶部２０５の通信フローを読み込む（ステップＳ０６０２）。
【０１０１】
次に、解析部２０９は、読み込んだ通信フローのデータ部を解析する（ステップＳ０６０３）。
【０１０２】
その後、解析部２０９は、通信フロー格納位置情報と、識別情報記憶部のエントリ番号と、解析結果を基に抽出したデータ識別情報と、を二次制御部２１０に出力する（ステップＳ０６０４）。
【０１０３】
図１１は、本発明の実施の形態における通信制御装置の二次制御部における二次制御処理を示すフロー図である。
【０１０４】
図１１に示すように、最初に、二次制御部２１０は、解析部２０９から、通信フロー格納位置情報と、識別情報記憶部２０４のエントリ番号と、データ識別情報と、を受け取る（ステップＳ０７０１）。
【０１０５】
次に、二次制御部２１０は、エントリ番号に基付いて、識別情報記憶部２０４の当該エントリを読み込む（ステップＳ０７０２）。
【０１０６】
次に、二次制御部２１０は、制御情報記憶部２０６のエントリを読み込み（ステップＳ０７０３）。
【０１０７】
次に、二次制御部２１０は、識別情報記憶部２０４のエントリのヘッダ識別情報と、プロセス識別情報と、クライアント装置識別情報と、受け取ったデータ識別情報とが一致するエントリが、制御情報記憶部２０６に存在するかどうかを判定する（ステップＳ０７０４）。
【０１０８】
ステップＳ０７０４の判定の結果、一致するエントリが制御情報記憶部２０６に存在しない場合は、二次制御部２１０は、ステップＳ０７０５に進む。一方、ステップＳ０７０４の判定の結果、一致するエントリが制御情報記憶部２０６に存在する場合は、二次制御部２１０は、ステップＳ０７０６に進む（ステップＳ０７０４）。
【０１０９】
ステップＳ０７０５では、二次制御部２１０は、通信フロー格納位置情報を基に特定した通信フロー記憶部２０５の通信フローを破棄する。
【０１１０】
ステップＳ０７０６では、二次制御部２１０は、当該エントリの二次制御情報が「破棄」であるかどうかを判定する。
【０１１１】
ステップＳ０７０６の判定の結果、当該エントリの二次制御情報が「破棄」である場合は、二次制御部２１０は、ステップＳ０７０５に進む。一方、ステップＳ０７０６の判定の結果、当該エントリの二次制御情報が「破棄」でない場合は、二次制御部２１０は、ステップＳ０７０７に進む。
【０１１２】
ステップＳ０７０７では、二次制御部２１０は、通信フロー格納位置情報を通信フロー送信部２０３に出力する。
【０１１３】
図１２は、本発明の実施の形態における通信制御装置の通信フロー送信部における通信フロー送信処理を示すフロー図である。
【０１１４】
図１２に示すように、最初に、通信フロー送信部２０３は、一次制御部２０８、又は二次制御部２１０から、通信フロー格納位置情報を受け取る（ステップＳ０８０１）。
【０１１５】
次に、通信フロー送信部２０３は、通信フロー格納位置情報を基に特定した通信フロー記憶部２０５の通信フローを読み込む（ステップＳ０８０２）。
【０１１６】
その後、通信フロー送信部２０３は、ステップＳ０８０２で読み込んだ通信フローをサーバ装置３００宛に送信する（ステップＳ０８０３）。
【０１１７】
図１３は、本発明の実施の形態における通信制御装置の識別情報制御部における識別情報制御処理を示すフロー図である。
【０１１８】
図１３に示すように、最初に、識別情報制御部２１１は、一定時間が経過したこと、又は通信制御装置２００で発生するイベントを契機として、ステップＳ０９０１に進む。ステップＳ０９０１では、識別情報制御部２１１は、識別情報記憶部２０４に格納されているエントリを読み込む。
【０１１９】
次に、識別情報制御部２１１は、読み込んだエントリの受信時刻を、現在時刻から引いた時間が、予め設定した時間を超えているかどうかを判定する（ステップＳ０９０２）。
【０１２０】
ステップＳ０９０２の判定の結果、予め設定した時間を超えている場合は、識別情報制御部２１１は、ステップＳ０９０１で読み込んだエントリを削除する（ステップＳ０９０３）。
【０１２１】
一方、ステップＳ０９０２の判定の結果、予め設定した時間を超えていない場合、識別情報制御部２１１は、処理を終了する。
【０１２２】
［発明の効果］
以上のように、本実施の形態によれば、通信フローの送信元プロセスの情報、クライアント装置１００の情報等、通信フローの解析だけでは得られない情報を利用した柔軟な通信制御が可能となる。そして、この結果、本実施の形態によれば、高度なセキュリティの確保が可能となる。
【０１２３】
また、上述の例では、通信フローが暗号化されていないことを前提にして、構成及び動作の説明が行われているが、本実施の形態は、この例に限定されるものではない。本実施の形態では、非特許文献１に開示された技術を用いることで、通信フローが暗号化されている場合でも、通信フローを復号した上で、解析部２０９による通信フローのデータ解析が行われる態様とすることができる。
【０１２４】
［プログラム］
本実施の形態における第１のプログラムは、コンピュータに、図６に示すステップＳ０２０１〜Ｓ０２０２、図７に示すステップＳ０３０１〜Ｓ０３０２、図８に示すステップＳ０４０１〜Ｓ０４０４、図９に示すステップＳ０５０１〜Ｓ０５０９、図１０に示すステップＳ０６０１〜Ｓ０６０４、図１１に示すＳ０７０１〜Ｓ０７０７、図１２に示すステップＳ０８０１〜Ｓ０８０３、図１３に示すステップＳ０９０１〜Ｓ０９０３を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における通信制御装置２００を実現することができる。この場合、コンピュータのプロセッサは、識別情報受信部２０１、通信フロー受信部２０２、通信フロー送信部２０３、照合部２０７、一次制御部２０８、解析部２０９、二次制御部２１０、及び識別情報制御部２１１として機能し、処理を行なう。
【０１２５】
また、本実施の形態における第１のプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、識別情報受信部２０１、通信フロー受信部２０２、通信フロー送信部２０３、照合部２０７、一次制御部２０８、解析部２０９、二次制御部２１０、及び識別情報制御部２１１のいずれかとして機能しても良い。
【０１２６】
また、本実施の形態における第２のプログラムは、コンピュータに、図５に示すステップＳ０１０１〜Ｓ０１０５を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態におけるクライアント装置１００（エージェント１０５）を実現することができる。この場合、コンピュータのプロセッサは、識別情報抽出部１０３、識別情報送信部１０４として機能し、処理を行なう。
【０１２７】
［物理構成］
ここで、本実施の形態における第１のプログラムを実行することによって、通信制御装置２００を実現するコンピュータと、本実施の形態における第２のプログラムを実行することによってクライアント装置１００を実現するコンピュータについて図１４を用いて説明する。図１４は、本発明の実施の形態におけるクライアント装置及び通信制御装置を実現するコンピュータの一例を示すブロック図である。
【０１２８】
図１４に示すように、コンピュータ１０は、ＣＰＵ（Central Processing Unit）１１と、メインメモリ１２と、記憶装置１３と、入力インターフェイス１４と、表示コントローラ１５と、データリーダ／ライタ１６と、通信インターフェイス１７とを備える。これらの各部は、バス２１を介して、互いにデータ通信可能に接続される。なお、コンピュータ１０は、ＣＰＵ１１１に加えて、又はＣＰＵ１１１に代えて、ＧＰＵ（Graphics Processing Unit）、又はＦＰＧＡ（Field-Programmable Gate Array）を備えていても良い。
【０１２９】
ＣＰＵ１１は、記憶装置１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態における第１のプログラム及び第２のプログラムは、共に、コンピュータ読み取り可能な記録媒体２０に格納された状態で提供される。また、本実施の形態における第１のプログラム及び第２のプログラムは、通信インターフェイス１７を介して接続されたインターネット上で流通するものであっても良い。
【０１３０】
また、記憶装置１３の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１４は、ＣＰＵ１１と、キー
ボード及びマウスといった入力機器１８との間のデータ伝送を仲介する。表示コントローラ１５は、ディスプレイ装置１９と接続され、ディスプレイ装置１９での表示を制御する。
【０１３１】
データリーダ／ライタ１６は、ＣＰＵ１１と記録媒体２０との間のデータ伝送を仲介し、記録媒体２０からのプログラムの読み出し、及びコンピュータ１０における処理結果の記録媒体２０への書き込みを実行する。通信インターフェイス１７は、ＣＰＵ１１と、他のコンピュータとの間のデータ伝送を仲介する。
【０１３２】
また、記録媒体２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible
Disk）等の磁気記録媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記録媒体が挙げられる。
【０１３３】
なお、本実施の形態におけるクライアント装置１００及び通信制御装置２００は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、クライアント装置１００及び通信制御装置２００は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【０１３４】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１４）によって表現することができるが、以下の記載に限定されるものではない。
【０１３５】
（付記１）
クライアント装置とサーバ装置との間のデータ通信を制御するための装置であって、
前記クライアント装置で実行されるプロセスが前記サーバ装置に対する通信を要求し、それに合わせて、前記クライアント装置が、当該装置に対して、前記要求から抽出した識別情報を送信してきた場合に、前記識別情報を受信する、識別情報受信部と、
前記クライアント装置から前記サーバ装置に向けて送信された通信フローを受信する、通信フロー受信部と、
受信された前記通信フローのヘッダ部分と前記識別情報とを照合し、両者が一致するかどうかを判定する、照合部と、
前記照合部による照合の結果、前記ヘッダ部分が前記識別情報と一致する通信フローが存在する場合に、当該通信フローに対して、設定ルールに基づいて、通信制御を行う、制御部と、
を備えている、
ことを特徴とする通信制御装置。
【０１３６】
（付記２）
付記１に記載の通信制御装置であって、
前記制御部による前記通信制御の内容に応じて、受信された前記通信フローに含まれるデータの解析を行う、解析部と、
前記データの解析の結果に応じて、前記データの解析対象となった前記通信フローに対して、通信制御を行う、第２の制御部と、
を備えている、
ことを特徴とする通信制御装置。
【０１３７】
（付記３）
付記２に記載の通信制御装置であって、
前記制御部が、前記設定ルールに基づいて、前記通信制御として、当該通信フローに対
する、データ解析、送信の許可、及び廃棄のうちのいずれかを選択し、送信の許可又は廃棄を選択した場合は選択した処理を実行し、
前記制御部が、前記通信制御として、前記データ解析を選択した場合に、前記解析部が、受信された前記通信フローに含まれるデータの解析を行い、
前記第２の制御部が、前記データの解析の結果に応じて、前記通信制御として、前記データの解析対象となった前記通信フローに対する、送信の許可又は廃棄を実行する、
ことを特徴とする通信制御装置。
【０１３８】
（付記４）
付記２又は３に記載の通信制御装置であって、
前記識別情報が、ヘッダ識別情報、前記プロセスを識別するためのプロセス識別情報、及び前記クライアント装置を識別するためのクライアント識別情報を含み、
前記照合部が、受信された前記通信フローのヘッダ部分と、前記識別情報に含まれる前記ヘッダ識別情報とを照合し、
前記制御部が、ヘッダ識別情報、プロセス識別情報、及びクライアント識別情報それぞれの内容に応じて通信制御の内容を決定するルールに基づいて、通信制御を行い、
前記解析部が、前記データの解析によって、受信された前記通信フローから、それに含まれるデータの内容を特定するデータ識別情報を抽出し、
前記第２の制御部が、ヘッダ識別情報、プロセス識別情報、クライアント識別情報、及びデータ識別情報それぞれの内容に応じて通信制御の内容を決定するルールに基づいて、通信制御を行う、
ことを特徴とする通信制御装置。
【０１３９】
（付記５）
サーバ装置及び通信制御装置とデータ通信を行う装置であって、
当該装置で実行されるプロセスが前記サーバ装置に対する通信を要求した場合に、前記要求から、識別情報を抽出する、識別情報抽出部と、
抽出された前記識別情報を、前記通信制御装置に送信する、識別情報送信部と、
を備えている、
ことを特徴とするクライアント装置。
【０１４０】
（付記６）
クライアント装置とサーバ装置との間のデータ通信を制御するための方法であって、
（ａ）前記クライアント装置で実行されるプロセスが前記サーバ装置に対する通信を要求し、それに合わせて、前記クライアント装置が、前記要求から抽出した識別情報を送信してきた場合に、前記識別情報を受信する、ステップと、
（ｂ）前記クライアント装置から前記サーバ装置に向けて送信された通信フローを受信する、ステップと、
（ｃ）受信された前記通信フローのヘッダ部分と前記識別情報とを照合し、両者が一致するかどうかを判定する、ステップと、
（ｄ）前記（ｃ）のステップによる照合の結果、前記ヘッダ部分が前記識別情報と一致する通信フローが存在する場合に、当該通信フローに対して、設定ルールに基づいて、通信制御を行う、ステップと、
を有する、
ことを特徴とする通信制御方法。
【０１４１】
（付記７）
付記６に記載の通信制御方法であって、
（ｅ）前記（ｄ）のステップによる前記通信制御の内容に応じて、受信された前記通信フローに含まれるデータの解析を行う、ステップと、
（ｆ）前記（ｅ）のステップにおける前記データの解析の結果に応じて、前記データの解析対象となった前記通信フローに対して、通信制御を行う、ステップと、
を更に有する、
ことを特徴とする通信制御方法。
【０１４２】
（付記８）
付記７に記載の通信制御方法であって、
前記（ｄ）のステップにおいて、前記設定ルールに基づいて、前記通信制御として、当該通信フローに対する、データ解析、送信の許可、及び廃棄のうちのいずれかを選択し、送信の許可又は廃棄を選択した場合は選択した処理を実行し、
前記（ｄ）のステップにおいて、前記通信制御として、前記データ解析を選択した場合に、前記（ｅ）のステップにおいて、受信された前記通信フローに含まれるデータの解析を行い、
前記（ｆ）のステップにおいて、前記データの解析の結果に応じて、前記通信制御として、前記データの解析対象となった前記通信フローに対する、送信の許可又は廃棄を実行する、
ことを特徴とする通信制御方法。
【０１４３】
（付記９）
付記７又は８に記載の通信制御方法であって、
前記識別情報が、ヘッダ識別情報、前記プロセスを識別するためのプロセス識別情報、及び前記クライアント装置を識別するためのクライアント識別情報を含み、
前記（ｃ）のステップにおいて、受信された前記通信フローのヘッダ部分と、前記識別情報に含まれる前記ヘッダ識別情報とを照合し、
前記（ｄ）のステップにおいて、ヘッダ識別情報、プロセス識別情報、及びクライアント識別情報それぞれの内容に応じて通信制御の内容を決定するルールに基づいて、通信制御を行い、
前記（ｅ）のステップにおいて、前記データの解析によって、受信された前記通信フローから、それに含まれるデータの内容を特定するデータ識別情報を抽出し、
前記（ｆ）のステップにおいて、ヘッダ識別情報、プロセス識別情報、クライアント識別情報、及びデータ識別情報それぞれの内容に応じて通信制御の内容を決定するルールに基づいて、通信制御を行う、
ことを特徴とする通信制御方法。
【０１４４】
（付記１０）
コンピュータによって、クライアント装置とサーバ装置との間のデータ通信を制御するためのプログラムであって、
前記コンピュータに、
（ａ）前記クライアント装置で実行されるプロセスが前記サーバ装置に対する通信を要求し、それに合わせて、前記クライアント装置が、前記要求から抽出した識別情報を送信してきた場合に、前記識別情報を受信する、ステップと、
（ｂ）前記クライアント装置から前記サーバ装置に向けて送信された通信フローを受信する、ステップと、
（ｃ）受信された前記通信フローのヘッダ部分と前記識別情報とを照合し、両者が一致するかどうかを判定する、ステップと、
（ｄ）前記（ｃ）のステップによる照合の結果、前記ヘッダ部分が前記識別情報と一致する通信フローが存在する場合に、当該通信フローに対して、設定ルールに基づいて、通信制御を行う、ステップと、
を実行させる、
ことを特徴とするプログラム。
【０１４５】
（付記１１）
付記１０に記載のプログラムであって、
前記コンピュータに、
（ｅ）前記（ｄ）のステップによる前記通信制御の内容に応じて、受信された前記通信フローに含まれるデータの解析を行う、ステップと、
（ｆ）前記（ｅ）のステップにおける前記データの解析の結果に応じて、前記データの解析対象となった前記通信フローに対して、通信制御を行う、ステップと、
を更に実行させる、
ことを特徴とするプログラム。
【０１４６】
（付記１２）
付記１１に記載のプログラムであって、
前記（ｄ）のステップにおいて、前記設定ルールに基づいて、前記通信制御として、当該通信フローに対する、データ解析、送信の許可、及び廃棄のうちのいずれかを選択し、送信の許可又は廃棄を選択した場合は選択した処理を実行し、
前記（ｄ）のステップにおいて、前記通信制御として、前記データ解析を選択した場合に、前記（ｅ）のステップにおいて、受信された前記通信フローに含まれるデータの解析を行い、
前記（ｆ）のステップにおいて、前記データの解析の結果に応じて、前記通信制御として、前記データの解析対象となった前記通信フローに対する、送信の許可又は廃棄を実行する、
ことを特徴とするプログラム。
【０１４７】
（付記１３）
付記１１又は１２に記載のプログラムであって、
前記識別情報が、ヘッダ識別情報、前記プロセスを識別するためのプロセス識別情報、及び前記クライアント装置を識別するためのクライアント識別情報を含み、
前記（ｃ）のステップにおいて、受信された前記通信フローのヘッダ部分と、前記識別情報に含まれる前記ヘッダ識別情報とを照合し、
前記（ｄ）のステップにおいて、ヘッダ識別情報、プロセス識別情報、及びクライアント識別情報それぞれの内容に応じて通信制御の内容を決定するルールに基づいて、通信制御を行い、
前記（ｅ）のステップにおいて、前記データの解析によって、受信された前記通信フローから、それに含まれるデータの内容を特定するデータ識別情報を抽出し、
前記（ｆ）のステップにおいて、ヘッダ識別情報、プロセス識別情報、クライアント識別情報、及びデータ識別情報それぞれの内容に応じて通信制御の内容を決定するルールに基づいて、通信制御を行う、
ことを特徴とするプログラム。
【０１４８】
（付記１４）
コンピュータによって、サーバ装置及び通信制御装置とデータ通信を行うためのプログラムであって、
前記コンピュータに、
（ａ）当該コンピュータで実行されるプロセスが前記サーバ装置に対する通信を要求した場合に、前記要求から、識別情報を抽出する、ステップと、
抽出された前記識別情報を、前記通信制御装置に送信する、ステップと、
実行させる、
ことを特徴とするプログラム。
【産業上の利用可能性】
【０１４９】
以上のように、本発明によれば、通信フローの解析だけでは得られない情報を利用した柔軟な通信制御を可能にして、高度なセキュリティを確保することができる。本発明は、クライアント装置及びサーバ装置を備える各種コンピュータシステムに有用である。
【符号の説明】
【０１５０】
１０  コンピュータ
１１  ＣＰＵ
１２  メインメモリ
１３  記憶装置
１４  入力インターフェイス
１５  表示コントローラ
１６  データリーダ／ライタ
１７  通信インターフェイス
１８  入力機器
１９  ディスプレイ装置
２０  記録媒体
２１  バス
１００  クライアント装置
１０１  プロセス
１０２  通信フロー送信部
１０３  識別情報抽出部
１０４  識別情報送信部
１０５  エージェント
２００  通信制御装置
２０１  識別情報受信部
２０２  通信フロー受信部
２０３  通信フロー送信部
２０４  識別情報記憶部
２０５  通信フロー記憶部
２０６  制御情報記憶部
２０７  照合部
２０８  一次制御部
２０９  解析部
２１０  二次制御部
２１１  識別情報制御部
３００  サーバ装置
【図１】
2019176273.tif 000003
【図２】
2019176273.tif 000004
【図３】
2019176273.tif 000005
【図４】
2019176273.tif 000006
【図５】
2019176273.tif 000007
【図６】
2019176273.tif 000008
【図７】
2019176273.tif 000009
【図８】
2019176273.tif 000010
【図９】
2019176273.tif 000011
【図１０】
2019176273.tif 000012
【図１１】
2019176273.tif 000013
【図１２】
2019176273.tif 000014
【図１３】
2019176273.tif 000015
【図１４】
2019176273.tif 000016