JP2014521184A - 信頼レベルのアクティブ化 - Google Patents

信頼レベルのアクティブ化 Download PDF

Info

Publication number
JP2014521184A
JP2014521184A JP2014521651A JP2014521651A JP2014521184A JP 2014521184 A JP2014521184 A JP 2014521184A JP 2014521651 A JP2014521651 A JP 2014521651A JP 2014521651 A JP2014521651 A JP 2014521651A JP 2014521184 A JP2014521184 A JP 2014521184A
Authority
JP
Japan
Prior art keywords
component
trust
application
execution environment
instructions
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.)
Granted
Application number
JP2014521651A
Other languages
English (en)
Other versions
JP2014521184A5 (ja
JP5985631B2 (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 JP2014521184A publication Critical patent/JP2014521184A/ja
Publication of JP2014521184A5 publication Critical patent/JP2014521184A5/ja
Application granted granted Critical
Publication of JP5985631B2 publication Critical patent/JP5985631B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/2113Multi-level security, e.g. mandatory access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

分離実行環境は、アプリケーションに、アプリケーションを実行するのに限られたリソースを提供する。アプリケーションは、分離実行環境の外部にある、特定の信頼レベルに関連付けられるセキュアなリソースへのアクセスを要求する。信頼アクティブ化エンジンは、リソースの要求に関連付けられた信頼レベルを決定し、信頼レベルに基づいて異なるように動作する。ブローカプロセスは、分離実行環境とは別の実行環境において部分的信頼レベルを有するリソースへのアクセスを提供するコンポーネントを実行するのに使用される。

Description

本発明は、信頼レベルのアクティブ化に関する。
ネットワークコンピューティングデバイスの拡散により、ユーザは、信頼できるシステムから未知ソースに及ぶまで様々なソースからコードを取得することが可能になった。コードは、インターネットからダウンロードされることがあり、ドキュメントに含まれること、あるいは電子メールに添付されることがある。コードは、悪質なコードによって侵入される可能性があるバグや脆弱性を含むことがあり、そのような悪質なコードは、ユーザから保護されたリソースにアクセスすることがある。そのようなコードの実行は、コンピュータシステムにダメージを与え、及び/又はユーザの機密データや個人データを取得することがある。
分離実行環境は、未知又は信頼できないソースからコードを得ることに対する、セキュリティ上の問題に対処しようとするコードセキュリティ機構の一種である。分離実行環境は、コードが分離実行環境の外部のリソースにアクセスするのを妨げる制限を有する環境内においてコードを実行する。この手法において、コードは、ホストシステムを危険にさらすことはない。しかしながら、そのような制限は、アプリケーションが分離実行環境の外部にあるリソースを利用することを可能にする際の柔軟性を提供することはない。
この発明の概要は、以下の発明の詳細な説明においてさらに説明される概念の選択を、簡略化した形式で紹介するために提供される。この発明の概要は、特許請求される主題の主要な特徴又は本質的特徴を特定するように意図されておらず、また、特許請求される主題の範囲を限定するのに使用されるようにも意図されていない。
分離実行環境を用いてアプリケーションを実行し、これによりアプリケーションが、意図せず又は故意に他の実行中のアプリケーション又はリソースに対して影響を与えること、並びに機密データが漏えいすることを回避する。分離は、分離実行環境においてアプリケーションに対してアクセス可能なリソースを制御することによって容易になる。アプリケーションプログラミングインタフェース(API)などのコンポーネントは、リソースにアクセスするのに使用可能であり、リソースに関連付けられたセキュリティレベルを反映する信頼レベルに関連付けられる。
信頼アクティブ化(trust activation)エンジンは、低特権アプリケーションがリソースに関連付けられるAPIを実行するか否か、及びどのような条件の下で実行するかを決定する。基礎信頼コンポーネントは、低特権アプリケーションの分離実行環境において実行されることができる。完全信頼コンポーネントは、低特権アプリケーションによって直接実行されることはない。部分的信頼コンポーネントについて、信頼アクティブ化エンジンは、分離実行環境とは別個のブローカプロセスをアクティブ化して、部分的信頼コンポーネントを実行する。この手法において、低特権アプリケーションは、リソースにアクセスするのに使用されるAPIメソッドから遮断されるが、部分的信頼コンポーネントに関連付けられるリソースにアクセスする利益は得らえる。
これら及び他の特徴と利点は、以下の詳細な説明を読み、関連する図面を参照することから明らかになるであろう。上記の一般的な説明と下記の詳細な説明の双方とも例示であり、特許請求される態様を制限するものではないことを理解されたい。
信頼レベルアクティブ化の第1の例示的なシステムのブロック図である。 信頼レベルアクティブ化の第2の例示的なシステムのブロック図である。 信頼レベルアクティブ化の第3の例示的なシステムのブロック図である。 信頼レベルアクティブ化の第1の例示的な方法を示すフローチャートである。 信頼レベルアクティブ化の第2の例示的な方法を示すフローチャートである。 動作環境を示すブロック図である。 オペレーティング環境において使用されるコンピューティングデバイスの例示的なコンポーネントを示すブロック図である。
様々な実施形態は、分離実行環境において実行するアプリケーションコードの範囲をオペレーティングシステムランタイムコンポーネントにまで拡張する技術を対象とする。分離実行環境を用いてアプリケーションを実行し、これによりそのアプリケーションが、意図せず又は故意に他の実行中のアプリケーション又はリソースに対して影響を与えること、並びに機密データが漏えいすることを回避する。分離は、アプリケーションに対してアクセス可能なリソースを制御することによって容易になる。リソースは、リソースのセキュリティレベルを示す信頼レベルによって分類される。アプリケーションは、リソースにアクセスするアプリケーションのセキュリティレベルを示す特権レベルによって分類される。高特権アプリケーションは、全てのリソースにアクセスすることができ、低特権アプリケーションは、様々な条件の下、特定の信頼レベルリソースにアクセスすることができる。本明細書で説明される技術は、ユーザの機密データ及びコンピューティング環境に対するリスクを最小限にする手法により、低特権アプリケーションが特定のオペレーティングシステムランタイムコンポーネントにアクセスすることを許可にする。
一実施形態において、アプリケーションが、アプリケーションストアなどのサーバからダウンロードされる。ダウンロードされたアプリケーションは、アプリケーションコード及びマニフェストファイルを含むパッケージの形式とすることができる。アプリケーションコードは、限定ではないが、プログラムモジュール、アプリケーションソフトウェア、ビデオゲーム、企業用ソフトウェア、ソフトウェアコンポーネントなど、任意のタイプのコンピュータ実行可能命令とすることができる。マニフェストファイルは、アプリケーションの識別情報(例えば、発行者、アプリケーションの名前、アプリケーションのバージョン)、アプリケーションの対象アーキテクチャ(例えば、ハードウェアプロセッサアーキテクチャ、オペレーティングシステムバージョンなど)、依存関係(例えば、ハードウェアデバイス及び/又は他のアプリケーション)、能力及びその他などを含むことができる。能力セクションは、アプリケーションが動作に必要とするリソースを識別する。そのような能力の一部は、分離実行環境内からアクセス可能でないリソースを参照することがある。
リソースは、ユーザのセキュリティ又はプライバシーに対するリスクを表し、したがってオペレーティングシステムによって制御される、デバイス又は機能とすることができる。デバイスは、ユーザに対するセキュリティリスクを提示するユーザのコンピューティングデバイスに配置される、ハードウェアデバイスとすることができる。そのようなデバイスの例は、ウェブカメラ、オンボードセルラチップ、マイクロフォン、GPS受信機などである。上記機能は、ユーザの写真ライブラリに対する読み取り/書き込みアクセス、インターネット及び公共の場でのネットワークに対する下りアクセス、ユーザのホームネットワークに対する上りアクセスなどである。
例えば、アプリケーションは、ユーザの写真ライブラリに対するアクセスを要求することがある。通常、ユーザの写真ライブラリの位置は、分離実行環境内で動作するアプリケーションに対してアクセス可能ではないであろう。マニフェストファイルの能力セクションは、アプリケーションが、ユーザの写真ライブラリの使用を要求することを示す。ユーザは、マニフェストファイルをレビューした後、アプリケーションのパッケージをダウンロードすると、ユーザの写真ライブラリに対するアプリケーションのアクセスを暗黙的に承諾する。しかしながら、アプリケーションが分離実行環境において動作するとき、アプリケーションは、ユーザの写真ライブラリへのアクセスを必要とすることになる。
1つ又は複数の実施形態において、リソースは、アプリケーションプログラミングインタフェース(API)などのソフトウェアコンポーネントを通じてアクセスされることがある。例えば、リソースは、ファイルシステム、ディスクI/O、ネットワークI/Oなどとすることができる。アプリケーションは、APIコールを通じてリソースへのアクセスを要求する。例えば、APIコールは、データベースにおいて実行される読み取り操作を可能にし、ファイルシステムへのアクセスを可能にし、ネットワークへのアクセスを可能にすることができる。APIコールは、APIに関連付けられる信頼レベルに基づいて異なる。
1つ又は複数の実施形態において、各アプリケーションを、1つ又は複数の特権レベル、すなわち、高特権アプリケーション又は低特権アプリケーションに分類することができる。高特権アプリケーションは、全てのオペレーティングシステムランタイムコンポーネントに対するアクセスを有し、低特権アプリケーションは、特定のオペレーティングシステムランタイムコンポーネントのみに対する直接アクセスしか有しない。コンポーネントは、3つの信頼レベル、すなわち、基礎信頼、部分的信頼及び完全信頼に分類されることができる。基礎信頼コンポーネントは、任意の特権レベルに関連付けられるアプリケーションに対してアクセス可能となる。完全信頼コンポーネントは、高特権アプリケーションに対してのみ直接アクセス可能となる。部分的信頼コンポーネントは、ブローカプロセスを通じて低特権アプリケーションによってアクセスされうる。
ブローカプロセスは、分離実行環境とは別個の実行環境において動作し、部分的信頼コンポーネントについて低特権アプリケーションから要求されたAPIコールを実行するように構成される。部分的実行コンポーネントは、基礎信頼コンポーネントよりも高いレベルのコードセキュリティを要し、完全信頼コンポーネントよりも低いコードセキュリティレベルを有する。ブローカプロセスをアプリケーションとオペレーティングシステムとの間のインターミディアリとして使用することによって、リソースの一貫性を、アプリケーションにおいて提示される悪質なコードによって引き起こされるダメージから保護する。次に、分離実行環境を拡張して信頼レベルコンポーネントをアクティブにする技術を具現化するシステムの実施形態のより詳細な説明に移る。
図1を参照すると、例示システム100が示されている。例示システム100は、低特権アプリケーション102が分離実行環境104内の基礎信頼コンポーネントにアクセスするのを可能にするように構成される。システム100を、ハンドヘルド、ポータブル、サーバ、コンピュータ、モバイルフォン、個人用携帯情報端末(PDA)などの任意のタイプのコンピューティングデバイスにおいて実施することができる。
システム100は、分離実行環境104及び信頼アクティブ化エンジン106を有する。分離実行環境104は、低特権アプリケーション102をユーザプロセス108において実行するように構成される。ユーザプロセス108は、ユーザプロセス108で動作するアプリケーション102と、アプリケーション102がアクセスを許容される許可又は能力とを識別するトークン110に関連付けられる。トークン110は、ユーザセキュア識別子(SID)、パッケージSID及びアプリケーションの能力を含むことができる。ユーザSIDはユーザプロセスを識別し、パッケージSIDはアプリケーションを識別する。上記能力は、アプリケーション102が要求するリソースへの、ユーザ許可されたアクセスである。
最初に、アプリケーション102がシステム100にインストールされると、アプリケーション102はオペレーティングシステムに登録する。アプリケーション102に対するユーザプロセス108が作成され、トークン110がユーザプロセス108に関連付けられる。アプリケーション102は、稼働すると、基礎信頼コンポーネントのアクティブ化を要求する(ブロック112)。1つ又は複数の実施形態において、基礎信頼コンポーネントに対するアクセスは、APIコールを通じて容易になる。
APIを、ダイナミックリンクライブラリ(DLL)を通じて、又は実行可能ファイルを通じて実装することができる。DLLは、複数のプロセスによって同時に使用されることが可能なコード及びデータを含む共有ライブラリである。オブジェクト指向プログラミング言語において、APIは、1組のクラス定義を含むことができる。クラスのインスタンスはオブジェクトと呼ばれ、該オブジェクトは、APIをコールするか、又はアクティブ化するのに使用される。オブジェクトは、APIを実装するデータとメソッドからなるデータ構造として表すことができる。このデータは、プロセスによって使用されてAPIをコールする変数を含むことができる。
信頼アクティブ化エンジン106は、APIコールを処理し、APIデータベース114においてAPIに関連付けられる信頼レベルを探す。APIデータベース114は、低特権アプリケーションによる改ざんから保護される。コンポーネントが基礎信頼レベルに関連付けられている場合、信頼アクティブ化エンジン106は、APIデータベース114に格納された実行可能コードを使用して、APIオブジェクトを生成する。基礎信頼オブジェクト120又はAPIオブジェクトは、次いでユーザプロセス108に転送されて、ここに格納される(ブロック118)。その後、APIコールの起動は、分離実行環境104から継続する。
図2は、例示システム130を図示している。例示システム130は、低特権アプリケーション102が分離実行環境104の外部にあるブローカプロセス内で部分的信頼コンポーネントにアクセスするのを可能にするように構成される。システム130は、アプリケーション102をユーザプロセス108において実行するように構成される分離実行環境104を有する。ユーザプロセス108は、ユーザプロセス108で動作するアプリケーション102と、アプリケーション102がアクセスを許容される許可又は能力とを識別するトークン110に関連付けられる。トークン110は、上記のように、ユーザセキュア識別子(SID)、パッケージSID及びアプリケーションの能力を含むことができる。
上記のように、アプリケーション102に対してユーザプロセス108が作成され、トークン110がユーザプロセス108に関連付けられる。アプリケーション102は、稼働すると、APIコールを通じて容易にされる部分的信頼コンポーネントのアクティブ化を要求する(ブロック132)。信頼アクティブ化エンジン106は、APIコールを処理し、APIデータベース114に格納されたデータからAPIに関連付けられた信頼レベルを探す。コンポーネントが部分的信頼レベルに関連付けられる場合、信頼アクティブ化エンジン106は、ブローカプロセス134を生成する。ブローカプロセス134は、該ブローカプロセス134内に格納されるAPIオブジェクトを生成する。ブローカプロセス134は、データをユーザプロセス108に戻し(ブロック136)、ブローカプロセス134との通信におけるアプリケーションの使用のために、部分的信頼コンポーネントに対応するAPIを起動する(ブロック140)。ブローカは、ブローカプロセス134内でAPIメソッドの実行を開始する。
図3は、例示システム150を図示している。例示システム150は、低特権アプリケーション102が完全信頼コンポーネントに直接アクセスするのを可能にするように構成される。システム150は、低特権アプリケーション102をユーザプロセス108において実行するように構成された分離実行環境104を有する。ユーザプロセス108は、ユーザプロセス108で実行中のアプリケーション102と、アプリケーション102がアクセスを許容される許可又は能力とを識別するトークン110に関連付けられる。トークン110は、上記のように、ユーザセキュア識別子(SID)、パッケージSID及びアプリケーションの能力を含むことができる。
信頼アクティブ化エンジン106は、アプリケーションからの、完全信頼コンポーネントをアクティブ化する要求を処理する(ブロック152)。この要求は、APIコールを通じて行われ、信頼アクティブ化エンジン106は、APIデータベース114においてAPIに関連付けられる信頼レベルを探す。信頼アクティブ化エンジン106は、コンポーネントが完全信頼レベルに関連付けられると決定すると、APIをアクティブ化せず、代わりにエラーメッセージをアプリケーションに返す(ブロック154)。
図1〜3に示されるシステムは、特定の構成において限定的な数の要素を有するが、これらのシステムは、意図した実装のための代替的な構成において、より多くの又はより少ない要素を含むことがある。例えば、アプリケーションコードは、限定ではないが、ハイパーテキストマークアップ言語(HTML)で書かれるWindows(登録商標)Web アプリケーション、カスケードスタイルシート(CSS)、或いは管理コード又はネイティブコードで書かれるJavaScript(登録商標)及びModern Clientアプリケーションなどの他の形式のアプリケーションを含むことができる。
さらに、図1〜3に示されるシステムはそれぞれ、複数のコンポーネント、プログラム、プロシージャ、モジュールを有するコンピュータ実装システムを備えてもよい。本明細書で使用されるとき、これらの用語は、ハードウェア、ハードウェアとソフトウェアの組み合わせ又はソフトウェアのいずれかを含む、コンピュータ関連のエンティティを指すように意図される。例えば、図1〜3に示される要素を、プロセッサ上で動作するプロセス、ハードディスクドライブ、(光及び/又は磁気記憶媒体の)複数の記憶デバイス、オブジェクト、実行可能ファイル、実行スレッド、プログラム並びに/或いはコンピュータとして実装してもよい。1つ又は複数の要素が、プロセス及び/又は実行スレッド内に存在してもよく、所与の実装に応じて、1つの要素が1つのコンピュータに局所化されても、並びに/或いは2つ又はそれ以上のコンピュータの間に分散されてもよい。諸実施形態はこの手法に限定されない。
次に、様々な例示的方法を参照する、諸実施形態の動作のより詳細な検討に移る。代表的な方法は、必ずしも提示された順序で実行される必要はなく、他に示されていない限り、任意の特定の順序で実行してもよいことが認識されよう。さらに、方法に関して説明される様々な動作は、直列に実行しても、並列に実行してもよく、或いは直列的動作と並列的動作の組み合わせで実行してもよい。これらの方法は、説明される実施形態、或いは設計及び性能の制約の所与の組に応じた代替的な実施形態の1つ又は複数のハードウェア要素及び/又はソフトウェア要素を使用して実装することができる。例えば、これらの方法を、論理デバイス(例えば、汎用のコンピュータ又は専用のコンピュータ)によって実行するためのロジック(例えば、コンピュータプログラム命令)として実装することができる。
図4は、信頼レベルアクティブ化の動作を図示するフローチャートである。最初に、アプリケーション102を、任意のソースからコンピューティングデバイスにダウンロードする(ブロック160)。一実施形態において、ダウンロードされるアプリケーションは、アプリケーションコード及びマニフェストファイルを含むパッケージの形式とすることができる。このパッケージを、コンピューティングデバイスに存在するオペレーティングシステムに登録することができる(ブロック162)。一実施形態において、Windows(登録商標)ベースのオペレーティングシステムを用いることができ、パッケージをオペレーティングシステムのレジストリに登録することができる。登録されると、オペレーティングシステムは、アプリケーション102に対する分離実行環境104を作成し、アプリケーション102のアクティブ化に際して、アプリケーション102を実行するユーザプロセス108を実行することができる(ブロック164)。例えば、分離実行環境104は、アプリケーションのレジストリ設定を分離実行環境104に対して設定し、アプリケーションのために有界の(bounded)アドレス空間を割り当て、そしてアプリケーションが動作する個別のプロセスを管理する、別個のソフトウェアモジュールによって容易にされる。アプリケーション102の実行の間、アプリケーション102は、オペレーティングシステムランタイムコンポーネントを要求する(ブロック166)。
図5を参照すると、プロセスは、信頼レベルコンポーネントへのアクセスを要求するアプリケーションに関連付けられる特権レベルを決定する(ブロック170)。信頼アクティブ化エンジン106は。APIコールを、上記要求を行っているユーザプロセス108から受信し、ユーザプロセス108の識別情報を決定する。信頼アクティブ化エンジン106は、ユーザプロセス108の識別情報を、APIコールで渡されたトークン110から決定する。トークン110のパッケージSIDが、分離実行環境104内で実行中のプロセスのためのオペレーティングシステムレジストリ内のエントリに合致する場合、信頼アクティブ化エンジン106は、コール側のアプリケーションが低特権レベルを有すると決定する。そうでなければ、信頼アクティブ化エンジン106は、コール側のアプリケーションが高特権レベルを有すると決定する。
低特権アプリケーションが、信頼レベルコンポーネントへのアクセスを要求している場合(ブロック170がYES)、次いで処理は、信頼レベルコンポーネントのタイプを決定する(ブロック172)。そうではない場合(ブロック170がNO)、高特権アプリケーションは、すべての信頼レベルコンポーネントへのアクセスを有しており、したがって高特権アプリケーションは、その実行環境から信頼レベルコンポーネントを起動することができる(ブロック171)。
低特権アプリケーションの場合、信頼アクティブ化エンジン106は、APIコールにおいて要求された信頼レベルコンポーネントのタイプを決定する(ブロック172)。信頼アクティブ化エンジン106は、各コンポーネントに関連付けられた信頼レベルを含むAPIデータベース114内の要求されたコンポーネントに対応する。要求されたコンポーネントが基礎信頼レベルに関連付けられる場合(ブロック174がYES)、次いで信頼アクティブ化エンジンは、APIオブジェクトを生成する(ブロック176)。APIオブジェクトは次いで、分離実行環境104内のユーザプロセスのアドレス空間に送られる(ブロック176)。APIコールに関連付けられたメソッドの実行は、分離実行環境104から継続する(ブロック176)。
そうではなく(ブロック174がNO)、要求されたコンポーネントが部分的信頼レベルに関連付けられている場合(ブロック178がYES)、次いでAPIコールを実行するブローカプロセス134が生成される(ブロック180)。信頼アクティブ化エンジン106は、ブローカプロセス134を作成し、ブローカプロセス134において部分的信頼コンポーネント138をアクティブ化する(ブロック180)。ブローカプロセス134は次いで、部分的信頼コンポーネント138に関連付けられたAPIコールを起動することによって、部分的信頼コンポーネント138をアクティブ化する(ブロック180)。ブローカプロセス134は、APIオブジェクトを生成する(ブロック180)。このオブジェクトに関連するデータを、その後アプリケーション102からAPIコールを起動する際に使用され得る、分離実行環境104内のユーザプロセス108に送ることができる(ブロック180)。APIコールに関連付けられたメソッドの実行は、ブローカプロセス134において行われる(ブロック180)。
要求されたコンポーネントが完全信頼レベルに関連付けられる場合(ブロック182がYES)、次いで、信頼アクティブ化エンジン106は、完全信頼コンポーネントへのアクセスを拒否して、失敗の応答をユーザプロセスに返す(ブロック184)。次に、本明細書で説明される実施形態を用いる動作環境の説明に移る。
図6を参照すると、例示的な動作環境250の概略的なブロック図が示されている。動作環境250は、通信フレームワーク256を通じて1つ又は複数のサーバ258と通信する1つ又は複数のクライアントを含むことができる。一実施形態において、クライアント254を、システム100、130及び150を具現化するコンピューティングデバイスとして実装することができる。サーバ258は、クライアント254に提供されるアプリケーションコードのソースとして実装することができる。アプリケーションコードのソースは、例えば、アプリケーションストア、サーバ、電子メールサーバ及びウェブサーバなどである。各クライアント254は、クライアント254に対してローカルに情報を格納する1つ又は複数のクライアントデータストア260に結合される。各サーバ258は、サーバ258に対してローカルに情報を格納する1つ又は複数のサーバデータストア262に結合される。
クライアント254を、ハードウェアデバイス、ソフトウェアモジュール又はこれらの組み合わせとして具現化することができる。そのようなハードウェアデバイスの例には、限定ではないが、コンピュータ(例えば、サーバ、パーソナルコンピュータ、ラップトップなど)、携帯電話、個人用携帯情報端末、又は任意のタイプのコンピューティングデバイスが含まれる。クライアント254は、単一の実行経路、複数の同時実行経路(例えば、スレッド、プロセスなど)又は任意の他の方法で実行される命令を有するソフトウェアモジュールとして具現化することもできる。
サーバ258は、ハードウェアデバイス、ソフトウェアモジュール又はこれらの組み合わせとして具現化することができる。そのようなハードウェアデバイスの例には、限定ではないが、コンピュータ(例えば、サーバ、パーソナルコンピュータ、ラップトップなど)、携帯電話、個人用携帯情報端末又は任意のタイプのコンピューティングデバイスが含まれる。サーバ258は、単一の実行経路、複数の同時実行経路(例えば、スレッド、プロセスなど)又は任意の他の方法で実行される命令を有するソフトウェアモジュールとして具現化することもできる。
通信フレームワーク256は、クライアント254とサーバ258との間の通信を容易にする。一実施形態において、通信フレームワーク256を、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク又はこれらの組み合わせなどの通信ネットワークとして具現化することができる。通信フレームワーク256は、有線又は無線ネットワークなど、任意の通信プロトコルを用いる任意のタイプの通信媒体を具現化することができる。
図7を参照すると、クライアント254は、ネットワークインタフェース270、プロセッサ272及びメモリ274を有することができる。プロセッサ272は、任意の市販のプロセッサとすることができ、デュアルマイクロプロセッサ及びマルチプロセッサアーキテクチャを含むことができる。ネットワークインタフェース270は、クライアント254とサーバ258との間の通信経路を提供するために、クライント254と通信フレームワーク256との間の有線又は無線通信を容易にする。
メモリ274は、プロセッサ実行可能命令、プロシージャ、アプリケーション及びデータを格納することができる任意のコンピュータ読取可能記憶媒体又はコンピュータ読取可能媒体とすることができる。コンピュータ読取可能媒体は、搬送波を通じて伝送される変調データ信号などの伝搬信号には関連しない。コンピュータ読取可能媒体は、任意のタイプのメモリデバイス(例えば、ランダムアクセスメモリ、読み取り専用メモリなど)、磁気記憶装置、揮発性記憶装置、非揮発性記憶装置、光記憶装置、DVD、CD、フロッピー(登録商標)ドライブ、ディスクドライブ、フラッシュメモリなどとすることができる。メモリ274は、1つ又は複数の外部記憶デバイス、或いはリモートに配置される記憶デバイスを含むこともできる。メモリ274は、以下のような命令及びデータを含むことができる。
・オペレーティングシステム276
・レジストリ278
・ユーザプロセス108、アプリケーション102、トークン110及び基礎信頼オブジェクト120を有する分離実行環境104
・信頼アクティブ化エンジン106
・APIデータベース114
・部分的信頼オブジェクト138を有するブローカプロセス134
・アプリケーション282及びマニフェストファイル284を有するパッケージ280
・様々な他のアプリケーション及びデータ286
本主題を、構造的特徴及び/又は方法の動作に特有の言葉で説明してきたが、添付の特許請求の範囲で定義される本主題は、上述の特定の特徴及び動作に必ずしも限定されないことを理解されたい。むしろ、上述の特定の特徴及び動作は、特許請求の範囲を実装する例示的な形式として開示される。
例えば、システムの様々な実施形態を、ハードウェア要素、ソフトウェア要素又はその双方の組み合わせを使用して実装することができる。ハードウェア要素の例には、デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、回路要素、統合回路、アプリケーション固有の統合回路、プログラム可能な論理デバイス、デジタル信号プロセッサ、フィールドプログラム可能ゲートウェイ、メモリユニット、論理ゲートなどが含まれる。ソフトウェア要素の例には、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、ソフトウェアインタフェース、アプリケーションプログラミングインタフェース、命令セット、コンピューティングコード、コードセグメント及びこれらの任意の組み合わせが含まれる。ハードウェア要素を使用して実施形態を実装するかソフトウェア要素を使用して実装するかの決定は、所与の実装に応じて、所望の計算レート、パワーレベル、帯域幅、計算時間、ロードバランス、メモリリソース、データバススピード及び他の設計的制約若しくは性能制約などの任意の数のファクタにしたがって変化させることができる。
一部の実施形態は、命令又はロジックを格納する記憶媒体を備えることができる。記憶媒体の例には、揮発性メモリ若しくは不揮発性メモリ、取外し可能若しくは取外し不可能メモリ、消去可能又は消去不可能メモリ、及び書き込み又は再書き込み可能メモリを含め、電子的データを格納することが可能な1つ又は複数のタイプのコンピュータ読取可能記憶媒体が含まれる。ロジックの例には、プログラム、プロシージャ、モジュール、アプリケーション、コードセグメント、プログラムスタック、ミドルウェア、ファームウェア、メソッド、ルーチンなどの様々なソフトウェアコンポーネントが含まれる。一実施形態において、例えば、コンピュータ読取可能記憶媒体は、プロセッサによって実行されると、該プロセッサに説明された実施形態にかかる方法及び/又は操作を実行させる、実行可能なコンピュータプログラム命令を格納することができる。実行可能なコンピュータプログラム命令を、特定の関数を実行するようにコンピュータに指示するための、予め定義されたコンピュータ言語、マナー又はシンタックスに応じて実装することができる。このような命令は、任意の適切な高レベル、低レベル、オブジェクト指向、ビジュアル、コンパイル済み及び/又は翻訳済みのプログラミング言語を使用して実装することができる。

Claims (10)

  1. プロセッサ実行可能な命令を格納するコンピュータ読取可能記憶媒体であって、
    アプリケーションを実行する分離実行環境を作成する命令と、
    前記アプリケーションによって要求されたコンポーネントを実行するブローカプロセスを作成する命令であって、前記コンポーネントは、オペレーティングシステムによって制御されるリソースにアクセスするのに使用される、命令と、
    前記コンポーネントが部分的信頼レベルに関連付けられるとき、前記コンポーネントを前記ブローカプロセスにおいて実行する命令と
    を含む、コンピュータ読取可能記憶媒体。
  2. コンポーネントに関連付けられる複数の信頼レベルを認識する命令をさらに含む、請求項1に記載のコンピュータ読取可能記憶媒体。
  3. コンポーネントが完全信頼レベルに関連付けられるとき、前記分離実行環境における当該コンポーネントの実行を拒否する、請求項1に記載のコンピュータ読取可能記憶媒体。
  4. 前記コンポーネントが部分的信頼レベルに関連付けられるとき、前記ブローカプロセスにおいて実行される前記コンポーネントに関連付けられるAPIオブジェクトを生成する命令をさらに含む、請求項1に記載のコンピュータ読取可能記憶媒体。
  5. 前記コンポーネントが部分的信頼レベルに関連付けられるとき、前記ブローカプロセスにおいて実行される前記コンポーネントに関連付けられるAPIオブジェクトを生成する命令をさらに含む、請求項1に記載のコンピュータ読取可能記憶媒体。
  6. プロセッサと、
    前記プロセッサに接続されるメモリと
    を備えた装置であって、前記メモリが信頼アクティブ化モジュールを有し、前記信頼アクティブ化モジュールは、前記プロセッサによって実行されると、選択的特権レベルに関連付けられるアプリケーションが選択的信頼レベルを有するコンポーネントにアクセスすることができるかどうかを決定する命令を含み、前記アプリケーションは、前記信頼アクティブ化モジュールとは別個の実行環境において動作し、前記コンポーネントは、オペレーティングシステムによって制御されるリソースにアクセスするのに使用される、装置。
  7. 前記信頼アクティブ化モジュールは、前記プロセッサにおいて実行されると、低特権アプリケーションが、完全信頼レベルを有するコンポーネントを実行するのを回避する命令をさらに含む、請求項6に記載の装置。
  8. 前記信頼アクティブ化モジュールは、前記プロセッサにおいて実行されると、高特権アプリケーションが任意の信頼レベルコンポーネントを実行するのを可能にする命令をさらに含む、請求項6に記載の装置。
  9. 前記信頼アクティブ化モジュールは、前記プロセッサにおいて実行されると、前記コンポーネントが基礎信頼レベルを有するとき、低特権アプリケーションに、分離実行環境において実行するように構成された実行可能コードを提供する命令をさらに含む、請求項6に記載の装置。
  10. 前記信頼アクティブ化モジュールは、前記プロセッサにおいて実行されると、低特権アプリケーションを分離実行環境において実行し、部分的信頼レベルを有するコンポーネントを前記分離実行環境とは別個の実行環境において実行するブローカプロセスを構成する命令をさらに含む、請求項6に記載の装置。
JP2014521651A 2011-07-20 2012-07-10 信頼レベルのアクティブ化 Active JP5985631B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/186,474 2011-07-20
US13/186,474 US8973158B2 (en) 2011-07-20 2011-07-20 Trust level activation
PCT/US2012/045998 WO2013012592A1 (en) 2011-07-20 2012-07-10 Trust level activation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2016153045A Division JP6248153B2 (ja) 2011-07-20 2016-08-03 信頼レベルのアクティブ化

Publications (3)

Publication Number Publication Date
JP2014521184A true JP2014521184A (ja) 2014-08-25
JP2014521184A5 JP2014521184A5 (ja) 2015-08-27
JP5985631B2 JP5985631B2 (ja) 2016-09-06

Family

ID=47556777

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014521651A Active JP5985631B2 (ja) 2011-07-20 2012-07-10 信頼レベルのアクティブ化
JP2016153045A Active JP6248153B2 (ja) 2011-07-20 2016-08-03 信頼レベルのアクティブ化

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2016153045A Active JP6248153B2 (ja) 2011-07-20 2016-08-03 信頼レベルのアクティブ化

Country Status (6)

Country Link
US (2) US8973158B2 (ja)
EP (1) EP2734949B1 (ja)
JP (2) JP5985631B2 (ja)
KR (1) KR101970744B1 (ja)
CN (1) CN103649963B (ja)
WO (1) WO2013012592A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018084866A (ja) * 2016-11-21 2018-05-31 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130061316A1 (en) * 2011-09-06 2013-03-07 Microsoft Corporation Capability Access Management for Processes
US8990561B2 (en) 2011-09-09 2015-03-24 Microsoft Technology Licensing, Llc Pervasive package identifiers
US9773102B2 (en) 2011-09-09 2017-09-26 Microsoft Technology Licensing, Llc Selective file access for applications
US9800688B2 (en) 2011-09-12 2017-10-24 Microsoft Technology Licensing, Llc Platform-enabled proximity service
US9524477B2 (en) * 2012-05-15 2016-12-20 Apple Inc. Utilizing a secondary application to render invitational content in a separate window above an allocated space of primary content
US10356204B2 (en) 2012-12-13 2019-07-16 Microsoft Technology Licensing, Llc Application based hardware identifiers
US9515832B2 (en) 2013-06-24 2016-12-06 Microsoft Technology Licensing, Llc Process authentication and resource permissions
US9282100B2 (en) * 2013-12-02 2016-03-08 Cisco Technology, Inc. Privilege separation
US9483636B2 (en) 2014-01-17 2016-11-01 Microsoft Technology Licensing, Llc Runtime application integrity protection
CN105404819A (zh) * 2014-09-10 2016-03-16 华为技术有限公司 一种数据访问控制方法、装置以及终端
US9600682B2 (en) * 2015-06-08 2017-03-21 Accenture Global Services Limited Mapping process changes
US9785783B2 (en) * 2015-07-23 2017-10-10 Ca, Inc. Executing privileged code in a process
US20170149828A1 (en) 2015-11-24 2017-05-25 International Business Machines Corporation Trust level modifier
EP3314516B1 (en) 2016-01-26 2022-04-13 Hewlett-Packard Development Company, L.P. System management mode privilege architecture
US10360135B2 (en) * 2016-03-31 2019-07-23 Microsoft Technology Licensing, Llc Privilege test and monitoring
KR20180071679A (ko) 2016-12-20 2018-06-28 삼성전자주식회사 사용자 단말 장치 및 그의 제어 방법
US10503908B1 (en) 2017-04-04 2019-12-10 Kenna Security, Inc. Vulnerability assessment based on machine inference
US10728500B2 (en) 2018-06-13 2020-07-28 At&T Intellectual Property I, L.P. Object-managed secured multicast system
US11171983B2 (en) * 2018-06-29 2021-11-09 Intel Corporation Techniques to provide function-level isolation with capability-based security
US10762244B2 (en) * 2018-06-29 2020-09-01 Intel Corporation Securely exposing an accelerator to privileged system components
JP2020135555A (ja) * 2019-02-21 2020-08-31 Necソリューションイノベータ株式会社 処理実行方法
US20200364354A1 (en) * 2019-05-17 2020-11-19 Microsoft Technology Licensing, Llc Mitigation of ransomware in integrated, isolated applications
US11895105B2 (en) * 2020-06-19 2024-02-06 Apple, Inc. Authenticated interface element interactions
US11880719B2 (en) * 2022-01-20 2024-01-23 Dell Products L.P. Trust-aware and adaptive system to aid virtual/human intervention using an API-based mechanism

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002517852A (ja) * 1998-06-12 2002-06-18 マイクロソフト コーポレイション 信頼できないコンテントを安全に実行するための方法およびシステム
JP2004252584A (ja) * 2003-02-18 2004-09-09 Nec Corp データアクセス制御装置
JP2008102838A (ja) * 2006-10-20 2008-05-01 Canon Inc 情報処理方法およびプログラム
JP2010191681A (ja) * 2009-02-18 2010-09-02 Ntt Docomo Inc データ処理装置、データ処理方法、データ処理プログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167522A (en) 1997-04-01 2000-12-26 Sun Microsystems, Inc. Method and apparatus for providing security for servers executing application programs received via a network
US6275938B1 (en) 1997-08-28 2001-08-14 Microsoft Corporation Security enhancement for untrusted executable code
US6691230B1 (en) 1998-10-15 2004-02-10 International Business Machines Corporation Method and system for extending Java applets sand box with public client storage
AU8000800A (en) * 1999-10-05 2001-05-10 Ejasent Inc. Virtual network environment
US7284124B1 (en) * 2000-06-05 2007-10-16 Microsoft Corporation Trust level based platform access regulation application
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US7216369B2 (en) 2002-06-28 2007-05-08 Intel Corporation Trusted platform apparatus, system, and method
US7694328B2 (en) * 2003-10-21 2010-04-06 Google Inc. Systems and methods for secure client applications
US7380087B2 (en) 2004-08-25 2008-05-27 Microsoft Corporation Reclaiming application isolated storage
WO2006090384A2 (en) * 2005-02-22 2006-08-31 Kidaro (Israel) Ltd. Data transfer security
US20070260577A1 (en) 2006-03-30 2007-11-08 Microsoft Corporation Providing COM access to an isolated system
JP2010282242A (ja) * 2007-08-20 2010-12-16 Nec Corp アクセス制御システム、アクセス制御方法およびアクセス制御用プログラム
US9218200B2 (en) * 2008-08-21 2015-12-22 Vmware, Inc. Selective class hiding in open API component architecture system
US8745361B2 (en) 2008-12-02 2014-06-03 Microsoft Corporation Sandboxed execution of plug-ins
US20100199357A1 (en) 2009-02-02 2010-08-05 Microsoft Corporation Secure hosting for untrusted code
US8850601B2 (en) * 2009-05-18 2014-09-30 Hewlett-Packard Development Company, L.P. Systems and methods of determining a trust level from system management mode
US8627451B2 (en) 2009-08-21 2014-01-07 Red Hat, Inc. Systems and methods for providing an isolated execution environment for accessing untrusted content

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002517852A (ja) * 1998-06-12 2002-06-18 マイクロソフト コーポレイション 信頼できないコンテントを安全に実行するための方法およびシステム
JP2004252584A (ja) * 2003-02-18 2004-09-09 Nec Corp データアクセス制御装置
JP2008102838A (ja) * 2006-10-20 2008-05-01 Canon Inc 情報処理方法およびプログラム
JP2010191681A (ja) * 2009-02-18 2010-09-02 Ntt Docomo Inc データ処理装置、データ処理方法、データ処理プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018084866A (ja) * 2016-11-21 2018-05-31 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム

Also Published As

Publication number Publication date
WO2013012592A1 (en) 2013-01-24
EP2734949A1 (en) 2014-05-28
US20150106915A1 (en) 2015-04-16
CN103649963A (zh) 2014-03-19
EP2734949B1 (en) 2020-11-04
US8973158B2 (en) 2015-03-03
US9465948B2 (en) 2016-10-11
JP2017016669A (ja) 2017-01-19
KR20140045502A (ko) 2014-04-16
EP2734949A4 (en) 2015-05-13
JP6248153B2 (ja) 2017-12-13
US20130024929A1 (en) 2013-01-24
JP5985631B2 (ja) 2016-09-06
KR101970744B1 (ko) 2019-04-22
CN103649963B (zh) 2016-02-03

Similar Documents

Publication Publication Date Title
JP6248153B2 (ja) 信頼レベルのアクティブ化
US20220308941A1 (en) Sharing extension points to allow an application to share content via a sharing extension
US10949247B2 (en) Systems and methods for auditing a virtual machine
Holla et al. Android based mobile application development and its security
KR101565230B1 (ko) 샌드박스에 참조들을 유지하는 시스템 및 방법
US8887152B1 (en) Android application virtual environment
US9871800B2 (en) System and method for providing application security in a cloud computing environment
JP2010511227A (ja) 信頼性の低いアドレス空間への実行コードのコンパイル
US10171502B2 (en) Managed applications
Sensaoui et al. An in-depth study of MPU-based isolation techniques
US10482034B2 (en) Remote attestation model for secure memory applications
US20160342788A1 (en) Generating packages for managed applications
Ahmadpanah et al. Securing node-red applications
Zhang et al. ReACt: A Resource-centric Access Control System for Web-app Interactions on Android
Zhang et al. Achieving resource-centric access control for web-app interactions on android
Chiaramida Reliability Issues among Android Components: Analysis, Testing and Solutions
Davidson Enhancing Mobile Security and Privacy through App Splitting
Antukh BLACKBERRY Z10 RESEARCH PRIMER

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150707

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150707

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160630

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160803

R150 Certificate of patent or registration of utility model

Ref document number: 5985631

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250