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

JP2006106939A - Hacking detection method, hacking detection apparatus, and program - Google Patents

Hacking detection method, hacking detection apparatus, and program Download PDF

Info

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
Application number
JP2004290053A
Other languages
Japanese (ja)
Inventor
Hiroyasu Nishiyama
博泰 西山
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004290053A priority Critical patent/JP2006106939A/en
Publication of JP2006106939A publication Critical patent/JP2006106939A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a hacking detection method, a hacking detection apparatus and a program for detecting computer hacking by any malicious program. <P>SOLUTION: A program to be monitored is statically analyzed in advance and a system call and information about a route to the system call are stored in association. The program to be monitored is executed, and when the system call is requested, a determination is made as to whether or not the system call and the information about the route to the system call match the previously analyzed system call and the route information matching the system call, respectively. If they do not match, a determination is made that there has been hacking and instructions are provided to inform a system manager about it and to stop or slow down the program to be monitored, etc. <P>COPYRIGHT: (C)2006,JPO&NCIPI

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 monitoring target program 1001. Here, the circled elements indicate the issuance of system calls of the monitoring target program, and the arrows indicate the transition of control between system calls.

図10(b)は、図10(a)に示す監視対象プログラム1001のシステムコール発行シーケンスを示す。ここでは、監視対象プログラムのシステムコール発行シーケンスを文脈自由な文法形式で表したものをマッチング用文法として説明する。図10(b)は、監視対象プログラム1001のマッチング用文法1002の一例である。ここで、「Entry」はプログラムの開始点を示し、「*」は0回以上の繰り返しを示す。   FIG. 10B shows a system call issue sequence of the monitoring target program 1001 shown in FIG. Here, the system call issuance sequence of the monitoring target program expressed in a context-free grammar format will be described as a matching grammar. FIG. 10B is an example of the matching grammar 1002 of the monitoring target program 1001. Here, “Entry” indicates the start point of the program, and “*” indicates zero or more repetitions.

マッチング用文法1002は、「open」システムコールを発行した後に、「read」システムコールを0回以上繰り返し発行し、その後、「close」、「exec」、「exit」の順でシステムコールを発行することを示している。   After issuing the “open” system call, the matching grammar 1002 repeatedly issues the “read” system call zero or more times, and then issues the system calls in the order of “close”, “exec”, and “exit”. It is shown that.

図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 monitoring target program 1001, a matching grammar 1002, a monitoring program 1003, and the like.

予め、監視対象プログラム1001を解析し、マッチング用文法1002を生成しておく。監視対象プログラム1001は、システムコールを発行する場合、当該システムコールを示す情報を監視プログラム1003に送信する。監視プログラム1003は、マッチング用文法1002を参照し、監視対象プログラム1001のシステムコール発行シーケンスが、マッチング用文法1002に示すシステムコール発行シーケンスと一致するか否か判定する。システムコールシーケンスが一致しない場合は、外部からの侵入によってプログラムの制御が奪われた可能性があるので、監視プログラム1003は、監視対象プログラム1001の停止、スローダウン、システム管理者への通知を行う。   The monitoring target program 1001 is analyzed in advance, and a matching grammar 1002 is generated. When issuing the system call, the monitoring target program 1001 transmits information indicating the system call to the monitoring program 1003. The monitoring program 1003 refers to the matching grammar 1002 and determines whether or not the system call issue sequence of the monitoring target program 1001 matches the system call issue sequence shown in the matching grammar 1002. If the system call sequence does not match, there is a possibility that control of the program has been lost due to intrusion from the outside, so the monitoring program 1003 stops, slows down, and notifies the system administrator of the monitored program 1001. .

D.Wagner and D.Dean. Intrusion Detection via Static Analysis,2001 IEEE Symposium on Security and Privacy,IEEE,2001.D. Wagner and D. Dean. Intrusion Detection via Static Analysis, 2001 IEEE Symposium on Security and Privacy, IEEE, 2001.

上述した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 monitoring target program 1101 calls the function “foo” from the function “main”. In the function “foo”, an array “buf” having a size of 10 bytes is declared, and data is read into the array “buf” by the system call “gets”. After calling "gets", return to function "main" with "return" and issue system calls "exec" and "exit".

監視対象プログラム1101の、Wagnerらの方法によるマッチング用文法の一例を、図11(b)のマッチング用文法1102に示す。マッチング用文法1102に示すように、監視対象プログラム1101はシステムコールを「gets」、「exec」、「exit」の順に発行する。   An example of the matching grammar of the monitoring target program 1101 by the method of Wagner et al. Is shown in the matching grammar 1102 of FIG. As shown in the matching grammar 1102, the monitoring target program 1101 issues system calls in the order of “gets”, “exec”, and “exit”.

図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 monitoring target program 1101 is attacked by an unauthorized program, that is, when the monitoring target program 1101 is normally executed. An area corresponding to the array “buf” 1103 is secured in the activation record of the function “foo”. A return address “main + m1” of the function “foo” is stored in “PC” 1104 under the declared array “buf” 1103.

監視対象プログラム1101は次のように動作する。監視対象プログラム1101は、関数「main」から呼び出した関数「foo」の中で「gets」により配列「buf」にデータを読み込んだ後、「return」で「PC」1104を参照し、関数「foo」の戻りアドレス「main+m1」を得て、関数「main」に戻り、システムコール「exec」、「exit」を実行する。   The monitoring target program 1101 operates as follows. The monitoring target program 1101 reads the data into the array “buf” by “gets” in the function “foo” called from the function “main”, and then refers to the “PC” 1104 by “return”. Is returned to the function “main”, and system calls “exec” and “exit” are executed.

図11(d)は、不正プログラムが実行された後に監視対象プログラム1101が実行された場合のスタックフレームの状態の一例を示す。配列「buf」1103に対応する領域は、関数「foo」のアクティベーションレコード中に確保されている。   FIG. 11D shows an example of the state of the stack frame when the monitoring target program 1101 is executed after the unauthorized program is executed. An area corresponding to the array “buf” 1103 is secured in the activation record of the function “foo”.

監視対象プログラム1101は次のように動作する。監視対象プログラム1101は、関数「main」から呼び出した関数「foo」の中で、システムコール「gets」により配列「buf」にデータを読み込む。ここまでは、監視対象プログラム1101が正常に実行された場合と同じである。   The monitoring target program 1101 operates as follows. The monitoring target program 1101 reads data into the array “buf” by the system call “gets” in the function “foo” called from the function “main”. Up to this point, the processing is the same as when the monitoring target program 1101 is normally executed.

不正プログラムによる攻撃を受けたことにより、「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 attack code 1105. Changed as shown. Further, the attack code 1105 is written on the stack by an unauthorized program. If the system call of the unauthorized program that has returned according to the address is “exec”, the unauthorized program is executed.

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 memory 3, an HDD (Hard Disk Drive) 4, an output unit 5, an input unit 6, a communication unit 7, and the like.

侵入検知装置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 monitoring target program 102 and further executes the monitoring program 101 that monitors the monitoring target program 102. The intrusion detection device 1 that executes the monitoring target program 102 is not limited to a device having a specific function. For example, the intrusion detection device 1 is applied to a device that communicates with another device via a communication network, such as a Web server or a network file server. Is preferred.

中央演算装置2は、監視プログラム101、監視対象プログラム102、OS103、経路取得プログラム104をメモリ3にロードして実行するものとする。   The central processing unit 2 loads the monitoring program 101, the monitoring target program 102, the OS 103, and the path acquisition program 104 into the memory 3 and executes them.

監視プログラム101は、監視対象プログラム102を監視するプログラムである。具体的には、監視プログラム101は、監視対象プログラム102の実行により要求するシステムコール及び当該システムコールまでの経路情報と、監視対象プログラム102が不正な侵入を受けていない場合のシステムコール及び当該システムコールに対応する経路情報とが一致するか否かにより、監視対象プログラム102を監視する。本実施形態の侵入検知装置1では、中央演算装置2は、OS103を実行した上で、監視対象プログラム102を実行するものとする。   The monitoring program 101 is a program that monitors the monitoring target program 102. Specifically, the monitoring program 101 includes a system call requested by the execution of the monitoring target program 102 and route information to the system call, a system call when the monitoring target program 102 has not received unauthorized intrusion, and the system. The monitoring target program 102 is monitored depending on whether or not the route information corresponding to the call matches. In the intrusion detection device 1 of this embodiment, the central processing unit 2 executes the monitoring target program 102 after executing the OS 103.

経路取得プログラム104とは、監視対象プログラム102を実行した場合、当該プログラムのシステムコールまでの経路情報を取得するプログラムである。システムコールまでの経路とは、例えば、監視対象プログラム102内の経路、又は、管理対象プログラム103を実行するメモリ3の領域の経路等である。   The route acquisition program 104 is a program that, when the monitoring target program 102 is executed, acquires route information up to the system call of the program. The path to the system call is, for example, a path in the monitoring target program 102 or a path of an area of the memory 3 that executes the management target program 103.

ここでは、システムコールまでの経路とは、監視対象プログラム102内の経路であるものとし、具体的には、監視対象プログラム102の分岐アドレスであるものとする。この分岐アドレスは、例えば、分岐トレースバッファの機能を用いることにより取得できる。分岐トレースバッファとは、一部の中央演算装置に備えられている機能であり、プログラムの実行により発生した分岐に関する情報を、中央演算装置上のレジスタ又はメモリ上の領域に記憶する機能である。   Here, it is assumed that the route to the system call is a route in the monitoring target program 102, specifically, a branch address of the monitoring target program 102. This branch address can be acquired by using the function of the branch trace buffer, for example. The branch trace buffer is a function provided in some central processing units, and is a function for storing information on branches generated by program execution in a register on the central processing unit or an area on a memory.

本実施形態では、経路取得プログラム104に、分岐トレースバッファの機能を用いるのとする。経路取得プログラム104は、取得した経路情報を、分岐トレースバッファの機能により取得した情報を、中央演算装置2上のレジスタに格納するものとする。以下、分岐トレースバッファの機能により取得した情報を格納するレジスタの領域を経路記憶部105として説明する。   In this embodiment, the function of the branch trace buffer is used for the route acquisition program 104. The route acquisition program 104 stores the acquired route information and information acquired by the function of the branch trace buffer in a register on the central processing unit 2. Hereinafter, a register area for storing information acquired by the function of the branch trace buffer will be described as the path storage unit 105.

経路取得プログラム104は、経路記憶部105に、図2に一例を示すような分岐に関する情報201を複数格納する。図2において、分岐に関する情報201には、分岐元アドレス、分岐先アドレス、分岐命令の分岐予測結果が含まれる。この経路記憶部105に格納する分岐に関する情報の個数は、利用者が入力部6を用いて指定することにより変更することができる。中央演算装置2は、OS103の実行等により、経路記憶部105へ格納する分岐に関する情報の個数を、特定のアクセス権を持つ利用者にのみ設定可能とする。   The route acquisition program 104 stores a plurality of pieces of information 201 relating to branching as shown in FIG. In FIG. 2, the branch-related information 201 includes a branch source address, a branch destination address, and a branch prediction result of a branch instruction. The number of pieces of information related to the branch stored in the path storage unit 105 can be changed by the user specifying using the input unit 6. The central processing unit 2 enables the number of pieces of information related to branches stored in the path storage unit 105 to be set only for users having a specific access right by executing the OS 103 or the like.

なお、分岐トレースバッファに関しては、例えば、“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 analysis program 106 is a program for statically analyzing the monitoring target program 102 and acquiring the system call of the program and the route information to the system call. The central processing unit 2 executes the analysis program 106, acquires the system call of the monitoring target program 102 and the route information to the system call, and associates the acquired system call with the route information to the system call. Stored in the memory 3. Here, the central processing unit 2 stores information indicating a system call and route information up to the system call in an arbitrary grammar expression in the memory 3, and hereinafter referred to as a matching grammar. explain.

システムコールまでの経路情報が分岐アドレスである場合のマッチング用文法の例を、図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 grammar 301 is an example generated from the monitoring target program 1001 of FIG. 10A by the central processing unit 2 executing the analysis program 106.

マッチング用文法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 grammar 301 indicates that a system call “read” passes through branch addresses in the order “0x2000” and “0x2001”. In addition, “open.trace in {{0x1000,0x1002}, {0x1010,0x1002}}” means that the system call “open” branches either “{0x1000,0x1002}” or “{0x1010,0x1002}” Indicates that the address is routed.

図1において、メモリ3は、マッチング用文法107を記憶する。   In FIG. 1, the memory 3 stores a matching grammar 107.

出力部5は、例えば、ディスプレイ、スピーカ、プリンタ等の出力装置と、当該出力装置のドライバ等の制御部を備えるものである。   The output unit 5 includes, for example, an output device such as a display, a speaker, and a printer, and a control unit such as a driver of the output device.

入力部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 communication unit 7 includes, for example, a communication interface such as a LAN (Local Area Network) port and a control unit for the interface. The intrusion detection device 1 may be connected to the Internet or other devices (all not shown) via a LAN or the like.

なお、上述の実施形態において、図1を例とする侵入検出装置1の中央演算装置2内の各部及びマッチング用文法を、同一装置の中央演算装置及びメモリが備えるものとしたが、これに限られるわけではなく、各部の一部を他の装置の中央演算装置及びメモリが備えてもよい。例えば、第1の装置の中央演算装置は、監視対象プログラム102、経路取得プログラム104、経路記憶部105を備え、第1の装置と通信ネットワークを介して接続される第2の装置の中央演算装置は、解析プログラム106及び監視プログラム101、第2の装置のメモリがマッチング用文法107を備えてもよい。   In the above-described embodiment, the respective units in the central processing unit 2 of the intrusion detection device 1 and the matching grammar shown in FIG. 1 are provided in the central processing unit and the memory of the same device. However, the central processing unit and the memory of another device may include a part of each unit. For example, the central processing unit of the first device includes the monitoring target program 102, the route acquisition program 104, and the route storage unit 105, and is connected to the first device via a communication network. The analysis program 106, the monitoring program 101, and the memory of the second device may include the matching grammar 107.

次に、侵入検知装置1の動作を説明する。侵入検知装置1の中央演算装置2は、予め、解析プログラム106を実行して、マッチング用文法107を生成しておく。   Next, the operation of the intrusion detection device 1 will be described. The central processing unit 2 of the intrusion detection device 1 executes the analysis program 106 in advance to generate the matching grammar 107.

なお、解析プログラム106の実行は、システム管理者の実行要求によるものや監視対象プログラム102の侵入検知装置1へのインストール時など、監視対象プログラム102が不正プログラムにより攻撃される前であればよく、特に限定するものではない。   Note that the analysis program 106 may be executed before the monitoring target program 102 is attacked by an unauthorized program, such as when requested by a system administrator or when the monitoring target program 102 is installed in the intrusion detection apparatus 1. There is no particular limitation.

マッチング用文法107を生成する動作を、図4を参照して説明する。なお、図4を参照して説明する動作は、中央演算装置2が解析プログラム106をメモリ3にロードして実行することにより実現する動作である。   The operation of generating the matching grammar 107 will be described with reference to FIG. The operation described with reference to FIG. 4 is realized by the central processing unit 2 loading the analysis program 106 into the memory 3 and executing it.

中央演算装置2は、解析プログラム106を実行して、監視対象プログラム102を読み込み、制御フローグラフ(CFG:control flow graph)を作成する。   The central processing unit 2 executes the analysis program 106, reads the monitoring target program 102, and creates a control flow graph (CFG).

制御フローグラフは、プログラムの制御構造をグラフで表現したものであり、判定も分岐もせず順次実行する命令文の列から構成される基本ブロックノードと、基本ブロックノード間の制御の推移関係を示すエッジ等から構成される。制御フローグラフを生成する技術は、コンパイラ等に用いられ公知であるが、例えば、中央演算装置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 central processing unit 2 divides a character string describing the monitoring target program 102 into units having meaning as a program language, and A control flow graph is generated by analyzing the structure of the divided character string according to the grammar of the programming language in which the monitoring target program 102 is described.

なお、制御フローグラフの生成に関しては、例えば、“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 monitoring target program 1101 shown in FIG. 11A is shown in FIG. In FIG. 5, the control flow graph includes basic block nodes 501 to 503. The basic block node 501 includes a statement “foo ()” in the function “main”. The basic block node 502 includes statements “gets ()” and “return” in the function “foo”. The basic block node 503 includes command statements “exec” and “exit”.

中央演算装置2は、生成した制御フローグラフを変数Gに格納する。さらに、変数Gに格納した制御フローグラフを構成する基本ブロックノード集合を変数Nに格納する(図4におけるステップ401)。例えば、図5に一例を示す制御フローグラフを用いて説明すると、中央演算装置2は、変数Gに、図5に示す制御フローグラフを格納し、変数Nには、図5に示す制御フローグラフの基本ブロックノード集合、即ち、基本ブロックノード501、基本ブロックノード502、基本ブロックノード503を格納する。   The central processing unit 2 stores the generated control flow graph in the variable G. Further, the basic block node set constituting the control flow graph stored in the variable G is stored in the variable N (step 401 in FIG. 4). For example, a control flow graph shown in FIG. 5 will be described. The central processing unit 2 stores the control flow graph shown in FIG. 5 in the variable G, and the control flow graph shown in FIG. The basic block node set, that is, the basic block node 501, the basic block node 502, and the basic block node 503 are stored.

次に、中央演算装置2は、基本ブロックノード集合Nが空集合(N=Φ)であるか否か判定する(図4におけるステップ402)。   Next, the central processing unit 2 determines whether or not the basic block node set N is an empty set (N = Φ) (step 402 in FIG. 4).

基本ブロックノード集合Nが空集合である(N=Φ)場合、中央演算装置2は、後述する処理で取得するシステムコールと、当該システムコールまでの経路情報とからマッチング用文法107を生成する(図4におけるS408)。   When the basic block node set N is an empty set (N = Φ), the central processing unit 2 generates a matching grammar 107 from a system call acquired by processing to be described later and route information to the system call ( S408 in FIG.

基本ブロックノード集合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 central processing unit 2 extracts one basic block node from the basic block node set N and stores it in the variable n. Further, the branch set reaching the basic block node n is stored in the variable T. Further, the subset in the basic block node n is stored in the variable S (step 403 in FIG. 4).

例えば、図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 basic block nodes 501 to 503 are stored in the basic block node set N, the central processing unit 2 is N ≠ Φ. The basic block node 501 is extracted from the block node set N and is set to n. As a result, the basic block node set N becomes the basic block nodes 502 and 503. Since there is no branch set reaching n (basic block node 501), branch set T = Φ (empty set). Since the imperative sentence in n is “foo ()”, this is a sentence set S.

次に、中央演算装置2は、基本ブロックノードn中の文集合Sが空集合(S=Φ)であるか否か判定する(図4におけるステップ404)。   Next, the central processing unit 2 determines whether or not the sentence set S in the basic block node n is an empty set (S = Φ) (step 404 in FIG. 4).

基本ブロックノードn中の文集合Sが空集合である(S=Φ)場合、中央演算装置2は、ステップ402の処理を再度実行する。   When the sentence set S in the basic block node n is an empty set (S = Φ), the central processing unit 2 executes the process of step 402 again.

基本ブロックノード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 central processing unit 2 extracts one sentence from the sentence set S in the basic block node and stores it in the variable s (in FIG. 4). Step 405).

例えば、図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 basic block node 501, the central processing unit 2 has S ≠ Φ. ) ”Is taken out to be a sentence s. The sentence set S becomes an empty set by extracting “foo ()”.

次に、中央演算装置2は、文sがシステムコールを実行する文であるか否か判定する(図4におけるステップ406)。   Next, the central processing unit 2 determines whether or not the sentence s is a sentence that executes a system call (step 406 in FIG. 4).

文sがシステムコールを実行する文でない場合、中央演算装置2は、ステップ404の処理を再度実行する。   If the sentence s is not a sentence for executing a system call, the central processing unit 2 executes the process of step 404 again.

文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 central processing unit 2 sets “T + {s}” as a branch set that reaches the sentence s (step 407 in FIG. 4), and stores the information in the memory 3. After storing in a specific storage unit, the process of step 404 is executed again. Note that “T” of the branch set “T + {s}” that reaches the sentence s is a branch set up to the basic block node n, and “{s}” is a branch of the sentence s that is a system call. It is. That is, the branch set “T + {s}” obtained here is the path information to the system call of the sentence s.

例えば、図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 central processing unit 2 determines that it is not a sentence that executes a system call. Run the process again.

以下、図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 central processing unit 2 executes the process of step 404 again. Since the sentence set S is an empty set (S = Φ) by extracting “foo ()”, the central processing unit 2 executes the process of step 402 again. That is, since the basic block node set N is N ≠ Φ, the basic block node 502 is extracted from the basic block node set N and stored in the basic block node n. As a result, the basic block node set N is only the basic block node 503. Since the branch set that reaches the basic block node n (basic block node 502) is “main + m0”, the central processing unit 2 sets this as the branch set T. Furthermore, since the command statements in n are “gets ()” and “return”, they are set as a statement set S (step 403 in FIG. 4).

次に、中央演算装置2は、基本ブロックノード中の文集合Sが空集合(S=Φ)であるか否か判定する(図4におけるステップ404)。この例では、文集合Sは空集合でない(S≠Φ)ので、文集合Sから命令文「gets()」を取り出して文sとする。文集合Sには、命令文「gets()」を取り出したことにより命令文「return」が残る。   Next, the central processing unit 2 determines whether or not the sentence set S in the basic block node is an empty set (S = Φ) (step 404 in FIG. 4). In this example, since the sentence set S is not an empty set (S ≠ Φ), the command sentence “gets ()” is extracted from the sentence set S and is set as a sentence s. In the sentence set S, the instruction sentence “return” remains by taking out the instruction sentence “gets ()”.

次に、中央演算装置2は、文sがシステムコールを実行する文であるか否か判定する(図4におけるステップ406)。この例では、文s(gets())はシステムコールを実行する文であるので、文sに到達する分岐集合を「T+{s}」、即ち「main+m0,foo+n0」とする(図4におけるステップ407)。中央演算装置2は、経路情報である分岐集合をメモリ3内の特定の記憶部に格納等した後、ステップ404の処理を再度実行する。   Next, the central processing unit 2 determines whether or not the sentence s is a sentence that executes a system call (step 406 in FIG. 4). In this example, since the statement s (gets ()) is a statement that executes a system call, the branch set that reaches the statement s is “T + {s}”, that is, “main + m0, foo + n0”. (Step 407 in FIG. 4). The central processing unit 2 stores the branch set as the path information in a specific storage unit in the memory 3 and then executes the process of step 404 again.

中央演算装置2は、上述した処理を繰り返し、監視対象プログラム102のすべてのシステムコールの経路情報を取得する。ステップ402の処理にて基本ブロックノード集合Nが空集合である(N=Φ)場合、即ち、全てのシステムコールに関し経路情報を取得した場合、中央演算装置2は、上記した処理により取得したシステムコールと、当該システムコールまでの経路情報とからマッチング用文法107を生成する(図4におけるS408)。具体的には、例えば、中央演算装置2は、制御フローグラフGの基本ブロックノードからシステムコールを順次抽出し、予め定めておいた書式に従う等して文法表現に変換する。さらに、中央演算装置2は、各システムコールまでの経路情報(分岐集合「T+{s}」)を特定の記憶部から読み出して順次追加し、マッチング用文法107を生成する。   The central processing unit 2 repeats the above-described processing, and acquires route information of all system calls of the monitoring target program 102. When the basic block node set N is an empty set (N = Φ) in the process of step 402, that is, when route information is acquired for all system calls, the central processing unit 2 acquires the system acquired by the above process. The matching grammar 107 is generated from the call and the route information to the system call (S408 in FIG. 4). Specifically, for example, the central processing unit 2 sequentially extracts system calls from the basic block nodes of the control flow graph G and converts them into grammatical expressions according to a predetermined format. Further, the central processing unit 2 reads out the route information (branch set “T + {s}”) up to each system call from the specific storage unit and sequentially adds it to generate the matching grammar 107.

図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 monitoring target program 1101 shown in FIG. 11A when the central processing unit 2 executes the analysis program 106. In FIG. 6, a matching grammar 601 indicates that a system call “gets” is executed via branch addresses in the order of “main + m0” and “foo + n0”. This shows that the system call “exec” is executed via the branch address “main + m1”. This shows that the system call “exit” is executed via the branch address “main + m2”.

