(57)【要約】【課題】  実際にマルウェアを動作させることなく、マルウェアが行なった通信内容を効率的に特定する。【解決手段】  マルウェアが行なう通信の特徴を記述したシグネチャと通信パケットから暗号鍵を抽出する方法を記述した鍵抽出情報とマルウェアが使用する復号関数の情報である復号関数情報とを対応付けて格納し、通信パケットを解析し、解析した結果を格納したパケット解析データを生成し、パケット解析データとシグネチャとを比較して両者が一致するか否かを判定し、一致すると判定された場合、このシグネチャに対応付けられた鍵抽出情報を用いてパケット解析データから暗号鍵を抽出し、この暗号鍵と、パケット解析データと一致すると判定されたシグネチャに対応付けられた復号関数情報とを用いてパケット解析データの暗号文を復号する。【選択図】        図１
2015106914.tif 000002
【特許請求の範囲】
【請求項１】
マルウェアが行なう通信の特徴を記述したシグネチャと通信パケットから暗号鍵を抽出する方法を記述した鍵抽出情報とマルウェアが使用する復号関数の情報である復号関数情報とを対応付けて格納するマルウェア情報データベースと、
通信パケットを解析し、解析した結果を格納したパケット解析データを生成するパケット解析部と、
前記パケット解析部により生成された前記パケット解析データと前記マルウェア情報データベースに格納された前記シグネチャとを比較して両者が一致するか否かを判定するパケット比較部と、
前記パケット比較部により前記パケット解析データと前記シグネチャとが一致すると判定された場合、このシグネチャに対応付けられた鍵抽出情報を用いて前記パケット解析データから暗号鍵を抽出する鍵抽出部と、
前記鍵抽出部により抽出された前記暗号鍵と前記パケット比較部により前記パケット解析データと一致すると判定された前記シグネチャに対応付けられた前記復号関数情報とを用いて前記パケット解析データの暗号文を復号する復号部と、
を備えたマルウェア通信解析装置。
【請求項２】
前記マルウェア情報データベースに格納された前記シグネチャは、通信パケット内の情報のパターンを表現した正規表現と前記パケット解析データとの比較方法を示す論理演算子とによりマルウェアが行なう通信の特徴を記述し、
前記パケット比較部は、前記パケット解析データと前記シグネチャとのパターンマッチングを行なって両者が一致するか否かを判定する請求項１記載のマルウェア通信解析装置。
【請求項３】
前記マルウェア情報データベースに格納された前記鍵抽出情報は、前記パケット解析データのバイト列に対して実行する操作がスクリプト表現で記述され、
前記鍵抽出情報は、前記鍵抽出情報の前記スクリプト表現に従って前記パケット解析データのバイト列に対して操作を実行して暗号鍵を抽出する請求項１記載のマルウェア通信解析装置。
【請求項４】
前記マルウェア情報データベースに格納された前記復号関数情報は、復号関数の命令コードを記述したコード情報と、復号関数を呼び出す引数及び返り値の設定を記述した実行制御情報とを含み、
前記復号部は、前記復号関数情報の前記コード情報と前記実行制御情報とに従って、前記パケット解析データの暗号文を復号する請求項１記載のマルウェア通信解析装置。
【請求項５】
前記鍵抽出部により抽出した暗号鍵を保持する鍵保持部を備え、
前記マルウェア情報データベースは、マルウェアの鍵を伝送する通信の特徴を記述した鍵シグネチャを格納し、
前記パケット比較部は、後続のパケット解析データと前記鍵シグネチャとを比較して両者が一致するか否かを判定し、
前記鍵抽出部は、前記パケット比較部により前記後続のパケット解析データと前記鍵シグネチャとが一致すると判定された場合、暗号鍵の抽出を行なわず、
前記復号部は、前記鍵保持部が保持する暗号鍵を用いて前記後続のパケット解析データの暗号文を復号する請求項１記載のマルウェア通信解析装置。
【請求項６】
マルウェアが行なう通信の特徴を記述したシグネチャと通信パケットから暗号鍵を抽出する方法を記述した鍵抽出情報とマルウェアが使用する復号関数の情報である復号関数情報とを対応付けて格納するマルウェア情報データベースを用いて、前記通信パケットの暗号文を復号するマルウェア通信解析装置のマルウェア通信解析方法であって、
パケット解析部が、通信パケットを解析し、解析した結果を格納したパケット解析データを生成するパケット解析ステップと、
パケット比較部が、前記パケット解析ステップにより生成された前記パケット解析データと前記マルウェア情報データベースに格納された前記シグネチャとを比較して両者が一致するか否かを判定するパケット比較ステップと、
鍵抽出部が、前記パケット比較ステップにより前記パケット解析データと前記シグネチャとが一致すると判定された場合、このシグネチャに対応付けられた鍵抽出情報を用いて前記パケット解析データから暗号鍵を抽出する鍵抽出ステップと、
復号部が、前記鍵抽出ステップにより抽出された前記暗号鍵と前記パケット比較ステップにより前記パケット解析データと一致すると判定された前記シグネチャに対応付けられた前記復号関数情報とを用いて前記パケット解析データの暗号文を復号する復号ステップと、
を備えたマルウェア通信解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネットに接続された情報処理端末のマルウェア感染が発覚したときに、そのマルウェアから外部に漏洩された情報を特定する技術に関する。
【背景技術】
【０００２】
マルウェアを解析する従来技術としては、例えば、特許文献１において、マルウェアを特別な実験環境で実行させて、システムコールやコンピュータ資源の利用履歴およびリモートの端末への送信メッセージを記録する手法が示されている。
【０００３】
また、昨今、マルウェアを用いた標的型攻撃による情報漏洩事件が頻発している。マルウェアによる感染が発覚したときには、そのマルウェアから外部にデータが送信された場合にそのデータ内の情報を特定する必要がある。このためには、インターネットと組織内ネットワーク上の情報処理端末が行なった通信を記録しておき、マルウェアの感染した端末の通信記録を抜き出して解析する必要がある。これらのマルウェアの一部は、暗号関数と対となる復号関数を内部に持ち、外部との通信を暗号化して行なっており、マルウェアを解析して暗号鍵と復号関数を特定しなければ実際に通信した情報の内容が何かを明らかにすることはできない。
【０００４】
このような暗号鍵と復号関数を特定する技術に関して、特許文献２では、マルウェアを実行させ、その時のトレース情報から暗号鍵候補を特定し、特定したマルウェア内の復号化関数を利用して、マルウェア通信を復号してその結果から鍵を特定する手法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４７５５６５８号公報
【特許文献２】特開２０１３−１１４６３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来技術では、実際にマルウェアを動作させて、動作中に記録されたマルウェアの通信内容を解析することが必要であるため、マルウェアの実際の検体を入手してマルウェア実行環境を構築する必要がある。このため、マルウェアの通信内容の解析に手間とコストがかかり、解析が効率的でないという課題があった。
【０００７】
本発明は、上記のような課題を解決するためになされたもので、実際にマルウェアを動作させることなく、マルウェアが行なった通信内容を効率的に特定することを目的とする。
【課題を解決するための手段】
【０００８】
上記で述べた課題を解決するため、本発明のマルウェア通信解析装置は、マルウェアが行なう通信の特徴を記述したシグネチャと通信パケットから暗号鍵を抽出する方法を記述した鍵抽出情報とマルウェアが使用する復号関数の情報である復号関数情報とを対応付けて格納するマルウェア情報データベースと、通信パケットを解析し、解析した結果を格納したパケット解析データを生成するパケット解析部と、前記パケット解析部により生成された前記パケット解析データと前記マルウェア情報データベースに格納された前記シグネチャとを比較して両者が一致するか否かを判定するパケット比較部と、前記パケット比較部により前記パケット解析データと前記シグネチャとが一致すると判定された場合、このシグネチャに対応付けられた鍵抽出情報を用いて前記パケット解析データから暗号鍵を抽出する鍵抽出部と、前記鍵抽出部により抽出された前記暗号鍵と前記パケット比較部により前記パケット解析データと一致すると判定された前記シグネチャに対応付けられた前記復号関数情報とを用いて前記パケット解析データの暗号文を復号する復号部とを備えることとしたものである。
【０００９】
また、本発明のマルウェア通信解析方法は、マルウェアが行なう通信の特徴を記述したシグネチャと通信パケットから暗号鍵を抽出する方法を記述した鍵抽出情報とマルウェアが使用する復号関数の情報である復号関数情報とを対応付けて格納するマルウェア情報データベースを用いて、前記通信パケットの暗号文を復号するマルウェア通信解析装置のマルウェア通信解析方法であって、パケット解析部が、通信パケットを解析し、解析した結果を格納したパケット解析データを生成するパケット解析ステップと、パケット比較部が、前記パケット解析ステップにより生成された前記パケット解析データと前記マルウェア情報データベースに格納された前記シグネチャとを比較して両者が一致するか否かを判定するパケット比較ステップと、鍵抽出部が、前記パケット比較ステップにより前記パケット解析データと前記シグネチャとが一致すると判定された場合、このシグネチャに対応付けられた鍵抽出情報を用いて前記パケット解析データから暗号鍵を抽出する鍵抽出ステップと、復号部が、前記鍵抽出ステップにより抽出された前記暗号鍵と前記パケット比較ステップにより前記パケット解析データと一致すると判定された前記シグネチャに対応付けられた前記復号関数情報とを用いて前記パケット解析データの暗号文を復号する復号ステップとを備えることとしたものである。
【発明の効果】
【００１０】
本発明によれば、複数のマルウェアを解析した結果から得たマルウェアの通信の特徴と、マルウェアごとの暗号鍵の抽出方法と、マルウェアから抽出した復号関数をデータベースに登録しておき、マルウェアの通信の特徴をマルウェアの通信記録と照合してマルウェアの種類を特定し、特定されたマルウェアに適合した暗号鍵の抽出方法と復号関数を用いて、暗号化された通信を復号することにより、実際にマルウェアを動作させることなく、マルウェアが行なった通信内容を効率的に特定することができるという効果がある。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係るマルウェア通信解析装置の一実施例を示す構成図である。
【図２】パケット解析データ９のデータ構造を示す図である。
【図３】実施の形態１に係るマルウェア情報データベース３の一構成例を示す構成図である。
【図４】実行制御情報２０のデータ構造を示す図である。
【図５】鍵抽出部５の一構成例を示す構成図である。
【図６】復号部６の一構成例を示す構造図である。
【図７】実施の形態１に係るマルウェア通信解析装置の処理の流れを示すフローチャートである。
【図８】復号部６の処理の流れを示すフローチャートである。
【図９】実施の形態２に係るマルウェア通信解析装置の一実施例を示す構成図である。
【図１０】実施の形態２に係るマルウェア情報データベース３の一構成例を示す構成図である。
【発明を実施するための形態】
【００１２】
実施の形態１．
図１は、実施の形態１に係るマルウェア通信解析装置の一実施例を示す構成図である。
マルウェア通信解析装置１は、パケット解析部２、マルウェア情報データベース３、パケット比較部４、鍵抽出部５、復号部６、結果出力部７で構成される。パケット解析部２には、パケット記録データ８が入力され、パケット解析部２がパケット情報を解析して、パケット解析データ９を出力する。
【００１３】
パケット記録データ８は、インターネットとの通信パケットを記録したデータである。ここで、通信パケットを取得する手段は、どのような手段を用いても構わない。また、通信パケットを記録したデータは、過去に取得したデータであっても、リアルタイムで取得したデータであっても良い。
【００１４】
パケット解析部２は、パケット記録データ８から記録された順にパケットを取り出し、パケット解析データ９を生成する。
図２は、パケット解析データ９のデータ構造を示す図である。
パケット解析データ９は、ＩＰ情報１０、トランスポート情報１１、ヘッダ情報１２、ペイロード情報１３で構成されている。ＩＰ情報１０は、ＩＰプロトコルに関する情報である。トラスポート情報１１は、ＴＣＰプロトコルもしくはＵＤＰプロトコルに関する情報である。ヘッダ情報１２は、ＴＣＰプロトコルもしくはＵＤＰプロトコルで運ばれる上位プロトコルのヘッダの情報である。ペイロード情報１３は、ＴＣＰプロトコルもしくはＵＤＰプロトコルで運ばれる上位プロトコルのペイロードの情報である。書式１４は、パケット解析データ９を参照する際の形式を記述したものである。値１５は、パケット解析データで参照される値である。
パケット解析部２は、パケットをＩＰ情報１０、トラスポート情報１１、ヘッダ情報１２、ペイロード情報１３に分割してパケット解析データ９を生成する。
【００１５】
マルウェア情報データベース３は、マルウェアが行なう通信に関する各種情報を格納している。
図３は、実施の形態１に係るマルウェア情報データベース３の一構成例を示す構成図である。
マルウェア記録データベース３は、シグネチャ１６、鍵抽出情報１７、復号関数情報１８が対応付けられて構成され、さらに復号関数情報１８は、コード情報１９、実行制御情報２０で構成される。以下、シグネチャ１６、鍵抽出情報１７、復号関数情報１８について、順に説明する。
【００１６】
シグネチャ１６は、マルウェアが行なう通信の特徴を表した情報であり、通信パケット内の情報のパターンを表現した正規表現と、パケット解析データとの比較方法を示す論理演算子とにより、マルウェアが行なう通信の特徴を記述する。例えば、シグネチャ１６は、各マルウェアに関するＩＰ情報１０、トラスポート情報１１、ヘッダ情報１２のいずれかを指定する情報と、ＩＰ情報１０、トラスポート情報１１、ヘッダ情報１２のいずれかの値を表わす正規表現と、パケット解析データ９との比較方法を示す論理演算子から構成されている。このシグネチャ１６は、後述するように、パケット比較部４によって、パケット解析データ９とのパターンマッチングに用いられ、パケット解析データ９と一致するか検証される。
【００１７】
例えば、図３において、シグネチャ１６に、「HTTP.HEADER(Request URI)=="//www.malware.com"」と記述されていた場合、対象としてヘッダ情報１２を選択しており、プロトコルがＨＴＴＰであり、Ｒｅｑｕｅｓｔ  ＵＲＬが「//www.malware.com」と同一であった場合に一致する。
また、シグネチャ１６に、「HTTP.HEADER(VBNET) ~= "[0-9]*"」と記述されていた場合、対象としてヘッダ情報１２を選択しており、プロトコルがＨＴＴＰであり、ヘッダがＶＢＮＥＴというヘッダが存在し、ヘッダの値として数値が記述されている場合に一致する。
また、シグネチャ１６に、「IP.SRCADDR=="10.74.5.112"」と記述されていた場合、対象としてＩＰ情報１０を選択しており、発信元のＩＰアドレスが「10.74.5.112」であった場合に一致する。
このようなシグネチャ１６の記述には、論理演算子として論理積ＡＮＤ、論理和ＯＲ、否定ＮＯＴを使用することができ、さらに複数の記述を組み合わせることができる。
【００１８】
鍵抽出情報１７は、通信パケットから暗号鍵を抽出する方法を記述したスクリプト情報である。このスクリプト情報には、パケット解析データ９から抜き出したバイト列に対して実行する操作がスクリプト表現で記述されている。また、スクリプト情報は、マルウェアが持つ暗号鍵が埋め込まれている場所に応じて、暗号鍵を抽出するためのスクリプト表現を準備する。例えば、マルウェアが持つ暗号鍵は、マルウェア本体に埋め込まれている固定鍵である場合と、通信パケットの暗号文に鍵もしくは鍵に関連する情報が含まれている場合が考えられる。固定鍵であった場合に対応する鍵抽出情報は、例えば、図３の１行目に示すように、鍵が１６進数でＤＦＣ１４Ｂ２３であった場合には、「$KEY="0xDFC14B23";」と表現する。また、通信パケットの暗号文に鍵が含まれている場合として、ＨＴＴＰプロトコルのＳＥＣＲＥＴＫＥＹヘッダに鍵が存在する場合には、図３の２行目に示すように、「$KEY=HTTP.Header(SECRETKEY);」と表現する。また、通信パケットの暗号文に、鍵に関連する情報が含まれている場合として、通信パケットのペイロード情報１３の先頭から１６バイト目から４バイトを抜き出した値と、１６進数ＦＤＦＤＦＤＦＤとの排他的論理和を取った値が鍵になる場合には、図３の３行目に示すように、「$WORK=mid(HTTP.PAYLOAD,16,4);」、「$KEY=xor($WORK,"OxFDFDFDFD");」と表現する。
【００１９】
復号関数情報１８は、マルウェアが使用する復号関数に関する情報である。復号関数情報１８のコード情報１９は、復号関数を実装した命令コードを記述したものであり、また、実行制御情報２０は、復号関数を呼び出すための引数の順序、および返り値を示すＣＰＵレジスタ情報を記述したものである。
図４は、実行制御情報２０のデータ構造を示す図である。
実行制御情報２０は、設定項目２１、および設定内容２２で構成される。
【００２０】
パケット比較部４は、パケット解析データ９と、マルウェア情報データベース３に格納されたシグネチャ１６とを比較し、一致するかを判定する。
【００２１】
鍵抽出部５は、パケット比較部４で一致したシグネチャ１６に対応する鍵抽出情報１７を読み取り、その記述に従って、パケット解析データ９から暗号鍵を抽出する。
図５は、鍵抽出部５の一構成例を示す構成図である。
鍵抽出部５は、鍵抽出情報解釈部２３と抽出実行部２４で構成される。鍵抽出情報解釈部２３は、鍵抽出情報１７を解釈する。抽出実行部２４は、パケット解析データ９から鍵抽出を行ない、暗号鍵２５を出力する。
【００２２】
復号部６は、パケット解析データ９のペイロード情報１３に記録された暗号データを、鍵抽出部５により抽出した暗号鍵１２で復号して、復号データ（復号文）を得る。
図６は、復号部６の一構成例を示す構造図である。
復号部６は、実行制御部２６、コードメモリ２７、スタックメモリ２８、バッファメモリ２９で構成される。また、バッファメモリ１６には、入力バッファ３０、出力バッファ３１、鍵バッファ３２が備えられている。実行制御部２６は、復号関数の実行を管理する。コードメモリ２７は、マルウェア情報データベース３から読み出したコード情報１９がロードされる。スタックメモリ２８は、復号関数に引数を与えるためのものである。バッファメモリ２９は、復号関数の暗号データと復号したデータと暗号鍵情報とを、それぞれ入力バッファ３０、出力バッファ３１、鍵バッファ３２により交換する。
【００２３】
結果出力部７は、復号部６により得られた復号文を出力する。例えば、図示しない表示部に復号文を表示して出力する。
【００２４】
次に、実施の形態１に係るマルウェア通信解析装置の動作について、図７を参照して説明する。
図７は、実施の形態１に係るマルウェア通信解析装置の処理の流れを示すフローチャートである。
【００２５】
まず、ステップＳ１０１において、パケット解析部２は、パケット記録データ８から記録された順にパケットを読み出す。
次に、ステップＳ１０２において、パケット解析部２は、読みだしたパケットを、パケットをＩＰ情報１０、トラスポート情報１１、ヘッダ情報１２、ペイロード情報１３に分割してパケット解析データ９を生成する。
次に、ステップＳ１０３において、パケット比較部４は、マルウェア情報データベース３からシグネチャ１６を読み出す。
【００２６】
次に、ステップＳ１０４において、パケット比較部４は、パケット解析データ９とシグネチャ１６のパターンマッチングを行ない、パケット解析データ９がシグネチャ１６と一致するか否かを判定する。一致した場合には、パケット解析データ９に関わるパケットは、マルウェアが行なった通信であるとみなすことができ、Ｙｅｓの分岐によりステップＳ１０５に進む。一致しなかった場合には、Ｎｏの分岐によりステップＳ１０８に進む。
【００２７】
次に、ステップＳ１０５において、鍵抽出部５は、鍵抽出情報１７を用いて、パケット解析データ９から暗号鍵１２を抽出する。まず、鍵抽出情報解釈部２３が、パケット比較部４により一致すると判定されたシグネチャ１６に対応する鍵抽出情報１７を、マルウェア情報データベース３から読み出す。次に、抽出実行部２４が、パケット中から任意の位置にある任意の長さのバイト列を選択し、鍵抽出情報１７のスクリプト表現に従って、パケット解析データ９に対して、鍵抽出のための操作を行なう。この操作は、バイト位置の特定、バイト列の抜き出し、抜き出したバイト列の演算を、スクリプト情報の操作指示に応じて実行することにより、暗号鍵２５が抽出される。
【００２８】
次に、ステップＳ１０６において、復号部６は、暗号鍵１２と、マルウェア情報データベース３から読み出した復号関数情報１８を用いて、パケット解析データ９から暗号文を復号して復号文を得る。ステップＳ１０６の処理については、後に詳しく説明する。
【００２９】
次に、ステップＳ１０７において、結果出力部７は、パケット解析データ９と復号文の表示を行なう。
【００３０】
次に、ステップＳ１０８において、パケット比較部４は、マルウェア情報データベース３のシグネチャ１６が終了しているか否かを判定し、シグネチャ１６が終了している場合は、Ｙｅｓの分岐により、ステップＳ１０９に進む。シグネチャ１６が終了していない場合は、次のシグネチャ１６を読み出すために、Ｎｏの分岐によりステップＳ１０３に戻って、ステップＳ１０７までの処理を繰り返す。
【００３１】
最後に、ステップＳ１０９において、パケット解析部２は、パケット記録データ８がまだ終了していなければ、Ｎｏの分岐によりステップＳ１０１に戻って、次のパケット記録データ８の解析を繰り返す。パケット記録データ８が終了していれば、Ｙｅｓの分岐により、全体の処理を終了する。
【００３２】
次に、ステップＳ１０６における復号部６の処理について、詳細に説明する。
図８は、復号部６の処理の流れを示すフローチャートである。
【００３３】
まず、ステップＳ２０１において、実行制御部２６は、マルウェア情報データベース３から復号関数のコード情報１９を読み出し、コードメモリ２７にロードする。
次に、ステップＳ２０２において、実行制御部２６は、パケット解析データ９のペイロード情報１３を入力バッファ３０にコピーする。
次に、ステップＳ２０３において、実行制御部２６は、暗号鍵２５を鍵バッファ３２にコピーする。
【００３４】
次に、ステップＳ２０４において、実行制御部２６は、復号関数の引数はレジスタを介して渡すか否かを決定する。これは、復号関数は、マルウェアごとにスタックにプッシュする引数順序が異なり、また、特定のＣＰＵレジスタを介して引数が渡される場合もあるためである。実行制御部２６は、実行制御情報２０の設定内容２２に基づいて、入力バッファ３０の先頭アドレス、出力バッファ３１の先頭アドレス、鍵バッファ３２の先頭アドレスを、スタックにプッシュするかレジスタに渡すかを決定する。例えば、設定項目２１が入力バッファポインタであった場合に、対応する設定内容２２がＳＴＡＣＫ（２）と記述してあれば、ステップＳ２０６において、入力バッファポインタを２番目のスタックにプッシュしてから復号関数を呼び出す。また、例えば、設定項目２１が出力バッファポインタであった場合に、対応する設定内容２２がＤＩと記述してあれば、ステップＳ２０５において、ＤＩレジスタに出力バッファポインタをコピーしてから復号関数を呼び出す。
【００３５】
次に、ステップＳ２０７において、実行制御部２６は、コードメモリ２７にロードされた復号関数のコード情報１９をコールする。その結果、入力バッファ３０の暗号データ（ペイロード情報１３）を復号した結果が出力バッファ３１に出力される。
【００３６】
次に、ステップＳ２０８において、実行制御部２６は、復号関数のコールが実行時の例外発生なしに終了したか否かを判定する。例外発生なしであれば、Ｙｅｓの分岐によりステップＳ２０９に進み、例外発生ありであれば、Ｎｏの分岐により処理を終了する。
【００３７】
次に、ステップＳ２０９において、実行制御部２６は、実行制御情報２０の設定項目２１に返り値が記述されたＣＰＵレジスタ値を取り出し、ステップＳ２１０において、返り値の成否を判定する。判定の結果、成功していた場合には、Ｙｅｓの分岐によりステップＳ２１１に進み、出力バッファ３１から復号文を取り出す。失敗していた場合には、Ｎｏの分岐により処理を終了する。
【００３８】
以上が、実施の形態１に係るマルウェア通信解析装置１の説明であるが、実施の形態１では復号関数としてマルウェア本体から抜き出したコード情報１９を用いているが、マルウェア通信解析装置１のマイクロプロセッサ環境がマルウェアと異なる場合には、マルウェアの復号関数のアルゴリズムを模して、マルウェア通信解析装置１で動作するように作成した他のプログラムを呼び出してもよい。また、既知のマルウェア通信を復号するプログラムが既に存在する場合には、そのプログラムを呼び出しても良い。
【００３９】
以上のように、本実施の形態１の発明は、複数のマルウェアを解析した結果から得たマルウェアの通信の特徴と、マルウェアごとの暗号鍵の抽出方法と、マルウェアから抽出した復号関数をデータベースに登録しておき、マルウェアの通信の特徴をマルウェアの通信記録と照合してマルウェアの種類を特定し、特定されたマルウェアに適合した暗号鍵の抽出方法と復号関数を用いて、暗号化された通信を復号することにより、実際にマルウェアを動作させることなく、マルウェアが行なった通信内容を効率的に特定することができるという効果がある。
【００４０】
実施の形態２．
実施の形態１では、マルウェアが持つ暗号鍵がマルウェア本体に埋め込まれている固定鍵である場合と、通信パケットの暗号文に鍵もしくは鍵に関連する情報が含まれている場合に対応した実施の形態を説明した。実施の形態２では、暗号文が含まれたパケットより以前に受信したパケットの内部に鍵が含まれている場合に対応した実施の形態を説明する。
【００４１】
図９は、実施の形態２に係るマルウェア通信解析装置の一実施例を示す構成図である。
実施の形態２に係るマルウェア通信解析装置１では、実施の形態１の構成に鍵保持部３３を追加し、さらに、マルウェア情報データベース３に格納する各種情報を拡張した構成となっている。
【００４２】
図１０は、実施の形態２に係るマルウェア情報データベース３の一構成例を示す構成図である。
マルウェア情報データベース３は、鍵シグネチャ３４、鍵抽出情報１７、暗号文シグネチャ３５、復号関数情報１８、コード情報１９、実行制御情報２０から構成されている。この構成においては、マルウェアの鍵を伝送する通信の特徴を表した鍵シグネチャ３４と、マルウェアが暗号文を伝送する通信の特徴を表した暗号文シグネチャ３５を保持している。
【００４３】
また、鍵保持部３３は、鍵抽出部５で抽出した暗号鍵１２を保持する。
【００４４】
次に、実施の形態２に係るマルウェア通信解析装置の動作について説明する。パケット比較部４は、パケット解析データ９と鍵シグネチャ３４のパターンマッチングを行ない、パケット解析データ９が鍵シグネチャ３４と一致するかを検証する。一致した場合には、鍵抽出部５において暗号鍵１２を抽出する処理は実施の形態１と同一であるが、復号部６の処理を行なわずに、暗号鍵１２を鍵保持部３３で保持しておく。
【００４５】
次に、パケット比較部４は、後続のパケット解析データ９と鍵シグネチャ３４のパターンマッチングを行ない、パケット解析データ９が鍵シグネチャ３４と一致するかを検証する。一致した場合には、鍵抽出部５の処理を行なわずに、鍵保持部３３で保持しておいた暗号鍵１２を用いて復号部６の処理を行なう。
【００４６】
このように処理することにより、暗号鍵１２が以前に受信したパケット内部に存在している場合にも、暗号文を復号することができるようになるという効果がある。
【００４７】
また、鍵保持部３３で暗号鍵１２を保持している場合は、鍵抽出部５の処理を行なわずに省略することができるため、処理を高速化することができるという効果がある。
【００４８】
なお、鍵シグネチャ３４と暗号文シグネチャ３５の内容を同じにしておくことで、実施の形態１に関わるマルウェア通信解析装置１と同一の動作を行なうことも可能である。
【符号の説明】
【００４９】
１  マルウェア通信解析装置、２  パケット解析部、３  マルウェア情報データベース、４  パケット比較部、５  鍵抽出部、６  復号部、７  結果出力部、８  パケット記録データ、９  パケット解析データ、１０  ＩＰ情報、１１  トランスポート情報、１２  ヘッダ情報、１３  ペイロード情報、１４  書式、１５  値、１６  シグネチャ、１７  鍵抽出情報、１８  復号関数情報、１９  コード情報、２０  実行制御情報、２１  設定項目、２２  設定内容、２３  鍵抽出情報解釈部、２４  抽出実行部、２５  暗号鍵、２６  実行制御部、２７  コードメモリ、２８  スタックメモリ、２９  バッファメモリ、３０  入力バッファ、３１  出力バッファ、３２  鍵バッファ、３３  鍵保持部、３４  鍵シグネチャ、３５  暗号文シグネチャ。
【図１】
2015106914.tif 000003
【図２】
2015106914.tif 000004
【図３】
2015106914.tif 000005
【図４】
2015106914.tif 000006
【図５】
2015106914.tif 000007
【図６】
2015106914.tif 000008
【図７】
2015106914.tif 000009
【図８】
2015106914.tif 000010
【図９】
2015106914.tif 000011
【図１０】
2015106914.tif 000012