JP2015106914A - マルウェア通信解析装置、及びマルウェア通信解析方法 - Google Patents
マルウェア通信解析装置、及びマルウェア通信解析方法 Download PDFInfo
- Publication number
- JP2015106914A JP2015106914A JP2013249953A JP2013249953A JP2015106914A JP 2015106914 A JP2015106914 A JP 2015106914A JP 2013249953 A JP2013249953 A JP 2013249953A JP 2013249953 A JP2013249953 A JP 2013249953A JP 2015106914 A JP2015106914 A JP 2015106914A
- Authority
- JP
- Japan
- Prior art keywords
- malware
- packet
- information
- key
- communication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】 実際にマルウェアを動作させることなく、マルウェアが行なった通信内容を効率的に特定する。【解決手段】 マルウェアが行なう通信の特徴を記述したシグネチャと通信パケットから暗号鍵を抽出する方法を記述した鍵抽出情報とマルウェアが使用する復号関数の情報である復号関数情報とを対応付けて格納し、通信パケットを解析し、解析した結果を格納したパケット解析データを生成し、パケット解析データとシグネチャとを比較して両者が一致するか否かを判定し、一致すると判定された場合、このシグネチャに対応付けられた鍵抽出情報を用いてパケット解析データから暗号鍵を抽出し、この暗号鍵と、パケット解析データと一致すると判定されたシグネチャに対応付けられた復号関数情報とを用いてパケット解析データの暗号文を復号する。【選択図】 図1
Description
本発明は、インターネットに接続された情報処理端末のマルウェア感染が発覚したときに、そのマルウェアから外部に漏洩された情報を特定する技術に関する。
マルウェアを解析する従来技術としては、例えば、特許文献1において、マルウェアを特別な実験環境で実行させて、システムコールやコンピュータ資源の利用履歴およびリモートの端末への送信メッセージを記録する手法が示されている。
また、昨今、マルウェアを用いた標的型攻撃による情報漏洩事件が頻発している。マルウェアによる感染が発覚したときには、そのマルウェアから外部にデータが送信された場合にそのデータ内の情報を特定する必要がある。このためには、インターネットと組織内ネットワーク上の情報処理端末が行なった通信を記録しておき、マルウェアの感染した端末の通信記録を抜き出して解析する必要がある。これらのマルウェアの一部は、暗号関数と対となる復号関数を内部に持ち、外部との通信を暗号化して行なっており、マルウェアを解析して暗号鍵と復号関数を特定しなければ実際に通信した情報の内容が何かを明らかにすることはできない。
このような暗号鍵と復号関数を特定する技術に関して、特許文献2では、マルウェアを実行させ、その時のトレース情報から暗号鍵候補を特定し、特定したマルウェア内の復号化関数を利用して、マルウェア通信を復号してその結果から鍵を特定する手法が開示されている。
従来技術では、実際にマルウェアを動作させて、動作中に記録されたマルウェアの通信内容を解析することが必要であるため、マルウェアの実際の検体を入手してマルウェア実行環境を構築する必要がある。このため、マルウェアの通信内容の解析に手間とコストがかかり、解析が効率的でないという課題があった。
本発明は、上記のような課題を解決するためになされたもので、実際にマルウェアを動作させることなく、マルウェアが行なった通信内容を効率的に特定することを目的とする。
上記で述べた課題を解決するため、本発明のマルウェア通信解析装置は、マルウェアが行なう通信の特徴を記述したシグネチャと通信パケットから暗号鍵を抽出する方法を記述した鍵抽出情報とマルウェアが使用する復号関数の情報である復号関数情報とを対応付けて格納するマルウェア情報データベースと、通信パケットを解析し、解析した結果を格納したパケット解析データを生成するパケット解析部と、前記パケット解析部により生成された前記パケット解析データと前記マルウェア情報データベースに格納された前記シグネチャとを比較して両者が一致するか否かを判定するパケット比較部と、前記パケット比較部により前記パケット解析データと前記シグネチャとが一致すると判定された場合、このシグネチャに対応付けられた鍵抽出情報を用いて前記パケット解析データから暗号鍵を抽出する鍵抽出部と、前記鍵抽出部により抽出された前記暗号鍵と前記パケット比較部により前記パケット解析データと一致すると判定された前記シグネチャに対応付けられた前記復号関数情報とを用いて前記パケット解析データの暗号文を復号する復号部とを備えることとしたものである。
また、本発明のマルウェア通信解析方法は、マルウェアが行なう通信の特徴を記述したシグネチャと通信パケットから暗号鍵を抽出する方法を記述した鍵抽出情報とマルウェアが使用する復号関数の情報である復号関数情報とを対応付けて格納するマルウェア情報データベースを用いて、前記通信パケットの暗号文を復号するマルウェア通信解析装置のマルウェア通信解析方法であって、パケット解析部が、通信パケットを解析し、解析した結果を格納したパケット解析データを生成するパケット解析ステップと、パケット比較部が、前記パケット解析ステップにより生成された前記パケット解析データと前記マルウェア情報データベースに格納された前記シグネチャとを比較して両者が一致するか否かを判定するパケット比較ステップと、鍵抽出部が、前記パケット比較ステップにより前記パケット解析データと前記シグネチャとが一致すると判定された場合、このシグネチャに対応付けられた鍵抽出情報を用いて前記パケット解析データから暗号鍵を抽出する鍵抽出ステップと、復号部が、前記鍵抽出ステップにより抽出された前記暗号鍵と前記パケット比較ステップにより前記パケット解析データと一致すると判定された前記シグネチャに対応付けられた前記復号関数情報とを用いて前記パケット解析データの暗号文を復号する復号ステップとを備えることとしたものである。
本発明によれば、複数のマルウェアを解析した結果から得たマルウェアの通信の特徴と、マルウェアごとの暗号鍵の抽出方法と、マルウェアから抽出した復号関数をデータベースに登録しておき、マルウェアの通信の特徴をマルウェアの通信記録と照合してマルウェアの種類を特定し、特定されたマルウェアに適合した暗号鍵の抽出方法と復号関数を用いて、暗号化された通信を復号することにより、実際にマルウェアを動作させることなく、マルウェアが行なった通信内容を効率的に特定することができるという効果がある。
実施の形態1.
図1は、実施の形態1に係るマルウェア通信解析装置の一実施例を示す構成図である。
マルウェア通信解析装置1は、パケット解析部2、マルウェア情報データベース3、パケット比較部4、鍵抽出部5、復号部6、結果出力部7で構成される。パケット解析部2には、パケット記録データ8が入力され、パケット解析部2がパケット情報を解析して、パケット解析データ9を出力する。
図1は、実施の形態1に係るマルウェア通信解析装置の一実施例を示す構成図である。
マルウェア通信解析装置1は、パケット解析部2、マルウェア情報データベース3、パケット比較部4、鍵抽出部5、復号部6、結果出力部7で構成される。パケット解析部2には、パケット記録データ8が入力され、パケット解析部2がパケット情報を解析して、パケット解析データ9を出力する。
パケット記録データ8は、インターネットとの通信パケットを記録したデータである。ここで、通信パケットを取得する手段は、どのような手段を用いても構わない。また、通信パケットを記録したデータは、過去に取得したデータであっても、リアルタイムで取得したデータであっても良い。
パケット解析部2は、パケット記録データ8から記録された順にパケットを取り出し、パケット解析データ9を生成する。
図2は、パケット解析データ9のデータ構造を示す図である。
パケット解析データ9は、IP情報10、トランスポート情報11、ヘッダ情報12、ペイロード情報13で構成されている。IP情報10は、IPプロトコルに関する情報である。トラスポート情報11は、TCPプロトコルもしくはUDPプロトコルに関する情報である。ヘッダ情報12は、TCPプロトコルもしくはUDPプロトコルで運ばれる上位プロトコルのヘッダの情報である。ペイロード情報13は、TCPプロトコルもしくはUDPプロトコルで運ばれる上位プロトコルのペイロードの情報である。書式14は、パケット解析データ9を参照する際の形式を記述したものである。値15は、パケット解析データで参照される値である。
パケット解析部2は、パケットをIP情報10、トラスポート情報11、ヘッダ情報12、ペイロード情報13に分割してパケット解析データ9を生成する。
図2は、パケット解析データ9のデータ構造を示す図である。
パケット解析データ9は、IP情報10、トランスポート情報11、ヘッダ情報12、ペイロード情報13で構成されている。IP情報10は、IPプロトコルに関する情報である。トラスポート情報11は、TCPプロトコルもしくはUDPプロトコルに関する情報である。ヘッダ情報12は、TCPプロトコルもしくはUDPプロトコルで運ばれる上位プロトコルのヘッダの情報である。ペイロード情報13は、TCPプロトコルもしくはUDPプロトコルで運ばれる上位プロトコルのペイロードの情報である。書式14は、パケット解析データ9を参照する際の形式を記述したものである。値15は、パケット解析データで参照される値である。
パケット解析部2は、パケットをIP情報10、トラスポート情報11、ヘッダ情報12、ペイロード情報13に分割してパケット解析データ9を生成する。
マルウェア情報データベース3は、マルウェアが行なう通信に関する各種情報を格納している。
図3は、実施の形態1に係るマルウェア情報データベース3の一構成例を示す構成図である。
マルウェア記録データベース3は、シグネチャ16、鍵抽出情報17、復号関数情報18が対応付けられて構成され、さらに復号関数情報18は、コード情報19、実行制御情報20で構成される。以下、シグネチャ16、鍵抽出情報17、復号関数情報18について、順に説明する。
図3は、実施の形態1に係るマルウェア情報データベース3の一構成例を示す構成図である。
マルウェア記録データベース3は、シグネチャ16、鍵抽出情報17、復号関数情報18が対応付けられて構成され、さらに復号関数情報18は、コード情報19、実行制御情報20で構成される。以下、シグネチャ16、鍵抽出情報17、復号関数情報18について、順に説明する。
シグネチャ16は、マルウェアが行なう通信の特徴を表した情報であり、通信パケット内の情報のパターンを表現した正規表現と、パケット解析データとの比較方法を示す論理演算子とにより、マルウェアが行なう通信の特徴を記述する。例えば、シグネチャ16は、各マルウェアに関するIP情報10、トラスポート情報11、ヘッダ情報12のいずれかを指定する情報と、IP情報10、トラスポート情報11、ヘッダ情報12のいずれかの値を表わす正規表現と、パケット解析データ9との比較方法を示す論理演算子から構成されている。このシグネチャ16は、後述するように、パケット比較部4によって、パケット解析データ9とのパターンマッチングに用いられ、パケット解析データ9と一致するか検証される。
例えば、図3において、シグネチャ16に、「HTTP.HEADER(Request URI)=="//www.malware.com"」と記述されていた場合、対象としてヘッダ情報12を選択しており、プロトコルがHTTPであり、Request URLが「//www.malware.com」と同一であった場合に一致する。
また、シグネチャ16に、「HTTP.HEADER(VBNET) ~= "[0-9]*"」と記述されていた場合、対象としてヘッダ情報12を選択しており、プロトコルがHTTPであり、ヘッダがVBNETというヘッダが存在し、ヘッダの値として数値が記述されている場合に一致する。
また、シグネチャ16に、「IP.SRCADDR=="10.74.5.112"」と記述されていた場合、対象としてIP情報10を選択しており、発信元のIPアドレスが「10.74.5.112」であった場合に一致する。
このようなシグネチャ16の記述には、論理演算子として論理積AND、論理和OR、否定NOTを使用することができ、さらに複数の記述を組み合わせることができる。
また、シグネチャ16に、「HTTP.HEADER(VBNET) ~= "[0-9]*"」と記述されていた場合、対象としてヘッダ情報12を選択しており、プロトコルがHTTPであり、ヘッダがVBNETというヘッダが存在し、ヘッダの値として数値が記述されている場合に一致する。
また、シグネチャ16に、「IP.SRCADDR=="10.74.5.112"」と記述されていた場合、対象としてIP情報10を選択しており、発信元のIPアドレスが「10.74.5.112」であった場合に一致する。
このようなシグネチャ16の記述には、論理演算子として論理積AND、論理和OR、否定NOTを使用することができ、さらに複数の記述を組み合わせることができる。
鍵抽出情報17は、通信パケットから暗号鍵を抽出する方法を記述したスクリプト情報である。このスクリプト情報には、パケット解析データ9から抜き出したバイト列に対して実行する操作がスクリプト表現で記述されている。また、スクリプト情報は、マルウェアが持つ暗号鍵が埋め込まれている場所に応じて、暗号鍵を抽出するためのスクリプト表現を準備する。例えば、マルウェアが持つ暗号鍵は、マルウェア本体に埋め込まれている固定鍵である場合と、通信パケットの暗号文に鍵もしくは鍵に関連する情報が含まれている場合が考えられる。固定鍵であった場合に対応する鍵抽出情報は、例えば、図3の1行目に示すように、鍵が16進数でDFC14B23であった場合には、「$KEY="0xDFC14B23";」と表現する。また、通信パケットの暗号文に鍵が含まれている場合として、HTTPプロトコルのSECRETKEYヘッダに鍵が存在する場合には、図3の2行目に示すように、「$KEY=HTTP.Header(SECRETKEY);」と表現する。また、通信パケットの暗号文に、鍵に関連する情報が含まれている場合として、通信パケットのペイロード情報13の先頭から16バイト目から4バイトを抜き出した値と、16進数FDFDFDFDとの排他的論理和を取った値が鍵になる場合には、図3の3行目に示すように、「$WORK=mid(HTTP.PAYLOAD,16,4);」、「$KEY=xor($WORK,"OxFDFDFDFD");」と表現する。
復号関数情報18は、マルウェアが使用する復号関数に関する情報である。復号関数情報18のコード情報19は、復号関数を実装した命令コードを記述したものであり、また、実行制御情報20は、復号関数を呼び出すための引数の順序、および返り値を示すCPUレジスタ情報を記述したものである。
図4は、実行制御情報20のデータ構造を示す図である。
実行制御情報20は、設定項目21、および設定内容22で構成される。
図4は、実行制御情報20のデータ構造を示す図である。
実行制御情報20は、設定項目21、および設定内容22で構成される。
パケット比較部4は、パケット解析データ9と、マルウェア情報データベース3に格納されたシグネチャ16とを比較し、一致するかを判定する。
鍵抽出部5は、パケット比較部4で一致したシグネチャ16に対応する鍵抽出情報17を読み取り、その記述に従って、パケット解析データ9から暗号鍵を抽出する。
図5は、鍵抽出部5の一構成例を示す構成図である。
鍵抽出部5は、鍵抽出情報解釈部23と抽出実行部24で構成される。鍵抽出情報解釈部23は、鍵抽出情報17を解釈する。抽出実行部24は、パケット解析データ9から鍵抽出を行ない、暗号鍵25を出力する。
図5は、鍵抽出部5の一構成例を示す構成図である。
鍵抽出部5は、鍵抽出情報解釈部23と抽出実行部24で構成される。鍵抽出情報解釈部23は、鍵抽出情報17を解釈する。抽出実行部24は、パケット解析データ9から鍵抽出を行ない、暗号鍵25を出力する。
復号部6は、パケット解析データ9のペイロード情報13に記録された暗号データを、鍵抽出部5により抽出した暗号鍵12で復号して、復号データ(復号文)を得る。
図6は、復号部6の一構成例を示す構造図である。
復号部6は、実行制御部26、コードメモリ27、スタックメモリ28、バッファメモリ29で構成される。また、バッファメモリ16には、入力バッファ30、出力バッファ31、鍵バッファ32が備えられている。実行制御部26は、復号関数の実行を管理する。コードメモリ27は、マルウェア情報データベース3から読み出したコード情報19がロードされる。スタックメモリ28は、復号関数に引数を与えるためのものである。バッファメモリ29は、復号関数の暗号データと復号したデータと暗号鍵情報とを、それぞれ入力バッファ30、出力バッファ31、鍵バッファ32により交換する。
図6は、復号部6の一構成例を示す構造図である。
復号部6は、実行制御部26、コードメモリ27、スタックメモリ28、バッファメモリ29で構成される。また、バッファメモリ16には、入力バッファ30、出力バッファ31、鍵バッファ32が備えられている。実行制御部26は、復号関数の実行を管理する。コードメモリ27は、マルウェア情報データベース3から読み出したコード情報19がロードされる。スタックメモリ28は、復号関数に引数を与えるためのものである。バッファメモリ29は、復号関数の暗号データと復号したデータと暗号鍵情報とを、それぞれ入力バッファ30、出力バッファ31、鍵バッファ32により交換する。
結果出力部7は、復号部6により得られた復号文を出力する。例えば、図示しない表示部に復号文を表示して出力する。
次に、実施の形態1に係るマルウェア通信解析装置の動作について、図7を参照して説明する。
図7は、実施の形態1に係るマルウェア通信解析装置の処理の流れを示すフローチャートである。
図7は、実施の形態1に係るマルウェア通信解析装置の処理の流れを示すフローチャートである。
まず、ステップS101において、パケット解析部2は、パケット記録データ8から記録された順にパケットを読み出す。
次に、ステップS102において、パケット解析部2は、読みだしたパケットを、パケットをIP情報10、トラスポート情報11、ヘッダ情報12、ペイロード情報13に分割してパケット解析データ9を生成する。
次に、ステップS103において、パケット比較部4は、マルウェア情報データベース3からシグネチャ16を読み出す。
次に、ステップS102において、パケット解析部2は、読みだしたパケットを、パケットをIP情報10、トラスポート情報11、ヘッダ情報12、ペイロード情報13に分割してパケット解析データ9を生成する。
次に、ステップS103において、パケット比較部4は、マルウェア情報データベース3からシグネチャ16を読み出す。
次に、ステップS104において、パケット比較部4は、パケット解析データ9とシグネチャ16のパターンマッチングを行ない、パケット解析データ9がシグネチャ16と一致するか否かを判定する。一致した場合には、パケット解析データ9に関わるパケットは、マルウェアが行なった通信であるとみなすことができ、Yesの分岐によりステップS105に進む。一致しなかった場合には、Noの分岐によりステップS108に進む。
次に、ステップS105において、鍵抽出部5は、鍵抽出情報17を用いて、パケット解析データ9から暗号鍵12を抽出する。まず、鍵抽出情報解釈部23が、パケット比較部4により一致すると判定されたシグネチャ16に対応する鍵抽出情報17を、マルウェア情報データベース3から読み出す。次に、抽出実行部24が、パケット中から任意の位置にある任意の長さのバイト列を選択し、鍵抽出情報17のスクリプト表現に従って、パケット解析データ9に対して、鍵抽出のための操作を行なう。この操作は、バイト位置の特定、バイト列の抜き出し、抜き出したバイト列の演算を、スクリプト情報の操作指示に応じて実行することにより、暗号鍵25が抽出される。
次に、ステップS106において、復号部6は、暗号鍵12と、マルウェア情報データベース3から読み出した復号関数情報18を用いて、パケット解析データ9から暗号文を復号して復号文を得る。ステップS106の処理については、後に詳しく説明する。
次に、ステップS107において、結果出力部7は、パケット解析データ9と復号文の表示を行なう。
次に、ステップS108において、パケット比較部4は、マルウェア情報データベース3のシグネチャ16が終了しているか否かを判定し、シグネチャ16が終了している場合は、Yesの分岐により、ステップS109に進む。シグネチャ16が終了していない場合は、次のシグネチャ16を読み出すために、Noの分岐によりステップS103に戻って、ステップS107までの処理を繰り返す。
最後に、ステップS109において、パケット解析部2は、パケット記録データ8がまだ終了していなければ、Noの分岐によりステップS101に戻って、次のパケット記録データ8の解析を繰り返す。パケット記録データ8が終了していれば、Yesの分岐により、全体の処理を終了する。
次に、ステップS106における復号部6の処理について、詳細に説明する。
図8は、復号部6の処理の流れを示すフローチャートである。
図8は、復号部6の処理の流れを示すフローチャートである。
まず、ステップS201において、実行制御部26は、マルウェア情報データベース3から復号関数のコード情報19を読み出し、コードメモリ27にロードする。
次に、ステップS202において、実行制御部26は、パケット解析データ9のペイロード情報13を入力バッファ30にコピーする。
次に、ステップS203において、実行制御部26は、暗号鍵25を鍵バッファ32にコピーする。
次に、ステップS202において、実行制御部26は、パケット解析データ9のペイロード情報13を入力バッファ30にコピーする。
次に、ステップS203において、実行制御部26は、暗号鍵25を鍵バッファ32にコピーする。
次に、ステップS204において、実行制御部26は、復号関数の引数はレジスタを介して渡すか否かを決定する。これは、復号関数は、マルウェアごとにスタックにプッシュする引数順序が異なり、また、特定のCPUレジスタを介して引数が渡される場合もあるためである。実行制御部26は、実行制御情報20の設定内容22に基づいて、入力バッファ30の先頭アドレス、出力バッファ31の先頭アドレス、鍵バッファ32の先頭アドレスを、スタックにプッシュするかレジスタに渡すかを決定する。例えば、設定項目21が入力バッファポインタであった場合に、対応する設定内容22がSTACK(2)と記述してあれば、ステップS206において、入力バッファポインタを2番目のスタックにプッシュしてから復号関数を呼び出す。また、例えば、設定項目21が出力バッファポインタであった場合に、対応する設定内容22がDIと記述してあれば、ステップS205において、DIレジスタに出力バッファポインタをコピーしてから復号関数を呼び出す。
次に、ステップS207において、実行制御部26は、コードメモリ27にロードされた復号関数のコード情報19をコールする。その結果、入力バッファ30の暗号データ(ペイロード情報13)を復号した結果が出力バッファ31に出力される。
次に、ステップS208において、実行制御部26は、復号関数のコールが実行時の例外発生なしに終了したか否かを判定する。例外発生なしであれば、Yesの分岐によりステップS209に進み、例外発生ありであれば、Noの分岐により処理を終了する。
次に、ステップS209において、実行制御部26は、実行制御情報20の設定項目21に返り値が記述されたCPUレジスタ値を取り出し、ステップS210において、返り値の成否を判定する。判定の結果、成功していた場合には、Yesの分岐によりステップS211に進み、出力バッファ31から復号文を取り出す。失敗していた場合には、Noの分岐により処理を終了する。
以上が、実施の形態1に係るマルウェア通信解析装置1の説明であるが、実施の形態1では復号関数としてマルウェア本体から抜き出したコード情報19を用いているが、マルウェア通信解析装置1のマイクロプロセッサ環境がマルウェアと異なる場合には、マルウェアの復号関数のアルゴリズムを模して、マルウェア通信解析装置1で動作するように作成した他のプログラムを呼び出してもよい。また、既知のマルウェア通信を復号するプログラムが既に存在する場合には、そのプログラムを呼び出しても良い。
以上のように、本実施の形態1の発明は、複数のマルウェアを解析した結果から得たマルウェアの通信の特徴と、マルウェアごとの暗号鍵の抽出方法と、マルウェアから抽出した復号関数をデータベースに登録しておき、マルウェアの通信の特徴をマルウェアの通信記録と照合してマルウェアの種類を特定し、特定されたマルウェアに適合した暗号鍵の抽出方法と復号関数を用いて、暗号化された通信を復号することにより、実際にマルウェアを動作させることなく、マルウェアが行なった通信内容を効率的に特定することができるという効果がある。
実施の形態2.
実施の形態1では、マルウェアが持つ暗号鍵がマルウェア本体に埋め込まれている固定鍵である場合と、通信パケットの暗号文に鍵もしくは鍵に関連する情報が含まれている場合に対応した実施の形態を説明した。実施の形態2では、暗号文が含まれたパケットより以前に受信したパケットの内部に鍵が含まれている場合に対応した実施の形態を説明する。
実施の形態1では、マルウェアが持つ暗号鍵がマルウェア本体に埋め込まれている固定鍵である場合と、通信パケットの暗号文に鍵もしくは鍵に関連する情報が含まれている場合に対応した実施の形態を説明した。実施の形態2では、暗号文が含まれたパケットより以前に受信したパケットの内部に鍵が含まれている場合に対応した実施の形態を説明する。
図9は、実施の形態2に係るマルウェア通信解析装置の一実施例を示す構成図である。
実施の形態2に係るマルウェア通信解析装置1では、実施の形態1の構成に鍵保持部33を追加し、さらに、マルウェア情報データベース3に格納する各種情報を拡張した構成となっている。
実施の形態2に係るマルウェア通信解析装置1では、実施の形態1の構成に鍵保持部33を追加し、さらに、マルウェア情報データベース3に格納する各種情報を拡張した構成となっている。
図10は、実施の形態2に係るマルウェア情報データベース3の一構成例を示す構成図である。
マルウェア情報データベース3は、鍵シグネチャ34、鍵抽出情報17、暗号文シグネチャ35、復号関数情報18、コード情報19、実行制御情報20から構成されている。この構成においては、マルウェアの鍵を伝送する通信の特徴を表した鍵シグネチャ34と、マルウェアが暗号文を伝送する通信の特徴を表した暗号文シグネチャ35を保持している。
マルウェア情報データベース3は、鍵シグネチャ34、鍵抽出情報17、暗号文シグネチャ35、復号関数情報18、コード情報19、実行制御情報20から構成されている。この構成においては、マルウェアの鍵を伝送する通信の特徴を表した鍵シグネチャ34と、マルウェアが暗号文を伝送する通信の特徴を表した暗号文シグネチャ35を保持している。
また、鍵保持部33は、鍵抽出部5で抽出した暗号鍵12を保持する。
次に、実施の形態2に係るマルウェア通信解析装置の動作について説明する。パケット比較部4は、パケット解析データ9と鍵シグネチャ34のパターンマッチングを行ない、パケット解析データ9が鍵シグネチャ34と一致するかを検証する。一致した場合には、鍵抽出部5において暗号鍵12を抽出する処理は実施の形態1と同一であるが、復号部6の処理を行なわずに、暗号鍵12を鍵保持部33で保持しておく。
次に、パケット比較部4は、後続のパケット解析データ9と鍵シグネチャ34のパターンマッチングを行ない、パケット解析データ9が鍵シグネチャ34と一致するかを検証する。一致した場合には、鍵抽出部5の処理を行なわずに、鍵保持部33で保持しておいた暗号鍵12を用いて復号部6の処理を行なう。
このように処理することにより、暗号鍵12が以前に受信したパケット内部に存在している場合にも、暗号文を復号することができるようになるという効果がある。
また、鍵保持部33で暗号鍵12を保持している場合は、鍵抽出部5の処理を行なわずに省略することができるため、処理を高速化することができるという効果がある。
なお、鍵シグネチャ34と暗号文シグネチャ35の内容を同じにしておくことで、実施の形態1に関わるマルウェア通信解析装置1と同一の動作を行なうことも可能である。
1 マルウェア通信解析装置、2 パケット解析部、3 マルウェア情報データベース、4 パケット比較部、5 鍵抽出部、6 復号部、7 結果出力部、8 パケット記録データ、9 パケット解析データ、10 IP情報、11 トランスポート情報、12 ヘッダ情報、13 ペイロード情報、14 書式、15 値、16 シグネチャ、17 鍵抽出情報、18 復号関数情報、19 コード情報、20 実行制御情報、21 設定項目、22 設定内容、23 鍵抽出情報解釈部、24 抽出実行部、25 暗号鍵、26 実行制御部、27 コードメモリ、28 スタックメモリ、29 バッファメモリ、30 入力バッファ、31 出力バッファ、32 鍵バッファ、33 鍵保持部、34 鍵シグネチャ、35 暗号文シグネチャ。
Claims (6)
- マルウェアが行なう通信の特徴を記述したシグネチャと通信パケットから暗号鍵を抽出する方法を記述した鍵抽出情報とマルウェアが使用する復号関数の情報である復号関数情報とを対応付けて格納するマルウェア情報データベースと、
通信パケットを解析し、解析した結果を格納したパケット解析データを生成するパケット解析部と、
前記パケット解析部により生成された前記パケット解析データと前記マルウェア情報データベースに格納された前記シグネチャとを比較して両者が一致するか否かを判定するパケット比較部と、
前記パケット比較部により前記パケット解析データと前記シグネチャとが一致すると判定された場合、このシグネチャに対応付けられた鍵抽出情報を用いて前記パケット解析データから暗号鍵を抽出する鍵抽出部と、
前記鍵抽出部により抽出された前記暗号鍵と前記パケット比較部により前記パケット解析データと一致すると判定された前記シグネチャに対応付けられた前記復号関数情報とを用いて前記パケット解析データの暗号文を復号する復号部と、
を備えたマルウェア通信解析装置。 - 前記マルウェア情報データベースに格納された前記シグネチャは、通信パケット内の情報のパターンを表現した正規表現と前記パケット解析データとの比較方法を示す論理演算子とによりマルウェアが行なう通信の特徴を記述し、
前記パケット比較部は、前記パケット解析データと前記シグネチャとのパターンマッチングを行なって両者が一致するか否かを判定する請求項1記載のマルウェア通信解析装置。 - 前記マルウェア情報データベースに格納された前記鍵抽出情報は、前記パケット解析データのバイト列に対して実行する操作がスクリプト表現で記述され、
前記鍵抽出情報は、前記鍵抽出情報の前記スクリプト表現に従って前記パケット解析データのバイト列に対して操作を実行して暗号鍵を抽出する請求項1記載のマルウェア通信解析装置。 - 前記マルウェア情報データベースに格納された前記復号関数情報は、復号関数の命令コードを記述したコード情報と、復号関数を呼び出す引数及び返り値の設定を記述した実行制御情報とを含み、
前記復号部は、前記復号関数情報の前記コード情報と前記実行制御情報とに従って、前記パケット解析データの暗号文を復号する請求項1記載のマルウェア通信解析装置。 - 前記鍵抽出部により抽出した暗号鍵を保持する鍵保持部を備え、
前記マルウェア情報データベースは、マルウェアの鍵を伝送する通信の特徴を記述した鍵シグネチャを格納し、
前記パケット比較部は、後続のパケット解析データと前記鍵シグネチャとを比較して両者が一致するか否かを判定し、
前記鍵抽出部は、前記パケット比較部により前記後続のパケット解析データと前記鍵シグネチャとが一致すると判定された場合、暗号鍵の抽出を行なわず、
前記復号部は、前記鍵保持部が保持する暗号鍵を用いて前記後続のパケット解析データの暗号文を復号する請求項1記載のマルウェア通信解析装置。 - マルウェアが行なう通信の特徴を記述したシグネチャと通信パケットから暗号鍵を抽出する方法を記述した鍵抽出情報とマルウェアが使用する復号関数の情報である復号関数情報とを対応付けて格納するマルウェア情報データベースを用いて、前記通信パケットの暗号文を復号するマルウェア通信解析装置のマルウェア通信解析方法であって、
パケット解析部が、通信パケットを解析し、解析した結果を格納したパケット解析データを生成するパケット解析ステップと、
パケット比較部が、前記パケット解析ステップにより生成された前記パケット解析データと前記マルウェア情報データベースに格納された前記シグネチャとを比較して両者が一致するか否かを判定するパケット比較ステップと、
鍵抽出部が、前記パケット比較ステップにより前記パケット解析データと前記シグネチャとが一致すると判定された場合、このシグネチャに対応付けられた鍵抽出情報を用いて前記パケット解析データから暗号鍵を抽出する鍵抽出ステップと、
復号部が、前記鍵抽出ステップにより抽出された前記暗号鍵と前記パケット比較ステップにより前記パケット解析データと一致すると判定された前記シグネチャに対応付けられた前記復号関数情報とを用いて前記パケット解析データの暗号文を復号する復号ステップと、
を備えたマルウェア通信解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013249953A JP2015106914A (ja) | 2013-12-03 | 2013-12-03 | マルウェア通信解析装置、及びマルウェア通信解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013249953A JP2015106914A (ja) | 2013-12-03 | 2013-12-03 | マルウェア通信解析装置、及びマルウェア通信解析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015106914A true JP2015106914A (ja) | 2015-06-08 |
Family
ID=53436787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013249953A Pending JP2015106914A (ja) | 2013-12-03 | 2013-12-03 | マルウェア通信解析装置、及びマルウェア通信解析方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015106914A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107871078A (zh) * | 2016-09-27 | 2018-04-03 | 北京计算机技术及应用研究所 | 非结构化文本中提取漏洞信息的方法 |
US11270016B2 (en) | 2018-09-12 | 2022-03-08 | British Telecommunications Public Limited Company | Ransomware encryption algorithm determination |
US11449612B2 (en) | 2018-09-12 | 2022-09-20 | British Telecommunications Public Limited Company | Ransomware remediation |
US11677757B2 (en) | 2017-03-28 | 2023-06-13 | British Telecommunications Public Limited Company | Initialization vector identification for encrypted malware traffic detection |
US12008102B2 (en) | 2018-09-12 | 2024-06-11 | British Telecommunications Public Limited Company | Encryption key seed determination |
-
2013
- 2013-12-03 JP JP2013249953A patent/JP2015106914A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107871078A (zh) * | 2016-09-27 | 2018-04-03 | 北京计算机技术及应用研究所 | 非结构化文本中提取漏洞信息的方法 |
US11677757B2 (en) | 2017-03-28 | 2023-06-13 | British Telecommunications Public Limited Company | Initialization vector identification for encrypted malware traffic detection |
US11270016B2 (en) | 2018-09-12 | 2022-03-08 | British Telecommunications Public Limited Company | Ransomware encryption algorithm determination |
US11449612B2 (en) | 2018-09-12 | 2022-09-20 | British Telecommunications Public Limited Company | Ransomware remediation |
US12008102B2 (en) | 2018-09-12 | 2024-06-11 | British Telecommunications Public Limited Company | Encryption key seed determination |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5839967B2 (ja) | マルウェア解析システム | |
US20160321453A1 (en) | Method and device for detecting malicious code in an intelligent terminal | |
CN106919811B (zh) | 文件检测方法和装置 | |
US11647032B2 (en) | Apparatus and method for classifying attack groups | |
CN106599723B (zh) | 一种文件加密方法及装置、文件解密方法及装置 | |
CN112019332A (zh) | 基于微服务的加解密方法、api网关***及设备 | |
CN106533669A (zh) | 设备识别的方法、装置和*** | |
US9501646B2 (en) | Program verification apparatus, program verification method, and computer readable medium | |
CN113542253B (zh) | 一种网络流量检测方法、装置、设备及介质 | |
JP2015106914A (ja) | マルウェア通信解析装置、及びマルウェア通信解析方法 | |
KR20090016282A (ko) | 콘텐츠의 선택적인 부분 암호화를 위한 drm 시스템 및방법 | |
CN109800574A (zh) | 基于密码算法分析的计算机病毒检测方法及*** | |
WO2020233047A1 (zh) | 页面测试的方法及装置 | |
CN109510738B (zh) | 一种通信链路的测试方法及设备 | |
CN110224824B (zh) | 数字证书处理方法、装置、计算机设备和存储介质 | |
Borzacchiello et al. | Reconstructing C2 servers for remote access trojans with symbolic execution | |
Detering et al. | On the (in-) security of javascript object signing and encryption | |
EP3200390B1 (en) | Analysis system, analysis device, analysis method, and storage medium having analysis program recorded therein | |
JP2015090993A (ja) | 暗号制御装置、暗号制御方法、及びプログラム | |
JP7331714B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN107729345B (zh) | 网站数据处理方法、装置、网站数据处理平台及存储介质 | |
CN113922972B (zh) | 基于md5标识码的数据转发方法和装置 | |
CN115883078A (zh) | 文件加密方法、文件解密方法、装置、设备及存储介质 | |
CN115174201A (zh) | 一种基于筛选标签的安全规则管理方法及装置 | |
CN114244600A (zh) | 一种干扰恶意程序的方法 |