監視対象プログラム102を監視する動作を図7及び図8を参照して説明する。図7では監視プログラム101の動作を、図8では経路取得プログラム104を拡張モジュールとして実現するOS103の動作を説明する。なお、図7を参照して説明する動作は、中央演算装置2が監視プログラム101をメモリ3にロードして実行することにより実現される動作である。また、図8を参照して説明する動作は、中央演算装置2が、経路取得プログラム104を拡張モジュールとするOS103をメモリ3にロードして実行することにより実現する動作である。   The operation of monitoring the monitoring target program 102 will be described with reference to FIGS. FIG. 7 illustrates the operation of the monitoring program 101, and FIG. 8 illustrates the operation of the OS 103 that implements the route acquisition program 104 as an extension module. The operation described with reference to FIG. 7 is an operation realized by the central processing unit 2 loading the monitoring program 101 into the memory 3 and executing it. The operation described with reference to FIG. 8 is an operation realized by the central processing unit 2 loading and executing the OS 103 having the path acquisition program 104 as an extension module in the memory 3 and executing it.

ここでは、中央演算装置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 monitoring target program 102 by the OS 103 and the route acquisition program 104, the central processing unit 2 branches the branch. It is assumed that the information regarding the path storage unit 105 is stored.

監視プログラム101の実行により、中央演算装置2は、マッチング用文法107をメモリ3から読み込んで、変数Gに格納する(図7における701)。この状態で、システムコールを示す情報と、当該システムコールまでの経路情報とを取得するまで待機する。監視プログラム101の実行開始は、入力部6を用いて利用者等が指示してもよく、また、タイマによる実行開始時間の設定や、侵入検知装置1の起動又はOS103の起動と同時に実行されるようにしてもよい。   By executing the monitoring program 101, the central processing unit 2 reads the matching grammar 107 from the memory 3 and stores it in the variable G (701 in FIG. 7). In this state, the system waits until information indicating a system call and route information to the system call are acquired. The start of execution of the monitoring program 101 may be instructed by a user or the like using the input unit 6, and is executed simultaneously with setting of an execution start time by a timer, starting of the intrusion detection apparatus 1 or starting of the OS 103. You may do it.

利用者の実行要求又はタイマによる開始時間の設定等により、中央演算装置2は、監視対象プログラム102を実行する。   The central processing unit 2 executes the monitoring target program 102 in response to a user execution request or a start time setting by a timer.

監視対象プログラム102によりシステムコールを要求すると、中央演算装置2は、図8に一例を示す動作を、OS103を実行することで実現する。まず、中央演算装置2は、監視対象プログラム102がトレース中であるか否か判定する(図8におけるステップ801)。   When a system call is requested by the monitoring target program 102, the central processing unit 2 realizes the operation shown in FIG. 8 by executing the OS 103. First, the central processing unit 2 determines whether or not the monitoring target program 102 is being traced (step 801 in FIG. 8).

この判定のために、例えば、中央演算装置2は、監視対象プログラム102を実行した場合、OS103の実行により、監視対象プログラム102を実行したことを通知するフラグを立てる等する。中央演算装置2は、このフラグを確認する等して、監視対象プログラム102がトレース中であるか否か判定する。   For this determination, for example, when the monitoring target program 102 is executed, the central processing unit 2 sets a flag for notifying that the monitoring target program 102 has been executed by executing the OS 103. The central processing unit 2 determines whether or not the monitoring target program 102 is being traced by confirming this flag or the like.

監視対象プログラム102がトレース中でない場合、中央演算装置2は、OS103を実行することにより、要求したシステムコールを実行する(図8におけるステップ804)。   When the monitoring target program 102 is not being traced, the central processing unit 2 executes the requested system call by executing the OS 103 (step 804 in FIG. 8).

監視対象プログラム102がトレース中である場合、中央演算装置2は、OS103の実行により、経路記憶部105から、要求したシステムコールまでの経路情報を読み出し、要求したシステムコールを示す情報を変数Sに、読み出した経路情報を変数Tに格納する(図8におけるステップ802)。ここでは、中央演算装置2は、経路記憶部105内に格納している複数の分岐に関する情報から、要求したシステムコールまでの分岐アドレスを読み出し、当該情報を経路情報として変数Tに格納する。   When the monitoring target program 102 is being traced, the central processing unit 2 reads the path information to the requested system call from the path storage unit 105 by executing the OS 103, and stores the information indicating the requested system call in the variable S. The read path information is stored in the variable T (step 802 in FIG. 8). Here, the central processing unit 2 reads the branch address to the requested system call from the information regarding the plurality of branches stored in the path storage unit 105, and stores the information in the variable T as the path information.

このようにシステムコールを示す情報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 central processing unit 2 executes the monitoring program 101 to set the information indicating the system call to the variable S and the route information to the system call to the variable BH. (Step 702 in FIG. 7). Here, information indicating the branch address to the system call described above is stored in the BH as route information.

次に、中央演算装置2は、システムコールを示す情報Sが「S=exit」であるか否か判定する(図7におけるステップ703)。   Next, the central processing unit 2 determines whether or not the information S indicating the system call is “S = exit” (step 703 in FIG. 7).

「S=exit」である場合、監視対象プログラム102は終了するので、中央演算装置2は、監視プログラム101の処理を終了する。   When “S = exit”, the monitoring target program 102 ends, and thus the central processing unit 2 ends the processing of the monitoring program 101.

「S=exit」でない場合、中央演算装置2は、変数Gに格納したマッチング用文法Gを参照し、システムコールを示す情報Sと、マッチング用文法Gのシステムコールとが一致するか否か判定する(図7におけるステップ704)。   If it is not “S = exit”, the central processing unit 2 refers to the matching grammar G stored in the variable G, and determines whether or not the information S indicating the system call matches the system call of the matching grammar G. (Step 704 in FIG. 7).

システムコールを示す情報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 central processing unit 2 determines that the monitored program 102 may have been deprived of control by an unauthorized program, and an intrusion warning Or the monitoring target program 102 is stopped or slowed down (step 707 in FIG. 7). The intrusion warning output includes, for example, an intrusion warning display on a display, a warning sound output to a speaker, an output to a printer, and a communication device (illustrated) such as a PC (Personal Computer) or a mobile phone connected by a communication network. E-mail or voice notification to the abbreviation). The central processing unit 2 may execute all or part of the output of the intrusion warning, the suspension of the monitoring target program 102, and the slowdown of the monitoring target program 102.

システムコールを示す情報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 central processing unit 2 determines whether or not the route information BH matches the route information of the matching grammar G (FIG. 7). Step 705). Here, the central processing unit 2 determines whether the path information BH, which is a branch address to the information S indicating the system call, matches the branch address corresponding to the system call of the matching grammar G determined in step 704. To determine.

経路情報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 central processing unit 2 determines that there is a possibility that the monitoring target program 102 has been deprived of control by an unauthorized program, and outputs an intrusion warning. Alternatively, the monitoring target program 102 is stopped or slowed down (step 707 in FIG. 7).

経路情報BHとマッチング用文法Gの経路情報とが一致する場合、中央演算装置2は、監視対象プログラム102が不正な侵入を受けていないと判定し、監視対象プログラム102の実行再開要求を行う(図7におけるステップ706)。そのために、中央演算装置2は、例えば、上述の判定結果を示すフラグを立てる等する。   When the path information BH and the path information of the matching grammar G match, the central processing unit 2 determines that the monitoring target program 102 has not received unauthorized intrusion, and issues a request to resume execution of the monitoring target program 102 ( Step 706 in FIG. For this purpose, the central processing unit 2 sets, for example, a flag indicating the above-described determination result.

OS103の実行により、中央演算装置2は、要求したシステムコール及び当該システムコールまでの経路情報が、マッチング用文法のシステムコール及び当該システムコールの経路情報と一致するか否かの判定結果により、システムコールが実行可能か否か判定する(図8におけるステップ803)。判定結果は、例えば、監視プログラム101の実行により立てられた判定結果を示すフラグ、又は、侵入警告の出力を実行するためのフラグや信号等の有無、又は、監視対象プログラム102の停止やスローダウン等を実行するためのフラグや信号の有無等を確認することにより取得することができる。   By executing the OS 103, the central processing unit 2 determines whether the requested system call and the route information to the system call match the system call of the matching grammar and the route information of the system call based on the determination result. It is determined whether or not the call can be executed (step 803 in FIG. 8). The determination result is, for example, a flag indicating a determination result established by the execution of the monitoring program 101, a flag or a signal for executing an intrusion warning output, or the stop or slowdown of the monitoring target program 102 It can be obtained by checking the presence or absence of a flag or signal for executing the above.

判定結果が、監視対象プログラム102が不正な侵入を受けていないと判定したことを示すものである場合、中央演算装置2は、要求したシステムコールを実行する(図8におけるステップ804)。   If the determination result indicates that the monitoring target program 102 has determined that it has not received unauthorized intrusion, the central processing unit 2 executes the requested system call (step 804 in FIG. 8).

判定結果が、不正なプログラムにより監視対象プログラム102の制御が奪われた可能性があると判定されたことを示すものである場合、中央演算装置2は、図8に一例を示すOS103の実行を終了する。   When the determination result indicates that it is determined that there is a possibility that the monitoring target program 102 has been deprived of control by an unauthorized program, the central processing unit 2 executes the OS 103 shown in FIG. 8 as an example. finish.

中央演算装置2は、監視対象プログラム102の実行により別のシステムコールを要求する場合でも、上述した処理を再度実行することにより、システムコールと当該システムコールまでの経路情報とのマッチングを行う。その場合、中央演算装置2は、例えば、次に実行するはずのシステムコール及び当該システムコールに対応する経路情報をマッチング用文法107から読み出してメモリ3等の特定の記憶部に格納し、要求したシステムコールを示す情報及び当該システムコールまでの経路情報を、当該特定の記憶部に格納したシステムコール及び当該システムコールまでの経路情報と比較することにより、マッチングを行ってもよい。   Even when the central processing unit 2 requests another system call by executing the monitoring target program 102, the central processing unit 2 performs the above-described processing again to match the system call with the route information to the system call. In that case, for example, the central processing unit 2 reads out the system call that should be executed next and the path information corresponding to the system call from the matching grammar 107, stores them in a specific storage unit such as the memory 3, and requests it. The matching may be performed by comparing the information indicating the system call and the route information to the system call with the system call stored in the specific storage unit and the route information to the system call.

上述のように動作することで、侵入検知装置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 central processing unit 2 executing the OS 103. 9, information 901 is an example of information acquired by the central processing unit 2 when the monitoring target program 1101 shown in FIG. 11A is not attacked by an unauthorized program. 9 is an example of information acquired by the central processing unit 2 when the monitoring target program 1101 shown in FIG. 11A is attacked by an unauthorized program. When attacked by this malicious program, as shown in FIG. 11D, by calling “gets”, illegal data exceeding the 10-byte area length of the array “buf” 1103 is read. The case where the return address of the function “foo” is changed to indicate the address of the attack code 1105 is shown.

中央演算装置2が図9(a)に一例を示す情報901を取得する場合、図6に一例を示すマッチング用文法601のシステムコール及び経路情報と、図9(a)に一例を示す情報901とのシステムコール及び経路情報とは一致する。従って、中央演算装置2は、監視対象プログラム102が不正なプログラムにより攻撃されていないと判定する。   When the central processing unit 2 acquires the information 901 shown as an example in FIG. 9A, the system call and route information of the matching grammar 601 shown as an example in FIG. 6 and the information 901 shown as an example in FIG. 9A. And the system call and route information match. Therefore, the central processing unit 2 determines that the monitoring target program 102 is not attacked by an unauthorized program.

中央演算装置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 central processing unit 2 acquires the information 902 shown in FIG. 9B as an example, the system call and route information of the matching grammar 601 shown in FIG. 6 and the information 902 shown in FIG. 9B as an example. Does not match the system call and route information. That is, the path information to the system call “exec” is “main + m1” in the matching grammar 601 shown in FIG. 6 as an example, whereas “STACK” is shown in the information 902 as an example in FIG. 9B. + x0 ”. Also, the route information to the system call “exit” is “main + m2” in the matching grammar 601 shown in FIG. 6 as an example, whereas “STACK” is shown in the information 902 shown in FIG. 9B as an example. + x2 ”. Thus, since the route information to the system call is different, the central processing unit 2 determines that the monitoring target program 102 may be attacked by an unauthorized program. In that case, the central processing unit 2 outputs an intrusion warning and stops or slows down the monitoring target program 102.

このように、システムコールが、元のプログラムと、不正プログラムにより攻撃された後のプログラムとで一致する場合でも、不正侵入を検知することが可能となる。   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.

本実施形態の侵入検知装置の構成の一例を示す図である。It is a figure which shows an example of a structure of the intrusion detection apparatus of this embodiment. 同実施形態において、分岐に関する情報の例を示す図である。It is a figure which shows the example of the information regarding a branch in the same embodiment. 同実施形態において、マッチング用文法の一例を示す図である。In the embodiment, it is a figure which shows an example of the grammar for matching. 同実施形態において、マッチング用文法を生成する動作例を説明する図である。FIG. 10 is a diagram for explaining an operation example for generating a matching grammar in the embodiment. 同実施形態において、制御フローグラフの一例を説明する図である。In the embodiment, it is a figure explaining an example of a control flow graph. 同実施形態において、マッチング用文法の一例を示す図である。In the embodiment, it is a figure which shows an example of the grammar for matching. 同実施形態において、監視プログラムの動作例を説明する図である。FIG. 6 is a diagram for explaining an operation example of a monitoring program in the embodiment. 同実施形態において、OSの動作例を説明する図である。FIG. 6 is a diagram for explaining an operation example of an OS in the embodiment. 同実施形態において、監視対象プログラムが実行された場合のシステムコールと、当該システムコールの経路情報との例である。In the embodiment, it is an example of a system call when a monitoring target program is executed and route information of the system call. 従来の侵入検知の方法を説明する図である。It is a figure explaining the method of the conventional intrusion detection. 従来の侵入検知方法において、不正侵入を検知できない例を説明する図である。It is a figure explaining the example which cannot detect an unauthorized intrusion in the conventional intrusion detection method.

符号の説明Explanation of symbols

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:
請求項1記載の侵入検知方法において、システムコールまでの経路情報とは、監視対象プログラム内の経路、又は、監視対象プログラムを実行するコンピュータのメモリ領域の経路であることを特徴とする侵入検知方法。   2. The intrusion detection method according to claim 1, wherein 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 executing the monitoring target program. . 請求項1記載の侵入検知方法において、システムコールまでの経路情報とは、分岐アドレスであることを特徴とする侵入検知方法。   The intrusion detection method according to claim 1, wherein the route information to the system call is a branch address. 請求項3記載の侵入検知方法において、分岐アドレスは、分岐トレースバッファの機能により取得することを特徴とする侵入検知方法。   4. The intrusion detection method according to claim 3, wherein the branch address is acquired by a function of the branch trace buffer. 請求項1乃至4記載の侵入検知方法において、前記第3のステップで一致しないと判定した場合、出力手段への侵入警告の出力、前記監視対象プログラムの実行停止、前記監視対象プログラムのスローダウンのうち少なくとも一つを実行する第5のステップと
をさらに備えることを特徴とする侵入検知方法。
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.
JP2004290053A 2004-10-01 2004-10-01 Hacking detection method, hacking detection apparatus, and program Pending JP2006106939A (en)

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)

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

Cited By (8)

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