JP2006106939A - Hacking detection method, hacking detection apparatus, and program - Google Patents
Hacking detection method, hacking detection apparatus, and program Download PDFInfo
- Publication number
- JP2006106939A JP2006106939A JP2004290053A JP2004290053A JP2006106939A JP 2006106939 A JP2006106939 A JP 2006106939A JP 2004290053 A JP2004290053 A JP 2004290053A JP 2004290053 A JP2004290053 A JP 2004290053A JP 2006106939 A JP2006106939 A JP 2006106939A
- Authority
- JP
- Japan
- Prior art keywords
- system call
- program
- monitoring target
- target program
- information
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、コンピュータへの不正プログラムの進入を検知する侵入検知方法及び侵入検知装置並びにプログラムに関するものである。 The present invention relates to an intrusion detection method, an intrusion detection device, and a program for detecting an intrusion of a malicious program into a computer.
コンピュータシステムのセキュリティホールを攻撃して侵入するウイルスやワーム等の不正プログラムは、侵入したコンピュータの制御を奪い、コンピュータそのものや当該コンピュータに格納されているデータの破壊、他コンピュータへの不正なデータの送信等を行う。このような不正プログラムに対応するため、プログラムやシステムの挙動を監視して、コンピュータの制御が奪われたか否かを検知する侵入検知システム(IDS:Intrusion Detection System)がある。 A malicious program such as a virus or worm that intrudes by attacking a security hole in a computer system takes control of the intruding computer, destroys the computer itself or the data stored in the computer, or creates illegal data on other computers. Send and so on. In order to deal with such unauthorized programs, there is an intrusion detection system (IDS) that monitors the behavior of programs and systems and detects whether or not control of the computer has been taken.
侵入検知の例として、Wagnerらによって提唱された、不正プログラムによるプログラムの実行制御の異常を、プログラムの静的解析と外部からのプログラム実行状態の監視により確認する方法がある(非特許文献1)。 As an example of intrusion detection, there is a method proposed by Wagner et al. For confirming abnormality in program execution control by an unauthorized program by static analysis of the program and monitoring of the program execution state from the outside (Non-patent Document 1). .
この方法では、予め、監視対象プログラムの制御フローを解析して、当該プログラムの発行するシステムコール(system call)の発行シーケンスを解析しておく。システムコールとは、OS(Operating System)の機能を、OS上で動作するアプリケーションプログラムで呼び出すことである。監視対象プログラム実行時に、システムコールの発行過程を外部から監視し、その発行シーケンスが、予め解析したシステムコール発行シーケンスと合致するかを判定することにより、当該プログラムが不正な動作を行ったかどうか確認する。 In this method, a control flow of a monitoring target program is analyzed in advance, and a system call issue sequence issued by the program is analyzed in advance. The system call is to call an OS (Operating System) function by an application program operating on the OS. When the monitored program is executed, the system call issuance process is monitored from the outside, and whether the issuance sequence matches the system call issuance sequence analyzed in advance to check whether the program has performed an illegal operation. To do.
Wagnerらの方法を具体的に説明する。図10は、Wagnerらによる侵入検知の方法を説明する図である。図10(a)は、監視対象プログラム1001の制御フローを示している。ここで、丸で囲んだ要素は、監視対象プログラムのシステムコールの発行を、矢印はシステムコール間の制御の遷移を表している。
The method of Wagner et al. Will be specifically described. FIG. 10 is a diagram for explaining a method of intrusion detection by Wagner et al. FIG. 10A shows a control flow of the
図10(b)は、図10(a)に示す監視対象プログラム1001のシステムコール発行シーケンスを示す。ここでは、監視対象プログラムのシステムコール発行シーケンスを文脈自由な文法形式で表したものをマッチング用文法として説明する。図10(b)は、監視対象プログラム1001のマッチング用文法1002の一例である。ここで、「Entry」はプログラムの開始点を示し、「*」は0回以上の繰り返しを示す。
FIG. 10B shows a system call issue sequence of the
マッチング用文法1002は、「open」システムコールを発行した後に、「read」システムコールを0回以上繰り返し発行し、その後、「close」、「exec」、「exit」の順でシステムコールを発行することを示している。
After issuing the “open” system call, the
図10(c)は、Wagnerらの方法による侵入検知システムの概要を示している。Wagnerらの方法による侵入検知システムは、監視対象プログラム1001、マッチング用文法1002、監視プログラム1003等を備える。
FIG. 10 (c) shows an overview of an intrusion detection system by the method of Wagner et al. The intrusion detection system according to the method of Wagner et al. Includes a
予め、監視対象プログラム1001を解析し、マッチング用文法1002を生成しておく。監視対象プログラム1001は、システムコールを発行する場合、当該システムコールを示す情報を監視プログラム1003に送信する。監視プログラム1003は、マッチング用文法1002を参照し、監視対象プログラム1001のシステムコール発行シーケンスが、マッチング用文法1002に示すシステムコール発行シーケンスと一致するか否か判定する。システムコールシーケンスが一致しない場合は、外部からの侵入によってプログラムの制御が奪われた可能性があるので、監視プログラム1003は、監視対象プログラム1001の停止、スローダウン、システム管理者への通知を行う。
The
上述したWagnerらの侵入検知方法では、不正プログラムの攻撃により監視対象プログラムの制御が奪われた後のシステムコールの発行シーケンスが、元のシステムコール発行シーケンスと一致する場合、不正侵入があったか否か検知することができない。 In the Wagner et al. Intrusion detection method described above, if the system call issuance sequence after the monitored program is deprived of control by an unauthorized program attack matches the original system call issuance sequence, whether or not there has been an unauthorized intrusion. It cannot be detected.
不正侵入を検知できない場合の例を図11を参照して説明する。図11(a)において、監視対象プログラム1101は、関数「main」から関数「foo」を呼び出している。関数「foo」の中で、大きさ10バイトの配列「buf」を宣言し、システムコール「gets」により、配列「buf」にデータを読み込んでいる。「gets」を呼び出した後、「return」で関数「main」に戻り、システムコール「exec」、「exit」を発行している。
An example of a case where unauthorized intrusion cannot be detected will be described with reference to FIG. In FIG. 11A, the
監視対象プログラム1101の、Wagnerらの方法によるマッチング用文法の一例を、図11(b)のマッチング用文法1102に示す。マッチング用文法1102に示すように、監視対象プログラム1101はシステムコールを「gets」、「exec」、「exit」の順に発行する。
An example of the matching grammar of the
図11(c)は、監視対象プログラム1101が不正プログラムに攻撃される前、即ち、監視対象プログラム1101が正常に実行された場合のスタックフレームの状態の一例を示す。配列「buf」1103に対応する領域は、関数「foo」のアクティベーションレコード中に確保されている。宣言した配列「buf」1103の下の「PC」1104には、関数「foo」の戻りアドレス「main+m1」が格納されている。
FIG. 11C shows an example of a stack frame state before the
監視対象プログラム1101は次のように動作する。監視対象プログラム1101は、関数「main」から呼び出した関数「foo」の中で「gets」により配列「buf」にデータを読み込んだ後、「return」で「PC」1104を参照し、関数「foo」の戻りアドレス「main+m1」を得て、関数「main」に戻り、システムコール「exec」、「exit」を実行する。
The
図11(d)は、不正プログラムが実行された後に監視対象プログラム1101が実行された場合のスタックフレームの状態の一例を示す。配列「buf」1103に対応する領域は、関数「foo」のアクティベーションレコード中に確保されている。
FIG. 11D shows an example of the state of the stack frame when the
監視対象プログラム1101は次のように動作する。監視対象プログラム1101は、関数「main」から呼び出した関数「foo」の中で、システムコール「gets」により配列「buf」にデータを読み込む。ここまでは、監視対象プログラム1101が正常に実行された場合と同じである。
The
不正プログラムによる攻撃を受けたことにより、「gets」の呼び出しで、配列「buf」1103の領域長10バイトを超えた不正なデータが読み込まれる。すると、本来正しい戻りアドレスが格納されているはずの「PC」1104に、「gets」の呼び出しにより読み込まれた不正なデータが書き込まれ、関数「foo」の戻りアドレスが、攻撃コード1105のアドレスを示すように変更される。また、不正プログラムにより、スタック上に攻撃コード1105が書き込まれる。当該アドレスに従って戻った先の不正プログラムのシステムコールが「exec」であれば、不正なプログラムは実行される。
Due to the attack by the malicious program, illegal data exceeding the 10-byte area length of the array “buf” 1103 is read by calling “gets”. Then, invalid data read by calling “gets” is written in “PC” 1104, which should have stored the correct return address, and the return address of function “foo” is the address of
Wagnerらの侵入検知方法では、システムコールの発行シーケンスのマッチングにより不正侵入を検知している。従って、上述したような、システムコールの発行シーケンスが、元のプログラムと、不正プログラムにより攻撃された後のプログラムとで一致する場合、不正侵入を検知することができない。 The intrusion detection method of Wagner et al. Detects unauthorized intrusion by matching the system call issuance sequence. Therefore, when the system call issuance sequence as described above matches between the original program and the program after being attacked by the unauthorized program, the unauthorized intrusion cannot be detected.
本発明はこのような事情に鑑みてなされたもので、コンピュータへの不正侵入を検知する侵入検知方法及び侵入検知装置並びにプログラムを提供することを目的とする。 The present invention has been made in view of such circumstances, and an object thereof is to provide an intrusion detection method, an intrusion detection device, and a program for detecting unauthorized intrusion into a computer.
本発明は上記の目的を達成するためになされたもので、監視対象プログラムへの不正侵入がない場合のシステムコール及び当該システムコールまでの経路情報を、監視対象プログラムの実行によるシステムコール要求及び当該システムコールまでの経路情報と比較することにより、当該プログラムを実行するコンピュータが不正侵入されたか否か判定するものである。 The present invention has been made in order to achieve the above-described object. A system call when there is no unauthorized intrusion into the monitored program and route information to the system call, a system call request by executing the monitored program, and the By comparing with the route information to the system call, it is determined whether or not the computer executing the program has been illegally intruded.
具体的には、例えば、コンピュータが、監視対象プログラムへの不正侵入を検知する侵入検知方法であって、前記監視対象プログラムへの不正侵入がない場合のシステムコールと、当該システムコールまでの経路情報とを対応付けて記憶部へ記憶する第1のステップと、前記監視対象プログラムの実行によりシステムコールを要求する場合、当該システムコールを示す情報と、当該システムコールまでの経路情報とを取得する第2のステップと、前記要求したシステムコールを示す情報と当該システムコールまでの経路情報とが、前記記憶したシステムコールと当該システムコールに対応する経路情報とに一致するか否か判定する第3のステップと、前記第3のステップで一致すると判定した場合、前記要求したシステムコールを実行する第4のステップと、を備えることを特徴とする。 Specifically, for example, an intrusion detection method in which a computer detects unauthorized intrusion into a monitored program, and a system call when there is no unauthorized intrusion into the monitored program, and route information to the system call. And when the system call is requested by executing the monitoring target program, information indicating the system call and route information to the system call are acquired. A third step for determining whether the information indicating the requested system call and the route information to the system call match the stored system call and the route information corresponding to the system call; If it is determined that the step matches the third step, the requested system call is executed. Characterized in that it comprises the steps of, a.
また、例えば、システムコールまでの経路情報とは、監視対象プログラム内の経路、又は、監視対象プログラムを実行するコンピュータのメモリ領域の経路であることを特徴とする。 Further, for example, the route information to the system call is a route in the monitoring target program or a route in a memory area of a computer that executes the monitoring target program.
また、例えば、システムコールまでの経路情報とは、分岐アドレスであることを特徴とする。 For example, the route information to the system call is a branch address.
本発明による情報処理装置及びプログラムによれば、コンピュータへの不正侵入を検知することができる。特に、不正侵入されたコンピュータが不正なプログラムにより攻撃され、自身で動作するプログラムの制御が奪われることを検知することができる。これにより、不正侵入されたコンピュータで実行するプログラムの停止、スローダウン、システム管理者への通知等の対応が可能となる。 The information processing apparatus and program according to the present invention can detect unauthorized intrusion into a computer. In particular, it is possible to detect that a computer that has been illegally invaded is attacked by an unauthorized program and control of the program that operates by itself is deprived. As a result, it is possible to cope with stopping, slowing down, notifying the system administrator, and the like of a program executed on an unauthorized computer.
以下、本発明の一実施形態を図面を参照して詳細に説明する。図1は、本実施形態の侵入検知装置の構成の一例を示す図である。図1において、侵入検知装置1は、中央演算装置(CPU:Central Processing Unit)2、メモリ3、HDD(Hard Disk Drive)4、出力部5、入力部6、通信部7等を備える。
Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. FIG. 1 is a diagram illustrating an example of a configuration of an intrusion detection device according to the present embodiment. In FIG. 1, an intrusion detection device 1 includes a central processing unit (CPU) 2, a
侵入検知装置1は、例えば計算機システム等である。本実施形態では、侵入検知装置1は、監視対象プログラム102を実行し、さらに、監視対象プログラム102を監視する監視プログラム101を実行するものとする。監視対象プログラム102を実行する侵入検知装置1は特定の機能の装置に限定されるものではないが、例えば、Webサーバやネットワークファイルサーバなど、通信ネットワークを介して他装置と通信する装置に適用するのが好適である。
The intrusion detection device 1 is, for example, a computer system. In the present embodiment, it is assumed that the intrusion detection apparatus 1 executes the
中央演算装置2は、監視プログラム101、監視対象プログラム102、OS103、経路取得プログラム104をメモリ3にロードして実行するものとする。
The
監視プログラム101は、監視対象プログラム102を監視するプログラムである。具体的には、監視プログラム101は、監視対象プログラム102の実行により要求するシステムコール及び当該システムコールまでの経路情報と、監視対象プログラム102が不正な侵入を受けていない場合のシステムコール及び当該システムコールに対応する経路情報とが一致するか否かにより、監視対象プログラム102を監視する。本実施形態の侵入検知装置1では、中央演算装置2は、OS103を実行した上で、監視対象プログラム102を実行するものとする。
The
経路取得プログラム104とは、監視対象プログラム102を実行した場合、当該プログラムのシステムコールまでの経路情報を取得するプログラムである。システムコールまでの経路とは、例えば、監視対象プログラム102内の経路、又は、管理対象プログラム103を実行するメモリ3の領域の経路等である。
The
ここでは、システムコールまでの経路とは、監視対象プログラム102内の経路であるものとし、具体的には、監視対象プログラム102の分岐アドレスであるものとする。この分岐アドレスは、例えば、分岐トレースバッファの機能を用いることにより取得できる。分岐トレースバッファとは、一部の中央演算装置に備えられている機能であり、プログラムの実行により発生した分岐に関する情報を、中央演算装置上のレジスタ又はメモリ上の領域に記憶する機能である。
Here, it is assumed that the route to the system call is a route in the
本実施形態では、経路取得プログラム104に、分岐トレースバッファの機能を用いるのとする。経路取得プログラム104は、取得した経路情報を、分岐トレースバッファの機能により取得した情報を、中央演算装置2上のレジスタに格納するものとする。以下、分岐トレースバッファの機能により取得した情報を格納するレジスタの領域を経路記憶部105として説明する。
In this embodiment, the function of the branch trace buffer is used for the
経路取得プログラム104は、経路記憶部105に、図2に一例を示すような分岐に関する情報201を複数格納する。図2において、分岐に関する情報201には、分岐元アドレス、分岐先アドレス、分岐命令の分岐予測結果が含まれる。この経路記憶部105に格納する分岐に関する情報の個数は、利用者が入力部6を用いて指定することにより変更することができる。中央演算装置2は、OS103の実行等により、経路記憶部105へ格納する分岐に関する情報の個数を、特定のアクセス権を持つ利用者にのみ設定可能とする。
The
なお、分岐トレースバッファに関しては、例えば、“Intel,IA-32 Intel Architecture Software Developer's Manual Volume3:System Programming Guide,2003.”に記載されている。 The branch trace buffer is described in, for example, “Intel, IA-32 Intel Architecture Software Developer's Manual Volume 3: System Programming Guide, 2003”.
図1において、解析プログラム106とは、監視対象プログラム102を静的に解析し、当該プログラムのシステムコールと、当該システムコールまでの経路情報とを取得するためのプログラムである。中央演算装置2は、解析プログラム106を実行し、監視対象プログラム102のシステムコールと、当該システムコールまでの経路情報とを取得し、取得したシステムコールと当該システムコールまでの経路情報とを対応付けてメモリ3に格納する。ここでは、中央演算装置2は、システムコールを示す情報と、当該システムコールまでの経路情報とを任意の文法表現で示したものをメモリ3に格納するものとし、以下、これをマッチング用文法として説明する。
In FIG. 1, the
システムコールまでの経路情報が分岐アドレスである場合のマッチング用文法の例を、図3を参照して説明する。図3において、マッチング用文法301は、中央演算装置2が、解析プログラム106を実行することにより、図10(a)の監視対象プログラム1001から生成した例である。
An example of the matching grammar when the route information to the system call is a branch address will be described with reference to FIG. In FIG. 3, the matching
マッチング用文法301の「read.trace in {{0x2000,0x2001}}」は、「read」というシステムコールが「0x2000」、「0x2001」という順で分岐アドレスを経由することを示している。また、「open.trace in {{0x1000,0x1002},{0x1010,0x1002}}」は、「open」というシステムコールが、「{0x1000,0x1002}」又は「{0x1010,0x1002}」いずれかの分岐アドレスを経由することを示している。
“Read.trace in {{0x2000,0x2001}}” in the matching
図1において、メモリ3は、マッチング用文法107を記憶する。
In FIG. 1, the
出力部5は、例えば、ディスプレイ、スピーカ、プリンタ等の出力装置と、当該出力装置のドライバ等の制御部を備えるものである。
The
入力部6は、例えば、キーボード、マウス、マイク等の入力装置と、当該入力装置のドライバ等の制御部を備えるものである。 The input unit 6 includes, for example, an input device such as a keyboard, a mouse, and a microphone, and a control unit such as a driver of the input device.
通信部7は、例えば、LAN(Local Area Network)ポート等の通信インタフェースと、当該インタフェースの制御部を備えるものである。侵入検知装置1は、LANを介するなどして、インターネットや他装置等(いずれも図示略)に接続されていてもよい。
The
なお、上述の実施形態において、図1を例とする侵入検出装置1の中央演算装置2内の各部及びマッチング用文法を、同一装置の中央演算装置及びメモリが備えるものとしたが、これに限られるわけではなく、各部の一部を他の装置の中央演算装置及びメモリが備えてもよい。例えば、第1の装置の中央演算装置は、監視対象プログラム102、経路取得プログラム104、経路記憶部105を備え、第1の装置と通信ネットワークを介して接続される第2の装置の中央演算装置は、解析プログラム106及び監視プログラム101、第2の装置のメモリがマッチング用文法107を備えてもよい。
In the above-described embodiment, the respective units in the
次に、侵入検知装置1の動作を説明する。侵入検知装置1の中央演算装置2は、予め、解析プログラム106を実行して、マッチング用文法107を生成しておく。
Next, the operation of the intrusion detection device 1 will be described. The
なお、解析プログラム106の実行は、システム管理者の実行要求によるものや監視対象プログラム102の侵入検知装置1へのインストール時など、監視対象プログラム102が不正プログラムにより攻撃される前であればよく、特に限定するものではない。
Note that the
マッチング用文法107を生成する動作を、図4を参照して説明する。なお、図4を参照して説明する動作は、中央演算装置2が解析プログラム106をメモリ3にロードして実行することにより実現する動作である。
The operation of generating the matching
中央演算装置2は、解析プログラム106を実行して、監視対象プログラム102を読み込み、制御フローグラフ(CFG:control flow graph)を作成する。
The
制御フローグラフは、プログラムの制御構造をグラフで表現したものであり、判定も分岐もせず順次実行する命令文の列から構成される基本ブロックノードと、基本ブロックノード間の制御の推移関係を示すエッジ等から構成される。制御フローグラフを生成する技術は、コンパイラ等に用いられ公知であるが、例えば、中央演算装置2は、監視対象プログラム102を記載した文字列を、プログラム言語として意味を持つ単位に分割し、当該分割した文字列の構成を、監視対象プログラム102が記載されたプログラム言語の文法に従って解析することで制御フローグラフを生成する。
A control flow graph is a graphical representation of the control structure of a program, and shows the transition relationship of control between basic block nodes consisting of a sequence of command statements that are executed sequentially without judgment or branching. It consists of edges. A technique for generating a control flow graph is known to be used for a compiler or the like. For example, the
なお、制御フローグラフの生成に関しては、例えば、“A.V.Aho, R.Sethi and J.D. Ullman. Compilers:Principles,Techniques,and Tools,Addisoin-Wesley,1986.”に記載されている。 The generation of the control flow graph is described in, for example, “A.V. Aho, R. Sethi and J.D. Ullman. Compilers: Principles, Techniques, and Tools, Addisoin-Wesley, 1986”.
図11(a)に示す監視対象プログラム1101の制御フローグラフの一例を図5に示す。図5において、制御フローグラフは、基本ブロックノード501〜503を備える。基本ブロックノード501は、関数「main」内の命令文「foo()」を備える。基本ブロックノード502は、関数「foo」内の命令文「gets()」及び「return」を備える。基本ブロックノード503は、命令文「exec」及び「exit」を備える。
An example of a control flow graph of the
中央演算装置2は、生成した制御フローグラフを変数Gに格納する。さらに、変数Gに格納した制御フローグラフを構成する基本ブロックノード集合を変数Nに格納する(図4におけるステップ401)。例えば、図5に一例を示す制御フローグラフを用いて説明すると、中央演算装置2は、変数Gに、図5に示す制御フローグラフを格納し、変数Nには、図5に示す制御フローグラフの基本ブロックノード集合、即ち、基本ブロックノード501、基本ブロックノード502、基本ブロックノード503を格納する。
The
次に、中央演算装置2は、基本ブロックノード集合Nが空集合(N=Φ)であるか否か判定する(図4におけるステップ402)。
Next, the
基本ブロックノード集合Nが空集合である(N=Φ)場合、中央演算装置2は、後述する処理で取得するシステムコールと、当該システムコールまでの経路情報とからマッチング用文法107を生成する(図4におけるS408)。
When the basic block node set N is an empty set (N = Φ), the
基本ブロックノード集合Nが空集合でない(N≠Φ)場合、中央演算装置2は、基本ブロックノード集合Nから1つの基本ブロックノードを取り出し、変数nに格納する。さらに、基本ブロックノードnに到達する分岐集合を変数Tに格納する。さらに、基本ブロックノードn中の分集合を変数Sに格納する(図4におけるステップ403)。
When the basic block node set N is not an empty set (N ≠ Φ), the
例えば、図5に一例を示す制御フローグラフを用いて説明すると、基本ブロックノード集合Nに基本ブロックノード501〜503が格納されている場合、中央演算装置2は、N≠Φであるので、基本ブロックノード集合Nから基本ブロックノード501を取り出してnとする。これにより、基本ブロックノード集合Nは、基本ブロックノード502及び503となる。n(基本ブロックノード501)に到達する分岐集合は無いので、分岐集合T=Φ(空集合)とする。n中の命令文は「foo()」であるので、これを文集合Sとする。
For example, using a control flow graph shown in FIG. 5 as an example, when the
次に、中央演算装置2は、基本ブロックノードn中の文集合Sが空集合(S=Φ)であるか否か判定する(図4におけるステップ404)。
Next, the
基本ブロックノードn中の文集合Sが空集合である(S=Φ)場合、中央演算装置2は、ステップ402の処理を再度実行する。
When the sentence set S in the basic block node n is an empty set (S = Φ), the
基本ブロックノードn中の文集合Sが空集合でない(S≠Φ)場合、中央演算装置2は、基本ブロックノード中の文集合Sから1の文を取り出し、変数sに格納する(図4におけるステップ405)。
When the sentence set S in the basic block node n is not an empty set (S ≠ Φ), the
例えば、図5に一例を示す制御フローグラフを用いて説明すると、基本ブロックノードnが基本ブロックノード501である場合、中央演算装置2は、S≠Φであるので、文集合Sから「foo()」を取り出して文sとする。文集合Sは、「foo()」を取り出したことにより空集合となる。
For example, using the control flow graph shown in FIG. 5 as an example, when the basic block node n is the
次に、中央演算装置2は、文sがシステムコールを実行する文であるか否か判定する(図4におけるステップ406)。
Next, the
文sがシステムコールを実行する文でない場合、中央演算装置2は、ステップ404の処理を再度実行する。
If the sentence s is not a sentence for executing a system call, the
文sがシステムコールを実行する文である場合、中央演算装置2は、文sに到達する分岐集合を「T+{s}」とし(図4におけるステップ407)、当該情報をメモリ3内の特定の記憶部に格納した後、ステップ404の処理を再度実行する。なお、文sに到達する分岐集合「T+{s}」の「T」は、基本ブロックノードnに至るまでの分岐集合であり、「{s}」は、システムコールである文sの分岐である。即ち、ここで得られた分岐集合「T+{s}」が、文sのシステムコールまでの経路情報である。
When the sentence s is a sentence for executing a system call, the
例えば、図5に一例を示す制御フローグラフを用いて説明すると、文sが「foo()」である場合、中央演算装置2は、システムコールを実行する文ではないと判定し、ステップ404の処理を再度実行する。
For example, using a control flow graph shown in FIG. 5 as an example, if the sentence s is “foo ()”, the
以下、図5に一例を示す制御フローグラフを用いて、上述したステップによる処理を続けて説明する。中央演算装置2は、ステップ404の処理を再度実行する。文集合Sは、「foo()」を取り出したことにより空集合(S=Φ)であるので、中央演算装置2は、ステップ402の処理を再度実行する。即ち、基本ブロックノード集合NがN≠Φであるので、基本ブロックノード集合Nから基本ブロックノード502を取り出して基本ブロックノードnに格納する。これにより、基本ブロックノード集合Nは、基本ブロックノード503のみとなる。基本ブロックノードn(基本ブロックノード502)に到達する分岐集合は「main+m0」であるので、中央演算装置2は、これを分岐集合Tとする。さらに、n中の命令文は「gets()」,「return」であるので、これを文集合Sとする(図4におけるステップ403)。
Hereinafter, the process according to the above-described steps will be described using the control flow graph shown in FIG. 5 as an example. The
次に、中央演算装置2は、基本ブロックノード中の文集合Sが空集合(S=Φ)であるか否か判定する(図4におけるステップ404)。この例では、文集合Sは空集合でない(S≠Φ)ので、文集合Sから命令文「gets()」を取り出して文sとする。文集合Sには、命令文「gets()」を取り出したことにより命令文「return」が残る。
Next, the
次に、中央演算装置2は、文sがシステムコールを実行する文であるか否か判定する(図4におけるステップ406)。この例では、文s(gets())はシステムコールを実行する文であるので、文sに到達する分岐集合を「T+{s}」、即ち「main+m0,foo+n0」とする(図4におけるステップ407)。中央演算装置2は、経路情報である分岐集合をメモリ3内の特定の記憶部に格納等した後、ステップ404の処理を再度実行する。
Next, the
中央演算装置2は、上述した処理を繰り返し、監視対象プログラム102のすべてのシステムコールの経路情報を取得する。ステップ402の処理にて基本ブロックノード集合Nが空集合である(N=Φ)場合、即ち、全てのシステムコールに関し経路情報を取得した場合、中央演算装置2は、上記した処理により取得したシステムコールと、当該システムコールまでの経路情報とからマッチング用文法107を生成する(図4におけるS408)。具体的には、例えば、中央演算装置2は、制御フローグラフGの基本ブロックノードからシステムコールを順次抽出し、予め定めておいた書式に従う等して文法表現に変換する。さらに、中央演算装置2は、各システムコールまでの経路情報(分岐集合「T+{s}」)を特定の記憶部から読み出して順次追加し、マッチング用文法107を生成する。
The
図6に、中央演算装置2が解析プログラム106を実行することにより、図11(a)に示す監視対象プログラム1101から生成したマッチング用文法の一例を示す。図6において、マッチング用文法601は、「gets」というシステムコールを「main+m0」、「foo+n0」という順で分岐アドレスを経由して実行することを示している。「exec」というシステムコールを「main+m1」という分岐アドレスを経由して実行することを示している。「exit」というシステムコールを「main+m2」という分岐アドレスを経由して実行することを示している。
FIG. 6 shows an example of the matching grammar generated from the
監視対象プログラム102を監視する動作を図7及び図8を参照して説明する。図7では監視プログラム101の動作を、図8では経路取得プログラム104を拡張モジュールとして実現するOS103の動作を説明する。なお、図7を参照して説明する動作は、中央演算装置2が監視プログラム101をメモリ3にロードして実行することにより実現される動作である。また、図8を参照して説明する動作は、中央演算装置2が、経路取得プログラム104を拡張モジュールとするOS103をメモリ3にロードして実行することにより実現する動作である。
The operation of monitoring the
ここでは、中央演算装置2は、OS103及び経路取得プログラム104により、少なくとも監視対象プログラム102を含む、侵入検知装置1で実行する全て又は一部のプログラムで分岐が発生する度に、当該分岐の分岐に関する情報を経路記憶部105に格納しておくものとする。
Here, every time a branch occurs in all or some of the programs executed by the intrusion detection device 1 including at least the
監視プログラム101の実行により、中央演算装置2は、マッチング用文法107をメモリ3から読み込んで、変数Gに格納する(図7における701)。この状態で、システムコールを示す情報と、当該システムコールまでの経路情報とを取得するまで待機する。監視プログラム101の実行開始は、入力部6を用いて利用者等が指示してもよく、また、タイマによる実行開始時間の設定や、侵入検知装置1の起動又はOS103の起動と同時に実行されるようにしてもよい。
By executing the
利用者の実行要求又はタイマによる開始時間の設定等により、中央演算装置2は、監視対象プログラム102を実行する。
The
監視対象プログラム102によりシステムコールを要求すると、中央演算装置2は、図8に一例を示す動作を、OS103を実行することで実現する。まず、中央演算装置2は、監視対象プログラム102がトレース中であるか否か判定する(図8におけるステップ801)。
When a system call is requested by the
この判定のために、例えば、中央演算装置2は、監視対象プログラム102を実行した場合、OS103の実行により、監視対象プログラム102を実行したことを通知するフラグを立てる等する。中央演算装置2は、このフラグを確認する等して、監視対象プログラム102がトレース中であるか否か判定する。
For this determination, for example, when the
監視対象プログラム102がトレース中でない場合、中央演算装置2は、OS103を実行することにより、要求したシステムコールを実行する(図8におけるステップ804)。
When the
監視対象プログラム102がトレース中である場合、中央演算装置2は、OS103の実行により、経路記憶部105から、要求したシステムコールまでの経路情報を読み出し、要求したシステムコールを示す情報を変数Sに、読み出した経路情報を変数Tに格納する(図8におけるステップ802)。ここでは、中央演算装置2は、経路記憶部105内に格納している複数の分岐に関する情報から、要求したシステムコールまでの分岐アドレスを読み出し、当該情報を経路情報として変数Tに格納する。
When the
このようにシステムコールを示す情報S及び経路情報Tを取得すると、中央演算装置2は、監視プログラム101の実行により、システムコールを示す情報を変数Sに、当該システムコールまでの経路情報を変数BHに格納する(図7におけるステップ702)。ここでは、経路情報として、上述したシステムコールまでの分岐アドレスを示す情報がBHに格納される。
When the information S indicating the system call and the route information T are acquired in this way, the
次に、中央演算装置2は、システムコールを示す情報Sが「S=exit」であるか否か判定する(図7におけるステップ703)。
Next, the
「S=exit」である場合、監視対象プログラム102は終了するので、中央演算装置2は、監視プログラム101の処理を終了する。
When “S = exit”, the
「S=exit」でない場合、中央演算装置2は、変数Gに格納したマッチング用文法Gを参照し、システムコールを示す情報Sと、マッチング用文法Gのシステムコールとが一致するか否か判定する(図7におけるステップ704)。
If it is not “S = exit”, the
システムコールを示す情報Sとマッチング用文法Gのシステムコールとが一致しない場合、中央演算装置2は、監視対象プログラム102が不正なプログラムにより制御を奪われた可能性があると判定し、侵入警告の出力、又は、監視対象プログラム102の停止やスローダウンを行う(図7におけるステップ707)。侵入警告の出力とは、例えば、ディスプレイへの侵入警告の表示、スピーカへの警告音の出力、プリンタへの出力、通信ネットワークにより接続されたPC(Personal Computer)や携帯電話等の通信装置(図示略)への電子メールや音声による通知等である。また、中央演算装置2は、侵入警告の出力、監視対象プログラム102の停止、監視対象プログラム102のスローダウンのうち全て又は一部を実行してもよい。
If the information S indicating the system call does not match the system call of the matching grammar G, the
システムコールを示す情報Sとマッチング用文法Gのシステムコールとが一致する場合、中央演算装置2は、経路情報BHと、マッチング用文法Gの経路情報とが一致するか否か判定する(図7におけるステップ705)。ここでは、中央演算装置2は、システムコールを示す情報Sまでの分岐アドレスである経路情報BHと、ステップ704にて判定したマッチング用文法Gのシステムコールに対応する分岐アドレスとが一致するか否か判定する。
When the information S indicating the system call matches the system call of the matching grammar G, the
経路情報BHとマッチング用文法Gの経路情報とが一致しない場合、中央演算装置2は、不正なプログラムにより監視対象プログラム102の制御が奪われた可能性があると判定し、侵入警告の出力、又は、監視対象プログラム102の停止又はスローダウンを行う(図7におけるステップ707)。
When the path information BH and the path information of the matching grammar G do not match, the
経路情報BHとマッチング用文法Gの経路情報とが一致する場合、中央演算装置2は、監視対象プログラム102が不正な侵入を受けていないと判定し、監視対象プログラム102の実行再開要求を行う(図7におけるステップ706)。そのために、中央演算装置2は、例えば、上述の判定結果を示すフラグを立てる等する。
When the path information BH and the path information of the matching grammar G match, the
OS103の実行により、中央演算装置2は、要求したシステムコール及び当該システムコールまでの経路情報が、マッチング用文法のシステムコール及び当該システムコールの経路情報と一致するか否かの判定結果により、システムコールが実行可能か否か判定する(図8におけるステップ803)。判定結果は、例えば、監視プログラム101の実行により立てられた判定結果を示すフラグ、又は、侵入警告の出力を実行するためのフラグや信号等の有無、又は、監視対象プログラム102の停止やスローダウン等を実行するためのフラグや信号の有無等を確認することにより取得することができる。
By executing the
判定結果が、監視対象プログラム102が不正な侵入を受けていないと判定したことを示すものである場合、中央演算装置2は、要求したシステムコールを実行する(図8におけるステップ804)。
If the determination result indicates that the
判定結果が、不正なプログラムにより監視対象プログラム102の制御が奪われた可能性があると判定されたことを示すものである場合、中央演算装置2は、図8に一例を示すOS103の実行を終了する。
When the determination result indicates that it is determined that there is a possibility that the
中央演算装置2は、監視対象プログラム102の実行により別のシステムコールを要求する場合でも、上述した処理を再度実行することにより、システムコールと当該システムコールまでの経路情報とのマッチングを行う。その場合、中央演算装置2は、例えば、次に実行するはずのシステムコール及び当該システムコールに対応する経路情報をマッチング用文法107から読み出してメモリ3等の特定の記憶部に格納し、要求したシステムコールを示す情報及び当該システムコールまでの経路情報を、当該特定の記憶部に格納したシステムコール及び当該システムコールまでの経路情報と比較することにより、マッチングを行ってもよい。
Even when the
上述のように動作することで、侵入検知装置1への不正侵入を検知することが可能となる。図9に、中央演算装置2がOS103を実行することにより取得する、システムコール及び当該システムコールまでの経路情報の一例を示す。図9において、情報901は、図11(a)に一例を示す監視対象プログラム1101が不正プログラムにより攻撃されていない場合に、中央演算装置2が取得する情報の一例である。また、図9の情報902は、図11(a)に一例を示す監視対象プログラム1101が不正プログラムにより攻撃された場合に、中央演算装置2が取得する情報の一例である。なお、この不正プログラムにより攻撃された場合とは、図11(d)に示すような、「gets」の呼び出しで、配列「buf」1103の領域長10バイトを超えた不正なデータが読み込まれ、関数「foo」の戻りアドレスが、攻撃コード1105のアドレスを示すように変更される場合を示す。
By operating as described above, it is possible to detect unauthorized intrusion into the intrusion detection device 1. FIG. 9 shows an example of a system call and route information to the system call acquired by the
中央演算装置2が図9(a)に一例を示す情報901を取得する場合、図6に一例を示すマッチング用文法601のシステムコール及び経路情報と、図9(a)に一例を示す情報901とのシステムコール及び経路情報とは一致する。従って、中央演算装置2は、監視対象プログラム102が不正なプログラムにより攻撃されていないと判定する。
When the
中央演算装置2が図9(b)に一例を示す情報902を取得する場合、図6に一例を示すマッチング用文法601のシステムコール及び経路情報と、図9(b)に一例を示す情報902とのシステムコール及び経路情報とは一致しない。即ち、「exec」というシステムコールまでの経路情報が、図6に一例を示すマッチング用文法601では「main+m1」であるのに対し、図9(b)に一例を示す情報902では「STACK+x0」である。また、「exit」というシステムコールまでの経路情報が、図6に一例を示すマッチング用文法601では「main+m2」であるのに対し、図9(b)に一例を示す情報902では「STACK+x2」である。このようにシステムコールまでの経路情報が異なるので、中央演算装置2は、監視対象プログラム102が不正なプログラムにより攻撃された可能性があると判定する。その場合、中央演算装置2は、侵入警告の出力や、監視対象プログラム102の停止やスローダウンを実行する。
When the
このように、システムコールが、元のプログラムと、不正プログラムにより攻撃された後のプログラムとで一致する場合でも、不正侵入を検知することが可能となる。 In this way, even if the system call matches the original program and the program after being attacked by the unauthorized program, it is possible to detect unauthorized intrusion.
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。 The embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and includes design changes and the like within a scope not departing from the gist of the present invention.
例えば、上述の実施形態では、経路情報は、分岐トレースバッファの機能により取得する分岐アドレスであるものとしたが、これに限られるものではない。経路情報の例として、プログラムを、特定の大きさに区切ったページのページ番号、メモリ領域の種別(コード領域やスタック領域等)などを用いてもよい。 For example, in the above-described embodiment, the path information is a branch address acquired by the function of the branch trace buffer. However, the present invention is not limited to this. As an example of the path information, the program may use the page number of a page divided into a specific size, the type of memory area (code area, stack area, etc.), and the like.
また、経路情報は分岐トレースバッファの機能により取得するものとしたが、これに限られたわけではない。例えば、監視対象プログラムに、分岐の経路情報を取得してメモリ等に格納する機能を備えておき、分岐命令を実行する前に当該機能を実行することにより、経路取得プログラムの機能を実現させてもよい。その場合、経路情報を取得するのはOSの実行に限られるものではなく、例えば、監視プログラムを実行することにより経路情報を取得してもよい。 In addition, the path information is acquired by the function of the branch trace buffer, but the present invention is not limited to this. For example, the monitoring target program has a function of acquiring branch path information and storing it in a memory, etc., and executing the function before executing the branch instruction, thereby realizing the function of the path acquisition program. Also good. In this case, the acquisition of the route information is not limited to the execution of the OS. For example, the route information may be acquired by executing a monitoring program.
また、上述の実施形態では、監視対象プログラムの実行をマッチング用文法と比較して監視するものとしたが、必ずしも文法表現であるものと比較する必要はない。監視対象プログラムが不正プログラムにより攻撃されていない場合のシステムコールと、当該システムコールまでの経路情報とが対応付けられていればよい。例えば、システムコール及び経路情報と、当該システムコールによる制御の遷移状態を示す状態遷移表等を参照して、監視対象プログラムを監視してもよい。 In the above-described embodiment, the execution of the monitoring target program is monitored by comparison with the matching grammar. However, it is not always necessary to compare with the grammar expression. It is only necessary that the system call when the monitoring target program is not attacked by an unauthorized program and the path information to the system call are associated with each other. For example, the monitoring target program may be monitored with reference to a system call and route information, a state transition table indicating a control transition state by the system call, and the like.
1: 侵入検知装置、2:中央演算装置、3:メモリ、4:HDD、5:出力部、6:入力部、7:通信部、101:監視プログラム、102:監視対象プログラム、103:OS、104:経路取得プログラム、105:経路記憶部、106:解析プログラム、107:マッチング用文法、201:分岐に関する情報、301:マッチング用文法、501:基本ブロックノード、502:基本ブロックノード、503:基本ブロックノード、601:マッチング用文法、901:システムコールと当該システムコールまでの経路情報、901:システムコールと当該システムコールまでの経路情報、1001:監視対象プログラム、1002:マッチング用文法、1003:監視プログラム、1101:監視対象プログラム、1102:マッチング用文法、1103:配列「buf」、1104:配列「PC」、1105:攻撃コード 1: intrusion detection device, 2: central processing unit, 3: memory, 4: HDD, 5: output unit, 6: input unit, 7: communication unit, 101: monitoring program, 102: monitoring target program, 103: OS, 104: route acquisition program, 105: route storage unit, 106: analysis program, 107: grammar for matching, 201: information on branching, 301: grammar for matching, 501: basic block node, 502: basic block node, 503: basic Block node, 601: matching grammar, 901: system call and path information to the system call, 901: system call and path information to the system call, 1001: monitoring target program, 1002: matching grammar, 1003: monitoring Program 1101: program to be monitored 1102: map Ching grammar 1103: Array “buf”, 1104: Array “PC”, 1105: Attack code
Claims (7)
前記監視対象プログラムへの不正侵入がない場合のシステムコールと、当該システムコールまでの経路情報とを対応付けて記憶部へ記憶する第1のステップと、
前記監視対象プログラムの実行によりシステムコールを要求する場合、当該システムコールを示す情報と、当該システムコールまでの経路情報とを取得する第2のステップと、
前記要求したシステムコールを示す情報と当該システムコールまでの経路情報とが、前記記憶したシステムコールと当該システムコールに対応する経路情報とに一致するか否か判定する第3のステップと、
前記第3のステップで一致すると判定した場合、前記要求したシステムコールを実行する第4のステップと、
を備えることを特徴とする侵入検知方法。 An intrusion detection method in which a computer detects an unauthorized intrusion into a monitored program,
A first step of storing a system call when there is no unauthorized intrusion into the monitored program and path information to the system call in association with each other in a storage unit;
When requesting a system call by executing the monitoring target program, a second step of acquiring information indicating the system call and route information to the system call;
A third step of determining whether the information indicating the requested system call and the route information to the system call match the stored system call and the route information corresponding to the system call;
A fourth step of executing the requested system call if determined to match in the third step;
An intrusion detection method comprising:
をさらに備えることを特徴とする侵入検知方法。 5. The intrusion detection method according to claim 1, wherein when it is determined that they do not coincide in the third step, an intrusion warning is output to an output unit, execution of the monitoring target program is stopped, and the monitoring target program is slowed down. And a fifth step of executing at least one of them.
前記監視対象プログラムへの不正侵入がない場合のシステムコールと、当該システムコールまでの経路情報とを対応付けて記憶する記憶手段と、
前記監視対象プログラムの実行によりシステムコールを要求する場合、当該システムコールを示す情報と、当該システムコールまでの経路情報とを取得する取得手段と、
前記要求したシステムコールを示す情報と当該システムコールまでの経路情報とが、前記記憶したシステムコールと当該システムコールに対応する経路情報とに一致するか否か判定する判定手段と、
前記判定手段により一致すると判定した場合、前記要求したシステムコールを実行する実行手段と、
を備えることを特徴とする侵入検知装置。 A computer is an intrusion detection device that detects unauthorized intrusion into a monitored program,
Storage means for storing a system call when there is no unauthorized intrusion into the monitored program and path information to the system call in association with each other;
When requesting a system call by executing the monitoring target program, acquisition means for acquiring information indicating the system call and route information to the system call;
Determining means for determining whether the information indicating the requested system call and the route information to the system call match the stored system call and the route information corresponding to the system call;
An execution means for executing the requested system call when the determination means determines that they match,
An intrusion detection device comprising:
コンピュータが、
前記監視対象プログラムへの不正侵入がない場合のシステムコールと、当該システムコールまでの経路情報とを対応付けて記憶部へ記憶する第1のステップと、
前記監視対象プログラムの実行によりシステムコールを要求する場合、当該システムコールを示す情報と、当該システムコールまでの経路情報とを取得する第2のステップと、
前記要求したシステムコールを示す情報と当該システムコールまでの経路情報とが、前記記憶したシステムコールと当該システムコールに対応する経路情報とに一致するか否か判定する第3のステップと、
前記第3のステップで一致すると判定した場合、前記要求したシステムコールを実行する第4のステップと、
をコンピュータに実行させることを特徴とする侵入検知プログラム。 An intrusion detection program that detects unauthorized intrusion into a monitored program,
Computer
A first step of storing a system call when there is no unauthorized intrusion into the monitored program and path information to the system call in association with each other in a storage unit;
When requesting a system call by executing the monitoring target program, a second step of acquiring information indicating the system call and route information to the system call;
A third step of determining whether the information indicating the requested system call and the route information to the system call match the stored system call and the route information corresponding to the system call;
A fourth step of executing the requested system call if determined to match in the third step;
An intrusion detection program that causes a computer to execute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004290053A JP2006106939A (en) | 2004-10-01 | 2004-10-01 | Hacking detection method, hacking detection apparatus, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004290053A JP2006106939A (en) | 2004-10-01 | 2004-10-01 | Hacking detection method, hacking detection apparatus, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006106939A true JP2006106939A (en) | 2006-04-20 |
Family
ID=36376637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004290053A Pending JP2006106939A (en) | 2004-10-01 | 2004-10-01 | Hacking detection method, hacking detection apparatus, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006106939A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9507933B2 (en) | 2012-08-01 | 2016-11-29 | Mitsubishi Electric Corporation | Program execution apparatus and program analysis apparatus |
US10769273B2 (en) | 2017-07-03 | 2020-09-08 | Denso Corporation | Electronic control unit |
WO2021132880A1 (en) * | 2019-12-23 | 2021-07-01 | Samsung Electronics Co., Ltd. | Terminal device and controlling method thereof |
JP2022533715A (en) * | 2019-05-20 | 2022-07-25 | センチネル ラブス イスラエル リミテッド | System and method for executable code detection, automatic feature extraction and position independent code detection |
US11496506B2 (en) | 2017-07-03 | 2022-11-08 | Denso Corporation | Program generation method and electronic control unit for changing importance of functions based on detected operation state in a vehicle |
JP7489495B2 (en) | 2020-08-14 | 2024-05-23 | エヌイーシー ラボラトリーズ アメリカ インク | Mining program-level context information and integrating it into low-level system provenance graphs |
-
2004
- 2004-10-01 JP JP2004290053A patent/JP2006106939A/en active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9507933B2 (en) | 2012-08-01 | 2016-11-29 | Mitsubishi Electric Corporation | Program execution apparatus and program analysis apparatus |
US10769273B2 (en) | 2017-07-03 | 2020-09-08 | Denso Corporation | Electronic control unit |
US11496506B2 (en) | 2017-07-03 | 2022-11-08 | Denso Corporation | Program generation method and electronic control unit for changing importance of functions based on detected operation state in a vehicle |
JP2022533715A (en) * | 2019-05-20 | 2022-07-25 | センチネル ラブス イスラエル リミテッド | System and method for executable code detection, automatic feature extraction and position independent code detection |
JP7278423B2 (en) | 2019-05-20 | 2023-05-19 | センチネル ラブス イスラエル リミテッド | System and method for executable code detection, automatic feature extraction and position independent code detection |
WO2021132880A1 (en) * | 2019-12-23 | 2021-07-01 | Samsung Electronics Co., Ltd. | Terminal device and controlling method thereof |
US11470098B2 (en) | 2019-12-23 | 2022-10-11 | Samsung Electronics Co., Ltd. | Terminal device and controlling method thereof |
JP7489495B2 (en) | 2020-08-14 | 2024-05-23 | エヌイーシー ラボラトリーズ アメリカ インク | Mining program-level context information and integrating it into low-level system provenance graphs |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101051722B1 (en) | Monitor program, monitoring method and computer program product for hardware related thereto | |
US9811663B2 (en) | Generic unpacking of applications for malware detection | |
US7665139B1 (en) | Method and apparatus to detect and prevent malicious changes to tokens | |
JP6791134B2 (en) | Analytical systems, analytical methods, analyzers and computer programs | |
US20150304337A1 (en) | Methods, systems and computer readable media for detecting command injection attacks | |
US20070083933A1 (en) | Detection of security vulnerabilities in computer programs | |
CN107949846A (en) | The detection of malice thread suspension | |
CN107912064B (en) | Shell code detection | |
US9804948B2 (en) | System, method, and computer program product for simulating at least one of a virtual environment and a debugging environment to prevent unwanted code from executing | |
JP6734481B2 (en) | Call stack acquisition device, call stack acquisition method, and call stack acquisition program | |
US20190286820A1 (en) | Apparatus and method for detecting container rootkit | |
CN110659478A (en) | Method for detecting malicious files that prevent analysis in an isolated environment | |
JPWO2016002605A1 (en) | Detection device, detection method, and detection program | |
CN116488872A (en) | Method and device for identifying and defending attack behaviors of Java Web application | |
JP2006106939A (en) | Hacking detection method, hacking detection apparatus, and program | |
WO2020111482A1 (en) | Reverse engineering method and system utilizing big data based on program execution context | |
JP6258189B2 (en) | Specific apparatus, specific method, and specific program | |
KR20170036465A (en) | System and method for detecting malicious code | |
JP2019008503A (en) | Information processing monitoring apparatus, information processing monitoring method, program, recording medium, and information processing apparatus | |
JP5989599B2 (en) | Information processing apparatus and information processing method | |
RU2697951C2 (en) | System and method of terminating functionally restricted application, interconnected with website, launched without installation | |
JP2021111384A (en) | System and method for protecting against unauthorized memory dump modification | |
CN111177726A (en) | System vulnerability detection method, device, equipment and medium | |
CN114547612B (en) | Process query method and device, electronic equipment and storage medium | |
JP6827244B1 (en) | Auditing equipment, auditing methods, auditing programs and auditing systems |