JP2009528632A - 実行可能コード変更の防止 - Google Patents
実行可能コード変更の防止 Download PDFInfo
- Publication number
- JP2009528632A JP2009528632A JP2008557407A JP2008557407A JP2009528632A JP 2009528632 A JP2009528632 A JP 2009528632A JP 2008557407 A JP2008557407 A JP 2008557407A JP 2008557407 A JP2008557407 A JP 2008557407A JP 2009528632 A JP2009528632 A JP 2009528632A
- Authority
- JP
- Japan
- Prior art keywords
- executable
- page
- computer
- executable code
- privilege
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
-
- 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
-
- 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
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
Abstract
【選択図】図6
Description
(例示的なコンピューティング環境)
図1を参照すると、示されているのは、前述したプロセスを実施することに関連して使用するのに適した例示的なコンピューティングデバイスを示すブロック図である。例えば、実行可能コード変更の防止のためのプロセスおよび方法を実行するコンピュータ実行可能命令が、図1に示されるようなコンピューティング環境に存在し、さらに/または実行されることが可能である。コンピューティングシステム環境220は、適切なコンピューティング環境の一例に過ぎず、本発明の用法または機能の範囲について何ら限定を示唆することは意図していない。また、コンピューティング環境220が、例示的な動作環境220に示されるコンポーネントのいずれか1つ、または組合せと関係する依存関係または要件を有すると解釈すべきでもない。例えば、コンピュータゲームコンソールが、前述したプロセスを実施することに関連して使用するために、後段で説明されるアイテムのようなアイテムを含むことも可能である。
(実行可能コード変更のハードウェア防止およびオペレーティングシステム防止)
次に図3を参照すると、示されているのは、特権検査を使用する実行可能コード変更の防止のプロセスを示す図である。実行可能メモリページの属性を割り当てる際、または変更する際に、呼び出し元が特権を有するかどうかを検査するサポートが、OS(オペレーティングシステム)メモリマネージャに追加される。Modern x64 CPUおよびAMD(登録商標)CPUが、実行可能ページのハードウェアベースの実施および追跡を可能にする。例えば、Windows XP(登録商標)Service Pack2から始まって、Windows(登録商標)の32ビットバージョンは、AMD(登録商標)によって規定されるNX(no−execute page−protection)プロセッサフィーチャ、またはIntel(登録商標)によって規定されるExecute Disableビットフィーチャを利用する。これらのプロセッサフィーチャを使用するため、プロセッサは、PAE(物理アドレス拡張)モードで実行されていなければならない。Windows XP(登録商標)の64ビットバージョンは、64ビット拡張上のNXプロセッサフィーチャ、およびIPFプロセッサ上のアクセス権PTE(ページテーブルエントリ)のいくつかの値を使用する。
PAE(物理アドレス拡張)が、イネーブルにされる場合、レガシー保護モード。
Intel(登録商標)Extended Memory 64 Technology(Intel(登録商標)EM64T)がイネーブルにされる場合、IA−32eモード。
Claims (20)
- 実行可能コード(305)をメモリ(232)に読み込む関数(505)を、コンピュータのOS(オペレーティングシステム)(258)の特権(310)リングに限定するステップを含む実行可能コード(305)変更の防止のための方法。
- 前記実行可能コードのページレベル保護を実施するステップをさらに含む請求項1に記載の方法。
- 前記実行可能コードの実行可能ページが割り当てられる際に、または前記実行可能ページの属性が変更される際に特権検査を呼び出すステップをさらに含む請求項2に記載の方法。
- 前記特権検査は、前記実行可能ページの前記割り当て、または前記実行可能ページの前記属性の変更を許す前に、前記OSの前記特権リングだけに割り当てられた特権が存在するかどうかを判定する請求項3に記載の方法。
- 前記実行可能コードが読み込まれた後、前記実行可能コードの完全性を検査するステップをさらに含む請求項4に記載の方法。
- 前記ページレベル保護は、ハードウェアベースの実施、および実行可能ページの追跡を使用して実行される請求項5に記載の方法。
- 請求項1に記載のステップを実行するための命令を有するコンピュータ可読媒体。
- 請求項2に記載のステップを実行するための命令を有するコンピュータ可読媒体。
- 請求項3に記載のステップを実行するための命令を有するコンピュータ可読媒体。
- 請求項4に記載のステップを実行するための命令を有するコンピュータ可読媒体。
- 請求項5に記載のステップを実行するための命令を有するコンピュータ可読媒体。
- 請求項6に記載のステップを実行するための命令を有するコンピュータ可読媒体。
- 実行可能コード(305)をメモリ(232)に読み込む関数(505)を、コンピュータのOS(オペレーティングシステム)(258)の特権(310)リングに限定するための手段を含む実行可能コード(305)変更の防止のためのシステム。
- 前記実行可能コードのページレベル保護を実施するための手段をさらに含む請求項13に記載のシステム。
- 前記実行可能コードの実行可能ページが割り当てられる際に、または前記実行可能ページの属性が変更される際に特権検査を呼び出すための手段をさらに含む請求項14に記載のシステム。
- 前記特権検査を呼び出すための前記手段は、前記実行可能ページの前記割り当て、または前記実行可能ページの前記属性の変更を許す前に、前記OSの前記特権リングだけに割り当てられた特権が存在するかどうかを判定する請求項15に記載のシステム。
- 前記実行可能コードが読み込まれた後、前記実行可能コードの完全性を検査するための手段をさらに含む請求項16に記載のシステム。
- ページレベル保護を実施するための前記手段は、ハードウェアベースの実施、および実行可能ページの追跡のための手段を含む請求項17に記載のシステム。
- データ(255)ページをメモリ(232)に読み込む関数(505)を、コンピュータのOS(オペレーティングシステム)(258)の特権(310)リングに限定するステップを含むデータ(255)ページの変更の防止のための方法。
- 請求項19に記載のステップを実行するための命令を有するコンピュータ可読媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/365,364 | 2006-03-01 | ||
US11/365,364 US20070234330A1 (en) | 2006-03-01 | 2006-03-01 | Prevention of executable code modification |
PCT/US2007/005398 WO2007103192A2 (en) | 2006-03-01 | 2007-02-28 | Prevention of executable code modification |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2009528632A true JP2009528632A (ja) | 2009-08-06 |
JP2009528632A5 JP2009528632A5 (ja) | 2010-04-02 |
JP4890569B2 JP4890569B2 (ja) | 2012-03-07 |
Family
ID=38475416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008557407A Expired - Fee Related JP4890569B2 (ja) | 2006-03-01 | 2007-02-28 | 実行可能コード変更の防止 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20070234330A1 (ja) |
EP (1) | EP1989627A4 (ja) |
JP (1) | JP4890569B2 (ja) |
KR (1) | KR20080103976A (ja) |
CN (1) | CN101395587B (ja) |
TW (1) | TW200809573A (ja) |
WO (1) | WO2007103192A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018519603A (ja) * | 2015-06-27 | 2018-07-19 | マカフィー,エルエルシー | シェルコードの検知 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2655545A1 (en) | 2006-06-19 | 2007-12-27 | Liquid Computing Corporation | Secure handle for intra-and inter-processor communications |
US8856938B2 (en) * | 2008-07-30 | 2014-10-07 | Oracle America, Inc. | Unvalidated privilege cap |
KR101895453B1 (ko) * | 2011-11-09 | 2018-10-25 | 삼성전자주식회사 | 이기종 컴퓨팅 환경에서 보안 강화 방법 및 장치 |
CN103268440B (zh) * | 2013-05-17 | 2016-01-06 | 广东电网公司电力科学研究院 | 可信内核动态完整性度量方法 |
US20140366045A1 (en) * | 2013-06-07 | 2014-12-11 | Microsoft Corporation | Dynamic management of composable api sets |
CN104462956B (zh) * | 2013-09-23 | 2017-07-25 | 安一恒通(北京)科技有限公司 | 一种获得操作系统控制权的方法和装置 |
WO2016122590A1 (en) * | 2015-01-30 | 2016-08-04 | Hewlett-Packard Development Company, L.P. | Processor state determination |
CN112100954B (zh) * | 2020-08-31 | 2024-07-09 | 北京百度网讯科技有限公司 | 验证芯片的方法、装置和计算机存储介质 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3916385A (en) * | 1973-12-12 | 1975-10-28 | Honeywell Inf Systems | Ring checking hardware |
US4809160A (en) * | 1985-10-28 | 1989-02-28 | Hewlett-Packard Company | Privilege level checking instruction for implementing a secure hierarchical computer system |
US5483649A (en) * | 1994-07-01 | 1996-01-09 | Ybm Technologies, Inc. | Personal computer security system |
US6775779B1 (en) * | 1999-04-06 | 2004-08-10 | Microsoft Corporation | Hierarchical trusted code for content protection in computers |
US6529985B1 (en) * | 2000-02-04 | 2003-03-04 | Ensim Corporation | Selective interception of system calls |
US6748592B1 (en) * | 2000-02-14 | 2004-06-08 | Xoucin, Inc. | Method and apparatus for protectively operating a data/information processing device |
US20040034794A1 (en) * | 2000-05-28 | 2004-02-19 | Yaron Mayer | System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages |
US6986052B1 (en) * | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
US7350204B2 (en) * | 2000-07-24 | 2008-03-25 | Microsoft Corporation | Policies for secure software execution |
US6854046B1 (en) * | 2001-08-03 | 2005-02-08 | Tensilica, Inc. | Configurable memory management unit |
US7921287B2 (en) * | 2001-08-13 | 2011-04-05 | Qualcomm Incorporated | Application level access privilege to a storage area on a computer device |
US6745307B2 (en) * | 2001-10-31 | 2004-06-01 | Hewlett-Packard Development Company, L.P. | Method and system for privilege-level-access to memory within a computer |
US7308576B2 (en) * | 2001-12-31 | 2007-12-11 | Intel Corporation | Authenticated code module |
US7603550B2 (en) * | 2002-04-18 | 2009-10-13 | Advanced Micro Devices, Inc. | Computer system including a secure execution mode-capable CPU and a security services processor connected via a secure communication path |
US7073042B2 (en) * | 2002-12-12 | 2006-07-04 | Intel Corporation | Reclaiming existing fields in address translation data structures to extend control over memory accesses |
US7594111B2 (en) * | 2002-12-19 | 2009-09-22 | Massachusetts Institute Of Technology | Secure execution of a computer program |
TWI229817B (en) * | 2003-01-07 | 2005-03-21 | Wistron Corp | Kernel-mode operating system of application program and method thereof |
US20050108516A1 (en) * | 2003-04-17 | 2005-05-19 | Robert Balzer | By-pass and tampering protection for application wrappers |
US7480655B2 (en) * | 2004-01-09 | 2009-01-20 | Webroor Software, Inc. | System and method for protecting files on a computer from access by unauthorized applications |
US7437759B1 (en) * | 2004-02-17 | 2008-10-14 | Symantec Corporation | Kernel mode overflow attack prevention system and method |
US20060036830A1 (en) * | 2004-07-31 | 2006-02-16 | Dinechin Christophe De | Method for monitoring access to virtual memory pages |
US20060047959A1 (en) * | 2004-08-25 | 2006-03-02 | Microsoft Corporation | System and method for secure computing |
KR100704721B1 (ko) * | 2004-09-10 | 2007-04-06 | (주) 세이프아이 | 실시간 감시를 통한 컴퓨터 보호 방법 및 이에 따라 보호되는 컴퓨터 보호 시스템과 실행가능한 파일이 보호되는 시스템 |
US7673345B2 (en) * | 2005-03-31 | 2010-03-02 | Intel Corporation | Providing extended memory protection |
US7607173B1 (en) * | 2005-10-31 | 2009-10-20 | Symantec Corporation | Method and apparatus for preventing rootkit installation |
-
2006
- 2006-03-01 US US11/365,364 patent/US20070234330A1/en not_active Abandoned
-
2007
- 2007-02-27 TW TW096106790A patent/TW200809573A/zh unknown
- 2007-02-28 JP JP2008557407A patent/JP4890569B2/ja not_active Expired - Fee Related
- 2007-02-28 CN CN2007800071768A patent/CN101395587B/zh not_active Expired - Fee Related
- 2007-02-28 EP EP07752120A patent/EP1989627A4/en not_active Withdrawn
- 2007-02-28 KR KR1020087021029A patent/KR20080103976A/ko not_active Application Discontinuation
- 2007-02-28 WO PCT/US2007/005398 patent/WO2007103192A2/en active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018519603A (ja) * | 2015-06-27 | 2018-07-19 | マカフィー,エルエルシー | シェルコードの検知 |
US10803165B2 (en) | 2015-06-27 | 2020-10-13 | Mcafee, Llc | Detection of shellcode |
Also Published As
Publication number | Publication date |
---|---|
EP1989627A2 (en) | 2008-11-12 |
US20070234330A1 (en) | 2007-10-04 |
CN101395587A (zh) | 2009-03-25 |
CN101395587B (zh) | 2011-09-07 |
WO2007103192A2 (en) | 2007-09-13 |
KR20080103976A (ko) | 2008-11-28 |
WO2007103192A3 (en) | 2007-11-01 |
JP4890569B2 (ja) | 2012-03-07 |
EP1989627A4 (en) | 2009-11-04 |
TW200809573A (en) | 2008-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4890569B2 (ja) | 実行可能コード変更の防止 | |
Priebe et al. | SGX-LKL: Securing the host OS interface for trusted execution | |
JP4916136B2 (ja) | アプリケーションにセキュリティを提供するシステムおよび方法 | |
US7836299B2 (en) | Virtualization of software configuration registers of the TPM cryptographic processor | |
JP4907603B2 (ja) | アクセス制御システムおよびアクセス制御方法 | |
US8615801B2 (en) | Software authorization utilizing software reputation | |
US7996687B2 (en) | Product for providing a scalable trusted platform module in a hypervisor environment | |
RU2390836C2 (ru) | Отображение достоверности из высоконадежной среды на незащищенную среду | |
US10255088B2 (en) | Modification of write-protected memory using code patching | |
US7966643B2 (en) | Method and system for securing a remote file system | |
US10083129B2 (en) | Code loading hardening by hypervisor page table switching | |
US9678687B2 (en) | User mode heap swapping | |
US10929537B2 (en) | Systems and methods of protecting data from malware processes | |
US20070162909A1 (en) | Reserving resources in an operating system | |
JP2014532201A (ja) | 仮想ゲストのメモリ保護の方法、システムおよびコンピュータプログラム | |
JP2008535117A (ja) | ソフトウェア保護 | |
US20170091444A1 (en) | Hardware-enforced code paths | |
KR20060050768A (ko) | 액세스 인가 api | |
JP2023504600A (ja) | アクセス制御システム及び方法 | |
US8601544B1 (en) | Computer system employing dual-band authentication using file operations by trusted and untrusted mechanisms | |
US7979865B2 (en) | Identifying separate threads executing within a single process | |
JP2005527905A (ja) | 実行可能なコードを格納するタンパーエビデントな取り外し可能な媒体 | |
US11748140B2 (en) | Virtual machine security policy implementation | |
Zhang et al. | SecureBus: towards application-transparent trusted computing with mandatory access control | |
JP4853671B2 (ja) | アクセス権限判定システム、アクセス権限判定方法及びアクセス権限判定プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100212 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110803 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111026 |
|
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: 20111118 |
|
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: 20111214 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141222 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |