(57)【要約】【課題】高度なセキュリティを確保し得る通信制御装置、通信制御方法及び通信制御プログラムを提供する。【解決手段】一実施の形態によれば、通信制御装置２００は、サーバ装置３００との間で通信を行うクライアント装置１００において実行されるプロセス１０１から送信された複数の通信フローのうち、同一または親子関係にあるプロセスから送信された複数の通信フローを、通信パターンとして抽出する通信パターン抽出部２１０と、通信パターン抽出部２１０で抽出された通信パターンと、不正とされた不正通信パターンとの照合結果に基づいて、通信フローのサーバ装置３００への通信制御を行う通信パターン検査部２１２と、を備える。【選択図】図１
2020129162.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置との間で通信を行うクライアント装置において実行されるプロセスから送信された複数の通信フローのうち、同一または親子関係にあるプロセスから送信された複数の前記通信フローを、通信パターンとして抽出する通信パターン抽出部と、
前記通信パターン抽出部で抽出された前記通信パターンと、不正とされた不正通信パターンとの照合結果に基づいて、前記通信フローの前記サーバ装置への通信制御を行う通信パターン検査部と、
を備えた通信制御装置。
【請求項２】
前記クライアント装置において実行される前記プロセスが、前記サーバ装置に対して、データ通信の通信要求をした場合に、前記通信要求から抽出された識別情報を前記クライアント装置から受信する識別情報受信部と、
前記クライアント装置から送信された前記通信フローを受信する通信フロー送受信部と、
受信された前記通信フローのヘッダ部分と、前記識別情報におけるヘッダ識別情報とを照合し、両者が一致する場合に、前記通信フローと、前記識別情報とを紐付けする照合部と、
前記通信フローに紐付けされた前記識別情報が所定の制御情報と一致する場合に、前記通信フローを前記通信パターン抽出部に出力する通信フロー検査部と、
をさらに備え、
前記通信パターン抽出部は、出力された前記通信フローが、前記同一または親子関係にあるプロセスから送信された通信フローである場合に、前記通信パターンに前記通信フローを追加する、
請求項１に記載の通信制御装置。
【請求項３】
前記識別情報は、前記クライアント装置を識別するクライアント識別情報、前記ヘッダ識別情報、及び、前記プロセスを識別するプロセス識別情報を含む、
請求項２に記載の通信制御装置。
【請求項４】
前記所定の制御情報は、前記通信フローを前記通信パターン抽出部に出力する通信パターン検査、前記通信フローを前記サーバ装置に送信する許可、及び、前記通信フローを削除する破棄を含む、
請求項３に記載の通信制御装置。
【請求項５】
前記通信フローのデータ部からデータ識別情報を抽出する解析部をさらに備え、
前記所定の制御情報は、前記クライアント識別情報、前記ヘッダ識別情報、前記プロセス識別情報、及び、前記データ識別情報を含む、
請求項４に記載の通信制御装置。
【請求項６】
サーバ装置との間で通信を行うクライアント装置において実行されるプロセスから送信された複数の通信フローのうち、同一または親子関係にあるプロセスから送信された複数の前記通信フローを、通信パターンとして抽出するステップと、
抽出された前記通信パターンと、不正とされた不正通信パターンとの照合結果に基づいて、前記通信フローの前記サーバ装置への通信制御を行うステップと、
を備えた通信制御方法。
【請求項７】
前記クライアント装置において実行される前記プロセスが、前記サーバ装置に対して、データ通信の通信要求をした場合に、前記通信要求から抽出された識別情報を前記クライアント装置から受信するステップと、
前記クライアント装置から送信された前記通信フローを受信するステップと、
受信された前記通信フローのヘッダ部分と、前記識別情報におけるヘッダ識別情報とを照合し、両者が一致する場合に、前記通信フローと、前記識別情報とを紐付けするステップと、
前記通信フローに紐付けされた前記識別情報が所定の制御情報と一致する場合に、前記通信フローが、前記同一または親子関係にあるプロセスから送信された前記通信フローであるか判断するステップと、
前記通信フローが、前記同一または親子関係にあるプロセスから送信された前記通信フローである場合に、前記通信パターンに前記通信フローを追加するステップと、
をさらに備えた請求項６に記載の通信制御方法。
【請求項８】
サーバ装置との間で通信を行うクライアント装置において実行されるプロセスから送信された複数の通信フローのうち、同一または親子関係にあるプロセスから送信された複数の通信フローを、通信パターンとして抽出させ、
抽出させた前記通信パターンと、不正とされた不正通信パターンとの照合結果に基づいて、前記通信フローの前記サーバ装置への通信制御を行わせる、
ことをコンピュータに実行させる通信制御プログラム。
【請求項９】
前記クライアント装置において実行される前記プロセスが、前記サーバ装置に対して、データ通信の通信要求をした場合に、前記通信要求から抽出された識別情報を前記クライアント装置から受信させ、
前記クライアント装置から送信された前記通信フローを受信させ、
受信させた前記通信フローのヘッダ部分と、前記識別情報におけるヘッダ識別情報とを照合させ、両者が一致する場合に、前記通信フローと、前記識別情報とを紐付けさせ、
前記通信フローに紐付けさせた前記識別情報が所定の制御情報と一致する場合に、前記通信フローが、前記同一または親子関係にあるプロセスから送信された通信フローであるか判断させ、
前記通信フローが、前記同一または親子関係にあるプロセスから送信された通信フローである場合に、前記通信パターンに前記通信フローを追加させる、
ことをさらにコンピュータに実行させる請求項８に記載の通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御装置、通信制御方法及び通信制御プログラムに関し、例えば、高度なセキュリティを確保し得る通信制御装置、通信制御方法及び通信制御プログラムに関する。
【背景技術】
【０００２】
近年、サイバー攻撃は多様化しており、従来型のアンチウィルスソフトでは検知できないマルウェアによる被害が増加している。
【０００３】
特に、最近被害が急増しているマルウェアとして、ファイルレス・マルウェアがある。ファイルレス・マルウェアは、ディスクに実行ファイルを保存することなく、ｐｏｗｅｒｓｈｅｌｌ．ｅｘｅやｃｍｄ．ｅｘｅなど、ＯＳの正規のプロセスを悪用し、プロセス内のメモリ上で動作する。ファイルレス・マルウェアを用いた攻撃の一例としては、まず初めに、ｄｏｃファイルにショートカットファイル（ＬＮＫファイル）を埋め込み、メールに添付して、ターゲットに送信する。メールを受け取ったユーザが、添付されたｄｏｃファイルに埋め込まれたショートカットファイルをダブルクリックすると、ｐｏｗｅｒｓｈｅｌｌ．ｅｘｅが実行される。そして、外部のＷｅｂサイトから、おとり用の文書と、スクリプトがダウンロードされる。その後、ダウンロードされたスクリプトにより、不正プログラムの本体がダウンロードされ、メモリ上で実行される。このように、ファイルレス・マルウェアは、攻撃の中で実行ファイルをディスクに保存しないため、シグネチャベースの従来型のアンチウィルスソフトによるファイルスキャンを回避することができる。
【０００４】
特許文献１では、通信を行うアプリケーションの情報を基に通信制御を行うシステムが記載されている。特許文献1に記載されているシステムは、最初に、エージェントが入っている仮想マシンにおいて、アプリケーションが通信を行う。その際、ＯＳＩ参照モデルのトランスポート層にネットワークソケットイベント要求が到達する前に、エージェントによってインターセプトされる。その後、通信を行うアプリケーションの識別情報をセキュリティサーバに送信し、インターセプトしたネットワークソケットイベント要求の許可又は拒絶の判断を行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１６−５１４２９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示されている通信制御システムでは、ＯＳの正規のプロセスによる、内部ネットワークの特定のサーバとの通信のみを許可する場合には、あらかじめプロセスとサーバ間の通信を許可するルールをセキュリティサーバに登録しておく。これにより、特許文献１に開示されている通信制御システムは、セキュリティを確保することができる。しかし、ＯＳの正規のプロセスによる、外部ネットワークの不特定多数のサーバとの通信を許可する場合、ファイルレス・マルウェア等の正規プロセスを利用したマルウェアの通信もフォワーディングすることとなる。
【０００７】
ファイルレス・マルウェアをはじめとする、ＯＳの正規プロセスを利用したマルウェアの特徴として、攻撃の起点は、フィッシングメール等によって、ユーザがダウンローダのスクリプトを実行することにある。ダウンローダのスクリプトは、ＭＳＨＴＡ．ｅｘｅによって実行されるＪａｖａＳｃｒｉｐｔ（登録商標）や、ｐｏｗｅｒｓｈｅｌｌ．ｅｘｅによって実行されるＰｏｗｅｒＳｈｅｌｌコードなどがある。この時、ダウンロードしてきたスクリプトが、また、別のファイルを別のＷｅｂサイトからダウンロードし、最終的にＣ＆Ｃサーバに接続する、といったように、複数回に分けて外部ネットワークとの通信が行われるケースが多い。
【０００８】
このように、正規プロセスを利用したマルウェアによって行われる複数の通信を伴った攻撃に対するセキュリティを確保することが課題となっていた。
【０００９】
本開示の目的は、上述した課題を鑑み、正規プロセスを利用したマルウェアによって行われる複数の通信フローの解析結果を組み合わせ、通信パターンとして通信制御を行うことで、不正な通信パターンをブロックし、高度なセキュリティを確保し得る通信制御装置、通信制御方法及び通信制御プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
一実施の形態に係る通信制御装置は、サーバ装置との間で通信を行うクライアント装置において実行されるプロセスから送信された複数の通信フローのうち、同一または親子関係にあるプロセスから送信された複数の前記通信フローを、通信パターンとして抽出する通信パターン抽出部と、前記通信パターン抽出部で抽出された前記通信パターンと、不正とされた不正通信パターンとの照合結果に基づいて、前記通信フローの前記サーバ装置への通信制御を行う通信パターン検査部と、を備える。
【発明の効果】
【００１１】
一実施の形態によれば、高度なセキュリティを確保し得る通信制御装置、通信制御方法及び通信制御プログラムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態１に係る通信制御装置の要部を例示したブロック図である。
【図２】実施形態１に係るクライアント装置及び通信制御装置の構成を例示したブロック図である。
【図３】実施形態１に係るクライアント装置及び通信制御装置の構成を例示したブロック図である。
【図４】実施形態１に係る通信制御装置において、識別情報記憶部に格納された識別情報を例示した図である。
【図５】実施形態１に係る通信制御装置において、制御情報記憶部に格納された通信フロー制御情報を例示した図である。
【図６】実施形態１に係る通信制御装置において、通信パターン記憶部に格納された通信パターンを例示した図である。
【図７】実施形態１に係る通信制御装置において、不正通信パターン記憶部に格納された不正通信パターンを例示した図である。
【図８】実施形態１に係るクライアント装置の動作を示すフロー図である。
【図９】実施形態１に係る通信制御装置において、通信フロー送受信部における通信フロー受信処理を例示したフロー図である。
【図１０】実施形態１に係る通信制御装置において、識別情報受信部における識別情報受信処理を例示したフロー図である。
【図１１】実施形態１に係る通信制御装置において、照合部における照合処理を例示したフロー図である。
【図１２】実施形態１に係る通信制御装置において、解析部における解析処理を例示したフロー図である。
【図１３】実施形態１に係る通信制御装置において、通信フロー検査部における通信フロー検査処理を例示したフロー図である。
【図１４】実施形態１に係る通信制御装置において、通信パターン抽出部における通信パターン抽出処理を例示したフロー図である。
【図１５】実施形態１に係る通信制御装置において、通信パターン検査部における通信パターン検査処理を例示したフロー図である。
【図１６】実施形態１に係る通信制御装置において、通信フロー送受信部における通信フロー送信処理を例示したフロー図である。
【図１７】実施形態１に係る通信制御装置において、一時情報削除部における一時情報削除処理を例示したフロー図である。
【図１８】実施形態１に係る通信制御装置において、不正通信パターン制御部における不正通信パターン制御処理を例示したフロー図である。
【発明を実施するための形態】
【００１３】
（実施形態１）
実施形態１に係る通信制御装置を説明する。図１は、実施形態１に係る通信制御装置の要部を例示したブロック図である。図１に示すように、通信制御装置２００は、クライアント装置１００とサーバ装置３００との間のデータ通信を制御するための装置である。クライアント装置１００からサーバ装置３００に対して通信を行う際は、通信制御装置２００を経由することとなる。また、通信制御装置２００は、クライアント装置１００及びサーバ装置３００と共に、通信システムを構築している。
【００１４】
クライアント装置１００は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を含んでいる。クライアント装置１００は、ＯＳ上で動作するプロセス１０１によって、通信制御装置２００を介して、サーバ装置３００に対して通信を行う端末である。プロセス１０１は、サーバ装置３００との間で通信を行うクライアント装置１００において実行される。例えば、クライアント装置１００は、業務用端末である。その場合には、サーバ装置３００は、業務用データを格納するデータベースサーバである。また、プロセス１０１は、業務用データを扱う業務用アプリケーションのプロセスである。
【００１５】
クライアント装置１００のＯＳ上では、プロセス１０１だけでなく、複数のプロセスが動いていてもよい。また、本実施形態では、クライアント装置１００と同様の動作をする別のクライアント装置が複数台あってもよい。
【００１６】
通信制御装置２００は、通信パターン抽出部２１０と、通信パターン検査部２１２とを備えている。通信制御装置２００の概要を説明すると、通信パターン抽出部２１０は、クライアント装置１００において実行されるプロセス１０１から送信された複数の通信フローのうち、同一または親子関係にあるプロセス１０１から送信された複数の通信フローを、通信パターンとして抽出する。通信パターン検査部２１２は、通信パターン抽出部２１０で抽出された通信パターンと、不正とされた不正通信パターンとの照合結果に基づいて、通信フローのサーバ装置３００への通信制御を行う。以下、クライアント装置１００及び通信制御装置２００の詳細を説明する。
【００１７】
図２は、実施形態１に係るクライアント装置及び通信制御装置の構成を例示したブロック図である。図２に示すように、クライアント装置１００は、識別情報抽出部１０３と、識別情報送信部１０４とを備えている。識別情報抽出部１０３は、クライアント装置１００のＯＳ上で実行されるプロセス１０１がサーバ装置３００に対する通信要求を行った場合に、当該通信要求から、識別情報を抽出する。識別情報送信部１０４は、抽出された識別情報を、通信制御装置２００に送信する。
【００１８】
図２に示すように、通信制御装置２００は、識別情報受信部２０１と、通信フロー送受信部２０２と、照合部２０６と、通信フロー検査部２０８と、通信パターン抽出部２１０と、通信パターン検査部２１２とを備えている。
【００１９】
識別情報受信部２０１は、クライアント装置１００において実行されるプロセス１０１が、サーバ装置３００に対して、データ通信の通信要求をした場合に、通信要求から抽出された識別情報をクライアント装置１００から受信する。具体的には、識別情報受信部２０１は、クライアント装置１００において、識別情報抽出部１０３が通信要求から抽出し、識別情報送信部１０４が送信した識別情報を受信する。
【００２０】
通信フロー送受信部２０２は、クライアント装置１００からサーバ装置３００に向けて送信された通信フローを受信する。照合部２０６は、受信された通信フローのヘッダ部分と、識別情報受信部２０１が受信した識別情報におけるヘッダ識別情報とを照合し、両者が一致するかどうかを判定する。例えば、照合部２０６は、両者が一致する場合に、通信フローと、識別情報とを紐付けする。
【００２１】
通信フロー検査部２０８は、照合部２０６による照合の結果、通信フローのヘッダ部分が識別情報のヘッダ識別情報と一致する通信フローが存在する場合に、一致した通信フローに対して、識別情報と、通信フローのヘッダ部分・データ部分と、から得られる情報に基づいて設定した設定ルールに基づいて、通信制御を実行する。具体的には、通信フロー検査部２０８は、設定ルールに基づいて、通信フローの送信を許可・不許可する。また、例えば、通信フロー検査部２０８は、通信フローに紐付けされた識別情報が所定の制御情報と一致する場合に、通信フローを通信パターン抽出部２１０に出力する。
【００２２】
通信パターン抽出部２１０は、通信フロー検査部２０８において、通信フローの送信が許可された場合に、通信フローの受信日時や、通信フローのヘッダ部分、通信フローのデータ部分の解析結果を組み合わせ、通信パターンとして抽出する。通信フローの受信日時や、通信フローのヘッダ部分、通信フローのデータ部分は、プロセス１０１またはプロセス１０１と親子関係にあるプロセスから受信した複数の通信フローから得られる。このようにして、通信パターン抽出部２１０は、同一または親子関係にあるプロセスから送信された複数の通信フローを、通信パターンとして抽出する。また、通信パターン抽出部２１０は、出力された通信フローが、同一または親子関係にあるプロセスから送信された通信フローである場合に、通信パターンに通信フローを追加する。
【００２３】
通信パターン検査部２１２は、プロセス１０１またはプロセス１０１と親子関係にあるプロセスの通信パターンと、不正通信パターンとを照合し、その結果に基づいて、通信制御を行う。具体的には、通信パターン検査部２１２は、通信パターン抽出部２１０で抽出された通信パターンと、不正とされた不正通信パターンとの照合結果に基づいて、通信フローのサーバ装置３００への通信制御を行う。
【００２４】
このように、本実施形態では、通信制御装置２００は、プロセス１０１の通信要求より抽出された識別情報をクライアント装置１００から取得し、当該識別情報を用いて通信制御を行っている。また、単一の通信フローから得られる情報と識別情報だけでなく、同一または親子関係にあるプロセスから受信した複数の通信フローから得られる情報を組み合わせて通信制御を行っている。つまり、本実施形態によれば、通信制御装置２００は、単一の通信フローの解析だけでは得られない情報を利用して、通信制御を行うことができ、その結果、高度なセキュリティの確保が可能となる。
【００２５】
次に、本実施形態におけるクライアント装置１００及び通信制御装置２００の構成についてより具体的に説明する。図３は、実施形態１に係るクライアント装置及び通信制御装置の構成を例示したブロック図である。まず、クライアント装置１００を説明する。
【００２６】
＜クライアント装置＞
図３に示すように、クライアント装置１００は、通信フロー送受信部１０２と、エージェント１０５と、を備えている。
【００２７】
通信フロー送受信部１０２は、プロセス１０１から通信要求が届いた場合に、通信要求に応じたデータを、サーバ装置３００に送信する。通信要求は、例えば、ネットワークソケットイベント要求である。
【００２８】
エージェント１０５は、上述した識別情報抽出部１０３と、上述した識別情報送信部１０４とを有している。エージェント１０５は、クライアント装置１００にインストールされたプログラムによって構築されている。よって、識別情報抽出部１０３及び識別情報送信部１０４も、プログラムによって構築されている。
【００２９】
識別情報抽出部１０３は、本実施形態では、通信要求がプロセス１０１から通信フロー送受信部１０２に届く前に、この通信要求をインターセプトする。そして、識別情報抽出部１０３は、この通信要求から識別情報（後述）を抽出する。識別情報抽出部１０３は、抽出した識別情報を識別情報送信部１０４に出力する。また、この時、識別情報抽出部１０３は、通信ログを監視し、通信ログに基づいて、識別情報を抽出しても良い。
【００３０】
識別情報は、ヘッダ識別情報と、プロセス識別情報と、クライアント識別情報と、を含む。ヘッダ識別情報は、ＯＳＩ参照モデルのトランスポート層以下の情報である。ヘッダ識別情報としては、例えば、ＩＰヘッダに含まれるＩＰアドレス、及び、ＴＣＰ／ＵＤＰヘッダに含まれるポート番号が挙げられる。プロセス識別情報は、通信を行ったプロセスを識別するための情報である。プロセス識別情報としては、例えば、プロセス名、親プロセス名、実行ユーザ名が挙げられる。クライアント識別情報は、クライアント装置１００を識別するための識別情報である。クライアント識別情報としては、例えば、コンピュータ名、ＯＳ名が挙げられる。
【００３１】
識別情報送信部１０４は、識別情報抽出部１０３から受け取った識別情報を、通信制御装置２００に対して送信する。
【００３２】
このような構成により、エージェント１０５は、クライアント装置１００が外部と通信を行う際に、通信の要求元であるプロセス１０１の識別情報と、クライアント装置１００の識別情報と、通信フローのヘッダ識別情報と、を紐付け、これらを通信制御装置２００に送信する。
【００３３】
＜通信制御装置＞
次に、通信制御装置２００の構成を具体的に説明する。本実施形態において、通信制御装置２００は、クライアント装置１００からサーバ装置３００に送信される通信フローを検査し、検査結果に応じて通信フローを中継するか否かを判定する。
【００３４】
図３に示すように、本実施形態では、通信制御装置２００は、上述した構成に加え、通信フロー記憶部２０３と、識別情報記憶部２０４と、制御情報記憶部２０５と、解析部２０７と、通信パターン記憶部２０９と、不正通信パターン記憶部２１１、一時情報削除部２１３と、不正通信パターン制御部２１４とを備える。
【００３５】
識別情報受信部２０１は、本実施形態では、エージェント１０５がインストールされた複数のクライアント装置１００から、識別情報が送信されてくると、これを受信し、受信した識別情報と、受信時刻と、エントリ番号と、を識別情報記憶部２０４に格納する。エントリ番号は、識別情報記憶部２０４に格納する識別情報ごとに一意に割り当てられる番号である。
【００３６】
識別情報記憶部２０４は、識別情報を格納する。識別情報記憶部２０４は、例えば、データベースである。
【００３７】
図４は、実施形態１に係る通信制御装置において、識別情報記憶部に格納された識別情報を例示した図である。図４に示すように、識別情報記憶部２０４には、エントリ番号と、各識別情報と、受信時刻と、が格納されている。識別情報は、クライアント識別情報、ヘッダ識別情報、プロセス識別情報を含んでいる。クライアント情報は、コンピュータ名及びＯＳを含む。ヘッダ識別情報は、送信元ＩＰアドレス及び宛先ＩＰアドレスを有するＩＰヘッダと、送信元ポート番号及び宛先ポート番号を有するＴＣＰヘッダとを含む。プロセス識別情報は、プロセス名、プロセスＩＤ、親プロセス名、親プロセスＩＤを有するプロセスと、ユーザ名、ユーザＩＤ、所属グループ名、所属グループＩＤを有する実行ユーザと、を含む。
【００３８】
通信フロー送受信部２０２は、本実施形態では、クライアント装置１００からサーバ装置３００宛に送信された通信フローを受信する。そして、通信フロー送受信部２０２は、受信した通信フローと、通信フロー格納位置情報（後述）と、を通信フロー記憶部２０３に格納する。また、通信フロー送受信部２０２は、本実施形態では、通信フロー格納位置情報に基づいて、該当する位置に格納された通信フローを送信する。
【００３９】
通信フロー格納位置情報は、通信フロー記憶部２０３における通信フローが格納されている場所を特定するための情報である。通信フロー格納位置情報は、例えば、バッファＩＤである。
【００４０】
通信フロー記憶部２０３は、通信フローを記憶する。通信フロー記憶部２０３は、例えば、メモリの受信バッファである。
【００４１】
このような構成により、通信制御装置２００は、クライアント装置１００から送信された通信フローを中継する。また、通信制御装置２００は、本来の宛先であるサーバ装置３００への通信フローの送信を保留することができる。
【００４２】
照合部２０６は、本実施形態では、通信フロー記憶部２０３に格納されている通信フローのヘッダ部分と、識別情報記憶部２０４に格納されているエントリ（入力データ）のヘッダ識別情報と、を照合する。照合部２０６は、照合処理でマッチする通信フローが見つかった場合には、当該エントリ番号と、当該通信フローの通信フロー格納位置情報とを解析部２０７に出力する。一方、見つからなかった場合、照合部２０６は、処理を終了する。
【００４３】
なお、照合部２０６は、照合処理を、定期的に実行してもよいし、通信フロー送受信部２０２による通信フロー記憶部２０３への通信フローの格納をトリガーとして、照合処理を実行してもよい。また、照合部２０６は、識別情報受信部２０１による識別情報記憶部２０４への識別情報の格納をトリガーとして、照合処理を実行しても良い。
【００４４】
このような構成により、クライアント装置１００から送信された通信フローの送信元プロセス、プロセスの実行ユーザ等、通信フローのヘッダ情報から得られない情報と、通信フローとが紐付けられることになる。言い換えると、クライアント装置１００のエージェント１０５が抽出した識別情報と通信フローとが紐付けられる。
【００４５】
解析部２０７は、照合部２０６から識別情報記憶部２０４のエントリ番号と通信フロー格納位置情報を受け取ると、受け取った通信フロー格納位置情報に基づいて、通信フロー記憶部２０３にある通信フローを特定する。また、解析部２０７は、特定した通信フローに対して、データ部の解析を行い、データ識別情報（後述）を抽出する。そして、解析部２０７は、通信フロー格納位置情報と、識別情報記憶部２０４のエントリ番号と、解析結果から抽出したデータ識別情報（後述）と、を通信フロー検査部２０８に出力する。なお、解析部２０７は、本実施形態では、通信制御装置２００の内部に含む構成としているが、通信制御装置２００の外側から接続する構成としてもよい。
【００４６】
データ識別情報は、解析部２０７が、通信フローのデータ部から抽出する情報であり、通信フローに含まれるデータの内容を特定する。具体的には、データ識別情報は、データの内容として、例えば、データベースへのレコードの挿入（INSERT）、クレジットカード等の秘密情報の取り出し（SELECT）等を特定する。
【００４７】
制御情報記憶部２０５は、通信フロー制御情報（後述）を記憶する。制御情報記憶部２０５は、例えば、データベースである。
【００４８】
通信フロー制御情報は、通信フロー検査部２０８によって通信フロー送信の許可又は破棄を判定するために使用される情報である。通信フロー制御情報は、予め、制御情報記憶部２０５に登録されている必要がある。
【００４９】
図５は、実施形態１に係る通信制御装置において、制御情報記憶部に格納された通信フロー制御情報を例示した図である。図５に示すように、通信フロー制御情報は、クライアント識別情報と、ヘッダ識別情報と、プロセス識別情報と、データ識別情報と、制御方法と、を含む。データ識別情報は、データ部の内容を有し、例えば、レコードの削除、レコードの更新、秘密情報の取り出しを含むデータベースと、添付ファイルを含むメートと、を有している。制御方法は、通信パターン検査、許可、破棄を有している。
【００５０】
通信フロー制御情報は、クライアント識別情報と、ヘッダ識別情報と、プロセス識別情報と、データ識別情報と、に一致するエントリ（入力データ）がある場合に、通信フロー検査部２０８が、対象の通信フローの通信制御の内容を決定する情報である。通信フロー制御情報によって決定される通信制御としては、例えば、通信フローの送信の許可、及び、破棄が挙げられる。通信フロー制御情報も、通信フロー検査部２０８による通信制御のルールを規定している。
【００５１】
通信フロー検査部２０８は、本実施形態では、ヘッダ識別情報と、プロセス識別情報と、クライアント識別情報と、データ識別情報と、通信フロー制御情報とに基づいて、通信制御を行う。具体的には、通信フロー検査部２０８は、解析部２０７から受け取ったエントリ番号に基づいて、識別情報記憶部２０４から当該エントリ（入力データ）のクライアント識別情報と、ヘッダ識別情報と、プロセス識別情報と、を読み込む。そして、通信フロー検査部２０８は、読み込んだ各情報と、解析部２０７から受け取ったデータ識別情報とが、制御情報記憶部２０５に格納されているエントリとマッチする場合に、当該エントリの制御方法に基づいて、通信フローの制御方法を決定する。
【００５２】
例えば、制御方法が「通信パターン検査」の場合、通信フロー検査部２０８は、通信パターン抽出部２１０に通信フロー格納位置情報と、識別情報記憶部２０４のエントリ番号と、データ識別情報と、を出力する。また、制御方法が「許可」の場合、通信フロー検査部２０８は、通信フロー送受信部２０２に通信フロー格納位置情報を出力する。更に、制御方法が「破棄」の場合、通信フロー検査部２０８は、不正通信パターン制御部２１４にプロセス識別情報を出力し、通信フロー記憶部２０３の通信フローを破棄する。
【００５３】
このように、通信フロー制御情報は、例えば、所定の制御情報として、クライアント識別情報、ヘッダ識別情報、プロセス識別情報、データ識別情報の他に、制御方法を含んでいる。制御方法は、通信フローを通信パターン抽出部２１０に出力する通信パターン検査、通信フローをサーバ装置３００に送信する許可、及び、通信フローを削除する破棄を含んでいる。
【００５４】
このような構成により、通信制御装置２００によれば、通信フローのヘッダ情報と、データ部の解析結果と、通信フローの送信元プロセスの情報と、クライアント装置１００の情報と、を組み合わせた柔軟な通信制御が可能となる。
【００５５】
例えば、特定のクライアント−データベースサーバ間の通信において、あるアプリケーションに対しては、データの参照（ＳＥＬＥＣＴ）のみ許可し、別のアプリケーションに対しては、参照（ＳＥＬＥＣＴ）、挿入（ＩＮＳＥＲＴ）、更新（ＵＰＤＡＴＥ）、削除（ＤＥＬＥＴＥ）の全てを許可する、という通信制御が可能となる。
【００５６】
しかしながら、プロセス１０１が外部ネットワークの任意のサーバと通信を行うアプリケーションのプロセスである場合、単一の通信フローの検査だけでは不正な通信なのか判断できないケースがある。そのため、制御情報記憶部２０５で、プロセス１０１から外部ネットワークに対する通信の制御方法を「通信パターン検査」とすることで、後述する通信パターン検査部２１２で、複数の通信フローの解析結果を組み合わせた通信パターンに基づいて、通信制御を行うことが可能である。
【００５７】
一方で、ＤＮＳのように高頻度で行われる通信や、通信パターン検査が必要ない内部ネットワーク間の通信については、制御情報記憶部２０５で制御方法を「許可」にしておくことで、通信パターン検査対象から除外することが可能である。
【００５８】
通信パターン記憶部２０９は、通信パターン（後述）を記憶する。通信パターン記憶部２０９は、例えば、データベースである。
【００５９】
通信パターンは、プロセス識別情報と、クライアント識別情報と、ヘッダ識別情報と、データ識別情報とに基づいて決定される情報である。
【００６０】
図６は、実施形態１に係る通信制御装置において、通信パターン記憶部に格納された通信パターンを例示した図である。図６に示すように、通信パターン記憶部２０９は、同一または親子関係にあるプロセスが送信する通信フローを１つの通信パターンとして格納する。通信パターンは、例えば、通信パターンＩＤと、通信フローの受信順序と、ＰＩＤ（プロセスＩＤ）と、ＰＰＩＤ（親プロセスＩＤ）と、プロセス名と、ＯＳと、プロトコルと、ダウンロードファイルタイプと、受信時刻とを含む。図６に示すカラムの他にも、プロセス識別情報と、クライアント識別情報と、ヘッダ識別情報と、データ識別情報と、に含まれる他の情報をカラムに追加してもよい。
【００６１】
通信パターン抽出部２１０は、本実施形態では、クライアント識別情報と、ヘッダ識別情報と、プロセス識別情報と、データ識別情報とに基づいて、通信パターンを抽出する。具体的には、通信パターン抽出部２１０は、通信フロー検査部２０８から、通信フロー格納位置情報と、識別情報記憶部２０４のエントリ番号と、データ識別情報とを受け取る。通信パターン記憶部２０９の中に、プロセス識別情報に含まれるＰＩＤまたはＰＰＩＤと、ＰＩＤまたはＰＰＩＤが一致するエントリ（入力データ）が存在する場合に、当該エントリと同じ通信パターンＩＤで、通信パターンのエントリを追加する。一致するエントリが存在しない場合は、新規通信パターンＩＤで、通信パターンのエントリを追加する。その後、通信パターン検査部２１２に、追加したエントリの通信パターンＩＤと、通信フロー格納位置情報とを出力する。
【００６２】
不正通信パターン記憶部２１１は、不正通信パターン（後述）を記憶する。通信パターン記憶部２０９は、例えば、データベースである。
【００６３】
不正通信パターンは、不正なプロセスによる通信パターンを表しており、通信パターン検査部２１２によって、通信フロー送信の許可又は破棄を判定するために使用される情報である。不正通信パターンは、不正通信パターン制御部２１４を介して不正通信パターン記憶部２１１に登録される。
【００６４】
図７は、実施形態１に係る通信制御装置において、不正通信パターン記憶部に格納された不正通信パターンを例示した図である。図７に示すように、不正通信パターン記憶部２１１には、不正通信パターンとして、通信パターンＩＤ、順序、プロセス名、ＯＳ、プロトコル、ダウンロードファイルタイプが格納されている。この他にも、プロセス識別情報と、クライアント識別情報と、ヘッダ識別情報と、データ識別情報と、に含まれる他の情報をカラムに追加してもよい。
【００６５】
通信パターン検査部２１２は、本実施形態では、通信パターンと、不正通信パターンとに基づいて、通信制御を行う。具体的には、通信パターン検査部２１２は、通信パターン抽出部２１０から受け取った通信パターンＩＤに基づいて、通信パターン記憶部２０９から、通信パターンＩＤが一致するエントリ（入力データ）を読み込む。そして、読み込んだエントリに含まれる各情報（図６の場合、順序、プロセス名、ＯＳ、プロトコル、ダウンロードファイルタイプ）が一致する不正通信パターン記憶部２１１のエントリが存在する場合、不正な通信パターンと見なす。そして、通信パターン検査部２１２は、通信フロー格納位置情報に基づいて、通信フロー記憶部２０３の通信フローを破棄する。通信パターン検査部２１２は、一致するエントリが存在しない場合、通信フロー送受信部２０２に通信フロー格納位置情報を出力する。
【００６６】
本実施形態では、通信パターンと不正通信パターンのカラムの値が一致した場合に不正な通信パターンと判定した。しかしながら、別の実施形態では、各カラムに優先度をつけ、優先度の低いカラムの一部が一致していなくても、不正な通信パターンと見なしてもよい。さらに、別の実施形態では、各カラムに重み付けを行い、カラムが一致する度に重みに応じたスコアを加算し、スコアが閾値を超えた場合に不正な通信パターンと見なしてもよい。
【００６７】
このような構成により、単一の通信フローの検査だけでは不正な通信なのか判断できないケースにおいても、複数の通信フローの解析結果を組み合わせた通信パターンに基づいて、通信制御を行うことが可能である。
【００６８】
一時情報削除部２１３は、識別情報記憶部２０４と通信パターン記憶部２０９とを監視し、受信時刻に基づいて、一定時間が経過したエントリを削除する。具体的には、一時情報削除部２１３は、識別情報記憶部２０４に格納されたエントリと、通信パターン記憶部２０９に格納されたエントリの受信時刻を参照し、現在時刻から当該時刻を引いた時間が、予め設定された時間を超えている場合に、当該エントリを削除する。同様に、なお、一時情報削除部２１３は、削除処理を、定期的に実行してもよいし、別途、プロセス１０１が終了したタイミングでクライアント装置１００から通知を受け取り、通知をトリガーとして実行してもよい。
【００６９】
このような構成により、通信制御装置２００は、受信してから一定時間が経過した識別情報を削除することで、不要に読み込まれるエントリ数を減らし、照合部２０６における照合処理および通信パターン抽出部２１０における通信パターン抽出処理の速度を向上させることができる。
【００７０】
不正通信パターン制御部２１４は、本実施形態では、不正通信パターン記憶部２１１へのエントリの追加・更新・削除を行う。具体的には、不正通信パターン制御部２１４は、通信フロー検査部２０８から受け取ったプロセス識別情報に基づいて、通信パターン記憶部２０９の中に、プロセス識別情報に含まれるＰＩＤまたはＰＰＩＤと、ＰＩＤまたはＰＰＩＤが一致するエントリが存在するかを確認する。ここで、エントリが存在する場合、当該エントリの通信パターンを不正通信パターンとして、不正通信パターン記憶部２１１に新規エントリを追加する。また、不正通信パターン制御部２１４は、通信制御装置２００の外部から、不正通信パターン記憶部２１１の不正通信パターンの追加・更新・削除依頼を受け付けてもよい。
【００７１】
このような構成により、不正通信パターンをリアルタイムに追加・更新・削除できるため、サイバー攻撃にいち早く対応することができる。例えば、ダウンローダによる外部サーバとの数回の通信を、通信フロー検査および通信パターン検査で許可してしまったものの、その後の秘密文書を持ち出す通信を通信フロー検査で破棄できたとする。この時、何も対策を実施しないと、同様の手法で別の攻撃を実施される恐れがある。しかし、本実施の形態によれば、通信フロー検査で秘密文書を持ち出す通信フローを破棄する際に、当該プロセスと当該プロセスの親子プロセスによって行われた通信の通信パターンを、不正通信パターンとして登録するため、その後、同様の攻撃が実施されても、秘密文書を持ち出す前の通信を破棄することができる。
【００７２】
＜クライアント装置の動作＞
次に、クライアント装置１００及び通信制御装置２００の動作について、図８〜図１８を用いて説明する。また、以下の説明においては、適宜、図１〜図７を参照する。また、本実施形態では、クライアント装置１００と通信制御装置２００とを動作させることによって、通信制御方法が実施される。よって、本実施形態における通信制御方法の説明は、以下のクライアント装置１００及び通信制御装置２００の動作の説明に代える。
【００７３】
最初に、図８を用いて、本実施形態におけるクライアント装置１００の動作について説明する。図８は、実施形態１に係るクライアント装置の動作を示すフロー図である。具体的には、図８は、エージェント１０５の検出処理及び識別情報送信処理を示している。
【００７４】
図８に示すように、まず、クライアント装置１００において、識別情報抽出部１０３は、クライアント装置１００上で動作するプロセス１０１がサーバ装置３００に対して通信要求を出すと、この通信要求が通信フロー送受信部１０２に到達する前に、これをインターセプトする（ステップＳ１０１）。
【００７５】
次に、識別情報抽出部１０３は、インターセプトした通信要求から識別情報を抽出する（ステップＳ１０２）。
【００７６】
次に、識別情報抽出部１０３は、通信フロー送受信部１０２を介して、サーバ装置３００に、インターセプトした通信要求を送信する（ステップＳ１０３）。次に、識別情報抽出部１０３は、抽出した識別情報を識別情報送信部１０４に出力する（ステップＳ１０４）。
【００７７】
その後、識別情報送信部１０４は、識別情報抽出部１０３から出力された識別情報を、通信制御装置２００に対して送信する（ステップＳ１０５）。
【００７８】
＜通信制御装置の動作＞
続いて、図９〜図１８を用いて、本実施形態における通信制御装置２００の動作について説明する。図９は、実施形態１に係る通信制御装置において、通信フロー送受信部における通信フロー受信処理を例示したフロー図である。
【００７９】
図９に示すように、まず、通信フロー送受信部２０２は、クライアント装置１００の通信フロー送受信部１０２からサーバ装置３００宛に送信された通信フローを受信する（ステップＳ２０１）。すなわち、クライアント装置１００から送信された通信フローを受信する。次に、通信フロー送受信部２０２は、ステップＳ２０１で受信した通信フローを、通信フロー記憶部２０３に格納する（ステップＳ２０２）。
【００８０】
図１０は、実施形態１に係る通信制御装置において、識別情報受信部における識別情報受信処理を例示したフロー図である。図１０に示すように、まず、識別情報受信部２０１は、クライアント装置１００の識別情報送信部１０４から送信された識別情報を受信する（ステップＳ３０１）。すなわち、クライアント装置１００において実行されるプロセス１０１が、サーバ装置３００に対して、データ通信の通信要求をした場合に、通信要求から抽出された識別情報をクライアント装置１００から受信する。次に、識別情報受信部２０１は、受信した識別情報と、受信時刻と、エントリ番号と、を識別情報記憶部２０４に格納する（ステップＳ３０２）。
【００８１】
図１１は、実施形態１に係る通信制御装置において、照合部における照合処理を例示したフロー図である。図１１に示すように、まず、照合部２０６は、ステップＳ２０２又はステップＳ３０２を契機として、ステップＳ４０１に進む。ステップＳ４０１では、照合部２０６は、識別情報記憶部２０４に格納されているエントリ（入力データ）を読み込み、ステップＳ４０２に進む。
【００８２】
ステップＳ４０２で、照合部２０６は、通信フロー記憶部２０３に格納されている通信フローのヘッダ部を解析する。その後、照合部２０６は、ヘッダ識別情報が一致するヘッダをもつ通信フローが存在するかどうかを判定する（ステップＳ４０３）。
【００８３】
ステップＳ４０３の判定の結果、ヘッダ識別情報が一致するヘッダをもつ通信フローが存在しない場合は、照合部２０６は、処理を終了する。一方、ステップＳ４０３の判定の結果、ヘッダ識別情報が一致するヘッダをもつ通信フローが存在する場合は、照合部２０６は、解析部２０７に、当該エントリのエントリ番号と、当該通信フローの通信フロー格納位置情報とを出力する（ステップＳ４０４）。このように、照合部２０６は、受信された通信フローのヘッダ部分と、識別情報におけるヘッダ識別情報とを照合し、両者が一致する場合に、通信フローと、識別情報とを紐付けする。
【００８４】
図１２は、実施形態１に係る通信制御装置において、解析部における解析処理を例示したフロー図である。図１２に示すように、まず、解析部２０７は、照合部２０６から、通信フロー格納位置情報と、識別情報記憶部２０４のエントリ番号と、を受け取る（ステップＳ５０１）。
【００８５】
次に、解析部２０７は、通信フロー格納位置情報に基づいて特定した通信フロー記憶部２０３の通信フローを読み込む（ステップＳ５０２）。
【００８６】
次に、解析部２０７は、読み込んだ通信フローのデータ部を解析する（ステップＳ５０３）。その後、解析部２０７は、通信フロー格納位置情報と、識別情報記憶部２０４のエントリ番号と、解析結果に基づいて抽出したデータ識別情報と、を通信フロー検査部２０８に出力する（ステップＳ５０４）。
【００８７】
図１３は、実施形態１に係る通信制御装置において、通信フロー検査部における通信フロー検査処理を例示したフロー図である。図１３に示すように、まず、通信フロー検査部２０８は、解析部２０７から、通信フロー格納位置情報と、識別情報記憶部２０４のエントリ番号と、データ識別情報と、を受け取る（ステップＳ６０１）。
【００８８】
次に、通信フロー検査部２０８は、エントリ番号に基づいて、識別情報記憶部２０４の当該エントリを読み込む（ステップＳ６０２）。次に、通信フロー検査部２０８は、制御情報記憶部２０５のエントリ（入力データ）を読み込む（ステップＳ６０３）。
【００８９】
次に、通信フロー検査部２０８は、識別情報記憶部２０４のエントリのヘッダ識別情報と、プロセス識別情報と、クライアント識別情報と、受け取ったデータ識別情報とに一致するエントリが、制御情報記憶部２０５に存在するかどうかを判定する（ステップＳ６０４）。
【００９０】
ステップＳ６０４の判定の結果、一致するエントリが制御情報記憶部２０５に存在しない場合は、通信フロー検査部２０８は、ステップＳ６０５に進む。一方、ステップＳ６０４の判定の結果、一致するエントリが制御情報記憶部２０５に存在する場合は、通信フロー検査部２０８は、ステップＳ６０６に進む（ステップＳ６０４）。
【００９１】
ステップＳ６０５では、通信フロー検査部２０８は、ステップＳ６０２で読み込んだエントリのプロセス識別情報を、不正通信パターン制御部２１４に出力する（ステップＳ６０５）。次に、通信フロー検査部２０８は、通信フロー格納位置情報に基づいて特定した通信フロー記憶部２０３の通信フローを破棄する（ステップＳ６１０）。
【００９２】
ステップＳ６０６では、通信フロー検査部２０８は、当該エントリの制御方法が「破棄」であるかどうかを判定する。ステップＳ６０６の判定の結果、当該エントリの制御方法が「破棄」である場合は、通信フロー検査部２０８は、ステップＳ６０５に進む。一方、ステップＳ６０６の判定の結果、当該エントリの制御方法が「破棄」でない場合は、通信フロー検査部２０８は、ステップＳ６０７に進む。
【００９３】
ステップＳ６０７では、通信フロー検査部２０８は、当該エントリの制御方法が「許可」であるかどうかを判定する。ステップＳ６０７の判定の結果、当該エントリの制御方法が「許可」である場合は、通信フロー検査部２０８は、ステップＳ６０８に進む。一方、ステップＳ６０７の判定の結果、当該エントリの制御方法が「許可」でない場合は、通信フロー検査部２０８は、ステップＳ６０９に進む。すなわち、通信フローに紐付けされた識別情報が、所定の制御情報として、「通信パターン検査」に一致する場合は、ステップＳ６０９に進む。
【００９４】
ステップＳ６０８では、通信フロー検査部２０８は、通信フロー格納位置情報を通信フロー送受信部２０２に出力する。ステップＳ６０９では、通信フロー検査部２０８は、通信フロー格納位置情報等を通信パターン抽出部２１０に出力する。
【００９５】
図１４は、実施形態１に係る通信制御装置において、通信パターン抽出部における通信パターン抽出処理を例示したフロー図である。図１４に示すように、まず、通信パターン抽出部２１０は、通信フロー検査部２０８から、通信フロー格納位置情報と、識別情報記憶部２０４のエントリ番号と、データ識別情報と、を受け取る（ステップＳ７０１）。
【００９６】
次に、通信パターン抽出部２１０は、エントリ番号に基づいて、識別情報記憶部２０４の当該エントリを読み込む（ステップＳ７０２）。次に、通信パターン抽出部２１０は、通信パターン記憶部２０９のエントリを読み込む（ステップＳ７０３）。
【００９７】
次に、通信パターン抽出部２１０は、識別情報記憶部２０４のエントリのプロセス識別情報に含まれるＰＩＤまたはＰＰＩＤが、ステップＳ７０３で読み込んだエントリのＰＩＤまたはＰＰＩＤと一致するかどうかを判定する（ステップＳ７０４）。
【００９８】
ステップＳ７０４の判定の結果、一致するエントリが通信パターン記憶部２０９に存在する場合は、通信パターン抽出部２１０は、ステップＳ７０５に進む。一方、ステップＳ７０４の判定の結果、一致するエントリが通信パターン記憶部２０９に存在しない場合は、通信パターン抽出部２１０は、ステップＳ７０６に進む（ステップＳ７０４）。
【００９９】
ステップＳ７０５では、通信パターン抽出部２１０は、通信パターンＩＤをステップＳ７０４で一致したエントリと同じ値に、順序を前記エントリの最大値＋１に、その他のカラムはステップＳ７０２で読み込んだエントリに含まれる情報に基づいて決定して、新規エントリを通信パターン記憶部に追加し、ステップＳ７０７に進む（ステップＳ７０５）。このように、通信フローが、同一または親子関係にあるプロセスから送信された通信フローであるか判断し、通信フローが、同一または親子関係にあるプロセスから送信された通信フローである場合に、通信パターンに通信フローを追加する。
【０１００】
ステップＳ７０６では、通信パターン抽出部２１０は、通信パターンＩＤを既存のエントリと重複しない最小の正数に、順序を１に、その他のカラムをＳ７０２で読み込んだエントリの識別情報を基に決定して、新規エントリを通信パターン記憶部に追加し、ステップＳ７０７に進む（ステップＳ７０６）。
【０１０１】
ステップＳ７０７では、通信パターン抽出部２１０は、追加したエントリの通信パターンＩＤと、通信フロー格納位置情報とを通信パターン検査部２１２に出力する（ステップＳ７０７）。
【０１０２】
図１５は、実施形態１に係る通信制御装置において、通信パターン検査部における通信パターン検査処理を例示したフロー図である。図１５に示すように、まず、通信パターン検査部２１２は、通信パターン抽出部２１０から、通信パターンＩＤと、通信フロー格納位置情報と、を受け取る（ステップＳ８０１）。
【０１０３】
次に、通信パターン検査部２１２は、通信パターンＩＤに基づいて、通信パターン記憶部２０９の当該エントリを読み込む（ステップＳ８０２）。次に、通信パターン検査部２１２は、不正通信パターン記憶部２１１のエントリを読み込む（ステップＳ８０３）。
【０１０４】
次に、通信パターン検査部２１２は、Ｓ８０２で読み込んだエントリの各カラムの情報が、不正通信パターン記憶部のエントリと一致するかどうかを判定する（ステップＳ８０４）。
【０１０５】
ステップＳ８０４の判定の結果、一致するエントリが不正通信パターン記憶部２１１に存在する場合は、通信パターン検査部２１２は、ステップＳ８０５に進む。一方、ステップＳ８０４の判定の結果、一致するエントリが不正通信パターン記憶部２１１に存在しない場合は、通信パターン検査部２１２は、ステップＳ８０６に進む（ステップＳ８０４）。
【０１０６】
ステップＳ８０５では、通信パターン検査部２１２は、通信フロー格納位置情報に基づいて特定した通信フロー記憶部２０３の通信フローを破棄する（ステップＳ８０５）。ステップＳ８０６では、通信パターン検査部２１２は、通信フロー格納位置情報を通信フロー送受信部２０２に出力する（ステップＳ８０６）。
【０１０７】
図１６は、実施形態１に係る通信制御装置において、通信フロー送受信部における通信フロー送信処理を例示したフロー図である。図１６に示すように、まず、通信フロー送受信部２０２は、通信フロー検査部２０８または通信パターン検査部２１２から、通信フロー格納位置情報を受け取る（ステップＳ９０１）。
【０１０８】
次に、通信フロー送受信部２０２は、通信フロー格納位置情報を基に特定した通信フロー記憶部２０３の通信フローを読み込む（ステップＳ９０２）。その後、通信フロー送受信部２０２は、ステップＳ８０２で読み込んだ通信フローをサーバ装置３００宛に送信する（ステップＳ９０３）。
【０１０９】
図１７は、実施形態１に係る通信制御装置において、一時情報削除部における一時情報削除処理を例示したフロー図である。図１７に示すように、まず、一時情報削除部２１３は、一定時間が経過したこと、又は通信制御装置２００で発生するイベントを契機として、ステップＳ１００１に進む。ステップＳ１００１では、一時情報削除部２１３は、識別情報記憶部２０４と、通信パターン記憶部２０９とに格納されているエントリを読み込む。
【０１１０】
次に、一時情報削除部２１３は、読み込んだエントリの受信時刻を、現在時刻から引いた時間が、予め設定した時間を超えているかどうかを判定する（ステップＳ１００２）。
【０１１１】
ステップＳ１００２の判定の結果、予め設定した時間を超えている場合は、一時情報削除部２１３は、ステップＳ１００１で読み込んだエントリを削除する（ステップＳ１００３）。
【０１１２】
一方、ステップＳ１００２の判定の結果、予め設定した時間を超えていない場合、一時情報削除部２１３は、処理を終了する。
【０１１３】
図１８は、実施形態１に係る通信制御装置において、不正通信パターン制御部における不正通信パターン制御処理を例示したフロー図である。図１８に示すように、まず、不正通信パターン制御部２１４は、通信フロー検査部２０８から、プロセス識別情報を受け取る（ステップＳ１１０１）。
【０１１４】
次に、不正通信パターン制御部２１４は、通信パターン記憶部２０９のエントリを読み込む（ステップＳ１１０２）。次に、不正通信パターン制御部２１４は、プロセス識別情報に含まれるＰＩＤまたはＰＰＩＤが、ステップＳ１１０２で読み込んだエントリのＰＩＤまたはＰＰＩＤと一致するかどうかを判定する（ステップＳ１１０３）。
【０１１５】
ステップＳ１１０３の判定の結果、一致するエントリが通信パターン記憶部２０９に存在しない場合は、そのまま終了する。一方、ステップＳ１１０３の判定の結果、一致するエントリが通信パターン記憶部２０９に存在する場合は、不正通信パターン制御部２１４は、ステップＳ１１０４に進む（ステップＳ１１０３）。
【０１１６】
ステップＳ１１０４では、不正通信パターン制御部２１４は、ステップＳ１１０３で一致したエントリの通信パターンを不正通信パターンとして、不正通信パターン記憶部２１１に新規エントリを追加する（ステップＳ１１０４）。
このようにして、通信制御装置２００は、クライアント装置１００とサーバ装置３００との間の通信を制御することができる。
【０１１７】
次に、本実施形態の効果を説明する。本実施形態の通信制御装置２００によれば、通信フローの送信元プロセスと同一または親子関係にあるプロセスが送信する通信フローを解析し、解析した結果を組み合わせた通信パターンに基づいて、クライアント装置１００及びサーバ装置３００間の通信を制御することができる。これにより、単一の通信フローの解析だけでは実現できない、高度なセキュリティの確保が可能となる。
【０１１８】
また、本実施形態の通信制御装置２００は、クライアント装置１００におけるプロセス１０１の要求から抽出された識別情報を取得し、この識別情報を用いて通信制御を行っている。よって、複数の通信フローを所定の識別情報で抽出・検査することができる。
【０１１９】
例えば、ファイルレス・マルウェアをはじめとする、ＯＳの正規プロセスを利用したマルウェアによって行われる複数の通信を、通信パターンとして抽出・検査することで、不正な通信をブロックすることが可能である。
【０１２０】
また、不正通信パターンを手動で登録するだけでなく、通信フロー検査の結果を基に不正通信パターンを自動登録することで、リアルタイムに同種の攻撃の対策を行うことが可能となる。
【０１２１】
このように、本実施形態の通信制御装置は、正規プロセスを利用したマルウェアによって行われる複数の通信フローの解析結果を組み合わせ、通信パターンとして通信制御を行うことで、不正な通信パターンをブロックし、高度なセキュリティを確保することができる。
【０１２２】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、本実施形態における通信制御方法をコンピュータに実行させる以下の通信制御プログラムも、実施形態の技術的思想の範囲に含まれる。
【０１２３】
すなわち、サーバ装置との間で通信を行うクライアント装置において実行されるプロセスから送信された複数の通信フローのうち、同一または親子関係にあるプロセスから送信された複数の通信フローを、通信パターンとして抽出させ、
抽出させた前記通信パターンと、不正とされた不正通信パターンとの照合結果に基づいて、前記通信フローの前記サーバ装置への通信制御を行わせる、
ことをコンピュータに実行させる通信制御プログラム。
【０１２４】
前記クライアント装置において実行される前記プロセスが、前記サーバ装置に対して、データ通信の通信要求をした場合に、前記通信要求から抽出された識別情報を前記クライアント装置から受信させ、
前記クライアント装置から送信された前記通信フローを受信させ、
受信させた前記通信フローのヘッダ部分と、前記識別情報におけるヘッダ識別情報とを照合させ、両者が一致する場合に、前記通信フローと、前記識別情報とを紐付けさせ、
前記通信フローに紐付けさせた前記識別情報が所定の制御情報と一致する場合に、前記通信フローが、前記同一または親子関係にあるプロセスから送信された通信フローであるか判断させ、
前記通信フローが、前記同一または親子関係にあるプロセスから送信された通信フローである場合に、前記通信パターンに前記通信フローを追加させる、
ことをさらにコンピュータに実行させる請求項８に記載の通信制御プログラム。
【符号の説明】
【０１２５】
１００  クライアント装置
１０１  プロセス
１０２  通信フロー送受信部
１０３  識別情報抽出部
１０４  識別情報送信部
１０５  エージェント
２００  通信制御装置
２０１  識別情報受信部
２０２  通信フロー送受信部
２０３  通信フロー記憶部
２０４  識別情報記憶部
２０５  制御情報記憶部
２０６  照合部
２０７  解析部
２０８  通信フロー検査部
２０９  通信パターン記憶部
２１０  通信パターン抽出部
２１２  通信パターン検査部
２１３  一時情報削除部
２１４  不正通信パターン制御部
３００  サーバ装置
【図１】
2020129162.tif 000003
【図２】
2020129162.tif 000004
【図３】
2020129162.tif 000005
【図４】
2020129162.tif 000006
【図５】
2020129162.tif 000007
【図６】
2020129162.tif 000008
【図７】
2020129162.tif 000009
【図８】
2020129162.tif 000010
【図９】
2020129162.tif 000011
【図１０】
2020129162.tif 000012
【図１１】
2020129162.tif 000013
【図１２】
2020129162.tif 000014
【図１３】
2020129162.tif 000015
【図１４】
2020129162.tif 000016
【図１５】
2020129162.tif 000017
【図１６】
2020129162.tif 000018
【図１７】
2020129162.tif 000019
【図１８】
2020129162.tif 000020