JP2013114637A - マルウェア解析システム - Google Patents

マルウェア解析システム Download PDF

Info

Publication number
JP2013114637A
JP2013114637A JP2011263186A JP2011263186A JP2013114637A JP 2013114637 A JP2013114637 A JP 2013114637A JP 2011263186 A JP2011263186 A JP 2011263186A JP 2011263186 A JP2011263186 A JP 2011263186A JP 2013114637 A JP2013114637 A JP 2013114637A
Authority
JP
Japan
Prior art keywords
data
malware
information
execution
key
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.)
Granted
Application number
JP2011263186A
Other languages
English (en)
Other versions
JP5839967B2 (ja
Inventor
Kiyoto Kawachi
清人 河内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2011263186A priority Critical patent/JP5839967B2/ja
Publication of JP2013114637A publication Critical patent/JP2013114637A/ja
Application granted granted Critical
Publication of JP5839967B2 publication Critical patent/JP5839967B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】マルウェアに感染した漏洩情報を特定するために、マルウェア暗号化鍵を抽出できるようにする。
【解決手段】実行手段106で実行し、実行トレース記録手段107に記録されたマルウェアの実行トレース情報を走査し、実行中のデータ計算に参照される依存データと実行トレース情報とが対応したデータ依存関係履歴情報をマルウェアプログラム実行により更新し、実行データがビット演算/算術演算の場合、そのデータの依存データの依存データ情報への追加をマルウェアプログラム終端まで実施し、データを依存データ情報の有効実行トレース行番号該当のマルウェアプログラムの実行アドレスでグループ分けした鍵格納バッファ候補群を鍵特定手段が出力し、暗号化鍵でデータを復号し、復号前後のデータを比較し、暗号化鍵を選択する。
【選択図】図1

Description

この発明は、インターネットに接続された情報処理端末のマルウェアによる感染が発覚したときに、そのマルウェアから外部に漏洩された情報の特定に必要なマルウェアの暗号化鍵を特定する技術に関する。
マルウェアを解析する従来技術としては、例えば特許文献1において、マルウェアを特別な実験環境で実行させて、システムコールやコンピュータ資源の利用履歴およびリモートの端末への送信メッセージを記録する手法が示されている。
特開2009-181335号公報
昨今、マルウェアによる大規模な情報漏洩事件が注目されている。マルウェアによる感染が発覚したときには、そのマルウェアから外部に漏洩された情報を特定する必要がある。そのためには、インターネットと組織内ネットワーク上の情報処理端末との通信を普段から記録し、ある端末上でマルウェアの感染が発覚した際には、当該端末からアップロードされた通信情報を通信記録から抜き出して、解析しなければならない。
これらのマルウェアはRC4やAESなどの暗号化関数を内部に持ち、外部にアップロードする情報を暗号化してから送信するため、マルウェアを解析して暗号化鍵を特定しなければ実際に漏洩した情報の内容が何かを明らかにすることはできない。
しかし、従来技術では、実験環境にてマルウェアの動作を記録することはできても、その動作記録から復号に必要な暗号化鍵を抽出する方法は無く、結果として通信記録を復号して漏洩した情報を特定することはできなかった。
この発明は上記のような問題点を解決するためになされたもので、マルウェアのメモリ操作を詳細に解析することにより、マルウェアがメモリに書き込む様々なデータの中から暗号化鍵を特定することを目的とする。
この発明に係るマルウェア解析システムは、
インターネットに接続され、マルウェアに感染された情報処理端末から、外部に漏洩された情報の特定に必要なマルウェアの暗号化鍵を特定するマルウェア解析システムであって、
情報処理端末とインターネットとの間の通信情報が記録された通信記録蓄積手段と、
感染されたマルウェアを記憶し、このマルウェアのプログラムを実行するマルウェア実行手段と、マルウェア実行手段上でマルウェアがマシン語命令を実行するたびに、実行トレース情報を記録する実行トレース記録手段を有するマルウェア実行装置と、
マルウェアからの接続要求に応じて、通信記録蓄積手段の過去の通信記録からメッセージを選択してマルウェアに返すメッセージ送信装置と、
実行トレース記録手段からの実行トレース情報を走査し、呼び出し引数によるネットワーク受信関数の呼び出し、引数のうち、受信バッファのアドレス、および受信バッファ長を求め、変数Pmsg、Lmsg領域に格納し、
マルウェアプログラム実行中のデータ計算に参照されるデータを依存データとし、その依存データとマルウェア実行トレース情報との対応を記録するデータ依存関係履歴情報をマルウェアプログラムの実行により更新し、
マルウェアプログラムの実行されたデータがビット演算または算術演算の場合は、そのデータが依存したデータを依存データ情報に追加する処理をマルウェアプログラムの実行トレース行終端まで実施し、
データが追加された依存データ情報を所定の基準でグループ分けして鍵格納バッファ候補群を抽出し出力する鍵特定手段と、
鍵特定手段により暗号化鍵の候補が複数抽出された場合に、抽出された暗号化鍵の候補によりデータを復号し、復号前と復号後のデータを比較し、復号に成功した暗号化鍵を選択する復号結果判定手段を有する実行トレース解析装置とを備える。
この発明に係るマルウェア解析システムによれば、実行トレース情報を記録しながら解析対象マルウェアに、過去に蓄積されたメッセージを復号させ、実行トレース情報を解析して鍵を特定することで、過去にアップロードされた情報を復号し、内容を取り出すことができるという効果がある。
さらに、鍵格納バッファ候補群抽出手続きにおいて、鍵の候補を特定する際に、参照したマシン語命令アドレスが近いかどうかを基準にアドレスをグループ分けすることで、連続したメモリ上に鍵データとは別のデータが並んでいたとしても、鍵データの一部として取り出されることを防ぐ効果がある。
さらに、鍵候補を抽出する際に、受信バッファ由来のデータとビット演算/算術演算されるデータのアドレスに絞り込んで解析を行うことで、抽出される鍵候補の数を削減することができるという効果がある。
この発明の実施の形態1に係るマルウェア解析システムを示す構成図である。 実行トレース記録手段に記録される実行トレース情報の説明図である。 通信記録蓄積手段に記録される情報の説明図である。 データ依存関係履歴情報の説明図である。 鍵特定手段の処理の概要を示すフロー図である。 データ依存関係履歴情報更新手続きで、依存データ情報の和集合が変数Dに格納されるまでの処理フロー図である。 データ依存関係履歴情報更新手続きで、生成されたlastFlowのコピー情報が変数newFlowに格納される以降の処理フロー図である。 データ依存関係確認手続きの処理フロー図である。 鍵格納バッファ候補群抽出手続きの処理フロー図である。 依存アドレス抽出手続きの処理フロー図である。 この発明の実施の形態2に係るマルウェア解析システムを示す構成図である。
実施の形態1.
図1はこの発明に係るマルウェア解析システムを示す装置の構成図である。
本システムは、メッセージ送信装置101、マルウェア実行装置104、実行トレース解析装置108、及び通信記録蓄積手段116で構成されている。メッセージ送信装置101とマルウェア実行装置104とはネットワーク118で接続されている。その他の装置間および通信記録蓄積手段116との間の接続は、情報の入出力が可能であれば自由に行われる。
次にマルウェア解析システムを構成する各装置について説明する。
メッセージ送信装置101は、マルウェア実行装置104上で動作する解析対象マルウェア105に入力するためのメッセージを生成・送信する装置であり、メッセージ送信手段102とメッセージ生成手段103で構成される。メッセージ送信手段102は、メッセージ生成手段103によって生成されたメッセージをネットワーク118を通じてマルウェア実行装置104に送信する手段である。メッセージ生成手段103は通信記録蓄積手段116に記録された通信記録をもとに、マルウェア実行装置104に送信すべきメッセージを生成する手段である。
マルウェア実行装置104は、解析対象マルウェア105を実行し、その動作履歴である実行トレースを記録する装置であり、マルウェア実行手段106と実行トレース記録手段107で構成される。マルウェア実行手段106は、解析対象マルウェア105を1マシン語単位で実行するためのエミュレータである。実行トレース記録手段107はマルウェア実行手段106上で解析対象マルウェア105が1マシン語命令を実行するたびに、実行トレースを記録していく。
実行トレース解析装置108は、実行トレース記録手段107に記録された実行トレースを解析し、解析対象マルウェア105が利用している暗号化鍵を特定した上で、通信記録蓄積手段116に記録されている解析対象マルウェア105からの上り通信情報を復号する装置であり、通信記録入力手段109、復号化関数特定手段110、実行トレース入力手段111、鍵特定手段112、通信記録復号手段113、解析結果出力手段114、復号結果判定手段115で構成されている。
通信記録入力手段109は、通信記録蓄積手段116から解析対象とする通信記録情報を取得する手段である。実行トレース入力手段111は、マルウェア実行装置104の実行トレース記録手段107からマルウェア実行手段106が1マシン語単位で実行した解析対象マルウェア105の実行トレース情報を受け取る手段である。復号化関数特定手段110は、実行トレース入力手段111が受け取った解析対象マルウェア105の実行トレース情報から解析対象マルウェア105内の復号化関数のアドレスおよび復号化関数アルゴリズムを特定する手段である。鍵特定手段112は、受け取った実行トレース情報から解析対象マルウェア105が復号に使用した暗号化鍵を特定する手段である。通信記録復号手段113は鍵特定手段112によって特定された暗号化鍵と、復号化関数特定手段110が特定した復号化関数アルゴリズムを用いて通信記録入力手段109によって通信記録蓄積手段116より取得した解析対象マルウェア105からの上り通信情報を復号する手段である。復号結果判定手段115は通信記録復号手段113が復号した結果と復号前の通信情報記録とを比較し復号に成功したかどうかを判定する手段である。解析結果出力手段114は解析結果を利用者117に出力するための手段である。
次に動作について説明する。
本システムでは、組織内ネットワーク上の各端末とインターネットとのHTTP(Hyper Text Transfer Protocol)通信情報が通信記録蓄積手段116に記録されている。通信記録蓄積手段116に記録される通信情報を図3に示す。図3に示す通り、本システムでは通信記録蓄積手段116には、発信元のIPアドレスであるsrc ip301、宛先URL302、上りデータ303、および下りデータ304が、発信元から送信されたリクエスト単位で記録される。
組織内ネットワーク上のある情報処理端末でマルウェアプログラムが発見されたとする。利用者117は、同マルウェアプログラムを解析対象マルウェア105としてマルウェア実行装置104に格納し、さらにシステム実行時のパラメータとして感染が確認された端末のIPアドレスをメッセージ送信装置101および実行トレース解析装置108の図示しないメモリに入力した上で本システムでの解析を開始する。
解析対象マルウェア105のプログラムはマルウェア実行手段106によって起動される。マルウェア実行手段106は、解析対象マルウェア105をマシン語単位でステップ実行する。このような手段は既存の技術、例えばデバッガのステップ実行や、あるいは非特許文献1;[http://wiki.qemu.org/Main_Page]に示されるQEMU等のCPUエミュレータを利用することで構成可能であり、その実現方式の詳細については説明を省く。
マルウェア実行手段106で解析対象マルウェア105のプログラム内のマシン語が1ステップ実行されると、その記録が実行トレース記録手段107によって実行トレース情報として記録される。記録される実行トレース情報は図2に示すとおり、実行アドレス201、実行命令202、参照したメモリアドレスおよび格納されていた値203、書き込みが行われたメモリアドレスおよび書き込まれた値204、実行直前のレジスタ値205で構成される。
マルウェア実行手段106上で解析対象マルウェア105のプログラムが起動すると、解析対象マルウェア105のプログラムはネットワーク118を通じてインターネット上にある司令サーバとの接続を試みる。メッセージ送信装置101は、解析対象マルウェア105からはHTTPプロキシサーバとして見えるよう構成されているため、解析対象マルウェア105のプログラムはメッセージ送信装置101に対してHTTPリクエストを送信する。
HTTPリクエストを受信したメッセージ送信装置101内では、メッセージ生成手段103が、解析対象マルウェア105のプログラムからのHTTPリクエストに含まれる宛先URLおよび、あらかじめ利用者117が入力しておいた感染が確認された端末のIPアドレスをキーとして通信記録蓄積手段116を検索し、該当する通信記録の中から一つを選び、その下りデータ304を取り出してメッセージ送信手段102に渡す。メッセージ送信手段102はメッセージ生成手段103から渡されたメッセージを、ネットワーク118を通じて解析対象マルウェア105に返す。
このような通信を数回程度実行後、マルウェア実行手段106は解析対象マルウェア105のプログラム実行を停止し、それまでに実行トレース記録手段107によって記録された実行トレース情報を実行トレース解析装置108に送信する。
実行トレース解析装置108内では、実行トレース入力手段111によって、マルウェア実行装置104から送信された実行トレース記録手段107によって記録された実行トレース情報が受信され、この実行トレース情報は初めに復号化関数特定手段110に入力される。復号化関数特定手段110では、実行トレース情報をもとに、復号化関数のアドレスと、同関数が使用する復号アルゴリズム名を特定する。このような技術は、例えば非特許文献2;[Z. Wang, X. Jiang, W. Cui, and X. Wang. ReFormat: Automatic reverse engineering of encrypted messages. In European Symposium on Research in Computer Security, Saint-Malo, France, September 2009.]や非特許文献3;[Felix Grobert, Carsten Willems, and Thorsten Holz Automated Identification of Cryptographic Primitives in Binary Programs,14th International Symposium on Recent Advances in Intrusion Detection (RAID)]記載の技術を用いることで実現が可能である。
復号化関数特定手段110による復号化関数のアドレスと、使用している復号アルゴリズム名を特定後、実行トレース情報は鍵特定手段112に入力され、復号に使用された暗号化鍵の特定が行われる。鍵特定手段112の動作について図4〜図10を用いて詳しく説明する。
はじめに鍵特定手段112の処理の概要について図5を用いて説明する。鍵特定手段112は、入力された実行トレース情報を走査し、呼び出し引数によるネットワーク受信関数の呼び出しまで実行トレース情報をスキップする(S501)。ネットワーク受信関数は、OS(operating system )が標準で提供するものであり、呼び出しに必要な引数は明らかである。そこで、ネットワーク受信関数に渡された引数のうち、受信バッファのアドレス、および受信バッファ長を、関数呼び出しの直前に記録されたPUSH等のスタック操作命令の実行トレース情報から求め、それぞれ鍵特定手段112のメモリの変数Pmsg、Lmsg領域に格納しておく(S502)。
次に、ネットワーク受信関数実行後のアドレスまで実行トレース情報をスキップし、その時の実行トレース行を鍵特定手段112の変数curに格納する(S503)。また鍵特定手段112のメモリの変数Pおよび変数Flowsを初期化する(S504、S505)。
ここで、メモリPおよびメモリFlowsに格納されるデータについて説明する。はじめにメモリFlowsに格納される情報について説明する。Flowsには、解析対象マルウェア105の解析が進むにつれデータ依存関係履歴情報と呼ばれる情報が格納されていく。データ依存関係履歴情報とは、実行トレース上のある命令が実行された時点で、各レジスタ/メモリと、そこに書き込まれているデータが依存しているデータについて記録したものである。ここで、依存しているデータとは、あるデータの値を計算する際に、直接、あるいはレジスタを通じて間接に参照されたメモリ上のデータを指す。
データ依存関係履歴情報は図4に示されるような情報であり、実行トレース行番号401、実行アドレス402、依存関係情報403で構成されている。依存関係情報403はさらにデータ格納場所404、依存データ情報405で構成されている。依存データ情報405はさらにアドレス406、および有効実行トレース行番号407で構成されている。
有効実行トレース行番号407とは、実行トレース行番号401で示される命令が実行されたときに、依存データ情報405に記載されたアドレス406に格納されていた値が、実行トレースのどの時点で参照されたのかを示す実行トレース行番号を指す。これは、同一メモリアドレスに複数回データ書き込みがあった場合、どの時点で書き込まれたデータかを追跡するために必要な情報である。なお、図4において、各情報名に括弧書きで記載されている文字列は、後の動作説明で用いる際の各情報名の略称である。
次にメモリPに格納される情報・変数Pについて説明する。メモリPには解析対象マルウェア105が受信したメッセージを復号する際に、メッセージ内のデータとの間でビット演算/算術演算を行ったデータ群が依存データ情報(図4 405記載)の形式で格納される。このようなメッセージ内のデータとの間でビット演算や算術演算を行ったデータは、暗号化鍵、あるいは拡大暗号化鍵等、暗号化鍵から派生したデータである可能性があるため、これらを暗号化鍵の候補として記録していくのが目的である。
最終的に、メモリPに記録された各データが依存しているデータをメモリFlowsの変数Flowsを用いてさかのぼっていく事で暗号化鍵を特定するのが鍵特定手段112の目的となる。
再び図5に戻って動作を説明する。本解析は鍵特定手段112のcurが復号関数の終端に達するまでループで実行される(S506)。ループ内ではまず、現在curが示している実行トレース行の内容に従い、鍵特定手段112の処理プログラムのデータ依存関係履歴情報更新手続きを呼び出し、データ依存関係履歴情報が更新される(S507)。次に、curで実行した命令がビット演算/算術演算だった場合(S508)、同演算で参照されたレジスタあるいはメモリに、受信したメッセージに依存したデータが含まれているか、鍵特定手段112の処理プログラムのデータ依存関係確認手続きを呼び出して確認する(S509)。もし受信メッセージに依存したデータが参照されていたならば(S510)、その依存しているデータについて、Pに追加する(S511)。その後curを次の実行トレース行にうつし、ループの先頭S506に戻る(S512)。
S506での判定が真、すなわちcurが復号関数の終端になるとS513にて鍵特定手段112の処理プログラムの鍵格納バッファ候補群抽出手続きが呼び出され、Pに含まれているデータのうち、暗号化鍵の候補となるメモリ領域が抽出され、鍵候補バッファ集合の変数Kに代入される。最終的に本手段の処理結果として鍵候補バッファ集合の変数Kが出力される(S514)。
次に、鍵特定手段112の処理プログラムのデータ依存関係履歴情報更新手続き処理について図6および図7を用いて説明する。本手続きは、解析対象マルウェア105の実行トレース情報trace、および現在のデータ依存関係履歴情報Fを入力として受け取り、実行トレース情報traceの内容に従ってデータ依存関係履歴情報Fを更新し、更新後のデータ依存関係履歴情報Fを戻し、記録する。
まず、S601〜S604で変数の初期化を行う。S601ではFlowsの中から実行トレース情報traceの直前(つまり実行トレース行番号が現在の実行トレース情報traceよりも1少ない)の実行結果として算出された依存関係情報を取り出し、変数lastFlowに格納する。次に、traceに記録されている命令を解析し、命令のソースオペランドおよびディスティネーションオペランドを、変数Op_s、Op_dに格納する(S602),(S603)。Op_sは命令によっては存在しない場合もあるが、その場合は空値が代入される。最後に、依存データ情報(図4 405参照)の集合Dを空集合に初期化する(S604)。
初期化終了後、実際の処理が行われる。最初にS605にてOp_sが空値もしくはOp_sが即値(イミディエート)かどうか判定される。判定結果が真だったならば、図7 S701まで処理がスキップされる。S605の判定が偽だった場合、Op_sがレジスタを指しているかどうかが判定される(S606)。レジスタだった場合、S612において、変数DにlastFlow[ store = Op_s ]が代入される。ここで、表記 xxx[ yyy = zzz ]は、依存関係情報xxxの中から情報名yyyがzzzに一致するものを全て選び、その依存データ情報(図4 405)を集合として取り出す処理を実行することを表している。
S606の判定が偽だった場合、Op_sはメモリ参照を表している。インテル社の80386(またはその後継)では、メモリ参照はベース、インデックス、スケール、ディスプレースメントの4パラメータを組み合わせてメモリアドレスが決定される。ベース、インデックスはレジスタ名を指定する。スケールは定数であり、ディスプレースメントはメモリアドレスで指定される。スケールを除いた3パラメータと、実際に参照されたメモリアドレスがS607〜S610で対応する変数(base, index, disp, addr)に格納される。
次に、S611において、base、index、dispに対し、対応する依存データ情報が取り出され、それらの和集合が依存データ情報の集合Dに格納される。さらに変数である集合Dには新たな依存データ情報として、address=addr、d_line=traceの行番号が追加される。
その後の処理について図7を用いて説明する。S701で新たな依存関係情報として、lastFlowをコピーした情報が生成され変数newFlowに格納される。その後の処理は、Op_dの種別によって分岐する。Op_dがレジスタだった場合(S702 yesへの分岐)、変数destにはOp_dの示すレジスタがそのまま代入される(S707)。そうではなかった場合(S702 noへの分岐)、Op_dはメモリ参照であるため、Op_dが参照するメモリアドレスが計算され、destに代入される(S703)。
次に、S704で現在解析対象としている実行トレース情報traceの命令がmov命令かどうかが検査される。mov命令であった場合、依存データ情報の集合の変数Dの内容がnewFlow[ store = dest ]に代入される(S708)。この操作は、newFlowの中でstore = destに該当する依存データ情報を取り除き、かわりに集合の変数Dを代入する操作となる。
S704の判定が偽だった場合、newFlow[ store = dest ]は、現在のnewFlow[ store = dest ]と変数Dとの和集合で更新される(S705)。最後にS706で、Fに(line = trace行番号、exec = trace内の命令アドレス、依存関係情報 = newFlow)で構成されるエントリを追加し、現在のデータ依存関係履歴情報Fを返して処理が終了する。
次に、データ依存関係確認手続きの詳細について図8を用いながら説明する。本手続きは、引数として与えられたデータが受信バッファに依存するかどうかを判定する。
S801で、引数として与えられた情報が各変数に格納される。S802でFSからline=trとなる履歴を取得し現在のデータ依存関係履歴情報Fに代入(S802)し、さらに現在のデータ依存関係履歴情報F[store = s]を依存データ情報の変数である集合Dに代入する(S803)。次にS804〜S810で、集合D内の各依存データ情報に対し、S805〜S809で示す処理が行われる。S805、S806で、エントリのaddress(図4 406)、およびd_line(図4 407)が変数m、iに代入される。もしmがPmsgで示される受信バッファ内を指していたならば(S807 yes)、本手続きは真を返して終了する。
さもなければ、mに格納されているデータが依存しているメモリが受信バッファに依存しているかどうかを再帰的に検査する(S808)。結果が真であれば(S809 yes)、真を返して終了するが、そうでない場合には、次のエントリに対して同様な検査を行う。
最終的に、依存データ情報の変数である集合D内の全てのエントリが受信バッファに依存していない場合、FALSEを返して処理が終了する。
次に、図9を用いて鍵格納バッファ候補群抽出手続きの詳細について説明する。本手続きは、引数として与えられた依存データ情報の依存関係を追跡し、鍵の候補とみなすバッファ領域の集合を返す。
まず初期化処理としてS901で引数として与えられた情報が各変数に代入され、鍵候補バッファ集合Kが空集合に初期化される(S902)。
次にS903で依存データ情報の集合P内の各要素(address, d_line)に対し、有効実行トレース行番号(d_line)に該当する実行アドレス(exec)を、複数の依存データと複数のマルウェア実行トレース情報との対応が記録されたデータ依存関係履歴情報の集合FSを参照して求め、3要素のタプル(adderss, d_line, exec)とする。
次に、S904で生成された3要素のタプル集合を実行アドレスexecの値が近い要素同士をまとめ、グループを作成する。近いかどうかの判定は事前に定義された閾値T1によって判定される。あるタプルがあるグループに所属するかどうかの判定は、そのグループ内で、対象タプルに最も実行アドレスexec値が近いものを選択し、対象タプルの実行アドレスexecとの差がT1以内だった場合、当該グループに所属すると判定する。すでにあるどのグループにも所属しない場合には、新たなグループが生成される。
次に生成されたグループ(G1〜GN)をループ(S905)によって取り出し、S906〜S912で示される処理が実行される。S906〜S912は、選択されたグループGiの各要素(address, d_line, exec)を順に取り出し、S907〜S911の処理を実行するためのループである。S907では、まずaddress、d_lineで示されるメモリが依存しているアドレス群(アドレスと有効実行トレース行番号のタプルの集合)を依存アドレス抽出手続きを用いて取り出しAに格納する。次に、S908において、取り出されたアドレス群と、実行トレース情報を用いてメモリマップを作成し、マップ上連続した領域をメモリグループとして取り出す。メモリマップは、(アドレス、値)からなる集合であり、Aに格納されているアドレスと有効実行トレース行番号をキーに実行トレース情報中の参照メモリアドレス/値を取得することで生成する。生成されたグループMm(m=1〜M)それぞれが鍵の格納バッファの候補となる。そこで、各バッファの領域に格納されているデータを、鍵候補バッファ集合Kに登録する(S910)。
最後に、依存アドレス抽出手続き(図9 S907参照)の詳細について図10を参照しながら説明する。本手続きは、与えられたアドレス上のデータが依存しているアドレスを辿っていき、他のどこにも依存していないアドレスの集合を返す。
はじめにS1001にて、引数として入力された情報を変数に代入する。次にS1002にて、指定された実行トレース行番号に対応する依存関係情報をデータ依存関係履歴情報の集合FSから取り出し現在のデータ依存関係履歴情報Fに代入し、F[ store = s ]を依存データ情報の変数である集合Dに代入する(S1003)。もし、集合Dが空集合だったならば(S1004 yes)、与えられたアドレスsは他のどこにも依存していないアドレスであり、集合Aに(s, trace)を追加して(S1011)処理を終了させる。
集合Dが空集合ではなかった場合、S1005〜S1010のループを実行することで、集合D内の各エントリに対し、依存アドレス抽出手続きを再帰的に呼び出すことで、集合Aに、他のどこにも依存していないアドレスの集合を作成する。全てのエントリに対して依存アドレス抽出手続きが完了後、生成された集合Aを返して処理が終了する。
以上をもって、鍵特定手段の動作についての説明を終了し、再び全体の動作の説明を再開する。
鍵特定手段112での処理の結果生成された鍵の候補のそれぞれを用いて、通信記録復号手段113において復号が試みられる。通信記録復号手段113は通信記録蓄積手段に蓄積された通信記録のうち、感染端末IPアドレス、および宛先URLに合致するものに含まれている上りデータ情報(図3 303)を取得し、それぞれに対して鍵の候補と特定したアルゴリズムを用いて復号を行う。復号の結果と、元の上りデータを入力として復号結果判定手段115が呼び出される。
復号結果判定手段115では、元のデータの復号が成功したかどうか、データのランダム性を測定することで判定する。判定は、元のデータ、復号後のデータを各々共通の圧縮アルゴリズムを用いて圧縮し、復号後のデータを圧縮した場合の圧縮後データサイズが、復号前のデータを圧縮した場合の圧縮後データサイズと比較して顕著に(例えば10%)以上小さくなった場合に、復号に成功したとみなす。
復号結果判定手段115により、復号に成功したと判定された場合には、復号結果とその時の鍵を解析結果出力手段を通じて利用者に通知し、本システムの動作が終了する。
なお、本形態では通信記録蓄積手段116に格納される通信をHTTPに絞って説明したが、他の通信プロトコルの通信記録を対象として解析することももちろん可能である。
以上のように、実行トレース情報を記録しながら解析対象マルウェアに、過去に蓄積されたメッセージを復号させ、実行トレースを解析して鍵を特定することで、過去にアップロードされた情報を復号し、内容を取り出すことができるという効果がある。
さらに、鍵の候補が複数現れた場合に、復号前と復号後のデータのランダム性を比較することで、利用者が目視で確認することなく、正しい鍵を選択できるという効果がある。
さらに、鍵格納バッファ候補群抽出手続きにおいて、鍵の候補を特定する際に、参照したマシン語命令アドレスが近いかどうかを基準にアドレスをグループ分けすることで、連続したメモリ上に鍵データとは別のデータが並んでいたとしても、鍵データの一部として取り出されることを防ぐ効果がある。
さらに、鍵候補を抽出する際に、受信バッファ由来のデータとビット演算/算術演算されるデータのアドレスに絞り込んで解析を行うことで、抽出される鍵候補の数を削減することができるという効果がある。
実施の形態2.
以上の実施の形態1では、復号結果判定手段において、圧縮率の変化を用いるものであるが、本実施の形態では、復号結果後のデータが既知のファイルフォーマットに一致するかを条件として判定する。ファイルフォーマットに関する情報はフォーマット定義蓄積手段119に保存されている。
以上のように、復号結果の判定に既知のファイルフォーマットと一致するかという条件を用いることで、復号後のデータが圧縮されていたとしても、復号の成否を正しく判定することができるという効果がある。
この発明に係るマルウェア解析システムは、例えば、インターネットに接続された組織内ネットワーク上の情報処理端末に適用され、情報処理端末より漏洩したマルウェアに感染の情報を暗号化鍵を用いて特定でき、マルウェア感染の漏洩情報対策への利用可能性を有する。
101;メッセージ送信装置、102;メッセージ送信手段、103;メッセージ生成手段、104;マルウェア実行装置、105;解析対象マルウェア、106;マルウェア実行手段、107;実行トレース記録手段、108;実行トレース解析装置、109;通信記録入力手段、110;復号化関数特定手段、111;実行トレース入力手段、112;鍵特定手段、113;通信記録復号手段、114;解析結果出力手段、115;復号結果判定手段、116;通信記録蓄積手段、117;利用者、118;ネットワーク、119;フォーマット定義蓄積手段。

Claims (5)

  1. インターネットに接続され、マルウェアに感染された情報処理端末から、外部に漏洩された情報の特定に必要なマルウェアの暗号化鍵を特定するマルウェア解析システムであって、
    情報処理端末とインターネットとの間の通信情報が記録された通信記録蓄積手段と、
    感染されたマルウェアを記憶し、このマルウェアのプログラムを実行するマルウェア実行手段と、マルウェア実行手段上でマルウェアがマシン語命令を実行するたびに、実行トレース情報を記録する実行トレース記録手段を有するマルウェア実行装置と、
    マルウェアからの接続要求に応じて、通信記録蓄積手段の過去の通信記録からメッセージを選択してマルウェアに返すメッセージ送信装置と、
    実行トレース記録手段からの実行トレース情報を走査し、呼び出し引数によるネットワーク受信関数の呼び出し、引数のうち、受信バッファのアドレス、および受信バッファ長を求め、変数Pmsg、Lmsg領域に格納し、
    マルウェアプログラム実行中のデータ計算に参照されるデータを依存データとし、その依存データとマルウェア実行トレース情報との対応を記録するデータ依存関係履歴情報をマルウェアプログラムの実行により更新し、
    マルウェアプログラムの実行されたデータがビット演算または算術演算の場合は、そのデータが依存したデータを依存データ情報に追加する処理をマルウェアプログラムの実行トレース行終端まで実施し、
    データが追加された依存データ情報を所定の基準でグループ分けして鍵格納バッファ候補群を抽出し出力する鍵特定手段と、
    鍵特定手段により暗号化鍵の候補が複数抽出された場合に、抽出された暗号化鍵の候補によりデータを復号し、復号前と復号後のデータを比較し、復号に成功した暗号化鍵を選択する復号結果判定手段を有する実行トレース解析装置とを備えたマルウェア解析システム。
  2. 鍵特定手段は、鍵格納バッファ候補群抽出処理におけるデータが追加された依存データ情報のグループ分けは、依存データ情報の有効実行トレース行番号に該当するマルウェアプログラムのマシン語命令アドレスが近いか否かを基準にアドレスをグループ分けし、依存データ情報をグループ分けすることを特徴とする請求項1に記載のマルウェア解析システム。
  3. 複数の依存データと複数のマルウェア実行トレース情報との対応が記録されたデータ依存関係履歴情報の集合を備え、
    鍵特定手段は、
    実行トレース記録手段からの実行トレース情報を走査し、呼び出し引数によるネットワーク受信関数の呼び出し引数のうち、受信バッファのアドレス、および受信バッファ長を求め、変数Pmsg、Lmsg領域に格納し、
    マルウェアプログラム実行中の実行トレース行番号に対応するデータ依存関係情報をデータ依存関係履歴情報の集合から取り出し現在のデータ依存関係履歴情報とし、現在のデータ依存関係履歴情報の依存データ情報を集合Dに代入する処理をマルウェアプログラムの実行トレース行終端まで実施し、集合Dが空集合であれば、他のどこにも依存していないアドレスであるとして受信バッファのアドレスの集合を出力し、
    集合Dが空集合でない場合、集合D内の各エントリに対し、依存アドレス抽出手続き処理をし、他のどこにも依存していないアドレスの集合を作成し、出力することを特徴とする請求項1に記載のマルウェア解析システム。
  4. 復号結果判定手段は、
    鍵特定手段により抽出された暗号化鍵の候補によりデータを復号し、
    元のデータ、復号後のデータを各々共通の圧縮アルゴリズムを用いて圧縮し、復号後のデータを圧縮した場合の圧縮後データサイズが、復号前のデータを圧縮した場合の圧縮後データサイズと比較して復号に成功した暗号化鍵を特定する構成にされたことを特徴とする請求項1に記載のマルウェア解析システム。
  5. ファイルフォーマットに関する情報が保存されたフォーマット定義蓄積手段を備え、
    復号結果判定手段は、鍵特定手段により抽出された暗号化鍵の候補によりデータを復号し、復号結果後のデータがフォーマット定義蓄積手段に保存されたファイルフォーマットに一致するかを条件として暗号化鍵を特定する構成にされたことを特徴とする請求項1に記載のマルウェア解析システム。
JP2011263186A 2011-12-01 2011-12-01 マルウェア解析システム Expired - Fee Related JP5839967B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011263186A JP5839967B2 (ja) 2011-12-01 2011-12-01 マルウェア解析システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011263186A JP5839967B2 (ja) 2011-12-01 2011-12-01 マルウェア解析システム

Publications (2)

Publication Number Publication Date
JP2013114637A true JP2013114637A (ja) 2013-06-10
JP5839967B2 JP5839967B2 (ja) 2016-01-06

Family

ID=48710090

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011263186A Expired - Fee Related JP5839967B2 (ja) 2011-12-01 2011-12-01 マルウェア解析システム

Country Status (1)

Country Link
JP (1) JP5839967B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016030927A1 (ja) * 2014-08-28 2016-03-03 三菱電機株式会社 プロセス解析装置、プロセス解析方法、及びプロセス解析プログラム
WO2016047115A1 (ja) * 2014-09-25 2016-03-31 日本電気株式会社 解析システム、解析装置、解析方法、及び、解析プログラムが記録された記憶媒体
WO2016047111A1 (ja) * 2014-09-25 2016-03-31 日本電気株式会社 解析システム、解析装置、解析方法、及び、解析プログラムが記録された記憶媒体
WO2016047110A1 (ja) * 2014-09-25 2016-03-31 日本電気株式会社 解析システム、解析装置、解析方法、及び、解析プログラムが記録された記録媒体
WO2016125205A1 (ja) * 2015-02-06 2016-08-11 三菱電機株式会社 暗号ブロック特定装置、暗号ブロック特定方法、及び暗号ブロック特定プログラム
CN108268772A (zh) * 2016-12-30 2018-07-10 武汉安天信息技术有限责任公司 恶意样本的筛选方法及系统
JP2018169792A (ja) * 2017-03-30 2018-11-01 日本電気株式会社 マルウェア解析方法、マルウェア解析装置およびマルウェア解析システム
JP2020154796A (ja) * 2019-03-20 2020-09-24 日本電気株式会社 マルウェア解析装置、マルウェア解析方法、及び、プログラム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018178028A1 (en) 2017-03-28 2018-10-04 British Telecommunications Public Limited Company Initialisation vector identification for encrypted malware traffic detection
US12008102B2 (en) 2018-09-12 2024-06-11 British Telecommunications Public Limited Company Encryption key seed determination
EP3623982B1 (en) 2018-09-12 2021-05-19 British Telecommunications public limited company Ransomware remediation
EP3623980B1 (en) 2018-09-12 2021-04-28 British Telecommunications public limited company Ransomware encryption algorithm determination

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005527873A (ja) * 2001-09-14 2005-09-15 コンピュータ アソシエイツ シンク,インコーポレイテッド ウイルス検知システム
JP2009181335A (ja) * 2008-01-30 2009-08-13 Nippon Telegr & Teleph Corp <Ntt> 解析システム、解析方法および解析プログラム
JP2010015513A (ja) * 2008-07-07 2010-01-21 Nippon Telegr & Teleph Corp <Ntt> マルウェア検知システム、マルウェア検知方法及びマルウェア検知プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005527873A (ja) * 2001-09-14 2005-09-15 コンピュータ アソシエイツ シンク,インコーポレイテッド ウイルス検知システム
JP2009181335A (ja) * 2008-01-30 2009-08-13 Nippon Telegr & Teleph Corp <Ntt> 解析システム、解析方法および解析プログラム
JP2010015513A (ja) * 2008-07-07 2010-01-21 Nippon Telegr & Teleph Corp <Ntt> マルウェア検知システム、マルウェア検知方法及びマルウェア検知プログラム

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2016030927A1 (ja) * 2014-08-28 2017-04-27 三菱電機株式会社 プロセス解析装置、プロセス解析方法、及びプロセス解析プログラム
US10325094B2 (en) 2014-08-28 2019-06-18 Mitsubishi Electric Corporation Process analysis apparatus, process analysis method, and process analysis for determining input/output relation of a block of execution trace to detect potential malware
WO2016030927A1 (ja) * 2014-08-28 2016-03-03 三菱電機株式会社 プロセス解析装置、プロセス解析方法、及びプロセス解析プログラム
CN106664201A (zh) * 2014-08-28 2017-05-10 三菱电机株式会社 进程解析装置、进程解析方法和进程解析程序
JPWO2016047115A1 (ja) * 2014-09-25 2017-07-20 日本電気株式会社 解析システム、解析方法、及び、解析プログラム
WO2016047115A1 (ja) * 2014-09-25 2016-03-31 日本電気株式会社 解析システム、解析装置、解析方法、及び、解析プログラムが記録された記憶媒体
WO2016047110A1 (ja) * 2014-09-25 2016-03-31 日本電気株式会社 解析システム、解析装置、解析方法、及び、解析プログラムが記録された記録媒体
US10554383B2 (en) 2014-09-25 2020-02-04 Nec Corporation Analysis system, analysis method, and storage medium
JPWO2016047111A1 (ja) * 2014-09-25 2017-07-06 日本電気株式会社 解析システム、解析装置、解析方法、及び、解析プログラムが記録された記憶媒体
JPWO2016047110A1 (ja) * 2014-09-25 2017-07-06 日本電気株式会社 解析システム、解析装置、解析方法、及び、解析プログラムが記録された記録媒体
WO2016047111A1 (ja) * 2014-09-25 2016-03-31 日本電気株式会社 解析システム、解析装置、解析方法、及び、解析プログラムが記録された記憶媒体
US10536261B2 (en) 2014-09-25 2020-01-14 Nec Corporation Analysis system, analysis method, and storage medium
US10931468B2 (en) 2014-09-25 2021-02-23 Nec Corporation Analysis system, analysis method, and storage medium
WO2016125205A1 (ja) * 2015-02-06 2016-08-11 三菱電機株式会社 暗号ブロック特定装置、暗号ブロック特定方法、及び暗号ブロック特定プログラム
US10050798B2 (en) 2015-02-06 2018-08-14 Mitsubishi Electric Corporation Cryptographic block identification apparatus, cryptographic block identification method, and non-transitory computer readable recording medium storing cryptographic block identification program
JPWO2016125205A1 (ja) * 2015-02-06 2017-06-08 三菱電機株式会社 暗号ブロック特定装置、暗号ブロック特定方法、及び暗号ブロック特定プログラム
CN108268772A (zh) * 2016-12-30 2018-07-10 武汉安天信息技术有限责任公司 恶意样本的筛选方法及系统
CN108268772B (zh) * 2016-12-30 2021-10-22 武汉安天信息技术有限责任公司 恶意样本的筛选方法及系统
JP2018169792A (ja) * 2017-03-30 2018-11-01 日本電気株式会社 マルウェア解析方法、マルウェア解析装置およびマルウェア解析システム
US11134089B2 (en) 2017-03-30 2021-09-28 Nec Corporation Malware analysis method, malware analysis device, and malware analysis system
JP2020154796A (ja) * 2019-03-20 2020-09-24 日本電気株式会社 マルウェア解析装置、マルウェア解析方法、及び、プログラム
JP7188208B2 (ja) 2019-03-20 2022-12-13 日本電気株式会社 マルウェア解析装置、マルウェア解析方法、及び、プログラム

Also Published As

Publication number Publication date
JP5839967B2 (ja) 2016-01-06

Similar Documents

Publication Publication Date Title
JP5839967B2 (ja) マルウェア解析システム
JP2018054765A (ja) データ処理装置、データ処理方法、およびプログラム
RU2620712C2 (ru) Устройство виртуальной машины, имеющее управляемую ключом обфускацию, и способ
JPWO2010134325A1 (ja) 動的データフロー追跡方法、動的データフロー追跡プログラム、動的データフロー追跡装置
US9160524B2 (en) Method and system for recovering cryptographic operations and/or secrets
CN105074712A (zh) 代码处理装置和程序
CA3026555A1 (en) Process control device, process control method, and recording medium having process control program recorded therein
JP2013061843A (ja) コンピュータ・ソフトウエア解析システムならびにクライアント・コンピュータ,その動作制御方法およびその動作プログラム
JP2015106914A (ja) マルウェア通信解析装置、及びマルウェア通信解析方法
Akram et al. DroidMD: an efficient and scalable android malware detection approach at source code level
Hamza et al. A survey and taxonomy of program analysis for IoT platforms
Borzacchiello et al. Reconstructing C2 servers for remote access trojans with symbolic execution
Zhang et al. Android encryption database forensic analysis based on static analysis
JP6395986B2 (ja) 鍵生成源特定装置、鍵生成源特定方法及び鍵生成源特定プログラム
CN109343971B (zh) 一种基于缓存技术的浏览器数据传递方法及装置
JP6258189B2 (ja) 特定装置、特定方法および特定プログラム
JP6246377B2 (ja) プロセス解析装置、プロセス解析方法、及びプロセス解析プログラム
CN114629644A (zh) 数据加密方法、存储介质、计算机程序产品和电子设备
CN109657480A (zh) 一种文件处理方法、设备及计算机可读存储介质
JP2018121262A (ja) セキュリティ監視サーバ、セキュリティ監視方法、プログラム
TW201629767A (zh) 爲符合準則之資料決定保護性措施之技術
JP6752347B1 (ja) 情報処理装置、コンピュータプログラム及び情報処理方法
CN114221816B (zh) 流量检测方法、装置、设备及存储介质
Gao et al. Towards Micro-architectural Leakage Simulators: Reverse Engineering Micro-architectural Leakage Features Is Practical
JP2017033255A (ja) パラメータ特定プログラム、パラメータ特定方法およびパラメータ特定装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141014

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150804

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20150910

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150917

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151013

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151110

R150 Certificate of patent or registration of utility model

Ref document number: 5839967

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees