JP2005129066A - オペレーティングシステムリソース保護 - Google Patents

オペレーティングシステムリソース保護 Download PDF

Info

Publication number
JP2005129066A
JP2005129066A JP2004310057A JP2004310057A JP2005129066A JP 2005129066 A JP2005129066 A JP 2005129066A JP 2004310057 A JP2004310057 A JP 2004310057A JP 2004310057 A JP2004310057 A JP 2004310057A JP 2005129066 A JP2005129066 A JP 2005129066A
Authority
JP
Japan
Prior art keywords
application program
computer
application
access
resource
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.)
Pending
Application number
JP2004310057A
Other languages
English (en)
Other versions
JP2005129066A5 (ja
Inventor
Edward J Praitis
ジェイ.プレイティス エドワード
Freddie L Aaron
エル.アーロン フレディ
Jonathan C Lew
シー.ルー ジョナサン
Jude Jacob Kavalam
ジェイコブ カバラム ジュード
Rosemarie Fitzsimons
フィッツシモンズ ローズマリー
Timothy D Noonan
ディー.ヌーナン ティモシー
Valeriy V Tsuryk
ブイ.ツリク バレリー
David B Probert
ビー.プロバート デビッド
Dragos C Sambotin
シー.サンボティン ドラゴス
Genevieve Fernandes
フェルナンデス ジュヌビエーブ
Eric Li
リ エリック
John Austin Rector
オースティン レクター ジョン
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 JP2005129066A publication Critical patent/JP2005129066A/ja
Publication of JP2005129066A5 publication Critical patent/JP2005129066A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/54Monitoring 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 adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】 インストールされているアプリケーションプログラムが、その上書きされたファイルにアクセスしようと試みた場合にクラッシュする問題を解決する。
【解決手段】 本発明の実施形態は、アプリケーションプログラムまたはグループのアプリケーションプログラムのコンポーネント群に関連付けられた永続する個々のIDを使用して、オペレーティングシステムが、コンピューティングシステムにインストール済みの異なるアプリケーションプログラムまたは異なるグループのアプリケーションプログラムを識別し、区別することができるようにする。アプリケーションプログラムの各コンポーネントに関連付けられたIDにより、そのアプリケーションプログラムの特定、および削除またはアンインストールが可能になる。また、IDにより、アプリケーションプログラムのリソースの分離、およびオペレーティングシステムリソースの保護が可能になる。
【選択図】 図1

Description

本発明は、コンピュータのためのオペレーティングシステムの分野に関する。詳細には、本発明は、オペレーティングシステムによりアプリケーションのインストール、実行、および削除を管理することに関する。
オペレーティングシステムは、使いやすさおよび信頼性を向上させることにおいて劇的に進歩したが、アプリケーションプログラム群のインストール、管理、および削除(すなわち、アンインストール)に関連するユーザ体験は、依然として改善を必要としている。例えば、アプリケーションプログラムが、インストール中にシステム設定を誤って構成する、または別のアプリケーションプログラムが必要とするファイルを上書きする可能性がある。また、ユーザが、アドウェアやスパイウェアなどの望ましくないアプリケーションをアンインストールすることも困難であり得る。多くのシステムクラッシュおよび性能の低下(例えば、遅い起動時間)も、アプリケーション問題に起因する可能性がある。例えば、次の状況により、アプリケーションプログラム、および、場合により、基礎にあるオペレーティングシステムに障害が生じる可能性がある。すなわち、アプリケーションの不完全なアンインストール、アプリケーションプログラムをアンインストールする際の過度な削除(over deletion)、および不適切に格納されたファイルである。
したがって、アプリケーション影響を管理するための改良されたシステムおよび方法が、以上の欠点およびその他の欠点の1つまたは複数に対処するのに所望される。
一部の現在のオペレーティングシステムでは、新たにインストールされたアプリケーションプログラムが、その新たにインストールされたアプリケーションプログラムによって必要とされるより古いバージョンまたはより新しいバージョンで、共有ダイナミックリンクライブラリ(DLL)を上書きする可能性がある。より古いファイルおよびより新しいファイルが上書きされたファイルと不適合である場合、上書きされたファイルに依存する現在、インストールされているアプリケーションプログラムが、その上書きされたファイルにアクセスしようと試みた場合にクラッシュする可能性がある。
本発明の実施形態には、オペレーティングシステムが自らのリソースを保護することを可能にするための方法が含まれる。一実施形態では、本発明は、アプリケーションプログラムまたはアプリケーションプログラムのグループに関連する永続する個別のIDを使用して、オペレーティングシステムが、異なるアプリケーションプログラム、またはアプリケーションプログラムのグループおよびアプリケーションプログラムのコンポーネントを識別し、区別することができるようにすることを含む。
オペレーティングシステムまたはその他のプログラムは、アプリケーションプログラムのそれぞれに関連するIDを介してアプリケーションプログラム群を操作する。例えば、オペレーティングシステムは、IDを使用して(1)クリーンなアンインストールを確実にし、(2)アプリケーションが、許可を有していないサービスにアクセスする、または許可を有していないアクションを実行することを防止し、(3)アプリケーションを互いによりよく分離するようにシステムリソースを仮想化し、(4)アプリケーションインパクトロールバックを可能にし(例えば、ファイルタイプの関連付けをアプリケーションインストール前の状態に戻し)、(5)ファイルおよびレジストリの所有権の追跡を可能にする。保護メカニズムには、読み取り専用アクセスを提供すること、変更をログ記録してロールバックを可能にすること、アプリケーション別、およびユーザ別にリソースを仮想化することが含まれるが、以上には限定されない。例えば、オペレーティングシステムは、書き込み保護されたファイルへの書き込みアクセスを要求したアプリケーションプログラム用に、書き込み保護されたファイルのコピーを作成する。
本発明の一態様によれば、方法は、コンピューティングシステム上のリソースへのアクセスをアプリケーションプログラムに許可する。方法は、要求の中で識別されたリソースへのアクセスを求める要求をアプリケーションプログラムから受け取ることを含む。また、方法は、アプリケーションプログラムのアプリケーション識別子を判定することも含む。方法は、判定されたアプリケーション識別子および識別されたリソースの関数(function)としてマニフェストからの特権を識別することを含む。マニフェストは、識別されたリソースにアクセスすることに関してアプリケーションプログラムが有する特権を示す。また、方法は、識別された特権に応じて識別されたリソースへのアクセスをアプリケーションプログラムに許可することも含む。
本発明の別の態様によれば、1つまたは複数のコンピュータ可読媒体が、リソースへのアクセスをアプリケーションプログラムに許可するためのコンピュータ実行可能コンポーネント群を有する。コンポーネント群には、要求の中で識別されたリソースへのアクセスを求める要求をアプリケーションプログラムから受け取るインターフェースモジュールが含まれる。コンポーネント群には、アプリケーションプログラムが、アプリケーションプログラム、およびアプリケーションプログラムのコンポーネントを他のアプリケーションプログラム群から区別するためのアプリケーション識別子を判定するIDモジュールも含まれる。コンポーネント群には、IDモジュールおよび識別されたリソースによって判定されたアプリケーション識別子の関数として、マニフェストからの特権を識別するフィルタモジュールも含まれる。マニフェストは、識別されたリソースにアクセスすることに関してアプリケーションプログラムが有する特権を示す。コンポーネント群には、フィルタモジュールによって識別された特権に応じて、識別されたリソースへのアクセスをアプリケーションプログラムに許可するアクセス制御モジュールも含まれる。
本発明のさらに別の態様によれば、コンピュータ可読媒体が、複数のリソースにアクセスするアプリケーションプログラムのアクセス権を規定するマニフェストを表すデータ構造を格納する。データ構造は、アプリケーションプログラムに対応するIDを表す値を格納する第1のフィールドを含む。データ構造は、アプリケーションプログラムに関連するリソースのリストを格納する第2のフィールドも含む。データ構造は、第1のフィールドからのID、および第2のフィールドの中に格納されたリソースのリストに関連する特権を格納する第3のフィールドをさらに含む。特権は、リソースのリストの中の各リソースにアクセスするアプリケーションプログラムのアクセス権を定義する。
本発明のさらに別の態様によれば、システムが、システムリソースへのアクセスをアプリケーションに許可する。システムは、マニフェストを格納するメモリ領域を含む。マニフェストは、アプリケーション識別子およびリソースを特権にマップする。アプリケーション識別子は、アプリケーションプログラムに関連付けられている。システムは、コンピュータ実行可能命令を実行して、リソースを求めるアプリケーションプログラムからの要求に応答して、アプリケーション識別子およびリソースの関数としてメモリ領域の中に格納されているマニフェストからの特権を識別するように構成されたプロセッサも含む。プロセッサは、コンピュータ実行可能命令を実行して、識別された特権に応じてリソースへのアクセスをアプリケーションプログラムに許可するようにさらに構成される。
本発明の別の態様によれば、方法は、コンピューティングシステムから特定のアプリケーションプログラムをアンインストールする。この特定のアプリケーションプログラムには、少なくとも1つのファイルが関連付けられている。この特定のアプリケーションプログラムは、コンピューティングシステムにインストールされている複数のアプリケーションプログラムの1つである。方法は、特定のアプリケーションプログラムをアンインストールする要求を受け取ることを含む。方法は、特定のアプリケーションプログラムに関連する識別子を判定することも含む。方法は、判定された識別子を介して、複数のアプリケーションプログラムの特定のアプリケーションプログラムにだけ関連するファイルを識別することをさらに含む。特定されたファイルには、判定された識別子が関連付けられている。方法は、識別されたファイルを削除することも含む。
代替として、本発明は、他の様々な方法および装置を含むことも可能である。
その他の特徴は、一部は明白であり、一部は以下に指摘する。
対応する符合は、すべての図面で対応する部分を示している。
一実施形態では、本発明は、リソースを保護するための方法を提供する。詳細には、オペレーティングシステムの機能が、ファイルおよびシステム設定の保護の宣言を可能にする。宣言された保護は、アプリケーションライフサイクル中にオペレーティングシステムが使用して、アプリケーションプログラムのインストール、実行、修理、および削除を管理し、追跡し、予測し、軽減することが可能なアクションのセットすべてにわたって、オペレーティングシステムまたは他のアプリケーションプログラムによって永続させられ、実施される。リソース保護は、極めて重要なシステムデータ(例えば、ファイルの関連付け)の参照の完全性を提供し、各アプリケーションプログラムによるリソースへのアクセスを追跡し、分離することによってアプリケーション脆弱性問題に対処して信頼性および整合性を向上させ、システムおよびアプリケーションによる保護されたリソースとの対話の影響を管理する。例えば、本発明の実施形態を使用して、ウイルスまたはワームに感染しているアプリケーションに対するセキュリティを提供することができる。本発明の実施形態は、任意のオペレーティングシステムモデルで機能して、拡張性を提供し、統合を可能にする。本発明の実施形態のリソース保護戦略および実施により、アプリケーションインストーラが、極めて重要なシステムリソースを偶然に、または悪意で変更するまたは置き換えることも防止される。本発明の実施形態を、システムリソースを保護するための他の戦略と組み合わせることもできる。例えば、コンピューティングシステムは、ロックダウン(lock down)、分離、仮想化、トランザクション、およびサンドボックス化(sandboxing)の組合せを含む戦略を実施することができる。
図1を参照すると、オペレーティングシステム102の典型的な実施形態が、マニフェスト108に従ったリソースへのアクセスをアプリケーションプログラム104に提供する。リソースには、ファイル、フォルダ、プロセス、スレッド、システム設定、名前付きオブジェクト、アプリケーションプログラミングインターフェース(API)、特定のコードパス、実行可能ルーチンのライブラリ、オペレーティングシステムプロパティ値、およびオペレーティングシステムリソースが含まれるが、以上には限定されない。名前付きオブジェクトには、英字データ、数字データ、英数字データ、または非人間可読(non−human readable)(例えば、グローバル一意識別子)データで識別されたあらゆるオブジェクトが含まれる。例えば、ユーザIDで保護することができるあらゆるオブジェクトを、アプリケーションID(例えば、ネットワークソケット)で保護することができる。例えば、いくつかのAPIおよびコードパスが、メール送信能力を提供し、それらのAPIおよびコードパスへのアクセスを制限することができる。別の例では、システムを再起動する能力が制限される。リソースには、識別の名前付きオブジェクトだけでなく、システムの名前空間(例えば、「名前」自体)も含まれる。例えば、オブジェクトが作成される前に名前を確保すること、または「不法占拠すること(squatting)」により、脆弱性とセキュリティ問題がともにもたらされる。
一実施形態では、アプリケーションプログラム(例えば、アプリケーションプログラム104)によって提示されたマニフェスト108のようなマニフェストにより、アプリケーションプログラムが有することを所望する特権が示される。動作の際、オペレーティングシステムは、要求された特権のいくつかを許可する、または拒否することができ、オペレーティングシステムがアプリケーションプログラムに関して保持する計算されたマニフェスト、または有効なマニフェストがもたらされる。
アプリケーションプログラム104のような各アプリケーションプログラムに、アプリケーション識別子が割り当てられて、アプリケーションプログラムが他のアプリケーションプログラム群から区別される。一実施形態では、アプリケーション識別子は、アプリケーションプログラムのグループに割り当てられて、アプリケーションプログラムのグループ内の各アプリケーションプログラムが、リソースに対して、そのグループ内の他のアプリケーションプログラム群と同一のアクセスまたは特権を有することを可能にする。図1では、アプリケーションプログラム104に、識別子ID1が関連付けられている。オペレーティングシステム102は、リソースA106のようなリソースにアクセスしようとするアプリケーションプログラム104による試みをインターセプト(intercept)する。オペレーティングシステム102は、マニフェスト108を調べて、リソースA106に関してアプリケーションプログラム104に許された特権またはアクセスを判定する。この例では、メモリ領域が、マニフェスト108を格納している。マニフェスト108は、アプリケーション識別子およびリソースを特権にマップする。マニフェスト108は、アプリケーション識別子(例えば、ID1)およびリソース(例えば、リソースA106)の関数として特権(例えば、特権X)を格納している。特権Xは、例えば、読み取り専用アクセスに対応することが可能である。オペレーティングシステム102は、識別された特権に応じて、リソースA106へのアクセスをアプリケーション識別子に提供する。
一実施形態では、オペレーティングシステム102は、コンピュータ可読媒体上に1つまたは複数のコンピュータ実行可能コンポーネントを格納しているか、またはコンピュータ可読媒体上の1つまたは複数のコンピュータ実行可能コンポーネントにアクセスできる。オペレーティングシステム102に関連するプロセッサが、そのコンピュータ実行可能コンポーネント、または他のコンピュータ実行可能命令を実行して、リソースを求めるアプリケーションプログラム104からの要求に応答して、アプリケーション識別子およびリソースの関数としてメモリ領域の中に格納されているマニフェスト108からの特権を識別するように構成される。プロセッサは、コンピュータ実行可能命令を実行して、識別された特権に応じて、リソース、またはリソースのコピーへのアクセスをアプリケーションプログラム104に許可するようにさらに構成される。
詳細には、コンピュータ実行可能コンポーネント群は、リソースへのアクセスをアプリケーションプログラム104に許可する。図1の特定の実施形態では、コンポーネント群には、インターフェースモジュール110、IDモジュール112、フィルタモジュール114、およびアクセス制御モジュール116が含まれる。図1のモジュール群は、オペレーティングシステム102とは別個に、独立して存在することが可能である。さらに、本発明の実施形態の機能および構造は、任意の数のモジュール、コンポーネントなどに編成することができる。例えば、モジュール群を分散させることができる。
インターフェースモジュール110は、要求の中で識別されたリソースへのアクセスを求める要求をアプリケーションプログラム104から受け取る。一実施形態では、インターフェースモジュール110は、次の1つまたは複数へのアクセスを求める要求をアプリケーションプログラム104から受け取る。すなわち、ファイル、ディレクトリ、およびシステム設定(例えば、レジストリエントリ)である。IDモジュール112は、アプリケーションプログラム104のアプリケーション識別子を判定して、アプリケーションプログラム104、およびアプリケーションプログラム104のコンポーネントを他のアプリケーションプログラム群から区別する。一実施形態では、IDモジュール112は、アプリケーションプログラムのグループのアプリケーション識別子(例えば、分離識別子)を判定する。アプリケーションプログラム104は、複数のファイルおよびシステム設定を含むことが可能であるため、IDモジュール112は、アプリケーションプログラム104を表す複数のファイルおよびシステム設定のそれぞれに関連するアプリケーション識別子を判定する。フィルタモジュール114は、IDモジュール112によって判定されたアプリケーション識別子、および識別されたリソースの関数として、マニフェスト108からの特権を識別する。マニフェスト108は、識別されたリソースにアクセスすることに関してアプリケーションプログラム104が有する特権を示す。アクセス制御モジュール116は、フィルタモジュール114によって識別された特権に応じて、識別されたリソースへのアクセスをアプリケーションプログラム104に許可する。一実施形態では、構成モジュールが、アプリケーションプログラム104に関連するインストール媒体からアプリケーションマニフェストを受け取る。アプリケーションマニフェストは、アプリケーションプログラム104に関連するファイルおよびリソースの変更(例えば、システム設定)のリストを表す。構成モジュールは、アプリケーションマニフェストの中に含まれるデータでオペレーティングシステムマニフェストを更新することができる。代替として、構成モジュールは、インストールされた各アプリケーションに関する各アプリケーションマニフェストを保持してもよい。
マニフェスト
マニフェスト108は、アプリケーションプログラム104、またはオペレーティングシステム102のようなオペレーティングシステムに関連するアイテム(例えば、ファイルおよびリソースの変更)またはオブジェクトのリストを含む。代替として、アプリケーションプログラム104に関連するアイテムのリストは、各リソースプロバイダに関する構成ファイルまたはストアの中に格納してもよい。別の実施形態では、オブジェクトの作成者が、オブジェクト上で直接にアクセス特権を規定する。
マニフェスト108は、アプリケーションプログラム104またはオペレーティングシステム102に関連するリソースに関する特権のリストも含むことが可能である。例えば、アプリケーションプログラム104の作成者が、マニフェストの中で、オペレーティングシステム102のリソースに対する特権、および/またはアプリケーションプログラム104が作成することができるリソースに対する特権を規定することができる。代替として、マニフェストは、アプリケーションプログラム104に関連するID情報を単に格納してもよい。別の例では、インストールされるべきアプリケーションプログラム104を格納しているインストール媒体が、アプリケーションプログラム104に関連するアイテム、およびアプリケーション専用リソースに関連する特権をリストするアプリケーションマニフェストも格納していることが可能である。アプリケーションプログラム104の展開を担当するサードパーティアプリケーションベンダまたは担当者が、アプリケーションマニフェストを作成してもよい。別の例では、オペレーティングシステムマニフェストが、オペレーティングシステム102にインストールされたアプリケーションプログラム群に関連するアイテムのリストを格納する。オペレーティングシステムマニフェストは、オペレーティングシステム102に関連するコンポーネントのリストをさらに格納することが可能である。一実施形態では、オペレーティングシステムマニフェストは、オペレーティングシステムコンポーネントまたはインストール済みのアプリケーションプログラムのそれぞれに関する保護動作の集約を表す。集約されたマニフェストは、各ファイル、各ディレクトリ、および各システム設定に関して許される対話のタイプを定義する。
オペレーティングシステム102は、自らがどのように保護されることを望むか、オペレーティングシステムコンポーネント群とその他のコンポーネント群がどのように対話し、システムを拡張することができるかを規定するという点で、自己記述型である。本発明の一実施形態では、オペレーティングシステム102の一部であるすべてのアイテムまたはリソース(例えば、ファイル、ディレクトリ、レジストリキーおよびレジストリ値、ドライバなど)に関して、オペレーティングシステム102により実行するべき保護動作のタイプを宣言することが可能である。
マニフェスト108は、コンピュータ可読媒体上のデータ構造として格納される。マニフェスト108は、複数のリソースにアクセスするアプリケーションプログラム104のようなアプリケーションプログラムのアクセス権を規定する。図1の典型的なデータ構造は、アプリケーションプログラム104に対応するIDを表す値(例えば、ID1)を格納する第1のフィールドを含む。例えば、第1のフィールドは、次の1つまたは複数に基づく値を格納することができる。すなわち、バージョン、中央処理装置、および公開キーである。データ構造は、アプリケーションプログラム104に関連するリソース(例えば、リソースA106)のリストを格納する第2のフィールドも含む。例えば、第2のフィールドは、次のようなリソースのリストを格納することができる。すなわち、ファイル、ディレクトリ、およびシステム設定である。データ構造は、第1のフィールドからのID、および第2のフィールドの中に格納されたリソースのリストに関連する特権(例えば、特権X)、またはインテント(intent)の他の宣言を格納する第3のフィールドも含む。特権は、リソースのリストの中の各リソースにアクセスするアプリケーションプログラム104のアクセス権を定義する。
アプリケーションの作成者は、信頼情報セクションを使用してマニフェスト108のようなマニフェストを作成することができる。アプリケーション作成者は、厳密な名前をアプリケーションに割り当て、アプリケーションのマニフェストに署名する(デジタル署名またはデジタル証明書を使用して)こともできる。アプリケーションがインストールされる際、1つまたは複数の証明書ストアを検査して、アプリケーションマニフェストの証明書および署名を検証するようにオペレーティングシステム102を構成することができる。一実施形態では、署名済みのドライバパッケージだけがインストールされる。例えば、企業が、独自の証明書ストアを有することが可能である。同様に、特定のシステムが、証明書ストアを有することも可能であり、その証明書ストアに照らしてアプリケーションマニフェストを検証することができる。検証が済むと、マニフェストデータ、およびあらかじめ構成された既定のポリシーに基づいて信頼アクションを管理するようにオペレーティングシステム102を構成することができる。
マニフェスト108のようなマニフェストは、いくつかの仕方で署名することができる。例えば、マニフェストは、証明書がストアの中に検証のために保持されて、Authenticodeプロセスを使用して署名することができる。ドメイン管理者が、自身の特定の企業またはドメインのためにマニフェストに署名することもできる。例えば、展開マニフェストを使用して、いずれのアプリケーションが特定のインストールのために署名されるかを規定することができる。ローカル管理者が、マニフェストに署名することもできる。それぞれの個別のマシンが、署名キーを有するように構成することもできる。
一実施形態では、マニフェスト108は、脆弱な名前(weak name)と厳密な名前(strong name)をともに含むことが可能である。脆弱な名前は、従来のアプリケーションファイル名に相当することが可能であり、厳密な名前は、ファイル名、バージョン番号、カルチャ(culture)、および公開キーに相当することが可能である。別の実施形態では、厳密な名前は、モジュールが署名した(module signed)秘密キーのハッシュであることが可能である。さらに別の実施形態では、厳密な名前は、公開キートークンであることが可能である。
例えば、以下のXMLが、マニフェスト108に関する1つの厳密な名前を表すことが可能である。
Figure 2005129066
以下は、マニフェスト108の一実施形態の信頼情報セクションの見本である。
Figure 2005129066
マニフェスト108を有さないアプリケーションの場合、オペレーティングシステム102が、事前定義された既定に従って要求された特権を有するマニフェスト108を作成するように構成されることが可能である。例えば、マニフェスト108は、ユーザアクセスの最小限の特権レベルを要求するように構成することができる。
代替として、またはさらに、オペレーティングシステムは、アプリケーションのアクションを観察し、アプリケーションが実際に使用する特権だけを提供するようにマニフェストをカスタマイズすることもできる。アプリケーションの数回の実行後、マニフェストはロックされ、マニフェストによって許可される特権を拡張するのに、明示的なユーザ入力または管理者ポリシーが要求される。一部の実施形態では、脆弱なアプリケーションが、インストール直後に侵害される可能性は、後にアプリケーションが侵害される可能性と比べて比較的低い。アプリケーションが、マニフェストがロックされた後に侵害された場合、侵害されたアプリケーションの動作は、マニフェストによって許される動作に制限され、その動作は、アプリケーションの侵害を受けていない動作によって決まっている。
次に、アプリケーションIDを使用してリソースを保護するための方法を説明する。
アクセス制御を提供すること
次に、図2を参照すると、典型的な流れ図が、アクセス制御方法の動作を示している。一実施形態では、本発明は、コンピューティングシステム上のリソースへのアクセスをアプリケーションプログラムに与える。方法は、202で、要求の中で識別されたリソースへのアクセスを求める要求をアプリケーションプログラムから受け取ること、204で、アプリケーションプログラムのアプリケーション識別子を判定すること、206で、判定されたアプリケーション識別子、および識別されたリソースの関数としてマニフェスト(例えば、オペレーティングシステムマニフェストおよび/またはアプリケーションプログラムマニフェスト)からの特権を識別すること、および208で、識別された特権に応じて識別されたリソースへのアクセスをアプリケーションプログラムに許可することを含む。一実施形態では、204でアプリケーションプログラムのアプリケーション識別子を判定することは、すべてのファイル、フォルダ、システム設定変更(例えば、レジストリキーおよびレジストリ値)またはリソースに、固有で、整合性があり、永続的な、繰り返し可能な識別子でタグ付けすることを含む。
一実施形態では、オペレーティングシステムは、図2に示した方法を実行する。別の実施形態では、オペレーティングシステムとは別個のアプリケーションプログラムまたはアプリケーションサービスが、図2に示した方法を実行する。1つまたは複数のコンピュータ可読媒体が、図2に示した方法を実行するためのコンピュータ実行可能命令を有する。
次に、様々な典型的な特権、または他の形態のアクセスを、リソースを保護するための軽減アーキテクチャの見本を参照して説明する。
典型的な軽減アーキテクチャ
次に、図3を参照すると、典型的な流れ図が、様々なリソースを保護するための軽減アーキテクチャを示している。一実施形態では、図3に示した方法は、リソースにアクセスしようと試みているアプリケーションプログラムのアプリケーション識別子に基づき、マニフェストの中で記述されているリソース特権を実施する。一部の特権を本明細書で説明するが、本明細書で説明しない様々な特権、特権のレベル、またはアクセスも本発明の範囲に含まれる。同様に、一部のリソースを本明細書で説明するが、本明細書で説明しない様々なリソースも本発明の範囲に含まれる。
図3で、識別子ID1を有するアプリケーションプログラムのようなアプリケーションプログラムが、様々なリソースへのアクセスを要求する。本発明の実施形態は、その要求を受け取り、リソースに関してそのアプリケーションプログラムに識別された特権またはアクセスに応じて要求を処理する。図3の例では、アプリケーションプログラムは、読み取り専用特権で一部のオペレーティングシステムリソース(例えば、ファイルおよび設定)に対するアクセスを有する。アプリケーションプログラムは、それらのリソースの1つへの読み取りアクセスを求める要求を送り、本発明の実施形態が、その1つのリソースへの読み取りアクセスをアプリケーションプログラムに許可する。アプリケーションプログラムが、302で、それらの読み取り専用リソースの1つを変更する要求を送った場合、本発明の実施形態は、その1つのリソースへのアクセスをアプリケーションプログラムに対して拒否する。要求は、304で、暗黙に(例えば、アプリケーションプログラムに応答がまったく戻されない)失敗するか、または明示的に(例えば、アプリケーションプログラムに否定応答が戻される)失敗する。アプリケーションプログラムは、読み取り−書き込み特権でのアプリケーション専用リソース(例えば、アプリケーションプログラムに関連するファイルおよび設定)へのアクセスも有する。それらのリソースは、アプリケーションプログラムに関連しているため、それらのリソースの変更が、オペレーティングシステム脆弱性の問題を生じさせることは一般的にない。オペレーティングシステムは、それらのリソースのセマンティクス(semantics)の知識をほとんど有さず、ほとんど関心がない。
アプリケーションプログラムは、保護された特権で、他のオペレーティングシステムリソースに対するアクセスを有する。アプリケーションプログラムが、306で、それらの保護されたオペレーティングシステムリソース(例えば、設定またはファイル)の1つを変更する要求を送った場合、本発明の実施形態は、308で、アプリケーションプログラム向けに保護されたリソースの仮想ビューを戻す。詳細には、保護された特権に関して、本発明の実施形態は、アプリケーションプログラムによる読み取り−書き込みアクセスのために、要求されたリソースのコピーを、そのコピーが既存でない場合、作成する。コピーがまだ存在していない一実施形態では、アプリケーションプログラムからの要求が読み取りアクセスだけを求めている場合、コピーは作成されない。リソースのそのコピーは、そのアプリケーションプログラムによる、または同一のアプリケーション識別子を有するアプリケーションプログラムのグループによる使用に専用である。アプリケーション識別子により、本発明の実施形態は、異なるアプリケーション識別子を有するアプリケーションプログラムに、1つまたは複数のリソースの独自の仮想ビューまたはコピーを提供することができるようになる。例えば、オペレーティングシステムが、システム設定の、オペレーティングシステムに独自のコピーを所有する一方で、そのシステム設定に値を書き込むアプリケーションプログラムは、システム設定の、アプリケーションプログラムに独自のコピーを受け取る。一部の典型的な実施形態では、異なるアプリケーションが、システム設定(例えば、レジストリエントリ)の異なる仮想ビューを受け取ることが可能である。所望される(例えば、ユーザにより)システム保護のタイプに応じて、ユーザ別および/またはアプリケーションプログラム別にリソースを仮想化することができる。判定のアプリケーション識別子を有するアプリケーションプログラムによる仮想化されたリソースに対する変更は、他のアプリケーション識別子を有するアプリケーションプログラムにまったく影響を与えない(例えば、見えない)。個々のアプリケーション、またはアプリケーションの個々のグループに選択されたシステムリソースの独自のビューを提供することにより、オペレーティングシステムは、1つのアプリケーションプログラムが、他のアプリケーションプログラム群によって必要とされているリソースに上書きする、または別の形で破壊するのを防止することができる。
一実施形態では、アプリケーションプログラムは、アプリケーションプログラムのコンピューティングシステムへのインストール中に、リソースの仮想化されたコピーを使用する。例えば、アプリケーションプログラムは、システム設定を格納しているファイルの作成済みのコピーを使用して、コンピューティングシステムにシステム設定を適用することができる。
アプリケーションプログラムは、アプリケーション専用リソースに対するアクセスを有する。アプリケーション専用リソースには、アプリケーションプログラムに特有のリソースが含まれる。オペレーティングシステムおよびその他のアプリケーションプログラム群は、アプリケーション専用リソースによって一般に影響されない。アプリケーションプログラムが、310で、アプリケーション専用リソースを変更する要求を送った場合、本発明の実施形態は、312で、その要求を許可し、処理する。
アプリケーションプログラムは、314で、システム拡張性(例えば、オペレーティングシステムに機能を追加する)を変更する要求を送ることができる。一実施形態では、本発明の実施形態は、312で、要求された変更を許可する。
システム拡張性およびアプリケーション専用リソース(例えば、ファイルおよびシステム設定)に対する変更は、318で、ログ記録されるか、または別の形で記録される。一般に、システム拡張性の変更は、オペレーティングシステムに対する変更なしに、オペレーティングシステムに追加の機能を与える。システム拡張性の変更、およびアプリケーション専用リソースの変更を記録することにより、その変更のロールバック、ならびにその変更に関連するアプリケーションプログラムの完全な削除またはアンインストールが可能になる。
典型的な軽減戦略
次に、図4を参照すると、典型的な流れ図が、ファイル、システム設定、および拡張機能に関するアクセス制御を提供する方法の動作を示している。図4の例では、オペレーティングシステムが、この方法を実施する。しかし、オペレーティングシステムに関連していないアプリケーションプログラムまたはアプリケーションサービスが、この方法を実施することもできる。図4では、CreateProcess()のような関数を介してアプリケーションプログラム(例えば、xxxx.exe)を実行するプロセスが作成される。オペレーティングシステムは、402で、アプリケーションプログラムに関連するアプリケーション識別子が存在するかどうかを判定する。存在しない場合、オペレーティングシステムは、404で、アプリケーション識別子を決め、その情報を保存する(例えば、決められたアプリケーション識別子をマニフェストの中に格納する)。アプリケーションプログラムが、406で実行され、操作を実行する。オペレーティングシステムが、その操作を分析する。例えば、一実施形態では、特殊な特権で実行される許可された信頼されるインストールプロセスだけが、保護された領域内で追加、変更、または削除を行うことができる。アプリケーションプログラム群は、保護された領域内でデータを作成する、または変更することを阻止される。
図4の実施形態では、操作が、408で、ファイル操作であった場合、オペレーティングシステムは、410で、そのファイル操作が、ファイルに影響を与える(例えば、ファイル操作が、ファイルを変更する)かどうかを判定する。ファイル操作がファイルに影響を与えない場合、オペレーティングシステムは、414で、ファイルシステムに対してそのファイル操作が実行されることを許す。ファイル操作がファイルに影響を与える場合、オペレーティングシステムは、412で、図3に示したような軽減戦略に従って軽減されたファイル操作を実行する。ファイルシステムに対する変更は、行われる場合、415で、ログに記録される。
操作が、416で、システム設定操作である場合、オペレーティングシステムは、418で、そのシステム設定操作がシステム設定に影響を与える(例えば、システム設定操作が、システム設定を変更する)かどうかを判定する。システム設定操作が、システム設定に影響を与えない場合、オペレーティングシステムは、422で、システム設定に対してそのシステム設定操作が実行されることを許す。システム設定操作がシステム設定に影響を与える場合、オペレーティングシステムは、420で、図3に示したような軽減戦略に従って、軽減されたシステム設定操作を実行する。システム設定に対する変更は、行われる場合、415で、ログに記録される。
操作が、424で、オペレーティングシステムに拡張機能を読み込む要求を表す場合、オペレーティングシステムは、426で、アプリケーションプログラム(例えば、xxxx.exe)が、保護(例えば、「元に戻す」を可能にする)を所望するかどうかを判定する。例えば、アプリケーションプログラムは、保護の要望をオペレーティングシステムに明示的に知らせることができる。アプリケーションプログラムが保護を望まない場合、オペレーティングシステムは、428で、拡張機能が読み込まれることを許す。アプリケーションプログラムが、保護が所望されることを示した場合、オペレーティングシステムは、430で、拡張機能が異種の(foreign)拡張機能(例えば、第三者によって供給された)であるかどうかを判定する。拡張機能が異種ではない場合、オペレーティングシステムは、428で、拡張機能が読み込まれることを許す。拡張機能が異種である場合、オペレーティングシステムは、432で、図3に示したような軽減戦略に従って、軽減された拡張機能の読み込みを実行する。拡張機能の読み込みは、ログに記録することができる。例えば、記録は、オペレーティングシステムを実行しているコンピューティングシステムのユーザが構成できることが可能である。
仮想化を使用すると、アプリケーションが、独自のローカル名前空間内でオブジェクトを作成し、変更する一方で、オペレーティングシステムは、グローバル名前空間内でオブジェクトを作成し、変更する。1つのグローバル名前空間が存在し、複数のローカル名前空間が存在する可能性がある。作成操作に関して、アプリケーションは、アプリケーションのローカル名前空間内でオブジェクトを作成する。アプリケーションがオブジェクトを変更しようと試みた場合、オペレーティングシステムは、そのオブジェクトがアプリケーションのローカル名前空間内に存在するかどうかを調べる。ローカルオブジェクトが存在する場合、アプリケーションは、アプリケーションのローカル名前空間内でオブジェクトを開く。アプリケーションがグローバル名前空間内でオブジェクトを変更しようと試みた場合、オペレーティングシステムは、そのオブジェクトをアプリケーションのローカル名前空間内にコピーして、そのローカルオブジェクトに対して操作が行われることを許す。リソースがローカル名前空間内またはグローバル名前空間内に存在しない場合、開く操作は失敗する。
次に、図5を参照すると、典型的な流れ図が、システム設定に関するアクセス制御を提供する方法の動作を示している。図5は、システム設定に関連する例を示しているが、本発明の仮想化の態様は、その他のオブジェクト(例えば、名前付きオブジェクト)および名前空間に関して利用することもできる。図5では、オペレーティングシステムのような本発明の実施形態が、例えば、アプリケーションプログラムによって要求されたシステム設定に対する操作を分析する。詳細には、オペレーティングシステムは、502で、要求された操作が、システム設定を書き込む、または削除するかどうかを判定する。要求された操作が、システム設定を書き込む、または削除することがない(例えば、読み取り専用アクセスが要求された)場合、オペレーティングシステムは、504で、システム設定の仮想コピーが、現在、存在するかどうかを判定する。仮想コピーが存在する場合、オペレーティングシステムは、506で、その仮想コピーを識別し、508で、システム設定の仮想コピーに対して要求された操作を実行する。仮想コピーが存在しない場合、オペレーティングシステムは、508で、システム設定に対して要求された操作を実行する。
要求された操作が、システム設定を書き込む、または削除する場合、オペレーティングシステムは、510で、要求側のアプリケーションプログラムが、読み取り専用キーに関連付けられている(例えば、要求側のアプリケーションプログラムが、信頼されるインストーラではない)かどうかを判定する。要求側のアプリケーションプログラムが、読み取り専用アクセスに関連付けられている(例えば、オペレーティングシステムによって保持されるアクセス制御リストを介して)場合、オペレーティングシステムは、512で、要求された操作を不合格にするか、または拒否する。要求側のアプリケーションプログラムが、読み取り専用アクセスに関連付けられていない場合、オペレーティングシステムは、514で、要求された操作がシステムによって制限された(system−restricted)設定を書き込む、または削除するかどうかを判定する。要求された操作が、システムによって制限された設定を書き込む、または削除する場合、オペレーティングシステムは、516で、要求側のアプリケーションプログラムが、その操作を実行することを許可されているかどうかを判定する。例えば、オペレーティングシステムは、要求側のアプリケーションプログラムが、コンピューティングシステム上で管理者特権を有するかどうかを判定することができる。要求側のアプリケーションプログラムが、その操作を実行することを許可されている場合、オペレーティングシステムは、508で、要求された操作を実行する。要求側のアプリケーションプログラムが、その操作を実行することを許可されていない場合、オペレーティングシステムは、512で、要求された操作を不合格にするか、または拒否する。
要求された操作が、システムによって制限された設定を書き込む、または削除することをしない場合、オペレーティングシステムは、518で、要求された操作が、保護された設定(例えば、要求側のアプリケーションプログラムに関連付けられたシステム設定のコピー)であるかどうかを判定する。オペレーティングシステムは、要求された操作が保護された設定に関すると判定した場合、520で、その保護された設定を要求側のアプリケーションプログラムのアプリケーション識別子によって仮想化する。つまり、オペレーティングシステムは、システム設定の仮想コピーを識別し、508で、システム設定の識別された仮想コピーに対して要求された操作を実行する。オペレーティングシステムは、要求された操作が保護された設定に関してではないと判定した場合、522で、要求された操作が専用設定(例えば、要求側のアプリケーションプログラムに関連するシステム設定)であるかどうかを判定する。オペレーティングシステムは、要求された操作が専用設定に関すると判定した場合、508で、その専用システム設定に対して要求された操作を実行する。オペレーティングシステムは、要求された操作が専用設定に関してではないと判定した場合、処理を終了し、その要求を暗黙に、または明示的に不合格にする。
アプリケーションが、ローカル名前空間からあるオブジェクトを削除しようと試み、同一の名前を有するグローバルオブジェクトが存在する場合、システムは、ローカルオブジェクトに削除済みとしてマークを付けるが、そのオブジェクトを名前空間内に残す。このため、システムは、そのオブジェクトに対するアプリケーションのクエリが、そのオブジェクトの名前を見るべきでないことを検出することができる。アプリケーションが、ローカル名前空間内に存在するが、グローバル名前空間内には存在しないオブジェクトを削除しようと試みた場合、システムは、そのローカルオブジェクトを削除する。オペレーティングシステム構成に依存して、グローバルオブジェクトを削除することにより、すべての対応するローカルオブジェクト群が削除されることがもたらされる可能性がある。システムは、対応するオブジェクトがこの形で削除されるべきかどうかをアプリケーションが規定できるようにすることができ、リソースプロバイダが、その規定をローカルオブジェクト上に格納する。また、グローバルオブジェクトを追加することにより、削除済みとしてマークが付けられたすべての対応するオブジェクトがすべてのローカル名前空間から削除されることがもたらされる可能性もある。
この設計では、アプリケーションは、自らがグローバル名前空間内で作業していると思っているが、現実には、アプリケーション独自の名前空間内で作業している。システムは、完全なパスのクエリ、列挙、およびその他の操作を扱って、アプリケーションに、アプリケーションがグローバル名前空間内で作業していると思わせる。例えば、名前空間列挙には、特定のディレクトリの下のすべてのファイルをリストアップすることが含まれる。システムは、規定された名前空間内ですべてのオブジェクトのクエリを行う(例えば、まず、ローカル名前空間から始めて、次にグローバル名前空間に進む)。システムは、ローカル名前空間内で見つかった複製のオブジェクトをグローバル名前空間列挙で無視する。また、列挙は、ローカル名前空間から削除済みとしてマークが付けられたオブジェクト、および対応するグローバル名前空間オブジェクトも無視する。
リソースを共有することが予期されるアプリケーション群に関して、オペレーティングシステムは、そのアプリケーション群を同一の仮想化アプリケーショングループ(例えば、同一の分離ID)に入れることができる。代替として、オペレーティングシステムは、名前空間の特定の部分が仮想化されるべきでないことを規定することができる。さらに別の代替では、アプリケーション群は、他のアプリケーション群がアクセスすることができる自らの仮想化された名前空間の部分を規定する。クライアントアプリケーションは、アクセスが所望されるアプリケーション群を規定する。クライアントアプリケーションが共有の仮想化された名前空間にアクセスした場合、オペレーティングシステムは、目標アプリケーション群の対応するエクスポートされた名前空間を探索する。
一部の環境では、オペレーティングシステムは、複数の仮想化レイヤを有することを所望する可能性がある。ユーザ別の仮想化レイヤ、およびアプリケーショングループ別の仮想化レイヤが存在することが可能である。複数の仮想化レイヤの様々な順序が、本発明の範囲に含まれる。この例では、ユーザ仮想化レイヤが、アプリケーション仮想化レイヤよりも優先される。したがって、オブジェクトに関するクエリ要求および開く要求はまず、現行ユーザの仮想化レイヤを調べ、次に、現行アプリケーショングループの仮想化レイヤを調べ、最後にグローバル名前空間を調べる。オペレーティングシステムは、見つかった最初のオブジェクトを戻し、仮想化レイヤまたはグローバル名前空間のいずれにもオブジェクトが存在しない場合、まったくオブジェクトを戻さない。書き込み操作に関しても同様に、オペレーティングシステムはまず、オブジェクトを開く。オブジェクトが最高優先順位のレイヤの中に存在する場合、そのオブジェクトに対して書き込み操作が行われる。オブジェクトが最高優先順位のレイヤの中に存在しない場合、オブジェクトは、最高優先順位のレイヤの中にコピーされ、そのコピーされたオブジェクトに対して書き込み操作が行われる。作成操作は、最高優先順位のレイヤで行われるが、一部の実施形態におけるオペレーティングシステムは、コードが、特定の仮想化レイヤを優先として規定することを許すことができる。
同様に、オブジェクトを削除する場合、操作は、最高優先順位の仮想化レイヤで行われるが、一部の実施形態におけるオペレーティングシステムは、コードが、特定の仮想化レイヤを優先として規定することを許すことができる。正確なオブジェクトが見つかると、オペレーティングシステムは、そのオブジェクトが、該当するより低い優先順位の名前空間内に存在するかどうかを調べる。オブジェクトがより低い優先順位の名前空間内に存在する場合、対象の削除オブジェクトは、「削除済み」というマークを付けられて、その名前空間内に留まる。オブジェクトがより低い優先順位の名前空間内に存在しない場合、オブジェクトは、その名前空間から削除され、除去される。一部の構成では、オペレーティングシステムは、より高い優先順位の名前空間から対応するオブジェクトを削除することができる。しかし、より高い優先順位のオブジェクトの作成者が、その場合、オブジェクトが削除されないように規定することができる。
より低い優先順位の名前空間にオブジェクトを追加する場合、オペレーティングシステムは、削除済みというマークが付けられたすべての対応するオブジェクトをより高い優先順位の名前空間から除去する。探索および除去は、目標の名前空間から始められ、削除済みというマークが付けられていない対応するオブジェクトが探索によって見つかると、またはすべての該当するレイヤの探索が済むと、次の該当する、より高い優先順位のレイヤに進む。
列挙操作は、コンテキストおよびグローバル名前空間に関してすべての該当する仮想化レイヤを考慮に入れる。列挙は、最高優先順位の該当する名前空間から始められ、グローバル名前空間まで下方に進む。列挙が、削除済みというマークが付けられたオブジェクトを見つけると、そのオブジェクトに関する列挙は、より低い優先順位の名前空間において無視される。また、列挙は、より高い優先順位の名前空間において以前に見つかっている対応するオブジェクトも無視する。
オペレーティングシステムに関する内部オブジェクト保護
オペレーティングシステムは、様々なオブジェクトを作成する。そのオブジェクトの一部は、アプリケーション群によるアクセス用であり、別の一部(例えば、内部オブジェクト)には、オペレーティングシステムコンポーネント群だけがアクセスすることができる。オペレーティングシステムは、そのオブジェクト群に関するアクセス権(例えば、開くアクセスおよび読み取りアクセス)を定義する。
一実施形態では、内部オペレーティングシステムオブジェクト群には、内部オペレーティングシステムコンポーネント群だけがアクセスすることができなければならない。外部コードが内部オブジェクト群にアクセスするのを防止するため、オペレーティングシステムは、内部オペレーティングシステムコンポーネント群だけによるアクセス用に内部オブジェクトにマークを付ける。内部オペレーティングシステムコードとして実行されているランタイムオブジェクトには、内部オペレーティングシステムIDが関連付けられる。したがって、ランタイムオブジェクトが内部オブジェクトにアクセスしようと試みた場合、オペレーティングシステムは、そのランタイムオブジェクトが内部オペレーティングシステムIDに関連付けられているかどうかを調べる。ランタイムオブジェクトが内部オペレーティングシステムIDを有する場合、オペレーティングシステムは、アクセスを許す。有さない場合、オペレーティングシステムは、適切なアクションを実施する。適切なアクションには、アクセスを拒否すること、アクセスの試みをログ記録することなどが含まれることが可能である。
内部オペレーティングシステムコンポーネントがオブジェクトを作成した場合、オブジェクトは、作成者が、外部アクセスに供されるとしてオブジェクトに特別にマークを付けない限り、内部オペレーティングシステムコンポーネント群だけによるアクセス用にマークが付けられる。オペレーティングシステムは、ストア、マニフェスト、構成ファイル、デジタル署名などからのリソース情報を使用して、内部オブジェクトにオフラインでマークを付けることができる。
一部のオペレーティングシステムコンポーネントは、ミドルウェアコンポーネントとして分類され、これは、そのコンポーネント群がオペレーティングシステムの一部ではあっても、外部アプリケーション群もアクセスすることが許されているいくつかの特殊な予想状況(expectations)を除き、内部オブジェクト群にアクセスすべきでないことを意味する。一部の実施形態におけるオペレーティングシステムは、ミドルウェアコンポーネント群が、特殊な例外の内部オブジェクトを使用することを止め、外部オブジェクトに移行することを所望する。この問題に対処するため、オペレーティングシステムは、ミドルウェアアプリケーションIDをミドルウェアコンポーネント群に関連付ける。特殊な例外の内部オブジェクト群には、廃止(deprecated)属性でさらにマークが付けられる。ミドルウェアコンポーネントが廃止オブジェクトにアクセスする場合、システムは、アクセスを監査すること、および/またはアクセスを阻止することなどの適切なアクションで応対する。外部オブジェクト群、または他の外部オブジェクト群、または他の内部オブジェクト群を廃止するために、ミドルウェア廃止リソース検出をより一般的に適用してもよい。
アプリケーションプログラムの削除
次に、図6を参照すると、典型的な流れ図が、アプリケーションID情報を使用してアプリケーション取り消し(undo)を実行するための方法を示している。詳細には、この流れ図は、アプリケーションプログラム、およびアプリケーションプログラムのコンポーネント(例えば、ファイルおよびリソース)に関連するアプリケーション識別子を介して、インストール済みのアプリケーションプログラムをコンピューティングシステムから完全に削除する方法を示している。既存のアプリケーションプログラム群は、アンインストール機能を現在、サポートしている可能性があるが、現在のオペレーティングシステムは、特定のアプリケーションプログラムに関連するコンポーネントが、アンインストールプロセス中に削除されることを確実にするメカニズムを欠いている。本発明の実施形態は、いずれのファイルが特定のアプリケーションプログラムに関連しているかを記録にとるデータストア(例えば、ログ)を保持する。このため、アプリケーションがアンインストールされる場合、オペレーティングシステムは、アンインストールプロセスによって後に残されたあらゆるファイル(例えば、アプリケーションの名前空間内で仮想化されたファイルを含む)を識別し、削除する。これは、オペレーティングシステムの動作を拡張する、または変更することにより作成された要素、または仮想化の他の(例えば、より低い)レベルで作成された要素を含むアプリケーションのすべての要素をアンインストールすることにより、アプリケーションプログラムのより完全なアンインストールを提供する。また、この方法は、アプリケーションプログラムがコンピューティングシステムからアンインストールされた後に、インストールされたアプリケーションにしばしば付随するスパイウェア、アドウェア、またはその他の不要なアプリケーションプログラム群を削除するのにも役立つ。
一部の実施形態では、削除されるべき特定のアプリケーションプログラムは、コンピューティングシステムにインストールされた複数のアプリケーションプログラムの1つである。本発明の実施形態が、602で、その特定のアプリケーションプログラムをアンインストールする要求を受け取る。要求は、例えば、コンピューティングシステムのユーザを発信元とすることが可能である。代替として、要求は、オペレーティングシステムの現在のバージョンをインストールする前に、アプリケーションプログラムの以前のバージョンをアンインストールするアップグレードユーティリティによって生成されることが可能である。本発明の実施形態は、604で、その特定のアプリケーションプログラムに関連付けられた識別子を判定する。例えば、識別子は、アプリケーションプログラムの一部であること、またはメモリ領域の中に別個に格納されていることが可能である。本発明の実施形態は、606で、判定された識別子を介して、その特定のアプリケーションプログラムにだけ関連する1つまたは複数のファイルを識別する。つまり、識別されたファイルは、コンピューティングシステムにインストールされているその他のアプリケーションプログラムのいずれにも関連していない。システム上の各ファイルには、少なくとも1つのアプリケーション識別子が関連付けられているので、その特定のアプリケーションプログラムだけに関連するファイルの識別は、判定された識別子の探索を実行することでもたらされる。本発明の実施形態は、608で、識別されたファイルを削除する。一実施形態では、本発明は、あらゆるユーザファイル(例えば、ワードプロセッシングドキュメント、スプレッドシートドキュメント)を削除することを回避する。
さらに、その特定のアプリケーションプログラムをインストールすることに応答して適用されたシステム設定またはリソースの変更が、610で識別され、612で元に戻される。例えば、アプリケーションプログラムのインストール中、コンピューティングシステムに適用されたあらゆるシステム設定が、本発明の実施形態によってログ記録され、保持される。アプリケーションによってファイルおよびシステム設定に対して行われた変更には、所有権追跡のためにタグが付けられる。ログは、変更のそれぞれをインストールされているアプリケーションプログラムのアプリケーション識別子に関連付ける。一実施形態では、ログは、変更の1つまたは複数のロールバックを可能にするように保持される。例えば、ユーザが、システムに対して行われた最新の変更を元に戻すことを所望する可能性がある。別の例では、オペレーティングシステムが、特定のアプリケーションプログラムに関連する変更をロールバックすることにより、その特定のアプリケーションプログラムの完全なアンインストールを実行する。アプリケーションプログラムの削除またはアンインストール中、本発明の実施形態は、判定された識別子を使用して、アンインストールされているアプリケーションプログラムのアプリケーション識別子に関連する適用された設定または変更を識別し、元に戻すか、または別の形で除去する。例えば、ファイルタイプ関連付けに対する変更をログ記録して、アプリケーションプログラムをアンインストールすることにより、関連するアプリケーションプログラムを有さない特定のファイルタイプが残されないようにすることができる。つまり、アプリケーションプログラムのインストール中にファイルタイプ関連付けが行われた場合、アプリケーションプログラムをアンインストールする際に、そのファイルタイプ関連付けが元に戻される。
典型的な動作環境
図7は、汎用コンピューティングデバイスの一例をコンピュータ130の形態で示している。本発明の一実施形態では、コンピュータ130のようなコンピュータ、または他のコンピューティングシステムが、本明細書で例示し、説明するその他の図において使用するのに適している。コンピュータ130は、1つまたは複数のプロセッサまたは処理装置132、およびシステムメモリ134を有する。図示した実施形態では、システムバス136が、システムメモリ134からプロセッサ132までを含む様々なシステムコンポーネントを結合している。バス136は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート(accelerated graphics port)、およびプロセッサバスまたはローカルバスを含め、いくつかのタイプのバス構造のいずれかの1つまたは複数を表す。例として、限定としてではなく、そのようなアーキテクチャには、インダストリスタンダードアーキテクチャ(Industry Standard Architecture)(ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture)(MCA)バス、エンハンストISA(Enhanced ISA)(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(Video Electronics Standards Association)(VESA)ローカルバス、およびメザニン(Mezzanine)バスとしても知られるペリフェラルコンポーネントインターコネクト(Peripheral Component Interconnect)(PCI)バスが含まれる。
コンピュータ130は、通常、少なくとも何らかの形態のコンピュータ可読媒体を有する。揮発性媒体と不揮発性媒体、リムーバブルな媒体とリムーバブルでない媒体がともに含まれるコンピュータ可読媒体は、コンピュータ130がアクセスすることができる任意の利用可能な媒体であることが可能である。例として、限定としてではなく、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含む。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール群、またはその他のデータなどの情報を格納するために任意の方法または技術で実装された揮発性媒体および不揮発性媒体、リムーバブルな媒体およびリムーバブルでない媒体が含まれる。例えば、コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、または所望の情報を格納するのに使用することができ、コンピュータ130がアクセスすることができる他の任意の媒体が含まれる。通信媒体は、通常、搬送波などの変調されたデータ信号、または他のトランスポートメカニズムで、コンピュータ可読命令、データ構造、プログラムモジュール群、またはその他のデータを実体化し、あらゆる情報配信媒体が含まれる。信号内に情報を符号化するような形で特性の1つまたは複数が設定されている、または変更されている変調されたデータ信号について、当業者は熟知している。有線ネットワークまたは直接有線接続などの有線媒体、および音響媒体、RF媒体、赤外線媒体、およびその他の無線媒体などの無線媒体が、通信媒体の例である。また、以上のいずれかの組合せも、コンピュータ可読媒体の範囲に含まれる。
システムメモリ134は、リムーバブルなメモリおよび/またはリムーバブルでないメモリ、揮発性メモリおよび/または不揮発性メモリの形態でコンピュータ記憶媒体を含む。図示した実施形態では、システムメモリ134は、読み取り専用メモリ(ROM)138およびランダムアクセスメモリ(RAM)140を含んでいる。始動中などにコンピュータ130内部の要素間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム142(BIOS)が、通常、ROM138の中に格納される。RAM140は、通常、処理装置132が即時にアクセスすることができる、および/または処理装置132によって現在処理されている、データおよび/またはプログラムモジュール群を含む。例として、限定としてではなく、図7は、オペレーティングシステム144、アプリケーションプログラム群146、その他のプログラムモジュール群148、およびプログラムデータ150を示している。
コンピュータ130は、その他のリムーバブル/リムーバブルでない、揮発性/不揮発性のコンピュータ記憶媒体も含むことができる。例えば、図7は、リムーバブルでない不揮発性の磁気媒体に対して読み取りまたは書き込みを行うハードディスクドライブ154を示している。また、図7は、リムーバブルな不揮発性の磁気ディスク158に対して読み取りまたは書き込みを行う磁気ディスクドライブ156、およびCD−ROMまたはその他の光媒体などのリムーバブルな不揮発性の光ディスク162に対して読み取りまたは書き込みを行う光ディスクドライブ160も示している。典型的な動作環境において使用することができるその他のリムーバブルな/リムーバブルでない、揮発性/不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタルバーサタイルディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれるが、以上には限定されない。ハードディスクドライブ154、磁気ディスクドライブ156、および光ディスクドライブ160は、通常、インターフェース166のような不揮発性メモリインターフェースでシステムバス136に接続される。
以上に説明し、図7に示すドライブ群およびその他の記憶装置群、ならびに関連するコンピュータ記憶媒体群により、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータのストレージがコンピュータ130に提供される。図7では、例えば、ハードディスクドライブ154が、オペレーティングシステム170、アプリケーションプログラム群172、その他のプログラムモジュール群174、およびプログラムデータ176を格納しているのが示されている。以上のコンポーネントは、オペレーティングシステム144、アプリケーションプログラム群146、その他のプログラムモジュール群148、およびプログラムデータ150と同じであることも、異なることも可能であることに留意されたい。オペレーティングシステム170、アプリケーションプログラム群172、その他のプログラムモジュール群174、およびプログラムデータ176に、ここでは、少なくともそれらが異なるコピーであることを示すために異なる符号を付けている。
ユーザは、キーボード180やポインティングデバイス182(例えば、マウス、トラックボール、ペン、タッチパッド)などの入力デバイス群またはユーザインターフェース選択デバイス群を介してコンピュータ130にコマンドおよび情報を入力することができる。その他の入力デバイス(図示せず)には、マイク、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどが含まれることが可能である。以上、およびその他の入力デバイス群は、システムバス136に結合されたユーザ入力インターフェース184を介して処理装置132に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などの他のインターフェースおよびバス構造で接続することもできる。モニタ188または他のタイプのディスプレイデバイスも、ビデオインターフェース190のようなインターフェースを介してシステムバス136に接続される。モニタ188に加えて、コンピュータは、しばしば、出力周辺インターフェース(図示せず)を介して接続することができるプリンタやスピーカなどの他の周辺出力デバイス群(図示せず)も含む。
コンピュータ130は、リモートコンピュータ194のような1つまたは複数のリモートコンピュータに対する論理接続を使用するネットワーク化された環境において動作することができる。リモートコンピュータ194は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、またはその他の一般的なネットワークノードであることが可能であり、通常、コンピュータ130に関連して前述した要素の多く、またはすべてを含む。図7に示した論理接続は、ローカルエリアネットワーク(LAN)196およびワイドエリアネットワーク(WAN)198を含むが、その他のネットワークを含むことも可能である。LAN136および/またはWAN138は、有線ネットワーク、無線ネットワーク、有線ネットワークと無線ネットワークの組合せなどであることが可能である。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、および世界的なコンピュータネットワーク群(例えば、インターネット)において一般的である。
ローカルエリアネットワーキング環境で使用される場合、コンピュータ130は、ネットワークインターフェースまたはネットワークアダプタ186を介してLAN196に接続される。ワイドエリアネットワーキング環境で使用される場合、コンピュータ130は、通常、インターネットなどのWAN198を介した通信を確立するためのモデム178、またはその他の手段を含む。内部にあることも、外部にあることも可能なモデム178は、ユーザ入力インターフェース184、またはその他の適切なメカニズムを介してシステムバス136に接続される。ネットワーク化された環境では、コンピュータ130に関連して示したプログラムモジュール群、またはプログラムモジュール群の部分は、リモートメモリ記憶装置(図示せず)の中に格納することができる。例として、限定としてではなく、図7は、メモリデバイス上に常駐するものとしてリモートアプリケーションプログラム群192を示している。図示したネットワーク接続群は、典型的であり、コンピュータ間で通信リンクを確立するその他の手段を使用してもよい。
一般に、コンピュータ130のデータプロセッサ群は、コンピュータの様々なコンピュータ可読記憶媒体の中に異なる時点で格納された命令を使用してプログラミングされる。プログラム群およびオペレーティングシステム群は、通常、例えば、フロッピー(登録商標)ディスク上またはCD−ROM上で配布される。フロッピー(登録商標)ディスクまたはCD−ROMから、プログラム群およびオペレーティングシステム群は、コンピュータの2次メモリの中にインストールされる、または読み込まれる。実行中に、プログラム群およびオペレーティングシステム群は、コンピュータの1次電子メモリの中に少なくとも部分的に読み込まれる。本明細書で説明する本発明は、以上、およびその他の様々なタイプのコンピュータ可読記憶媒体を、そのような媒体が、マイクロプロセッサまたはその他のデータプロセッサと連携して以下に説明するステップを実施するための命令群またはプログラム群を含む場合に含む。また、本発明は、本明細書で説明する方法および技術に従ってプログラミングされている場合、コンピュータ自体も含む。
例示のため、オペレーティングシステムなどのプログラム群およびその他の実行可能なプログラムコンポーネント群を本明細書では、別個のブロックとして示している。しかし、そのようなプログラム群およびコンポーネント群は、様々な時点で、コンピュータの異なる記憶コンポーネントの中に存在し、コンピュータのデータプロセッサによって実行されることが認識されよう。
コンピュータ130を含め、典型的なコンピューティングシステム環境に関連して説明しているが、本発明は、他の多数の汎用または専用のコンピューティングシステム環境またはコンピューティングシステム構成でも機能する。コンピューティングシステム環境は、本発明の用途または機能の範囲について何ら限定を示唆するものではない。さらに、コンピューティングシステム環境が、典型的な動作環境において例示したコンポーネントのいずれの1つ、または組合せに関連する依存関係または要件も有していると解釈してはならない。本発明で使用するのに適する可能性がある周知のコンピューティングシステム、コンピューティング環境、および/またはコンピューティング構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家庭用電化製品、モバイル電話機、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、以上のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれるが、以上には限定されない。
本発明は、1つまたは複数のコンピュータ、またはその他のデバイスによって実行される、プログラムモジュール群などの、コンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールには、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造などが含まれるが、以上には限定されない。本発明は、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実行される分散コンピューティング環境においても実施することができる。分散コンピューティング環境では、プログラムモジュール群は、メモリ記憶装置を含むローカルコンピュータ記憶媒体とリモートコンピュータ記憶媒体の両方の中に配置することができる。
ソフトウェアアーキテクチャの文脈におけるインターフェースには、ソフトウェアモジュール、コンポーネント、コード部分、またはその他のシーケンスのコンピュータ実行可能命令が含まれる。インターフェースには、例えば、第1のモジュールが、第1のモジュールに代行して計算タスクを実行する第2のモジュールにアクセスすることが含まれる。第1のモジュールおよび第2のモジュールには、一例では、オペレーティングシステムによって提供されるようなアプリケーションプログラミングインターフェース(API)、コンポーネントオブジェクトモデル(COM)インターフェース群(例えば、ピアツーピアアプリケーション通信用の)、および拡張マークアップ言語メタデータ交換フォーマット(XMI)インターフェース群(例えば、Webサービス間の通信用の)が含まれる。
インターフェースは、Java(登録商標)2 Platform Enterprise Edition(J2EE)、COM、または分散COM(DCOM)の例におけるように、緊密に結合された同期実装であることが可能である。代替として、またはさらに、インターフェースは、Webサービス(例えば、シンプルオブジェクトアクセスプロトコルを使用する)におけるような緩く結合された非同期実装であることが可能である。一般に、インターフェースには、次の特性の任意の組合せが含まれる。すなわち、緊密に結合された特性、緩く結合された特性、同期の特性、および非同期の特性である。さらに、インターフェースは、標準のプロトコル、独自のプロトコル、または標準のプロトコルと独自のプロトコルの任意の組合せに適合することが可能である。
本明細書で説明するインターフェース群はすべて、単一のインターフェースの一部であることも、別々のインターフェースとして実装されることも、その任意の組合せであることも可能である。インターフェース群は、ローカルまたは遠隔で実行されて機能を提供することが可能である。さらに、インターフェース群は、本明細書に示し、説明した機能に追加した機能、またはより少ない機能を含むことも可能である。
動作の際、コンピュータ130は、図に示したようなコンピュータ実行可能命令を実行して、アプリケーションプログラムおよびリソースに関連する特権に応じて、アプリケーションプログラムがリソースにアクセスすることを許可する。図に示し、本明細書で説明するシステムおよび方法は、一部は当技術分野で周知である技術を使用して、ソフトウェアまたはハードウェアとして実装することができる。
マニフェストの例
以下の例は、本発明をさらに例示する。以下の例のいくつかは、レジストリへの言及を含むが、本発明の実施形態は、レジストリに限定されない。本発明の実施形態は、システム設定を格納するための任意のメカニズムで機能する。属性は、一部のメカニズムでは継承されるが、他のメカニズムでは、継承は保証されない。以下のテーブル1は、マニフェストの中の典型的な特権をリストアップし、レベルのそれぞれに関連するリソース保護のタイプを説明している。
Figure 2005129066
別の例では、見本のオペレーティングシステムコンポーネント(例えば、「Comp Name」)が、そのコンポーネントに関連するリソースに関して以下の保護動作を所望する。
Figure 2005129066
Figure 2005129066
Figure 2005129066
Figure 2005129066
本明細書で示し、説明する方法の実行または遂行の順序は、特に明記しない限り、必須ではない。つまり、方法の要素は、特に明記しない限り、任意の順序で実行することができ、方法は、本明細書で開示したよりも多い、または少ない要素を含んでいてもよい。
本発明の諸要素、または本発明の実施形態を概説する際、冠詞、「ある(a)」、「ある(an)」、「その(the)」および「前記(said)」は、要素の1つまたは複数が存在することを意味するものとする。「含む(comprising)」、「含む(including)」、および「有する(having)」という用語は、包含的であり、リストアップした要素以外に追加の要素が存在する可能性があることを意味するものとする。
以上に鑑みて、本発明のいくつかの目的が達せられ、その他の有利な結果が実現されることが理解されよう。
本発明の範囲を逸脱することなく、以上の構築物、製品、および方法で変更を行うことができるので、以上の説明に含まれ、添付の図面に示したすべての内容は、例示として、限定としてではなく解釈されなければならない。
リソースへのアクセスをアプリケーションプログラムに与えるオペレーティングシステムの典型的な実施形態を示す図である。 アクセス制御方法の動作を示す典型的な流れ図である。 様々なリソースを保護するための軽減アーキテクチャを示す典型的な流れ図である。 ファイル、システム設定、および拡張機能に関するアクセス制御を提供する方法の動作を示す典型的な流れ図である。 システム設定に関するアクセス制御を提供する方法の動作を示す典型的な流れ図である。 コンピューティングシステムからインストール済みのアプリケーションプログラムを削除する動作を示す典型的な流れ図である。 本発明を実施することができる適切なコンピューティングシステム環境の一例を示すブロック図である。
符号の説明
132 処理装置
134 システムメモリ
136 システムバス
144 オペレーティングシステム
146 アプリケーションプログラム群
148 他のプログラムモジュール群
150 プログラムデータ
166 不揮発性メモリインターフェース
170 オペレーティングシステム
172 アプリケーションプログラム群
174 他のプログラムモジュール群
176 プログラムデータ
184 ユーザ入力インターフェース

Claims (22)

  1. コンピューティングシステム上のリソースへのアクセスをアプリケーションプログラムに許可するコンピュータにより実行する方法であって、
    要求の中で識別されたリソースへのアクセスを求める該要求をアプリケーションプログラムから受け取るステップと、
    前記アプリケーションプログラムのアプリケーション識別子を判定するステップと、
    当該判定されたアプリケーション識別子および前記識別されたリソースの関数としてマニフェストからの特権を識別するステップであって、
    前記マニフェストは、前記識別されたリソースにアクセスすることに関して前記アプリケーションプログラムが有する特権を示すステップと、
    前記識別された特権に応じて前記識別されたリソースへのアクセスを前記アプリケーションプログラムに許可するステップと
    を含むことを特徴とする方法。
  2. 前記マニフェストからの前記特権を識別するステップは、前記アプリケーションプログラムに関連付けられた前記マニフェストからの前記特権を識別するステップを含むことを特徴とする請求項1に記載のコンピュータにより実行する方法。
  3. 前記マニフェストからの前記特権を識別するステップは、前記コンピューティングシステム上で実行されているオペレーティングシステムに関連付けられた前記マニフェストからの前記特権を識別するステップを含むことを特徴とする請求項1に記載のコンピュータにより実行する方法。
  4. 前記アプリケーションプログラムの前記アプリケーション識別子を判定するステップは、前記アプリケーションプログラムを表す複数のファイルおよびシステム設定のそれぞれに関連する前記アプリケーション識別子を判定することを含むことを特徴とする請求項1に記載のコンピュータにより実行する方法。
  5. 前記識別されたリソースへのアクセスを前記アプリケーションプログラムに許可するステップは、前記識別されたリソースへの読み取り専用アクセスを前記アプリケーションプログラムに許可するステップを含むことを特徴とする請求項1に記載のコンピュータにより実行する方法。
  6. 前記識別されたリソースへのアクセスを前記アプリケーションプログラムに許可するステップは、前記識別されたリソースへのアクセスを前記アプリケーションプログラムに対して拒否するステップを含むことを特徴とする請求項1に記載のコンピュータにより実行する方法。
  7. 前記識別されたリソースへのアクセスを前記アプリケーションプログラムに許可するステップは、前記アプリケーションプログラムが使用するために前記リソースのコピーを作成するステップを含むことを特徴とする請求項1に記載のコンピュータにより実行する方法。
  8. 前記アプリケーションプログラムが、前記コンピューティングシステムにインストールされ、前記リソースの前記作成されたコピーを使用して前記アプリケーションプログラムを前記コンピューティングシステムにインストールするステップをさらに含むことを特徴とする請求項7に記載のコンピュータにより実行する方法。
  9. 前記アプリケーションプログラムが、前記コンピューティングシステムにインストールされ、前記コンピューティングシステムにシステム設定を適用することも含め、前記アプリケーションプログラムを前記コンピューティングシステムにインストールするステップをさらに含むことを特徴とする請求項1に記載のコンピュータにより実行する方法。
  10. 前記要求の中で識別された前記リソースに対するアクセスを求める前記要求を前記アプリケーションプログラムから受け取るステップは、ファイル、ディレクトリ、名前付きオブジェクト、およびシステム設定の1つまたは複数に対するアクセスを求める前記要求を前記アプリケーションプログラムから受け取るステップを含むことを特徴とする請求項1に記載のコンピュータにより実行する方法。
  11. 前記アプリケーションプログラムのインストール後、前記アプリケーションプログラムの1つまたは複数のアクションに基づいて前記マニフェストを作成するステップをさらに含むことを特徴とする請求項1に記載のコンピュータにより実行する方法。
  12. 少なくとも1つのファイルが関連しており、コンピューティングシステムにインストール済みの複数のアプリケーションプログラムの1つである特定のアプリケーションプログラム、および関連するシステム設定およびオブジェクトを該コンピューティングシステムからアンインストールする、コンピュータにより実行する方法であって、
    前記特定のアプリケーションプログラムをアンインストールする要求を受け取るステップと、
    前記特定のアプリケーションプログラムに関連する識別子を判定するステップと、
    前記判定された識別子を介して、前記複数のアプリケーションプログラムの前記特定のアプリケーションプログラムだけに関連する前記判定された識別子が関連付けられているファイルを識別するステップと、
    前記識別されたファイルを削除するステップと
    を含むことを特徴とする方法。
  13. 前記判定された識別子を介して、前記特定のアプリケーションプログラムをインストールしたことに応答して適用された1つまたは複数のリソースの変更を識別するステップと、
    当該識別されたリソースの変更を元に戻すステップと
    をさらに含むことを特徴とする請求項12に記載のコンピュータにより実行する方法。
  14. 前記適用されたリソースの変更のログを保持するステップをさらに含むことを特徴とする請求項13に記載のコンピュータにより実行する方法。
  15. 前記1つまたは複数のリソースの変更を識別するステップは、ファイルタイプの関連付けを識別するステップを含み、前記識別されたリソースの変更を元に戻すステップは、前記ファイルタイプ関連付けを前記ログの中に保持されている以前の関連付けに戻すステップを含むことを特徴とする請求項14に記載のコンピュータにより実行する方法。
  16. 前記複数のアプリケーションプログラムの前記特定のアプリケーションプログラムだけに関連する前記ファイルを識別するステップは、前記複数のアプリケーションプログラムの前記特定のアプリケーションプログラムだけに関連する1つまたは複数のオブジェクトを識別するステップを含むことを特徴とする請求項12に記載のコンピュータにより実行する方法。
  17. 請求項1から16のいずれかに記載のコンピュータにより実行する方法を実行するためのコンピュータ実行可能コンポーネント群を有することを特徴とする1つまたは複数のコンピュータ可読媒体。
  18. 請求項1から17のいずれかに記載のコンピュータにより実行する方法を実行することを特徴とするシステム。
  19. 複数のリソースにアクセスするアプリケーションプログラムのアクセス権を規定するマニフェストを表すデータ構造が格納されているコンピュータ可読媒体であって、
    前記データ構造は、前記アプリケーションプログラムに対応するIDを表す値を格納する第1のフィールドと、
    前記アプリケーションプログラムに関連するリソースのリストを格納する第2のフィールドと、
    前記第1のフィールドからの前記ID、および前記第2のフィールドの中に格納されたリソースの前記リストに関連し、リソースの前記リストの中の各リソースにアクセスする前記アプリケーションプログラムのアクセス権を定義する特権を格納する第3のフィールドと
    を含むことを特徴とする媒体。
  20. 前記第1のフィールドは、バージョン、中央処理装置、および公開キーの1つまたは複数に基づく前記値を格納することを特徴とする請求項19に記載のコンピュータ可読媒体。
  21. 前記第2のフィールドは、ファイル、ディレクトリ、名前付きオブジェクト、およびシステム設定の1つまたは複数を含むリソースの前記リストを格納することを特徴とする請求項19に記載のコンピュータ可読媒体。
  22. 前記第3のフィールドは、インテントの宣言を表す前記特権を格納することを特徴とする請求項19に記載のコンピュータ可読媒体。
JP2004310057A 2003-10-24 2004-10-25 オペレーティングシステムリソース保護 Pending JP2005129066A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US51394103P 2003-10-24 2003-10-24
US10/868,182 US20050091658A1 (en) 2003-10-24 2004-06-15 Operating system resource protection

Publications (2)

Publication Number Publication Date
JP2005129066A true JP2005129066A (ja) 2005-05-19
JP2005129066A5 JP2005129066A5 (ja) 2007-12-13

Family

ID=34396616

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004310057A Pending JP2005129066A (ja) 2003-10-24 2004-10-25 オペレーティングシステムリソース保護

Country Status (5)

Country Link
US (2) US20050091658A1 (ja)
EP (1) EP1526429A3 (ja)
JP (1) JP2005129066A (ja)
KR (1) KR20050039661A (ja)
CN (1) CN1617101A (ja)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099619A (ja) * 2004-09-30 2006-04-13 Fujitsu Ltd コンピュータシステムの管理方法およびコンピュータ管理システムおよびコンピュータ管理プログラム
WO2007049654A1 (ja) * 2005-10-26 2007-05-03 Matsushita Electric Industrial Co., Ltd. データ処理装置
KR100772872B1 (ko) * 2006-02-24 2007-11-02 삼성전자주식회사 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여자원을 관리하는 장치 및 그 방법
JP2007293639A (ja) * 2006-04-26 2007-11-08 Yokogawa Electric Corp アクセス制御方法、アクセス制御方法を用いた機器及びシステム
JP2009503633A (ja) * 2005-07-15 2009-01-29 マイクロソフト コーポレーション ユーザアカウント内のアプリケーション特有データの分離
JP2009514099A (ja) * 2005-10-26 2009-04-02 マイクロソフト コーポレーション 分離されたエクステンションおよびデバイスドライバの構成
JP2009515251A (ja) * 2005-07-20 2009-04-09 クゥアルコム・インコーポレイテッド 無線ネットワーク内の安全なアーキテクチャのための機器および方法
JP2009282775A (ja) * 2008-05-22 2009-12-03 Canon Inc アプリケーションプラットフォーム
JP2010508583A (ja) * 2006-10-27 2010-03-18 マイクロソフト コーポレーション 多様化された不正操作耐性のための仮想化
US7712143B2 (en) 2006-09-27 2010-05-04 Blue Ridge Networks, Inc. Trusted enclave for a computer system
US7809955B2 (en) 2006-10-17 2010-10-05 Blue Ridge Networks, Inc. Trustable communities for a computer system
JP2011165222A (ja) * 2011-06-01 2011-08-25 Ricoh Co Ltd 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体
JP2012507801A (ja) * 2008-10-29 2012-03-29 クゥアルコム・インコーポレイテッド オペレーティングシステムに関する柔軟な階層的セッティングレジストリ
JP2013519168A (ja) * 2010-02-05 2013-05-23 マイクロソフト コーポレーション 仮想化のための拡張ポイントの宣言的登録
US8789063B2 (en) 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
JP2014530399A (ja) * 2011-09-09 2014-11-17 マイクロソフト コーポレーション ファイルにアクセスするための方法及びコンピューティングデバイス
US9679130B2 (en) 2011-09-09 2017-06-13 Microsoft Technology Licensing, Llc Pervasive package identifiers
US9858247B2 (en) 2013-05-20 2018-01-02 Microsoft Technology Licensing, Llc Runtime resolution of content references
US10356204B2 (en) 2012-12-13 2019-07-16 Microsoft Technology Licensing, Llc Application based hardware identifiers
US10469622B2 (en) 2011-09-12 2019-11-05 Microsoft Technology Licensing, Llc Platform-enabled proximity service
JP2019215901A (ja) * 2014-07-25 2019-12-19 フィッシャー−ローズマウント システムズ,インコーポレイテッド 最小特権ベースのプロセス制御ソフトウェアセキュリティアーキテクチャ、コンピュータデバイス
JP2020502626A (ja) * 2016-11-08 2020-01-23 セールスフォース ドット コム インコーポレイティッド データベース・システムにおけるテスト・データの形成及び動作
JP2022050548A (ja) * 2014-12-15 2022-03-30 アマゾン・テクノロジーズ、インコーポレイテッド 長期デジタル証明書の検証に基づく短期デジタル証明書の発行
WO2023084561A1 (ja) * 2021-11-09 2023-05-19 日本電気株式会社 インストール制御装置、インストール制御方法、共有システム、共有方法及び記憶媒体

Families Citing this family (166)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7512673B2 (en) 2001-01-11 2009-03-31 Attune Systems, Inc. Rule based aggregation of files and transactions in a switched file system
US7509322B2 (en) 2001-01-11 2009-03-24 F5 Networks, Inc. Aggregated lock management for locking aggregated files in a switched file system
EP1368736A2 (en) 2001-01-11 2003-12-10 Z-Force Communications, Inc. File switch and switched file system
US20040133606A1 (en) * 2003-01-02 2004-07-08 Z-Force Communications, Inc. Directory aggregation for files distributed over a plurality of servers in a switched file system
US8195760B2 (en) * 2001-01-11 2012-06-05 F5 Networks, Inc. File aggregation in a switched file system
US8239354B2 (en) 2005-03-03 2012-08-07 F5 Networks, Inc. System and method for managing small-size files in an aggregated file system
JP4088622B2 (ja) * 2002-07-29 2008-05-21 インターナショナル・ビジネス・マシーンズ・コーポレーション Wm信号生成装置、wm信号生成方法、wm信号生成方法を実行するためのコンピュータ実行可能なプログラムおよび該プログラムを記録したコンピュータ可読な記録媒体、電子透かし埋め込み装置、および該電子透かし埋め込み装置を含むディジタル・テレビ装置
US20040127242A1 (en) * 2002-12-31 2004-07-01 Dashevsky Jane Y. Apparatus and associated methods for the synchronization of shared content
US20050091658A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Operating system resource protection
US20050091535A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Application identity for software products
JP4368184B2 (ja) * 2003-11-19 2009-11-18 株式会社日立製作所 ブラックリストによる緊急アクセス遮断装置
US7480655B2 (en) * 2004-01-09 2009-01-20 Webroor Software, Inc. System and method for protecting files on a computer from access by unauthorized applications
US20050283779A1 (en) * 2004-05-19 2005-12-22 Pronk Van Hoogeveen Joost W D Method and apparatus for deploying software applications using a zone architecture
KR101150019B1 (ko) * 2004-08-03 2012-06-01 마이크로소프트 코포레이션 컨텍스트 정책 제어를 통한 애플리케이션간 연관을제어하는 시스템 및 방법
US7587594B1 (en) 2004-08-30 2009-09-08 Microsoft Corporation Dynamic out-of-process software components isolation for trustworthiness execution
US8171479B2 (en) * 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US8095940B2 (en) * 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US7752600B2 (en) * 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US8117559B2 (en) * 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US7853947B2 (en) * 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
US20060069662A1 (en) * 2004-09-30 2006-03-30 Citrix Systems, Inc. Method and apparatus for remapping accesses to virtual system resources
US7680758B2 (en) * 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US7725601B2 (en) * 2004-10-12 2010-05-25 International Business Machines Corporation Apparatus, system, and method for presenting a mapping between a namespace and a set of computing resources
US8020141B2 (en) * 2004-12-06 2011-09-13 Microsoft Corporation Operating-system process construction
US7882317B2 (en) * 2004-12-06 2011-02-01 Microsoft Corporation Process isolation using protection domains
US7600232B2 (en) * 2004-12-07 2009-10-06 Microsoft Corporation Inter-process communications employing bi-directional message conduits
US7451435B2 (en) * 2004-12-07 2008-11-11 Microsoft Corporation Self-describing artifacts and application abstractions
FR2880487B1 (fr) * 2004-12-31 2007-06-01 Cit Alcatel Procede de controle d'acces
US7885970B2 (en) * 2005-01-20 2011-02-08 F5 Networks, Inc. Scalable system for partitioning and accessing metadata over multiple servers
US7802294B2 (en) * 2005-01-28 2010-09-21 Microsoft Corporation Controlling computer applications' access to data
US7810153B2 (en) * 2005-01-28 2010-10-05 Microsoft Corporation Controlling execution of computer applications
US7958347B1 (en) 2005-02-04 2011-06-07 F5 Networks, Inc. Methods and apparatus for implementing authentication
US20060200861A1 (en) * 2005-03-04 2006-09-07 Dell Products L.P. Robust and fault-tolerant registry for web-enabled information handling devices to protect against "malware"
US20060209328A1 (en) * 2005-03-15 2006-09-21 Microsoft Corporation Systems and methods that facilitate selective enablement of a device driver feature(s) and/or application(s)
US20060248069A1 (en) * 2005-04-18 2006-11-02 Research In Motion Limited Method and system for implementing customizable container services as component wireless applications
US7665098B2 (en) * 2005-04-29 2010-02-16 Microsoft Corporation System and method for monitoring interactions between application programs and data stores
US8464317B2 (en) * 2005-05-06 2013-06-11 International Business Machines Corporation Method and system for creating a protected object namespace from a WSDL resource description
US7332818B2 (en) * 2005-05-12 2008-02-19 Endicott Interconnect Technologies, Inc. Multi-chip electronic package with reduced line skew and circuitized substrate for use therein
US7730522B2 (en) * 2005-05-16 2010-06-01 Microsoft Corporation Self-registering objects for an IPC mechanism
US7774405B2 (en) * 2005-05-16 2010-08-10 Microsoft Corporation Coordination of set enumeration information between independent agents
US8849968B2 (en) 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
US8977657B2 (en) * 2005-07-28 2015-03-10 International Business Machines Corporation Finding lost objects in a file system having a namespace
JP4685567B2 (ja) * 2005-09-15 2011-05-18 株式会社日立製作所 情報処理装置によるサービス提供システム
US7779034B2 (en) * 2005-10-07 2010-08-17 Citrix Systems, Inc. Method and system for accessing a remote file in a directory structure associated with an application program executing locally
US20070083620A1 (en) * 2005-10-07 2007-04-12 Pedersen Bradley J Methods for selecting between a predetermined number of execution methods for an application program
US8131825B2 (en) * 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US20070094495A1 (en) * 2005-10-26 2007-04-26 Microsoft Corporation Statically Verifiable Inter-Process-Communicative Isolated Processes
US7685298B2 (en) * 2005-12-02 2010-03-23 Citrix Systems, Inc. Systems and methods for providing authentication credentials across application environments
JP4795787B2 (ja) * 2005-12-09 2011-10-19 株式会社日立製作所 ストレージシステム、nasサーバ、及びスナップショット方法
US7996841B2 (en) * 2005-12-12 2011-08-09 Microsoft Corporation Building alternative views of name spaces
US8539481B2 (en) * 2005-12-12 2013-09-17 Microsoft Corporation Using virtual hierarchies to build alternative namespaces
US20070136356A1 (en) * 2005-12-12 2007-06-14 Microsoft Corporation Mechanism for drivers to create alternate namespaces
US8312459B2 (en) * 2005-12-12 2012-11-13 Microsoft Corporation Use of rules engine to build namespaces
US9038071B2 (en) * 2006-03-30 2015-05-19 Microsoft Technology Licensing, Llc Operating system context isolation of application execution
US20070260577A1 (en) * 2006-03-30 2007-11-08 Microsoft Corporation Providing COM access to an isolated system
US8001528B2 (en) 2006-03-30 2011-08-16 Microsoft Corporation Organization of application state and configuration settings
US8417746B1 (en) 2006-04-03 2013-04-09 F5 Networks, Inc. File system management with enhanced searchability
US7836079B2 (en) * 2006-04-07 2010-11-16 Microsoft Corporation Virtual universal naming convention name space over local file system
US8032898B2 (en) * 2006-06-30 2011-10-04 Microsoft Corporation Kernel interface with categorized kernel objects
CN102831214B (zh) * 2006-10-05 2017-05-10 斯普兰克公司 时间序列搜索引擎
KR100915803B1 (ko) * 2006-12-05 2009-09-07 한국전자통신연구원 임베디드 리눅스 커널의 보안성 강화를 위한 응용 프로그램구동 방법 및 시스템
US8156507B2 (en) * 2006-12-08 2012-04-10 Microsoft Corporation User mode file system serialization and reliability
US8640215B2 (en) * 2007-03-23 2014-01-28 Microsoft Corporation Secure isolation of application pools
WO2008135692A1 (fr) * 2007-03-30 2008-11-13 France Telecom Gestion d'acces a des ressources d'un systeme d'exploitation
US20090077097A1 (en) * 2007-04-16 2009-03-19 Attune Systems, Inc. File Aggregation in a Switched File System
US20080289000A1 (en) * 2007-05-16 2008-11-20 Motorola, Inc. Method and electronic device for managing applications
WO2008147973A2 (en) * 2007-05-25 2008-12-04 Attune Systems, Inc. Remote file virtualization in a switched file system
US9870263B2 (en) * 2007-06-29 2018-01-16 Microsoft Technology Licensing, Llc System virtualization instance management for terminal sessions
US8566296B2 (en) 2007-09-14 2013-10-22 Oracle International Corporation Support for compensation aware data types in relational database systems
US7904434B2 (en) * 2007-09-14 2011-03-08 Oracle International Corporation Framework for handling business transactions
US20090094596A1 (en) * 2007-10-05 2009-04-09 Scense B.V. Systems and methods for an adaptive installation
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US8180747B2 (en) 2007-11-12 2012-05-15 F5 Networks, Inc. Load sharing cluster file systems
US20090204705A1 (en) * 2007-11-12 2009-08-13 Attune Systems, Inc. On Demand File Virtualization for Server Configuration Management with Limited Interruption
US8548953B2 (en) * 2007-11-12 2013-10-01 F5 Networks, Inc. File deduplication using storage tiers
US8117244B2 (en) 2007-11-12 2012-02-14 F5 Networks, Inc. Non-disruptive file migration
US8352785B1 (en) 2007-12-13 2013-01-08 F5 Networks, Inc. Methods for generating a unified virtual snapshot and systems thereof
GB2456134A (en) * 2007-12-31 2009-07-08 Symbian Software Ltd Typed application development
US7792934B2 (en) * 2008-01-02 2010-09-07 Citrix Systems International Gmbh Loading of server-stored user profile data
US8549582B1 (en) 2008-07-11 2013-10-01 F5 Networks, Inc. Methods for handling a multi-protocol content name and systems thereof
US8561137B2 (en) * 2008-07-23 2013-10-15 Oracle International Corporation Techniques for identity authentication of virtualized machines
US8103718B2 (en) 2008-07-31 2012-01-24 Microsoft Corporation Content discovery and transfer between mobile communications nodes
US8649276B2 (en) * 2008-07-31 2014-02-11 Microsoft Corporation Content transfer
DE102008046639B4 (de) * 2008-09-09 2011-02-24 Adrian Dr. Spalka Verfahren zur Bereitstellung mindestens einer Leistung über ein Serversystem
US8149431B2 (en) * 2008-11-07 2012-04-03 Citrix Systems, Inc. Systems and methods for managing printer settings in a networked computing environment
US20100251227A1 (en) * 2009-03-25 2010-09-30 Microsoft Corporation Binary resource format and compiler
US8612994B1 (en) * 2009-03-30 2013-12-17 Symantec Corporation Methods and systems for activating and deactivating virtualization layers
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
US8881140B1 (en) 2009-09-04 2014-11-04 Symantec Corporation Systems and methods for virtualizing software associated with external computer hardware devices
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US8782429B2 (en) * 2009-12-23 2014-07-15 Ab Initio Technology Llc Securing execution of computational resources
US8204860B1 (en) 2010-02-09 2012-06-19 F5 Networks, Inc. Methods and systems for snapshot reconstitution
US9195500B1 (en) 2010-02-09 2015-11-24 F5 Networks, Inc. Methods for seamless storage importing and devices thereof
US20120310983A1 (en) * 2010-02-11 2012-12-06 Hemant Mittal Executable identity based file access
US9098363B2 (en) 2010-04-07 2015-08-04 Apple Inc. Search extensibility to third party applications
US8347100B1 (en) 2010-07-14 2013-01-01 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US9009790B2 (en) * 2010-09-11 2015-04-14 At&T Intellectual Property I, L.P. Association of multiple public user identifiers to disparate applications in an end-user's device
US9286298B1 (en) 2010-10-14 2016-03-15 F5 Networks, Inc. Methods for enhancing management of backup data sets and devices thereof
US8650658B2 (en) 2010-10-25 2014-02-11 Openpeak Inc. Creating distinct user spaces through user identifiers
US8478888B2 (en) * 2011-01-28 2013-07-02 Bmc Software, Inc. System and method for stateless, fault tolerance and load balanced data collection using overlay namespaces
US8650640B2 (en) * 2011-02-24 2014-02-11 International Business Machines Corporation Using a declaration of security requirements to determine whether to permit application operations
US20120284702A1 (en) * 2011-05-02 2012-11-08 Microsoft Corporation Binding applications to device capabilities
US20120291103A1 (en) * 2011-05-09 2012-11-15 Google Inc. Permission-based administrative controls
CN102855432B (zh) * 2011-06-27 2015-11-25 北京奇虎科技有限公司 一种文件、文件夹解锁和删除方法及***
US8396836B1 (en) 2011-06-30 2013-03-12 F5 Networks, Inc. System for mitigating file virtualization storage import latency
US9118686B2 (en) * 2011-09-06 2015-08-25 Microsoft Technology Licensing, Llc Per process networking capabilities
US9733791B2 (en) * 2011-09-12 2017-08-15 Microsoft Technology Licensing, Llc Access to contextually relevant system and application settings
US20130067531A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Access Brokering Based on Declarations and Consent
US8239918B1 (en) 2011-10-11 2012-08-07 Google Inc. Application marketplace administrative controls
US8463850B1 (en) 2011-10-26 2013-06-11 F5 Networks, Inc. System and method of algorithmically generating a server side transaction identifier
CN102521031B (zh) 2011-12-13 2014-11-05 华为终端有限公司 移动终端预置应用程序的管理方法和移动终端
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
KR101308351B1 (ko) 2012-02-24 2013-09-17 주식회사 팬택 어플리케이션에 권한을 할당하는 단말기 및 상기 단말기의 권한 할당 방법
CN103366118A (zh) * 2012-04-06 2013-10-23 腾讯科技(深圳)有限公司 进行安装包病毒查杀的方法及装置
WO2013162208A1 (en) * 2012-04-24 2013-10-31 Samsung Electronics Co., Ltd. Scalable and secure application resource management and access control for multicore operating systems
US9098726B2 (en) 2012-04-24 2015-08-04 Samsung Electronics Co., Ltd. Scalable and secure application resource management and access control for multicore operating systems
CN103581145B (zh) * 2012-08-06 2017-02-08 联想(北京)有限公司 一种电子设备及应用于电子设备的安全防护方法
US9519501B1 (en) 2012-09-30 2016-12-13 F5 Networks, Inc. Hardware assisted flow acceleration and L2 SMAC management in a heterogeneous distributed multi-tenant virtualized clustered system
CN104137073B (zh) * 2012-12-31 2017-11-21 华为技术有限公司 一种获取文件的方法和装置
CN104969176B (zh) * 2013-01-29 2019-12-27 黑莓有限公司 一种管理应用对证书和密钥的访问的方法、设备及介质
CN103136024B (zh) * 2013-01-31 2016-02-24 广东欧珀移动通信有限公司 一种应用程序的可靠卸载方法、装置及移动装置
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9554418B1 (en) 2013-02-28 2017-01-24 F5 Networks, Inc. Device for topology hiding of a visited network
CN103246595B (zh) * 2013-04-08 2016-06-08 小米科技有限责任公司 应用程序管理方法、装置、服务器及终端设备
US9390088B2 (en) 2013-04-22 2016-07-12 International Business Machines Corporation Ensuring access to long-term stored electronic documents
US9787820B2 (en) * 2013-08-07 2017-10-10 Linkedin Corporation Navigating between a mobile application and a mobile browser
US9361454B2 (en) 2014-05-30 2016-06-07 Apple Inc. Methods for restricting resources used by an application based on a base profile and an application specific profile
US9600662B2 (en) * 2014-06-06 2017-03-21 T-Mobile Usa, Inc. User configurable profiles for security permissions
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
CN104133641A (zh) * 2014-07-24 2014-11-05 深圳市同洲电子股份有限公司 一种外部存储设备文件清除方法以及装置
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US20160179828A1 (en) * 2014-12-19 2016-06-23 International Business Machines Corporation Revision management
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
GB2539433B8 (en) * 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
US11461456B1 (en) * 2015-06-19 2022-10-04 Stanley Kevin Miles Multi-transfer resource allocation using modified instances of corresponding records in memory
US11176240B1 (en) * 2021-04-20 2021-11-16 Stanley Kevin Miles Multi-transfer resource allocation using modified instances of corresponding records in memory
US9992236B2 (en) * 2015-06-22 2018-06-05 Dell Products L.P. Systems and methods for providing protocol independent disjoint port names
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
WO2018053072A1 (en) * 2016-09-16 2018-03-22 Pivotal Software, Inc. Credential management in cloud-based application deployment
CN107844699A (zh) * 2016-09-20 2018-03-27 中兴通讯股份有限公司 一种应用程序的访问权限控制方法和装置
US10412198B1 (en) 2016-10-27 2019-09-10 F5 Networks, Inc. Methods for improved transmission control protocol (TCP) performance visibility and devices thereof
CN108417258A (zh) * 2017-02-10 2018-08-17 深圳市理邦精密仪器股份有限公司 权限管理方法、装置和监护仪
US10956615B2 (en) 2017-02-17 2021-03-23 Microsoft Technology Licensing, Llc Securely defining operating system composition without multiple authoring
US10567492B1 (en) 2017-05-11 2020-02-18 F5 Networks, Inc. Methods for load balancing in a federated identity environment and devices thereof
US10325116B2 (en) * 2017-06-30 2019-06-18 Vmware, Inc. Dynamic privilege management in a computer system
US10365910B2 (en) * 2017-07-06 2019-07-30 Citrix Systems, Inc. Systems and methods for uninstalling or upgrading software if package cache is removed or corrupted
CN109246065A (zh) * 2017-07-11 2019-01-18 阿里巴巴集团控股有限公司 网络隔离方法和装置以及电子设备
CN108228353A (zh) * 2017-12-29 2018-06-29 北京元心科技有限公司 资源访问控制方法、装置及相应终端
US11223689B1 (en) 2018-01-05 2022-01-11 F5 Networks, Inc. Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof
US10833943B1 (en) 2018-03-01 2020-11-10 F5 Networks, Inc. Methods for service chaining and devices thereof
CN108804944A (zh) * 2018-06-04 2018-11-13 北京奇虎科技有限公司 基于数据表的资源权限配置方法及装置
US11068614B2 (en) * 2018-08-30 2021-07-20 Dell Products, L.P. System-level data security based on environmental properties
US12003422B1 (en) 2018-09-28 2024-06-04 F5, Inc. Methods for switching network packets based on packet data and devices
US11675902B2 (en) 2018-12-05 2023-06-13 Vmware, Inc. Security detection system with privilege management
CN112784283A (zh) * 2019-11-08 2021-05-11 华为技术有限公司 能力的管理方法和计算机设备
CN111240752B (zh) * 2019-12-31 2021-08-17 北京元心科技有限公司 操作***自适配方法及***
US11501010B2 (en) * 2020-05-20 2022-11-15 Snowflake Inc. Application-provisioning framework for database platforms
US11249988B2 (en) 2020-05-20 2022-02-15 Snowflake Inc. Account-level namespaces for database platforms
US11593354B2 (en) 2020-05-20 2023-02-28 Snowflake Inc. Namespace-based system-user access of database platforms
CN111897651B (zh) * 2020-07-28 2024-03-19 华中科技大学 一种基于标签的内存***资源管理方法
KR102423876B1 (ko) * 2020-07-29 2022-07-21 네이버 주식회사 어플리케이션 리소스 최적화를 위한 방법과 시스템
US11768933B2 (en) * 2020-08-11 2023-09-26 Saudi Arabian Oil Company System and method for protecting against ransomware without the use of signatures or updates
CN112764832A (zh) * 2021-01-21 2021-05-07 青岛海信移动通信技术股份有限公司 一种应用程序安装、卸载方法及通信终端
CN112685730B (zh) * 2021-03-18 2021-06-22 北京全息智信科技有限公司 一种操作***账户的权限控制方法、装置及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103058A (ja) * 1992-05-15 1994-04-15 Addison M Fischer プログラム権限情報データ構造
JPH0844630A (ja) * 1994-08-03 1996-02-16 Nri & Ncc Co Ltd ファイルアクセス制御装置およびその制御方法
JPH10111833A (ja) * 1996-10-07 1998-04-28 Hitachi Ltd アクセス権限管理方式
JP2001337864A (ja) * 2000-03-22 2001-12-07 Hitachi Ltd アクセス制御システム
JP2002073196A (ja) * 2000-09-05 2002-03-12 Dainippon Printing Co Ltd 共有アクセス管理機能を備えた携帯可能な情報処理装置
JP2002288087A (ja) * 2001-03-23 2002-10-04 Humming Heads Inc 情報処理装置及びその方法、情報処理システム及びその制御方法、プログラム

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8529890D0 (en) * 1985-12-04 1986-01-15 Watson P Garbage collection in computer system
JPH0734177B2 (ja) * 1987-07-16 1995-04-12 日本電気株式会社 知識情報参照装置
CA1323448C (en) * 1989-02-24 1993-10-19 Terrence C. Miller Method and apparatus for translucent file system
JP2520543B2 (ja) * 1991-09-06 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション プログラムの実行を管理する方法及びシステム
US5412717A (en) * 1992-05-15 1995-05-02 Fischer; Addison M. Computer system security method and apparatus having program authorization information data structures
CA2124720C (en) * 1993-06-25 2002-10-22 Michael R. C. Seaman Integration of systems management services with an underlying system object model
US5560005A (en) * 1994-02-25 1996-09-24 Actamed Corp. Methods and systems for object-based relational distributed databases
US5754854A (en) * 1994-11-14 1998-05-19 Microsoft Corporation Method and system for providing a group of parallel resources as a proxy for a single shared resource
US5825877A (en) * 1996-06-11 1998-10-20 International Business Machines Corporation Support for portable trusted software
US5799306A (en) * 1996-06-21 1998-08-25 Oracle Corporation Method and apparatus for facilitating data replication using object groups
US7356847B2 (en) * 1996-06-28 2008-04-08 Protexis, Inc. System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software
US5915085A (en) * 1997-02-28 1999-06-22 International Business Machines Corporation Multiple resource or security contexts in a multithreaded application
US6385707B1 (en) * 1998-02-24 2002-05-07 Adaptec, Inc. Method and apparatus for backing up a disk drive upon a system failure
US6182086B1 (en) * 1998-03-02 2001-01-30 Microsoft Corporation Client-server computer system with application recovery of server applications and client applications
US6505300B2 (en) * 1998-06-12 2003-01-07 Microsoft Corporation Method and system for secure running of untrusted content
US6308274B1 (en) * 1998-06-12 2001-10-23 Microsoft Corporation Least privilege via restricted tokens
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
US6523166B1 (en) * 1998-09-21 2003-02-18 Microsoft Corporation Method and system for on-demand installation of software implementations
US6378127B1 (en) * 1998-09-21 2002-04-23 Microsoft Corporation Software installation and validation using custom actions
US6317143B1 (en) * 1999-01-26 2001-11-13 Gateway, Inc. Programmable graphical user interface control system and method
US6970924B1 (en) * 1999-02-23 2005-11-29 Visual Networks, Inc. Methods and apparatus for monitoring end-user experience in a distributed network
US6449617B1 (en) * 1999-06-15 2002-09-10 Microsoft Corporation Edit command delegation program for editing electronic files
US7149222B2 (en) * 1999-12-21 2006-12-12 Converged Access, Inc. Integrated access point network device
US6640317B1 (en) * 2000-04-20 2003-10-28 International Business Machines Corporation Mechanism for automated generic application damage detection and repair in strongly encapsulated application
US6871344B2 (en) * 2000-04-24 2005-03-22 Microsoft Corporation Configurations for binding software assemblies to application programs
US6854108B1 (en) * 2000-05-11 2005-02-08 International Business Machines Corporation Method and apparatus for deterministic replay of java multithreaded programs on multiprocessors
US6327628B1 (en) * 2000-05-19 2001-12-04 Epicentric, Inc. Portal server that provides a customizable user Interface for access to computer networks
US6973577B1 (en) * 2000-05-26 2005-12-06 Mcafee, Inc. System and method for dynamically detecting computer viruses through associative behavioral analysis of runtime state
US20030159070A1 (en) * 2001-05-28 2003-08-21 Yaron Mayer System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages
EP1305688A2 (en) * 2000-05-28 2003-05-02 Yaron Mayer System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages
US20010056463A1 (en) * 2000-06-20 2001-12-27 Grady James D. Method and system for linking real world objects to digital objects
US6868539B1 (en) * 2000-06-28 2005-03-15 Microsoft Corp. System and method providing single application image
US7350204B2 (en) * 2000-07-24 2008-03-25 Microsoft Corporation Policies for secure software execution
AU2001296205A1 (en) * 2000-10-17 2002-04-29 Shyne-Song Chuang A method and system for detecting rogue software
US20020083183A1 (en) * 2000-11-06 2002-06-27 Sanjay Pujare Conventionally coded application conversion system for streamed delivery and execution
US6611836B2 (en) * 2000-12-26 2003-08-26 Simdesk Technologies, Inc. Server-side recycle bin system
US20020087665A1 (en) * 2000-12-29 2002-07-04 Marshall Donald Brent Method and system for integrated resource management
GB0102518D0 (en) * 2001-01-31 2001-03-21 Hewlett Packard Co Trusted operating system
EP1239377A1 (de) * 2001-03-07 2002-09-11 Abb Research Ltd. Datenorganisationssystem und Verfahren zur Gliederungsstrukturverwaltung und -synchronisation
US7028305B2 (en) * 2001-05-16 2006-04-11 Softricity, Inc. Operating system abstraction and protection layer
US7016920B2 (en) * 2001-05-25 2006-03-21 International Business Machines Corporation Method for tracking relationships between specified file name and particular program used for subsequent access in a database
US7290266B2 (en) * 2001-06-14 2007-10-30 Cisco Technology, Inc. Access control by a real-time stateful reference monitor with a state collection training mode and a lockdown mode for detecting predetermined patterns of events indicative of requests for operating system resources resulting in a decision to allow or block activity identified in a sequence of events based on a rule set defining a processing policy
US7117504B2 (en) * 2001-07-10 2006-10-03 Microsoft Corporation Application program interface that enables communication for a network software platform
US7017162B2 (en) * 2001-07-10 2006-03-21 Microsoft Corporation Application program interface for network software platform
US7483970B2 (en) * 2001-12-12 2009-01-27 Symantec Corporation Method and apparatus for managing components in an IT system
US7448084B1 (en) * 2002-01-25 2008-11-04 The Trustees Of Columbia University In The City Of New York System and methods for detecting intrusions in a computer system by monitoring operating system registry accesses
US20030204730A1 (en) * 2002-04-29 2003-10-30 Barmettler James W. Secure transmission and installation of an application
US20040003390A1 (en) * 2002-06-27 2004-01-01 Microsoft Corporation System and method for installing a software application in a non-impactfull manner
US20040054896A1 (en) * 2002-09-12 2004-03-18 International Business Machines Corporation Event driven security objects
US7069474B2 (en) * 2002-09-18 2006-06-27 Sun Microsystems, Inc. System and method for assessing compatibility risk
US7178163B2 (en) * 2002-11-12 2007-02-13 Microsoft Corporation Cross platform network authentication and authorization model
US7200760B2 (en) * 2002-12-31 2007-04-03 Protexis, Inc. System for persistently encrypting critical software data to control the operation of an executable software program
US7409389B2 (en) * 2003-04-29 2008-08-05 International Business Machines Corporation Managing access to objects of a computing environment
US7210125B2 (en) * 2003-07-17 2007-04-24 International Business Machines Corporation Method and system for application installation and management using an application-based naming system including aliases
US20050033777A1 (en) * 2003-08-04 2005-02-10 Moraes Mark A. Tracking, recording and organizing changes to data in computer systems
US20050091658A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Operating system resource protection
US20050091535A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Application identity for software products
GB0327950D0 (en) * 2003-12-03 2004-01-07 Ibm Determining the configuration of a data processing system at the time a transaction was processed
WO2005059720A1 (en) * 2003-12-17 2005-06-30 Telecom Italia S.P.A. Method and apparatus for monitoring operation of processing systems, related network and computer program product therefor

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103058A (ja) * 1992-05-15 1994-04-15 Addison M Fischer プログラム権限情報データ構造
JPH0844630A (ja) * 1994-08-03 1996-02-16 Nri & Ncc Co Ltd ファイルアクセス制御装置およびその制御方法
JPH10111833A (ja) * 1996-10-07 1998-04-28 Hitachi Ltd アクセス権限管理方式
JP2001337864A (ja) * 2000-03-22 2001-12-07 Hitachi Ltd アクセス制御システム
JP2002073196A (ja) * 2000-09-05 2002-03-12 Dainippon Printing Co Ltd 共有アクセス管理機能を備えた携帯可能な情報処理装置
JP2002288087A (ja) * 2001-03-23 2002-10-04 Humming Heads Inc 情報処理装置及びその方法、情報処理システム及びその制御方法、プログラム

Cited By (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099619A (ja) * 2004-09-30 2006-04-13 Fujitsu Ltd コンピュータシステムの管理方法およびコンピュータ管理システムおよびコンピュータ管理プログラム
JP2009503633A (ja) * 2005-07-15 2009-01-29 マイクロソフト コーポレーション ユーザアカウント内のアプリケーション特有データの分離
JP2009515251A (ja) * 2005-07-20 2009-04-09 クゥアルコム・インコーポレイテッド 無線ネットワーク内の安全なアーキテクチャのための機器および方法
US8320880B2 (en) 2005-07-20 2012-11-27 Qualcomm Incorporated Apparatus and methods for secure architectures in wireless networks
JP4875097B2 (ja) * 2005-07-20 2012-02-15 クゥアルコム・インコーポレイテッド 無線ネットワーク内の安全なアーキテクチャのための機器および方法
US9769669B2 (en) 2005-07-20 2017-09-19 Qualcomm Incorporated Apparatus and methods for secure architectures in wireless networks
JP4866858B2 (ja) * 2005-10-26 2012-02-01 パナソニック株式会社 データ処理装置及び処理方法
JP2009514099A (ja) * 2005-10-26 2009-04-02 マイクロソフト コーポレーション 分離されたエクステンションおよびデバイスドライバの構成
WO2007049654A1 (ja) * 2005-10-26 2007-05-03 Matsushita Electric Industrial Co., Ltd. データ処理装置
KR100772872B1 (ko) * 2006-02-24 2007-11-02 삼성전자주식회사 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여자원을 관리하는 장치 및 그 방법
JP2007293639A (ja) * 2006-04-26 2007-11-08 Yokogawa Electric Corp アクセス制御方法、アクセス制御方法を用いた機器及びシステム
US7712143B2 (en) 2006-09-27 2010-05-04 Blue Ridge Networks, Inc. Trusted enclave for a computer system
US7809955B2 (en) 2006-10-17 2010-10-05 Blue Ridge Networks, Inc. Trustable communities for a computer system
US8584109B2 (en) 2006-10-27 2013-11-12 Microsoft Corporation Virtualization for diversified tamper resistance
JP2010508583A (ja) * 2006-10-27 2010-03-18 マイクロソフト コーポレーション 多様化された不正操作耐性のための仮想化
US9459893B2 (en) 2006-10-27 2016-10-04 Microsoft Technology Licensing, Llc Virtualization for diversified tamper resistance
US8789063B2 (en) 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
JP2009282775A (ja) * 2008-05-22 2009-12-03 Canon Inc アプリケーションプラットフォーム
US8667512B2 (en) 2008-10-29 2014-03-04 Qualcomm Incorporated Flexible hierarchical settings registry for operating systems
JP2012507801A (ja) * 2008-10-29 2012-03-29 クゥアルコム・インコーポレイテッド オペレーティングシステムに関する柔軟な階層的セッティングレジストリ
JP2013519168A (ja) * 2010-02-05 2013-05-23 マイクロソフト コーポレーション 仮想化のための拡張ポイントの宣言的登録
US10331466B2 (en) 2010-02-05 2019-06-25 Microsoft Technology Licensing, Llc Extension point declarative registration for virtualization
KR101774975B1 (ko) 2010-02-05 2017-09-05 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 가상화를 위한 확장 포인트 선언적 등록
JP2011165222A (ja) * 2011-06-01 2011-08-25 Ricoh Co Ltd 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体
JP2014530399A (ja) * 2011-09-09 2014-11-17 マイクロソフト コーポレーション ファイルにアクセスするための方法及びコンピューティングデバイス
US9773102B2 (en) 2011-09-09 2017-09-26 Microsoft Technology Licensing, Llc Selective file access for applications
US9679130B2 (en) 2011-09-09 2017-06-13 Microsoft Technology Licensing, Llc Pervasive package identifiers
US10469622B2 (en) 2011-09-12 2019-11-05 Microsoft Technology Licensing, Llc Platform-enabled proximity service
US10356204B2 (en) 2012-12-13 2019-07-16 Microsoft Technology Licensing, Llc Application based hardware identifiers
US9858247B2 (en) 2013-05-20 2018-01-02 Microsoft Technology Licensing, Llc Runtime resolution of content references
JP2019215901A (ja) * 2014-07-25 2019-12-19 フィッシャー−ローズマウント システムズ,インコーポレイテッド 最小特権ベースのプロセス制御ソフトウェアセキュリティアーキテクチャ、コンピュータデバイス
JP2022065090A (ja) * 2014-07-25 2022-04-26 フィッシャー-ローズマウント システムズ,インコーポレイテッド 最小特権ベースのプロセス制御ソフトウェアセキュリティアーキテクチャ、コンピュータデバイス
JP2021128785A (ja) * 2014-07-25 2021-09-02 フィッシャー−ローズマウント システムズ,インコーポレイテッド 最小特権ベースのプロセス制御ソフトウェアセキュリティアーキテクチャ、コンピュータデバイス
US11275861B2 (en) 2014-07-25 2022-03-15 Fisher-Rosemount Systems, Inc. Process control software security architecture based on least privileges
JP2022050548A (ja) * 2014-12-15 2022-03-30 アマゾン・テクノロジーズ、インコーポレイテッド 長期デジタル証明書の検証に基づく短期デジタル証明書の発行
JP7393083B2 (ja) 2014-12-15 2023-12-06 アマゾン・テクノロジーズ、インコーポレイテッド 長期デジタル証明書の検証に基づく短期デジタル証明書の発行
US11936797B1 (en) 2014-12-15 2024-03-19 Amazon Technologies, Inc. Short-duration digital certificate issuance based on long-duration digital certificate validation
JP2020502626A (ja) * 2016-11-08 2020-01-23 セールスフォース ドット コム インコーポレイティッド データベース・システムにおけるテスト・データの形成及び動作
JP7090606B2 (ja) 2016-11-08 2022-06-24 セールスフォース ドット コム インコーポレイティッド データベース・システムにおけるテスト・データの形成及び動作
WO2023084561A1 (ja) * 2021-11-09 2023-05-19 日本電気株式会社 インストール制御装置、インストール制御方法、共有システム、共有方法及び記憶媒体

Also Published As

Publication number Publication date
EP1526429A3 (en) 2006-09-13
EP1526429A2 (en) 2005-04-27
US20050091214A1 (en) 2005-04-28
KR20050039661A (ko) 2005-04-29
CN1617101A (zh) 2005-05-18
US20050091658A1 (en) 2005-04-28

Similar Documents

Publication Publication Date Title
JP2005129066A (ja) オペレーティングシステムリソース保護
US20050091535A1 (en) Application identity for software products
US8646044B2 (en) Mandatory integrity control
US7590841B2 (en) Automatic update of computer-readable components to support a trusted environment
US8078740B2 (en) Running internet applications with low rights
US9165160B1 (en) System for and methods of controlling user access and/or visibility to directories and files of a computer
US8001596B2 (en) Software protection injection at load time
US7496576B2 (en) Isolated access to named resources
US7650492B2 (en) Automatic update of computer-readable components to support a trusted environment
US8413253B2 (en) Protecting persistent secondary platform storage against attack from malicious or unauthorized programs
US10402378B2 (en) Method and system for executing an executable file
US20210382739A1 (en) Partially Privileged Lightweight Virtualization Environments
KR20060051383A (ko) 바이러스 방지 소프트웨어 어플리케이션들의 지식 베이스를모으는 시스템 및 방법
JP2008547074A (ja) 仮想化されたファイル・システム
Wu et al. Towards a binary integrity system for windows
TWI802040B (zh) 基於檔案屬性特徵之應用程式控管方法
WO2009048158A1 (ja) ファイルチェック装置、ファイルチェックプログラムおよびファイルチェック方法
Griffiths et al. Fireguard-A secure browser with reduced forensic footprint
Sze Enhancing Operating Systems with Network Provenance Based Policies for Systematic Malware Defense
Ančincová et al. Fedora 22 SELinux User's and Administrator's Guide
Chandwani Light-weight proactive approach for safe execution of untrusted code

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071025

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110624