JP6211158B2 - コンピュータセキュリティを増強する防御技術 - Google Patents

コンピュータセキュリティを増強する防御技術 Download PDF

Info

Publication number
JP6211158B2
JP6211158B2 JP2016184217A JP2016184217A JP6211158B2 JP 6211158 B2 JP6211158 B2 JP 6211158B2 JP 2016184217 A JP2016184217 A JP 2016184217A JP 2016184217 A JP2016184217 A JP 2016184217A JP 6211158 B2 JP6211158 B2 JP 6211158B2
Authority
JP
Japan
Prior art keywords
descriptor table
authority level
function
operating system
access authority
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
Application number
JP2016184217A
Other languages
English (en)
Other versions
JP2017037660A (ja
Inventor
エリック・アール・ノーサップ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2017037660A publication Critical patent/JP2017037660A/ja
Application granted granted Critical
Publication of JP6211158B2 publication Critical patent/JP6211158B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Description

本明細書は、コンピュータセキュリティに関する。
コンピュータシステムは、敵対的なソフトウェアアプリケーションまたはプロセス(例
えば、マルウェア、ウィルスなど)によって危険にさらされる可能性がある。敵対的なソ
フトウェアアプリケーションは、オペレーティングシステムカーネルに、敵対的なソフトウェアアプリケーションによって指定されるメモリ位置にデータを書き込ませる。例えば、敵対的なソフトウェアアプリケーションは、オペレーティングシステムに関連する欠陥および/または脆弱性を悪用することができ、オペレーティングシステムカーネルに、カ
ーネルに関連する命令を変更させる(例えば、ユーザもしくは他のソフトウェアがセキュ
リティ対策を回避することを可能にする、または、ユーザまたはソフトウェアの不正アクセスを許可するバックドアを挿入する)ことができる。別の例として、敵対的なソフトウ
ェアアプリケーションは、オペレーティングシステムカーネルに、中央処理装置(CPU)ま
たはオペレーティングシステムによって使用される様々なデータ構造またはテーブル(例
えば、割り込み記述子テーブル、グローバル記述子テーブルなど)に格納されたデータを
変更させることができる。加えて、敵対的なソフトウェアアプリケーションは、CPUに関
連するコマンドを使用して、CPUまたはオペレーティングシステムに関連するリソース(例えば、割り込み記述子テーブルまたはグローバル記述子テーブル)の位置を決定するため
に、オペレーティングシステムに関連する欠陥および/または脆弱性を悪用することがで
きる。例えば、敵対的なソフトウェアアプリケーションは、CPUに割り込み記述子テーブ
ルのアドレスを提供させるために、SIDT命令を使用することができる。
本明細書は、コンピュータセキュリティを改善するための防御技術に関連する技法を説明する。システムは、記述子テーブル(例えば、割り込み記述子テーブルまたはグローバ
ル記述子テーブル)を初期化することができ、記述子テーブルを異なるメモリ位置にマッ
ピングすることができる。記述子テーブルの1つのマッピングは、読み書き権限に関連付
けられてよく、記述子テーブルの第2のマッピングは、読み取り専用権限に関連付けられ
てよい。システムは、読み取り専用記述子テーブル(例えば、第2のマッピング)のアドレ
スを、CPUに提供することができる。CPUが、記述子テーブルの値を返すためにコマンドを受信すると、CPUは、読み取り専用記述子テーブルのアドレスを提供することができる。
オペレーティングシステムカーネルが、記述子テーブルを更新するために有効な命令(例
えば、敵対的なソフトウェアアプリケーションからの命令と対照的に、信頼できるプロセスから、またはオペレーティングシステムからの命令)を受信すると、オペレーティング
システムカーネルは、記述子テーブルにアクセスすることができ、記述子テーブルの値を更新することができる。
全体的に、本明細書に記載の主題の1つの革新的な態様は、第1の記述子テーブル、および記述子テーブルの第2のマッピングを初期化するアクションであって、記述子テーブル
の第1のマッピングが、第1の権限レベルに関連付けられ、記述子テーブルの第2のマッピ
ングが、第1の権限レベルとは異なる第2の権限レベルに関連付けられ、第1の記述子テー
ブルおよび第2の記述子テーブルが、ハードウェアプロセッサに関連付けられ、オペレー
ティングシステムカーネルによって初期化されるアクションと、記述子テーブルアドレス要求に応答して、第1の記述子テーブルに関連付けられたメモリアドレスを提供するアク
ションであって、記述子テーブル要求が、ソフトウェアプロセスによって提供されるアクションと、更新要求に応答して、第2の記述子テーブルを更新するアクションとを含む方
法で具体化されてよい。
本明細書に記載の主題の別の革新的な態様は、記述子テーブルを初期化するアクションであって、記述子テーブルが、オペレーティングシステムカーネルによって初期化され、ハードウェアプロセッサに関連付けられるアクションと、記述子テーブルに関連付けられた権限レベルを第1の権限レベルに変更するアクションと、更新要求に応答して、記述子
テーブルに関連付けられた権限レベルを第2の権限レベルに変更するアクションであって
、第2の権限レベルが、第1の権限レベルよりも高いアクションと、記述子テーブルが第2
の権限レベルに関連付けられている間に、記述子テーブルを更新するアクションであって、更新要求に基づくアクションと、記述子テーブルを更新した後に、記述子テーブルに関連付けられた権限レベルを第1の権限レベルに変更するアクションであって、オペレーテ
ィングシステムカーネルが、記述子テーブルに関連付けられた権限レベルを変更するステップとを含む方法で具体化されてよい。
本明細書に記載の主題の特定の実施形態は、以下の利点の1つまたは複数の実現するよ
うに実施され得る。例えば、ネットワークおよびコンピュータセキュリティは、敵対的なソフトウェアアプリケーションまたはマルウェアがCPUおよび/またはOSカーネルによって使用されるデータ構造(例えば、割り込み記述子テーブルおよびグローバル記述子テーブ
ル)にアクセスすること、またはこれを変更することを防止することによって、増強され
得る。加えて、オペレーティングシステムは、記述子テーブルの意図しない上書きが低減または防止され得るため、より容易にデバッグされ得る。
本明細書に記載の主題の1つまたは複数の実施形態の詳細は、添付図面および以下の説
明に記載される。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
コンピュータセキュリティを改善するための例示的なシステムを示す図である。 コンピュータセキュリティを改善するための例示的なプロセスのフローチャートである。 コンピュータセキュリティを改善するための例示的なプロセスのフローチャートである。
様々な図面中の同様の参照番号および名称は、同様の要素を示す。
図1は、コンピュータセキュリティを改善するための例示的なシステム100を示す。システム100は、CPU102、記述子テーブルレジスタ104、記述子テーブル106、記述子テーブル
の第1のマッピング107、エイリアス記述子テーブル108、メモリマップ110、オペレーティングシステムカーネル112、およびソフトウェアプロセス114を含む。CPU102は、様々なタイプのコンピュータプロセッサであってよい。例えば、CPU102は、x86プロセッサ、x86互換プロセッサ、またはx86プロセッサの64ビット系列(64 bit descendant) (例えば、Intel Core2またはAMD Opteron)であってよい。他のCPUが使用されてもよい。
CPU102は、関連する記述子テーブル106のメモリアドレスを格納する記述子テーブルレ
ジスタ104(「DTレジスタ」)を含むことができる。例えば、CPU102は、割り込み記述子テ
ーブルのメモリアドレスを格納する割り込み記述子テーブルレジスタを含むことができる
。図1は、単一のDTレジスタ104を示しているが、CPU102は、様々な記述子テーブル106に
対応する複数のDTレジスタ104を含むことができる。例えば、割り込み記述子テーブルレ
ジスタに加えて、CPU102は、グローバル記述子テーブルに関連付けられたメモリアドレスを格納するグローバル記述子テーブルレジスタを含むことができる。DTレジスタ104は、
物理メモリアドレスまたは仮想メモリアドレスを格納することができる。
DTレジスタ104に格納される値は、オペレーティングシステムカーネル112によってプログラムされ得る。例えば、システム100の初期化中(例えば、ブート時)、オペレーティン
グシステムカーネル112は、エイリアス記述子テーブル108に関連付けられたメモリアドレス(例えば、仮想メモリアドレス)を格納することができる。いくつかの実施形態では、DTレジスタ104に格納される値は、初期化以外のときにプログラムされてよい。
メモリマップ110は、どのようにメモリが編成されるかを記述する、CPU102に関連付け
られたメモリ管理モジュール(例えば、仮想メモリマップ)であってよい。例えば、メモリマップ110は、メモリサイズ、オペレーティングシステムの使用のために予約されたメモ
リの領域、および/または、ソフトウェアプロセス114によって使用またはアクセスされ得るメモリの領域を記述する情報を含むことができる。加えて、メモリマップ110は、メモ
リアドレスが、読み取り専用権限または読み書き権限のどちらに関連付けられているのかを指定するために使用されてよい。例えば、オペレーティングシステムカーネル112は、
記述子テーブル106またはエイリアス記述子テーブル108に関連付けられた権限を変更するために、メモリマップ110を変更することができる。加えて、メモリマップ110は、論理/
仮想メモリアドレスを物理メモリアドレスに翻訳するために、CPU102、またはCPU102に関連付けられたメモリマネージャによって使用されてよい。
記述子テーブル106は、例えば、様々なソフトウェアルーチンまたはデータ構造に関連
付けられたメモリアドレス、メモリセグメント記述子、CPUに関連付けられた特権レベル(例えば、「コールゲート」)を変更するためのメカニズム、および他のデータを含むこと
ができる。例えば、記述子テーブル106は、割り込みベクタテーブルを実装するために使
用され得る割り込み記述子テーブルであってよい。いくつかの実施形態では、割り込み記述子テーブルは、割り込みハンドラに関連付けられたメモリアドレスを含み、割り込みハンドラは、割り込み(例えば、ハードウェア割り込み、ソフトウェア割り込み、および/またはプロセッサ例外(まとめて「割り込み」と呼ばれる))を、それらがトリガされるとき
に処理するソフトウェアプロセスまたはルーチンであってよい。例えば、割り込み記述子テーブルは、タイマ割り込みに対応するテーブル内の位置に、割り込みハンドラ(T0_Int_Handler)に関連付けられたメモリアドレスを格納することができる。タイマ割り込みがトリガされると、オペレーティングシステムは、割り込み記述子テーブルにアクセスすることができ、T0_Int_Handlerがタイマ割り込みに応答して実行されるべきであることを決定する。
メモリマップ110を使用して、記述子テーブル106は、様々な権限レベルに関連付けられ得る。例えば、記述子テーブル106は、読み取り専用権限を有することができ、読み取り
専用権限は、記述子テーブル106および記述子テーブル106に格納された値が変更されるのを防止する。加えて、記述子テーブル106は、読み書き権限を有することができ、読み書
き権限は、記述子テーブル106および記述子テーブル106に格納された値が変更されることを許可する。記述子テーブル106に関連付けられた権限レベルは、オペレーティングシス
テムカーネル112によって変更され得る。例えば、オペレーティングシステムカーネル112は、記述子テーブル106の権限を読み書きから読み取り専用に変更するために、メモリマ
ップ110を使用することができる。
記述子テーブル106は、様々な物理メモリアドレスに配置されてよい。例えば、記述子
テーブル106は、オペレーティングシステムカーネル112またはCPU102によって、ランダムなメモリアドレスに作成されてよい。加えて、記述子テーブル106は、固定されたメモリ
アドレスに作成されてよい。加えて、記述子テーブル106は、メモリマップ110によって、物理メモリ位置から仮想メモリ位置にマッピングされてよい(例えば、マップ記述子テー
ブル107)。マップ記述子テーブル107は、記述子テーブル106に戻って指すことができ、マップ記述子テーブル107に含まれる値は、記述子テーブル106に含まれる値を反映することができる。例えば、記述子テーブル106に含まれる値が変更された場合、マップ記述子テ
ーブル107も、変更された値を反映するように更新される。
記述子テーブル106は、メモリマップ110を使用して、第2のアドレスにマッピングされ
てよい(例えば、エイリアス記述子テーブル108)。例えば、記述子テーブル106は、記述子テーブル106に関連付けられた物理メモリアドレスを指す第2の仮想アドレスにマッピングされてよい。マップ記述子テーブル107と同様に、エイリアス記述子テーブル108に含まれる値は、記述子テーブル106(および、マップ記述子テーブル107)に含まれる値を反映することができる。
記述子テーブル106、マップ記述子テーブル107、およびエイリアス記述子テーブル108
は、異なる権限に関連付けられてよい。例えば、記述子テーブル106およびマップ記述子
テーブル107は、読み書き権限に関連付けられてよく、エイリアス記述子テーブル108は、読み取り専用権限に関連付けられてよい。加えて、記述子テーブル106、マップ記述子テ
ーブル107、およびエイリアス記述子テーブル108に関連付けられた権限レベルは、オペレーティングシステムカーネル112によって変更されてよい。例えば、オペレーティングシ
ステムカーネル112は、エイリアス記述子テーブル108に関連付けられた権限レベルを読み取り専用であるように設定することができ、記述子テーブル106に関連付けられた権限レ
ベルを読み書きであるように設定することができる。エイリアス記述子テーブル108は、CPUおよび/またはオペレーティングシステムカーネル112によってアクセスされ得る。いくつかの実施では、システム100は、マップ記述子テーブル107および/またはエイリアス記
述子テーブル108を含まない。
CPU102は、記述子テーブル106のメモリアドレスを提供させる命令を含むことができる
。例えば、CPU102は、DTレジスタ104に格納された値を返させる命令(例えば、SDT命令)を含むことができる。いくつかの実施形態では、SDT命令は、割り込み記述子テーブルに関
連付けられたメモリアドレスを返す割り込み記述子テーブル格納命令(Store Interrupt
Descriptor Table instruction)(SIDT)、または、グローバル記述子テーブルに関連
付けられたメモリアドレスを返すグローバル記述子テーブル格納命令(Store Global Descriptor Table instruction)(SGDT)であってよい。命令は、オペレーティングシステ
ムカーネル112によって使用されてよい。ソフトウェアアプリケーションまたはプロセス114は、オペレーティングシステム内の欠陥または脆弱性を悪用する可能性があり、オペレーティングシステムカーネル112にSDT命令を発行させる可能性がある。
オペレーティングシステムカーネル112は、任意の適切なタイプのオペレーティングシ
ステムカーネルであってよい。オペレーティングシステムカーネル112は、CPUのリソース、および/または、システム100に関連する他のハードウェアリソースを管理することができる。オペレーティングシステムカーネル112は、システム100上で実行されるソフトウェアプロセス114と相互作用することができる。例えば、オペレーティングシステムカーネ
ル112は、ソフトウェアプロセス112から命令を受信することができ、ソフトウェアプロセス114の代わりに、CPU102、および/または、システム100に関連するハードウェアリソー
スと相互作用することができる(例えば、データポートまたは周辺デバイスとデータを交
換することができる)。
ソフトウェアプロセス114は、オペレーティングシステムカーネル112と相互作用する1
つまたは複数のソフトウェアアプリケーションまたはプロセスであってよい。いくつかの実施形態では、ソフトウェアプロセス114は、CPU102に、記述子テーブル106に関連付けられたメモリアドレスを提供させることができる。例えば、ソフトウェアプロセス114は、CPU102に、割り込み記述子テーブルに関連付けられたDTレジスタ104に格納された値を返させるために、SIDT命令を使用する。
図2は、コンピュータセキュリティを改善するための例示的なプロセス200のフローチャートである。プロセス200は、(202で)記述子テーブルを生成し、初期化することによって開始する。例えば、CPU102が(例えば、ブート時に)初期化されると、オペレーティングシステムカーネル112、または、オペレーティングシステムカーネル112に関連するファームウェアは、記述子テーブル106を作成し、初期化することができる。ファームウェアまた
はオペレーティングシステムカーネル112は、割り込みがトリガされると実行されるソフ
トウェアルーチン(例えば、「割り込みハンドラ」)に関連付けられたメモリ位置を含めるために、記述子テーブル106の値を更新する。オペレーティングシステムカーネル112は、記述子テーブル106を、第1の仮想メモリアドレス(例えば、マップ記述子テーブル107)に
マッピングすることができる。オペレーティングシステムカーネル112は、初期化された
記述子テーブル116の第2のマッピング(例えば、エイリアス記述子テーブル108)を作成す
ることができる。オペレーティングシステムカーネル112は、マップ記述子テーブル107およびエイリアス記述子テーブル108を、異なる仮想メモリアドレスに配置することができ
る。例えば、オペレーティングシステムカーネルは、マップ記述子テーブル107を第1の仮想メモリアドレスに配置するようメモリマップ110を使用することができ、エイリアス記
述子テーブル108を、第1の仮想メモリアドレスとは異なる第2の仮想メモリアドレスにマ
ッピングするようメモリマップ110を使用することができる。いくつかの実施形態では、
オペレーティングシステムカーネル112は、マップ記述子テーブル107およびエイリアス記述子テーブル108を、ランダムなメモリ位置に作成する。いくつかの実施形態では、マッ
プ記述子テーブル107は、含まれず、使用されない。
記述子テーブルに関連付けられた権限レベルは、(203で)更新される。例えば、オペレ
ーティングシステムカーネル112は、エイリアス記述子テーブル108に関連付けられた権限レベルを、読み取り専用であるように設定することができ、記述子テーブル106およびマ
ップ記述子テーブル107に関連付けられた権限レベルを、読み書きであるように設定する
ことができる。いくつかの実施形態では、オペレーティングシステムカーネル112は、記
述子テーブル106、マップ記述子テーブル107、およびエイリアス記述子テーブル108に関
連付けられた権限レベルを、メモリマップ110を使用して設定する。
オペレーティングシステムカーネルは、(204で)DTレジスタを更新する。例えば、オペ
レーティングシステムカーネル112は、エイリアス記述子テーブル108に関連付けられたメモリアドレス(例えば、エイリアス記述子テーブル108に関連付けられた仮想メモリアドレス)を格納するために、DTレジスタ104を更新することができる。
プロセス200は、(206で)記述子テーブルに関連付けられたメモリアドレスを返すための命令を受信することによって継続することができる。例えば、CPU102は、オペレーティングシステムカーネル112またはソフトウェアアプリケーション114から、SDT命令を受信す
ることができる。いくつかの実施形態では、SDT命令は、SIDT命令またはSGDT命令である
命令に応答して、CPUは、(208で)DTレジスタに格納されたメモリアドレスを返す。例えば、SDT命令に応答して、CPU102は、204でDTレジスタ104に格納されたエイリアス記述子
テーブル108に関連付けられたメモリアドレスを供給することができる。エイリアス記述
子テーブル108のメモリアドレスは、CPU102によって返されるが、敵対的なソフトウェア
アプリケーション114は、エイリアス記述子テーブル108が読み取り専用権限に関連付けられているため、この情報を悪用することができない。敵対的なソフトウェアアプリケーション114が、記述子テーブル106にデータを書き込むために、208で返されたエイリアス記
述子テーブル108のメモリアドレスを使用することを試みる場合、オペレーティングシス
テムカーネル112またはメモリマップ110は、エラー(例えば、権限違反)を生成し、敵対的なソフトウェアアプリケーションがデータを記述子テーブル106に書き込むのを防止する
。したがって、敵対的なソフトウェアアプリケーションは、記述子テーブル106の値また
は内容を変更することができない。
代わりに、プロセス200は、(210で)記述子テーブルに格納されたデータを更新するための命令を受信することができる。例えば、オペレーティングシステムカーネル112は、記
述子テーブル106が更新されるべきであるという命令を受信することができる。いくつか
の実施形態では、オペレーティングシステムカーネル112は、オペレーティングシステム
機能(例えば、ハードウェアマネージャ)から、記述子テーブルを更新するための命令を受信することができる。
命令に応答して、オペレーティングシステムカーネルは、(212で)記述子テーブルを更
新することができる。例えば、オペレーティングシステムカーネル112は、読み書き権限
に関連付けられたマップ記述子テーブル107にアクセスすることができ、マップ記述子テ
ーブル107内の特定のエントリに関連付けられた値を更新することができる。マップ記述
子テーブル107は、記述子テーブル106のマッピングであるため、記述子テーブル106およ
びエイリアス記述子テーブル108に含まれた値は、更新される。いくつかの実施形態では
、オペレーティングシステムカーネル112は、記述子テーブル106にアクセスし、記述子テーブル106内の値を更新する。
図3は、コンピュータセキュリティを改善するための例示的なプロセス300のフローチャートである。プロセス300は、(302で)記述子テーブルを初期化することによって開始する。例えば、オペレーティングシステムカーネル112は、記述子テーブル106(例えば、割り
込み記述子テーブルまたはグローバル記述子テーブル)を作成することができ、適切なデ
ータ値(例えば、割り込みハンドラに関連付けられたメモリアドレス、または、様々なメ
モリセグメントに関連付けられた特性)を含めるために、記述子テーブル106を初期化することができる。いくつかの実施形態では、オペレーティングシステムカーネル112は、ブ
ート時に記述子テーブル106を初期化する。オペレーティングシステムカーネル112は、記述子テーブル106に関連付けられた権限を、読み取り専用であるように変更することがで
きる。
オペレーティングシステムカーネル112は、(303で)DTレジスタを更新することができる。例えば、オペレーティングシステムカーネル112は、記述子テーブル106に関連付けられたメモリアドレスを、DTレジスタ104内に格納することができる。
プロセス300は、(304で)記述子テーブルに関連付けられたメモリアドレスを提供するための命令を受信することによって継続することができる。例えば、CPU102は、オペレーティングシステムカーネル112またはソフトウェアアプリケーション114からSDT命令を受信
することができる。いくつかの実施形態では、SDT命令は、SIDT命令またはSGDT命令であ
る。命令に応答して、CPUは、(306で)DTレジスタに格納されたメモリアドレス(例えば、
記述子テーブル106のメモリアドレス)を返す。記述子テーブル106のメモリアドレスは、CPU102によって返されるが、敵対的なソフトウェアアプリケーション114は、記述子テーブル106が読み取り専用権限に関連付けられているため、この情報を悪用することができな
い。敵対的なソフトウェアアプリケーション114が、記述子テーブル106にデータを書き込
むことを試みる場合、オペレーティングシステムカーネル112またはメモリマップ110は、権限違反を生成する。したがって、敵対的なソフトウェアアプリケーションは、記述子テーブル106の値または内容を変更することができない。
代わりに、プロセス300は、(308で)記述子テーブルに格納されたデータを更新するための命令を受信することができる。例えば、オペレーティングシステムカーネル112は、記
述子テーブル106が更新されるべきであるという命令を受信することができる。いくつか
の実施形態では、オペレーティングシステムカーネル112は、オペレーティングシステム
機能(例えば、ハードウェアマネージャ)から命令を受信することができる。
命令に応答して、オペレーティングシステムカーネルは、(310で)記述子テーブルに関
連付けられた権限レベルを変更することができる。例えば、オペレーティングシステムカーネル112は、記述子テーブル106に関連付けられた権限レベルを、読み取り専用から読み書きに変更することができる。
記述子テーブルに関連付けられた権限レベルが更新された後、記述子テーブルは、(312で)更新されてよい。例えば、オペレーティングシステムカーネル112は、記述子テーブル106内の特定のエントリに関連付けられた値を更新することができる。記述子テーブルが
更新された後、記述子テーブルに関連付けられた権限レベルは、(314で)変更されてよい
。例えば、記述子テーブル106が、新しい値を含むように更新された後、オペレーティン
グシステムカーネルは、記述子テーブルに関連付けられた権限レベルを、読み取り専用であるように変更することができる。
本明細書に記載の主題および動作の実施形態は、本明細書で開示される構造およびそれらの構造的等価物を含む、デジタル回路網で、もしくは、コンピュータソフトウェア、ファームウェア、もしくはハードウェアで、または、それらの1つもしくは複数の組み合わ
せで実現されてよい。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュー
タプログラムとして、すなわち、データ処理装置によって実行するための、または、データ処理装置の動作を制御するための、コンピュータ記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実施されてよい。代わりに、また
は加えて、プログラム命令は、データ処理装置によって実行するための適切な受信装置に伝送するための情報を符号化するために生成された、人工的に生成された伝播信号、例えば、機械生成された電気、光、または電磁信号上に符号化されてよい。コンピュータ記憶媒体は、コンピュータ可読記憶媒体、コンピュータ可読記憶基板、ランダムまたはシリアルアクセスメモリアレイもしくはデバイス、または、それらの1つもしくは複数の組み合
わせであってよく、または、それらに含まれてよい。さらに、コンピュータ記憶媒体は、伝播信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝播信号内に符号化されたコンピュータプログラム命令の発信元または宛先であってよい。コンピュータ記憶媒体は、また、1つまたは複数の別個の物理的構成要素または媒体(例えば、複数のCD、ディスク、または他の記憶デバイス)であってよく、またはそれらに含まれてよい。
本明細書に記載の動作は、1つもしくは複数のコンピュータ可読記憶デバイスに格納さ
れた、または、他の発信元から受信したデータに対してデータ処理装置によって実行される動作として実施されてよい。
「データ処理装置」という用語は、例として、プログラム可能プロセッサ、コンピュータ、システムオンチップ、または、上記の複数もしくは組み合わせを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、特定目的の論理回路網、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用
途向け集積回路)を含むことができる。装置は、ハードウェアに加えて、問題のコンピュ
ータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォーム実行時環境、仮想マシン、または、それらの1つもしくは複数の組み合
わせを構成するコードを含むこともできる。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャのような、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコ
ードとしても知られる)コンピュータプログラムは、コンパイルされたまたは翻訳された
言語、宣言型または手続き型言語を含む、任意の形式のプログラミング言語で書かれてよく、スタンドアロンプログラムとして、または、モジュール、構成要素、サブルーチン、オブジェクト、もしくは、コンピューティング環境で使用するのに適した他のユニットとして、を含む、任意の形態で展開されてよい。コンピュータプログラムは、ファイルシステム内のファイルに対応してもよいが、対応する必要はない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えばマークアップ言語文書に格納された1つまたは複数のスクリプト)内に、問題のプログラム専用の単一のファイル内に、または
、複数の連携ファイル(例えば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を格納するファイル)内に格納されてよい。コンピュータプログラムは、1つのコンピュータ上で、または、1つのサイトに配置される、もしくは、複数のサイトに
わたって分散され、通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開されてよい。
本明細書に記載のプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによってアクションを実行するために、1つまたは複数のコンピュータプログ
ラムを実行する1つまたは複数のプログラム可能プロセッサによって実行されてよい。プ
ロセスおよび論理フローは、特定目的の論理回路網、例えば、FPGA(フィールドプログラ
マブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されてもよく、装
置は、このような特定目的の論理回路網として実施されてよもよい。
コンピュータプログラムの実行に適したプロセッサは、例として、汎用および専用マイクロプロセッサの両方、ならびに、任意の種類のデジタルコンピュータの任意の1つまた
は複数のプロセッサを含む。一般に、プロセッサは、読み取り専用メモリもしくはランダムアクセスメモリ、またはその両方から、命令およびデータを受信することになる。コンピュータの必須要素は、命令にしたがってアクションを実行するためのプロセッサ、ならびに、命令およびデータを格納するための1つまたは複数のメモリデバイスである。一般
に、コンピュータは、また、データを格納するための1つまたは複数の大容量記憶デバイ
ス、例えば、磁気、光磁気ディスク、または光ディスクを、これらからデータを受信する、もしくはこれらにデータを転送する、またはその両方を行うために、含むことになり、または、これらに作動的に結合されることになる。しかしながら、コンピュータは、このようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば、数例を挙げると、携帯電話、パーソナルデジタルアシスタント(PDA)、携帯オーディオも
しくはビデオプレイヤ、ゲームコンソール、全地球測位システム(GPS)受信機、または、
携帯用記憶デバイス(例えば、ユニバーサルシリアルバス(USB)フラッシュドライブ)内に
埋め込まれてよい。コンピュータプログラム命令およびデータを格納するのに適したデバイスは、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュ
メモリデバイス、磁気ディスク、例えば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびに、CD-ROMおよびDVD-ROMディスクを含む、すべての形態の
不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、特定目的の論理回路網によって補足されてよく、または、特定目的の論理回路網に組み込まれ
てよい。
ユーザとの対話を提供するために、本明細書に記載の主題の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、例えば、CRT(陰極線管)またはLCD(液晶
ディスプレイ)モニタ、ならびに、それによってユーザがコンピュータに入力を提供する
ことができるキーボードおよびポインティングデバイス、例えば、マウスまたはトラックボールを有するコンピュータ上で実施されてよい。同様にユーザとの対話を提供するために、他の種類のデバイスが使用されてよく、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってよく、ユーザからの入力は、音響、音声、または触覚入力を含む、任意の形態で受信されてよい。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、デバイスから文書を受信することによって、例えば、ウェブブラウザから受信した要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
本明細書に記載の主題の実施形態は、例えば、データサーバとしてバックエンド構成要素を含む、もしくは、例えば、アプリケーションサーバとしてミドルウェア構成要素を含む、または、例えば、クライアントコンピュータとしてフロントエンド構成要素を含む、もしくは、1つもしくは複数のこのようなバックエンド、ミドルウェア、もしくはフロン
トエンド構成要素の任意の組み合わせを含むコンピューティングシステム内で実施されてよく、クライアントコンピュータは、グラフィカルユーザインタフェースまたはウェブブラウザを有し、グラフィカルユーザインタフェースまたはウェブブラウザを介して、ユーザは、本明細書に記載の主題の実施形態と相互作用することができる。システムの構成要素は、任意の形式または媒体のデジタルデータ通信、例えば、通信ネットワークによって相互接続されてよい。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)
およびワイドエリアネットワーク(「WAN」)、インターネットワーク(例えば、インターネット)、ならびに、ピアツーピアネットワーク(例えば、アドホックピアツーピアネットワーク)を含む。
1つまたは複数のコンピュータのシステムは、動作時にアクションを実行させる、また
はシステムにアクションを実行させる、システム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせを有することによって、特定の動作またはアクションを実行するように構成されてよい。1つまたは複数のコンピュー
タプログラムは、データ処理装置によって実行されると、装置にアクションを実行させる命令を含むことによって、特定の動作またはアクションを実行するように構成されてよい。
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に、互いに離れており、典型的には、通信ネットワークを介して相互作用する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生
じる。いくつかの実施形態では、サーバは、(例えば、データを表示させ、クライアント
デバイスと対話するユーザからユーザ入力を受信する目的で)データ(例えば、HTMLページ)をクライアントデバイスに送信する。クライアントデバイスで生成されるデータ(例えば、ユーザとの対話の結果)は、サーバでクライアントから受信されてよい。
本明細書は、多くの特定の実施の詳細を含むが、これらは、任意の発明の、または特許請求され得るものの範囲に対する制限として解釈されるべきではなく、特定の発明の特定の実施形態に固有の特徴の記述として解釈されるべきである。別々の実施形態の文脈で本明細書に記載される特定の特徴は、単一の実施形態で組み合わせて実施されてもよい。逆
に、単一の実施形態の文脈で記載される様々な特徴は、複数の実施形態で別々に、または、任意の適切な部分的組み合わせで実施されてもよい。さらに、特徴は、特定の組み合わせで作用するように上述され、そのように当初は特許請求されている場合があるが、特許請求された組み合わせからの1つまたは複数の特徴は、いくつかの場合、組み合わせから
削除されてよく、特許請求された組み合わせは、部分的組み合わせ、または部分的組み合わせの変形を対象としてよい。
同様に、動作は、図面中で特定の順序で示されているが、これは、このような動作が図示された特定の順序もしくはシーケンシャルな順序で実行されること、または、所望の結果を達成するために図示されたすべての動作が実行されることを必要とするとして理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利であり得る。さらに、上述した実施形態の様々なシステム構成要素の分離は、すべての実施形態でこのような分離を必要とするとして理解されるべきではなく、記載のプログラム構成要素およびシステムは、一般に、単一のソフトウェア製品に一緒に統合されてよく、または、複数のソフトウェア製品にパッケージ化されてよいことが理解されるべきである。
したがって、主題の特定の実施形態を説明してきた。他の実施形態は、以下の特許請求の範囲内である。いくつかの場合、特許請求の範囲に記載のアクションは、異なる順序で実行されてよく、所望の結果を依然として達成することができる。加えて、添付の図面に示されるプロセスは、所望の結果を達成するために、示された特定の順序、またはシーケンシャルな順序を必ずしも必要としない。特定の実施形態では、マルチタスクおよび並列処理が有利であり得る。
100 システム
102 CPU
104 記述子テーブルレジスタ
106 記述子テーブル
107 記述子テーブルの第1のマッピング
108 エイリアス記述子テーブル
110 メモリマップ
112 オペレーティングシステムカーネル
114 ソフトウェアプロセス

Claims (18)

  1. 記述子テーブルのアクセス権限レベルを第1の権限レベルに設定するステップと、
    機能から、前記記述子テーブルの更新要求を受信するステップと、
    前記記述子テーブルの更新要求の受信に応答して、前記機能がオペレーティングシステム機能であるか、または別のアプリケーション用の機能であるかを判断するステップと、
    前記機能がオペレーティングシステム機能であると判断するステップと、
    前記機能がオペレーティングシステム機能であるという判断に応答して、前記記述子テーブルの前記アクセス権限レベルを、前記第1の権限レベルとは異なる第2の権限レベルに変更するステップと、
    前記記述子テーブルの前記アクセス権限レベルが前記第2の権限レベルである間に前記記述子テーブルを更新するステップと、
    前記記述子テーブルの更新後に、前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに変更するステップとを備える、コンピュータ実施方法。
  2. 前記記述子テーブルの更新要求の受信前に、前記第1の権限レベルにおいて前記記述子テーブルを読み取り専用状態に維持するステップをさらに備える、請求項1に記載のコンピュータ実施方法。
  3. オペレーティングシステムカーネルを使用して前記記述子テーブルを初期化するステップをさらに備える、請求項1または2に記載のコンピュータ実施方法。
  4. 前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに設定するステップは、割り込み記述子テーブルのアクセス権限レベルを前記第1の権限レベルに設定するステップを含む、請求項1〜3のいずれか1項に記載のコンピュータ実施方法。
  5. 前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに設定するステップは、グローバル記述子テーブルのアクセス権限レベルを前記第1の権限レベルに設定するステップを含む、請求項1〜3のいずれか1項に記載のコンピュータ実施方法。
  6. 前記機能がオペレーティングシステム機能であると判断するステップは、前記機能がオペレーティングシステムのハードウェアマネージャであると判断するステップを含む、請求項1〜5のいずれか1項に記載のコンピュータ実施方法。
  7. コンピューティングシステムであって、
    1つ以上のコンピュータと、
    命令を格納する1つ以上の記憶部とを備え、前記命令は、前記1つ以上のコンピュータによって実行されると、前記1つ以上のコンピュータに、
    記述子テーブルのアクセス権限レベルを第1の権限レベルに設定するステップと、
    機能から、前記記述子テーブルの更新要求を受信するステップと、
    前記記述子テーブルの更新要求の受信に応答して、前記機能がオペレーティングシステム機能であるか、または別のアプリケーション用の機能であるかを判断するステップと、
    前記機能がオペレーティングシステム機能であると判断するステップと、
    前記機能がオペレーティングシステム機能であるという判断に応答して、前記記述子テーブルの前記アクセス権限レベルを、前記第1の権限レベルとは異なる第2の権限レベルに変更するステップと、
    前記記述子テーブルの前記アクセス権限レベルが前記第2の権限レベルである間に前記記述子テーブルを更新するステップと、
    前記記述子テーブルの更新後に、前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに変更するステップとを含む動作を実施させる、コンピューティングシステム。
  8. 前記動作は、前記記述子テーブルの更新要求の受信前に、前記第1の権限レベルにおいて前記記述子テーブルを読み取り専用状態に維持するステップをさらに含む、請求項7に記載のコンピューティングシステム。
  9. 前記動作は、オペレーティングシステムカーネルを使用して前記記述子テーブルを初期化するステップをさらに含む、請求項7または8に記載のコンピューティングシステム。
  10. 前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに設定するステップは、割り込み記述子テーブルのアクセス権限レベルを前記第1の権限レベルに設定するステップを含む、請求項7〜9のいずれか1項に記載のコンピューティングシステム。
  11. 前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに設定するステップは、グローバル記述子テーブルのアクセス権限レベルを前記第1の権限レベルに設定するステップを含む、請求項7〜9のいずれか1項に記載のコンピューティングシステム。
  12. 前記機能がオペレーティングシステム機能であると判断するステップは、前記機能がオペレーティングシステムのハードウェアマネージャであると判断するステップを含む、請求項7〜11のいずれか1項に記載のコンピューティングシステム。
  13. コンピュータプログラムであって、前記コンピュータプログラムは命令を備え、前記命令は、コンピューティングシステムによって実行されると、前記コンピューティングシステムに、
    記述子テーブルのアクセス権限レベルを第1の権限レベルに設定するステップと、
    機能から、前記記述子テーブルの更新要求を受信するステップと、
    前記記述子テーブルの更新要求の受信に応答して、前記機能がオペレーティングシステム機能であるか、または別のアプリケーション用の機能であるかを判断するステップと、
    前記機能がオペレーティングシステム機能であると判断するステップと、
    前記機能がオペレーティングシステム機能であるという判断に応答して、前記記述子テーブルの前記アクセス権限レベルを、前記第1の権限レベルとは異なる第2の権限レベルに変更するステップと、
    前記記述子テーブルの前記アクセス権限レベルが前記第2の権限レベルである間に前記記述子テーブルを更新するステップと、
    前記記述子テーブルの更新後に、前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに変更するステップとを含む動作を実施させる、コンピュータプログラム。
  14. 前記動作は、前記記述子テーブルの更新要求の受信前に、前記第1の権限レベルにおいて前記記述子テーブルを読み取り専用状態に維持するステップをさらに含む、請求項13に記載のコンピュータプログラム。
  15. 前記動作は、オペレーティングシステムカーネルを使用して前記記述子テーブルを初期化するステップをさらに含む、請求項13または14に記載のコンピュータプログラム。
  16. 前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに設定するステップは、割り込み記述子テーブルのアクセス権限レベルを前記第1の権限レベルに設定するステップを含む、請求項13〜15のいずれか1項に記載のコンピュータプログラム。
  17. 前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに設定するステップは、グローバル記述子テーブルのアクセス権限レベルを前記第1の権限レベルに設定するステップを含む、請求項13〜15のいずれか1項に記載のコンピュータプログラム。
  18. 前記機能がオペレーティングシステム機能であると判断するステップは、前記機能がオペレーティングシステムのハードウェアマネージャであると判断するステップを含む、請求項13〜17のいずれか1項に記載のコンピュータプログラム。
JP2016184217A 2011-10-19 2016-09-21 コンピュータセキュリティを増強する防御技術 Active JP6211158B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/277,063 2011-10-19
US13/277,063 US8826440B2 (en) 2011-10-19 2011-10-19 Defensive techniques to increase computer security

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016139323A Division JP6013640B2 (ja) 2011-10-19 2016-07-14 コンピュータセキュリティを増強する防御技術

Publications (2)

Publication Number Publication Date
JP2017037660A JP2017037660A (ja) 2017-02-16
JP6211158B2 true JP6211158B2 (ja) 2017-10-11

Family

ID=47172889

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2014537150A Active JP5973583B2 (ja) 2011-10-19 2012-10-16 コンピュータセキュリティを増強する防御技術
JP2016139323A Active JP6013640B2 (ja) 2011-10-19 2016-07-14 コンピュータセキュリティを増強する防御技術
JP2016184217A Active JP6211158B2 (ja) 2011-10-19 2016-09-21 コンピュータセキュリティを増強する防御技術

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2014537150A Active JP5973583B2 (ja) 2011-10-19 2012-10-16 コンピュータセキュリティを増強する防御技術
JP2016139323A Active JP6013640B2 (ja) 2011-10-19 2016-07-14 コンピュータセキュリティを増強する防御技術

Country Status (7)

Country Link
US (3) US8826440B2 (ja)
EP (2) EP2769331B1 (ja)
JP (3) JP5973583B2 (ja)
CN (3) CN103988211B (ja)
AU (1) AU2012326336B2 (ja)
CA (1) CA2853050C (ja)
WO (1) WO2013059189A2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9141559B2 (en) 2012-01-04 2015-09-22 Intel Corporation Increasing virtual-memory efficiencies
US9268707B2 (en) 2012-12-29 2016-02-23 Intel Corporation Low overhead paged memory runtime protection
RU2653985C2 (ru) * 2013-06-28 2018-05-15 Закрытое акционерное общество "Лаборатория Касперского" Способ и система обнаружения вредоносного программного обеспечения путем контроля исполнения программного обеспечения запущенного по сценарию
US9230106B2 (en) 2013-06-28 2016-01-05 Kaspersky Lab Ao System and method for detecting malicious software using malware trigger scenarios in a modified computer environment
US9984231B2 (en) * 2015-11-11 2018-05-29 Qualcomm Incorporated Detecting program evasion of virtual machines or emulators
US11334501B2 (en) 2020-01-28 2022-05-17 Hewlett Packard Enterprise Development Lp Access permissions for memory regions
CN115277607B (zh) * 2022-07-15 2023-12-26 天津市滨海新区信息技术创新中心 一种异构系统复杂流量情况下的两级拟态判决方法
CN115510427B (zh) * 2022-11-21 2023-03-31 博智安全科技股份有限公司 跨平台进程运行可信监控方法和系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2010591C (en) * 1989-10-20 1999-01-26 Phillip M. Adams Kernels, description tables and device drivers
US6317742B1 (en) * 1997-01-09 2001-11-13 Sun Microsystems, Inc. Method and apparatus for controlling software access to system resources
DE10122505A1 (de) 2001-05-10 2002-11-14 Giesecke & Devrient Gmbh Verfahren zum Schützen eines Rechners gegen Manipulation von Registerinhalten und Rechner zum Durchführen des Verfahrens
GB0226875D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Control of access to a memory by a device
US20040268084A1 (en) * 2003-06-30 2004-12-30 Steve Longerbeam Protected RAM filesystem
US7530103B2 (en) * 2003-08-07 2009-05-05 Microsoft Corporation Projection of trustworthiness from a trusted environment to an untrusted environment
US7552426B2 (en) * 2003-10-14 2009-06-23 Microsoft Corporation Systems and methods for using synthetic instructions in a virtual machine
JP4451884B2 (ja) 2004-02-05 2010-04-14 キングス インフォメーション アンド ネットワーク コンピュータ保安装置、コンピュータ保安方法、及び記録媒体
US20060230282A1 (en) * 2005-04-06 2006-10-12 Hausler Oliver M Dynamically managing access permissions
JP2007004661A (ja) * 2005-06-27 2007-01-11 Hitachi Ltd 仮想計算機の制御方法及びプログラム
US7571298B2 (en) * 2005-06-30 2009-08-04 Intel Corporation Systems and methods for host virtual memory reconstitution
US20070067590A1 (en) * 2005-09-22 2007-03-22 Uday Savagaonkar Providing protected access to critical memory regions
US7685638B1 (en) * 2005-12-13 2010-03-23 Symantec Corporation Dynamic replacement of system call tables
US8032897B2 (en) * 2007-07-31 2011-10-04 Globalfoundries Inc. Placing virtual machine monitor (VMM) code in guest context to speed memory mapped input/output virtualization
US8578483B2 (en) * 2008-07-31 2013-11-05 Carnegie Mellon University Systems and methods for preventing unauthorized modification of an operating system
CN101464841A (zh) * 2008-12-31 2009-06-24 杭州华三通信技术有限公司 实现对块存储体写保护的方法和系统
JP2011090612A (ja) * 2009-10-26 2011-05-06 Clarion Co Ltd 情報処理装置、情報処理装置の制御方法及び制御プログラム

Also Published As

Publication number Publication date
CN103988211B (zh) 2016-12-07
US20130104234A1 (en) 2013-04-25
US8826440B2 (en) 2014-09-02
JP5973583B2 (ja) 2016-08-23
US9576129B2 (en) 2017-02-21
AU2012326336B2 (en) 2015-04-23
EP3373187A1 (en) 2018-09-12
CA2853050A1 (en) 2013-04-25
US20150371041A1 (en) 2015-12-24
JP2017037660A (ja) 2017-02-16
JP2014531088A (ja) 2014-11-20
US9195827B2 (en) 2015-11-24
EP2769331A2 (en) 2014-08-27
EP2769331B1 (en) 2018-06-20
JP6013640B2 (ja) 2016-10-25
EP3373187B1 (en) 2019-08-07
CN107103232B (zh) 2020-09-04
JP2016184441A (ja) 2016-10-20
WO2013059189A3 (en) 2013-06-13
CN111523113A (zh) 2020-08-11
WO2013059189A2 (en) 2013-04-25
CA2853050C (en) 2018-09-11
CN107103232A (zh) 2017-08-29
CN103988211A (zh) 2014-08-13
AU2012326336A1 (en) 2014-05-15
US20140373154A1 (en) 2014-12-18

Similar Documents

Publication Publication Date Title
JP6211158B2 (ja) コンピュータセキュリティを増強する防御技術
US10831889B2 (en) Secure memory implementation for secure execution of virtual machines
US8776245B2 (en) Executing trusted applications with reduced trusted computing base
US9720661B2 (en) Selectively controlling use of extended mode features
Anderson et al. Operating Systems: Principles and Practice, volume 1: Kernel and Processes
US7840964B2 (en) Mechanism to transition control between components in a virtual machine environment
US8799898B2 (en) Methods and apparatus for binding applications to a cloud computing environment
US20210342182A1 (en) System, apparatus and method for accessing multiple address spaces via a data mover
EP4020236A1 (en) Isolating memory within trusted execution environments
EP4020156A1 (en) Reducing latency of hardware trusted execution environments
US20190042797A1 (en) Security Hardware Access Management
US20220222340A1 (en) Security and support for trust domain operation
US20240168787A1 (en) Secure live migration of trusted execution environment virtual machines using smart contracts
Muthu et al. Emulating trust zone in android emulator with secure channeling
Zhang et al. The Design and Implementation of Process Copy and Memory Sharing on SeL4
Vasudevan et al. Available Hardware Primitives

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

Effective date: 20170822

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170912

R150 Certificate of patent or registration of utility model

Ref document number: 6211158

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250