(57)【特許請求の範囲】
【請求項１】
ファイルシステムのウイルス対策スキャンを実行する方法であって、
前記ファイルシステムに記憶されたファイルについて、前記ファイルのスキャンが完了する前に中間スキャン結果を獲得することと、
前記ファイルシステムからリモートに位置するデータベースが、前記中間スキャン結果を前記データベースに記憶することと、
リモートウイルス対策サーバが、ファイルシステム内のファイルをスキャンするためにクライアント機器にマルウェアシグネチャを送信する前に、前記データベースに記憶された中間スキャン結果とマルウェアシグネチャのセットに関連したプレフィルタ情報とを比較し、前記マルウェアのシグネチャと関連付けられるプレフィルタ情報とマッチするファイルに関連したマルウェアシグネチャだけを前記クライアント機器に送信することと、
を含む方法。
【請求項２】
前記ファイルシステムの後続のウイルス対策スキャンの間に、前記ファイルシステムに記憶された前記ファイルの中間スキャンを実行する前に、前記ファイルに関連する中間スキャン結果が前記データベースにおいて利用可能であるかどうか判定することと、
中間スキャン結果が特定の種類の中間スキャンについて前記データベースにおいて利用可能である場合には前記ファイルの当該中間スキャンを実行せず、中間スキャン結果が特定の種類の中間スキャンについて前記データベースにおいて利用できない場合には前記ファイルの当該中間スキャンを実行することと、
を含む、請求項１に記載の方法。
【請求項３】
中間スキャン結果が、チェックサム、ファイルヘッダ情報、ファイルセクションの数、前記ファイルのハッシュ値、前記ファイルの部分のハッシュ値、エミュレーションからの重要データ、巡回冗長検査値、およびバイトサーチ結果のいずれかについてのスキャンから選択される結果である、請求項１または２に記載の方法。
【請求項４】
新しいマルウェアシグネチャが利用可能である場合に、前記データベースに記憶された前記結果から、前記新しいマルウェアのシグネチャと関連付けられるプレフィルタ情報とマッチし得ないファイルを決定し、当該ファイルを前記ファイルシステムの後続のスキャンから除外することをさらに含む、請求項１から３のいずれか１項に記載の方法。
【請求項５】
プレフィルタ情報が、最終スキャンの日付、ファイルの種類、ファイルサイズ、ファイルセクションの数、ファイルヘッダ情報、前記ファイルのハッシュ値、前記ファイルの部分のハッシュ値、巡回冗長検査値、およびバイトサーチ結果のいずれかから選択される、請求項４に記載の方法。
【請求項６】
前記データベースにファイルが最後に変更された日付を記憶することと、
マルウェアによる感染が最初に可能であったのはいつか推定することと、
前記ファイルシステムの後続のスキャンにおいて、マルウェアによる感染が最初に可能になる前に最後に変更されたファイルを前記スキャンから省くことと、
をさらに含む、請求項１乃至５のいずれか１項に記載の方法。
【請求項７】
前記データベースにファイルが最後にスキャンされた日付を記憶することと、
前記ファイルが最後にスキャンされた前記日付をウイルス対策データベースが新しいマルウェア定義で更新された日付と比較することと、
前記ファイルシステムの後続のスキャンにおいて、前記ウイルス対策データベースが前記新しいマルウェア定義で更新された後で最後にスキャンされたファイルを前記スキャンから省くことと、
をさらに含む、請求項６に記載の方法。
【請求項８】
前記中間スキャン結果データベースにおいて、複数のクライアント機器において記憶された複数のファイルシステムのいずれかについての中間スキャン結果を記憶することと、
クライアント機器ごとに、前記クライアント機器の地理的位置およびファイルが前記クライアント機器におけるファイルシステムに記憶された時刻のいずれかを含む追加的なデータを記憶することと、
リモートのウイルス対策サーバにおいて、前記追加的なデータを使って、ファイルの全部または一部のサンプルを要求すべき相手のクライアント機器のセットを決定することと、
前記クライアント機器のセットの各クライアント機器にファイルの全部または一部のサンプルを求める要求を送信することと、
をさらに含む、請求項１に記載の方法。
【請求項９】
ファイルシステムを記憶するためのメモリと、
前記ファイルシステムに記憶された少なくとも１つのファイルのウイルス対策スキャンを実行するための、前記ファイルの少なくとも１回の中間スキャンを実行するように構成されているウイルス対策機能と、
前記少なくとも１回の中間スキャン結果を中間スキャン結果データベースに記憶するための手段と、
前記中間スキャン結果データベースにデータを読み込むために前記中間スキャン結果をリモートノードに送信するための送信機と、
リモートのウイルス対策サーバから、前記データベースに記憶された前記中間スキャン結果と前記ファイルシステム内の前記ファイルに関連したマルウェアシグネチャのセットに関連したプレフィルタ情報とを比較することによって、前記リモートのウイルス対策サーバにおいて決定されるマルウェアシグネチャのセットを受信するための手段と、
を備えるコンピュータ機器。
【請求項１０】
前記ウイルス対策機能がさらに、前記ファイルシステム内の前記ファイルの後続のスキャンを実行し、前記ファイルの中間スキャンを実行する前に、前記ファイルに関連する中間スキャン結果が前記データベースにおいて利用可能であるかどうか判定するように構成されており、
中間スキャン結果が前記中間スキャンについて前記データベースにおいて利用可能である場合には、前記ウイルス対策機能が前記ファイルの当該中間スキャンを実行しないように構成され、前記中間スキャン結果が前記中間スキャンについて前記データベースにおいて利用できない場合には、前記ウイルス対策機能が前記ファイルの当該中間スキャンを実行するように構成される、請求項９に記載のコンピュータ機器。
【請求項１１】
通信ネットワークで使用するためのウイルス対策サーバであって、
複数のファイルが記憶されるファイルシステムを有するクライアント機器と通信するための手段と、
前記ファイルシステム内の少なくとも１つのファイルの少なくとも１回の中間スキャンを含むウイルス対策スキャンを実行するように構成されたプロセッサと、
前記中間スキャン結果を中間スキャン結果データベースに記憶するための手段と、
を備え、
前記プロセッサがさらに、前記データベースに記憶された前記中間スキャン結果と、前記クライアント機器における前記ファイルシステム内の前記ファイルに関連したマルウェアシグネチャのセットに関連したプレフィルタ情報とを比較するように構成されており、
前記クライアント機器と通信するための前記手段が、前記マルウェアのシグネチャと関連付けられるプレフィルタ情報とマッチするファイルに関連したマルウェアシグネチャのセットだけを前記クライアント機器に送信するように構成されている、
ウイルス対策サーバ。
【請求項１２】
前記プロセッサがさらに、前記中間スキャン結果データベースにおいて記憶されたデータを使って、ファイルの全部または一部のサンプルを要求すべき相手のクライアント機器のセットを決定するように構成されており、
前記クライアント機器と通信するための前記手段が、前記クライアント機器にファイルの全部または一部のサンプルを求める要求を送信するように構成されている、請求項１１に記載のウイルス対策サーバ。
【請求項１３】
プログラム可能なコンピュータ上で実行されると、前記プログラム可能なコンピュータにファイルシステムのウイルス対策スキャンを実行させるコンピュータ可読コードを備えるコンピュータプログラムであって、
前記ファイルシステムに記憶されたファイルについて、前記ファイルのスキャンが完了する前に中間スキャン結果を獲得するための命令と、
前記中間スキャン結果をデータベースに記憶するための命令と、
前記ファイルシステムからリモートに位置するデータベースと通信するための命令と、
リモートのウイルス対策サーバから、前記データベースに記憶された中間スキャン結果と前記ファイルシステム内の前記ファイルに関連したマルウェアシグネチャのセットを決定するのに関連したプレフィルタ情報とを比較することによって、前記リモートのウイルス対策サーバにおいて決定されるマルウェアシグネチャのセットを受信するための命令と、
を備えるコンピュータプログラム。
【請求項１４】
前記ファイルシステムの後続のウイルス対策スキャンの間に、前記ファイルシステムに記憶された前記ファイルの中間スキャンを実行する前に、前記ファイルに関連する中間スキャン結果が前記データベースにおいて利用可能であるかどうか判定するための命令と、
中間スキャン結果が特定の種類の中間スキャンについて前記データベースにおいて利用可能である場合には前記ファイルの当該中間スキャンを実行せず、中間スキャン結果が特定の種類の中間スキャンについて前記データベースにおいて利用できない場合には前記ファイルの当該中間スキャンを実行するための命令と、
を備える請求項１３に記載のプログラム可能なコンピュータにファイルシステムのウイルス対策スキャンを実行させるためのコンピュータプログラム。
【請求項１５】
新しいマルウェアシグネチャが利用可能である場合に、前記データベースに記憶された前記結果から、前記新しいマルウェアのシグネチャと関連付けられるプレフィルタ情報とマッチし得ないファイルを決定し、当該ファイルを前記ファイルシステムの後続のスキャンから除外するための命令を備える請求項１３に記載のプログラム可能なコンピュータにファイルシステムのウイルス対策スキャンを実行させるためのコンピュータプログラム。
【請求項１６】
前記データベースにファイルが最後に変更された日付を記憶し、マルウェアによる感染が最初に可能であったのはいつか推定し、前記ファイルシステムの後続のスキャンにおいて、マルウェアによる感染が最初に可能になる前に最後に変更されたファイルを前記スキャンから省くための命令を備える請求項１３乃至１５のいずれか１項に記載のプログラム可能なコンピュータにファイルシステムのウイルス対策スキャンを実行させるためのコンピュータプログラム。
【請求項１７】
前記データベースにファイルが最後にスキャンされた日付を記憶し、前記ファイルが最後にスキャンされた前記日付をウイルス対策データベースが新しいマルウェア定義で更新された日付と比較し、前記ファイルシステムの後続のスキャンにおいて、前記ウイルス対策データベースが前記新しいマルウェア定義で更新された後で最後にスキャンされたファイルを前記スキャンから省くための命令を備える請求項１６に記載のプログラム可能なコンピュータにファイルシステムのウイルス対策スキャンを実行させるためのコンピュータプログラム。
【請求項１８】
プログラム可能なコンピュータ上で実行されると、前記プログラム可能なコンピュータに、請求項１乃至８のいずれか１項に記載のファイルシステムのウイルス対策スキャンを実行する方法を実行させるコンピュータ可読コードを備えるコンピュータプログラム。
【請求項１９】
コンピュータ機器上で実行されると、前記コンピュータ機器に、請求項９または１０に記載のコンピュータ機器として挙動させるコンピュータ可読コードを備えるコンピュータプログラム。
【請求項２０】
サーバ上で実行されると、前記サーバに、請求項１１または１２に記載のウイルス対策サーバとして挙動させるコンピュータ可読コードを備えるコンピュータプログラム。
【請求項２１】
請求項１３乃至２０のいずれか１項に記載のコンピュータプログラムを記憶した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はファイルシステムに記憶されたファイルのウイルス対策スキャンの分野に関する。
【背景技術】
【０００２】
マルウェア（Ｍａｌｗａｒｅ）は悪意のあるソフトウェア（ｍａｌｉｃｉｏｕｓ  ｓｏｆｔｗａｒｅ）の略であり、所有者の説明に基づく同意なしにコンピュータシステムに潜入し、またはこれを損傷するために設計された任意のソフトウェアを指す用語として使用される。マルウェアには、ウイルス、ワーム、トロイの木馬、ルートキット、アドウェア、スパイウェア、および他の任意の悪意のある望ましくないソフトウェアが含まれ得る。デスクトップ・パーソナル・コンピュータ（ＰＣ）、ラップトップ、携帯情報端末（ＰＤＡ）、携帯電話など、どんなクライアント機器もマルウェアからの危険にさらされ得る。
【０００３】
機器がマルウェアに感染すると、ユーザは多くの場合望ましくない挙動およびシステム性能の低下に気付くことになる。というのは、感染が望ましくないプロセッサ動作、メモリ使用、およびネットワークトラフィックを生じさせ得るからである。またこの感染はアプリケーション全体またはシステム全体のクラッシュにつながる安定性の問題を引き起こす場合もある。感染した機器のユーザは、実際の原因がユーザの気付いていないマルウェア感染であるときに、性能不良がソフトウェアの欠陥またはハードウェアの問題によるものであると誤って思い込み、不適切な改善措置を講じる場合もある。
【０００４】
マルウェアの検出は厄介である。というのは、マルウェアの作者は自分のソフトウェアを検出するのが困難であるように設計し、多くの場合、システム上のマルウェアの存在を故意に隠す技術を用いる、すなわち、マルウェアアプリケーションは、現在実行中のプロセスを一覧表示するオペレーティング・システム・テーブルに表示されない可能性があるからである。
【０００５】
クライアント機器は、ウイルス対策アプリケーションを利用してマルウェアを検出し、おそらくは除去する。ウイルス対策アプリケーションは、スキャン、完全性検査およびヒューリスティック解析を含む様々な方法を利用してマルウェアを検出することができる。これらの方法の内、マルウェアスキャンには、個々のマルウェアプログラムに特徴的なウイルス指紋または「シグネチャ」を求めてファイルなどのオブジェクトを検査するウイルス対策アプリケーションが関与する。
【０００６】
オブジェクトがスキャンされるときには、いくつかの動作が順に実行される。初期の動作は、オブジェクトがマルウェアである可能性を除くのに使用することのできる単純で迅速な検査である。順序の初期に実行される動作の例には、チェックサム、ファイルヘッダ情報、ファイルセクションの数、および清浄なオブジェクトと感染したオブジェクトとで典型的に異なる他のファイル特性の比較が含まれる。これらの動作を順に実行することにより、スキャンはより速くなる。というのは、オブジェクトのより詳細なスキャンが必要となる前にオブジェクトを割り引くことができるからである。
【０００７】
多くのウイルス対策アプリケーションは、清浄なファイルが一度だけスキャンされるようにスキャンの結果をキャッシュに記憶する。しかし、シグネチャのデータベースが更新される都度、キャッシュはフラッシュされなければならない。というのは、キャッシュされたどのスキャン結果が新しいシグネチャに照らして有効でなくなるかを知るすべがないからである。これは、データベース更新の都度すべてのファイルが再スキャンされなければならないことを意味し、再スキャンは時間を要し、プロセッサリソースを食う。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の一目的はファイルシステムに記憶されたファイルをスキャンする速度を向上させることであり、別の目的は、オンラインのウイルス対策サーバにより有益な情報を提供し、クライアントが、新しいマルウェアのリリースを考慮して以前にスキャンされたファイルをいつ再スキャンすべきか知ることを可能にすることである。
【課題を解決するための手段】
【０００９】
本発明の第１の態様によれば、ファイルシステムのウイルス対策スキャンを実行する方法が提供される。ファイルシステム内のファイルについて、ファイルのスキャンが完了する前に、中間スキャン結果が獲得される。中間スキャン結果は次いでデータベースに記憶される。中間スキャン結果は、後続のスキャンを加速し、オンラインのウイルス対策サーバに他の有益な情報を提供するのに使用することができる。ファイルシステムの後続のウイルス対策スキャンの間に、ファイルシステムに記憶されたファイルの中間スキャンを実行する前に、ファイルに関連する中間スキャン結果がデータベースにおいて利用可能であるかどうかの判定が行われる。特定の種類の中間スキャンについて結果が利用可能である場合には、当該スキャンはそのファイルについて実行されなくてもよい。結果が利用できない場合には、スキャンを実行することができる。一選択肢として、新しい中間スキャンの結果をデータベースに追加することもできる。
【００１０】
中間スキャン結果は、任意選択で、チェックサム、ファイルヘッダ情報、ファイルセクションの数、ファイルについてのハッシュ値、ファイルの部分についてのハッシュ値、エミュレーションからの重要データ、巡回冗長検査値、およびバイトサーチ結果のいずれかについてのスキャンから選択される。
【００１１】
一選択肢として、新しいマルウェアシグネチャが利用可能である場合には、方法は、データベースに記憶された結果から、新しいマルウェアのシグネチャと関連付けられるプレフィルタ情報とマッチし得ないファイルを決定すること、およびそれらのファイルをファイルシステムの後続のスキャンから除外することを含む。プレフィルタ情報は、任意選択で、最終スキャンの日付、ファイルの種類、ファイルサイズ、ファイルセクションの数、ファイルヘッダ情報、ファイルについてのハッシュ値、ファイルの部分についてのハッシュ値、巡回冗長検査値、およびバイトサーチ結果のいずれかから選択される。
【００１２】
さらに別の選択肢として、方法は、データベースにファイルが最後に変更された日付を記憶すること、マルウェアによる感染が最初に可能であったのはいつか推定すること、およびファイルシステムの後続のスキャンにおいて、マルウェアによる感染が最初に可能になる前に最後に変更されたファイルをスキャンから省くことを含む。さらに別の選択肢として、方法は、データベースにファイルが最後にスキャンされた日付を記憶すること、ファイルが最後にスキャンされた日付をウイルス対策データベースが新しいマルウェア定義で更新された日付と比較すること、およびファイルシステムの後続のスキャンにおいて、ウイルス対策データベースが新しいマルウェア定義で更新された後で最後にスキャンされたファイルをスキャンから省くことを含む。
【００１３】
任意選択の実施形態によれば、データベースはファイルシステムからリモートに位置する。これはオンラインのウイルス対策スキャンに特に有益である。この場合には、方法は任意選択で、リモートのウイルス対策サーバにおいて、ファイルシステム内のファイルをスキャンするためにクライアント機器にマルウェアシグネチャを送信する前に、データベースに記憶された中間スキャン結果を使って、ファイルシステム内のファイルに関連したマルウェアシグネチャのセットを決定することを含む。次いで、マルウェアシグネチャのセットをクライアント機器に送信することができる。このようにして、クライアントに必要なシグネチャだけが送信され、それによって必要なシグナリングが低減される。
【００１４】
方法は任意選択で、中間スキャン結果データベースにおいて、複数のクライアント機器において記憶された複数のファイルシステムのいずれかについての中間スキャン結果を記憶することを含む。クライアント機器ごとに、クライアント機器の地理的位置およびファイルがクライアント機器におけるファイルシステムに記憶された時間のいずれかを含む追加的なデータが記憶される。リモートのウイルス対策サーバにおいて、追加的なデータは、ファイルの全部または一部のサンプルを要求すべき相手のクライアント機器のセットを決定するように請願され、ファイルの全部または一部のサンプルを求める要求が、クライアント機器のセットの各クライアント機器に送信される。
【００１５】
本発明の第２の態様によれば、ファイルシステムを記憶するためのメモリと、ファイルシステムに記憶された少なくとも１つのファイルのウイルス対策スキャンを実行するための、ファイルの少なくとも１回の中間スキャンを実行するように構成されているウイルス対策機能と、少なくとも１回の中間スキャンの結果を中間スキャン結果データベースに記憶するための手段とを備えるコンピュータ機器が提供される。ウイルス対策機能はさらに、ファイルシステム内のファイルの後続のスキャンを実行し、ファイルの中間スキャンを実行する前に、ファイルに関連する中間スキャン結果がデータベースにおいて利用可能であるかどうか判定するように構成されている。中間スキャン結果が中間スキャンについてデータベースにおいて利用可能である場合にはファイルに対する中間スキャンは実行されず、中間スキャン結果が中間スキャンについてデータベースにおいて利用できない場合には当該中間スキャンがファイルに対して実行される。
【００１６】
コンピュータ機器は任意選択で中間スキャン結果データベースを備えるが、このデータベースは別の実施形態ではリモートに位置していてもよく、その場合には、コンピュータ機器は、中間スキャンの結果を、中間スキャン結果データベースにおいてデータを読み込むためにリモートノードに送信するための送信機を備える。
【００１７】
本発明の第３の態様によれば、通信ネットワークにおいて使用するためのウイルス対策サーバが提供される。ウイルス対策サーバは、複数のファイルが記憶されるファイルシステムを備えるクライアント機器と通信するための手段と、ファイルシステム内の少なくとも１つのファイルの少なくとも１回の中間スキャンを含むファイルのウイルス対策スキャンを実行するように構成されたプロセッサとを備える。また、中間スキャンの結果を中間スキャン結果データベースに記憶することも提供される。
【００１８】
プロセッサは任意選択でさらに、データベースに記憶された中間スキャン結果を使って、クライアント機器におけるファイルシステム内のファイルに関連したマルウェアシグネチャのセットを決定するように構成され、クライアント機器と通信するための手段は、マルウェアシグネチャのセットをクライアント機器に送信するように構成される。さらに別の選択肢として、プロセッサはさらに、中間スキャン結果データベースにおいて記憶されたデータを使ってファイルの全部または一部のサンプルを要求すべき相手のクライアント機器のセットを決定するように構成され、クライアント機器と通信するための手段は、クライアント機器にファイルの全部または一部のサンプルを求める要求を送信するように構成される。
【００１９】
本発明の第４の態様によれば、プログラム可能なコンピュータ上で実行されると、プログラム可能なコンピュータにファイルシステムのウイルス対策スキャンを実行させるコンピュータ可読コードを備えるコンピュータプログラムが提供される。コンピュータプログラムは、ファイルシステムに記憶されたファイルについて、ファイルのスキャンが完了する前に中間スキャン結果を獲得し、中間スキャン結果をデータベースに記憶するための命令を備える。コンピュータプログラムは、ファイルシステムの後続のウイルス対策スキャンの間に、ファイルシステムに記憶されたファイルの中間スキャンを実行する前に、ファイルに関連する中間スキャン結果がデータベースにおいて利用可能であるかどうか判定するための命令を備える。中間スキャン結果が特定の種類の中間スキャンについてデータベースにおいて利用可能である場合には、当該中間スキャンはファイルに対して実行されない。中間スキャン結果が特定の種類の中間スキャンについてデータベースにおいて利用できない場合には、中間スキャンがファイルに対して実行される。
【００２０】
コンピュータプログラムは任意選択で、新しいマルウェアシグネチャが利用可能である場合には、データベースに記憶された結果から、新しいマルウェアのシグネチャと関連付けられるプレフィルタ情報とマッチし得ないファイルを決定し、それらのファイルをファイルシステムの後続のスキャンから除外するための命令を備える。
【００２１】
一選択肢として、コンピュータプログラムは、データベースにファイルが最後に変更された日付を記憶し、マルウェアによる感染が最初に可能であったのはいつか推定し、ファイルシステムの後続のスキャンにおいて、マルウェアによる感染が最初に可能になる前に最後に変更されたファイルをスキャンから省くための命令を備える。これにより、感染し得ないファイルがスキャンされないようにする。
【００２２】
さらに別の選択肢として、コンピュータプログラムは、データベースにファイルが最後にスキャンされた日付を記憶し、ファイルが最後にスキャンされた日付をウイルス対策データベースが新しいマルウェア定義で更新された日付と比較し、ファイルシステムの後続のスキャンにおいて、ウイルス対策データベースが新しいマルウェア定義で更新された後で最後にスキャンされたファイルをスキャンから省くための命令を備える。
【００２３】
データベースがリモートに位置する場合には、コンピュータプログラムは、リモートデータベースと通信するための命令を備える。一選択肢として、コンピュータプログラムは、リモートのウイルス対策サーバからマルウェアシグネチャのセットを受け取るための命令を備え、マルウェアシグネチャのセットは、ファイルシステム内のファイルに関連したマルウェアシグネチャのセットを決定し、関連したシグネチャだけがコンピュータ機器に送信されるようにするために、データベースに記憶された中間スキャン結果を使ってリモートのウイルス対策サーバにおいて決定されたものである。
【００２４】
本発明の第５の態様によれば、プログラム可能なコンピュータ上で実行されると、プログラム可能なコンピュータに、先に本発明の第１の態様において説明した方法を実行させるコンピュータ可読コードを備えるコンピュータプログラムを提供する。
【００２５】
本発明の第６の態様によれば、コンピュータ機器上で実行されると、コンピュータ機器に、先に本発明の第２の態様において説明したのと同様のコンピュータ機器として挙動させるコンピュータ可読コードを備えるコンピュータプログラムが提供される。
【００２６】
本発明の第７の態様によれば、サーバ上で実行されると、サーバに、先に本発明の第３の態様において説明したのと同様のウイルス対策サーバとして挙動させるコンピュータ可読コードを備えるコンピュータプログラムが提供される。
【００２７】
本発明の第８の態様によれば、先に本発明の第４、第５、第６または第７の態様のいずれか１つについて説明したのと同様のコンピュータ可読コードを記憶する記録媒体が提供される。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施形態によるクライアント機器を概略的に示すブロック図である。
【図２】本発明の一実施形態のステップを示す流れ図である。
【図３】本発明の一実施形態によるネットワークアーキテクチャを概略的に示すブロック図である。
【発明を実施するための形態】
【００２９】
図１を参照すると、本発明の第１の実施形態によるクライアント機器１が示されている。クライアント機器１は、スキャンされるべき複数のファイルが記憶されるファイルシステム２にアクセスすることができる。ファイルシステム２において記憶されたファイルのスキャンを実行するためにファイルシステム２と対話することができ、マルウェアに関するシグネチャ情報を含むウイルス対策データベース４とも対話することができるウイルス対策機能３が提供される。
【００３０】
ウイルス対策機能３は、ファイルシステム２内のファイルをスキャンするときに、数回の中間スキャンを実行し、各中間スキャンではファイルの１つの局面を調べる。ウイルスごとのシグネチャ情報は、リソース集約的なスキャンの前にファイルを迅速に除くのに使用することができる「プレフィルタ」情報を含み、ファイルが悪意のあるものであるかどうか判定するには詳細なウイルス駆除ルーチンが必要とされる。中間スキャンは、ウイルス対策データベース４において記憶されたプレフィルタ情報と比較するためにファイルから中間データを計算し、または別の方法で獲得するのに使用される。十分な回数の中間スキャンが実行された後で、完全スキャンを利用することができる。中間スキャンは、オンライン検査の結果、関連したタイムスタンプ、およびチェックサム比較の結果、ファイルヘッダ情報、セクションの数などといった中間スキャン結果を含み得る情報を獲得するのに使用することができる。中間スキャン結果の別の例には、完全なファイルと部分ファイルの両方に対してハッシュ演算を実行した結果、エミュレーションからの重要データ、巡回冗長検査（ＣＲＣ）値、バイトサーチ結果、および静的解析の結果が含まれる。
【００３１】
中間スキャン結果データベース５が設けられ、ファイルごとの中間スキャン結果を記憶するのに使用される。この情報をデータベースに記憶することによって、頻繁に、またはスキャンプロセスの初期に必要とされ、または（処理リソースもしくはディスク入出力リソースの消費に関して）計算するのに高くつく中間スキャン結果を再利用することができる。中間スキャン結果データベース５は、データへの迅速なアクセスを可能にする任意の適切なやり方で構築される。例えば、中間スキャン結果データベース５は、ファイルパスを使用し、すべての計算データによって索引付けし、問い合わせを非常に高速にすることもできる。
【００３２】
中間スキャン結果データベース５を最新に保つために、ファイルシステム２内のファイルが変更される場合には、当該ファイルに関連する中間スキャン結果データベース５に記憶されたデータが、有効でなくなったものとして除去され、またはこれにフラグが立てられる。
【００３３】
ウイルス対策機能３は、次にファイルシステム２内のファイルのスキャンを実行するときに、中間スキャン結果データベース５に記憶された情報を使って、中間スキャン結果データベース５に記憶された情報をウイルス対策データベース４に記憶されたプレフィルタ情報と比較することによりスキャンプロセスを加速することができる。これにより、中間データを獲得するための各ファイルのリソース集約的なスキャンを行わせないようにする。ファイルシステム２内のファイルがスキャンされなければならないことが判明した場合には、どの中間スキャン結果が利用可能であるか判定するために中間スキャン結果データベース５が検査される。中間スキャン結果を再度計算するのではなく、スキャン動作は、利用可能な場合には、データベース５に記憶された中間スキャン結果を使用することができる。
【００３４】
また、中間スキャン結果データベース５に記憶された情報は、ウイルス対策データベース４更新の更新後に不必要な動作を防止し、スキャンプロセスを加速するのにも使用することができる。ウイルス対策データベース４が入出力装置６を介して新しいウイルスデータを受け取るときに、中間スキャン結果データベース５のない先行技術のシステムは、ファイルシステム２に記憶されたファイルを再スキャンしなければならない。しかし、本発明のこの実施形態によれば、ウイルス対策機能３は、中間スキャン結果データベース５内の情報を、新しいウイルスデータに含まれる更新された、または新しいマルウェアシグネチャごとのプレフィルタ情報と比較し、それによって、通常はスキャンされるはずの多数のファイルを除外する。さらに、ウイルス対策機能３は、中間スキャン結果データベース５を検査して、システム内の任意のファイルに対してマッチし得ないシグネチャ（例えば、特定のファイルと関連付けられるべきことがわかっているマルウェアの、当該ファイルがファイルシステム２に記憶されていないことがすでにわかっているときの検出など）を除き、残りのシグネチャとマッチし得ないファイルを除く。これにより、スキャンされなければならないファイルのセットが縮小され、それによってスキャンプロセスが加速される。このため、ウイルス対策データベース４の更新後のスキャンプロセスが大幅に加速される。
【００３５】
この動作は、新しい、または変更されたシグネチャについてのみ実行されてもよく、その場合にはそれらのシグネチャはタイムスタンプまたは他のカウンタ情報を含んでいなければならない。中間スキャン結果データベース５は、以前にファイルをスキャンするのに使用されたシグネチャデータベースのタイムスタンプやカウンタといった、ファイルが最後にスキャンされたのがいつか特定する情報を含み、そのため、再スキャンでは、前にスキャンして以来追加され、または変更されたシグネチャだけを処理しさえすればよい。
【００３６】
ウイルス対策データベース４に記憶されたシグネチャは、特定のマルウェアがいつ「野放しに」されたと推定されたか特定する情報を含み得る。この日付は、典型的には、ウイルス対策データベースのオペレータによって決定されるはずであり、例えば、オペレータが最初にマルウェアに気付いた日付などに基づくものとなるはずである。この場合には、マルウェアが最初に出現した日付以来変更されていないファイルシステム２内のファイルはスキャンされなくてもよく、それによってスキャン時間が短縮される。
【００３７】
中間スキャン結果データベース５は、ウイルス対策データベース４更新の影響を最小限に抑え、そのため、ウイルス対策データベース４更新の供給者がより小規模な更新をより頻繁に提供することが可能であり、供給者が新しい脅威により迅速に反応することが可能になる。また、中間スキャン結果データベース５の使用は、ファイルのアクセス速度も向上させる。先行技術の方法を使用すると、大部分のウイルス対策アプリケーションは、ファイルがウイルス対策データベース４への更新の後で次にアクセスされるときに初めてファイルを検査することになる。中間スキャン結果データベース５を使用すると、新しいウイルスシグネチャ更新が機器１において受け取られる都度、完全システムスキャンを実質上実行することができる。
【００３８】
また、中間スキャン結果データベース５の使用は、オンデマンドスキャン（設定時刻や、ウイルス対策データベース４の更新といった特定のイベントの後ではなく、ユーザがスキャンを指示するときのスキャン）のスキャン時間も向上させる。通常、オンデマンドスキャンは、ファイルシステム２内のすべてのファイルをスキャンし、スキャンプロセスが時間のかかるリソース集約的なプロセスになる。ウイルス対策機能３は、中間スキャン結果データベース５を検査して、システム内のどのファイルに対してもマッチし得ない検出（例えば、特定のファイルと関連付けられるべきことがわかっているマルウェアの、当該ファイルがファイルシステム２に記憶されていないことがすでにわかっているときの検出など）を除き、残りの検出にマッチし得ないファイルを除く。これにより、最小限の検出のセットを伴うスキャンされなければならないファイルの縮小セットが生じ、それによってスキャンプロセスが加速される。
【００３９】
また、クライアント機器１は、コンピュータ可読コードの形でコンピュータプログラム８が記憶されているメモリ７の形のコンピュータ可読媒体も備えることができる。クライアント機器１においてプロセッサにより実行されると、クライアント機器１はウイルス対策スキャンを実行する。
【００４０】
図２は、本発明の第１の実施形態によるステップを示す流れ図である。流れ図はファイルシステム内の１ファイルについての手順を示すものであることに留意されたい。手順はファイルシステムに記憶された多くのファイルについて繰り返される可能性が高いはずであることが理解されるであろう。以下の番号付けは図２の番号付けに対応する。
【００４１】
Ｓ１．中間スキャン結果データベース５にデータを読み込むための初期スキャンが実行される。ステップＳ１からＳ４を囲む点線は初期スキャンにおいて実行されるステップを表す。
【００４２】
Ｓ２．ファイルシステム内のファイルに対して中間スキャンが実行される。これは、前述のように、チェックサム比較、ＣＲＣ結果などといった任意の中間スキャンとすることができる。
【００４３】
Ｓ３．中間スキャンの結果が中間スキャン結果データベース５に記憶される。
【００４４】
Ｓ４．さらに別の中間スキャンが必要とされる場合には、プロセスはステップＳ２に復帰する。そうでない場合には、ファイルについての中間スキャンがすべて完了する。
【００４５】
Ｓ５．ファイルシステムの後続のスキャンが開始される。
【００４６】
Ｓ６．ファイルシステムに記憶された所与のファイルについて、ウイルス対策機能３が実行されるべき中間スキャンを決定する。
【００４７】
Ｓ７．ウイルス対策機能３が、中間スキャンの結果が中間スキャンデータベース５にすでに記憶されているかどうか判定する。そうである場合には、データベースに記憶された結果がウイルス対策機能によって使用され、プロセスはステップＳ１０に進み、そうでない場合には、手順はステップＳ８に進む。
【００４８】
Ｓ８．当該ファイルについて中間スキャンの結果が利用できないため、ファイルに対して中間スキャンが実行される。
【００４９】
Ｓ９．任意選択の一実施形態では、中間スキャンの結果が、ファイルシステムの後続のスキャンで使用するために中間スキャンデータベース５に記憶される。
【００５０】
Ｓ１０．ファイルに関連する異なる情報を獲得するためにさらに別の中間スキャンが必要とされる場合には、手順はステップＳ６に復帰する。
【００５１】
Ｓ１１．ここで当該ファイルについてのスキャンが完了する。ほとんどすべての場合に、ステップＳ５からＳ１１の後続のスキャンの手順は、ファイルシステムに記憶された複数のファイルについて繰り返されることに留意されたい。
【００５２】
本発明の第２の特定の実施形態では、クライアントに特有の中間スキャン結果データベースがクライアント機器からリモートに位置する。これは、オンラインのウイルス対策スキャンにおいて発生する問題に対処するためである。オンラインのウイルス対策スキャンは、ウイルス対策スキャンを少なくとも一部はリモートで走らせることに基づくものである。クライアント機器は、ファイルがクライアント機器のファイルシステムに記憶されている場合には、ウイルス対策サーバに連絡を取ってオンラインのウイルス対策スキャンを実行する。
【００５３】
ここで図３を参照すると、入出力装置１０、プロセッサ１１、およびファイルシステム１２を備えるクライアント機器９が提供され、通信ネットワーク１３上でリモートサーバ１４と通信する。リモートサーバ１４は、クライアント機器９と通信するための入出力装置１５、プロセッサ１６、およびリモートのウイルス対策データベース１８と通信するための入出力装置１７を備える。データベースはサーバ１４に位置し得ることに留意されたい。ファイルシステム１２に記憶されたファイルが、リモートのウイルス対策データベース１８と照合することによってリモートでスキャンされる。これにより、大規模なウイルス対策シグネチャデータベースをあらゆるクライアントに配信する必要がなくなり、更新をリモートのウイルス対策１８データベースに迅速に入力することが可能になり、新しい脅威に非常に迅速に対応することができる。
【００５４】
前述のように、スキャンの速度は、ファイルシステム１２に記憶された既知の清浄なファイルをスキャンから省くことによって、大幅に向上させることができる。未分類のファイルだけがスキャンされればよい。既知の清浄なファイルを特定する一つのやり方は、ファイルハッシュ値を使って誤判定（ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ）結果を防止することによるものである。
【００５５】
オンライン・ウイルス・スキャンの１つの問題は、有効シグネチャ公開機構（ｅｆｆｅｃｔｉｖｅ  ｓｉｇｎａｔｕｒｅ  ｐｕｂｌｉｓｈｉｎｇ  ｍｅｃｈａｎｉｓｍ）を備えることである。ウイルス対策データベース１８が新しい、または変更されたマルウェアのシグネチャで更新されるとき、クライアント機器９は、ファイルシステム１２に記憶された未分類のファイルのために次にリモートのウイルス対策サーバ１４に問い合わせるときに初めてこの変更を検出することになる。この問題に対処するための１つのやり方は、各クライアント９に、新しいシグネチャの詳細について頻繁にリモートサーバ１４をポーリングさせることであるが、これはサーバにとってはシグナリング集約的（１台のサーバは何千台ものクライアントを処理する場合がある）でもあり、リソース集約的でもある。逆に、クライアント機器９がリモートサーバ１４に頻繁に連絡を取らない場合には、クライアント機器９が、オンラインのウイルス対策スキャンがマルウェアを検出する前のしばらくの間にこのマルウェアに感染するおそれもある。別の選択肢は、各シグネチャに有効期間（ＴＴＬ：ｔｉｍｅ−ｔｏ−ｌｉｖｅ）値を与えることである。ＴＴＬ値は、シグネチャが有効に使用され得る期間を決定する。しかし、この選択肢もまたネットワークトラフィックおよびサーバ負荷を増大させるはずである。さらに別の問題は、詳細解析のためにクライアントから疑わしいファイルのサンプルを獲得することである。というのは、それらのサンプルが最初にスキャンされるときには、それらを悪意のあるものとしてトリガするはずの（後でマルウェアになるものについての）規則もシグネチャもないため、それらのサンプルは詳細解析のためにサーバ１４に渡されないことになるからである。
【００５６】
本発明の第２の実施形態は、各クライアントに特有の中間スキャン結果を含む中間スキャンデータベース１９を提供することによって前述の問題に対処し、中間スキャン結果データベース１９にはサーバ１４からアクセスすることができる。クライアント機器９は、未分類のファイルに関連するメタデータをサーバ１４に送信する。メタデータは、関連したタイムスタンプを伴うローカルスキャン結果、および第１の実施形態について説明したような様々な中間スキャン結果を含むことができる。これには、単純なチェックサム、ファイルヘッダ情報、セクションの数、および清浄なファイルと感染したファイルとで一般に異なる他のファイル特性が含まれる。中間スキャン結果は、少なくともいくつかのハッシュ演算、完全なファイルと部分ファイル両方のハッシュ、エミュレーションからの重要データ、中間スキャン結果（ＣＲＣ値、バイトサーチ結果など）、および静的解析の結果を含み得る。
【００５７】
中間スキャン結果データベース１９は、特定のファイルごとにクライアント機器９上で生成された中間スキャン結果を記憶し、また、当該ファイルがファイルシステムに記憶されている他のクライアント機器のリストを記憶するのにも使用される。以下に示すように、中間スキャンデータベース１９を使用することのできるやり方はいくつかある。
【００５８】
中間スキャン結果データベース１９は、各クライアントに、当該クライアント機器のファイルシステムにおいて記憶された未分類のファイルにマッチするウイルス対策シグネチャだけが提供されるようにするために使用することができる。サーバ１４は、中間スキャンデータベース１９から獲得されたデータを使って、どのファイルが、どのクライアント機器上で、特定の検出シグネチャを使ってスキャンされるべきか判定する。クライアント機器９に関連し得るシグネチャだけが当該クライアントに送信され、このため、各クライアントには、当該クライアントに関連し、または関連する可能性の高いシグネチャだけが送信されることになる。これによりクライアントリソースの使用が低減され、シグネチャを配信する際の帯域幅の使用が低減される。
【００５９】
新しいマルウェアが特定されると、当該マルウェアについてのシグネチャデータは、当該データが利用可能なときにクライアント機器９に能動的にプッシュすることもでき、クライアント機器９が次にサーバ１４に接続するときにクライアント機器９に送信することもできる。クライアント機器９はその情報を使ってスキャンを起動し、おそらくはマルウェアを駆除する。これによりクライアントへのシグネチャ情報の配信が大幅に加速される。
【００６０】
また中間スキャン結果データベース１９は、サーバ１４によるサービスを受ける何台のクライアントが特定のファイルのコピーを持つか、これらのクライアントの地理的位置、ファイルがファイルシステムに記憶された時刻などを判定するのに使用することもできる。この情報は、クライアントへのサンプル要求を、サンプル要求が疑わしいファイルを持つクライアントだけに送信されるようにトリガするのに使用することができる。
【００６１】
中間スキャンデータベース１９のさらに別の用途は、シグネチャ作成を最適化することである。クライアントが持つファイル上でマッチし得るはずのどんな検出も含まないシグネチャを作成すべき理由はない。というのは、これは処理リソースおよび帯域幅の無駄になるはずだからである。
【００６２】
中間スキャン結果データベース１９を使用することにより、所与のシグネチャについて全顧客ベースにわたって誤判定を引き起こし得るファイルのリストを完全に特定することができる。誤判定テストを最適化することができ、この限られたファイルのセットについてのみ実行することができる。
【００６３】
またサーバ１４には、コンピュータ可読コードの形のコンピュータプログラム２１が記憶されているメモリ２０の形のコンピュータ可読媒体が提供されてもよい。サーバ１４においてプロセッサにより実行されると、サーバ１４はウイルス対策スキャンを実行する。
【００６４】
前述の実施形態には、本発明の範囲を逸脱することなく、様々な改変が加えられ得ることが当業者には理解されるであろう。例えば、前述の各例は、１つのファイルシステムだけを有するクライアント機器を示している。ファイルシステムはハードドライブ、光学ドライブ、ランダム・アクセス・メモリ、または他の任意の種類のメモリに記憶されていてもよく、複数のファイルシステムが設けられていてもよいことが理解されるであろう。
【図１】
0005631988.tif 000002
【図２】
0005631988.tif 000003
【図３】
0005631988.tif 000004