Nothing Special   »   [go: up one dir, main page]

JP5989599B2 - Information processing apparatus and information processing method - Google Patents

Information processing apparatus and information processing method Download PDF

Info

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
Application number
JP2013104528A
Other languages
Japanese (ja)
Other versions
JP2014225161A (en
Inventor
裕平 川古谷
裕平 川古谷
誠 岩村
誠 岩村
剛男 針生
剛男 針生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013104528A priority Critical patent/JP5989599B2/en
Publication of JP2014225161A publication Critical patent/JP2014225161A/en
Application granted granted Critical
Publication of JP5989599B2 publication Critical patent/JP5989599B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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.

Michael Ligh他、WILEY、Malware Analysis’s Cookbook and DVD、2010/11/2Michael Ligh et al., WILEY, Malware Analysis ’s Cookbook and DVD, 2010/11/2 Stefan Axelsson、Intrusion Detection Systems: A Survey and Taxonomy、2000/03/14Stefan Axelsson, Intrusion Detection Systems: A Survey and Taxonomy, 03/14/2000

しかしながら、ドキュメントファイルとドキュメントファイル操作用プログラムの挙動に基づく攻撃の検知・解析手法には次のような問題点がある。   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は、情報処理装置の全体構成を示す図である。FIG. 1 is a diagram illustrating the overall configuration of the information processing apparatus. 図2は、仮想マシンの機能構成を示す図である。FIG. 2 is a diagram illustrating a functional configuration of the virtual machine. 図3は、シャドウメモリに記憶される情報の例を示す図である。FIG. 3 is a diagram illustrating an example of information stored in the shadow memory. 図4は、シャドウディスクに記憶される情報の例を示す図である。FIG. 4 is a diagram illustrating an example of information stored in the shadow disk. 図5は、仮想マシンによる攻撃コードによる攻撃の検知と解析の手順を示すフローチャートである。FIG. 5 is a flowchart showing a procedure for detecting and analyzing an attack by an attack code by a virtual machine. 図6は、第2の実施形態の仮想マシンの動作の概要を説明する図である。FIG. 6 is a diagram for explaining the outline of the operation of the virtual machine according to the second embodiment. 図7は、第3の実施形態の仮想マシンの動作の概要を説明する図である。FIG. 7 is a diagram illustrating an outline of the operation of the virtual machine according to the third embodiment. 図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). 図9は、監視プログラムを実行するコンピュータを示す図である。FIG. 9 is a diagram illustrating a computer that executes a monitoring program.

[第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 hardware 1, host OS 2, virtual machine software 3, and virtual machine 10.

ハードウェア1は、情報処理装置を構成する電子回路や周辺機器であり、例えば、メモリ、CPU(Central Processing Unit)等である。ホストOS2は、仮想マシンを動作させる基盤となるOSであり、ハードウェア1を用いて実行される。仮想マシンソフトウェア3は、ハードウェア1を用いて仮想マシンを提供するソフトウェアであり、ここでは、仮想マシン10を動作させる。例えば、仮想マシンソフトウェア3は、仮想ディスク、仮想物理メモリ、仮想CPU等をゲストOSに割当てて、仮想マシンを動作させる。   The hardware 1 is an electronic circuit or a peripheral device constituting the information processing apparatus, and is, for example, a memory, a CPU (Central Processing Unit), or the like. The host OS 2 is an OS serving as a base for operating the virtual machine, and is executed using the hardware 1. The virtual machine software 3 is software that provides a virtual machine using the hardware 1, and operates the virtual machine 10 here. For example, the virtual machine software 3 allocates a virtual disk, virtual physical memory, virtual CPU, and the like to the guest OS to operate the virtual machine.

仮想マシン10は、例えば、エミュレータ型の仮想マシンであり、仮想マシンソフトウェア3から提供された仮想ディスク、仮想物理メモリ、仮想CPU等を用いてゲストOSを動作させて、各種処理を実行する仮想的な情報処理装置である。   The virtual machine 10 is, for example, an emulator-type virtual machine, and is a virtual machine that executes various processes by operating a guest OS using a virtual disk, virtual physical memory, virtual CPU, or the like provided from the virtual machine software 3. Information processing apparatus.

このような構成において情報処理装置は、まず攻撃コードを含むドキュメントファイルにテイントタグ(タグ)を設定しておく。そして、情報処理装置は、ドキュメントを読み込み、操作するためのドキュメントファイル操作用プログラムを動作させ、このドキュメントファイルを開く。その後、情報処理装置の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 hardware 1, the host OS 2, and the virtual machine software 3 have the same configuration as a general configuration, detailed description thereof is omitted.

図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 virtual machine 10 includes a virtual physical memory 10a, a shadow memory 10b, a virtual disk 11a, a shadow disk 11b, a virtual CPU 12, a virtual HW controller 19, and a taint tag assigning unit 14.

仮想物理メモリ10aは、情報処理装置が有する物理メモリにおける所定領域を仮想マシン10で動作するゲストOSが使用するメモリとして割り当てることで実現された仮想的なメモリである。例えば、仮想物理メモリ10aは、仮想CPU12によって仮想ディスク11aから読み出されたプログラムやデータを記憶する。   The virtual physical memory 10a is a virtual memory realized by allocating a predetermined area in the physical memory of the information processing apparatus as a memory used by the guest OS operating on the virtual machine 10. For example, the virtual physical memory 10a stores programs and data read from the virtual disk 11a by the virtual CPU 12.

シャドウメモリ10bは、仮想物理メモリ10a上の値に対して設定されたテイントタグの値を保持するデータ構造体である。   The shadow memory 10b is a data structure that holds the value of the taint tag set for the value on the virtual physical memory 10a.

ここで、シャドウメモリ10bの一例を説明する。図3は、シャドウメモリに記憶される情報の例を示す図である。図3に示すように、シャドウメモリ10bは、「仮想物理メモリのアドレス」と「テイントタグ」とを対応付けて記憶する。「仮想物理メモリのアドレス」は、仮想物理メモリ10a上の格納位置を示す位置情報であり、「テイントタグ」は、解析対象であること、または解析対象でないことを識別する識別子である。   Here, an example of the shadow memory 10b will be described. FIG. 3 is a diagram illustrating an example of information stored in the shadow memory. As shown in FIG. 3, the shadow memory 10 b stores “virtual physical memory address” and “taint tag” in association with each other. The “virtual physical memory address” is position information indicating the storage position on the virtual physical memory 10a, and the “taint tag” is an identifier for identifying whether it is an analysis target or not.

図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 physical memory 10a. Further, it indicates that the taint tag “05” is given to the analysis target data stored in the addresses “0310 to 0350” of the virtual physical memory 10a. Note that the numerical values and the like shown in FIG. 3 are merely examples, and the values and the like are not limited.

仮想ディスク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 virtual machine 10. For example, the virtual disk 11a stores a program (such as a document file operation program) to be executed by the virtual CPU 12, data (such as a document file that may contain an attack code) that is to be processed by the program, and the like. Remember.

シャドウディスク11bは、仮想ディスク11a上の値に対して設定されたテイントタグの値を保持するデータ構造体である。   The shadow disk 11b is a data structure that holds the value of the taint tag set for the value on the virtual disk 11a.

図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 virtual machine 10. The virtual CPU 12 includes a shadow register (not shown) that holds a taint tag held by the physical CPU. The virtual CPU 12 includes a program execution unit 13, a taint analysis unit 15, a determination unit 16, an instruction monitoring unit 17, and an analysis execution unit 18.

プログラム実行部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 physical memory 10a, and executes it. Further, when a document file including an attack code is read by the document file operation program, the program execution unit 13 performs an execution process based on the attack code.

テイント解析部15は、テイントタグが設定されたデータが仮想CPU12(具体的にはプログラム実行部13)で実行する命令に渡された際、テイントタグの伝搬ルールに基づいてテイントタグを命令の実行結果に伝搬させる。プログラム実行部13で実行する命令にテイントタグが設定されたデータが渡されるとは、具体的には、命令のオペランドで渡された値がテイントタグを保持している場合である。   The taint analysis unit 15 propagates the taint tag to the instruction execution result based on the taint tag propagation rule when the data in which the taint tag is set is passed to the instruction to be executed by the virtual CPU 12 (specifically, the program execution unit 13). Let The case where the data in which the taint tag is set is passed to the instruction to be executed by the program execution unit 13 is specifically the case where the value passed in the operand of the instruction holds the taint tag.

テイントタグの伝搬ルールとしては、以下のものが考えられる。例えば、仮想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 taint analysis unit 15 performs an operation accompanied by propagation of a taint tag with respect to an instruction of the program execution unit 13 that handles data in some form.

判定部16は、プログラム実行部13にて実行している命令に解析対象を示すテイントタグが設定されているか否かを判断し、設定されていた場合は攻撃が行われたと判断する。つまり、判定部16は、ドキュメントファイルに基づく攻撃を検知する。   The determination unit 16 determines whether or not a taint tag indicating an analysis target is set in the instruction being executed by the program execution unit 13. If it is set, the determination unit 16 determines that an attack has been performed. That is, the determination unit 16 detects an attack based on the document file.

命令監視部17は、判定部16による攻撃の検知以降、そのドキュメントファイルに設定されたテイントタグを持つ命令を解析対象と判断する。   The instruction monitoring unit 17 determines that an instruction having a taint tag set in the document file is an analysis target after the determination unit 16 detects an attack.

解析実行部18は、命令監視部17において解析対象と判断された命令の実行を監視し、攻撃コードによる命令の実行内容を解析する。例えば、解析実行部18は、解析対象の命令の実行に関して詳細なトレースログを取得し、仮想CPU12のレジスタの情報や、スタックに関する情報を一緒に取得する。   The analysis execution unit 18 monitors the execution of the instruction determined to be analyzed by the instruction monitoring unit 17 and analyzes the execution content of the instruction by the attack code. For example, the analysis execution unit 18 acquires a detailed trace log regarding the execution of the instruction to be analyzed, and acquires information on the registers of the virtual CPU 12 and information on the stack together.

仮想HWコントローラ19は、仮想ディスク11aと仮想物理メモリ10aとの間、シャドウディスク11bとシャドウメモリ10bとの間のデータ送受信を制御する。例えば、仮想HWコントローラ19は、プログラム実行部13が仮想ディスク11aから読み出したプログラムを仮想物理メモリ10aに格納する。また、仮想HWコントローラ19は、プログラム等によって仮想物理メモリ10aから読み出されたデータを仮想ディスク11aに格納する。このような仮想HWコントローラ19は、テイントタグの伝搬を実行するテイント情報伝搬部19aを有する。   The virtual HW controller 19 controls data transmission / reception between the virtual disk 11a and the virtual physical memory 10a and between the shadow disk 11b and the shadow memory 10b. For example, the virtual HW controller 19 stores the program read from the virtual disk 11a by the program execution unit 13 in the virtual physical memory 10a. The virtual HW controller 19 also stores data read from the virtual physical memory 10a by a program or the like in the virtual disk 11a. Such a virtual HW controller 19 includes a taint information propagation unit 19a that performs taint tag propagation.

テイント情報伝搬部19aは、仮想ディスク11aと仮想物理メモリ10aとの間でテイントタグの伝播を行う。つまり、テイント情報伝搬部19aは、シャドウディスク11bとシャドウメモリ10bとの間でテイントタグを伝搬させる。例えば、仮想HWコントローラ18が、監視対象のプログラムによって仮想物理メモリ10aから読み出されたデータを仮想ディスク11aに格納するとき、これに伴い、シャドウメモリ10b上の当該読み出されたデータのテイントタグをシャドウディスク11b上に格納する。   The taint information propagation unit 19a propagates taint tags between the virtual disk 11a and the virtual physical memory 10a. That is, the taint information propagation unit 19a propagates the taint tag between the shadow disk 11b and the shadow memory 10b. For example, when the virtual HW controller 18 stores data read from the virtual physical memory 10a by the program to be monitored in the virtual disk 11a, a taint tag of the read data on the shadow memory 10b is associated with this. Store on the shadow disk 11b.

テイントタグ付与部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 physical memory 10a immediately after the analysis target document file is opened. You may set with respect to the data of the document file mapped above.

仮想ディスク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 shadow disk 11b. When setting a taint tag for data of a document file mapped on the virtual physical memory 10a, a taint tag is set for the shadow memory 10b.

このような仮想マシン10によれば、攻撃コードを含むドキュメントファイルを検知し、その攻撃コードに基づく挙動を監視することができる。   According to such a virtual machine 10, it is possible to detect a document file including an attack code and monitor a behavior based on the attack code.

[検知と解析の手順]
次に、図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 virtual machine 10 will be described with reference to FIG. FIG. 5 is a flowchart showing a procedure for detecting and analyzing an attack by an attack code by a virtual machine. Note that the virtual machine 10 sets a taint tag in a document file that may contain an attack code by the taint tag assigning unit 14 in advance and stores it in the virtual disk 11a.

まず、仮想マシン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 virtual machine 10 operates a document file operation program and opens a document file stored in the virtual disk 11a (S1). Thereafter, the determination unit 16 confirms the taint tag held by the instruction executed by the program execution unit 13 (S2). If the taint tag is set in the document file (Yes in S3), It is determined that the attack is based on the attack code included in the document file. Thereafter, the instruction monitoring unit 17 determines an instruction having a taint tag set in the document file as an analysis target (S4), and the analysis execution unit 18 analyzes the instruction determined as the analysis target by the instruction monitoring unit 17 Is executed (S5). That is, the analysis execution unit 18 analyzes the execution content of the instruction by the attack code included in the document file. For example, the analysis execution unit 18 acquires a detailed trace log regarding the execution of the instruction to be analyzed, and acquires information on the registers of the virtual CPU 12 and information on the stack together.

一方、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 determination unit 16 ends the process.

このような仮想マシン10によれば、攻撃コードを含むドキュメントファイルを検知し、その攻撃コードに基づく挙動を監視することができる。   According to such a virtual machine 10, it is possible to detect a document file including an attack code and monitor a behavior based on the attack code.

[第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 virtual machine 10 according to the second embodiment sets a taint tag in a document file, as in the first embodiment. Then, a taint tag is set for all writing to the virtual physical memory 10a performed by the document file operation program of the virtual machine 10. That is, there is a possibility that the original code obtained by expanding the attack code in the document file and normal data other than the original code may be written in the virtual physical memory 10a. The virtual machine 10 sets taint tags in both of them. .

具体的には、仮想マシン10のテイントタグ付与部14において、ドキュメントファイル操作プログラムに対してもこれを一意に特定できるテイントタグを設定しておく。そして、テイント解析部15は、ドキュメントファイル操作プログラムによりプログラム実行部13が行った書き込みに対して、解析対象であることを示すテイントタグを設定する。   Specifically, the taint tag assigning unit 14 of the virtual machine 10 sets a taint tag that can uniquely identify the document file operation program. Then, the taint analysis unit 15 sets a taint tag indicating that it is an analysis target for the writing performed by the program execution unit 13 by the document file operation program.

このようにすることで、ドキュメントファイル内の攻撃コードが、ドキュメントファイル操作プログラムにより仮想物理メモリ10a上に書き出される過程で、このドキュメントファイルに設定されたテイントタグが消失することにより、攻撃コードによる挙動を解析できないという事態を避けることができる。   In this way, in the process in which the attack code in the document file is written on the virtual physical memory 10a by the document file operation program, the taint tag set in this document file disappears, so that the behavior by the attack code is It is possible to avoid the situation where analysis is not possible.

なお、ドキュメントファイルに設定されたテイントタグが消失する場合としては、そのドキュメントファイル内の攻撃コードが難読化または暗号化されている場合が考えられる。つまり、仮想マシン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 virtual machine 10, the attack code is obfuscated or decrypted. In the process, the taint tag set in the document disappears, and a state where the taint tag is not set may occur in the attack code (original code) developed on the virtual physical memory 10a. Such a case is assumed.

なお、ドキュメントファイルに設定したテイントタグが消失しなかった場合は、ドキュメントファイル操作プログラムにより仮想物理メモリ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 physical memory 10a by the document file operation program.

以下、第2の実施形態の仮想マシン10を詳細に説明する。まず、テイントタグ付与部14は、仮想ディスク11a内のドキュメントファイル操作プログラムのコード部分にテイントタグを設定する。ここで設定するテイントタグの値は、ドキュメントファイルに設定したテイントタグとは異なる値とする。   Hereinafter, the virtual machine 10 of the second embodiment will be described in detail. First, the taint tag assigning unit 14 sets a taint tag in the code portion of the document file operation program in the virtual disk 11a. The value of the taint tag set here is different from the value of the taint tag set in the document file.

例えば、ドキュメントファイルに設定したテイントタグを「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 taint analysis unit 15 sets a taint tag “Tag = WRITTEN (or Tag = DOC)” indicating the analysis target for the write destination.

そして、判定部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 determination unit 16 determines that the attack is based on an attack code. Thereafter, the instruction monitoring unit 17 analyzes an instruction having this taint tag. On the other hand, when an instruction having no taint tag indicating the analysis target (for example, an instruction having a taint tag of Tag = DOC_OP) is executed, it is determined that the attack is not an attack code, and the instruction monitoring unit 17 analyzes the instruction. Not targeted.

このようにすることで、ドキュメントファイル内の攻撃コードの検知および攻撃コードによる挙動の解析を確実に行うことができる。   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 virtual machine 10, when the document file operation program is a program having a JIT (Just In Time) compiler function, the taint tag adding unit 14 adds a predetermined taint tag to a code (byte string) generated by the JIT. (For example, Tag = JIT) may be set. Then, the determination unit 16 may determine that the attack is not an attack by an attack code when an instruction having this taint tag (for example, Tag = JIT) is executed.

図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 virtual machine 10 sets a predetermined taint tag (for example, Tag = JIT) for the instruction sequence generated by JIT among the data written to the virtual physical memory 10a by the document file operation program. For other data, another taint tag is set. When a byte sequence in which a taint tag (for example, Tag = JIT) indicating that it is an instruction sequence generated by JIT is executed, the virtual machine 10 is excluded from the analysis target, and other than that When data with a taint tag (for example, Tag = WRITTEN) is executed, this is the analysis target.

なお、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 virtual machine 10, it is possible to detect and analyze the attack on the document file.

すなわち、前記したとおり、仮想マシン10の判定部16は、仮想物理メモリ10a上に書き出された、ドキュメントファイルのデータ(命令列)がプログラム実行部13により実行されたときに、そのドキュメントファイルによる攻撃を検知する。ここで、JITコンパイラ機能(以下、適宜「JIT」と略す)を持つドキュメントファイル操作プログラムは、ドキュメントファイル内のスクリプト実行時に実行バイナリコードを仮想物理メモリ10a上に書き出し、それを実行する。   That is, as described above, the determination unit 16 of the virtual machine 10 uses the document file when the data (instruction sequence) of the document file written on the virtual physical memory 10a is executed by the program execution unit 13. Detect attacks. Here, a document file operation program having a JIT compiler function (hereinafter abbreviated as “JIT” as appropriate) writes an execution binary code on the virtual physical memory 10a when executing a script in the document file and executes it.

このとき、仮想マシン10のテイント解析部15は、JITで生成されたスクリプトの命令列について、JITで生成された命令列であることを示すテイントタグを設定する。そして、判定部16は、通常であれば、テイントタグを保持する命令について攻撃であると判断するが、このJITで生成された命令については攻撃ではないと判定する。このようにすることで、仮想マシン10は、JITで生成された命令について、誤って攻撃であると判定してしまうことを避けることができる。   At this time, the taint analysis unit 15 of the virtual machine 10 sets a taint tag indicating that the instruction sequence of the script generated by JIT is an instruction sequence generated by JIT. Then, the determination unit 16 determines that the instruction holding the taint tag is an attack if it is normal, but determines that the instruction generated by this JIT is not an attack. By doing so, the virtual machine 10 can avoid erroneously determining that the instruction generated by JIT is an attack.

なお、テイントタグ付与部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.

Figure 0005989599
Figure 0005989599

これにより、ドキュメントファイル操作プログラムの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 determination unit 16 determines that an instruction generated by JIT among the instructions executed by the program execution unit 13 is not an attack.

なお、ドキュメントファイル操作プログラムの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 virtual machine 10 sets a taint tag (for example, Tag = WRITTEN) to data generated by the document file operation program, and another taint tag (for example, Tag) is set to a part generated by JIT. = JIT) may be set.

図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 virtual machine 10 includes a predetermined instruction sequence of a script generated by JIT. A taint tag (for example, Tag = JIT) is set. Further, when the attack code is obfuscated by the document file operation program and the original code is written on the virtual physical memory 10a, the virtual machine 10 if the original code or other normal data is written. Sets the taint tag (for example, Tag = WRITTEN) set in the document file operation program to the data. Here, if the taint tag set in the document file has disappeared, that is, if the value to be written has no taint tag, the virtual machine 10 writes Tag = WRITTEN, but the taint tag has not disappeared. If it is, the propagated taint tag (Tag = DOC) is written as it is.

そして、仮想マシン10はJITで生成されたスクリプトの命令列のテイントタグ(例えば、Tag=JIT)が設定された部分については解析対象外とし、ドキュメントファイル操作プログラムに設定されたテイントタグ(例えば、Tag=WRITTEN)が設定された部分については解析対象とする。また、仮想マシン10は、伝搬してきたタグ(Tag=DOC)が設定されている部分についても解析対象とする。   The virtual machine 10 excludes the portion where the taint tag (for example, Tag = JIT) of the instruction sequence of the script generated by JIT is set as the analysis target, and sets the taint tag (for example, Tag = JIT) set in the document file operation program. WRITTEN) is set for analysis. In addition, the virtual machine 10 also sets a portion for which a propagated tag (Tag = DOC) is set as an analysis target.

このようにすることで、ドキュメントファイルが難読化または暗号化された攻撃コードを含み、かつ、ドキュメントファイル操作プログラムが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 virtual machine 10 according to the first embodiment, when the program execution unit 13 writes an instruction in which a taint tag is set to the virtual physical memory 10a, no value is written to the virtual physical memory 10a. The taint analysis unit 15 may set a taint tag indicating the analysis target (for example, the same tag as the taint tag set in the document file).

また、第2の実施形態および第3の実施形態の仮想マシン10において、プログラム実行部13が、テイントタグが設定された命令が仮想物理メモリ10aに対して書き込みを行う場合、仮想物理メモリ10aにドキュメントファイル操作プログラムまたはJITに設定されたテイントが設定されていないとき、テイント解析部15が、解析対象を示すテイントタグ(例えば、ドキュメントファイルに設定されたテイントタグと同じタグ)を設定するようにしてもよい。   In the virtual machine 10 of the second and third embodiments, when the program execution unit 13 writes an instruction with a taint tag set to the virtual physical memory 10a, a document is stored in the virtual physical memory 10a. When the taint set in the file operation program or JIT is not set, the taint analysis unit 15 may set a taint tag indicating the analysis target (for example, the same tag as the taint tag set in the document file). .

このようにすることで、仮想物理メモリ10a上に書き込まれたデータに確実にテイントタグを設定することができる。これにより、仮想マシン10はドキュメントファイルの攻撃を確実に検知し、解析を行うことができる。   In this way, it is possible to reliably set a taint tag for data written on the virtual physical memory 10a. As a result, the virtual machine 10 can reliably detect and analyze an attack on the document file.

