(57)【要約】      （修正有）【課題】マルウェア対策として、更新サーバからシグネチャ定義をダウンロードするにあたって、分単位でシグネチャ定義の更新を提供するのみならず、ネットワーク帯域幅リソースも節減できるようにする。【解決手段】発行閾値時間が経過すると更新された完全シグネチャ定義ファイルを発行し、前記発行閾値時間の後、それぞれが更新前の前記完全シグネチャ定義ファイルに対する変更を含む複数のデルタ定義ファイルへのポインタと記憶領域へのポインタとを含むミニドライブファイルを受信し、クライアントコンピュータにインストールされた完全シグネチャ定義ファイルに関連付けられたバージョン識別子を、前記ミニドライブファイルで識別される、更新前のバージョンと比較して所定のデルタ定義ファイルに関連付けられた情報を識別し、前記デルタ定義ファイルを前記記憶領域から要求する。【選択図】図３
2014130614.tif 000002
【特許請求の範囲】
【請求項１】
受信した第１のマルウェアシグネチャを含む完全シグネチャ定義ファイルを組み立てることであって、前記完全シグネチャ定義ファイルは、指定の時間までに受信した第１の複数のマルウェアシグネチャをさらに含む、こと、
前記指定の時間後、前記完全シグネチャ定義ファイルを発行すること、
前記受信した第１のマルウェアシグネチャを含むストリーミングシグネチャ定義ファイルを組み立てることであって、前記ストリーミングシグネチャ定義ファイルは、第１の期間中に受信する第２の複数のマルウェアシグネチャをさらに含み、前記第１の期間は、第１の開始時間に開始され、第１の終了時間に終了し、前記第１の終了時間は前記指定の時間よりも先である、こと、および
前記第１の期間が経過した場合、前記ストリーミングシグネチャ定義ファイルを発行すること
を含む、方法。
【請求項２】
前記ストリーミングシグネチャ定義ファイルを発行することは、
第１のリモートノードからの要求に応答して、前記ストリーミングシグネチャ定義ファイルを送信すること
を含み、および
前記第１のリモートノードからの要求は第２の終了時間よりも先であり、前記第２の終了時間は前記第１の終了時間の後である、請求項１に記載の方法。
【請求項３】
前の完全シグネチャ定義ファイルおよび前記ストリーミングシグネチャ定義ファイルを使用して、前記第１の受信シグネチャおよび前記第１の複数のマルウェアシグネチャのうちの１つに対応するマルウェアのインスタンスを探して前記第１のリモートノードをスキャンすること
をさらに含み、
前記第１のリモートノードをスキャンすることは、前記指定の時間よりも先に実行される、請求項２に記載の方法。
【請求項４】
第２の期間中に受信する第３の複数のシグネチャを含む第２のストリーミングシグネチャ定義ファイルを組み立てることであって、前記第２の期間は、第２の開始時間で開始され、第２の終了時間で終了し、前記第２の開始時間は前記第１の終了時間の後であり、前記第２の終了時間は前記指定の時間よりも先である、こと、および
前記第２の期間が経過した場合、前記第２のストリーミングシグネチャ定義ファイルを発行すること
をさらに含む、請求項１に記載の方法。
【請求項５】
前記第２のストリーミングシグネチャ定義ファイルを発行することは、
前記第２の期間が経過した場合、前記ストリーミングシグネチャ定義ファイルを前記第２のストリーミングシグネチャ定義ファイルで置き換えること
を含む、請求項４に記載の方法。
【請求項６】
前記受信した第１のマルウェアシグネチャ、前記第１の複数のマルウェアシグネチャ、および前記第２の複数のマルウェアシグネチャは、１つまたは複数のマルウェアシグネチャ認証エンジンから受信される、請求項１に記載の方法。
【請求項７】
前記ストリーミングシグネチャ定義ファイルを組み立てることは、
前記第２の複数のマルウェアシグネチャのうちの１つまたは複数のマルウェアシグネチャを含むリストに前記受信した第１のマルウェアシグネチャを添付することを含む、請求項１に記載の方法。
【請求項８】
前記ストリーミングシグネチャ定義ファイルを組み立てることは、
前記受信した第１のマルウェアシグネチャに対応するポインタを、前記第２の複数のマルウェアシグネチャのうちの対応するマルウェアシグネチャへの１つまたは複数のポインタを含むリストに添付することを含み、前記受信した第１のマルウェアシグネチャに対応する前記ポインタは、前記受信した第１のマルウェアシグネチャのロケーションに関する情報を含む、請求項１に記載の方法。
【請求項９】
プロセッサと、
前記プロセッサに結合され、第１のマルウェアシグネチャ、第１の複数のマルウェアシグネチャ、および第２の複数のマルウェアシグネチャを受信するように構成されたネットワークインタフェースと、
前記プロセッサに結合され、完全シグネチャ定義ファイルを記憶するように構成された第１の記憶ボリュームであって、前記完全シグネチャ定義ファイルは前記第１にマルウェアシグネチャを含む、第１の記憶ボリュームと、
前記プロセッサに結合され、ストリーミングシグネチャ定義ファイルを記憶するように構成される第２の記憶ボリュームであって、前記ストリーミングシグネチャ定義ファイルは前記第１のマルウェアシグネチャを含む、第２の記憶ボリュームと、
前記プロセッサに結合され、前記プロセッサにより実行可能な命令を記憶するメモリと
を備え、
前記命令は、
前記完全シグネチャ定義ファイルを組み立てることであって、前記完全シグネチャ定義ファイルは、指定の時間までに受信した第１の複数のマルウェアシグネチャをさらに含む、こと、
前記指定の時間後、前記完全シグネチャ定義ファイルを発行すること、
前記ストリーミングシグネチャ定義ファイルを組み立てることであって、前記ストリーミングシグネチャ定義ファイルは、第１の開始時間に開始されかつ第１の終了時間で終了する第１の期間中に受信される第２の複数のマルウェアシグネチャをさらに含み、前記第１の終了時間は前記指定の時間よりも先である、こと、および
前記第１の期間が経過した場合、前記ストリーミングシグネチャ定義ファイルを発行すること
を行うように構成される、装置。
【請求項１０】
前記プロセッサに結合され、前記ストリーミングシグネチャ定義ファイルを送信するように構成される第２のネットワークインタフェース
をさらに備え、
前記メモリは、前記プロセッサにより実行可能でありかつ第１のリモートノードからの要求に応答して前記第２のネットワークインタフェースを使用して前記ストリーミングシグネチャ定義ファイルを送信するように構成される前記ストリーミングシグネチャ定義ファイルを発行する命令をさらに含み、
前記第１のリモートノードからの要求は、第２の終了時間よりも先であり、および
前記第２の終了時間は、前記第１の終了時間の後である、請求項９に記載の装置。
【請求項１１】
前記プロセッサにより実行可能であり、第２の期間中に受信される第３の複数のシグネチャを含む第２のストリーミングシグネチャ定義ファイルを組み立てることであって、前記第２の期間は、前記第１の終了時間の後である第２の開始時間で開始され、前記指定の時間よりも先の第２の終了時間に終了する、こと、および前記第２の期間が経過した場合、前記第２のストリーミングシグネチャ定義ファイルを発行すること
を行うように構成される命令をさらに記憶する前記メモリ
をさらに備える、請求項９に記載の装置。
【請求項１２】
前記プロセッサにより実行可能であり、前記第２の期間が経過した場合、前記ストリーミングシグネチャ定義ファイルを前記第２のストリーミングシグネチャ定義ファイルで置き換えるように構成される、前記第２のストリーミングシグネチャファイルを発行するさらなる命令を記憶する前記メモリ
をさらに備える、請求項１１に記載の装置。
【請求項１３】
前記プロセッサにより実行可能であり、前記第１のマルウェアシグネチャを、前記第２の複数のマルウェアシグネチャの１つまたは複数のマルウェアシグネチャを含むリストに添付するように構成される、前記ストリーミングシグネチャ定義ファイルを組み立てる命令をさらに記憶する前記メモリを
さらに備える、請求項９に記載の装置。
【請求項１４】
前記プロセッサにより実行可能であり、前記第１のマルウェアシグネチャに対応するポインタを、前記第２の複数のマルウェアシグネチャの対応するマルウェアシグネチャへの１つまたは複数のポインタを含むリストに添付するように構成される、前記ストリーミングシグネチャ定義ファイルを組み立てる命令をさらに記憶する前記メモリをさらに備え、前記第１のマルウェアシグネチャに対応する前記ポインタは、前記第１のマルウェアシグネチャのロケーションに関する情報を含む、請求項９に記載の装置。
【請求項１５】
第１のマルウェアシグネチャを受信すること、および
前記第１のマルウェアシグネチャを完全定義組み立てモジュールおよびストリーミング定義組み立てモジュールに提供すること
を行うように構成される信号プロセッサモジュールであって、
前記完全定義組み立てモジュールは、前記信号プロセッサモジュールに結合され、前記第１のマルウェアシグネチャを含む完全シグネチャ定義ファイルを組み立て、前記完全シグネチャ定義ファイルを関連付けられた第１のメモリに記憶するように構成され、前記完全シグネチャ定義ファイルは、指定の時間までに前記完全定義組み立てモジュールが受信する第１の複数のマルウェアシグネチャをさらに含む、信号プロセッサモジュールと、
前記第１のメモリに結合され、前記指定の時間後に前記完全シグネチャ定義ファイルのすべてまたは部分を送信するように構成される完全定義要求モジュールであって、
前記ストリーミング定義組み立てモジュールは、前記信号プロセッサモジュールに結合され、前記第１のマルウェアシグネチャを含むストリーミングシグネチャ定義ファイルを組み立て、前記ストリーミングシグネチャ定義ファイルを関連付けられた第２のメモリの記憶するように構成され、前記ストリーミングシグネチャ定義ファイルは、第１の期間中に受信する第２の複数のマルウェアシグネチャをさらに含み、前記第１の期間は、第１の開始時間に開始され、第１の終了時間に終了し、前記第１の終了時間は、前記指定の時間よりも先である、完全定義要求モジュールと、
前記第２のメモリに結合され、前記第１の期間が経過した場合、前記ストリーミングシグネチャ定義ファイルを送信するように構成されるストリーミング定義要求モジュールと
を備える、システム。
【請求項１６】
ネットワークにより前記ストリーミング定義要求モジュールに結合され、前記ストリーミングシグネチャ定義ファイルを要求するように構成されるリモートノードをさらに備え、前記要求は第２の終了時間よりも先であり、前記第２の終了時間は前記第１の終了時間の後であり、
前記ストリーミング定義要求モジュールは、前記リモートノードからの前記要求に応答して、前記ストリーミングシグネチャ定義ファイルの送信を実行するようにさらに構成される、請求項１５に記載のシステム。
【請求項１７】
前記信号プロセッサモジュールは、第２の期間中に第３の複数のシグネチャを受信するようにさらに構成されることであって、
前記第２の期間は、第２の開始時間で開始され、第２の終了時間で終了し、
前記第２の開始時間は前記第１の終了時間の後であり、および
前記第２の終了時間は前記指定の時間よりも先である、こと
前記ストリーミング定義組み立てモジュールは、前記第３の複数のシグネチャを含む第２のストリーミングシグネチャ定義ファイルを組み立て、前記第２のストリーミングシグネチャ定義ファイルを関連付けられた前記第２のメモリに記憶するようにさらに構成されること、および
前記ストリーミング定義要求モジュールは、前記第２の期間が経過した場合、前記第２のストリーミング定義ファイルを送信するようにさらに構成されること
をさらに備える、請求項１５に記載のシステム。
【請求項１８】
前記信号プロセッサモジュールに結合され、受信された前記第１のマルウェアシグネチャ、前記第１の複数のマルウェアシグネチャ、および前記第２の複数のマルウェアシグネチャを前記信号プロセッサモジュールに提供するように構成される１つまたは複数のマルウェアシグネチャ認証エンジン
をさらに備える、請求項１５に記載のシステム。
【請求項１９】
前記ストリーミングシグネチャ定義組み立てモジュールは、
前記第１のマルウェアシグネチャを、前記第２の複数のマルウェアシグネチャのうちの１つまたは複数のマルウェアシグネチャを含むリストに添付することにより、前記ストリーミングシグネチャ定義ファイルを組み立てるようにさらに構成される、請求項１５に記載のシステム。
【請求項２０】
前記ストリーミングシグネチャ定義組み立てモジュールは、
前記第１のマルウェアシグネチャに対応するポインタを、前記第２の複数のマルウェアシグネチャのうちの対応するマルウェアシグネチャへの１つまたは複数のポインタを含むリストに添付することにより、前記ストリーミングシグネチャ定義ファイルを組み立てるようにさらに構成され、前記第１のマルウェアシグネチャに対応する前記ポインタは、前記第１のマルウェアシグネチャのロケーションに関する情報を含む、請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータセキュリティの分野に関し、特に、マルウェア対策クライアントソフトウェアに対するストリーミングマルウェアシグネチャ定義更新を提供することに関する。
【背景技術】
【０００２】
インターネット等の広域ネットワークは、増大し続けるユーザコミュニティに、ユーザが情報、アプリケーション、およびエンターテイメントを収集できる同様に増大し続けるアクセス可能なネットワークサイトを提供する。そのようなオープンコミュニティは、悪意のあるユーザおよびサイトが、ウィルス、トロイの木馬、ワーム等の悪意のあるソフトウェア（マルウェア）を拡散させる格好の状況も提供する。ユーザをそのような悪意のある行動から保護するために、ユーザにコンピュータ上のマルウェアの存在を警告し、影響を受けたコンピュータからマルウェアを除去するマルウェア対策保護方式が考案された。
【０００３】
典型的なコンピュータ保護方式は、影響を受けたコンピュータ上のマルウェアの存在に対して反応する。マルウェアを検出する一般的な方法は、マルウェア本体から抽出されるシグネチャに頼る。マルウェア本体から抽出される異なる種類のデータをシグネチャの生成に使用してもよい。そのようなデータとしては、例えば、文字列（すなわち、ワイルドカードあり、またはワイルドカードなしのパターン）、チェックサム（例えば、ＣＲＣ、ＭＤ５、およびＳＨＡ１）、挙動パターン、ファイルジオメトリ、実行フロージオメトリ、およびコード命令の統計的分布が挙げられる。マルウェアシグネチャの生成に、上記列挙されたものの任意の組み合わせを使用することができ、この列挙は排他的なものではない。より高度なポリモーフィックマルウェア（例えば、変化する暗号アルゴリズムおよび鍵を組み込み、マルウェアの複製が同一ではないマルウェア）に対しては、暗号解析、専用復号化ルーチン、エミュレーション等を含むより高度なシグネチャ生成技法が必要である。
【０００４】
コンピュータで実行されるセキュリティソフトウェアが、マルウェアの新たに発見されたインスタンスを検出できるようにするためには、コンピュータに、マルウェアの新しいインスタンスを識別するために確立されたシグネチャのコピーを提供しなければならない。通常、マルウェアの７，０００〜１０，０００もの多くの新しいインスタンスが毎日発見される。マルウェアのインスタンスは広域ネットワークを通して増殖するため、そのマルウェアに関連するシグネチャを広域ネットワーク上のコンピュータに提供することの遅れにより、それらコンピュータが、攻撃を受けやすい状態のままになる。したがって、新たに生成され認定されたシグネチャをコンピュータコミュニティに迅速に配布することが望ましい。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
典型的なマルウェア対策ソフトウェアは、更新サーバから１〜８時間の期間で新しいシグネチャ定義をダウンロードする。典型的なシステムにより検索される完全シグネチャ定義ファイルは、現在見つかっているすべてのシグネチャのシグネチャ定義またはクライアントコンピュータに現在インストールされている完全シグネチャ定義ファイルとマルウェア対策ソフトウェアに関連付けられたサーバ上の現在発行されている完全シグネチャ定義ファイルとの差分を含む。多数のクライアントコンピュータが１つまたは複数の関連付けられた配布サーバからこれら完全定義ファイルをダウンロードする動作は、相当なネットワーク帯域幅リソースを消費し得る。マルウェア対策カバレッジを向上させるために、完全定義ファイルの発行レートを増大させると、潜在的に、ネットワーク帯域幅消費の劇的な増大に繋がる。したがって、時単位ではなくおよそ分単位でシグネチャ定義への更新を提供するのみならず、ネットワーク帯域幅リソースの節減もするシステムを実装することが望ましい。
【課題を解決するための手段】
【０００６】
本発明の実施形態は、マルウェアシグネチャ定義への更新をおよそ分単位で提供すると共に、より長い期間中に完全更新を提供し、ネットワークリソースを節減するようにそのような更新を提供するメカニズムを提供する。本発明の実施形態は、マルウェアシグネチャを含む完全シグネチャ定義ファイルを組み立て発行すると共に、マルウェアシグネチャを含むストリーミング定義ファイルを組み立て発行するように構成された方法、装置、およびシステムを提供する。完全シグネチャ定義ファイルは、マルウェアシグネチャ、および指定された時間までに受信した第１の複数のマルウェアシグネチャの両方を含み、完全シグネチャ定義ファイルの発行は、指定された時間後に行われる。ストリーミングシグネチャ定義ファイルは、マルウェアシグネチャ、および指定された時間の前に開始され終了する第１の期間中に受信された第２の複数のマルウェアシグネチャの両方を含み、ストリーミングシグネチャ定義ファイルの発行は、第１の期間の完了時に行われる。
【０００７】
本発明の上記実施形態の態様は、第１のノードからの要求が、第１の終了時間後に受信された場合、その要求に応答して、ストリーミングシグネチャ定義ファイルを送信することを含む、ストリーミングシグネチャ定義ファイルを発行することを提供する。本発明の上記実施形態の別の態様は、第３の複数のマルウェアシグネチャを含む第２のストリーミングシグネチャ定義ファイルを組み立て発行することを提供し、第２のストリーミングシグネチャ定義ファイルの組み立ては、第１の期間の終了後であり、かつ指定された時間前の第２の期間中に行われる。上記実施形態のさらなる態様は、第２の期間の完了時に、第１のストリーミングシグネチャ定義ファイルを第２のストリーミングシグネチャ定義ファイルで置き換えることを提供する。本発明の上記実施形態の別の態様は、マルウェアシグネチャを、第２の複数のマルウェアシグネチャのうちの１つまたは複数のマルウェアシグネチャを含むリストに添付することにより、ストリーミングシグネチャ定義ファイルを組み立てることを提供する。本発明のさらなる態様は、第２の複数のマルウェアシグネチャのうちの対応するマルウェアシグネチャへの１つまたは複数のポインタを含むリストに、マルウェアシグネチャのロケーションへのポインタを添付することにより、ストリーミングシグネチャ定義ファイルを組み立てることを提供する。
【０００８】
本発明は、添付図面を参照することにより当業者によりよく理解することができ、その多くの目的、特徴、および利点が明らかになるであろう。
【図面の簡単な説明】
【０００９】
【図１】アンチマルチウェアシグネチャをマルウェア対策クライアントに配布するネットワーク構成を示す簡略ブロック図である。
【図２】発行されたシグネチャ定義の送信に繋がるプロセスの簡略流れ図である。
【図３】本発明の実施形態によるシグネチャ更新サーバ１１０により実行されるマルウェアシグネチャ発行プロセスの簡略流れ図である。
【図４】本発明の実施形態を組み込んだシグネチャ更新サーバ１１０を示す簡略ブロック図である。
【図５】本発明の実施形態によりクライアントコンピュータにより実行されるシグネチャ定義更新プロセスを示す簡略流れ図である。
【図６】本発明の実施形態の実施に適したコンピュータシステムのブロック図を示す。
【図７】本発明の実施形態の実施に適したネットワークアーキテクチャを示すブロック図である。
【発明を実施するための形態】
【００１０】
本発明は、追加の、すなわち「ストリーミング」定義パッケージの使用を通して頻繁なシグネチャ定義更新を提供するメカニズムを提供する。本発明の実施形態は、完全シグネチャ定義更新を長期間（例えば、約数時間）単位で発行するのみならず、新たに認証された定義を含むストリーミング定義更新を短期間（例えば、約数分）単位で発行することによっても、そのような機能を提供する。本発明の実施形態を組み込んだシグネチャ更新サーバが、新たに認証されたマルウェアシグネチャ定義を受信すると、それら新たに認証されたシグネチャ定義は、完全シグネチャ定義ファイルのみならず、ストリーミング更新期間中に受信した新たに認証されたシグネチャ定義のみを含むストリーミングシグネチャ定義更新にも組み込まれる。ストリーミング更新期間の終了時、シグネチャ更新サーバは、マルウェア対策クライアントに発行することにより、ストリーミングシグネチャ定義ファイルを提供する。ストリーミングシグネチャ定義ファイルは、そのストリーミング定義ファイルの組み立て期間中に受信したシグネチャ定義のみを含む。本発明の実施形態は、新しいストリーミングシグネチャ定義ファイルの発行時に、前のストリーミングシグネチャ定義ファイルを新しいストリーミングシグネチャ定義ファイルで置き換える。
【００１１】
本発明の実施形態を使用するマルウェア対策クライアントは、ストリーミングシグネチャ定義ファイル内で受信されたシグネチャ定義を、前に受信したストリーミングシグネチャ定義および最新の完全定義ファイル内で受信したシグネチャ定義に追加するように組み込む。ストリーミングシグネチャ定義ファイル内で前に受信したシグネチャを組み込んだ新たに発行された完全シグネチャ定義ファイルを受信すると、本発明の実施形態を使用するマルウェア対策クライアントは、前に受信したシグネチャのストリーミング定義の使用を停止し、完全シグネチャ定義ファイル内に見られる定義のみを使用する。
【００１２】
このようにして、本発明の実施形態を組み込んだマルウェア対策クライアントは、新しいマルウェアシグネチャの認証後、約数分でシグネチャ定義更新を受信することができる。さらに、ストリーミングシグネチャ定義ファイルは、ストリーミング定義組み立て期間中に受信したシグネチャのみを含むため、本発明の実施形態は、ネットワーク帯域幅リソースを節減する。
【００１３】
図１は、マルウェア対策シグネチャをマルウェア対策クライアントに配布するネットワーク構成を示す簡略ブロック図である。シグネチャ更新サーバ１１０は、マルウェア対策ソフトウェアプロバイダにより維持される。シグネチャ更新サーバ１１０には、マルウェア対策ソフトウェアプロバイダのクライアントへの発行が認証されたマルウェアシグネチャを記憶するシグネチャデータベース１１５が関連付けられる。シグネチャ更新サーバは、外部ネットワーク１３０（例えば、インターネット等の広域ネットワーク）を通してクライアントコンピュータ１２０（１）〜（Ｍ）に結合される。このネットワーク接続を通して、シグネチャ更新サーバ１１０は、様々なデータ伝送プロトコルを使用して、シグネチャ定義ファイル更新をクライアントコンピュータ１２０（１）〜（Ｍ）を提供することができる。あるいは、シグネチャ更新サーバ１１０は、シグネチャ更新サーバ１１０がクライアントコンピュータコミュニティに発行したシグネチャ更新ファイルの配布を担当する１つまたは複数のシグネチャ配布サーバ（図示せず）に結合することができる。このようにして、配布サーバのそれぞれを介して配布の責務を地理的に分散させることができる。
【００１４】
シグネチャ更新サーバ１１０により配布されるマルウェアシグネチャは、１つまたは複数の処理ノード上で実行中の１つまたは複数の解析エンジン１４０（１）〜（Ｎ）により生成することができる。マルウェアの新しいインスタンスがマルウェア対策ソフトウェアプロバイダにより発見された場合、マルウェアのそれらインスタンスは解析エンジン１４０（１）〜（Ｎ）に提供されて、そのマルウェアインスタンスの識別に適切なシグネチャを決定する。そのような解析により、例えば、文字列パターン、チェックサム、挙動パターン、ファイルジオメトリ、実行フロージオメトリ、およびコード命令の統計的分布、またはこれらの組み合わせを含むマルウェア本体から抽出されたデータに基づいてシグネチャを生成することができる。より高度なマルウェア（例えば、ポリモーフィックまたはメタモーフィックマルウェア）の場合、潜在的なマルウェアが制御されたシミュレーション環境内で実行されて、マルウェアの挙動が特定されるエミュレーション技法等のより処理集約的なシグネチャ生成を使用し得る。
【００１５】
解析エンジン１４０（１）〜（Ｎ）が、マルウェアインスタンスに対応する適切なシグネチャを決定すると、認証サーバ１５０（１）〜（Ｐ）は、生成されたシグネチャの使用により、誤検出結果が生じるか否かを判断することができる。例えば、認証サーバは、典型的なクライアントのコンピュータで見つかり得る周知のファイル（例えば、オペレーティングシステムファイル、典型的なアプリケーション等）のクリーンファイルコレクションを保持することができる。ハッシュまたはチェックサム（例えば、ＣＲＣ）により生成されるシグネチャの場合、マルウェアチェックサムシグネチャを、クリーンファイルコレクション内の各ファイルに対して同様に生成されたチェックサムと突き合わせてチェックすることができる。データベースは、クリーンファイルコレクション内の各ファイルについてのメタ情報（例えば、様々に生成されたハッシュまたはチェックサムのうちの１つまたは複数の集まり）を含むことができ、このデータベースに対する参照を実行することができる。提案されたマルウェアシグネチャが、クリーンファイルコレクション内のファイルに対して生成されたシグネチャに一致する場合、そのマルウェアシグネチャは、代替の解析エンジンにより生成されたハッシュに基づくシグネチャまたはマルウェアファイルのより大きなサンプリングから生成されるハッシュもしくはチェックサムを優先して、破棄される。シグネチャが認証段階にパスすると、そのシグネチャは、内部ネットワーク１６０を介してシグネチャ更新サーバ１１０に提供される。
【００１６】
マルウェア解析の種類により、実行にかかる時間量が異なり得る。例えば、ハッシュまたはチェックサムの生成および誤検出テストは、ポリモーフィックマルウェアのインスタンスの挙動エミュレーションよりもかかる時間が大幅に短い。この理由は、エミュレーションシグネチャは、クリーンファイルコレクション内の各ファイルのエミュレーションと突き合わせてテストする必要があるためである。さらに、異なる種類の解析により生成されるシグネチャは、長さが異なり得、クライアントソフトウェアにより異なるように使用されることになる。本発明の実施形態は、マルウェア認証の特定の解析方法に限定されない。
【００１７】
図２は、発行されたシグネチャ定義の送信に繋がるプロセスの簡略流れ図である。潜在的なマルウェアが識別されると（２１０）、マルウェアは解析のために提出される（２２０）（例えば、解析エンジン１４０により）。上述したように、解析プロセスは、最終的にマルウェアシグネチャを生成するように設計された様々な解析メカニズムを含み得る（２３０）。次に、生成されたマルウェアシグネチャは、誤検出に対する認証のために提出される（２４０）。上述したように、誤検出解析は、マルウェアのシグネチャを、クリーンファイルコレクション内に見つけられるファイルに対して同じ方法により生成されるシグネチャと比較することにより実行される。そのような認証比較は、オペレーティングシステムファイルおよびアプリケーションファイル等のクライアントコンピュータ上に実際にあるべきファイルをマルウェア対策ソフトウェアが削除するのを回避するために実行される。誤検出が検出された場合（２４５）、マルウェアは、さらなる解析に提出され、代替のシグネチャが生成される。
【００１８】
マルウェアシグネチャが認証プロセスをパスすると、そのシグネチャをシグネチャ更新サーバ１１０に提供し、最終的にシグネチャ更新サーバにより発行される準備ができる（２５０）。本発明の実施形態は、完全シグネチャ定義更新およびストリーミングシグネチャ定義更新の両方を通して、マルウェアシグネチャの発行を実行する。発行プロセスについては、より十分に後述する。マルウェアシグネチャを発行すると、マルウェアシグネチャはマルウェア対策ソフトウェアプロバイダのクライアントに送信される（２６０）。
【００１９】
図３は、本発明の実施形態によるシグネチャ更新サーバ１１０により実行されるマルウェアシグネチャ生成プロセスの簡略流れ図である。認証されたマルウェアシグネチャを受信すると（３１０）、シグネチャ更新サーバは、認証されたマルウェアシグネチャの並列発行パスを辿る。一発行パス（３２０〜３４０）では、認証されたマルウェアシグネチャは、完全シグネチャ定義ファイルの次のバージョン内に組み込まれる。上述したように、完全シグネチャ定義ファイルの組み立ておよび発行の時間フレームは、約数時間単位である。第２の発行パス（３５０〜３７０）は、認証されたマルウェアシグネチャを次のストリーミングシグネチャ定義ファイル内に統合する。これも上述したように、ストリーミングシグネチャ定義ファイルは、約数分の期間で発行される。
【００２０】
完全シグネチャ定義発行パスでは、受信された認証マルウェアシグネチャは、次の完全シグネチャ定義ファイル内に統合される（３２０）。そのような統合プロセスは、新たに到着した認証マルウェアシグネチャを完全定義ファイルに追加することのみならず、シグネチャが追加された後に完全シグネチャ定義ファイルの完全性を検証することも含む。完全シグネチャ定義ファイルは、組み込まれるシグネチャに関連付けられた様々なデータ構造を含む最適化木にシグネチャを組み込む。本発明の一実施形態では、最適化木の目標は、高性能を有する小さなデータファイルである。新たに到着した認証マルウェアシグネチャを完全シグネチャ定義ファイル内に含めることは、新しいシグネチャを最適化木内に組み込むことを含む。
【００２１】
シグネチャ更新サーバにより、完全シグネチャ定義ファイルの発行閾値時間が満たされるか否かが判断される（３２５）。発行閾値時間が満たされない場合、シグネチャ更新サーバは、完全シグネチャ定義ファイルに統合する次の認証マルウェアシグネチャの受信を待つ。完全シグネチャ定義ファイルの発行閾値時間が満たされる場合、シグネチャ更新サーバは、完全シグネチャ定義ファイルの発行プロセスを開始する。あるいは、完全シグネチャ定義ファイルの次のバージョン内に含める新しい認証マルウェアシグネチャの数に対する閾値を設定することができ、そのシグネチャ数が到着すると、新しい完全シグネチャ定義ファイルを発行することができる。
【００２２】
完全シグネチャ定義ファイルを発行するために、シグネチャ更新サーバは、あり得るクライアントデータバージョンに配布するためのデルタ定義パッケージを構築して記憶する（３３０）。ネットワーク帯域幅リソースを節減するために、完全シグネチャ定義ファイルが発行される都度、全て揃った完全シグネチャ定義ファイルを各クライアントコンピュータに送信する必要はない。それに代えて、クライアントは、そのクライアントが完全シグネチャ定義ファイルを最後にダウンロードしてから変更または追加された完全シグネチャ定義木の部分をダウンロードする必要があるだけである。クライアントコンピュータは、完全シグネチャ定義ファイルの最新の発行時にアクティブではなかった可能性があるため、クライアントコンピュータは、最後にダウンロードされ、クライアントコンピュータに記憶された完全シグネチャ定義ファイルのバージョン以来、変更または追加された定義を要求することができる。このプロセスを容易にするために、シグネチャ更新サーバ１１０は、クライアントコンピュータにより保持されている様々な予想される完全シグネチャ定義ファイルバージョンの完全シグネチャ定義ファイルに対する変更のみを含むデルタ定義ファイルを用意する。本発明の一実施形態では、上記最適化木のさらなる目標は、デルタ定義ファイルのサイズを最小化するように木を構築することである。
【００２３】
次に、本発明の実施形態は、各デルタ定義ファイルへのポインタを含むファイルを生成し、それらポインタを、クライアントコンピュータにインストールされた完全シグネチャ定義ファイルの対応するバージョンに関連付けることができる（３３５）。このファイルは、ミニドライブファイルと呼ばれ、クライアントコンピュータに提供され、クライアントコンピュータが、完全シグネチャ定義ファイルの適切なデルタ定義セットにアクセスして、クライアントコンピュータ上の完全シグネチャ定義ファイルを更新できるようにする。
【００２４】
完全シグネチャ定義ミニドライブファイルが構築されると、シグネチャ更新サーバ１１０は、完全シグネチャ定義ミニドライブファイルをクライアントコンピュータ１２０（１）〜（Ｍ）に送信することができる。本発明の実施形態は、完全シグネチャ定義ミニドライブファイルの送信を様々な様式で提供することができる。例えば、「プル送信モデル」では、クライアントコンピュータは、クライアントコンピュータにより保持される完全シグネチャ定義ファイルに対する最後の更新の時間を追跡し、その更新から期間閾値が経過している場合、クライアントコンピュータは、シグネチャ更新サーバ１１０または指定の配布サーバから完全シグネチャ定義ミニドライブファイルの最新バージョンを要求することができる。あるいは、「プッシュ送信モード」では、シグネチャ更新サーバ１１０（または指定の配布サーバ）は、発行期間閾値が満たされた後、完全シグネチャ定義ミニドライブファイルを随時送信することができる。そのようなプッシュモデルでは、送信をリッスンしている任意のクライアントコンピュータは、完全シグネチャ定義ミニドライブファイルを受信し、クライアントに存在する完全シグネチャ定義ファイルの更新プロセスを開始する。
【００２５】
並列発行プロセスでのストリーミングシグネチャ定義ファイル内での認証マルウェアシグネチャの発行は、完全シグネチャ定義ファイルの発行からの特定の差分を有する。認証マルウェアシグネチャが受信されると、シグネチャは次のストリーミングシグネチャ定義ファイルに統合される（３５０）。ストリーミングシグネチャ定義ファイルは、完全シグネチャ定義ファイルの最適化木構造を必要としない。それに代えて、シグネチャ自体またはシグネチャへのポインタが、ストリーミングシグネチャ定義ファイル内に含まれる。これは、部分的に、ストリーミングシグネチャ定義ファイルが構築中の期間中に到着するシグネチャのみが次に発行されるシグネチャ定義ファイル内に存在するため、行うことができる。したがって、ストリーミングシグネチャ定義ファイルのデータ量は、完全シグネチャ定義ファイル内のデータ量よりもはるかに少ない。次のストリーミング定義ファイルを発行するストリーミング時間閾値が経過したか否かが判断される（３５５）。経過していない場合、シグネチャ更新サーバは、次の認証マルウェアシグネチャの受信を待つ（３１０）。上述したように、ストリーミングシグネチャ定義ファイルを発行する閾値期間は、完全シグネチャ定義ファイルを発行する閾値期間よりもはるかに短く、本発明の実施形態では、約数分（例えば、５分）であると意図される。
【００２６】
ストリーミングシグネチャ定義発行閾値時間が経過した場合、シグネチャ更新サーバ１１０は、ストリーミングシグネチャ定義ファイルを構築することができる（３６０）。完全シグネチャ定義ミニドライブファイルと異なり、ストリーミングシグネチャ定義ファイルは、このストリーミングシグネチャ定義内で発行されているシグネチャ自体を含むことが意図される。万が一、シグネチャが、ストリーミングシグネチャ定義ファイル内で直接発行するには長すぎる場合、そのシグネチャへのポインタを提供することができる。次に、本発明の実施形態は、ストリーミングシグネチャ定義ファイルの前のバージョンを、構築されたばかりのストリーミングシグネチャ定義ファイルのバージョンで置き換えることができる（３６５）。したがって、クライアントに発行されているストリーミングシグネチャ定義ファイルは、現在のストリーミングシグネチャ定義ファイルが構築された期間（例えば、現在のストリーミングシグネチャ定義ファイルの発行前の５分間）中にシグネチャ更新サーバが受信した認証マルウェアシグネチャ（またはシグネチャへのポインタ）のみを含む。次に、本発明の実施形態は、ストリーミングシグネチャ定義ファイルの現在のバージョンをクライアントコンピュータに送信することができる（３７０）。上述したように、そのような送信は、プッシュ送信モデルまたはプル送信モデルのいずれかを使用して実行し、クライアントに対してシグネチャ更新サーバにより直接、または配布サーバを介して間接的に実行することができる。
【００２７】
上述した認証マルウェアシグネチャを配布する並列発行方法では、新たに到着した認証マルウェアシグネチャをマルウェア対策ソフトウェアプロバイダのクライアントに素早く発行することが可能である。並列発行方法は、任意のストリーミングシグネチャ定義ファイルが利用可能になった際、あらゆるクライアントコンピュータが、ストリーミングシグネチャ定義ファイルのダウンロードに利用可能な状態である訳ではないことも認識する。ストリーミングシグネチャ定義ファイルの発行時に利用可能ではなかったため、クライアントが逃したシグネチャ定義ファイルの場合、クライアントは、完全シグネチャ定義ファイルを次回ダウンロードするときに追いつくことができる。したがって、新たに認証されたシグネチャを有することで、マルウェアからクライアントコンピュータを素早く保護することができるが、保護されない状態が、そのクライアントによる完全シグネチャ定義ファイルへの次の更新よりも長く続くことは決してない。
【００２８】
図４は、本発明の実施形態を組み込んだシグネチャ更新サーバ１１０を示す簡略ブロック図である。上述したように、シグネチャ更新サーバ１１０は、認証サーバ１５０（１）〜１５０（Ｐ）から認証マルウェアシグネチャを受信する。シグネチャ更新サーバ１１０の実施形態は、認証マルウェアシグネチャを処理し、完全シグネチャ定義およびストリーミングシグネチャ定義を用意し、これら定義ファイルをマルウェア対策ソフトウェアプロバイダのクライアントに提供するプロセッサ４１０を提供する。図４は、プロセッサ４１０内のシグネチャ処理モジュール４２０が受信中の認証マルウェアシグネチャを示す。シグネチャ処理モジュール４２０は、認証マルウェアシグネチャをシグネチャデータベース１１５内に記憶するように構成される。あるいは、認証サーバは、認証マルウェアシグネチャをシグネチャデータベース１１５内に直接記憶し、次に、新しい認証マルウェアシグネチャがシグネチャデータベース１１５内に記憶されたことの指示をシグネチャプロセッサモジュール４２０に提供することができる。
【００２９】
シグネチャ処理モジュール４２０は、受信した認証マルウェアシグネチャを完全シグネチャ定義組み立てモジュール４３０およびストリーミングシグネチャ定義組み立てモジュール４４０に提供するようにさらに構成される。完全シグネチャ定義組み立てモジュール４３０は、新たに到着したマルウェアシグネチャを完全シグネチャ定義木４３５に統合し、さらに、完全シグネチャ定義ファイルの発行を適切な発行時間に提供するように構成される。したがって、完全シグネチャ定義組み立てモジュールは、完全シグネチャ定義ファイル発行の閾値時間に達した場合、上述したデルタ定義パッケージおよび完全シグネチャ定義ミニドライブファイルを構築するようにさらに構成することが可能である。同様に、ストリーミングシグネチャ定義組み立てモジュール４４０は、新たに到着したシグネチャを、次のストリーミングシグネチャ定義ファイル内に組み込まれるシグネチャのリストに統合するように構成される（４４５）。ストリーミングシグネチャ定義組み立てモジュール４４０は、発行時にストリーミングシグネチャ定義ファイルを構築し、前に発行されたストリーミングシグネチャ定義ファイルを上述したように置き換えるように構成することもできる。したがって、ストリーミングシグネチャ定義組み立てモジュール４４０は、ストリーミングシグネチャ定義ファイル発行の閾値時間に達した場合、ストリーミングシグネチャ定義ファイルの発行に関連するタスクを実行することができる。
【００３０】
図示のように、シグネチャ更新サーバ１１０は、クライアントコンピュータとの情報の送受信を行う通信モジュール４５０を含む。通信モジュール４５０は、例えば、クライアントコンピュータにインストールされたマルウェア対策ソフトウェアと通信するアプリケーションプログラミングインタフェースを含む様々なプロトコルを使用してこれらタスクを実行することができる。通信モジュール４５０は、クライアントから受信した要求をプロセッサ４１０内の要求パーサ４６０に提供するように構成される。要求パーサ４６０は、クライアントから受信した要求の性質を特定し、その要求を適切な要求処理モジュールに提供するように構成される。例えば、プル送信動作モードでは、クライアントが完全シグネチャ定義ファイルのダウンロードを要求する場合、要求パーサ４６０は、その要求を完全シグネチャ定義要求モジュール４７０に提供する。同様に、要求パーサ４６０がストリーミングシグネチャ定義ファイルに対する要求を受信する場合、要求パーサ４６０は、その要求をストリーミングシグネチャ定義要求モジュール４８０に提供する。
【００３１】
完全シグネチャ定義ファイルに対する要求に応答して、完全シグネチャ定義要求モジュール４７０は、最新の完全シグネチャ定義ミニドライブファイルを完全シグネチャ定義記憶領域４３５から検索し、その完全シグネチャ定義ミニドライブファイルを通信モジュール４５０に提供して、要求側クライアントに送信することができる。完全シグネチャ定義ミニドライブファイルの受信を受けて、要求側クライアントは、適切なデルタ定義ファイルをシグネチャ更新サーバ１１０から要求することができる。次に、要求パーサ４６０は、デルタ定義ファイルに対する要求を完全シグネチャ定義要求モジュール４７０に転送することができ、次に、完全シグネチャ定義要求モジュール４７０は、デルタ定義ファイルを完全シグネチャ定義記憶領域４３５から検索し、そのデルタ定義ファイルを通信モジュール４５０に提供して、要求側クライアントに送信することができる。あるいは、完全シグネチャ定義ミニドライブファイルは、デルタ定義ファイルを要求側クライアントに提供するように特に構成された別個の配布サーバ内の記憶領域へのポインタを含むことができる。
【００３２】
要求パーサ４６０は、ストリーミングシグネチャ定義ファイルに対する要求を受信した場合、その要求をストリーミングシグネチャ定義要求モジュール４８０に提供する。次に、ストリーミングシグネチャ定義要求モジュール４８０は、最新のストリーミングシグネチャ定義ファイルをストリーミングシグネチャ定義記憶領域４４５から検索し、通信モジュール４５０を通してそのストリーミングシグネチャ定義ファイルを要求側クライアントに提供することができる。上述したように、ストリーミングシグネチャ定義ファイルは、現在の発行機関中に認証サーバから受信した認証マルウェアシグネチャの完全バージョンまたは要求側クライアントがシグネチャをダウンロードできるそのシグネチャのロケーションへのポインタを含むことができる。
【００３３】
ストリーミングシグネチャ定義ミニドライブファイル内でマルウェアシグネチャへのポインタを受信したことに応答して、クライアントは、シグネチャに対する要求をシグネチャ更新サーバ１１０に提出することができる。シグネチャ要求を受信すると、要求パーサ４６０は、そのシグネチャ要求をシグネチャ要求モジュール４９０に提供することができ、シグネチャ要求モジュール４９０は、要求されたシグネチャをシグネチャデータベース１１５から検索し、通信モジュール４５０を介して要求されたシグネチャを要求側クライアントに提供することができる。あるいは、上述のように、ストリーミングシグネチャ定義ミニドライブファイル内に含まれないシグネチャへのポインタは、シグネチャを要求側クライアントに提供するように構成された別個の配布サーバを指すことができる。
【００３４】
図４は、特定のタスクを実行するものとして説明した異なるモジュールを示すが、本発明の実施形態がそのような構成に限定されないことを留意されたい。例えば、２つ以上の別個のモジュールにより実行されるものとして説明されたタスクを単一のモジュールで実行してもよい。さらに、データベースにより提供されるものとして説明された記憶を、代替として、他のアクセス可能なデータ構造により提供してもよい。
【００３５】
図５は、本発明の実施形態によるクライアントコンピュータにより実行されるシグネチャ定義更新プロセスを示す簡略流れ図である。最初のステップとして、クライアントコンピュータは、マルウェア対策ソフトウェアを開始する（５０５）。開始プロセスは、クライアントにインストールされた完全シグネチャ定義ファイルおよびあらゆるストリーミングシグネチャ定義ファイルの最後の更新時間を特定することを含むことができる。クライアントは、完全ストリーミング定義セットの最後の更新時間が、完全ストリーミング定義ファイルを更新する閾値を超えるか否かを判断する（５１０）。上述したように、完全ストリーミング定義閾値時間は通常、約数時間（例えば、８時間）単位である。完全ストリーミング定義セットの最後の更新が所定の閾値時間を超える場合、クライアントは、最新の完全シグネチャ定義ミニドライブファイルを要求し受信することができる（５１５）。次に、クライアントは、完全ストリーミング定義セットの現在の更新に関連付けられたバージョン番号を、完全ストリーミング定義ミニドライブファイル内で識別されるバージョンと比較し、適切なデルタ定義ファイルに関連付けられた情報を識別することができる（５２０）。適切なデルタ定義ファイルについての情報が識別されると、クライアントは、適切なデルタ定義ファイルを要求し受信することができる（５２５）。上述したように、クライアントは、デルタ定義ファイルをシグネチャ更新サーバまたは識別された配布サーバから要求することができる。
【００３６】
要求されたデルタ定義ファイルを受信すると、クライアントは、デルタ定義ファイル内の情報を使用して、クライアントにインストールされた完全シグネチャ定義セットを更新することができる（５３０）。上述したように、デルタ定義ファイルは、クライアントコンピュータ上の完全シグネチャ定義セットの前にインストールされたバージョンから変更された完全シグネチャ定義木の部分に関連する情報を含む。クライアントコンピュータにインストールされたマルウェア対策ソフトウェアは、デルタ定義ファイルにより表される変更を、クライアントコンピュータにインストールされている完全シグネチャ定義セットのアクティブバージョン内に組み込むように構成することができる。
【００３７】
更新された完全シグネチャ定義セットがクライアントコンピュータでアクティブになると、クライアントコンピュータは、更新された完全シグネチャ定義セット内に含まれるいかなる定義のストリーミングシグネチャ定義データセットもクリアすることができる（５３５）。本発明の実施形態は、各ストリーミングシグネチャ定義と共に完全シグネチャ定義セットバージョン識別情報を含めることにより、この機能を提供することができる。したがって、クライアントコンピュータにインストールされた完全シグネチャ定義セットが、ストリーミングシグネチャ定義に関連付けられた関連の完全ストリーミング定義セットバージョン識別子に一致する場合、ストリーミングシグネチャ定義を、クライアントコンピュータにより保持されるストリーミングシグネチャ定義データセットから除去することができる。
【００３８】
次に、クライアントコンピュータは、最後のストリーミングシグネチャ定義更新時間が、ストリーミングシグネチャ定義に設定された閾値を超えるか否かを判断するように構成することができる（５４０）。完全シグネチャ定義更新時間が完全シグネチャ定義更新閾値を超えないと判断された後でも、このステップを実行できることに留意する。ストリーミングシグネチャ定義更新時間がストリーミングシグネチャ定義閾値を超えない場合、マルウェア対策ソフトウェアは、ストリーミングシグネチャ定義閾値時間が満たされるまで、現在インストールされている完全シグネチャ定義セットおよびストリーミングシグネチャ定義セットを使用して機能を実行することができる。
【００３９】
ストリーミングシグネチャ定義閾値時間が満たされると、クライアントは、最新のストリーミングシグネチャ定義ミニドライブファイルをシグネチャ更新サーバ１１０から要求して受信することができる（５４５）。ストリーミングシグネチャ定義ミニドライブファイルを受信すると、クライアントは、ミニドライブファイル内に存在するストリーミングシグネチャ定義を、クライアントコンピュータに保持されているストリーミングシグネチャデータセットに追加することができる（５５０）。このステップは、ストリーミングシグネチャ定義ミニドライブファイル内に含まれていないが、シグネチャへのポインタを有する任意のシグネチャを要求して受信することを含むこともできる。ストリーミングシグネチャ定義データセット内に組み込んだ後、クライアントコンピュータは、マルウェアの検出および修復を実行する際に、完全シグネチャ定義データセットおよびストリーミングシグネチャ定義データセットの両方内のシグネチャ情報を利用することができる（５５５）。
【００４０】
図５は、クライアントコンピュータが完全シグネチャ定義情報およびストリーミングシグネチャ定義情報の両方の送信を開始するプル送信モードで機能するクライアントコンピュータの図である。あるいは、クライアントは、クライアントがリッスンする姿勢を採用し、完全シグネチャ定義ファイルおよびストリーミングシグネチャ定義ファイルの送信の受信を待つプッシュ送信モードで機能することもできる。さらなる代替は、完全シグネチャ定義情報の場合にはプル送信モードで機能し、ストリーミングシグネチャ定義の場合にはプッシュ送信モードで機能するクライアントを含むことができる。
【００４１】
図５に示されるプロセスを使用して動作するクライアントコンピュータが、ネットワークから切断される場合、または他の様式で任意の期間にわたって非アクティブである場合、１つまたは複数のストリーミングシグネチャ定義ミニドライブファイルをダウンロードする機会を逃し得ることを理解されたい。ストリーミングシグネチャ定義ファイルは、完全シグネチャ定義ファイルに見られる情報に追加されるものであり、後続する各ストリーミングシグネチャ定義ファイルは、新たに到着した認証マルウェアシグネチャのみを含むため、クライアントコンピュータのストリーミングシグネチャ定義データセットに見られるシグネチャにギャップがあり得る。しかし、完全シグネチャ定義データセットの次の更新により、クライアントコンピュータを最新の状態にすることになり、すべてのギャップがその時点で埋められることをさらに理解されたい。したがって、本発明の実施形態を実施するクライアントコンピュータは、本発明の実施形態を実施しないクライアントコンピュータ（例えば、完全シグネチャ定義のみを受信するクライアント）よりも悪くなることはあり得ず、本発明の実施形態を実施するクライアントコンピュータは、本発明の実施形態を実施しないクライアントコンピュータよりもはるかに素早く、マルウェアの新しいインスタンスに対して潜在的に保護することができる。完全シグネチャ定義およびストリーミングシグネチャ定義の両方のクライアントコンピュータへの更新閾値期間を、シグネチャ更新サーバに構成される発行期間と同じ期間に設定すべきであることも理解されたい。
【００４２】
本発明の実施形態は、クライアント上のシグネチャデータセットのより頻繁な（例えば、約数分単位）更新を提供するのみならず、完全シグネチャ定義データセットをより頻繁に発行するよりもネットワーク帯域幅利用に対する影響が最小な状態でそのような機能を提供もする。そのような帯域幅消費の低減は、ストリーミングシグネチャ定義ファイルが、発行期間中に新しいシグネチャのみを含むため、実現される。そのようなシグネチャは平均で５０バイトであり、５分毎に５０〜１５０個の新しいシグネチャがあると予想されるため、ストリーミングシグネチャ定義ミニドライブファイルは２５００〜７５００バイトであると予想される。その場合、ネットワーク帯域幅への影響を複数の配布サーバに分散させることができ、ネットワーク帯域幅への影響は、ストリーミングシグネチャ定義を要求するクライアントコンピュータの台数またはプッシュ送信配布サーバがストリーミングシグネチャ定義を提供するメカニズム（例えば、ブロードキャストまたはマルチキャスト）に依存する。
【００４３】
計算・ネットワーク環境の例
上に示したように、本発明は、様々なコンピュータシステムおよびネットワークを使用して実施することができる。そのような１つの計算・ネットワーク環境の例について、図６および図７を参照して以下に説明する。
【００４４】
図６は、本発明の実施形態の実施に適したコンピュータシステム６１０（例えば、シグネチャ更新サーバ１１０およびクライアントコンピュータ１２０（１）〜（Ｍ））のブロック図を示す。コンピュータシステム６１０は、中央プロセッサ６１４、システムメモリ６１７（通常、ＲＡＭであるが、ＲＯＭ、フラッシュＲＡＭ等を含むこともできる）、入／出力コントローラ６１８、オーディオ出力インタフェース６２２を介するスピーカシステム６２０等の外部オーディオ装置、ディスプレイアダプタ６２６を介する表示画面６２４等の外部装置、シリアルポート６２８および６３０、キーボード６３２（キーボードコントローラ６３３とインタフェースする）、ストレージインタフェース６３４、フロッピーディスク６３８を受けるように動作可能なフロッピーディスクドライブ６３７、ファイバチャネルネットワーク６９０に接続するように動作可能なホストバスアダプタ（ＨＢＡ）インタフェースカード６３５Ａ、ＳＣＳＩバス６３９に接続するように動作可能なホストバスアダプタ（ＨＢＡ）インタフェースカード６３５Ｂ、ならびに光ディスク６４２を受けるように動作可能な光ディスクドライブ６４０等のコンピュータシステム６１０の主要サブシステムを相互接続するバス６１２を含む。マウス６４６（または他のポイント・クリック装置であり、シリアルポート６２８を介してバス６１２に結合される）、モデム６４７（シリアルポート６３０を介してバス６１２に結合される）、およびネットワークインタフェース６４８（バス６１２に直接結合される）も含まれる。
【００４５】
バス６１２は、中央プロセッサ６１４とシステムメモリ６１７との間のデータ通信を可能にし、システムメモリ６１７は、上述したように、読み取り専用メモリ（ＲＯＭ）またはフラッシュメモリ（いずれも図示せず）およびランダムアクセスメモリ（ＲＡＭ）（図示せず）を含み得る。ＲＡＭは一般に、オペレーティングシステムおよびアプリケーションプログラムがロードされるメインメモリである。ＲＯＭまたはフラッシュメモリは、コードの中でも特に、周辺機器との対話等の基本ハードウェア動作を制御する基本入出力システム（ＢＩＯＳ）を含み得る。コンピュータシステム６１０に存在するアプリケーションは一般には、ハードディスクドライブ（例えば、固定ディスク６４４）、光ドライブ（例えば、光ドライブ６４０）、フロッピーディスクユニット６３７、または他の記憶媒体等のコンピュータ可読媒体に記憶され、コンピュータ可読媒体を介してアクセスされる。さらに、アプリケーションは、ネットワークモデム６４７またはインタフェース６４８を介してアクセスされた場合にアプリケーションおよびデータ通信技術に従って変調される電子信号の形態であってもよい。
【００４６】
ストレージインタフェース６３４は、コンピュータシステム６１０の他のストレージインタフェースと同様に、固定ディスクドライブ６４４等の、情報を記憶し、かつ／または検索するための標準コンピュータ可読媒体に接続することができる。固定ディスクドライブ６４４は、コンピュータシステム６１０の部分であってもよく、または別個であり、他のインタフェースシステムを通してアクセスしてもよい。モデム６４７は、電話回線リンクを介してリモートサーバへの直接接続またはインターネットサービスプロバイダ（ＩＳＰ）を介してインターネットへの直接接続を提供し得る。ネットワークインタフェース６４８は、ＰＯＰ（ｐｏｉｎｔ ｏｆ ｐｒｅｓｅｎｃｅ）を介するインターネットへの直接ネットワークリンクを介してリモートサーバに直接接続を提供し得る。ネットワークインタフェース６４８は、デジタルセルラ電話接続、セルラデジタルパケットデータ（ＣＤＰＤ）接続、デジタル衛星データ接続等を含む無線技法を使用してそのような接続を提供し得る。
【００４７】
多くの他の装置またはサブシステム（図示せず）も同様に接続し得る（例えば、ドキュメントスキャナ、デジタルカメラ等）。逆に、本発明を実施するために、図６に示されているすべての装置が存在する必要はない。装置およびサブシステムは、図６に示される方法とは異なる方法で相互接続されてもよい。図６に示されるようなコンピュータシステムの動作は、当分野において容易に知られており、本願において詳細に考察しない。本発明を実施するためのコードは、システムメモリ６１７、固定ディスク６４４、光ディスク６４２、またはフロッピーディスク６３８のうちの１つまたは複数等のコンピュータ可読記憶媒体に記憶することができる。コンピュータシステム６１０に提供されるオペレーティングシステムは、ＭＳ−ＤＯＳ（登録商標）、ＭＳ−ＷＩＮＤＯＷＳ（登録商標）、ＯＳ／／２（登録商標）、ＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（登録商標）、または別の既知のオペレーティングシステムであり得る。
【００４８】
さらに、本明細書において説明される信号に関して、信号を第１のブロックから第２のブロックに直接送信してもよく、又は信号をブロック間で変更してもよい（例えば、増幅、減衰、遅延、ラッチ、バッファリング、反転、フィルタリング、または他の様式での変更）ことを当業者なら理解するであろう。上述した実施形態の信号は、あるブロックから次のブロックに送信されることを特徴とするが、本発明の他の実施形態は、信号の情報および／または機能側面がブロック間で送信される限り、そのような直接送信される信号に代えて、変更された信号を含み得る。ある程度、第２のブロックでの信号入力は、関わる回路の物理的制限により（例えば、いくらかの減衰および遅延が必然的に存在することになる）、第１のブロックからの第１の信号出力から導出される第２の信号として概念化することができる。したがって、本明細書において使用される、第１の信号から導出される第２の信号は、回路制限によるものであるか、それとも第１の信号の情報的側面および／または機能的側面を変更しない他の回路要素を通過することによるものであるかに関わらず、第１の信号または第１の信号への任意の変更を含む。
【００４９】
図７は、クライアントシステム７１０、７２０、および７３０、ならびに記憶サーバ７４０Ａおよび７４０Ｂ（これらのうちの任意のものはコンピュータシステム６１０を使用して実施することができる）がネットワーク７５０に結合されるネットワークアーキテクチャ７００を示すブロック図である。記憶サーバ７４０Ａは、直接取り付けられた記憶装置７６０Ａ（１）〜（Ｎ）としてさらに示され、記憶サーバ７４０Ｂは、直接取り付けられた記憶装置７６０Ｂ（１）〜（Ｎ）を有して示される。記憶サーバ７４０Ａおよび７４０Ｂは、ＳＡＮファブリック７７０にも接続されるが、ストレージエリアネットワークへの接続は、本発明の動作に必要なものではない。ＳＡＮファブリック７７０は、ネットワーク７５０を介しての記憶サーバ７４０Ａおよび７４０Ｂ、ひいてはクライアントシステム７１０、７２０、および７３０による記憶装置７８０（１）〜（Ｎ）へのアクセスをサポートする。インテリジェント記憶装置アレイ７９０も、ＳＡＮファブリック７７０を介してアクセス可能な特定の記憶装置の例として示される。
【００５０】
コンピュータシステム６１０を参照すると、モデム６４７、ネットワークインタフェース６４８、または他の何等かの方法を使用して、クライアントコンピュータシステム７１０、７２０、および７３０のそれぞれからネットワーク７５０への接続を提供することができる。クライアントシステム７１０、７２０、および７３０は、例えば、ウェブブラウザまたは他のクライアントソフトウェア（図示せず）を使用して記憶サーバ７４０Ａまたは７４０Ｂ上の情報にアクセスすることが可能である。そのようなクライアントは、クライアントシステム７１０、７２０、および７３０が、記憶サーバ７４０Ａもしくは７４０Ｂ、記憶装置７６０Ａ（１）〜（Ｎ）、７６０Ｂ（１）〜（Ｎ）、７８０（１）〜（Ｎ）のうちの１つ、またはインテリジェント記憶装置アレイ７９０によりホストされるデータにアクセスできるようにする。図７は、データを交換するために、インターネット等のネットワークを使用することを示すが、本発明はインターネットまたはいかなる特定のネットワークに基づく環境にも限定されない。
【００５１】
他の実施形態
本発明は、上述した利点ならびに固有の他の利点を得るように上手く適応する。本発明は、本発明の特定の実施形態を参照することにより図示され、説明され、定義されたが、そのような参照は本発明の対する限定を暗示せず、そのような限定は暗示されない。本発明は、形態および機能に関して、関連分野の当業者が思いつくであろうかなりの変更、代替、および均等物が可能である。図示され説明される実施形態は単なる例であり、本発明の範囲を網羅するものではない。
【００５２】
上記では、他の構成要素内に含まれる構成要素（例えば、コンピュータシステム６１０の構成要素として示される様々な要素）を含む実施形態について説明した。そのようなアーキテクチャは単なる例であり、実際には、同じ機能を達成する他の多くのアーキテクチャを実施し得る。抽象的ではなるが、それでもやはり明確な意味で、同じ機能を達成する構成要素の任意の構成は、所望の機能が達成されるように効率的に「関連付けられる」。したがって、本明細書において組み合わせられて特定の機能を達成する任意の２つの構成要素は、アーキテクチャまたは介在構成要素に関係なく、所望の機能が達成されるように互いに「関連付けられる」ものとして見ることができる。同様に、そうして関連付けられた任意の２つの構成要素は、互いに「動作可能に接続」または「動作可能に結合」されて、所望の機能を達成するものとして見ることもできる。
【００５３】
上記の詳細な説明は、ブロック図、フローチャート、および例の使用を介して本発明の様々な実施形態を説明した。例の使用により示される各ブロック図構成要素、フローチャートステップ、動作、および／または構成要素を、広範囲のハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせにより個々に、かつ／または集合的に実施可能なことを当業者なら理解するであろう。
【００５４】
本発明について完全に機能的なコンピュータシステムの文脈の中で説明したが、本発明を様々な形態でプログラム製品として配布可能なこと、および本発明が、実際に配布の実行に使用される特定の種類の信号搬送媒体に関係なく等しく適用されることを当業者なら理解するであろう。信号搬送媒体の例としては、コンピュータ可読記憶媒体、デジタル通信リンクおよびアナログ通信リンク等の伝送型媒体、ならびに将来開発される媒体記憶・配布システムが挙げられる。
【００５５】
上記実施形態は、特定のタスクを実行するソフトウェアモジュールにより実施することができる。本明細書において考察されるソフトウェアモジュールは、スクリプト、バッチ、または他の実行可能ファイルを含み得る。ソフトウェアモジュールは、磁気フロッピーディスク、ハードディスク、半導体メモリ（例えば、ＲＡＭ、ＲＯＭ、およびフラッシュ型媒体）、光ディスク（例えば、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、およびＤＶＤ）、または他の種類のメモリモジュール等の機械可読またはコンピュータ可読の記憶媒体に記憶し得る。本発明の実施形態による、ファームウェアまたはハードウェアモジュールの記憶に使用される記憶装置は、マイクロプロセッサ／メモリシステムに永久的に、取り外し可能に、または遠隔的に結合し得る半導体に基づくメモリも含み得る。したがって、モジュールをコンピュータシステムメモリに記憶して、モジュールの機能を実行するようにコンピュータシステムを構成することができる。本明細書において考察したモジュールを記憶するために、他の新しい様々な種類のコンピュータ可読記憶媒体を使用し得る。
【００５６】
上記説明は、本発明の例示を意図されるものであり、限定として解釈されるべきではない。本発明の範囲内の他の実施形態も可能である。当業者なら、本明細書において開示された構造および方法を提供するために必要なステップを容易に実施し、プロセスパラメータおよびステップの順序が単なる例として与えられ、所望の構造ならびに本発明の範囲内の変更を達成するために変更可能なことを理解するであろう。本明細書に開示される実施形態の変形および変更は、本発明の範囲から逸脱せずに、本明細書に記載される説明に基づいて行うことができる。
【００５７】
したがって、本発明は、すべての観点での均等物を完全に認識して、添付の特許請求の範囲によってのみ限定されることが意図される。
【００５８】
本発明についていくつかの実施形態に関連して説明したが、本発明は本明細書に記載される特定の形態に限定されることを意図されない。逆に、添付の特許請求の範囲により定義される本発明の範囲内に合理的に包含可能なそのような代替、変更、および均等物を包含することが意図される。
【産業上の利用可能性】
【００５９】
本発明の実施形態は、コンピュータセキュリティの分野に使用することができる。
【図１】
2014130614.tif 000003
【図２】
2014130614.tif 000004
【図３】
2014130614.tif 000005
【図４】
2014130614.tif 000006
【図５】
2014130614.tif 000007
【図６】
2014130614.tif 000008
【図７】
2014130614.tif 000009
【手続補正書】
【提出日】平成26年3月10日(2014.3.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
発行閾値時間が経過すると更新された完全シグネチャ定義ファイルが発行され、前記発行閾値時間の後、それぞれが更新前の前記完全シグネチャ定義ファイルに対する変更を含む複数のデルタ定義ファイルへのポインタと記憶領域へのポインタとを含むミニドライブファイルを受信するステップと、
クライアントコンピュータにインストールされた完全シグネチャ定義ファイルに関連付けられたバージョン識別子を、前記ミニドライブファイルで識別される、更新前のバージョンと比較して所定のデルタ定義ファイルに関連付けられた情報を識別するステップと、
前記デルタ定義ライフを前記記憶領域から要求するステップと
を含む、方法。
【請求項２】
前記クライアントコンピュータにインストールされた前記完全シグネチャ定義ファイルを前記デルタ定義ファイルを用いて更新するステップをさらに含み、
前記クライアントコンピュータにインストールされたストリーミングシグネチャ定義ファイルのバージョン識別子を当該クライアントコンピュータにインストールされた完全シグネチャ定義ファイルと比較するステップと、
前記クライアントコンピュータにインストールされた前記完全シグネチャ定義ファイルのバージョン識別子を含む前記ローカルのストリーミングシグネチャ定義ファイルを除去するステップとをさらに含む、請求項１に記載の方法。
【請求項３】
前記ミニドライブファイルを受信する前に第１のマルウェアシグネチャを含む第１のストリーミングシグネチャ定義ファイルを受信するステップをさらに含み、
前記クライアントコンピュータに格納された前記完全シグネチャ定義ファイルは、第１の複数のマルウェアシグネチャを含む、請求項１または２に記載の方法。
【請求項４】
前記クライアントコンピュータに格納される完全シグネチャ定義ファイルと前記第１のストリーミングシグネチャ定義ファイルを用いて、前記第１のマルウェアシグネチャと前記第１の複数のマルウェアシグネチャに対応するマルウェアのインスタンスを検索するステップをさらに含む、請求項２または３に記載の方法。
【請求項５】
前記第１のストリーイングシグネチャ定義ファイルを受信した後第２のストリーミングシグネチャ定義ファイルを受信するステップをさらに含み、前記第２のストリーミングシグネチャ定義ファイルは、前記第１の複数のマルウェアシグネチャを含まず第２の複数のマルウェアシグネチャを含み、前記第２の複数のマルウェアシグネチャに対応するマルウェアのインスタンスを検索するために用いられる、請求項３または４に記載の方法。
【請求項６】
プロセッサにて実行されることで当該プロセッサに方法を実行させるためのプログラム命令を格納するコンピュータ読取り可能な記憶媒体であって、前記方法は、
発行閾値時間が経過すると更新された完全シグネチャ定義ファイルが発行され、前記発行閾値時間の後、それぞれが更新前の前記完全シグネチャ定義ファイルに対する変更を含む複数のデルタ定義ファイルへのポインタと記憶領域へのポインタとを含むミニドライブファイルを受信するステップと、
クライアントコンピュータにインストールされた完全シグネチャ定義ファイルに関連付けられたバージョン識別子を、前記ミニドライブファイルで識別される、更新前のバージョンと比較して所定のデルタ定義ファイルに関連付けられた情報を識別するステップと、
前記デルタ定義ライフを前記記憶領域から要求するステップとを含む、コンピュータ読取り可能な記憶媒体。
【請求項７】
前記方法が、
前記クライアントコンピュータにインストールされた前記完全シグネチャ定義ファイルを前記デルタ定義ファイルを用いて更新するステップをさらに含み、
前記クライアントコンピュータにインストールされたストリーミングシグネチャ定義ファイルのバージョン識別子を当該クライアントコンピュータにインストールされた完全シグネチャ定義ファイルと比較するステップと、
前記クライアントコンピュータにインストールされた前記完全シグネチャ定義ファイルのバージョン識別子を含む前記ローカルのストリーミングシグネチャ定義ファイルを除去するステップとをさらに含む、請求項６に記載のコンピュータ読取り可能な記憶媒体。
【請求項８】
前記方法は、前記ミニドライブファイルを受信する前に第１のマルウェアシグネチャを含む第１のストリーミングシグネチャ定義ファイルを受信するステップをさらに含み、
前記クライアントコンピュータに格納された前記完全シグネチャ定義ファイルは、第１の複数のマルウェアシグネチャを含む、請求項６または７に記載のコンピュータ読取り可能な記憶媒体。
【請求項９】
前記方法は、前記クライアントコンピュータに格納される完全シグネチャ定義ファイルと前記第１のストリーミングシグネチャ定義ファイルを用いて、前記第１のマルウェアシグネチャと前記第１の複数のマルウェアシグネチャに対応するマルウェアのインスタンスを検索するステップをさらに含む、請求項８に記載のコンピュータ読取り可能な記憶媒体。
【請求項１０】
前記方法は、前記第１のストリーイングシグネチャ定義ファイルを受信した後第２のストリーミングシグネチャ定義ファイルを受信するステップをさらに含み、
前記第２のストリーミングシグネチャ定義ファイルは、前記第１の複数のマルウェアシグネチャを含まず第２の複数のマルウェアシグネチャを含み、前記第２の複数のマルウェアシグネチャに対応するマルウェアのインスタンスを検索するために用いられる、請求項８または９に記載のコンピュータ読取り可能な記憶媒体。
【請求項１１】
プロセッサと、当該プロセッサに接続されるとともに当該プロセッサにて実行可能な命令を格納するメモリとを備える装置であって、
前記命令は、
発行閾値時間が経過すると更新された完全シグネチャ定義ファイルが発行され、前記発行閾値時間の後、それぞれが更新前の前記完全シグネチャ定義ファイルの変更を含む複数のデルタ定義ファイルへのポインタと記憶領域へのポインタとを含むミニドライブファイルを受信するステップと、
クライアントコンピュータにインストールされた完全シグネチャ定義ファイルに関連付けられたバージョン識別子を、前記ミニドライブファイルで識別される、更新前のバージョンと比較して所定のデルタ定義ファイルに関連付けられた情報を識別するステップと、
前記デルタ定義ライフを前記記憶領域から要求するステップと
を含む、装置。
【請求項１２】
前記命令は、
前記クライアントコンピュータにインストールされた前記完全シグネチャ定義ファイルを前記デルタ定義ファイルを用いて更新するステップをさらに含み、
前記クライアントコンピュータにインストールされたストリーミングシグネチャ定義ファイルのバージョン識別子を当該クライアントコンピュータにインストールされた完全シグネチャ定義ファイルと比較するステップと、
前記クライアントコンピュータにインストールされた前記完全シグネチャ定義ファイルのバージョン識別子を含む前記ローカルのストリーミングシグネチャ定義ファイルを除去するステップとをさらに含む、請求項１１に記載の装置。
【請求項１３】
前記命令は、
前記ミニドライブファイルを受信する前に第１のマルウェアシグネチャを含む第１のストリーミングシグネチャ定義ファイルを受信するステップをさらに含み、
前記完全シグネチャ定義ファイルのローカルコピーは、第１の複数のマルウェアシグネチャを含む、請求項１１または１２に記載の装置。
【請求項１４】
前記方法は、
前記クライアントコンピュータに格納される完全シグネチャ定義ファイルと前記第１のストリーミングシグネチャ定義ファイルを用いて、前記第１のマルウェアシグネチャと前記第１の複数のマルウェアシグネチャに対応するマルウェアのインスタンスを検索するステップをさらに含む、請求項１３に記載の装置。
【請求項１５】
前記方法は、
前記第１のストリーイングシグネチャ定義ファイルを受信した後第２のストリーミングシグネチャ定義ファイルを受信するステップをさらに含み、前記第２のストリーミングシグネチャ定義ファイルは、前記第１の複数のマルウェアシグネチャを含まず第２の複数のマルウェアシグネチャを含み、前記第２の複数のマルウェアシグネチャに対応するマルウェアのインスタンスを検索するために用いられる、請求項１３または１４に記載の装置。
【外国語明細書】
2014130614000001.pdf