(57)【要約】      （修正有）【課題】コンピューティングデバイスのためのハイパーバイザとしてセキュリティエージェントコンポーネントを開始するセキュリティエージェントを提供する。【解決手段】セキュリティエージェントは、インターセプトされるメモリ内のメモリロケーションを決定する。セキュリティエージェントコンポーネントは、決定されたメモリロケーションに対するインターセプトを設定する。インターセプトの設定は、決定されたメモリロケーションを含むページについての特定の操作を防止する特権属性の設定を含む。セキュリティエージェントコンポーネントは、それらの特定の操作のうちの１つに応答して、成功の偽表示を返すこと、又はその操作を許可して、その操作と関連付けられた操作主体の監視をする。また、操作が、ページのうちの１つと関連付けられた別のメモリロケーションに影響する場合、そのページについての特権属性を一時的にリセットして、操作を許可する。【選択図】図１
2017162469.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサに結合されたメモリと、
システムのためのハイパーバイザとしてセキュリティエージェントコンポーネントを開始し、インターセプトされる前記メモリ内のメモリロケーションのサブセットを決定するために、前記プロセッサによって操作されるように構成されたセキュリティエージェントと、
メモリロケーションの前記決定されたサブセットのメモリロケーションに対するインターセプトを設定するために、前記プロセッサによって操作されるように構成された前記セキュリティエージェントコンポーネントと
を備えることを特徴とするシステム。
【請求項２】
前記セキュリティエージェントコンポーネントは、メモリロケーションの前記決定されたサブセットの前記メモリロケーションを含むページについての特権属性を設定することによって、前記インターセプトを設定するようにさらに構成されることを特徴とする請求項１に記載のシステム。
【請求項３】
前記セキュリティエージェントコンポーネントは、メモリロケーションの前記サブセットから異なるメモリロケーションにリダイレクトすることによって、前記インターセプトを設定するようにさらに構成されることを特徴とする請求項１に記載のシステム。
【請求項４】
前記セキュリティエージェントは、プロセッサ状態設定をデータ構造内に記憶し、前記データ構造に基づいて前記ハイパーバイザとして前記セキュリティエージェントコンポーネントを開始するように前記プロセッサに命令することによって、前記ハイパーバイザとして前記セキュリティエージェントコンポーネントを開始するようにさらに構成されることを特徴とする請求項１に記載のシステム。
【請求項５】
前記セキュリティエージェントは、異なるオペレーティングシステムごとに異なるルーチンを含み、前記異なるルーチンの各々は、それぞれの前記異なるオペレーティングシステムと関連付けられた前記データ構造の部分を不変部分として固定することを特徴とする請求項４に記載のシステム。
【請求項６】
前記セキュリティエージェントは、セキュリティサービスから受け取ったセキュリティエージェント構成に基づいて前記メモリロケーションの前記サブセットを決定するようにさらに構成されることを特徴とする請求項１に記載のシステム。
【請求項７】
前記セキュリティエージェントは、ページアウト要求をインターセプトし、インターセプトされるべき前記メモリロケーションを含むメモリページのページアウトを防止するように、またはメモリロケーションについての知識を更新するためにページイン要求をインターセプトするようにさらに構成されることを特徴とする請求項１に記載のシステム。
【請求項８】
前記セキュリティエージェントは、前記システムのオペレーティングシステムカーネルが、メモリロケーションの前記サブセットの前記メモリロケーションのページテーブルマッピングをロックすることを要求するようにさらに構成されることを特徴とする請求項１に記載のシステム。
【請求項９】
前記セキュリティエージェントは、インターセプトされる命令を決定するようにさらに構成され、前記セキュリティエージェントコンポーネントは、前記決定された命令に対するインターセプトを設定するようにさらに構成されることを特徴とする請求項１に記載のシステム。
【請求項１０】
前記セキュリティエージェントコンポーネントは、プロセスに対応するインターセプトを、前記プロセスの終了時に、解除するようにさらに構成されることを特徴とする請求項１に記載のシステム。
【請求項１１】
コンピューティングデバイスによって実行されたときに、前記コンピューティングデバイスに、
インターセプトされる前記コンピューティングデバイスのメモリ内のメモリロケーションのサブセットのメモリロケーションを識別することと、
前記識別されたメモリロケーションを含む前記メモリのページを決定することと、
特定のタイプの操作が前記メモリロケーションに影響することを防止するように、前記ページの特権属性を設定することと、
前記ページのうちの１つと関連付けられた別のメモリロケーションであって、そのページと関連付けられた前記識別されたメモリロケーションとは異なる別のメモリロケーションに影響する操作に気付くことと、
前記操作を許可するために、前記ページのうちの前記１つの前記特権属性を一時的にリセットすることと
を含む操作を実行させる実行可能命令をその上に記憶することを特徴とする非一時的コンピュータ可読媒体。
【請求項１２】
前記識別されたメモリロケーションは、プロセスのための特権と関連付けられたメモリロケーションを含み、前記設定することは、前記メモリロケーションへの書き込みを防止するために、前記メモリロケーションを含む前記ページについての前記特権属性を、読み取り専用を示す値になるように設定することを含むことを特徴とする請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項１３】
前記識別されたメモリロケーションは、ユーザ信用証明書と関連付けられたメモリロケーションを含み、前記設定することは、前記メモリロケーションの読み取りを防止するために、前記メモリロケーションを含む前記ページについての前記特権属性を、アクセス不可を示す値になるように設定することを含むことを特徴とする請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項１４】
インターセプトされるコンピューティングデバイスのメモリ内のメモリロケーションのサブセットのメモリロケーションを識別するステップと、
前記識別されたメモリロケーションを含む前記メモリのページを決定するステップと、
特定のタイプの操作が前記メモリロケーションに影響することを防止するように、前記ページの特権属性を設定するステップと、
前記識別されたメモリロケーションのうちの１つに影響する操作に気付くことと、
前記操作に気付いたことに応答して、
前記操作を許可するために、前記識別されたメモリロケーションのうちの前記１つを含む前記ページの前記特権属性を一時的にリセットするステップ、または
前記操作に対する成功の偽表示を返すステップと
を含むことを特徴とするコンピュータ実施方法。
【請求項１５】
前記操作は、書き込み操作であり、前記識別されたメモリロケーションのうちの前記１つは、プロセスのための特権と関連付けられたメモリロケーションであり、設定する前記ステップは、前記識別されたメモリロケーションのうちの前記１つへの書き込み操作を防止するために、前記識別されたメモリロケーションのうちの前記１つを含む前記ページについての前記特権属性を、読み取り専用を示す値になるように設定するステップを含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
成功の前記偽表示を返す前記ステップは、代替メモリロケーションへの前記書き込み操作を許可し、前記書き込み操作が成功した旨の表示を返すステップを含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記操作は、読み取り操作であり、前記識別されたメモリロケーションのうちの前記１つは、ユーザ信用証明書と関連付けられたメモリロケーションであり、設定する前記ステップは、前記識別されたメモリロケーションのうちの前記１つの読み取りを防止するために、前記識別されたメモリロケーションのうちの前記１つを含む前記ページについての前記特権属性を、アクセス不可を示す値になるように設定するステップを含むことを特徴とする請求項１４に記載の方法。
【請求項１８】
偽または偽装ユーザ信用証明書を記憶した代替メモリロケーションに対して前記読み取り操作が実行されるようにするステップをさらに含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記偽または偽装ユーザ信用証明書の使用を監視するステップをさらに含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記識別されたメモリロケーションのうちの前記１つを含む前記ページの内容を、前記偽または偽装ユーザ信用証明書を記憶した前記代替メモリロケーションを含むページにコピーするステップをさらに含むことを特徴とする請求項１８に記載の方法。
【請求項２１】
前記操作を要求したプロセス、スレッド、またはモジュールを識別するステップをさらに含むことを特徴とする請求項１４に記載の方法。
【請求項２２】
前記特権属性を一時的にリセットした後、前記プロセス、スレッド、またはモジュールのアクティビティを監視するステップをさらに含むことを特徴とする請求項２１に記載の方法。
【請求項２３】
前記プロセス、スレッド、またはモジュールを終了するステップをさらに含むことを特徴とする請求項２１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、メモリアクセスのハイパーバイザベースのインターセプションに関する。
【背景技術】
【０００２】
インターネットの使用が、日々の生活のますます大きい部分を形成するようになったのに伴い、システムリソース、データ、およびプライベート情報を盗みまたは破壊するセキュリティ上の弱点を突く手段が、より一層の問題になっている。政府および企業は、これらのセキュリティ上の弱点を突く手段に関連する侵入および窃盗を防止するために、大量のリソースを注ぎ込んでいる。セキュリティ上の弱点を突く手段は、コンピュータウイルス、ワーム、トロイの木馬、スパイウェア、キーストロークロガー、アドウェア、およびルートキットなど、多くの形態で現れる。これらの弱点を突く手段は、スピアフィッシュ電子メール、クリック可能リンク、文書、実行可能ファイル、またはアーカイブなど、数々のメカニズムで、または数々のメカニズムを通して配布される。セキュリティ上の弱点を突く手段によってもたらされる脅威のいくつかは、きわめて深刻なので、それらは、サイバーテロリズムまたは産業スパイと呼ばれる。
【０００３】
セキュリティ上の弱点を突く手段のアクティビティの多くは、フックまたは他のインターセプション技法を使用して、内部的に監視されることができるが、ある動作は、カーネルモードまたはユーザモードで、フックまたはインターセプトが行われることができない。そのような動作は、メモリアクセス、およびプロセッサによる個々の命令の実行を含む。現在の技法は、ゲストオペレーティングシステム（ＯＳ）およびそれらゲストＯＳのアプリケーションを仮想マシンで実行すること、または各アプリケーションを別々の仮想マシンで実行することを含む。これらの技法の各々は、著しいオーバヘッドを伴い、どちらの技法も、メモリアクセス、またはホストＯＳ自体において動作する命令をインターセプトすることが可能ではない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願第１３／４９２,６７２号明細書
【図面の簡単な説明】
【０００５】
詳細な説明が、添付の図を参照して行われる。図では、参照番号の左端の数字は、その参照番号が最初に出現する図を識別する。異なる図における同じ参照番号の使用は、同様または同一のアイテムまたは特徴を示す。
【０００６】
【図１】コンピューティングデバイスのハイパーバイザとしてのセキュリティエージェントコンポーネントの実行を開始するように構成されたセキュリティエージェントであって、セキュリティエージェントコンポーネントは、コンピューティングデバイスのメモリロケーションのサブセットに対するインターセプトを設定する、セキュリティエージェントの概要を示す図である。
【図２ａ】ページの特権属性を通してメモリロケーションを保護する一方で、それらのページと関連付けられた他のメモリロケーションに対する操作を可能にするための技法の概要を示す図である。
【図２ｂ】ページの特権属性を通してメモリロケーションを保護する一方で、それらのページと関連付けられた他のメモリロケーションに対する操作を可能にするための技法の概要を示す図である。
【図３】セキュリティエージェントとハイパーバイザとして実行するように構成されたセキュリティエージェントコンポーネントとを有するように構成されたコンピューティングデバイスのコンポーネントレベルの図である。
【図４】コンピューティングデバイスのためのハイパーバイザとしてのセキュリティエージェントコンポーネントの実行を開始し、インターセプトされるコンピューティングデバイスのメモリロケーションを決定し、決定されたメモリロケーションに対するインターセプトを設定するための例示的なプロセスを示す図である。
【図５】ページの特権属性を通してメモリロケーションを保護する一方で、それらのページと関連付けられた他のメモリロケーションに対する操作を可能にするための例示的なプロセスを示す図である。
【発明を実施するための形態】
【０００７】
本開示は、一部において、コンピューティングデバイスのためのハイパーバイザとしてセキュリティエージェントコンポーネントを開始するように構成されたセキュリティエージェントについて説明する。そのような開始は、いくつかの実装では、プロセッサ状態情報をデータ構造内に記憶することと、データ構造に基づいてハイパーバイザとしてセキュリティエージェントコンポーネントを開始するようにプロセッサに命令することとを含むことができる。セキュリティエージェントは、次に、インターセプトされるコンピューティングデバイスのメモリ内のメモリロケーションのサブセットを決定することができる。そのような決定は、例えば、セキュリティサービスから受け取ったセキュリティエージェント構成に基づくことができる。セキュリティエージェントコンポーネントは、次に、決定されたメモリロケーションに対するインターセプトを設定することができる。そのようなインターセプトを設定することは、決定されたメモリロケーションを含むページについての、それらのメモリロケーションと関連付けられた特定の操作を防止するための、特権属性を設定することを含むことができる。
【０００８】
いくつかの実装では、ページについての特権属性を設定した後、それらのページ内のメモリロケーションに影響する操作が、気付かれることができる。ページと関連付けられた決定されたメモリロケーションに影響する特定の操作のうちの１つに応答して、セキュリティエージェントコンポーネントは、成功の偽表示を返すこと、またはその操作を許可して、その操作と関連付けられた操作主体の監視を可能にすることができる。操作が、そのページと関連付けられた別のメモリロケーションに影響する場合、セキュリティエージェントコンポーネントは、そのページについての特権属性を一時的にリセットして、操作を許可することができる。
【０００９】
一例では、メモリロケーションは、特権が与えられた情報を記憶することができ、それに抗する保護が行われる特定の操作は、そのメモリロケーションに書き込みを行って、特権が与えられた情報を変更することを含むことができる。そのような行為は、権限昇格として知られている。権限昇格に抗する保護を行うために、特権が与えられた情報を記憶するメモリロケーションを含むページの特権属性は、読み取り専用を示す値になるように設定されることができる。
【００１０】
別の例では、メモリロケーションは、ユーザ信用証明書を記憶することができ、それに抗する保護が行われる特定の操作は、そのメモリロケーションからユーザ信用証明書を読み取ることを含むことができる。そのような信用証明書の読み取りに抗する保護を行うために、ユーザ信用証明書を記憶するメモリロケーションを含むページの特権属性は、アクセス不可を示す値になるように設定されることができる。いくつかの実装では、ページの物理的メモリロケーションが、セキュリティエージェントによって変更されることができ、その結果、信用証明書の読み取りは、異なるメモリロケーションに配置されたデータを返す。返されたユーザ信用証明書は、したがって、攻撃者に意図的に錯誤させることを目的とした無効なものである。
【００１１】
概要
図１は、コンピューティングデバイスのハイパーバイザとしてのセキュリティエージェントコンポーネントの実行を開始するように構成されたセキュリティエージェントの概要を示しており、セキュリティエージェントコンポーネントは、コンピューティングデバイスのメモリロケーションのサブセットに対するインターセプトを設定する。示されるように、コンピューティングデバイスは、カーネルレベル１０２において、およびユーザレベル１０４において実装されるコンポーネントを含む。カーネルレベル１０２のコンポーネントは、ホストＯＳカーネル１０６と、セキュリティエージェント１０８とを含む。セキュリティエージェント１０８は、コンピューティングデバイスのハイパーバイザレベル１１２において実装されるセキュリティエージェントコンポーネント１１０をさらに含み、またはそれと関連付けられる。セキュリティエージェント１０８は、構成１１４と、プロセッサ状態設定のコピーを記憶するためのデータ構造１１６とをさらに含むことができる。さらに、ユーザレベル１０４のコンポーネントは、プロセス１１８を含むことができる。加えて、コンピューティングデバイスは、複数のメモリロケーション１２２を有するメモリ１２０と、プロセッサ状態設定１２６を有するプロセッサ１２４とを有することができる。図１は、セキュリティエージェント１０８が、１２８において、プロセッサ状態設定１２６をデータ構造１１６内に記憶することと、１３０において、データ構造１１６に基づいてハイパーバイザとしてセキュリティエージェントコンポーネント１１０を開始することとをさらに示している。セキュリティエージェント１０８は、次に、１３２において、インターセプトされるメモリロケーション１２２を決定し、セキュリティエージェントコンポーネント１１０は、１３４において、決定されたメモリロケーション１２２に対するインターセプトを設定する。
【００１２】
様々な実施形態では、コンピューティングデバイスは、ホストＯＳカーネル１０６と、セキュリティエージェント１０８と、セキュリティエージェントコンポーネント１１０と、プロセス１１８と、メモリ１２０と、プロセッサ１２４とを含むことができる。そのようなコンピューティングデバイスは、サーバもしくはサーバファーム、複数の分散されたサーバファーム、メインフレーム、ワークステーション、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、タブレットコンピュータ、携帯情報端末（ＰＤＡ）、セルラフォン、メディアセンタ、埋め込まれたシステム、または１もしくは複数の他の任意の種類のデバイスとすることができる。複数のコンピューティングデバイス上で実装される場合、ホストＯＳカーネル１０６、セキュリティエージェント１０８、セキュリティエージェントコンポーネント１１０、プロセス１１８、メモリ１２０、およびプロセッサ１２４は、複数のコンピューティングデバイス間に分散されることができる。ホストＯＳカーネル１０６と、セキュリティエージェント１０８と、セキュリティエージェントコンポーネント１１０と、プロセス１１８と、メモリ１２０と、プロセッサ１２４とを含むコンピューティングデバイスの例は、図３に示されており、その図を参照して以下で説明される。
【００１３】
コンピューティングデバイスは、システムリソースへの異なるレベルのアクセスを提供する、複数の保護リングまたは特権レベルを実装することができる。例えば、ユーザレベル１０４は、最小アクセスを有する「外側」リングまたはレベル（例えば、「リング３」）にあることができ、カーネルレベル１０２は、より大きいアクセスを有する「内側」リングまたはレベル（例えば、「リング０」または「リング１」）にあることができ、ハイパーバイザレベル１１２は、カーネルレベル１０２よりも大きいアクセスを有する「最内側」リングまたはレベル（例えば、「リング−１」または「リング０」）にあることができる。ハイパーバイザレベル１１２にあるどのコンポーネントも、ホストＯＳカーネル１０６の「下に」存在（し、それよりも大きいアクセスを有）する、ハイパーバイザであることができる。
【００１４】
ホストＯＳカーネル１０６は、Ｗｉｎｄｏｗｓ（登録商標）ＯＳ、Ｕｎｉｘ  ＯＳ、または他の任意の種類のＯＳなど、任意の種類のＯＳのカーネルとすることができる。「ゲスト」ＯＳと呼ばれる他のＯＳは、ホストＯＳによってサポートされる仮想マシンで実装されることができる。ホストＯＳカーネル１０６は、メモリ１２０およびプロセッサ１２４など、コンピューティングデバイスのハードウェアリソースへのアクセスを、プロセス１１８など、コンピューティングデバイスの他のプロセスに提供することができる。
【００１５】
セキュリティエージェント１０８は、カーネルレベルセキュリティエージェントとすることができ、それは、コンピューティングデバイスにおけるアクティビティを監視し、記録することができ、アクティビティを分析することができ、ならびにアラートおよびイベントを生成し、それらのアラートおよびイベントをリモートセキュリティサービスに提供することができる。セキュリティエージェント１０８は、セキュリティエージェント１０８、およびセキュリティエージェントコンポーネント１１０など、それのコンポーネントの構成を受け取り、動作中に適用する、リモートセキュリティサービスによってインストールされ、構成可能であることができる。構成１１４は、そのような構成の例とすることができる。セキュリティエージェント１０８の例は、「Ｋｅｒｎｅｌ−Ｌｅｖｅｌ  Ｓｅｃｕｒｉｔｙ  Ａｇｅｎｔ」と題する、２０１２年６月８日に出願された、米国特許出願（特許文献１を参照）においてより詳細に説明されており、それは、２０１５年５月２６日に米国特許番号９,０４３,９０３として発行された。
【００１６】
セキュリティエージェントコンポーネント１１０は、ハイパーバイザレベル１１２においてコンピューティングデバイスのためのハイパーバイザとして実行される、セキュリティエージェント１０８のコンポーネントとすることができる。セキュリティエージェントコンポーネント１１０は、メモリページの特権属性（例えば、「読み取り−書き込み」、「読み取り専用」、「アクセス不可」など）を調整すること、およびメモリ１２０などのシステムリソースを管理することなど、ハイパーバイザ機能を実行することができる。セキュリティエージェントコンポーネント１１０は、それの機能の少なくともいくつかを、セキュリティエージェントコンポーネント１１０のための構成設定を含むことができる、セキュリティエージェント１０８の構成１１４に基づいて実行することができる。セキュリティエージェントコンポーネント１１０は、メモリ１２０と関連付けられたメモリページの物理的ロケーションを調整するために、ハイパーバイザ機能を実行することもできる。
【００１７】
構成１１４は、セキュリティエージェント１０８およびセキュリティエージェントコンポーネント１１０のための設定またはシステムイメージのいずれかを含むことができる。上で言及されたように、構成１１４は、リモートセキュリティサービスから受け取られることができ、コンピューティングデバイスをリブートすることなく、セキュリティエージェント１０８およびセキュリティエージェントコンポーネント１１０によって適用されることができる。
【００１８】
データ構造１１６は、プロセッサ状態情報を記憶するための構造とすることができる。そのようなデータ構造は、例えば、仮想マシン制御構造（ＶＭＣＳ）とすることができる。いくつかの実装では、データ構造１１６内の設定のサブセットは、ＯＳに基づいて、セキュリティエージェント１０８によって設定されることができる。そのような実装では、セキュリティエージェント１０８は、ＯＳに基づいて異なる設定を有するデータ構造１１６を構成する、異なるＯＳごとに異なるルーチンを有することができる。そのような設定は、一般に、与えられたＯＳに対して不変なプロセッサ状態設定とすることができる。他の設定は、その後、プロセッサ状態設定１２６から獲得される。他の実装では、セキュリティエージェント１０８は、異なるＯＳごとに異なるルーチンを有さないことがあり、データ構造１１６についてのすべての設定を、プロセッサ状態設定１２６から獲得することができる。
【００１９】
様々な実装では、プロセス１１８は、アプリケーションまたはユーザレベル１０４のＯＳコンポーネントなど、コンピューティングデバイスの任意の種類のユーザレベル１０４のプロセスとすることができる。プロセス１１８は、実行のための命令を発行すること、ならびに異なるメモリロケーションの読み取りおよび書き込み要求を行うことを含む、様々な操作を実行することができる。そのような読み取りおよび書き込み要求は、仮想アドレスにアドレス指定されることができ、仮想アドレスは、ＯＳカーネル１０６のページテーブルによってメモリページの物理的アドレスにマッピングされることができ、または拡張されたもしくは入れ子にされたページテーブルのさらなる仮想アドレスにマッピングされ、次に物理的アドレスにマッピングされることができる。そのようなプロセス１１８は、セキュリティ上の弱点を突く手段を含むこと、または脆弱性を通してそのような弱点を突く手段によって制御されることができ、メモリロケーションの直接アクセス、または例えば、ホストＯＳカーネル１０６の脆弱性を利用した、間接アクセスを通して、権限昇格または信用証明書窃盗など、悪意あるアクティビティを試みることができる。
【００２０】
メモリ１２０は、任意の種類のメモリデバイスのメモリとすることができる。図１に示されるように、メモリ１２０は、複数のメモリロケーション１２２を含むことができ、メモリロケーション１２２の数は、メモリ１２０のサイズに基づいて様々である。メモリロケーション１２２は、メモリページのアドレスおよびオフセットを通してアドレス指定されることができ、各メモリページは、１または複数のメモリロケーションを含む。読み取りおよび書き込みなど、メモリロケーション１２２と関連付けられた特権は、ページを単位とする粒度で設定されることができ、各メモリページは、特権属性を有する。したがって、同じページのメモリロケーション１２２は、それらと関連付けられた同じ特権を有することができる。メモリ１２０の例は、図３に示されており、その図を参照して以下で詳細に説明される。
【００２１】
プロセッサ１２４は、中央処理装置（ＣＰＵ）、グラフィックス処理ユニット（ＧＰＵ）、もしくはＣＰＵとＧＰＵの両方、または当技術分野で知られた他の処理ユニットもしくはコンポーネントなど、任意の種類のプロセッサとすることができる。プロセッサ１２４は、それの状態を記述するデータ構造と関連付けられることができ、その内容は、本明細書では、プロセッサ状態設定１２６と呼ばれる。上で説明されたように、いくつかの実装では、プロセッサ状態設定１２６のサブセットは、ＯＳのタイプごとに不変であることができる。加えて、プロセッサ１２４は、第２レベルアドレス変換（ＳＬＡＴ）を用いて、（Ｉｎｔｅｌ（商標）ＶＴ−ｘなどの）ハードウェアベースの仮想化をサポートする。
【００２２】
様々な実装では、セキュリティエージェント１０８は、ハイパーバイザとしてのセキュリティエージェントコンポーネント１１０の実行を開始するように構成される。そのような開始は、コンピューティングデバイスのいかなるリブーティングも行わずに実行されることができる。図１に示されるように、この開始は、１２８において、プロセッサ状態設定１２６をデータ構造１１６内に記憶することを含むことができる。プロセッサ状態設定１２６のいずれもが不変である場合、それらは、セキュリティエージェント１０８によってデータ構造１１６内にすでに含められていることができ、したがって、再び記憶される必要はない。開始は、次に、１３０において、データ構造１１６に基づいてセキュリティエージェントコンポーネント１１０を開始することを含むことができる。これは、セキュリティエージェントコンポーネント１１０およびデータ構造１１６への参照を、「実行」命令とともに提供することを含むことができる。
【００２３】
次に、セキュリティエージェント１０８は、１３２において、インターセプトされるいずれかのメモリロケーション１２２または命令を決定する。セキュリティエージェント１０８は、メモリロケーション１２２および命令を決定するために、セキュリティサービスによって提供された構成１１４を利用することができる。そのようなメモリロケーション１２２は、プロセスについての特権情報（例えば、管理者特権の表示）、またはユーザ信用証明書（例えば、パスワード）を記憶したロケーションを含むことができる。上で言及されたように、構成１１４に対する更新は、リブートすることなく、受け取られ、適用されることができる。構成１１４に対する更新を受け取ると、セキュリティエージェントは、１３２において、決定を繰り返すことができる。
【００２４】
メモリスペースを解放するために、コンピューティングデバイスは、しばしば、最近アクセスされていないメモリページのためのメモリマッピングをクリアし、それらの内容をディスクに書き出すことを行い、これは、ページアウト操作と呼ばれる。メモリが再びアクセスされたとき、その内容がディスクから呼び戻され、これは、ページイン操作と呼ばれる。そのとき、メモリロケーション１２２についての知識が最新のままであることを保証するために、セキュリティエージェント１０８は、ＯＳカーネル１０６が、ページテーブルにおいて、インターセプトされるべきメモリロケーション１２２を含むメモリページへのマッピングのページテーブルをロックすることを要求することができる。あるいは、セキュリティエージェントコンポーネント１１０は、ページアウト要求をインターセプトし、インターセプトされるべきメモリロケーション１２２を含むメモリページのページングアウトを防止することができ、またはそれは、メモリロケーション１２２についてのそれの知識を更新し、１３２において、決定を繰り返すために、ページイン要求をインターセプトすることができる。
【００２５】
様々な実装では、セキュリティエージェントコンポーネント１１０は、次に、１３４において、命令、およびセキュリティエージェント１０８によって決定されたメモリロケーション１２２に対するインターセプトを設定する。いくつかの実装では、インターセプトを設定することは、決定されたメモリロケーション１２２を含むメモリページを決定することと、それらのページについての特権属性を設定することとを含むことができる。選択された特権属性−例えば、「読み取り専用」または「アクセス不可」−は、セキュリティエージェント１０８およびセキュリティエージェントコンポーネント１１０がインターセプトするように構成されたメモリアクセスの機能とすることができる。プロセス１１８が、そのようなメモリアクセスを実行するように−例えば、「読み取り専用」とマークされたメモリページに書き込むように−求めた場合、セキュリティエージェントコンポーネント１１０は、通知を受け取る。
【００２６】
他の実装では、インターセプトを設定することは、錯誤させる、不正確な、またはさもなければ使用不可のデータを参照するように、決定されたメモリロケーション１２２の物理的メモリロケーションを変更することを含むことができる。プロセス１１８が、そのようなメモリアクセスを実行するように−例えば、メモリロケーション１２２にデータを含むメモリページを読み取るように−求めた場合、データは、代わりに、代替メモリロケーションから読み取られる。
【００２７】
いくつかの実装では、プロセス１１８の終了時に、セキュリティエージェントコンポーネント１１０は、プロセス１１８と関連付けられたメモリロケーション１２２に対するインターセプトを解除することができる。これは、メモリロケーション１２２を含むメモリページについての特権属性を以前の設定にリセットすることを含むことができ、またはそれは、メモリページについての物理的メモリロケーションをリセットすることを含むことができる。
【００２８】
図２ａ〜図２ｂは、ページの特権属性を通してメモリロケーションを保護する一方で、それらのページと関連付けられた他のメモリロケーションに対する操作を可能にするための技法の概要を示している。図２ａは、少なくとも、メモリロケーション２０４（ａ）、メモリロケーション２０４（ｂ）、メモリロケーション２０４（ｃ）、およびメモリロケーション２０４（ｄ）の他に、特権属性２０６も有する、メモリページ２０２を含む。さらに、プロセス２０８は、示されるように、メモリロケーション２０４と関連付けられた要求を行うことができる。また、図２ａに示されるように、その特権属性２０６は、一時的にリセットされて特権属性２１０になることができる。プロセス２０８は、２１２において、特権属性２０６によって許可されていない操作を要求する。その操作は、セキュリティエージェント１０８によって決定されたメモリロケーションのうちの１つではないメモリロケーション２０４（ａ）に向けられたものとすることができるので、セキュリティエージェントコンポーネント１１０は、２１４において、特権属性２０６を一時的にリセットして特権属性２１０にし、操作が進行するのを許可する。
【００２９】
様々な実装では、メモリページ２０２は、メモリ１２０を参照して上で説明されたメモリページの例とすることができ、メモリロケーション２０４は、メモリロケーション１２２の例とすることができ、特権属性２０６、２１０は、メモリ１２０を参照して上で説明された特権属性の例とすることができる。さらに、プロセス２０８は、プロセス１１８の例とすることができる。
【００３０】
プロセス２０８は、２１２において、メモリロケーション２０４からの読み取り、またはメモリロケーション２０４への書き込みなどの操作を要求することができる。要求に気付くと、セキュリティエージェントコンポーネント１１０は、要求と関連付けられたメモリページ２０２に加えて、そのメモリページ２０２における特定のメモリロケーション２０４も決定することができる。セキュリティエージェントコンポーネント１１０は、その後、そのメモリロケーションが、セキュリティエージェント１０８によって識別されたメモリロケーションのうちの１つであるかどうかを決定する。図２ａでは、セキュリティエージェント１０８によって識別されたメモリロケーション２０４は、メモリロケーション２０４（ｂ）であり、操作は、メモリロケーション２０４（ａ）と関連付けられた要求である。そのような例では、操作が、特権属性２０６と対立しない場合、操作は、進行することを許可される。他方、操作が、特権属性によって許可されていない場合、セキュリティエージェントコンポーネント１１０は、２１２において、特権属性２０６を一時的にリセットして特権属性２１０にし、操作が進行するのを許可することができる。例えば、特権属性２０６が、（例えば、メモリロケーション２０４（ｂ）に記憶されたユーザ信用証明書の読み取りを防止するための）「アクセス不可」である場合、セキュリティエージェントコンポーネント１１０は、特権属性２０６を一時的にリセットして特権属性２１０にし、それは、「読み取り専用」とすることができる。操作が処理された後、セキュリティエージェントコンポーネント１１０は、特権属性２１０を元に戻して、特権属性２０６にすることができる。
【００３１】
図２ｂは、少なくとも、メモリロケーション２０４（ａ）、メモリロケーション２０４（ｂ）、メモリロケーション２０４（ｃ）、およびメモリロケーション２０４（ｄ）の他に、特権属性２０６も有する、メモリページ２０２を含む。プロセス２０８は、示されるように、メモリロケーション２０４と関連付けられた要求を行うことができ、特権属性２０６は、一時的にリセットされて特権属性２１０になることができる。さらに示されるように、メモリページ２０２内に記憶された情報のコピーは、コピーメモリページ２１６内に記憶されることができる。コピーメモリページ２１６は、メモリロケーション２０４（ａ）に記憶された情報のコピーを含むコピーメモリロケーション２１８（ａ）と、メモリロケーション２０４（ｃ）に記憶された情報のコピーを含むコピーメモリロケーション２１８（ｃ）と、メモリロケーション２０４（ｄ）に記憶された情報のコピーを含むコピーメモリロケーション２１８（ｄ）とを含むことができる。メモリロケーション２０４（ｂ）からの情報のコピーを記憶する代わりに、コピーメモリページ２１６は、偽／誤または偽装データ２２０を含むことができる。コピーメモリページ２１６は、特権属性２０６と比較した場合に昇格させられた特権を表すことができる、特権属性２２２も含むことができる。
【００３２】
示されるように、プロセス２０８は、２２４において、メモリロケーション２０４（ｂ）に影響する操作を要求することができる。メモリロケーション２０４（ｂ）は、セキュリティエージェント１０８によって識別されたメモリロケーションのうちの１つであるので、セキュリティエージェントコンポーネント１１０は、数々の方法のうちの１つで応答することができる。２２６において、セキュリティエージェントコンポーネント１１０は、操作が進行するのを許可するために、特権属性２０６を一時的にリセットして特権属性２１０にすることができる。セキュリティエージェントコンポーネント１１０は、次に、２２４において操作を求める要求を行ったプロセス、スレッド、またはコンポーネントを識別することもでき、そのプロセス、スレッド、もしくはコンポーネントのさらなるアクティビティを監視し、またはそのプロセス、スレッド、もしくはコンポーネントを終了させることができる。あるいは、セキュリティエージェントコンポーネント１１０は、２２８において、偽／誤または偽装データ２２０を含むコピーメモリページ２１６を生成することができ、２３０において、プロセス２０８が偽／誤または偽装データ２２０にアクセスすることを許可することができる。
【００３３】
プロセス２０８は、２２４において、メモリロケーション２０４からの読み取り、またはメモリロケーション２０４への書き込みなどの操作を要求することができる。要求に気付くと、セキュリティエージェントコンポーネント１１０は、要求と関連付けられたメモリページ２０２に加えて、そのメモリページ２０２における特定のメモリロケーション２０４も決定することができる。セキュリティエージェントコンポーネント１１０は、次に、そのメモリロケーションが、セキュリティエージェント１０８によって識別されたメモリロケーションのうちの１つであるかどうかを決定する。図２ｂでは、セキュリティエージェント１０８によって識別されたメモリロケーション２０４は、メモリロケーション２０４（ｂ）であり、操作は、メモリロケーション２０４（ｂ）と関連付けられた要求である。したがって、セキュリティエージェントコンポーネント１１０は、メモリロケーション２０４（ｂ）が、セキュリティエージェント１０８によって識別されたメモリロケーションのうちの１つであると決定する。それに応答して、セキュリティエージェントコンポーネント１１０は、いかなるアクションも取らないことができ、それは、コンピューティングデバイスのクラッシングおよびリブーティングを引き起こすことができる。あるいは、セキュリティエージェントコンポーネントは、操作を許可し、さらなる操作を監視し、操作が偽／誤もしくは偽装データ２２０に対して行われることを許可するための、または成功の偽表示をプロセス２０８に提供するための、アクションを取ることができる。
【００３４】
第１の例では、２２４における操作要求は、メモリロケーション２０４（ｂ）に記憶された特権情報を変更するための書き込み操作とすることができる。書き込み操作を求める要求に応答して、セキュリティエージェントコンポーネント１１０は、２２６において、特権属性２０６を一時的にリセットして特権属性２１０にすることによって、操作が進行するのを許可することができる。セキュリティエージェントコンポーネント１１０は、書き込み操作を求める要求を行ったプロセス、スレッド、またはコンポーネント（すなわち、プロセス２０８）を識別することもでき、そのプロセス、スレッド、またはコンポーネントのさらなるアクティビティを監視することができる。あるいは、セキュリティエージェントコンポーネント１１０は、２２８において、メモリページ２０２の内容をコピーメモリページ２１６にコピーし、特権属性２２２を読み取り−書き込みになるように設定し、メモリページ２０２からコピーメモリページ２１６に一時的にリダイレクトすることができる。セキュリティエージェントコンポーネント１１０は、次に、書き込み操作が進行するのを許可することができ、プロセス２０８は、コピーメモリページ２１６を変更し、成功の表示を受け取ることができる。セキュリティエージェントコンポーネント１１０は、次に、マッピングを元に戻して、メモリページ２０２を指すようにすることができる。したがって、メモリロケーション２０４（ｂ）は、保護され、プロセス２０８は、それが成功したと思うように欺かれ、両方の目的は、コンピューティングデバイスのクラッシュなしに達成される。
【００３５】
第２の例では、２２４における操作要求は、メモリロケーション２０４（ｂ）に記憶されたユーザ信用証明書を獲得するための読み取り操作とすることができる。読み取り操作を求める要求に応答して、セキュリティエージェントコンポーネント１１０は、２２６において、特権属性２０６を一時的にリセットして特権属性２１０にすることによって、操作が進行するのを許可することができる。セキュリティエージェントコンポーネント１１０は、読み取り操作を求める要求を行ったプロセス、スレッド、またはコンポーネント（すなわち、プロセス２０８）を識別することもでき、そのプロセス、スレッド、またはコンポーネントのさらなるアクティビティを監視することができる。あるいは、セキュリティエージェントコンポーネント１１０は、２２８において、メモリページ２０２の内容をコピーメモリページ２１６にコピーし、特権属性２２２を読み取り専用になるように設定し、メモリページ２０２からコピーメモリページ２１６に一時的にリダイレクトすることができる。メモリページ２０２の内容をコピーするのに加えて、セキュリティエージェントコンポーネント１１０は、偽／誤または偽装データ２２０を、メモリロケーション２０４（ｂ）がメモリページ２０２内に存在するときと同じオフセットにコピーメモリページ２１６内で存在するように記憶することができる。セキュリティエージェントコンポーネント１１０は、次に、読み取り操作が進行するのを許可し、プロセス２０８は、偽／誤または偽装データ２２０を読み取る。読み取り操作の後、セキュリティエージェントコンポーネント１１０は、次に、マッピングを元に戻して、メモリページ２０２を指すようにすることができる。プロセス２０８が、監視されるアカウントについてのユーザ名およびパスワードなど、偽装データ２２０を獲得した場合、そのユーザ名およびパスワードの将来の使用は、セキュリティエージェント１０８および／またはセキュリティエージェントコンポーネント１１０による監視をトリガすることができる。
【００３６】
例示的なシステム
図３は、セキュリティエージェントとハイパーバイザとして実行するように構成されたセキュリティエージェントコンポーネントとを有するように構成されたコンピューティングデバイスのコンポーネントレベルの図を示している。示されるように、コンピューティングデバイス３００は、セキュリティエージェント３０４と、セキュリティエージェントコンポーネント３０６と、ページテーブル３０８と、ユーザ信用証明書３１０と、特権情報３１２と、ＯＳ３１４と、プロセスおよびデータ３１６とを記憶する、メモリ３０２を備える。また、コンピューティングデバイス３００は、プロセッサ３１８と、着脱可能ストレージ３２０および着脱不能ストレージ３２２と、入力デバイス３２４と、出力デバイス３２６と、他のコンピューティングデバイス３３０と通信するための通信接続３２８とを含む。
【００３７】
様々な実施形態では、メモリ３０２は、（ＲＡＭなど）揮発性であり、（ＲＯＭ、フラッシュメモリなど）不揮発性であり、または２つの何らかの組み合わせである。メモリ３０２は、図１を参照して上で詳細に説明されたメモリ１２０の例とすることができる。セキュリティエージェント３０４は、図１を参照して上で詳細に説明されたセキュリティエージェント１０８の例とすることができる。セキュリティエージェントコンポーネント３０６は、図１を参照して上で詳細に説明されたセキュリティエージェントコンポーネント１１０の例とすることができる。ページテーブル３０８は、仮想アドレスをメモリページの物理的アドレスにマッピングするページテーブルなど、任意の種類のページテーブルとすることができる。そのようなページテーブル３０８の使用は、図１および図２ａ〜図２ｂを参照して上で詳細に説明された。ユーザ信用証明書３１０は、１または複数のプロセスまたはコンポーネントのためのユーザ名およびパスワードなど、任意の種類のユーザ信用証明書とすることができる。特権情報３１２は、プロセス、スレッド、ユーザアカウントなどに対する管理者特権など、特権の表示とすることができる。ＯＳ３１４は、図１を参照して上で詳細に説明されたホストＯＳカーネル１０６など、任意の種類のＯＳとすることができる。プロセスおよびデータ３１６は、図１を参照して上で詳細に説明されたプロセス１１８、または図２ａ〜図２ｂを参照して上で詳細に説明されたプロセス２０８など、任意の種類のプロセスおよびデータとすることができる。
【００３８】
いくつかの実施形態では、プロセッサ３１８は、中央処理装置（ＣＰＵ）、グラフィックス処理ユニット（ＧＰＵ）、もしくはＣＰＵとＧＰＵの両方、または当技術分野で知られた他の処理ユニットもしくはコンポーネントである。プロセッサ３１８は、第２レベルアドレス変換（ＳＬＡＴ）を用いて、（Ｉｎｔｅｌ（商標）ＶＴ−ｘなどの）ハードウェアベースの仮想化をサポートする。プロセッサ３１８は、図１を参照して上で詳細に説明されたプロセッサ１２４の例とすることができる。
【００３９】
コンピューティングデバイス３００は、例えば、磁気ディスク、光ディスク、またはテープなど、追加のデータストレージデバイス（着脱可能および／または着脱不能）も含む。そのような追加のストレージは、図３では、着脱可能ストレージ３２０および着脱不能ストレージ３２２によって示されている。非一時的コンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための技術で実装された、揮発性および不揮発性であり、着脱可能および着脱不可である、有形な物理的媒体を含むことができる。メモリ３０２、着脱可能ストレージ３２０、および着脱不能ストレージ３２２は、すべて、非一時的コンピュータ可読媒体の例である。非一時的コンピュータ可読媒体は、限定されることなく、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、もしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、または所望の情報を記憶するために使用されることができ、コンピューティングデバイス３００によってアクセスされることができる、他の任意の有形な物理的媒体を含む。いずれのそのような非一時的コンピュータ可読媒体も、コンピューティングデバイス３００の一部であることができる。
【００４０】
コンピューティングデバイス３００は、また、キーボード、マウス、タッチセンシティブディスプレイ、音声入力デバイスなどの、入力デバイス３２４と、ディスプレイ、スピーカ、プリンタなどの、出力デバイス３２６とを有する。これらのデバイスは、当技術分野でよく知られており、ここで長々と説明することはしない。
【００４１】
コンピューティングデバイス３００は、コンピューティングデバイス３００が、リモートセキュリティサービスのデバイスなど、他のコンピューティングデバイス３３０と通信することを可能にする、通信接続３２８も含む。
【００４２】
例示的なプロセス
図４〜図５は、例示的なプロセス４００および５００を示している。これらのプロセスは、論理フローグラフとして説明され、それの各操作は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装されることができる、一連の操作を表す。ソフトウェアの文脈では、操作は、１または複数のプロセッサによって実行されたときに、述べられた操作を実行する、１または複数のコンピュータ可読記憶媒体上に記憶されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造などを含む。操作が記述された順序が、限定として解釈されることは意図されておらず、記述された操作のどの番号も、プロセスを実装するために、任意の順序で、および／または並列で、組み合わされることができる。
【００４３】
図４は、コンピューティングデバイスのためのハイパーバイザとしてのセキュリティエージェントコンポーネントの実行を開始し、インターセプトされるコンピューティングデバイスのメモリロケーションを決定し、決定されたメモリロケーションに対するインターセプトを設定するための例示的なプロセスを示している。プロセス４００は、４０２において、コンピューティングデバイス上のセキュリティエージェントが、コンピューティングデバイスのためのハイパーバイザとしてセキュリティエージェントコンポーネントを開始することを含む。開始することは、４０４において、プロセッサ状態設定をデータ構造内に記憶することと、４０６において、データ構造に基づいてハイパーバイザとしてセキュリティエージェントコンポーネントを開始するように、コンピューティングデバイスのプロセッサに命令することとを含むことができる。いくつかの実装では、セキュリティエージェントは、異なるオペレーティングシステムごとに異なるルーチンを含むことができ、異なるルーチンの各々は、それぞれの異なるオペレーティングシステムと関連付けられたデータ構造の一部を不変部分として固定する。
【００４４】
４０８において、セキュリティエージェントは、次に、インターセプトされるメモリ内のメモリロケーションのサブセットを決定することができる。４１０において、セキュリティエージェントは、セキュリティサービスから受け取ったセキュリティエージェント構成に基づいて、サブセットを決定することができる。
【００４５】
４１２において、セキュリティエージェントは、コンピューティングデバイスのオペレーティングシステムカーネルが、メモリロケーションのサブセットのメモリロケーションのページテーブルマッピングをロックすることを要求することができる。
【００４６】
４１４において、セキュリティエージェントは、インターセプトされる命令を決定することができ、４１６において、セキュリティエージェントコンポーネントは、決定された命令に対するインターセプトを設定することができる。４１４および４１６における操作は、４０８〜４１２に示される操作の前に、またはそれらの操作と同時に、実行されることもできる。
【００４７】
４１８において、セキュリティエージェントコンポーネントは、メモリロケーションの決定されたサブセットのメモリロケーションに対するインターセプトを設定することができる。４２０において、インターセプトを設定することは、メモリロケーションの決定されたサブセットのメモリロケーションを含むページについての特権属性を設定することを含むことができ、またはそれは、そのようなページの物理的メモリロケーションを変更することを含むことができる。
【００４８】
４２２において、セキュリティエージェントは、更新されたセキュリティエージェント構成を受け取り、リブートすることなく、４０８におけるメモリロケーションのサブセットの決定を繰り返し、４１８におけるインターセプトの設定をセキュリティエージェントコンポーネントに繰り返させることができる。
【００４９】
４２４において、セキュリティエージェントコンポーネントは、プロセスの終了時に、プロセスに対応するインターセプトを解除することができる。
【００５０】
図５は、ページの特権属性を通してメモリロケーションを保護する一方で、それらのページと関連付けられた他のメモリロケーションに対する操作を可能にするための例示的なプロセスを示している。プロセス５００は、５０２において、インターセプトされるコンピューティングデバイスのメモリ内のメモリロケーションのサブセットのメモリロケーションを識別することを含む。いくつかの実装では、識別されたメモリロケーションは、プロセスのための特権と関連付けられたメモリロケーションを含む。さらなる実装では、識別されたメモリロケーションは、ユーザ信用証明書と関連付けられたメモリロケーションを含む。
【００５１】
５０４において、識別されたメモリロケーションを含むメモリのページが、次に、決定されることができる。
【００５２】
５０６において、ページの特権属性が、次に、特定のタイプの操作がメモリロケーションに影響することを防止するように、設定されることができる。識別されたメモリロケーションが、プロセスのための特権と関連付けられたメモリロケーションを含む場合、特定のタイプの操作は、書き込み操作を含むことができ、設定することは、そのメモリロケーションへの書き込みを防止するために、そのメモリロケーションを含むページについての特権属性を、読み取り専用を示す値になるように設定することを含む。識別されたメモリロケーションが、ユーザ信用証明書と関連付けられたメモリロケーションを含む場合、特定のタイプの操作は、読み取り操作を含むことができ、設定することは、そのメモリロケーションの読み取りを防止するために、そのメモリロケーションを含むページについての特権属性を、アクセス不可を示す値になるように設定することを含む。
【００５３】
５０８において、ページのうちの１つと関連付けられた別のメモリロケーションであって、そのページと関連付けられた識別されたメモリロケーションとは異なる別のメモリロケーションに影響する操作が、気付かれることができる。
【００５４】
５１０において、ページのうちの１つの特権属性が、次に、操作を許可するために、一時的にリセットされることができる。
【００５５】
５０８〜５１０に示される操作の前、操作中、または操作の後、識別されたメモリロケーションに影響する操作が、５１２において、気付かれることができる。
【００５６】
５１４において、操作を要求したプロセス、スレッド、またはモジュールが、次に、識別されることができる。
【００５７】
５１６において、５１２において操作に気付いたのに応答して、識別されたメモリロケーションのうちの１つを含むページの特権属性が、操作を許可するために、一時的にリセットされることができる。５１８において、特権属性を一時的にリセットした後、プロセス、スレッド、またはモジュールのアクティビティが、監視されることができる。
【００５８】
５２０において、５１２において操作に気付いたのに応答して、操作に対する成功の偽表示が、返されることができる。５２２において、成功の偽表示を返すことは、代替メモリロケーションへの書き込み操作を許可することと、その書き込み操作が成功した旨の表示を返すこととを含む。５２４において、読み取り操作は、偽または偽装ユーザ信用証明書を記憶した代替メモリロケーションに対して実行されるように、リダイレクトされることができる。５２６において、偽または偽装ユーザ信用証明書の使用が、次に、監視されることができる。いくつかの実装では、代替メモリロケーションにリダイレクトすることは、識別されたメモリロケーションを含むページの内容を、偽または偽装ユーザ信用証明書を記憶した代替メモリロケーションを含むページにコピーすることを含むことができる。
【００５９】
結語
本主題が、構造的特徴および／または方法論的行為に特有な言葉で説明されたが、添付の特許請求の範囲において確定される本主題は、説明された特定の特徴または行為に必ずしも限定されるものではないことが理解されるべきである。むしろ、特定の特徴および行為は、特許請求の範囲を実施する例示的な形態として開示される。
【図１】
2017162469.tif 000003
【図２ａ】
2017162469.tif 000004
【図２ｂ】
2017162469.tif 000005
【図３】
2017162469.tif 000006
【図４】
2017162469.tif 000007
【図５】
2017162469.tif 000008
【外国語明細書】
2017162469000001.pdf