(57)【特許請求の範囲】
【請求項１】
クライアントとサーバとが互いに信号授受するシステムに用いるウイルス検出の方法であって、
前記サーバから前記クライアントに第１のウイルス検出オブジェクトを伝送する過程と、
前記第１のウイルス検出オブジェクトの実行に基づく結果を前記サーバで受信する過程と、
前記第１のウイルス検出オブジェクトの実行の結果に基づき第２のウイルス検出オブジェクトを前記サーバで生成する過程と、
前記第２のウイルス検出オブジェクトを前記サーバから前記クライアントに送信する過程と、
前記第２のウイルス検出オブジェクトの実行に基づく結果を前記サーバで受信する過程と、
前記第２のウイルス検出オブジェクトの実行の結果に基づき前記クライアントにおけるウイルスの有無を前記サーバにおいて判定する過程と
を含む方法。
【請求項２】
前記クライアントにウイルスがあると判定された場合に前記第１のウイルス検出オブジェクトの実行の結果および前記第２のウイルス検出オブジェクトの実行の結果の少なくとも一方に基づき前記ウイルスに対する治療を前記サーバで適合生成する過程
をさらに含む請求項１記載の方法。
【請求項３】
前記治療を適合生成する過程が
ウイルス処置オブジェクトを生成するとともにそのウイルス処置オブジェクトを前記サーバから前記クライアントに伝送する過程と、
前記ウイルス処置オブジェクトを前記クライアントにおいて実行する過程と
を含む請求項２記載の方法。
【請求項４】
前記サーバから前記クライアントに第１のウイルス検出オブジェクトを伝送する前記過程の前にウイルス走査を行うべきか否かを前記サーバにおいて判定する過程
をさらに含む請求項１記載の方法。
【請求項５】
ウイルス走査を行うべきか否かを判定する前記過程が、前記サーバにおいて、ウイルス走査への要求を検出する過程とそのウイルス走査要求の有効性を判定する過程とを含む請求項４記載の方法。
【請求項６】
前記要求がトリガ作用のあるイベントによって促される請求項５記載の方法。
【請求項７】
前記トリガ作用のあるイベントが前のウイルス走査から所定時間間隔ののち前記クライアントが試みた第１のインターネットアクセス試行である請求項６記載の方法。
【請求項８】
前記第１のウイルス検出オブジェクトの実行および前記第２のウイルス検出オブジェクトの実行がウイルス走査段階に対応する請求項１記載の方法。
【請求項９】
前記クライアントにおいて、前記第１のウイルス検出オブジェクトを対象ファイルの中における第１のウイルスシグネチャ部分の有無の判定に用い、前記第２のウイルス検出オブジェクトを前記第１のウイルスシグネチャ部分を含む対象ファイル中における第２のウイルスシグネチャ部分の有無の判定に用いる請求項８記載の方法。
【請求項１０】
クライアントとサーバとが互いに信号授受するシステムに用いるウイルス検出のための装置であって、前記サーバに伴う装置において、
前記サーバから前記クライアントに第１のウイルス検出オブジェクトを伝送する手段と、
前記第１のウイルス検出オブジェクトの実行に基づく結果を受信する手段と、
前記第１のウイルス検出オブジェクトの実行の結果に基づき第２のウイルス検出オブジェクトを生成する手段と、
前記第２のウイルス検出オブジェクトを前記サーバから前記クライアントに伝送する手段と、
前記第２のウイルス検出オブジェクトの実行に基づく結果を受信する手段と、
前記第２のウイルス検出オブジェクトの実行の結果に基づき前記クライアントにおけるウイルスの有無を判定する手段と
を含む装置。
【請求項１１】
プロセッサと、
前記プロセッサと交信状態にあるメモリと
を含む請求項１０記載の装置。
【請求項１２】
前記第１のウイルス検出オブジェクトを対象ファイルの中における第１のウイルスシグネチャ部分の有無の判定に用い、前記第２のウイルス検出オブジェクトを前記第１のウイルスシグネチャ部分を含む対象ファイル中における第２のウイルスシグネチャ部分の有無の判定に用いる請求項１１記載の装置。
【請求項１３】
前記装置がローカルエリアネットワーク外に常駐し、前記ローカルエリアネットワークの中に常駐する代理サーバからウイルス走査要求を受ける請求項１０記載の装置。
【発明の詳細な説明】
発明の背景
発明の技術分野
この発明は概括的にはコンピュータファイルの中のウイルスの検出に関し、より詳しくはネットワーク資源を用いたウイルスの検出および処置、ウイルスの反復検出および処置、およびコンピュータネットワークの保守に関する。
関連技術の説明
コンピュータおよびコンピュータユーザにとってコンピュータウイルスは引き続き問題になっている。コンピュータウイルスはコンピュータプログラム、ファイル、コードに通常見出され、意図しない結果、場合によっては有害な結果を生じさせる。一つの種類のウイルスはプログラムコードの一部が自分自身のコピーを他のプログラムの中に生じさせるものであり、それらのプログラムに通常の動作をさせながら、それ以外の意図しない動作を密かに行うものである。ほかの種類のウイルスとして、ワーム、ロジック爆弾、時限爆弾、トロイの馬、ほか実行可能なプログラム、マクロ、アプレット（applet）などに常駐する有害なプログラムまたはコードなどがある。ウイルス検出の分野には進歩は見られるものの、コンピュータの普及およびコンピュータ相互接続・コンピュータ間通信の増加に伴って、既存ウイルスの広がりおよび新たなウイルスの発生の機会も増えてきた。したがって、コンピュータまたはコンピュータシステムが曝される可能性のあるウイルスの数と種類は常に変化しており、ウイルス検出用の情報が多様なウイルスの検出のために絶え間ない更新と増強を必要とする理由になっている。
ウイルス検出には種々の方法がある。一つの検出方法は既知のウイルスシグネチャを検査対象のファイルと比較して、その対象ファイルがウイルスシグネチャ、すなわちその対応のウイルスを含んでいるか否かを判断するものである。ウイルス検出に用いた比較データは既知ウイルスのシグネチャひと組を含んでいるかもしれず、またウイルス検出のための追加のデータを含んでいることもあり得る。この比較データは通常コンピュータ記憶媒体に保持してウイルス検出用のアクセスに供する。例えば、パーソナルコンピュータの場合は、この比較データをコンピュータのハードディスクに蓄積する。この比較データの更新を新たなまたは異なった形のウイルスの検出のために周期的に行う。比較データ更新は、比較データ保持に用いる蓄積媒体への転送のために、ソース蓄積媒体の形で通常提供される。例えば、パーソナルコンピュータのユーザが比較データ更新をコンピュータハードディスクに転送して更新を完了できるように、フロッピーディスクの形で更新データを提供する。
比較データはもともと離散的であり静的である。すなわち、ウイルス検出のために用いる情報は、ユーザ、それ以外の関係者、または動作により更新または変更されなければ通常すべて不変のままに留まるのである。ウイルス検出に用いられる情報の質は何らかの形式の比較データ保持に依存しているので、これは問題になる。更新可能な比較データに伴うもう一つの問題は、新しく異なったウイルスの存在により比較データがその効用を急速に喪失することである。すなわち、周期的な更新は効果的に見えるが更新周期の期間中にいくつの新たなウイルスが生ずるかわからない。比較データ更新のもう一つの問題は、更新を完結させるために交換用データセット全部の転送、または少なくとも新ウイルス検出データ全部の転送を通常要することである。全データ転送の場合も新ウイルス検出データ全部の転送の場合も、更新のために多量のデータを転送しなければならない。より詳細に述べると、ユーザが例えばフロッピーディスクで供給された更新データを用いてウイルス検出情報を更新する場合は、少なくとも新ウイルス検出情報はすべてフロッピーディスクから適切な媒体に転送しなければならない。
更新データのソースの如何に関わらず、更新可能な比較データの問題は残る。とくに、ユーザ、管理者その他の関係者が比較データへのアクセスおよび同データの更新について責任をとる必要があり、比較データは急速に予測不可能な形でその効用を失い、多量のデータをソースから比較データ用蓄積媒体に経路づけしなければならない。比較データ更新のデータ源がインターネット資源である場合は、転送すべきデータの量そのものがより大きい問題になる。更新を完了させるのに大量の計算用資源を使うことになるからである。
ウイルス検出のもう一つの問題は条件がコンピュータごとに異なることである。すなわち、第１のコンピュータまたは媒体は第１の種類の走査を必要とし、もう一つのコンピュータはそれが第１のコンピュータと同じネットワークの中にある場合でも第２の種類の走査を必要とするのである。このような場合は、ウイルス走査がコンピュータ常駐ウイルス以外のウイルスにまで及んで包括的すぎたり、コンピュータに課された条件に基づきコンピュータに常駐する可能性のあるウイルスの種類に走査が及ばず走査範囲不足になったりし得る。コンピュータ特有の条件にしたがって適当な程度のウイルス走査を行うには、ユーザまたは関係者は走査を構成しなければならない。その関係者への情報のインプットに依存しているので、これは問題になる。また、特定のコンピュータに関する条件も所要走査の種類も変わり得る。
コンピュータ相互間の接続及び通信の増加に伴って、コンピュータネットワーク所属コンピュータの保守に対する要求が増大した。保守業務も通常はネットワーク管理者など関係者が自分にローカルに利用可能な資源を用いて行う。例えば、LAN接続のコンピュータでウイルス処置を行う場合は、管理者はローカルに利用可能なウイルス走査資源にアクセスするようにコンピュータを通常構成できる。この保守機構は、更新への依存、変化する条件への適応性欠如、およびＬＡＮ外の資源の適切な利用の欠如などの点で問題がある。
したがって、更新可能な比較データ方式に内在する問題のいくつかを解消するウイルス検出に対する需要がある。また、インターネット資源をウイルス検出およびより容易でより効果的なコンピュータネットワーク保守、例えばウイルス検出およびウイルス消去に関する保守に対する需要がある。
発明の概要
この発明によると、集中アクセス用のウイルス検出サーバとウイルスの効果的検出および処置のための反復処理手法を提供できる。
この発明の一つの側面においては、ウイルスをクライアントコンピュータで反復的に検出する。ウイルスの検出および処置に必要とされるツールと情報の主要部をインターネットのサーバやワールドワイドウェブサーバなど集中した位置で提供する。このウイルス検出サーバはクライアントと連携して動作し、ウイルスがクライアントに常駐しているか否かを判定する。要求を受けたときまたは要求がウイルス検出サーバに導かれたとき、ウイルス走査が開始される。この要求は、ユーザによる継続起動を要しないクライアントからのプログラムされた要求など種々のトリガ発生イベントで起動して、ユーザに自明の要求なしで走査を起動するようにすることもでき、また直接に起動することもできる。
ウイルス検出サーバは、有効なウイルス検出要求を受けたと判定すると、その要求発信者すなわち通常クライアントと関連するウイルスを反復的に検出して処置する。ウイルス検出オブジェクトの反復生成は、前回生成ずみのウイルス検出オブジェクトの実行の結果見出された前回判定ずみの条件にしたがってオブジェクトを特別に作り替えることを可能にする。とくに、ウイルス検出オブジェクトはウイルス検出サーバで生成され、クライアントに伝送される。ウイルス検出オブジェクトはクライアントが対応の実行エンジン中に含んでいる実行可能なプログラムを含む。すなわち、クライアントはウイルス検出オブジェクトを受けるとそのオブジェクトを実行しその結果をウイルス検出サーバに返送する。ウイルス検出オブジェクトの実行の結果はウイルス検出サーバに伝送して、それ以前のウイルス検出オブジェクトの実行の結果に基づき追加のウイルス検出オブジェクトを生成できるようにする。
この発明のもう一つの側面によると、ウイルス検出サーバは、検出ずみウイルスの特定の種類などクライアントで提示された条件に特効あるワクチンを生成する。ウイルス検出サーバは一つ以上のウイルス検出オブジェクトの実行の結果を受け、ワクチンの生成にその結果を用いる。例えば、その結果が特定のプラットフォームの特定の種類のファイルに特定のウイルスが存在することを示すと、それに合わせてワクチンを生成する。そのワクチンは実行可能なプログラムやデータセットなど一つ以上のウイルス処置オブジェクトを含む。ウイルス処置オブジェクトをクライアントに送り、そこでウイルスを処置するように実行する。
この発明のさらにもう一つの側面によると、ローカルエリアネットワーク所属コンピュータなどのコンピュータのシステムをシステム管理者による常時保守を要することなくウイルスに対して実効的に保護することができる。とくに、定常的に生ずるイベントをウイルス検出サーバによるウイルス走査要求をトリガするのに用いることができる。
ウイルス検出サーバの実施側はコンピュータウイルスの反復検出および処置のための種々のモジュールを含む。反復ウイルス検出モジュールは走査モジュールと、ウイルスパターンモジュールと、ウイルスルールモジュールと、清浄化モジュールと、清浄化パターンモジュールと、アクセス管理モジュールと、アクセスデータモジュールとを含む。走査モジュールは個別アクセス可能な複数のウイルス検出ルーチンを含む。同様に、ウイルスパターンモジュールおよびウイルスルールモジュールは個別にアクセス可能なウイルスシグネチャのグループおよびルールのグループをそれぞれ含む。反復ウイルス検出モジュールは、走査モジュール、ウイルスパターンモジュールおよびウイルスルールモジュールと連携して動作し、クライアントの提示条件に基づくウイルスの検出にとくに供されるウイルス検出オブジェクトを生成する。
清浄化モジュールはウイルス含有と判定されたファイルの処置のためのルーチンを含む。個別にアクセス可能な複数のルーチンを、ウイルス検出モジュール中の複数のウイルス検出パターンと同様に、清浄化モジュール中に備える。反復ウイルス検出モジュールは清浄化モジュールおよび清浄化パターンモジュールと連携して動作し、クライアント提示の優勢な条件の中で検出される特定のウイルスの処置に適合させたウイルス処置オブジェクトを生成する。
アクセス管理モジュールはウイルス走査要求の有無の判定およびその判定の基づく要求の確認のためのルーチンを含む。このアクセス管理モジュールは潜在的ユーザに関する情報を含むアクセスデータモジュールと連携して動作し、ウイルス走査要求の受信確認および有効性確認に備える。
この発明のさらにもう一つの側面によると、ウイルス検出サーバのもう一つの実施例はウイルス情報エキスパートシステムを含む。コンピュータで提示された条件、媒体その他の走査対象に関する条件データを集めて保持する。条件データを所定知識に加えて、ウイルス走査実行用の判定を行う。エキスパートシステムの実施例は推論エンジンとウイルス知識モジュールとを含む。推論エンジンは条件データにアクセスしてその条件データをウイルス知識モジュール中のルールおよび情報に加え、実行すべきウイルス走査の種類について判定を行う。その判定の例としては、走査が適切か否かの判定、走査要求に関する条件の評価および実働化すべき走査ルーチンおよび清浄化ルーチンの種類の判定などがある。
この発明のさらにもう一つの側面によると、ネットワーク診断保守アプリケーションを提供できる。ネットワーク診断および保守アプリケーションはネットワークに関する情報を集めそれら情報に対する診断データを保持する。ネットワーク条件に関する判定は診断データを所定の知識に加えることによって行い、それら判定に基づきネットワーク保守を要求する。診断および保守アプリケーションの実施例は診断データモジュールと、保守要求モジュールと、推論エンジンおよび所定知識を備える少なくとも一つのエキスパートシステムとを含む。診断データモジュールは診断データを提供し、この診断データにエキスパートシステムがアクセスしてネットワーク関連判定の実行のための専門分野に関するルールにかける。判定の結果をネットワーク保守要求の根拠として保守要求モジュールが用いる。エキスパートシステムの好例は、推論エンジンおよびウイルス知識モジュールを含むウイルス情報エキスパートシステムである。ウイルス情報エキスパートシステムの行う判定は保守要求モジュールに伝達され、その保守要求モジュールはそれら判定をウイルス検出サーバによるウイルス走査および処置の要求に用いることができる。
【図面の簡単な説明】
この発明の上記および上記以外のより詳細な特徴を添付図面を参照して次に詳述する。
図１はこの発明によるクライアントおよびウイルス検出サーバの間の相互接続の例を示す概略図である。
図２はこの発明による反復ウイルス検出の方法を示す流れ図である。
図３はこの発明によるクライアントの実施例を示すブロック図である。
図４Ａはこの発明によるウイルス検出サーバの実施例を示すブロック図である。
図４Ｂはこの発明による反復ウイルス検出モジュールの実施例を示すブロック図である。
図４Ｃはウイルス対応の索引付き情報を示すデータテーブルの例である。
図４Ｄはこの発明によるウイルス検出手法で用いるウイルスシグネチャ構成部分ストリングを示すデータテーブルの例である。
図５はこの発明によるウイルス検出サーバを用いたウイルス検出の方法を示すイベント図である。
図６Ａはこの発明による反復ウイルス検出モジュールのもう一つの実施例のブロック図である。
図６Ｂはこの発明によるウイルス情報エキスパートシステムの実施例のブロック図である。
図７はこの発明によるネットワーク通信システムの例の概略図である。
図８Ａはこの発明による管理サーバの実施例のブロック図である。
図８Ｂはこの発明によるネットワーク診断および処置アプリケーションの実施例のブロック図である。
発明の詳細な説明
図１の概略図を参照すると、この発明のウイルス検出サーバおよびウイルス検出方法は、好ましくはウイルス検出サーバ400と複数のクライアント300のいずれか一つとの間にクライアント・サーバ関係を保ったシステムで動作させる。図１に示したシステム100において、ウイルス検出サーバ400をインターネットまたはワールドワイドウェブと通常呼ばれるネットワークなどのワイドエリアネットワークに所属させる。クライアント300とウイルス検出サーバとの間に相互接続のいろいろの例が示してある。一つの例を挙げると、回線10経由でWANに接続されウイルス検出サーバ400との間の通信を可能にしているクライアント300aが挙げられる。この例でWANがインターネットの場合は、アクセスはインターネットアクセスプロバイダまたはインターネットサービスプロバイダから提供でき、クライアント300はサービスプロバイダまたはアクセスプロバイダへのリンクのための電話回線に接続したモデムを含む。もう一つの例では、クライアント300bはローカルエリアネットワーク（LAN）の一部であり、クライアント300bとウイルス検出サーバ400との間の通信はLANサーバ350経由で構成した接続20により容易になっている。アクセスプロバイダまたはサービスプロバイダ経由のアクセスも可能であるが、接続20は専用回線など上記以外の慣用の手段でも構成できる。
この発明の好ましい実施例はウイルス検出サーバ400をインターネットサーバと想定しているが、ウイルス検出サーバ400とクライアントサーバ300との間のクライアント・サーバ接続の構成には、コンピュータのローカルエリアネットワーク内の相互接続またはコンピュータネットワーク相互間接続など種々の代替的構成が可能であることを当業者は認識するであろう。
ウイルス検出サーバ400はUNIXまたはWindowsNTなどの慣用のオペレーティングシステムを用いて、伝送制御プロトコル／インターネットプロトコル（TCP/IP）組など慣用のインターネット通信プロトコルを実動化する。また、通信プロトコルは、クライアントとウイルス検出サーバ400との間のファイルその他の情報の伝送のためにファイル転送プロトコル（FTP）やパイパーテキスト転送プロトコル（HTTP）などの種々の慣用アプリケーションレーヤプロトコルを含み得る。
ウイルス検出サーバ400とクライアント300との間の通信が慣用の手法で設定されたあと、ウイルス検出サーバ400はウイルスがクライアント300と関連しているか否かとウイルスがどこで検出されたかとを判定するように動作し、検出ずみのウイルスの種類について適切な処置を行う。簡単に述べると、ウイルス検出サーバ400はクライアント300と連携して動作し、クライアントにウイルスが常駐しているか否かの判定を、サーバでウイルス検出オブジェクトを反復生成し、そのウイルス検出オブジェクトをクライアントに伝送し、そのウイルス検出オブジェクトをクライアントで実行し、そのウイルス検出オブジェクトとくに進行中のウイルス検出オブジェクトの実行の結果を用いて後続のウイルス検出オブジェクトを生成し最終的にウイルスの存在を検出することによって行う。また、一つ以上のウイルス処置オブジェクトを含むワクチンを、ウイルス検出オブジェクトの反復生成および実行で定まる条件の処置に適合させて生成する。
図１に併せて図２を参照して、この発明による反復ウイルス検出の方法を示した流れ図を説明する。図１および図２は反復ウイルス検出の全体を説明するものである。ウイルス検出サーバ400の実施例とウイルス検出の方法は図３乃至図５を参照してより詳細に後述する。
最初のステップ205において、走査すべきクライアントなどウイルス検出サーバ400の外部の要求元からウイルス走査要求を受ける。その要求を受けたあと、ステップ210でウイルス検出サーバ400で走査を行うべきか否かを判定する。ウイルス走査要求の確認を走査要否の判定の結果にしたがって行うのが好ましい。典型的な例について説明を続けると、この要求は、クライアント300からウイルス検出サーバ400への要求の形式で供給し、ウイルス検出サーバ400がウイルスとクライアントとの関連の有無の判定に進む前に要求を確認できるようにする。要求確認はウイルス検出サーバ400に蓄積してある情報または同サーバ400にアクセス可能な情報への参照によって行うのが好ましい。
図１の実施例におけるWANなどのネットワークの慣用のプロトコルを、要求をクライアントからウイルス検出サーバに経路付けするのに用いる。例えば、要求はウイルス検出サーバ400対応の均一資源ロケータ（URL）アドレスを実働化できる。接続がいったん開始されると、上記HTTPおよびFTPなどの慣用のプロトコルをウイルス検出サーバ400とクライアント300との間の情報の転送に用いる。クライアント300とウイルス検出サーバ400との間の接続の設定には種々の代替策が可能である。ウイルス走査の要求は初期要求を処理してそれら初期要求をウイルス検出サーバ400へのクライアント300の通過の前に確認する別個のサーバ経路で経路付与することもできる（すなわち、要求と確認をともにウイルス検出サーバ400で受ける）。また、一つのクライアントとの接続およびその結果から得られる一つのクライアントへのウイルス検出および処置を全体として説明するが、ウイルス検出サーバ400の受ける単一のウイルス走査要求で、一つのローカルエリアネットワーク所属のクライアント300b全部など複数のクライアント300についてのウイルスの検出および処置をサーバ400に行わせることもできる。
クライアント300に直接にプロンプトを供給するほかに、ウイルス検出走査要求をイベントをトリガした結果として生成することも可能である。すなわち、ウイルス検出走査はユーザ入力また場合によっては知識なしに始動できる。ユーザが促した要求の場合と同様に、イベントをトリガすることによって、ウイルス走査への要求がウイルス検出サーバ400に伝送され、、このサーバ400がその要求を受けてクライアント300とウイルスとの関連の有無の判定の進行の前にその要求を確認する。クライアント300またはそれ以外に常駐するエージェントプログラムを、イベントのトリガに対する反応としてウイルス走査の要求を生成するのに使うことができる。その場合は、エージェントプログラムが要求およびその結果としてのクライアント300・サーバ400間接続を始動させる。ウイルス走査要求の確認、イベントのトリガおよびエージェントプログラムは図５のイベント図を参照した説明で後述する。
走査を行うべきであるとの判定（210）のあと、複数のウイルス検出オブジェクトをウイルス検出サーバ400が生成し、ウイルスとクライアント300との関連の有無の判定までクライアント300に伝送する。ステップ215では初期ウイルス検出オブジェクトをウイルス検出サーバ400で生成しクライアント300に伝送する。ウイルス検出オブジェクトはクライアント300に実行可能なプログラムまたはコードとデータとを含む。代わりに、ウイルス検出オブジェクトのうちとくに選んだものを実行可能コードだけまたはデータだけで構成することもできる。慣用のネットワーク伝送プロトコルをウイルス検出オブジェクトのサーバ400からクライアント300への伝送に用いる。ウイルス検出オブジェクトの受信のあと、ステップ220においてウイルス検出オブジェクトをクライアント300で実行し、ステップ225においてそのウイルス検出オブジェクト実行の結果をウイルス検出サーバ400に送り、サーバ400はその結果を受けステップ230において第１のウイルス検出オブジェクトの実行の結果に基づき追加のウイルス検出オブジェクトを生成する。サーバ400に伝送される結果の程度は変動し得る。例えば、その結果は、追加のウイルス検出オブジェクトの生成を直接に指示することができ、追加のオブジェクトの生成のためのサーバ400による解釈を要する生のデータであり得、これら両極端の中間であり得る。また、それら結果の程度はクライアント300とウイルス検出サーバ400との間の所望の資源配分にしたがって構成できる。初期ウイルス検出オブジェクトの場合と同様に、追加のウイルス検出オブジェクトをクライアント300に送って、ステップ235に示すとおり、そのオブジェクトが実行されその結果がサーバ400に送られるようにする。ウイルス検出オブジェクトの生成は、ステップ245で追加の走査の要否についての判定が行われるまで継続する。判定245をその前の結果に基づきサーバ400で行うのが好ましいが、クライアント300にはその判定が可能でありクライアントへの結果にその判定を含めることが可能であると考えられる。ステップ245において追加の走査が必要と判断されると、この方法はステップ230に戻り、そのステップで追加のウイルス検出オブジェクトが生成される。
ウイルスがクライアント300と関連しているが否かの判定を反復的に進めることによって、サーバ400からクライアント300への情報をクライアント300におけるウイルス検出に必要な情報だけに限るように適合させる。より詳細にいうと、その情報を、クライアント提示条件（例えばプラットフォームまたはファイルの種類）に基づきクライアントに常駐中とみられるウイルスの種類に限ることができ、またクライアントからのウイルス検出要求の種類に限ることができる。それによって、ウイルス検出に必要な情報の総量を削減し、またサーバ400からクライアント300へ伝送すべき情報の量を削減する。また、クライアント300は最新のウイルス検出情報にアクセスできる。すなわち、サーバ400の用いる情報はクライアント300の動作を要することなく保守できるからである。また、クライアント300はウイルス検出用比較データ更新版全体をダウンロードする必要はない。さらに、クライアント側の計算オーバーヘッドは、ウイルス検出オブジェクトおよびそのオブジェクトの実行可能部分をクライアント300の提示する条件に合わせて生成できるので、最小化される。
ウイルス検出オブジェクトの反復生成、伝送および実行の結果、ステップ250でウイルスがクライアント300と関連なしと判定された場合は、クライアント300またはそれ以外の関連機器がサーバ400からステップ265でその旨を通知される。しかし、ウイルスが検出された場合は、ステップ255でサーバ400が検出ずみのウイルスの種類の処置に適合したワクチンを生成してそのワクチンをクライアント300に送る。最後にステップ260でクライアント300がそのワクチンを実行する。ウイルス検出オブジェクトの実行の結果にしたがってワクチンを適合生成することによって、伝送情報量およびクライアント300で消費される計算用資源を更新ずみプロトコルの実働化を進めながら最小化する。このワクチンを反復ウイルス検出オブジェクト実行の結果に基づきウイルス検出サーバ400の生成した少なくとも一つのウイルス処置オブジェクトで構成するのが好ましい。また、ウイルス検出オブジェクトの場合と同様に、複数のウイルス処置オブジェクトをクライアント300の反復処理のために生成することもできる。より詳細にいうと、第１のウイルス処置オブジェクトを、ウイルス処置のためのシステム情報またはユーザによる入力情報など追加の情報を確認するために実行するようにクライアント300に送ることができる。次に、第１のウイルス処置オブジェクトの実行の結果に基づいて第２のウイルス処置オブジェクトを生成し、クライアント300に伝送して実行に備える。
図３のブロック図を参照すると、この発明によって用いたクライアント300の実施例が示してある。クライアント300は中央処理装置（CPU）312、メモリ314、ハードディスクなどのデータ蓄積装置316、キーボード318、モニタ320、マウス322、ネットワークインタフェース324および通信装置326を含む。CPU312は、システムバス310経由で慣用のアーキテクチャにより、メモリ314、データ蓄積装置316、キーボード318、モニタ320、マウス322、ネットワークインタフェース324および通信装置326に接続してある。CPU312はカリフォルニア州サンタクララ所在のIntel社が市販しているペンティアムなどのマイクロプロセッサで構成するのが好ましい。モニタ320、キーボード318およびマウス322は慣用のもので構成され、周知のとおりデータ授受を行う。通信装置326はクライアント300とそれ以外のコンピュータとの間の通信を可能にするように構成してある。この通信装置326は慣用の電話回線などの回線10に接続した慣用のモデムで構成するのが好ましい。ネットワークインタフェース324もクライアント300とそれ以外のコンピュータとの間の通信を可能にするように構成した慣用の装置である。このネットワークインタフェース324は、同軸ケーブル、より線対、光ファイバなどのネットワーク伝送媒体に接続した送受信装置を含む慣用のネットワークアダプタカードで構成するのが好ましい。図１に示すとおり、クライアント300とウイルス検出サーバ400との間の通信はネットワークインタフェース324により、または代替的に通信装置326により容易に行うことができる。
CPU312はメモリ314から供給される命令に応答して通常の形で所望の機能を発揮する。入力はマウス322およびキーボードからも供給でき、出力はモニタ320に供給され、コンピュータとそれ以外の装置との間の通信は通信装置326やネットワークインタフェース324経由で通常の形で行われる。
メモリ314はオペレーティングシステム328、ブラウザ330およびウイルス検出シェル332を含む形で示してある。オペレーティングシステム328はワシントン州レッドモンド所在のMicrosoft社から市販されているWindows95またはWindowsNTなどパーソナルコンピュータ用の慣用のものが好ましい。メモリ314はこのオペレーティングシステム328を用いて機能するように構成された文書作成プログラムや表計算プログラムなどのアプリケーションプログラムを含み得る。ブラウザ330は他のコンピュータにアクセスして交信するソフトウェアプログラムにするのが好ましい。好適な実施例では、ブラウザ330はMicrosoft社製のインターネットエクスプローラである。クライアント300はウイルス検出サーバ400の生成するウイルス検出オブジェクトの形で供給されるプログラムを実行できるエンジンを含み得る。なお、クライアント300にはエンジンを他の方法でも形成できるが、この発明ではエンジンをブラウザ330と連携して構成し、したがってブラウザ330はウイルス検出オブジェクトの形のプログラムの実行に備えて「イネーブルされた」状態にあると考えられる。この好適な実施例ではMicrosoft社製のプログラミングツールActiveXをウイルスの反復検出用のウイルス検出オブジェクトの生成に用いている。このActiveXツールはActiveX用語で「controls」と呼ばれるオブジェクト、すなわちサーバに常駐できクライアントからアクセスできる実行可能なコードを含むオブジェクトの生成の手段である。このcontrolsはクライアントにも転送され、クライアントがそのための手段を備えている場合は、そのクライアントで実行される。好ましい実施例では、ブラウザ330はActiveXでイネーブルされ、ウイルス検出オブジェクトはActiveXcontrolsである。ブラウザ330には、ウイルス検出オブジェクトの実行可能部分の生成用に種々の代替手段を利用できる。例えば、ブラウザ330はNetscape社製のネットスケープナビゲータで構成することもできる。また、ウイルス検出（および処置）オブジェクトは例えばJavaアプレットなどのアプレットで構成できる。JavaプログラミングツールはSun Microsystem社から市販されている。
CPU312は、メモリ314からの命令のもとに、ウイルス検出および処置オブジェクトを受け、それらオブジェクトを実行し、結果をクライアント300向けのウイルス検出サーバ400に伝送する。ウイルスの検出および除去を特定のアプリケーションを要することなく行うのが好ましい。クライアント300が、通信装置326経由などによりウイルス検出サーバ400に要求を発したり、ブラウザとの連携により供給された命令によりウイルス検出サーバ400に要求を発したり交信したり、イネーブルずみブラウザ330経由などによりウイルス検出サーバ400の生成したオブジェクトを実行したりするためにウイルス検出サーバ400にアクセスできる場合は、ウイルス検出サーバ400を用いてクライアント300でウイルスを検出し処置できる。
イネーブルずみブラウザ330（またはウイルス検出オブジェクトを実行する上記以外の手段）を伴うウイルス検出サーバ400を用いてウイルスをクライアント300で検出し処置できるので、ウイルス検出および処置はウイルス検出シェル332なしで行うことができる。
ウイルス検出シェル332の利用はオプションであるが、この発明により種々の目的でそのシェル332をメモリ314に備えることもできる。第１に、ブラウザ330でなくシェル332にウイルス検出オブジェクト実行用手段を備えることができる。また、ウイルス検出シェル332から、ウイルス検出および処置と関連して用いる情報を供給できる。例えば、ウイルス検出シェル332には、オブジェクト生成および実行の反復を要することなくウイルス検出サーバ400に供給可能な課金情報や詳細なウイルス検出コンフィギュレーションセッティングを含めることができる。より詳細に述べると、ウイルス検出シェル332はウイルス走査要求のためのイベントのトリガを定義するセッティングを含むことができ、また、ユーザ所望の走査の種類を指定し狭めるのに役立つデータ蓄積装置、ディレクトリ、ファイル、ファイルの種類その他の情報を特定できる。
図４Ａのブロック図を参照すると、この発明によるウイルス検出サーバ400の実施例が示してある。このウイルス検出サーバ400はCPU412と、メモリ414と、ハードディスクなどのデータ蓄積装置416と、I/Oポート418と、ネットワークインタフェース420とを含む。CPU412はIntel社製のペンティアムプロセッサなど慣用のマイクロプロセッサである。メモリ414は慣用のRAMで構成するのが好ましいが慣用のROMを含むこともできる。また、メモリ414はウイルス反復検出用ルーチンを含むように構成するのが好ましい。これらのコンフィギュレーションは図４Ｂの反復ウイルス検出モジュール450aを参照してより詳しく述べる。データ蓄積装置416、I/Oポート418およびネットワークインタフェース420は慣用のものであって、データの長期蓄積、サーバに対する入出力および他のコンピュータとの通信をそれぞれ容易にする。CPU412、メモリ414、データ蓄積装置416、I/Oポート418および同対応装置およびネットワークインタフェース420は慣用の手法でバス410に接続する。CPU412は、メモリ414からの命令による制御のもとに、クライアント300など他の装置との通信を容易化するためのネットワークインタフェース420および伝送回線430経由のデータ送受信のための信号を生成する。図１を参照して述べたとおり、TCP/IPプロトコル組などの慣用のネットワーク通信プロトコルを上記通信に用いる。また、メモリ414から受ける命令によって、ウイルス検出サーバ400はウイルス検出および処置オブジェクトの実行の結果の受信を容易にし、追加のオブジェクトの生成のためのそれら結果の利用を容易にする。
図４Ｂを参照すると、この発明による反復ウイルス検出モジュール（「IVDM」）450aが走査モジュール454、ウイルスパターンモジュール456、ウイルスルールモジュール458、清浄化モジュール460、清浄化パターンモジュール462、アクセス管理モジュール464およびアクセスデータモジュール466を含んだ形で示してある。反復ウイルス検出モジュール450aおよびその中の上述のモジュールは、ウイルス検出要求を受けるルーチン、要求を確認するルーチン、ウイルス検出および処置オブジェクトを生成するルーチン、これらオブジェクトの実行の結果を受けるルーチン、およびこれら結果を用いて追加のウイルス検出および処置オブジェクトを生成し最終的にウイルスを検出して処置するルーチンを含む。反復ウイルス検出モジュール450aは通常はソフトウェアで実働化するが、ハードウェアまたはファームウェアで実働化することもできる。
アクセス管理モジュール464はウイルス検出サーバ400の受けたウイルス走査要求の有効性の判定のためのルーチンを含む。アクセスデータモジュール466はアクセス管理モジュール464と信号授受状態にあり、アクセス確認用情報を含む。例えば、ユーザ識別コードおよび口座有効性インジケータなどのユーザ関係情報はアクセスデータモジュール466に蓄積できる。したがって、ウイルス走査要求があると、IVDM450aはアクセス管理モジュール464と連携して要求者を識別し、アクセスデータモジュール466の中のデータを用いてそのユーザ識別コードのリスト上の有無および口座の有効性を判定する。ユーザ識別および確認には、ユーザが要求を始動して識別コードおよびパスワードの要求を受けウイルス検出および処置のためのウイルス検出サーバ400への要求者のアクセスを確認するなど種々の代替策を実働化できる。また、アクセス管理モジュール464は新たなユーザのための口座を開設するように、したがって必要情報を捕捉するよう構成されている。
有効な走査要求があったと判定されたあと、ウイルス検出オブジェクトを反復生成してウイルス検出のためにクライアント300などの要求者に送信する。走査モジュール454はウイルス検出に使える種々のルーチンを含む。それらルーチンを個別アクセスできる形で提供して、被選択走査ルーチンを含むようにウイルス検出オブジェクトを適合生成するのが好ましい。例えば、特定のプラットフォームおよびオペレーティングシステムを用いたシステム、特定のファイルの種類、および特定の位置に常駐し得るウイルスの検出のための個別のルーチンを走査モジュール454内に個別アクセスに備えて提供する。より詳細にいうと、このプラットフォームに通常常駐するウイルスの検出のためのルーチンを、他のプラットフォームに通常常駐するウイルスの検出のためのルーチンとは別個にアクセスできるように提供する。同様に、「実行可能な」ファイル（ファイル拡張子.exeを付けたものなど）に常駐するウイルスの検出のためのルーチン（WordBasicプログラム言語を実働化し、アプリケーションデータファイルに通常常駐し、拡張子.docまたは.dotを付けたものなど）を、マクロウイルスの検出のためのルーチンとは別個にアクセスできるように提供する。すなわち、ウイルスシグネチャ含有の有無の判定のためにファイルを調べるウイルス検出ルーチンは、容疑命令の組合せなどルールのセットを用いるウイルス検出ルーチンから分離してファイル中のウイルスの有無を判定できる。走査モジュール454には、電子メールメッセージ内のウイルスの検出に用いるものなど上記以外の種類のウイルス検出ルーチンを提供できる。
走査モジュール454で提供するルーチンは、クライアント300におけるウイルスの検出のためにウイルス検出サーバ400の用いる特定のプログラミングツールを用いるように構成するのが好ましい。すなわち、これらルーチンをクライアント300により実行できるものにするのである。あるいは、走査モジュール454で提供したモジュールを第１の実行可能な種類からクライアント300のサポートする実行可能な種類に変換する。
この好ましい実施例では走査モジュール454内に個別のアクセスに備えて種々のルーチンを提供する。例えば、多様な種類のファイルの中のウイルスシグネチャの検出に対応するルーチンを提供する。各ルーチンに関する情報をコヒーレントな個別的アクセスを容易にするようにルーチンとの関連で供給する。例えば、ウイルスシグネチャ検出ルーチンに対しては、プラットフォームおよびファイル種類に対応する情報などの情報を書くルーチンと関連づけて供給する。すなわち、IVDM450aは走査モジュール454と連携して必要時にアクセス用のルーチンを効率的に判定できる。特定のルーチンを使うか否かの判断は通常はクライアント300の状態に左右される。それら状態は、図５を参照して後述する範囲およびリスク評価対応の信号授受を通じて、ウイルス検出サーバ300で予め定めることができ、また捕捉することができる。慣用の索引付けおよび分類手法を走査モジュール454提供の種々のウイルス走査ルーチンのタグ付けおよび個別アクセスの容易化のために用いることができる。
走査モジュール454と同様に、ウイルスパターンモジュール456およびウイルスルールモジュール458はウイルス検出に使えるウイルスシグネチャおよびウイルスルールをそれぞれ含む。走査モジュール454との関連で説明したルーチンの場合と同様に、パターンとルールを個別アクセスを容易にするために提供する。すなわち、例えば、一つのファイルの種類に対応するウイルスパターンモジュール456内ファイルシグネチャを第２のファイルの種類に対応するウイルスシグネチャから分離することができる。同様に、一つの検出基準に対応するウイルスルールモジュール458内ルールを、第２の検出基準適合のウイルスルールから分けることができる。走査モジュール454内ルーチンの場合と同様に、慣用の索引付けおよび分類手法をこれらパターンおよびルールへの個別のアクセスの提供のために用いることができる。複数のシグネチャまたはルールが特定の索引フィールドに該当することはもちろんである。例えば、いくつかのシグネチャが索引フィールド.exeに対応し、したがって、他の索引制約を条件としてそれら走査条件対応のウイルスシグネチャに含まれる。
個別にアクセス可能で評価ずみ範囲とクライアント300提起のリスクとに従った適合生成の容易なルーチンおよびその対応のシグネチャを提供するほか、ウイルス走査段階を走査が反復して行われるように提供する。
例えば、好適な手法では、クライアント300のハードディスク316に常駐するファイル全部など複数のファイルを初期走査してそれらファイルがウイルスシグネチャの第１の部分（または複数のウイルスシグネチャ部分）を含むか否かを判定する。この初期走査の結果は上記部分がもしあればそれら部分を含むファイルを示す。次に、第１の走査の結果に基づき第２の走査を行う。より詳細にいうと、上記第１の部分を含むファイルを走査してそれらファイルが第２のウイルス部分をも含むか否かを判定する。これら第１および第２の部分を含むファイルはウイルスシグネチャ全体すなわちウイルスを含むものとみられる容疑ファイルである。この手法では初期走査に比較データとして用いられるデータの量は、走査にウイルスシグネチャの一部だけを用いるので、最少になる。また、走査すべきファイルの数は徐々に狭められるので、走査に用いられる計算のための資源はとくにクライアント300において削減される。
ウイルスシグネチャの索引付けの例および好ましいシグネチャ走査手法を図４Ｃ−図４Ｄを参照して次に述べる。図４Ｃを参照すると、例示用のデータテーブル475がプラットフォーム、ウイルスの種類およびウイルス識別子をコラムに表示した形で示してある。この例示用のテーブル475において、各行は特定ウイルスに関する情報を含む。この情報は特定ウイルス対応の走査ルーチンが実働化されるか否かの判定に用いられる。種々の走査ルーチンが共通の特性を備えるウイルス群に対応することはもちろんである。データテーブル475は種々のウイルス情報への索引付けの例を示す。どの走査ルーチンおよび処置ルーチンを用いるべきかの判断について種々の付加的または代替的基準を提供できる。
例示用データテーブル475に与えられている情報などの情報をメモリ414に提供して、ウイルス走査ルーチンおよび処置ルーチンの選択の際、より詳しくはウイルス検出および処理オブジェクト生成の際に、IVDM450aがアクセスできるようにするのが好ましい。範囲およびリスク評価段階、ユーザ入力または所定のセッティングによる反復オブジェクト判定を行うものとし、あるプラットフォームＩに対応するファイル種類ウイルスのみを対象とし、その対象ファイルをウイルスＡ、ＣおよびＥなどのウイルスだけについて走査するものと仮定する。走査ルーチンは走査モジュール454に提供され、アクセス用に索引付けしてある。また、ウイルスシグネチャをウイルスパターンモジュール456に提供しアクセス用に索引付けする。データテーブルのコラムに示した情報などの情報を用いて、ファイル種類ウイルスおよびウイルスＡ、ＣおよびＥ対応のウイルスシグネチャにアクセスする。これら三つの選ばれたウイルスに対応するシグネチャ全部を含むウイルス検出オブジェクトをこの発明によって提供できるが、ウイルス検出のためにクライアント300への送信を要する情報の量をさらに削減することを可能にする手法も提供する。
図４を参照すると、もう一つのデータテーブル480はウイルス識別子を示すコラムと分離ウイルスコンポーネントストリングデータを概括的に示すコラムを含む。図示のとおり、識別ずみのウイルスの各々についてのウイルスシグネチャはウイルスの検出に使える複数の部分に分割される。一つの実施例では、それら部分は１バイトストリングから成るが、このストリング長は変わり得る。例えば、ウイルスＡについてはストリングA1、A2およびA3が示してあり、ウイルスＢについてはストリングB1、B2およびB3が示してあり、ウイルスＣについてはストリングC1、C2およびC3が示してある。テーブル480は例示のためのものである。なお、ウイルスの各々について多数の追加の部分またはストリングを提供できる。また、上記以外の多数のウイルスについてのデータも提供できる。
データテーブル480の中のデータなどウイルスシグネチャ部分データを用いて反復的で連続的なウイルス走査を行うことができる。この種の走査を実現する方法は二つあり、次の説明ではそれらを第１の種類および第２の種類という。
第１の種類の検出では、対象ファイル全部を上記関連のストリング部分について反復走査し、対象ファイル中に常駐し得るウイルスの数を徐々に狭めることによって検出を行う。ウイルス部分はシグネチャ内の隣接ストリングである必要はない。潜在的にあり得るウイルスの数を十分に絞ったあと、それら存在し得るウイルスの各々に対応するウイルスシグネチャ全体を所要ファイルの走査用に提供する。
第２の種類の検出では、走査そのものは複数のウイルスシグネチャ部分を用いて行う。ウイルス部分はシグネチャの隣接ストリングとし、ウイルス検出オブジェクトを対象ファイル内におけるウイルスの有無およびその位置の検出に適合配置する。
上記第１の種類の検出について述べると、初期ウイルス検出オブジェクトは初期部分またはストリングA1、B1およびC1を含むか否かの判断のために対象ファイル全部を走査するためのルーチンを含む。このウイルス検出オブジェクトは分割ずみの索引付きデータで生成され、クライアント３００に伝送される。次のクライアントはこのウイルス検出オブジェクトを実行して結果を生ずる。この実行結果は上記部分またはストリングが対象ファイルに含まれているか否かについての表示と、含まれていた場合どのファイルがどのストリングを含むかの識別を含む。対象ファイルが100個であって、ストリングC1を含んだ対象ファイルがなく、それら対象ファイルのうちの５個がストリングA1またはB1（または両方）を含んでいたとすると、ウイルス検出オブジェクトの実行の結果はそのとおりの状態を示す。それら５個のファイルの識別記号がクライアントに残り、ウイルス検出サーバ400に伝送される結果がストリングA1およびB1の検出を示す（すなわちストリングC1付きのファイルなし）のが好ましい。ウイルス検出サーバ400はこの結果を用いて第２のウイルス検出オブジェクトを生成する。この例において、第２のウイルス検出オブジェクトは、ウイルスＣが考慮外となったので、ストリングA2およびB2のみを含む。次に、この第２のウイルス検出オブジェクトをクライアントで実行する。より詳細に述べると、クライアントは上記５個の識別ずみのファイルを走査してそれらファイルがA1とA2またはB1とB2の組合せを含むか否かを判定する。それ以前の実行（A1、B1などの検出）の結果を、第２のストリングだけについて走査を行うように、または両方のストリングについて走査を行うように用いる。すなわち、このウイルス検出オブジェクトの実行によって、ウイルスＡおよびＢを考慮対象外にすることができる。あるファイルがB1およびB2の両方を含みAlおよびA2両方を含むファイルがないことがわかった場合は、ウイルスＢに対応するウイルスシグネチャ全体が次のウイルス検出オブジェクトに提供され、対象ファイルをクライアント300におけるウイルス常駐の有無の判定のために走査できるようにする。なお、この手法の利用において、反復の回数、継続して存在しそうなウイルスの数および走査されるファイルの総数は変動し得る。しかし、限られた量の比較データの利用により、ウイルスシグネチャ全体がクライアント300に最終的に伝送される際にそれらシグネチャおよび伝送すべき対応のデータ量を実効的に最少にできる。
第２の種類の検出においては、ストリングはウイルスの隣接部分を含み、したがって反復走査にはウイルス検出も可能である（ウイルスシグネチャ全体の伝送に至る存在可能性あるウイルスの量を限定するだけでなく）。したがって、この第２の種類の検出では、ストリングおよびストリング位置などファイル関係の追加情報を供給する。より詳細に述べると、この第２の種類の検出では、初期ウイルス検出オブジェクトが５個の対象ファイルにおけるA1またはB1含有を示す場合は、どのファイルがどのストリングを含むかの識別およびマーカを保持し、対象ファイル中で隣接ストリングA2またはB2がストリングA1またはB1にそれぞれ後続しているか否かについて判断できるようにする。このようにして、潜在するウイルスの数を最少にし努力の重複を回避する。すなわち、シグネチャ全体をウイルス部分の伝送のあと伝送する必要がないからである。
ウイルス反復検出およびそれによるクライアントへの伝送データ量の最少化の好ましい手法を述べたが上記以外の手法も提供できる。反復検出のためにモジュール化または再分割可能なウイルス検出手法のいくつかの例として、マクロ中の未知ウイルスの検出および電子メール走査に用いる手法が挙げられる。これらの例は図５のイベント図のウイルス走査段階を参照して後述する。
反復ウイルスのためのルーチン、パターンおよびルールを、走査モジュール454、ウイルスパターンモジュール456およびウイルスルールモジュール458における個別アクセスのためにそれぞれ提供する。図４Ｂをさらに参照すると、IVDM450aは、ウイルス走査モジュール454、ウイルスパターンモジュール456およびウイルスルールモジュール458と連携して、ウイルス検出オブジェクトの反復生成を、それ以前のウイルス検出オブジェクトの実行の結果に基づいて行う。ウイルス走査モジュール454の中のルーチンおよびそれぞれのモジュール458および456の中のルールおよびパターンは互いに分離可能になるように提供されるので、IVDM450aは、例えばウイルス検出のために走査すべきクライアント300で提示された条件の種類を特に対象とする限定量のデータを含むウイルス検出オブジェクトを生成できる。例えば、未圧縮で特定ディレクトリに常駐する実行可能なファイルのみを走査の対象とすることをそれまでの反復（または別個に供給された入力）が支持した場合は、IVDM450aは実行可能なファイルの中のウイルスの検出に用いるウイルス走査モジュール454中のルーチンにアクセスし、ウイルスパターンモジュール456中の実行可能なファイルに存在し得るウイルスシグネチャにアクセスし、その情報を用いてウイルス検出オブジェクトを生成する。走査モジュール454からの適切なウイルス検出ルーチンおよびウイルスパターンモジュール456やウイルスルールモジュール458からの情報を用いてウイルス検出オブジェクトを生成する。上述のとおり、このオブジェクトはActiveXcontrolsまたはJava appletsで提供されるプログラム言語などの慣用の言語を通常実働化する。
各ウイルス検出オブジェクトは、いったん生成されると、ウイルス検出サーバ400からクライアント300へ慣用のネットワーク伝送プロトコルを用いて伝送できる。クライアント300はそのウイルス検出オブジェクトを実行して、その実行の結果をウイルス検出サーバ400に伝送する。IVDM450aはウイルス走査モジュール454と協働してウイルス検出オブジェクトの実行結果を用い、追加のウイルス検出オブジェクトが要るか否か、それが要らない場合ウイルスが検出されたか否かを判定する。好ましい動作方法においては、ウイルス検出オブジェクトの反復生成を、範囲評価段階、リスク評価段階およびウイルス走査段階など個別の段階に分割する。上記範囲評価段階ではウイルス走査の範囲の判定を行う。リスク評価段階では、要求位置提示の条件に関する判定結果を用いてウイルス走査段階でオブジェクトを生成する。
IVDM450aが走査モジュール454と協働して、また必要に応じてウイルスパターンモジュール456およびウイルスルールモジュール458とも協働して、ウイルス有りと判定した場合は、所望の処置の種類、条件、検出ずみのウイルスの種類に従ってワクチンを適合生成する。走査ルーチンおよび検出情報の場合と同様に、清浄化モジュール460の中のルーチンおよび清浄化パターンモジュール462の中のパターンほかのデータを個別アクセスのために提供して、処置に必要なそれらルーチンおよびデータに個別にアクセスできるようにする。このアクセスは慣用の索引付け分類手法によって提供する。ウイルス処置オブジェクトはIVDM450aが清浄化モジュール460と連携して生成する。また、ウイルス検出オブジェクトの場合と同様に、この処置オブジェクトは以前のオブジェクトの結果を用いて反復的に生成できる。
清浄化モジュール460によって多様な治療ルーチンを提供する。クライアント300で提示された条件および検出ずみのウイルスの種類に応じて、それら治療ルーチンは、ファイルを削除する、ファイルの感染部分を除去する、または感染部分を良性の部分と差し替えるなどの動作を即座に行う。感染したファイルの修正のためのこれらの動作に加えて、治療ルーチンは検出されたウイルスの影響を受ける可能性のある関係者に警告を送ったり、そのウイルスに特有の諸表示を提供したりすることができる。例えば、ネットワーク内のクライアント300にダウンロードされたJava appletの特定の種類にウイルスが検出された場合は、ネットワーク管理者に通知を送って、同様のエンティティがネットワークに入らないようにすることができる。
次に図５を参照すると、ウイルス検出サーバ400を用いた反復ウイルス検出の方法が初期化段階、範囲評価段階、リスク再評価段階、ウイルス走査段階および治療段階を含む形で示してある。
初期化段階はウイルス走査の要求505によって促される。この要求は慣用のネットワーク通信プロトコルを用いてウイルス検出サーバ400にアクセスするクライアント300が直接に始動する。要求505を促すトリガ作用のイベント502は通常はクライアント300のユーザにより始動されるが、ユーザ要求または始動以外のトリガ作用のイベントで始動することもできる。これによって、ユーザからの入力を要することなく通常のウイルス走査が可能になる。また、LAN所属の複数のコンピュータなどユーザが管理しようとする一群のコンピュータを、ユーザ始動によることなく、しかもネットワーク資源最少量の使用で通常のウイルス走査にかけることができる。さらに、ウイルス検出サーバ400はスタンドアローンクライアント300またはLAN所属コンピュータとは分けて保守できるので、クライアント300のユーザまたはLAN管理者側でウイルス検出データ保守を行う必要はほとんどない。非ユーザ始動走査要求を供給するのにエージェントプログラムを用いるのが望ましい。
トリガ作用のイベントの好例は最新のウイルス走査以降の所定時間長の経過である。それ以外のトリガ作用のあるイベントとしてはウイルスの拡がりを助長する可能性のあるイベントなどがある。これらトリガ作用のあるイベントとしては、インターネットアクセス試行、電子メールの送受信、またはインターネット経由のファイルのダウンロードなどがある。また最新のウイルス走査以来の所定時間長の経過後の初めてのインターネットアクセス試行などの複数のイベントの組合せもトリガ作用のイベントになり得る。なお、上述のイベントのほかにも多様のトリガ作用のイベントを提供できる。
上述のエージェントプログラムは、トリガ作用のイベントの生起を検出または判定すると、ウイルス走査要求をウイルス検出サーバ400に送る。次に、ウイルス検出サーバ400からの応答（確認後）をクライアント300に「プッシュ」する。エージェントプログラムには慣用のプログラミング手法を用い、トリガ作用のイベントの生起の判定のための関連情報の収集には慣用の手法を用いる。
クライアント300が図１のクライアント300などのようなLAN部分のものでない場合は、そのエージェントプログラムはクライアント300aに常駐するのが好ましい。クライアント300が図１のクライアント300bのようにLANチャネル経由でウイルス検出サーバ400と交信する場合は、エージェントプログラムはクライアント300bに常駐でき、好ましくはトリガ作用のイベント対応の判断に関連あるネットワークトラフィックを監視し得るLANサーバ350（ゲートウェイサーバ、非ゲートウェイサーバ、または代理サーバなど）に常駐できる。エージェントプログラムを、アクセス管理モジュール464中のルーチンを用いて生ずるのが好ましい。エージェントプログラムを慣用のネットワーク伝送プロトコル利用により被選択位置（例えばクライアント300a、クライアント300b、LANサーバ350、代理サーバなど）に伝送して、クライアント300のメモリ314、またはその被選択位置の適切な蓄積位置に蓄積できる。このエージェントプログラムには慣用のプログラミング言語を使える。
ウイルス走査要求（505）はウイルス検出サーバ400により検出され（510）、その要求が有効であるか否かが判定される（520）。アクセス有効性の判定のためのルーチンおよびルールはアクセス管理モジュール464およびアクセスルールモジュール458からそれぞれ供給され、IVDM450bに関連して説明する。簡単に述べると、アクセス管理モジュール464は要求を識別して、ルールモジュール458中のルールにアクセスし、要求が有効か否かの判定をアクセスルールへの参照により行う。現行の口座を通常審査するが、モジュール464は新たな口座の創設を受理して手配するように配置する。
有効なウイルス走査要求がなされたと判定すると、範囲評価段階が始動する。範囲評価段階では、ウイルス検出サーバ400が走査対象点を通常判定する。範囲評価段階では、走査すべき媒体、走査すべき場所（例えばディレクトリ）または走査すべきファイル群など種々の情報を判定できる。ウイルス走査範囲の確認のためのウイルス検出オブジェクトをウイルス検出サーバ400で生成し（525）、慣用のネットワーク通信プロトコルを用いてクライアント300に伝送する（530）。このウイルス検出オブジェクトがクライアント300において走査関係情報の捕捉のためにユーザによる入力を促すのが好ましい。一つ以上の所定のウイルス検出オブジェクトに索引付けしてメモリ414に蓄積し、IVDM450bによるアクセスに備えるのが好ましい。ウイルス検出オブジェクトの一例は、装置、メモリ、ディレクトリおよび走査を要するファイルなどの情報を得る。
上記クライアントは関連情報を集めるためにウイルス検出オブジェクトを実行する（535）。ウイルス検出オブジェクトの指示した要求に応じてユーザ入力が必要であることはもちろんである。クライアント300はウイルス検出サーバ400に受信されるように上記結果を伝送する。ウイルス検出オブジェクトが上記結果をウイルス検出サーバ400に送り、オブジェクトおよび結果と引き替えにユーザからの継続入力への必要性を解消するようにするのが好ましい（540）。代替的には、ユーザがマウス322のボタンのクリックまたはキーボード318入力操作などによる単純な入力を行って伝送（540）を行うようにするのが好ましい。
範囲評価段階には多様な改変が可能である。この段階に対応するウイルス検出オブジェクトの生成は必ず要るわけではない。例えば、IVDM450bは要求者識別対応のアクセスデータモジュール466またはそれ以外の場所でウイルス検出情報を保持できる。また、特定の種類の要求に対応する口座情報をアクセスデータモジュール466内に供給できる。口座情報はLAN上のコンピュータ全部に対応でき、それらコンピュータに関する所要背景情報を提供して反復範囲評価なしに走査できるようにする。代わりに、特にクライアント300がウイルス検出シェルを含む場合は、情報をウイルス走査要求とともに供給する。最後に、ウイルス検出サーバ400はデフォルトセッティング（例えばクライアント300のハードディスク装置全体を走査するなど）に依存して、これらデフォルトセッティングの利用により照会なしでウイルス走査を進めることができる。
所要情報を集めたのち、リスク評価段階を開始する。リスク評価段階においては、判定した走査範囲を分析してファイルまたはデータのウイルス含有の有無および含有の場所を判定する。ウイルス検出オブジェクトを生成しクライアント300に伝送して、走査の要否および所要走査の種類の特定を行う。範囲評価段階対応のウイルス検出オブジェクトが供給された場合は、クライアント300における実行の結果は次のウイルス検出オブジェクトの生成に用いることができる。リスク評価段階では種々の情報を確認する。特定の対象、例えば特定の蓄積媒体またはディレクトリなどの特定の対象が指定されている場合は、ウイルス検出オブジェクトを生成して（545）、それら特定の対象に必要な走査の要否およびその種類を判定する。例えば、ウイルス検出オブジェクトの生成（545）を、特定のディレクトリに常駐するファイルの種類（例えば実行可能なファイルが常駐ファイルであるか否か）の判定のため、または蓄積媒体の種類またはディレクトリ（例えばクライアントまたはディレクトリが電子メールシステムの中のポスタルノードに対応するか否か）の判定のために行い、それら特定の対象に伴うリスクを評価して後続のウイルス走査がそのリスクに適合できるようにする。他のウイルス検出オブジェクトの場合と同様に、このオブジェクトは判定を行うタスクに特有の実行可能なプログラム（それ以外のデータもあり得る）を含む。
より詳細に述べると、例えばディレクトリが初期に範囲評価による走査ドメインとして特定されている場合は、その特定ディレクトリ中の各ファイルのファイルヘダーにアクセスし、そのファイルヘダーを所定データに比較してウイルス含有の可能性ある種類のファイルであるか否かを判定し、容疑ウイルスとみられるファイルの識別情報を保持するプログラムをウイルス検出オブジェクトに提供できる。リスク評価段階に対応するウイルス検出オブジェクトに対する種々の代替物が当業者には自明であろう。
ウイルス検出オブジェクトをクライアント300によって伝送して（550）実行し（555）、その実行に対応する結果をウイルス検出サーバ400に伝送（560）できるようにするのが好ましい。範囲評価段階に対応するウイルス検出オブジェクトの場合と同様に、クライアント300に当初伝送された（550）ウイルス検出オブジェクトはウイルス検出サーバ400への結果の伝送（560）に必要な手段を含み得る。リスク管理段階では伝送（560）をユーザ入力不要の自動式にするのが好ましい。クライアント300とウイルス検出サーバ400との間の伝送（550，560）も慣用のネットワークプロトコルを実働化する。
単一のウイルス検出オブジェクトがリスク評価段階に対応するものとして図示してあるが、複数のオブジェクトをこの段階で反復生成することもできる。また、範囲評価段階の場合と同様に、デフォルトセッティング、所定セッティングまたはウイルス検出サーバへの直接入力もリスク評価段階に利用して、範囲評価段階およびリスク評価段階の両方のためのウイルス検出オブジェクトを不要にすることもできる。その場合は、ウイルス検出オブジェクトの反復生成はウイルス走査段階だけに対応する。
リスク評価段階を完結すると、ウイルス走査段階が開始される。ウイルス検出サーバ400は前回の実行の結果に基づきウイルス検出用の走査のためにウイルス検出オブジェクトを反復生成する。すなわち、これらウイルス検出オブジェクトはクライアント300に提示された所望の走査および条件に従って特定して生成することができる。これによって、走査実行のためにクライアント300にウイルスデータを網羅的に伝送する必要なしに実効的ウイルス走査が可能になる。IVDM450a、特に走査モジュール454、ウイルスパターンモジュール456およびウイルスルールモジュール458を参照して述べたとおり、ウイルス検出用のルーチン、パターンおよびルールは、個別アクセスを可能にしウイルス走査段階対応の特定のウイルス検出オブジェクトの生成に使えるように提供される。ここに生成されたウイルス検出オブジェクトは前回のウイルス検出オブジェクト反復による情報の指示に従って実行可能なプログラムを含み、さもなければクライアント300で提示された条件に適合生成される。
走査段階におけるウイルス検出オブジェクトによって種々の走査ルーチンを実働化する。例えば、実行可能なファイルのシグネチャ走査が求められている場合は、ウイルス検出オブジェクトは、対象の実行可能なファイルの各々にアクセスし、対象ファイル内で検出見込みのウイルスシグネチャ群の一つのウイルスシグネチャに対応するストリングを各対象ファイルが含んでいるか否かを判定し、ウイルスシグネチャ含有の判明した対象ファイルに関する情報を保持するプログラムを含む。状態エンジンなどのシグネチャ走査手法を対象ファイルのウイルスシグネチャ含有の有無の判定に使える。
ウイルス検出サーバ400からクライアント300に伝送すべきデータの量を最少化する一つの方法は、先行段階で集められた評価ずみの範囲およびリスクに関する情報に基づき予想されるウイルスシグネチャだけを伝送する方法である。例えば、範囲およびリスク評価が特定クライアントのデータ蓄積装置の特定ディレクトリの.exeファイルのみの走査を指示した場合は、その種の走査を行うようにウイルス検出走査を適合実施する。より詳細に述べると、上記位置のファイルのシグネチャ走査の実施のための.exeファイルおよびルーチンに常駐し得るウイルスシグネチャをウイルス検出オブジェクトの中に提供し、そのオブジェクトをクライアント300で実行し、その結果をウイルス検出においてウイルス検出サーバ400に伝送する。
ウイルス走査段階に対応する形で一つのウイルス検出オブジェクトを示してあるが、複数のオブジェクトを反復生成できることを理解されたい。したがって、ウイルス検出オブジェクトの反復生成は、範囲およびリスク評価に基づき適合生成できるほか、サーバ・クライアント間の所要伝送情報量の最少化および使用コンピュータ資源の最少化を達成するよう互いに独立に適合生成できる。
効率的な反復分析のために多様な種類の走査を実働化する。シグネチャデータの包括的ダウンロードを要することなく網羅的シグネチャ走査を可能にする好適な手法を図４Ｄに示す。反復ウイルス検出には上記以外の走査手法も提供できる。例えば、マクロがウイルスを含むか否かの判定を行う手法をモジュール化し、または各個別のウイルス検出オブジェクトにより実現可能な複数機能に分割することができる。すなわち、マクロ中の既知および未知のウイルスの検出において、容疑命令の組合せをファイル中のウイルス含有の有無の判定に用いることができる。より詳しく述べると、第１の容疑命令および第２の容疑命令の両方を含むマクロが未知の（または既知の）マクロを含むと判定できる。すなわち、この発明によると、複数のウイルス検出オブジェクトを供給して、いくつかの対象ファイルにおける第１の容疑命令の有無の判定およびその第１の容疑命令含有ファイルの特定をまず行い、次に、その第１の容疑命令含有の対象ファイルが第２の容疑命令をも含んでいるか否かを判定してウイルスを検出する。第１のウイルス検出オブジェクトを生成するために、IVDM450aは走査モジュール454およびウイルスルールモジュール458と協動して、第１の容疑命令の検出に必要なルーチンおよびデータを得る。第１のウイルス検出オブジェクトの伝送をクライアント300による実行によりウイルス検出サーバ400からクライアント300に向けて行ったあと、第１の容疑命令を含むファイルの識別がサーバ400からの上記結果の中で可能である。代わりに、ファイル識別子をクライアント300に留めて、上記結果に識別ずみの容疑命令を表示させることもできる。いずれの場合も、ウイルス検出サーバ400は上記結果を用いて第２の容疑命令の有無の判定のための追加のウイルス検出オブジェクトを生成できる。
また、電子メールメッセージの中のウイルスの検出のための手法をウイルス走査段階の中での反復ウイルス検出に備えてモジュール化または分割できる。初期ウイルス検出オブジェクトによって、クライアント300（またはクライアント300の用いるポスタルノード）における未読出しメッセージの有無を判定する。判定の結果が未読出しメッセージ有りを示す場合は、追加のウイルス検出オブジェクトが、その未読出しメッセージにおける付加の含有の有無を判定し、それら付加をデコードし、デコードした付加を走査して未読出しメッセージにおけるウイルス含有の有無の判定を行うことができる。未読出しメッセージの有無の判定機能、付加含有の有無の判定機能、付加デコード機能およびデコードずみ付加の走査機能の各々について一つのウイルス検出オブジェクトを生成できるが、代わりに、ウイルス検出オブジェクトの各々に上記機能の一つ以上を担当させることもできる。
図５を引き続き参照すると、ウイルス検出オブジェクトはいったん生成されると（565）、実行（575）のためにクライアント300に伝送される。実行の結果は、分析（585）できるようにウイルス検出サーバ400に伝送される（580）。リスク評価段階の場合と同様に、クライアント300に当初伝送された（570）ウイルス検出オブジェクトは上記結果のウイルス検出サーバ400への伝送（580）をクライアント300におけるユーザ入力ほかを要することなく生じさせる部分を含むのが望ましい。分析（585）は追加のウイルス検出オブジェクトが走査に必要かどうかの初期判定を含み、不要の場合はウイルス検出の有無の判定を含む。
ウイルス走査段階の結果クライアント300においてウイルスが検出されたと判定（590）された場合は、治療段階が始まる。ワクチン処置オブジェクトの形のワクチンが所望の処置の種類、クライアント300に提示された条件、検出されたウイルスの種類にしたがって適合生成される。IVDM清浄化モジュール（460）および清浄化パターンモジュール（462）について説明したとおり、適合生成ウイルス処理オブジェクトの生成のために個別にアクセスできる種々の治療ルーチンを供給する。また、ファイルを削除する、ファイルの感染部分を除去する、感染部分を良性部分と置換するなどの種々の治療動作を行う。ウイルス治療オブジェクトは生成される（605）とクライアント300に伝送されウイルスの適切な処置のために実行される（615）ようにする。処置の結果を分析（625）できるようにウイルス検出サーバ400に伝送する（620）オプションもある。ウイルス検出オブジェクトの場合と同様に、慣用のネットワーク伝送プロトコルを用いてウイルス検出サーバ400との間のウイルス送受信を行い、図には反復１回だけを示してあるが複数のウイルス処理オブジェクトを適切な治療の実施のために実働化できる。
図６Ａのブロック図を参照すると、反復ウイルス検出モジュール450bのもう一つの実施例が示してある。反復ウイルス検出モジュール450bは、図４Ｂの反復ウイルス検出モジュール450aに含まれるモジュールと同様の走査モジュール654、ウイルスパターンモジュール656、ウイルスルールモジュール658、清浄化モジュール660、清浄化パターンモジュール662、アクセス管理モジュール664およびアクセスデータモジュール666を含む。しかし、反復ウイルス検出モジュール450bはこれらモジュールのほかにウイルス情報エキスパートシステム625を含む。ウイルス情報エキスパートシステム625は走査モジュール654、ウイルスルールモジュール658、ウイルスパターンモジュール656、清浄化モジュール660、清浄化パターンモジュール662、アクセス管理モジュール664およびアクセスデータモジュール666と信号授受する。
ウイルス情報エキスパートシステム625は情報および供給された条件データを集め、その条件データを所定の知識またはルールに適用し、集めた情報を知識に基づき適用して、ウイルス走査、走査対象の提示する範囲およびリスク、ウイルス検出ルーチンの選択およびウイルス検出の場合の処置ルーチン選択の妥当性についての判定を行う。
図６Ｂを参照すると、ウイルス情報エキスパートシステム625は推論エンジン630、ウイルス知識モジュール632、ユーザインタフェース634および条件データモジュール636を含む。推論エンジン630は前向きチェーニング型、すなわち好ましくは条件および対応動作型の一連のルールを通じた連鎖に基づき結果を判定する前向きチューニング型のものが好ましい。当業者には、後向きチェーニング型やファジー論理利用型など種々の代替の推論エンジンも実働化可能であることが認識されよう。ユーザインタフェース634は慣用のもので、知識またはそれ以外の種類の更新データの供給のためのエキスパートシステム625とのインタフェースを可能にする。ウイルス知識モジュール632はIVDM450bの諸動作に関連して用いられる情報およびルールを含む。推論エンジン630は条件データモジュール636からの条件データにアクセスし、その条件データを、IVDM450bの動作に用いられるウイルス走査判定を行うためにウイルス知識モジュール632提供のルールに適用する。特定の判定には、走査が適切であるか否かの判定、走査要求に関する条件の評価および実働化すべき走査および清浄化ルーチンの種類の判定などがある。
条件データは走査要求に関する事実の情報、クライアント300またはそれ以外の走査要求関連エンティティに関する所定の条件、およびオプションとして走査動作中に見出された情報を含む。また、IVDM450bの行うウイルス走査全部に関するグローバル情報も条件データモジュール636に提供でき、ウイルス走査判定に使用できる。特定の口座または要求者に関する情報をクライアント300のユーザやネットワーク管理者などの関係者とのネットワーク通信で提供できる。さらに、情報をエージェントプログラムで集めて、ユーザ入力を要することなく条件データモジュール636に供給できる。
好ましい実施例では、ウイルス知識モジュール632の中の条件および動作ベースのルールを「…の場合は…」の形式で提供し知識更新の容易化のために分類する。好ましいルールは、走査間隔、条件診断および治療に関するものなどがある。走査間隔ルールは走査を行うべきか否かの判断に用いられ、診断ルールはウイルスの有無および現条件に応じた適切な走査ルーチンの判定に用いられ、治療ルールはウイルスの検出（または検出なし）への適切な応答の判定に用いられる。
走査間隔ルールは時間および状況条件、および対応の動作を含むのが好ましい。例示用の走査間隔ルールをこの発明により判定応答可能な種々の条件を示すように表すと次のとおりとなる。すなわち「タイミング間隔ａで走査が着手されない場合はウイルス検出用の走査を行う」、「対象クライアントがインターネットアクセスをｎ回試みた場合はタイミング間隔を２で割る」、「対象クライアントがインターネットアクセスをｏ回試みた場合はウイルス検出用の走査を行う」、「クライアントが付加付き電子メールメッセージｐ個を受信した場合はウイルス検出用の走査を行う」、「クライアントがインターネットからダウンロードした場合はウイルス検出用の走査を行う」、「クライアントと交信中のエンティティでウイルスが検出された場合はウイルス検出用の走査を行う」、「クライアントがLAN内だけで間隔ｂ以内に交信した場合はタイミング間隔に２を掛ける」、「前のウイルス走査がｃ以内である場合はウイルス検出用の走査は行わない」、「時点ｄ以来走査が試みられていない場合はウイルス検出用の走査を行う」。
これら例示ルールは一定間隔ウイルス走査に備えてあり、種々の条件によってどの方向にも間隔を調節できる。また、走査がある間隔に収まるように、しかも不必要に反復的な走査を行わないように、間隔の下限および上限（ｃ，ｄ）を提供する。当業者にはウイルス走査を行うべきか否かの判定に適用可能な種々の条件および動作が認識されよう。
条件データモジュール636は推論エンジン630が知識モジュール632内のルールに適用する情報を提供する。好ましい実施例では、それら条件を当初は条件データモジュール636に提供し、クライアント、クライアントエージェント、またはウイルス検出サーバ400への情報供給に責任あるそれら以外のエンティティからの通信によって更新する。それら条件を周期的にルールに適用し、適切な条件のもとでウイルス走査「要求」をウイルス情報エキスパートシステム625で生成する。IVDM450aの実施例の場合と同様に、この要求はアクセス管理モジュール664およびアクセスデータモジュール666を用いて受信でき確認できる。条件データの保守および要求の受信および確認には種々の代替策を提供できる。より詳しく述べると、条件データはIVDM450b以外の資源に保持しその資源から供給できる。例えば、クライアント300、エージェントプログラムまたはネットワーク管理者は適切な情報を集めてその情報をウイルス検出サーバ400に伝送できる。さらに、ネットワーク関連の情報を、ウイルス走査要求、および走査要求中のクライアント300ほかのエンティティの判定のためのエキスパートシステム625の形式で提供できる。
ウイルス知識モジュール632に提供される診断ルールを、図５のイベント図を参照して説明した範囲およびリスク評価段階で提供されるものと類似の判定を行うのに用いる。診断ルールを条件データに適用して、クライアント、クライアント群またはウイルス要求対応の走査可能なエンティティにつき、走査を行うべき箇所および行うべき走査の種類を判定する。走査間隔ルールの場合と同様に、推論エンジン630は条件データモジュール636内の情報をウイルス知識モジュール632内のルールに適用する。その結果は、走査モジュール654内に提供される適切なウイルス走査ルーチンを、適切なパターンおよびウイルス走査ルールを用いて指示する。
診断ルールは状況条件および対応の動作を含むのが好ましい。次に示す例示のための診断ルールはこの発明により判定でき応答できる種々の基本的条件を表す。
「ウイルス走査要求で走査範囲が指示された場合はその要求どおりに走査する」
「その要求が走査範囲を指示していない場合はクライアントが書込み可能な媒体を備えるか否かを判定する」
「クライアントが書込み可能な媒体を備えない場合はウイルス走査を行わない」
「関連走査がウイルスＸを検出した場合はウイルスＸにつきクライアントを走査する」
「クライアントがハードディスクを備える場合はそのハードディスク特有の条件に従って走査する」
「.exeファイルがある場合はファイルウイルスシグネチャ走査を行う」
「.comファイルがある場合はファイルウイルスシグネチャ走査を行う」
「アプリケーションデータファイルがある場合はマクロウイルスにつき走査を行う」
「クライアントがポスタルノードである場合は未読出しメッセージ全部を付加メッセージにつき走査する」
「クライアントが電子メールを受信した場合はそれの未符号化部分を走査する」
「クライアントがJava applet実行エンジンを備える場合は敵対的Java appletにつき走査を行う」
「クライアントが他の書込み可能な媒体を備える場合はその書込み可能な媒体に特有の条件を判定してその媒体を走査する」
これら例示用のルールがクライアントで優勢な条件に基づき基本的走査範囲を決定する。ウイルス走査要求を促した条件に走査を適合させることもできる。例えば、走査を多量の電子メール受信でトリガする場合、特にハードディスクを最近走査したばかりである場合は、ハードディスク全体でなく電子メールメッセージだけを走査する。
有効な走査要求およびウイルス情報エキスパートシステム625によりクライアント300に提示された条件の評価の判定を終えると、識別された対象をウイルスについて走査する。走査は、IVDM450bが走査モジュール654を用い、ウイルスパターンモジュール656およびウイルスルール658との交信のもとに図４ＢのIVDM450aの説明で述べた手法によって行う。例えば、ウイルス情報エキスパートシステム625がクライアント300提示の条件をウイルス知識モジュール632内のルールに適用し、ハードディスク全体をファイル種類（例えば.exe，.com）ウイルスについて走査する必要ありと判定した場合は、IVDM450bはクライアント300のハードディスクが何らかのファイル種類ウイルスを含むか否かを反復的に判定するのに用いるウイルス検出オブジェクトを生成する。ファイル種類ウイルスのクライアント300における常駐の有無の判定に、図４Ｄを参照して説明したウイルスシグネチャ部分手法を用いるのが好ましい。反復検出および対応手法が好ましいが、ウイルス情報エキスパートシステム625は任意の種類の走査を促すことができる。例えば、ウイルス情報エキスパートシステム625は、包括的シグネチャ走査および対応の検出シグネチャを必要に応じてIVDM450bからクライアント300にダウンロードさせることができる。走査モジュール、ウイルスパターンモジュールおよびウイルスルールモジュールに提供される索引付けを、ダウンロードしたルーチンが所望の検出の種類に確実に対応するように用いることができる。
ウイルス走査の結果ウイルスが検出された場合は治療段階が始まり、清浄化モジュール660の提供するルーチンが、必要に応じて清浄化パターンモジュール662とともに実働化されて、検出ずみの症状に治療を施す。ウイルス処理プロジェクトを生成して、IVDM450aにつき上に述べたように治療を施すのが好ましい。オプションとして、ウイルス情報エキスパートシステム625から、実働化すべき治療ルーチンの種類に関する知識ベースの判定結果を供給する。例えば、ウイルス情報エキスパートシステム625は、ファイルを完全無欠性維持のために修正するか、全面的に削除するか、ウイルス部分を除去するかを決定する。また、クライアント300のユーザ、関連のユーザ、ネットワーク管理者その他の関係者に提供する通知について判定を行う。さらに、検出されたウイルスの種類に対応するファイルの特定のクラスについて転送防止を要求するなど上記以外の治療動作も実働化できる。より詳細に述べると、IVDM450bは、エキスパートシステム625の要求を受けて、ある種類のファイルがウイルスを含んでおりそれがネットワークに送り込まれた旨の電子メールをネットワーク管理者に送ることができ、また代理サーバを含むサーバなどのネットワークコンピュータと直接に交信してウイルス検出ずみのファイルの種類の侵入を防ぐコンフィギュレーション変更命令を供給できる。
図７の概略図を参照すると、例示用のネットワーク通信システム700は、クライアント300c、ゲートウェイサーバ710および管理用サーバ750を備えるローカルエリアネットワーク（LAN）を含む。ゲートウェイサーバ710は他のネットワーク、すなわちこの例ではWANへの入口として作用し、管理用サーバ７２５はLAN内で管理を行うサーバである。図１の場合と同様に、ウイルス検出サーバ400はWAN所属であり、クライアント・サーバ関係がウイルス検出サーバ400とクライアント300cとの間、またはウイルス検出サーバ400とゲートウェイサーバ710または管理サーバ725（ゲートウェイサーバ710または管理用サーバ725をクライアントとして）との間に成立する。慣用の媒体および慣用のネットワーク伝送プロトコルを用いて接続を形成する。
図８Ａのブロック図を参照すると、この発明による管理用サーバ725の一実施例はCPU802、メモリ804、データ蓄積装置806、I/Oポート808およびネットワークリンク810を含む。CPU802は慣用のプロセッサであり、メモリ804は慣用のアドレス可能なメモリ（RAMなど）であり、I/Oポート808およびネットワークリンク810も慣用のものである。CPU802、メモリ804、I/Oポート808（および対応の装置）およびネットワークインタフェース810をバス814に慣用の形で接続する。CPU802はメモリ804からの命令による制御のもとで、ネットワークインタフェース810を用いたネットワーク媒体812経由の通信などの動作を行う。メモリ804は代理サーバ820を含む。代理サーバ820は情報授受の際に他のサーバまたはクライアントの代わりとして動作する。多様な種類の代理サーバ804を提供できるが、好適な代理サーバはインターネット要求をクライアント300cなどのネットワークコンピュータから集め、インターネットサーバにそれら要求を伝達し、インターネットサーバからの応答を受けて要求者（クライアント300ｃなど）との通信を行う。
図８Ｂのブロック図を参照すると、メモリ804がこの発明によりネットワーク診断保守アプリケーション825の実施例をさらに含んだ形で示してある。ネットワーク診断保守アプリケーション825は代理サーバ804から離して常駐させることもでき、また代理サーバとバンドルすることもできる。ネットワーク診断保守アプリケーション825はウイルス情報エキスパートシステム830、診断データモジュール850および保守要求モジュール875を含む。また、アプリケーション825は、ネットワーク応答エキスパートシステムおよびアプリケーションソフトウェアエキスパートシステムなどの追加のエキスパートシステムをオプションとして含む。アプリケーション825は、ネットワーク関連の情報を集め、この集めた情報により診断データを生成して保持し、それら診断データを所定の知識に適用してネットワーク条件関係の判定を行い、それら判定に基づきネットワーク保守の要求を発生するルーチンを備える。アプリケーション825はコンピュータソフトウェアで構成するのが好ましいが、ハードウェアまたはファームウェアでも構成できる。
アプリケーション825は概括的にいうと次のとおり動作する。診断データモジュール850は、ネットワーク関連の情報を集めてそれら集めた情報から診断データを生成するルーチンを含む。診断データモジュール850、はエキスパートシステム830、840、845と信号授受し、診断データへのアクセスを容易にする。これらエキスパートシステム830、840、845の各々が推論エンジン、知識モジュールおよびインタフェースを備えるのが好ましい。上記インタフェースは、ユーザとシステムとの間の信号授受を可能にするメニュー駆動式のものなど慣用の型のインタフェースで構成する。知識モジュールは、行うべきタスクに特有の情報およびルールの形で知識ベースを提供する。推論エンジンは前向きチェーニング型など慣用のもので構成する。推論エンジンは診断データモジュール850の中のアクセス条件データにアクセスし、それら条件データを知識モジュールの中の情報およびルールに適用し、ネットワーク条件についての判定を行う。これらエキスパートシステムはそれぞれの専門分野に関する特定の診断上の判定を行う。また、これらエキスパートシステムは保守要求モジュール875と信号授受し、それぞれの診断上の判定をモジュール875に供給し、このモジュール875で保守要求を生成する。その要求はLANの外の資源、すなわちウイルス検出サーバ400などに通常送られ、保守を提供する。
ウイルス情報エキスパートシステム830を例示として述べる。このシステム830はネットワークの活動を分析して、ウイルス走査を行うべき時期、ウイルス走査を行うべき箇所、行うべきウイルス走査の概括的種類、およびウイルス検出時の好適な治療などの条件付き判定を行う。これら判定結果を保守要求モジュール875に送って、このモジュール875がウイルス走査要求をウイルス検出サーバ400に送り、ウイルス検出サーバに条件付き判定を供給する。これ以外のエキスパートシステム840、845もこの発明に従って提供できる。例えば、ネットワーク応答エキスパートシステム840はネットワークの動作を監視して応答の妥当性を確保することができ、また不完全動作の解消に外部資源を使って内部資源の負荷を軽減する対策をとるか否かの判定もできる。また、アプリケーションソフトウェアエキスパートシステム845はソフトウェア更新版の供給のための条件を決定できる。更新を要する旨の判定は遠隔資源からの更新要求を促す。ネットワーク応答エキスパートシステム840およびアプリケーションソフトウェアエキスパートシステム845など例示用の追加エキスパートシステムについて述べたが、これら以外の代替のエキスパートシステムも採用可能であることを当業者は認識するであろう。
ウイルス情報エキスパートシステム830をさらに参照すると、ウイルス知識モジュール834は走査間隔および条件診断のためのルールクラスなど多様なルールクラスを有する。走査間隔ルールは走査を行うべきか否かの判定に用いられ、時間および状況条件および対応の動作を含む。診断ルールも状況条件および対応の動作を含み、ウイルス処置の範囲評価段階（例えば、走査すべき媒体、ディレクトリ、ファイル）およびリスク評価段階（例えば、特定された範囲の中のどのファイルまたはデータがウイルスを含むか）に提供されるものに類似の判定を行うのに用いられる。例示用の走査間隔および条件診断ルールセットはIVDM450b常駐のエキスパートシステム625について説明してある。そのシステムでは、ウイルス検出の際の治療の選択に関するルールも提供できる。
診断データモジュール850は代理サーバ820と信号授受し、ローカルネットワーク伝送媒体812に接続されてネットワーク関連情報を集める。その情報は、どのクライアント300cがインターネットへのアクセスを試みたか、各クライアント300cとネットワーク外のものも含むそれ以外のエンティティとの間の通信にどの種類の動作およびプロトコルが使われたかなどの情報を含むのが好ましい。この情報はネットワーク媒体を伝送されるデータパケットの分析、または例えば代理サーバ820から診断データモジュール850に向けられた信号伝達により確認できる。例えば、クライアント300cによるHTTP要求すべてを処理するように配置されたHTTP代理サーバがクライアントおよび対応の診断データモジュールへの要求を識別し、ファイル転送を処理するように配置されたFTP代理サーバが関連プロトコルおよび転送ファイルの供給源の識別データを用いてファイルダウンロード先のクライアント300cを表示する。上記集められた情報のほかに、各クライアント300cに関する背景情報、すなわちその内部のCPUおよび蓄積媒体（例えばハードディスク）に関する情報などの情報を診断データモジュール850に提供する。さらに、最新のウイルス走査のタイミングなどの関連情報を各クライアント300cについて供給する。上記エキスパートシステムにより知識ベースに加えられる診断データはこれら情報全部を含み、それら情報は診断データモジュール850に慣用の手法で蓄積される。追加のエキスパートシステム840、845の種類に応じて上記以外の情報を提供できるのはもちろんである。
エキスパートシステム830、840、845は診断データにアクセスし、それら診断データを所定の知識に適用してネットワーク条件に関する判定を行う。ウイルス情報エキスパートシステム830では、推論エンジン832が前回走査、電子メール受信、ファイルダウンローディング、インターネットアクセス試行などの診断データをウイルス走査要求時点の判定のためにウイルス知識モジュール834内の走査間隔モジュールに加え、蓄積媒体およびダウンロードしたファイルの種類などの診断データを要求のあったウイルス走査の範囲の決定のために加える。
エキスパートシステム830、840、845は保守要求モジュール875とも信号授受を行う。したがって、ネットワーク保守要求があったと判定されると、システム830、840、845はモジュール875を促して対応の要求を発生する。ウイルス情報エキスパートシステム830については、保守要求モジュール875がウイルス走査要求をウイルス検出サーバ400に導く。単純な場合は、その要求は単一のクライアント300cによる包括的走査に関する。しかし、クライアント300c、データ蓄積装置、その他このネットワーク所属のエンティティの全部または選ばれた一部を走査できる。走査対象の媒体、ディレクトリまたはファイル、ファイルの種類、求める治療の内容などを特定した走査要求を行うために、保守要求モジュール875はウイルス検出サーバ400とのカスタム化した交信を行うウイルス検出処理インタフェース880を含む。
ウイルス検出サーバ400について初期要求、要求の有効性の判定およびそれに続く走査段階を説明する。反復ウイルス検出手法はWAN所属のウイルス検出サーバ400で行うのが好ましいが、任意の走査プロトコルおよび処置プロトコルを用いた任意の資源をネットワーク診断処置アプリケーション825の要求により実働化できることは理解されよう。例えば、アプリケーション825によるウイルス走査要求は包括的ウイルスシグネチャや走査ルーチンのダウンローディングまたは慣用のシグネチャ走査手法を用いたLAN所属サーバにより対象クライアント300cに対する走査を始動させ得る。
ウイルス走査が行われると、ウイルス検出の有無の判定および治療の結果を好ましくは処置インタフェース880利用によりネットワーク診断保守アプリケーション825に伝達できる。上述の治療段階と同様に、治療はファイル削除、ファイル除去、ファイル訂正および種々の関係者間通報を含む。結果は診断データモジュール850の更新に用いて将来の走査がそれ以前の走査の際の判定を反映できるようにする。また、代理サーバ820など種々のネットワーク素子に走査の結果を通報し、コンフィギュレーションを変更することもできる。特定の転送プロトコルに対応する特定のファイルがウイルス含有と判明した場合は、適切な代理サーバを同種類のファイルの通過を将来阻止するようにコンフィギュレーション変更できる。また、診断データモジュール850に提供されるデータ源識別情報を用いて、感染ファイルのデータ源からの将来の転送を阻止し、そのデータ源に通報し、またはネットワーク上のクライアント300cに感染ファイルのデータ源につき通報することができる。
好ましい実施例についてこの発明を上に説明してきたが、多様な改変が可能であることを当業者は認識するであろう。例えば、アクセス管理、走査および清浄化に別々のモジュールを用いた例を示し説明してきたが、種々のプロセスを共通のモジュールに一体化したり、ウイルス走査要求受信、それら要求の確認、ウイルスの診断および検出、およびウイルスの処置など均等の動作を行う追加のモジュールに再分割したりすることもできる。また、ウイルスの検出および処置における反復を説明したが、各反復と各反復で行われる動作との対応関係は変動し得る。上述の実施例に対するこれらのおよびこれら以外の変形および改変は請求の範囲のみによって限定されるこの発明が提供するものである。
【図１】
0004052604.tif 000002
【図２】
0004052604.tif 000003
【図３】
0004052604.tif 000004
【図４Ａ】
0004052604.tif 000005
【図４Ｂ】
0004052604.tif 000006
【図４ｃ】
0004052604.tif 000007
【図４ｄ】
0004052604.tif 000008
【図５】
0004052604.tif 000009
【図６Ａ】
0004052604.tif 000010
【図６Ｂ】
0004052604.tif 000011
【図７】
0004052604.tif 000012
【図８Ａ】
0004052604.tif 000013
【図８Ｂ】
0004052604.tif 000014
0004052604.tif 000015
0004052604.tif 000016
0004052604.tif 000017
0004052604.tif 000018