JP6211158B2 - コンピュータセキュリティを増強する防御技術 - Google Patents
コンピュータセキュリティを増強する防御技術 Download PDFInfo
- 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
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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/74—Protecting 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
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram 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の権限レベルとは異なる第2の権限レベルに関連付けられ、第1の記述子テー
ブルおよび第2の記述子テーブルが、ハードウェアプロセッサに関連付けられ、オペレー
ティングシステムカーネルによって初期化されるアクションと、記述子テーブルアドレス要求に応答して、第1の記述子テーブルに関連付けられたメモリアドレスを提供するアク
ションであって、記述子テーブル要求が、ソフトウェアプロセスによって提供されるアクションと、更新要求に応答して、第2の記述子テーブルを更新するアクションとを含む方
法で具体化されてよい。
テーブルに関連付けられた権限レベルを第2の権限レベルに変更するアクションであって
、第2の権限レベルが、第1の権限レベルよりも高いアクションと、記述子テーブルが第2
の権限レベルに関連付けられている間に、記述子テーブルを更新するアクションであって、更新要求に基づくアクションと、記述子テーブルを更新した後に、記述子テーブルに関連付けられた権限レベルを第1の権限レベルに変更するアクションであって、オペレーテ
ィングシステムカーネルが、記述子テーブルに関連付けられた権限レベルを変更するステップとを含む方法で具体化されてよい。
うに実施され得る。例えば、ネットワークおよびコンピュータセキュリティは、敵対的なソフトウェアアプリケーションまたはマルウェアがCPUおよび/またはOSカーネルによって使用されるデータ構造(例えば、割り込み記述子テーブルおよびグローバル記述子テーブ
ル)にアクセスすること、またはこれを変更することを防止することによって、増強され
得る。加えて、オペレーティングシステムは、記述子テーブルの意図しない上書きが低減または防止され得るため、より容易にデバッグされ得る。
明に記載される。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
の第1のマッピング107、エイリアス記述子テーブル108、メモリマップ110、オペレーティングシステムカーネル112、およびソフトウェアプロセス114を含む。CPU102は、様々なタイプのコンピュータプロセッサであってよい。例えば、CPU102は、x86プロセッサ、x86互換プロセッサ、またはx86プロセッサの64ビット系列(64 bit descendant) (例えば、Intel Core2またはAMD Opteron)であってよい。他のCPUが使用されてもよい。
ジスタ104(「DTレジスタ」)を含むことができる。例えば、CPU102は、割り込み記述子テ
ーブルのメモリアドレスを格納する割り込み記述子テーブルレジスタを含むことができる
。図1は、単一のDTレジスタ104を示しているが、CPU102は、様々な記述子テーブル106に
対応する複数のDTレジスタ104を含むことができる。例えば、割り込み記述子テーブルレ
ジスタに加えて、CPU102は、グローバル記述子テーブルに関連付けられたメモリアドレスを格納するグローバル記述子テーブルレジスタを含むことができる。DTレジスタ104は、
物理メモリアドレスまたは仮想メモリアドレスを格納することができる。
グシステムカーネル112は、エイリアス記述子テーブル108に関連付けられたメモリアドレス(例えば、仮想メモリアドレス)を格納することができる。いくつかの実施形態では、DTレジスタ104に格納される値は、初期化以外のときにプログラムされてよい。
られたメモリ管理モジュール(例えば、仮想メモリマップ)であってよい。例えば、メモリマップ110は、メモリサイズ、オペレーティングシステムの使用のために予約されたメモ
リの領域、および/または、ソフトウェアプロセス114によって使用またはアクセスされ得るメモリの領域を記述する情報を含むことができる。加えて、メモリマップ110は、メモ
リアドレスが、読み取り専用権限または読み書き権限のどちらに関連付けられているのかを指定するために使用されてよい。例えば、オペレーティングシステムカーネル112は、
記述子テーブル106またはエイリアス記述子テーブル108に関連付けられた権限を変更するために、メモリマップ110を変更することができる。加えて、メモリマップ110は、論理/
仮想メモリアドレスを物理メモリアドレスに翻訳するために、CPU102、またはCPU102に関連付けられたメモリマネージャによって使用されてよい。
付けられたメモリアドレス、メモリセグメント記述子、CPUに関連付けられた特権レベル(例えば、「コールゲート」)を変更するためのメカニズム、および他のデータを含むこと
ができる。例えば、記述子テーブル106は、割り込みベクタテーブルを実装するために使
用され得る割り込み記述子テーブルであってよい。いくつかの実施形態では、割り込み記述子テーブルは、割り込みハンドラに関連付けられたメモリアドレスを含み、割り込みハンドラは、割り込み(例えば、ハードウェア割り込み、ソフトウェア割り込み、および/またはプロセッサ例外(まとめて「割り込み」と呼ばれる))を、それらがトリガされるとき
に処理するソフトウェアプロセスまたはルーチンであってよい。例えば、割り込み記述子テーブルは、タイマ割り込みに対応するテーブル内の位置に、割り込みハンドラ(T0_Int_Handler)に関連付けられたメモリアドレスを格納することができる。タイマ割り込みがトリガされると、オペレーティングシステムは、割り込み記述子テーブルにアクセスすることができ、T0_Int_Handlerがタイマ割り込みに応答して実行されるべきであることを決定する。
専用権限は、記述子テーブル106および記述子テーブル106に格納された値が変更されるのを防止する。加えて、記述子テーブル106は、読み書き権限を有することができ、読み書
き権限は、記述子テーブル106および記述子テーブル106に格納された値が変更されることを許可する。記述子テーブル106に関連付けられた権限レベルは、オペレーティングシス
テムカーネル112によって変更され得る。例えば、オペレーティングシステムカーネル112は、記述子テーブル106の権限を読み書きから読み取り専用に変更するために、メモリマ
ップ110を使用することができる。
テーブル106は、オペレーティングシステムカーネル112またはCPU102によって、ランダムなメモリアドレスに作成されてよい。加えて、記述子テーブル106は、固定されたメモリ
アドレスに作成されてよい。加えて、記述子テーブル106は、メモリマップ110によって、物理メモリ位置から仮想メモリ位置にマッピングされてよい(例えば、マップ記述子テー
ブル107)。マップ記述子テーブル107は、記述子テーブル106に戻って指すことができ、マップ記述子テーブル107に含まれる値は、記述子テーブル106に含まれる値を反映することができる。例えば、記述子テーブル106に含まれる値が変更された場合、マップ記述子テ
ーブル107も、変更された値を反映するように更新される。
てよい(例えば、エイリアス記述子テーブル108)。例えば、記述子テーブル106は、記述子テーブル106に関連付けられた物理メモリアドレスを指す第2の仮想アドレスにマッピングされてよい。マップ記述子テーブル107と同様に、エイリアス記述子テーブル108に含まれる値は、記述子テーブル106(および、マップ記述子テーブル107)に含まれる値を反映することができる。
は、異なる権限に関連付けられてよい。例えば、記述子テーブル106およびマップ記述子
テーブル107は、読み書き権限に関連付けられてよく、エイリアス記述子テーブル108は、読み取り専用権限に関連付けられてよい。加えて、記述子テーブル106、マップ記述子テ
ーブル107、およびエイリアス記述子テーブル108に関連付けられた権限レベルは、オペレーティングシステムカーネル112によって変更されてよい。例えば、オペレーティングシ
ステムカーネル112は、エイリアス記述子テーブル108に関連付けられた権限レベルを読み取り専用であるように設定することができ、記述子テーブル106に関連付けられた権限レ
ベルを読み書きであるように設定することができる。エイリアス記述子テーブル108は、CPUおよび/またはオペレーティングシステムカーネル112によってアクセスされ得る。いくつかの実施では、システム100は、マップ記述子テーブル107および/またはエイリアス記
述子テーブル108を含まない。
。例えば、CPU102は、DTレジスタ104に格納された値を返させる命令(例えば、SDT命令)を含むことができる。いくつかの実施形態では、SDT命令は、割り込み記述子テーブルに関
連付けられたメモリアドレスを返す割り込み記述子テーブル格納命令(Store Interrupt
Descriptor Table instruction)(SIDT)、または、グローバル記述子テーブルに関連
付けられたメモリアドレスを返すグローバル記述子テーブル格納命令(Store Global Descriptor Table instruction)(SGDT)であってよい。命令は、オペレーティングシステ
ムカーネル112によって使用されてよい。ソフトウェアアプリケーションまたはプロセス114は、オペレーティングシステム内の欠陥または脆弱性を悪用する可能性があり、オペレーティングシステムカーネル112にSDT命令を発行させる可能性がある。
ステムカーネルであってよい。オペレーティングシステムカーネル112は、CPUのリソース、および/または、システム100に関連する他のハードウェアリソースを管理することができる。オペレーティングシステムカーネル112は、システム100上で実行されるソフトウェアプロセス114と相互作用することができる。例えば、オペレーティングシステムカーネ
ル112は、ソフトウェアプロセス112から命令を受信することができ、ソフトウェアプロセス114の代わりに、CPU102、および/または、システム100に関連するハードウェアリソー
スと相互作用することができる(例えば、データポートまたは周辺デバイスとデータを交
換することができる)。
つまたは複数のソフトウェアアプリケーションまたはプロセスであってよい。いくつかの実施形態では、ソフトウェアプロセス114は、CPU102に、記述子テーブル106に関連付けられたメモリアドレスを提供させることができる。例えば、ソフトウェアプロセス114は、CPU102に、割り込み記述子テーブルに関連付けられたDTレジスタ104に格納された値を返させるために、SIDT命令を使用する。
はオペレーティングシステムカーネル112は、割り込みがトリガされると実行されるソフ
トウェアルーチン(例えば、「割り込みハンドラ」)に関連付けられたメモリ位置を含めるために、記述子テーブル106の値を更新する。オペレーティングシステムカーネル112は、記述子テーブル106を、第1の仮想メモリアドレス(例えば、マップ記述子テーブル107)に
マッピングすることができる。オペレーティングシステムカーネル112は、初期化された
記述子テーブル116の第2のマッピング(例えば、エイリアス記述子テーブル108)を作成す
ることができる。オペレーティングシステムカーネル112は、マップ記述子テーブル107およびエイリアス記述子テーブル108を、異なる仮想メモリアドレスに配置することができ
る。例えば、オペレーティングシステムカーネルは、マップ記述子テーブル107を第1の仮想メモリアドレスに配置するようメモリマップ110を使用することができ、エイリアス記
述子テーブル108を、第1の仮想メモリアドレスとは異なる第2の仮想メモリアドレスにマ
ッピングするようメモリマップ110を使用することができる。いくつかの実施形態では、
オペレーティングシステムカーネル112は、マップ記述子テーブル107およびエイリアス記述子テーブル108を、ランダムなメモリ位置に作成する。いくつかの実施形態では、マッ
プ記述子テーブル107は、含まれず、使用されない。
ーティングシステムカーネル112は、エイリアス記述子テーブル108に関連付けられた権限レベルを、読み取り専用であるように設定することができ、記述子テーブル106およびマ
ップ記述子テーブル107に関連付けられた権限レベルを、読み書きであるように設定する
ことができる。いくつかの実施形態では、オペレーティングシステムカーネル112は、記
述子テーブル106、マップ記述子テーブル107、およびエイリアス記述子テーブル108に関
連付けられた権限レベルを、メモリマップ110を使用して設定する。
レーティングシステムカーネル112は、エイリアス記述子テーブル108に関連付けられたメモリアドレス(例えば、エイリアス記述子テーブル108に関連付けられた仮想メモリアドレス)を格納するために、DTレジスタ104を更新することができる。
ることができる。いくつかの実施形態では、SDT命令は、SIDT命令またはSGDT命令である
。
テーブル108に関連付けられたメモリアドレスを供給することができる。エイリアス記述
子テーブル108のメモリアドレスは、CPU102によって返されるが、敵対的なソフトウェア
アプリケーション114は、エイリアス記述子テーブル108が読み取り専用権限に関連付けられているため、この情報を悪用することができない。敵対的なソフトウェアアプリケーション114が、記述子テーブル106にデータを書き込むために、208で返されたエイリアス記
述子テーブル108のメモリアドレスを使用することを試みる場合、オペレーティングシス
テムカーネル112またはメモリマップ110は、エラー(例えば、権限違反)を生成し、敵対的なソフトウェアアプリケーションがデータを記述子テーブル106に書き込むのを防止する
。したがって、敵対的なソフトウェアアプリケーションは、記述子テーブル106の値また
は内容を変更することができない。
述子テーブル106が更新されるべきであるという命令を受信することができる。いくつか
の実施形態では、オペレーティングシステムカーネル112は、オペレーティングシステム
機能(例えば、ハードウェアマネージャ)から、記述子テーブルを更新するための命令を受信することができる。
新することができる。例えば、オペレーティングシステムカーネル112は、読み書き権限
に関連付けられたマップ記述子テーブル107にアクセスすることができ、マップ記述子テ
ーブル107内の特定のエントリに関連付けられた値を更新することができる。マップ記述
子テーブル107は、記述子テーブル106のマッピングであるため、記述子テーブル106およ
びエイリアス記述子テーブル108に含まれた値は、更新される。いくつかの実施形態では
、オペレーティングシステムカーネル112は、記述子テーブル106にアクセスし、記述子テーブル106内の値を更新する。
込み記述子テーブルまたはグローバル記述子テーブル)を作成することができ、適切なデ
ータ値(例えば、割り込みハンドラに関連付けられたメモリアドレス、または、様々なメ
モリセグメントに関連付けられた特性)を含めるために、記述子テーブル106を初期化することができる。いくつかの実施形態では、オペレーティングシステムカーネル112は、ブ
ート時に記述子テーブル106を初期化する。オペレーティングシステムカーネル112は、記述子テーブル106に関連付けられた権限を、読み取り専用であるように変更することがで
きる。
することができる。いくつかの実施形態では、SDT命令は、SIDT命令またはSGDT命令であ
る。命令に応答して、CPUは、(306で)DTレジスタに格納されたメモリアドレス(例えば、
記述子テーブル106のメモリアドレス)を返す。記述子テーブル106のメモリアドレスは、CPU102によって返されるが、敵対的なソフトウェアアプリケーション114は、記述子テーブル106が読み取り専用権限に関連付けられているため、この情報を悪用することができな
い。敵対的なソフトウェアアプリケーション114が、記述子テーブル106にデータを書き込
むことを試みる場合、オペレーティングシステムカーネル112またはメモリマップ110は、権限違反を生成する。したがって、敵対的なソフトウェアアプリケーションは、記述子テーブル106の値または内容を変更することができない。
述子テーブル106が更新されるべきであるという命令を受信することができる。いくつか
の実施形態では、オペレーティングシステムカーネル112は、オペレーティングシステム
機能(例えば、ハードウェアマネージャ)から命令を受信することができる。
連付けられた権限レベルを変更することができる。例えば、オペレーティングシステムカーネル112は、記述子テーブル106に関連付けられた権限レベルを、読み取り専用から読み書きに変更することができる。
更新された後、記述子テーブルに関連付けられた権限レベルは、(314で)変更されてよい
。例えば、記述子テーブル106が、新しい値を含むように更新された後、オペレーティン
グシステムカーネルは、記述子テーブルに関連付けられた権限レベルを、読み取り専用であるように変更することができる。
せで実現されてよい。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュー
タプログラムとして、すなわち、データ処理装置によって実行するための、または、データ処理装置の動作を制御するための、コンピュータ記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実施されてよい。代わりに、また
は加えて、プログラム命令は、データ処理装置によって実行するための適切な受信装置に伝送するための情報を符号化するために生成された、人工的に生成された伝播信号、例えば、機械生成された電気、光、または電磁信号上に符号化されてよい。コンピュータ記憶媒体は、コンピュータ可読記憶媒体、コンピュータ可読記憶基板、ランダムまたはシリアルアクセスメモリアレイもしくはデバイス、または、それらの1つもしくは複数の組み合
わせであってよく、または、それらに含まれてよい。さらに、コンピュータ記憶媒体は、伝播信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝播信号内に符号化されたコンピュータプログラム命令の発信元または宛先であってよい。コンピュータ記憶媒体は、また、1つまたは複数の別個の物理的構成要素または媒体(例えば、複数のCD、ディスク、または他の記憶デバイス)であってよく、またはそれらに含まれてよい。
れた、または、他の発信元から受信したデータに対してデータ処理装置によって実行される動作として実施されてよい。
途向け集積回路)を含むことができる。装置は、ハードウェアに加えて、問題のコンピュ
ータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォーム実行時環境、仮想マシン、または、それらの1つもしくは複数の組み合
わせを構成するコードを含むこともできる。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャのような、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
ードとしても知られる)コンピュータプログラムは、コンパイルされたまたは翻訳された
言語、宣言型または手続き型言語を含む、任意の形式のプログラミング言語で書かれてよく、スタンドアロンプログラムとして、または、モジュール、構成要素、サブルーチン、オブジェクト、もしくは、コンピューティング環境で使用するのに適した他のユニットとして、を含む、任意の形態で展開されてよい。コンピュータプログラムは、ファイルシステム内のファイルに対応してもよいが、対応する必要はない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えばマークアップ言語文書に格納された1つまたは複数のスクリプト)内に、問題のプログラム専用の単一のファイル内に、または
、複数の連携ファイル(例えば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を格納するファイル)内に格納されてよい。コンピュータプログラムは、1つのコンピュータ上で、または、1つのサイトに配置される、もしくは、複数のサイトに
わたって分散され、通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開されてよい。
ラムを実行する1つまたは複数のプログラム可能プロセッサによって実行されてよい。プ
ロセスおよび論理フローは、特定目的の論理回路網、例えば、FPGA(フィールドプログラ
マブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されてもよく、装
置は、このような特定目的の論理回路網として実施されてよもよい。
は複数のプロセッサを含む。一般に、プロセッサは、読み取り専用メモリもしくはランダムアクセスメモリ、またはその両方から、命令およびデータを受信することになる。コンピュータの必須要素は、命令にしたがってアクションを実行するためのプロセッサ、ならびに、命令およびデータを格納するための1つまたは複数のメモリデバイスである。一般
に、コンピュータは、また、データを格納するための1つまたは複数の大容量記憶デバイ
ス、例えば、磁気、光磁気ディスク、または光ディスクを、これらからデータを受信する、もしくはこれらにデータを転送する、またはその両方を行うために、含むことになり、または、これらに作動的に結合されることになる。しかしながら、コンピュータは、このようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば、数例を挙げると、携帯電話、パーソナルデジタルアシスタント(PDA)、携帯オーディオも
しくはビデオプレイヤ、ゲームコンソール、全地球測位システム(GPS)受信機、または、
携帯用記憶デバイス(例えば、ユニバーサルシリアルバス(USB)フラッシュドライブ)内に
埋め込まれてよい。コンピュータプログラム命令およびデータを格納するのに適したデバイスは、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュ
メモリデバイス、磁気ディスク、例えば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびに、CD-ROMおよびDVD-ROMディスクを含む、すべての形態の
不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、特定目的の論理回路網によって補足されてよく、または、特定目的の論理回路網に組み込まれ
てよい。
ディスプレイ)モニタ、ならびに、それによってユーザがコンピュータに入力を提供する
ことができるキーボードおよびポインティングデバイス、例えば、マウスまたはトラックボールを有するコンピュータ上で実施されてよい。同様にユーザとの対話を提供するために、他の種類のデバイスが使用されてよく、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってよく、ユーザからの入力は、音響、音声、または触覚入力を含む、任意の形態で受信されてよい。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、デバイスから文書を受信することによって、例えば、ウェブブラウザから受信した要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
トエンド構成要素の任意の組み合わせを含むコンピューティングシステム内で実施されてよく、クライアントコンピュータは、グラフィカルユーザインタフェースまたはウェブブラウザを有し、グラフィカルユーザインタフェースまたはウェブブラウザを介して、ユーザは、本明細書に記載の主題の実施形態と相互作用することができる。システムの構成要素は、任意の形式または媒体のデジタルデータ通信、例えば、通信ネットワークによって相互接続されてよい。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)
およびワイドエリアネットワーク(「WAN」)、インターネットワーク(例えば、インターネット)、ならびに、ピアツーピアネットワーク(例えば、アドホックピアツーピアネットワーク)を含む。
はシステムにアクションを実行させる、システム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせを有することによって、特定の動作またはアクションを実行するように構成されてよい。1つまたは複数のコンピュー
タプログラムは、データ処理装置によって実行されると、装置にアクションを実行させる命令を含むことによって、特定の動作またはアクションを実行するように構成されてよい。
じる。いくつかの実施形態では、サーバは、(例えば、データを表示させ、クライアント
デバイスと対話するユーザからユーザ入力を受信する目的で)データ(例えば、HTMLページ)をクライアントデバイスに送信する。クライアントデバイスで生成されるデータ(例えば、ユーザとの対話の結果)は、サーバでクライアントから受信されてよい。
に、単一の実施形態の文脈で記載される様々な特徴は、複数の実施形態で別々に、または、任意の適切な部分的組み合わせで実施されてもよい。さらに、特徴は、特定の組み合わせで作用するように上述され、そのように当初は特許請求されている場合があるが、特許請求された組み合わせからの1つまたは複数の特徴は、いくつかの場合、組み合わせから
削除されてよく、特許請求された組み合わせは、部分的組み合わせ、または部分的組み合わせの変形を対象としてよい。
102 CPU
104 記述子テーブルレジスタ
106 記述子テーブル
107 記述子テーブルの第1のマッピング
108 エイリアス記述子テーブル
110 メモリマップ
112 オペレーティングシステムカーネル
114 ソフトウェアプロセス
Claims (18)
- 記述子テーブルのアクセス権限レベルを第1の権限レベルに設定するステップと、
機能から、前記記述子テーブルの更新要求を受信するステップと、
前記記述子テーブルの更新要求の受信に応答して、前記機能がオペレーティングシステム機能であるか、または別のアプリケーション用の機能であるかを判断するステップと、
前記機能がオペレーティングシステム機能であると判断するステップと、
前記機能がオペレーティングシステム機能であるという判断に応答して、前記記述子テーブルの前記アクセス権限レベルを、前記第1の権限レベルとは異なる第2の権限レベルに変更するステップと、
前記記述子テーブルの前記アクセス権限レベルが前記第2の権限レベルである間に前記記述子テーブルを更新するステップと、
前記記述子テーブルの更新後に、前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに変更するステップとを備える、コンピュータ実施方法。 - 前記記述子テーブルの更新要求の受信前に、前記第1の権限レベルにおいて前記記述子テーブルを読み取り専用状態に維持するステップをさらに備える、請求項1に記載のコンピュータ実施方法。
- オペレーティングシステムカーネルを使用して前記記述子テーブルを初期化するステップをさらに備える、請求項1または2に記載のコンピュータ実施方法。
- 前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに設定するステップは、割り込み記述子テーブルのアクセス権限レベルを前記第1の権限レベルに設定するステップを含む、請求項1〜3のいずれか1項に記載のコンピュータ実施方法。
- 前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに設定するステップは、グローバル記述子テーブルのアクセス権限レベルを前記第1の権限レベルに設定するステップを含む、請求項1〜3のいずれか1項に記載のコンピュータ実施方法。
- 前記機能がオペレーティングシステム機能であると判断するステップは、前記機能がオペレーティングシステムのハードウェアマネージャであると判断するステップを含む、請求項1〜5のいずれか1項に記載のコンピュータ実施方法。
- コンピューティングシステムであって、
1つ以上のコンピュータと、
命令を格納する1つ以上の記憶部とを備え、前記命令は、前記1つ以上のコンピュータによって実行されると、前記1つ以上のコンピュータに、
記述子テーブルのアクセス権限レベルを第1の権限レベルに設定するステップと、
機能から、前記記述子テーブルの更新要求を受信するステップと、
前記記述子テーブルの更新要求の受信に応答して、前記機能がオペレーティングシステム機能であるか、または別のアプリケーション用の機能であるかを判断するステップと、
前記機能がオペレーティングシステム機能であると判断するステップと、
前記機能がオペレーティングシステム機能であるという判断に応答して、前記記述子テーブルの前記アクセス権限レベルを、前記第1の権限レベルとは異なる第2の権限レベルに変更するステップと、
前記記述子テーブルの前記アクセス権限レベルが前記第2の権限レベルである間に前記記述子テーブルを更新するステップと、
前記記述子テーブルの更新後に、前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに変更するステップとを含む動作を実施させる、コンピューティングシステム。 - 前記動作は、前記記述子テーブルの更新要求の受信前に、前記第1の権限レベルにおいて前記記述子テーブルを読み取り専用状態に維持するステップをさらに含む、請求項7に記載のコンピューティングシステム。
- 前記動作は、オペレーティングシステムカーネルを使用して前記記述子テーブルを初期化するステップをさらに含む、請求項7または8に記載のコンピューティングシステム。
- 前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに設定するステップは、割り込み記述子テーブルのアクセス権限レベルを前記第1の権限レベルに設定するステップを含む、請求項7〜9のいずれか1項に記載のコンピューティングシステム。
- 前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに設定するステップは、グローバル記述子テーブルのアクセス権限レベルを前記第1の権限レベルに設定するステップを含む、請求項7〜9のいずれか1項に記載のコンピューティングシステム。
- 前記機能がオペレーティングシステム機能であると判断するステップは、前記機能がオペレーティングシステムのハードウェアマネージャであると判断するステップを含む、請求項7〜11のいずれか1項に記載のコンピューティングシステム。
- コンピュータプログラムであって、前記コンピュータプログラムは命令を備え、前記命令は、コンピューティングシステムによって実行されると、前記コンピューティングシステムに、
記述子テーブルのアクセス権限レベルを第1の権限レベルに設定するステップと、
機能から、前記記述子テーブルの更新要求を受信するステップと、
前記記述子テーブルの更新要求の受信に応答して、前記機能がオペレーティングシステム機能であるか、または別のアプリケーション用の機能であるかを判断するステップと、
前記機能がオペレーティングシステム機能であると判断するステップと、
前記機能がオペレーティングシステム機能であるという判断に応答して、前記記述子テーブルの前記アクセス権限レベルを、前記第1の権限レベルとは異なる第2の権限レベルに変更するステップと、
前記記述子テーブルの前記アクセス権限レベルが前記第2の権限レベルである間に前記記述子テーブルを更新するステップと、
前記記述子テーブルの更新後に、前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに変更するステップとを含む動作を実施させる、コンピュータプログラム。 - 前記動作は、前記記述子テーブルの更新要求の受信前に、前記第1の権限レベルにおいて前記記述子テーブルを読み取り専用状態に維持するステップをさらに含む、請求項13に記載のコンピュータプログラム。
- 前記動作は、オペレーティングシステムカーネルを使用して前記記述子テーブルを初期化するステップをさらに含む、請求項13または14に記載のコンピュータプログラム。
- 前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに設定するステップは、割り込み記述子テーブルのアクセス権限レベルを前記第1の権限レベルに設定するステップを含む、請求項13〜15のいずれか1項に記載のコンピュータプログラム。
- 前記記述子テーブルの前記アクセス権限レベルを前記第1の権限レベルに設定するステップは、グローバル記述子テーブルのアクセス権限レベルを前記第1の権限レベルに設定するステップを含む、請求項13〜15のいずれか1項に記載のコンピュータプログラム。
- 前記機能がオペレーティングシステム機能であると判断するステップは、前記機能がオペレーティングシステムのハードウェアマネージャであると判断するステップを含む、請求項13〜17のいずれか1項に記載のコンピュータプログラム。
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)
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)
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 | 情報処理装置、情報処理装置の制御方法及び制御プログラム |
-
2011
- 2011-10-19 US US13/277,063 patent/US8826440B2/en active Active
-
2012
- 2012-10-16 CN CN201280061783.3A patent/CN103988211B/zh active Active
- 2012-10-16 EP EP12784389.4A patent/EP2769331B1/en active Active
- 2012-10-16 EP EP18170191.3A patent/EP3373187B1/en active Active
- 2012-10-16 WO PCT/US2012/060412 patent/WO2013059189A2/en active Application Filing
- 2012-10-16 CN CN201911356002.3A patent/CN111523113A/zh active Pending
- 2012-10-16 CA CA2853050A patent/CA2853050C/en active Active
- 2012-10-16 AU AU2012326336A patent/AU2012326336B2/en active Active
- 2012-10-16 CN CN201611013568.2A patent/CN107103232B/zh active Active
- 2012-10-16 JP JP2014537150A patent/JP5973583B2/ja active Active
-
2014
- 2014-08-29 US US14/473,085 patent/US9195827B2/en active Active
-
2015
- 2015-08-28 US US14/839,594 patent/US9576129B2/en active Active
-
2016
- 2016-07-14 JP JP2016139323A patent/JP6013640B2/ja active Active
- 2016-09-21 JP JP2016184217A patent/JP6211158B2/ja active Active
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 |