また、テイント解析部15は、プログラム実行部13により、解析対象の命令から外部関数が呼ばれる場合、その外部関数が復帰した時点を捉え、その外部関数により書き込まれた仮想物理メモリ10a上のデータを特定し、その書き込まれた全てのデータに対して解析対象を示すテイントタグを設定してもよい。このようにすることで、ドキュメントから外部関数が呼ばれることで攻撃がされる場合でも、解析を行うことができる。   Further, when an external function is called from the instruction to be analyzed by the program execution unit 13, the taint analysis unit 15 captures the time when the external function has returned, and stores the data on the virtual physical memory 10 a written by the external function. A taint tag indicating the analysis target may be set for all the data that is specified and written. In this way, even when an attack is made by calling an external function from a document, analysis can be performed.

また、判定部16は、プログラム実行部13で読み込んだ命令が分岐命令の場合、分岐先の命令にテイントタグが設定されていたとき、攻撃と判断してもよい。また、この分岐命令が、アドレスを指定して分岐する命令の場合、その指定されたアドレスに解析対象を示すテイントタグが設定されていたとき、攻撃と判断してもよい。なお、ここで言う分岐命令は条件分岐命令、無条件分岐命令の両者を含む。判定部16は、上記のような分岐命令の実行前後の挙動だけでなく、全ての命令の実行を逐次的に確認してもよい。   Further, when the instruction read by the program execution unit 13 is a branch instruction, the determination unit 16 may determine that the attack is an attack when a taint tag is set in the branch destination instruction. Further, when the branch instruction is an instruction that branches by designating an address, an attack may be determined when a taint tag indicating an analysis target is set at the designated address. The branch instruction mentioned here includes both a conditional branch instruction and an unconditional branch instruction. The determination unit 16 may sequentially check the execution of all instructions, not just the behavior before and after execution of the branch instruction as described above.

さらに、解析実行部18は、解析対象と判断された命令から呼び出されるライブラリ関数と、その詳細情報を取得してもよい。このライブラリ関数は、API、システムコール、ローカル関数等であり、詳細情報としては、そのライブラリ関数のライブラリ名、モジュール名、引数の値や型、その関数を呼び出した位置情報やインスタンス情報等である。なお、解析実行部18は、ライブラリ関数は呼び出された場合のみならず、ライブラリ関数から解析対象の命令へ実行が遷移する際にもその実行を捕らえ詳細情報を出力してもよい。   Further, the analysis execution unit 18 may acquire a library function called from an instruction determined to be analyzed and detailed information thereof. This library function is an API, a system call, a local function, and the like, and detailed information includes a library name, a module name, an argument value and type of the library function, position information where the function is called, instance information, and the like. . The analysis execution unit 18 may capture detailed execution and output detailed information not only when the library function is called but also when execution changes from the library function to the instruction to be analyzed.

なお、仮想マシン10は、Binary Instrumentationを利用し特定のプロセスのみを仮想化するプロセス型の仮想マシンを利用してもよいし、アプリケーションとして動作する仮想マシンモニタではなく、XenやKVM(Kernel-based Virtual Machine)のようにホストOSと仮想マシンモニタを同じ層に実装するような仮想化を利用してもよい。また、仮想化実装のため、Intel(登録商標)-VT(Virtualization Technology)のようなHW(ハードウェア)サポートを利用してもよい。   Note that the virtual machine 10 may use a process-type virtual machine that uses Binary Instrumentation to virtualize only a specific process, and is not a virtual machine monitor that operates as an application, but Xen or KVM (Kernel-based). Virtualization such as mounting a host OS and a virtual machine monitor in the same layer, such as Virtual Machine, may be used. Further, for virtualization implementation, HW (hardware) support such as Intel (registered trademark) -VT (Virtualization Technology) may be used.

[プログラム]
また、情報処理装置が実行する処理をコンピュータが実行可能な言語で記述した監視プログラムを作成することもできる。この場合、コンピュータが監視プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる監視プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された監視プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、図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 computer 1000 includes, for example, a memory 1010, a CPU 1020, a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. These units are connected by a bus 1080.

メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。ディスクドライブ1100には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1110およびキーボード1120が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1130が接続される。   The memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012. The ROM 1011 stores a boot program such as BIOS (Basic Input Output System). The hard disk drive interface 1030 is connected to the hard disk drive 1090. The disk drive interface 1040 is connected to the disk drive 1100. A removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1100, for example. For example, a mouse 1110 and a keyboard 1120 are connected to the serial port interface 1050. For example, a display 1130 is connected to the video adapter 1060.

ここで、図9に示すように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した監視対象のプログラムは、例えばハードディスクドライブ1090やメモリ1010に記憶される。   Here, as shown in FIG. 9, the hard disk drive 1090 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. The monitoring target program described in the above embodiment is stored in, for example, the hard disk drive 1090 or the memory 1010.

また、監視プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1090に記憶される。具体的には、プログラム実行部13と、テイントタグ付与部14、テイント解析部15、判定部16、命令監視部17、解析実行部18それぞれにおいて実行される指令が記述されたプログラムモジュールが、ハードディスクドライブ1090に記憶される。   Further, the monitoring program is stored in, for example, the hard disk drive 1090 as a program module in which a command to be executed by the computer 1000 is described. Specifically, the program execution unit 13, the taint tag assigning unit 14, the taint analysis unit 15, the determination unit 16, the instruction monitoring unit 17, and the program module in which instructions to be executed in the analysis execution unit 18 are described are hard disk drives. 1090 is stored.

