JP2013084064A - Analyzer, analysis method, and analysis program - Google Patents

Analyzer, analysis method, and analysis program Download PDF

Info

Publication number
JP2013084064A
JP2013084064A JP2011222241A JP2011222241A JP2013084064A JP 2013084064 A JP2013084064 A JP 2013084064A JP 2011222241 A JP2011222241 A JP 2011222241A JP 2011222241 A JP2011222241 A JP 2011222241A JP 2013084064 A JP2013084064 A JP 2013084064A
Authority
JP
Japan
Prior art keywords
obfuscation
blocks
execution
file
unit
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
JP2011222241A
Other languages
Japanese (ja)
Other versions
JP5687593B2 (en
Inventor
Yuhei Kawakoya
裕平 川古谷
Makoto Iwamura
誠 岩村
Takeo Hario
剛男 針生
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2011222241A priority Critical patent/JP5687593B2/en
Publication of JP2013084064A publication Critical patent/JP2013084064A/en
Application granted granted Critical
Publication of JP5687593B2 publication Critical patent/JP5687593B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To improve identification accuracy of a packer.SOLUTION: After receiving an instruction to generate a signature from an input section 11, an analyzer 10 performs the steps of: acquiring a packed execution file stored in a packed execution file storage section 14b to run the packed execution file; and acquiring an execution trace of an unpacked code of the packed execution file. A signature generation section 13a then divides the execution trace into specific blocks and generates sets of code blocks. Subsequently, the analyzer 10 compares the sets of code blocks in the execution trace with one another, extracts a set of code blocks which appear in common, and generates a signature.

Description

本発明は、解析装置、解析方法および解析プログラムに関する。   The present invention relates to an analysis apparatus, an analysis method, and an analysis program.

従来、コンピュータウィルスやスパイウェア等の悪意のあるプログラムであるマルウェアのプログラムコードは、該マルウェアの動作や機能が解析されることを妨害するために難読化されていることが多い。かかる難読化は、一つの態様として、XORエンコードや特定の鍵を利用した暗号化等の可逆なアルゴリズムを利用するものが挙げられる。また、マルウェアのプログラムコードが難読化されることで、本来のプログラムコードであるオリジナルコードが隠蔽されることはパッキングと呼ばれ、該パッキングを実行するツールは総じてパッカーと呼ばれる。   Conventionally, malware program codes that are malicious programs such as computer viruses and spyware are often obfuscated in order to prevent analysis of the operation and function of the malware. One example of such obfuscation is one that uses a reversible algorithm such as XOR encoding or encryption using a specific key. Further, obfuscation of the program code of the malware and concealing the original code, which is the original program code, is called packing, and the tools that execute the packing are generally called packers.

ところで、パッキングされたマルウェアは、難読化されたプログラムコードをデータとして有するとともに、オリジナルコードを復元するための展開コードを有する。詳細には、パッキングされたマルウェアが実行された場合には、展開コードの部分が実行されて難読化されたプログラムコードが解かれ、オリジナルコードがメモリ上に展開される。続いて、オリジナルコードの展開が完了した場合には、展開されたオリジナルコードが実行される。   By the way, the packed malware has an obfuscated program code as data and an expanded code for restoring the original code. Specifically, when the packed malware is executed, the portion of the expanded code is executed, the obfuscated program code is solved, and the original code is expanded on the memory. Subsequently, when the development of the original code is completed, the developed original code is executed.

このようなパッキングされたマルウェアに利用されているパッカーの識別方法として、シグネチャを用いたマッチング処理を行って、検査対象の実行ファイルで利用されたパッカーを特定する手法が知られている。例えば、パッキングされた展開コード部分とデータ部分の特徴的なバイト列を手動により抽出し、抽出した特徴的なバイト列をシグネチャのパターンとして用いたマッチング処理を行い、検査対象の実行ファイルで利用されたパッカーを特定する。   As a method for identifying a packer used for such packed malware, a technique is known in which a matching process using a signature is performed to identify a packer used in an execution file to be inspected. For example, a characteristic byte sequence of the packed expanded code portion and data portion is manually extracted, matching processing is performed using the extracted characteristic byte sequence as a signature pattern, and used in the execution file to be inspected. Identify the packer.

“The new signature generation method based on an unpacking algorithm and procedure for a packer detection”,International Journal of Advanced Science and Technology, VOL.27, February 2011“The new signature generation method based on an unpacking algorithm and procedure for a packer detection”, International Journal of Advanced Science and Technology, VOL. 27, February 2011 “A Survey of Malware Detection Techniques”, Technical report. Department of Computer Science, Purdue University, February 2007“A Survey of Malware Detection Techniques”, Technical report. Department of Computer Science, Purdue University, February 2007

しかしながら、上述した従来技術では、パッキングされた展開コード部分とデータ部分の特徴的なバイト列を手動で抽出するので、コストが高く大量のシグネチャを作成するのが困難である。また、x86アーキテクチャの場合を例にとると正確な逆アセンブルを行うことが難しく精度の高いシグネチャを得ることが出来ない。結果、パッカーの識別精度向上を図ることが出来ないといった課題があった。   However, in the above-described conventional technique, the characteristic byte strings of the packed expanded code portion and the data portion are manually extracted. Therefore, it is difficult to create a large number of signatures at high cost. Further, taking the case of the x86 architecture as an example, it is difficult to perform accurate disassembly, and a highly accurate signature cannot be obtained. As a result, there was a problem that the packer identification accuracy could not be improved.

そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、パッカーの識別精度の向上を図ることを目的とする。   Accordingly, the present invention has been made to solve the above-described problems of the prior art, and an object thereof is to improve the packer identification accuracy.

上述した課題を解決し、目的を達成するため、本願に開示する解析装置は、複数の実行ファイルに対して複数の難読化ツールそれぞれを用いて難読化された各実行ファイルを動作させ、該各実行ファイルの動作結果として得られた各命令コードを複数のブロックごとに分割する分割部と、前記分割部によって分割された各ブロックのうち、同一の難読化ツールで難読化された実行ファイル間で共通して出現するブロックを抽出し、該抽出したブロックの特徴に関する情報を生成する生成部と、前記生成部によって生成されたブロックの特徴に関する情報を用いて、検査対象の実行ファイルの難読化に用いられた難読化ツールを特定する特定部と、を備える。   In order to solve the above-described problems and achieve the object, the analysis device disclosed in the present application operates each executable file obfuscated using each of a plurality of obfuscation tools with respect to a plurality of execution files. A division unit that divides each instruction code obtained as an operation result of the executable file into a plurality of blocks, and an executable file obfuscated by the same obfuscation tool among the blocks divided by the division unit Extracting blocks that appear in common, generating information about the extracted block features, and using information about the block features generated by the generating unit to obfuscate the executable file to be examined A specifying unit that specifies the obfuscation tool used.

本願に開示する解析装置は、パッカーの識別精度の向上を図ることができるという効果を奏する。   The analysis device disclosed in the present application has an effect of improving the packer identification accuracy.

図1は、実施例1に係る解析装置の構成を示すブロック図である。FIG. 1 is a block diagram illustrating the configuration of the analysis apparatus according to the first embodiment. 図2は、パッキング済みの実行ファイルを用いてシグネチャを生成する処理を説明する図である。FIG. 2 is a diagram illustrating a process of generating a signature using a packed execution file. 図3は、パッキング済みの実行ファイルとともに、パッキング前の実行ファイルを用いてシグネチャを生成する処理を説明する図である。FIG. 3 is a diagram for explaining processing for generating a signature using an execution file before packing together with an execution file that has been packed. 図4は、パッカーを識別する識別処理を説明する図である。FIG. 4 is a diagram illustrating an identification process for identifying a packer. 図5は、実施例1に係る解析装置のシグネチャ生成処理の手順を説明するためのフローチャートである。FIG. 5 is a flowchart for explaining the procedure of the signature generation process of the analysis apparatus according to the first embodiment. 図6は、実施例1に係る解析装置のパッカー識別処理の手順を説明するためのフローチャートである。FIG. 6 is a flowchart for explaining the procedure of the packer identification process of the analysis apparatus according to the first embodiment. 図7は、図7は、解析プログラムを実行するコンピュータを示す図である。FIG. 7 is a diagram illustrating a computer that executes an analysis program.

以下に添付図面を参照して、この発明に係る解析装置、解析方法および解析プログラムの実施例を詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。   Exemplary embodiments of an analysis apparatus, an analysis method, and an analysis program according to the present invention will be described below in detail with reference to the accompanying drawings. Note that the present invention is not limited to the embodiments.

[解析装置の構成]
まず、図1を用いて、実施例1に係る解析装置について説明する。図1は、実施例1に係る解析装置10の構成例を示すブロック図である。図1に示した解析装置10は、所定のプログラムを実行するコンピュータに実装される。
[Configuration of analyzer]
First, the analysis apparatus according to the first embodiment will be described with reference to FIG. FIG. 1 is a block diagram illustrating a configuration example of an analysis apparatus 10 according to the first embodiment. The analysis apparatus 10 shown in FIG. 1 is mounted on a computer that executes a predetermined program.

ここで、プログラムを実行するコンピュータの動作例を説明する。コンピュータによってプログラムが実行される場合には、例えば、コンピュータ内部のCPU(Central Processing Unit)は、ハードディスク装置等に記憶されているプログラムを、RAM(Random Access Memory)等のメモリ空間に展開する。具体的には、CPUは、メモリ空間に、命令や値等のデータを展開する。これにより、プログラムは、プロセスとして機能する。このようにしてプロセスが生成された後に、CPUは、プロセスメモリ空間に展開された各種データを用いて各種命令を実行する。   Here, an example of the operation of a computer that executes a program will be described. When a program is executed by a computer, for example, a CPU (Central Processing Unit) inside the computer expands a program stored in a hard disk device or the like in a memory space such as a RAM (Random Access Memory). Specifically, the CPU expands data such as instructions and values in the memory space. Thereby, the program functions as a process. After the process is generated in this manner, the CPU executes various instructions using various data expanded in the process memory space.

解析装置10は、入力部11、出力部12、制御部13および記憶部14を有する。解析装置10は、シグネチャを生成するとともに、生成したシグネチャを用いて検査対象の実行ファイルをパッキングしたパッカーを特定する。   The analysis device 10 includes an input unit 11, an output unit 12, a control unit 13, and a storage unit 14. The analysis apparatus 10 generates a signature and identifies a packer that packs an execution file to be inspected using the generated signature.

入力部11は、シグネチャの生成指示や検査対象の実行ファイルなどを入力するものであり、キーボードやマウス、マイクなどを備えて構成される。出力部12は、例えば、実行ファイルにパッキングをしたパッカーを表示するものであり、モニタやスピーカを備えて構成される。   The input unit 11 inputs a signature generation instruction, an execution file to be inspected, and the like, and includes a keyboard, a mouse, a microphone, and the like. The output unit 12 displays, for example, a packer packed in an execution file, and includes a monitor and a speaker.

記憶部14は、制御部13による各種処理に必要なデータおよびプログラムを格納するが、特に本発明に密接に関連するものとしては、実行ファイル記憶部14a、パッキング済み実行ファイル記憶部14bおよびシグネチャ記憶部14cを有する。また、記憶部14とは、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(flash memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。   The storage unit 14 stores data and programs necessary for various types of processing by the control unit 13, and particularly those closely related to the present invention include an execution file storage unit 14 a, a packed execution file storage unit 14 b, and a signature storage. It has a portion 14c. The storage unit 14 is a semiconductor memory device such as a random access memory (RAM), a read only memory (ROM), or a flash memory, or a storage device such as a hard disk or an optical disk.

実行ファイル記憶部14aは、パッキングされる前の複数の実行ファイルを記憶する。例えば、実行ファイル記憶部14aは、複数の実行ファイル1〜nを記憶する。パッキング済み実行ファイル記憶部14bは、パッキング済みの実行ファイルを記憶する。例えば、パッキング済み実行ファイル記憶部14bは、実行ファイル1〜nに対してパッカー1〜mそれぞれを用いてパッキングされた各実行ファイル(つまり、n×m個の実行ファイル)を記憶する。シグネチャ14cは、後述するシグネチャ生成部13aによって生成されたシグネチャを記憶する。   The executable file storage unit 14a stores a plurality of executable files before packing. For example, the executable file storage unit 14a stores a plurality of executable files 1 to n. The packed executable file storage unit 14b stores the packed executable file. For example, the packed executable file storage unit 14b stores each executable file (that is, n × m executable files) packed using the packers 1 to m with respect to the executable files 1 to n. The signature 14c stores a signature generated by a signature generation unit 13a described later.

制御部13は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行するが、特に本発明に密接に関連するものとしては、シグネチャ生成部13aおよび難読化ツール識別部13bを有する。なお、制御部13として、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などを適用する。   The control unit 13 has an internal memory for storing a program that defines various processing procedures and necessary data, and performs various processes by using these programs. Particularly, as closely related to the present invention, It has a signature generation unit 13a and an obfuscation tool identification unit 13b. Note that a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or the like is applied as the control unit 13.

シグネチャ生成部13aは、シグネチャとしてパッカーを識別するために利用するための各パッカーに応じた特徴的なコードブロックを抽出し、抽出したコードブロックからパッカー識別に利用するためのシグネチャを生成する。シグネチャ生成部13aは、分割部131および生成部132を有する。   The signature generation unit 13a extracts a characteristic code block corresponding to each packer to be used for identifying a packer as a signature, and generates a signature to be used for packer identification from the extracted code block. The signature generation unit 13a includes a division unit 131 and a generation unit 132.

分割部131は、複数の実行ファイルに対して複数のパッカーそれぞれを用いてパッキングされた各実行ファイルを動作させ、該各実行ファイルの動作結果として得られた各展開コードの実行トレースを複数のブロックごとに分割する。具体的には、まず、分割部131は、シグネチャの生成指示を入力部11から受け付けると、パッキング済みの実行ファイルをパッキング済み実行ファイル記憶部14bから取得する。例えば、図2の例を用いて説明すると、分割部131は、パッカー1〜mでそれぞれパッキングされたn×m個のパッキング済みの各実行ファイル(図2の例では、パッカー1(実行ファイル1〜n)、パッカー2(実行ファイル1〜n)・・・パッカーm(実行ファイル1〜n)と記載)をパッキング済み実行ファイル記憶部14bから取得する。   The dividing unit 131 operates each execution file packed using each of a plurality of packers with respect to a plurality of execution files, and executes an execution trace of each expanded code obtained as an operation result of each execution file into a plurality of blocks. Divide every. Specifically, first, upon receiving a signature generation instruction from the input unit 11, the dividing unit 131 acquires a packed executable file from the packed executable file storage unit 14 b. For example, referring to the example of FIG. 2, the dividing unit 131 uses the n × m packed executable files packed by the packers 1 to m (packer 1 (executable file 1 in the example of FIG. 2)). N), packer 2 (execution files 1 to n)... Packer m (execution files 1 to n) are acquired from the packed execution file storage unit 14b.

そして、分割部131は、パッキング済みの各実行ファイルを動作させ、パッキング済み実行ファイルの展開コードの実行トレースを取得する。ここで実行トレースとは、プログラムの実行された命令の羅列である。x86命令を例にとると、実行された命令のオペコードとそのオペランドの組の列と言い換えてもよい。なお、実行トレースは幾つかの方法で取得することが可能である。例えば、デバッガを利用する方法、Binary Instrumentationを利用する方法、エミュレータを利用する方法、仮想マシンを利用する方法が考えられる。   Then, the dividing unit 131 operates each packed execution file, and acquires an execution trace of the expanded code of the packed execution file. Here, the execution trace is a list of instructions executed by the program. Taking the x86 instruction as an example, it may be paraphrased as a sequence of the opcode of the executed instruction and its operand. The execution trace can be acquired by several methods. For example, a method using a debugger, a method using Binary Instrumentation, a method using an emulator, and a method using a virtual machine can be considered.

また、展開コードの実行トレースとは、具体的に述べると、パッキングされた実行ファイルの先頭から各実行ファイルの本来のエントリポイントであるオリジナルエントリポイントまでの命令列である。また、オリジナルエントリポイント以外にも独自に定めた事象が現れるまで動作させることも可能である。つまり、展開コードが終わっていると思われる事象が現れる周辺まで動かせればよく、例えば、本来のオリジナルコードが利用する可能性の高いAPIの呼び出しがみられるところまで、ネットワークへの通信が発生するところまで、更にはある一定時間まで、などの指標で動かしてもよい。なお、多くのパッカーは、この展開コードを多段で持つことが多い。これは、最初の展開コードが実行されると、2段目の展開コードとデータをメモリ上に展開し、展開が終わるとその2段目の展開コードにジャンプし、その2段目の展開コードが先ほど展開されたデータの読み込みオリジナルコードを展開する。上記は2段の例だが、パッカーの中にはこの展開コードが多段になっているものも多く存在する。   More specifically, the expanded code execution trace is a sequence of instructions from the top of the packed execution file to the original entry point that is the original entry point of each execution file. In addition to the original entry point, it is possible to operate until a uniquely defined event appears. In other words, it is only necessary to move to the vicinity where an event that seems to be the end of the expanded code appears. For example, communication to the network occurs until an API call that is highly likely to be used by the original code is seen. However, it may be moved by an index such as until a certain time. Many packers often have this expanded code in multiple stages. When the first expanded code is executed, the expanded code and data of the second stage are expanded on the memory. When the expansion is completed, the jump to the expanded code of the second stage is performed, and the expanded code of the second stage is executed. Read the data that was expanded earlier and expand the original code. The above is a two-stage example, but there are many packers in which this expanded code has multiple stages.

また、本来シグネチャとして利用するバイト列としては、実行ファイルのデータ部分よりもコード部分の方が望ましい。これは、データ部分が難読化のアルゴリズムにより変動が激しく可変な状態である場合が多いため、ある特定のプログラムの特徴パターンとして利用するには向いていない。例えば、XORエンコードが利用されていた場合には、バイナリコードとXORをとる値を変更すれば生成される値は大きく変化してしまう。一方、パッキングされている実行ファイルは主に展開コードとデータから構成される。上述のようにデータ部分はシグネチャのパターンとしては適していないため、展開コード部分のバイト列をパターンとしてシグネチャに利用する方が識別の精度が高くなる。   In addition, as a byte string originally used as a signature, a code portion is preferable to a data portion of an executable file. This is often unsuitable for use as a characteristic pattern of a specific program because the data portion is often in a state of being fluctuating and variable due to an obfuscation algorithm. For example, when XOR encoding is used, if the value that takes XOR with the binary code is changed, the value to be generated changes greatly. On the other hand, the packed executable file is mainly composed of a development code and data. As described above, since the data portion is not suitable as a signature pattern, the accuracy of identification is higher when the byte sequence of the expanded code portion is used as a pattern for the signature.

続いて、分割部131は、実行トレースを特定のブロックに区切り、命令列(以下、コードブロックという)の集合を作成する。ブロックへの区切り方として、ベーシックブロック単位、一定命令数単位(n-gram)、関数単位、または上記ベーシックブロック、一定命令数、関数のn-gramが考えられる。これら各ブロックのハッシュ値を求めておく。なお、ハッシュ値を求める際、x86を例にとると、各命令のオペコード部分のみを利用してもよいし、オペランド部分も含めてハッシュ値を計算してもよい。なお、ここで計算されたハッシュ値は、後述のコードブロックの集合の比較を行う際に、計算を容易にするためのものであり、計算のコストを考慮しないのであれば、ハッシュ値を求める処理は必ずしも必要ではない。   Subsequently, the dividing unit 131 divides the execution trace into specific blocks, and creates a set of instruction sequences (hereinafter referred to as code blocks). As a method of dividing into blocks, a basic block unit, a constant instruction number unit (n-gram), a function unit, or the basic block, a constant instruction number, and a function n-gram can be considered. The hash value of each block is obtained. When obtaining a hash value, taking x86 as an example, only the opcode portion of each instruction may be used, or the hash value may be calculated including the operand portion. The hash value calculated here is for facilitating calculation when comparing sets of code blocks described later. If the calculation cost is not taken into account, the hash value is calculated. Is not necessarily required.

続いて、生成部132は、分割部131によって分割された各ブロックのうち、同一のパッカーでパッキングされた実行ファイル間で共通して出現するコードブロックを抽出し、該抽出したコードブロックのシグネチャを生成する。例えば、生成部132は、パッカー1でパッキングした実行ファイル1〜nの各実行トレースのコードブロックのハッシュ値の集合同士を比較し、共通で出現するハッシュ値を求める。これは、言い換えると、各実行トレースの中で共通する命令コードを探しだしていることとなる。   Subsequently, the generation unit 132 extracts code blocks that appear in common among execution files packed by the same packer from the blocks divided by the division unit 131, and obtains the signatures of the extracted code blocks. Generate. For example, the generation unit 132 compares hash value sets of code blocks of the execution traces of the execution files 1 to n packed by the packer 1 to obtain a hash value that appears in common. In other words, a common instruction code is searched for in each execution trace.

上記の共通で出現するコードブロックを求める処理は、下記(1)式で定義される。つまり、パッカーqでパッキングしたi番目(0≦i≦n)の実行ファイルの実行トレースのブロックの集合をBq,iとすると、n個の実行ファイルの中に共通で出現するブロックは下記(1)式で定義される。そして、生成部132は、図2に例示するように、全てのパッカー1〜mについて、パッキングされた実行ファイルの展開コードの実行トレースに共通で出現するコードブロックを抽出する。 The process for obtaining the code block that appears in common is defined by the following equation (1). In other words, if a set of execution trace blocks of the i-th (0 ≦ i ≦ n) executable file packed by the packer q is B q, i , the blocks that appear in common in the n executable files are as follows ( 1) It is defined by the formula. Then, as illustrated in FIG. 2, the generation unit 132 extracts code blocks that appear in common in the execution trace of the expanded code of the packed execution file for all packers 1 to m.

Figure 2013084064
Figure 2013084064

上記の処理では、生成部132は、同一のパッカーでパッキングされた実行ファイル間で共通して出現するコードブロックのシグネチャを生成する場合を説明したが、以下の(2)〜(5)式を用いて説明するように、同一のパッカーでパッキングされた実行ファイル間で共通して出現するコードブロックであって、且つ、他のパッカーでパッキングされた実行ファイルでは出現しないコードブロックのシグネチャを生成するようにしてもよい。   In the above processing, the generation unit 132 has described the case of generating a signature of a code block that appears in common between executable files packed by the same packer. However, the following equations (2) to (5) are used. As will be described with reference to the above description, a signature of a code block that appears in common among executable files packed with the same packer and does not appear in an executable file packed with another packer is generated. You may do it.

例えば、生成部132は、全てのパッカー1〜mについて、パッキングされた実行ファイルの展開コード部分の実行トレースに共通で出現するコードブロックの計算が終わると、次にあるパッカーに対しては共通的に表れるが、他のパッカーの共通なコードブロックとしては出現しないコードブロックの集合を求め、これをそのパッカーに対するシグネチャとする。これを式で定義すると下記(2)式となる。パッカーの集合をPとし、パッカーのシグネチャをSqjとする。 For example, when the calculation of the code block that appears in common in the execution trace of the expanded code portion of the packed execution file is completed for all packers 1 to m, the generation unit 132 is common to the next packer. A set of code blocks that do not appear as code blocks common to other packers is obtained, and this is used as a signature for the packer. When this is defined by an equation, the following equation (2) is obtained. Let P be the set of packers and S qj be the signature of the packers.

Figure 2013084064
Figure 2013084064

また、生成部132は、あるパッカーで共通で出現するコードブロックから、他のパッカーの共通なコードブロック全てにおいて共通に出現するコードブロックを省くことで、シグネチャSqjを求める。これを式で定義すると下記(3)式となる。 The generation unit 132 obtains the signature S qj by omitting code blocks that appear in common in all code blocks common to other packers from code blocks that appear in common in a certain packer. When this is defined by an equation, the following equation (3) is obtained.

Figure 2013084064
Figure 2013084064

また、他にも、生成部132は、あるパッカーで共通で出現するコードブロックから、他の各パッカーの実行トレースのコードブロックに一つでも出現したコードを省いたコードブロックの集合をシグネチャSqjとしてもよい。これを式で定義すると下記(4)式となる。 Alternatively, it is also possible to form generating unit 132, a code block that appears in common in some packers, another signature S qj a set of code blocks even omitting the code that appeared in one code block execution trace of each packer It is good. When this is defined by an equation, the following equation (4) is obtained.

Figure 2013084064
Figure 2013084064

さらには、生成部132は、あるパッカーで共通で出現するコードブロックから、各パッカー内で複数の実行ファイル全てに出現するわけではないが、全てのパッカーに共通して出現するコードブロックを省くことでシグネチャSqjを作成してもよい。これを式で定義すると下記(5)式となる。 Furthermore, the generation unit 132 omits code blocks that appear in common in all packers from code blocks that appear in common in a certain packer, although they do not appear in all of the plurality of executable files in each packer. The signature S qj may be created by When this is defined by an equation, the following equation (5) is obtained.

Figure 2013084064
Figure 2013084064

また、シグネチャ生成部13aは、分割部によって分割された各ブロックのうち、同一のパッカーでパッキングされた実行ファイル間で共通して出現するブロックであって、且つ、パッキングされていない実行ファイルでは出現しないブロックのシグネチャを生成するようにしてもよい。   Also, the signature generation unit 13a is a block that appears in common among executable files packed by the same packer among the blocks divided by the dividing unit, and appears in an unpacked executable file You may make it produce | generate the signature of the block which does not carry out.

例えば、図3に示すように、シグネチャ生成部13aは、パッカーによりパッキングされた実行ファイルのみならず、パッキングされる前の実行ファイルを実行ファイル記憶部14aから取得する。そして、シグネチャ生成部13aは、ある特定のパッカーのシグネチャを生成する際に、そのパッカーに共通的に表れるコードブロックの集合から、他のパッカーに出現するコードブロックのみならず、各実行ファイルに出現するコードブロックも併せて省くことでシグネチャを作成するようにしてもよい。   For example, as illustrated in FIG. 3, the signature generation unit 13a acquires not only the execution file packed by the packer but also the execution file before packing from the execution file storage unit 14a. When the signature generation unit 13a generates a signature for a specific packer, the signature generation unit 13a appears not only in the code block that appears in other packers but also in each executable file from the set of code blocks that commonly appear in the packer. The signature may be created by omitting the code block to be processed.

これにより、通常の実行ファイルに出現しやすいコードブロックを当該パッカーのシグネチャから省くことができ、よりパッカー特有のシグネチャが作成できるものと考えられる。   As a result, code blocks that tend to appear in a normal executable file can be omitted from the signature of the packer, and a packer-specific signature can be created.

難読化ツール識別部13bは、図4に示すように、シグネチャ生成部13aが生成したシグネチャを用いて、入力された検査対象実行ファイルで利用されているパッカーを特定し、特定した結果を出力する。具体的には、難読化ツール識別部13bは、検査対象実行ファイルを入力部11を介して受け付けると、検査対象実行ファイルを動作させて、実行トレースを取得する。ここで、難読化ツール識別部13bは、検査対象の実行ファイルを一旦動作させているので、2段目以降の展開コードが現れ、この部分もシグネチャと比較され、パッカーの識別処理に利用される。これにより、2段目以降の展開コードもパッカーの識別処理に利用することが可能となり、精度の高いパッカー識別処理を行うことが可能となる。   As shown in FIG. 4, the obfuscation tool identification unit 13b identifies the packer used in the input inspection target execution file using the signature generated by the signature generation unit 13a, and outputs the identified result. . Specifically, when the obfuscation tool identification unit 13b receives the inspection target execution file via the input unit 11, the obfuscation tool identification unit 13b operates the inspection target execution file and acquires an execution trace. Here, since the obfuscated tool identification unit 13b once operates the execution file to be inspected, the expanded code after the second stage appears, and this part is also compared with the signature and used for packer identification processing. . As a result, the development codes in the second and subsequent stages can also be used for the packer identification process, and the packer identification process with high accuracy can be performed.

そして、難読化ツール識別部13bは、実行トレースを特定のブロックに区切り、コードブロックの集合を作成する。続いて、難読化ツール識別部13bは、作成したコードブロックとシグネチャ記憶部14cに記憶された各シグネチャS(0≦j≦m)を比較し、スコアを算出する。 The obfuscation tool identification unit 13b then divides the execution trace into specific blocks and creates a set of code blocks. Subsequently, the obfuscation tool identification unit 13b compares the created code block with each signature S j (0 ≦ j ≦ m) stored in the signature storage unit 14c, and calculates a score.

ここで、スコアの算出方法について具体的に説明する。難読化ツール識別部13bは、入力された検査対象の実行ファイルの実行トレースをシグネチャ生成部13aと同様の方法で取得し、この実行トレースから得られるコードブロックの集合Tとシグネチャ生成部13aで作成した各シグネチャを比較し、各シグネチャにおけるスコアを下記(6)式で計算する。この式により、各シグネチャのコードブロックのうち、どれだけのコードブロックが検査対象の実行ファイルの実行トレースに含まれているか(どれだけ適合するか)が分かる。   Here, the score calculation method will be specifically described. The obfuscation tool identification unit 13b obtains an execution trace of the input execution target execution file in the same manner as the signature generation unit 13a, and creates the code block set T obtained from the execution trace and the signature generation unit 13a. The respective signatures are compared, and the score in each signature is calculated by the following equation (6). This equation shows how many code blocks of the code blocks of each signature are included in the execution trace of the execution file to be inspected (how much is matched).

Figure 2013084064
Figure 2013084064

このスコアを全てのパッカー1〜mに対して求め、その中で最大値のもの(下記(7)式参照)を実行ファイルでパッキングされているパッカーとする。そして、難読化ツール識別部13bは、最大スコアのシグネチャに対応するパッカーを検査対象の実行ファイルをパッキングしたパッカーとして出力部12から出力する。なお、最大値のスコアでなく、ある閾値に基づき一定以上の値を示した場合に、その実行ファイルをパッキングしたパッカーとして識別してもよい。   This score is obtained for all packers 1 to m, and the one with the maximum value (see the following expression (7)) is defined as the packer packed with the execution file. Then, the obfuscation tool identification unit 13b outputs the packer corresponding to the signature with the maximum score from the output unit 12 as a packer packed with the execution file to be inspected. In addition, when a certain value or more is shown based on a certain threshold instead of the maximum score, the executable file may be identified as a packed packer.

Figure 2013084064
Figure 2013084064

なお、パッカーには、正確な逆アセンブルを行うのが困難であるという事情がある。これは、x86のコードを例にとると、コードの最適化やキャッシュ効率を上げるためなどの理由でコード領域の中にデータを含ませることが可能なアーキテクチャになっている。パッカーでは、この特徴を悪用しコードブロックの途中にデータを含ませるなどの方法で逆アセンブルを困難にする解析妨害機能を持つことが多い。この結果としてパッキングされた実行ファイルの展開コード部分を自動的に特定するのが難しく、正確な逆アセンブル結果を得るために人手の介入が必要となることが多い。これに対して、解析装置10では、実行トレースは実際にCPUが実行した命令コードを基にしているため、明らかにコードと断定することができ、逆アセンブルの際のデータとコードの見分けがつかなくなる問題も発生しない。   The packer has a situation that it is difficult to perform accurate disassembly. Taking x86 code as an example, this is an architecture that allows data to be included in the code area for reasons such as code optimization and increased cache efficiency. Packers often have an analysis blocking function that makes disassembly difficult by exploiting this feature and including data in the middle of code blocks. As a result, it is difficult to automatically specify the expanded code portion of the packed executable file, and manual intervention is often required to obtain an accurate disassembly result. On the other hand, in the analysis device 10, since the execution trace is based on the instruction code actually executed by the CPU, it can be clearly determined as the code, and the data and code at the time of disassembly can be distinguished. The problem of disappearing does not occur.

[解析装置による処理]
次に、図5および図6を用いて、実施例1に係る解析装置10による処理を説明する。図5は、実施例1に係る解析装置のシグネチャ生成処理の手順を説明するためのフローチャートである。図6は、実施例1に係る解析装置のパッカー識別処理の手順を説明するためのフローチャートである。
[Processing by analyzer]
Next, processing performed by the analysis apparatus 10 according to the first embodiment will be described with reference to FIGS. 5 and 6. FIG. 5 is a flowchart for explaining the procedure of the signature generation process of the analysis apparatus according to the first embodiment. FIG. 6 is a flowchart for explaining the procedure of the packer identification process of the analysis apparatus according to the first embodiment.

図5に示すように、解析装置10のシグネチャ生成部13aは、シグネチャ生成の指示を入力部11から受け付けると(ステップS101肯定)、パッキング済み実行ファイル記憶部14bに記憶されたパッキング済み実行ファイルを取得し、パッキング済み実行ファイルを動作させる(ステップS102)。   As illustrated in FIG. 5, when the signature generation unit 13a of the analysis apparatus 10 receives a signature generation instruction from the input unit 11 (Yes in step S101), the packed execution file stored in the packed execution file storage unit 14b is received. The acquired execution file is acquired and operated (step S102).

そして、シグネチャ生成部13aは、パッキング済み実行ファイルの展開コードの実行トレースを取得する(ステップS103)。続いて、シグネチャ生成部13aは、実行トレースを特定のブロックに区切り、コードブロックの集合を生成する(ステップS104)。   Then, the signature generation unit 13a acquires an execution trace of the expanded code of the packed execution file (step S103). Subsequently, the signature generation unit 13a divides the execution trace into specific blocks, and generates a set of code blocks (step S104).

そして、シグネチャ生成部13aは、各実行トレースのコードブロックの集合同士を比較し(ステップS105)、共通で出現するコードブロックの集合を抽出し、シグネチャを生成する(ステップS106)。具体的には、シグネチャ生成部13aは、あるパッカーに対しては共通的に表れるが、他のパッカーの共通なコードブロックとしては出現しないコードブロックの集合を求め、このコードブロックの集合をそのパッカーに対するシグネチャとして生成し、シグネチャ記憶部14cに記憶させて、処理を終了する。   Then, the signature generation unit 13a compares a set of code blocks of each execution trace (step S105), extracts a set of code blocks that appear in common, and generates a signature (step S106). Specifically, the signature generation unit 13a obtains a set of code blocks that appear in common to a certain packer but do not appear as common code blocks of other packers, and the set of code blocks is obtained as the packer. And is stored in the signature storage unit 14c, and the process ends.

次に、図6を用いて、パッカー識別処理について説明する。図6に示すように、解析装置10の難読化ツール識別部13bは、検査対象実行ファイルを入力部11を介して受け付けると(ステップS201)、検査対象実行ファイルの実行トレースを取得する(ステップS202)。   Next, the packer identification process will be described with reference to FIG. As illustrated in FIG. 6, when the obfuscation tool identification unit 13b of the analysis apparatus 10 receives the inspection target execution file via the input unit 11 (step S201), the execution trace of the inspection target execution file is acquired (step S202). ).

そして、難読化ツール識別部13bは、実行トレースを特定のブロックに区切り、コードブロックの集合を作成する(ステップS203)。続いて、難読化ツール識別部13bは、作成したコードブロックとシグネチャ記憶部14cに記憶された各シグネチャを比較し、スコアを算出する(ステップS204)。   The obfuscation tool identification unit 13b then divides the execution trace into specific blocks and creates a set of code blocks (step S203). Subsequently, the obfuscation tool identification unit 13b compares the created code block with each signature stored in the signature storage unit 14c, and calculates a score (step S204).

具体的には、難読化ツール識別部13bは、入力された検査対象の実行ファイルの実行トレースをシグネチャ生成部13aと同様の方法で取得し、この実行トレースから得られるコードブロックの集合Tとシグネチャ生成部13aで作成した各シグネチャを比較し、各シグネチャにおけるスコアを算出する。そして、難読化ツール識別部13bは、最大スコアのシグネチャに対応するパッカーを検査対象の実行ファイルで利用されているパッカーとして出力部12から出力する(ステップS205)。   Specifically, the obfuscation tool identification unit 13b acquires the execution trace of the input execution target execution file in the same manner as the signature generation unit 13a, and obtains a set T of code blocks obtained from the execution trace and the signature. The signatures created by the generation unit 13a are compared, and the score for each signature is calculated. Then, the obfuscation tool identification unit 13b outputs the packer corresponding to the signature with the maximum score from the output unit 12 as the packer used in the execution file to be inspected (step S205).

[実施例1の効果]
上述してきたように、解析装置10は、複数の実行ファイルに対して複数のパッカーそれぞれを用いてパッキングされた各実行ファイルを動作させ、該各実行ファイルの動作結果として得られた各命令コードを複数のブロックごとに分割する。そして、解析装置10は、分割された各ブロックのうち、同一のパッカーでパッキングされた実行ファイル間で共通して出現するコードブロックを抽出し、該抽出したコードブロックのシグネチャを生成する。そして、解析装置10は、生成されたコードブロックのシグネチャを用いて、検査対象の実行ファイルのパッキングに用いられたパッカーを特定する。このため、精度の高いシグネチャを生成することができる結果、パッカーの識別精度の向上を図ることが可能である。
[Effect of Example 1]
As described above, the analysis apparatus 10 operates each execution file packed using each of a plurality of packers with respect to a plurality of execution files, and uses each instruction code obtained as an operation result of each execution file. Divide into multiple blocks. Then, the analysis apparatus 10 extracts code blocks that appear in common among executable files packed by the same packer from among the divided blocks, and generates a signature of the extracted code blocks. Then, the analysis apparatus 10 specifies the packer used for packing the execution file to be inspected using the generated code block signature. For this reason, as a result of generating a highly accurate signature, it is possible to improve the packer identification accuracy.

また、実施例1によれば、分割された各コードブロックのうち、同一のパッカーでパッキングされた実行ファイル間で共通して出現するコードブロックであって、且つ、他のパッカーでパッキングされた実行ファイルでは出現しないシグネチャを生成する。このため、よりパッカー特有のシグネチャを生成することができる結果、パッカーの識別精度の向上を図ることが可能である。   Further, according to the first embodiment, among the divided code blocks, code blocks that appear in common between execution files packed with the same packer and packed with other packers are executed. Generate a signature that does not appear in the file. For this reason, as a result of being able to generate a packer-specific signature, it is possible to improve the packer identification accuracy.

また、実施例1によれば、分割された各コードブロックのうち、同一のパッカーでパッキングされた実行ファイル間で共通して出現するコードブロックであって、且つ、パッキングされていない実行ファイルでは出現しないコードブロックの特徴に関する情報を生成する。このため、よりパッカー特有のシグネチャを生成することができる結果、パッカーの識別精度の向上を図ることが可能である。   Further, according to the first embodiment, among the divided code blocks, code blocks that appear in common among executable files packed by the same packer and appear in an unpacked executable file Generate information about the features of the code blocks that do not. For this reason, as a result of being able to generate a packer-specific signature, it is possible to improve the packer identification accuracy.

