JP4518564B2 - 不正コード実行の防止方法、不正コード実行の防止用プログラム、及び不正コード実行の防止用プログラムの記録媒体 - Google Patents
不正コード実行の防止方法、不正コード実行の防止用プログラム、及び不正コード実行の防止用プログラムの記録媒体 Download PDFInfo
- Publication number
- JP4518564B2 JP4518564B2 JP2005513686A JP2005513686A JP4518564B2 JP 4518564 B2 JP4518564 B2 JP 4518564B2 JP 2005513686 A JP2005513686 A JP 2005513686A JP 2005513686 A JP2005513686 A JP 2005513686A JP 4518564 B2 JP4518564 B2 JP 4518564B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- program
- return address
- instruction
- memory
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/141—Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
Description
Openwall Linux kernel patch project, URL:http://www.openwall.com/linux/ StackGuard: Simple Stack Smash Protection go GCC, URL: http://www.immunix.com/~wagle
本発明の目的は、電子計算機のメモリの番地に格納されているデータの改ざん防止、データ改ざんの検出を行う方法、そのプログラム、プログラムの記録媒体を提供することである。
本発明の目的は、プログラムの実行時におけるスタックメモリ内のリターンアドレスへの改ざん防止と検出を行う方法を提供することである。
本発明の他の目的は、ハードウェア、オペレーティングシステム、カーネルモードソフトウェア、アプリケーションソフトウェアを変更することなく利用できる不正コード実行の防止機能を提供することである。
本発明の更に他の目的は、アプリケーションソフトウェア及び、カーネルモードソフトウェアがバッファオーバーフローによる脆弱性を有するときも有効に不正コード実行の防止機能を提供することである。
本発明の更に他の目的は、不正コードが実行される前に検出し、不正なコードの実行を抑止することである。
前記プログラムが前記記憶媒体から呼び出されるとき、前記プログラムの中の分岐命令を取得して前記プログラムを解析するための解析機能と前記プログラムの中で一番最初に実行される命令の番地を、デバッグ機能に利用される前記デバッグレジスタに登録し、前記命令が実行されたとき、前記デバッグ機能によって、トレースコールバック関数が呼び出されるようにする登録機能と、
前記プログラムが実行され、前記中央演算処理装置によって前記分岐命令がトレースされ、前記分岐命令が前記解析機能で検知されたとき、前記デバッグ機能のトレースフラグをクリアにするトレース無効機能と、
前記中央演算処理装置によって最後に実行された前記分岐命令の情報を、汎用レジスタに読み取りする機能と、
前記汎用レジスタの内容から、前記分岐命令の種類を判別する判別機能と、
前記判別機能で前記分岐命令が前記プログラムのサブルーチンの呼び出し命令(CALL)である場合、前記呼び出し命令の前記リターンアドレスが格納されている、前記スタックメモリ領域のメモリ番地から、前記リターンアドレスを取得する機能と、
前記リターンアドレスを前記メモリに保存するリターンアドレス保存機能と、
前記クリアされた前記トレースフラグを設定し、前記分岐命令の前記トレースを再開する機能と、
前記判別機能で前記分岐命令が復帰命令(RET、RETxx)である場合、前記復帰命令で指定された前記リターンアドレスを前記スタックメモリ領域から読み取る読み取り機能と、
前記読み取り機能で読み取った値を、前記リターンアドレス保存機能で保存された値と比較するリターンアドレス比較機能と、
前記リターンアドレス比較機能で、前記読み取り機能で読み取った値と、前記リターンアドレス保存機能で保存された値が同じである場合、前記クリアされた前記トレースフラグを設定し、前記分岐命令の前記トレースを再開する機能と、
前記リターンアドレス比較機能で、前記読み取り機能で読み取った値と、前記リターンアドレス保存機能で保存された値が一致しない場合、前記呼び出し命令(CALL)の前記リターンアドレスが改ざんされたものと判定し、前記プログラムの流れを停止、前記プログラムの流れを一時停止、及びエラールーチンを実行する処理の内の1処理を行って、前記プログラムの流れを制御するための制御機能と
を実現させるためのプログラムであり、
更に、
前記制御機能は、前記読み取り機能で読み取った前記リターンアドレスを、前記リターンアドレス保存機能によって前記メモリに保存された前記リターンアドレスで、書き換えする機能と、
前記制御機能は、前記読み取り機能で読み取ったもので、書き換えられた後の値を保存し、前記値を用いて攻撃の種類、及び前記攻撃のパターンを解析する機能と
を前記電子計算機に実現させることを特徴とする。
テムのソフトウェアモジュール、カーネルモードソフトウェア、これらの中で使用する関
数、サブルーチンから選択される内1以上であると良い。
ード実行の防止用プログラムを記録した記録媒体である。
本発明の不正コード防止方法は、ハードウェア、オペレーティングシステム、カーネルモードソフトウェア、アプリケーションソフトウェアを変更することなく、不正コードの実行を防止できる。
本発明の不正コード防止方法は、アプリケーションソフトウェア及び、カーネルモードソフトウェアが、バッファオーバーフローによる脆弱性を有するときも有効に対応できる。
本発明の不正コード防止方法は、不正コードが実行される前に検出し、不正なコードの実行を抑止できる。
[実施の形態1]
以下、本発明の実施の形態1を説明する。
本発明は、電子計算機のメインメモリに格納されているデータが書き換えをされ、改ざんされる行為を検知する方法を提供するものである。また、この方法により、電子計算機のメインメモリに格納されているデータが書き換えをされ、改ざんされる行為を検知し、書き換えまたは改ざんされたデータを復元するためのプログラムを提供する。更に、本発明は、そのプログラムを記録した記録媒体を提供するものである。この本発明の実施の形態の概要を説明する。
ファイルシステムドライバ3はハードディスク4からプログラムを呼び出し、ドライバウェア2へ渡す。ドライバウェア2はプログラムを解析してメインルーチン、サブルーチンを把握し、それぞれのリターンアドレスを取得し、バッファオーバーフローを検出する制御を行う。リターンアドレスは、CALL命令等の分岐命令で出力されてスタックメモリに格納され、RET、RETxx命令で戻るためのアドレスである。
この一連の動作を図3のフローチャートを参照しながら説明する。オペレーティングシステム、又はアプリケーションプログラムからプログラム(図1の実行可能ファイル5)を起動する(ステップ1)。ドライバウェア2は、プログラムの起動を検出する(ステップ2)。ドライバウェア2は、プログラムを解析してメインルーチン、サブルーチンを把握し、それぞれのリターンアドレスを取得する。ドライバウェア2は、プログラムの起動によって生成される引数、ローカル変数、関数アドレスを調べ(ステップ3)、関数アドレスを保存する。具体的には、プログラム内で実行されるコール(CALL)、リターン(RET、RETN)、ジャンプ(JMP)等の分岐命令の実行するイベントを調べリターンアドレスを取得し、保存する(ステップ4)。
リターンアドレスにこの機能を適用する。よって、リターンアドレスが書き換えられると、ドライバウェア2へ制御が移動するように設定される。ドライバウェア2はステップ1で指定されたプログラムを実行する(ステップ7)。
呼び出された関数からの戻る直前で、ドライバウェアがステップ13で記憶したリターンアドレスと、スタック上のリターンアドレスを比較する(ステップ17〜19)。ドライバウェア2がエラーを検出する(ステップ20)。そして、プログラムの実行を中断して、エラールーチンへ制御が移る(ステップ21)。エラールーチン(図示せず)は、エラーが検出されたときに実行され、プログラムの実行が停止、スタックメモリの内容の保存やリターンアドレスを事前に保存したデータで書き換えする等の機能を持つプログラムである。このエラールーチンによって、プログラムの実行を停止、継続、そして不正コードの保存ができる(ステップ22)。
このように、バッファオーバーフローを利用した不正侵入、攻撃はすべて把握し、対処することができる。実行中のプロセスの停止、スタックメモリの内容の保存、元のプロセスの実行継続などができる。プロセスの停止によっては、実行しているプロセスを停止して、プログラムの暴走を止めることができる。スタックメモリの内容の保存によっては、不正コードを保存でき、その後の解析などの作業で攻撃、ウィルスの種類、そのパターンを把握できる。
本発明の実施の形態1の実施例を示す。本実施例では、Intel社(登録商標)の32ビットアーキテクチャーのプロセッサで、命令トレース機能を実装しているものを想定している。具体的には、PentiumPro(登録商標)以後に開発されたプロセッサ、又はこのプロセッサと互換性のあるプロセッサである。オペレーティングシステムは、マイクロソフト社のWindows2000(登録商標)である。
ドライバウェア2が動作し、バッファオーバーフローの検知を行うための準備としての初期化処理、プログラムが実行されると発生されるプロセスとスレッドを検知し、メインルーチン、サブルーチンを把握する。そして、ドライバウェア2がバッファオーバーフローを検知すると、エラールーチンとしてプロセス中断処理を動作させて対処する。これらの動作について、詳細に説明する。
この初期化処理を行った後は、プログラムが動作を開始する。このプログラムの動作中に実行されるジャンプ(JMP)、コール(CALL)、リターン(RET)等の分岐命令をすべて登録し、トレースする。CALL、RET、RETxx命令が実行されるとき、バッファオーバーフローを検知している。CALL、RET、RETxx命令の検知は、図11、12に示すフローチャートに示している。
図8のフローチャートは、初期化処理の概要を示している。まずは、ドライバウェアが起動し、バッファオーバーフローを監視するプロセス名をレジストリから読み込む(ステップ100)。そして、監視対象のプロセスのプロセス生成コールバックを登録する(ステップ101)。このプロセス生成コールバックの登録について詳細には、図9のフローチャートに示している。その後、スタックレコーダを初期化し、メモリ領域を確保する(ステップ102)。そして、監視対象スレッドのスレッド生成イベントのフック設定を行う(ステップ103)。それから、実行命令のトレースを開始する。
プロセス生成コールバックの登録は、OSが提供するPsSetLoadImageNotifyRoutine()を呼び出し、プロセス起動時に呼び出されるコールバック関数(LoadImageNotifyRoutine)を登録して行われる。このコールバック関数は、次のプロトタイプで定義される。
プロセスモジュールのエントリポイントアドレスを取得する(ステップ112)。Windowsで使用される実行モジュールファイルの先頭部分(ヘッダ)を調査し、最初に実行される関数(エントリポイント)のアドレスを取得する。そして、エントリポイントに、ブレークポイントを設置する(ステップ113)。このときのプログラムコードの例は次の通りである。
複数スレッドのシステムには、スレッドを生成するカーネルAPIであるNtCreateThreadをフックすることで適用させている。そのため、NtCreateThreadを呼び出す際に経由されるベクタ2Eの割り込みハンドラ(ASO_Hook_INT2EH)を書き換える。このときのプログラムコードは次のようになる。
図13には、CALL命令が実行されるときの処理を示している。CALL命令の実行が開始されると(ステップ200)、CALL命令に割り与えられたスタックメモリのスタックセグメント(CS)のアドレスを取得する(ステップ201)。そして、CALL命令で格納されるリターンアドレスのスタックポイントを取得する(ステップ202)。その後、スタックメモリからリターンアドレスを取得する(ステップ203)。このときのプログラムコードは次のようになる。
図14には、RET命令が実行されるときの処理を示している。RET命令の実行が開始されると(ステップ250)、RET命令に割り与えられたスタックメモリのスタックセグメント(CS)のアドレスを取得する(ステップ251)。そして、RET命令で指定されたリターンアドレスのスタックポインタを取得する(ステップ252)。その後、スタックメモリからリターンアドレスを取得する(ステップ253)。このときのプログラムコードは次のようになる。
図16には、JMP ESP処理が実行されるときの処理を示している。JMP ESPは、例えばネットワークを経由して侵入するウィルス等がスタックメモリ上のプログラムコードを実行するために必要な命令である。そのためスタックのリターンアドレスの検索結果に依存することなく、JMPESP命令を使用する実行モジュールは稀であるため禁止対象としてある。JMP ESPが判別すると、プロセス中断処理を行う(ステップ351)。
ステップ260、310、351のプロセス中断処理は、RET、RETN命令の次に実行される命令のアドレスを取得し、そこを不正な命令(INT3等)に書き換える。プロセスの実行を継続させ、不正な命令でプロセスを停止させる。このときのプログラムコードは次のようになる。
2…ドライバウェア
3…ファイルシステムドライバ
4…ハードディスク
5…実行可能ファイル
6…メモリ
10…ネットワークカード
11…NDIS
12…Winsock
Claims (3)
- 電子計算機の記憶媒体に格納されているプログラムが、デバッグレジスタを有する構造を持つ中央演算処理装置によって実行されるとき、
メモリのスタックメモリ領域に格納されているリターンアドレスが不正コードの実行によってオーバーライトされる前記メモリのバッファオーバーフローを検知し、前記バッファオーバーフローの発生を防止させるように前記電子計算機を機能させる不正コード実行の防止用プログラムにおいて、
前記不正コード実行の防止用プログラムは、前記電子計算機に、
前記プログラムが前記記憶媒体から呼び出されるとき、前記プログラムの中の分岐命令を取得して前記プログラムを解析するための解析機能と、
前記プログラムの中で一番最初に実行される命令の番地を、デバッグ機能に利用される前記デバッグレジスタに登録し、前記命令が実行されたとき、前記デバッグ機能によって、トレースコールバック関数が呼び出されるようにする登録機能と、
前記プログラムが実行され、前記中央演算処理装置によって前記分岐命令がトレースされ、前記分岐命令が前記解析機能で検知されたとき、前記デバッグ機能のトレースフラグをクリアにするトレース無効機能と、
前記中央演算処理装置によって最後に実行された前記分岐命令の情報を、汎用レジスタに読み取りする機能と、
前記汎用レジスタの内容から、前記分岐命令の種類を判別する判別機能と、
前記判別機能で前記分岐命令が前記プログラムのサブルーチンの呼び出し命令(CALL)である場合、前記呼び出し命令の前記リターンアドレスが格納されている、前記スタックメモリ領域のメモリ番地から、前記リターンアドレスを取得する機能と、
前記リターンアドレスを前記メモリに保存するリターンアドレス保存機能と、
前記クリアされた前記トレースフラグを設定し、前記分岐命令の前記トレースを再開する機能と、
前記判別機能で前記分岐命令が復帰命令(RET、RETxx)である場合、前記復帰命令で指定された前記リターンアドレスを前記スタックメモリ領域から読み取る読み取り機能と、
前記読み取り機能で読み取った値を、前記リターンアドレス保存機能で保存された値と比較するリターンアドレス比較機能と、
前記リターンアドレス比較機能で、前記読み取り機能で読み取った値と、前記リターンアドレス保存機能で保存された値が同じである場合、前記クリアされた前記トレースフラグを設定し、前記分岐命令の前記トレースを再開する機能と、
前記リターンアドレス比較機能で、前記読み取り機能で読み取った値と、前記リターンアドレス保存機能で保存された値が一致しない場合、前記呼び出し命令(CALL)の前記リターンアドレスが改ざんされたものと判定し、前記プログラムの流れを停止、前記プログラムの流れを一時停止、及びエラールーチンを実行する処理の内の1処理を行って、前記プログラムの流れを制御するための制御機能と
を実現させるためのプログラムであり、
更に、
前記制御機能は、前記読み取り機能で読み取った前記リターンアドレスを、前記リターンアドレス保存機能によって前記メモリに保存された前記リターンアドレスで、書き換えする機能と、
前記制御機能は、前記読み取り機能で読み取ったもので、書き換えられた後の値を保存し、前記値を用いて攻撃の種類、及び前記攻撃のパターンを解析する機能と
を前記電子計算機に実現させることを特徴とする不正コード実行の防止用プログラム。 - 請求項1において、
前記プログラムは、アプリケーションソフトウェア、オペレーティングシステムのソフトウェアモジュール、カーネルモードソフトウェア、これらの中で使用する関数、サブルーチンから選択される内1以上である
ことを特徴とする不正コード実行の防止用プログラム。 - 請求項1又は2に記載された、不正コード実行の防止用プログラムを記録した不正コード実行の防止用プログラムの記録媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003312517 | 2003-09-04 | ||
JP2003312517 | 2003-09-04 | ||
PCT/JP2004/012858 WO2005024630A1 (ja) | 2003-09-04 | 2004-09-03 | 不正コード実行の防止方法および防止プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2005024630A1 JPWO2005024630A1 (ja) | 2007-11-08 |
JP4518564B2 true JP4518564B2 (ja) | 2010-08-04 |
Family
ID=34269739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005513686A Active JP4518564B2 (ja) | 2003-09-04 | 2004-09-03 | 不正コード実行の防止方法、不正コード実行の防止用プログラム、及び不正コード実行の防止用プログラムの記録媒体 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8042179B2 (ja) |
EP (1) | EP1662379A4 (ja) |
JP (1) | JP4518564B2 (ja) |
KR (1) | KR100777938B1 (ja) |
CN (1) | CN1886728A (ja) |
WO (1) | WO2005024630A1 (ja) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7971255B1 (en) * | 2004-07-15 | 2011-06-28 | The Trustees Of Columbia University In The City Of New York | Detecting and preventing malcode execution |
JP3768516B1 (ja) * | 2004-12-03 | 2006-04-19 | 株式会社ソニー・コンピュータエンタテインメント | マルチプロセッサシステムとそのシステムにおけるプログラム実行方法 |
US7849444B2 (en) * | 2004-12-21 | 2010-12-07 | National Instruments Corporation | Test executive with buffer overwrite detection for parameters of user-supplied code modules |
US7607122B2 (en) * | 2005-06-17 | 2009-10-20 | Microsoft Corporation | Post build process to record stack and call tree information |
US7930733B1 (en) * | 2006-04-10 | 2011-04-19 | At&T Intellectual Property Ii, L.P. | Method and system for execution monitor-based trusted computing |
US20080148399A1 (en) * | 2006-10-18 | 2008-06-19 | Microsoft Corporation | Protection against stack buffer overrun exploitation |
FR2910144A1 (fr) * | 2006-12-18 | 2008-06-20 | St Microelectronics Sa | Procede et dispositif de detection errones au cours de l'execution d'un programme. |
US8453245B2 (en) | 2006-12-29 | 2013-05-28 | Microsoft Corporation | Automatic vulnerability detection and response |
CN101241464B (zh) * | 2007-02-05 | 2010-08-18 | 中兴通讯股份有限公司 | 一种检测堆栈帧破坏的方法 |
CN101295278B (zh) * | 2007-04-23 | 2010-08-11 | 大唐移动通信设备有限公司 | 定位被改写代码段所在进程的方法及装置 |
US8141163B2 (en) * | 2007-07-31 | 2012-03-20 | Vmware, Inc. | Malicious code detection |
CN101414340B (zh) * | 2007-10-15 | 2015-12-02 | 北京瑞星信息技术有限公司 | 一种防止远程线程启动的方法 |
US8352921B2 (en) * | 2007-11-02 | 2013-01-08 | Klocwork Corp. | Static analysis defect detection in the presence of virtual function calls |
US8099636B2 (en) * | 2008-07-15 | 2012-01-17 | Caterpillar Inc. | System and method for protecting memory stacks using a debug unit |
JP5316148B2 (ja) * | 2009-03-24 | 2013-10-16 | 富士通セミコンダクター株式会社 | 情報処理装置およびデータ修復方法 |
JP4572259B1 (ja) * | 2009-04-27 | 2010-11-04 | 株式会社フォティーンフォティ技術研究所 | 情報機器、プログラム及び不正なプログラムコードの実行防止方法 |
TW201128383A (en) * | 2009-07-29 | 2011-08-16 | Reversinglabs Corp | Portable executable file analysis |
US20120227033A1 (en) * | 2011-03-02 | 2012-09-06 | Lei Yu | Method and apparatus for evaluating software performance |
US8935674B2 (en) * | 2012-08-15 | 2015-01-13 | International Business Machines Corporation | Determining correctness conditions for use in static analysis |
US20140283060A1 (en) * | 2013-03-15 | 2014-09-18 | Oracle International Corporation | Mitigating vulnerabilities associated with return-oriented programming |
CN103514405B (zh) * | 2013-07-08 | 2016-08-10 | 北京深思数盾科技股份有限公司 | 一种缓冲区溢出的检测方法及系统 |
WO2015044993A1 (ja) * | 2013-09-24 | 2015-04-02 | 株式会社 エーティーティーコンサルティング | プロセッサ、処理装置、プログラム作成方法 |
CN103559439A (zh) * | 2013-11-19 | 2014-02-05 | 浪潮(北京)电子信息产业有限公司 | 一种缓冲区溢出检测方法及系统 |
US9245110B2 (en) | 2013-12-17 | 2016-01-26 | International Business Machines Corporation | Stack entry overwrite protection |
US9703948B2 (en) * | 2014-03-28 | 2017-07-11 | Intel Corporation | Return-target restrictive return from procedure instructions, processors, methods, and systems |
CN105426752A (zh) * | 2015-11-24 | 2016-03-23 | 无锡江南计算技术研究所 | 缓冲区溢出保护方法 |
JP2017123119A (ja) * | 2016-01-08 | 2017-07-13 | 株式会社デンソー | 電子制御装置 |
CN106203069B (zh) * | 2016-06-27 | 2019-10-15 | 珠海豹趣科技有限公司 | 一种动态链接库文件的拦截方法、装置及终端设备 |
US10540498B2 (en) * | 2016-08-12 | 2020-01-21 | Intel Corporation | Technologies for hardware assisted native malware detection |
US10481999B2 (en) | 2016-12-05 | 2019-11-19 | Microsoft Technology Licensing, Llc | Partial process recording |
US10467407B2 (en) * | 2017-03-30 | 2019-11-05 | Check Point Advanced Threat Prevention Ltd. | Method and system for detecting kernel corruption exploits |
US10613864B2 (en) * | 2018-03-16 | 2020-04-07 | Texas Instruments Incorporated | Processor with hardware supported memory buffer overflow detection |
CN109033821A (zh) * | 2018-07-12 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种栈溢出攻击防护系统及方法 |
JP2022502723A (ja) * | 2018-10-18 | 2022-01-11 | スターナム リミテッドSternum Ltd. | スタック破損のエクスプロイトに対する中間コードファイルにおけるセキュリティ緩和手段の適用 |
WO2021059478A1 (ja) * | 2019-09-27 | 2021-04-01 | 日本電気株式会社 | 情報処理装置、情報処理方法、及び、プログラムが記録された非一時的なコンピュータ可読媒体 |
US11182472B2 (en) * | 2019-09-30 | 2021-11-23 | Vmware, Inc. | Security in a computing environment by monitoring expected operation of processes within the computing environment |
CN112784261B (zh) * | 2021-01-04 | 2023-10-27 | 北京蓝军网安科技发展有限责任公司 | 用于程序运行的方法及相应的系统、计算机设备和介质 |
US11900154B2 (en) * | 2021-03-08 | 2024-02-13 | Dell Products L.P. | Enabling modern standby for unsupported applications |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02304635A (ja) * | 1989-05-19 | 1990-12-18 | Pfu Ltd | プログラム暴走検知方法 |
JPH05216717A (ja) * | 1992-01-31 | 1993-08-27 | Nec Corp | デバッガのトレース機能 |
JPH09128267A (ja) * | 1995-10-31 | 1997-05-16 | Nec Corp | データ処理装置およびデータ処理方法 |
JPH11120028A (ja) * | 1997-10-13 | 1999-04-30 | Nec Corp | プログラム移植サポート方式 |
JP2001511271A (ja) * | 1997-01-15 | 2001-08-07 | シーメンス アクチエンゲゼルシヤフト | ソフトウェアプログラムの規定通りの実行を監視するための方法 |
JP2001216161A (ja) * | 2000-02-04 | 2001-08-10 | Internatl Business Mach Corp <Ibm> | メモリ装置、スタック保護システム、コンピュータシステム、コンパイラ、スタック保護方法、記憶媒体及びプログラム伝送装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03175537A (ja) * | 1989-12-04 | 1991-07-30 | Nec Corp | デバッグ用マイクロプロセッサのエラー制御装置 |
JPH09128277A (ja) * | 1995-10-27 | 1997-05-16 | Nec Software Ltd | 複数os搭載システムにおけるファイル管理方式 |
JP3339482B2 (ja) * | 1999-12-15 | 2002-10-28 | 日本電気株式会社 | 分散デバッグ装置及びデバッグ方法並びに制御プログラムを記録した記録媒体 |
US6915416B2 (en) * | 2000-12-28 | 2005-07-05 | Texas Instruments Incorporated | Apparatus and method for microcontroller debugging |
CA2345416C (en) * | 2001-04-27 | 2005-05-03 | Ibm Canada Limited-Ibm Canada Limitee | High performance debugging in a message flow environment |
US6947047B1 (en) * | 2001-09-20 | 2005-09-20 | Nvidia Corporation | Method and system for programmable pipelined graphics processing with branching instructions |
US7853803B2 (en) * | 2001-09-28 | 2010-12-14 | Verizon Corporate Services Group Inc. | System and method for thwarting buffer overflow attacks using encrypted process pointers |
US7243340B2 (en) * | 2001-11-15 | 2007-07-10 | Pace Anti-Piracy | Method and system for obfuscation of computer program execution flow to increase computer program security |
US20030126590A1 (en) * | 2001-12-28 | 2003-07-03 | Michael Burrows | System and method for dynamic data-type checking |
US6996677B2 (en) * | 2002-11-25 | 2006-02-07 | Nortel Networks Limited | Method and apparatus for protecting memory stacks |
-
2004
- 2004-09-03 JP JP2005513686A patent/JP4518564B2/ja active Active
- 2004-09-03 US US10/570,502 patent/US8042179B2/en active Active
- 2004-09-03 EP EP04772807A patent/EP1662379A4/en not_active Withdrawn
- 2004-09-03 CN CNA2004800289891A patent/CN1886728A/zh active Pending
- 2004-09-03 KR KR1020067003788A patent/KR100777938B1/ko active IP Right Grant
- 2004-09-03 WO PCT/JP2004/012858 patent/WO2005024630A1/ja active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02304635A (ja) * | 1989-05-19 | 1990-12-18 | Pfu Ltd | プログラム暴走検知方法 |
JPH05216717A (ja) * | 1992-01-31 | 1993-08-27 | Nec Corp | デバッガのトレース機能 |
JPH09128267A (ja) * | 1995-10-31 | 1997-05-16 | Nec Corp | データ処理装置およびデータ処理方法 |
JP2001511271A (ja) * | 1997-01-15 | 2001-08-07 | シーメンス アクチエンゲゼルシヤフト | ソフトウェアプログラムの規定通りの実行を監視するための方法 |
JPH11120028A (ja) * | 1997-10-13 | 1999-04-30 | Nec Corp | プログラム移植サポート方式 |
JP2001216161A (ja) * | 2000-02-04 | 2001-08-10 | Internatl Business Mach Corp <Ibm> | メモリ装置、スタック保護システム、コンピュータシステム、コンパイラ、スタック保護方法、記憶媒体及びプログラム伝送装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20060056998A (ko) | 2006-05-25 |
JPWO2005024630A1 (ja) | 2007-11-08 |
KR100777938B1 (ko) | 2007-11-21 |
EP1662379A1 (en) | 2006-05-31 |
US20070101317A1 (en) | 2007-05-03 |
CN1886728A (zh) | 2006-12-27 |
US8042179B2 (en) | 2011-10-18 |
WO2005024630A1 (ja) | 2005-03-17 |
EP1662379A4 (en) | 2008-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4518564B2 (ja) | 不正コード実行の防止方法、不正コード実行の防止用プログラム、及び不正コード実行の防止用プログラムの記録媒体 | |
Kawakoya et al. | Memory behavior-based automatic malware unpacking in stealth debugging environment | |
US7996904B1 (en) | Automated unpacking of executables packed by multiple layers of arbitrary packers | |
Guo et al. | A study of the packer problem and its solutions | |
US10460099B2 (en) | System and method of detecting malicious code in files | |
US8510828B1 (en) | Enforcing the execution exception to prevent packers from evading the scanning of dynamically created code | |
Volckaert et al. | Cloning your gadgets: Complete ROP attack immunity with multi-variant execution | |
CN109583200B (zh) | 一种基于动态污点传播的程序异常分析方法 | |
US8104089B1 (en) | Tracking memory mapping to prevent packers from evading the scanning of dynamically created code | |
US10984096B2 (en) | Systems, methods, and apparatus for detecting control flow attacks | |
WO2012152479A1 (en) | Malware detection | |
Kawakoya et al. | Api chaser: Anti-analysis resistant malware analyzer | |
US10467410B2 (en) | Apparatus and method for monitoring confidentiality and integrity of target system | |
JP2010257150A (ja) | 不正処理検知装置、不正処理検知方法及びプログラム | |
KR101064164B1 (ko) | 리눅스 커널 기반 스마트 플랫폼 내에서의 커널 무결성 검사 및 변조된 커널 데이터 복구 방법 | |
Quist et al. | Covert debugging circumventing software armoring techniques | |
Kim et al. | Large-scale analysis on anti-analysis techniques in real-world malware | |
Bravo et al. | Proactive detection of kernel-mode rootkits | |
CN113760770A (zh) | 基于自动静态资源检测的反调试方法和系统 | |
Canella et al. | SFIP: Coarse-Grained Syscall-Flow-Integrity Protection in Modern Systems | |
Gupta et al. | Dynamic code instrumentation to detect and recover from return address corruption | |
CN111931191A (zh) | Linux平台二进制软件堆溢漏洞动态检测方法及系统 | |
Shields | Anti-debugging–a developers view | |
JP4643201B2 (ja) | バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム | |
Santos Filho et al. | Evasion and countermeasures techniques to detect dynamic binary instrumentation frameworks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080509 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080708 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081007 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081208 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20081211 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090319 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090327 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20090518 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090813 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091008 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091102 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091228 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100512 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100517 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130528 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4518564 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140528 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |