説明

ファイル分類を特定する方法およびシステム

ファイル分類を特定するためのコンピュータにより実施される方法。本方法は、第1の計算システムに記憶されている第1のファイルの識別情報を特定するステップを含み得る。本方法は、第1のファイルの識別情報を第2の計算システムに送信することにより、分類情報について第2の計算システムに問い合わせるステップも含み得る。第1の計算システムは、問い合わせに応答して、第2のファイルの識別情報を受信し得る。第1の計算システムは、分類情報も受信し得る。分類情報は、第1のファイルおよび第2のファイルが信頼済みであることを示し得る。第1の計算システムは、第2のファイルの識別情報を使用して、第2のファイルが第1の計算システムに記憶されていることを特定し得る。第1の計算システムはまた、セキュリティスキャンから第1および第2のファイルを除外することにより、分類情報を第1および第2のファイルに適用し得る。

【発明の詳細な説明】
【技術分野】
【0001】
消費者およびビジネスは、機密データの記憶にますますコンピュータに頼っている。その結果、悪意のあるプログラマが、他人のコンピュータの違法制御およびアクセスを得る努力を増し続けているように見える。悪意のある動機を有するコンピュータプログラマは、ウィルス、トロイの木馬、ワーム、ならびに他人に属するコンピュータシステムおよびデータを損なう他のプログラムを作成してきており、作成し続ける。これら悪意のあるプログラムは多くの場合、マルウェアと呼ばれる。
【背景技術】
【0002】
セキュリティソフトウェア企業は、マルウェアシグネチャ(例えば、マルウェアを識別するハッシュ)を作成し顧客に定期的に配布することにより、増加傾向にあるマルウェアと闘っている。例えば、セキュリティソフトウェア企業は、1日に複数回、マルウェアシグネチャ更新を顧客に送信し得る。マルウェアシグネチャを頻繁に更新することにより、セキュリティソフトウェア企業は、顧客が新しい脅威および変化する脅威から各自のコンピュータのセキュリティを保護するのを助け得る。
【発明の概要】
【発明が解決しようとする課題】
【0003】
顧客がマルウェア定義更新を受信する都度、顧客のコンピュータは多くのファイルを再スキャンして、マルウェアがコンピュータで実行されていないことを保証する必要があり得る。その結果、マルウェアシグネチャ更新を受信する都度、顧客のコンピュータはパフォーマンスヒットを受け得る。顧客のコンピュータおよびネットワークの性能損失は、シグネチャ更新のサイズおよび頻度が増大するにつれて増大する。性能損失は、負の顧客経験に繋がる恐れがある。
【0004】
セキュリティソフトウェア開発者は、既知の良好なファイル(例えば、マルウェアがないことが分かっているファイル)をスキップすることにより、セキュリティスキャンを実行するために必要な時間およびネットワークトラフィックを低減しようとしてきた。ファイルをスキップする前に、セキュリティソフトウェアは通常、そのファイルが正当なものであり、マルウェアがないことを識別しなければならない。セキュリティソフトウェア開発者は、セキュリティスキャン時間を低減するために、既知の良好なファイルを識別する少なくとも2つの異なる方法を実施してきた。
【0005】
第1の方法では、クライアントマシンが、既知の良好なファイルのハッシュのデータベースを保持し得る。マルウェアスキャンを実行する際、クライアントマシンはデータベースを照会して、既知の良好なファイルを識別し得る。次に、クライアントマシンは、既知のファイルをスキップし、スキャンをより迅速に完了できるようにし得る。しかし、既知の良好なファイルのハッシュのデータベースを維持することは、理想的ではない場合がある。データベースの維持には、ネットワークトラフィックを増大させる頻繁な更新が必要であり得る。データベースは大きくなる可能性もあり、期待される効率を提供しない場合がある。
【0006】
第2の方法では、クライアントマシンがドライブをスキャンし得る。クライアントマシンは、ドライブに記憶されているファイルのハッシュを計算し、ハッシュをサーバに送信し得る。次に、サーバは、ハッシュが既知の良好なファイルに対応するか否かを判断し得る。この技法にも欠点がある。ファイルハッシュをサーバに送信することは、不必要なクライアント−サーバ通信を生み出し、大きすぎるネットワーク帯域幅を消費し得る。さらに、多くの消費者インターネット接続は非対称であり、アップロード帯域幅はダウンロード帯域幅よりもはるかに小さい。したがって、多数のハッシュを消費者のコンピュータからセキュリティソフトウェアサーバへアップロードすることは、低速でリソースを消費するプロセスであり得る。
【0007】
本願は、2008年5月30日に出願された「Methods and Systems For Scanning Files For Malware」という名称の米国特許出願第12/130,559号明細書および2008年5月30日に出願された「Systems and Methods for Determining a File Set」という名称の米国特許出願第12/130,839号明細書に関連し、これら特許出願のそれぞれの開示をそのまま参照により本明細書に援用する。
【課題を解決するための手段】
【0008】
本開示の実施形態は、信頼済みファイル(すなわち、既知の良好なファイル)をスキップすることによるセキュリティスキャン速度の増大に関する。クライアント装置(例えば、第1の計算システム)上のセキュリティモジュールは、クライアント装置上の信頼済みファイルを識別しようとし得る。信頼済みファイルを識別するプロセスにおいて、セキュリティモジュールは、クライアント装置に記憶されている第1のファイルの識別情報を特定し得る。セキュリティモジュールは、第1のファイルのダイジェストを計算することにより、識別情報を特定し得る。セキュリティモジュールは、第1のファイルが記憶されているディレクトリの名称を識別することによっても識別情報を特定し得る。セキュリティモジュールは、第1のファイルの識別情報をサーバに送信することにより、サーバに分類情報を問い合わせ得る。
【0009】
サーバは、識別情報を使用して、第1のファイルの分類情報について分類データベースを検索し得る。例えば、サーバは、第1のファイルのダイジェストに一致するファイルダイジェストについて分類データベースを検索し得る。ファイルダイジェストの検索に加えて、またはその代替として、サーバは、識別情報内に含まれたディレクトリ名に一致する分類データベース内のディレクトリ名について検索し得る。サーバは、ディレクトリ名に関連付けられた1つまたは複数の追加ファイルも見つけ得る。次に、サーバは、追加ファイルの識別情報をクライアント装置に送信し得る。サーバは、第1のファイルおよび追加ファイルの分類情報も第1の計算装置に送信し得る。
【0010】
分類情報は、第1のファイルおよび追加ファイルが信頼済みか否かを示し得る。ファイルが信頼済みである場合、第1の計算装置上のセキュリティソフトウェアは、それらファイルをセキュリティスキャンから除外し得る。信頼済みファイルを除外することにより、セキュリティスキャンをより効率的に実施し得る。さらに、本開示の実施形態は、クライアント装置が複数のファイルの分類情報を得るために1つのファイルダイジェストをアップロードする必要があるだけであるため、信頼済みファイルを識別するために必要なネットワーク帯域幅の量、特にクライアント側のアップロード帯域幅を低減し得る。他の実施形態では、クライアント装置は、少数のファイルダイジェストをサーバに送信し、サーバは、それらファイルおよび追加ファイルの分類情報を返し得る。
【0011】
任意の上述した実施形態からの特徴は、本明細書において説明される一般原理に従って互いに組み合わせて使用し得る。これらおよび他の実施形態、特徴、および利点は、添付の図面および特許請求の範囲と併せて以下の詳細な説明を読んだ上でより十分に理解されるであろう。
【0012】
添付図面は、いくつかの例示的な実施形態を示し、本明細書の一部である。以下の説明と併せて、これら図面は、本開示の様々な原理を実証し説明する。
【図面の簡単な説明】
【0013】
【図1】本開示の実施形態を実施する例示的なネットワークのブロック図である。
【図2】特定の実施形態によるファイル分類を特定する例示的な方法の流れ図である。
【図3】特定の実施形態によるファイル分類を特定する別の例示的な方法のブロック図である。
【図4】特定の実施形態による例示的な分類情報データベースのブロック図である。
【図5】特定の実施形態によるクライアントとサーバとの例示的な通信の流れ図である。
【図6】本明細書において説明され、かつ/または図示される実施形態のうちの1つまたは複数を実施可能な例示的な計算システムのブロック図である。
【図7】本明細書において説明され、かつ/または図示される実施形態のうちの1つまたは複数を実施可能な例示的な計算ネットワークのブロック図である。
【発明を実施するための形態】
【0014】
図面全体を通して、同一の参照文字および説明は、同様であるが必ずしも同一である必要はない要素を示す。本明細書において説明される例示的な実施形態には様々な変更および代替の形態が可能であるが、特定の実施形態が例として図面に示されており、それら特定の実施形態について本明細書において詳細に説明する。しかし、本明細書において説明される例示的な実施形態は、開示される特定の形態への限定を意図しない。むしろ、本開示は、添付の特許請求の範囲内に入るすべての変更、均等物、および代替を包含する。
【0015】
さらに詳細に後述するように、本開示は一般に、1つまたは複数のファイルの識別情報をサーバに送信することにより、複数のファイルのファイル分類を特定するシステムおよび方法に関する。以下に詳述するように、クライアント装置上のセキュリティソフトウェアは、第1のファイルの分類情報についてサーバ上の分類データベースを照会し得る。要求に応答して、サーバは、第1のファイルの分類情報をクライアント装置に送信し得る。サーバは、第1のファイルに関連付けられた1つまたは複数の追加ファイルの識別情報および分類情報もクライアント装置に送信し得る。クライアント装置は、分類情報を使用して、クライアント装置上のファイルが信頼済みであり、セキュリティスキャンでスキップ可能であるか否かを判断し得る。本開示の実施形態は、クライアントアップストリーム帯域幅を低減すると共に、クライアントシステム上のファイルを分類するために必要なネットワーク往復要求数を最低限に抑え得る。本開示の実施形態は、様々な他の特徴および利点も提供する。
【0016】
図1は、クライアント120およびサーバ150を有するネットワーク100を示す。クライアント120およびサーバ150は、ネットワーク140を介して通信し得る。ネットワーク140は、インターネット、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、または他の任意の適したコンピュータネットワークであり得る。クライアント120は、デスクトップコンピュータ、ラップトップコンピュータ、モバイル計算装置、ネットワーク計算装置、または他の任意の適した計算装置であり得る。いくつかの実施形態では、クライアント120は第1の計算装置と呼ばれ得る。クライアント120は、セキュリティソフトウェア122、信頼済みファイル124、アプリケーション126、およびディレクトリ128を含み得る。
【0017】
セキュリティソフトウェア122は、ファイルの識別情報を特定し、ファイルの分類情報について第2の計算システムに問い合わせるようにプログラムされた任意のモジュール、アプリケーション、または他のコンピュータ実行可能コードであり得る。セキュリティソフトウェア122は、セキュリティソフトウェア122(または他の任意のアプリケーション)がセキュリティスキャンで信頼済みファイルをスキップできるように、クライアント120上のどのファイルが信頼済みであるかを判断し得る。クライアント120上のファイルが信頼済みであるか否かを判断するために、セキュリティソフトウェア122は、ディレクトリ128内のファイル130等の第1のファイルを識別し得る。ディレクトリ128は、クライアント120上のファイルシステム内のディレクトリであり得る。
【0018】
ファイル130を識別した後、セキュリティソフトウェア122は、ファイル130の識別情報を特定し得る。例えば、セキュリティソフトウェア122は、ファイル130のダイジェストを計算し得る。他の実施形態では、セキュリティソフトウェア122は、ファイル130の事前に計算されたダイジェストを識別し得る。セキュリティソフトウェア122は、ディレクトリ128のディレクトリ名を特定し得る。いくつかの実施形態では、ディレクトリ128のディレクトリ名は、ディレクトリ128の正規化されたディレクトリパスであり得る。ファイル130の識別情報を特定することにより、セキュリティソフトウェア122は、ファイル130全体ではなく識別情報をサーバ150に送信することにより、ファイル130の分類情報を要求可能であり得る。通常、ファイルの識別情報は、ファイル自体よりも小さいサイズであり得る。したがって、ファイルの識別情報を送信することで消費されるネットワーク帯域幅は、ファイル自体を送信するよりも少ないものであり得る。
【0019】
セキュリティソフトウェア122は、ファイル130の識別情報をサーバ150に送信して、ファイル130の分類情報について分類情報データベース152を照会し得る。図4および対応する説明は、分類データベースの例および分類データベースをどのように作成し得るかを提供する。サーバ150は、ファイル130に関連付けられた分類情報について分類情報データベース152を検索し得る。いくつかの実施形態では、サーバ150は、ファイル130のダイジェストに一致するダイジェストについて分類情報データベース152を検索し得る。サーバ150は、ダイジェスト162がファイル130のダイジェストに一致することを発見し得る。
【0020】
いくつかの実施形態では、ファイル130のダイジェストに一致するダイジェストについて分類情報データベース152を検索する前に、サーバ150は、ディレクトリ128のディレクトリ名に一致するディレクトリについて分類情報データベースを検索し得る。例えば、サーバ150は、ディレクトリ名160がディレクトリ128のディレクトリ名に一致すると判断し得る。ディレクトリ128のディレクトリ名に一致する分類情報データベース152内のディレクトリを識別した後、サーバ150は、ファイル130のダイジェストに一致するダイジェストのディレクトリに関連付けられたファイルを検索し得る。
【0021】
分類情報データベース152は、ファイル130に関連付けられた追加のファイルダイジェストを識別し得る。例えば、分類情報データベース152は、ファイルダイジェスト164および166もディレクトリ名160に関連付けられているため、ファイルダイジェスト164および166を識別し得る。分類情報データベース152は、ダイジェスト164および166をクライアント120上のセキュリティソフトウェア122に送信し得る。分類情報データベース152は、分類情報170、172、および174もセキュリティソフトウェア122に送信し得る。
【0022】
追加ファイルの識別情報を受信した後、セキュリティソフトウェア122は、これら追加ファイルがディレクトリ128内に含まれているか否かを判断し得る。例えば、セキュリティソフトウェア122は、ダイジェスト164および166がファイル132および134のダイジェストに一致するか否かを判断し得る。この判断プロセスの一環として、セキュリティソフトウェア122は、ファイル132および134のダイジェストを計算し得る。他の実施形態では、セキュリティソフトウェア122は、ファイル132および134の事前に計算されたダイジェストを識別し得る。
【0023】
セキュリティソフトウェア122は、ダイジェスト164がファイル132に対応し、ダイジェスト166がファイル134に対応すると判断し得る。次に、セキュリティソフトウェア122は、分類情報172をファイル132に適用し、分類情報174をファイル134に適用し得る。セキュリティソフトウェア122は、分類情報170をファイル130に適用することもできる。分類情報170、172、および174により、ファイル130、132、および134が信頼済みであることが示される場合、セキュリティソフトウェア122は、ファイル130、132、および134をセキュリティスキャンから除外することにより、分類情報170、172、および174をこれらファイルに適用し得る。図1は、ディレクトリに関連付けられた(例えば、記憶された)各ファイルに別個の分類情報を示すが、いくつかの実施形態では、ディレクトリ内の各ファイルに同じ分類情報を関連付け得る。
【0024】
図1は、クライアント120がアプリケーション126を含み得ることを示す。ディレクトリ128は、アプリケーション126によりインストールされ、かつ/またはアプリケーション126に他の様式で関連付けられたフォルダであり得る。分類情報データベース152は、アプリケーション126によりインストールされたファイルの分類情報を含みうる。例えば、セキュリティモジュールは、アプリケーション126のインストールを監視して、どのファイルがアプリケーション126によりインストールされるかを判断し得る。次に、セキュリティモジュールは、アプリケーション126によりインストールされたファイルを解析し分類し得る。図4に対応する開示では、ファイルを解析し分類するプロセスについて考察する。
【0025】
図2は、クライアント120等のクライアント装置により実行し得るステップを示す流れ図である。クライアント装置上のセキュリティソフトウェアは、第1の計算システムに記憶されている第1のファイルの識別情報を特定し得る(ステップ210)。第1のファイルの識別情報を特定することは、第1のファイルのダイジェストを計算することを含み得る。ダイジェストは、ハッシュ等のファイル識別子であり得る。ハッシュは、値、コード、和、またはハッシュ関数(例えば、任意の長さのデータストリームの入力をとり、特定の固定サイズの値を有する出力を生成する関数)を使用して計算される他のデータであり得る。ハッシュ関数は、巡回冗長検査(CRC)ハッシュ関数であり得る。他の実施形態では、ハッシュ関数は、メッセージ−ダイジェストアルゴリズム5(MD5)ハッシュ関数等の暗号ハッシュ関数であり得る。ハッシュ関数は、SHA−0ハッシュ関数、SHA−1ハッシュ関数、SHA−256ハッシュ関数、またはSHA−512ハッシュ関数等のセキュアハッシュアルゴリズム(SHA)暗号ハッシュ関数であってもよい。第1のファイルのハッシュは、他の任意の公開または秘密ハッシュアルゴリズムを第1のファイルに適用することによって計算してもよい。
【0026】
第1のファイルの識別情報を特定することは、第1のファイルが記憶されているディレクトリを特定することも含み得る。例えば、セキュリティソフトウェアは、第1のファイルが記憶されているディレクトリのディレクトリ名を特定し得る。ディレクトリ名は、ディレクトリのファイルパスであり得る。いくつかの実施形態では、ディレクトリ名は、特定マシンの絶対ディレクトリパスを、ディレクトリパスのマシン固有の構成要素をなくした汎用ディレクトリパスに変換することにより作成された正規化されたディレクトリパスであり得る。換言すれば、正規化されたディレクトリパスは、クライアントマシンに固有のディレクトリパス内のデータを除去するが、ディレクトリがインストールされ得る任意のマシンに汎用のディレクトリパスの部分を保持することにより作成し得る。
【0027】
セキュリティソフトウェアは、第1のファイルの識別情報を特定した後、分類情報について第2の計算システム(例えば、サーバ)に問い合わせし得る(ステップ220)。セキュリティソフトウェアは、第1のファイルの識別情報を第2の計算システムに送信することにより、第2の計算システムに問い合わせし得る。例えば、セキュリティソフトウェアは、第1のファイルのダイジェストおよびディレクトリ名を第2の計算システム上の分類情報データベースに送信し得る。
【0028】
第1の計算システムは、問い合わせに応答して、第2のファイルの識別情報を受信し得る(ステップ230)。第2のファイルの識別情報は、第2のファイルのファイル名、第2のファイルのサイズ、第2のファイルのダイジェスト、および/または第2のファイルの他の任意の識別情報であり得る。第1の計算システムは、第1および第2のファイルの分類情報も受信し得る(ステップ230)。分類情報は、第1および第2のファイルが信頼済みであるか否かを示す分類情報であり得る。いくつかの実施形態では、分類情報は、ファイルが信頼済みであるか否かを示す両ファイルに関連付けられた単一の分類であり得る。他の実施形態では、第1の計算装置は、第1および第2のファイルのそれぞれに異なる分類情報を受信し得る。
【0029】
セキュリティソフトウェアは、第2のファイルの識別情報を使用して、第2のファイルが第1の計算システムに記憶されていると判断し得る(ステップ240)。第2のファイルの識別情報を使用して、第2のファイルが第1の計算装置に記憶されていると判断することは、第1の計算装置が、第2のファイルのファイル名を有するファイルを含むと判断すること、および第2のファイルのダイジェストが、第2のファイルのファイル名を有するファイルのダイジェストに一致すると判断することを含み得る。換言すれば、セキュリティソフトウェアはまず、第1の計算装置をチェックして、第1の計算装置が、第2の計算システムから受信した名称に一致する名称を有するファイルを有するか否かを判断し得る。セキュリティソフトウェアは、ファイル名称の一致を見つけた場合、第1の計算装置上のファイルのハッシュを第2の計算装置から受信したハッシュと比較し得る。ハッシュが一致する場合、セキュリティソフトウェアは、第1の計算装置上のファイルが、第2の計算装置により識別されたファイルである(すなわち、第1の計算装置が第2のファイルを含む)と判断し得る。
【0030】
いくつかの実施形態では、第2のファイルの識別情報は、第2のファイルのサイズを含み得る。そのような実施形態では、第2のファイルの識別情報を使用して、第2のファイルが第1の計算装置に記憶されているかを判断することは、第2のファイルのファイル名を有するファイルが第2のファイルと同じサイズであると判断することを含み得る。換言すれば、セキュリティソフトウェアは、ファイルが第2のファイルと同じサイズであると判断し、ファイルのハッシュ関数が一致すると判断し、かつ/またはファイルが同じ名称を有すると判断することにより、ファイルが第2のファイルであると判断し得る。
【0031】
セキュリティソフトウェアは、第1および第2のファイルをセキュリティスキャンから除外することにより、分類情報を第1および第2のファイルに適用し得る(ステップ250)。例えば、セキュリティソフトウェアは、信頼済みファイルリストに第1および第2のファイルを含め得る。セキュリティソフトウェアは、セキュリティスキャンを実行する場合、信頼済みファイルリスト内で識別されるファイルをスキップし得る。
【0032】
いくつかの実施形態では、ステップ210(第1のファイルの識別情報を特定すること)は、複数のファイルの識別情報を特定することを含み得る。例えば、セキュリティソフトウェアは、ファイルセットを含むディレクトリ内の少数のファイル(または多数のファイル)の識別情報を特定し得る。したがって、セキュリティソフトウェアは、ディレクトリ内のファイルのサブセットの識別情報を特定し得、ファイルのサブセットは第1のファイルを含み得る。そのような実施形態では、ステップ220は、ファイルのサブセット内の各ファイルの識別情報を第2の計算システムに送信することを含み得る。第2の計算システムは、ファイルのセットから単一のみのファイルを受信するよりも、ファイルのセットから複数のファイルを受信することにより、関連付けられたファイルのセット内の他のファイルをより迅速かつ正確に特定可能であり得る。
【0033】
いくつかの実施形態では、ステップ230(第2のファイルの識別情報を受信すること)は、ファイルのセットの識別情報を受信することを含み得る。ファイルのセットは第2のファイルを含み得る。ファイルのセットは、第1のファイルが記憶されているディレクトリに関連付けられた各ファイルを含み得る。
【0034】
図3は、ファイルの分類を特定するコンピュータにより実施される方法の流れ図を示す。図3に示されるステップは、ファイルの分類情報を要求しているクライアントと通信するサーバにより実行し得る。第2の計算システムは、第1の計算システムから第1のファイルの識別情報を受信し得る(ステップ310)。第1のファイルは、第1の計算システムに記憶されているファイルであり得る。第2の計算システムは、識別情報を使用して、第1のファイルの分類情報について分類データベースを検索し得る(ステップ320)。分類データベースは、第2の計算システムに記憶され得る。上述したように、第2の計算システムは、第1のファイルのダイジェストおよび/またはディレクトリに一致するダイジェストおよび/またはディレクトリについて分類データベースを検索することにより、第1のファイルの分類情報について分類データベースを検索し得る。
【0035】
分類データベース内で第1のファイルを識別した後、第2の計算システムは、第1のファイルに関連付けられた第2のファイルを識別し得る(ステップ330)。第2の計算システムは、第1のファイルと同じディレクトリに関連付けられたファイルを検索することにより、第1のファイルに関連付けられたファイルを識別し得る。換言すれば、第1のファイルおよび第2のファイルが同じディレクトリ内に記憶されている場合、第1のファイルは第2のファイルに関連付けられ得る。
【0036】
第2の計算システムは、第2のファイルの識別情報を第1の計算装置に送信し得る(ステップ340)。上述したように、第2のファイルの識別情報は、第2のファイルのダイジェスト、第2のファイルの名称、第2のファイルのサイズ、および/または第2のファイルを識別するか、もしくは第2のファイルを他のファイルから区別し得る他の任意の情報を含み得る。第2の計算システムは、第1のファイルの分類情報ならびに第2のファイルの分類情報を第1の計算装置に送信し得る(ステップ350)。
【0037】
ステップ340および350は別個のステップとして示されるが、第2の計算装置はステップ340および350を同時に実行してもよい。換言すれば、第2の計算装置は、識別情報および分類情報を同時に送信してもよい。いくつかの実施形態では、第2の計算装置は、第1のファイルに関連付けられたファイルのセットを識別し得、ファイルのセットは、第2のファイルを含み得る。第2の計算装置は、ファイルのセット内の各ファイルの識別情報および分類情報を第1の計算装置に送信し得る。
【0038】
図4は分類情報データベース400を示す。分類情報データベース400は、ディレクトリをファイルに関連付け得る。分類情報データベース400は、ディレクトリのディレクトリ名をファイルのファイルダイジェストに関連付けることにより、ディレクトリをファイルに関連付け得る。例えば、ディレクトリ名410にファイルダイジェスト420、422、424、426、および428に関連付け得る。ディレクトリ名412にファイルダイジェスト430、432、および434を関連付け得る。ディレクトリ名414にファイルダイジェスト440、442、444、およびお446に関連付け得る。
【0039】
分類情報データベース400は、ファイルを分類情報に関連付けることもできる。例えば、ファイルダイジェスト420を分類情報450に関連付け、ファイルダイジェスト422を分類情報452に関連付け、ファイルダイジェスト424を分類情報454に関連付け、ファイルダイジェスト426を分類情報456に関連付け、ファイルダイジェスト428を分類情報458に関連付け得る。ファイルダイジェスト430、432、および434を分類情報460に関連付け得る。いくつかの実施形態では、分類情報をディレクトリに関連付け得る。例えば、ディレクトリ414を分類情報470に関連付け得る。したがって、ディレクトリ414に関連付けられたあらゆるファイルも、分類情報470に関連付け得る。したがって、分類情報470は、ファイルダイジェスト440、ファイルダイジェスト442、ファイルダイジェスト444、およびファイルダイジェスト446に対して適用される。
【0040】
クライアントがファイルの分類情報について分類情報データベース400を照会する場合、分類情報データベース400は、クライアント上のファイルに一致するファイルダイジェストを検索し得る。分類情報データベース400は、一致するファイルダイジェストを見つけると、ダイジェストに関連付けられた分類情報をクライアントに返し得る。分類情報データベース400は、クライアント上のファイルに関連付けられた他のファイルダイジェストも返し得る。
【0041】
一例として、クライアントは、第1のダイジェストを有する分類情報データベース400を照会し得る。分類情報データベース400は、第1のダイジェストがファイルダイジェスト424に一致すると判断し得る。分類情報データベース400は、ファイルダイジェスト424の分類情報454を返し得る。分類情報データベース400は、ファイルダイジェスト420、422、426、および428ならびに対応する分類情報もクライアントに返し得る。
【0042】
分類情報データベース152は、分類ツールを使用して作成または追加し得る。分類ツールは、ソフトウェアアプリケーションのインストールを監視し、ソフトウェアアプリケーションによりインストールされるファイルを分類し得る。例えば、アプリケーションによりインストールされたファイルのセットを識別した後、マルウェアを探してファイルをスキャンし得る。ファイルは、マルウェアを含む確率に基づいて分類し得る。ファイルおよび対応する分類情報は、分類データベース400等のクライアントに応対するデータベースシステムにアップロードし得る。
【0043】
図5は、クライアント502とサーバ504との通信を示す流れ図を示す。クライアント502はファイルを選択し得る(ステップ510)。次に、クライアント502は、ファイルのダイジェストを計算し得る(ステップ515)。クライアント502は、ファイルのダイジェストおよびディレクトリ情報をサーバ504に送信し得る(ステップ520)。サーバ504は、ファイルに関連付けられたディレクトリを見つけ得る(ステップ525)。サーバ504は、ディレクトリに関連付けられた追加ファイルも識別し得る(ステップ530)。サーバ504は、追加ファイルの識別情報をクライアント502に送信し得る(ステップ535)。同時に(または別の時間に)、サーバ504は、元のファイルおよび追加ファイルの分類情報をクライアント502に送信し得る(ステップ540)。クライアント502は、サーバ504から情報を受信し、識別情報を使用してファイルを識別し得る(ステップ545)。次に、クライアント502は分類情報をファイルに適用し得る(ステップ550)。
【0044】
図6は、本明細書において説明され、かつ/または図示される実施形態のうちの1つまたは複数を実施可能な例示的な計算システム610のブロック図である。計算システム610は、コンピュータ可読命令を実行可能な任意のシングルまたはマルチプロセッサ計算装置またはシステムを広く表す。計算システム610の例としては、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散計算システム、ハンドヘルド装置、または他の任意の計算システムもしくは装置が挙げられるが、これらに限定されない。最も基本的な構成では、計算システム610は、少なくとも1つのプロセッサ614およびシステムメモリ616を含み得る。
【0045】
プロセッサ614は一般に、データを処理するか、または命令を解釈し実行することが可能な任意の種類または形態の処理ユニットを表す。特定の実施形態では、プロセッサ614は、命令をソフトウェアアプリケーションまたはモジュールから受け取り得る。これらの命令は、プロセッサ614に、本明細書において説明され、かつ/または図示される例示的な実施形態のうちの1つまたは複数の機能を実行させることができる。例えば、プロセッサ614は、単独でまたは他の要素と組み合わせて、本明細書において説明される特定するステップ、計算するステップ、識別するステップ、適用するステップ、使用するステップ、問い合わせるステップ、受信するステップ、および/または送信するステップのうちの1つまたは複数を実行し得、かつ/またはそれ(ら)を実行する手段であり得る。プロセッサ614は、本明細書において説明され、かつ/または図示される他の任意のステップ、方法、またはプロセスを実行してもよく、かつ/または実行する手段であってもよい。
【0046】
システムメモリ616は一般に、データおよび/または他のコンピュータ可読命令を記憶可能な任意の種類または形態の揮発性または不揮発性記憶装置または媒体を表す。システムメモリ616の例としては、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、または他の任意の適したメモリ装置が挙げられるが、これらに限定されない。必要ではないが、特定の実施形態では、計算システム610は、揮発性記憶装置(例えば、システムメモリ616等)および不揮発性記憶装置(例えば、詳細に後述するような一次記憶装置632等)の両方を含み得る。
【0047】
特定の実施形態では、例示的な計算システム610は、プロセッサ614およびシステムメモリ616に加えて、1つまたは複数の構成要素または要素も含み得る。例えば、図6に示すように、計算システム610は、メモリコントローラ618、入出力(I/O)コントローラ620、および通信インタフェース622を備えることができ、これらのそれぞれは、通信基盤612を介して相互接続することができる。通信基盤612は一般に、計算装置のうちの1つまたは複数の構成要素間の通信に役立つことが可能な任意の種類または形態の基盤を表す。通信基盤612の例としては、通信バス(ISA、PCI、PCIe、または同様のバス等)およびネットワークが挙げられるが、これらに限定されない。
【0048】
メモリコントローラ618は一般に、メモリもしくはデータを処理可能であるか、または計算システム610の1つもしくは複数の構成要素間の通信を制御可能な任意の種類または形態の装置を表す。例えば、特定の実施形態では、メモリコントローラ618は、通信基盤612を介してのプロセッサ614、システムメモリ616、およびI/Oコントローラ620の間での通信を制御し得る。特定の実施形態では、メモリコントローラは、単独でまたは他の要素と組み合わせて、特定すること、計算すること、識別すること、適用すること、使用すること、問い合わせること、受信すること、および/または送信すること等の本明細書において説明され、かつ/または示されるステップまたは特徴のうちの1つまたは複数を実行し得、かつ/またはそれ(ら)を実行する手段であり得る。
【0049】
I/Oコントローラ620は一般に、計算装置の入力機能および出力機能を調整し、かつ/または制御することが可能な任意の種類または形態のモジュールを表す。例えば、特定の実施形態では、I/Oコントローラ620は、プロセッサ614、システムメモリ616、通信インタフェース622、ディスプレイアダプタ626、入力インタフェース630、および記憶装置インタフェース634等の計算システム610の1つまたは複数の要素間のデータの転送を制御し得るか、または転送に役立ち得る。I/Oコントローラ620は、例えば、単独でまたは他の要素と組み合わせて、本明細書において説明される特定するステップ、計算するステップ、識別するステップ、適用するステップ、使用するステップ、問い合わせるステップ、受信するステップ、および/または送信するステップのうちの1つまたは複数を実行するため、かつ/またはそれ(ら)を実行する手段として使用し得る。I/Oコントローラ620は、本開示に説明される他のステップおよび特徴を実行するために、かつ/または実行する手段として使用することもできる。
【0050】
通信インタフェース622は、例示的な計算システム610と1つまたは複数の追加の装置との通信に役立つことが可能な任意の種類または形態の通信装置またはアダプタを広く表す。例えば、特定の実施形態では、通信インタフェース622は、計算システム610と、追加の計算システムを含む私設または公衆ネットワークとの通信に役立ち得る。通信インタフェース622の例としては、有線ネットワークインタフェース(ネットワークインタフェースカード等)、無線ネットワークインタフェース(無線ネットワークインタフェースカード等)、モデム、および他の任意の適したインタフェースが挙げられるが、これらに限定されない。少なくとも1つの実施形態では、通信インタフェース622は、インターネット等のネットワークへの直接リンクを介して、遠隔サーバへの直接接続を提供し得る。通信インタフェース622は、例えば、ローカルエリアネットワーク(イーサネット(登録商標)ネットワーク等)、パーソナルエリアネットワーク、電話網もしくはケーブル網、セルラ電話接続、衛星データ接続、または他の任意の適した接続を通して、このような接続を間接的に提供してもよい。
【0051】
特定の実施形態では、通信インタフェース622は、外部バスまたは通信チャネルを介して、計算システム610と1つまたは複数の追加のネットワークもしくは記憶装置との通信に役立つように構成されたホストアダプタを表すこともできる。ホストアダプタの例としては、SCSIホストアダプタ、USBホストアダプタ、IEEE694ホストアダプタ、SATAホストアダプタ、eSATAホストアダプタ、ATAホストアダプタおよびPATAホストアダプタ、ファイバチャネルインタフェースアダプタ、イーサネット(登録商標)アダプタ等が挙げられるが、これらに限定されない。通信インタフェース622は、計算システム610が分散または遠隔計算を行えるようにもし得る。例えば、通信インタフェース622は、例えば、命令を遠隔装置から受信し得るか、または命令を実行のために遠隔装置に送信し得る。特定の実施形態では、通信インタフェース622は、単独でまたは他の要素と組み合わせて、本明細書において開示される特定するステップ、計算するステップ、識別するステップ、適用するステップ、使用するステップ、問い合わせるステップ、受信するステップ、および/または送信するステップのうちの1つまたは複数を実行し得、かつ/またはそれ(ら)を実行する手段であり得る。通信インタフェース622は、本開示に説明される他のステップおよび特徴を実行するために、かつ/または実行するための手段として使用することもできる。
【0052】
図6に示すように、計算システム610は、ディスプレイアダプタ626を介して通信基盤612に結合された少なくとも1つの表示装置624を備えることもできる。表示装置624は一般に、ディスプレイアダプタ626により転送された情報を視覚的に表示可能な任意の種類または形態の装置を表す。同様に、ディスプレイアダプタ626は一般に、表示装置624に表示するために、グラフィックス、テキスト、および他のデータを通信基盤612から転送するように構成された任意の種類または形態の装置を表す。
【0053】
図6に示すように、例示的な計算システム610は、入力インタフェース630を介して通信基盤612に結合された少なくとも1つの入力装置628を備えることもできる。入力装置628は一般に、コンピュータまたは人により生成された入力を例示的な計算システム610に提供可能な任意の種類または形態の入力装置を表す。入力装置628の例としては、キーボード、ポインティングデバイス、スピーチ認識装置、または他の任意の適した入力装置が挙げられるが、これらに限定されない。少なくとも1つの実施形態では、入力装置628は、単独でまたは他の要素と組み合わせて、本明細書に開示される特定するステップ、計算するステップ、識別するステップ、適用するステップ、使用するステップ、問い合わせるステップ、受信するステップ、および/または送信するステップのうちの1つまたは複数を実行し得、かつ/またはそれ(ら)を実行する手段であり得る。入力装置628は、本開示に記載される他のステップおよび特徴を実行するため、かつ/またはそれ(ら)を実行する手段としても使用し得る。
【0054】
図6に示すように、例示的な計算システム610は、記憶装置インタフェース634を介して通信基盤612に結合された一次記憶装置632およびバックアップ記憶装置633を備えることもできる。記憶装置632および633は一般に、データおよび/または他のコンピュータ可読命令を記憶可能な任意の種類または形態の記憶装置または媒体を表す。例えば、記憶装置632および633は、磁気ディスクドライブ(例えば、いわゆるハードドライブ)、フレキシブルディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブ等であり得る。記憶装置インタフェース634は一般に、データを記憶装置632および633と計算システム610の他の構成要素との間でデータを転送する任意の種類または形態のインタフェースまたは装置を表す。
【0055】
特定の実施形態では、記憶装置632および633は、コンピュータソフトウェア、データ、または他のコンピュータ可読情報を記憶するように構成されたリムーバブル記憶ユニットから読み出し、かつ/またはそれに書き込むように構成することができる。適したリムーバブル記憶ユニットの例としては、フレキシブルディスク、磁気テープ、光ディスク、フラッシュメモリ装置等が挙げられるが、これらに限定されない。記憶装置632および633は、コンピュータソフトウェア、データ、または他のコンピュータ可読命令を計算システム610にロードできるようにする他の同様の構造または装置を含んでもよい。例えば、記憶装置632および633は、ソフトウェア、データ、または他のコンピュータ可読情報を読み書きするように構成し得る。記憶装置632および633は、計算システム610の部分であってもよく、または他のインタフェースシステムを通してアクセスされる別個の装置であってもよい。
【0056】
特定の実施形態では、本明細書に開示される例示的なファイルシステムは、一次記憶装置632に記憶され得る一方で、本明細書に開示される例示的なファイルシステムバックアップは、バックアップ記憶装置633に記憶され得る。記憶装置632および633は、例えば、単独でまたは他の要素と組み合わせて、本明細書に開示される特定するステップ、計算するステップ、識別するステップ、適用するステップ、使用するステップ、問い合わせるステップ、受信するステップ、および/または送信するステップのうちの1つまたは複数を実行するため、かつ/またはそれ(ら)を実行する手段としても使用し得る。記憶装置632および633は、本開示に説明される他のステップおよび特徴を実行するために、かつ/または実行する手段として使用することもできる。
【0057】
多くの他の装置およびサブシステムを計算システム610に接続し得る。逆に、図6に示される構成要素および装置のすべてが、本明細書において説明され、かつ/または図示される実施形態を実施するために存在する必要はない。上で参照された装置およびサブシステムは、図6に示す方法とは異なる方法で相互接続されてもよい。計算システム610は、任意の数のソフトウェア構成、ファームウェア構成、および/またはハードウェア構成を利用してもよい。例えば、本明細書に開示される例示的な実施形態のうちの1つまたは複数は、コンピュータ可読媒体上のコンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、またはコンピュータ制御論理とも呼ばれる)として符号化してもよい。語句「コンピュータ可読媒体」は一般に、コンピュータ可読命令を記憶可能または搬送可能な任意の形態の装置、搬送波、または媒体を指す。コンピュータ可読媒体の例としては、搬送波等の伝送型媒体、磁気記憶媒体(例えば、ハードディスクドライブおよびフレキシブルディスク)、光学記憶媒体(例えば、CD−ROMまたはDVD−ROM)、電子記憶媒体(例えば、固体状態ドライブおよびフラッシュメディア)等の物理的な媒体、および他の分散システムが挙げられるが、これらに限定されない。
【0058】
コンピュータプログラムを含むコンピュータ可読媒体は、計算システム610にロードすることができる。コンピュータ可読媒体に記憶されたコンピュータプログラムの全部または部分は次に、システムメモリ616および/または記憶装置632および633の様々な部分に記憶することができる。プロセッサ614により実行されると、計算システム610にロードされたコンピュータプログラムは、本明細書において説明され、かつ/または図示される例示的な実施形態のうちの1つまたは複数の機能をプロセッサ614に実行させ、かつ/またはプロセッサ614をそのような機能を実行する手段にさせることができる。これに加えて、またはこれに代えて、本明細書において説明され、かつ/または図示される例示的な実施形態のうちの1つまたは複数は、ファームウェアおよび/またはハードウェア内で実施され得る。例えば、計算システム610は、本明細書において開示される例示的な実施形態のうちの1つまたは複数を実施するように構成された特定用途向け集積回路(ASIC)として構成され得る。
【0059】
図7は、クライアントシステム710、720、および730ならびにサーバ740および745をネットワーク750に結合し得る例示的なネットワークアーキテクチャ700のブロック図である。クライアントシステム710、720、および730は一般に、図6の例示的な計算システム610等の任意の種類または形態の計算装置またはシステムを表す。同様に、サーバ740および745は一般に、様々なデータベースサービスを提供し、かつ/または特定のソフトウェアアプリケーションを実行するように構成された、アプリケーションサーバまたはデータベースサーバ等の計算装置またはシステムを表す。ネットワーク750は一般に、例えば、イントラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、またはインターネットを含む、任意の通信ネットワークまたはコンピュータネットワークを表す。
【0060】
図7に示すように、1つまたは複数の記憶装置760(1)−(N)は、サーバ740に直接取り付けることができる。同様に、1つまたは複数の記憶装置770(1)−(N)も、サーバ745に直接取り付けることができる。記憶装置760(1)−(N)および記憶装置770(1)−(N)は一般に、データおよび/または他のコンピュータ可読命令を記憶可能な任意の種類または形態の記憶装置または媒体を表す。特定の実施形態では、記憶装置760(1)−(N)および記憶装置770(1)−(N)は、NFS、SMB、またはCIFS等の様々なプロトコルを使用してサーバ740および745と通信するように構成されたネットワーク接続記憶装置(NAS)を表し得る。
【0061】
サーバ740および745は、ストレージエリアネットワーク(SAN)ファブリック780に接続することもできる。SANファブリック780は一般に、複数の記憶装置間の通信に役立つことが可能な任意の種類または形態のコンピュータネットワークまたはアーキテクチャを表す。SANファブリック780は、サーバ740および745と複数の記憶装置790(1)−(N)および/またはインテリジェントストレージアレイ795との通信に役立ち得る。SANファブリック780は、ネットワーク750ならびにサーバ740および745を介して、クライアントシステム710、720、および730と記憶装置790(1)−(N)および/またはインテリジェントストレージアレイ795との通信にも、装置790(1)−(N)およびアレイ795がクライアントシステム710、720、および730にローカルに接続された装置として見えるように、役立ち得る。記憶装置760(1)−(N)および記憶装置770(1)−(N)と同様に、記憶装置790(1)−(N)およびインテリジェントストレージアレイ795は一般に、データおよび/または他のコンピュータ可読命令を記憶可能な任意の種類または形態の記憶装置または媒体を表す。
【0062】
特定の実施形態において、図6の例示的な計算システム610を参照すると、図6の通信インタフェース622等の通信インタフェースを使用して、各クライアントシステム710、720、および730とネットワーク750との間に接続を提供し得る。クライアントシステム710、720、および730は、例えば、ウェブブラウザまたは他のクライアントソフトウェアを使用して、サーバ740または745上の情報にアクセス可能であり得る。このようなソフトウェアは、クライアントシステム710、720、および730が、サーバ740、サーバ745、記憶装置760(1)−(N)、記憶装置770(1)−(N)、記憶装置790(1)−(N)、またはインテリジェントストレージアレイ795によりホストされるデータにアクセスできるようにし得る。図7は、データ交換にネットワーク(インターネット等)を使用することを示すが、本明細書において説明され、かつ/または図示される実施形態は、インターネットまたは特定のいかなるネットワークベースの環境にも限定されない。
【0063】
少なくとも1つの実施形態では、本明細書において開示される例示的な実施形態のうちの1つまたは複数の全部または部分は、コンピュータプログラムとして符号化し、サーバ740、サーバ745、記憶装置760(1)−(N)、記憶装置770(1)−(N)、記憶装置790(1)−(N)、インテリジェントストレージアレイ795、またはこれらの任意の組み合わせにロードし、それ(ら)により実行することができる。本明細書に開示される例示的な実施形態のうちの1つまたは複数の全部または部分は、コンピュータプログラムとして符号化し、サーバ740に記憶し、サーバ745により実行され、ネットワーク750を介して、クライアントシステム710、720、および730に分配させることもできる。したがって、ネットワークアーキテクチャ700は、単独でまたは他の要素と組み合わせて、本明細書に開示される特定するステップ、計算するステップ、識別するステップ、適用するステップ、使用するステップ、問い合わせるステップ、受信するステップ、および/または送信するステップのうちの1つまたは複数を実行し得、かつ/またはそれ(ら)を実行する手段であり得る。ネットワークアーキテクチャ700は、本開示に説明される他のステップおよび特徴を実行するために、かつ/または実行する手段として使用することもできる。
【0064】
上に詳述したように、計算システム610および/またはネットワークアーキテクチャ700の構成要素のうちの1つまたは複数は、単独で、または他の要素と併せて、本明細書において説明され、かつ/または図示される例示的な方法のうちの1つまたは複数のステップを実行し得、かつ/または実行する手段であり得る。例えば、ファイルの分類を特定するコンピュータにより実施される方法は、第1の計算システムに記憶されている第1のファイルの情報を特定することを含み得る。この方法は、第1のファイルの識別情報を第2の計算システムに送信することにより、分類情報について第2の計算システムに問い合わせることも含み得る。この方法は、第2のファイルの識別情報を受信すること、および分類情報を受信することも含み得る。分類情報は、第1および第2のファイルが信頼済みであることを示し得る。この方法は、第2のファイルの識別情報を使用して、第2のファイルが第1の計算システムに記憶されていると判断することを含み得る。この方法は、第1および第2のファイルをセキュリティスキャンから除外することにより、分類情報を第1および第2のファイルに適用することをさらに含み得る。
【0065】
いくつかの実施形態では、第1のファイルの識別情報を特定することは、第1のファイルのダイジェストを計算することを含み得る。少なくとも1つの実施形態では、第1のファイルの識別情報は、第1のファイルのダイジェストを含み得、第1のファイルの識別情報は、第1のファイルが記憶されているディレクトリの名称を含みうる。
【0066】
様々な実施形態によれば、ダイジェストは第1のファイルのハッシュを含み得、第1のファイルが記憶されているディレクトリの名称は、正規化されたディレクトリパスを含み得る。様々な実施形態によれば、第2のファイルの識別情報は、第2のファイルのファイル名および第2のファイルのダイジェストを含み得る。第2のファイルの識別情報を使用して、第2のファイルが第1の計算システムに記憶されていると判断することは、第1の計算装置が、第2のファイルのファイル名を有するファイルを含み、第2のファイルのダイジェストが、ファイル名を有するファイルのダイジェストに一致すると判断することを含み得る。
【0067】
様々な実施形態では、第2のファイルの識別情報は、第2のファイルのサイズを含み得る。第2のファイルの識別情報を使用して、第2のファイルが第1の計算装置に記憶されていると判断することは、第2のファイルのファイル名を有するファイルが、第2のファイルと同じサイズであると判断することを含み得る。
【0068】
様々な実施形態によれば、第1のファイルは、第1のソフトウェアプログラムにより第1の計算装置にインストールされ、第2のファイルも第1のソフトウェアプログラムにより第1の計算装置にインストールされた。少なくとも1つの実施形態では、方法は、ファイルのセット内の各ファイルの識別情報を受信することを含み得る。ファイルのセットは、第1のファイルをインストールしたアプリケーションに関連付け得る。ファイルのセットは第2のファイルを含み得る。方法は、ファイルのセット内の各ファイルの分類情報を受信することも含み得る。特定の実施形態によれば、方法は、ファイルのサブセット内の各ファイルの識別情報を特定することをさらに含み得る。ファイルのサブセットは第1のファイルを含み得る。ファイルのサブセットは、アプリケーションに関連付けられたファイルのセットのサブセットであり得る。方法は、ファイルのサブセット内の各ファイルの識別情報を第2の計算システムに送信することにより、識別情報について第2の計算システムに問い合わせすることも含み得る。
【0069】
特定の実施形態では、ファイルの分類を特定するコンピュータにより実施される方法は、第1の計算システムに記憶されている第1のファイルの識別情報を受信することを含み得る。方法は、識別情報を使用して、第1のファイルの分類情報について分類データベースを検索することも含み得る。分類データベースは第2の計算システムに記憶し得る。方法は、第1のファイルに関連付けられた第2のファイルを識別すること、および第2のファイルの識別情報を第1の計算システムに送信することを含み得る。方法は、第1のファイルの分類情報および第2のファイルの分類情報を第1の計算システムに送信することをさらに含み得る。
【0070】
いくつかの実施形態では、第1のファイルの識別情報は第1のファイルのダイジェストを含み得る。第1のファイルの識別情報は、第1のファイルが記憶されているディレクトリの名称も含み得る。様々な実施形態によれば、ダイジェストは第1のファイルのハッシュを含み得る。第1のファイルが記憶されているディレクトリの名称は、正規化されたディレクトリパスを含み得る。
【0071】
いくつかの実施形態では、第1のファイルは、第1のソフトウェアプログラムにより第1の計算装置にインストールされ得る。様々な実施形態では、第2のファイルを識別することは、第1のファイルが記憶されているディレクトリの名称を使用して、第1のソフトウェアプログラムに関連付けられたディレクトリを見つけ得る。いくつかの実施形態では、第2のファイルを識別することは、第1のソフトウェアプログラムに関連付けられたディレクトリが第2のファイルを含み得ると判断することを含み得る。
【0072】
少なくとも1つの実施形態によれば、第2のファイルの識別情報は、第2のファイルのファイル名、第2のファイルのサイズ、および第2のファイルのダイジェストのうちの少なくとも1つを含み得る。方法は、ファイルのセット内の各ファイルの識別情報を送信することも含み得る。ファイルのセットに、第1のファイルをインストールしたアプリケーションを関連付け得る。方法は、ファイルのセット内の各ファイルの分類情報を受信することも含み得る。様々な実施形態によれば、方法は、ファイルのサブセット内の各ファイルの識別情報を受信することをさらに含み得る。識別情報は、第1の計算システムから受信し得る。ファイルのサブセットは、第1のファイルを含み得、ファイルのサブセットは、アプリケーションに関連付けられたファイルのセットのサブセットであり得る。
【0073】
上記開示に、特定のブロック図、フローチャート、および例を使用して様々な実施形態を説明したが、本明細書において説明され、かつ/または図示される各ブロック図の構成要素、フローチャートのステップ、動作、および/または構成要素は、独立して、かつ/または集合的に、広範囲のハードウェア構成、ソフトウェア構成、またはファームウェア構成(またはこれらの任意の組み合わせ)を使用して実施し得る。さらに、他の構成要素内に含まれる構成要素のいかなる開示も、同じ機能を達成するために、他の多くの構造を実施可能なため、例示的な性質のものであるとみなされるべきである。
【0074】
本明細書において説明され、かつ/または図示されるプロセスパラメータおよびステップシーケンスは、単なる例として与えられ、必要に応じて変更が可能である。例えば、本明細書において図示され、かつ/または説明されるステップは、特定の順序で図示または説明され得るが、これらのステップは、必ずしも図示または説明された順序で実行される必要はない。本明細書において説明され、かつ/または図示される例示的な様々な方法は、本明細書において説明されるか、もしくは図示されるステップのうちの1つもしくは複数を省いてもよく、または開示されるステップに加えて他のステップを含んでもよい。
【0075】
さらに、様々な実施形態を完全に機能する計算システムの文脈の中で本明細書において説明し、かつ/または図示したが、配布を実際に実行するために使用されるコンピュータ可読媒体の特定の種類に関係なく、これら例示的な実施形態のうちの1つまたは複数を様々な形態のプログラム製品として配布してもよい。本明細書に開示される実施形態は、特定のタスクを実行するソフトウェアモジュールを使用して実施してもよい。これらソフトウェアモジュールは、コンピュータ可読記憶媒体または計算システムに記憶可能なスクリプト、バッチ、または他の実行可能ファイルを含み得る。いくつかの実施形態では、これらソフトウェアモジュールは、本明細書において開示された例示的な実施形態のうちの1つまたは複数を実行するように、計算システムを構成し得る。
【0076】
上記説明は、当業者が本明細書に開示された例示的な実施形態の様々な態様を最良に利用できるようにするために提供された。この例示的な説明は、網羅的でではなく、また、開示される任意の厳密な形態への限定されることを意図されない。多くの変更および変形が、本開示の主旨および範囲から逸脱せずに可能である。本明細書に開示される実施形態は、あらゆる点で、限定ではなく例示としてみなされるべきである。本開示の範囲を決定する際には、添付の特許請求の範囲およびその均等物を参照すべきである。
【0077】
別段に記される場合を除き、本明細書および特許請求の範囲において使用される場合、用語「a」または「an」は、「少なくとも1つの」を意味するものと解釈されるべきである。さらに、使いやすさのために、単語「含む」および「有する」は、本明細書および特許請求の範囲において使用される場合、単語「備える」と同義であり、同じ意味を有する。

