(57)【要約】    セキュリティポリシーに基づいてアプリケーション起動を制御するための開示されたコンピュータ実装方法は、（１）アプリケーションランチャーをサンドボックス内にロードすることと、（２）アプリケーションランチャーからアプリケーションを起動することに関連付けられた１つ以上の機能を監視することと、（３）アプリケーションを起動することに関連付けられた機能が、アプリケーションランチャーによって呼び出されたと判定することと、（４）アプリケーションが潜在的に有害であるかどうかを判定するセキュリティポリシーを含むポリシーマネージャにクエリすることと、（５）セキュリティポリシーに基づいて、アプリケーションが潜在的に有害であると判定すると、アプリケーションランチャーがサンドボックスからアプリケーションを起動することを防止するセキュリティアクションを実行することと、を含むことができる。様々な他の方法、システム、及びコンピュータ可読媒体も開示される。  【選択図】図３
2021521563.tif 000002
【特許請求の範囲】
【請求項１】
セキュリティポリシーに基づいてアプリケーション起動を制御するためのコンピュータ実装方法であって、前記方法の少なくとも一部分が、少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実行され、前記方法は、
前記コンピューティングデバイスによって、アプリケーションランチャーをサンドボックス内にロードすることと、
前記コンピューティングデバイスによって、前記アプリケーションランチャーからアプリケーションを起動することに関連付けられた１つ以上の機能を監視することと、
前記コンピューティングデバイスによって、前記アプリケーションを起動することに関連付けられた前記機能が、前記アプリケーションランチャーによって呼び出されたと判定することと、
前記コンピューティングデバイスによって、前記アプリケーションが潜在的に有害であるかどうかを判定するセキュリティポリシーを含むポリシーマネージャにクエリすることと、
前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害であると判定すると、前記アプリケーションランチャーが前記サンドボックスから前記アプリケーションを起動することを防止するセキュリティアクションを、前記コンピューティングデバイスによって実行することと、を含む、方法。
【請求項２】
前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害でないと判定すると、前記アプリケーションランチャーが前記サンドボックスから前記アプリケーションを起動することを可能にするセキュリティアクションを、前記コンピューティングデバイスによって実行することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記コンピューティングデバイスによって、前記アプリケーションランチャーからアプリケーションを起動することに関連付けられた前記１つ以上の機能を監視することが、アプリケーション起動開始機能のために前記アプリケーションランチャーに関連付けられたアクティビティマネージャを監視することを含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記コンピューティングデバイスによって、前記アプリケーションが潜在的に有害であるかどうかを判定する前記セキュリティポリシーを含む前記ポリシーマネージャにクエリすることが、前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害であるかどうかを判定するために、前記ポリシーマネージャを使用して前記アプリケーションをスキャンすることを含む、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記コンピューティングデバイスによって、前記アプリケーションが潜在的に有害であるかどうかを判定する前記セキュリティポリシーを含む前記ポリシーマネージャにクエリすることが、前記アプリケーションが潜在的に有害であるかどうかを判定するために、ブラックリストのための前記ポリシーマネージャにクエリすることを含む、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害であると判定すると、前記アプリケーションランチャーが前記サンドボックスから潜在的に有害なアプリケーションを起動することを防止するための前記セキュリティアクションを、前記コンピューティングデバイスによって実行することが、前記アプリケーションが潜在的に有害であることをアプリケーションランタイムで判定すると、前記アプリケーションが実行されることを阻止することを含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記セキュリティポリシーが、前記アプリケーションの前記起動に関連付けられた時間及び場所のうちの１つ以上に基づく、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記潜在的に有害なアプリケーションが、マルウェア及びグレイウェアのうち少なくとも１つを含む、請求項１に記載のコンピュータ実装方法。
【請求項９】
前記アプリケーションランチャーが、モバイルデバイスアプリケーションランチャーを含む、請求項１に記載のコンピュータ実装方法。
【請求項１０】
セキュリティポリシーに基づいてアプリケーション起動を制御するためのシステムであって、
コンピューティングデバイス上のサンドボックス内にアプリケーションランチャーをロードする、メモリに記憶されたロードモジュールと、
前記アプリケーションランチャーからアプリケーションを起動することに関連付けられた１つ以上の機能を監視する、前記メモリに記憶された監視モジュールと、
前記アプリケーションを起動することに関連付けられた前記機能が前記アプリケーションランチャーによって呼び出されたことを判定する、前記メモリに記憶された判定モジュールと、
前記アプリケーションが潜在的に有害であるかどうかを判定するセキュリティポリシーを含むポリシーマネージャにクエリする、前記メモリに記憶されたクエリモジュールと、
前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害であると判定すると、前記アプリケーションランチャーが前記コンピューティングデバイス上の前記サンドボックスから前記アプリケーションを起動することを防止するセキュリティアクションを実行する、前記メモリに記憶されたセキュリティモジュールと、
前記ロードモジュール、前記監視モジュール、前記判定モジュール、前記クエリモジュール、及び前記セキュリティモジュールを実行する少なくとも１つの物理プロセッサと、を備える、システム。
【請求項１１】
前記セキュリティモジュールが、前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害でないと判定すると、前記アプリケーションランチャーが前記サンドボックスから前記アプリケーションを起動することを可能にするセキュリティアクションを更に実行する、請求項１０に記載のシステム。
【請求項１２】
前記監視モジュールが、アプリケーション起動開始機能のために前記アプリケーションランチャーに関連付けられたアクティビティマネージャを監視することによって、前記アプリケーションランチャーから前記アプリケーションを起動することに関連付けられた前記１つ以上の機能を監視する、請求項１０に記載のシステム。
【請求項１３】
前記クエリモジュールが、前記セキュリティポリシーを含む前記ポリシーマネージャにクエリして、前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害であるかどうかを判定するために前記ポリシーマネージャを使用して前記アプリケーションをスキャンすることによって、前記アプリケーションが潜在的に有害であるかどうかを判定する、請求項１０に記載のシステム。
【請求項１４】
前記クエリモジュールが、前記セキュリティポリシーを含む前記ポリシーマネージャにクエリして、前記アプリケーションが潜在的に有害であるかどうかを判定するためにブラックリストのための前記ポリシーマネージャにクエリすることによって、前記アプリケーションが潜在的に有害であるかどうかを判定する、請求項１０に記載のシステム。
【請求項１５】
前記セキュリティモジュールが、前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害であることをアプリケーションランタイムで判定すると、前記アプリケーションが前記コンピューティングデバイス上で実行されることを阻止することによって、前記アプリケーションが潜在的に有害であると判定すると、前記アプリケーションランチャーが前記コンピューティングデバイス上の前記サンドボックスから前記潜在的に有害なアプリケーションを起動することを防止するための前記セキュリティアクションを実行する、請求項１０に記載のシステム。
【請求項１６】
前記セキュリティポリシーが、前記コンピューティングデバイス上の前記アプリケーションの前記起動に関連付けられた時間及び場所のうちの１つ以上に基づく、請求項１０に記載のシステム。
【請求項１７】
前記潜在的に有害なアプリケーションが、マルウェア及びグレイウェアのうちの少なくとも１つを含む、請求項１０に記載のシステム。
【請求項１８】
前記アプリケーションランチャーが、モバイルデバイスアプリケーションランチャーを含む、請求項１０に記載のシステム。
【請求項１９】
非一時的コンピュータ可読媒体であって、１つ以上のコンピュータ実行可能命令を含み、前記命令は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されると、前記コンピューティングデバイスに、
アプリケーションランチャーを前記コンピューティングデバイス上のサンドボックス内にロードさせ、
前記アプリケーションランチャーからアプリケーションを起動することに関連付けられた１つ以上の機能を監視させ、
前記アプリケーションを起動することに関連付けられた前記機能が、前記アプリケーションランチャーによって呼び出されたことを判定させ、
前記アプリケーションが潜在的に有害であるかどうかを判定するセキュリティポリシーを含むポリシーマネージャにクエリさせ、
前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害であると判定すると、前記アプリケーションランチャーが前記コンピューティングデバイス上の前記サンドボックスから前記アプリケーションを起動することを防止するセキュリティアクションを実行させる、非一時的コンピュータ可読媒体。
【請求項２０】
前記１つ以上のコンピュータ実行可能命令が、前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害でないと判定すると、前記アプリケーションランチャーが前記コンピューティングデバイス上の前記サンドボックスから前記アプリケーションを起動することを可能にするセキュリティアクションを前記コンピューティングに更に実行させる、請求項１９に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
ウイルス、トロイの木馬、スパイウェア、及び他の種類のマルウェアなどの潜在的に有害なコンピュータソフトウェアアプリケーションは、様々なコンピューティングシステム及びデバイスに対する一定の脅威である。様々な種類のセキュリティシステムが、ウイルススキャナ及びファイアウォールを含むこれらの脅威に対処するために存在する。それにもかかわらず、多くの潜在的に有害なアプリケーションは、依然としてコンピューティングシステム及びデバイスに感染するように操り、様々な悪意のあるアクションを実行することができる。
【０００２】
セキュリティソフトウェアベンダーは、潜在的に有害なアプリケーションがコンピューティングデバイス上で起動された後にそれらを検出するように設計された様々な方法を利用し、アプリケーションが潜在的な脅威をもたらすと判定した後、実行中のアプリケーションを停止するための「抹消」信号を開始することができる。しかしながら、潜在的な脅威を除去するために従来のシステムによって使用される方法は、多くの場合、一貫性のない及び／又は無効な可能性があり（例えば、いくつかのアプリケーションは、抹消信号を処理するように構成されておらず、又は信号ハンドラを有するアプリケーションが信号を適切に処理できないように機能しなくなった可能性があり）、したがって、検出された悪意のあるアプリケーションが、起動された後にコンピューティングデバイス上で継続的に実行されることを停止することができない。
【発明の概要】
【０００３】
以下で更に詳細に記載されるように、本開示は、セキュリティポリシーに基づいてアプリケーション起動を制御するための様々なシステム及び方法を記載する。
【０００４】
一実施例では、セキュリティポリシーに基づいてアプリケーション起動を制御するための方法は、（１）コンピューティングデバイスによって、サンドボックス内にアプリケーションランチャーをロードすることと、（２）コンピューティングデバイスによって、アプリケーションランチャーからアプリケーションを起動することに関連付けられた機能を監視することと、（３）コンピューティングデバイスによって、アプリケーションを起動することに関連付けられた機能が、アプリケーションランチャーによって呼び出されたと判定することと、（４）コンピューティングデバイスによって、アプリケーションが潜在的に有害であるかどうかを判定するセキュリティポリシーを含むポリシーマネージャにクエリすることと、（５）セキュリティポリシーに基づいて、アプリケーションが潜在的に有害であると判定すると、アプリケーションランチャーがサンドボックスからアプリケーションを起動することを防止するセキュリティアクションをコンピューティングデバイスによって実行することと、を含むことができる。
【０００５】
いくつかの実施例では、セキュリティアクションは、アプリケーションが潜在的に有害でないと判定すると、アプリケーションランチャーがサンドボックスからアプリケーションを起動することを可能にし得る。いくつかの実施例では、アプリケーション起動開始機能について、アプリケーションランチャーに関連付けられたアクティビティマネージャを監視してもよい。
【０００６】
いくつかの実施例では、ポリシーマネージャにクエリすることは、アプリケーションが潜在的に有害であるかどうかを判定するポリシーマネージャを使用してアプリケーションをスキャンすることを含み得る。追加的に又は代替的に、ポリシーマネージャにクエリすることは、アプリケーションが潜在的に有害であるかどうかを判定するブラックリストのためのクエリを含んでもよい。
【０００７】
いくつかの実施例では、アプリケーションランチャーがサンドボックスから潜在的に有害なアプリケーションを起動することを防止するためのセキュリティアクションは、アプリケーションが潜在的に有害であることをアプリケーションランタイムで判定すると、アプリケーションが実行されることを阻止することを含んでもよい。いくつかの実施例では、セキュリティポリシーは、アプリケーションの起動に関連付けられた時間及び／又は場所に基づいてもよい。
【０００８】
いくつかの実施例では、潜在的に有害なアプリケーションは、マルウェア又はグレイウェアであってもよい。いくつかの実施例では、アプリケーションランチャーは、モバイルデバイスアプリケーションランチャーであってもよい。
【０００９】
一実施形態では、セキュリティポリシーに基づいてアプリケーション起動を制御するためのシステムは、（１）アプリケーションランチャーをコンピューティングデバイス上のサンドボックス内にロードするロードモジュールと、（２）アプリケーションランチャーからアプリケーションを起動することに関連付けられた機能を監視する監視モジュールと、（３）アプリケーションを起動することに関連付けられた機能がアプリケーションランチャーによって呼び出されたことを判定する判定モジュールと、（４）アプリケーションが潜在的に有害であるかどうかを判定するセキュリティポリシーを含むポリシーマネージャにクエリするクエリモジュールと、（５）セキュリティポリシーに基づいて、アプリケーションが潜在的に有害であることを判定すると、アプリケーションランチャーがコンピューティングデバイス上のサンドボックスからアプリケーションを起動することを防止するセキュリティアクションを実行するセキュリティモジュールと、（６）ロードモジュール、監視モジュール、判定モジュール、クエリモジュール、及びセキュリティモジュールを実行する少なくとも１つの物理プロセッサと、を含む、メモリに記憶されたいくつかのモジュールを含むことができる。
【００１０】
いくつかの実施例では、上述の方法は、非一時的コンピュータ可読媒体上のコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されると、コンピューティングデバイスに、（１）アプリケーションランチャーをコンピューティングデバイス上のサンドボックスにロードさせ、（２）アプリケーションランチャーからアプリケーションを起動することに関連付けられた機能を監視させ、（３）アプリケーションを起動することに関連付けられた機能がアプリケーションランチャーによって呼び出されたことを判定させ、（４）アプリケーションが潜在的に有害であるかどうかを判定するセキュリティポリシーを含むポリシーマネージャにクエリさせ、（５）セキュリティポリシーに基づいて、アプリケーションが潜在的に有害であると判定すると、アプリケーションランチャーがコンピューティングデバイス上のサンドボックスからアプリケーションを起動することを防止するセキュリティアクションを実行させる、１つ以上のコンピュータ実行可能命令を含み得る。
【００１１】
上述の実施形態のいずれかによる特徴は、本明細書に記載される一般原理に従って、互いに組み合わせて使用されてもよい。これら及び他の実施形態、特徴、及び利点は、添付の図面及び特許請求の範囲と併せて以下の発明を実施するための形態を読むことによって更に十分に理解されるだろう。
【図面の簡単な説明】
【００１２】
添付の図面は、いくつかの例示的な実施形態を図示するものであり、本明細書の一部である。以下の説明と併せて、これらの図面は、本開示の様々な原理を実証及び説明する。
【図１】セキュリティポリシーに基づいてアプリケーション起動を制御するための例示的なシステムのブロック図である。
【図２】セキュリティポリシーに基づいてアプリケーション起動を制御するための追加の例示的なシステムのブロック図である。
【図３】セキュリティポリシーに基づいてアプリケーション起動を制御するための例示的な方法のフロー図である。
【図４】セキュリティポリシーに基づいてアプリケーション起動を可能にするための例示的なシステムのブロック図である。
【図５】セキュリティポリシーに基づいてアプリケーション起動をブロックするための例示的なシステムのブロック図である。
【図６】本明細書に記載され及び／又は図示される実施形態のうちの１つ以上を実装できる例示的なコンピューティングシステムのブロック図である。
【図７】本明細書に記載され及び／又は図示される実施形態のうちの１つ以上を実装できる例示的なコンピューティングネットワークのブロック図である。
【００１３】
図面をとおして、同一の参照符号及び記述は、必ずしも同一ではないが、類似の要素を示す。本明細書で説明される例示的実施形態は、様々な修正物及び代替的な形態が可能であるが、特定の実施形態が例として図面に示されており、本明細書に詳細に記載される。しかしながら、本明細書に記載される例示的実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の「特許請求の範囲」の範囲内にある全ての修正物、等価物、及び代替物を網羅する。
【発明を実施するための形態】
【００１４】
本開示は、概して、セキュリティポリシーに基づいてアプリケーション起動を制御するためのシステム及び方法を対象とする。以下でより詳細に説明されるように、コンピューティングデバイス上のアプリケーションランチャーをサンドボックス化することによって、本明細書に記載されるシステム及び方法は、アプリケーションが起動前に潜在的に有害であるかどうかを安全に判定し、セキュリティポリシーに基づいて、（アプリケーションが潜在的に有害であると判定すると）アプリケーションランチャーがアプリケーションを起動することを防止するか、又はアプリケーションがサンドボックスから実行されることを可能にするように、セキュリティアクションを実行することができる。加えて、本明細書に記載されるシステム及び方法は、潜在的に悪意あるアプリケーションが起動され、アプリケーションランチャーから実行されることを防止し、したがって、マルウェア、グレイウェア、及び／又は他の有害なコンテンツによる感染に対してコンピューティングシステムを保護することによって、コンピューティングデバイスの機能を改善することができる。
【００１５】
以下に、図１〜図２を参照して、セキュリティポリシーに基づいてアプリケーション起動を制御するための例示的なシステムについての詳細な説明を提供する。対応するコンピュータ実装方法の詳細な説明も図３に関連して提供される。セキュリティポリシーに基づいてアプリケーション起動を可能にする及び阻止するための例示的なシステムの詳細な説明もまた、それぞれ、図４及び図５に関連して提供される。更に、本明細書に記載される実施形態のうちの１つ以上を実装することができる例示的なコンピューティングシステム及びネットワークアーキテクチャの詳細な説明が、それぞれ、図６及び図７に関連して提供される。
【００１６】
図１は、セキュリティポリシーに基づいてアプリケーション起動を制御するための例示的なシステム１００のブロック図である。この図に図示されるように、例示的なシステム１００は、１つ以上のタスクを実施するための１つ以上のモジュール１０２を含み得る。以下でより詳細に説明するように、モジュール１０２は、アプリケーションランチャー１２４をサンドボックス１２２内にロードするロードモジュール１０４と、アプリケーションランチャー１２４からアプリケーション１２６を起動することに関連付けられた機能を監視する監視モジュール１０６と、アプリケーション１２６を起動することに関連付けられた機能がアプリケーションランチャー１２４によって呼び出されたことを判定する判定モジュール１０８と、任意のアプリケーション１２６が潜在的に有害であるかどうかを判定するセキュリティポリシー１３２を含むポリシーマネージャ１２８にクエリするクエリモジュール１１０と、セキュリティポリシー１３２に基づいて、アプリケーション１２６が潜在的に有害であると判定すると、アプリケーションランチャー１２４がサンドボックス１２２からアプリケーション１２６を起動することを防止するセキュリティアクションを実行するセキュリティモジュール１１２と、を含むことができる。別々の要素として図示されるが、図１のモジュール１０２のうちの１つ以上は、単一のモジュール又はアプリケーションの部分を表してもよい。
【００１７】
本明細書で使用するとき、「アプリケーションランチャー」という用語は、一般に、ユーザの一次相互作用点として機能し、ユーザが他のアプリケーションプログラムの位置を特定し、開始するのに役立つコンピューティングデバイス（例えば、モバイルコンピューティング）上の実行可能プログラムコードを指す。例えば、アプリケーションランチャーは、アプリケーションプログラムにショートカットを提供し、１つの場所にショートカットを記憶してもよく、その結果、探し出すことが容易になる。いくつかの例では、アプリケーションランチャーは、アンドロイドモバイルオペレーティングシステムなどのモバイルデバイスオペレーティングシステムに関連付けられてもよい。
【００１８】
本明細書で使用するとき、「サンドボックス」という用語は、一般に、重要なシステムリソース、他のアプリケーション、及び他のアプリケーションデータからアプリケーション及びアプリケーションデータを分離するコンピュータシステム上の記憶空間の限定された領域を指す。サンドボックスは、有害なアプリケーション（例えば、マルウェア）又は有害なアプリケーションがコンピュータシステムに悪影響を及ぼすことを防止する、追加のセキュリティ層を提供する。サンドボックス化されたアプリケーションは、その限定された記憶空間内のリソースにのみアクセスすることができる。アプリケーションプログラムがサンドボックスの外部のリソース又はファイルにアクセスする必要がある場合、許可はコンピュータシステムによって明示的に与えられなければならない。
【００１９】
本明細書で使用するとき、「ポリシーマネージャ」という用語は、一般に、セキュリティポリシーを適用するように構成されたコンピュータ実行可能コードを指す。例えば、ポリシーマネージャは、セキュリティ脅威のために他のアプリケーションをスキャンし、アプリケーションがコンピューティングシステムに有害であると判定されたかどうかに基づいてセキュリティポリシーを適用するモバイルセキュリティアプリケーションを含んでもよい。いくつかの実施例では、ポリシーマネージャは、セキュリティポリシーを細かく適用し得る（例えば、セキュリティポリシーは、時間、場所などに基づいて適用され得る）か、又は粗く適用し得る。
【００２０】
特定の実施形態では、図１のモジュール１０２のうちの１つ以上は、コンピューティングデバイスによって実行されると、コンピューティングデバイスに１つ以上のタスクを実施させ得る、１つ以上のソフトウェアアプリケーション又はプログラムを表し得る。例えば、より詳細に後述するように、モジュール１０２のうちの１つ以上は、図２に示されるデバイス（例えば、コンピューティングデバイス２０２及び／又はサーバ２０６）、などの１つ以上のコンピューティングデバイスに記憶され、その上で作動するように構成されている、モジュールを表してもよい。図１のモジュール１０２のうちの１つ以上はまた、１つ以上のタスクを実施するように構成された１つ以上の専用コンピュータの全て又は部分を表し得る。
【００２１】
図１に示すように、例示的なシステム１００はまた、メモリ１４０などの１つ以上のメモリデバイスも含み得る。メモリ１４０は、一般に、データ及び／又はコンピュータ可読命令を記憶することができる任意のタイプ又は形態の揮発性又は不揮発性の記憶デバイス又は媒体を表す。一実施例では、メモリ１４０は、モジュール１０２のうちの１つ以上を記憶、ロード、及び／又は維持してもよい。メモリ１４０の例としては、非限定的に、ランダムアクセスメモリ（Random Access Memory、ＲＡＭ）、読み取り専用メモリ（Read Only Memory、ＲＯＭ）、フラッシュメモリ、ハードディスクドライブ（Hard Disk Drive、ＨＤＤ）、ソリッドステートドライブ（Solid-State Drive、ＳＳＤ）、光ディスクドライブ、キャッシュ、それらのうちの１つ以上の変形形態若しくは組み合わせ、及び／又は任意の他の好適な記憶メモリが挙げられる。
【００２２】
図１に示すように、例示的なシステム１００はまた、物理プロセッサ１３０などの１つ以上の物理プロセッサも含み得る。物理プロセッサ１３０は、一般に、コンピュータ可読命令を解釈及び／又は実行することができる任意のタイプ又は形態のハードウェア実装処理ユニットを表す。一実施例では、物理プロセッサ１３０は、メモリ１４０に記憶されているモジュール１０２のうちの１つ以上にアクセスし、かつ／又はそれを変更することができる。追加的に又は代替的に、物理プロセッサ１３０は、セキュリティポリシーに基づいてアプリケーション起動の制御を容易にするために、モジュール１０２のうちの１つ以上を実行してもよい。物理プロセッサ１３０の例としては、非限定的に、マイクロプロセッサ、マイクロコントローラ、中央処理装置（Central Processing Unit、ＣＰＵ）、ソフトコアプロセッサを実装するフィールドプログラマブルゲートアレイ（Field-Programmable Gate Array、ＦＰＧＡ）、特定用途向け集積回路（Application-Specific Integrated Circuit、ＡＳＩＣ）、それらのうちの１つ以上の部分、それらのうちの１つ以上の変形形態若しくは組み合わせ、及び／又は任意の他の好適な物理プロセッサが挙げられる。
【００２３】
図１に示すように、例示的なシステム１００は、データストレージ１２０も含み得る。データストレージ１２０は、一般に、システム１００内の任意の種類又は形態の記憶システムを表す。一実施例では、データストレージ１２０は、サンドボックス１２２、アプリケーション１２６、及びポリシーマネージャ１２８、並びにセキュリティポリシー１３２のための記憶空間を含み得る。
【００２４】
図１の例示的なシステム１００は、様々な方法で実装され得る。例えば、例示的なシステム１００のうちの全て又は一部分は、図２における例示的なシステム２００の部分を表してもよい。図２に示されるように、システム２００は、ネットワーク２０４を介してサーバ２０６と通信するコンピューティングデバイス２０２を含んでもよい。一実施例では、モジュール１０２の機能のうちの全て又は一部分は、コンピューティングデバイス２０２、サーバ２０６、及び／又は任意の他の好適なコンピューティングシステムによって実施され得る。より詳細に後述するように、図１によるモジュール１０２のうちの１つ以上は、コンピューティングデバイス２０２及び／又はサーバ２０６のうちの少なくとも１つのプロセッサによって実行されると、コンピューティングデバイス２０２及び／又はサーバ２０６がセキュリティポリシーに基づいてアプリケーション起動を制御することを可能にすることができる。例えば、より詳細に後述するように、モジュール１０２のうちの１つ以上は、コンピューティングデバイス２０２に、（１）アプリケーションランチャー１２４をサンドボックス１２２内にロードさせ、（２）アプリケーションランチャー１２４からアプリケーション１２６を起動することに関連付けられた機能を監視させ、（３）アプリケーション１２６を起動することに関連付けられた機能がアプリケーションランチャー１２４によって呼び出されたことを判定させ、（４）アプリケーション１２６が潜在的に有害であるかどうかを判定させるセキュリティポリシー１３２を含むクエリポリシーマネージャ１２８にクエリさせ、（５）セキュリティポリシー１３２に基づいて、アプリケーション１２６が潜在的に有害であると判定すると、アプリケーションランチャー１２４がサンドボックス１２２からアプリケーション１２６を起動することを防止するセキュリティアクションを実行させることができる。
【００２５】
コンピューティングデバイス２０２は、一般に、コンピュータ実行可能命令を読み取ることができる任意のタイプ又は形態のコンピューティングデバイスを表す。一実施例では、コンピューティングデバイス２０２は、モバイルセキュリティアプリケーションを実行するモバイルクライアントコンピューティングデバイスであってもよい。コンピューティングデバイス２０２の追加の例としては、非限定的に、ラップトップ、タブレット、デスクトップ、サーバ、携帯電話、携帯情報端末（Personal Digital Assistant、ＰＤＡ）、マルチメディアプレーヤー、埋め込みシステム、ウェアラブルデバイス（例えば、スマートウォッチ、スマートグラスなど）、スマートビークル、スマートパッケージング（例えば、アクティブ又はインテリジェントパッケージング）、ゲーム機、いわゆるモノのインターネットデバイス（例えば、スマート家電など）、それらのうちの１つ以上の変形形態若しくは組み合わせ、及び／又は他の任意の好適なコンピューティングデバイスが挙げられる。
【００２６】
サーバ２０６は、一般に、コンピュータ実行可能命令を読み取ることが可能な、任意のタイプ又は形態のコンピューティングデバイスを表す。一実施例では、サーバ２０６は、アプリケーション１２６をコンピューティングデバイス２０２に配布するためのアプリケーション配布プラットフォーム２１０をホストするアプリケーションサーバであってもよい。サーバ２０６はまた、セキュリティポリシー１３２を含むポリシーマネージャ１２８をリモートにホストしてもよい。サーバ２０６の追加の例としては、非限定的に、特定のソフトウェアアプリケーションを実行する、並びに／又は様々なセキュリティサービス、ウェブサービス、記憶サービス、及び／若しくはデータベースサービスを提供するように構成された、セキュリティサーバ、ウェブサーバ、記憶サーバ、及び／又はデータベースサーバが挙げられる。図２では単一のエンティティとして示されているが、サーバ２０６は、互いに連携して作動及び／又は動作する複数のサーバを含み、かつ／又はそれらを表してもよい。
【００２７】
ネットワーク２０４は、一般に、通信若しくはデータ転送を容易にすることが可能な、任意の媒体又はアーキテクチャを表す。一実施例では、ネットワーク２０４は、コンピューティングデバイス２０２とサーバ２０６との間の通信を容易にしてもよい。この実施例では、ネットワーク２０４は、無線接続及び／又は有線接続を使用して、通信又はデータ転送を容易にしてもよい。ネットワーク２０４の例としては、非限定的に、イントラネット、広域ネットワーク（Wide Area Network、ＷＡＮ）、ローカルエリアネットワーク（Local Area Network、ＬＡＮ）、パーソナルエリアネットワーク（Personal Area Network、ＰＡＮ）、インターネット、電力線通信（Power Line Communications、ＰＬＣ）、セルラーネットワーク（例えば、Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ（ＧＳＭ）ネットワーク）、それらのうちの１つ以上の部分、それらのうちの１つ以上の変形形態若しくは組み合わせ、及び／又は任意の他の好適なネットワークが挙げられる。
【００２８】
コンピューティングデバイス２０２上のアプリケーションランチャー１２４はまた、アクティビティマネージャ２０８を含んでもよい。アクティビティマネージャ２０８は、一般に、アプリケーションランチャー２０８からアプリケーション１２６を起動するために使用される機能を提供する任意の種類又は形態のソフトウェアマネージャを表す。例えば、アプリケーションランチャー１２４からアプリケーション１２６の起動（例えば、実行）を開始するために、「スタートアクティビティ（startActivity）」機能（及びその変形）を利用してもよい。
【００２９】
図３は、セキュリティポリシーに基づいてアプリケーション起動を制御するための例示的なコンピュータ実装方法３００のフロー図である。図３に示されるステップは、図１のシステム１００、図２のシステム２００、及び／又はそれらのうちの１つ以上の変形形態若しくは組み合わせを含む、任意の好適なコンピュータ実行可能コード及び／又はコンピューティングシステムによって実施され得る。ある実施例において、図３に示すステップの各々は、その構造が後に例を詳述する複数のサブステップを含む、及び／又はサブステップによって表されるアルゴリズムを表してもよい。
【００３０】
図３に図示されるように、ステップ３０２において本明細書に記載のシステムのうちの１つ以上は、コンピューティングデバイスによって、アプリケーションランチャーをサンドボックス内にロードすることができる。例えば、ロードモジュール１０４は、図２のコンピューティングデバイス２０２の一部として、アプリケーションランチャー１２４をサンドボックス１２２内にロードしてもよい。いくつかの実施例では、アプリケーションランチャー１２４は、モバイルデバイスアプリケーションランチャーを含んでもよい。
【００３１】
ロードモジュール１０４は、様々な方法で、アプリケーションランチャー１２４をロードすることができる。例えば、ロードモジュール１０４は、コンピューティングデバイス２０２上で実行されているモバイルデバイスセキュリティアプリケーションの一部として、コンピューティングデバイス２０２のオペレーティングシステムに関連付けられた既存のアプリケーションランチャー（すなわち、アプリケーションランチャー１２４）を取得し、アプリケーションランチャー１２４をサンドボックス１２２内で実行してもよい。
【００３２】
ステップ３０４では、本明細書に記載されるシステムのうちの１つ以上は、コンピューティングデバイスによって、アプリケーションランチャーからアプリケーションを起動することに関連付けられた１つ以上の機能を監視することができる。例えば、監視モジュール１０６は、図２のコンピューティングデバイス２０２の一部として、アプリケーションランチャー１２４からアプリケーション１２６を起動することに関連付けられた機能を監視してもよい。
【００３３】
監視モジュール１０６は、様々な方法でアプリケーション１２６を起動することに関連付けられた機能を監視することができる。例えば、監視モジュール１０６は、アプリケーション起動開始機能のためにアプリケーションランチャー１２４に関連付けられたアクティビティマネージャ２０８を監視してもよい。いくつかの実施例では、監視モジュール１０６は、アプリケーションランチャー１２４から新しいアプリケーション（例えば、アプリケーション１２６）を起動するために典型的に使用される機能（例えば、アプリケーション起動開始機能）を監視する目的で、アプリケーションランチャー１２４にソフトウェアコード（例えば、「フック」）を導入するように構成されてもよい。いくつかの実施例では、フックは、アプリケーションランチャー１２４とアプリケーション１２６との間で行われる機能呼び出しを監視（例えば、傍受）する目的で、アプリケーションランチャー１２４内に既存コードを増強するために監視モジュール１０６によって提供される機能を含み得る。
【００３４】
ステップ３０６では、本明細書に記載されるシステムのうちの１つ以上は、コンピューティングデバイスによって、ステップ３０４で監視されたアプリケーションを起動することに関連付けられた機能が、アプリケーションランチャーによって呼び出されたと判定することができる。例えば、判定モジュール１０８は、図２のコンピューティングデバイス２０２の一部として、アクティビティマネージャ２０８で監視された機能のうちの１つ以上が、アプリケーションランチャー１２４によって呼び出されたことを判定してもよい。
【００３５】
判定モジュール１０８は、アプリケーション１２６を起動することに関連付けられた機能が、様々な方法で呼び出されたことを判定してもよい。例えば、判定モジュール１０８は、アプリケーション開始機能がアプリケーションランチャー１２４によって呼び出されてアプリケーション１２６を起動したことを（例えば、以前に導入されたソフトウェアフックを使用して）判定してもよい。
【００３６】
ステップ３０８では、本明細書に記載されるシステムのうちの１つ以上は、コンピューティングデバイスによって、アプリケーションが潜在的に有害であるかどうかを判定するセキュリティポリシーを含むポリシーマネージャにクエリしてもよい。例えば、クエリモジュール１１０は、図２のコンピューティングデバイス２０２の一部として、アプリケーション１２６が潜在的に有害であるかどうかを判定するポリシーマネージャ１２８にクエリしてもよい。
【００３７】
クエリモジュール１１０は、ポリシーマネージャ１２８に様々な方法でクエリしてもよい。例えば、クエリモジュール１１０は、セキュリティポリシー１３２に基づいて、アプリケーションが潜在的に有害であるかどうかを判定するポリシーマネージャ１２８を使用してアプリケーション１２６をスキャンしてもよい。追加的に又は代替的に、クエリモジュール１１０は、アプリケーション１２６がリストされ、したがって潜在的に有害であるかどうかを判定するブラックリストのためのポリシーマネージャ１２８にクエリすることができる。いくつかの実施例では、マルウェア及び／又はグレイウェアを含むアプリケーションは、潜在的に有害であると判定される。いくつかの実施例では、セキュリティポリシー１３２は、アプリケーションランチャー１２４からアプリケーション１２６の起動を呼び出すことに関連付けられた時間及び／又は場所に基づく、粒度の細かいセキュリティポリシーを含み得る。追加的に又は代替的に、セキュリティポリシー１３２は、アプリケーションランチャー１２４からアプリケーション１２６の起動を呼び出すことに関連付けられた時間及び／又は位置制約とは無関係である、粗いセキュリティポリシーに基づいてもよい。
【００３８】
ステップ３１０では、本明細書に記載されるシステムのうちの１つ以上は、セキュリティポリシーに基づいて、アプリケーションが潜在的に有害であると判定すると、アプリケーションランチャーがサンドボックスからアプリケーションを起動することを防止するセキュリティアクションをコンピューティングデバイスによって実行することができる。例えば、セキュリティモジュール１１２は、図２のコンピューティングデバイス２０２の一部として、アプリケーションランチャー１２４がサンドボックス１２２から潜在的に有害であると判定されたアプリケーション１２６を起動することを防止するセキュリティポリシー１３２に基づいてセキュリティアクションを実行してもよい。
【００３９】
セキュリティモジュール１１２は、様々な方法でセキュリティアクションを実行してもよい。例えば、セキュリティモジュール１１２は、アプリケーション１２６が潜在的に有害であることをアプリケーション１２６のランタイムで判定した後、アプリケーション１２６がアプリケーションランチャー１２４から実行されることを阻止してもよい。
【００４０】
図４は、セキュリティポリシーに基づいてアプリケーション起動を可能にするための例示的なシステム４００のブロック図である。図４のシステム４００では、ユーザは、アプリケーション４２６を実行するためにサンドボックス４２２内にロードされたアプリケーションランチャー４２４上のアプリケーションアイコンをクリックすることができる。
【００４１】
いくつかの実施例では、アプリケーションランチャー４２４は、アプリケーション４２６が起動され得るかどうかを判定するポリシーマネージャ４２８にクエリするように構成されてもよい。クエリを受信すると、ポリシーマネージャ４２８は、アプリケーション４２６が有害ではないことと、ポリシーマネージャ４２８に関連付けられたセキュリティポリシーがアプリケーション４２６を起動することを許可し得ることとを（例えば、セキュリティスキャンに基づいて）判定することができる。次いで、ポリシーマネージャ４２８は、サンドボックス４２２内のアプリケーションランチャー４２４にセキュリティポリシーを施行してもよい。施行されたセキュリティポリシーに基づいて、アプリケーションランチャー４２４は、次いで、サンドボックス４２２からアプリケーション４２６を起動することができる。
【００４２】
図５は、セキュリティポリシーに基づいてアプリケーション起動を阻止するための例示的なシステム５００のブロック図である。図５のシステム５００では、ユーザは、アプリケーションを実行するためにサンドボックス５２２内にロードされたアプリケーションランチャー５２４上のアプリケーションアイコンをクリックすることができる。
【００４３】
いくつかの実施例では、アプリケーションランチャー５２４は、アプリケーションが起動され得るかどうかを判定するために、ポリシーマネージャ５２８にクエリするように構成されてもよい。クエリを受信すると、ポリシーマネージャ５２８は、アプリケーションが有害である（例えば、マルウェア又は悪意のあるコンテンツを含む）ことと、ポリシーマネージャ５２８に関連付けられたセキュリティポリシーがアプリケーションを起動することを阻止し得ることとを（例えば、セキュリティスキャンに基づいて）判定することができる。次いで、ポリシーマネージャ５２８は、サンドボックス５２２内でアプリケーションランチャー５２４にセキュリティポリシーを施行してもよい。施行されたセキュリティポリシーに基づいて、アプリケーションランチャー５２４は、アプリケーションの起動を阻止してもよい。
【００４４】
上述の図３の例示的な方法３００に関連して説明したように、本明細書に記載されるシステム及び方法は、アプリケーションを修正又は所有することなく、潜在的に危険なアプリケーションをコンピューティングシステム（例えば、モバイルデバイス）上で実行することを停止するために、セキュリティポリシー及びサンドボックスを利用してもよい。コンピューティングシステムが攻撃される及び／又は感染する確率は、潜在的に危険なアプリケーションが実行され始めると、大幅に増加する。しかしながら、従来のシステムは、単に、実行中のアプリケーションを抹消させるために（多くの場合、一貫して及び／又は無効に）試み、及び／又はユーザ対話を必要とする（例えば、アプリケーションをロック解除するためにパスワードを提供することにより、アプリケーションがアプリケーションランチャーから起動され得る）ので、従来のシステムは、潜在的に危険なアプリケーションがコンピューティングシステムの動作に悪影響を及ぼすことを完全に防止することができない場合がある。アプリケーションランチャーをサンドボックス化して、潜在的に有害なアプリケーションを、それらが実行する機会を得る前でさえも識別することにより、本明細書に記載されるシステム及び方法は、セキュリティポリシーを利用して、これらのアプリケーションが、透明な方法で、かつユーザ対話を伴わずに、コンピューティングシステムに害を与えることを防止してもよい。
【００４５】
図６は、本明細書に記載され及び／又は図示される実施形態のうちの１つ以上を実装できる例示的なコンピューティングシステム６１０を示すブロック図である。例えば、コンピューティングシステム６１０のうちの全て又は一部分は、単独で又は他の要素と組み合わせてのいずれかで、本明細書に記載されるステップのうちの１つ以上（図３に示されるステップのうちの１つ以上など）を実施し得、及び／又はそれを実施するための手段であり得る。コンピューティングシステム６１０のうちの全て又は一部分はまた、本明細書に記載及び／若しくは図示される任意の他のステップ、方法、若しくはプロセスを実施してもよく、並びに／又はそれを実施するための手段であってもよい。
【００４６】
コンピューティングシステム６１０は、コンピュータ可読命令を実行することができる任意のシングル又はマルチプロセッサのコンピューティングデバイス又はシステムを幅広く表す。コンピューティングシステム６１０の例としては、非限定的に、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、ハンドヘルドデバイス、又は他の任意のコンピューティングシステム若しくはデバイスが挙げられる。その最も基本的な構成において、コンピューティングシステム６１０は、少なくとも１つのプロセッサ６１４及びシステムメモリ６１６を含んでもよい。
【００４７】
プロセッサ６１４は、一般に、データを処理すること又は命令を解釈及び実行することができる任意のタイプ又は形態の物理的処理ユニット（例えば、ハードウェア実装型中央処理ユニット）を表す。特定の実施形態において、プロセッサ６１４は、ソフトウェアアプリケーション又はモジュールから命令を受信してもよい。これらの命令は、プロセッサ６１４に、本明細書に記載され及び／又は図示される例示的な実施形態のうちの１つ以上の機能を実施させてもよい。
【００４８】
システムメモリ６１６は、一般に、データ及び／又は他のコンピュータ可読命令を記憶することができる任意のタイプ又は形態の揮発性又は不揮発性の記憶デバイス又は媒体を表す。システムメモリ６１６の例としては、非限定的に、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられる。必須ではないが、特定の実施形態において、コンピューティングシステム６１０は、揮発性メモリユニット（例えば、システムメモリ６１６など）及び不揮発性記憶デバイス（例えば、後に詳述するような一次記憶デバイス６３２など）の両方を含んでもよい。一実施例では、図１のモジュール１０２のうちの１つ以上は、システムメモリ６１６内にロードされ得る。
【００４９】
いくつかの実施例では、システムメモリ６１６は、プロセッサ６１４による実行のために、オペレーティングシステム６４０を記憶及び／又はロードし得る。一実施例では、オペレーティングシステム６４０は、コンピュータハードウェア及びソフトウェアリソースを管理し、並びに／又はコンピューティングシステム６１０上のコンピュータプログラム及び／又はアプリケーションに共通のサービスを提供するソフトウェアを含み及び／又はこれを表してもよい。オペレーティングシステム６４０の例としては、非限定的に、ＬＩＮＵＸ、ＪＵＮＯＳ、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ、ＷＩＮＤＯＷＳ  ＭＯＢＩＬＥ、ＭＡＣ  ＯＳ、ＡＰＰＬＥのＩＯＳ、ＵＮＩＸ、ＧＯＯＧＬＥ  ＣＨＲＯＭＥ  ＯＳ、ＧＯＯＧＬＥのＡＮＤＲＯＩＤ、ＳＯＬＡＲＩＳ、それらのうちの１つ以上の変形形態、及び／又は任意の他の好適なオペレーティングシステムが挙げられる。
【００５０】
特定の実施形態では、例示的なコンピューティングシステム６１０はまた、プロセッサ６１４及びシステムメモリ６１６に加えて、１つ以上の構成要素又は要素も含み得る。例えば、図６に示すように、コンピューティングシステム６１０は、メモリコントローラ６１８、入力／出力（Input/Output、Ｉ／Ｏ）コントローラ６２０、及び通信インターフェース６２２を含み得、これらのそれぞれは、通信基盤６１２を介して相互接続され得る。通信基盤６１２は、一般に、コンピューティングデバイスの１つ以上の構成要素間の通信を容易にすることができる、任意のタイプ又は形態の基盤を表す。通信基盤６１２の例としては、非限定的に、通信バス（産業標準構成（Industry Standard Architecture、ＩＳＡ）、周辺装置相互接続（Peripheral Component Interconnect、ＰＣＩ）、ＰＣＩエクスプレス（PCI Express、ＰＣＩｅ）、又は類似のバスなど）及びネットワークが挙げられる。
【００５１】
メモリコントローラ６１８は、一般に、メモリ若しくはデータを扱うこと、又はコンピューティングシステム６１０の１つ以上の構成要素間の通信を制御すること、ができる、任意のタイプ又は形態のデバイスを表す。例えば、特定の実施形態では、メモリコントローラ６１８は、通信基盤６１２を介して、プロセッサ６１４、システムメモリ６１６、及びＩ／Ｏコントローラ６２０の間の通信を制御してもよい。
【００５２】
Ｉ／Ｏコントローラ６２０は、一般に、コンピューティングデバイスの入出力機能を調整及び／又は制御することができる、任意のタイプ又は形態のモジュールを表す。例えば、特定の実施形態では、Ｉ／Ｏコントローラ６２０は、プロセッサ６１４、システムメモリ６１６、通信インターフェース６２２、ディスプレイアダプタ６２６、入力インターフェース６３０、及び記憶インターフェース６３４などの、コンピューティングシステム６１０の１つ以上の要素間のデータ転送を制御又は容易にし得る。
【００５３】
図６に示すように、コンピューティングシステム６１０はまた、ディスプレイアダプタ６２６を介してＩ／Ｏコントローラ６２０に連結された少なくとも１つのディスプレイデバイス６２４も含み得る。ディスプレイデバイス６２４は、一般に、ディスプレイアダプタ６２６によって転送された情報を視覚的に表示することができる、任意のタイプ又は形態のデバイスを表す。同様に、ディスプレイアダプタ６２６は、一般に、ディスプレイデバイス６２４上に表示するために通信基盤６１２から（又は当該技術分野において既知であるように、フレームバッファから）グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形態のデバイスを表す。
【００５４】
図６に示すように、例示的なコンピューティングシステム６１０はまた、入力インターフェース６３０を介してＩ／Ｏコントローラ６２０に連結された少なくとも１つの入力デバイス６２８も含み得る。入力デバイス６２８は、一般に、コンピュータ又は人間のいずれかが生成した入力を例示的なコンピューティングシステム６１０に提供することができる任意のタイプ又は形態の入力デバイスを表す。入力デバイス６２８の例としては、非限定的に、キーボード、ポインティングデバイス、音声認識デバイス、それらのうちの１つ以上の変形形態若しくは組み合わせ、及び／又は任意の他の入力デバイスが挙げられる。
【００５５】
それに加えて、又は代替的に、例示的なコンピューティングシステム６１０は、追加のＩ／Ｏデバイスを含み得る。例えば、例示的なコンピューティングシステム６１０は、Ｉ／Ｏデバイス６３６を含み得る。この実施例では、Ｉ／Ｏデバイス６３６は、コンピューティングシステム６１０との人間の相互作用を容易にするユーザインターフェースを含み得る及び／又はそれを表し得る。Ｉ／Ｏデバイス６３６の例としては、非限定的に、コンピュータマウス、キーボード、モニタ、プリンタ、モデム、カメラ、スキャナ、マイクロフォン、タッチスクリーンデバイス、それらのうちの１つ以上の変形形態若しくは組み合わせ、及び／又は任意の他のＩ／Ｏデバイスが挙げられる。
【００５６】
通信インターフェース６２２は、例示的なコンピューティングシステム６１０と１つ以上の追加のデバイスとの間の通信を容易にすることができる、任意のタイプ又は形態の通信デバイス又はアダプタを幅広く表す。例えば、特定の実施形態では、通信インターフェース６２２は、コンピューティングシステム６１０と、追加のコンピューティングシステムを含む私設又は公衆ネットワークとの間の通信を容易にし得る。通信インターフェース６２２の例としては、非限定的に、有線ネットワークインターフェース（ネットワークインターフェースカードなど）、無線ネットワークインターフェース（無線ネットワークインターフェースカードなど）、モデム、及び任意の他の好適なインターフェースが挙げられる。少なくとも１つの実施形態では、通信インターフェース６２２は、インターネットなどのネットワークへの直接リンクを介してリモートサーバへの直接接続を提供し得る。通信インターフェース６２２はまた、例えば、ローカルエリアネットワーク（イーサネットネットワークなど）、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラー電話接続、衛星データ接続、又は他の任意の好適な接続を通して、このような接続を間接的に提供してもよい。
【００５７】
特定の実施形態では、通信インターフェース６２２はまた、外部バス又は通信チャネルを介したコンピューティングシステム６１０と１つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成されたホストアダプタも表し得る。ホストアダプタの例としては、非限定的に、小型コンピュータシステムインターフェース（Small Computer System Interface、ＳＣＳＩ）ホストアダプタ、ユニバーサルシリアルバス（Universal Serial Bus、ＵＳＢ）ホストアダプタ、米国電気電子学会（Institute of Electrical and Electronics Engineers、ＩＥＥＥ）１３９４ホストアダプタ、アドバンストテクノロジーアタッチメント（Advanced Technology Attachment、ＡＴＡ）、パラレルＡＴＡ（Parallel ATA、ＰＡＴＡ）、シリアルＡＴＡ（Serial ATA、ＳＡＴＡ）、及び外部ＳＡＴＡ（External SATA、ｅＳＡＴＡ）ホストアダプタ、ファイバーチャネルインターフェースアダプタ、イーサネットアダプタなどが挙げられる。通信インターフェース６２２はまた、コンピューティングシステム６１０が分散型又はリモートコンピューティングに関与することも可能にし得る。例えば、通信インターフェース６２２は、実行のために、リモートデバイスから命令を受信しても、リモートデバイスに命令を送信してもよい。
【００５８】
いくつかの実施例では、システムメモリ６１６は、プロセッサ６１４による実行のために、ネットワーク通信プログラム６３８を記憶及び／又はロードし得る。一実施例では、ネットワーク通信プログラム６３８は、コンピューティングシステム６１０が、別のコンピューティングシステム（図６には図示せず）とのネットワーク接続６４２を確立すること、及び／又は通信インターフェース６２２を介して他のコンピューティングシステムと通信すること、を可能にする、ソフトウェアを含み得る及び／又はそれを表し得る。この実施例では、ネットワーク通信プログラム６３８は、ネットワーク接続６４２を介して他のコンピューティングシステムに送信される発信トラフィックの流れを指示し得る。それに加えて、又は代替的に、ネットワーク通信プログラム６３８は、プロセッサ６１４と関連してネットワーク接続６４２を介して他のコンピューティングシステムから受信された着信トラフィックの処理を指示し得る。
【００５９】
図６にはこのようには示されていないが、ネットワーク通信プログラム６３８は、代替的に、通信インターフェース６２２に記憶及び／又はロードされ得る。例えば、ネットワーク通信プログラム６３８は、通信インターフェース６２２に組み込まれたプロセッサ及び／又は特定用途向け集積回路（ＡＳＩＣ）によって実行されるソフトウェア及び／又はファームウェアの少なくとも一部分を含み得る及び／又はそれを表し得る。
【００６０】
図６に示すように、例示的なコンピューティングシステム６１０はまた、記憶インターフェース６３４を介して通信基盤６１２に連結された、一次記憶デバイス６３２及びバックアップ記憶デバイス６３３も含み得る。記憶デバイス６３２及び６３３は、一般に、データ及び／又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。例えば、記憶デバイス６３２及び６３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、ソリッドステートドライブ、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどであり得る。記憶インターフェース６３４は、一般に、記憶デバイス６３２及び６３３とコンピューティングシステム６１０の他の構成要素との間でデータを転送するための、任意のタイプ又は形態のインターフェース又はデバイスを表す。一実施例では、図１からのデータストレージ１２０は、一次記憶デバイス６３２内に記憶及び／又はロードされ得る。
【００６１】
特定の実施形態では、記憶デバイス６３２及び６３３は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を記憶するように構成された取り外し可能な記憶ユニットから読み取る及び／又はそれに書き込むように構成され得る。好適な取り外し可能な記憶ユニットの例としては、非限定的に、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられる。記憶デバイス６３２及び６３３はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令がコンピューティングシステム６１０内にロードされることを可能にするための、他の同様の構造体又はデバイスを含んでもよい。例えば、記憶デバイス６３２及び６３３は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み書きするように構成され得る。記憶デバイス６３２及び６３３は、コンピューティングシステム６１０の一部であっても、他のインターフェースシステムを介してアクセスされる別個のデバイスであってもよい。
【００６２】
他の多くのデバイス又はサブシステムが、コンピューティングシステム６１０に接続され得る。反対に、図６に示す構成要素及びデバイスの全てが、本明細書に記載及び／又は図示される実施形態を実践するために存在する必要があるわけではない。上記で言及したデバイス及びサブシステムはまた、図６に示されるものとは異なる手段で相互接続されてもよい。コンピューティングシステム６１０はまた、任意の数のソフトウェア、ファームウェア、及び／又はハードウェア構成を用いてもよい。例えば、本明細書で開示する例示的な実施形態のうちの１つ以上は、コンピュータ可読媒体上で、コンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される）としてコード化されてもよい。「コンピュータ可読媒体」という用語は、本明細書で使用するとき、一般に、コンピュータ可読命令を格納又は保有することができる、任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、非限定的に、搬送波などの伝送型媒体、並びに磁気記憶媒体（例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク）、光学記憶媒体（例えば、コンパクトディスク（Compact Disk、ＣＤ）、デジタルビデオディスク（Digital Video Disk、ＤＶＤ）、及びブルーレイ（BLU-RAY）ディスク）、電子記憶媒体（例えば、ソリッドステートドライブ及びフラッシュメディア）、並びに他の分散システムなどの非一時的媒体が挙げられる。
【００６３】
コンピュータプログラムを包含するコンピュータ可読媒体は、コンピューティングシステム６１０内にロードされ得る。コンピュータ可読媒体に記憶されたコンピュータプログラムのうちの全て又は一部分は、次いで、システムメモリ６１６内に、並びに／又は記憶デバイス６３２及び６３３の様々な部分内に記憶され得る。プロセッサ６１４によって実行されるとき、コンピューティングシステム６１０内にロードされたコンピュータプログラムは、プロセッサ６１４に、本明細書に記載及び／若しくは図示される例示的な実施形態のうちの１つ以上の機能を実施させ得、並びに／又はそれらを実施するための手段とならせ得る。それに加えて、又は代替的に、本明細書に記載及び／又は図示される例示的な実施形態のうちの１つ以上は、ファームウェア及び／又はハードウェアに実装されてもよい。例えば、コンピューティングシステム６１０は、本明細書に開示される例示的な実施形態のうちの１つ以上を実装するように適合された特定用途向け集積回路（ＡＳＩＣ）として構成され得る。
【００６４】
図７は、クライアントシステム７１０、７２０、及び７３０、並びにサーバ７４０及び７４５がネットワーク７５０に連結され得る例示的なネットワークアーキテクチャ７００のブロック図である。上で詳述したように、ネットワークアーキテクチャ７００のうちの全て又は一部分は、単独で又は他の要素と組み合わせてのいずれかで、本明細書に開示されるステップのうちの１つ以上（図３に示されるステップのうちの１つ以上など）を実施し得、及び／又はそれを実施するための手段であり得る。ネットワークアーキテクチャ７００のうちの全て又は一部分はまた、本開示に記載される他のステップ及び特徴を実施するために使用されてもよく、並びに／又はそれを実施するための手段であってもよい。
【００６５】
クライアントシステム７１０、７２０、及び７３０は、一般に、図６の例示的なコンピューティングシステム６１０など、任意のタイプ又は形態のコンピューティングデバイス又はシステムを表す。同様に、サーバ７４０及び７４５は、一般に、様々なデータベースサービスを提供する及び／又は特定のソフトウェアアプリケーションを実行するように構成された、アプリケーションサーバ又はデータベースサーバなどのコンピューティングデバイス又はシステムを表す。ネットワーク７５０は、一般に、例えば、イントラネット、ＷＡＮ、ＬＡＮ、ＰＡＮ、又はインターネットを含む、任意の電気通信ネットワーク又はコンピュータネットワークを表す。一実施例では、クライアントシステム７１０、７２０、及び／若しくは７３０、並びに／又はサーバ７４０及び／若しくは７４５は、図１のシステム１００のうちの全て又は一部分を含み得る。
【００６６】
図７に示すように、１つ以上の記憶デバイス７６０（１）〜（Ｎ）は、サーバ７４０に直接取り付けられ得る。同様に、１つ以上の記憶デバイス７７０（１）〜（Ｎ）は、サーバ７４５に直接取り付けられ得る。記憶デバイス７６０（１）〜（Ｎ）及び記憶デバイス７７０（１）〜（Ｎ）は、一般に、データ及び／又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。特定の実施形態では、記憶デバイス７６０（１）〜（Ｎ）及び記憶デバイス７７０（１）〜（Ｎ）は、ネットワークファイルシステム（Network File System、ＮＦＳ）、サーバメッセージブロック（Server Message Block、ＳＭＢ）、又は共通インターネットファイルシステム（Common Internet File System、ＣＩＦＳ）など、様々なプロトコルを使用して、サーバ７４０及び７４５と通信するように構成された、ネットワーク接続ストレージ（Network-Attached Storage、ＮＡＳ）デバイスを表してもよい。
【００６７】
サーバ７４０及び７４５はまた、ストレージエリアネットワーク（Storage Area Network、ＳＡＮ）ファブリック７８０に接続されてもよい。ＳＡＮファブリック７８０は、一般に、複数の記憶デバイス間の通信を容易にすることができる、任意のタイプ又は形態のコンピュータネットワーク又はアーキテクチャを表す。ＳＡＮファブリック７８０は、サーバ７４０及び７４５と、複数の記憶デバイス７９０（１）〜（Ｎ）及び／又はインテリジェント記憶アレイ７９５と、の間の通信を容易にし得る。また、ＳＡＮファブリック７８０は、デバイス７９０（１）〜（Ｎ）及びアレイ７９５が、クライアントシステム７１０、７２０、及び７３０にローカルに取り付けられたデバイスとして現れるような方式で、ネットワーク７５０並びにサーバ７４０及び７４５を介し、クライアントシステム７１０、７２０、及び７３０と記憶デバイス７９０（１）〜（Ｎ）及び／又はインテリジェント記憶アレイ７９５との間の通信を容易にし得る。記憶デバイス７６０（１）〜（Ｎ）及び記憶デバイス７７０（１）〜（Ｎ）と同様に、記憶デバイス７９０（１）〜（Ｎ）及びインテリジェント記憶アレイ７９５は、一般に、データ及び／又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。
【００６８】
特定の実施形態では、図６の例示的なコンピューティングシステム６１０を参照すると、図６の通信インターフェース６２２などの通信インターフェースは、各クライアントシステム７１０、７２０、及び７３０とネットワーク７５０との間の接続を提供するために使用され得る。クライアントシステム７１０、７２０、及び７３０は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ７４０又は７４５上の情報にアクセスすることが可能であり得る。かかるソフトウェアは、クライアントシステム７１０、７２０、及び７３０が、サーバ７４０、サーバ７４５、記憶デバイス７６０（１）〜（Ｎ）、記憶デバイス７７０（１）〜（Ｎ）、記憶デバイス７９０（１）〜（Ｎ）、又はインテリジェント記憶アレイ７９５によってホストされたデータにアクセスすることを可能にし得る。図７は、データを交換するために（インターネットなどの）ネットワークを使用することを示しているが、本明細書に記載及び／又は図示される実施形態は、インターネット又は任意の特定のネットワークベースの環境に限定されない。
【００６９】
少なくとも１つの実施形態では、本明細書に開示される例示的な実施形態のうちの１つ以上の全て又は一部分は、コンピュータプログラムとしてコード化され、サーバ７４０、サーバ７４５、記憶デバイス７６０（１）〜（Ｎ）、記憶デバイス７７０（１）〜（Ｎ）、記憶デバイス７９０（１）〜（Ｎ）、インテリジェント記憶アレイ７９５、又はこれらの任意の組み合わせ上にロードされ、これらによって実行され得る。本明細書に開示される例示的な実施形態のうちの１つ以上の全て又は一部分はまた、コンピュータプログラムとしてコード化され、サーバ７４０に記憶され、サーバ７４５によって実行され、ネットワーク７５０を通じてクライアントシステム７１０、７２０、及び７３０に分散されてもよい。
【００７０】
上で詳述したように、コンピューティングシステム６１０及び／又はネットワークアーキテクチャ７００の１つ以上の構成要素は、単独で又は他の要素と組み合わせてのいずれかで、セキュリティポリシーに基づいてアプリケーション起動を制御するための例示的な方法の１つ以上のステップを実施し得、及び／又はそれを実施するための手段であり得る。
【００７１】
前述の開示は、特定のブロック図、フローチャート、及び実施例を使用して様々な実施形態を記載しているが、本明細書に記載及び／又は図示されるそれぞれのブロック図の構成要素、フローチャートの工程、動作、及び／又は構成要素は、個別に及び／又は集合的に、広範なハードウェア、ソフトウェア、又はファームウェア（若しくはそれらの任意の組み合わせ）の構成を使用して実装されてもよい。それに加えて、同じ機能性を達成するように他の多くのアーキテクチャを実装することができるので、他の構成要素内に包含される構成要素のいかなる開示も、本質的に例示とみなされるべきである。
【００７２】
いくつかの実施例では、図１の例示的なシステム１００のうちの全て又は一部分は、クラウドコンピューティング環境又はネットワークベースの環境の部分を表してもよい。クラウドコンピューティング環境は、インターネットを介して、様々なサービス及びアプリケーションを提供してもよい。これらのクラウドベースのサービス（例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしての基盤など）は、ウェブブラウザ又は他のリモートインターフェースを通してアクセス可能であってもよい。本明細書に記載される様々な機能は、リモートデスクトップ環境又は他の任意のクラウドベースのコンピューティング環境を通して提供されてもよい。
【００７３】
様々な実施形態では、図１の例示的なシステム１００のうちの全て又は一部分は、クラウドベースのコンピューティング環境内におけるマルチテナンシーを容易にしてもよい。換言すれば、本明細書に記載されるソフトウェアモジュールは、本明細書に記載される機能のうちの１つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム（例えば、サーバ）を構成してもよい。例えば、本明細書に記載されるソフトウェアモジュールのうちの１つ以上は、２つ以上のクライアント（例えば、顧客）がサーバ上で作動しているアプリケーションを共有するのを可能にするように、サーバをプログラムしてもよい。このようにプログラムされたサーバは、複数の顧客（すなわち、テナント）の間で、アプリケーション、オペレーティングシステム、処理システム、及び／又は記憶システムを共有してもよい。本明細書に記載されるモジュールのうちの１つ以上はまた、ある顧客が別の顧客のデータ及び／又は設定情報にアクセスできないように、顧客毎にマルチテナントアプリケーションのデータ及び／又は設定情報を分割してもよい。
【００７４】
様々な実施形態によれば、図１の例示的なシステム１００のうちの全て又は一部分は、仮想環境内で実装されてもよい。例えば、本明細書に記載されるモジュール及び／又はデータは、仮想機械内で常駐及び／又は実行してもよい。本明細書で使用するとき、「仮想機械」という用語は、一般に、仮想機械マネージャ（例えば、ハイパーバイザ）によってコンピューティングハードウェアから抽出される、任意のオペレーティングシステム環境を指す。それに加えて、又は代替的に、本明細書に記載されるモジュール及び／又はデータは、仮想化層内で常駐及び／又は実行してもよい。本明細書で使用するとき、「仮想化層」という用語は、一般に、オペレーティングシステム環境にオーバーレイする、並びに／あるいはそこから抽出される、任意のデータ層及び／又はアプリケーション層を指す。仮想化層は、基礎となる基本オペレーティングシステムの一部であるかのように仮想化層を提示する、ソフトウェア仮想化ソリューション（例えば、ファイルシステムフィルタ）によって管理されてもよい。例えば、ソフトウェア仮想化ソリューションは、最初に基本ファイルシステム及び／又はレジストリ内の場所に方向付けられる呼び出しを、仮想化層内の場所にリダイレクトしてもよい。
【００７５】
いくつかの実施例では、図１の例示的なシステム１００のうちの全て又は一部分は、モバイルコンピューティング環境の部分を表してもよい。モバイルコンピューティング環境は、携帯電話、タブレットコンピュータ、電子ブックリーダ、携帯情報端末、ウェアラブルコンピューティングデバイス（例えば、ヘッドマウントディスプレイを有するコンピューティングデバイス、スマートウォッチなど）などを含む、広範なモバイルコンピューティングデバイスによって実装されてもよい。いくつかの実施例では、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間での１つのみのフォアグラウンドアプリケーションの提示、リモート管理特性、タッチスクリーン特性、位置及び移動データ（例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される）、システムレベルの構成への修正を制限する、及び／又は第３者のソフトウェアが他のアプリケーションの挙動を検査する能力を限定する制限されたプラットフォーム、アプリケーションのインストールを（例えば、認可されたアプリケーションストアからのみ生じるように）制限する制御などを含む、１つ以上の個別の特性を有することができる。本明細書で説明される様々な機能は、モバイルコンピューティング環境に対して提供され得る、及び／又はモバイルコンピューティング環境と相互作用し得る。
【００７６】
それに加えて、図１の例示的なシステム１００のうちの全て又は一部分は、情報管理のための１つ以上のシステムの部分を表してもよく、それと相互作用してもよく、それによって生成されるデータを消費してもよく、及び／又はそれによって消費されるデータを生成してもよい。本明細書で使用するとき、「情報管理」という用語は、データの保護、組織化、及び／又は記憶を指してもよい。情報管理のためのシステムの例としては、非限定的に、記憶システム、バックアップシステム、アーカイブシステム、複製システム、高可用性システム、データ検索システム、仮想化システムなどを挙げることができる。
【００７７】
いくつかの実施形態では、図１の例示的なシステム１００のうちの全て又は一部分は、情報セキュリティのための１つ以上のシステムの部分を表してもよく、それによって保護されるデータを生成してもよく、及び／又はそれと通信してもよい。本明細書で使用するとき、「情報セキュリティ」という用語は、保護されたデータに対するアクセスの制御を指してもよい。情報セキュリティのためのシステムの例としては、非限定的に、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、本人認証システム、アクセス制御システム、暗号化システム、ポリシー遵守システム、侵入検出及び防止システム、電子証拠開示システムなどを挙げることができる。
【００７８】
いくつかの実施例によれば、図１の例示的なシステム１００のうちの全て又は一部分は、エンドポイントセキュリティのための１つ以上のシステムの部分を表してもよく、それと通信してもよく、及び／又はそれから保護を受けてもよい。本明細書で使用するとき、「エンドポイントセキュリティ」という用語は、不正及び／若しくは違法な使用、アクセス、並びに／又は制御からのエンドポイントシステムの保護を指してもよい。エンドポイント保護のためのシステムの例としては、非限定的に、アンチマルウェアシステム、ユーザ認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどを挙げることができる。
【００７９】
本明細書に記載及び／又は図示されるプロセスパラメータ及び工程の順序は、単なる例として与えられるものであり、所望に応じて変更することができる。例えば、本明細書に図示及び／又は記載される工程は特定の順序で図示又は考察されることがあるが、これらの工程は、必ずしも図示又は考察される順序で実施される必要はない。本明細書に記載される及び／又は図示される様々な例示的な方法はまた、本明細書に記載される及び／又は図示される工程のうちの１つ以上を省略してもよく、又は開示されるものに加えて追加の工程を含んでもよい。
【００８０】
様々な実施形態が、完全に機能的なコンピューティングシステムに関連して本明細書に記載され及び／又は図示されているが、これら例示的な実施形態のうちの１つ以上は、実際に配布を行なうために使用されるコンピュータ可読記憶媒体の特定のタイプに関わらず、多様な形態のプログラム製品として配布され得る。本明細書に開示される実施形態はまた、特定のタスクを実施するソフトウェアモジュールを使用して実装されてもよい。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体又はコンピューティングシステムに記憶されてもよい、スクリプト、バッチ、若しくは他の実行可能ファイルを含んでもよい。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態のうちの１つ以上を実施するようにコンピューティングシステムを構成してもよい。
【００８１】
それに加えて、本明細書に記載されるモジュールのうちの１つ以上は、データ、物理的デバイス、及び／又は物理的デバイスの表現を、１つの形態から別の形態へと変換してもよい。それに加えて、又は代替的に、本明細書に列挙されるモジュールのうちの１つ以上は、コンピューティングデバイス上で実行し、コンピューティングデバイスにデータを格納し、並びに／あるいは別の方法でコンピューティングデバイスと相互作用することによって、プロセッサ、揮発性メモリ、不揮発性メモリ、及び／又は物理的コンピューティングデバイスの他の任意の部分を、１つの形態から別の形態へと変換してもよい。
【００８２】
上述の記載は、本明細書に開示される例示的な実施形態の様々な態様を他の当業者が最良に利用するのを可能にするために提供されてきた。この例示的な記載は、網羅的であることを意図するものではなく、又は開示される任意の正確な形態に限定することを意図するものではない。本開示の趣旨及び範囲から逸脱することなく、多くの修正及び変形が可能である。本明細書に開示される実施形態は、あらゆる点で例示的であり、限定的ではないものとみなされるべきである。本開示の範囲を決定する際に、添付の特許請求の範囲及びそれらの等価物を参照するべきである。
【００８３】
別途記載のない限り、「〜に接続される」及び「〜に連結される」という用語（並びにそれらの派生語）は、本明細書及び特許請求の範囲で使用するとき、直接的接続及び間接的接続（すなわち、他の要素若しくは構成要素を介する）の両方を許容するものとして解釈されるものである。それに加えて、「ａ」又は「ａｎ」という用語は、本明細書及び特許請求の範囲で使用するとき、「〜のうち少なくとも１つ」を意味するものとして解釈されるものである。最後に、簡潔にするため、「含む」及び「有する」という用語（並びにそれらの派生語）は、本明細書及び特許請求の範囲で使用するとき、「備える」という単語と互換性があり、同じ意味を有する。
【図１】
2021521563.tif 000003
【図２】
2021521563.tif 000004
【図３】
2021521563.tif 000005
【図４】
2021521563.tif 000006
【図５】
2021521563.tif 000007
【図６】
2021521563.tif 000008
【図７】
2021521563.tif 000009
【手続補正書】
【提出日】令和2年11月9日(2020.11.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
セキュリティポリシーに基づいてアプリケーション起動を制御するためのコンピュータ実装方法であって、前記方法の少なくとも一部分が、少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実行され、前記方法は、
前記コンピューティングデバイスによって、アプリケーションランチャーをサンドボックス内にロードすることと、
前記コンピューティングデバイスによって、前記アプリケーションランチャーからアプリケーションを起動することに関連付けられた１つ以上の機能を監視することと、
前記コンピューティングデバイスによって、前記アプリケーションを起動することに関連付けられた前記機能が、前記アプリケーションランチャーによって呼び出されたと判定することと、
前記コンピューティングデバイスによって、前記アプリケーションが潜在的に有害であるかどうかを判定するセキュリティポリシーを含むポリシーマネージャにクエリすることと、
前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害であると判定すると、前記アプリケーションランチャーが前記サンドボックスから前記アプリケーションを起動することを防止するセキュリティアクションを、前記コンピューティングデバイスによって実行することと、を含む、方法。
【請求項２】
前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害でないと判定すると、前記アプリケーションランチャーが前記サンドボックスから前記アプリケーションを起動することを可能にするセキュリティアクションを、前記コンピューティングデバイスによって実行することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記コンピューティングデバイスによって、前記アプリケーションランチャーからアプリケーションを起動することに関連付けられた前記１つ以上の機能を監視することが、アプリケーション起動開始機能のために前記アプリケーションランチャーに関連付けられたアクティビティマネージャを監視することを含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記コンピューティングデバイスによって、前記アプリケーションが潜在的に有害であるかどうかを判定する前記セキュリティポリシーを含む前記ポリシーマネージャにクエリすることが、前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害であるかどうかを判定するために、前記ポリシーマネージャを使用して前記アプリケーションをスキャンすることを含む、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記コンピューティングデバイスによって、前記アプリケーションが潜在的に有害であるかどうかを判定する前記セキュリティポリシーを含む前記ポリシーマネージャにクエリすることが、前記アプリケーションが潜在的に有害であるかどうかを判定するブラックリストのための前記ポリシーマネージャにクエリすることを含む、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害であると判定すると、前記アプリケーションランチャーが前記サンドボックスから前記潜在的に有害なアプリケーションを起動することを防止する前記セキュリティアクションを前記コンピューティングデバイスによって実行することが、前記アプリケーションが潜在的に有害であることをアプリケーションランタイムで判定すると、前記アプリケーションが実行されることを阻止することを含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記セキュリティポリシーが、前記アプリケーションの前記起動に関連付けられた時間及び場所のうちの１つ以上に基づく、請求項１に記載のコンピュータ実装方法。
【請求項８】
セキュリティポリシーに基づいてアプリケーション起動を制御するためのシステムであって、
アプリケーションランチャーをコンピューティングデバイス上のサンドボックス内にロードするための手段と、
前記アプリケーションランチャーからアプリケーションを起動することに関連付けられた１つ以上の機能を監視するための手段と、
前記アプリケーションを起動することに関連付けられた前記機能が、前記アプリケーションランチャーによって呼び出されたことを判定するための手段と、
前記アプリケーションが潜在的に有害であるかどうかを判定するセキュリティポリシーを含むポリシーマネージャにクエリするための手段と、
前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害であると判定すると、前記アプリケーションランチャーが前記コンピューティングデバイス上の前記サンドボックスから前記アプリケーションを起動することを防止するセキュリティアクションを実行するための手段と、
前記ロードするための手段と、前記監視するための手段と、前記判定するための手段と、前記クエリするための手段と、前記セキュリティアクションを実行するための手段と、を実行する少なくとも１つの物理プロセッサと、を備える、システム。
【請求項９】
前記セキュリティアクションを実行するための前記手段が、前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害でないと判定すると、前記アプリケーションランチャーが前記サンドボックスから前記アプリケーションを起動することを可能にする、請求項８に記載のシステム。
【請求項１０】
前記監視するための手段が、アプリケーション起動開始機能のために前記アプリケーションランチャーに関連付けられたアクティビティマネージャを監視することによって、前記アプリケーションランチャーから前記アプリケーションを起動することに関連付けられた前記１つ以上の機能を監視する、請求項８に記載のシステム。
【請求項１１】
前記クエリするための手段が、前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害であるかどうかを判定する前記セキュリティマネージャを使用して前記アプリケーションをスキャンすることによって、前記アプリケーションが潜在的に有害であるかどうかを判定する前記セキュリティポリシーを含む前記ポリシーマネージャにクエリする、請求項８に記載のシステム。
【請求項１２】
前記クエリするための手段が、前記アプリケーションが潜在的に有害であるかどうかを判定するブラックリストのための前記ポリシーマネージャにクエリすることによって、前記アプリケーションが潜在的に有害であるかどうかを判定する前記セキュリティポリシーを含む前記ポリシーマネージャにクエリする、請求項８に記載のシステム。
【請求項１３】
前記セキュリティアクションを実行するための前記手段が、前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害であることをアプリケーションランタイムで判定すると、前記アプリケーションが前記コンピューティングデバイス上で実行されることを阻止することによって、前記アプリケーションランチャーが、前記コンピューティングデバイス上の前記サンドボックスから前記潜在的に有害なアプリケーションを起動することを防止する、請求項８に記載のシステム。
【請求項１４】
前記セキュリティポリシーが、前記コンピューティングデバイス上の前記アプリケーションの前記起動に関連付けられた時間及び場所のうちの１つ以上に基づく、請求項８に記載のシステム。
【請求項１５】
非一時的コンピュータ可読媒体であって、１つ以上のコンピュータ実行可能命令を含み、前記命令は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されると、前記コンピューティングデバイスに、
アプリケーションランチャーを前記コンピューティングデバイス上のサンドボックス内にロードさせ、
前記アプリケーションランチャーからアプリケーションを起動することに関連付けられた１つ以上の機能を監視させ、
前記アプリケーションを起動することに関連付けられた前記機能が前記アプリケーションランチャーによって呼び出されたことを判定させ、
前記アプリケーションが潜在的に有害であるかどうかを判定するセキュリティポリシーを含むポリシーマネージャにクエリさせ、
前記セキュリティポリシーに基づいて、前記アプリケーションが潜在的に有害であると判定すると、前記アプリケーションランチャーが前記コンピューティングデバイス上の前記サンドボックスから前記アプリケーションを起動することを防止するセキュリティアクションを実行させる、非一時的コンピュータ可読媒体。
【国際調査報告】
2021521563.tif 000010
2021521563.tif 000011
2021521563.tif 000012