(57)【要約】  インストール前にモバイルデバイス上でマルウェアを検出するためのコンピュータ実装方法は、アプリケーションをモバイルコンピューティングデバイスにインストールするアプリケーションインストールエージェントの１つ以上の通信を傍受することを含んでもよい。本方法は、１つ以上の傍受された通信に基づいて、アプリケーションインストールエージェントによって少なくとも部分的にダウンロードされたアプリケーションを識別することを更に含んでもよい。本方法は、アプリケーションの識別に応答して、かつアプリケーションがモバイルコンピューティングデバイスにインストールされる前に、マルウェアについてアプリケーションをスキャンすることも含んでもよい。加えて、本方法は、スキャンに基づいて、アプリケーションがマルウェアを含むと判定することを含んでもよい。最後に、本方法は、アプリケーションがマルウェアを含むという判定に応答して、セキュリティアクションを実施することを含んでもよい。様々な他の方法、システム、及びコンピュータ可読媒体も開示される。
2017514205.tif 000002
【特許請求の範囲】
【請求項１】
インストール前にモバイルデバイス上でマルウェアを検出するためのコンピュータ実装方法であって、前記方法の少なくとも一部が、少なくとも１つのプロセッサを備えるモバイルコンピューティングデバイスによって実施され、前記方法が、
アプリケーションを前記モバイルコンピューティングデバイスにインストールするアプリケーションインストールエージェントの１つ以上の通信を傍受することと、
前記１つ以上の傍受された通信に基づいて、前記アプリケーションインストールエージェントによって少なくとも部分的にダウンロードされたアプリケーションを識別することと、
前記アプリケーションの識別に応答して、かつ前記アプリケーションが前記モバイルコンピューティングデバイスにインストールされる前に、マルウェアについて前記アプリケーションをスキャンすることと、
前記スキャンに基づいて、前記アプリケーションがマルウェアを含むと判定することと、
前記アプリケーションがマルウェアを含むという判定に応答して、セキュリティアクションを実施することと、を含む、コンピュータ実装方法。
【請求項２】
監視エージェントが前記アプリケーションインストールエージェントから通信を傍受することができるように、前記監視エージェントが、前記アプリケーションインストールエージェントを起動し、
前記アプリケーションインストールエージェントを起動した後に、前記監視エージェントが、前記傍受工程及び識別工程を実施する、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記アプリケーションインストールエージェントの前記１つ以上の通信を傍受することが、リモートサーバから前記アプリケーションをダウンロードするという前記アプリケーションインストールエージェントからの要求を傍受することを含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記アプリケーションインストールエージェントの前記１つ以上の通信を傍受することが、前記アプリケーションを前記モバイルコンピューティングデバイスにインストールするという前記アプリケーションインストールエージェントによる要求を傍受することを含む、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記アプリケーションを識別することが、前記アプリケーションを前記モバイルコンピューティングデバイスにインストールするという前記要求に基づいて、前記アプリケーションのファイルパスを識別することを含む、請求項４に記載のコンピュータ実装方法。
【請求項６】
前記アプリケーションを識別することが、前記ファイルパスを、前記スキャン工程を実施するスキャンエージェントに提供することを更に含む、請求項５に記載のコンピュータ実装方法。
【請求項７】
前記アプリケーションをスキャンすることが、
前記アプリケーションがダウンロードされている間に前記アプリケーションをスキャンすること、
前記アプリケーションが完全にダウンロードされた後に前記アプリケーションをスキャンすること、のうちの少なくとも１つを含む、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記セキュリティアクションを実施することが、前記アプリケーションのインストールをブロックすることを含む、請求項１に記載のコンピュータ実装方法。
【請求項９】
インストール前にモバイルデバイス上でマルウェアを検出するためのシステムであって、
アプリケーションをモバイルコンピューティングデバイスにインストールするアプリケーションインストールエージェントの１つ以上の通信を傍受する、メモリに記憶された傍受モジュールと、
前記１つ以上の傍受された通信に基づいて、前記アプリケーションインストールエージェントによって少なくとも部分的にダウンロードされたアプリケーションを識別する、メモリに記憶された識別モジュールと、
前記アプリケーションが前記モバイルコンピューティングデバイスにインストールされる前に前記アプリケーションをスキャンする、メモリに記憶されたスキャンモジュールと、
前記スキャンに基づいて、前記アプリケーションがマルウェアを含むと判定する、メモリに記憶された判定モジュールと、
前記アプリケーションがマルウェアを含むという判定に応答して、セキュリティアクションを実施する、メモリに記憶されたセキュリティモジュールと、
前記傍受モジュール、前記識別モジュール、前記スキャンモジュール、前記判定モジュール、及び前記セキュリティモジュールを実行する少なくとも１つの物理プロセッサと、を備える、システム。
【請求項１０】
監視エージェントが前記アプリケーションインストールエージェントから通信を傍受することができるように、前記監視エージェントが、前記アプリケーションエージェントを起動し、
前記監視エージェントが、前記傍受モジュール及び前記識別モジュールを備え、
前記アプリケーションインストールエージェントを起動した後に、前記監視エージェントが、前記傍受工程及び識別工程を実施する、請求項９に記載のシステム。
【請求項１１】
前記傍受モジュールが、リモートサーバから前記アプリケーションをダウンロードするという前記アプリケーションインストールエージェントからの要求を傍受することによって、前記アプリケーションインストールエージェントの前記１つ以上の通信を傍受する、請求項９に記載のシステム。
【請求項１２】
前記傍受モジュールが、前記アプリケーションを前記モバイルコンピューティングデバイスにインストールするという前記アプリケーションインストールエージェントによる要求を傍受することによって、前記アプリケーションエージェントの前記１つ以上の通信を傍受する、請求項９に記載のシステム。
【請求項１３】
前記識別モジュールが、前記アプリケーションを前記モバイルコンピューティングデバイスにインストールするという前記要求に基づいて、前記アプリケーションのファイルパスを識別することによって、前記アプリケーションを識別する、請求項１２に記載のシステム。
【請求項１４】
前記識別モジュールが、前記ファイルパスを前記スキャンモジュールに提供する、請求項１３に記載のシステム。
【請求項１５】
前記スキャンモジュールが、前記アプリケーションがダウンロードされている間に前記アプリケーションによってスキャンすることによって、前記アプリケーションをスキャンする、請求項９に記載のシステム。
【請求項１６】
前記スキャンモジュールが、前記アプリケーションが完全にダウンロードされた後に前記アプリケーションをスキャンすることによって、前記アプリケーションをスキャンする、請求項９に記載のシステム。
【請求項１７】
前記セキュリティモジュールが、前記アプリケーションのインストールをブロックすることによって、前記セキュリティアクションを実施する、請求項９に記載のシステム。
【請求項１８】
１つ以上のコンピュータ実行可能命令を含む非一時的コンピュータ可読媒体であって、前記１つ以上のコンピュータ実行可能命令が、モバイルコンピューティングデバイスの少なくとも１つのプロセッサによって実行されたときに、前記モバイルコンピューティングデバイスに、
アプリケーションを前記モバイルコンピューティングデバイスにインストールするアプリケーションインストールエージェントの１つ以上の通信を傍受させ、
前記１つ以上の傍受された通信に基づいて、前記アプリケーションインストールエージェントによって少なくとも部分的にダウンロードされたアプリケーションを識別させ、
前記アプリケーションが前記モバイルコンピューティングデバイスにインストールされる前に、マルウェアについて前記アプリケーションをスキャンさせ、
前記スキャンに基づいて、前記アプリケーションがマルウェアを含むと判定させ、
前記アプリケーションがマルウェアを含むという判定に応答して、セキュリティアクションを実施させる、非一時的コンピュータ可読媒体。
【請求項１９】
前記１つ以上のコンピュータ実行可能命令が、前記モバイルコンピューティングデバイスに、
前記アプリケーションを前記モバイルコンピューティングデバイスにインストールするという前記アプリケーションインストールエージェントによる要求を傍受することによって、前記アプリケーションインストールエージェントの前記１つ以上の通信を傍受させ、
前記アプリケーションを前記モバイルコンピューティングデバイスにインストールするという前記要求に基づいて、前記アプリケーションのファイルパスを識別することによって、前記アプリケーションを識別させる、請求項１８に記載の非一時的コンピュータ可読媒体。
【請求項２０】
前記１つ以上のコンピュータ実行可能命令が、前記コンピューティングデバイスに、前記アプリケーションのインストールをブロックすることによって、前記セキュリティアクションを実行させる、請求項１８に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
モバイルデバイスをマルウェアから保護することは、モバイルデバイスセキュリティの不可欠な部分である。その結果、セキュリティソフトウェア開発者は、モバイルデバイスのアンチマルウェアシステムの速度、効率、及び有効性を改善する方法を探求し続けている。多くのアンチマルウェアシステムは、既知のマルウェアシグネチャについてファイルをスキャンすることによってマルウェアを検出する。アンチマルウェアシステムが、既知のマルウェアシグネチャにマッチするファイル内のコードを検出した場合、アンチマルウェアシステムは、そのファイルを隔離又は削除するなどの、様々なセキュリティアクションを実施することができる。残念なことに、この時点で、マルウェアファイルがモバイルデバイスのセキュリティを既に危殆化している場合がある。これは、マルウェアがアプリケーションストアクライアント（例えば、ＧＯＯＧＬＥ  ＰＬＡＹクライアント又はＩＯＳ  ＡＰＰ  ＳＴＯＲＥクライアント）によってダウンロードされるときに特に当てはまり得る。例えば、スマートフォン上の従来のアンチマルウェアシステムは、アプリケーションストアクライアントがアプリケーションをダウンロードし、それをスマートフォンにインストールしてしまう後まで、アプリケーションをスキャンするために待機する場合がある。このインストールとスキャンとの間の時間窓は、どれだけ小さくても、マルウェアがスマートフォンのセキュリティを危殆化するのに十分であり得る。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
したがって、インストール前にモバイルデバイス上でマルウェアを検出するためのより効率的で有効な機構が必要である。
【課題を解決するための手段】
【０００３】
以下で更に詳細に説明されるように、本開示は、インストール前にモバイルデバイス上でマルウェアを検出するための様々なシステム及び方法を記載する。例えば、インストール前にモバイルデバイス上でマルウェアを検出するための方法は、アプリケーションをモバイルコンピューティングデバイスにインストールするアプリケーションインストールエージェントの１つ以上の通信を傍受することを含んでもよい。本方法は、１つ以上の傍受された通信に基づいて、アプリケーションインストールエージェントによって少なくとも部分的にダウンロードされたアプリケーションを識別することを更に含んでもよい。本方法は、アプリケーションの識別に応答して、かつアプリケーションがモバイルコンピューティングデバイスにインストールされる前に、マルウェアについてアプリケーションをスキャンすることも含んでもよい。加えて、本方法は、スキャンに基づいて、アプリケーションがマルウェアを含むと判定することを含んでもよい。本方法は、アプリケーションがマルウェアを含むという判定に応答して、セキュリティアクションを実施することを更に含んでもよい。
【０００４】
いくつかの実施形態において、監視エージェントは、監視エージェントがアプリケーションインストールエージェントから通信を傍受することができるように、アプリケーションインストールエージェントを起動してもよい。これらの実施形態において、アプリケーションインストールエージェントを起動した後に、監視エージェントは、上に記載される傍受工程及び識別工程を実施してもよい。
【０００５】
少なくとも１つの実施形態において、アプリケーションインストールエージェントの１つ以上の通信を傍受することは、リモートサーバからアプリケーションをダウンロードするというアプリケーションインストールエージェントからの要求を傍受することを含んでもよい。いくつかの実施例において、アプリケーションインストールエージェントの１つ以上の通信を傍受することは、アプリケーションをモバイルコンピューティングデバイスにインストールするというアプリケーションインストールエージェントによる要求を傍受することを含んでもよい。これらの実施例において、アプリケーションを識別することは、アプリケーションをモバイルコンピューティングデバイスにインストールするという要求に基づいて、アプリケーションのファイルパスを識別することを含んでもよい。いくつかの実施形態において、アプリケーションを識別することは、ファイルパスを、スキャン工程を実施するスキャンエージェントに提供することを更に含んでもよい。
【０００６】
様々な実施例において、アプリケーションをスキャンすることは、アプリケーションがダウンロードされている間に、かつ／又はアプリケーションが完全にダウンロードされた後に、アプリケーションをスキャンすることを含んでもよい。少なくとも１つの実施例において、セキュリティアクションを実施することは、アプリケーションのインストールをブロックすることを含んでもよい。
【０００７】
一実施形態において、上に記載される方法を実装するためのシステムは、アプリケーションをモバイルコンピューティングデバイスにインストールするアプリケーションインストールエージェントの１つ以上の通信を傍受する、メモリに記憶された傍受モジュールを含んでもよい。本システムは、１つ以上の傍受された通信に基づいて、アプリケーションインストールエージェントによって少なくとも部分的にダウンロードされたアプリケーションを識別する、メモリに記憶された識別モジュールを更に含んでもよい。本システムは、アプリケーションがモバイルコンピューティングデバイスにインストールされる前にアプリケーションをスキャンする、メモリに記憶されたスキャンモジュールも含んでもよい。加えて、本システムは、スキャンに基づいて、アプリケーションがマルウェアを含むと判定する、メモリに記憶された判定モジュールを含んでもよい。本システムは、アプリケーションがマルウェアを含むと判定することに基づいて、セキュリティアクションを実施する、メモリに記憶されたセキュリティモジュールを更に含んでもよい。更に、本システムは、傍受モジュール、識別モジュール、スキャンモジュール、判定モジュール、及びセキュリティモジュールを実行する少なくとも１つの物理プロセッサを含んでもよい。
【０００８】
いくつかの実施例において、上に記載される方法は、非一時的コンピュータ可読媒体上のコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、１つ以上のコンピュータ実行可能命令を含んでもよく、該命令は、モバイルコンピューティングデバイスの少なくとも１つのプロセッサによって実行したときに、モバイルコンピューティングデバイスに、アプリケーションをモバイルコンピューティングデバイスにインストールするアプリケーションインストールエージェント１つ以上の通信を傍受させることができる。１つ以上のコンピュータ実行可能命令は更に、モバイルコンピューティングデバイスに、１つ以上の傍受された通信に基づいて、アプリケーションインストールエージェントによって少なくとも部分的にダウンロードされたアプリケーションを識別させることができる。１つ以上のコンピュータ実行可能命令は、モバイルコンピューティングデバイスに、アプリケーションがモバイルコンピューティングデバイスにインストールされる前に、マルウェアについてアプリケーションをスキャンさせることもできる。加えて、１つ以上のコンピュータ実行可能命令は、モバイルコンピューティングデバイスに、スキャンに基づいて、アプリケーションがマルウェアを含むと判定させることができる。１つ以上のコンピュータ実行可能命令は更に、モバイルコンピューティングデバイスに、アプリケーションがマルウェアを含むという判定に応答して、セキュリティアクションを実施させることができる。
【０００９】
上で述べられる実施形態のいずれかによる特徴は、本明細書で説明される一般原理に従って、互いに組み合わせて使用することができる。これら及び他の実施形態、特徴、及び利点は、添付の図面及び特許請求の範囲と併せて以下の発明を実施するための形態を読むことによって更に十分に理解されるだろう。
【図面の簡単な説明】
【００１０】
添付の図面は、いくつかの例示的な実施形態を例証するものであり、本明細書の一部である。以下の説明と併せて、これらの図面は、本開示の様々な原理を実証及び説明する。
【図１】インストール前にモバイルデバイス上でマルウェアを検出するための例示的なシステムのブロック図である。
【図２】インストール前にモバイルデバイス上でマルウェアを検出するための追加の例示的なシステムのブロック図である。
【図３】インストール前にモバイルデバイス上でマルウェアを検出するための例示的な方法のフロー図である。
【図４】インストール前にスマートフォン上でマルウェアを検出するための例示的なシステムのブロック図である。
【図５】本明細書に記載及び／又は例証される実施形態のうちの１つ以上を実装することができる例示的なコンピューティングシステムのブロック図である。
【図６】本明細書に記載及び／又は例証される実施形態のうちの１つ以上を実装することができる例示的なコンピューティングネットワークのブロック図である。
【００１１】
図面を通して、同一の参照符号及び記述は、必ずしも同一ではないが、類似の要素を示す。本明細書で説明される例示的な実施形態は、様々な修正物及び代替的な形態が可能であるが、特定の実施形態が例として図面に示されており、本明細書に詳細に記載される。しかしながら、本明細書に記載される例示的な実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の特許請求の範囲内にある全ての修正物、等価物、及び代替物を網羅する。
【発明を実施するための形態】
【００１２】
本開示は、概して、インストール前にモバイルデバイス上でマルウェアを検出するためのシステム及び方法を対象とする。以下で更に詳細に説明されるように、本明細書に記載されるシステム及び方法は、マルウェアがモバイルコンピューティングデバイスにインストールされる前にマルウェアを検出するために、アプリケーションインストールエージェントの通信を傍受することができる。具体的には、本明細書のシステム及び方法は、アプリケーションをダウンロードし、かつ／又はアプリケーションをインストールするというアプリケーションインストールエージェントからの、要求を傍受し、マルウェアについてアプリケーションをスキャンし、次いで、アプリケーションのインストールをブロックすることによって、アンチマルウェア開発者がロバストなプロアクティブアンチマルウェアシステムを作成する助けとなり得る。
【００１３】
以下、図１、図２、及び図４を参照して、インストール前にモバイルデバイス上でマルウェアを検出するための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実装方法の詳細な説明も図３に関連して提供される。更に、本明細書に記載される実施形態のうちの１つ以上を実装することができる例示的なコンピューティングシステム及びネットワークアーキテクチャの詳細な説明が、それぞれ図５及び図６に関連して提供される。
【００１４】
図１は、インストール前にモバイルデバイス上でマルウェアを検出するための例示的なシステム１００のブロック図である。この図に例証されるように、例示的なシステム１００は、１つ以上のタスクを実施するための１つ以上のモジュール１０２を含んでもよい。例えば、以下で更に詳細に説明されるように、例示的なシステム１００は、アプリケーションをモバイルコンピューティングデバイスにインストールするアプリケーションインストールエージェントの１つ以上の通信を傍受する、傍受モジュール１０４を含んでもよい。例示的なシステム１００は、１つ以上の傍受された通信に基づいて、アプリケーションインストールエージェントによって少なくとも部分的にダウンロードされたアプリケーションを識別する、識別モジュール１０６も含んでもよい。例示的なシステム１００は、アプリケーションの識別に応答して、かつアプリケーションがモバイルコンピューティングデバイスにインストールされる前に、マルウェアについてアプリケーションをスキャンする、スキャンモジュール１０８を更に含んでもよい。加えて、例示的なシステム１００は、スキャンに基づいて、アプリケーションがマルウェアを含むと判定する、判定モジュール１１０を含んでもよい。例示的なシステム１００は、アプリケーションがマルウェアを含むという判定に応答して、セキュリティアクションを実施する、セキュリティモジュール１１２も含んでもよい。別々の要素として例証されるが、図１のモジュール１０２のうちの１つ以上は、単一のモジュール又はアプリケーションの部分を表してもよい。
【００１５】
ある特定の実施形態において、図１のモジュール１０２のうち１つ以上は、コンピューティングデバイスによって実行されると、コンピューティングデバイスに１つ以上のタスクを実施させ得る、１つ以上のソフトウェアアプリケーション又はプログラムを表してもよい。例えば、以下で更に詳細に説明されるように、モジュール１０２のうちの１つ以上は、図２に例証されるデバイス（例えば、モバイルコンピューティングデバイス２０２及び／又はサーバ２０６）、図４のスマートフォン４０２、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の部分などの、１つ以上のコンピューティングデバイスに記憶され、その上で作動するように構成されたソフトウェアモジュールを表してもよい。図１のモジュール１０２のうちの１つ以上は、１つ以上のタスクを実施するように構成された１つ以上の専用コンピュータの全て又は一部も表してもよい。
【００１６】
図１に例証されるように、例示的なシステム１００は、マルウェアシグネチャデータベース１２０などの、１つ以上のデータベースも含んでもよい。一実施例において、マルウェアシグネチャデータベース１２０は、様々な既知のマルウェアシグネチャを記憶するように構成されてもよい。本実施例において、アンチマルウェアシステムは、マルウェアシグネチャデータベース１２０で見られるものと同様なマルウェアシグネチャを検出するためにモバイルコンピューティングデバイスのファイルをスキャンすることができる。このようにして、アンチマルウェアシステム（例えば、図４のアンチマルウェアシステム４１２）は、モバイルコンピューティングデバイスのマルウェアを検出するために、マルウェアシグネチャデータベース１２０を利用することができる。
【００１７】
マルウェアシグネチャデータベース１２０は、単一のデータベース若しくはコンピューティングデバイス、又は複数のデータベース若しくはコンピューティングデバイスの部分を表してもよい。例えば、マルウェアシグネチャデータベース１２０は、図２のサーバ２０６の一部、図４のスマートフォン４０２、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の部分を表してもよい。代替的に、図１のマルウェアシグネチャデータベース１２０は、図２のサーバ２０６、図４のスマートフォン４０２、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の部分などの、コンピューティングデバイスによってアクセスすることができる、１つ以上の物理的に別々のデバイスを表してもよい。
【００１８】
図１の例示的なシステム１００は、様々な方法で実装することができる。例えば、例示的なシステム１００の全て又は一部は、図２における例示的なシステム２００の部分を表してもよい。図２に示されるように、システム２００は、ネットワーク２０４を介してサーバ２０６と通信しているモバイルコンピューティングデバイス２０２を含んでもよい。一実施例において、モバイルコンピューティングデバイス２０２は、モジュール１０２のうちの１つ以上によってプログラムすることができ、及び／又はマルウェアシグネチャデータベース１２０の中のデータの全て又は一部を記憶することができる。加えて、又は代替的に、サーバ２０６は、モジュール１０２のうちの１つ以上によってプログラムすることができ、及び／又はマルウェアシグネチャデータベース１２０の中のデータの全て又は一部を記憶することができる。
【００１９】
一実施形態において、図１のモジュール１０２のうちの１つ以上は、モバイルコンピューティングデバイス２０２及び／又はサーバ２０６の少なくとも１つのプロセッサによって実行したときに、モバイルコンピューティングデバイス２０２及び／又はサーバ２０６が、マルウェアがモバイルコンピューティングデバイス２０２にインストールされる前に、マルウェアをスキャンし、検出することを可能にする。例えば、以下で更に詳細に説明されるように、傍受モジュール１０４は、アプリケーションをモバイルコンピューティングデバイス２０２にインストールするアプリケーションインストールエージェント２１０の１つ以上の通信を傍受することができる。次いで、識別モジュール１０６は、１つ以上の傍受された通信に基づいて、アプリケーションインストールエージェント２１０によって少なくとも部分的にダウンロードされたアプリケーション２０８を識別することができる。識別モジュール１０６のアプリケーション２０８の識別に応答して、かつアプリケーション２０８がモバイルコンピューティングデバイス２０２にインストールされる前に、スキャンモジュール１０８は、マルウェアについてアプリケーション２０８をスキャンすることができる。次いで、判定モジュール１１０は、アプリケーション２０８のスキャンに基づいて、アプリケーション２０８がマルウェアを含むと判定することができる。最後に、セキュリティモジュール１１２は、アプリケーション２０８がマルウェアを含むという判定に応答して、セキュリティアクションを実施することができる。
【００２０】
モバイルコンピューティングデバイス２０２は、一般に、コンピュータ実行可能命令を読み取ることができる任意のタイプ又は形態のコンピューティングデバイスを表す。モバイルコンピューティングデバイス２０２の例としては、限定することなく、ラップトップ、タブレット、携帯電話、携帯情報端末（ＰＤＡ）、マルチメディアプレーヤー、埋め込みシステム、ウェアラブルデバイス（例えば、スマートウォッチ、スマートグラスなど）、ゲーム機、それらのうちの１つ以上の組み合わせ、図４のスマートフォン４０２、図５の例示的なコンピューティングシステム５１０、又は任意の他の好適なコンピューティングデバイスが挙げられる。
【００２１】
サーバ２０６は、一般に、アプリケーションをホストし、モバイルデバイスにインストールされるアプリケーションストアクライアントに提供することができる、任意のタイプ又は形態のコンピューティングデバイスを表してもよい。例えば、サーバ２０６は、ＧＯＯＧＬＥ  ＰＬＡＹサービスの一部とすることができ、また、ＧＯＯＧＬＥ  ＰＬＡＹクライアントで構成されたスマートフォンが、ＧＯＯＧＬＥ  ＰＬＡＹアプリケーションをダウンロードすることを可能にすることができる。サーバ２０６の例としては、限定することなく、様々なデータベースサービスを提供するように、かつ／又はある特定のソフトウェアアプリケーションを作動させるように構成されたアプリケーションサーバ及びデータベースサーバが挙げられる。
【００２２】
ネットワーク２０４は、一般に、通信若しくはデータ転送を容易にすることが可能な、任意の媒体又はアーキテクチャを表す。ネットワーク２０４の例としては、限定することなく、イントラネット、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、インターネット、電力線通信（ＰＬＣ）、セルラーネットワーク（例えば、グローバルシステムフォーモバイルコミュニケーションズ（ＧＳＭ（登録商標））ネットワーク）、図４の例示的なネットワーク４０４、図６の例示的なネットワークアーキテクチャ６００などが挙げられる。ネットワーク２０４は、無線接続又は有線接続を使用して、通信又はデータ転送を容易にすることができる。一実施形態において、ネットワーク２０４は、モバイルコンピューティングデバイス２０２とサーバ２０６との間の通信を容易にすることができる。
【００２３】
図３は、インストール前にモバイルデバイス上でマルウェアを検出するための例示的なコンピュータ実装方法３００のフロー図である。図３に示される工程は、任意の適切なコンピュータ実行可能コード及び／又はコンピューティングシステムによって実施することができる。いくつかの実施形態では、図３の工程は、図１のシステム１００、図２のシステム２００、図４のスマートフォン４０２、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の部分の構成要素のうちの１つ以上によって実施され得る。
【００２４】
図３に例証されるように、工程３０２で、本明細書に記載されるシステムのうちの１つ以上は、アプリケーションをモバイルコンピューティングデバイスにインストールするアプリケーションインストールエージェントの１つ以上の通信を傍受することができる。例えば、傍受モジュール１０４は、図２のモバイルコンピューティングデバイス２０２の一部として、アプリケーションインストールエージェント２１０の１つ以上の通信を傍受することができる。
【００２５】
本明細書で使用するとき、用語「通信」は、一般に、プロセス、アプリケーション、ソフトウェアモジュール、及び／又はプログラムから送信される、又はそれらによって受信される、任意のタイプ又は形態の入力／出力を指す。更に、用語「通信」は、一般に、アプリケーションプログラミングインターフェース（ＡＰＩ）コールを介して、又は他の通信プロトコル（ＦＴＰ、ＨＴＴＰＳなど）を介して交換される通信などの、２つのソフトウェアモジュール間の任意のタイプ又は形態の相互作用を指し得る。いくつかの実施例において、通信は、アプリケーションプロセスがデータを記憶デバイスから読み取ろうとする、又はそこに書き込もうとする試みを含み得る。例えば、アプリケーションインストールエージェントは、アプリケーションをスマートフォン記憶デバイスに記憶し、及び／又はインストールするために、システムＡＰＩをコールすることができる。通信は、任意のタイプのソフトウェアから送信される、及び／又はそれによって受信される、任意の他の好適な相互作用、入力／出力、及び／又はデータを含むことができる。
【００２６】
様々な情報及び／又はデータを、通信を介して送信することができる。例えば、実行可能ファイル又はスクリプトは、アプリケーションストアサーバから、スマートフォンのアプリケーションストアクライアントに送信することができる。別の実施例において、アプリケーションインストールエージェントは、特定のパラメータをＡＰＩに送信することによって、リモートサーバのＡＰＩをコールすることができる。通信を介して送信することができるデータの例としては、限定することなく、任意のタイプ又は形態のアプリケーションファイル（例えば、アンドロイドパッケージファイル（ＡＰＫ）又はｉＰｈｏｎｅ（登録商標）アプリケーションアーカイブ（ＩＰＡ））、実行ファイル、スクリプト、ライブラリ、ＡＰＩパラメータ、プロトコルパラメータ、データベースファイル、圧縮ファイル、入力／出力データ、又は任意の他の好適なタイプ若しくは形態のデータが挙げられる。
【００２７】
２つのソフトウェアモジュール間（アプリケーションインストールエージェントとリモートサーバのＡＰＩとの間など）の通信は、様々なプロトコルを介して送信することができる。例えば、アプリケーションインストールエージェント及びリモートサーバは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）又はファイル転送プロトコル（ＦＴＰ）を介して通信することができる。いくつかの実施例において、同じシステム内のプロセスは、システム固有のプロトコルを介して通信することができる。例えば、ＡＮＤＲＯＩＤ（登録商標、以下同じ）デバイス上のアプリケーションは、相互に通信することができ、他のシステムは、様々なＡＮＤＲＯＩＤ固有のプロトコル及びパラメータを介して、例えば「インテント」の宣言などを処理する。
【００２８】
本明細書で使用するとき、「アプリケーションインストールエージェント」という句は、一般に、リモートサーバ（例えば、ＧＯＯＧＬＥ  ＰＬＡＹクライアント又はＩＯＳ  ＡＰＰ  ＳＴＯＲＥクライアント）からモバイルコンピューティングデバイスにアプリケーションをダウンロード及びインストールするように構成されたモバイルコンピューティングデバイスにインストールされる任意のタイプ又は形態のアプリケーションストアクライアントを指す。例えば、アプリケーションインストールエージェントは、スマートフォンのユーザがアプリケーションストアでアプリケーションを検索し、そこからダウンロードすることを可能にする、クライアント側のスマートフォンアプリケーションを含んでもよい。アプリケーションインストールエージェントは、一般に、アプリケーションをモバイルデバイスにダウンロード及びインストールするプロセスを自動化する、任意の他の好適なサービス、アプリケーション、及び／又はソフトウェアモジュールを含んでもよい。
【００２９】
アプリケーションインストールエージェントは、アプリケーションをホストするリモートサーバから、様々なアプリケーション及びファイル（例えば、ＡＮＲＯＩＤ  ＡＰＫ又はＩＯＳ  ＩＰＡ）をダウンロード及びインストールするように構成されてもよい。加えて、アプリケーションインストールエージェントは、様々なネットワーク及びネットワーク構成にわたって、（上で論じられるような）様々なプロトコルを介して、リモートサーバと通信するように構成されてもよい。例えば、アプリケーションインストールエージェントは、インターネット、セルラーネットワーク、又は任意の他の好適なタイプのネットワークを介して、アプリケーションをダウンロード及びインストールするように構成されてもよい。
【００３０】
傍受モジュール１０４は、様々な方法で、アプリケーションインストールエージェント２１０の１つ以上の通信を傍受することができる。例えば、傍受モジュール１０４は、サーバ２０６からアプリケーション２０８をダウンロードするというアプリケーションインストールエージェント２１０からの要求を傍受することができる。いくつかの実施形態において、傍受モジュール１０４は、アプリケーション２０８をモバイルコンピューティングデバイス２０２にインストールするというアプリケーションインストールエージェント２１０による要求を傍受することができる。例えば、ＡＮＤＲＯＩＤデバイスにおいて、傍受モジュール１０４は、アプリケーションインストールエージェント２１０から送信される「インテント」の宣言を傍受することによって、アプリケーション２０８をインストールするという要求を傍受することができる。
【００３１】
様々な実施形態において、傍受モジュール１０４は、監視エージェント（図４の監視エージェント４１４）の一部とすることができる。これらの実施形態において、監視エージェントは、監視エージェントがアプリケーションインストールエージェント２１０から通信を傍受することができるように、アプリケーションインストールエージェント２１０を起動することができる。例えば、スマートフォンのアンチマルウェアシステムの一部である監視エージェントは、スマートフォンにインストールされるアプリケーションストアクライアントについて、パーミッションを起動し、設定することができる。このような構成は、監視エージェントが、アプリケーションインストールエージェント２１０の入力／出力のフッキングなどの、様々な監視タスクを実施することを可能にすることができる。少なくとも１つの実施形態において、監視エージェントは、アプリケーションインストールエージェント２１０を起動しようとする試みを中断し、リダイレクトするように構成されてもよい。例えば、スマートフォンのユーザがアプリケーションストアクライアントを起動しようと試みたときに、監視エージェントは、起動の試みを中断し、次いで、監視エージェントが監視できるプロセスとして、アプリケーションストアクライアントを再起動することができる。
【００３２】
図３に例証されるように、工程３０４で、本明細書に記載されるシステムのうちの１つ以上は、１つ以上の傍受された通信に基づいて、アプリケーションインストールエージェントによって少なくとも部分的にダウンロードされたアプリケーションを識別することができる。例えば、識別モジュール１０６は、図２のモバイルコンピューティングデバイス２０２の一部として、傍受モジュール１０４によって傍受される１以上の通信に基づいて、アプリケーション２０８を識別することができる。更に、アプリケーション２０８は、アプリケーションインストールエージェント２１０によって少なくとも部分的にダウンロードされてしまっている場合がある。
【００３３】
本明細書で使用するとき、用語「アプリケーション」は、一般に、任意のタイプ又は形態の実行可能ファイル及び／又はプロセスを指す。例えば、アプリケーションは、ＡＰＫ又はＩＰＡファイルを含み得る。アプリケーションは、任意のサイズであり得る。例えば、アプリケーションは、１００メガバイト程度に大きい、又は２、３キロバイト程度に小さいものであり得る。いくつかの実施例において、アプリケーションは、様々な構成でモバイルコンピューティングデバイス２０２にインストールすることができる１つ以上のファイルを含んでもよい。いくつかの実施例において、アプリケーションは、モバイルコンピューティングデバイス２０２のシステム及びアプリケーションレベルでインストールすることができるファイルを含んでもよい。
【００３４】
識別モジュール１０６は、様々な方法で、アプリケーション２０８を識別することができる。例えば、識別モジュール１０６は、アプリケーションインストールエージェント２１０がサーバ２０６からアプリケーション２０８をダウンロードしている間に、アプリケーション２０８を識別することができる。いくつかの実施形態において、識別モジュール１０６は、アプリケーションインストールエージェント２１０がアプリケーション２０８をモバイルコンピューティングデバイス２０２にインストールするよう要求した後に、アプリケーション２０８を識別することができる。少なくとも１つの実施例において、識別モジュール１０６は、アプリケーション２０８をモバイルコンピューティングデバイス２０２にインストールするというアプリケーションインストールエージェント２１０による要求に基づいて、アプリケーション２０８のファイルパスを識別することによって、アプリケーション２０８を識別することができる。様々な実施形態において、次いで、識別モジュール１０４は、アプリケーション２０８のファイルパスを、スキャン工程を実施するスキャンエージェント（例えば、図２のスキャンモジュール１０８又は図４のスキャンエージェント４１６）に送信することができる。これらの実施形態において、スキャンエージェントは、アプリケーション２０８の場所を特定し、スキャンするために、アプリケーション２０８のファイルパスを使用することができる。
【００３５】
様々な実施形態において、識別モジュール１０６は、監視エージェントの一部とすることができる。これらの実施形態において、監視エージェントは、監視エージェントが、アプリケーションインストールエージェント２１０によって少なくとも部分的にダウンロードされたアプリケーションを識別することができるような方法で、アプリケーションインストールエージェント２１０を起動することができる。例えば、監視エージェントは、アプリケーションインストールエージェント２１０を起動するときに、監視エージェントが、アプリケーションインストールエージェント２１０によるアプリケーション２０８をダウンロード及び／又はインストールしようとする試みを識別することを可能にするパーミッションを設定することができる。
【００３６】
識別モジュール１０６は、アプリケーション２０８がインストールされる前の任意の好適な時間に、アプリケーション２０８を識別することができる。例えば、識別モジュール１０６は、アプリケーションインストールエージェント２１０がアプリケーション２０８をダウンロードしている間に、アプリケーション２０８を識別することができる。別の実施例において、識別モジュール１０６は、アプリケーションインストールエージェント２１０がアプリケーション２０８を完全にダウンロードした後に、アプリケーション２０８を識別することができる。
【００３７】
図３に例証されたときに、工程３０６で、本明細書に記載されるシステムのうちの１つ以上は、アプリケーションの識別に応答して、かつアプリケーションがモバイルコンピューティングデバイスにインストールされる前に、マルウェアについてアプリケーションをスキャンすることができる。例えば、スキャンモジュール１０８は、図２のモバイルコンピューティングデバイス２０２の一部として、マルウェアについてアプリケーション２０８をスキャンすることができる。更に、スキャンモジュール１０８は、アプリケーションインストールエージェント２１０がアプリケーション２０８をモバイルコンピューティングデバイス２０２にインストールする前に、アプリケーション２０８をスキャンすることができる。
【００３８】
スキャンしているモジュール１０８は、様々なマルウェアスキャン方法を使用して、アプリケーション２０８をスキャンすることができる。マルウェアスキャン方法の例としては、限定することなく、ストリングスキャン方法、ワイルドカード方法、ミスマッチ方法、ジェネリック検出方法、ブックマーク方法、スマートスキャン方法、スケルトン検出方法、ヒューリスティックス分析、ウイルス固有の検出、及び／又は任意の他の好適なマルウェアスキャンプロセスが挙げられる。
【００３９】
スキャンモジュール１０８は、様々な方法で、アプリケーション２０８をスキャンすることができる。例えば、スキャンモジュール１０８は、アプリケーションインストールエージェント２１０がアプリケーション２０８をダウンロードする間に、アプリケーション２０８を識別することができる。いくつかの実施形態において、スキャンモジュール１０８は、アプリケーションインストールエージェント２１０がアプリケーション２０８を完全にダウンロードした後に、アプリケーション２０８をスキャンすることができる。少なくとも１つの実施例において、スキャンモジュール１０８は、アプリケーションインストールエージェント２１０がアプリケーション２０８をインストールしようとする試みに応答して、アプリケーション２０８をスキャンすることができる。様々な実施例において、スキャンモジュール１０８は、識別モジュール１０６がアプリケーション２０８を識別した直後に、アプリケーション２０８をスキャンすることができる。
【００４０】
いくつかの実施形態によると、スキャンモジュール１０８は、シグネチャマッチング方法を使用して、アプリケーション２０８をスキャンすることができる。これらの実施形態において、スキャンモジュール１０８は、マルウェアシグネチャデータベース１２０に記憶されたマルウェアシグネチャなどの既知のマルウェアシグネチャに対するマッチを見つけるために、アプリケーション２０８をスキャンすることができる。
【００４１】
図３に例証されるように、工程３０８で、本明細書に記載されるシステムのうちの１つ以上は、スキャンに基づいて、アプリケーションがマルウェアを含むと判定することができる。例えば、判定モジュール１１０は、アプリケーション２０８のスキャンに基づいて、アプリケーション２０８がマルウェアを含むと判定することができる。
【００４２】
本明細書にユーザとして、用語「マルウェア」は、一般に、任意のタイプ又は形態のコード、スクリプト、アプリケーション、ソフトウェアモジュール、プロセス、並びに／又は一般に敵対的な、侵入的な、安全でない、望ましくない、及び／又は不正な方法で挙動するように構成された任意の他のタイプのコンピュータ実行可能命令を指す。例えば、マルウェアは、機密データ又は個人データを収集するスパイウェアプログラムをスマートフォンに含むことができる。別の例において、マルウェアは、例えばファイルを削除するか、又はシステムプロセスを破壊するなどの不正機能を実施することによってコンピュータの動作を混乱させようと試みる、不正コンピュータウイルスを含み得る。マルウェアの一般的な例としては、限定することなく、コンピュータウイルス、ランサムウェア、ワーム、トロイの木馬、ルートキット、キーロガー、ダイアラー、スパイウェア、アドウェア、偽セキュリティソフトウェア、不正ブラウザヘルパオブジェクト（ＢＨＯ）、及び／又は任意の好適なタイプ若しくは形態のマルウェアが挙げられる。
【００４３】
判定モジュール１１０は、様々な方法で、アプリケーション２０８がマルウェアを含むと判定することができる。例えば、判定モジュール１１０は、アプリケーション２０８内の任意のコードが、マルウェアシグネチャデータベース１２０に記憶されているものなどの既知のマルウェアシグネチャに類似又はマッチする場合に、アプリケーション２０８がマルウェアを含むと判定することができる。いくつかの実施形態において、判定モジュール１１０は、アプリケーション２０８の少なくとも１つのコンピュータ実行可能命令がマルウェアシグネチャにマッチした場合に、アプリケーション２０８がマルウェアを含むと判定することができる。いくつかの実施例において、判定モジュール１１０は、アプリケーション２０８自体がマルウェアプログラムであると判定することができる。少なくとも１つの実施例において、判定モジュール１１０は、アプリケーション２０８の任意の一部又は一部分がマルウェアであるかどうかにかかわらず、アプリケーション２０８の任意の一部又は一部分がマルウェアであると疑われる場合に、アプリケーション２０８がマルウェアを含むと判定することができる。例えば、判定モジュール１１０は、アプリケーション２０８がマルウェアを含むという、情報に基づく「推測」又は判定を行うために、ヒューリスティックアルゴリズムを使用することができる。判定モジュール１１０は、任意の他の好適な方法で、アプリケーション２０８がマルウェアを含むと判定することができる。
【００４４】
図３に例証されるように、工程３１０で、本明細書に記載されるシステムのうちの１つ以上は、アプリケーションがマルウェアを含むという判定に応答して、セキュリティアクションを実施することができる。例えば、セキュリティモジュール１１２は、モバイルコンピューティングデバイス２０２の一部として、セキュリティアクションを実施することができる。
【００４５】
本明細書で使用するとき、句「セキュリティアクション」は、本開示を参照して使用されるときに、一般に、モバイルコンピューティングデバイスのセキュリティを向上させるためにソフトウェアモジュール（セキュリティモジュール１１２など）によってなされる任意の工程を指す。例えば、アンチマルウェアシステムは、ファイルがマルウェアを含むと判定した後に、ファイルを隔離しようと試みることによって、セキュリティアクションを実施することができる。セキュリティアクションの例としては、限定することなく、セキュリティログを作成すること、マルウェアを含むファイルを隔離又は削除すること、モバイルデバイスに検出されたマルウェアに関して該デバイスのユーザに通知すること、マルウェアのインストールをブロックすること、及び／又はモバイルデバイスのセキュリティを向上させようと試みる任意の他の好適な工程若しくはアクションが挙げられる。
【００４６】
セキュリティモジュール１１２は、判定モジュール１１０が、アプリケーション２０８がマルウェアを含むと判定したときに、様々なセキュリティアクションを実施することができる。例えば、セキュリティモジュール１１２は、アプリケーション２０８を隔離又は削除することができる。別の実施例において、セキュリティモジュール１１２は、モバイルコンピューティングデバイス２０２のユーザに、アプリケーション２０８がマルウェアを含むと警告することができる。いくつかの実施形態において、セキュリティモジュール１１２は、アプリケーション２０８に関する情報をセキュリティログに記憶することができる。様々な実施形態において、セキュリティモジュール１１２は、セキュリティアクションの組み合わせを実施することができる。例えば、セキュリティモジュール１１２は、アプリケーション２０８を隔離することができ、次いで、モバイルコンピューティングデバイス２０２のユーザに、アプリケーション２０８がマルウェアを含むと通知することができる。
【００４７】
少なくとも１つの実施例において、セキュリティモジュール１１２は、アプリケーション２０８のインストールをブロックすることができる。例えば、セキュリティモジュール１１２は、アプリケーションインストールエージェント２１０がアプリケーション２０８をモバイルコンピューティングデバイス２０２にインストールしようとする試みをブロックすることができる。別の実施例において、セキュリティモジュール１１２は、アプリケーションインストールエージェント２１０が、アプリケーション２０８をインストールしようと試みることさえも防止することができる。
【００４８】
上で簡潔に述べられるように、方法３００は、スマートフォンに記憶されたアンチマルウェアシステムに組み込むことができる。図４のシステム４００は、モジュール１０２の全てで構成されており、かつスマートフォン４０２に記憶されたアンチマルウェアシステム４１２の例示的な例証である。この例証において、アンチマルウェアシステム４１２は、監視エージェント４１４と、スキャンエージェント４１６とを含む。スマートフォン４０２のユーザが、アプリケーションストアクライアント４１０を起動しようと試みたときに、監視エージェント４１４は、その試みをリダイレクトし、アプリケーションストアクライアント４１０を、監視エージェント４１４が監視することができるプロセスで起動することができる。こうすることによって、監視エージェント４１４は、音楽アプリケーション４０８をダウンロード及びインストールしようと試みるなどの、アプリケーションストアクライアント４１０から送信される、及び／又はそれによって受信される通信を傍受することができる。
【００４９】
この例証において、監視エージェント４１４は、アプリケーションストアクライアント４１０の入力／出力プロセスをフックすることができ、したがって、アプリケーションストアクライアント４１０が、ネットワーク４０４を介して、アプリケーションストアサーバ４０６から音楽アプリケーション４０８をダウンロードしていることを検出することができる。監視エージェント４１４は、音楽アプリケーション４０８のファイルパスを識別し、スキャンエージェント４１６に提供し、次いで、スキャンエージェント４１６に音楽アプリケーション４０８をスキャンするように命令することができる。本実施例において、スキャンエージェント４１６は、ファイルの場所を特定するためにファイルパスを使用し、次いで、シグネチャマッチスキャン方法を使用することによって、ファイルがマルウェアを含むかどうかを判定するように構成されたマルウェアスキャンモジュールとすることができる。
【００５０】
次いで、スキャンエージェント４１６は、（音楽アプリケーション４０８がダウンロードされている間に、又は音楽アプリケーション４０８が完全にダウンロードされた後に）音楽アプリケーション４０８をスキャンすることができ、そして、音楽アプリケーション４０８がマルウェアを含むと判定することができる。この時点で、スキャンエージェント４１６は、アンチマルウェアシステム４１２に、アプリケーション４０８がマルウェアを含むと通知することができる。それに応答して、アンチマルウェアシステム４１２は、アプリケーションストアクライアント４１０が音楽アプリケーション４０８をインストールしようとする任意の試みをブロックすることができる。アンチマルウェアシステム４１２は、セキュリティログにおけるインシデントを報告し、次いで、スマートフォン４０２のユーザに、アプリケーション４０８がマルウェアを含むと通知することもできる。
【００５１】
図３の方法３００に関連して上で説明されるように、アプリケーションストアクライアントは、マルウェアについてアプリケーションをスキャンしてしまう前にアプリケーションをモバイルデバイスにインストールすることによって、モバイルデバイスのセキュリティを危殆化し得る。いくつかのソリューションは、インストール直後にアプリケーションをスキャンすることによってこの問題に対処しようと試みることができるが、該ソリューションは、インストールが短時間であったときでさえも、マルウェアがモバイルデバイスのセキュリティを著しく危殆化することができるという、潜在的に深刻な問題に対処することができない。
【００５２】
本開示は、アプリケーションがモバイルデバイスにインストールされる前に、マルウェアについてアプリケーションをスキャンすることによって、この問題を解決することができる。具体的には、アプリケーションストアクライアントの入力／出力をフックし、アプリケーションを識別し、次いで、マルウェアについてアプリケーションをスキャンすることによって、本明細書に記載されるシステム及び方法は、マルウェアがモバイルデバイスにインストールされる前にマルウェアを検出することができ、したがって、多数の潜在的に深刻なセキュリティ問題を防止する。
【００５３】
図５は、本明細書に記載及び／又は例証される実施形態のうちの１つ以上を実装することができる例示的なコンピューティングシステム５１０のブロック図である。例えば、コンピューティングシステム５１０の全て又は一部は、単独で又は他の要素と組み合わせて、（図３に例証される工程のうち１つ以上などの）本明細書に記載される工程のうち１つ以上を実施してもよく、かつ／又はそれを実施するための手段であってもよい。コンピューティングシステム５１０の全て又は一部はまた、本明細書に記載及び／若しくは例証される他の任意の工程、方法、若しくは処理を実施してもよく、かつ／又はそれを実施するための手段であってもよい。
【００５４】
コンピューティングシステム５１０は、コンピュータ可読命令を実行することが可能な任意のシングル若しくはマルチプロセッサのコンピューティングデバイス又はシステムを幅広く表す。コンピューティングシステム５１０の例としては、限定することなく、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、ハンドヘルドデバイス、又は任意の他のコンピューティングシステム若しくはデバイスが挙げられる。その最も基本的な構成において、コンピューティングシステム５１０は、少なくとも１つのプロセッサ５１４及びシステムメモリ５１６を含んでもよい。
【００５５】
プロセッサ５１４は一般に、データの処理又は命令の解釈及び実行が可能な任意のタイプ又は形態の物理的処理ユニット（例えば、ハードウェア実装型中央処理ユニット）を表す。ある特定の実施形態では、プロセッサ５１４は、ソフトウェアアプリケーション又はモジュールから命令を受信することができる。これらの命令は、プロセッサ５１４に、本明細書に記載及び／又は例証される例示的な実施形態のうちの１つ以上の機能を実施させることができる。
【００５６】
システムメモリ５１６は一般に、データ及び／又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形態の揮発性又は不揮発性記憶デバイス若しくは媒体を表す。システムメモリ５１６の例としては、限定することなく、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられる。必須ではないが、ある特定の実施形態において、コンピューティングシステム５１０は、揮発性メモリユニット（例えば、システムメモリ５１６など）、及び不揮発性記憶デバイス（例えば、以下で詳細に説明されるような一次記憶デバイス５３２など）の両方を含むことができる。一実施例では、図１のモジュール１０２のうちの１つ以上が、システムメモリ５１６にロードされてもよい。
【００５７】
ある特定の実施形態では、例示的なコンピューティングシステム５１０はまた、プロセッサ５１４及びシステムメモリ５１６に加えて、１つ以上の構成要素又は要素を含んでもよい。例えば、図５に例証されるように、コンピューティングシステム５１０は、メモリコントローラ５１８、入力／出力（Ｉ／Ｏ）コントローラ５２０、及び通信インターフェース５２２を含んでもよく、それらはそれぞれ通信基盤５１２を介して相互接続されてもよい。通信基盤５１２は一般に、コンピューティングデバイスの１つ以上の構成要素間の通信を容易にすることができる、任意のタイプ若しくは形態の基盤を表す。通信基盤５１２の例としては、限定することなく、通信バス（産業標準アーキテクチャ（ＩＳＡ）、周辺装置相互接続（ＰＣＩ）、ＰＣＩエクスプレス（ＰＣＩｅ）、又は類似のバスなど）、及びネットワークが挙げられる。
【００５８】
メモリコントローラ５１８は、一般に、メモリ若しくはデータを扱うか、又はコンピューティングシステム５１０の１つ以上の構成要素間の通信を制御することができる、任意のタイプ又は形態のデバイスを表す。例えば、ある特定の実施形態では、メモリコントローラ５１８は、通信基盤５１２を介して、プロセッサ５１４、システムメモリ５１６、及びＩ／Ｏコントローラ５２０の間の通信を制御してもよい。
【００５９】
Ｉ／Ｏコントローラ５２０は、一般に、コンピューティングデバイスの入出力機能を調整及び／又は制御することができる、任意のタイプ又は形態のモジュールを表す。例えば、ある特定の実施形態において、Ｉ／Ｏコントローラ５２０は、プロセッサ５１４、システムメモリ５１６、通信インターフェース５２２、ディスプレイアダプタ５２６、入力インターフェース５３０、及び記憶インターフェース５３４などの、コンピューティングシステム５１０の１つ以上の要素間のデータの転送を制御するか又は容易にすることができる。
【００６０】
通信インターフェース５２２は、例示的なコンピューティングシステム５１０と１つ以上の追加のデバイスとの間の通信を容易にすることができる、任意のタイプ若しくは形態の通信デバイス又はアダプタを広く表す。例えば、ある特定の実施形態において、通信インターフェース５２２は、コンピューティングシステム５１０と、追加のコンピューティングシステムを含むプライベート又はパブリックネットワークネットワークとの間の通信を容易にすることができる。通信インターフェース５２２の例としては、限定することなく、有線ネットワークインターフェース（ネットワークインターフェースカードなど）、無線ネットワークインターフェース（無線ネットワークインターフェースカードなど）、モデム、及び他の任意の好適なインターフェースが挙げられる。少なくとも１つの実施形態では、通信インターフェース５２２は、インターネットなどのネットワークへの直接リンクを介して、リモートサーバへの直接接続を提供してもよい。通信インターフェース５２２はまた、例えば、ローカルエリアネットワーク（イーサネット（登録商標）ネットワークなど）、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラー電話接続、衛星データ接続、又は他の任意の好適な接続を通した、かかる接続を間接的に提供してもよい。
【００６１】
ある特定の実施形態では、通信インターフェース５２２はまた、外部バス又は通信チャネルを介して、コンピューティングシステム５１０と１つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成されたホストアダプタを表してもよい。ホストアダプタの例としては、限定することなく、小型コンピュータシステムインターフェース（ＳＣＳＩ）ホストアダプタ、ユニバーサルシリアルバス（ＵＳＢ）ホストアダプタ、米国電気電子学会（ＩＥＥＥ）１３９４ホストアダプタ、アドバンストテクノロジーアタッチメント（ＡＴＡ）、パラレルＡＴＡ（ＰＡＴＡ）、シリアルＡＴＡ（ＳＡＴＡ）、及び外部ＳＡＴＡ（ｅＳＡＴＡ）ホストアダプタ、ファイバーチャネルインターフェースアダプタ、イーサネット（登録商標）アダプタなどが挙げられる。通信インターフェース５２２はまた、コンピューティングシステム５１０が分散型又はリモートコンピューティングに関与することを可能にしてもよい。例えば、通信インターフェース５２２は、実行のためにリモートデバイスから命令を受信するか又はリモートデバイスに命令を送信してもよい。
【００６２】
図５に例証されるように、コンピューティングシステム５１０は、ディスプレイアダプタ５２６を介して通信基盤５１２に連結される少なくとも１つのディスプレイデバイス５２４も含んでもよい。ディスプレイデバイス５２４は一般に、ディスプレイアダプタ５２６によって転送される情報を視覚的に表示することができる、任意のタイプ若しくは形態のデバイスを表す。同様に、ディスプレイアダプタ５２６は、一般に、ディスプレイデバイス５２４に表示するために、通信基盤５１２から（又は当該技術分野において既知であるようにフレームバッファから）グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形態のデバイスを表す。
【００６３】
図５に例証されるように、例示的なコンピューティングシステム５１０はまた、入力インターフェース５３０を介して通信基盤５１２に連結される少なくとも１つの入力デバイス５２８を含んでもよい。入力デバイス５２８は、一般に、コンピュータ又は人間のいずれかが生成した入力を、例示的なコンピューティングシステム５１０に提供することができる、任意のタイプ若しくは形態の入力デバイスを表す。入力デバイス５２８の例としては、限定されないが、キーボード、ポインティングデバイス、音声認識デバイス、又は他の任意の入力デバイスが挙げられる。
【００６４】
図５に例証されるように、例示的なコンピューティングシステム５１０はまた、記憶インターフェース５３４を介して通信基盤５１２に連結される、一次記憶デバイス５３２及びバックアップ記憶デバイス５３３を含んでもよい。記憶デバイス５３２及び５３３は、一般に、データ及び／又は他のコンピュータ可読命令を記憶することができる、任意のタイプ若しくは形態の記憶デバイス又は媒体を表す。例えば、記憶デバイス５３２及び５３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、ソリッドステートドライブ、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどであってもよい。記憶装置インターフェース５３４は、一般に、記憶デバイス５３２及び５３３とコンピューティングシステム５１０の他の構成要素との間でデータを転送するための、任意のタイプ又は形態のインターフェース又はデバイスを表す。一実施例において、図１のマルウェアシグネチャデータベース１２０は、一次記憶デバイス５３２に記憶され得る。
【００６５】
ある特定の実施形態において、記憶デバイス５３２及び５３３は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を記憶するように構成された取り外し可能な記憶ユニットから読み取り、かつ／又はそれに書き込むように構成されてもよい。好適な取り外し可能な記憶ユニットの例として、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられるが、これらに限定されない。記憶デバイス５３２及び５３３はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令が、コンピューティングシステム５１０内にロードされることを可能にするための他の同様の構造体又はデバイスを含んでもよい。例えば、記憶デバイス５３２及び５３３は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み取り、かつこれを書き込むように構成されてもよい。記憶デバイス５３２及び５３３はまた、コンピューティングシステム５１０の一部であってもよく、又は他のインターフェースシステムを介してアクセスされる別々のデバイスであってもよい。
【００６６】
多くの他のデバイス又はサブシステムをコンピューティングシステム５１０に接続することができる。反対に、図５に例証される構成要素及びデバイスの全てが、本明細書で説明及び／又は例証される実施形態を実践するために存在する必要があるわけではない。上で言及されるデバイス及びサブシステムはまた、図５に示されるものと異なる方法で相互接続されてもよい。コンピューティングシステム５１０はまた、任意の数のソフトウェア、ファームウェア、及び／又はハードウェアの構成を用いることもできる。例えば、本明細書で開示される例示的な実施形態のうちの１つ以上は、コンピュータ可読媒体上に、コンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される）として符号化することができる。本明細書で使用するとき、「コンピュータ可読媒体」という句は一般に、コンピュータ可読命令を記憶又は保有することができる、任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、限定することなく、搬送波などの伝送型媒体、並びに磁気記憶媒体（例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク）、光学記憶媒体（例えば、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、及びブルーレイ（ＢＬＵ−ＲＡＹ）ディスク）、電子記憶媒体（例えば、ソリッドステートドライブ及びフラッシュメディア）、並びに他の分散システムなどの非一時的媒体が挙げられる。
【００６７】
コンピュータプログラムを含むコンピュータ可読媒体は、コンピューティングシステム５１０にロードされてもよい。次に、コンピュータ可読媒体に記憶されたコンピュータプログラムの全て又は一部は、システムメモリ５１６に、並びに／又は記憶デバイス５３２及び５３３の様々な部分に記憶されてもよい。プロセッサ５１４によって実行されると、コンピューティングシステム５１０にロードされたコンピュータプログラムは、プロセッサ５１４に、本明細書で説明及び／又は例証される例示的な実施形態のうちの１つ以上の機能を行わせてもよく、かつ／又はそれらを行うための手段であってもよい。加えて、又は代替的に、本明細書に記載及び／又は例証される例示的な実施形態の１つ以上は、ファームウェア及び／又はハードウェアに実装されてもよい。例えば、コンピューティングシステム５１０は、本明細書に開示される例示的な実施形態の１つ以上を実装するように適合された、特定用途向け集積回路（ＡＳＩＣ）として構成されてもよい。
【００６８】
図６は、クライアントシステム６１０、６２０、及び６３０、並びにサーバ６４０及び６４５がネットワーク６５０に連結されていてもよい、例示的なネットワークアーキテクチャ６００のブロック図である。上で詳述されるように、ネットワークアーキテクチャ６００の全て又は一部は、単独で又は他の要素と組み合わせて、本明細書で開示される工程のうちの１つ以上（図３に例証される工程のうちの１つ以上など）を行ってもよく、及び／又はそれを行うための手段であってもよい。ネットワークアーキテクチャ６００の全て又は一部はまた、本開示に記載される他の工程及び特性を実施するために使用されてもよく、かつ／又はそれを実施するための手段であってもよい。
【００６９】
クライアントシステム６１０、６２０、及び６３０は一般に、図５の例示的なコンピューティングシステム５１０などの、任意のタイプ若しくは形態のコンピューティングデバイス又はシステムを表す。同様に、サーバ６４０及び６４５は一般に、様々なデータベースサービスを提供し、かつ／又はある特定のソフトウェアアプリケーションを実行するように構成されたアプリケーションサーバ又はデータベースサーバなどの、コンピューティングデバイス又はシステムを表す。ネットワーク６５０は一般に、例えばイントラネット、ＷＡＮ、ＬＡＮ、ＰＡＮ、又はインターネットを含む、任意の電気通信又はコンピュータネットワークを表す。一実施例において、クライアントシステム６１０、６２０、及び／若しくは６３０、並びに／又はサーバ６４０及び／若しくは６４５は、図１からのシステム１００の全て又は一部を含んでもよい。
【００７０】
図６に例証されるように、１つ以上の記憶デバイス６６０（１）〜（Ｎ）は、サーバ６４０に直接取り付けられてもよい。同様に、１つ以上の記憶デバイス６７０（１）〜（Ｎ）は、サーバ６４５に直接取り付けられてもよい。記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）は、一般に、データ及び／又は他のコンピュータ可読命令を記憶することができる、任意のタイプ若しくは形態の記憶デバイス又は媒体を表す。ある特定の実施形態において、記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）は、ネットワークファイルシステム（ＮＦＳ）、サーバメッセージブロック（ＳＭＢ）、又は共通インターネットファイルシステム（ＣＩＦＳ）などの様々なプロトコルを使用して、サーバ６４０及び６４５と通信するように構成されたネットワーク接続記憶（ＮＡＳ）デバイスを表すことができる。
【００７１】
サーバ６４０及び６４５はまた、ストレージエリアネットワーク（ＳＡＮ）ファブリック６８０に接続することもできる。ＳＡＮファブリック６８０は、一般に、複数の記憶デバイス間の通信を容易にすることができる、任意のタイプ若しくは形態のコンピュータネットワーク又はアーキテクチャを表す。ＳＡＮファブリック６８０は、サーバ６４０及び６４５と、複数の記憶デバイス６９０（１）〜（Ｎ）及び／又はインテリジェント記憶アレイ６９５との間の通信を容易にすることができる。ＳＡＮファブリック６８０はまた、記憶デバイス６９０（１）〜（Ｎ）及びインテリジェント記憶アレイ６９５が、クライアントシステム６１０、６２０、及び６３０にローカルで取り付けられたデバイスとして現れるような方式で、ネットワーク６５０並びにサーバ６４０及び６４５を介して、クライアントシステム６１０、６２０、及び６３０と、デバイス６９０（１）〜（Ｎ）及び／又はアレイ６９５との間の通信を容易にすることもできる。記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）と同様に、記憶デバイス６９０（１）〜（Ｎ）及びインテリジェント記憶アレイ６９５は、一般に、データ及び／又は他のコンピュータ可読命令を記憶することができる任意のタイプ又は形態の記憶デバイス又は媒体を表す。
【００７２】
ある特定の実施形態において、図５の例示的なコンピューティングシステム５１０を参照して、図５の通信インターフェース５２２などの通信インターフェースは、それぞれのクライアントシステム６１０、６２０、及び６３０とネットワーク６５０との間を接続するように使用されてもよい。クライアントシステム６１０、６２０、及び６３０は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ６４０又は６４５上の情報にアクセスすることが可能であり得る。そのようなソフトウェアは、クライアントシステム６１０、６２０、及び６３０が、サーバ６４０、サーバ６４５、記憶デバイス６６０（１）〜（Ｎ）、記憶デバイス６７０（１）〜（Ｎ）、記憶デバイス６９０（１）〜（Ｎ）、又はインテリジェント記憶アレイ６９５によってホストされるデータにアクセスすることを可能にすることができる。図６は、データを送受信するための（インターネットなどの）ネットワークの使用を示しているが、本明細書に記載及び／又は例証される実施形態は、インターネット、又は任意の特定のネットワークベースの環境に限定されない。
【００７３】
少なくとも１つの実施形態において、本明細書に開示される例示的な実施形態のうち１つ以上の全て又は一部は、コンピュータプログラムとしてコード化され、サーバ６４０、サーバ６４５、記憶デバイス６６０（１）〜（Ｎ）、記憶デバイス６７０（１）〜（Ｎ）、記憶デバイス６９０（１）〜（Ｎ）、インテリジェント記憶アレイ６９５、又はこれらの任意の組み合わせ上にロードされ、これらによって実行されてもよい。本明細書に開示される例示的な実施形態のうち１つ以上の全て又は一部はまた、コンピュータプログラムとしてコード化され、サーバ６４０に記憶され、サーバ６４５によって作動し、ネットワーク６５０上でクライアントシステム６１０、６２０、及び６３０に配信されてもよい。
【００７４】
上で詳述されるように、コンピューティングシステム５１０、及び／又はネットワークアーキテクチャ６００の１つ以上の構成要素は、単独で、又は他の要素と組み合わせて、インストール前にモバイルデバイス上でマルウェアを検出するための例示的な方法の１つ以上の工程を行ってもよく、及び／又はそれを行うための手段であってもよい。
【００７５】
前述の開示は、特定のブロック図、フローチャート、及び実施例を使用して様々な実施形態を記載しているが、本明細書で説明及び／又は例証される各ブロック図の構成要素、フローチャートの工程、動作、及び／又は構成要素は、個別にかつ／又は集合的に、広範なハードウェア、ソフトウェア、又はファームウェア（若しくはそれらの任意の組み合わせの）構成を使用して実装することができる。それに加えて、他の多くのアーキテクチャが同じ機能性を達成するように実装可能であるので、他の構成要素内に含有される構成要素のあらゆる開示は、本質的に例示と見なされるべきである。
【００７６】
いくつかの実施例において、図１の例示的なシステム１００の全て又は一部は、クラウドコンピューティング環境又はネットワークベースの環境の一部を表すことができる。クラウドコンピューティング環境は、インターネットを介して、様々なサービス及びアプリケーションを提供することができる。これらのクラウドベースのサービス（例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしての基盤など）は、ウェブブラウザ又は他のリモートインターフェースを通じてアクセス可能であり得る。本明細書に記載される様々な機能は、リモートデスクトップの環境又は任意の他のクラウドベースのコンピューティング環境を介して提供されてもよい。
【００７７】
様々な実施形態において、図１の例示的なシステム１００の全て又は一部は、クラウドベースのコンピューティング環境内でのマルチテナンシーを容易にすることができる。換言すれば、本明細書に記載されるソフトウェアモジュールは、本明細書に記載される機能の１つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム（例えば、サーバ）を構成してもよい。例えば、本明細書で説明されるソフトウェアモジュールのうちの１つ以上は、２つ以上のクライアント（例えば、顧客）が、サーバ上で作動しているアプリケーションを共有することを可能にするようにサーバをプログラムすることができる。このようにプログラムされたサーバは、複数の顧客（すなわち、テナント）の間で、アプリケーション、オペレーティングシステム、処理システム、及び／又は記憶システムを共有することができる。本明細書に記載されるモジュールのうち１つ以上はまた、ある顧客が別の顧客のデータ及び／又は設定情報にアクセスすることができないように顧客ごとに、マルチテナントアプリケーションのデータ及び／又は設定情報を分割してもよい。
【００７８】
様々な実施形態によると、図１の例示的なシステム１００の全て又は一部は、仮想環境内で実装することができる。例えば、本明細書に記載されるモジュール及び／又はデータは、仮想機械内に常駐及び／又はそこで実行してもよい。本明細書で使用するとき、「仮想機械」という句は、一般に、仮想機械マネージャ（例えば、ハイパーバイザ）によってコンピューティングハードウェアから抽出される、任意のオペレーティングシステム環境を指す。加えて、又は代替的に、本明細書に記載されるモジュール及び／又はデータは、仮想化層内で常駐及び／又は実行してもよい。本明細書で使用するとき、「仮想化層」という句は、一般に、オペレーティングシステム環境にオーバーレイする、並びに／あるいはそこから抽出される、任意のデータ層及び／又はアプリケーション層を指す。仮想化層は、基礎となる基本オペレーティングシステムの一部であるかのように仮想化層を提示する、ソフトウェア仮想化ソリューション（例えば、ファイルシステムフィルタ）によって管理されてもよい。例えば、ソフトウェア仮想化ソリューションは、最初に基本ファイルシステム及び／又はレジストリ内の場所に方向付けられる呼出しを、仮想化層内の場所にリダイレクトしてもよい。
【００７９】
いくつかの実施例において、図１の例示的なシステム１００の全て又は一部は、モバイルコンピューティング環境の一部を表すことができる。モバイルコンピューティング環境は、携帯電話、タブレットコンピュータ、電子ブックリーダー、携帯情報端末、ウェアラブルコンピューティングデバイス（例えば、ヘッドマウントディスプレイを備えたコンピューティングデバイス、スマートウォッチなど）などを含む、広範なモバイルコンピューティングデバイスによって実装されてもよい。いくつかの実施例において、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間での１つのみのフォアグラウンドアプリケーションの提示、リモート管理特性、タッチスクリーン特性、位置及び移動データ（例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される）、システムレベルの構成への修正を制限する、及び／又は第３者のソフトウェアが他のアプリケーションの挙動を検査する能力を限定する、アプリケーションのインストールを制限するように（例えば、認可されたアプリケーションストアからのみ生じるように）制御するなど、制限されたプラットフォームを含む、１つ以上の個別の特性を有することができる。本明細書で説明される様々な機能は、モバイルコンピューティング環境に対して提供され得る、及び／又はモバイルコンピューティング環境と相互作用し得る。
【００８０】
加えて、図１の例示的なシステム１００の全て又は一部は、情報管理のための１つ以上のシステムの部分を表してもよく、それと相互作用してもよく、それによって生成されるデータを消費してもよく、かつ／又はそれによって消費されるデータを生成してもよい。本明細書で使用するとき、「情報管理」という句は、データの保護、組織化、及び／又は記憶を指し得る。情報管理のためのシステムの例としては、限定することなく、記憶システム、バックアップシステム、アーカイブシステム、複製システム、高可用性システム、データ検索システム、仮想化システムなどが挙げられ得る。
【００８１】
いくつかの実施形態では、図１の例示的なシステム１００の全て又は一部は、情報セキュリティのための１つ以上のシステムの部分を表してもよく、それによって保護されるデータを生成してもよく、かつ／又はそれと通信してもよい。本明細書で使用するとき、「情報セキュリティ」という句は、保護されたデータへのアクセスの制御を指し得る。情報セキュリティのためのシステムの例としては、限定することなく、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、本人認証システム、アクセス制御システム、暗号化システム、ポリシー遵守システム、侵入検出及び防止システム、電子証拠開示システムなどが挙げられ得る。
【００８２】
いくつかの実施例によると、図１の例示的なシステム１００の全て又は一部は、エンドポイントセキュリティのための１つ以上のシステムの部分を表してもよく、それと通信してもよく、かつ／又はそれから保護を受けてもよい。本明細書で使用するとき、「エンドポイントセキュリティ」という句は、権限がない及び／又は違法な使用、アクセス、並びに／あるいは制御からの、エンドポイントシステムの保護を指し得る。エンドポイント保護のためのシステムの例としては、限定することなく、アンチマルウェアシステム、ユーザ認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどが挙げられ得る。
【００８３】
本明細書に記載及び／又は例証されるプロセスパラメータ及び工程の順序は、単なる例として与えられるものであり、所望に応じて変更することができる。例えば、本明細書に例証及び／又は記載される工程は特定の順序で示され又は考察され得るが、これらの工程は、必ずしも例証又は考察される順序で実施される必要はない。本明細書に記載及び／又は例証される様々な例示的な方法はまた、本明細書に記載若しくは例証される工程の１つ以上を省略するか、又は開示されるものに加えて追加の工程を含んでもよい。
【００８４】
様々な実施形態を、完全に機能的なコンピューティングシステムの文脈において、本明細書に記載及び／又は例証してきたが、これらの例示的な実施形態の１つ以上は、実際に配布を実行するために使用されるコンピュータ可読媒体の特定のタイプにかかわらず、様々な形態のプログラム製品として配布されてもよい。本明細書で開示される実施形態はまた、ある特定のタスクを実施するソフトウェアモジュールを使用して実装されてもよい。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体に、又はコンピューティングシステムに記憶することができる、スクリプト、バッチ、又は他の実行可能ファイルを含んでもよい。いくつかの実施形態において、これらのソフトウェアモジュールは、本明細書で開示される例示的な実施形態のうちの１つ以上を行うようにコンピューティングシステムを構成することができる。
【００８５】
更に、本明細書で説明されるモジュールのうちの１つ以上は、データ、物理デバイス、及び／又は物理デバイスの表現を１つの形態から別の形態へと変換することができる。例えば、本明細書に列挙されるモジュールのうちの１つ以上は、監視エージェントがアプリケーションインストールエージェントプロセスを監視することができるように、アプリケーションインストールエージェントプロセスを再起動することによって、アプリケーションインストールエージェントプロセスを変換することができる。加えて、又は代替的に、本明細書に列挙されるモジュールのうちの１つ以上は、コンピューティングデバイス上で実行し、コンピューティングデバイスにデータを記憶し、及び／又は別様にコンピューティングデバイスと相互作用することによって、プロセッサ、揮発性メモリ、不揮発性メモリ、及び／又は物理コンピューティングデバイスの任意の他の一部を、１つの形態から別の形態へと変換することができる。
【００８６】
前述の記述は、他の当業者が本明細書に開示される例示的な実施形態の様々な態様を最良に利用することができるように提供されてきた。この例示的な記述は、網羅的であることを意図するものではなく、又は開示される任意の正確な形態に限定することを意図するものではない。本開示の趣旨及び範囲から逸脱することなく、多くの変更例及び変形例が可能である。本明細書で開示される実施形態は、あらゆる点で例示的であり、限定的ではないものと見なされるべきである。本開示の範囲を決定する際に、添付の特許請求の範囲及びそれらの等価物を参照するべきである。
【００８７】
別途記載のない限り、用語「に接続される」及び「に連結される」（並びにこれらの派生語）は、本明細書及び特許請求の範囲で使用される際、直接的接続と間接的接続（すなわち、他の要素又は構成要素を介した）との両方を許容するものとして解釈することができる。更に、用語「１つの（a）」又は「１つの（an）」は、本明細書及び特許請求の範囲で使用される際、「のうち少なくとも１つ」を意味するものとして解釈することができる。最後に、簡潔にするため、用語「含む」及び「有する」（並びにそれらの派生語）は、本明細書及び特許請求の範囲で使用される際、単語「備える」と互換性があり、同じ意味を有する。
【図１】
2017514205.tif 000003
【図２】
2017514205.tif 000004
【図３】
2017514205.tif 000005
【図４】
2017514205.tif 000006
【図５】
2017514205.tif 000007
【図６】
2017514205.tif 000008
【手続補正書】
【提出日】平成28年8月28日(2016.8.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
モバイルデバイス上でインストール前にマルウェアを検出するためのコンピュータ実装方法であって、前記方法の少なくとも一部が、少なくとも１つのプロセッサを備えるモバイルコンピューティングデバイスによって実施され、前記方法が、
アプリケーションを前記モバイルコンピューティングデバイスにインストールするアプリケーションインストールエージェントの１つ以上の通信を傍受することと、
前記モバイルコンピューティングデバイス上の監視エージェントによって、前記アプリケーションインストールエージェントを起動しようとする試みを検出することと、
前記監視エージェントによって、前記アプリケーションインストールエージェントを起動しようとする前記試みを中断し、前記監視エージェントが前記アプリケーションインストールエージェントからの通信を傍受することができるように、前記監視エージェントのプロセスとして前記アプリケーションインストールエージェントを再起動することと、
前記１つ以上の傍受された通信に基づいて、前記アプリケーションインストールエージェントによって少なくとも部分的にダウンロードされたアプリケーションを識別することと、
前記アプリケーションの識別に応答して、かつ前記アプリケーションが前記モバイルコンピューティングデバイスにインストールされる前に、マルウェアについて前記アプリケーションをスキャンすることと、
前記スキャンに基づいて、前記アプリケーションがマルウェアを含むと判定することと、
前記アプリケーションがマルウェアを含むという判定に応答して、セキュリティアクションを実施することと、を含む、コンピュータ実装方法。
【請求項２】
前記監視エージェントが、前記アプリケーションインストールエージェントの入力又は出力のうちの少なくとも１つをフックすることによって、前記アプリケーションインストールエージェントからの前記通信を傍受する、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記アプリケーションインストールエージェントの前記１つ以上の通信を傍受することが、リモートサーバから前記アプリケーションをダウンロードするという前記アプリケーションインストールエージェントからの要求を傍受することを含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記アプリケーションインストールエージェントの前記１つ以上の通信を傍受することが、前記アプリケーションを前記モバイルコンピューティングデバイスにインストールするという前記アプリケーションインストールエージェントによる要求を傍受することを含む、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記アプリケーションを識別することが、前記アプリケーションを前記モバイルコンピューティングデバイスにインストールするという前記要求に基づいて、前記アプリケーションのファイルパスを識別することを含む、請求項４に記載のコンピュータ実装方法。
【請求項６】
前記アプリケーションを識別することが、前記ファイルパスを、前記スキャン工程を実施するスキャンエージェントに提供することを更に含む、請求項５に記載のコンピュータ実装方法。
【請求項７】
前記アプリケーションをスキャンすることが、
前記アプリケーションがダウンロードされている間に前記アプリケーションをスキャンすること、
前記アプリケーションが完全にダウンロードされた後に前記アプリケーションをスキャンすること、のうちの少なくとも１つを含む、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記セキュリティアクションを実施することが、前記アプリケーションのインストールをブロックすることを含む、請求項１に記載のコンピュータ実装方法。
【請求項９】
モバイルデバイス上でインストール前にマルウェアを検出するためのシステムであって、
メモリに記憶された傍受モジュールであって、
前記傍受モジュール内の監視エージェントによって、前記アプリケーションインストールエージェントを起動しようとする試みを検出することと、
前記監視エージェントによって、前記アプリケーションインストールエージェントを起動しようとする前記試みを中断し、前記監視エージェントが前記アプリケーションインストールエージェントからの通信を傍受することができるように、前記監視エージェントのプロセスとして前記アプリケーションインストールエージェントを再起動することと、によって、アプリケーションをモバイルコンピューティングデバイスにインストールするアプリケーションインストールエージェントの１つ以上の通信を傍受する、傍受モジュールと、
前記１つ以上の傍受された通信に基づいて、前記アプリケーションインストールエージェントによって少なくとも部分的にダウンロードされたアプリケーションを識別する、メモリに記憶された識別モジュールと、
前記アプリケーションが前記モバイルコンピューティングデバイスにインストールされる前に前記アプリケーションをスキャンする、メモリに記憶されたスキャンモジュールと、
前記スキャンに基づいて、前記アプリケーションがマルウェアを含むと判定する、メモリに記憶された判定モジュールと、
前記アプリケーションがマルウェアを含むという判定に応答して、セキュリティアクションを実施する、メモリに記憶されたセキュリティモジュールと、
前記傍受モジュール、前記識別モジュール、前記スキャンモジュール、前記判定モジュール、及び前記セキュリティモジュールを実行する少なくとも１つの物理プロセッサと、を備える、システム。
【請求項１０】
前記監視エージェントが、前記アプリケーションインストールエージェントの入力又は出力のうちの少なくとも１つをフックすることによって、前記アプリケーションインストールエージェントからの前記通信を傍受する、請求項９に記載のシステム。
【請求項１１】
前記傍受モジュールが、前記アプリケーションを前記モバイルコンピューティングデバイスにインストールするという前記アプリケーションインストールエージェントによる要求を傍受することによって、前記アプリケーションエージェントの前記１つ以上の通信を傍受する、請求項９に記載のシステム。
【請求項１２】
前記識別モジュールが、前記アプリケーションを前記モバイルコンピューティングデバイスにインストールするという前記要求に基づいて、前記アプリケーションのファイルパスを識別することによって、前記アプリケーションを識別する、請求項１１に記載のシステム。
【請求項１３】
前記スキャンモジュールが、前記アプリケーションがダウンロードされている間に前記アプリケーションによってスキャンすることによって、前記アプリケーションをスキャンする、請求項９に記載のシステム。
【請求項１４】
前記スキャンモジュールが、前記アプリケーションが完全にダウンロードされた後に前記アプリケーションをスキャンすることによって、前記アプリケーションをスキャンする、請求項９に記載のシステム。
【請求項１５】
前記セキュリティモジュールが、前記アプリケーションのインストールをブロックすることによって、前記セキュリティアクションを実施する、請求項９に記載のシステム。
【国際調査報告】
2017514205.tif 000009
2017514205.tif 000010
2017514205.tif 000011