JP4726449B2 - 信頼された環境から信頼されていない環境への信頼性の投影 - Google Patents

信頼された環境から信頼されていない環境への信頼性の投影 Download PDF

Info

Publication number
JP4726449B2
JP4726449B2 JP2004232729A JP2004232729A JP4726449B2 JP 4726449 B2 JP4726449 B2 JP 4726449B2 JP 2004232729 A JP2004232729 A JP 2004232729A JP 2004232729 A JP2004232729 A JP 2004232729A JP 4726449 B2 JP4726449 B2 JP 4726449B2
Authority
JP
Japan
Prior art keywords
environment
monitoring agent
untrusted
trusted
application
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 - Fee Related
Application number
JP2004232729A
Other languages
English (en)
Other versions
JP2005056429A (ja
JP2005056429A5 (ja
Inventor
マーク ウイルマン ブライアン
イングランド ポール
ディー.レイ ケネス
カプラン キース
クリエン バルギス
デビッド マー マイケル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005056429A publication Critical patent/JP2005056429A/ja
Publication of JP2005056429A5 publication Critical patent/JP2005056429A5/ja
Application granted granted Critical
Publication of JP4726449B2 publication Critical patent/JP4726449B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Medicines Containing Material From Animals Or Micro-Organisms (AREA)
  • Agricultural Chemicals And Associated Chemicals (AREA)
  • Chemical And Physical Treatments For Wood And The Like (AREA)
  • Breeding Of Plants And Reproduction By Means Of Culturing (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)
  • Hardware Redundancy (AREA)
  • Alarm Systems (AREA)

Description

本発明は、一般に、コンピュータセキュリティの分野に関する。より詳細には、本発明は、単一のコンピューティングデバイス上の複数の実行環境(例えば、オペレーティングシステム)の使用に関し、そのようなオペレーティングシステムまたは環境の信頼性をサポートする技術を提供する。
最初のコンピュータは、一度に1つのプログラムだけしか実行することができなかった。しかし、最近では、コンピュータは、一度にいくつかの異なるソフトウェアの部分を実行できることが見込まれている。例えば、典型的なマルチタスキングオペレーティングシステムは、単一のマシン上で一度にいくつかのアプリケーションプログラムを実行することができる。そのこと、ならびに共有のオープンネットワーク(例えば、インターネット)の発展に鑑みて、セキュリティおよびプライバシーが、コンピュータ業界が直面する2つの重要で困難な問題となっている。パーソナルコンピュータが自宅、職場、および学校でより中心的になるにつれ、消費者もビジネス顧客も同様に、プライバシー問題およびセキュリティ問題をますます意識するようになっている。デジタル情報の整合性、およびコンピュータユーザのプライバシーを保護するソフトウェアおよびハードウェアの能力を向上させることが、ソフトウェア開発者とハードウェア製造業者の両方に重要な関心の的となっている。ワシントン州リッチモンド市のマイクロソフトコーポレーションが、オペレーティングシステムにおけるセキュリティおよびプライバシーを提供するNext-Generation Secure Computing Base(NGSCB)パーソナルコンピュータプラットフォームを商品化している。
図2に示すコンピュータ110内部の従来のNGSCBにおいて、「右手側」(RHS)セキュリティシステムが、従来の「左手側」(LHS)システムおよび中央処理装置(CPU)と連携して機能する。RHSは、オペレーティングシステムがオープンであることを保ちながら、悪意のあるソフトウェアから保護するように設計されている。NGSCBを使用すると、アプリケーションは、ソフトウェアによる改ざんおよび干渉に対して強い耐性のある保護されたメモリ空間内で実行される。典型的には、LHSとRHSがともに使用する1つのチップセットがコンピュータ110内部に存在する。LHSおよびRHSは、コンピュータ110の論理上の、ただし、物理的に実施される部分またはパーティションである。
LHSは、Microsoft(登録商標)Word(登録商標)やMicrosoft(登録商標)Excel(登録商標)のような従来のアプリケーション205、210、ならびにMicrosoft(登録商標)Windows(登録商標)オペレーティングシステムのような従来のオペレーティングシステム201を含む。2つのアプリケーションを図示しているが、通常、任意の数を実装することができる。
RHSは、信頼されたエージェント255、260、ならびに「ネクサス」251を含む。ネクサスは、その動作に関してあるレベルの保証を提供し、RHS上のすべてのカーネルモードコードを含むことができる「高保証」オペレーティングシステムである。例えば、ネクサスを、秘密情報(例えば、暗号化キー)を扱うように使用することができる。秘密情報は、ネクサス外部の世界に情報を漏らさないことが保証される仕切られたメモリを提供すること、およびある認定されたアプリケーションだけがネクサスの下で実行され、仕切られたメモリにアクセスすることを許すことにより、漏らされてはならない。ネクサス251は、メインオペレーティングシステム201で生じているイベントが、ネクサス251の動作を危うくする何らかの方法で、メインオペレーティングシステム201と対話してはならない。ネクサス251は、すべてのアプリケーションの実行を許可することができ、またはマシン所有者が、ネクサス251によってあるエージェントだけが実行を許されるマシンポリシーを構成してもよい。つまり、ネクサス251は、マシン所有者がネクサス251に実行するように指示するいずれのエージェントも実行する。マシン所有者は、何を実行すべきでないかもネクサスに指示する。
ネクサス251は、信頼されたエージェント255、260を隔離し、信頼されたエージェント255、260との通信を管理し、格納済みデータ(例えば、ハードディスクドライブの中に格納された)を暗号で密封する。より詳細には、ネクサス251は、信頼された空間内においてカーネルモードで実行され、信頼されたエージェントおよびその他のアプリケーションと通信するためのプロセス機構の確立などの基本サービスを信頼されたエージェント255、260に提供し、ハードウェア/ソフトウェアのプラットフォームまたは実行環境の証明や、秘密の密封および密封解除などの特殊信頼サービスを提供する。証明は、データの一部にデジタル署名しまたは別の形で証明し、そのデータが偽造不能な暗号識別されたソフトウェアスタックによって構成されていることを受取人にさらに保証するコードの一部の能力である。
信頼されたエージェントは、プログラム、プログラムの一部、または信頼された空間内においてユーザモードで実行されるサービスである。信頼されたエージェント255、260は、セキュリティ関連サービス、ならびにメモリ管理などの重要な一般的サービスについてネクサス251を呼び出す。信頼されたエージェントは、密封されたストレージを使用して秘密を格納し、ネクサスの証明サービスを使用して自らを認証することができる。それぞれの信頼されたエージェントまたはエンティティは、独自の信頼ドメインを制御し、互いを頼る必要がない。
RHSは、公開キー基盤(PKI)キーペアならびに暗号化関数を使用してセキュリティで保護された状態を提供するセキュリティサポートコンポーネント(SSC)253をさらに含む。
NGSCBは、「証明」、「密封されたストレージ」、および「強力なプロセス隔離(strong process isolation)」などの機能を提供する。証明は、コンピュータが実際に自称するとおりのコンピュータであり、実行していると自ら主張しているソフトウェアを実行していることを他のコンピュータに知らせる。NGSCBのソフトウェアおよびハードウェアが、ユーザ、ならびに他のコンピュータ、プログラム、およびサービスに暗号確認可能なので、システムは、他のコンピュータおよびプロセスが信頼できることを確認してから、そのコンピュータおよびプロセスを関与させる、または情報を共有することができる。従って、証明により、ユーザは、動作環境の選択された特性を外部要求者に明らかにすることができる。
密封されたストレージにより、ユーザは、信頼できるアプリケーションだけが情報にアクセスすることができるように情報を暗号化することができる。信頼できるアプリケーションには、最初に情報を作成したアプリケーションだけが含まれることも、またはデータを所有するアプリケーションによって信頼される任意のアプリケーションが含まれることも可能である。従って、密封されたストレージにより、プログラムは、ウイルスまたはトロイの木馬などの信頼されていないプログラムが取り出すことができない秘密を格納することができる。
強力なプロセス隔離は、セキュリティで保護された領域(RHS)を切り開くことによって信頼された空間を提供する。RHS上で実行される動作は、LHSから保護されて隔離され、これにより、動作は、攻撃から大幅により強力なセキュリティで保護される。
NGSCBは、セキュリティで保護された入力および出力も提供する。NGSCBを使用すると、キーボード操作は、暗号化されてからでないと、RHSに到達した後、ソフトウェアによって読み取られ、解読されない。これは、悪意のあるソフトウェアを使用してキーボード操作を記録する、盗む、または変更することができないことを意味する。セキュリティで保護された出力も同様である。画面上に現れる情報を、他の誰も傍受して読むことができないようにユーザに提示することができる。総合すると、以上により、ユーザは、自身のコンピュータ内部のソフトウェアが、行うべきことを行っていることを高い信頼度で知ることができる。
RHSが利用できる相当な信頼リソースにもかかわらず、LHSは、信頼されないままである。本発明は、現在の信頼できるコンピューティングシステムのこの欠点、およびその他の欠点に対処する。
本発明は、信頼された環境におけるエンティティの信頼性を信頼されていない環境におけるエンティティに投影するための機構を提供する。
信頼されていない環境および信頼された環境が提供されるシステムおよび方法を説明する。基本監視エージェントが、信頼された環境において実行される。基本監視エージェントは、信頼されていない環境を監視する。
一実施形態によれば、監視エージェントは、アプリケーションに関連し、監視エージェントは、攻撃を示す可能性があるイベントまたは動作について関連付けられたアプリケーションを監視する。監視エージェントの信頼された性質により、それらのイベント/動作が信頼できる形で検出され、報告されることが可能になり、信頼された環境の信頼性が信頼されていない環境に投影される。基本監視エージェントは、監視エージェントに報告される、または検出される信頼されていない環境のイベントを承認する、禁止する、または変更することができる。例えば、GDT(グローバル記述子テーブル)を移動しようとする試みをハードウェアがネクサスに報告し、次に、ネクサスが、それを基本監視エージェントに報告するようなケースをカバーするように報告される。検出は、例えば、基本監視エージェント(OS用の)または監視エージェント(何らかのアプリケーション用の)が、信頼されていないアプリケーションのメモリをスキャンすることによって問題を検出するケースである。
別の実施形態では、基本監視エージェントは、セキュリティで保護された入力から受け取られた入力に応答する。例えば、基本監視エージェントは、セキュリティで保護された入力を介して承認を受け取ることなしには、信頼されていない環境に対する変更を拒否することができる。別の例として、基本監視エージェントは、変更が、承認済みのパーティによって署名されたパッケージによって記述されていない限り、信頼されていない環境に対する変更を許すことを拒否することができる。
さらに別の実施形態では、監視エージェントは、密封されたストレージを使用して、信頼されていない環境の中に存在するオペレーティングシステムまたはアプリケーションに関する秘密を保持する。監視エージェントは、オペレーティングシステムまたはアプリケーションが、秘密の所有者に合致するダイジェストを有さない限り、オペレーティングシステムまたはアプリケーションに秘密を明らかにすることを拒否することができる。代替として、監視エージェントは、オペレーティングシステムまたはアプリケーションが、秘密を読み取ることができるダイジェストのリスト上に存在しない限り、オペレーティングシステムまたはアプリケーションに秘密を明らかにすることを拒否することができる。
他の特徴によれば、監視エージェントは、正当なエンティティが秘密を要求しているかどうかを判定する試験を使用する。そのような試験の1つは、エンティティのスタックを検査し、スタックが正当なスタック内容を有することを確認することを含む。さらに、監視エージェントは、信頼されていない環境の状態を編集して、その状態がセキュリティで保護されているようにするか、または別の形で許容できるようにすることができる。状態は、初期構成またはエラー報告オプションを含むことができる。
本発明のさらなる特徴および利点は、添付の図面を参照して行われる例示的な実施形態の以下の詳細な説明から明白になる。
以上の概要、ならびに好ましい実施形態の以下の詳細な説明は、添付の図面と併せて読むことで、よりよく理解される。本発明を例示するため、本発明の典型的な構成を図面に示しているが、本発明は、開示する特定の方法および手段
(概要)
信頼されていない環境で実行されるエンティティと信頼された環境で実行されるエンティティとを有する単一のマシンにおいて、本発明は、信頼された環境におけるエンティティの信頼性を信頼されていない環境におけるエンティティに投影するための機構を提供する。本発明は、第1の実行環境(例えば、オペレーティングシステム)が第2の実行環境をホストする際に使用される機構を対象とする。本発明は、通常のオペレーティングシステム(例えば、Windows(登録商標)オペレーティングシステム)がセキュリティで保護されたオペレーティングシステム(例えば、ネクサス)をホストするMicrosoft(登録商標)のNext-Generation Secure Computing Base(NGSCB)のような状況に適用される。第2の環境が自らの信頼性を第1の環境に投影することを可能にする様々な機構を説明する。
(例示的なコンピューティング環境)
図1は、本発明の態様を実装することができる適切なコンピューティングシステム環境100の例を示している。コンピューティングシステム環境100は、適切なコンピューティング環境の一例に過ぎず、本発明の用途または機能の範囲に関して何ら限定を示唆するものではない。また、コンピューティング環境100が、典型的な動作環境100に示したコンポーネントのいずれか1つ、またはいずれかの組合せに関連する依存関係または要件を有するものと解釈してはならない。
本発明は、多数の他の汎用、または専用のコンピューティングシステム環境またはコンピューティングシステム構成で機能する。本発明で使用するのに適する可能性がある周知のコンピューティングシステム、コンピューティング環境、および/またはコンピューティング構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、モバイル電話機、プログラマブル家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、以上のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれるが、以上には限定されない。
本発明は、コンピュータによって実行されている、プログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は、通信ネットワークまたは他のデータ伝送メディアを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境において実施してもよい。分散コンピューティング環境において、プログラムモジュールおよびその他のデータを、メモリ記憶装置を含むローカルコンピュータ記憶メディアとリモートコンピュータ記憶メディアの両方の中に配置することができる。
図1を参照すると、本発明を実装するための典型的なシステムは、コンピュータ110の形態で汎用コンピューティングデバイスを含む。コンピュータ110のコンポーネントは、処理装置120、システムメモリ130、ならびにシステムメモリから処理装置120までを含む様々なシステムコンポーネントを結合するシステムバス121を含むことができるが、以上には限定されない。システムバス121は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含め、いくつかの種類のバス構造のいずれかである。例として、限定としてではなく、そのようなアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、および(メザニンバスとしても知られる)PCI(Peripheral Component Interconnects)バスを含む。
コンピュータ110は、通常、様々なコンピュータ読取り可能メディアを含む。コンピュータ読取り可能メディアは、コンピュータ110がアクセスすることができる任意の利用可能なメディアであることができ、揮発性メディアと不揮発性メディア、取り外し可能メディアと取り外し不能メディアがともに含まれる。例として、限定としてではなく、コンピュータ読取り可能メディアは、コンピュータ記憶メディアおよび通信メディアを含むことができる。コンピュータ記憶メディアは、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するために任意の方法または技術で実装された揮発性メディアと不揮発性メディア、取り外し可能メディアと取り外し不能メディアをともに含む。コンピュータ記憶メディアは、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、あるいは所望の情報を格納するのに使用することができ、コンピュータ110がアクセスすることができる任意の他のメディアを含むが、以上には限定されない。通信メディアは、通常、搬送波などの変調されたデータ信号、または他のトランスポート機構でコンピュータ読取り可能命令、データ構造、プログラムモジュール、またはその他のデータを実体化し、あらゆる情報配信メディアが含まれる。「変調されたデータ信号」という用語は、信号内に情報をエンコードするような形で特徴の1または複数が設定または変更されている信号を意味する。例として、限定としてではなく、通信メディアは、有線ネットワークまたは直接有線接続などの有線メディア、ならびに音響メディア、RFメディア、赤外線メディア、およびその他の無線メディアなどの無線メディアを含む。また、前述したメディアのいずれかの組合せも、コンピュータ読取り可能メディアの範囲に含まれるべきものである。
システムメモリ130は、ROM131やRAM132などの揮発性メモリおよび/または不揮発性メモリの形態でコンピュータ記憶メディアを含む。始動中などにコンピュータ110内部の要素間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム133(BIOS)が、典型的には、ROM131の中に記憶されている。RAM132は、典型的には、処理ユニット120が即時にアクセスすることができ、および/または処理ユニット120によって現在、処理されているデータおよび/またはプログラムモジュールを含む。例として、限定としてではなく、図1は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示している。
コンピュータ110は、その他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ記憶メディアも含むことができる。単に例として、図1は、取り外し不能不揮発性磁気メディアに対して読み取りまたは書き込みを行うハードディスクドライブ141、取り外し可能不揮発性の磁気ディスク152に対して読み取りまたは書き込みを行う磁気ディスクドライブ151、およびCD−ROMまたは他の光メディアなどの取り外し可能不揮発性の光ディスク156に対して読み取りまたは書き込みを行う光ディスクドライブ155を示している。典型的な動作環境において使用することができるその他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ記憶メディアは、磁気テープカセット、フラッシュメモリカード、デジタルバーサタイルディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどを含むが、以上には限定されない。ハードディスクドライブ141は、典型的には、インタフェース140のような取り外し不能メモリインタフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は、典型的には、インタフェース150のような取り外し可能メモリインタフェースでシステムバス121に接続される。本発明は、CPU、ならびにメモリのすべてが単一のパッケージの中の単一のダイ(die)上にある組み込みマイクロプロセッサ上に実装できることもさらに企図されている。
前述し、図1に示したドライブ、および関連するコンピュータ記憶メディアにより、コンピュータ読取り可能命令、データ構造、プログラムモジュール、および他のデータのストレージがコンピュータ110に提供される。図1で、例えば、ハードディスクドライブ141が、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を格納していることが示されている。以上のコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じであることも、異なることも可能であることに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147に、ここでは、少なくともそれらが異なるコピーであることを示すために異なる符号を付けている。ユーザは、キーボード162や、マウス、トラックボール、またはタッチパッドと一般に呼ばれるポインティングデバイス161などの入力デバイスを介して、コマンドおよび情報をコンピュータ110に入力することができる。その他の入力デバイス(図示せず)は、マイク、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどを含むことができる。以上の入力デバイス、およびその他の入力デバイスは、しばしば、システムバスに結合されたユーザ入力インタフェース160を介して処理ユニット120に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などの他のインタフェースおよびバス構造で接続してもよい。また、モニタ191、または他のタイプのディスプレイデバイスも、ビデオインタフェース190などのインタフェースを介してシステムバス121に接続される。モニタに加えて、コンピュータは、出力周辺インタフェース195を介して接続することができるスピーカ197やプリンタ196などの他の周辺出力デバイスも含むことができる。
コンピュータ110は、リモートコンピュータ180などの1または複数のリモートコンピュータに対する論理接続を使用するネットワーク化された環境において動作することが可能である。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードであることができ、典型的には、コンピュータ110に関連して前述した要素の多く、またはすべてを含むが、メモリ記憶装置181だけを図1に示している。示した論理接続は、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173を含むが、その他のネットワークを含むこともできる。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータ網、イントラネット、およびインターネットで一般的である。
LANネットワーキング環境で使用される場合、コンピュータ110は、ネットワークインタフェースまたはネットワークアダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用される場合、コンピュータ110は、通常、インターネットなどのWAN173を介して通信を確立するためのモデム172、またはその他の手段を含む。内部にあることも、外部にあることも可能なモデム172は、ユーザ入力インタフェース160、またはその他の適切な機構を介してシステムバス121に接続することができる。ネットワーク化された環境では、コンピュータ110に関連して示したプログラムモジュール、またはプログラムモジュールの部分は、リモートメモリ記憶装置の中に記憶されることが可能である。例として、限定としてではなく、図1は、リモートアプリケーションプログラム185が、メモリ装置181上に常駐しているのを示している。図示したネットワーク接続は、例示的であり、コンピュータ間で通信リンクを確立する他の手段も使用できることが認められよう。
(例示的な実施形態)
前述したとおり、コンピュータは、2つの別個の環境、つまり、信頼された環境および信頼されていない環境を提供するように構成できることが当技術分野で知られている。信頼性が確認されていない通常のコード(すなわち、動作が確認されていない、または悪意のある目的に役立つ可能性を排除できないコード)は、信頼されていない環境において実行される。ゲーム、ワードプロセッサ、スプレッドシートなどの通常のアプリケーションソフトウェア、ならびに通常のオペレーティングシステム、デバイスドライバ、およびデバッガは、一般に、信頼されていないカテゴリに入る。信頼性が何らかの形で確認されているコードは、信頼された環境において実行されることが可能である。コンピュータのメモリのいくらかの部分(すなわち、「隔離された」メモリまたは「仕切られた」メモリ)は、信頼される環境だけがアクセスできるように指定される。
以下の説明では、エージェントは、整合性を保つように、または整合性の違反を明らかにするように設計されたセキュリティで保護された手続きに従ってインスタンスが作成されている場合、「信頼される」。例えば、エージェントは、エージェントのID、ならびにエージェントが実行され(証明)、信頼されたエージェントであれ、信頼されていないエージェントであれ、他のいずれのエージェントもアクセスすることができないセキュリティで保護されたメモリ域(仕切られたメモリ)が割り当てられ、秘密を密封できる環境を確認する信頼される手続きを介して初期化されることが可能である。そのような信頼されるエージェントは、一意に、信頼できる形で識別されることが可能である。
信頼された環境では、コードが行うことが許されることに制限が存在する。例えば、存在する信頼されるAPIの数がより少なく(通常のLHSにおける非常に豊富なAPIセットに対して)、信頼された環境において実行されるエージェントが、制限された正式のプロセス間通信(IPC)機構を介してだけ互いに通信することができ、エージェントは、ユーザにテキストおよびイメージを提示するためにより限られたプリミティブなAPIおよびサービスのセットにしかアクセスすることができない。これらの制限により、複雑さが小さくなり、結果として、信頼された環境、ならびに信頼された環境内で動作する信頼されたエージェントの攻撃表面が小さくなる。他方、信頼されていない環境は、「オープンな」コンピューティングシステム(例えば、パーソナルコンピュータ、ハンドヘルドコンピュータなど)上のオペレーティングシステムによって、典型的に生成される環境と同様である。すなわち、ほとんどあらゆるコードが、そのような信頼されていない環境において実行されることが許され、標準の環境において実行されているコードは、プログラミングサービスおよびインタフェースの大きい豊富なセットに対する完全なアクセスを有する。信頼されていない環境および信頼された環境は、下位環境にさらに分割することができる。例えば、信頼されていない環境は、信頼されていないユーザモード(通常のアプリケーションが実行される)と、信頼されていないカーネルモード(通常のオペレーティングシステムが実行される)に分割することができる。同様に、信頼された環境は、信頼されたユーザモード(特殊な信頼されたアプリケーションが実行される)と、信頼されたカーネルモード(信頼されたアプリケーション用の信頼された環境をもたらす信頼されたオペレーティングシステムが実行される)に分割することができる。
信頼された環境と信頼されていない環境が、同一のコンピュータシステム内部に並存する場合、信頼された環境は、自らの信頼性が信頼されていない環境において生じる何によっても、または信頼された環境におけるいずれのユーザモードによっても影響される可能性がないことを確実にするステップを行うことができる。本発明の実施形態は、信頼されていない側の利益のために信頼された側の信頼性を投影する、または別の形で使用するための機構を提供する。
図3は、本発明による投影システムの一実施形態のブロック図であり、図4は、本発明による投影の方法の一実施形態の流れ図である。コンピュータ110上で実行されているシステムのLHSは、図2に関して前述したものと同様である。2つのアプリケーション305、310が、オペレーティングシステム301に関連して実行されている。RHSの諸部分も、図2に関して説明したものと同様である。2つの信頼されたエージェント355、360が、ネクサス351およびSSC353とともに実行されている。任意の数のアプリケーションをLHS上で実行することができ、任意の数のエージェントをRHS上で実行することができることが企図されている。
図3は、オペレーティングシステム301およびネクサス351が単一のコンピュータ110上で実行されるシステムを示している。オペレーティングシステム310とネクサス351の論理的分離350により、オペレーティングシステム310を起点とするイベントからネクサス351を保護しながら、オペレーティングシステム301とネクサス351の間である通信を行うことができる。
図3で示した実施形態では、オペレーティングシステム301は、ホストオペレーティングシステムであり、ネクサス351は、OS301によってホストされるゲストである。つまり、OS301は、メモリやプロセッサ時間などのあるサービスおよびリソースをネクサス351に提供する。一実施形態では、ネクサス351が、オペレーティングシステム301において生じ、ネクサス351が自らの動作仕様に反する形で動作するようにさせる可能性があるアクション(悪意のある、または悪意のない)から、自らを保護することができるようにしながらも、論理的分離350により、ネクサス351が、オペレーティングシステム301の一部のリソースを利用することができるようにする。例えば、ネクサス351、およびネクサス351に関連する信頼されたリソース、例えば、SSC353が、論理的分離を管理することができる。ただし、本発明は、特定の形態のネクサス351に限定されないことが理解されよう。対話と保護のこのバランスを可能にするように分離350を構成できるようにする機構が企図されている。
図3は、オペレーティングシステム301を「ホスト」として、ネクサス351を「ゲスト」として示していることに留意されたい。一般に、この特徴付けは、以上の例では、オペレーティングシステム301が、オペレーティングシステム301およびネクサス351によって使用されるあるオペレーティングシステムインフラストラクチャ(例えば、デバイスドライバ、スケジュール設定など)を提供することを指している。ネクサス351は、インフラストラクチャリソースを自ら提供するのではなく、オペレーティングシステム301の一部のインフラストラクチャリソースを利用することができるという意味で「ゲスト」である。ただし、何によりオペレーティングシステムが「ホスト」または「ゲスト」になるかのパラメータには、柔軟性があることに留意されたい。本明細書で説明する技術は、同一のマシン上で(あるいは同一の1組の接続されたマシン上でさえ)実行される任意の2つ以上のオペレーティングシステムの対話に適用することができることを認識されたい。単一のマシン上で実行される2つ以上のオペレーティングシステムは、単一のマシン上で互いに対話する必要がある可能性がある「環境」の例であるが、本発明は、従来のオペレーティングシステムに限定されないことが理解されよう。
投影は、信頼されたエージェント(RHS上の)の能力およびプロパティのいくつかをLHSコードに拡張することができる機構である。一例によれば、投影により、NGSCBパーソナルコンピュータプラットフォームの能力を既存のコードに適用することができるようになる。例えば、Microsoft(登録商標)Excel(登録商標)などのアプリケーションをRHSに移植するのではなく、本発明による投影により、そのアプリケーション(本明細書でモータル(mortal)とも呼ぶ)用の監視エージェント(本明細書でエンジェルとも呼ぶ)の構成が可能になり、これにより、既存のアプリケーションが、信頼されたエージェントと同じ有用なプロパティの多くを備えて実行される。投影は、LHSオペレーティングシステム(例えば、Microsoft(登録商標)Windows(登録商標))と、ある程度の信頼された動作が所望されるあらゆるLHSアプリケーションプログラム(例えば、Microsoft(登録商標)Office(登録商標))の両方に適用することができる。投影は、LHSデバイスドライバにも適用することができる。従って、以下により詳細に説明するとおり、投影により、信頼されたエージェントが、LHSのオペレーティングシステム、サービス、およびプログラムを保護し、保証し、証明し、拡張することができる。
図3は、アプリケーション305に対応する監視エージェント390、ならびにアプリケーション310に対応する監視エージェント395を示している(図4のステップ400)。各監視エージェント、つまり各エンジェルは、関連付けられたアプリケーションを保護する。
一実施形態では、当該のLHSエンティティ(例えば、アプリケーション)の作成者は、LHSエンティティを守るエンジェルも作成する。これにより、作成者が、エンジェルが監視するアプリケーションの深い知識を、エンジェルに与えることができる。このようなエンジェルは、エンジェルが監視するアプリケーションにおける異常により敏感であることができ、従って、アプリケーションをより効果的に保護し、検証することができる。例えば、オペレーティングシステム開発者によって作成される基本監視エージェントは、エージェントが疑わしいメモリ動作を迅速に識別することを可能にするオペレーティングシステムのメモリ管理に関する詳細な知識を組み込むことができる。
別の実施形態では、エンジェルは、関連付けられたアプリケーションにおいて異常な活動、または疑わしい活動を検出した場合、是正措置または防止措置をとることができる。例えば、エンジェルは、アプリケーション作成者によって不変であると考えられるメモリの中の重要な変数を変更しようとする関連付けられたアプリケーションによる試みを検出し、その変数に対する書き込みを阻止することができる。そのような書き込み動作は、悪意のある、例えば、ウイルスのコードによる明白な破壊でないとしても、アプリケーションコードの少なくとも破損を示す可能性が高い。要するに、エンジェルは、関連付けられたアプリケーションにおける良くない活動または疑わしい活動を警戒し、是正措置または防止措置をとる監視エージェントとして動作する。エンジェルの動作は、エンジェルが関連付けられたアプリケーションに損害を与えるのを防止するように制限することができる。エンジェルは、例えば、特定のエンティティ、プログラム、またはアプリケーション、あるいは一群のそのようなエンティティ、プログラム、および/またはアプリケーションに結合することができる。
基本監視エージェント(本明細書でアークエンジェルとも呼ぶ)380が、基本オペレーティングシステム(すなわち、LHS OS301)に関連付けられる(ブロック410)。一実施形態では、基本監視エージェント380は、LHSオペレーティングシステムの作成者によって書かれる。これにより、基本監視エージェント380が、LHSオペレーティングシステムに関するより詳細な知識を組み込むことが可能になり、これにより、エージェント380が、関連付けられたオペレーティングシステムによる異常な動作により敏感になる。
例えば、アークエンジェルは、仮想アドレスデータベース、プロセスデータベース、およびPFN(ページフレーム番号)データベースのフォーマットを知っていることができ、それに基づき、不正なデバイスドライバが、プロセスが有するはずのないPFNをマップすることによって、プロセスに対する不正なマッピングを行っているケースを検出することができる。従って、アークエンジェルは、メモリマネージャによって行われていない(例えば、不正なデバイスドライバによる)マッピングを検出することができ、存在するべきでないクロスプロセスマッピング(cross process mapping)を検出することができる。
そのような場合、アークエンジェルは、変更されたモータルOSと共謀することができる。OSとアークエンジェルは、例えば、特定のロックが保たれていない場合はいつでもPFNデータベースが常に整合性を有していなければならず、チェックサムを介してその整合性を表現することができなければならないことに合意することができる。従って、定期的な間隔で、アークエンジェルは、ロックを検査し、ロックが解除されていることが分かると(これは、メモリ変数であり、従って、試験するのが容易である)、PFNデータベースのチェックサムを行う。アークエンジェルは、チェックサムが一致しないことが分かった場合、PFNデータベースが改ざんされていることを知る。
さらに、アークエンジェルは、カーネルデバッガに関する制御変数を知っており、カーネルデバッガの使用を無効にするように制御変数を強制することもできる。
さらなる例には、プロセス読み込みが含まれる。すなわち、ローダ、キャッシュマネージャ、ページフォールトハンドラなどを監視して、正しいビットがユーザモードプロセス(または、システムに読み込まれた任意の他のモジュール)に正しく読み込まれ、または適切に署名され、場合により、アークエンジェルが知っているテーブルの中に保持されるハッシュのリストにリストされていることを確実にする。アークエンジェルは、ローダ、ページフォールトハンドラなどがいつ、コード/データをプロセスに、またはプロセスからマップする(ページングなど)必要があるかを予期することができる。RHSは、OSが既知の良好な機能を実行しているのでない限り、そのプロセスに関するLHS物理ページをロックしたままにする(LHS OSに対してさえ)ことができる。RHSは、LHSプロセスに関するページテーブルを制御する。従って、不良な動作を制限するようにアークエンジェルライタがアークエンジェルに書き込むことができるいくつかの機構が存在する。
さらなる例は、プロセス硬化(process hardening)を含む。1つのプロセスが別のプロセスを変更する周知の承認された機構が存在する。アークエンジェルは、すべての共有メモリマップ、ならびにデータの異なるプロセス空間へのコピー、または異なるプロセス空間からのコピーが制限されることを確実にすることができる。別の例は、カーネルドライバおよびデバイスドライバのすべての「テキスト」ページ(コードページ)が封鎖される読み取り専用カーネルに関わる。
アークエンジェル380は、エンジェルに対するプロセスごとの(制限されたアクセスの)投影もサポートする。これは、ユーザがシステムに実行するように求める(ユーザポリシーに合致して)あらゆるエンジェルをシステムが実行する点でエージェントと同様であり、以下に定義する証明ベクトルの一部ではない(すなわち、アークエンジェルは、実際、マシンの構成の一部である)エンジェルが、例えば、左側のプライバシーに侵入し、適用されるはずではないモータルアプリケーションをのぞき込み、大きな被害を与える可能性があることを意味する。従って、エンジェルは、特定のアプリケーション(モータル)に強くバインドされることが望ましい。これは、好ましくは、エンジェルが開始するモータルだけにエンジェルが影響を与えることを許すこと、あるいは、ダイジェスト検査がアークエンジェルによって行われて、エンジェルのマニフェストの中の宣言されたダイジェストに合致するモータルにだけ、かつモータルアプリケーションがエンジェルのダイジェストを使用してアプリケーションを開始するように呼び出して初めて行われる。これが望ましいのは、これにより、大きな被害をもたらす、または他のすべてに関するプライバシーを破壊する危険を冒すことなく、あらゆるアプリケーションベンダが、自らのアプリケーション用のエンジェルを書くことができるようにし、あらゆるユーザがそのエンジェルを使用するのを許すことが安全で、現実的になるからである。
従って、アークエンジェルは、LHSを監視するエージェントと、他のエンジェルにサービスを提供するエンジェルの両方である。アークエンジェルが、LHSプロセス構造の最も詳細な知識を有するため、いずれのエンジェルをいずれのLHSプロセスにバインドすることができるかを決めるのは、おそらくアークエンジェルである。制限とは、エンジェル(ネクサス証明ベクトルの一部ではない)が、エンジェルが開始したプロセスだけに、または保護されるようにエンジェルに要求したプロセスだけに触れることができることを意味する。この分割(アークエンジェルは、OSレベルの能力を獲得し、ネクサスのように検証され、エンジェルは、制限されたアプリケーションレベルの能力を獲得し、他のあらゆるエージェントと同様に自由に実行されることが可能である)は望ましい。
一実施形態では、エンジェルは、証明ベクトルの中にアークエンジェル(および、その延長上に、LHS基本OS)を含むことができる。証明ベクトルは、エンティティのセキュリティ関連構成を確立するセキュリティ関連コンポーネントのダイジェストのリストである。例えば、エージェントに関するダイジェストは、マシンまたはマザーボード自体、ネクサス、およびエージェント自体、ならびにその他の情報を含むことができる。この数値スタックは、エージェントがどのようなものであるか、どのような環境でエージェントが実行されているかの強力な信頼できるインジケータである。これにより、別のエンティティが、「本当のエージェント」を相手にしているか否かを信頼することができるようになる。証明ベクトルスタック(従って、エージェントのダイジェストは、ネクサスに関するベクトルの一部ではないが、ネクサスのダイジェストは、エージェントに関するダイジェストの一部である)。従って、何物かの証明ベクトルが別の物の中に含められる場合、これは、それらがすべて、認識可能なセキュリティ構成に一括してバインドされていることを意味する。証明のプロパティは、証明により、システムのセキュリティ関連構成が非常に強力に明らかにされることである。
つまり、証明ベクトルは、RHSのソフトウェアIDを定義するダイジェスト値のリストである。好ましくは、RHS上に読み込まれるソフトウェアは、読み込まれる前にダイジェスト化され、プロセス自体は、変化する可能性がないようによく隔離される。これは、帰納的プロセスである。すなわち、ハードウェアがネクサスのダイジェストに署名し(ネクサスのダイジェストを証明し)、ネクサスが、エージェントを証明する。このようにして、外部パーティは、そのダイジェストを既知のリストに照らして検証して、外部パーティがシステム上で実行されるそのソフトウェアを承認するかどうかを決めることができる。エンジェルおよびアークエンジェルは、RHS上で実行されているため、明確に定義されたコードIDを有する。この理由で、それらのコードIDを、LHSコードが実行されている環境を記述する証明ベクトルの中にリストすることができる。エンジェルは、LHSコードの実行を完全に制御することができないため、このコードIDステートメントは、RHSエージェントのコードIDステートメントほど強力ではないが、所与のLHSコードが、強力なコードIDを有するエンジェル、アークエンジェル、およびネクサスの制限の下で実行されていることを意味する。
アークエンジェルの実施形態は、エンジェルに対して何らかのAPIセットを公開して、エンジェルのいくつかの機能および/または機構のサポートを提供することができる。例えば、あらゆるメモリ動作に関して、望ましくは、アークエンジェルが仲介する。エンジェルは、仮想アドレスVA=100においてカバーされたアプリケーション(covered application)コードを検査することを所望することができる。しかし、その仮想アドレスがどのような物理アドレスにマップされるかが分かっていない可能性がある。ネクサスは、そのような構造について知らない。従って、アークエンジェル(LHS OSがどのように機能するかを知っている)が、基本的なネクサスサービス(アークエンジェルだけが呼び出すことができる)を使用して、妥当なLHSカーネルメモリを読み取る。アークエンジェルは、LHS OSメモリからのデータを使用して、LHSアプリケーションメモリに関する正しいマッピングを計算する。次に、エンジェルに、どのカバーされたアプリケーションアドレスがエンジェルアドレスに対応するかが知らされ、エンジェルは、その内容を検査して、処理を継続することができる。要するに、プロセスにバインドされたエンジェル(すなわち、LHS状態の上でランダムにローミングするのではなく、許可されたプロセスだけに適用されるエンジェル)に関して、アークエンジェルがLHSデータ構造を解釈することが望ましい。
さらなる典型的な機能は、LHSアプリケーションおよびRHSエンジェルだけがデータを見ることを可能にするセキュリティで保護されたIPCチャネルを提供することを含む。LHSカーネルは、通常、LHSとRHSの間のIPCチャネルを通過するすべてのページを見ることができるが、それらのページに、アークエンジェルの監視の目の下でしかアクセスすることができない場合、当該のプロセス(所与のエンジェルによって制御されるプロセス)だけが、チャネルの中のデータを見ることができるという高い保証が提供される。別の典型的な機能は、どのようなモジュール(例えば、DLL)を、またそのモジュールのどのバージョンを所与のプロセスのプロセス空間に読み込むことができるかを制御する能力をエンジェルに与える。
信頼されたエンティティとして、アークエンジェル380は、LHSに関連するメモリに対するアクセスを有し、LHS上で何かが生じた場合にはいつでも通知を受ける。アークエンジェル380は、アークエンジェル380が、不整合を検出して、セキュリティまたは保護のために何らかの措置がとられるべきかどうかを判定するのに使用する一連の知識があらかじめプログラミングされる。例えば、アークエンジェル380は、あるセットのLHSイベントを捕らえることができる。それらは、LHSによって許され、ネクサス351、またはネクサス351が管理する信頼環境によって排除されないイベントであることができる。例えば、アークエンジェル380は、攻撃またはセキュリティの問題の可能性を示すLHS上の不適切なマッピング(不適切でなければ、ネクサス352が許す)を検出することができる。アークエンジェル380は、整合性検査も実行することができる。
図3に示した実施形態では、各エンジェルが、アークエンジェル380およびネクサス351によってバインドされるか、それ以外の形で監視される(ブロック420)。アークエンジェル380は、エンジェルと関連するLHSコードの間のバインドを実施し、このバインドにより、LHS上の、例えば、プライバシーおよびセキュリティにエンジェルが影響を与える能力が制限される。
エンジェルの動作は、エンジェルが結合されることになっているプロセスだけに影響を与えることに制限されることが望ましい。何故ならば、ネクサス351およびアークエンジェル380は、ユーザのポリシーに従って、ユーザがネクサス351およびアークエンジェル380に実行するように指示するあらゆるエンジェルを実行するからである。アークエンジェルは、ネクサスと同等の能力を有し、およそ同じ程度まで精査される。エンジェルに関して、他のあらゆるエージェントの場合と同様に、ネクサスは、ユーザが指示するものであれば何でも実行する。従って、ネクサスおよびアークエンジェルは制約されているが、通常のエンジェル(エージェントのような)は、制約されていない(ただし、ユーザは、例えば、特定の評価者によって署名されたエージェントまたはエンジェルを実行するように、または実行しないようにネクサスに指示するポリシーを設定することができる)。
エンジェルが制約されることが望ましい。例えば、「第1のプログラム用のエンジェル」と告げる署名ブロックを有するエンジェルは、LHS基本OSメモリを使用すること、または他のプログラムのメモリを使用することが許されてはならない。それを許すことにより、多くのユーザ権利が侵害され、エンジェルが、役立つのではなく、危険になる。従って、アークエンジェルは、エンジェルがアクセスすることができるとされているLHSプログラムだけに対して、エンジェルがアクセスを得ることを確実にする。
信頼されたエージェントは、好ましくは、いずれのLHSプログラムを超える能力も有さない。詳細には、信頼されたエージェントは、LHS OSを調べることも、LHS OS構成状態を制御または変更することもできない。代わりに、エンジェルは、好ましくは、エンジェルが適用されるモータルのメモリを検査する、または変更することだけが許される。さらに、一部の実施形態では、アークエンジェルは、エンジェルがモータルのコードを変更することを許さず、エンジェルを、モータルのユーザモードアドレス空間内のあらゆるものを読み取ることに制限し、エンジェルが、モータルの共有でない読み取り/書き込みメモリに書き込むことを許すことができる。ただし、一部の機構は、エンジェルに対するモータルの呼び出しが、呼び出しポイントではなく、計算されたリターンポイントに戻ることが許されることを要求する。これにより、エンジェルが、モータルにおける既知の正しいアドレスで一部のイベントが開始されるように強制することが可能になり、これは、リターンアドレスを変更する壊れたスタックに基づくトランポリン(trampoline)攻撃に対抗する強力なやり方である。
エンジェルは、関連付けられたエンティティ、または関連付けられたグループのエンティティだけを監視することができ(ブロック430)、任意の他のエージェントと同程度にしか信頼されない。エンジェルは、関連しないエンティティを監視する、または別の形で調べることができない。詳細には、エンジェルは、以下の属性の1または複数を有する。すなわち、
a.エンジェルは、エンジェルが結合されたプロセスまたはプロセス群(すなわち、モータル)だけのユーザモードメモリを監視することができる(通常、RHSコードに与えられる能力ではなく−上記参照)。
b.アークエンジェルだけが、アークエンジェルが結合されたLHS OSのカーネルモードメモリを見ることができる。
c.エンジェルは、エンジェルを呼び出し、要求するLHSプロセスだけに適用することができるか、またはエンジェルが開始するLHSプロセスだけに適用される。
d.エンジェルは、宣言型実行(declarative enforcement)によって制限することができる。例えば、ネクサスおよび/またはアークエンジェルが、エンジェルに関するマニフェストの中で宣言された実行可能ファイルに合致する実行可能ファイルを含むプロセスだけに投影されるようにエンジェルを制限することができる。従って、何者かがエンジェルに関するマニフェストを変更することなしに、「ハッカツール」用のエンジェルが、偶然に、または悪意によってLHSアプリケーションに投影される可能性はない。そのようなマニフェスト変更は、ポリシーツールには明白である。
アークエンジェル380は、以上の制限を実施することができる(ブロック440および450)。この目的で、アークエンジェルに、LHSに対する広範なアクセスを与えることができ、その場合には、アークエンジェルは、ネクサスと同様にある程度の精査(すなわち、厳しい精査)を受ける。例えば、アークエンジェルは、LHS OSを支配し、従って、LHS上で実行されるすべてを支配する。つまり、アークエンジェルは、あらゆるLHSメモリを読み取ることができるが、RHSカーネルメモリに対するアクセス、あるいは他のエージェントプロセスを調べる、またはネクサスまたは他のRHSエージェントを制限する、増強する、変更するなどの能力などの特殊なRHS能力は有さない。エンジェルは、エンジェルが適用されるプログラムのアドレス空間だけしか読み取ることができない(すなわち、エンジェルは、エンジェルが適用されるモータルだけに適用される特殊な能力を有する)。アークエンジェルは、エンジェルが監視し、保護するプログラムのアドレス空間だけをエンジェルが調べることができるようにプロセス専用のサービスを提供しながら、すべてのLHSメモリを読み取ることもできる(ステップ440)。
エンジェルは、少なくとも以下の形で保護対象(protectee)を「投影する」ことができる(ステップ430および450)。すなわち、
a.エンジェルは、場合により、保護対象の動作と協調して、保護対象に対するある変更(例えば、ウイルス攻撃)を防止するようにメモリの様々な要素をロックする、または読み取り専用としてマークを付けることができる。
b.エンジェルは、信頼された空間内で保護対象のためにいくつかの重要な動作を実行することができる。
c.エンジェルは、どのような構成変更を行うことができるかを制限すること、あるいはセキュリティで保護された入力機構を使用する許可された人間によって承認された場合にそのような変更が行われるのを許すことなどの、保護対象専用の保護を強要することができる。
d.エンジェルは、整合性エラー、破損などを探して、所望の間隔で保護対象のメモリおよび状態をスキャンし、さらなる損傷、または意図しない/許可されていない動作が生じる前にユーザに警報する、または保護対象を停止することができる。
e.エンジェルは、必要に応じて保護対象に対して密封された/暗号化されたデータを開放して、任意の一時点で攻撃される可能性があるそのようなデータの量を最小限に抑えることができる。
エンジェルは、密封されたストレージを使用して、LHS(またはLHSアプリケーション)のために秘密を密封しておき、秘密所有者に合致するか、または秘密所有者によって許容されるものとしてリストされるダイジェストを有さないいずれのLHS(またはLHSアプリケーション)にもその秘密を与えることを拒否することができる。
f.適切なAPIが与えられると、エンジェルは、保護対象の実行状態を変更することができる。つまり、エンジェルは、既知の実行ポイントにスレッドを誘導すること、制御の流れを目標アプリケーションにリダイレクトすること、または目標アプリケーションのために分岐の計算および実行を行うことができる。エンジェルは、構成状態、スタートアップ状態などを編集して、保護対象のセキュリティで保護された/正しい動作のための妥当なモードになるよう状況を強いることができる。
g.エンジェルは、アークエンジェルを呼び出し、保護対象のために防止、保護、検出、または反応を実行するようにアークエンジェルに求めることができる。
h.エンジェルは、アプリケーションから出力データを抽出し(例えば、呼び出し、またはメモリ検査により)、そのようなデータを検証し(例えば、チェックサムなどを行って)、次に、セキュリティで保護された出力ハードウェアを使用してそのデータを提示することができる。
エンティティまたはアプリケーションの機能の一部は、エンジェルの中に移すことができる。同様に、LHSカーネルの機能の一部は、アークエンジェルに移すことができる。アプリケーション作成者は、エンジェルの中にアプリケーションの機能のいくつかを実装することができる。これにより、RHSの負担が増大するが、移された機能を信頼された環境の中で実行することが可能になる。同様に、LHS OS301の一部分も、アークエンジェル380の中に移すことができる。
エンジェルは、いくつかの形で読み込む、または呼び出すことができる。アプリケーション305のようなLHSプログラムが、エンジェル390を要求することができる。このようにして、例えば、アプリケーションのスタートアップ時に、対応するエンジェルが読み込まれる。代替として、エンジェルは、RHSから呼び出されることも可能であり、次に、エンジェルが、対応するLHSプロセスまたはLHSアプリケーションを呼び出す。エンジェルは、アークエンジェルを使用してLHSまで呼び出しを行い、アプリケーションが開始されることを要求する。アークエンジェルは、エージェントをアプリケーションにバインドする。一実施形態では、ネクサスおよびアークエンジェルがアプリケーションエンジェルに提供するAPIにより、エンジェルが作成したプロセスだけが、また場合により、そのプロセスの子も、エンジェルに見えるようにする。
別の代替として、LHSプログラムを、マニフェストによって呼び出すことができ、次に、RHSに向けて、RHSがエンジェルを開始し、エンジェルが、LHSを呼び返して、対応するLHSプロセスまたはLHSアプリケーションを開始する。典型的には、LHSプログラムは、そのプログラムを含むファイル(例えば、「run c:\somedir\someotherdir\someprogram.exe」であるAPI)を指名することによって開始される。RHSコード(エージェントまたはエンジェル)の場合は、マニフェストを指名することによって開始され、マニフェストが、バイナリを指名する。これは、ロケーション独立である。また、マニフェストは、典型的には、例えば、署名され、証明され、従って、スプーフィングすることがはるかに困難である。従って、典型的な機構は、結合された左/右マニフェストをRHS(ネクサス)に提示して、RHS(ネクサス)が、LHSアプリケーションと関連するエンジェルをともに開始し、アプリケーションとエンジェルをバインドすることである。さらに、エンジェルを使用してLHSまたはRHSからアプリケーションを開始することができる。
本発明の実施形態では、アークエンジェルは、LHSプロセスの最初に読み込まれたコードイメージが、エンジェルに関連する宣言された目標コードイメージに合致することを確認することができる。宣言された目標コードイメージを、エンジェルのマニフェストを介して提供することができる。これにより、特定のアプリケーションに関するエンジェルであると主張するコードが、別のアプリケーションを代わりに開始することが防止され、これにより、攻撃に対するさらなるセキュリティが提供される。
本発明の一部の実施形態によれば、エンジェルは、エンジェルが関連するLHSアプリケーションまたはLHSプロセスのコードイメージを編集しないようにする。エンジェルは、データを読み取る/書き込むことができるが、コードを読み取ることしかできない。
以上のポリシーおよび同様のポリシーを使用して、エンジェルが、LHSに対する監督または制限なしに実行されることから防止することができ、不正なエンジェルが、LHSプログラムおよびLSHアプリケーションを使用してスプーフィングすることから防止される。
前述した開始機構に加えて、正しいエンジェルが正しいLHS(またはRHS)アプリケーションに結合され、結合されたままになることを確実にする他のやり方が存在する。実行中のアプリケーションが、アプリケーションのエージェントにコールを行う前に、攻撃者によって変更される、またはLHSウイルスが、コールを傍受し、変更して何らかの他のエンジェルを目標にする可能性がある。
本発明の実施形態は、アプリケーションからアプリケーションのエージェントへのコールを、アークエンジェルまたはネクサスのような信頼された権限を介して処理することによってこれに対処することができる。例えば、アークエンジェルが、呼び出し側LHSアプリケーションをダイジェスト化し、そのダイジェストをRHSエンジェルに関連する「承認された」ダイジェストのリストと比較することができる。LHSアプリケーションが変更されているためか、またはコールが異なるエンジェルを目標にするように変更されているためにダイジェストが一致しない場合、コールは失敗し、システムは、ユーザに警報し、および/または他の任意のいくつかの措置をとることができる。
システムポリシーを使用して、いずれのエンジェルがいずれのLHSアプリケーションに結合することができるかを指定することができる。強力なポリシー機構を使用することにより、スプーフィングするのが困難で、誤った初期化をすることが困難な機構が提供され、このような依存関係を設定する。
一部の実施形態では、エンジェルは、好ましくは、関連付けられたアプリケーションに対する脅威を標的にするための調整可能な、または様々なプログラミング可能なレベルの検査を有する。認識される脅威または攻撃に対するエンジェルの感度を、調整することができる。
LHS OSまたはLHSアプリケーションに投影(例えば、防御、保護、助言)を提供することに加えて、エンジェルを、信頼されたコンピューティング環境において実行されているエージェントに適用することもできる。そのような場合、目標エージェント(通常、被害妄想のエンティティ)は、自らに結合されたエンジェルを信頼する。これにより、外部の監視プロセスが、目標エージェントにおける様々なバグおよびエクスプロイトを阻止することが可能になる。エンジェルは、セキュリティエラーを探してスキャンする(例えば、従来のウイルス対策技術のように)のではなく、セキュリティの不変量を実施し、ネクサスが提供する堅固なプロセス分離およびプロセス保護の使用を実施することができる。
一実施形態では、エージェントは、OSイメージが起動されている、何らかの現実のマシンの「実質的に同一の重複コピー」を提供する仮想マシンである。信頼された環境は、エージェントが仮想マシンのプロセスメモリにアクセスするのを許すことができる。アクセスする側のエージェントは、プロセスメモリを監視して、仮想マシンを仮想マシンが含むイメージからの攻撃から保護することができる。信頼された環境により、エンジェルがOSイメージを仮想マシンの中に投影することができ、エンジェルが、アプリケーションを仮想マシンの中に投影することができる。LHSアプリケーションに、通常、適用されるのと同一の機構が、仮想マシンに代わりに適用されることが企図されている。
本発明の一実施形態では、ネクサスが、メモリ検査およびメモリ改変のためのAPI(少なくとも)をアークエンジェルに提供する。制御構造を変更しようとする試みを捉え、反応するためのAPIサポートにより、投影が容易になる。例えば、x86アーキテクチャ上で、GDT、LDT、IDT、デバグレジスタ、TRなどの制御構造の保護に、APIを介して提供することができる。GDTとは、グローバル記述子テーブルを指し、LDTとは、ローカル記述子テーブルを指す。GDTR(グローバル記述子テーブルレジスタ)を封鎖することにより、攻撃者が通常、ジャンプすることができない場所へのジャンプを可能にするように、仮想アドレスの意味をゆがめることに依存する攻撃が阻止される。IDTは、割り込みのルーティングを制御する割り込みディスパッチテーブルである。IDTの場所は、IDTR(割り込みディスパッチテーブルレジスタ)によって示される。IDTRを封鎖することは、攻撃者がIDTおよびポストされた割り込みを使用して、攻撃者がそれ以外のやり方では到達することができないコードへの分岐を強制する攻撃を阻止することにより、投影をより強力にする。
信頼された環境(すなわち、RHS)およびオープンな環境(すなわち、LHS)が何らかの形で接続されていることが望ましい。この接続により、信頼された環境が状態を検査し、オープンな環境におけるイベントを知らされることになる。本明細書の教示は、以下の構造を含むが、決してそれに限定されない構造に関して有効である。
1.RHSとLHSが、同一のマシン上に存在し、RHSが、LHSメモリを直接に検査することができる(他方、LHSは、許可なしにRHSメモリを検査することができない)。
2.RHSとLHSは、場合により異なるメモリを有する、異なるプロセッサ上に存在するが、バス、ネットワーク、ポート、またはその他の相互接続により、RHSが、LHSメモリを調べることができる。例えば、ARMサービスプロセッサが、完全に信頼されたスタックを実行することができ、信頼されたスタックが、x86MPシステムのメインメモリを検査することができる。例えば、x86メインプロセッサを備えたマシン、ならびにサービスプロセッサとしてARMまたはPowerPCが存在し、本発明の機構を使用して、サービスプロセッサがメインプロセッサ上のソフトウェアを監視できる。
3.RHSがLHSイベント(例えば、マップの変更)の通知を受け取ることができるが、そのイベントを変更する、または防止することができない、あるいはLHSメモリを調べることができない場合、それでも、投影のいくらかの部分(例えば、弱い部分)が可能である。
4.RHSが、自由にLHSメモリを検査することができ、LHSメモリのマッピング構造およびアドレス変換構造に対するLHS編集を制御する(すなわち、防止する、または変更する)ことができ、割り込みディスパッチベクトルがどこをポイントするかを制御することができる(ただし、割り込みコントローラを制御するとは限らないが、そのような制御が提供される場合、それにも利点がある)。強力な投影をサポートするようにRHSが完全に制御することができることが望ましい状態/イベントのリストを特定することは、各プロセッサアーキテクチャに関して行われるべき作業であるものと企図され、リストは、異なるアーキテクチャに関して異なることが当業者には理解されよう。
5.一実施形態では、x86TRレジスタの変更、ならびにハードウェアデバッグレジスタの設定もRHSによって制御可能である。
従来技術のハードウェアにおいて、信頼された環境は、実行されることが保証されていない。とうのは、信頼された環境は、一般的な割り込みハードウェア、LHS割り込みディスパッチテーブルなどに依存する可能性があるためである。
以上にリストしたハードウェアでは、IDT(x86上で、または他の場所の等価物上で)を制御できることにより、RHSが、任意に選んだ何らかの割り込みにより、RHSを呼び出すコードが常に実行されることを確実にできる。
ただし、LHS攻撃者またはLHSエラーにより、割り込みコントローラが壊される、割り込みがオフにされるなどの可能性がある。ATC(アドレス変換制御)を使用して、RHSが時々、実行されるのを確実にすることが企図されている。RHSは、ATCを使用している場合、カウンタを増分するようにATCを変更することができる。カウンタは、RHSがアークエンジェルをスケジュール設定した場合にはいつでも、何らかの値に設定される。カウンタがゼロに達した場合、ATCは、アークエンジェルが「余りにも長い間」、実行されていないことを知り、アークエンジェルを強制的に実行するネクサスエントリポイントを呼び出す。この技術は、アークエンジェルがいずれの特定の時点でも実行されることを保証しないが、アークエンジェルが、数回のLHSメモリ編集動作の後に実行されることを確実にする。従って、アクティブであるLHSは、いつかはアークエンジェルを実行させることになる。
RHSがIDTを封鎖することができ、システムがNMI(マスク可能でない割り込み)の信頼できるソースを有する場合、RHSは、右側を呼び出すようにNMIハンドラを強制することができる。
典型的な実施形態では、ハードウェアは、数回のティック(tick)の後にRHSに対して割り込みを強制するタイマを有する。
本発明は、1つのコンピューティング環境の信頼性が、第2のコンピューティング環境に投影されることを可能にする機構を提供する。単一のマシン上で実行される2つ以上のオペレーティングシステムが、単一のマシン上で互いに対話する必要がある「環境」の例であるが、本発明は、従来のオペレーティングシステムに限定されないことが理解されよう。さらに、本明細書で説明する技術の少なくとも一部を一般的なケースで使用して、任意のタイプの実行可能なエンティティ(例えば、任意のソフトウェア)から他の任意のタイプのエンティティに信頼性を投影することができる。
2つのエンティティが単一のマシン上に並存し、互いに対話する必要がある場合、対話は、様々な形態をとることが可能である。例えば、2つのエンティティは、互いにデータをやりとりするように通信する必要がある場合もある。エンティティがオペレーティングシステム(または仮想マシン上でスクリプトを実行するスクリプトエンジンなどの他の種類の実行環境)である場合、エンティティは、他の形で、例えば、メモリを共用して、プロセッサ上の時間を共用して、リソースを共用して、割り込みを処理して、互いに対話する必要がある場合もある。本発明は、一方のエンティティが自らの信頼性を他方のエンティティに投影することを可能にしながら、2つのエンティティが、以上のタイプの対話に参加することができるようにする技術を提供する。
前述した実施形態は、監視されるリソースとしてメモリを中心に扱うが、本発明は、そのように限定されない。メモリ以外のリソースに関するセキュリティモニタが利用可能な場合、基本監視エージェント(例えば、アークエンジェル)が、そのようなモニタを信頼された代理として使用して、自らの信頼領域(sphere of trust)を拡張することができる。例えば、セキュリティで保護されたNICが利用可能な場合、基本監視エージェントは、セキュリティで保護されたNICを使用して、あるヘッダを有するパケットを送ることを除外することができる。一般に、そのような信頼された代理は、測定不変点、例えば、<regexp>に一致するヘッダを理解し、その不変点の変更時に監視エージェントに信頼できる形で警報するだけでよい。
以上の説明は、単に説明のために提示しており、本発明を限定するものと解釈されるべきではないことに留意されたい。本発明を様々な実施形態に関連して説明してきたが、本明細書で使用した言葉は、限定の言葉ではなく、説明および例示の言葉であることが理解されよう。さらに、本発明を特定の手段、材料、および実施形態に関連して本明細書で説明してきたが、本発明は、本明細書で開示した詳細に限定されるものではなく、むしろ、本発明は、特許請求の範囲に含まれるようなすべての機能的に等価の構造、方法、および用途に拡張される。本明細書の教示の恩恵を受ける当業者は、本発明の多数の変更形態を実施することができ、変更は、本発明の態様の範囲および趣旨を逸脱することなく実施することができる。
本発明の態様を実装することができる典型的なコンピューティング環境を示すブロック図である。 信頼された環境と信頼されていない環境の両方を有する既存のNGSCBシステムを示すブロック図である。 本発明による例示的な投影システムを示すブロック図である。 本発明による例示的な投影方法を示す流れ図である。
符号の説明
201,301 オペレーティングシステム
205,305 アプリケーション1
210,310 アプリケーション2
251,351 ネクサス
255,355 信頼されたエージェント1
260,360 信頼されたエージェント2
380 BMA(アークエンジェル)
390 MA1(エンジェル1)
395 MA2(エンジェル2)

Claims (58)

  1. プロセッサと、
    前記プロセッサに結合されたメモリと、
    前記メモリ上のセキュリティで保護されていない信頼されていない環境と、
    前記信頼されていない環境と接続され、前記信頼されていない環境にとってアクセスできない前記メモリ上のセキュリティで保護された信頼された環境と、
    前記信頼されていない環境において実行される前記プロセッサ上の少なくとも1つのアプリケーション、拡張、またはコンポーネントを監視する前記信頼された環境において実行される前記プロセッサ上の複数の監視エージェントであって、各監視エージェントは、前記信頼されていない環境におけるアプリケーションに関連付けられ、攻撃および不整合に関して関連付けられたアプリケーションを監視する、監視エージェントと、
    前記信頼されていない環境を監視する前記信頼された環境において実行される前記プロセッサ上の少なくとも1つの基本監視エージェントと
    を備え、前記プロセッサがブートされると、各監視エージェントが、前記信頼されていない環境のイベントを検出し、検出されたイベントを前記基本監視エージェントに通知することよって信頼された環境の信頼性を信頼されていない環境に投影して、前記基本監視エージェントが、前記監視エージェントにより報告された信頼されていない環境のイベントを承認するか、または承認しないことを特徴とするシステム。
  2. 各監視エージェントは、該監視エージェントが関連付けられたアプリケーションの一部分を含むことを特徴とする請求項1に記載のシステム。
  3. 各監視エージェントは、前記関連付けられたアプリケーションに対する脅威を標的にするためのプログラム可能なレベルの検査を有することを特徴とする請求項1に記載のシステム。
  4. 各監視エージェントは、キーボード操作を暗号化することによるセキュリティで保護された入力を受け取り、前記セキュリティで保護された入力を前記関連付けられたアプリケーションに転送することを特徴とする請求項1に記載のシステム。
  5. 前記監視エージェントの少なくとも1つは、前記信頼された環境において実行されるアプリケーションエージェントを監視することを特徴とする請求項1に記載のシステム。
  6. 前記信頼された環境において実行される前記プロセッサ上の別の監視エージェントをさらに備え、該監視エージェントは、互いに通信していることを特徴とする請求項1に記載のシステム。
  7. 前記基本監視エージェントは、前記信頼されていない環境における不整合を検出することを特徴とする請求項1に記載のシステム。
  8. 前記信頼されていない環境において実行されるアプリケーションにおける不整合を検出する前記プロセッサ上の複数の監視エージェントをさらに備えたことを特徴とする請求項7に記載のシステム。
  9. 前記信頼された環境において実行されるアプリケーションにおける不整合を検出する前記プロセッサ上の追加の監視エージェントをさらに備えたことを特徴とする請求項8に記載のシステム。
  10. 前記少なくとも1つの基本監視エージェントは、さらに入力を受け取るためのキーボード操作を暗号化することによるセキュリティで保護された入力を備え、基本監視エージェントは、前記受け取られた入力に基づいて信頼されていない環境イベントを承認するか、または承認しないことを特徴とする請求項9に記載のシステム。
  11. 前記基本監視エージェントの少なくとも1つは、キーボード操作を暗号化することによるセキュリティで保護された入力を介して承認を受け取ることなしに、前記信頼されていない環境に対する変更を許可することを拒否することを特徴とする請求項1に記載のシステム。
  12. 前記基本監視エージェントの少なくとも1つは、変更が承認されたパーティによって署名されたパッケージによって記述されていない限り、前記信頼されていない環境に対する変更を許可することを拒否することを特徴とする請求項1に記載のシステム。
  13. 前記信頼されていない環境において実行される少なくとも1つのアプリケーション、拡張、またはコンポーネントを監視する前記信頼された環境において実行される前記プロセッサ上の監視エージェントをさらに備え、監視エージェントは、密封されたストレージを使用して、前記信頼されていない環境の中に常駐するオペレーティングシステムまたはアプリケーションに関する秘密を保持することを特徴とする請求項1に記載のシステム。
  14. 前記監視エージェントは、前記オペレーティングシステムまたは前記アプリケーションが、前記秘密の所有者に合致するダイジェストを有さない限り、前記オペレーティングシステムまたは前記アプリケーションに前記秘密を明らかにすることを拒否することを特徴とする請求項13に記載のシステム。
  15. 前記監視エージェントは、前記オペレーティングシステムまたは前記アプリケーションが、前記秘密を読み取ることができるダイジェストのリスト上に存在しない限り、前記オペレーティングシステムまたは前記アプリケーションに前記秘密を明らかにすることを拒否することを特徴とする請求項13に記載のシステム。
  16. 前記監視エージェントは、正当なエンティティが前記秘密を要求しているかどうかを判定する所定の試験を使用することを特徴とする請求項13に記載のシステム。
  17. 前記所定の試験は、前記エンティティのスタックを検査し、前記スタックが正当なスタック内容を有することを確認することを含むことを特徴とする請求項16に記載のシステム。
  18. 前記信頼されていない環境において実行される少なくとも1つのアプリケーション、拡張、またはコンポーネントを監視する前記信頼された環境において実行される前記プロセッサ上の監視エージェントをさらに備え、監視エージェントは、前記信頼されていない環境の状態を編集して、該信頼されていない環境をセキュリティで保護されているようにするか、または別の形で許容できるようにすることを特徴とする請求項1に記載のシステム。
  19. 前記状態は、初期構成またはエラー報告オプションを備えたことを特徴とする請求項18に記載のシステム。
  20. 前記基本監視エージェントは、前記信頼されていない環境の既知の良好な構成、または前記信頼された環境に属さない物理メモリをゼロにすることを特徴とする請求項1に記載のシステム。
  21. 前記信頼されていない環境は、基本入出力システム(BIOS)、ファームウェア、またはローダを備えたことを特徴とする請求項1に記載のシステム。
  22. ブート時に前記基本監視エージェントを実行するためのネクサスをさらに備えたことを特徴とする請求項1に記載のシステム。
  23. 前記基本監視エージェントが実行されるべきかどうかを判定するのに使用される前記信頼された環境におけるカウンタをさらに備えたことを特徴とする請求項1に記載のシステム。
  24. 前記カウンタは、信頼されていないメモリ編集動作の回数をカウントすることを特徴とする請求項23に記載のシステム。
  25. メモリ上のセキュリティで保護されていない信頼されていない環境を監視する方法であって、
    前記信頼されていない環境および前記信頼されていない環境において実行されるオペレーティングシステムを処理装置が提供すること、
    前記メモリ上の保護された信頼された環境と前記信頼されていない環境とを前記処理装置が接続すること、
    前記信頼された環境において実行される複数の監視エージェントを前記処理装置が提供すること、
    前記複数の監視エージェントの少なくとも1つを、前記信頼されていない環境において実行される少なくとも1つのアプリケーション、拡張、またはコンポーネントに前記処理装置が関連付けること、
    前記複数の監視エージェントの少なくとも1つを使用して前記少なくとも1つのアプリケーション、拡張、またはコンポーネントを前記処理装置が監視すること、
    前記信頼された環境において実行される少なくとも1つの基本監視エージェントを前記処理装置が提供すること、
    前記少なくとも1つの基本監視エージェントを前記オペレーティングシステムに前記処理装置が関連付けること、
    ブート時に前記基本監視エージェントを実行するためのネクサスを前記処理装置が提供すること、
    前記監視エージェントを前記基本監視エージェントに前記処理装置がバインドして、前記監視エージェントを前記ネクサスにバインドすること、
    前記複数の監視エージェントの少なくとも1つを使用して攻撃および不整合に関して前記信頼されていない環境およびオペレーティングシステムを前記処理装置が監視して、前記信頼されていない環境およびオペレーティングシステムのイベントを検出し前記基本監視エージェントに通知することよって信頼された環境の信頼性を信頼されていない環境に投影すること、および、
    前記基本監視エージェントを使用して前記監視エージェントにより報告された信頼されていない環境およびオペレーティングシステムのイベントを前記処理装置が承認するか、または承認しないこと
    を備えたことを特徴とする方法。
  26. 各監視エージェントをアプリケーションに前記処理装置が関連付けること、および、
    攻撃および不整合に関してそれぞれの関連付けられたアプリケーションを前記処理装置が監視すること
    をさらに備えたことを特徴とする請求項25に記載の方法。
  27. アプリケーションを前記監視エージェントの1つに前記処理装置が関連付け、前記アプリケーションの一部分を前記監視エージェントに転送して、前記一部分が前記信頼された環境の中に常駐するようにすることをさらに備えたことを特徴とする請求項25に記載の方法。
  28. アプリケーションを前記監視エージェントに前記処理装置が関連付け、前記関連付けられたアプリケーションに対する脅威を標的にするためのプログラム可能なレベルの検査を有する監視エージェントを提供することをさらに備えたことを特徴とする請求項25に記載の方法。
  29. アプリケーションを前記監視エージェントに前記処理装置が関連付けること、
    前記監視エージェントにおいてキーボード操作を暗号化することによるセキュリティで保護された入力を前記処理装置が受け取ること、
    前記セキュリティで保護された入力を前記アプリケーションに前記処理装置が転送すること
    をさらに備えたことを特徴とする請求項25に記載の方法。
  30. 前記監視エージェントは、互いに通信していることを特徴とする請求項25に記載の方法。
  31. 前記基本監視エージェントが、キーボード操作を暗号化することによるセキュリティで保護された入力から入力を受け取ることをさらに備えたことを特徴とする請求項25に記載の方法。
  32. 前記基本監視エージェントが、キーボード操作を暗号化することによるセキュリティで保護された入力を介して承認を受け取ることなしに、前記信頼されていない環境に対する変更を許可することを拒否することをさらに備えたことを特徴とする請求項25に記載の方法。
  33. 前記基本監視エージェントは、変更が承認されたパーティによって署名されたパッケージによって記述されていない限り、前記信頼されていない環境に対する該変更を許可することを拒否することをさらに備えたことを特徴とする請求項25に記載の方法。
  34. 前記監視エージェントの1つが、密封されたストレージを使用して、前記信頼されていない環境の中に常駐するオペレーティングシステムまたはアプリケーションに関する秘密を保持することをさらに備えたことを特徴とする請求項25に記載の方法。
  35. 前記監視エージェントは、前記オペレーティングシステムまたは前記アプリケーションが、前記秘密の所有者に合致するダイジェストを有さない限り、前記オペレーティングシステムまたは前記アプリケーションに前記秘密を明らかにすることを拒否することを特徴とする請求項34に記載の方法。
  36. 前記監視エージェントは、前記オペレーティングシステムまたは前記アプリケーションが、前記秘密を読み取ることができるダイジェストのリスト上に存在しない限り、前記オペレーティングシステムまたは前記アプリケーションに前記秘密を明らかにすることを拒否することを特徴とする請求項34に記載の方法。
  37. 正当なエンティティが前記秘密を要求しているかどうかを判定する所定の試験を前記処理装置が使用することをさらに備えたことを特徴とする請求項34に記載の方法。
  38. 前記所定の試験は、前記エンティティのスタックを検査し、前記スタックが正当なスタック内容を有することを確認することを備えたことを特徴とする請求項37に記載の方法。
  39. 前記監視エージェントの1つが、前記信頼されていない環境の状態を編集して、該信頼されていない環境をセキュリティで保護されているようにするか、または別の形で許容できるようにすることをさらに備えたことを特徴とする請求項25に記載の方法。
  40. 前記状態は、初期構成またはエラー報告オプションを備えたことを特徴とする請求項39に記載の方法。
  41. 前記基本監視エージェントが、前記信頼されていない環境の既知の良好な構成、または前記信頼された環境に属さない物理メモリをゼロにすることをさらに備えたことを特徴とする請求項25に記載の方法。
  42. 前記信頼されていない環境は、基本入出力システム(BIOS)、ファームウェア、またはローダを備えたことを特徴とする請求項25に記載の方法。
  43. カウンタに応答して前記基本監視エージェントが実行されるべきかどうかを前記処理装置が判定することをさらに備えたことを特徴とする請求項25に記載の方法。
  44. 前記カウンタは、信頼されていないメモリ編集動作の回数をカウントすることを特徴とする請求項43に記載の方法。
  45. 前記信頼されていない環境において実行されるアプリケーションにおける不整合を検出する複数の監視エージェントを前記処理装置が提供することをさらに備えたことを特徴とする請求項25に記載の方法。
  46. 前記信頼された環境において実行されるアプリケーションにおける不整合を検出する追加の監視エージェントを前記処理装置が提供することをさらに備えたことを特徴とする請求項45に記載の方法。
  47. プロセッサと、
    前記プロセッサに結合されたメモリと、
    オペレーティングシステム、ファームウェア、および基本入出力システム(BIOS)の少なくとも1つを有する、前記メモリ上のセキュリティで保護された信頼された環境と、
    前記メモリ上のセキュリティで保護されていない信頼されていない環境と、
    前記オペレーティングシステム、前記ファームウェア、および前記BIOSの1つと関連付けられ、前記信頼されていない環境において実行される前記プロセッサ上のアプリケーションに関連付けられ、前記信頼された環境において実行される前記プロセッサ上の少なくとも1つの監視エージェントと、
    前記信頼された環境において実行される前記プロセッサ上のネクサスと、
    前記信頼されていない環境を監視する前記信頼された環境において実行される前記プロセッサ上の少なくとも1つの基本監視エージェントと
    を備え、前記プロセッサがブートされると、各監視エージェントが、前記信頼されていない環境のイベントを検出し、検出されたイベントを前記基本監視エージェントに通知することよって信頼された環境の信頼性を信頼されていない環境に投影して、前記基本監視エージェントが、前記ネクサスにバインドされるか、リンクされるか、またはコンパイルされて、前記監視エージェントにより報告された信頼されていない環境のイベントを承認するか、または承認しないことを特徴とするシステム。
  48. 前記少なくとも1つの監視エージェントは、前記オペレーティングシステム、前記ファームウェア、および前記BIOSの1つと関連付けられ、前記信頼されていない環境において実行されるアプリケーションに関連付けられた能力を有する複数の監視エージェントを備えたことを特徴とする請求項47に記載のシステム。
  49. 前記信頼された環境は、第1のプロセッサアーキテクチャを実行し、前記信頼されていない環境は、第2のプロセッサアーキテクチャを実行し、
    前記第1のプロセッサアーキテクチャ上で実行される基本監視エージェントをさらに備えたことを特徴とする請求項47に記載のシステム。
  50. 前記信頼された環境と前記信頼されていない環境とは、同一のプロセッサ上で実行され、
    前記信頼された環境において実行される前記同一のプロセッサ上の基本監視エージェントをさらに備えたことを特徴とする請求項47に記載のシステム。
  51. 前記信頼された環境は、第1のプロセッサ上で実行され、前記信頼されていない環境は、第2のプロセッサ上で実行され、前記第1のプロセッサおよび前記第2のプロセッサは、信頼されたモードまたは信頼されていないモードで実行されることを特徴とする請求項47に記載のシステム。
  52. 前記信頼された環境の中に常駐する前記プロセッサ上のネクサスおよび基本監視エージェントをさらに備え、基本監視エージェントは、ネクサス上で実行されるユーザモードプロセッサであることを特徴とする請求項47に記載のシステム。
  53. 前記信頼された環境の中に常駐し、前記信頼されていない環境のオペレーティングシステムと同じ構築環境または関連する構築環境により、該構築環境を使用して、および該構築環境の中で開発された前記プロセッサ上の基本監視エージェントをさらに備えたことを特徴とする請求項47に記載のシステム。
  54. セキュリティ評価のための信頼されたコンピューティングベースの一部である前記信頼された環境の中に常駐する前記プロセッサ上の基本監視エージェントをさらに備えたことを特徴とする請求項47に記載のシステム。
  55. 前記信頼された環境の中に第1の部分が常駐し、物理的に遠隔のマシン上に第2の部分が常駐し、前記第1の部分と前記第2の部分がセキュリティで保護されたリンクで接続されている前記プロセッサ上の基本監視エージェントをさらに備えたことを特徴とする請求項47に記載のシステム。
  56. プロセッサと、
    前記プロセッサに結合されたメモリと、
    前記メモリ上のセキュリティで保護されていない信頼されていない環境と、
    前記信頼されていない環境において実行される前記プロセッサ上のオペレーティングシステムと、
    前記信頼されていない環境において実行される前記プロセッサ上のアプリケーションと、
    前記信頼されていない環境にとってアクセスできない前記メモリの一部分のセキュリティで保護された信頼された環境と、
    前記信頼された環境において実行される前記プロセッサ上の監視エージェントと、
    前記オペレーティングシステムに関連付けられ、前記監視エージェントおよび前記信頼されていない環境を監視する、前記信頼された環境において実行される前記プロセッサ上の基本監視エージェントと
    を備え、前記監視エージェントが、仮想マシン監視エージェントであり、前記プロセッサがブートされると、前記信頼されていない環境のイベントを検出し、検出されたイベントを前記基本監視エージェントに通知することよって信頼された環境の信頼性の投影を前記信頼されていない環境において実行される前記プロセッサ上のアプリケーションに提供して、前記基本監視エージェントが、前記監視エージェントにより報告された信頼されていない環境のイベントを承認するか、または承認しないことを特徴とするシステム。
  57. 前記基本監視エージェントは、仮想マシン基本監視エージェントであり、前記仮想マシン基本監視エージェントの中にオペレーティングシステムイメージを投影することを特徴とする請求項56に記載のシステム。
  58. 前記仮想マシン監視エージェントに関連付けられたアプリケーションをさらに備え、前記基本監視エージェントは、仮想マシン基本監視エージェントであり、前記アプリケーションに対する投影を提供することを特徴とする請求項56に記載のシステム。
JP2004232729A 2003-08-07 2004-08-09 信頼された環境から信頼されていない環境への信頼性の投影 Expired - Fee Related JP4726449B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/638,199 US7530103B2 (en) 2003-08-07 2003-08-07 Projection of trustworthiness from a trusted environment to an untrusted environment
US10/638,199 2003-08-07

Publications (3)

Publication Number Publication Date
JP2005056429A JP2005056429A (ja) 2005-03-03
JP2005056429A5 JP2005056429A5 (ja) 2007-09-27
JP4726449B2 true JP4726449B2 (ja) 2011-07-20

Family

ID=33552981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004232729A Expired - Fee Related JP4726449B2 (ja) 2003-08-07 2004-08-09 信頼された環境から信頼されていない環境への信頼性の投影

Country Status (21)

Country Link
US (1) US7530103B2 (ja)
EP (2) EP1505475B1 (ja)
JP (1) JP4726449B2 (ja)
KR (1) KR100949022B1 (ja)
CN (1) CN1581073B (ja)
AT (2) ATE539411T1 (ja)
AU (1) AU2004203528B9 (ja)
BR (1) BRPI0403261B1 (ja)
CA (1) CA2473487C (ja)
CO (1) CO5600214A1 (ja)
ES (2) ES2372989T3 (ja)
IL (1) IL162997A (ja)
MX (1) MXPA04007483A (ja)
MY (1) MY140973A (ja)
NO (1) NO20043285L (ja)
NZ (1) NZ534064A (ja)
PL (2) PL1505475T3 (ja)
RU (1) RU2390836C2 (ja)
SG (1) SG108962A1 (ja)
TW (1) TWI356298B (ja)
ZA (1) ZA200405646B (ja)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7730318B2 (en) * 2003-10-24 2010-06-01 Microsoft Corporation Integration of high-assurance features into an application through application factoring
US8619971B2 (en) * 2005-04-01 2013-12-31 Microsoft Corporation Local secure service partitions for operating system security
US7571475B2 (en) * 2005-04-05 2009-08-04 Cisco Technology, Inc. Method and electronic device for triggering zeroization in an electronic device
AU2006246278A1 (en) 2005-05-13 2006-11-16 Cryptomill Cryptographic control for mobile storage means
WO2006119641A2 (en) * 2005-05-13 2006-11-16 Cryptomill Content cryptographic firewall system
US20060294596A1 (en) * 2005-06-27 2006-12-28 Priya Govindarajan Methods, systems, and apparatus to detect unauthorized resource accesses
US7587724B2 (en) * 2005-07-13 2009-09-08 Symantec Corporation Kernel validation layer
US8984636B2 (en) * 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US20070028291A1 (en) * 2005-07-29 2007-02-01 Bit 9, Inc. Parametric content control in a network security system
US7895651B2 (en) * 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US8272058B2 (en) * 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US8799680B2 (en) 2005-09-15 2014-08-05 Microsoft Corporation Transactional sealed storage
US8201240B2 (en) * 2005-09-16 2012-06-12 Nokia Corporation Simple scalable and configurable secure boot for trusted mobile phones
US7761914B2 (en) * 2005-10-21 2010-07-20 Oracle International Corporation Method and apparatus for facilitating adjustment of an audit state in a computing environment
US8510596B1 (en) * 2006-02-09 2013-08-13 Virsec Systems, Inc. System and methods for run time detection and correction of memory corruption
US20070192826A1 (en) * 2006-02-14 2007-08-16 Microsoft Corporation I/O-based enforcement of multi-level computer operating modes
US8365294B2 (en) * 2006-06-30 2013-01-29 Intel Corporation Hardware platform authentication and multi-platform validation
WO2008018055A2 (en) * 2006-08-09 2008-02-14 Neocleus Ltd Extranet security
US20080046546A1 (en) 2006-08-18 2008-02-21 Parmar Pankaj N EFI based mechanism to export platform management capabilities to the OS
JP4918334B2 (ja) * 2006-11-13 2012-04-18 株式会社日立ソリューションズ 情報処理装置、及びシステム監視方法、並びにシステム監視方法をコンピュータに実行させるためのプログラム
EP2109841B1 (en) 2007-01-16 2017-09-20 Absolute Software Corporation A security module having a secondary agent in coordination with a host agent
WO2008114257A2 (en) * 2007-03-21 2008-09-25 Neocleus Ltd. Protection against impersonation attacks
WO2008114256A2 (en) * 2007-03-22 2008-09-25 Neocleus Ltd. Trusted local single sign-on
US20080263679A1 (en) * 2007-04-23 2008-10-23 Microsoft Corporation Storing information in closed computing devices
US8336107B2 (en) * 2007-04-27 2012-12-18 Angel Secure Networks, Inc. System and methods for defending against root
US8230412B2 (en) 2007-08-31 2012-07-24 Apple Inc. Compatible trust in a computing device
US8474037B2 (en) 2008-01-07 2013-06-25 Intel Corporation Stateless attestation system
EP2286333A4 (en) * 2008-06-05 2012-08-08 Neocleus Israel Ltd SAFE MULTIPURPOSE COMPUTER CLIENT
US8122514B2 (en) * 2008-07-30 2012-02-21 Microsoft Corporation Software enhanced trusted platform module
US8161285B2 (en) * 2008-09-26 2012-04-17 Microsoft Corporation Protocol-Independent remote attestation and sealing
US9166797B2 (en) * 2008-10-24 2015-10-20 Microsoft Technology Licensing, Llc Secured compartment for transactions
US20100106977A1 (en) * 2008-10-24 2010-04-29 Jan Patrik Persson Method and Apparatus for Secure Software Platform Access
US9805196B2 (en) * 2009-02-27 2017-10-31 Microsoft Technology Licensing, Llc Trusted entity based anti-cheating mechanism
CN101599112B (zh) * 2009-04-09 2010-11-03 广州市芯德电子技术有限公司 一种保护加密软件的方法
US9588803B2 (en) 2009-05-11 2017-03-07 Microsoft Technology Licensing, Llc Executing native-code applications in a browser
US8955108B2 (en) * 2009-06-17 2015-02-10 Microsoft Corporation Security virtual machine for advanced auditing
US8205257B1 (en) * 2009-07-28 2012-06-19 Symantec Corporation Systems and methods for preventing threats originating from a non-process based component hosted by a trusted process
US8352797B2 (en) * 2009-12-08 2013-01-08 Microsoft Corporation Software fault isolation using byte-granularity memory protection
US9323921B2 (en) 2010-07-13 2016-04-26 Microsoft Technology Licensing, Llc Ultra-low cost sandboxing for application appliances
EP2689543B1 (en) * 2011-03-21 2015-11-25 Telefonaktiebolaget L M Ericsson (PUBL) Supervision of wavelength division multiplexed optical networks
CN102142897B (zh) 2011-03-29 2014-08-20 华为技术有限公司 一种光网络单元的检测方法、装置和无源光网络系统
ES2436858T3 (es) * 2011-04-22 2014-01-07 Huawei Technologies Co., Ltd. Módulo de transmisión y recepción óptica por auto-inyección y sistema de red óptica pasiva de multiplexación por división en longitud de onda
US9495183B2 (en) 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
WO2013009302A1 (en) * 2011-07-12 2013-01-17 Hewlett-Packard Development Company , L.P. Computing device including a port and a guest domain
US8826440B2 (en) 2011-10-19 2014-09-02 Google Inc. Defensive techniques to increase computer security
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US9389933B2 (en) * 2011-12-12 2016-07-12 Microsoft Technology Licensing, Llc Facilitating system service request interactions for hardware-protected applications
US9208319B2 (en) 2011-12-15 2015-12-08 Microsoft Technology Licensing, Llc Code base partitioning system
WO2014046974A2 (en) 2012-09-20 2014-03-27 Case Paul Sr Case secure computer architecture
US9027031B2 (en) * 2012-10-15 2015-05-05 Vmware, Inc. Allowing inter-process communication via file system filter
DE102013000147A1 (de) 2013-01-03 2014-07-03 Giesecke & Devrient Gmbh Endgeräte-Chip mit Firewall
US9594638B2 (en) * 2013-04-15 2017-03-14 Amazon Technologies, Inc. Host recovery using a secure store
US9619238B2 (en) 2013-04-15 2017-04-11 Amazon Technologies, Inc. Remote attestation of host devices
RU2531861C1 (ru) 2013-04-26 2014-10-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса
CN104239820B (zh) * 2013-06-13 2017-11-03 普天信息技术研究院有限公司 一种安全存储设备
US9268948B2 (en) * 2013-06-24 2016-02-23 Intel Corporation Secure access enforcement proxy
WO2015038944A1 (en) 2013-09-12 2015-03-19 Virsec Systems, Inc. Automated runtime detection of malware
US10198572B2 (en) * 2013-09-17 2019-02-05 Microsoft Technology Licensing, Llc Virtual machine manager facilitated selective code integrity enforcement
KR102132218B1 (ko) * 2013-09-24 2020-07-09 삼성전자 주식회사 신뢰하는 실행 환경에서의 보안 도메인 관리 방법 및 장치
CN106687981B (zh) 2014-06-24 2020-09-01 弗塞克系统公司 用于自动化检测输入和输出验证和资源管理漏洞的系统和方法
US10114726B2 (en) 2014-06-24 2018-10-30 Virsec Systems, Inc. Automated root cause analysis of single or N-tiered application
US9628279B2 (en) * 2014-09-30 2017-04-18 Microsoft Technology Licensing, Llc Protecting application secrets from operating system attacks
US10325115B1 (en) * 2015-01-30 2019-06-18 EMC IP Holding Company LLC Infrastructure trust index
US10394793B1 (en) 2015-01-30 2019-08-27 EMC IP Holding Company LLC Method and system for governed replay for compliance applications
US9727591B1 (en) 2015-01-30 2017-08-08 EMC IP Holding Company LLC Use of trust characteristics of storage infrastructure in data repositories
US9842065B2 (en) * 2015-06-15 2017-12-12 Intel Corporation Virtualization-based platform protection technology
US9858119B2 (en) * 2015-12-08 2018-01-02 International Business Machines Corporation Resource management for untrusted programs
CA3027728A1 (en) 2016-06-16 2017-12-21 Virsec Systems, Inc. Systems and methods for remediating memory corruption in a computer application
US10482034B2 (en) * 2016-11-29 2019-11-19 Microsoft Technology Licensing, Llc Remote attestation model for secure memory applications
TWI617940B (zh) * 2016-12-01 2018-03-11 財團法人資訊工業策進會 資料保護方法與資料保護系統
US20190042797A1 (en) * 2017-12-28 2019-02-07 Intel Corporation Security Hardware Access Management
GB201801679D0 (en) 2018-02-01 2018-03-21 Microsoft Technology Licensing Llc Database transaction log writing and integrity checking
US11615188B2 (en) 2018-05-02 2023-03-28 Hewlett-Packard Development Company, L.P. Executing software
US10735308B2 (en) * 2018-12-21 2020-08-04 Cisco Technology, Inc. Attestation based routing
CN109922056B (zh) 2019-02-26 2021-09-10 创新先进技术有限公司 数据安全处理方法及其终端、服务器
CN116680037A (zh) * 2019-05-05 2023-09-01 创新先进技术有限公司 数据隔离方法及装置、电子设备
CN110837632B (zh) * 2019-09-29 2023-07-25 深圳市火乐科技发展有限公司 安全检测方法、智能投影仪及相关产品
RU2750626C2 (ru) * 2019-11-27 2021-06-30 Акционерное общество "Лаборатория Касперского" Система и способ управления доступом в электронных блоках управления транспортными средствами
US11941155B2 (en) 2021-03-15 2024-03-26 EMC IP Holding Company LLC Secure data management in a network computing environment
CN113553231B (zh) * 2021-07-01 2023-08-22 江苏电力信息技术有限公司 一种基于安全芯片的嵌入式操作系统运行环境监控方法
US11593490B2 (en) * 2021-07-28 2023-02-28 Dell Products, L.P. System and method for maintaining trusted execution in an untrusted computing environment using a secure communication channel
CN116109521B (zh) * 2023-04-07 2023-07-14 北京建筑大学 局部对抗性攻击启发式防御方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182560A (ja) * 2000-12-12 2002-06-26 Hitachi Ltd 暗号処理機能を備えた情報サーバ装置
JP2002251374A (ja) * 2000-12-20 2002-09-06 Fujitsu Ltd 情報管理システム、情報管理方法、およびその方法をコンピュータに実行させるプログラム、並びにそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003099144A (ja) * 2001-09-20 2003-04-04 Fujitsu Frontech Ltd 携帯用電子機器、キーデータ処理方法、記録媒体及びプログラム
JP2004535641A (ja) * 2001-07-09 2004-11-25 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 特権モードのドライバ認証を備えたソフトウエア・モデム

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5235642A (en) * 1992-07-21 1993-08-10 Digital Equipment Corporation Access control subsystem and method for distributed computer system using locally cached authentication credentials
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5961656A (en) * 1995-10-31 1999-10-05 Sun Microsystems, Inc. Method and apparatus for testing memory devices under load
US6185678B1 (en) * 1997-10-02 2001-02-06 Trustees Of The University Of Pennsylvania Secure and reliable bootstrap architecture
US6408391B1 (en) 1998-05-06 2002-06-18 Prc Inc. Dynamic system defense for information warfare
US6397242B1 (en) 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6496847B1 (en) 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6553403B1 (en) 1998-06-03 2003-04-22 International Business Machines Corporation System, method and computer program product for monitoring in a distributed computing environment
US6505300B2 (en) * 1998-06-12 2003-01-07 Microsoft Corporation Method and system for secure running of untrusted content
US6304262B1 (en) 1998-07-21 2001-10-16 Raytheon Company Information security analysis system
US6308208B1 (en) 1998-09-30 2001-10-23 International Business Machines Corporation Method for monitoring network distributed computing resources using distributed cellular agents
US6138239A (en) * 1998-11-13 2000-10-24 N★Able Technologies, Inc. Method and system for authenticating and utilizing secure resources in a computer system
US6330588B1 (en) 1998-12-21 2001-12-11 Philips Electronics North America Corporation Verification of software agents and agent activities
EP1055990A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company Event logging in a computing platform
JP2000347866A (ja) * 1999-06-04 2000-12-15 Nec Corp 分散システムとアクセス制御装置及び方法、並びにアクセス制御用プログラムを記録した記録媒体
US7152165B1 (en) * 1999-07-16 2006-12-19 Intertrust Technologies Corp. Trusted storage systems and methods
US6823456B1 (en) * 1999-08-25 2004-11-23 International Business Machines Corporation System and method for providing trusted services via trusted server agents
EP1085396A1 (en) * 1999-09-17 2001-03-21 Hewlett-Packard Company Operation of trusted state in computing platform
US6775536B1 (en) * 1999-11-03 2004-08-10 Motorola, Inc Method for validating an application for use in a mobile communication device
US7134141B2 (en) 2000-06-12 2006-11-07 Hewlett-Packard Development Company, L.P. System and method for host and network based intrusion detection and response
GB0020441D0 (en) * 2000-08-18 2000-10-04 Hewlett Packard Co Performance of a service on a computing platform
US6938164B1 (en) * 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
CN1295904C (zh) * 2001-01-10 2007-01-17 思科技术公司 计算机安全和管理系统
US7313822B2 (en) 2001-03-16 2007-12-25 Protegrity Corporation Application-layer security method and system
EP1273955A1 (de) 2001-07-04 2003-01-08 MUETEC Automatisierte Mikroskopie und Messtechnik GmbH Optische Verschlussvorrichtung
US7131141B1 (en) * 2001-07-27 2006-10-31 At&T Corp. Method and apparatus for securely connecting a plurality of trust-group networks, a protected resource network and an untrusted network
GB2378272A (en) * 2001-07-31 2003-02-05 Hewlett Packard Co Method and apparatus for locking an application within a trusted environment
CA2460492A1 (en) 2001-09-28 2003-04-10 British Telecommunications Public Limited Company Agent-based intrusion detection system
US7243230B2 (en) * 2001-11-16 2007-07-10 Microsoft Corporation Transferring application secrets in a trusted operating system environment
US7082507B1 (en) * 2002-04-18 2006-07-25 Advanced Micro Devices, Inc. Method of controlling access to an address translation data structure of a computer system
US7359962B2 (en) * 2002-04-30 2008-04-15 3Com Corporation Network security system integration
US7634806B2 (en) * 2002-05-30 2009-12-15 Microsoft Corporation Peer assembly inspection
US7103914B2 (en) * 2002-06-17 2006-09-05 Bae Systems Information Technology Llc Trusted computer system
US20040117318A1 (en) * 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
US20040128544A1 (en) * 2002-12-31 2004-07-01 International Business Machines Corporation Method and system for aligning trust relationships with namespaces and policies
US7788495B2 (en) * 2003-06-03 2010-08-31 Microsoft Corporation Systems and methods for automated configuration of secure web site publishing
US7380136B2 (en) * 2003-06-25 2008-05-27 Intel Corp. Methods and apparatus for secure collection and display of user interface information in a pre-boot environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182560A (ja) * 2000-12-12 2002-06-26 Hitachi Ltd 暗号処理機能を備えた情報サーバ装置
JP2002251374A (ja) * 2000-12-20 2002-09-06 Fujitsu Ltd 情報管理システム、情報管理方法、およびその方法をコンピュータに実行させるプログラム、並びにそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2004535641A (ja) * 2001-07-09 2004-11-25 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 特権モードのドライバ認証を備えたソフトウエア・モデム
JP2003099144A (ja) * 2001-09-20 2003-04-04 Fujitsu Frontech Ltd 携帯用電子機器、キーデータ処理方法、記録媒体及びプログラム

Also Published As

Publication number Publication date
ZA200405646B (en) 2005-05-25
EP1505475A3 (en) 2005-03-09
RU2004124072A (ru) 2006-01-27
BRPI0403261A (pt) 2005-05-31
AU2004203528B9 (en) 2010-03-04
CN1581073B (zh) 2012-03-21
BRPI0403261B1 (pt) 2017-06-13
SG108962A1 (en) 2005-02-28
CA2473487C (en) 2013-09-17
ATE539411T1 (de) 2012-01-15
KR20050016202A (ko) 2005-02-21
EP1916614B1 (en) 2011-10-26
EP1505475A2 (en) 2005-02-09
NO20043285L (no) 2005-02-08
JP2005056429A (ja) 2005-03-03
US20050033980A1 (en) 2005-02-10
NZ534064A (en) 2005-08-26
EP1505475B1 (en) 2011-12-28
PL1505475T3 (pl) 2012-05-31
TWI356298B (en) 2012-01-11
MXPA04007483A (es) 2005-06-08
MY140973A (en) 2010-02-12
ES2376433T3 (es) 2012-03-13
TW200519583A (en) 2005-06-16
KR100949022B1 (ko) 2010-03-23
IL162997A (en) 2010-05-17
US7530103B2 (en) 2009-05-05
AU2004203528A1 (en) 2005-02-24
CA2473487A1 (en) 2005-02-07
ES2372989T3 (es) 2012-01-30
CO5600214A1 (es) 2006-01-31
RU2390836C2 (ru) 2010-05-27
AU2004203528B2 (en) 2010-01-28
EP1916614A1 (en) 2008-04-30
CN1581073A (zh) 2005-02-16
PL1916614T3 (pl) 2012-03-30
ATE530991T1 (de) 2011-11-15

Similar Documents

Publication Publication Date Title
JP4726449B2 (ja) 信頼された環境から信頼されていない環境への信頼性の投影
US11514159B2 (en) Method and system for preventing and detecting security threats
KR101176646B1 (ko) 상태 검증을 사용하는 보호된 오퍼레이팅 시스템 부팅을 위한 시스템 및 방법
US7546587B2 (en) Run-time call stack verification
Pozzo et al. A model for the containment of computer viruses

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070809

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110314

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4726449

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140422

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

LAPS Cancellation because of no payment of annual fees