(57)【特許請求の範囲】
【請求項１】
ハイパーバイザと、ライブイントロスペクションエンジンと、オンデマンドイントロスペクションエンジンとを実行するように構成されたハードウェアプロセッサを含むクライアントコンピュータシステムであって、
前記ハイパーバイザは、ゲスト仮想マシン（ＶＭ）と、前記ゲストＶＭとは別個のセキュリティＶＭとを公開するように構成され、前記オンデマンドイントロスペクションエンジンは前記セキュリティＶＭ内で実行され、前記ライブイントロスペクションエンジンは前記ゲストＶＭと前記セキュリティＶＭとの外部で実行され、
前記ライブイントロスペクションエンジンは、前記ゲストＶＭ内でのイベントの発生を検出するのに応答して、前記イベントのインジケータをリモートサーバコンピュータシステムに通信ネットワークを介して送信するように構成され、
前記オンデマンドイントロスペクションエンジンは、
前記ライブイントロスペクションエンジンが前記イベントの前記インジケータを前記リモートサーバコンピュータシステムに送信するのに応答して、分析要求を前記リモートサーバコンピュータシステムから受信することであって、前記分析要求は、前記クライアントコンピュータシステムを含む複数のクライアントにセキュリティツールを配信するように構成されたリモートツールリポジトリにあるセキュリティツールを示し、前記セキュリティツールは、前記イベントの前記発生を分析するように構成されたソフトウェアを含み、前記セキュリティツールは、前記リモートサーバコンピュータシステムによって前記イベントのイベントタイプに従って選択される、受信することと、
前記分析要求を受信するのに応答して、前記セキュリティツールを前記分析要求に従って識別することと、
前記セキュリティツールを識別するのに応答して、前記セキュリティツールを前記リモートツールリポジトリから選択的に取り出すことであって、前記セキュリティツールを取り出すことは、前記リモートツールリポジトリに前記通信ネットワークを介して接続することを含む、取り出すことと、
前記セキュリティツールを選択的に取り出すのに応答して、前記セキュリティツールを実行することと、
前記セキュリティツールを実行するのに応答して、前記セキュリティツールの実行の結果を前記リモートサーバコンピュータシステムに送信することと
を行うように構成された、
クライアントコンピュータシステム。
【請求項２】
請求項１に記載のクライアントコンピュータシステムであって、前記リモートサーバコンピュータシステムは、前記クライアントコンピュータシステムが悪意のあるソフトウェアを含むかどうかを前記結果に従って判断するようにさらに構成された、クライアントコンピュータシステム。
【請求項３】
請求項１に記載のクライアントコンピュータシステムであって、前記リモートサーバコンピュータシステムは、前記クライアントコンピュータシステムの悪意のある侵入を前記結果に従って検出するようにさらに構成された、クライアントコンピュータシステム。
【請求項４】
請求項１に記載のクライアントコンピュータシステムであって、前記オンデマンドイントロスペクションエンジンは、
前記結果を前記リモートサーバコンピュータシステムに送信するのに応答して、前記リモートサーバコンピュータシステムから前記リモートツールリポジトリにある緩和ツールのインジケータを受信することであって、前記緩和ツールは、前記クライアントコンピュータシステム上で実行される悪意のあるソフトウェアを無能力化するように構成されたソフトウェア含む、受信することと、
前記緩和ツールの前記インジケータを受信するのに応答して、前記緩和ツールを取り出し、実行することと
を行うようにさらに構成された、クライアントコンピュータシステム。
【請求項５】
請求項１に記載のクライアントコンピュータシステムであって、前記ライブイントロスペクションエンジンは、
前記イベントの前記発生を検出するのに応答して、前記イベントのイベントタイプに従って、イベント適格性条件が満たされるかどうかを判断することと、
前記イベントの前記インジケータを前記リモートサーバコンピュータシステムに、前記イベント適格性条件が満たされたときのみ送信することと
を行うようにさらに構成された、クライアントコンピュータシステム。
【請求項６】
請求項１に記載のクライアントコンピュータシステムであって、前記セキュリティツールを前記リモートツールリポジトリから取り出すことは、前記リモートツールリポジトリを前記セキュリティＶＭのファイルシステムにマウントすることを含む、クライアントコンピュータシステム。
【請求項７】
請求項１に記載のクライアントコンピュータシステムであって、前記セキュリティＶＭはネットワークフィルタをさらに含み、前記ハイパーバイザは、前記ゲストＶＭとリモートパーティとの間のネットワークトラフィックを、前記ネットワークフィルタを介してルーティングするようにさらに構成された、クライアントコンピュータシステム。
【請求項８】
請求項７に記載のクライアントコンピュータシステムであって、
前記リモートサーバコンピュータシステムは、前記クライアントコンピュータシステムが悪意のあるソフトウェアを含むかどうかを判断するのに応答して、前記クライアントコンピュータシステムが悪意のあるソフトウェアを含むときに、セキュリティアラートを前記クライアントコンピュータシステムに送るようにさらに構成され、
前記ネットワークフィルタは、前記クライアントコンピュータシステムが前記セキュリティアラートを受信するのに応答して、前記ゲストＶＭと前記リモートパーティとの間のネットワークトラフィックを制限するように構成された、
クライアントコンピュータシステム。
【請求項９】
請求項１に記載のクライアントコンピュータシステムであって、前記セキュリティツールの実行の前記結果は、前記ゲストＶＭによって使用されたメモリのセクションのコンテンツのコピーを含む、クライアントコンピュータシステム。
【請求項１０】
請求項１に記載のクライアントコンピュータシステムであって、前記セキュリティツールの実行の前記結果は、前記ゲストＶＭ内で実行されるソフトウェアエンティティのリストを含む、クライアントコンピュータシステム。
【請求項１１】
請求項１に記載のクライアントコンピュータシステムであって、前記セキュリティツールの実行の前記結果は、前記クライアントコンピュータシステムのハードウェア構成のインジケータを含む、クライアントコンピュータシステム。
【請求項１２】
請求項１に記載のクライアントコンピュータシステムであって、
前記ハイパーバイザは、前記リモートサーバコンピュータシステムと前記セキュリティＶＭとの間にセキュアなポイントツーポイント通信チャネルを確立するように構成され、
前記オンデマンドイントロスペクションエンジンは、前記セキュアなポイントツーポイント通信チャネルを介して、前記分析要求を受信し、前記結果を送信するように構成された、
クライアントコンピュータシステム。
【請求項１３】
複数のクライアントシステムとのコンピュータセキュリティトランザクションを実施するように構成されたサーバコンピュータシステムであって、前記サーバコンピュータシステムは、ハードウェアプロセッサを含み、該ハードウェアプロセッサは、
前記複数のクライアントシステムのうちの１つのクライアントシステムから、前記１つのクライアントシステム上で実行されるゲスト仮想マシン（ＶＭ）内でのイベントの発生を示すイベントインジケータを受信するのに応答して、前記複数のクライアントシステムにセキュリティツールを配信するように構成されたリモートツールリポジトリにあるセキュリティツールを選択することであって、前記セキュリティツールは、前記イベントの前記発生を分析するように構成されたソフトウェアを含み、前記セキュリティツールを選択することは、前記イベントのイベントタイプに従って実施される、選択することと、
前記セキュリティツールを選択するのに応答して、分析要求を前記１つのクライアントシステムに通信ネットワークを介して送信することであって、前記分析要求は前記セキュリティツールの識別子を含む、送信することと、
前記セキュリティツールの前記識別子を含む前記分析要求を送信するのに応答して、前記１つのクライアントシステムから、前記セキュリティツールを前記１つのクライアントシステム上で実行した結果を受信することと
を行うように構成され、
前記１つのクライアントシステムは、ハイパーバイザと、ライブイントロスペクションエンジンと、オンデマンドイントロスペクションエンジンとを実行するように構成され、
前記ハイパーバイザは、前記ゲストＶＭと、前記ゲストＶＭとは別個のセキュリティＶＭとを公開するように構成され、前記オンデマンドイントロスペクションエンジンは前記セキュリティＶＭ内で実行され、前記ライブイントロスペクションエンジンは前記ゲストＶＭと前記セキュリティＶＭとの外部で実行され、
前記ライブイントロスペクションエンジンは、前記イベントの前記発生を検出するのに応答して、前記イベントインジケータを前記サーバコンピュータシステムに送信するように構成され、
前記オンデマンドイントロスペクションエンジンは、
前記分析要求を受信するのに応答して、前記セキュリティツールを前記分析要求に従って識別することと、
前記セキュリティツールを識別するのに応答して、前記セキュリティツールを前記リモートツールリポジトリから選択的に取り出すことであって、前記セキュリティツールを取り出すことは、前記１つのクライアントシステムが前記リモートツールリポジトリに前記通信ネットワークを介して接続することを含む、取り出すことと、
前記セキュリティツールを取り出すのに応答して、前記結果を生成するために前記セキュリティツールを実行することと
を行うように構成された、
サーバコンピュータシステム。
【請求項１４】
請求項１３に記載のサーバコンピュータシステムであって、前記ハードウェアプロセッサは、前記１つのクライアントシステムが悪意のあるソフトウェアを含むかどうかを前記結果に従って判断するようにさらに構成された、サーバコンピュータシステム。
【請求項１５】
請求項１３に記載のサーバコンピュータシステムであって、前記ハードウェアプロセッサは、前記１つのクライアントシステムの悪意のある侵入を前記結果に従って検出するようにさらに構成された、サーバコンピュータシステム。
【請求項１６】
請求項１３に記載のサーバコンピュータシステムであって、前記ハードウェアプロセッサは、
前記１つのクライアントシステムが悪意のあるソフトウェアを含むかどうかを判断するのに応答して、前記１つのクライアントシステムが悪意のあるソフトウェアを含むときに、緩和ツールを前記リモートツールリポジトリから選択することであって、前記緩和ツールは、前記悪意のあるソフトウェアを無能力化するように構成されたソフトウェアを含む、選択することと、
前記緩和ツールを選択するのに応答して、前記緩和ツールのインジケータを前記１つのクライアントシステムに送信することと
を行うようにさらに構成された、サーバコンピュータシステム。
【請求項１７】
請求項１３に記載のサーバコンピュータシステムであって、前記ライブイントロスペクションエンジンは、
前記イベントの前記発生を検出するのに応答して、前記イベントのイベントタイプに従って、イベント適格性条件が満たされるかどうかを判断することと、
前記イベントインジケータを前記サーバコンピュータシステムに前記イベント適格性条件が満たされたときのみ送信することと
を行うようにさらに構成された、サーバコンピュータシステム。
【請求項１８】
請求項１３に記載のサーバコンピュータシステムであって、前記セキュリティツールを前記リモートツールリポジトリから取り出すことは、前記リモートツールリポジトリを前記セキュリティＶＭのファイルシステムにマウントすることを含む、サーバコンピュータシステム。
【請求項１９】
請求項１３に記載のサーバコンピュータシステムであって、前記セキュリティＶＭはネットワークフィルタをさらに含み、前記ハイパーバイザは、前記ゲストＶＭとリモートパーティとの間のネットワークトラフィックを、前記ネットワークフィルタを介してルーティングするようにさらに構成された、サーバコンピュータシステム。
【請求項２０】
請求項１９に記載のサーバコンピュータシステムであって、前記ハードウェアプロセッサは、前記１つのクライアントシステムが悪意のあるソフトウェアを含むかどうかを判断するのに応答して、前記１つのクライアントシステムが悪意のあるソフトウェアを含むときに、セキュリティアラートを前記１つのクライアントシステムに送るようにさらに構成され、前記１つのクライアントシステムによる前記セキュリティアラートの受信が、前記ネットワークフィルタに前記ゲストＶＭと前記リモートパーティとの間のネットワークトラフィックを制限させる、サーバコンピュータシステム。
【請求項２１】
請求項１３に記載のサーバコンピュータシステムであって、前記セキュリティツールの実行の前記結果は、前記ゲストＶＭによって使用されたメモリのセクションのコンテンツのコピーを含む、サーバコンピュータシステム。
【請求項２２】
請求項１３に記載のサーバコンピュータシステムであって、前記セキュリティツールの実行の前記結果は、前記ゲストＶＭ内で実行されるソフトウェアエンティティのリストを含む、サーバコンピュータシステム。
【請求項２３】
請求項１３に記載のサーバコンピュータシステムであって、前記セキュリティツールの実行の前記結果は、前記クライアントシステムのハードウェア構成のインジケータを含む、サーバコンピュータシステム。
【請求項２４】
請求項１３に記載のサーバコンピュータシステムであって、
前記ハイパーバイザは、前記サーバコンピュータシステムと前記セキュリティＶＭとの間にセキュアなポイントツーポイント通信チャネルを確立するように構成され、
前記ハードウェアプロセッサは、前記セキュアなポイントツーポイント通信チャネルを介して、前記セキュリティツールの前記識別子を含む前記分析要求を送り、前記セキュリティツールの実行の前記結果を受信するようにさらに構成された、
サーバコンピュータシステム。
【請求項２５】
命令のセットを記憶した非一時的コンピュータ可読媒体であって、命令の前記セットは、クライアントコンピュータシステムのハードウェアプロセッサ上で実行されたときに、前記クライアントコンピュータシステムに、ハイパーバイザと、ライブイントロスペクションエンジンと、オンデマンドイントロスペクションエンジンとを形成させ、
前記ハイパーバイザは、ゲスト仮想マシン（ＶＭ）と、前記ゲストＶＭとは別個のセキュリティＶＭとを公開するように構成され、前記オンデマンドイントロスペクションエンジンは前記セキュリティＶＭ内で実行され、前記ライブイントロスペクションエンジンは前記ゲストＶＭと前記セキュリティＶＭとの外部で実行され、
前記ライブイントロスペクションエンジンは、前記ゲストＶＭ内でのイベントの発生を検出するのに応答して、前記イベントのインジケータをリモートサーバコンピュータシステムに通信ネットワークを介して送信するように構成され、
前記オンデマンドイントロスペクションエンジンは、
前記ライブイントロスペクションエンジンが前記イベントの前記インジケータを前記リモートサーバコンピュータシステムに送信するのに応答して、分析要求を前記リモートサーバコンピュータシステムから受信することであって、前記分析要求は、前記クライアントコンピュータシステムを含む複数のクライアントにセキュリティツールを配信するように構成されたリモートツールリポジトリにあるセキュリティツールを示し、前記セキュリティツールは、前記イベントの前記発生を分析するように構成されたソフトウェアを含み、前記セキュリティツールは、前記リモートサーバコンピュータシステムによって前記イベントのイベントタイプに従って選択される、受信することと、
前記分析要求を受信するのに応答して、前記セキュリティツールを前記分析要求に従って識別することと、
前記セキュリティツールを識別するのに応答して、前記セキュリティツールを前記リモートツールリポジトリから選択的に取り出すことであって、前記セキュリティツールを取り出すことは、前記リモートツールリポジトリに前記通信ネットワークを介して接続することを含む、取り出すことと、
前記セキュリティツールを選択的に取り出すのに応答して、前記セキュリティツールを実行することと、
前記セキュリティツールを実行するのに応答して、前記セキュリティツールの実行の結果を前記リモートサーバコンピュータシステムに送信することと
を行うように構成された、
非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
[0001]本出願は、その内容全体が参照により本明細書に組み込まれる、２０１５年１２月１９日に出願された「Ｄｕａｌ  Ｍｅｍｏｒｙ  Ｉｎｔｒｏｓｐｅｃｔｉｏｎ  ｆｏｒ  Ｓｅｃｕｒｉｎｇ  Ｍｕｌｔｉｐｌｅ  Ｎｅｔｗｏｒｋ  Ｅｎｄｐｏｉｎｔｓ（複数のネットワークエンドポイントをセキュアにするためのデュアルメモリイントロスペクション）」という名称の米国仮特許出願第６２／２６９，９５２号の出願日の利益を主張する。
【０００２】
[0002]本発明は、コンピュータセキュリティシステムおよび方法に関し、詳細には、コンピュータセキュリティ脅威からハードウェア仮想化環境を保護するためのシステムおよび方法に関する。
【背景技術】
【０００３】
[0003]マルウェアとしても知られる、悪意のあるソフトウェアは、世界中の多くのコンピュータシステムに影響を及ぼす。コンピュータウイルス、ワーム、ルートキット、およびスパイウェアなど、それの多くの形式で、マルウェアは、何百万人ものコンピュータユーザに深刻なリスクをもたらし、特に、データおよび機密情報の損失、個人情報の盗難、生産性の損失の影響を受けやすくしている。
【０００４】
[0004]悪意のあるソフトウェアからコンピュータシステムを保護するためにコンピュータセキュリティソフトウェアが使用されることがある。しかしながら、企業ネットワークおよびクラウドコンピューティングシステムなど、分散コンピューティングシステムでは、従来のセキュリティソフトウェアは、一般に、攻撃に対して良好に応答しない。セキュリティソフトウェアが攻撃を検出することが可能であるときでも、分析および修正は、依然として、たとえば、パッチを適用する、紛失データを復元するなどのために、人間のオペレータが、影響を受けるクライアントシステムに派遣されることを必要とし得る。さらに、新しい脅威が検出され、分析されると、セキュリティソフトウェアの更新バージョンが、すべての保護されたコンピュータシステムに即座に配信されなければならない。
【０００５】
[0005]代替コンピュータセキュリティシステムが、中央サーバコンピュータ上で実行し、通信ネットワークを介してセキュリティクライアントから、関連するデータを受信し得る。サーバは、受信されたデータに従って、それぞれのクライアントがマルウェアに感染しているかどうかを判断し得、それぞれのクライアントに判定を通信し得る。そのような構成は、新生の脅威に対処する態勢が十分に整っているが、そのような構成は、かなりのサーバ側計算能力を必要とする。
【０００６】
[0006]コンピュータセキュリティ動作は、ハードウェア仮想化の到来によってさらに複雑になった。ますます多くの商品およびサービスがオンラインで取引されるにつれて、ならびに仕事が漸進的に非局在化されるにつれて、サービスとしてのインフラストラクチャ（ＩＡＡＳ：ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅ）が、コンピュータハードウェアを所有することの実行可能な代替形態になった。計算アクティビティのかなりの部分が、現在、仮想マシンを使用して行われる。サーバファームおよびクラウドコンピューティングなど、一般的な適用例では、数百個の仮想マシンが、単一のハードウェアプラットフォーム上で同時に実行し得る。すべてのそのような仮想マシンが、マルウェア保護を必要とし得る。
【０００７】
[0007]悪意のあるソフトウェアの絶え間なく変化する性質、およびモバイル労働力の課題に適応することは、革新的コンピュータセキュリティシステムおよびプロトコルの開発、ならびに、特に、複数の分散クライアントにわたるコンピュータセキュリティ動作の効率的な管理を可能にするシステムおよび方法の開発を必要とする。
【発明の概要】
【０００８】
[0008]一態様によれば、クライアントコンピュータシステムが、ハイパーバイザと、ライブイントロスペクションエンジン（ｌｉｖｅ  ｉｎｔｒｏｓｐｅｃｔｉｏｎ  ｅｎｇｉｎｅ）と、オンデマンドイントロスペクションエンジン（ｏｎ−ｄｅｍａｎｄ  ｉｎｔｒｏｓｐｅｃｔｉｏｎ  ｅｎｇｉｎｅ）とを実行するように構成されたハードウェアプロセッサを含む。ハイパーバイザは、ゲスト仮想マシン（ＶＭ：ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ）と、ゲストＶＭとは別個のセキュリティＶＭとを公開するように構成され、オンデマンドイントロスペクションエンジンはセキュリティＶＭ内で実行し、ライブイントロスペクションエンジンはゲストＶＭとセキュリティＶＭとの外部で実行する。ライブイントロスペクションエンジンは、ゲストＶＭ内でのイベントの発生を検出したことに応答して、通信ネットワークを介してイベントのインジケータをリモートサーバコンピュータシステムに送信するように構成される。オンデマンドイントロスペクションエンジンは、ライブイントロスペクションエンジンがイベントのインジケータをリモートサーバコンピュータシステムに送信したことに応答して、リモートサーバコンピュータシステムから分析要求を受信することであって、分析要求は、クライアントコンピュータシステムを含む複数のクライアントにセキュリティツールを配信するように構成されたリモートツールリポジトリ中に常駐するセキュリティツールを示し、セキュリティツールは、イベントの発生を分析するように構成されたソフトウェアを含み、セキュリティツールは、イベントのイベントタイプに従ってリモートサーバコンピュータシステムによって選択される、受信することを行うように構成される。オンデマンドイントロスペクションエンジンは、分析要求を受信したことに応答して、分析要求に従ってセキュリティツールを識別することと、応答して、ツールリポジトリからセキュリティツールを選択的に取り出すことであって、セキュリティツールを取り出すことは、通信ネットワークを介して中央ツールリポジトリに接続することを含む、取り出すこととを行うようにさらに構成される。オンデマンドイントロスペクションエンジンは、セキュリティツールを選択的に取り出したことに応答して、セキュリティツールを実行し、セキュリティツールを実行した結果をリモートサーバコンピュータシステムに送信するようにさらに構成される。
【０００９】
[0009]別の態様によれば、サーバコンピュータが、複数のクライアントシステムとのコンピュータセキュリティトランザクションを実施するように構成される。サーバコンピュータシステムは、複数のクライアントシステムのうちのクライアントシステムから、クライアントシステム上で実行するゲストＶＭ内でのイベントの発生を示すイベントインジケータを受信したことに応答して、複数のクライアントシステムにセキュリティツールを配信するように構成されたリモートツールリポジトリ中に常駐するセキュリティツールを選択するように構成されたハードウェアプロセッサであって、セキュリティツールは、イベントの発生を分析するように構成されたソフトウェアを含み、セキュリティツールを選択することは、イベントのイベントタイプに従って実施される、ハードウェアプロセッサを含む。ハードウェアプロセッサは、セキュリティツールを選択したことに応答して、通信ネットワークを介して分析要求をクライアントシステムに送信することであって、分析要求はセキュリティツールの識別子を含む、送信することと、応答して、セキュリティツールをクライアントシステム上で実行した結果をクライアントシステムから受信することとを行うようにさらに構成される。クライアントシステムは、ハイパーバイザと、ライブイントロスペクションエンジンと、オンデマンドイントロスペクションエンジンとを実行するように構成される。ハイパーバイザは、ゲストＶＭと、ゲストＶＭとは別個のセキュリティＶＭとを公開するように構成され、オンデマンドイントロスペクションエンジンはセキュリティＶＭ内で実行し、ライブイントロスペクションエンジンはゲストＶＭとセキュリティＶＭとの外部で実行する。ライブイントロスペクションエンジンは、イベントの発生を検出したことに応答して、イベントインジケータをサーバコンピュータシステムに送信するように構成される。オンデマンドイントロスペクションエンジンは、分析要求を受信したことに応答して、分析要求に従ってセキュリティツールを識別するように構成される。オンデマンドイントロスペクションエンジンは、セキュリティツールを識別したことに応答して、ツールリポジトリからセキュリティツールを選択的に取り出すことであって、セキュリティツールを取り出すことは、クライアントシステムが通信ネットワークを介してリモートツールリポジトリに接続することを含む、取り出すことを行うようにさらに構成される。オンデマンドイントロスペクションエンジンは、セキュリティツールを取り出したことに応答して、結果を生成するためにセキュリティツールを実行するようにさらに構成される。
【００１０】
[0010]別の態様によれば、非一時的コンピュータ可読媒体が命令のセットを含み、命令のセットは、クライアントコンピュータシステムのハードウェアプロセッサ上で実行されたとき、クライアントコンピュータシステムに、ハイパーバイザと、ライブイントロスペクションエンジンと、オンデマンドイントロスペクションエンジンとを形成させる。ハイパーバイザは、ゲスト仮想マシン（ＶＭ）と、ゲストＶＭとは別個のセキュリティＶＭとを公開するように構成され、オンデマンドイントロスペクションエンジンはセキュリティＶＭ内で実行し、ライブイントロスペクションエンジンはゲストＶＭとセキュリティＶＭとの外部で実行する。ライブイントロスペクションエンジンは、ゲストＶＭ内でのイベントの発生を検出したことに応答して、通信ネットワークを介してイベントのインジケータをリモートサーバコンピュータシステムに送信するように構成される。オンデマンドイントロスペクションエンジンは、ライブイントロスペクションエンジンがイベントのインジケータをリモートサーバコンピュータシステムに送信したことに応答して、リモートサーバコンピュータシステムから分析要求を受信することであって、分析要求は、クライアントコンピュータシステムを含む複数のクライアントにセキュリティツールを配信するように構成されたリモートツールリポジトリ中に常駐するセキュリティツールを示し、セキュリティツールは、イベントの発生を分析するように構成されたソフトウェアを含み、セキュリティツールは、イベントのイベントタイプに従ってリモートサーバコンピュータシステムによって選択される、受信することを行うように構成される。オンデマンドイントロスペクションエンジンは、分析要求を受信したことに応答して、分析要求に従ってセキュリティツールを識別することと、応答して、ツールリポジトリからセキュリティツールを選択的に取り出すことであって、セキュリティツールを取り出すことは、通信ネットワークを介して中央ツールリポジトリに接続することを含む、取り出すこととを行うようにさらに構成される。オンデマンドイントロスペクションエンジンは、セキュリティツールを選択的に取り出したことに応答して、セキュリティツールを実行し、セキュリティツールを実行した結果をリモートサーバコンピュータシステムに送信するようにさらに構成される。
【００１１】
[0011]本発明の前述の態様および利点は、以下の詳細な説明を読み、図面を参照すると、より良く理解されるようになるであろう。
【図面の簡単な説明】
【００１２】
【図１】[0012]本発明のいくつかの実施形態による、複数のクライアントシステムがコンピュータセキュリティ脅威から保護される例示的な構成を示す図である。
【図２−Ａ】[0013]本発明のいくつかの実施形態による、クライアントシステムの例示的なハードウェア構成を示す図である。
【図２−Ｂ】[0014]本発明のいくつかの実施形態による、セキュリティサーバコンピュータシステムの例示的なハードウェア構成を示す図である。
【図３−Ａ】[0015]本発明のいくつかの実施形態による、保護されたクライアントシステム上で実行するハイパーバイザによって公開される仮想マシンの例示的なセットと、イントロスペクションエンジンの例示的なペアとを示す図である。
【図３−Ｂ】[0016]本発明のいくつかの実施形態による、セキュリティ構成要素の代替構成を示す図である。
【図４】[0017]本発明のいくつかの実施形態による、クライアントシステム上にコンピュータセキュリティを設定するためにインストーラアプリケーションによって実行されるステップの例示的なシーケンスを示す図である。
【図５】[0018]本発明のいくつかの実施形態による、クライアントシステムとセキュリティサーバとの間に仮想プライベートネットワーク（ＶＰＮ：ｖｉｒｔｕａｌ  ｐｒｉｖａｔｅ  ｎｅｔｗｏｒｋ）セキュア接続を構成することを示す図である。
【図６】[0019]本発明のいくつかの実施形態による、マルウェア検出中に発生する、クライアントシステムとセキュリティサーバとの間の例示的なデータ交換を示す図である。
【図７】[0020]本発明のいくつかの実施形態による、ライブイントロスペクションエンジンによって実施されるステップの例示的なシーケンスを示す図である。
【図８】[0021]本発明のいくつかの実施形態による、オンデマンドイントロスペクションエンジンによって実施されるステップの例示的なシーケンスを示す図である。
【図９】[0022]本発明のいくつかの実施形態による、セキュリティサーバによって実施されるステップの例示的なシーケンスを示す図である。
【発明を実施するための形態】
【００１３】
[0023]以下の説明では、構造間のすべての列挙された接続が、直接の動作的な接続、または中間構造を通しての間接の動作的な接続であり得ることを理解されたい。要素のセットは、１つまたは複数の要素を含む。要素の任意の列挙は、少なくとも１つの要素を指すと理解される。複数の要素は、少なくとも２つの要素を含む。別段の必要がない限り、いかなる説明される方法ステップも、必ずしも特定の示される順序で実施されるとは限らない。第２の要素から導出された第１の要素（たとえばデータ）は、第２の要素に等しい第１の要素、ならびに第２の要素および随意に他のデータを処理することによって生成された第１の要素を包含する。パラメータに従って判断または決定を行うことは、パラメータに従っておよび随意に他のデータに従って、判断または決定を行うことを包含する。別段に規定されていない限り、何らかの量／データのインジケータは、量／データ自体であるか、または量／データ自体とは異なるインジケータであり得る。コンピュータセキュリティは、データおよび／またはハードウェアへの意図しないまたは無許可のアクセスと、データおよび／またはハードウェアの意図しないまたは無認可の変更と、データおよび／またはハードウェアの破壊とからユーザおよび機器を保護することを包含する。コンピュータプログラムは、タスクを実行するプロセッサ命令のシーケンスである。本発明のいくつかの実施形態で説明されるコンピュータプログラムは、他のコンピュータプログラムのスタンドアロンソフトウェアエンティティまたはサブエンティティ（たとえば、サブルーチン、ライブラリ）であり得る。別段に規定されていない限り、ゲストソフトウェアが仮想マシン内で実行する。プログラムは、プログラムがそれぞれの仮想マシンの仮想プロセッサ上で実行するとき、仮想マシン内で実行すると言われる。別段に規定されていない限り、ページは、ホストシステムの物理メモリに個々にマッピングされ得る仮想メモリの最小単位を表す。別段に規定されていない限り、クライアントシステムのスナップショットは、それぞれのクライアントシステムによって使用されるメモリのセクションのコンテンツのコピーを含む。コンピュータ可読媒体は、磁気、光、および半導体記憶媒体などの非一時的媒体（たとえばハードドライブ、光ディスク、フラッシュメモリ、ＤＲＡＭ）、ならびに導電性ケーブルおよび光ファイバーリンクなどの通信リンクを包含する。いくつかの実施形態によれば、本発明は、とりわけ、本明細書で説明される方法を実施するようにプログラムされたハードウェア（たとえば１つまたは複数のマイクロプロセッサ）を含むコンピュータシステム、ならびに本明細書で説明される方法を実施するための命令を符号化するコンピュータ可読媒体を提供する。
【００１４】
[0024]以下の説明は、本発明の実施形態を例として示し、必ずしも限定として示すとは限らない。
[0025]図１は、本発明のいくつかの実施形態による、コンピュータセキュリティ脅威から複数のクライアントシステム１２ａ〜ｄを保護するための例示的な構成を示す。例示的なクライアントシステム１２ａ〜ｄは、パーソナルコンピュータシステム、モバイルコンピューティングプラットフォーム（ラップトップコンピュータ、タブレット、携帯電話）、エンターテインメントデバイス（ＴＶ、ゲーム機）、ウェアラブルデバイス（スマートウォッチ、フィットネスバンド）、家庭用器具、ならびにプロセッサとメモリとを含み、ハードウェア仮想化プラットフォームを動作させることが可能な任意の他の電子デバイスを含む。クライアントシステムの別の例示的なカテゴリーは、ウェブサーバおよび／または仮想デスクトップインフラストラクチャなどのクラウドベースアプリケーションを実行する、データセンターサーバおよびハードウェア仮想化プラットフォームを含む。
【００１５】
[0026]クライアントシステム１２ａ〜ｄは、ホームネットワーク、企業ネットワーク、インターネットなど、通信ネットワーク１１を介して相互接続される。ネットワーク１１は、少なくとも１つのスイッチおよび／またはルータを含む。ネットワーク１１の部分は、ローカルエリアネットワーク（ＬＡＮ）および／または電気通信ネットワーク（たとえば、４Ｇモバイルテレフォニーネットワーク、ワイヤレスＬＡＮ）を含み得る。
【００１６】
[0027]いくつかの実施形態では、セキュリティサーバ１４が、ネットワーク１１を介してクライアントシステム１２ａ〜ｄに通信可能に結合され、以下で詳細に説明されるように、コンピュータセキュリティ脅威を防ぐためにクライアントシステム１２ａ〜ｄと協働する。サーバ１４は、互いに物理的に近接することもしないこともある、相互接続されたコンピューティングシステムのセットを総称的に記述する。いくつかの実施形態では、サーバ１４は、クライアントシステム１２ａ〜ｄからイベント通知を受信し、応答して、イベントのタイプに従って、それぞれのクライアントシステムによって使用されるべきフォレンジック分析（ｆｏｒｅｎｓｉｃ  ａｎａｌｙｓｉｓ）のタイプ、脅威緩和（ｔｈｒｅａｔ  ｍｉｔｉｇａｔｉｏｎ）プロトコル、および／またはクリーンアップツールを選択するように構成される。例示的なフォレンジック分析は、たとえば、それぞれのイベントの原因および／またはコンテキストに関する特定のデータを取得することを含む。脅威緩和プロトコルは、それぞれのイベントによって示される悪意のあるソフトウェアのタイプに従って選択され得、それぞれのクライアント上で特定のクリーンアップおよび／または損傷制御コードをダウンロードすることおよび／または実行することを含み得る。
【００１７】
[0028]いくつかの実施形態では、セキュリティサーバ１４は、クライアントデータベース１７とインターフェースするようにさらに構成される。例示的なクライアントデータベース１７では、各エントリは、保護されたクライアントシステム１２ａ〜ｄに、および／またはそれぞれの保護されたクライアントシステム上で実行する仮想マシンに関連し、それぞれのクライアントシステム／仮想マシンによって報告されたトリガイベントのログおよび／またはフォレンジック報告（下記参照）を含み得る。データベース１７の例示的なエントリは、それぞれのクライアントシステム／仮想マシンについての（たとえば、ＯＳバージョン、インストールされたアプリケーション、様々な設定、所有者、連絡先情報などを含む）システムプロファイルデータをさらに含み得る。クライアントデータベース１７の別の例示的なエントリは、それぞれのクライアントシステムに関連するクライアント固有のセキュリティポリシーを表すパラメータ値のセットを含み得る。そのような設定は、人間のオペレータによって規定され得るか、またはルールのセットに従って自動的に設定され得る。本発明のいくつかの実施形態では、クライアント固有のポリシーおよび／またはセキュリティ設定は、それぞれのクライアント上、または他の保護されたクライアント上で発生するイベントに応答して、動的に変動する。
【００１８】
[0029]いくつかの実施形態では、クライアントシステム１２ａ〜ｄは、ネットワーク１１を介して中央ツールリポジトリ１５にさらに接続される。ツールリポジトリ１５は、コード（コンピュータプログラム）および／またはデータの形態でセキュリティツールおよびリソースを格納するコンピュータ可読媒体または物理マシンを含み得る。クライアントシステム１２ａ〜ｄは、以下で詳細に示されるように、セキュリティサーバ１４から受信された命令に従ってツールおよびデータを選択的に取り出すためにリポジトリ１５に接続し得る。ツールリポジトリ１５は複数のクライアントにとって利用可能であり、したがって、本発明の好ましい実施態様では、リポジトリ１５は任意の特定のクライアントシステム上に存在しない。したがって、リポジトリ１５に接続することは、それぞれのクライアントシステムのネットワークアダプタを介して通信をリポジトリ１５に／から送信および／または受信することを含む。そのような通信は、途中でネットワークスイッチまたはルータを横断し得る。
【００１９】
[0030]リポジトリ１５に格納されたセキュリティツールは、フォレンジックツール、アンチマルウェアツール、および／または脅威緩和ツールを含み得る。リポジトリデータは、調査中のイベントのタイプに従って、またはローカルハードウェア／ソフトウェア構成に従って、それぞれのツールを構成または調整するためのパラメータ値をさらに含み得る。アンチマルウェアツールは、クライアントシステム１２ａ〜ｄ上で実行する悪意のあるソフトウェアの検出を可能にし、ヒューリスティックルールのセットの符号化および／またはマルウェア識別シグネチャのデータベースを含み得る。脅威緩和ツールは、クライアントシステム上で実行する悪意のあるソフトウェアエージェントを削除するかまたは場合によっては無能力にするようにプログラムされたクリーンアップツールを含み得る。他の例示的な脅威緩和ツールは、たとえば、感染したクライアントシステムがそれのネットワークアダプタを使用する様式を制御することによって、感染したクライアントシステムが悪意のあるソフトウェアを別のクライアントシステムに送信するのを妨げるようにプログラムされる。
【００２０】
[0031]フォレンジックツールは、クライアントシステム１２ａ〜ｄ上に発生するセキュリティ関連イベントの分析を可能にする。フォレンジックツールのいくつかの例は、クライアントシステムのメモリスナップショット、または、それぞれのクライアントシステム上で実行する仮想マシンのメモリスナップショットを取得するようにプログラムされた、スナップショット生成ツールを含む。スナップショットは、オペレーティングシステム（ＯＳ）に関連する、または、それぞれのクライアントシステム上で現在実行している別のアプリケーションに関連するメモリデータを含み得る。ＯＳカーネルのスナップショットは、特に、カーネルのコードおよびデータセクションのコピー、様々なインメモリカーネルドライバ（コードおよび／またはデータセクション）、インメモリカーネルスレッドおよびそれらの対応するスタック、ロードされたモジュールのリスト、プロセスのリストなどのＯＳのカーネルデータ構造を含み得る。アプリケーションの例示的なスナップショットは、アプリケーションのコードおよびデータセクションを含むアプリケーションのメモリイメージ、アプリケーションのスレッドによって使用されるインメモリスタック、それぞれのアプリケーションのヒープメモリページなどのコピーを含む。
【００２１】
[0032]いくつかの実施形態では、メモリスナップショットをとることは、それぞれのメモリセクションのコンテンツをコピーすることを可能にするために、ゲストＶＭ３２の実行を中断することを含む。代替実施形態は、スナップショットをとることなしに「ライブ」メモリフォレンジックスを実施する。そのような実施形態では、ハイパーバイザ３０は、ゲストＶＭ３２によって使用される物理的メモリページのセットを、セキュリティＶＭ３３によって使用される仮想メモリページにマッピングし得る。セキュリティＶＭ３３は、次いで、たとえば、特定のイベントに応答して、ゲストＶＭ３２の実行を中断する必要なしに、またはそれぞれのコンテンツをコピーし、転送する必要なしに、それぞれのメモリページのコンテンツを検査し得る。「ライブ」メモリフォレンジックツールの一例は、Ｖｏｌａｔｉｌｉｔｙ  ＦｏｕｎｄａｔｉｏｎからのＶｏｌａｔｉｌｉｔｙ（登録商標）フレームワークである。
【００２２】
[0033]フォレンジックツールの別の例は、クライアントシステム上で現在インストールされおよび／または実行しているソフトウェアエンティティを列挙するように構成されたアプリケーションインベントリツールである。フォレンジックツールのまた別の例は、構成設定のセット（たとえば、様々なＯＳパラメータの現在の値、ハードウェア設定、セキュリティ設定、ファイアウォール設定など）を取得するようにプログラムされた構成グラバー（ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｇｒａｂｂｅｒ）である。他の例示的なフォレンジックツールは、システムおよび／またはアプリケーションイベントログ、あるいはシステムクラッシュデータ（たとえばＷｉｎｄｏｗｓ（登録商標）クラッシュミニダンプ）を収集するようにプログラムされる。
【００２３】
[0034]図２−Ａは、図１中のシステム１２ａ〜ｄなど、クライアントシステム１２の例示的なハードウェア構成を示す。説明を簡単にするため、図示されたクライアントシステムは、コンピュータシステムであり、携帯電話、ウォッチなどの他のクライアントシステムのハードウェア構成は、図示された構成とはいくらか異なり得る。クライアントシステム１２は、ハードウェアプロセッサ１６とメモリユニット１８とを含む、物理デバイスのセットを含む。いくつかの実施形態では、プロセッサ１２は、信号および／またはデータのセットを用いた計算および／または論理動作を実行するように構成された物理デバイス（たとえばマイクロプロセッサ、半導体基板上に形成されたマルチコア集積回路など）を含む。いくつかの実施形態では、そのような動作は、プロセッサ命令のシーケンスの形態（たとえば機械コードまたは他のタイプの符号化）でプロセッサ１２に配信される。メモリユニット１８は、プロセッサ１６によってアクセスまたは生成される命令および／またはデータを格納する揮発性コンピュータ可読媒体（たとえばＤＲＡＭ、ＳＲＡＭ）を含み得る。
【００２４】
[0035]デバイスのタイプおよび性能に応じて、クライアントシステム１２は、ユーザがクライアントシステム１２にデータおよび／または命令を入力することを可能にする、キーボード、マウス、タッチスクリーンなど、入力デバイス２０のセットをさらに含み得る。モニタまたは液晶ディスプレイなど、出力デバイス２２のセットは、たとえば、グラフィカルユーザインターフェースを介して、ユーザに情報を伝達し得る。ストレージデバイス２４は、プロセッサ命令および／またはデータの不揮発性格納、読取りおよび書込みを可能にするコンピュータ可読媒体を含む。例示的なストレージデバイス２４は、磁気および光ディスクならびにフラッシュメモリデバイス、ならびにＣＤおよび／またはＤＶＤディスクおよびドライブなどのリムーバブル媒体を含む。ネットワークアダプタ２６のセットは、クライアントシステム１２が通信ネットワーク１１におよび／または他のデバイス／コンピュータシステムに接続することを可能にする。コントローラハブ２８は、複数のシステム、周辺機器、および／またはチップセットバス、ならびに／あるいはプロセッサ１６とデバイス１８、２０、２２、２４および２６との間の通信を可能にするすべての他の回路を総称的に表す。たとえば、コントローラハブ２８は、特に、メモリ管理ユニット（ＭＭＵ）と、入出力（Ｉ／Ｏ）コントローラと、割込みコントローラとを含み得る。別の例では、コントローラハブ２８は、プロセッサ１６をメモリ１８に接続するノースブリッジ、および／またはプロセッサ１６をデバイス２０、２２、２４、および２６に接続するサウスブリッジを含み得る。いくつかの実施形態では、コントローラハブ２８は、部分的にまたは完全にプロセッサ１６と統合され得、たとえば、ＭＭＵは共通半導体基板をプロセッサ１６と共有し得る。
【００２５】
[0036]図２−Ｂは、セキュリティサーバ１４の例示的なハードウェア構成を示す。サーバ１４は、ハードウェアプロセッサ１１６、サーバメモリ１１８、サーバストレージデバイス１２４のセット、およびネットワークアダプタ１２６のセットを含み、すべてがサーバコントローラハブ１２８によって接続される。デバイス１１６、１１８、１２４、および１２６の動作は、上記で説明されたデバイス１６、１８、２４、および２６の動作をミラーリングし得る。たとえば、サーバプロセッサ１１６は、信号および／またはデータのセットを用いた計算および／または論理動作を実行するように構成された集積回路を含み得る。サーバメモリ１１８は、計算を実施している間にプロセッサ１１６によってアクセスまたは生成されるデータ／信号を格納する非一時的コンピュータ可読媒体（たとえばＲＡＭ）を含み得る。ネットワークアダプタ１２６は、セキュリティサーバ１４が通信ネットワーク１１に接続することを可能にする。
【００２６】
[0037]いくつかの実施形態では、クライアントシステム１２は、たとえば図３−Ａ〜図３−Ｂに示されているように、仮想マシンのセットを公開するように構成される。仮想マシン（ＶＭ）は、ハードウェア仮想化の当技術分野において知られている様々な技法のいずれかを使用して、実際の物理マシン／コンピュータシステムをエミュレートする。いくつかの例示的な構成では、ハイパーバイザ３０は、クライアントシステム１２上で実行し、ハイパーバイザ３０は、クライアントシステム１２の実際の物理デバイスを模倣するために、仮想プロセッサおよび仮想メモリ管理ユニットなど、複数の仮想化されたデバイスを作成するかまたは使用可能にし、そのような仮想化されたデバイスをソフトウェアに与えるように構成される。そのような動作は、一般に、仮想マシンを公開することとして当技術分野で知られている。ハイパーバイザ３０はさらに、各仮想マシンが、独立して動作し、クライアントシステム１２上で同時に実行している他のＶＭに気づき得ないように、複数のＶＭがホストシステム１２のハードウェアリソースを共有することを可能にし得る。普及しているハイパーバイザの例は、特に、ＶＭｗａｒｅ社からのＶＭｗａｒｅ（登録商標）ｖＳｐｈｅｒｅ（登録商標）と、オープンソースＸｅｎ（登録商標）ハイパーバイザとがある。
【００２７】
[0038]図３−Ａ〜図３−Ｂに示されている例示的な構成では、ゲストＶＭ３２は、ゲストオペレーティングシステム３４とアプリケーション３６とを実行する。図３−Ａ〜図３−Ｂは１つのゲストＶＭのみを示しているが、仮想デスクトップインフラストラクチャ（ＶＤＩ）およびサーバファーム化（ｓｅｒｖｅｒ  ｆａｒｍｉｎｇ）などの適用例では、クライアントシステム１２は、複数（たとえば、数百個）のそのようなＶＭを同時に実行し得る。各ゲストＶＭは、少なくとも１つの仮想化されたプロセッサを含み、特に、他の仮想化されたデバイス、そのような仮想化された入力、出力、ストレージ、およびネットワークデバイス、ならびに、仮想化されたコントローラをさらに含み得る。各仮想化されたプロセッサは、ハードウェアプロセッサ１６の機能の少なくとも一部のエミュレーションを含み、実行のためのプロセッサ命令を受信するように構成される。実行のために仮想プロセッサを使用するソフトウェアは、それぞれの仮想マシン内で実行すると言われる。たとえば、図３−Ａ〜図３−Ｂの例では、ゲストＯＳ３４およびアプリケーション３６は、ゲストＶＭ３２内で実行すると言われる。対照的に、ハイパーバイザ３０は、ゲストＶＭ３２の外部、または下で実行すると言われる。
【００２８】
[0039]ＯＳ３４は、アプリケーション３６とゲストＶＭ３２の仮想化されたハードウェアとの間のインターフェースを与える。オペレーティングシステム３４は、特に、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、ＭａｃＯＳ（登録商標）、Ｌｉｎｕｘ（登録商標）、ｉＯＳ（登録商標）、またはＡｎｄｒｏｉｄ（登録商標）などの広く利用可能なオペレーティングシステムを含み得る。アプリケーション３６は、特に、ワードプロセシング、画像処理、メディアプレーヤ、データベース、カレンダー、個人連絡先管理、ブラウザ、ゲーミング、音声通信、およびデータ通信アプリケーションなどの任意のコンピュータプログラムを総称的に表す。
【００２９】
[0040]いくつかの実施形態では、ハイパーバイザ３０は、セキュリティＶＭ３３をさらに公開し、セキュリティＶＭ３３は、ゲストＶＭ３２と同時に実行し、マルウェアおよび侵入などのコンピュータセキュリティ脅威からゲストＶＭ３２を保護し得る。単一のセキュリティＶＭが、それぞれのクライアントシステム上で実行する複数のゲストＶＭを保護し得る。ゲストＶＭ３２の仮想環境とセキュリティＶＭ３３の仮想環境とは、ゲストＶＭ３２内で実行する悪意のあるソフトウェアが、セキュリティＶＭ３３内で実行するソフトウェアに感染させないことまたは場合によってはそれを妨害しないことを保証するために、互いから分離され得る。たとえば、セキュリティＶＭ３３の仮想プロセッサは、クライアントシステム１２上で実行する他の仮想マシンの仮想プロセッサとは別個であり、セキュリティＶＭ３３のためのメモリ変換とゲストＶＭ３２のためのメモリ変換とは、ページテーブルの別個のセットを使用する。セキュリティＶＭ３３は、以下で詳細に示されているように、セキュリティサーバ１４と協働するように構成され得る。セキュリティＶＭ３３のいくつかの実施形態は、軽量最小オペレーティングシステム（たとえば、Ｌｉｎｕｘ（登録商標）ＯＳのカスタマイズされたバージョン）と、オンデマンドイントロスペクションエンジン４２と、ネットワークフィルタ４４とを含む。代替実施形態では、ネットワークフィルタ４４は、たとえばハイパーバイザ３０のプロセッサ特権レベル（たとえば、ルートレベル、リング−１）で、セキュリティＶＭ３３の外部で実行する。
【００３０】
[0041]いくつかの実施形態では、ハイパーバイザ３０は、仮想化されたデバイスのサブセットのみをゲストＶＭ３２に公開し得、セキュリティＶＭ３３にクライアントシステム１２のいくつかのハードウェアデバイスの直接および独占的使用を与え得る。１つのそのような例では、ゲストＶＭ３２は、入力デバイス２０および出力デバイス２２の独占的使用を有するが、仮想化されたネットワークアダプタを欠き得る。一方、セキュリティＶＭ３３は、（１つまたは複数の）ネットワークアダプタ２６の直接および独占的使用を有し得る。１つのそのような実施形態では、ゲストＶＭ３２へのおよび／またはそれからのすべての通信が、セキュリティＶＭ３３を介して送信／受信される。ハイパーバイザ３０は、たとえば、メモリ共有機構を使用して、ゲストＶＭ３２とセキュリティＶＭ３３との間のネットワークパケットをアクティブにルーティングし得る。セキュリティＶＭ３３はさらに、ゲストＶＭ３２とリモートパーティとの間の通信を選択的に可能にするかまたは妨げるために、フィルタ４４を使用し得る。そのような構成は、たとえば、インテル（登録商標）からのＶＴ−ｄ（登録商標）技術を使用して、実装され得る。
【００３１】
[0042]いくつかの実施形態では、クライアントシステム１２上で実行するセキュリティソフトウェアは、保護されたゲストＶＭ３２の外部で実行するライブイントロスペクションエンジン４０をさらに含む。「イントロスペクション」という用語は、ターゲットＶＭ内で実行するソフトウェアに関する情報をそれぞれのＶＭの外部の位置から収集することを目的とするアクティビティを示すために、本明細書によって使用される。イントロスペクションの例は、特に、それぞれのＶＭ内で実行するソフトウェアが、いくつかのアクション（たとえば、いくつかのプロセッサ命令を実行すること、いくつかのハードウェアリソースにアクセスすること、ＯＳのいくつかのサービスを使用すること、いくつかのメモリロケーションにアクセスすることなど）を実施するかどうかを判断することを含む。イントロスペクションの他の例は、それぞれのＶＭ内で実行する様々なソフトウェアオブジェクトによって使用されるメモリアドレスを判断すること、および／または、そのようなアドレスによって示されるメモリロケーションへのアクセスを制御することを含む。
【００３２】
[0043]エンジン４０は、たとえばライブラリとして、ハイパーバイザ３０に組み込まれ得るか、または、ハイパーバイザ３０とは別個および無関係のコンピュータプログラムとして配信され得るが、ハイパーバイザ３０のプロセッサ特権レベル（たとえば、ルートモード、リング−１）で実行し得る。代替実施形態では、ライブイントロスペクションエンジンは、ゲストＶＭ３２とは別個の個別の仮想マシン中で実行し得る。エンジン４０は、個別のスケジュールされた実行スレッドを有するプロセスであり得、または以下で示されているように、いくつかのイベントによってトリガされたときに実行するスケジュールされていないコードオブジェクトの集合として動作し得る。
【００３３】
[0044]エンジン４０は、複数の実行可能なエンティティ（たとえば、プロセス、スレッド、アプリケーション）の挙動を監視するように構成される。そのようなことは、それぞれのソフトウェアの実行中に様々なイベントの発生を検出し、そのようなイベントをセキュリティサーバ１４に選択的に報告することを含み得る。様々なタイプのイベント、たとえば、いくつかのＯＳ関数、システムコールに対する呼出しなどが、このようにして検出され得る。検出されるイベントの他の例は、特に、ＯＳ３４の関数を変更しようとする試み（コードパッチングまたはコードフッキングとして当技術分野で一般に知られているコード改ざん）、１つのソフトウェアエンティティによる別のソフトウェアエンティティにコードを注入しようとする試み、デジタル署名されていないソフトウェア構成要素を起動しようとする試み、デジタル署名検証を回避しようとする試みを含む。他のタイプの検出されるイベントは、ファイルを開くこと、ファイルを作成すること、ファイルに書き込むこと、ファイルを削除すること、ファイルをコピーすること、プロセスを作成すること、プロセスを終了すること、実行のためのスレッドをスケジュールすること、同期化イベント（たとえば相互排除）のためにスレッドを中断すること、ヒープを作成すること、ヒープからメモリを割り振ること、実行スタックのサイズを拡張すること、メモリアクセス許可を変えること、スワップイン（たとえばデスクツーメモリ（ｄｉｓｋ−ｔｏ−ｍｅｍｏｒｙ））動作を実施すること、スワップアウト（メモリツーデスク（ｍｅｍｏｒｙ−ｔｏ−ｄｉｓｋ））動作を実施すること、実行可能モジュール（たとえば、共有ライブラリＤＬＬ）をロードすること、レジストリキーを開くこと、レジストリキーをリネームすること、新しいハードウェアデバイスの取付けを検出すること、新しいネットワーク接続を確立すること、ネットワークパケットを受信すること、スレッドの実行特権を引き上げること、およびファイルに関連する任意アクセス制御（ＤＡＣ）許可を変えることを含み得る。
【００３４】
[0045]そのようなイベントを検出するためのいくつかの方法が、当技術分野で知られている。それらは、いくつかのＯＳ関数をフックすること、ディスパッチテーブルを変更することなどを含む。ハードウェア仮想化プラットフォームでは、セキュリティ関連イベントを検出するための方法の特殊なカテゴリーは、メモリアクセス許可の違反を検出することに依拠する。たいていの現代のコンピュータシステムは、仮想メモリを用いて動作し、専用データ構造、たとえばページテーブルを使用してメモリアドレス変換を管理するように構成される。ハードウェア仮想化をサポートするように構成されたシステムは、一般に、各公開されたＶＭから見たゲスト物理メモリからクライアントシステム１２の実際の物理メモリ１８へのアドレス変換の第２のレイヤを使用する。第２のアドレス変換は、一般に、プロセッサ１６によって制御されるハードウェアアクセラレートされた専用データ構造および機構を使用して達成され、第２レベルアドレス変換（ＳＬＡＴ：ｓｅｃｏｎｄ  ｌｅｖｅｌ  ａｄｄｒｅｓｓ  ｔｒａｎｓｌａｔｉｏｎ）として知られている。普及しているＳＬＡＴ実装形態は、インテル（登録商標）プラットフォーム上の拡張ページテーブル（ＥＰＴ：ｅｘｔｅｎｄｅｄ  ｐａｇｅ  ｔａｂｌｅ）と、ＡＭＤ（登録商標）プラットフォーム上の高速仮想化インデックス付け（ＲＶＩ：ｒａｐｉｄ  ｖｉｒｔｕａｌｉｚａｔｉｏｎ  ｉｎｄｅｘｉｎｇ）／ネスト化ページテーブル（ＮＰＴ：ｎｅｓｔｅｄ  ｐａｇｅ  ｔａｂｌｅ）とを含む。ＳＬＡＴは、一般に、読取り／書込み／実行など、各メモリページについてメモリアクセス許可を設定することを可能にする。
【００３５】
[0046]いくつかの実施形態では、ライブイントロスペクションエンジン４０は、上記で説明されたＳＬＡＴ機構を使用していくつかのメモリページのアクセス許可を設定するためにハイパーバイザ３０と協働する。１つのそのような例では、特定のメモリページが、特定のＯＳ関数に属するコードをホストする。それぞれのページを非実行可能とマークすることは、それぞれのＯＳ関数を実行しようとする試みが行われたときに、許可違反をトリガするであろう。違反は、イントロスペクションエンジン４０によって、それぞれのＯＳ関数を実行しようとする試みが発生したことのインジケータとして解釈され得る。
【００３６】
[0047]プロセッサ１６は、ソフトウェアが、現在のアクセス許可に違反する様式でそれぞれのページにアクセスしようと試みるとき、プロセッサイベント（たとえば、例外、障害など）をトリガするように構成され得る。プロセッサイベントの１つのタイプはＶＭ終了イベント（インテル（登録商標）プラットフォーム上のＶＭＥｘｉｔ）を含み、ここで、プロセッサ１６は、メモリアクセス許可の違反に応答して、それぞれのＶＭ内でコードを実行することから、それぞれのＶＭの外部でハンドラルーチンを実行することに切り替わる。プロセッサイベントの別のカテゴリーは仮想化例外（インテル（登録商標）プラットフォーム上の＃ＶＥ）を含み、ここで、プロセッサ１６は、それぞれのＶＭ内でハンドラルーチンを実行することに切り替わる。
【００３７】
[0048]図３−Ａの例示的な構成では、イベントハンドラ４６ａは、ハイパーバイザ３０のプロセッサ特権レベルで、監視されるゲストＶＭの外部で実行する。そのような実施形態は、ゲストＶＭ３２内でのイベントの発生に関してライブイントロスペクションエンジン４０に通知するために、ＶＭ終了イベントに依拠し得る。対照的に、図３−Ｂでは、イベントハンドラ４６ｂは、たとえば、ゲストＯＳ３４のプロセッサ特権レベル（たとえば、リング０、カーネルモード）で、監視されるＶＭ内で実行する。そのような構成は、ＶＭ内イベントを検出するために仮想化例外に依拠し得る。ハンドラ４６ｂは、イベント情報をイントロスペクションエンジン４０に送るために、（たとえば、メモリの共有セクションを使用する）プロセス間通信機構を使用し得る。図３−Ｂに示されている構成は、ハンドラ４６ｂが、監視されるＶＭ内で実行し、したがって、各検出されたイベントのセマンティクスを判断するためにゲストＯＳ３４の関数および機構を使用することができるので、図３−Ａに示されている構成よりも情報収集においてより効率的であり得る。しかしながら、ゲストＶＭ３２内で実行することによって、ハンドラ４６ｂは、ハンドラ４６ａよりも、悪意のあるソフトウェアの影響を受けやすくなり得る。
【００３８】
[0049]セキュリティイベントを分析するために、ただライブイントロスペクションエンジン４０に依拠するかまたは保護されたＶＭ内で実行するソフトウェアに依拠する代わりに、本発明のいくつかの実施形態は、第２のオンデマンドイントロスペクションエンジン４２をさらに展開する。ライブイントロスペクションエンジン４０は、監視されるゲストＶＭ内での様々なイベントの発生を検出し得るが、そのようなイベントの高性能フォレンジック分析は、計算量的にコストがかかりすぎ、ユーザエクスペリエンスに悪影響を及ぼすので、そのような分析を実行しないことがある。代わりに、オンデマンドイントロスペクションエンジン４２が、それぞれのフォレンジック分析を実施するために呼び出され得るが、そのようなフォレンジック分析は、ライブイントロスペクションエンジン４０によって検出されたイベントのサブセットのためにのみ選択的にトリガされ得る。いくつかの実施形態では、イベントのフォレンジック分析を実施するという決定は、セキュリティサーバ１４によって行われ、それぞれのクライアントシステム１２に通信される。
【００３９】
[0050]いくつかの実施形態では、ライブイントロスペクションエンジン４０およびオンデマンドイントロスペクションエンジン４２は、たとえばメモリの共有セクションとハイパーバイザ３０を介して行われるシグナリングとを介して、互いに通信し得る。たとえば、フォレンジックアクティビティを実施している間、オンデマンドイントロスペクションエンジン４２は、ライブイントロスペクションエンジン４０の現在の状態を読み取り、使用し得る。次には、ライブイントロスペクションエンジンは、たとえば、フォレンジックアクティビティが現在実行されていることをシグナリングするために、オンデマンドイントロスペクションエンジンからの通知を受信し得る。
【００４０】
[0051]図４は、本発明のいくつかの実施形態による、クライアントシステム１２上にコンピュータセキュリティを設定するために実施されるステップの例示的なシーケンスを示す。コンピュータセキュリティ脅威から企業ネットワークを保護する一般的なシナリオでは、ネットワーク管理者が、保護を必要とする各クライアントシステム１２ａ〜ｄにセキュリティアプリケーションをインストールし得る。セキュリティアプリケーションは、ハイパーバイザ３０、イントロスペクションエンジン４０〜４２、イベントハンドラ４６ａ〜ｂなど、様々な構成要素を含み得る。ステップの図示されたシーケンスは、たとえば、それぞれのセキュリティアプリケーションのインストーラユーティリティによって実行され得る。ハードウェア仮想化環境の不在下でインストールされるとき、セキュリティソフトウェアが、最初に、最も強いプロセッサ特権レベル（たとえば、ルートモード、リング−１）でプロセッサ１６を引き継ぎ、ハイパーバイザ３０をインストールし得る。ハイパーバイザ３０は、次いで、ゲストＶＭ３２を公開し、ゲストＶＭ３２内で実行するために、それぞれのクライアントシステム上で前に実行していたすべてのソフトウェアを移動し得る。ハイパーバイザ３０は、さらに、セキュリティＶＭ３３を設定し、ＶＭ３２とＶＭ３３との間でそれぞれのクライアントシステムのハードウェアを共有する方法を構成する。インストーラは、次いで、セキュリティＶＭ３３内で実行するソフトウェア、ならびにライブイントロスペクションエンジン４０をインストールし、起動し得る。
【００４１】
[0052]いくつかの実施形態では、ハイパーバイザ３０および／またはセキュリティＶＭ３３は、セキュリティＶＭ３３が信用できるソフトウェアを実行することを保証するために、セキュアブート機構または当技術分野で知られている別の形態の認証を使用して起動され得る。セキュリティＶＭ３３を設定すること（ステップ２０４）および／またはセキュリティＶＭ３３内で実行する他のソフトウェアを設定することは、セキュリティサーバ１４とまたは他の認証エンティティとの認証交換（たとえば、ハッシュ検証）を含み得る。例示的な一実施形態では、セキュアブートは、インテル（登録商標）プラットフォーム上のトラステッドプラットフォームモジュール（ＴＰＭ）など、クライアントシステム１２のセキュアストレージハードウェア構成要素を採用し、インテル（登録商標）のトラステッドエグゼキューションテクノロジー（ＴＸＴ）などの完全性証明（ｉｎｔｅｇｒｉｔｙ  ａｔｔｅｓｔａｔｉｏｎ）機構をさらに採用し得る。
【００４２】
[0053]いくつかの実施形態では、ステップ２０６は、セキュリティサーバ１４からセキュリティＶＭ３３へのリモート管理アクセスを設定する。そのようなアクセスは、セキュリティサーバ１４が、たとえば、オンデマンドイントロスペクションエンジン４２に特定の種類のフォレンジック分析を実施するように、またはクリーンアップステップの特定のシーケンスを実行するように命令するために、命令とコマンドとを、保護されたクライアントシステムに直接（自動的にまたは人間のオペレータによって支援されて）送ることを可能にし得る。リモート管理アクセスを設定することは、たとえば、セキュアシェル（ＳＳＨ）または仮想プライベートネットワーク（ＶＰＮ）プロトコルを介してサーバ１４とセキュリティＶＭ３３との間にトンネル（すなわち、ポイントツーポイントセキュア通信チャネル）を設定することを含み得る。図５は、そのような例示的な交換を示す。トンネル要求４８が、クライアントシステム１２またはサーバ１４のいずれかによって発行され得る。要求４８は、交換プロトコルのインジケータと、暗号化鍵のセットとを含み得る。応答して、通信当事者は、それらの間のネットワークパケットを暗号化およびルーティングする特定の様式を含むセキュアトンネル４９を設定する。いくつかの実施形態では、ハイパーバイザ３０は、セキュリティサーバ１４から受信されたネットワークパケットを、セキュリティＶＭ３３に直接ルーティングする。
【００４３】
[0054]図６は、本発明のいくつかの実施形態による、セキュリティサーバ１４と保護されたクライアントシステムとの間の例示的なデータ交換を示す。クライアントシステム１２は、イベントがゲストＶＭ３２内でソフトウェアの実行中に発生したことをサーバ１４に通知するために、イベントインジケータ５０を送り得る。イベントインジケータ５０は、それぞれのイベントのイベントタイプのインジケータ、イベントのタイムスタンプ、ならびにそれぞれのクライアントシステム１２および／またはゲストＶＭ３２の識別子（クライアントＩＤ）を含み得る。
【００４４】
[0055]応答して、サーバ１４は分析要求５２をクライアントシステム１２に送り得、要求５２は、いくつかのフォレンジックアクティビティをクライアントシステム１２に対して実施するようにオンデマンドイントロスペクションエンジン４２に命令する。分析要求５２は、データ収集／イベント分析を実行するためにエンジン４２によって使用されるべきフォレンジックツールのインジケータ、および／または何らかの他の種類のセキュリティリソースのインジケータを含み得る。いくつかの実施形態では、分析要求５２は、別のクライアントシステムからイベントインジケータを受信したことに応答して、クライアントシステムに送出され得る。
【００４５】
[0056]いくつかの実施形態では、要求されたフォレンジックアクティビティを実施したことに応答して、オンデマンドイントロスペクションエンジン４２はフォレンジック報告５４をサーバ１４に送信し、報告５４はそれぞれのフォレンジックアクティビティを実行した結果を含む。報告５４は、たとえば、ソフトウェアオブジェクトのリスト、メモリアドレスのリスト、セキュリティまたはハードウェア設定のリストなどを含み得る。
【００４６】
[0057]フォレンジック報告５４を受信したことに応答して、サーバ１４は、それぞれのクライアントシステム／ゲストＶＭが特定の種類のコンピュータセキュリティ脅威の影響を受けやすいかどうか、たとえば、それぞれのクライアントシステム／ゲストＶＭが悪意のあるソフトウェアに感染しているかどうかを判断し得る。はいであるとき、サーバ１４は、セキュリティアラート５６をそれぞれのクライアントシステム１２に送信し得る。サーバ１４のいくつかの実施形態は、たとえば、クリーンアップツールのインジケータを含む緩和インジケータ５８、またはネットワークフィルタ４４を構成するためのパラメータ値のセットをさらに送信する。
【００４７】
[0058]図７は、本発明のいくつかの実施形態による、ライブイントロスペクションエンジン４０によって実施されるステップの例示的なシーケンスを示す。エンジン４０は、少なくとも２つの種類のメッセージ／通知、すなわち、ゲストＶＭ３２内でのイベントの発生に関するイベントハンドラ４６ａ〜ｂからの通知と、セキュリティＶＭ３３からの（たとえば、フォレンジックアクティビティが現在行われていることをエンジン４０にシグナリングするために、オンデマンドイントロスペクションエンジン４２からの）通知とをリッスンするように構成され得る。イベント通知を受信したとき、ステップ２２６において、エンジン４０は、そのようなイベント通知の予備分析を実施し得る。いくつかの実施形態では、そのような予備分析は、ユーザエクスペリエンスへの影響をできる限り低く保つために、最小の計算コストを伴う。たとえば、ステップ２２６は、ルールの比較的単純なセットを使用してイベント通知をフィルタ処理し得る。いくつかの種類のイベントのみが、セキュリティサーバ１４に報告され得る（ステップ２２８〜２３０）。例示的な一実施形態では、セキュリティサーバ１４に通信されるイベントは、特に、ＯＳカーネルをフックまたはパッチしようとする試みと、知られていないモジュールの注入と、特定のメモリ領域からのコードを実行しようとする試みとを含む。検出されたイベントが報告に値するイベントのカテゴリーに属さないとき、エンジン４０のいくつかの実施形態は、それぞれのイベントをエミュレートし、その後、ゲストＶＭ３２の実行を再開する。
【００４８】
[0059]検出されたイベントがセキュリティＶＭ３３からの通知を含むとき（ステップ２３２）、いくつかの実施形態は、たとえば、クライアントシステム１２が、進行中のフォレンジックアクティビティまたは脅威緩和アクティビティによる一時的減速を経験し得ることをユーザに通知するために、クライアントシステム１２の出力デバイス上に警告メッセージを表示し得る。さらなるステップ２３６において、ライブイントロスペクションエンジン４０のいくつかの実施形態は、フォレンジック／緩和アクティビティを実行するためにオンデマンドイントロスペクションエンジン４２と協働し、それを支援し得る。そのような協働の一例は、オンデマンドイントロスペクションエンジン４２がライブイントロスペクションエンジン４０の現在の状態を問い合わせることを含む。
【００４９】
[0060]図８は、本発明のいくつかの実施形態による、オンデマンドイントロスペクションエンジン４２によって実施されるステップの例示的なシーケンスを示す。ステップ２５０〜２５２のシーケンスにおいて、エンジン４２は、たとえばサーバ１４とセキュリティＶＭ３３との間に確立されたセキュアトンネル４９を介して、サーバ１４からの分析要求をリッスンし得る（図５参照）。いくつかの実施形態では、ハイパーバイザ３０は、分析要求５２を受信したことに応答して、ゲストＶＭ３２を実行することから、セキュリティＶＭ３３とオンデマンドイントロスペクションエンジン４２とを実行することに自動的に切り替わり得る。
【００５０】
[0061]要求５２は、フォレンジックアクティビティにおいて使用されるべきツールのセットおよび／またはセキュリティリソースを示し得る。たとえば、分析要求５２は、ツールリポジトリ１５からのそれぞれのツールの選択的取出しを可能にする、ロケーションインジケータ（たとえば、メモリアドレス、ネットワーク経路）を含み得る。ステップ２５６において、エンジン４２は、通信ネットワーク１１を介してそのようなツール／リソースにアクセスし得る。ツール／リソースにアクセスすることは、ツールリポジトリ１５からクライアントシステム１２のローカルストレージデバイス２４（図２−Ａ）上にそれぞれのツール／リソースをダウンロードすることを含み得る。好ましい実施形態では、ツール／リソースにアクセスすることは、オンデマンドエンジン４２がそれぞれのツール／リソースをそれらのリモートロケーションからマウントすることを含む。本明細書では、マウントすることは、セキュリティＶＭ３３がローカルファイルシステムを介してそれぞれのリソースにアクセスすることができるように、（ツールリポジトリ１５によってホストされる）リモートリソースとセキュリティＶＭ３３のローカルファイルシステムとの間に接続を作成することを指す。たとえば、Ｌｉｎｕｘ（登録商標）ファイルシステムでは、マウントすることは、「マウント」コマンドを介して達成され、前記接続はマウントポイントを含む。
【００５１】
[0062]いくつかの実施形態では、サーバ１４は、それぞれのツール／リソースにアクセスするおよび／またはそれらをマウントするようにトンネル４９を介してエンジン４２に明示的に命令し得る。ツール／リソースにアクセスしたことに応答して、ステップ２５８〜２６０〜２６２のシーケンスにおいて、エンジン４２は、要求されたフォレンジックアクティビティを実行し、フォレンジック報告５４をサーバ１４に送り、それぞれのツール／リソースをアンマウントするかまたは場合によっては廃棄し得る。フォレンジック分析の終了時にツール／リソースを廃棄することは、フォレンジック分析の別個のセッション間での悪意のあるソフトウェアの伝搬を防ぐという点と、クライアントシステム１２ａ〜ｃが、ツールリポジトリ１５中の利用可能なそれぞれのリソースの最新バージョンを常に使用することを保証するという点で、有益であり得る。
【００５２】
[0063]図９は、本発明のいくつかの実施形態による、セキュリティサーバ１４によって実施されるステップの例示的なシーケンスを示す。サーバ１４は、クライアントシステム１２ａ〜ｄから受信された通信をリッスンするように構成され得る（ステップ２８０〜２８２）。そのような通信がイベントインジケータ（すなわち、保護されたクライアントシステム上にイベントが発生したという通知）を含むとき、いくつかの実施形態は、それぞれのイベントをロギングし（ステップ２８６）、フォレンジック分析を要求すべきかどうか、およびどの種類の分析を要求すべきかをイベントインジケータ５０に従って判断する。１つのそのような例では、イベントインジケータ５０が、コード注入が生じたことを示すとき、サーバ１４は、「アプリケーションスナップショット」および／またはＶｏｌａｔｉｌｉｔｙ（登録商標）メモリフォレンジックツールを使用する分析を要求し得る。いくつかの実施形態では、いくつかのタイプのイベントは、複数のツールおよびリソースを使用する、複雑な分析についての要求を生成する。
【００５３】
[0064]決定は、現在の通知によって示されたイベントタイプに従って、および／またはそれぞれのクライアントシステム／ゲストＶＭのために現在施行されているセキュリティポリシーに従って行われる。したがって、決定プロセスは、イベント履歴および／またはクライアント固有のポリシーについてクライアントデータベース１７を照会することを含み得る（ステップ２９０）。他の決定基準は、それぞれのクライアントシステムのハードウェア構成（たとえば、クライアントシステム１２が、特定の種類のプロセッサ、ネットワークアダプタなどのような、特定のハードウェア構成要素を有するかどうか）を含み得る。他の基準は、ゲストＶＭ３２内で実行するオペレーティングシステムのタイプ、およびアプリケーション３６のタイプ（ウェブサーバ、データベース処理など）など、ソフトウェア態様を含み得る。そのような決定ストラテジーは、あるソフトウェアが特定のコンピュータセキュリティ脅威の影響を受けやすいという知識に依拠する。決定プロセスは、ヒューリスティックルールのセット、決定ツリー、または当技術分野において知られている任意の他の手段を採用し得る。例示的な一実施形態は、入力としてイベントタイプおよび様々なポリシー特徴値などのデータを受信し、フォレンジック分析を要求すべきか否かを示す決定インジケータ（たとえば、はい／いいえ）を出力する、人工ニューラルネットワークを使用し得る。
【００５４】
[0065]いくつかの実施形態では、フォレンジック分析を要求すべきかどうか、および／またはどの種類の分析を要求すべきかの決定は、同じクライアントシステム上に発生するイベントの履歴をさらに考慮し得る。そのような実施形態は、別個の瞬間に発生するイベントを相関させることを可能にし、したがって、多数のソフトウェアエンティティを介して悪意のあるペイロードを配信する（たとえば、いくつかのアクションが、第１のエンティティによって実施され、他のアクションが、第１のエンティティの子エンティティによって、または第１のエンティティによって注入されたコードを含んでいる第２のエンティティによって実施される）高性能マルウェアの検出を可能にし得る。
【００５５】
[0066]いくつかの実施形態では、決定プロセスは、イベント通知５０の送信側とは別個のクライアントシステム上に発生するイベントの履歴を考慮し得る。１つのそのような例では、サーバ１４は、特定のタイプのイベントが他のクライアントシステム上で最近発生したかどうかに関する情報について、イベントログを照会し得る。そのようなアクティビティのバーストは、クライアントシステムの間に拡散するマルウェアの波（ゼロデイ（ｚｅｒｏ−ｄａｙ）脅威）、または複数のクライアントシステムによって実行される協調型攻撃をシグナリングし得る。
【００５６】
[0067]通知されたイベントがフォレンジック分析を正当化するとき（ステップ２９２）、ステップ２９４は、必要とされるフォレンジック分析を実行するためにそれぞれのクライアントシステムによって使用されるべきリソースおよび／またはフォレンジックツールを選択する。選択は、ルールのセット、決定ツリーなどに従って行われ得る。一例では、コード注入が発生したという通知を受信したことに応答して、サーバ１４は、「アプリケーションスナップショット」ツールを使用する分析を要求し得る。いくつかの実施形態では、いくつかのタイプのイベントは、複数のツールおよびリソースを使用する、複雑な分析についての要求を生成する。
【００５７】
[0068]クライアントシステム１２から受信された通信がフォレンジック報告５４を含むとき（ステップ２９８）、サーバ１４は、それぞれの報告を分析し（ステップ３００）、場合によっては、報告５４を同じクライアントシステムまたは他のクライアントシステムからの他の報告を用いて補強し、クライアントシステム１２ａ〜ｃのいずれかがコンピュータセキュリティ脅威の影響を受けやすい（たとえば、悪意のあるエンティティによる攻撃下にある可能性がある）かどうかを判断し得る。はいであるとき、サーバ１４は、警告を管理者に送り、および／またはセキュリティアラート５６を影響を受けるクライアントシステムに送り得る。さらなるステップ３０６において、サーバ１４は、たとえばセキュアトンネル４９を介して、緩和インジケータ５８をそれぞれのクライアントシステムに送り得る。緩和インジケータ５８は、コマンド、命令、および／または、クリーンアップツールのセットのインジケータを含み得る。
【００５８】
[0069]上記で説明された例示的な実施形態（図７〜図８〜図９）では、フォレンジック分析を要求すべきかどうかおよび／またはどのタイプの分析を要求すべきかに関係する決定が、セキュリティサーバ１４によって行われる。代替実施形態では、オンデマンドイントロスペクションエンジン４２は、たとえばハイパーバイザ３０によって管理されるプロセス間通信機構を介して、分析要求５２とイベントインジケータ５０とをライブイントロスペクションエンジン４０から直接受信する。オンデマンドイントロスペクションエンジン４２は、次いで、上記で説明されたようにイベントインジケータ５０および／または他の基準に従って使用すべきフォレンジックツール／リソースのセットを選択し得る。したがって、そのような実施形態では、それぞれのリソースにアクセスする（たとえば、それらをマウントする）という決定は、保護されたクライアントシステムにおいて行われる。
【００５９】
[0070]本発明のいくつかの実施形態は、クライアントシステム１２とセキュリティサーバ１４との間またはクライアントシステム１２と通信ネットワーク１１に接続された他のエンティティとの間の通信を調節するためにネットワークフィルタ４４を採用することによって、コンピュータセキュリティをさらに強化する。一例では、セキュリティＶＭ３３は、クライアントシステム１２の（１つまたは複数の）ネットワークアダプタ２６の独占的使用を有するように構成され得る。ハイパーバイザ３０は、次いで、セキュリティＶＭ３３のネットワークフィルタ４４を介してゲストＶＭ３２との間のすべての通信をルーティングし得る。いくつかの実施形態では、サーバ１４が、クライアントシステム１２が、影響を受けやすいか、または悪意のあるエンティティによる攻撃下にある可能性があると判断したとき、サーバ１４は、ネットワークフィルタ４４に、ゲストＶＭ３２との間のすべての通信を阻止するように、ゲストＶＭ３２がローカルネットワークを介して他のクライアントシステムに接続するのを妨げるように、またはゲストＶＭ３２がインターネットにアクセスするのを妨げるように命令し得る。代替実施形態では、ネットワークフィルタ４４は、オンデマンドイントロスペクションエンジン４２がフォレンジックアクティビティを実施する間、ゲストＶＭ３２と別のエンティティとの間の通信を阻止するかまたは場合によっては規制し得る。
【００６０】
[0071]本発明のいくつかの実施形態は、マルウェア、スパイウェア、アドウェア、および無認可の侵入などのコンピュータセキュリティ脅威から比較的多数のクライアントシステム（たとえば、企業ネットワーク）を保護することを可能にし得る。いくつかの実施形態は、中央ポイントからの、たとえば保護されたクライアントシステムに通信可能に結合されたセキュリティサーバからのセキュリティの容易なおよび信用できる管理をさらに可能にし得る。そのような集中化は、数百個の仮想マシンが単一のハードウェアプラットフォーム上で同時に動作し得る、ウェブサーバファーム化および仮想デスクトップインフラストラクチャ管理などのクラウドコンピューティング適用例の場合、特に有利であり得る。
【００６１】
[0072]いくつかの実施形態では、各保護されたクライアントは、ライブイントロスペクションエンジンとオンデマンドイントロスペクションエンジンとを動作させる。ライブイントロスペクションエンジンは、それぞれのクライアントシステム上に公開された保護された仮想マシン内でのいくつかのイベントの発生を検出し、発生をリモートセキュリティサーバに通信する。次には、サーバは、報告されたイベントのイベントタイプに従って、および／またはそれぞれのクライアントのハードウェアおよび／またはソフトウェア委細に従って、ツールリポジトリからフォレンジックツールを選択し得る。オンデマンドイントロスペクションエンジンは、イベントのフォレンジック分析を実施する（たとえば、それぞれのイベントのコンテキストを発見する）ために、フォレンジックツールを取り出し、それを実行し得る。次いで、フォレンジック分析の結果がセキュリティサーバに通信され得、セキュリティサーバは、それぞれのクライアントが悪意のあるソフトウェアまたは侵入者による攻撃下にあるかどうかを判断するために、その情報を使用し得る。
【００６２】
[0073]本発明のいくつかの実施形態は、多数のクライアントを保護するための一般的なコンピュータセキュリティソリューションが攻撃に対して良好に応答しないという洞察に依拠する。既存のソリューションが攻撃を検出することが可能であるときでも、分析および修正は、特にランサムウェアおよび悪意のある侵入などの高性能脅威の場合、人間のオペレータが、影響を受けるクライアントシステムに派遣されることを必要とし得る。対照的に、本発明のいくつかの実施形態では、カスタマイズされたデータ収集／事実発見（フォレンジック分析）および脅威緩和（たとえば、マルウェアクリーンアップ）が、セキュリティサーバの直接的命令下で、クライアントマシン上で自動的に実施される。本発明の例示的な一実施形態は、保護されたクライアントとセキュリティサーバとの間のセキュアポイントツーポイント通信チャネルを確立し、それは、人間のオペレータがそれぞれのクライアントをリモートで構成すること、およびそれぞれのクライアント上でのフォレンジックス／クリーンアップ動作をリモート端末から行うことさえ可能にする。
【００６３】
[0074]複数のクライアントからのイベント検出およびフォレンジック分析結果をアグリゲートすることによって、いくつかの実施形態は、（ゼロデイ攻撃としても当技術分野で知られている）前に未知であったマルウェアの高速検出を可能にし得る。従来のサーバ側脅威検出は、一般に、かなりのサーバ側計算能力を必要とする。一般的なクライアントサーバ検出シナリオとは対照的に、本発明のいくつかの実施形態では、イベントフィルタ処理およびフォレンジック分析などのいくつかのコストがかかるセキュリティ関連動作が、クライアントシステム自体によって実行される。したがって、いくつかの実施形態は、計算負担の大部分をセキュリティサーバに転送する代わりに、いくつかのコストがかかる脅威検出および分析動作を実施するために複数のクライアントマシンの分散された計算能力を使用する。
【００６４】
[0075]本発明のいくつかの実施形態は、コンピュータシステム中に発生するすべてのイベントが、コンピュータセキュリティ脅威の本質的報知または表示であるとは限らないという観測にさらに依拠する。同じタイプのイベント（たとえば、ＵＲＬにアクセスすること、ディスクファイルを開くことなど）は、いくつかのシナリオでは悪意を示すが、他のシナリオでは完全に無害であり得る。１つのそのような例では、イベントが、独立して行われるときは、悪意を示さないことがあるが、それがイベントの特定のシーケンスの一部として発生するときは、マルウェアを示し得る。たとえば、ディスクファイルへの書込みは、独立して行われるときは、無害の動作であり得る（すなわち、多くのプロセスおよびアプリケーションが、合法的にディスクにアクセスする）。しかしながら、書込みイベントは、書込みを実施するエンティティが別のエンティティから注入されたコードの受信側であるときは、疑わしいものになり得る。本発明のいくつかの実施形態では、ライブイントロスペクションエンジンは、様々な基準に従って検出されたイベントを事前フィルタ処理し、そのようなイベントの選択されたサブセットのみをセキュリティサーバに報告する。このストラテジーは、サーバにかかる計算負担をさらに低減する。
【００６５】
[0076]従来のコンピュータセキュリティ適用例では、クライアント側セキュリティツール（たとえば、アンチマルウェアルーチン、署名データベースなど）が、クライアントコンピュータシステム上に存在し、周期的ソフトウェアアップデートによって最新に保たれる。対照的に、本発明のいくつかの実施形態では、セキュリティツールが集中型リポジトリ（たとえば、企業ネットワーク上の専用サーバ）中に保たれる。クライアントシステムは、セキュリティサーバによって命令されたとき、要求に応じて、必要とされるツールのみを取り出し、したがって、大量のソフトウェア更新および時間がかかるネットワーク管理の必要をなくし得る。好ましい実施形態では、クライアントシステムは、リモート集中型ツールリポジトリをクライアントのファイルシステム上にマウントすることによって、セキュリティツールにリモートでアクセスする。
【００６６】
[0077]保護されたクライアントまたはセキュリティサーバとは対照的に、中央リポジトリ中に大部分のセキュリティツールを保つことは、クライアントがそれぞれのセキュリティツールの直近のバージョンへのアクセスを有することを保証する。そのような構成の別の大きな利点は、それらが、クライアント側およびサーバ側ソフトウェアが従来のセキュリティシステムにおけるものよりもかなり小さくなることを可能にすることである。そのような軽量構成要素（たとえば、ハイパーバイザ３０、ライブおよびオンデマンドイントロスペクションエンジン４０〜４２）は、開発し、維持し、クライアントに展開するのがより容易である。それらはまた、フォレンジックツールおよび／または脅威緩和ツールを含む一体型セキュリティソリューションよりも少ない更新を必要とする。さらに、軽量構成要素は、悪意のあるソフトウェアおよびハッカーに比較的小さい攻撃面を公開する。
【００６７】
[0078]上記実施形態が本発明の範囲から逸脱することなく多くのやり方で変更され得ることは、当業者にとって明らかであろう。したがって、本発明の範囲は、以下の特許請求の範囲およびそれらの法的均等物によって判断されるべきである。
【図１】
0006772270.tif 000002
【図２−Ａ】
0006772270.tif 000003
【図２−Ｂ】
0006772270.tif 000004
【図３−Ａ】
0006772270.tif 000005
【図３−Ｂ】
0006772270.tif 000006
【図４】
0006772270.tif 000007
【図５】
0006772270.tif 000008
【図６】
0006772270.tif 000009
【図７】
0006772270.tif 000010
【図８】
0006772270.tif 000011
【図９】
0006772270.tif 000012