(57)【要約】【課題】受信したファイルがマルウェアではないことを効率的に判別するためのシステムおよび方法を提供すること。【解決手段】動作中にコンピュータ装置においてファイルが受信される場合、ファイルがユーザ変更可能、または表面的データ領域（つまり本質的に通常マルウェアを備えるかまたは埋め込まないファイルの領域）を含んでいるかどうかに関して評価が行われる。ファイルが表面的データ領域を含んでいる場合、これらの表面的データ領域は除去され、受信されたファイルの残りの部分に基づいてファイルシグニチャが生成される。次にファイルは既知のマルウェアのリストと比較され、ファイルがマルウェアであるかどうかを判別することができる。代替として、ファイルは既知の信頼できるファイルのリストと比較され、ファイルが信頼に足るかどうか判別することができる。【選択図】図６
2006127497.tif 000002
【特許請求の範囲】
【請求項１】
受信したファイルのマルウェアを識別するためのコンピュータシステムであって、
プロセッサと、
ファイルを受信するための通信接続と、
メモリとを備え、
前記コンピュータシステムは、前記通信接続においてファイルを受信すると、
前記受信したファイルがユーザ変更可能ファイルであるかどうか判別し、そうである場合、
より永続性のある前記受信ファイルの部分を選択し、
より永続性のある前記受信ファイルの選択された部分に基づいて、ファイルシグニチャを生成し、
前記生成されたファイルシグニチャに基づいて前記受信したファイルがマルウェアであるかどうか判別するように構成されることを特徴とするコンピュータシステム。
【請求項２】
前記コンピュータシステムは、前記生成されたファイルシグニチャを信頼できるファイルのレコードの集合を備えるホワイトリストデータストア内のファイルシグニチャと比較することにより、前記生成されたファイルシグニチャに基づいて前記受信したファイルがマルウェアであるかどうか判別し、各レコードは信頼できるファイルのファイルシグニチャを含むことを特徴とする請求項２に記載のコンピュータシステム。
【請求項３】
ホワイトリストデータストアをさらに備えることを特徴とする請求項２に記載のコンピュータシステム。
【請求項４】
前記ホワイトリストデータストアは前記コンピュータシステムにリモートであり、前記コンピュータシステムは前記通信接続を介して前記ホワイトリストデータストアにアクセスすることを特徴とする請求項２に記載のコンピュータシステム。
【請求項５】
前記コンピュータシステムは、前記生成されたファイルシグニチャを既知のマルウェアのファイルシグニチャとさらに比較することにより、前記生成されたファイルシグニチャに基づいて前記受信したファイルがマルウェアであるかどうか判別することを特徴とする請求項２に記載のコンピュータシステム。
【請求項６】
前記コンピュータシステムは、前記生成されたファイルシグニチャを既知のマルウェアのファイルシグニチャと比較することにより、前記生成されたファイルシグニチャに基づいて前記受信したファイルがマルウェアであるかどうか判別することを特徴とする請求項１に記載のコンピュータシステム。
【請求項７】
受信したファイルがマルウェアであるかどうか判別するために、ファイルの受信に応じてコンピュータ装置上で実行される方法であって、
前記受信したファイルが表面的データ領域を含むかどうかを判別するステップと、そうである場合、
表面的データ領域である前記受信ファイルの部分を除去するステップと、
除去されなかった前記受信ファイルの残りの部分に基づいてファイルシグニチャを生成するステップと、
前記生成されたファイルシグニチャに基づいて前記受信したファイルがマルウェアであるかどうか判別するステップとを備えることを特徴とする方法。
【請求項８】
前記生成されたファイルシグニチャに基づいて前記受信したファイルがマルウェアであるかどうか判別するステップは、前記生成されたファイルシグニチャを信頼できるファイルのレコードの集合を備えるホワイトリストデータストア内のファイルシグニチャと比較するステップを備え、各レコードは信頼できるファイルのファイルシグニチャを含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記ホワイトリストデータストアは、コンピュータ装置に常駐することを特徴とする請求項８に記載の方法。
【請求項１０】
前記ホワイトリストデータストアは、コンピュータ装置にリモートであることを特徴とする請求項８に記載の方法。
【請求項１１】
前記生成されたファイルシグニチャに基づいて前記受信したファイルがマルウェアであるかどうか判別するステップは、前記生成されたファイルシグニチャを既知のマルウェアのファイルシグニチャと比較するステップをさらに備えることを特徴とする請求項８に記載の方法。
【請求項１２】
前記生成されたファイルシグニチャに基づいて前記受信したファイルがマルウェアであるかどうか判別するステップは、前記生成されたファイルシグニチャを既知のマルウェアのファイルシグニチャと比較するステップを備えることを特徴とする請求項７に記載の方法。
【請求項１３】
外部ソースからファイルを受信できるコンピュータ装置上で実行された場合に、受信したファイルがマルウェアであるかどうかを判別する方法を実行するコンピュータ実行可能命令を備えるコンピュータ可読媒体であって、前記方法は、
前記受信したファイルが表面的データ領域を含むかどうかを判別するステップと、そうである場合、
表面的データ領域である前記受信ファイルの部分を除去するステップと、
除去されなかった前記受信ファイルの残りの部分に基づいてファイルシグニチャを生成するステップと、
前記生成されたファイルシグニチャに基づいて前記受信したファイルがマルウェアであるかどうか判別するステップとを備えることを特徴とするコンピュータ可読媒体。
【請求項１４】
前記生成されたファイルシグニチャに基づいて前記受信したファイルがマルウェアであるかどうか判別するステップは、前記生成されたファイルシグニチャを信頼できるファイルのレコードの集合を備えるホワイトリストデータストア内のファイルシグニチャと比較するステップを備え、各レコードは信頼できるファイルのファイルシグニチャを含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記ホワイトリストデータストアは、コンピュータ装置に常駐することを特徴とする請求項１４に記載の方法。
【請求項１６】
前記ホワイトリストデータストアは、コンピュータ装置にリモートであることを特徴とする請求項１４に記載の方法。
【請求項１７】
前記生成されたファイルシグニチャに基づいて前記受信したファイルがマルウェアであるかどうか判別するステップは、前記生成されたファイルシグニチャを既知のマルウェアのファイルシグニチャと比較するステップをさらに備えることを特徴とする請求項１４に記載の方法。
【請求項１８】
前記生成されたファイルシグニチャに基づいて前記受信したファイルがマルウェアであるかどうか判別するステップは、前記生成されたファイルシグニチャを既知のマルウェアのファイルシグニチャと比較するステップを備えることを特徴とする請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータソフトウェアおよびコンピュータセキュリティに関し、具体的には、本発明は、コンピュータにおいて受信されるユーザ変更可能ファイルの効率的なセキュリティホワイトリスティング（ｓｅｃｕｒｉｔｙ  ｗｈｉｔｅ  ｌｉｓｔｉｎｇ）に関する。
【背景技術】
【０００２】
コンピュータ、特にネットワークに接続されているコンピュータを操作することの悲しい現実は、コンピュータが絶えず攻撃の危険にさらされていることである。これらの攻撃は、コンピュータウイルス、ワーム、コンピュータ脆弱性攻撃（すなわち正規のコンピュータサービスを不正使用または悪用する）、アドウェアまたはスパイウェアなどを始めとして、様々な形態で登場するが、これらに限定されない。これらの様々なコンピュータ攻撃それぞれの動作のメカニズムは一般に、極めて明確であるが、これらはすべて、何らかの無許可で、通常は歓迎されず、多くの場合破壊的なコンピュータ上の活動を実行するように設計されている。本発明の目的上、これ以降、これらの攻撃を一般にマルウェアと呼ぶ。
【０００３】
マルウェアは、一般にコンピュータ、特にネットワークコンピュータにとっての現実であり、マルウェアがコンピュータ上でその悪質な意図を実現するのを防ぐために様々なツールが考案され開発されてきた。これらのツールには、ファイアウォール、プロキシ、および脆弱性のあるアプリケーションのセキュリティ設定が含まれる。しかし、マルウェアからコンピュータを保護するために最も一般に使用されるツールは、ウイルス対策ソフトウェアである。
【０００４】
当業者であれば、ほとんどのウイルス対策ソフトウェアはパターン認識サービスとして動作することを理解するであろう。特に、ファイルがコンピュータによって受信された場合、ファイルが実行可能なワープロ文書、画像などのいずれであるかには関わりなく、そのコンピュータを保護しているウイルス対策ソフトウェアはファイルを「分析」してそれがマルウェアとして知られているかどうかを判断する。ウイルス対策ソフトウェアは、シグニチャと呼ばれる、ファイルのハッシュ値を生成することにより、ファイルを「分析」する。このシグニチャは、別のファイルが同じシグニチャを持つ可能性がまったくないように生成され、そのためそのファイルに固有であると見なされる。いったんシグニチャが生成されると、シグニチャは、いわゆるシグニチャファイル内の他の既知のマルウェアのシグニチャと照合される。したがって、ファイルの生成されたシグニチャが、シグニチャファイル内の既知のマルウェアのシグニチャと一致した場合、ウイルス対策ソフトウェアはそのファイルがマルウェアであると見破り、適切な処置をとる。
【０００５】
残念なことに、シグニチャ認識では、コンピュータをマルウェアから保護するために、マルウェアがあらかじめ既知である（そして識別されている）ことが必要になる。したがって、ウイルス対策ソフトウェアはタイムゼロの防御ではない。つまり、マルウェアがネットワーク上にリリースされた瞬間に、すなわちタイムゼロでコンピュータをそのマルウェアから保護するわけではない。その代わり、新しい未知のマルウェアがリリースされると、ウイルス対策ソフトウェアが新しいマルウェアからコンピュータを保護できるようになるまで、脆弱性ウィンドウが存続する。
【０００６】
図１は、現在のウイルス対策ソフトウェアのシグニチャ認識に関連付けられている脆弱性ウィンドウを示す模範的なタイムライン１００のブロック図である。図１に示されているように、イベント１０２で示されるある時点において、悪意ある人物がインターネットなどのネットワーク上に新しい未知のマルウェアをリリースする。明らかに、新しい未知のマルウェアがリリースされると、ネットワークに接続されているコンピュータは危険にさらされる、つまり脆弱になる。そのため、脆弱性ウィンドウが開かれる。
【０００７】
ネットワーク上で新しいマルウェアを検出するための実際の時間は、新しいマルウェアの有毒性を始めとする数多くの要因によって異なるが、使用可能な統計によれば、一般にウイルス対策ソフトウェアコミュニティ（つまり、ウイルス対策ソフトウェアのプロバイダ）が新しいマルウェアを検出または認識するまでに４時間から３日間を要する。いったん検出されると、イベント１０４に示されるように、ウイルス対策コミュニティはマルウェアの識別を開始することができる。新しいマルウェアのシグニチャを生成する作業に加えて、マルウェアを識別する作業は通常さらに、マルウェアの究極的な影響を調査／判断する作業、その攻撃の方法を判断する作業、攻撃にさらされるシステムの弱点を識別する作業、およびウイルス感染したコンピュータからマルウェアを削除する計画を考案する作業も伴っている。
【０００８】
マルウェアの識別には通常（少なくともシグニチャ識別に）約４時間要するが、その後、イベント１０６に示すように、ウイルス対策プロバイダはダウンロードサービスで更新済みシグニチャファイルを公開する。残念なことに、コンピュータは（自動的またはコンピュータユーザの命令どおりに）そのシグニチャファイルを直ちには更新しない。イベント１０８に示すように、通常、ほとんどのコンピュータがそのシグニチャファイルを更新するのに４時間から１週間を要する。もちろん、更新済みシグニチャファイルがコンピュータにダウンロードされた後にようやく、ウイルス対策ソフトウェアが新しいマルウェアからコンピュータを防御することができるようになり、その結果脆弱性ウィンドウ１１０が閉じられる。実際には、コンピュータ所有者の休暇中など、個々の状況によっては、最新のシグニチャファイルでコンピュータを更新する作業は１週間よりも大幅に長くなるおそれもある。
【０００９】
以上のように、新しい未知のマルウェアには、ウイルス対策ソフトウェアに妨げられることなくネットワークコミュニティに悪意ある大破壊を果たすのに、数時間から数週間の余裕がある。ウイルス対策ソフトウェアは、タイムゼロの防御ではない。マルウェアがいずれか１つのコンピュータを攻撃しようと試みる前に、ほとんどのコンピュータが保護されるということは、好ましい状況である。残念なことに、その一部が脆弱性ウィンドウの期間中に攻撃にさらされて、マルウェアにより感染してしまう。大多数にとっては、特にコンピュータに依存するところが大きい人々にとっては、この脆弱性ウィンドウはまったく受け入れがたい。
【００１０】
当業者であれば、シグニチャが固有にファイルを識別するようにファイルのシグニチャを生成することが重要であることを容易に理解されよう。高度なアルゴリズムおよび数学的手法は、確実にファイルを識別し、しかも同時に他のファイルを一切識別しないシグニチャを計算処理により生成することに関連を持っている。残念なことに、そのように固有にシグニチャを生成するためには、使用されるアルゴリズムはファイルに極めて敏感である。ファイルに加えられた何らかの変更により、シグニチャ生成アルゴリズムはオリジナルファイルとは異なるシグニチャを生成してしまう。つまり、既知のマルウェアに単純な表面的な変更を加えると、シグニチャ生成アルゴリズムはまったく異なるシグニチャを返すことになる。したがって、既知のマルウェア（つまり、シグニチャファイル内のそのシグニチャによって識別されるマルウェア）への表面的な変更は通常、少なくとも変更されたマルウェアが認識されて、そのシグニチャが生成され、シグニチャファイルに格納されるまでの間、変更されたマルウェアが検出を逃れるのに十分である。
【００１１】
一般にマルウェアの問題は、マルウェアがユーザ変更可能ファイルに埋め込まれることが多いということにより複雑さを増している。例えば、マルウェアは、ワープロ文書内に埋め込まれた実行可能スクリプトに隠れて配布されることがある。そのような場合、マルウェア部分（つまり埋め込みスクリプト）は、文書の編集可能部分とはまったく無関係である。したがって、ワープロ文書のデータ領域に小さなまたは大きな変更を行うことにより、全マルウェアファイルがそのオリジナルとは異なるシグニチャを生じさせ、しかも埋め込まれた悪意のスクリプトは何の影響も受けない。これらのユーザ変更可能ファイルには、ワープロ文書、スプレッドシート、画像、ＨＴＭＬ文書などが含まれるが、これらに限定されない。さらに、マルウェアの作成者は、ウイルス対策ソフトウェアの検出の先を越すために、自己修正マルウェアを作成し始めた。それは、ウイルス対策ソフトウェアに検出されないように、ファイルの一部をランダムに修正する文書である。そのため多くの場合、明らかに、リリースされるマルウェアに先を越されないようにすることは極めて困難である。阻止するためにマルウェアを熟知しなければならない場合はなおさらである。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
前述の問題を踏まえると、必要とされているのは、マルウェアが含まれないことが既知である（つまり信頼できる）ファイルをウイルス対策ソフトウェアまたは他のセキュリティ手段を自由に通過可能にするか、あるいはホワイトリスティング（ｗｈｉｔｅ  ｌｉｓｔｉｎｇ）して、それ以外のファイルはすべて信頼せず、これにより通常ウイルス対策ソフトウェアに関連する脆弱性ウィンドウをコンピュータが閉じることができるようにするシステムおよび方法である。さらに必要とされているのは、ファイル全体ではなくシグニチャ情報に基づいてホワイトリストされたユーザ変更可能ファイルを識別できる機能である。本発明は、従来技術において見い出された様々な問題に対処する。
【課題を解決するための手段】
【００１３】
本発明の態様によれば、受信したファイルがマルウェアであるかどうかを識別するためのコンピュータシステムが提示される。コンピュータシステムは、プロセッサ、通信接続、およびメモリを含んでいる。コンピュータシステムは、通信接続においてファイルを受信すると、受信したファイルがユーザ変更可能ファイルであるかどうか判別が行われる。ユーザ変更可能ファイルである場合、より永続性のあるユーザ変更可能ファイルの部分が選択される。より永続性のある受信ファイルの選択した部分に基づいて、ファイルシグニチャが生成される。次に、生成されたファイルシグニチャに基づいて、受信したファイルがマルウェアであるかどうか判別が行われる。
【００１４】
本発明のさらなる態様によれば、受信したファイルがマルウェアであるかどうかを判別するために、外部ソースからファイルを受信できるコンピュータ装置上に実装される方法が提示される。ファイルを受信すると、ファイルが表面的データ領域を含んでいるかどうかについて判別が行われる。受信したファイルが表面的データ領域を含んでいる場合、受信ファイルのこれらの表面的データ領域は除去される。表面的データ領域ではない受信ファイルの残りの部分に基づいて、ファイルシグニチャが生成される。次に、生成されたファイルシグニチャに基づいて、受信したファイルがマルウェアであるかどうかについて判別が行われる。
【００１５】
本発明のさらなる態様によれば、外部ソースからファイルを受信できるコンピュータ装置上で実行された場合に受信したファイルがマルウェアであるかどうかを判別する方法を実行するコンピュータ実行可能命令を備えるコンピュータ可読媒体が提示される。ファイルを受信すると、ファイルが表面的データ領域を含んでいるかどうかについて判別が行われる。受信したファイルが表面的データ領域を含んでいる場合、受信ファイルのこれらの表面的データ領域は除去される。表面的データ領域ではない受信ファイルの残りの部分に基づいて、ファイルシグニチャが生成される。次に、生成されたファイルシグニチャに基づいて、受信したファイルがマルウェアであるかどうかについて判別が行われる。
【００１６】
本発明の前述の態様および多くの付随する利点は、添付の図と併せて下記の詳細な説明を参照すれば、さらに分かりやすく理解も深まるであろう。
【発明を実施するための最良の形態】
【００１７】
本発明の態様によれば、ユーザ変更可能文書全体に基づいてマルウェアのシグニチャを生成するのではなく、文書の一部のみがシグニチャ生成の基礎として使用される。具体的には、マルウェアシグニチャは、特定の、ユーザ変更可能ファイルのより永続的な（ｐａｒｍａｎｅｎｔ）部分に基づいて生成される。マルウェアのシグニチャの基礎を、ユーザ変更可能文書のより永続的な傾向のある部分に置くことにより、マルウェア作成者および自己修飾マルウェアが簡単な表面的変更によって検出を逃れることのできる能力は、たとえ完全に除去されないとしても、大幅に低下させることができる。
【００１８】
ユーザ変更可能文書に数多くの要素が含まれており、中には他の要素よりもいっそう永続的である傾向のある要素もあることを、当業者であれば理解されよう。一般に、本発明がそのシグニチャの基にしているのは、文書のこうしたより永続的な要素／部分である。図２は、模範的なユーザ変更可能文書２００を示し、ユーザ変更可能文書の様々な要素について考察するためのブロック図である。
【００１９】
図２に示すように、ユーザ変更可能文書２００は、マクロ２０２、テンプレート２０４などの様々な要素／部分、Ａｃｔｉｖｅ  ＸおよびＣＯＭオブジェクトのような埋め込みオブジェクト２０６、応用スタイル２０８などを含んでいる。これらの要素はそれぞれ、より永続的になる傾向がある。つまり、ユーザがユーザ変更可能文書を編集するたびに変更されることはない。さらに、これらはマルウェアの「コア」を含む文書要素のタイプである。例えば、マルウェアの作成者は、その悪意ある設計をマクロまたはＡｃｔｉｖｅ  Ｘコントロールの形態で具体化する。これらは、ワープロ文書、スプレッドシート、画像などのユーザ変更可能ファイルにおける場所である。ユーザデータ領域２１０および２１２のようなユーザデータ領域にある情報は通常、それ自体がマルウェアにほとんどまたはまったく影響を及ぼさないが、多くの場合、無防備なユーザのコンピュータでマルウェアをアクティブ化および／またはリリースするよう巧みにユーザを導く情報を含む。したがって、すでに述べたように、現在のシグニチャベースの検出システムの特性により、文書に表面的な変更を加えることでマルウェアの変種が容易に生成される。
【００２０】
本発明の説明では「ユーザ変更可能」ファイルという用語を使用することがあるが、これは説明を目的として使用されているにすぎず、本発明に適用可能なファイルのただ１つのタイプを表している。前述のように、アプリケーションとして配布されたマルウェアは非常に多くの場合、変更がマルウェアの機能に影響を与えないデータ領域を含んでいる。これらのデータ領域は、これ以降、表面的データ領域と呼ぶ。ユーザ変更可能ファイルは、表面的データ領域、つまりユーザ（または埋め込みマルウェア）が埋め込みマルウェアに影響を与えることなく変更できる領域を含んでいる。したがって、「ユーザ変更可能」ファイルまたは表面的データ領域を持つファイルは、変更がマルウェアの機能に影響を与えるデータ領域（一般にファイルのより永続的な部分と呼ぶ）、および変更がマルウェアに機能的な影響をまったく与えない（一般にユーザ変更可能データ領域または表面的データ領域と呼ぶ）を含むすべてのファイルを含んでいることを理解されたい。
【００２１】
図３は、模範的なユーザ変更可能文書２００を示し、さらに文書のシグニチャを生成する際に文書の一部しか使用されないことを示すブロック図である。前述のように、本発明によれば、ファイルのシグニチャを生成する場合、マクロ２０２、テンプレート２０４、スタイル２０８、埋め込みオブジェクト２０６などの（ただしこれらに限定されない）ユーザ変更可能文書のより永続的な部分が識別されて使用される。逆に、ユーザデータ領域２１０および２１２のようなユーザデータ部分は、シグニチャ生成プロセスから除去される。
【００２２】
前述のように、マルウェアシグニチャがユーザ変更可能ファイルのより永続的な側面に基づいている場合であっても、マルウェアの検出が常にタイムゼロの防御（つまりマルウェアファイルがリリースされると即座に防御）をもたらすわけではない。本発明の態様によれば、タイムゼロの防御をコンピュータまたはネットワークに提供するために、マルウェアではないと信頼できるファイルがいわゆるホワイトリストで識別される。ファイルがコンピュータに到達し、しかもそれがコンピュータで利用できる前に、そのファイルのシグニチャが生成されて、信頼できることが知られているファイルのホワイトリストと照合される。本発明のさらなる態様によれば、ファイルのシグニチャは、そのファイルがユーザ変更可能ファイルである場合、前述のようにより永続的な部分に基づく。このようにして、ユーザ変更可能ファイルは、編集され、ファイルの配信が信頼に足るという確信を持って、コンピュータ間で容易に配布される。逆に、ホワイトリストのシグニチャと合うものを見つけられないファイルは信用できないと見なされ、コンピュータおよび／またはネットワークを保護するためにセキュリティポリシーを実施することができる。このようにして、タイムゼロの防御が実現される。
【００２３】
本発明によれば、ホワイトリストは、コンピュータ上、信頼できるネットワークロケーション上、またはその両方にローカルに格納することができる。本発明は、１つの構成または配置に限定されない。さらに、一実施形態によれば、コンピュータは、効率および冗長性を含む様々な理由から複数のホワイトリストに依存することができる。図４は、複数のコンピュータに利用可能なホワイトリストの１つの模範的なネットワーク構成４００を示す絵画図である。図４に示されるように、模範的なネットワーク構成４００は、コンピュータ４０２〜４０６のようなコンピュータから要求を受け取り、受信したファイルがホワイトリストされているかどうかを識別するホワイトリストサービス４０８を含んでいる。ホワイトリストサービス４０８は、インターネット４１２に接続されたＷｅｂサーバであってもよいが、本発明はそのように限定されない。
【００２４】
ホワイトリストサービス４０８は厳密にホワイトリスティングサービス、つまりホワイトリスト上のファイルに関する情報を提供するサービスであってもよいが、代替として、ホワイトリストサービスはホワイトリストされたファイルおよびブラックリストされたファイル（つまり既知のマルウェア）の両方に関する情報を提供することもできる。
【００２５】
ホワイトリストサービス４０８は、ホワイトリストデータストア４１０に接続されて示されている。ホワイトリストデータストアは、信頼に足るファイルとして識別されたファイルを含んでいる。一実施形態において、ホワイトリストデータストア４１０は、ホワイトリストされたファイルのデータベースである。この図ではホワイトリストサービス４０８およびホワイトリストデータストア４１２を別個のエンティティとして示しているが、これは図示および考察のために論理的に区別したものである。実際の実施形態においては、ホワイトリストデータストアおよびホワイトリストサービスは、単一のエンティティとして、またはコンピュータ上で提供されるサービスとして合体させることができる。
【００２６】
一実施形態において、ホワイトリストデータストアは、ホワイトリストされたファイルのシグニチャのみを含んでいるが、本発明はそのように限定されない。非常に多くの場合、いくつかのファイルが備える信頼のレベルは、ファイルごとに異なっている。例えば、ユーザによって作成されたことが分かっているファイルは、同ユーザによって高い信頼レベルを備えている可能性が高くなる。同様に、信頼できる団体によって作成され、その確実性を証明するデジタル署名を伴うファイルは、最高レベルの信頼を備えることができる。代替として、数日間いわゆる「サンドボックス」に隔離され、マルウェアを所有する兆候を示さなかったファイルは「信頼できる」が、おそらくは信頼できるソースによってデジタル署名されたものに比べて信頼度は劣るであろう。さらにもう１つの代替として、特定のファイルは、それが信頼できることを示すユーザからの肯定的なフィードバックを受け取ることができる。そのようなファイルは、その信頼性に関する多くのフィードバックに基づいた信頼レベルを受け取ることができ、スパイウェアおよびアドウェアの識別に関しては特に有用である。したがって、本発明の態様により、ホワイトリストデータストアは、「信頼できる」ファイルの単なるファイルシグニチャだけでなくそれ以上のものを含んでいる。
【００２７】
本発明の以上の考察はコンピュータに関連して行われてきたが、本発明が、プロセッサ、通信接続、および情報を格納するメモリなどを備えるコンピュータを含み、ファイルのシグニチャ生成を実行することのできるほとんどすべてのコンピュータ装置で実装できることを理解されたい。例えば、適切なコンピュータ装置は、パーソナルコンピュータ、ノートブックまたはタブレットコンピュータ、携帯情報端末（ＰＤＡ）、ミニおよびメインフレームコンピュータ、（携帯電話／ＰＤＡの組合せのような）ハイブリッドコンピュータ装置などであってもよい。
【００２８】
図５は、ホワイトリストデータストア４１０に存在する模範的なフィールドを示すブロック図である。一実施形態において、ホワイトリストデータストア４１０は、データストアのホワイトリストされたファイルごとにレコードを格納し、各レコードは情報を格納するための１つまたは複数のフィールドを含んでいる。図５に示すように、ホワイトリストデータストア４１０内の各レコードはシグニチャフィールド５０２を含んでいる。シグニチャフィールドは、ファイルのより永続的な部分にのみ基づいてファイルシグニチャが生成されたかどうかには関わりなく、ファイルシグニチャを格納する。前述のように、多くの場合、特定のファイルが備えている信頼のレベルを識別することは有用である。したがって、模範的なレコードはさらに、信頼フィールド５０４も含んでいる。図示されているように、信頼フィールドは１から１０までの数値を含み、１０は最高の信頼を、１は最低の信頼を表している。ただし、この順位付けは例示のためにすぎず、本発明を限定するものとして解釈すべきではないことを理解されたい。さらにもう１つの代替として、信頼フィールド５０４は、マルウェアの識別に使用することもできる。例えば、ファイルが０の信頼レベルを割り当てられている場合、これはファイルがマルウェアであると知られていることの表示となりうる。
【００２９】
さらにホワイトリストデータストア４１０に示されているのは、追加データフィールド５０６である。追加データフィールド５０６は、その名前が意味するように、ホワイトリストされたファイルに関してユーザに有用となる情報を含んでいる。図５に示すように、追加データフィールドは、ファイル発信元またはソース、観察された振る舞い、マルウェアの振る舞いの欠如など、ファイルの割り当てられた信頼レベルを裏付ける推論を識別することもできる。ほとんどすべての関連情報は、追加データフィールド５０６に格納することができる。同様に、代替実施形態において、任意の数のフィールドをホワイトリストデータストア４１０に含めることもできる。
【００３０】
図６は、ファイルが信頼できるファイルとしてホワイトリストされているかどうかを判別する模範的なルーチン６００を示す流れ図である。ブロック６０２を起点として、コンピュータは未知／信頼できないファイルを受け取る、つまりコンピュータはまだファイルがマルウェアであるかどうか、またはこれがホワイトリストされているかどうか認識していない。ブロック６０４において、受信したファイルに対してシグニチャが生成される。ファイルのシグニチャを生成するステップについては、以下で図７を参照して説明される。
【００３１】
図７は、本発明の態様によりファイルシグニチャを生成し、図６のルーチン６００での使用に適した模範的なサブルーチン７００を示す流れ図である。決定ブロック７０２を起点として、ファイルがユーザ変更可能ファイルであるかどうか判別が行われる。ファイルがユーザ変更可能ファイルではない場合、ブロック７０４において、模範的なサブルーチン７００はファイル全体に基づいてファイルのシグニチャを生成する。その後、ブロック７１０において、模範的サブルーチン７００は、生成されたシグニチャを返して終了する。
【００３２】
ファイルがユーザ変更可能ファイルである場合、ブロック７０６において、模範的なサブルーチン７００はファイルのユーザ変更可能部分を除去する。ブロック７０８において、サブルーチン７００は次に、ファイルの残りの除去されていない部分に基づいてファイルのシグニチャを生成する。ブロック７１０において、ファイルのシグニチャを生成した後、模範的サブルーチン７００は、生成されたシグニチャを返して終了する。
【００３３】
再び図６を参照すると、ファイルのシグニチャを生成した後、ブロック６０６において模範的サブルーチン６００はホワイトリストサービス４０８と接続する。前述のように、ホワイトリストサービスは、コンピュータ上またはローカルエリアネットワーク上にインストールされたローカルサービス／ファイル、あるいは代替として、図４に示されているようなリモートホワイトリストサービスであってもよい。さらに（図示せず）、複数のホワイトリストサービスがあってもよい。例えば、コンピュータ上にインストールされたホワイトリストサービスは、コンピュータが頻繁に遭遇する少数のファイルシグニチャを含むことができる。シグニチャがローカルホワイトリストサービスに見つからない場合、コンピュータはさらに多数のシグニチャを含むネットワークホワイトリストサービスを調べる。さらになお、シグニチャがローカルホワイトリストサービスおよびネットワークホワイトリストサービスのいずれにも見つからない場合、図４のホワイトリストサービス４０８のようなリモート／グローバルホワイトリストサービスを調べることができる。もちろん、リモートホワイトリストサービス４０８は、オペレーティングシステムのプロバイダからのヘルプまたはサービスドキュメントなど、グローバルに提供されているファイルしか含んでいない可能性もある。一実施形態によれば、ローカルホワイトリストサービスは、ネットワークホワイトリストサービスを認識してこれと通信し、ネットワークホワイトリストサービスはリモートホワイトリストサービスを認識してこれと通信して、ファイルのシグニチャが見つからなければローカルホワイトリストサービスへの単一の要求が引き続いて別のサービスを調べるようになっている。
【００３４】
ホワイトリストサービスに接続した後、ブロック６０８において、ルーチン６００はシグニチャを提示し、ファイルに対応する信頼レベルを取得する。決定ブロック６１０において、ホワイトリストサービスがマルウェアも識別すると仮定して（ただし本発明はそのように限定されない）、ファイルがマルウェアとして識別されていたかどうかについて判別が行われる。マルウェアであった場合、ブロック６１２において、ルーチンは既定の手順に従ってマルウェアを処理する。マルウェアの処理は当技術分野において既知であり、ファイルの削除、ファイルの隔離、またはファイルからのマルウェアの消去などのアクションを含んでいる。その後、ルーチン６００は終了する。
【００３５】
ホワイトリストサービス４０８から取得した信頼レベルに従ってファイルがマルウェアとして識別されない場合、ブロック６１４において、ルーチン６００はファイルの信頼のレベルに関連する既定のポリシーに従ってファイルがコンピュータシステムに入ることを許す。例えば、信頼レベルがその最高レベルである場合、コンピュータユーザはそのファイルが完全に信頼に足ることを納得し、目的に応じてファイルがシステムに入ることを許可することができる。代替として、信頼レベルがかなり低い場合、コンピュータシステムは、一時期ファイルを隔離する、いわゆるサンドボックス内でファイルを実行する、ファイルの動作中に特定機構のネットワーク機能を無効にするなど（ただしこれらに限定されない）特定の制約を付けて、ファイルがシステムに入ることを許可するようにプログラムすることができる。ファイルがコンピュータシステムに入ることを許可した後、模範的なルーチン６００は終了する。
【００３６】
前述のルーチン６００はバイナリ、つまりファイルがマルウェアであるかどうかに関してｙｅｓ／ｎｏの判別を含んでいるが、実際の実施形態においては、ファイルに関連付けられている信頼レベルに従っていくつかの判別を行うことができる。例えば、信頼レベルが８の値よりも大きいかどうかに関して判別を行い、信頼のそのレベルまたはそれ以上のレベルを備えるファイルが自動的に許可されるようにすることができる。同様に、３から７までの信頼レベルを備えるファイルは、いわゆるサンドボックス内で一定期間実行しなければならないようにすることもできる。さらにまた、信頼レベルが３よりも低いファイルは、コンピュータシステムに入ることを許可される前に隔離される必要がある。したがって、模範的なルーチン６００は例示にすぎないと見なし、本発明を限定するものとして解釈すべきではない。
【００３７】
好ましい実施形態を含む本発明の様々な実施形態について例示し説明してきたが、本発明の精神および範囲を逸脱することなく様々な変更を加えることができることが理解されよう。
【図面の簡単な説明】
【００３８】
【図１】ウイルス対策ソフトウェアに関連付けられている脆弱性ウィンドウを示す模範的なタイムライン、特にシグニチャ認識方法を示すブロック図である。
【図２】模範的なユーザ変更可能文書を示すブロック図である。
【図３】図２の模範的なユーザ変更可能文書を示し、さらにファイルのシグニチャを開発するためにファイルの特定セグメントしか必要でないことを示すブロック図である。
【図４】本発明の態様を実装するのに適した模範的ネットワーク環境を示す図である。
【図５】本発明での使用に適した模範的なホワイトリストデータストアを示すブロック図である。
【図６】本発明の態様による、ファイルが信頼できるファイルとしてホワイトリストされているかどうかの判別に適した模範的なルーチンを示すブロック図である。
【図７】本発明の態様により適用された模範的なシグニチャ生成ルーチンを示すブロック図である。
【符号の説明】
【００３９】
２０２  マクロ
２０４  テンプレート
２０６  埋め込みオブジェクト
２０８  適用スタイル
２１０  ユーザデータ
２１２  ユーザデータ
４０８  ホワイトリストサービス
４１０  ホワイトリストデータストア
４１２  ネットワーク
５０２  シグニチャ
５０４  信頼度
５０６  追加データ
【図１】
2006127497.tif 000003
【図２】
2006127497.tif 000004
【図３】
2006127497.tif 000005
【図４】
2006127497.tif 000006
【図５】
2006127497.tif 000007
【図６】
2006127497.tif 000008
【図７】
2006127497.tif 000009