JP5989599B2 - Information processing apparatus and information processing method - Google Patents
Information processing apparatus and information processing method Download PDFInfo
- Publication number
- JP5989599B2 JP5989599B2 JP2013104528A JP2013104528A JP5989599B2 JP 5989599 B2 JP5989599 B2 JP 5989599B2 JP 2013104528 A JP2013104528 A JP 2013104528A JP 2013104528 A JP2013104528 A JP 2013104528A JP 5989599 B2 JP5989599 B2 JP 5989599B2
- Authority
- JP
- Japan
- Prior art keywords
- tag
- document file
- instruction
- program
- data
- 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.)
- Expired - Fee Related
Links
- 230000010365 information processing Effects 0.000 title claims description 27
- 238000003672 processing method Methods 0.000 title claims description 3
- 238000004458 analytical method Methods 0.000 claims description 71
- 238000000034 method Methods 0.000 claims description 20
- 238000001514 detection method Methods 0.000 claims description 19
- 238000012544 monitoring process Methods 0.000 claims description 15
- 230000001902 propagating effect Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 20
- 230000006399 behavior Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 230000003068 static effect Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明は、情報処理装置、および、情報処理方法に関する。 The present invention relates to an information processing apparatus and an information processing method.
ドキュメントファイルを利用した攻撃が増加傾向にある。悪意のある攻撃コードを持たせたワード(登録商標)、エクセル(登録商標)、PDF(Portable Document Format)といったドキュメントファイルをメール等に添付し、攻撃対象者に送りつけ、ドキュメントファイル操作用プログラムで開かせることで、ドキュメントファイル操作用プログラムの脆弱性を攻撃し、攻撃対象者の環境上で任意のコードを実行する。 Attacks using document files are increasing. Attach document files such as Word (registered trademark), Excel (registered trademark), PDF (Portable Document Format) with malicious attack code to e-mails, etc. By opening it, the vulnerability of the document file manipulation program is attacked, and arbitrary code is executed on the attack target person's environment.
ここでは、まず一般的なドキュメントファイルを利用した攻撃の流れを説明する。攻撃に利用するドキュメントファイルは、ドキュメントファイル操作用プログラムの脆弱性を攻撃する攻撃コードと、攻撃成功後、より複雑な処理を行うための実行コードとをデータとして自身のデータセクションに保持している。 Here, the attack flow using a general document file will be described first. The document file used for the attack holds the attack code that attacks the vulnerability of the document file manipulation program and the execution code for performing more complicated processing after the attack succeeds in its own data section. .
このドキュメントファイルが、ドキュメントファイル操作用プログラムにより開かれると、攻撃コードが、このドキュメントファイル操作用プログラムの脆弱性を攻撃し、攻撃が成功すると制御が攻撃コードに移る。その後、攻撃コードがドキュメントファイル内のデータセクションから実行コードを取り出し、ファイルシステム上に実行可能ファイルとして保存する。そして、攻撃コードがその実行可能ファイルを実行することで、攻撃対象者のコンピュータにウイルス等が感染する。 When the document file is opened by the document file operation program, the attack code attacks the vulnerability of the document file operation program, and when the attack is successful, control is transferred to the attack code. Thereafter, the attack code extracts the execution code from the data section in the document file and stores it as an executable file on the file system. When the attack code executes the executable file, a virus or the like infects the attack target computer.
このように攻撃コードを持つドキュメントファイル(以下、適宜、「悪意のあるドキュメントファイル」という)を検知・解析するためには、従来のマルウェア検知・解析のための手法と同じものが利用される。 In order to detect and analyze a document file having an attack code (hereinafter, referred to as “malicious document file” as appropriate) in this way, the same method as the conventional method for detecting and analyzing malware is used.
大きく分けると、攻撃コードを含むドキュメントファイルをドキュメントファイル操作用プログラムにて実際に開き攻撃コードを実行させて調査する動的な検知・解析手法と、攻撃コードを実行させずに調査する静的な検知・解析手法とが存在する。 Broadly speaking, a dynamic detection / analysis technique that investigates by actually opening a document file containing attack code with a program for manipulating document files and executing attack code, and static that investigates without executing attack code. There are detection and analysis methods.
静的な検知・解析手法としては、予め攻撃コードを含むドキュメントファイルや攻撃コードに特徴的なバイト列をシグネチャという形で保持しておき、入力されたドキュメントファイルとシグネチャとのパターンマッチングを行う手法が存在する(非特許文献1参照)。この手法は、ドキュメントファイルを実際に開くことなく攻撃を検知できるので、攻撃の検知・解析を高速にかつ大量に行うことができる。 As a static detection and analysis method, a document file containing attack code and a byte sequence characteristic of the attack code are stored in the form of a signature, and pattern matching is performed between the input document file and the signature. (See Non-Patent Document 1). Since this method can detect an attack without actually opening a document file, it can detect and analyze the attack at high speed and in large quantities.
しかしながら、このパターンマッチングによる静的な解析手法は、ドキュメントファイル内のバイト列が難読化された場合、攻撃の検知漏れが発生する可能性がある。 However, in this static analysis method using pattern matching, if the byte sequence in the document file is obfuscated, there is a possibility that an omission of attack detection may occur.
これは、ドキュメントファイル内の攻撃コードが難読化されると、見た目の上でのバイト列が本来のバイト列から変化してしまうからである。例えば、攻撃コード部分とある特定の値とでXORを取っただけでも見た目上のバイト列が変わってしまい、従来の攻撃コードのパターンを表現しているシグネチャでは攻撃を検知することができない。ちなみに、難読化されたドキュメントファイルは、そのドキュメントファイルが開かれた場合、何かしらのデコード処理を走らせることで、実行時に本来のパターンが現れる。 This is because when the attack code in the document file is obfuscated, the apparent byte sequence changes from the original byte sequence. For example, even if XOR is performed between the attack code portion and a specific value, the apparent byte sequence changes, and an attack cannot be detected with a signature representing a conventional attack code pattern. By the way, the obfuscated document file, when the document file is opened, performs some kind of decoding processing, and the original pattern appears at the time of execution.
一方、動的な検知・解析手法は、入力されたドキュメントファイルをドキュメントファイル操作用プログラムで開き、そのときの挙動を基に検知する手法である(非特許文献2参照)。この手法では実際にドキュメントファイルとドキュメントファイル操作用プログラムを動作させるので、攻撃コード自体にデコード処理を行わせることができる。そのため、例え悪意のあるコード部分に難読化等が施されていても問題になることはない。 On the other hand, the dynamic detection / analysis method is a method for detecting an input document file based on the behavior at that time by opening the input document file with a document file operation program (see Non-Patent Document 2). In this method, since the document file and the document file operation program are actually operated, the attack code itself can be decoded. Therefore, even if the malicious code part is obfuscated, there is no problem.
しかしながら、ドキュメントファイルとドキュメントファイル操作用プログラムの挙動に基づく攻撃の検知・解析手法には次のような問題点がある。 However, the attack detection / analysis method based on the behavior of the document file and the document file manipulation program has the following problems.
一つは、動的な検知・解析手法は、検知基準となる悪意のある挙動を定義する必要がある。これは、ドキュメントファイルのタイプや攻撃種類ごとに挙動の定義が異なる。また、ドキュメントファイル操作プログラムのバージョンごとにも検知基準が異なる可能性がある。さらに、攻撃に利用される攻撃コード、マルウェアごとにも検知基準を調整する必要がある。そのため、挙動を基にした攻撃コードを含むドキュメントファイルの攻撃の検知は、誤検知や検知漏れがないようにするのが難しい。 For one, dynamic detection / analysis methods need to define malicious behaviors that serve as detection criteria. This is because the definition of behavior differs depending on the document file type and attack type. Also, the detection criteria may be different for each version of the document file operation program. Furthermore, it is necessary to adjust the detection criteria for each attack code and malware used for the attack. For this reason, it is difficult to detect an attack of a document file including an attack code based on behavior so that there is no false detection or detection omission.
もう一つは、攻撃コードを含むドキュメントファイルをドキュメントファイル操作用プログラムで開いた場合、攻撃コードを含むドキュメントファイルに関する部分による挙動と、ドキュメントファイル操作用のプログラム部分による挙動、つまり通常のドキュメントファイル操作用プログラムの動作との区別が難しい。これらの区別をつけるために例えばホワイトリストを作成し、全体の挙動からドキュメントファイル操作用プログラムの挙動を除外する方法が考えられるが、この場合もドキュメントファイル操作用プログラムごとに異なったホワイトリストを作成する必要があり、効率が悪い上に精度の高いホワイトリストを作成するのは容易ではない。 The other is that when a document file containing attack code is opened with a document file operation program, the behavior related to the document file containing attack code and the behavior based on the program portion for document file operation, that is, normal document file operation It is difficult to distinguish it from the operation of the computer program. In order to make these distinctions, for example, a method of creating a white list and excluding the behavior of the program for manipulating the document file from the overall behavior can be considered, but in this case also a different white list is created for each program for manipulating the document file Therefore, it is not easy to create a white list with high efficiency and accuracy.
そこで、本発明は、前記した問題を解決し、攻撃コードを含むドキュメントの攻撃の検知・解析を容易にすることを課題とする。 Therefore, an object of the present invention is to solve the above-described problems and facilitate detection and analysis of an attack of a document including an attack code.
前記した課題を解決するため、本発明にかかる情報処理装置は、ドキュメントファイルに対して、前記ドキュメントファイルを識別するためのタグを設定するタグ付与部と、プログラムを動作させ、前記ドキュメントファイルを読み込むプログラム実行部と、前記タグの設定されたデータが前記プログラム実行部で実行する命令に渡されたとき、前記タグを命令の実行結果に伝搬させるテイント解析部と、前記プログラム実行部により実行される命令の保持しているタグが、前記ドキュメントに設定したものであるか否かを判断し、前記命令の保持しているタグが、前記ドキュメントファイルに設定したものであるとき、前記ドキュメントファイルによる攻撃が行われたことを検知する判定部と、前記判定部による攻撃の検知以降、前記ドキュメントファイルに設定されたタグを持つ命令を解析対象と判断する命令監視部と、前記命令監視部において解析対象と判断された命令の実行を解析する解析実行部とを備える。
In order to solve the above-described problems, an information processing apparatus according to the present invention operates a tag adding unit that sets a tag for identifying the document file and a program to read the document file. It is executed by a program execution unit, a taint analysis unit that propagates the tag to an instruction execution result when the data set with the tag is passed to an instruction to be executed by the program execution unit, and the program execution unit It is determined whether or not the tag held by the instruction is set in the document. When the tag held in the instruction is set in the document file, the attack by the document file is performed. A determination unit that detects the occurrence of an attack, and after the detection of an attack by the determination unit, Comprising an instruction monitoring part for judging instruction having a tag set to placement file analyzed, the analyzing unit for analyzing the execution of the is determined analyzed in the instruction monitor instruction.
本発明によれば、攻撃コードを含むドキュメントの攻撃の検知・解析を容易にすることを目的とする。 An object of the present invention is to facilitate the detection and analysis of an attack on a document including an attack code.
[第1の実施形態]
[全体構成]
以下、本発明を実施するための形態(実施形態)について説明する。図1は、情報処理装置の全体構成を示す図である。図1に示すように、情報処理装置は、ハードウェア1、ホストOS2、仮想マシンソフトウェア3、仮想マシン10を有する。
[First Embodiment]
[overall structure]
Hereinafter, modes (embodiments) for carrying out the present invention will be described. FIG. 1 is a diagram illustrating the overall configuration of the information processing apparatus. As illustrated in FIG. 1, the information processing apparatus includes
ハードウェア1は、情報処理装置を構成する電子回路や周辺機器であり、例えば、メモリ、CPU(Central Processing Unit)等である。ホストOS2は、仮想マシンを動作させる基盤となるOSであり、ハードウェア1を用いて実行される。仮想マシンソフトウェア3は、ハードウェア1を用いて仮想マシンを提供するソフトウェアであり、ここでは、仮想マシン10を動作させる。例えば、仮想マシンソフトウェア3は、仮想ディスク、仮想物理メモリ、仮想CPU等をゲストOSに割当てて、仮想マシンを動作させる。
The
仮想マシン10は、例えば、エミュレータ型の仮想マシンであり、仮想マシンソフトウェア3から提供された仮想ディスク、仮想物理メモリ、仮想CPU等を用いてゲストOSを動作させて、各種処理を実行する仮想的な情報処理装置である。
The
このような構成において情報処理装置は、まず攻撃コードを含むドキュメントファイルにテイントタグ(タグ)を設定しておく。そして、情報処理装置は、ドキュメントを読み込み、操作するためのドキュメントファイル操作用プログラムを動作させ、このドキュメントファイルを開く。その後、情報処理装置のCPU(仮想CPU)が命令をフェッチした際、その命令が保持しているテイントタグをチェックする。ここで、チェックしたテイントタグが、前記したドキュメントファイルに設定したものだった場合、このドキュメントファイルによる攻撃を検知する。 In such a configuration, the information processing apparatus first sets a taint tag (tag) in a document file including an attack code. Then, the information processing apparatus operates a document file operation program for reading and manipulating the document, and opens the document file. Thereafter, when the CPU (virtual CPU) of the information processing apparatus fetches an instruction, the taint tag held by the instruction is checked. If the checked taint tag is set in the document file, an attack by this document file is detected.
つまり、通常のドキュメントファイルが、ドキュメントファイル操作用プログラムにより開かれ、仮想物理メモリ上にデータが書き出されても、書き出したデータが実行されることはない。しかし、仮想物理メモリ上に書き出されたデータが実行されたということは、そのドキュメントファイルに何らかの攻撃コードが含まれている可能性が高い、つまり、その実行処理はドキュメントファイル内の攻撃コードによる攻撃である可能性が高いと判断できる。 That is, even if a normal document file is opened by a document file operation program and data is written on the virtual physical memory, the written data is not executed. However, if the data written in virtual physical memory is executed, there is a high possibility that some attack code is included in the document file, that is, the execution process depends on the attack code in the document file. It can be determined that there is a high possibility of an attack.
そして、このような攻撃検知後、情報処理装置は、ドキュメントファイルに設定されたテイントタグを持つ命令が実行されていれば、この命令を解析対象とする。例えば、情報処理装置は、この命令により実行されたAPI(Application Programming Interface)、システムコール、ライブラリ関数等を解析対象とする。一方、情報処理装置は、ドキュメントファイルに設定されたテイントタグを持たない命令が実行されていれば、この命令の実行は解析対象外とする。 After such an attack is detected, if an instruction having a taint tag set in the document file is executed, the information processing apparatus sets this instruction as an analysis target. For example, the information processing apparatus analyzes an API (Application Programming Interface), a system call, a library function, and the like executed by this instruction. On the other hand, if an instruction that does not have a taint tag set in the document file is executed, the information processing apparatus excludes execution of this instruction.
このようにすることで、情報処理装置は、攻撃コードを含むドキュメントファイルの攻撃の検知および監視を行うことができる。 In this way, the information processing apparatus can detect and monitor an attack on a document file including an attack code.
[仮想マシンの構成]
次に、図1に示した仮想マシンの構成を説明する。なお、ハードウェア1、ホストOS2、仮想マシンソフトウェア3については、一般的な構成と同様の構成を有するので、詳細な説明は省略する。
Virtual machine configuration
Next, the configuration of the virtual machine shown in FIG. 1 will be described. Since the
図2は、仮想マシンの機能構成を示す図である。図2に示すように、仮想マシン10は、仮想物理メモリ10a、シャドウメモリ10b、仮想ディスク11a、シャドウディスク11b、仮想CPU12、仮想HWコントローラ19、および、テイントタグ付与部14を有する。
FIG. 2 is a diagram illustrating a functional configuration of the virtual machine. As shown in FIG. 2, the
仮想物理メモリ10aは、情報処理装置が有する物理メモリにおける所定領域を仮想マシン10で動作するゲストOSが使用するメモリとして割り当てることで実現された仮想的なメモリである。例えば、仮想物理メモリ10aは、仮想CPU12によって仮想ディスク11aから読み出されたプログラムやデータを記憶する。
The virtual
シャドウメモリ10bは、仮想物理メモリ10a上の値に対して設定されたテイントタグの値を保持するデータ構造体である。
The
ここで、シャドウメモリ10bの一例を説明する。図3は、シャドウメモリに記憶される情報の例を示す図である。図3に示すように、シャドウメモリ10bは、「仮想物理メモリのアドレス」と「テイントタグ」とを対応付けて記憶する。「仮想物理メモリのアドレス」は、仮想物理メモリ10a上の格納位置を示す位置情報であり、「テイントタグ」は、解析対象であること、または解析対象でないことを識別する識別子である。
Here, an example of the
図3の場合、仮想物理メモリ10aのアドレス「0000から0200」に格納されている解析対象のプログラムコードに対して、テイントタグ「11」が付与されていることを示す。また、仮想物理メモリ10aのアドレス「0310から0350」に格納されている解析対象のデータに対して、テイントタグ「05」が付与されていることを示す。なお、図3に示した数値等は、あくまで例示であり、値等を限定するものではない。
In the case of FIG. 3, the taint tag “11” is given to the program code to be analyzed stored at the addresses “0000 to 0200” of the virtual
仮想ディスク11aは、情報処理装置が有する物理ディスクにおける所定領域を仮想マシン10で動作するゲストOSが使用する領域として割り当てることで実現された仮想的なディスクである。例えば、仮想ディスク11aは、仮想CPU12が実行対象とするプログラム(ドキュメントファイル操作用プログラム等)や、プログラムの処理対象となるデータ(攻撃コードの含まれている可能性のあるドキュメントファイル等)等を記憶する。
The virtual disk 11a is a virtual disk realized by allocating a predetermined area in a physical disk included in the information processing apparatus as an area used by the guest OS operating in the
シャドウディスク11bは、仮想ディスク11a上の値に対して設定されたテイントタグの値を保持するデータ構造体である。
The
図2の仮想CPU12は、情報処理装置が有する物理CPUにおける所定処理能力を仮想マシン10で動作するゲストOSが使用するCPUとして割り当てることで実現された仮想的なCPUである。この仮想CPU12は、物理CPUが保持しているテイントタグを保持するシャドウレジスタ(図示省略)を備える。この仮想CPU12は、プログラム実行部13と、テイント解析部15と、判定部16と、命令監視部17と、解析実行部18とを備える。
The virtual CPU 12 in FIG. 2 is a virtual CPU realized by assigning a predetermined processing capability of a physical CPU included in the information processing apparatus as a CPU used by the guest OS operating in the
プログラム実行部13は、仮想ディスク11aに記憶されるプログラムを実行する。例えば、プログラム実行部13は、仮想ディスク11aから、ドキュメントファイル操作用プログラムを読み出して仮想物理メモリ10aに展開し、実行する。また、プログラム実行部13は、このドキュメントファイル操作用プログラムにより攻撃コードを含むドキュメントファイルが読み込まれた場合、この攻撃コードに基づく実行処理を行う。
The program execution unit 13 executes a program stored in the virtual disk 11a. For example, the program execution unit 13 reads a document file operation program from the virtual disk 11a, expands it in the virtual
テイント解析部15は、テイントタグが設定されたデータが仮想CPU12(具体的にはプログラム実行部13)で実行する命令に渡された際、テイントタグの伝搬ルールに基づいてテイントタグを命令の実行結果に伝搬させる。プログラム実行部13で実行する命令にテイントタグが設定されたデータが渡されるとは、具体的には、命令のオペランドで渡された値がテイントタグを保持している場合である。
The
テイントタグの伝搬ルールとしては、以下のものが考えられる。例えば、仮想CPU12において機械語命令が実行される際、1つ以上のオペランドを伴う算術演算命令、論理演算命令、データ移動命令、データコピー命令の実行の際に、ソースオペランドの1つにテイントタグを持った値が渡された場合、その命令の実行結果を保存する箇所、ディスティネーションオペランドにもテイントタグを設定するというものである。 The following are possible taint tag propagation rules. For example, when a machine language instruction is executed in the virtual CPU 12, a taint tag is assigned to one of the source operands when an arithmetic operation instruction, logical operation instruction, data movement instruction, or data copy instruction with one or more operands is executed. When a given value is passed, the taint tag is also set in the destination operand where the execution result of the instruction is stored.
テイントタグの伝搬ルールは、様々なものが考えられるが、命令の実行結果が、読み込まれた値に依存して決定されている場合、テイントタグを伝搬させるといった基本的なルールにより構成される。つまり、テイント解析部15は、プログラム実行部13の命令のうち何かしらの形でデータを扱うものに関してはテイントタグの伝搬を伴う動作が行われる。
There are various taint tag propagation rules. However, when the execution result of an instruction is determined depending on a read value, the taint tag propagation rule is constituted by a basic rule such as propagating a taint tag. In other words, the
判定部16は、プログラム実行部13にて実行している命令に解析対象を示すテイントタグが設定されているか否かを判断し、設定されていた場合は攻撃が行われたと判断する。つまり、判定部16は、ドキュメントファイルに基づく攻撃を検知する。
The
命令監視部17は、判定部16による攻撃の検知以降、そのドキュメントファイルに設定されたテイントタグを持つ命令を解析対象と判断する。
The
解析実行部18は、命令監視部17において解析対象と判断された命令の実行を監視し、攻撃コードによる命令の実行内容を解析する。例えば、解析実行部18は、解析対象の命令の実行に関して詳細なトレースログを取得し、仮想CPU12のレジスタの情報や、スタックに関する情報を一緒に取得する。
The
仮想HWコントローラ19は、仮想ディスク11aと仮想物理メモリ10aとの間、シャドウディスク11bとシャドウメモリ10bとの間のデータ送受信を制御する。例えば、仮想HWコントローラ19は、プログラム実行部13が仮想ディスク11aから読み出したプログラムを仮想物理メモリ10aに格納する。また、仮想HWコントローラ19は、プログラム等によって仮想物理メモリ10aから読み出されたデータを仮想ディスク11aに格納する。このような仮想HWコントローラ19は、テイントタグの伝搬を実行するテイント情報伝搬部19aを有する。
The
テイント情報伝搬部19aは、仮想ディスク11aと仮想物理メモリ10aとの間でテイントタグの伝播を行う。つまり、テイント情報伝搬部19aは、シャドウディスク11bとシャドウメモリ10bとの間でテイントタグを伝搬させる。例えば、仮想HWコントローラ18が、監視対象のプログラムによって仮想物理メモリ10aから読み出されたデータを仮想ディスク11aに格納するとき、これに伴い、シャドウメモリ10b上の当該読み出されたデータのテイントタグをシャドウディスク11b上に格納する。
The taint
テイントタグ付与部14は、情報処理装置の入出力インタフェース経由で、解析対象であるドキュメントファイルに設定するテイントタグの入力を受け付ける。そして、テイントタグ付与部14は、入力されたテイントタグを、解析対象であるドキュメントファイル、つまり、攻撃コードが含まれている可能性のあるドキュメントファイルに対して設定する。設定するテイントタグは、ドキュメントファイルであることが識別できればよく、ドキュメントファイル全体に対して同じテイントタグを設定してもよいし、そのドキュメントファイルのファイルフォーマットを解釈し、ファイルの意味のある区切りごとに異なるテイントタグの値を設定してもよい。 The taint tag adding unit 14 receives an input of a taint tag set in a document file to be analyzed via an input / output interface of the information processing apparatus. Then, the taint tag assigning unit 14 sets the input taint tag for a document file to be analyzed, that is, a document file that may contain an attack code. The taint tag to be set only needs to be identified as a document file. The same taint tag may be set for the entire document file, or the file format of the document file is interpreted and differs depending on the meaningful division of the file. The value of the taint tag may be set.
なお、このテイントタグは、解析対象のドキュメントファイルを開く前に仮想ディスク11a上に保存されているドキュメントファイルに対して設定してもよいし、解析対象のドキュメントファイルを開いた直後の仮想物理メモリ10a上にマッピングされたドキュメントファイルのデータに対して設定してもよい。
The taint tag may be set for a document file stored on the virtual disk 11a before opening the analysis target document file, or the virtual
仮想ディスク11a上に保存されているドキュメントファイルに対して設定する場合は、シャドウディスク11bにテイントタグの値を保存する。仮想物理メモリ10a上にマッピングされたドキュメントファイルのデータに対してテイントタグを設定する場合、シャドウメモリ10bに対してテイントタグを設定する。
When setting a document file stored on the virtual disk 11a, the value of the taint tag is stored in the
このような仮想マシン10によれば、攻撃コードを含むドキュメントファイルを検知し、その攻撃コードに基づく挙動を監視することができる。
According to such a
[検知と解析の手順]
次に、図5を用いて仮想マシン10による攻撃コードによる攻撃の検知と解析の手順を説明する。図5は、仮想マシンによる攻撃コードによる攻撃の検知と解析の手順を示すフローチャートである。なお、仮想マシン10は、事前にテイントタグ付与部14により攻撃コードが含まれている可能性のあるドキュメントファイルにテイントタグを設定し、仮想ディスク11a内に格納しておくものとする。
[Detection and analysis procedure]
Next, a procedure for detecting and analyzing an attack using an attack code by the
まず、仮想マシン10のプログラム実行部13は、ドキュメントファイル操作用プログラムを動作させ、仮想ディスク11aに格納されたドキュメントファイルを開く(S1)。その後、判定部16は、プログラム実行部13にて実行している命令が保持しているテイントタグを確認し(S2)、そのテイントタグがドキュメントファイルに設定されたものであれば(S3のYes)、そのドキュメントファイルに含まれる攻撃コードによる攻撃であると判断する。以降、命令監視部17は、そのドキュメントファイルに設定されたテイントタグを持つ命令を解析対象と判断し(S4)、解析実行部18は、命令監視部17により解析対象と判断された命令について、解析を実行する(S5)。つまり、解析実行部18は、ドキュメントファイルに含まれる攻撃コードによる命令の実行内容を解析する。例えば、解析実行部18は、解析対象の命令の実行に関して詳細なトレースログを取得し、仮想CPU12のレジスタの情報や、スタックに関する情報を一緒に取得する。
First, the program execution unit 13 of the
一方、S3において、判定部16は、S2で確認したテイントタグがドキュメントファイルに設定されたものでなければ(S3のNo)、処理を終了する。
On the other hand, if the taint tag confirmed in S2 is not set in the document file in S3 (No in S3), the
このような仮想マシン10によれば、攻撃コードを含むドキュメントファイルを検知し、その攻撃コードに基づく挙動を監視することができる。
According to such a
[第2の実施形態]
次に、本発明の第2の実施形態について説明する。図6は、第2の実施形態の仮想マシンの動作の概要を説明する図である。
[Second Embodiment]
Next, a second embodiment of the present invention will be described. FIG. 6 is a diagram for explaining the outline of the operation of the virtual machine according to the second embodiment.
第2の実施形態の仮想マシン10は、図6に示すように、第1の実施形態と同様、ドキュメントファイルにテイントタグを設定しておく。そして、仮想マシン10のドキュメントファイル操作プログラムにより行われた仮想物理メモリ10aへのすべての書き込みに対してテイントタグを設定する。つまり、仮想物理メモリ10aにはドキュメントファイル内の攻撃コードを展開したオリジナルコードと、オリジナルコード以外の通常のデータとが書き込まれる可能性があるが、仮想マシン10は、その両方にテイントタグを設定する。
As shown in FIG. 6, the
具体的には、仮想マシン10のテイントタグ付与部14において、ドキュメントファイル操作プログラムに対してもこれを一意に特定できるテイントタグを設定しておく。そして、テイント解析部15は、ドキュメントファイル操作プログラムによりプログラム実行部13が行った書き込みに対して、解析対象であることを示すテイントタグを設定する。
Specifically, the taint tag assigning unit 14 of the
このようにすることで、ドキュメントファイル内の攻撃コードが、ドキュメントファイル操作プログラムにより仮想物理メモリ10a上に書き出される過程で、このドキュメントファイルに設定されたテイントタグが消失することにより、攻撃コードによる挙動を解析できないという事態を避けることができる。
In this way, in the process in which the attack code in the document file is written on the virtual
なお、ドキュメントファイルに設定されたテイントタグが消失する場合としては、そのドキュメントファイル内の攻撃コードが難読化または暗号化されている場合が考えられる。つまり、仮想マシン10において、ドキュメントファイル操作プログラムにより、その攻撃コードを読み込まれると、攻撃コードの難読化が解かれたり、復号化が行われたりする。その過程で、ドキュメントに設定されていたテイントタグが消失し、仮想物理メモリ10a上に展開された攻撃コード(オリジナルコード)にはテイントタグが設定されていない状態が発生しうるが、本実施の形態はそのような場合を想定している。
Note that the case where the taint tag set in the document file is lost may be that the attack code in the document file is obfuscated or encrypted. That is, when the attack code is read by the document file operation program in the
なお、ドキュメントファイルに設定したテイントタグが消失しなかった場合は、ドキュメントファイル操作プログラムにより仮想物理メモリ10a上に書き出される値に対して、そのテイントタグが設定される。
If the taint tag set in the document file does not disappear, the taint tag is set for the value written on the virtual
以下、第2の実施形態の仮想マシン10を詳細に説明する。まず、テイントタグ付与部14は、仮想ディスク11a内のドキュメントファイル操作プログラムのコード部分にテイントタグを設定する。ここで設定するテイントタグの値は、ドキュメントファイルに設定したテイントタグとは異なる値とする。
Hereinafter, the
例えば、ドキュメントファイルに設定したテイントタグを「Tag=DOC」とし、ドキュメントファイル操作用プログラムに設定したテイントタグを「Tag=DOC_OP」とする。プログラム実行部13で、この「Tag=DOC_OP」のテイントタグが設定されている命令が何かしらの書き込み操作を行ったが、書き込まれる値が、ドキュメントファイルに設定したテイントタグ(Tag=DOC)を持っていない場合は、テイント解析部15はその書き込み先に対して、解析対象を示すテイントタグ「Tag=WRITTEN(またはTag=DOC)」を設定する。
For example, the taint tag set in the document file is “Tag = DOC”, and the taint tag set in the document file operation program is “Tag = DOC_OP”. In the program execution unit 13, an instruction in which the “Tag = DOC_OP” taint tag is set performs a write operation, but the written value does not have the taint tag (Tag = DOC) set in the document file. In this case, the
そして、判定部16は、この解析対象を示すテイントタグ(例えば、Tag=DOCまたはTag=WRITTEN)を持った命令が実行された場合、攻撃コードによる攻撃であると判断する。そして、以降、命令監視部17は、このテイントタグを持つ命令を解析対象とする。一方、この解析対象を示すテイントタグを持たない命令(例えば、Tag=DOC_OPのテイントタグを持つ命令)が実行された場合、攻撃コードによる攻撃ではないと判断し、命令監視部17は、この命令を解析対象としない。
When the instruction having a taint tag indicating the analysis target (for example, Tag = DOC or Tag = WRITTEN) is executed, the
このようにすることで、ドキュメントファイル内の攻撃コードの検知および攻撃コードによる挙動の解析を確実に行うことができる。 In this way, it is possible to reliably detect the attack code in the document file and analyze the behavior by the attack code.
[第3の実施形態]
また、仮想マシン10において、ドキュメントファイル操作プログラムが、JIT(Just In Time)コンパイラ機能を持ったプログラムである場合、テイントタグ付与部14は、このJITにより生成されるコード(バイト列)に所定のテイントタグ(例えば、Tag=JIT)を設定してもよい。そして、判定部16は、このテイントタグ(例えば、Tag=JIT)を持った命令が実行された場合は、攻撃コードによる攻撃ではないと判断するようにしてもよい。
[Third Embodiment]
In the
図7は、第3の実施形態の仮想マシンの動作の概要を説明する図である。仮想マシン10は、図7に示すようにドキュメントファイル操作プログラムにより仮想物理メモリ10aに書き込まれたデータのうち、JITにより生成された命令列については所定のテイントタグ(例えば、Tag=JIT)を設定し、それ以外のデータについては、別のテイントタグを設定する。そして、仮想マシン10は、JITにより生成された命令列であることを示すテイントタグ(例えば、Tag=JIT)が設定されたバイト列が実行された場合は、これを解析対象外とし、それ以外のテイントタグ(例えば、Tag=WRITTEN)が設定されたデータが実行された場合は、これを解析対象とする。
FIG. 7 is a diagram illustrating an outline of the operation of the virtual machine according to the third embodiment. As shown in FIG. 7, the
なお、JITコンパイラ機能を持ったドキュメントファイル操作プログラムは、例えば、Acrobat Reader(登録商標)等である。このAcrobat Reader(登録商標)は、JITコンパイラ機能を持ったJavascript(登録商標)のエンジンを持っている。 The document file operation program having the JIT compiler function is, for example, Acrobat Reader (registered trademark). This Acrobat Reader (registered trademark) has a Javascript (registered trademark) engine having a JIT compiler function.
このようにすることで、仮想マシン10において、ドキュメントファイルの操作に、JITコンパイラ機能を備えるドキュメントファイル操作プログラムを用いた場合でも、このドキュメントファイルの攻撃を検知し、解析を行うことができる。
By doing so, even when a document file operation program having a JIT compiler function is used for the operation of the document file in the
すなわち、前記したとおり、仮想マシン10の判定部16は、仮想物理メモリ10a上に書き出された、ドキュメントファイルのデータ(命令列)がプログラム実行部13により実行されたときに、そのドキュメントファイルによる攻撃を検知する。ここで、JITコンパイラ機能(以下、適宜「JIT」と略す)を持つドキュメントファイル操作プログラムは、ドキュメントファイル内のスクリプト実行時に実行バイナリコードを仮想物理メモリ10a上に書き出し、それを実行する。
That is, as described above, the
このとき、仮想マシン10のテイント解析部15は、JITで生成されたスクリプトの命令列について、JITで生成された命令列であることを示すテイントタグを設定する。そして、判定部16は、通常であれば、テイントタグを保持する命令について攻撃であると判断するが、このJITで生成された命令については攻撃ではないと判定する。このようにすることで、仮想マシン10は、JITで生成された命令について、誤って攻撃であると判定してしまうことを避けることができる。
At this time, the
なお、テイントタグ付与部14は、仮想ディスク11a内のドキュメントファイル操作プログラムのJITで生成されるバイト列を保持している場所(例えば、データセクション)に、JITで生成されるバイト列であることを示すテイントタグを設定する。 The taint tag assigning unit 14 indicates that the byte sequence generated by the JIT is in a location (for example, a data section) where the byte sequence generated by the JIT of the document file operation program in the virtual disk 11a is held. Set the taint tag to indicate.
例えば、ドキュメントファイル操作プログラム内のJITコンパイラ機能(JITエンジン)が、以下の表1に例示するようなスクリプト→バイト列の変換テーブルを保持している場合、テイントタグ付与部14は、この変換テーブルのバイト列の部分に、所定のテイントタグ(例えば、Tag=JIT)を設定しておく。 For example, when the JIT compiler function (JIT engine) in the document file operation program holds a script → byte string conversion table as exemplified in Table 1 below, the taint tag assigning unit 14 A predetermined taint tag (for example, Tag = JIT) is set in the byte string portion.
これにより、ドキュメントファイル操作プログラムのJITにより生成された部分には、所定のテイントタグ(例えば、Tag=JIT)が設定され、それ以外の部分には、通常のテイントタグ(例えば、Tag=WRITTEN)が設定される。したがって、判定部16は、プログラム実行部13により実行される命令のうち、JITで生成された命令について攻撃ではないと判定する。
As a result, a predetermined taint tag (for example, Tag = JIT) is set in the part generated by the JIT of the document file operation program, and a normal taint tag (for example, Tag = WRITTEN) is set in the other part. Is done. Therefore, the
なお、ドキュメントファイル操作プログラムのJITにより生成された部分に設定されるテイントタグは、必ずしも「JITにより生成されたことを示すテイントタグ」である必要はなく、単に解析対象外であることを示すテイントタグであってもよい。 It should be noted that the taint tag set in the part generated by the JIT of the document file operation program does not necessarily need to be a “taint tag indicating that it has been generated by JIT”, but is merely a taint tag indicating that it is not subject to analysis. May be.
さらに、仮想マシン10は、ドキュメントファイル操作プログラムにより生成されたデータへのテイントタグ(例えば、Tag=WRITTEN)の設定をしつつ、このうちJITにより生成された部分へは、別のテイントタグ(例えば、Tag=JIT)を設定するようにしてもよい。
Further, the
図8は、仮想マシンが、ドキュメントファイル操作プログラムにより生成されたデータへのテイントタグ(例えば、Tag=WRITTEN)の設定をしつつ、このうちJITにより生成された部分へは、別のテイントタグ(例えば、Tag=JIT)を設定した場合の動作概要を説明する図である。 FIG. 8 shows that a virtual machine sets a taint tag (for example, Tag = WRITTEN) to data generated by a document file operation program, and another taint tag (for example, It is a figure explaining the operation | movement outline | summary at the time of setting Tag = JIT).
仮想マシン10は、図8に示すように、ドキュメントファイル操作プログラムにより、難読化された攻撃コードとスクリプトとを含むドキュメントファイルが読み込まれると、JITで生成されたスクリプトの命令列には、所定のテイントタグ(例えば、Tag=JIT)を設定する。また、ドキュメントファイル操作プログラムにより、攻撃コードの難読化が解かれ、仮想物理メモリ10a上にオリジナルコードが書き込まれた場合、そのオリジナルコード、また、その他の通常のデータ書き込みがあれば、仮想マシン10は、そのデータにドキュメントファイル操作プログラムに設定されたテイントタググ(例えば、Tag=WRITTEN)を設定する。ここで、ドキュメントファイルに設定したテイントタグが消失していた場合、つまり、書き込まれる値が何もテイントタグを持っていなかった場合、仮想マシン10は、Tag=WRITTENを書き込むが、テイントタグが消失していなかった場合は、伝搬してきたテイントタグ(Tag=DOC)をそのまま書き込む。
As shown in FIG. 8, when a document file including an obfuscated attack code and a script is read by the document file operation program, the
そして、仮想マシン10はJITで生成されたスクリプトの命令列のテイントタグ(例えば、Tag=JIT)が設定された部分については解析対象外とし、ドキュメントファイル操作プログラムに設定されたテイントタグ(例えば、Tag=WRITTEN)が設定された部分については解析対象とする。また、仮想マシン10は、伝搬してきたタグ(Tag=DOC)が設定されている部分についても解析対象とする。
The
このようにすることで、ドキュメントファイルが難読化または暗号化された攻撃コードを含み、かつ、ドキュメントファイル操作プログラムがJIT機能を備える場合でも、ドキュメントファイル内の攻撃コードの検知および攻撃コードによる挙動の解析を確実に行うことができる。 By doing so, even when the document file includes an obfuscated or encrypted attack code and the document file operation program has a JIT function, the attack code in the document file is detected and the behavior of the attack code is detected. Analysis can be performed reliably.
[その他の実施形態]
なお、第1の実施形態の仮想マシン10において、プログラム実行部13が、テイントタグが設定された命令が仮想物理メモリ10aに対して書き込みを行う場合、仮想物理メモリ10aに書き込まれる値が何もテイントタグを保持していないときに、テイント解析部15が、解析対象を示すテイントタグ(例えば、ドキュメントファイルに設定されたテイントタグと同じタグ)を設定するようにしてもよい。
[Other Embodiments]
In the
また、第2の実施形態および第3の実施形態の仮想マシン10において、プログラム実行部13が、テイントタグが設定された命令が仮想物理メモリ10aに対して書き込みを行う場合、仮想物理メモリ10aにドキュメントファイル操作プログラムまたはJITに設定されたテイントが設定されていないとき、テイント解析部15が、解析対象を示すテイントタグ(例えば、ドキュメントファイルに設定されたテイントタグと同じタグ)を設定するようにしてもよい。
In the
このようにすることで、仮想物理メモリ10a上に書き込まれたデータに確実にテイントタグを設定することができる。これにより、仮想マシン10はドキュメントファイルの攻撃を確実に検知し、解析を行うことができる。
In this way, it is possible to reliably set a taint tag for data written on the virtual
また、テイント解析部15は、プログラム実行部13により、解析対象の命令から外部関数が呼ばれる場合、その外部関数が復帰した時点を捉え、その外部関数により書き込まれた仮想物理メモリ10a上のデータを特定し、その書き込まれた全てのデータに対して解析対象を示すテイントタグを設定してもよい。このようにすることで、ドキュメントから外部関数が呼ばれることで攻撃がされる場合でも、解析を行うことができる。
Further, when an external function is called from the instruction to be analyzed by the program execution unit 13, the
また、判定部16は、プログラム実行部13で読み込んだ命令が分岐命令の場合、分岐先の命令にテイントタグが設定されていたとき、攻撃と判断してもよい。また、この分岐命令が、アドレスを指定して分岐する命令の場合、その指定されたアドレスに解析対象を示すテイントタグが設定されていたとき、攻撃と判断してもよい。なお、ここで言う分岐命令は条件分岐命令、無条件分岐命令の両者を含む。判定部16は、上記のような分岐命令の実行前後の挙動だけでなく、全ての命令の実行を逐次的に確認してもよい。
Further, when the instruction read by the program execution unit 13 is a branch instruction, the
さらに、解析実行部18は、解析対象と判断された命令から呼び出されるライブラリ関数と、その詳細情報を取得してもよい。このライブラリ関数は、API、システムコール、ローカル関数等であり、詳細情報としては、そのライブラリ関数のライブラリ名、モジュール名、引数の値や型、その関数を呼び出した位置情報やインスタンス情報等である。なお、解析実行部18は、ライブラリ関数は呼び出された場合のみならず、ライブラリ関数から解析対象の命令へ実行が遷移する際にもその実行を捕らえ詳細情報を出力してもよい。
Further, the
なお、仮想マシン10は、Binary Instrumentationを利用し特定のプロセスのみを仮想化するプロセス型の仮想マシンを利用してもよいし、アプリケーションとして動作する仮想マシンモニタではなく、XenやKVM(Kernel-based Virtual Machine)のようにホストOSと仮想マシンモニタを同じ層に実装するような仮想化を利用してもよい。また、仮想化実装のため、Intel(登録商標)-VT(Virtualization Technology)のようなHW(ハードウェア)サポートを利用してもよい。
Note that the
[プログラム]
また、情報処理装置が実行する処理をコンピュータが実行可能な言語で記述した監視プログラムを作成することもできる。この場合、コンピュータが監視プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる監視プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された監視プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、図1等に示した情報処理装置と同様の機能を実現する監視プログラムを実行するコンピュータの一例を説明する。
[program]
It is also possible to create a monitoring program in which the processing executed by the information processing apparatus is described in a language that can be executed by a computer. In this case, when the computer executes the monitoring program, the same effect as in the above embodiment can be obtained. Further, the monitoring program may be recorded on a computer-readable recording medium, and the monitoring program recorded on the recording medium may be read by the computer and executed to execute the same processing as in the above embodiment. An example of a computer that executes a monitoring program that implements the same function as the information processing apparatus shown in FIG.
図9は、監視プログラムを実行するコンピュータを示す図である。図9に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
FIG. 9 is a diagram illustrating a computer that executes a monitoring program. As illustrated in FIG. 9, the
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。ディスクドライブ1100には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1110およびキーボード1120が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1130が接続される。
The
ここで、図9に示すように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した監視対象のプログラムは、例えばハードディスクドライブ1090やメモリ1010に記憶される。
Here, as shown in FIG. 9, the
また、監視プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1090に記憶される。具体的には、プログラム実行部13と、テイントタグ付与部14、テイント解析部15、判定部16、命令監視部17、解析実行部18それぞれにおいて実行される指令が記述されたプログラムモジュールが、ハードディスクドライブ1090に記憶される。
Further, the monitoring program is stored in, for example, the
また、監視プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ1090に記憶される。そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュールやプログラムデータを必要に応じてRAM1012に読み出して、上述した各手順を実行する。
In addition, data used for information processing by the monitoring program is stored in the
なお、監視プログラムに係るプログラムモジュールやプログラムデータは、ハードディスクドライブ1090に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、監視プログラムに係るプログラムモジュールやプログラムデータは、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
Note that the program module and program data related to the monitoring program are not limited to being stored in the
1 ハードウェア
3 仮想マシンソフトウェア
10 仮想マシン
10a 仮想物理メモリ
10b シャドウメモリ
11a 仮想ディスク
11b シャドウディスク
12 仮想CPU
13 プログラム実行部
14 テイントタグ付与部(タグ付与部)
15 テイント解析部
16 判定部
17 命令監視部
18 解析実行部
19 仮想HWコントローラ
19a テイント情報伝搬部
DESCRIPTION OF
13 Program Execution Unit 14 Taint Tag Assignment Unit (Tag Assignment Unit)
DESCRIPTION OF
Claims (3)
プログラムを動作させ、前記ドキュメントファイルを読み込むプログラム実行部と、
前記タグの設定されたデータが前記プログラム実行部で実行する命令に渡されたとき、前記タグを命令の実行結果に伝搬させるテイント解析部と、
前記プログラム実行部により実行される命令の保持しているタグが、前記ドキュメントファイルに設定したものであるか否かを判断し、前記命令の保持しているタグが、前記ドキュメントファイルに設定したものであるとき、前記ドキュメントファイルによる攻撃が行われたことを検知する判定部と、
前記判定部による攻撃の検知以降、前記ドキュメントファイルに設定されたタグを持つ命令を解析対象と判断する命令監視部と、
前記命令監視部において解析対象と判断された命令の実行を解析する解析実行部とを備え、
前記タグ付与部は、さらに、
所定の前記プログラムにタグを設定し、
前記テイント解析部は、さらに、
前記タグが設定されるプログラムにより実行されるメモリへの書き込み処理において、書き込もうとしているデータに、前記ドキュメントファイルに設定したタグが設定されておらず、かつ、前記データが前記プログラムのJITコンパイラにより生成されたスクリプトの命令列以外のデータである場合、前記データに当該データが解析対象であることを示すタグを設定し、
前記判定部は、さらに、
前記解析対象を示すタグを持った命令が実行された場合、前記ドキュメントファイルによる攻撃が行われたことを検知することを特徴とする情報処理装置。 A tag giving unit for setting a tag for uniquely identifying the document file with respect to the document file;
A program execution unit for operating the program and reading the document file;
A taint analysis unit that propagates the tag to an instruction execution result when the data set with the tag is passed to an instruction to be executed by the program execution unit;
It is determined whether the tag held by the instruction executed by the program execution unit is set in the document file , and the tag held in the instruction is set in the document file A determination unit for detecting that an attack by the document file has been performed;
After the detection of the attack by the determination unit, a command monitoring unit that determines a command having a tag set in the document file as an analysis target;
An analysis execution unit that analyzes execution of an instruction determined to be analyzed by the instruction monitoring unit ;
The tag assigning unit further includes:
Set a tag for a given program,
The taint analysis unit further includes:
In the writing process to the memory executed by the program in which the tag is set, the tag set in the document file is not set in the data to be written, and the data is set by the JIT compiler of the program. If it is data other than the command sequence of the generated script, set a tag indicating that the data is an analysis target in the data,
The determination unit further includes:
An information processing apparatus , wherein when an instruction having a tag indicating the analysis target is executed, it is detected that an attack by the document file has been performed .
前記プログラムにより実行されるメモリへの書き込もうとしているデータに、前記プログラムに設定されたタグが設定されていない場合、前記データに、前記ドキュメントファイルに設定したタグと同じタグを設定することを特徴とする請求項1に記載の情報処理装置。 The taint analysis unit further includes:
When the tag set in the program is not set in the data to be written to the memory executed by the program, the same tag as the tag set in the document file is set in the data. The information processing apparatus according to claim 1 .
ドキュメントファイルに対して、前記ドキュメントファイルを一意に識別するためのタグを設定するタグを設定するタグ付与ステップと、
前記ドキュメントファイルを読み込むためのプログラムを動作させ、前記ドキュメントファイルを読み込むプログラム実行ステップと、
前記タグの設定されたデータが前記プログラム実行ステップで実行する命令に渡されたとき、前記タグを命令の実行結果に伝搬させるテイント解析ステップと、
前記プログラム実行ステップにより実行される命令の保持しているタグが、前記ドキュメントファイルに設定したものであるか否かを判断し、前記命令の保持しているタグが、前記ドキュメントファイルに設定したものであるとき、前記ドキュメントファイルによる攻撃が行われたことを検知する判定ステップと、
前記判定ステップによる攻撃の検知以降、前記ドキュメントファイルに設定されたタグを持つ命令を解析対象と判断する命令監視ステップと、
前記命令監視ステップにおいて解析対象と判断された命令の実行を解析する解析実行ステップと実行し、
前記タグ付与ステップは、さらに、
所定の前記プログラムにタグを設定し、
前記テイント解析ステップは、さらに、
前記タグが設定されるプログラムにより実行されるメモリへの書き込み処理において、書き込もうとしているデータに、前記ドキュメントファイルに設定したタグが設定されておらず、かつ、前記データが前記プログラムのJITコンパイラにより生成されたスクリプトの命令列以外のデータである場合、前記データに当該データが解析対象であることを示すタグを設定し、
前記判定ステップは、さらに、
前記解析対象を示すタグを持った命令が実行された場合、前記ドキュメントファイルによる攻撃が行われたことを検知することを特徴とする情報処理方法。 Computer
A tag providing step for setting a tag for setting a tag for uniquely identifying the document file with respect to the document file;
Operating a program for reading the document file, and a program execution step for reading the document file;
A taint analyzing step for propagating the tag to the execution result of the instruction when the set data of the tag is passed to the instruction executed in the program execution step;
It is determined whether or not the tag held by the instruction executed in the program execution step is set in the document file , and the tag held in the instruction is set in the document file A determination step for detecting that an attack by the document file has been performed;
A command monitoring step of determining a command having a tag set in the document file as an analysis target after detection of an attack by the determination step;
An analysis execution step for analyzing the execution of the instruction determined to be analyzed in the instruction monitoring step ;
The tagging step further includes
Set a tag for a given program,
The taint analysis step further includes:
In the writing process to the memory executed by the program in which the tag is set, the tag set in the document file is not set in the data to be written, and the data is set by the JIT compiler of the program. If it is data other than the command sequence of the generated script, set a tag indicating that the data is an analysis target in the data,
The determination step further includes:
An information processing method , wherein when an instruction having a tag indicating the analysis target is executed, an attack by the document file is detected .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013104528A JP5989599B2 (en) | 2013-05-16 | 2013-05-16 | Information processing apparatus and information processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013104528A JP5989599B2 (en) | 2013-05-16 | 2013-05-16 | Information processing apparatus and information processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014225161A JP2014225161A (en) | 2014-12-04 |
JP5989599B2 true JP5989599B2 (en) | 2016-09-07 |
Family
ID=52123792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013104528A Expired - Fee Related JP5989599B2 (en) | 2013-05-16 | 2013-05-16 | Information processing apparatus and information processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5989599B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112926058B (en) * | 2021-03-25 | 2024-07-16 | 支付宝(杭州)信息技术有限公司 | Code processing method, stain analysis method and device |
KR20240114225A (en) * | 2023-01-16 | 2024-07-23 | 악성코드검거단(주) | Apparatus and method for dectecting attack on weak point using bait program and emulator |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8621607B2 (en) * | 2006-05-18 | 2013-12-31 | Vmware, Inc. | Computational system including mechanisms for tracking taint |
US8074281B2 (en) * | 2008-01-14 | 2011-12-06 | Microsoft Corporation | Malware detection with taint tracking |
US8997217B2 (en) * | 2010-01-25 | 2015-03-31 | Samsung Electronics Co., Ltd. | Safely processing and presenting documents with executable text |
-
2013
- 2013-05-16 JP JP2013104528A patent/JP5989599B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014225161A (en) | 2014-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yin et al. | Temu: Binary code analysis via whole-system layered annotative execution | |
US8850581B2 (en) | Identification of malware detection signature candidate code | |
JP5908132B2 (en) | Apparatus and method for detecting attack using vulnerability of program | |
JP4950902B2 (en) | Pre-emptive computer malware protection with dynamic translation | |
Saxena et al. | Efficient fine-grained binary instrumentationwith applications to taint-tracking | |
WO2022180702A1 (en) | Analysis function addition device, analysis function addition program, and analysis function addition method | |
US10102373B2 (en) | Method and apparatus for capturing operation in a container-based virtualization system | |
US20050028002A1 (en) | Method and apparatus to detect malicious software | |
JP2019502197A (en) | System and method for detection of malicious code in runtime generated code | |
CN109271789B (en) | Malicious process detection method and device, electronic equipment and storage medium | |
CN108319850B (en) | Sandbox detection method, sandbox system and sandbox equipment | |
JP2016525760A (en) | Identify irrelevant code | |
JP6023317B2 (en) | Information processing apparatus and information processing method | |
Lim et al. | Mal-flux: Rendering hidden code of packed binary executable | |
Otsuki et al. | Building stack traces from memory dump of Windows x64 | |
TW201419024A (en) | Method and system of processing application security | |
CN110717181B (en) | Non-control data attack detection method and device based on novel program dependency graph | |
JP5952218B2 (en) | Information processing apparatus and information processing method | |
JP2018152061A (en) | Secure just-in-time (jit) code generation | |
Ali et al. | Agent-based vs agent-less sandbox for dynamic behavioral analysis | |
Chen et al. | ARMORY: An automatic security testing tool for buffer overflow defect detection | |
JP5989599B2 (en) | Information processing apparatus and information processing method | |
EP4332805A1 (en) | Emulation-based malware detection | |
WO2020111482A1 (en) | Reverse engineering method and system utilizing big data based on program execution context | |
JP5766650B2 (en) | Information processing apparatus, monitoring method, and monitoring program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150623 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20151001 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20151005 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160531 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160607 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160721 |
|
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: 20160809 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160810 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5989599 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |