[go: up one dir, main page]

JP2006330864A - Server computer system control method - Google Patents

Server computer system control method Download PDF

Info

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
Application number
JP2005150327A
Other languages
Japanese (ja)
Inventor
Tatsutoshi Sakuraba
健年 櫻庭
Seiichi Domyo
誠一 道明
Hitaka Matsumoto
日高 松本
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 JP2005150327A priority Critical patent/JP2006330864A/en
Publication of JP2006330864A publication Critical patent/JP2006330864A/en
Withdrawn legal-status Critical Current

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.
Non-Patent Document 1 is a technique for detecting a difference in program behavior caused by execution of a malicious program. The problem with such a detection system is that errors in detection and judgment are likely to occur. In other words, there is an oversight that it is judged to be abnormal even though it is actually normal operation, and conversely, it is not possible to detect fraud because it is normal even though it is actually abnormal operation. Frequently appear.
In Patent Document 1, statistically monitoring the execution status of a plurality of system calls is performed. For example, when an index different from the normal time is calculated by statistically processing the contents of a large number of system calls exceeding 10,000 times, it is determined that an abnormality has occurred. In such a method, it is difficult to set a threshold value for allowing an abnormality in the index. If the threshold is set strictly so that a slight difference can be detected, the probability of erroneous detection increases. If the threshold value is set gently so as to allow some errors, the risk of overlooking unauthorized access increases.

判断の安全のため、ある程度の誤検出を容認し、見逃しを低減するという運用も想定される。しかし、何の不正もないのに本来の処理を実行できないのでは、一般ユーザの納得は得られない。特に、オペレーティングシステム(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.

米国特許6,681,331号US Pat. No. 6,681,331 S.Forrest 他著 「Self-Nonself Discrimination in a Computer」Proceedings of the IEEE Symposium on Research in Security and Privacy, pp.202-212(1994)S.Forrest et al. “Self-Nonself Discrimination in a Computer” Proceedings of the IEEE Symposium on Research in Security and Privacy, pp.202-212 (1994) D.Wagner 他著 「Intrusion Detection via Static Analysis」Proceedings of the IEEE Symposium on Research in Security and Privacy, pp.156-168(2001)D. Wagner et al. "Intrusion Detection via Static Analysis" Proceedings of the IEEE Symposium on Research in Security and Privacy, pp.156-168 (2001)

本発明の目的は、プログラムの不正な振る舞いの誤検出率を低く保ったまま、その見逃しの低減を図ることである。   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 server computer system 100 is equipped with a processor 110 and an external storage device 120 is connected thereto. The OS 130 controls the running of the application program 150. The application program 150 issues a system call 160 as required to request a service of the OS 130.
The OS 130 determines whether or not the execution of the service requested by the system call 160 is appropriate in the system call examination module 140. The system call examination module 140 determines the validity of the system call by using the information related to the requested system call 160 and the information in the determination tables 141, 142, and 143 previously expanded on the memory.
The determination tables 141, 142, and 143 are created based on the determination information 121, 121, and 123 obtained for each phase (FIG. 8) by analyzing the application program 150 in advance. The determination information 121, 122, 123 is stored in the external storage device 120 before the execution of the application program 150 is started.

図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 white circles 210 to 214 and 260 to 252 in which characters are written indicate system call issue locations. Black circles 220, 221, 270, and 271 represent branch points and junctions of conditional branches. A small white circle 230 represents a procedure call.
The program is executed according to the control flow 200. An example is shown in which there is a branch 220 after the system call A 210 and the system call B 211 is executed and the system calls C 212 and D 213 are executed. In this case, (A, B) and (A, C) are extracted as a pair of system calls. If three consecutive system calls are extracted, they become (A, B, X) and (A, C, D), respectively.
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 calling point 230 and executes the system call E214, so that the system call sequences (Y, E) and (Z, E) are extracted.

図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 external storage device 120 as determination information A121 to determination information C123. The determination information 400 has one line entry for one system call number 410, and each entry has a system call number field 420 and system call number fields 421, 422, which are allowed to be executed subsequently to the system call. It consists of ... FIG. 4 shows the entries in each row with the same length, but the length of the entries may be increased depending on the number of subsequent allowed system calls.

図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 determination table address 591 indicating an address field of the current determination table, and points to the determination table 141 relating to the application program 150 (FIG. 1) being executed. The process control block 590 has a previous system call number field 592 so that the number of the system call executed by this process can be recorded.
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 table address field 520 of the determination table A141 points to the second determination table B142. Each determination table has a determination table identifier field 510, which can be used to control the determination table. The determination table A 141 includes a column 530 for head determination entries, and head determination entries 540 are arranged.

図6は、先頭の判定エントリ540、判定エントリ650の構造を示している。
一つのシステムコールに関する判定エントリは、先頭の判定エントリ540から始まるリストをなしており、次判定エントリアドレスフィールド642には判定エントリ650が連なっている。先頭の判定エントリ540には、許容する後続システムコール番号フィールド641がある。641には、前システムコール番号592(図5)に示される、現在のシステムコールに引き続いた実行が許されるシステムコールの番号が格納されている。さらに、先頭の判定エントリ540には、判定表切替制御情報フィールド643があり、これは後述する判定表の切り替え処理の制御に使用する。
FIG. 6 shows the structure of the first determination entry 540 and the determination entry 650.
The determination entry related to one system call is a list starting from the first determination entry 540, and the determination entry 650 is continued in the next determination entry address field 642. The first determination entry 540 includes an allowable subsequent system call number field 641. 641 stores the number of the system call that is permitted to be executed subsequent to the current system call, as indicated by the previous system call number 592 (FIG. 5). Furthermore, the top determination entry 540 includes a determination table switching control information field 643, which is used for controlling determination table switching processing described later.

図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 call examination module 140 when a system call is issued in the application program 150 (FIG. 1).
In step 710, the address of the first determination entry corresponding to the last system call is obtained from the current determination table address 591 (FIG. 5) and the previous system call number 592. This can be obtained by using the previous system call number 592 as an index from the column of the first determination entry in the current determination table A141. Thus, the first determination entry 540 (FIG. 6) is obtained.

ステップ720では、今回、正常な又は不正のプログラムからOSに対して発行されたシステムコールの番号が、求めた判定エントリ540の許容する後続システムコール番号と一致するか否かを調べる。一致すれば、許容されたシステムコールと判定でき(YES)、ステップ730に進む。
ステップ730では、現在処理中のシステムコールの番号を、前システムコール番号フィールド592に格納し、以下、正常に戻る。
In step 720, it is checked whether or not the number of the system call issued to the OS from the normal or unauthorized program this time coincides with the subsequent system call number allowed in the obtained determination entry 540. If they match, it can be determined that the system call is allowed (YES), and the process proceeds to step 730.
In step 730, the number of the system call currently being processed is stored in the previous system call number field 592, and then the process returns to normal.

一方、ステップ720で実行中のシステムコールが許容されることが確認できなかった場合(NO)は、次の判定エントリについて調べる。即ち、ステップ740で次判定エントリアドレスフィールド642がゼロか否かを調べ、ゼロでない(NO)ならば、その値が次の判定エントリのアドレスであるから(ステップ760)、その値を用いて、ステップ720以下を繰り返す。
ステップ740において、最後の判定エントリによっても実行中のシステムコールが許容されないのであれば(YES)、異常なシステムコール列を検出したということであるから、ステップ750に進み、異常検出時の処理を行う。例えば、発生した異常をセキュリティログに記録し、実行中のプロセスを停止させ、資源を解放する。
On the other hand, if it is not confirmed in step 720 that the system call being executed is allowed (NO), the next determination entry is checked. That is, in step 740, it is checked whether or not the next determination entry address field 642 is zero. If it is not zero (NO), the value is the address of the next determination entry (step 760). Step 720 and subsequent steps are repeated.
In step 740, if the system call being executed is not permitted even by the last determination entry (YES), it means that an abnormal system call sequence has been detected, so that the process proceeds to step 750 and processing at the time of abnormality detection is performed. Do. For example, the generated abnormality is recorded in the security log, the running process is stopped, and the resources are released.

図8は、アプリケーションプログラム150が、処理フェーズの切り替え時にOSに対してフェーズの切り替えを通知する処理800を例示したフローチャートである。
ステップ810はアプリケーションプログラムにおける初期設定フェーズにおける処理を示している。例えば、作業用メモリの確保、通信路の確保、必要なファイルのオープンなどの処理である。
ステップ820では初期設定フェーズ810の終了を受けて、フェーズ切り替え通知を行う。
ステップ830では、アプリケーションプログラムのサービスフェーズの処理が行われる。具体的な処理はサーバ計算機システムによって様々である。典型的には、初期設定フェーズで用意した資源を利用した処理であり、新たな通信路の確保は少なく、ファイルの読み書きが多い。
ステップ840では、サービスフェーズ830を離れ、終了フェーズ850に入る前に、フェーズ切り替えを通知する。
ステップ850の終了フェーズでは、確保したメモリの解放および、ファイルや通信路のクローズ処理などを行う。
FIG. 8 is a flowchart illustrating a process 800 in which the application program 150 notifies the OS of the phase change when the process phase is changed.
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 step 820, upon completion of the initial setting phase 810, phase switching notification is performed.
In step 830, processing of the service phase of the application program is performed. Specific processing varies depending on the server computer system. Typically, this is a process using resources prepared in the initial setting phase, and there are few securing of a new communication path, and many reading and writing of files.
In step 840, the service phase 830 is left and before the end phase 850 is entered, a phase switch is notified.
In the end phase of step 850, the secured memory is released and the file and communication path are closed.

処理フェーズの切り替え通知820、および840は、アプリケーションプログラムからOSへのインタフェースを介して為され、具体的にはシステムコールを媒介として実現する。
このシステムコールとして、専用のものを用いることができる。この場合、アプリケーションプログラムが稼動中に専用システムコールを発行できるよう、明示的な通知専用のシステムコールをソースプログラムに作成しておく。
また、アプリケーションプログラムの実行ファイルに対して、該当する場所に、専用システムコールを埋め込んでも良い。
前者の方法では、実行フェーズの切り替わり点の同定が容易であるという長所があるが、実行ファイルとして配布されたアプリケーションプログラムに対して適用することができないという短所がある。後者では、配布後のアプリケーションプログラムに対しても適用できるという長所があるが、フェーズの切り替わり点の同定を行わなければならない。
専用のシステムコールを用いる方法では、このシステムコールのときだけ、フェーズ切り替えを意識した処理をすれば良い。後述の専用システムコールを用いない方法に比べ、制御が容易となり性能も低下しない利点がある。更に、専用システムコールに引数を加えることによって、より細かい制御が可能となる。例えば、フェーズAからフェーズBだけでなくフェーズCに遷移する可能性がある場合、プログラム中から遷移先のフェーズを引数によって指定することが可能となる。
The process phase switching notifications 820 and 840 are made via an interface from the application program to the OS, and are specifically realized through a system call.
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 processing 900 of the OS in response to the processing phase switching notification by the dedicated system call in Step 820 (FIG. 8) or Step 840.
In step 910, the validity of the phase switching notification is checked. When an application program is subjected to an unauthorized attack and an unauthorized intrusion is made, if the phase switching process is arbitrarily executed by the attack program, the protection level may be lowered. Therefore, safety is checked by checking the state of the application program when the switching notification is issued. This is determined by confirming that the information regarding the normal state that has been investigated in advance matches the actual state at the time of notification.
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 storage 120 together with the determination information A121 to the determination information C123.

ステップ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 step 930. Although it is necessary to determine which decision table to switch to, it is assumed here that the determination table is switched to the next decision table in the current determination table according to a predetermined order. In FIG. 5, the determination table A 141 and the determination table B 142 are managed by connecting a plurality of determination tables in this order. The determination table used so far is the determination table A141, and it is specified from the process management block as described above.
The next determination table is the determination table B 142 (FIG. 5), which is designated by the pointer from the inside of the determination table A 141 as described above. The decision table switching process 930 is achieved by taking the address of the decision table B 142 from the next decision table address field 530 of the decision table A 141 and storing it in the current decision table address field 591 of the process management block 590. Thus, the switching process returns to normal.
If it is determined in step 910 that the notification is not valid, the process proceeds to step 920 to execute fraud notification processing. As the fraud notification execution process, the process is stopped and released.

図10は、ステップ820(図8)およびステップ840において、専用システムコールに変更先フェーズを示す引数を指定するようにした場合の、処理フェーズの切替通知に対する、OSの処理1000を示したフローチャートである。
通知の正当性チェック処理ステップ1010は、ステップ910と同様である。判定表切り替え処理ステップ1030は、変更先指定の影響を受ける部分である。図5において、判定表A141、判定表B142は、それぞれ、判定表識別子フィールド510をもっている。先頭判定表アドレスフィールド593と各判定表の次判定表アドレスフィールド520によって構成される判定表のチェインをたどりながら、指定された変更先に対応する判定表を各判定表の判定表識別子フィールド510を調べながら探索する。これにより、次に使用すべき判定表を選ぶことができる。判定表が選択されたならば、そのアドレスを現判定表アドレスフィールド591に格納する。判定表が選択できなかった場合はエラーであるから、アプリケーションプログラムを強制終了させる。
FIG. 10 is a flowchart showing an OS process 1000 for a process phase switching notification when an argument indicating the change destination phase is specified in the dedicated system call in Step 820 (FIG. 8) and Step 840. is there.
The notification validity check processing step 1010 is the same as step 910. The decision table switching process step 1030 is a part that is affected by the change destination designation. In FIG. 5, each of the determination table A 141 and the determination table B 142 has a determination table identifier field 510. While following the chain of the decision table constituted by the first decision table address field 593 and the next decision table address field 520 of each decision table, the decision table corresponding to the designated change destination is changed to the decision table identifier field 510 of each decision table. Search while investigating. Thereby, the determination table to be used next can be selected. If the determination table is selected, the address is stored in the current determination table address field 591. If the judgment table cannot be selected, it is an error and the application program is forcibly terminated.

図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 determination process 1100 in the case where the OS determines switching of processing phases when a specific system call is issued among existing system calls without using a dedicated system call. This process is executed as part of the system call process.
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 determination entry 540 at the top of FIG. 6 exists for each type of system call. In the determination table switching control information field 643 of the determination entry 540 at the head of the system call that triggers switching, a target flag 661 that indicates that the type of system call is a system call that triggers switching, and a system call are displayed. Address information 662 in the application program at the time of calling is stored. These are given as designation information for the OS when the OS is initially set. At the time of execution, it is determined whether or not it is a switching opportunity based on these pieces of information.
In the switching determination process 1100 (FIG. 11), in step 1110, it is determined with reference to the target flag 661 (FIG. 6) that the system call being processed is a specific system call. If it is not the target (NO), return as it is. If YES in step 1120, the flow advances to step 1120 to determine whether the system call is a system call for phase switching by comparing the call address of the system call with address information 662 (FIG. 6) registered in advance. judge. If not the target (NO), return. If it is the target (YES), the judgment table is switched in step 1130. This is executed by storing the address of the newly selected determination table B 142 in the current determination table address field 591 (FIG. 5). Then return.

図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 source code 1210, execution code 1211, additional information 1212, and manpower information 1213. With these as inputs, the phase analysis processing 1200 analyzes the phase transition of the application program and outputs phase switching point information 1230. With this as an input, the phase switching point setting processing 1240 reflects the phase switching point information in the application program and OS control information so that the OS can know the transition of the application program when the application program is executed.
The source code 1210 includes the source code of the library called by the application program in addition to the server source code. In general, the source code can be analyzed in detail and accurately, but the source code is rarely available in normal operation. If the source code is not available, the execution code 1211 can be used as an alternative. In general, analysis of executable code is more difficult than analysis of source code, and platform-specific knowledge such as machine instruction specifications is required, but there is an advantage that the user can always use it. After all, the execution code of the called library is included in the input as well as that of the application program. In addition to these, a part of information that has been analyzed before can be used as additional information 1212 to shorten the processing time, or to manually add information that assists analysis, Make analysis results more accurate. The manpower information 1213 is given in the form of a parameter file and can be inserted as a so-called directive in the source code. Additional information includes analysis information about the library.

図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 entry point 1310, the instruction sequence A1311 is successively executed. The sequential instruction sequence means an instruction sequence in which there is no branch instruction and control is not transferred to the instruction in any branch instruction. Control of the program encounters branch point 1312 as it sequentially exits instruction sequence A. The branch points include all points where sequential instruction execution is interrupted, such as calling a subroutine or returning from a subroutine, in addition to a general conditional branch. From the branch point 1312, control is transferred to the entry point 1320 or the entry point 1330.
The instruction sequence B1321 is sequentially executed following the entry point 1320, and there is a possibility of branching to the entry point 1350 at the branch point 1322. Similarly, the instruction sequence C 1331 is sequentially executed from the entry point 1330, and a branch to the entry point 1350 occurs at the branch point 1332.
If the branch point 1332 is not branched, the instruction sequence D1341 is sequentially executed, and a branch to the entry point 1360 occurs at the branch point 1342.
On the other hand, following the entry point 1350, the instruction sequence E is sequentially executed. Thereafter, since there is an entry point 1360, the sequential instruction sequence E ends the processing.

以上のようにして、実行されるプログラム全体を、分岐点又は入口点で挟まれた順次命令列に分解し、それらの隣接する実行順序情報を抽出する。抽出した順次命令列間の隣接する実行順序情報から、順次命令列間の実行順序を求めることができる。順次命令列の実行順序を考慮すると、順次命令列の集合から実行可能性のあるシステムコール列の集合(許容集合)が得られる。
特定の順次命令列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 storage medium 120 as part of the determination information A121 to the determination information C123.

本発明は、プログラムの振舞いの異常監視の強化に好適である。   The present invention is suitable for enhancing monitoring of abnormal behavior of a program.

本発明を適用したサーバ計算機システムの構成を示す図である。It is a figure which shows the structure of the server computer system to which this invention is applied. 複数のシステムコールの組合せから為る、プログラムの1断片の実行例を示す図である。It is a figure which shows the example of execution of 1 fragment of a program which consists of a combination of a several system call. 抽出して得られたシステムコールの列を示した図である。It is the figure which showed the string of the system call obtained by extracting. システムコール列を外部記憶装置120に判定情報A121〜判定情報C123として格納する際の、データ形式の一例を示した図である。It is a figure showing an example of a data format at the time of storing a system call sequence as judgment information A121-judgment information C123 in external storage device 120. メモリ上に展開した判定表のデータ形式を示す図である。It is a figure which shows the data format of the determination table expand | deployed on the memory. 判定エントリのデータ構造を示す図である。It is a figure which shows the data structure of a determination entry. システムコール審査モジュール140における、システムコール審査処理700の概要を示すフローチャートである。7 is a flowchart showing an outline of a system call examination process 700 in the system call examination module 140. アプリケーションプログラム150における、処理フェーズの切り替えを通知するフローチャートである。6 is a flowchart for notifying process phase switching in an application program 150; 専用システムコールによるフェーズ切り替え通知に対する、OSの処理900を示したフローチャートである。10 is a flowchart showing an OS process 900 in response to a phase switching notification by a dedicated system call. 専用システムコールに変更先フェーズを示す引数を指定するようにした場合の、フェーズ切り替え通知に対する、OSの処理1000を示したフローチャートである。10 is a flowchart showing an OS process 1000 for a phase switching notification when an argument indicating a change-destination phase is specified in a dedicated system call. 既存システムコールを利用したフェーズ切り替え処理のフローチャートである。It is a flowchart of the phase switching process using the existing system call. アプリケーションプログラムにおけるフェーズ切り替え点を抽出するブロック線図である。It is a block diagram which extracts the phase switching point in an application program. 順次命令列の抽出により、フェーズ分析処理を説明する、プログラムの断片の模式図である。It is a schematic diagram of the fragment | piece of a program explaining a phase analysis process by extraction of a sequential instruction sequence. 従来の許容集合を用いた監視モデルと、本発明の許容集合を用いた監視モデルとを比較する説明図である。It is explanatory drawing which compares the monitoring model using the conventional allowance set, and the monitoring model using the allowance set of this invention.

符号の説明Explanation of symbols

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 server computer system 130 operating system (OS)
150 Application program 121, 122, 123 Determination information A to C on storage
141, 142, 143 Judgment tables A to C on the memory
200 Fragment of processing of application program 300 Example of content of permissible information 400 Permissible information in judgment information 590 Process control block 540 First judgment entry 650 Subsequent judgment entry 700 System call examination process 800 Server process 900, 1000 Phase switching process 1100 Switching judgment processing 1200 Phase analysis processing

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.
請求項1記載のサーバ計算機システムの制御方法において、
前記特定のシステムコールは、専用のシステムコールであるサーバ計算機システムの制御方法。
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.
請求項2記載のサーバ計算機システムの制御方法において、
前記専用のシステムコールは、前記アプリケーションプログラムのソースプログラムに対して、明示的に挿入された呼び出し処理によって為されるサーバ計算機システムの制御方法。
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.
請求項2記載のサーバ計算機システムの制御方法において、
前記専用のシステムコールは、前記アプリケーションプログラムの実行プログラムに対して、呼び出しのための命令列を挿入しておくことによって為されるサーバ計算機システムの制御方法。
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.
請求項4記載のサーバ計算機システムの制御方法において、
前記実行プログラムに対する呼び出しのための命令列の挿入は、該実行プログラムのローディングの際に為されるサーバ計算機システムの制御方法。
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.
請求項1記載のサーバ計算機システムの制御方法において、
前記特定のシステムコールは、前記アプリケーションプログラムに対して、予め定めたシステムコールの種別とアドレスにより特定されるシステムコールである、サーバ計算機システムの制御方法。
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.
請求項1記載のサーバ計算機システムの制御方法において、
前記アプリケーションプログラムは、アクセスの受付を開始するときに、前記特定のシステムコールを発行するサーバ計算機システムの制御方法。
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.
JP2005150327A 2005-05-24 2005-05-24 Server computer system control method Withdrawn JP2006330864A (en)

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)

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

Cited By (13)

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