(57)【特許請求の範囲】
【請求項１】
方法であって、
コンピュータシステムが実行する専用セキュリティ仮想マシン（ＳＶＭ）によって、前記コンピュータシステムが実行するゲスト仮想マシン（ＧＶＭ）がファイルにアクセスするファイルオープンイベントをモニタリングするステップと、
前記ファイルオープンイベントと関連付けられた、前記ＧＶＭが使用しているアプリケーション又はデバイスの少なくとも１つであるソースを識別するステップと、
識別された前記ソースへのアクセスを制限するソース制御ポリシーが存在するか否かを判断して、データ損失防止（ＤＬＰ）ポリシーが前記ソースのモニタリングを要求しているかを判断するステップと、
前記ファイルと関連付けられたファイルシステムイベントに関して前記ソースをモニタリングして、前記ファイルが前記ＤＬＰポリシーに違反しているかを判断するステップと、
前記ファイルオープンイベントと関連付けられた前記ソースがソース制御ポリシー毎の非承認ソースであるとき、前記ＧＶＭと関連付けられた第１の応答規則を実施するステップと、
前記ファイルが前記ＤＬＰポリシーに違反しているとき、前記ＧＶＭと関連付けられた第２の応答規則を実施するステップと、を含む方法。
【請求項２】
ファイルシステムイベントに関して前記ソースを前記モニタリングすることが、
前記ファイルオープンイベントと関連付けられたファイルクローズイベントを識別するステップと、
前記ファイルクローズイベントと関連付けられたデータを分析して、前記データが前記ＤＬＰポリシーに違反しているかを判断するステップと、
前記データが前記ＤＬＰポリシーに違反している場合、前記ＤＬＰポリシーと関連付けられた前記第２の応答規則を実行するステップと、
前記データが前記ＤＬＰポリシーに違反しているとき、ＤＬＰポリシー違反を報告するステップと、を含む、請求項１に記載の方法。
【請求項３】
前記ＤＬＰポリシーが前記ソースのモニタリングを要求しているかを判断するステップと、
前記ファイルのコピーを記憶するステップと、
前記データが前記ＤＬＰポリシーに違反している場合、クローズイベントで前記ファイルの前記コピーを再記憶するステップと、を更に含む、請求項１に記載の方法。
【請求項４】
ＤＬＰ違反をユーザに通知するように構成されたＤＬＰユーザインターフェースを前記ゲスト仮想マシンにインストールするステップを更に含む、請求項１に記載の方法。
【請求項５】
前記ソース制御ポリシー、ＤＬＰポリシー、及び前記第２の応答規則を含む、前記ＧＶＭと関連付けられたＤＬＰプロファイルを、プロファイルリポジトリから取得するステップを更に含む、請求項１に記載の方法。
【請求項６】
前記ソース制御ポリシーが、アプリケーション制御ポリシー又はデバイス制御ポリシーのうちの少なくとも１つであり、前記ソースを識別する前記ステップが、前記ファイルオープンイベントが前記アプリケーション又は前記デバイスから始まっているか否かを判断するステップを含む、請求項１に記載の方法。
【請求項７】
前記ファイルが前記ＤＬＰポリシーに違反していないことを判断するステップと、
前記ファイルが前記ＤＬＰポリシーに違反していないとき、前記判断の結果をキャッシュに入れるステップであって、前記ファイルの少なくとも１つが前記ＤＬＰポリシーに違反しているとき、又は前記ソースが非承認ソースであるときは、前記結果をキャッシュに入れない、ステップと、を更に含む請求項１に記載の方法。
【請求項８】
処理デバイスによって実行されると前記処理デバイスに動作を行わせる命令を含む、持続性コンピュータ可読記憶媒体であって、前記動作が、
コンピュータシステムが実行する専用セキュリティ仮想マシン（ＳＶＭ）によって、前記コンピュータシステムが実行するゲスト仮想マシン（ＧＶＭ）がファイルにアクセスするファイルオープンイベントをモニタリングするステップと、
前記ファイルオープンイベントと関連付けられた、前記ＧＶＭが使用しているアプリケーション又はデバイスの少なくとも１つであるソースを識別するステップと、
識別された前記ソースへのアクセスを制限するソース制御ポリシーが存在するか否かを判断して、データ損失防止（ＤＬＰ）ポリシーが前記ソースのモニタリングを要求しているかを判断するステップと、
前記ファイルと関連付けられたファイルシステムイベントに関して前記ソースをモニタリングして、前記ファイルが前記ＤＬＰポリシーに違反しているかを判断するステップと、
前記ファイルオープンイベントと関連付けられた前記ソースがソース制御ポリシー毎の非承認ソースであるとき、前記ＧＶＭと関連付けられた第１の応答規則を実施するステップと、
前記ファイルが前記ＤＬＰポリシーに違反しているとき、前記ＧＶＭと関連付けられた第２の応答規則を実施するステップと、を含む、持続性コンピュータ可読記憶媒体。
【請求項９】
ファイルシステムイベントに関して前記ソースを前記モニタリングすることが、
前記ファイルオープンイベントと関連付けられたファイルクローズイベントを識別するステップと、
前記ファイルクローズイベントと関連付けられたデータを分析して、前記データが前記ＤＬＰポリシーに違反しているかを判断するステップと、
前記データが前記ＤＬＰポリシーに違反している場合、前記ＤＬＰポリシーと関連付けられた前記第２の応答規則を実行するステップと、を含む、請求項８に記載のコンピュータ可読記憶媒体。
【請求項１０】
前記動作が、
前記ファイルが前記ＤＬＰポリシーに違反していないことを判断するステップと、
前記ファイルが前記ＤＬＰポリシーに違反していないとき、前記判断の結果をキャッシュに入れるステップであって、前記ファイルの少なくとも１つが前記ＤＬＰポリシーに違反しているとき、又は前記ソースが非承認ソースであるときは、前記結果をキャッシュに入れない、ステップと、を更に含む請求項８に記載のコンピュータ可読記憶媒体。
【請求項１１】
コンピュータ装置であって、
データ損失防止（ＤＬＰ）マネージャを提供する命令を記憶するメモリと、
前記メモリに連結されたコンピュータデバイスであって、前記コンピュータデバイスが、前記ＤＬＰマネージャを実行し、
コンピュータシステムが実行するゲスト仮想マシン（ＧＶＭ）がファイルにアクセスするファイルオープンイベントを、前記ＤＬＰマネージャによってモニタリングし、
前記ファイルオープンイベントと関連付けられた、前記ＧＶＭが使用しているアプリケーション又はデバイスの少なくとも１つであるソースを識別し、
識別された前記ソースへのアクセスを制限するソース制御ポリシーが存在するか否かを判断して、データ損失防止（ＤＬＰ）ポリシーが前記ソースのモニタリングを要求しているかを判断し、
前記ファイルと関連付けられたファイルシステムイベントに関して前記ソースをモニタリングして、前記ファイルが前記ＤＬＰポリシーに違反しているかを判断し、
前記ファイルオープンイベントと関連付けられた前記ソースがソース制御ポリシー毎の非承認ソースであるとき、前記ＧＶＭと関連付けられた第１の応答規則を実施し、
前記ファイルが前記ＤＬＰポリシーに違反しているとき、前記ＧＶＭと関連付けられた第２の応答規則を実施するように構成される、コンピュータデバイスと、を備える、コンピュータ装置。
【請求項１２】
前記ＤＬＰマネージャが、
前記ファイルオープンイベントと関連付けられたファイルクローズイベントを識別し、
前記ファイルクローズイベントと関連付けられたデータを分析して、前記データが前記ＤＬＰポリシーに違反しているかを判断し、
前記データが前記ＤＬＰポリシーに違反している場合、前記ＤＬＰポリシーと関連付けられた前記第２の応答規則を実行するように更に構成される、請求項１１に記載のコンピュータ装置。
【請求項１３】
前記ＤＬＰマネージャが、前記ソース制御ポリシー、ＤＬＰポリシー、及び前記応答規則を含む、前記ＧＶＭと関連付けられたＤＬＰプロファイルを、プロファイルリポジトリから取得するように更に構成される、請求項１１に記載のコンピュータ装置。
【請求項１４】
前記ＤＬＰマネージャが、ＤＬＰ違反をユーザに通知するように構成されたＤＬＰユーザインターフェースを前記ゲスト仮想マシンにインストールするように更に構成される、請求項１１に記載のコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の実施形態は、全体として仮想マシンシステムに関し、より具体的には、仮想化環境におけるデータ損失防止に関する。
【背景技術】
【０００２】
コンピュータサイエンスにおいて、仮想マシン（ＶＭ）は、適切なハードウェア上で実行したときに、実際の物理的コンピュータシステムの仮想化を可能にする環境を作り出す、ソフトウェアの一部分である。各ＶＭは、それ自体のオペレーティングシステム（ＯＳ）及びソフトウェアアプリケーション（プロセス）を走らせる、内蔵プラットフォームとして機能してもよい。一般的に、仮想マシンモニタ（ＶＭＭ）は、コンピュータ資源の割付け及び仮想化を管理すると共に、必要に応じて、様々なＶＭ間で循環するように文脈切替えを行う。
【０００３】
ホストマシン（例えば、コンピュータ又はサーバ）は、一般的に、リモートクライアントによってそれぞれ使用されてもよい複数のＶＭを同時に走らせることができるようにされる。ホストマシンは、特定量のホストの資源をＶＭそれぞれに割り付ける。その結果、各ＶＭは、割り付けられた資源を使用して、ゲストオペレーティングシステムとして知られるオペレーティングシステムを含むアプリケーションを実行することができる。ＶＭＭは、ホストマシンの基本的なハードウェアを仮想化するか又はハードウェアデバイスをエミュレートして、ゲストオペレーティングシステム、又はＶＭを使用するリモートクライアントに対して透明なＶＭを利用する。
【０００４】
仮想マシン環境におけるデータ損失防止（ＤＬＰ）には、アプリケーション、取外し可能なデバイス（即ち、ＵＳＢデバイス、ＣＤ／ＤＣＤ）、及びネットワーク共有の使用による機密データの損失を防ぐため、エージェントを各仮想マシンにインストールすることを要する。しかしながら、作成される全てのＶＭが最新のＤＬＰエージェントを有するよう担保することは課題であり、システム資源の使用は不十分である。
【発明の概要】
【課題を解決するための手段】
【０００５】
本開示の実施形態は、複数のゲスト仮想マシンに対するＤＬＰポリシーを管理する、セキュリティ仮想マシン上で走るＤＬＰマネージャを提供する。ＤＬＰマネージャは、ファイルオープン又は作成イベントと関連付けられたソースを識別する。ソースは、ゲスト仮想マシン（ＧＶＭ）が使用しているアプリケーション又はデバイスのうちの少なくとも１つである。ＤＬＰマネージャは、ソースがソース制御ポリシー毎の非承認ソースであるとき、ＧＶＭと関連付けられた第１の応答規則を実施する。ＤＬＰマネージャは、ファイルがＤＬＰポリシーに違反しているとき、第２の応答規則を実施する。ＤＬＰマネージャは、ゲスト仮想マシンの起動イベントを識別し、ＤＬＰコンポーネントをゲスト仮想マシンにインストールする。一実施形態では、ＤＬＰマネージャは、他の任意のアプリケーションが立ち上がる前に、又はデバイスがゲスト仮想マシンで使用される前に、ＤＬＰコンポーネントをゲスト仮想マシンにインストールする。ＤＬＰコンポーネントは、セキュリティ仮想マシン内で動作しているＤＬＰマネージャと通信する。ＤＬＰマネージャはまた、ファイルシステムイベントをＤＬＰコンポーネントから受信し、ファイルシステムイベントがＤＬＰポリシーに違反している場合、ゲスト仮想マシンと関連付けられた１つ以上の応答規則を実施する。
【０００６】
方法の一実施形態では、コンピュータシステムが実行する専用セキュリティ仮想マシン（ＳＶＭ）は、ファイルオープン又は作成イベントが、コンピュータシステムが実行するゲスト仮想マシン（ＧＶＭ）によるファイルにアクセスするのをモニタリングする。専用ＳＶＭは、ファイルオープン又は作成イベントと関連付けられた、ＧＶＭによって使用されているアプリケーション又はデバイスのうちの少なくとも１つであるソースを識別する。専用ＳＶＭは、ファイルオープン又は作成イベントと関連付けられたソースがソース制御ポリシー毎の非承認ソースであるとき、ＧＶＭと関連付けられた第１の応答規則を実施する。専用ＳＶＭは、ファイルがデータ損失防止（ＤＬＰ）ポリシーに違反しているとき、ＧＶＭと関連付けられた第２の応答規則を実施する。
【０００７】
更なる実施形態では、専用ＳＶＭは、識別されたソースへのアクセスを制限するソース制御ポリシーが存在するか否かを判断して、ＤＬＰポリシーがソースのモニタリングを要求しているかを判断する。専用ＳＶＭは、ファイルと関連付けられたファイルシステムイベントに関してモニタリングを行って、ファイルがＤＬＰポリシーに違反しているかを判断する。
【０００８】
更なる実施形態では、専用ＳＶＭは、ファイルオープン又は作成イベントと関連付けられたファイルクローズ又は保存イベントを識別し、ファイルクローズイベントと関連付けられたデータを分析して、データがＤＬＰポリシーに違反しているかを判断し、データがＤＬＰポリシーに違反している場合、ＤＬＰポリシーと関連付けられた第２の応答規則を実行することによって、モニタリングを行う。
【０００９】
更なる実施形態では、専用ＳＶＭは、データがＤＬＰポリシーに違反しているとき、ＤＬＰポリシー違反を報告する。
【００１０】
更なる実施形態では、専用ＳＶＭは、ＤＬＰポリシーがソースアプリケーションのモニタリングを要求しているかを判断し、アプリケーションがファイルを開こうとしているとき、ファイルのコピーを記憶し、アプリケーションがファイルを保存しようとしているとき、データがＤＬＰポリシーに違反している場合はクローズイベントでファイルのコピーを再記憶する。
【００１１】
更なる実施形態では、専用ＳＶＭは、ユーザにＤＬＰ違反を通知するように構成されたゲスト仮想マシンにＤＬＰユーザインターフェースをインストールする。
【００１２】
別の実施形態では、専用ＳＶＭは、ソース制御ポリシー、ＤＬＰポリシー、及び第２の応答規則を含む、ＧＶＭと関連付けられたＤＬＰプロファイルを、プロファイルリポジトリから取得する。
【００１３】
別の実施形態では、ソース制御ポリシーは、アプリケーション制御ポリシー又はデバイス制御ポリシーのうちの少なくとも１つであり、専用ＳＶＭは、ファイルオープン若しくは作成イベントがアプリケーション又はデバイスから始まっているか否かを判断することができる。
【００１４】
別の実施形態では、専用ＳＶＭは、ファイルがＤＬＰポリシーに違反していないことを判断する。専用ＳＶＭは、ファイルがＤＬＰポリシーに違反していないとき、その判断の結果をキャッシュに入れる。専用ＳＶＭは、ファイルのうちの少なくとも１つがＤＬＰポリシーに違反しているとき、又はソースが非承認ソースであるときは、結果をキャッシュに入れない。キャッシュは、ＧＶＭと関連付けられたＤＬＰプロファイルの変更があるとクリアされる。
【００１５】
それに加えて、ゲスト仮想マシンに関するＤＬＰポリシーを管理する、コンピュータ可読記憶媒体について記載する。例示のコンピュータ可読記憶媒体は命令を提供し、それを処理システム上で実行すると、上述した例示の方法などの動作が処理システムによって行われる。
【００１６】
更に、ＤＬＰマネージャのためのシステム及び装置について記載する。例示の装置は、メモリと、メモリに連結されたプロセッサとを含んでもよい。プロセッサは、上述したものなど、様々な動作を行うように構成される。
【図面の簡単な説明】
【００１７】
本開示の実施形態は、限定としてではなく例として例示されるものであり、以下の詳細な説明を図面と関連して参照することで、より十分に理解することができる。
【図１】専用セキュリティ仮想マシン、及びデータ損失保護を行うデータ損失防止（ＤＬＰ）マネージャを用いる、仮想マシン（ＶＭ）ホストサーバデバイスの一実施形態を示す図である。
【図２】仮想マシン環境で動作するＤＬＰマネージャ及びＤＬＰコンポーネントの一実施形態を示す図である。
【図３】ＤＬＰマネージャ及びＤＬＰコンポーネントの一実施形態を示す図である。
【図４】ＤＬＰマネージャを実装するための方法の一実施形態を示すフローチャートである。
【図５】一実施形態によるファイルシステムイベントをモニタリングするための方法を示すフローチャートである。
【図６】ファイルシステムイベントをモニタリングする別の実施形態の方法を示すフローチャートである。
【図７】アプリケーション及びデバイスイベントをモニタリングする別の実施形態の方法を示すフローチャートである。
【図８】ＤＬＰマネージャの実行を容易にするためのコンピュータシステムの一実施形態を示す図である。
【発明を実施するための形態】
【００１８】
仮想マシンにおけるデータ損失防止（ＤＬＰ）のための方法及びシステムについて、本明細書に記載する。本開示の実施形態は、複数のゲスト仮想マシンに対するＤＬＰポリシーを管理する、セキュリティ仮想マシン上で走るＤＬＰマネージャを提供する。ＤＬＰマネージャは、ファイルオープン又は作成イベントと関連付けられたソースを識別する。ソースは、ゲスト仮想マシン（ＧＶＭ）が使用しているアプリケーション又はデバイスの少なくとも１つである。ＤＬＰマネージャは、ソースがソース制御ポリシー毎の非承認ソースであるとき、ＧＶＭと関連付けられた第１の応答規則を実施する。ＤＬＰマネージャは、ファイルがＤＬＰポリシーに違反しているとき、第２の応答規則を実施する。ＤＬＰマネージャは、ゲスト仮想マシンの起動イベントを識別し、ＤＬＰコンポーネントをゲスト仮想マシンにインストールする。一実施形態では、ＤＬＰマネージャは、他の任意のアプリケーションが立ち上がる前に、又はデバイスがゲスト仮想マシンで使用される前に、ＤＬＰコンポーネントをゲスト仮想マシンにインストールする。ＤＬＰコンポーネントは、セキュリティ仮想マシン内で動作しているＤＬＰマネージャと通信する。ＤＬＰマネージャはまた、ファイルシステムイベントをＤＬＰコンポーネントから受信し、ファイルシステムイベントがＤＬＰポリシーに違反している場合、ゲスト仮想マシンと関連付けられた１つ以上の応答規則を実施する。
【００１９】
以下の説明で、多数の詳細について説明する。しかしながら、本発明はこれらの特定の詳細を伴わずに実施されてもよいことが、当業者には明白となるであろう。いくつかの例では、本発明が不明瞭になるのを回避するため、周知の構造及びデバイスについては、詳細ではなくブロック図の形態で示される。
【００２０】
以下の詳細な説明の一部は、コンピュータメモリ内のデータビットに対する動作のアルゴリズム及び記号表現に関して与えられる。これらのアルゴリズム的記述及び表現は、データ処理分野の当業者が、他の当業者に対して仕事の内容を最も効果的に伝達するために使用する手段である。アルゴリズムは、本明細書では、また一般に、所望の結果に結び付くステップの首尾一貫したシーケンスとして想到される。ステップは、物理量の物理的操作を要するものである。必須ではないものの、通常、これらの量は、記憶し、転送し、組み合わせ、比較し、また別の形で操作することができる、電気信号又は磁気信号の形態をとる。これらの信号を、ビット、値、要素、記号、文字、項、数などと称することが、主に一般的な用法の理由から、時には好都合であることが判明している。
【００２１】
しかしながら、これら及び類似の用語は全て、適切な物理量と関連付けられるべきものであり、これらの量に適用される好都合なラベルにすぎないことに留意すべきである。以下の考察から明白であるように、別の形で具体的に提示されない限り、明細書全体を通して、「提供する」、「生成する」、「インストールする」、「モニタリングする」、「実施する」、「受信する」、「ログに記録する」、「妨害する」などの用語を利用した考察は、コンピュータシステムのレジスタ及びメモリ内の物理（電子）量として表されるデータを操作し、コンピュータシステムのメモリ若しくはレジスタ、又は他のかかる情報の記憶、伝達、若しくは表示デバイス内の物理量として同様に表される、他のデータへと変換する、コンピュータシステム又は類似の電子コンピュータデバイスのアクション及びプロセスを指す。
【００２２】
本発明はまた、本明細書の動作を行うための装置に関する。この装置は、要求される目的に合わせて特別に構築されてもよく、又はコンピュータに記憶されたコンピュータプログラムによって選択的に活性化若しくは再構成される汎用コンピュータを備えてもよい。かかるコンピュータプログラムは、コンピュータのシステムバスにそれぞれ連結される、フロッピー（登録商標）ディスク、光学ディスク、ＣＤ−ＲＯＭ、及び光磁気ディスクを含む任意のタイプのディスク、読出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気若しくは光学カード、又は電子的命令を記憶するのに適した任意のタイプの媒体などであるがそれらに限定されない、コンピュータ可読記憶媒体に記憶されてもよい。
【００２３】
本発明は、本発明によるプロセスを行うようにコンピュータシステム（又は他の電子デバイス）にプログラミングするのに使用されてもよい、命令が記憶された機械可読媒体を含んでもよいコンピュータプログラム製品、即ちソフトウェアとして提供されてもよい。機械可読媒体としては、機械（例えば、コンピュータ）が読取り可能な形態で情報を記憶又は送信するための任意のメカニズムが挙げられる。例えば、機械可読（例えば、コンピュータ可読）媒体としては、読出し専用メモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイスなどの機械（例えば、コンピュータ）可読記憶媒体が挙げられる。
【００２４】
本明細書における「一実施形態」又は「ある実施形態」に対する言及は、実施形態と関連して記載される特定の特徴、構造、又は特性が、本発明の少なくとも１つの実施形態に含まれることを意味する。本明細書の様々な位置にある「一実施形態では」という語句は、必ずしも同じ実施形態を指さない。図面の説明全体を通して、同様の参照番号は同様の要素を意味する。
【００２５】
図１は、専用セキュリティ仮想マシン１０１及びデータ損失防止（ＤＬＰ）マネージャ１０４を用いてデータ損失防止を行う、仮想マシン（ＶＭ）ホストサーバデバイス１００の一実施形態を示す。図示されるように、ベースプラットフォームハードウェア１１６は、例えば、オペレーティングシステム（ＯＳ）、又はＶＭＭ  １１２などの仮想マシンモニタ（ＶＭＭ）を実行することができてもよい、コンピュータプラットフォームを備える。いくつかの実施形態では、ベースハードウェアプラットフォーム１１６は、プロセッサ１１８、メモリデバイス（メモリ１２０及びディスク１２５）、ネットワークデバイス、ドライバなどを含んでもよい。ＶＭＭ  １１２は、ベースハードウェアプラットフォーム１１６を有するサーバデバイス１００がホストする１つ以上のゲストＶＭ  １０２に対して、ベースハードウェアプラットフォーム１１６の物理的資源を仮想化する。いくつかの実施形態では、ＶＭＭ  １１２は、ハイパーバイザ、カーネルベースのハイパーバイザ（例えば、カーネルベースのＶＭ（ＫＶＭ））、又はホストＯＳとも呼ばれることがある。一実施形態では、各ＶＭ  １０２は、ゲストＯＳ  １０６及び様々なゲストソフトウェアアプリケーション１１０など、ゲストオペレーティングシステム（ＯＳ）を含む。
【００２６】
ＤＬＰマネージャ１０４は、使用中データ（例えば、エンドポイントアクション）、実行中データ（例えば、ネットワークアクション）、及び保存データ（例えば、データ記憶）を識別し、モニタリングし、且つ保護する。かかるデータは、ファイル、メッセージ、ウェブリクエストなどの形態であってもよい。一般的に、ＤＬＰシステムは、様々なファイル、メッセージなどをモニタリングして、それらが使用制限文書又はオブジェクトを構成するか否かを判断する。使用制限文書とは、その機密性が理由で自由に配布又は操作することができない文書を表す。使用制限文書は、「秘密」、「機密」、「ストック」などの単語を付して、それらの機密性を示してもよい。それに加えて、使用制限文書は、顧客、従業員、又は患者の個人情報、価格設定データ、設計計画、ソースコード、ＣＡＤ描画、財務報告などの秘密情報を含んでもよい。使用制限オブジェクトは、非承認である除去可能なデバイス又はアプリケーションを表す。使用制限アプリケーションは、その内部名、バージョン、ハッシュ、デジタル署名、発行者のような、アプリケーション又は他の情報の実行可能ファイルを使用して、一意に識別されてもよい。使用制限デバイスは、ハードウェアＩＤ、製造などを使用して、一意に識別されてもよい。
【００２７】
ＤＬＰマネージャ１０４は、ＤＬＰポリシーを適用することによって、ファイル又はメッセージが使用制限文書であるか否かを判断してもよい。ＤＬＰポリシーは、使用制限文書として分類されるべきファイル又はメッセージにどのデータが存在するべきかを指定してもよい。例えば、ＤＬＰポリシーは、様々なファイル、メッセージなどを探索するため、１つ以上のキーワード（例えば、「秘密」、「機密」、「ストック」、特定の疾患の名称（例えば、「がん」、「ＨＩＶ」など）など）を指定してもよい。それに加えて、ＤＬＰポリシーは、完全データ照合（ＥＤＭ）、索引付き文書照合（ＩＤＭ）、及びベクターマシン学習（ＶＭＬ）を含むがそれらに限定されない、ポリシー違反を識別するための他の方法を指定してもよい。ＤＬＰポリシーについては、図３を参照して更に詳細に後述する。ＤＬＰマネージャ１０４は、ソース制御ポリシーを適用することによって、オブジェクトが使用制限されていることを判断してもよい。
【００２８】
各仮想マシンがＤＬＰエージェントを含むであろう一般的なＤＬＰシステムの代わりに、図１は、ＤＬＰマネージャ１０４が専用セキュリティＶＭ（ＳＶＭ）１０１内で動作し、ゲストＶＭ  １０２上で動作するＤＬＰコンポーネント１０８と通信することを示している。別の実施形態では、ＤＬＰマネージャ１０４は、ＶＭＭ  １１２又は他のハイパーバイザプロセス内で動作してもよい。ＤＬＰマネージャ１０４は、仮想通信チャネルを通じて、各ゲストＶＭ  １０２内で動作するＤＬＰコンポーネント１０８と通信する。仮想通信チャネルは、一実施形態では、仮想ネットワークであり、各ＶＭ  １０１、１０２は、標準的なネットワーキングプロトコルを、又はセキュリティ機能専用の隔離された仮想ネットワークを通じた独自のネットワーキングプロトコルを使用して、通信してもよい。別の実施形態では、仮想通信チャネルは、各ＶＭ  １０１、１０２をＶＭＭ  １１２と連結する仮想化通信バスである。ＤＬＰコンポーネント１０８は、オペレーティングシステム１０６の一部として、あるいは、ゲスト仮想マシン１０２の仮想化ハードウェアの埋込みプロセスとして構成されてもよい。ＤＬＰマネージャ１０４及びＤＬＰコンポーネント１０８については、図２及び３を参照して更に詳細に後述する。いくつかの実施形態では、ＳＶＭは、アプリケーション、デバイス、及びＧＶＭ内のファイルとユーザとの相互作用を遠隔でモニタリングしてもよい。例えば、カリフォルニア州パロアルト（Palo Alto, CA）のＶＭウェア（VMware）（登録商標）が開発したＶＭｗａｒｅ  ｖＳｈｉｅｌｄ（商標）フレームワークを、ＤＬＰマネージャ１０４及びＤＬＰコンポーネント１０８に使用することができる。あるいは、他の構成が使用されてもよい。
【００２９】
図２は、本発明の実施形態における仮想マシン環境で動作する、ＤＬＰマネージャ１０４及びＤＬＰコンポーネント１０８の一実施形態を示す。図示される実施形態では、ＤＬＰマネージャ１０４及びＤＬＰコンポーネント１０８は、ハイパーバイザセキュリティドライバ２０２及びＶＭセキュリティドライバ２０４を含む、ＤＬＰシステム２０１と協調して動作するように構成される。本開示と共に使用するのに適した仮想マシンＤＬＰシステムの一例は、カリフォルニア州パロアルト（Palo Alto, CA）のＶＭウェア（VMware）（登録商標）が開発したＶＭｗａｒｅ  ｖＳｈｉｅｌｄ（商標）フレームワークである。あるいは、上述したように、ＤＬＰマネージャ１０４及びＤＬＰコンポーネント１０８は、仮想マシンＤＬＰシステム２０１とは独立して動作するように構成されてもよい。
【００３０】
ハイパーバイザセキュリティドライバ２０２は、ＶＭＭ  １１２上で動作するプロセスとして実装されてもよく、複数のゲスト仮想マシン１０２と通信するように構成されてもよいが、明瞭にするため、図２には１つのみを図示している。ＤＬＰマネージャ１０４は、一実施形態では、ＤＬＰシステム２０１を介して各ゲストＤＬＰコンポーネント１０８と通信する。ＤＬＰマネージャ１０４は、仮想マシン及びファイルシステムアクティビティイベントを示す通知を、ＤＬＰコンポーネント１０８から受信するように構成される。仮想マシンイベントの例としては、ＶＭパワーオンイベント、シャットダウンイベント、移行及び再構成イベントが挙げられるが、それらに限定されない。ファイルシステムイベントの例としては、ファイルオープンイベント、ファイル作成イベント、ファイルクローズ（例えば、保存）イベント、ファイル読取り／書込み、コピー／ペーストイベント、ファイル移動イベント、及びファイル削除イベントが挙げられるが、それらに限定されない。
【００３１】
ゲストＶＭ１０２の電源がオンになると、ＤＬＰマネージャ１０４は、図３を参照して更に詳細に後述するように、ＶＭ  １０２のパワーオンイベントを妨害し、ＶＭ  １０２を識別し、ＶＭ  １０２の識別情報を維持するように構成される。一実施形態では、ＤＬＰマネージャ１０４は、ＶＭ  １０２のオペレーティングシステム及び／又はロール（例えば、ファイルサーバ、電子メールサーバ、デスクトップなど）、事業単位（例えば、エンジニアリング、財務、マーケティング、ＨＲなど）を識別することによって、ＶＭ  １０２を識別する。別の例では、ＤＬＰマネージャ１０４は、ＶＭＭ  １２２において指定された名前によってＶＭ  １０２を識別する。当業者であれば、本開示の実施形態にしたがって使用されてもよい、ＶＭ  １０２を一意に識別するための多くの異なる方法が存在することを認識するであろう。
【００３２】
ＤＬＰコンポーネント１０８は、ＤＬＰマネージャ１０４のファイルシステムイベントと通信するように構成される。例えば、ユーザがゲストＶＭ  １０２内でファイルシステムイベントを開始すると、ＤＬＰコンポーネント１０８は、ファイルシステムイベントを妨害し、イベントを分析してファイルシステムイベントのタイプ（例えば、オープン、作成、クローズ、移動、コピー、読取り、書込み、削除など）を判断し、この情報をＤＬＰマネージャ１０４に送信する。ＤＬＰコンポーネント１０８によって収集され、ＤＬＰマネージャ１０４と通信される情報はまた、ソース、宛先、アプリケーション、ファイルタイプ（例えば、文書、スプレッドシート、メディアオブジェクトなど）、及びファイル分類（例えば、個人、法人、秘密など）を含むがそれらに限定されない、ファイル又はオブジェクト情報を含んでもよい。いくつかの実施形態では、ＤＬＰコンポーネント１０８によって収集され、ＤＬＰマネージャ１０４と通信される情報は、ファイルシステムイベントを開始するアプリケーション及びユーザを含んでもよい。ＤＬＰコンポーネント１０８はまた、一実施形態では、ユーザがＤＬＰポリシーに違反していたことをＤＬＰマネージャ１０４が識別した場合に正当性理由をユーザから受信する、ＤＬＰユーザインターフェースを備えて構成される。
【００３３】
図３は、本発明の実施形態における、ＤＬＰマネージャ１０４及びＤＬＰコンポーネント１０８の一実施形態を示す。一実施形態では、ＤＬＰマネージャ１０４は、ＶＭ識別子３０２及びＶＭ識別情報リポジトリ３０４を含む。ＶＭ識別子３０２は、図２を参照して上述したようなゲスト仮想マシンを一意に識別する。ＤＬＰマネージャ１０４は、識別されたゲスト仮想マシンが、リポジトリ３０４に記憶されたゲスト仮想マシンと関連付けられたＤＬＰセキュリティプロファイル３０６を有するかを判断するように構成される。リポジトリ３０４は、各仮想マシンに１つのプロファイル３０６で複数のプロファイル３０６、又は複数の仮想マシンに対して１つのプロファイル３０６を維持する。各プロファイル３０６は、セキュリティ制御ポリシー３１２、データポリシー３０８、及びデータポリシー３０８に違反があったときの応答規則３１０を含んでもよい。
【００３４】
ＤＬＰポリシー３０８は、内容をモニタリングして秘密情報の存在を検出するための規則を指定する。例えば、ＤＬＰポリシー３０８の規則は、様々なファイル、メッセージなどを探索するため、１つ以上のキーワード（例えば、「秘密」、「機密」、「ストック」、特定の疾患の名称（例えば、「がん」、「ＨＩＶ」など）など）を指定してもよい。キーワードに加えて、ＤＬＰポリシー３０８は、モニタリングされている情報の内容における秘密データの存在を検出するための他の規則を含んでもよい。例えば、金融機関では、ＤＬＰポリシー３０８は、メッセージが「秘密」という単語を含む場合に、メッセージの更なる探索を行って、メッセージが顧客データ（例えば、社会保障番号、名、姓など）又は他の機密情報（例えば、財務報告、ソースコードなど）を含むか否かを判断することを指定してもよい。応答規則３１０は、ポリシー違反が検出されたときにどのアクションを取るべきかを指定する。例えば、応答規則３１０は、秘密データを含むメッセージのブロック、経路変更、報告、隔離、暗号化などを要求してもよい。
【００３５】
一実施形態では、ＤＬＰポリシー３０８は、完全データ照合（ＥＤＭ）及び／又は索引付き文書照合（ＩＤＭ）のための規則を含む。完全データ照合（ＥＤＭ）は、データベースレコードなど、一般的に構造化された形式のデータを保護するのに使用されてもよい。索引付き文書照合（ＩＤＭ）は、マイクロソフト（登録商標）ワード若しくはパワーポイント（登録商標）文書などの非構造化データ、又はＣＡＤ描画を保護するのに使用されてもよい。ＥＤＭ及びＩＤＭの両方に関して、機密データが最初に識別される。ＤＬＰマネージャ１０４は次に、精密な進行中の検出のため、機密データのフィンガープリントを採る。一実施形態では、フィンガープリンティングプロセスは、テキスト及びデータにアクセスして抽出し、正規化し、非可逆ハッシュを使用して保護することを含む。ファイル又は他のデータをスキャンするとき、そのファイル又はそのファイルの内容のフィンガープリント（例えば、ハッシュ）を生成し、それを記憶されたフィンガープリントと比較する。照合が見られた場合、スキャンしたファイルは機密データを含むものと識別される。
【００３６】
一実施形態では、ＤＬＰポリシー３０３８はベクターマシン学習（ＶＭＬ）プロファイルを含む。ベクターマシン学習は、機密の非構造化データを保護するのに使用されてもよい。ＶＭＬの場合、一連の機密データ及び一連の非機密データを含む訓練データセットがＤＬＰマネージャ１０４に対して提供される。ＤＬＰマネージャ１０４は、ベクターマシン学習を使用して訓練データセットを分析して分類モデル及び特徴セットを生成し、それらが訓練データセットと共にＶＭセキュリティプロファイル３０６に追加される。分類モデルは、境界特徴を表すサポートベクターのマップを含む、データ分類のための統計モデルである。特徴セットは、訓練データセットから抽出した複数の特徴（例えば、単語）を含む、リスト又はテーブルなどのデータ構造である。ＤＬＰマネージャ１０４は、プロファイル３０６を処理し、未分類データを入力して、機密又は非機密としてデータを分類する（あるいは、個人データ又は法人データとしてデータを分類する）ように構成される。
【００３７】
ＤＬＰマネージャ１０４は、検出されるＶＭ毎にデフォルトポリシーを作成してもよく、又は仮想マシンのロールに応じてＶＭプロファイル３０６をカスタマイズしてもよい。それに加えて、ＤＬＰマネージャ１０４は、ＶＭ上にログを記録する様々なユーザ、他のＤＬＰマネージャ１０４、又はハイパーバイザセキュリティデバイスに対して、カスタマイズされたＶＭプロファイル３０６を受信するように構成される。
【００３８】
ＤＬＰポリシー３０８はＤＬＰマネージャ１０４に提供され、それが次に内容のモニタリングを行って、ＶＭ  １０２全体のポリシー違反を検出する。別の実施形態では、ＤＬＰマネージャ１０４は、特定のＶＭ  １０２及びＤＬＰコンポーネント１０８と関連付けられた、ＶＭプロファイル３０６（例えば、ＤＬＰ構成）を通信するように構成される。ＤＬＰコンポーネント１０８は、ＤＬＰポリシーが宛先デバイスのモニタリングを要求しているかを判断するように構成され、宛先デバイスは、様々なプロトコル（例えば、簡易メール転送プロトコル（ＳＭＴＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、ファイル転送プロトコル（ＦＴＰ）、ＡＯＬインスタントメッセージング（ＡＩＭ）、ＩＣＱ、シングルオブジェクトアクセスプロトコル（ＳＯＡＰ）、ＳＱＬネット、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、イーサネット（登録商標）、８０２．１１など）を使用して移送される発信メッセージ又はウェブ要求などの実行中データを含んでもよい。宛先デバイスがモニタリングを要求しているとＤＬＰコンポーネント１０８が識別した場合、ＤＬＰコンポーネント１０８はＤＬＰマネージャ１０４に通知を送信する。ＤＬＰマネージャ１０４は、ファイルと関連付けられたデータを分析し、データがポリシー３０８に違反している場合、内容、関連するＤＬＰポリシー３０８、及び違反と関連付けられたユーザを識別する記録を作成する。それに加えて、ＤＬＰマネージャ１０４は、応答規則３１０が要求する他のアクションを遠隔で行うように構成されてもよい。別の実施形態では、ＤＬＰコンポーネント１０８は、応答規則３１０が要求するこれらのアクションを局所的に行う。
【００３９】
ＤＬＰコンポーネント１０８はまた、一実施形態では、実際のソースデータの代わりにソースデータのフィンガープリントを分析し、秘密情報が暴露されるのを回避し、内容のより効率的な探索を容易にするように構成されてもよい。フィンガープリントは、ソースデータのハッシュ、暗号化されたソースデータ、又はソースデータを一意に識別する他の任意の署名を含んでもよい。ＤＬＰコンポーネント１０８は次に、ＤＬＰポリシー違反（１つ以上）をＤＬＰマネージャ１０４に報告してもよく、ならびに／あるいは他の必要なアクション（例えば、関連する内容のブロック又は経路変更）を行ってもよい。あるいは、ＤＬＰマネージャ１０４は、データのモニタリング及び分析を遠隔で行うように構成されてもよい。
【００４０】
ＳＶＭのＤＬＰマネージャ１０４は、非承認アプリケーション又はデバイスを使用するユーザを識別する。アプリケーション又はデバイス制御ポリシーが存在しない場合、ＤＬＰマネージャ１０４は、アプリケーションがアクセスしているファイルが機密情報を含むか否かを識別することによって、ＤＬＰポリシー及び応答規則を適用してもよい。機密データにアクセスするアプリケーションは承認されていてもされていなくてもよい。ＧＶＭのユーザが任意のファイルにアクセスすると、ＳＶＭのＤＬＰマネージャ１０４は、ファイルオープン又は作成イベントを妨害する。ＤＬＰマネージャ１０４は、ＶＭの保存された識別情報を取得して、ソースＧＶＭを決定する。ＤＬＰマネージャ１０４は、ＤＬＰカーネルドライバを使用して、プロセス又はアプリケーション、使用されているデバイス、ユーザ、及びＧＶＭにおいてアクセスされているファイルを識別する。アプリケーション又はデバイスがソース制御ポリシーを有する場合、デバイスへのアクセス及び／又はアプリケーションの実行がブロックされる。アプリケーション又はデバイス制御ポリシーが存在しない場合、ＤＬＰマネージャ１０４は、ファイルアクセスアクティビティをモニタリングするためのＤＬＰポリシーを適用し、その場合、ＳＶＭのＤＬＰマネージャ１０４がファイルデータを遠隔で読み取り、このローカルデータに対する検出を行う。データがＤＬＰポリシーに違反している場合、ＳＶＭのＤＬＰマネージャ１０４は、ＧＶＭにおける応答規則を遠隔で実行する。応答規則は、機密データに対するアクセスのブロックであることができるが、それに限定されない。
【００４１】
更なる実施形態では、動作を最適にするため、ＤＬＰマネージャ１０４は、結果をキャッシュに入れないようにｖＳｈｉｅｌｄフレームワークに要求してもよい。データが機密ではないことが分かった場合、ＤＬＰマネージャ１０４は、ファイルが修正又は名称変更されるまで同じファイルに対する更なる通知が送られないように、結果をキャッシュに入れるようにｖＳｈｉｅｌｄフレームワークに要求してもよい。キャッシュは、ＧＶＭと関連付けられたＤＬＰプロファイルの変更があるとクリアされる。
【００４２】
ユーザ通知は、上述したＧＶＭの軽量ＤＬＰ  ＵＩコンポーネント１０８を使用して、ＳＶＭのＤＬＰマネージャ１０４によってＧＶＭのユーザに対して遠隔で提示されてもよい。ＧＶＭにおける応答規則を遠隔で実行するのに加えて、ＳＶＭのＤＬＰマネージャ１０４は、ユーザ、ファイル、アプリケーション、デバイス、データ漏えいベクターに加えてＶＭのソースを含む、ポリシー違反に対するインシデントを作成する。いくつかの実施形態では、ＤＬＰマネージャ１０４がデータに対する検出を行う前に、ＤＬＰマネージャ１０４は、動作がそこから行われるＧＶＭを決定し、マシンフィルタを適用して検出を最適化するか又は検出を回避してもよい。いくつかの実施形態では、ＧＶＭのユーザがファイルにアクセスすると、ＤＬＰマネージャ１０４は、動作を行っているユーザを判断してもよく、ユーザ又はユーザグループフィルタを適用して、検出を最適化するか若しくは検出を回避してもよい。いくつかの実施形態では、ＤＬＰマネージャ１０４がファイルに対する検出を行う前に、ファイルタイプ、ファイルパス、及びサイズのフィルタを適用して、検出を最適化するか若しくは検出を回避してもよい。
【００４３】
本明細書に記載する実施形態は、サーバ及びデスクトップの仮想化環境に対する効率的なエージェントレスＤＬＰソリューションを提供する。実施形態はまた、移動環境で使用されてもよい。動的に規定されてもよいＶＭは、ＳＶＭのＤＬＰマネージャ１０４によって自動的に保護されてもよい。サーバ上の全てのＶＭに対して単一のＤＬＰマネージャ１０４を有することで、ＤＬＰマネージャ１０４の管理が単純化されてもよく、システム性能が改善されてもよい。実施形態は、各ＶＭにおけるＤＬＰマネージャ１０４のフットプリントを低減するか、場合によっては排除することによって、システム全体の安全性を改善してもよい。
【００４４】
図４〜７は、本開示の一実施形態による方法、システム、及びコンピュータプログラム製品のフローチャート及び／又はブロック図である。フローチャート及び／又はブロック図の各ブロック、並びにフローチャート及び／又はブロック図におけるブロックの組み合わせは、処理ロジックによって実装されてもよいことが理解されるであろう。処理ロジックは、ハードウェア（回路部品、専用ロジックなど）、ソフトウェア（汎用コンピュータシステム若しくは専用マシン上で走るものなど）、又は両方の組み合わせを含んでもよい。これらのソフトウェア命令、又は他のコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供されて、処理ロジックを作成してもよく、それによって、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行する命令は、フローチャート及び／又はブロック図の１つ以上のブロックで指定されている機能を実装する。
【００４５】
図４は、本発明の実施形態においてＤＬＰマネージャ１０４を実装するための方法４００の一実施形態のフローチャートを示す。方法が開始され、処理ロジックは、ブロック４０２で、仮想マシンの起動イベントを検出する。一実施形態では、処理ロジックは、ハイパーバイザからの計算資源を要求している仮想マシンを識別することによって、起動イベントを獲得するように構成される。処理ロジックは次に、ブロック４０４で、起動要求を妨害し、ブロック４０６で、仮想マシンを識別する。処理ロジックは、仮想マシンの特性を分析することによって、仮想マシンを識別するように構成される。これらの特性としては、仮想マシンが要求する資源、仮想マシンのオペレーティングシステムのタイプ、仮想マシンの動作のロール（例えば、ファイルサーバ、電子メールサーバ、データベースサーバなど）、及び／又はＶＭＭで指定されるような仮想マシンの名称若しくは仮想マシンが属する事業単位の名称を挙げることができるが、それらに限定されない。
【００４６】
ブロック４０８で、処理ロジックは、仮想マシン情報をリポジトリ３０４に保存する。一実施形態では、処理ロジックは、仮想マシン情報が仮想マシンプロファイル３０６として既に存在するかを判断する。仮想マシンプロファイル３０６が識別された仮想マシンに関して存在しない場合、処理ロジックは、デフォルトソース制御ポリシー、ＤＬＰポリシー３０８、及び応答規則３１０と共に、新しい仮想マシンプロファイル３０６を作成するように構成される。別の実施形態では、処理ロジックは、例えば図２のハイパーバイザセキュリティドライバ２０２から、仮想マシンプロファイル３０６を取得する。
【００４７】
ブロック４１０で、処理ロジックは、ＤＬＰコンポーネントを識別された仮想マシンに遠隔でインストールする。処理ロジックは、ＤＬＰコンポーネントをプッシュし自動的にインストールすることによって、ＤＬＰコンポーネントをインストールするように構成される。ブロック４１２で、処理ロジックは任意に、ＤＬＰポリシー違反をユーザに通知するように構成されたユーザインターフェースをインストールする。一実施形態では、ユーザインターフェースは、視覚又は聴覚メッセージをユーザに提示する。あるいは、ユーザインターフェースはメッセージ（例えば、電子メール）をユーザに送信してもよい。方法４００はこれで終了する。
【００４８】
図５は、本発明の実施形態においてファイルシステムイベントをモニタリングするための方法５００のフローチャートを示す。方法が開始され、処理ロジックは、ブロック５０２で、ゲスト仮想マシンの「ファイルクローズ」イベントを検出する。一実施形態では、処理ロジックは、例えば、仮想マシン１０２のＤＬＰコンポーネント１０８から、ユーザがファイルを閉じているか又は保存していることを示す通知を受信する。処理ロジックは、ブロック５０４で、ファイルクローズイベントを開始したＶＭを照合する、ＶＭ識別情報プロファイル３０６をリポジトリ３０４（図３を参照）から取得する。
【００４９】
ブロック５０６で、処理ロジックは、ファイルクローズ又は保存イベントと関連付けられた記憶対象を識別する。例えば、処理ロジックは、記憶対象が、取外し可能なデバイス、取外し可能な媒体、ネットワーク共有などであるかを判断するように構成される。ＤＬＰポリシー３０８が記憶対象デバイスのモニタリングを要求している場合、処理ロジックは、ブロック５１０で、ユーザが対象デバイスに記憶することを要求しているデータを分析するように構成される。ＤＬＰポリシー３０８が記憶対象デバイスのモニタリングを要求していない場合、処理ロジックは、ブロック５１２で、データ転送を可能にする。
【００５０】
ブロック５１４で、処理ロジックは、分析されたデータがＤＬＰポリシー３０８に違反しているかを判断する。例えば、ＤＬＰポリシー３０８の規則は、様々なファイル、メッセージなどを探索するための、１つ以上のキーワード（例えば、「秘密」、「機密」、「ストック」、特定の疾患の名称（例えば、「がん」、「ＨＩＶ」など）など）を指定してもよい。キーワードに加えて、ＤＬＰポリシー３０８は、モニタリングされている情報内容における秘密データの存在を検出するための他の規則を含んでもよい。例えば、金融機関では、ＤＬＰポリシー３０８は、メッセージが「秘密」という単語を含む場合に、メッセージの更なる探索を行って、メッセージが顧客データ（例えば、社会保障番号、名、姓など）又は他の機密情報（例えば、財務報告、ソースコードなど）を含むか否かを判断することを指定してもよい。分析されたデータがＤＬＰポリシー３０８に違反していない場合、処理ロジックは、ブロック５１２で、データ転送を可能にする。
【００５１】
しかしながら、分析されたデータがＤＬＰポリシーに違反している場合、処理ロジックは、ブロック５１６で、ＤＬＰポリシー３０８と関連付けられた応答規則（１つ以上）３１０を実行する。例えば、応答規則３１０は、秘密データを含むメッセージのブロック、経路変更、報告、隔離、暗号化などを要求してもよい。処理ロジックは、ブロック５１８で、ポリシー違反、及びポリシー違反に応答して取られるアクションを報告する。更なる実施形態では、処理ロジックは、ユーザがＤＬＰポリシーに違反していたことをユーザに示すように、ＤＬＰユーザインターフェースに命令する。例えば、ＤＬＰユーザインターフェースは、メッセージをスクリーン上でユーザに提示する、ならびに／あるいは電子メールを介してメッセージをユーザに送信するように構成されてもよい。方法５００はこれで終了する。
【００５２】
図６は、本発明の実施形態においてファイルシステムイベントをモニタリングする別の実施形態の方法６００のフローチャートを示す。方法６００が開始され、処理ロジックは、ブロック６０２で、ゲスト仮想マシンにおけるファイル作成又はファイルオープンイベントを検出する。処理ロジックは、一実施形態では、仮想マシンにおけるファイルシステムイベントを遠隔でモニタリングするように構成される。あるいは、処理ロジックは、ＤＬＰコンポーネント１０８からの通知を受信するように構成される。
【００５３】
ブロック６０４で、処理ロジックは、ファイルシステムイベントと関連付けられた仮想マシンの仮想マシン識別情報を取得する。処理ロジックは、上述したように、仮想マシンの特性を分析することによって、仮想マシンを一意に識別するように構成される。特性は、オペレーティングシステムのタイプ、仮想マシンと関連付けられた仮想デバイスのタイプ、及び仮想マシンのロールを含んでもよいが、それらに限定されない。処理ロジックはまた、識別された仮想マシンと関連付けられたＤＬＰプロファイルを、リポジトリ３０４から取得するように構成される。
【００５４】
ブロック６０６で、処理ロジックは、ファイルシステムイベントのソースデバイスを識別する。例えば、処理ロジックは、ユーザがインターネットから、付属の記憶デバイスから、ローカル記憶ドライブから、ネットワーク付属の記憶デバイスからなど、既存のファイルを開こうとしているかを識別する。処理ロジックは次に、ブロック６０８で、ＤＬＰプロファイル３０８が識別されたソースデバイスのモニタリングを要求しているかを判断する。ＤＬＰプロファイル３０８がソースデバイスのモニタリングを要求していない場合、処理ロジックは、ブロック６１０で、ファイルを開くことを可能にする。
【００５５】
しかしながら、ＤＬＰプロファイル３０８がソースデバイスのモニタリングを要求している場合、処理ロジックは、ブロック６１２で、開かれるファイルのデータのコピーを作る。一実施形態では、処理ロジックは、図１のセキュリティＶＭ  １０１の専用記憶領域にあるデータのコピーを作ってもよい。あるいは、処理ロジックは、ゲストＶＭ  １０２の専用記憶領域にあるデータのコピーを作ってもよい。処理ロジックは、ブロック６１６で、ユーザがファイルを閉じているか又は保存していることを示す、仮想マシン１０２のＤＬＰコンポーネント１０８からの通知を受信すると、修正されたファイルがＤＬＰポリシー３０８に違反しているか否かを判断する。例えば、処理ロジックは、ＤＬＰポリシーに違反している単語及び媒体オブジェクト（例えば、画像、音声オブジェクト、及び映像オブジェクト）の内容を分析するように構成される。分析されたデータがＤＬＰポリシー３０８に違反していないと処理ロジックが判断した場合、処理ロジックは、ブロック６１０で、データ転送を可能にする。分析されたデータがＤＬＰポリシーに違反している場合、処理ロジックは、ブロック６１８で、ＤＬＰポリシー３０８と関連付けられた応答規則（１つ以上）３１０を実行し、ファイルのコピーをその元の位置に再記憶する。処理ロジックは、ブロック６１９で、ファイルのコピーを削除し、方法６００はこれで終了する。
【００５６】
図７は、本発明の実施形態においてファイルシステムイベントをモニタリングする別の実施形態の方法６００のフローチャートを示す。方法７００が開始され、処理ロジックは、ブロック７０２で、ゲスト仮想マシンにおけるファイル作成又はファイルオープンイベントを検出する。処理ロジックは、一実施形態では、仮想マシンにおけるファイルシステムイベントを遠隔でモニタリングするように構成される。あるいは、処理ロジックは、ＤＬＰコンポーネント１０８からの通知を受信するように構成される。一実施形態では、ブロック７０２の前に、処理ロジックは、ＶＭ起動イベントなど、他のＧＶＭアクティビティイベント及びファイルシステムアクティビティイベントを受信してもよい。ＧＶＭの電源がオンにされると、ＳＶＭのＤＬＰマネージャ１０４は、ＶＭ起動イベントを妨害し、新しいＶＭの識別情報を識別し、この情報をＶＭの文脈と共に保存し、任意に、ＤＬＰ  ＵＩコンポーネント及びＤＬＰカーネルドライバの２つの軽量コンポーネントをプッシュしてＧＶＭに入れる。本明細書に記載するように、ＤＬＰ  ＵＩコンポーネントは、ユーザを教育し、ユーザの正当性理由を収集するために使用される。ＤＬＰカーネルドライバを使用して、ファイルシステムアクティビティイベントを妨害すると共に、ＧＶＭによる他のアクティビティをモニタリングすることができる。それに加えて、ＤＬＰカーネルドライバは、後述するようにファイルにアクセスするアプリケーション又はデバイスを識別するのを助けることができる。
【００５７】
ブロック７０４で、処理ロジックは、ファイルオープン又は作成イベントと関連付けられた仮想マシンの仮想マシン識別情報を取得する。処理ロジックは、上述したように、仮想マシンの特性を分析することによって、仮想マシンを一意に識別するように構成される。特性は、オペレーティングシステムのタイプ、仮想マシンと関連付けられた仮想デバイスのタイプ、及び仮想マシンのロールを含んでもよいが、それらに限定されない。処理ロジックはまた、識別された仮想マシンと関連付けられたＤＬＰプロファイルを、リポジトリ３０４から取得するように構成される。
【００５８】
ブロック７０６で、処理ロジックは、ファイルシステムイベントのファイルオープン又は作成イベントのソースを識別する。ソースは、アプリケーション、デバイスなどであってもよい。例えば、処理ロジックは、ユーザが、アプリケーション制御ポリシー又はデバイス制御ポリシーに対して、非承認アプリケーション又は非承認デバイスを使用していることを識別する。例えば、処理ロジックは、ユーザが非承認アプリケーション又は非承認デバイスを使用しているとき、アプリケーション又はデバイス制御ポリシーを遠隔で適用することができる。アプリケーション又はデバイス制御ポリシーがない場合、処理ロジックは、アクセスされているファイルが機密情報を含むか否かを識別することによって、ＤＬＰポリシー及び応答規則を適用することができる。処理ロジックはまた、アプリケーションのタイプ、デバイスのタイプ、又はファイルシステムアクティビティイベントと関連付けられた他の情報を識別してもよい。
【００５９】
ブロック７０８で、処理ロジックは、識別されたソースにアクセスを制限するソース制御ポリシーが存在するか否かを判断して、ＤＬＰポリシーがソースのモニタリングを要求しているかを判断する。ブロック７０８で、ソース制御ポリシーが存在すると処理ロジックが判断した場合、処理ロジックは、ソースが承認ソースであるかを判断する（ブロック７１０）。ブロック７１０で、ソースが承認ソースであると処理ロジックが判断した場合、処理ロジックは、ブロック７２０で、データ転送を可能にすることができる。ソースが承認されていない場合、処理ロジックはデータ転送をブロックし（ブロック７１２）、方法７００が終了する。ブロック７０８でソース制御ポリシーが存在しない場合、処理ロジックは、後述するようにソースをモニタリングする。例えば、処理ロジックは、ＤＬＰプロファイル３０８がモニタリングを要求しているかを判断することができる。
【００６０】
ブロック７１４で、処理ロジックは、開かれるべきファイルにデータのコピーを作る。一実施形態では、処理ロジックは、図１のセキュリティＶＭ  １０１の専用記憶領域にあるデータのコピーを作ってもよい。あるいは、処理ロジックは、ゲストＶＭ  １０２の専用記憶領域にあるデータのコピーを作ってもよい。処理ロジックは、ブロック７１６で、ユーザがファイルを閉じているか又は保存していることを示す通知を仮想マシン１０２のＤＬＰコンポーネント１０８から取得すると、修正されたファイルがＤＬＰポリシー３０８に違反しているか否かを判断する（ブロック７１８）。例えば、処理ロジックは、ＤＬＰポリシーに違反している単語及び媒体オブジェクト（例えば、画像、音声オブジェクト、及び映像オブジェクト）の内容を分析するように構成される。ブロック７１８で、分析されたデータがＤＬＰポリシー３０８に違反していないと処理ロジックが判断した場合、処理ロジックは、ブロック７２０で、データ転送を可能にする。ブロック７１８で、分析されたデータがＤＬＰポリシーに違反している場合、処理ロジックは、ブロック７２２で、ＤＬＰポリシー３０８と関連付けられた応答規則（１つ以上）３１０を実行し、ファイルのコピーをその元の位置に再記憶する。処理ロジックは、ブロック７２４で、ファイルのコピーを削除し、方法７００が終了する。
【００６１】
別の実施形態では、処理ロジックは、専用ＳＶＭによって、ＧＶＭがファイルにアクセスするファイルオープン又は作成イベントをモニタリングする。処理ロジックは、ファイルオープン又は作成イベントと関連付けられたソースを識別するが、その場合のソースは、ＧＶＭが使用しているアプリケーション又はデバイスのうちの少なくとも１つである。処理ロジックは、ファイルオープン又は作成イベントと関連付けられたソースがソース制御ポリシー毎の非承認ソースであるとき、ＧＶＭと関連付けられた第１の応答規則を実施する。処理ロジックは、ファイルがＤＬＰポリシーに違反しているとき、ＧＶＭと関連付けられた第２の応答規則を実施する。
【００６２】
更なる実施形態では、処理ロジックは、識別されたソースにアクセスを制限するソース制御ポリシーが存在しているか否かを判断して、ＤＬＰポリシーがソースのモニタリングを要求しているかを判断する。処理ロジックは、ファイルと関連付けられたファイルシステムイベントに関してソースをモニタリングして、ファイルがＤＬＰポリシーに違反しているかを判断する。
【００６３】
更なる実施形態では、処理ロジックは、ファイルオープンイベントと関連付けられたファイルクローズ及び保存イベントを識別し、ファイルクローズ又は保存イベントと関連付けられたデータを分析して、データがＤＬＰポリシーに違反しているかを判断し、データがＤＬＰポリシーに違反している場合、ＤＬＰポリシーと関連付けられた第２の応答規則を実行することによって、モニタリングを行う。更なる実施形態では、処理ロジックは、データがＤＬＰポリシーに違反しているとき、ＤＬＰポリシー違反をログに記録する。
【００６４】
別の実施形態では、処理ロジックは、ＤＬＰポリシーがソースのモニタリングを要求しているかを判断する。処理ロジックは、データがＤＬＰポリシーに違反している場合に、ファイルのコピーを記憶し、クローズ又は保存イベントにおいてファイルのコピーを再記憶する。
【００６５】
別の実施形態では、処理ロジックは、ＤＬＰコンポーネントを識別された仮想マシンに遠隔でインストールする。処理ロジックは、ＤＬＰコンポーネントをプッシュし自動的にインストールすることによって、ＤＬＰコンポーネントをインストールするように構成される。処理ロジックは、任意に、ＤＬＰポリシー違反をユーザに通知するように構成されたユーザインターフェースをインストールする。一実施形態では、ユーザインターフェースは、視覚又は聴覚メッセージをユーザに提示する。
【００６６】
更なる実施形態では、処理ロジックは、プロファイルリポジトリからのＧＶＭと関連付けられたＤＬＰプロファイル、ソース制御ポリシーを含むＤＬＰプロファイル、ＤＬＰポリシー、及び第２の応答規則を取得する。別の実施形態では、ソース制御ポリシーは、アプリケーション制御ポリシー又はデバイス制御ポリシーの少なくとも１つである。処理ロジックは、ファイルオープン又は作成イベントがアプリケーション又はデバイスから始まっているか否かを判断することをソースが含むことを識別する。
【００６７】
別の実施形態では、処理ロジックは、ファイルがＤＬＰポリシーに違反していないことを判断する。処理ロジックは、ファイルがＤＬＰポリシーに違反していないときにその判断結果をキャッシュに入れる。ファイルの少なくとも１つがＤＬＰポリシーに違反しているとき、又はソースが非承認ソースであるときは、結果はキャッシュに入れられない。キャッシュは、ＧＶＭと関連付けられたＤＬＰプロファイルの変更があるとクリアされる。
【００６８】
図８は、ＤＬＰマネージャの実行を容易にするためのコンピュータシステムの一実施形態を示す図である。コンピュータシステム８００内には、本明細書で考察する方法論の任意の１つ以上を機械が行うための命令セットがある。代替実施形態では、機械は、ＬＡＮ、イントラネット、エクストラネット、又はインターネットで他の機械に接続（例えば、ネットワーク化）されてもよい。機械は、クラウドのホスト、クラウドプロバイダシステム、クラウドコントローラ、又は他の任意の機械であることができる。機械は、又はクライアント−サーバネットワーク環境におけるサーバ若しくはクライアントマシンの容量内で、又はピアツーピア（若しくは分散）ネットワーク環境におけるピアマシンとして動作することができる。機械は、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、コンソールデバイス又はセットトップボックス（ＳＴＢ）、携帯情報端末（ＰＤＡ）、携帯電話、ウェブアプライアンス、サーバ、ネットワークルータ、スイッチ若しくはブリッジ、又は機械が取るアクションを指定する命令セット（連続的若しくはその他）を実行することができる他の機械であってもよい。更に、単一の機械のみを例示しているが、「機械」という用語はまた、命令セット（若しくは複数のセット）を個別に又は一緒に実行して、本明細書で考察する方法論の任意の１つ以上を行う、任意の機械（例えば、コンピュータ）の集合体を含むものと解釈されるものとする。
【００６９】
例示のコンピュータシステム８００は、バス８３０を介して互いと通信する、処理デバイス８０２、主メモリ８０４（例えば、読出し専用メモリ（ＲＯＭ）、フラッシュメモリ、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）若しくはＤＲＡＭ（ＲＤＲＡＭ）などのダイナミックランダムアクセスメモリ（ＤＲＡＭ）など）、スタティックメモリ８０６（例えば、フラッシュメモリ、スタティックランダムアクセスメモリ（ＳＲＡＭ）など）、及び二次メモリ８１８（例えば、固定の若しくは取外し可能なコンピュータ可読記憶媒体を含んでもよい、ドライブユニットの形態のデータ記憶デバイス）を含む。
【００７０】
処理デバイス８０２は、マイクロプロセッサ、中央処理装置など、１つ以上の汎用処理デバイスを表す。より具体的には、処理デバイス８０２は、複雑命令セットコンピュータ（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピュータ（ＲＩＳＣ）マイクロプロセッサ、長大命令語（ＶＬＩＷ）マイクロプロセッサ、他の命令セットを実装したプロセッサ、又は命令セットの組み合わせを実装したプロセッサであってもよい。処理デバイス８０２はまた、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサなど、１つ以上の専用処理デバイスであってもよい。処理デバイス８０２は、本明細書で考察する動作及びステップを行うための命令８２６を実行するように構成される。
【００７１】
コンピュータシステム８００は、ネットワークインターフェースデバイス８２２を更に含んでもよい。コンピュータシステム８００はまた、グラフィックポート及びグラフィックチップセットを通してコンピュータシステムに接続された、ビデオディスプレイユニット８１０（例えば、液晶表示装置（ＬＣＤ）若しくは陰極線管（ＣＲＴ））、英数字入力デバイス８１２（例えば、キーボード）、カーソル制御デバイス８１４（例えば、マウス）、及び信号生成デバイス８２０（例えば、スピーカ）を含んでもよい。
【００７２】
二次メモリ８１８は、機械可読記憶媒体（若しくはより具体的には、コンピュータ可読記憶媒体）８２４を含んでもよく、そこに、本明細書に記載する方法論又は機能の任意の１つ以上を具体化する１つ以上の命令セット８２６が記憶される。一実施形態では、命令８２６はＤＬＰマネージャ１０４に対する命令を含む。命令８２６はまた、コンピュータシステム８００がそれらを実行する間は主メモリ８０４内及び／又は処理デバイス８０２内に、完全に若しくは少なくとも部分的に常駐してもよく、主メモリ８０４及び処理デバイス８０２はまた、機械可読記憶媒体を構築する。
【００７３】
コンピュータ可読記憶媒体８２４はまた、命令８２６を持続的に記憶するのに使用されてもよい。コンピュータ可読記憶媒体８２４は、例示的な一実施形態では、単一の媒体であるものとして示されているが、「コンピュータ可読記憶媒体」という用語は、１つ以上の命令セットを記憶する単一の媒体又は複数の媒体（例えば、集中型若しくは分散型データベース、及び／又は関連するキャッシュ及びサーバ）を含むものと解釈されるものとする。「コンピュータ可読記憶媒体」という用語はまた、機械が実行するために命令セットを記憶又は符号化することができると共に、本発明の方法論の任意の１つ以上を機械に行わせる、任意の媒体を含むものと解釈されるものとする。したがって、「コンピュータ可読記憶媒体」という用語は、固体メモリ、並びに光学及び磁気媒体を含むものと解釈されるが、それらに限定されないものとする。
【００７４】
本明細書に記載する命令８２６、コンポーネント、及び他の特徴は、ＡＳＩＣ、ＦＰＧＡ、ＤＳＰ、若しくは類似のデバイスなど、離散的なハードウェアコンポーネントとして実装するか、又はハードウェアコンポーネントの機能性に統合することができる。それに加えて、命令８２６は、ハードウェアデバイス内のファームウェア又は機能回路部品として実装することができる。更に、命令８２６は、ハードウェアデバイス及びソフトウェアコンポーネントの任意の組み合わせで実装することができる。
【００７５】
上述の説明で、多数の詳細について説明している。しかしながら、本発明はこれらの特定の詳細を伴わずに実施されてもよいことが、当業者には明白となるであろう。いくつかの例では、本発明が不明瞭になるのを回避するため、周知の構造及びデバイスについては、詳細ではなくブロック図の形態で示される。
【００７６】
以下の詳細な説明の一部は、コンピュータメモリ内のデータビットでの動作のアルゴリズム及び記号表現に関して与えられる。これらのアルゴリズム的記述及び表現は、データ処理分野の当業者が、他の当業者に対して仕事の内容を最も効果的に伝達するために使用する手段である。アルゴリズムは、ここでは、また一般に、結果に結び付く自己矛盾のない一連のステップであるものと想到される。ステップは、物理量の物理的操作を要するものである。必須ではないものの、通常、これらの量は、記憶し、転送し、組み合わせ、比較し、また別の形で操作することができる、電気信号又は磁気信号の形態をとる。これらの信号を、ビット、値、要素、記号、文字、項、数などと称することが、主に一般的な用法の理由から、時には好都合であることが判明している。
【００７７】
しかしながら、これら及び類似の用語は全て、適切な物理量と関連付けられるべきものであり、これらの量に適用される好都合なラベルにすぎないことに留意すべきである。以下の考察から明白であるような別の形で具体的に記述されない限り、本明細書全体を通して、「提供する」、「生成する」、「インストールする」、「モニタリングする」、「実施する」、「受信する」、「ログを取る」、「妨害する」などの用語を利用する考察は、コンピュータシステムのレジスタ及びメモリ内の物理（例えば、電子）量として表されるデータを操作し、コンピュータシステムのメモリ若しくはレジスタ又は他のかかる情報記憶、伝達、若しくは表示デバイス内の、物理量として同様に表される他のデータへと変換する、コンピュータシステム又は類似の電子計算デバイスのアクション及びプロセスを指すものと認識される。
【００７８】
上述の説明は限定ではなく例示を意図したものであることを理解されたい。上述の説明を読み理解することで、他の多くの実施形態が当業者には明白となるであろう。特定の例示的実施形態を参照して本発明について記載してきたが、本発明は記載した実施形態に限定されず、添付の請求項の趣旨及び範囲内の修正及び変更と共に実施できることが認識されるであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきである。したがって、本発明の範囲は、添付の請求項が享受する等価物の全範囲と共に、かかる請求項を参照して決定されるべきである。
【図１】
0006356158.tif 000002
【図２】
0006356158.tif 000003
【図３】
0006356158.tif 000004
【図４】
0006356158.tif 000005
【図５】
0006356158.tif 000006
【図６】
0006356158.tif 000007
【図７】
0006356158.tif 000008
【図８】
0006356158.tif 000009