(57)【特許請求の範囲】
【請求項１】
方法であって、
コンテンツ管理システムにおいて、クライアントデバイスにおけるコンテンツアイテムへの変更を説明する変更エントリを含む変更セットをクライアントデバイスから受信することであって、前記コンテンツ管理システムは前記説明された変更をそれぞれのコンテンツアイテムの元のバージョンへ適用するように構成される、ことと、
前記コンテンツ管理システムによって、前記受信した変更セットを変更セットのリポジトリに格納することと、
前記コンテンツ管理システムによって、前記変更セット内の各変更エントリを１以上のマルウェア検出規則と比較することと、
前記コンテンツ管理システムによって、前記変更セット内のある閾値数の前記変更エントリが前記マルウェア検出規則のうちの少なくとも１つを満足するかを判定することと、
前記ある閾値数の前記変更エントリが前記マルウェア検出規則の少なくとも１つを満足すると判定したことに応答して、前記コンテンツ管理システムによって、前記クライアントデバイスが悪意のあるソフトウェアを有する可能性があるかを判定することと、
前記クライアントデバイスが悪意のあるソフトウェアを有することを確認するために、前記クライアントデバイスに関連する前記格納された変更セットのフルスキャンを開始することと
を含むことを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、さらに、
前記コンテンツ管理システムによって、前記クライアントデバイスに関連する前記格納された変更セットの前記フルスキャン中に前記クライアントデバイスが悪意のあるソフトウェアを有することを自動的に確認することと、
前記クライアントデバイスが悪意のあるソフトウェアに感染していることを示す通知をクライアントデバイスに送信することと、
前記コンテンツ管理システムによって、前記コンテンツ管理システムと前記クライアントデバイスとの間のコンテンツアイテムの同期を中断する命令を受信することと、
前記命令を受信したことに応答して、前記コンテンツ管理システムと前記クライアントデバイスとの間のコンテンツアイテムの同期を中断することと
を含むことを特徴とする方法。
【請求項３】
請求項１に記載の方法であって、さらに、
前記コンテンツ管理システムによって、前記悪意のあるソフトウェアによって影響を受けたコンテンツアイテムを自動的に判定することを含むことを特徴とする方法。
【請求項４】
請求項３に記載の方法であって、さらに、
前記コンテンツ管理システムによって、前記悪意のあるソフトウェアに関連する最初の変更エントリに対応する開始時刻を自動的に判定することと、
前記コンテンツ管理システムによって、前記悪意のあるソフトウェアによって影響を受けた各コンテンツアイテムの以前のバージョンを復元することであって、前記以前のバージョンは、前記開始時刻の直前に存在した対応する前記コンテンツアイテムの最新バージョンに対応することと
を含むことを特徴とする方法。
【請求項５】
請求項４に記載の方法であって、
前記悪意のあるソフトウェアによって影響を受けた各コンテンツアイテムの前記以前のバージョンを復元することは、
前記コンテンツ管理システムによって、前記悪意のあるソフトウェアによって影響を受けた各コンテンツアイテムの以前のバージョンを自動的に復元することであって、前記以前のバージョンは、前記開始時刻の直前に存在した対応する前記コンテンツアイテムの最新バージョンに対応することを含むことを特徴とする方法。
【請求項６】
請求項２に記載の方法であって、さらに、
前記コンテンツ管理システムによって、前記悪意のあるソフトウェアが前記クライアントデバイスから除去されたことを示すメッセージを前記クライアントデバイスから受信することと、
前記メッセージを受信したことに応答して、前記コンテンツ管理システムと前記クライアントデバイスとの間のコンテンツアイテムの同期を再開することと
を含むことを特徴とする方法。
【請求項７】
請求項１に記載の方法であって、さらに、
前記コンテンツ管理システムによって、前記クライアントデバイスが悪意のあるソフトウェアに感染していることを示す第１のメッセージを送信することと、
前記コンテンツ管理システムによって、前記コンテンツ管理システムが前記悪意のあるソフトウェアによって影響を受けたコンテンツアイテムを復元すべきであることを示す第２のメッセージを受信することと、
前記コンテンツ管理システムによって、前記悪意のあるソフトウェアによって影響を受けた各コンテンツアイテムの以前のバージョンを復元することであって、前記以前のバージョンは、前記悪意のあるソフトウェアに関連する最初の変更エントリに対応する開始時刻の直前に存在した対応する前記コンテンツアイテムの最新バージョンに対応することと
を含むことを特徴とする方法。
【請求項８】
１以上の一連の命令を含むコンピュータプログラムであって、該１以上の一連の命令は１以上のプロセッサによって実行されると、該プロセッサに、
コンテンツ管理システムにおいて、クライアントデバイスにおけるコンテンツアイテムへの変更を説明する変更エントリを含む変更セットを受信することであって、前記クライアントデバイスは、前記コンテンツ管理システムのユーザのチームにおける第１のユーザに関連付けられる、ことと、
前記コンテンツ管理システムによって、前記受信した変更セットを変更セットのリポジトリに格納することと、
前記コンテンツ管理システムによって、前記変更セット内の各変更エントリを１以上のマルウェア検出規則と比較することであって、前記比較することは、前記変更セットの各エントリを第１のマルウェア検出規則と比較するための第１の規則ハンドラと、前記変更セットの各エントリを前記第１のマルウェア検出規則とは異なる第２のマルウェア検出規則と比較するための第２の規則ハンドラとを含む複数の規則ハンドラによって実行される、ことと、
前記コンテンツ管理システムによって、前記変更セット内のある閾値数変更エントリが前記マルウェア検出規則のうちの少なくとも１つを満足するかを判定することと、
前記ある閾値数の前記変更エントリが前記マルウェア検出規則の少なくとも１つを満足すると判定したことに応答して、前記コンテンツ管理システムによって、前記クライアントデバイスが悪意のあるソフトウェアを有する可能性があるかを判定することと、
前記クライアントデバイスが悪意のあるソフトウェアを有することを確認するために、前記クライアントデバイスに関連する前記格納された変更セットのフルスキャンを開始することと
を含む動作を行わせることを特徴とするコンピュータプログラム。
【請求項９】
請求項８に記載のコンピュータプログラムであって、前記命令は、前記プロセッサに、
前記コンテンツ管理システムによって、前記クライアントデバイスに関連する前記格納された変更セットのフルスキャン中に、前記クライアントデバイスが悪意のあるソフトウェアを有することを自動的に確認することと、
前記クライアントデバイスが前記悪意のあるソフトウェアを有することを確認したことに応答して、前記クライアントデバイスが悪意のあるソフトウェアを有することを示すメッセージを、前記第１のユーザと、ユーザの前記チームにおける管理者ユーザとに送信することと、
前記コンテンツ管理システムと前記クライアントデバイスとの間のコンテンツアイテムの同期を中断することを前記管理者ユーザが望むことを示すメッセージを受信することと、
前記メッセージを受信したことに応答して、前記コンテンツ管理システムと前記クライアントデバイスとの間のコンテンツアイテムの同期を中断することと
を含む動作を行わせることを特徴とするコンピュータプログラム。
【請求項１０】
請求項８に記載のコンピュータプログラムであって、前記命令は、前記プロセッサに、
前記コンテンツ管理システムによって、前記悪意のあるソフトウェアによって影響を受けたコンテンツアイテムを自動的に判定することを含む動作を行わせることを特徴とするコンピュータプログラム。
【請求項１１】
請求項１０に記載のコンピュータプログラムであって、前記命令は、前記プロセッサに、
前記コンテンツ管理システムによって、前記悪意のあるソフトウェアに関連する最初の変更エントリに対応する開始時刻を自動的に判定することと、
前記コンテンツ管理システムによって、前記悪意のあるソフトウェアによって影響を受けた各コンテンツアイテムの以前のバージョンを復元することであって、前記以前のバージョンは、前記開始時刻の直前に存在した対応する前記コンテンツアイテムの最新バージョンに対応する、ことと
を含む動作を行わせることを特徴とするコンピュータプログラム。
【請求項１２】
請求項１１に記載のコンピュータプログラムであって、
前記復元することは、前記悪意のあるソフトウェアによって影響を受けた各コンテンツアイテムの前記以前のバージョンを復元するために、前記コンテンツ管理システムのユーザの前記チームにおける管理者ユーザからの要求を受信したことに応答して実行される、ことを特徴とするコンピュータプログラム。
【請求項１３】
請求項９に記載のコンピュータプログラムであって、前記命令は、前記プロセッサに、
前記コンテンツ管理システムによって、前記悪意のあるソフトウェアが前記クライアントデバイスから除去されたことを示すメッセージを前記管理者ユーザから受信することと、
前記メッセージを受信したことに応答して、前記コンテンツ管理システムと前記クライアントデバイスとの間のコンテンツアイテムの同期を再開することと
を含む動作を行わせることを特徴とするコンピュータプログラム。
【請求項１４】
請求項８に記載のコンピュータプログラムであって、前記命令は、前記プロセッサに、
前記コンテンツ管理システムによって、前記クライアントデバイスが悪意のあるソフトウェアに感染していることを示す第１のメッセージを送信することと、
前記コンテンツ管理システムによって、前記コンテンツ管理システムのユーザの前記チームの管理者ユーザが前記悪意のあるソフトウェアによって影響を受けたコンテンツアイテムを復元することを望むことを示す第２のメッセージを受信することと、
前記コンテンツ管理システムによって、前記悪意のあるソフトウェアによって影響を受けた各コンテンツアイテムの以前のバージョンを自動的に復元することであって、前記以前のバージョンは、前記悪意のあるソフトウェアに関連する最初の変更エントリに対応する開始時刻の直前に存在した対応する前記コンテンツアイテムの最新バージョンに対応する、ことと
を含む動作を行わせることを特徴とするコンピュータプログラム。
【請求項１５】
コンテンツ管理システムであって、
１以上のプロセッサと、
１以上の一連の命令を含む非一時的コンピュータ可読媒体とを備え、前記命令は、１以上のプロセッサによって実行されると、前記プロセッサに、
前記コンテンツ管理システムにおいてクライアントデバイスから、前記コンテンツ管理システム上のユーザアカウントと同期されたコンテンツアイテムへの変更を説明する変更エントリを含む変更セットを受信することであって、前記クライアントデバイスは、前記ユーザアカウント上で認証され、前記コンテンツ管理システムは前記説明された変更をそれぞれのコンテンツアイテムの元のバージョンへ適用するように構成される、ことと、
前記コンテンツ管理システムによって、前記受信した変更セットを変更セットのリポジトリに格納することと、
前記コンテンツ管理システムによって、前記変更セット内の各変更エントリを１以上のマルウェア検出規則と比較することと、
前記コンテンツ管理システムによって、前記変更セット内のある閾値数の前記変更エントリが前記マルウェア検出規則のうちの少なくとも１つを満足するかを判定することと、
前記ある閾値数の前記変更エントリが前記マルウェア検出規則の少なくとも１つを満足すると判定したことに応答して、前記コンテンツ管理システムによって、前記クライアントデバイスが悪意のあるソフトウェアを有する可能性があると判定することと
を含む動作を行わせることを特徴とするコンテンツ管理システム。
【請求項１６】
請求項１に記載の方法であって、
前記クライアントデバイスが悪意のあるソフトウェアを有する可能性があるとの判定に応答して、前記コンテンツ管理システムによって、前記コンテンツ管理システムと前記クライアントデバイスとの間のコンテンツアイテムの同期を中断することをさらに含むことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルウェア検出及びコンテンツアイテムの復元に関する。
【背景技術】
【０００２】
[0001]コンピューティングデバイスは悪意のある者によって作成及び分散されたマルウェアによる影響に対して脆弱でありうる。マルウェアのあるタイプ（例えば、ランサムウェア）は、ユーザのコンピューティングデバイス上のファイルを暗号化することによって買戻し金（ランサム）用のユーザファイルを保持する。ランサムウェアはユーザのファイルを復号化するためにどのようにユーザが料金（例えば、買戻し金）を支払うことができるかを説明する指示をユーザに提示する。ユーザが買戻し金を支払う場合、ユーザファイルが復号化される。ユーザが買戻し金を支払わないことを選択する場合、ランサムウェアによってファイルを暗号化するために使用された暗号化キーが削除され、暗号化ファイルがアクセス不能になり、ユーザにとって役に立たないものとなることがレンダリングされる。
【発明の概要】
【０００３】
[0002]本開示の追加的な特徴及び利点は以下に説明し、また部分的にはその説明から明らかであろうし、また本明細書で開示された原理の実施により学習されるであろう。本開示の特徴及び利点は、添付の請求項において具体的に示す機器及び組み合わせによって実現され、得られうるものである。本開示のこれらの特徴及びその他の特徴は、以下の記述及び添付の請求項からさらに十分に明らかになるか、又は本明細書で述べた原理の実施によっても分かるものである。
【０００４】
[0003]本開示は、マルウェア検出及びコンテンツアイテムリカバリについてのシステム、方法及び非一時的なコンピュータで読取可能な記憶媒体に関するものである。例えば、コンテンツ管理システムはユーザデバイスに格納されたコンテンツアイテムへ行われる変更を説明する情報を受信することができる。コンテンツ管理システムは、説明された変更がユーザデバイス上の悪意のあるソフトウェアに関連しているかどうかを判定するために情報を解析しうる。変更が悪意のあるソフトウェアに関連している場合は、コンテンツ管理システムは、どのコンテンツアイテムが悪意のあるソフトウェアによって影響を受けたかを判定することができ、及び／又は、悪意のあるソフトウェアがユーザデバイスに変更を行うことを最初に始めたのはいつかを判定することができる。コンテンツ管理システムは、影響を受けたバージョンのコンテンツアイテムを、悪意のあるソフトウェアがユーザデバイスに変更を行うことを開始した直前に存在したバージョンのコンテンツアイテムへ置き換えることによって、ユーザデバイスに関連付けられた影響を受けたコンテンツアイテムを復元することができる。
【図面の簡単な説明】
【０００５】
[0004]本開示の上記及びその他の利点及び特徴は、添付の図面に示す特定の実施の形態を参照することにより明らかになるであろう。これらの図面は、本開示の例示の実施形態を示しているだけであり、それゆえ、本開示の範囲を限定しているとみなされてはならないことを理解した上で、添付の図面を用いてさらに具体的かつ詳細に本明細書の原理を記述して説明する。
【図１】[0005]図１は、いくつかの実施形態に係る、デバイス及びネットワークの例示的な構成を示す。
【図２】[0006]図２は、マルウェア検出及びコンテンツアイテムのリカバリのための例示のシステムを示すブロック図である。
【図３】[0007]図３は、複数のマルウェア検出規則ハンドラを有する例示のシステムを示すブロック図である。
【図４】[0008]図４は、クライアントデバイスからコンテンツ管理システムへ送信される例示の一連の変更セットを示す。
【図５】[0009]図５は、マルウェアの攻撃が検出された後にコンテンツアイテムのリカバリを開始するようにユーザに促すための例示のグラフィカルユーザインタフェースを示す。
【図６】[0010]図６は、クライアントデバイスとコンテンツ管理システムとの間の停止した同期を再開するための例示のグラフィカルユーザインタフェースを示す。
【図７】[0011]図７は、チームのユーザに関連付けられたコンテンツアイテムを正常に復元するための例示のグラフィカルユーザインタフェースを示す。
【図８】[0012]図８は、悪意のあるソフトウェアが感染したクライアントデバイスから削除されたことを確認するためのグラフィカルユーザインタフェースを示す。
【図９】[0013]図９は、クライアントデバイスが悪意のあるソフトウェアに感染しているかどうかを判定するためにスキャンを開始するための例示のグラフィカルユーザインタフェースを示す
【図１０】[0014]図１０は、疑わしいエントリについての個別の変更セットを解析するための例示の処理を示すフローチャートである。
【図１１】[0015]図１１は、クライアントデバイスに関連付けられた変更セットのフルスキャンを行うための例示の処理を示すフローチャートである。
【図１２】[0016]図１２は、マルウェアに影響を受けたコンテンツアイテムを復元するための例示の処理を示すフローチャートである。
【図１３Ａ】[0017]図１３Ａは、本技術の種々の実施形態を実施するための例示の可能なシステム形態を示す図である。
【図１３Ｂ】[0018]図１３Ｂは、本技術の種々の実施形態を実施するための例示の可能なシステム形態を示す図である。
【発明を実施するための形態】
【０００６】
[0019]本開示のさまざまな実施の形態について、以下に詳しく論じる。特定の実施例について論じているが、これは説明のみを目的として行われていることを理解されたい。当業者は、本開示の趣旨及び範囲から逸脱することなく他のコンポーネントや構成が用いられうることを認識するであろう。
【０００７】
[0020]本開示の技術は当分野で必要とされる改良されたマルウェア検出及びコンテンツアイテムのリカバリを解決する。多くの場合、ユーザのデバイスがランサムウェア又は他のタイプのマルウェアに感染されると、ユーザにはコンテンツアイテムを復元するためのいくつかのオプションが残されている。一般的には、ユーザはユーザのコンテンツアイテムを復元するために買戻し金を支払うか、或いは、買戻し金の支払いを無視してそれらのコンテンツアイテムを永遠に失うかである。ここで開示される本システムはランサムウェアへの感染の自動検出及び／又はユーザが買戻し金を支払うことを必要としないコンテンツアイテムの復元を提供する。ここで開示されるいくつかの機能がユーザの要求に応じて実行される一方で、ここで開示されるマルウェア検出及びコンテンツアイテムの復元機能はまた、ユーザのコンテンツアイテムの素早い復元をユーザに提供するために自動的に実行されうる。
【０００８】
[0021]開示される技術の種々の実施形態の実装に関して、図１には、例示的なシステム構成１００が示され、複数の電子デバイスが、コンテンツや他のデータを交換する目的でネットワークを介して通信する。本システムは、図１に示されるように、ワイドエリアネットワーク上で使用されるよう構成されてもよい。しかしながら、本原理は、電子デバイス間の通信を促進する様々な種類のネットワーク構成に適用可能である。例えば、図１のシステム１００の各コンポーネントは、ネットワークにおいて局在的又は分散的に実装されてもよい。
【０００９】
[0022]システム１００では、直接及び／又は間接通信によりネットワーク１０４と接続された複数のクライアントデバイス１０２１、１０２２、…、１０２ｎ（「１０２」と総称する）を通じて、ユーザはコンテンツ管理システム１０６（例えば、オンライン同期コンテンツ管理システム）とやり取りすることができる。コンテンツ管理システム１０６は、ここで説明されるサービスを提供するために必要となる機能及び／又は動作を実行するように構成された、単一のコンピューティングデバイス（例えば、１つのサーバ）又は複数のコンピューティングデバイス（例えば、複数のサーバ）を含むことができる。コンテンツ管理システム１０６は、デスクトップコンピュータや、モバイルコンピュータや、携帯電話、スマートフォン、タブレットなどのモバイル通信デバイスや、スマートテレビジョンや、セットトップボックスや、他の任意のネットワーク可能な計算デバイスなどの多種多様なクライアントデバイスからの接続をサポートしてもよい。クライアントデバイス１０２は、各種の種別、性能、オペレーティングシステム等であってもよい。さらに、コンテンツ管理システム１０６は、複数のクライアントデバイス１０２からの接続を同時に許可してもよく、複数のクライアントデバイス１０２とのやり取りを同時に行ってもよい。
【００１０】
[0023]クライアントデバイス１０２ｉにインストールされたクライアント側アプリケーションを介して、ユーザはコンテンツ管理システム１０６と相互に作用してもよい。ある実施の形態では、クライアント側アプリケーションはコンテンツ管理システム用のコンポーネントを含んでもよい。例えば、コンポーネントはスタンドアローンアプリケーションやひとつ以上のアプリケーションプラグインやブラウザエクステンションであってもよい。しかしながら、クライアントデバイス１０２ｉに存在しコンテンツ管理システム１０６と通信するよう構成されたウェブブラウザなどの第３者アプリケーションを介して、ユーザはコンテンツ管理システム１０６と相互に作用してもよい。いずれの場合でも、クライアント側アプリケーションは、ユーザがコンテンツ管理システム１０６と相互作用するためのユーザインタフェース（ＵＩ）を提供してもよい。例えば、ファイルシステムと統合されたクライアント側アプリケーションを介して、又はウェブブラウザアプリケーションを使用して表示されたウェブページを介して、ユーザはコンテンツ管理システム１０６と相互に作用してもよい。
【００１１】
[0024]コンテンツ管理システム１０６は、ユーザによるコンテンツアイテムの格納や、コンテンツアイテムの取得、変更、閲覧、及び／又は共有などの種々のコンテンツ管理タスクの実行を可能としてもよい。さらにコンテンツ管理システム１０６は、ユーザが複数のクライアントデバイス１０２からコンテンツにアクセスすることを可能としてもよい。例えば、クライアントデバイス１０２ｉはネットワーク１０４を介してコンテンツ管理システム１０６にコンテンツをアップロードしてもよい。後に、同一のクライアントデバイス１０２ｉ又はいくつかの他のクライアントデバイス１０２ｊはコンテンツ管理システム１０６から当該コンテンツを検索することができる。
【００１２】
[0025]種々のコンテンツ管理サービスをより容易にするために、ユーザはコンテンツ管理システム１０６にアカウントを生成してもよい。ユーザアカウントデータベース１５０は、アカウント情報を維持してもよい。ユーザアカウントデータベース１５０は、登録ユーザについてのプロファイル情報を格納してもよい。ある場合には、ユーザプロファイルの個人情報はユーザ名及び／又は電子メールアドレスのみであってもよい。しかしながら、コンテンツ管理システム１０６は、誕生日、住所、課金情報などの追加的なユーザ情報を受け入れるよう構成されてもよい。
【００１３】
[0026]ユーザアカウントデータベース１５０は、有料／無料の別などのアカウントタイプや、ファイル編集履歴などの利用情報や、許可されている最大ストレージスペースや、利用されているストレージスペースや、コンテンツストレージ位置や、セキュリティ設定や、個人構成設定や、コンテンツ共有データなどのアカウント管理情報を含んでもよい。アカウント管理モジュール１２４は、ユーザアカウントデータベース１５０のユーザアカウントの詳細を更新し、及び／又は、取得するように構成されてもよい。アカウント管理モジュール１２４は、コンテンツ管理システム１０６の他の任意の数のモジュールと相互に作用するよう構成されてもよい。
【００１４】
[0027]アカウントは、そのアカウントで認証されたひとつ以上のクライアントデバイス１０２から、デジタルデータやドキュメントやテキストファイルや音声ファイルやビデオファイルなどのコンテンツアイテムを格納するために使用されてもよい。コンテンツアイテムはまた、フォルダ、プレイリスト、アルバムなどの種々の挙動とともにコンテンツアイテムをグループ化するコレクションを含むことができる。例えば、アカウントは任意のユーザに対してアクセス可能とする公開フォルダを含むことができる。公開フォルダにはウェブアクセス可能なアドレスが割り当てられてもよい。ウェブアクセス可能なアドレスへのリンクは、公開フォルダのコンテンツにアクセスするために使用されうる。他の例では、アカウントは、写真に適する特定の属性やアクションを提供する写真用の写真コレクションや、音声ファイルを再生する能力を提供し他の音声関連アクションを実行する音声コレクションや、他の特殊用途コレクションを含んでもよい。アカウントは、複数のユーザアカウントとリンクされそれらのアカウントから利用可能な共有コレクション又はグループコレクションを含んでもよい。ある共有コレクションについての複数のユーザに対する複数のパーミッションは異なっていてもよい。
【００１５】
[0028]コンテンツアイテムはコンテンツストレージ１６０に格納されてもよい。コンテンツストレージ１６０は、ストレージデバイスや、複数のストレージデバイスや、サーバであってもよい。代替的に、コンテンツストレージ１６０は、ひとつ以上の通信ネットワークを介してアクセス可能なクラウドストレージプロバイダ又はネットワークストレージであってもよい。コンテンツ管理システム１０６がクライアントデバイス１０２に対して複雑さと詳細とを隠すことで、クライアントデバイス１０２は、コンテンツアイテムがコンテンツ管理システム１０６によって正確にどこにどのように格納されているのかを知る必要はない。いくつかの実施形態では、コンテンツ管理システム１０６は、クライアントデバイス１０２ｉ上に現れるコレクション階層と同じフォルダ階層でコンテンツアイテムを格納してもよい。しかしながら、コンテンツ管理システム１０６は自身の順序や構成や階層でコンテンツアイテムを格納してもよい。コンテンツ管理システム１０６は、コンテンツアイテムを、ネットワークアクセス可能ストレージ（ＮＡＳ）デバイス、ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ（ＲＡＩＤ）等に格納しうる。コンテンツストレージ１６０は、コンテンツアイテムを、ＦＡＴ、ＦＡＴ３２、ＮＴＦＳ、ＥＸＴ２、ＥＸＴ３、ＥＸＴ４、ＨＦＳ／ＨＦＳ＋、ＢＴＲＦＳ等の１つ以上のパーティションタイプを用いて格納しうる。
【００１６】
[0029]コンテンツストレージ１６０は、コンテンツアイテム及びコンテンツアイテムタイプ及びコンテンツアイテムと種々のアカウントやコレクションやグループとの関係を説明するメタデータを格納してもよい。コンテンツアイテムのメタデータは、コンテンツアイテムの一部として格納されてもよいし、別個に格納されてもよい。ある変形例では、コンテンツストレージ１６０に格納される各コンテンツアイテムには、システム全体で一意の識別子が割り当てられてもよい。
【００１７】
[0030]コンテンツストレージ１６０は、重複したコンテンツアイテムやコンテンツアイテムの重複セグメントを特定することによって、要求されるストレージスペースの量を低減することができる。複数の複製を保持する代わりに、コンテンツストレージ１６０は単一の複製を保持し、ポインタや他のメカニズムを使用して、重複しているものをその単一の複製にリンクさせてもよい。同様に、コンテンツストレージ１６０は、より効率的にコンテンツアイテムを格納すると共に、コンテンツアイテムの変化、コンテンツアイテムの異なるバージョン（バージョンツリーの分岐を含む）、及び変更履歴を追跡するコンテンツアイテムバージョン制御を用いることによって、アンドゥ（Undo）操作の機能を提供しうる。変更履歴は、元のコンテンツアイテムのバージョンにいつ適用したか、変更されたコンテンツアイテムのバージョンをいつ生成したかの変更のセットを含みうる。
【００１８】
[0031]コンテンツ管理システム１０６はひとつ以上のクライアントデバイス１０２からのコンテンツアイテムの自動同期をサポートするよう構成されてもよい。同期はプラットフォーム非依存型であってもよい。すなわち、コンテンツアイテムは、種類、機能、オペレーティングシステム等の異なる、複数のクライアントデバイス１０２にわたって同期処理されうる。例えば、クライアントデバイス１０２ｉは、コンテンツ管理システム１０６の同期モジュール１３２を介して、クライアントデバイス１０２ｉのファイルシステムのコンテンツを、ユーザアカウントに関連付けられるコンテンツと同期するクライアントソフトウェアを含みうる。ある場合では、クライアントソフトウェアは、新規の、削除された、修正された、コピーされた又は移動されたコンテンツアイテムやコレクション等のような、指定されたコレクション及びそのサブコレクション内のコンテンツに対する任意の変更と同期しうる。クライアントソフトウェアは別個のソフトウェアアプリケーションであってもよく、又はオペレーティングシステム中の既存のコンテンツ管理アプリケーションに統合されていてもよく、又はそれらの組み合わせであってもよい。既存のコンテンツ管理アプリケーションに統合されるクライアントソフトウエアの一例では、ユーザはローカルコレクション内で直接コンテンツを操作し、その間、バックグラウンド処理は変更がないかローカルコレクションを監視し、そのような変更の同期をコンテンツ管理システム１０６に対して実行する。逆に、バックグラウンド処理はコンテンツ管理システム１０６において更新されたコンテンツアイテムを特定し、そのような変更の同期をローカルコレクションに対して実行してもよい。クライアントソフトウェアは同期操作の通知を提供してもよく、コンテンツ管理アプリケーションの中で直接、コンテンツ状態の表示を提供してもよい。クライアントデバイス１０２ｉが利用可能なネットワーク接続を有さない場合がある。このシナリオでは、クライアントソフトウェアは、コンテンツアイテムの変更に対してリンクされたコレクションを監視し、ネットワーク接続が可能になった際のコンテンツ管理システム１０６への後の同期のために、これらの変更をキューに入れうる。同様に、ユーザは、コンテンツ管理システム１０６との同期を手動で止めるか中断するか再開してもよい。
【００１９】
[0032]ユーザは、ユーザインタフェースモジュール１２２によって生成され提供されるウェブインタフェースを介して、コンテンツを視たり操作したりしてもよい。例えば、ユーザは、ウェブブラウザ内で、コンテンツ管理システム１０６によって提供されるウェブアドレスへと辿り着いてもよい。コンテンツアイテムの新たなバージョンのアップロードのように、ウェブインタフェースを通じてなされたコンテンツストレージ１６０のコンテンツへの変更や更新は、ユーザのアカウントに関連する他のクライアントデバイス１０２へと伝搬されてもよい。例えば、それぞれが自身のクライアントソフトウエアを有する複数のクライアントデバイス１０２は単一のアカウントと関連付けられていてもよく、そのアカウントのコンテンツアイテムは複数のクライアントデバイス１０２のそれぞれの間で同期されてもよい。
【００２０】
[0033]コンテンツ管理システム１０６は、アプリケーションプログラムインタフェース（ＡＰＩ）を介して他のコンテンツ及び／又はサービスプロバイダ１０９１、１０９２、…、１０９ｎ（「１０９」と総称する）と相互に作用可能な通信インタフェース１２０であって種々のクライアントデバイス１０２とのインタフェースとしての通信インタフェース１２０を含んでもよい。所定のソフトウエアアプリケーションは、ユーザの代わりに、ＡＰＩを介してコンテンツストレージ１６０にアクセスしてもよい。例えば、スマートフォンやタブレット計算デバイス上で動作するアプリケーションなどのソフトウエアパッケージはプログラム上、ユーザが資格証明を提供する場合、コンテンツ管理システム１０６を直接呼び出し、コンテンツを読み取り、書き込み、生成し、消去し、共有し、又はそうでなければ操作してもよい。同様に、ＡＰＩは、ウェブサイトを通じてユーザがコンテンツストレージ１６０の全て又は一部にアクセスすることを可能としてもよい。
【００２１】
[0034]コンテンツ管理システム１０６は認証モジュール１２６を含んでもよい。この認証モジュール１２６は、ユーザの資格証明やセキュリティトークンやＡＰＩコールや特定のクライアントデバイスなどを検証し、認証されたクライアント及びユーザのみがコンテンツアイテムにアクセスできることを確実なものとしてもよい。さらに、コンテンツ管理システム１０６は解析モジュール１３４を含んでもよい。この解析モジュール１３４は集合的ファイル操作やユーザアクションやネットワーク利用状況や使用されているトータルのストレージスペースや、他の技術的、利用状況的又はビジネス上の指標を追い、それについて報告してもよい。プライバシー及び／又はセキュリティポリシーは、コンテンツ管理システム１０６に保持されるユーザデータへの許可を得ないアクセスを防止してもよい。
【００２２】
[0035]コンテンツ管理システム１０６は、公に又は私的にコンテンツを共有することを管理するための共有モジュール１３０を含んでもよい。公にコンテンツを共有することは、コンテンツアイテムを、コンテンツ管理システム１０６とネットワーク通信可能な任意の計算デバイスからアクセス可能とすることを含んでもよい。私的にコンテンツを共有することは、コンテンツストレージ１６０のコンテンツアイテムを２以上のユーザアカウントとリンクさせ、それにより各ユーザアカウントがそのコンテンツアイテムへのアクセスを有することを含んでもよい。当該共有は、プラットフォームが不可知の態様でなされてもよい。つまり、コンテンツは種々の種別、性能、オペレーティングシステムなどの複数のクライアントデバイス１０２に渡って共有されてもよい。当該コンテンツはまた、ユーザアカウントの種々の種別に渡って共有されてもよい。
【００２３】
[0036]ある実施の形態では、コンテンツ管理システム１０６は、コンテンツストレージ１６０における各コンテンツアイテムの位置を特定するコンテンツディレクトリを維持するよう構成されてもよい。コンテンツディレクトリは、コンテンツストレージに保持される各コンテンツアイテムに対して一意のコンテンツエントリを含んでもよい。
【００２４】
[0037]コンテンツエントリは、コンテンツ管理システム内のコンテンツアイテムのロケーションを識別するために使用されうるコンテンツパスを含みうる。例えば、コンテンツパスはコンテンツアイテムの名前とコンテンツアイテムに関連するフォルダ階層とを含んでもよい。例えば、コンテンツパスは、コンテンツアイテムの名前に加えて、そのコンテンツアイテムが置かれているフォルダ又はフォルダのパスを含んでもよい。コンテンツ管理システム１０６はコンテンツパスを使用して、コンテンツアイテムを適切なフォルダ階層の中で提示してもよい。
【００２５】
[0038]コンテンツエントリは、コンテンツストレージ１６０におけるコンテンツアイテムの位置を特定するコンテンツポインタを含んでもよい。例えば、コンテンツポインタはメモリにおけるコンテンツアイテムの正確なストレージアドレスを含んでもよい。ある実施の形態では、コンテンツポインタは複数の位置を指してもよく、複数の位置のそれぞれはコンテンツアイテムの一部を含む。
【００２６】
[0039]コンテンツパス及びコンテンツポインタに加えて、コンテンツエントリはコンテンツアイテムへのアクセスを有するユーザアカウントを特定するユーザアカウント識別子を含んでもよい。ある実施の形態では、複数のユーザアカウント識別子が単一のコンテンツエントリに関連付けられてもよく、これは、そのコンテンツアイテムが複数のユーザアカウントによる共有アクセスを有することを示す。
【００２７】
[0040] 私的にコンテンツアイテムを共有するために、共有モジュール１３０は、ユーザアカウント識別子をコンテンツアイテムに関連付けられたコンテンツエントリに追加し、それにより追加されたユーザアカウントにコンテンツアイテムへのアクセスを与えるよう構成される。共有モジュール１３０は、ユーザアカウントのコンテンツアイテムへのアクセスを制限するために、コンテンツエントリからユーザアカウント識別子を除くよう構成されてもよい。
【００２８】
[0041]公にコンテンツを共有するために、共有モジュール１３０はユニフォームリソースロケータ（ＵＲＬ）などのカスタムネットワークアドレスを生成するよう構成されてもよい。このカスタムネットワークアドレスにより、任意のウェブブラウザが、コンテンツ管理システム１０６のコンテンツに認証なしでアクセスすることが可能となる。これを達成するために、共有モジュール１３０は生成されるＵＲＬにコンテンツ特定データを含めるよう構成されてもよい。コンテンツ特定データは、後に、要求されたコンテンツアイテムを適切に特定して返すために使用されてもよい。例えば、共有モジュール１３０は、生成されるＵＲＬにユーザアカウント識別子とコンテンツパスとを含めるよう構成されてもよい。ＵＲＬが選択されると、ＵＲＬに含まれるコンテンツ特定データはコンテンツ管理システム１０６に送信されてもよい。コンテンツ管理システム１０６は受信したコンテンツ特定データを使用して適切なコンテンツエントリを特定し、そのコンテンツエントリに関連付けられたコンテンツアイテムを返してもよい。
【００２９】
[0042]ＵＲＬを生成することに加えて、共有モジュール１３０はコンテンツアイテムへのＵＲＬが生成されたことを記録するよう構成されてもよい。ある実施の形態では、コンテンツアイテムに関連付けられたコンテンツエントリは、そのコンテンツアイテムへのＵＲＬが生成されたか否かを示すＵＲＬフラグを含んでもよい。例えば、ＵＲＬフラグは、コンテンツアイテムへのＵＲＬがまだ生成されていないことを示すために最初に０又はｆａｌｓｅに設定されるブール値であってもよい。共有モジュール１３０は、コンテンツアイテムへのＵＲＬを生成した後はフラグの値を１又はｔｒｕｅに変更するよう構成されてもよい。
【００３０】
[0043]ある実施の形態では、共有モジュール１３０は生成されたＵＲＬを非活性化するよう構成されてもよい。例えば、各コンテンツエントリは、要求に応じて生成されたＵＲＬからコンテンツが返されるべきか否かを示すＵＲＬアクティブフラグを含んでもよい。例えば、共有モジュール１３０は、ＵＲＬアクティブフラグが１又はｔｒｕｅに設定されている場合にのみ、生成されたリンクによって要求されるコンテンツアイテムを返すよう構成されてもよい。したがって、ＵＲＬが既に生成されたコンテンツアイテムへのアクセスは、ＵＲＬアクティブフラグの値を変更することにより、容易に制限されうる。これにより、ユーザは、コンテンツアイテムを移動したり生成されたＵＲＬを削除したりしなくても、共有コンテンツアイテムへのアクセスを制限できる。同様に、共有モジュール１３０は、ＵＲＬアクティブフラグの値を１又はｔｒｕｅに変えることでＵＲＬを再活性化してもよい。したがって、ユーザは、新たなＵＲＬを生成する必要なしにコンテンツアイテムへのアクセスを容易に復活させることができる。
【００３１】
[0044]コンテンツ管理システム１０６は、特定のコンポーネントを与えられて示されているものの、当業者は、システム１０６の構造上の構成が単に一つの可能性のある構成であること、及び、多少のコンポーネントが与えられた他の構成も可能であることを理解すべきである。
【００３２】
[0045]図２は、ワークスペースに新たなコンテンツアイテムを作成するための例示のシステム２００を示すブロック図である。例えば、システム２００は上述した図１のシステム１００に対応しうる。
【００３３】
[0046]いくつかの実施形態において、システム２００は、クライアントデバイス２４０を含んでもよい。例えば、クライアントデバイス２４０は上述したクライアントデバイス１０２に対応しうる。クライアントデバイス２４０は、例えば、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ウェアラブルデバイス、及び／又は任意の他のコンピューティングデバイスであってもよい。図２はただ一つのクライアントデバイス２４０（例えば、クライアントデバイス１０２ｉ）を有するシステム２００を示すが、システム２００は、コンテンツ管理システム１０６とやり取りを行う多くのクライアントデバイス２４０（例えば、クライアントデバイス１０２ｉ−１０２ｎ）を含むことができる。例えば、コンテンツ管理システム１０６のユーザは、種々のワークプロジェクト及び／又はチームに対応するユーザのグループを形成することができる。プロジェクト、チーム又はグループの各メンバは、コンテンツ管理システム１０６によって管理され、かつ、上記プロジェクト、チーム又はグループのメンバ（例えば、ユーザ）と共有されるデータにアクセスするために、コンテンツ管理システム１０６と通信を行う、異なるクライアントデバイス２４０を有してもよい。
【００３４】
[0047]いくつかの実施形態において、クライアントデバイス２４０は、コンテンツ管理システム（ＣＭＳ）クライアント２４２を含みうる。例えば、ＣＭＳクライアント２４２は、クライアントデバイス２４０のネイティブアプリケーションであってもよい。例えば、ネイティブソフトウェアアプリケーションは、クライアントデバイス２４０のハードウェア及び／又はソフトウェア構成に対して特別にビルドされたアプリケーションであってもよい。このように、以下で詳細に説明されるＣＭＳクライアント２４２のグラフィカルユーザインタフェース（及び他の機能）は、クライアントデバイス２４０に固有の、命令、アプリケーションプログラミングインタフェース（ＡＰＩ）、及び他の技術を用いて実装されうる。以下のグラフィカルユーザインタフェースを生成するために、及び／又は、ここで説明する種々の特徴を実行するために、ＣＭＳクライアント２４２は、ネットワーク接続を介して（例えばネットワーク１０４を通じて）、コンテンツ管理システム１０６（例えば、ユーザインタフェースモジュール１２２）からのデータ（例えば、コンテンツアイテム、通知等）を要求することができる。コンテンツ管理システム１０６は、コンテンツ管理システム１０６のコンテンツストレージ１６０及び／又は他のモジュールからデータを取得し、ＣＭＳクライアント２４２へデータを送信することができる。ＣＭＳクライアント２４２はその後、ＣＭＳクライアント２４２によって生成される種々のグラフィカルユーザインタフェース上にデータを提示することができる。
[0048]代替的に、ＣＭＳクライアント２４２は、クライアントデバイス２４０上で動作するウェブブラウザによって実行されるウェブクライアントであってもよい。このように、ＣＭＳクライアント２４２のグラフィカルユーザインタフェース（及び他の機能）は、クライアントデバイス２４０に固有でない、命令、ＡＰＩ、及び他の技術を用いて実装されうる。例えば、ＣＭＳクライアント２４２は、固有でないウェブコード又は命令を用いるウェブアプリケーションとしてビルドされてもよい。以下で詳細に説明するように、コンテンツ管理システム１０６は、ＣＭＳクライアント２４２をクライアントデバイス２４０上のウェブブラウザに提供し、ウェブブラウザはユーザへグラフィカルユーザインタフェース（及び他の機能）を提供するために、ＣＭＳクライアント２４２を実行することができる。以下のグラフィカルユーザインタフェースを生成するために、及び／又は、ここで説明する種々の特徴を実行するために、ＣＭＳクライアント２４２（例えば、ウェブブラウザ）は、コンテンツ管理システム１０６からの種々のデータビュー（例えば、グラフィカルユーザインタフェース、ウェブページ等）を要求することができる。コンテンツ管理システム１０６は、コンテンツ管理システムのデータ（例えば、コンテンツアイテム、通知、コメント、タスク等）を提示するためのデータビュー（例えば、後述のグラフィカルユーザインタフェース）を生成し、ネットワーク接続を介して（例えば、ネットワーク１０４を通じて）当該データビューをＣＭＳクライアント２４２へ送信することができる。例えば、コンテンツ管理システム１０６は、コンテンツ管理システム１０６のコンテンツストレージ１０６及び／又はソフトウェアモジュールからデータを取得し、当該データに基づいてデータビューを生成し、ＣＭＳクライアント２４２へデータを送信することができる。ＣＭＳクライアント２４２はその後、クラインアントデバイス２４０のディスプレイ上にプロジェクトフォルダビューを提示することができる。
【００３５】
[0049]いくつかの実施形態において、クライアントデバイス２４０は、ＣＭＳデーモン２４４を含んでもよい。例えば、ＣＭＳデーモン２４４は、コンテンツ管理システム１０６とクライアントデバイス２４０との間のデータの同期を維持するコンテンツ管理システム１０６のクライアントであってもよい。例えば、クライアントデバイス２４０は管理コンテンツ２５０を含んでもよい。管理コンテンツ２５０は、コンテンツ管理システム１０６によって管理されるクライアントデバイス２４０上のファイルシステムの一部及び／又はＣＭＳデーモン２４４であってもよい。ＣＭＳデーモン２４４及び／又はコンテンツ管理システム１０６は、管理コンテンツ２５０に格納されるコンテンツアイテムを、例えば、コンテンツストレージ１６０に格納されるコンテンツアイテムと同期することができる。
【００３６】
[0050]特に、クライアントデバイス２４０のユーザがネームスペース２６２及び／又はネームスペース２６４へアクセスする許可を有する場合、コンテンツ管理システム１０６及び／又はＣＭＳデーモン２４４は、コンテンツ管理システム１０６条のネームスペース２６２及び／又はネームスペース２６４の状態（例えば、コンテンツアイテム、コンテンツアイテムメタデータ等）を、クライアントデバイス２４０上の管理コンテンツ２５０に格納されたネームスペース２６２及び／又はネームスペース２６４の状態と同期することができる。コンテンツ管理システム１０６とクライアントデバイス２４０との間で当該ネームスペースの状態又はコンテンツを同期することによって、クライアントデバイス２４０のユーザはクライアントデバイス２４０上のローカルと、コンテンツ管理システム１０６を通じたリモートとの両方で各ネームスペースに関連付けられるコンテンツアイテムにアクセスすることができる。
【００３７】
[0051]例えば、ネームスペースは、コンテンツ管理システム１０６によって管理されるコンテンツアイテムのフォルダ、コレクション、又はグループに対応しうる。ネームスペースは複数のユーザのチーム、プロジェクト、又は他の共同グループに対応しうる。コンテンツ管理システム１０６は、１以上のネームスペースを、コンテンツ管理システム１０６によって管理されるコンテンツアイテムと関連付けることができる（例えば、ネームスペースがコンテンツアイテムに関連付けられるメタデータで識別されうる）。コンテンツ管理システム１０６は、要求側ユーザデバイス（例えば、ユーザ）がいずれのネームスペースにアクセスする許可を有するかに基づいて、コンテンツアイテム及び／又はメタデータを、検索及び／又は同期することができる。図２の例示において、クライアントデバイス２４０（例えば、対応ユーザ）は、ネームスペース２６２及び／又はネームスペース２６４にアクセスする許可を有し、従って、コンテンツ管理システム１０６は、ネームスペース２６２及び／又は２６４に関連付けられたコンテンツアイテム、メタデータ、及び他の状態情報をクライアントデバイス２４０と同期する。
【００３８】
[0052]いくつかの実施形態において、クライアントデバイス２４０は変更セット２４６をコンテンツ管理システム１０６へ送信することができる。例えば、クライアントデバイス２４０は、管理コンテンツ２５０のコンテンツをコンテンツストレージ１６０に格納されたコンテンツと同期する際に、変更セット２４６をコンテンツ管理システム１０６へ送信することができる。変更セットはクライアントデバイス２４０で行われた変更を説明するデータ又は命令を含みうる。例えば、ＣＭＳデーモン２４４は、クライアントデバイス２４０上の管理コンテンツ２５０へ行われた変更をコンテンツ管理システム１０６へ知らせるために変更セット２４６を生成することができる。ＣＭＳデーモン２４４は、時間経過とともに変更セット２４６へのエントリを追加しうる。このように、変更セット２４６は、期間内に管理コンテンツ２５０へ行われた変更の全てを説明するエントリを含みうる。例えば、クライアントデバイス２４０がコンテンツアイテムを管理コンテンツ２５０から削除すると、ＣＭＳデーモン２４４は、コンテンツアイテムが削除されたことを示すエントリを変更セットに生成することができる。クライアントデバイス２４０がコンテンツアイテムを管理コンテンツ２５０へ追加すると、ＣＭＳデーモン２４４は、コンテンツアイテムが追加されたことを示すエントリを変更セットに生成することができる。当該エントリ（例えば、文字列）は、クライアントデバイス２４０についてのデバイス識別子、当該変更が関連付けられるネームスペースに対応するネームスペース識別子、実行された変更動作についての記述子（例えば、”削除”、”追加”、”変更”等）、当該動作によって影響を受けたコンテンツアイテムにおけるコンテンツアイテム識別子（例えば、ファイル名称、ファイル名称の拡張子、格納場所等）、及び／又は変更動作が行われた時を示すタイムスタンプを含みうる。ＣＭＳデーモン２４４は、変更セット２４６をコンテンツ管理システム１０６に対して周期的に送信することができ、それにより、コンテンツ管理システム１０６は当該変更セットで説明される変更に基づいてコンテンツストレージ１６０に更新を行うことができる。変更セット２４６をコンテンツ管理システム１０６へ送信した後に、ＣＭＳデーモン２４４は、管理コンテンツ２５０に行われた新たな変更の追跡を継続するために、新たな変更セット２４６を生成しうる。したがって、ＣＭＳデーモン２４４は、時間経過とともに管理コンテンツ２５０への変更を説明する、多くの変更セット２４６を時間経過とともにコンテンツ管理システム１０６へ送信することができる。
【００３９】
[0053]いくつかの実施形態において、コンテンツ管理システム１０６は、クライアントデバイス２４０から変更セット２４６を受信することができる。例えば、コンテンツ管理システム１０６は、上述したように、時間経過とともに複数の変更セット２４６を受信しうる。コンテンツ管理システム１０６がクライアントデバイス２４０から変更セット２４６を受信すると、コンテンツ管理システム１０６は、変更セット２６０のコレクション内の変更セット２４６を格納することができる。コンテンツ管理システム１０６が変更セット２４６を受信すると、コンテンツ管理システム１０６は、変更セット２４６に説明された変更を行うことができる。例えば、コンテンツ管理システムは、変更セット２４６に説明された変更操作に従って、コンテンツストレージ１６０のコンテンツアイテムに対して、追加、削除、修正、移動等を行うことができる。
【００４０】
[0054]いくつかの実施形態において、コンテンツ管理システム１０６は、クライアントデバイス１４０上でのマルウェアの攻撃を検出するための複数のモジュールを含むことができる。例えば、コンテンツ管理システム１０６は、変更セット２４６に含まれるマルウェアの攻撃の痕跡又は兆候を検出するための軽量モジュール２０２、２０４を含みうる。コンテンツ管理システム１０６は、以下で詳細に説明するように、マルウェアの攻撃の範囲及び／又は開始時刻を判定するために、変更セット２６０のより広範囲の又はより詳細のスキャンを実行するためのスキャニングモジュール２０６を含みうる。
【００４１】
[0055]いくつかの実施形態において、コンテンツ管理システム１０６は、マルウェア検出規則ハンドラ２０２を含みうる。コンテンツ管理システム１０６が変更セット２４６を受信すると、検出規則ハンドラ２０２は、変更セット２４６の各エントリが検出規則ハンドラ２０２によって扱われる検出規則を満足するかどうかを判定するために、変更セット２４６を処理しうる。変更セット２４６の変更エントリは、変更エントリがマルウェア検出規則を満足すると、不審なエントリとしてみなされうる。例えば、コンテンツ管理システム１０６は、複数の検出規則ハンドラ２０２を含みうる。各検出規則ハンドラ２０２は、変更エントリが不審なエントリであるか（例えば、既知の悪意のあるソフトウェアに関連付けられる特徴を含むか）どうかを判定するために、変更セット２４６の変更エントリを特定のマルウェア検出規則又は条件と比較するように構成されうる。
【００４２】
[0056]いくつかの実施形態において、検出規則ハンドラ２０２は、変更セット２４６のエントリと、既知のマルウェアの命名規則（例えば、ファイルネーム、ファイル拡張子等）とを比較することによって、変更セット２４６の不審なエントリを判定することができる。例えば、コンテンツ管理システム１０６は、既知のマルウェア（ランサムウェア）のファイルネーム拡張子のブラックリストを維持管理することができる。検出規則ハンドラ２０２は、変更エントリが不審なエントリ（例えば、クライアントデバイス２４０上でのマルウェアの攻撃に関連する）であるか否かを判定するために、変更セット２４６の各変更エントリと上記ブラックリストのファイルネーム拡張子とを比較しうる。例えば、ブラックリストが既知のランサムソフトウェアに関連付けられたファイルネーム拡張子”.ransom”を含む場合、検出規則ハンドラ２０２は、変更エントリが”.ransom”拡張子を有するコンテンツアイテムに関連付けられているかどうかを判定するために、変更セット２４６内の各変更エントリにおけるコンテンツアイテム識別子と、文字列”.ransom”とを比較しうる。変更セット２４６が管理コンテンツ２５０に追加された識別子”file1.ransom”を有するコンテンツアイテムを示すエントリを含む場合、検出規則ハンドラ２０２は、当該エントリが不審なエントリ（例えば、マルウェアに関連がありそう）であると判定しうる。
【００４３】
[0057]同様に、検出規則ハンドラ２０２は、マルウェアの指示ファイルがクライアントデバイス２４０上の管理コンテンツ２５０に追加されたかどうかを判定するために、変更セット２４６の変更エントリを比較しうる。例えば、ランサムウェアがクライアントデバイス２４０上のコンテンツアイテムを暗号化する場合、ランサムウェアは、クライアントデバイス２４０上の暗号化されたコンテンツアイテムを復号化するためにどのように買戻し金の支払いを行うかを説明する、クライアントデバイス２４０のユーザへの指示を提供するヘルプファイル（例えば、help.txt、help.pdf、instructions.pdf等）を生成しうる。コンテンツ管理システム１０６は、ランサムウェアのヘルプファイルがクライアントデバイス２４０上に格納されているかどうかを判定するために、既知の指示ファイルの命名規則（例えば、”help”、”instructions”等）に対応する文字列と、変更セット２４６の変更エントリとを比較する検出規則ハンドラ２０２を含みうる。例えば、変更セット２４６が識別子”help.txt”を有するコンテンツアイテムを追加することを説明する変更エントリを含む場合、検出規則ハンドラ２０２は、識別子”help.txt”と文字列”help”とを比較し、当該比較に基づいて当該変更エントリが不審なエントリ（例えば、マルウェアの攻撃に関連がありそう）であるかを判定しうる。
【００４４】
[0058]いくつかの実施形態において、コンテンツ管理システム１０６は、感染検出モジュール２０４を含みうる。例えば、検出規則ハンドラ２０２が変更セット２４６内の変更エントリが不審であると判定すると、検出規則ハンドラ２０２は、検出規則ハンドラ２０２が変更セット２４６内に不審な変更エントリを発見したことを示すメッセージを、感染検出モジュール２０４に送信しうる。当該メッセージは、変更セット２４６をコンテンツ管理システム１０６へ送信するデバイスにおけるデバイス識別子、当該変更エントリに関連付けられるネームスペース、及び／又は、当該変更エントリに関連付けられるタイムスタンプを含みうる。いくつかの実施形態において、検出規則ハンドラ２０２は、不審な変更エントリが変更セット２４６内に発見されたごとに、メッセージを感染検出モジュール２０４へ送信しうる。
【００４５】
[0059]いくつかの実施形態において、感染検出モジュール２０４は、クライアントデバイス２４０に関連付けられる変更セット２６０のフルスキャンを実行するかどうかを判定しうる。例えば、感染検出モジュール２０４は、検出規則ハンドラ２０２から受信したメッセージの数のカウント（例えば、不審な変更エントリのカウント）を保持することができる。ある時間期間内（例えば、１分、５分、７分等）に受信したメッセージ数（例えば、特定された不審な変更エントリ数）が閾値（例えば、７、１０等）を越えると、感染検出モジュール２０４は、クライアントデバイス２４０と関連付けられる全ての変更セット２４６のフルスキャンのトリガとしうる。感染検出モジュールは、クライアントデバイス２４０と関連付けられる全ての変更セット２６０のフルスキャンを要求するために、スキャン要求メッセージをスキャニングモジュール２０６に送信しうる。例えば、当該スキャン要求メッセージは、感染したクライアントデバイス２４０のデバイス識別子、不審な変更エントリに関連付けられるネームスペース、及び／又は、不審な変更エントリのタイムスタンプを含みうる。例えば、感染検出モジュール２０４は、各検出規則ハンドラ２０２から受信したメッセージに基づいて、感染したクライアントデバイス２４０のデバイス識別子、不審な変更エントリと関連付けられるネームスペース、及び／又は、不審な変更エントリのタイムスタンプを判定しうる。
【００４６】
[0060]いくつかの実施形態において、コンテンツ管理システム１０６は、スキャニングモジュール２０６を含みうる。例えば、スキャニングモジュール２０６は、クライアントデバイス２４０が悪意のあるソフトウェア（例えば、マルウェア、ランサムウェア等）によって攻撃されたかどうかを判定するために、変更セット２６０内の変更セットのスキャンを実行しうる。スキャニングモジュール２０６は、感染検出モジュール２０４から受信した要求に応じて、クライアントデバイス２４０に関連付けられる変更セット２６０のスキャンを実行しうる。例えば、スキャニングモジュール２０６は、検出規則ハンドラ２０２及び感染検出モジュール２０４の少なくとも一方によって発見された不審な変更エントリに対応する、クライアントデバイス２４０の識別子、クライアントデバイス２４０に関連付けられるネームスペースの識別子、及び／又はタイムスタンプを含むスキャン要求メッセージを受信しうる。
【００４７】
[0061]代替的に、スキャニングモジュール２０６は、クライアントデバイス２４０から受信した要求に応じて、クライアントデバイス２４０に関連付けられる変更セット２６０のスキャンを実行しうる。例えば、クライアントデバイス２４０のユーザは、クライアントデバイス２４０がマルウェア（例えば、ランサムウェア）に感染していると疑わしく思うと、コンテンツ管理システムに対して、クライアントデバイス２４０がマルウェアに感染しているかどうかを判定するために変更セット２６０のスキャンを実行するように要求する。クライアントデバイス２４０のユーザは、クライアントデバイス２４０と関連付けられた変更セット２６０をスキャニングモジュール２０６にスキャンさせるために、コンテンツ管理システム１０６のグラフィカルユーザインタフェース上に提示されたボタン又は他のグラフィカル要素を選択しうる。例えば、グラフィカルユーザインタフェースＣＭＳクライアント２４２によってクライアントデバイス２４０のディスプレイ上に提示されうる。グラフィカル要素の選択を受信することに応じて、ＣＭＳクライアント２４２は、クライアントデバイス２４０の識別子と、クライアントデバイス２４０に関連付けられるネームスペースの識別子と、スキャン要求の日及び／又は時刻を示すタイムスタンプとを含むスキャン要求メッセージをコンテンツ管理システム１０６へ送信しうる。
【００４８】
[0062]いくつかの実施形態において、スキャニングモジュール２０６は、クライアントデバイス２４０がマルウェアに感染しているかどうかを判定するために、変更セット２６０をスキャンしうる。スキャニングモジュール２０６は、受信したスキャン要求で特定された上記タイムスタンプに対応する日及び／又は時刻に開始する変更セット２６０のスキャンを開始しうる。例えば、スキャニングモジュール２０６は、受信したスキャン要求において特定されるユーザデバイス（例えば、クライアントデバイス２４０）に関連付けられる変更セット２６０を取得しうる。スキャニングモジュール２０６は、スキャン要求で特定された上記タイムスタンプに対応する変更セット２６０内に変更エントリを配置する。
【００４９】
[0063]スキャン要求において特定されるタイムスタンプに対応する変更エントリから始めて、スキャニングモジュール２０６は、マルウェア感染したクライアントデバイス２４０によって引き起こされた変更の範囲を判定するために、上記変更エントリから時間的に先の変更エントリ及び／又は時間的に後の変更エントリへ移動しうる。例えば、スキャニングモジュール２０６は、何れの変更エントリが悪意のあるソフトウェアに関連付けられているかを判定するために、変更セット２０６内の変更エントリと、マルウェアファイルネーム及び／又はファイル拡張子のブラックリストとを比較しながら時間的に先の変更エントリ及び時間的に後の変更エントリに移動しうる。時間的に先の及び時間的に後の両方をスキャニングすることによって、スキャニングモジュール２０６は、クライアントデバイス２４０上の最も早いマルウェア関連の変更エントリの時刻（例えば、開始時刻）と、クライアントデバイス２４０上の最近のマルウェア関連の変更エントリの時刻（例えば、最終時刻）とを判定しうる。
【００５０】
[0064]いくつかの実施形態において、スキャニングモジュール２０６は、スキャン要求で特定された時刻の前後に多くのコンテンツアイテムの削除が発生したかどうかを判定するために、変更エントリを解析しうる。例えば、スキャニングモジュール２０６には、削除数の閾値（例えば、１０００、５００、２００等）が設定されうる。スキャニングモジュール２０６は、マルウェアの攻撃の開始時刻と終了時刻との間にクライアントデバイス２４０上で、どれくらいのコンテンツアイテムの削除が発生したかを判定するために、変更セット２６０を解析しうる。コンテンツアイテムの削除数が閾値の削除数よりも少ないと、スキャニングモジュール２０６が判定すると、スキャニングモジュール２０６は、マルウェアの攻撃は発生していないと判定しうる。コンテンツアイテムの削除数が閾値の削除数を超えたと、スキャニングモジュール２０６が判定すると、スキャニングモジュール２０６は、マルウェア感染が発生したかどうかを判定するために、変更セット２６０の解析を継続しうる。
【００５１】
[0065]いくつかの実施形態において、スキャニングモジュール２０６は、コンテンツアイテムの削除数に加えてコンテンツアイテムの割合に基づいてマルウェア攻撃が発生したかを判定しうる。例えば、スキャニングモジュール２０６は、変更エントリが、悪意のあるソフトウェア関連のコンテンツアイテムを追加する不審な変更エントリかどうかを判定するために、クライアントデバイス２４０に関連付けられる変更セット２６０の各変更エントリを比較しうる。スキャニングモジュールは、コンテンツアイテムを追加する変更エントリが既知の悪意のあるソフトウェア又はランサムウェアに関連しているかどうかを判定するために、例えば、各変更エントリを、ファイルネーム及び／又はファイル拡張子のブラックリストと比較しうる。スキャニングモジュール２０６は、マルウェアに関連付けられた名称及び／又は拡張子を有するコンテンツアイテムがクライアントデバイス２４０へ追加されたことを示す変更エントリの数を判定しうる。スキャニングモジュール２０６はその後、コンテンツアイテムの削除に対するマルウェア関連の追加の割合を判定しうる。例えば、スキャニングモジュール２０６は、判定された時間期間内における、マルウェア関連の追加数をコンテンツアイテムの削除数によって割ることにより上記割合を算出しうる。上記割合が１の閾値パーセンテージ（例えば、プラス又はマイナス１０％）の範囲内の場合、その後、スキャニングモジュール２０６は、クライアントデバイス２４０がマルウェア（例えば、ランサムウェア）によって攻撃されたかを判定しうる。
【００５２】
[0066]代替的に、スキャニングモジュール２０６は、変更セット２６０に示されるファイル変更の総数に対する、ランサムウェア関連の拡張子の割合を算出しうる。例えば、変更セット２６０で示されるランサムウェア関連の追加数を判定することに加えて、スキャニングモジュール２０６は、当該スキャニングモジュール２０６のコンテンツアイテムの変更の総数（例えば、変更エントリの総数）を判定しうる。スキャニングモジュール２０６はその後、判定された時間期間内における、マルウェア関連の追加数をコンテンツアイテムの変更の総数によって割ることにより上記割合を算出しうる。割合が閾値（例えば、０．１、１０％等）を超える場合、その後、スキャニングモジュール２０６は、クライアントデバイス２４０がマルウェア（例えば、ランサムウェア）によって攻撃されたと判定しうる。
【００５３】
[0067]いくつかの実施形態において、スキャニングモジュール２０６は、クライアントデバイス２４０がマルウェアによって攻撃されたと判定することに応じて、感染検出モジュール２０４に通知しうる。例えば、スキャニングモジュール２０６は、マルウェアの攻撃が発生していることを示すメッセージを感染検出モジュール２０４に送信しうる。当該メッセージは、マルウェアの攻撃によって影響されるネームスペースの識別子と、感染したユーザデバイス（例えば、クライアントデバイス２４０）の識別子と、変更セット２０６の最も早いマルウェア関連の変更エントリのタイムスタンプとを含みうる。
【００５４】
[0068]スキャニングモジュール２０６からのメッセージを受信することに応じて、感染検出モジュール２０４は、マルウェアがクライアントデバイス２４０上で検出されたことを示す感染検出メッセージをクライアントデバイス２４０に送信しうる。例えば、感染検出モジュール２０６は、コンテンツ管理システム１０６に、電子メールメッセージ、通知、インスタントメッセージ、又は他のタイプの感染検出メッセージをクライアントデバイス２４０に送信させて、コンテンツ管理システム１０６がクライアントデバイス２４０上のマルウェアを検出したことをユーザに知らせることができる。感染検出メッセージは、マルウェア感染クライアントデバイス２４０の説明、マルウェア感染によって影響を受けたコンテンツアイテムの例、第１のマルウェア関連の変更エントリが変更セット２６０で発生した日及び／又は時、及び／又は、影響を受けたコンテンツアイテムの復元を開始するための選択可能な要素（例えば、リンク、URL、ボタンなど）を含むことができる。感染検出メッセージが電子メールメッセージである場合、クライアントデバイス２４０上の電子メールクライアント（例えば、ブラウザ内のウェブクライアント、ネイティブ電子メールクライアントなど）は、電子メールメッセージを提示することができる。感染検出メッセージが通知である場合、ＣＭＳクライアント２４２は、クライアントデバイス２４０のディスプレイ上に通知のグラフィカル表現を提示することができる。
【００５５】
[0069]スキャニングモジュール２０６からのメッセージの受信に応答して、感染検出モジュール２０４は、クライアントデバイス２４０とのコンテンツアイテムの同期を中断することができる。上述したように、コンテンツ管理システム１０６は、コンテンツストレージ１６０に記憶されたコンテンツアイテム及び／又はコンテンツアイテムメタデータを、クライアントデバイス２４０の管理されたコンテンツ２５０に記憶されたコンテンツアイテム及び／又はコンテンツアイテムメタデータと同期させることができる。クライアントデバイス２４０上にインストールされたマルウェアが、コンテンツリカバリモジュール２０８によって復元されたコンテンツアイテムに影響（例えば、暗号化、破損させる等）しないようにするために、以下で説明するように、コンテンツ管理システム１０６は、マルウェアがクライアントデバイス２４０から除去されるまで、クライアントデバイス２４０とのコンテンツアイテムの同期を停止することができる。コンテンツ管理システム１０６は、コンテンツアイテムの同期を自動的に中断することができる。コンテンツ管理システム１０６は、クライアントデバイス２４０からの命令の受信に応答して、コンテンツアイテムの同期を中断することができる。例えば、コンテンツ管理システム１０６は、クライアントデバイス２４０が悪意のあるソフトウェアに感染していることをクライアントデバイス２４０のユーザに知らせるために、クライアントデバイス２４０に通知又はメッセージを送信することができる。クライアントデバイス２４０のユーザは、クライアントデバイス２４０のディスプレイ上に提示されたグラフィカル要素（例えば、ボタン）を選択して、コンテンツ管理システム１０６とのコンテンツアイテムの同期を中断することができる。クライアントデバイス２４０は、コンテンツ管理システム１０６とクライアントデバイス２４０との間のコンテンツアイテムの同期を中断するために、コンテンツ管理システム１０６に命令（例えば、メッセージ、要求など）を送信することができる。同期中断命令の受信に応答して、コンテンツ管理システム１０６は、クライアントデバイス２４０とコンテンツ管理システム１０６との間のコンテンツアイテムの同期を中断することができる。コンテンツ管理システム１０６とクライアントデバイス２４０との間の同期を中断することによって、クライアントデバイス２４０上のマルウェアは、復元されたコンテンツアイテムを暗号化又は破損する機会を有さない。
【００５６】
[0070]いくつかの実装形態では、コンテンツ管理システム１０６は、コンテンツリカバリモジュール２０８を含むことができる。例えば、コンテンツリカバリモジュール２０８は、マルウェア攻撃の直前に存在したコンテンツアイテムのバージョンを復元することによって、悪意のあるソフトウェアによってもたらされたコンテンツアイテムを復元することができる。例えば、クライアントデバイス２４０のユーザは、感染検出モジュールによって生成され、クライアントデバイス２４０上に提示された感染検出メッセージに含まれる選択可能な要素（例えば、URL、リンク、ボタンなど）を選択して、コンテンツリカバリモジュール２０８に、マルウェア（例えば、ランサムウェア）がクライアントデバイス２４０上で暗号化又は他の形で変更されたコンテンツアイテムの復元を開始させることができる。選択可能な要素を選択すると、ＣＭＳクライアント２４２（又は電子メールクライアント）は、復元要求メッセージをコンテンツ管理システム１０６に送信して、コンテンツ管理システム１０６にクライアントデバイス２４０に関連するネームスペースに対応するコンテンツを復元させることができる。復元要求メッセージは、例えば、クライアントデバイス２４０の識別子、復元されるべきネームスペースの識別子、及び／又はコンテンツリカバリモジュール２０８がどの時点までコンテンツアイテムを復元（例えば、復帰、復元など）すべきかを示すタイムスタンプを含むことができる。コンテンツ管理システム１０６が復元要求メッセージを受信すると、コンテンツ管理システム１０６は、コンテンツリカバリモジュール２０８を呼び出し、クライアントデバイス２４０の識別子、復元されるべきネームスペースの識別子、及び／又はコンテンツリカバリモジュール２０８がコンテンツアイテムをどの時点まで復元（例えば、復帰、復元など）すべきかを示すタイムスタンプをコンテンツリカバリモジュール２０８に渡すことができる。
【００５７】
[0071]代替的に、復元要求メッセージは、クライアントデバイス２４０の識別子、復元されるべきネームスペースの識別子、及び／又はコンテンツリカバリモジュール２０８がどの時点までコンテンツアイテムを復元（例えば、復帰、復元など）すべきかを示すタイムスタンプを含む、感染検出モジュール２０４によって記憶された復元データへの参照を含むことができる。コンテンツ管理システム１０６が復元要求メッセージを受信すると、コンテンツ管理システム１０６は、参照された復元データを取り出し、復元データ（例えば、クライアントデバイス識別子、ネームスペース識別子、タイムスタンプなど）をコンテンツリカバリモジュール２０８に渡すことによって、コンテンツリカバリモジュール２０８を呼び出すことができる。
【００５８】
[0072]いくつかの実装形態では、コンテンツリカバリモジュール２０８は、クライアントデバイス２４０上のマルウェアによって影響を受けたコンテンツアイテムを復元することができる。例えば、呼び出されると、コンテンツリカバリモジュール２０８は、マルウェア攻撃中に削除されたコンテンツアイテムを復元することができる。例えば、コンテンツリカバリモジュール２０８は、変更セット２６０に基づいて、マルウェア攻撃の期間（例えば、開始時間−終了時間）中に追加及び／又は削除されたコンテンツアイテムを判定することができる。コンテンツリカバリモジュール２０８は、例えば、クライアントデバイス２４０に関連するネームスペース（例えば、ネームスペース２６２、ネームスペース２６４など）に追加されたコンテンツアイテムをコンテンツストレージ１６０から削除することができる。
【００５９】
[0073]コンテンツリカバリモジュール２０８は、クライアントデバイス２４０に関連付けられたネームスペースから削除されたコンテンツアイテムをコンテンツストレージ１６０に復元することができる。例えば、コンテンツリカバリモジュール２０８は、マルウェア攻撃の期間中に削除されたコンテンツアイテムの識別子を決定することができる。コンテンツリカバリモジュール２０８は、マルウェア攻撃がいつ開始したかを示す、コンテンツリカバリモジュール２０８によって受信されたタイムスタンプに対応する時刻の直前に存在したコンテンツアイテムの最新バージョンに対応する削除されたコンテンツアイテムのバージョンを判定することができる。コンテンツリカバリモジュール２０８は、コンテンツアイテムの復元されたバージョンがコンテンツストレージ１６０内のコンテンツアイテムの現在のバージョンになるように、コンテンツアイテムの判定されたバージョンをクライアントデバイス２４０に関連付けられたそれぞれのネームスペースに復元することができる。
【００６０】
[0074]いくつかの実装形態では、コンテンツ管理システム１０６は、クライアントデバイス２４０とのコンテンツアイテムの同期を再開することができる。例えば、コンテンツリカバリモジュール２０８が、マルウェア攻撃によって影響を受けたコンテンツアイテムをコンテンツストレージ１６０内で復元又は元の状態に戻した後、コンテンツ管理システム１０６は、マルウェア攻撃によって影響を受けたコンテンツアイテムが復元されたことを示すメッセージをクライアントデバイス２４０に送信し、クライアントデバイス２４０のユーザにクライアントデバイス２４０から悪意のあるソフトウェアを除去するように促すことができる。当該プロンプトは、マルウェアがクライアントデバイス２４０から除去されたこと、及びコンテンツ管理システム１０６がクライアントデバイス２４０とのコンテンツアイテムの同期を再開することができることを示すためにユーザが選択することができる選択可能なグラフィカル要素を提供することができる。例えば、プロンプト及び選択可能なグラフィカル要素を含むメッセージは、クライアントデバイス２４０の適当なソフトウェアクライアント（例えば、ＣＭＳクライアント２４２、電子メールクライアント、インスタントメッセージングクライアント、等）へ送られる電子メールメッセージ、インスタントメッセージ、又は通知である。
【００６１】
[0075]ユーザが選択可能なグラフィカル要素を選択して、マルウェアがクライアントデバイス２４０から削除されたことを確認すると、クライアントデバイス２４０（例えば、メッセージを提示するソフトウェアクライアント）は、マルウェアがクライアントデバイス２４０から削除されたこと、及びコンテンツ管理システム１０６がクライアントデバイス１４０とのコンテンツアイテムの同期を再開できることを示すマルウェア除去確認メッセージをコンテンツ管理システム１０６に送信することができる。マルウェア除去確認メッセージの受信に応答して、コンテンツ管理システム１０６は、クライアントデバイス２４０とのコンテンツアイテムの同期を再開することができる。例えば、コンテンツ管理システム１０６は、ネームスペース２６２及びネームスペース２６４に関連付けられた復元されたコンテンツアイテムを、クライアントデバイス２４０上の管理されたコンテンツ２５０と同期させることができる。したがって、コンテンツ管理システム１０６は、クライアントデバイス２４０に対するマルウェア（例えば、ランサムウェア）攻撃の結果として失われたと考えられるコンテンツアイテムを復元することができる。
【００６２】
[0076]図３は、複数のマルウェア検出規則ハンドラを有する例示的なシステム３００のブロック図である。例えば、システム３００は上述したシステム２００に対応しうる。上述したように、コンテンツ管理システム１０６は、複数の検出規則ハンドラ２０２（例えば、２０２ａ、２０２ｂ、２０２ｃなど）を含むことができる。各検出規則ハンドラは、異なる規則を処理するように構成することができる。例えば、検出規則ハンドラ２０２aは、検出規則ハンドラ２０２aが既知のマルウェアファイル名拡張子に一致する変更セットエントリを見つけると、検出規則ハンドラ２０２ａに疑わしいエントリメッセージを感染検出モジュール２０４に送信させる規則で構成されうる。検出規則ハンドラ２０２ｂは、検出規則ハンドラ２０２ｂが既知のマルウェア指示ファイルの命名規則に一致するエントリを発見すると、検出規則ハンドラ２０２ｂに疑わしいエントリメッセージを感染検出モジュール２０４に送信させる規則で構成することができる。検出規則ハンドラ２０２ｃは、検出規則ハンドラ２０２ｃが、別の既知のマルウェアファイル名拡張子に一致するエントリを発見すると、検出規則ハンドラ２０２ｃに、疑わしいエントリメッセージを感染検出モジュール２０４に送信させる規則で構成することができる。コンテンツ管理システム１０６が、クライアントデバイス２４０によって報告された変更セット内の変更エントリに基づいてマルウェアを検出することを可能にするために、新しい検出規則が必要とされるときはいつでも、新しい検出規則ハンドラ２０２が追加されうる。
【００６３】
[0077]上記で説明したように、感染検出モジュール２０４は、検出規則ハンドラ２０２a、２０２ｂ、及び／又は２０２ｃからのメッセージに基づいて、クライアントデバイス２４０がマルウェアに感染している可能性があると判定することができる。例えば、感染検出モジュール２０４は、上述したように、検出規則ハンドラ２０２から受信したメッセージの数がメッセージ数の閾値よりも多い場合、クライアントデバイス２４０がおそらく悪意のあるソフトウェアによって攻撃されていると判定することができる。
【００６４】
[0078]図４は、クライアントデバイス２４０からコンテンツ管理システム１０６に送信される例示の一連の変更セット４００を示す。例えば、変更セット４００ｉは、図２の変更セット２６０に対応しうる。変更セット４０２、４０４、４０６、及び／又は４０８は、クライアントデバイス２４０からコンテンツ管理システム１０６に送信される個々の変更セット２４６に対応することができる。各変更セット４０２、４０４、４０６、及び／又は４０８は、経時的にクライアントデバイス２４０上のコンテンツアイテムに行われた変更を示すことができる。例えば、時間「Ｔ−１」において、ＣＭＳデーモン２４４は、クライアントデバイス２４０上の管理されたコンテンツ２５０に対する変更を説明する変更セット４０２をコンテンツ管理システム１０６に送信することができる。変更セット４０２は、管理されたコンテンツ２５０内で移動、修正、追加、又は削除されたコンテンツアイテムを説明することができる。ＣＭＳデーモン２４４は、その後、クライアントデバイス２４０上の管理されたコンテンツ３５０に対して行われた追加の変更を説明する、変更セット４０４、変更セット４０６、及び／又は変更セット４０８を送信することができる。
【００６５】
[0079]変更セット４０２、４０４、４０６、及び／又は４０８がコンテンツ管理システム１０６で受信されると、検出規則ハンドラ２０２は、各変更セットがコンテンツ管理システム１０６に到着すると、各変更セットを分析して、疑わしい変更エントリが各変更セット内に存在するかどうかを判定することができる。例えば、検出規則ハンドラ２０２は、”．ransom”拡張子を含むコンテンツアイテム識別子（例えば、名前）を有するコンテンツアイテムを示す変更エントリを検出するように構成されうる。検出規則ハンドラ２０２は、例えば、変更セット４０２内の各エントリを”．ransom”拡張子と比較することができる。”．ransom”拡張子を有する変更エントリが変更セット４０２に存在しないので、検出規則ハンドラ２０２は、疑わしいエントリメッセージを感染検出モジュール２０４に送信しない。しかしながら、検出規則ハンドラ２０２が変更セット４０４の各エントリを”．ransom”拡張子と比較する場合、変更セット４０４が、file1．ransom及びfile2．ransomがクライアントデバイス２４０上の管理されたコンテンツ２５０に追加されたことを示す変更エントリを含むため、検出規則ハンドラ２０２は、少なくとも２つの疑わしい変更エントリメッセージを感染検出モジュール２０４に送信する。同様に、検出規則ハンドラ２０２は、変更セット４０６及び変更セット４０８内の疑わしいエントリを発見して報告する。したがって、感染検出モジュール２０４は、スキャニングモジュール２０６を呼び出して、変更セット４００のフルスキャンを実行し、クライアントデバイス２４０がマルウェアに感染しているかどうかを判定することができる。
【００６６】
[0080]スキャニングモジュール２０６が呼び出されると、スキャニングモジュール２０６は、疑わしいランサムウェア攻撃のターゲットであるクライアントデバイスに関連する格納された変更セットを分析することができる。例えば、変更セット４０２〜４０８は、コンテンツ管理システム１０６によって受信されると、変更セット２６０に格納されうる。呼び出されると、スキャニングモジュール２０６は、クライアントデバイス２４０のデバイス識別子、疑わしい攻撃に関連するネームスペース、及び疑わしい変更エントリに対応するタイムスタンプを受信することができる。その後、スキャニングモジュール２０６は、マルウェア攻撃が実際に発生したかどうかを判定し、攻撃の範囲を判定するために、変更セット２６０を時間的に前後に移動することができる。
【００６７】
[0081]例えば、感染検出モジュール２０４によってスキャニングモジュール２０６に提供されたタイムスタンプがＴＩＭＥＳＴＡＭＰ８８に対応する場合、スキャニングモジュール２０６は、ランサムウェアによって暗号化及び／又は削除された他のコンテンツアイテムを（例えば、名前拡張子に基づいて）決定するために、変更セット４０４、４０６、及び４０８を通して時間的に前方に移動することができる。
【００６８】
[0082]また、スキャニングモジュール２０６は、ランサムウェア攻撃の開始を決定するために、変更セット２６０を通して時間的に戻ることもできる。例えば、スキャニングモジュール２０６は、ランサムウェアに関連する最初の変更エントリを判定するために、変更セット４０４及び変更セット４０２を通して時間的に後方に移動することができる。この例では、ランサムウェアに関連付けられた１回目のエントリ（例えば、help.txtを追加)は、ＴＩＭＥＳＴＡＭＰ５に対応する時刻に発生した。スキャニングモジュール２０６がランサムウェア攻撃の開始及び攻撃によって影響を受けたコンテンツアイテムを識別すると、スキャニングモジュール２０６は、この情報をコンテンツリカバリモジュール２０８に（例えば、感染検出モジュール２０４を介して）提供することができ、その結果、コンテンツリカバリモジュール２０８は、ランサムウェア攻撃が開始した時刻（例えば、ＴＩＭＥＳＴＡＭＰ５に対応する時刻）の直前に存在した影響を受けたコンテンツアイテムのバージョンを元の状態に戻すことができる。
【００６９】
[0083]図５は、マルウェア攻撃が検出された後にコンテンツアイテムの復元を開始するようにユーザに促すための例示的なグラフィカルユーザインタフェース５００を示す。例えば、ＧＵＩ５００は、ランサムウェアがクライアントデバイス２４０上で検出されたことを示すメッセージをコンテンツ管理システム１０６から受信した後に、ＣＭＳクライアント２４２によって提示されうる。或いは、ＧＵＩ５００は、ランサムウェアがクライアントデバイス２４０上で検出されたことを示すメッセージ（例えば、電子メール、インスタントメッセージ、チャットメッセージなど）をコンテンツ管理システム１０６から受信した後に、電子メールクライアント、インスタントメッセージングクライアント、又は他のメッセージングクライアントによって提示されうる。
【００７０】
[0084]いくつかの実装形態では、ＧＵＩ５００は、通知５０２を含むことができる。例えば、通知５０２は、検出されたマルウェア感染の説明と、コンテンツアイテムの復元を開始するようにユーザに促すメッセージとを提示することができる。通知５０２は、選択可能なグラフィカル要素５０４を含むことができる。例えば、ユーザは、ユーザが選択時にコンテンツアイテムを復元することを望まないことを示すグラフィカル要素５０４を選択することができる。例えば、グラフィカル要素５０４は、リンク（例えば、ユニフォームリソースロケータ、ウェブアドレスなど）に対応することができ、これにより、グラフィカル要素５０４が選択されると、リンクは、ユーザがコンテンツアイテムの復元を開始することを望まないことを示すメッセージをコンテンツ管理システム１０６に受信させる。
【００７１】
[0085]いくつかの実施形態において、通知５０２は、コンテンツアイテムのリカバリを開始するためにグラフィカル要素５０６を含みうる。例えば、ユーザは、グラフィカル要素５０６を選択して、マルウェアの影響を受けたコンテンツアイテムの復元を開始することをユーザが望んでいることを示すことができる。例えば、グラフィカル要素５０４は、リンク（例えば、ユニフォームリソースロケータ、ウェブアドレスなど）に対応することができ、これにより、グラフィカル要素５０４が選択されると、リンクは、コンテンツ管理システム１０６に、ユーザがコンテンツアイテム復元を開始することを望むことを示すメッセージを受信させる。メッセージの受信に応答して、コンテンツ管理システム１０６は、上述したように、コンテンツリカバリモジュール２０８を呼び出して、影響を受けた、又はランサム化されたコンテンツアイテムの復元を開始することができる。
【００７２】
[0086]図６は、クライアントデバイス２４０とコンテンツ管理システム１０６との間の中断された同期を再開するための例示的なグラフィカルユーザインタフェース６００を示す。例えば、ＧＵＩ６００は、ランサムウェアによって影響を受けたコンテンツアイテムがコンテンツ管理システム１０６によって復元されたことを示すメッセージをコンテンツ管理システム１０６から受信した後に、ＣＭＳクライアント２４２によって提示されうる。代替的に、ＧＵＩ６００は、ランサムウェアによって影響を受けたコンテンツアイテムがコンテンツ管理システム１０６によって復元されたことを示すメッセージ（例えば、電子メール、インスタントメッセージ、チャットメッセージなど）をコンテンツ管理システム１０６から受信した後に、電子メールクライアント、インスタントメッセージングクライアント、又は他のメッセージングクライアントによって提示されうる。
【００７３】
[0087]いくつかの実装形態では、ＧＵＩ６００は、通知６０２を含むことができる。例えば、ＣＭＳクライアント２４２（又はメッセージングクライアント）は、クライアントデバイス２４０上のマルウェア攻撃によって影響を受けたコンテンツアイテムがコンテンツ管理システム１０６によって復元されたことを示すメッセージの受信に応答して、通知６０２を提示することができる。コンテンツ管理システム１０６は、マルウェア攻撃の検出に応答して、クライアントデバイス２４０とのコンテンツアイテムの同期を中断したので、通知６０２は、ユーザが、検出された悪意のあるソフトウェアをクライアントデバイス２４０から削除したかどうかを確認することを可能にするグラフィカル要素６０４及び606を含むことができる。例えば、ユーザは、グラフィカル要素６０４を選択して、悪意のあるソフトウェアがクライアントデバイス２４０から除去されていないことを確認し、そしてコンテンツ管理システム１０６がクライアントデバイス２４０とのコンテンツアイテムの同期を再開するのを防止することができる。例えば、グラフィカル要素６０４の選択を受信したことに応答して、ＣＭＳクライアント２４２は、クライアントデバイス２４０とのコンテンツアイテムの同期を再開すべきでないことを示すメッセージをコンテンツ管理システム１０６に送信することができる。
【００７４】
[0088]代替的に、ユーザは、グラフィカル要素６０６を選択して、悪意のあるソフトウェアがクライアントデバイス２４０から除去されたことを確認し、コンテンツ管理システム１０６に、クライアントデバイス２４０とのコンテンツアイテムの同期を再開させることができる。例えば、グラフィカル要素６０６の選択を受信したことに応答して、ＣＭＳクライアント２４２は、マルウェアがクライアントデバイス２４０から除去され、クライアントデバイス２４０とのコンテンツアイテムの同期が再開されるべきであることを示すメッセージをコンテンツ管理システム１０６に送信することができる。悪意のあるソフトウェアがクライアントデバイス２４０から削除されたという確認を受信すると、コンテンツ管理システム１０６は、クライアントデバイス２４０とのコンテンツアイテムの同期を再開することができる。したがって、クライアントデバイス２４０は、悪意のあるソフトウェア攻撃の検出後にコンテンツ管理システムによって復元されたコンテンツアイテムのバージョンを受信することができる。
【００７５】
[0089]図７は、ユーザのチームに関連付けられたコンテンツアイテムを復元するための例示的なグラフィカルユーザインタフェース700を示す。例えば、クライアントデバイス２４０のユーザは、複数のメンバを含むチーム又はプロジェクトのメンバでありうる。チームのメンバは、共有フォルダ、共有ネームスペース、及び他の共有コンテンツを介して、同じフォルダ、コンテンツアイテムなどにアクセスすることができる。コンテンツは、上述したように、コンテンツ管理システム１０６を介して各メンバのコンピューティングデバイス（例えば、クライアントデバイス）間で同期させることができる。したがって、チームの１人のメンバのデバイスがランサムウェア又は他の何らかの悪意のあるソフトウェアによって攻撃されると、チームの他のメンバが攻撃の結果によって影響を受ける可能性がある。例えば、攻撃が、１人のメンバのデバイス上のコンテンツアイテムを暗号化及び削除するランサムウェア攻撃である場合、他のメンバが暗号化された（例えば、ランダム化された）コンテンツアイテムにアクセスできないように、コンテンツアイテムの同じ削除及び同じ暗号化を他のメンバのデバイスに同期させることができる。
【００７６】
[0090]いくつかの実装形態では、コンテンツ管理システム１０６は、悪意のあるソフトウェア攻撃がチームメンバのデバイス上でいつ発生したかを判定することができる。例えば、コンテンツ管理システム１０６（例えば、検出規則ハンドラ２０２、感染検出モジュール２０４、及びスキャニングモジュール２０６）は、上述のように、ランサムウェア攻撃がチームメンバのデバイス上でいつ発生したかを判定することができる。例えば、クライアントデバイス２４０のユーザがチームのメンバである場合、コンテンツ管理システム１０６は、上述したように、マルウェア攻撃がクライアントデバイス２４０上で発生した時を検出及び／又は判定することができる。
【００７７】
[0091]いくつかの実装形態では、コンテンツ管理システム１０６は、悪意のあるソフトウェア攻撃がチームメンバのデバイス上で発生したときにチーム管理者に通知することができる。例えば、コンテンツ管理システム１０６がクライアントデバイス２４０に対するランサムウェア攻撃を検出すると、コンテンツ管理システム１０６は、チームメンバのデバイスに悪意のあるソフトウェア攻撃が発生したことを示すメッセージをチーム管理者のデバイスに送信することができる。例えば、コンテンツ管理システム１０６は、管理者のデバイス上で実行されているＣＭＳクライアント２４２に通知としてメッセージを送信することができる。コンテンツ管理システムは、メッセージを電子メール、インスタントメッセージ、チャットメッセージ、又は他のタイプの電子メッセージとして、管理者のデバイス上で実行されているメッセージングクライアントに送信することができる。メッセージが受信されると、管理者のデバイス（例えば、クライアントデバイス２４０に類似する）は、マルウェア攻撃を説明し、コンテンツアイテム復元オプションを提示するグラフィカル通知を提示することができる。いくつかの実装形態では、チーム管理者は、本明細書で説明するように、マルウェアを検出し、及び／又はコンテンツアイテムを復元するためにユーザに利用可能な動作のいずれかを起動及び／又は開始の何れかを実行することができる。
【００７８】
[0092]いくつかの実装形態では、ＧＵＩ７００は、通知７０２を含むことができる。例えば、通知７０２を管理者のデバイス上に提示して、チームメンバのデバイス上でマルウェア攻撃が発生したことを管理者に通知することができる。例えば、通知７０２は、管理者のチームのメンバに関連付けられたコンピューティングデバイスが悪意のあるソフトウェアに感染したこと、及びコンテンツ管理システム１０６が、影響を受けたメンバのデバイスとのコンテンツアイテムの同期を停止又は中断したことを示すテキストを含むことができる。例えば、コンテンツ管理システム１０６は、上述したように、コンテンツ管理システム１０６がマルウェア攻撃を検出したときに、影響を受けたメンバのデバイスとの同期を自動的に中断することができる。
【００７９】
[0093]いくつかの実装形態では、ＧＵＩ７００は、マルウェアの影響を受けたコンテンツアイテムの復元を開始するためのグラフィカル要素７０６を含むことができる。例えば、管理者のデバイスが通知７０２を提示すると、通知７０２は、コンテンツ管理システム１０６にマルウェアの影響を受けたコンテンツアイテムの復元を開始させるための選択可能なグラフィカル要素７０６を含むことができる。例えば、グラフィカル要素７０６の選択を受信したことに応答して、管理者のデバイスは、コンテンツ管理システム１０６にメッセージを送信して、コンテンツ管理システム１０６に、チームメンバのデバイス（例えば、クライアントデバイス２４０）に感染している悪意のあるソフトウェアによって暗号化された、又は他の形で影響を受けたコンテンツアイテムの復元を開始させることができる。その後、コンテンツ管理システム１０６は、上述したように、マルウェア攻撃の直前の現在のバージョンであったコンテンツアイテムのバージョンを元の状態にすることによって、影響を受けたコンテンツアイテムを復元することができる。
【００８０】
[0094]いくつかの実装形態では、通知７０２は、グラフィカル要素７０４を含むことができる。例えば、管理者は、通知７０２が管理者のデバイスによって提示されたときに、影響を受けたチームメンバの影響を受けたコンテンツアイテムを復元することを望まないことがある。管理者は、グラフィカル要素７０４を選択して、コンテンツ管理システム１０６に影響を受けたコンテンツアイテムを復元させることなく、通知７０２を破棄することができる。
【００８１】
[0095]いくつかの実装形態では、コンテンツ管理システム１０６は、チームのマルウェアの影響を受けたコンテンツアイテムの復元を自動的に開始することができる。例えば、チームメンバのデバイス（例えば、クライアントデバイス２４０）に対する悪意のあるソフトウェア（例えば、ランサムウェア）攻撃を検出したことに応答して、コンテンツ管理システム１０６は、マルウェア攻撃の直前に存在したコンテンツアイテムの最新バージョンへのマルウェアの影響を受けたコンテンツアイテムの復元を自動的に開始することができる。コンテンツ管理システム１０６は、例えば、上述したように、チームメンバ（例えば、ユーザ）のデバイス上でマルウェア攻撃が発生したことを検出し、（例えば、他のチームメンバのデバイスとの同期を継続しながら）チームメンバのデバイスへのコンテンツアイテムの同期を自動的に中断し、マルウェアの影響を受けたコンテンツアイテムを自動的に復元することができる。
【００８２】
[0096]マルウェアに感染していないチームメンバのデバイスの同期は継続するため、他のチームメンバは、コンテンツ管理システム１０６が影響を受けたコンテンツアイテムを復元した後、復元されたコンテンツアイテムを自動的に受信する。しかしながら、感染したユーザデバイスについて同期が中断されるため、感染したデバイスを使用するチームメンバ又はチーム管理者ユーザのいずれかは、感染したデバイスとコンテンツ管理システム１０６との間のコンテンツアイテムの同期を再開する前に、マルウェアが感染したデバイスから除去されたことを確認しなければならない。
【００８３】
[0097]図８は、悪意のあるソフトウェアが感染したクライアントデバイスから除去されたことを確認するためのグラフィカルユーザインタフェース８００を示す。例えば、ＧＵＩ８００は、ランサムウェアによって影響を受けたコンテンツアイテムがコンテンツ管理システム１０６によって復元されたことを示すメッセージをコンテンツ管理システム１０６から受信した後に、管理者のデバイス上のＣＭＳクライアント２４２によって提示されうる。或いは、ＧＵＩ６００は、ランサムウェアによって影響を受けたコンテンツアイテムがコンテンツ管理システム１０６によって復元されたことを示すメッセージ（例えば、電子メール、インスタントメッセージ、チャットメッセージなど）をコンテンツ管理システム１０６から受信した後に、管理者のデバイス上の電子メールクライアント、インスタントメッセージングクライアント、又は他のメッセージングクライアントによって提示されうる。
【００８４】
[0098]いくつかの実装形態では、ＧＵＩ８００は、通知８０２を含むことができる。例えば、管理者のデバイス上のＣＭＳクライアント２４２（又はメッセージングクライアント）は、感染したチームメンバのデバイス（例えば、クライアントデバイス２４０）上のマルウェア攻撃によって影響を受けたコンテンツアイテムがコンテンツ管理システム１０６によって復元されたことを示すメッセージの受信に応答して、通知８０２を提示することができる。コンテンツ管理システム１０６は、マルウェア攻撃の検出に応答して、感染したチームメンバのデバイスとのコンテンツアイテムの同期を中断したため、通知８０２は、影響を受けたチームメンバが、検出された悪意のあるソフトウェアを感染したデバイスから除去したかどうかをチーム管理者が確認することを可能にするグラフィカル要素８０４及び８０６を含むことができる。例えば、管理者は、グラフィカル要素８０４を選択して、悪意のあるソフトウェアが感染したデバイスから除去されていないことを確認し、コンテンツ管理システム１０６が、感染したデバイスとのコンテンツアイテムの同期を再開することを防止することができる。例えば、グラフィカル要素８０４の選択を受信したことに応答して、管理者のデバイス上のＣＭＳクライアント２４２は、感染したデバイスとのコンテンツアイテムの同期が再開されるべきでないことを示すメッセージをコンテンツ管理システム１０６に送信することができる。
【００８５】
[0099]或いは、管理者は、グラフィカル要素８０６を選択して、悪意のあるソフトウェアが感染したデバイスから除去されたことを確認し、コンテンツ管理システム１０６に、感染したデバイスとのコンテンツアイテムの同期を再開させることができる。例えば、グラフィカル要素８０６の選択を受信したことに応答して、管理者のデバイス上のＣＭＳクライアント２４２は、マルウェアがチームメンバの感染したデバイスから除去され、感染したデバイスとのコンテンツアイテムの同期が再開されるべきであることを示すメッセージをコンテンツ管理システム１０６に送信することができる。悪意のあるソフトウェアが感染したデバイスから除去されたという確認を受信すると、コンテンツ管理システム１０６は、感染したデバイスとのコンテンツアイテムの同期を再開することができる。したがって、感染した装置は、悪意のあるソフトウェア攻撃の検出後にコンテンツ管理システムによって復元されたコンテンツアイテムの復元されたバージョンを受信することができる。
【００８６】
[00100]図９は、クライアントデバイスが悪意のあるソフトウェアに感染しているかどうかを判定するためにスキャンを開始するための例示的なグラフィカルユーザインタフェース９００を示す。例えば、ＣＭＳクライアント２４２は、クライアントデバイス２４０のディスプレイ上にＧＵＩ９００を提示することができる。ＧＵＩ９００は、ユーザがコンテンツ管理システム１０６をナビゲートしてコンテンツアイテム、フォルダ、ネームスペースなどを閲覧し、それらと対話することを可能にするコンテンツアイテムブラウザとすることができ、ＧＵＩ９００は、ＣＭＳクライアント２４２によって提示される任意の他のユーザインタフェースとすることができる。
【００８７】
[00101]いくつかの実装形態では、ＧＵＩ９００は、クライアントデバイス２４０に関連する変更セットのスキャンを開始するためのグラフィカル要素９０２を含むことができる。例えば、ＧＵＩ９００を介してコンテンツ管理システム１０６と対話している間、及び／又はローカルファイルシステムブラウザを使用して管理されたコンテンツ２５０を閲覧している間、クライアントデバイス２４０のユーザは、疑わしいコンテンツアイテム、クライアントデバイス２４０に対する疑わしい変更、及び／又はクライアントデバイス２４０上の他の疑わしいアクティビティに気付くことができる。したがって、ユーザは、コンテンツ管理システム１０６が、クライアントデバイス２４０が悪意のあるソフトウェアに感染しているかどうかを判定することができるように、クライアントデバイス２４０のスキャンを手動で開始することを望む場合がある。スキャンを開始するために、ユーザは、グラフィカル要素９０２（例えば、ボタン）を選択することができる。グラフィカル要素９０２の選択を受信したことに応答して、ＣＭＳクライアント２４２は、コンテンツ管理システム１０６がクライアントデバイス２４０に関連する変更セット（例えば、変更セット２６０）のフルスキャンを開始することを要求するメッセージをコンテンツ管理システム１０６に送信することができる。
【００８８】
[00102]メッセージの受信に応答して、コンテンツ管理システム１０６は、スキャニングモジュール２０６を呼び出して、クライアントデバイス２４０に関連する変更セットのフルスキャンを開始することができる。例えば、コンテンツ管理システム１０６は、クライアントデバイス２４０の識別子、クライアントデバイス２４０に関連付けられたネームスペース、及び／又はスキャン要求の時刻をスキャニングモジュール２０６に提供することができる。その後、スキャニングモジュール２０６は、上述したように、クライアントデバイス２４０に関連付けられた変更セットのフルスキャンを実行することができる。
【００８９】
[00103]コンテンツ管理システム１０６が、クライアントデバイス２４０が悪意のあるソフトウェアに感染していると判定すると、コンテンツ管理システム１０６は、図５を参照して上述したように、クライアントデバイス２４０上で悪意のあるソフトウェアが検出されたことを示すメッセージをクライアントデバイス２４０に送信することができる。その後、ユーザは、上述したように、コンテンツ管理システム１０６にコンテンツアイテムを復元させ、クライアントデバイス２４０とのコンテンツアイテムの同期を再開させることができる。
【００９０】
[00104]図１０は、疑わしいエントリについて個々の変更セットを分析するための例示的なプロセス１０００のフローチャートである。例えば、プロセス１０００は、コンテンツ管理システム１０６がクライアントデバイス２４０から変更セットを受信したときに、コンテンツ管理システム１０６のサーバデバイスによって実行されうる。例えば、プロセス１０００は、上述のように、１つ又は複数の検出規則ハンドラ２０２及び／又は感染検出モジュール２０４によって実行されうる。
【００９１】
[00105]ステップ１００２において、サーバデバイスは、変更セットを受信することができる。例えば、コンテンツ管理システム１０６は、クライアントデバイス２４０上のコンテンツアイテムに対して行われた変更を示す変更セットをクライアントデバイス２４０から受信することができる。例えば、変更セットは、何らかの方法で削除、追加、移動、修正、及び／又は他の形で変更されたコンテンツアイテムを識別する変更エントリを含むことができる。
【００９２】
[00106]ステップ１００４において、サーバデバイスは、受信した変更セット内のエントリを、マルウェア関連エントリを識別するための規則と比較することができる。例えば、コンテンツ管理システム１０６は、上述のように、受信された変更セット内の変更セットエントリを、受信された変更セット内の疑わしいエントリを識別するためのマルウェア検出規則と比較する１つ又は複数の検出規則ハンドラ２０２を含むことができる。例えば、規則は、変更セットエントリ内のコンテンツアイテム識別子が、既知の悪意のあるソフトウェアに関連付けられた特定の文字列（例えば、名前拡張など）を含む場合、変更セットエントリが疑わしいエントリで１００６で、サーバデバイスは、変更セットエントリと、１つ又は複数のマルウェア検出規則との比較に基づいて、変更セットエントリがマルウェア関連エントリであるかを判定することができる。例えば、変更セットエントリが、既知の悪意のあるソフトウェアに関連する文字列（例えば、コンテンツアイテム名、コンテンツアイテム拡張など）を含むコンテンツアイテム名を含む場合、サーバデバイスは、変更セットエントリが疑わしい変更エントリであると判断することができる。検出規則ハンドラ２０２が、変更セットエントリが疑わしいと判定した場合、検出規則ハンドラ２０２は、疑わしい変更エントリが受信された変更セット内で発見されたことを示すメッセージを感染検出モジュール２０４に送信することができる。
【００９３】
[00108]ステップ１００８において、サーバデバイスは、変更セット内で検出されたマルウェア関連エントリの数を決定することができる。例えば、コンテンツ管理システム１０６上の感染検出モジュール２０４は、検出規則ハンドラ２０２から疑わしい変更エントリメッセージを受信することができる。感染検出モジュール２０４は、検出規則ハンドラ２０２から受信された疑わしい変更エントリメッセージの数に基づいて、変更セット内にいくつの疑わしい変更エントリが存在するかを判定することができる。
【００９４】
[00109]ステップ１０１０で、サーバデバイスは、ある期間内に検出されたマルウェア関連エントリの数がしきい値数を超えると判定することができる。例えば、感染検出モジュール２０４によって受信された疑わしい変更エントリメッセージの数が、ある期間（例えば、2分、5分、10分など）内に閾値の数（例えば、20、50、100など）を超える場合、感染検出モジュール２０４は、クライアントデバイス２４０が悪意のあるソフトウェア（例えば、マルウェア、ランサムウェアなど）に感染している可能性が高いと判定することができる。
【００９５】
[00110]ステップ１０１２において、サーバデバイスは、クライアントデバイスに関連する全ての変更セットのフルスキャンをトリガすることができる。例えば、感染検出モジュール２０４は、期間内に検出されたマルウェア関連エントリ（例えば、疑わしいエントリ）の数が、マルウェア関連エントリの閾値数を超える場合、クライアントデバイス２４０に関連付けられたすべての変更セットのフルスキャンをトリガすることができる。
【００９６】
[00111]図１１は、クライアントデバイスに関連する変更セットのフルスキャンを実行するための例示的なプロセス１１００のフローチャートである。例えば、コンテンツ管理システム１０６に関連付けられたサーバデバイスは、クライアントデバイス２４０が悪意のあるソフトウェアに感染しているかどうかを判定又は確認するために、処理１１０を実行することができる。当該スキャンは、マルウェア感染の程度（例えば、いくつのコンテンツアイテム及びどのコンテンツアイテムが影響を受けたか）を判定し、影響を受けたコンテンツアイテムがコンテンツ管理システム１０６によって復元されうるように、マルウェア感染がいつ開始したかを判定するために実行されうる。
【００９７】
[00112]ステップ１１０２で、サーバデバイスは、クライアントデバイスに関連する変更セットのフルスキャンを実行する要求を受信することができる。例えば、コンテンツ管理システム１０６上のスキャニングモジュール２０５は、感染検出モジュール２０４から要求を受信して、クライアントデバイス２４０に関連する変更セットのフルスキャンを実行することができる。或いは、スキャニングモジュール２０６は、上述したように、クライアントデバイス２４０のユーザがクライアントデバイス２４０のスキャンを手動で開始することを選択したときに、クライアントデバイス２４０からスキャン要求を受信することができる。例えば、クライアントデバイス２４０に関連付けられた各ネームスペースは、関連付けられた変更セット２６０を有することができる。スキャニングモジュール２０６は、クライアントデバイス２４０のフルスキャンが要求されたときに、ネームスペースのそれぞれをスキャンすること、及び／又はクライアントデバイス２４０に関連する設定を変更することができる。
【００９８】
[00113]ステップ１１０４において、サーバデバイスは、クライアントデバイスに関連付けられた変更セットを取得することができる。例えば、スキャニングモジュール２０６は、クライアントデバイス２４０に関連付けられたネームスペースに関連付けられた変更セットをコンテンツストレージ１６０から取得することができる。例えば、個々の変更セットが検出規則ハンドラ２０２のようにクライアントデバイス２４０から受信されるときに、個々の変更セットを単にスキャンする代わりに、スキャニングモジュール２０６は、コンテンツストレージ２６０から複数の変更セット（例えば、スキャン要求の前後の期間をカバーする変更セット）を取得することができる。
【００９９】
[00114]ステップ１１０６で、サーバデバイスは、変更セット内のエントリをマルウェア検出規則と比較することができる。例えば、マルウェア攻撃の範囲を決定するために、スキャニングモジュール２０６は、変更セット内の各変更エントリをマルウェア検出規則と比較することができる。上述のように、マルウェア検出規則は、コンテンツアイテムが既知の悪意のあるソフトウェアに関連付けられているかどうかを判定するために、コンテンツアイテム名（例えば、名前、拡張子など）を既知のマルウェアコンテンツアイテム名及び／又は拡張子にマッチングさせるための規則を含むことができる。これらのコンテンツアイテムは、例えば、既知のマルウェアコンテンツアイテム名及び／又は名前拡張子を含むように修正され（例えば、暗号化され）、リネームされたコンテンツアイテムとすることができる。変更セットエントリをマルウェア検出規則と比較するとき、スキャニングモジュール２０６は、マルウェア攻撃がいつ開始されたか、及びマルウェア攻撃がいつ終了したかを判定するために、変更エントリをマルウェア検出規則と比較して時間的に前方及び／又は時間的に後方に移動することができる。マルウェア攻撃の開始時刻及び終了時刻を判定することによって、スキャニングモジュール２０６は、マルウェア攻撃が発生した期間を判定することができる。
【０１００】
[00115]ステップ１１０８で、サーバデバイスは、マルウェア攻撃に関連する変更セットエントリの数を決定することができる。例えば、スキャニングモジュール２０６は、マルウェア検出規則に基づいて、いくつの変更セットエントリが悪意のあるソフトウェアアクティビティに関連付けられているかを判定することができる。スキャニングモジュール２０６は、例えば、攻撃に関連する期間にわたってクライアントデバイス１４０に追加されたマルウェア関連コンテンツアイテムの数を判定することができる。スキャニングモジュール２０６は、マルウェア攻撃に関連する期間にわたって削除されたコンテンツアイテムの数を判定することができる。
【０１０１】
[00116]ステップ１１１０で、サーバデバイスは、マルウェア攻撃に関連する変更セットエントリの数がしきい値数を超えることを決定することができる。例えば、スキャニングモジュール２０６は、マルウェア攻撃に関連する変更セットエントリの数がエントリの閾値数を超える場合に、マルウェア攻撃が発生したことを確認することができる。或いは、スキャニングモジュール２０６は、マルウェア関連変更エントリの変更エントリの全数（例えば、マルウェアエントリ／全エントリ）に対する比率を判定して、マルウェア攻撃がクライアントデバイス２４０上で発生したことを確認することができる。例えば、全変更エントリに対するマルウェア変更エントリの比率が閾値（例えば、0．1、0．3など）を超える場合、スキャニングモジュール２０６は、マルウェア攻撃がクライアントデバイス２４０上で発生したことを確認することができる。
【０１０２】
[00117]ステップ１１１２において、サーバデバイスは、変更セット内の最も早いマルウェアエントリが発生した時刻を判定することができる。例えば、変更セットエントリを通して時間的に後方にスキャンし、当該変更セットをマルウェア検出規則と比較するときに、スキャニングモジュール２０６は、最も早いマルウェア関連変更セットエントリに関連したタイムスタンプを判定し、保存することができる。
【０１０３】
[00118]ステップ１１１４において、サーバデバイスは、クライアントデバイスがマルウェアに感染していることを示す通知をクライアントデバイスに送信することができる。例えば、スキャニングモジュール２０６が、クライアントデバイス２４０上でマルウェア攻撃が発生したことを確認すると、コンテンツ管理システム１０６は、メッセージ（例えば、アプリケーション通知、電子メール、インスタントメッセージなど）をクライアントデバイス２４０に送信することができる。クライアントデバイス２４０がメッセージを受信すると、クライアントデバイス２４０は、クライアントデバイス２４０のユーザにマルウェア感染を知らせ、影響を受けたコンテンツアイテムの復元を開始するようにユーザに促す通知を提示することができる。或いは、コンテンツ管理システム１０６は、上述したように、マルウェアの影響を受けたコンテンツアイテムの復元を自動的に開始することができる。
【０１０４】
[00119]図１２は、マルウェアの影響を受けたコンテンツアイテムを復元するための例示的なプロセス１２００のフローチャートである。例えば、プロセス１２００は、クライアントデバイス上のマルウェアによって、暗号化され、削除され、修正され、又は他の形で影響を受けたコンテンツアイテムを復元するために、コンテンツ管理システム１０６のサーバデバイスによって実行されうる。サーバデバイスは、プロセス１０００及び／又はプロセス１１００と組み合わせてプロセス１２００を実行して、クライアントデバイス２４０上のマルウェア攻撃によって影響を受けたコンテンツアイテムを復元することができる。
【０１０５】
[00120]ステップ１２０２において、サーバデバイスは、クライアントデバイス２４０に関連する変更セット内の最も早いマルウェア関連エントリが存在する時間を判定することができる。例えば、コンテンツリカバリモジュール２０８は、スキャニングモジュール２０８がクライアントデバイス２４０に関連付けられた変更セット２６０をスキャンした後に、スキャニングモジュール２０８から最も早いマルウェアエントリの時間を取得することができる。
【０１０６】
[00121]ステップ１２０４において、サーバデバイスは、マルウェア攻撃によって影響を受けたコンテンツアイテムを決定することができる。例えば、スキャニングモジュール２０６及び／又はコンテンツリカバリモジュール２０８は、マルウェア攻撃の期間中にどのコンテンツアイテムが削除されたかを判定することができる。
【０１０７】
[00122]ステップ１２０６において、サーバデバイスは、マルウェア攻撃の直前の時間に対応するコンテンツアイテムの最新バージョンを決定することができる。例えば、マルウェアの影響を受ける各コンテンツアイテムについて、コンテンツリカバリモジュール２０８は、マルウェアの影響を受けたコンテンツアイテムのどのバージョンが、クライアントデバイス２４０に関連する変更セット内の最も早いマルウェア関連エントリの直前の時点でのコンテンツアイテムの最新バージョンを表すかを判定することができる。
【０１０８】
[00123]ステップ１２０８において、サーバデバイスは、コンテンツストレージ１６０からコンテンツアイテムの影響を受けたバージョンを除去することができる。例えば、コンテンツリカバリモジュール２０８は、クライアントデバイス２４０に関連付けられたネームスペースから、既知の悪意のあるソフトウェアに関連付けられたコンテンツアイテム名及び／又はコンテンツアイテム拡張子を有するコンテンツアイテムを除去することができる。
【０１０９】
[00124]ステップ１２１０において、サーバデバイスは、マルウェア攻撃の直前の時刻に対応するコンテンツアイテムの最新バージョンをコンテンツストレージ１６０に追加することができる。例えば、コンテンツリカバリモジュール２０８は、マルウェア攻撃の直前の時刻に対応するコンテンツアイテムの最新バージョンを、クライアントデバイス２４０に関連する適切なネームスペースに復元することができる。コンテンツリカバリモジュール２０８は、コンテンツアイテムの適切なバージョンをそれぞれのネームスペースに追加することによって、コンテンツアイテムを復元することができる。
【０１１０】
[00125]ステップ１２１２において、サーバデバイスは、感染したクライアントデバイスに、コンテンツアイテムが復元されたことを示す通知を送信することができる。例えば、コンテンツ管理システム１０６は、電子メール、インスタントメッセージ、通知、又は他の電子メッセージをクライアントデバイス２４０上のメッセージングクライアント又はＣＭＳクライアント２４２に送信して、コンテンツアイテムが復元されたことをクライアントデバイス２４０のユーザに通知することができる。当該通知は、コンテンツ管理システム１０６とクライアントデバイス２４０との間のコンテンツアイテムの同期を再開することができるように、悪意のあるソフトウェアを除去するようにユーザに促すこと、及び／又は悪意のあるソフトウェアがクライアントデバイス２４０から除去されたことを確認するようにユーザに促すことができる。
【０１１１】
[00126]ステップ１２１４において、サーバデバイスは、悪意のあるソフトウェアがクライアントデバイスから除去されたことを示すメッセージをクライアントデバイスから受信することができる。例えば、ユーザは、クライアントデバイス２４０のディスプレイ上に提示されたグラフィカル要素を選択して、悪意のあるソフトウェアがクライアントデバイス２４０から除去されたことを示すことができる。その後、クライアントデバイス２４０は、悪意のあるソフトウェアがクライアントデバイス２４０から除去されたことを示すメッセージをコンテンツ管理システム１０６へ送信することができる。
【０１１２】
[00127]ステップ１２１６において、サーバデバイスは、クライアントデバイスとのコンテンツアイテムの同期を再開することができる。例えば、悪意のあるソフトウェアがクライアントデバイス２４０から除去されたことを確認するメッセージの受信に応答して、コンテンツ管理システム１０６は、クライアントデバイス２４０とのコンテンツアイテムの同期を再開することができる。
【０１１３】
[00128]図１３Ａ及び図１３Ｂは、例示の可能性のあるシステムの実施形態を示す。本技術を実施する場合に、より好適な実施の形態は当業者には明らかであろう。他のシステムの実施の形態が可能であることは、当業者には容易に理解されるであろう。
【０１１４】
[00129]図１３Ａは、通常のシステムバス計算システムアーキテクチャ１３００を示す。システムのコンポーネントはバス１３０５を使用して互いに電気的に通信可能となっている。例示システム１３００は、処理ユニット（ＣＰＵすなわちプロセッサ）１３１０と、読み取り専用メモリ（ＲＯＭ）１３２０やランダムアクセスメモリ（ＲＡＭ）１３２５などのシステムメモリ１３１５を含む各種のシステムコンポーネントをプロセッサ１３１０に接続するシステムバス１３０５と、を含む。システム１３００は、プロセッサ１３１０に直接接続されているか、近接しているか、あるいはその一部として統合されている高速メモリのキャッシュを含んでもよい。システム１３００は、データをメモリ１３１５及び／又はストレージデバイス１３３０からキャッシュ１３１２へコピーして、プロセッサ１３１０が高速でアクセスできるようにしてもよい。このようにして、キャッシュは、データを待っている間のプロセッサ１３１０の遅延を回避するパフォーマンスブーストを提供してもよい。これら及びその他のモジュールは、各種の動作を行うようにプロセッサ１３１０を制御するか、又は制御するように構成されてもよい。その他のシステムメモリ１３１５が同様に使用可能であってもよい。メモリ１３１５は、異なる性能特性を持つ複数の異なるタイプのメモリを含んでもよい。プロセッサ１３１０は、いかなる汎用プロセッサを含んでもよいし、プロセッサ１３１０を制御するように構成されたハードウエアモジュール又はソフトウエアモジュール、例えばストレージデバイス１３３０の中に格納されたモジュール１  １３３２、モジュール２  １３３４、モジュール３  １３３６を含んでもよいし、実際のプロセッサ設計の中にソフトウエアインストラクションが組み込まれている専用プロセッサを含んでもよい。プロセッサ１３１０は本質的に、複数のコア又はプロセッサ、バス、メモリコントローラ、キャッシュ等を含んでいる、完全に自己完結型のコンピュータシステムであってもよい。複数のコアプロセッサは対称又は非対称であってもよい。
【０１１５】
[00130]ユーザと計算デバイス１３００との対話を可能にするため、入力デバイス１３４５は、音声用マイクロフォン、ジェスチャ又はグラフィカル入力用のタッチセンシティブスクリーン、キーボード、マウス、動作入力、音声等、いくつもの入力メカニズムを表してもよい。出力デバイス１３３５は、当業者には公知の複数の出力メカニズムのうちの１つ以上であってもよい。場合によっては、マルチモーダルシステムによって、ユーザが、計算デバイス１３００と通信するための複数のタイプの入力を行うことが可能になる。通常、通信インタフェース１３４０が、ユーザ入力とシステム出力とを管理してもよい。特定のハードウェア構成上で動作することについての制限はなく、従って、本明細書での基本的な特徴は、改良型のハードウェア構成やファームウェア構成が開発されれば、それらと容易に置き換わりうる。
【０１１６】
[00131]ストレージデバイス１３３０は不揮発性メモリである。ストレージデバイス４３０はハードディスクや、コンピュータによってアクセス可能でありかつデータを保持可能な他のタイプのコンピュータ可読媒体、例えば、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタルバーサタイルディスク、カートリッジ、ランダムアクセスメモリ（ＲＡＭｓ）１３２５、読み取り専用メモリ（ＲＯＭ）１３２０、それらのハイブリッド、等であってもよい。
【０１１７】
[00132]ストレージデバイス１３３０は、プロセッサ１３１０を制御するためのソフトウエアモジュール１３３２、１３３４、１３３６を含んでいてもよい。その他のハードウエアモジュール又はソフトウエアモジュールも考えられる。ストレージデバイス１３３０は、システムバス１３０５に接続されていてもよい。一態様では、或る機能を行うハードウエアモジュールは、プロセッサ１３１０、バス１３０５、ディスプレイ１３３５等のような、その機能を実行するのに必要なハードウエアコンポーネントと関連してコンピュータ可読媒体の中に格納されたソフトウエアコンポーネントを含んでもよい。
【０１１８】
[00133]図１３Ｂは、説明された方法を実行したりグラフィカルユーザインタフェース（ＧＵＩ）を生成して表示したりする際に使用可能なチップセットアーキテクチャを有するコンピュータシステム１３５０を示す。コンピュータシステム１３５０は、開示された技術を実施するのに使用可能なコンピュータハードウエア、ソフトウエア及びファームウエアの一例である。システム１３５０はプロセッサ１３１０を含んでもよい。プロセッサ１３１０は、ソフトウエア、ファームウエア及び特定された計算を行うよう構成されたハードウエアを実行可能な、任意の数の物理的及び／又は論理的に別個のリソースを表す。プロセッサ１３１０は、プロセッサ１３１０からの入力及びプロセッサ１３１０への出力を制御可能なチップセット１３６０と通信しうる。本例では、チップセット１３６０はディスプレイなどの出力１３６５へ情報を出力し、ストレージデバイス１３７０に対して情報の読み書きを行ってもよい。ストレージデバイス１３７０は例えば磁気媒体やソリッドステート媒体を含んでもよい。チップセット１３６０は更に、ＲＡＭ１３７５からのデータの読み取り、及びＲＡＭ１３７５へのデータの書き込みを行いうる。チップセット１３６０とのインタフェースのために、種々のユーザインタフェースコンポーネント１３８５とのインタフェースとなるブリッジ１３８０が提供されてもよい。そのようなユーザインタフェースコンポーネント１３８５は、キーボードやマイクロフォンやタッチ検出及び処理回路やマウスなどのポインティングデバイスなどを含んでもよい。一般に、システム１３５０への入力は種々のソースのうちの任意のものから来てもよく、又は機械により生成され及び／又は人により生成されてもよい。
【０１１９】
[00134]チップセット１３６０は、異なる複数の物理的インタフェースを有しうるひとつ以上の通信インタフェース１３９０と連結されてもよい。そのような通信インタフェースは、有線及び無線ローカルエリアネットワークとのインタフェースと、ブロードバンド無線ネットワークとのインタフェースと、パーソナルエリアネットワークとのインタフェースと、を含んでもよい。本明細書で開示されるＧＵＩを生成し表示し使用する方法のいくつかのアプリケーションは、物理的なインタフェースを介して順序付けられたデータセットを受信することを含むか、又はプロセッサ１３１０がストレージ１３７０又は１３７５に格納されるデータを解析することによって機械そのものにより生成されてもよい。さらに、機械はユーザインタフェースコンポーネント１３８５を介してユーザから入力を受け、プロセッサ１３１０を使用してこれらの入力を解釈することで、ブラウズ機能などの適切な機能を実行してもよい。
【０１２０】
[00135]例示システム１３００及び１３５０は１つ以上のプロセッサ１３１０を有してもよく、又は処理能力を高めるためにネットワーク化された計算デバイスのグループ又はクラスタの一部であってもよいことは理解されるであろう。
【０１２１】
[00136]説明の明瞭化のため、ある例では、本技術はデバイスやデバイスコンポーネントやソフトウエアで実施される方法のステップ又はルーチンやハードウエアとソフトウエアとの組み合わせを含む機能ブロックを含む個々の機能ブロックを含むものとして提示されてもよい。
【０１２２】
[00137]ここで説明されるステップ、動作、機能又はプロセスのいずれかは、単独で、又は他のデバイスと組み合わせて、ハードウェア及びソフトウェアモジュールの組合せによって実行又は実装されてもよい。一実施形態では、ソフトウェアモジュールは、クライアントデバイスのメモリ及び／又はコンテンツ管理システムの１つ以上のサーバに常駐し、プロセッサがモジュールに関連したソフトウェアを実行するときに１つ以上の機能を実施するソフトウェアである。上記メモリは非一時的コンピュータ可読媒体であってもよい。
【０１２３】
[00138]ある実施の形態では、コンピュータ可読記憶デバイス、媒体及びメモリは、ビットストリームを含むケーブルや無線信号などを含んでもよい。しかしながら、言及される場合、非一時的コンピュータ可読記憶媒体は、エネルギやキャリア信号や電磁波や信号そのものなどの媒体を明示的に除外する。
【０１２４】
[00139]上述の例に従った方法は、コンピュータ可読媒体に格納された、或いはコンピュータ可読媒体から利用可能な、コンピュータで実行可能な命令を使用して実施されうる。そのようなインストラクションは、例えば、汎用コンピュータ、専用コンピュータ、又は専用処理デバイスに所定の機能もしくは機能のグループを実行させるかそうでなければ実行するよう設定するインストラクション及びデータを含んでもよい。使用されるコンピュータリソースの一部はネットワークを介してアクセス可能であってもよい。コンピュータ実行可能命令は、例えば、バイナリや、アセンブリ言語などの中間フォーマット命令や、ファームウェアや、ソースコードであってもよい。命令、使用される情報、及び／又は説明された例に係る方法中に生成される情報を格納するのに使用されうるコンピュータ可読記憶媒体の例は、磁気又は光学ディスク、フラッシュメモリ、不揮発性メモリを備えるＵＳＢデバイス、ネットワークストレージデバイスなどを含む。
【０１２５】
[00140]これらの開示に従った方法を実施するデバイスは、ハードウェア、ファームウェア及び／又はソフトウェアを備えうるとともに、種々のフォームファクタのいずれかを取りうる。そのような形状ファクタの典型的な例は、ラップトップや、スマートフォンや、小さい形状ファクタのパーソナルコンピュータや、パーソナルデジタルアシスタントなどを含む。本明細書で説明される機能は周辺機器やアドインカードにおいて実現されてもよい。そのような機能は、更なる例として、単一のデバイスで達成する異なるチップ間又は異なるプロセス間の回路ボードでも実施されうる。
【０１２６】
[00141]インストラクション、そのようなインストラクションを伝達するための媒体、そのようなインストラクションを実行するための計算リソース、及びそのような計算リソースをサポートするための他の構成は、本開示で説明される機能を提供するための手段である。
【０１２７】
[00142]種々の例及び他の情報が、添付の請求項の範囲内の態様を説明するために使用されたが、当業者であれば多種多様な実施例を導くためにこれらの例を使用できるため、そのような例における具体的な特徴又は構成に基づいて請求項が限定されてはならない。さらに、いくつかの主題が構造的特徴及び／又は方法ステップの例に特有の言語で記述されたかもしれないが、添付の請求項で規定される主題はこれらの記述された特徴や行為に限定される必要はないことは理解されるべきである。例えば、そのような機能は異なるように分散されてもよいし、本明細書で特定されたもの以外のコンポーネントで実行されてもよい。むしろ、記述された特徴及びステップは、添付の請求項の範囲内のシステム及び方法のコンポーネントの例として開示される。
【図１】
0006795684.tif 000002
【図２】
0006795684.tif 000003
【図３】
0006795684.tif 000004
【図４】
0006795684.tif 000005
【図５】
0006795684.tif 000006
【図６】
0006795684.tif 000007
【図７】
0006795684.tif 000008
【図８】
0006795684.tif 000009
【図９】
0006795684.tif 000010
【図１０】
0006795684.tif 000011
【図１１】
0006795684.tif 000012
【図１２】
0006795684.tif 000013
【図１３Ａ】
0006795684.tif 000014
【図１３Ｂ】
0006795684.tif 000015