[0019]本開示のさまざまな実施の形態について、以下に詳しく論じる。特定の実施例について論じているが、これは説明のみを目的として行われていることを理解されたい。当業者は、本開示の趣旨及び範囲から逸脱することなく他のコンポーネントや構成が用いられうることを認識するであろう。
[0020]本開示の技術は当分野で必要とされる改良されたマルウェア検出及びコンテンツアイテムのリカバリを解決する。多くの場合、ユーザのデバイスがランサムウェア又は他のタイプのマルウェアに感染されると、ユーザにはコンテンツアイテムを復元するためのいくつかのオプションが残されている。一般的には、ユーザはユーザのコンテンツアイテムを復元するために買戻し金を支払うか、或いは、買戻し金の支払いを無視してそれらのコンテンツアイテムを永遠に失うかである。ここで開示される本システムはランサムウェアへの感染の自動検出及び/又はユーザが買戻し金を支払うことを必要としないコンテンツアイテムの復元を提供する。ここで開示されるいくつかの機能がユーザの要求に応じて実行される一方で、ここで開示されるマルウェア検出及びコンテンツアイテムの復元機能はまた、ユーザのコンテンツアイテムの素早い復元をユーザに提供するために自動的に実行されうる。
[0021]開示される技術の種々の実施形態の実装に関して、図1には、例示的なシステム構成100が示され、複数の電子デバイスが、コンテンツや他のデータを交換する目的でネットワークを介して通信する。本システムは、図1に示されるように、ワイドエリアネットワーク上で使用されるよう構成されてもよい。しかしながら、本原理は、電子デバイス間の通信を促進する様々な種類のネットワーク構成に適用可能である。例えば、図1のシステム100の各コンポーネントは、ネットワークにおいて局在的又は分散的に実装されてもよい。
[0022]システム100では、直接及び/又は間接通信によりネットワーク104と接続された複数のクライアントデバイス1021、1022、…、102n(「102」と総称する)を通じて、ユーザはコンテンツ管理システム106(例えば、オンライン同期コンテンツ管理システム)とやり取りすることができる。コンテンツ管理システム106は、ここで説明されるサービスを提供するために必要となる機能及び/又は動作を実行するように構成された、単一のコンピューティングデバイス(例えば、1つのサーバ)又は複数のコンピューティングデバイス(例えば、複数のサーバ)を含むことができる。コンテンツ管理システム106は、デスクトップコンピュータや、モバイルコンピュータや、携帯電話、スマートフォン、タブレットなどのモバイル通信デバイスや、スマートテレビジョンや、セットトップボックスや、他の任意のネットワーク可能な計算デバイスなどの多種多様なクライアントデバイスからの接続をサポートしてもよい。クライアントデバイス102は、各種の種別、性能、オペレーティングシステム等であってもよい。さらに、コンテンツ管理システム106は、複数のクライアントデバイス102からの接続を同時に許可してもよく、複数のクライアントデバイス102とのやり取りを同時に行ってもよい。
[0023]クライアントデバイス102iにインストールされたクライアント側アプリケーションを介して、ユーザはコンテンツ管理システム106と相互に作用してもよい。ある実施の形態では、クライアント側アプリケーションはコンテンツ管理システム用のコンポーネントを含んでもよい。例えば、コンポーネントはスタンドアローンアプリケーションやひとつ以上のアプリケーションプラグインやブラウザエクステンションであってもよい。しかしながら、クライアントデバイス102iに存在しコンテンツ管理システム106と通信するよう構成されたウェブブラウザなどの第3者アプリケーションを介して、ユーザはコンテンツ管理システム106と相互に作用してもよい。いずれの場合でも、クライアント側アプリケーションは、ユーザがコンテンツ管理システム106と相互作用するためのユーザインタフェース(UI)を提供してもよい。例えば、ファイルシステムと統合されたクライアント側アプリケーションを介して、又はウェブブラウザアプリケーションを使用して表示されたウェブページを介して、ユーザはコンテンツ管理システム106と相互に作用してもよい。
[0024]コンテンツ管理システム106は、ユーザによるコンテンツアイテムの格納や、コンテンツアイテムの取得、変更、閲覧、及び/又は共有などの種々のコンテンツ管理タスクの実行を可能としてもよい。さらにコンテンツ管理システム106は、ユーザが複数のクライアントデバイス102からコンテンツにアクセスすることを可能としてもよい。例えば、クライアントデバイス102iはネットワーク104を介してコンテンツ管理システム106にコンテンツをアップロードしてもよい。後に、同一のクライアントデバイス102i又はいくつかの他のクライアントデバイス102jはコンテンツ管理システム106から当該コンテンツを検索することができる。
[0025]種々のコンテンツ管理サービスをより容易にするために、ユーザはコンテンツ管理システム106にアカウントを生成してもよい。ユーザアカウントデータベース150は、アカウント情報を維持してもよい。ユーザアカウントデータベース150は、登録ユーザについてのプロファイル情報を格納してもよい。ある場合には、ユーザプロファイルの個人情報はユーザ名及び/又は電子メールアドレスのみであってもよい。しかしながら、コンテンツ管理システム106は、誕生日、住所、課金情報などの追加的なユーザ情報を受け入れるよう構成されてもよい。
[0026]ユーザアカウントデータベース150は、有料/無料の別などのアカウントタイプや、ファイル編集履歴などの利用情報や、許可されている最大ストレージスペースや、利用されているストレージスペースや、コンテンツストレージ位置や、セキュリティ設定や、個人構成設定や、コンテンツ共有データなどのアカウント管理情報を含んでもよい。アカウント管理モジュール124は、ユーザアカウントデータベース150のユーザアカウントの詳細を更新し、及び/又は、取得するように構成されてもよい。アカウント管理モジュール124は、コンテンツ管理システム106の他の任意の数のモジュールと相互に作用するよう構成されてもよい。
[0027]アカウントは、そのアカウントで認証されたひとつ以上のクライアントデバイス102から、デジタルデータやドキュメントやテキストファイルや音声ファイルやビデオファイルなどのコンテンツアイテムを格納するために使用されてもよい。コンテンツアイテムはまた、フォルダ、プレイリスト、アルバムなどの種々の挙動とともにコンテンツアイテムをグループ化するコレクションを含むことができる。例えば、アカウントは任意のユーザに対してアクセス可能とする公開フォルダを含むことができる。公開フォルダにはウェブアクセス可能なアドレスが割り当てられてもよい。ウェブアクセス可能なアドレスへのリンクは、公開フォルダのコンテンツにアクセスするために使用されうる。他の例では、アカウントは、写真に適する特定の属性やアクションを提供する写真用の写真コレクションや、音声ファイルを再生する能力を提供し他の音声関連アクションを実行する音声コレクションや、他の特殊用途コレクションを含んでもよい。アカウントは、複数のユーザアカウントとリンクされそれらのアカウントから利用可能な共有コレクション又はグループコレクションを含んでもよい。ある共有コレクションについての複数のユーザに対する複数のパーミッションは異なっていてもよい。
[0028]コンテンツアイテムはコンテンツストレージ160に格納されてもよい。コンテンツストレージ160は、ストレージデバイスや、複数のストレージデバイスや、サーバであってもよい。代替的に、コンテンツストレージ160は、ひとつ以上の通信ネットワークを介してアクセス可能なクラウドストレージプロバイダ又はネットワークストレージであってもよい。コンテンツ管理システム106がクライアントデバイス102に対して複雑さと詳細とを隠すことで、クライアントデバイス102は、コンテンツアイテムがコンテンツ管理システム106によって正確にどこにどのように格納されているのかを知る必要はない。いくつかの実施形態では、コンテンツ管理システム106は、クライアントデバイス102i上に現れるコレクション階層と同じフォルダ階層でコンテンツアイテムを格納してもよい。しかしながら、コンテンツ管理システム106は自身の順序や構成や階層でコンテンツアイテムを格納してもよい。コンテンツ管理システム106は、コンテンツアイテムを、ネットワークアクセス可能ストレージ(NAS)デバイス、redundant array of independent disks(RAID)等に格納しうる。コンテンツストレージ160は、コンテンツアイテムを、FAT、FAT32、NTFS、EXT2、EXT3、EXT4、HFS/HFS+、BTRFS等の1つ以上のパーティションタイプを用いて格納しうる。
[0029]コンテンツストレージ160は、コンテンツアイテム及びコンテンツアイテムタイプ及びコンテンツアイテムと種々のアカウントやコレクションやグループとの関係を説明するメタデータを格納してもよい。コンテンツアイテムのメタデータは、コンテンツアイテムの一部として格納されてもよいし、別個に格納されてもよい。ある変形例では、コンテンツストレージ160に格納される各コンテンツアイテムには、システム全体で一意の識別子が割り当てられてもよい。
[0030]コンテンツストレージ160は、重複したコンテンツアイテムやコンテンツアイテムの重複セグメントを特定することによって、要求されるストレージスペースの量を低減することができる。複数の複製を保持する代わりに、コンテンツストレージ160は単一の複製を保持し、ポインタや他のメカニズムを使用して、重複しているものをその単一の複製にリンクさせてもよい。同様に、コンテンツストレージ160は、より効率的にコンテンツアイテムを格納すると共に、コンテンツアイテムの変化、コンテンツアイテムの異なるバージョン(バージョンツリーの分岐を含む)、及び変更履歴を追跡するコンテンツアイテムバージョン制御を用いることによって、アンドゥ(Undo)操作の機能を提供しうる。変更履歴は、元のコンテンツアイテムのバージョンにいつ適用したか、変更されたコンテンツアイテムのバージョンをいつ生成したかの変更のセットを含みうる。
[0031]コンテンツ管理システム106はひとつ以上のクライアントデバイス102からのコンテンツアイテムの自動同期をサポートするよう構成されてもよい。同期はプラットフォーム非依存型であってもよい。すなわち、コンテンツアイテムは、種類、機能、オペレーティングシステム等の異なる、複数のクライアントデバイス102にわたって同期処理されうる。例えば、クライアントデバイス102iは、コンテンツ管理システム106の同期モジュール132を介して、クライアントデバイス102iのファイルシステムのコンテンツを、ユーザアカウントに関連付けられるコンテンツと同期するクライアントソフトウェアを含みうる。ある場合では、クライアントソフトウェアは、新規の、削除された、修正された、コピーされた又は移動されたコンテンツアイテムやコレクション等のような、指定されたコレクション及びそのサブコレクション内のコンテンツに対する任意の変更と同期しうる。クライアントソフトウェアは別個のソフトウェアアプリケーションであってもよく、又はオペレーティングシステム中の既存のコンテンツ管理アプリケーションに統合されていてもよく、又はそれらの組み合わせであってもよい。既存のコンテンツ管理アプリケーションに統合されるクライアントソフトウエアの一例では、ユーザはローカルコレクション内で直接コンテンツを操作し、その間、バックグラウンド処理は変更がないかローカルコレクションを監視し、そのような変更の同期をコンテンツ管理システム106に対して実行する。逆に、バックグラウンド処理はコンテンツ管理システム106において更新されたコンテンツアイテムを特定し、そのような変更の同期をローカルコレクションに対して実行してもよい。クライアントソフトウェアは同期操作の通知を提供してもよく、コンテンツ管理アプリケーションの中で直接、コンテンツ状態の表示を提供してもよい。クライアントデバイス102iが利用可能なネットワーク接続を有さない場合がある。このシナリオでは、クライアントソフトウェアは、コンテンツアイテムの変更に対してリンクされたコレクションを監視し、ネットワーク接続が可能になった際のコンテンツ管理システム106への後の同期のために、これらの変更をキューに入れうる。同様に、ユーザは、コンテンツ管理システム106との同期を手動で止めるか中断するか再開してもよい。
[0032]ユーザは、ユーザインタフェースモジュール122によって生成され提供されるウェブインタフェースを介して、コンテンツを視たり操作したりしてもよい。例えば、ユーザは、ウェブブラウザ内で、コンテンツ管理システム106によって提供されるウェブアドレスへと辿り着いてもよい。コンテンツアイテムの新たなバージョンのアップロードのように、ウェブインタフェースを通じてなされたコンテンツストレージ160のコンテンツへの変更や更新は、ユーザのアカウントに関連する他のクライアントデバイス102へと伝搬されてもよい。例えば、それぞれが自身のクライアントソフトウエアを有する複数のクライアントデバイス102は単一のアカウントと関連付けられていてもよく、そのアカウントのコンテンツアイテムは複数のクライアントデバイス102のそれぞれの間で同期されてもよい。
[0033]コンテンツ管理システム106は、アプリケーションプログラムインタフェース(API)を介して他のコンテンツ及び/又はサービスプロバイダ1091、1092、…、109n(「109」と総称する)と相互に作用可能な通信インタフェース120であって種々のクライアントデバイス102とのインタフェースとしての通信インタフェース120を含んでもよい。所定のソフトウエアアプリケーションは、ユーザの代わりに、APIを介してコンテンツストレージ160にアクセスしてもよい。例えば、スマートフォンやタブレット計算デバイス上で動作するアプリケーションなどのソフトウエアパッケージはプログラム上、ユーザが資格証明を提供する場合、コンテンツ管理システム106を直接呼び出し、コンテンツを読み取り、書き込み、生成し、消去し、共有し、又はそうでなければ操作してもよい。同様に、APIは、ウェブサイトを通じてユーザがコンテンツストレージ160の全て又は一部にアクセスすることを可能としてもよい。
[0034]コンテンツ管理システム106は認証モジュール126を含んでもよい。この認証モジュール126は、ユーザの資格証明やセキュリティトークンやAPIコールや特定のクライアントデバイスなどを検証し、認証されたクライアント及びユーザのみがコンテンツアイテムにアクセスできることを確実なものとしてもよい。さらに、コンテンツ管理システム106は解析モジュール134を含んでもよい。この解析モジュール134は集合的ファイル操作やユーザアクションやネットワーク利用状況や使用されているトータルのストレージスペースや、他の技術的、利用状況的又はビジネス上の指標を追い、それについて報告してもよい。プライバシー及び/又はセキュリティポリシーは、コンテンツ管理システム106に保持されるユーザデータへの許可を得ないアクセスを防止してもよい。
[0035]コンテンツ管理システム106は、公に又は私的にコンテンツを共有することを管理するための共有モジュール130を含んでもよい。公にコンテンツを共有することは、コンテンツアイテムを、コンテンツ管理システム106とネットワーク通信可能な任意の計算デバイスからアクセス可能とすることを含んでもよい。私的にコンテンツを共有することは、コンテンツストレージ160のコンテンツアイテムを2以上のユーザアカウントとリンクさせ、それにより各ユーザアカウントがそのコンテンツアイテムへのアクセスを有することを含んでもよい。当該共有は、プラットフォームが不可知の態様でなされてもよい。つまり、コンテンツは種々の種別、性能、オペレーティングシステムなどの複数のクライアントデバイス102に渡って共有されてもよい。当該コンテンツはまた、ユーザアカウントの種々の種別に渡って共有されてもよい。
[0036]ある実施の形態では、コンテンツ管理システム106は、コンテンツストレージ160における各コンテンツアイテムの位置を特定するコンテンツディレクトリを維持するよう構成されてもよい。コンテンツディレクトリは、コンテンツストレージに保持される各コンテンツアイテムに対して一意のコンテンツエントリを含んでもよい。
[0037]コンテンツエントリは、コンテンツ管理システム内のコンテンツアイテムのロケーションを識別するために使用されうるコンテンツパスを含みうる。例えば、コンテンツパスはコンテンツアイテムの名前とコンテンツアイテムに関連するフォルダ階層とを含んでもよい。例えば、コンテンツパスは、コンテンツアイテムの名前に加えて、そのコンテンツアイテムが置かれているフォルダ又はフォルダのパスを含んでもよい。コンテンツ管理システム106はコンテンツパスを使用して、コンテンツアイテムを適切なフォルダ階層の中で提示してもよい。
[0038]コンテンツエントリは、コンテンツストレージ160におけるコンテンツアイテムの位置を特定するコンテンツポインタを含んでもよい。例えば、コンテンツポインタはメモリにおけるコンテンツアイテムの正確なストレージアドレスを含んでもよい。ある実施の形態では、コンテンツポインタは複数の位置を指してもよく、複数の位置のそれぞれはコンテンツアイテムの一部を含む。
[0039]コンテンツパス及びコンテンツポインタに加えて、コンテンツエントリはコンテンツアイテムへのアクセスを有するユーザアカウントを特定するユーザアカウント識別子を含んでもよい。ある実施の形態では、複数のユーザアカウント識別子が単一のコンテンツエントリに関連付けられてもよく、これは、そのコンテンツアイテムが複数のユーザアカウントによる共有アクセスを有することを示す。
[0040] 私的にコンテンツアイテムを共有するために、共有モジュール130は、ユーザアカウント識別子をコンテンツアイテムに関連付けられたコンテンツエントリに追加し、それにより追加されたユーザアカウントにコンテンツアイテムへのアクセスを与えるよう構成される。共有モジュール130は、ユーザアカウントのコンテンツアイテムへのアクセスを制限するために、コンテンツエントリからユーザアカウント識別子を除くよう構成されてもよい。
[0041]公にコンテンツを共有するために、共有モジュール130はユニフォームリソースロケータ(URL)などのカスタムネットワークアドレスを生成するよう構成されてもよい。このカスタムネットワークアドレスにより、任意のウェブブラウザが、コンテンツ管理システム106のコンテンツに認証なしでアクセスすることが可能となる。これを達成するために、共有モジュール130は生成されるURLにコンテンツ特定データを含めるよう構成されてもよい。コンテンツ特定データは、後に、要求されたコンテンツアイテムを適切に特定して返すために使用されてもよい。例えば、共有モジュール130は、生成されるURLにユーザアカウント識別子とコンテンツパスとを含めるよう構成されてもよい。URLが選択されると、URLに含まれるコンテンツ特定データはコンテンツ管理システム106に送信されてもよい。コンテンツ管理システム106は受信したコンテンツ特定データを使用して適切なコンテンツエントリを特定し、そのコンテンツエントリに関連付けられたコンテンツアイテムを返してもよい。
[0042]URLを生成することに加えて、共有モジュール130はコンテンツアイテムへのURLが生成されたことを記録するよう構成されてもよい。ある実施の形態では、コンテンツアイテムに関連付けられたコンテンツエントリは、そのコンテンツアイテムへのURLが生成されたか否かを示すURLフラグを含んでもよい。例えば、URLフラグは、コンテンツアイテムへのURLがまだ生成されていないことを示すために最初に0又はfalseに設定されるブール値であってもよい。共有モジュール130は、コンテンツアイテムへのURLを生成した後はフラグの値を1又はtrueに変更するよう構成されてもよい。
[0043]ある実施の形態では、共有モジュール130は生成されたURLを非活性化するよう構成されてもよい。例えば、各コンテンツエントリは、要求に応じて生成されたURLからコンテンツが返されるべきか否かを示すURLアクティブフラグを含んでもよい。例えば、共有モジュール130は、URLアクティブフラグが1又はtrueに設定されている場合にのみ、生成されたリンクによって要求されるコンテンツアイテムを返すよう構成されてもよい。したがって、URLが既に生成されたコンテンツアイテムへのアクセスは、URLアクティブフラグの値を変更することにより、容易に制限されうる。これにより、ユーザは、コンテンツアイテムを移動したり生成されたURLを削除したりしなくても、共有コンテンツアイテムへのアクセスを制限できる。同様に、共有モジュール130は、URLアクティブフラグの値を1又はtrueに変えることでURLを再活性化してもよい。したがって、ユーザは、新たなURLを生成する必要なしにコンテンツアイテムへのアクセスを容易に復活させることができる。
[0044]コンテンツ管理システム106は、特定のコンポーネントを与えられて示されているものの、当業者は、システム106の構造上の構成が単に一つの可能性のある構成であること、及び、多少のコンポーネントが与えられた他の構成も可能であることを理解すべきである。
[0045]図2は、ワークスペースに新たなコンテンツアイテムを作成するための例示のシステム200を示すブロック図である。例えば、システム200は上述した図1のシステム100に対応しうる。
[0046]いくつかの実施形態において、システム200は、クライアントデバイス240を含んでもよい。例えば、クライアントデバイス240は上述したクライアントデバイス102に対応しうる。クライアントデバイス240は、例えば、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ウェアラブルデバイス、及び/又は任意の他のコンピューティングデバイスであってもよい。図2はただ一つのクライアントデバイス240(例えば、クライアントデバイス102i)を有するシステム200を示すが、システム200は、コンテンツ管理システム106とやり取りを行う多くのクライアントデバイス240(例えば、クライアントデバイス102i−102n)を含むことができる。例えば、コンテンツ管理システム106のユーザは、種々のワークプロジェクト及び/又はチームに対応するユーザのグループを形成することができる。プロジェクト、チーム又はグループの各メンバは、コンテンツ管理システム106によって管理され、かつ、上記プロジェクト、チーム又はグループのメンバ(例えば、ユーザ)と共有されるデータにアクセスするために、コンテンツ管理システム106と通信を行う、異なるクライアントデバイス240を有してもよい。
[0047]いくつかの実施形態において、クライアントデバイス240は、コンテンツ管理システム(CMS)クライアント242を含みうる。例えば、CMSクライアント242は、クライアントデバイス240のネイティブアプリケーションであってもよい。例えば、ネイティブソフトウェアアプリケーションは、クライアントデバイス240のハードウェア及び/又はソフトウェア構成に対して特別にビルドされたアプリケーションであってもよい。このように、以下で詳細に説明されるCMSクライアント242のグラフィカルユーザインタフェース(及び他の機能)は、クライアントデバイス240に固有の、命令、アプリケーションプログラミングインタフェース(API)、及び他の技術を用いて実装されうる。以下のグラフィカルユーザインタフェースを生成するために、及び/又は、ここで説明する種々の特徴を実行するために、CMSクライアント242は、ネットワーク接続を介して(例えばネットワーク104を通じて)、コンテンツ管理システム106(例えば、ユーザインタフェースモジュール122)からのデータ(例えば、コンテンツアイテム、通知等)を要求することができる。コンテンツ管理システム106は、コンテンツ管理システム106のコンテンツストレージ160及び/又は他のモジュールからデータを取得し、CMSクライアント242へデータを送信することができる。CMSクライアント242はその後、CMSクライアント242によって生成される種々のグラフィカルユーザインタフェース上にデータを提示することができる。
[0048]代替的に、CMSクライアント242は、クライアントデバイス240上で動作するウェブブラウザによって実行されるウェブクライアントであってもよい。このように、CMSクライアント242のグラフィカルユーザインタフェース(及び他の機能)は、クライアントデバイス240に固有でない、命令、API、及び他の技術を用いて実装されうる。例えば、CMSクライアント242は、固有でないウェブコード又は命令を用いるウェブアプリケーションとしてビルドされてもよい。以下で詳細に説明するように、コンテンツ管理システム106は、CMSクライアント242をクライアントデバイス240上のウェブブラウザに提供し、ウェブブラウザはユーザへグラフィカルユーザインタフェース(及び他の機能)を提供するために、CMSクライアント242を実行することができる。以下のグラフィカルユーザインタフェースを生成するために、及び/又は、ここで説明する種々の特徴を実行するために、CMSクライアント242(例えば、ウェブブラウザ)は、コンテンツ管理システム106からの種々のデータビュー(例えば、グラフィカルユーザインタフェース、ウェブページ等)を要求することができる。コンテンツ管理システム106は、コンテンツ管理システムのデータ(例えば、コンテンツアイテム、通知、コメント、タスク等)を提示するためのデータビュー(例えば、後述のグラフィカルユーザインタフェース)を生成し、ネットワーク接続を介して(例えば、ネットワーク104を通じて)当該データビューをCMSクライアント242へ送信することができる。例えば、コンテンツ管理システム106は、コンテンツ管理システム106のコンテンツストレージ106及び/又はソフトウェアモジュールからデータを取得し、当該データに基づいてデータビューを生成し、CMSクライアント242へデータを送信することができる。CMSクライアント242はその後、クラインアントデバイス240のディスプレイ上にプロジェクトフォルダビューを提示することができる。
[0049]いくつかの実施形態において、クライアントデバイス240は、CMSデーモン244を含んでもよい。例えば、CMSデーモン244は、コンテンツ管理システム106とクライアントデバイス240との間のデータの同期を維持するコンテンツ管理システム106のクライアントであってもよい。例えば、クライアントデバイス240は管理コンテンツ250を含んでもよい。管理コンテンツ250は、コンテンツ管理システム106によって管理されるクライアントデバイス240上のファイルシステムの一部及び/又はCMSデーモン244であってもよい。CMSデーモン244及び/又はコンテンツ管理システム106は、管理コンテンツ250に格納されるコンテンツアイテムを、例えば、コンテンツストレージ160に格納されるコンテンツアイテムと同期することができる。
[0050]特に、クライアントデバイス240のユーザがネームスペース262及び/又はネームスペース264へアクセスする許可を有する場合、コンテンツ管理システム106及び/又はCMSデーモン244は、コンテンツ管理システム106条のネームスペース262及び/又はネームスペース264の状態(例えば、コンテンツアイテム、コンテンツアイテムメタデータ等)を、クライアントデバイス240上の管理コンテンツ250に格納されたネームスペース262及び/又はネームスペース264の状態と同期することができる。コンテンツ管理システム106とクライアントデバイス240との間で当該ネームスペースの状態又はコンテンツを同期することによって、クライアントデバイス240のユーザはクライアントデバイス240上のローカルと、コンテンツ管理システム106を通じたリモートとの両方で各ネームスペースに関連付けられるコンテンツアイテムにアクセスすることができる。
[0051]例えば、ネームスペースは、コンテンツ管理システム106によって管理されるコンテンツアイテムのフォルダ、コレクション、又はグループに対応しうる。ネームスペースは複数のユーザのチーム、プロジェクト、又は他の共同グループに対応しうる。コンテンツ管理システム106は、1以上のネームスペースを、コンテンツ管理システム106によって管理されるコンテンツアイテムと関連付けることができる(例えば、ネームスペースがコンテンツアイテムに関連付けられるメタデータで識別されうる)。コンテンツ管理システム106は、要求側ユーザデバイス(例えば、ユーザ)がいずれのネームスペースにアクセスする許可を有するかに基づいて、コンテンツアイテム及び/又はメタデータを、検索及び/又は同期することができる。図2の例示において、クライアントデバイス240(例えば、対応ユーザ)は、ネームスペース262及び/又はネームスペース264にアクセスする許可を有し、従って、コンテンツ管理システム106は、ネームスペース262及び/又は264に関連付けられたコンテンツアイテム、メタデータ、及び他の状態情報をクライアントデバイス240と同期する。
[0052]いくつかの実施形態において、クライアントデバイス240は変更セット246をコンテンツ管理システム106へ送信することができる。例えば、クライアントデバイス240は、管理コンテンツ250のコンテンツをコンテンツストレージ160に格納されたコンテンツと同期する際に、変更セット246をコンテンツ管理システム106へ送信することができる。変更セットはクライアントデバイス240で行われた変更を説明するデータ又は命令を含みうる。例えば、CMSデーモン244は、クライアントデバイス240上の管理コンテンツ250へ行われた変更をコンテンツ管理システム106へ知らせるために変更セット246を生成することができる。CMSデーモン244は、時間経過とともに変更セット246へのエントリを追加しうる。このように、変更セット246は、期間内に管理コンテンツ250へ行われた変更の全てを説明するエントリを含みうる。例えば、クライアントデバイス240がコンテンツアイテムを管理コンテンツ250から削除すると、CMSデーモン244は、コンテンツアイテムが削除されたことを示すエントリを変更セットに生成することができる。クライアントデバイス240がコンテンツアイテムを管理コンテンツ250へ追加すると、CMSデーモン244は、コンテンツアイテムが追加されたことを示すエントリを変更セットに生成することができる。当該エントリ(例えば、文字列)は、クライアントデバイス240についてのデバイス識別子、当該変更が関連付けられるネームスペースに対応するネームスペース識別子、実行された変更動作についての記述子(例えば、”削除”、”追加”、”変更”等)、当該動作によって影響を受けたコンテンツアイテムにおけるコンテンツアイテム識別子(例えば、ファイル名称、ファイル名称の拡張子、格納場所等)、及び/又は変更動作が行われた時を示すタイムスタンプを含みうる。CMSデーモン244は、変更セット246をコンテンツ管理システム106に対して周期的に送信することができ、それにより、コンテンツ管理システム106は当該変更セットで説明される変更に基づいてコンテンツストレージ160に更新を行うことができる。変更セット246をコンテンツ管理システム106へ送信した後に、CMSデーモン244は、管理コンテンツ250に行われた新たな変更の追跡を継続するために、新たな変更セット246を生成しうる。したがって、CMSデーモン244は、時間経過とともに管理コンテンツ250への変更を説明する、多くの変更セット246を時間経過とともにコンテンツ管理システム106へ送信することができる。
[0053]いくつかの実施形態において、コンテンツ管理システム106は、クライアントデバイス240から変更セット246を受信することができる。例えば、コンテンツ管理システム106は、上述したように、時間経過とともに複数の変更セット246を受信しうる。コンテンツ管理システム106がクライアントデバイス240から変更セット246を受信すると、コンテンツ管理システム106は、変更セット260のコレクション内の変更セット246を格納することができる。コンテンツ管理システム106が変更セット246を受信すると、コンテンツ管理システム106は、変更セット246に説明された変更を行うことができる。例えば、コンテンツ管理システムは、変更セット246に説明された変更操作に従って、コンテンツストレージ160のコンテンツアイテムに対して、追加、削除、修正、移動等を行うことができる。
[0054]いくつかの実施形態において、コンテンツ管理システム106は、クライアントデバイス140上でのマルウェアの攻撃を検出するための複数のモジュールを含むことができる。例えば、コンテンツ管理システム106は、変更セット246に含まれるマルウェアの攻撃の痕跡又は兆候を検出するための軽量モジュール202、204を含みうる。コンテンツ管理システム106は、以下で詳細に説明するように、マルウェアの攻撃の範囲及び/又は開始時刻を判定するために、変更セット260のより広範囲の又はより詳細のスキャンを実行するためのスキャニングモジュール206を含みうる。
[0055]いくつかの実施形態において、コンテンツ管理システム106は、マルウェア検出規則ハンドラ202を含みうる。コンテンツ管理システム106が変更セット246を受信すると、検出規則ハンドラ202は、変更セット246の各エントリが検出規則ハンドラ202によって扱われる検出規則を満足するかどうかを判定するために、変更セット246を処理しうる。変更セット246の変更エントリは、変更エントリがマルウェア検出規則を満足すると、不審なエントリとしてみなされうる。例えば、コンテンツ管理システム106は、複数の検出規則ハンドラ202を含みうる。各検出規則ハンドラ202は、変更エントリが不審なエントリであるか(例えば、既知の悪意のあるソフトウェアに関連付けられる特徴を含むか)どうかを判定するために、変更セット246の変更エントリを特定のマルウェア検出規則又は条件と比較するように構成されうる。
[0056]いくつかの実施形態において、検出規則ハンドラ202は、変更セット246のエントリと、既知のマルウェアの命名規則(例えば、ファイルネーム、ファイル拡張子等)とを比較することによって、変更セット246の不審なエントリを判定することができる。例えば、コンテンツ管理システム106は、既知のマルウェア(ランサムウェア)のファイルネーム拡張子のブラックリストを維持管理することができる。検出規則ハンドラ202は、変更エントリが不審なエントリ(例えば、クライアントデバイス240上でのマルウェアの攻撃に関連する)であるか否かを判定するために、変更セット246の各変更エントリと上記ブラックリストのファイルネーム拡張子とを比較しうる。例えば、ブラックリストが既知のランサムソフトウェアに関連付けられたファイルネーム拡張子”.ransom”を含む場合、検出規則ハンドラ202は、変更エントリが”.ransom”拡張子を有するコンテンツアイテムに関連付けられているかどうかを判定するために、変更セット246内の各変更エントリにおけるコンテンツアイテム識別子と、文字列”.ransom”とを比較しうる。変更セット246が管理コンテンツ250に追加された識別子”file1.ransom”を有するコンテンツアイテムを示すエントリを含む場合、検出規則ハンドラ202は、当該エントリが不審なエントリ(例えば、マルウェアに関連がありそう)であると判定しうる。
[0057]同様に、検出規則ハンドラ202は、マルウェアの指示ファイルがクライアントデバイス240上の管理コンテンツ250に追加されたかどうかを判定するために、変更セット246の変更エントリを比較しうる。例えば、ランサムウェアがクライアントデバイス240上のコンテンツアイテムを暗号化する場合、ランサムウェアは、クライアントデバイス240上の暗号化されたコンテンツアイテムを復号化するためにどのように買戻し金の支払いを行うかを説明する、クライアントデバイス240のユーザへの指示を提供するヘルプファイル(例えば、help.txt、help.pdf、instructions.pdf等)を生成しうる。コンテンツ管理システム106は、ランサムウェアのヘルプファイルがクライアントデバイス240上に格納されているかどうかを判定するために、既知の指示ファイルの命名規則(例えば、”help”、”instructions”等)に対応する文字列と、変更セット246の変更エントリとを比較する検出規則ハンドラ202を含みうる。例えば、変更セット246が識別子”help.txt”を有するコンテンツアイテムを追加することを説明する変更エントリを含む場合、検出規則ハンドラ202は、識別子”help.txt”と文字列”help”とを比較し、当該比較に基づいて当該変更エントリが不審なエントリ(例えば、マルウェアの攻撃に関連がありそう)であるかを判定しうる。
[0058]いくつかの実施形態において、コンテンツ管理システム106は、感染検出モジュール204を含みうる。例えば、検出規則ハンドラ202が変更セット246内の変更エントリが不審であると判定すると、検出規則ハンドラ202は、検出規則ハンドラ202が変更セット246内に不審な変更エントリを発見したことを示すメッセージを、感染検出モジュール204に送信しうる。当該メッセージは、変更セット246をコンテンツ管理システム106へ送信するデバイスにおけるデバイス識別子、当該変更エントリに関連付けられるネームスペース、及び/又は、当該変更エントリに関連付けられるタイムスタンプを含みうる。いくつかの実施形態において、検出規則ハンドラ202は、不審な変更エントリが変更セット246内に発見されたごとに、メッセージを感染検出モジュール204へ送信しうる。
[0059]いくつかの実施形態において、感染検出モジュール204は、クライアントデバイス240に関連付けられる変更セット260のフルスキャンを実行するかどうかを判定しうる。例えば、感染検出モジュール204は、検出規則ハンドラ202から受信したメッセージの数のカウント(例えば、不審な変更エントリのカウント)を保持することができる。ある時間期間内(例えば、1分、5分、7分等)に受信したメッセージ数(例えば、特定された不審な変更エントリ数)が閾値(例えば、7、10等)を越えると、感染検出モジュール204は、クライアントデバイス240と関連付けられる全ての変更セット246のフルスキャンのトリガとしうる。感染検出モジュールは、クライアントデバイス240と関連付けられる全ての変更セット260のフルスキャンを要求するために、スキャン要求メッセージをスキャニングモジュール206に送信しうる。例えば、当該スキャン要求メッセージは、感染したクライアントデバイス240のデバイス識別子、不審な変更エントリに関連付けられるネームスペース、及び/又は、不審な変更エントリのタイムスタンプを含みうる。例えば、感染検出モジュール204は、各検出規則ハンドラ202から受信したメッセージに基づいて、感染したクライアントデバイス240のデバイス識別子、不審な変更エントリと関連付けられるネームスペース、及び/又は、不審な変更エントリのタイムスタンプを判定しうる。
[0060]いくつかの実施形態において、コンテンツ管理システム106は、スキャニングモジュール206を含みうる。例えば、スキャニングモジュール206は、クライアントデバイス240が悪意のあるソフトウェア(例えば、マルウェア、ランサムウェア等)によって攻撃されたかどうかを判定するために、変更セット260内の変更セットのスキャンを実行しうる。スキャニングモジュール206は、感染検出モジュール204から受信した要求に応じて、クライアントデバイス240に関連付けられる変更セット260のスキャンを実行しうる。例えば、スキャニングモジュール206は、検出規則ハンドラ202及び感染検出モジュール204の少なくとも一方によって発見された不審な変更エントリに対応する、クライアントデバイス240の識別子、クライアントデバイス240に関連付けられるネームスペースの識別子、及び/又はタイムスタンプを含むスキャン要求メッセージを受信しうる。
[0061]代替的に、スキャニングモジュール206は、クライアントデバイス240から受信した要求に応じて、クライアントデバイス240に関連付けられる変更セット260のスキャンを実行しうる。例えば、クライアントデバイス240のユーザは、クライアントデバイス240がマルウェア(例えば、ランサムウェア)に感染していると疑わしく思うと、コンテンツ管理システムに対して、クライアントデバイス240がマルウェアに感染しているかどうかを判定するために変更セット260のスキャンを実行するように要求する。クライアントデバイス240のユーザは、クライアントデバイス240と関連付けられた変更セット260をスキャニングモジュール206にスキャンさせるために、コンテンツ管理システム106のグラフィカルユーザインタフェース上に提示されたボタン又は他のグラフィカル要素を選択しうる。例えば、グラフィカルユーザインタフェースCMSクライアント242によってクライアントデバイス240のディスプレイ上に提示されうる。グラフィカル要素の選択を受信することに応じて、CMSクライアント242は、クライアントデバイス240の識別子と、クライアントデバイス240に関連付けられるネームスペースの識別子と、スキャン要求の日及び/又は時刻を示すタイムスタンプとを含むスキャン要求メッセージをコンテンツ管理システム106へ送信しうる。
[0062]いくつかの実施形態において、スキャニングモジュール206は、クライアントデバイス240がマルウェアに感染しているかどうかを判定するために、変更セット260をスキャンしうる。スキャニングモジュール206は、受信したスキャン要求で特定された上記タイムスタンプに対応する日及び/又は時刻に開始する変更セット260のスキャンを開始しうる。例えば、スキャニングモジュール206は、受信したスキャン要求において特定されるユーザデバイス(例えば、クライアントデバイス240)に関連付けられる変更セット260を取得しうる。スキャニングモジュール206は、スキャン要求で特定された上記タイムスタンプに対応する変更セット260内に変更エントリを配置する。
[0063]スキャン要求において特定されるタイムスタンプに対応する変更エントリから始めて、スキャニングモジュール206は、マルウェア感染したクライアントデバイス240によって引き起こされた変更の範囲を判定するために、上記変更エントリから時間的に先の変更エントリ及び/又は時間的に後の変更エントリへ移動しうる。例えば、スキャニングモジュール206は、何れの変更エントリが悪意のあるソフトウェアに関連付けられているかを判定するために、変更セット206内の変更エントリと、マルウェアファイルネーム及び/又はファイル拡張子のブラックリストとを比較しながら時間的に先の変更エントリ及び時間的に後の変更エントリに移動しうる。時間的に先の及び時間的に後の両方をスキャニングすることによって、スキャニングモジュール206は、クライアントデバイス240上の最も早いマルウェア関連の変更エントリの時刻(例えば、開始時刻)と、クライアントデバイス240上の最近のマルウェア関連の変更エントリの時刻(例えば、最終時刻)とを判定しうる。
[0064]いくつかの実施形態において、スキャニングモジュール206は、スキャン要求で特定された時刻の前後に多くのコンテンツアイテムの削除が発生したかどうかを判定するために、変更エントリを解析しうる。例えば、スキャニングモジュール206には、削除数の閾値(例えば、1000、500、200等)が設定されうる。スキャニングモジュール206は、マルウェアの攻撃の開始時刻と終了時刻との間にクライアントデバイス240上で、どれくらいのコンテンツアイテムの削除が発生したかを判定するために、変更セット260を解析しうる。コンテンツアイテムの削除数が閾値の削除数よりも少ないと、スキャニングモジュール206が判定すると、スキャニングモジュール206は、マルウェアの攻撃は発生していないと判定しうる。コンテンツアイテムの削除数が閾値の削除数を超えたと、スキャニングモジュール206が判定すると、スキャニングモジュール206は、マルウェア感染が発生したかどうかを判定するために、変更セット260の解析を継続しうる。
[0065]いくつかの実施形態において、スキャニングモジュール206は、コンテンツアイテムの削除数に加えてコンテンツアイテムの割合に基づいてマルウェア攻撃が発生したかを判定しうる。例えば、スキャニングモジュール206は、変更エントリが、悪意のあるソフトウェア関連のコンテンツアイテムを追加する不審な変更エントリかどうかを判定するために、クライアントデバイス240に関連付けられる変更セット260の各変更エントリを比較しうる。スキャニングモジュールは、コンテンツアイテムを追加する変更エントリが既知の悪意のあるソフトウェア又はランサムウェアに関連しているかどうかを判定するために、例えば、各変更エントリを、ファイルネーム及び/又はファイル拡張子のブラックリストと比較しうる。スキャニングモジュール206は、マルウェアに関連付けられた名称及び/又は拡張子を有するコンテンツアイテムがクライアントデバイス240へ追加されたことを示す変更エントリの数を判定しうる。スキャニングモジュール206はその後、コンテンツアイテムの削除に対するマルウェア関連の追加の割合を判定しうる。例えば、スキャニングモジュール206は、判定された時間期間内における、マルウェア関連の追加数をコンテンツアイテムの削除数によって割ることにより上記割合を算出しうる。上記割合が1の閾値パーセンテージ(例えば、プラス又はマイナス10%)の範囲内の場合、その後、スキャニングモジュール206は、クライアントデバイス240がマルウェア(例えば、ランサムウェア)によって攻撃されたかを判定しうる。
[0066]代替的に、スキャニングモジュール206は、変更セット260に示されるファイル変更の総数に対する、ランサムウェア関連の拡張子の割合を算出しうる。例えば、変更セット260で示されるランサムウェア関連の追加数を判定することに加えて、スキャニングモジュール206は、当該スキャニングモジュール206のコンテンツアイテムの変更の総数(例えば、変更エントリの総数)を判定しうる。スキャニングモジュール206はその後、判定された時間期間内における、マルウェア関連の追加数をコンテンツアイテムの変更の総数によって割ることにより上記割合を算出しうる。割合が閾値(例えば、0.1、10%等)を超える場合、その後、スキャニングモジュール206は、クライアントデバイス240がマルウェア(例えば、ランサムウェア)によって攻撃されたと判定しうる。
[0067]いくつかの実施形態において、スキャニングモジュール206は、クライアントデバイス240がマルウェアによって攻撃されたと判定することに応じて、感染検出モジュール204に通知しうる。例えば、スキャニングモジュール206は、マルウェアの攻撃が発生していることを示すメッセージを感染検出モジュール204に送信しうる。当該メッセージは、マルウェアの攻撃によって影響されるネームスペースの識別子と、感染したユーザデバイス(例えば、クライアントデバイス240)の識別子と、変更セット206の最も早いマルウェア関連の変更エントリのタイムスタンプとを含みうる。
[0068]スキャニングモジュール206からのメッセージを受信することに応じて、感染検出モジュール204は、マルウェアがクライアントデバイス240上で検出されたことを示す感染検出メッセージをクライアントデバイス240に送信しうる。例えば、感染検出モジュール206は、コンテンツ管理システム106に、電子メールメッセージ、通知、インスタントメッセージ、又は他のタイプの感染検出メッセージをクライアントデバイス240に送信させて、コンテンツ管理システム106がクライアントデバイス240上のマルウェアを検出したことをユーザに知らせることができる。感染検出メッセージは、マルウェア感染クライアントデバイス240の説明、マルウェア感染によって影響を受けたコンテンツアイテムの例、第1のマルウェア関連の変更エントリが変更セット260で発生した日及び/又は時、及び/又は、影響を受けたコンテンツアイテムの復元を開始するための選択可能な要素(例えば、リンク、URL、ボタンなど)を含むことができる。感染検出メッセージが電子メールメッセージである場合、クライアントデバイス240上の電子メールクライアント(例えば、ブラウザ内のウェブクライアント、ネイティブ電子メールクライアントなど)は、電子メールメッセージを提示することができる。感染検出メッセージが通知である場合、CMSクライアント242は、クライアントデバイス240のディスプレイ上に通知のグラフィカル表現を提示することができる。
[0069]スキャニングモジュール206からのメッセージの受信に応答して、感染検出モジュール204は、クライアントデバイス240とのコンテンツアイテムの同期を中断することができる。上述したように、コンテンツ管理システム106は、コンテンツストレージ160に記憶されたコンテンツアイテム及び/又はコンテンツアイテムメタデータを、クライアントデバイス240の管理されたコンテンツ250に記憶されたコンテンツアイテム及び/又はコンテンツアイテムメタデータと同期させることができる。クライアントデバイス240上にインストールされたマルウェアが、コンテンツリカバリモジュール208によって復元されたコンテンツアイテムに影響(例えば、暗号化、破損させる等)しないようにするために、以下で説明するように、コンテンツ管理システム106は、マルウェアがクライアントデバイス240から除去されるまで、クライアントデバイス240とのコンテンツアイテムの同期を停止することができる。コンテンツ管理システム106は、コンテンツアイテムの同期を自動的に中断することができる。コンテンツ管理システム106は、クライアントデバイス240からの命令の受信に応答して、コンテンツアイテムの同期を中断することができる。例えば、コンテンツ管理システム106は、クライアントデバイス240が悪意のあるソフトウェアに感染していることをクライアントデバイス240のユーザに知らせるために、クライアントデバイス240に通知又はメッセージを送信することができる。クライアントデバイス240のユーザは、クライアントデバイス240のディスプレイ上に提示されたグラフィカル要素(例えば、ボタン)を選択して、コンテンツ管理システム106とのコンテンツアイテムの同期を中断することができる。クライアントデバイス240は、コンテンツ管理システム106とクライアントデバイス240との間のコンテンツアイテムの同期を中断するために、コンテンツ管理システム106に命令(例えば、メッセージ、要求など)を送信することができる。同期中断命令の受信に応答して、コンテンツ管理システム106は、クライアントデバイス240とコンテンツ管理システム106との間のコンテンツアイテムの同期を中断することができる。コンテンツ管理システム106とクライアントデバイス240との間の同期を中断することによって、クライアントデバイス240上のマルウェアは、復元されたコンテンツアイテムを暗号化又は破損する機会を有さない。
[0070]いくつかの実装形態では、コンテンツ管理システム106は、コンテンツリカバリモジュール208を含むことができる。例えば、コンテンツリカバリモジュール208は、マルウェア攻撃の直前に存在したコンテンツアイテムのバージョンを復元することによって、悪意のあるソフトウェアによってもたらされたコンテンツアイテムを復元することができる。例えば、クライアントデバイス240のユーザは、感染検出モジュールによって生成され、クライアントデバイス240上に提示された感染検出メッセージに含まれる選択可能な要素(例えば、URL、リンク、ボタンなど)を選択して、コンテンツリカバリモジュール208に、マルウェア(例えば、ランサムウェア)がクライアントデバイス240上で暗号化又は他の形で変更されたコンテンツアイテムの復元を開始させることができる。選択可能な要素を選択すると、CMSクライアント242(又は電子メールクライアント)は、復元要求メッセージをコンテンツ管理システム106に送信して、コンテンツ管理システム106にクライアントデバイス240に関連するネームスペースに対応するコンテンツを復元させることができる。復元要求メッセージは、例えば、クライアントデバイス240の識別子、復元されるべきネームスペースの識別子、及び/又はコンテンツリカバリモジュール208がどの時点までコンテンツアイテムを復元(例えば、復帰、復元など)すべきかを示すタイムスタンプを含むことができる。コンテンツ管理システム106が復元要求メッセージを受信すると、コンテンツ管理システム106は、コンテンツリカバリモジュール208を呼び出し、クライアントデバイス240の識別子、復元されるべきネームスペースの識別子、及び/又はコンテンツリカバリモジュール208がコンテンツアイテムをどの時点まで復元(例えば、復帰、復元など)すべきかを示すタイムスタンプをコンテンツリカバリモジュール208に渡すことができる。
[0071]代替的に、復元要求メッセージは、クライアントデバイス240の識別子、復元されるべきネームスペースの識別子、及び/又はコンテンツリカバリモジュール208がどの時点までコンテンツアイテムを復元(例えば、復帰、復元など)すべきかを示すタイムスタンプを含む、感染検出モジュール204によって記憶された復元データへの参照を含むことができる。コンテンツ管理システム106が復元要求メッセージを受信すると、コンテンツ管理システム106は、参照された復元データを取り出し、復元データ(例えば、クライアントデバイス識別子、ネームスペース識別子、タイムスタンプなど)をコンテンツリカバリモジュール208に渡すことによって、コンテンツリカバリモジュール208を呼び出すことができる。
[0072]いくつかの実装形態では、コンテンツリカバリモジュール208は、クライアントデバイス240上のマルウェアによって影響を受けたコンテンツアイテムを復元することができる。例えば、呼び出されると、コンテンツリカバリモジュール208は、マルウェア攻撃中に削除されたコンテンツアイテムを復元することができる。例えば、コンテンツリカバリモジュール208は、変更セット260に基づいて、マルウェア攻撃の期間(例えば、開始時間−終了時間)中に追加及び/又は削除されたコンテンツアイテムを判定することができる。コンテンツリカバリモジュール208は、例えば、クライアントデバイス240に関連するネームスペース(例えば、ネームスペース262、ネームスペース264など)に追加されたコンテンツアイテムをコンテンツストレージ160から削除することができる。
[0073]コンテンツリカバリモジュール208は、クライアントデバイス240に関連付けられたネームスペースから削除されたコンテンツアイテムをコンテンツストレージ160に復元することができる。例えば、コンテンツリカバリモジュール208は、マルウェア攻撃の期間中に削除されたコンテンツアイテムの識別子を決定することができる。コンテンツリカバリモジュール208は、マルウェア攻撃がいつ開始したかを示す、コンテンツリカバリモジュール208によって受信されたタイムスタンプに対応する時刻の直前に存在したコンテンツアイテムの最新バージョンに対応する削除されたコンテンツアイテムのバージョンを判定することができる。コンテンツリカバリモジュール208は、コンテンツアイテムの復元されたバージョンがコンテンツストレージ160内のコンテンツアイテムの現在のバージョンになるように、コンテンツアイテムの判定されたバージョンをクライアントデバイス240に関連付けられたそれぞれのネームスペースに復元することができる。
[0074]いくつかの実装形態では、コンテンツ管理システム106は、クライアントデバイス240とのコンテンツアイテムの同期を再開することができる。例えば、コンテンツリカバリモジュール208が、マルウェア攻撃によって影響を受けたコンテンツアイテムをコンテンツストレージ160内で復元又は元の状態に戻した後、コンテンツ管理システム106は、マルウェア攻撃によって影響を受けたコンテンツアイテムが復元されたことを示すメッセージをクライアントデバイス240に送信し、クライアントデバイス240のユーザにクライアントデバイス240から悪意のあるソフトウェアを除去するように促すことができる。当該プロンプトは、マルウェアがクライアントデバイス240から除去されたこと、及びコンテンツ管理システム106がクライアントデバイス240とのコンテンツアイテムの同期を再開することができることを示すためにユーザが選択することができる選択可能なグラフィカル要素を提供することができる。例えば、プロンプト及び選択可能なグラフィカル要素を含むメッセージは、クライアントデバイス240の適当なソフトウェアクライアント(例えば、CMSクライアント242、電子メールクライアント、インスタントメッセージングクライアント、等)へ送られる電子メールメッセージ、インスタントメッセージ、又は通知である。
[0075]ユーザが選択可能なグラフィカル要素を選択して、マルウェアがクライアントデバイス240から削除されたことを確認すると、クライアントデバイス240(例えば、メッセージを提示するソフトウェアクライアント)は、マルウェアがクライアントデバイス240から削除されたこと、及びコンテンツ管理システム106がクライアントデバイス140とのコンテンツアイテムの同期を再開できることを示すマルウェア除去確認メッセージをコンテンツ管理システム106に送信することができる。マルウェア除去確認メッセージの受信に応答して、コンテンツ管理システム106は、クライアントデバイス240とのコンテンツアイテムの同期を再開することができる。例えば、コンテンツ管理システム106は、ネームスペース262及びネームスペース264に関連付けられた復元されたコンテンツアイテムを、クライアントデバイス240上の管理されたコンテンツ250と同期させることができる。したがって、コンテンツ管理システム106は、クライアントデバイス240に対するマルウェア(例えば、ランサムウェア)攻撃の結果として失われたと考えられるコンテンツアイテムを復元することができる。
[0076]図3は、複数のマルウェア検出規則ハンドラを有する例示的なシステム300のブロック図である。例えば、システム300は上述したシステム200に対応しうる。上述したように、コンテンツ管理システム106は、複数の検出規則ハンドラ202(例えば、202a、202b、202cなど)を含むことができる。各検出規則ハンドラは、異なる規則を処理するように構成することができる。例えば、検出規則ハンドラ202aは、検出規則ハンドラ202aが既知のマルウェアファイル名拡張子に一致する変更セットエントリを見つけると、検出規則ハンドラ202aに疑わしいエントリメッセージを感染検出モジュール204に送信させる規則で構成されうる。検出規則ハンドラ202bは、検出規則ハンドラ202bが既知のマルウェア指示ファイルの命名規則に一致するエントリを発見すると、検出規則ハンドラ202bに疑わしいエントリメッセージを感染検出モジュール204に送信させる規則で構成することができる。検出規則ハンドラ202cは、検出規則ハンドラ202cが、別の既知のマルウェアファイル名拡張子に一致するエントリを発見すると、検出規則ハンドラ202cに、疑わしいエントリメッセージを感染検出モジュール204に送信させる規則で構成することができる。コンテンツ管理システム106が、クライアントデバイス240によって報告された変更セット内の変更エントリに基づいてマルウェアを検出することを可能にするために、新しい検出規則が必要とされるときはいつでも、新しい検出規則ハンドラ202が追加されうる。
[0077]上記で説明したように、感染検出モジュール204は、検出規則ハンドラ202a、202b、及び/又は202cからのメッセージに基づいて、クライアントデバイス240がマルウェアに感染している可能性があると判定することができる。例えば、感染検出モジュール204は、上述したように、検出規則ハンドラ202から受信したメッセージの数がメッセージ数の閾値よりも多い場合、クライアントデバイス240がおそらく悪意のあるソフトウェアによって攻撃されていると判定することができる。
[0078]図4は、クライアントデバイス240からコンテンツ管理システム106に送信される例示の一連の変更セット400を示す。例えば、変更セット400iは、図2の変更セット260に対応しうる。変更セット402、404、406、及び/又は408は、クライアントデバイス240からコンテンツ管理システム106に送信される個々の変更セット246に対応することができる。各変更セット402、404、406、及び/又は408は、経時的にクライアントデバイス240上のコンテンツアイテムに行われた変更を示すことができる。例えば、時間「T−1」において、CMSデーモン244は、クライアントデバイス240上の管理されたコンテンツ250に対する変更を説明する変更セット402をコンテンツ管理システム106に送信することができる。変更セット402は、管理されたコンテンツ250内で移動、修正、追加、又は削除されたコンテンツアイテムを説明することができる。CMSデーモン244は、その後、クライアントデバイス240上の管理されたコンテンツ350に対して行われた追加の変更を説明する、変更セット404、変更セット406、及び/又は変更セット408を送信することができる。
[0079]変更セット402、404、406、及び/又は408がコンテンツ管理システム106で受信されると、検出規則ハンドラ202は、各変更セットがコンテンツ管理システム106に到着すると、各変更セットを分析して、疑わしい変更エントリが各変更セット内に存在するかどうかを判定することができる。例えば、検出規則ハンドラ202は、”.ransom”拡張子を含むコンテンツアイテム識別子(例えば、名前)を有するコンテンツアイテムを示す変更エントリを検出するように構成されうる。検出規則ハンドラ202は、例えば、変更セット402内の各エントリを”.ransom”拡張子と比較することができる。”.ransom”拡張子を有する変更エントリが変更セット402に存在しないので、検出規則ハンドラ202は、疑わしいエントリメッセージを感染検出モジュール204に送信しない。しかしながら、検出規則ハンドラ202が変更セット404の各エントリを”.ransom”拡張子と比較する場合、変更セット404が、file1.ransom及びfile2.ransomがクライアントデバイス240上の管理されたコンテンツ250に追加されたことを示す変更エントリを含むため、検出規則ハンドラ202は、少なくとも2つの疑わしい変更エントリメッセージを感染検出モジュール204に送信する。同様に、検出規則ハンドラ202は、変更セット406及び変更セット408内の疑わしいエントリを発見して報告する。したがって、感染検出モジュール204は、スキャニングモジュール206を呼び出して、変更セット400のフルスキャンを実行し、クライアントデバイス240がマルウェアに感染しているかどうかを判定することができる。
[0080]スキャニングモジュール206が呼び出されると、スキャニングモジュール206は、疑わしいランサムウェア攻撃のターゲットであるクライアントデバイスに関連する格納された変更セットを分析することができる。例えば、変更セット402〜408は、コンテンツ管理システム106によって受信されると、変更セット260に格納されうる。呼び出されると、スキャニングモジュール206は、クライアントデバイス240のデバイス識別子、疑わしい攻撃に関連するネームスペース、及び疑わしい変更エントリに対応するタイムスタンプを受信することができる。その後、スキャニングモジュール206は、マルウェア攻撃が実際に発生したかどうかを判定し、攻撃の範囲を判定するために、変更セット260を時間的に前後に移動することができる。
[0081]例えば、感染検出モジュール204によってスキャニングモジュール206に提供されたタイムスタンプがTIMESTAMP88に対応する場合、スキャニングモジュール206は、ランサムウェアによって暗号化及び/又は削除された他のコンテンツアイテムを(例えば、名前拡張子に基づいて)決定するために、変更セット404、406、及び408を通して時間的に前方に移動することができる。
[0082]また、スキャニングモジュール206は、ランサムウェア攻撃の開始を決定するために、変更セット260を通して時間的に戻ることもできる。例えば、スキャニングモジュール206は、ランサムウェアに関連する最初の変更エントリを判定するために、変更セット404及び変更セット402を通して時間的に後方に移動することができる。この例では、ランサムウェアに関連付けられた1回目のエントリ(例えば、help.txtを追加)は、TIMESTAMP5に対応する時刻に発生した。スキャニングモジュール206がランサムウェア攻撃の開始及び攻撃によって影響を受けたコンテンツアイテムを識別すると、スキャニングモジュール206は、この情報をコンテンツリカバリモジュール208に(例えば、感染検出モジュール204を介して)提供することができ、その結果、コンテンツリカバリモジュール208は、ランサムウェア攻撃が開始した時刻(例えば、TIMESTAMP5に対応する時刻)の直前に存在した影響を受けたコンテンツアイテムのバージョンを元の状態に戻すことができる。
[0083]図5は、マルウェア攻撃が検出された後にコンテンツアイテムの復元を開始するようにユーザに促すための例示的なグラフィカルユーザインタフェース500を示す。例えば、GUI500は、ランサムウェアがクライアントデバイス240上で検出されたことを示すメッセージをコンテンツ管理システム106から受信した後に、CMSクライアント242によって提示されうる。或いは、GUI500は、ランサムウェアがクライアントデバイス240上で検出されたことを示すメッセージ(例えば、電子メール、インスタントメッセージ、チャットメッセージなど)をコンテンツ管理システム106から受信した後に、電子メールクライアント、インスタントメッセージングクライアント、又は他のメッセージングクライアントによって提示されうる。
[0084]いくつかの実装形態では、GUI500は、通知502を含むことができる。例えば、通知502は、検出されたマルウェア感染の説明と、コンテンツアイテムの復元を開始するようにユーザに促すメッセージとを提示することができる。通知502は、選択可能なグラフィカル要素504を含むことができる。例えば、ユーザは、ユーザが選択時にコンテンツアイテムを復元することを望まないことを示すグラフィカル要素504を選択することができる。例えば、グラフィカル要素504は、リンク(例えば、ユニフォームリソースロケータ、ウェブアドレスなど)に対応することができ、これにより、グラフィカル要素504が選択されると、リンクは、ユーザがコンテンツアイテムの復元を開始することを望まないことを示すメッセージをコンテンツ管理システム106に受信させる。
[0085]いくつかの実施形態において、通知502は、コンテンツアイテムのリカバリを開始するためにグラフィカル要素506を含みうる。例えば、ユーザは、グラフィカル要素506を選択して、マルウェアの影響を受けたコンテンツアイテムの復元を開始することをユーザが望んでいることを示すことができる。例えば、グラフィカル要素504は、リンク(例えば、ユニフォームリソースロケータ、ウェブアドレスなど)に対応することができ、これにより、グラフィカル要素504が選択されると、リンクは、コンテンツ管理システム106に、ユーザがコンテンツアイテム復元を開始することを望むことを示すメッセージを受信させる。メッセージの受信に応答して、コンテンツ管理システム106は、上述したように、コンテンツリカバリモジュール208を呼び出して、影響を受けた、又はランサム化されたコンテンツアイテムの復元を開始することができる。
[0086]図6は、クライアントデバイス240とコンテンツ管理システム106との間の中断された同期を再開するための例示的なグラフィカルユーザインタフェース600を示す。例えば、GUI600は、ランサムウェアによって影響を受けたコンテンツアイテムがコンテンツ管理システム106によって復元されたことを示すメッセージをコンテンツ管理システム106から受信した後に、CMSクライアント242によって提示されうる。代替的に、GUI600は、ランサムウェアによって影響を受けたコンテンツアイテムがコンテンツ管理システム106によって復元されたことを示すメッセージ(例えば、電子メール、インスタントメッセージ、チャットメッセージなど)をコンテンツ管理システム106から受信した後に、電子メールクライアント、インスタントメッセージングクライアント、又は他のメッセージングクライアントによって提示されうる。
[0087]いくつかの実装形態では、GUI600は、通知602を含むことができる。例えば、CMSクライアント242(又はメッセージングクライアント)は、クライアントデバイス240上のマルウェア攻撃によって影響を受けたコンテンツアイテムがコンテンツ管理システム106によって復元されたことを示すメッセージの受信に応答して、通知602を提示することができる。コンテンツ管理システム106は、マルウェア攻撃の検出に応答して、クライアントデバイス240とのコンテンツアイテムの同期を中断したので、通知602は、ユーザが、検出された悪意のあるソフトウェアをクライアントデバイス240から削除したかどうかを確認することを可能にするグラフィカル要素604及び606を含むことができる。例えば、ユーザは、グラフィカル要素604を選択して、悪意のあるソフトウェアがクライアントデバイス240から除去されていないことを確認し、そしてコンテンツ管理システム106がクライアントデバイス240とのコンテンツアイテムの同期を再開するのを防止することができる。例えば、グラフィカル要素604の選択を受信したことに応答して、CMSクライアント242は、クライアントデバイス240とのコンテンツアイテムの同期を再開すべきでないことを示すメッセージをコンテンツ管理システム106に送信することができる。
[0088]代替的に、ユーザは、グラフィカル要素606を選択して、悪意のあるソフトウェアがクライアントデバイス240から除去されたことを確認し、コンテンツ管理システム106に、クライアントデバイス240とのコンテンツアイテムの同期を再開させることができる。例えば、グラフィカル要素606の選択を受信したことに応答して、CMSクライアント242は、マルウェアがクライアントデバイス240から除去され、クライアントデバイス240とのコンテンツアイテムの同期が再開されるべきであることを示すメッセージをコンテンツ管理システム106に送信することができる。悪意のあるソフトウェアがクライアントデバイス240から削除されたという確認を受信すると、コンテンツ管理システム106は、クライアントデバイス240とのコンテンツアイテムの同期を再開することができる。したがって、クライアントデバイス240は、悪意のあるソフトウェア攻撃の検出後にコンテンツ管理システムによって復元されたコンテンツアイテムのバージョンを受信することができる。
[0089]図7は、ユーザのチームに関連付けられたコンテンツアイテムを復元するための例示的なグラフィカルユーザインタフェース700を示す。例えば、クライアントデバイス240のユーザは、複数のメンバを含むチーム又はプロジェクトのメンバでありうる。チームのメンバは、共有フォルダ、共有ネームスペース、及び他の共有コンテンツを介して、同じフォルダ、コンテンツアイテムなどにアクセスすることができる。コンテンツは、上述したように、コンテンツ管理システム106を介して各メンバのコンピューティングデバイス(例えば、クライアントデバイス)間で同期させることができる。したがって、チームの1人のメンバのデバイスがランサムウェア又は他の何らかの悪意のあるソフトウェアによって攻撃されると、チームの他のメンバが攻撃の結果によって影響を受ける可能性がある。例えば、攻撃が、1人のメンバのデバイス上のコンテンツアイテムを暗号化及び削除するランサムウェア攻撃である場合、他のメンバが暗号化された(例えば、ランダム化された)コンテンツアイテムにアクセスできないように、コンテンツアイテムの同じ削除及び同じ暗号化を他のメンバのデバイスに同期させることができる。
[0090]いくつかの実装形態では、コンテンツ管理システム106は、悪意のあるソフトウェア攻撃がチームメンバのデバイス上でいつ発生したかを判定することができる。例えば、コンテンツ管理システム106(例えば、検出規則ハンドラ202、感染検出モジュール204、及びスキャニングモジュール206)は、上述のように、ランサムウェア攻撃がチームメンバのデバイス上でいつ発生したかを判定することができる。例えば、クライアントデバイス240のユーザがチームのメンバである場合、コンテンツ管理システム106は、上述したように、マルウェア攻撃がクライアントデバイス240上で発生した時を検出及び/又は判定することができる。
[0091]いくつかの実装形態では、コンテンツ管理システム106は、悪意のあるソフトウェア攻撃がチームメンバのデバイス上で発生したときにチーム管理者に通知することができる。例えば、コンテンツ管理システム106がクライアントデバイス240に対するランサムウェア攻撃を検出すると、コンテンツ管理システム106は、チームメンバのデバイスに悪意のあるソフトウェア攻撃が発生したことを示すメッセージをチーム管理者のデバイスに送信することができる。例えば、コンテンツ管理システム106は、管理者のデバイス上で実行されているCMSクライアント242に通知としてメッセージを送信することができる。コンテンツ管理システムは、メッセージを電子メール、インスタントメッセージ、チャットメッセージ、又は他のタイプの電子メッセージとして、管理者のデバイス上で実行されているメッセージングクライアントに送信することができる。メッセージが受信されると、管理者のデバイス(例えば、クライアントデバイス240に類似する)は、マルウェア攻撃を説明し、コンテンツアイテム復元オプションを提示するグラフィカル通知を提示することができる。いくつかの実装形態では、チーム管理者は、本明細書で説明するように、マルウェアを検出し、及び/又はコンテンツアイテムを復元するためにユーザに利用可能な動作のいずれかを起動及び/又は開始の何れかを実行することができる。
[0092]いくつかの実装形態では、GUI700は、通知702を含むことができる。例えば、通知702を管理者のデバイス上に提示して、チームメンバのデバイス上でマルウェア攻撃が発生したことを管理者に通知することができる。例えば、通知702は、管理者のチームのメンバに関連付けられたコンピューティングデバイスが悪意のあるソフトウェアに感染したこと、及びコンテンツ管理システム106が、影響を受けたメンバのデバイスとのコンテンツアイテムの同期を停止又は中断したことを示すテキストを含むことができる。例えば、コンテンツ管理システム106は、上述したように、コンテンツ管理システム106がマルウェア攻撃を検出したときに、影響を受けたメンバのデバイスとの同期を自動的に中断することができる。
[0093]いくつかの実装形態では、GUI700は、マルウェアの影響を受けたコンテンツアイテムの復元を開始するためのグラフィカル要素706を含むことができる。例えば、管理者のデバイスが通知702を提示すると、通知702は、コンテンツ管理システム106にマルウェアの影響を受けたコンテンツアイテムの復元を開始させるための選択可能なグラフィカル要素706を含むことができる。例えば、グラフィカル要素706の選択を受信したことに応答して、管理者のデバイスは、コンテンツ管理システム106にメッセージを送信して、コンテンツ管理システム106に、チームメンバのデバイス(例えば、クライアントデバイス240)に感染している悪意のあるソフトウェアによって暗号化された、又は他の形で影響を受けたコンテンツアイテムの復元を開始させることができる。その後、コンテンツ管理システム106は、上述したように、マルウェア攻撃の直前の現在のバージョンであったコンテンツアイテムのバージョンを元の状態にすることによって、影響を受けたコンテンツアイテムを復元することができる。
[0094]いくつかの実装形態では、通知702は、グラフィカル要素704を含むことができる。例えば、管理者は、通知702が管理者のデバイスによって提示されたときに、影響を受けたチームメンバの影響を受けたコンテンツアイテムを復元することを望まないことがある。管理者は、グラフィカル要素704を選択して、コンテンツ管理システム106に影響を受けたコンテンツアイテムを復元させることなく、通知702を破棄することができる。
[0095]いくつかの実装形態では、コンテンツ管理システム106は、チームのマルウェアの影響を受けたコンテンツアイテムの復元を自動的に開始することができる。例えば、チームメンバのデバイス(例えば、クライアントデバイス240)に対する悪意のあるソフトウェア(例えば、ランサムウェア)攻撃を検出したことに応答して、コンテンツ管理システム106は、マルウェア攻撃の直前に存在したコンテンツアイテムの最新バージョンへのマルウェアの影響を受けたコンテンツアイテムの復元を自動的に開始することができる。コンテンツ管理システム106は、例えば、上述したように、チームメンバ(例えば、ユーザ)のデバイス上でマルウェア攻撃が発生したことを検出し、(例えば、他のチームメンバのデバイスとの同期を継続しながら)チームメンバのデバイスへのコンテンツアイテムの同期を自動的に中断し、マルウェアの影響を受けたコンテンツアイテムを自動的に復元することができる。
[0096]マルウェアに感染していないチームメンバのデバイスの同期は継続するため、他のチームメンバは、コンテンツ管理システム106が影響を受けたコンテンツアイテムを復元した後、復元されたコンテンツアイテムを自動的に受信する。しかしながら、感染したユーザデバイスについて同期が中断されるため、感染したデバイスを使用するチームメンバ又はチーム管理者ユーザのいずれかは、感染したデバイスとコンテンツ管理システム106との間のコンテンツアイテムの同期を再開する前に、マルウェアが感染したデバイスから除去されたことを確認しなければならない。
[0097]図8は、悪意のあるソフトウェアが感染したクライアントデバイスから除去されたことを確認するためのグラフィカルユーザインタフェース800を示す。例えば、GUI800は、ランサムウェアによって影響を受けたコンテンツアイテムがコンテンツ管理システム106によって復元されたことを示すメッセージをコンテンツ管理システム106から受信した後に、管理者のデバイス上のCMSクライアント242によって提示されうる。或いは、GUI600は、ランサムウェアによって影響を受けたコンテンツアイテムがコンテンツ管理システム106によって復元されたことを示すメッセージ(例えば、電子メール、インスタントメッセージ、チャットメッセージなど)をコンテンツ管理システム106から受信した後に、管理者のデバイス上の電子メールクライアント、インスタントメッセージングクライアント、又は他のメッセージングクライアントによって提示されうる。
[0098]いくつかの実装形態では、GUI800は、通知802を含むことができる。例えば、管理者のデバイス上のCMSクライアント242(又はメッセージングクライアント)は、感染したチームメンバのデバイス(例えば、クライアントデバイス240)上のマルウェア攻撃によって影響を受けたコンテンツアイテムがコンテンツ管理システム106によって復元されたことを示すメッセージの受信に応答して、通知802を提示することができる。コンテンツ管理システム106は、マルウェア攻撃の検出に応答して、感染したチームメンバのデバイスとのコンテンツアイテムの同期を中断したため、通知802は、影響を受けたチームメンバが、検出された悪意のあるソフトウェアを感染したデバイスから除去したかどうかをチーム管理者が確認することを可能にするグラフィカル要素804及び806を含むことができる。例えば、管理者は、グラフィカル要素804を選択して、悪意のあるソフトウェアが感染したデバイスから除去されていないことを確認し、コンテンツ管理システム106が、感染したデバイスとのコンテンツアイテムの同期を再開することを防止することができる。例えば、グラフィカル要素804の選択を受信したことに応答して、管理者のデバイス上のCMSクライアント242は、感染したデバイスとのコンテンツアイテムの同期が再開されるべきでないことを示すメッセージをコンテンツ管理システム106に送信することができる。
[0099]或いは、管理者は、グラフィカル要素806を選択して、悪意のあるソフトウェアが感染したデバイスから除去されたことを確認し、コンテンツ管理システム106に、感染したデバイスとのコンテンツアイテムの同期を再開させることができる。例えば、グラフィカル要素806の選択を受信したことに応答して、管理者のデバイス上のCMSクライアント242は、マルウェアがチームメンバの感染したデバイスから除去され、感染したデバイスとのコンテンツアイテムの同期が再開されるべきであることを示すメッセージをコンテンツ管理システム106に送信することができる。悪意のあるソフトウェアが感染したデバイスから除去されたという確認を受信すると、コンテンツ管理システム106は、感染したデバイスとのコンテンツアイテムの同期を再開することができる。したがって、感染した装置は、悪意のあるソフトウェア攻撃の検出後にコンテンツ管理システムによって復元されたコンテンツアイテムの復元されたバージョンを受信することができる。
[00100]図9は、クライアントデバイスが悪意のあるソフトウェアに感染しているかどうかを判定するためにスキャンを開始するための例示的なグラフィカルユーザインタフェース900を示す。例えば、CMSクライアント242は、クライアントデバイス240のディスプレイ上にGUI900を提示することができる。GUI900は、ユーザがコンテンツ管理システム106をナビゲートしてコンテンツアイテム、フォルダ、ネームスペースなどを閲覧し、それらと対話することを可能にするコンテンツアイテムブラウザとすることができ、GUI900は、CMSクライアント242によって提示される任意の他のユーザインタフェースとすることができる。
[00101]いくつかの実装形態では、GUI900は、クライアントデバイス240に関連する変更セットのスキャンを開始するためのグラフィカル要素902を含むことができる。例えば、GUI900を介してコンテンツ管理システム106と対話している間、及び/又はローカルファイルシステムブラウザを使用して管理されたコンテンツ250を閲覧している間、クライアントデバイス240のユーザは、疑わしいコンテンツアイテム、クライアントデバイス240に対する疑わしい変更、及び/又はクライアントデバイス240上の他の疑わしいアクティビティに気付くことができる。したがって、ユーザは、コンテンツ管理システム106が、クライアントデバイス240が悪意のあるソフトウェアに感染しているかどうかを判定することができるように、クライアントデバイス240のスキャンを手動で開始することを望む場合がある。スキャンを開始するために、ユーザは、グラフィカル要素902(例えば、ボタン)を選択することができる。グラフィカル要素902の選択を受信したことに応答して、CMSクライアント242は、コンテンツ管理システム106がクライアントデバイス240に関連する変更セット(例えば、変更セット260)のフルスキャンを開始することを要求するメッセージをコンテンツ管理システム106に送信することができる。
[00102]メッセージの受信に応答して、コンテンツ管理システム106は、スキャニングモジュール206を呼び出して、クライアントデバイス240に関連する変更セットのフルスキャンを開始することができる。例えば、コンテンツ管理システム106は、クライアントデバイス240の識別子、クライアントデバイス240に関連付けられたネームスペース、及び/又はスキャン要求の時刻をスキャニングモジュール206に提供することができる。その後、スキャニングモジュール206は、上述したように、クライアントデバイス240に関連付けられた変更セットのフルスキャンを実行することができる。
[00103]コンテンツ管理システム106が、クライアントデバイス240が悪意のあるソフトウェアに感染していると判定すると、コンテンツ管理システム106は、図5を参照して上述したように、クライアントデバイス240上で悪意のあるソフトウェアが検出されたことを示すメッセージをクライアントデバイス240に送信することができる。その後、ユーザは、上述したように、コンテンツ管理システム106にコンテンツアイテムを復元させ、クライアントデバイス240とのコンテンツアイテムの同期を再開させることができる。
[00104]図10は、疑わしいエントリについて個々の変更セットを分析するための例示的なプロセス1000のフローチャートである。例えば、プロセス1000は、コンテンツ管理システム106がクライアントデバイス240から変更セットを受信したときに、コンテンツ管理システム106のサーバデバイスによって実行されうる。例えば、プロセス1000は、上述のように、1つ又は複数の検出規則ハンドラ202及び/又は感染検出モジュール204によって実行されうる。
[00105]ステップ1002において、サーバデバイスは、変更セットを受信することができる。例えば、コンテンツ管理システム106は、クライアントデバイス240上のコンテンツアイテムに対して行われた変更を示す変更セットをクライアントデバイス240から受信することができる。例えば、変更セットは、何らかの方法で削除、追加、移動、修正、及び/又は他の形で変更されたコンテンツアイテムを識別する変更エントリを含むことができる。
[00106]ステップ1004において、サーバデバイスは、受信した変更セット内のエントリを、マルウェア関連エントリを識別するための規則と比較することができる。例えば、コンテンツ管理システム106は、上述のように、受信された変更セット内の変更セットエントリを、受信された変更セット内の疑わしいエントリを識別するためのマルウェア検出規則と比較する1つ又は複数の検出規則ハンドラ202を含むことができる。例えば、規則は、変更セットエントリ内のコンテンツアイテム識別子が、既知の悪意のあるソフトウェアに関連付けられた特定の文字列(例えば、名前拡張など)を含む場合、変更セットエントリが疑わしいエントリで1006で、サーバデバイスは、変更セットエントリと、1つ又は複数のマルウェア検出規則との比較に基づいて、変更セットエントリがマルウェア関連エントリであるかを判定することができる。例えば、変更セットエントリが、既知の悪意のあるソフトウェアに関連する文字列(例えば、コンテンツアイテム名、コンテンツアイテム拡張など)を含むコンテンツアイテム名を含む場合、サーバデバイスは、変更セットエントリが疑わしい変更エントリであると判断することができる。検出規則ハンドラ202が、変更セットエントリが疑わしいと判定した場合、検出規則ハンドラ202は、疑わしい変更エントリが受信された変更セット内で発見されたことを示すメッセージを感染検出モジュール204に送信することができる。
[00108]ステップ1008において、サーバデバイスは、変更セット内で検出されたマルウェア関連エントリの数を決定することができる。例えば、コンテンツ管理システム106上の感染検出モジュール204は、検出規則ハンドラ202から疑わしい変更エントリメッセージを受信することができる。感染検出モジュール204は、検出規則ハンドラ202から受信された疑わしい変更エントリメッセージの数に基づいて、変更セット内にいくつの疑わしい変更エントリが存在するかを判定することができる。
[00109]ステップ1010で、サーバデバイスは、ある期間内に検出されたマルウェア関連エントリの数がしきい値数を超えると判定することができる。例えば、感染検出モジュール204によって受信された疑わしい変更エントリメッセージの数が、ある期間(例えば、2分、5分、10分など)内に閾値の数(例えば、20、50、100など)を超える場合、感染検出モジュール204は、クライアントデバイス240が悪意のあるソフトウェア(例えば、マルウェア、ランサムウェアなど)に感染している可能性が高いと判定することができる。
[00110]ステップ1012において、サーバデバイスは、クライアントデバイスに関連する全ての変更セットのフルスキャンをトリガすることができる。例えば、感染検出モジュール204は、期間内に検出されたマルウェア関連エントリ(例えば、疑わしいエントリ)の数が、マルウェア関連エントリの閾値数を超える場合、クライアントデバイス240に関連付けられたすべての変更セットのフルスキャンをトリガすることができる。
[00111]図11は、クライアントデバイスに関連する変更セットのフルスキャンを実行するための例示的なプロセス1100のフローチャートである。例えば、コンテンツ管理システム106に関連付けられたサーバデバイスは、クライアントデバイス240が悪意のあるソフトウェアに感染しているかどうかを判定又は確認するために、処理110を実行することができる。当該スキャンは、マルウェア感染の程度(例えば、いくつのコンテンツアイテム及びどのコンテンツアイテムが影響を受けたか)を判定し、影響を受けたコンテンツアイテムがコンテンツ管理システム106によって復元されうるように、マルウェア感染がいつ開始したかを判定するために実行されうる。
[00112]ステップ1102で、サーバデバイスは、クライアントデバイスに関連する変更セットのフルスキャンを実行する要求を受信することができる。例えば、コンテンツ管理システム106上のスキャニングモジュール205は、感染検出モジュール204から要求を受信して、クライアントデバイス240に関連する変更セットのフルスキャンを実行することができる。或いは、スキャニングモジュール206は、上述したように、クライアントデバイス240のユーザがクライアントデバイス240のスキャンを手動で開始することを選択したときに、クライアントデバイス240からスキャン要求を受信することができる。例えば、クライアントデバイス240に関連付けられた各ネームスペースは、関連付けられた変更セット260を有することができる。スキャニングモジュール206は、クライアントデバイス240のフルスキャンが要求されたときに、ネームスペースのそれぞれをスキャンすること、及び/又はクライアントデバイス240に関連する設定を変更することができる。
[00113]ステップ1104において、サーバデバイスは、クライアントデバイスに関連付けられた変更セットを取得することができる。例えば、スキャニングモジュール206は、クライアントデバイス240に関連付けられたネームスペースに関連付けられた変更セットをコンテンツストレージ160から取得することができる。例えば、個々の変更セットが検出規則ハンドラ202のようにクライアントデバイス240から受信されるときに、個々の変更セットを単にスキャンする代わりに、スキャニングモジュール206は、コンテンツストレージ260から複数の変更セット(例えば、スキャン要求の前後の期間をカバーする変更セット)を取得することができる。
[00114]ステップ1106で、サーバデバイスは、変更セット内のエントリをマルウェア検出規則と比較することができる。例えば、マルウェア攻撃の範囲を決定するために、スキャニングモジュール206は、変更セット内の各変更エントリをマルウェア検出規則と比較することができる。上述のように、マルウェア検出規則は、コンテンツアイテムが既知の悪意のあるソフトウェアに関連付けられているかどうかを判定するために、コンテンツアイテム名(例えば、名前、拡張子など)を既知のマルウェアコンテンツアイテム名及び/又は拡張子にマッチングさせるための規則を含むことができる。これらのコンテンツアイテムは、例えば、既知のマルウェアコンテンツアイテム名及び/又は名前拡張子を含むように修正され(例えば、暗号化され)、リネームされたコンテンツアイテムとすることができる。変更セットエントリをマルウェア検出規則と比較するとき、スキャニングモジュール206は、マルウェア攻撃がいつ開始されたか、及びマルウェア攻撃がいつ終了したかを判定するために、変更エントリをマルウェア検出規則と比較して時間的に前方及び/又は時間的に後方に移動することができる。マルウェア攻撃の開始時刻及び終了時刻を判定することによって、スキャニングモジュール206は、マルウェア攻撃が発生した期間を判定することができる。
[00115]ステップ1108で、サーバデバイスは、マルウェア攻撃に関連する変更セットエントリの数を決定することができる。例えば、スキャニングモジュール206は、マルウェア検出規則に基づいて、いくつの変更セットエントリが悪意のあるソフトウェアアクティビティに関連付けられているかを判定することができる。スキャニングモジュール206は、例えば、攻撃に関連する期間にわたってクライアントデバイス140に追加されたマルウェア関連コンテンツアイテムの数を判定することができる。スキャニングモジュール206は、マルウェア攻撃に関連する期間にわたって削除されたコンテンツアイテムの数を判定することができる。
[00116]ステップ1110で、サーバデバイスは、マルウェア攻撃に関連する変更セットエントリの数がしきい値数を超えることを決定することができる。例えば、スキャニングモジュール206は、マルウェア攻撃に関連する変更セットエントリの数がエントリの閾値数を超える場合に、マルウェア攻撃が発生したことを確認することができる。或いは、スキャニングモジュール206は、マルウェア関連変更エントリの変更エントリの全数(例えば、マルウェアエントリ/全エントリ)に対する比率を判定して、マルウェア攻撃がクライアントデバイス240上で発生したことを確認することができる。例えば、全変更エントリに対するマルウェア変更エントリの比率が閾値(例えば、0.1、0.3など)を超える場合、スキャニングモジュール206は、マルウェア攻撃がクライアントデバイス240上で発生したことを確認することができる。
[00117]ステップ1112において、サーバデバイスは、変更セット内の最も早いマルウェアエントリが発生した時刻を判定することができる。例えば、変更セットエントリを通して時間的に後方にスキャンし、当該変更セットをマルウェア検出規則と比較するときに、スキャニングモジュール206は、最も早いマルウェア関連変更セットエントリに関連したタイムスタンプを判定し、保存することができる。
[00118]ステップ1114において、サーバデバイスは、クライアントデバイスがマルウェアに感染していることを示す通知をクライアントデバイスに送信することができる。例えば、スキャニングモジュール206が、クライアントデバイス240上でマルウェア攻撃が発生したことを確認すると、コンテンツ管理システム106は、メッセージ(例えば、アプリケーション通知、電子メール、インスタントメッセージなど)をクライアントデバイス240に送信することができる。クライアントデバイス240がメッセージを受信すると、クライアントデバイス240は、クライアントデバイス240のユーザにマルウェア感染を知らせ、影響を受けたコンテンツアイテムの復元を開始するようにユーザに促す通知を提示することができる。或いは、コンテンツ管理システム106は、上述したように、マルウェアの影響を受けたコンテンツアイテムの復元を自動的に開始することができる。
[00119]図12は、マルウェアの影響を受けたコンテンツアイテムを復元するための例示的なプロセス1200のフローチャートである。例えば、プロセス1200は、クライアントデバイス上のマルウェアによって、暗号化され、削除され、修正され、又は他の形で影響を受けたコンテンツアイテムを復元するために、コンテンツ管理システム106のサーバデバイスによって実行されうる。サーバデバイスは、プロセス1000及び/又はプロセス1100と組み合わせてプロセス1200を実行して、クライアントデバイス240上のマルウェア攻撃によって影響を受けたコンテンツアイテムを復元することができる。
[00120]ステップ1202において、サーバデバイスは、クライアントデバイス240に関連する変更セット内の最も早いマルウェア関連エントリが存在する時間を判定することができる。例えば、コンテンツリカバリモジュール208は、スキャニングモジュール208がクライアントデバイス240に関連付けられた変更セット260をスキャンした後に、スキャニングモジュール208から最も早いマルウェアエントリの時間を取得することができる。
[00121]ステップ1204において、サーバデバイスは、マルウェア攻撃によって影響を受けたコンテンツアイテムを決定することができる。例えば、スキャニングモジュール206及び/又はコンテンツリカバリモジュール208は、マルウェア攻撃の期間中にどのコンテンツアイテムが削除されたかを判定することができる。
[00122]ステップ1206において、サーバデバイスは、マルウェア攻撃の直前の時間に対応するコンテンツアイテムの最新バージョンを決定することができる。例えば、マルウェアの影響を受ける各コンテンツアイテムについて、コンテンツリカバリモジュール208は、マルウェアの影響を受けたコンテンツアイテムのどのバージョンが、クライアントデバイス240に関連する変更セット内の最も早いマルウェア関連エントリの直前の時点でのコンテンツアイテムの最新バージョンを表すかを判定することができる。
[00123]ステップ1208において、サーバデバイスは、コンテンツストレージ160からコンテンツアイテムの影響を受けたバージョンを除去することができる。例えば、コンテンツリカバリモジュール208は、クライアントデバイス240に関連付けられたネームスペースから、既知の悪意のあるソフトウェアに関連付けられたコンテンツアイテム名及び/又はコンテンツアイテム拡張子を有するコンテンツアイテムを除去することができる。
[00124]ステップ1210において、サーバデバイスは、マルウェア攻撃の直前の時刻に対応するコンテンツアイテムの最新バージョンをコンテンツストレージ160に追加することができる。例えば、コンテンツリカバリモジュール208は、マルウェア攻撃の直前の時刻に対応するコンテンツアイテムの最新バージョンを、クライアントデバイス240に関連する適切なネームスペースに復元することができる。コンテンツリカバリモジュール208は、コンテンツアイテムの適切なバージョンをそれぞれのネームスペースに追加することによって、コンテンツアイテムを復元することができる。
[00125]ステップ1212において、サーバデバイスは、感染したクライアントデバイスに、コンテンツアイテムが復元されたことを示す通知を送信することができる。例えば、コンテンツ管理システム106は、電子メール、インスタントメッセージ、通知、又は他の電子メッセージをクライアントデバイス240上のメッセージングクライアント又はCMSクライアント242に送信して、コンテンツアイテムが復元されたことをクライアントデバイス240のユーザに通知することができる。当該通知は、コンテンツ管理システム106とクライアントデバイス240との間のコンテンツアイテムの同期を再開することができるように、悪意のあるソフトウェアを除去するようにユーザに促すこと、及び/又は悪意のあるソフトウェアがクライアントデバイス240から除去されたことを確認するようにユーザに促すことができる。
[00126]ステップ1214において、サーバデバイスは、悪意のあるソフトウェアがクライアントデバイスから除去されたことを示すメッセージをクライアントデバイスから受信することができる。例えば、ユーザは、クライアントデバイス240のディスプレイ上に提示されたグラフィカル要素を選択して、悪意のあるソフトウェアがクライアントデバイス240から除去されたことを示すことができる。その後、クライアントデバイス240は、悪意のあるソフトウェアがクライアントデバイス240から除去されたことを示すメッセージをコンテンツ管理システム106へ送信することができる。
[00127]ステップ1216において、サーバデバイスは、クライアントデバイスとのコンテンツアイテムの同期を再開することができる。例えば、悪意のあるソフトウェアがクライアントデバイス240から除去されたことを確認するメッセージの受信に応答して、コンテンツ管理システム106は、クライアントデバイス240とのコンテンツアイテムの同期を再開することができる。
[00128]図13A及び図13Bは、例示の可能性のあるシステムの実施形態を示す。本技術を実施する場合に、より好適な実施の形態は当業者には明らかであろう。他のシステムの実施の形態が可能であることは、当業者には容易に理解されるであろう。
[00129]図13Aは、通常のシステムバス計算システムアーキテクチャ1300を示す。システムのコンポーネントはバス1305を使用して互いに電気的に通信可能となっている。例示システム1300は、処理ユニット(CPUすなわちプロセッサ)1310と、読み取り専用メモリ(ROM)1320やランダムアクセスメモリ(RAM)1325などのシステムメモリ1315を含む各種のシステムコンポーネントをプロセッサ1310に接続するシステムバス1305と、を含む。システム1300は、プロセッサ1310に直接接続されているか、近接しているか、あるいはその一部として統合されている高速メモリのキャッシュを含んでもよい。システム1300は、データをメモリ1315及び/又はストレージデバイス1330からキャッシュ1312へコピーして、プロセッサ1310が高速でアクセスできるようにしてもよい。このようにして、キャッシュは、データを待っている間のプロセッサ1310の遅延を回避するパフォーマンスブーストを提供してもよい。これら及びその他のモジュールは、各種の動作を行うようにプロセッサ1310を制御するか、又は制御するように構成されてもよい。その他のシステムメモリ1315が同様に使用可能であってもよい。メモリ1315は、異なる性能特性を持つ複数の異なるタイプのメモリを含んでもよい。プロセッサ1310は、いかなる汎用プロセッサを含んでもよいし、プロセッサ1310を制御するように構成されたハードウエアモジュール又はソフトウエアモジュール、例えばストレージデバイス1330の中に格納されたモジュール1 1332、モジュール2 1334、モジュール3 1336を含んでもよいし、実際のプロセッサ設計の中にソフトウエアインストラクションが組み込まれている専用プロセッサを含んでもよい。プロセッサ1310は本質的に、複数のコア又はプロセッサ、バス、メモリコントローラ、キャッシュ等を含んでいる、完全に自己完結型のコンピュータシステムであってもよい。複数のコアプロセッサは対称又は非対称であってもよい。
[00130]ユーザと計算デバイス1300との対話を可能にするため、入力デバイス1345は、音声用マイクロフォン、ジェスチャ又はグラフィカル入力用のタッチセンシティブスクリーン、キーボード、マウス、動作入力、音声等、いくつもの入力メカニズムを表してもよい。出力デバイス1335は、当業者には公知の複数の出力メカニズムのうちの1つ以上であってもよい。場合によっては、マルチモーダルシステムによって、ユーザが、計算デバイス1300と通信するための複数のタイプの入力を行うことが可能になる。通常、通信インタフェース1340が、ユーザ入力とシステム出力とを管理してもよい。特定のハードウェア構成上で動作することについての制限はなく、従って、本明細書での基本的な特徴は、改良型のハードウェア構成やファームウェア構成が開発されれば、それらと容易に置き換わりうる。
[00131]ストレージデバイス1330は不揮発性メモリである。ストレージデバイス430はハードディスクや、コンピュータによってアクセス可能でありかつデータを保持可能な他のタイプのコンピュータ可読媒体、例えば、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタルバーサタイルディスク、カートリッジ、ランダムアクセスメモリ(RAMs)1325、読み取り専用メモリ(ROM)1320、それらのハイブリッド、等であってもよい。
[00132]ストレージデバイス1330は、プロセッサ1310を制御するためのソフトウエアモジュール1332、1334、1336を含んでいてもよい。その他のハードウエアモジュール又はソフトウエアモジュールも考えられる。ストレージデバイス1330は、システムバス1305に接続されていてもよい。一態様では、或る機能を行うハードウエアモジュールは、プロセッサ1310、バス1305、ディスプレイ1335等のような、その機能を実行するのに必要なハードウエアコンポーネントと関連してコンピュータ可読媒体の中に格納されたソフトウエアコンポーネントを含んでもよい。
[00133]図13Bは、説明された方法を実行したりグラフィカルユーザインタフェース(GUI)を生成して表示したりする際に使用可能なチップセットアーキテクチャを有するコンピュータシステム1350を示す。コンピュータシステム1350は、開示された技術を実施するのに使用可能なコンピュータハードウエア、ソフトウエア及びファームウエアの一例である。システム1350はプロセッサ1310を含んでもよい。プロセッサ1310は、ソフトウエア、ファームウエア及び特定された計算を行うよう構成されたハードウエアを実行可能な、任意の数の物理的及び/又は論理的に別個のリソースを表す。プロセッサ1310は、プロセッサ1310からの入力及びプロセッサ1310への出力を制御可能なチップセット1360と通信しうる。本例では、チップセット1360はディスプレイなどの出力1365へ情報を出力し、ストレージデバイス1370に対して情報の読み書きを行ってもよい。ストレージデバイス1370は例えば磁気媒体やソリッドステート媒体を含んでもよい。チップセット1360は更に、RAM1375からのデータの読み取り、及びRAM1375へのデータの書き込みを行いうる。チップセット1360とのインタフェースのために、種々のユーザインタフェースコンポーネント1385とのインタフェースとなるブリッジ1380が提供されてもよい。そのようなユーザインタフェースコンポーネント1385は、キーボードやマイクロフォンやタッチ検出及び処理回路やマウスなどのポインティングデバイスなどを含んでもよい。一般に、システム1350への入力は種々のソースのうちの任意のものから来てもよく、又は機械により生成され及び/又は人により生成されてもよい。
[00134]チップセット1360は、異なる複数の物理的インタフェースを有しうるひとつ以上の通信インタフェース1390と連結されてもよい。そのような通信インタフェースは、有線及び無線ローカルエリアネットワークとのインタフェースと、ブロードバンド無線ネットワークとのインタフェースと、パーソナルエリアネットワークとのインタフェースと、を含んでもよい。本明細書で開示されるGUIを生成し表示し使用する方法のいくつかのアプリケーションは、物理的なインタフェースを介して順序付けられたデータセットを受信することを含むか、又はプロセッサ1310がストレージ1370又は1375に格納されるデータを解析することによって機械そのものにより生成されてもよい。さらに、機械はユーザインタフェースコンポーネント1385を介してユーザから入力を受け、プロセッサ1310を使用してこれらの入力を解釈することで、ブラウズ機能などの適切な機能を実行してもよい。
[00135]例示システム1300及び1350は1つ以上のプロセッサ1310を有してもよく、又は処理能力を高めるためにネットワーク化された計算デバイスのグループ又はクラスタの一部であってもよいことは理解されるであろう。
[00136]説明の明瞭化のため、ある例では、本技術はデバイスやデバイスコンポーネントやソフトウエアで実施される方法のステップ又はルーチンやハードウエアとソフトウエアとの組み合わせを含む機能ブロックを含む個々の機能ブロックを含むものとして提示されてもよい。
[00137]ここで説明されるステップ、動作、機能又はプロセスのいずれかは、単独で、又は他のデバイスと組み合わせて、ハードウェア及びソフトウェアモジュールの組合せによって実行又は実装されてもよい。一実施形態では、ソフトウェアモジュールは、クライアントデバイスのメモリ及び/又はコンテンツ管理システムの1つ以上のサーバに常駐し、プロセッサがモジュールに関連したソフトウェアを実行するときに1つ以上の機能を実施するソフトウェアである。上記メモリは非一時的コンピュータ可読媒体であってもよい。
[00138]ある実施の形態では、コンピュータ可読記憶デバイス、媒体及びメモリは、ビットストリームを含むケーブルや無線信号などを含んでもよい。しかしながら、言及される場合、非一時的コンピュータ可読記憶媒体は、エネルギやキャリア信号や電磁波や信号そのものなどの媒体を明示的に除外する。
[00139]上述の例に従った方法は、コンピュータ可読媒体に格納された、或いはコンピュータ可読媒体から利用可能な、コンピュータで実行可能な命令を使用して実施されうる。そのようなインストラクションは、例えば、汎用コンピュータ、専用コンピュータ、又は専用処理デバイスに所定の機能もしくは機能のグループを実行させるかそうでなければ実行するよう設定するインストラクション及びデータを含んでもよい。使用されるコンピュータリソースの一部はネットワークを介してアクセス可能であってもよい。コンピュータ実行可能命令は、例えば、バイナリや、アセンブリ言語などの中間フォーマット命令や、ファームウェアや、ソースコードであってもよい。命令、使用される情報、及び/又は説明された例に係る方法中に生成される情報を格納するのに使用されうるコンピュータ可読記憶媒体の例は、磁気又は光学ディスク、フラッシュメモリ、不揮発性メモリを備えるUSBデバイス、ネットワークストレージデバイスなどを含む。
[00140]これらの開示に従った方法を実施するデバイスは、ハードウェア、ファームウェア及び/又はソフトウェアを備えうるとともに、種々のフォームファクタのいずれかを取りうる。そのような形状ファクタの典型的な例は、ラップトップや、スマートフォンや、小さい形状ファクタのパーソナルコンピュータや、パーソナルデジタルアシスタントなどを含む。本明細書で説明される機能は周辺機器やアドインカードにおいて実現されてもよい。そのような機能は、更なる例として、単一のデバイスで達成する異なるチップ間又は異なるプロセス間の回路ボードでも実施されうる。
[00141]インストラクション、そのようなインストラクションを伝達するための媒体、そのようなインストラクションを実行するための計算リソース、及びそのような計算リソースをサポートするための他の構成は、本開示で説明される機能を提供するための手段である。
[00142]種々の例及び他の情報が、添付の請求項の範囲内の態様を説明するために使用されたが、当業者であれば多種多様な実施例を導くためにこれらの例を使用できるため、そのような例における具体的な特徴又は構成に基づいて請求項が限定されてはならない。さらに、いくつかの主題が構造的特徴及び/又は方法ステップの例に特有の言語で記述されたかもしれないが、添付の請求項で規定される主題はこれらの記述された特徴や行為に限定される必要はないことは理解されるべきである。例えば、そのような機能は異なるように分散されてもよいし、本明細書で特定されたもの以外のコンポーネントで実行されてもよい。むしろ、記述された特徴及びステップは、添付の請求項の範囲内のシステム及び方法のコンポーネントの例として開示される。