また、監視プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ1090に記憶される。そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュールやプログラムデータを必要に応じてRAM1012に読み出して、上述した各手順を実行する。   In addition, data used for information processing by the monitoring program is stored in the hard disk drive 1090 as program data, for example. Then, the CPU 1020 reads out the program module and program data stored in the hard disk drive 1090 to the RAM 1012 as necessary, and executes each procedure described above.

なお、監視プログラムに係るプログラムモジュールやプログラムデータは、ハードディスクドライブ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 hard disk drive 1090, but are stored in, for example, a removable storage medium and read out by the CPU 1020 via the disk drive 1100 or the like. Also good. Alternatively, the program module and program data related to the monitoring program are stored in another computer connected via a network such as a LAN (Local Area Network) or a WAN (Wide Area Network), and the CPU 1020 via the network interface 1070. It may be read out.

1 ハードウェア
3 仮想マシンソフトウェア
10 仮想マシン
10a 仮想物理メモリ
10b シャドウメモリ
11a 仮想ディスク
11b シャドウディスク
12 仮想CPU
13 プログラム実行部
14 テイントタグ付与部(タグ付与部)
15 テイント解析部
16 判定部
17 命令監視部
18 解析実行部
19 仮想HWコントローラ
19a テイント情報伝搬部
DESCRIPTION OF SYMBOLS 1 Hardware 3 Virtual machine software 10 Virtual machine 10a Virtual physical memory 10b Shadow memory 11a Virtual disk 11b Shadow disk 12 Virtual CPU
13 Program Execution Unit 14 Taint Tag Assignment Unit (Tag Assignment Unit)
DESCRIPTION OF SYMBOLS 15 Taint analysis part 16 Judgment part 17 Instruction monitoring part 18 Analysis execution part 19 Virtual HW controller 19a Taint information propagation part

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 .
前記テイント解析部は、さらに、
前記プログラムにより実行されるメモリへの書き込もうとしているデータに、前記プログラムに設定されたタグが設定されていない場合、前記データに、前記ドキュメントファイルに設定したタグと同じタグを設定することを特徴とする請求項に記載の情報処理装置。
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 .
JP2013104528A 2013-05-16 2013-05-16 Information processing apparatus and information processing method Expired - Fee Related JP5989599B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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