【特許請求の範囲】
【請求項1】
ファイル分類を特定するためのコンピュータにより実施される方法であって、
第1の計算システムに記憶されている第1のファイルの識別情報を特定するステップと、
前記第1のファイルの前記識別情報を第2の計算システムに送信することにより、分類情報について前記第2の計算システムに問い合わせるステップと、
前記問い合わせに応答して、第2のファイルの識別情報および前記分類情報を受信するステップであって、前記分類情報は、前記第1および第2のファイルが信頼済みであることを示すステップと、
前記第2のファイルの前記識別情報を使用して、前記第2のファイルが前記第1の計算システムに記憶されていると判断するステップと、
前記第1および第2のファイルをセキュリティスキャンから除外することにより、前記分類情報を前記第1および第2のファイルに適用するステップと
を含む、コンピュータにより実施される方法。
【請求項2】
前記第1のファイルの識別情報を特定するステップは、前記第1のファイルのダイジェストを計算することを含み、
前記第1のファイルの前記識別情報は、前記第1のファイルの前記ダイジェストを含み、
前記第1のファイルの前記識別情報は、前記第1のファイルが記憶されているディレクトリの名称を含む、請求項1に記載のコンピュータにより実施される方法。
【請求項3】
前記ダイジェストは前記第1のファイルのハッシュを含み、
前記第1のファイルが記憶されている前記ディレクトリの前記名称は、正規化されたディレクトリパスである、請求項2に記載のコンピュータにより実施される方法。
【請求項4】
前記第2のファイルの前記識別情報は、前記第2のファイルのファイル名および前記第2のファイルのダイジェストを含み、
前記第2のファイルの前記識別情報を使用して、前記第2のファイルが前記第1の計算システムに記憶されていると判断するステップは、
前記第1の計算装置が、前記第2のファイルの前記ファイル名を有するファイルを含むと判断するステップと、
前記第2のファイルの前記ダイジェストが前記ファイル名を有する前記ファイルの前記ダイジェストに一致すると判断するステップと
を含む、請求項1に記載のコンピュータにより実施される方法。
【請求項5】
前記第2のファイルの前記識別情報は、前記第2のファイルのサイズを含み、
前記第2のファイルの前記識別情報を使用して、前記第2のファイルが前記第1の計算装置に記憶されていると判断するステップは、
前記第2のファイルの前記ファイル名を有する前記ファイルが前記第2のファイルと同じサイズであると判断するステップを含む、請求項4に記載のコンピュータにより実施される方法。
【請求項6】
前記第1のファイルは、第1のソフトウェアプログラムにより前記第1の計算装置にインストールされ、
前記第2のファイルは、前記第1のソフトウェアプログラムにより前記第1の計算装置にインストールされた、請求項1に記載のコンピュータにより実施される方法。
【請求項7】
ファイルのセット内の各ファイルの識別情報を受信するステップであって、
前記ファイルのセットは、前記第1のファイルをインストールしたアプリケーションに関連付けられ、
前記ファイルのセットは前記第2のファイルを含むステップと、
前記ファイルのセット内の各ファイルの分類情報を受信するステップと
をさらに含む、請求項1に記載のコンピュータにより実施される方法。
【請求項8】
ファイルのサブセット内の各ファイルの識別情報を特定するステップであって、
前記ファイルのサブセットは前記第1のファイルを含み、
前記ファイルのサブセットは、前記アプリケーションに関連付けられた前記ファイルのセットのサブセットであるステップと、
前記ファイルのサブセット内の各ファイルの前記識別情報を前記第2の計算システムに送信することにより、分類情報について前記第2の計算システムに問い合わせるステップと
をさらに含む、請求項7に記載のコンピュータにより実施される方法。
【請求項9】
ファイルの分類を特定するコンピュータにより実施される方法であって、
第1の計算システムから、前記第1の計算システムに記憶されている第1のファイルの識別情報を受信するステップと、
前記識別情報を使用して、前記第1のファイルの分類情報について分類データベースを検索するステップであって、前記分類データベースは第2の計算システムに記憶されているステップと、
前記第1のファイルに関連付けられた第2のファイルを識別するステップと、
前記第2のファイルの識別情報を前記第1の計算システムに送信するステップと、
前記第1のファイルの前記分類情報および前記第2のファイルの分類情報を前記第1の計算システムに送信するステップと
を含む、コンピュータにより実施される方法。
【請求項10】
前記第1のファイルの前記識別情報は、前記第1のファイルのダイジェストを含み、
前記第1のファイルの前記識別情報は、前記第1のファイルが記憶されているディレクトリの名称を含む、請求項9に記載のコンピュータにより実施される方法。
【請求項11】
前記ダイジェストは前記第1のファイルのハッシュを含み、
前記第1のファイルが記憶されている前記ディレクトリの名称は、正規化されたディレクトリパスを含む、請求項10に記載のコンピュータにより実施される方法。
【請求項12】
前記第1のファイルは、第1のソフトウェアプログラムにより前記第1の計算装置にインストールされ、
前記第2のファイルを識別するステップは、前記第1のファイルが記憶されている前記ディレクトリの名称を使用して、前記第1のソフトウェアプログラムに関連付けられたディレクトリを見つけるステップを含み、
前記第2のファイルを識別するステップは、前記第1のソフトウェアプログラムに関連付けられたディレクトリが前記第2のファイルを含むと判断するステップを含む、請求項10に記載のコンピュータにより実施される方法。
【請求項13】
前記第2のファイルの前記識別情報は、
前記第2のファイルのファイル名、
前記第2のファイルのサイズ、
前記第2のファイルのダイジェスト
のうちの少なくとも1つを含む、請求項9に記載のコンピュータにより実施される方法。
【請求項14】
ファイルのセット内の各ファイルの識別情報を送信するステップであって、
前記ファイルのセットは、前記第1のファイルをインストールしたアプリケーションに関連付けられ、
前記ファイルのセットは前記第2のファイルを含むステップと、
前記ファイルのセット内の各ファイルの分類情報を受信するステップと
をさらに含む、請求項9に記載のコンピュータにより実施される方法。
【請求項15】
前記第1の計算システムから、ファイルのサブセット内の各ファイルの識別情報を受信するステップをさらに含み、
前記ファイルのサブセットは前記第1のファイルを含み、
前記ファイルのサブセットは、前記アプリケーションに関連付けられた前記ファイルのセットのサブセットである、請求項14に記載のコンピュータにより実施される方法。
【請求項16】
1つまたは複数のコンピュータ実行可能命令を含むコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、計算装置により実行されると、前記計算装置に、
第1の計算システムに記憶されている第1のファイルの識別情報を特定すること、
前記第1のファイルの前記識別情報を第2の計算システムに送信することにより、分類情報について前記第2の計算システムに問い合わせるステップと、
前記問い合わせに応答して、第2のファイルの識別情報および前記分類情報を受信するステップであって、前記分類情報は、前記第1および第2のファイルが信頼済みであることを示すステップと、
前記第2のファイルの前記識別情報を使用して、前記第2のファイルが前記第1の計算システムに記憶されていると判断するステップと、
前記第1および第2のファイルをセキュリティスキャンから除外することにより、前記分類情報を前記第1および第2のファイルに適用するステップと
を実行させる、コンピュータ可読媒体。
【請求項17】
前記1つまたは複数のコンピュータ実行可能命令は、計算装置により実行されると、前記計算装置に、
前記第1のファイルのダイジェストを計算することを実行させ、
前記第1のファイルの前記識別情報は、前記第1のファイルの前記ダイジェストを含む、請求項16に記載のコンピュータ可読媒体。
【請求項18】
前記ダイジェストは前記第1のファイルのハッシュを含み、
前記第1のファイルの前記識別情報は、前記第1のファイルが記憶されているディレクトリの名称を含み、
前記第1のファイルが記憶されている前記ディレクトリの前記名称は、正規化されたディレクトリパスを含む、請求項17に記載のコンピュータ可読媒体。
【請求項19】
前記第2のファイルの前記識別情報は、前記第2のファイルのファイル名および前記第2のファイルのダイジェストを含む、請求項16に記載のコンピュータ可読媒体。
【請求項20】
前記1つまたは複数のコンピュータ実行可能命令は、計算装置により実行されると、前記計算装置に、
前記第1の計算装置が、前記第2のファイルの前記ファイル名を有するファイルを含むと判断するステップと、
前記第2のファイルのダイジェストが前記ファイル名を有する前記ファイルの前記ダイジェストと一致すると判断するステップと
を実行させる、請求項19に記載のコンピュータ可読媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2012−501009(P2012−501009A)
【公表日】平成24年1月12日(2012.1.12)
【国際特許分類】
【出願番号】特願2011−514750(P2011−514750)
【出願日】平成21年6月16日(2009.6.16)
【国際出願番号】PCT/US2009/047505
【国際公開番号】WO2009/158239
【国際公開日】平成21年12月30日(2009.12.30)
【出願人】(510331825)シマンテック・コーポレーション (2)
【Fターム(参考)】