JP6984710B2 - コンピュータ装置およびメモリ管理方法 - Google Patents
コンピュータ装置およびメモリ管理方法 Download PDFInfo
- Publication number
- JP6984710B2 JP6984710B2 JP2020158010A JP2020158010A JP6984710B2 JP 6984710 B2 JP6984710 B2 JP 6984710B2 JP 2020158010 A JP2020158010 A JP 2020158010A JP 2020158010 A JP2020158010 A JP 2020158010A JP 6984710 B2 JP6984710 B2 JP 6984710B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- computer device
- processor
- function call
- control flow
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- 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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/143—Reconfiguring to eliminate the error with loss of software functionality
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- 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/1479—Generic software techniques for error detection or fault masking
- G06F11/1492—Generic software techniques for error detection or fault masking by run-time replication performed by the application software
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- 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/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- 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/3668—Software testing
-
- 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
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Description
Claims (20)
- メモリと、
プロセスを実行し、そのプロセスのためメモリを管理するように構成された少なくとも1つのプロセッサと、を備え、
少なくとも1つのプロセッサは、
アプリケーションに関連付けられた1つ以上のプログラム命令を実行し、
1つ以上のプログラム命令の制御フロー転送に達し、
ターゲット制御フローの不遵守に応じて、1つ以上のプログラム命令に関連付けられたコールスタックを展開し、
問題のある関数コールを特定し、そして、
問題のある関数コールを書き換える、ように構成され、
書き換えられる関数コールは、メモリ操作境界チェックを含む、コンピュータ装置。 - プロセッサは、ターゲット制御フローの不遵守に応じて、メモリへの書き込み許可を有効化するようにさらに構成される、請求項1に記載のコンピュータ装置。
- プロセッサは、問題のある関数コールの書き換えに応じて、メモリへの書き込み許可を無効化するようにさらに構成される、請求項2に記載のコンピュータ装置。
- プロセスは、ランタイム動作中に発生するように構成される、請求項1に記載のコンピュータ装置。
- プロセッサは、問題のある関数コールのデータサイズ制限を判定するようにさらに構成される、請求項1に記載のコンピュータ装置。
- メモリ操作境界チェックは、データサイズ制限に関連付けられる、請求項5に記載のコンピュータ装置。
- プロセッサで実行するプロセスのためメモリを管理する方法であって、
メモリに格納され、アプリケーションに関連付けられた1つ以上のプログラム命令を実行すること、
1つ以上のプログラム命令の制御フロー転送に達すること、
ターゲット制御フローの不遵守に応じて、1つ以上のプログラム命令に関連付けられたコールスタックを展開すること、
問題のある関数コールを特定すること、そして、
問題のある関数コールを書き換えること、を含み、
書き換えられる関数コールは、メモリ操作境界チェックを含む、方法。 - 方法は、プログラムコールスタックを以前の状態に復元するステップをさらに含む請求項7に記載の方法。
- 方法は、ターゲット制御フローの不遵守に応じて、前記メモリに対する書き込み許可を有効化するステップをさらに含む、請求項7に記載の方法。
- 方法は、問題のある関数コールの書き換えに応じて、前記メモリに対する書き込み許可を無効化するステップをさらに含む、請求項9に記載の方法。
- 方法は、ランタイム動作中に行われる、請求項7に記載の方法。
- プロセッサは、問題のある関数コールのデータサイズ制限を判定するようにさらに構成される、請求項7に記載の方法。
- メモリ操作境界チェックは、データサイズ制限に関連付けられる、請求項12に記載の方法。
- メモリと、
プロセスを実行し、そのプロセスのためメモリを管理するように構成された少なくとも1つのプロセッサと、を備え、
少なくとも1つのプロセッサは、
アプリケーションに関連付けられた1つ以上のプログラム命令を実行し、
1つ以上のプログラム命令の制御フロー転送に達し、
ターゲット制御フローの不遵守に応じて、1つ以上のプログラム命令に関連付けられたコールスタックを展開し、
問題のある関数コールおよびその問題のある関数コールに関連付けられたメモリ内のレジスタのデータサイズ制限を特定し、そして、
問題のある関数コールを書き換えるように構成され、
書き換えられた関数コールは、メモリ操作境界チェックを含む、車両内のコンピュータ装置。 - プロセッサは、プログラムコールスタックを以前の状態に復元するように構成される請求項14に記載のコンピュータ装置。
- プロセッサは、ターゲット制御フローの不遵守に応じて、メモリへの書き込み許可を有効化するようにさらに構成される、請求項14に記載のコンピュータ装置。
- プロセッサは、問題のある関数コールの書き換えに応じて、メモリへの書き込み許可を無効化するようにさらに構成される、請求項16に記載のコンピュータ装置。
- プロセスは、ランタイム動作中に行われるように構成される、請求項14に記載のコンピュータ装置。
- プロセッサは、問題のある関数コールのデータサイズ制限を判定するようにさらに構成される、請求項14に記載のコンピュータ装置。
- メモリ操作境界チェックは、データサイズ制限に関連付けられる、請求項19に記載のコンピュータ装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/578,455 | 2019-09-23 | ||
US16/578,455 US11163645B2 (en) | 2019-09-23 | 2019-09-23 | Apparatus and method of control flow integrity enforcement utilizing boundary checking |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021051745A JP2021051745A (ja) | 2021-04-01 |
JP6984710B2 true JP6984710B2 (ja) | 2021-12-22 |
Family
ID=74846199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020158010A Active JP6984710B2 (ja) | 2019-09-23 | 2020-09-21 | コンピュータ装置およびメモリ管理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11163645B2 (ja) |
JP (1) | JP6984710B2 (ja) |
CN (1) | CN112541178A (ja) |
DE (1) | DE102020124498A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3605374A1 (en) * | 2018-08-03 | 2020-02-05 | Hewlett-Packard Development Company, L.P. | Intrusion resilient applications |
US11983094B2 (en) * | 2019-12-05 | 2024-05-14 | Microsoft Technology Licensing, Llc | Software diagnostic context selection and use |
US20220365838A1 (en) * | 2021-05-12 | 2022-11-17 | Nxp Usa, Inc. | System and method for improved control flow monitoring of processors |
US11874740B2 (en) * | 2021-12-21 | 2024-01-16 | Dell Products L.P. | Techniques for avoiding and reducing data unavailability |
WO2024020162A1 (en) * | 2022-07-22 | 2024-01-25 | Cisco Technology, Inc. | Control flow integrity enforcement for applications running on platforms |
WO2024085931A2 (en) * | 2022-07-22 | 2024-04-25 | Cisco Technology, Inc. | Control flow integrity monitoring for applications running on platforms |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6578094B1 (en) * | 2000-03-02 | 2003-06-10 | International Business Machines Corporation | Method for preventing buffer overflow attacks |
US7017153B2 (en) * | 2001-12-13 | 2006-03-21 | Hewlett-Packard Development Company, L.P. | Uninstrumenting in-line code instrumentation via stack unwinding and cleanup |
US7401234B2 (en) * | 2004-03-01 | 2008-07-15 | Freescale Semiconductor, Inc. | Autonomous memory checker for runtime security assurance and method therefore |
EP1630710B1 (en) * | 2004-07-21 | 2019-11-06 | Microsoft Technology Licensing, LLC | Containment of worms |
JP4643201B2 (ja) * | 2004-08-12 | 2011-03-02 | 日本電信電話株式会社 | バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム |
US8510596B1 (en) | 2006-02-09 | 2013-08-13 | Virsec Systems, Inc. | System and methods for run time detection and correction of memory corruption |
US8924782B2 (en) | 2007-01-26 | 2014-12-30 | The Trustees Of Columbia University In The City Of New York | Systems, methods, and media for recovering an application from a fault or attack |
US20100070678A1 (en) * | 2008-09-12 | 2010-03-18 | Vmware, Inc. | Saving and Restoring State Information for Virtualized Computer Systems |
US9111036B2 (en) * | 2010-04-30 | 2015-08-18 | Red Hat, Inc. | Preloading unwind data for non-intrusive backtracing |
JP5740573B2 (ja) * | 2010-05-13 | 2015-06-24 | パナソニックIpマネジメント株式会社 | 情報処理装置および情報処理方法 |
US8701088B2 (en) * | 2010-05-28 | 2014-04-15 | Red Hat, Inc. | Generating backtracing information for software debugging of software programs running on virtual machines |
US9471461B2 (en) * | 2013-03-27 | 2016-10-18 | Nec Corporation | Guarding a monitoring scope and interpreting partial control flow context |
US10216934B2 (en) * | 2016-07-18 | 2019-02-26 | Crowdstrike, Inc. | Inferential exploit attempt detection |
WO2018176339A1 (en) * | 2017-03-30 | 2018-10-04 | Intel Corporation | Methods and apparatus to protect memory from buffer overflow and/or underflow |
JP6885226B2 (ja) * | 2017-07-03 | 2021-06-09 | 株式会社デンソー | 電子制御装置 |
JP6734481B2 (ja) * | 2017-07-10 | 2020-08-05 | 日本電信電話株式会社 | コールスタック取得装置、コールスタック取得方法、および、コールスタック取得プログラム |
US10489244B2 (en) | 2017-10-03 | 2019-11-26 | Microsoft Technology Licensing, Llc | Systems and methods for detecting and correcting memory corruptions in software |
US10705850B2 (en) * | 2017-10-11 | 2020-07-07 | Microsoft Technology Licensing, Llc | Stack frame unwinding for exception handling |
US10866869B2 (en) * | 2019-01-16 | 2020-12-15 | Vmware, Inc. | Method to perform crash and failure recovery for a virtualized checkpoint protected storage system |
-
2019
- 2019-09-23 US US16/578,455 patent/US11163645B2/en active Active
-
2020
- 2020-09-16 CN CN202010973287.1A patent/CN112541178A/zh active Pending
- 2020-09-21 JP JP2020158010A patent/JP6984710B2/ja active Active
- 2020-09-21 DE DE102020124498.3A patent/DE102020124498A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US11163645B2 (en) | 2021-11-02 |
US20210089400A1 (en) | 2021-03-25 |
DE102020124498A1 (de) | 2021-03-25 |
CN112541178A (zh) | 2021-03-23 |
JP2021051745A (ja) | 2021-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6984710B2 (ja) | コンピュータ装置およびメモリ管理方法 | |
US11748468B2 (en) | Dynamic switching between pointer authentication regimes | |
EP3123311B1 (en) | Malicious code protection for computer systems based on process modification | |
RU2691187C1 (ru) | Система и способы аудита виртуальной машины | |
US20180211046A1 (en) | Analysis and control of code flow and data flow | |
CN107690645B (zh) | 使用解释器虚拟机的行为恶意软件检测 | |
JP6370098B2 (ja) | 情報処理装置、情報処理監視方法、プログラム、及び記録媒体 | |
US20220335135A1 (en) | Vulnerability analysis and reporting for embedded systems | |
GB2577947A (en) | Verifying stack pointer | |
WO2017147441A1 (en) | Sub-execution environment controller | |
Yang et al. | Eavesdropping user credentials via GPU side channels on smartphones | |
Piromsopa et al. | Survey of protections from buffer-overflow attacks | |
JP2015166952A (ja) | 情報処理装置、情報処理監視方法、プログラム、及び記録媒体 | |
Malenko et al. | Device driver and system call isolation in embedded devices | |
US11556645B2 (en) | Monitoring control-flow integrity | |
Zhang et al. | DRSA: Debug Register-Based Self-relocating Attack Against Software-Based Remote Authentication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200921 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210922 |
|
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: 20211026 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211108 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6984710 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |