(57)【特許請求の範囲】
【請求項１】
コンピューティング装置およびメモリを備えるシステムにより実行されるコンピュータ実装された方法であって、
前記コンピュータ実装された方法は、
前記コンピューティング装置が、前記メモリから、プロセスが認可されているか認可されていないかを決定するためのデータを取得することと、
前記コンピューティング装置が、前記プロセスが認可されているか認可されていないかを決定することと、
前記コンピューティング装置が、偽装混乱プロセスを認可されたプロセスおよび認可されていないプロセスの動作状態に取り込むことと、
前記認可されていないプロセスは前記偽装混乱プロセスにさらされて、前記認可されていないプロセスに動作障害を誘発する不安定な環境を経験させる一方で、前記コンピューティング装置が、前記認可されたプロセスを、前記認可されたプロセスに影響を及ぼすことを回避するために仮想マシンに移行することと
を含む、コンピュータ実装された方法。
【請求項２】
前記コンピューティング装置が前記偽装混乱プロセスを取り込むことが、予測不能な方法でプロセスを開始および停止することと、虚偽のパラメータをプロセスに渡すこととのうちの１つ以上を含む、請求項１に記載のコンピュータ実装された方法。
【請求項３】
前記コンピューティング装置が、デジタル資源の表現を作成することと、
前記コンピューティング装置が、前記デジタル資源に対して整合性値を確立するために、前記表現に対する一意の値を形成することと、
前記コンピューティング装置が、前記デジタル資源の現在のインスタンス生成を受信することと、
前記コンピューティング装置が、前記現在のインスタンス生成をアクティブな整合性状態に変換することと、
前記コンピューティング装置が、前記デジタル資源の前記現在のインスタンス生成に関連する前記認可されていないプロセスを識別するために、前記整合性値と前記アクティブな整合性状態との間の不一致を識別することと
をさらに含む、請求項１に記載のコンピュータ実装された方法。
【請求項４】
前記コンピューティング装置が、認可されたプロセスのレジストリを作成することをさらに含む、請求項１に記載のコンピュータ実装された方法。
【請求項５】
前記コンピューティング装置が、前記認可されたプロセスに対して終了時間を指定することをさらに含み、前記終了時間が前記認可されたプロセスに知られていない、請求項１に記載のコンピュータ実装された方法。
【請求項６】
前記コンピューティング装置が、前記終了時間に、前記認可されたプロセスの新しいインスタンス生成を起動することをさらに含む、請求項５に記載のコンピュータ実装された方法。
【請求項７】
前記コンピューティング装置が、デジタル資源の表現を作成することと、
前記コンピューティング装置が、前記認可されたプロセスを前記デジタル資源の新しいインスタンス上に移行することと
をさらに含み、移行が、前記認可されたプロセスに対応する登録済みの認可されたプロセスを起動することを含む、請求項６に記載のコンピュータ実装された方法。
【請求項８】
前記コンピューティング装置が、前記認可されていないプロセスを隔離することをさらに含む、請求項１に記載のコンピュータ実装された方法。
【請求項９】
前記認可されていないプロセスが、システム設定に対して変更を行うこと、共有資源にアクセスすること、および本当のシステム仕様を見ることを妨げる、請求項１に記載のコンピュータ実装された方法。
【請求項１０】
前記コンピューティング装置が、前記認可されていないプロセスの隔離されたインスタンス生成を形成することをさらに含み、前記認可されていないプロセスの前記隔離されたインスタンス生成が、生産環境外部の見えない合成仮想化環境シミュレーション内で動作される、請求項１に記載のコンピュータ実装された方法。
【請求項１１】
前記コンピューティング装置が、科学捜査的分析を、前記認可されていないプロセスの前記隔離されたインスタンス上で実行することをさらに含む、請求項１０に記載のコンピュータ実装された方法。
【請求項１２】
前記コンピューティング装置が、前記認可されていないプロセスを分類することと、
前記コンピューティング装置が、脅威レベルの定量化を前記認可されていないプロセスに提供することと、
前記コンピューティング装置が、前記認可されていないプロセスに対する防護対策を決定することと
をさらに含む、請求項１に記載のコンピュータ実装された方法。
【請求項１３】
前記デジタル資源の前記表現が、第１の仮想マシン、第２の仮想マシン、一時的防御層、仮想化オペレーティングシステム、デバイスドライバおよびコンピュータハードウェアの表現を含む、請求項３に記載のコンピュータ実装された方法。
【請求項１４】
前記コンピューティング装置が、前記表現に対して前記一意の値を形成することが、前記デジタル資源によって処理される実行可能コードのハッシュを計算することを含む、請求項１３に記載のコンピュータ実装された方法。
【請求項１５】
前記コンピューティング装置が、前記表現に対して前記一意の値を形成することが、認可されたプロセスに関連するイメージ識別、プロセス名、および選択されたヘッダー情報に基づき、前記認可されたプロセスに対してハッシュを計算することを含む、請求項１３に記載のコンピュータ実装された方法。
【請求項１６】
前記コンピューティング装置が、前記表現に対して前記一意の値を形成することが、仮想マシンアーカイブ識別番号、オペレーティングシステム名、オペレーティングシステムバージョン、オペレーティングシステムサービスのプロセス名、および仮想マシン上で実行するために登録された認可されたプロセスに基づき、仮想マシンに対してハッシュを計算することを含む、請求項１３に記載のコンピュータ実装された方法。
【請求項１７】
前記コンピューティング装置が、セキュリティ規則エンジン、合成環境シミュレータ、仮想化オペレーティングシステムおよび整合性チェッカーを起動することをさらに含む、請求項１に記載のコンピュータ実装された方法。
【請求項１８】
前記コンピューティング装置が、プロセス間通信ゲートウェイ、隔離エンフォーサ、および状態マッパーを起動することをさらに含む、請求項１に記載のコンピュータ実装された方法。
【請求項１９】
前記コンピューティング装置が、一時的スケジューラ、仮想マシンマネージャ、認可プロセスレジストリ、および基本仮想マシンイメージアーカイブを起動することをさらに含む、請求項１に記載のコンピュータ実装された方法。
【発明の詳細な説明】
【技術分野】
【０００１】
〔関連出願の相互参照〕
本願は、２０１０年１０月３１日に出願された「Ｔｅｍｐｏｒａｌ  Ｃｏｍｐｕｔｉｎｇ  Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｓｅｃｕｒｉｎｇ  Ｖｉｒｔｕａｌ  Ｃｏｍｐｕｔｉｎｇ  Ｅｎｖｉｒｏｎｍｅｎｔｓ」という名称の米国仮特許出願第６１／４０８，６０７号に対する優先権を主張し、その内容が参照により本明細書に組み込まれる。
【０００２】
本発明はコンピュータセキュリティに関する。より詳細には、本発明は、コンピュータ装置およびネットワークを権限のないアクセスおよび使用に対して保護することに関する。
【背景技術】
【０００３】
今日のコンピュータ装置およびネットワークは、コンピューティング技術革新が非常に競争の激しい業界内でマーケットの要求を満足するために大急ぎで完成されていることに伴い、システムの複雑性が急速に高まっているのにつれて、信じられないほど安全でない。ほとんどの市販の装置およびネットワークにおいては、技術的焦点および資源が伝統的に機能性および革新が解決する問題にあったので、セキュリティは、補足として追加されてきた。結果は素晴らしく、コンピュータ装置およびネットワークアクセスを地球規模でユビキタス（ｕｂｉｑｕｉｔｏｕｓ）にする。しかし、この遍在性（ｕｂｉｑｕｉｔｙ）が発展する過程で、コンピュータ装置およびそれらをともに接続するネットワークのセキュリティが全く不十分で、ほとんどのシステムがサイバー攻撃およびコンピュータウイルスを受けやすいままにされた。
【０００４】
コンピューティング装置およびネットワークセキュリティに関する問題は、現在のところ、マシンに対する権限のないアクセスを停止し、認可されていないコードがシステム上で実行されるのを防ぐために実施されている手段は、コードベースの広さおよび複雑性が、現在の最良実施コンピューティング環境によって保護できないので、不十分である。パスワードおよび安全なアクセス認証などのセキュリティ手段に加えて、セキュリティポリシーおよび手順を追加しても、システムはまだ十分に安全ではない。実際、システムが、最先端のＶＰＮ、ＩＤＳ、ファイアウォール、およびウイルス除去ソフトなどの専用セキュリティ製品を含んでいる場合でさえ、システムは、大した努力なしに破壊できる。単に最新のオープンソースハッカーソフトウェアをダウンロードし、それをターゲットに向けることにより、多くの場合、プログラマでない人でさえアクセスすることができ、コンピューティング装置が基幹システムにおいてセキュリティ侵害され得る。結果として、海のように広大なシステムセキュリティパッチが存在し、毎日、多くが岸に打ち上げられている。
【発明の概要】
【課題を解決するための手段】
【０００５】
コンピュータ実装された方法は、認可されたプロセスおよび認可されていないプロセスの動作状態に予測不能な一時的混乱を取り込むことを含む。認可されたプロセスは、予測不能な一時的混乱を回避するために仮想マシンに移行されるが、他方、認可されていないプロセスは、予測不能な一時的混乱にさらされ、それ により、動作障害を誘発する不安定な環境を経験する。
本明細書は、例えば、以下の項目も提供する。
（項目１）
予測不能な一時的混乱を認可されたプロセスおよび認可されていないプロセスの動作状態に取り込むことと、
前記認可されたプロセスが、前記予測不能な一時的混乱を回避するために仮想マシンに移行されるが、他方、前記認可されていないプロセスは、前記予測不能な一時的混乱にさらされ、それにより、動作障害を誘発する不安定な環境を経験することと
を含む、コンピュータ実装された方法。
（項目２）
予測不能な一時的混乱を取り込むことが、１つまたは複数のプロセスを予測不能な方法で開始および停止することと、虚偽のパラメータをプロセスに渡すこととを含む、項目１に記載のコンピュータ実装された方法。
（項目３）
デジタル資源の表現を作成することと、
前記デジタル資源に対して整合性値を確立するために、前記表現に対する一意の値を形成することと、
前記デジタル資源の現在のインスタンス生成を受信することと、
前記現在のインスタンス生成をアクティブな整合性状態に変換することと、
前記デジタル資源の前記現在のインスタンス生成に関連する前記認可されていないプロセスを識別するために、前記整合性値と前記アクティブな整合性状態との間の不一致を識別することと
をさらに含む、項目１に記載のコンピュータ実装された方法。
（項目４）
認可されたプロセスのレジストリを作成することをさらに含む、項目１に記載のコンピュータ実装された方法。
（項目５）
認可されたプロセスに対して終了時間を指定することをさらに含み、前記終了時間が前記認可されたプロセスに知られていない、項目１に記載のコンピュータ実装された方法。
（項目６）
前記終了時間に、前記認可されたプロセスの新しいインスタンス生成を起動することをさらに含む、項目５に記載のコンピュータ実装された方法。
（項目７）
前記認可されたプロセスを前記デジタル資源の新しいインスタンス上に移行することをさらに含み、移行が、前記認可されたプロセスに対応する登録済みの認可されたプロセスを起動することを含む、項目６に記載のコンピュータ実装された方法。
（項目８）
前記認可されていないプロセスを隔離することをさらに含む、項目１に記載のコンピュータ実装された方法。
（項目９）
前記認可されていないプロセスが、システム設定に対して変更を行うこと、共有資源にアクセスすること、および本当のシステム仕様を見ることを妨げる、項目１に記載のコンピュータ実装された方法。
（項目１０）
前記認可されていないプロセスの隔離されたインスタンス生成を形成することをさらに含み、前記認可されていないプロセスの前記隔離されたインスタンス生成が、生産環境外部の見えない合成仮想化環境シミュレーション内で動作される、項目１に記載のコンピュータ実装された方法。
（項目１１）
科学捜査的分析を、前記認可されていないプロセスの前記隔離されたインスタンス上で実行することをさらに含む、項目１０に記載のコンピュータ実装された方法。
（項目１２）
前記認可されていないプロセスを分類することと、
脅威レベルの定量化を前記認可されていないプロセスに提供することと、
前記認可されていないプロセスに対する防護対策を決定することと
をさらに含む、項目１に記載のコンピュータ実装された方法。
（項目１３）
前記デジタル資源の前記表現が、第１の仮想マシン、第２の仮想マシン、一時的防御層、仮想化オペレーティングシステム、デバイスドライバおよびコンピュータハードウェアを含む、項目３に記載のコンピュータ実装された方法。
（項目１４）
前記表現に対して一意の値を形成することが、前記デジタル資源によって処理される実行可能コードのハッシュを計算することを含む、項目１３に記載のコンピュータ実装された方法。
（項目１５）
前記表現に対して一意の値を形成することが、前記プロセスに関連するイメージ識別、プロセス名、および選択されたヘッダー情報に基づき、認可されたプロセスに対してハッシュを計算することを含む、項目１３に記載のコンピュータ実装された方法。
（項目１６）
前記表現に対して一意の値を形成することが、仮想マシンアーカイブ識別番号、オペレーティングシステム名、オペレーティングシステムバージョン、オペレーティングシステムサービスのプロセス名、および前記仮想マシン上で実行するために登録された認可されたプロセスに基づき、仮想マシンに対してハッシュを計算することを含む、項目１３に記載のコンピュータ実装された方法。
（項目１７）
セキュリティ規則エンジン、合成環境シミュレータ、仮想化オペレーティングシステムおよび整合性チェッカーを起動することをさらに含む、項目１に記載のコンピュータ実装された方法。
（項目１８）
プロセス間通信ゲートウェイ、隔離エンフォーサ、および状態マッパーを起動することをさらに含む、項目１に記載のコンピュータ実装された方法。
（項目１９）
一時的スケジューラ、仮想マシンマネージャ、認可プロセスレジストリ、および基本仮想マシンイメージアーカイブを起動することをさらに含む、項目１に記載のコンピュータ実装された方法。
【０００６】
本発明は、添付の図と併せて、以下の詳述に関連してさらに十分に理解されるであろう。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態に従って、コンピューティング装置の構成を示すスタック図である。
【図２】本発明の実施形態に従って、ネットワーク装置の構成を示すスタック図である。
【図３】本発明の実施形態に従って、コンピューティングシステムの構成を示すスタック図である。
【図４】本発明の実施形態に従って、コンピューティング装置の実施態様の分散型構成を示すスタック図である。
【図５】本発明の実施形態に従って利用された一時的防御層の機能構成を示すブロック図である。
【図６】本発明の実施形態に従って、仮想マシンのインスタンスを生成するための手順を示す流れ図である。
【図７】本発明の実施形態に従って、仮想マシンを終了するための手順を示す流れ図である。
【図８】本発明の実施形態に従って、システム仕様を上書きするための手順を示す流れ図である。
【図９】本発明の実施形態に従って、仮想マシンの整合性チェックのための手順を示す流れ図である。
【図１０】本発明の実施形態に従って、仮想マシン間のシームレスなプロセスのハンドオフを示すシーケンス図である。
【図１１】本発明の実施形態に従って、仮想マシンを移行するためのプロセスを示す流れ図である。
【図１２】本発明の実施形態に従って、一時的な状態がどのように管理されるかの手順を示す流れ図である。
【図１３−１】本発明の実施形態に関連する隔離手順を示す流れ図である。
【図１３−２】本発明の実施形態に関連する隔離手順を示す流れ図である。
【図１４】コンピューティング環境の合成疑似表現が、コンピューティングプロセスの予測から生産システム環境を複製できる実システム例の概念図を示す。
【図１５】本発明の実施形態に従って、感染したコンピューティングシステムの科学捜査的分析がそれを通じて定義されたように動作できるように、リアルタイム防護対策のための手順がどのように調整されるかを示す流れ図である。
【図１６】アーカイブに格納されている、基本仮想マシンイメージを示すデータ構成の例である。
【図１７】認可プロセスレジストリ内の登録済みプロセスを示すデータ構成の例である。
【図１８】問合せ認可ハッシュ（ｉｎｑｕｉｒｙ  ａｕｔｈｏｒｉｚａｔｉｏｎ  ｈａｓｈ）と呼ばれる、認可されたプロセスの識別ハッシュ値を得るための手順を示す流れ図である。
【図１９】仮想マシンのデジタル識別を得るための手順を示す流れ図である。
【発明を実施するための形態】
【０００８】
いくつか図を通じて、同様の参照番号は対応する部分を指す。
【０００９】
本発明は、認可されたプロセス使用が堅牢で安定したコンピューティング環境で起こり、認可されていないプロセス使用が敵意のある、不安定で常に変化するコンピューティング環境を経験する、一時的なコンピューティング環境を作成するように設計される。さらに、本発明は、システム仕様を不鮮明にするか、マスクするか、または混乱させる機構を、認可されていないか、またはセキュリティ侵害されたコンピューティングプロセスおよびそれらの管理者（そのプロセスを開始したか、または制御する人またはリモートエージェント）に提供する。
【００１０】
さらに、本発明は、システムがセキュリティ侵害されているか否かを検出する仮想システムインスタンスおよび物理システムインスタンスの両方の整合性を検証するための技術を提供する。加えて、本発明は、ウイルスが拡がり、ミッションクリティカルなコマンドにアクセスするのを防ぐために、感染したシステムを隔離する方法、およびそれらが生産コンピューティング環境に影響を及ぼさないか、またはウイルス、認可されていないエージェントコードもしくは認可されていないコンピューティングセッションユーザーもしくはそれらの管理者が、生産環境ではなく、合成疑似環境で隔離されているかまたは動作しているという事実をそれらに警告しないような方法で、科学捜査（ｆｏｒｅｎｓｉｃｓ）を実施するためのオートプシー（ａｕｔｏｐｓｙ）方法を提供する。
【００１１】
すなわち、本発明の一態様によれば、コンピューティング装置または別個のコンピューティングシステムであるコンピューティングネットワーク装置上で仮想化されているコンピューティング環境実体があり、それらが合成コンピューティング装置として動作できるようになっている。仮想コンピューティングまたはネットワークシステムの動作インスタンスは、仮想マシンまたはＶＭと呼ばれ、それは、各別個の仮想マシンに対してコンピューティング環境を制御するオペレーティングシステムに従って動作する。この態様は、仮想マシンで実行中の認可された処理タスクは影響を受けないが、認可されていないプロセスはそれらのコンピューティング環境の変更に遭遇する、一時的状態を誘導するような方法で、仮想コンピューティング環境で動作している仮想マシンを制御する方法を提供する。
【００１２】
一実施形態では、処理は、（ａ）複数のインスタンスがインスタンス生成できるように、仮想マシンの基本状態を捕捉できるような方法で、仮想マシンのスナップショット、基本デジタル表現を作成すること、（ｂ）事前定義した間隔またはランダムベースで、仮想マシンを頻繁にアップ（仮想マシンのコンピューティング環境を起動する）およびダウン（仮想マシンのコンピューティング環境をシャットダウンする）させるサポート、（ｃ）認可されたプロセスの通常または意図した実行を中断しないような方法でプロセスを１つの仮想マシンから別のマシンへ移行するが、認可されていないプロセスに対しては、移行中にそれらの実行がセキュリティ規則に基づいて終了されるか、または変更されること、を含む。
【００１３】
本発明の別の態様は、検証方法を通じて仮想マシンの整合性チェックを定期的に実施することである。検証方法の一実施形態は、（ｄ）健全でセキュリティ侵害されていない仮想マシンを表す基本デジタル表現に対する一意の値、基本デジタル表現の整合性値を作成すること、（ｅ）アクティブ仮想マシン整合性値と呼ばれる、アクティブな仮想マシンの整合性値を計算すること、および（ｆ）基本デジタル表現の整合性値をアクティブ仮想マシン整合性値と比較すること、を含む。
【００１４】
本発明のさらに別の態様は、ミスディレクション（ｍｉｓｄｉｒｅｃｔｉｏｎ）のための方法を提供するために、認可されていないプロセスを混乱させて、それが、仮想マシンのオペレーティングシステム、ネットワーキングプロトコルまたはアクセス可能な周辺機器（システムコアコンポーネントと総称する）などの、本当のコンピューティング環境仕様を知らないようにすることである。一実施形態では、ミスディレクションのこの方法は、（ｇ）一意のシステム問合せ認可コードを受信する登録済みの認可されたプロセスを開始すること、（ｈ）コンピューティング環境仕様を判断するためにオペレーティングシステムによって使用されるシステム発見（ｓｙｓｔｅｍ  ｄｉｓｃｏｖｅｒｙ）を上書きする認可コードを使用すること、（ｉ）プロセスがコンピューティング環境に対する問合せを行うと、そのプロセスが登録済みでその割り当てられた問合せ認可コードを使用しているか否かがチェックされて、（ｊ）そうである場合は、本当の仕様が提供され、（ｋ）そうでなければ、本当の仕様でない可能性のある、偽の仕様が提供されること、を含む。
【００１５】
本発明の別の態様は、認可されていないプロセスが引き起こし得る損害を、隔離方法を提供することによって低減することであり、その方法は、コンピューティング装置および関連するネットワークおよびシステムを、検出されている認可されていないプロセスに警告しない間に、保護するような方法で、認可されていないプロセスを分離し、封じ込める。この隔離方法は、（ｌ）前述したステップが、（ｆ）整合性チェックが失敗すると、仮想マシンは、潜在的にセキュリティ侵害されているとマークされて、その仮想マシンがアクティブな隔離状態に置かれ、（ｍ）その仮想マシン上のどのプロセスも停止されないが、コンピューティング資源およびネットワークおよびシステムへのアクセス可能性が制限され、（ｎ）隔離された仮想マシンが寿命末期になった、終了された（ステップｂ）場合、インスタンスは、一方でその仮想マシンのスナップショットが科学捜査的分析用に保存されながら、終了でき、（ｏ）または、寿命末期の隔離された仮想マシンは、認可されていないプロセスがライブの科学捜査的分析、実験、感染率分析もしくは悪質なコードの標的発見のために、実行を継続可能にするような方法で、生産コンピューティング環境の外部で実行を継続でき、（ｐ）隔離制限を解除するが、合成疑似システム上で動作すること、を含み得る。従って、システムを保護するが、認可されていないプロセスに対しては、検出されず、成功したという錯覚を提供する。
【００１６】
本発明の別の態様は、一時的状態システムが、それが攻撃を受けているか、または受けていたことを考慮に入れ、その結果、適用可能な防御方法を通じてその防御を調整できるようにする、動的な防護対策調整である。この適用可能な防御方法は、（ｑ）認可されていないプロセスを識別および分類すること、（ｒ）脅威レベルの定量化を認可されていないプロセスに提供すること、（ｓ）一時的セキュリティ層のセキュリティ規則に基づいて、防護対策アプローチを決定すること、（ｔ）受動的（ｐａｓｓｉｖｅ）に設定されると、一時的制御プロセスに変更がなく、（ｕ）保護（ｐｒｏｔｅｃｔ）に設定されると、それに応じてシステム仕様の偽装（ステップｔ）が調整され、（ｖ）誘う（ｅｎｔｉｃｅ）に設定されると、それに応じてシステム仕様の偽装（ステップｔ）が調整されて、より多くの認可されていないプロセスを引き付けるために効果的にシステムをハニーポットにすること、を含み得る。
【００１７】
本発明の例によれば、前述のステップ（ａ）では、認可されたプロセスのレジストリが生成される。プロセス移行中、前述のステップ（ｃ）では、認可されたプロセスの実行状態が記録され、実行がホスト仮想マシン上で中断され、新たにインスタンス生成された仮想マシンが、前述のステップ（ｂ）で動作可能になる（新しいホスト）と、中断されたプロセスが新しいホスト上で開始され、開始時のそれらの実行状態が、現在の古いホスト上で記録されたそれぞれの実行状態に設定され、中断されたプロセスの処理が新しいホスト仮想マシン上で実行を再開する。新しい仮想マシンがインスタンス生成でき、間もなく古いホストになるホスト上でプロセスの実行が中断される前に、十分に動作可能になると、プロセス移行がほとんど瞬間的に起こり得、アクティブな仮想マシン間でのシームレスな処理のハンドオフを可能にする。
【００１８】
さらに、プロセス移行が前述のステップ（ｃ）で生じると、認可されていないプロセスの自然の定義が、基本仮想マシンの認可されたレジストリ内に登録されていないプロセスであり、従って、基本仮想マシンイメージの新しいインスタンスが作成されると、認可されていないプロセスは開始されず、基本的にプロセス中断の時点で古いホスト仮想マシン上で終了するようになるので、前述のステップ（ｂ）で説明したように、認可されていないプロセスは、新しい仮想マシンのインスタンス生成の自然経過によって終了される。
【００１９】
あるいは、本発明の別の例によると、セキュリティ規則に基づき、認可されていないプロセスは、プロセス移行が前述のステップ（ｃ）で生じると、移行中に生き続けることができる。前述のステップ（ｂ）で説明した仮想マシンの終了プロセス中にこれが生じると、古いホスト仮想マシンを終了する代わりに、仮想マシンは、隔離されているとマークされ、それがまだマークされておらず、かつ、基本仮想マシンの第３のインスタンスが作成されると、それが隔離とマークされ、前述のステップ（ｏ）で説明したように、ライブ科学捜査状態に置かれ、隔離されたライブ科学捜査状態が生産環境に影響を及ぼさないが、認可されていないプロセスが、合成環境で現在実行中の認可されたプロセスと共に生きていて、実行されたまま保持されるように、合成コンピューティング、ネットワークおよびシステム環境を利用する。次いで、認可されていないプロセスのプロセス状態を含め、古い仮想マシン状態が、隔離されたライブ科学捜査モードで実行中の基本仮想マシンの第３のインスタンスにコピーされ、状態が複製されると、プロセス中断が第３の仮想マシン上で解除され、実行が、前述のステップ（ｏ）で説明されているように、正常としてではあるが、合成環境でシームレスに続行される。これは、前述したシームレスなプロセスハンドオフ方法も利用できる。移行プロセスおよび隔離されたライブ科学捜査ハンドオフプロセスの両方が完了した後に、古い仮想マシンが、最終プロセス状態を含む、その状態を取得した最終スナップショットを有し、それが、前述のステップ（ｎ）におけるようにさらなる分析用に格納され、これが完了すると、前述のステップ（ｂ）で説明するように、それが終了される。
【００２０】
本発明の別の例によれば、整合性チェックが定期的に実施され、仮想マシンのコンピューティング環境の整合性を確実にする。前述のステップ（ａ）の基本仮想マシンの作成中に、基本仮想マシンのデジタル署名を計算することにより、一意の値が前述のステップ（ｄ）で説明したように生成される。このデジタル署名は、基本仮想マシンのアクティブなインスタンス生成に対する比較として使用されるように、整合性チェック中に使用される。前述のステップ（ｅ）に明記されているように、仮想マシンは、同じデジタル署名生成機能を実行でき、出力である整合性値が、前述のステップ（ｆ）で説明したように、基本仮想マシンイメージのデジタル署名と一致すると、仮想マシンの整合性が仮定できる。
【００２１】
さらに、整合性比較が失敗すると、前述のステップ（ｌ）で説明しているように、チェックされている仮想マシンが隔離とマークされ、それは、前述のステップ（ｃ）で説明しているように次の移行プロセスまで、前述のステップ（ｍ）で明記しているようにプロセスのアクセスを制限し、完了時に、移行ハンドオフを受信した新しくインスタンス生成された仮想マシンが整合性有効状態に設定され、隔離が解除される。セキュリティ規則に応じて、古い仮想マシンは、前述のステップ（ｎ）で設定したように、取得され、さらなる科学捜査調査のために保存された自身のスナップショットを有し、同じくセキュリティ規則に応じて、ライブの科学捜査が設定されると、隔離された仮想マシンは前述のステップ（ｏ）に従う。
【００２２】
本発明の別の例によれば、コンピューティング環境の本当の仕様を混乱させ、マスクするために、偽装混乱プロセスが使用される。前述のステップ（ｇ）で説明したように、プロセスのレジストリ時に、ハッシュコードがプロセスの実行可能コードから生成される。前述のステップ（ｉ）におけるように、システム仕様を変更するか、またはそれに関して問い合わせるために、実行しているプロセスからオペレーティングシステムに対して呼出しが行われると、プロセスの問合せ認可ハッシュが、上書き判定値として使用される。認可ハッシュが存在しないか、または認可ハッシュが、前述のステップ（ｋ）で提示されているように、呼出しプロセスに対するプロセスレジストリに格納されているものに一致しない場合、偽のシステム仕様値が返され得るが、その値は、セキュリティ規則によって決まる。プロセスの問合せ認可ハッシュが実際に一致する場合は、前述のステップ（ｊ）におけるように、本当の仕様が返される。
【００２３】
この処理は、システムを、認可されていないプロセス攻撃に対してより回復力をもつようにし、情報を収集し、ウイルスが拡がるのを遅くするのを助ける。実際、この改善は、外部からの攻撃の企て、および無防備な認可されたユーザーから意図的ではなく内部的に放たれた認可されていないプロセスに反する働きをし、認可されていないプロセスがまだ検出されておらず、仮想マシンが隔離されているとフラグを付けられていない場合でさえ、継続して実施されている。
【００２４】
本発明のさらに別の例は、前述のステップ（ｑ）で明記したように、実行されていた認可されていないプロセスのタイプを判断するために、感染した仮想マシンのスナップショットに関する分析およびライブ科学捜査隔離を行うことにより、前述した偽装サブシステム、隔離サブシステムおよびライブ科学捜査サブシステムのその防護対策防御を動的に変更することである。前述のステップ（ｒ）に従った脅威レベル値が、カテゴリ、ならびにライブ隔離モニタリングおよび実験に対するその履歴ログ活動ならびにその現在およびアクティブな応答に基づき、認可されていないプロセスに与えられる。セキュリティ規則に基づき、認可されていないプロセスに対する防護対策が、前述のステップ（ｓ）におけるように変更される。セキュリティ規則が前述のステップ（ｒ）におけるように受動的であれば偽装結果は変更されず、セキュリティ規則が前述のステップ（ｕ）におけるように保護に設定されていれば、偽装結果は本当の値からはるかに歪曲され、また、セキュリティ規則が前述のステップ（ｖ）におけるように誘う（ｅｎｔｉｃｅ）に設定されていれば、偽装結果は、モニタリングおよび犯人識別のために、成功に誘導し、おそらくは他を引き付けるように認可されていないプロセスに適合しようとする。
【００２５】
図１は、本発明に従った、コンピューティングシステムの一実施形態の構成例を示すスタック図である。図１では、参照番号１は一時的コンピューティング装置を指定し、それは、コンピューティング環境の改善されたセキュリティを達成するために、そのコンピューティング環境状態が、認可されていないプロセスに対して動的に変動および変更されるように定義された、一時的な状態に誘導されている、コンピュータラップトップ、携帯電話、デスクトップコンピュータ、またはコンピュータサーバーなど、任意のタイプのコンピューティング装置であり得る。より高いレベルのセキュリティによって意味するものは、どのプロセスが認可されているか、以前に承認されているか、またはユーザーがアクセス許可をもつ装置と一緒にコンピューティング装置によって実行するように指定されているかを判断するコンピューティング環境の能力である。
【００２６】
一時的コンピューティング装置１は、関連する構成を有する。この実施形態では、構成は、第１の仮想マシン１．１、第２の仮想マシン１．２、一時的防御層１．３、仮想化オペレーティングシステム１．４、デバイスドライバおよびファームウェア１．５、ならびに物理コンピュータハードウェア１．６を含む。
【００２７】
同様に、図２では、参照番号２は、一時的として誘導される、ルーターまたはスイッチなどのネットワーク装置である変形実施形態を指定する。図２は、図１に関連して説明されるタイプの構成コンポーネント２．１〜２．６を示す。
【００２８】
コンピューティング環境の複雑性を拡張すると、図３では、参照番号３は、一時的として誘導される、ＬＡＮ（ローカルエリアネットワーク）などの、ある資源を一緒に接続し、共有する複数のコンピューティング装置およびネットワーク装置で構成されるコンピューティングシステムを指定する。この実施形態では、一時的防御層３．３の構成は、図３に示すように協調的な方法で、全ての装置ならびに装置３．１１、３．２１および３．１２に渡って動作できる。
【００２９】
あるいは、各一時的装置は、システム内の任意の他の一時的装置またはそれらの組合せとは無関係に、その一時的防御層が動作できる。一時的コンピューティング環境と見なされるためには、誘導された一時的状態でなければならないコンピューティングシステム内の装置の最小数は１である。
【００３０】
図４では、参照番号４は、コンピューティング装置が一時的である、別の実施形態構成を指定する。図１および図４に示すものの間の差は、図１における一時的コンピューティング層、参照番号１．３が、基本仮想化オペレーティングシステムの一部として中心的に実行する一時的コンピューティング層を示し、また、図４では、参照番号４．３が、指定された仮想マシンとして分散して実行する一時的コンピューティング層を示すことである。この構成では、各々が、参照番号４．１で示されるような、異なる指定された仮想マシン内で一時的に制御するように設定された、単一のコンピューティング装置またはネットワーク装置上の２つ以上の別個の一時的コンピューティング層があり得る。本発明の実施形態は、仮想マシンを外見的には再仮想化または時間化（ｔｅｍｐｏｒａｌｉｚｅ）するネスト化仮想マシンを含め、多くの形をとることができる。
【００３１】
図５は、本発明の実施形態に対する一時的防御層の構成のブロック図を示す。ブロック図は、一時的防御層の機能コンポーネントおよびそれらの間の相互作用、コンピューティング装置上で実行する、ＶＭＷａｒｅ  ｖＳｐｈｅｒｅ、Ｘｅｎ、ＫＶＭまたはＷｉｎｄｏｗｓ（登録商標）  Ｈｙｐｅｒ−Ｖなどの、図５に示す仮想化オペレーティングシステム（参照番号１．３．１３００）、ならびに、図５に示すＷｉｎｄｏｗｓ（登録商標）またはＬｉｎｕｘ（登録商標）オペレーティングシステムなどの仮想マシンのオペレーティングシステムを示し、参照番号１．３．１２００は、集団（ｃｏｌｌｅｃｔｉｖｅ）コンポーネントによって管理されるように、一時的状態に誘導されている仮想化オペレーティングシステムによってホストされている。
【００３２】
図５では、参照番号１．３．４００は、一時的防御層で管理されていることにより一時的になる、各仮想マシン、コンピューティング実体に対する基本イメージおよびそれらのインスタンス化状態仕様を含む、基本仮想マシンイメージアーカイブを示す。各基本仮想マシンイメージ定義の一部として、図５に示す一時的仮想マシン（参照番号１．３．１２００）上で実行するように認可されているプロセスが、認可プロセスレジストリ１．３．５００内に登録され、それは、図５に１．３．４００として示すアーカイブ内の基本仮想マシンイメージと関連付けられている。
【００３３】
さらにシステムを説明すると、図５に示すセキュリティ規則エンジン（参照番号１．３．６００）は、図５に参照番号１．３．４００で示されるアーカイブ内に格納されている特定の基本仮想マシンイメージに関する特定の規則のみならず、一般的コンピューティング環境レベルに関する一時的動作の規則を含む。セキュリティ規則は、図５に参照番号１．３．１２００で示す仮想マシンの一時的環境がどのように管理されるかを制御する。一時的環境セキュリティ規則は、基本仮想マシンイメージのインスタンスのランダムリフレッシュに対する間隔制限、認可されていないプロセスをどのように隔離するか、生産環境をどのように合成するか、システム仕様マスキングのためにどの技術を使用すべきか、およびどのような状況でどのような防護対策を配備すべきかを含む。追加として、特定のセキュリティ規則が、基本仮想マシンイメージおよび認可されたプロセスレベル基準に設定できる。
【００３４】
番号１．３．１００は、一時的スケジューラを示し、それは、本発明の実施形態の一時的なフラックス（ｆｌｕｘ）を含む状態変化のスケジューリングを処理する。一時的スケジューラは、セキュリティ規則エンジン１．３．６００によってその限界が制御される一連のランダムタイマーを設定する。システム変更に対応するタイマー上の時間が満了すると、インスタンスのリフレッシュが開始される。この一例を図１１に示し、それは、仮想マシンがリフレッシュされるときに起こる移行プロセスを進める。
【００３５】
状態マッパー１．３．９００は、仮想マシン１．３．１２００上で実行しているプロセスの状態または仮想マシン全体の状態をマッピングする一時的防御層のコンポーネントである。状態マッパーは、プロセス状態情報を取得するためにプロセス間通信ゲートウェイ１．３．８００とインタフェースをとり、また、仮想マシンの完全な状態情報を取得するために合成環境シミュレータ１．３．７００とインタフェースをとる。状態マッパー１．３．９００によって収集された情報から、実行状態を捕捉する処理またはコンピューティング環境のスナップショットが作成される。スナップショットから、プロセスまたは仮想マシンが、そのスナップショットがとられた実行の状態に戻すことができ、処理がその時点から再開できる。
【００３６】
整合性チェッカー１．３．３００は、一時的防御層内で、認可されていないプロセスまたは仮想マシン１．３．１２００の整合性を検証する責任を負う。仮想マシンの整合性をチェックする手順について、整合性チェッカー１．３．３００は、その現在のアクティブな状態においてインスタンスのデジタル署名値を計算する。これに対するプロセスを図９に示す。この計算された値は、図５のアーカイブ１．３．４００に格納されている基本仮想マシンイメージに対するデジタル署名整合性値と比較される。値が一致する場合、仮想マシンのセキュリティ整合性状態が、仮想マシンマネージャ１．３．２００にログをとる、クリーン（ｃｌｅａｎ）に設定される。整合性チェッカー１．３．３００が、仮想マシン１．３．１２００上で実行している実行プロセスを検証する場合に、同様のプロセスが生じる。認可識別と呼ばれる、プロセスに対する整合性値が、認可プロセスレジストリ１．３．５００内の関連する認可識別値と比較される。一時的スケジューラ１．３．１００は、整合性チェックを開始し、それは、セキュリティ規則エンジン１．３．６００内のセキュリティ規則によって制御されるように、同様にランダムベースで起こる。
【００３７】
システム仕様ハンドラ１．３．１０００は、仮想マシン１．３．１２００によって実行されるシステム仕様要求をフィルタ処理する。要求が、仮想マシンのコンピューティング環境内でシステムコンポーネント、オペレーティングシステム、または利用可能な資源仕様に関して行われると、要求は、図８のプロセス流れ図に提示されているように、フィルタリングが要求に関して実行されるシステム仕様ハンドラ１．３．１０００を通ってルーティングされる。値が解決されると、それが、仮想マシン１．３．１２００に提供され、問い合わせているプロセスに返される。
【００３８】
合成環境シミュレータ１．３．７００は、仮想マシン１．３．１２００とホスト仮想化オペレーティングシステム１．３．１３００との間のシム（ｓｈｉｍ）、フィルタプロセス層である。これは、仮想マシンによって実行されているどの内部プロセスもその存在を知ることができないように、仮想マシンインスタンスの外部に配置される。合成環境シミュレータ１．３．７００の機能は、発見が作動した場合、アクセスおよび処理コマンドがシミュレータによってインターセプトされ、全ての呼び出しプロセスにそれらが生産環境内にいると見せかけるために、肯定の応答が返送されるように、仮想マシン１．３．１２００が一部であるより広いコンピューティングシステムおよびプロセスのミッションクリティカルなコンポーネントをエミュレートすることであるので、これは重要である。
【００３９】
隔離エンフォーサ（Ｑｕａｒａｎｔｉｎｅ  Ｅｎｆｏｒｃｅｒ）１．３．１１００は、仮想マシン１．３．１２００を隔離し、そのインスタンスで実行している全てのプロセスにわたって隔離を強制する、一時的防御層のコンポーネントである。仮想マシンが隔離されている場合、あるプロセスコマンドは、認可プロセスレジストリ１．３．５００のミッションクリティカルなコマンド仕様とともに、セキュリティ規則エンジン１．３．６００によって定義されるように、実行されない。仮想マシンが生産の一部である場合、隔離は、仮想マシンによってどのようにプロセスが実行されるかに影響しないが、プロセスは、認可されていないプロセスでさえ、実行を継続するのを許可されるので、効果はほとんど受動的である。隔離エンフォーサは、整合性チェッカー１．３．３００内の感染した仮想マシンの整合性状態をセキュリティ侵害されているとマークする。図１１の一時的移行プロセスに示すようにインスタンスリフレッシュ中、セキュリティ規則に従って、隔離インスタンスは、自身を取得し、将来の科学捜査的分析のために保存されたスナップショットを有するか、またはセキュリティ規則が高いマスキングレベルに設定されている場合は、隔離されたインスタンスが生産から外部に移動されるが、終了されない。この場合、損害評価であり得る、調査および実験が実施できるように、別の仮想マシンが作成され、セキュリティ侵害されているインスタンスおよび認可されたプロセスと認可されていないプロセスの両方が、それらのコンピューティング環境に対していかなる変更も生じていないかのように、実行を継続できるような方法で、合成環境シミュレータ３．１．７００によって制御される完全に合成されたコンピューティング環境として実行される、ライブ科学捜査隔離状態に設定される。このライブ科学捜査状態では、隔離エンフォーサ１．３．１１００は、インスタンスがクリーンでセキュリティ侵害されていない状態環境をエミュレートできるように、隔離制約を解除する。隔離中、システム仕様ハンドラ１．３．１０００が、セキュリティ規則によって制御されるように、異なる結果を返すことも指摘されるべきである。
【００４０】
基本仮想マシンイメージを取得する（１．３．２０１）仮想マシンマネージャ１．３．２００から始まる、一時的仮想マシンのインスタンス生成のプロセスが図６に定義される。新しい仮想マシンインスタンス要求が仮想オペレーティングシステムに対して発行される（１．３．２０２）。次いで、仮想マシンが起動される（１．３．２０３）。認可されたプロセスが認可プロセスレジストリから取得される（１．３．２０４）。例えば、基本仮想マシンイメージに対する手順が仮想マシンマネージャ１．３．２００によって認可プロセスレジストリ１．３．５００から取得される。
【００４１】
登録プロセスが次いで開始される（１．３．２０５）。受信した各認可されたプロセスに対して、図５の仮想マシンマネージャが、状態マッパー１．３．９００に格納されているプロセスの状態スナップショットに対する実行の現在の状態を取得し、これは、図６のブロック１．３．２０６に従って実行される。以前の処理インデックスがない場合（１．３．２１０）、状態は初期の処理状態のままにされ（１．３．２１１）、登録済みプロセス実行が始まる（１．３．２１２）。実行状態の場合には、プロセス実行状態が決定される（１．３．２０７）。中断されたプロセスの状態値が取得される（１．３．２０８）。プロセスの状態が格納されている値に設定される（１．３．２０９）。登録済みの全てのプロセスが処理されると、仮想マシンセキュリティ状態がクリーンに設定され（１．３．２１３）、仮想マシンが動作可能になる。
【００４２】
図７は、仮想マシンの終了プロセスを進める。終了プロセスは、図５に１．３．２００として示されている仮想マシンマネージャによって発行された仮想マシン終了コマンドから始める。認可されたプロセスリストが認可プロセスレジストリ１．３．５００から取得され、この操作は図７のステップ１．３．２２０として示されている。認可されたプロセスがアクティブでない場合、そのプロセスはスキップされる（１．３．２２２）。プロセスが現在処理中であることが分かった場合（１．３．２２３）、状態マッパー１．３．９００はプロセスの操作を中断し（１．３．２２４）、ポイントプロセス実行が一時停止され（１．３．２２５）、そして、プロセスの状態のスナップショットが取得される（１．３．２２５）。スナップショットが処理され（１．３．２２６）、プロセス状態のスナップショットが格納される（１．３．２２７）。全ての認可されたプロセスのスナップショットが収集され、仮想マシンマネージャ１．３．２００によって決定されたように適切に処理されると、マネージャは、終了が予定されている仮想マシン１．３．１２００について、仮想化オペレーティングシステム１．３．１３００に対してシャットダウンコマンドを発行する。インスタンスが中断されて（１．３．２２８）終了されると（１．３．２２９）、その時点で仮想マシンがシャットダウンする。
【００４３】
本発明の実施形態における一時的防御層のもう１つ別のコア機能は、仮想マシンのコンピューティングシステムまたはそのコアコンポーネントの１つの仕様に関して、マスクするか、不鮮明にするか、または認可されていないプロセスをミスリードする能力である。図８は、認可されていないプロセスがシステム仕様に関して問い合わせた場合に、図５に１．３．１０００として示すシステム仕様ハンドラがとる上書き（ｏｖｅｒｒｉｄｅ）プロセスを示す流れ図である。
【００４４】
図８では、番号１．３．１００１は、仮想マシン上で実行されているプロセスが、システムまたはシステム上で実行しているコアコンポーネントの仕様に関して、インスタンスのオペレーティングシステムに問合せ要求を行うことを示す上書きプロセスを開始する。仮想マシン１．３．１２００は、問合せ要求を、図８にステップ１．３．１００２で示すように、プロセス間通信ゲートウェイ１．３．８００を通じてシステム仕様ハンドラ１．３．１０００に渡す。
【００４５】
システム仕様上書きプロセス、図８を継続すると、番号１．３．１００３は、システム仕様ハンドラ１．３．１０００が、プロセスが認可プロセスレジストリ１．３．５００に登録されているか否かを調べる、プロセスレジストリ検索ステップを示す。図８のブロック１．３．１００４に示すように、プロセスがレジストリで見つからなければ、ハンドラは、そのプロセスが認可されていないと見なし、セキュリティ規則エンジン１．３．６００によって示されるセキュリティ規則によって定義されるように、図８のブロック１．３．１００７に示すシステム仕様値を上書きする。この処理ステップは、図８のブロック１．３．１００６に示される。図８では、番号１．３．１０１３は、システム仕様の問合せを行っているプロセスを実行している仮想マシン１．３．１２００に返される値を示し、次いで、ブロック１．３．１０１４は、システム仕様値を最終的に呼出しプロセスに返す、仮想マシンのオペレーティングシステムを示す。
【００４６】
あるいは、システム問合せを行ったプロセスが認可プロセスレジストリ１．３．５００で見つかると、そのプロセスに関連付けられた関連する問合せ認可ハッシュ値が返される（１．３．１００９）。認可ハッシュは、一意の値を提供する呼出しプロセスの基本実行コードから計算されたハッシュであり、それは、そのプロセスが認可された基本実行コードから生じたことを示す。使用されたハッシュアルゴリズムは、ＳＨ１またはＭＤ５など、任意のハッシュアルゴリズムであり得、また、値は、登録済みプロセスのインスタンスを作成する実行可能なマネージコードまたはスクリプトファイル仕様をハッシュすることによって、簡単に導出できる。
【００４７】
図１８は、本発明の実施形態に対して、コードファイルが標準の．ｅｘｅである、登録済みのＷｉｎｄｏｗｓ（登録商標）ベースのアプリケーションに対する問合せ認可ハッシュを導出する例を示す。図１８に示す第１のステップは、図１６に示すデータ方式を有する基本仮想マシンイメージアーカイブ１．３．４００に格納されている、基本仮想マシンイメージＩＤを取得すること（１．３．５０１）であり、それは、その問合せ認可が導出されている認可プロセスに関連する。これは、認可されたプロセスがその上で実行することを認可された仮想マシンである。図１８に示す問合せ認可プロセスのステップ２は、そのプロセスの名前、またはこの場合は、アプリケーション実行ファイル名を取得すること（１．３．５０２）である。次に、プログラム実行可能ファイルヘッダーに対するプロセスまたは実行可能ファイルの仕様が確保される（１．３．５０３）。この例に対して使用される仕様は、マシン仕様、セクション数、ファイルの日付タイムスタンプ、シンボル数、オプションのヘッダーサイズおよび特性数である。これらのＣＯＦＦヘッダー値は、代替として、実行中のプロセスから取得できる。ブロック１．３．５０４は、前述の定義された順序で（ＶＭ  ＩＤ、アプリケーションファイル名、マシン仕様、セクション数、ファイルの日付タイムスタンプ、シンボル数、オプションのヘッダーサイズ、および特性数）、これら全ての値の連結された文字列を作成する第４のステップを示す。第５の導出ステップ１．３．５０５は、連結された文字列のＳＨ１ハッシュを計算する。結果として生じるハッシュ値が、図１８のブロック１．３．５０６に示す問合せ認可ハッシュであり、それは、図１７に示すデータ構成に示すように、認可プロセスレジストリ内の認可されたプロセスのエントリに格納される。
【００４８】
図８に戻ると、番号１．３．１０１１は、呼出しプロセス（システム仕様を要求しているプロセス）の問合せ認可ハッシュ値と、前述で示したように、レジストリから取得した問合せ認可ハッシュ値が等価であるかが比較される、比較プロセスステップを示す。問合せ認可ハッシュ値が一致しない場合、システム仕様を要求している呼出しプロセスは認可されていないと仮定される（１．３．１００５）。前述したように、システム仕様上書き手順が、処理ステップ１．３．１００６で開始されたプロセスによって関与され、結果として、上書きされた値が呼出しプロセスに返される（１．３．１０１４）。
【００４９】
代わりに、ブロック１．３．１０１１によって定義されるように、呼出しプロセスの問合せ認可ハッシュと、レジストリ値によって返された問合せ認可ハッシュが等しければ、そのプロセスは認可されていると見なされ、次いで、本当のシステム仕様値が取得される（１．３．１０１２）。本当のシステム仕様値は、そのシステム仕様の問合せを行ったプロセスを実行している仮想マシンに返され（１．３．１０１３）、それは、その後、本当のシステム仕様を呼出しプロセスに返す（１．３．１０１４）。
【００５０】
プロセスが認可されていないと分かると、図５の仮想マシン１．３．１２００全体が、図８のブロック１．３．１００８で表されるように、セキュリティ侵害されているとマークされる。インスタンスのセキュリティ状態が、仮想マシンマネージャ１．３．２００内で、セキュリティ侵害されているセキュリティを示す値に設定される。これは、システム仕様要求を行った、そのプロセスを実行している仮想マシンが、図８のブロック１．３．１０１３に示す、上書きされた仕様値を受信した直後に起こる。
【００５１】
図９は、仮想マシン１．３．１２００が、インスタンスがクリーンかセキュリティ侵害されているかを判断するために使用される整合性検証プロセスを示す。この実施形態では、クリーンを表すデジタル署名、仮想マシン１．３．１２００のセキュリティ侵害されていない整合性状態が、基本仮想マシンイメージアーカイブ１．３．４００に格納されている基本仮想マシンイメージから事前に計算され、図１６に示すように、データ構成内の対応する基本仮想マシンイメージに関連して格納される。このデジタル署名は、仮想マシンイメージから導出された任意の数の計算された値にできる。この例では、図１９で説明するように、仮想マシンのデジタル署名が、基本仮想マシンＩＤから導出され（図１９のブロック１．３．４０１に示す）、オペレーティングシステム名（図１９のブロック１．３．４０２で示す）および仮想マシンによって実行されているその拡張バージョン（図１９のブロック１．３．４０３で示す）と結合される。この情報は、図１９に示すように、仮想マシン上で実行されている、オペレーティングシステム名、コアプロセス名と一緒に、アルファベット順に連結され（番号１．３．４０４）、認可プロセスレジストリ（図５の１．３．５００）に格納されているように、この仮想マシンに関連する認可されたプロセス名と一緒に、アルファベット順に連結される（図１９のブロック１．３．４０５に示す）。結果として生じる連結文字列は、ブロック１．３．４０６で表され、これは、次いで、ブロック１．３．４０７でＳＨ１ハッシュを実行され、ブロック１．３．４０８で出力値を生じるが、それは、この実施形態では、仮想マシンのデジタル識別である。
【００５２】
整合性チェックが整合性チェッカー１．３．３００によって生じると、図９のブロック１．３．３０１に示すように、仮想マシンのスナップショットが取得される。ブロック１．３．３０２に示すように、スナップショットのデジタル署名が次いで計算される。例えば、整合性がチェックされている仮想マシン１．３．１２００のデジタル署名が、図１９で説明するように、デジタル識別導出プロセスを実行することにより導出されるハッシュ値を使用して計算され得る。整合性チェッカー１．３．３００が、次いで、前述したように計算された関連する事前計算されたデジタル署名が、図１６のデータ構成に格納されている基本仮想マシンイメージアーカイブから取得される。図９のブロック１．３．３０３は、整合性チェッカーが、アーカイブから取得されたデジタル署名、および整合性チェックが実行されている仮想マシン１．３．１２００のスナップショットから導出されたデジタル署名について実行する、比較プロセスを示す。デジタル署名が一致すると（図９のブロック１．３．３０６に示す）、仮想マシンの整合性が検証され、仮想マシンマネージャ１．３．２００内にクリーンとしてマークされる（図９のブロック１．３．３０７に示す）。
【００５３】
代わりに、デジタル署名が一致しなければ（図９のブロック１．３．３０４に示す）、整合性チェックが一致しなかったので、チェックされている仮想マシンはセキュリティ侵害されていると見なされる。これは、認可されていないプロセスが、チェックされていたインスタンス上で実行されていたことを意味する。結果として、仮想マシンに対するセキュリティ状態設定が、仮想マシンマネージャ１．３．２００内でセキュリティ侵害されていると設定されて、そのインスタンスがセキュリティ侵害されていることを示す（図９のブロック１．３．３０５に示す）。
【００５４】
図１０は、２つのマシン間で一連のシームレスな認可されたプロセスのハンドオフがどのように起こるかの略図を示す。認可されたプロセスは、登録されていて、レジストリエントリレコードを有し、かつ、認可プロセスレジストリ１．３．５００内にあるプロセスである。登録済みプロセスは、基本仮想マシンイメージアーカイブ１．３．４００内に格納されている基本仮想マシンイメージに関連付けられている。登録済みプロセスは、それがレジストリ内の証印（ｉｎｄｉｃｉａ）に関連付けられていれば、基本仮想マシンイメージインスタンス上で稼働、実行、または処理することを認可される（１．３．１２００）。
【００５５】
シームレスな認可されたプロセスのハンドオフ手順が図１１に示され、ブロック１．３．１２１５が、一時的移行プロセスの一部として示され、図１０に段階的に詳細に示されている。シームレスな認可されたプロセスのハンドオフは、インスタンスが生成され、図６のインスタンス生成プロセスで説明された、１つの仮想マシン１．３．１２００上で現在実行されている認可されたプロセスを、基本仮想マシンイメージアーカイブ１．３．４００内に格納されている基本仮想マシンイメージから、同じ基本仮想マシンイメージから派生された別の仮想マシンインスタンスへ、その認可されたプロセスの実行を妨害することなく移行したい場合に生じる。
【００５６】
図１０では、番号１．３．１２２０は、プロセスのハンドオフが始まる前に、プロセスの状態を示す、シームレスな認可されたプロセスのハンドオフのステップ０を示す。番号１．３．１２２１は、同じ仮想マシンイメージから派生され、前述したようにインスタンス生成された別の仮想マシンに移行されるか、またはハンドオフされる必要のあるプロセスである、認可されたプロセス（Ａ）１．３．１２２２を実行している仮想マシンを示す。図１０のステップ１では、番号１．３．１２３０は、認可されたプロセス、プロセス（Ａ）１．３．１２３２が実行を続行するために移行されるインスタンスであり得る、移行先の仮想マシン（１．３．１２３３で示す）が配置されるか、またはインスタンスが生成されることを示す。ステップ１では、プロセス（Ａ）が、元のまたは現在の仮想マシンと呼ばれる、移行元インスタンス１．３．１２３１上で現在まで実行されている。
【００５７】
番号１．３．１２４０は、新しい認可されたプロセス（Ａ）と呼ばれる、認可されたプロセス（Ａ）１．３．１２４４を開始または初期化する、移行先の仮想マシン１．３．１２４３を示す。これは、元の仮想マシン１．３．１２４１が、生産認可プロセス（Ａ）と呼ばれるプロセス（Ａ）の実行を継続している間に生じている。
【００５８】
番号１．３．１２５０は、現在中断されている認可されたプロセスの実行をホストしている元の仮想マシン１．３．１２５１によって一時停止されている、生産認可プロセス（Ａ）１．３．１２５２の実行を示す。番号１．３．１２５４は、移行先の仮想マシン（１．３．１２５３）上で初期化された新しい認可されたプロセス（Ａ）を示し、このプロセスの実行も中断される。
【００５９】
図１０のシームレスな認可されたプロセスのハンドオフの番号１．３．１２６０で示すステップ４は、スナップショット手順を示す。ステップ３で前述したように、生産認可プロセス（Ａ）が中断されると、図５の状態マッパー１．３．９００が図１０に示した状態スナップショットを取得する。図１０の新たに中断された生産認可プロセス（Ａ）１．３．１２６２の番号１．３．１２６５は、図１０の番号１．３．１２６２で示す生産認可プロセス（Ａ）の代わりに、元の仮想マシン（図１０の番号１．３．１２６１）によって実行されていた最後の命令の現在の実行ポイントまたはプロセス命令インデックスポインタを捕捉し、それは、図５に示す状態マッパーの一部として、メモリ状態、プロセススタック状態と共に、プロセスの状態スナップショットに記録される。番号１．３．１２６５は、全ての情報がいつ収集されたかを表す。番号１．３．１２６４は、移行先の仮想マシン１．３．１２６３上で初期化された新しい認可されたプロセス（Ａ）を示し、そのプロセスの実行も中断される。
【００６０】
番号１．３．１２７０は、新しいプロセス上で複製されているプロセス状態を示す。中断された生産認可プロセス（Ａ）１．３．１２７２の取得された状態スナップショット１．３．１２７５は、中断された新しい認可されたプロセス（Ａ）１．３．１２７４を、一致するプロセスの実行状態に設定するために使用される。元の仮想マシン１．３．１２７１および移行先の仮想マシン１．３．１２７３の両方は、それぞれの認可されたプロセス（Ａ）の中断された実行を有する。状態マッパー１．３．９００は、図１０に番号１．３．１２７４で示す新しい認可されたプロセス（Ａ）の状態のメモリおよびスタックおよび実行状態を、実行が中断される前のその最終時点における中断された認可されたプロセス（Ａ）のそれと一致させるように、変更するため、補足した状態スナップショット情報を使用して、移行先の仮想マシン１．３．１２７３上で生産認可プロセス（Ａ）を有効に複製する。
【００６１】
図１０に番号１．３．１２８０で示すシームレスな認可されたプロセスのハンドオフのステップ６は、中断された時点から次の処理命令を再開する生産認可プロセス（Ａ）の実行を示す。元の仮想マシン１．３．１２８１上で生産認可プロセス（Ａ）１．３．１２８２の実行が中断されたままの間、移行先の仮想マシン１．３．１２８３によって処理されている新しく複製された認可されたプロセス（Ａ）１．３．１２８４が、複製のために情報が使用されたスナップショットが取得される前に元の生産認可プロセス（Ａ）が中断された時点から、次の処理命令でプロセスの実行を再開するように設定される。最後の実行ポイントは、状態マッパー１．３．９００によって記録され、複製された生産認可プロセス１．３．１２８４が次の命令の処理を開始するために、処理スタックが移行先の仮想マシン１．３．１２８３で適切に設定できるようにし、認可されたプロセスが、シームレスなプロセス移行を行っている認可されたプロセスの実行順を妨害することなく、１つの仮想マシンのインスタンスから別へうまく移行できるようにする。
【００６２】
シームレスな認可されたプロセスのハンドオフのステップ７を図１０に示す。番号１．３．１２９０は、古い認可されたプロセスの終了のハウスキーピングステップを示す。番号１．３．１２９１は、元の生産認可プロセス（Ａ）１．３．１２９２の実行が現在中断されている元の仮想マシンを示す。移行先の仮想マシン１．３．１２９３上の実行中の生産認可プロセス（Ａ）１．３．１２９４に影響を及ぼさない、中断されたプロセス（Ａ）が終了される。
【００６３】
シームレスな認可されたプロセスのステップ８は番号１．３．１２９５に関連付けられ、元の仮想マシンが終了されると、シームレスなハンドオフプロセスのうまく終了した状態を表す。生産認可プロセス（Ａ）１．３．１２９７が、移行先の仮想マシン１．３．１２９６によってアクティブに実行されている。
【００６４】
図１１は、一時的移行プロセスの流れ図を示し、基礎となる基本仮想マシンイメージのインスタンスに対する一時的状態の誘導およびプロセスの実行がどのように処理されるかを詳述する。移行プロセスは、一時的スケジューラ１．３．１００によってランダムに設定されるように、仮想マシン１．３．１２００に対するインスタンスの寿命タイマー（ｌｉｆｅ  ｔｉｍｅｒ）が満了すると、開始する。図１１のブロック１．３．１２０１で示すように、一時的スケジューラ１．３．１００は、そのタイマーが満了すると、タイマーがちょうど満了した仮想マシンの一時的移行プロセスを開始する。一時的スケジューラは、図１１のブロック１．３．１２０２に示すように、インスタンスの寿命タイマーがちょうど満了した仮想マシンと関連付けられた基本仮想マシンイメージの新しいインスタンスを作成するために、仮想マシンマネージャ１．３．２００に信号送信する。この新しい仮想マシンのインスタンス生成が、図６のプロセス流れ図に示されているように起こり、図６の番号１．３．２１０を含むプロセス経路によって示されるように初期化するために、関連する認可されたプロセス状態を設定するためのプロセスステップに従う。最後のインスタンス生成ステップが終了すると（図６、ブロック１．３．２１２）、仮想マシンマネージャが、新たにインスタンス生成された移行先の仮想マシンに対して設定されたクリーンなセキュリティ整合性状態を有し、認可されたプロセスが全て初期化され、中断される。
【００６５】
図１１のブロック１．３．１２０３は、インスタンスの寿命タイマーがちょうど満了した仮想マシン上で実行中の各プロセスに対して、仮想マシンマネージャによって実行されている反復的なプロセスの開始を示す。ブロック１．３．１２０４は、プロセスが状態マッパー（図５の１．３．９００）によって中断されていて、前述したシームレスな認可されたプロセスのハンドオフの説明のように、プロセス状態のスナップショットが取得される、認可されたプロセス検証ステップを示す。次いで、プロセスは、それが認可されたプロセスであるか否かを判断するために、認可プロセスレジストリ（図５の１．３．５００）に対してチェックされる。それが認可されたプロセスであれば、プロセス経路は次いで、ブロック１．３．１２１４に進み、それはその後、シームレスな認可されたプロセスのハンドオフを示す処理ステップであるブロック１．３．１２１５に進む（図１０に示す）。これは、実行されている認可されたプロセスを１つの仮想マシンから、同じ仮想マシンイメージからインスタンス生成されている別の仮想マシンに移行する。ブロック１．３．１２１５のハンドオフが完了した後、認可されたプロセスが、ブロック１．２．１２０２で作成された新しい移行先仮想マシンによって現在実行されている。このプロセス経路は、インスタンスの寿命タイマーがちょうど満了した仮想マシン上で中断されている、認可されていると分かった全てのプロセスに対して繰り返される。
【００６６】
あるいは、プロセスがブロック１．３．１２０４の認可ステップに失敗すると、実行経路はブロック１．３．１２０５に進むが、それは、認可されていないプロセスが、インスタンスの寿命タイマーがちょうど満了した仮想マシン上で実行されていることがわかったことを示す。ブロック１．３．１２０６は、インスタンスの寿命タイマーがちょうど満了した仮想マシンのセキュリティ整合性状態を、それがセキュリティ侵害されていることを示す値にマークする、仮想マシンマネージャを示す。ブロック１．３．１２０７は、セキュリティ規則エンジン（図５の１．３．６００）が、ちょうど発見された認可されていないプロセスに対してどの防護対策をとるかを判断するために問合せをされる、一時的移行処理ステップを示す。規則が、一時的移行時に全ての認可されていないプロセスが終了するように設定される場合は、経路１．３．１２０８がとられて、認可されていないプロセスのハンドオフをスキップし、それは現在、仮想マシンが終了するときに終了する予定である。ブロック１．３．１２０９は、問合せによって返されたセキュリティ規則が、認可されていないプロセスが実行を継続するライブ科学捜査状態に置かれることを示すか否かをチェックするステップを示す。ブロック１．３．１２１０は、インスタンスの寿命タイマーがちょうど満了した仮想マシンに対してライブ科学捜査を実行していることを示すフラグを設定する仮想マシンマネージャ（図５の１．３．２００）を示す。
【００６７】
一時的移行プロセスの認可されていないプロセス実行経路を続行すると、ライブ科学捜査オプションがオンの場合、第３の仮想マシンが仮想マシンマネージャ（図５の１．３．２００）によってインスタンス生成され、それは、図１１のブロック１．３．１２１１に示されるように、コンピューティング環境を合成する方法で新しいインスタンスを提示する、ライブ科学捜査モードに設定される。
【００６８】
残りのプロセスがチェックされ、認可されていれば、ブロック１．３．１２０２で新たに作成された新しい移行先の仮想マシンに移行される。全ての認可されたプロセスの新たにインスタンス生成された仮想マシンへのシームレスなハンドオフが完了すると、認可されていないプロセスが移行先インスタンスにハンドオフされていないため、移行先のインスタンスはいかなる認可されていないプロセスも有していないので、仮想マシンマネージャ（図５の１．３．２００）は、ブロック１．３．１２０２で作成された新しい移行先仮想マシンのセキュリティ整合性状態をクリーンなセキュリティ整合性値を示す値に設定する。追加として、仮想マシンマネージャは、インスタンスの持続時間タイマーを、一時的サイクルを続行している一時的スケジュール内のランダム値に再設定する。認可されたプロセスが全て、ブロック１．３．１２０２で作成された新しい移行先仮想マシン上の生産環境で実行されている。
【００６９】
インスタンス持続時間タイマーが満了した仮想マシンのライブ科学捜査フラグがオンに設定され、仮想マシンマネージャ（図５の１．３．２００）に反映されたセキュリティ状態がセキュリティ侵害されていると設定されると、ブロック１．３．１２１２の移行処理ステップが実行され、それは、インスタンス持続時間タイマーが最近満了した仮想マシン上で中断されている、認可されたプロセスと認可されていないプロセスの両方のプロセス全てを、合成コンピューティング環境をライブ科学捜査モードで実行している、ブロック１．３．１２１１で作成された第３の仮想マシンに移行する。認可されたプロセスは、図１０に示すシームレスな認可されたハンドオフプロセスを用いて移行される。認可されていないプロセスは、プロセスコード、メモリ状態およびスタック状態の正確な状態マップを取得し、それを、ブロック１．３．１２１１で作成されたように、ライブ科学捜査モードである合成仮想マシンにコピーする、状態マッパーによって複製される。全てのプロセスが移行されると、プロセス中断が解除され、合成環境を実行している仮想マシンが、現在は生産環境の一部ではないプロセスの実行を、調査、分析および操作できる合成されたコンピューティング環境で継続する。
【００７０】
ブロック１．３．１２９８は、一時的移行プロセスを開始するためにインスタンス持続時間タイマーが満了した今は古い仮想マシンが、図７で定義されたプロセスに従って現在終了されている一時的移行プロセスの最後の処理ステップを示す。結果は、この一時的移行プロセスを通じてクリーンなインスタンスに移行された認証されたプロセスを実行するブロック１．３．１２０２で作成されたクリーンな仮想マシンであり、有効に生産処理に移行する。古い仮想マシンがセキュリティ侵害された場合、合成コンピューティング環境が基本仮想マシンイメージからインスタンス生成され、認可されていないプロセスを含めて、古い仮想マシンの処理状態に設定される。これは、認可されていないプロセスが、認可されていないプロセスまたは認可されていないプロセスのハンドラに検出されない方法で、実行を継続できるようにする。
【００７１】
図１２は、基本仮想マシンイメージアーカイブ（図５の１．３．４００）内に存在する移行元基本仮想マシンイメージによって取得されるように、仮想マシンマネージャ（図５の１．３．２００）によってインスタンス生成され、登録されている、仮想マシン（図５の１．３．１２００）のリフレッシュを制御する一時的スケジューラプロセスの流れ図である。図１２のブロック１．３．１０１は、図６に詳述するインスタンス生成ステップを示す。図１２のブロック１．３．１０２は、仮想マシンに対して一時的サイクルを開始する第１の時間に対するインスタンス寿命タイマーの設定を示すが、その仮想マシンは、現在、一時的スケジューラ（図５の１．３．１００）によって決定されるように頻繁なインスタンスリフレッシュを経験し、仮想マシンマネージャ（図５の１．３．２００）によって実行されるので、現在、一時的仮想マシンと呼ぶことができる。本発明の本実施形態においてインスタンス寿命タイマーの持続時間を設定するために使用された時間値は、インスタンス寿命タイマーの持続時間に対するランダムな間隔を計算するために、乱数または擬似乱数発生器を使用した。これは、より高いレベルのセキュリティを追加するために行われ、それは、リフレッシュが生じるのを判断するのをより困難にすることによりタイミング攻撃を防ぐために、リフレッシュ間隔をランダム化することを通じて獲得される。リフレッシュレートの限度を制御するために、最小および最大の期間値が、基礎となるコンピューティング装置またはネットワーク装置上に一時的コンピューティング環境が与えるシステム性能影響を制御するセキュリティ規則エンジン（図５の１．３．６００）内で設定される。
【００７２】
図１２のブロック１．３．１０３は、満了する所与の仮想マシンに対するインスタンス寿命タイマーを示す。満了すると、リフレッシュプロセスが一時的スケジューラ（図５の１．３．１００）によってトリガーされ、仮想マシンマネージャ（図５の１．３．２００）に、インスタンス寿命タイマーがちょうど満了した仮想マシン（図５の１．３．１２００）のリフレッシュを行うように通知する。図１２のブロック１．３．１０４は、このインスタンスのリフレッシュプロセスを示し、それは、図１１の流れ図に詳細に示すように、一時的移行プロセスを実行する。移行プロセスが完了すると、基本仮想オペレーティングシステムイメージに関連する登録済みプロセスを処理する、新しいか、またはリフレッシュされた仮想マシンが作動される。仮想マシンマネージャは、新しいインスタンスが動作可能であることを一時的スケジューラに通知する。図１２のブロック１．３．１０５は、新しくインスタンス生成された仮想マシンに対するタイマーを再設定する一時的スケジューラを示すが、その仮想マシンは現在動作可能であり、一時的状態リフレッシュプロセスを完了する。乱数がセキュリティ規則制限内で再度取得され、インスタンス寿命タイマーの持続時間がこの値に設定される。
【００７３】
図１３は、本発明のこの実施形態に対する隔離手順の流れ図を示す。隔離機能は、一時的システムにおける３つの主なセキュリティ目標：認可されていないプロセスを封じ込めること、認可されていないプロセスが一時的コンピューティングシステムに対して与えることができる損害を減らすこと、および検出され、隔離されている認可されていないプロセスまたはそのハンドラに警告しないような方法で、それを行うこと、を達成するように設計されている。
【００７４】
ブロック１．３．１１０１は、隔離プロセスにおける第１のステップであり、認可されていないプロセスを検出する。検出はさまざまな方法で生じ得るが、そのうちの２つは、図１１のブロック１．３．１２０５に示す一時的移行プロセスおよび図９のブロック１．３．３０４に示す整合性チェックプロセスなどにおけるように、他の定義領域で説明されている。
【００７５】
図１３のブロック１．３．１１０２は、仮想マシンマネージャにおける仮想マシン（図５の１．３．１２００）に対するセキュリティ状態を、インスタンスの整合性がセキュリティ侵害されていることを示す値に、まだそのように設定されていなければ、設定することを示す。インスタンスのセキュリティ整合性値がセキュリティ侵害されていると設定されていると、インスタンスは、ブロック１．３．１１０３に示すように隔離された仮想マシンとして実行し始め、そのインスタンスは、隔離モードでの実行と呼ぶことができる。セキュリティ規則エンジン（図５の１．３．６００）によって決定されているように、仮想マシンが隔離されていると、ブロック１．３．１１０４で示すように、隔離セキュリティプロセス規則が有効になる。これらの隔離セキュリティ規則は、図８に詳述し、図１３のブロック１．３．１１０５に示す、システム仕様偽装プロセスによって返される値を変更する。
【００７６】
この実施形態の例は、どのオペレーティングシステムバージョンを実行しているかを判断するために問合せが行われた場合に、今は隔離モードがアクティブなので、実際のバージョン数を返す代わりに、認可されていない権限昇格など、システムを悪用する認可されていないプロセスがより困難な時間をもつように、オペレーティングシステムの古いバージョンのＩＤを返すことであろう。隔離セキュリティ規則は、ブロック１．３．１１０６に示すように、システムのクリティカルな資源へのアクセスも制限する。この例は、隔離モードがオンでなく、全てのプロセスが共有されたネットワークファイルおよび印刷資源へのアクセスをもつ場合である。一旦隔離モードがオンになれば、隔離セキュリティ規則は、認可されていないプロセスを分離する効果を持つことができる、全ての共有ファイルおよび印刷資源へのアクセスを制限し、それは、例えば、共有された印刷資源をもはや悪用できないので、プリンタに感染するワームであり得る。加えて、隔離セキュリティ規則は、ブロック１．３．１１０７に示すように、システム設定に対する変更を防ぐ。この例は、全てのプロセスに対してＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムを実行している仮想マシンのシステムレジストリに対する書込み権限を、たとえプロセスがそれを行う権限を有していても、隔離セキュリティ規則によって指定されるように、制限することである。
【００７７】
ブロック１．３．１１０８は、隔離モードで動作している仮想マシン上の認可されていないプロセスを含むプロセスを示し、それは、全てのプロセスの実行を隔離セキュリティ規則によって設定される許容範囲内で継続する。これは同様に、システム処理の影響を軽減するため、また、検出され、現在は封じ込められている認可されていないプロセスの認識を高めないために行われる。図１１に詳述した一時的移行プロセス中に一時的スケジューラ（図５の１．３．１００）によって制御されているように、次の一時的リフレッシュ中に、整合性チェックが、図１３のブロック１．３．１１１０で強調されたように実行される。図１１では、ブロック１．３．１２０９は、移行されている仮想マシンのセキュリティ整合性状態であり、仮想マシンが隔離モードで動作していることを示し（図１３のブロック１．３．１１１１に示す）、例えば、ライブ科学捜査モードがオンであるか否を判断するためにチェックが行われていることを示す（ブロック１．３．１１１２で示す）。ライブ科学捜査モードがオンであれば、ブロック１．３．１１１３が起動され、その操作が図１１のブロック１．３．１２１０に詳述されている。同様に図１１のブロック１．３．１２１１に詳述されるように、新しい仮想マシンが作成され、それは、図１３のブロック１．３．１１１４に示す合成モードに置かれる。このモードは、合成環境シミュレータ（図５の１１．３．７００）によって制御され得る。この新しい合成仮想マシンが、移行中のセキュリティ侵害された仮想マシンの非生産のライブ科学捜査インスタンスになる。
【００７８】
図１３では、ブロック１．３．１１１５は、図１０で詳細したシームレスな認可されたハンドオフプロセスを利用して、セキュリティ侵害されたインスタンスからライブ科学捜査の合成環境インスタンスへの認可されたプロセスの移行を強調する。ブロック１．３．１１１６は、感染したインスタンスから、セキュリティ侵害されたシステムからコピーされ、認可されていない状態のスナップショットを通じて複製された、ライブ科学捜査の合成環境インスタンスへ、ハンドオフされている認可されていないプロセスを強調するが、その複製には、認可されていないプロセスの実行命令（ネイティブコード、マネージコードまたはスクリプトコード）、使用されているメモリおよび実行スタックのライブ科学捜査の合成環境インスタンスへの複製を含む。ライブ科学捜査の合成環境インスタンスが全てのプロセスをそれに移行させると、ライブ科学捜査の合成環境インスタンスのセキュリティ状態が、ブロック１．３．１１１７に示されているようにクリーンな値に設定される。ブロック１．３．１１１８は、ライブ科学捜査の合成環境インスタンス上の新たに移行されたプロセスに対するプロセス中断の解除を示し、また、認可されたプロセスと認可されていないプロセスの両方の実行が復元される。ブロック１．３．１１９は、現在はライブ科学捜査仮想マシン内にある認可されていないプロセスに対して行うことができる調査および分析および実験を示す。同様に、これは、実行を最初は隔離し、次いで制御された合成環境に置くために、認可されていないプロセスまたはその管理者が１つのインスタンスから別のインスタンスへ移行されているという事実をそれに警告することなく実行される。ブロック１．３．１１２１は、ブロック１．３．１２０２を含め、図１１で詳述された、一時的リフレッシュ移行プロセスの一部として作成された新しい移行先仮想マシンを示す。
【００７９】
図１３のブロック１．３．１１２３は、仮想マシンマネージャ（図５の１．３．２００）によって追跡されたそのセキュリティ整合性値を、図１３のブロック１．３．１１２２で示すクリーンに設定することにより、新しく作成された移行先仮想マシン上で解除されている隔離を示す。
【００８０】
ブロック１．３．１１２４は、図７の流れ図で詳述するように、隔離された仮想マシンが終了される直前に、状態マッパー（図５の１．３．９００）によって取得されている、その仮想マシンの状態スナップショットを示す。隔離プロセスの最終ステップは、図１３のブロック１．３．１１２５で示すように、隔離されたインスタンスのスナップショットのコピーを科学捜査的分析のために格納することである。
【００８１】
図１４は、本発明の実施形態に従って利用された合成生産システムを示す。ライブ科学捜査モードを実行する仮想マシンは、ネスト化仮想化オペレーティングシステム１．３．７０１をもつ仮想マシンを含み得る。これは、隔離されていない感染した仮想マシン１．３．７０２、ネットワーク装置のための合成仮想マシン１．３．７０３およびパーソナルコンピュータ用の合成仮想マシン１．３．７０４を備えた合成生産環境を含み得る。インスタンスは、インターネット１．３．７０５上の資源を使用することによって交換され得る。
【００８２】
図１５は、認可されていないプロセスとして実行するエージェントコードでハッキングまたは感染されている現実の世界のシステム例を使用して、リアルタイムの防護対策を進める。この例では、本発明で詳述するように、一時的環境で実行する仮想マシンが、認可されたウェブブラウザアプリケーションを実行する。ウェブブラウザは、そのウェブブラウザが、ハッカーによってウェブサイト上に置かれた悪質なコードによって判断された、３２ビットのＷｉｎｄｏｗｓ（登録商標）環境で実行しているＩＥであることを判断するハッカーによって悪用される。認可されたウェブブラウザアプリケーションを実行する仮想マシンがＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムの３２ビットバージョンを実行している。悪用に対する脆弱性は、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムの３２ビットバージョン上で実行中に、ＩＥウェブブラウザに影響を及ぼすメモリオーバーフローベクトルであった。これは、コンピュータシステムへの認可されていないアクセスを取得するために頻繁に使用される、極めて典型的なブラウザクラッシャー（ｂｒｏｗｓｅｒ  ｅｘｐｌｏｉｔ）である。メモリオーバーフローが悪用されると、閲覧されていたウェブサイト上に置かれた悪質なコードによって再度実行のために、シェルコードがロードされた。シェルコードは、ハッカーがマシンに対して認可されていないリモートアクセスをできるようにするウイルスまたはエージェントコードである。一時的移行プロセス中、図１５のブロック１．３．６０１に示すように、仮想マシンが認可されていないプロセス、この場合エージェントコードを経験することが検出された。セキュリティ規則は、最近の成功した攻撃に対してアクティブな防護対策を適用するために、認可されていないプロセスが判断され、また、感染した仮想マシンのスナップショットが、感染が何であったかを判断し、それをセキュリティ規則エンジン（図５の１．３．６００）に報告するオートプシーを経験するようなものである。ブロック１．３．６０２は、感染した仮想イメージスナップショット上で実施されている科学捜査的分析を示す。ブロック１．３．６０３は、認可されていないアクセスエージェントがシステム上に置かれていて、たぶん、これがブラウザを介して行われたと結論を下す分析を示す。ブロック１．３．６０４は、セキュリティ規則エンジンに発見を通知する科学捜査アプリケーションを示す。ブロック１．３．６０５で適用されたアクティブな防護対策に基づき、クラッシャーが最近仮想マシン上で成功している場合、経路１．３．６０６に示すように、ＩＥブラウザアプリケーションを含む認可されたアプリケーションに対して、オペレーティングシステムのバージョンがその本当の値の３２ビットから６４ビットに変更されるように、システム仕様ハンドラの偽装特徴が変更される。ブラウザアプリケーションがオペレーティングシステムの仕様に関して次にシステム問合せを行う時、返される結果は、ブロック１．３．６０７に示すように、６４ビットのＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムである。ハッカーが悪質なコードを置いたサイトをブラウザが次に訪問する時、システムを感染させ���ために最後に使用されたクラッシャーは、その悪質なコードは３２ビットのＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムに対してのみ有効であるので、機能しないであろう。ブラウザは、ブロック１．３．６０８に示すように、情報文字列が変更されたことを報告する。従って、クラッシャーはもはや機能せず（１．３．６０９）、６４ビットＯＳがスキップされる（１．３．６１０）。その結果として、クラッシャーは、偽装防護対策１．３．６１１のために動作しない。この例は、セキュリティを高めるためにリアルタイムの防護対策を用いる、現実の世界の一時的システム例を示し、最近検出された攻撃に対してシステムを強くする。
【００８３】
図１６は、本発明の実施形態に従って収集され得る例示的なデータを示す。具体的には、図は、アーカイブ内に記録される基本仮想マシンイメージを示し、それは、仮想マシン基本イメージ識別、ハードウェア識別、仮想マシンデジタル識別および仮想マシン基本イメージオブジェクトのための列を含む。
【００８４】
図１７は、本発明の実施形態に従って収集され得る例示的なデータを示す。具体的には、図は、レジストリ内の認可されたプロセス情報を示し、それは、認可されたプロセス識別、仮想マシン基本イメージ識別、プロセスファイル名、認可されたハッシュおよびプロセス実行可能オブジェクトのための列を含む。
【００８５】
当業者であれば、開示した技術に関連する多くの利点を認識するであろう。その最も基本的な形において、本技術は、認可されていないコンピュータアクセスおよび使用を削減する。本技術は、コンピュータ装置またはネットワークを理解および制御するために必要なスキルレベルを向上させることにより、潜在的なハッカーの数を削減する。本技術は、コンピュータ装置またはネットワークが何であるかに関して、アタッカーを当惑および混乱させる。従って、コンピュータ装置およびネットワークの認可されていないアクセスおよび使用を得るための費用が増加する。
【００８６】
本技術は、サイバー攻撃の現在の非対称性を減らす。本技術は、また、ネットワーク上のコンピューティング装置が感染した場合に、ウイルスの拡がりを遅くする。本技術は、ウイルスまたは認可されていないエージェントコードまたは認可されていないコンピューティングセッションが感染したコンピューティング装置上に存在する期間を短縮する。
【００８７】
本技術は、ウイルスまたは認可されていないエージェントコードまたは認可されていないコンピューティングセッションが悪質なコマンドを実行する必要のある時間窓を短縮する。本技術は、攻撃に対する防護対策も提供する。従って、本技術は、ランダムもしくは偶然のリフレッシュサイクル（インスタンス化、再インスタンス化および非インスタンス化）またはコンピュータ装置、ネットワークおよびシステムのサイクルを通して、安定した標準的なコンピューティング環境を容易にする。
【００８８】
本技術は、ミッションクリティカルなプロセスのコンピューティング装置およびネットワーク間のシームレスな移行を容易にして、サービスの中断またはコマンドのリプレイを回避する。本技術はまた、システム交換に代わるものとして、レガシーシステムの新しいセキュリティ方法への移行パスを可能にする。本技術は、サービス妨害（Ｄｅｎｉａｌ  Ｏｆ  Ｓｅｒｖｉｃｅ）攻撃を回避する。本技術は、認可されていない使用セッションに加え、ウイルスおよびエージェント感染システムの将来の科学捜査的再構築および生きている見本の分析が可能になる方法で、システム状態を格納する。
【００８９】
本技術は、封じ込めた感染したコンピューティング装置およびネットワークを、ウイルス、認可されていないエージェントコードまたは認可されていないコンピュータセッションユーザーまたはそれらを遠隔制御している関係者によって気づかれることなく、生産コンピューティング環境から非生産コンピューティング環境に移行できるようにする。本技術は、感染したコンピューティング装置およびネットワークがその中で動作できる合成または疑似生産環境も提供するが、ウイルス、認可されていないエージェントコードまたは認可されていないコンピュータセッションユーザーまたはそれらそれぞれの管理者は、そのコンピューティング環境が生産環境でないことを判断できない。感染したコンピューティング装置およびネットワークがその中で動作でき、拡がることができる合成または疑似生産環境は、ウイルスまたは認可されていないエージェントコードの脅威レベル、伝搬速度および多形属性を判断するために安全に評価できる。
【００９０】
本発明の実施形態は、様々なコンピュータ実装された動作を実行するためのコンピュータコードをその上に有するコンピュータ可読記憶媒体を備えたコンピュータストレージ製品に関する。媒体およびコンピュータコードは、本発明のために特別に設計されたか、もしくは構築されたものであり得るか、またはコンピュータソフトウェア業者に周知かつ利用可能な種類である得る。コンピュータ可読媒体には、ハードディスク、フロッピィディスク、および磁気テープなどの磁気媒体；ＣＤ−ＲＯＭ、ＤＶＤ、およびホログラフィック装置などの光媒体；光磁気媒体；ならびに特定用途向け集積回路（ＡＳＩＣ）、プログラム可能論理回路（ＰＬＤ）およびＲＯＭおよびＲＡＭ装置など、プログラムコードを格納および実行するように特別に構成されているハードウェア装置を含むが、それらに限定されない。コンピュータコードの例には、コンパイラによって生成されたような機械コード、インタープリタを用いてコンピュータによって実行される高水準コードを含むファイルを含む。例えば、本発明の実施形態は、ＪＡＶＡ（登録商標）、Ｃ＋＋、またはオブジェクト指向プログラミング言語および開発ツールを用いて実装され得る。本発明の他の実施形態は、機械実行可能なソフトウェア命令の代わりに、またはそれと組み合わせてハードワイヤード回路内で実装され得る。
【００９１】
説明のため、上の記述では、本発明の完全な理解を提供するために、特別な用語体系を使用した。しかし、本発明を実施するために具体的詳細は必要ないことが当業者には明らかであろう。従って、本発明の特定の実施形態の上の記述は、例証および説明のために提示されている。それらは、包括的であるか、または本発明を開示した正確な形状に制限することを意図しておらず；前述の教示を考慮して、明らかに、多くの修正および変形が可能である。実施形態は、本発明の本質およびその実際の適用を最も良く説明するために、選択および記述され、それにより、それらは、当業者が本発明および様々な実施形態を、検討された特定の使用に適するように様々な修正を行って、最も良く利用できるようにする。以下の特許請求の範囲およびそれらの同等物が本発明の範囲を定義することが意図される。
【図１】
0005853327.tif 000002
【図２】
0005853327.tif 000003
【図３】
0005853327.tif 000004
【図４】
0005853327.tif 000005
【図５】
0005853327.tif 000006
【図６】
0005853327.tif 000007
【図７】
0005853327.tif 000008
【図８】
0005853327.tif 000009
【図９】
0005853327.tif 000010
【図１０】
0005853327.tif 000011
【図１１】
0005853327.tif 000012
【図１２】
0005853327.tif 000013
【図１３−１】
0005853327.tif 000014
【図１３−２】
0005853327.tif 000015
【図１４】
0005853327.tif 000016
【図１５】
0005853327.tif 000017
【図１６】
0005853327.tif 000018
【図１７】
0005853327.tif 000019
【図１８】
0005853327.tif 000020
【図１９】
0005853327.tif 000021