JP2006053760A - バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム - Google Patents
バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム Download PDFInfo
- Publication number
- JP2006053760A JP2006053760A JP2004234978A JP2004234978A JP2006053760A JP 2006053760 A JP2006053760 A JP 2006053760A JP 2004234978 A JP2004234978 A JP 2004234978A JP 2004234978 A JP2004234978 A JP 2004234978A JP 2006053760 A JP2006053760 A JP 2006053760A
- Authority
- JP
- Japan
- Prior art keywords
- information
- buffer
- function
- analysis information
- program
- 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.)
- Granted
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
Abstract
【解決手段】バッファオーバーフロー攻撃の発生を検知すると、プログラム開発者に提供する分析情報として、攻撃の対象となったバッファの存在する場所の情報と、そのバッファを確保した関数の情報とを抽出するとともに、そのバッファ確保からバッファオーバーフロー攻撃までの関数の呼び出し履歴の情報を抽出できる場合には、その情報を抽出する。この分析情報を受けて、プログラム開発者がプログラムを修正し対処情報を作成するので、既知分析情報記憶手段に分析情報に対応付ける形で対処情報を記憶しておき、抽出した分析情報が既知分析情報記憶手段が登録されている場合には、その分析情報に対応付けられる対処情報に基づいてバッファオーバーフロー攻撃に対する対処処理を実行する。
【選択図】図1
Description
White Paper 「Libsafe: Protecting critical elements of stacks.」"http://www.research.avayalabs.com/project/libsafe/" A.Baratloo, N.Singh, and T.Tsai, December 1999.
本発明のデータ処理装置は、上記の分析情報提供処理を実現するために、(イ)バッファオーバーフロー攻撃の発生を検知する検知手段と、(ロ)プログラム開発者に提供する分析情報として、攻撃の対象となったバッファの存在する場所の情報と、そのバッファを確保した関数の情報とを抽出するとともに、そのバッファ確保からバッファオーバーフロー攻撃までの関数の呼び出し履歴の情報を抽出できる場合には、その情報を抽出する抽出手段とを備える。
本発明の分析情報提供装置は、上記の分析情報提供処理を実現するために、(イ)バッファオーバーフロー攻撃の発生を検知したデータ処理装置より送られてくる、攻撃の対象となったバッファの存在する場所の情報と、そのバッファを確保した関数の情報とを受信するとともに、これらの情報に加えて、そのバッファ確保からバッファオーバーフロー攻撃までの関数の呼び出し履歴の情報が送られてくる場合には、その情報を受信することで、プログラム開発者に提供する分析情報を受信する受信手段と、(ロ)プログラム開発者に提供済みの分析情報を記憶する既知分析情報記憶手段を参照することで、受信手段の受信した分析情報が既にプログラム開発者に提供済みであるのか否かを判断する判断手段と、(ハ)受信手段の受信した分析情報が既知分析情報記憶手段に登録されていない場合に、その受信した分析情報をプログラム開発者に提供する提供手段と、(ニ)受信手段の受信した分析情報が既知分析情報記憶手段に登録されている場合に、その分析情報に対応付けて既知分析情報記憶手段に登録されている対処情報に基づいて、バッファオーバーフロー攻撃に対する対処処理を実行する実行手段とを備える。
このように構成される本発明では、データ処理装置は、バッファオーバーフロー攻撃の発生を検知すると、プログラム開発者に提供する分析情報として、攻撃の対象となったバッファの存在する場所の情報と、そのバッファを確保した関数の情報とを抽出するとともに、そのバッファ確保からバッファオーバーフロー攻撃までの関数の呼び出し履歴の情報を抽出できる場合には、その情報を抽出する。
(i)確保するバッファのサイズを拡張する
(ii)バッファ書き込み時にバッファサイズをチェックする
という二つが挙げられる。
先ず最初に、バッファオーバーフロー検知部1の処理について説明する。
次に、図1に示した修正箇所抽出部2の処理について説明する。
次に、図1に示した既知脆弱性判定部3の処理について説明する。
2 修正箇所抽出部
3 既知脆弱性判定部
4 既知脆弱性情報格納部
5 対話登録部
6 対処部
7 スタックメモリ
8 ヒープメモリ確保関数呼び出し履歴格納部
9 ヒープメモリ確保関数呼び出し履歴記録部
Claims (16)
- バッファオーバーフロー攻撃の対象となったプログラムの修正を行う上で必要となる分析情報を、そのプログラムの開発者に提供するための処理を行うバッファオーバーフロー脆弱性分析方法であって、
バッファオーバーフロー攻撃の発生を検知する過程と、
プログラム開発者に提供する分析情報として、攻撃の対象となったバッファの存在する場所の情報と、そのバッファを確保した関数の情報とを抽出するとともに、そのバッファ確保からバッファオーバーフロー攻撃までの関数の呼び出し履歴の情報を抽出できる場合には、その情報を抽出する過程とを備えることを、
特徴とするバッファオーバーフロー脆弱性分析方法。 - 請求項1に記載のバッファオーバーフロー脆弱性分析方法において、
上記抽出する過程では、オーバーフロー発生時のフレームポインタから攻撃対象となったバッファの先頭をまたぐまでスタックトレースを行い、最終的にたどり着くフレームポインタの直前のフレームポインタに近接するリターンアドレスを抽出することで、バッファを確保した関数の情報を抽出することを、
特徴とするバッファオーバーフロー脆弱性分析方法。 - 請求項1に記載のバッファオーバーフロー脆弱性分析方法において、
上記抽出する過程では、オーバーフロー発生時のフレームポインタから攻撃対象となったバッファを確保した関数までスタックトレースを行うことで、バッファ確保からバッファオーバーフロー攻撃までの関数の呼び出し履歴の情報を抽出することを、
特徴とするバッファオーバーフロー脆弱性分析方法。 - 請求項1に記載のバッファオーバーフロー脆弱性分析方法において、
ヒープメモリ確保関数が呼び出されたときにスタックトップまでスタックトレースを行うことで関数の呼び出し履歴の情報を取得して、その情報をヒープメモリ上に確保されたバッファの情報に対応付けて記憶手段に記録する過程を備え、
上記抽出する過程では、攻撃の対象となったバッファがヒープメモリに存在することを抽出する場合には、上記記憶手段に記録される情報を参照することで、そのバッファを確保した関数の情報を抽出することを、
特徴とするバッファオーバーフロー脆弱性分析方法。 - 請求項1ないし4のいずれか1項に記載のバッファオーバーフロー脆弱性分析方法において、
プログラム開発者に提供済みの分析情報を記憶する既知分析情報記憶手段を参照することで、上記抽出した分析情報が既にプログラム開発者に提供済みであるのか否かを判断する過程と、
上記抽出した分析情報が上記既知分析情報記憶手段に登録されていない場合に、その抽出した分析情報をプログラム開発者に提供する過程とを備えることを、
特徴とするバッファオーバーフロー脆弱性分析方法。 - 請求項5に記載のバッファオーバーフロー脆弱性分析方法において、
上記判断する過程では、上記抽出した分析情報が上記既知分析情報記憶手段に登録されているのか否かを判断するにあたって、攻撃対象となったバッファを確保した関数からプログラム修正の施された関数までの呼び出し履歴が同じものとなるものについては、それ以降の関数呼び出し履歴が異なるものであっても同一のものとして扱って判断を行うことを、
特徴とするバッファオーバーフロー脆弱性分析方法。 - 請求項5又は6に記載のバッファオーバーフロー脆弱性分析方法において、
上記抽出した分析情報が上記既知分析情報記憶手段に登録されている場合に、その分析情報に対応付けて上記既知分析情報記憶手段に登録されている対処情報に基づいて、バッファオーバーフロー攻撃に対する対処処理を実行する過程を備えることを、
特徴とするバッファオーバーフロー脆弱性分析方法。 - バッファオーバーフロー攻撃の対象となったプログラムの修正を行う上で必要となる分析情報を、そのプログラムの開発者に提供するための処理を行うバッファオーバーフロー脆弱性分析システムで用いられるデータ処理装置であって、
バッファオーバーフロー攻撃の発生を検知する手段と、
プログラム開発者に提供する分析情報として、攻撃の対象となったバッファの存在する場所の情報と、そのバッファを確保した関数の情報とを抽出するとともに、そのバッファ確保からバッファオーバーフロー攻撃までの関数の呼び出し履歴の情報を抽出できる場合には、その情報を抽出する手段とを備えることを、
特徴とするデータ処理装置。 - 請求項8に記載のデータ処理装置において、
上記抽出する手段は、オーバーフロー発生時のフレームポインタから攻撃対象となったバッファの先頭をまたぐまでスタックトレースを行い、最終的にたどり着くフレームポインタの直前のフレームポインタに近接するリターンアドレスを抽出することで、バッファを確保した関数の情報を抽出することを、
特徴とするデータ処理装置。 - 請求項8に記載のデータ処理装置において、
上記抽出する手段は、オーバーフロー発生時のフレームポインタから攻撃対象となったバッファを確保した関数までスタックトレースを行うことで、バッファ確保からバッファオーバーフロー攻撃までの関数の呼び出し履歴の情報を抽出することを、
特徴とするデータ処理装置。 - 請求項8に記載のデータ処理装置において、
ヒープメモリ確保関数が呼び出されたときにスタックトップまでスタックトレースを行うことで関数の呼び出し履歴の情報を取得して、その情報をヒープメモリ上に確保されたバッファの情報に対応付けて記憶手段に記録する手段を備え、
上記抽出する手段は、攻撃の対象となったバッファがヒープメモリに存在することを抽出する場合には、上記記憶手段に記録される情報を参照することで、そのバッファを確保した関数の情報を抽出することを、
特徴とするデータ処理装置。 - バッファオーバーフロー攻撃の対象となったプログラムの修正を行う上で必要となる分析情報を、そのプログラムの開発者に提供するための処理を行うバッファオーバーフロー脆弱性分析システムで用いられる分析情報提供装置であって、
バッファオーバーフロー攻撃の発生を検知したデータ処理装置より送られてくる、攻撃の対象となったバッファの存在する場所の情報と、そのバッファを確保した関数の情報とを受信するとともに、これらの情報に加えて、そのバッファ確保からバッファオーバーフロー攻撃までの関数の呼び出し履歴の情報が送られてくる場合には、その情報を受信することで、プログラム開発者に提供する分析情報を受信する手段と、
プログラム開発者に提供済みの分析情報を記憶する既知分析情報記憶手段を参照することで、上記受信した分析情報が既にプログラム開発者に提供済みであるのか否かを判断する手段と、
上記受信した分析情報が上記既知分析情報記憶手段に登録されていない場合に、その受信した分析情報をプログラム開発者に提供する手段とを備えることを、
特徴とする分析情報提供装置。 - 請求項12に記載の分析情報提供装置において、
上記判断する手段は、上記受信した分析情報が上記既知分析情報記憶手段に登録されているのか否かを判断するにあたって、攻撃対象となったバッファを確保した関数からプログラム修正の施された関数までの呼び出し履歴が同じものとなるものについては、それ以降の関数呼び出し履歴が異なるものであっても同一のものとして扱って判断を行うことを、
特徴とする分析情報提供装置。 - 請求項12又は13に記載の分析情報提供装置において、
上記受信した分析情報が上記既知分析情報記憶手段に登録されている場合に、その分析情報に対応付けて上記既知分析情報記憶手段に登録されている対処情報に基づいて、バッファオーバーフロー攻撃に対する対処処理を実行する手段を備えることを、
特徴とする分析情報提供装置。 - 請求項8ないし11のいずれか1項に記載のデータ処理装置の持つ機能をコンピュータに実現させるための分析情報抽出処理用プログラム。
- 請求項12ないし14のいずれか1項に記載の分析情報提供装置の持つ機能をコンピュータに実現させるための分析情報提供処理用プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004234978A JP4643201B2 (ja) | 2004-08-12 | 2004-08-12 | バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004234978A JP4643201B2 (ja) | 2004-08-12 | 2004-08-12 | バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006053760A true JP2006053760A (ja) | 2006-02-23 |
JP4643201B2 JP4643201B2 (ja) | 2011-03-02 |
Family
ID=36031200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004234978A Expired - Fee Related JP4643201B2 (ja) | 2004-08-12 | 2004-08-12 | バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4643201B2 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019519056A (ja) * | 2016-06-16 | 2019-07-04 | ヴァーセック システムズ,インコーポレイテッド | コンピュータアプリケーション内のメモリ破損を修復するためのシステム及び方法 |
JP2019215847A (ja) * | 2018-06-11 | 2019-12-19 | 富士通株式会社 | バッファオーバーフローの低減 |
JP2021051745A (ja) * | 2019-09-23 | 2021-04-01 | 株式会社デンソー | コンピュータ装置およびメモリ管理方法 |
US11113407B2 (en) | 2014-06-24 | 2021-09-07 | Virsec Systems, Inc. | System and methods for automated detection of input and output validation and resource management vulnerability |
US11146572B2 (en) | 2013-09-12 | 2021-10-12 | Virsec Systems, Inc. | Automated runtime detection of malware |
US11599634B1 (en) | 2006-02-09 | 2023-03-07 | Virsec Systems, Inc. | System and methods for run time detection and correction of memory corruption |
US11816217B2 (en) * | 2020-04-10 | 2023-11-14 | Vmware, Inc. | Decoy memory allocation |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0922369A (ja) * | 1995-07-07 | 1997-01-21 | Fujitsu Ltd | マルチタスキング方式のカーネルにおける不正動作検出方法 |
JPH09128267A (ja) * | 1995-10-31 | 1997-05-16 | Nec Corp | データ処理装置およびデータ処理方法 |
JP2001216161A (ja) * | 2000-02-04 | 2001-08-10 | Internatl Business Mach Corp <Ibm> | メモリ装置、スタック保護システム、コンピュータシステム、コンパイラ、スタック保護方法、記憶媒体及びプログラム伝送装置 |
JP2002328896A (ja) * | 2001-04-27 | 2002-11-15 | Nippon Telegr & Teleph Corp <Ntt> | 不正アクセス対処ルール自動設定装置 |
-
2004
- 2004-08-12 JP JP2004234978A patent/JP4643201B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0922369A (ja) * | 1995-07-07 | 1997-01-21 | Fujitsu Ltd | マルチタスキング方式のカーネルにおける不正動作検出方法 |
JPH09128267A (ja) * | 1995-10-31 | 1997-05-16 | Nec Corp | データ処理装置およびデータ処理方法 |
JP2001216161A (ja) * | 2000-02-04 | 2001-08-10 | Internatl Business Mach Corp <Ibm> | メモリ装置、スタック保護システム、コンピュータシステム、コンパイラ、スタック保護方法、記憶媒体及びプログラム伝送装置 |
JP2002328896A (ja) * | 2001-04-27 | 2002-11-15 | Nippon Telegr & Teleph Corp <Ntt> | 不正アクセス対処ルール自動設定装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11599634B1 (en) | 2006-02-09 | 2023-03-07 | Virsec Systems, Inc. | System and methods for run time detection and correction of memory corruption |
US11146572B2 (en) | 2013-09-12 | 2021-10-12 | Virsec Systems, Inc. | Automated runtime detection of malware |
US11113407B2 (en) | 2014-06-24 | 2021-09-07 | Virsec Systems, Inc. | System and methods for automated detection of input and output validation and resource management vulnerability |
JP2019519056A (ja) * | 2016-06-16 | 2019-07-04 | ヴァーセック システムズ,インコーポレイテッド | コンピュータアプリケーション内のメモリ破損を修復するためのシステム及び方法 |
US11409870B2 (en) | 2016-06-16 | 2022-08-09 | Virsec Systems, Inc. | Systems and methods for remediating memory corruption in a computer application |
JP2019215847A (ja) * | 2018-06-11 | 2019-12-19 | 富士通株式会社 | バッファオーバーフローの低減 |
JP2021051745A (ja) * | 2019-09-23 | 2021-04-01 | 株式会社デンソー | コンピュータ装置およびメモリ管理方法 |
US11816217B2 (en) * | 2020-04-10 | 2023-11-14 | Vmware, Inc. | Decoy memory allocation |
Also Published As
Publication number | Publication date |
---|---|
JP4643201B2 (ja) | 2011-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10460099B2 (en) | System and method of detecting malicious code in files | |
US9846779B2 (en) | Detecting a return-oriented programming exploit | |
JP4518564B2 (ja) | 不正コード実行の防止方法、不正コード実行の防止用プログラム、及び不正コード実行の防止用プログラムの記録媒体 | |
CN106991324B (zh) | 一种基于内存保护类型监控的恶意代码跟踪识别方法 | |
US8719935B2 (en) | Mitigating false positives in malware detection | |
US10691800B2 (en) | System and method for detection of malicious code in the address space of processes | |
KR102075372B1 (ko) | 안전한 도메인과 덜 안전한 도메인을 갖는 데이터 처리장치에서의 예외처리 | |
AU2006210698B2 (en) | Intrusion detection for computer programs | |
US8763128B2 (en) | Apparatus and method for detecting malicious files | |
US20080148399A1 (en) | Protection against stack buffer overrun exploitation | |
US20130239214A1 (en) | Method for detecting and removing malware | |
CN102737188A (zh) | 检测恶意网页的方法及装置 | |
CN107330328B (zh) | 防御病毒攻击的方法、装置及服务器 | |
US9910983B2 (en) | Malware detection | |
KR101064164B1 (ko) | 리눅스 커널 기반 스마트 플랫폼 내에서의 커널 무결성 검사 및 변조된 커널 데이터 복구 방법 | |
JP4643201B2 (ja) | バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム | |
CN109472135B (zh) | 一种检测进程注入的方法、装置及存储介质 | |
US11194899B2 (en) | Apparatus and methods for transitioning between a secure area and a less-secure area | |
CN109583206B (zh) | 监控应用程序的访问进程的方法、装置、设备及存储介质 | |
KR20100026195A (ko) | 시스템 보호 장치 및 방법 | |
CN112784261A (zh) | 用于程序运行的方法及相应的系统、计算机设备和介质 | |
EP3040895A1 (en) | System and method for protecting a device against return-oriented programming attacks | |
EP3293660A1 (en) | System and method of detecting malicious code in files | |
JP4358648B2 (ja) | スタックスマッシング攻撃防御方法、スタックスマッシング攻撃防御装置及びスタックスマッシング攻撃防御プログラム | |
JP7476140B2 (ja) | 情報処理装置、情報処理方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060725 |
|
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: 20091204 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20091204 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20100331 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100420 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100601 |
|
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: 20101130 |
|
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: 20101202 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4643201 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: 20131210 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |