JP4572259B1 - 情報機器、プログラム及び不正なプログラムコードの実行防止方法 - Google Patents
情報機器、プログラム及び不正なプログラムコードの実行防止方法 Download PDFInfo
- Publication number
- JP4572259B1 JP4572259B1 JP2009107294A JP2009107294A JP4572259B1 JP 4572259 B1 JP4572259 B1 JP 4572259B1 JP 2009107294 A JP2009107294 A JP 2009107294A JP 2009107294 A JP2009107294 A JP 2009107294A JP 4572259 B1 JP4572259 B1 JP 4572259B1
- Authority
- JP
- Japan
- Prior art keywords
- program code
- return
- detected
- function
- address
- 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
- 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
- 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
- G06F21/54—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 by adding security routines or objects to programs
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
【解決手段】情報機器1は、メモリに展開された各プログラムコードと中央制御部との協働によりデータ処理を行い、フック処理によって、プログラムコードの呼び出し時を検出し、スタックレイアウトチェック処理によって、RAM30に展開された各プログラムコードのリターンアドレスを順次取得して、この取得されたリターンアドレスが示す先のアドレスに基づいて不正アクセスを検出し、不正アクセスが検出された場合にはデータ処理を停止させる。
【選択図】図4
Description
図9に、プログラムコードのソースコードを例示する概念図を示す。図9に示すプログラムコードは、main()関数から開始され、main()関数の中でstrcpy_helloworld()関数を呼び出している。このプログラムコードでは、strcpy_helloworld()関数の中で「Hello!」という文字列を用意し、main()関数のprintf()関数でこの文字列をモニタ等に表示させている。なお、関数とは、所定の機能をモジュール化してまとめたサブルーチンやサブプログラムなどであり、メインとなるプログラム内で随時呼び出すことができる。
メモリに展開された各プログラムコードと中央制御部との協働によりデータ処理を行う情報機器であって、
前記メモリは、前記各プログラムコードのリターンアドレスを格納するスタック領域を備え、
前記いずれかのプログラムコードの呼び出し時を検出する検出手段と、
前記検出手段により検出されたプログラムコードの呼び出し時に、前記スタック領域に格納された各プログラムコードの複数のリターンアドレスをスタックレイアウトを解析することによりトレースして順次取得するリターンアドレス取得手段と、
前記検出手段により検出されたプログラムコードの呼び出し時に、前記リターンアドレス取得手段により順次取得されたリターンアドレスが示す先のアドレスが関数の開始アドレスである場合に不正アクセスを検出し、当該不正アクセスが検出された場合には、前記データ処理を停止させる停止手段と、
を備える。
各プログラムコードを展開するとともに当該展開された各プログラムコードのリターンアドレスを格納するスタック領域を備えるメモリに展開された各プログラムコードを実行するコンピュータを、
前記いずれかのプログラムコードの呼び出し時を検出する検出手段、
前記検出手段により検出されたプログラムコードの呼び出し時に、前記スタック領域に格納された各プログラムコードの複数のリターンアドレスをスタックレイアウトを解析することによりトレースして順次取得するリターンアドレス取得手段、
前記検出手段により検出されたプログラムコードの呼び出し時に、前記リターンアドレス取得手段により順次取得されたリターンアドレスが示す先のアドレスが関数の開始アドレスである場合に不正アクセスを検出し、当該不正アクセスが検出された場合には、前記データ処理を停止させる停止手段、
として機能させる。
各プログラムコードを展開するとともに当該展開された各プログラムコードのリターンアドレスを格納するスタック領域を備えるメモリに展開された各プログラムコードを実行するコンピュータにおける不正なプログラムコードの実行防止方法であって、
前記いずれかのプログラムコードの呼び出し時を検出し、当該検出されたプログラムコードの呼び出し時において、前記スタック領域に格納された各プログラムコードの複数のリターンアドレスをスタックレイアウトを解析することによりトレースして順次取得し、当該取得されたリターンアドレスが示す先のアドレスが関数の開始アドレスである場合に不正アクセスを検出し、当該不正アクセスが検出された場合には、前記データ処理を停止させる。
図1に、情報機器1の機能的構成を模式的に示す。図1に示すように、情報機器1は、CPU10、記憶部20、RAM30、操作部40、表示部50、I/F部60を有する。上記情報機器1の各部はバス70により電気的に接続されている。具体的には、情報機器1は、PC、WS、PDA(Personal Digital Assistant)、携帯電話等である。
CALL命令であると判断された場合(ステップS15;YES)、未チェックのリターンアドレスが存在するか否かが判定される(ステップS16)。
未チェックのリターンアドレスが存在すると判断されない場合(ステップS16;NO)、正常終了としてチェック対象であるWinExec()が実行される。
10 CPU
20 記憶部
30 RAM
40 操作部
50 表示部
60 I/F部
70 バス
Claims (3)
- メモリに展開された各プログラムコードと中央制御部との協働によりデータ処理を行う情報機器であって、
前記メモリは、前記各プログラムコードのリターンアドレスを格納するスタック領域を備え、
前記いずれかのプログラムコードの呼び出し時を検出する検出手段と、
前記検出手段により検出されたプログラムコードの呼び出し時に、前記スタック領域に格納された各プログラムコードの複数のリターンアドレスをスタックレイアウトを解析することによりトレースして順次取得するリターンアドレス取得手段と、
前記検出手段により検出されたプログラムコードの呼び出し時に、前記リターンアドレス取得手段により順次取得されたリターンアドレスが示す先のアドレスが関数の開始アドレスである場合に不正アクセスを検出し、当該不正アクセスが検出された場合には、前記データ処理を停止させる停止手段と、
を備える情報機器。 - 各プログラムコードを展開するとともに当該展開された各プログラムコードのリターンアドレスを格納するスタック領域を備えるメモリに展開された各プログラムコードを実行するコンピュータを、
前記いずれかのプログラムコードの呼び出し時を検出する検出手段、
前記検出手段により検出されたプログラムコードの呼び出し時に、前記スタック領域に格納された各プログラムコードの複数のリターンアドレスをスタックレイアウトを解析することによりトレースして順次取得するリターンアドレス取得手段、
前記検出手段により検出されたプログラムコードの呼び出し時に、前記リターンアドレス取得手段により順次取得されたリターンアドレスが示す先のアドレスが関数の開始アドレスである場合に不正アクセスを検出し、当該不正アクセスが検出された場合には、前記データ処理を停止させる停止手段、
として機能させるためのプログラム。 - 各プログラムコードを展開するとともに当該展開された各プログラムコードのリターンアドレスを格納するスタック領域を備えるメモリに展開された各プログラムコードを実行するコンピュータにおける不正なプログラムコードの実行防止方法であって、
前記いずれかのプログラムコードの呼び出し時を検出し、当該検出されたプログラムコードの呼び出し時において、前記スタック領域に格納された各プログラムコードの複数のリターンアドレスをスタックレイアウトを解析することによりトレースして順次取得し、当該取得されたリターンアドレスが示す先のアドレスが関数の開始アドレスである場合に不正アクセスを検出し、当該不正アクセスが検出された場合には、前記データ処理を停止させる不正なプログラムコードの実行防止方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009107294A JP4572259B1 (ja) | 2009-04-27 | 2009-04-27 | 情報機器、プログラム及び不正なプログラムコードの実行防止方法 |
CN201080018527.7A CN102422299B (zh) | 2009-04-27 | 2010-04-12 | 信息设备以及防止执行不正当程序代码的方法 |
PCT/JP2010/056500 WO2010125902A1 (ja) | 2009-04-27 | 2010-04-12 | 情報機器、プログラム、不正なプログラムコードの実行防止方法及びコンピュータ読み取り可能な記録媒体 |
EP10769601.5A EP2426618B1 (en) | 2009-04-27 | 2010-04-12 | Information device, program, method for preventing execution of unauthorized program code, and computer readable recording medium |
US13/266,667 US9177136B2 (en) | 2009-04-27 | 2010-04-12 | Information device, program, method, and computer readable recording medium for preventing execution of malicious program code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009107294A JP4572259B1 (ja) | 2009-04-27 | 2009-04-27 | 情報機器、プログラム及び不正なプログラムコードの実行防止方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP4572259B1 true JP4572259B1 (ja) | 2010-11-04 |
JP2010257275A JP2010257275A (ja) | 2010-11-11 |
Family
ID=43032055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009107294A Active JP4572259B1 (ja) | 2009-04-27 | 2009-04-27 | 情報機器、プログラム及び不正なプログラムコードの実行防止方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9177136B2 (ja) |
EP (1) | EP2426618B1 (ja) |
JP (1) | JP4572259B1 (ja) |
CN (1) | CN102422299B (ja) |
WO (1) | WO2010125902A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017522637A (ja) * | 2014-06-27 | 2017-08-10 | マカフィー, インコーポレイテッド | 悪意呼を軽減するシステムおよび方法 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073818A (zh) * | 2011-01-17 | 2011-05-25 | 北京神州绿盟信息安全科技股份有限公司 | 一种漏洞检测设备和方法 |
GB2510641A (en) * | 2013-02-12 | 2014-08-13 | F Secure Corp | Detecting suspicious code injected into a process if function call return address points to suspicious memory area |
WO2015094189A1 (en) * | 2013-12-17 | 2015-06-25 | Intel Corporation | Detection of unauthorized memory modification and access using transactional memory |
KR101445634B1 (ko) * | 2014-01-27 | 2014-10-06 | 주식회사 이글루시큐리티 | 프로그램의 취약점을 이용한 공격의 탐지 장치 및 방법 |
US9904780B2 (en) * | 2014-07-31 | 2018-02-27 | Nec Corporation | Transparent detection and extraction of return-oriented-programming attacks |
EP2996034B1 (en) | 2014-09-11 | 2018-08-15 | Nxp B.V. | Execution flow protection in microcontrollers |
US10867031B2 (en) * | 2015-07-23 | 2020-12-15 | Apple Inc. | Marking valid return targets |
US10049214B2 (en) * | 2016-09-13 | 2018-08-14 | Symantec Corporation | Systems and methods for detecting malicious processes on computing devices |
CN106919838B (zh) * | 2016-11-10 | 2020-11-03 | 深圳市安之天信息技术有限公司 | 一种恶意代码加密配置定位方法及系统 |
US10467407B2 (en) * | 2017-03-30 | 2019-11-05 | Check Point Advanced Threat Prevention Ltd. | Method and system for detecting kernel corruption exploits |
JP6720993B2 (ja) * | 2018-03-07 | 2020-07-08 | オムロン株式会社 | サポート装置およびサポートプログラム |
CN110874301B (zh) * | 2018-08-30 | 2022-09-13 | 腾讯科技(深圳)有限公司 | 程序卡顿信息的获取方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004126854A (ja) * | 2002-10-01 | 2004-04-22 | Mitsubishi Electric Corp | 攻撃対策装置 |
US20040133777A1 (en) * | 2002-12-19 | 2004-07-08 | Kiriansky Vladimir L. | Secure execution of a computer program |
WO2005024630A1 (ja) * | 2003-09-04 | 2005-03-17 | Science Park Corporation | 不正コード実行の防止方法および防止プログラム |
US20050166001A1 (en) * | 2004-01-22 | 2005-07-28 | Matthew Conover | Return-to-LIBC attack detection using branch trace records system and method |
JP2007286686A (ja) * | 2006-04-12 | 2007-11-01 | Ntt Docomo Inc | ソフトウェア動作モデル化装置、ソフトウェア動作監視装置、ソフトウェア動作モデル化方法及びソフトウェア動作監視方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7941647B2 (en) * | 1999-01-28 | 2011-05-10 | Ati Technologies Ulc | Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination |
JP4170604B2 (ja) * | 2001-04-18 | 2008-10-22 | 株式会社東芝 | 不揮発性半導体メモリ |
JP4027776B2 (ja) | 2002-10-25 | 2007-12-26 | 有限会社クリプトソフトウエア | データ処理システム、処理装置及びコンピュータプログラム |
JP4320013B2 (ja) * | 2003-02-26 | 2009-08-26 | 株式会社セキュアウェア | 不正処理判定方法、データ処理装置、コンピュータプログラム、及び記録媒体 |
US7287283B1 (en) * | 2003-09-25 | 2007-10-23 | Symantec Corporation | Return-to-LIBC attack blocking system and method |
GB2423849A (en) * | 2004-01-15 | 2006-09-06 | Matsushita Electric Ind Co Ltd | Information-processing method and apparatus |
GB0509738D0 (en) * | 2005-05-12 | 2005-06-22 | Cambridge Consultants | Processor and interface |
US7945953B1 (en) * | 2005-07-06 | 2011-05-17 | Symantec Corporation | Method to identify buffer overflows and RLIBC attacks |
JP4732874B2 (ja) | 2005-11-28 | 2011-07-27 | 株式会社エヌ・ティ・ティ・ドコモ | ソフトウェア動作モデル化装置、ソフトウェア動作監視装置、ソフトウェア動作モデル化方法及びソフトウェア動作監視方法 |
JP2007304954A (ja) * | 2006-05-12 | 2007-11-22 | Sharp Corp | メモリ保護機能を有するコンピュータシステム |
US20080016314A1 (en) * | 2006-07-12 | 2008-01-17 | Lixin Li | Diversity-based security system and method |
US8135994B2 (en) * | 2006-10-30 | 2012-03-13 | The Trustees Of Columbia University In The City Of New York | Methods, media, and systems for detecting an anomalous sequence of function calls |
JP5081480B2 (ja) | 2007-03-28 | 2012-11-28 | 株式会社エヌ・ティ・ティ・ドコモ | ソフトウェア挙動モデル化装置、ソフトウェア挙動モデル化方法、ソフトウェア挙動検証装置及びソフトウェア挙動検証方法 |
JP2008250387A (ja) * | 2007-03-29 | 2008-10-16 | Toshiba Corp | 情報処理装置 |
DE102007025397B4 (de) * | 2007-05-31 | 2010-07-15 | Advanced Micro Devices, Inc., Sunnyvale | System mit mehreren Prozessoren und Verfahren zu seinem Betrieb |
US8141163B2 (en) * | 2007-07-31 | 2012-03-20 | Vmware, Inc. | Malicious code detection |
US8613096B2 (en) * | 2007-11-30 | 2013-12-17 | Microsoft Corporation | Automatic data patch generation for unknown vulnerabilities |
US8745703B2 (en) * | 2008-06-24 | 2014-06-03 | Microsoft Corporation | Identifying exploitation of vulnerabilities using error report |
WO2010134325A1 (ja) * | 2009-05-20 | 2010-11-25 | 日本電気株式会社 | 動的データフロー追跡方法、動的データフロー追跡プログラム、動的データフロー追跡装置 |
-
2009
- 2009-04-27 JP JP2009107294A patent/JP4572259B1/ja active Active
-
2010
- 2010-04-12 CN CN201080018527.7A patent/CN102422299B/zh active Active
- 2010-04-12 US US13/266,667 patent/US9177136B2/en active Active
- 2010-04-12 EP EP10769601.5A patent/EP2426618B1/en active Active
- 2010-04-12 WO PCT/JP2010/056500 patent/WO2010125902A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004126854A (ja) * | 2002-10-01 | 2004-04-22 | Mitsubishi Electric Corp | 攻撃対策装置 |
US20040133777A1 (en) * | 2002-12-19 | 2004-07-08 | Kiriansky Vladimir L. | Secure execution of a computer program |
WO2005024630A1 (ja) * | 2003-09-04 | 2005-03-17 | Science Park Corporation | 不正コード実行の防止方法および防止プログラム |
US20050166001A1 (en) * | 2004-01-22 | 2005-07-28 | Matthew Conover | Return-to-LIBC attack detection using branch trace records system and method |
JP2007286686A (ja) * | 2006-04-12 | 2007-11-01 | Ntt Docomo Inc | ソフトウェア動作モデル化装置、ソフトウェア動作監視装置、ソフトウェア動作モデル化方法及びソフトウェア動作監視方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017522637A (ja) * | 2014-06-27 | 2017-08-10 | マカフィー, インコーポレイテッド | 悪意呼を軽減するシステムおよび方法 |
US10204223B2 (en) | 2014-06-27 | 2019-02-12 | Mcafee, Llc | System and method to mitigate malicious calls |
Also Published As
Publication number | Publication date |
---|---|
CN102422299B (zh) | 2015-05-06 |
WO2010125902A1 (ja) | 2010-11-04 |
EP2426618A4 (en) | 2013-08-07 |
EP2426618B1 (en) | 2015-06-17 |
US20120047579A1 (en) | 2012-02-23 |
US9177136B2 (en) | 2015-11-03 |
CN102422299A (zh) | 2012-04-18 |
JP2010257275A (ja) | 2010-11-11 |
EP2426618A1 (en) | 2012-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4572259B1 (ja) | 情報機器、プログラム及び不正なプログラムコードの実行防止方法 | |
JP4793733B2 (ja) | 高インテグリティファームウェア | |
EP2979219B1 (en) | Suspicious program detection | |
Bojinov et al. | Address space randomization for mobile devices | |
JP7154365B2 (ja) | ソフトウェアコードをセキュアにするための方法 | |
JP4927231B1 (ja) | プログラム、情報機器、及び不正アクセス検出方法 | |
JPWO2005024630A1 (ja) | 不正コードの防止方法および防止プログラム | |
CN112231702B (zh) | 应用保护方法、装置、设备及介质 | |
CN109977671B (zh) | 一种基于编译器修改的Android锁屏型勒索软件检测方法 | |
US20160171213A1 (en) | Apparatus and method for controlling instruction execution to prevent illegal accesses to a computer | |
US20090144828A1 (en) | Rapid signatures for protecting vulnerable browser configurations | |
US8407523B2 (en) | Method for protecting software programs | |
JP2009199529A (ja) | 情報機器、プログラム及び不正なプログラムコードの実行防止方法 | |
JP5955475B1 (ja) | プログラム、情報処理装置、及び情報処理方法 | |
JP6906057B2 (ja) | ソフトウェアコードをセキュアにするための方法 | |
CN111881485B (zh) | 一种基于arm指针验证的内核敏感数据完整性保护方法 | |
CN108334351A (zh) | 一种修改启动顺序的方法及装置 | |
CN113139190A (zh) | 程序文件检测方法、装置、电子设备及存储介质 | |
KR102421394B1 (ko) | 하드웨어와 소프트웨어 기반 트레이싱을 이용한 악성코드 탐지 장치 및 방법 | |
CN113391874B (zh) | 一种虚拟机检测对抗方法、装置、电子设备及存储介质 | |
CN110750782B (zh) | 一种程序退出的方法及相关设备 | |
US20240281361A1 (en) | Bintyper: type confusion bug detection for c++ program binaries | |
CN117034278A (zh) | 漏洞检测方法、装置、存储介质及电子设备 | |
Feng-Yi et al. | Memory vulnerability diagnosis for binary program | |
CN111625824A (zh) | 基于iast的安全测试方法、装置、电子装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100816 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130820 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4572259 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130820 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |