(57)【特許請求の範囲】
【請求項１】
処理を実行するユーザ用仮想マシンと、
前記ユーザ用仮想マシンからの依頼を受け付けて、物理データ領域にアクセスする仮想マシン管理部と、
前記ユーザ用仮想マシンから前記仮想マシン管理部に対して更新が依頼されたファイルを監視するファイル監視部と、
前記ファイル監視部の出力に基づいて、前記仮想マシン管理部において前記ユーザ用仮想マシンのために更新されたファイルがいずれであるかを示す更新ファイルリストを作成する更新ファイルリスト作成部と、
前記更新ファイルリストに示されたファイルに対して、コンピュータウィルスの検疫処理を実行する検疫処理部とを備えるファイル検疫装置。
【請求項２】
所定ネットワークに接続されているか否かを判断するネットワーク接続判断部をさらに備え、
前記更新ファイルリスト作成部は、前記ネットワーク接続判断部において前記ファイル検疫装置が前記所定ネットワークに接続されていないと判断される場合に、前記更新ファイルリストを作成する、請求項１に記載のファイル検疫装置。
【請求項３】
前記検疫処理部において検疫処理が実行されている間、前記ユーザ用仮想マシンの動作を停止させる動作管理部をさらに備える、請求項１または２に記載のファイル検疫装置。
【請求項４】
前記ユーザ用仮想マシンを制御する制御用仮想マシンをさらに備え、
前記制御用仮想マシンは、検疫処理部として検疫用仮想マシンを起動させ、当該検疫用仮想マシンに前記検疫処理を実行させ、前記検疫処理が終了した場合に当該検疫用仮想マシンを停止させる、請求項１〜３のいずれか一項に記載のファイル検疫装置。
【請求項５】
前記制御用仮想マシンは、前記ユーザ用仮想マシンのＯＳに応じて、起動させる検疫用仮想マシンのＯＳを決定する、請求項４に記載のファイル検疫装置。
【請求項６】
最新のウィルスパターンファイルを取得可能であるか否かを判断するパターンファイル取得可否判断部をさらに備え、
前記検疫処理部は、パターンファイル取得可否判断部において最新のウィルスパターンファイルを取得可能であると判断される場合に、前記更新ファイルリストに基づいてコンピュータウィルスの検疫処理を実行する、請求項１〜５のいずれか一項に記載のファイル検疫装置。
【請求項７】
所定ネットワークに接続されていなかった期間を記録するネットワーク非接続期間記録部をさらに備え、
前記更新ファイルリスト作成部によって作成される前記更新ファイルリストは、各ファイルについてのタイムスタンプを含み、
前記検疫処理部は、前記ネットワーク非接続期間記録部によって記録された期間と前記タイムスタンプとに基づいて、前記検疫処理の対象ファイルを決定する、請求項１または３〜６のいずれか一項に記載のファイル検疫装置。
【請求項８】
前記ユーザ用仮想マシンがアクセス可能なファイルと、前記物理データ領域において前記ファイルが記録されている位置情報との対応関係を保持した対応関係保持部をさらに備え、
前記更新ファイルリスト作成部は、前記ファイル監視部の出力および前記対応関係保持部に基づいて更新ファイルリストを作成する、請求項１〜７のいずれか一項に記載のファイル検疫装置。
【請求項９】
処理を実行するユーザ用仮想マシンと、
前記ユーザ用仮想マシンからの依頼を受け付けて、物理データ領域にアクセスする仮想マシン管理部と、
前記ユーザ用仮想マシンから前記仮想マシン管理部に対して更新が依頼されたファイルを監視するファイル監視部と、
前記ファイル監視部の出力に基づいて、前記仮想マシン管理部において前記ユーザ用仮想マシンのために更新されたファイルがいずれであるかを示す更新ファイルリストを作成する更新ファイルリスト作成部とを備える、ファイル検疫補助装置。
【請求項１０】
ファイル検疫装置をコンピュータを用いて実現するためのファイル検疫プログラムであって、
処理を実行するユーザ用仮想マシンを実行する処理と、
前記ユーザ用仮想マシンからの依頼を受け付けて、物理データ領域にアクセスする仮想マシン管理部を実行する処理と、
前記ユーザ用仮想マシンから前記仮想マシン管理部に対して更新が依頼されたファイルを監視するファイル監視処理と、
前記ファイル監視処理の出力に基づいて、前記仮想マシン管理部において前記ユーザ用仮想マシンのために更新されたファイルがいずれであるかを示す更新ファイルリストを作成する更新ファイルリスト作成処理と、
前記更新ファイルリストに示されたファイルに対するコンピュータウィルスの検疫処理とをコンピュータに実行させる、ファイル検疫プログラム。
【請求項１１】
処理を実行するユーザ用仮想マシンを実行する工程と、
前記ユーザ用仮想マシンからの依頼を受け付けて、物理データ領域にアクセスする仮想マシン管理部を実行する工程と、
前記ユーザ用仮想マシンから前記仮想マシン管理部に対して更新が依頼されたファイルを監視するファイル監視工程と、
前記ファイル監視工程の出力に基づいて、前記仮想マシン管理部において前記ユーザ用仮想マシンのために更新されたファイルがいずれであるかを示す更新ファイルリストを作成する更新ファイルリスト作成工程と、
前記更新ファイルリストに示されたファイルに対するコンピュータウィルスの検疫処理を実行する検疫処理工程とを含むファイル検疫方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルの検疫処理を行うファイル検疫装置に関する。
【背景技術】
【０００２】
外部から持ち込まれた端末に内在するコンピュータウィルスが特定のネットワークに侵入することを防止するための技術として、検疫ネットワークが知られている。例えば、検疫ネットワークにおいては、外部から持ち込まれた端末が社内システムにアクセスすると、当該端末に記録されたファイルがウィルス感染していないかどうかを検疫し、ウィルス感染していない端末のみにネットワーク接続を認める。これにより、ウィルス感染した端末のネットワーク接続を防止して、社内システムを安全に運用することができる（例えば、特許文献１参照。）。また、検疫の後ウィルス感染が認められると、ウィルス感染されていないクリーンなＯＳ（オペレーティング・システム）を別に立ち上げてウィルス駆除を行う方法も知られている（例えば、特許文献２）。
【０００３】
しかしながら、上記のような検疫を行う場合、ウィルススキャンに時間がかかるため検疫中に端末を使用することができなくなる、という問題がある。このような問題に対して、ウィルス感染のある行為を行わなかった端末のウィルススキャンを免除することや（例えば、特許文献３参照。）、端末の種別（例えば、デスクトップＰＣ等。）に応じてウィルススキャンを免除することが知られている（例えば、特許文献４参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２１６２５３号公報
【特許文献２】特開平１１−８５５０３号公報
【特許文献３】特開２００８−７１２１０号公報
【特許文献４】特開２００８−２２５５９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ウィルススキャンにかかる時間を短縮させるその他の方法として、端末内の全ファイルに対してウィルススキャンを行うのではなく、ファイルの更新日付等の情報に基づいて、外部使用中に作成または更新されたファイルのみに対してウィルススキャンを行うことが考えられる。しかしながら、ファイルの更新日付等の情報はウィルス等が不当に書き換えてしまう可能性があるため、ファイルの更新日付等の情報に基づいて、ウィルススキャンの対象ファイルを判断することは好ましいとはいえない。
【０００６】
また、図１は、ＯＳのシステムコールの利用履歴を解析して、実際に書き込みが発生したファイルを特定する方法の一例を示す図である。この方法では、ＯＳのカーネルまたは入出力のＡＰＩ（Application Program Interface）を実現するライブラリを改変することで、システムコールの監視用インタフェース(I/F)部１１を実現し、このインタフェースを通じてシステムコールの履歴を取得する。ＯＳではファイルやネットワーク等の資源はシステムコールを介して操作されるため、システムコールの履歴を取得することで更新されたファイルを抽出できる。つまり、取得したシステムコールの履歴をシステムコール管理機能部１２で分析し、ファイル操作に関するシステムコールの利用から書き換えが発生したファイルを特定できる。
【０００７】
図１の外出判定機能部１３では、端末がイントラネットに接続されているか、外出中であるかを判定し、判定結果に基づいて検疫ネットワークのクライアントソフトの起動や、書き換えが発生したファイルの特定動作の制御を行う。例えば、外出からの帰着時の検疫では、外出中に書き換えが発生したファイル(新規・変更ファイル表に名前のあるファイル)をウィルス対策プログラムでウィルススキャンを行う。
【０００８】
このように、図１の方法では、ユーザが利用しているＯＳ上のソフトウェアでファイルに対するシステムコールの履歴等を収集して、書き換えが発生したファイルを特定している。しかし、この方法では、書き換えられたファイルを特定するプログラムとウィルスプログラム等が同じＯＳ領域内で実行されるため、データの改ざん等の攻撃によりファイルの更新履歴が改ざんされると、ウィルスに感染したファイルがウィルス検査対象から除外される場合がある。そのため、検疫対象となるファイルを精度よく特定することができない。
【０００９】
本発明は、上記のような点に鑑みてなされたものであり、検疫対象となるファイルを精度よく特定して、検疫処理を短時間で終了させることのできるファイル検疫装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために、以下に開示するファイル検疫装置は、ユーザ操作に基づく処理を実行するユーザ用仮想マシンと、前記ユーザ用仮想マシンからの依頼を受け付けて、物理データ領域にアクセスする仮想マシン管理部と、前記ユーザ用仮想マシンから前記仮想マシン管理部に対して更新が依頼されたファイルを監視するファイル監視部と、前記ファイル監視部の出力に基づいて、前記仮想マシン管理部において前記ユーザ用仮想マシンのために更新されたファイルがいずれであるかを示す更新ファイルリストを作成する更新ファイルリスト作成部と、前記更新ファイルリストに示されたファイルに対して、コンピュータウィルスの検疫処理を実行する検疫処理部とを備える。
【発明の効果】
【００１１】
本願明細書の開示によれば、検疫対象となるファイルを精度よく特定して検疫処理を短時間で終了させることのできるファイル検疫装置を提供することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】ＯＳのシステムコールの利用履歴を解析して、実際に書き込みが発生したファイルを特定する方法の一例を示す図である。
【図２】ファイル検疫装置１の構成例を示す図である。
【図３】図２に示したファイル検疫装置１を、ＣＰＵを用いて実現したハードウェア構成の一例を示す図である。
【図４】ファイル検疫装置１の起動時におけるフローチャートの一例を示す図である。
【図５】制御用仮想マシン３における処理のフローチャートの一例を示す図である。
【図６】ネットワーク接続判断処理のフローチャートの一例を示す図である。
【図７】仮想マシン管理部２における処理のフローチャートの一例を示す図である。
【図８Ａ】ユーザ用仮想マシン４から依頼を受けた命令に基づいて更新ファイルリストを作成する例を示す図である。
【図８Ｂ】ユーザ用仮想マシン４から仮想マシン管理部４に通知される命令のデータ構造の一例を示す図である。
【図８Ｃ】更新ファイルリストの一例を示す図である。
【図９】更新ファイルリスト作成処理のフローチャートの一例を示す図である。
【図１０Ａ】ユーザ用仮想マシン４のためにディスク・ストレージ５において割り当てられるディスク領域の一例を示す図である。
【図１０Ｂ】ＦＡＴ領域１０２の一例を示す図である。
【図１０Ｃ】ルートディレクトリ１０３の一例を示す図である。
【図１０Ｄ】データ領域１０４の一例を示す図である。
【図１１】検疫処理のフローチャートの一例を示す図である。
【図１２】検疫クライアント処理のフローチャートの一例を示す図である。
【図１３】検疫処理部３３において実行される検疫クライアント１３０１の構成例を示す図である。
【図１４】ファイル検疫装置１の構成例を示す図である。
【図１５】ファイル検疫装置１の構成例を示す図である。
【図１６】ファイル検疫装置１の構成例を示す図である。
【図１７】ファイル検疫装置１の構成例を示す図である。
【図１８】制御用仮想マシン３における処理のフローチャートの一例を示す図である。
【図１９】ファイル検疫装置１の構成例を示す図である。
【図２０】ファイル検疫装置１の構成例を示す図である。
【図２１】ファイル検疫装置１の構成例を示す図である。
【図２２】対応関係保持部２５の一例を示す図である。
【図２３】ファイル検疫装置１の構成例を示す図である。
【図２４】ファイル検疫装置１の構成例を示す図である。
【発明を実施するための形態】
【００１３】
以下においては、本発明の実施形態について図面を用いて具体的に説明する。
【００１４】
［１．第１の実施形態］
本実施形態にかかるファイル検疫装置は、ＣＰＵを備えるコンピュータ装置によって構成される。例えば、パーソナルコンピュータ、スマートフォンまたは携帯電話等が、このコンピュータ装置に該当する。以下においては、外出先では公衆ＬＡＮ等に接続可能であり、かつ、社内においては社内ネットワークに接続可能であるノート型パーソナルコンピュータを、本実施形態にかかるファイル検疫装置の一例として用いる場合について説明する。本実施形態において、仮想マシンとは、１または複数のコンピュータ装置上で、擬似的に稼働する１つのコンピュータ装置をいう。
【００１５】
本実施形態にかかるファイル検疫装置は、ユーザ操作に基づく処理を実行するユーザ用仮想マシンと、前記ユーザ用仮想マシンからの依頼を受け付けて、物理データ領域にアクセスする仮想マシン管理部と、前記ユーザ用仮想マシンから前記仮想マシン管理部に対して更新が依頼されたファイルを監視するファイル監視部と、前記ファイル監視部の出力に基づいて、前記仮想マシン管理部において前記ユーザ用仮想マシンのために更新されたファイルがいずれであるかを示す更新ファイルリストを作成する更新ファイルリスト作成部と、前記更新ファイルリストに示されたファイルに対して、コンピュータウィルスの検疫処理を実行する検疫処理部とを備える。このように、本実施形態にかかるファイル検疫装置は、ユーザ用仮想マシンから独立して作成・管理された更新ファイルリストに基づいて検疫を行うので、改ざんのおそれがほぼなくなり、検疫対象となるファイルを精度よく特定して、検疫処理を短時間で終了させることができる。
【００１６】
また、本実施形態にかかるファイル検疫装置は、所定ネットワークに接続されているか否かを判断するネットワーク接続判断部をさらに備え、前記更新ファイルリスト作成部は、前記ネットワーク接続判断部において前記ファイル検疫装置が前記所定ネットワークに接続されていないと判断される場合に、前記更新ファイルリストを作成する。このため、ウィルスに感染した疑いのあるファイルのみを抽出して、効率的に検疫処理を行うことができる。
【００１７】
また、本実施形態にかかるファイル検疫装置は、検疫処理が実行されている間、前記ユーザ用仮想マシンの動作を停止させる。このため、ユーザ用仮想マシンがウィルスに感染していた場合であっても、ウィルスの感染拡大を防止して、その被害を最小に抑えることができる。また、ユーザ用仮想マシンと制御用仮想マシンとの間におけるディスク・ストレージの競合を回避して、安全にファイル検疫処理を実行することができる。
【００１８】
［１−１．システム構成］
図２は、上記ファイル検疫装置の構成例を示す図である。ファイル検疫装置１は、仮想マシン管理部２、制御用仮想マシン３およびユーザ用仮想マシン４を動作可能に構成され、ネットワーク・インタフェース９およびディスク・ストレージ５を有している。仮想マシン管理部２、制御用仮想マシン３およびユーザ用仮想マシン４は、相互に通信可能である。ディスク・ストレージ５は、仮想マシン管理部２のみが直接アクセス可能な物理データ領域である。制御用仮想マシン３およびユーザ用仮想マシン４は、仮想マシン管理部２を介してディスク・ストレージ５に間接的にアクセス可能である。なお、図２において、制御用仮想マシン３およびユーザ用仮想マシン４は、それぞれ１つしか記載されていないが、２つ以上存在してもよい。
【００１９】
図２に示すファイル検疫装置１が動作させるユーザ用仮想マシン４は、アプリケーション４１およびＯＳ（オペレーティング・システム）４２を備える。また、制御用仮想マシン３は、ネットワーク接続判断部３１、動作管理部３２および検疫処理部３３を備える。さらに、仮想マシン管理部２は、ファイル監視部２１および更新ファイルリスト作成部２２を備える。
【００２０】
ネットワーク・インタフェース９は、社内ネットワークや公衆ＬＡＮに接続するためのものである。アプリケーション４１およびＯＳ４２は、ユーザ操作に基づく処理を実行するためのものである。
【００２１】
制御用仮想マシン３のネットワーク接続判断部３１は、ユーザ用仮想マシン４のネットワーク・インタフェース９が、所定ネットワークに接続されているか否かを判断するためのものである。動作管理部３２は、検疫処理部３３において検疫処理が実行されている間、ユーザ用仮想マシン４の動作を停止させ、または、この停止を解除させるためのものである。検疫処理部３３は、更新ファイルリストに示されたファイルに対して、コンピュータウィルスの検疫処理を実行するためのものである。更新ファイルリストのデータ形式は特に限定されないが、例えば、テーブル形式で記録されてもよい。
【００２２】
仮想マシン管理部２のファイル監視部２１は、ユーザ用仮想マシン４から仮想マシン管理部２に対して更新が依頼されたファイルを監視するためのものである。更新ファイルリスト作成部２２は、ファイル監視部２１の出力に基づいて、仮想マシン管理部２において更新されたファイルがいずれであるかを示す更新ファイルリストを作成するためのものである。
【００２３】
なお、図２のファイル検疫装置１において示した各機能部は、プログラムによって実現されるＣＰＵの機能を含む概念である。ここで、プログラムとは、ＣＰＵにより直接実行可能なプログラムだけでなく、ソース形式のプログラム、圧縮処理がされたプログラム、暗号化されたプログラム等を含む概念である。
【００２４】
［１−２．ファイル検疫装置１のハードウェア構成］
図３は、図２に示したファイル検疫装置１を、ＣＰＵを用いて実現したハードウェア構成の例を示す図である。上記ファイル検疫装置１は、ディスプレイ２０１、ＣＰＵ２０２、メモリ２０３、キーボード／マウス２０４、ハードディスク２０５、ＣＤ−ＲＯＭドライブ（光学式ドライブ）２０６および通信回路２０７を備える。ハードディスク２０５には、仮想マシン管理プログラム２０５ａ、仮想マシンデータ領域２０５ｂ、ファイル検疫処理プログラム２０５ｃおよび更新ファイルリスト２０５ｄ等が記録される。
【００２５】
仮想マシン管理プログラム２０５ａまたはファイル検疫処理プログラム２０５ｃは、ＣＤ−ＲＯＭドライブ２０６を介して、例えばＣＤ−ＲＯＭ２０６ａ等の光学式ディスクに記録されたプログラムを読み出してインストールされたものである。ＣＰＵ２３は、仮想マシン管理プログラム２０５ｂ、ファイル検疫処理プログラム２０５ｃまたは、制御用仮想マシン３もしくはユーザ用仮想マシン４内で実行されるＯＳ等に基づく処理を実行する。
【００２６】
図２に示したファイル検疫装置１を構成する仮想マシン管理部２は、ＣＰＵ２０２上において仮想マシン管理プログラム２０５ａを実行することによって実現される。なお、仮想マシン管理部２は、仮想化技術を実現するための管理プログラムの実行により生成される機能部であり、例えば、ハイパーバイザがこれに該当する。また、仮想マシン管理部２における、ファイル監視部２１および更新ファイルリスト作成部２２も、ＣＰＵ２０２上において仮想マシン管理プログラム２０５ａを実行することによって実現される。
【００２７】
また、制御用仮想マシン３およびユーザ用仮想マシン４の起動プログラムは、仮想マシン管理プログラム２０５ａに含まれてもよいし、他の装置から読み出されるものであってもよい。
【００２８】
図２に示したファイル検疫装置１を構成する制御用仮想マシン３における、ネットワーク接続判断部３１、動作管理部３２および検疫処理部３３は、ＣＰＵ２０２上においてファイル検疫処理プログラム２０５ｃを実行することによって実現される。図２に示したファイル検疫装置１を構成するディスク・ストレージ５の一部は、ハードディスク２０５に記録される仮想マシンデータ領域２０５ｂに該当する。
【００２９】
［１−３．ファイル検疫装置１の起動］
図４は、ファイル検疫装置１の起動時におけるフローチャートの一例を示す図である。電源投入を受けて、ファイル検疫装置１のＣＰＵ２０２は、仮想マシン管理部２を起動し（オペレーション（以下Ｏｐとする。）３０１）、続いて制御用仮想マシン３を起動し（Ｏｐ３０２）、最後にユーザ用仮想マシン４を起動する（Ｏｐ３０３）。
【００３０】
上記仮想マシン管理部２は、Ｔｙｐｅ１型のハイパーバイザを用いた例である。ハイパーバイザとは、コンピュータの仮想化技術の一つである仮想マシン（バーチャルマシン）を実現するための制御プログラムをいう。Ｔｙｐｅ１型のハイパーバイザは、ハードウェア上で直接稼働してホストＯＳの仮想マシンを起動するものや、ホストＯＳのカーネルに組み込まれて稼働するものがある。また、ホストＯＳの仮想マシンは、ゲストＯＳの仮想マシンを起動する。
【００３１】
なお、Ｔｙｐｅ２型のハイパーバイザは、ハードウェア上でまずホストＯＳが稼働し、ホストＯＳ上でハイパーバイザが仮想し、さらにハイパーバイザ上でゲストＯＳの仮想マシンを稼働させるものである。よって、本実施形態のファイル検疫装置においては、ホストＯＳとしての制御用仮想マシン上でハイパーバイザである仮想マシン管理部が起動し、さらに仮想マシン管理部上でゲストＯＳとしてのユーザ用仮想マシン４を起動する構成としてもよい。
【００３２】
仮想マシン管理部２の起動後において、ファイル監視部２１および更新ファイルリスト作成部２２をそれぞれ機能させるためのプログラムが起動する。制御用仮想マシン３の起動時後において、ネットワーク接続判断部３１、動作管理部３２および検疫処理部３３をそれぞれ機能させるためのプログラムが起動する。ユーザ用仮想マシン４の起動後において、所定のアプリケーション４１およびＯＳ４２をそれぞれ機能させるためのプログラムが起動する。
【００３３】
［１−４．制御用仮想マシン３の処理（１）］
図５は、制御用仮想マシン３における処理のフローチャートの一例を示す図である。ＣＰＵ２０２は、ネットワーク接続判断処理を実行する（Ｏｐ５０１）。図６は、ネットワーク接続判断処理のフローチャートの一例を示す図である。このネットワーク接続判断処理は、メモリ２０３に常駐して実行される。
【００３４】
ＯＰ６０１においてＣＰＵ２０３は、ネットワーク・インタフェースの状態を監視し（Ｏｐ６０１）、変化があれば、ネットワーク・インタフェースの状態変化の内容を判断する（Ｏｐ６０２）。例えば、この状態変化が「ＯＮ→ＯＦＦ」の場合、オフラインと判定する（Ｏｐ６０３）。つまり、この場合は社内ネットワークに接続していないと判断できる。一方、この状態変化が「ＯＦＦ→ＯＮ」の場合、さらに、社内ネットワーク上に存在する検疫サーバと通信可能か否かを判断し（Ｏｐ６０６）、通信可能であれば（Ｏｐ６０６、Ｙｅｓ）、社内ネットワークに接続していると判定し（Ｏｐ６０７）、通信可能でなければ（Ｏｐ６０６、Ｎｏ）、オフラインと判定する（Ｏｐ６０８）。
【００３５】
また、ＯＰ６０１においてＣＰＵ２０３は、ネットワーク・インタフェースの状態を監視し（Ｏｐ６０１）、変化がなければ、ネットワーク・インタフェースの状態を判断する（Ｏｐ６０４）。例えば、この状態がＯＮを維持している場合、検疫サーバと通信可能か否かを判断し（Ｏｐ６０６）、通信可能であれば（Ｏｐ６０６、Ｙｅｓ）、社内ネットワークに接続していると判定し（Ｏｐ６０７）、通信可能でなければ（Ｏｐ６０６、Ｎｏ）、オフラインと判定する（Ｏｐ６０８）。一方、この状態がＯＦＦを維持していると判断する場合、オフラインと判定する（Ｏｐ６０５）。
【００３６】
図５に戻りＣＰＵ２０２は、上記Ｏｐ５０１においてユーザ用仮想マシンが社内ネットワークに接続していると判断できない場合（Ｏｐ５０２、Ｎｏ）、その旨を仮想マシン管理部２に通知する（Ｏｐ５０３）。
【００３７】
［１−５．仮想マシン管理部２の処理］
図７は、仮想マシン管理部２における処理のフローチャートの一例を示す図である。図８Ａは、ユーザ用仮想マシン４から依頼を受けた命令に基づいて更新ファイルリストを作成する例を示す図である。具体的には、アプリケーション４１やＯＳ４２の実行により、ディスク・ストレージ５に記録されたデータを操作する必要が生じると、ユーザ用仮想マシン４は、仮想マシン管理部２にファイル更新依頼を行う。この場合において、仮想マシン管理部２が、ユーザ用仮想マシン４から依頼されたファイル更新命令を抽出して、更新対象となったファイルがいずれであるかを示す更新ファイルリストを作成する図である。
【００３８】
仮想マシン管理部２の共有メモリ空間８０１においては、ユーザ用仮想マシン４からの命令は、ＦＩＦＯ（First In, First Out）方式で順次蓄積される（命令１〜命令ｍ）。ここで、共有メモリ空間８０１は、仮想マシン管理部２だけでなく、ユーザ用仮想マシン４からもアクセス（書き込み）可能である。
【００３９】
仮想マシン管理部２のファイル監視部２１を機能させるＣＰＵ２０３は、共有メモリ空間８０１のバッファ上に未処理コマンドがあるか否かを判断する（Ｏｐ７０１）。ＣＰＵ２０２は、共有メモリ空間８０１のバッファ上に命令が記録されていれば、その命令を読み出す。（Ｏｐ７０２）。例えば、図８Ａにおいて、共有メモリ空間８０１に記録されている「命令１〜命令ｍ」の中から、「命令１」８１が読み出される。なお、読み出された命令は順次削除される。
【００４０】
ＣＰＵ２０２は、読み出した命令を一旦ディスク・ストレージ５に転送する（Ｏｐ７０３）。転送後、ＣＰＵ２０２は、ユーザ用仮想マシン４が社内ネットワークに接続しているか否かを判断し（Ｏｐ７０４）、接続していなければ下記Ｏｐ７０５〜Ｏｐ７０７の処理を実行し、接続すればＯｐ７０１に戻って処理を繰り返す。つまり、Ｏｐ７０４の処理は、制御用仮想マシン３からの通知に基づいて判断される（図５のＯｐ５０３またはＯｐ５０５）。
【００４１】
Ｏｐ７０５においてＣＰＵ２０２は、読み出した命令が書き込み命令か否かを判断し（Ｏｐ７０４）、書き込み命令であれば（Ｏｐ７０５、Ｙｅｓ）専用メモリ空間８０２にコピーする（Ｏｐ７０６）。例えば、共有メモリ空間８０１の「命令１」８１が、専用メモリ空間８０２の「命令ｎ」８２としてコピーされる。
【００４２】
図８Ｂは、ユーザ用仮想マシン４から仮想マシン管理部４に通知される命令のデータ構造の一例を示す図である。このデータ構造には、命令識別８５、セクタ番号８６および実データ８７が含まれる。読み出した命令が書き込み命令であるか否かは、命令識別８５のデータが「書き込み」を示すものであるか否かによって判断すればよい。ここで、専用メモリ空間８０２は、仮想マシン管理部２からだけアクセス（書き込み／読み出し）可能であり、ユーザ用仮想マシン４からはアクセスすることはできない。
【００４３】
ＣＰＵ２０２は、更新ファイルリスト作成部２２を機能させて、更新ファイルリスト作成処理を実行する（Ｏｐ７０７）。図９は、更新ファイルリスト作成処理のフローチャートの一例を示す図である。
【００４４】
ＣＰＵ２０２は、専用メモリ空間から１命令を読み出す（Ｏｐ９０１）。例えば、図８Ａに示した専用メモリ空間８０２の「命令１」８３を読み出す。なお、専用メモリ空間８０２における各命令は、ＦＩＦＯ（First In, First Out）方式で順次蓄積されている（命令１〜命令ｎ）。
【００４５】
ＣＰＵ２０２は、上記Ｏｐ９０１において読み出した命令のセクタ番号８６に基づいて書き込み先を特定する（Ｏｐ９０２）。書き込み先の特定方法は、ユーザ用仮想マシン４が採用するファイルシステムによって異なるが、下記においてはファイルシステムにＦＡＴが採用されている場合の特定方法について説明する。
【００４６】
図１０Ａは、ユーザ用仮想マシン４のためにディスク・ストレージ５において割り当てられるディスク領域の一例を示す図である。このディスク領域は、ユーザ用仮想マシン４が採用するＯＳのファイルシステムとして機能する。例えば、ファイルシステムとしてＦＡＴ（File Allocation Table）を採用した場合、ファイルシステムには、予約領域１０１、ＦＡＴ領域１０２、ルートディレクトリ１０３およびデータ領域１０４が含まれる。なお、予約領域１０１、ＦＡＴ領域１０２、ルートディレクトリ１０３およびデータ領域１０４には、一例として最小の記録単位であるセクタの位置を示すセクタ番号「０００１〜２０００」、「１００１〜２０００」、「２００１〜３０００」および「３００１〜４０００」がそれぞれ割り当てられているものとする。
【００４７】
図１０Ｂは、ＦＡＴ領域１０２の一例を示す図である。ＦＡＴ領域１０２は、後述するデータ領域１０４においてファイルのデータが記録されているクラスタの位置を示すクラスタ番号１１１および、このクラスタ番号に継続するクラスタの位置を示す後続クラスタ番号１１２を含んで構成される。つまり、クラスタ番号と後続クラスタ番号とを終端記号１１３まで辿ることで、データ領域１０４において１つのファイルがどこに記録されているのかを把握できる。なお、クラスタとは、連続する複数のセクタをまとめて管理するための単位をいう。
【００４８】
図１０Ｃは、ルートディレクトリ１０３の一例を示す図である。ルートディレクトリ１０３は、ファイル名１２１、拡張子１２２、属性１２３、予約領域１２４、時刻１２５、日付１２６、先頭クラスタ番号１２７およびファイルサイズ１２８を含んで構成される。特に、ルートディレクトリ１０３を参照することにより、ファイル名１２１と先頭クラスタ番号１２７の対応関係が把握できる。
【００４９】
図１０Ｄは、データ領域１０４の一例を示す図である。データ領域１０４は、クラスタ番号１３１および実データ１３２を含んで構成される。クラスタ番号１３１が「４０１」のクラスタには実データ１３２としてファイル名「ａ」のデータの一部が記録される（ａのデータ（１））。同様にクラスタ番号「４０２」のクラスタには、ａのデータ（１）に継続する、ファイル名「ａ」のデータの一部が記録され（ａのデータ（２））、クラスタ番号「４０３」のクラスタにはａのデータ（２）に継続する、ファイル名「ａ」のデータの一部が記録される（ａのデータ（３））。
【００５０】
専用メモリ空間８０２から命令が１つ読み出された場合、ＣＰＵ２０２は、セクタ番号８６に基づいて、これに対応する書き込み先を判断する。例えば、上述したように、予約領域１０１、ＦＡＴ領域１０２、ルートディレクトリ１０３およびデータ領域１０４には、クラスタ番号の範囲が予め割り当てられているので、セクタ番号８６が「０００１〜２０００」であれば予約領域であり、「１００１〜２０００」であればＦＡＴ領域であり、「２００１〜３０００」であればルートディレクトリであり、「３００１〜４０００」であればデータ領域であると判断することができる。よって、図８Ｂのセクタ番号「３２０８」は、「３００１〜４０００」の範囲であるので、データ領域と判断される。
【００５１】
なお、書き込み先が予約領域である場合にはマスターブートレコード（ＭＢＲ）等の重要ファイルの書き換えであるため、処理を注しして、警告メッセージをディスプレイ出力するように構成してもよい。
【００５２】
ＣＰＵ２０２は、書き込み先がＦＡＴ領域１０２またはデータ領域１０４であると判断した場合には、書き込み先のファイル名を取得し（Ｏｐ９０６）、取得したファイル名を更新ファイルリストに追加する（Ｏｐ９０７）。例えば、図８Ｂに示す命令データが読み出された場合、セクタ番号８６「３２０８」が含まれるクラスタのクラスタ番号が「４０１」であるとすると、図１０Ｃのルートディレクトリに記録された先頭クラスタ番号１２７「４０１」に基づいてファイル名１２１「ａ」のファイルに対する書き込みであると判断する。
【００５３】
なお、セクタ番号８６が「３２１６」であった場合には、これに含まれるクラスタのクラスタ番号「４０２」を求めた後、図１０Ｂに示したＦＡＴ領域１０２からクラスタ番号を逆に辿ることで、ファイルが記録されている領域の先頭クラスタ番号「４０１」を取得して、これに対応するファイル名１２１が「ａ」であることを認識してもよい。
【００５４】
一方、ＣＰＵ２０２は、書き込み先がルートディレクトリであると判断した場合には、さらに書き込み内容を判断する（Ｏｐ９０４）。ＣＰＵ２０２は、図１０Ｃに示すルートディレクトリにおいて、書き込み内容が「ファイル名の変更」であると判断した場合、更新ファイルリストのファイル名を変更する（Ｏｐ９０５）。また、書き込み内容が「ファイルの追加」であると判断した場合、上記Ｏｐ９０６においてファイル名を取得した後、更新ファイルリストにファイル名を追加する（Ｏｐ９０７）。
【００５５】
図８Ｃは、更新ファイルリスト２０５ｄ（図２）の一例を示す図である。更新ファイルリスト２０５ｄには、ファイル名９１および更新日時９２が記録される。なお、更新ファイルリスト２０５ｄは、仮想マシン管理部２において、制御用仮想マシン３からアクセス可能な領域に作成される。例えば、仮想マシン管理部２のファイル公開機能によってアクセス可能なデータ領域に作成される。
【００５６】
［１−５．制御用仮想マシン３の処理（２）］
図５のＯｐ５０３において制御用仮想マシン３が仮想マシン管理部２に社内ネットワークに接続していない旨の通知を行った後においても、図５のＯｐ５０１において説明したネットワーク接続判断処理（図６）が繰り返し実行されている。制御用仮想マシン３を機能させるＣＰＵ２０２は、ネットワーク接続判断処理においてユーザ用仮想マシン４が社内ネットワークに接続していると判断した場合（Ｏｐ５０４、Ｙｅｓ）、仮想マシン管理部２にその旨を通知する（Ｏｐ５０５）。例えば、ノート型パーソナルコンピュータであるファイル検疫装置１が外出先から社内ネットワークに接続された場合がこれに該当する。
【００５７】
仮想マシン管理部２のＣＰＵ２０２は、ユーザ用仮想マシン４が社内ネットワークに接続している旨の通知を受けた場合、図７のＯｐ７０４においてＯｐ７０５〜Ｏｐ７０７の処理を実行しない。つまり、更新ファイルリストの作成処理を実行しない。これにより、ユーザ用仮想マシン４が社内ネットワークに接続していない期間に更新されたファイルのみについて、更新ファイルリストを作成することができる。
【００５８】
Ｏｐ５０５の後においてＣＰＵ２０２は、検疫実施処理を実行する（Ｏｐ５０６）。図１１は、検疫実施処理のフローチャートの一例を示す図である。ＣＰＵ２０２は、検疫実施処理を実行する場合、まずユーザ用仮想マシン４を一時的に停止させる（Ｏｐ１１０１）。具体的には、図２に示した動作管理部３２の機能を用いて、ユーザ用仮想マシン４を一時的に停止させる。
【００５９】
ＣＰＵ２０２は、ユーザ用仮想マシン４のディスク領域をマウントする（Ｏｐ１１０２）。これらの処理により、制御用仮想マシン３が、ディスク・ストレージ５においてユーザ用仮想マシン４に割り当てられたディスク領域を、ユーザ用仮想マシン４と競合することなく安全に使用することができる。
【００６０】
続いてＣＰＵ２０２は、検疫クライアント処理を実行する（Ｏｐ１１０３）。図１２は、検疫クライアント処理のフローチャートの一例を示す図である。検疫クライアント処理を実行するＣＰＵ２０２は、検疫クライアントを起動する（Ｏｐ１２０１）。例えば、検疫クライアントは、制御用仮想マシン３内において生成された新たな仮想マシンとして実行される。図１３は、検疫処理部３３において実行される検疫クライアント１３０１の構成例を示す図である。検疫クライアント１３０１は、ウィルス対策プログラム１３０２およびパターンファイル１３０３を含んで構成される。
【００６１】
検疫クライアント１３０１を起動すると、ＣＰＵ２０２は検疫クライアント内においてウィルス対策プログラム１３０２を実行させる（Ｏｐ１２０２）。ウィルス対策プログラム１３０２を実行するＣＰＵ２０２は、ファイル検疫装置１とネットワークを介して接続されたウィルス対策サーバ１３１２にアクセスしてパターンファイル１３０３を更新する。
【００６２】
次に、ＣＰＵ２０２は、仮想マシン管理部２に保持されている更新ファイルリスト２０５ｄを読み込む（Ｏｐ１２０４）。図８Ｃに示したように、更新ファイルリスト２０５ｄには、更新対象となったファイル名が含まれているため、ＣＰＵ２０２は、このファイル名に対応する各ファイルについてウィルススキャンを実行する（Ｏｐ１２０５）。このため、全ファイルのウィルススキャンを回避して、検疫処理を迅速に行うことができる。
【００６３】
また、検疫クライアント１３０１は、検疫サーバ１３１１と接続可能に構成される。検疫サーバ１３１１は、検疫クライアント１３０１から通知された検疫処理結果に基づいて、ファイル検疫装置１が社内ネットワークに接続可能であることを認証する（Ｏｐ１２０６）。例えば、検疫処理結果によって社内ネットワークに重大な被害を及ぼす可能性が低いと判断される場合、検疫サーバ１３１１がファイル検疫装置１を認証することにより、ＬＡＮ機器等の設定が変更されてファイル検疫装置１が社内ネットワークに接続可能となる。
【００６４】
図１１に戻って、Ｏｐ１１０３の検疫クライアント処理が終了すると、ＣＰＵ２０２は、ウィルスがない場合またはウィルス駆除に成功した場合（Ｏ１１０４、Ｙｅｓ）、ユーザ用仮想マシン４のディスク領域のマウントを解除した後（Ｏｐ１１０５）、ユーザ用仮想マシン４の一時停止を解除する（Ｏｐ１１０７）。
【００６５】
一方、ＣＰＵ２０２は、ウィルスが検出された場合またはウィルス駆除に失敗した場合に（Ｏ１１０４、Ｎｏ）、ディスプレイ２０１にウィルス感染した可能性がある旨のメッセージを表示する（Ｏｐ１１０６）。
【００６６】
図５において、Ｏｐ５０６の検疫実施処理が終了すると、制御用仮想マシン３を実行するＣＰＵ２０２は、Ｏｐ５０２に戻り処理（Ｏｐ５０２〜Ｏｐ５０６）を繰り返す。
【００６７】
この実施形態において、ファイル監視部２１は、一例として、図７のＯｐ７０１〜Ｏｐ７０５の処理機能を含む。更新ファイルリスト作成部２２は、一例として、図７のＯｐ７０７および図９の処理機能を含む。検疫処理部３３は、一例として、図５のＯｐ５０６、図１１および図１２の処理機能を含む。ネットワーク接続判断部３１は、一例として、図５のＯｐ５０１および図６の処理機能を含む。動作管理部３２は、一例として、図１１のＯｐ１１０１およびＯｐ１１０７の処理機能を含む。
【００６８】
［１−６．変形例］
本実施形態にかかるファイル検疫装置は、ユーザ操作に基づく処理を実行するユーザ用仮想マシンと、前記ユーザ用仮想マシンからの依頼を受け付けて、物理データ領域にアクセスする仮想マシン管理部と、前記ユーザ用仮想マシンから前記仮想マシン管理部に対して更新が依頼されたファイルを監視するファイル監視部と、前記ファイル監視部の出力に基づいて、前記仮想マシン管理部において前記ユーザ用仮想マシンのために更新されたファイルがいずれであるかを示す更新ファイルリストを作成する更新ファイルリスト作成部とを備える構成としてもよい。これにより、他のコンピュータ装置に更新ファイルリストを与え、該他のコンピュータ装置に検疫処理を実行させるファイル検疫補助装置としても機能させることができる。
【００６９】
［２．第２の実施形態］
本実施形態にかかるファイル検疫装置も、第１の実施形態と同様に、ＣＰＵを備えるコンピュータ装置（例えば、ノート型パーソナルコンピュータ。）によって構成される。本実施形態においては、第１の実施形態のように、制御用仮想マシン３の検疫処理部３３が、制御用仮想マシン３内において実行されるのではなく、別途起動される検疫用仮想マシンにおいて実行される例について説明する。
【００７０】
一般的に、検疫に用いるウィルス対策プログラムが利用するパターンファイルは検疫対象とするＯＳの種類によって異なる。制御用仮想マシン３のＯＳと、ユーザ用仮想マシン４のＯＳが異なる場合、各ＯＳが採用するファイルシステムも異なるため、制御用仮想マシン３が認識可能なパターンファイルを用いてユーザ用仮想マシン４のファイルを検疫することは困難である。
【００７１】
本実施形態にかかるファイル検疫装置は、ユーザ用仮想マシンを制御する制御用仮想マシンをさらに備え、前記制御用仮想マシンは、検疫処理部として検疫用仮想マシンを起動させ、当該検疫用仮想マシンに前記検疫処理を実行させ、前記検疫処理が終了した場合に当該検疫用仮想マシンを停止させる。よって、検疫用仮想マシンを用いて、制御用仮想マシンの処理負荷を分散させることができる。また、ユーザ用仮想マシンと共通するファイルシステムを採用する検疫用仮想マシンを用いて検疫処理を実行することができる。
【００７２】
本実施形態にかかるファイル検疫装置は、制御用仮想マシン実行部は、前記ユーザ用仮想マシン実行部のＯＳに応じて、起動させる検疫用仮想マシン実行部のＯＳを決定する。よって、ユーザ用仮想マシンと制御用仮想マシンのＯＳが異なっている場合であっても、検疫用仮想マシンのＯＳをユーザ用仮想マシンと一致させることにより、同一のファイルシステムにおいて管理されているファイルを取り扱うことができる。
【００７３】
［２−１．システム構成、ハードウェア構成および各部の処理］
図１４は、本実施形態にかかるファイル検疫装置のシステムの構成例を示す図である。また、本実施形態にかかるファイル検疫装置１のハードウェアの構成例は、第１の実施形態で説明した図３と同様である。図１４においては、図２の構成に比べて、制御用仮想マシン３から検疫処理部３３が削除され、ファイル検疫装置１内において検疫用仮想マシン６が追加されている。
【００７４】
検疫用仮想マシン６は、制御用仮想マシン３によって、別の仮想マシンとして起動される。検疫用仮想マシン６の機能は、図２において示した検疫処理部３３と同様である。また、この場合、検疫用仮想マシン６は、ユーザ用仮想マシン４と同一のＯＳを実行する仮想マシンとして起動される。なお、図４〜図１３において説明した各部の具体的な処理内容は、第１の実施形態と同様である。
【００７５】
［３．第３の実施形態］
本実施形態にかかるファイル検疫装置も、第１の実施形態と同様に、ＣＰＵを備えるコンピュータ装置（例えば、ノート型パーソナルコンピュータ。）によって構成される。本実施形態においては、第１の実施形態のように、図１１の検疫実施処理が、ネットワーク接続判断部３１によって制御される場合だけではなく、ユーザ指示を受けて所定条件を満たす場合にも実行される例について説明する。
【００７６】
例えば、長期間の外出が続く場合においては、外出中に更新されるファイル数が多くなり、帰着後の処理が長くなる可能性がある。この際に、外出中に最新のウィルスパターンでウィルス検査を行うことができれば、帰着後の検疫処理の時間を短縮させることができる。本実施形態においては、検疫処理の時間を短縮させるため、ウィルス対策のパターンファイルを配布するサーバをイントラネットだけでなく、インターネット等を通じて外出先からアクセス可能とする。
【００７７】
本実施形態にかかるファイル検疫装置は、最新のウィルスパターンファイルを取得可能であるか否かを判断するパターンファイル取得可否判断部を備え、検疫処理部は、パターンファイル取得可否判断部において最新のウィルスパターンファイルを取得可能であると判断される場合に、前記更新ファイルリストに基づいてコンピュータウィルスの検疫処理を実行する。よって、社内ネットワークに接続した後にウィルス対策サーバからパターンファイルを取得しなくても、効率的に検疫処理を行うことができる。
【００７８】
［３−１．システム構成、ハードウェア構成および各部の処理］
図１５は、本実施形態にかかるファイル検疫装置のシステムの構成例を示す図である。また、本実施形態にかかるファイル検疫装置１のハードウェアの構成例は、第１の実施形態で説明した図３と同様である。図１５においては、図２の構成に比べて、パターンファイル取得可否判断部３４が追加されている。
【００７９】
ユーザ操作を受けると、パターンファイル取得可否判断部３４を機能させるＣＰＵ２０２は、ネットワーク・インタフェース９を介して、パターンファイルが取得可能か判断する。例えば、公衆ＬＡＮを介して所定のサーバにアクセスしてパターンファイルが取得可能か否かを判断する。取得可能であれば、図１１に示した検疫実施処理のフローチャートを実行する。なお、図４〜図１３において説明した各部の具体的な処理内容は、第１の実施形態と同様である。
【００８０】
［４．第４の実施形態］
本実施形態にかかるファイル検疫装置も、第１の実施形態と同様に、ＣＰＵを備えるコンピュータ装置（例えば、ノート型パーソナルコンピュータ。）によって構成される。本実施形態においては、第１の実施形態のように、ネットワーク接続判断部３１からの制御によって作成された更新ファイルリスト２０５ｄに基づいて検疫対象のファイルを特定するのではなく、ネットワーク非接続期間記録部を設けておき、ネットワークに接続していなかった期間に更新されたファイルを特定して検疫処理を行う例について説明する。
【００８１】
例えば、社内ネットワークに接続していない場合にのみ更新ファイルリストを作成するのではなく、更新時のタイムスタンプを含む更新ファイルリストを常時作成しておき、ネットワークに非接続であった期間の情報に基づいてウィルススキャンの対象とすべきファイルを特定する。
【００８２】
本実施形態にかかるファイル検疫装置は、所定ネットワークに接続されていなかった期間を記録するネットワーク非接続期間記録部を備え、更新ファイルリスト作成部によって作成される更新ファイルリストは、各ファイルについてのタイムスタンプを含み、検疫処理部は、ネットワーク非接続期間記録部によって記録された期間と前記タイムスタンプとに基づいて、前記検疫処理の対象ファイルを決定する。よって、常時更新ファイルリストを作成していた場合であっても、精度よく対象ファイルを特定して効率的に検疫処理を行うことができる。
【００８３】
［４−１．システム構成、ハードウェア構成および各部の処理］
図１６は、本実施形態にかかるファイル検疫装置のシステムの構成例を示す図である。また、本実施形態にかかるファイル検疫装置１のハードウェアの構成例は、第１の実施形態で説明した図３と同様である。図１６においては、図２の構成に比べて、ネットワーク非接続期間記録部３５が追加されている。また、更新ファイルリスト作成部２２を機能させるＣＰＵ２０２は、常時更新ファイルリスト２０５ｄを作成しており、ネットワーク接続判断部３１から更新ファイルリスト作成部２２への制御命令は行われない。
【００８４】
ネットワーク接続判断部３１を機能させるＣＰＵ２０２は、は、ネットワーク非接続期間記録部３５に対して、ネットワークの接続状態を通知する。これを受けて、ネットワーク非接続期間記録部３５を機能させるＣＰＵ２０２は、ネットワークが非接続である期間を記録する。例えば、非接続と判断された時刻と接続と判断された時刻を記録する。
【００８５】
検疫処理部３３を機能させるＣＰＵ２０２は、ネットワーク非接続期間記録部３５からネットワークが非接続であった期間を取得し、更新ファイルリストのファイル更新日付が、ネットワークが非接続である期間に該当するファイルをスキャン対象ファイルとして特定する。例えば、スキャン対象ファイルを特定する処理は、図１１に示した検疫実施処理のＯｐ１１０３の前に実行すればよい。また、図１２に示した検疫クライアント処理のＯｐ１２０４前に実行してもよい。なお、図４〜図１３において説明した各部の具体的な処理内容は、第１の実施形態と同様である。
【００８６】
［５．第５の実施形態］
本実施形態にかかるファイル検疫装置も、第１の実施形態と同様に、ＣＰＵを備えるコンピュータ装置（例えば、ノート型パーソナルコンピュータ。）によって構成される。本実施形態においては、第１の実施形態のように、ネットワーク接続判断部３１からの制御によって作成された更新ファイルリスト２０５ｄに基づいて検疫対象のファイルを特定するのではなく、第４の実施形態と同様に、ネットワーク非接続期間記録部を設けておき、ネットワークに接続しない期間に更新されたファイルを特定して検疫処理を行う例について説明する。但し、本実施形態においては、ネットワーク接続判断部がウィルススキャンの対象ファイルを特定する。
【００８７】
本実施形態にかかるファイル検疫装置は、所定ネットワークに接続されていなかった期間を記録するネットワーク非接続期間記録部を備え、更新ファイルリスト作成部によって作成される前記更新ファイルリストは、各ファイルについてのタイムスタンプを含み、ネットワーク接続判断部は、前記期間と前記タイムスタンプとに基づいて、前記検疫処理の対象ファイルを決定する。よって、常時更新ファイルリストを作成していた場合であっても、精度よく対象ファイルを特定して効率的に検疫処理を行うことができる。
【００８８】
［５−１．システム構成、ハードウェア構成および各部の処理］
図１７は、本実施形態にかかるファイル検疫装置のシステムの構成例を示す図である。また、本実施形態にかかるファイル検疫装置１のハードウェアの構成例は、第１の実施形態で説明した図３と同様である。図１７においては、図２の構成に比べて、ネットワーク非接続期間記録部３５が追加されている。また、更新ファイルリスト作成部２２を機能させるＣＰＵ２０２は、常時更新ファイルリスト２０５ｄを作成しており、ネットワーク接続判断部３１から更新ファイルリスト作成部２２への制御命令は行われない。
【００８９】
ネットワーク接続判断部３１を機能させるＣＰＵ２０２は、更新ファイルリスト２０５ｄおよびネットワーク非接続期間記録部３５からの社内ネットワークの非接続期間に基づいて、ウィルススキャン対象のファイルを決定する。図１８は、本実施形態の制御用仮想マシン３における処理フローチャートである。図１８においては、図５に対して、Ｏｐ５０３ａおよびＯｐ５０５ａが変更され、Ｏｐ５０５ｂが追加されている。すなわち、Ｏｐ５０３ａおよびＯｐ５０５ａにおいて、ネットワーク非接続期間記録部３５に社内ネットワークの接続／非接続が通知される。また、Ｏｐ５０６の前にスキャン対象ファイルの決定を行う（Ｏｐ５０５ｂ）。なお、図４、図６〜図１３において説明した各部の具体的な処理内容は、第１の実施形態と同様である。
【００９０】
［６．第６の実施形態］
本実施形態にかかるファイル検疫装置も、第１の実施形態と同様に、ＣＰＵを備えるコンピュータ装置（例えば、ノート型パーソナルコンピュータ。）によって構成される。本実施形態においては、ファイルが記録されている記録領域を複写してスキャン対象ファイルの特定を行う例について説明する。
【００９１】
例えば、ディスクに対するセクタ単位の書き込みから実際に書き換えが発生したファイルを特定する場合に、ディスクに対する書き込みとディスクの現在の状態から判定する必要がある。しかし、ディスクの現在の状態を対象ファイル特定のための解析作業に用いると、解析の終了まで実際の書き込みを行うことができない。本実施形態においては、書き込みの遅延を回避するため、ユーザ環境が利用するディスク領域の複写（写し）を外出時に作成しておき、解析作業とユーザ環境によるディスクの書き換えを並行して行う。ディスクの複写（写し）の作成は、ネットワーク接続判断部からの通知を契機として行う。
【００９２】
本実施形態にかかるファイル検疫装置は、所定ネットワークに接続されているか否かを判断するネットワーク接続判断部と、前記ネットワーク接続判断部において前記ファイル検疫装置が前記所定ネットワークに接続されていないと判断される場合に、前記仮想マシン管理部において管理されるユーザ用仮想マシンのためのファイルの記録領域を複製して、複写領域を作成する記録領域複製部とをさらに備え、前記更新ファイルリスト作成部は、前記複写領域に記録されたファイルに基づいて前記更新ファイルリストを作成する。よって、複写した記録領域により、効率的に更新ファイルリストを作成することができる。
【００９３】
［６−１．システム構成、ハードウェア構成および各部の処理］
図１９は、本実施形態にかかるファイル検疫装置のシステムの構成例を示す図である。また、本実施形態にかかるファイル検疫装置１のハードウェアの構成例は、第１の実施形態で説明した図３と同様である。図１９においては、図２の構成に比べて、仮想マシン管理部２における記録領域複製部２３が追加されている。記録領域複製部２３を機能させるＣＰＵ２０２は、ネットワーク接続判断部３１からの通知を受けると、ディスク・ストレージ５の原本領域５１を複写領域５２に複写する処理を行う。ここで原本領域とは、ユーザ用仮想マシン４に割り当てられた領域であって元のファイルが記録されている領域である。
【００９４】
また、更新ファイルリスト作成部２２を機能させるＣＰＵ２０２は、複写領域５２に基づいて更新ファイルリスト２０５ｄを作成する。なお、図４〜図１３において説明した各部の具体的な処理内容は、第１の実施形態と同様である。さらに、検疫処理部３３は、原本領域５１および複写領域５２のいずれに対して検疫処理を実施してもよい。
【００９５】
［７．第７の実施形態］
本実施形態にかかるファイル検疫装置も、第１の実施形態と同様に、ＣＰＵを備えるコンピュータ装置（例えば、ノート型パーソナルコンピュータ。）によって構成される。本実施形態においては、ファイルが記録されている記録領域に仮想ディスクを用いて、スキャン対象ファイルの特定を行う例について説明する。
【００９６】
例えば、書き込みが発生したファイルを特定する処理（更新ファイル作成処理）に、実際のディスクの内容を用いる場合は、その他の処理による書き込みを遅延させることがある。本実施形態では仮想ディスク機能を利用することにより、その他の処理による書き込みを遅延させることなく更新ファイル作成処理を可能とする。
【００９７】
具体的には、仮想ディスク機能を用いることにより、原本領域を保持した状態で、変更内容を差分領域において管理する。これにより、仮想マシン管理部２の外部からは常に最新のディスク内容が参照でき、仮想マシン管理部２の内部からは原本領域が参照できる。
【００９８】
本実施形態にかかるファイル検疫装置は、前記仮想マシン管理部において管理されるユーザ用仮想マシンのためのファイルの記録領域は、原本領域と差分領域とから構成され、前記ユーザ用仮想マシンから前記仮想マシン管理部に対して更新が依頼されたファイルを前記差分領域に記録する仮想記録領域であり、前記更新ファイルリスト作成部は、前記原本領域および前記差分領域に記録されたファイルに基づいて前記更新ファイルリストを作成する。よって、差分領域の内容を原本領域に反映させて、効率的に更新ファイルリストを作成することができる。
【００９９】
［７−１．システム構成、ハードウェア構成および各部の処理］
図２０は、本実施形態にかかるファイル検疫装置のシステムの構成例を示す図である。また、本実施形態にかかるファイル検疫装置１のハードウェアの構成例は、第１の実施形態で説明した図３と同様である。図２０においては、図２の構成に比べて、仮想マシン管理部２における仮想ディスク機能部２４が追加されている。仮想ディスク機能部２４は、ネットワーク接続判断部３１からの通知を受けると、ディスク・ストレージ５の差分領域５５を原本領域５６に反映させる処理を行う。ここで原本領域とは、ユーザ用仮想マシン４に割り当てられた領域であって元のファイルが記録されている領域である。
【０１００】
また、更新ファイルリスト作成部２２は、差分領域５５および原本領域５６に基づいて更新ファイルリスト２０５ｄを作成する。なお、図４〜図１３において説明した各部の具体的な処理内容は、第１の実施形態と同様である。
【０１０１】
［８．第８の実施形態］
本実施形態にかかるファイル検疫装置も、第１の実施形態と同様に、ＣＰＵを備えるコンピュータ装置（例えば、ノート型パーソナルコンピュータ。）によって構成される。本実施形態においては、ファイル名とセクタ情報との対応関係に基づいてスキャン対象ファイルの特定を行う例について説明する。
【０１０２】
例えば、予めディスク領域の内容からファイル(パス名)とそのファイルが実際に格納されているセクタの番号の対応表を作成しておくことにより、更新ファイルリスト作成処理において、書き込み命令の対象となったファイルを容易に特定することができる。
【０１０３】
本実施形態にかかるファイル検疫装置は、ユーザ用仮想マシンがアクセス可能なファイルと、物理データ領域において前記ファイルが記録されている位置情報との対応関係を保持した対応関係保持部を備え、更新ファイルリスト作成部は、ファイル監視部の出力および前記対応関係保持部に基づいて更新ファイルリストを作成する。よって、ファイルと記録位置との対応関係に基づいて、効率的に更新ファイルリストを作成することができる。
【０１０４】
［８−１．システム構成、ハードウェア構成および各部の処理］
図２１は、本実施形態にかかるファイル検疫装置のシステムの構成例を示す図である。また、本実施形態にかかるファイル検疫装置１のハードウェアの構成例は、第１の実施形態で説明した図３と同様である。図２１においては、図２の構成に比べて、仮想マシン管理部２における対応関係保持部２５が追加されている。対応関係保持部２５は、ディスク・ストレージ５においてユーザ用仮想マシン４に割り当てられた領域に記録されているファイルとその位置情報であるセクタ情報とを対応付けて記録したものである。対応関係保持部２５は、ネットワーク接続判断部３１からの通知を受けて作成してもよいし、任意のタイミングで作成してもよい。
【０１０５】
また、更新ファイルリスト作成部２２は、対応関係保持部２５に基づいて更新ファイルリスト２０５ｄを作成する。図２２は、対応関係保持部２５の一例を示す図である。例えば、対応関係保持部２５には、ファイル名２２１、セクタ番号（１）２２２、セクタ番号（２）２２３、…、セクタ番号（ｎ）２２４等が記録される。
【０１０６】
更新ファイルリスト作成部２２を機能させるＣＰＵ２０２は、図８Ｂに示した書き込み命令がセクタ番号８６と合致するセクタ番号を対応関係保持部２５（セクタ番号（１）２２２、セクタ番号（２）２２３、…、セクタ番号（ｎ）２２４）から抽出し、このセクタ番号に対応付けられたファイル名を更新ファイルリスト２０５ｄに記録する。なお、図４〜図１３において説明した各部の具体的な処理内容は、第１の実施形態と同様である。
【０１０７】
［９．第９の実施形態］
本実施形態にかかるファイル検疫装置も、第１の実施形態と同様に、ＣＰＵを備えるコンピュータ装置（例えば、ノート型パーソナルコンピュータ。）によって構成される。本実施形態においては、更新ファイルリスト２０５ｄを仮想マシン管理部２と制御用仮想マシン３との共有メモリに作成する。
【０１０８】
例えば、社内ネットワークに接続後においては、更新ファイルリスト２０５ｄにファイル名が存在するファイルに対してウィルスチェック処理が行われる。上述したように、更新ファイルリスト２０５ｄは、例えば、仮想マシン管理部２のファイル公開機能を用いて制御用仮想マシン３からアクセス可能に設定される。しかし、仮想マシン管理部２と制御用仮想マシン３との共有メモリに更新ファイルリスト２０５ｄを作成しておけば、ファイル公開機能を用いる必要はない。
【０１０９】
本実施形態にかかるファイル検疫装置は、更新ファイルリスト作成部が作成する更新ファイルリストは、仮想マシン管理部および制御用仮想マシンが共通してアクセスできる領域に記録される。よって、仮想マシン管理部２の処理負荷を低減させて、効率的に更新ファイルリストを公開することができる。
【０１１０】
［９−１．システム構成、ハードウェア構成および各部の処理］
図２２は、本実施形態にかかるファイル検疫装置のシステムの構成例を示す図である。また、本実施形態にかかるファイル検疫装置１のハードウェアの構成例は、第１の実施形態で説明した図３と同様である。図２２においては、図２の構成に比べて、仮想マシン管理部２と制御用仮想マシン３との共有メモリ２６に更新ファイルリスト２０５ｄが作成される。なお、図４〜図１３において説明した各部の具体的な処理内容は、第１の実施形態と同様である。
【０１１１】
［１０．第１０の実施形態］
本実施形態にかかるファイル検疫装置も、第１の実施形態と同様に、ＣＰＵを備えるコンピュータ装置（例えば、ノート型パーソナルコンピュータ。）によって構成される。本実施形態においては、更新ファイル作成部２２の処理を仮想マシン管理部２ではなく制御用仮想マシン３において実行する。
【０１１２】
例えば、制御用仮想マシン３から仮想マシン管理部２のディスク・ストレージ５にアクセス可能に設定しておくことにより、制御用仮想マシン３において更新ファイルリスト作成処理を実行可能である。
【０１１３】
本実施形態にかかるファイル検疫装置において、更新ファイルリスト作成部は、前記制御用仮想マシンにおいて実行される。よって、仮想マシン管理部２の処理負荷を低減させて、効率的に更新ファイルリストを公開することができる。
【０１１４】
［１０−１．システム構成、ハードウェア構成および各部の処理］
図２４は、本実施形態にかかるファイル検疫装置のシステムの構成例を示す図である。また、本実施形態にかかるファイル検疫装置１のハードウェアの構成例は、第１の実施形態で説明した図３と同様である。図２４においては、図２の構成に比べて、制御用仮想マシン３において更新ファイルリスト作成部２２が設けられ、更新ファイルリスト２５ｄも制御用仮想マシン３に保持される。なお、制御用仮想マシン３からディスク・ストレージ５にアクセス可能とする設定は、仮想マシン管理部２のファイル公開機能によって実現すればよい。なお、図４〜図１３において説明した各部の具体的な処理内容は、第１の実施形態と同様である。
【０１１５】
［１１．その他の実施形態］
［１１−１．実施形態の組み合わせ］
上記第１〜第１０の実施形態において説明した構成の一部または全部を、２以上組み合わせた構成としてもよい。
【０１１６】
［１１−２．各機能ブロックの実現方法］
上記実施形態においては、図２等に示す各機能ブロックを、ソフトウェアを実行するＣＰＵの処理によって実現している。しかし、その一部もしくは全てを、ロジック回路等のハードウェアによって実現してもよい。なお、プログラムの一部の処理をさらに、オペレーティング・システム（ＯＳ）にさせるようにしてもよい。
【０１１７】
以上の実施形態に関し、更に以下の付記を開示する。
【０１１８】
（付記１）
ユーザ操作に基づく処理を実行するユーザ用仮想マシンと、
前記ユーザ用仮想マシンからの依頼を受け付けて、物理データ領域にアクセスする仮想マシン管理部と、
前記ユーザ用仮想マシンから前記仮想マシン管理部に対して更新が依頼されたファイルを監視するファイル監視部と、
前記ファイル監視部の出力に基づいて、前記仮想マシン管理部において前記ユーザ用仮想マシンのために更新されたファイルがいずれであるかを示す更新ファイルリストを作成する更新ファイルリスト作成部と、
前記更新ファイルリストに示されたファイルに対して、コンピュータウィルスの検疫処理を実行する検疫処理部とを備えるファイル検疫装置。
【０１１９】
（付記２）
所定ネットワークに接続されているか否かを判断するネットワーク接続判断部をさらに備え、
前記更新ファイルリスト作成部は、前記ネットワーク接続判断部において前記ファイル検疫装置が前記所定ネットワークに接続されていないと判断される場合に、前記更新ファイルリストを作成する、付記１に記載のファイル検疫装置。
【０１２０】
（付記３）
前記検疫処理部において検疫処理が実行されている間、前記ユーザ用仮想マシンの動作を停止させる動作管理部をさらに備える、付記１または２に記載のファイル検疫装置。
【０１２１】
（付記４）
前記ユーザ用仮想マシンを制御する制御用仮想マシンをさらに備え、
前記制御用仮想マシンは、検疫処理部として検疫用仮想マシンを起動させ、当該検疫用仮想マシンに前記検疫処理を実行させ、前記検疫処理が終了した場合に当該検疫用仮想マシンを停止させる、付記１〜３のいずれか一項に記載のファイル検疫装置。
【０１２２】
（付記５）
前記制御用仮想マシン実行部は、前記ユーザ用仮想マシン実行部のＯＳに応じて、起動させる検疫用仮想マシン実行部のＯＳを決定する、付記４に記載のファイル検疫装置。
【０１２３】
（付記６）
最新のウィルスパターンファイルを取得可能であるか否かを判断するパターンファイル取得可否判断部をさらに備え、
前記検疫処理部は、パターンファイル取得可否判断部において最新のウィルスパターンファイルを取得可能であると判断される場合に、前記更新ファイルリストに基づいてコンピュータウィルスの検疫処理を実行する、付記１〜５のいずれか一項に記載のコンピュータ装置。
【０１２４】
（付記７）
所定ネットワークに接続されていなかった期間を記録するネットワーク非接続期間記録部をさらに備え、
前記更新ファイルリスト作成部によって作成される前記更新ファイルリストは、各ファイルについてのタイムスタンプを含み、
前記検疫処理部は、前記ネットワーク非接続期間記録部によって記録された期間と前記タイムスタンプとに基づいて、前記検疫処理の対象ファイルを決定する、付記１または３〜７のいずれか一項に記載のファイル検疫装置。
【０１２５】
（付記８）
所定ネットワークに接続されていなかった期間を記録するネットワーク非接続期間記録部をさらに備え、
前記更新ファイルリスト作成部によって作成される前記更新ファイルリストは、各ファイルについてのタイムスタンプを含み、
前記ネットワーク接続判断部は、前記期間と前記タイムスタンプとに基づいて、前記検疫処理の対象ファイルを決定する、付記１または３〜７のいずれか一項に記載のファイル検疫装置。
【０１２６】
（付記９）
所定ネットワークに接続されているか否かを判断するネットワーク接続判断部と、
前記ネットワーク接続判断部において前記ファイル検疫装置が前記所定ネットワークに接続されていないと判断される場合に、前記仮想マシン管理部において管理されるユーザ用仮想マシンのためのファイルの記録領域を複製して、複写領域を作成する記録領域複製部とをさらに備え、
前記更新ファイルリスト作成部は、前記複写領域に記録されたファイルに基づいて前記更新ファイルリストを作成する、付記１〜８のいずれか一項に記載のファイル検疫装置。
【０１２７】
（付記１０）
前記仮想マシン管理部において管理されるユーザ用仮想マシンのためのファイルの記録領域は、原本領域と差分領域とから構成され、前記ユーザ用仮想マシンから前記仮想マシン管理部に対して更新が依頼されたファイルを前記差分領域に記録する仮想記録領域であり、
前記更新ファイルリスト作成部は、前記原本領域および前記差分領域に記録されたファイルに基づいて前記更新ファイルリストを作成する、付記１〜８のいずれか一項に記載のファイル検疫装置。
【０１２８】
（付記１１）
前記ユーザ用仮想マシンがアクセス可能なファイルと、前記物理データ領域において前記
ファイルが記録されている位置情報との対応関係を保持した対応関係保持部をさらに備え、
前記更新ファイルリスト作成部は、前記ファイル監視部の出力および前記対応関係保持部に基づいて更新ファイルリストを作成する、付記１〜１０のいずれか一項に記載のファイル検疫装置。
【０１２９】
（付記１２）
前記更新ファイルリスト作成部が作成する更新ファイルリストは、前記仮想マシン管理部および前記制御用仮想マシンが共通してアクセスできる領域に記録される、付記１〜１１のいずれか一項に記載のファイル検疫装置。
【０１３０】
（付記１３）
前記更新ファイルリスト作成部は、前記制御用仮想マシンにおいて実行される、付記１〜１２のいずれか一項に記載のファイル検疫装置。
【０１３１】
（付記１４）
ユーザ操作に基づく処理を実行するユーザ用仮想マシンと、
前記ユーザ用仮想マシンからの依頼を受け付けて、物理データ領域にアクセスする仮想マシン管理部と、
前記ユーザ用仮想マシンから前記仮想マシン管理部に対して更新が依頼されたファイルを監視するファイル監視部と、
前記ファイル監視部の出力に基づいて、前記仮想マシン管理部において前記ユーザ用仮想マシンのために更新されたファイルがいずれであるかを示す更新ファイルリストを作成する更新ファイルリスト作成部とを備える、ファイル検疫補助装置。
【０１３２】
（付記１５）
ファイル検疫装置をコンピュータを用いて実現するためのファイル検疫プログラムであって、
ユーザ操作に基づく処理を実行するユーザ用仮想マシンを実行する処理と、
前記ユーザ用仮想マシンからの依頼を受け付けて、物理データ領域にアクセスする仮想マシン管理部を実行する処理と、
前記ユーザ用仮想マシンから前記仮想マシン管理部に対して更新が依頼されたファイルを監視するファイル監視処理と、
前記ファイル監視処理の出力に基づいて、前記仮想マシン管理部において前記ユーザ用仮想マシンのために更新されたファイルがいずれであるかを示す更新ファイルリストを作成する更新ファイルリスト作成処理と、
前記更新ファイルリストに示されたファイルに対するコンピュータウィルスの検疫処理とをコンピュータに実行させる、ファイル検疫プログラム。
【０１３３】
（付記１６）
ユーザ操作に基づく処理を実行するユーザ用仮想マシンを実行する工程と、
前記ユーザ用仮想マシンからの依頼を受け付けて、物理データ領域にアクセスする仮想マシン管理部を実行する工程と、
前記ユーザ用仮想マシンから前記仮想マシン管理部に対して更新が依頼されたファイルを監視するファイル監視工程と、
前記ファイル監視工程の出力に基づいて、前記仮想マシン管理部において前記ユーザ用仮想マシンのために更新されたファイルがいずれであるかを示す更新ファイルリストを作成する更新ファイルリスト作成工程と、
前記更新ファイルリストに示されたファイルに対するコンピュータウィルスの検疫処理を実行する検疫処理工程とを含むファイル検疫方法。
【符号の説明】
【０１３４】
１：ファイル検疫装置
２：仮想マシン管理部
３：制御用仮想マシン
４：ユーザ用仮想マシン
５：ディスク・ストレージ
９：ネットワーク・インタフェース
２１：ファイル監視部
２２：更新ファイルリスト作成部
３１：ネットワーク接続判断部
３２：動作管理部
３３：検疫処理部
４１：アプリケーション
４２：ＯＳ
【図１】
0005573216.tif 000002
【図２】
0005573216.tif 000003
【図３】
0005573216.tif 000004
【図４】
0005573216.tif 000005
【図５】
0005573216.tif 000006
【図６】
0005573216.tif 000007
【図７】
0005573216.tif 000008
【図８Ａ】
0005573216.tif 000009
【図８Ｂ】
0005573216.tif 000010
【図８Ｃ】
0005573216.tif 000011
【図９】
0005573216.tif 000012
【図１０Ａ】
0005573216.tif 000013
【図１０Ｂ】
0005573216.tif 000014
【図１０Ｃ】
0005573216.tif 000015
【図１０Ｄ】
0005573216.tif 000016
【図１１】
0005573216.tif 000017
【図１２】
0005573216.tif 000018
【図１３】
0005573216.tif 000019
【図１４】
0005573216.tif 000020
【図１５】
0005573216.tif 000021
【図１６】
0005573216.tif 000022
【図１７】
0005573216.tif 000023
【図１８】
0005573216.tif 000024
【図１９】
0005573216.tif 000025
【図２０】
0005573216.tif 000026
【図２１】
0005573216.tif 000027
【図２２】
0005573216.tif 000028
【図２３】
0005573216.tif 000029
【図２４】
0005573216.tif 000030