(57)【要約】      （修正有）【課題】クライアントコンピュータにおけるパフォーマンスインパクトを軽減するとともに、ソフトウェアの信頼性を解明する技術を提供する。【解決手段】ソフトウェアの信頼性を測定する方法、装置、及び、コンピュータ読み取り可能な媒体に関する。いくつかの例において、信頼性が不明な少なくとも１つのファイルを含むものと識別されたソフトウェアパッケージがクリーンマシンにインストールされる。ソフトウェアパッケージによってクリーンマシンにおいてインストールされた又は変更されたファイルのカタログを含むレポートパッケージが生成される。カタログにおけるファイルのそれぞれについての識別属性が測定される。カタログにおけるファイルのそれぞれが、それらに対して信頼性のレベルを割り当てるように処理される。レポートパッケージが出力として提供される。【選択図】図１
2010092469.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの信頼性を測定する方法であって、
信頼性が不明な少なくとも１つのファイルを含むものと識別されたソフトウェアパッケージをクリーンマシンにインストールするステップと、
前記ソフトウェアパッケージによって前記クリーンマシンにおいてインストールされた又は変更されたファイルのカタログを含むレポートパッケージを生成するステップと、
前記カタログにおける前記ファイルのそれぞれについての識別属性を測定するステップと、
前記ファイルのそれぞれに対して信頼性のレベルを割り当てるように前記カタログにおける前記ファイルのそれぞれを処理するステップと、
出力として前記レポートパッケージを提供するステップと
を備える方法。
【請求項２】
ソフトウェアの信頼できる供給源であるものと示されたベンダーのウェブサイトを監視するステップと、
前記ウェブサイトのうちの少なくとも１つから前記ソフトウェアパッケージを識別するステップと
をさらに備える請求項１に記載の方法。
【請求項３】
クライアントコンピュータに格納されたファイルに関連する情報を受信するステップと、
前記情報に応じて、前記クライアントコンピュータの間の前記少なくとも１つのファイルの拡散率を測定するステップと、
拡散率の閾値を超える前記少なくとも１つのファイルの拡散率に応じて、前記少なくとも１つのファイルを有する前記ソフトウェアパッケージを識別するようにリクエストを生成するステップと
をさらに備える請求項１又は２に記載の方法。
【請求項４】
前記インストールするステップが、
前記ソフトウェアパッケージのインストールに先だって、前記クリーンマシンのソフトウェア状態の第１のスナップショットをキャプチャする工程と、
前記ソフトウェアパッケージのインストール後に、前記クリーンマシンのソフトウェア状態の第２のスナップショットをキャプチャする工程と
を備える請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記レポートパッケージを生成するステップが、
インストールされた又は変更された前記ファイルを識別するように前記第１のスナップショットを前記第２のスナップショットと比較する工程を備える請求項４に記載の方法。
【請求項６】
前記クリーンマシンがサーバ上で実行する仮想マシンを備える請求項１〜５のいずれか一項に記載の方法。
【請求項７】
前記カタログにおける前記ファイルのそれぞれについての前記識別属性が、前記ファイルのそれぞれの要約を含む請求項１〜６のいずれか一項に記載の方法。
【請求項８】
前記処理するステップが、
（i）マルウェアについての前記カタログにおける前記ファイルのそれぞれをスキャンすること、
（ii）前記カタログにおける前記ファイルのうちの少なくとも１つのディジタル署名を解析すること、
（iii）前記カタログにおける前記ファイルの起源を測定してそのような起源の信頼性の大きさを取得すること、又は、
（iv）クライアントコンピュータ上の前記ファイル及び前記クライアントコンピュータについてのウィルス予防策評価の存在に関して、前記カタログにおける前記ファイルの統計的解析を実行すること
のうちの少なくとも１つに応答して、前記ファイルのそれぞれについての信頼性のレベルを測定する工程を備える請求項１〜７のいずれか一項に記載の方法。
【請求項９】
前記カタログにおける前記ファイルのそれぞれについての信頼性のレベルが、複数の信頼性のレベルから選択される請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
前記カタログにおける前記ファイルのそれぞれについて、前記ファイルのそれぞれの信頼性のレベルに関連付けて前記ファイルのそれぞれの前記識別属性のうちの少なくとも１つをデータベースに格納するように前記レポートパッケージを処理するステップをさらに備える請求項１〜９のいずれか一項に記載の方法。
【請求項１１】
プロセッサによって実行された場合に前記プロセッサに請求項１〜１０のいずれか一項に記載の方法を実行させる命令が格納されたコンピュータ読み取り可能な媒体。
【請求項１２】
ソフトウェアの信頼性を測定する装置であって、
信頼性が不明な少なくとも１つのファイルを含むものと識別されたソフトウェアパッケージをクリーンマシンにインストールする手段と、
前記ソフトウェアパッケージによって前記クリーンマシンにおいてインストールされた又は変更されたファイルのカタログを含むレポートパッケージを生成する手段と、
前記カタログにおける前記ファイルのそれぞれについての識別属性を測定する手段と、
前記ファイルのそれぞれに対して信頼性のレベルを割り当てるように前記カタログにおける前記ファイルのそれぞれを処理する手段と、
出力として前記レポートパッケージを提供する手段と
を備える装置。
【請求項１３】
ソフトウェアの信頼できる供給源であるものと示されたベンダーのウェブサイトを監視する手段と、
前記ウェブサイトのうちの少なくとも１つから前記ソフトウェアパッケージを識別する手段と
をさらに備える請求項１２に記載の装置。
【請求項１４】
クライアントコンピュータに格納されたファイルに関連する情報を受信する手段と、
前記情報に応じて、前記クライアントコンピュータの間の前記少なくとも１つのファイルの拡散率を測定する手段と、
拡散率の閾値を超える前記少なくとも１つのファイルの拡散率に応じて、前記少なくとも１つのファイルを有する前記ソフトウェアパッケージを識別するようにリクエストを生成する手段と
をさらに備える請求項１２又は１３に記載の装置。
【請求項１５】
前記インストールする手段が、
前記ソフトウェアパッケージのインストールに先だって、前記クリーンマシンのソフトウェア状態の第１のスナップショットをキャプチャする手段と、
前記ソフトウェアパッケージのインストール後に、前記クリーンマシンのソフトウェア状態の第２のスナップショットをキャプチャする手段と
を備える請求項１２〜１４のいずれか一項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本発明は、一般に、コンピュータシステムに関する。特に、本発明は、ソフトウェアの信頼性を測定する方法及び装置に関する。
【背景技術】
【０００２】
[0002]消費者及び企業は、機密データを格納するためにコンピュータをますます頼りにしている。したがって、悪意のあるプログラマは、他者のコンピュータ及び機密データに対する不法な支配及びアクセスを得るための活動を頻繁に増やしているように見える。そのような悪意のあるプログラマは、他者の所有物であるコンピュータシステム及び機密データを危険にさらすことが意図されたウィルス、トロイの木馬、ワーム、及び、同様のタイプのプログラムを作り出し続けている。これらの悪意のあるプログラムは、大抵は一般に「マルウェア」と称される。
【０００３】
[0003]セキュリティソフトウェア企業は、アンチ・ウィルス、アンチ・スパイウェア、又は、他のタイプのアンチ・マルウェア製品等の様々なクライアントセキュリティ製品の開発により、高まりつつあるマルウェアの風潮に対抗している。しかしながら、いくつかのアンチ・マルウェア製品は、様々な評価ルールを使用してあらゆるアクセスについてファイル及び他のサブシステムを監視及び解析するように構成されているため、クライアントコンピュータのパフォーマンスに影響を与える。いくつかのアンチ・マルウェア製品は、アクセスされたファイル及びサブシステムについての解析の結果をキャッシュすることがあるが、そのような結果は、評価ルールが変えられた場合には無効にされる。例えば、いくつかのアンチ・ウィルス製品において、アンチ・ウィルスシグネチャーが変化した場合には、以前の評価結果は無効とされる。これは、各ファイル／サブシステムのアクセスが再度解析されることから、クライアントコンピュータのパフォーマンス低下をもたらす。問題は、アンチ・マルウェア製品が通常はマルウェアを有しないコンピュータ上の公知の不良ファイルを探すという事実によってさらに悪化する。したがって、アンチ・マルウェアプログラムは、コンピュータのパフォーマンスを低下させることがあり、大抵のコンピュータシステム及びユーザにとってほとんど利益にならない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
[0004]したがって、クライアントコンピュータにおけるパフォーマンスインパクトを軽減するとともに、ソフトウェアの信頼性を解明する必要が技術的に存在する。
【課題を解決するための手段】
【０００５】
[0005]本発明の態様は、ソフトウェアの信頼性を測定する方法、装置、及び、コンピュータ読み取り可能な媒体に関する。いくつかの実施形態において、信頼性が不明な少なくとも１つのファイルを含むものと識別されたソフトウェアパッケージがクリーンマシンにインストールされる。ソフトウェアパッケージによってクリーンマシンにおいてインストールされた又は変更されたファイルのカタログを含むレポートパッケージが生成される。カタログにおけるファイルのそれぞれについての識別属性が測定される。カタログにおけるファイルのそれぞれは、それらに対して信頼性のレベルを割り当てるように処理される。レポートパッケージは、出力として提供される。
【０００６】
[0006]本発明の上記列挙された特徴が詳細に理解され得るように、上記に簡潔に要約された本発明のより詳細な説明が、そのいくつかが添付された図面において図示される実施形態への言及によってなされる。しかしながら、留意すべきは、添付された図面が、本発明の代表的な実施形態のみを図示しており、したがって、本発明が他の均等な有効な実施形態を認めてもよいことから、その範囲に限定して考慮されるべきではないということである。
【図面の簡単な説明】
【０００７】
【図１】本発明の１つ以上の態様に係るコンピュータシステムの例としての実施形態を描いているブロック図である。
【図２】本発明のいくつかの実施形態に係るサーバコンピュータを描いているブロック図である。
【図３】本発明のいくつかの実施形態に係る検査コンピュータを描いているブロック図である。
【図４】本発明の１つ以上の態様に係るソフトウェアの信頼性を測定する方法を描いているフローチャートである。
【図５】本発明のいくつかの実施形態に係る検査対象のソフトウェアパッケージを識別する方法を描いているフローチャートである。
【図６】本発明のいくつかの実施形態に係る検査対象のソフトウェアパッケージを識別する方法を描いているフローチャートである。
【図７】本発明のいくつかの実施形態に係る監視コンピュータを描いているブロック図である。
【発明を実施するための形態】
【０００８】
[0014]図１は、本発明の１つ以上の態様に係るコンピュータシステム１００の例としての実施形態を描いているブロック図である。システム１００は、クライアントコンピュータ１０２と、ネットワーク１０４と、サーバコンピュータ１０６と、検査コンピュータ１０８と、データベース１１０とを含む。いくつかの実施形態において、システム１００はまた、監視コンピュータ１０９を含んでもよい。ネットワーク１０４は、ハブ、スイッチ、ルータ等の様々なタイプの周知のネットワーク要素によって容易とされるワイヤ、ケーブル、光ファイバ、及び／又は、無線リンクによってコンピュータシステムを接続する通信システムを備える。特に、ネットワーク１０４は、クライアントコンピュータ１０２及びサーバコンピュータ１０６を接続する。ネットワーク１０４は、情報を通信するために様々な周知のプロトコルを使用してもよい。例えば、ネットワーク１０４は、インターネットプロトコル（ＩＰ）、伝送制御プロトコル（ＴＣＰ）、及び、パケットを伝送するための同類のものを使用してもよい。ネットワーク１０４は、インターネット等の広域通信網（ＷＡＮ）の一部、及び／又は、構内通信網（ＬＡＮ）の全部もしくは一部を構成してもよい。
【０００９】
[0015]クライアントコンピュータ１０２のそれぞれは、ソフトウェア１１２及びエージェント１１３を含む。コンピュータ１０２は、ソフトウェア１１２を実行してエージェント１１３を実装することができる任意のタイプの計算装置を備えてもよい。ソフトウェア１１２は、１つ以上のオペレーティング・システムを含み、１つ以上のアプリケーションプログラムをさらに含んでもよい。エージェント１１３は、マルウェアを検出するためにソフトウェア１１２を監視するように各コンピュータ１０２によって実行可能なソフトウェアを備えてもよい。エージェント１１３は、クライアントコンピュータのパフォーマンスを改善するために「ホワイトリスト」を使用するように構成されている。エージェント１１３は、ソフトウェア１１２における関心のあるファイルが信頼できるとみなされるかどうかを測定するためにサーバコンピュータ１０６によって実装されたバックエンド１２４と協働する。エージェント１１３は、ホワイトリスト上で信頼され得るファイルを含む。ホワイトリスト上の所定のファイルが変えられていない場合には、エージェント１１３は、そのようなファイルを監視しない。一般に、ソフトウェア１１２における数多くのファイルは、正当であり、バックエンド１２４によって信頼されたとみなされる。さらに、そのようなファイルは、頻繁には変化しない。そのようなものとして、エージェント１１３によって監視されるソフトウェア１１２におけるファイルの個数は低減され、これにより、クライアントコンピュータのパフォーマンスを改善する。ソフトウェアの信頼性の測定の実施形態が以下に記載される。
【００１０】
[0016]サーバコンピュータ１０６は、バックエンド１２４を実装するように構成されている。図２は、本発明のいくつかの実施形態に係るサーバコンピュータ１０６を描いているブロック図である。サーバコンピュータ１０６は、実例的に、プロセッサ２０２と、メモリ２０４と、様々なサポート回路２０６と、Ｉ／Ｏインターフェース２０８とを含む。プロセッサ２０２は、当技術分野で知られている１つ以上のマイクロプロセッサを含んでもよい。プロセッサ２０２用のサポート回路２０６は、従来のキャッシュ、電源、クロック回路、データレジスタ、及び、Ｉ／Ｏインターフェース等を含む。Ｉ／Ｏインターフェース２０８は、ネットワーク１０４及びデータベース１１０との通信用に構成されてもよい。メモリ２０４は、１つ以上の以下のランダムアクセスメモリ、読み出し専用メモリ、磁気抵抗読み出し／書き込みメモリ、光読み出し／書き込みメモリ、キャッシュメモリ、及び、磁気読み出し／書き込みメモリ等を含む。
【００１１】
[0017]いくつかの実施形態において、バックエンド１２４は、本明細書に記載された機能を実行するようにメモリ２０４に格納され且つプロセッサ２０２によって実行されるソフトウェアを使用して実装されてもよい。しかしながら、バックエンド１２４が特定用途向け集積回路（ＡＳＩＣ）等の固有に構成されたハードウェアを使用して実装されてもよいことはいうまでもない。他の実施形態において、バックエンド１２４は、固有に構成されたハードウェアとソフトウェアとの組み合わせを使用して実装されてもよい。
【００１２】
[0018]図１に戻ると、バックエンド１２４は、関心のあるファイルが信頼でき、したがってホワイトリストに載っているかどうかを測定するように、クライアントコンピュータ１０２のそれぞれにおけるエージェント１１３と協働するように構成されている。特に、バックエンド１２４は、関心のある特定ファイルの信頼性レベルについてのエージェント１１３による問い合わせを提供するように構成されている。問い合わせは、関心のあるファイルに関連する識別情報を含んでもよい。いくつかの実施形態において、識別情報は、関心のある各ファイルについての要約を含む。要約は、ハッシュ等のファイル識別子であってもよい。ハッシュは、ハッシュ関数（例えば、任意長のデータストリームの入力をとり、所定の固定サイズの値を有する出力を作り出す関数）を使用して計算された値、コード、サム、又は、他のデータであってもよい。ハッシュ関数は、巡回冗長検査（ＣＲＣ）ハッシュ関数、暗号学的ハッシュ関数（例えばメッセージ要約アルゴリズム５（ＭＤ５）ハッシュ関数）、セキュアハッシュアルゴリズム（ＳＨＡ）ハッシュ関数等であってもよい。例としてのＳＨＡハッシュ関数は、ＳＨＡ−０、ＳＨＡ−１、ＳＨＡ−２、ＳＨＡ−２５６、及び、ＳＨＡ−５１２ハッシュ関数を含む。他の周知の又は独占所有権のあるハッシュアルゴリズムがまた、ファイルの要約を測定するために使用されてもよいことはいうまでもない。いくつかの実施形態において、識別情報はまた、ファイル名、規格化したファイルパス、ファイルサイズ等の他のファイル属性を含んでもよい。
【００１３】
[0019]データベース１１０は、様々なファイルについての信頼性情報を格納するように構成されている。データベース１１０は、ファイル識別情報を信頼性のレベルと関連付けるリレーショナルデータベース等を備えてもよい。例えば、データベース１１０は、ファイル要約と信頼性の各レベルとの間の関係を格納してもよい。いくつかの実施形態において、信頼性の各レベルは、複数のレベルから選択される。例えば、ファイルには、プロバイダ信頼、コミュニティ信頼、不信頼、又は、不明から選択された信頼性レベルが割り当てられてもよい。「プロバイダ信頼」は、バックエンド１２４のプロバイダがファイルを信頼していることを示している。「コミュニティ信頼」は、ユーザのコミュニティがファイルを信頼していることを示している。「不明」は、ファイルが信頼できるかもしれず、又は信頼できないかもしれないことを示している。「不信頼」は、ファイルが信頼されるべきではなくマルウェアであり得ることを示している。バックエンド１２４は、データベース１１０に問い合わせるためにファイルについて受信した識別情報を使用し、ファイルについての各信頼性レベルを取得する。データベース１１０は、サーバコンピュータ１０６のリソース（例えば図２におけるメモリ２０４）を使用して実装されてもよい。あるいは、データベース１１０は、１つ以上の別個の格納装置及び／又はサーバコンピュータを使用して実装されてもよい。
【００１４】
[0020]検査コンピュータ１０８は、ソフトウェアパッケージを検査してファイルに対して信頼性のレベルを割り当てるために使用される。検査コンピュータ１０８は、検査部１１４を実装するように構成されている。図３は、本発明のいくつかの実施形態に係る検査コンピュータ１０８を描いているブロック図である。検査コンピュータ１０８は、実例的に、プロセッサ３０２と、メモリ３０４と、様々なサポート回路３０６と、Ｉ／Ｏインターフェース３０８とを含む。プロセッサ３０２は、当技術分野で知られている１つ以上のマイクロプロセッサを含んでもよい。プロセッサ３０２用のサポート回路３０６は、従来のキャッシュ、電源、クロック回路、データレジスタ、及び、Ｉ／Ｏインターフェース等を含む。メモリ３０４は、１つ以上の以下のランダムアクセスメモリ、読み出し専用メモリ、磁気抵抗読み出し／書き込みメモリ、光読み出し／書き込みメモリ、キャッシュメモリ、及び、磁気読み出し／書き込みメモリ等を含んでもよい。
【００１５】
[0021]いくつかの実施形態において、検査部１１４は、本願明細書に記載された機能を実行するようにメモリ３０４に格納され且つプロセッサ３０２によって実行されるソフトウェアを使用して実装されてもよい。しかしながら、検査部１１４が特定用途向け集積回路（ＡＳＩＣ）等の固有に構成されたハードウェアを使用して実装されてもよいことはいうまでもない。他の実施形態において、検査部１１４は、固有に構成されたハードウェアとソフトウェアとの組み合わせを使用して実装されてもよい。
【００１６】
[0022]図１に戻ると、検査部１１４は、ソフトウェアパッケージにおけるファイルについての信頼性のレベルを測定するように構成されている。図４は、本発明の１つ以上の態様に係るソフトウェアの信頼性を測定する方法４００を描いているフローチャートである。本方法４００の実施形態は、図１において示されたコンピュータシステム１００を参照して理解される。本方法４００は、ステップ４０２において開始し、検査部１１４がクリーンマシン１１８に信頼性が不明な１つ以上のファイルを含むものと識別されたソフトウェアパッケージ１１６をインストールする。いくつかの実施形態において、クリーンマシン１１８は、検査コンピュータ１０８上で実行するＶＭＷＡＲＥ仮想マシン等の仮想マシンを備える。クリーンマシン１１８は、オペレーティング・システム以外の他のソフトウェアパッケージがインストールされていないという点で「きれい」である。ソフトウェアパッケージ１１６がオペレーティング・システムである場合には、ソフトウェアは、クリーンマシン１１８に全く存在しない（例えば、クリーンマシンが検査コンピュータ１０８における仮想マシンである場合には、仮想マシンイメージは、オペレーティング・システムが検査されるとして生成されてもよい）。仮想マシンよりもむしろ、クリーンマシン１１８がハードウェア（例えば、検査コンピュータ１０８又は検査コンピュータ１０８に接続された他のコンピュータにおけるハードウェア）を使用して実装されてもよいことはいうまでもない。
【００１７】
[0023]いくつかの実施形態において、ソフトウェアパッケージ１１６は、サーバコンピュータ１０６からの出力を使用して識別される。図５は、本発明のいくつかの実施形態に係る検査対象のソフトウェアパッケージを識別する方法５００を描いているフローチャートである。本方法５００の実施形態は、図１を参照して理解される。本方法５００は、ステップ５０２において開始し、バックエンド１２４がクライアントコンピュータ１０２に格納された関心のあるファイルについての識別情報を受信する。識別情報の実施形態は、上述した通りである。ステップ５０４において、バックエンド１２４は、クライアントコンピュータ１０２の間の拡散率（prevalence）によって順序付けられた信頼性が不明なファイルのリストを生成する。いくつかの実施形態において、バックエンド１２４は、ステップ５０２において受信した識別情報を使用してファイルの拡散率を測定する。例えば、識別情報は、所定のファイルについての信頼性レベルがリクエストされたクライアントコンピュータ１０２の台数を示す。信頼性のレベルがより多くのクライアントコンピュータ１０２によってリクエストされたファイルには、より高い拡散率が割り当てられる。信頼性のレベルがより少ないクライアントコンピュータ１０２によってリクエストされたファイルには、より低い拡散率が割り当てられる。いくつかの実施形態において、バックエンド１２４は、拡散率を測定するためにステップ５０２からの識別情報の代わりに又はそれと組み合わせて他の外部情報５０６を使用してもよい。外部情報５０６は、例えば、それらのソフトウェアパッケージの拡散率に関するソフトウェア発行元からの情報を含んでもよい。
【００１８】
[0024]ステップ５０８において、バックエンド１２４は、拡散率の閾値があればそれを超えない拡散率を有するそれらのファイルをリストから除去する。例えば、信頼レベルが数台のクライアントコンピュータ１０２のみによってリクエストされたファイルの個数であってもよい。拡散率の閾値は、ファイルの検査が始まる前に特定台数のクライアントコンピュータのリクエストが必要とされるように設定されてもよい。ステップ５１０において、バックエンド１２４は、検査対象のファイルのレポート１２０を出力する。レポート１２０は、検査対象のファイルを含む１つ以上のソフトウェアパッケージを識別するために管理者又はユーザによって使用されてもよい。管理者又はユーザは、ソフトウェアパッケージを取得してそれらを格納してもよく、又は、それらを検査コンピュータ１０８に供給してもよい（例えばソフトウェアパッケージ１１６）。
【００１９】
[0025]図４のステップ４０２に戻ると、いくつかの実施形態において、ソフトウェアパッケージ１１６は、自動的に識別される。図６は、本発明のいくつかの実施形態に係る検査対象のソフトウェアパッケージを識別する方法６００を描いているフローチャートである。本方法６００の実施形態は、図１を参照して理解される。図１において示されているように、システム１００は、ソフトウェアパッケージモニタ１３０に構成された監視コンピュータ１０９を含んでもよい。ソフトウェアパッケージモニタ１３０は、検査対象のソフトウェアパッケージを自動的に識別するために本方法６００を実行してもよい。
【００２０】
[0026]図７は、本発明のいくつかの実施形態に係る監視コンピュータ１０９を描いているブロック図である。監視コンピュータ１０９は、実例的に、プロセッサ７０２と、メモリ７０４と、様々なサポート回路７０６と、Ｉ／Ｏインターフェース７０８とを含む。プロセッサ７０２は、当技術分野で知られている１つ以上のマイクロプロセッサを含んでもよい。プロセッサ７０２用のサポート回路７０６は、従来のキャッシュ、電源、クロック回路、データレジスタ、及び、Ｉ／Ｏインターフェース等を含む。Ｉ／Ｏインターフェース７０８は、ネットワーク１０４との通信用に構成されてもよい。Ｉ／Ｏインターフェース７０８はまた、検査コンピュータ１０８との通信用に構成されてもよい。メモリ７０４は、１つ以上の以下のランダムアクセスメモリ、読み出し専用メモリ、磁気抵抗読み出し／書き込みメモリ、光読み出し／書き込みメモリ、キャッシュメモリ、及び、磁気読み出し／書き込みメモリ等を含んでもよい。
【００２１】
[0027]いくつかの実施形態において、ソフトウェアパッケージモニタ１３０は、本願明細書に記載された機能を実行するようにメモリ７０４に格納され且つプロセッサ７０２によって実行されるソフトウェアを使用して実装されてもよい。しかしながら、ソフトウェアパッケージモニタ１３０が特定用途向け集積回路（ＡＳＩＣ）等の固有に構成されたハードウェアを使用して実装されてもよいことはいうまでもない。他の実施形態において、ソフトウェアパッケージモニタ１３０は、固有に構成されたハードウェアとソフトウェアとの組み合わせを使用して実装されてもよい。
【００２２】
[0028]図１及び図６に戻ると、本方法６００は、ステップ６０２において開始し、ソフトウェアパッケージモニタ１３０がソフトウェアの信頼できる供給源であるものと示されたベンダーのウェブサイトを監視する。例えば、オペレーティング・システム及び他の周知で人気があるソフトウェアパッケージのベンダーは、ソフトウェアの信頼できる供給源とみなされてもよい。そのようなベンダーは、インターネット上の特定の発行ポイントにおいて新規のソフトウェアパッケージ及び／又は現在のソフトウェアパッケージの更新を公開することがある（留意すべきは、更新は、本記載のためにソフトウェアパッケージであると考えられるということである）。例えば、オペレーティング・システム又は他のアプリケーションのベンダーは、オペレーティング・システム又はアプリケーションについての定期的な更新を提供するウェブサイトをメンテナンスすることがある。ソフトウェアパッケージモニタ１３０は、検査されていないソフトウェアパッケージを検出するために、そのようなウェブサイトを監視するように構成されてもよい。ステップ６０４において、ソフトウェアパッケージモニタ１３０は、検査コンピュータ１０８にロードするために未検査のソフトウェアパッケージを取得する。例えば、ソフトウェアパッケージモニタ１３０は、ネットワーク１０４を介して未検査のソフトウェアパッケージをダウンロードしてもよい。ソフトウェアパッケージモニタ１３０は、（監視コンピュータ１０９が検査コンピュータ１０８に接続されている場合には）未検査のソフトウェアパッケージを直接検査コンピュータ１０９に送信してもよい。あるいは、管理者又はユーザは、監視コンピュータ１０９からダウンロードされたソフトウェアパッケージを取り出し、それらを検査コンピュータ１０８にロードしてもよい。
【００２３】
[0029]図１のステップ４０２に戻ると、１つの実施形態において、ソフトウェアパッケージ１１６のインストールは、以下のように開始する。すなわち、ステップ４０４において、検査部１１４は、ソフトウェアパッケージ１１６のインストールに先だって、クリーンマシン１１８のソフトウェア状態の第１のスナップショットを取得する。例えば、ソフトウェアパッケージ１１６がアプリケーションである場合には、第１のスナップショットにおけるソフトウェア状態は、アプリケーションがインストールされる前のオペレーティング・システムの状態であってもよい。ソフトウェアパッケージ１１６がオペレーティング・システムである場合には、ソフトウェア状態は、空であってもよい（すなわち、ソフトウェア状態がない）。ステップ４０６において、検査部１１４は、ソフトウェアパッケージ１１６のインストール後に、クリーンマシン１１８のソフトウェア状態の第２のスナップショットを取得する。第２のスナップショットは、ソフトウェアパッケージ１１６のインストールによってインストールされた及び／又は変更されたファイルに起因して、第１のスナップショットとは異なる。
【００２４】
[0030]ステップ４０８において、検査部１１４は、ソフトウェアパッケージ１１６のインストールに基づいてレポートパッケージ１３５を生成する。レポートパッケージ１３５は、ソフトウェアパッケージ１１６によってクリーンマシン１１８にインストールされた及び／又は変更されたファイルのカタログを含む。いくつかの実施形態において、検査部１１４は、ステップ４０４及びステップ４０６において生成された第１及び第２のスナップショットを比較（例えばスナップショットの前後）することにより、インストールされた及び／又は変更されたファイルのカタログを生成してもよい（ステップ４１０）。レポートパッケージ１３５は、バージョン情報や製品ベンダー等のソフトウェアパッケージ１１６に関連する他の情報を含んでもよい。レポートパッケージ１３５はまた、ソフトウェアパッケージ１１６によってインストールされた及び／又は変更されたファイルのバイナリーを含んでもよい。
【００２５】
[0031]ステップ４１２において、検査部１１４は、レポートパッケージ１３５のカタログにおける各ファイルの識別属性を測定する。識別属性は、クライアントコンピュータ１０２から受信したファイル識別データ、すなわち、要約（例えばＳＨＡ−２ハッシュ）、ファイル名、規格化したファイルパス、ファイルサイズ、関連するソフトウェアパッケージ、バージョン情報、及び、ディジタル署名等と同一又は類似であってもよい。
【００２６】
[0032]ステップ４１４において、検査部１１４は、ファイルのそれぞれに対して信頼性のレベルを割り当てるように、レポートパッケージ１３５のカタログにおけるファイルのそれぞれを処理する。信頼性レベルは、様々な方法及び情報を使用して所定ファイルに割り当てられてもよい。いくつかの実施形態において、検査部１１４は、マルウェアについてのカタログにおけるファイルのそれぞれをスキャンする（ステップ４１６）。マルウェアについてのファイルをスキャンする技術は、当技術分野で知られている。マルウェアであるものと示されたファイルには、「不信頼」のレベルが割り当てられる。いくつかの実施形態において、検査部１１４は、レポートパッケージ１３５のカタログにおける１つ以上のファイルについてのディジタル署名を解析する（ステップ４１８）。ソフトウェアパッケージ１１６によってインストールされたいくつかのファイルは、ベンダーによってディジタル的に署名されてもよい。ディジタル署名が検証され得た場合には、各ファイルには、「プロバイダ信頼」又は「コミュニティ信頼」のレベルが割り当てられ得る。いくつかの実施形態において、検査部１１４は、カタログにおけるファイルの起源を測定し、そのような起源の信頼性の大きさを取得する（ステップ４２０）。例えば、検査部１１４は、ファイルのベンダーを識別し、公知のベンダー及び対応する信頼のレベルのリストに対するベンダーを相互参照してもよい。ベンダーには、例えば、「プロバイダ信頼」、「コミュニティ信頼」、「不信頼」、又は、「不明」の間の異なる信頼のレベルが割り当てられてもよい。いくつかの実施形態において、検査部１１４は、カタログにおけるファイルの統計的解析を実行する（ステップ４２２）。例えば、検査コンピュータ１０８は、上述したようにクライアントコンピュータ１０２によってレポートされた識別情報ファイルを格納してもよいデータベース１１０との通信用に構成されてもよい。いくつかの実施形態において、データベース１１０はまた、特定のクライアントコンピュータ１０２が、多かれ少なかれ、マルウェアによって影響を及ぼされそうであるかどうかを示す「ウィルス予防策評価」等を含むクライアントコンピュータ１０２についての統計値を保持する。検査部１１４は、クライアントコンピュータ１０２上のファイル及びクライアントコンピュータ１０２についてのウィルス予防策評価の存在に関して、カタログにおけるファイルの統計的解析を実行してもよい。例えば、信頼性が不明のファイルが、悪いウィルス予防策評価（例えば平均して）でクライアントコンピュータ１０２に格納されることが知られている場合には、ファイルは、よりマルウェアでありそうであるとみなされてもよく、より低い信頼評価が割り当てられてもよい。逆に、信頼性が不明のファイルが、良好なウィルス予防策評価（例えば平均して）でクライアントコンピュータ１０２に格納されることが知られている場合には、ファイルは、よりマルウェアでなさそうであるとみなされてもよく、より高い信頼評価が割り当てられてもよい。いくつかの実施形態において、検査部１１４は、レポートパッケージ１３５のカタログにおけるファイルのそれぞれについての信頼性の全体レベルを測定するために、ステップ４１６からステップ４２２の組み合わせを実行する。一般に、ステップ４１４において測定された信頼のレベルは、レポートパッケージ１３５のカタログにおけるファイルのそれぞれについての属性として含まれてもよい。
【００２７】
[0033]ステップ４２４において、検査部１１４は、出力としてレポートパッケージ１３５を提供する。そして、レポートパッケージ１３５は、カタログにおけるファイル及びそれらの信頼性の各レベルに関してデータベース１１０を更新するために使用されてもよい。いくつかの実施形態において、レポートパッケージ１３５は、サーバコンピュータ１０６に対して自動的に提供され、データベース１１０を更新するようにバックエンド１２４によって処理されてもよい。あるいは、管理者又は他のユーザは、（例えば、サーバコンピュータ１０６又は他のコンピュータとの協働を介して）レポートパッケージ１３５に基づいてデータベース１１０の更新を開始することができる。
【００２８】
[0034]上述した本発明の実施形態において、サーバコンピュータ１０６、検査コンピュータ１０８、及び、監視コンピュータ１０９の例としての構造が記載されている。他の構造が使用されてもよいことはいうまでもない。一般に、バックエンド１２４、検査部１１４、及び、ソフトウェアパッケージモニタ１３０の機能は、１つ以上のコンピュータ／サーバによって実行されてもよい。いくつかの実施形態において、検査コンピュータ１０９は、ソフトウェアパッケージ１１６のインストールが、いくつかの外部影響によってデータを破損するという可能性を未然に防止するために、ネットワーク１０４及び／又は他のコンピュータから隔離される。
【００２９】
[0035]上述した方法の態様は、コンピュータシステムによって使用するためのプログラム製品として実装されてもよい。プログラム製品のプログラムは、実施形態の機能を定義し、これに限定されないが、（i）書き込み不可能な記憶媒体（例えば、ＣＤ−ＲＯＭドライブ又はＤＶＤドライブによって読み取り可能なＣＤ−ＲＯＭ又はＤＶＤ−ＲＯＭディスク等のコンピュータ内の読み出し専用メモリ装置）に永久に格納された情報、及び、（ii）書き込み可能な記憶媒体（例えば、ディスクドライブ内のフロッピーディスク又はハードディスクドライブ又は読み出し／書き込み可能なＣＤ又は読み出し／書き込み可能なＤＶＤ）に格納された可変情報を含む様々なコンピュータ読み取り可能な媒体に含まれ得る。そのようなコンピュータ読み取り可能な媒体は、本発明の機能を指示するコンピュータ読み取り可能な命令を伝える場合に、本発明の実施形態を表す。
【００３０】
[0036]様々な実施形態が上述された一方で、当然のことながら、それらは、例示としてのみ示されており、限定されるものではない。したがって、好ましい実施形態の広さ及び範囲は、いかなる上述した例としての実施形態によっても限定されるべきではなく、以下の特許請求の範囲及びそれらの均等物にしたがってのみ定義されるべきである。
【符号の説明】
【００３１】
１００…コンピュータシステム、１０２…クライアントコンピュータ、１０４…ネットワーク、１０６…サーバコンピュータ、１０８…検査コンピュータ、１０９…監視コンピュータ、１１０…データベース、１１２…ソフトウェア、１１３…エージェント、１１４…検査部、１１６…ソフトウェアパッケージ、１１８…クリーンマシン、１２０…レポート、１２４…バックエンド、１３０…ソフトウェアパッケージモニタ、１３５…レポートパッケージ、２０２、３０２、７０２…プロセッサ、２０４、３０４、７０４…メモリ、２０６、３０６、７０６…サポート回路、２０８、３０８、７０８…Ｉ／Ｏインターフェース。
【図１】
2010092469.tif 000003
【図２】
2010092469.tif 000004
【図３】
2010092469.tif 000005
【図４】
2010092469.tif 000006
【図５】
2010092469.tif 000007
【図６】
2010092469.tif 000008
【図７】
2010092469.tif 000009
【外国語明細書】
2010092469000001.pdf