(57)【要約】一の態様では、一のコンピュータオブジェクトをマルウェアとして分類する方法は、ベースコンピュータにおいて、前記オブジェクト又は類似の複数のオブジェクトを記憶する複数のリモートコンピュータの夫々からのコンピュータオブジェクトに関するデータを受信する工程を含む。前記複数のコンピュータから受信したコンピュータオブジェクトに関するデータは、前記ベースコンピュータにおいて比較される。前記コンピュータオブジェクトは、前記比較に基づいてマルウェアとして分類される。一の実施例では、前記コンピュータオブジェクトに関するデータは、前記オブジェクト内に含まれる又は前記オブジェクトにより構成される複数の実行可能命令と、前記オブジェクトのサイズと、前記オブジェクトの現在の名称と、各リモートコンピュータ上における前記オブジェクトの物理的格納位置又はパスと、前記オブジェクトの業者、前記オブジェクトに関するソフトウェア製品及びバージョン、並びに前記オブジェクトを作成、構成、又は夫々のリモートコンピュータ上で実行する際に前記オブジェクトにより開始された又は前記オブジェクトを含むイベントのうちの一以上を含む。
2009500706.tif 000002
【特許請求の範囲】
【請求項１】
一のコンピュータオブジェクトをマルウェアとして分類する方法であって、
ベースコンピュータにおいて、前記オブジェクト又は類似の複数のオブジェクトを記憶する複数のリモートコンピュータの夫々からのコンピュータオブジェクトに関するデータを受信する工程と、
前記複数のコンピュータから受信した前記コンピュータオブジェクトに関する前記データを、前記ベースコンピュータにおいて比較する工程と、
前記比較に基づいて前記コンピュータオブジェクトをマルウェアとして分類する工程と
を備えることを特徴とする分類方法。
【請求項２】
前記複数のリモートコンピュータから前記ベースコンピュータに送信され且つ前記比較において用いられた、前記コンピュータオブジェクトに関する前記データは、前記オブジェクト内に含まれる又は前記オブジェクトにより構成される複数の実行可能命令と、前記オブジェクトのサイズと、前記オブジェクトの現在の名称と、前記オブジェクトのディスク上での物理的およびフォルダ位置と、前記オブジェクトの本来の名称と、前記オブジェクトの作成及び変更日時と、前記オブジェクト内に記憶された業者、製品、バージョン、及び他の情報と、前記オブジェクトヘッダ又は前記リモートコンピュータにより保持されたヘッダと、前記オブジェクトを夫々のリモートコンピュータ上で実行する、構成する又は作成する際に、前記オブジェクトにより開始された又は前記オブジェクトを含むイベントと、のうちの一以上を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記比較により、前記オブジェクトと他の複数のオブジェクトとの関係が識別されることを特徴とする請求項１又は２に記載の方法。
【請求項４】
前記オブジェクトが関連する少なくとも一の他のオブジェクトが、マルウェアとして分類される場合に、前記オブジェクトをマルウェアとして分類することを特徴とする請求項３に記載の方法。
【請求項５】
前記他の複数のオブジェクトは、前記複数のリモートコンピュータのうちの少なくともいくつかに記憶された前記オブジェクト又は類似の複数のオブジェクトを含むことを特徴とする請求項３又は４に記載の方法。
【請求項６】
前記他の複数のオブジェクトは、親若しくは子オブジェクト、又は前記オブジェクトに対してプロセス関連オブジェクトである、他の複数のオブジェクトを含むことを特徴とする請求項３から５のいずれか一項に記載の方法。
【請求項７】
前記データは、前記夫々のリモートコンピュータ上の複数のオブジェクトについて実行されたハッシングプロセスによって取得される鍵の形態で送信されることを特徴とする請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記鍵は、前記オブジェクト内に含まれる又は前記オブジェクトにより構成される実行可能命令を表す少なくとも一の要素を有することを特徴とする請求項７に記載の方法。
【請求項９】
前記鍵は、前記オブジェクトに関するデータを表す少なくとも一の要素を有することを特徴とする請求項７又は８に記載の方法。
【請求項１０】
前記オブジェクトに関する前記データは、前記オブジェクトの現在の名称と、前記オブジェクトのディスク上での物理的およびフォルダ位置と、前記オブジェクトの本来の名称と、前記オブジェクトの作成及び変更日時と、前記オブジェクト内に記憶された業者、製品、バージョン、及び他の情報と、前記オブジェクトヘッダ又は前記リモートコンピュータにより保持されたヘッダと、前記オブジェクトを夫々のリモートコンピュータ上で実行する、構成する又は作成する際に前記オブジェクトにより開始された又は前記オブジェクトを含むイベントと、のうちの少なくとも一つを含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記鍵は、前記オブジェクトの物理的サイズを表す少なくとも一の要素を有することを特徴とする請求項７から１０のいずれか一項に記載の方法。
【請求項１２】
先ず一のオブジェクトを非マルウェアとして分類する工程と、前記オブジェクトについての許容される振る舞いを規定する前記オブジェクトのマスクを生成する工程と、少なくとも一の前記リモートコンピュータ上で前記オブジェクトの動作を監視する工程と、実際に監視された前記振る舞いが前記マスクによって許可されたものを逸脱する場合に、前記オブジェクトをマルウェアとして分類する工程とを備えることを特徴とする請求項１から１１のいずれか一項に記載の方法。
【請求項１３】
一のコンピュータオブジェクトをマルウェアとして分類する装置であって、
前記オブジェクト又は類似の複数のオブジェクトを記憶する複数のリモートコンピュータの夫々からのコンピュータオブジェクトに関するデータを受信するように構成及び配置された一のベースコンピュータを備え、
前記ベースコンピュータは、前記複数のコンピュータから受信した前記コンピュータオブジェクトに関する前記データを、比較するように構成及び配置され、
前記ベースコンピュータは、前記比較に基づいて前記コンピュータオブジェクトをマルウェアとして分類するように構成及び配置されることを特徴とする分類装置。
【請求項１４】
前記ベースコンピュータは、前記オブジェクト内に含まれる又は前記オブジェクトにより構成される複数の実行可能命令と、前記オブジェクトのサイズと、前記オブジェクトの現在の名称と、前記オブジェクトのディスク上での物理的およびフォルダ位置と、前記オブジェクトの本来の名称と、前記オブジェクトの作成及び変更日時と、前記オブジェクト内に記憶された業者、製品、バージョン、及び他の情報と、前記オブジェクトヘッダ又は前記リモートコンピュータにより保持されたヘッダと、前記オブジェクトを夫々のリモートコンピュータ上で実行する、構成する又は作成する際に前記オブジェクトにより開始された又は前記オブジェクトを含むイベントと、のうちの一以上を含む前記データを、比較するように構成及び配置されることを特徴とする請求項１３に記載の装置。
【請求項１５】
前記ベースコンピュータは、前記比較により、前記オブジェクトと他の複数のオブジェクトとの関係が識別されるように構成及び配置されることを特徴とする請求項１３又は１４に記載の装置。
【請求項１６】
前記ベースコンピュータは、前記オブジェクトが関連する少なくとも一の他のオブジェクトが、マルウェアとして分類される場合に、前記オブジェクトをマルウェアとして分類するように構成及び配置されることを特徴とする請求項１５に記載の装置。
【請求項１７】
前記ベースコンピュータは、前記他の複数のオブジェクトが、前記複数のリモートコンピュータのうちの少なくともいくつかに記憶された前記オブジェクト又は類似の複数のオブジェクトを含むように構成及び配置されることを特徴とする請求項１５又は１６に記載の装置。
【請求項１８】
前記ベースコンピュータは、前記他の複数のオブジェクトが、親若しくは子オブジェクト、又は前記オブジェクトに対してプロセス関連オブジェクトである他の複数のオブジェクトを含むように構成及び配置ことを特徴とする請求項１５から１７のいずれか一項に記載の装置。
【請求項１９】
前記ベースコンピュータは、前記夫々のリモートコンピュータ上の複数のオブジェクトについて実行されたハッシングプロセスによって取得される鍵の形態で送信されたデータを処理できるように構成及び配置されることを特徴とする請求項１３から１８のいずれか一項に記載の装置。
【請求項２０】
前記鍵は、前記オブジェクト内に含まれる又は前記オブジェクトにより構成される実行可能命令を表す少なくとも一の要素を有することを特徴とする請求項１９に記載の装置。
【請求項２１】
前記鍵は、前記オブジェクトに関するデータを表す少なくとも一の要素を有することを特徴とする請求項１９又は２０に記載の装置。
【請求項２２】
前記オブジェクトに関する前記データは、前記オブジェクトの現在の名称と、前記オブジェクトのディスク上での物理的およびフォルダ位置と、前記オブジェクトの本来の名称と、前記オブジェクトの作成及び変更日時と、前記オブジェクト内に記憶された業者、製品、バージョン、及び他の情報と、前記オブジェクトヘッダ又は前記リモートコンピュータにより保持されたヘッダと、前記オブジェクトを夫々のリモートコンピュータ上で実行する、構成する又は作成する際に前記オブジェクトにより開始された又は前記オブジェクトを含むイベントと、のうちの少なくとも一つを含むことを特徴とする請求項２１に記載の装置。
【請求項２３】
前記鍵は、前記オブジェクトの物理的サイズを表す少なくとも一の要素を有することを特徴とする請求項１９から２２のいずれか一項に記載の装置。
【請求項２４】
前記ベースコンピュータは、先ず非マルウェアとして分類された一のオブジェクトについての許容される振る舞いを規定するマスクを生成するように構成及び配置され、また前記ベースコンピュータは、少なくとも一の前記リモートコンピュータ上で前記オブジェクトの動作を監視し、実際に監視された前記振る舞いが前記マスクによって許可されたものを逸脱する場合に、前記オブジェクトをマルウェアとして分類するように構成及び配置されることを特徴とする請求項１９から２３のいずれか一項に記載の装置。
【請求項２５】
一のコンピュータオブジェクトに関するデータを、一のリモートコンピュータから一のベースコンピュータに、前記ベースコンピュータにおいて他の複数のリモートコンピュータから受信した類似データと比較を行えるように提供する方法であって、
前記リモートコンピュータに記憶された一のコンピュータオブジェクトに関するデータを、一のリモートコンピュータから一のベースコンピュータに提供する工程を備え、
前記データは、前記オブジェクト内に含まれる又は前記オブジェクトにより構成される複数の実行可能命令と、前記オブジェクトのサイズと、前記オブジェクトの現在の名称と、前記オブジェクトのディスク上での物理的およびフォルダ位置と、前記オブジェクトの本来の名称と、前記オブジェクトの作成及び変更日時と、前記オブジェクト内に記憶された業者、製品、バージョン、及び他の情報と、前記オブジェクトヘッダ又は前記リモートコンピュータにより保持されたヘッダと、前記オブジェクトを夫々のリモートコンピュータ上で実行する、構成する又は作成する際に前記オブジェクトにより開始された又は前記オブジェクトを含むイベントと、のうちの一以上を含み、
前記データは、前記リモートコンピュータ上の前記オブジェクトについて実行されたハッシングプロセスによって取得された鍵の形態で送信されることを特徴とする提供方法。
【請求項２６】
前記鍵は、前記オブジェクト内に含まれる又は前記オブジェクトにより構成される実行可能命令を表す少なくとも一の要素を有することを特徴とする請求項２５に記載の提供方法。
【請求項２７】
前記鍵は、前記オブジェクトに関するデータを表す少なくとも一の要素を有することを特徴とする請求項２５又は２６に記載の提供方法。
【請求項２８】
前記オブジェクトに関する前記データは、前記オブジェクトの現在の名称と、前記オブジェクトのディスク上での物理的およびフォルダ位置と、前記オブジェクトの本来の名称と、前記オブジェクトの作成及び変更日時と、前記オブジェクト内に記憶された業者、製品、バージョン、及び他の情報と、前記オブジェクトヘッダ又は前記リモートコンピュータにより保持されたヘッダと、並びに前記オブジェクトを夫々のリモートコンピュータ上で実行する、構成する又は作成する際に前記オブジェクトにより開始された又は前記オブジェクトを含むイベントと、のうちの少なくとも一つを含むことを特徴とする請求項２７に記載の方法。
【請求項２９】
前記鍵は、前記オブジェクトの物理的サイズを表す少なくとも一の要素を有することを特徴とする請求項２５から２８のいずれか一項に記載の方法。
【請求項３０】
コンピュータに請求項２５から２９のいずれか一項に記載の方法を実行させるプログラム命令を備えるコンピュータプログラム。
【請求項３１】
一のリモートコンピュータが有するマルウェアからの保護を決定する方法であって、
一のベースコンピュータにおいて、前記リモートコンピュータ上である時点で動作しているセキュリティ製品のうちの全て又は選択された製品の詳細を、受信する工程と、
前記ベースコンピュータに接続された他の複数のリモートコンピュータから類似の情報を受信する工程と、
特定の組み合わせのセキュリティ製品を有している前記他の複数のリモートコンピュータによって識別されなかった任意のマルウェアプロセスを識別する工程と
を備えることを特徴とする決定方法。
【請求項３２】
前記一のリモートコンピュータは、前記識別に基づいて前記マルウェアプロセスによる攻撃の影響を受けやすい可能性があるという情報を、前記一のリモートコンピュータのユーザに提供する工程を備えることを特徴とする請求項３１に記載の方法。
【請求項３３】
前記全て又は選択されたセキュリティ製品の詳細は、当該セキュリティ製品の名称と、バージョンと、ロードされたシグネチャファイルとを含むことを特徴とする請求項３１又は３２に記載の方法。
【請求項３４】
一のリモートコンピュータが有するマルウェアからの保護を決定する装置であって、
前記リモートコンピュータ上である時点で動作しているセキュリティ製品のうちの全て又は選択された製品の詳細を受信するように構成及び配置された一のベースコンピュータを備え、
当該ベースコンピュータは、前記ベースコンピュータに接続された他の複数のリモートコンピュータから類似の情報を受信するように構成及び配置され、
前記ベースコンピュータは、特定の組み合わせのセキュリティ製品を有している前記他の複数のリモートコンピュータによって識別されなかった任意のマルウェアプロセスを識別するように構成及び配置されることを特徴とする決定装置。
【請求項３５】
前記ベースコンピュータは、前記一のリモートコンピュータが、前記識別に基づいて前記マルウェアプロセスによる攻撃の影響を受けやすい可能性があるという情報を、前記一のリモートコンピュータのユーザに提供するように構成及び配置されることを特徴とする請求項３４に記載の装置。
【請求項３６】
前記全て又は選択されたセキュリティ製品の詳細は、当該セキュリティ製品の名称と、バージョンと、ロードされたシグネチャファイルとを含むことを特徴とする請求項３４又は３５に記載の装置。
【請求項３７】
第１のコンピュータオブジェクトの子孫であるか又は関連オブジェクトである一のコンピュータオブジェクトを、マルウェア又は安全として分類する方法であって、
第１のコンピュータオブジェクトをマルウェア又は安全として分類する工程と、
前記第１のコンピュータオブジェクトを一意的に識別する一要素であって、前記第１のコンピュータオブジェクトの子孫又は他の関連コンピュータオブジェクトの鍵において受け継がれたか若しくは存在する前記一要素を、前記第１のコンピュータオブジェクトに関連する鍵において識別する工程と、
前記コンピュータオブジェクトの鍵に存在する一意的な識別子要素に基づいて、前記コンピュータオブジェクトを、場合によってマルウェア又は安全として分類する工程と
を備えることを特徴とする分類方法。
【請求項３８】
前記第１のコンピュータオブジェクトの活動を監視する工程と、前記第１のコンピュータオブジェクトが安全として先ず分類されてその後マルウェアであると判断された場合に、前記第１のコンピュータオブジェクトをマルウェアとして再分類する工程とを備え、更に、前記一意的な識別子要素が存在する鍵を備えた任意のコンピュータオブジェクトを、マルウェアとして自動的に分類する工程を備えることを特徴とする請求項３７に記載の方法。
【請求項３９】
コンピュータに請求項３８又は３９に記載の方法を実行させるプログラム命令を備えるコンピュータプログラム。
【請求項４０】
第１のコンピュータオブジェクトの子孫であるか又は関連オブジェクトである一のコンピュータオブジェクトを、マルウェア又は安全として分類する装置であって、
第１のコンピュータオブジェクトをマルウェア又は安全として分類するように構成及び配置された一のコンピュータを備え、
当該コンピュータは、前記第１のコンピュータオブジェクトを一意的に識別する一要素であって、前記第１のコンピュータオブジェクトの子孫又は他の関連コンピュータオブジェクトの鍵において受け継がれたか若しくは存在する前記一要素を、前記第１のコンピュータオブジェクトに関連する鍵において識別するように構成及び配置され、
前記コンピュータは、前記コンピュータオブジェクトの鍵に存在する一意的な識別子要素に基づいて、前記コンピュータオブジェクトを、場合によってマルウェア又は安全として分類するように構成及び配置されることを特徴とする分類装置。
【請求項４１】
前記コンピュータは、前記第１のコンピュータオブジェクトの活動を監視し、前記第１のコンピュータオブジェクトが安全として先ず分類されてその後マルウェアであると判断された場合に、前記第１のコンピュータオブジェクトをマルウェアとして再分類するように構成及び配置され、更に、前記コンピュータは、前記一意的な識別子要素が存在する鍵を備えた任意のコンピュータオブジェクトを、マルウェアとして自動的に分類するように構成及び配置されることを特徴とする請求項４０に記載の装置。
【請求項４２】
一のコンピュータにソフトウェアをインストールする方法であって、
一のコンピュータへのソフトウェアのインストール開始時に、ユーザが前記インストールを認証したかを確認するための前記コンピュータ上のコンピュータ生成プロンプトを、前記ユーザに提供する工程と、
ユーザ認証が受信されない場合に前記インストールを中止する工程と、そのほか、
前記コンピュータにおいて、前記インストールを進めるための前記ユーザ認証を受信する工程と、
前記インストールを進める工程と、
前記インストール中に作成又は使用された複数のコンピュータオブジェクトに関するデータを取得する工程と、
前記データを前記ローカルコンピュータに記憶する工程と
を備えたことを特徴とするインストール方法。
【請求項４３】
前記ローカルに記憶されたデータは、前記インストール中に作成又は使用された全てのオブジェクトが前記インストールプロセスの一部であることを確認するために、前記インストール中に参照され、前記インストール中に作成又は使用された全てのオブジェクトが前記インストールプロセスの一部でない場合には、（ｉ）前記インストールを中止する工程、及び（ｉｉ）前記コンピュータ上のコンピュータ生成プロンプトを適宜前記ユーザに提供する工程のうち少なくとも一方を備えることを特徴とする請求項４２に記載の方法。
【請求項４４】
複数のコンピュータに接続可能であるコミュニティデータベースに前記コンピュータを接続する工程と、前記記憶されたデータを、他のコンピュータによって提供された類似のデータと比較するために前記コミュニティデータベースにアップロードする工程とを備えることを特徴とする請求項４２又は４３に記載の方法。
【請求項４５】
複数の信頼できるインストーラに関するデータを前記コンピュータにダウンロードする工程を備え、前記複数の信頼できるインストーラに関するデータは、前記信頼できるインストーラに関連する又は前記信頼できるインストーラによって作成された任意のオブジェクトを自動的に認証して先に進むように、前記インストール中に参照されることを特徴とする請求項４２から４４のいずれか一項に記載の方法。
【請求項４６】
前記複数の信頼できるインストーラに関するデータは、前記コンピュータにおける前記インストールを進めるための前記ユーザ認証の受理に続く所定の時間のみ参照されることを特徴とする請求項４５に記載の方法。
【請求項４７】
コンピュータに請求項４２から４６のいずれか一項に記載の方法を実行させるプログラム命令を備えるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはマルウェアに対処する方法及び装置に関する。一の態様では、本発明は、マルウェアとしてコンピュータオブジェクトを分類する方法及び装置に関する。他の態様では、本発明は、マルウェアからのリモートコンピュータが有する保護を決定する方法及び装置に関する。他の態様では、本発明は、マルウェア又は安全としてコンピュータオブジェクトを分類する方法及び装置に関する。他の態様では、本発明は、コンピュータにソフトウェアをインストールする方法に関する。
【背景技術】
【０００２】
用語「マルウェア」は、ここでは、悪質なコードである又は悪質なコードを含む、一般的には任意の実行可能なコンピュータファイル又はより一般的には「オブジェクト」を指すことに用いられる。マルウェアは、従って、ウイルス、トロイの木馬（Trojan）、ワーム、スパイウェア、アドウェア等を含む。
【０００３】
アンチウイルススキャンソフトウェア等の典型的なアンチマルウェア製品は、複数のオブジェクト、又は該オブジェクト若しくはその一部に適用されたアルゴリズムの複数の結果をスキャンして、ウイルスの存在を示すことが知られているオブジェクトのシグネチャ（Signature）を探す。一般にはマルウェアに対処する方法は、新型のマルウェアが例えばインターネットを介して放出された際、これらはいずれ検出される。新型のマルウェアが一旦検出されると、この分野のサービスプロバイダは、これらに対処することを目的とするシグネチャを作成し、次にこれらのシグネチャが、アンチマルウェアプログラムを更新する形で公開或いはリリース（release）される。発見的方法も採用されている。
【０００４】
これらのシステムは、公知の悪質オブジェクトに対し保護することに非常に有効である。しかしながら、これらのシステムは、シグネチャファイルの作成及び／又は更新に依存する。このため、出現する又は公開される新たなマルウェアと、当該マルウェアが作成又は更新されることに対抗してユーザへ供給されるシグネチャとの間に、必然的に遅延が生じる。従ってユーザは、一週間又はそれ以上にもなりうる、ある一定の期間、新たなマルウェアからの危険にさらされている。更に、アンチウイルス製品に打ち勝つために、マルウェアライターは、難読化（Obfuscation）技術を用いて、検出からウイルスコードのシグネチャ基本データ又はシグネチャを隠そうとする。典型的には、難読化はウイルスに関するコードを暗号化又はパッキングすることを含む。
【０００５】
WO-A-2004/097602は、ローカルコンピュータにより受信又は作成されたコンピュータファイルを解析し、これらを公知のファイルのデータベースと比較して、特定のファイルが公知であるかを決定し、そうである場合に、特定のファイルが「安全」であるとみなせるほど十分長く知られているかを決定するシステムについて記載している。しかしながら、実際には、そのままではこれは十分な保護を提供しそうにない。なぜなら、例えば、ウイルス又はトロイの木馬のアクティブペイロード(即ち、データの本体)は、ある特定の日時に、若しくはローカル又はリモートシステム又はプロセスからのメッセージ若しくは命令を受信する際に、或いはそのプロセスが最初に実行又は公開されてから何カ月若しくは何年か後の特定のイベントが行われた時に、活性化するようにプログラムされるだけであるからである。よって、単にファイル年齢を見るだけでは、それが安全であり且つ安全のままでいられるかについて決定するのに十分ではない。
【０００６】
WO-A-2004/0083408におけるシステムでは、コンピュータ上で作動している特定のファイルによってなされる接続の試みを調べることで、ファイル中のワームを検出する。
【０００７】
US-A-6944772、US-A-6772346、EP-A-1549012、及びEP-A-1280040は全て、複数の「ローカル」コンピュータの全てがネットワーク（例えば、ＬＡＮ又はインターネットであってよい）を介して中央コンピュータに接続している「コミュニティベース（community-based）」アンチマルウェアシステムを開示する。それらのローカルコンピュータに知られていないファイルに出会った際には、それらのローカルコンピュータは、そのファイルの実行許可の要求を中央コンピュータに送信する。もし、そのファイルが中央コンピュータにおいて認識されると、中央コンピュータは、そのファイルが安全であると知られている場合に、ローカルコンピュータがそのファイルを実行する許可を送信できる。或いは、そのファイルが悪質であると知られている場合には、「否認」命令を送信できる。しかしながら、これら先行技術における各提案では、ファイルが中央コンピュータで知られていない場合、全ファイルは中央コンピュータに送信され、そこで安全としてみなされるべきかマルウェアとしてみなされるべきかを決定するために解析される。このような解析は、ファイルを詳細な解析にかけることによって、典型的には手動で、又は「半手動で」実行される。詳細な解析は、例えばエミュレーション又は解読であり、通常要求される人の関与を考えると、多くの日数を要しうる。従って、新たなファイルを安全又はマルウェアとして分類するまでには、かなりの期間がかかる。これらの先行技術におけるシステムでは、ローカルコンピュータによって中央コンピュータに送信されるファイルの実行許可の要求は、そのファイルを特異的に表す「鍵」又は「シグネチャ」又はチェックサムの送信を含んでよい。
【０００８】
類似のコミュニティベースアンチマルウェアシステムが、WO-A-02/33525に開示されている。このシステムでは、安全か又はマルウェアであるかが中央コンピュータに知られていないファイルを実行するためにローカルコンピュータが許可を求めている場合、他のローカルコンピュータ上のファイルの普及に関する何らかの限定された監査情報を、そのファイルの実行許可を求めているローカルコンピュータに関連した人的システム管理者に送信できる。従って、人的システム管理者は、ファイルが安全に実行できるか否かについて、「手動」による決定ではあるが、十分な情報を得た上で決定できる。
【０００９】
US-A-2004/0073810におけるシステムでは、添付又は他の送信ファイルに関するデータを含むメタファイルが、中央コンピュータに送信される。そのファイルに関するデータを解析し、送信ファイルがマルウェアである可能性を決定する。送信ファイルが少なくともある一定数のサーバを介して送信された場合にマルウェアとして取り扱われるという具体例が与えられている。
【００１０】
US-A-2005/0021994及びUS-A-2004/0153644に開示されたシステムでは、例えばファイルに関連するソフトウェアベンダーにより安全として認定を受けた、事前承認されたファイルは、更なる検査を行わずに実行することが常に許可されていてよい。US-A-2004/0153644におけるシステムの一の実施例では、監視（モニタリング）を実行し、そのファイルによる異常に多数の要求が、複数のローカルコンピュータからある期間に中央管理部において受信され、又は単一のコンピュータ上のファイルによる異常に多数の要求が、その単一コンピュータからある期間に中央管理部において受信された場合に、ファイルが悪質であると決定する。
【００１１】
US-A-2004/0006704におけるシステムでは、ソフトウェアバージョンのデータベースを備えたコンピュータ上におけるインストールされたソフトウェアのバージョンとそれらの公知の脆弱性とが比較される。従って、コンピュータのユーザは、既存のソフトウェアを更新する又は新しいソフトウェアをインストールすることにより、特定リスク及びこれらのリスクを最小限にする方法を知ることができる。
【００１２】
WO-A-03/021402におけるシステムでは、中央データベースは、複数のローカルコンピュータの夫々に記憶された全ファイルの仮想イメージを保持する。一のローカルコンピュータにおける脅威が識別されると、類似の構成を備えた他のローカルコンピュータはそのリスクについて知らされる。
【００１３】
【特許文献１】WO-A-2004/097602
【特許文献２】WO-A-2004/0083408
【特許文献３】US-A-6944772
【特許文献４】US-A-6772346
【特許文献５】EP-A-1549012
【特許文献６】EP-A-1280040
【特許文献７】WO-A-02/33525
【特許文献８】US-A-2004/0073810
【特許文献９】US-A-2005/0021994
【特許文献１０】US-A-2004/0153644
【特許文献１１】US-A-2004/0006704
【特許文献１２】WO-A-03/021402
【発明の開示】
【発明が解決しようとする課題】
【００１４】
よって先行技術のシステムは、新しいオブジェクトが悪質であるか否かを決定するために、当該オブジェクトの綿密な解析に依存する。これが遅延を引き起こし、その結果、そのファイルが解析され、新たなアンチマルウェアシグネチャが配布されるまでの間において、ユーザへのリスクを引き起こす。或いは、先行技術のシステムは、特定オブジェクトの動作の限定的な解析に依存する。若しくは、先行技術のシステムにおけるコンピュータへの送信方法は、当該オブジェクトが悪質である可能性を決定するために実行される。
【課題を解決するための手段】
【００１５】
本発明の第１の態様によれば、一のコンピュータオブジェクトをマルウェアとして分類する方法であって、ベースコンピュータにおいて、前記オブジェクト又は類似の複数のオブジェクトを記憶する複数のリモートコンピュータの夫々からのコンピュータオブジェクトに関するデータを受信する工程と、前記複数のコンピュータから受信した前記コンピュータオブジェクトに関する前記データを、前記ベースコンピュータにおいて比較する工程と、前記比較に基づいて前記コンピュータオブジェクトをマルウェアとして分類する工程とを備える分類方法が提供される。
【００１６】
単にシグネチャマッチングに依存する先行技術と比較すると、この態様は、複数のオブジェクト及び／又はそれらの異なるリモートコンピュータに対する影響間の比較を行い、ある特定のオブジェクトが良好又はマルウェアとして分類されるべきか否かを決定できる。高度なパターン解析を行うことができる。これにより、マルウェアであるかを決定するようなオブジェクト自体の詳細な解析をせずに、オブジェクトの性質について迅速な決定ができる。また、従来技術におけるアンチウイルスソフトウェアのような、シグネチャマッチングに用いるべき新たなシグネチャを生成する必要性は避けられる。
【００１７】
好適な実施例では、前記複数のリモートコンピュータから前記ベースコンピュータに送信され、且つ前記比較において用いられた前記コンピュータオブジェクトに関する前記データは、前記オブジェクト内に含まれる又は前記オブジェクトにより構成される複数の実行可能命令と、前記オブジェクトのサイズと、前記オブジェクトの現在の名称と、前記オブジェクトのディスク上での物理的およびフォルダ位置と、前記オブジェクトの本来の名称と、前記オブジェクトの作成及び変更日時と、前記オブジェクト内に記憶された業者、製品、バージョン、及び他の情報と、前記オブジェクトヘッダ又は前記リモートコンピュータにより保持されたヘッダと、前記オブジェクトを夫々のリモートコンピュータ上で実行する、構成する又は作成する際に前記オブジェクトにより開始された又は前記オブジェクトを含むイベントと、のうちの一以上を含む。
【００１８】
好ましくは、前記比較により、前記オブジェクトと他の複数のオブジェクトとの関係が識別される。一の例では、このオブジェクト又は親若しくは他の関連オブジェクトが不良（又は良好）である場合に、これを迅速及び自動的に用いて、子オブジェクトを不良（又は良好）と印付（即ち、マーク或いはマーキング）できる。よって、前記オブジェクトが関連する少なくとも一の他のオブジェクトが、マルウェアとして分類される場合に、前記オブジェクトをマルウェアとして分類する。前記他の複数のオブジェクトは、前記複数のリモートコンピュータのうちの少なくともいくつかに記憶された前記オブジェクト又は類似の複数のオブジェクトを含む。前記他の複数のオブジェクトは、親若しくは子オブジェクト、又は前記オブジェクトに対してプロセス関連オブジェクトである他の複数のオブジェクトを含む。
【００１９】
最も好適な実施例では、前記データは、前記夫々のリモートコンピュータ上の複数のオブジェクトについて実行されたハッシングプロセスによって取得される鍵の形態で送信される。このような鍵を用いる主な利点は、ベースコンピュータに送信する必要のあるデータの量を低く抑えておくことである。数千又は何百万ものリモートコンピュータが接続されて存在し、更に夫々が非常に多数のオブジェクトの詳細を送信してよい場合は、これは重要な利点となりうる。
【００２０】
前記鍵は、前記オブジェクト内に含まれる又は前記オブジェクトにより構成される実行可能命令を表す少なくとも一の要素を有する。この重要且つ好ましい特徴により、ベースコンピュータにおいてオブジェクトの実行可能命令についてのみ比較ができる。これは、例えば、大抵の場合オブジェクトがマルウェアであることのインジケータとなる、基本的に同じ実行可能命令を有する異なる名称のオブジェクトが、それにもかかわらずこの目的において「同じ」オブジェクトとしてみなすことができることを意味する。他の例として、ベースコンピュータに既に知られた先のバージョンと比べてわずかに改定されており、且つ、少なくとも実質上、実行可能命令の点で、先のバージョンと同じとみなされうる新たなバージョンのプログラムが公開されてよい。この場合、わずかな差を無視でき、オブジェクトは同じであるとみなされる。これは、マルウェアと、例えば先のソフトウェアの修正バージョンとを区別する際に有用であるだけでなく、データ送信及び記憶の要求が低く抑えられる。なぜなら、ベースコンピュータは、リモートコンピュータに、明らかに新しいオブジェクトがこの目的において先に知られたオブジェクトと同じであると知らせることができ、従って、リモートコンピュータに、オブジェクトの詳細やオブジェクト自体をベースコンピュータに送信することを回避させることができるからである。
【００２１】
前記鍵は、前記オブジェクトに関するデータを表す少なくとも一の要素を有する。前記オブジェクトに関する前記データは、前記オブジェクトの現在の名称と、前記オブジェクトのディスク上での物理的およびフォルダ位置と、前記オブジェクトの本来の名称と、前記オブジェクトの作成及び変更日時と、前記オブジェクト内に記憶された業者、製品、バージョン、及び他の情報と、前記オブジェクトヘッダ又は前記リモートコンピュータにより保持されたヘッダと、前記オブジェクトを夫々のリモートコンピュータ上で実行する、構成する又は作成する際に前記オブジェクトにより開始された又は前記オブジェクトを含むイベントと、のうちの少なくとも一つを含んでよい。
【００２２】
前記鍵は、前記オブジェクトの物理的サイズを表す少なくとも一の要素を有することが好ましい。
【００２３】
この鍵に一より多いこれらの要素が存在する場合、その複数の要素は分離可能であることが好ましい。
【００２４】
先ず一のオブジェクトを非マルウェアとして分類する工程と、前記オブジェクトについての許容される振る舞いを規定する前記オブジェクトのマスクを生成する工程と、少なくとも一の前記リモートコンピュータ上で前記オブジェクトの動作を監視する工程と、実際に監視された前記振る舞いが前記マスクによって許可されたものを逸脱する場合に前記オブジェクトをマルウェアとして分類する工程とを備えてよい。これにより、良好と分類又はみなされた一のオブジェクトの振る舞いを監視する効率的且つ効果的方法が提供される。またこのオブジェクトの振る舞いがマルウェアであることの理由となる場合は、当該オブジェクトを迅速にマルウェアとして再分類することができる。
【００２５】
本発明の第２の態様によれば、一のコンピュータオブジェクトをマルウェアとして分類する装置であって、前記オブジェクト又は類似の複数のオブジェクトを記憶する複数のリモートコンピュータの夫々からのコンピュータオブジェクトに関するデータを受信するように構成及び配置された一のベースコンピュータを備え、前記ベースコンピュータは、前記複数のコンピュータから受信した前記コンピュータオブジェクトに関する前記データを、比較するように構成及び配置され、前記ベースコンピュータは、前記比較に基づいて前記コンピュータオブジェクトをマルウェアとして分類するように構成及び配置される分類装置が提供される。
【００２６】
本発明の第３の態様によれば、一のコンピュータオブジェクトに関するデータを一のリモートコンピュータから一のベースコンピュータに、前記ベースコンピュータにおいて他の複数のリモートコンピュータから受信した類似データと比較を行えるように提供する方法であって、前記リモートコンピュータに記憶された一のコンピュータオブジェクトに関するデータを一のリモートコンピュータから一のベースコンピュータに提供する工程を備え、前記データは、前記オブジェクト内に含まれる又は前記オブジェクトにより構成される複数の実行可能命令と、前記オブジェクトのサイズと、前記オブジェクトの現在の名称と、前記オブジェクトのディスク上での物理的およびフォルダ位置と、前記オブジェクトの本来の名称と、前記オブジェクトの作成及び変更日時と、前記オブジェクト内に記憶された業者、製品、バージョン、及び他の情報と、前記オブジェクトヘッダ又は前記リモートコンピュータにより保持されたヘッダと、並びに前記オブジェクトを作成、構成、又は夫々のリモートコンピュータ上で実行する際に前記オブジェクトにより開始された又は前記オブジェクトを含むイベントのうちの一以上を含み、前記データは、前記リモートコンピュータ上のオブジェクトについて実行されたハッシングプロセスによって取得された鍵の形態で送信される提供方法が提供される。
【００２７】
リモートコンピュータ上で実行しているいわゆるエージェントソフトウェアによって実行されるこの方法により、ベースコンピュータへの効率的なデータ送信が可能となり、データ送信及び記憶の要求が最小限となり、またベースコンピュータにおいて迅速な解析を行うことができる。
【００２８】
前記鍵は、前記オブジェクト内に含まれる又は前記オブジェクトにより構成される実行可能命令を表す少なくとも一の要素を有することが好ましい。
【００２９】
前記鍵は、前記オブジェクトに関するデータを表す少なくとも一の要素を有することが好ましい。前記オブジェクトに関する前記データは、前記オブジェクトの現在の名称と、前記オブジェクトのディスク上での物理的およびフォルダ位置と、前記オブジェクトの本来の名称と、前記オブジェクトの作成及び変更日時と、前記オブジェクト内に記憶された業者、製品、バージョン、及び他の情報と、前記オブジェクトヘッダ又は前記リモートコンピュータにより保持されたヘッダと、並びに前記オブジェクトを夫々のリモートコンピュータ上で実行する、構成する又は作成する際に前記オブジェクトにより開始された又は前記オブジェクトを含むイベントと、のうちの少なくとも一つを含んでよい。
【００３０】
前記鍵は、前記オブジェクトの物理的サイズを表す少なくとも一の要素を有することが好ましい。
【００３１】
本発明の第４の態様によれば、一のリモートコンピュータが有するマルウェアからの保護を決定する方法であって、一のベースコンピュータにおいて、前記リモートコンピュータ上である時点で動作しているセキュリティ製品のうちの全て又は選択された製品の詳細を受信する工程と、前記ベースコンピュータに接続された他の複数のリモートコンピュータから類似の情報を受信する工程と、特定の組み合わせのセキュリティ製品を有している前記他の複数のリモートコンピュータによって識別されなかった任意のマルウェアプロセスを識別する工程と、を備える決定方法が提供される。
【００３２】
このように、ベースコンピュータは、例えばある時点で存在する設定及びシグネチャファイルを含んだオペレーティングシステムと各種セキュリティ製品との特定の特異な組み合わせによって、ある特定のコンピュータがある特定のマルウェアオブジェクトに感染しやすい又は脆弱なこれらの製品及び設定を有する状態になるかに関する情報を取得するために、用いられることができる。ユーザは、適宜助言を受け、例えばこの状況を改善する提言が受けることができる。
【００３３】
従って、前記一のリモートコンピュータは、前記識別に基づいて前記マルウェアプロセスによる攻撃の影響を受けやすい可能性があるという情報を前記一のリモートコンピュータのユーザに提供する工程を備えてよい。
【００３４】
前記全て又は選択されたセキュリティ製品の詳細は、当該セキュリティ製品の名称と、バージョンと、ロードされたシグネチャファイルとを含むことが好ましい。
【００３５】
本発明の第５の態様によれば、一のリモートコンピュータが有するマルウェアからの保護を決定する装置であって、前記リモートコンピュータ上である時点で動作しているセキュリティ製品のうちの全て又は選択された製品の詳細を受信するように構成及び配置された一のベースコンピュータを備え、当該ベースコンピュータは、前記ベースコンピュータに接続された他の複数のリモートコンピュータから類似の情報を受信するように構成及び配置され、前記ベースコンピュータは、特定の組み合わせのセキュリティ製品を有している前記他の複数のリモートコンピュータによって識別されなかった任意のマルウェアプロセスを識別するように構成及び配置される決定装置が提供される。
【００３６】
本発明の第６の態様によれば、第１のコンピュータオブジェクトの子孫であるか又は関連オブジェクトである一のコンピュータオブジェクトを、マルウェア又は安全として分類する方法であって、第１のコンピュータオブジェクトをマルウェア又は安全として分類する工程と、前記第１のコンピュータオブジェクトを一意的に識別する一要素であって前記第１のコンピュータオブジェクトの子孫又は他の関連コンピュータオブジェクトの鍵において受け継がれたか若しくは存在する前記一要素を、前記第１のコンピュータオブジェクトに関連する鍵において識別する工程と、前記コンピュータオブジェクトの鍵に存在する一意的な識別子要素に基づいて、前記コンピュータオブジェクトを、場合によってマルウェア又は安全として分類する工程と、を備える分類方法が提供される。
【００３７】
この態様は、系図の概念を用いてオブジェクトをマルウェアとして印付（即ち、マーク或いはマーキング）できる。例えば、ある特定のプロセスは、子プロセスを発生させてよく、故に関連している。第１のオブジェクトに関連する鍵を検査して、第１のオブジェクトを一意的に識別する要素であって且つ受け継がれる或いは第１のオブジェクトの子孫又は他の関連オブジェクトにおける鍵に存在する前記要素を、識別してよい。
【００３８】
この方法は、前記第１のコンピュータオブジェクトの活動を監視する工程と、前記第１のコンピュータオブジェクトが安全として先ず分類されてその後マルウェアであると判断された場合に、前記第１のコンピュータオブジェクトをマルウェアとして再分類する工程と、を備え、更に、前記一意的な識別子要素が存在する鍵を備えた任意のコンピュータオブジェクトを、マルウェアとして自動的に分類する工程を備えてよい。
【００３９】
本発明の第７の態様によれば、第１のコンピュータオブジェクトの子孫であるか又は関連オブジェクトである一のコンピュータオブジェクトを、マルウェア又は安全として分類する装置であって、第１のコンピュータオブジェクトをマルウェア又は安全として分類するように構成及び配置された一のコンピュータを備え、当該コンピュータは、前記第１のコンピュータオブジェクトを一意的に識別する一要素であって前記第１のコンピュータオブジェクトの子孫又は他の関連コンピュータオブジェクトの鍵において受け継がれたか若しくは存在する前記一要素を、前記第１のコンピュータオブジェクトに関連する鍵において識別するように構成及び配置され、前記コンピュータは、前記コンピュータオブジェクトの鍵に存在する一意的な識別子要素に基づいて、前記コンピュータオブジェクトを、場合によってマルウェア又は安全として分類するように構成及び配置される分類装置が提供される。
【００４０】
本発明の第８の態様によれば、一のコンピュータにソフトウェアをインストールする方法であって、一のコンピュータへのソフトウェアのインストール開始時に、ユーザが前記インストールを認証したかを確認するための前記コンピュータ上のコンピュータ生成プロンプトを、前記ユーザに提供する工程と、ユーザ認証が受信されない場合に前記インストールを中止する工程と、そのほか、前記コンピュータにおいて、前記インストールを進めるための前記ユーザ認証を受信する工程と、前記インストールを進める工程と、前記インストール中に作成又は使用された複数のコンピュータオブジェクトに関するデータを取得する工程と、前記データを前記ローカルコンピュータに記憶する工程と、を備えたインストール方法が提供される。
【００４１】
これは、ユーザが新たなソフトウェアをインストールしていて、例えば上述した種類のコミュニティデータベースを備えたベースコンピュータに接続されていない際の安全性を提供する。この場合、ローカルコンピュータ上で実行しているエージェントソフトウェアで実行されるこの方法により、ユーザは、インストール中に作成されたオブジェクトに関するデータ（例えば、プロセス、新たなファイル等）を同時に収集しながらインストールを進めることが可能となる。
【００４２】
前記ローカルに記憶されたデータは、前記インストール中に作成又は使用された全てのオブジェクトが前記インストールプロセスの一部であることを確認するために前記インストール中に参照され、前記インストール中に作成又は使用された全てのオブジェクトが前記インストールプロセスの一部でない場合には、（ｉ）前記インストールを中止する工程、及び（ｉｉ）前記コンピュータ上のコンピュータ生成プロンプトを適宜前記ユーザに提供する工程のうち少なくとも一方を備えることが好ましい。これにより、インストールが要求されたオブジェクトのみの作成又は使用を許可し、よって（マルウェアが、新たなソフトウェアの通常インストールの一部であるとは予期されないオブジェクトをしばしば作成すること条件下で）無意識にマルウェアをインストールしてしまわないようにすることがこの方法で確保される。
【００４３】
好適な実施例では、複数のコンピュータに接続可能であるコミュニティデータベースに前記コンピュータを接続する工程と、前記記憶されたデータを、他のコンピュータによって提供された類似のデータと比較するために前記コミュニティデータベースにアップロードする工程とを備える。
【００４４】
この方法は、複数の信頼できるインストーラに関するデータを前記コンピュータにダウンロードする工程を備え、前記複数の信頼できるインストーラに関するデータは、前記信頼できるインストーラに関連する又は前記信頼できるインストーラによって作成された任意のオブジェクトを自動的に認証して先に進むように、前記インストール中に参照されてよい。これにより、先験的に信頼できると知られたソフトウェアのインストールが容易になる。
【００４５】
前記複数の信頼できるインストーラに関するデータは、前記コンピュータにおける前記インストールを進めるための前記ユーザ認証の受理に続く所定の時間のみ参照されてよい。
【００４６】
本発明は、コンピュータに上記の方法のうちのいずれか一つを実行させるプログラム命令を備えるコンピュータプログラムも含む。
【００４７】
図面を参照して記述される本発明の実施例は、コンピュータ装置において実行されるコンピュータプロセスと、コンピュータ装置自体とを含むが、本発明はコンピュータプログラムにまで及ぶ。特に、本発明を実施するのに適したキャリア上又はキャリア内のコンピュータプロラムである。このプログラムは、ソースコード、オブジェクトコード、コード中間ソース、及び部分コンパイル型等のオブジェクトコードの形態であってよい。或いは、本発明に係るプロセスの実施において好適なその他の形態であってよい。キャリアは、プログラムを伝送できる任意の実体又は装置であってよい。例えば、キャリアは、例えばＣＤ−ＲＯＭ又は半導体ＲＯＭ等のＲＯＭ、又は例えばフロッピーディスク又はハードディスク等の磁気記録媒体等の記憶媒体を備えてよい。更にキャリアは、電気又は光ケーブルを介して、若しくは無線通信又は他の手段により伝えられる電気又は光信号等の、伝送可能なキャリアであってよい。
【発明を実施するための最良の形態】
【００４８】
添付の図面を参照して、本発明の実施例を一例として説明する。
【００４９】
図１を参照すると、コンピュータネットワークは、一般にインターネット１等の分散型ネットワークのようなものに基づくものとして示される。しかしながら、本発明は、ＬＡＮ等の他の種類のネットワークを用いて、又はその全域で実行されてよい。複数のローカル又は「リモート」コンピュータ２は、インターネット１を介して「中央」又は「ベース」コンピュータ３に接続される。コンピュータ２は、夫々様々に、パソコン、任意の種類のサーバ、ＰＤＡ、携帯電話、双方向テレビ、又はコンピュータオブジェクトを取り込んで動作させる他の装置であってよい。この意味でのオブジェクトは、コンピュータファイル、ファイルの一部若しくはサブプログラム、マクロ、又はコンピュータにより若しくはコンピュータ上で動作するウェブページ若しくは他のコード、或いは他の実行、エミュレート、シミュレーション、又は解釈されたイベントであってよい。オブジェクト４が図に模式的に示されているが、例えばライン５で示すようにインターネット１を介してリモートコンピュータ２にダウンロードされてよいし、又はライン６で示すように直接適用されてもよい。
【００５０】
一の好適な実施例では、ベースコンピュータ３はデータベース７を保持する。リモートコンピュータ２がオブジェクト４を実行してオブジェクト４が安全か否かを決定する際に、リモートコンピュータ２は、このデータベース７と作用する。コミュニティデータベース７は、接続された全リモートコンピュータ２上で実行される各オブジェクトに関連する情報によって、時間とともに埋められてゆく。以下に更に説明するように、各オブジェクト４の代表データは、オブジェクト、及びその効果に関連するいわゆるシグネチャ（signature）又は鍵（key）の形態をとることが好ましい。以下に更に説明するように、データベース７は、オブジェクトの性能及び動作のパラメータを設定するオブジェクト４用のマスクを更に含んでよい。
【００５１】
ここで図２を参照すると、開始点２１において、一のプロセス等のコンピュータオブジェクト４をリモートコンピュータ２において実行する。ステップ２２において、リモートコンピュータ２上で実行されているローカル「エージェント」ソフトウェアの動作により、そのプロセスの動作がフックされ、エージェントソフトウェアがリモートコンピュータ２に記憶されたローカスデータベースを検索して、その特定のプロセス、その関連オブジェクト、及び／又はイベントを表すシグネチャ若しくは鍵を検索できる。もし、そのローカルシグネチャが存在する場合は、そのプロセスが安全とみなされることを示すか、又は安全でないとみなされることを示す。危険なプロセスとは、マルウェアであると発覚したプロセスかもしれないし、その実行から生じた、危険若しくは悪質な結果を予測しなかった又は知ったことが発覚したプロセスかもしれない。もしシグネチャがそのプロセスは安全であると示す場合は、そのプロセス又はイベントは、ステップ２３において実行するリモートコンピュータ２上のローカルエージェントソフトウェアにより許可される。もしシグネチャが、そのプロセスは安全でないと示す場合は、そのプロセス又はイベントはステップ２４において中止される。
【００５２】
当然のことながら、「安全である」又は「安全でない」の２つよりも多い状態が存在してよく、選択がユーザに与えられてよい。例えば、一のオブジェクトが局所的に安全でないとみなされる場合、それにもかかわらずに関連プロセスを実行できる選択肢がユーザに与えられてよい。各リモートコンピュータ２に対して複数の異なる状態が与えられてもよい。この状態は、時間枠又はリモートコンピュータの位置、状態、又は所有権を考慮する、中央システムによって、変更可能である。
【００５３】
オブジェクトが局所的に知られていない場合、そのオブジェクトの詳細は、インターネット１又は他のネットワークを通って、コミュニティデータベース７に蓄積するための、また好ましくはベースコンピュータ３において更なる解析を行うためのベースコンピュータ３に送られる。この場合、次にコミュニティデータベース７は、ステップ２５において、コミュニティデータベース７に既に記憶されているオブジェクトのシグネチャを求めて検索される。コミュニティデータベース７には、夫々監視されたリモートコンピュータ２により実行されるプログラム又はプロセス等のオブジェクトを代表するシグネチャが供給される。この分野における典型的な実施では、ベースコンピュータ３に接続又は接続可能な数千又は何百万ものリモートコンピュータ２が存在してよい。そのため、インターネット１に新たに公開された、又はそうでなければこれらのリモートコンピュータ２のうちのいずれかで見つかる任意のオブジェクトが、すぐに見つけられる。またシグネチャが作成され、夫々のリモートコンピュータ２によってベースコンピュータ３に送信されるであろう。
【００５４】
コミュニティデータベース７が、関与しているリモートコンピュータ２において予め知られていなかったオブジェクトのシグネチャを求めて検索される際に、そのシグネチャが発見され、且つシグネチャがオブジェクトは安全であると示す場合は、シグネチャのコピー、又は少なくともそのオブジェクトが安全であるというメッセージが、ステップ２６において関与するリモートコンピュータ２のローカルデータベースに送信され、ローカルデータベースに蓄えられる。このようにして、リモートコンピュータ２は、この情報を、そのオブジェクト４に出会う次の機会へと即時に手渡す。別のメッセージも、現在のインスタンスでオブジェクトを実行させるために、リモートコンピュータ２に戻される。
【００５５】
もしシグネチャがコミュニティデータベース７で発見され、これが何らかの理由でオブジェクトは安全ではないと示す場合、シグネチャは再びコピーされてローカルデータベースに戻され、ステップ２７において「安全でない」と、印付（即ち、マーク或いはマーキング）される。並びに／或いは、メッセージがリモートコンピュータ２に送信されて、オブジェクトの実行が中止される（又は実行できなくなる）。及び／又はユーザにオブジェクトを実行するか否かについての、納得した上での選択枝（インフォームドチョイス）が与えられる。
【００５６】
もし、全コミュニティデータベース７を検索後もオブジェクトがまだ知られない場合は、このオブジェクトは、この分野において今までに見られたことのない完全に新しいオブジェクトであることが仮定される。従って、シグネチャはステップ２８において、そのオブジェクトを表すものとして作成される。或いは、リモートコンピュータ２により送信されたシグネチャは、この目的で用いられ、このシグネチャが、ステップ２９において不良である、又は安全でないようなコミュニティデータベース７として、先ずは印付される。そのシグネチャは、ステップ３０において最初にオブジェクトを実行したリモートコンピュータ２のローカルデータベースにコピーされる。次に、メッセージがリモートコンピュータ２に送られ、リモートコンピュータ２にオブジェクトを実行しないように命令してよい。或いは、オブジェクトが実行可能であるか否かについてのインフォームドコンセントを、ユーザに与えてもよい。加えて、ステップ３１において、オブジェクト自体のコピーをリモートコンピュータ２からコミュニティデータベース７により要求されてよい。
【００５７】
もし、リモートコンピュータ２におけるユーザが、新しすぎるので安全でないとみなされたプロセスを実行する、と選択する場合、そのプロセスはリモートコンピュータ２及び／又はコミュニティデータベース７により監視されてよい。また、例えばｎ日間後にも何の悪影響も起きない又は示されない場合は、安全であるとみなされてよい。或いは、コミュニティデータベース７は、ネットワークの一部を形成する多数のリモートコンピュータ２により求められたプロセスの各インスタンスのログ（記録）を保持してよい。特定数のインスタンスが記録され、他の特定数のインスタンス又はプロセスが実行を許可され安全に実行された後には、コミュニティデータベース７におけるシグネチャは、安全でないというよりはむしろ安全であると印付されてよい。安全性の監視における他の多くの変更は、この概念の範囲内で行われてよい。
【００５８】
ベースコンピュータ３に送られるオブジェクト４の詳細は、オブジェクト４を一意的に識別するシグネチャ又は「鍵」の形態であることが好ましい。これは主にデータ格納及び送信要求の量を制限するためである。この鍵は、リモートコンピュータ２においてオブジェクトに作用しているハッシング関数により形成されてよい。
【００５９】
好適な実施例における鍵は、少なくとも三つの分離可能な要素を有するように特別に配置される。第１の要素は、オブジェクト内に含まれる又はオブジェクトにより構成される実行可能命令を表す。第２の要素は、当該オブジェクトに関するデータを表す。第３の要素は、オブジェクトの物理的なサイズを表す。第２の要素におけるオブジェクトに関するデータは、ファイル名と、そのディスク上での物理的及びフォルダ位置と、その本来のファイル名と、その作成及び変更日時と、業者、製品及びバージョン、並びにオブジェクト内に記憶された他のいかなる情報と、そのファイルヘッダ又はそれについてリモートコンピュータ２により保持されたヘッダと、またオブジェクトを作成、構成、又は夫々のリモートコンピュータ上で実行する際にオブジェクトにより開始された又は前記オブジェクトを含むイベント等の、任意又は全ての他の識別形態であってよい。一般に、鍵に備わった情報は、少なくともこれらの要素のうちの一つ、またはこれらのうち任意の組み合わせにおける任意の二以上の要素を含んでよい。
【００６０】
一の好適な実施例では、タイプＰＥ（マイクロソフト（Microsoft）により規定されたPortable Executableファイル）の.exe及び.dllファイル等（しかしこれらには制限されない）の全ての実行ファイルについて、チェックサムを作成する。三種類のチェックサムが、ファイルの性質に応じて生成される。即ち、
タイプ１：ファイルにおける５つの異なるセクションをチェックサムする。これらは、インポートテーブル、コードセクションにおける開始セクション及び終了セクション、並びに全ファイルの開始セクション及び終了セクションを含む。このタイプは、解析される大部分のファイルに対して適用される。
【００６１】
タイプ２：旧ＤＯＳ又は１６ビット実行ファイルに対して、全ファイルをチェックサムする。
【００６２】
タイプ３：ある所定サイズを超えるファイルに対して、ファイルを大きな塊毎にサンプリングして、その後チェックサムする。ある所定サイズより小さいファイルに対しては、全ファイルをチェックサムする。
【００６３】
チェックサムプロセスに対して、原理上は任意の技術が可能である。ＭＤ５（Message Digestアルゴリズム５）は、この目的で広く用いられる暗号ハッシュ関数である。
【００６４】
これにより、チェックサムの実行可能要素のみを参照し、共通の実行可能コードを共有する二つの実行可能要素を比較することにより、コアチェックサムを生成することができる。
【００６５】
上記のタイプ１チェックサムに対して、三つのシグネチャプロセスが用いられてよい。第１のシグネチャは、全ファイルを規定し、殆どいずれのファイルの内容に対する変化とともに変化する。第２のシグネチャは、変化が少ないプロセスの処理命令の規定のみを図る。第３のシグネチャは、ファイルサイズを用いており、これにより異なるサイズのオブジェクトが衝突する可能性が非常に減少する。異なる対応物を伴って個々に現れる全てのシグネチャの発生を追跡或いは探知することにより、変更された又は共通点から作成されたけれども、新たな、場合によっては悪質な機能性を実行するように編集されたプロセスを識別することができる。
【００６６】
この「メタデータ」は、現在の及び新たに派生したヒューリスティクス（発見的問題解決法）を、コミュニティデータベース７のデータ上で実行させることができる。
【００６７】
コミュニティデータベース７に記憶されたデータは、必然的に一のオブジェクトの作成、配置、実施、行動（挙動）（behavior）、識別、並びに、他の複数のオブジェクトであってそれに作用する又はそれにより作用される該他の複数のオブジェクトに対する関係を提供することになる。
【００６８】
好適な中央ヒューリスティクスは、一のオブジェクトが安全か、安全でないか、又は疑わしいかをはっきりさせるために、５つの特異的なプロセスを用いる。
【００６９】
これらのうちの第１のプロセスは、オブジェクトを見ているすべてのリモートコンピュータ２から獲得した又は相関した一又は複数の名称、位置、業者、製品、バージョン情報を用いる。単一のオブジェクトに対してこれら複数の情報を考慮することによって、オブジェクトの信憑性及び／又は信頼性の程度として用いられるスコアを決定できる。大抵の安全なオブジェクトは、多数の識別情報又は位置を用いない傾向がある。オブジェクトの種類及びその位置については、この情報を考慮して規則を定めることができる。例えば、テンポラリファイルは、同一のオブジェクトについて各リモートコンピュータ上では異なる可能性のある複数のシステム生成ファイル名を頻繁に用いる。オブジェクトが少数しか存在しない場合には、先にその識別情報を用いた他のオブジェクトの既知の振る舞い（又は挙動若しくは行動）と比較して、その振る舞いを考慮するための参照点を提供する。例えば、notepad.exeのバージョンという趣旨の新たなオブジェクトは、notepad.exeとしても知られる一以上の他のオブジェクトの振る舞いと比べて、その振る舞いを有することができる。この比較は、同一又は類似の識別情報を用いる単一の他のオブジェクト又は複数の他のオブジェクトに対して行われてよい。このようにして、新たなパターンの振る舞いが、新たなオブジェクト用に識別される。またそれにより、好適な実施例は、オブジェクトの振る舞いを時間の経過とともに取り締まり、先に安全とみなされたオブジェクトの状態を再考させてしまうような新たな振る舞いパターンを識別することができる。或いは、識別に基づくスコアを、他のオブジェクトのスコア、又は複数の組み合わせで考慮すべきこのオブジェクト上の他のプロセスにより作成されたスコアとともに考慮してよい。
【００７０】
第２のプロセスは、一のオブジェクトの、当該オブジェクトに作用する又は当該オブジェクトが作用する他の複数のオブジェクトに対する関係を用いる。例えば、どのオブジェクトがこのオブジェクトを作成したか、どの複数のオブジェクトがこのオブジェクトを作成したか、どの複数のオブジェクトがこのオブジェクトを実行又は構成する一のレジストリキーを作成したか、どの複数のオブジェクトがこのオブジェクトにより作成された複数のレジストリキーによって構成されたか又は当該複数のレジストリキーを備えているか、等について解析できる。この点では、オブジェクトは、当該オブジェクトにより他のオブジェクトに対して、又は他のオブジェクトにより当該オブジェクトに対して実行されたイベントに基づく関係を有していると考えられる。この単純な１対１関係の連鎖は、複雑な一連の点相関を与える。これにより、受け継がれた関係が、任意のオブジェクト、イベントによるその前身、又はイベントによるその子孫（即ち、子及びサブチャイルドプロセス）に対して考慮できる。これにより、既知の、未知の、安全と知られた、又は不良と知られたオブジェクト、若しくはこれらの組み合わせとの関係及び関連付けについて記述するスコアを展開できる。一又は他の種類に対する特異な関係、多くの関係、又は混じりあった関係を有するオブジェクトは、安全か否かを判断されてよい。或いは、安全か否かの決定に達するために、関係に基づくスコアを他のスコアとともに考慮してよい。このデータは、直接又は他のオブジェクトを介して関連するオブジェクト、及びそれらの振る舞い（或いは行動若しくは挙動）に関する多くの因子を推定するために用いることもできる。例えば、一のオブジェクトの振る舞いが、どのように他のオブジェクトとの関連性又はつながりによって影響又は変更されるかについて推定できる。例えば、マイクロソフトによりウィンドウズシリーズのオペレーティングシステムが供給されたnotepad. exeについて考える。これは、限られた範囲の機能性しか有しておらず、従って、データを他のコンピュータに送信したり、他のプログラムを実行したりする等の幅広いイベントを実行するとは期待されない。しかしながら、notepad. exeの振る舞いは、ダイナミックリンクライブラリ導入（ＤＬＬ導入）等、それに新たなコードを導入することにより変更され得る。この場合、notepad. exeは、コード導入又は他のオブジェクトとのつながりによって取得された新たな性能を有するであろう。オブジェクト間の関係を規定するデータを用いることで、プログラムの新たな振る舞いは、他のオブジェクトとの関連性に起因すると推定できる。もし、その新たな振る舞いが悪意ある場合、プロセスのいずれか又は全ては、必要に応じて安全でないと印付することができる。
【００７１】
取得された振る舞いの組み合わせは、オブジェクトが安全か否かを決定する基準を提供する。典型的には、マルウェアは、ある振る舞い及び特徴を示す。例えばマルウェアは、しばしば自己存続の必要性がある。これは、あるイベント又はシステムの再起動を自動的に再始動する必要がある場合に、明らかとなる。特異な位置で自動再始動又は実行を引き起こすオブジェクトを作成することが、マルウェアの典型的な特徴である。ウィンドウズシステム環境のコアオブジェクトの入れ替えは、マルウェアの典型的な特徴の他の例である。振る舞いのパターンを提供することにより、オブジェクトが安全でないか安全かの決定を自動化できる。コミュニティデータベース７におけるコミュニティデータの集中化は、オブジェクトの振る舞いを迅速に取り入れる能力をもたらし、マルウェアの迅速な識別及び決定を可能にする。オブジェクトは、スコアを導く際に考慮され得るイベントを、自動的に実行してもよい。
【００７２】
第３のプロセスは、時間及びボリュームを含む。関連するデータは、オブジェクトが最初に見られたのはいつか、最後に見られたのはいつか、何回見られたか、所与の時間間隔で何回見られたか、オブジェクトにおける加速の増加又は減少は見られたかを含む。この情報は、複数のリモートコンピュータのコミュニティにおいて一のオブジェクトの普及を決定するのに非常に密接に関係している。スコアは、一のオブジェクトが安全か、安全でないか、若しくは流行しすぎて非常に徹底的な調査無しに実行又は伝播させることができないか、を決定するために用いることができる、これらのメトリクス（metrics）に基づいて展開される。この場合、オブジェクトは、その振る舞い又は関係についての未解決の更なる情報の実行を一時的に控える、又は阻止することができる。このスコアは、他のプロセスからのスコアと組み合わせて用いられてもよい。時間に関しても、振る舞い及び識別性を含むけれどもこれらに制限されない他の情報との組み合わせで、非常に意味がある。例えば、多形性又は無作為に指名されたオブジェクトの場合、時間は強力な限定子である。（多形性ウイルスは、一のコンピュータから他のコンピュータに複製する度にその暗号化アルゴリズム及び対応する暗号鍵を変化させるので、従来の手法で検出するのは困難である。）他の複数のプログラムを作成する一のプログラムは、時間の経過に伴う活動に基づき、しばしば正常又は異常であるとみなされる。
【００７３】
第４のプロセスは、一のオブジェクトの振る舞いを考慮する。これにより、スコアは、一のオブジェクトにより実行されたイベント、若しくは当該オブジェクト自体又は他のオブジェクトにより当該オブジェクトに対して実行されたイベントの種類に基づいて、展開できる。コミュニティデータベース７の集中型システムは、イベントの種類を無限にでき、イベントを実行するオブジェクト、又はそれに対して行われたイベントを備えたオブジェクト、若しくは両方を考慮できる。幾つかのイベントの種類も、オブジェクト以外の外部情報、例えばイベントを実行してインターネットチャットリレーサイトに接続するプログラム、又はウインドウズホストファイル等の非実行ファイルを変更するプログラムに関連する。一のオブジェクトにおける行動イベントは、任意のイベントの「行為者（actor）」（即ち、オブジェクトが他のオブジェクトに対して何かを行う）又は「犠牲者（victim）」（即ち、オブジェクトが他のオブジェクトにより何かされる）として、組み合わせて、順番に、大量に、存在又は非存在下で、又はこれらの任意の組み合わせで等、いろいろな方法で考えら得る。好適な実施例における行動イベントは、リモートコンピュータ２により、又は他の外部源から供給されてよい。このプロセスは、これらを孤立させて又は組み合わせて考慮できる。更に、オブジェクトが作用する又はオブジェクトに作用する他のオブジェクトの状態と組み合わせて行動イベントが考慮されることは、好適な実施例の特徴である。例えば、プログラムの作成は、そのプログラムの作成が安全か否か、新しいか、知られていないか、又は疑わしいかによって、異なるスコアを有してよい。同様に、不良と知られたプログラムにより作成されたプログラムは、それを作成するオブジェクトの状態に応じてその作成イベントに起因した異なるスコアを有する可能性がある。
【００７４】
第５のプロセスは、ウェブページ又はスクリプトの振る舞いを考慮する。この点に関して、ウェブページ及びＵＲＬの組み合わせには、あたかも他の実行ファイルのようなオブジェクトであるかのように振る舞いが追跡或いは探知されるという特性が与えられている。この例において、ウェブページは、通常ウェブブラウザ（例えば、IExplore.exe又はFirefox.exe）によって実行されるイベントとして見られるイベントを実行してよい。好適な実施例は、ウェブブラウザの識別の詳細及びシグネチャを、ブラウザ内に表示されている又は実行しているウェブページに関連する「疑似」オブジェクト識別に代えて使う。この点に関して、関連するウェブページ及び／又はウェブサイトの状態が安全か、安全でないか、知られていないか、疑わしいかについて、他のオブジェクトと同様に決定されてよい。ウェブページの「疑似」オブジェクト識別により、好適な実施例は、潜在的に非安全な行動の一部又は全てを防ぐように、若しくはリモートユーザに資格情報を与えてウェブサイト、ウェブページ又はそれらの内容の安全性について案内するように、そのウェブページ又はウェブサイトの機能性を阻止、妨害（interject）又は制限することもできる。
【００７５】
他の種類のうち、取得されたメタデータの種類は以下の通りであってよい。即ち、
「イベント」：これらは、他のオブジェクト又は他の実体（entity）に作用するオブジェクトの活動（actions）、又は振る舞い若しくは行動（behaviors）を規定する。イベントは、三つの主要要素を有している。即ち、行為を実行するオブジェクトの鍵（「行為者」）、実行された行為（「イベントタイプ」）、並びに、行為が実行されている他の実態の識別又はオブジェクトの鍵（「犠牲者」）である。単純でありながら、この構造により、無限の一連の行動及び関係を規定することができる。一のイベントにおける三要素の例は、以下の通りであってよい。
【００７６】
【表１】
2009500706.tif 000003
【００７７】
「識別」：これらは、一のオブジェクトの属性を規定する。これらは、ファイル名、ディスク上又はメモリ内におけるその物理的位置、ファイルシステム（パス）内におけるディスク上の論理的位置、ファイルが作成されたのはいつか、最後にアクセスされたのはいつか、最後に変更されたのはいつか、業者として記憶された情報、ファイル及びその内容の一部及びバージョン番号である製品、その本来のファイル名、並びにファイルサイズ等を含むファイルヘッダ詳細などの、各種アイテムを含む。
【００７８】
「起源行為者（genesisactor）」:イベントの直接の行為者ではないが、実行されているイベントの最終的な親である一のオブジェクトの鍵。例えば、ソフトウェアのインストールの場合、これはユーザ又はシステムが最初に実行し、且つソフトウェアのインストールプロセス、例えばSetup.exeを開始したオブジェクトの鍵であろう。
【００７９】
「補助データ（ancillary data）」：多数のイベントは、補助データ、例えばレジストリ実行キーの作成を記録するために用いられたイベント等のイベントを要求してよい。この状況において、「イベント」は、レジストリ実行キーを作成する行為者オブジェクト、イベントタイプ自体（例えば、「レグランキー（regrunkey）」）、並びにレジストリ実行キーの犠牲者若しくは対象を、識別する。この場合の補助データは、実行キーエントリ自体を規定する。即ち、ハイブ、キーの名称、バリューである。
【００８０】
「イベントチェックサム」：イベントデータは、単一のイベント、行為者、犠牲者及び任意の補助データに対するその識別に対する情報が数百バイトに至るほど非常に大きくなりうるので、システムはこのデータ自体をイベントチェックサムによってまとめることができる。二つのイベントチェックサムは、ＣＲＣ及びＡｄｌｅｒ等の様々なアルゴリズムを利用して用いられる。チェックサムは、イベントのコアデータのものである。これにより、リモートコンピュータ２は、既にこれらの記憶されたチェックサムに関連するデータを有する可能性がある中央コンピュータ３に、データのチェックサムを送信できる。この場合、リモートコンピュータ２に更なる情報を要求しない。中央コンピュータ３が、そのチェックサムを一度も受信したことがない場合のみ、関連データをリモートコンピュータ２に要求する。これにより、リモートコンピュータ２及び中央コンピュータ３の両者のパーフォーマンスがかなり改善され、より効果的なスケーリングが可能となる。
【００８１】
よって、コミュニティデータベース７において、リモートコンピュータ２から取得されたメタデータを用いて、コミュニティ全域におけるプロセスの振る舞い（或いは行動若しくは挙動）を規定することができる。上述のように、このデータは上記の複数の要素（ファイルサイズ、位置等）のうちの少なくとも一の要素、若しくは二、三、四、五、又は六の要素、或いは七の全ての要素（又はここで具体的に述べなかったより多くの要素）を含んでよい。これは適宜、コミュニティデータベース７で利用するための新たな自動化ルールのモデル化、テスト、及び生成を行うために用いてよく、更にリモートコンピュータ２のローカルデータベースに保持され利用されたこれらに追加されるルールとして用いて、新たな又は道のプロセス及びプロセス活動に対するリモートコンピュータ２の応答の識別及び決定を行ってよい。
【００８２】
また、同質の実体としての任意のサブプロセスとともにプロセスを監視でき、全コミュニティにわたってトップレベルプロセスの活動を比較できる。また、確実且つ潜在的に悪意のある実行は、一以上の具体的なサブプロセスがロードされる場合に起こるのみである。これにより、言うまでもなく今日悪意のあるコードの主要源であるインターネットからユーザが取得する、ダウンロード可能な任意のコードにより、機能性を容易に変更できるInternet Explorer又は他のブラウザ等の、プログラムの効果的な監視（不必要な遮断無しに）が可能となる。
【００８３】
頻繁に利用する複数のユーザのうち潜在的にかなりの部分は、そのうちの少なくとも一人が新たなマルウェアに感染しているという高い確率を示す。伝播速度を検出及び記録して、マルウェアの伝播を検出できる。マルウェアは、ファイルサイズ、位置、及び名称等の上述した他の因子と随意に併用した、この伝播速度に基づいて、悪質或いは不良と特定できる。感染のシンプルボリュームをトリガーとして用いることもできる。更なる実施例では、コミュニティ内でコードを実行する最初の試みの進行に相まって、名称以外では同一のコードの一部分における名称の違いにより、それ以外は同様に署名されるコードの一部分を悪質として表すパターンマッチングが可能になる。
【００８４】
この特徴は、ある実施例において、「私たちのコミュニティにおいて、ロックされずにＸよりも速く伝播するものはない」状態を可能とするので、任意のプロセス又はイベントが所与の期間を超えてより迅速に伝播する場合、悪質として印付される。これは、例えば一のオブジェクトが十分迅速に伝播している場合には、それがマルウェアか否かを決定する解析を行う前にコンピュータを感染させてしまう可能性があることを考えれば、安全性のためである。
【００８５】
このプロセスは、コミュニティにおける伝播業者（即ち、伝播種類の源）の識別により、コミュニティデータベースに保持されたタイムスタンプデータ及びこれらの属性を悪質として有するコードの一部分のマーキング（印付）から自動化できる。比較すると、全ての他のアンチマルウェアプロバイダは、単純に悪質として知られたモデルに頼っており、従って、実際に終端部で生じており報告されるマルウェア感染に主に依存していると考えられている。
【００８６】
よって、コミュニティデータベース７を用いて早期診断、又は単純に予防措置をとることができ、従って、潜在的に迅速に伝播するワームや他のマルウェアをそれらのライフサイクルの非常に速い段階で停止させることが可能である。インターネットに接続されたすべてのコンピュータを数分以内に感染可能なワームが生成可能であるとすると、この特徴は非常に望ましいものである。
【００８７】
新たなソフトウェアの伝播速度を規定するデータを、エージェントソフトウェアによりリモートコンピュータ２から集めてコミュニティデータベース７に供給したメタデータと組み合わせることにより、より迅速な決定さえなされてよい。これは、リモートコンピュータ２上でランダムに名称及び／又は位置を変更することによりそれら自体をユーザから隠そうとするプロセスの監視を含む。また、コンピュータ上で完全同一（即ち、同一のコード内容を備える）であるけれども異なる名称の同一コピーを作成するプロセスの試みも含む。これは、ワームの伝統的な特質である。
【００８８】
一のオブジェクトのシグネチャは、そのオブジェクトを用いて作ることができ、且つそのオブジェクトから想定される振る舞いの特定タイプを示すマスクを備えるか又は該マスクに関連してよい。一のオブジェクトがリモートコンピュータ２上で実行可能である場合、初期のシグネチャ検索２２がオブジェクトは安全であると示していても、そのオブジェクトの動作はマスクのパラメータ内で監視されてよい。マスクは、例えばオブジェクトの想定される振る舞いと、通信を可能にするためにオープンにすることが要求された任意のポート又はインターフェースの詳細を含めて、オブジェクトによって合法的にリモートコンピュータ２に作成させた、又は当該作成が要求された任意の外部要求、又はインターネット接続と、そのオブジェクトから問い合わせがなされると予測されるローカル、又はローカルエリアネットワークを超えたネットワーク、ワイドエリアネットワーク、又はインターネット等の、任意のデータベースと、等を示してよい。よって、マスクは、そのオブジェクトの想定される「正常な」振る舞いの全体像を与えることができる。
【００８９】
従って、実際には、一の実施例において、オブジェクトの振る舞いは一（又は複数）のリモートコンピュータ２により継続的に監視され、またそのオブジェクトに関連する情報がコミュニティデータベース７とやり取りされ、オブジェクトがその想定されるマスク内で実行しているかが決定される。マスクを逸脱する任意の振る舞いは、識別され、オブジェクトが安全のままであるか否かについて、継続的に評価することに用いることができる。従って、例えば定期的に（例えば毎月又は毎年）オブジェクトが新たなポートを開いて更新する、又は定期的なデータを取得する場合、この情報にフラグが立てられる。もし、オブジェクトがこれを他のリモートコンピュータに対して行い、何の悪影響も受けなかった場合、或いはこの振る舞いが他のオブジェクトから安全であると知らされている場合は、この振る舞いは安全な振る舞いとしてみなされてよく、そしてマスクは、これを許可するように変更される。仮に、この新たな行動が実際は安全でない又は悪意のある結果をもたらすと事前に分かっていた場合は、そのオブジェクトは、たとえ先に安全であるとみなされていたとしても、安全でないものと印付される。同様に、オブジェクトが、安全でないと知られたウェブサイトやデータベースに接続しようとする、又は一般に安全でないプログラムによりのみ行われるアクションであると知られたアクションを起こそうとする場合は、再度、オブジェクトは安全でないとみなされてよい。
【００９０】
これは図３に模式的に示される。図３は、任意のオブジェクトが、例えば、主要なソフトウェア会社、照合の権威、政府機関等の信頼できる相手によって事前に許可されうるという概念も示す。事前許可により、以前は発売されていなかった新たなオブジェクトの供給者は、そのオブジェクトの事前許可を取得でき、またそのオブジェクトの想定されており且つ許容されている振る舞いを詳述するマスクの供給者による供給を随意に含む。
【００９１】
例えば図３を参照すると、一のプロセスが実行される際に、ローカル及び／又はコミュニティデータベースはステップ３１以前として検索される。このプロセスが事前許可されたものでない場合、図２の複数のステップが行われ、このプロセスは、ステップ３２で、実行を許可されるか又はされない。このプロセスがステップ３３で決定されるように事前許可される場合、ステップ３４において、すぐに実行可能とされる。これにより、この方法の動作が終了してよい。しかしながら、好適なバリエーションにおいては、このプロセスは実行中に監視され、監視状態のステップ３５で将来実行されるたびに監視されて、その行動がその事前許可されたマスク３６の範囲内にあるかが決定される。この行動が事前許可されたマスク３６の範囲内にある場合、プロセス実行の継続が許可される。もし、この行動が、事前許可されていないプロセス又は接続を更に扇動すること等により、事前許可されたマスク３６を逸脱する場合、この行動は、警告ステップ３７においてフラグ立てされる。様々なアクションがこの段階でとられうる。プロセスは、単純に実行が許可されないというものでもよい。或いは、この行動は許容できるか否かを確認することのできる初期に事前許可を可能とした信頼できる権威に連絡がとられてもよい。もし許容できる場合、マスクは適宜変更されてよい。もし許容できない場合、そのプロセスは安全でないと印付される。他の多くのアクションは、そのような警告状態を通知する際に行われてよい。
【００９２】
もしプロセスが、ステップ３３において事前許可されていないと見つかったけれども実行を許可されている場合、そのプロセスはそのプロセスの正常な振る舞いを代表するマスク３９を生成するためにステップ３８で監視される。このマスクを代表するデータは、他のコンピュータがこのプロセスを実行する際のスキャンするコミュニティデータベース７に送信されてよい。プロセスを実行する度に又はプロセスの実行中に継続して当該プロセスを監視することにより、そのプロセスの先の振る舞いとは異なる任意の振る舞いを知ることができ、マスクを変更できる。或いはこの振る舞いを用いて、一度安全であるとみなされたプロセスを現在は安全でないとみなすべきであると決定してもよい。
【００９３】
他の実施例では、コンピュータ２は、コミュニティデータベース７に周期的に又は要求に応じて情報を提供し、当該コンピュータ２上にロードされた又は利用可能なソフトウェア製品の全て又は選択された製品を代表する、インストールされたエージェントソフトウェアを備えてよい。特にこれは、局所的にロードされたセキュリティ製品（アンチウイルスソフトウェア、アンチスパイウェア、アンチアドウェア等を含むアンチマルウェアシステムなど）、ファイアウォール製品、どのシグネチャファイルが現在ロードされているかの具体的な設定及び詳細、オペレーティングシステム及び他のソフトウェアのバージョン詳細、並びにどのファイルが動作しているか、または任意の時点での特定のバージョン及びソフトウェア設定等の情報のうちの、一つ又はそれ以上の項目に関する情報であってよい。（当然のことながら、より多くの項目に対して一致しているかを監査及び検査することにより、コンピュータが非常に類似して配置される可能性が増加し、従って、一致検索中における検索漏れ及び誤検出の割合が減少する。）
これらのソフトウェア製品等に関する情報は、コミュニティデータベースに個別に提供されてよい。しかしながら、再度データの記憶量及び送信量の理由から、その情報は、その情報を（例えば、コンピュータ２においてハッシュ又は圧縮関数により）代表するシグネチャ又は鍵として提供されることが好ましい。図４は、ローカルセキュリティ製品、バージョン、シグネチャファイル、ファイアウォール設定等の全ての詳細をどのように用いて、鍵４１を作成するかについて模式的に示す。鍵は、コミュニティデータベース７に送信される。コミュニティデータベース７は、多数の、場合によっては何百万人のユーザのコンピュータ２からこのような情報を供給されているので、対応する情報を、同一又は類似の構成のセキュリティ製品等を有する他のコンピュータ２のために保持することになろう。従って、コミュニティデータベース７は、同一の設定やロードされたシグネチャファイル等を含む同一又は類似の組み合わせのセキュリティ製品を有する他のコンピュータ２を求めてステップ４２で検索できる。
【００９４】
この実施例のコミュニティデータベース７は、エージェントソフトウェアにより、全コンピュータ２により実行された複数のプロセスの詳細を供給されてよく、これにより、一のプロセスが各コンピュータ２により検出されたか否かを知ることになる。
【００９５】
このようにして、コミュニティデータベース７は、例えば、ある時点において存在する設定及びシグネチャファイルを含んだ、オペレーティングシステムと各種セキュリティ製品とのある特異な組み合わせにより、ある特定のコンピュータ２がある特定のマルウェアオブジェクトに感染しやすい又は脆弱なこれらの製品及び設定を有する状態になるかに関する情報を取得するために用いられ得る。
【００９６】
単純な例では、例えばデータベースが、コンピュータが過去に、ダウンロードシグネチャ最新版Ｃを備えたバージョンＡのアンチウイルス製品Ｂを有し、特定の設定Ｅを備えたファイアウォールＤと、またシグネチャ最新版Ｇを備えたアンチスパイウェアソフトウェアＦを有したことを知っているけれども、特定のマルウェアプロセスＰが、その時点でこの組み合わせのプログラムによって検出されなかったことを知らなかった場合、この情報は、そのセキュリティ製品／設定の組み合わせを有することが知られているコンピュータ２に提供することができ、またこれを用いて、コンピュータ２が、その特定のマルウェアプロセスによる攻撃に対して短期的には弱いということを示すことができる。この情報は、ウィンドウ４３をコンピュータ２のスクリーンディスプレイに表示するか、又はユーザに、より詳細にその位置を説明する特定のウェブサイトを案内することによりユーザに提示できる。例えばこれらのセキュリティ製品等の特定の組み合わせは、コンピュータをＳｏｂｉｇウイルスの感染という危険にさらしており、そのウイルスはコンピュータで検出不可能であることをユーザに知らしてよい。ユーザは、具体的な助言（例えば、特定のシグネチャファイルを備えた特定のアンチウイルスプログラムを更新する）、或いはソフトウェアをダウンロード及びインストールしてこの危険性を取り除くように求められてよい。
【００９７】
よって、コミュニティデータベース７は、ある特定の時間にある特定のコンピュータ上の全セキュリティ製品等に関する情報を供給された際に、セキュリティ製品の特定の組み合わせと共にコンピュータ上で生じ且つ局所的には検出されなかった「悪質或いは不良」と印付されたプロセスのイベントを求めて検索される。そしてこの情報は、その特定のコンピュータのユーザに、例えば直接又はユーザにウェブサイトを案内することにより、フィードバックできる。この情報は、事実上リアルタイムに供給でき、よって新たなユーザ又は新たなコンピュータはコンピュータの効果的な安全性を非常に迅速に向上させることが可能となる。
【００９８】
また好適な方法はどのオブジェクトが相互に関連しあうかを探知し、系図の概念を用いてオブジェクトをマルウェアとして印付できる。例えば、何らかの特定のプロセスは、子プロセスを発生させてよく、故にそれらは関連している。第１のオブジェクトに関連する鍵を検査して、第１のオブジェクトを一意的に識別する要素であって且つ受け継がれる或いは第１のオブジェクトの子孫又は他の関連オブジェクトにおける鍵に存在する要素を、識別してよい。この要素は、ここでは「遺伝子（gene）」と称する。この一般的技術は、多くの方法で用いられてよい。
【００９９】
ａ）公知の信頼できる親プロセスは、ローカルコンピュータ上の実行が安全であると自動的に印付される子プロセスを作成する能力を与えられている。この「受け継がれた」特性は、孫プロセス等に伝えられてよい。この安全な状態は、その親の子プロセスに伝えられ、場合によってはこの子プロセスを介して更なる子プロセス（ここでは「子孫（issue）」と称する）、この子孫のシグネチャはすべて自動的にローカルデータベースに良好と記録できる。これにより、コミュニティデータベース７への接続が利用不可能であっても、子孫プロセスは迅速に良好と印付できる。
【０１００】
ｂ）親プロセスの活動を監視することにより、親プロセスがマルウェアであると後にわかった場合に、子孫プロセスの全てを自動的にローカルデータベースに不良或いは悪質と記録することができる。
【０１０１】
ｃ）同様に、この子孫プロセスの活動を監視することにより、もし子孫プロセスのうちの一つがマルウェアであると後にわかった場合に、一以上の親プロセス及び他の子孫プロセスの全て（すなわち、この内容における関連プロセスの全て）を自動的にローカルデータベースに不良或いは悪質と記録することができる。
【０１０２】
ｄ）親によって行われた、一以上の子に対する能力を含めた一以上の子に対するシグネチャの作成は、親の振る舞い及び決定に応じて、良好か不良かを自動的に印付できる。いくつかの実施例では、その製品は、子プロセスの誕生を「観察」又は監視することができ、到着時に自動的にシグネチャを作成することができる。これは、他の不良プログラムによる一の不良プログラムの作成を監視する能力をもたらす。従って、一のプログラムの家系を監視することができるので、例えば、祖父が一のプログラム（父）を作成し、これが順に一の不良プログラム（息子）を作成する場合には、自動的に父は不良プログラムであると決定できる。
【０１０３】
ｅ）子が親として既に不良な子孫を生成したので、更なる誕生に対するシグネチャの自動的な作成をトリガーするという子の受け継いだ能力を、自動的に喪失させる特徴が含まれてよい。ルールとして、もしファイルが一の不良な子孫を有する場合には、受け継いだ能力は自動的に削除できることが好ましい。
【０１０４】
ｆ）クローン又は一卵性双生児のオブジェクト（例えば、コミュニティ内の他のシステム上で実行している同一プロセス）を観察し、それらの子孫のパターンを比較し、ある特定のプロセスをマルウェアとして取り扱うか否かに関する決定を行う能力。
【０１０５】
これらの特徴ａ）からｆ）のうちの一以上を用いて、しばしば非実践なインターネットへの永久接続に必ずしも１００％依存することなく効率的に用いることができる、セキュリティ製品を製造する問題に対する解決策を提供することができる。この例は、ワールドワイドウェブ中に自動的に製品最新版を展開可能にしたいと望む生産業者によってますます用いられているWindows Update及び他のプロセスである。
【０１０６】
伝統的なソフトウェアに比べての、これらのタイプの特徴において考えられる利益は、以下の通りである。アンチウイルスソフトウェアは、公知の不良シグネチャのキャッシュを有する傾向がある。問題であるのは、これを常に最新の状態にしておくことである。誰かが新しいコンピュータを購入するという簡単な例をあげてみよう。コンピュータには、シグネチャキャッシュとともに予めロードされたアンチウイルス製品がついてくる。ＰＣが構築され、店頭に出荷され、ユーザによって購入される間に、数日又は数週間経過するであろう。ユーザはＰＣを起動し、ＰＣが構築された後に生成された任意の新たなウイルス又はマルウェアにさらす。完全な保護のためには、ユーザがインターネットに接続し、最新版をダウンロードすることが求められる。これは、インターネット上のユーザによる他の活動の先に起こることを保障できない（保障することは物理的にほぼ不可能である）。公知の良好プロセスのローカルキャッシュとともに、本発明の実施例と同様に、コンピュータ製造者によって予めロードされた全ての良好（欠点のない（clean））なソフトウェアに対する予め生成されたシグネチャのキャッシュを予めロードしたコンピュータ／ターミナルを出荷できる。この場合、ユーザは、任意の新たな又は最新のプログラムがすぐに検出及び照合されることを知りつつ、インターネットに接続できる。また、いかなる自動更新されるソフトウエアも、シグネチャが強制的に、その子供や更に遠縁の子孫（即ち、孫、ひ孫など）のために自動的に構築されるように機能し得る。
【０１０７】
ここで、「Virus Bulletin Conference October 2005」に発表されたマイクロソフト会社のAdrian Stepanによる「Defeating Polymorphism: Beyond Emulation」と、2006年４月５日に出願されたUS 60/789156とを参照する。これらの全内容は、参照文献として組み込まれる。その論文及び特許出願では、ファイルを解析して当該ファイルが実際にマルウェアであるか否かを決定することができるように、ファイルを復号する方法が開示されている。US 60/789156は特に、ホストコンピュータを用いて実行可能コンピュータファイルを解凍／復号する方法であって、前記実行可能コンピュータファイルを複数の基本コードブロックに分割する工程と、前記基本コードブロックのうちの少なくともいくつかを前記ホストコンピュータによって実行可能である翻訳基本コードブロックに翻訳する工程と、前記基本コードブロックのうちの少なくともいくつかを前記ホストコンピュータのメモリにリンクさせる工程と、前記ホストコンピュータ上の前記基本コードブロックのうちの少なくともいくつかを、前記実行可能コンピュータファイルが解凍又は復号できるように実行する工程とを備え、前記解凍又は復号された実行可能コンピュータファイルを解析して、前記実行可能コンピュータファイルがマルウェアとして分類される又はされるべきであるかについて決定できる解凍／復号方法を開示する。また、US 60/789156は、実行可能コンピュータファイルを解凍／復号する方法であって、前記実行可能コンピュータファイルを複数の基本コードブロックに分割する工程と、前記複数の基本ブロックのうちの少なくともいくつかに対して、各基本ブロックの読取及びキャッシュされた仮想メモリアドレスに対応する読取及びキャッシュされたリアルアドレスを記憶するキャッシュメモリの少なくとも一の読取ページを作成し、且つ前記複数の基本ブロックのうちの少なくともいくつかに対して、各基本ブロックの書込み及びキャッシュされた仮想メモリアドレスに対応する書込み及びキャッシュされたリアルアドレスを記憶するキャッシュメモリの少なくとも一の書込みページを作成する工程と、前記基本コードブロックのうちの少なくともいくつかを前記実行可能コンピュータファイルが解凍又は復号できるように実行することにより前記実行可能ファイルをエミュレートする工程とを備え、前記解凍又は復号された実行可能コンピュータファイルを解析して、前記実行可能コンピュータファイルがマルウェアとして分類される又はされるべきであるかについて決定でき、一の基本ブロックの実行中に、前記キャッシュメモリの読取ページおよび書込みページのうちの少なくとも一つは、前記基本ブロックにアクセスしている前記仮想アドレスに対応するキャッシュされたリアルアドレスの検査を受ける、解凍／復号方法を開示する。
【０１０８】
これらの文献に開示された技術は、詳細なファイルの解析が望まれる際に本内容において用いることができる。しかしながら、より一般的には、これらの文献で開示された技術、特にUS 60/789156に開示された改良技術を用いて、コンピュータ上で実行される際のファイルの活動に関する情報を提供できる。なぜなら、これらの文献で開示された技術によりファイルの実行がエミュレートされ、これによりファイルの活動を解釈できるからである。
【０１０９】
ユーザがオフライン時にソフトウェアのインストールを望む際に、更なる状況が生じる。好適な実施例では、ユーザが新たなソフトウェアをオフラインでインストールしようとする際に、ユーザのコンピュータ２で実行中のエージェントソフトウェアは、インストールの実行自体がユーザによって「認証」されるようにインストールプロセスを進めるために、ユーザに認証を促す。このユーザによる認証は、「起源（Genesis）」イベントとして取り扱われる。以下そのように称する。しかしながら、インストール装置上の他の既存プログラムとやりとりするソフトウェアのインストール時に、共通に用いられるプロセスがある。例えば、マイクロソフトのMSIEXECである。
【０１１０】
起源手法は、ユーザのコンピュータ２のユーザ認証の結果として、シグネチャを生成するプロセスを含む。これらのシグネチャは、ユーザのコンピュータ２のローカルデータベースに記憶される。一の実施例では、これらの局所的に記憶されたシグネチャは、インストールを進めるように、必要に応じてインストールプロセス中にエージェントソフトウェアによって参照される。或いは、エージェントソフトウェアによって行われたセキュリティチェックをインストールプロセス中にＯＦＦすることができる。このＯＦＦは、制限された期間にのみ行われ、例えば大抵のソフトウェアをインストールするには十分である数分間等であり、このＯＦＦ時間は、随意にユーザの設定で変更可能である。
【０１１１】
いずれにしても、一旦インストールが完了し、ユーザのコンピュータ２がコミュニティデータベース７に接続されると、ユーザのコンピュータ２上のエージェントソフトウェアは、インストールに関連するシグネチャをユーザのローカルデータベースからコミュニティデータベース７にアップロードできる。そして、他のユーザのコンピュータ２からの対応データとともに、コミュニティデータベース７を用いて、この特定のソフトウェアのインストールが両性であるという迅速な決定を行うことができる。
【０１１２】
この実施例の変形として、ユーザのコンピュータ２がある時点でオンラインである場合に、ユーザのコンピュータ２上のエージェントソフトウェアは、いわゆる「信頼できるインストーラ」又は「ライセンスインストーラ」のシグネチャをダウンロードしてよい。これにより、「ライセンスインストーラ」及び当該ライセンスインストーラの任意の子プロセスが、起源イベントが「現在」である間、例えばユーザからの認証の後数分の間に、実行の許可を受ける方法を動作できる。ライセンスインストーラのシグネチャは、コミュニティデータベース７に付与されるにつれて及び付与される際に、オンラインでリモートコンピュータ２に常にダウンロードされることが好ましい。
【０１１３】
この方法に対して、起源イベントの最中にメディアの変化が起きた場合にはライセンスインストーラを実行させることを防止するような、更なる改良があってよい。しかしながら、マルウェアであるかもしれない任意の未知のプロセスは、さらに検出及び遮断されてよい。少数のライセンスインストーラを備えることにより、最小データが必要とされるので、特にウイルスシグネチャファイルのダウンロードと比較すると、ダウンロードが容易になる。別の例として、例えば「Windows Update」等の非常に信頼されるインストーラを採用して、その非常に信頼されるインストーラによって作成された新しいプロセスの全てを、迅速に安全であると特徴づけてもよい。
【０１１４】
リモートコンピュータ２をコミュニティデータベース７に接続させる際に起きるインストールの場合、別の選択肢として、インストールをしようとしているソフトウェアがコミュニティデータベース７に知られていない場合に、システムがそのインストールを遮断又はユーザに警告することがあげられる。例えば、「ソフトウェアをインストールしようとしています。このソフトウェアは「コミュニティ」に知られていません。次に進みますか？」という程度のメッセージが、ユーザのコンピュータ２に表示されてよい。
【０１１５】
本発明の実施例は、特に説明した例を参照して記述した。しかし当然のことながら、上述の例は、本発明の範囲内で変形及び変更されてよい。
【図面の簡単な説明】
【０１１６】
【図１】本発明の実施例が実行される装置を模式的に示す図である。
【図２】本発明の実施例に係る方法における一例の動作を模式的に示すフローチャートである。
【図３】本発明の実施例に係る方法における他の例の動作を模式的に示すフローチャートである。
【図４】情報取得段階を模式的に示すフローチャートである。
【符号の説明】
【０１１７】
１  インターネット
２  リモートコンピュータ
３  ベースコンピュータ
４  オブジェクト
５  ライン
６  ライン
７  コミュニティデータベース
【図１】
2009500706.tif 000004
【図２】
2009500706.tif 000005
【図３】
2009500706.tif 000006
【図４】
2009500706.tif 000007
【国際調査報告】
2009500706.tif 000008
2009500706.tif 000009
2009500706.tif 000010
2009500706.tif 000011
2009500706.tif 000012