JP4846660B2 - システム管理割り込みを再命令し、仮想マシンコンテナを生成することによる、信頼性のないシステム管理コードに対する保護方法 - Google Patents

システム管理割り込みを再命令し、仮想マシンコンテナを生成することによる、信頼性のないシステム管理コードに対する保護方法 Download PDF

Info

Publication number
JP4846660B2
JP4846660B2 JP2007150997A JP2007150997A JP4846660B2 JP 4846660 B2 JP4846660 B2 JP 4846660B2 JP 2007150997 A JP2007150997 A JP 2007150997A JP 2007150997 A JP2007150997 A JP 2007150997A JP 4846660 B2 JP4846660 B2 JP 4846660B2
Authority
JP
Japan
Prior art keywords
code
handler
operating system
sub
smm
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.)
Expired - Lifetime
Application number
JP2007150997A
Other languages
English (en)
Other versions
JP2007265434A (ja
Inventor
セカンド,ジェイムズ サットン
グロウロック,デイヴィッド
ウーリッグ,リチャード
ポイズナー,デイヴィッド
グルー,アンドルー
ホール,クリフォード
サード,ローレンス スミス
ネイジャー,ギルバート
コジュフ,マイケル
ジョージ,ロバート
バージェス,ブラッドレイ
Original Assignee
インテル コーポレイション
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 インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2007265434A publication Critical patent/JP2007265434A/ja
Application granted granted Critical
Publication of JP4846660B2 publication Critical patent/JP4846660B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/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
    • G06F21/53Monitoring 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 executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection 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
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Description

本発明の開示は、一般に、マイクロプロセッサに関し、更に詳細には、高信頼又は安全環境において機能することが可能であるマイクロプロセッサシステムに関する。
プロセッサは、システム動作の即時要求による幾つかのプロセッサの動作モードにおいて動作することが可能である。一般に、プロセッサは、スーパバイザモード、ユーザモード及び、あるときは特定目的モードを有することが可能である。スーパバイザモードはオペレーティングシステムの実行を支援することが可能であり、特権命令を含む殆どの命令の実行を可能にする。異なるアドレス空間及び周辺装置へのアクセスを特権モードで与えることが可能である。ユーザモードは、特権モードに照らして、被特権命令に制限されることが可能であり、それ故、ユーザコードは、システムの機能性を混乱させることはない。
商業的にリリースされたソフトウェアは、特定のオリジナルの装置製造業者の(OEMの)ハードウェアのパッケージソフトに完全に適応しない場合がしばしばある。仕様についての誤解又は実行エラーのために、ハードウェアにより支援されない又は見込まれない方法で、ソフトウェアがハードウェアにアクセスするように試みる状態が存在し得る。簡単な例としては、ソフトウェアの問題がアドレスxのレジスタに値を置く一方、ハードウェアにおける実際のレジスタはアドレスx+yにあることがあり得る。これは、システムの例外の原因となり得る。
そのような状態に対処するために、プロセッサは、低レベルのパッチを実行する目的で、特権レベルに依存しない方法で、又は特権レベルにトランスペアレント又は擬似トランスペアレントな方法で動作する能力を有する動作モードを支援するようにデザインされることが可能である。本出願の目的のために、そのようなモードを、“サブオペレーティングシステムモード”と定義することが可能である。1つのそのようなモードは、インテル(登録商標)のペンティアム(登録商標)プロセッサのファミリ及び互換性のあるプロセッサのシステム管理モード(SMM:System Management Mode)である。他のサブオペレーティングシステムモードは、MIPS Technologies(登録商標)MIPS32(登録商標)又はMIPS64(登録商標)アーキテクチャプロセッサ、IBM(登録商標)PowerPC(登録商標)アーキテクチャプロセッサ、SPARC International(登録商標)SPARC(登録商標)アーキテクチャプロセッサ、又は他の多くのプロセッサにおいて存在し得る。サブオペレーティングシステムの存在は、パワーダウンモードへの移行の支援のような付加的なシステム
の利益を有することが可能である。上記で概観したようなソフトウェアとハードウェアのミスマッチに対処するために、既存のサブオペレーティングシステムモードの実行は、特権制限又はアドレスマッピング制限を有しない。サブオペレーティングシステムモードは、専用サブオペレーティングシステムモードの割り込みにより呼び出されることが可能であり、ときどき、システムファームウェア又はシステムハードウェアにより生成されることが可能である。この専用サブオペレーティングシステムモードの割り込みは、通常、そのモードへのエントリを必要とした緊急性に応答するために、マスク不可能であるようにデザインされている。
サブオペレーティングシステムモードは、一般に、次のような主要機構を有することが可能である。そのモードに入る唯一の方法は、特定のサブオペレーティングシステムモードの割り込みによるものである。SMMの場合、専用サブオペレーティングシステムモードの割り込みはシステム管理の割り込み(SMI:System Management Interrupt)と呼ばれている。プロセッサは、別個のアドレス空間においてモードのコードを実行することが可能である。例えば、そのモードがSMMである場合、別個のアドレス空間は、SMRAM(System Management Random−Access−Memory)へのアクセスを可能にし、SMRAMは他のオペレーティングモードにアクセス不可能にされる。そのモードに入るとき、プロセッサは、別個のアドレス空間において割り込みされたプログラム又はタスクのコンテキストを保存する。例えば、SMMにおいて、コンテキストはSMRAMに保存される。そのモードにおける実行の間に、普通の割り込みは無効になる。最終的に、そのモードは、そのモードにおいて実行する間にのみ実行されることが可能であるレジューム命令により終了されることが可能である。
ローカルマイクロコンピュータ又はリモートマイクロコンピュータにおいて実行される金融取引及び個人取引の著しい増加は、“高信頼性の”又は“セキュアな”マイクロプロセッサ環境の確立のための推進力を提供している。これらの環境が解決しようとしている問題は、プライバシーの損失、並びにデータへの悪影響又は悪用である。ユーザは、彼らのプライベートなデータが公になることを望んでいない。ユーザは又、彼らのデータが改竄されたり不適切な取引で使用されたりすることを望まない。このような例は、医療記録の国内における公開、又はオンラインバンク又は他のデポジトリーバンクからの資金の電子盗難を含む。同様に、コンテンツプロバイダは、デジタルコンテンツ(例えば、音楽、他の音声、映像、又は一般的な他のタイプのデータ)が認証なしにコピーされることから保護しようと努めている。
SMMのような、サブオペレーティングシステムモードの在り方は、セキュア及び高信頼性システムのデザイナーにとってのデザインの課題である。そのようなサブオペレーティングシステムモードが特権制限又はアドレスマッピング制限を有していないという事実は、セキュア又は高信頼性システムアーキテクチャとは相容れないものである。そして、このような特権制限又はアドレスマッピング制限の不足は、これらが通常マスク不可能であるようにデザインされているため、しばしば、モードの専用の割り込み等のマスキングを試みることによって回避されるようにすることはできない。
以下の説明は、マイクロプロセッサシステムにおける高信頼性又はセキュアな環境における特定のシステム管理モードのコードの実行を可能にするための技術に関するものである。以下の説明においては、例えば、論理の実施、ソフトウェアモジュール割り当て、暗号化技術、バスシグナリング技術及びオペレーションの詳細等の多くの仕様の詳細について、本発明の全体を通してのよりよい理解を提供するように説明している。しかしながら、本発明はそのような特定の詳細を用いないで実行されることが可能であることが、当業者には理解されるであろう。他の例においては、制御構成、ゲートレベルの回路及び全部のソフトウェア命令シーケンスについては、本発明を理解し難くしないように、詳細を示すことはしない。盛り込んでいる説明を用いて、当業者は、過度の実験をすることなく、適切な機能性を実施することが可能となるであろう。本発明は、マイクロプロセッサシステムの形式で開示している。しかしながら、本発明は、例えば、デジタル信号プロセッサ、マイクロコンピュータ又はメインフレームコンピュータのような他の方式のプロセッサにおいて実行されることが可能である。
セキュアな及び高信頼性の環境において制限されたサブオペレーティングシステムモードコードを可能にするために、そのサブオペレーティングシステムモードの割り込みは、システムリソースへの仮想マシンアクセスを制御する高信頼性コードにおいてハンドラに先ず命令されることが可能である。そのハンドラへの命令は、そのようなサブオペレーティングシステムモードの割り込みを行うために必要なコードの位置を含むプロセッサにおいて割り込みサービスレジスタに高信頼性コードが書き込む及びそれから読み出すことを可能にすることにより、達成されることが可能である(割り込みサービスレジスタは、一般に、割り込みの受信において実行される必要があるそのコードを決定するために用いられるレジスタとして定義される)。サブオペレーティングシステムモードの割り込みは、次いで、割り込みサービスに対して、上記の高信頼性モードのセキュリティ制御の下にある他の仮想マシンに位置付けられたサブオペレーティングシステムモードのコードに対して再命令される。代替として、マイクロプロセッサの仮想化アーキテクチャは、高信頼性コードが確立されたとき、サブオペレーティングシステムモードの割り込みは、もはや、標準的な割り込みサービスレジスタを用いることはないが、それに代えて、仮想化アーキテクチャと整合性がとれた高信頼性コードへの移行をもたらす。
サブオペレーティングシステムモードがシステム管理モード(SMM)である例示としての場合、セキュアな又は高信頼性の環境におけるSMMコードの実行は、システム管理の割り込み(SMI)がセキュアな仮想マシンモニタ(SVMM:Secured Virtual Machine Monitor)におけるハンドラに命令されるようにすることにより開始されることが可能である。このハンドラへの命令は、SVMMがプロセッサ(PSMBASE)におけるシステム管理ベース(SMBASE)のレジスタに書き込み及びそれから読み出すことを可能にすることにより、達成されることが可能である。SMIは、次いで、SVMMのセキュリティ制御の下にある仮想マシン(VM)に位置付けられたSMMコードに再命令される。代替として、プロセッサの仮想化アーキテクチャは、PSMBASEレジスタの使用を無効にし、直接、SVMMへのSMI全ての再命令をもたらすことが可能である。
一実施形態において、SMMコードは、メモリにおける保護されたページを除いて、システムリソース全てへのアクセス、及びこの保護を維持する関連システム制御を許可されることが可能である。これを達成するために、セキュアにされた動作の初期設定の後、SMIは、先ず、SVMMにおいてハンドラに対して命令されることが可能である。このハンドラは、SMMモードに対して適切な仮想マシン(VM)コンテナを確立し、そのコードにSMIを再命令することが可能である。VMコンテナにおいてSMMコードを実行することにより、SMMコードは、SVMMが保護されたとみなされた、メモリのような種々のシステムリソースにアクセスしないようにされることが可能である。一実施形態においては、ここで、VMの要求を確認するために、SMMコードが書き込まれることが可能である。1つのそのような変化の確認は、SMMコードがフラット保護モードか又は一部の他のページメモリアクセスモードのどちらかにおいて書き込まれることである。
ここで、図1を参照するに、システム管理ランダムアクセスメモリ(SMRAM:System Management Random−Access Memory)におけるシステム管理モード(SMM)コードのメモリマッピングが一実施形態において示されている。標準的システムの初期設定の間、システムランダムアクセスメモリ(RAM)110のセクションは、SMMコードによる独占使用のために除外される。この除外されたセクションは、システム管理RAM(SMRAM)と呼ばれる。SMRAMにおける特定のメモリ位置は、チップセット又はプロセッサにおける割り込みサービスレジスタにより指し示されることが可能であり、そのチップセット又はプロセッサは、一実施形態において、システム管理ベースの(SMBASE)レジスタと呼ばれる。
チップセットSMBASEレジスタのコンテンツCSMBASEは、SMRAMの境界を規定することが可能である。例えば、SMRAMは、CSMBASE120とCSMBASE+FFFFhex132との間の空間を占めることが可能である。他の実施形態においては、同時にSMMコードを実行する2つ又はそれ以上のプロセッサを支援するために、各々のプロセッサはそれ自体の専用SMRAM空間を有することが可能である。プロセッサのSMBASEレジスタコンテンツPSMBASEは、SMRAMにおける状態保存位置及びコードエントリポイントを規定することが可能である。例えば、SMRAMにおいて、標準的コードエントリポイントは、CSMBASE+8000hex124に位置付けられることが可能である。CSMBASEの値は、各々のプロセッサのSMBASEレジスタに対するシステム初期設定において書き込まれることが可能であり、これにより、各々のプロセッサはSMIの受信においてSMMコードエントリポイントに進むことが可能である。SMMコードへのエントリに先立ち、プロセッサは、一実施形態において、アドレスPSMBASE+FE00hex128とSMBASE+FFFFhex132の位置におけるSMRAMの端部との間の状態保存領域に状態データを記憶することが可能である。他の実施形態においては、同時にSMMコードを実行する2つ又はそれ以上のプロセッサを支援するために、各々のプロセッサのSMBASEレジスタは、異なるコードエントリポイント及び状態データを記憶するための位置を可能にする、PSMBASEの異なる値を含むことが可能である。
状態データは、制御レジスタの値、フラッグ、自動中断再起動フィールド、入力/出力(I/O)命令再起動フィールド及びSMMリビジョン識別子を含むことが可能である。SMRAMにおける位置の一部は、SMIハンドラにより修正されることが可能である。SMMコードの実行の完了に際して、オリジナルプログラムは、プロセッサがレジューム(RSM)命令を実行するとき、再エントリされることが可能である。この既存のRSM命令はSMM命令においてのみを発行されることが可能であり、SMRAMにおいて予め記憶された状態値をもとに戻す。この既存のSMMデザインは当該技術分野において周知である。
ここで、図2を参照するに、本発明の一実施形態に従って、例示としての高信頼性又はセキュアなソフトウェア環境を示している。図2の実施形態においては、高信頼性の及び信頼性のないソフトウェアが同時に位置付けられており、それらを単一のコンピュータシステムにおいて同時に実行することが可能である。SVMM250は、信頼性のないオペレーティングシステム240(又は、複数の信頼性のない仮想マシンが実行される場合の複数のオペレーティングシステム)及び信頼性のない装置210乃至230からハードウェアリソース280への直接アクセスを選択的に可能にする又は回避する。これに関連して、“信頼性のない”は、オペレーティングシステム又はアプリケーションが故意に不正な挙動を示すが、相互作用するコードの種類及びサイズは、ソフトウェアが所望のように挙動し、その実行に干渉する他の外部からのコード又はウィルスが存在しないことを確実に実証することを非現実的にする。代表的な実施形態においては、信頼性のないコードは、標準的なオペレーティングシステム及び今日のパーソナルコンピュータにおいて見られるアプリケーションから構成されることが可能である。
SVMM250は又、1つ又はそれ以上の高信頼性又はセキュアなカーネル260及び1つ又はそれ以上の高信頼性アプリケーション270からハードウェアリソース280への直接アクセスを選択的に可能にする又は回避する。そのような高信頼性の又はセキュアなカーネル260及び高信頼性のアプリケーション270は、それにおいて高信頼性分析を実行する能力において支援するようにサイズ及び機能性を制限されることが可能である。高信頼性のアプリケーション270を、セキュアな環境において実行可能である、いずれのソフトウェアコード、プログラム、ルーチン又はルーチンの集合とすることが可能である。このように、高信頼性のアプリケーション270は、種々のアプリケーション又はコードシーケンスであることが可能であり、又、Java(登録商標)アプレットのような比較的小さいアプリケーションであることが可能である。
システムリソース保護又は特権を変えることが可能であるオペレーティングシステム240又はカーネル260により標準的に実行される命令又は動作は、SVMM250により捕捉され、選択的に可能にされ、部分的に可能にされ、又は拒否される。例として、代表的な実施形態において、オペレーティングシステム240又はカーネル260を動作させることにより標準的に実行されるプロセッサのページテーブルを変化させる命令は、それに代えて、SVMM250により捕捉される。そのSVMM250は、要求が仮想マシンの領域の外側のページ特権を変化させないように試みることを確実にする。このシステムを視認化する1つの方法は、オペレーティングシステム240、カーネル260及びSVMM250が、SVMM250仮想マシンにおいて実行するカーネル260仮想マシン及びオペレーティングシステム240仮想マシンを有する、全てが仮想マシンであることである。このようにして、仮想マシンの階層が構成される。ここでは、一実施形態において、仮想マシンは、システムのリソース全ての独占的な制御を有する特徴を各々のユーザに与えるいずれの複数のユーザの共有リソースのオペレーティングシステムとして定義されることが可能であり、又、仮想マシンは又、基本となる制御プログラムにより次に管理されるオペレーティングシステムと定義されることが可能である。
図3を参照するに、図2のセキュアなソフトウェア環境を支援するために適応されたマイクロプロセッサ300の一実施形態を示している。CPU
A310、CPU B314、CPU C318及びCPU D322は、特定命令の実行を支援するために論理回路又は付加マイクロコードから構成されることが可能である。一実施形態において、プロセッサは、本発明の実施形態に従って特定の特別な修正を有するIntel(登録商標)のPentium(登録商標)クラスのマイクロプロセッサとすることが可能である。これらの特別な命令は、プロセッサにおけるSVMM250動作の正確な同期を可能にするシステムバス320における特別なバスメッセージの発行を支援することが可能である。同様に、チップセット330は、システムバス320において、上記の特別なサイクルを支援することが可能である。物理プロセッサの数は、特定の実施形態の実行の再に変化することが可能である。
図3の実施形態においては、4つのプロセッサ、CPU A310、CPU B314、CPU C318及びCPU D322が、4つの別個のハードウェアエンティティとして示されている。他の実施形態においては、プロセッサの数は異なることが可能である。実際には、プロセッサは、別個のスレッドであって、各々が物理プロセッサの一において実行する、スレッドにより置き換えられる。後者の場合、これらのスレッドは、付加物理プロセッサの多くの属性を処理する。複数の物理プロセッサ及びプロセッサに関する複数のスレッドのいずれの混合を用いて検討するように総称表現を有するために、表現“論理プロセッサ”を、物理プロセッサか又は物理プロセッサの1つにおいて動作するスレッドを表すために用いることが可能である。このようにして、1つの単一のスレッドプロセッサは論理プロセッサであるとみなすことが可能であり、複数のスレッド又は複数のコアプロセッサは複数の論理プロセッサとみなされることが可能である。
一実施形態において、プロセッサへの修正は、レジスタの挙動への変化及び新しい又は修正された命令を含むことが可能である。例えば、一実施形態において、CPU C318は、新しい命令のセキュアなエンター(SENTER)を含むことが可能である。SENTER324命令は、実行に際して、上記の図2において示したように、セキュアな又は高信頼性の動作の初期設定を可能にする。SENTER324は、複数の論理プロセッサがセキュアな又は高信頼性の動作へのそれらのエントリを同期することを可能にする。一実施形態において、SENTER324は又、セキュアな又は高信頼性のSMM動作を支援するために特定の状況においてCPU C318のPSMBASEレジスタ316への書き込みを可能にする。
一実施形態において、CPU C318は又、修正されたレジューム(RSM)326命令を含むことが可能である。修正されたRSM326は、セキュアな又は高信頼性の動作を支援するSMMからのリターンを可能にする。従来のRSM命令はSMMからのみ実行されることが可能である。修正されたRSM326は、標準的なページモードから実行されることが可能である。有効にされたVM拡張子と共に呼び出されるとき、修正されたRSM326命令は、SMIに対するSVMMに戻る、VMexitと呼ばれる、特別なシステムコールを実行することが可能である。
チップセット330は、システムバス320においてCPUからもたらされた要求を書き込む又はそれを読み出すために役立つ。メモリ334におけるSMRAMの配分を、CSMBASEの値を含むチップセットSMBASEレジスタ331により容易にすることが可能である。チップセット330は、高性能グラフィクポート(AGP)336のような専用の入力/出力(I/O)チャネルに接続されることが可能である。チップセット330は、CPU A310、CPU B314、CPU C318及びCPU D322から、及び付加的にはI/O装置から、物理メモリ334におけるメモリのページへのアクセスを制御することが可能である。そのような装置は、固定媒体344又はリムーバブル媒体348のような大容量記憶装置を含むことが可能である。固定媒体344又はリムーバブル媒体348は、磁気ディスク、磁気テープ、磁気ディスケット、光磁気ドライブ、CD−ROM、DVD−ROM、フラッシュメモリカード、又は他の方式の大容量記憶装置とすることが可能である。固定媒体344又はリムーバブル媒体348は、周辺装置の構成要素の相互接続(PCI)バス346により、若しくは、代替として、ユニバーサルシリアルバス(USB)342,統合制御器エレクトロニクス(IDE)バス(図示せず)又は小型コンピュータシステムの相互接続(SCSI)バス(図示せず)により、チップセット330に接続されることが可能である。
SVMM364は、メモリ334における特定のページへのVMのアクセスを可能にする又は拒否する。VMがアクセスを拒否されたメモリのページは“ロックされた”ページと呼ばれる一方、VMがアクセスを可能にされたページは“ロックされていない”ページと呼ばれる。ロックされたメモリページ360において、セキュアなSMM動作を支援するためにSVMM364におけるモジュール及びSVMM364を位置付けることが可能である。一実施形態において、そのようなモジュールは、SVMM SMMハンドラ366と、仮想マシンエグジット(VMexit)/仮想マシンコール(VMcall)ハンドラ368を含むことが可能である。他の実施形態においては、SVMM SMMハンドラ366の機能及びVMexit/VMcallハンドラ368の機能は結合される又は他のモジュールの間に分配されることが可能である。他のメモリのページは、ロックされないメモリページ362のように、ロックされないまま保たれることが可能である。標準的なオペレーティングシステム372はロックされないメモリページ362に位置付けられることが可能である。又、MMS仮想マシン(SMM VM)370はロックされないメモリページ362にあることが可能である。SMM VM370は標準的なSMMコードに類似しているが、仮想マシンコンテナにおいて動作するように修正されたソフトウェアコードを含むことが可能である。そのようなSMM VM370における修正は、標準的なSMMではなくページモードにおける実行のために調整されたコードを含むことが可能である。
単一の分離された集積回路において実行されるように、チップセット330のメモリ制御器及びI/O装置の制御機能を、図3の実施形態に示している。代替の実施形態においては、分離されたメモリ制御器が集積された回路は、一般に、チップセット330について上で説明したメモリ制御機能を実行することが可能である。同様に、分離されたI/O装置の制御器が集積された回路は、チップセット330について上で説明したI/O装置の制御機能を実行することが可能である。他の実施形態において、チップセット330のメモリ制御機能は、幾つかのCPUが特定容量の物理メモリへの直接アクセスをそれぞれ有することを可能にする、CPU集積回路における回路構成において実施されることが可能である。そのような実施形態において、チップセット330のメモリ制御機能は、幾つかのCPU集積回路の間で分割されることが可能であり、又は、複数のプロセッサに対して、単一のダイにおいて含まれることが可能である。
ここで、図4を参照するに、本発明の一実施形態に従って、仮想マシン(VM)コンテナにおいて動作するシステム管理コード(SMM)を示している。図4の実施形態において、SVMM450は、セキュアな又は高信頼性のSMM動作を支援するために2つの付加モジュールを有している。SVMM SMMハンドラ452は、SENTER命令の実行に応答してSMM VM490におけるSMMコードを確立する。VMexit/VMcallハンドラ454は、VMコンテナにおけるSMM VM490の意図的な低い特権レベルのために、SMM VM490へのエントリ及びそれからのエグジットを処理する。一部の実施形態においては、SVMM SMMハンドラ452及びVMexit/VMcallハンドラ454は同じソフトウェアモジュールとすることが可能である。
SVMM SMMハンドラ452は幾つかの機能を実行することが可能である。セキュアな又は高信頼性の動作への移行の間に、プロセッサによるSENTERコマンドの実行に従って、SVMM SMMハンドラ452は、仮想マシンコンテナにおけるSMM VM 490コードをロードし且つ初期設定する。一部の実施形態においては、SVMM SMMハンドラ452は、次いで、システムにおける各々のプロセッサの修正されたSMBASEレジスタに対して、それ自体におけるエントリ位置を書き込む。このエントリ位置は、SMIがSVMM SMMハンドラ452に対して、先ず、命令されることを可能にする。これは、システム管理の割り込みに応答してVMexit/VMcallハンドラ454を直接呼び出す他の実施形態に対しては必要ない。これらの実施形態に対して、SVMM SMMハンドラ452及びVMexit/VMcallハンドラ454は1つのソフトウェアモジュールに結合される。SVMM SMMハンドラ452は又、SMM動作へのエントリの際に保存される必要がある状態データを記憶するために、ロックされたメモリページにおいて空間を構築する。この状態データの例については、図1に関連して上で説明している。ロックされたメモリページにこの状態データを置くことにより、状態データの無許可の開示又は操作を回避する。
VMexit/VMcallハンドラ454は幾つかの機能を実行することが可能である。VMexit/VMcallハンドラ454は、最初のエントリに続いて、SMM VM490にエントリし、それからエグジットすることが可能である。VMexit/VMcallハンドラ454は又、SMM VM490がロックされたメモリページから読み出すように又はそれから書き込むように試みるときにもたらされる例外を処理することが可能である。VMexit/VMcallハンドラ454の一部は、特定のこれらのロックされたメモリページからの読み出し又はそれからの書き込みが状況に依存して進めるようにされる必要があるかどうかを決定することが可能である。一実施形態において、ロックされたメモリページにおいて対象とされた位置が高信頼性のデータを含んでいないことをVMexit/VMcallハンドラ454が決定した場合、ロックされたメモリページからの読み出し又はそれからの書き込みが許可されることが可能である。
SMM VM490は、ページメモリアクセスモードにおいて実行するためにSMMモードフォーマットから修正された、所望のSMMコードを含む。一般に、SMM VM490におけるSMMコードは、ロックされたメモリページからのメモリ読み出し及びそれへのメモリ書き込みを生成するために、それらの命令の例外的場合と共に、上記のように実行する。それらの場合、SMMコードはVMexit/VMcallハンドラ454を読み出すことが可能である。SMMコードはVMexit/VMcallハンドラ454に明示コールを生成することが可能であり、又、VMexit/VMcallハンドラ454に例外が捕捉されるようにすることにより間接コールを生成することが可能である。どちらの場合においても、VMexit/VMcallハンドラ454はこれらの状況を処理する。
ここで、図5を参照するに、本発明の一実施形態に従った、システム管理割り込み再命令について示している。セキュアな又は高信頼性の動作の開始に続くハードウェア480におけるSMI生成イベントについて考慮することとする。プロセッサはそのSMBASEレジスタを調べる。初期設定の際に、SVMM SMMハンドラ452はプロセッサにおける修正されたSMBASEレジスタに内部メモリ位置を書き込んだため、プロセッサはSVMM SMMハンドラ452の実行を開始する。SVMM SMMハンドラ452はロックされたメモリページに状態データを記憶し、次いで、SMM VM490における実際のSMMコードへの仮想モードエンター(VMenter)コールを発行する。他の実施形態においては、SMIは、SVMMのVMexitハンドラの呼び出しをもたらすことが可能である。
SMM VM490におけるSMMコードは、ロックされたメモリページにおけるメモリ位置からの読み出し又はそれへの書き込みを試みるまで実行される。次いで、明示コールか又は捕捉をもたらす例外により、VMexit/VMcall524はVMexit/VMcallハンドラ454を呼び出すために生成されることが可能である。VMexit/VMcall524は、許可可能であるとみなされるそれらのメモリアクセスを実行し、次いで、他のVMenter522によりSMM VM490に戻る。このプロセスは、SMM VM490における所望のSMMコードが完了するまで、数回繰り返されることが可能である。このとき、SMMコードは、VMexit/VMcallハンドラ454にVMexit/VMcall524を経由してエグジットする。一部の実施形態に対して、VMexit/VMcallハンドラ454は、次いで、修正されたれジューム命令SMM VMコードRSM526の実行によりSVMM SMMハンドラ452にエグジットする。これは、SVMM SMMハンドラ452がロックされたメモリページに記憶された(VMexit/VMcallハンドラ454により修正される可能性がある)状態データを回復させるようにする。他の実施形態に対しては、SVMM SMMハンドラ452及びVMexit/VMcallハンドラ454は結合されることが可能であり、これらの動作はソフトウェアにおいて実行されることが可能である。状態データの回復のとき、プロセッサはそのオリジナルの動作を再開する。
ここで、図6を参照するに、本発明の他の実施形態に従った、図2のソフトウェア環境を支援するように適合された例示としてのマイクロプロセッサシステムの模式図を示している。CPU A610、CPU B614、CPU C618及びCPU D622は、特別命令の実行を支援する論理回路構成又は付加マイクロコードから構成されることが可能である。一実施形態において、プロセッサに対する修正は、レジスタの挙動に対する変化及び新しい又は修正された命令を含むことが可能である。例えば、一実施形態において、CPU C618は、新しい命令“仮想マシンモニタ初期設定”(VMMINIT)624を含むことが可能である。VMMINIT624命令は、実行のとき、上で図2において示したように、セキュアな又は高信頼性の動作の開始を可能にする。一実施形態において、VMMINIT624は又、セキュアな又は高信頼性のSMM動作を支援するために特定の状況においてCPU C618のPSMBASEレジスタ616の標準的な動作を無効にすることが可能である。そのような実施形態において、CPU C618は、次いで、セキュリティ環境ルールにより予め準備されたVMexit/VMcall668におけるコードエントリポイント及び状態保存領域にSMIを再命令することが可能である。
一実施形態において、CPU C618は又、修正されたレジューム(RSM)626命令を含むことが可能である。修正されたRSM626は、セキュアな又は高信頼性の動作を支援するSMMからの戻りを可能にする。通常、RSM命令はSMMからのみ実行されることが可能である。修正されたRSM626は標準的なページモードから実行されることが可能である。有効にされたVM拡張子が呼び出されたとき、修正されたRSM626命令は、VMexit/VMcall668を呼び出すことに戻って、VMexitと呼ばれる特別なシステムコールを実行することが可能である。
チップセット630は、システムバス620においてCPUから伝えられた要求を読み込む及び書き出すために役立つ。メモリ634におけるSMRAMの分配を、CSMBASEの値を含むチップセットSMBASEレジスタ631により容易にすることが可能である。
SVMM664は、メモリ634における特性のページへのVMのアクセスを可能にする又は拒否することを可能にする。VMがアクセスを拒否されたメモリのページは“ロックされた”ページと呼ばれる一方、VMがアクセスを可能にされたページは“ロックされていない”ページと呼ばれる。ロックされたメモリページ660において、セキュアなSMM動作を支援するためにSVMM664におけるモジュール及びSVMM664を位置付けることが可能である。一実施形態において、モジュールはVMexit/VMcall668とすることが可能である。他の実施形態においては、VMexit/VMcall668の機能は結合されることが可能であり、他のモジュール間に分配されることが可能である。他のメモリのページは、ロックされていないメモリページ662のようなロックされない状態のまま保つことが可能である。標準的なオペレーティングシステム672はロックされていないメモリページに位置付けられることが可能である。又、SMM VM670はロックされていないメモリページ662にあることが可能である。SMM VM670は、標準的なSMMコードに類似しているが、仮想マシンコンテナにおいて動作するように修正されたソフトウェアコードを含むことが可能である。SMM VM670におけるそのような修正は、標準的なSMMではなくページモードにおける実行のために調整されたコードを含むことが可能である。
ここで、図7を参照するに、本発明の他の実施形態に従った、システム管理割り込み再命令についての図を示している。図7の実施形態においては、SVMM750は、セキュアな又は高信頼性のSMM動作を支援するために2つの付加モジュールを有する。一実施形態において、VMexit/VMcallハンドラ754は、VMMINIT命令の実行に応答してSMM VM790においてSMMコードを確立し、VMコンテナにおけるSMMVM790の意図的な低い特権レベルのためにSMM VM790へのエントリ及びそれからのエグジットを付加的に処理する。
VMexit/VMcallハンドラ754は幾つかの機能を実行することが可能である。セキュアな又は高信頼性の動作への移行の間に、プロセッサによるVMMINITコマンドの実行に従って、VMexit/VMcallハンドラ754は、仮想マシンコンテナにおけるSMM VM 790コードをロードし且つ初期設定する。VMexit/VMcallハンドラ754は又、SMM動作へのエントリの際に保存される必要がある状態データを記憶するためにロックされたメモリページにおける空間を確立する。
VMexit/VMcallハンドラ754は幾つかの付加機能を実行することが可能である。VMexit/VMcallハンドラ754は、SMM VM790へのエントリ及びそれからのエグジットを処理することが可能である。VMexit/VMcallハンドラ754は又、SMM VM790がロックされたメモリページから読み出すまたはそれから書き込むことを試みるときにもたらされる例外を処理することが可能である。
VMexit/VMcallハンドラ754の一部は、特定のこれらのロックされたメモリページからの読み出し又はそれからの書き込みが状況に依存して進めるようにされる必要があるかどうかを決定することが可能である。一実施形態において、ロックされたメモリページにおいて対象とされた位置が高信頼性のデータを含んでいないことをVMexit/VMcallハンドラ754が決定した場合、ロックされたメモリページからの読み出し又はそれからの書き込みが許可されることが可能である。
SMM VM790は、ページメモリアクセスモードにおいて実行するために、一実施形態においてSMMモードフォーマットから修正された、所望のSMMコードを含む。一般に、SMM VM790におけるSMMコードは、ロックされたメモリページからのメモリ読み出し及びそれへのメモリ書き込みを生成するために、それらの命令の例外的場合と共に、上記のように実行する。それらの場合、SMMコードはVMexit/VMcallハンドラ754を読み出すことが可能である。SMMコードはVMexit/VMcallハンドラ754に明示コールを生成することが可能であり、又、VMexit/VMcallハンドラ754に例外が捕捉されるようにすることにより間接コールを生成することが可能である。どちらの場合においても、VMexit/VMcallハンドラ754はこれらの状況を処理する。
セキュアな又は高信頼性の動作の開始に続くハードウェア480におけるSMI生成イベントについて考慮することとする。プロセッサはそのSMBASEレジスタを調べる。VMMINITの実行はプロセッサにおける修正されたSMBASEレジスタの標準的な動作を無効にしたため、プロセッサは、セキュリティ環境ルールにより予め準備されたコードエントリポイントからVMexit/VMcallハンドラ754の実行を開始する。VMexit/VMcallハンドラ754はロックされたメモリページにおいて状態データを記憶し、次いで、SMM VM790において実際のSMMコードにVMenterコールを発行する。
SMM VM790におけるSMMコードは、ロックされたメモリページにおけるメモリ位置からの読み出し又はそれへの書き込みを試みるまで実行される。次いで、明示コールか又は捕捉をもたらす例外により、VMexit/VMcall724はVMexit/VMcallハンドラ754を呼び出すために生成されることが可能である。VMexit/VMcall724は、許可可能であるとみなされるそれらのメモリアクセスを実行し、次いで、他のVMenter522によりSMM VM790に戻る。このプロセスは、SMM VM790における所望のSMMコードが完了するまで、数回繰り返されることが可能である。このとき、SMMコードは、VMexit/VMcallハンドラ754にVMexit/VMcall724を経由してエグジットする。一部の実施形態に対して、VMexit/VMcallハンドラ754は、次いで、修正されたレジューム命令を先ず実行することにより、標準的なSVMM750動作にエグジットする。これは、SVMM SMMハンドラ452がロックされたメモリページに記憶された(VMexit/VMcallハンドラ454により修正される可能性がある)状態データを回復させるようにする。他の実施形態に対しては、SVMM SMMハンドラ452及びVMexit/VMcallハンドラ454は結合されることが可能であり、これらの動作はソフトウェアにおいて実行されることが可能である。状態データの回復のとき、プロセッサはそのオリジナルの動作を再開する。
開示した種々の実施形態は2つ又はそれ以上のプロセッサ(論理プロセッサ又は物理プロセッサ)を含む一方、そのような複数のプロセッサ及び/又は複数のスレッドシステムは、複数の論理プロセッサ又は物理プロセッサを有するシステムをセキュアにすることに関連する付加的複雑性を述べるためにより詳細に説明されることを理解する必要がある。より複雑でないシステムにおいて有利である可能性がある実施形態は又、1つのプロセッサのみを用いることが可能である。一部の例においては、1つの物理プロセッサは、複数のスレッドとすることが可能であり、それ故、複数の論理プロセッサを含むことが可能である。他の例においては、しかしながら、単一のプロセッサ、単一のスレッドシステムが用いられることが可能であり、更に、開示したセキュアな処理技術を利用することが可能である。そのような場合、セキュアな処理技術は、更に、データが認証されない方式で操作される又は盗難される可能性を低減するために機能する。
上記の詳細説明において、本発明は、例示としての特定の実施形態に関して説明した。しかしながら、同時提出の特許請求の範囲から逸脱することなく、種々の修正及び変更を行うことが可能であることは明らかであろう。従って、上記の詳細説明及び図面は、制限的意味ではなく、例示であるとみなされる必要がある。
既存の実施におけるシステム管理RAMのシステム管理モードコードの守りマッピングを示す図である。 一実施形態に従った、高信頼性の領域及び信頼性のない領域を有する例示としてのソフトウェア環境を示す図である。 本発明の一実施形態に従った、図2のソフトウェア環境を支援するように適合された例示としてのマイクロプロセッサシステムの模式図である。 本発明の一実施形態に従った、仮想マシンコンテナにおいて動作するシステム管理コードを示す図である。 本発明の一実施形態に従った、システム管理割り込み再命令を示す図である。 本発明の他の実施形態に従った、図2のソフトウェア環境を支援するように適合された例示としてのマイクロプロセッサシステムの模式図である。 本発明の他の実施形態に従った、システム管理割り込み再命令を示す図である。

Claims (18)

  1. プロセッサによりサブオペレーティングシステムモード割り込みを受け入れる段階であって、高信頼性コードにおいてハンドラに前記サブオペレーティングシステムモード割り込みを命令する、段階
    前記高信頼性コードのセキュリティ制御下で仮想マシンに含まれるサブオペレーティングシステムモードのコードへの前記サブオペレーティングシステムモード割り込みを再命令する段階;及び
    前記サブオペレーティングシステムモードのコードにより、前記サブオペレーティングシステムモード割り込みを処理する段階;
    を有する方法。
  2. 前記プロセッサにおける割り込みサービスレジスタに前記高信頼性コードが書き込まれる段階;
    を更に有する請求項1に記載の方法。
  3. 前記割り込みサービスレジスタはシステム管理ベースのレジスタであり、前記サブオペレーティングシステムモード割り込みはシステム管理割り込みである、請求項2に記載の方法。
  4. 前記サブオペレーティングシステムモード割り込みを処理する段階は、前記サブオペレーティングシステムモードのコードがページモードで実行される段階を有する、請求項に記載の方法。
  5. 前記サブオペレーティングシステムモードのコードはシステム管理モードコードである、請求項に記載の方法。
  6. メモリのロックされたページにアクセスする試みに応答して、前記高信頼性コードにおける第2ハンドラを呼び出す段階;
    を更に有する請求項1に記載の方法。
  7. 前記第2ハンドラにより、前記メモリの前記ロックされたページにアクセスする前記試みが可能であるかどうかを決定する段階;
    を更に有する請求項6に記載の方法。
  8. 前記第2ハンドラにより、修正されたレジューム命令を発行することにより前記サブオペレーティングシステムモードのコードからのエグジットを開始する段階;
    を更に有する請求項6に記載の方法。
  9. 前記修正されたレジューム命令はページモードで実行可能である、請求項8に記載の方法。
  10. 前記第1ハンドラにより、状態データを記憶するメモリのロックされたページにおける空間を確立する段階;
    を更に有する請求項1に記載の方法。
  11. 前記サブオペレーティングシステムモードのコードは前記メモリのロックされていないページに位置している、請求項1に記載の方法。
  12. 前記プロセッサは単独のプロセッサシステムにおける単独のプロセッサである、請求項1に記載の方法。
  13. 前記高信頼性コードにより、前記プロセッサにおける割り込みサービスレジスタを無効にする段階;
    を更に有する請求項1に記載の方法。
  14. 前記割り込みサービスレジスタはシステム管理ベースのレジスタであり、前記サブオペレーティングシステムモード割り込みはシステム管理割り込みである、請求項13に記載の方法。
  15. メモリのロックされたページにアクセスする試みに応答して、前記高信頼性コードにおける前記第1ハンドラを呼び出す段階;
    を更に有する請求項1に記載の方法。
  16. 前記第1ハンドラにより、前記メモリのロックされたページにアクセスする前記試みが可能かどうかを決定する段階;
    を更に有する請求項15に記載の方法。
  17. 前記第1ハンドラにより、修正されたレジューム命令を発行することにより前記サブオペレーティングシステムモードのコードからのエグジットを開始する段階;
    を更に有する請求項15に記載の方法。
  18. 前記修正されたレジューム命令はページモードで実行可能である、請求項1に記載の方法。
JP2007150997A 2002-06-07 2007-06-06 システム管理割り込みを再命令し、仮想マシンコンテナを生成することによる、信頼性のないシステム管理コードに対する保護方法 Expired - Lifetime JP4846660B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/165,597 2002-06-07
US10/165,597 US20030229794A1 (en) 2002-06-07 2002-06-07 System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004511985A Division JP4708016B2 (ja) 2002-06-07 2003-05-01 システム管理命令を再命令すること及び仮想マシンコンテナを生成することによる信頼性のないシステム管理コードに対する保護のためのシステム及び方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011178882A Division JP5242747B2 (ja) 2002-06-07 2011-08-18 システム管理割り込みを再命令し、仮想マシンコンテナを生成することによる、信頼性のないシステム管理コードに対する保護方法

Publications (2)

Publication Number Publication Date
JP2007265434A JP2007265434A (ja) 2007-10-11
JP4846660B2 true JP4846660B2 (ja) 2011-12-28

Family

ID=29710476

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2004511985A Expired - Fee Related JP4708016B2 (ja) 2002-06-07 2003-05-01 システム管理命令を再命令すること及び仮想マシンコンテナを生成することによる信頼性のないシステム管理コードに対する保護のためのシステム及び方法
JP2007150997A Expired - Lifetime JP4846660B2 (ja) 2002-06-07 2007-06-06 システム管理割り込みを再命令し、仮想マシンコンテナを生成することによる、信頼性のないシステム管理コードに対する保護方法
JP2011178882A Expired - Lifetime JP5242747B2 (ja) 2002-06-07 2011-08-18 システム管理割り込みを再命令し、仮想マシンコンテナを生成することによる、信頼性のないシステム管理コードに対する保護方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2004511985A Expired - Fee Related JP4708016B2 (ja) 2002-06-07 2003-05-01 システム管理命令を再命令すること及び仮想マシンコンテナを生成することによる信頼性のないシステム管理コードに対する保護のためのシステム及び方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011178882A Expired - Lifetime JP5242747B2 (ja) 2002-06-07 2011-08-18 システム管理割り込みを再命令し、仮想マシンコンテナを生成することによる、信頼性のないシステム管理コードに対する保護方法

Country Status (8)

Country Link
US (2) US20030229794A1 (ja)
EP (1) EP1512074A2 (ja)
JP (3) JP4708016B2 (ja)
CN (1) CN100377092C (ja)
AU (1) AU2003231237A1 (ja)
MY (1) MY146723A (ja)
RU (1) RU2313126C2 (ja)
WO (1) WO2003104981A2 (ja)

Families Citing this family (193)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041761B1 (en) * 2002-12-23 2011-10-18 Netapp, Inc. Virtual filer and IP space based IT configuration transitioning framework
US7536688B2 (en) * 2003-02-28 2009-05-19 Azul Systems Segmented virtual machine
GB2403820A (en) * 2003-03-28 2005-01-12 Hewlett Packard Development Co Security policy in trusted computing systems
JP4275451B2 (ja) * 2003-04-23 2009-06-10 株式会社日立製作所 不正メモリアクセス検知方法及びそのプログラム
US7496958B2 (en) * 2003-10-29 2009-02-24 Qualcomm Incorporated System for selectively enabling operating modes of a device
CN100349123C (zh) * 2004-03-02 2007-11-14 英特维数位科技股份有限公司 远端控制计算机系统的方法
US8607299B2 (en) * 2004-04-27 2013-12-10 Microsoft Corporation Method and system for enforcing a security policy via a security virtual machine
US20050289311A1 (en) * 2004-06-29 2005-12-29 David Durham System and method for secure inter-platform and intra-platform communications
US7908653B2 (en) * 2004-06-29 2011-03-15 Intel Corporation Method of improving computer security through sandboxing
US7305592B2 (en) * 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
US7934076B2 (en) * 2004-09-30 2011-04-26 Intel Corporation System and method for limiting exposure of hardware failure information for a secured execution environment
US7620953B1 (en) * 2004-10-05 2009-11-17 Azul Systems, Inc. System and method for allocating resources of a core space among a plurality of core virtual machines
US7757231B2 (en) 2004-12-10 2010-07-13 Intel Corporation System and method to deprivilege components of a virtual machine monitor
US7487222B2 (en) * 2005-03-29 2009-02-03 International Business Machines Corporation System management architecture for multi-node computer system
US7480908B1 (en) 2005-06-24 2009-01-20 Azul Systems, Inc. Segmented virtual machine transport mechanism
US8839450B2 (en) 2007-08-02 2014-09-16 Intel Corporation Secure vault service for software components within an execution environment
US7953980B2 (en) 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
CN100547515C (zh) * 2005-07-15 2009-10-07 联想(北京)有限公司 支持可信计算的虚拟机系统及在其上实现可信计算的方法
US9785485B2 (en) * 2005-07-27 2017-10-10 Intel Corporation Virtualization event processing in a layered virtualization architecture
US7752436B2 (en) * 2005-08-09 2010-07-06 Intel Corporation Exclusive access for secure audio program
US9176741B2 (en) 2005-08-29 2015-11-03 Invention Science Fund I, Llc Method and apparatus for segmented sequential storage
US8275976B2 (en) * 2005-08-29 2012-09-25 The Invention Science Fund I, Llc Hierarchical instruction scheduler facilitating instruction replay
US8296550B2 (en) * 2005-08-29 2012-10-23 The Invention Science Fund I, Llc Hierarchical register file with operand capture ports
US7644258B2 (en) * 2005-08-29 2010-01-05 Searete, Llc Hybrid branch predictor using component predictors each having confidence and override signals
US20070083735A1 (en) * 2005-08-29 2007-04-12 Glew Andrew F Hierarchical processor
US8327353B2 (en) * 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism
US7748037B2 (en) 2005-09-22 2010-06-29 Intel Corporation Validating a memory type modification attempt
US20070067590A1 (en) * 2005-09-22 2007-03-22 Uday Savagaonkar Providing protected access to critical memory regions
US20140373144A9 (en) * 2006-05-22 2014-12-18 Alen Capalik System and method for analyzing unauthorized intrusion into a computer network
US8973094B2 (en) * 2006-05-26 2015-03-03 Intel Corporation Execution of a secured environment initialization instruction on a point-to-point interconnect system
US7490191B2 (en) * 2006-09-22 2009-02-10 Intel Corporation Sharing information between guests in a virtual machine environment
US7533207B2 (en) * 2006-12-06 2009-05-12 Microsoft Corporation Optimized interrupt delivery in a virtualized environment
US9098347B2 (en) * 2006-12-21 2015-08-04 Vmware Implementation of virtual machine operations using storage system functionality
US9189265B2 (en) 2006-12-21 2015-11-17 Vmware, Inc. Storage architecture for virtual machines
US9354927B2 (en) * 2006-12-21 2016-05-31 Vmware, Inc. Securing virtual machine data
US8316414B2 (en) * 2006-12-29 2012-11-20 Intel Corporation Reconfiguring a secure system
US7698507B2 (en) * 2007-02-28 2010-04-13 Intel Corporation Protecting system management mode (SMM) spaces against cache attacks
US8356297B1 (en) 2007-03-21 2013-01-15 Azul Systems, Inc. External data source redirection in segmented virtual machine
US20080263679A1 (en) * 2007-04-23 2008-10-23 Microsoft Corporation Storing information in closed computing devices
US8145903B2 (en) * 2007-05-25 2012-03-27 Red Hat, Inc. Method and system for a kernel lock validator
JP4864817B2 (ja) 2007-06-22 2012-02-01 株式会社日立製作所 仮想化プログラム及び仮想計算機システム
US8151264B2 (en) * 2007-06-29 2012-04-03 Intel Corporation Injecting virtualization events in a layered virtualization architecture
US20090119748A1 (en) * 2007-08-30 2009-05-07 Jiewen Yao System management mode isolation in firmware
US8250641B2 (en) * 2007-09-17 2012-08-21 Intel Corporation Method and apparatus for dynamic switching and real time security control on virtualized systems
JP4678396B2 (ja) * 2007-09-25 2011-04-27 日本電気株式会社 仮想マシンモニタをモニタするコンピュータとその方法、および仮想マシンモニタモニタプログラム
CN101409719B (zh) * 2007-10-08 2013-06-05 联想(北京)有限公司 实现网络安全支付的方法及客户端
US8099718B2 (en) 2007-11-13 2012-01-17 Intel Corporation Method and system for whitelisting software components
US8522236B2 (en) * 2007-12-28 2013-08-27 Intel Corporation Method and system for establishing a robust virtualized environment
US8473945B2 (en) * 2007-12-31 2013-06-25 Intel Corporation Enabling system management mode in a secure system
US8261028B2 (en) * 2007-12-31 2012-09-04 Intel Corporation Cached dirty bits for context switch consistency checks
EP2254905B1 (en) * 2008-03-14 2016-12-14 Novo Nordisk A/S Protease-stabilized insulin analogues
US8145471B2 (en) * 2008-04-30 2012-03-27 International Business Machines Corporation Non-destructive simulation of a failure in a virtualization environment
US8843742B2 (en) * 2008-08-26 2014-09-23 Hewlett-Packard Company Hypervisor security using SMM
JP5405799B2 (ja) 2008-10-30 2014-02-05 株式会社日立製作所 仮想計算機の制御方法、仮想化プログラム及び仮想計算機システム
US8205197B2 (en) * 2008-11-12 2012-06-19 Lenovo (Singapore) Pte. Ltd. Apparatus, system, and method for granting hypervisor privileges
US8868925B2 (en) * 2008-12-09 2014-10-21 Nvidia Corporation Method and apparatus for the secure processing of confidential content within a virtual machine of a processor
US8364601B2 (en) * 2008-12-31 2013-01-29 Intel Corporation Methods and systems to directly render an image and correlate corresponding user input in a secure memory domain
KR101571880B1 (ko) * 2009-02-02 2015-11-25 삼성전자 주식회사 전자장치와 가상머신 제공장치 및 이를 이용한 가상머신 서비스 이용 방법
EP2433238B1 (en) * 2009-05-18 2015-10-07 Hewlett-Packard Development Company, L.P. Systems and methods of determining a trust level from system management mode
JP4961459B2 (ja) * 2009-06-26 2012-06-27 株式会社日立製作所 仮想計算機システムおよび仮想計算機システムにおける制御方法
US8612975B2 (en) * 2009-07-07 2013-12-17 Advanced Micro Devices, Inc. World switch between virtual machines with selective storage of state information
US8250273B2 (en) * 2009-09-14 2012-08-21 International Business Machines Corporation Secure handling and routing of message-signaled interrupts
DE102009051350A1 (de) * 2009-10-30 2011-05-05 Continental Automotive Gmbh Verfahren zum Betreiben eines Tachographen und Tachograph
US8479286B2 (en) * 2009-12-15 2013-07-02 Mcafee, Inc. Systems and methods for behavioral sandboxing
US20110197256A1 (en) * 2009-12-18 2011-08-11 Assured Information Security, Inc. Methods for securing a processing system and devices thereof
US9058183B2 (en) 2009-12-29 2015-06-16 Advanced Micro Devices, Inc. Hypervisor isolation of processor cores to enable computing accelerator cores
US8346935B2 (en) * 2010-01-15 2013-01-01 Joyent, Inc. Managing hardware resources by sending messages amongst servers in a data center
US9106697B2 (en) * 2010-06-24 2015-08-11 NeurallQ, Inc. System and method for identifying unauthorized activities on a computer system using a data structure model
US8495750B2 (en) 2010-08-31 2013-07-23 International Business Machines Corporation Filesystem management and security system
US8555276B2 (en) 2011-03-11 2013-10-08 Joyent, Inc. Systems and methods for transparently optimizing workloads
US8959638B2 (en) 2011-03-29 2015-02-17 Mcafee, Inc. System and method for below-operating system trapping and securing of interdriver communication
US9038176B2 (en) 2011-03-31 2015-05-19 Mcafee, Inc. System and method for below-operating system trapping and securing loading of code into memory
US8966629B2 (en) 2011-03-31 2015-02-24 Mcafee, Inc. System and method for below-operating system trapping of driver loading and unloading
US9317690B2 (en) 2011-03-28 2016-04-19 Mcafee, Inc. System and method for firmware based anti-malware security
US9087199B2 (en) 2011-03-31 2015-07-21 Mcafee, Inc. System and method for providing a secured operating system execution environment
US8813227B2 (en) 2011-03-29 2014-08-19 Mcafee, Inc. System and method for below-operating system regulation and control of self-modifying code
US9032525B2 (en) 2011-03-29 2015-05-12 Mcafee, Inc. System and method for below-operating system trapping of driver filter attachment
US8966624B2 (en) 2011-03-31 2015-02-24 Mcafee, Inc. System and method for securing an input/output path of an application against malware with a below-operating system security agent
AU2012236739A1 (en) 2011-03-28 2013-10-03 Mcafee, Inc. System and method for virtual machine monitor based anti-malware security
US9262246B2 (en) 2011-03-31 2016-02-16 Mcafee, Inc. System and method for securing memory and storage of an electronic device with a below-operating system security agent
US8925089B2 (en) 2011-03-29 2014-12-30 Mcafee, Inc. System and method for below-operating system modification of malicious code on an electronic device
US8863283B2 (en) * 2011-03-31 2014-10-14 Mcafee, Inc. System and method for securing access to system calls
JP5809362B2 (ja) 2011-08-30 2015-11-10 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 仮想トラステッドランタイムbiosとの通信
GB2507226B (en) * 2011-08-30 2020-04-22 Hewlett Packard Development Co Virtual high privilege mode for a system management request
US8782224B2 (en) 2011-12-29 2014-07-15 Joyent, Inc. Systems and methods for time-based dynamic allocation of resource management
WO2013101246A1 (en) * 2011-12-31 2013-07-04 Intel Corporation Processor that detects when system management mode attempts to reach program code outside of protected space
US10140139B1 (en) * 2012-06-19 2018-11-27 Bromium, Inc. Ensuring the privacy and integrity of a hypervisor
WO2014021867A1 (en) 2012-07-31 2014-02-06 Hewlett-Packard Development Company, L.P. Modify executable bits of system management memory page table
RU2535175C2 (ru) 2012-12-25 2014-12-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносного программного обеспечения путем создания изолированной среды
RU2522019C1 (ru) * 2012-12-25 2014-07-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обнаружения угроз в коде, исполняемом виртуальной машиной
US9037854B2 (en) * 2013-01-22 2015-05-19 Amazon Technologies, Inc. Privileged cryptographic services in a virtualized environment
US10579405B1 (en) * 2013-03-13 2020-03-03 Amazon Technologies, Inc. Parallel virtual machine managers
US9311138B2 (en) * 2013-03-13 2016-04-12 Intel Corporation System management interrupt handling for multi-core processors
US8881279B2 (en) 2013-03-14 2014-11-04 Joyent, Inc. Systems and methods for zone-based intrusion detection
US9104456B2 (en) 2013-03-14 2015-08-11 Joyent, Inc. Zone management of compute-centric object stores
US8826279B1 (en) 2013-03-14 2014-09-02 Joyent, Inc. Instruction set architecture for compute-based object stores
US8677359B1 (en) 2013-03-14 2014-03-18 Joyent, Inc. Compute-centric object stores and methods of use
US8943284B2 (en) 2013-03-14 2015-01-27 Joyent, Inc. Systems and methods for integrating compute resources in a storage area network
US9092238B2 (en) 2013-03-15 2015-07-28 Joyent, Inc. Versioning schemes for compute-centric object stores
US8793688B1 (en) 2013-03-15 2014-07-29 Joyent, Inc. Systems and methods for double hulled virtualization operations
US8775485B1 (en) 2013-03-15 2014-07-08 Joyent, Inc. Object store management operations within compute-centric object stores
EP2782038A1 (en) * 2013-03-19 2014-09-24 STMicroelectronics (Grenoble 2) SAS Resource management in a processor for trusted and untrusted applications
EP2782007A1 (en) 2013-03-19 2014-09-24 STMicroelectronics (Grenoble 2) SAS Launching multiple applications in containers on a processor
EP2782010A1 (en) 2013-03-19 2014-09-24 STMicroelectronics (Grenoble 2) SAS Hierarchical resource management
US10075470B2 (en) * 2013-04-19 2018-09-11 Nicira, Inc. Framework for coordination between endpoint security and network security services
US9330035B2 (en) * 2013-05-23 2016-05-03 Arm Limited Method and apparatus for interrupt handling
CN103927224B (zh) 2014-03-28 2016-06-29 小米科技有限责任公司 程序串执行方法和装置
US20160048679A1 (en) * 2014-08-18 2016-02-18 Bitdefender IPR Management Ltd. Systems And Methods for Exposing A Current Processor Instruction Upon Exiting A Virtual Machine
US9471799B2 (en) * 2014-09-22 2016-10-18 Advanced Micro Devices, Inc. Method for privileged mode based secure input mechanism
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9600312B2 (en) * 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US10324842B2 (en) * 2014-12-13 2019-06-18 Via Alliance Semiconductor Co., Ltd Distributed hang recovery logic
WO2016092345A1 (en) * 2014-12-13 2016-06-16 Via Alliance Semiconductor Co., Ltd. Logic analyzer for detecting hangs
KR101890021B1 (ko) * 2014-12-13 2018-09-20 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 행 검출을 위한 패턴 검출기
EP3243313B1 (en) 2015-01-07 2020-09-16 GoSecure Inc. System and method for monitoring a computer system using machine interpretable code
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
GB2539436B (en) * 2015-06-16 2019-02-06 Advanced Risc Mach Ltd Secure initialisation
US9940470B2 (en) * 2015-10-06 2018-04-10 Symantec Corporation Techniques for generating a virtual private container
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
BR112018010584A2 (pt) * 2016-01-26 2018-11-27 Hewlett Packard Development Co arquitetura de privilégio de modo de gerenciamento de sistema
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11171983B2 (en) * 2018-06-29 2021-11-09 Intel Corporation Techniques to provide function-level isolation with capability-based security
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
CN109542610B (zh) * 2018-12-04 2023-06-30 中国航空工业集团公司西安航空计算技术研究所 一种多分区操作系统虚中断标准组件实现方法
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
WO2021080601A1 (en) * 2019-10-25 2021-04-29 Hewlett-Packard Development Company, L.P. Integrity monitor
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11449601B2 (en) * 2020-01-08 2022-09-20 Red Hat, Inc. Proof of code compliance and protected integrity using a trusted execution environment
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
CN111753311B (zh) * 2020-08-28 2020-12-15 支付宝(杭州)信息技术有限公司 超线程场景下安全进入可信执行环境的方法及装置
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US20230061511A1 (en) * 2021-08-30 2023-03-02 International Business Machines Corporation Inaccessible prefix pages during virtual machine execution
CN113791865A (zh) * 2021-09-08 2021-12-14 山石网科通信技术股份有限公司 容器安全的处理方法及装置、存储介质和处理器

Family Cites Families (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699532A (en) * 1970-04-21 1972-10-17 Singer Co Multiprogramming control for a data handling system
US3996449A (en) * 1975-08-25 1976-12-07 International Business Machines Corporation Operating system authenticator
US4162536A (en) * 1976-01-02 1979-07-24 Gould Inc., Modicon Div. Digital input/output system and method
US4247905A (en) * 1977-08-26 1981-01-27 Sharp Kabushiki Kaisha Memory clear system
US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4276594A (en) * 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
US4207609A (en) * 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
JPS5823570B2 (ja) * 1978-11-30 1983-05-16 国産電機株式会社 液面検出装置
JPS5576447A (en) * 1978-12-01 1980-06-09 Fujitsu Ltd Address control system for software simulation
US4253145A (en) * 1978-12-26 1981-02-24 Honeywell Information Systems Inc. Hardware virtualizer for supporting recursive virtual computer systems on a host computer system
US4307447A (en) * 1979-06-19 1981-12-22 Gould Inc. Programmable controller
US4307214A (en) * 1979-12-12 1981-12-22 Phillips Petroleum Company SC2 activation of supported chromium oxide catalysts
US4319323A (en) * 1980-04-04 1982-03-09 Digital Equipment Corporation Communications device for data processing system
US4419724A (en) * 1980-04-14 1983-12-06 Sperry Corporation Main bus interface package
US4366537A (en) * 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys
US4403283A (en) * 1980-07-28 1983-09-06 Ncr Corporation Extended memory system and method
DE3034581A1 (de) * 1980-09-13 1982-04-22 Robert Bosch Gmbh, 7000 Stuttgart Auslesesicherung bei einchip-mikroprozessoren
US4521852A (en) * 1982-06-30 1985-06-04 Texas Instruments Incorporated Data processing device formed on a single semiconductor substrate having secure memory
JPS59111561A (ja) * 1982-12-17 1984-06-27 Hitachi Ltd 複合プロセツサ・システムのアクセス制御方式
US4759064A (en) * 1985-10-07 1988-07-19 Chaum David L Blind unanticipated signature systems
US4975836A (en) * 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
JPS61206057A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd アドレス変換装置
FR2592510B1 (fr) * 1985-12-31 1988-02-12 Bull Cp8 Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire
FR2601535B1 (fr) * 1986-07-11 1988-10-21 Bull Cp8 Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission
FR2601525B1 (fr) * 1986-07-11 1988-10-21 Bull Cp8 Dispositif de securite interdisant le fonctionnement d'un ensemble electronique apres une premiere coupure de son alimentation electrique
FR2601476B1 (fr) * 1986-07-11 1988-10-21 Bull Cp8 Procede pour authentifier une donnee d'habilitation externe par un objet portatif tel qu'une carte a memoire
FR2618002B1 (fr) * 1987-07-10 1991-07-05 Schlumberger Ind Sa Procede et systeme d'authentification de cartes a memoire electronique
US5007082A (en) * 1988-08-03 1991-04-09 Kelly Services, Inc. Computer software encryption apparatus
US5079737A (en) * 1988-10-25 1992-01-07 United Technologies Corporation Memory management unit for the MIL-STD 1750 bus
US5434999A (en) * 1988-11-09 1995-07-18 Bull Cp8 Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal
FR2640798B1 (fr) * 1988-12-20 1993-01-08 Bull Cp8 Dispositif de traitement de donnees comportant une memoire non volatile electriquement effacable et reprogrammable
JPH02171934A (ja) * 1988-12-26 1990-07-03 Hitachi Ltd 仮想計算機システム
JPH02208740A (ja) * 1989-02-09 1990-08-20 Fujitsu Ltd 仮想計算機制御方式
JPH0617217B2 (ja) * 1989-02-28 1994-03-09 水澤化学工業株式会社 非晶質シリカ・アルミナ系球状粒子及びその製法
US5442645A (en) * 1989-06-06 1995-08-15 Bull Cp8 Method for checking the integrity of a program or data, and apparatus for implementing this method
JP2590267B2 (ja) * 1989-06-30 1997-03-12 株式会社日立製作所 仮想計算機における表示制御方式
US5022077A (en) * 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
JP2825550B2 (ja) * 1989-09-21 1998-11-18 株式会社日立製作所 多重仮想空間アドレス制御方法および計算機システム
CA2010591C (en) * 1989-10-20 1999-01-26 Phillip M. Adams Kernels, description tables and device drivers
CA2027799A1 (en) * 1989-11-03 1991-05-04 David A. Miller Method and apparatus for independently resetting processors and cache controllers in multiple processor systems
US5075842A (en) * 1989-12-22 1991-12-24 Intel Corporation Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism
US5108590A (en) * 1990-09-12 1992-04-28 Disanto Dennis Water dispenser
US5230069A (en) * 1990-10-02 1993-07-20 International Business Machines Corporation Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system
US5317705A (en) * 1990-10-24 1994-05-31 International Business Machines Corporation Apparatus and method for TLB purge reduction in a multi-level machine system
US5287363A (en) * 1991-07-01 1994-02-15 Disk Technician Corporation System for locating and anticipating data storage media failures
US5437033A (en) * 1990-11-16 1995-07-25 Hitachi, Ltd. System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode
US5255379A (en) * 1990-12-28 1993-10-19 Sun Microsystems, Inc. Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor
US5453003A (en) * 1991-01-09 1995-09-26 Pfefferle; William C. Catalytic method
US5355490A (en) * 1991-06-14 1994-10-11 Toshiba America Information Systems, Inc. System and method for saving the state for advanced microprocessor operating modes
US5319760A (en) * 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5522075A (en) * 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
US5455909A (en) * 1991-07-05 1995-10-03 Chips And Technologies Inc. Microprocessor with operation capture facility
JPH06236284A (ja) * 1991-10-21 1994-08-23 Intel Corp コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム
WO1993009494A1 (en) * 1991-10-28 1993-05-13 Digital Equipment Corporation Fault-tolerant computer processing using a shadow virtual processor
US5574936A (en) * 1992-01-02 1996-11-12 Amdahl Corporation Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
US5486529A (en) * 1992-04-16 1996-01-23 Zeneca Limited Certain pyridyl ketones for treating diseases involving leukocyte elastase
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5237616A (en) * 1992-09-21 1993-08-17 International Business Machines Corporation Secure computer system having privileged and unprivileged memories
US5293424A (en) * 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
JP2765411B2 (ja) * 1992-11-30 1998-06-18 株式会社日立製作所 仮想計算機方式
US5668971A (en) * 1992-12-01 1997-09-16 Compaq Computer Corporation Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer
JPH06187178A (ja) * 1992-12-18 1994-07-08 Hitachi Ltd 仮想計算機システムの入出力割込み制御方法
US5483656A (en) * 1993-01-14 1996-01-09 Apple Computer, Inc. System for managing power consumption of devices coupled to a common bus
US5469557A (en) * 1993-03-05 1995-11-21 Microchip Technology Incorporated Code protection in microcontroller with EEPROM fuses
FR2703800B1 (fr) * 1993-04-06 1995-05-24 Bull Cp8 Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre.
FR2704341B1 (fr) * 1993-04-22 1995-06-02 Bull Cp8 Dispositif de protection des clés d'une carte à puce.
JPH06348867A (ja) * 1993-06-04 1994-12-22 Hitachi Ltd マイクロコンピュータ
FR2706210B1 (fr) * 1993-06-08 1995-07-21 Bull Cp8 Procédé d'authentification d'un objet portatif par un terminal hors ligne, objet portatif et terminal correspondants.
US5555385A (en) * 1993-10-27 1996-09-10 International Business Machines Corporation Allocation of address spaces within virtual machine compute system
US5459869A (en) * 1994-02-17 1995-10-17 Spilo; Michael L. Method for providing protected mode services for device drivers and other resident software
DE4406094C2 (de) * 1994-02-25 2000-04-13 Lp Elektronik Gmbh Vorrichtung zum Betrieb einer Steuerungsanwendung
US5604805A (en) * 1994-02-28 1997-02-18 Brands; Stefanus A. Privacy-protected transfer of electronic information
US5473692A (en) * 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
JPH0883211A (ja) * 1994-09-12 1996-03-26 Mitsubishi Electric Corp データ処理装置
US5606617A (en) * 1994-10-14 1997-02-25 Brands; Stefanus A. Secret-key certificates
US5564040A (en) * 1994-11-08 1996-10-08 International Business Machines Corporation Method and apparatus for providing a server function in a logically partitioned hardware machine
US5560013A (en) * 1994-12-06 1996-09-24 International Business Machines Corporation Method of using a target processor to execute programs of a source architecture that uses multiple address spaces
US5555414A (en) * 1994-12-14 1996-09-10 International Business Machines Corporation Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals
US5615263A (en) * 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5764969A (en) * 1995-02-10 1998-06-09 International Business Machines Corporation Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization
US5717903A (en) * 1995-05-15 1998-02-10 Compaq Computer Corporation Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device
JP3451595B2 (ja) * 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
US5603499A (en) * 1995-07-26 1997-02-18 Doris G. Jagosz Blackjack play option response indicator
US5684948A (en) * 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
US5633929A (en) * 1995-09-15 1997-05-27 Rsa Data Security, Inc Cryptographic key escrow system having reduced vulnerability to harvesting attacks
US6093213A (en) * 1995-10-06 2000-07-25 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (SMM) in a processor
JP2000503154A (ja) * 1996-01-11 2000-03-14 エムアールジェイ インコーポレイテッド デジタル所有権のアクセスと分配を制御するためのシステム
US5657445A (en) * 1996-01-26 1997-08-12 Dell Usa, L.P. Apparatus and method for limiting access to mass storage devices in a computer system
US5729760A (en) * 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
US5740178A (en) * 1996-08-29 1998-04-14 Lucent Technologies Inc. Software for controlling a reliable backup memory
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
CA2285106A1 (en) * 1997-04-02 1998-10-08 David M. Silver Method for integrating a virtual machine with input method editors
US6272637B1 (en) * 1997-04-14 2001-08-07 Dallas Semiconductor Corporation Systems and methods for protecting access to encrypted information
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6182089B1 (en) * 1997-09-23 2001-01-30 Silicon Graphics, Inc. Method, system and computer program product for dynamically allocating large memory pages of different sizes
US5987604A (en) * 1997-10-07 1999-11-16 Phoenix Technologies, Ltd. Method and apparatus for providing execution of system management mode services in virtual mode
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6282650B1 (en) * 1999-01-25 2001-08-28 Intel Corporation Secure public digital watermark
US6374317B1 (en) * 1999-10-07 2002-04-16 Intel Corporation Method and apparatus for initializing a computer interface
JP2002041305A (ja) * 2000-07-26 2002-02-08 Hitachi Ltd 仮想計算機システムにおける計算機資源の割当て方法および仮想計算機システム
US20020099753A1 (en) * 2001-01-20 2002-07-25 Hardin David S. System and method for concurrently supporting multiple independent virtual machines
US6961941B1 (en) * 2001-06-08 2005-11-01 Vmware, Inc. Computer configuration for resource management in systems including a virtual machine
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US6725289B1 (en) * 2002-04-17 2004-04-20 Vmware, Inc. Transparent address remapping for high-speed I/O
US7318141B2 (en) * 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7424709B2 (en) * 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events

Also Published As

Publication number Publication date
JP5242747B2 (ja) 2013-07-24
US20030229794A1 (en) 2003-12-11
CN1675623A (zh) 2005-09-28
US20060015869A1 (en) 2006-01-19
JP2011227939A (ja) 2011-11-10
AU2003231237A1 (en) 2003-12-22
CN100377092C (zh) 2008-03-26
RU2004139086A (ru) 2005-07-10
RU2313126C2 (ru) 2007-12-20
WO2003104981A2 (en) 2003-12-18
WO2003104981A3 (en) 2004-05-13
MY146723A (en) 2012-09-14
US7581219B2 (en) 2009-08-25
JP2007265434A (ja) 2007-10-11
EP1512074A2 (en) 2005-03-09
JP2005529401A (ja) 2005-09-29
JP4708016B2 (ja) 2011-06-22
AU2003231237A8 (en) 2003-12-22

Similar Documents

Publication Publication Date Title
JP4846660B2 (ja) システム管理割り込みを再命令し、仮想マシンコンテナを生成することによる、信頼性のないシステム管理コードに対する保護方法
JP4823481B2 (ja) 安全な環境を初期化する命令を実行するシステムおよび方法
US7260848B2 (en) Hardened extensible firmware framework
US6986006B2 (en) Page granular curtained memory via mapping control
US7631160B2 (en) Method and apparatus for securing portions of memory
KR100950102B1 (ko) 보호 실행 모드로 동작 가능한 프로세서를 포함한 컴퓨터 시스템 및 상기 컴퓨터 시스템의 초기화 방법
US20090119748A1 (en) System management mode isolation in firmware
JP4898155B2 (ja) ユーザ・モード・プロセスが特権実行モードで動作することを可能にする方法
US20080148048A1 (en) Virtualization Hardware For Device Driver Isolation
US8656487B2 (en) System and method for filtering write requests to selected output ports
KR20130036189A (ko) 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한
JP6530723B2 (ja) コンピュータシステム内における複数のハイパーバイザーの共同運用を容易にするためのシステムおよび方法
US10360386B2 (en) Hardware enforcement of providing separate operating system environments for mobile devices
US20040243783A1 (en) Method and apparatus for multi-mode operation in a semiconductor circuit
CN112818327A (zh) 基于TrustZone的用户级代码和数据安全可信保护方法及装置
CN112749397A (zh) 一种系统和方法
EP1357454A1 (en) Data processing system and method with protected BIOS
US10754967B1 (en) Secure interrupt handling between security zones
US20230066447A1 (en) Execution of code in system memory
US20240078129A1 (en) Execution of bios components with virtual machines
JP2018036695A (ja) 情報処理監視装置、情報処理監視方法、監視プログラム、記録媒体及び情報処理装置
US20060136679A1 (en) Protected processing apparatus, systems, and methods
CN114266038A (zh) 基于软件沙盒的安全隔离方法、存储介质、设备及装置
Putros Polos Monitoring Windows Kernel's Services

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100928

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101224

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110104

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110125

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110128

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110223

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110328

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110818

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110823

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: 20110913

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: 20111012

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4846660

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term