JP2011086147A - Device, method and program for calculating similarity - Google Patents
Device, method and program for calculating similarity Download PDFInfo
- Publication number
- JP2011086147A JP2011086147A JP2009239014A JP2009239014A JP2011086147A JP 2011086147 A JP2011086147 A JP 2011086147A JP 2009239014 A JP2009239014 A JP 2009239014A JP 2009239014 A JP2009239014 A JP 2009239014A JP 2011086147 A JP2011086147 A JP 2011086147A
- Authority
- JP
- Japan
- Prior art keywords
- machine language
- similarity
- instruction
- longest common
- instruction sequence
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
本発明は、機械語命令列の類似性を算出する類似性算出装置、類似性算出方法および類似性算出プログラムに関する。 The present invention relates to a similarity calculation device, a similarity calculation method, and a similarity calculation program for calculating the similarity of machine language instruction sequences.
近年、インターネット等のネットワークの普及にともなって、コンピュータウィルスやワームといったマルウェアへの対策に大きなコストがかかるようになっている。マルウェアへの対策にコストがかかることの要因の一つは、マルウェア作者によって積極的に亜種が開発されるために、マルウェアの種類数が増加し、マルウェアの解析作業に時間を要することにある。 In recent years, with the spread of networks such as the Internet, measures against malware such as computer viruses and worms have become costly. One of the reasons for the cost of malware countermeasures is that the malware authors are actively developing variants, which increases the number of malware types and takes time to analyze malware. .
そこで、マルウェアを分類することでその解析コストを抑える研究が行われている。マルウェアを分類する手法には、大きく分けて挙動に基づいて分類する手法とプログラムコード(機械語命令列)に基づいて分類する手法とがある。 Therefore, research to reduce the analysis cost by classifying malware is being conducted. There are two methods for classifying malware: a method of classifying based on behavior and a method of classifying based on program code (machine language instruction sequence).
挙動に基づいて分類する手法では、ファイルシステムやネットワーク等のシステムリソースへのアクセスを監視できる環境が用意され、その環境において実際にマルウェアを動作させることでマルウェアの挙動に関する情報が取得される。そして、取得された挙動に関する情報の類似性をマルウェアの類似性とみなすことでマルウェアが分類される(非特許文献1参照)。 In the method of classifying based on behavior, an environment in which access to system resources such as a file system and a network can be monitored is prepared, and information on the behavior of the malware is acquired by actually operating the malware in the environment. And the malware is classified by regarding the similarity of the information regarding the acquired behavior as the similarity of the malware (see Non-Patent Document 1).
一方、プログラムコードに基づいて分類する手法では、挙動による手法とは異なり、マルウェアに内在する機能も踏まえた分類が可能である。プログラムコードに基づいて分類する手法には、プログラムコードの類似性の算出方法によって、以下に説明するようないくつかの手法が存在する。 On the other hand, the classification based on the program code allows classification based on the functions inherent in malware, unlike the behavioral technique. As a method of classifying based on the program code, there are several methods as described below depending on the method of calculating the similarity of the program code.
ある手法では、プログラムコードを逆アセンブルすることで命令種別の系列を抽出し、頻出するN−perms(順序性を持たないN個の命令種別系列)を特徴として用いることで、マルウェアの類似度が算出される(非特許文献2参照)。この手法によれば、順序性を持つN−gramsと比較して順序性を持たないN−permsを用いることで、コンパイラの最適化により発生する命令の入れ替えの影響を緩和することを期待できる。また、他の手法では、プログラムコードを逆アセンブルし、コールツリー(関数の呼び出し関係を表す木)を構築し、その木構造の類似性がマルウェアの類似性とされる(非特許文献3参照)。 In one method, a sequence of instruction types is extracted by disassembling the program code, and N-perms that frequently appear (N instruction type sequences having no order) are used as features, so that the degree of malware similarity is increased. Is calculated (see Non-Patent Document 2). According to this method, it can be expected that the influence of instruction replacement generated by compiler optimization is mitigated by using N-perms that do not have order as compared with N-grams that have order. In another method, the program code is disassembled to construct a call tree (a tree representing a function calling relationship), and the similarity of the tree structure is regarded as the similarity of malware (see Non-Patent Document 3). .
しかしながら、上述した従来技術のうち、挙動に基づいて分類する手法は、マルウェアそのものを解析対象とする必要がないため容易に実現可能だが、ボットのように攻撃者からの指令なしには動作しないマルウェアについては、挙動を確認することが困難であるため、分類することができないという問題があった。 However, among the above-mentioned conventional techniques, the method of classifying based on behavior is easily realized because the malware itself does not need to be analyzed, but it does not operate without instructions from an attacker like a bot. For, there was a problem that it was difficult to classify because it was difficult to confirm the behavior.
また、プログラムコードに基づいて分類する手法のうち、N−permsを利用した手法には、Nが小さい場合は全く異なるマルウェアであっても類似度が高くなり、Nが大きい場合はわずかな差分であっても類似度に大きな影響を及ぼす可能性があるという問題があった。また、N−permsの統計情報を比較することになるため、比較したマルウェアのどこが一致しどこが一致しなかったかを厳密に算出することが難しいという問題があった。 Of the methods classified based on the program code, the method using N-perms increases the similarity even if the malware is completely different when N is small, and with a slight difference when N is large. Even if it exists, there existed a problem of having a big influence on similarity. Further, since the statistical information of N-perms is compared, there is a problem that it is difficult to calculate exactly where the compared malware matches and where does not match.
また、コールツリーの類似度を用いた手法には、多大な計算量を要する上に、関数の呼び出し関係のみをマルウェアの特徴とするため、全く異なるマルウェアに関しても類似度が高くなる可能性があるという問題があった。 In addition, the method using the similarity of the call tree requires a large amount of calculation, and since only the function call relationship is a characteristic of the malware, the similarity may be high even for completely different malware. There was a problem.
本発明は、上記に鑑みてなされたものであって、マルウェア等の機械語命令列の類似性を少ない計算量で高精度に算出することができる類似性算出装置、類似性算出方法および類似性算出プログラムを提供することを目的とする。 The present invention has been made in view of the above, and a similarity calculation device, a similarity calculation method, and a similarity that can calculate the similarity of a machine language instruction sequence such as malware with a small amount of calculation with high accuracy An object is to provide a calculation program.
上述した課題を解決し、目的を達成するために、本発明は、複数の機械語命令列の類似性を算出する類似性算出装置であって、前記複数の機械語命令列毎に、機械語命令列に含まれる各機械語命令からオペランド部分を取り除いた縮約命令の配列である縮約命令列を生成する縮約命令列生成手段と、前記縮約命令列生成手段によって生成された縮約命令列を比較して、最長共通部分列を抽出する最長共通部分列抽出手段と、前記最長共通部分列抽出手段によって抽出された最長共通部分列に基づいて、前記機械語命令列の類似性を算出する類似性算出手段とを備えたことを特徴とする。 In order to solve the above-described problems and achieve the object, the present invention is a similarity calculation device for calculating the similarity of a plurality of machine language instruction sequences, and for each of the plurality of machine language instruction sequences, a machine language Reduced instruction sequence generating means for generating a reduced instruction sequence that is an array of reduced instructions obtained by removing the operand portion from each machine language instruction included in the instruction sequence, and the reduction generated by the reduced instruction sequence generating means The longest common partial sequence extracting means for comparing the instruction sequences and extracting the longest common partial sequence, and the similarity of the machine language instruction sequence based on the longest common partial sequence extracted by the longest common partial sequence extracting means. And a similarity calculating means for calculating.
また、他の態様において、本発明は、複数の機械語命令列の類似性を算出する類似性算出方法であって、前記複数の機械語命令列毎に、機械語命令列に含まれる各機械語命令からオペランド部分を取り除いた縮約命令の配列である縮約命令列を生成する縮約命令列生成工程と、前記縮約命令列生成工程において生成された縮約命令列を比較して、最長共通部分列を抽出する最長共通部分列抽出工程と、前記最長共通部分列抽出工程において抽出された最長共通部分列に基づいて、前記機械語命令列の類似性を算出する類似性算出工程とを含んだことを特徴とする。 In another aspect, the present invention provides a similarity calculation method for calculating a similarity between a plurality of machine language instruction sequences, wherein each machine included in a machine language instruction sequence is included in each of the plurality of machine language instruction sequences. A reduced instruction sequence generating step for generating a reduced instruction sequence that is an array of reduced instructions obtained by removing an operand part from a word instruction and the reduced instruction sequence generated in the reduced instruction sequence generating step; A longest common subsequence extraction step for extracting the longest common subsequence, and a similarity calculation step for calculating the similarity of the machine language instruction sequence based on the longest common subsequence extracted in the longest common subsequence extraction step; It is characterized by including.
また、他の態様において、本発明は、複数の機械語命令列の類似性を算出する類似性算出プログラムであって、前記複数の機械語命令列毎に、機械語命令列に含まれる各機械語命令からオペランド部分を取り除いた縮約命令の配列である縮約命令列を生成する縮約命令列生成手順と、前記縮約命令列生成手順によって生成された縮約命令列を比較して、最長共通部分列を抽出する最長共通部分列抽出手順と、前記最長共通部分列抽出手順によって抽出された最長共通部分列に基づいて、前記機械語命令列の類似性を算出する類似性算出手順とをコンピュータに実行させることを特徴とする。 In another aspect, the present invention provides a similarity calculation program for calculating similarity between a plurality of machine language instruction sequences, wherein each machine included in a machine language instruction sequence is included in each of the plurality of machine language instruction sequences. A reduced instruction string generation procedure that generates a reduced instruction string that is an array of reduced instructions obtained by removing operand parts from word instructions and the reduced instruction string generated by the reduced instruction string generation procedure; A longest common subsequence extraction procedure for extracting the longest common subsequence, and a similarity calculation procedure for calculating the similarity of the machine language instruction sequence based on the longest common subsequence extracted by the longest common subsequence extraction procedure; Is executed by a computer.
本発明にかかる類似性算出装置、類似性算出方法および類似性算出プログラムは、機械語命令列の類似性を少ない計算量で高精度に算出することができるという効果を奏する。 The similarity calculation device, the similarity calculation method, and the similarity calculation program according to the present invention have an effect that the similarity of the machine language instruction sequence can be calculated with a small amount of calculation with high accuracy.
以下に、本発明にかかる類似性算出装置、類似性算出方法および類似性算出プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例では、本発明にかかる類似性算出装置、類似性算出方法および類似性算出プログラムをマルウェアの類似性を算出するために用いる場合について説明するが、これらの実施例によりこの発明が限定されるものではない。 Embodiments of a similarity calculation device, a similarity calculation method, and a similarity calculation program according to the present invention will be described below in detail with reference to the drawings. In the following embodiments, the case where the similarity calculation device, the similarity calculation method, and the similarity calculation program according to the present invention are used for calculating the similarity of malware will be described. Is not limited.
まず、本実施例に係る類似性算出装置10の構成について説明する。図1は、類似性算出装置10の構成を示すブロック図である。図1に示すように、類似性算出装置10は、表示部11と、入力部12と、記憶部13と、制御部14とを有する。
First, the configuration of the similarity calculation apparatus 10 according to the present embodiment will be described. FIG. 1 is a block diagram illustrating a configuration of the similarity calculation apparatus 10. As illustrated in FIG. 1, the similarity calculation device 10 includes a
表示部11は、例えば、液晶表示装置や有機EL(Electro-Luminescence)表示装置であり、各種情報を利用者に対して表示する。入力部12は、例えば、キーボードやマウスを含み、利用者からの指示を受け付ける。なお、表示部11や入力部12は、必須の構成要素ではなく、例えば、利用者からの指示をネットワーク経由で受け付け、受け付けた指示に対する応答をネットワーク経由で利用者へ送信するように類似性算出装置10を構成してもよい。
The
記憶部13は、例えば、ハードディスク装置や半導体メモリであり、実行モジュール13a等の各種の電子情報を記憶する。実行モジュール13aは、例えば、マルウェアであり、類似性の算出対象の機械語命令列や、機械語命令列によって利用されるデータ列等を含む。実行モジュール13aは、例えば、ネットワークやDVD等の記憶媒体を経由して記憶部13に格納される。 The storage unit 13 is, for example, a hard disk device or a semiconductor memory, and stores various electronic information such as the execution module 13a. The execution module 13a is, for example, malware, and includes a machine language instruction sequence for which similarity is calculated, a data sequence used by the machine language instruction sequence, and the like. The execution module 13a is stored in the storage unit 13 via a storage medium such as a network or a DVD, for example.
記憶部13は、制御部14が中間データとして生成する縮約命令列13bや、制御部14が処理結果として生成する類似度行列データ13cの格納場所としても利用される。
The storage unit 13 is also used as a storage location for the contracted instruction sequence 13b generated by the control unit 14 as intermediate data and the
制御部14は、類似性算出装置10を全体制御する制御部であり、アンパッキング部14aと、逆アセンブル部14bと、縮約命令列生成部14cと、最長共通部分列抽出部14dと、類似性算出部14eとを有する。
The control unit 14 is a control unit that controls the similarity calculating apparatus 10 as a whole, and is similar to the unpacking unit 14a, the disassembly unit 14b, the reduced instruction sequence generation unit 14c, and the longest common partial
アンパッキング部14aは、記憶部13に記憶されている各実行モジュール13aにアンパッキング処理を施して逆アセンブル部14bへ出力する。マルウェアの多くは、解析を困難にするためにパッキングと呼ばれる処理が適用され、オリジナルの機械語命令列が隠蔽されている。アンパッキング部14aは、実行モジュール13aにパッキングが施されている場合、既存のアンパッキング技術を利用して、オリジナルの機械語命令列を再現する。なお、実行モジュール13aにパッキングが施されていない場合、アンパッキング部14aは、実行モジュール13aをそのまま逆アセンブル部14bへ出力する。 The unpacking unit 14a performs an unpacking process on each execution module 13a stored in the storage unit 13 and outputs it to the disassembly unit 14b. In many malware, a process called packing is applied to make analysis difficult, and the original machine language instruction sequence is concealed. When the execution module 13a is packed, the unpacking unit 14a reproduces the original machine language instruction sequence by using an existing unpacking technique. When the execution module 13a is not packed, the unpacking unit 14a outputs the execution module 13a as it is to the disassembly unit 14b.
逆アセンブル部14bは、アンパッキング部14aから入力された実行モジュール13aを逆アセンブルし、逆アセンブルした機械語命令列を縮約命令列生成部14cへ出力する。上述したように、実行モジュール13aには、機械語命令列以外に処理対象のデータ列等が含まれるが、逆アセンブル部14bは、機械語命令列の逆アセンブル結果のみを縮約命令列生成部14cへ出力する。なお、実行モジュール13aに含まれる機械語命令列の選別は、例えば、特許文献1にて開示されている技術を利用して実現することができる。
The disassembly unit 14b disassembles the execution module 13a input from the unpacking unit 14a, and outputs the disassembled machine language instruction sequence to the contracted instruction sequence generation unit 14c. As described above, the execution module 13a includes a data string to be processed in addition to the machine language instruction sequence, but the disassembly unit 14b is a reduced instruction sequence generation unit that generates only the disassembly result of the machine language instruction sequence. To 14c. The selection of the machine language instruction sequence included in the execution module 13a can be realized using, for example, the technique disclosed in
縮約命令列生成部14cは、逆アセンブル部14bから入力された機械語命令列から縮約命令列を生成する。ここで、縮約命令とは、機械語命令からオペランド部分を削除した命令をいい、縮約命令列とは、機械語命令列に含まれる各機械語命令から変換された縮約命令の配列をいう。 The contracted instruction sequence generation unit 14c generates a contracted instruction sequence from the machine language instruction sequence input from the disassemble unit 14b. Here, the contracted instruction is an instruction in which the operand part is deleted from the machine language instruction, and the contracted instruction sequence is an array of contracted instructions converted from each machine language instruction included in the machine language instruction sequence. Say.
例えば、機械語命令が分岐命令の場合、機械語命令のオペランド部分には分岐先情報が含まれる。そして、分岐先情報は、マルウェア作者によってマルウェアの亜種が作成された場合のように、実行モジュールが改変された場合に、分岐元と分岐先の間に新たな命令が追加される等して変化してしまうことがある。 For example, when the machine language instruction is a branch instruction, the operand part of the machine language instruction includes branch destination information. The branch destination information is obtained by adding a new instruction between the branch source and the branch destination when the execution module is modified, such as when a malware variant is created by the malware author. It may change.
また、メモリアクセスに必要となる絶対アドレスもオペランドとして指定されるが、実行モジュールが動的リンクライブラリとして実装されている場合、ロードされるアドレスが一定ではなく、当該ライブラリがロードされるタイミングによっては絶対アドレスが変化する。 The absolute address required for memory access is also specified as an operand, but when the execution module is implemented as a dynamic link library, the address to be loaded is not constant, and depending on the timing at which the library is loaded Absolute address changes.
このように、機械語命令のオペランド部分の内容は、機械語命令列が実質的には改変されていない場合でも変化することがある。このため、類似性の算出にオペランド部分を含んだ機械語命令列を用いると、機械語命令列のうち実質的には改変されていない部分までも相違部分と判断されるおそれがある。 As described above, the contents of the operand portion of the machine language instruction may change even when the machine language instruction sequence is not substantially modified. For this reason, when a machine language instruction sequence including an operand part is used for calculating the similarity, even a part of the machine language instruction string that is not substantially modified may be determined as a different part.
そこで、本実施例に係る類似性算出方法では、オペランド部分が除かれた縮約命令列を用いて類似性が算出される。オペランド部分が除かれた縮約命令列を用いて類似性を算出することにより、オペランド部分の内容の変化の影響をうけることなく、機械語命令列の類似性を高精度に算出することが可能になる。 Therefore, in the similarity calculation method according to the present embodiment, the similarity is calculated using the reduced instruction sequence from which the operand portion is removed. By calculating the similarity using the reduced instruction sequence from which the operand part is removed, the similarity of the machine language instruction sequence can be calculated with high accuracy without being affected by the change in the contents of the operand part. become.
ここで、縮約命令列生成部14cが機械語命令から変換して生成する縮約命令について、IA−32命令セットの場合を例としてさらに詳しく説明する。IA−32命令セットにおける機械語命令は、命令の修飾語となるプレフィックス部、命令の種類を表すオペコード部、オペランドの型を表すMod/RMとSIB、オペランドがメモリ上である場合のアドレス部、オペランドが即値であった場合の即値部から構成される。 Here, the contracted instruction generated by converting the contracted instruction sequence generation unit 14c from the machine language instruction will be described in more detail by taking the case of the IA-32 instruction set as an example. The machine language instruction in the IA-32 instruction set includes a prefix part that is an instruction modifier, an opcode part that represents an instruction type, Mod / RM and SIB that represent an operand type, and an address part when the operand is in memory. Consists of an immediate part when the operand is an immediate value.
IA−32命令セットにおけるプレフィックスは4つのグループに分けられ、グループ1には3通り、グループ2には6通り、グループ3には1通り、グループ4には1通りのプレフィックスが存在し、各グループで一つ以下のプレフィックスが選択される。また、オペコードに関しては、1バイト目が0x0F以外の場合はその値、0x0Fの場合は2バイト目の値が実質的なオペコードとなる。オペコードが決まると、オペランドの有無、Mod/RMの有無、即値の有無が確定する。さらに、Mod/RMの値によってSIBの有無が確定し、SIBの値によってアドレス部の有無が確定する。
The prefixes in the IA-32 instruction set are divided into four groups. There are three types of prefixes in
本実施例では、縮約命令として、プレフィックス部、オペコード部、Mod/RMとSIBの情報を組み合わせて利用する。本実施例における縮約命令の構成の例を図2に示す。図2に示す例では、縮約命令は、2ビットのP1と、3ビットのP2と、1ビットのP3、P4およびOLと、8ビットのOC、MおよびSとからなる。 In the present embodiment, a prefix instruction, an opcode part, Mod / RM and SIB information are used in combination as contraction instructions. An example of the configuration of the contracted instruction in this embodiment is shown in FIG. In the example shown in FIG. 2, the contracted instruction includes 2-bit P1, 3-bit P2, 1-bit P3, P4, and OL, and 8-bit OC, M, and S.
P1は、グループ1のプレフィックスに対応する。具体的には、P1は、グループ1のプレフィックスが存在しない場合は「0」となり、グループ1のプレフィックスの値が「F0H」、「F2H」、「F3H」の場合はそれぞれ「1」、「2」、「3」となる。P2は、グループ2のプレフィックスに対応する。具体的には、P2は、グループ2のプレフィックスが存在しない場合は「0」となり、グループ2のプレフィックスの値が「2EH」、「36H」、「3EH」、「26H」、「64H」、「65H」の場合はそれぞれ「1」、「2」、「3」、「4」、「5」、「6」となる。
P1 corresponds to the prefix of
P3は、グループ3のプレフィックスに対応する。具体的には、P3は、グループ3のプレフィックスが存在しない場合は「0」となり、グループ3のプレフィックスの値が「66H」の場合は「1」となる。P4は、グループ4のプレフィックスに対応する。具体的には、P4は、グループ4のプレフィックスが存在しない場合は「0」となり、グループ4のプレフィックスの値が「67H」の場合は「1」となる。
P3 corresponds to the prefix of
OLは、オペコードの1バイト目が0x0Fであるかを示し、オペコードの1バイト目が0x0Fであれば「1」となり、さもなければ「0」となる。OCは、オペコードの実質的な値であり、オペコードの1バイト目が0x0Fであればオペコードの2バイト目の値が設定され、さもなければオペコードの1バイト目の値が設定される。 OL indicates whether the first byte of the operation code is 0x0F. If the first byte of the operation code is 0x0F, “1” is set. Otherwise, “0” is set. OC is a substantial value of the operation code. If the first byte of the operation code is 0x0F, the value of the second byte of the operation code is set. Otherwise, the value of the first byte of the operation code is set.
Mは、ModR/Mに対応し、ModR/Mが存在する場合はModR/Mの値が設定され、さもなければ「0」が設定される。Sは、SIBに対応し、SIBが存在する場合はSIBの値が設定され、さもなければ「0」が設定される。 M corresponds to ModR / M. If ModR / M exists, the value of ModR / M is set, otherwise, “0” is set. S corresponds to the SIB, and if the SIB exists, the SIB value is set; otherwise, “0” is set.
IA−32命令セットにおける機械語命令は、命令の種別等によって長さが異なるが、図2に示すように、本実施例における縮約命令の長さは、命令の種類によらずに32ビットの固定長となる。32ビットというサイズは、IA−32における汎用レジスタのビット幅と同じであり、縮約命令列を効率よく処理するのに好適である。また、縮約命令列を固定長の要素からなる配列として形成することは、後述するビットベクトル化アルゴリズムを利用した共通部分の抽出処理を容易に実現するために好適である。 The machine language instructions in the IA-32 instruction set have different lengths depending on the instruction type and the like, but as shown in FIG. 2, the length of the reduced instruction in this embodiment is 32 bits regardless of the instruction type. It becomes a fixed length. The size of 32 bits is the same as the bit width of the general-purpose register in IA-32, and is suitable for efficiently processing the reduced instruction sequence. Also, forming the contracted instruction sequence as an array of fixed-length elements is suitable for easily realizing the common part extraction process using a bit vectorization algorithm described later.
最長共通部分列抽出部14dは、縮約命令列生成部14cによって生成された縮約命令列の全ての組合せについて、最長共通部分列(Longest Common Subsequence)を抽出する。例えば、{a,b,c,d,e}という5つの命令からなる縮約命令列と、{f,b,g,d,h}という4つの命令からなる縮約命令列があった場合、これら縮約命令列の共通部分列は{b,d}である。縮約命令列からの最長共通部分列の抽出は、例えば、動的計画法および分割統治法に基づく計算量o(mn)、メモリ使用量o(n)のアルゴリズム(非特許文献4参照)を利用することにより、少ない計算量で実現することができる。また、このアルゴリズムにビットベクトル化と呼ばれる手法を適用することで計算機における演算単位ビット数倍の高速化を達成するアルゴリズム(非特許文献5参照)を利用することもできる。
The longest common
なお、ビットベクトル化を適用するアルゴリズムには、メモリ使用量が比較要素のアルファベットサイズをσとしたときo(σn)となるため、σが非常に大きくなるとビットベクトル化を適用することが困難になるという問題があることが知られている。本実施例に係る類似性算出方法では、比較要素として機械語命令からオペランドを取り除いた縮約命令を用いており、機械語命令を比較要素とする場合と比べてσを小さくすることができるため、ビットベクトル化を適用した際にもメモリ使用量を少なく抑えることが可能になっている。 Note that the algorithm for applying bit vectorization is o (σn) when the memory usage is σ when the alphabet size of the comparison element is σ. Therefore, it becomes difficult to apply bit vectorization when σ is very large. It is known that there is a problem of becoming. In the similarity calculation method according to the present embodiment, a contracted instruction obtained by removing an operand from a machine language instruction is used as a comparison element, and σ can be reduced compared to the case where a machine language instruction is used as a comparison element. Even when bit vectorization is applied, it is possible to reduce the memory usage.
類似性算出部14eは、最長共通部分列抽出部14dによって抽出された最長共通部分列の長さに基づいて全ての実行モジュール13a(機械語命令列)の組合せについて類似性を算出し、算出結果を類似度行列データ13cとして出力する。
The similarity calculation unit 14e calculates similarity for all combinations of execution modules 13a (machine language instruction sequences) based on the length of the longest common partial sequence extracted by the longest common partial
2つの機械語命令列をA、Bとし、それぞれに対応する縮約命令列をCA、CBとし、それぞれ縮約命令列の長さをL(CA)、L(CB)とすると、CAとCBの最長共通部分列LCS(CA,CB)は、最長共通部分列抽出部14dによって抽出される。そして、最長共通部分列LCS(CA,CB)の長さをLLCS(CA,CB)とすると、類似性算出部14eは、以下の式(1)を用いて、0から1の値をとり類似比率を意味するJaccard係数を計算することによって、機械語命令列Aと機械語命令列Bの類似性を示す類似度を算出する。
Assuming that two machine language instruction sequences are A and B, the corresponding reduced instruction sequences are CA and CB, and the lengths of the reduced instruction sequences are L (CA) and L (CB), respectively, CA and CB The longest common subsequence LCS (CA, CB) is extracted by the longest common
なお、Jaccard係数を用いる手法は、最長共通部分列の長さに基づいて類似性を算出する手法の一例であり、最長共通部分列の長さに基づいて類似性を算出するものであれば他の手法を用いてもよい。例えば、最長共通部分列の長さそのものを類似性の指標として用いることとしてもよい。 Note that the method using the Jaccard coefficient is an example of a method for calculating similarity based on the length of the longest common subsequence, and other methods may be used as long as the similarity is calculated based on the length of the longest common subsequence. You may use the method of. For example, the length of the longest common subsequence itself may be used as an index of similarity.
類似性算出部14eが出力する類似度行列データ13cの一例を図3に示す。図3に示す例は、機械語命令列A〜Dの4つの機械語命令列を対象として類似性を算出した場合の類似度行列データ13cの例であり、機械語命令列A〜Dの全ての組合せについて類似性がJaccard係数として算出されている。
An example of the
なお、このように出力された類似度行列データ13cに基づいて、さらに、機械語命令列をクラスタリングすることとしてもよい。類似性に基づくクラスタリングを行うことにより、例えば、類似性を算出する対象の機械語命令列がマルウェアであれば、マルウェアの流行や廃りを効率的に把握したり、未知のマルウェアが出現した場合にそのマルウェアに最も類似しているマルウェアを判別したりすることが容易になる。
The machine language instruction sequence may be further clustered based on the
なお、類似度行列データ13cについては、表形式やグラフ等による形式で類似度行列データ13cを表示部11や図示しない印刷装置にできるように類似性算出装置10を構成することとしてもよいし、ネットワークや記憶媒体を介して類似度行列データ13cを他の装置へ転送できるように類似性算出装置10を構成することとしてもよい。
As for the
次に、図1に示した類似性算出装置10の動作について、図4に示したフローチャートを参照しながら説明する。なお、ここでは、類似性を算出する対象である全ての実行モジュール13aが予め記憶部13に記憶されているものとする。 Next, the operation of the similarity calculation apparatus 10 shown in FIG. 1 will be described with reference to the flowchart shown in FIG. Here, it is assumed that all the execution modules 13a for which similarity is calculated are stored in the storage unit 13 in advance.
図3に示すように、アンパッキング部14aが、記憶部13に記憶されている実行モジュール13aのうち未選択のものを1つ選択する(ステップS101)。そして、選択できた場合(ステップS102否定)、アンパッキング部14aは、選択した実行モジュール13aがパッキングされていれば(ステップS103肯定)、その実行モジュール13aにアンパッキング処理を施して、逆アセンブル部14bへ出力する(ステップS104)。一方、選択した実行モジュール13aがパッキングされていなければ(ステップS103否定)、アンパッキング部14aは、その実行モジュール13aをそのまま逆アセンブル部14bへ出力する。 As shown in FIG. 3, the unpacking unit 14a selects one of the execution modules 13a stored in the storage unit 13 that has not been selected (step S101). If it can be selected (No at Step S102), the unpacking unit 14a performs an unpacking process on the execution module 13a if the selected execution module 13a is packed (Yes at Step S103), and disassembles the unit. 14b (step S104). On the other hand, if the selected execution module 13a is not packed (No at Step S103), the unpacking unit 14a outputs the execution module 13a as it is to the disassembly unit 14b.
逆アセンブル部14bは、入力された実行モジュール13aを逆アセンブルして機械語命令列を抽出する(ステップS105)。続いて、縮約命令列生成部14cは、抽出された機械語命令列から縮約命令列13bを生成する(ステップS106)。こうして、ステップS101で選択された実行モジュール13aに対応する縮約命令列13bが生成された後、ステップS101から処理手順が再開され、アンパッキング部14aが、記憶部13に記憶されている実行モジュール13aのうち未選択のものの選択を試みる。 The disassembly unit 14b disassembles the input execution module 13a to extract a machine language instruction string (step S105). Subsequently, the contracted instruction sequence generation unit 14c generates a contracted instruction sequence 13b from the extracted machine language instruction sequence (step S106). Thus, after the contracted instruction sequence 13b corresponding to the execution module 13a selected in step S101 is generated, the processing procedure is restarted from step S101, and the unpacking unit 14a is stored in the storage unit 13. Attempts to select an unselected one among 13a.
そして、ステップS101において全ての実行モジュール13aを選択済であった場合(ステップS102肯定)、最長共通部分列抽出部14dが、縮約命令列13bの組合せのうち未選択のものを1つ選択する(ステップS107)。選択できた場合(ステップS108否定)、最長共通部分列抽出部14dが、選択した縮約命令列13bの組合せから最長共通部分列を抽出する(ステップS109)。そして、類似性算出部14eが、抽出された最長共通部分列に基づいて、ステップS107で選択された縮約命令列13bの組合せに対応する機械語命令列の組合せの類似性を表す類似度を算出する(ステップS110)。
If all execution modules 13a have been selected in step S101 (Yes in step S102), the longest common partial
こうして、ステップS107で選択された縮約命令列13bの組合せに対応する機械語命令列の組合せの類似度が算出された後、ステップS107から処理手順が再開され、最長共通部分列抽出部14dが、縮約命令列13bの組合せのうち未選択のものの選択を試みる。そして、ステップS107において全ての組合せが選択済であった場合(ステップS108肯定)、類似性算出部14eが、それまでに算出した各類似度から類似度行列データ13cを生成し(ステップS111)、一連の処理が終了する。
Thus, after the similarity of the combination of machine language instruction sequences corresponding to the combination of the reduced instruction sequence 13b selected in step S107 is calculated, the processing procedure is restarted from step S107, and the longest common
上述してきたように、本実施例では、機械語命令列から各機械語命令のオペランド部分を除いた縮約命令列に基づいて機械語命令列の類似性を算出することとしたので、機械語命令列の類似性を少ない計算量で高精度に算出することができる。 As described above, in this embodiment, since the similarity of the machine language instruction sequence is calculated based on the reduced instruction sequence obtained by removing the operand part of each machine language instruction from the machine language instruction sequence, the machine language The similarity of instruction sequences can be calculated with a small amount of calculation with high accuracy.
実施例1では、機械語命令列から縮約命令列を生成し、縮約命令列から抽出した最長共通部分列の長さに基づいて機械語命令列の類似性を算出することとしたが、縮約命令列を用いて機械語命令列の類似性を解析する方式は、これに限定されない。そこで、実施例2では、縮約命令列を用いて機械語命令列の類似性を解析する他の方式の例について説明する。なお、以下の説明では、既に説明した部位と同様の部位については、既に説明した部位と同一の符号を付して、重複する説明を省略する。 In the first embodiment, a reduced instruction sequence is generated from the machine language instruction sequence, and the similarity of the machine language instruction sequence is calculated based on the length of the longest common subsequence extracted from the reduced instruction sequence. The method of analyzing the similarity between machine language instruction sequences using the reduced instruction sequence is not limited to this. Therefore, in the second embodiment, an example of another method for analyzing the similarity of machine language instruction sequences using a reduced instruction sequence will be described. In the following description, the same parts as those already described are denoted by the same reference numerals as those already described, and redundant description is omitted.
まず、本実施例に係る類似性算出装置20の構成について説明する。図5は、類似性算出装置20の構成を示すブロック図である。図5に示すように、類似性算出装置20は、表示部11と、入力部12と、記憶部23と、制御部24とを有する。
First, the configuration of the
記憶部23は、制御部14が処理結果として生成する類似度行列データ13cではなく、制御部24が処理結果として生成する差分解析結果データ23cの格納場所として利用される点において、図1に示した記憶部13と相違する。
The
制御部24は、類似性算出部14eに代えて類似性算出部24eを有する点において、図1に示した制御部14と相違する。類似性算出部24eは、最長共通部分列抽出部14dによって抽出された各最長共通部分列を、その最長共通部分列の抽出元である2つの縮約命令列のそれぞれと比較して、それぞれの縮約命令列に固有の命令を抽出し、差分解析結果データ23cを生成する。そのようにそれぞれの縮約命令列に固有の命令を抽出することにより、例えば、改変が加えられたマルウェアについて、改変された箇所に注目して解析を行うことが容易になる。
The
2つの機械語命令列をA、Bとし、それぞれに対応する縮約命令列をCA、CBとし、それぞれ縮約命令列の長さをL(CA)、L(CB)とすると、最長共通部分列抽出部14dによって抽出されるCAとCBの最長共通部分列をLCS(CA,CB)とする。この場合、類似性算出部24eは、LCS(CA,CB)とCAを先頭から順に比較することにより、CAには存在するがLCS(CA,CB)に存在しない縮約命令と、CAにもLCS(CA,CB)にも存在する縮約命令を特定する。このうち、前者がCAに固有の命令に相当する。また、類似性算出部24eは、LCS(CA,CB)とCBを先頭から順に比較することにより、CBには存在するがLCS(CA,CB)に存在しない縮約命令と、CBにもLCS(CA,CB)にも存在する縮約命令を特定する。このうち、前者がCBに固有の命令に相当する。
If the two machine language instruction sequences are A and B, the corresponding reduced instruction sequences are CA and CB, and the lengths of the reduced instruction sequences are L (CA) and L (CB), respectively, the longest common part The longest common partial sequence of CA and CB extracted by the
類似性算出部24eが出力する差分解析結果データ23cの一例を図6に示す。図6に示す例は、複数の機械語命令列のうち、機械語命令列Aと機械語命令列Bを対象として差分を抽出した場合の差分解析結果データ23cの例であり、XML形式で作成されている。なお、図6に示す例では、機械語命令列Aと機械語命令列Bの差分以外に、最長共通部分列に含まれる命令が、機械語命令列Aと機械語命令列Bの共通部分として出力されている。 An example of the difference analysis result data 23c output by the similarity calculation unit 24e is shown in FIG. The example shown in FIG. 6 is an example of the difference analysis result data 23c when a difference is extracted for a machine language instruction sequence A and a machine language instruction sequence B among a plurality of machine language instruction sequences, and is generated in an XML format. Has been. In the example shown in FIG. 6, in addition to the difference between the machine language instruction sequence A and the machine language instruction sequence B, the instruction included in the longest common partial sequence is the common part of the machine language instruction sequence A and the machine language instruction sequence B. It is output.
図6に示す例では、「機械語命令列1」というタグが、差分の抽出対象の一方が機械語命令列Aであることを示しており、「機械語命令列2」というタグが、差分の抽出対象の他方が機械語命令列Bであることを示している。また、「固有縮約命令1」というタグは、機械語命令列Aに固有の縮約命令を含むタグであり、「固有縮約命令2」というタグは、機械語命令列Bに固有の縮約命令を含むタグであり、「共通縮約命令」というタグは、機械語命令列Aと機械語命令列Bに固有の縮約命令を含むタグである。「固有縮約命令1」、「固有縮約命令2」、「共通縮約命令」の各タグには、縮約命令列における当該縮約命令の行番号と、当該縮約命令の各項目の値を含んだ「縮約命令」というタグが0個以上含まれている。
In the example shown in FIG. 6, the tag “machine
なお、図6に示す例では、差分として縮約命令の内容が出力されているが、縮約命令列内の各縮約命令を何らかの方式で変換元の機械語命令と予め関連付けておいたり、縮約命令列における縮約命令の行番号に基づいて縮約命令の変換元の機械語命令を動的に特定したりすることによって、差分として縮約命令の変換元の機械語命令の内容を出力することとしてもよい。 In the example shown in FIG. 6, the content of the contracted instruction is output as a difference, but each contracted instruction in the contracted instruction sequence is associated in advance with the machine language instruction of the conversion source in some way, By dynamically specifying the machine language instruction that is the conversion source of the reduced instruction based on the line number of the reduced instruction in the reduced instruction sequence, the contents of the machine language instruction that is the conversion source of the reduced instruction are obtained as a difference. It is good also as outputting.
また、差分解析結果データ23cについては、表形式やグラフィカルな形式で差分解析結果データ23cを表示部11や図示しない印刷装置にできるように類似性算出装置20を構成することとしてもよいし、ネットワークや記憶媒体を介して差分解析結果データ23cを他の装置へ転送できるように類似性算出装置20を構成することとしてもよい。
For the difference analysis result data 23c, the
次に、図5に示した類似性算出装置20の動作について、図7に示したフローチャートを参照しながら説明する。なお、ステップS201〜S206については、図4に示したフローチャートと同一の内容であるため、説明を省略する。
Next, the operation of the
ステップS201において全ての実行モジュール13aを選択済であった場合(ステップS202肯定)、最長共通部分列抽出部14dが、縮約命令列13bの組合せのうち未選択のものを1つ選択する(ステップS207)。選択できた場合(ステップS208否定)、最長共通部分列抽出部14dが、選択した縮約命令列13bの組合せから最長共通部分列を抽出する(ステップS209)。そして、類似性算出部24eが、抽出された最長共通部分列に基づいて、ステップS207で選択された縮約命令列13bの組合せの差分解析結果データ23cを生成する(ステップS210)。
If all the execution modules 13a have been selected in step S201 (Yes in step S202), the longest common
こうして、ステップS207で選択された縮約命令列13bの組合せの差分解析結果データ23cが生成された後、ステップS207から処理手順が再開され、最長共通部分列抽出部14dが、縮約命令列13bの組合せのうち未選択のものの選択を試みる。そして、ステップS207において全ての組合せが選択済であった場合(ステップS208肯定)、一連の処理手順が完了する。
Thus, after the difference analysis result data 23c of the combination of the contracted instruction sequence 13b selected in step S207 is generated, the processing procedure is restarted from step S207, and the longest common partial
上述してきたように、縮約命令列を用いることにより、縮約命令列から抽出した最長共通部分列の長さに基づいて機械語命令列の類似性を算出する以外にも、機械語命令列の類似性を多様に解析することができる。 As described above, by using the contracted instruction sequence, in addition to calculating the similarity of the machine language instruction sequence based on the length of the longest common subsequence extracted from the contracted instruction sequence, the machine language instruction sequence Can be analyzed in various ways.
なお、上述してきた各実施例の実施形式は、要旨を逸脱しない範囲で種々に変更することができる。例えば、各実施例の実施形式は、適宜組み合わせて実施することができる。また、図1に示した類似性算出装置10の制御部14や図2に示した類似性算出装置20の制御部24の機能をソフトウェアとして実装し、これをコンピュータで実行することにより、類似性算出装置10や類似性算出装置20と同等の機能を実現することもできる。以下に、類似性算出装置10の制御部14の機能をソフトウェアとして実装した類似性算出プログラム171を実行するコンピュータの一例を示す。
In addition, the implementation form of each Example mentioned above can be variously changed in the range which does not deviate from a summary. For example, the implementation forms of the embodiments can be implemented in combination as appropriate. Further, the functions of the control unit 14 of the similarity calculation device 10 shown in FIG. 1 and the
図8は、類似性算出プログラム171を実行するコンピュータ100を示す機能ブロック図である。コンピュータ100は、各種演算処理を実行するCPU(Central Processing Unit)110と、ユーザからのデータの入力を受け付ける入力装置120と、各種情報を表示するモニタ130と、記録媒体からプログラム等を読み取る媒体読取り装置140と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置150と、各種情報を一時記憶するRAM(Random Access Memory)160と、ハードディスク装置170とをバスで接続して構成される。
FIG. 8 is a functional block diagram illustrating the
そして、ハードディスク装置170には、図1に示した制御部14と同様の機能を有する類似性算出プログラム171と、図1に示した記憶部13に記憶される実行モジュール13aに対応する機械語命令列172とが記憶される。なお、機械語命令列172は、ネットワークを介して接続された他のコンピュータに、コンピュータ100がアクセス可能な態様で記憶されていてもよい。
The
そして、CPU110が類似性算出プログラム171をハードディスク装置170から読み出してRAM160に展開することにより、類似性算出プログラム171は、類似性算出プロセス161として機能するようになる。そして、類似性算出プロセス161は、機械語命令列172等を適宜RAM160上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行し、図1に示した類似度行列データ13cに相当する算出結果データ173をハードディスク装置170等に記憶させる。
Then, the
なお、上記の類似性算出プログラム171は、必ずしもハードディスク装置170に格納されている必要はなく、CD−ROM等の記憶媒体に記憶されたこのプログラムを、コンピュータ100が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等を介してコンピュータ100に接続される他のコンピュータ(またはサーバ)等にこのプログラムを記憶させておき、コンピュータ100がこれらからプログラムを読み出して実行するようにしてもよい。
The similarity calculation program 171 is not necessarily stored in the
本発明にかかる類似性算出装置、類似性算出方法および類似性算出プログラムは、マルウェアのように悪意に基づいて改変された機械語命令列の類似性を算出する目的だけでなく、例えば、機構追加や不具合修正等の目的で改変された機械語命令列の類似性を算出する目的や、ソースコードの盗用が疑われる機械語命令列の類似性を算出する目的のように多様な目的で利用することができる。 The similarity calculation device, the similarity calculation method, and the similarity calculation program according to the present invention are not only for the purpose of calculating the similarity of a machine language instruction sequence modified based on malicious intentions like malware, but also for example, a mechanism addition It is used for various purposes such as calculating the similarity of machine language instruction sequences modified for the purpose of correcting bugs, etc., and calculating the similarity of machine language instruction sequences suspected of theft of source code. be able to.
10、20 類似性算出装置
11 表示部
12 入力部
13、23 記憶部
13a 実行モジュール
13b 縮約命令列
13c 類似度行列データ
14、24 制御部
14a アンパッキング部
14b 逆アセンブル部
14c 縮約命令列生成部
14d 最長共通部分列抽出部
14e、24e 類似性算出部
23c 差分解析結果データ
100 コンピュータ
110 CPU
120 入力装置
130 モニタ
140 媒体読取り装置
150 ネットワークインターフェース装置
160 RAM
161 類似性算出プロセス
170 ハードディスク装置
171 類似性算出プログラム
172 機械語命令列
173 算出結果データ
DESCRIPTION OF
120
161
Claims (7)
前記複数の機械語命令列毎に、機械語命令列に含まれる各機械語命令からオペランド部分を取り除いた縮約命令の配列である縮約命令列を生成する縮約命令列生成手段と、
前記縮約命令列生成手段によって生成された縮約命令列を比較して、最長共通部分列を抽出する最長共通部分列抽出手段と、
前記最長共通部分列抽出手段によって抽出された最長共通部分列に基づいて、前記機械語命令列の類似性を算出する類似性算出手段と
を備えたことを特徴とする類似性算出装置。 A similarity calculation device that calculates the similarity of a plurality of machine language instruction sequences,
Reduced instruction sequence generation means for generating a reduced instruction sequence that is an array of reduced instructions obtained by removing an operand part from each machine language instruction included in the machine language instruction sequence for each of the plurality of machine language instruction sequences;
A longest common partial sequence extracting means for comparing the reduced instruction sequences generated by the reduced instruction sequence generating means and extracting a longest common partial sequence;
A similarity calculation device comprising: similarity calculation means for calculating similarity of the machine language instruction sequence based on the longest common partial sequence extracted by the longest common partial sequence extraction means.
前記複数の機械語命令列毎に、機械語命令列に含まれる各機械語命令からオペランド部分を取り除いた縮約命令の配列である縮約命令列を生成する縮約命令列生成工程と、
前記縮約命令列生成工程において生成された縮約命令列を比較して、最長共通部分列を抽出する最長共通部分列抽出工程と、
前記最長共通部分列抽出工程において抽出された最長共通部分列に基づいて、前記機械語命令列の類似性を算出する類似性算出工程と
を含んだことを特徴とする類似性算出方法。 A similarity calculation method for calculating the similarity of a plurality of machine language instruction sequences,
For each of the plurality of machine language instruction sequences, a contracted instruction sequence generating step for generating a contracted instruction sequence that is an array of contracted instructions obtained by removing an operand part from each machine language instruction included in the machine language instruction sequence;
A longest common partial sequence extraction step of comparing the reduced instruction sequences generated in the reduced instruction sequence generation step and extracting a longest common partial sequence;
A similarity calculation step of calculating the similarity of the machine language instruction sequence based on the longest common subsequence extracted in the longest common subsequence extraction step.
前記複数の機械語命令列毎に、機械語命令列に含まれる各機械語命令からオペランド部分を取り除いた縮約命令の配列である縮約命令列を生成する縮約命令列生成手順と、
前記縮約命令列生成手順によって生成された縮約命令列を比較して、最長共通部分列を抽出する最長共通部分列抽出手順と、
前記最長共通部分列抽出手順によって抽出された最長共通部分列に基づいて、前記機械語命令列の類似性を算出する類似性算出手順と
をコンピュータに実行させることを特徴とする類似性算出プログラム。 A similarity calculation program for calculating the similarity of a plurality of machine language instruction sequences,
For each of the plurality of machine language instruction sequences, a contracted instruction sequence generation procedure for generating a contracted instruction sequence that is an array of contracted instructions obtained by removing an operand part from each machine language instruction included in the machine language instruction sequence;
A longest common partial sequence extraction procedure for comparing the reduced instruction sequences generated by the reduced instruction sequence generation procedure and extracting the longest common partial sequence;
A similarity calculation program for causing a computer to execute a similarity calculation procedure for calculating similarity of the machine language instruction sequence based on the longest common partial sequence extracted by the longest common subsequence extraction procedure.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009239014A JP5301411B2 (en) | 2009-10-16 | 2009-10-16 | Similarity calculation device, similarity calculation method, similarity calculation program, and similarity analysis device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009239014A JP5301411B2 (en) | 2009-10-16 | 2009-10-16 | Similarity calculation device, similarity calculation method, similarity calculation program, and similarity analysis device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011086147A true JP2011086147A (en) | 2011-04-28 |
JP5301411B2 JP5301411B2 (en) | 2013-09-25 |
Family
ID=44079041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009239014A Active JP5301411B2 (en) | 2009-10-16 | 2009-10-16 | Similarity calculation device, similarity calculation method, similarity calculation program, and similarity analysis device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5301411B2 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101547019B1 (en) | 2013-09-05 | 2015-08-24 | 한양대학교 산학협력단 | Method and computer system for extracting longest common sub-sequence |
WO2017061270A1 (en) * | 2015-10-09 | 2017-04-13 | 日本電信電話株式会社 | Vulnerability discovering device, vulnerability discovering method, and vulnerability discovering program |
JP2017151977A (en) * | 2016-02-23 | 2017-08-31 | 富士通株式会社 | Method and program for repairing software program |
JP2018133081A (en) * | 2017-02-17 | 2018-08-23 | 富士通株式会社 | Method calling synthesis for software program recovery |
JP2022008591A (en) * | 2015-07-15 | 2022-01-13 | サイランス・インコーポレイテッド | Malware detection |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06250861A (en) * | 1993-01-19 | 1994-09-09 | Internatl Business Mach Corp <Ibm> | Method and equipment for evaluating and sampling computer virus and signature of other undesired existing software |
JP2008519374A (en) * | 2004-11-04 | 2008-06-05 | テルコーディア テクノロジーズ インコーポレイテッド | Exploit code detection in network flows |
-
2009
- 2009-10-16 JP JP2009239014A patent/JP5301411B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06250861A (en) * | 1993-01-19 | 1994-09-09 | Internatl Business Mach Corp <Ibm> | Method and equipment for evaluating and sampling computer virus and signature of other undesired existing software |
JP2008519374A (en) * | 2004-11-04 | 2008-06-05 | テルコーディア テクノロジーズ インコーポレイテッド | Exploit code detection in network flows |
Non-Patent Citations (4)
Title |
---|
CSNG200800113003; 安本幸希,ほか2名: 'マルウェアコードの類似度判定による機能推定' 電子情報通信学会技術研究報告 Vol.107 No.347 第107巻,第347号, 20071114, pp.31-36, 社団法人電子情報通信学会 * |
JPN6013009490; Christian Kreibich,ほか1名: 'Honeycomb . Creating Intrusion DetectionSignatures Using Honeypots' ACM SIGCOMM Computer Communications Review Volume 34, Number 1, 200401, ACM * |
JPN6013009491; 安本幸希,ほか2名: 'マルウェアコードの類似度判定による機能推定' 電子情報通信学会技術研究報告 Vol.107 No.347 第107巻,第347号, 20071114, pp.31-36, 社団法人電子情報通信学会 * |
JPN6013009492; 岩村 誠,ほか2名: 機械語命令列の類似性に基づく自動マルウェア分類システム , 20091028, pp.1-26, NTT情報流通プラットフォーム研究所 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101547019B1 (en) | 2013-09-05 | 2015-08-24 | 한양대학교 산학협력단 | Method and computer system for extracting longest common sub-sequence |
JP2022008591A (en) * | 2015-07-15 | 2022-01-13 | サイランス・インコーポレイテッド | Malware detection |
JP7246448B2 (en) | 2015-07-15 | 2023-03-27 | サイランス・インコーポレイテッド | malware detection |
US11928213B2 (en) | 2015-07-15 | 2024-03-12 | Cylance Inc. | Malware detection |
WO2017061270A1 (en) * | 2015-10-09 | 2017-04-13 | 日本電信電話株式会社 | Vulnerability discovering device, vulnerability discovering method, and vulnerability discovering program |
JPWO2017061270A1 (en) * | 2015-10-09 | 2018-02-22 | 日本電信電話株式会社 | Vulnerability detection device, vulnerability detection method, and vulnerability detection program |
US10747887B2 (en) | 2015-10-09 | 2020-08-18 | Nippon Telegraph And Telephone Corporation | Vulnerability detection device, vulnerability detection method, and vulnerability detection program |
JP2017151977A (en) * | 2016-02-23 | 2017-08-31 | 富士通株式会社 | Method and program for repairing software program |
JP2018133081A (en) * | 2017-02-17 | 2018-08-23 | 富士通株式会社 | Method calling synthesis for software program recovery |
JP7056139B2 (en) | 2017-02-17 | 2022-04-19 | 富士通株式会社 | Method call synthesis for software program repair |
Also Published As
Publication number | Publication date |
---|---|
JP5301411B2 (en) | 2013-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cakir et al. | Malware classification using deep learning methods | |
JP5579922B2 (en) | Double DFA decomposition for large-scale regular expression matching | |
Gao et al. | Malware classification for the cloud via semi-supervised transfer learning | |
JP5301411B2 (en) | Similarity calculation device, similarity calculation method, similarity calculation program, and similarity analysis device | |
CN109983464B (en) | Detecting malicious scripts | |
US11574054B2 (en) | System, method and apparatus for malicious software detection | |
US11916937B2 (en) | System and method for information gain for malware detection | |
US11328793B2 (en) | Accelerating genomic data parsing on field programmable gate arrays | |
CN113688240B (en) | Threat element extraction method, threat element extraction device, threat element extraction equipment and storage medium | |
CN116861431B (en) | Malicious software classification method and system based on multichannel image and neural network | |
Ali et al. | Benchmarking machine learning robustness in COVID-19 genome sequence classification | |
CN107577943B (en) | Sample prediction method and device based on machine learning and server | |
JP6984761B2 (en) | Information processing equipment and information processing programs | |
JP5169837B2 (en) | Finite automaton generation system for character string matching, generation method thereof, and generation program | |
Naeem et al. | Digital forensics for malware classification: An approach for binary code to pixel vector transition | |
JP6367959B2 (en) | Partial character string position detection apparatus, partial character string position detection method, and program | |
Luh et al. | SEQUIN: a grammar inference framework for analyzing malicious system behavior | |
Snytsar et al. | Parallel approach to sliding window sums | |
JP6750674B2 (en) | Program analysis system, program analysis method, and computer program | |
Pungila et al. | Accelerating DNA biometrics in criminal investigations through GPU-based pattern matching | |
JP5571035B2 (en) | Specific apparatus, specific method, and specific program | |
JP2010146273A (en) | Document retrieval device and program | |
Bonizzoni et al. | FSG: fast string graph construction for de novo assembly of reads data | |
WO2022201309A1 (en) | Information complementing device, information complementing method, and computer readable recording medium | |
KR20150089570A (en) | Method and apparatus of dynamic analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20110520 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20110520 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120309 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130305 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130418 |
|
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: 20130618 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130619 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5301411 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |