JP2003515219A - Method and system for inhibiting application program interface - Google Patents

Method and system for inhibiting application program interface

Info

Publication number
JP2003515219A
JP2003515219A JP2001539121A JP2001539121A JP2003515219A JP 2003515219 A JP2003515219 A JP 2003515219A JP 2001539121 A JP2001539121 A JP 2001539121A JP 2001539121 A JP2001539121 A JP 2001539121A JP 2003515219 A JP2003515219 A JP 2003515219A
Authority
JP
Japan
Prior art keywords
address
call
library
calling
calling routine
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
JP2001539121A
Other languages
Japanese (ja)
Inventor
ホランダー,ヨナ
ラーマン,オフィヤー
ホルヴィッツ,オデッド
Original Assignee
クリックネット ソフトウエア,インク.
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
Priority claimed from IL13291699A external-priority patent/IL132916A/en
Application filed by クリックネット ソフトウエア,インク. filed Critical クリックネット ソフトウエア,インク.
Publication of JP2003515219A publication Critical patent/JP2003515219A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/542Intercept

Abstract

(57)【要約】 安全機能実行の方法は、カーネル空間(114)とプロセス空間(112)で動作しているユーザアプリケーションを含んでいるプロセス空間を含んでいるオペレーティングシステムを有するオペレーティングシステムプラットフォームを動作させているコンピュータシステム(100)で実行されている。システムコールは、阻害されて(190)、阻害されたシステムコール生成アドレスとプロセス(194)に関連付けられたプロセス有効アドレスの範囲とを比較することによって有効性(196)に対する検査がされる。阻害されたシステムコール(166)の有効性に関する通知が提供される。無効(180)であると分かった場合には、阻害されたシステムコールは終了することができる。 (57) [Summary] A method of performing a secure function operates an operating system platform having an operating system including a process space including a user application running in a kernel space (114) and a process space (112). Computer system (100). The system call is blocked (190) and checked for validity (196) by comparing the blocked system call generation address with the range of process effective addresses associated with the process (194). A notification is provided regarding the validity of the blocked system call (166). If found to be invalid (180), the blocked system call can be terminated.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【技術分野】【Technical field】

本発明は、概してコンピュータシステム内への不正な、または違法なアクセス
の試みを検出・防止する方法に関する。特に、本発明は、コンピュータシステム
内のバッファのオーバーフローに関連する弱点を利用した試みをを検出して防止
する方法に関する。
The present invention relates generally to methods for detecting and preventing unauthorized or illegal access attempts within computer systems. In particular, the present invention relates to methods for detecting and preventing attempts to exploit vulnerabilities associated with buffer overflows in computer systems.

【0002】[0002]

【背景技術】[Background technology]

本出願は、1999年11月14に出願されたイスラエル国特許出願番号 “アプリケーションプログラムインターフェースを遮断する方法およ
びシステム”に関連するものである。
This application is an Israeli patent application number filed on November 14, 1999 It relates to "methods and systems for blocking application program interfaces".

【0003】 現在のコンピュータは、人間が理解できる高級言語の要件を用いて設計されて
いる。高級言語に由来するコンピュータプログラムを構成するための最も本質的
な技術はプロシージャや、関数である。
Today's computers are designed with the requirements of human-readable high-level languages. The most essential techniques for constructing computer programs derived from high-level languages are procedures and functions.

【0004】 プロシージャや関数は、コンピュータプログラムである。プロシージャコール
や関数コールは、呼び出しプログラム実行の流れを変える抽象概念である。実行
の流れを変える従来の“jump”や“goto”の命令とは対象的に、プロシージャや
関数は、それが所有しているコードを実行後、呼び出し直後の命令へ制御を戻す
。説明した方法でのプロシージャコールや関数コールを実行するため、スタック
とよばれる記憶装置で利用されている。
Procedures and functions are computer programs. Procedure calls and function calls are abstract concepts that change the flow of execution of the calling program. In contrast to conventional "jump" and "goto" instructions that change the flow of execution, procedures and functions execute code they own and then return control to the instruction immediately after the call. It is used in a storage device called a stack to execute procedure calls and function calls in the manner described.

【0005】 スタックは、データを格納している連続した記憶ブロックである。そのサイズ
は実行時にオペレーティングシステムルーチンによって動的に調整される。デー
タは、“push”や“pop”ようなアセンブラ言語の命令で利用されている中央演
算処理装置(CPU)によってスタックに挿入されたり、スタックから削除され
たりする。
A stack is a continuous storage block that stores data. Its size is dynamically adjusted at runtime by operating system routines. The data is the central representation used in assembler language instructions such as “push” and “pop”.
It is inserted into the stack or deleted from the stack by the arithmetic processing unit (CPU).

【0006】 スタックは、論理的なスタックフレームやプロシージャアクティブレコードか
ら構成されており、関数が呼び出されたときスタック内に挿入され、そして前記
関数が呼び出しプログラムへ制御を戻すとき、スタックから削除される。スタッ
クフレームそれ自身は、呼び出された関数に対するパラメータ、ローカル変数、
以前のスタックフレームへ回復するポインタ、呼び出しコンピュータプログラム
の戻りアドレスを保有している。戻りアドレスとは、関数が呼び出されたときの
呼び出しプログラムの命令ポインタである。
The stack is made up of logical stack frames and procedure active records that are inserted into the stack when a function is called and removed from the stack when the function returns control to the calling program. . The stack frame itself consists of parameters, local variables,
Holds a pointer to the previous stack frame, the return address of the calling computer program. The return address is the instruction pointer of the calling program when the function is called.

【0007】 バッファのオーバーフローの誘発やバッファフロー攻撃は、当業者間では知ら
れている。バッファフロー攻撃は、バッファアレイに蓄えられる入力のサイズの
チェックの欠陥を利用したものである。アレイはコンピュータシステム内に予め
決められて配置された記憶装置である。割り当てられたアレイの終わりを過ぎて
意図的にデータを書き込むことによって、攻撃者は前記アレイに隣接して蓄えら
れているデータを勝手に変えてしまう。この方法で悪影響を受ける最も共有のデ
ータ構造は、スタックである。したがって、この攻撃のタイプは、また、スタッ
ク破壊として知られている。
Buffer overflow triggering and buffer flow attacks are known to those skilled in the art. The buffer flow attack takes advantage of the flaw in checking the size of the inputs stored in the buffer array. An array is a storage device that is predetermined and arranged in a computer system. By deliberately writing data past the end of the allocated array, an attacker may arbitrarily alter the data stored adjacent to the array. The most shared data structure that is adversely affected in this way is the stack. Therefore, this type of attack is also known as stack destruction.

【0008】 バッファフローの利用の一般的な方法は、スタック上に割り当てられたバッフ
ァを攻撃することである。そのような攻撃は、相互に依存した2つの目的を達成
することを試みる。1つ目の目的とは、攻撃された装置に対して実行可能なバイ
ナリコードの形式で攻撃コードを挿入することである。もう一つの目的は、前記
スタックメモリー内に今存在する攻撃者の提供したコードを指し示している戻り
アドレスを変えることである。そのような攻撃者の提供したコードは前記コンピ
ュータシステムに対する強められた権限を取得することに利用されてしまうかも
しれない。
A common method of exploiting buffer flow is to attack the buffers allocated on the stack. Such attacks attempt to achieve two interdependent goals. The first purpose is to insert the attack code in the form of executable binary code into the attacked device. Another purpose is to change the return address that points to the attacker-provided code that currently exists in the stack memory. The code provided by such an attacker may be used to gain enhanced privileges on the computer system.

【0009】 この技術を使用して攻撃されたプログラムは、本質的なサービスを実行する基
となるユーザIDの下で動作する、常に高い権限のユーティリティやデーモンで
ある。成功したバッファフロー攻撃の効果は、攻撃者に不正なルート権限を与え
てしまうことである。コンピュータシステムのルート権限を得ることは、不正ユ
ーザに権限下にあるリソースへのアクセスを許可することである。
A program attacked using this technique is a utility or daemon with a constantly high privilege that operates under the user ID that is the basis for executing essential services. The effect of a successful bufferflow attack is to give the attacker unauthorized root privileges. Obtaining root privileges on a computer system is allowing unauthorized users access to the resources under their control.

【0010】 オーバーフローしているデータ列の最大長はスタックの現状の深さのだけであ
るので、挿入された攻撃コードは、コード長に関して不足するであろう。スタッ
クの制限外でデータを書き込むことは、攻撃コードの実行を防止する異常な状態
になる結果を招くだろう。したがって、バッファオーバーフロー攻撃者は、短い
コードを強制的に書き込み、高レベルのシステムコールやライブラリコールを使
用しなければならないだろう。そのようなコールは、権限下のリソースへアクセ
スするための不正に強化された権限を得るために、後ほど利用されるだろう。
Since the maximum length of the overflowing data string is only the current depth of the stack, the inserted attack code will be insufficient in terms of code length. Writing data outside the stack limits will result in an abnormal condition that prevents the execution of attack code. Therefore, a buffer overflow attacker would have to force the writing of short code and use high-level system and library calls. Such a call will later be used to obtain an illegally enhanced privilege to access a resource under privilege.

【0011】 バッファオーバーフローという弱点を解決する試みのいくつかの方法が、当業
者間で知られている。1つの方法は、過去のスタックセグメントアレイを書き込
むことからコンピュータプログラムを禁止するために設計されたコンパイラを設
計することである。別の方法は、オフラインでバッファオーバーフローに弱いプ
ログラムを検出したり、システム権限を危うくする可能性のあるユーザを警戒す
ることである。
Several methods of attempting to overcome the buffer overflow vulnerability are known to those skilled in the art. One Way to Write Past Stacked Segment Arrays
It is to design a compiler designed to prohibit computer programs from being compromised. Another method is to detect programs that are vulnerable to buffer overflows offline and be vigilant to users who may compromise system privileges.

【0012】 別の知られた方法は、修復プログラムを使用することである。修復プログラム
は、バッファオーバーフローという弱点を利用するために使用され得るそれらの
弱いプログラムを修復及び回復する。以上のことは、コンピュータシステムでシ
ステムまたはその他のコールの制御された実行を通して、バッファオーバーフロ
ーの防止の方法や装置ではない。
Another known method is to use a repair program. Repair programs repair and recover those weak programs that can be used to exploit the weakness of buffer overflow. The above is not a method or apparatus for buffer overflow prevention through the controlled execution of system or other calls in a computer system.

【0013】[0013]

【発明の開示】DISCLOSURE OF THE INVENTION

このように、コンピュータシステムで不正な、または違法なアクセスを試みを
検出し防止する切実な必要性がある。特に、コンピュータシステム内で発生した
システム及びその他のコールを有効性を確認することによってコンピュータシス
テムの弱点であるバッファオーバーフローを利用する試みのを検出したり防止し
たりする方法である。
Thus, there is a compelling need to detect and prevent unauthorized or illegal access attempts in computer systems. In particular, it is a method of detecting and preventing attempts to exploit buffer overflow, which is a weakness of computer systems, by validating system and other calls made within the computer system.

【0014】 したがって、高レベルのシステムコール、ライブラリコール、アプリケーショ
ンプログラムインターフェースコールなどのコールが違法に発生したとき、その
ようなコールの実行を防止することによって、誘発したバッファオーバーフロー
攻撃を防止する方法を提供することが、この発明の目的である。
Therefore, when a high-level system call, a library call, an application program interface call, or the like is illegally made, a method for preventing the induced buffer overflow attack by preventing the execution of such a call is provided. It is an object of the invention to provide.

【0015】 したがって、高レベルのシステムコール、ライブラリコール、アプリケーショ
ンプログラムインターフェースコールなどのコールがコンピュータシステム内の
不正な領域から発生したとき、そのようなコールの実行を防止することによって
、誘発したバッファオーバーフロー攻撃を防止する方法を提供することが、この
発明の別の目的である。
Therefore, when a high-level system call, a library call, an application program interface call, or the like originates from an illegal area in the computer system, a buffer overflow is induced by preventing the execution of such call. It is another object of the invention to provide a method of preventing attacks.

【0016】 したがって、高レベルのシステムコール、ライブラリコール、アプリケーショ
ンプログラムインターフェースコールのコールが、前記呼び出されたシステム及
びその他のコールと関連付けされたユーザプロセスの外側から発生するとき、そ
のようなコールの実行を防止することによって、誘発したバッファオーバーフロ
ー攻撃を防止する方法を提供することが、この発明のさらなる目的である。
Thus, when a call to a high level system call, library call, application program interface call occurs from outside a user process associated with the called system and other calls, execution of such call. It is a further object of the invention to provide a method of preventing induced buffer overflow attacks by preventing

【0017】 したがって、本発明の好ましい実施例によると、オペレーティングシステムプ
ラットフォームを動作させるコンピュータシステムでの安全機能実行の方法や、
カーネル空間及びプロセス空間を含んでいる前記オペレーティングシステムや、
プロセス空間で動作しているユーザアプリケーションを含んでいる前記プロセス
空間や、システムコールを阻害するために動作する前記ユーザアプリケーション
や、前記阻害されたシステムコールが発生しているアドレスと、前記阻害された
システムコールが発生し前記阻害されたシステムコールの有効性に関する通知を
提供する前記プロセスと関連付けられているプロセス有効アドレスの範囲とを比
較することによって前記阻害されたシステムコールの有効性を検査するステップ
を構成している前記方法、または前記阻害されたシステムコールを終了させるこ
とを提供するものである。
Therefore, according to a preferred embodiment of the present invention, a method of performing a safety function in a computer system running an operating system platform,
The operating system including kernel space and process space;
The process space containing a user application running in a process space, the user application running to block a system call, the address at which the blocked system call is generated, and the blocked Inspecting the effectiveness of the inhibited system call by comparing the process with a range of process effective addresses associated with the process where a system call occurs and provides notification of the effectiveness of the inhibited system call. And terminating the inhibited system call.

【0018】 したがって、本発明の好ましい実施例によると、オペレーティングシステムプ
ラットフォームを動作させるコンピュータシステムでの安全機能実行の方法や、
カーネル空間及びプロセス空間を含んでいる前記オペレーティングシステムや、
プロセス空間で動作しているユーザアプリケーションを含んでいる前記プロセス
空間や、システムコールを阻害するために動作する前記ユーザアプリケーション
や、前記阻害されたシステムコールが発生しているアドレスと、前記阻害された
システムコールが発生しアプリケーションプログラムインターフェース阻害モジ
ュールを前記生成したプロセスへ挿入するプロセス生成に応答したり、プロセス
有効アドレステーブルを更新するプロセス生成に応答したり、またはプロセス有
効アドレステーブルを更新するプロセス終了に応答したりする前記プロセスと関
連付けられているプロセス有効アドレスの範囲とを比較することによって前記阻
害されたシステムコールの有効性を検査するステップを構成している前記方法を
提供するものである。
Therefore, according to a preferred embodiment of the present invention, a method of performing a safety function in a computer system running an operating system platform,
The operating system including kernel space and process space;
The process space containing a user application running in a process space, the user application running to block a system call, the address at which the blocked system call is generated, and the blocked When a system call occurs and the application program interface obstruction module is inserted into the created process, the process is responded to, the process effective address table is updated, or the process effective address table is updated. Providing the method comprising the step of checking the validity of the interrupted system call by comparing a range of process effective addresses associated with the process responding or responding.

【0019】 本発明の別の好ましい実施例によると、オペレーティングシステムプラットフ
ォームを動作させるコンピュータシステムでの安全機能実行の方法や、カーネル
空間及びプロセス空間を含んでいる前記オペレーティングシステムや、プロセス
空間で動作しているユーザアプリケーションを含んでいる前記プロセス空間や、
ライブラリコールを阻害するために動作する前記ユーザアプリケーションや、前
記阻害されたライブラリコールが発生しているアドレスと、前記阻害されたライ
ブラリコールが発生し前記阻害されたライブラリコールの有効性に関する通知を
提供し、または前記阻害されたライブラリコールを終了させる前記プロセスと関
連付けられているプロセス有効アドレスの範囲とを比較することによって前記阻
害されたライブラリコールの有効性を検査するステップを構成している前記方法
を提供するものである。
According to another preferred embodiment of the present invention, a method of performing a safety function in a computer system running an operating system platform, the operating system including kernel space and process space, and operating in the process space. The process space containing the user application
Provides notification of the user application that operates to inhibit a library call, the address where the inhibited library call is occurring, and the effectiveness of the inhibited library call when the inhibited library call occurs Or checking the effectiveness of the inhibited library call by comparing the range of process effective addresses associated with the process that terminates the inhibited library call. Is provided.

【0020】 本発明の別の好ましい実施例によると、オペレーティングシステムプラットフ
ォームを動作させるコンピュータシステムでの安全機能実行の方法や、カーネル
空間及びプロセス空間を含んでいる前記オペレーティングシステムや、プロセス
空間で動作しているユーザアプリケーションを含んでいる前記プロセス空間や、
ライブラリコールを阻害するために動作する前記ユーザアプリケーションや、前
記阻害されたライブラリコールが発生しているアドレスと、阻害されたライブラ
リコールが発生させた、ダイナミックリンクライブラリと関連付けられているラ
イブラリルーチンを接続して継ぎを当てるダイナミックリンクライブラリをロー
ドするシステムコールに応答し、プロセス有効アドレステーブルを更新するダイ
ナミックリンクライブラリをアンロードするシステムコールに応答したりする前
記プロセスと関連付けられているプロセス有効アドレスの範囲とを比較すること
によって前記阻害されたライブラリコールの有効性を検査するステップを構成し
ている前記方法を提供するものである。
According to another preferred embodiment of the present invention, a method of performing a safe function in a computer system running an operating system platform, the operating system including kernel space and process space, and operating in the process space. The process space containing the user application
Connects the user application that operates to block the library call, the address where the blocked library call is generated, and the library routine associated with the dynamic link library that is generated by the blocked library call Respond to a system call that loads the dynamic link library and unloads the dynamic link library that updates the process effective address table. A range of process effective addresses associated with the process. Providing the method comprising the step of testing the effectiveness of the inhibited library call by comparing

【0021】 本発明の別の好ましい実施例によると、オペレーティングシステムプラットフ
ォームを動作させるコンピュータシステムでの安全機能実行の方法や、カーネル
空間及びプロセス空間を含んでいる前記オペレーティングシステムや、プロセス
空間で動作しているユーザアプリケーションを含んでいる前記プロセス空間や、
システム及び関数コールに対して動作する前記ユーザアプリケーションや、阻害
された前記システムまたは関数コール、前記プロセス記憶装置から呼び出し側ル
ーチン戻りアドレスを受け取るステップを構成する前記方法、前記呼び出し側ア
ドレスルーチンとプロセス有効アドレステーブルとを比較し、前記呼び出し側ル
ーチン戻りアドレスの有効性に関する通知を提供し、または前記呼び出し側ルー
チンアドレスの有効性に関連付けられたユーザが予め決めた動作を実行すること
によって、呼び出し側ルーチンアドレスが有効かどうかを判断することを提供す
るものである。さらに、前記呼び出し側ルーチンアドレスに先行するアドレスを
決定することによって前記呼び出し側ルーチン呼び出しアドレスを決定するステ
ップを構成する同様の方法がある。
According to another preferred embodiment of the present invention, a method of performing a safety function in a computer system running an operating system platform, the operating system including a kernel space and a process space, and operating in the process space. The process space containing the user application
The user application operating on system and function calls, the blocked system or function call, the method comprising the step of receiving a caller routine return address from the process store, the caller address routine and process enable The calling routine by comparing with an address table, providing notification as to the validity of the calling routine return address, or performing a user predetermined action associated with the validity of the calling routine address. It provides to determine if the address is valid. Further, there is a similar method that comprises the step of determining the calling routine call address by determining an address preceding the calling routine address.

【0022】 本発明の別の好ましい実施例によると、オペレーティングシステムプラットフ
ォームを動作させるコンピュータシステムの安全機能実行の方法や、カーネル空
間及びプロセス空間を含んでいる前記オペレーティングシステムや、プロセス空
間で動作しているユーザアプリケーションを含んでいる前記プロセス空間や、シ
ステム及び関数コールに対して動作する前記ユーザアプリケーションや、阻害さ
れた前記システムまたは関数コール、前記プロセス記憶装置から呼び出し側ルー
チン戻りアドレスを受け取るステップを構成する前記方法、前記呼び出し側アド
レスルーチンと関連づいたプロセススタックアドレス領域とを比較し、前記呼び
出し側ルーチン戻りアドレスの有効性に関する通知を提供し、または前記呼び出
し側ルーチンアドレスの有効性に関連付けられたユーザが予め決めた動作を実行
することによって、呼び出し側ルーチンアドレスが有効かどうかを判断すること
を提供するものである。さらに、前記プロセス記憶装置から呼び出し側ルーチン
戻りアドレスを受け取るステップの同様の方法は、前記呼び出し側ルーチンアド
レスに先行するアドレスを決定することによって前記呼び出し側ルーチン呼び出
しアドレスを決定するステップを構成する。
According to another preferred embodiment of the present invention, a method of performing a safety function of a computer system operating an operating system platform, the operating system including a kernel space and a process space, and operating in the process space. Configuring a step of receiving a calling routine return address from the process space containing a user application, the user application operating on a system and function call, the blocked system or function call, and the process storage device. Comparing the caller address routine with the associated process stack address area, providing notification as to the validity of the caller routine return address, or the caller routine. It is provided that the user associated with the validity of the chin address performs a predetermined action to determine if the calling routine address is valid. Further, a similar method of receiving a calling routine return address from the process memory comprises determining the calling routine call address by determining an address preceding the calling routine address.

【0023】[0023]

【発明を実施するための最良の形態】BEST MODE FOR CARRYING OUT THE INVENTION

本発明は、新しい方法を提供することにより従来技術の欠点を克服するもので
ある。
The present invention overcomes the deficiencies of the prior art by providing a new method.

【0024】 その新しい方法とは、バッファオーバーフローという弱点を利用する試みが、
コンピュータ化されたシステム内部のシステムまたはその他のコールの使用を有
効にすることによって起こっているかどうかを検出するものである。
The new method is an attempt to utilize the weak point of buffer overflow.
It detects if it is happening by enabling the use of the system or other calls within the computerized system.

【0025】 それでは、図1を参照されたい。この図は、安全機能実行システムが動作して
いるシステム環境の略図であり、概してシステム100として参照され、そして
本発明の好ましい実施形態に関するものを提供するものである。
Now refer to FIG. This figure is a schematic representation of a system environment in which a safety function execution system is operating, generally referred to as system 100, and provides for preferred embodiments of the present invention.

【0026】 本発明は1999年11月14に出願されたイスラエル国特許出願番号XXX
XXXX「アプリケーションプログラムインターフェースを阻害する方法および
システム」に関連するものである。
This invention was filed on November 14, 1999 in Israel Patent Application No. XXX
It relates to XXX “Methods and Systems for Inhibiting Application Program Interfaces”.

【0027】 イスラエル国特許出願番号XXXXXXXでさらに詳述されているが、図1の
システム100は安全機能実行システムの以下に示す4つの構成要素より成り立
っている。
As further detailed in Israel Patent Application No. XXXXXXXXX, the system 100 of FIG. 1 comprises the following four components of a safety function execution system:

【0028】 a)安全機能実行システムサーバー116は、アクティブコンポーネントであ
る。安全機能実行サーバー116は、安全機能実行システム100の動作をする
上で中心的なコンポーネントである。安全機能実行システム116はシステムコ
ール阻害コンポーネント124をロードして制御し、また、API阻害モジュー
ル134,140,146をロードして制御し、また、様々なシステム及びライ
ブラリコールに応答し、ユーザへのインターフェースとして動作する。安全機能
実行サーバー116は、コンピュータシステムのユーザ空間記憶装置112へロ
ードされる。安全機能実行サーバー116は、イスラエル国特許出願番号XXX
XXXXで詳述されているAPI阻害制御サーバーオペレーションを組み込んで
いる。
A) The security function execution system server 116 is an active component. The safety function execution server 116 is a central component in operating the safety function execution system 100. The safety function execution system 116 loads and controls the system call blocking component 124 and also loads and controls the API blocking modules 134, 140, 146, and responds to various system and library calls to the user. Operates as an interface. The security function execution server 116 is loaded into the user space storage device 112 of the computer system. The security function execution server 116 has an Israel patent application number XXX.
It incorporates the API inhibition control server operation detailed in XXX.

【0029】 b)API阻害モジュール134,140,146などは、アクティブコンポ
ーネントである。API阻害モジュール134,140,146などの動作は、
イスラエル国特許出願番号XXXXXXXで詳述されている。API阻害モジュ
ール134、140、146などは、ディスパッチルーチン、デパッチルーチン
、フック及びパッチルーチン、プリエントリルーチン、及びポストエントリルー
チンから構成されている。前記ルーチンの動作も、またイスラエル国特許出願番
号XXXXXXXで詳述されている。
B) API inhibition modules 134, 140, 146, etc. are active components. The operation of the API inhibition modules 134, 140, 146, etc.
This is detailed in Israeli Patent Application No. XXXXXXXXX. The API inhibition modules 134, 140, 146, etc. are composed of a dispatch routine, a depatch routine, a hook and patch routine, a pre-entry routine, and a post-entry routine. The operation of the routine is also detailed in Israel Patent Application No. XXXXXXXXX.

【0030】 c)システムコール阻害コンポーネント124は、アクティブコンポーネント
である。システムコール阻害コンポーネント124の動作は、イスラエル国特許
出願番号XXXXXXXで詳述されている。
C) The system call blocking component 124 is an active component. The operation of the system call block component 124 is detailed in Israel Patent Application No. XXXXXXXXX.

【0031】 d)APIルーチン132,138,144などは、受動的なコンポーネント
である。APIルーチン132,138,144などは、安全機能実行システム
100が動作する上で潜在的なオブジェクトである。APIルーチン132,1
38,144などは、システム100のユーザ記憶装置112にあるプロセスア
ドレス空間記憶装置118,120,122などへロードされる。
D) API routines 132, 138, 144, etc. are passive components. The API routines 132, 138, 144, etc. are potential objects for the safety function execution system 100 to operate. API routine 132,1
38, 144, etc. are loaded into the process address space stores 118, 120, 122 etc. in the user store 112 of the system 100.

【0032】 以前にイスラエル国特許出願番号XXXXXXXで詳述されているシステム1
00は、本発明が動作している安全機能実行システムのモデルとして役立つ。本
発明が多方面の同様のシステムの下で動作し、ここに示されているシステムが本
発明の働きをさらに証明するための1例であるということは、当業者によって理
解されるだろう。
System 1 previously detailed in Israel Patent Application No. XXXXXX
00 serves as a model of the safety function execution system in which the present invention is operating. It will be appreciated by those skilled in the art that the present invention operates under a variety of similar systems and that the system shown here is an example to further demonstrate the workings of the invention.
Will be understood.

【0033】 図2を参照されたい。この図は、安全機能実行サーバー116の動作の高レベ
ルの流れ図を提供するものである。安全機能実行サーバー116は、以前にイス
ラエル国特許出願番号XXXXXXXで詳述された。前記安全機能実行サーバー
116の動作は、ここで要約して説明する。
Please refer to FIG. This figure provides a high level flow chart of the operation of the security function execution server 116. The security function execution server 116 was previously detailed in Israel Patent Application No. XXXXXXXXX. The operation of the security function execution server 116 will be summarized and described herein.

【0034】 安全機能実行(このドキュメントの本文のこの点から省略してSFEとする)
サーバー116は、ステップ150でアプリケーションを初期化する。したがっ
て、SFEサーバー116は、ホストオペレーティングシステム(ステップ15
2)で動作する様々なアプリケーションによって発生したシステムコールを常に
監視し、及び図4に詳述しているように前記システムコール(ステップ154)
に適切に応答することによってステップ152のその実行動作を開始する。SF
Eサーバーは、またホストオペレーティングシステム(ステップ156)で動作
している様々なアプリケーションにより発生したライブラリコールを常に監視し
ている。SFEサーバーは、図5で詳述しているように前記ライブラリコールに
適切に応答している。
Safety function execution (abbreviated from this point in the text of this document as SFE)
The server 116 initializes the application in step 150. Therefore, the SFE server 116 is configured by the host operating system (step 15
2. Always monitor the system calls made by the various applications running in 2) and, as detailed in FIG. 4, said system calls (step 154).
The execution of step 152 begins by responding appropriately to. SF
The EServer also keeps track of library calls made by various applications running on the host operating system (step 156). The SFE server is properly responding to the library call as detailed in FIG.

【0035】 ここで図3を参照されたい。この図は、図2のステップ150として参照され
ているSFEサーバー116の開始動作の高レベルの流れ図を提供するものであ
る。SFEサーバー116の開始動作は、以前にイスラエル国特許出願番号XX
XXXXXで詳述された。
Reference is now made to FIG. This figure provides a high level flow chart of the start operation of the SFE server 116 referenced as step 150 in FIG. The start operation of the SFE server 116 was previously performed in Israel Patent Application No. XX
Detailed in XXXXXX.

【0036】 最初に、SFEサーバー116は、システムコール阻害コンポーネント124
をカーネル空間記憶装置114(ステップ184)へロードする。システムコー
ル阻害コンポーネント124との交信の確立後、SFEサーバー116はアクテ
ィブプロセス118,120,122など(ステップ186)のリストに対して
システムコール阻害コンポーネント124を問い合わせる。前記アクティブプロ
セス118,120,122などのリストを使用したとき、SFEサーバー11
6はそれぞれのアクティブプロセス118,120,122などに対する有効な
アドレスレンジのリストを作成する。この構造は本ドキュメントの本文でプロセ
ス有効アドレスレンジとして、この点から参照されるだろう。
First, the SFE server 116 uses the system call blocking component 124.
Is loaded into kernel space storage 114 (step 184). After establishing contact with the system call block component 124, the SFE server 116 queries the list of active processes 118, 120, 122, etc. (step 186) for the system call block component 124. When using the list of active processes 118, 120, 122, etc., the SFE server 11
6 creates a list of valid address ranges for each active process 118, 120, 122, etc. This structure will be referred to in this regard as the process effective address range in the body of this document.

【0037】 プロセス有効アドレスレンジリストは、プロセス118,120,122など
がロードされている場所にアドレスレンジを保持する。プロセス有効アドレスレ
ンジは、また様々なダイナミックリンクライブラリ(DLL)130,136,
142などがロードされた場所に全てのアドレスレンジを保持する。ダイナミッ
クリンクライブラリは、呼び出し可能なサブルーチンを利用するアプリケーショ
ンによって動的にロードされることが可能なバイナリイメージとしてリンクされ
た呼び出し可能な1組のサブルーチンである。
The process effective address range list holds an address range in a place where the processes 118, 120, 122, etc. are loaded. The process effective address range also includes various dynamic link libraries (DLL) 130, 136,
Hold all address ranges in places where 142 etc. are loaded. A dynamic link library is a set of callable subroutines linked as a binary image that can be dynamically loaded by an application that utilizes callable subroutines.

【0038】 最後に、SFEサーバーは、イスラエル国特許出願番号XXXXXXXで詳述
されているように、すべてのアクティブプロセス118,120,122など(
ステップ19)に対して、API阻害モジュール134,140,146などを
挿入する。
Finally, the SFE server is responsible for all active processes 118, 120, 122, etc. (as detailed in Israeli patent application number XXXXXXXXX).
For step 19), the API inhibition modules 134, 140, 146, etc. are inserted.

【0039】 図2のステップ152でシステムコールの監視をするSFEサーバー動作は、
イスラエル国特許出願番号XXXXXXXで詳述されている。 それでは、図4に移ろう。図4では、図2のステップ154として参照される
ように、阻害されたシステムコールに対するSFEサーバーなどの応答の高レベ
ルな流れ図である。SFEサーバー116は、検出されたシステムコールが違法
なコールか、合法なコールかどうかをステップ160で判断する。前記システム
コール生成アドレスと前記システムコールが生成した前記プロセスに関連づいて
いるプロセス有効アドレスの範囲とを比較することで前記システムコールが有効
かどうかをSFEサーバーは判断する。もし、違法なコールが検出されたなら、
SFEサーバー116は違法な関数(ステップ164)を終了させる。あるいは
、SFEサーバー116は、違法なコール(ステップ166)についてユーザ(
通常はシステム管理者)に通知する。あるいは、SFEサーバー116は、別の
またはその他の一連のユーザが予め決めたアクションを実行する。もし、検出さ
れたシステムコールが合法(ステップ160)であるなら、SFEサーバー11
6は、それがプロセス生成(ステップ162)のタイプかどうかを判断するため
に、前記システムコールを検査する。もし、プロセス生成のタイプのシステムコ
ールが決定された場合、SFEサーバー116は新しく生成されたプロセスアド
レス空間118(ステップ168)に対してAPI阻害モジュール134を挿入
し、前記プロセスアドレスリストをプロセス有効アドレスレンジに追加すること
によってプロセス有効アドレスレンジリスト(ステップ170)を更新する。も
し、ステップ162での決定が否定的であるなら、SFEサーバーは随意的に他
のどれよりもユーザが予め決めたまたは命令したアクションを実行する。もし、
プロセス終了のタイプのシステムコールが決定された場合、SFEサーバー11
6はプロセス有効アドレスレンジリストから前記プロセス有効アドレスを削除す
ることによりプロセス有効アドレスレンジリスト(ステップ171)を更新する
The SFE server operation for monitoring the system call in step 152 of FIG.
This is detailed in Israeli Patent Application No. XXXXXXXXX. Let's move on to Fig. 4. 4, which is a high level flow chart of a response, such as an SFE server, to an interrupted system call, referenced as step 154 of FIG. The SFE server 116 determines in step 160 whether the detected system call is an illegal call or a legal call. The SFE server determines whether the system call is valid by comparing the system call generation address with a range of process valid addresses associated with the process generated by the system call. If an illegal call is detected,
SFE server 116 terminates the illegal function (step 164). Alternatively, the SFE server 116 may prompt the user () for the illegal call (step 166).
Notify the system administrator). Alternatively, the SFE server 116 performs another or other set of user predetermined actions. If the detected system call is legal (step 160), the SFE server 11
6 examines the system call to determine if it is the type of process creation (step 162). If a process creation type system call is determined, the SFE server 116 inserts the API blocking module 134 into the newly created process address space 118 (step 168) and adds the process address list to the process effective address. Update the process effective address range list (step 170) by adding to the range. If the determination at step 162 is negative, the SFE server optionally performs a user predetermined or commanded action over any other. if,
When a process termination type system call is determined, the SFE server 11
6 updates the process effective address range list (step 171) by deleting the process effective address from the process effective address range list.

【0040】 図2のステップ156でライブラリコールを監視しているSFEサーバーの動
作は、米国国特許出願番号XXXXXXXで詳述されている。 ここで、図5に移ろう。図5では、図2のステップ158として参照される阻
害されたライブラリコールに対するSFEサーバーなどの応答の高レベルな流れ
図である。SFEサーバー116は、検出されたライブラリコールが違法なコー
ルかどうかをステップ172で判断する。前記ライブラリコール生成アドレスと
前記ライブラリコールが生成した前記プロセスに関連づいているプロセス有効ア
ドレスの範囲とを比較することで前記ライブラリコールが有効かどうかを、SF
Eサーバーは判断する。もし、違法なコールが検出されたら、SFEサーバー1
16は、随意的に、違法なライブラリ関数(ステップ180)を終了させる。あ
るいは、SFEサーバー116はユーザ(通常はシステム管理者)(ステップ1
82)に通知する。あるいは、SFEサーバー116は、他のどれよりもユーザ
が予め決めたまたは命令したアクション(ステップ182)を実行する。
The operation of the SFE server monitoring the library calls in step 156 of FIG. 2 is detailed in US patent application number XXXXXXXXX. Now, let's move to FIG. FIG. 5 is a high level flow chart of the response of the SFE server or the like to the blocked library call referenced as step 158 in FIG. The SFE server 116 determines in step 172 whether the detected library call is an illegal call. By comparing the library call generation address with the process effective address range associated with the process generated by the library call, it is determined whether the library call is valid or not.
The E server judges. If an illegal call is detected, SFE server 1
16 optionally terminates the illegal library function (step 180). Alternatively, the SFE server 116 may be a user (typically a system administrator) (step 1
82). Alternatively, SFE server 116 performs a user predetermined or ordered action (step 182) more than any other.

【0041】 もし、検出させたライブラリコールが合法的(ステップ172)であるなら、
SFEサーバー116は前記ライブラリコールがDLL130ロード(ステップ
174)のタイプであるかどうかを判断する。もし、ステップ174での決定が
肯定的であるなら、前記ロードされたDLL130内に存在するライブラリコー
ル(APIs)132を接続して継ぎを当てる。そのような接続して継ぎを当て
ることは、イスラエル国特許出願 でより詳述されている。接
続して継ぎを当てた後、前記関連付けられたプロセス118に既にロードされた
前記API阻害モジュール134は、前記ライブラリコール132に対してされ
たコールを阻害するためにすぐに動作する。ライブラリコールがDLLロードS
FEサーバータイプであるとされた場合DLLアドレスレンジをプロセス有効ア
ドレスレンジリストへ追加することによってプロセス有効アドレスレンジリスト
(ステップ178)を更新する。もし、ステップ172の決定が否定的であるな
ら、阻害されたライブラリコールがプロセス有効アドレスレンジリストからDL
Lアドレスレンジを削除することによってアンロードされたDLL(ステップ1
76)タイプであるかどうかを判断する。ライブラリコールがDLLアンロード
SFEサーバーのタイプであると決定されるとき、プロセス有効アドレスレンジ
リスト(ステップ178)を更新する。
If the detected library call is legal (step 172),
The SFE server 116 determines whether the library call is a DLL 130 load (step 174) type. If the determination at step 174 is affirmative, then the library calls (APIs) 132 present in the loaded DLL 130 are connected and patched. Applying such a connection and splicing is an Israeli patent application More on. After connecting and splicing, the API blocking module 134 already loaded in the associated process 118 will immediately act to block the call made to the library call 132. Library call is DLL load S
If the FE server type is assumed, the process valid address range list (step 178) is updated by adding the DLL address range to the process valid address range list. If the determination at step 172 is negative, the blocked library call is DL from the process effective address range list.
DLL unloaded by deleting L address range (step 1
76) Judge whether the type. When the library call is determined to be the type of DLL unload SFE server, the process valid address range list (step 178) is updated.

【0042】 それでは、図6を参照されたい。図6では、呼び出しアドレス確認ルーチンモ
ジュールの動作の高レベルの流れ図である。呼び出しアドレス確認ルーチンモジ
ュールは、イスラエル国特許出願番号XXXXXXXでより詳述されているよう
にAPI阻害モジュールプリエントリルーチンと連結して動作する。
Now refer to FIG. FIG. 6 is a high level flow chart of the operation of the call address verification routine module. The call address verification routine module operates in conjunction with the API inhibit module pre-entry routine as described in more detail in Israeli Patent Application No. XXXXXXX.

【0043】 図1のAPI132などが阻害されたとき、プリエントリルーチンは動作する
。SFEシステム100プリエントリルーチンの下で動作するとき、呼び出しア
ドレス確認ルーチンモジュールは、図1の呼び出しアドレス(呼び出し側ルーチ
ン)のAPI関数132を確認するように設計された一組の命令を実行している
。呼び出し側ルーチンは、また呼び出し側アプリケーションプログラムインター
フェース、呼び出し側システムコール、呼び出し側ライブラリコールなどを含ん
でいる。
The pre-entry routine operates when the API 132 of FIG. 1 is blocked. When operating under the SFE system 100 pre-entry routine, the calling address verification routine module executes a set of instructions designed to verify the API function 132 of the calling address (calling routine) of FIG. There is. Calling routines also include calling application program interfaces, calling system calls, calling library calls, and so on.

【0044】 呼び出しアドレス確認ルーチンモジュールは、ユーザスタックセグメント(ス
テップ191)上のプロシージャアクティベーションレコード(スタックフレー
ム)から呼び出し側ルーチン戻りアドレスを読み込むことによってその動作を開
始する。スタックフレームは、関数コールのための制御領域として使用されるプ
ロセススタックセグメントの動的領域である。プロセススタックセグメントは、
プロセスに属する動的記憶領域である。ステップ192では、呼び出し側ルーチ
ン呼び出しアドレスは、前記呼び出し側ルーチン呼び出しアドレスが有効なアド
レスレンジの制限内(ステップ194)にあるかどうかを検査するプロセス有効
アドレスレンジリストにあるデータの助けによって、呼び出し側ルーチン呼び出
しアドレスが計算される(ステップ192)。ステップ196では、呼び出しア
ドレスが有効か無効かを判断する。前記呼び出し側ルーチン呼び出しアドレスが
前記有効アドレスレンジの制限内にあるかどうかの計算をするために、前記呼び
出し側ルーチン呼び出しアドレスは、前記有効アドレスレンジ制限と一致する。
もし、前記呼び出し側ルーチン呼び出しアドレスが前記有効アドレスレンジ内に
あるなら、そのとき、呼び出し側ルーチン呼び出しアドレスは有効である。つぎ
に、プリエントリルーチン等による呼び出しアドレス確認ルーチンモジュールが
、テスト結果(ステップ198とステップ200)についてSFEサーバー11
6等に通知する。
The calling address confirmation routine module starts its operation by reading the calling routine return address from the procedure activation record (stack frame) on the user stack segment (step 191). The stack frame is a dynamic area of the process stack segment used as a control area for function calls. The process stack segment is
A dynamic storage area belonging to a process. In step 192, the calling routine calling address is called with the aid of data in the process effective address range list which checks whether the calling routine calling address is within the limits of the valid address range (step 194). The routine call address is calculated (step 192). In step 196, it is determined whether the calling address is valid or invalid. The calling routine call address matches the effective address range limit to make a calculation as to whether the calling routine call address is within the effective address range limit.
If the calling routine call address is within the valid address range, then the calling routine call address is valid. Next, the calling address confirmation routine module by the pre-entry routine or the like uses the SFE server 11 for the test result (step 198 and step 200).
Notify 6th grade.

【0045】 説明した本発明のこの実施例で、図1のアクティブプロセスアドレス空間記憶
装置118,120,122などのうちの記憶領域から発生するあらゆる不正や
違法なシステムコールまたはライブラリコールは検出され、随意的にそれらの実
行は、SFEシステム100によって防止されるということは、当業者によって
理解されるだろう。
In this embodiment of the invention described, any fraudulent or illegal system or library calls originating from storage areas such as active process address space storage 118, 120, 122 of FIG. 1 are detected, It will be appreciated by those skilled in the art that their implementation is optionally prevented by the SFE system 100.

【0046】 それでは、図7を参照されたい。図7は本発明の別の実施例に関連する呼び出
しアドレス確認ルーチンの高レベルの流れ図である。 実施例の中で、その呼び出しアドレス確認ルーチンモジュールは、プロセスス
タックセグメント(ステップ202)上のプロシージャアクティベーションレコ
ード(スタックフレーム)から呼び出し側戻りアドレスを読み込むことによって
その動作を開始する。呼び出し側ルーチン戻りアドレスの読み込みは、著しく速
くなり、より正確になるということが理解されるだろう。ステップ204では、
呼び出し側ルーチン呼び出しアドレスは計算され、呼び出しアドレスがプロセス
スタックセグメント(ステップ206)のアドレス制限の内側かどうかを判断す
るためのシステムレベル構造の助けによって検査する。そのような判断は、前記
呼び出し側ルーチン呼び出しアドレスと前記プロセススタックセグメントのアド
レス制限とを比較することによって達成される。次に、プリエントリルーチンな
どによる呼び出しアドレス確認ルーチンモジュールは検査結果(ステップ210
とステップ212)についてSFEサーバー116などに通知する。
Now refer to FIG. FIG. 7 is a high level flow chart of a call address verification routine associated with another embodiment of the present invention. In the preferred embodiment, the call address verification routine module begins its operation by reading the caller return address from the procedure activation record (stack frame) on the process stack segment (step 202). It will be appreciated that reading the calling routine return address will be significantly faster and more accurate. In step 204,
The calling routine call address is calculated and checked with the help of system level structures to determine if the call address is within the address limits of the process stack segment (step 206). Such a determination is accomplished by comparing the calling routine call address with the address limit of the process stack segment. Next, the calling address confirmation routine module by the pre-entry routine or the like checks the inspection result (step 210
And the step 212) is notified to the SFE server 116 or the like.

【0047】 さらなる発明の実施例では、プロセススタックセグメント構造から発生するあ
らゆる不正または違法のシステム及びライブラリコールは、検出され、随意的に
SFEシステム100によって防止されるということは、当業者によって理解さ
れるだろう。
It will be appreciated by those skilled in the art that, in further inventive embodiments, any illegal or illegal system and library calls originating from the process stack segment structure will be detected and optionally prevented by the SFE system 100. Will

【0048】 さらに付け加えると、利点は当業者が容易に思いつくことでだろう。したがっ
て、より大きな概念での本発明は、特別な詳細、代表的な方法、示されたり説明
されたりしているシステムや例に対する制限はない。本発明は、特に上記で示し
たり説明したりしていることについて制限はない。出願発明の全般的な概念の範
囲と特許請求の範囲を「特許請求の範囲」欄に示す。
In addition, the advantages will be readily apparent to one of ordinary skill in the art. Therefore, the invention in its broader concept is not limited to the specific details, exemplary methods, systems and examples shown or described. The invention is not particularly limited to what has been shown and described above. The scope of the general concept of the invention as applied and the claims are shown in the "Claims" section.

【0049】 添付図面は、明細書の一部に組み込まれて構成され、発明の好ましい実施例を
説明し、また、説明も一緒にあり、発明の本質を説明するのに役立つものである
The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate preferred embodiments of the invention and together with the description, serve to explain the essence of the invention.

【図面の簡単な説明】[Brief description of drawings]

【図1】 概してシステム100として参照される安全機能実行システム環境のブロック
図である。
FIG. 1 is a block diagram of a safety function execution system environment, generally referred to as system 100.

【図2】 安全機能実行サーバー116動作の高レベルのフロー図である。[Fig. 2]   FIG. 6 is a high level flow diagram of the operation of the security function execution server 116.

【図3】 図2で参照されている安全機能実行サーバー初期化モジュールの動作の高レベ
ルのフロー図である。
FIG. 3 is a high level flow diagram of the operation of the secure function execution server initialization module referenced in FIG.

【図4】 図2で参照されている阻害されたシステムコールに対する安全機能実行サーバ
ー等応答の高レベルのフロー図である。
FIG. 4 is a high level flow diagram of a safety function performing server etc. response to the blocked system call referenced in FIG.

【図5】 図2で参照されている安全機能実行サーバー等ライブラリコール応答モジュー
ルの動作の高レベルのフロー図である。
5 is a high level flow diagram of the operation of the library call response module such as the secure function execution server referenced in FIG.

【図6】 呼び出しアドレス有効ルーチンモジュールの動作の高レベルのフロー図である
FIG. 6 is a high level flow diagram of the operation of the Call Address Valid Routine module.

【図7】 本発明の別の実施例に関連する呼び出しアドレス有効ルーチンモジュールの高
レベルのフロー図である。
FIG. 7 is a high level flow diagram of a call address enable routine module associated with another embodiment of the present invention.

───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE,TR),AU,C A,JP (72)発明者 ラーマン,オフィヤー アメリカ合衆国,カリフォルニア州 94040,ロス アルトス,ベン ロエ 1570番地 (72)発明者 ホルヴィッツ,オデッド イスラエル国,ハーゼルヤ 46325,ハガ ナ ストリート 43番地 Fターム(参考) 5B042 GA23 GA33 JJ29 JJ43 JJ46 JJ47 KK01 LA20 5B098 AA03 GA02 GA04 JJ03 JJ08─────────────────────────────────────────────────── ─── Continued front page    (81) Designated countries EP (AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, I T, LU, MC, NL, PT, SE, TR), AU, C A, JP (72) Inventor Rahman, Ofya             California, United States             94040, Los Altos, Ben Loe             1570 (72) Inventor Holwitz, Oded             Hazelya 46325, Haga, Israel             Na Street 43 F term (reference) 5B042 GA23 GA33 JJ29 JJ43 JJ46                       JJ47 KK01 LA20                 5B098 AA03 GA02 GA04 JJ03 JJ08

Claims (21)

【特許請求の範囲】[Claims] 【請求項1】 オペレーティングシステムプラットフォームを動作させてい
るコンピュータシステムにおいて、カーネル空間とプロセス空間を含んでいる前
記オペレーティングシステム、プロセス空間で動作しているユーザアプリケーシ
ョンを含んでいる前記プロセス空間、システムコールを阻害するために動作をす
る前記ユーザアプリケーション、安全機能実行の方法、前記阻害されたシステム
コール生成アドレスと前記阻害されたシステムコールが生成した前記プロセスに
関連付けられたプロセス有効アドレスの範囲とを比較することにより前記阻害さ
れたシステムコールの有効性を検査するステップを構成している前記方法。
1. A computer system operating an operating system platform, comprising: an operating system including a kernel space and a process space; a process space including a user application operating in the process space; and a system call. Comparing the user application acting to inhibit, a method of performing a safety function, the inhibited system call generation address and a range of process effective addresses associated with the process generated by the inhibited system call. The method thereby comprising the step of testing the effectiveness of the inhibited system call.
【請求項2】 さらに、前記阻害されたシステムコールの有効性に関する通
知を提供するステップを構成している請求項1記載の方法。
2. The method of claim 1, further comprising the step of providing a notification regarding the validity of the blocked system call.
【請求項3】 さらに、前記阻害されたシステムコールを終了させるステッ
プを構成している請求項1記載の方法。
3. The method of claim 1, further comprising terminating the blocked system call.
【請求項4】 さらに、前記阻害されたシステムコールを終了させるステッ
プを構成している請求項2記載の方法。
4. The method of claim 2, further comprising terminating the blocked system call.
【請求項5】 さらに、アプリケーションプログラムインターフェースモジ
ュールを前記生成したプロセスに挿入するプロセス生成に応答したり、プロセス
有効アドレステーブルを更新するプロセス生成に応答したりするステップを構成
している請求項1記載の方法。
5. The method according to claim 1, further comprising the step of responding to a process generation for inserting an application program interface module into the generated process and a process generation for updating a process effective address table. the method of.
【請求項6】 プロセス有効アドレステーブルを更新するプロセス終了に応
答するステップを構成している請求項1記載の方法。
6. The method of claim 1, comprising the step of responding to process termination updating the process effective address table.
【請求項7】 オペレーティングシステムプラットフォームを動作させてい
るコンピュータシステムにおいて、カーネル空間とプロセス空間を含んでいる前
記オペレーティングシステム、プロセス空間で動作しているユーザアプリケーシ
ョンを含んでいる前記プロセス空間、ライブラリコールを阻害するために動作を
する前記ユーザアプリケーション、安全機能実行の方法、前記阻害されたライブ
ラリコール生成アドレスと前記阻害されたライブラリコールが生成した前記プロ
セスに関連付けられたプロセス有効アドレスの範囲とを比較することにより前記
阻害されたライブラリコールの有効性を検査するステップを構成している前記方
法。
7. A computer system running an operating system platform, comprising: an operating system including a kernel space and a process space; a process space including a user application operating in the process space; and a library call. Comparing the user application operating to inhibit, a method of performing a safety function, the inhibited library call generation address and a range of process effective addresses associated with the process generated by the inhibited library call. Said method comprising the step of examining the effectiveness of said inhibited library call.
【請求項8】 さらに、前記阻害されたライブラリコールの有効性に関する
通知を提供するステップを構成している請求項7記載の方法。
8. The method of claim 7, further comprising the step of providing a notification regarding the effectiveness of the inhibited library call.
【請求項9】 さらに、前記阻害されたライブラリコールを終了させるステ
ップを構成している請求項7記載の方法。
9. The method of claim 7, further comprising terminating the inhibited library call.
【請求項10】 さらに、前記阻害されたライブラリコールを終了させるス
テップを構成している請求項8記載の方法。
10. The method of claim 8, further comprising terminating the inhibited library call.
【請求項11】 さらに、ダイナミックリンクライブラリに関連付けられた
ライブラリルーチンを接続して継ぎを当てる前記ダイナミックリンクライブラリ
をロードするシステムコールに応答し、プロセス有効アドレステーブルを更新す
るダイナミックリンクライブラリをアンロードするシステムコールに応答するス
テップを構成している請求項7記載の方法。
11. A dynamic link library for updating a process effective address table is unloaded in response to a system call for loading the dynamic link library which connects and splices library routines associated with the dynamic link library. The method of claim 7, comprising the step of responding to a system call.
【請求項12】 オペレーティングシステムプラットフォームを動作させて
いるコンピュータシステムにおいて、カーネル空間とプロセス空間を含んでいる
前記オペレーティングシステム、プロセス空間で動作しているユーザアプリケー
ションを含んでいる前記プロセス空間、システム及び関数コールに対して動作を
する前記ユーザアプリケーション、阻害された前記システムまたは関数コール、
安全機能実行の方法、前記プロセス記憶装置から呼び出し側ルーチン戻りアドレ
スを受け取り、前記呼び出し側アドレスルーチンとプロセス有効アドレステーブ
ルとを比較することによって呼び出し側ルーチンアドレスが有効かどうかを判断
するステップを構成している前記方法。
12. In a computer system running an operating system platform, the operating system including a kernel space and a process space, the process space including a user application running in the process space, a system and a function. The user application acting on the call, the system or function call being disturbed,
A method of performing a safety function, comprising the steps of receiving a calling routine return address from the process memory and determining whether the calling routine address is valid by comparing the calling address routine with a process effective address table. The above method.
【請求項13】 さらに、前記呼び出し側ルーチン戻りアドレスの有効性に
関する通知を提供するステップを構成している請求項12記載の方法。
13. The method of claim 12, further comprising the step of providing a notification regarding the validity of the calling routine return address.
【請求項14】 さらに、前記呼び出し側ルーチンアドレスの有効性に関連
付けられたユーザが予め決めた動作を実行するステップを構成している請求項1
2記載の方法。
14. The method of claim 1, further comprising the step of performing a user predetermined action associated with the validity of the calling routine address.
2. The method described in 2.
【請求項15】 前記呼び出し側ルーチンアドレスに先行しているアドレス
を決定することにより前記呼び出し側ルーチン呼び出しアドレスを決定するステ
ップをさらに構成している前記プロセス記憶装置から呼び出し側ルーチン戻りア
ドレスを受け取るステップを有する請求項12記載の方法。
15. Receiving a calling routine return address from the process memory further comprising determining the calling routine calling address by determining an address preceding the calling routine address. 13. The method of claim 12, comprising:
【請求項16】 オペレーティングシステムプラットフォームを動作させて
いるコンピュータシステムにおいて、カーネル空間とプロセス空間を含んでいる
前記オペレーティングシステム、プロセス空間で動作しているユーザアプリケー
ションを含んでいる前記プロセス空間、システム及び関数コールに対して動作を
する前記ユーザアプリケーション、阻害された前記システムまたは関数コール、
安全機能実行の方法、前記プロセス記憶装置から呼び出し側ルーチン戻りアドレ
スを受け取り、前記呼び出し側アドレスルーチンと関連付けられたプロセススタ
ックアドレス領域とを比較することによって呼び出し側ルーチンアドレスが有効
かどうかを判断するステップを構成している前記方法。
16. In a computer system running an operating system platform, the operating system including a kernel space and a process space, the process space including a user application running in the process space, a system and a function. The user application acting on the call, the system or function call being disturbed,
A method of performing a safety function, receiving a calling routine return address from the process memory and determining whether the calling routine address is valid by comparing the calling address routine with an associated process stack address area. The method comprising the:
【請求項17】 さらに、前記呼び出し側ルーチン戻りアドレスの有効性に
関する通知を提供するステップを構成している請求項16記載の方法。
17. The method of claim 16, further comprising the step of providing a notification regarding the validity of the calling routine return address.
【請求項18】 さらに、前記呼び出し側ルーチンアドレスの有効性に関連
付けられたユーザが予め決めた動作を実行するステップを構成している請求項1
6記載の方法。
18. The method of claim 1, further comprising the step of performing a user predetermined action associated with the validity of the calling routine address.
6. The method according to 6.
【請求項19】 前記呼び出し側ルーチンアドレスに先行しているアドレスを
決定することにより前記呼び出し側ルーチン呼び出しアドレスを決定するステッ
プをさらに構成している前記プロセス記憶装置から呼び出し側ルーチン戻りアド
レスを受け取るステップを有する請求項16記載の方法。
19. Receiving a calling routine return address from the process memory further comprising determining the calling routine call address by determining an address preceding the calling routine address. 17. The method of claim 16, comprising:
【請求項20】 実質的に上記記載した安全機能実行の方法。20. A method of performing a safety function substantially as described above. 【請求項21】 図面で説明した安全機能実行の方法。21. A method of performing a safety function as described in the drawings.
JP2001539121A 1999-11-14 2000-11-10 Method and system for inhibiting application program interface Withdrawn JP2003515219A (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
IL13291699A IL132916A (en) 1999-11-14 1999-11-14 Method and system for intercepting an application program interface
IL132916 1999-11-14
US09/561,395 2000-04-28
US09/561,395 US6823460B1 (en) 1999-11-14 2000-04-28 Method and system for intercepting an application program interface
PCT/US2000/031032 WO2001037095A1 (en) 1999-11-14 2000-11-10 Method and system for intercepting an application program interface
CA002386100A CA2386100A1 (en) 1999-11-14 2002-05-13 Method and system for intercepting application program interface

Publications (1)

Publication Number Publication Date
JP2003515219A true JP2003515219A (en) 2003-04-22

Family

ID=72714002

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001539121A Withdrawn JP2003515219A (en) 1999-11-14 2000-11-10 Method and system for inhibiting application program interface

Country Status (5)

Country Link
EP (1) EP1236114A1 (en)
JP (1) JP2003515219A (en)
AU (2) AU1598601A (en)
CA (1) CA2386100A1 (en)
WO (1) WO2001037095A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005029328A1 (en) * 2003-09-18 2005-03-31 Denki Hompo Ltd. Operating system and recording medium containing the same
JPWO2004075060A1 (en) * 2003-02-21 2006-06-01 田部井 光 Computer virus judgment method
JP2010521033A (en) * 2007-03-09 2010-06-17 マイクロソフト コーポレーション Separation, management and communication using user interface elements
JP5326063B1 (en) * 2012-09-11 2013-10-30 アンラブ,インコーポレイテッド Malicious shellcode detection apparatus and method using debug events
JP2022066331A (en) * 2017-02-22 2022-04-28 日本電気株式会社 Monitoring method, information processing device, and program

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155741B2 (en) * 2002-05-06 2006-12-26 Symantec Corporation Alteration of module load locations
US7624449B1 (en) 2004-01-22 2009-11-24 Symantec Corporation Countering polymorphic malicious computer code through code optimization
US7698731B2 (en) * 2004-10-25 2010-04-13 Panasonic Corporation Security architecture and mechanism to access and use security components in operating system
CN100346611C (en) * 2005-06-30 2007-10-31 西安交通大学 Invading detection method based on stack pattern in Linux environment
US7739740B1 (en) 2005-09-22 2010-06-15 Symantec Corporation Detecting polymorphic threats
KR100843701B1 (en) * 2006-11-07 2008-07-04 소프트캠프(주) Confirmation method of API by the information at Call-stack
ES2439804B1 (en) * 2012-04-19 2014-10-29 Universitat Politècnica De Catalunya Procedure, system and piece of executable code to virtualize a hardware resource associated with a computer system
CN102799493A (en) * 2012-06-21 2012-11-28 北京伸得纬科技有限公司 Method for intercepting target progress with self-protection
CN103970559B (en) * 2013-02-05 2017-09-29 北京壹人壹本信息科技有限公司 A kind of equipment loading method and device based on android system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5577209A (en) * 1991-07-11 1996-11-19 Itt Corporation Apparatus and method for providing multi-level security for communication among computers and terminals on a network
US5826014A (en) * 1996-02-06 1998-10-20 Network Engineering Software Firewall system for protecting network elements connected to a public network
US5832228A (en) * 1996-07-30 1998-11-03 Itt Industries, Inc. System and method for providing multi-level security in computer devices utilized with non-secure networks
US6067620A (en) * 1996-07-30 2000-05-23 Holden; James M. Stand alone security device for computer networks
US5974549A (en) * 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
US6088804A (en) * 1998-01-12 2000-07-11 Motorola, Inc. Adaptive system and method for responding to computer network security attacks
US6185689B1 (en) * 1998-06-24 2001-02-06 Richard S. Carson & Assoc., Inc. Method for network self security assessment

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2004075060A1 (en) * 2003-02-21 2006-06-01 田部井 光 Computer virus judgment method
WO2005029328A1 (en) * 2003-09-18 2005-03-31 Denki Hompo Ltd. Operating system and recording medium containing the same
JP2010521033A (en) * 2007-03-09 2010-06-17 マイクロソフト コーポレーション Separation, management and communication using user interface elements
JP5326063B1 (en) * 2012-09-11 2013-10-30 アンラブ,インコーポレイテッド Malicious shellcode detection apparatus and method using debug events
JP2022066331A (en) * 2017-02-22 2022-04-28 日本電気株式会社 Monitoring method, information processing device, and program
US11914493B2 (en) 2017-02-22 2024-02-27 Nec Corporation Information processing device, information processing system, monitoring method, and recording medium

Also Published As

Publication number Publication date
EP1236114A1 (en) 2002-09-04
AU768758B2 (en) 2004-01-08
WO2001037095A1 (en) 2001-05-25
AU1598601A (en) 2001-05-30
AU4888302A (en) 2002-12-05
CA2386100A1 (en) 2003-11-13

Similar Documents

Publication Publication Date Title
US6412071B1 (en) Method for secure function execution by calling address validation
US8161552B1 (en) White list creation in behavior monitoring system
US7823201B1 (en) Detection of key logging software
CN101826139B (en) Method and device for detecting Trojan in non-executable file
US7721333B2 (en) Method and system for detecting a keylogger on a computer
CN101479709B (en) Identifying malware in a boot environment
US7779474B2 (en) Virus detection in a network
US6941473B2 (en) Memory device, stack protection system, computer system, compiler, stack protection method, storage medium and program transmission apparatus
US8931097B2 (en) Method, computer software, and system for providing end to end security protection of an online transaction
KR100368947B1 (en) Integrity checking an executable module and associated protected service provider module
US7797702B1 (en) Preventing execution of remotely injected threads
US20130061323A1 (en) System and method for protecting against malware utilizing key loggers
US8510838B1 (en) Malware protection using file input/output virtualization
US20070050848A1 (en) Preventing malware from accessing operating system services
JP2003515219A (en) Method and system for inhibiting application program interface
US20100306851A1 (en) Method and apparatus for preventing a vulnerability of a web browser from being exploited
US20160196428A1 (en) System and Method for Detecting Stack Pivot Programming Exploit
US20020144141A1 (en) Countering buffer overrun security vulnerabilities in a CPU
US9542557B2 (en) Snoop-based kernel integrity monitoring apparatus and method thereof
EP2876572A1 (en) Firmware-level security agent supporting operating system-level security in computer system
US10055251B1 (en) Methods, systems, and media for injecting code into embedded devices
US11687649B2 (en) Securely and efficiently providing user notifications about security actions
US11461465B1 (en) Protection of kernel extension in a computer
JP2003515218A (en) How to execute a safe function by confirming the call address
US20100218261A1 (en) Isolating processes using aspects

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080205