また、実施例1によれば、検査対象の実行ファイルを動作させ、検査対象の実行ファイルの動作結果として得られた命令コードと生成されたシグネチャとの適合度合いを算出し、算出した結果に応じて、検査対象の実行ファイルのパッキングに用いられたパッカーを特定するので、パッカーの識別精度の向上を図ることが可能である。   Further, according to the first embodiment, the execution file to be inspected is operated, the degree of matching between the instruction code obtained as the operation result of the execution file to be inspected and the generated signature is calculated, and according to the calculated result Thus, since the packer used for packing the execution file to be inspected is specified, it is possible to improve the packer identification accuracy.

[解析プログラム]
図7は、解析プログラムによる処理がコンピュータを用いて具体的に実現されることを示す図である。図7に例示するように、コンピュータ1000は、例えば、メモリ1001と、CPU1002と、ハードディスクドライブインタフェース1003と、ディスクドライブインタフェース1004と、シリアルポートインタフェース1005と、ビデオアダプタ1006と、ネットワークインタフェース1007とを有し、これらの各部はバス1008によって接続される。
[Analysis program]
FIG. 7 is a diagram illustrating that the processing by the analysis program is specifically realized using a computer. As illustrated in FIG. 7, the computer 1000 includes, for example, a memory 1001, a CPU 1002, a hard disk drive interface 1003, a disk drive interface 1004, a serial port interface 1005, a video adapter 1006, and a network interface 1007. These units are connected by a bus 1008.

メモリ1001は、図7に例示するように、ROM(Read Only Memory)1001a及びRAM(Random Access Memory)1001bを含む。ROM1001aは、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1003は、図7に例示するように、ハードディスクドライブ1009に接続される。ディスクドライブインタフェース1004は、図7に例示するように、ディスクドライブ1010に接続される。例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1010に挿入される。シリアルポートインタフェース1005は、図7に例示するように、例えばマウス1011、キーボード1012に接続される。ビデオアダプタ1006は、図7に例示するように、例えばディスプレイ1013に接続される。   As illustrated in FIG. 7, the memory 1001 includes a ROM (Read Only Memory) 1001a and a RAM (Random Access Memory) 1001b. The ROM 1001a stores a boot program such as BIOS (Basic Input Output System). The hard disk drive interface 1003 is connected to the hard disk drive 1009 as illustrated in FIG. The disk drive interface 1004 is connected to the disk drive 1010 as illustrated in FIG. For example, a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1010. The serial port interface 1005 is connected to, for example, a mouse 1011 and a keyboard 1012 as illustrated in FIG. The video adapter 1006 is connected to a display 1013, for example, as illustrated in FIG.

ここで、図7に例示するように、ハードディスクドライブ1009は、例えば、OS1009a、アプリケーションプログラム1009b、プログラムモジュール1009c、プログラムデータ1009dを記憶する。すなわち、解析プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1009cとして、例えばハードディスクドライブ1009に記憶される。具体的には、上記実施例で説明したシグネチャ生成部13aと同様の処理を実行するシグネチャ生成手順と、難読化ツール識別部13bと同様の処理を実行する難読化ツール識別手順とが記述されたプログラムモジュール1009cが、ハードディスクドライブ1009に記憶される。また、解析プログラムによる処理に用いられるデータは、プログラムデータ1009dとして、例えばハードディスクドライブ1009に記憶される。そして、CPU1002が、ハードディスクドライブ1009に記憶されたプログラムモジュール1009cやプログラムデータ1009dを必要に応じてRAM1001bに読み出し、シグネチャ生成手順、難読化ツール識別手順を実行する。   Here, as illustrated in FIG. 7, the hard disk drive 1009 stores, for example, an OS 1009a, an application program 1009b, a program module 1009c, and program data 1009d. That is, the analysis program is stored in, for example, the hard disk drive 1009 as a program module 1009c in which a command to be executed by the computer 1000 is described. Specifically, a signature generation procedure for executing the same processing as the signature generation unit 13a described in the above embodiment and an obfuscation tool identification procedure for executing the same processing as the obfuscation tool identification unit 13b are described. A program module 1009c is stored in the hard disk drive 1009. Data used for processing by the analysis program is stored as program data 1009d in, for example, the hard disk drive 1009. Then, the CPU 1002 reads the program module 1009c and program data 1009d stored in the hard disk drive 1009 to the RAM 1001b as necessary, and executes a signature generation procedure and an obfuscation tool identification procedure.

なお、解析プログラムに係るプログラムモジュール1009cやプログラムデータ1009dは、ハードディスクドライブ1009に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1010等を介してCPU1002によって読み出されてもよい。あるいは、解析プログラムに係るプログラムモジュール1009cやプログラムデータ1009dは、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1007を介してCPU1002によって読み出されてもよい。   Note that the program module 1009c and the program data 1009d related to the analysis program are not limited to being stored in the hard disk drive 1009, but are stored in, for example, a removable storage medium and read out by the CPU 1002 via the disk drive 1010 or the like. Also good. Alternatively, the program module 1009c and the program data 1009d related to the analysis program are stored in another computer connected via a network (LAN (Local Area Network), WAN (Wide Area Network), etc.), and are transmitted via the network interface 1007. May be read by the CPU 1002.

10 解析装置
11 入力部
12 出力部
13 制御部
13a シグネチャ生成部
13b 難読化ツール識別部
14 記憶部
14a 実行ファイル記憶部
14b パッキング済み実行ファイル記憶部
14c シグネチャ記憶部
DESCRIPTION OF SYMBOLS 10 Analysis apparatus 11 Input part 12 Output part 13 Control part 13a Signature production | generation part 13b Obfuscation tool identification part 14 Storage part 14a Execution file storage part 14b Packed execution file storage part 14c Signature storage part

Claims (6)

複数の実行ファイルに対して複数の難読化ツールそれぞれを用いて難読化された各実行ファイルを動作させ、該各実行ファイルの動作結果として得られた各命令コードを複数のブロックごとに分割する分割部と、
前記分割部によって分割された各ブロックのうち、同一の難読化ツールで難読化された実行ファイル間で共通して出現するブロックを抽出し、該抽出したブロックの特徴に関する情報を生成する生成部と、
前記生成部によって生成されたブロックの特徴に関する情報を用いて、検査対象の実行ファイルの難読化に用いられた難読化ツールを特定する特定部と
を備えることを特徴とする解析装置。
Dividing multiple executable files by operating each executable file obfuscated using multiple obfuscation tools, and dividing each instruction code obtained as a result of each executable file into multiple blocks And
A generation unit that extracts blocks that appear in common among executable files obfuscated by the same obfuscation tool from among the blocks divided by the division unit, and generates information about the characteristics of the extracted blocks; ,
An analysis apparatus comprising: a specifying unit that specifies an obfuscation tool used for obfuscation of an execution file to be inspected using information about the feature of the block generated by the generation unit.
前記生成部は、前記分割部によって分割された各ブロックのうち、同一の難読化ツールで難読化された実行ファイル間で共通して出現するブロックであって、且つ、他の難読化ツールで難読化された実行ファイルでは出現しないブロックの特徴に関する情報を生成することを特徴とする請求項1に記載の解析装置。   The generating unit is a block that appears in common among executable files obfuscated by the same obfuscation tool among the blocks divided by the dividing unit, and is obfuscated by other obfuscation tools. The analysis apparatus according to claim 1, wherein information relating to a feature of a block that does not appear in the converted execution file is generated. 前記生成部は、前記分割部によって分割された各ブロックのうち、同一の難読化ツールで難読化された実行ファイル間で共通して出現するブロックであって、且つ、難読化されていない実行ファイルでは出現しないブロックの特徴に関する情報を生成することを特徴とする請求項1または2に記載の解析装置。   The generation unit is an execution file that is a block that appears in common among execution files obfuscated by the same obfuscation tool among the blocks divided by the division unit and is not obfuscated The analysis apparatus according to claim 1, wherein information on a feature of a block that does not appear is generated. 前記特定部は、前記検査対象の実行ファイルを動作させ、前記検査対象の実行ファイルの動作結果として得られた命令コードと前記生成部によって生成された特徴に関する情報との適合度合いを算出し、算出した結果に応じて、検査対象の実行ファイルの難読化に用いられた難読化ツールを特定することを特徴とする請求項1〜3のいずれか一つに記載の解析装置。   The specifying unit operates the execution file to be inspected, calculates a degree of matching between the instruction code obtained as an operation result of the execution file to be inspected and information about the feature generated by the generation unit, and calculates The analysis device according to claim 1, wherein an obfuscation tool used for obfuscation of the execution file to be inspected is specified according to the result. 複数の実行ファイルに対して複数の難読化ツールそれぞれを用いて難読化された各実行ファイルを動作させ、該各実行ファイルの動作結果として得られた各命令コードを複数のブロックごとに分割する分割工程と、
前記分割工程によって分割された各ブロックのうち、同一の難読化ツールで難読化された実行ファイル間で共通して出現するブロックを抽出し、該抽出したブロックの特徴に関する情報を生成する生成工程と、
前記生成工程によって生成されたブロックの特徴に関する情報を用いて、検査対象の実行ファイルの難読化に用いられた難読化ツールを特定する特定工程と
を含んだことを特徴とする解析方法。
Dividing multiple executable files by operating each executable file obfuscated using multiple obfuscation tools, and dividing each instruction code obtained as a result of each executable file into multiple blocks Process,
A generation step of extracting blocks that appear in common among executable files obfuscated by the same obfuscation tool among the blocks divided by the division step, and generating information on the characteristics of the extracted blocks; ,
And a specifying step of specifying an obfuscation tool used for obfuscation of the execution file to be inspected using information on the feature of the block generated by the generating step.
複数の実行ファイルに対して複数の難読化ツールそれぞれを用いて難読化された各実行ファイルを動作させ、該各実行ファイルの動作結果として得られた各命令コードを複数のブロックごとに分割する分割ステップと、
前記分割ステップによって分割された各ブロックのうち、同一の難読化ツールで難読化された実行ファイル間で共通して出現するブロックを抽出し、該抽出したブロックの特徴に関する情報を生成する生成ステップと、
前記生成ステップによって生成されたブロックの特徴に関する情報を用いて、検査対象の実行ファイルの難読化に用いられた難読化ツールを特定する特定ステップと
をコンピュータに実行させるための解析プログラム。
Dividing multiple executable files by operating each executable file obfuscated using multiple obfuscation tools, and dividing each instruction code obtained as a result of each executable file into multiple blocks Steps,
A generation step of extracting a block that appears in common among executable files obfuscated by the same obfuscation tool among the blocks divided by the division step, and generating information on the characteristics of the extracted block; ,
An analysis program for causing a computer to execute a specific step of identifying an obfuscation tool used for obfuscation of an execution file to be inspected using information on the feature of the block generated by the generation step.
JP2011222241A 2011-10-06 2011-10-06 Analysis device, analysis method, and analysis program Expired - Fee Related JP5687593B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011222241A JP5687593B2 (en) 2011-10-06 2011-10-06 Analysis device, analysis method, and analysis program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011222241A JP5687593B2 (en) 2011-10-06 2011-10-06 Analysis device, analysis method, and analysis program

Publications (2)

Publication Number Publication Date
JP2013084064A true JP2013084064A (en) 2013-05-09
JP5687593B2 JP5687593B2 (en) 2015-03-18

Family

ID=48529212

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011222241A Expired - Fee Related JP5687593B2 (en) 2011-10-06 2011-10-06 Analysis device, analysis method, and analysis program

Country Status (1)

Country Link
JP (1) JP5687593B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011523748A (en) * 2008-05-28 2011-08-18 シマンテック コーポレーション Intelligent hash for centrally detecting malware

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011523748A (en) * 2008-05-28 2011-08-18 シマンテック コーポレーション Intelligent hash for centrally detecting malware

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Also Published As

Publication number Publication date
JP5687593B2 (en) 2015-03-18

Similar Documents

Publication Publication Date Title
WO2015101096A1 (en) Method and device for detecting malicious code in smart terminal
WO2015101097A1 (en) Method and device for feature extraction
US20080289042A1 (en) Method for Identifying Unknown Virus and Deleting It
US10586026B2 (en) Simple obfuscation of text data in binary files
US11048798B2 (en) Method for detecting libraries in program binaries
KR102317833B1 (en) method for machine LEARNING of MALWARE DETECTING MODEL AND METHOD FOR detecting Malware USING THE SAME
EP3506140B1 (en) Hacking code sensing device, hacking code sensing method, and hacking code sensing program
WO2015101043A1 (en) Method and device for detecting malicious code in smart terminal
KR20170068814A (en) Apparatus and Method for Recognizing Vicious Mobile App
KR20120105759A (en) Malicious code visualization apparatus, apparatus and method for detecting malicious code
RU2722692C1 (en) Method and system for detecting malicious files in a non-isolated medium
WO2015035827A1 (en) Method and apparatus for providing string encryption and decryption in program files
US11250129B2 (en) Method and system for determining affiliation of software to software families
US20150248288A1 (en) Compiled file normalization
JP5456715B2 (en) Data identification device, data identification method, and data identification program
KR20190080445A (en) Whitelist construction method for analyzing malicious code, computer readable medium and device for performing the method
Chen et al. Malware classification using static disassembly and machine learning
Aslanyan et al. Scalable Framework for Accurate Binary Code Comparison
JP5687593B2 (en) Analysis device, analysis method, and analysis program
US11307962B2 (en) Method for semantic preserving transform mutation discovery and vetting
JP5952218B2 (en) Information processing apparatus and information processing method
JP6674048B2 (en) Judgment device, judgment method and judgment program
Wrench et al. Detecting derivative malware samples using deobfuscation-assisted similarity analysis
Kinger et al. Malware analysis using machine learning techniques
JP7355211B2 (en) Signature generation device, signature generation method, and signature generation program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141016

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: 20150120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150122

R150 Certificate of patent or registration of utility model

Ref document number: 5687593

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees