(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の一目的は、コンピュータシステム上のマルウェアを検出するためのメカニズムを提供することであり、システム上でのオブジェクトのネットワークの検出に依存し、オブジェクトのネットワークはプログラム、アプリケーション、ファイル等に関連付けられている、または関連付けられていてもよい。これらのプログラム、アプリケーション、ファイル等のいくつかは、既知で信頼できる場合があり、いくつかは既知で信頼できない場合があり、いくつかは不明の場合がある。
【課題を解決するための手段】
【0006】
本発明の第1の態様によれば、相互関連オブジェクトのセットをそれぞれが備える複数のアプリケーションがインストールされているコンピュータを分析する方法が提供される。この方法は、最初に前記アプリケーションの1つまたは複数ごとのローカル
な依存関係ネットワークを
特定することを備え、ローカル
な依存関係ネットワークは少なくともオブジェクトパスおよびオブジェクト間の関係のセットを備える。次いで、当該(または各)ローカル
なアプリケーション依存関係ネットワークは、ローカル
な依存関係ネットワークに関連付けられたアプリケーションが既知であるかどうかを判定するために既知のアプリケーション依存関係ネットワークのデータベースと比較される。次いで、比較の結果は、マルウェアおよび/またはオーファンオブジェクトを
特定するために使用される。
【0007】
本発明の実施形態は、マルウェアのためにコンピュータをスキャンするより高速な方法を提供してもよく、従来のスキャン方法よりも大幅に少ない処理能力を必要としてもよい。加えて、本発明の実施形態は、コンピュータからマルウェアを除去するための改善された方法を提供してもよい。マルウェアアプリケーションのために依存関係ネットワーク全体が
特定され、したがって、削除中に悪意のあるアプリケーションのコンポーネントのすべてが除去されることを確保することができる。
【0008】
相互関連オブジェクトは、1つまたは複数の実行可能ファイル、データファイル、レジストリキー、レジストリ値、レジストリデータ、または起動ポイントであってもよい。
【0009】
この方法は、ローカル
なアプリケーション依存関係ネットワークのオブジェクトのパスを
特定すること、およびパスをシステムから非依存にするために正規化することをさらに備えていてもよい。
【0010】
ローカル
なアプリケーション依存関係ネットワークのオブジェクトパスは、アプリケーションのインストールプログラムが起動されたときに活動を追跡することにより、またはアプリケーションのインストール前後にシステムスナップショットを取り、2つのスナップショット間の違いを
特定することにより
特定してもよい。あるいは、ローカル
なアプリケーション依存関係ネットワークは:
特定の入力オブジェクトに対して、この入力オブジェクトに依存する他のオブジェクトのすべての検索を行うこと、
入力オブジェクトのパスおよび検索で見つかった他のオブジェクトのすべて、およびそれらのオブジェクト間の関係を結果ファイルに格納すること、
それ以上の依存オブジェクトが見つからなくなるまで、それぞれの他のオブジェクトに対してこれらのステップを再帰的に繰り返すこと、および、
結果ファイル内のオブジェクトパスを正規化すること、
により
特定されてもよい。
【0011】
既知のアプリケーション依存関係ネットワークのデータベースは、それらの依存関係ネットワークをキャプチャするために既知のアプリケーションのインストールを監視することにより、または代わりに分散クライアントベースのローカルシステムからアプリケーション依存関係ネットワークを収集することにより事前設定されてもよい。
【0012】
この方法は、クライアントコンピュータで1つまたは複数の前記アプリケーションごとのローカル
な依存関係ネットワークを
特定する前記ステップを実行すること、および中央サーバーで当該または各ローカル
なアプリケーション依存関係ネットワークを既知のアプリケーション依存関係ネットワークのデータベースと比較する前記ステップを実行することを備えていてもよい。
【0013】
この方法は、不明であるアプリケーション依存関係ネットワークに対して、未知のアプリケーション依存関係ネットワークに属するオブジェクトのさらなるマルウェアスキャンを行うことをさらに備えてもよい。このさらなるマルウェアスキャンは、従来のアンチウイルススキャン技術、例えば:
アプリケーションバイナリ証明書のチェックを行うこと、および
未知のローカル
なアプリケーション依存関係ネットワークで
特定されたオブジェクトに対してヒューリスティック分析を実行すること
のいずれか、または両方をさらに備えていてもよい。
【0014】
未知のローカル
なアプリケーション依存関係ネットワークで
特定されたオブジェクトは、多分他の既知のアプリケーション依存関係ネットワークと共有されるオブジェクトを除いて、アプリケーションが悪意のあることが判明した場合、クライアントコンピュータから除去されるか、または別の方法で安全にされてもよい。
【0015】
前記さらなるマルウェアスキャンの後に正規品であることが判明した未知のローカル
なアプリケーションのアプリケーション依存関係ネットワークは、既知のアプリケーション依存関係ネットワークのデータベースに入力されてもよい。
【0016】
本発明の第2の態様によれば、本発明の第1の態様の方法をコンピュータに行わせるためのコンピュータプログラムが提供される。
【0017】
本発明の第3の態様によれば、クライアントコンピュータが提供される。クライアントコンピュータは、クライアントコンピュータにインストールされた1つまたは複数のアプリケーションごとにローカル
な依存関係ネットワークを
特定するためのシステムスキャナを備え、ローカル
なアプリケーション依存関係ネットワークは、少なくともオブジェクトパスおよびオブジェクト間の関係のセットを備える。クライアントコンピュータはまた、ローカル
なアプリケーション依存関係ネットワークに関連付けられたアプリケーションが既知であるかどうかを判定するために、当該または各ローカル
なアプリケーション依存関係ネットワークを既知のアプリケーション依存関係ネットワークのデータベースと比較した結果を得るための結果ハンドラを備える。クライアントコンピュータは、マルウェアおよび/またはオーファンオブジェクトを
特定するために比較の結果を使用するためのポリシングユニットをさらに備える。
【0018】
本発明の第4の態様によれば、多数のクライアントコンピュータにサービスを提供するためのサーバー・コンピュータ・システムが提供される。サーバー・コンピュータ・システムは、既知のアプリケーション依存関係ネットワークのデータベースを備え、各アプリケーション依存関係ネットワークは、少なくともオブジェクトパスおよびオブジェクト間の関係のセットを備える。サーバーコンピュータはまた、前記クライアントコンピュータの1つまたは複数からローカル
なアプリケーション依存関係ネットワークを受信するための受信機を備える。関連付けられているローカル
なアプリケーションが既知であるかどうかを判定するために、受信したローカル
なアプリケーション依存関係ネットワークをデータベース内の既知のアプリケーション依存関係ネットワークと比較するように依存関係ネットワークコンパレータが提供される。サーバーコンピュータはまた、それぞれのクライアントコンピュータに比較の結果を送信するための送信機を備える。
【発明を実施するための形態】
【0020】
本明細書で説明するマルウェアスキャンのアプローチは、1つまたは複数の中央サーバーおよび多数のクライアントコンピュータを備えたコンピュータシステムの文脈で提示される。クライアントコンピュータは、インターネットを介して中央サーバー(複数可)と通信する。アプローチを採用され得る他のコンピュータ・システム・アーキテクチャは、当業者に容易に明らかであろう。
【0021】
クライアントコンピュータ上のアプリケーションは、少なくともデータファイル、ディレクトリおよびレジストリ情報(後者はアプリケーションの構成や設定を含む)を含む関連するオブジェクトのセットから通常成る − アプリケーションの実行可能ファイルへのデスクトップ・ショートカット・ポイント;アプリケーションの実行可能ファイルは他のアプリケーションファイルおよびライブラリが置かれているディレクトリに格納される;アプリケーションを実行するのに必要なデータファイルおよび他の実行可能ファイルの場所へのアプリケーション・レジストリ・ポイント。関連するオブジェクトおよびその関係のセットは、アプリケーションのための「依存関係ネットワーク」と考えることができる。
【0022】
オブジェクト名、絶対パス等に関係なく、特定のアプリケーションが、インストール時に、それがインストールされるクライアントコンピュータの構成に関係なく、特定のアプリケーション依存関係ネットワークを構築することが理解されるであろう(様々なクライアントコンピュータ上で同じオペレーティングシステムが使用されていると仮定して)。換言すれば、アプリケーションのためのアプリケーション依存関係ネットワークは、コンピュータに依存しない。したがって、アプリケーション依存関係ネットワークは、アンチウイルス・スキャン・エンジンでマルウェアを
特定するのに有用であり得る。
【0023】
特定のアプリケーションのための依存関係ネットワークを
特定するためのいくつもの方法がある。アプリケーションのインストール中に使用することができるこのような2つの方法が最初に提示される。
【0024】
第1の方法は、クライアントコンピュータ上でインストーラの活動を追跡することである。これを行うために、インストールプログラムは、フィルタドライバが任意の活動を監視し、インストーラまたはその子プロセスにより作成されたファイル、ディレクトリ、レジストリ情報など、オブジェクトのすべてを追跡できるように、管理対象環境内で起動される。フィルタドライバは、例えばファイル・システム・ドライバなどの低レベルコンポーネントであり、ファイルまたはディレクトリの作成およびファイルの修正または名称変更などのファイル操作をキャプチャおよび記録することができる。
【0025】
第2の方法は、システムスナップショットの「差分抽出(diffing)」を使用することである。この第2の方法では、システムスナップショットはアプリケーションのインストール前後にクライアントコンピュータ上で取得される。スナップショットは、ファイル、ディレクトリ、およびレジストリ情報を含むであろう。 2つのスナップショット間の差分を
特定することにより、インストールプロセス中にインストーラにより作成されたオブジェクトを
特定することができる。新しくインストールされたオブジェクトが一旦
特定されると、これを行うために採用される方法に関係なく、オブジェクト間の関係、例えばオブジェクトAがオブジェクトBを指し示すなどを判断することが必要である。オブジェクトパスは、オブジェクト間の関係と共に、アプリケーション依存関係ネットワークを定義する。
【0026】
アプリケーション依存関係ネットワークを
特定するためのすべての方法は、少なくとも、インストーラにより作成されるオブジェクトパスのリストを返す。パスをコンピュータに
依存しないようにするために、他のコンピュータが異なる構成を有していてもよいように、それらがまず正規化されなければならない。正規化プロセスは、アプリケーション・インストール・フォルダ、tempディレクトリ、ユーザー・プロファイル・ディレクトリ、システムディレクタ等に対するディレクトリを固定キーワードと置換する。例えば:
%INSTALL_DIR% − は、アプリケーションがインストールされている正規化されたパスである。特定のコンピュータ上では、実際のインストールディレクトリ、例えば「c:\Program Files\Mozilla Firefox」に変換することができる。
【0027】
正規化後、アプリケーション依存関係ネットワークは次のようなオブジェクトパスを含む:
%INSTALL_DIR%\firefox.exe
%INSTALL_DIR%\xul.dll
%INSTALL_DIR%\AccessibleMarshal.dll
%INSTALL_DIR%\application.ini
%USER_PROFILE%\Application Data\Mozilla\Firefox\
【0028】
さらに、以下のような、レジストリキー、起動ポイント、および値に関連する正規化されたオブジェクトパスを備えることができる:
HKEY_CLASSES_ROOT\.htm\OpenWithList\firefox.exe
HKEY_CLASSES_ROOT\.xht
HKEY_CLASSES_ROOT\Applications\firefox.exe\s hell\open\command
(デフォルト値)、REG_SZ、 ”%INSTALL_DIR%\firefox.exe −requestPending −osint −url ”%1”
【0029】
上記に示したように、オブジェクトはアプリケーション依存関係ネットワークを定義するのにも寄与する、それらの間の関係を有する。これらの関係を
特定するために、オブジェクト依存関係情報が使用される。例えば、上記のオブジェクトの例を使用して、拡張子.xhtを持つファイルをユーザーがクリックするといつでもfirefox.exeが起動される。これはファイルがfirefox.exeに依存しているためである。したがってオブジェクト間の関係は、オブジェクト”%INSTALL_DIR%\firefox.exeおよびレジストリ・キー・オブジェクトHKEY_CLASSES_ROOT\.xhtとの間で
特定することができる。%INSTALL_DIR%\firefox.exeを含むがHKEY_CLASSES_ROOT\.xhtと対応関係のないコンピュータ上のアプリケーション依存関係ネットワークがある場合、アプリケーションが正規のFirefoxアプリケーションを模倣しようとしていることを、または正規のFirefoxアプリケーションが正しくインストールまたはアンインストールされていないことを意味する場合がある。
【0030】
アプリケーション依存関係ネットワークを
特定するための上記の方法は、新しいアプリケーションがインストールされているときに、クライアントコンピュータ上でアンチウイルス・スキャン・エンジンがインストールされ実行される場合には、もちろん使用されることができる。以前にインストールしたアプリケーションをスキャンするためには、すなわち、スキャンエンジンをインストールする前にインストールした場合、またはアンチウイルススキャンを起動することなく巧く自分自身をインストールしたマルウェアを
特定するためには、別のアプローチが必要であり、これは以前に作成されたアプリケーション依存関係ネットワークを判断することができる。また、この別のアプローチは、現在クライアントコンピュータ上でのオブジェクトのすべておよび関係を判断するために、クライアントコンピュータ上でシステムの完全スキャンを実行するようにアンチウイルス・スキャン・エンジンを有効にする(enable)ことができる。このシステムの完全スキャンは、完全なアプリケーション依存関係ネットワークの一部ではない、残りのオブジェクトおよびオブジェクト間の関係だけでなく、クライアントコンピュータに既にインストールされているすべてのアプリケーションのためのアプリケーション依存関係ネットワーク(ローカル
なアプリケーション依存関係ネットワーク)を返す。
【0031】
図1は、この別の方法を示すフロー図である。この方法の主なステップは次のとおりである:
【0032】
A1.クライアントコンピュータは、(オブジェクトパスにより定義されている)入力オブジェクトで始まる。これはシステム上の任意のオブジェクト、または知的な方法で選択されたオブジェクト、例えば、a.exeファイルである場合がある。
【0033】
A2.クライアントコンピュータは、入力オブジェクトに依存する他のオブジェクトのすべての検索を実行する。例えば、上記の特定の例を使用して、Firefoxアプリケーションパス上で実行される検索は、.xht拡張子レジストリキーがFirefoxアプリケーションに依存していることがわかるであろう。
【0034】
A3.クライアントコンピュータは検索から結果があるかどうかを判定する。
【0035】
A4.結果が得られた場合、クライアントコンピュータは、これら他のオブジェクトのパスおよびそれらのオブジェクト間の関係を結果ファイルに格納する。次いで、それ以上の依存オブジェクトが見つからなくなるまで、それぞれの他のオブジェクトに対するA1からA4のステップが、再帰的に繰り返される。したがって、依存関係ネットワーク内のオブジェクトのすべてが見つかるまで検索は、分岐する。依存オブジェクトの検索は、通常一連の規則に従う、例えば:
【0037】
A5.ステップA3でそれ以上の結果が返されない場合、クライアントコンピュータは結果ファイル内のオブジェクトパスを正規化する(前述のとおり)。この結果ファイルの内容は、アプリケーション依存関係ネットワークである。この内容は、完全なアプリケーション依存関係ネットワークの一部ではない正規化されたオブジェクトパスおよびオブジェクト間の関係であってもよいが、この段階ではローカル
なアプリケーション依存関係ネットワークとして
特定されることになる。
【0038】
システム全体のスキャン中、関心となるオブジェクトのすべてが少なくとも1つの依存関係ネットワークに追加されるまで、この方法のステップは繰り返される(
図1の破線の矢印で示されるとおり)。もちろん、いくつかのアプリケーション依存関係ネットワークは1つだけまたは少数のオブジェクト(パス)を含んでいてもよく、例えば、これらのオブジェクトは不完全なアンインストール操作後に残っているフラグメントである。
【0039】
図2は、アンチウイルススキャン方法の第2段階を示すフロー図である。行われるステップは次のとおりであり、
図2の左側のステップはクライアントコンピュータで実行され、
図2の右側のものは中央サーバーで実行される:
【0040】
B1.第2段階は、クライアントコンピュータが中央サーバーに送信する、段階1で
特定されたローカル
なアプリケーション依存関係ネットワークの最初を選択することにより開始する。
【0041】
B2.中央サーバーは、ローカル
なアプリケーション依存関係ネットワークに一致するエントリを既知の信頼できるアプリケーション依存関係ネットワークのデータベースで検索し、それに応じてローカル
なアプリケーション依存関係ネットワークが既知の信頼できる、または不明であるかどうかの通知をクライアントコンピュータに返信する。
【0042】
B3.クライアントコンピュータが「既知の信頼できる」通知を受信した場合、段階1で規定されるように、アンチウイルス・スキャン・エンジンは、さらに選択したローカル
なアプリケーション依存関係ネットワークのための方法をステップB1で再び開始することができる(
図2の破線の矢印で示される)。
【0043】
B4.クライアントコンピュータが「未知の」通知を受信した場合、アンチウイルス・スキャン・エンジンはステップB5に進む。
【0044】
B5.次いで、アンチウイルス・スキャン・エンジンは、従来のアンチウイルススキャン(例えば、アプリケーション・バイナリ・チェックおよび/またはヒューリスティック分析を採用する)をローカル
なアプリケーション依存関係ネットワークが対応しているアプリケーション上で開始する。
【0045】
B6.アンチウイルス・スキャン・エンジンは、アプリケーションが正規品であるかどうかをステップB5における従来のアンチウイルススキャンから判定する。
【0046】
B7.次いで、アプリケーションが正規品であると判断された場合、クライアントコンピュータは、既知の信頼できるアプリケーション依存関係ネットワークのデータベースのエントリとして未知のアプリケーション依存関係ネットワークが順番に追加される(または、中央サーバーでのさらなる分析に基づいて、および/またはすべてのユーザーから集められたレスポンスに基づいて、それが含まれると考慮する)メッセージを中央サーバーに送信する。
【0047】
B8.アプリケーションがステップB5において正規品と判断されない場合、アンチウイルス・スキャン・エンジンは、ローカル
なアプリケーション依存関係ネットワーク内のオブジェクトパスのいずれかが他のローカル
なアプリケーション依存関係ネットワークで共有されているかどうかを判定する。
【0048】
B9.共有オブジェクトのパスが存在しない場合、アンチウイルス・スキャン・エンジンは、アプリケーション依存関係ネットワーク内のパスにより
特定されるオブジェクトのすべてをクライアントコンピュータから除去する、またはその他の方法により安全にする。
【0049】
B10.共有オブジェクトのパスが存在する場合、アンチウイルス・スキャン・エンジンは、共有されていないアプリケーション依存関係ネットワーク内のパスにより
特定されるオブジェクトのすべてをクライアントコンピュータから除去する、またはその他の方法により安全にし、共有されるオブジェクトを残す。
【0050】
上記のように第2段階でアンチウイルス・スキャン・エンジンにより使用される方法は、かなり多くの従来のアプリケーション・バイナリ・チェックを実行するために、およびヒューリスティック分析技術を実行するために要する時間を顕著に削減する。ここで、アンチウイルス・スキャン・エンジンはアプリケーション上で完全な従来のアンチウイルススキャンが必要かどうかを最初に迅速に判断することができ、それが既知の信頼できるアプリケーションが原因でない場合、その後、速やかに別のアプリケーションに移動することができる。この方法はまた、その依存関係ネットワークにより
特定される悪意のあるアプリケーション全体がシステムから除去される高品質な除去プロセスを提供すし、悪意のあるアプリケーションのすべてのコンポーネントが削除されていることを確実にする。
【0051】
方法の第2段階(
図2)では、中央サーバーが、クライアントコンピュータから送信されたローカル
なアプリケーション依存関係ネットワークと一致するエントリを既知の信頼できないアプリケーション依存関係ネットワークのデータベースで検索を開始するステップを含んでいてもよい。一致するエントリが見つかった場合、その後、サーバーはローカル
なアプリケーション依存関係ネットワークを既知の信頼できないものとして
特定する通知をクライアントコンピュータに送信する。次いで、アンチウイルス・スキャン・エンジンは、上記のようにステップB8からB10に従ってアプリケーションを除去することができる。一致するエントリが既知の信頼できないアプリケーション依存関係ネットワークのデータベースで見つからない場合、その後サーバーはローカル
なアプリケーション依存関係ネットワークを不明として
特定する通知をクライアントコンピュータに送信する。次いで、アンチウイルス・スキャン・エンジンは、ローカル
なアプリケーション依存関係ネットワークが対応しているアプリケーション上で従来のアンチウイルススキャン(例えば、アプリケーションのバイナリチェックおよび/またはヒューリスティック分析を使用する)を開始する。アンチウイルス・スキャン・エンジンが、アプリケーションが正規品でないことを従来のアンチウイルススキャンから判断した場合、クライアントコンピュータは、既知の信頼できないアプリケーション依存関係ネットワークのデータベースにエントリとして未知のアプリケーション依存関係ネットワークを順番に追加することを考慮するメッセージを中央サーバーに送信する。次いで、アンチウイルスエンジンは、ステップB8からB10に従って上記のようにアプリケーションを除去することができる。
【0052】
このさらなる実施形態は、ステップB1からB10で説明した第2段階の方法の代替として、またはそれと合せて使用することができる。これはアプリケーションのバイナリ証明書をチェックし、ヒューリスティック分析技術を実行するより多くの従来の方法を実行するのに要する時間をさらに削減するようにB1からB10の方法と合せて使用することが好ましいであろう。
【0053】
悪意のあるソフトウェアと同様に、コンピュータシステムに影響を与える別の問題は、「失われたフラグメント」である。時にはオーファンファイルとして知られている失われたフラグメントは、データファイル、ダウンロードされたアップデート、およびアプリケーションがコンピュータシステムからアンインストールされた後、またはアプリケーションが正しくインストールされていない場合に後に残ることがあるアプリケーションの他のフラグメントである。これらの失われたフラグメントは時間をかけて増大することがあり、大量のディスク領域を占有することがあり、ユーザーが利用できる有用なストレージ容量を削減することがある。失われたフラグメントは、しばしばどのアプリケーションに属しているかが明確ではないので、常に検出することが容易ではない。さらに、最初は1つのアンインストールされたアプリケーションからの失われたフラグメントであると見えるかもしれないものが、実際にはまだコンピュータシステムにインストールされている1つまたは複数の他のアプリケーションと共有されているオブジェクトである場合がある。このことは、ユーザーが、別のアプリケーションが動作を停止する可能性がある何かを除去するのを恐れてフラグメントを削除したくない場合があるので、失われたフラグメントを削除することを困難にする。
【0054】
クライアントコンピュータ上での失われたフラグメントは、上記のように第1段階でアンチウイルス・スキャン・エンジンにより拾い上げられた完全なアプリケーション依存関係ネットワークの一部ではない残りのオブジェクトのパスおよびオブジェクト間の関係に対応する。第1段階の終わりに、それらは通常のローカル
なアプリケーション依存関係ネットワークとして
特定される。
【0055】
図3は、失われたフラグメントをも検出し除去する、悪意のあるソフトウェアの検出と除去を行う強化されたプロセスを示すフロー図である。行われるステップは上述したB1からB10と同じであるが、ステップB3はC2により置換され、追加のステップC1およびC3が、ステップB2の後に導入される。追加のステップは以下のように行われる:
【0056】
C1.サーバーが一致するエントリを(ステップB2で)見つけた後に、サーバーは、データベース内の既知のアプリケーション依存関係ネットワーク内で
特定されるすべての予測されるアプリケーションの実行可能ファイルおよびモジュールがローカル
なアプリケーション依存関係ネットワークに存在するかどうかを判断するために検証チェックを行う。次いで、サーバーは、ローカル
なアプリケーション依存関係ネットワークが「既知の信頼できる、および完全な」、または「既知の信頼できる、しかし不完全な」かどうかの通知をクライアントコンピュータに返信する。
【0057】
C2.クライアントコンピュータが「既知の信頼できる、および完全な」通知を受信した場合、段階1で規定されるようにアンチウイルス・スキャン・エンジンは、さらに選択したローカル
なアプリケーション依存関係ネットワークのための方法をステップB1で再び開始することができる(
図3の破線の矢印で示されるように)。
【0058】
C3.クライアントコンピュータが「既知の信頼できる、しかし不完全な」通知を受信した場合、上述したようにアンチウイルス・スキャン・エンジンは、ステップB8からB10に従って失われたフラグメントを除去することができる。
【0059】
あるいは、ステップC3の後、ユーザーはステップB8からB10に進む前に、失われたフラグメントが削除される、またはされないかどうかの最終判断を下すことを求められる場合がある。
【0060】
図4は、本発明の実施形態によるコンピュータシステムを概略的に示す。コンピュータシステムは、インターネットまたはLANなどのネットワーク3を介して中央サーバー2に接続される少なくとも1つのクライアントコンピュータ1を備える。このクライアントコンピュータ1は、コンピュータのハードウェアおよびソフトウェアの組み合わせとして実装することができる。クライアントコンピュータ1は、メモリ4、プロセッサ5、およびトランシーバ6を備える。メモリ4は、プロセッサ5により実行される各種プログラム/実行可能ファイルを格納し、また任意の必要なデータのためのストレージユニット7を提供する。メモリ4に格納されるとともにプロセッサ5により実行されるプログラム/実行可能ファイルは、システムスキャナ8、結果ハンドラ9、およびポリシングユニット10を含み、それらすべてがアンチウイルス・スキャン・エンジン11のサブユニットであり得る。トランシーバ6は、ネットワーク3を介して中央のアンチウィルスサーバー2と通信するのに使用される。一般に、クライアントコンピュータ1は、デスクトップ・パーソナル・コンピュータ(PC)、ラップトップ、パーソナル・データ・アシスタント(PDA)またはモバイル電話、または任意の他の適切なデバイスのいずれであってもよい。
【0061】
中央サーバー2は、典型的にはクライアントコンピュータ1上で走るアンチウイルス・スキャン・エンジン11のプロバイダーにより運営される。あるいは、中央サーバー2は、ネットワーク管理者またはスーパーバイザーのそれであってもよく、クライアントコンピュータ1は、スーパーバイザーが担当するネットワークの一部である。中央サーバー2は、コンピュータのハードウェアおよびソフトウェアとの組み合わせとして実装することができる。中央サーバー2は、メモリ19、プロセッサ12、トランシーバ13およびデータベース14を備える。メモリ19は、プロセッサ12により実行される各種プログラム/実行可能ファイルを格納し、また任意の必要なデータのためのストレージユニット18を提供する。メモリ19に格納されるとともに、プロセッサ12により実行されるプログラム/実行可能ファイルは、システムスキャナ16および依存関係ネットワークコンパレータ17を含み、それらのどちらもアンチウイルスユニット15のサブユニットであり得る。これらのプログラム/ユニットは、クライアントコンピュータ1で実装されるそれらのプログラムと同じであってもよく、またはクライアントコンピュータ1で実装されるプログラムとインターフェースおよび協働することのできる異なるプログラムであってもよい。トランシーバ13は、ネットワーク3を介してクライアントコンピュータ1との通信に使用される。
【0062】
データベース14は、既知のアプリケーション依存関係ネットワークを格納し、さらにマルウェア定義データ、ヒューリスティック分析ルール、ホワイトリスト、ブラックリストなどを格納してもよい。データベース14は、クライアントコンピュータ上の第1段階で上記のようにアプリケーション依存関係ネットワークを
特定する方法を使用しているサーバーにより既知のアプリケーション依存関係ネットワークを事前設定することができる。これらの方法は非常に正確であるが、実用的なサイズにまでデータベースを構築するために必要なインストーラの数を見つけるだけでなく、対応するアプリケーションの依存関係ネットワークをキャプチャするために、それぞれのインストーラを介して実行する大量の労力を必要とするであろう。あるいは、データベース14は、情報を「クラウドソーシング」することにより既知のアプリケーション依存関係ネットワークを事前設定できる。多数の分散クライアントがクライアントコンピュータからローカル
なアプリケーション依存関係ネットワークを提示する場合は、「クラウドソーシング」を使用することができる。サーバー2は、トランシーバ13を介してローカル
なアプリケーション依存関係ネットワークを受信し、メモリ11にそれを格納して多数の分散クライアントから提示された複数の同一ネットワークをグループ化する。いずれかの特定のアプリケーションの提示の数があらかじめ定義された数に達すると、サーバー2は、ローカル
なアプリケーション依存関係ネットワークが有効であることを示し、それを既知のアプリケーション依存関係ネットワークのデータベース14に入力する。データベース14はこれらの方法の組み合わせを使用して事前設定されることが所期される。
【0063】
様々な修正が、本発明の範囲から逸脱することなく、上述した実施形態になされ得ることが当業者には理解されるであろう。