(57)【要約】  プリインストールアプリケーションのスキャンを最適化するためのコンピュータ実装方法は、（１）クライアントデバイスで、スキャンベースの査定の対象となる複数のアプリケーションを識別することと、（２）複数のアプリケーションがクライアントデバイスのシステムイメージを介してクライアントデバイスにプリインストールされたことを判定することと、（３）システムイメージを表すフィンガープリントを生成することと、（４）システムイメージを表すフィンガープリントを査定サーバに送信するとともにそれに応じてシステムイメージの査定を受信することによって、複数のアプリケーションに対してスキャンベースの査定を遂行することと、を含むことができる。様々な他の方法、システム、及びコンピュータ可読媒体もまた、開示されている。
2017511523.tif 000002
【特許請求の範囲】
【請求項１】
プリインストールアプリケーションのスキャンを最適化するためのコンピュータ実装方法であって、前記方法の少なくとも一部が少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実行され、前記方法が、
クライアントデバイスで、スキャンベースの査定の対象となる複数のアプリケーションを識別することと、
前記複数のアプリケーションが前記クライアントデバイスのシステムイメージを介して前記クライアントデバイスにプリインストールされたことを判定することと、
前記システムイメージを表すフィンガープリントを生成することと、
前記システムイメージを表す前記フィンガープリントを査定サーバに送信するとともにそれに応じて前記システムイメージの査定を受信することによって、前記複数のアプリケーションに対して前記スキャンベースの査定を遂行することと、
を含む、方法。
【請求項２】
前記スキャンベースの査定が、
前記複数のアプリケーションの内のアプリケーションがマルウェアを含むかどうかの査定と、
前記複数のアプリケーションの内のアプリケーションのパフォーマンス査定と、のうち少なくとも１つを含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記スキャンベースの査定が、前記アプリケーションが前記クライアントデバイスの特徴にアクセスできるようにする、前記クライアントデバイスの前記アプリケーションに割り当てられた許可に基づく前記複数のアプリケーションの内のアプリケーションの査定を含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記システムイメージの発行元のみが、前記複数のアプリケーションの内の任意のアプリケーションを修正するように許可されている、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記クライアントデバイスで、少なくとも１つのスキャンベースの査定の対象となる個別アプリケーションを識別することと、
前記個別アプリケーションが前記クライアントデバイスの前記システムイメージを介して前記クライアントデバイスにプリインストールされなかったことを判定することと、
前記個別アプリケーションが前記クライアントデバイスの前記システムイメージを介して前記クライアントデバイスにプリインストールされなかったことを判定したことに基づいて、前記個別アプリケーションを表し、他のいかなるアプリケーションも表さない個別フィンガープリントを生成することと、
前記個別アプリケーションを表す前記個別フィンガープリントを前記査定サーバに送信するとともにそれに応じて前記個別アプリケーションの査定を受信することによって、前記個別アプリケーションに対して前記スキャンベースの査定を遂行することと、
を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記システムイメージの前記査定が、前記複数のアプリケーションの内の個別アプリケーションの査定を含み、
前記個別アプリケーションの前記査定が、前記個別アプリケーションが改善措置の対象となることを指摘する、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記改善措置を実行することを更に含む、請求項６に記載のコンピュータ実装方法。
【請求項８】
前記個別アプリケーションの前記査定に基づいて、前記システムイメージを表す前記フィンガープリントを前記査定サーバに送信することが、前記複数のアプリケーションに対して後続のスキャンベースの査定を遂行するのに十分ではないと判定することと、
前記システムイメージを表す前記フィンガープリントを前記査定サーバに送信することが、前記後続のスキャンベースの査定を遂行するのに十分ではないと判定したことに応じて、前記複数のアプリケーションの内のアプリケーションそれぞれに対する個別フィンガープリントを前記査定サーバに送信することによって、前記複数のアプリケーションに対して前記後続のスキャンベースの査定を遂行することと、
を更に含む、請求項６に記載のコンピュータ実装方法。
【請求項９】
前記システムイメージを表す前記フィンガープリントを生成することが、前記複数のアプリケーションの内のアプリケーションそれぞれに対する個別フィンガープリントを結合することを含む、請求項１に記載のコンピュータ実装方法。
【請求項１０】
前記システムイメージを表す前記フィンガープリントを生成することが、前記フィンガープリントを生成するための入力として、前記システムイメージを検証するため前記システムイメージとともに含まれる公開鍵を使用することを含む、請求項１に記載のコンピュータ実装方法。
【請求項１１】
前記システムイメージを表す前記フィンガープリントを生成することが、前記システムイメージのバージョン及び前記システムイメージのビルド番号に基づいて前記フィンガープリントを生成することを含む、請求項１に記載のコンピュータ実装方法。
【請求項１２】
プリインストールアプリケーションのスキャンを最適化するためのシステムであって、前記システムが、
クライアントデバイスで、スキャンベースの査定の対象となる複数のアプリケーションを識別する、メモリに記憶される識別モジュールと、
前記複数のアプリケーションが前記クライアントデバイスのシステムイメージを介して前記クライアントデバイスにプリインストールされたことを判定する、メモリに記憶される判定モジュールと、
前記システムイメージを表すフィンガープリントを生成する、メモリに記憶される生成モジュールと、
前記システムイメージを表す前記フィンガープリントを査定サーバに送信するとともにそれに応じて前記システムイメージの査定を受信することによって、前記複数のアプリケーションに対して前記スキャンベースの査定を遂行する、メモリに記憶される遂行モジュールと、
前記識別モジュール、前記判定モジュール、前記生成モジュール、及び前記遂行モジュールを実行する少なくとも１つの物理プロセッサと、
を備える、システム。
【請求項１３】
前記スキャンベースの査定が、
前記複数のアプリケーションの内のアプリケーションがマルウェアを含むかどうかの査定と、
前記複数のアプリケーションの内のアプリケーションのパフォーマンス査定と、のうち少なくとも１つを含む、請求項１２に記載のシステム。
【請求項１４】
前記スキャンベースの査定が、前記アプリケーションが前記クライアントデバイスの特徴にアクセスできるようにする、前記クライアントデバイスの前記アプリケーションに割り当てられた許可に基づく前記複数のアプリケーションの内のアプリケーションの査定を含む、請求項１２に記載のシステム。
【請求項１５】
前記システムイメージの発行元のみが、前記複数のアプリケーションの内の任意のアプリケーションを修正することが許可されている、請求項１２に記載のシステム。
【請求項１６】
前記識別モジュールが、前記クライアントデバイスで、少なくとも１つのスキャンベースの査定の対象となる個別アプリケーションを更に識別し、
前記判定モジュールが、前記個別アプリケーションが前記クライアントデバイスの前記システムイメージを介して前記クライアントデバイスにプリインストールされなかったことを更に判定し、
前記生成モジュールが、前記個別アプリケーションが前記クライアントデバイスの前記システムイメージを介して前記クライアントデバイスにプリインストールされなかったことを判定したことに基づいて、前記個別アプリケーションを表し、他のいかなるアプリケーションも表さない個別フィンガープリントを更に生成し、
前記遂行モジュールが、前記個別アプリケーションを表す前記個別フィンガープリントを前記査定サーバに送信するとともにそれに応じて前記個別アプリケーションの査定を受信することによって、前記個別アプリケーションに対して前記スキャンベースの査定を更に遂行する、請求項１２に記載のシステム。
【請求項１７】
前記システムイメージの前記査定が、前記複数のアプリケーションの内の個別アプリケーションの査定を含み、
前記個別アプリケーションの前記査定が、前記個別アプリケーションが改善措置の対象となることを指摘する、
請求項１２に記載のシステム。
【請求項１８】
前記遂行モジュールが前記改善措置を更に実行する、請求項１７に記載のシステム。
【請求項１９】
前記判定モジュールが、前記個別アプリケーションの前記査定に基づいて、前記システムイメージを表す前記フィンガープリントを前記査定サーバに送信することが、前記複数のアプリケーションに対して後続のスキャンベースの査定を遂行するのに十分ではないことを更に判定し、
前記遂行モジュールが、前記システムイメージを表す前記フィンガープリントを前記査定サーバに送信することが前記後続のスキャンベースの査定を遂行するのに十分ではないと判定したことに応じて、前記複数のアプリケーションの内のアプリケーションそれぞれに対する個別フィンガープリントを前記査定サーバに送信することによって、前記複数のアプリケーションに対して前記後続のスキャンベースの査定を更に遂行する、請求項１７に記載のコンピュータ実装方法。
【請求項２０】
１つ以上のコンピュータ実行可能命令を含む、非一時的コンピュータ可読媒体であって、前記１つ以上のコンピュータ実行可能命令が、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
クライアントデバイスで、スキャンベースの査定の対象となる複数のアプリケーションを識別することと、
前記複数のアプリケーションが前記クライアントデバイスのシステムイメージを介して前記クライアントデバイスにプリインストールされたことを判定することと、
前記システムイメージを表すフィンガープリントを生成することと、
前記システムイメージを表す前記フィンガープリントを査定サーバに送信するとともにそれに応じて前記システムイメージの査定を受信することによって、前記複数のアプリケーションに対して前記スキャンベースの査定を遂行することを、行わせる、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
消費者及び企業は、コンピューティングデバイスの安定性及びパフォーマンス、並びにそのデータのセキュリティを脅かす、悪意あるソフトウェアの増加の流れに直面している。悪意ある動機をもつコンピュータプログラマは、コンピューティングデバイスを危殆化することを狙い、ウイルス、トロイの木馬、ワーム、及び他のプログラム（まとめて「マルウェア」として知られる）を作成してきた。そしてそれらを引き続き作成している。検出を回避しようとして、悪意あるプログラマはマルウェアを正規のプログラムの中に、又はそのプログラムの間に注入することができる。
【０００２】
多くのセキュリティソフトウェア会社は、定期的にマルウェアシグネチャ（例えば、マルウェアを一意的に識別するハッシュ関数）を作成し、それを自身の顧客に配備することによって、マルウェアに対抗しようと試みる。しかしながら、シグネチャベースのセキュリティ査定を実行すると、特に、ネットワークリソース及び他の計算リソースの供給が限られているモバイルコンピューティングデバイスの場合には、かなりの量のコンピューティングリソースを消費することがある。更に、モバイルコンピューティングデバイスを含む多くのコンピューティングシステムは、いくつかのプリインストールアプリケーションに付属することがあり、それによって、モバイルコンピューティングデバイスと、このモバイルコンピューティングデバイスにインストールされたアプリケーションに対するセキュリティ査定を供給するセキュリティサーバの両方に計算負担をかけることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
したがって、本開示は、プリインストールアプリケーションのスキャンを最適化するための追加の、かつ改善されたシステム及び方法に対する必要性を識別し、それに対処するものである。
【課題を解決するための手段】
【０００４】
詳細に後述するように、本開示は、システムイメージに含まれるプリインストールアプリケーションそれぞれに対して別個のルックアップを実行する代わりに、システムイメージの査定を検索するためシステムイメージに対して単一のルックアップを実行することによって、プリインストールアプリケーションのスキャンを最適化するための様々なシステム及び方法を記載する。
【０００５】
一実施例では、プリインストールアプリケーションのスキャンを最適化するためのコンピュータ実装方法は、（１）クライアントデバイスで、スキャンベースの査定の対象となる複数のアプリケーションを識別することと、（２）複数のアプリケーションがクライアントデバイスのシステムイメージを介してクライアントデバイスにプリインストールされたことを判定することと、（３）システムイメージを表すフィンガープリントを生成することと、（４）システムイメージを表すフィンガープリントを査定サーバに送信するとともにそれに応じてシステムイメージの査定を受信することによって、複数のアプリケーションに対してスキャンベースの査定を遂行することと、を含むことができる。
【０００６】
いくつかの実施例では、スキャンベースの査定は、（１）複数のアプリケーションの内のアプリケーションがマルウェアを含むかどうかの査定、及び／又は（２）複数のアプリケーションの内のアプリケーションのパフォーマンス査定を含むことができる。いくつかの実施形態では、スキャンベースの査定が、アプリケーションがクライアントデバイスの特徴にアクセスできるようにする、クライアントデバイスのアプリケーションに割り当てられた許可に基づく複数のアプリケーションの内のアプリケーションの査定を含むことができる。いくつかの実施例では、発行元のみが複数のアプリケーションの内の任意のアプリケーションを修正することが許可され得る。
【０００７】
いくつかの実施形態では、方法はまた、（１）クライアントデバイスで、少なくとも１つのスキャンベースの査定の対象となる個別アプリケーションを識別することと、（２）個別アプリケーションがクライアントデバイスのシステムイメージを介してクライアントデバイスにプリインストールされなかったことを判定することと、（３）個別アプリケーションがクライアントデバイスのシステムイメージを介してクライアントデバイスにプリインストールされなかったことを判定したことに基づいて、個別アプリケーションを表し、他のいかなるアプリケーションも表さない個別フィンガープリントを生成することと、（４）個別アプリケーションを表すフィンガープリントを査定サーバに送信するとともにそれに応じて個別アプリケーションの査定を受信することによって、個別アプリケーションに対してスキャンベースの査定を遂行することと、を含むことができる。
【０００８】
いくつかの実施例では、（１）システムイメージの査定は、複数のアプリケーションの内の個別アプリケーションの査定を含むことができ、（２）個別アプリケーションの査定は、個別アプリケーションが改善措置の対象となることを指摘することができる。これらの実施例では、方法はまた改善措置を実行することを含むことができる。加えて又は代わりに、これらの実施例では、方法はまた、（１）システムイメージを表すフィンガープリントを査定サーバに送信することが、複数のアプリケーションに対して後続のスキャンベースの査定を遂行するのに十分でないことを、個別アプリケーションの査定に基づいて判定することと、（２）システムイメージを表すフィンガープリントを査定サーバに送信することが、後続のスキャンベースの査定を遂行するのに十分でないと判定したことに応じて、複数のアプリケーションの内のアプリケーションそれぞれに対して個別フィンガープリントを査定サーバに送信することによって複数のアプリケーションに対して後続のスキャンベースの査定を遂行することと、を含むことができる。
【０００９】
いくつかの実施形態では、システムイメージを表すフィンガープリントを生成することが、複数のアプリケーションの内のアプリケーションそれぞれに対する個別フィンガープリントを結合することを含むことができる。加えて又は代わりに、システムイメージを表すフィンガープリントを生成することが、フィンガープリントを生成するための入力として、システムイメージを検証するためシステムイメージとともに含まれる公開鍵を使用することを含むことができる。いくつかの実施例では、システムイメージを表すフィンガープリントを生成することが、システムイメージのバージョン及びシステムイメージのビルド番号に基づいてフィンガープリントを生成することを含むことができる。
【００１０】
一実施形態では、上述した方法を実行するためのシステムは、（１）クライアントデバイスで、スキャンベースの査定の対象となる複数のアプリケーションを識別する、メモリに記憶される識別モジュールと、（２）この複数のアプリケーションがクライアントデバイスのシステムイメージを介してクライアントデバイスにプリインストールされたことを判定する、メモリに記憶される判定モジュールと、（３）システムイメージを表すフィンガープリントを生成する、メモリに記憶される生成モジュールと、（４）システムイメージを表すフィンガープリントを査定サーバに送信するとともにそれに応じてシステムイメージの査定を受信することによって、複数のアプリケーションに対してスキャンベースの査定を遂行する、メモリに記憶される遂行モジュールと、（５）識別モジュール、判定モジュール、生成モジュール、及び遂行モジュールを実行する少なくとも１つの物理プロセッサと、を含むことができる。
【００１１】
いくつかの実施例では、上述の方法は、非一時的コンピュータ可読媒体上のコンピュータ可読命令として、コード化され得る。例えば、コンピュータ可読媒体は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、コンピューティングデバイスに（１）クライアントデバイスで、スキャンベースの査定の対象となる複数のアプリケーションを識別することと、（２）複数のアプリケーションがクライアントデバイスのシステムイメージを介してクライアントデバイスにプリインストールされたことを判定することと、（３）システムイメージを表すフィンガープリントを生成することと、（４）システムイメージを表すフィンガープリントを査定サーバに送信するとともにそれに応じてシステムイメージの査定を受信することによって、複数のアプリケーションに対してスキャンベースの査定を遂行することと、を行わせる、１つ以上のコンピュータ実行可能命令を含むことができる。
【００１２】
本明細書に記載される一般原理に従い、上記の実施形態のうち任意による特徴を互いに組み合わせて使用することができる。これら及び他の実施形態、特徴、及び利点は、添付の図面及び特許請求の範囲と併せて以下の発明を実施するための形態を読むことによって更に十分に理解されるだろう。
【図面の簡単な説明】
【００１３】
添付の図面は、多数の例示的な実施形態を示すものであり、本明細書の一部である。以下の説明と併せて、これらの図面は、本開示の様々な原理を実証及び説明する。
【図１】プリインストールアプリケーションのスキャンを最適化するための例示的なシステムのブロック図である。
【図２】プリインストールアプリケーションのスキャンを最適化するための、追加の例示的なシステムのブロック図である。
【図３】プリインストールアプリケーションのスキャンを最適化するための、例示的なシステムのフローチャートである。
【図４】プリインストールアプリケーションのスキャンを最適化するための、追加の例示的なシステムのブロック図である。
【図５】本明細書に記載及び／又は図示される実施形態のうち１つ以上を実装することができる例示的なコンピューティングシステムのブロック図である。
【図６】本明細書に記載及び／又は図示される実施形態のうち１つ以上を実装することができる例示的なコンピューティングネットワークのブロック図である。
【００１４】
図面を通して、同一の参照符号及び記述は、必ずしも同一ではないが、類似の要素を示す。本明細書に記載される例示的な実施形態は、様々な変更例及び代替的な形態が可能であるが、特定の実施形態が例として図面に示されており、本明細書において詳細に記載されることとなる。しかしながら、本明細書に記載される例示的な実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の特許請求の範囲内にある全ての変更例、均等物、及び代替物を網羅する。
【発明を実施するための形態】
【００１５】
本開示は、一般にプリインストールアプリケーションのスキャンを最適化するためのシステム及び方法を対象とする。詳細に後述するように、システムイメージに含まれるプリインストールアプリケーションそれぞれに対して別個のルックアップを実行する代わりに、システムイメージの査定を検索するためシステムイメージに対して単一のルックアップを実行することによって、本明細書に記載されるシステム及び方法は、プリインストールアプリケーションを有するコンピューティングデバイスとこのコンピューティングデバイスにインストールされたアプリケーションに対するセキュリティ査定を供給するセキュリティサーバの両方における計算負担を低減することができる。
【００１６】
以下に、図１、図２、及び図４を参照して、プリインストールアプリケーションのスキャンを最適化するための例示的なシステムを詳細に説明する。対応するコンピュータ実装方法の詳細な説明も、図３に関連して提供される。更に、本明細書に記載される実施形態のうち１つ以上を実装することができる例示的なコンピューティングシステム及びネットワークアーキテクチャの詳細な説明が図５及び図６に関連してそれぞれ提供されることとなる。
【００１７】
図１は、プリインストールアプリケーションのスキャンを最適化するための、例示的なシステム１００のブロック図である。この図面に示すように、例示的なシステム１００は、１つ以上のタスクを実行するための１つ以上のモジュール１０２を備えてもよい。例えば、詳細に後述するように、例示的なシステム１００は、（１）クライアントデバイスで、スキャンベースの査定の対象となる複数のアプリケーションを識別する、メモリに記憶される識別モジュール１０４と、（２）この複数のアプリケーションがクライアントデバイスのシステムイメージを介してクライアントデバイスにプリインストールされたことを判定する、メモリに記憶される判定モジュール１０６と、（３）システムイメージを表すフィンガープリントを生成する、メモリに記憶される生成モジュール１０８と、（４）システムイメージを表す前記フィンガープリントを査定サーバに送信するとともにそれに応じてシステムイメージの査定を受信することによって、複数のアプリケーションに対してスキャンベースの査定を遂行する、メモリに記憶される遂行モジュール１１０と、を含むことができる。別々の要素として示すが、図１のモジュール１０２のうち１つ以上は、単一のモジュール又はアプリケーションの一部を表してもよい。
【００１８】
特定の実施形態において、図１のモジュール１０２のうち１つ以上は、コンピューティングデバイスによって実行されるとき、コンピューティングデバイスに１つ以上のタスクを実行させることができる、１つ以上のソフトウェアアプリケーション又はプログラムを表してもよい。例えば、詳細に後述するように、モジュール１０２のうちの１つ以上は、図２に図示するデバイス（例えば、コンピューティングデバイス２０２、及び／又は査定サーバ２０６）、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の部分など、１つ以上のコンピューティングデバイスに記憶され、そこで作動するように構成される、ソフトウェアモジュールを表すことができる。図１のモジュール１０２のうち１つ以上はまた、１つ以上のタスクを実行するように構成された１つ以上の専用コンピュータの全て又は部分を表してもよい。
【００１９】
図１に示すように、例示的なシステム１００はまた、データベース１２０などの１つ以上のデータベースを含んでもよい。一実施例では、データベース１２０は、１つ以上のアプリケーションシグネチャ及び／又はシステムイメージシグネチャを記憶するように構成され得る。
【００２０】
データベース１２０は、単一のデータベース若しくはコンピューティングデバイスの部分、又は複数のデータベース若しくはコンピューティングデバイスの部分を表してもよい。例えば、データベース１２０は、図２の査定サーバ２０６の一部分、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の部分を表してもよい。代わりに、図１のデータベース１２０は、図２のサーバ２０６、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の部分など、コンピューティングデバイスがアクセスできる、１つ以上の物理的に別個のデバイスを表してもよい。
【００２１】
図１の例示的なシステム１００は、様々な方法で実装され得る。例えば、例示的なシステム１００の全て又は一部分は、図２における例示的なシステム２００の部分を表してもよい。図２に示すように、システム２００は、ネットワーク２０４を介して査定サーバ２０６と通信するコンピューティングデバイス２０２を含むことができる。一実施例では、コンピューティングデバイス２０２は、モジュール１０２のうち１つ以上を用いてプログラムされてもよく、かつ／又はデータベース１２０内のデータの全て若しくは一部分を記憶することができる。加えて又は代わりに、査定サーバ２０６は、モジュール１０２のうちの１つ以上を用いてプログラムされてもよく、かつ／又はデータベース１２０のデータの全て又は一部分を記憶してもよい。
【００２２】
一実施形態では、図１にあるモジュール１０２のうちの１つ以上は、コンピューティングデバイス２０２及び／又は査定サーバ２０６のプロセッサのうち少なくとも１つにより実行されるとき、コンピューティングデバイス２０２及び／又は査定サーバ２０６に、コンピューティングデバイス２０２におけるプリインストールアプリケーションのスキャンを最適化できるようにする。例えば、詳細に後述するように、モジュール１０２の１つ以上は、コンピューティングデバイス２０２及び／又は査定サーバ２０６に、（１）コンピューティングデバイス２０２で、スキャンベースの査定の対象となる複数のアプリケーション２１２を識別することと、（２）アプリケーション２１２がコンピューティングデバイス２０２のシステムイメージ２１０を介してコンピューティングデバイス２０２にプリインストールされたことを判定することと、（３）システムイメージ２１０を表すフィンガープリント２１４を生成することと、（４）システムイメージ２１０を表すフィンガープリント２１４を査定サーバ２０６に送信するとともにそれに応じてシステムイメージ２１０の査定２１６を受信することによりアプリケーション２１２に対してスキャンベースの査定を遂行することと、を行わせることができる。
【００２３】
コンピューティングデバイス２０２は一般に、コンピュータ実行可能命令を読み取ることができる任意のタイプ又は形態のコンピューティングデバイスを表す。コンピューティングデバイス２０２の例としては、ラップトップ、タブレット、デスクトップ、サーバ、携帯電話、携帯情報端末（ＰＤＡ）、マルチメディアプレーヤー、埋め込みシステム、ウェアラブルデバイス（例えば、スマートウォッチ、スマートグラスなど）、ゲーム機、それらの１つ以上の組み合わせ、図５の例示的なコンピューティングシステム５１０、あるいは任意の他の好適なコンピューティングデバイスが挙げられるが、これらに限定されない。
【００２４】
査定サーバ２０６は一般に、アプリケーション及び／又はシステムイメージのフィンガープリントに基づいてアプリケーション及び／又はシステムイメージの査定を行うことができる任意のタイプ又は形態のコンピューティングデバイスを表す。査定サーバ２０６の例として、様々なデータベースサービスを提供し、かつ／又は特定のソフトウェアアプリケーションを作動させるように構成されたアプリケーションサーバ及びデータベースサーバが挙げられるが、これらに限定されない。例えば、査定サーバ２０６はセキュリティサーバを含むことができる。
【００２５】
ネットワーク２０４は一般に、通信又はデータ転送を容易にすることができる任意の媒体又はアーキテクチャを表す。ネットワーク２０４の例として、イントラネット、広域ネットワーク（Ｗｉｄｅ Ａｒｅａ Ｎｅｔｗｏｒｋ）（ＷＡＮ）、ローカルエリアネットワーク（Ｌｏｃａｌ Ａｒｅａ Ｎｅｔｗｏｒｋ）（ＬＡＮ）、パーソナルエリアネットワーク（Ｐｅｒｓｏｎａｌ Ａｒｅａ Ｎｅｔｗｏｒｋ）（ＰＡＮ）、インターネット、電力線通信（ＰＬＣ）、セルラーネットワーク（例えば、Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ（ＧＳＭ（登録商標））ネットワーク）、図６の例示的なネットワークアーキテクチャ６００などが挙げられるが、これらに限定されない。ネットワーク２０４は、無線接続又は有線接続を使用して、通信又はデータ転送を容易にすることができる。一実施形態では、ネットワーク２０４はコンピューティングデバイス２０２とサーバ２０６との間の通信を容易することができる。
【００２６】
図３は、プリインストールアプリケーションのスキャンを最適化するための、例示的なコンピュータ実装方法３００のフローチャートである。図３に示す工程は、任意の好適なコンピュータ実行可能コード及び／又はコンピューティングシステムによって実行され得る。いくつかの実施形態では、図３に示す工程は、図１のシステム１００、図２のシステム２００、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の部分の構成要素のうち１つ以上によって実行され得る。
【００２７】
図３に示すように、工程３０２では、本明細書に記載されるシステムのうち１つ以上は、クライアントデバイスで、スキャンベースの査定の対象となる複数のアプリケーションを識別することができる。例えば、識別モジュール１０４は、図２のコンピューティングデバイス２０２の一部として、コンピューティングデバイス２０２で、スキャンベースの査定の対象となるアプリケーション２１２を識別することができる。
【００２８】
クライアントデバイスは、プリインストールアプリケーションを含み得る任意のコンピューティングデバイスを含むことができる。例えば、クライアントデバイスはモバイルコンピューティングデバイスを含むことができる。モバイルコンピューティングデバイスの例としては、携帯電話、タブレットコンピュータ、電子ブックリーダー、携帯情報端末、ＧＰＳデバイス、メッセージングデバイス、スマートウォッチ、及びヘッドマウントコンピューティングデバイスが挙げられるが、これらに限定されない。
【００２９】
本明細書で使用するとき、用語「アプリケーション」は、コンピューティングデバイスにインストールされ得る、かつ／又はコンピューティングデバイス上で実行することができる任意のアプリケーション、プログラム、モジュール、及び／又はパッケージを指すことができる。本明細書で使用するとき、語句「スキャンベースの査定」は、アプリケーションについて情報の収集、及び／又はコンピューティングデバイス上のアプリケーションの処置（例えば、アプリケーションを削除するかどうか、コンピューティングデバイスへのアプリケーションのアクセスを修正するかどうか、アプリケーションを監視するかどうか、アプリケーションを信頼するかどうか、アプリケーションをそのままにしておくかどうか、ユーザにアプリケーションについて警告するかどうか、アプリケーションの設定を修正するかどうか、など）の決定を容易にすることができるアプリケーションの任意の査定を指すことができる。いくつかの実施例では、スキャンベースの査定はデバイス上にインストールされるアプリケーションを分析することができる。加えて又は代わりに、スキャンベースの査定は、アプリケーションのフィンガープリントを収集することと、査定サーバにフィンガープリントを照合し、それに応じてアプリケーションの査定を受信することと、を含むことができる。例えば、査定サーバは、前にスキャンされたアプリケーション及び／又は分析されたアプリケーションの査定を、このアプリケーションの対応するフィンガープリントと併せて記憶することができる。
【００３０】
いくつかの実施形態では、スキャンベースの査定は、複数のアプリケーションの内のアプリケーションがマルウェアを含むかどうかの査定を含むことができる。本明細書で使用するとき、用語「マルウェア」は、任意のウイルス、ワーム、トロイの木馬、スパイウェア、及び／又は任意の他の悪意ある、非合法の、かつ／若しくは権限がないソフトウェア、並びに／又はデータオブジェクトを指すことができる。いくつかの実施例では、スキャンベースの査定は、侵入防止分析などのセキュリティ査定（例えば、アプリケーションが悪用され得る脆弱性を含むかどうかを指摘する）を含むことができる。いくつかの実施例では、スキャンベースの査定は、複数のアプリケーションの内のアプリケーションのパフォーマンス査定を含むことができる。例えば、パフォーマンス査定は、アプリケーションがコンピューティングデバイスのパフォーマンスにどんな影響があるか（又はあると予想されるか）を指摘することができる（例えば、アプリケーションがパフォーマンスに悪影響があり、それによってコンピューティングデバイスのコンピューティング環境の速度を遅くし、エラー及び／又はクラッシュなどの要因になるかどうか、等）。いくつかの実施例では、スキャンベースの査定が、アプリケーションにクライアントデバイスの特徴までアクセスできるようにする、クライアントデバイスのアプリケーションに割り当てられた許可に基づく複数のアプリケーションの内のアプリケーションの査定を含むことができる。例えば、査定は、アプリケーションが要求するどの許可か、アプリケーションが要求する許可はそのアプリケーションにとって必要かつ／又は適切かどうか、アプリケーションは許可を用いて信頼されるかどうか、許可を有するアプリケーションが呈するリスクなどの判定を含むことができる。
【００３１】
本明細書で使用するとき、用語「許可」は、コンピューティングリソース及び／又はケイパビリティにアクセスする、それを使用する、それを操作する、かつ／又はそれを閲覧するための任意の許可、特権、指定されたアクセス権、及び／又は認証を指すことができる。いくつかの実施例では、許可が、アプリケーションのインストール時にユーザによって与えられ得る（又は、いくつかの実施例では、プリインストールアプリケーションの場合、デフォルトで与えられる）。例えば、コンピューティングデバイスのプラットフォームは、アプリケーションによって要求され、かつ／又は使用される１つ以上の許可を表示するとともに、ユーザがアプリケーションをインストール及び／又は実行する前にアプリケーションに許可を与えるであろうという確認を受信するように構成され得る。いくつかの実施例では、コンピューティングデバイスのプラットフォームは、モバイルコンピューティングシステムのケイパビリティのセットを、このケイパビリティにアクセスするための許可のセットに分割することができ、そしてインストールされたアプリケーションそれぞれに対して許可のサブセットを与えることができる。
【００３２】
識別モジュール１０４は、任意の好適な状況において複数のアプリケーションを識別することができる。例えば、識別モジュール１０４は、コンピューティングデバイスの包括的なスキャン中に複数のアプリケーションを識別することができる。いくつかの実施例では、識別モジュール１０４は、複数のアプリケーションを含むシステムイメージを識別することによって複数のアプリケーションを識別することができる。
【００３３】
一つの状況では動作する識別モジュール１０４の一例として、図４はプリインストールアプリケーションのスキャンを最適化するための例示的なシステム４００を示す。図４に示すように、例示的なシステム４００は、ネットワーク４０４を介して査定サーバ４０６と通信するコンピューティングデバイス４０２を含むことができる。一例として図４を用いると、工程３０２では、識別モジュール１０４は、セキュリティスキャンの対象となるアプリケーション４１２、４１４、及び４１６を（例えば、やはりセキュリティスキャンの対象となり得るアプリケーション４２２、４２４、４２６と一緒に）識別することができる。
【００３４】
図３に戻ると、工程３０４では、本明細書に記載されるシステムのうち１つ以上は、複数のアプリケーションがクライアントデバイスのシステムイメージを介してクライアントデバイスにプリインストールされたことを判定することができる。例えば、判定モジュール１０６は、図２のコンピューティングデバイス２０２の一部として、アプリケーション２１２がコンピューティングデバイス２０２のシステムイメージ２１０を介してコンピューティングデバイス２０２にプリインストールされたことを判定することができる。
【００３５】
本明細書で使用するとき、語句「システムイメージ」は、プリインストールアプリケーションに含み得る任意のイメージを指すことができる。例えば、システムイメージは、リードオンリメモリ（ＲＯＭ）イメージを含むことができる。本明細書で使用するとき、語句「リードオンリメモリ」は、頻繁に修正されない（又は全く修正されない）ように設計される任意のストレージ媒体を指すことができる。加えて又は代わりに、システムイメージは、ファームウェアを含むことができる。
【００３６】
本明細書で使用するとき、語句「プリインストールアプリケーション」は、（例えば、ユーザが個別にインストール用のアプリケーションを選択する代わりに）システムイメージを介してインストールされる任意のアプリケーションを指すことができる。いくつかの実施例では、語句「プリインストールアプリケーション」は、コンピューティングデバイスの第１のエンドユーザ操作からコンピューティングデバイスにインストールされるアプリケーションを指すことができる。加えて又は代わりに、語句「プリインストールアプリケーション」は、システムイメージの更新に含まれる任意のアプリケーションを指すことができる。いくつかの実施例では、システムイメージの発行元のみが、システムイメージ内の任意のアプリケーションを修正する（例えば、アプリケーションを削除、更新、及び／又は上書きする）のを許可され得る。いくつかの実施例では、システムイメージの発行元はコンピューティングデバイスの製造業者及び／又はコンピューティングデバイスの製造業者のパートナーを含むことができる。したがって、いくつかの実施例では、システムイメージ（及びシステムイメージに含まれるプリインストールアプリケーション）は、信頼できる傾向があり、またプリインストールアプリケーションは、個別的スキャン動作が必要となることがより少なくなる傾向がある。
【００３７】
判定モジュール１０６は、複数のアプリケーションが任意の好適な方法でシステムイメージを介してクライアントデバイスにプリインストールされたことを判定することができる。例えば、判定モジュール１０６は、アプリケーションがシステムイメージに対応することを指摘するアプリケーションそれぞれに関連するフラッグを識別することができる。加えて又は代わりに、判定モジュール１０６は、コンピューティングデバイスのプラットフォームを（例えば、アプリケーションプログラミングインタフェース（ＡＰＩ）を介して）照合して、システムイメージを介してプリインストールされたアプリケーションのリストを検索することができる。
【００３８】
一例として図４を用いると、判定モジュール１０６は、コンピューティングデバイス４０２の一部として、アプリケーション４１２、４１４、及び４１６がシステムイメージ４１０を介してコンピューティングデバイス４０２にプリインストールされたことを判定することができる。
【００３９】
図３に戻ると、ステップ３０６では、本明細書で記載されるシステムのうちの１つ以上は、システムイメージを表すフィンガープリントを生成することができる。例えば、識別モジュール１０８は、図２のコンピューティングデバイス２０２の一部として、システムイメージ２１０を表すフィンガープリント２１４を生成することができる。
【００４０】
本明細書で使用するとき、用語「フィンガープリント」は、（例えば、アプリケーションの現在のバージョンにおける）アプリケーションの任意の短縮表現を指すことができる。例えば、用語「フィンガープリント」は、アプリケーションの様々な部分、アプリケーションから抽出される値、アプリケーションの名称、アプリケーションのバージョン名、アプリケーションの発行元、アプリケーションに含まれるファイル、チェックサム、アプリケーションのメタデータ、及び／又はアプリケーションを識別する任意の他のタイプのアプリケーション識別子に適用される１つ以上のハッシュ機能の出力を指すことができる。一般的に、フィンガープリントは、前述の例のいずれかを単独又は組み合わせて含む、アプリケーションを識別する傾向がある任意の情報を含むことができる。ハッシュ値は、様々な暗号化ハッシュ関数（例えば、ＭＤ５及び／又はＳＨＡ２５６を含む）のいずれかにより生成され得る。いくつかの実施例では、用語「フィンガープリント」は、それが所与のファイルに関連するとき、経年一貫してそのアプリケーションを表し、フィンガープリントされているアプリケーションの内容が（例えば、更新により）変化しない限り変化しない単一の値を指すことができる。いくつかの実施例では、用語「フィンガープリント」は、アプリケーションのシグネチャを指すことができる。
【００４１】
生成モジュール１０８は、システムイメージのフィンガープリントを、任意の好適な方法で生成することができる。例えば、生成モジュール１０８は、複数のアプリケーションの内のアプリケーションそれぞれに対する個別フィンガープリントを結合することによって、システムイメージのフィンガープリントを生成することができる。例えば、生成モジュール１０８は、コンピューティングデバイス上のアプリケーションそれぞれに対してフィンガープリントを生成することができ、またシステムイメージを介してプリインストールされたアプリケーションに対応するこれらのフィンガープリントを結合して、システムイメージのフィンガープリントを作成することができる。加えて又は代わりに、生成モジュール１０８は、システムイメージの公開鍵を入力として使用することによって、システムイメージを表すフィンガープリントを生成することができる。例えば、システムイメージは、システムイメージを検証するための公開鍵を含むことができる。したがって、公開鍵はまた、システムイメージが検証及び／又は認証された状況においてシステムイメージを明確に識別するのに有用である。いくつかの実施例では、前述の可能性に加えてかつ／又はそれに代えて、生成モジュール１０８は、少なくとも一部はシステムイメージのバージョン及びシステムイメージのビルド番号に基づいてシステムイメージのフィンガープリントを生成することができる。このように、システムイメージのフィンガープリントは、システムイメージが更新されても、システムイメージの特定のバージョンに対応することができる。
【００４２】
図４を一例として使用すると、工程３０６では、生成モジュール１０８は、システムイメージ４１０のフィンガープリントを生成してもよい。例えば、生成モジュール１０８は、システムイメージ４１０に属するメタデータを使用して、フィンガープリントを生成することができる。加えて又は代わりに、生成モジュール１０８は、アプリケーション４１２、４１４、及び４１６のフィンガープリントに基づいてシステム４１０のフィンガープリントを生成することができる。
【００４３】
図３に戻ると、工程３０８では、本明細書に記載されるシステムのうち１つ以上は、システムイメージを表すフィンガープリントを査定サーバに送信するとともにそれに応じてシステムイメージの査定を受信することによって、複数のアプリケーションに対してスキャンベースの査定を遂行することができる。例えば、遂行モジュール１１０は、図２のコンピューティングデバイス２０２の一部として、システムイメージ２１０を表すフィンガープリント２１４を査定サーバ２０６に送信するとともにそれに応じてシステムイメージ２１０の査定２１６を受信することによって、アプリケーション２１２に対してスキャンベースの査定を遂行することができる。
【００４４】
査定サーバは、アプリケーション及び／又はシステムイメージのフィンガープリントを受信することに応じてアプリケーション及び／又はシステムイメージの査定を提供することができる任意のタイプのフィンガープリントルックアップシステムを備えることができる。例えば、査定サーバは、アプリケーション及び／又はシステムイメージの現在の査定をアプリケーション及び／又はシステムイメージのフィンガープリントと関係づけるデータベースを備える、かつ／又はそれにアクセスすることができる。いくつかの実施例では、査定サーバは、アプリケーション及び／又はシステムイメージのアプリケーション査定をクライアントデバイスの多く（例えば、数千及び／又は数百万）に提供することができる。このように、査定サーバに対して必要とされるルックアップ数を低減することによって、本明細書に記載されるシステム及び方法は、査定サーバが消費する計算リソースを大幅に低減することができる。
【００４５】
システムイメージの査定は、様々な情報のうちのいずれを含むことができる。例えば、システムイメージの査定が、複数のアプリケーションの内の個別アプリケーションの査定を含むことができる。いくつかの実施例では、個別アプリケーションの査定が、個別アプリケーションが改善措置の対象となることを指摘することができる。例えば、個別アプリケーションの査定は、個別アプリケーションがマルウェアを含む、セキュリティ上の脆弱性を含む、システムパフォーマンスに悪影響を及ぼし得る、かつ／又は不適切な許可を有することを指摘することができる。本実施例では、遂行モジュール１１０は、個別アプリケーションに改善を実行することができる。例えば、遂行モジュール１１０は、個別アプリケーションを削除する、個別アプリケーションの実行を停止する、個別アプリケーションを隔離する、ユーザに個別アプリケーションについて警告する、コンピューティングデバイス上の個別アプリケーションが講じた措置を分析する、かつ／又は個別アプリケーションから許可を削除することができる。
【００４６】
いくつかの実施例では、（例えば、システムイメージ内の個別アプリケーションに対して有害な査定を受信することによって）システムイメージに対して有害な査定を受信すると、遂行モジュール１１０は、スキャンするため単一のエンティティとしてシステムイメージを扱うのを中止し、個別的にプリインストールアプリケーションを扱うように戻すことができる。例えば、遂行モジュール１１０は、システムイメージを表すフィンガープリントを査定サーバに送信することが、複数のアプリケーションに対する後続のスキャンベースの査定を遂行するのに十分ではないと、個別アプリケーションの査定に基づいて判定することができる。その後、遂行モジュール１１０は、システムイメージを表すフィンガープリントを査定サーバに送信することが後続のスキャンベースの査定を遂行するのに十分ではないとの判定に応じて、複数のアプリケーションの内のアプリケーションそれぞれに対する個別フィンガープリントを査定サーバに送信することによって、複数のアプリケーションに対して後続のスキャンベースの査定を遂行することができる。いくつかの実施例では、他のイベントにより、遂行モジュール１１０がスキャンするため単一のエンティティとしてシステムイメージを扱うのを中止し、個別的にプリインストールアプリケーションを扱うように戻すことができる。例えば、遂行モジュール１１０は、システムイメージが（例えば、発見できないかつ／又は観察し難いマルウェアの変種を介して）危殆化されている危険にあることを指摘するメッセージを受信することができる。
【００４７】
いくつかの実施例では、スキャンする目的で単一のエンティティとしてシステムイメージを扱うが、本明細書に記載されるシステムは、スキャンする目的で個別的にシステムイメージ外の（例えば、システムイメージによってプリインストールされなかった）アプリケーションを扱うことができる。例えば、識別モジュール１０４は、クライアントデバイスで、少なくとも１つのスキャンベースの査定の対象となる個別アプリケーションを識別することができる。判定モジュール１０６が、個別アプリケーションがクライアントデバイスのシステムイメージを介してクライアントデバイスにプリインストールされなかったことを判定することができる。生成モジュール１０８が、個別アプリケーションがクライアントデバイスのシステムイメージを介してクライアントデバイスにプリインストールされなかったことを判定したことに基づいて、個別アプリケーションを表し、他のいかなるアプリケーションも表さない個別フィンガープリントを生成することができる。その後、遂行モジュールは、個別アプリケーションを表すフィンガープリントを査定サーバに送信するとともにそれに応じて個別アプリケーションの査定を受信することによって、個別アプリケーションに対してスキャンベースの査定を遂行することができる。
【００４８】
図３の工程３０８の一例として図４を使用すると、遂行モジュール１１０は、コンピューティングデバイス４０２の一部として、システムイメージ４１０のフィンガープリントを査定サーバ４０６に送信することによって、アプリケーション４１２、４１４、４１６に対してスキャンベースの査定を遂行することができる。査定サーバ４０６は、フィンガープリント４３０内のシステムイメージ４１０のフィンガープリントをルックアップすることができ、査定４５０において対応する査定を見つけることができる。その後、査定サーバ４０６は、システムイメージ４１０の査定に復帰することができる。一実施例では、この査定は、アプリケーション４１４がマルウェアを含むことを指摘することができる。その後、遂行モジュール１１０は、（例えば、アプリケーション４１２、４１４、及び４１６に対する個別フィンガープリントを査定サーバ４０６に送信することによって）個別にアプリケーション４１２、４１４、及び４１６における後続のスキャンベースの査定を遂行することができる。いくつかの実施例では、遂行モジュール１１０はまた、個別的に（例えば、システムイメージ４１０の一部ではない）アプリケーション４２２、４２４、及び４２６に対してスキャンベースの査定を遂行することができる。
【００４９】
一実施例では、本明細書に記載されるシステムは、既知のＲＯＭイメージ（例えば、システムイメージ）それぞれに対して一意識別子（例えば、フィンガープリント）を作ることができる。一意識別子を用いて、システムイメージに付属する全てのアプリケーションに対して、本明細書に記載されるシステムは１回のスキャンを実行するだけでよい。クラウドルックアップをスキャンの一部として実行する場合、このクラウドルックアップを１回だけ実行してもよい。本明細書に記載されるシステムは、ＲＯＭ分布を監視することができ、そして問題が検出された場合、問題を有するＲＯＭイメージ及び特別のアプリケーションを標的とするシグネチャをロールアウトすることができる。加えて又は代わりに、これらのシステムは、ＲＯＭを無効にし、個別的にアプリケーションをスキャンするように切り替えるようにクライアントデバイスそれぞれに命じることができる。ＲＯＭの大半はクリーンであると期待されるかもしれず、しかもプリインストールアプリケーションは全てのアプリケーションのうちの大部分を占めるかもしれないので、これらのシステム及び方法は、コンピューティングリソースのかなりの量を節約することができる。
【００５０】
ＲＯＭイメージの一意識別子を作るため、本明細書に記載されるシステムは、どのプリインストールアプリケーションのハッシュも識別でき、これらの識別されたハッシュに基づいてハッシュを生成することができる。更に、これらのシステムは、ハッシュを計算する際の、１つ以上のコアシステムファイル及び／又はＲＯＭイメージのバージョンについての情報を含むことができる。加えて又は代わりに、本明細書に記載されるシステムは、ＲＯＭに付属する公開鍵を読み取るとともに公開鍵、ＲＯＭのバージョン及びＲＯＭのビルド番号から一意識別子を生成することによって、ＲＯＭイメージの一意識別子を作ることができる。公開鍵はまた、ＲＯＭ更新パッケージを有効化するのに用いられる。いくつかの実施例では、本明細書に記載されるシステムは、デバイスがカスタマイズされたＲＯＭで危殆化されなかった（かつ／又は、例えば、危殆化されないように信頼されている）ことを検出することによって、ＲＯＭイメージの一意識別子を作ることができる。本実施例では、これらのシステムは、ＲＯＭのバージョン及びＲＯＭのビルド番号と組み合わせてデバイスのハードウェアモデルを使用して、ＲＯＭイメージの一意識別子を生成することができる。
【００５１】
いくつかの実施例では、本明細書に記載されるシステムは、選択的に、システムイメージによってスキャンするためコンピューティングデバイスモデルの特別なセットを標的とすることができる。一実施例では、これらのシステムは、コンピューティングデバイスの基礎システムを変えるためにエクスプロイトを使用し得るアプリケーションが発見された場合、ＲＯＭイメージの一意識別子によってスキャンするのを中止することができる。本実施例では、これらのシステムは、個別的にアプリケーションをスキャンするように戻すことができる。
【００５２】
図５は、本明細書に記載及び／又は図示される実施形態のうち１つ以上を実装することができる例示的なコンピューティングシステム５１０のブロック図である。例えば、コンピューティングシステム５１０の全て又は一部分は、単独で又は他の要素と組み合わせて、（図３に図示される工程のうち１つ以上などの）本明細書に記載される工程のうち１つ以上を実行してもよく、かつ／又はそれを実行するための手段であってもよい。コンピューティングシステム５１０の全て又は一部分はまた、本明細書に記載及び／若しくは図示される他の任意の工程、方法、若しくは処理を実行してもよく、かつ／又はそれを実行するための手段であってもよい。
【００５３】
コンピューティングシステム５１０は、コンピュータ可読命令を実行することが可能な任意の単一若しくはマルチプロセッサのコンピューティングデバイス又はシステムを幅広く表す。コンピューティングシステム５１０の例として、ワークステーション、ラップトップ、クライアント側端末、サーバ、配信型コンピューティングシステム、ハンドヘルドデバイス、又は他の任意のコンピューティングシステム若しくはデバイスが挙げられるが、これらに限定されない。その最も基本的な構成において、コンピューティングシステム５１０は、少なくとも１つのプロセッサ５１４及びシステムメモリ５１６を含んでもよい。
【００５４】
プロセッサ５１４は一般に、データの処理又は命令の解釈及び実行が可能な任意のタイプ又は形態の物理的処理ユニット（例えば、ハードウェア実装型中央処理ユニット）を表す。特定の実施形態では、プロセッサ５１４は、ソフトウェアアプリケーション又はモジュールから命令を受信することができる。これらの命令は、プロセッサ５１４に、本明細書で説明及び／又は示される例示的な実施形態のうちの１つ以上の機能を実行させることができる。
【００５５】
システムメモリ５１６は一般に、データ及び／又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形態の揮発性又は不揮発性記憶デバイス若しくは媒体を表す。システムメモリ５１６の例としては、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられるが、これらに限定されない。必須ではないが、特定の実施形態において、コンピューティングシステム５１０は、（例えば、システムメモリ５１６などの）揮発性メモリユニット及び（例えば、以下で詳細に記載されるような一次ストレージデバイス５３２などの）不揮発性ストレージデバイスの両方を含んでもよい。一実施例では、図１のモジュール１０２のうちの１つ以上が、システムメモリ５１６にロードされてもよい。
【００５６】
ある実施形態では、例示的なコンピューティングシステム５１０はまた、プロセッサ５１４及びシステムメモリ５１６に加えて、１つ以上の構成要素又は要素を含んでもよい。例えば、図５に示すように、コンピューティングシステム５１０は、メモリコントローラ５１８、入力／出力（Ｉ／Ｏ）コントローラ５２０、及び通信インタフェース５２２を含んでもよく、それらはそれぞれ通信インフラストラクチャ５１２を介して相互接続されてもよい。通信インフラストラクチャ５１２は、一般に、コンピューティングデバイスの１つ以上の構成要素間の通信を容易にすることが可能な、任意のタイプ又は形態のインフラストラクチャを表す。通信インフラストラクチャ５１２の例としては、限定するものではないが、通信バス（業界標準アーキテクチャ（ＩＳＡ）、周辺装置相互接続（ＰＣＩ）、ＰＣＩエクスプレス（ＰＣＩｅ）、又は類似のバスなど）及びネットワークが挙げられる。
【００５７】
メモリコントローラ５１８は一般に、メモリ若しくはデータを取り扱うか又はコンピューティングシステム５１０の１つ以上の構成要素間の通信を制御することができる任意のタイプ又は形態のデバイスを表す。例えば、特定の実施形態では、メモリコントローラ５１８は、通信インフラストラクチャ５１２を介して、プロセッサ５１４、システムメモリ５１６、及びＩ／Ｏコントローラ５２０間の通信を制御することができる。
【００５８】
Ｉ／Ｏコントローラ５２０は、一般に、コンピューティングデバイスの入出力機能を調整及び／又は制御することができる任意のタイプ又は形態のモジュールを表す。例えば、特定の実施形態では、Ｉ／Ｏコントローラ５２０は、プロセッサ５１４、システムメモリ５１６、通信インタフェース５２２、ディスプレイアダプタ５２６、入力インタフェース５３０、及び記憶インタフェース５３４など、コンピューティングシステム５１０の１つ以上の要素間におけるデータの転送を制御するか又は容易にし得る。
【００５９】
通信インタフェース５２２は、例示的なコンピューティングシステム５１０と１つ以上の追加のデバイスとの間の通信を容易にすることができる、任意のタイプ若しくは形態の通信デバイス又はアダプタを広く表す。例えば、特定の実施形態において、通信インタフェース５２２は、コンピューティングシステム５１０と、追加のコンピューティングシステムを含むプライベート又はパブリックネットワークとの間の通信を容易にすることができる。通信インタフェース５２２の例としては、有線ネットワークインタフェース（ネットワークインタフェースカードなど）、無線ネットワークインタフェース（無線ネットワークインタフェースカードなど）、モデム、及び他の任意の好適なインタフェースが挙げられるが、これらに限定されない。少なくとも１つの実施形態では、通信インタフェース５２２は、インターネットなどのネットワークへの直接リンクを介して、リモートサーバへの直接接続を提供してもよい。通信インタフェース５２２はまた、例えば、ローカルエリアネットワーク（イーサネット（登録商標）ネットワークなど）、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラー電話接続、衛星データ接続、又は他の任意の好適な接続を通した、かかる接続を間接的に提供してもよい。
【００６０】
特定の実施形態では、通信インタフェース５２２はまた、外部バス又は通信チャネルを介して、コンピューティングシステム５１０と１つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成される、ホストアダプタを表してもよい。ホストアダプタの例としては、小型コンピュータシステムインタフェース（ＳＣＳＩ）ホストアダプタ、ユニバーサルシリアルバス（ＵＳＢ）ホストアダプタ、米国電気電子学会（ＩＥＥＥ）１３９４ホストアダプタ、アドバンストテクノロジーアタッチメント（ＡＴＡ）、パラレルＡＴＡ（ＰＡＴＡ）、シリアルＡＴＡ（ＳＡＴＡ）、及び外部ＳＡＴＡ（ｅＳＡＴＡ）ホストアダプタ、ファイバーチャネルインタフェースアダプタ、イーサネット（登録商標）アダプタなどが挙げられるが、これらに限定されない。通信インタフェース５２２はまた、コンピューティングシステム５１０が分散型又はリモートコンピューティングに関与するのを可能にすることができる。例えば、通信インタフェース５２２は、実行のためにリモートデバイスから命令を受信するか又はリモートデバイスに命令を送信してもよい。
【００６１】
図５に示すように、コンピューティングシステム５１０はまた、ディスプレイアダプタ５２６を介して通信インフラストラクチャ５１２に連結される少なくとも１つのディスプレイデバイス５２４を含んでもよい。ディスプレイデバイス５２４は一般に、ディスプレイアダプタ５２６によって転送される情報を視覚的に表示することができる、任意のタイプ若しくは形態のデバイスを表す。同様に、ディスプレイアダプタ５２６は、一般に、ディスプレイデバイス５２４に表示するために、通信インフラストラクチャ５１２から（又は当該技術分野において既知であるようにフレームバッファから）グラフィックス、テキスト、及び他のデータを転送するように構成される、任意のタイプ又は形態のデバイスを表す。
【００６２】
図５に示すように、例示的なコンピューティングシステム５１０はまた、入力インタフェース５３０を介して通信インフラストラクチャ５１２に連結される少なくとも１つの入力デバイス５２８を含んでもよい。入力デバイス５２８は、一般に、コンピュータ又は人間のいずれかが生成した入力を、例示的なコンピューティングシステム５１０に提供することができる、任意のタイプ若しくは形態の入力デバイスを表す。入力デバイス５２８の例としては、キーボード、ポインティングデバイス、音声認識デバイス、又は他の任意の入力デバイスが挙げられるが、これらに限定されない。
【００６３】
図５に示すように、例示的なコンピューティングシステム５１０はまた、記憶インタフェース５３４を介して通信インフラストラクチャ５１２に連結される、主要記憶デバイス５３２及びバックアップ記憶デバイス５３３を含んでもよい。ストレージデバイス５３２及び５３３は、一般に、データ及び／又は他のコンピュータ可読命令を記憶することができる、任意のタイプ若しくは形態の記憶デバイス又は媒体を表す。例えば、ストレージデバイス５３２及び５３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、ソリッドステートドライブ、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどであってもよい。ストレージインタフェース５３４は一般に、ストレージデバイス５３２及び５３３とコンピューティングシステム５１０の他の構成要素との間のデータを転送するためのあらゆるタイプ又は形態のインタフェース又はデバイスを表す。一実施例では、図１のデータベース１２０は、一次ストレージデバイス５３２内に記憶され得る。
【００６４】
特定の実施形態において、ストレージデバイス５３２及び５３３は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を記憶するように構成された取り外し可能なストレージユニットから読み取り、かつ／又はこれに書き込むように構成されてもよい。好適な取り外し可能なストレージユニットの例として、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられるが、これらに限定されない。ストレージデバイス５３２及び５３３はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令が、コンピューティングシステム５１０内にロードされることを可能にするための他の同様の構造体又はデバイスを含んでもよい。例えば、ストレージデバイス５３２及び５３３は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み取り、かつこれを書き込むように構成されてもよい。ストレージデバイス５３２及び５３３はまた、コンピューティングシステム５１０の一部であってもよく、又は他のインタフェースシステムを介してアクセスされる別々のデバイスであってもよい。
【００６５】
多くの他のデバイス又はサブシステムをコンピューティングシステム５１０に接続することができる。反対に、図５に示す構成要素及びデバイスの全てが、本明細書に記載及び／又は図示される実施形態を実践するために存在する必要があるわけではない。上で言及されるデバイス及びサブシステムはまた、図５に示すものと異なる方法で相互接続されてもよい。コンピューティングシステム５１０はまた、任意の数のソフトウェア、ファームウェア、及び／又はハードウェアの構成を採用してもよい。例えば、本明細書で開示される例示的な実施形態のうち１つ以上は、コンピュータ可読媒体上に、コンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される）として符号化されてもよい。本明細書で使用するとき、語句「コンピュータ可読媒体」は一般に、コンピュータ可読命令を記憶又は保有することができる、任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、限定されないが、搬送波などの伝送型媒体、並びに磁気記憶媒体（例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク）、光学記憶媒体（例えば、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、及びブルーレイ（ＢＬＵ−ＲＡＹ）ディスク）、電子記憶媒体（例えば、ソリッドステートドライブ及びフラッシュメディア）、並びに他の分散システムなどの非一時的媒体が挙げられる。
【００６６】
コンピュータプログラムを含むコンピュータ可読媒体は、コンピューティングシステム５１０にロードされてもよい。次に、コンピュータ可読媒体に記憶されたコンピュータプログラムの全て又は一部分は、システムメモリ５１６に、並びに／又はストレージデバイス５３２及び５３３の種々の部分に記憶されてもよい。プロセッサ５１４によって実行されるとき、コンピューティングシステム５１０にロードされたコンピュータプログラムは、プロセッサ５１４に、本明細書に記載及び／又は図示される例示的な実施形態の１つ以上の機能を実行させてもよく、かつ／又は実行させるための手段であってもよい。加えて、又は代わりに、本明細書に記載及び／又は図示される例示的な実施形態の１つ以上は、ファームウェア及び／又はハードウェアに実装されてもよい。例えば、コンピューティングシステム５１０は、本明細書に開示される例示的な実施形態の１つ以上を実装するように適合された、特定用途向け集積回路（ＡＳＩＣ）として構成されてもよい。
【００６７】
図６は、クライアントシステム６１０、６２０、及び６３０、並びにサーバ６４０及び６４５がネットワーク６５０に連結されていてもよい、例示的なネットワークアーキテクチャ６００のブロック図である。上で詳述されるように、ネットワークアーキテクチャ６００の全て又は一部は、単独で又は他の要素と組み合わせて、（図３に示す工程のうち１つ以上などの）本明細書で開示される工程のうち１つ以上を実行してもよく、かつ／又はそれらを実行するための手段であってもよい。ネットワークアーキテクチャ６００の全て又は一部分はまた、本開示に記載される他の工程及び特性を実行するために使用されてもよく、かつ／又はそれを実行するための手段であってもよい。
【００６８】
クライアントシステム６１０、６２０、及び６３０は一般に、図５の例示的なコンピューティングシステム５１０などの、任意のタイプ若しくは形態のコンピューティングデバイス又はシステムを表す。同様に、サーバ６４０及び６４５は一般に、種々のデータベースサービスを提供し、及び／又は特定のソフトウェアアプリケーションを実行するように構成されるアプリケーションサーバ又はデータベースサーバなどの、コンピューティングデバイス又はシステムを表す。ネットワーク６５０は一般に、例えばイントラネット、ＷＡＮ、ＬＡＮ、ＰＡＮ、又はインターネットを含む、任意の電気通信又はコンピュータネットワークを表す。一実施例では、クライアントシステム６１０、６２０、及び／若しくは６３０、並びに／又はサーバ６４０及び／若しくは６４５は、図１からのシステム１００の全て又は一部を含むことができる。
【００６９】
図６に示すように、１つ以上のストレージデバイス６６０（１）〜（Ｎ）は、サーバ６４０に直接取り付けられてもよい。同様に、１つ以上のストレージデバイス６７０（１）〜（Ｎ）は、サーバ６４５に直接取り付けられてもよい。ストレージデバイス６６０（１）〜（Ｎ）及びストレージデバイス６７０（１）〜（Ｎ）は、一般に、データ及び／又は他のコンピュータ可読命令を記憶することができる任意のタイプ又は形態のストレージデバイス又は媒体を表す。特定の実施形態では、ストレージデバイス６６０（１）〜（Ｎ）及びストレージデバイス６７０（１）〜（Ｎ）は、ネットワークファイルシステム（ＮＦＳ）、サーバメッセージブロック（ＳＭＢ）、又は共通インターネットファイルシステム（ＣＩＦＳ）などの種々のプロトコルを使用して、サーバ６４０及び６４５と通信するように構成される、ネットワーク接続ストレージ（ＮＡＳ）デバイスを表すことができる。
【００７０】
サーバ６４０及びサーバ６４５はまた、ストレージエリアネットワーク（ＳＡＮ）ファブリック６８０にも接続することができる。ＳＡＮファブリック６８０は、一般に、複数のストレージデバイス間の通信を容易にすることができる任意のタイプ又は形態のコンピュータネットワーク又はアーキテクチャを表す。ＳＡＮファブリック６８０は、サーバ６４０及び６４５と、複数のストレージデバイス６９０（１）〜（Ｎ）及び／又はインテリジェントなストレージアレイ６９５との間の通信を容易にすることができる。ＳＡＮファブリック６８０はまた、ストレージデバイス６９０（１）〜（Ｎ）及びストレージアレイ６９５が、クライアントシステム６１０、６２０、及び６３０にローカルで取り付けられたデバイスかのように、ネットワーク６５０並びにサーバ６４０及び６４５を介して、クライアントシステム６１０、６２０、及び６３０と、デバイス６９０（１）〜（Ｎ）及び／又はインテリジェントなアレイ６９５との間の通信を容易にすることができる。ストレージデバイス６６０（１）〜（Ｎ）及びストレージデバイス６７０（１）〜（Ｎ）と同様に、ストレージデバイス６９０（１）〜（Ｎ）及びインテリジェントなストレージアレイ６９５は、データ及び／又は他のコンピュータ可読命令を記憶することができる任意のタイプ又は形態のストレージデバイス又は媒体を概ね表す。
【００７１】
特定の実施形態において、図５の例示的なコンピューティングシステム５１０を参照して、図５の通信インタフェース５２２などの通信インタフェースは、それぞれのクライアントシステム６１０、６２０、及び６３０とネットワーク６５０との間を接続するように使用されてもよい。クライアントシステム６１０、６２０、及び６３０は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ６４０又は６４５上の情報にアクセスすることが可能であり得る。かかるソフトウェアにより、クライアントシステム６１０、６２０、及び６３０が、サーバ６４０、サーバ６４５、ストレージデバイス６６０（１）〜（Ｎ）、ストレージデバイス６７０（１）〜（Ｎ）、ストレージデバイス６９０（１）〜（Ｎ）、又はインテリジェントなストレージアレイ６９５によってホスティングされたデータにアクセスできるようになる。図６は、データを送受信するための（インターネットなどの）ネットワークの使用を示しているが、本明細書に記載及び／又は図示される実施形態は、インターネット、又は任意の特定のネットワークベースの環境に限定されない。
【００７２】
少なくとも１つの実施形態において、本明細書に開示される例示的な実施形態のうち１つ以上の全て又は一部は、コンピュータプログラムとしてコード化され、サーバ６４０、サーバ６４５、ストレージデバイス６６０（１）〜（Ｎ）、ストレージデバイス６７０（１）〜（Ｎ）、ストレージデバイス６９０（１）〜（Ｎ）、インテリジェントなストレージアレイ６９５、又はこれらの任意の組み合わせ上にロードされ、これらによって実行されてもよい。本明細書に開示される例示的な実施形態のうち１つ以上の全て又は一部はまた、コンピュータプログラムとしてコード化され、サーバ６４０に記憶され、サーバ６４５によって作動し、ネットワーク６５０上でクライアントシステム６１０、６２０、及び６３０に配信されてもよい。
【００７３】
上で詳述されたように、コンピューティングシステム５１０及び／又はネットワークアーキテクチャ６００の１つ以上の構成要素は、それぞれ単独で、又は他の要素と組み合わせて、のスキャンを最適化するための例示的な方法の１つ以上のステップを実行し得る、及び／又は実行するための手段であり得る。
【００７４】
前述の開示は、特定のブロック図、流れ図、及び実施例を使用して様々な実施形態を記載するが、本明細書に記載及び／又は図示される各ブロック図の構成要素、流れ図の工程、操作、及び／又は構成要素は、個別にかつ／又は集合的に、広範なハードウェア、ソフトウェア、又はファームウェア（又はこれらの任意の組み合わせの）構成を使用して実装されてもよい。それに加えて、他の多くのアーキテクチャが同じ機能性を達成するように実装可能であるので、他の構成要素内に含有される構成要素のあらゆる開示は、本質的に例示と見なされるべきである。
【００７５】
いくつかの実施例では、図１の例示的なシステム１００の全て又は一部分は、クラウドコンピューティング環境又はネットワークベースの環境の部分を表してもよい。クラウドコンピューティング環境は、インターネットを介して、様々なサービス及びアプリケーションを提供することができる。これらのクラウドベースのサービス（例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしてのインフラストラクチャなど）は、ウェブブラウザ又は他のリモートインタフェースを介してアクセス可能であってもよい。本明細書に記載される様々な機能は、リモートデスクトップの環境又は任意の他のクラウドベースのコンピューティング環境を介して提供されてもよい。
【００７６】
様々な実施形態において、図１の例示的なシステム１００の全て又は一部分により、クラウドベースのコンピューティング環境内でのマルチテナンシーを容易にすることができる。換言すれば、本明細書に記載されるソフトウェアモジュールは、本明細書に記載される機能の１つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム（例えば、サーバ）を構成してもよい。例えば、本明細書に記載されるソフトウェアモジュールのうち１つ以上は、２つ以上のクライアント（例えば、顧客）がサーバ上で作動しているアプリケーションを共有することができるようにサーバをプログラムすることができる。このようにプログラムされたサーバは、複数の顧客（すなわち、テナント）の間で、アプリケーション、オペレーティングシステム、処理システム、及び／又はストレージシステムを共有することができる。本明細書に記載されるモジュールのうち１つ以上はまた、ある顧客が別の顧客のデータ及び／又は設定情報にアクセスすることができないように顧客ごとに、マルチテナントアプリケーションのデータ及び／又は設定情報を分割してもよい。
【００７７】
様々な実施形態によると、図１の例示的なシステム１００の全て又は一部分は、仮想環境内で実装されてもよい。例えば、本明細書に記載されるモジュール及び／又はデータは、仮想機械内に常駐及び／又はそこで実行してもよい。本明細書で使用するとき、語句「仮想機械」は一般に、仮想機械マネージャ（例えば、ハイパーバイザ）によってコンピューティングハードウェアから抽出される、任意のオペレーティングシステム環境を指す。加えて、又は代わりに、本明細書に記載されるモジュール及び／又はデータは、仮想化層内で常駐及び／又は実行してもよい。本明細書で使用するとき、語句「仮想化層」は一般に、オペレーティングシステム環境にオーバーレイする、かつ／又はそこから抽出される、任意のデータ層及び／又はアプリケーション層を指す。仮想化層は、基礎となる基本オペレーティングシステムの一部であるかのように仮想化層を提示する、ソフトウェア仮想化ソリューション（例えば、ファイルシステムフィルタ）によって管理されてもよい。例えば、ソフトウェア仮想化ソリューションは、最初に基本ファイルシステム及び／又はレジストリ内の場所に方向付けられる呼出しを、仮想化層内の場所にリダイレクトしてもよい。
【００７８】
いくつかの実施例では、図１の例示的なシステム１００の全て又は一部分は、モバイルコンピューティング環境の部分を表してもよい。モバイルコンピューティング環境は、携帯電話、タブレットコンピュータ、電子ブックリーダー、携帯情報端末、ウェアラブルコンピューティングデバイス（例えば、ヘッドマウントディスプレイを備えたコンピューティングデバイス、スマートウォッチなど）などを含む、広範なモバイルコンピューティングデバイスによって実装されてもよい。いくつかの実施例において、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間での１つのみのフォアグラウンドアプリケーションの提示、リモート管理特性、タッチスクリーン特性、位置及び移動データ（例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される）、システムレベルの構成への修正を制限する、及び／又は第３者のソフトウェアが他のアプリケーションの挙動を検査する能力を限定する、アプリケーションのインストールを制限するように（例えば、認可されたアプリケーションストアからのみ生じるように）制御するなど、制限されたプラットフォームを含む、１つ以上の個別の特性を有することができる。本明細書に説明される種々の機能は、モバイルコンピューティング環境に対して提供され得る、及び／又はモバイルコンピューティング環境と相互作用し得る。
【００７９】
加えて、図１の例示的なシステム１００の全て又は一部分は、情報管理のための１つ以上のシステムの部分を表してもよく、それと相互作用してもよく、それによって生成されるデータを消費してもよく、かつ／又はそれによって消費されるデータを生成してもよい。本明細書で使用するとき、語句「情報管理」は、データの保護、組織化、及び／又は記憶を指し得る。情報管理のためのシステムの例として、ストレージシステム、バックアップシステム、アーカイブシステム、複製システム、高可用性システム、データサーチシステム、仮想化システムなどが挙げられるが、これらに限定されない。
【００８０】
いくつかの実施形態では、図１の例示的なシステム１００の全て又は一部分は、情報セキュリティのための１つ以上のシステムの部分を表してもよく、それによって保護されるデータを生成してもよく、かつ／又はそれと通信してもよい。本明細書で使用するとき、語句「情報セキュリティ」は、保護されたデータへのアクセスの制御を指し得る。情報セキュリティのためのシステムの例として、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、本人認証システム、アクセス制御システム、暗号化システム、ポリシー遵守システム、侵入検出及び防止システム、電子発見システムなどが挙げられるが、これらに限定されない。
【００８１】
いくつかの実施例によると、図１の例示的なシステム１００の全て又は一部分は、エンドポイントセキュリティのための１つ以上のシステムの部分を表してもよく、それと通信してもよく、かつ／又はそれから保護を受信してもよい。本明細書で使用するとき、語句「エンドポイントセキュリティ」は、権限がない及び／又は違法な使用、アクセス、並びに／あるいは制御からの、エンドポイントシステムの保護を指し得る。エンドポイントの保護のためのシステムの例として、マルウェア対策システム、ユーザ認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどが挙げられるが、これらに限定されない。
【００８２】
本明細書に記載及び／又は図示されるプロセスパラメータ及び工程の順序は、単なる例として与えられるものであり、所望に応じて変更することができる。例えば、本明細書に図示及び／又は記載される工程は特定の順序で示され又は考察され得るが、これらの工程は、必ずしも図示又は考察される順序で実行される必要はない。本明細書に記載及び／又は図示される種々の例示的な方法はまた、本明細書に記載若しくは図示される工程の１つ以上を省略するか、又は開示されるものに加えて追加の工程を含んでもよい。
【００８３】
種々の実施形態を、完全に機能的なコンピューティングシステムの文脈において、本明細書に記載及び／又は図示してきたが、これらの例示的な実施形態の１つ以上は、実際に配布を実行するために使用されるコンピュータ可読媒体の特定のタイプにかかわらず、様々な形態のプログラム製品として配布されてもよい。本明細書で開示される実施形態はまた、あるタスクを実行するソフトウェアモジュールを使用して実装されてもよい。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体上に、又はコンピューティングシステム内に記憶され得る、スクリプト、バッチ、又は他の実行可能なファイルを含むことができる。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書で開示される例示的な実施形態の１つ以上を実行するようにコンピューティングシステムを構成してもよい。
【００８４】
更に、本明細書に記載されるモジュールのうち１つ以上は、データ、物理的デバイス、及び／又は物理的デバイスの表現を１つの形態から別の形態へと変換することができる。例えば、本明細書に列挙されるモジュールのうち１つ以上は、変換されるシステムイメージのフィンガープリントを受信し、システムイメージのフィンガープリントを１つ以上のプリインストールアプリケーションの査定に変換し、変換の結果をセキュリティシステムに出力し、セキュリティ問題を解決するためこの変換の結果を使用し、更に変換の結果をストレージデバイスに記憶することができる。加えて、又は代わりに、本明細書に列挙されるモジュールのうち１つ以上は、コンピューティングデバイス上で実行し、コンピューティングデバイス上にデータを記憶し、かつ／又は別様にコンピューティングデバイスと相互作用することによって、プロセッサ、揮発性メモリ、不揮発性メモリ、及び／又は物理的コンピューティングデバイスの任意の他の部分を、１つの形態から別の形態へと変換することができる。
【００８５】
前述の記述は、他の当業者が本明細書に開示される例示的な実施形態の様々な態様を最良に利用することができるように提供されてきた。この例示的な記述は、網羅的であることを意図するものではなく、又は開示される任意の正確な形態に限定することを意図するものではない。本開示の趣旨及び範囲から逸脱することなく、多くの変更例及び変形例が可能である。本明細書で開示される実施形態は、あらゆる点で例示的であり、限定的ではないものと見なされるべきである。本開示の範囲を判断する場合、添付の特許請求の範囲及びこれらの均等物を参照するべきである。
【００８６】
別途記載のない限り、用語「に接続される」及び「に連結される」（並びにこれらの派生語）は、本明細書及び特許請求の範囲で使用される際、直接的接続と間接的接続（すなわち、他の要素又は構成要素を介した）との両方を許容するものとして解釈することができる。更に、用語「１つの（a）」又は「１つの（an）」は、本明細書及び特許請求の範囲で使用される際、「のうち少なくとも１つ」を意味するものとして解釈することができる。最後に、簡潔にするため、用語「含む」及び「有する」（並びにそれらの派生語）は、本明細書及び特許請求の範囲で使用される際、単語「備える」と互換性があり、同じ意味を有する。
【図１】
2017511523.tif 000003
【図２】
2017511523.tif 000004
【図３】
2017511523.tif 000005
【図４】
2017511523.tif 000006
【図５】
2017511523.tif 000007
【図６】
2017511523.tif 000008
【手続補正書】
【提出日】平成28年8月13日(2016.8.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プリインストールアプリケーションのスキャンを最適化するためのコンピュータ実装方法であって、前記方法の少なくとも一部が少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実行され、前記方法が、
クライアントデバイスで、スキャンベースの査定の対象となる複数のアプリケーションを識別することと、
前記複数のアプリケーションが前記クライアントデバイスのシステムイメージを介して前記クライアントデバイスにプリインストールされたことを判定することと、
前記システムイメージを表すフィンガープリントを生成することと、
前記システムイメージを表す前記フィンガープリントを査定サーバに送信するとともにそれに応じて前記システムイメージの査定を受信することによって、前記複数のアプリケーションに対して前記スキャンベースの査定を遂行することと、 
を含む、方法。
【請求項２】
前記スキャンベースの査定が、
前記複数のアプリケーションの内のアプリケーションがマルウェアを含むかどうかの査定と、
前記複数のアプリケーションの内のアプリケーションのパフォーマンス査定と、のうち少なくとも１つを含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記スキャンベースの査定が、前記アプリケーションが前記クライアントデバイスの特徴にアクセスできるようにする、前記クライアントデバイスの前記アプリケーションに割り当てられた許可に基づく前記複数のアプリケーションの内のアプリケーションの査定を含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記システムイメージの発行元のみが、前記複数のアプリケーションの内の任意のアプリケーションを修正するように許可されている、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記クライアントデバイスで、少なくとも１つのスキャンベースの査定の対象となる個別アプリケーションを識別することと、
前記個別アプリケーションが前記クライアントデバイスの前記システムイメージを介して前記クライアントデバイスにプリインストールされなかったことを判定することと、
前記個別アプリケーションが前記クライアントデバイスの前記システムイメージを介して前記クライアントデバイスにプリインストールされなかったことを判定したことに基づいて、前記個別アプリケーションを表し、他のいかなるアプリケーションも表さない個別フィンガープリントを生成することと、
前記個別アプリケーションを表す前記個別フィンガープリントを前記査定サーバに送信するとともにそれに応じて前記個別アプリケーションの査定を受信することによって、前記個別アプリケーションに対して前記スキャンベースの査定を遂行することと、
を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記システムイメージの前記査定が、前記複数のアプリケーションの内の個別アプリケーションの査定を含み、
前記個別アプリケーションの前記査定が、前記個別アプリケーションが改善措置の対象となることを指摘する、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記改善措置を実行することを更に含む、請求項６に記載のコンピュータ実装方法。
【請求項８】
前記個別アプリケーションの前記査定に基づいて、前記システムイメージを表す前記フィンガープリントを前記査定サーバに送信することが、前記複数のアプリケーションに対して後続のスキャンベースの査定を遂行するのに十分ではないと判定することと、
前記システムイメージを表す前記フィンガープリントを前記査定サーバに送信することが、前記後続のスキャンベースの査定を遂行するのに十分ではないと判定したことに応じて、前記複数のアプリケーションの内のアプリケーションそれぞれに対する個別フィンガープリントを前記査定サーバに送信することによって、前記複数のアプリケーションに対して前記後続のスキャンベースの査定を遂行することと、を更に含む、請求項６に記載のコンピュータ実装方法。
【請求項９】
前記システムイメージを表す前記フィンガープリントを生成することが、前記複数のアプリケーションの内のアプリケーションそれぞれに対する個別フィンガープリントを結合することを含む、請求項１に記載のコンピュータ実装方法。
【請求項１０】
前記システムイメージを表す前記フィンガープリントを生成することが、前記フィンガープリントを生成するための入力として、前記システムイメージを検証するため前記システムイメージとともに含まれる公開鍵を使用することを含む、請求項１に記載のコンピュータ実装方法。
【請求項１１】
前記システムイメージを表す前記フィンガープリントを生成することが、前記システムイメージのバージョン及び前記システムイメージのビルド番号に基づいて前記フィンガープリントを生成することを含む、請求項１に記載のコンピュータ実装方法。
【請求項１２】
プリインストールアプリケーションのスキャンを最適化するためのシステムであって、前記システムが、
クライアントデバイスで、スキャンベースの査定の対象となる複数のアプリケーションを識別する、メモリに記憶される識別モジュールと、
前記複数のアプリケーションが前記クライアントデバイスのシステムイメージを介して前記クライアントデバイスにプリインストールされたことを判定する、メモリに記憶される判定モジュールと、
前記システムイメージを表すフィンガープリントを生成する、メモリに記憶される生成モジュールと、
前記システムイメージを表す前記フィンガープリントを査定サーバに送信するとともにそれに応じて前記システムイメージの査定を受信することによって、前記複数のアプリケーションに対して前記スキャンベースの査定を遂行する、メモリに記憶される遂行モジュールと、
前記識別モジュール、前記判定モジュール、前記生成モジュール、及び前記遂行モジュールを実行する少なくとも１つの物理プロセッサと、を備える、システム。
【請求項１３】
前記スキャンベースの査定が、
前記複数のアプリケーションの内のアプリケーションがマルウェアを含むかどうかの査定と、
前記複数のアプリケーションの内のアプリケーションのパフォーマンス査定と、のうち少なくとも１つを含む、請求項１２に記載のシステム。
【請求項１４】
前記スキャンベースの査定が、前記アプリケーションが前記クライアントデバイスの特徴にアクセスできるようにする、前記クライアントデバイスの前記アプリケーションに割り当てられた許可に基づく前記複数のアプリケーションの内のアプリケーションの査定を含む、請求項１２に記載のシステム。
【請求項１５】
前記システムイメージの発行元のみが、前記複数のアプリケーションの内の任意のアプリケーションを修正することが許可されている、請求項１２に記載のシステム。
【国際調査報告】
2017511523.tif 000009
2017511523.tif 000010
2017511523.tif 000011