(57)【特許請求の範囲】
【請求項１】
ある期間に仮想マシンにて実行された１つ以上の処理を含む処理情報に対して、前記処理情報に含まれている前記処理に関するリスクを表す数値を累積するリスク算出手段と、
リスクに応じた処理内容を含む制限情報に基づき、累積された前記リスクを表す数値に応じた処理を選択し、選択した処理を実行することによって、前記仮想マシンに対する処理を制限する処理制御手段と
を備え、
前記制限情報においては、前記仮想マシンに対して割り当てられている通信帯域を制限する処理、前記仮想マシンに対して割り当てられている処理時間を減らす処理、前記仮想マシンに対する通信を遮断する処理、及び、前記仮想マシンをシャットダウンする処理が設定されている
処理制御装置。
【請求項２】
前記仮想マシンが、通信方式に従った通信接続を確立しようとする際に通信した第１通信メッセージにおいて、前記通信接続にて用いる暗号化方式を識別可能な暗号化方式情報を特定し、前記第１通信メッセージが、前記仮想マシンに関する処理を実行している物理的な仮想マシンがアクセスするメモリに格納されている期間内に、前記暗号化方式に関する暗号鍵を表す暗号鍵情報が前記メモリに格納されているか否かを判定し、前記暗号鍵情報が前記メモリに格納されていると判定した場合に、前記メモリから前記暗号鍵情報を読み取る暗号化解析手段
をさらに備え、
前記リスク算出手段は、前記処理情報が暗号化されている場合に、前記暗号化解析手段によって読み取られた前記暗号鍵情報を用いて、暗号化されている前記処理情報を復号する
請求項１に記載の処理制御装置。
【請求項３】
前記暗号化解析手段は、特定された前記暗号化方式に関する暗号鍵が格納されている記憶領域に関するタグを表すタグ情報が記憶されている記憶領域を、前記メモリにおいて特定し、特定した前記タグ情報に関する記憶領域から、前記暗号鍵情報を読み取る
請求項２に記載の処理制御装置。
【請求項４】
前記暗号化解析手段は、前記暗号鍵情報が前記メモリに格納されていると判定した場合に、前記メモリのうち、ある記憶領域に格納されているデータに関する情報エントロピーが特定の基準値より大きな場合に、前記データを前記暗号鍵情報として読み取る
請求項２、または、請求項３に記載の処理制御装置。
【請求項５】
前記暗号化解析手段は、前記情報エントロピーが前記特定の基準値より大きな前記ある記憶領域が複数である場合に、複数の前記ある記憶領域のうちの第１記憶領域に格納され
ているデータを用いて前記処理情報が復号された情報が、前記仮想マシンが実行可能な命令を表す符号を含んでいるときの前記第１記憶領域に格納されているデータを前記暗号鍵情報として読み取る
請求項４に記載の処理制御装置。
【請求項６】
情報処理装置によって、ある期間に仮想マシンにて実行された１つ以上の処理を含む処理情報に対して、前記処理情報に含まれている前記処理に関するリスクを表す数値を累積し、
リスクに応じた処理内容を含む制限情報に基づき、累積された前記リスクを表す数値に応じた処理を選択し、選択した処理を実行することによって、前記仮想マシンに対する処理を制限する
処理制御方法であって、
前記制限情報においては、前記仮想マシンに対して割り当てられている通信帯域を制限する処理、前記仮想マシンに対して割り当てられている処理時間を減らす処理、前記仮想マシンに対する通信を遮断する処理、及び、前記仮想マシンをシャットダウンする処理が設定されている
処理制御方法。
【請求項７】
ある期間に仮想マシンにて実行された１つ以上の処理を含む処理情報に対して、前記処理情報に含まれている前記処理に関するリスクを表す数値を累積するリスク算出機能と、
リスクに応じた処理内容を含む制限情報に基づき、累積された前記リスクを表す数値に応じた処理を選択し、選択した処理を実行することによって、前記仮想マシンに対する処理を制限する処理制御機能と
をコンピュータに実現させる処理制御プログラムであって、
前記制限情報においては、前記仮想マシンに対して割り当てられている通信帯域を制限する処理、前記仮想マシンに対して割り当てられている処理時間を減らす処理、前記仮想マシンに対する通信を遮断する処理、及び、前記仮想マシンをシャットダウンする処理が設定されている
処理制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する処理を制御する処理制御装置等に関する。
【背景技術】
【０００２】
特許文献１は、不正アクセスを受けた場合であっても、該不正アクセスを検知することが可能な不正アクセス検知システムを開示している。不正アクセス検知システムは、監視部と、解析部と、判定部と、不正対処部とを有する。監視部は、監視する対象である通信ネットワークシステムにおいて、通信ネットワークを介して実行されるアクセス要求を監視する。解析部は、監視部によって監視されたアクセス要求を、命令列として解析する。判定部は、解析結果に基づき、該アクセス要求が不正であるか否かを判定する。該アクセス要求が不正であると判定した場合に、不正対処部は、該アクセス要求に対する処理を実行する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１８２１８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に開示された不正アクセス検知システムを用いたとしても、不正アクセスを、正確に検知することは難しい。この理由は、不正アクセスにおいて一連の処理が実行されることが多いにもかかわらず、あるアクセスが不正であるか否かを、該あるアクセスに関して実行される命令列がある命令を含んでいるか否かのみに基づき、該不正アクセス検知システムが判定するからである。この結果、該不正アクセス検知システムを用いたとしても、不正アクセスであるか否かの判定が正確でない場合もあるので、該通信ネットワークシステムにおけるサイバーセキュリティが確保できる可能性は低い。
【０００５】
そこで、本発明の目的の１つは、サイバーセキュリティに関して、情報処理システムの健全性をより確実に保つことが可能な処理制御装置等を提供することである。
【課題を解決するための手段】
【０００６】
前述の目的を達成するために、本発明の一態様において、処理制御装置は、
ある期間に情報処理装置にて実行された１つ以上の処理を含む処理情報に対して、前記処理情報に含まれている前記処理に関するリスクを表す数値を累積するリスク算出手段と、
前記処理情報に関して累積された前記リスクを表す数値が、所定の制限条件を満たした場合には、前記情報処理装置に対する処理を制限する処理制御手段と
を備える。
【０００７】
また、本発明の他の見地として、処理制御方法は、
ある期間に情報処理装置にて実行された１つ以上の処理を含む処理情報に対して、前記処理情報に含まれている前記処理に関するリスクを表す数値を累積し、
前記処理情報に関して累積された前記リスクを表す数値が、所定の制限条件を満たした場合には、前記情報処理装置に対する処理を制限する。
【０００８】
また、本発明の他の見地として、処理制御プログラムは、
ある期間に情報処理装置にて実行された１つ以上の処理を含む処理情報に対して、前記処理情報に含まれている前記処理に関するリスクを表す数値を累積するリスク算出機能と、
前記処理情報に関して累積された前記リスクを表す数値が、所定の制限条件を満たした場合には、前記情報処理装置に対する処理を制限する処理制御機能と
をコンピュータに実現させる。
【０００９】
さらに、同目的は、係るプログラムを記録するコンピュータが読み取り可能な記録媒体によっても実現される。
【発明の効果】
【００１０】
本発明に係る処理制御装置等によれば、サイバーセキュリティに関して、情報処理システムの健全性をより確実に保つことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態に係る解析システム、及び、解析対象装置等の機能的な構成を例示するブロック図である。
【図２】第１の実施形態に係る解析対象装置、及び、データ取得部を実現可能な第１の構成例を例示する図である。
【図３】第１の実施形態に係る解析対象装置、及び、データ取得部を実現可能な第２の構成例を例示する図である。
【図４】第１の実施形態に係る鍵データ取得ポリシの具体例を示す図である。
【図５】第１の実施形態に係る通信データ記録ポリシの具体例を示す図である。
【図６】第１の実施形態に係る通信データ保持部の具体例を説明する図である。
【図７】第１の実施形態に係る鍵候補判定情報の具体例を示す図である。
【図８】第１の実施形態に係る鍵候補保持部の具体例を説明する図である。
【図９】第１の実施形態に係る解析結果判定情報の具体例を示す図である。
【図１０】第１の実施形態に係る解析結果保持部の具体例を説明する図である。
【図１１】第１の実施形態に係る解析システムの動作の概要を例示する、フローチャートである。
【図１２Ａ】第１の実施形態において、解析対象装置と通信ネットワークとの間で実行される暗号通信に用いられる暗号鍵を取得する動作を例示するフローチャートである。
【図１２Ｂ】第１の実施形態において、解析対象装置と通信ネットワークとの間で実行される暗号通信に用いられる暗号鍵を取得する動作を例示するフローチャートである。
【図１３】ＳＳＬプロトコルにおける、暗号鍵の共有手順を例示するシーケンス図である。
【図１４】第１の実施形態に係る通信処理部（たとえば、通信データ記録部）の動作を例示するフローチャートである。
【図１５】第１の実施形態に係る暗号解析部（たとえば、鍵候補抽出部）の動作を例示するフローチャートである。
【図１６】第１の実施形態に係る暗号解析部（たとえば、暗号解読部）の動作を例示するフローチャートである。
【図１７】本発明の第２の実施形態に係る解析システム、及び、解析対象装置等の機能的な構成を例示するブロック図である。
【図１８】本発明の第３の実施形態に係る処理制御装置が有する構成を示すブロック図である。
【図１９】第３の実施形態に係る処理制御装置における処理の流れを示すフローチャートである。
【図２０】命令リスク情報記憶部に格納されている命令リスク情報の一例を概念的に表す図である。
【図２１】情報処理装置によって実行された処理を含む処理情報の一例を概念的に表す図である。
【図２２】本発明の第４の実施形態に係る処理制御装置が有する構成を示すブロック図である。
【図２３】第４の実施形態に係る処理制御装置における処理の流れを示すフローチャートである。
【図２４】制限情報記憶部に格納されている制限情報の一例を概念的に表す図である。
【図２５】本発明の第５の実施形態に係る処理制御装置を含む情報処理装置が有する構成を示すブロック図である。
【図２６】第５の実施形態に係る情報処理装置における処理の流れを示すフローチャートである。
【図２７】第１の実施形態に係る解析システム、第２の実施形態に係る解析システム、または、第３の実施形態乃至第５の実施形態に係る処理制御装置を実現可能な計算処理装置のハードウェア構成例を概略的に示すブロック図である。
【発明を実施するための形態】
【００１２】
次に、本発明を実施する形態について図面を参照して詳細に説明する。
【００１３】
尚、各実施形態において説明する解析システムは、当該システムの１以上の構成要素が複数の物理的、または、論理的に離間した装置（物理的な情報処理装置や、仮想的な情報処理装置等）を用いて実現されたシステムとして構成されてもよい。この場合に、係る複数の装置の間は、有線、または、無線、または、それらを組み合わせた任意の通信ネットワークを介して通信可能に接続されてもよい。また、係る複数の装置が仮想的な情報処理装置等により構成される場合に、該通信ネットワークは、仮想的な通信ネットワークであってもよい。
【００１４】
また、各実施形態において説明する解析システムは、当該システムの全ての構成要素が１つの装置（物理的な情報処理装置や、仮想的な情報処理装置等）を用いて実現されたシステムとして構成されてもよい。
【００１５】
＜第１の実施形態＞
以下、本発明の第１の実施形態について説明する。まず、図１乃至図３を参照しながら、本実施形態に係る解析システムについて説明する。図１は、本実施形態に係る解析システム１００の機能的な構成を例示するブロック図である。図２、及び、図３は、本発明の第１の実施形態に係る解析対象装置１０１、及び、データ取得部１０２を実現可能な構成例を例示する図である。
【００１６】
まず、解析対象装置１０１について説明する。解析対象装置１０１は、本実施形態に係る解析システム１００により解析される解析対象を表す装置である。
【００１７】
図１に例示されているように、本実施形態に係る解析対象装置１０１は、少なくとも、演算部１０１ａ、及び、メモリ１０１ｂを有し、通信路１０６を介して通信ネットワーク１０５と通信可能に接続された、任意の情報通信装置である。
【００１８】
解析対象装置１０１は、たとえば、物理的なハードウェアにより構成されたコンピュータ等の情報通信装置であってもよい。また、解析対象装置１０１は、情報処理装置等の各種ハードウェアを仮想化可能な所定の仮想化基盤において提供される、仮想的なコンピュータ（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ、仮想マシン、仮想計算機）等であってもよい。
【００１９】
係る仮想化基盤は、たとえば、通信ネットワークを介して相互に接続された複数の情報処理装置により構築された環境（クラウドコンピューティング環境等）において提供されてもよく、１台の情報処理装置により構築された環境において提供されてもよい。
【００２０】
係る仮想化基盤は、たとえば、特定のホストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）において実行されるソフトウェア・プログラムとして提供されてもよく、情報処理装置のハードウェアと、ＯＳとの間に介在するソフトウェア・プログラムとして提供されてもよい。
【００２１】
また、係る仮想化基盤は、物理的なハードウェアデバイスの機能を用いて提供されてもよく、ハードウェアデバイスの機能（たとえば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）における各種仮想化支援機能等）と、ソフトウェア・プログラムとの組合せを用いて提供されてもよい。
【００２２】
たとえば、係る仮想化基盤としてＭｉｃｒｏｓｏｆｔ（登録商標）社製のＨｙｐｅｒ−Ｖを採用することが可能であるが、係る仮想化基盤は、上述した例に限定されない。
【００２３】
尚、解析対象装置１０１は、各種コンピュータ等に限定されず、たとえば、携帯電話（スマートフォンを含む）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、ゲーム機器、タブレット型情報機器、プリンタ、デジタル複合機、各種ネットワーク機器（スイッチ、ルータ、アクセスポイント）等、通信ネットワークに接続可能な任意の機器であってもよい。
【００２４】
演算部１０１ａは、たとえば、メモリ１０１ｂに記憶された各種データ、及び、プログラム（コンピュータ・プログラム）を読み取り、当該プログラムに実装された各種演算処理を実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や、ＭＰＵ（Ｍｉｃｒｏｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の演算装置である。演算部１０１ａは、特定のハードウェア（集積回路）を用いて構成される、物理的な演算装置であってもよい。演算部１０１ａは、また、図３に例示されているように、当該ハードウェアを仮想化した仮想化基盤における、仮想的な演算装置（仮想ＣＰＵ）であってもよい。
【００２５】
メモリ１０１ｂは、たとえば、解析対象装置１０１におけるメインメモリとして機能し、演算部１０１ａにおいて処理される各種プログラム、及び、データ等を保持する。係るメモリ１０１ｂは、特定のハードウェア（集積回路等）により構成された物理的なメモリ装置（たとえば、ＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）により構成されたＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））であってもよい。また、メモリ１０１ｂは、該所定の仮想化基盤において提供される、仮想的なメモリ装置であってもよい。
【００２６】
本実施形態に係るメモリ１０１ｂについては、当該メモリ１０１ｂに保持（記憶）される記憶データ（以下、「メモリ領域データ」と称する場合がある）を、メモリ１０１ｂの外部から取得（ダンプ）することができる。メモリをダンプする具体的な方法は、周知の技術を適宜選択してもよい。たとえば、係る方法として、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の休止状態（ハイバネーション）機能を用いて不揮発性記憶装置に保存されたメモリ領域データを取得する方法や、ＯＳが提供する仮想記憶においてページアウトされたメモリ領域データを取得する方法が採用されてもよい。
【００２７】
メモリ領域データは、メモリに格納されている全てのデータ、または、メモリに格納されているデータのうち、図７を参照しながら後述するような、鍵候補判定基準等に従って特定される記憶領域に格納されているデータを含む一部のデータ等を表す。
【００２８】
メモリ領域データは、たとえば、メモリ１０１ｂを物理的なハードウェアにより構成した場合に、メモリ領域データは、演算部１０１ａと、メモリ１０１ｂとを接続する通信バス等において通信されるデータを取得することにより取得されてもよい。また、メモリ領域データは、特定のタイミングにおいて、メモリ１０１ｂの記憶領域を全て出力（メモリダンプ）することにより取得されてもよい。この場合に、たとえば、メモリ１０１ｂに対するデータの読み取り、書き込み、アクセス等を制御するメモリコントローラ（不図示）の機能を用いて、メモリ領域データを取得することが可能である。
【００２９】
メモリ１０１ｂを仮想的なメモリ装置として構成した場合に、仮想化基盤が提供する機能（たとえば、特定のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）等）や、仮想化基盤が提供するデータ（たとえば、仮想的なメモリに記憶されたデータの保存領域を特定可能な情報等）を介して、当該メモリ１０１ｂに記憶されるデータを取得可能である。係る処理の具体的な実現方法は、仮想化基盤の具体的な構成に応じて周知の技術を適宜採用してもよいので、詳細な説明は省略する。
【００３０】
本実施形態に係る解析対象装置１０１は、通信路１０６を介して、通信ネットワーク１０５との間で、暗号通信を実行する。より具体的に説明すると、解析対象装置１０１は、通信ネットワーク１０５を介して通信可能に接続された他の情報通信装置１０７との間で、暗号通信を実行する。
【００３１】
この場合に、解析対象装置１０１において実行されるプログラムが、他の情報通信装置１０７との間で暗号通信を実現してもよい。係るプログラムは、解析対象装置１０１において実行される正規のプログラムに限定されない。係るプログラムには、マルウェアが含まれてもよい。
【００３２】
解析対象装置１０１と、通信ネットワーク１０５（他の情報通信装置１０７）との間の通信路を暗号化する暗号通信プロトコルとしては、たとえば、ＳＳＬ、ＳＳＨ、または、ＩＰＳｅｃ等の暗号通信プロトコル等が採用可能である。本実施形態を含め、以下に説明する各実施形態においては、係る暗号通信プロトコルとしてＳＳＬが用いられる場合の具体例を説明する。尚、本実施形態に係る解析システム１００は、ＳＳＬに限定されず、他の暗号通信プロトコルにも適用可能である。
【００３３】
ＳＳＬは、Ｓｅｃｕｒｅ＿Ｓｏｃｋｅｔｓ＿Ｌａｙｅｒの略称を表す。ＳＳＨは、Ｓｅｃｕｒｅ＿Ｓｈｅｌｌの略称を表す。ＩＰＳｅｃは、Ｓｅｃｕｒｉｔｙ＿Ａｒｃｈｉｔｅｃｔｕｒｅ＿ｆｏｒ＿Ｉｎｔｅｒｎｅｔ＿Ｐｒｏｔｏｃｏｌの略称を表す。
【００３４】
通信ネットワーク１０５は、有線、無線、または、これらの任意の組合せにより構成され、任意の通信プロトコルを用いて通信路を確立可能な通信ネットワークである。係る通信ネットワーク１０５は、たとえば、Ｉｎｔｅｒｎｅｔ等の広域通信網であってもよく、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の構内通信網であってもよく、これらの組合せであってもよい。
【００３５】
また、通信ネットワーク１０５において用いられる通信プロトコルは、たとえば、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）等の周知の通信プロトコルであってもよい。また、当該通信ネットワーク１０５は、たとえば、各種暗号通信プロトコルにより暗号化された通信路を、解析対象装置１０１に対して提供可能である。このような通信ネットワーク１０５は、周知の技術、または、その組合せにより構成可能であるので、詳細な説明は省略する。
【００３６】
他の情報通信装置１０７は、通信ネットワーク１０５を介して、解析対象装置１０１に通信可能に接続される。他の情報通信装置１０７は、たとえば、物理的なハードウェアにより構成されたコンピュータ等の情報通信装置であってもよい。また、他の情報通信装置１０７は、所定の仮想化基盤において提供される、仮想的なコンピュータ等であってもよい。
【００３７】
他の情報通信装置１０７は、たとえば、各種コンピュータ等に限定されず、携帯電話（スマートフォンを含む）、ＰＤＡ、ゲーム機器、タブレット型情報機器、プリンタ、デジタル複合機、各種ネットワーク機器、通信ネットワークに接続可能な任意の機器であってもよい。
【００３８】
他の情報通信装置１０７は、たとえば、上述した説明において例示されているような暗号通信プロトコルを用いて、解析対象装置１０１との間で暗号通信を実行する。このような他の情報通信装置１０７は、周知の技術、または、その組合せにより構成可能であるので、詳細な説明は省略する。
【００３９】
（解析システム１００の構成）
次に、本実施形態に係る解析システム１００の構成要素について説明する。
【００４０】
本実施形態に係る解析システム１００は、データ取得部１０２、暗号解析部１０４、及び、通信処理部１０３を主たる構成要素として備える（以下、データ取得部１０２、暗号解析部１０４、通信処理部１０３、及び、それらを構成する構成要素を、単に「解析システム１００の構成要素」と称する場合がある）。
【００４１】
本実施形態に係る解析システム１００は、これらの構成要素を用いて、解析対象装置１０１と、通信ネットワーク１０５を介して接続された他の情報通信装置１０７との間で実行される暗号通信を解析する。解析システム１００は、当該解析結果に基づき、特定の処理を実行する。
【００４２】
解析システム１００の各構成要素は、それぞれ、物理的なコンピュータ等の情報処理装置を用いて実現されてもよく、または、仮想化基盤において提供されるＶＭを用いて実現されてもよい。解析システム１００の各構成要素の間は、無線、有線、または、それらを組み合わせた任意の通信回線により、通信可能に接続されている。係る通信回線は、周知の技術を採用してもよいので、詳細な説明は省略する。以下、解析システム１００の各構成要素について説明する。
【００４３】
尚、以下において説明する、データ取得部１０２、及び、通信処理部１０３が、本実施形態を具体例として説明した場合の、本発明に関する主要な構成要素である。
【００４４】
（データ取得部１０２の構成）
まず、本実施形態に係るデータ取得部１０２について説明する。本実施形態に係るデータ取得部１０２は、解析対象装置１０１と通信可能に接続される。データ取得部１０２は、解析対象装置１０１のメモリ１０１ｂに保持されているメモリ領域データを取得する。データ取得部１０２は、取得したメモリ領域データを保持するメモリダンプ保持部１０２ａを有する。
【００４５】
解析対象装置１０１を物理的なコンピュータ等の情報通信装置により実現する場合に、データ取得部１０２は、たとえば、図２に例示されているように、メモリ１０１ｂに各種通信バス等を介して接続される拡張ハードウェア装置として実現されてもよい。また、データ取得部１０２は、メモリ１０１ｂに対するデータの読み取り、書き込み、アクセス等を制御するメモリコントローラ（不図示）に接続されてもよい。この場合に、データ取得部１０２は、たとえば、メモリ１０１ｂに対するデータの読み書きを制御するメモリコントローラ（不図示）を介して、メモリ１０１ｂに保持されているデータを取得してもよい。尚、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスに接続した拡張ハードウェアにより、コンピュータに実装されたメモリ装置（ＳＤＲＡＭ：Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）の内容を取得する技術が、下記参考文献１に開示されている。
【００４６】
（参考文献１）
Ｂｒｉａｎ  Ｄ．  Ｃａｒｒｉｅｒ、Ｊｏｅ  Ｇｒａｎｄ、「Ａ＿ｈａｒｄｗａｒｅ−ｂａｓｅｄ＿ｍｅｍｏｒｙ＿ａｃｑｕｉｓｉｔｉｏｎ＿ｐｒｏｃｅｄｕｒｅ＿ｆｏｒ＿ｄｉｇｉｔａｌ＿ｉｎｖｅｓｔｉｇａｔｉｏｎｓ」、Ｄｉｇｉｔａｌ  Ｉｎｖｅｓｔｉｇａｔｉｏｎ  Ｖｏｌｕｍｅ  １、  Ｉｓｓｕｅ  １、  Ｆｅｂｒｕａｒｙ  ２００４、ｐ．ｐ．５０−６０。
【００４７】
解析対象装置１０１が仮想化基盤により提供されるＶＭ等を用いて実現される場合を想定する。この場合に、データ取得部１０２は、たとえば、図３に例示されているように、仮想化基盤において提供される、ＶＭの動作を制御可能なソフトウェアであるＶＭＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）３００の機能を用いて実現されてもよい。より具体的に、データ取得部１０２は、ＶＭＭ３００の機能を利用したソフトウェア（ソフトウェア・プログラム）、または、仮想的なデバイスにより実現されてもよい。
【００４８】
この場合に、データ取得部１０２は、上述したように、ＶＭＭが提供する機能（たとえば、特定のＡＰＩ等）や、データ（たとえば、仮想的なメモリ１０１ｂに記憶されたデータの保存領域を特定可能な情報等）を介して、当該メモリ１０１ｂに記憶されるデータを取得（ダンプ）可能である。尚、メモリ領域データを取得する具体的な方法は、メモリ１０１ｂの構成等に応じて周知の技術を適宜採用してもよい。
【００４９】
また、図２、及び、図３に限らず、データ取得部１０２は、たとえば、解析対象装置１０１自体にハードウェア、ソフトウェア、または、ハードウェアとソフトウェアの組合せによるメモリをダンプするダンプ機能を組み込むことにより、実現されてもよい。この場合に、データ取得部１０２は、たとえば、解析対象装置において実行される任意のソフトウェアとして実現されてもよい。尚、データ取得部１０２自体はマルウェア、または、マルウェアによる通信の解析処理を実行しないので、マルウェアにより検知される危険性は比較的低い。
【００５０】
データ取得部１０２は、たとえば、後述する通信処理部１０３（たとえば、暗号通信検査部１０３ｂ）から、メモリ１０１ｂに保持されているメモリ領域データ（データ）の取得を指示するダンプ指示を受け付ける。データ取得部１０２は、当該ダンプ指示を受け付けたタイミングにおいて、メモリ１０１ｂに保持されているメモリ領域データをダンプする。
【００５１】
データ取得部１０２は、メモリ１０１ｂに保持されている全てのメモリ領域データ（すなわち、メモリ１０１ｂの全メモリ領域に保持されているデータ）をダンプしてもよい。また、データ取得部１０２は、メモリ１０１ｂに保持されているデータの内、少なくとも一部のメモリ領域データをダンプしてもよい。
【００５２】
データ取得部１０２は、ダンプしたメモリ領域データを、後述するメモリダンプ保持部１０２ａに保存（登録）する。
【００５３】
データ取得部１０２は、メモリ１０１ｂからメモリ領域データをダンプする処理が完了した際、後述する通信処理部１０３（たとえば、暗号通信検査部１０３ｂ）に、当該処理の完了を通知してもよい。
【００５４】
メモリダンプ保持部１０２ａは、データ取得部１０２が取得したメモリ領域データを保持する。尚、メモリダンプ保持部１０２ａは、メモリ１０１ｂから取得したメモリ領域データと、当該メモリ領域データを取得したタイミングを表す情報とを、関連付けて保持してもよい。
【００５５】
（通信処理部１０３の構成）
次に、本実施形態に係る通信処理部１０３について説明する。まず、本実施形態に係る通信処理部１０３の概要について説明する。
【００５６】
通信処理部１０３は、解析対象装置１０１と、通信ネットワーク１０５との間に介在し、通信路１０６を介してそれぞれと通信可能に接続される。通信処理部１０３は、解析対象装置１０１と、通信ネットワーク１０５との間で通信される通信データを解析した結果に基づき、解析対象装置１０１と、通信ネットワーク１０５との間で通信データを中継する。特に、本実施形態に係る通信処理部１０３は、解析対象装置１０１と、通信ネットワーク１０５との間で実行される所定の暗号通信プロトコルを用いた暗号通信に関する通信データを中継可能である。
【００５７】
また、通信処理部１０３は、該通信データを解析した結果に基づき、データ取得部１０２に対して、解析対象装置１０１のメモリ１０１ｂに保存されたメモリ領域データの取得（データ）を指示する。この際、通信処理部１０３は、解析対象装置１０１と、通信ネットワーク１０５との間の通信の一時的な停止、及び、再開を制御してもよい。
【００５８】
また、通信処理部１０３は、該通信データを解析した結果に基づき、当該通信データを保存する。
【００５９】
通信処理部１０３は、たとえば、複数の通信路１０６に接続された通信インターフェースを有するルータ、スイッチ、または、アクセスポイント等のネットワーク機器であってもよい。また、通信処理部１０３は、それらの機能を実現可能なコンピュータ等の情報処理装置であってもよい。尚、係る通信処理部１０３は、物理的な装置としてのネットワーク機器や情報処理装置として実現されてもよい。また、係る通信処理部１０３は、特定の仮想化基盤においてネットワーク機器や情報処理装置を仮想化した仮想デバイスとして実現されてもよい。
【００６０】
通信処理部１０３の具体的な構成について説明する。
【００６１】
通信処理部１０３は、図１に例示されているように、通信制御部１０３ａと、暗号通信検査部１０３ｂとを有する。通信処理部１０３は、通信データ記録部１０３ｄを有してもよい。尚、通信制御部１０３ａと、暗号通信検査部１０３ｂと、通信データ記録部１０３ｄとの間は、それぞれ通信可能に接続されている。
【００６２】
通信処理部１０３の各構成要素について説明する。
【００６３】
通信制御部１０３ａは、上述したように、解析対象装置１０１と、通信ネットワーク１０５との間の通信を中継する。より具体的に、通信制御部１０３ａは、解析対象装置１０１と、通信ネットワーク１０５を介して接続された他の情報通信装置１０７との間の通信を中継する。以下、解析対象装置１０１と、通信ネットワーク１０５との間の通信は、解析対象装置１０１と、通信ネットワーク１０５を介して接続された他の情報通信装置１０７との間の通信を含むことを想定する。解析対象装置１０１と、通信ネットワーク１０５との間の通信は、特定の暗号通信プロトコル（たとえば、ＳＳＬ等）により暗号化されていてもよい。
【００６４】
通信制御部１０３ａは、解析対象装置１０１から送信される通信データをキャプチャし、その通信データが表す通信内容（宛先情報、または、通信プロトコルに関する情報等）を解析する。また、通信制御部１０３ａは、通信ネットワーク１０５から受信した通信データをキャプチャし、キャプチャした内容（宛先情報、または、通信プロトコルに関する情報等）を解析する。通信制御部１０３ａは、それらを解析した結果に基づき、各通信データを、通信ネットワーク１０５と、解析対象装置１０１との間で転送する。
【００６５】
たとえば、通信ネットワーク１０５がインターネット等のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）プロトコルを採用した通信ネットワーク（ＩＰネットワーク）である場合を想定する。この場合に、通信制御部１０３ａは、通信データを構成するＩＰパケットを解析することにより、当該通信データを、通信ネットワーク１０５と、解析対象装置１０１との間で転送可能である。尚、係る通信データの転送制御は、たとえば、ルータやスイッチ等の周知のネットワーク機器と同様の技術を採用してもよいので、詳細な説明は省略する。
【００６６】
通信制御部１０３ａは、解析対象装置１０１と、通信ネットワーク１０５との間の通信を一時停止し、また、停止した当該通信を再開可能である。より具体的に説明すると、通信制御部１０３ａは、解析対象装置１０１と、通信ネットワーク１０５を介して接続された他の情報通信装置１０７との間の通信の停止、及び、再開を制御可能である。
【００６７】
通信制御部１０３ａは、たとえば、通信ネットワーク１０５、または、解析対象装置１０１との間の通信路１０６が接続された図示しないネットワークインタフェースに対する通信データの書き込み（または、読み取り）の停止、または、再開を制御する。これにより、通信制御部１０３ａは、解析対象装置１０１と、通信ネットワーク１０５との間の通信を制御可能である。ネットワークインタフェースに対する通信データの書き込み（または、読み取り）の制御は、当該ネットワークインタフェース、または、通信処理部１０３の具体的構成に応じて周知の技術を適宜採用してもよいので、詳細な説明を省略する。
【００６８】
通信制御部１０３ａは、後述する暗号通信検査部１０３ｂからの要求に基づき、解析対象装置１０１と、通信ネットワーク１０５との間の通信を一時停止してもよい。同様に、通信制御部１０３ａは、後述する暗号通信検査部１０３ｂからの要求に基づき、当該停止した通信を再開してもよい。
【００６９】
通信制御部１０３ａは、キャプチャした該通信データを、後述する暗号通信検査部１０３ｂに伝達（受け渡し）する。同様に、通信制御部１０３ａは、キャプチャした該通信データを、後述する通信データ記録部１０３ｄに伝達（受け渡し）してもよい。
【００７０】
次に、暗号通信検査部１０３ｂについて説明する。
【００７１】
暗号通信検査部１０３ｂは、通信制御部１０３ａから受け付けた通信データを解析する。暗号通信検査部１０３ｂは、当該解析結果と、後述する鍵データ取得ポリシ１０３ｃとに基づき、該暗号通信プロトコルにおける通信路の暗号化に用いられる秘密情報を含むデータが、解析対象装置１０１におけるメモリ１０１ｂに存在するタイミングを判定する。
【００７２】
係る秘密情報を含むデータは、一般的に、通信路の暗号化に用いられる鍵（以下、「暗号鍵」と称する場合がある）を含むデータ（以下「鍵データ」と称する場合がある）である。係る暗号鍵は、暗号化された通信路において通信される通信データを暗号化、または、復号（解読）可能な鍵である。
【００７３】
換言すると、暗号通信検査部１０３ｂは、特定の暗号通信プロトコルに基づき通信される通信データを解析することにより、暗号鍵を含む鍵データが解析対象装置１０１のメモリ１０１ｂに存在するか否かを判定する。より具体的に、暗号通信検査部１０３ｂは、該通信データを解析することにより、該鍵データが、解析対象装置１０１におけるメモリ１０１ｂに存在するタイミングを判定してもよい。
【００７４】
たとえば、ＳＳＬ／ＴＬＳ等の暗号通信プロトコルにおいて、通信路の暗号化に用いる暗号鍵を交換する処理手順の進行状況は、通信データを解析することにより確認可能である。尚、ＴＬＳは、Ｔｒａｎｓｐｏｒｔ＿Ｌａｙｅｒ＿Ｓｅｃｕｒｉｔｙの略称を表す。
【００７５】
具体的に、ＳＳＬ／ＴＬＳ等の暗号通信プロトコルにおいて、２以上の通信端末において交換される暗号鍵自体（または、暗号鍵を導出可能な情報自体）は、ＰＫＩ（ｐｕｂｌｉｃ  ｋｅｙ  ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）等の技術を用いて保護（暗号化）される。このため、第三者が、暗号鍵自体（または、暗号鍵を導出可能な情報自体）を、通信路を介して取得することは困難である。
【００７６】
しかし、暗号通信検査部１０３ｂは、通信データにおいて暗号化されていない部分を解析することにより、当該暗号通信プロトコルにおける暗号鍵の交換手順の進行状況を表す情報を確認可能である。たとえば、暗号通信プロトコルがＳＳＬであることを想定すると、通信データにおいて、Ｒｅｃｏｒｄプロトコルのヘッダ（Ｒｅｃｏｒｄヘッダ）、及び、ｈａｎｄｓｈａｋｅプロトコルにおける一部のメッセージは暗号化されていない。このため、暗号通信検査部１０３ｂは、たとえば、通信データにおける当該部分を解析することにより、ＳＳＬプロトコルにおける暗号鍵を交換する処理手順の進行状況を確認可能である。
【００７７】
たとえば、ＳＳＬプロトコルにおいては、所定の手順が実行された際（具体的に、ＣｈａｎｇｅＣｉｐｈｅｒＳｐｅｃメッセージが通信された際）、通信路を暗号化する暗号鍵が、２つの通信端末において共有される。すなわち、係る暗号鍵が共有されたタイミングにおいて、当該通信端末（たとえば、解析対象装置１０１）のメモリには、係る暗号鍵を含む鍵データが保持されている可能性が高い。以上より、暗号通信検査部１０３ｂは、特定の暗号通信プロトコルに基づき通信される通信データを解析することにより、暗号鍵を含む鍵データが解析対象装置１０１のメモリ１０１ｂに存在するタイミングを判定可能である。
【００７８】
また、暗号通信検査部１０３ｂは、通信ネットワークを介した通信接続を確立するハンドシェーク処理にて通信される通信メッセージから、該通信にて用いられる暗号化処理に関する情報（以下「暗号スイート」と称する場合がある）を抽出してもよい。たとえば、通信メッセージは、通信接続を確立した場合に通信される対象情報を暗号化する暗号アルゴリズム、暗号鍵の鍵長、暗号利用モード（後述）、通信データに対するメッセージ認証方式等を表す情報を含む。暗号通信プロトコルがＳＳＬプロトコルである場合に、暗号通信検査部１０３ｂは、たとえば、ハンドシェーク処理にて通信されたＣｌｉｅｎｔＨｅｌｌｏメッセージ、及び、ＳｅｒｖｅｒＨｅｌｌｏメッセージ等の通信メッセージから、対象情報を暗号化する暗号アルゴリズム等を抽出する。
【００７９】
暗号通信検査部１０３ｂは、通信データを解析することにより、該暗号通信プロトコルにおける通信路の暗号化処理に用いられる各種情報（以下「暗号スイート」と称する場合がある）を取得してもよい。係る暗号スイートには、たとえば、暗号アルゴリズム、暗号鍵の鍵長、暗号利用モード（後述）、通信データに対するメッセージ認証方式等を表す情報が含まれる。たとえば、該暗号通信プロトコルがＳＳＬプロトコルである場合に、暗号通信検査部１０３ｂは、ＣｌｉｅｎｔＨｅｌｌｏメッセージ、及び、ＳｅｒｖｅｒＨｅｌｌｏメッセージを解析することにより、通信路の暗号化に用いられる暗号アルゴリズム等を特定可能である。
【００８０】
尚、ＳＳＬプロトコルにおいて用いられるＲｅｃｏｒｄプロトコル、ｈａｎｄｓｈａｋｅプロトコル、及び、各種メッセージ等は、周知の技術であるので、詳細な説明は省略する。
【００８１】
暗号通信検査部１０３ｂは、上述したように、解析対象装置１０１と、他の情報通信装置１０７との間で暗号鍵を交換する処理手順の進行状況を確認する。これにより、暗号通信検査部１０３ｂは、当該暗号鍵を含む鍵データが解析対象装置１０１のメモリ１０１ｂに存在するタイミングを判定する。より具体的に、暗号通信検査部１０３ｂは、鍵データ取得ポリシ１０３ｃに設定された情報を用いて、暗号鍵を含む鍵データが解析対象装置１０１のメモリ１０１ｂに存在するタイミングを判定する。
【００８２】
鍵データ取得ポリシ１０３ｃには、図４に例示されているように、特定の暗号通信プロトコル（図４における４０１）の種別と、鍵データ取得基準（図４における４０２）とが含まれる。尚、鍵データ取得ポリシ１０３ｃにおいては、暗号通信プロトコル４０１に対して、鍵データ取得基準４０２が関連付けされる。鍵データ取得基準４０２は、少なくとも、該鍵データが解析対象装置１０１のメモリ１０１ｂに存在するタイミングを判定可能な基準を表す情報である。
【００８３】
また、鍵データ取得ポリシ１０３ｃには、さらに、暗号通信検査部１０３ｂが実行する処理の内容（図４における４０３）が、含まれてもよい。鍵データ取得ポリシ１０３ｃにおいては、処理内容４０３と、暗号通信プロトコル４０１とが関連付けされる。処理内容４０３は、鍵データ取得基準４０２に基づき該鍵データが解析対象装置１０１のメモリ１０１ｂに存在すると判定された場合に、暗号通信検査部１０３ｂが実行する処理の内容を表す情報である。
【００８４】
暗号通信プロトコル４０１には、たとえば、具体的な暗号通信プロトコルごとに、当該暗号通信プロトコルを識別可能な識別符号（ＩＤ：Ｉｄｅｎｔｉｆｉｅｒ）が設定されてもよい。
【００８５】
鍵データ取得基準４０２には、たとえば、情報処理装置（コンピュータ）等による機械解釈が可能な任意の形式（書式）に基づき表現された、該特定のタイミングを判定可能な情報が登録されてもよい。尚、機械解釈可能な任意の形式は、たとえば、特定の符号の組合せや、構造化言語による表現等であってもよい。機械解釈可能な任意の形式は、上述した例に限定されない。
【００８６】
処理内容４０３には、たとえば、機械解釈が可能な任意の形式（書式）に基づき表現された、暗号通信検査部１０３ｂが実行する処理の内容を表す情報が登録されてもよい。
【００８７】
たとえば、図４に例示されているように、暗号通信プロトコルが「ＳＳＬ／ＴＬＳ」である場合には、鍵データ取得基準４０２に、「（ＳＳＬ／ＴＬＳサーバからＣｈａｎｇｅＣｉｐｈｅｒＳｐｅｃが送信された後）」というタイミングに関する情報が設定される。暗号通信検査部１０３ｂは、通信データを解析した結果、鍵データ取得基準４０２を満たすと判定した場合には、処理内容４０３に登録された処理を実行する。
【００８８】
「ＣｈａｎｇｅＣｉｐｈｅｒＳｐｅｃ」は、暗号化方式（暗号通信プロトコル４０１）に従った暗号通信を開始することを表すメッセージである。「ＳＳＨ２＿ＭＳＧ＿ＮＥＷＫＥＹ」は、たとえば、鍵データに関する通信が終了したことを表すメッセージである。また、暗号通信プロトコルが「ＳＳＬ／ＴＬＳ」である場合に、上述した鍵データ取得基準４０２は、（ＳＳＬ／ＴＬＳサーバからＣｈａｎｇｅＣｉｐｈｅｒＳｐｅｃが送信された後）乃至（Ａｐｐｌｉｃａｔｉｏｎ  Ｄａｔａの通信が開始する前）の期間内であればよく上述した例に限定されない。
【００８９】
鍵データ取得基準４０２には、たとえば、暗号通信プロトコルにおいて、暗号鍵に関する特定の条件が成立するタイミングに関する情報が設定されてもよい。より具体的に説明すると、鍵データ取得基準４０２には、特定の暗号通信プロトコル４０１において、解析対象装置１０１と、他の情報通信装置１０７との間で暗号鍵が共有されるタイミングに関する情報が設定されてもよい。また、鍵データ取得基準４０２には、特定の暗号通信プロトコルにおいて、解析対象装置１０１と、他の情報通信装置１０７との間で、暗号鍵の共有に関する特定の手順が実行されたタイミングに関する情報が設定されてもよい。
【００９０】
鍵データ取得ポリシ１０３ｃは、任意の手法により暗号通信検査部１０３ｂに予め設定されていてもよい。
【００９１】
暗号通信検査部１０３ｂは、鍵データ取得ポリシ１０３ｃ（たとえば、鍵データ取得基準４０２）に基づき、解析対象装置１０１のメモリ１０１ｂに暗号鍵を含む鍵データが存在するか否かを判定する。暗号通信検査部１０３ｂは、メモリ１０１ｂに暗号鍵を含む鍵データが存在すると判定した場合には、データ取得部１０２に対して、メモリ領域データの取得を指示することができる。
【００９２】
すなわち、暗号通信検査部１０３ｂは、通信データを解析し、鍵データ取得ポリシ１０３ｃに基づき、解析対象装置１０１のメモリ１０１ｂに暗号鍵を含む鍵データが存在するタイミングを判定する。当該タイミングは、暗号鍵がメモリ１０１ｂに存在する可能性が高いタイミングを表す。このため、暗号通信検査部１０３ｂは、当該タイミングにおいて、データ取得部１０２に対してメモリ領域データの取得を指示する。この場合に、データ取得部１０２が取得したメモリ領域データには、当該暗号鍵が含まれる可能性が高い。
【００９３】
また、暗号通信検査部１０３ｂは、解析対象装置１０１のメモリ１０１ｂに該鍵データが存在すると判定した場合には、通信制御部１０３ａに対して、解析対象装置１０１と、通信ネットワーク１０５との間の通信を（少なくとも一時的に）停止するよう指示することが可能である。
【００９４】
仮に、解析対象装置１０１と、通信ネットワーク１０５との間の通信が停止されずに続行された場合を想定する。この場合に、該鍵データが解析対象装置１０１のメモリ１０１ｂから失われてしまう可能性がある。また、当該通信が停止されずに続行された場合に、通信プロトコルによっては、通信路の暗号化に用いられる暗号鍵が変更されてしまう可能性がある。
【００９５】
このため、暗号通信検査部１０３ｂは、メモリ１０１ｂに該鍵データが存在すると判定したタイミングにおいて、解析対象装置１０１と、通信ネットワーク１０５との間の通信の一時停止を通信制御部１０３ａに指示する。該通信が停止されている間、メモリ１０１ｂに該暗号鍵が保持されていることが期待される。よって、データ取得部１０２がこの間に取得したメモリ領域データには、該鍵データが含まれることが期待される。
【００９６】
換言すると、暗号通信検査部１０３ｂは、該暗号鍵がメモリ１０１ｂに保持されている期間（時間）を延長する目的のために、係る通信を一時停止してもよい。メモリ１０１ｂに該鍵データが存在するタイミングにおいて、解析対象装置１０１と、通信ネットワーク１０５との間の通信を一時停止してからメモリ領域データを取得することにより、該鍵データが含まれる可能性が高いメモリ領域データを取得することが可能である。
【００９７】
暗号通信検査部１０３ｂは、データ取得部１０２からメモリ領域データを取得する処理の完了を通知された際、解析対象装置１０１と、通信ネットワーク１０５との間の通信が停止している場合には、当該通信を再開するよう通信制御部１０３ａに指示してもよい。
【００９８】
尚、暗号通信検査部１０３ｂは、解析対象装置１０１と、通信ネットワーク１０５との間の通信を再開するタイミングを適宜選択してもよい。すなわち、暗号通信検査部１０３ｂは、データ取得部１０２から、メモリ領域データの取得完了を通知された際、該通信を再開してもよい。また、暗号通信検査部１０３ｂは、たとえば、通信データの解読完了を暗号解析部１０４（後述）から通知された際に、該通信を再開してもよい。暗号通信検査部１０３ｂは、上述したように、通信の再開タイミングを制御することにより、該通信が停止される時間（期間）を必要最小限度に留めることが可能である。
【００９９】
たとえば、該通信が停止される期間が長引いた場合には、解析対象装置において通信処理を実行するプログラムにおいて通信エラー等として扱われ、係るプログラムによる処理が異常終了してしまう可能性がある。特に、係るプログラムがマルウェアである場合には、当該マルウェアによる処理が終了してしまうと、その挙動を解析することが困難になる。これに対して、該通信が停止される時間（期間）を必要最小限度に留めることにより、たとえば、マルウェアによる処理を続行させつつ、その挙動を解析することが可能である。
【０１００】
暗号通信検査部１０３ｂは、通信制御部１０３ａに対して解析対象装置１０１と、通信ネットワーク１０５との間の通信の停止を指示してから特定の時間（たとえば、３０秒等）が経過した際に、解析対象装置１０１と、通信ネットワーク１０５との間の通信の再開を指示してもよい。暗号通信検査部１０３ｂは、該特定の時間として適切な値を適宜選択してもよい。たとえば、データ取得部１０２がメモリ１０１ｂからメモリ領域データを取得するのに必要な時間を、事前実験や模擬実験を通じて予め算出することにより、暗号通信検査部１０３ｂは、該特定の時間として必要最小限の値を選択可能である。
【０１０１】
さらに、暗号通信検査部１０３ｂは、データ取得部１０２からメモリ領域データを取得する処理の完了を通知された際、後述する暗号解析部１０４に対して、後述する通信データ記録部１０３ｄにより保存された通信データの解読を指示してもよい。また、その際、暗号通信検査部１０３ｂは、該暗号通信プロトコルにおいて用いられる暗号アルゴリズムに関する情報を暗号解析部１０４に通知してもよい。通信データの解読に関する詳細な処理については、後述する。
【０１０２】
暗号通信検査部１０３ｂは、後述する暗号解析部１０４（たとえば、暗号解読部１０４ｄ）から、通信データの解読処理が完了したことを表す通知を受け付けてもよい。その際に、暗号通信検査部１０３ｂは、解析対象装置１０１と、通信ネットワーク１０５との間の通信が停止している場合には、当該通信を再開するよう通信制御部１０３ａに指示してもよい。
【０１０３】
暗号通信検査部１０３ｂは、暗号解析部１０４により解読された通信データを検査（解析）し、当該解析の結果に基づき、特定の処理を実行する。暗号通信検査部１０３ｂは、係る特定の処理を適宜選択してもよい。
【０１０４】
暗号通信検査部１０３ｂは、たとえば、係る特定の処理として、解析対象装置１０１と通信ネットワーク１０５との間の通信の停止を通信制御部１０３ａに指示してもよい。また、暗号通信検査部１０３ｂは、たとえば、係る特定の処理として、解析対象装置１０１と通信ネットワーク１０５との間で通信されるデータを改変してもよい。また、暗号通信検査部１０３ｂは、たとえば、マルウェア等に感知されないように、解析対象装置１０１と通信ネットワーク１０５との間の通信をそのまま続行させてもよい。尚、係る特定の処理は、解読された通信データに応じて、予め定められていてもよい。
【０１０５】
次に、通信データ記録部１０３ｄについて説明する。
【０１０６】
通信データ記録部１０３ｄは、通信制御部１０３ａにおいてキャプチャされた該通信データを、通信データ記録ポリシ１０３ｅに基づき、通信データ保持部１０３ｆに保存（登録）する。
【０１０７】
通信データ記録ポリシ１０３ｅは、通信制御部１０３ａにおいてキャプチャされた通信データを保存する必要があるのか否かを判定するのに用いられる情報である。
【０１０８】
より具体的に、通信データ記録ポリシ１０３ｅには、図５に例示されているように、特定の暗号通信プロトコル（図５における５０１）の種別と、通信データ記録基準（図５における５０２）とが含まれている。通信データ記録ポリシ１０３ｅにおいては、暗号通信プロトコル５０１と、通信データ記録基準５０２とが関連付けされている。通信データ記録基準５０２は、暗号通信プロトコル５０１を用いて通信される通信データの保存（記録）の要否を判定可能な基準（情報）を表す。
【０１０９】
また、通信データ記録ポリシ１０３ｅには、さらに、通信データ記録部１０３ｄが実行する処理の内容（図５における５０３）が含まれてもよい。通信データ記録ポリシ１０３ｅにおいては、処理内容５０３と、暗号通信プロトコル５０１とが関連付けされている。処理内容５０３は、通信データ記録基準５０２を満たすと判定された場合に、通信データ記録部１０３ｄが実行する処理の内容を表す情報である。
【０１１０】
暗号通信プロトコル５０１には、たとえば、具体的な暗号通信プロトコルごとに、当該暗号通信プロトコルを識別可能な識別符号（ＩＤ）が設定されてもよい。
【０１１１】
通信データ記録基準５０２には、たとえば、機械解釈が可能な任意の形式（書式）に基づき表現された、通信データの保存（記録）の要否を判定可能な情報が登録されてもよい。より具体的に説明すると、通信データ記録基準５０２には、たとえば、通信データを保存する条件の成否、または、通信データを保存するタイミングを判定可能な情報が登録されてもよい。
【０１１２】
処理内容５０３には、たとえば、機械解釈が可能な任意の形式（書式）に基づき表現された、通信データ記録部１０３ｄが実行する処理の内容を表す情報が登録されてもよい。
【０１１３】
たとえば、図５に例示されているように、暗号通信プロトコルが「ＳＳＬ／ＴＬＳ」である場合に、通信データ記録基準５０２には「（Ａｐｐｌｉｃａｔｉｏｎ  Ｄａｔａの通信が開始された後）」という情報が設定される。通信データ記録部１０３ｄは、通信データを解析した結果、通信データ記録基準５０２を満たすと判定した場合には、処理内容５０３に登録された処理を実行する。
【０１１４】
尚、通信データ記録基準５０２には、たとえば、暗号通信プロトコル５０１によって暗号化された通信路において最初の（暗号化された）通信データが通信されるタイミング以降のデータを記録することを表す条件が設定されてもよい。
【０１１５】
上述したように、暗号通信プロトコルによっては、通信路における暗号化に用いる該暗号鍵が所定のタイミングで変更される可能性がある。すなわち、暗号化された通信路において最初の通信データと、２回目以降の通信データとでは、通信路を暗号化する暗号鍵が異なる可能性がある。また、暗号通信プロトコルによっては、通信路が暗号化された後、最初の通信データにおいて機密度が高い情報（重要度が高い情報）が通信される可能性がある。このため、後述する暗号解析部１０４が全ての暗号通信のデータを解読できるように、通信路が暗号化された際、最初の通信データが通信されるタイミングで当該通信データを保存することが有効である。
【０１１６】
尚、通信データ記録基準５０２には、上述した例に限定されず、任意のタイミングを判断可能な情報が設定されてもよい。
【０１１７】
通信データ記録ポリシ１０３ｅは、任意の手法により通信データ記録部１０３ｄに予め設定されていてもよい。
【０１１８】
通信データ記録部１０３ｄは、通信データ記録基準５０２を満たすと判定した通信データを、通信データ保持部１０３ｆに登録する。
【０１１９】
通信データ保持部１０３ｆは、たとえば、図６に例示されているように、各通信データについて、当該通信データの発信元に関する情報（図６の６０１）、暗号通信プロトコルを表す識別情報（図６の６０２）、及び、記録される通信データを表す記録データ（図６の６０３）を関連付けて保持する。尚、記録データ６０３には、当該通信データをキャプチャした時刻等のタイミングを表す情報と、当該通信データの内容とが登録されてもよい。
【０１２０】
（暗号解析部１０４の構成）
次に、本実施形態に係る暗号解析部１０４について説明する。まず、本実施形態に係る暗号解析部１０４の概要について説明する。
【０１２１】
暗号解析部１０４は、データ取得部１０２が取得したメモリ領域データを解析し、鍵データの特徴を表す情報（後述）に基づき、当該メモリ領域データに含まれる該暗号鍵の候補を抽出する。
【０１２２】
暗号解析部１０４は、通信データ記録部１０３ｄにより保存された暗号化された通信データを、抽出した該暗号鍵の候補を用いて復号した結果に基づき、当該暗号鍵の候補の中から、正しい暗号鍵を抽出する。この場合に、正しい暗号鍵は、暗号化された通信データを正しく復号可能な鍵である。尚、この際、暗号解析部１０４は、該暗号通信プロトコルにおいて用いられる暗号化方式（暗号アルゴリズム）を特定してもよい。
【０１２３】
暗号解析部１０４の具体的な構成について説明する。
【０１２４】
暗号解析部１０４は、鍵候補抽出部１０４ａ、及び、暗号解読部１０４ｄを有する。暗号解析部１０４を構成している構成要素の間は、それぞれ通信可能に接続されている。
【０１２５】
まず、本実施形態に係る鍵候補抽出部１０４ａについて説明する。鍵候補抽出部１０４ａは、鍵候補判定情報１０４ｂと、鍵候補保持部１０４ｃとを有する。
【０１２６】
鍵候補抽出部１０４ａは、メモリダンプ保持部１０２ａに登録されたメモリ領域データを参照し、鍵候補判定情報１０４ｂに基づき、当該メモリ領域データから該暗号鍵の候補を抽出する。すなわち、鍵候補抽出部１０４ａは、鍵候補判定情報１０４ｂに基づき、メモリ領域データから、解析対象装置１０１と、通信ネットワーク１０５との間の暗号通信に用いられる暗号鍵の候補を含む鍵データの候補を抽出する。以降、係る鍵データの候補を、「鍵データ候補」と称する場合がある。尚、鍵候補抽出部１０４ａは、鍵データ候補を抽出した際、当該処理の完了を、後述する暗号解読部１０４ｄに通知してもよい。
【０１２７】
まず、鍵候補抽出部１０４ａによる、該メモリ領域データにおける該暗号鍵の探索について説明する。
【０１２８】
上述したように、メモリ領域データは、特定のタイミングにおいて解析対象装置１０１のメモリ１０１ｂに保持されているデータである。すなわち、データ取得部１０２がメモリ１０１ｂから該メモリ領域データを取得するタイミングにより、メモリ領域データの内容は変わる。このため、当該メモリ領域データの中で該暗号鍵を含む鍵データを予め特定することは困難である。
【０１２９】
また、解析対象装置１０１におけるメモリ１０１ｂの記憶容量（メモリ空間のサイズ）が大きい場合に、メモリ領域データは大きい。すなわち、鍵候補抽出部１０４ａは、大きなサイズのデータの中から、暗号鍵を探索する必要がある。仮に、１ＧＢ（単位：ＧｉｇａＢｙｔｅｓ）のメモリ領域データから、１２８ビット（単位：ｂｉｔ）の暗号鍵を全探索する場合に、その候補の数が膨大になるので、鍵データ候補を抽出する効率的な手法が必要とされる。
【０１３０】
該暗号鍵を含む鍵データは、該メモリ領域データに含まれるデータの中で、特有の特徴を示すことが多い。係る鍵データの特徴は、たとえば、鍵データ自体の属性（たとえば、データ自体のランダム性等）、または、係る鍵データの該メモリ領域データにおける配置パターン（配置される位置や、配置されるデータの並び）等を表す。
【０１３１】
該鍵データの特徴は、暗号通信の実行に関する各種条件に応じて異なる。係る条件には、たとえば、該暗号通信プロトコルにおいて用いられる暗号化方式（暗号アルゴリズム）、当該暗号化方式に用いられる暗号パラメータ（後述）、または、解析対象装置１０１における当該暗号化方式に関する処理の実行環境（後述）等が含まれる。具体例として、特定の暗号アルゴリズムにおいて用いられる暗号鍵の鍵長が異なる場合には、該鍵データの特徴が異なるときがある。また、たとえば、各暗号アルゴリズムにおいて用いられる暗号利用モードによって、該暗号鍵を含む暗号化処理に必要な情報が異なるので、該鍵データの特徴は異なる場合がある。尚、暗号利用モードは、暗号アルゴリズムとしてブロック暗号を採用した場合に、ブロック長よりも長い平文を暗号化する際の処理方法である。
【０１３２】
鍵候補抽出部１０４ａは、該メモリ領域データから、特定の鍵データの特徴に合致するデータを鍵データ候補として抽出する。これにより、鍵候補抽出部１０４ａは、該暗号鍵の候補を抽出可能である。
【０１３３】
たとえば、暗号アルゴリズムに関する事前知識、または、事前実験等に基づき、各種条件の組合せごとに、予め該鍵データの特徴を表す情報（データ）を収集することが可能である。また、当該収集した該鍵データの特徴を表すデータをパターン化することにより、メモリ領域データの中から該鍵データ候補を抽出可能な判定情報を設けることが可能である。
【０１３４】
該鍵データの特徴を表すデータを収集する具体的な方法は、適宜選択可能である。たとえば、解析システムのユーザ、開発者、または、管理者等（以下、「ユーザ等」と称する）が、解析対象装置１０１において、暗号鍵を出力可能な実験用の暗号通信プログラムを実行する。次に、当該ユーザ等は、たとえば、データ取得部１０２を用いて、当該実験用の通信プログラムが実行されている特定のタイミングにおいて、解析対象装置１０１のメモリ領域データを取得する。当該ユーザ等は、当該取得したメモリ領域データにおいて、実験プログラムから出力された（正しい）暗号鍵を探索する。このような実験を繰り返すことにより、暗号鍵が配置された領域に共通する特徴を抽出することが可能である。また、当該ユーザ等は、たとえば、暗号化方式に関する一般的な事前知識（たとえば、暗号鍵の鍵長や、暗号鍵のランダム性等）に基づき、記鍵データに特有の特徴を抽出することが可能である。
【０１３５】
また、たとえば、当該ユーザ等は、解析対象装置１０１において該実験プログラムを実行した際に、解析対象装置１０１における暗号通信に用いられるＡＰＩをフックしてもよい。当該ユーザ等は、フックしたＡＰＩに対する入力（すなわち、引数）を解析することにより、暗号鍵を入手し、当該暗号鍵を表す鍵データの特徴を解析する。また、当該暗号鍵を表すデータが、解析対象装置におけるメモリ１０１ｂのどこに配置されているかを調査する。当該ユーザ等は、このような処理によって得られた調査結果を、該鍵データの特徴を表すデータとして収集する。尚、ＡＰＩをフックする方法は、周知の技術であるので、詳細な説明を省略する。
【０１３６】
尚、該鍵データの特徴を表すデータを収集する方法は、上述したような具体例に限定されず、任意の方法を採用してもよい。
【０１３７】
上述したように、各種条件に応じて、鍵データの特徴を表すデータを予め収集してパターン化することにより、メモリ領域データの中から該鍵データ候補を抽出可能な判定情報を設けることが可能である。係る判定情報には、たとえば、メモリ領域データにおいて鍵データ候補を探索（抽出）する位置（場所）や、特定のデータが鍵データか否かを判定可能な判定基準等が設定されてもよい。
【０１３８】
本実施形態に係る鍵候補抽出部１０４ａは、係る判定情報を用いてメモリ領域データから該暗号鍵を含む鍵データ候補を抽出する。より具体的に、鍵候補抽出部１０４ａは、該暗号鍵を含む鍵データ候補を抽出可能な判定情報を有する鍵候補判定情報１０４ｂを用いて、鍵データ候補を抽出する。
【０１３９】
鍵候補判定情報１０４ｂは、図７に例示されているように、暗号化方式（暗号アルゴリズム）の種別を表す情報（図７における７０１）と、鍵候補判定基準（図７における７０４）とを有する。鍵候補判定基準７０４は、暗号アルゴリズム７０１に関連付けられる。係る鍵候補判定基準７０４は、メモリ領域データに含まれる特定のデータが、該暗号鍵を含む鍵データに該当するか否かを判定可能な基準を表す情報である。換言すると、鍵候補判定基準７０４は、鍵データの特徴を表すデータに基づき、メモリ領域データに含まれる特定のデータが、該暗号鍵を含む鍵データに該当するか否かを判定可能な基準である。
【０１４０】
また、鍵候補判定情報１０４ｂは、さらに、暗号アルゴリズム７０１に関連付けされた、当該暗号アルゴリズムに関する暗号パラメータ（図７の７０２）と、解析対象装置１０１において暗号アルゴリズム７０１に関する暗号化処理の実行環境を表す情報（図７の７０３）とを含んでもよい。
【０１４１】
暗号アルゴリズム７０１には、たとえば、具体的な暗号アルゴリズムを識別可能な識別符号（ＩＤ）が設定されてもよい。
【０１４２】
鍵候補判定基準７０４には、たとえば、機械解釈が可能な任意の形式（書式）に基づき表現された情報が登録されてもよい。
【０１４３】
暗号パラメータ７０２は、図７に例示されているように、暗号アルゴリズム７０１において用いられる鍵の長さ（鍵長）と、暗号利用モードに関する情報とを含んでもよい。暗号利用モードは、上述したように、暗号アルゴリズム７０１としてブロック暗号を採用した場合に、ブロック長よりも長い平文を暗号化する際の処理方法である。係る暗号利用モードとして、たとえば、ＣＢＣ（Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ）モードや、ＧＣＭ（Ｇａｌｏｉｓ／Ｃｏｕｎｔｅｒ  Ｍｏｄｅ）等が知られている。
【０１４４】
実行環境情報７０３は、たとえば、解析対象装置１０１において、暗号アルゴリズム７０１に関する処理が実装されたライブラリに関する情報、及び、解析対象装置１０１の実行環境に関する情報等が設定される。より具体的に、実行環境情報７０３は、たとえば、解析対象装置１０１のＯＳ（たとえば、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）等）、及び、暗号処理実装（ＣＧＮ（Ｃｒｙｐｔｏｇｒａｐｈｙ  Ｎｅｘｔ  Ｇｅｎｅｒａｔｉｏｎ）ＡＰＩ、ＯｐｅｎＳＳＬ等）を特定可能な情報であってもよい。
【０１４５】
鍵候補判定情報１０４ｂは、任意の手法により鍵候補抽出部１０４ａに予め設定されていてもよい。
【０１４６】
鍵候補判定情報１０４ｂ（たとえば、鍵候補判定基準７０４）に基づき、鍵候補抽出部１０４ａは、メモリ領域データに含まれる特定のデータ領域を、鍵データ候補として抽出するか否かを判定する。
【０１４７】
鍵候補抽出部１０４ａによって、該鍵データ候補が抽出される抽出処理について、図７に示す具体例を参照しながら説明する。
【０１４８】
たとえば、図７に例示されているように、暗号アルゴリズム７０１が「ＡＥＳ」、暗号パラメータ７０２の鍵長が「１２８ビット」、または、「２５６ビット」、暗号利用モードが「ＣＢＣ」であると仮定する。尚、ＡＥＳは、Ａｄｖａｎｃｅｄ＿Ｅｎｃｒｙｐｔｉｏｎ＿Ｓｔａｎｄａｒｄの略称を表す。
【０１４９】
この場合に、鍵候補抽出部１０４ａは、該暗号アルゴリズム７０１、及び、暗号パラメータ７０２に関連付けされた鍵候補判定基準７０４を参照する。鍵候補判定基準７０４に基づき、鍵候補抽出部１０４ａは、メモリダンプ保持部１０２ａに保持されているメモリ領域データから、情報エントロピーが特定の基準値以上である連続した１６バイト、または、３２バイトのデータ領域を抽出する。以降、説明の便宜上、情報エントロピーを、単に、エントロピーと表す。
【０１５０】
一般的に、あるデータ領域に含まれるデータが表す値のエントロピー（以下、「データのエントロピー」と称する場合がある）が大きいほど、そのデータ領域に含まれるデータが表す値のばらつきは大きい。また、暗号鍵は（規則性を見いだせない）乱数値であることが多いので、暗号鍵を含む鍵データの値は、ばらつきが大きいと想定される。このため、図７に例示されているような判定基準に基づき、鍵候補抽出部１０４ａは、ばらつきが大きい値を有するデータを含むデータ領域を、鍵データ候補として抽出可能である。
【０１５１】
尚、係るばらつきの大きさは、既知の種々の計算方法を用いて算出可能である。具体的な一例として、鍵候補抽出部１０４ａは、たとえば、鍵データ候補の標準偏差（または、分散）を係るばらつきの大きさとして算出してもよい。標準偏差（または、分散）の算出方法は、周知の技術であるので、詳細な説明を省略する。
【０１５２】
たとえば、図７に例示されているように、暗号アルゴリズム７０１が「ＡＥＳ」、暗号パラメータ７０２の鍵長が「１２８ビット（単位：ｂｉｔ）」であり、暗号利用モードが「ＧＣＭ」である場合を仮定する。この場合に、鍵候補抽出部１０４ａは、該暗号アルゴリズム７０１、及び、暗号パラメータ７０２に関連付けされた鍵候補判定基準７０４を参照し、メモリ領域データから、「０ｘ３０、０ｘ０２、０ｘ００、０ｘ００、０ｘ４ｂ、０ｘ５３、０ｘ５３、０ｘ４Ｄから開始する連続した５６０バイト（単位：ｂｙｔｅ）のデータ」に該当すると判定したデータを抽出する。たとえば、解析対象装置１０１における特定の実行環境において、暗号鍵を含む鍵データは、特定の配置パターンを有する場合がある。図７に例示されているように、このような配置パターンを鍵候補判定基準７０４として登録することにより、鍵候補抽出部１０４ａは、係る配置パターンに合致するデータを、鍵データ候補として抽出可能である。
【０１５３】
言い換えると、「０ｘ３０、０ｘ０２、０ｘ００、０ｘ００、０ｘ４ｂ、０ｘ５３、０ｘ５３、０ｘ４Ｄ」は、鍵データ候補が格納されている記憶領域が特定さえる手がかりであるタグである。したがって、この場合に、鍵候補抽出部１０４ａは、該タグを表すタグ情報に基づき、たとえば、タグ情報が表すタグ以降の５６０バイトに格納されているデータを鍵データ候補として抽出する。
【０１５４】
鍵候補抽出部１０４ａは、たとえば、メモリ領域データの特定の位置（たとえば、先頭）から、順次特定のサイズ（たとえば、１バイト）ずつシフトしながら、特定のサイズのデータを抽出し、鍵候補判定基準７０４に基づき、当該データが鍵データ候補に該当しているのか否かを判定してもよい。
【０１５５】
暗号通信検査部１０３ｂが、ある暗号通信に関する通信データを解析した結果から、暗号スイートに関する情報を取得可能である場合を想定する。この場合には、当該暗号通信に関する暗号アルゴリズム７０１、及び、暗号パラメータ７０２に関する情報を、通信データから判明する既知の情報として扱うことができる。また、解析対象装置１０１に関する実行環境情報７０３は、暗号解析部１０４に予め設定する等の方法により、既知の情報として扱うことができる。
【０１５６】
尚、暗号アルゴリズム７０１、及び、暗号パラメータ７０２が不明である場合に、鍵候補抽出部１０４ａは、鍵候補判定情報１０４ｂに登録された全ての鍵候補判定基準７０４を用いて、それぞれの基準に適合する鍵データ候補を抽出してもよい。この場合には、後述する暗号解読部１０４ｄが、暗号化された通信データを、抽出した該鍵データ候補を用いて解読した結果に基づき、当該通信データの暗号化に用いられる暗号鍵を含む鍵データ、暗号アルゴリズム、及び、暗号パラメータを特定することが可能である。
【０１５７】
また、鍵候補抽出部１０４ａは、鍵データ候補を抽出すると共に、特定の暗号通信プロトコルにおいて通信データを暗号化、または、復号する処理に用いられるその他の必要な情報（以下、「暗号処理データ」と称する場合がある）を取得してもよい。
【０１５８】
係る暗号処理データには、たとえば、以下のようなデータが含まれてもよい。すなわち、係る暗号処理データには、暗号アルゴリズムとしてブロック暗号が用いられる場合の初期化ベクタ（ＩＶ：Ｉｎｉｔｉａｌｉｚａｔｉｏｎ  Ｖｅｃｔｏｒ）が含まれてもよい。また、係る暗号処理データには、特定の暗号利用モードにおいて用いられる各種パラメータ（たとえば、カウンタモードにおけるカウンタ、ｎｏｎｃｅ（ｎｕｍｂｅｒ  ｕｓｅｄ  ｏｎｃｅ：一度のみ使用される使い捨ての値）等）が含まれてもよい。また、係る暗号処理データには、暗号化された通信データに付与される認証情報等が含まれてもよい。尚、係る暗号処理データには、暗号アルゴリズムや暗号パラメータ８０２等に応じて必要となる任意のデータが含まれてもよい。
【０１５９】
鍵候補抽出部１０４ａは、たとえば、暗号通信検査部１０３ｂ、または、通信制御部１０３ａから通信データを取得し、当該通信データを解析することにより、係る暗号処理データを取得してもよい。また、鍵候補抽出部１０４ａは、たとえば、該鍵データ候補と同様に、特定の判断基準に基づき、メモリダンプ保持部１０２ａに保持されているメモリ領域データの中から、暗号処理データを取得してもよい。
【０１６０】
鍵候補抽出部１０４ａは、メモリ領域データから抽出した鍵データ候補を、鍵候補保持部１０４ｃに保存（登録）する。また、鍵候補抽出部１０４ａは、当該鍵データ候補に関連する暗号処理データを、鍵候補保持部１０４ｃに保存（登録）してもよい。
【０１６１】
鍵候補保持部１０４ｃは、図８に例示されているように、暗号アルゴリズム８０１ごとに、抽出した鍵データ候補８０３を関連付けて保持する。尚、鍵候補保持部１０４ｃは、暗号アルゴリズム８０１ごとに、当該暗号アルゴリズムにおいて用いられる暗号パラメータ８０２を関連付けて保持してもよい。また、鍵候補保持部１０４ｃは、鍵データ候補８０３の一部に、該暗号処理データを併せて保持してもよい。尚、鍵候補保持部１０４ｃは、鍵データ候補８０３とは別の、図示しない領域に、該暗号処理データを保持してもよい。
【０１６２】
鍵候補保持部１０４ｃは、図８に例示されているように、特定の暗号アルゴリズム（たとえば「ＡＥＳ」）に関する鍵データ候補を、複数保持してもよい。尚、図８に例示された構成は１つの具体例であり、本実施形態に係る鍵候補保持部１０４ｃは、この構成には限定されない。
【０１６３】
次に、本実施形態に係る暗号解読部１０４ｄについて説明する。
【０１６４】
暗号解読部１０４ｄは、図１に例示されているように、解析結果判定情報１０４ｅ、及び、解析結果保持部１０４ｆを有する。
【０１６５】
暗号解読部１０４ｄは、鍵候補抽出部１０４ａにおいて鍵データ候補が抽出された際、当該鍵データ候補を用いて、通信データ保持部１０３ｆに保存された（暗号化された）通信データを解読（復号）する。
【０１６６】
暗号解読部１０４ｄは、通信データ保持部１０３ｆに保存された（暗号化された）通信データを参照し、鍵候補保持部１０４ｃに保存された鍵データ候補を用いて、当該暗号化された通信データを解読（復号）する。すなわち、暗号解読部１０４ｄは、鍵候補保持部１０４ｃに保存された鍵データ候補を用いて、解析対象装置１０１と、通信ネットワーク１０５との間の暗号通信において通信される通信データを解読（復号）する。尚、暗号解読部１０４ｄは、必要に応じて、鍵データ候補と、鍵候補抽出部１０４ａが取得した暗号処理データとを用いて、通信データを解読（復号）してもよい。以下においては、解読（復号）された通信データを、「解読済み通信データ」と称する場合がある。
【０１６７】
暗号解読部１０４ｄは、解読済み通信データの特徴を表すデータに基づき、当該解読済み通信データが正しく解読（復号）されたか否かを判定する。係る解読済み通信データの特徴を表すデータは、たとえば、当該解読済み通信データ自体の属性（たとえば、データ自体のランダム性）、または、当該解読済み通信データのデータフォーマット等を表す。
【０１６８】
具体的に説明すると、暗号解読部１０４ｄは、解析結果判定情報１０４ｅに基づき、特定の鍵データ候補による通信データの解読結果の成否を判定する。暗号解読部１０４ｄは、通信データの解読に成功した場合に、当該解読に用いた鍵データを、解析結果保持部１０４ｆに保存（登録）する。また、暗号解読部１０４ｄは、当該鍵データと共に、解読に使用した暗号処理データを解析結果保持部１０４ｆに保存（登録）してもよい。
【０１６９】
尚、以下においては、解析結果判定情報１０４ｅに基づき、通信データの解読に成功したと判定された鍵データを、「正しい鍵データ」と称する場合がある。
【０１７０】
解析結果判定情報１０４ｅは、図９に示すように、解析結果判定基準９０１と、判定結果９０２とを含む。
【０１７１】
解析結果判定基準９０１には、解読済み通信データの特徴を表すデータに基づき、当該解読済み通信データが正しく解読（復号）されたか否かを判定可能な基準を表す情報が設定される。この場合に、解析結果判定基準９０１に設定される情報は、たとえば、機械解釈が可能な任意の形式（書式）に基づき表現されてもよい。
【０１７２】
判定結果９０２には、暗号解読部１０４ｄが特定の通信データを解読した結果が、解析結果判定基準９０１を満たした場合の判定結果（解読を成功したか否か）が設定される。この場合に、判定結果９０２には、係る判定結果を表す符号等が登録されてもよい。
【０１７３】
解析結果判定基準９０１に基づき、暗号解読部１０４ｄは、通信データの復号が成功したか否かを判定する。
【０１７４】
暗号解読部１０４ｄによる通信データの解読成否の判定について、図９に示す具体例を参照しながら説明する。
【０１７５】
図９に示す具体例においては、暗号解読部１０４ｄは、たとえば、解読済み通信データのエントロピーが特定の基準値以下である場合に、当該解読済み通信データが正しく復号されたと判定する。
【０１７６】
たとえば、解読済み通信データのエントロピーが特定の基準値より大きい場合に、暗号解読部１０４ｄは、当該通信データの解読に失敗したと判定する。
【０１７７】
一般的に、データのエントロピーが大きいほど、データ領域に含まれるデータが表す値のばらつきは大きい。すなわち、解読済み通信データのエントロピーが特定の基準値以下の場合には、解読済み通信データに含まれるデータが表す値のばらつきがある程度小さいので、解読に成功した可能性が高い。これに対して、解読済み通信データのエントロピーが特定の基準値より大きい場合には、解読済み通信データに含まれるデータが表す値のばらつきが大きい（すなわち、ランダム性が高い）ので、解読に失敗した可能性が高い。この理由は、暗号化されたデータ（通信データ）は、（規則性を見いだせない）乱数値であることが多く、そのようなデータが表す値は、ばらつきが大きいからである。
【０１７８】
尚、データのばらつき程度（エントロピー）の大小を判定する特定の基準値は、通信データ自体の一般的な特性（ランダム性）に関する知識、または、事前実験等により適宜選択してもよい。
【０１７９】
たとえば、係るデータのばらつき度合いを表す基準としては、標準偏差σ（ただし、σは正の実数を表す）を用いることが可能である。データのばらつきが正規分布に従うと仮定すると、データの平均値を「ｍ」（ただし、ｍは実数を表す）として「ｍ±σ」の範囲に全体の約６８．２％、「ｍ±２σ」の範囲に、全体の約９５．４％のデータが含まれる。すなわち、このσの値が大きい場合に、解読済み通信データは、極めてばらつきが大きい（ランダム性が高い）。この場合に、暗号解読部１０４ｄは、解読済み通信データのばらつきがある程度小さい場合に解読が成功したと判定するよう、係るσの値を適宜選択してもよい。
【０１８０】
たとえば、図９に例示されているように、解読済み通信データが特定のデータを含むか否かを、当該解読済み通信データの解読の成否を判定する基準としてもよい。この理由は、解読済み通信データが既知のデータや、特定のパターンを含む場合に、当該解読済み通信データは正しく解読されている可能性が高いからである。
【０１８１】
たとえば、解読済み通信データが特定のデータフォーマット（各種データを表現可能な表現形式）に適合するか否かを、当該解読済み通信データの解読の成否を判定する基準としてもよい。係るデータフォーマットは、たとえば、各種の音声、静止画像、動画、ドキュメント（文書）等を表すデータフォーマットであってもよい。また、係るデータフォーマットは、たとえば、特定のファイルシステムにおけるファイルフォーマットであってもよい。尚、図９に示す具体例は一つの例示であり、本実施形態は、これに限定されない。
【０１８２】
解析結果判定情報１０４ｅは、任意の手法により暗号解読部１０４ｄに予め設定されていてもよい。
【０１８３】
暗号解読部１０４ｄは、たとえば、鍵候補保持部１０４ｃに保存された全ての鍵データ候補を用いて通信データの解読処理を行い、その結果を解析結果判定情報１０４ｅに基づき判定する。これにより、暗号解読部１０４ｄは、正しい鍵データを抽出可能である。暗号解読部１０４ｄは、通信データ保持部１０３ｆに保存されている全ての通信データに対して、上述したような暗号を解読する処理を実行してもよい。
【０１８４】
暗号解読部１０４ｄは、解析結果判定情報１０４ｅに基づき通信データを解読した結果から、正しい鍵データと、当該正しい鍵データにより解読された解読済み通信データとを、解析結果保持部１０４ｆに保存（登録）する。尚、暗号解読部１０４ｄは、暗号通信検査部１０３ｂに、上述したように、通信データを解読する処理の完了を通知してもよい。
【０１８５】
解析結果保持部１０４ｆは、図１０に例示されているように、暗号アルゴリズムを特定可能な情報（図１０の暗号アルゴリズム１００１）と、正しい鍵データ（図１０の鍵データ１００２）と、解読済み通信データ（図１０の解読結果１００３）とを関連付けて保持する。尚、図１０に例示された構成は１つの具体例であり、本実施形態に係る解析結果保持部１０４ｆは、これには限定されない。たとえば、解析結果保持部１０４ｆは、正しい鍵データのみ、または、解読済み通信データのみを保持してもよく、これらを別々に保持してもよい。また、解析結果保持部１０４ｆは、鍵データ１００２の一部として、該正しい鍵データと共に通信データの解読に用いた暗号処理データを保持してもよい。尚、解析結果保持部１０４ｆは、鍵データ１００２とは別の図示しない領域に、当該暗号処理データを保持してもよい。
【０１８６】
（解析システム１００の動作）
次に、解析システム１００の動作について説明する。尚、以下の説明においては、具体例として、解析対象装置１０１と、通信ネットワーク１０５との間の暗号通信プロトコルが、ＳＳＬであることを想定する。
【０１８７】
図１１を参照しながら、解析システム１００の動作の概要について説明する。
【０１８８】
まず、通信処理部１０３は、解析対象装置１０１と、通信ネットワーク１０５との間で通信される通信データをキャプチャする（ステップＳ１１０１）。
【０１８９】
次に、通信処理部１０３が、キャプチャした該通信データを解析し、鍵データが解析対象装置１０１におけるメモリ１０１ｂに存在するタイミングを判定する（ステップＳ１１０２）。
【０１９０】
ステップＳ１１０２において、当該タイミングが到来したと判定された場合（ステップＳ１１０３にてＹＥＳ）、データ取得部１０２は、解析対象装置１０１におけるメモリ１０１ｂが保持するメモリ領域データを取得する（ステップＳ１１０４）。尚、ステップＳ１１０３における判定結果がＮＯの場合に、ステップＳ１１０１にて、通信処理部１０３が処理を続行する。
【０１９１】
次に、暗号解析部１０４が、ステップＳ１１０４において取得されたメモリ領域データを特定の基準に基づき解析し、鍵データ候補を抽出する（ステップＳ１１０５）。
【０１９２】
次に、暗号解析部１０４が、ステップＳ１１０５において抽出した鍵データ候補を用いて通信データを解読した結果に基づき、正しい鍵データ、及び、解読された通信データを得る（ステップＳ１１０６）。
【０１９３】
次に、通信処理部１０３（たとえば、暗号通信検査部１０３ｂ）は、ステップＳ１１０６にておいて得られた、解読済み通信データの内容を解析し、特定の処理を実行する（ステップＳ１１０７）。通信処理部１０３（たとえば、暗号通信検査部１０３ｂ）は、上述したように、係る特定の処理を適宜選択してもよい。
【０１９４】
尚、ステップＳ１１０１において通信データをキャプチャした通信処理部１０３は、当該通信データを保存する必要があるのか否かを判定し、当該判定結果に基づき通信データを保存する（ステップＳ１１０８）。ステップＳ１１０８における処理は、ステップＳ１１０２乃至ステップＳ１１０５における処理と並行（または、擬似的に並行）して実行されてもよい。
【０１９５】
次に、解析システム１００における動作の詳細について説明する。
【０１９６】
まず、図１２Ａ、及び、図１２Ｂに例示されているフローチャートを参照しながら、データ取得部１０２、及び、通信処理部１０３の動作について説明する。以下、図１２Ａに例示されているフローチャートについて説明する。図１２Ｂは、後述するステップＳ１２０９Ｂ、及び、ステップＳ１２１０Ｂを除いて、図１２Ａと同様のフローチャートであるため、相違点のみ説明する。尚、以下のステップＳ１２０１乃至Ｓ１２０８に例示されている処理は、図１１に例示されているステップＳ１１０１乃至Ｓ１１０５と同様の処理である。
【０１９７】
まず、通信制御部１０３ａは、解析対象装置１０１と、通信ネットワーク１０５との間で通信される通信データをキャプチャする（ステップＳ１２０１）。
【０１９８】
この場合に、上述したように、通信制御部１０３ａは、解析対象装置１０１から通信ネットワーク１０５宛てに送信される通信データ、及び、通信ネットワーク１０５から解析対象装置１０１宛てに送信された通信データの両方をキャプチャ可能である。
【０１９９】
次に、暗号通信検査部１０３ｂが、ステップＳ１２０１においてキャプチャした通信データを解析し、鍵データ取得ポリシ１０３ｃに基づき、メモリ１０１ｂに記憶されているメモリ領域データを取得するか否かを判定する（ステップＳ１２０２）。
【０２００】
より具体的に説明すると、暗号通信検査部１０３ｂは、鍵データ取得ポリシ１０３ｃに基づき、解析対象装置１０１のメモリ１０１ｂに鍵データが存在するタイミングを判定する。
【０２０１】
暗号通信プロトコルとしてＳＳＬが採用されている場合に、暗号通信検査部１０３ｂは、たとえば、図１３に示すＳＳＬプロトコルの処理シーケンスにおいて、解析対象装置１０１が、ＳＳＬサーバ側（他の情報通信装置１０７側）からＣｈａｎｇｅＣｉｐｈｅｒＳｐｅｃメッセージを受信した際（図１３に例示されている「停止タイミングＴ１」）、係るタイミングが到来したと判定してもよい。
【０２０２】
尚、暗号通信検査部１０３ｂは、解析対象装置１０１が、ＳＳＬサーバ側（他の情報通信装置１０７側）からＦｉｎｉｓｈｅｄメッセージを受信した際（図１３に例示されている「停止タイミングＴ２」）、係るタイミングが到来したと判定してもよい。
【０２０３】
ステップＳ１２０２において、暗号通信検査部１０３ｂが、当該タイミングが到来したと判定した場合（ステップＳ１２０３にてＹＥＳ）、暗号通信検査部１０３ｂは、通信制御部１０３ａに対して、解析対象装置１０１と、通信ネットワーク１０５との間の通信を停止するよう指示する（ステップＳ１２０４）。
【０２０４】
この場合に、当該指示を受け付けた通信制御部１０３ａは、解析対象装置１０１と、通信ネットワーク１０５との間の通信を一時停止する。係る通信を停止する具体的な方法は、適宜選択してもよい。
【０２０５】
尚、ステップＳ１２０３にてＮＯの場合に、ステップＳ１２０１に戻って、通信制御部１０３ａが処理を続行する。
【０２０６】
次に、暗号通信検査部１０３ｂは、データ取得部１０２に対して、解析対象装置１０１のメモリ１０１ｂに記憶（保持）されたメモリ領域データの取得を指示する（ステップＳ１２０５）。
【０２０７】
係る指示を受け付けたデータ取得部１０２は、解析対象装置１０１のメモリ１０１ｂに記憶（保持）されたメモリ領域データをダンプする（ステップＳ１２０６）。メモリ１０１ｂに保持されているデータの具体的なダンプ方法は、上述したように、解析対象装置１０１の構成に応じて適宜選択してもよい。
【０２０８】
次に、データ取得部１０２は、取得した該メモリ領域データを、メモリダンプ保持部１０２ａに保存（登録）する（ステップＳ１２０７）。
【０２０９】
次に、データ取得部１０２は、暗号通信検査部１０３ｂに対して、メモリ領域データの取得が完了したことを通知する（ステップＳ１２０８）。
【０２１０】
次に、ステップＳ１２０８にて送信された通知を受け付けた暗号通信検査部１０３ｂは、通信制御部１０３ａに対して、一時停止している通信の再開を指示する。該指示に応じて、通信制御部１０３ａは、当該通信を再開する（ステップＳ１２０９）。
【０２１１】
尚、ステップＳ１２０８が実行されない場合に、暗号通信検査部１０３ｂは、ステップＳ１２０４において通信の停止を指示してから特定の時間が経過した際に、通信制御部１０３ａに対して、一時停止している通信の再開を指示してもよい。
【０２１２】
ステップＳ１２０９における処理の後、暗号通信検査部１０３ｂは、暗号解析部１０４に対して、通信データ記録部１０３ｄにより保存された通信データの解読と、暗号鍵の抽出とを指示してもよい（ステップＳ１２１０）。この際、通信データを解析した結果から、暗号通信プロトコルにおいて用いられる暗号アルゴリズム等が判明している場合に、暗号通信検査部１０３ｂは、暗号解析部１０４に対して、当該暗号アルゴリズムに関する情報を提供してもよい。
【０２１３】
尚、図１２ＡにおけるステップＳ１２０９、及び、ステップＳ１２１０の処理順序は逆であってもよい。すなわち、図１２Ｂに例示されているように、ステップＳ１２０８にて送信された通知を受け付けた暗号通信検査部１０３ｂは、暗号解析部１０４に対して、通信データ記録部１０３ｄにより保存された通信データの解読と、暗号鍵の抽出とを指示してもよい（ステップＳ１２０９Ｂ）。暗号通信検査部１０３ｂは、暗号解析部１０４から、通信データの解読処理の完了を通知された際に、通信制御部１０３ａに対して、一時停止している通信の再開を指示してもよい（ステップＳ１２１０Ｂ）。
【０２１４】
次に、通信処理部１０３（たとえば、通信データ記録部１０３ｄ）の処理について、図１４に例示されているフローチャートを参照して説明する。尚、以下のステップＳ１４０１乃至ステップＳ１４０４は、図１１に例示したステップＳ１１０８に相当する。
【０２１５】
まず、図１４に示すステップＳ１２０１において、通信制御部１０３ａが、通信データをキャプチャする。係る処理は、図１２Ａ、及び、図１２Ｂに例示されているステップＳ１２０１と同様としてもよい。
【０２１６】
次に、通信制御部１０３ａは、キャプチャした通信データを、通信データ記録部１０３ｄに伝達（通知）する（ステップＳ１４０１）。
【０２１７】
通信データ記録部１０３ｄは、通信データ記録ポリシ１０３ｅに基づき、ステップＳ１２０１においてキャプチャされた通信データを保存するか否かを判定する（ステップＳ１４０２）。
【０２１８】
通信プロトコルとしてＳＳＬが採用された場合に、通信データ記録ポリシ１０３ｅ（たとえば、通信データ記録基準５０２）には、たとえば、図１３に例示されている最初のＡｐｐｌｉｃａｔｉｏｎＤａｔａメッセージが送信されるタイミングである「Ｔ３」以降の通信データを保存（記録）することを表す条件が設定されてもよい。尚、通信データ記録ポリシ１０３ｅ（たとえば、通信データ記録基準５０２）には、たとえば、図１３に例示されている「停止タイミングＴ１」、または、「停止タイミングＴ２」以降の通信データを保存（記録）することを表す条件が設定されてもよい。
【０２１９】
ステップＳ１４０２における判定の結果、通信データを保存する場合（ステップＳ１４０３にてＹＥＳ）、通信データ記録部１０３ｄは、当該通信データを通信データ保持部１０３ｆに登録（保存）する（ステップＳ１４０４）。
【０２２０】
尚、ステップＳ１４０３にてＮＯの場合に、通信データ記録部１０３ｄは、当該通信データを保存しなくともよい。
【０２２１】
ステップＳ１４０１乃至Ｓ１４０４の処理に従い、通信データが必要に応じて通信データ保持部１０３ｆに保存される。
【０２２２】
次に、暗号解析部１０４の処理について、図１５、及び、図１６に例示されているフローチャートを参照しながら説明する。尚、図１５、及び、図１６に例示されているフローチャートは、図１１におけるステップＳ１１０５乃至Ｓ１１０６に相当する。
【０２２３】
まず、図１５に例示されているフローチャートを参照しながら、鍵候補抽出部１０４ａの動作について説明する。
【０２２４】
上述したように、たとえば、暗号通信検査部１０３ｂからの指示（図１２ＡにおけるステップＳ１２１０）に応じて、暗号解析部１０４は、暗号化された通信データの解読処理を開始する。
【０２２５】
まず、鍵候補抽出部１０４ａは、メモリダンプ保持部１０２ａに登録（保存）されたメモリ領域データを参照する（ステップＳ１５０１）。この場合に、鍵候補抽出部１０４ａは、メモリダンプ保持部１０２ａから、当該メモリ領域データを取得してもよい。
【０２２６】
次に、鍵候補抽出部１０４ａは、鍵候補判定情報１０４ｂに基づき、ステップＳ１５０１において参照（取得）したメモリ領域データから暗号鍵の候補を抽出する（ステップＳ１５０２）。
【０２２７】
上述したように、暗号通信検査部１０３ｂから、暗号アルゴリズムに関する情報が提供された場合に、鍵候補抽出部１０４ａは、当該暗号アルゴリズムに関連付けされた鍵候補判定基準７０４を用いて、メモリ領域データから鍵データ候補を抽出する。
【０２２８】
鍵候補抽出部１０４ａは、暗号アルゴリズムが不明である場合に、鍵候補判定情報１０４ｂに登録された全ての暗号アルゴリズム７０１について、鍵候補判定基準７０４に基づき鍵データ候補を抽出する。
【０２２９】
また、この際、鍵候補抽出部１０４ａは、鍵データ候補に関連付けされた暗号アルゴリズムに関する情報（たとえば、図７における暗号アルゴリズム７０１、及び、暗号パラメータ７０２）を抽出してもよい。
【０２３０】
次に、鍵候補抽出部１０４ａは、ステップＳ１５０２において抽出した鍵データ候補、及び、暗号アルゴリズムに関する情報を、鍵候補保持部１０４ｃに登録（保存）する（ステップＳ１５０３）。
【０２３１】
ステップＳ１５０３の後、鍵候補抽出部１０４ａは、暗号解読部１０４ｄに対して鍵データ候補に関する抽出処理が完了したことを通知してもよい（ステップＳ１５０４）。
【０２３２】
次に、暗号解読部１０４ｄは、ステップＳ１５０１乃至Ｓ１５０３において抽出された鍵データ候補を用いて、暗号化された通信データを解読する処理を実行する（ステップＳ１５０５）。
【０２３３】
ステップＳ１５０５における処理の詳細について、図１６に例示されているフローチャートを参照しながら説明する。
【０２３４】
まず、暗号解読部１０４ｄは、鍵候補保持部１０４ｃに登録された鍵データ候補（図８の８０３）を取得する（ステップＳ１６０１）。尚、この際、暗号解読部１０４ｄは、当該鍵データ候補と関連付けされた暗号アルゴリズムに関する情報（図８の８０１、及び、８０２）を取得してもよい。また、暗号解読部１０４ｄは、当該鍵データ候補に関連付けされた暗号処理データを取得してもよい。
【０２３５】
次に暗号解読部１０４ｄは、通信データ保持部１０３ｆに登録（保存）された、暗号化された通信データを参照する。この場合に、暗号解読部１０４ｄは、当該通信データを、通信データ保持部１０３ｆから取得してもよい。
【０２３６】
次に、暗号解読部１０４ｄは、ステップＳ１６０１において参照（取得）した鍵データ候補、及び、暗号アルゴリズムに関する情報を用いて、当該取得した通信データを解読（復号）する（ステップＳ１６０２）。
【０２３７】
次に、暗号解読部１０４ｄは、ステップＳ１６０２において通信データを解読（復号）した結果を表す解読済み通信データが、正しく解読（復号）されたか否かを、解析結果判定情報１０４ｅに基づき判定する（ステップＳ１６０３）。
【０２３８】
上述したように、暗号解読部１０４ｄは、たとえば、解読済み通信データのエントロピーの値、または、解読済み通信データが特定のデータフォーマットに合致するか否か、等に基づき、解読済み通信データが、正しく解読されたか否かを判定してもよい。
【０２３９】
解読済み通信データが正しく解読されたと判定した場合（ステップＳ１６０４にてＹＥＳ）、暗号解読部１０４ｄは、正しい鍵データと、解読済み通信データとを、解析結果保持部１０４ｆに登録する（ステップＳ１６０６）。
【０２４０】
解読済み通信データが正しく解読されなかったと判定した場合（ステップＳ１６０４にてＮＯ）、暗号解読部１０４ｄは、鍵候補保持部１０４ｃに他の鍵データ候補が登録されているかを確認する（ステップＳ１６０５）。
【０２４１】
他の鍵データ候補が登録されている場合（ステップＳ１６０７にてＹＥＳ）、暗号解読部１０４ｄは、ステップＳ１６０１から処理を続行し、当該他の鍵データ候補を鍵候補保持部１０４ｃから取り出す。
【０２４２】
ステップＳ１６０１乃至Ｓ１６０７の処理により、通信データを解読可能な暗号鍵を含む鍵データと、解読された通信データとが得られる。
【０２４３】
尚、暗号解読部１０４ｄは、上述したような通信データの解読処理の完了を、暗号通信検査部１０３ｂに通知してもよい（ステップＳ１６０８）。
【０２４４】
ステップＳ１６０８にて送信された通知を受け付けた暗号通信検査部１０３ｂは、図１１を参照しながら説明したステップＳ１１０７から処理を続行する。この場合に、暗号通信検査部１０３ｂは、解読された通信データを解析した結果に基づき、特定の処理を実行可能である。
【０２４５】
以上のように構成された本実施形態に係る解析システム１００においては、まず、通信処理部１０３が、解析対象装置１０１と、通信ネットワーク１０５との間で特定の暗号通信プロトコルに基づき通信される通信データを解析する。通信処理部１０３は、係る解析の結果に基づき、解析対象装置１０１と、通信ネットワーク１０５との間の通信路を暗号化する暗号鍵が、解析対象装置１０１のメモリ１０１ｂに存在するタイミングを特定する。
【０２４６】
通信処理部１０３は、当該タイミングにおいて、メモリ１０１ｂに記憶されたメモリ領域データの取得を、データ取得部１０２に対して指示する。
【０２４７】
以上より、本実施形態に係る解析システム１００によれば、データ取得部１０２は、解析対象装置１０１と、通信ネットワーク１０５との間の通信路を暗号化する暗号鍵を含むメモリ領域データを、解析対象装置１０１のメモリ１０１ｂから取得可能である。
【０２４８】
また、通信処理部１０３（たとえば、暗号通信検査部１０３ｂ）は、該特定のタイミングにおいて、通信制御部１０３ａに対して、解析対象装置１０１と、通信ネットワーク１０５との間の通信を一時的に停止するよう指示可能である。これにより、本実施形態に係る通信処理部１０３は、該暗号鍵がメモリ１０１ｂに保持されている期間を延長することが可能である。この理由は、解析対象装置１０１と、通信ネットワーク１０５との間の通信が一時停止されることにより、通信処理の進行に伴う暗号鍵の消失や変更等が発生せず、メモリ１０１ｂに該暗号鍵が保持されていることが期待されるからである。このため、本実施形態に係る解析システム１００によれば、当該暗号鍵を含む可能性が高いメモリ領域データを取得することが可能である。
【０２４９】
以上より、本実施形態によれば、解析対象装置１０１と通信ネットワーク１０５との間で暗号通信プロトコルに基づき通信される通信データを解析した結果に基づき、当該暗号通信プロトコルにおける暗号化処理に用いられる暗号鍵を含むデータを、情報通信装置のメモリ空間から取得可能である。
【０２５０】
より具体的に、本実施形態によれば、該暗号通信により通信される通信データを解析することにより、該暗号通信において用いられる暗号鍵が解析対象装置１０１のメモリ１０１ｂに存在するか否かを判定し、当該判定結果に基づき、メモリ１０１ｂに保持されているデータを取得可能である。
【０２５１】
また、本実施形態に係る解析システム１００は、さらに、以下のような効果を奏する。
【０２５２】
本実施形態に係る解析システム１００においては、暗号解析部１０４が、取得した該メモリ領域データの中から、暗号鍵を含む鍵データの特徴を表すデータ（鍵候補判定情報１０４ｂ）に基づき、暗号鍵の候補（鍵データ候補）を抽出する。暗号解析部１０４は、解析結果判定情報１０４ｅに基づき、抽出した該鍵データ候補を用いて通信データを解読（復号）した結果の成否を判定する。暗号解析部１０４は、係る判定結果に基づき、正しい暗号鍵を含む鍵データと、解読された通信データを取得可能である。
【０２５３】
以上より、本実施形態に係る解析システム１００は、メモリ領域データの中から、効率よく鍵データ候補を抽出可能である。この理由は、暗号解析部１０４が、メモリ領域データの中から鍵データの特徴を表すデータ（鍵候補判定情報１０４ｂ）に基づき鍵データ候補を抽出するので、鍵データの特徴に合致しないデータを、鍵データ候補から排除可能であるからである。また、複数の鍵データ候補の中に含まれる正しい鍵データを判定可能であるので、本実施形態に係る解析システム１００は、メモリ領域データから、正しい鍵データを、効率的に探索可能である。
【０２５４】
また、本実施形態に係る解析システム１００においては、抽出した該正しい鍵データを用いて、暗号解析部１０４が、暗号化された通信データを解読可能である。
【０２５５】
また、本実施形態に係る解析システム１００によれば、通信処理部１０３は、暗号解析部１０４により解読された通信データを用いて、解析対象装置１０１と、通信ネットワーク１０５との間で通信される通信データの内容を解析可能である。通信処理部１０３は、当該解析結果に応じて、たとえば、上述したような特定の処理を実行することが可能である。
【０２５６】
以上より、本実施形態に係る解析システム１００は、解析対象装置１０１と、通信ネットワーク１０５との間で通信される暗号化された通信データの少なくとも一部を解析可能である。また、本実施形態に係る解析システム１００は、該解析の結果に応じて、特定の処理を実行することが可能である。具体的に、本実施形態に係る解析システム１００は、たとえば、解析対象装置１０１において実行されるマルウェア等の任意のソフトウェア・プログラムによる暗号通信の内容を解析可能である。特に、本実施形態に係る解析システム１００は、当該ソフトウェア・プログラムや、解析対象装置１０１に対して非侵襲的な手法により、暗号通信の内容を解析可能であり、当該解析結果に基づき、任意の処理を実行可能である。
【０２５７】
＜第１の実施形態の変形例＞
以下、第１の実施形態の変形例について説明する。
【０２５８】
第１の実施形態においては、鍵候補抽出部１０４ａは、データ取得部１０２において取得されたメモリ領域データから、鍵候補判定情報１０４ｂに基づき、鍵データ候補を抽出する。
【０２５９】
本変形例における鍵候補抽出部１０４ａは、上述したような暗号処理データの候補と、該暗号鍵を生成する基になるデータである鍵素材データの候補との少なくとも一方を、メモリ領域データから抽出するよう、第１の実施形態に係る鍵候補抽出部１０４ａを拡張する。係る鍵素材データの候補は、たとえば、ＳＳＬにおけるｐｒｅ＿ｍａｓｔｅｒ＿ｓｅｃｒｅｔや、ｍａｓｔｅｒ＿ｓｅｃｒｅｔ等であってもよい。
【０２６０】
係る暗号処理データ、及び、鍵素材データは、上述したような鍵データと同様に、該メモリ領域データに含まれるデータの中で、特有の特徴を示す場合がある。これらのデータの特徴は、たとえば、係るデータ自体の属性（たとえば、データ自体のランダム性等）、または、係るデータの該メモリ領域データにおける配置パターン（配置される位置や、配置されるデータの並び）等を表す。
【０２６１】
また、暗号処理データ、及び、鍵素材データの特徴は、該鍵データの特徴と同様に、暗号通信の実行に関する各種条件に応じて異なる場合がある。たとえば、該暗号通信プロトコルにおいて用いられる暗号アルゴリズム、または、解析対象装置１０１における当該暗号化方式に関する処理の実行環境等に応じて、係るデータの特徴が異なる場合がある。
【０２６２】
たとえば、特定の暗号アルゴリズムが暗号利用モードとしてＧＣＭが採用された場合と、ＣＢＣモードが採用された場合とでは、暗号処理データとして必要となるデータの種類が異なり、そのデータ自体の特性も異なる。たとえば、ランダム性が高いデータもあれば、所定の値に設定されるデータもある。また、解析対象装置１０１における、暗号処理の実行環境に応じて、メモリ領域データにおける暗号処理データの配置位置が異なる場合がある。
【０２６３】
該鍵データの特徴と同様に、これらのデータの特徴を表すデータを予め収集してパターン化することにより、メモリ領域データの中からこれらのデータの候補を抽出可能な判定基準を設けることが可能である。本変形例における鍵候補抽出部１０４ａは、当該判定基準に基づき、メモリ領域データからこれらのデータ候補を抽出する。当該判定基準には、たとえば、これらのデータの候補を探索（抽出）する位置（場所）が設定されていてもよい。または、当該判定基準には、たとえば、特定のデータがこれらのデータに該当するか否かを判定する判定方法等が設定されていてもよい。
【０２６４】
尚、係る判定基準は、第１の実施形態に係る鍵候補判定情報１０４ｂに追加されてもよい。また、係る判定基準は、新たな構成要素（不図示）として、鍵候補抽出部１０４ａに追加されてもよい。
【０２６５】
本変形例における暗号解読部１０４ｄは、該鍵素材データの候補を抽出した場合には、当該鍵素材データの候補から、該鍵データ候補を生成してもよい。一般的に、鍵素材データから、暗号鍵を生成する方法は、暗号通信プロトコル（または、当該暗号通信プロトコルにおいて用いられる暗号アルゴリズム）ごとに規定されている。たとえば、ＳＳＬプロトコルの場合に、ｐｒｅ＿ｍａｓｔｅｒ＿ｓｅｃｒｅｔから、ｍａｓｔｅｒ＿ｓｅｃｒｅｔを生成する方法、及び、ｍａｓｔｅｒ＿ｓｅｃｒｅｔから暗号通信に用いる鍵等を生成する方法は、ＳＳＬプロトコルの仕様として規定されている。
【０２６６】
本変形例における暗号解読部１０４ｄは、第１の実施形態と同様に、鍵データ候補と、暗号処理データの候補とを用いて通信データを解読する。本変形例における暗号解読部１０４ｄは、第１の実施形態と同様に、解析結果判定情報１０４ｅに基づき当該解読結果の成否を判定する。
【０２６７】
本変形例における暗号解読部１０４ｄは、通信データの解読が成功した場合に、正しい鍵データと、解読済み通信データと、暗号処理データとを、解析結果保持部１０４ｆに保存（登録）してもよい。
【０２６８】
本変形例における解析システム１００は、所定の判定基準に基づき、暗号処理データの候補、及び、鍵素材データの候補の少なくとも何れかを抽出可能である。また、本変形例における解析システム１００は、第１の実施形態と同様に、それらのデータを用いて通信データを解読した結果に基づき、正しい鍵データと、解読済み通信データとを取得可能である。
【０２６９】
また、本実施形態に係る解析システム１００は、第１の実施形態に係る解析システム１００と同様の構成を含むので、第１の実施形態と同様の効果を奏する。
【０２７０】
＜第２の実施形態＞
次に、本発明における第２の実施形態について、図１７を参照して説明する。図１７は、本実施形態に係る解析システム１７００の機能的な構成を例示するブロック図である。
【０２７１】
本実施形態に係る解析システム１７００は、情報通信装置１７０１と、通信ネットワーク１７０５との間で実行される暗号通信を解析する。本実施形態に係る解析システム１７００は、当該解析結果に基づき、特定の処理を実行する。
【０２７２】
情報通信装置１７０１は、少なくとも、演算部１７０１ａ、及び、メモリ１７０１ｂを有し、通信ネットワーク１７０５に対して通信可能に接続された、任意の情報通信装置である。
【０２７３】
係る情報通信装置１７０１は、たとえば、物理的なハードウェアにより構成されたコンピュータ等の情報通信装置であってもよい。また、情報通信装置１７０１は、情報処理装置等の各種ハードウェアを仮想化可能な所定の仮想化基盤において提供される、仮想的なコンピュータ（ＶＭ）であってもよい。
【０２７４】
情報通信装置１７０１における演算部１７０１ａは、本発明の各実施形態に係る演算部１０１ａと同様に、メモリ１７０１ｂに記憶された各種データ、及び、プログラムを読み取り、当該プログラムに実装された各種演算処理を実行するＣＰＵや、ＭＰＵ等の演算装置である。
【０２７５】
情報通信装置１７０１におけるメモリ１７０１ｂは、本発明の各実施形態に係るメモリ１０１ｂと同様に、情報通信装置１７０１におけるメインメモリとして機能し、演算部１７０１ａにおいて処理される各種プログラムやデータを保持する。また、メモリ１７０１ｂに保持（記憶）されたデータは、外部から取得（ダンプ）可能である。
【０２７６】
情報通信装置１７０１は、各実施形態に係る解析対象装置１０１と同様としてもよい。
【０２７７】
通信ネットワーク１７０５は、有線、無線、または、これらの任意の組合せにより構成され、任意の通信プロトコルを用いて通信路を確立可能な通信ネットワークである。また、通信ネットワーク１７０５は、たとえば、本発明の各実施形態において説明した各種暗号通信プロトコルにより暗号化された通信路を、情報通信装置１７０１に対して提供可能である。係る通信ネットワーク１７０５は、本発明の各実施形態に係る通信ネットワーク１０５と同様としてよいので、詳細な説明は省略する。
【０２７８】
次に、解析システム１７００が有する構成について説明する。
【０２７９】
本実施形態に係る解析システム１７００は、データ取得部１７０２と、通信処理部１７０３とを備える。
【０２８０】
尚、解析システム１７００の各構成要素は、それぞれ、物理的なコンピュータ等の情報処理装置を用いて実現されてもよく、または、仮想化基盤において提供されるＶＭを用いて実現されてもよい。また、解析システム１７００の各構成要素の間は、無線、有線、または、それらを組み合わせた任意の通信回線により、通信可能に接続されている。係る通信回線は、周知の技術を採用してもよいので、詳細な説明は省略する。以下、解析システム１７００の各構成要素について説明する。
【０２８１】
データ取得部１７０２は、情報通信装置１７０１から、メモリ１７０１ｂに保持されているデータの少なくとも一部を取得可能である。メモリ１７０１ｂに保持（記憶）されたデータを取得する具体的な方法は、情報通信装置１７０１の具体的な構成に応じて適宜選択可能である。係るデータ取得部１７０２は、たとえば、本発明の各実施形態に係るデータ取得部１０２と同様としてもよい。
【０２８２】
通信処理部１７０３は、情報通信装置１７０１と、通信ネットワーク１７０５との間で特定の暗号通信プロトコルに従って通信される通信データに基づき、当該暗号通信プロトコルにおける暗号化処理に用いられる暗号鍵を含む鍵データがメモリ１７０１ｂに保持されているか否かを判定する。通信処理部１７０３は、当該判定した結果に基づき、データ取得部に対して該メモリに保持されているデータの取得を指示する。係る通信処理部１７０３は、たとえば、本発明の各実施形態に係る通信処理部１０３と同様としてもよい。
【０２８３】
通信処理部１７０３は、たとえば、通信データを解析することにより、特定の暗号通信プロトコルにおいて該暗号鍵に関する特定の条件が成立したタイミング（たとえば、暗号鍵の交換が成立したタイミング等）を判定してもよい。通信処理部１７０３は、当該タイミングにおいて、データ取得部１７０２に対して、メモリ１７０１ｂに保持されているデータの取得を指示してもよい。
【０２８４】
以上のように構成された解析システム１７００（たとえば、データ取得部１７０２）は、情報通信装置１７０１と、通信ネットワーク１７０５との間の通信路を暗号化する暗号鍵を含むメモリ領域データを、情報通信装置１７０１のメモリ１７０１ｂから取得可能である。この理由は、通信処理部１７０３が、当該暗号鍵を含む鍵データがメモリ１７０１ｂに保持されていると判定した場合に、データ取得部１７０２に対してメモリ１７０１ｂに保持されているデータの取得を指示するからである。
【０２８５】
以上より、本実施形態に係る解析システム１７００によれば、情報通信装置１７０１と、通信ネットワーク１７０５との間で実行される暗号通信において用いられる暗号鍵を含むデータを、情報通信装置１７０１のメモリ１７０１ｂから取得可能である。
【０２８６】
より具体的に、本実施形態によれば、解析システム１７００は、該暗号通信データを解析することにより、該暗号通信において用いられる暗号鍵が当該情報通信装置１７０１のメモリ１７０１ｂに存在するか否かを判定する。解析システム１７００は、当該判定結果に基づき、当該メモリ１７０１ｂに保持されているデータを取得可能である。
【０２８７】
＜第３の実施形態＞
図１８を参照しながら、本発明の第３の実施形態に係る処理制御装置２００１が有する構成について詳細に説明する。図１８は、本発明の第３の実施形態に係る処理制御装置２００１が有する構成を示すブロック図である。
【０２８８】
第３の実施形態に係る処理制御装置２００１は、リスク算出部２００２と、処理制御部２００３とを有する。
【０２８９】
処理制御装置２００１は、通信ネットワーク２０５０を介して情報処理装置２０５１に通信接続することができる。処理制御装置２００１は、命令リスク情報記憶部２００４に格納されている命令リスク情報（図２０を参照しながら後述する）、及び、情報処理装置２０５１にて実行された処理を表す処理情報（図２１を参照しながら後述する）に基づき、図１９に例示されたような処理を実行する。
【０２９０】
情報処理装置２０５１は、ある期間に、図２１に例示されたような処理を実行するとする。図２１は、情報処理装置２０５１によって実行された処理を含む処理情報の一例を概念的に表す図である。
【０２９１】
図２１を参照すると、処理情報は、情報処理装置２０５１によって実行された命令と、該命令に対する入力を表す項目とが関連付けされた処理を、少なくとも１つ含む。該処理においては、該命令に、さらに、該命令に関する処理を選択するオプションが関連付けされていてもよい。
【０２９２】
図２１に例示された処理情報は、命令「ｐｉｎｇ」と、項目「Ａ．Ｂ．Ｃ．Ｄ」とが関連付けされた処理を含む。この処理は、項目「Ａ．Ｂ．Ｃ．Ｄ」を入力として命令「ｐｉｎｇ」が実行された処理であることを表す。図２１に例示された処理情報は、情報処理装置２０５１が、命令「ｓｕｄｏ」に関する処理、命令「ｐｉｎｇ」に関する処理、命令「ｗｇｅｔ」に関する処理、及び、命令「ｓｓｈ」に関する処理を実行したことを表す。
【０２９３】
命令「ｐｉｎｇ」は、たとえば、通信ネットワークが通信接続しているか否かを調べる命令を表す。命令「ｓｕｄｏ」は、たとえば、管理者の権限を有しながら、所定の処理を実行する命令を表す。命令「ｗｇｅｔ」は、たとえば、複数のファイルを取得する命令を表す。命令「ｓｓｈ」は、たとえば、通信接続されている情報処理装置２０５１にログインする命令であって、該通信接続されている期間に通信される通信データが暗号化されている命令を表す。
【０２９４】
尚、処理情報は、図２１に示された例に限定されない。処理情報は、各実施形態に係る暗号解析部によって読み取られた暗号鍵情報を用いて、暗号化された処理情報が復号された情報であってもよい。
【０２９５】
処理制御装置２００１は、命令リスク情報記憶部２００４に格納されている命令リスク情報（図２０に例示）に基づき、ある期間に情報処理装置２０５１にて実行された処理を含む処理情報に関するリスクを判定し、リスクが所定の制限条件を満たした場合には、情報処理装置２０５１に対する通信処理等の処理を制限する。図２１は、命令リスク情報記憶部２００４に格納されている命令リスク情報の一例を概念的に表す図である。
【０２９６】
以降の各実施形態においては、説明の便宜上、リスクは、０以上であって、大きな数値であるほどリスクが高いことを表し、０に近いほどリスクが低いことを表すとする。
【０２９７】
図２０に例示された命令リスク情報においては、情報処理装置２０５１が実行可能な命令と、該命令が表す処理に関するリスクとが関連付けされている。たとえば、図２０に例示された命令リスク情報においては、命令「ｒｅｂｏｏｔ」と、リスク「１５」とが関連付けされている。これは、命令「ｒｅｂｏｏｔ」に関するリスク（たとえば、サイバーセキュリティに関するリスク）が１５であることを表す。図２０に例示された命令リスク情報においては、命令「ｐｉｎｇ」と、リスク「２５」とが関連付けされている。これは、命令「ｐｉｎｇ」に関するリスクが２５であることを表す。図２０に例示された命令リスク情報においては、命令「ｓｓｈ」と、リスク「１００」とが関連付けされている。これは、命令「ｐｉｎｇ」に関するリスクが１００であることを表す。
【０２９８】
命令「ｒｅｂｏｏｔ」は、たとえば、情報処理装置２０５１を再起動する命令を表す。命令「ｇｃｃ」は、たとえば、Ｃ言語を用いて記述されているプログラムを、コンパイルする命令を表す。
【０２９９】
命令、リスク、及び、命令リスク情報は、図２０を参照しながら上述した例に限定されない。
【０３００】
以降、説明の便宜上、命令リスク情報に含まれていない命令に関しては、リスクが０であるとする。
【０３０１】
次に、図１９を参照しながら、本発明の第３の実施形態に係る処理制御装置２００１における処理について詳細に説明する。図１９は、第３の実施形態に係る処理制御装置２００１における処理の流れを示すフローチャートである。
【０３０２】
処理制御装置２００１は、情報処理装置２０５１にて実行された処理を表す処理情報（図２１に例示）を入力する。処理制御装置２００１は、情報処理装置２０５１が通信ネットワーク２０５０を介して送信した処理情報を受信してもよいし、処理情報が格納されている記憶装置（図１８にて不図示）から、該処理情報を読み取ってもよい。情報処理装置２０５１が仮想マシンである場合に、処理制御装置２００１は、該仮想マシンに関する処理が物理的に実行されている情報処理装置におけるメモリを読み取ってもよい。処理制御装置２００１が処理情報（図２１に例示）を入力する手順は、上述した例に限定されない。
【０３０３】
処理制御装置２００１において、リスク算出部２００２は、命令リスク情報に基づき、入力した処理情報に含まれている処理に関するリスクを表す数値を累積する（ステップＳ２００１）。たとえば、リスク算出部２００２は、処理情報に含まれている処理に関して、該処理を構成している命令を読み取り、命令リスク情報（図２０に例示）に基づき、該命令に関連付けされたリスクを特定する。リスク算出部２００２は、処理情報に含まれている処理に関してリスクを特定し、特定したリスクを足し算することにより、処理情報（すなわち、ある期間に情報処理装置２０５１にて実行された処理）に関するリスクを算出する。
【０３０４】
次に、処理制御部２００３は、リスク算出部２００２が算出したリスクを表す数値が所定の制限条件を満たしているか否かを判定する（ステップＳ２００２）。所定の制限条件は、たとえば、「リスクが所定の閾値以上である」である。この場合に、処理制御部２００３は、リスク算出部２００２が算出したリスクが所定の閾値以上であるか否かを判定する。
【０３０５】
処理制御部２００３は、処理情報に関するリスクを表す数値が所定の制限条件を満たしている場合に（ステップＳ２００２にてＹＥＳ）、情報処理装置２０５１に対する通信処理等の処理を制限する（ステップＳ２００３）。処理情報に関するリスクを表す数値が所定の制限条件を満たしていない場合に（ステップＳ２００２にてＮＯ）、ステップＳ２００３に示された処理は実行されない。
【０３０６】
情報処理装置２０５１に対する処理を制限する場合に、処理制御部２００３は、たとえば、通信ネットワーク２０５０において情報処理装置２０５１に割り当てられている通信帯域を制限する。または、情報処理装置２０５１に対する通信等の処理を制限する場合に、処理制御部２００３は、たとえば、通信ネットワーク２０５０において情報処理装置２０５１に対する通信を遮断する。情報処理装置２０５１に対する処理を制限する処理は、たとえば、図２４を参照しながら後述するような制御情報に含まれている処理であってもよく、上述した例に限定されない。
【０３０７】
次に、本発明の第３の実施形態に係る処理制御装置２００１に関する効果について説明する。
【０３０８】
第３の実施形態に係る処理制御装置２００１によれば、サイバーセキュリティに関して、情報処理システムの健全性をより確実に保つことができる。この理由は、ある期間に情報処理装置２０５１にて実行された１つ以上の処理を含む処理情報に対して、該処理情報に含まれている処理に対するリスクを累積することにより、該処理情報に関するリスクを算出し、該処理情報に関するリスクが高い場合に、該情報処理装置２０５１に対する通信等の処理を制限するからである。したがって、情報処理装置２０５１が、ある期間に実行した処理に関するリスクが大きな値である場合に、該情報処理装置２０５１に対する通信は、処理制御装置２００１によって制限される。したがって、第３の実施形態に係る処理制御装置２００１によれば、サイバーセキュリティに関して、情報処理システムの健全性をより確実に保つことができる。
【０３０９】
＜第４の実施形態＞
次に、上述した第３の実施形態を基本とする本発明の第４の実施形態について説明する。
【０３１０】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第３の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【０３１１】
図２２を参照しながら、本発明の第４の実施形態に係る処理制御装置２０１１が有する構成について詳細に説明する。図２２は、本発明の第４の実施形態に係る処理制御装置２０１１が有する構成を示すブロック図である。
【０３１２】
第４の実施形態に係る処理制御装置２０１１は、リスク算出部２００２と、処理制御部２０１２とを有する。
【０３１３】
処理制御装置２０１１は、通信ネットワーク２０５０を介して情報処理装置２０５１に通信接続することができる。処理制御装置２０１１は、命令リスク情報記憶部２００４に格納されている命令リスク情報（図２０に例示）、制限情報記憶部２００５に格納されている制限情報（図２４を参照しながら後述する）、及び、情報処理装置２０５１にて実行された処理を表す処理情報（図２１に例示）に基づき、図２３に例示されたような処理を実行する。
【０３１４】
本実施形態において、情報処理装置２０５１は、仮想マシンであるとする
図２４を参照しながら、制限情報について説明する。図２４は、制限情報記憶部２００５に格納されている制限情報の一例を概念的に表す図である。
【０３１５】
図２４を参照すると、制限情報は、情報処理装置２０５１が実行した処理を表す処理情報（図２１に例示）に対して算出されたリスクと、該リスクが該範囲である場合に、該情報処理装置２０５１に関して実行される処理を表す処理内容とが関連付けされている。図２４に例示されているように、処理内容は、たとえば、情報処理装置２０５１に対する通信等の処理を制限する処理、または、情報処理装置２０５１を停止する処理を表す。
【０３１６】
図２４に例示された制限情報においては、範囲「５０以上７５未満」と、処理内容「通信帯域を制限する」とが関連付けされている。これは、情報処理装置２０５１にて実行された処理を表す処理情報（図２１に例示）に関するリスクが５０以上７５未満の値である場合に、処理制御装置２０１１が、情報処理装置２０５１に対して、通信帯域を制限する処理を実行することを表す。また、図２４に例示された制限情報においては、範囲「０以上５０未満」と、処理内容「」とが関連付けされている。これは、情報処理装置２０５１にて実行された処理を表す処理情報（図２１に例示）に関するリスクが０以上５０未満の値である場合に、処理制御装置２０１１が、情報処理装置２０５１に対して、図２４に例示された処理を実行しないことを表す。図２４を参照しながら上述したように、制限情報においては、リスクが高いほど、情報処理装置２０５１に関する処理を制限する程度が厳しいとする。
【０３１７】
制限情報は、上述した例に限定されない。
【０３１８】
次に、図２３を参照しながら、本発明の第４の実施形態に係る処理制御装置２０１１における処理について詳細に説明する。図２３は、第４の実施形態に係る処理制御装置２０１１における処理の流れを示すフローチャートである。
【０３１９】
処理制御装置２０１１において、リスク算出部２００２は、命令リスク情報（図２０に例示）に基づき、入力した処理情報（図２１に例示）に含まれている処理に関するリスクを表す数値を累積する（ステップＳ２００１）。
【０３２０】
次に、処理制御部２０１２は、制限情報（図２４に例示）において、リスク算出部２００２が算出したリスクが含まれている範囲を特定し、特定した範囲に関する処理内容を選択する（ステップＳ２０１２）。たとえば、リスク算出部２００２が算出したリスクが１２４であれば、リスク「１２４」は、範囲「１００以上２００未満」に含まれている。この場合に、処理制御部２０１２は、制限情報（図２４に例示）において、範囲「１００以上２００未満」に関連付けされた処理内容「通信を遮断する」を選択する。
【０３２１】
処理制御部２０１２は、選択した処理内容に従い、情報処理装置２０５１に関する処理を実行する（ステップＳ２０１３）。たとえば、処理制御部２０１２は、処理内容「通信を遮断する」を選択した場合に、情報処理装置２０５１に対する通信を遮断する。
【０３２２】
図２４に例示された制限情報に関して、処理制御部２０１２は、後述のように処理を実行する。すなわち、
○リスクが５０以上、かつ、７５未満であれば、情報処理装置２０５１に対する通信に関して、通信帯域を制限する、
○リスクが７５以上、かつ、１００未満であれば、情報処理装置２０５１にて実行される処理に割り当てる計算機リソースを制限する（たとえば、情報処理装置２０５１にて実行される処理に対して割り当てる計算機リソースの期間を短くする）、
○リスクが１００以上、かつ、２００未満であれば、情報処理装置２０５１に対する通信を遮断する、
○リスクが２００以上であれば、情報処理装置２０５１をシャットダウン（停止）する、
○リスクが０以上、かつ、５０未満であれば、情報処理装置２０５１に関して、上述した４つの処理を実行しない。
【０３２３】
言い換えれば、処理制御部２０１２は、リスク算出部２００２が算出したリスクの大きさに応じて、制限情報（図２４に例示）に基づき、情報処理装置２０５１に関する処理を制限する程度を決定し、決定した程度に従い、情報処理装置２０５１に関する処理を制限する。
【０３２４】
尚、本実施形態において、情報処理装置２０５１が仮想マシンであるとしたが、物理的な情報処理装置であってもよく、この場合に、制限情報（図２４に例示）は、仮想マシンに固有な処理（たとえば、仮想マシンに対する計算機リソースを制限する）を含んでいなくてもよい。
【０３２５】
次に、本発明の第４の実施形態に係る処理制御装置２０１１に関する効果について説明する。
【０３２６】
第４の実施形態に係る処理制御装置２０１１によれば、サイバーセキュリティに関して、情報処理システムの健全性をより確実に保つことができる。この理由は、第４の実施形態に係る処理制御装置２０１１が有する構成は、第３の実施形態に係る処理制御装置２００１が有する構成を含むからである。
【０３２７】
さらに、第４の実施形態に係る処理制御装置２０１１によれば、情報処理システムに対するリスクに対して、より柔軟に対応することができる。この理由は、情報処理装置２０５１において実行された処理を表す処理情報（図２１に例示）に関するリスクの大小に応じて、処理制御装置２０１１が、該情報処理装置２０５１に関する処理を制限するからである。
【０３２８】
＜第５の実施形態＞
次に、上述した第３の実施形態を基本とする本発明の第５の実施形態について説明する。
【０３２９】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第３の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【０３３０】
図２５を参照しながら、本発明の第５の実施形態に係る処理制御装置２０２１を含む情報処理装置２０２０が有する構成について詳細に説明する。図２５は、本発明の第５の実施形態に係る処理制御装置２０２１を含む情報処理装置２０２０が有する構成を示すブロック図である。
【０３３１】
情報処理装置２０２０は、処理制御装置２０２１と、仮想マシン２０２８と、命令リスク情報記憶部２００４と、メモリ２０２９とを有する。処理制御装置２０２１は、リスク算出部２００２と、処理制御部２００３と、暗号解析部２０２４と、処理復号部２０２５と、データ取得部２０２６とを有する。処理制御装置２０２１は、さらに、処理情報記憶部２０２７を有していてもよい。
【０３３２】
情報処理装置２０２０は、通信ネットワーク２０５０に通信接続されており、外部の情報処理装置２０２０と通信することができる。
【０３３３】
仮想マシン２０２８は、解析対象であるプログラムに従い処理を実行してもよい。また、仮想マシン２０２８は、デバッガ、逆アセンブラ、逆コンパイラ等の、プログラムを解析する機能を有していなくてもよい。
【０３３４】
暗号解析部２０２４は、図１に示された暗号解析部１０４が有する機能と同様の機能を有する。データ取得部２０２６は、図１に示されたデータ取得部１０２、または、図１７に示されたデータ取得部１７０２が有する機能と同様の機能を有する。仮想マシン２０２８は、たとえば、図１に示された演算部１０１ａ、または、図１７に示された演算部１７０１ａが有する機能と同様の機能を有する。メモリ２０２９は、たとえば、仮想マシン２０２８に関する処理を、実際に処理する場合にアクセスされるデータを格納することができる。情報処理装置２０２０が、仮想マシン２０２８に関する処理を実行する場合には、該メモリ２０２９に格納されているデータにアクセスする。
【０３３５】
説明の便宜上、仮想マシン２０２８に対する通信は、暗号化方式に従い暗号化されているとする。また、処理情報記憶部２０２７には、該暗号化方式に従い暗号化された処理情報（以降、「暗号化処理情報」と表す）が格納されているとする。この場合に、通信処理部１０３（図１乃至図３、または、図１７に例示）は、暗号化された通信データを監視し、該通信データに基づき、処理情報（図２１に例示）が暗号化されている暗号化処理情報を作成する。
【０３３６】
次に、図２６を参照しながら、本発明の第５の実施形態に係る情報処理装置２０２０における処理について詳細に説明する。図２６は、第５の実施形態に係る情報処理装置２０２０における処理の流れを示すフローチャートである。
【０３３７】
暗号解析部２０２４は、図１１におけるステップＳ１１０１乃至ステップＳ１１０５、図１２Ａ、図１２ＢにおけるステップＳ１２０１乃至ステップＳ１２０８、及び、図１２ＡにおけるステップＳ１２１０（または、図１２ＢにおけるステップＳ１２０９Ｂ）、図１４、または、図１５を参照しながら説明したような処理を実行する。この処理によって、暗号解析部２０２４は、暗号鍵を表す暗号情報を読み取る（ステップＳ２０２１）。
【０３３８】
処理復号部２０２５は、処理情報記憶部２０２７から暗号化処理情報を読み取り、暗号解析部２０２４が読み取った暗号情報を用いて、該暗号化処理情報を復号する（ステップＳ２０２２）。処理復号部２０２５は、たとえば、図１１に示されたステップＳ１１０６、図１２Ａに示されたステップＳ１２１０、図１２Ｂに示されたステップＳ１２０９Ｂ、図１５に示されたステップＳ１５０５、または、図１６を参照しながら説明した処理等を実行する。これによって、処理復号部２０２５は、暗号化処理情報が復号された処理情報を（図２１に例示）を作成する。
【０３３９】
その後、復号された処理情報に対して、図１９に示された処理と同様の処理が実行される。
【０３４０】
次に、本発明の第５の実施形態に係る処理制御装置２０２１に関する効果について説明する。
【０３４１】
第５の実施形態に係る処理制御装置２０２１によれば、サイバーセキュリティに関して、情報処理システムの健全性をより確実に保つことができる。この理由は、第５の実施形態に係る処理制御装置２０２１が有する構成は、第３の実施形態に係る処理制御装置２００１が有する構成を含むからである。
【０３４２】
さらに、第５の実施形態に係る処理制御装置２０２１によれば、暗号化された通信が実行された場合であっても、サイバーセキュリティに関して、情報処理システムの健全性をより確実に保つことができる。この理由は、第５の実施形態に係る処理制御装置２０２１が、第１の実施形態、乃至、第３の実施形態に示された解析システムと同様の処理を実行することにより、暗号化された通信を復号し、復号した通信に関する処理を表す処理情報（図２１に例示）に関するリスクに基づき、通信を制御するからである。
【０３４３】
また、解析対象である対象プログラムに従い処理が実行される仮想マシン２０２８が、プログラムを解析する機能を有しているか否かに応じて、該対象プログラムに関する処理が異なる場合がある。たとえば、マルウェアは、仮想マシン２０２８がプログラムを解析する機能を有している場合に処理を停止し、該仮想マシン２０２８がプログラムを解析する機能を有していない場合に、悪意を有した処理を実行する。したがって、仮想マシン２０２８がプログラムを解析する機能を有していない場合には、本実施形態に係る処理制御装置２０２１によれば、プログラムを解析する機能を有しているか否かに応じて異なる処理を実行するプログラムであっても、サイバーセキュリティに関して、情報処理システムの健全性をより確実に保つことができる。
【０３４４】
（ハードウェア構成例）
上述した本発明の第１の実施形態に係る解析システム、第２の実施形態に係る解析システム、または、第３の実施形態乃至第５の実施形態に係る処理制御装置を、１つの計算処理装置（情報処理装置、コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。但し、係る解析システム、または、係る処理制御装置は、物理的、または、機能的に少なくとも２つの計算処理装置を用いて実現してもよい。また、係る解析システム、または、係る処理制御装置は、専用の装置として実現してもよい。
【０３４５】
図２７は、第１の実施形態に係る解析システム、第２の実施形態に係る解析システム、または、第３の実施形態乃至第５の実施形態に係る処理制御装置を実現可能な計算処理装置のハードウェア構成例を概略的に示すブロック図である。計算処理装置２０は、中央処理演算装置（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ、以降「ＣＰＵ」と表す）２１、メモリ２２、ディスク２３、不揮発性記録媒体２４、及び、通信インターフェース（以降、「通信ＩＦ」と表す）２７を有する。計算処理装置２０は、入力装置２５、出力装置２６に接続可能であってもよい。計算処理装置２０は、通信ＩＦ２７を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
【０３４６】
不揮発性記録媒体２４は、コンピュータが読み取り可能な、たとえば、コンパクトディスク（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ）、デジタルバーサタイルディスク（Ｄｉｇｉｔａｌ＿Ｖｅｒｓａｔｉｌｅ＿Ｄｉｓｃ）である。また、不揮発性記録媒体２４は、ユニバーサルシリアルバスメモリ（ＵＳＢメモリ）、ソリッドステートドライブ（Ｓｏｌｉｄ＿Ｓｔａｔｅ＿Ｄｒｉｖｅ）等であってもよい。不揮発性記録媒体２４は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体２４は、上述した媒体に限定されない。また、不揮発性記録媒体２４の代わりに、通信ＩＦ２７、及び、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
【０３４７】
すなわち、ＣＰＵ２１は、ディスク２３に格納されているソフトウェア・プログラム（コンピュータ・プログラム：以下、単に「プログラム」と称する）を、実行する際にメモリ２２にコピーし、演算処理を実行する。ＣＰＵ２１は、プログラム実行に必要なデータをメモリ２２から読み取る。外部への出力が必要な場合には、ＣＰＵ２１は、出力装置２６に出力結果を出力する。外部からプログラムを入力する場合に、ＣＰＵ２１は、入力装置２５からプログラムを読み取る。ＣＰＵ２１は、上述した図１乃至図３、図１７、図１８、図２２、または、図２５に示す各部が表す機能（処理）に対応するところのメモリ２２に格納されたプログラム（図１１、図１２Ａ、図１２Ｂ、または、図１４乃至図１６）、または、処理制御プログラム（図１９、図２３、または、図２６）を解釈し実行する。ＣＰＵ２１は、上述した本発明の各実施形態において説明した処理を順次実行する。
【０３４８】
すなわち、このような場合に、本発明は、係る解析プログラム、または、係る処理制御プログラムによっても成し得ると捉えることができる。さらに、係る解析プログラム、または、係る処理制御プログラムが記録されたコンピュータが読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。
【０３４９】
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【０３５０】
１００    解析システム
１０１    解析対象装置
１０２    データ取得部
１０３    通信処理部
１０４    暗号解析部
１０５    通信ネットワーク
１０６    通信路
１０７    他の情報通信装置
１７００    解析システム
１７０１    情報通信装置
１７０２    データ取得部
１７０３    通信処理部
１７０５    通信ネットワーク
２００１    処理制御装置
２００２    リスク算出部
２００３    処理制御部
２００４    命令リスク情報記憶部
２０５０    通信ネットワーク
２０５１    情報処理装置
２０１１    処理制御装置
２０１２    処理制御部
２００５    制限情報記憶部
２０２０    情報処理装置
２０２１    処理制御装置
２０２４    暗号解析部
２０２５    処理復号部
２０２６    データ取得部
２０２７    処理情報記憶部
２０２８    仮想マシン
２０２９    メモリ
２０    計算処理装置
２１    ＣＰＵ
２２    メモリ
２３    ディスク
２４    不揮発性記録媒体
２５    入力装置
２６    出力装置
２７    通信ＩＦ
【図１】
0006319369.tif 000002
【図２】
0006319369.tif 000003
【図３】
0006319369.tif 000004
【図４】
0006319369.tif 000005
【図５】
0006319369.tif 000006
【図６】
0006319369.tif 000007
【図７】
0006319369.tif 000008
【図８】
0006319369.tif 000009
【図９】
0006319369.tif 000010
【図１０】
0006319369.tif 000011
【図１１】
0006319369.tif 000012
【図１２Ａ】
0006319369.tif 000013
【図１２Ｂ】
0006319369.tif 000014
【図１３】
0006319369.tif 000015
【図１４】
0006319369.tif 000016
【図１５】
0006319369.tif 000017
【図１６】
0006319369.tif 000018
【図１７】
0006319369.tif 000019
【図１８】
0006319369.tif 000020
【図１９】
0006319369.tif 000021
【図２０】
0006319369.tif 000022
【図２１】
0006319369.tif 000023
【図２２】
0006319369.tif 000024
【図２３】
0006319369.tif 000025
【図２４】
0006319369.tif 000026
【図２５】
0006319369.tif 000027
【図２６】
0006319369.tif 000028
【図２７】
0006319369.tif 000029