本開示は、一般にアプリケーションの更新を指示するシステム及び方法を対象とする。より詳細に以下に説明されるように、アプリケーションの新しいバージョンが、より攻撃に悪用されやすい(悪用されにくい)かどうかを判定し、その後に、アプリケーションのより安全なバージョンへの更新を容易にする、及び/又は促進する命令を用いてコンピューティングシステムに指示し、且つ/或いはアプリケーションのより安全でないバージョンへの更新を、防止、予防及び/又は阻止する命令を用いてコンピューティングシステムに指示することによって、本明細書で説明されるシステムは、知的なアプリケーション更新を介して、コンピューティングシステムのセキュリティを高めることができる。
以下で、図1、2、及び4を参照して、アプリケーションの更新を指示するための例示的なシステムについて詳細に説明する。対応するコンピュータによって実施される方法の詳細な説明はまた、図3と併せて提供される。加えて、本明細書に記載される実施形態のうちの1つ以上を実施できる例示的なコンピューティングシステム及びネットワークアーキテクチャについては、図5及び6に関連してそれぞれ詳細に説明する。
図1は、アプリケーションの更新を指示するための例示的なシステム100のブロック図である。この図に示されるように、例示的なシステム100は、1つ以上のタスクを実施するための1つ以上のモジュール102を含み得る。例えば、より詳細に以下に説明されるように、例示的なシステム100は、アプリケーションの旧バージョンのインストールが、コンピューティングシステムのセキュリティへの攻撃に悪用されるレートを示す情報を特定し得る、特定モジュール104も含むことができる。特定モジュール104は、また、アプリケーションの後続のバージョンのインストールが、コンピューティングシステムのセキュリティ攻撃に悪用されるレートを示す追加の情報も特定し得る。例示的なシステム100は、更に、判定モジュール106も含むことができ、これは、アプリケーションの旧バージョンのインストールが悪用されるレートと、アプリケーションの後続のバージョンのインストールが悪用されるレートとを比較することによって、アプリケーションの旧バージョンから後続のバージョンへの更新が、少なくとも部分的にコンピューティングシステムのセキュリティに与える影響を判定し得る。
例示的なシステム100は、また、アプリケーションの更新が、コンピューティングシステムのセキュリティに及ぼす影響に少なくとも部分的に基づいた、アプリケーションの旧バージョンのインストールをアプリケーションの後続のバージョンに更新することについての判定を用いて、少なくとも1つのコンピューティングシステムに指示し得る、指示モジュール108も含み得る。図1のモジュール102のうちの1つ以上は、別個の要素として示されているが、単一のモジュール又はアプリケーションの複数の部分を表し得る。
ある実施形態において、図1のモジュール102のうちの1つ以上は、コンピューティングデバイスにより実行されるとき、コンピューティングデバイスに1つ以上のタスクを実行させ得る、1つ以上のソフトウェアアプリケーション又はプログラムを表し得る。例えば、より詳細に以下に説明されるように、モジュール102のうちの1つ以上は、図2に図示されるデバイス(例えば、コンピューティングデバイス202、及び/又はサーバ206)、図5のコンピューティングシステム510、及び/又は図6の例示的なネットワークアーキテクチャ600の部分など、1つ以上のコンピューティングデバイスに記憶され、そこで作動するように構成される、ソフトウェアモジュールを表し得る。図1のモジュール102のうちの1つ以上はまた、1つ以上のタスクを実行するように構成される、1つ以上の特殊目的のコンピュータの全て又は部分を表し得る。
図1に示されるように、例示的なシステム100はまた、データベース120等の1つ以上のデータベースも含んでもよい。1つの例では、データベース120は、アプリケーションを介して行われる悪用についての情報(例えば、アプリケーションの異なるバージョンを区別する情報を含む)を記憶するように構成され得る。
データベース120は、単一のデータベース若しくはコンピューティングデバイス、又は複数のデータベース若しくはコンピューティングデバイスの部分を表してもよい。例えば、データベース120は、図2のサーバ206の一部、図5のコンピューティングシステム510、及び/又は図6の例示的なネットワークアーキテクチャ600の部分を表し得る。或いは、図1のデータベース120は、図2のサーバ206、図5のコンピューティングシステム510、及び/又は図6の例示的なネットワークアーキテクチャ600の部分等の、コンピューティングデバイスによりアクセスされることが可能な、1つ以上の物理的に分離したデバイスを表し得る。
図1の例示的なシステム100は、多様な方法で実施されてもよい。例えば、例示的なシステム100の全て又は一部は、図2の例示的なシステム200の部分を表し得る。図2に示されるように、システム200は、ネットワーク204を介してサーバ206と通信するコンピューティングデバイス202を含むことができる。コンピューティングデバイス202は、モジュール102のうちの1つ以上でプログラムされてもよく、且つ/或いはデータベース120のデータの全て又は一部を記憶し得る。加えて、又は代替的に、サーバ206は、モジュール102のうちの1つ以上でプログラムされてもよく、且つ/或いはデータベース120のデータの全て又は一部を記憶し得る。
一実施形態では、図1にあるモジュール102のうちの1つ以上は、コンピューティングデバイス202及び/又はサーバ206のプロセッサのうちの少なくとも1つにより実行されると、コンピューティングデバイス202及び/又はサーバ206が、アプリケーションの更新を指示するのを容易にし得る。例えば、より詳細に以下に説明されるように、モジュール102のうちの1つ以上は、コンピューティングデバイス202及び/又はサーバ206に、アプリケーションの更新の指示を行わせる。例えば、より詳細に以下に説明されるように、特定モジュール104は、アプリケーション210の旧バージョン214のインストールが、コンピューティングシステムのセキュリティへの攻撃に悪用されるレート230を示す悪用情報222を特定するようにプログラムされ得る。特定モジュール104もまた、アプリケーション210の後続のバージョン216のインストールが、コンピューティングシステムのセキュリティへの攻撃に悪用されるレート232を示す悪用情報224を特定するようにプログラムされ得る。判定モジュール106は、アプリケーション210の旧バージョン214のインストールが悪用されるレート230と、アプリケーション210の後続のバージョン216のインストールが悪用されるレート232とを比較するステップにより、アプリケーション210の旧バージョン214から後続のバージョン216への更新が、少なくとも部分的にコンピューティングシステムのセキュリティに及ぼす影響を判定するようにプログラムされ得る。指示モジュール108は、アプリケーション210の更新が、コンピューティングシステムのセキュリティに及ぼす影響の判定に少なくとも部分的に基づいた、アプリケーション210の旧バージョン214のインストール(例えば、アプリケーションインストール210)を、アプリケーション210の後続のバージョン216(例えば、アプリケーションインストール212)に更新することについての判定240を用いて、少なくとも1つのコンピューティングシステムに指示するようにプログラムされ得る。
コンピューティングデバイス202は、概して、コンピュータで実行可能な命令を読み取ることが可能な任意のタイプ又は形態のコンピューティングデバイスを表す。コンピューティングデバイス202の例としては、ラップトップ、タブレット、デスクトップ、サーバ、携帯電話、個人用デジタル補助装置(PDA)、マルチメディアプレーヤ、組み込みシステム、これらの1つ以上の組み合わせ、図5の例示的なコンピューティングシステム510、又は任意の他の好適なコンピューティングデバイスが挙げられるが、これらに限定されない。
サーバ206は、概して、アプリケーションのセキュリティについての情報を収集、記憶、分析、及び/又は使用することが可能である、任意のタイプ又は形態のコンピューティングデバイスを表す。サーバ206の例としては、様々なデータベースサービスを提供し、且つ/或いは特定のソフトウェアアプリケーションを実行するように構成されたアプリケーションサーバ及びデータベースサーバが挙げられるが、これらに限定されない。
ネットワーク204は、概して、通信又はデータ転送を容易にすることができる、任意の媒体又はアーキテクチャを表す。ネットワーク204の例としては、イントラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、インターネット、電力線通信(PLC)、セルラーネットワーク(例えば、グローバルシステムフォーモービルコミュニケーションズ(GSM(登録商標))ネットワーク)、図6の例示的なネットワークアーキテクチャ600などが挙げられるが、これらに限定されない。ネットワーク204は、無線又は有線接続を使用して、通信又はデータ転送を容易にすることができる。一実施形態では、ネットワーク204はコンピューティングデバイス202とサーバ206との間の通信を容易にし得る。
図3は、アプリケーションの更新を指示するために例示的なコンピュータによって実施される方法300のフロー図である。図3に示されるステップは、任意の好適なコンピュータで実行可能なコード及び/又はコンピューティングシステムにより実施されてもよい。いくつかの実施形態では、図3に示すステップは、図1のシステム100、図2のシステム200、図5のコンピューティングシステム510、及び/又は図6の例示的なネットワークアーキテクチャ600の部分の構成要素のうちの1つ以上により実行され得る。
図3に示すように、ステップ302において、本明細書で説明されるシステムのうちの1つ以上は、アプリケーションの旧バージョンのインストールが、コンピューティングシステムのセキュリティへの攻撃に悪用されるレートを示す情報を特定し得る。例えば、ステップ302で、特定モジュール104は、図2のコンピューティングデバイス202の一部として、アプリケーション210の旧バージョン214のインストールが、コンピューティングシステムのセキュリティへの攻撃に悪用されるレート230を示す悪用情報222を特定し得る。
本明細書で使用する、用語「アプリケーション」は、コンピューティングシステム上で実行できる任意のソフトウェア構成要素を指し得る。したがって、用語「アプリケーション」は、コンピューティングシステム上で実行できる任意のアプリケーション、プログラム、ドライバ、モジュール、サービス、及び/又はオペレーティングシステムを指し得る。
本明細書で使用する、語「攻撃」は、マルウェアのインストール、悪用、コンピューティングリソースの不正使用、及び/又はデータの正当なアクセスを実行しようとする任意の試みを指し得る。本明細書で使用する、用語「悪用」は、アプリケーション内のセキュリティの脆弱性を利用する任意の方法を指し得る。
特定モジュール104は、アプリケーションのバージョンに関係する悪用及び/又は攻撃のレートを示す、任意の様々なタイプの情報を特定し得る。例えば、特定モジュール104は、アプリケーションの旧バージョンに関与することが直接的及び/又は間接的に観察されている、成功した攻撃及び/又は試みられた攻撃の記録を特定し得る。この例では、特定モジュール104は、アプリケーションの旧バージョンの悪用レートを判定するために、この記録を分析し得る。いくつかの例では、特定モジュール104は、(例えば、アプリケーションの1つ以上の後続のバージョンと比較して)アプリケーションの旧バージョンの悪用の相対的なレートを特定及び/又は判定し得る。いくつかの例では、特定モジュール104は、例えば、アプリケーションの旧バージョンの悪用レート、悪用レートの推定に使用され得る悪用の回数、及び/又は悪用の相対的なレートを意味する、アプリケーションの異なるバージョンにわたる悪用頻度の順位を簡単に特定し得る。
特定モジュール104は、アプリケーションの旧バージョンが悪用されるレートを示す情報を、任意の好適な方法で特定し得る。例えば、特定モジュール104は、アプリケーションで行われる攻撃についての情報を記憶するセキュリティデータベースを照会することによって、このレートを示す情報を特定し得る。例えば、セキュリティデータベースは、多数のコンピューティングデバイスにインストールされた多数のセキュリティシステムから集めたデータを記憶し得る。これらのセキュリティシステムは、攻撃(又は攻撃の証拠)が観察されるとセキュリティサーバに報告することができ、アプリケーションの旧バージョンが観察された攻撃に関与している場合は、アプリケーションの旧バージョンについての情報を報告に含め得る。その後、セキュリティサーバは、今後の分析のために、攻撃についての情報をセキュリティデータベースに記憶し得る。
いくつかの例では、特定モジュール104は、アクティブな悪用についての情報をフィールドで特定し得る。例えば、特定モジュール104は、アプリケーションの旧バージョンのインストールが攻撃に悪用されるレートを判定するときに、どの悪用が現在最も使用されているかを判定し、これらのアクティブな悪用をより重く評価し得る。いくつかの例では、特定モジュール104は、最近の攻撃及び/又は悪用の報告を過去の報告より重く評価し得る。
図4は、アプリケーションの更新を指示するための例示的なコンピューティングシステム400のブロック図である。図4に見られるように、コンピューティングシステム400は、インストールされたアプリケーションの旧バージョン410を有するコンピューティングデバイス420(1)〜(n)、及びインストールされたアプリケーションの後続のバージョン412を有するコンピューティングデバイス420(1)〜(m)と通信するセキュリティサーバ406を含み得る。例として図4を使用すると、コンピューティングデバイス420(1)〜(n)は、アプリケーションの旧バージョン410を利用した悪用及び/又は攻撃のうちの1つ以上をセキュリティサーバ406に報告し得る。セキュリティサーバ406は、これらの報告をデータベース120に記憶し得る。例えば、ステップ302で、特定モジュール104は、セキュリティサーバ406の一部として、アプリケーションの旧バージョン410のインストールが、コンピューティングシステムのセキュリティへの攻撃に悪用されるレートを示す情報を特定し得る。
図3に戻ると、ステップ304において、本明細書で説明されるシステムのうちの1つ以上は、アプリケーションの後続のバージョンのインストールが、コンピューティングシステムのセキュリティへの攻撃に悪用されるレートを示す追加の情報を特定し得る。例えば、ステップ304で、特定モジュール104は、図2のコンピューティングデバイス202の一部として、アプリケーション210の後続のバージョン216のインストールが、コンピューティングシステムのセキュリティへの攻撃に悪用されるレート232を示す悪用情報224を特定してもよい。
アプリケーションの後続のバージョンは、アプリケーションの旧バージョンと様々な方法のいずれかで関係し得る。例えば、アプリケーションの後続のバージョンは、アプリケーションの旧バージョンの、直後のアプリケーションのバージョンを表し得る。加えて、又は代替的に、アプリケーションの後続のバージョンは、旧バージョンが更新を指示され得るアプリケーションのバージョンを表し得る。いくつかの例では、アプリケーションの後続のバージョンは、旧バージョンよりも後の日付で公開及び/又は配布された、任意のアプリケーションのバージョンを表し得る。加えて、又は代替的に、アプリケーションの後続のバージョンは、旧バージョンよりも後のバージョン番号で、且つ/又は後続のバージョンが旧バージョンに置き換わることを意味する表示で、アプリケーションのバージョンを表し得る。
特定モジュール104は、任意の好適な方法で、アプリケーションの後続のバージョンのインストールが悪用されるレートを示す追加の情報を特定し得る。例えば、特定モジュール104は、アプリケーションで行われる攻撃についての情報を記憶するセキュリティデータベースを照会することによって、このレートを示す情報を特定し得る。例えば、セキュリティデータベースは、多数のコンピューティングデバイスにインストールされた多数のセキュリティシステムから集めたデータを記憶し得る。これらのセキュリティシステムは、攻撃(又は攻撃の証拠)が観察されるとセキュリティサーバに報告することができ、アプリケーションの旧バージョンが観察された攻撃に関与している場合は、アプリケーションの旧バージョンについての情報を報告に含め得る。その後、セキュリティサーバは、今後の分析のために、攻撃についての情報をセキュリティデータベースに記憶し得る。いくつかの例で、コンピューティングデバイスは、アプリケーションの旧バージョンがインストールされると、セキュリティサーバに1つ以上の報告を送信し、且つアプリケーションが後続のバージョンに更新された後に、セキュリティサーバに1つ以上の追加の報告を送信し得る。
例として図4を使用すると、コンピューティングデバイス422(1)〜(m)は、アプリケーションの後続のバージョン410を利用した悪用及び/又は攻撃のうちの1つ以上をセキュリティサーバ406に報告し得る。セキュリティサーバ406は、これらの報告をデータベース120に記憶し得る。したがって、ステップ304において、特定モジュール104は、セキュリティサーバ406の一部として、アプリケーションの後続のバージョン410のインストールが、コンピューティングシステムのセキュリティへの攻撃に悪用されたレートを示す情報を特定し得る。
図3に戻ると、ステップ306において、本明細書で説明されるシステムのうちの1つ以上が、アプリケーションの旧バージョンのインストールが悪用されたレートと、アプリケーションの後続のバージョンのインストールが悪用されたレートとを比較することによって、アプリケーションの旧バージョンから後続のバージョンへの更新が、少なくとも部分的に、コンピューティングシステムのセキュリティに及ぼす影響を判定し得る。例えば、ステップ306において、判定モジュール106は、図2のコンピューティングデバイス202の一部として、アプリケーション210の旧バージョン214のインストールが悪用されたレート230と、アプリケーション210の後続のバージョン216のインストールが悪用されたレート232とを比較することにより、アプリケーション210の旧バージョン214から後続のバージョン216への更新が、少なくとも部分的に、コンピューティングシステムのセキュリティに及ぼす影響を判定し得る。
判定モジュール106は、アプリケーションの旧バージョンのインストールが悪用されたレートと、アプリケーションの後続のバージョンのインストールが、様々な方法のいずれかで悪用されたレートとを比較し得る。例えば、判定モジュール106は、悪用された旧バージョンのインストールの割合と、悪用された後続のバージョンのインストールの割合とを比較して、どちらの割合が高いかを判定し得る。別の例として、判定モジュール106は、コンピューティングシステムの脆弱性に対する、アプリケーションの旧バージョン及び後続のバージョンの相対的な寄与度を判定するために、アプリケーションの旧バージョン及び後続のバージョンの悪用についての情報に対して、統計的な分析(例えば、ハードウェア構成、コンピューティングシステムの年代、他のインストール済みアプリケーション、他の脆弱性要因等の、潜在的に交絡している変数の調整)を実行し得る。
いくつかの例では、判定モジュール106は、アプリケーションの旧バージョンが、アプリケーションの後続のバージョンよりも悪用されやすいことを判定し得る。例えば、判定モジュール106は、他の要因の調整後に、アプリケーションの旧バージョンが、アプリケーションの後続のバージョンよりも多くの攻撃を誘引し、且つ/又は成功させることを判定し得る。或いは、いくつかの例では、判定モジュール106は、アプリケーションの後続のバージョンが、アプリケーションの旧バージョンよりも悪用されやすいことを判定し得る。
ステップ308において、本明細書で説明されるシステムのうちの1つ以上が、アプリケーションの更新がコンピューティングシステムのセキュリティに及ぼす影響の判定に少なくとも部分的に基づいた、アプリケーションの旧バージョンのインストールをアプリケーションの後続のバージョンに更新することについての判定を用いて、少なくとも1つのコンピューティングシステムに指示し得る。例えば、ステップ308で、指示モジュール108は、図2のコンピューティングデバイス202の一部として、アプリケーション210の更新がコンピューティングシステムのセキュリティに及ぼす影響の判定に少なくとも部分的に基づいた、アプリケーション210(例えば、アプリケーションインストール210)の旧バージョン214のインストールをアプリケーション210の後続のバージョン216(例えば、アプリケーションインストール212)に更新することについての判定240を用いて、少なくとも1つのコンピューティングシステムに指示してもよい。
指示モジュール108は、任意の好適な方法で、この判定を用いてコンピューティングシステムに指示し得る。例えば、指示モジュール108は、アプリケーションの更新の可能性に関して、コンピューティングシステムにインストールされたセキュリティシステムに命令を送信し得る。いくつかの例では、指示モジュール108は、アプリケーションの後続のバージョンについての情報に関して、コンピューティングシステムから受信した要求への応答として、命令を送信し得る。加えて、又は代替的に、指示モジュール108は、現在コンピューティングシステムにアプリケーションの旧バージョンがインストールされているという、コンピューティングシステムからの報告を受信したことへの応答として、命令を送信し得る。
上述したように、いくつかの例では、本明細書で説明されるシステムの1つ以上が、アプリケーションの旧バージョンがアプリケーションの後続のバージョンよりも悪用されやすいことを判定し得る。これらの例では、指示モジュール108は、アプリケーションの更新を容易にし且つ/或いは促進するために、様々な指示のうちのいくつかを用いて、コンピューティングシステムに指示し得る。例えば、指示モジュール108は、アプリケーションの旧バージョンのインストールをアプリケーションの後続のバージョンに更新するように、コンピューティングシステムに指示し得る。この例では、コンピューティングシステムは、指示モジュール108からの命令を受信したことへの応答として、アプリケーションの旧バージョンのインストールを後続のバージョンに更新し得る。別の例として、指示モジュール108は、アプリケーションの旧バージョンのインストールをアプリケーションの後続のバージョンに更新するよう推奨する通知を表示するように、コンピューティングシステムに指示し得る。例えば、指示モジュール108は、この更新を「推奨」及び/又は「重要」として分類することができ、コンピューティングシステムの更新マネージャは、ユーザーインタフェースを介してユーザーにこの分類を提示し得る。加えて、又は代替的に、指示モジュール108は、アプリケーションのインストールを後続のバージョンに更新することをユーザーに促すように、更新マネージャに指示し得る。
別の例で、指示モジュール108は、インストールがアプリケーションの後続のバージョンに更新されるまで、アプリケーションの旧バージョンのインストールを無効にするように、コンピューティングシステムに指示し得る。例えば、指示モジュール108は、アプリケーションがアプリケーションの後続のバージョンに更新されるまで、アプリケーションを隔離し、且つ/或いはアプリケーションの実行を許可しないように、コンピューティングシステムに指示し得る。いくつかの例で、指示モジュール108は、ユーザーがアプリケーションの旧バージョンを起動しようとすると、ユーザーにアプリケーションを更新することを促すように、コンピューティングシステムに指示し得る。加えて、又は代替的に、指示モジュール108は、アプリケーションの旧バージョンのインストールをサンドボックスするように、コンピューティングシステムに指示し得る。例えば、指示モジュール108は、アプリケーションの旧バージョンのインストールによる(入出力の試み、システム構成の試み等の)動作を妨げるようコンピューティングシステムに指示し、1つ以上の仮想化層内で、アプリケーションの代わりに動作を実行し得る(例えば、アプリケーションの観点からは、アプリケーションはコンピューティングシステムに持続的な変化をもたらすことができるが、コンピューティングシステムの観点からは、アプリケーションは単に規定された境界内で変化をもたらすのみであり、それによって、攻撃がアプリケーションを越えて広がることを防止している)。
いくつかの例では、指示モジュール108は、アプリケーションの後続のバージョンのほうが、アプリケーションの後続のバージョンの弱点が異なるために旧バージョンよりも悪用されにくいとしても、アプリケーションを自動的に更新しない(或いはアプリケーションを更新するようにユーザーに勧める)ように、コンピューティングシステムに指示し得る。例えば、指示モジュール108は、アプリケーションの後続のバージョンの安定性評価が、アプリケーションの旧バージョンの安定性評価よりも低いこと、及びアプリケーションを更新すべきでないことを判定し得る。安定性評価は、アプリケーションがインストールされているコンピューティングシステムの信頼性及び/又は性能に、アプリケーションが及ぼす影響の任意の指標を含み得る。
上述したように、いくつかの例では、本明細書で説明されるシステムの1つ以上が、アプリケーションの後続のバージョンが、アプリケーションの旧バージョンよりも悪用されやすいことを判定し得る。これらの例で、指示モジュール108は、アプリケーションの更新を防止、予防、且つ/或いは阻止するために、様々な指示のうちのいくつかを用いて、コンピューティングシステムに指示し得る。例えば、指示モジュール108は、アプリケーションの旧バージョンのインストールをアプリケーションの後続のバージョンに更新しないように、コンピューティングシステムに指示し得る。この例で、コンピューティングシステムは、このアプリケーションを適用する自動更新のリストから除外し得る。加えて、又は代替的に、指示モジュール108は、アプリケーションの旧バージョンのインストールをアプリケーションの後続のバージョンに更新しようとする試みをブロックするように、コンピューティングシステムに指示し得る。例えば、コンピューティングシステムのセキュリティシステムは、更新マネージャがアプリケーションの旧バージョンのインストールを更新しようとする試みを妨げ得る。別の例として、セキュリティシステムは、アプリケーションのインストールを更新するというユーザーの選択を無効にし得る。
別の例では、指示モジュール108は、アプリケーションの旧バージョンのインストールをアプリケーションの後続のバージョンに更新しないよう推奨する通知を表示するように、コンピューティングシステムに指示し得る。例えば、指示モジュール108は、この更新を「推奨しない」及び/又は「危険」として分類することができ、コンピューティングシステムの更新マネージャは、ユーザーインタフェースを介して、ユーザーにこの分類を提示し得る。加えて、又は代替的に、指示モジュール108は、アプリケーションのインストールの後続のバージョンへの更新を回避するようにユーザーに促し、且つ/或いはユーザーに、アプリケーションのインストールを後続のバージョンに更新することのセキュリティリスクを知らせるように、更新マネージャに指示し得る。ステップ306の後、方法300は終了し得る。
図3の方法300に関して上述したように、アプリケーションの新しいバージョンが、より攻撃に悪用されやすい(悪用されにくい)かどうかを判定し、その後に、アプリケーションのより安全なバージョンへの更新を容易にする、及び/又は促進する命令を用いてコンピューティングシステムに指示し、且つ/或いはアプリケーションのより安全でないバージョンへの更新を、防止、予防及び/又は阻止する命令を用いてコンピューティングシステムに指示することによって、本明細書で説明されるシステムは、知的なアプリケーション更新を介して、コンピューティングシステムのセキュリティを高めることができる。
1つの例で、セキュリティエージェントは、以下のものを含む情報を収集し得る。(1)コンピューティングシステムで誰がどのファイルを作成したかを記述するファイル作成情報。(2)アプリケーションがいつインストール及び/又は更新されたかを特定するアプリケーション情報。(3)アプリケーションのインストールの一部として、どのバイナリが作成されたか。(4)アプリケーションのバージョン情報。(5)ファイルの確信性(conviction)に関する情報。バックエンドシステムは、(例えば、最近において)連続的に検出及び修正されたマルウェアを作成した全てのファイルを特定するために、上述の情報をマイニングし得る。このバックエンドのプロセスは、また、これらのファイルの各々がどのアプリケーションに属するか、並びに使用可能なファイルの新しいバージョンが存在するかどうかを特定するために、データをマイニングし得る。
各バイナリに対して、バックエンドは、次に、以下のものを含む情報を特定するデータを生成し得る。(1)ファイルのハッシュ。(2)ファイルがアクティブにマルウェアをドロップしているかどうか。(3)ファイルが属しているアプリケーションの名前。(4)ファイルが属しているアプリケーションのバージョン。(5)アプリケーションの新しいバージョンが存在するかどうか。(6)新しいバージョンが、以前のバージョンよりもアクティブに悪用されるかどうか。
任意適当なとき(セキュリティスキャン中、ユーザーによるアプリケーションの使用時、及び/又はファイルがマルウェアを作成しているとき)に、セキュリティエージェントは、ファイル情報のバックエンドを照会し得る。ファイルがマルウェアをアクティブにドロップしており、且つ新しいバージョンが存在する(並びに、新しいバージョンが現在のバージョンほどアクティブに悪用されない)ことをバックエンドが判定した場合、セキュリティエージェントは、いくつかの動作のうちの1つを取り得る。例えば、セキュリティエージェントは、(1)アプリケーションを更新するようにユーザーに警告及び/又は通知する。(2)アプリケーションが更新されるまで、アプリケーションをロックダウンする。(3)(例えば、ユーザーが入力することなく)アプリケーションの更新を実行する。且つ/或いは、(4)アプリケーションの動作を全て仮想化する。
いくつかの例では、アプリケーションのバージョン情報は、容易に利用できない場合がある。これらの例で、本明細書で説明されるシステムのうちの1つ以上は、アプリケーションのどのバージョンが新しいかを判定するのに、(例えば、多くのコンピューティングシステムにわたる、アプリケーションの異なるバージョンの作成日時及び/又はインストール日時に依存して)発見的解決法を用いる。これらのシステムは、(ハッシュで特定された)ファイルがアプリケーションに属し、アプリケーションの新しいバージョンを示す同一のファイル名、及び/又は構成要素を有するファイルの後に作成されたとみなし得る。アプリケーションの安定性情報も、バックエンドに使用可能であり、新しいバージョンが安定性及び/又はユーザー体験に関して、不適合且つ/或いは良好でないことが知られている場合は、アプリケーションを更新しないようにユーザーに推奨するのに使用され得る。
図5は、本明細書に記載及び/又は図示される実施形態のうちの1つ以上を実施することができる、例示的なコンピューティングシステム510のブロック図である。例えば、コンピューティングシステム510の全て又は一部は、それぞれ単独で、又は他の要素と組み合わせて、本明細書に記載されるステップのうちの1つ以上(例えば、図3に示すステップのうちの1つ以上)を実行し得る、及び/又は実行するための手段であり得る。コンピューティングシステム510の全て又は一部は、また、本明細書に記載及び/若しくは図示される任意の他のステップ、方法、又はプロセスを実行し得る、及び/又はそれらを実行するための手段であり得る。
コンピューティングシステム510は、コンピュータ可読命令を実行できる、任意のシングル又はマルチプロセッサのコンピューティングデバイス又はシステムを広く表す。コンピューティングシステム510の例としては、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、ハンドヘルドデバイス、又は任意の他のコンピューティングシステム又はデバイスが挙げられるが、これらに限定されない。その最も基本的な構成では、コンピューティングシステム510は、少なくとも1つのプロセッサ514と、システムメモリ516と、を含むことができる。
プロセッサ514は概して、データを処理するか、又は命令を解釈及び実行することができるあらゆるタイプ又は形態の処理ユニットを表す。特定の実施形態では、プロセッサ514は、ソフトウェアアプリケーション又はモジュールから命令を受信することができる。これらの命令は、プロセッサ514に、本明細書に説明及び/又は例解される例示的な実施形態のうちの1つ以上の機能を実施させ得る。
システムメモリ516は概して、データ及び/又は他のコンピュータ可読命令を記憶することができるあらゆるタイプ又は形態の揮発性又は不揮発性記憶デバイス若しくは媒体を表す。システムメモリ516の例としては、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられるが、これらに限定されない。必須ではないが、特定の実施形態では、コンピューティングシステム510は、揮発性メモリユニット(例えば、システムメモリ516など)及び不揮発性記憶デバイス(以下に詳細に記載されるように、例えば、一次記憶デバイス532など)の両方を含むことができる。1つの例で、図1にあるモジュール102のうちの1つ以上は、システムメモリ516にロードされ得る。
いくつかの実施形態で、例示的なコンピューティングシステム510もまた、プロセッサ514及びシステムメモリ516に加えて、1つ以上の構成要素又は要素を含み得る。例えば、図5に示されるように、コンピューティングシステム510は、メモリコントローラ518と、入力/出力(I/O)コントローラ520と、通信インタフェース522とを含むことができ、これらの各々は、通信基盤512を介して相互接続され得る。通信基盤512は概して、コンピューティングデバイスのうちの1つ以上の構成要素間の通信を容易にすることができるあらゆるタイプ又は形態の基盤を表す。通信基盤512の例としては、非限定的に、通信バス(産業標準構成(ISA)、周辺装置相互接続(PCI)、PCIエクスプレス(PCIe)、又は類似のバスなど)及びネットワークが挙げられる。
メモリコントローラ518は概して、メモリ若しくはデータを処理するか、又はコンピューティングシステム510のうちの1つ以上の構成要素間の通信を制御することができるあらゆるタイプ又は形態のデバイスを表す。例えば、特定の実施形態では、メモリコントローラ518は、通信基盤512を介してプロセッサ514と、システムメモリ516と、I/Oコントローラ520との間の通信を制御することができる。
I/Oコントローラ520は概して、コンピューティングデバイスの入力及び出力関数を調整及び/又は制御することができるあらゆるタイプ又は形態のモジュールを表す。例えば、特定の実施形態では、I/Oコントローラ520は、プロセッサ514、システムメモリ516、通信インタフェース522、ディスプレイアダプタ526、入力インタフェース530、及び記憶インタフェース534など、コンピューティングシステム510のうちの1つ以上の要素間のデータの転送を制御又は容易にすることができる。
通信インタフェース522は、例示的なコンピューティングシステム510と1つ以上の追加のデバイスとの間の通信を容易にすることができるあらゆるタイプ又は形態の通信デバイス又はアダプタを広く表す。例えば、特定の実施形態では、通信インタフェース522は、コンピューティングシステム510と追加のコンピューティングシステムを含む私的又は公的ネットワークとの間の通信を容易にすることができる。通信インタフェース522の例としては、有線ネットワークインタフェース(ネットワークインタフェースカードなど)、無線ネットワークインタフェース(無線ネットワークインタフェースカードなど)、モデム、及び任意の他の好適なインタフェースが挙げられるが、これらに限定されない。少なくとも1つの実施形態では、通信インタフェース522は、インターネットなどのネットワークへの直接リンクを介してリモートサーバへの直接接続を提供することができる。通信インタフェース522はまた、例えば、ローカルエリアネットワーク(イーサネットネットワークなど(「イーサネット」は登録商標、以下同じ))、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、携帯電話接続、衛星データ接続、又は任意の他の好適な接続を介するかかる接続を間接的に提供することができる。
特定の実施形態では、通信インタフェース522はまた、外部バス又は通信チャネルを介して、コンピューティングシステム510と1つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成されるホストアダプタを表すことができる。コンピュータ可読記憶媒体の例としては、これらに限定されないが、Small Computer System Interface(SCSI)ホストアダプタ、Universal Serial Bus(USB)ホストアダプタ、Institute of Electrical and Electronics Engineers(IEEE)1394ホストアダプタ、Advanced Technology Attachment(ATA)、Parallel ATA(PATA)、Serial ATA(SATA)、及びExternal SATA(eSATA)ホストアダプタ、ファイバチャネルインタフェースアダプタ、イーサネットアダプタ等が挙げられる。通信インタフェース522はまた、コンピューティングシステム510が分散型又はリモートコンピューティングに関与するのを可能にすることができる。例えば、通信インタフェース522は、リモートデバイスから命令を受信し、実行するためにリモートデバイスに命令を送信することができる。
図5に示されるように、コンピューティングシステム510はまた、ディスプレイアダプタ526を介して通信基盤512に連結された少なくとも1つの表示デバイス524を含むことができる。表示デバイス524は概して、ディスプレイアダプタ526によって転換された情報を視覚的に表示することができるあらゆるタイプ又は形態のデバイスを表す。同様に、ディスプレイアダプタ526は概して、表示デバイス524に表示するために通信基盤512から(又は当該技術分野において既知であるようにフレームバッファから)グラフィックス、テキスト、及び他のデータを転換するように構成されるあらゆるタイプ又は形態のデバイスを表す。
図5に示されるように、例示的なコンピューティングシステム510はまた、入力インタフェース530を介して通信基盤512に連結された少なくとも1つの入力デバイス528を含むことができる。入力デバイス528は概して、コンピュータ又は人間のいずれかが生成した入力を例示的なコンピューティングシステム510に提供することができるあらゆるタイプ又は形態の入力デバイスを表す。入力デバイス528の例としては、キーボード、ポインティングデバイス、音声認識デバイス、又は任意の他の入力デバイスが挙げられるが、これらに限定されない。
図5に示されるように、例示的なコンピューティングシステム510はまた、記憶インタフェース534を介して通信基盤512に連結された一次記憶デバイス532と、バックアップ記憶デバイス533と、を含むことができる。記憶デバイス532及び533は概して、データ及び/又は他のコンピュータ可読命令を記憶することができるあらゆるタイプ又は形態の記憶デバイス若しくは媒体を表す。例えば、記憶デバイス532及び533は、磁気ディスクドライブ(例えば、いわゆるハードドライブ)、ソリッドステートドライブ、フロッピーディスクドライブ(「フロッピー」は登録商標、以下同じ)、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどであってもよい。記憶インタフェース534は概して、記憶デバイス532及び533とコンピューティングシステム510の他の構成要素との間のデータを転送するためのあらゆるタイプ又は形態のインタフェース又はデバイスを表す。一実施例では、図1にあるデータベース120は、一次記憶デバイス532に記憶され得る。
特定の実施形態では、記憶デバイス532及び533は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を記憶するように構成される取り外し可能な記憶ユニットから読み取る、及び/又はそれに書き込むように構成されてもよい。好適な取り外し可能な記憶ユニットの例としては、限定されないが、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられる。記憶デバイス532及び533はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令がコンピューティングシステム510にロードされるのを可能にするために他の類似の構造又はデバイスを含むことができる。例えば、記憶デバイス532及び533は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み取る、及び書き込むように構成されてもよい。記憶デバイス532及び533はまた、コンピューティングシステム510の一部であってもよく、又は他のインタフェースシステムを介してアクセスされた別個のデバイスであってもよい。
多くの他のデバイス又はサブシステムが、コンピューティングシステム510に接続されてもよい。逆に、本明細書で説明され且つ/或いは図示される実施形態を実施するために、図5に示す全ての構成要素及びデバイスが存在している必要はない。上記で言及されたデバイス及びサブシステムはまた、図5に示されるものとは異なる手法で相互接続されてもよい。コンピューティングシステム510はまた、任意の数のソフトウェア、ファームウェア、及び/又はハードウェア構成を用いることができる。例えば、本明細書に開示される例示的な実施形態のうちの1つ以上は、コンピュータ可読記憶媒体にコンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される)としてコード化されてもよい。句「コンピュータ可読記憶媒体」は概して、コンピュータ可読命令を記憶又は実施することができるあらゆる形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読記憶媒体の例としては、これらに限定されないが、搬送波などの伝送型媒体、並びに磁気記憶媒体(例えば、ハードディスクドライブ及びフロッピーディスク)、光学記憶媒体(例えば、コンパクトディスク(CD)又はデジタルビデオディスク(DVD))、電子記憶媒体(例えば、ソリッドステートドライブ及びフラッシュメディア)、及び他の分散システムなどの非一時型媒体が挙げられる。
コンピュータプログラムを含むコンピュータ可読記憶媒体は、コンピューティングシステム510にロードされてもよい。次いで、コンピュータ可読記憶媒体に記憶されたコンピュータプログラムの全て又は一部は、システムメモリ516並びに/又は記憶デバイス532及び533の様々な部分の中に記憶されてもよい。プロセッサ514により実行されるとき、コンピューティングシステム510にロードされるコンピュータプログラムは、プロセッサ514に、本明細書に説明及び/又は例解される例示的な実施形態のうちの1つ以上の機能を実施させ得る、及び/又は実施するための手段であり得る。追加的に又は代替的に、本明細書に記載及び/又は図示される例示的な実施形態のうちの1つ以上は、ファームウェア及び/又はハードウェアに実装されてもよい。例えば、コンピューティングシステム510は、本明細書に開示される例示的な実施形態のうちの1つ以上を実装するように適合された特定用途向け集積回路(ASIC)として構成されてもよい。
図6は、クライアントシステム610、620、及び630、並びにサーバ640及び645がネットワーク650に連結され得る例示的なネットワークアーキテクチャ600のブロック図である。上述したように、ネットワークアーキテクチャ600の全て又は一部は、それぞれ単独で、又は他の要素と組み合わせて、本明細書に開示されるステップのうちの1つ以上を(例えば、図3に示すステップのうちの1つ以上として)実施し得る、及び/又は実施するための手段であり得る。ネットワークアーキテクチャ600の全て又は一部はまた、本開示に記載される他のステップ及び特徴を実行するための手段を実施するために使用され、並びに/又はそれらを実施するための手段であり得る。
クライアントシステム610、620、及び630は概して、図5の例示的なコンピューティングシステム510など、あらゆるタイプ又は形態のコンピューティングデバイス又はシステムを表す。同様に、サーバ640及び645は概して、様々なデータベースサービスを提供し、及び/又は特定のソフトウェアアプリケーションを実行するように構成されるアプリケーションサーバ又はデータベースサーバなど、コンピューティングデバイス又はシステムを表す。ネットワーク650は、概して、例えば、イントラネット、WAN、LAN、PAN、又はインターネットを含む任意の電気通信又はコンピュータネットワークを表す。一実施例では、クライアントシステム610、620、及び/又は630、並びに/或いはサーバ640及び/又は645は、図1にあるシステム100の全て又は一部を含み得る。
図6に示されるように、1つ以上の記憶デバイス660(1)〜(N)は、サーバ640に直接接続され得る。同様に、1つ以上の記憶デバイス670(1)〜(N)は、サーバ645に直接的に接続され得る。記憶デバイス660(1)〜(N)及び記憶デバイス670(1)〜(N)は概して、データ及び/又は他のコンピュータ可読命令を記憶することができるあらゆるタイプ又は形態の記憶デバイス又は媒体を表す。特定の実施形態では、記憶デバイス660(1)〜(N)及び記憶デバイス670(1)〜(N)は、ネットワークファイルシステム(NFS)、サーバメッセージブロック(SMB)、又は共通インターネットファイルシステム(CIFS)など、様々なプロトコルを使用して、サーバ640及び645と通信するように構成された、ネットワーク接続ストレージ(NAS)デバイスを表してもよい。
サーバ640及び645はまた、記憶エリアネットワーク(SAN)ファブリック680に接続されてもよい。SANファブリック680は概して、複数の記憶デバイス間の通信を容易にすることができるあらゆるタイプ又は形態のコンピュータネットワーク又はアーキテクチャを表す。SANファブリック680は、サーバ640及び645と複数の記憶デバイス690(1)〜(N)及び/又は知的記憶アレイ695との間の通信を容易にし得る。SANファブリック680はまた、デバイス690(1)〜(N)及びアレイ695が、クライアントシステム610、620、及び630にローカルで接続されたデバイスとして現れるような様式で、ネットワーク650並びにサーバ640及び645を介して、クライアントシステム610、620、及び630と記憶デバイス690(1)〜(N)及び/又は知的記憶アレイ695との間の通信を容易にし得る。記憶デバイス660(1)〜(N)及び記憶デバイス670(1)〜(N)と同様に、記憶デバイス690(1)〜(N)及び知的記憶アレイ695は概して、データ及び/又は他のコンピュータ可読命令を記憶することができるあらゆるタイプ又は形態の記憶デバイス又は媒体を表す。
いくつかの実施形態において、及び図5の例示的なコンピューティングシステム510に関して、図5の通信インタフェース522等の通信インタフェースは、各クライアントシステム610、620、及び630と、ネットワーク650との間に接続を設けるために使用され得る。クライアントシステム610、620、及び630は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ640又は645に関する情報にアクセスすることができてもよい。そのようなソフトウェアは、クライアントシステム610、620、及び630が、サーバ640、サーバ645、記憶デバイス660(1)〜(N)、記憶デバイス670(1)〜(N)、記憶デバイス690(1)〜(N)、又は知的記憶アレイ695によりホストされるデータにアクセスすることを可能にし得る。図6は、データを交換するためのネットワーク(インターネット等)の使用を描写するが、本明細書に説明及び/又は例解される実施形態は、インターネット又はいかなる特定のネットワークに基づく環境にも限定されない。
少なくとも1つの実施形態において、本明細書に開示される例示的な実施形態のうちの1つ以上の全て又は一部分は、コンピュータプログラムとしてコード化され、サーバ640、サーバ645、記憶デバイス660(1)〜(N)、記憶デバイス670(1)〜(N)、記憶デバイス690(1)〜(N)、知的記憶アレイ695、又はそれらの任意の組み合わせ上にロードされ、それによって実行され得る。本明細書に開示される少なくとも1つの例示的な実施形態の全て又は一部分は、コンピュータプログラムとしてコード化され、サーバ640に記憶され、サーバ645により作動され、ネットワーク650を通じてクライアントシステム610、620、及び630に分散され得る。
上で詳述されたように、コンピューティングシステム510及び/又はネットワークアーキテクチャ600の1つ以上の構成要素は、それぞれ単独で、又は他の要素と組み合わせて、アプリケーションの更新を指示する例示的な方法の1つ以上のステップを実施し得る、及び/又は実施するための手段であり得る。
先述の開示は、特定のブロック図、フロー図、及び実施例を使用して様々な実施形態を説明するが、本明細書に記載される及び/又は図示される各ブロック図の構成要素、フロー図のステップ、動作、及び/又は構成要素は、個別に及び/又は集合的に、広範なハードウェア、ソフトウェア、又はファームウェア(又はそれらの任意の組み合わせ)構成を使用して、実装され得る。加えて、他の構成要素内に含まれた構成要素のあらゆる開示は、多くの他のアーキテクチャが同じ機能を達成するために実装され得ることにより、本質的に例示的であると考慮されるべきである。
いくつかの例で、図1の例示的なシステム100の全て又は一部は、クラウドコンピューティング又はネットワークに基づく環境の部分を表し得る。クラウドコンピューティング環境は、インターネットを介して多様なサービス及びアプリケーションを提供することができる。これらのクラウドに基づくサービス(例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしての基盤など)は、ウェブブラウザ又は他のリモートインターフェースを通じてアクセス可能であり得る。本明細書に記載される様々な機能は、リモートデスクトップ環境又は他の任意のクラウドに基づくコンピューティング環境を通して提供されてもよい。
様々な実施形態で、図1の例示的なシステム100の全て又は一部分は、クラウドに基づくコンピューティング環境内で、マルチテナント機能を容易にし得る。言い換えれば、本明細書に記載されるソフトウェアモジュールは、本明細書に記載の機能の1つ以上のマルチテナント機能を容易にするために、コンピューティングシステム(例えば、サーバ)を構成し得る。例えば、本明細書に記載される1つ以上のソフトウェアモジュールは、サーバ上で実行中のアプリケーションを共有する2つ以上のクライアント(例えば、顧客)を可能にするためにサーバをプログラムし得る。このように、プログラムされたサーバは、複数の顧客(すなわち、テナント)の間で、アプリケーション、オペレーティングシステム、処理システム、及び/又はストレージシステムを共有し得る。本明細書に記載される1つ又は複数のモジュールはまた、1つの顧客が他の顧客のデータ及び/又は構成情報にアクセスすることができないように、各顧客のためのデータ及び/又はマルチテナントアプリケーションの構成情報を分割し得る。
様々な実施形態に従い、図1の例示的なシステム100の全ての又は一部分は、仮想環境内で実装され得る。例えば、本明細書に記載のモジュール及び/又はデータは仮想マシン内で存在し得る、及び/又は実行し得る。本明細書で使用する、句「仮想マシン」は、概して、仮想マシンマネージャ(例えば、ハイパーバイザ)によってコンピューティングハードウェアから抽出された任意のオペレーティングシステム環境を指す。加えて、又は代替的に、本明細書に記載のモジュール及び/又はデータは仮想化層内で存在し得る、及び/又は実行し得る。本明細書で使用する、句「仮想化層」は、概してオペレーティングシステム環境からオーバーレイ及び/又は抽出された任意のデータ層及び/又はアプリケーション層を指す。仮想化層は、下にある基本オペレーティングシステムの一部であるかのように仮想化層を提供するソフトウェアの仮想化ソリューション(例えば、ファイルシステムフィルタ)によって管理され得る。例えば、ソフトウェアの仮想化ソリューションは、最初に仮想化層内の場所に、基本ファイルシステム及び/又はレジストリ内の場所に方向付けられる呼び出しをリダイレクトし得る。
いくつかの例で、図1の例示的なシステム100の全て又は一部分は、モバイルコンピューティング環境の部分を表し得る。モバイルコンピューティング環境は、携帯電話、タブレットコンピュータ、電子ブックリーダー、携帯情報端末、ウェアラブルコンピューティングデバイス(例えば、頭部装着型ディスプレイを有するコンピューティングデバイス、スマートウォッチ)等の、広範なモバイルコンピューティングデバイスによって実施され得る。いくつかの例で、モバイルコンピューティング環境は、1つ以上の明確な特徴を有することができ、例えば、電池の信頼性、常時1つのみのフォアグラウンドアプリケーションの提示、遠隔管理機能、タッチスクリーン機能、位置及び移動データ(例えば、衛星測位システム、ジャイロスコープ、加速度計等)、他のソフトウェアの挙動を調査するために、修正をシステムレベル構成に制限し、且つ/或いは第三者ソフトウェアの性能を制限する、制限されたプラットフォーム、アプリケーションのインストールを制限するための制御(例えば、承認されたアプリケーションストアに由来するもののみに限定する)等を含む。本明細書に記載される様々な機能が、モバイルコンピューティング環境に提供されてもよく、且つ/或いはモバイルコンピューティング環境と対話してもよい。
また、図1の例示的なシステム100の全て又は一部は、情報管理用の1つ以上のシステムの部分を表し、情報管理用の1つ以上のシステムと対話し、情報管理用の1つ以上のシステムによって生成されたデータを消費し、且つ/或いは情報管理用の1つ以上のシステムによって消費されたデータを生成し得る。本明細書で使用する、句「情報管理」は、データの保護、編成、及び/又は記憶を指し得る。情報管理用のシステムの例は、これに限定されないが、記憶システム、バックアップシステム、アーカイブシステム、複製システム、高可用性システム、データ検索システム、仮想化システム等を含み得る。
いくつかの例で、図1の例示的なシステム100の全て又は一部は、情報セキュリティ用の1つ以上のシステムの部分を表し、情報セキュリティ用の1つ以上のシステムによって保護され、且つ/或いは情報セキュリティ用の1つ以上のシステムと通信し得る。本明細書で使用する、句「情報セキュリティ」は、保護されたデータへのアクセスの制御を指し得る。情報セキュリティ用のシステムの例は、これに限定されないが、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、本人認証システム、アクセス制御システム、暗号システム、ポリシー遵守システム、侵入検知及び侵入防止システム、電子証拠開示システム等を含み得る。
いくつかの例によれば、図1の例示的なシステム100の全て又は一部は、エンドポイントセキュリティ用の1つ以上のシステムの部分を表し、エンドポイントセキュリティ用の1つ以上のシステムと通信し、且つ/或いはエンドポイントセキュリティ用の1つ以上のシステムから保護を受け得る。本明細書で使用する、句「エンドポイントセキュリティ」は、違法及び/又は不正な使用、アクセス、並びに/或いは制御からの、エンドポイントシステムの保護を指し得る。エンドポイント保護用のシステムの例は、これに制限されないが、マルウェア対策システム、ユーザー認証システム、暗号システム、プライバシーシステム、スパムフィルタリングサービス等を含み得る。
本明細書に記載される及び/又は図示されるプロセスパラメータ及びステップの順序は、単なる例として提供され、所望に応じて変更することができる。例えば、本明細書に図示される及び/又は記載されるステップが特定の順序で示される又は考察されるが、これらのステップは、必ずしも図示される又は考察される順序で実施される必要はない。本明細書に記載及び/又は図示される様々な例示的な方法はまた、本明細書に記載及び/又は図示されるステップのうちの1つ以上を省略するか、又は開示されるものに加えて追加のステップを含むことができる。
種々の実施形態が、完全に機能的なコンピューティングシステムの文脈において、本明細書に説明及び/又は例解されているが、これらの例示的な実施形態のうちの1つ以上は、実際に分散を行うために使用されるコンピュータで読み取り可能な記憶媒体の特定のタイプにかかわらず、多様な形態のプログラム製品として分散され得る。本明細書に開示の実施形態はまた、一定のタスクを実施するソフトウェアモジュールを使用して実装され得る。これらのソフトウェアモジュールは、スクリプト、バッチ、又はコンピュータで読み取り可能な記憶媒体上若しくはコンピューティングシステムに記憶され得る、他の実行可能なファイルを含んでもよい。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態のうちの1つ以上を実行するようにコンピューティングシステムを構成することができる。
更に、本明細書に説明されるモジュールのうちの1つ以上は、データ、物理的デバイス、及び/又は物理的デバイスの表現を1つの形態から別の形態へ変換し得る。例えば、本明細書に挙げたモジュールのうちの1つ以上は、変換するアプリケーション悪用情報を受信し、アプリケーション悪用情報を変換し、変換の結果をアプリケーションを更新するかどうかの判定に出力し、変換の結果をアプリケーションがインストールされているクライアントシステムに出力し、変換の結果をアプリケーションが更新されるのを容易にするか又は防止するために使用し、変換の結果を記憶デバイスに記憶し得る。加えて、又は代替的に、本明細書に挙げたモジュールのうちの1つ以上は、コンピューティングデバイス上で実行し、コンピューティングデバイス上にデータを記憶し、かつ/又は別の方法ではコンピュータデバイスと対話することによって、プロセッサ、揮発性メモリ、不揮発性メモリ、及び/若しくは1つの形態から別の形態への物理コンピューティングデバイスの任意の他の部分を変換し得る。
前述の説明は、当業者が本明細書に開示される例示的な実施形態の様々な態様を最良に利用するのを可能にするために提供されている。この例示的な説明は、包括的であること、又は開示されるいずれの正確な形態にも限定されることを意図するものではない。本開示の趣旨及び範囲から逸脱することなく、多くの修正及び変形が可能である。本明細書に開示される実施形態は、あらゆる点で例示的であり、限定的ではないと見なされるべきである。本開示の範囲を決定する際に添付の特許請求の範囲及びその等価物を参照するべきである。
特に断りのない限り、本明細書及び特許請求の範囲で用いられる「1つの」又は「ある〜」という用語は、「少なくとも1つの」を意味するものとして解釈される。加えて、簡単にするために、本明細書及び特許請求の範囲で用いられる語「含む」及び「有する」は交換可能であり、「備える」という語と同一の意味を有する。