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