(57)【特許請求の範囲】
【請求項１】
悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法は、
前記アプリケーションのデータ及びコード実行を前記コンピューティングデバイス上のオペレーティングシステム内で実行される少なくとも１つの他のアプリケーションから隔離するサンドボックス化された環境内で実行されるアプリケーションによる、少なくとも１つのアプリケーションサービスを立ち上げる試みを識別することと、
前記アプリケーションが潜在的なセキュリティリスクを表すと決定することと、
前記コンピューティングデバイスのユーザを、前記アプリケーションによってもたらされる前記潜在的なセキュリティリスクを推奨されるセキュリティ対策の実施によって修正するように促すことであって、前記推奨されるセキュリティ対策は、前記コンピューティングデバイス上にインストールされるセキュリティソフトウェアが前記サンドボックス化された環境に起因してそれ自体では実施できないコンピューティング動作を含む、ことと、
前記ユーザによる前記推奨されるセキュリティ対策の実施を待つ間に、前記アプリケーションによる前記アプリケーションサービスを立ち上げる試みをブロックして前記コンピューティングデバイスを守ること、を含むコンピュータ実装方法。
【請求項２】
前記オペレーティングシステムは、前記オペレーティングシステム内で実行される全てのアプリケーションを、各アプリケーションのデータ及びコード実行を前記オペレーティングシステム内で実行される他の全てのアプリケーションから隔離することによってサンドボックス化する、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記サンドボックス化される環境は、前記オペレーティングシステム内で実行されるセキュリティソフトウェアが、
前記アプリケーションを自動的に締め出すこと、及び、
前記アプリケーションを自動的にアンインストールすること、の少なくとも一方を防止する、請求項１又は２に記載のコンピュータ実装方法。
【請求項４】
前記アプリケーションサービスを立ち上げる試みは、
機密情報を捕捉する、
機密情報を送信する、
悪意のあるリソースにアクセスする、
ユーザデータを変更する、
特権昇格を要求するユーザプロンプトを生成する、
広告を生成する、という試みのうちの少なくとも１つを含む、請求項１、２又は３に記載のコンピュータ実装方法。
【請求項５】
前記アプリケーションサービスは、バックグラウンドで実行されるコンピューティングタスクを含む、請求項１乃至４のいずれか一項に記載のコンピュータ実装方法。
【請求項６】
前記アプリケーションによってもたらされる前記潜在的なセキュリティリスクを修正するように前記ユーザを促すことは、
前記アプリケーションを終了すること、及び、
前記アプリケーションをアンインストールすること、のうちの少なくとも一方をユーザに促すことを含む、請求項１乃至５のいずれか一項に記載のコンピュータ実装方法。
【請求項７】
前記アプリケーションによる前記アプリケーションサービスを立ち上げる試みをブロックすることは、
前記アプリケーションが前記アプリケーションサービスを立ち上げることを防止すること、及び、
前記アプリケーションサービスを、前記アプリケーションが前記アプリケーションサービスを立ち上げた後に自動的に終了すること、の少なくとも一方を含む、請求項１乃至６のいずれか一項に記載のコンピュータ実装方法。
【請求項８】
前記アプリケーションサービスを自動的に終了することができなければ、前記アプリケーションサービスを立ち上げたアプリケーションを手動で終了するように前記ユーザを促すことを更に含む、請求項７に記載のコンピュータ実装方法。
【請求項９】
前記アプリケーションサービスを立ち上げたアプリケーションを手動で終了するように前記ユーザを促すことは、前記ユーザが前記アプリケーションの終了に成功したことを検出するまで、前記アプリケーションを終了するように前記ユーザを周期的に促すことを含む、請求項８に記載のコンピュータ実装方法。
【請求項１０】
悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するためのシステムであって、
前記アプリケーションのデータ及びコード実行を前記システム上のオペレーティングシステム内で実行される少なくとも１つの他のアプリケーションから隔離するサンドボックス化された環境内で実行されるアプリケーションによる、少なくとも１つのアプリケーションサービスを立ち上げる試みを識別する、メモリデバイスに記憶される識別手段と、
前記アプリケーションが潜在的なセキュリティリスクを表すと決定する、前記メモリデバイスに記憶される決定手段と、
前記システムのユーザを、推奨されるセキュリティ対策を実施することにより前記アプリケーションによってもたらされる前記潜在的なセキュリティリスクを修正するように促す、前記メモリデバイスに記憶される通知手段と、
前記ユーザによる前記推奨されるセキュリティ対策の実施を待ちながら、前記アプリケーションによる前記アプリケーションサービスを立ち上げる試みをブロックして前記システムを守る、セキュリティ手段であって、前記推奨されるセキュリティ対策は、前記システム上にインストールされるセキュリティソフトウェアが前記サンドボックス化された環境に起因してそれ自体では実施できないコンピューティング動作を含む、セキュリティ手段と、
前記識別手段、前記決定手段、前記通知手段、及び前記セキュリティ手段を実行する少なくとも１つの物理プロセッサと、を備えるシステム。
【請求項１１】
前記アプリケーションサービスは、バックグラウンドで実行されるコンピューティングタスクを含む、請求項１０に記載のシステム。
【請求項１２】
前記通知手段は、前記アプリケーションによってもたらされる前記潜在的なセキュリティリスクを修正するように前記ユーザを促すことを、
前記アプリケーションを終了すること、及び、
前記アプリケーションをアンインストールすること、のうちの少なくとも一方をユーザに促すことを含む、請求項１０又は１１に記載のシステム。
【請求項１３】
前記セキュリティ手段は、前記アプリケーションによる前記アプリケーションサービスを立ち上げる試みをブロックすることを、
前記アプリケーションが前記アプリケーションサービスを立ち上げることを防止すること、及び、
前記アプリケーションサービスを、前記アプリケーションが前記アプリケーションサービスを立ち上げた後に自動的に終了すること、の少なくとも一方によって行なう、請求項１０、１１又は１２に記載のシステム。
【請求項１４】
前記通知手段は、前記セキュリティ手段が前記アプリケーションサービスを自動的に終了できなければ、前記アプリケーションサービスを立ち上げたアプリケーションを手動で終了するように前記ユーザを促す、請求項１３に記載のシステム。
【請求項１５】
前記通知手段は、前記アプリケーションサービスを立ち上げたアプリケーションを手動で終了するように前記ユーザを促すことを、前記ユーザが前記アプリケーションの終了に成功したことを検出するまで、前記アプリケーションを終了するように前記ユーザを周期的に促すことを含む、請求項１４に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
今日、オペレーティングシステム（ＡＮＤＲＯＩＤ（登録商標、以下同じ）オペレーティングシステムなど）の中には、ユーザ及びシステムデータを、アプリケーション「サンドボックス」内にアプリケーションをインストールして作動することにより守ろうとするものがある。あるサンドボックス化されたコンピューティング環境において、アプリケーションは、典型的には、障害、脆弱性又は悪意のあるコードがコンピューティングシステムの他の部分へ拡張することを防止しようとして、他のアプリケーション又はシステムリソースのデータ又はコードにアクセスすることを防止される。
【０００２】
皮肉にも、サンドボックス化されたコンピューティング環境を守りかつ保護するように設計されるこの同じ機構は、こうした環境内にインストールされるセキュリティソフトウェアが様々な通常のセキュリティ対策（アプリケーションの終了、締め出し、及び／又はアンインストールなど）を実施することを妨げる場合もある。したがって、サンドボックス化されたコンピューティング環境の保護を回避することができる悪意のあるアプリケーションは、このような環境内にインストールされるセキュリティソフトウェアがそれを効果的に戦わせにくい場合があるという理由で、ユーザのデバイスのセキュリティにとって特に危険な脅威となり得る。したがって、本開示は、サンドボックス化されたコンピューティング環境を悪意のあるアプリケーションから保護するための改善されたシステム及び方法に対するニーズを特定しかつこれに対処する。
【発明の概要】
【課題を解決するための手段】
【０００３】
後により詳細に説明するが、本開示は、サンドボックス化されたコンピューティング環境を悪意のあるアプリケーションから保護するための種々のシステム及び方法について述べる。ある実施例において、このようなタスクを実施するための方法は、（ｉ）アプリケーションのデータ及びコード実行をコンピューティングデバイス上のオペレーティングシステム内で実行される少なくとも１つの他のアプリケーションから隔離するサンドボックス化された環境内で実行されるアプリケーションによる、少なくとも１つのアプリケーションサービスを立ち上げる試みを識別することと、（ｉｉ）アプリケーションが潜在的なセキュリティリスクを表すと決定することと、（ｉｉｉ）コンピューティングデバイスのユーザを、アプリケーションによってもたらされる潜在的なセキュリティリスクを推奨されるセキュリティ対策を実施することにより修正するように促すことと、（ｉｖ）ユーザによる推奨されるセキュリティ対策の実施を待ちながら、アプリケーションによるアプリケーションサービスを立ち上げる試みをブロックしてコンピューティングデバイスを守ること、を含み得る。
【０００４】
いくつかの実施形態では、オペレーティングシステムは、オペレーティングシステム内で実行される全てのアプリケーションを、各アプリケーションのデータ及びコード実行をオペレーティングシステム内で実行される他の全てのアプリケーションから隔離することによってサンドボックス化するように構成され得る。ある実施例において、サンドボックス化された環境は、オペレーティングシステム内で実行されるセキュリティソフトウェアがアプリケーションを自動的に締め出す、及び／又は自動的にアンインストールすることを防止し得る。
【０００５】
種々の実施形態によれば、アプリケーションサービスを立ち上げる試みは、機密情報を捕捉し、機密情報を送信し、悪意のあるリソースにアクセスし、ユーザデータを変更し、特権昇格を要求するユーザプロンプトを生成し、及び／又は広告を生成する試みを含み得る。ある実施例において、推奨されるセキュリティ対策は、コンピューティングデバイス上にインストールされるセキュリティソフトウェアが、サンドボックス化された環境に起因してそれ自体では実施できないコンピューティング動作を表し得る。更に、アプリケーションによってもたらされる潜在的なセキュリティリスクを修正するようにユーザを促すことは、アプリケーションを終了し及び／又はアプリケーションをアンインストールするようにユーザを促すことを含み得る。実施形態によっては、アプリケーションによるアプリケーションサービス立ち上げの試みをブロックすることは、アプリケーションがアプリケーションサービスを立ち上げることを防止すること、及び／又はアプリケーションサービスを、アプリケーションがアプリケーションサービスを立ち上げた後に自動的に終了することを防止することを含み得る。これらの実施形態において、方法は、アプリケーションサービスを自動的に終了することができなければ、アプリケーションサービスを立ち上げたアプリケーションを手動で終了するようにユーザを促すことも含み得る。ある実施例において、アプリケーションサービスを立ち上げたアプリケーションを手動で終了するようにユーザを促すことは、ユーザがアプリケーションの終了に成功したことを検出するまで、アプリケーションを終了するようにユーザを周期的に促すことを含み得る。
【０００６】
悪意のあるアプリケーションがアプリケーションサービスを利用することを防止するための対応するシステムは、（ｉ）アプリケーションのデータ及びコード実行をシステム上のオペレーティングシステム内で実行される少なくとも１つの他のアプリケーションから隔離するサンドボックス化された環境内で実行されるアプリケーションによる、少なくとも１つのアプリケーションサービスを立ち上げる試みを識別する、メモリデバイスに記憶される識別モジュールと、（ｉｉ）アプリケーションが潜在的なセキュリティリスクを表すと決定する、メモリデバイスに記憶される決定モジュールと、（ｉｉｉ）システムのユーザを、推アプリケーションによってもたらされる潜在的なセキュリティリスクを推奨されるセキュリティ対策を実施することにより修正するように促す、メモリデバイスに記憶される通知モジュールと、（ｉｖ）ユーザによる推奨されるセキュリティ対策の実施を待ちながら、アプリケーションによるアプリケーションサービスを立ち上げる試みをブロックしてコンピューティングシステムを守る、セキュリティモジュールと、（ｖ）識別モジュール、決定モジュール、通知モジュール、及びセキュリティモジュールを実行する少なくとも１つの物理プロセッサと、を含む、メモリに記憶されるいくつかのモジュールを含み得る。
【０００７】
いくつかの実施例では、上述の方法は、非一時的コンピュータ可読媒体上のコンピュータ可読命令としてコード化されてもよい。例えば、あるコンピュータ可読媒体は、１つ以上のコンピュータ実行可能命令を含み得、１つ以上のコンピュータ実行可能命令は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されると、コンピューティングデバイスに、（ｉ）アプリケーションのデータ及びコード実行をコンピューティングデバイス上のオペレーティングシステム内で実行される少なくとも１つの他のアプリケーションから隔離するサンドボックス化された環境内で実行されるアプリケーションによる、少なくとも１つのアプリケーションサービスを立ち上げる試みを識別させ、（ｉｉ）アプリケーションが潜在的なセキュリティリスクを表すと決定させ、（ｉｉｉ）コンピューティングデバイスのユーザを、アプリケーションによってもたらされる潜在的なセキュリティリスクを推奨されるセキュリティ対策を実施することにより修正するように促させ、（ｉｖ）ユーザによる推奨されるセキュリティ対策の実施を待つ間に、アプリケーションによるアプリケーションサービスを立ち上げる試みをブロックしてコンピューティングデバイスを守らせ得る。
【０００８】
上述の実施形態のいずれかによる特徴は、本明細書に記載される一般原理に従って、互いに組み合わせて使用されてもよい。これら及び他の実施形態、特徴、及び利点は、添付の図面及び特許請求の範囲と併せて以下の発明を実施するための形態を読むことによって更に十分に理解されるだろう。
【図面の簡単な説明】
【０００９】
添付の図面は、いくつかの例示的な実施形態を図示するものであり、本明細書の一部である。以下の説明と併せて、これらの図面は、本開示の様々な原理を実証及び説明する。
【図１】悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するための例示的なシステムを示すブロック図である。
【図２】悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するための追加的なシステム例を示すブロック図である。
【図３】悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するための例示的な方法を示すフロー図である。
【図４】例示的なセキュリティプロンプトを示す。
【図５】悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するための例示的なタイムラインを示す。
【図６】本明細書に記載され及び／又は図示される実施形態のうちの１つ以上を実装できる例示的なコンピューティングシステムを示すブロック図である。
【図７】本明細書に記載され及び／又は図示される実施形態のうちの１つ以上を実装できる例示的なコンピューティングネットワークを示すブロック図である。
【００１０】
図面を通して、同一の参照符号及び記述は、必ずしも同一ではないが、類似の要素を示す。本明細書で説明される例示的実施形態は、様々な修正物及び代替的な形態が可能であるが、特定の実施形態が例として図面に示されており、本明細書に詳細に記載される。しかしながら、本明細書に記載される例示的実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の「特許請求の範囲」内にある全ての修正物、等価物、及び代替物を網羅する。
【発明を実施するための形態】
【００１１】
本開示は、一般に、サンドボックス化されたコンピューティング環境を悪意のあるアプリケーションから保護するためのシステム及び方法に関する。後により詳細に説明するように、サンドボックス化されたコンピューティング環境は、典型的には、セキュリティソフトウェアが、悪意のあるアプリケーションの終了、締め出し、及び／又はアンインストールなどの様々な通常のセキュリティ対策を実施することを妨げる。このような環境にインストールされるセキュリティソフトウェアは、コンピューティングデバイスのユーザに脆弱性について通知しかつこれを修復する命令を提供し得るが、ユーザがセキュリティリスクを通知される時点からユーザがセキュリティリスクを修復するに足る対策を首尾良く実施する時点までの時間ウィンドウは、悪意のあるアプリケーションがユーザのハードウェア、ソフトウェア又は情報を悪用し、中断し及び／又は別段で悪影響を及ぼすのに十分な長さであり得る。しかしながら、悪意のあるアプリケーションによるアプリケーションサービス立ち上げの試みを、ユーザがより恒久的なセキュリティ対策を成功裏に実施することができるまでブロックすることにより、本明細書に開示するシステムは、この脆弱性ウィンドウの間のユーザのコンピューティングデバイスを守り得、ひいては、サンドボックス化されたコンピューティング環境内のマルウェアによる悪影響を最小限に抑え及び／又は排除する。
【００１２】
以下、図１〜図２を参照して、悪意のあるアプリケーションによるアプリケーションサービスの活用を防止するための例示的なシステムについて詳述する。それに対応するコンピュータ実装方法についてもまた、図３〜図５と関連して詳細に説明する。更に、本明細書に記載される実施形態のうちの１つ以上を実装することができる例示的なコンピューティングシステム及びネットワークアーキテクチャについても、各々図６及び図７に関連して詳述する。
【００１３】
図１は、悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するための例示的なシステム１００を示すブロック図である。この図に図示されるように、例示的なシステム１００は、１つ以上のタスクを実施するための１つ以上のモジュール１０２を含み得る。例えば、また後に更に詳述するように、モジュール１０２は、サンドボックス化された環境内で実行されるアプリケーションによる、少なくとも１つのアプリケーションサービスを立ち上げる試みを識別するようにプログラムされる識別モジュール１０４を含んでもよい。モジュール１０２はまた、アプリケーションが潜在的なセキュリティリスクを表すと決定するようにプログラムされる決定モジュール１０６、及びコンピューティングデバイスのユーザを、アプリケーションによってもたらされる潜在的なセキュリティリスクを修正すべく促すようにプログラムされる通知モジュール１０８も含んでもよい。最後に、モジュール１０２は、ユーザによる推奨されるセキュリティ対策の実施を待つ間に、アプリケーションによるアプリケーションサービスを立ち上げる試みをブロックしてコンピューティングデバイスを守るようにプログラムされるセキュリティモジュール１１０を含んでもよい。別々の要素として図示されるが、図１のモジュール１０２のうちの１つ以上は、単一のモジュール又はアプリケーションの部分を表してもよい。
【００１４】
特定の実施形態では、図１のモジュール１０２のうちの１つ以上は、コンピューティングデバイスによって実行されると、コンピューティングデバイスに１つ以上のタスクを実施させ得る、１つ以上のソフトウェアアプリケーション又はプログラムを表し得る。例えば、また後に更に詳細するように、モジュール１０２のうちの１つ以上は、図２に示されるデバイス（例えば、コンピューティングデバイス２０２）などの１つ以上のコンピューティングデバイスに記憶されかつその上で作動するように構成されるモジュールを表してもよい。図１のモジュール１０２のうちの１つ以上はまた、１つ以上のタスクを実施するように構成された１つ以上の専用コンピュータの全て又は一部を表し得る。
【００１５】
図１に示すように、例示的なシステム１００は、システムメモリ１４０などの１つ以上のメモリデバイスも含み得る。システムメモリ１４０は、一般に、データ及び／又はコンピュータ可読命令を記憶できる任意のタイプ又は形態の揮発性又は不揮発性の記憶デバイス又は媒体を表す。ある実施例において、システムメモリ１４０は、モジュール１０２のうちの１つ以上を記憶し、ロードし及び／又は保持してもよい。システムメモリ１４０の例としては、非限定的に、ランダムアクセスメモリ（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、ＰＤＡ）、マルチメディアプレーヤ、埋め込みシステム、ウェアラブルデバイス（例えば、スマートウォッチ、スマートグラス、他）、スマートビークル、スマートパッケージング（例えば、アクティブ又はインテリジェントパッケージング）、ゲーム機、いわゆるモノのインターネットデバイス（例えば、スマート家電、他）、それらのうちの１つ以上の変形形態若しくは組み合わせ、及び／又は他の任意の好適なコンピューティングデバイスが挙げられる。
【００１９】
ある実施例において、コンピューティングデバイス２０２上のオペレーティングシステム（ＡＮＤＲＯＩＤなど）は、サンドボックス環境内で１つ以上のユーザアプリケーションを実行してもよい。本明細書で使用する「サンドボックス」又は「サンドボックス化された環境」という用語は、一般に、あるアプリケーションの少なくとも１つの態様（そのデータ及び／又はコード実行など）が、そのコンピューティング環境内で実行されるアプリケーション及び／又はシステムソフトウェアの少なくとも１つの他の態様から隔離されるコンピューティング環境を指す。いくつかの実施例において、サンドボックスは、ディスク及びメモリ上のスクラッチスペースなどの厳しく制御されたリソースセットを、ユーザスペース２１０などのユーザスペース内のサンドボックス化された各アプリケーションへ割り当てることによって達成されてもよい。
【００２０】
図２に示す実施例において、各アプリケーションは、各アプリケーションが他の全てのアプリケーションから隔離されるように、ユーザスペース２１０内に固有のサンドボックスを割り当てられてもよい。例えば、セキュリティアプリケーションは、セキュリティアプリサンドボックス２１２内に隔離されてもよく、第１のアプリケーション（「ａｐｐ１」）は、ａｐｐ１サンドボックス２１４（１）内に、第２のアプリケーション（「ａｐｐＮ」）は、ａｐｐＮサンドボックス（Ｎ）内に、等々と隔離されてもよい。いくつかの実施例において、各アプリケーションサンドボックスは、ＡＮＤＲＯＩＤオペレーティングシステムなどのＬＩＮＵＸベースのオペレーティングシステムによって割り当てられるＵＩＤなどの、固有で一意のユーザＩＤ（「ＵＩＤ」）に関連付けられてもよい。
【００２１】
いくつかの実施形態において、コンピューティングデバイス２０２のサンドボックス化された環境は、セキュリティソフトウェア（セキュリティアプリサンドボックス２１２内で実行されるセキュリティアプリケーションなど）がサンドボックス２１４（１）〜（Ｎ）内で実行されるアプリケーションなどの他のアプリケーションを自動的に終了する（例えば、強制終了する）、締め出す、及び／又はアンインストールすることを防止してもよい。例えば、図２に示すサンドボックス化された環境は、各ユーザアプリケーション（セキュリティソフトウェアを含む）が、内部に記憶されるデータ及び／又はコードを含む他の任意のアプリケーションのサンドボックスにアクセスすることを防止するように構成されてもよい。後述するように、他のアプリケーションへのこのファイルレベルアクセスの欠如は、こうした環境内にインストールされるセキュリティアプリケーションが通常のセキュリティ対策を実施する能力をも制限し得る。例えば、ＡＮＤＲＯＩＤのオペレーティングシステムは、任意の所与のアプリケーション（セキュリティソフトウェアを含む）が、異なるＵＩＤを有し及び／又は異なるシステムキーで署名される他の任意のアプリケーションを終了し（例えば、強制終了し）及び／又はアンインストールすることを防止することから、ＡＮＤＲＯＩＤ内のセキュリティソフトウェアは、セキュリティソフトウェアがセキュリティリスクを表すとして識別した悪意のあるアプリケーションを含む他のアプリケーションを終了し、締め出し及び／又はアンインストールすることをなし得ない場合がある。
【００２２】
図３は、悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するための例示的なコンピュータ実装方法３００を示すフロー図である。図３に示されるステップは、図１のシステム１００、図２のシステム２００、及び／又はそれらのうちの１つ以上の変形形態若しくは組み合わせを含む、任意の好適なコンピュータ実行可能コード及び／又はコンピューティングシステムによって実施され得る。ある実施例において、図３に示すステップの各々は、その構造が後に例を詳述する複数のサブステップを含む、及び／又はサブステップによって表されるアルゴリズムを表してもよい。
【００２３】
図３に示すように、ステップ３０２において、本明細書に記載のシステムのうちの１つ以上は、アプリケーションのデータ及びコード実行をコンピューティングデバイス上のオペレーティングシステム内で実行される少なくとも１つの他のアプリケーションから隔離するサンドボックス化された環境内で実行されるアプリケーションによる、少なくとも１つのアプリケーションサービスを立ち上げる試みを識別してもよい。例えば、識別モジュール１０４は、図２のコンピューティングデバイス２０２上で実行されるセキュリティアプリケーションの一部（例えば、ユーザスペース２１０内のセキュリティアプリサンドボックス２１２内で実行されるセキュリティアプリケーション）として、あるアプリケーション（例えば、ユーザスペース２１０内のａｐｐ１サンドボックス２１４（１）で実行されるアプリケーション）によるアプリケーションサービスの立ち上げを識別してもよい。
【００２４】
本明細書で使用する「アプリケーションサービス」という用語は、一般に、アプリケーションのためにコンピューティングタスクを実施できる任意のタイプ又は形態のアプリケーション又はシステム構成要素を指す。いくつかの実施例において、アプリケーションサービスは、バックグラウンドで実施される（即ち、コンピューティングデバイスのユーザがフォアグラウンド又はアクティブウィンドウにおいてアプリケーションと対話していない場合の）コンピューティングタスクを指してもよい。正当なタスクのホストを実施することに加えて、アプリケーションサービスは、マルウェア開発者により、例えば、機密情報の捕捉（例えば、キーストロークのログ、スクリーンキャプチャの生成、パスワードの探り出し、他による）、機密情報の送信（例えば、無認可の第三者宛て）、ユーザ及び／又はシステムデータの変更（例えば、ユーザ及び／又はシステムデータの暗号化、削除及び／又は改竄）、特権昇格を要求するユーザプロンプト（例えば、ユーザがアプリケーションに、ユーザの連絡先、デバイスのカメラ、他へのアクセスなどの機密のデータ又はリソースへのアクセスの許可を与えるように要求するプロンプト）の生成、悪意のあるリソースへのアクセス（例えば、悪意のあるファイルのダウンロード）、広告の生成及び／又は提供、他を含む、種々の不正なタスクを実施するために使用されることがある。
【００２５】
本明細書に記載されるシステムは、様々な方法でステップ３０２を実施してもよい。先に詳述したように、いくつかの実施例において、本明細書に記載するシステムは、あるアプリケーションのデータ及び／又はコード実行を少なくとも１つの他のアプリケーションから（及び場合により他の全てのアプリケーションから）隔離するサンドボックス化された環境内で動作してもよい。これらの実施例において、識別モジュール１０４は（例えば、コンピューティングデバイス２０２のユーザスペース２１０内のセキュリティアプリサンドボックス２１２内で実行されるセキュリティアプリケーションの一部として）、あるアプリケーション（例えば、ａｐｐ１サンドボックス２１４（１）内で実行されるアプリケーション）によるアプリケーションサービス立ち上げの試みを、カーネルスペース２２０（即ち、オペレーティングシステムのカーネル、カーネル拡張部、デバイスドライバ、他を実行するために予約されるスペース）との通信によって識別してもよい。例えば、識別モジュール１０４は（例えば、カーネルスペース２２０と通信することにより）、コンピューティングデバイス２０２上で作動している少なくとも１つのアプリケーション又はプロセス（例えば、ａｐｐ１サンドボックス２１４（１）内で実行されるアプリケーション）を識別する情報を取得してもよい。識別モジュール１０４は、次に（やはり、例えばカーネルスペース２２０と、例えばアプリケーションのＵＩＤ又はプロセス名を用いて通信することにより）、アプリケーションによるアプリケーションサービス立ち上げのあらゆる試みを識別してもよい。
【００２６】
いくつかの実施例において、識別モジュール１０４は、アプリケーションによるアプリケーションサービス立ち上げの試みをリアルタイムで識別してもよく、即ち、識別モジュール１０４は、カーネルレベルのフックを利用して、サービス立ち上げの要求を、要求が認められる前に識別してもよい。しかしながら、他の実施例において、識別モジュール１０４は、こうした試みを、要求が認められた後に識別してもよい。
【００２７】
いくつかの実施形態において、モジュール１０２は（例えば、セキュリティアプリサンドボックス２１２内で実行されるセキュリティアプリケーションの一部として）、コンピューティングデバイス上で作動しているアプリケーション及び／又はこのようなアプリケーションにより立ち上げられるサービスを識別する情報を要求しかつ取得するために、コンピューティングデバイスのユーザからの特権昇格を求めることがある。これらの実施形態において、モジュール１０２は、ユーザを（例えば、セキュリティアプリケーションをインストールする間に）このような特権昇格を認めるように促してもよい。加えて、識別モジュール１０４は、作動中のアプリケーション及びその関連サービスを識別する情報を得るために、カーネルスペース２２０との対話に際して様々な異なるクラス、方法及びコマンドを用いてもよい。例えば、ＡＮＤＲＯＩＤのオペレーティングシステム内で実行される場合、識別モジュール１０４は、ＡｃｔｉｖｉｔｙＭａｎａｇｅｒクラス及びその関連のサブクラス（例えば、ＡｃｔｉｖｉｔｙＭａｎａｇｅｒ．ＲｕｎｎｉｎｇＡｐｐＰｒｏｃｅｓｓＩｎｆｏ、ＡｃｔｉｖｉｔｙＭａｎａｇｅｒ．ＲｕｎｎｉｎｇＳｅｒｖｉｃｅＩｎｆｏ、他）及び方法（例えば、ｇｅｔＲｕｎｎｉｎｇＡｐｐＰｒｏｃｅｓｓｅｓ、ｇｅｔＲｕｎｎｉｎｇＳｅｒｖｉｃｅｓ、他）を利用して、カーネルスペース２２０からこうした情報を取得してもよい。
【００２８】
ステップ３０４において、本明細書に記載のシステムは、ステップ３０２で識別されたアプリケーション（及び／又はこれに関連するアプリケーションサービス立ち上げの試み）が潜在的なセキュリティリスクを表すと決定してもよい。例えば、決定モジュール１０６は（例えば、セキュリティアプリサンドボックス２１２内で作動するセキュリティアプリケーションの一部として）、ａｐｐ１サンドボックス２１４（１）内で作動するアプリケーション（及び／又は、このアプリケーションによるアプリケーションサービス立ち上げの試み）が潜在的なセキュリティリスクを表すと決定してもよい。
【００２９】
本明細書で使用する「潜在的なセキュリティリスク」という言い回しは、一般に、ユーザのコンピュータハードウェア、ソフトウェア又は情報を害し、悪用し、中断し、宛先を変え、及び／又は別段でこれに悪影響を与えることが可能なあらゆるコンピューティング動作を指す。潜在的なセキュリティリスクの例としては、マルウェア（例えば、ウイルス、ワーム、トロイの木馬、ランサムウェア）、スパイウェア、アドウェア、スケアウェア、他が挙げられる。いくつかの実施例において、あるアプリケーション（及び／又はその関連サービス）は、このアプリケーションのレピュテーションが未知であれば（即ち、このアプリケーションが正当なものか悪意のあるものかが知られていなければ）潜在的なセキュリティリスクとして分類されてもよい。
【００３０】
本明細書に記載するシステムは、ステップ３０４を様々な方法で実施してもよい。例えば、決定モジュール１０６は、あるアプリケーション（及び／又は、このアプリケーションによるアプリケーションサービス立ち上げの試み）がセキュリティリスクを表すことを、署名ベースの技法を用いて（例えば、アプリケーション又はその関連サービスのいずれかのパッケージ又はファイル名を既知の悪意のあるアプリケーション及びサービスのデータベースと照合することにより）、挙動ヒューリスティックを用いて（例えば、アプリケーション又はその関連サービスのうちのいずれかの挙動を既知の悪意のあるアプリケーションの挙動と比較することにより）、及び／又は、アプリケーション（又はその関連サービスのいずれか）が悪意のあるものであるかどうかを決定できる他の任意の技法を用いて、決定してもよい。
【００３１】
ステップ３０６において、本明細書に記載するシステムは、コンピューティングデバイスのユーザを、アプリケーションによってもたらされる潜在的なセキュリティリスクを推奨されるセキュリティ対策の実施によって修正するように促してもよい。例えば、通知モジュール１０８は（例えば、セキュリティアプリサンドボックス２１２内で作動するセキュリティアプリケーションの一部として）、コンピューティングデバイス２０２のユーザに推奨されるセキュリティ対策の実施を促し、ａｐｐ１サンドボックス２１４（１）内で作動するアプリケーションによってもたらされる潜在的なセキュリティリスクを修正してもよい。
【００３２】
本明細書で使用する「セキュリティ対策」という言い回しは、一般に、コンピューティングデバイスを悪意のあるアプリケーションから保護し及び／又は悪意のあるアプリケーションに起因する損傷を修復することができるあらゆる行為を指す。通知モジュール１０８がユーザに推奨し得るセキュリティ対策の例としては、非限定的に、アプリケーションの終了（例えば、アプリケーションの閉鎖又は強制終了）、アプリケーションのアンインストール、削除又は別段による除去、アプリケーションに関連付けられる許可のダウングレード又は別段による変更、セキュリティアプリケーション又はプロセスのインストール、セキュリティアプリケーション又はプロセスの作動、他が挙げられる。いくつかの実施例において、ステップ３０６における通知モジュール１０８により推奨されるセキュリティ対策は、セキュリティソフトウェアがコンピューティングデバイス２０２のサンドボックス化された環境に起因してそれ自体では実施できないコンピューティング動作を表してもよい。
【００３３】
本明細書に記載するシステムは、ステップ３０６において生成されるセキュリティプロンプト内に様々な情報を含んでもよい。例えば、通知モジュール１０８は、（１）問題のアプリケーションを識別し、（２）問題のアプリケーションがセキュリティリスクを表す理由を示し、及び／又は（３）アプリケーションによってもたらされるセキュリティリスクを修正するためにユーザが実施すべき推奨されるセキュリティ対策を識別してもよい。例えば、図４に示すように、通知モジュール１０８は、アプリケーション「ＭａｌＰｈｏｔｏｓ」が写真及び電話番号を漏洩し、よってアンインストールされるべきであることを示すセキュリティプロンプト４０２を生成してもよい。この実施例において、コンピューティングデバイス２０２のユーザは、セキュリティプロンプト４０２内に提供される「クリックしてアンインストール」ボタンをクリックすることにより、「ＭａｌＰｈｏｔｏｓ」アプリケーションをアンインストールしてもよい。
【００３４】
図３に戻ると、ステップ３０８において、本明細書に記載するシステムは、ユーザによる推奨されるセキュリティ対策の実施を待つ間に、アプリケーションによるアプリケーションサービスを立ち上げる試みをブロックしてコンピューティングデバイスを守ってもよい。例えば、セキュリティモジュール１１０は（例えば、コンピューティングデバイス２０２上のセキュリティアプリサンドボックス２１２内で作動するセキュリティアプリケーションの一部として）、コンピューティングデバイス２０２のユーザスペース２１０内のａｐｐ１サンドボックス２１４（１）内で作動する悪意のあるアプリケーションによるアプリケーションサービス立ち上げのあらゆる試みをブロックしてもよい。
【００３５】
本明細書に記載するシステムは、アプリケーションによるアプリケーションサービス立ち上げの試みを、様々な方法でブロックしてもよい。識別モジュール１０４が、カーネルレベルのフックを利用して、サービス立ち上げの要求をかかる要求が認められる前に識別する実施例では、セキュリティモジュール１１０は、アプリケーションによるアプリケーションサービスの立ち上げを完全に防止し得る。しかしながら、識別モジュール１０４がこうした試みを、要求が認められた後に識別する実施例では、セキュリティモジュール１１０がアプリケーションサービスを即座に、又はアプリケーションによるその立ち上げのすぐ後で自動的に終了してもよい。例えば、ＡＮＤＲＯＩＤのオペレーティングシステム内で実行される場合、セキュリティモジュール１１０は、ＡｃｔｉｖｉｔｙＭａｎａｇｅｒクラス及びその関連するサブクラス及び方法（例えば、ＡｃｔｉｖｉｔｙＭａｎａｇｅｒ．ｋｉｌｌＢａｃｋｇｒｏｕｎｄＰｒｏｃｅｓｓｅｓ）を利用して、所与のアプリケーション又はパッケージに関連付けられる全てのバックグラウンドプロセス又はサービスを直ちに終了してもよい。
【００３６】
セキュリティモジュール１１０が（例えば、特権が不十分であることに起因して、及び／又はサンドボックス化された環境の性質に起因して）問題のアプリケーションサービスを自動的に終了できなければ、通知モジュール１０８は、コンピューティングデバイス２０２のユーザを、アプリケーションサービスを立ち上げたアプリケーションを手動で終了する（例えば、強制終了する）ように促してもよい。このような実施例において、通知モジュール１０８は、ユーザがアプリケーションの終了に成功したことを検出するまで、ユーザを周期的に（例えば、５秒毎、１分毎、３０分毎、他で）促してもよい。
【００３７】
いくつかの実施形態において、モジュール１０２は（例えば、セキュリティアプリサンドボックス２１２内で実行されるセキュリティアプリケーションの一部として）、アプリケーションサービスをブロックし及び／又は終了するために、コンピューティングデバイスのユーザからの特権昇格を求めることがある。これらの実施形態において、セキュリティアプリケーションのモジュール１０２は、ユーザを（例えば、セキュリティアプリケーションをインストールする間に）このような特権昇格を認めるように促してもよい。
【００３８】
先に詳述したように、コンピューティングデバイス２０２のサンドボックス化された環境は、コンピューティングデバイス２０２上で作動する各ユーザアプリケーション（セキュリティソフトウェアを含む）が、内部に記憶されるデータ及び／又はコードを含む他の任意のアプリケーションのサンドボックスにアクセスすることを防止し得る。しかしながら、他のアプリケーションへのファイルレベルアクセスの欠如は、サンドボックス化された環境内にインストールされるセキュリティソフトウェアが悪意のあるアプリケーションの終了、締め出し、及び／又はアンインストールなどの通常のセキュリティ対策を実施する能力を制限することにもなり得る。したがって、コンピューティングデバイス２０２のサンドボックス化された環境内にインストールされるセキュリティソフトウェアは、コンピューティングデバイス２０２を効果的に守るために、ユーザが様々なセキュリティ対策（例えば、アプリケーションの終了及び／又はアンインストール）を実施することに依存する（かつこのような実施をユーザに促す）必要がある場合がある。残念ながら、コンピューティングデバイス２０２のユーザは、こうした実施を促されたとしても、悪意のあるアプリケーションが、ユーザのハードウェア、ソフトウェア又は情報を害し、悪用し、中断し及び／又は別段でこれに悪影響を与え得る前に、推奨されたセキュリティ対策を実施し得ない（又は実施し遅れる、又は実施を忘れる）ことがある。
【００３９】
図５に示すタイムラインは、この問題（及び本明細書に記載するシステムにより提供されるソリューション）を強調表示したものである。この図が示すように、時点Ｔ１において、サンドボックス化された環境内で動作するセキュリティアプリケーション（例えば、図２のセキュリティアプリサンドボックス２１２内で作動するセキュリティアプリケーションのモジュール１０２）は、コンピューティングデバイス上にインストールされる、又はコンピューティングデバイス上で作動する悪意のあるアプリケーションなどの潜在的なセキュリティリスクを検出し得る。これを検出した時点で、セキュリティアプリケーションは、コンピューティングデバイスのユーザを、サンドボックス化された環境の性質に起因してセキュリティアプリケーションがそのままでは実施し得ない場合がある推奨されるセキュリティ対策（例えば、悪意のあるアプリケーションの終了及び／又はアンインストール）を実施するように促してもよい。この実施例では、本明細書に開示するシステムがなければ、時点Ｔ１から、ユーザが推奨されるセキュリティ対策を成功裏に実行する時点Ｔ３までの時間ウィンドウの間、問題のコンピューティングデバイスは、保護されないまま（よって、識別されたセキュリティリスクに対して無防備なまま）であり得る。
【００４０】
これを矯正するために、時点Ｔ１において潜在的なセキュリティリスクを検出すると、即、時点Ｔ２において、セキュリティアプリケーションは、識別されたセキュリティリスクの原因であるアプリケーションを監視し、かつこのアプリケーションによるアプリケーションサービス立ち上げの試みを（例えば、アプリケーションがアプリケーションサービスを立ち上げることを防止することにより、及び／又はアプリケーションにより立ち上げられる全てのアプリケーションサービスを自動的に終了することにより）ブロックしてもよい。そうすることにより、本明細書に開示するシステムによるセキュリティアプリケーションは、問題のコンピューティングデバイスを、コンピューティングデバイスのユーザがこれを（例えば、セキュリティアプリケーションにより推奨されるセキュリティ対策を実施することによって）永久的に修正できるまで、識別されたセキュリティリスクから保護し得る。
【００４１】
図６は、本明細書に記載され及び／又は図示される実施形態のうちの１つ以上を実装できる例示的なコンピューティングシステム６１０を示すブロック図である。例えば、コンピューティングシステム６１０のうちの全て又は一部は、単独で又は他の要素と組み合わせてのいずれかで、本明細書に記載されるステップのうちの１つ以上（図３に示されるステップのうちの１つ以上など）を実施し得、及び／又はそれを実施するための手段であり得る。コンピューティングシステム６１０のうちの全て又は一部はまた、本明細書に記載及び／若しくは図示される任意の他のステップ、方法、若しくはプロセスを実施してもよく、並びに／又はそれを実施するための手段であってもよい。
【００４２】
コンピューティングシステム６１０は、コンピュータ可読命令を実行することができる任意のシングル又はマルチプロセッサのコンピューティングデバイス又はシステムを幅広く表す。コンピューティングシステム６１０の例としては、非限定的に、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、ハンドヘルドデバイス、又は他の任意のコンピューティングシステム若しくはデバイスが挙げられる。その最も基本的な構成において、コンピューティングシステム６１０は、少なくとも１つのプロセッサ６１４及びシステムメモリ６１６を含んでもよい。
【００４３】
プロセッサ６１４は、一般に、データを処理すること又は命令を解釈及び実行することができる任意のタイプ又は形態の物理的処理ユニット（例えば、ハードウェア実装型中央処理ユニット）を表す。特定の実施形態において、プロセッサ６１４は、ソフトウェアアプリケーション又はモジュールから命令を受信してもよい。これらの命令は、プロセッサ６１４に、本明細書に記載され及び／又は図示される例示的な実施形態のうちの１つ以上の機能を実施させてもよい。
【００４４】
システムメモリ６１６は、一般に、データ及び／又は他のコンピュータ可読命令を記憶することができる任意のタイプ又は形態の揮発性又は不揮発性の記憶デバイス又は媒体を表す。システムメモリ６１６の例としては、非限定的に、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられる。必須ではないが、特定の実施形態において、コンピューティングシステム６１０は、揮発性メモリユニット（例えば、システムメモリ６１６など）及び不揮発性記憶デバイス（例えば、後に詳述するような一次記憶デバイス６３２など）の両方を含んでもよい。一実施例では、図１のモジュール１０２のうちの１つ以上は、システムメモリ６１６内にロードされ得る。
【００４５】
いくつかの実施例では、システムメモリ６１６は、プロセッサ６１４による実行のために、オペレーティングシステム６４０を記憶及び／又はロードし得る。一実施例では、オペレーティングシステム６４０は、コンピュータハードウェア及びソフトウェアリソースを管理し、並びに／又はコンピューティングシステム６１０上のコンピュータプログラム及び／又はアプリケーションに共通のサービスを提供するソフトウェアを含み及び／又はこれを表してもよい。オペレーティングシステム６４０の例としては、非限定的に、ＬＩＮＵＸ、ＪＵＮＯＳ、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（登録商標）、ＷＩＮＤＯＷＳ（登録商標）  ＭＯＢＩＬＥ、ＭＡＣ  ＯＳ、ＡＰＰＬＥのＩＯＳ、ＵＮＩＸ（登録商標）、ＧＯＯＧＬＥ  ＣＨＲＯＭＥ  ＯＳ、ＧＯＯＧＬＥのＡＮＤＲＯＩＤ、ＳＯＬＡＲＩＳ、それらのうちの１つ以上の変形形態、及び／又は任意の他の好適なオペレーティングシステムが挙げられる。
【００４６】
特定の実施形態では、例示的なコンピューティングシステム６１０はまた、プロセッサ６１４及びシステムメモリ６１６に加えて、１つ以上の構成要素又は要素も含み得る。例えば、図６に示すように、コンピューティングシステム６１０は、メモリコントローラ６１８、入力／出力（Ｉ／Ｏ）コントローラ６２０、及び通信インターフェース６２２を含み得、これらのそれぞれは、通信基盤６１２を介して相互接続され得る。通信基盤６１２は、一般に、コンピューティングデバイスの１つ以上の構成要素間の通信を容易にすることができる、任意のタイプ又は形態の基盤を表す。通信基盤６１２の例としては、非限定的に、通信バス（業界標準アーキテクチャ（ＩＳＡ）、周辺装置相互接続（ＰＣＩ）、ＰＣＩエクスプレス（ＰＣＩｅ）、又は類似のバスなど）、及びネットワークが挙げられる。
【００４７】
メモリコントローラ６１８は、一般に、メモリ若しくはデータを扱うこと、又はコンピューティングシステム６１０の１つ以上の構成要素間の通信を制御すること、ができる、任意のタイプ又は形態のデバイスを表す。例えば、特定の実施形態では、メモリコントローラ６１８は、通信基盤６１２を介して、プロセッサ６１４、システムメモリ６１６、及びＩ／Ｏコントローラ６２０の間の通信を制御してもよい。
【００４８】
Ｉ／Ｏコントローラ６２０は、一般に、コンピューティングデバイスの入出力機能を調整及び／又は制御することができる、任意のタイプ又は形態のモジュールを表す。例えば、特定の実施形態では、Ｉ／Ｏコントローラ６２０は、プロセッサ６１４、システムメモリ６１６、通信インターフェース６２２、ディスプレイアダプタ６２６、入力インターフェース６３０、及び記憶インターフェース６３４などの、コンピューティングシステム６１０の１つ以上の要素間のデータ転送を制御又は容易にし得る。
【００４９】
図６に示すように、コンピューティングシステム６１０はまた、ディスプレイアダプタ６２６を介してＩ／Ｏコントローラ６２０に連結された少なくとも１つのディスプレイデバイス６２４も含み得る。ディスプレイデバイス６２４は、一般に、ディスプレイアダプタ６２６によって転送された情報を視覚的に表示することができる、任意のタイプ又は形態のデバイスを表す。同様に、ディスプレイアダプタ６２６は、一般に、ディスプレイデバイス６２４上に表示するために通信基盤６１２から（又は当該技術分野において既知であるように、フレームバッファから）グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形態のデバイスを表す。
【００５０】
図６に示すように、例示的なコンピューティングシステム６１０はまた、入力インターフェース６３０を介してＩ／Ｏコントローラ６２０に連結された少なくとも１つの入力デバイス６２８も含み得る。入力デバイス６２８は、一般に、コンピュータ又は人間のいずれかが生成した入力を例示的なコンピューティングシステム６１０に提供することができる任意のタイプ又は形態の入力デバイスを表す。入力デバイス６２８の例としては、非限定的に、キーボード、ポインティングデバイス、音声認識デバイス、それらのうちの１つ以上の変形形態若しくは組み合わせ、及び／又は任意の他の入力デバイスが挙げられる。
【００５１】
それに加えて、又は代替的に、例示的なコンピューティングシステム６１０は、追加のＩ／Ｏデバイスを含み得る。例えば、例示的なコンピューティングシステム６１０は、Ｉ／Ｏデバイス６３６を含み得る。この実施例では、Ｉ／Ｏデバイス６３６は、コンピューティングシステム６１０との人間の相互作用を容易にするユーザインターフェースを含み得る及び／又はそれを表し得る。Ｉ／Ｏデバイス６３６の例としては、非限定的に、コンピュータマウス、キーボード、モニタ、プリンタ、モデム、カメラ、スキャナ、マイクロフォン、タッチスクリーンデバイス、それらのうちの１つ以上の変形形態若しくは組み合わせ、及び／又は任意の他のＩ／Ｏデバイスが挙げられる。
【００５２】
通信インターフェース６２２は、例示的なコンピューティングシステム６１０と１つ以上の追加のデバイスとの間の通信を容易にすることができる、任意のタイプ又は形態の通信デバイス又はアダプタを幅広く表す。例えば、特定の実施形態では、通信インターフェース６２２は、コンピューティングシステム６１０と、追加のコンピューティングシステムを含む私設又は公衆ネットワークとの間の通信を容易にし得る。通信インターフェース６２２の例としては、非限定的に、有線ネットワークインターフェース（ネットワークインターフェースカードなど）、無線ネットワークインターフェース（無線ネットワークインターフェースカードなど）、モデム、及び任意の他の好適なインターフェースが挙げられる。少なくとも１つの実施形態では、通信インターフェース６２２は、インターネットなどのネットワークへの直接リンクを介してリモートサーバへの直接接続を提供し得る。通信インターフェース６２２はまた、例えば、ローカルエリアネットワーク（イーサネット（登録商標）ネットワークなど）、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラー電話接続、衛星データ接続、又は他の任意の好適な接続を通して、このような接続を間接的に提供してもよい。
【００５３】
特定の実施形態では、通信インターフェース６２２はまた、外部バス又は通信チャネルを介したコンピューティングシステム６１０と１つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成されたホストアダプタも表し得る。ホストアダプタの例としては、非限定的に、小型コンピュータシステムインターフェース（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）ディスク）、電子記憶媒体（例えば、ソリッドステートドライブ及びフラッシュメディア）、並びに他の分散システムなどの非一時的媒体が挙げられる。
【００５９】
コンピュータプログラムを包含するコンピュータ可読媒体は、コンピューティングシステム６１０内にロードされ得る。コンピュータ可読媒体に記憶されたコンピュータプログラムのうちの全て又は一部は、次いで、システムメモリ６１６内に、並びに／又は記憶デバイス６３２及び６３３の様々な部分内に記憶され得る。プロセッサ６１４によって実行されるとき、コンピューティングシステム６１０内にロードされたコンピュータプログラムは、プロセッサ６１４に、本明細書に記載及び／若しくは図示される例示的な実施形態のうちの１つ以上の機能を実施させ得、並びに／又はそれらを実施するための手段とならせ得る。それに加えて、又は代替的に、本明細書に記載及び／又は図示される例示的な実施形態のうちの１つ以上は、ファームウェア及び／又はハードウェアに実装されてもよい。例えば、コンピューティングシステム６１０は、本明細書に開示される例示的な実施形態のうちの１つ以上を実装するように適合された特定用途向け集積回路（ＡＳＩＣ）として構成され得る。
【００６０】
図７は、クライアントシステム７１０、７２０、及び７３０、並びにサーバ７４０及び７４５がネットワーク７５０に連結され得る例示的なネットワークアーキテクチャ７００のブロック図である。上で詳述したように、ネットワークアーキテクチャ７００のうちの全て又は一部は、単独で又は他の要素と組み合わせてのいずれかで、本明細書に開示されるステップのうちの１つ以上（図３に示されるステップのうちの１つ以上など）を実施し得、及び／又はそれを実施するための手段であり得る。ネットワークアーキテクチャ７００のうちの全て又は一部はまた、本開示に記載される他のステップ及び特徴を実施するために使用されてもよく、並びに／又はそれを実施するための手段であってもよい。
【００６１】
クライアントシステム７１０、７２０、及び７３０は、一般に、図６の例示的なコンピューティングシステム６１０など、任意のタイプ又は形態のコンピューティングデバイス又はシステムを表す。同様に、サーバ７４０及び７４５は、一般に、様々なデータベースサービスを提供する及び／又は特定のソフトウェアアプリケーションを実行するように構成された、アプリケーションサーバ又はデータベースサーバなどのコンピューティングデバイス又はシステムを表す。ネットワーク７５０は、一般に、例えば、イントラネット、ＷＡＮ、ＬＡＮ、ＰＡＮ、又はインターネットを含む、任意の電気通信ネットワーク又はコンピュータネットワークを表す。一実施例では、クライアントシステム７１０、７２０、及び／若しくは７３０、並びに／又はサーバ７４０及び／若しくは７４５は、図１のシステム１００のうちの全て又は一部を含み得る。
【００６２】
図７に示すように、１つ以上の記憶デバイス７６０（１）〜（Ｎ）は、サーバ７４０に直接取り付けられ得る。同様に、１つ以上の記憶デバイス７７０（１）〜（Ｎ）は、サーバ７４５に直接取り付けられ得る。記憶デバイス７６０（１）〜（Ｎ）及び記憶デバイス７７０（１）〜（Ｎ）は、一般に、データ及び／又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。特定の実施形態では、記憶デバイス７６０（１）〜（Ｎ）及び記憶デバイス７７０（１）〜（Ｎ）は、ネットワークファイルシステム（ＮＦＳ）、サーバメッセージブロック（ＳＭＢ）、又は共通インターネットファイルシステム（ＣＩＦＳ）などの様々なプロトコルを使用してサーバ７４０及び７４５と通信するように構成されたネットワーク接続ストレージ（ＮＡＳ）デバイスを表し得る。
【００６３】
サーバ７４０及び７４５はまた、ストレージエリアネットワーク（ＳＡＮ）ファブリック７８０に接続されてもよい。ＳＡＮファブリック７８０は、一般に、複数の記憶デバイス間の通信を容易にすることができる、任意のタイプ又は形態のコンピュータネットワーク又はアーキテクチャを表す。ＳＡＮファブリック７８０は、サーバ７４０及び７４５と、複数の記憶デバイス７９０（１）〜（Ｎ）及び／又はインテリジェント記憶アレイ７９５と、の間の通信を容易にし得る。また、ＳＡＮファブリック７８０は、デバイス７９０（１）〜（Ｎ）及びアレイ７９５が、クライアントシステム７１０、７２０、及び７３０にローカルに取り付けられたデバイスとして現れるような方式で、ネットワーク７５０並びにサーバ７４０及び７４５を介し、クライアントシステム７１０、７２０、及び７３０と記憶デバイス７９０（１）〜（Ｎ）及び／又はインテリジェント記憶アレイ７９５との間の通信を容易にし得る。記憶デバイス７６０（１）〜（Ｎ）及び記憶デバイス７７０（１）〜（Ｎ）と同様に、記憶デバイス７９０（１）〜（Ｎ）及びインテリジェント記憶アレイ７９５は、一般に、データ及び／又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。
【００６４】
特定の実施形態では、図６の例示的なコンピューティングシステム６１０を参照すると、図６の通信インターフェース６２２などの通信インターフェースは、各クライアントシステム７１０、７２０、及び７３０とネットワーク７５０との間の接続を提供するために使用され得る。クライアントシステム７１０、７２０、及び７３０は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ７４０又は７４５上の情報にアクセスすることが可能であり得る。かかるソフトウェアは、クライアントシステム７１０、７２０、及び７３０が、サーバ７４０、サーバ７４５、記憶デバイス７６０（１）〜（Ｎ）、記憶デバイス７７０（１）〜（Ｎ）、記憶デバイス７９０（１）〜（Ｎ）、又はインテリジェント記憶アレイ７９５によってホストされたデータにアクセスすることを可能にし得る。図７は、データを交換するために（インターネットなどの）ネットワークを使用することを示しているが、本明細書に記載及び／又は図示される実施形態は、インターネット又は任意の特定のネットワークベースの環境に限定されない。
【００６５】
少なくとも１つの実施形態では、本明細書に開示される例示的な実施形態のうちの１つ以上の全て又は一部は、コンピュータプログラムとしてコード化され、サーバ７４０、サーバ７４５、記憶デバイス７６０（１）〜（Ｎ）、記憶デバイス７７０（１）〜（Ｎ）、記憶デバイス７９０（１）〜（Ｎ）、インテリジェント記憶アレイ７９５、又はこれらの任意の組み合わせ上にロードされ、これらによって実行され得る。本明細書に開示される例示的な実施形態のうちの１つ以上の全て又は一部はまた、コンピュータプログラムとしてコード化され、サーバ７４０に記憶され、サーバ７４５によって実行され、ネットワーク７５０を通じてクライアントシステム７１０、７２０、及び７３０に分散されてもよい。
【００６６】
先に詳述したように、コンピューティングシステム６１０及び／又はネットワークアーキテクチャ７００の１つ以上の構成要素は、単独又は他の要素との組み合わせのいずれかで、悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するための例示的な方法の１つ以上のステップを実施し得、及び／又はこれを実施するための手段であり得る。
【００６７】
前述の開示は、特定のブロック図、フローチャート、及び実施例を使用して様々な実施形態を記載しているが、本明細書に記載及び／又は図示されるそれぞれのブロック図の構成要素、フローチャートの工程、動作、及び／又は構成要素は、個別に及び／又は集合的に、広範なハードウェア、ソフトウェア、又はファームウェア（若しくはそれらの任意の組み合わせ）の構成を使用して実装されてもよい。それに加えて、同じ機能性を達成するように他の多くのアーキテクチャを実装することができるので、他の構成要素内に包含される構成要素のいかなる開示も、本質的に例示と見なされるべきである。
【００６８】
いくつかの実施例では、図１の例示的なシステム１００のうちの全て又は一部は、クラウドコンピューティング環境又はネットワークベースの環境の一部を表してもよい。クラウドコンピューティング環境は、インターネットを介して、様々なサービス及びアプリケーションを提供してもよい。これらのクラウドベースのサービス（例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしての基盤など）は、ウェブブラウザ又は他のリモートインターフェースを通してアクセス可能であってもよい。本明細書に記載される様々な機能は、リモートデスクトップ環境又は他の任意のクラウドベースのコンピューティング環境を通して提供されてもよい。
【００６９】
様々な実施形態では、図１の例示的なシステム１００のうちの全て又は一部は、クラウドベースのコンピューティング環境内におけるマルチテナンシーを容易にしてもよい。換言すれば、本明細書に記載されるソフトウェアモジュールは、本明細書に記載される機能のうちの１つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム（例えば、サーバ）を構成してもよい。例えば、本明細書に記載されるソフトウェアモジュールのうちの１つ以上は、２つ以上のクライアント（例えば、顧客）がサーバ上で作動しているアプリケーションを共有するのを可能にするように、サーバをプログラムしてもよい。このようにプログラムされたサーバは、複数の顧客（即ち、テナント）の間で、アプリケーション、オペレーティングシステム、処理システム、及び／又は記憶システムを共有してもよい。本明細書に記載されるモジュールのうちの１つ以上はまた、ある顧客が別の顧客のデータ及び／又は設定情報にアクセスできないように、顧客毎にマルチテナントアプリケーションのデータ及び／又は設定情報を分割してもよい。
【００７０】
様々な実施形態によれば、図１の例示的なシステム１００のうちの全て又は一部は、仮想環境内で実装されてもよい。例えば、本明細書に記載されるモジュール及び／又はデータは、仮想機械内で常駐及び／又は実行してもよい。本明細書で使用するとき、「仮想機械」という用語は、一般に、仮想機械マネージャ（例えば、ハイパーバイザ）によってコンピューティングハードウェアから抽出される、任意のオペレーティングシステム環境を指す。それに加えて、又は代替的に、本明細書に記載されるモジュール及び／又はデータは、仮想化層内で常駐及び／又は実行してもよい。本明細書で使用するとき、「仮想化層」という用語は、一般に、オペレーティングシステム環境にオーバーレイする、並びに／あるいはそこから抽出される、任意のデータ層及び／又はアプリケーション層を指す。仮想化層は、基礎となる基本オペレーティングシステムの一部であるかのように仮想化層を提示する、ソフトウェア仮想化ソリューション（例えば、ファイルシステムフィルタ）によって管理されてもよい。例えば、ソフトウェア仮想化ソリューションは、最初に基本ファイルシステム及び／又はレジストリ内の場所に方向付けられる呼び出しを、仮想化層内の場所にリダイレクトしてもよい。
【００７１】
いくつかの実施例では、図１の例示的なシステム１００のうちの全て又は一部は、モバイルコンピューティング環境の部分を表してもよい。モバイルコンピューティング環境は、携帯電話、タブレットコンピュータ、電子ブックリーダ、携帯情報端末、ウェアラブルコンピューティングデバイス（例えば、ヘッドマウントディスプレイを有するコンピューティングデバイス、スマートウォッチなど）などを含む、広範なモバイルコンピューティングデバイスによって実装されてもよい。いくつかの実施例では、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間での１つのみのフォアグラウンドアプリケーションの提示、リモート管理特性、タッチスクリーン特性、位置及び移動データ（例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される）、システムレベルの構成への修正を制限する、及び／又は第３者のソフトウェアが他のアプリケーションの挙動を検査する能力を限定する制限されたプラットフォーム、アプリケーションのインストールを（例えば、認可されたアプリケーションストアからのみ生じるように）制限する制御などを含む、１つ以上の個別の特性を有することができる。本明細書で説明される様々な機能は、モバイルコンピューティング環境に対して提供され得る、及び／又はモバイルコンピューティング環境と相互作用し得る。
【００７２】
それに加えて、図１の例示的なシステム１００のうちの全て又は一部は、情報管理のための１つ以上のシステムの部分を表してもよく、それと相互作用してもよく、それによって生成されるデータを消費してもよく、及び／又はそれによって消費されるデータを生成してもよい。本明細書で使用するとき、「情報管理」という用語は、データの保護、組織化、及び／又は記憶を指してもよい。情報管理のためのシステムの例としては、非限定的に、記憶システム、バックアップシステム、アーカイブシステム、複製システム、高可用性システム、データ検索システム、仮想化システムなどを挙げることができる。
【００７３】
一部の実施形態では、図１の例示的なシステム１００のうちの全て又は一部は、情報セキュリティのための１つ以上のシステムの部分を表してもよく、それによって保護されるデータを生成してもよく、及び／又はそれと通信してもよい。本明細書で使用するとき、「情報セキュリティ」という用語は、保護されたデータに対するアクセスの制御を指してもよい。情報セキュリティのためのシステムの例としては、非限定的に、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、本人認証システム、アクセス制御システム、暗号化システム、ポリシー遵守システム、侵入検出及び防止システム、電子証拠開示システムなどを挙げることができる。
【００７４】
いくつかの実施例によれば、図１の例示的なシステム１００のうちの全て又は一部は、エンドポイントセキュリティのための１つ以上のシステムの部分を表してもよく、それと通信してもよく、及び／又はそれから保護を受けてもよい。本明細書で使用するとき、「エンドポイントセキュリティ」という用語は、不正及び／若しくは違法な使用、アクセス、並びに／又は制御からのエンドポイントシステムの保護を指してもよい。エンドポイント保護のためのシステムの例としては、非限定的に、アンチマルウェアシステム、ユーザ認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどを挙げることができる。
【００７５】
本明細書に記載及び／又は図示されるプロセスパラメータ及び工程の順序は、単なる例として与えられるものであり、所望に応じて変更することができる。例えば、本明細書に図示及び／又は記載される工程は特定の順序で図示又は考察されることがあるが、これらの工程は、必ずしも図示又は考察される順序で実施される必要はない。本明細書に記載される及び／又は図示される様々な例示的な方法はまた、本明細書に記載される及び／又は図示される工程のうちの１つ以上を省略してもよく、又は開示されるものに加えて追加の工程を含んでもよい。
【００７６】
種々の実施形態が、完全に機能的なコンピューティングシステムに関連して本明細書に記載され及び／又は図示されているが、これら例示的な実施形態のうちの１つ以上は、実際に配布を行なうために使用されるコンピュータ可読記憶媒体の特定のタイプに関わらず、多様な形態のプログラム製品として配布され得る。本明細書に開示される実施形態はまた、特定のタスクを実施するソフトウェアモジュールを使用して実装されてもよい。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体又はコンピューティングシステムに記憶されてもよい、スクリプト、バッチ、若しくは他の実行可能ファイルを含んでもよい。一部の実施形態では、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態のうちの１つ以上を実施するようにコンピューティングシステムを構成してもよい。
【００７７】
それに加えて、本明細書に記載されるモジュールのうちの１つ以上は、データ、物理的デバイス、及び／又は物理的デバイスの表現を、１つの形態から別の形態へと変換してもよい。例えば、本明細書に列挙されるモジュールのうちの１つ以上は、潜在的なセキュリティリスクを識別する情報を受信し、この情報を、セキュリティリスクを修正する推奨されるセキュリティ対策に変換し、次に、この変換結果を、ユーザによるセキュリティ対策の実施を推奨するユーザプロンプトとして出力してもよい。それに加えて、又は代替的に、本明細書に列挙されるモジュールのうちの１つ以上は、コンピューティングデバイス上で実行し、コンピューティングデバイスにデータを格納し、並びに／あるいは別の方法でコンピューティングデバイスと相互作用することによって、プロセッサ、揮発性メモリ、不揮発性メモリ、及び／又は物理的コンピューティングデバイスの他の任意の部分を、１つの形態から別の形態へと変換してもよい。
【００７８】
上述の記載は、本明細書に開示される例示的な実施形態の様々な態様を他の当業者が最良に利用するのを可能にするために提供されてきた。この例示的な記載は、網羅的であることを意図するものではなく、又は開示される任意の正確な形態に限定することを意図するものではない。本開示の趣旨及び範囲から逸脱することなく、多くの修正及び変形が可能である。本明細書に開示される実施形態は、あらゆる点で例示的であり、限定的ではないものと見なされるべきである。本開示の範囲を決定する際に、添付の特許請求の範囲及びそれらの等価物を参照するべきである。
【００７９】
別途記載のない限り、「〜に接続される」及び「〜に連結される」という用語（並びにそれらの派生語）は、本明細書及び特許請求の範囲で使用するとき、直接的接続及び間接的接続（即ち、他の要素若しくは構成要素を介する）の両方を許容するものとして解釈されるものである。それに加えて、「ａ」又は「ａｎ」という用語は、本明細書及び特許請求の範囲で使用するとき、「〜のうち少なくとも１つ」を意味するものとして解釈されるものである。最後に、簡潔にするため、「含む」及び「有する」という用語（並びにそれらの派生語）は、本明細書及び特許請求の範囲で使用するとき、「備える」という単語と互換性があり、同じ意味を有する。
【図１】
0006918212.tif 000002
【図２】
0006918212.tif 000003
【図３】
0006918212.tif 000004
【図４】
0006918212.tif 000005
【図５】
0006918212.tif 000006
【図６】
0006918212.tif 000007
【図７】
0006918212.tif 000008