セキュリティ境界を提供するためのコンピューター実行方法であって、前記コンピューター実行方法は、セキュリティモニターを実行すること、1つまたは複数のシステムリソースにアクセスするためにアプリケーションによって行われた1つまたは複数のアプリケーションプログラミングインターフェイスAPIコールを前記セキュリティモニターによってインターセプトすることと、データを、前記システムリソースにアクセスすることに関連するセキュリティモニターのデータベースに記憶すること、および前記アプリケーションのランタイムにおいて、前記1つまたは複数のAPIコールを行う前記アプリケーションが、前記システムリソースにアクセスすることを認可されているかを前記セキュリティモニターによって判定することのためにコンピューター実行動作を行うステップを含むことを特徴とするコンピューター実行方法。前記アプリケーションに関連するデータが前記セキュリティモニターのデータベースにある場合は、前記システムリソースへの前記アプリケーションのアクセスを許可するステップと、前記アプリケーションに関連するデータが前記セキュリティモニターのデータベースにない場合は、前記システムリソースへの前記アプリケーションのアクセスを妨げるステップとをさらに含むことを特徴とする請求項1に記載のコンピューター実行方法。前記システムリソースへのアクセスを妨げられた前記アプリケーションに関するデータをアドミニストレーターに提供するステップをさらに含むことを特徴とする請求項2に記載のコンピューター実行方法。1つまたは複数のアクセス制御リストACLを、前記アプリケーションによって使用されるのを要求された前記システムリソースに関連付けるステップと、前記1つまたは複数のACLを前記セキュリティモニターのデータベースに記憶するステップとをさらに含むことを特徴とする請求項1に記載のコンピューター実行方法。前記1つまたは複数のACLを前記アプリケーションによって使用されることを要求された前記システムリソースに関連付けるステップ、および前記1つまたは複数のACLを前記セキュリティモニターのデータベースにロードするステップは、前記セキュリティモニターが学習モードで動作する場合に行われることを特徴とする請求項4に記載のコンピューター実行方法。前記アプリケーションは、仮想アプリケーションであることを特徴とする請求項1に記載のコンピューター実行方法。前記仮想アプリケーションは、他の仮想アプリケーションが実行している単一の物理マシン上で実行していることを特徴とする請求項6に記載のコンピューター実行方法。前記仮想アプリケーションおよび他の仮想アプリケーションは、パーティション内で実行されることを特徴とする請求項7に記載のコンピューター実行方法。前記システムリソースは、通信ポート、レジストリ、オープンデータベースコネクティビティ接続ストリング、またはエンドポイントのうちの少なくとも1つを含むことを特徴とする請求項1に記載のコンピューター実行方法。コンピューターによって実行される場合、前記コンピューターに、1つまたは複数のシステムリソースにアクセスするためにアプリケーションによって行われた1つまたは複数のアプリケーションプログラミングインターフェイスAPIコールをセキュリティモニターによってインターセプトさせ、前記APIコールに関するデータをセキュリティモニターのデータベースに記憶させ、前記セキュリティモニターのデータベースに記憶されている前記データに基づいて前記システムリソースにアクセスすることから1つまたは複数の他のアプリケーションを隔離させるコンピューター可読命令を有することを特徴とするコンピューター可読記憶媒体。前記コンピューターによって実行される場合、前記コンピューターに仮想化層の中にセキュリティモニターを提供させ、1つまたは複数のアクセス制御リストACLを前記システムリソースに関連付けさせるさらなるコンピューター実行可能命令を有することを特徴とする請求項10に記載のコンピューター可読記憶媒体。前記コンピューターによって実行される場合、前記コンピューターに、前記アプリケーションに関連するデータが前記セキュリティモニターのデータベースに見つかった場合は、前記システムリソースへの前記アプリケーションのアクセスを許可させ、前記アプリケーションに関連するデータが前記セキュリティモニターのデータベースに見つからない場合は、前記アプリケーションが前記システムリソースにアクセスするのを妨げさせるさらなるコンピューター実行可能命令を有することを特徴とする請求項11に記載のコンピューター可読記憶媒体。前記システムリソースにアクセスするのを妨げられた前記アプリケーションに関するデータをアドミニストレーターに提供するステップをさらに含むことを特徴とする請求項12に記載のコンピューター可読記憶媒体。前記アドミニストレーターは前記システムリソースにアクセスするのを妨げられた前記アプリケーションに前記システムリソースへのアクセスを許可することができることを特徴とする請求項13に記載のコンピューター可読記憶媒体。前記アプリケーションは仮想アプリケーションであることを特徴とする請求項10に記載のコンピューター可読記憶媒体。本明細書で開示される概念および技術は、セキュリティ境界を提供するためである。本明細書で提示される概念および技術の実現を通じて、アプリケーション間にセキュアな境界を提供するやり方で同じコンピューター上で複数のアプリケーションを実行することができる。このようにして、普通なら望ましくないまたは不可能であり得る同じ物理的コンピューターもしくは仮想コンピューター上で2つ以上のアプリケーションを実行することができる。したがって、本明細書で開示される技術は、互換不可能なアプリケーションまたは衝突するアプリケーションを実行するために必要とされるVMの数および関連ライセンス使用料を低減するために利用することができる。本明細書で提示される一態様によれば、セキュリティモニターは、アプリケーションを実行することにより行われるAPIアプリケーションプログラミングインターフェイスコールを監視すること、および、アプリケーションによって使用されるリソースを識別することを学習モードで実行する。セキュリティモニターは、識別されたリソースのそれぞれのための編集可能な仮想アクセス制御リストACLを、完全なアクセスからオフリミットまでの各識別されたシステムリソースへのアクセスを制御するために使用することができるセキュリティモニターのデータベースに追加する。セキュリティモニターがAPIコールによってアクセスされたリソースを識別した後は、セキュリティモニターは、APIコールが正常に進行することを許可する。動作の強制モードでは、セキュリティモニターは、アプリケーションがシステムリソースにアクセスすることを認可されているかどうかを判定するためにアプリケーションを実行することにより行われるAPIコールを監視する。特に、セキュリティモニターが強制モードにある場合は、セキュリティモニターはアプリケーションによって行われるAPIコールをインターセプトする。次いで、セキュリティモニターは、要求アプリケーションが要求されたシステムリソースにアクセスすることを認可されているかどうかを判定するためにセキュリティモニターのデータベースにアクセスする。セキュリティモニターが、アプリケーションが要求されたシステムリソースにアクセスすることを認可されていると判定した場合は、APIコールは正常に進行することを許可される。セキュリティモニターが、アプリケーションが要求されたシステムリソースにアクセスすることを認可されていないと判定した場合は、セキュリティモニターは、アプリケーションによるシステムリソースへのアクセスを拒否する。システムアドミニストレーターは、拒否されたアプリケーションが要求されたシステムリソースにアクセスすることを許可するようにACLを編集することができる。本明細書で開示される実施形態は、仮想化アプリケーション、ハードウェア仮想化環境において実行する非仮想化アプリケーション、非仮想化環境において実行する非仮想化アプリケーション、および他のタイプのアプリケーションと共に利用し得ることを理解されたい。前述の保護対象はまた、コンピューター制御装置、コンピュータープロセス、コンピューティングシステム、または、コンピューター可読記憶媒体などの製品として実施してもよいことを理解されたい。上記および様々な他の特徴は、以下の詳細な説明を読むとともに関連する図面を検討することによって明らかになるであろう。この概要は、発明を実施するための形態において下記でさらに説明する概念の抜粋を簡略化された形態で紹介するために提供される。この概要は、特許請求される保護対象の主要な特徴または本質的な特徴を識別することを意図するものではなく、この概要が特許請求される保護対象の範囲を限定するために使用されることを意図するものでもない。さらに、特許請求される保護対象は、この開示の任意の部分に記載されている任意のまたはすべての欠点を解決する実装に限定されない。以下の詳細な説明は、セキュリティ境界を提供するための技術を対象とする。上記で簡潔に論じられ、以下でさらに詳細に説明されるように、アプリケーションAPIコールがインターセプトされる学習動作モードが実行される。APIコールを識別するデータは、セキュリティモニターのデータベースに記録される。アプリケーションのランタイムにおいて、セキュリティモニターは、アプリケーションが学習動作モード中にデータベースに記憶されているデータに基づいてリソースにアクセスすることを許可する。これらのプロセスに関する追加の詳細が以下で図1~図6に関して提供される。本明細書に記載の保護対象は、コンピューターシステム上でのオペレーティングシステムおよびアプリケーションプログラムの実行と共に実行するプログラムモジュールの概括的なコンテキストで提示されるが、他の実施形態が他のタイプのプログラムモジュールと組み合わせて実施されることが可能であることを当業者は理解するであろう。一般的に、プログラムモジュールは、特定のタスクを実行するまたは特定の抽象データ型を実施するルーチン、プログラム、コンポーネント、データ構造、および他のタイプの構造を含む。さらに、本明細書に記載の保護対象は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのコンシューマエレクトロニクスまたはプログラマブルコンシューマエレクトロニクス、ミニコンピューター、およびメインフレームコンピューターなどを含めて他のコンピューターシステム構成により実施されてもよいことを当業者は理解するであろう。以下の詳細な説明では、本明細書の一部を形成し、特定の実施形態または例の説明として示される添付の図面を参照する。次に、いくつかの図全体を通じて同様の数字が同様の要素を表す図面を参照すると、セキュリティ境界を提供するためのコンピューティングシステム、コンピューター可読記憶媒体、およびコンピューター実行方法の態様が提示される。図1は、本明細書に記載の主題の諸態様を実施することができる適切なコンピューティング環境100の一例を示すコンピューターソフトウェアアーキテクチャ図である。具体的には、図1は、ハードウェアの仮想化コンピューティング環境を実施するための例示的ソフトウェアアーキテクチャを示している。この技術で知られるように、仮想化は、ホストコンピューターが単一のコンピューター上で複数のオペレーティングシステムを同時に実行することができるようにする。オペレーティングシステムの各実行インスタンスは典型的には、仮想マシンと呼ばれる。仮想マシンの実行を可能にするために、ソフトウェアハイパーバイザー102を実行して仮想マシンの動作を構成、実行、および管理するための機能を提供することができる。ハイパーバイザー102は、ホストコンピューターの物理的ハードウェア106の上で、および1つまたは複数のオペレーティングシステム108A~108Cの下で実行するソフトウェアの層である。ハイパーバイザー102はハードウェアで実行してもよい。ハイパーバイザー102は、パーティションと呼ばれる隔離された実行環境を提供する。図1に示す例では、オペレーティングシステム108Aおよびアプリケーション110Aは、第1のパーティションにおいて実行し、オペレーティングシステム108Bおよびアプリケーション110Bは、第2のパーティションにおいて実行し、オペレーティングシステム108Cおよびアプリケーション110Cは、第3のパーティションにおいて実行する。ハイパーバイザー102は、各パーティションに、仮想ハードウェアリソース104例えば、メモリ、デバイス、および中央処理装置CPUサイクルのそれ自体のセットを提供する。ハイパーバイザー102はまた、必要に応じて基本ハードウェア106へのアクセスを制御およびアービトレートする。下記でより詳細に説明するように、ハイパーバイザー102は、各システムリソースにアクセス制御リストACLを割り当て、システムリソースを使用することを許可されたアプリケーション110を含む許可リストに基づいて各システムリソースを使用するための許可を割り当てることにより同じパーティションの中で実行するアプリケーション110間にセキュリティ境界を提供するためにセキュリティ境界を提供するための本明細書で開示された機能を実行することができる。他の実施形態において、本明細書で提示する機能は、オペレーティングシステム108内で実行されてもよく、または本明細書で開示された機能を可能にするローレベルオペレーティングシステムドライバーをインストールするアプリケーションプログラムによって実行してもよい。これに関して、図1は例示のみであり、本明細書で提示している実施形態は、多くの異なるやり方で実施されてきた多くの異なるタイプの仮想化環境の中で利用されてもよいことを理解されたい。例えば、本明細書で開示する実施形態は、仮想化アプリケーション、ハードウェア仮想化環境において実行する非仮想化アプリケーション、非仮想化環境において実行する非仮想化アプリケーション、および、他のタイプのアプリケーションと共に利用してよい。図2は、セキュリティモニター206が学習動作モード学習モードで実行するソフトウェア環境200を例示するコンピューターソフトウェアアーキテクチャ図である。図2に示されているソフトウェア環境200では、1つもしくは複数のアプリケーション202がサーバーコンピューター、標準的デスクトップコンピューターもしくはラップトップコンピューター、またはテーブルコンピューターなどのコンピューター上で実行する。例えば、アプリケーション202は、人的資源HRアプリケーション、会計アプリケーション、構造化問合せ言語SQLサーバー、および同種のものを含んでよい。実行中に、アプリケーション202は、他のプログラムとの通信を容易にしてシステムリソースにアクセスするために、1つまたは複数のアプリケーションプログラミングインターフェイスAPIコールを行うことができる。本明細書で使用する場合は、システムリソースなる語は、オペレーティングシステムOSが使用のためのアクセスを別途制御しないすべてのリソースまたは対象物を包含することを理解されたい。例えば、システムリソースは、ネットワークエンドポイント、ネットワークポート、ファイル、ウィンドウ、ユーザーインターフェイスUI要素、レジストリ、オープンデータベースコネクティビティODBC接続ストリング、および他のタイプのリソースを含めるようにしてよい。学習モードの間に、セキュリティモニター206は、アプリケーション202によって行われたAPIコールをインターセプトする。これは、図2では、ブロック204として示されている。APIコールをインターセプトすることに応答して、セキュリティモニター206は、1つまたは複数の編集可能なACLをAPIコールのターゲットであるシステムリソースに関連付ける。1つまたは複数の編集可能なACLは、システムリソースへの完全なアクセスからオフリミットまでのシステムリソースへのアクセスを制御するために使用されてよい。一実施形態では、セキュリティモニター206は、1つまたは複数のACLをセキュリティモニターのデータベース208に記憶する。メタデータは、アプリケーション202によって要求されたシステムリソースを識別するデータ、およびアプリケーション202がリソースにアクセスすることを許可されているという表示を含んでよい。ACLがセキュリティモニターのデータベース208に記憶された後に、インターセプトされたAPIコールは正常に進行することを許可される。これは、図2に示すブロック210に例示してある。下記でさらに詳細に説明するように、セキュリティモニター206は、アプリケーション202のランタイムにセキュリティモニターのデータベース208のコンテンツを利用して、システムリソースへのアクセスを許可または拒否する。具体的には、セキュリティモニター206は、APIコールが前述の学習モードによって処理されているアプリケーション202によってリソースにアクセスすることを許可する。APIコールが前述の学習モードで処理されていないアプリケーション202によってシステムリソースにアクセスすることは、許可されない。この点に関して、セキュリティモニター206によってセキュリティモニターのデータベース208に記憶されているデータは、ホワイトリストとして利用される。ホワイトリストを編集してアプリケーション、例えばアプリケーション202を追加または除去することにより学習モードが行われた後に、アドミニストレーターはシステムリソースへのアクセスを許可または拒否することができる。したがって、前述のセキュリティモニターのデータベース208に記憶されているデータのタイプは例示のみであり、セキュリティモニターは他のタイプのデータを記憶することができることを理解されたい。図3は、セキュリティモニター206が動作の強制モード強制モードで実行するコンピューターソフトウェア環境300である。環境300は、同じコンピューター上で実行するアプリケーション302およびアプリケーション304を含む。アプリケーション302およびアプリケーション304はサーバー上で実行するが、これらのアプリケーションは、他のプログラムとの通信を容易にしてシステムリソースにアクセスするために、1つまたは複数のAPIコールを行うことができる。図3に示す例では、セキュリティモニター206は、前述の学習モードでアプリケーション302を処理した。しかし、アプリケーション304は、学習モードで実行されなかった。したがって、セキュリティモニターのデータベース208は、アプリケーション302によって行われたAPIコールを識別するデータを含む。セキュリティモニターのデータベース208は、アプリケーション304によって行われたAPIコールを識別するデータを含まない。強制モードでの間に、セキュリティモニター206は、アプリケーション302およびアプリケーション304によって行われたAPIコールをインターセプトする。これは、図3においてブロック306によって表されている。APIコールをインターセプトすることに応答して、セキュリティモニター206はAPIコールが許可されるべきかどうかを判定するためにセキュリティモニターのデータベース208のコンテンツにアクセスする。例えば、一実施形態では、セキュリティモニター206は、アプリケーション302およびアプリケーション304によって行われたAPIコールが許可されるべきかどうかを判定するために学習モード中に記憶されたACLおよびメタデータにアクセスする。アプリケーション302は学習モードで処理されたので、セキュリティモニター206は、アプリケーション302は要求されたシステムリソースにアクセスすることを認可されていると判定する。アプリケーション302は、システムリソースにアクセスすることを認可されているので、アプリケーション302によって行われたインターセプトされたAPIコールは、正常に進行することを許可される。これは、図3におけるブロック312および314に示されている。アプリケーション304は学習モードで実行されなかったので、セキュリティモニター206はまた、アプリケーション304はシステムリソースにアクセスすることを認可されていないと判定する。アプリケーション304はシステムリソースにアクセスすることを認可されていないので、アプリケーション304によって行われたインターセプトされたAPIコールは進行することを許可されない。図4は、学習モードを実行するセキュリティモニター206の動作の態様を例示するルーチン400を示す流れ図である。図4および他の図に関する本明細書に記載の論理的動作は、1一連のコンピューターで実行される行為またはコンピューティングシステム上で実行するプログラムモジュールとして、および/または、2コンピューティングシステムの中の相互接続されたマシンの論理回路または回路モジュールとして実行されることを理解されたい。この実施形態は、コンピューティングシステムの動作および他の要件に依存する選択の問題である。したがって、本明細書に記載の論理的動作は、状態、動作、構造デバイス、行為、またはモジュールと様々に呼ばれる。これらの動作、構造デバイス、行為およびモジュールは、ソフトウェアで、ファームウェアで、専用デジタルロジックで、およびそれらの任意の組合せで実行するようにしてよい。図に示され本明細書に記載されているものより多くの、または少ない動作を実行するようにしてもよいことを理解されたい。これらの動作は、本明細書に記載のものとは異なる順序で実行するようにしてもよい。ルーチン400は、アドミニストレーターがセキュリティモニター206を学習モードで実行する動作402から始まる。セキュリティモニター206が実行し始めた後は、ルーチン400は、コンピューター上で動作するアプリケーションがAPIコールを開始する動作404に進む。動作404から、ルーチンは動作406に進む。動作406において、セキュリティモニター206は、1つまたは複数のアプリケーションによって開始されたAPIコールをインターセプトする。APIコールをインターセプトすることに応答して、ルーチン400は、動作408に進み、ここで、セキュリティモニター206は要求されたリソースに関連するACLへのAPIコールを行うアプリケーションを追加する。アドミニストレーターはまた、アプリケーションがACLを修正することによりリソースにアクセスすることができると明記することを許可してよい。動作408から、ルーチン400は動作410に進む。動作410において、1つまたは複数のACLは、セキュリティモニターのデータベース208に記憶される。セキュリティモニター206がセキュリティモニターのデータベース208を更新した後は、ルーチン400は動作412に進み、ここで、インターセプトされたAPIコールは正常に進行することを許可される。動作412から、ルーチン400は動作414に進み、ここで、ルーチンは終了する。図5は、強制モードで動作するセキュリティモニター206の動作の諸態様を例示するルーチン500を示す流れ図である。ルーチン500は、動作502から始まり、ここで、1つまたは複数のアプリケーションは、前述のやり方でAPIコールを開始する。それに応答して、セキュリティモニター206は、動作504においてアプリケーションによって開始されたAPIコールをインターセプトする。動作506において、セキュリティモニター206は、セキュリティモニターのデータベース208にアクセスする。次いで、セキュリティモニター206は、セキュリティモニターのデータベース208に記憶されているデータを使用して、APIコールを開始するアプリケーションが要求されたシステムリソースにアクセスすることを認可されているかを判定する。これは、動作508において行われる。セキュリティモニター206が、アプリケーションが要求されたシステムリソースにアクセスすることを認可されていると判定した場合は、ルーチンは動作510に進み、ここで、サーバーはAPIコールが正常に進行することを許可する。動作512において、アプリケーション302は、要求されたリソースにアクセスすることを許可される。動作512から、ルーチン500は動作514に進み、ここで、ルーチンは終了する。動作508において、セキュリティモニター206が、アプリケーション304が要求されたシステムリソースにアクセスすることを認可されていないと判定した場合は、ルーチンは動作520に進み、ここで、サーバーはアプリケーション304によって行われるAPIコールが実行するのを妨げる。動作520から、ルーチン500は動作522に進み、ここで、ルーチンは終了する。セキュリティモニター206は失敗したAPIコールに関する情報を記憶することができることを理解されたい。この情報は、適切なユーザーインターフェイスを介してアドミニストレーターに提供されてよい。アドミニストレーターは、このデータを使用して、失敗したAPIコールを行うアプリケーションがいくつかのシステムリソースにアクセスすることを許可されるべきかどうかを判定することができる。この点に関して、アドミニストレーターは、将来の実行中にアプリケーションによるAPIコールの実行を許可するために、セキュリティモニターのデータベース208に記憶されているデータ例えばACLを修正することができる。図6は、セキュリティ境界を提供するための、本明細書に記載のソフトウェアコンポーネントを実行することができるコンピューター600のための例示的コンピューターアーキテクチャを示す。図6に示されているコンピューターアーキテクチャは、従来のデスクトップコンピューター、ラップトップコンピューター、またはサーバーコンピューターを例示し、本明細書に提示されているソフトウェアコンポーネントの任意の態様を実行するために利用されてよい。図6に示すコンピューターアーキテクチャは、CPU602中央処理装置、RAM614ランダムアクセスメモリおよびROM616読出し専用メモリを含むシステムメモリ608、ならびにメモリをCPU602に結合するシステムバス604を含む。起動中などにコンピューター600の中の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入出力システムは、ROM616に記憶されている。コンピューター600は、オペレーティングシステム618を記憶するための大容量記憶装置610、アプリケーションプログラム、および他のプログラムモジュールをさらに含み、これらは本明細書でさらに詳細に説明する。大容量記憶装置610は、バス604に接続されたマスストレージコントローラー図示せずを介してCPU602に接続される。大容量記憶装置610およびその関連コンピューター可読媒体は、コンピューター600のための不揮発性ストレージを提供する。本明細書に含まれるコンピューター可読媒体の説明はハードディスクドライブまたはCD-ROMドライブなどの大容量記憶装置を指すが、コンピューター可読媒体はコンピューター600によってアクセスされることが可能である任意の利用可能なコンピューター記憶媒体でよいことが当業者には理解されるはずである。例として、しかし限定としてではなく、コンピューター可読媒体は、コンピューター可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報の記憶のための任意の方法または技術で実装された揮発性媒体および不揮発性媒体、取外し可能な媒体および取外し不可能な媒体を含んでよい。例えば、コンピューター可読媒体は、RAM、ROM、EPROM、EEPROM、フラッシュメモリもしくは他のソリッドステートメモリ技術、CD-ROM、DVDデジタル多用途ディスク、HD-DVD、ブルーレイ、もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または所望の情報を記憶するために使用されることが可能であり、コンピューター600によってアクセスされることが可能である任意の他の媒体を含むがそれらに限定されない。様々な実施形態によれば、コンピューター600は、ネットワーク620などのネットワークを介してのリモートコンピューターへの論理的接続を使用してネットワーク接続環境で動作することができる。コンピューター600は、バス604に接続されたネットワークインターフェイスユニット606を介してネットワーク620に接続することができる。ネットワークインターフェイスユニット606は、他のタイプのネットワークおよびリモートコンピューターシステムに接続するために利用されてもよいことを理解されたい。コンピューター600はまた、キーボード、マウス、または電子スタイラス図6に示さずを含めていくつかの他のデバイスからの入力を受信し処理するために入/出力コントローラー612を含んでよい。同様に、入/出力コントローラーは、表示画面、プリンタ、または他のタイプの出力デバイス図6に示さずに出力を提供することができる。上記で簡単に述べられたように、いくつかのプログラムモジュールおよびデータファイルは、ネットワーク接続されたデスクトップコンピューター、ラップトップコンピューター、またはサーバーコンピューターの動作を制御するのに適したオペレーティングシステム618を含むコンピューター600の大容量記憶装置610およびRAM614に記憶されてよい。大容量記憶装置610およびRAM614はまた、1つまたは複数のプログラムモジュールを記憶することができる。具体的には、大容量記憶装置610およびRAM614は、それぞれ図1~図5に関して上記で詳細に説明されたハイパーバイザー102、アプリケーション202、302、および304、セキュリティモニター206、ならびにセキュリティモニターのデータベース208を記憶することができる。大容量記憶装置610およびRAM614はまた、他のタイプのプログラムモジュールおよびデータを記憶することができる。本明細書に記載のソフトウェアコンポーネントは、CPU602にロードされ実行される場合は、CPU602およびコンピューター600全体を汎用コンピューティングシステムから本明細書に提示されている機能を容易にするようにカスタマイズされた専用コンピューティングシステムに変換することができることを理解されたい。CPU602は、任意の数の状態を個別にまたはまとめて呈してよい任意の数のトランジスタまたは他の個別回路素子から構成されてよい。より具体的には、CPU602は、本明細書で開示されるソフトウェアモジュールの中に含まれている実行可能な命令に応答して、有限状態機械として動作することができる。これらのコンピューター実行可能命令は、CPU602が状態間でどのように遷移するかを指定することによりCPU602を変換し、それによって、CPU602を構成するトランジスタまたは他の個別ハードウェア素子を変換することができる。本明細書に提示されているソフトウェアモジュールを符号化することはまた、本明細書に提示されているコンピューター可読媒体の物理的構造を変換することができる。物理的構造の特定の変換は、本明細書の様々な実施形態において、様々な要因に依存してよい。そのような要因の例は、コンピューター可読媒体が一次ストレージであるとみなされても二次ストレージであるとみなされても、コンピューター可読媒体を実施するために使用される技術および同種のものを含んでよいがそれらに限定されない。例えば、コンピューター可読媒体は、半導体ベースのメモリとして実施される場合、本明細書で開示されるソフトウェアは、半導体メモリの物理的状態を変換することによりコンピューター可読媒体上で符号化されてよい。例えば、ソフトウェアは、半導体メモリを構成するトランジスタ、コンデンサー、または他の個別回路素子の状態を変換することができる。ソフトウェアはまた、そこにデータを記憶するためにそのようなコンポーネントの物理的状態を変換することができる。他の例として、本明細書で開示されるコンピューター可読媒体は、磁気技術または光技術を使用して実施されてよい。そのような実施形態では、本明細書に提示されているソフトウェアは、ソフトウェアがそこで符号化される場合は、磁気媒体または光媒体の物理的状態を変換することができる。これらの変換は、所与の磁気媒体の中の特定の位置の磁気特性を変えることを含んでよい。これらの変換はまた、所与の光媒体の中の特定の位置の物理的特徴または特性を変えることを含み、それらの位置の光特性を変える。物理的媒体の他の変換は、この議論を容易にするためにのみ提供された上記例によって、本明細書の範囲および趣旨から逸脱することなく、可能である。上記を考慮して、本明細書に提示されているソフトウェアコンポーネントを記憶し実行するためにコンピューター600において多くのタイプの物理的変換が行われることを理解されたい。コンピューター600は、ハンドヘルドコンピューター、組み込みコンピューターシステム、携帯情報端末、および当業者に知られている他のタイプのコンピューティングデバイスを含めて他のタイプのコンピューティングデバイスを含んでよいことも理解されたい。コンピューター600は、図6に示されている構成要素のすべてを含まなくてもよく、図6に明示されていない他の構成要素を含んでもよく、または図6に示されているものとは完全に異なるアーキテクチャを利用してもよいことも企図される。上記に基づいて、セキュリティ境界を提供するための技術が本明細書で提供されることを理解されたい。本明細書で提示される主題は、コンピューターの構造的特徴、方法論的行為および変換行為、特定のコンピューティングマシン、ならびにコンピューター可読媒体に特有の言語で説明されてきたが、添付の特許請求の範囲において定義される本発明は、必ずしも本明細書に記載の特定の特徴、行為、または媒体に限定されるわけではないことが理解されるべきである。むしろ、特定の特徴、行為、および媒体は、請求項を実施する例示的な形態として開示される。前述の主題は、例示としてのみ提供されるものであり、限定的であると解釈されるべきではない。例示され説明された例示的実施形態および適用例に従うことなく、かつ添付の特許請求の範囲によって定義される本発明の真の趣旨および範囲から逸脱することなく、様々な修正および変更が本明細書に記載の主題に加えるようにしてもよい。