JP2006330864A - Server computer system control method - Google Patents
Server computer system control method Download PDFInfo
- Publication number
- JP2006330864A JP2006330864A JP2005150327A JP2005150327A JP2006330864A JP 2006330864 A JP2006330864 A JP 2006330864A JP 2005150327 A JP2005150327 A JP 2005150327A JP 2005150327 A JP2005150327 A JP 2005150327A JP 2006330864 A JP2006330864 A JP 2006330864A
- Authority
- JP
- Japan
- Prior art keywords
- system call
- server computer
- application program
- control method
- call
- 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.)
- Withdrawn
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】複数のシステムコールの組(許容集合)を、複数回、用いて検出・判断するので、不正プログラムの誤検出を増やすことなく、その見逃しを低減した、より高精度の監視を実現することができる。
【解決手段】監視対象であるAPを、サーバ計算機システムにおける処理フェーズ、経過時間その他経時的要素に分割し、処理フェーズ毎(時間セグメント毎)に、許容集合を作成する手段を設ける。こうして各許容集合を小さくしておく。 監視対象プログラムの処理フェーズが変動することに合わせて、各フェーズ毎に用意された許容集合を用いて、OSが、システムコールの列の実行を監視する。つまり、複数の許容集合を取り替えながら、監視対象のAPの実行を監視する。より具体的には、監視対象プログラムに起因する特定のシステムコールによって、監視対象のAPの処理フェーズが変動して行くことを、OSに通知する(同期をとる)。
【選択図】 図14[PROBLEMS] To detect and judge a plurality of sets of system calls (allowable set) a plurality of times, thereby realizing more accurate monitoring with reduced missed detection without increasing false detection of malicious programs. be able to.
Means for dividing an AP to be monitored into processing phases, elapsed time, and other time-dependent elements in a server computer system, and creating a permissible set for each processing phase (for each time segment). In this way, each allowed set is kept small. As the processing phase of the monitoring target program changes, the OS monitors the execution of the system call sequence by using an allowable set prepared for each phase. That is, the execution of the monitoring target AP is monitored while replacing a plurality of allowed sets. More specifically, the OS is notified (synchronized) that the processing phase of the monitoring target AP is changed by a specific system call caused by the monitoring target program.
[Selection] FIG.
Description
本発明は、サーバ計算機システムに侵入した又はウイルス感染による、不正なプログラムを検出する技術に係り、特に、プログラムの動作を監視して、不正プログラム、ウイルス感染して発症したプログラムその他不具合のあるプログラムを検出する技術に関する。 The present invention relates to a technology for detecting an unauthorized program that has entered a server computer system or caused by a virus infection, and in particular, monitors the operation of the program to detect an unauthorized program, a program that develops due to a virus infection, and other programs with defects. It is related with the technology to detect.
インターネットに接続されたサーバ計算機システムにおいては、動作中のアプリケーションプログラムは、インターネットを介した様々なアクセスに曝されている。これらのアクセスには、本来のサービスを要求するものだけでなく、アプリケーションプログラムの無防備な箇所から侵入し、サーバ計算機システムに有る、任意のプログラムを制御し動作させようとする、不正目的のアクセスもある。
かかる不正なアクセスには、1)攻撃プログラムが実行形式のモジュールをアプリケーションプログラムに侵入させ、このモジュールプログラムがサーバ計算機システムにおいて不正を働くもの、2)電子メール等に添付された不正プログラムのファイルを実行することで、サーバ計算機システムにおいて、不正プログラムが不正動作を起こすもの等がある。
In a server computer system connected to the Internet, a running application program is exposed to various accesses via the Internet. These accesses include not only those that request the original service, but also unauthorized access that attempts to control and operate arbitrary programs in the server computer system by entering from an unprotected part of the application program. is there.
For such unauthorized access, 1) an attack program intrudes an execution format module into an application program, and this module program acts illegally in the server computer system. 2) An unauthorized program file attached to an e-mail, etc. When executed, there is a server computer system in which an unauthorized program causes an unauthorized operation.
不正なアクセスが成功すると、侵入を受けたサーバ計算機システムでは、本来のアプリケーションとは異なるプログラム(不正プログラム)が実行されることになる。
不正プログラムの実行によって生ずる、プログラムの振舞いの違いを検出する技術として非特許文献1がある。このような検出システムの課題は、検出・判断の誤りが生じやすいことである。つまり、実際には正常動作であるにもかかわらず、異常と判断してしまう誤検出、逆に、実際には異常な動作であるにも関わらず、正常と判断し不正を検出できないという見逃しが頻出する。
特許文献1では、複数のシステムコールの実行状況を統計的に監視することが行われている。例えば、一万回を越えるような、多数のシステムコールの内容を統計処理して正常時と異なる指標が算出されたとき、異常発生と判断している。このような手法では、指標に異常を認める閾値の設定が難しい。僅かな差異を検出できるよう閾値を厳しく設定すると、誤検出の確率が高まる。多少の誤差を許容するよう閾値を緩やかに設定すれば、不正アクセスを見逃す恐れが高まる。
If unauthorized access is successful, the server computer system that has received the intrusion executes a program (unauthorized program) different from the original application.
In
判断の安全のため、ある程度の誤検出を容認し、見逃しを低減するという運用も想定される。しかし、何の不正もないのに本来の処理を実行できないのでは、一般ユーザの納得は得られない。特に、オペレーティングシステム(OS)のようなプラットフォームプログラムにおいては、「使用可能なこと(ユーザビリティ)」は、必要不可欠な条件と考えられる。
OSから見たときのアプリケーションの振舞いは、OSに対するサービス要求、つまりシステムコールの列として観測される。
いわゆるアクセス制御は、サービス要求の内容(システムコールの列)と、あらかじめ与えられたアクセス制限情報に基づいて、個々のサービス要求の実行可否を判断するものである。この制御方法では、あらかじめ実行が禁じられているシステムコールを実行しようとすれば、これを不正な侵入として検出できる。
For the sake of safety of judgment, an operation that allows a certain amount of false detection and reduces oversight is also assumed. However, if the original process cannot be executed without any injustice, the general user cannot be satisfied. In particular, in a platform program such as an operating system (OS), “usability (usability)” is considered an indispensable condition.
The behavior of the application when viewed from the OS is observed as a service request to the OS, that is, a sequence of system calls.
The so-called access control is for determining whether or not each service request can be executed based on the contents of the service request (sequence of system calls) and access restriction information given in advance. In this control method, if an attempt is made to execute a system call that is prohibited in advance, this can be detected as an unauthorized intrusion.
誤検出の低減につき非特許文献2が、1つの解決方法を示している。ここに示される、より厳密な振舞い監視技術では、監視対象のプログラムが連続的に実行する数個のシステムコールの列を監視対象とする。
その監視対象プログラムが、特定のシステムコールの列を発生させないことから、特定のシステムコールの列の出現は、異常であると判断する。逆に、出現する予定のシステムコールの列ならば、その実行を許す。
Non-Patent Document 2 shows one solution for reducing false detection. In the stricter behavior monitoring technique shown here, the monitoring target is a sequence of several system calls that are continuously executed by the monitoring target program.
Since the monitored program does not generate a specific system call sequence, the occurrence of the specific system call sequence is determined to be abnormal. Conversely, if it is a sequence of system calls that are scheduled to appear, the execution is allowed.
このような振舞い監視方法では、監視対象のプログラムが実行する予定のシステムコールの列に関し、完全な情報の入手・利用が難しいという課題がある。対症療法として、監視対象プログラムを動作させたときに観測されるシステムコールの列に基づいて、実行可能性のある許容列のリストを作成することである。かかる対症療法では、通常は、全ての許容列の収集は困難であるから、正常な動作であってもリストの許容列とは異なる動作をするシステムコールの列を、ウイルスの侵入として誤検出してしまうことになる。
非特許文献2では、監視対象プログラムのソースコード、実行コードを静的に分析し、リストの許容列の完全化を図っている。なお、振舞い監視において不正動作の見逃しを低減させることは、通常は、誤検出の低減とトレードオフの関係にある。
In such a behavior monitoring method, there is a problem that it is difficult to obtain and use complete information regarding a sequence of system calls to be executed by a monitored program. As a symptomatic treatment, a list of allowable columns that can be executed is created based on the sequence of system calls observed when the monitored program is operated. In such symptomatic therapy, since it is usually difficult to collect all allowable columns, a system call column that operates differently from the allowable column in the list even if it is normal is erroneously detected as a virus intrusion. It will end up.
In Non-Patent Document 2, the source code and execution code of the monitoring target program are statically analyzed to complete the list of allowable columns. Note that reducing the oversight of illegal operations in behavior monitoring usually has a trade-off relationship with reducing false detections.
本発明の目的は、プログラムの不正な振る舞いの誤検出率を低く保ったまま、その見逃しの低減を図ることである。 An object of the present invention is to reduce oversight while keeping a false detection rate of illegal behavior of a program low.
監視対象であるアプリケーションプログラムを、サーバ計算機システムにおける処理フェーズ、経過時間その他経時的要素に分割し、処理フェーズ毎(時間セグメント毎)に、許容集合を作成する手段を設ける。こうして各許容集合を小さくしておく(図14)。
ここで「許容集合」とは「許容列」の集合をいい、「許容列」とは、許容するシステムコールの列をいい、「許容する」とは、出現する予定のシステムコールの列の実行を許すことをいう。
There is provided means for dividing the application program to be monitored into processing phases, elapsed time and other time-dependent elements in the server computer system, and creating an allowable set for each processing phase (each time segment). In this way, each allowable set is kept small (FIG. 14).
Here, “allowable set” means a set of “allowable columns”, “allowable column” means a column of allowed system calls, and “allowed” means execution of a column of system calls that are expected to appear. To forgive.
監視対象プログラムの処理フェーズが変動することに合わせて、各フェーズ毎に用意された許容集合を用いて、OSが、システムコールの列の実行を監視する。つまり、複数の許容集合を取り替えながら、監視対象のアプリケーションプログラムの実行を監視する。
より具体的には、監視対象プログラムに起因する特定のシステムコールによって、監視対象のアプリケーションプログラムの処理フェーズが変動して行くことを、OSに通知する(同期をとる)。
処理フェーズの切替の同期をとるため、a)アプリケーションプログラムからOSに対し明示的にフェーズの切替を要求する、専用のシステムコールを設けるか、又は、b)一般のシステムコールから、あるタイミングでの特定のシステムコールを、フェーズの切替の「合図」(同期信号)として用いる。より具体的には、ソースコードレベルで設定・選択する方法、実行可能コードに専用のシステムコールをパッチなどの形で埋め込む方法、切替えの合図となるシステムコールをOSが峻別する手段を実行可能コードに設ける方法を用いる。
なお、処理フェーズの切替点の選定には、高度のプログラム分析技術が必要である。従来の許容集合を用いた監視モデルと、本発明の許容集合を用いた監視モデルの対比を図14に示す。従来、見逃していた不正システムコールの列を、本発明により検出できる。
As the processing phase of the monitoring target program changes, the OS monitors the execution of the system call sequence by using an allowable set prepared for each phase. That is, the execution of the application program to be monitored is monitored while replacing a plurality of allowed sets.
More specifically, the OS is notified (synchronized) that the processing phase of the monitoring target application program changes due to a specific system call caused by the monitoring target program.
In order to synchronize the switching of processing phases, a) provide a dedicated system call that explicitly requests the OS to switch the phase from the application program, or b) at a certain timing from a general system call A specific system call is used as a “cue” (synchronization signal) for phase switching. More specifically, a method of setting / selecting at the source code level, a method of embedding a dedicated system call in the form of a patch or the like in the executable code, and a means for the OS to discriminate the system call as a switching signal is executable code The method provided in is used.
Note that advanced program analysis technology is required to select the switching point of the processing phase. FIG. 14 shows a comparison between the conventional monitoring model using the allowable set and the monitoring model using the allowable set of the present invention. Conventionally, it is possible to detect a row of illegal system calls that have been missed by the present invention.
本発明によれば、複数のシステムコールの組(許容集合)を、複数回、用いて検出・判断するので、不正プログラムの誤検出を増やすことなく、その見逃しを低減した、より高精度の監視を実現することができる。 According to the present invention, a plurality of system call sets (allowable sets) are detected and judged a plurality of times, so that more accurate monitoring is achieved without increasing the number of false detections of malicious programs and reducing oversight. Can be realized.
監視対象であるアプリケーションプログラムのシステムコール、アプリケーションプログラムの処理フェーズの切替に関する完全な情報を事前に持つこと、並びに、処理フェーズの切替時点で許容集合を十分小さくとること、かつ、切替点を挟んだ許容集合の共通部分を十分小さくすること、となるようアプリケーションプログラムのフェーズ切替点を適切に設定することが望ましい。
また、システムコールの判定処理を軽快に実行しても、サーバの性能が大きく低下することのないよう、余裕のあるハードウエア資源に本発明方法を適用することが望ましい。
Have complete information about system calls of application programs to be monitored and switching of application program processing phases in advance, and allow the allowable set to be sufficiently small at the time of processing phase switching, and sandwich the switching points. It is desirable to appropriately set the phase switching point of the application program so that the common part of the allowed set is sufficiently small.
Further, it is desirable to apply the method of the present invention to a hardware resource with a margin so that even if the system call determination process is executed lightly, the server performance is not significantly reduced.
図1は、本発明を適用したサーバシステムの構成を示している。
サーバ計算機システム100にはプロセッサ110が搭載され、また外部記憶装置120が接続されている。OS130はアプリケーションプログラム150の走行を制御している。アプリケーションプログラム150は必要に応じてシステムコール160を発行し、OS130のサービスを要求する。
OS130は、システムコール160で要求されたサービスの実行が妥当であるか否かをシステムコール審査モジュール140において判断している。システムコール審査モジュール140では、要求されたシステムコール160に関する情報、及び、予めメモリ上に展開された判定表141、142、143にある情報を用いて、システムコールの妥当性を判断する。
判定表141、142、143は、あらかじめアプリケーションプログラム150を分析することによって、各フェーズ(図8)毎に得られている判定情報121、121、123を元に、それぞれ作成されている。判定情報121、122、123はアプリケーションプログラム150の実行開始前に、外部記憶装置120に格納されている。
FIG. 1 shows the configuration of a server system to which the present invention is applied.
The
The OS 130 determines whether or not the execution of the service requested by the
The determination tables 141, 142, and 143 are created based on the
図2は、複数のシステムコールの組合せから為る、プログラムの1断片の例を示している。判定情報A121(図1)、判定情報B122、判定情報C123(図示せず)は、このようなプログラムのフローから、連続的に実行される可能性のあるシステムコールの列(ここでは、2つのシステムコールからなるシステムコールの対)を抽出したもので構成される。
文字が書き込まれた大きな白丸210〜214、260〜252は、システムコールの発行箇所を示している。また黒丸220、221、270、271は条件分岐の分岐点と合流点を表している。小さい白丸230はプロシージャコールを表している。
プログラムは制御フロー200に従って実行される。システムコールA210の後に分岐220があり、システムコールB211を実行する場合と、システムコールC212、D213を実行する場合がある例を示している。この場合、一対のシステムコールの列として、(A、B)および(A、C)を抽出する。連続する3つのシステムコールを抽出すれば、それぞれ、(A、B、X)、(A、C、D)となる。
システムコールB211の後にプロシージャコールがあり、その先でシステムコールX250が実行されるから、システムコールの列(B,X)が抽出される。システムコールY261、あるいはシステムコールZ262を実行した後、呼出し点230に戻り、システムコールE214を実行するから、システムコール列(Y,E)、および(Z,E)が抽出される。
FIG. 2 shows an example of one fragment of a program made up of a combination of a plurality of system calls. The determination information A121 (FIG. 1), the determination information B122, and the determination information C123 (not shown) are a series of system calls (in this case, two It consists of a system call pair consisting of system calls.
Large
The program is executed according to the
Since there is a procedure call after the system call B211, and the system call X250 is executed after that, the system call column (B, X) is extracted. After executing the system call Y261 or the system call Z262, the system returns to the
図3には、このようにして、抽出したシステムコールの列をリストアップしてある。
図4は、図3の情報を外部記憶装置120に判定情報A121〜判定情報C123として格納する際の、データ形式の一例を示している。判定情報400は、1つのシステムコール番号410に対し、一行のエントリを持ち、各エントリは、システムコール番号フィールド420、およびこのシステムコールに引き続く実行が許容されるシステムコールの番号フィールド421、422、…からなる。図4は、各行のエントリを同じ長さで示すが、後続する許容システムコールの個数に応じて、エントリの長さを増加してもよい。
FIG. 3 lists the column of system calls extracted in this way.
FIG. 4 shows an example of a data format when the information of FIG. 3 is stored in the
図5は、判定情報A121〜判定情報C123を、メモリ上に展開した判定表A141〜判定表C143(143は図示せず)の詳細を示す概念図である。
プロセス制御ブロック590には、現在の判定表のアドレスフィールドを示す、現判定表アドレス591があり、実行中のアプリケーションプログラム150(図1)に関する判定表141を指している。プロセス制御ブロック590には、前システムコール番号フィールド592があり、直近に、このプロセスが実行したシステムコールの番号を記録しておくことができるようになっている。
複数の判定表A141、判定表B142、図示しない判定表C143があり、それぞれ、アプリケーションプログラム150(図1)の複数の実行フェーズ(図8)に対応している。判定表A141の次判定表アドレスフィールド520は、第2の判定表B142を指している。また各判定表には判定表識別子フィールド510があり、判定表の制御に利用することができる。判定表A141には、先頭判定エントリの列530があり、先頭判定エントリ540が並んでいる。
FIG. 5 is a conceptual diagram showing details of determination table A141 to determination table C143 (143 is not shown) in which determination information A121 to determination information C123 are expanded on a memory.
The process control block 590 has a current
There are a plurality of determination tables A141, a determination table B142, and a determination table C143 (not shown), each corresponding to a plurality of execution phases (FIG. 8) of the application program 150 (FIG. 1). The next determination
図6は、先頭の判定エントリ540、判定エントリ650の構造を示している。
一つのシステムコールに関する判定エントリは、先頭の判定エントリ540から始まるリストをなしており、次判定エントリアドレスフィールド642には判定エントリ650が連なっている。先頭の判定エントリ540には、許容する後続システムコール番号フィールド641がある。641には、前システムコール番号592(図5)に示される、現在のシステムコールに引き続いた実行が許されるシステムコールの番号が格納されている。さらに、先頭の判定エントリ540には、判定表切替制御情報フィールド643があり、これは後述する判定表の切り替え処理の制御に使用する。
FIG. 6 shows the structure of the
The determination entry related to one system call is a list starting from the
図7は、アプリケーションプログラム150(図1)において、システムコールが発行された時の、システムコール審査モジュール140における、システムコール審査処理700の概要を示すフローチャートである。
ステップ710では、現判定表アドレス591(図5)と前システムコール番号592から、最後のシステムコールに対応する、先頭の判定エントリのアドレスを求める。これは、現在の判定表A141の先頭の判定エントリの列から、前システムコール番号592をインデックスとして求めることができる。こうして、先頭の判定エントリ540(図6)が求められた。
FIG. 7 is a flowchart showing an outline of the system call examination processing 700 in the system
In
ステップ720では、今回、正常な又は不正のプログラムからOSに対して発行されたシステムコールの番号が、求めた判定エントリ540の許容する後続システムコール番号と一致するか否かを調べる。一致すれば、許容されたシステムコールと判定でき(YES)、ステップ730に進む。
ステップ730では、現在処理中のシステムコールの番号を、前システムコール番号フィールド592に格納し、以下、正常に戻る。
In
In
一方、ステップ720で実行中のシステムコールが許容されることが確認できなかった場合(NO)は、次の判定エントリについて調べる。即ち、ステップ740で次判定エントリアドレスフィールド642がゼロか否かを調べ、ゼロでない(NO)ならば、その値が次の判定エントリのアドレスであるから(ステップ760)、その値を用いて、ステップ720以下を繰り返す。
ステップ740において、最後の判定エントリによっても実行中のシステムコールが許容されないのであれば(YES)、異常なシステムコール列を検出したということであるから、ステップ750に進み、異常検出時の処理を行う。例えば、発生した異常をセキュリティログに記録し、実行中のプロセスを停止させ、資源を解放する。
On the other hand, if it is not confirmed in
In
図8は、アプリケーションプログラム150が、処理フェーズの切り替え時にOSに対してフェーズの切り替えを通知する処理800を例示したフローチャートである。
ステップ810はアプリケーションプログラムにおける初期設定フェーズにおける処理を示している。例えば、作業用メモリの確保、通信路の確保、必要なファイルのオープンなどの処理である。
ステップ820では初期設定フェーズ810の終了を受けて、フェーズ切り替え通知を行う。
ステップ830では、アプリケーションプログラムのサービスフェーズの処理が行われる。具体的な処理はサーバ計算機システムによって様々である。典型的には、初期設定フェーズで用意した資源を利用した処理であり、新たな通信路の確保は少なく、ファイルの読み書きが多い。
ステップ840では、サービスフェーズ830を離れ、終了フェーズ850に入る前に、フェーズ切り替えを通知する。
ステップ850の終了フェーズでは、確保したメモリの解放および、ファイルや通信路のクローズ処理などを行う。
FIG. 8 is a flowchart illustrating a
Step 810 shows processing in the initial setting phase in the application program. For example, processing such as securing a working memory, securing a communication path, and opening a necessary file.
In
In
In
In the end phase of
処理フェーズの切り替え通知820、および840は、アプリケーションプログラムからOSへのインタフェースを介して為され、具体的にはシステムコールを媒介として実現する。
このシステムコールとして、専用のものを用いることができる。この場合、アプリケーションプログラムが稼動中に専用システムコールを発行できるよう、明示的な通知専用のシステムコールをソースプログラムに作成しておく。
また、アプリケーションプログラムの実行ファイルに対して、該当する場所に、専用システムコールを埋め込んでも良い。
前者の方法では、実行フェーズの切り替わり点の同定が容易であるという長所があるが、実行ファイルとして配布されたアプリケーションプログラムに対して適用することができないという短所がある。後者では、配布後のアプリケーションプログラムに対しても適用できるという長所があるが、フェーズの切り替わり点の同定を行わなければならない。
専用のシステムコールを用いる方法では、このシステムコールのときだけ、フェーズ切り替えを意識した処理をすれば良い。後述の専用システムコールを用いない方法に比べ、制御が容易となり性能も低下しない利点がある。更に、専用システムコールに引数を加えることによって、より細かい制御が可能となる。例えば、フェーズAからフェーズBだけでなくフェーズCに遷移する可能性がある場合、プログラム中から遷移先のフェーズを引数によって指定することが可能となる。
The process
A dedicated system call can be used. In this case, a system call for explicit notification is created in the source program so that a dedicated system call can be issued while the application program is running.
In addition, a dedicated system call may be embedded at an appropriate location in the application program execution file.
The former method has an advantage that it is easy to identify the switching point of the execution phase, but has a disadvantage that it cannot be applied to an application program distributed as an execution file. The latter has the advantage that it can be applied to the application program after distribution, but the phase switching point must be identified.
In the method using a dedicated system call, only the system call needs to be processed in consideration of phase switching. Compared to a method that does not use a dedicated system call, which will be described later, there is an advantage that the control is easy and the performance is not lowered. Furthermore, by adding an argument to the dedicated system call, finer control becomes possible. For example, when there is a possibility of transition from phase A to phase C as well as phase B, the transition destination phase can be specified from the program by an argument.
専用システムコールを用いずに、処理フェーズの切替をOSが知るための方法は、アプリケーションプログラムが本来、実行するシステムコールのうち、処理フェーズの切替のタイミングにあるシステムコールの種類、発行アドレス等の情報を予め調べてOSに与えておき、OSがシステムコールの実行時に、該当するシステムコールであることを判定し、フェーズを切り替える方法である。
この方法では、アプリケーションプログラムを変更する必要がないという長所があるが、実行時にOSが該当するシステムコールであるか否かを判定するためのオーバヘッドが生ずるという短所がある。また、どのシステムコールがフェーズの切り替わりのタイミングに有るかを予め同定しなければならない。これには、アプリケーションプログラムに対して専用システムコールを埋め込む方法における課題と同じ手間がかかる。
The method for the OS to know the switching of the processing phase without using the dedicated system call is the system call type, issue address, etc. at the timing of switching the processing phase among the system calls originally executed by the application program. This is a method in which information is checked in advance and given to the OS, and when the OS executes a system call, it is determined that the system call is applicable and the phase is switched.
This method has the advantage that it is not necessary to change the application program, but has the disadvantage that an overhead for determining whether or not the OS is a corresponding system call at the time of execution occurs. In addition, it is necessary to identify in advance which system call is at the timing of phase switching. This takes the same effort as the problem in the method of embedding the dedicated system call in the application program.
図9は、ステップ820(図8)やステップ840における、専用システムコールによる、処理フェーズの切替通知に対する、OSの処理900を示したフローチャートである。
ステップ910では、フェーズ切り替え通知の妥当性をチェックする。アプリケーションプログラムが、不正な攻撃を受けて不正侵入が為されたとき、フェーズ切り替え処理を攻撃プログラムに恣意的に実行されると、保護のレベルが低下する恐れがある。そのため、切り替え通知を発行したときのアプリケーションプログラムの状態をチェックして安全性を確認する。これは、事前調査しておいた正常状態に関する情報と、通知時の実際の状態が一致することを確認することによって判断する。
状態としては、例えば、通知時のスタックの状態がある。スタックを調べるとプログラムのサブルーチンの呼び出しアドレスの列がわかり、それが事前調査しておいたものと一致することを確かめればよい。ここで述べた事前調査情報は、判定情報A121〜判定情報C123と一緒に、ストレージ120上に格納しておくことが、管理上、有利である。
FIG. 9 is a flowchart showing the
In
Examples of the state include a stack state at the time of notification. By examining the stack, you can see the sequence of subroutine call addresses in your program, and make sure that it matches the one you have examined in advance. It is advantageous in terms of management that the preliminary survey information described here is stored on the
ステップ910におけるチェックの結果、正当性が確認されれば(YES)、ステップ930で、判定表の変更を行う。どの判定表に切り替えるかを決定する必要があるが、ここでは予め定めておいた順番に従って、現在の判定表の次の判定表に切り替えるものとする。図5では、判定表A141と判定表B142はこの順番に従って、複数の判定表を連ねて管理されている。これまで使用していた判定表は判定表A141であり、プロセス管理ブロック内から指定されていることは、既述の通りである。
次の判定表は、判定表B142(図5)であり、既述の通り、判定表A141の内部からポインタにより指定されている。判定表切り替え処理930は、判定表B142のアドレスを判定表A141の次判定表アドレスフィールド530から取り出し、プロセス管理ブロック590の現判定表アドレスフィールド591に格納することによって達成される。以上で切り替え処理は正常に戻る。
ステップ910において、通知が正当でないと判断された場合には、ステップ920に進み、不正通知処理を実行する。不正通知実行処理としては、当該プロセスの停止、解放処理を行う。
If the validity is confirmed as a result of the check in step 910 (YES), the determination table is changed in
The next determination table is the determination table B 142 (FIG. 5), which is designated by the pointer from the inside of the
If it is determined in
図10は、ステップ820(図8)およびステップ840において、専用システムコールに変更先フェーズを示す引数を指定するようにした場合の、処理フェーズの切替通知に対する、OSの処理1000を示したフローチャートである。
通知の正当性チェック処理ステップ1010は、ステップ910と同様である。判定表切り替え処理ステップ1030は、変更先指定の影響を受ける部分である。図5において、判定表A141、判定表B142は、それぞれ、判定表識別子フィールド510をもっている。先頭判定表アドレスフィールド593と各判定表の次判定表アドレスフィールド520によって構成される判定表のチェインをたどりながら、指定された変更先に対応する判定表を各判定表の判定表識別子フィールド510を調べながら探索する。これにより、次に使用すべき判定表を選ぶことができる。判定表が選択されたならば、そのアドレスを現判定表アドレスフィールド591に格納する。判定表が選択できなかった場合はエラーであるから、アプリケーションプログラムを強制終了させる。
FIG. 10 is a flowchart showing an
The notification validity
図11は、専用のシステムコールを用いずに、既存のシステムコールのうち特定のシステムコールの発行時に、OSが処理フェーズの切替を判定する場合の、切り替え判定処理1100を示したフローチャートである。この処理はシステムコール処理の一部として実行される。
あるシステムコールが切り替え処理の契機であることは、システムコールの種類、およびそのシステムコールを発行したときのアプリケーションプロセスの状態、たとえば、スタック上に残るシステムコールを要求したアプリケーションプログラム内のアドレスにより定義され、その条件を確認したならば、OSは切り替え処理を実行するようにする。
図6の先頭の判定エントリ540は、システムコールの種類ごとに存在する。切り替えの契機となるシステムコールの先頭の判定エントリ540の判定表切り替え制御情報フィールド643には、その種類のシステムコールが切り替えの契機となるシステムコールであることを表す対象フラグ661、およびシステムコールを呼び出す際のアプリケーションプログラム内のアドレス情報662を格納しておく。これらはOSの初期設定時にOSに対する指定情報として与えられている。実行時にはこれらの情報に基づいて切り替えの契機であるか否かを判定する。
切り替え判定処理1100(図11)において、ステップ1110では、処理中のシステムコールが特定のシステムコールであることを、対象フラグ661(図6)を参照して判定する。対象でない(NO)ときは、そのままリターンする。対象である(YES)ときはステップ1120に進み、そのシステムコールがフェーズ切り替えのシステムコールであるか否かを、システムコールの呼び出しアドレスとあらかじめ登録されたアドレス情報662(図6)を比較して判定する。対象でなければ(NO)リターンする。対象ならば(YES)、ステップ1130にて判定表を切り替える。これは現判定表アドレスフィールド591(図5)に新しく選択した判定表B142のアドレスを格納することにより実行される。その後、リターンする。
FIG. 11 is a flowchart showing a switching
Whether a system call is the trigger for switching processing is defined by the type of system call and the state of the application process when the system call is issued, for example, the address in the application program that requested the system call remaining on the stack If the condition is confirmed, the OS executes the switching process.
A
In the switching determination process 1100 (FIG. 11), in
図12は、与えられたアプリケーションプログラムから、そのプログラムの処理フェーズの切替点を設定するまでの情報フローを示すブロック図である。
アプリケーションプログラムに関する情報として、ソースコード1210、実行コード1211、付加情報1212、人手情報1213がある。これらを入力としてフェーズ分析処理1200ではアプリケーションプログラムのフェーズの遷移を分析し、フェーズ切り替え点情報1230を出力する。これを入力として、フェーズ切り替え点設定処理1240では、アプリケーションプログラムやOSの制御情報にフェーズ切り替え点情報を反映し、アプリケーションプログラム実行時にOSがアプリケーションプログラムの遷移を知ることができるようにする。
ソースコード1210は、サーバのソースコードの他、アプリケーションプログラムが呼び出すライブラリのソースコードが含まれる。一般にソースコードを利用する方が、詳細かつ正確に分析できるが、通常の運用ではソースコードが利用可能であることは少ない。ソースコードが利用不可である場合は、代替として実行コード1211を利用することができる。一般に実行コードの分析はソースコードの分析よりも困難であり、また機械命令の仕様などプラットフォーム特有の知識が必要であるが、利用者は必ず使用可能であるという有利点がある。やはり、アプリケーションプログラムのものだけでなく、呼び出されるライブラリの実行コードも入力に含める。これらの他に、以前に分析しておいた情報の一部などを付加情報1212として利用して、処理時間を短縮したり、あるいは、分析の補助となるような情報を人手で追加して、分析結果をより正確とする。人手情報1213は、パラメータファイルの形で与える他、ソースコード中にいわゆるディレクティブとして挿入することができる。付加情報としては、ライブラリに関する分析情報がある。
FIG. 12 is a block diagram showing an information flow from setting a given application program to setting a process phase switching point of the program.
Information relating to the application program includes
The
図13を用いて、プログラムの断片を模式的に現し、フェーズ分析処理1200(図12)で行う処理について説明する。
プロセッサが入口点1310に制御を移すと、引き続いて順次命令列A1311を実行する。順次命令列とは、その中には分岐命令はなく、またいずれかの分岐命令によって、この中の命令に制御が移ることもない命令列をいう。プログラムの制御は、順次命令列Aを出ると分岐点1312に遭遇する。分岐点としては、一般の条件分岐の他、サブルーチンの呼び出し、あるいはサブルーチンからのリターンなど、順次的な命令実行が途切れる点を全て含める。分岐点1312から、入口点1320又は入口点1330に制御が移る。
入口点1320に続いて順次命令列B1321が実行され、分岐点1322において、入口点1350への分岐の可能性がある。同様に、入口点1330からは順次命令列C1331を実行し、分岐点1332において、入口点1350への分岐が生じている。
分岐点1332で分岐しなかった場合は、順次命令列D1341を実行し、分岐点1342において、入口点1360への分岐が生じている。
一方、入口点1350に続いて、順次命令列Eが実行される。この後、入口点1360があるため、順次命令列Eはここで処理を終了する。
The process performed in the phase analysis process 1200 (FIG. 12) will be described with reference to FIG.
When the processor transfers control to the
The instruction sequence B1321 is sequentially executed following the
If the
On the other hand, following the
以上のようにして、実行されるプログラム全体を、分岐点又は入口点で挟まれた順次命令列に分解し、それらの隣接する実行順序情報を抽出する。抽出した順次命令列間の隣接する実行順序情報から、順次命令列間の実行順序を求めることができる。順次命令列の実行順序を考慮すると、順次命令列の集合から実行可能性のあるシステムコール列の集合(許容集合)が得られる。
特定の順次命令列Sを指定すると、それに対して、その順次命令列よりも後に実行する可能性のある順次命令列の集合(後半と呼ぶ)が定まり、さら後半より前に実行される可能性のある順次命令列の集合(前半と呼ぶ)が得られる。これらは共通部分を持つことがありうる。前半、および後半から、それぞれの許容集合が得られる。
前半の許容集合の元の個数をB(S)、後半の許容集合の個数をA(S)とする。理論的には、B(S)とA(S)が同時に最も小さくなるようなSがフェーズの切れ目としてはふさわしいものと考えられる。それ以前と以後で最も条件の厳しい監視が行われるからである。
また、前半の許容集合と後半の許容集合の共通部分が小さい方が、フェーズの切れ目とするには望ましい。なぜならその前後で使用されるシステムコールの種類が大きく変わるということであるから、処理の性格が変わると考えられるからであり、そうでない場合は、前後の許容集合の類似性が増し、許容集合の交換の効果が小さいと考えられるからである。
As described above, the entire program to be executed is decomposed into a sequential instruction sequence sandwiched between branch points or entry points, and adjacent execution order information is extracted. The execution order between the sequential instruction sequences can be obtained from the adjacent execution order information between the extracted sequential instruction sequences. Considering the execution order of sequential instruction sequences, a set of system call sequences that can be executed (allowable set) is obtained from the set of sequential instruction sequences.
When a specific sequential instruction sequence S is specified, a set of sequential instruction sequences (called the second half) that may be executed after the sequential instruction sequence is determined, and may be executed before the second half. A set of sequential instruction sequences (referred to as the first half) is obtained. They can have a common part. Each allowed set is obtained from the first half and the second half.
Let B (S) be the original number of allowed sets in the first half and A (S) be the number of allowed sets in the second half. Theoretically, it is considered that S in which B (S) and A (S) become the smallest simultaneously is suitable as a phase break. This is because the most severe monitoring is performed before and after that.
In addition, it is desirable for the phase break to have a smaller common part between the first and second allowance sets. This is because the type of system call used before and after that changes greatly, so it is considered that the nature of processing will change. Otherwise, the similarity of the allowable set before and after increases, and the allowable set of This is because the exchange effect is considered to be small.
一般にはこのような順次命令列が見出せないこともありうる。その場合に備えて、適当な選択基準を設定する、又は、人手による調整により、フェーズの切れ目の順次命令列を定めればよい。例えば、後半のリスクが高いと判断するならば、後半の許容集合を小さくするように選択することが考えられる。以上では前半と後半の2つにフェーズ分けしたが、同様の処理により、例えば、前半をさらに分割することも考えられる。この場合、フェーズは3つになり、2つの切り替え点が指定されたことになる。 In general, such a sequential instruction sequence may not be found. In order to prepare for such a case, a sequential instruction sequence of phase breaks may be determined by setting appropriate selection criteria or by manual adjustment. For example, if it is determined that the risk in the second half is high, it may be possible to select to reduce the allowable set in the second half. In the above description, the phases are divided into the first half and the second half. However, for example, the first half can be further divided by the same processing. In this case, there are three phases, and two switching points are designated.
処理フェーズの切替点設定処理1240(図12)では、実行時の制御方法に依拠して、為すべき処理が異なる。まず、フェーズ切り替え通知専用システムコールをソースコードに埋め込む場合には、アプリケーションプログラムの該当箇所に、このシステムコールを発行する処理を挿入する。またフェーズ切り替え通知専用システムコールを実行ファイルに埋め込む場合は、アプリケーションプログラムの実行ファイルの該当する箇所に該当するコードを埋め込む。これは、パッチを入れる要領で実行すればよい。実行ファイルの静的な変更を避けたい場合は、アプリケーションプログラムのローディング時に、該当するコードをメモリ上で埋め込むようにすることができる。
一方、一般のシステムコールをフェーズ切り替えの契機とする場合には、契機となる特定のシステムコールを、他のシステムコール(他の場所から発行される同一のシステムコール番号を有するシステムコールを含む)と識別するための情報を、判定情報A121〜判定情報C123の一部として、記憶媒体120上に格納しておく必要がある。
In the process phase switching point setting process 1240 (FIG. 12), the process to be performed differs depending on the control method at the time of execution. First, when embedding a system call dedicated to phase switching notification in the source code, a process for issuing this system call is inserted into the corresponding part of the application program. When embedding the system call dedicated to phase switching notification in the execution file, the corresponding code is embedded in the corresponding part of the execution file of the application program. This can be done in the same way as putting a patch. If you want to avoid static changes to the executable file, you can embed the corresponding code in memory when loading the application program.
On the other hand, when a general system call is used as an opportunity for phase switching, a specific system call used as an opportunity is changed to another system call (including a system call having the same system call number issued from another location). Is required to be stored on the
本発明は、プログラムの振舞いの異常監視の強化に好適である。 The present invention is suitable for enhancing monitoring of abnormal behavior of a program.
100 サーバ計算機システム
130 オペレーティングシステム(OS)
150 アプリケーションプログラム
121、122、123 ストレージ上の判定情報A〜C
141、142、143 メモリ上の判定表A〜C
200 アプリケーションプログラムの処理の断片
300 許容情報の内容の例
400 判定情報における許容情報
590 プロセス制御ブロック
540 先頭の判定エントリ
650 後続の判定エントリ
700 システムコール審査処理
800 サーバの処理
900、1000 フェーズ切り替え処理
1100 切り替え判定処理
1200 フェーズ分析処理
100
150
141, 142, 143 Judgment tables A to C on the memory
200 Fragment of processing of
Claims (7)
該サーバ計算機からアクセス可能なデータ格納手段と、
前記サーバ計算機を制御するオペレーティングシステムと、
前記サーバ計算機上で前記オペレーティングシステムの制御下に実行されるアプリケーションプログラムとを備えたサーバ計算機システムの制御方法であって、
前記アプリケーションプログラムの発行するシステムコールの列を監視して、予定されたシステムコールの列から成る判定表を用いて、当該予定されたシステムコールの列以外の列が検出された場合に、当該システムコールの列の実行を中止するものにおいて、
前記アプリケーションプログラムの発行するシステムコールの列を、処理のフェーズ毎に予め複数の判定表に分けて、各判定表に、それぞれ予定されたシステムコールの列を格納しておき、
前記オペレーティングシステムは、前記アプリケーションプログラムの発行するシステムコールの列と、第1の判定表に有るシステムコールの列とを対比し、
前記オペレーティングシステムは、特定のシステムコールを契機に、前記アプリケーションプログラムの発行するシステムコールの列と、第2の判定表に有るシステムコールの列とを対比し、
それぞれの対比において、前記予定されたシステムコールの列以外の列が検出された場合に、当該システムコールの列の実行を中止することを特徴とする、サーバ計算機システムの制御方法。 A server computer,
Data storage means accessible from the server computer;
An operating system for controlling the server computer;
A control method for a server computer system comprising an application program executed on the server computer under the control of the operating system,
The system call column issued by the application program is monitored, and when a column other than the scheduled system call column is detected using the determination table including the scheduled system call column, the system In the one that stops the execution of the call queue,
The system call sequence issued by the application program is divided into a plurality of determination tables in advance for each processing phase, and each scheduled system call column is stored in each determination table.
The operating system compares a system call column issued by the application program with a system call column in the first determination table;
The operating system, upon a specific system call, compares a system call column issued by the application program with a system call column in the second determination table,
The server computer system control method according to claim 1, wherein when a column other than the scheduled system call column is detected in each comparison, execution of the system call column is stopped.
前記特定のシステムコールは、専用のシステムコールであるサーバ計算機システムの制御方法。 In the control method of the server computer system according to claim 1,
The method of controlling a server computer system, wherein the specific system call is a dedicated system call.
前記専用のシステムコールは、前記アプリケーションプログラムのソースプログラムに対して、明示的に挿入された呼び出し処理によって為されるサーバ計算機システムの制御方法。 In the control method of the server computer system according to claim 2,
The server system control method, wherein the dedicated system call is made by a call process explicitly inserted into the source program of the application program.
前記専用のシステムコールは、前記アプリケーションプログラムの実行プログラムに対して、呼び出しのための命令列を挿入しておくことによって為されるサーバ計算機システムの制御方法。 In the control method of the server computer system according to claim 2,
The dedicated system call is a control method for a server computer system, which is performed by inserting an instruction sequence for calling into an execution program of the application program.
前記実行プログラムに対する呼び出しのための命令列の挿入は、該実行プログラムのローディングの際に為されるサーバ計算機システムの制御方法。 In the control method of the server computer system according to claim 4,
The server computer system control method includes inserting an instruction sequence for calling the execution program when the execution program is loaded.
前記特定のシステムコールは、前記アプリケーションプログラムに対して、予め定めたシステムコールの種別とアドレスにより特定されるシステムコールである、サーバ計算機システムの制御方法。 In the control method of the server computer system according to claim 1,
The server computer system control method, wherein the specific system call is a system call specified by a predetermined system call type and address for the application program.
前記アプリケーションプログラムは、アクセスの受付を開始するときに、前記特定のシステムコールを発行するサーバ計算機システムの制御方法。
In the control method of the server computer system according to claim 1,
A control method for a server computer system, wherein the application program issues the specific system call when it starts accepting access.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005150327A JP2006330864A (en) | 2005-05-24 | 2005-05-24 | Server computer system control method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005150327A JP2006330864A (en) | 2005-05-24 | 2005-05-24 | Server computer system control method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2006330864A true JP2006330864A (en) | 2006-12-07 |
Family
ID=37552520
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2005150327A Withdrawn JP2006330864A (en) | 2005-05-24 | 2005-05-24 | Server computer system control method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2006330864A (en) |
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008152544A (en) * | 2006-12-18 | 2008-07-03 | Hitachi Ltd | Control microcomputer verification device and in-vehicle control device |
| JP2010092174A (en) * | 2008-10-06 | 2010-04-22 | Nippon Telegr & Teleph Corp <Ntt> | Method, device and program for detecting fraudulence, and information processing system |
| JP2011501279A (en) * | 2007-10-15 | 2011-01-06 | ベイジン ライジング インフォメーション テクノロジー カンパニー、リミテッド | Method and apparatus for detecting malicious acts of a computer program |
| US8407799B2 (en) | 2007-03-28 | 2013-03-26 | Ntt Docomo, Inc. | Software behavior modeling device, software behavior modeling method, software behavior verification device, and software behavior verification method |
| JP2013542536A (en) * | 2010-12-21 | 2013-11-21 | 北京中天安泰信息科技有限公司 | How to standardize the execution behavior of a computer system |
| JP2016038745A (en) * | 2014-08-07 | 2016-03-22 | パナソニックIpマネジメント株式会社 | Settlement processing system |
| JP2017191440A (en) * | 2016-04-13 | 2017-10-19 | 富士通株式会社 | Malware analysis apparatus, malware analysis method, and malware analysis program |
| WO2018100777A1 (en) * | 2016-11-30 | 2018-06-07 | 日立オムロンターミナルソリューションズ株式会社 | Automatic transaction device and control method therefor |
| CN114513441A (en) * | 2022-04-15 | 2022-05-17 | 北京优特捷信息技术有限公司 | System maintenance method, device, equipment and storage medium based on block chain |
| WO2025257915A1 (en) * | 2024-06-11 | 2025-12-18 | 三菱電機株式会社 | Program processing phase classification device |
-
2005
- 2005-05-24 JP JP2005150327A patent/JP2006330864A/en not_active Withdrawn
Cited By (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008152544A (en) * | 2006-12-18 | 2008-07-03 | Hitachi Ltd | Control microcomputer verification device and in-vehicle control device |
| US8407799B2 (en) | 2007-03-28 | 2013-03-26 | Ntt Docomo, Inc. | Software behavior modeling device, software behavior modeling method, software behavior verification device, and software behavior verification method |
| JP2011501279A (en) * | 2007-10-15 | 2011-01-06 | ベイジン ライジング インフォメーション テクノロジー カンパニー、リミテッド | Method and apparatus for detecting malicious acts of a computer program |
| JP2010092174A (en) * | 2008-10-06 | 2010-04-22 | Nippon Telegr & Teleph Corp <Ntt> | Method, device and program for detecting fraudulence, and information processing system |
| JP2013542536A (en) * | 2010-12-21 | 2013-11-21 | 北京中天安泰信息科技有限公司 | How to standardize the execution behavior of a computer system |
| US9230067B2 (en) | 2010-12-21 | 2016-01-05 | Antaios (Beijing) Information Technology Co., Ltd. | Method for normalizing a computer system |
| JP2016038745A (en) * | 2014-08-07 | 2016-03-22 | パナソニックIpマネジメント株式会社 | Settlement processing system |
| JP2017191440A (en) * | 2016-04-13 | 2017-10-19 | 富士通株式会社 | Malware analysis apparatus, malware analysis method, and malware analysis program |
| WO2018100777A1 (en) * | 2016-11-30 | 2018-06-07 | 日立オムロンターミナルソリューションズ株式会社 | Automatic transaction device and control method therefor |
| JP2018092269A (en) * | 2016-11-30 | 2018-06-14 | 日立オムロンターミナルソリューションズ株式会社 | Automatic transaction device and control method thereof |
| US10891834B2 (en) | 2016-11-30 | 2021-01-12 | Hitachi-Omron Terminal Solutions, Corp. | Automatic transaction apparatus and control method thereof |
| CN114513441A (en) * | 2022-04-15 | 2022-05-17 | 北京优特捷信息技术有限公司 | System maintenance method, device, equipment and storage medium based on block chain |
| WO2025257915A1 (en) * | 2024-06-11 | 2025-12-18 | 三菱電機株式会社 | Program processing phase classification device |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN105260659B (en) | A kind of kernel level code reuse type attack detection method based on QEMU | |
| US8621624B2 (en) | Apparatus and method for preventing anomaly of application program | |
| US9824217B2 (en) | Runtime detection of self-replicating malware | |
| US7669059B2 (en) | Method and apparatus for detection of hostile software | |
| US8370931B1 (en) | Multi-behavior policy matching for malware detection | |
| US9846779B2 (en) | Detecting a return-oriented programming exploit | |
| JP4929403B2 (en) | Method and apparatus for automatically protecting malicious program in computer | |
| JP5265061B1 (en) | Malicious file inspection apparatus and method | |
| US8732836B2 (en) | System and method for correcting antivirus records to minimize false malware detections | |
| JP4732484B2 (en) | Exploit code analysis method and apparatus in non-executable file using virtual environment | |
| KR101064164B1 (en) | Kernel Integrity Check and Modified Kernel Data Recovery in Linux Kernel-based Smart Platform | |
| KR100991807B1 (en) | Malicious code detection and processing system and method in computer system using Microsoft Windows operating system | |
| JP2010182019A (en) | Abnormality detector and program | |
| JP2006330864A (en) | Server computer system control method | |
| JPH03233629A (en) | System for checking destruction of execution format file | |
| US8938807B1 (en) | Malware removal without virus pattern | |
| US7620983B1 (en) | Behavior profiling | |
| CN119903516B (en) | Malware detection method, device, electronic device and storage medium | |
| CN107220537B (en) | Method for detecting leakage behavior of program memory layout information | |
| JP4643201B2 (en) | Buffer overflow vulnerability analysis method, data processing device, analysis information providing device, analysis information extraction processing program, and analysis information provision processing program | |
| KR101723623B1 (en) | System and method for detecting malicious code | |
| CN112395610B (en) | Kernel layer shellcode detection method and device | |
| EP3535681B1 (en) | System and method for detecting and for alerting of exploits in computerized systems | |
| CN118331680A (en) | Safety protection method and device and electronic equipment | |
| CN117744082A (en) | Method and device for detecting malicious software in operating system and storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070823 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090918 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091006 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091203 |
|
| A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20100122 |