(57)【要約】  疑わしいファイルの実行およびアクセスのうち少なくとも一方をサンドボックス仮想マシン内で行うことで、処理システムのセキュリティ向上を達成することができる。【選択図】なし
2008500653.tif 000002
【特許請求の範囲】
【請求項１】
処理システムのセキュリティを向上させる方法であって、
疑わしいファイルの実行およびアクセスのうち少なくとも一方をサンドボックス仮想マシン内で行う工程を含む、方法。
【請求項２】
前記疑わしいファイルの実行およびアクセスのうち少なくとも一方の実行中に実行が許可されている行動を定義しているサンドボックス規定に従い、前記疑わしいファイルの実行およびアクセスのうち少なくとも一方を行う工程をさらに含む、請求項１に記載の方法。
【請求項３】
前記サンドボックス規定は、全てサンドボックス仮想マシン内から始められる、電子メールメッセージの送信、前記処理システム上のファイルに対する削除あるいは修正、およびネットワークインタフェースを通じたメッセージ送信、のうち少なくとも一つを阻止することを含む、請求項２に記載の方法。
【請求項４】
疑わしいとマークされるべきファイルを特定する工程をさらに含む、請求項１に記載の方法。
【請求項５】
疑わしいとマークされるべきファイルを特定する工程は、前記ファイルをファイル特定規定に従って評価することを含む、請求項４に記載の方法。
【請求項６】
前記疑わしいとマークされるべきファイルを特定する工程は、前記ファイルを仮想マシンモニタで特定することを含む、請求項５に記載の方法。
【請求項７】
前記ファイルが疑わしいことを特定するために、前記ファイルをマークする工程をさらに含む、請求項４に記載の方法。
【請求項８】
前記疑わしいファイルの実行およびアクセスのうち少なくとも一方を行うためにサンドボックス仮想マシンを作成する工程をさらに含む、請求項１に記載の方法。
【請求項９】
前記処理システム内の一以上の疑わしいファイルの実行およびアクセスのうち少なくとも一方の処理を行うべくサンドボックス仮想マシンを作成する方法をさらに含む、請求項１に記載の方法。
【請求項１０】
ユーザ仮想マシンから前記サンドボックス仮想マシンを分岐（フォーキング）させることにより前記サンドボックス仮想マシンを作成する工程をさらに含む、請求項１に記載の方法。
【請求項１１】
疑わしいファイルの実行およびアクセスのうち少なくとも一方を監視することで前記ファイルが悪意あるものではないと示唆された場合、該疑わしいファイルのマークを変更する工程をさらに含む、請求項７に記載の方法。
【請求項１２】
ユーザ仮想マシンの中から疑わしいファイルのマークを「疑わしい」から「疑わしくない」へ変更する工程をさらに含む、請求項７に記載の方法。
【請求項１３】
ユーザ仮想マシン内で前記ファイルの実行およびアクセスのうち少なくとも一方を行おうとする前に、ファイルが疑わしいとマークされているかどうかを判断する工程をさらに含む、請求項１に記載の方法。
【請求項１４】
製品であって、複数のマシン読み取り可能な命令を有す記憶媒体を含み、前記命令をプロセッサが実行した場合、前記命令は、疑わしいファイルの実行およびアクセスのうち少なくとも一方をサンドボックス仮想マシン内で行うことにより処理システムのセキュリティの向上を提供する、製品。
【請求項１５】
前記疑わしいファイルの実行およびアクセスのうち少なくとも一方の実行中に実行が許可されている行動を定義しているサンドボックス規定に従い、前記疑わしいファイルの実行およびアクセスのうち少なくとも一方を行う命令をさらに含む、請求項１４に記載の製品。
【請求項１６】
前記サンドボックス規定は、全てサンドボックス仮想マシン内から始められる、電子メールメッセージの送信、前記処理システム上のファイルに対する削除あるいは修正、およびネットワークインタフェースを通じたメッセージ送信、のうち少なくとも一つを阻止することをさらに含む、請求項１５に記載の製品。
【請求項１７】
疑わしいとマークされるべきファイルを特定する命令をさらに含む、請求項１４に記載の製品。
【請求項１８】
疑わしいとマークされるべきファイルを特定する命令は、前記ファイルをファイル特定規定に従って評価する命令を含む、請求項１７に記載の製品。
【請求項１９】
前記疑わしいとマークされるべきファイルを特定する命令は、前記ファイルを仮想マシンモニタで特定する命令を含む、請求項１８に記載の製品。
【請求項２０】
前記ファイルが疑わしいことを特定するために、前記ファイルをマークする命令をさらに含む、請求項１７に記載の製品。
【請求項２１】
前記疑わしいファイルの実行およびアクセスのうち少なくとも一方を行うためにサンドボックス仮想マシンを作成する命令をさらに含む、請求項１５に記載の製品。
【請求項２２】
前記処理システム内の全ての疑わしいファイルの実行およびアクセスのうち少なくとも一方の処理を行うべくサンドボックス仮想マシンを作成する命令をさらに含む、請求項１５に記載の製品。
【請求項２３】
ユーザ仮想マシンから前記サンドボックス仮想マシンを分岐させることにより前記サンドボックス仮想マシンを作成する命令をさらに含む、請求項１５に記載の製品。
【請求項２４】
疑わしいファイルの実行およびアクセスのうち少なくとも一方を監視することで前記ファイルが悪意あるものではないと示唆された場合、該疑わしいファイルのマークを変更する命令をさらに含む、請求項２０に記載の製品。
【請求項２５】
ユーザ仮想マシンの中から疑わしいファイルのマークを「疑わしい」から「疑わしくない」へ変更する命令をさらに含む、請求項２０に記載の製品。
【請求項２６】
ユーザ仮想マシン内で前記ファイルを実行およびアクセスのうち少なくとも一方を行おうとする前に、ファイルが疑わしいとマークされているかどうかを判断する命令をさらに含む、請求項１４に記載の製品。
【請求項２７】
処理システムであって、
疑わしいファイルを特定し、マークする仮想マシンモニタと、
疑わしいファイルの実行およびアクセスのうち少なくとも一方を行うサンドボックス仮想マシンとを含む、処理システム。
【請求項２８】
前記サンドボックス仮想マシンは、前記疑わしいファイルの実行およびアクセスのうち少なくとも一方の実行中に実行が許可されている行動を定義しているサンドボックス規定に従い、前記疑わしいファイルの実行およびアクセスのうち少なくとも一方を行うのに適合した、請求項２７に記載の処理システム。
【請求項２９】
前記サンドボックス規定は、どちらもサンドボックス仮想マシン内から始められる、前記疑わしいファイルが添付として付されている電子メールメッセージの送信、および前記処理システム上のファイルの削除のうち少なくとも一つを阻止することを含む、請求項２８に記載の処理システム。
【請求項３０】
前記仮想マシンモニタは、ファイルをファイル特定規定に従って評価することで、疑わしいとマークされるべきファイルを特定する、請求項２７に記載の処理システム。
【請求項３１】
前記仮想マシンモニタは、疑わしいファイルの実行およびアクセスのうち少なくとも一方をサンドボックス仮想マシンにより監視することで前記ファイルが悪意あるものではないと示唆された場合、該疑わしいファイルのマークを変更する、請求項２７に記載の処理システム。
【請求項３２】
処理システムであって、
疑わしいファイルの実行およびアクセスのうち少なくとも一方を行うサンドボックス仮想マシンと、
疑わしいファイルの特定およびマークを行い、前記疑わしいファイルの実行およびアクセスのうち少なくとも一方の実行中に実行が許可されている行動を定義しているサンドボックス規定を執行する規定執行仮想マシンとを含む、処理システム。
【請求項３３】
前記サンドボックス規定は、どちらもサンドボックス仮想マシン内から始められる、前記疑わしいファイルが添付として付されている電子メールメッセージの送信、および前記処理システム上のファイルの削除のうち少なくとも一つを前記規定執行仮想マシンにより阻止することを含む、請求項３２に記載の処理システム。
【請求項３４】
前記規定執行仮想マシンは、ファイルをファイル特定規定に従って評価することで、疑わしいとマークされるべきファイルを特定する、請求項３２に記載の処理システム。
【請求項３５】
前記規定執行仮想マシンは、疑わしいファイルの実行およびアクセスのうち少なくとも一方をサンドボックス仮想マシンにより監視することで前記ファイルが悪意あるものではないと示唆された場合、該疑わしいファイルのマークを変更する、請求項３２に記載の処理システム。
【請求項３６】
処理システムのセキュリティを向上させる方法であって、
疑わしいとマークされるべきファイルを特定する工程と、
前記特定されたファイルをマークする工程と、
ユーザ仮想マシンからの、ファイルの実行およびアクセスのうち少なくとも一方の実行要求を受け付ける工程と、
前記ファイルが疑わしいとマークされていない場合、前記ファイルの実行およびアクセスのうち少なくとも一方を前記ユーザ仮想マシン内で行う工程と、
前記ファイルが疑わしいとマークされている場合、サンドボックス仮想マシンを作成して、前記サンドボックス仮想マシン内で前記ファイルの実行およびアクセスのうち少なくとも一方を規定に従って行う工程とを含む、方法。
【請求項３７】
前記規定は、どちらもサンドボックス仮想マシン内から始められる、前記疑わしいファイルが添付として付されている電子メールメッセージの送信、および前記処理システム上のファイルの削除のうち少なくとも一つを阻止することを含む、請求項３６に記載の方法。
【請求項３８】
疑わしいとマークされるべきファイルを特定する工程は、前記ファイルをファイル特定規定に従って評価することを含む、請求項３６に記載の方法。
【請求項３９】
前記疑わしいとマークされるべきファイルを特定する工程は、前記ファイルを仮想マシンモニタで特定することを含む、請求項３８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は大まかにコンピュータセキュリティに関しており、特に、仮想化技術を使用したコンピュータプラットフォームの安全性向上に関している。
【背景技術】
【０００２】
コンピュータウィルスはコンピュータユーザにとって共通の悩みである。典型的な攻撃法の一つが、疑いを持たないユーザのコンピュータに対して、ファイル添付を含む電子メールメッセージ（Ｅメール）を送りつける方法である。ファイル添付には悪意のある攻撃コードが含まれており、Ｅメールにユーザがファイル添付を開くようなきっかけを含ませていたりする。ユーザがファイル添付をクリックすると、該ファイルに埋め込まれている攻撃コードが実行される。攻撃コードはアドレス帳にアクセスして該ファイル添付をＥメールで該アドレス帳にあるアドレスに送りつける。攻撃コードはその後ユーザのコンピュータのファイルの変更を試みたり、また他のファイルを入手して攻撃者の許にメール送信することを行ったりする。
【０００３】
このような攻撃の伝播は急速である。ひとたびある疑いを持たないユーザがファイル添付を実行してしまうと、ウィルスは急速に他の疑いを持たないユーザに広がり、彼らがまたこの問題を連鎖させる。このようなウィルスはコンピュータネットワークを壊滅させ、ネットワーク操作者、企業、そしてユーザは何百万ドルという損害を被ることになることが知られている。
【０００４】
影響を受けているコンピュータからウィルスを検出したり駆除する技術は現存する。しかし、このような技術はしばしばウィルス検出後に使用されることとなり、多くのコンピュータが感染してしまっている。コンピュータウィルスその他の悪意あるコードの伝播を遅らせ、ウィルス検出者に損害が広がる前にウィルス検出を行わせるような、新たな方法が望まれている。
【０００５】
このような攻撃を検出・遅延させる能力の向上とともに、同様に望まれているのはユーザのシステムへの損害およびユーザのデータへのアクセスの制限、あるいは阻止である。ユーザが疑いあるファイルを決して実行しないような理想的世界は存在し得ないため、実際的な解決法としてはこれを踏まえて、プログラムがユーザのシステムに損害を加えたり、ユーザのデータへアクセスすることを阻止、あるいは制限することである。
【図面の簡単な説明】
【０００６】
本発明の特徴および利点が以下に記載する本発明の詳細な説明により明らかになろう、以下において、
【０００７】
【図１】本発明の一実施の形態が操作可能な、仮想マシン環境の一実施の形態を図示する。
【０００８】
【図２】本発明の一実施の形態による、サンドボックス仮想マシンと相互作用するユーザ仮想マシンを示す図である。
【０００９】
【図３】本発明の一実施の形態による、サンドボックス仮想マシンの利用例を図示したフロー図である。
【００１０】
【図４】本発明の一実施の形態による、仮想マシン環境を図示する図である。
【発明を実施するための最良の形態】
【００１１】
本発明の一実施の形態は、サンドボックス法を利用して、コンピュータプラットフォームの安全性を向上させる方法である。昨今の仮想化の進歩により、コンピューティング・プラットフォームは、計算環境の保護された多数の仮想マシンを実行でき、一つの環境を実行しても他の環境と干渉しないようになっている。本発明の実施の形態は仮想化を使用して、コンピューティング・プラットフォームの残りの部分とは隔離されたサンドボックス仮想マシンを作り出す。サンドボックスは疑わしいファイルを開いたり、疑わしいアプリケーションプログラムを実行して、もしもその疑わしいファイルやアプリケーションプログラムに攻撃コードが含まれていた場合にも、攻撃がサンドボックスに内包されるようにする。攻撃コードはその後所定の規定によって取り扱われることになる。疑わしいファイルをサンドボックス内のみでアクセスすることにより、攻撃コードのさらなる伝播を減らすことができ、攻撃をより簡単に検出することができる。
【００１２】
本明細書で使用される、本発明の「一つの実施の形態」あるいは「一実施の形態」という参照は、該実施の形態に関連する特定の特徴、構造、あるいは特性が本発明の少なくとも一つの実施の形態に含まれている、ということを意味する。従って、「一つの実施の形態においては」や「一つの実施の形態によると」などの言い回しが本明細書の随所に現れるが、これらは必ずしも全てが同一の実施の形態のことを意味しているとは限らない。
【００１３】
詳細な説明の幾つかの箇所は、コンピュータシステムのレジスタあるいはメモリ内のデータビット操作のアルゴリズムおよび象徴的表現の観点から提示されている。これらアルゴリズムの記載や表現は、データプロセッシング技術の当業者が他の当業者に彼ら自身の仕事の実質を最も効果的に伝えるために使用される手段である。ここにおいて、および一般的に、アルゴリズムは望ましい結果につながる一連の首尾一貫した操作と考えられる。操作は物理的性質の物理的操作を要求するものである。通常、しかし必然的にではないが、これら性質は、記憶、伝達、合成、比較、さもなくば操作が可能な、電気あるいは電磁信号の形を取る。時として、主に共通使用の理由から、これら信号をビット、値、要素、記号、特性、期間、数、などとして言及することが都合がよいことが証明されている。
【００１４】
しかし、注意を喚起したいのは、これらおよび類似した用語は適切な物理量と関連付けられるべきものであり、単にこれら量に当てはめられた単に便利な標識であるということである。特に以下の開示に明記、さもなくば明らかである場合以外には、本発明を通じて、「プロセッシング」「コンピューティング」「計算する」「決定する」などの用語は、コンピュータシステムの動きや処理、あるいは類似の電子コンピュータ装置であって、コンピュータシステム内のレジスタやメモリ内の物理（電子）量として表現されたデータを操作および変形して、同様にコンピュータシステム内メモリあるいはレジスタ内の物理量として表現されたほかのデータ、あるいは他の同様の情報記憶装置、送信装置あるいは表示装置として表現することがある。
【００１５】
以下に詳細な実施の形態の記載は、本発明が実行され得る特定の実施の形態を例示により示す関連図面について言及している。図面においては、幾つかの図面を通じて同様な記号は略類似した部材を表している。これら実施の形態は当業者が本発明を実施できるほどに十分な詳細を記している。他の実施の形態の使用も可能であり、本発明の範囲を逸脱せずに構造的、論理的、電気的変更を加えることができる。さらに、本発明の様々な実施の形態は、お互い異なってはいるが、必ずしも相互排他の関係であるわけではない。例えば、一つの実施の形態で記載されている特定の特徴、構成、あるいは特性は他の実施の形態に含ませることができる。従って以下の詳説は限定的な意味あいで受け取るべきものではなくて、本発明の範囲は付記する請求項の範囲によりのみ、このような請求項の均等物の全範囲とともに定義される。
【００１６】
幾らかの実施の形態においては、コンピュータが本発明による工程を実行できるようにプログラムするのに使用できる命令を記憶した機械・コンピュータ読み取り可能な媒体を含むことのできるコンピュータプログラム製品あるいはソフトウェアとして本発明を提供することもできる。他の実施の形態においては、本発明の工程はこれら工程を実行するための組み込み論理を含む特定のハードウェア部品、あるいはプログラムされたコンピュータ部材およびカスタムハードウェア部材のいかなる組み合わせにより実行することができる。
【００１７】
ゆえに、機械読み取り可能な媒体は機械（例えばコンピュータ）読み取り可能な形の情報の記憶、あるいは送信のためのいかなる機構を含むことができるが、フロッピーディスケット、光ディスク、コンパクトディスク、リード・オンリ・メモリ（ＣＤ−ＲＯＭｓ）、および磁気光ディスク、リード・オンリ・メモリ（ＲＯＭｓ）、ランダム・アクセス・メモリ（ＲＡＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電磁あるいは光カード、フラッシュメモリ、インターネット経由の電気、光、音声、あるいはその他の形の伝播信号（例えば搬送波、赤外線信号、デジタル信号その他）の送信などに限られるわけではない。
【００１８】
図１は本発明がその中で動作できる、プロセッシングシステム１００の仮想マシン環境の一実施の形態を図示する。本実施の形態においては、裸のプラットフォーム・ハードウェア１１６が、標準オペレーティングシステム（ＯＳ）とＶＭＭ１１２などの仮想マシンモニタ（ＶＭＭ）を例えば実行できるコンピューティング・プラットフォームを有す。
【００１９】
ＶＭＭ１１２は、一般的にはソフトウェア内に実装されるが、裸のマシンインタフェースをより高度なレベルのソフトウェアにエミュレートおよびエクスポートすることができる。このような高度なレベルのソフトウェアは標準あるいはリアルタイムなＯＳを含んでもよく、あるいはよく知られたＯＳ機構などを含まないような、オペレーティングシステム機能が制限された、大いにそぎ落とされた操作環境であってもよい。ソフトウェアはまたＢＩＯＳなどのファームウェアの版を含むこともできる。またその代わりに、例えばＶＭＭ１１２が他のＶＭＭの内部で、上段で、あるいはそれと並行して動作してもよい。ＶＭＭは例えば、ハードウェア、ソフトウェア、あるいはファームウェアなどに、あるいはさまざまな技術の組み合わせにより実装することができる。
【００２０】
プロセッシングシステム１００はパソコン（ＰＣ）、メインフレーム、ハンドヘルド装置、携帯コンピュータ、セットトップボックス、あるいはいかなるその他のコンピューティング・システムであってもよい。プラットフォーム・ハードウェア１１６はプロセッサ１１８とメモリ１２０とを含む。
【００２１】
プロセッサ１１８はマイクロプロセッサ、デジタル信号プロセッサ、マイクロコントローラ、その他の、ソフトウェアを実行可能なプロセッサであれば如何なるものでもかまわない。プロセッサ１１８は本発明の方法の実施の形態の実行を行うためにマイクロコード、プログラム可能な論理、あるいはハードコードされた論理を含むことができる。図１にはこのようなプロセッサ１１８を一つしか示していないが、システム内には一以上のプロセッサが存在してもよく、その各プロセッサが同じＶＭＭを実行してもよいし、互いに異なるＶＭＭを実行してもよいし、多数のＶＭＭを実行してもよいし、あるいはなんらＶＭＭを実行しなくてもよい。
【００２２】
メモリ１２０はハードディスク、フロッピーディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、フラッシュメモリ、あるいはこれら装置の如何なる組み合わせ、あるいはプロセッサ１１８が読み取ることのできる如何なる他の種類の機械媒体であってもかまわない。メモリ１２０は本発明の方法の実施の形態の実行を行うための命令、および／またはデータを記憶することができる。
【００２３】
ＶＭＭ１１２は他のソフトウェア（「ゲスト」ソフトウェア）に対して一以上の仮想マシン（ＶＭｓ）の象徴を提示するが、該ＶＭｓは同じあるいは異なる象徴を様々なゲストに提供することができる。図１は仮想マシン＃１  １０２、仮想マシン＃Ｎ  １１４という二つのＶＭｓを示しているが、いかなるシステムにおいても仮想マシンの実装数は幾つでもかまわない。各ＶＭ上で動作するゲストソフトウェアは、ゲストＯＳ＃１  １０４、ＯＳ＃Ｊ  １０６などのゲストＯＳ、および様々なゲストソフトウェアアプリケーション１０７、１０８、１０９、および１１０を含むことができる。前記ゲストＯＳ１０４、１０６の各々は、ゲストＯＳ１０４あるいは１０６が動作しているＶＭｓ１０２および１０４内の物理資源（例えばプロセッサレジスタ、メモリ、およびＩ／Ｏ装置）にアクセスし、その他の機能を発揮することが予期される。例えば、ゲストＯＳはＶＭに提示されるプロセッサおよびプラットフォームのアーキテクチャにより、すべてのレジスタ、キャッシュ、構造、Ｉ／Ｏ装置、メモリなどへのアクセスをもつことが予期されてもよい。ゲストソフトウェアがアクセス可能な資源は「特典付」と「特典なし」とのいずれかに分類することができる。特典付の資源に対しては、ＶＭＭ１１２は、これら特典付の資源への究極の制御は維持しながらも、ゲストソフトウェアが望む機能を促進する。特典なしの資源はＶＭＭ１１２の制御を必要とせず、ゲストソフトウェアからアクセスができる。
【００２４】
さらに、各ゲストＯＳは例外（例としてはページ不良、一般的保護不良など）、割り込み（例としてはハードウェア割り込み、ソフトウェア割り込み）、およびプラットフォームイベント（例としては、初期化（ＩＮＩＴ）、システム管理割り込み（ＳＭＩｓ））などの各種イベントの処理をするよう予期される。これらイベントのうち幾つかはＶＭｓ１０２と１１４との適切な操作を保証する目的上、およびゲストソフトウェアからの保護の観点からＶＭＭ１１２により処理される必要があるので、「特典付」になっている。
【００２５】
特典付のイベントが発生する、あるいはゲストソフトウェアが特典付資源にアクセスを試みると、ＶＭＭ１１２へ制御を移譲することができる。ゲストソフトウェアからＶＭＭ１１２への制御の移譲はここではＶＭ終了と称される。資源アクセスあるいはイベント処理が適切になされた後、ＶＭＭ１１２はゲストソフトウェアへ制御を戻すこともできる。ＶＭＭ１１２からゲストソフトウェアへの制御の移譲はＶＭ開始と称される。
【００２６】
一つの実施の形態においては、プロセッサ１１８がＶＭｓ１０２と１１４の動作を仮想マシン制御構成（ＶＭＣＳ）１２４の記憶データに則って行う。ＶＭＣＳ１２４はゲストソフトウェアの状態、ＶＭＭ１１２の状態、ゲストソフトウェアの動作制御をＶＭＭ１１２が行いたい方法を示す実行制御情報、ＶＭＭ１１２・ＶＭ間の遷移を制御する情報、などを含むことができる構成である。プロセッサ１１８はＶＭの実行環境の特定、およびその行動を制限する目的でＶＭＣＳ１２４から情報を読み出す。一つの実施の形態においては、ＶＭＣＳはメモリ１２０に記憶されている。幾つかの実施の形態においては、多数ＶＭｓ支援の目的で多数のＶＭＣＳ構成を使用する。
【００２７】
ここで使用されるように、サンドボックスは環境内のコード実行について幾らかの機能性制限がある実行環境である。本発明の実施の形態においては、サンドボックスはコード実行を許可することもあるが、該コードがサンドボックス外のいずれのコンピューティング・プラットフォームにも損害を与えたり、アクセスしたりしないように、隔離する場合もある。悪意があると疑われたファイルは、該ファイルが実際悪意のあるものであった場合に引き起こす損害を制限、あるいは阻止する目的上、サンドボックス内で開かれるべきである。さらに、ファイル開封の際あるいはコード実行の際などにサンドボックス内に起こり得る疑わしい行為を監視することもできる。一つの実施の形態においては、サンドボックスは仮想マシンとして実装されることもある。
【００２８】
図２は本発明の一実施の形態におけるサンドボックス仮想マシンと相互作用するユーザ仮想マシンの図示である。一つの例においては、ユーザが一以上のアプリケーションをユーザ仮想マシン２００内で実行することができる。例えばアプリケーション２０２は電子メールプログラムであってもよい。ユーザのコンピュータはファイル添付２０４を含んだ電子メールを受信することがある。ユーザがこのファイル添付をクリックすると、ユーザ仮想マシン２００でファイルを開封するのではなく、添付２０４をサンドボックス仮想マシン２０６内でアプリケーション２０２の他の複製版により、あるいはもしかすると他のプログラムにより（不図示）開封することができる。ユーザは依然サンドボックス仮想マシンの提示する添付を見ることができるが、サンドボックス仮想マシンをホストしている残りのコンピューティング・プラットフォームはサンドボックスで起きる動作から保護することができる。つまり、サンドボックス仮想マシンはある主の特定の動作がサンドボックス外のファイルやその他のシステム資源に影響を与えるのを阻止することができる。ゆえに、もしもファイル添付が電子メールアプリケーション内のアドレスブックにアクセスすることで他のユーザに攻撃をばらまこうと試みる攻撃コードを含んでいたとしても、サンドボックスがアプリケーションに電子メールを送信させなければ、その試みはサンドボックスの外部に対しては成功しない。
【００２９】
図３は本発明の一実施の形態によるサンドボックス仮想マシンの利用例を図示したフロー図３００である。ブロック３０２にて、処理システムの実体は、疑わしいとしてマークすべきファイルを特定する。一つの実施の形態においては、該実体は仮想マシン管理者（ＶＭＭ）である。ファイルをマークするかについての決定にはユーザも加わることができる。他の実施の形態においては、サンドボックス管理動作のための専用仮想マシンを実行させてもよい。疑わしいファイルは処理システムがまだ信用するに至っていない、いかなるファイルであってよい。処理システムに入ると、ファイルあるいはアプリケーションプログラムは、所定のファイル特定規定に基づき、疑わしいとマークされるべきか否かを評価されてもよい。規定の一例としては、処理システム上で作成されておらず、該処理システムで受信して初めて保存するファイルあるいはアプリケーションの全てを疑わしいとマークする、というものがある。また他の規定によると、ファイル、アプリケーションが信用できる署名鍵によりデジタル署名されている場合、該ファイル、アプリケーションを疑わしいとして特定せず、その他の場合には疑わしいと考慮する、というものもある。これら規定は単に例示であって、本発明の範囲を逸脱しなければ、疑わしいファイル、アプリケーションを特定するには他の方法を使用することができる。
【００３０】
ブロック３０４において、ひとたびファイルが疑わしいと特定されると、前記実体は疑わしいファイルをマークして、それらが疑わしいことを印で示す。当業者であれば、ファイルのマーク法には様々なものがあることは認識されよう。ファイルのマーク法の一例としては、拡張子をファイルシステムに対して作成して、各ファイルの注記に該ファイルが疑わしいか否かを示すようにするというものがある。一つの実施の形態においては、この注記は、ファイルが疑わしいとされる場合にフラグがセットされるような、バイナリフラグである。
【００３１】
幾らかのマーク動作を行った後いずれかの時点で、ブロック３０６において、ユーザ仮想マシン（アプリケーションプログラムなど）内で動作するソフトウェアはファイルの実行あるいはアクセスを要請することもできる。例えば、ユーザが電子メール添付実行を選択する場合がある。他の例においては、選択されたアプリケーションプログラムがファイルシステムの記憶ファイルにアクセスすることをユーザが希望することもある。ブロック３０８においては、ファイルが目下疑わしいとマークされているかについての決定を行うことができる。ファイルが疑わしくない場合には、ブロック３１０で該ファイルをユーザ仮想マシン内で実行する又はアクセスする。該ファイルが疑わしい場合には、該ファイルをサンドボックス仮想マシン内で処理することができる。一つの実施の形態においては、ブロック３１２において、このファイルアクセス要求について特別に処理を行うためのサンドボックス仮想マシンを作成してもよい。他の実施の形態においては、常設のサンドボックス仮想マシンを処理システム内でアクティブにしておいて、疑わしいファイルへのアクセス要求のようなもの全てを処理するようにしてもよい。
【００３２】
また別の実施の形態においては、サンドボックス仮想マシンは、サンドボックスが必要となったとき、新たな仮想マシン環境を「分岐」（フォーキング）させてユーザ仮想マシンの複製版を構築する。「分岐」を行うことのひとつの利点は、オリジナル版の状態を完全に不修正のまま、オリジナル版と複製版との間を分岐させ始めることができるため、マシン状態の、既知の良好な（ノウングッド）「チェックポイント」として機能することである。後に複製版に攻撃が見つかった場合には、システムはノウングッドチェックポイントまで戻るだけでよい。従ってＶＭ「分岐」は、ウィルスを収容したりその伝播を遅延させたりすることよりも上を行き、攻撃から回復する方法をも提供できるものとなっている。
【００３３】
ひとたびサンドボックス仮想マシンがアクティブとなり、ファイルアクセス処理をできるようになると、ブロック３１４で、特定のサンドボックス規定の規則によりサンドボックス仮想マシン内でファイルのアクセスあるいは実行が行うことができる。サンドボックス規定はファイルアクセスの一環としてどのような動作を行うのか規定してもよい。例えば、サンドボックス内のソフトウェア実行は電子メールを該サンドボックス外へ送信してはならないという規定を守ることとしてもよい。これは、処理システム内の規定チェック部材にサンドボックスからの電子メール送信要求を捉えるようにさせて執行してもよい。他の例としては、サンドボックス内のソフトウェア実行は処理システム内のファイルの削除、あるいは修正ができないようにすることもできる。一つの実施の形態においては、この執行は、全てのファイル修正要求を仮想化して、サンドボックス仮想マシンにファイルの修正要求が達成されたと示すようにしておいて、実際には該要求は暫定ファイルを使用して達成して常設システムのファイルには変更が加えられないように行うこともできる。ユーザ仮想マシンからサンドボックス仮想マシンを分岐する他の実施の形態においては、サンドボックス内でしばらくの間実行された後、分岐された環境をユーザ環境へ戻して融合させてもよい。この時点では、サンドボックス仮想マシンが要求するファイルに対する変更を受け付けるかどうかに関する決定を行うようにしてもよい。一例においては、サンドボックスからのシステムファイル変更を一切認めないようにしてもよい。そうではなくて、分岐された環境がウィルス攻撃により妥協を余儀なくされた状況を検知して、その環境を単に放棄して、システム動作を、ノウングッドチェックポイントである元のＶＭ状態に戻すこともできる。
【００３４】
疑わしいファイルがサンドボックス仮想マシン内で実行あるいはアクセスされている間、仮想マシンモニタ（ＶＭＭ）などの実体はサンドボックス内に攻撃コードの実行開始を示唆する行動がないか監視することができる。例えば、ＶＭＭはサンドボックス内にシステムファイル変更、自動電子メール要求、あるいは慎重を要するドキュメントへのアクセスの試みなどがないか監視することができる。もしもＶＭＭがこれら行動のいずれかを検知したら、ＶＭＭは一以上の所定の方法で対応することができる。例えば、ＶＭＭはファイルを攻撃可能性のあるコードとしてマークすることができたり、該コードを削除したり、ユーザに通知したり、ファイルに対して更なる評価、あるいはその他の所定の処置を行うためにファイルをセキュリティサーバへ送ったりすることなどができる。
【００３５】
本発明の実施の形態においては、実行可能なファイルを疑わしいとマークして、サンドボックス内で実行すること以外にも、さらにデータファイルを疑わしいとマークして、該データファイルへのアクセスを行うアプリケーションをサンドボックス内で行うこともできる。例えば、信用できるデータファイルへのアクセスであればアプリケーションはユーザ仮想マシン内で行うことにしてもよいが、疑わしいデータファイルへのアクセスの際にはサンドボックス内で行うようにしてもよい。これは、その結果の組み合わせは依然攻撃を含む可能性があるため、コードは信用できるのだが、信用できるコードが信用できないデータを実行する場合も含んだ概念である。
【００３６】
ひとたびファイルが疑わしいとマークされると、何らかの特定の処置を講じてファイル上の疑わしいとするマークが取り除かれない以上、該ファイルはマークされ続けることになる。疑わしいファイルは多数回アクセスされても依然疑わしいとマークされ続ける。疑わしいファイルというマークを外す機能実装のための規定の一つとしては、ユーザにサンドボックスではない仮想マシンを操作させて、その仮想マシンへの疑わしいファイルのインポートを要求する方法がある。疑わしいファイルのマークを外す別の規定としては、ファイルがサンドボックス内で特定の期間実行されても攻撃コードを示すような行動の証拠が見つからなかった場合、ファイルに対する疑わしいというマークを変更する、などが考えられる。一つの実施の形態では、マークの取り外しは、ファイルに対する疑わしいフラグの設定を取り外すことで実行される。別の実施の形態では、ユーザがそのファイルが信用できると思ったら選択的にファイルのマークを取り外すことを許可している。
【００３７】
図４は本発明の一実施の形態による仮想マシン環境を図示する図である。この実施の形態では、ＶＭＭにサンドボックス仮想マシンの操作を監視させるのではなくて、監視を行う実体を規定執行仮想マシン４０４としてもよいことになっている。代わりに、監視する実体が追加的行動を行う他のＶＭに（少なくとも一部が）存在していてもよい。この仮想マシンはファイルシステム仮想マシン４０２と相互作用して、サンドボックス内で実行される攻撃コードが処理システム内のファイルを修正できないように保証してもよい。該ファイルシステムへのアクセス要求はファイルシステム仮想マシンが処理してもよい。規定執行仮想マシンはサンドボックス内で実行されるコードが許可可能な活動を記述している所定の規定４０６を執行することができる。一つの例では、サンドボックス仮想マシンはネットワークに直接アクセスできないようになっており、これによりサンドボックス仮想マシンからのいかなるネットワークへのアクセス要求であっても規定執行者へ送られるようにしてもよい。規定執行者はその後そのネットワークへのアクセスが許可されるか、規定をチェックする。このようにして、規定執行者はサンドボックス仮想マシンが電子メール送信、あるいは該ネットワークへのいずれの情報の送信をできないようにしてもよい。
【００３８】
本発明の実施の形態は幾らかのコンピュータウィルスの急速な伝播を阻止する一助となる。本発明において攻撃コードを持つファイル添付が開封された場合、該添付はサンドボックスで開封されることになる。サンドボックスは電子メールが送信されるのを許可しないので（規定の定義によって）、攻撃は複製されることはない。攻撃コードはシステムファイルにサンドボックス内で修正を加えることはあるかもしれないが、これら修正は仮想上に行われることなので、実際のシステムファイルには修正は施されない。サンドボックス内でファイルを開封した後、ユーザは該ファイルを他の仮想マシンに移動させる決定もできる。これは該ファイルをサンドボックス内に留めておくことに比べると好ましいことではないが、この筋書きにおいてもウィルス伝播は遅延させることができる。
【００３９】
ここで操作は一連の工程として記述されているかもしれないが、幾つかの操作は実施には並列的に、あるいは同時的に行うこともできる。さらに、幾つかの実施の形態においては、操作の順序は本発明の精神から逸脱することなく入れ替えることができる。
【００４０】
本発明は例示的な実施の形態とともに記載されたが、本記載は限定的な意味で解釈されるべきものではない。例示的な実施の形態の様々な変形例が本発明の他の実施の形態とともに本発明の精神および範囲内で可能なことは本発明が関する当業者にとっては自明である。
【図１】
2008500653.tif 000003
【図２】
2008500653.tif 000004
【図３】
2008500653.tif 000005
【図４】
2008500653.tif 000006
【国際調査報告】
2008500653.tif 000007
2008500653.tif 000008
2008500653.tif 000009