(57)【要約】  クライアントクラウド通信システム内でデータモデルを生成するための方法、システムおよびデバイスは、挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために、機械学習技法を適用するステップを含み得る。そのようなベクトルは、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にする最高の確率を有するクラシファイアモデルの第1のファミリー内のファクタを特定するために分析され得る。この分析に基づいて、モバイルデバイス挙動が悪性であるかまたは良性であるかを、判断されたファクタに基づいて、モバイルデバイスが最終的に判断することを可能にするのに適切であるものとして、著しく少数のファクタおよびデータポイントを特定する、クラシファイアモデルの第2のファミリーが生成され得る。
2015525382.tif 000002
【特許請求の範囲】
【請求項１】
クライアントクラウド通信システムにおいてデータモデルを生成する方法であって、
挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するステップと、
クラシファイアモデルの前記第1のファミリー内のどのファクタが、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にする高い確率を有するかを判断するステップと、
前記判断されたファクタに基づいて、低減された数のファクタおよびデータポイントを、前記モバイルデバイス挙動が悪性であるかまたは良性であるかを前記モバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するステップと、
クラシファイアモデルの前記第2のファミリーに基づいてモバイルデバイスのクラシファイアモジュールを生成するステップとを含む、方法。
【請求項２】
挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するステップが、
クラウドネットワークのサーバ内のディープなクラシファイア内にクラシファイアモデルの前記第1のファミリーを生成するステップを含む、請求項1に記載の方法。
【請求項３】
クラシファイアモデルの第2のファミリーを生成するステップが、
ネットワークサーバ内のリーンなクラシファイア内にクラシファイアモデルの前記第2のファミリーを生成するステップを含む、請求項1に記載の方法。
【請求項４】
クラシファイアモデルの第2のファミリーを生成するステップが、
前記モバイルデバイス内のリーンなクラシファイア内にクラシファイアモデルの前記第2のファミリーを生成するステップを含む、請求項1に記載の方法。
【請求項５】
低減された数のファクタおよびデータポイントを、前記モバイルデバイス挙動が悪性であるかまたは良性であるかを前記モバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するステップが、
前記判断されたファクタを挙動ベクトルの前記クラウドコーパスに適用することによってクラシファイアモデルの前記第2のファミリーを生成するステップを含む、請求項1に記載の方法。
【請求項６】
クライアントクラウド通信システム内のサーバであって、
挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するための手段と、
クラシファイアモデルの前記第1のファミリー内のどのファクタが、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にする高い確率を有するかを判断するための手段と、
前記判断されたファクタに基づいて、低減された数のファクタおよびデータポイントを、前記モバイルデバイス挙動が悪性であるかまたは良性であるかを前記モバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するための手段と、
クラシファイアモデルの前記第2のファミリーに基づいてモバイルデバイスのクラシファイアモジュールを生成するための手段とを含む、サーバ。
【請求項７】
挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するための手段が、
ディープなクラシファイア内にクラシファイアモデルの前記第1のファミリーを生成するための手段を含む、請求項6に記載のサーバ。
【請求項８】
クラシファイアモデルの第2のファミリーを生成するための手段が、
リーンなクラシファイア内にクラシファイアモデルの前記第2のファミリーを生成するための手段を含む、請求項6に記載のサーバ。
【請求項９】
クラシファイアモデルの第2のファミリーを生成するための手段が、
クラシファイアモデルの前記第1のファミリーと前記判断されたファクタとを前記モバイルデバイスに送信するための手段を含む、請求項6に記載のサーバ。
【請求項１０】
低減された数のファクタおよびデータポイントを、前記モバイルデバイス挙動が悪性であるかまたは良性であるかを前記モバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するための手段が、
前記判断されたファクタを挙動ベクトルの前記クラウドコーパスに適用することによってクラシファイアモデルの前記第2のファミリーを生成するための手段を含む、請求項6に記載のサーバ。
【請求項１１】
クライアントクラウド通信システム内のサーバであって、
動作を実行するようにプロセッサ実行可能命令で構成されたプロセッサを含み、前記動作が、
挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するステップと、
クラシファイアモデルの前記第1のファミリー内のどのファクタが、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にする高い確率を有するかを判断するステップと、
前記判断されたファクタに基づいて、低減された数のファクタおよびデータポイントを、前記モバイルデバイス挙動が悪性であるかまたは良性であるかを前記モバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するステップと、
クラシファイアモデルの前記第2のファミリーに基づいてモバイルデバイスのクラシファイアモジュールを生成するステップとを含む、サーバ。
【請求項１２】
挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するステップが、
ディープなクラシファイア内にクラシファイアモデルの前記第1のファミリーを生成するステップを含むように、前記プロセッサがプロセッサ実行可能命令で構成される、請求項11に記載のサーバ。
【請求項１３】
クラシファイアモデルの第2のファミリーを生成するステップが、
リーンなクラシファイア内にクラシファイアモデルの前記第2のファミリーを生成するステップを含むように、前記プロセッサがプロセッサ実行可能命令で構成される、請求項11に記載のサーバ。
【請求項１４】
クラシファイアモデルの第2のファミリーを生成するステップが、
クラシファイアモデルの前記第1のファミリーと前記判断されたファクタとを前記モバイルデバイスに送信するステップを含むように、前記プロセッサがプロセッサ実行可能命令で構成される、請求項11に記載のサーバ。
【請求項１５】
低減された数のファクタおよびデータポイントを、前記モバイルデバイス挙動が悪性であるかまたは良性であるかを前記モバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するステップが、
前記判断されたファクタを挙動ベクトルの前記クラウドコーパスに適用することによってクラシファイアモデルの前記第2のファミリーを生成するステップを含むように、前記プロセッサがプロセッサ実行可能命令で構成される、請求項11に記載のサーバ。
【請求項１６】
クライアントクラウド通信システムにおいてデータモデルを生成するための動作をサーバプロセッサに実行させるように構成されたサーバ実行可能ソフトウェア命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記動作が、
挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するステップと、
クラシファイアモデルの前記第1のファミリー内のどのファクタが、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にする高い確率を有するかを判断するステップと、
前記判断されたファクタに基づいて、低減された数のファクタおよびデータポイントを、前記モバイルデバイス挙動が悪性であるかまたは良性であるかを前記モバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するステップと、
クラシファイアモデルの前記第2のファミリーに基づいてモバイルデバイスのクラシファイアモジュールを生成するステップとを含む、非一時的コンピュータ可読記憶媒体。
【請求項１７】
挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するステップが、
クラウドネットワークのサーバ内のディープなクラシファイア内にクラシファイアモデルの前記第1のファミリーを生成するステップを含むような動作を前記サーバプロセッサに実行させるように、前記記憶されたサーバ実行可能ソフトウェア命令が構成される、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
クラシファイアモデルの第2のファミリーを生成するステップが、
ネットワークサーバ内のリーンなクラシファイア内にクラシファイアモデルの前記第2のファミリーを生成するステップを含むような動作を前記サーバプロセッサに実行させるように、前記記憶されたサーバ実行可能ソフトウェア命令が構成される、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
クラシファイアモデルの第2のファミリーを生成するステップが、
クラシファイアモデルの前記第1のファミリーと前記判断されたファクタとを前記モバイルデバイスに送信するステップを含むような動作を前記サーバプロセッサに実行させるように、前記記憶されたサーバ実行可能ソフトウェア命令が構成される、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
低減された数のファクタおよびデータポイントを、前記モバイルデバイス挙動が悪性であるかまたは良性であるかを前記モバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するステップが、
前記判断されたファクタを挙動ベクトルの前記クラウドコーパスに適用することによってクラシファイアモデルの前記第2のファミリーを生成するステップを含むような動作を前記サーバプロセッサに実行させるように、前記記憶されたサーバ実行可能ソフトウェア命令が構成される、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項２１】
デバイスプロセッサを備えるモバイルデバイスと、
動作を実行するようにサーバ実行可能命令によって構成されたサーバプロセッサを備えるサーバであって、前記動作が、
挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するステップと、
クラシファイアモデルの前記第1のファミリー内のどのファクタが、モバイルデバイス挙動が悪性であるかまたは良性であるかを前記モバイルデバイスが最終的に判断することを可能にする高い確率を有するかを判断するステップと、
クラシファイアモデルの前記第1のファミリーと前記判断されたファクタとを前記モバイルデバイスに送信するステップとを含む、サーバとを備え、
前記デバイスプロセッサが、
前記判断されたファクタに基づいて、低減された数のファクタおよびデータポイントを、前記モバイルデバイス挙動が悪性であるかまたは良性であるかを前記モバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するステップと、
クラシファイアモデルの前記第2のファミリーに基づいてモバイルデバイスのクラシファイアモジュールを生成するステップとを含む動作を実行するようにプロセッサ実行可能命令で構成される、クライアントクラウド通信システム。
【請求項２２】
モバイルデバイス挙動を段階的に評価する方法であって、
観測値を生成するためにモバイルデバイス挙動をモニタするステップと、
前記モバイルデバイス挙動が性能劣化させるか、良性であるか、または疑わしいかを判断するために、初期の低減された特徴セットモデルに前記観測値を適用するステップと、
前記モバイルデバイス挙動が疑わしいと判断されるとき、精細化された観測値を生成するために追加のまたは異なるモバイルデバイス挙動をモニタするステップと、
前記モバイルデバイス挙動が性能劣化させるか、または良性であるかを判断するために、後続の低減された特徴セットモデルに前記精細化された観測値を適用するステップとを含む、方法。
【請求項２３】
観測値を生成するためにモバイルデバイス挙動をモニタするための手段と、
前記モバイルデバイス挙動が性能劣化させるか、良性であるか、または疑わしいかを判断するために、初期の低減された特徴セットモデルに前記観測値を適用するための手段と、
前記モバイルデバイス挙動が疑わしいと判断されるとき、精細化された観測値を生成するために追加のまたは異なるモバイルデバイス挙動をモニタするための手段と、
前記モバイルデバイス挙動が性能劣化させるか、または良性であるかを判断するために、後続の低減された特徴セットモデルに前記精細化された観測値を適用するための手段とを含む、モバイルデバイス。
【請求項２４】
観測値を生成するためにモバイルデバイス挙動をモニタするステップと、
前記モバイルデバイス挙動が性能劣化させるか、良性であるか、または疑わしいかを判断するために、初期の低減された特徴セットモデルに前記観測値を適用するステップと、
前記モバイルデバイス挙動が疑わしいと判断されるとき、精細化された観測値を生成するために追加のまたは異なるモバイルデバイス挙動をモニタするステップと、
前記モバイルデバイス挙動が性能劣化させるか、または良性であるかを判断するために、後続の低減された特徴セットモデルに前記精細化された観測値を適用するステップとを含む動作を実行するようにプロセッサ実行可能命令で構成されるプロセッサを備える、モバイルデバイス。
【請求項２５】
モバイルデバイス挙動を段階的に評価するための動作をプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記動作が、
観測値を生成するためにモバイルデバイス挙動をモニタするステップと、
前記モバイルデバイス挙動が性能劣化させるか、良性であるか、または疑わしいかを判断するために、初期の低減された特徴セットモデルに前記観測値を適用するステップと、
前記モバイルデバイス挙動が疑わしいと判断されるとき、精細化された観測値を生成するために追加のまたは異なるモバイルデバイス挙動をモニタするステップと、
前記モバイルデバイス挙動が性能劣化させるか、または良性であるかを判断するために、後続の低減された特徴セットモデルに前記精細化された観測値を適用するステップとを含む、非一時的コンピュータ可読記憶媒体。
【請求項２６】
複数のモバイルデバイスから観測情報を受信するステップと、
前記複数のモバイルデバイスから受信された前記観測情報に基づいて、クラウドネットワークのサーバ内の挙動分類のグローバルモデルを更新するステップと、
前記グローバルモデルに基づいてクラシファイアの第1のファミリーを生成するために機械学習動作を実行するステップと、
クラシファイアの前記生成された第1のファミリーに対して、新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断するステップと、
クラシファイアの前記第1のファミリーに対して十分な変化が存在すると判断されるとき、クラシファイアの前記生成された第1のファミリー内のどの特徴が、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスプロセッサが最終的に判断することを可能にするために最良の特徴であるかを判断するステップと、
前記最良の特徴に基づいてクラシファイアの第2のファミリーを生成するステップと、
クラシファイアの前記生成された第2のファミリーに対して、追加の新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断するステップと、
クラシファイアの前記第2のファミリーに対して十分な変化が存在すると判断されるとき、追加のクラシファイアモデルを生成するステップと、
前記モバイルデバイスプロセッサに前記生成された追加のクラシファイアモデルを送るステップとを含む、方法。
【請求項２７】
複数のモバイルデバイスから観測情報を受信するための手段と、
前記複数のモバイルデバイスから受信された前記観測情報に基づいて、挙動分類のグローバルモデルを更新するための手段と、
前記グローバルモデルに基づいてクラシファイアの第1のファミリーを生成するために機械学習動作を実行するための手段と、
クラシファイアの前記生成された第1のファミリーに対して、新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断するための手段と、
クラシファイアの前記第1のファミリーに対して十分な変化が存在すると判断されるとき、クラシファイアの前記生成された第1のファミリー内のどの特徴が、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスプロセッサが最終的に判断することを可能にするために最良の特徴であるかを判断するための手段と、
前記最良の特徴に基づいてクラシファイアの第2のファミリーを生成するための手段と、
クラシファイアの前記生成された第2のファミリーに対して、追加の新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断するための手段と、
クラシファイアの前記第2のファミリーに対して十分な変化が存在すると判断されるとき、追加のクラシファイアモデルを生成するための手段と、
前記モバイルデバイスプロセッサに生成された追加のクラシファイアモデルを送るための手段とを含む、サーバ。
【請求項２８】
複数のモバイルデバイスから観測情報を受信するステップと、
前記複数のモバイルデバイスから受信された前記観測情報に基づいて、挙動分類のグローバルモデルを更新するステップと、
前記グローバルモデルに基づいてクラシファイアの第1のファミリーを生成するために機械学習動作を実行するステップと、
クラシファイアの前記生成された第1のファミリーに対して、新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断するステップと、
クラシファイアの前記第1のファミリーに対して十分な変化が存在すると判断されるとき、クラシファイアの前記生成された第1のファミリー内のどの特徴が、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスプロセッサが最終的に判断することを可能にするために最良の特徴であるかを判断するステップと、
前記最良の特徴に基づいてクラシファイアの第2のファミリーを生成するステップと、
クラシファイアの前記生成された第2のファミリーに対して、追加の新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断するステップと、
クラシファイアの前記第2のファミリーに対して十分な変化が存在すると判断されるとき、追加のクラシファイアモデルを生成するステップと、
前記モバイルデバイスプロセッサに前記生成された追加のクラシファイアモデルを送るステップとを含む動作を実行するように、プロセッサ実行可能命令で構成されたプロセッサを備える、サーバ。
【請求項２９】
サーバ実行可能ソフトウェア命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記サーバ実行可能ソフトウェア命令が、
複数のモバイルデバイスから観測情報を受信するステップと、
前記複数のモバイルデバイスから受信された前記観測情報に基づいて、クラウドネットワークのサーバ内の挙動分類のグローバルモデルを更新するステップと、
前記グローバルモデルに基づいてクラシファイアの第1のファミリーを生成するために機械学習動作を実行するステップと、
クラシファイアの前記生成された第1のファミリーに対して、新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断するステップと、
クラシファイアの前記第1のファミリーに対して十分な変化が存在すると判断されるとき、クラシファイアの前記生成された第1のファミリー内のどの特徴が、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスプロセッサが最終的に判断することを可能にするために最良の特徴であるかを判断するステップと、
前記最良の特徴に基づいてクラシファイアの第2のファミリーを生成するステップと、
クラシファイアの前記生成された第2のファミリーに対して、追加の新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断するステップと、
クラシファイアの前記第2のファミリーに対して十分な変化が存在すると判断されるとき、追加のクラシファイアモデルを生成するステップと、
前記モバイルデバイスプロセッサに前記生成された追加のクラシファイアモデルを送るステップとを含む動作をサーバプロセッサに実行させるように構成される、非一時的コンピュータ可読記憶媒体。
【請求項３０】
モバイルデバイスプロセッサを備えるモバイルデバイスと、
サーバプロセッサを備えるサーバとを備え、
前記サーバプロセッサが、
複数のモバイルデバイスから観測情報を受信するステップと、
前記複数のモバイルデバイスから受信された前記観測情報に基づいて、挙動分類のグローバルモデルを更新するステップと、
前記グローバルモデルに基づいてクラシファイアの第1のファミリーを生成するために機械学習動作を実行するステップと、
クラシファイアの前記生成された第1のファミリーに対して、新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断するステップと、
クラシファイアの前記第1のファミリーに対して十分な変化が存在すると判断されるとき、クラシファイアの前記生成された第1のファミリー内のどの特徴が、モバイルデバイス挙動が悪性であるかまたは良性であるかを前記モバイルデバイスプロセッサが最終的に判断することを可能にするために最良の特徴であるかを判断するステップと、
前記最良の特徴に基づいてクラシファイアの第2のファミリーを生成するステップと、
クラシファイアの前記生成された第2のファミリーに対して、追加の新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断するステップと、
クラシファイアの前記第2のファミリーに対して十分な変化が存在すると判断されるとき、追加のクラシファイアモデルを生成するステップと、
前記生成された追加のクラシファイアモデルを初期の低減された特徴セットモデルとして前記モバイルデバイスプロセッサに送るステップとを含む動作を実行するように、サーバ実行可能命令によって構成され、
前記モバイルデバイスプロセッサが、
前記サーバから前記初期の低減された特徴セットモデルを受信するステップと、
観測値を生成するためにモバイルデバイス挙動をモニタするステップと、
前記モバイルデバイス挙動が性能劣化させるか、良性であるか、または疑わしいかを判断するために、前記初期の低減された特徴セットモデルに前記観測値を適用するステップと、
前記モバイルデバイス挙動が疑わしいと判断されるとき、精細化された観測値を生成するために追加のまたは異なるモバイルデバイス挙動をモニタするステップと、
前記モバイルデバイス挙動が性能劣化させるか、または良性であるかを判断するために、後続の低減された特徴セットモデルに前記精細化された観測値を適用するステップと、
前記精細化された観測値と、前記精細化された観測値を適用した結果とを観測情報として前記サーバに送るステップとを含む動作を実行するように、プロセッサ実行可能命令で構成される、クライアントクラウド通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、参照によりそのすべての内容全体が、あらゆる目的のために本明細書に組み込まれる、2013年1月2日に出願した「Architecture  for  Client-Cloud  Behavior  Analyzer」と題する米国仮特許出願第61/748,220号、2012年5月14日に出願した「System,  Apparatus  and  Method  for  Adaptive  Observation  of  Mobile  Device  Behavior」と題する米国仮特許出願第61/646,  590号、および2012年8月15日に出願した「System,  Apparatus  and  Method  for  Adaptive  Observation  of  Mobile  Device  Behavior」と題する米国仮出願第61/683,  274号の優先権の利益を主張する。
【背景技術】
【０００２】
セルラー通信技術およびワイヤレス通信技術は、過去数年の間に爆発的な発展をとげてきた。この発展は、より優れた通信、ハードウェア、より大きいネットワーク、およびより信頼できるプロトコルによって促進されている。ワイヤレスサービスプロバイダは現在、向上し続ける多数の機能およびサービスを顧客に提供し、かつユーザがかつてない程度に情報、リソースおよび通信を利用するのを可能にすることができる。これらのサービス向上と歩調を合わせて、モバイル電子デバイス(たとえば、携帯電話、タブレット、ラップトップなど)は、これまでよりも強力かつ複雑になってきている。この複雑さは、悪性であるソフトウェア、ソフトウェアの衝突、ハードウェアの欠陥、および他の同様のエラーまたは現象が、モバイルデバイスの長期の継続的な性能および電力利用レベルに悪影響を与える新たな機会を生み出した。したがって、モバイルデバイスの長期の継続的な性能および電力利用レベルに悪影響を与える可能性がある条件および/またはモバイルデバイス挙動を特定して修正することは、消費者に対する便益である。
【発明の概要】
【課題を解決するための手段】
【０００３】
様々な態様は、挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するステップと、クラシファイアモデルの第1のファミリー内のどのファクタが、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にする高い確率を有するかを判断するステップと、判断されたファクタに基づいて、低減された数のファクタおよびデータポイントを、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するステップと、クラシファイアモデルの第2のファミリーに基づいてモバイルデバイスのクラシファイアモジュールを生成するステップとを含み得るデータモデルを、クライアントクラウド通信システム内に生成する方法を含む。
【０００４】
一態様では、挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するステップは、クラウドネットワークのサーバ内のディープなクラシファイア内にクラシファイアモデルの第1のファミリーを生成するステップを含み得る。さらなる態様では、クラシファイアモデルの第2のファミリーを生成するステップは、ネットワークサーバ内のリーンなクラシファイア内にクラシファイアモデルの第2のファミリーを生成するステップを含み得る。さらなる態様では、クラシファイアモデルの第2のファミリーを生成するステップは、モバイルデバイス内のリーンなクラシファイア内にクラシファイアモデルの第2のファミリーを生成するステップを含み得る。さらなる態様では、低減された数のファクタおよびデータポイントを、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するステップは、判断されたファクタを挙動ベクトルのクラウドコーパスに適用することによってクラシファイアモデルの第2のファミリーを生成するステップを含み得る。
【０００５】
さらなる態様は、挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するための手段と、クラシファイアモデルの第1のファミリー内のどのファクタが、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にする高い確率を有するかを判断するための手段と、判断されたファクタに基づいて、低減された数のファクタおよびデータポイントを、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するための手段と、クラシファイアモデルの第2のファミリーに基づいてモバイルデバイスのクラシファイアモジュールを生成するための手段とを有するサーバコンピューティングデバイスを含む。
【０００６】
一態様では、挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するための手段は、ディープなクラシファイア内にクラシファイアモデルの第1のファミリーを生成するための手段を含み得る。さらなる態様では、クラシファイアモデルの第2のファミリーを生成するための手段は、リーンなクラシファイア内にクラシファイアモデルの第2のファミリーを生成するための手段を含み得る。さらなる態様では、クラシファイアモデルの第2のファミリーを生成するための手段は、クラシファイアモデルの第1のファミリーと判断されたファクタとをモバイルデバイスに送信するための手段を含み得る。さらなる態様では、低減された数のファクタおよびデータポイントを、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するための手段は、判断されたファクタを挙動ベクトルのクラウドコーパスに適用することによってクラシファイアモデルの第2のファミリーを生成するための手段を含み得る。
【０００７】
さらなる態様は、挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するステップと、クラシファイアモデルの第1のファミリー内のどのファクタが、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にする高い確率を有するかを判断するステップと、判断されたファクタに基づいて、低減された数のファクタおよびデータポイントを、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するステップと、クラシファイアモデルの第2のファミリーに基づいてモバイルデバイスのクラシファイアモジュールを生成するステップとを含み得る動作を実行するために、プロセッサ実行可能命令で構成されたプロセッサを有するサーバコンピューティングデバイスを含む。
【０００８】
一態様では、挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するステップが、ディープなクラシファイア内にクラシファイアモデルの第1のファミリーを生成するステップを含み得るように、プロセッサがプロセッサ実行可能命令で構成され得る。さらなる態様では、クラシファイアモデルの第2のファミリーを生成するステップが、リーンなクラシファイア内にクラシファイアモデルの第2のファミリーを生成するステップを含み得るように、プロセッサがプロセッサ実行可能命令で構成され得る。さらなる態様では、クラシファイアモデルの第2のファミリーを生成するステップが、クラシファイアモデルの第1のファミリーと判断されたファクタとをモバイルデバイスに送信するステップを含み得るように、プロセッサがプロセッサ実行可能命令で構成され得る。さらなる態様では、低減された数のファクタおよびデータポイントを、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するステップが、判断されたファクタを挙動ベクトルのクラウドコーパスに適用することによってクラシファイアモデルの第2のファミリーを生成するステップを含み得るように、プロセッサがプロセッサ実行可能命令で構成され得る。
【０００９】
さらなる態様は、データモデルをクライアントクラウド通信システム内に生成するための動作をサーバプロセッサに実行させるように構成され得る、サーバ実行可能ソフトウェア命令を記憶した非一時的コンピュータ可読記憶媒体を含む。一態様では、動作は、挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するステップと、クラシファイアモデルの第1のファミリー内のどのファクタが、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にする高い確率を有するかを判断するステップと、判断されたファクタに基づいて、低減された数のファクタおよびデータポイントを、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するステップと、クラシファイアモデルの第2のファミリーに基づいてモバイルデバイスのクラシファイアモジュールを生成するステップとを含み得る。
【００１０】
一態様では、記憶されたサーバ実行可能ソフトウェア命令は、挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するステップが、クラウドネットワークのサーバ内のディープなクラシファイア内にクラシファイアモデルの第1のファミリーを生成するステップを含み得るような動作をサーバプロセッサに実行させるように構成され得る。さらなる態様では、記憶されたサーバ実行可能ソフトウェア命令は、クラシファイアモデルの第2のファミリーを生成するステップが、ネットワークサーバ内のリーンなクラシファイア内にクラシファイアモデルの第2のファミリーを生成するステップを含み得るような動作をサーバプロセッサに実行させるように構成され得る。さらなる態様では、記憶されたサーバ実行可能ソフトウェア命令は、クラシファイアモデルの第2のファミリーを生成するステップが、クラシファイアモデルの第1のファミリーと判断されたファクタとをモバイルデバイスに送信するステップを含み得るような動作をサーバプロセッサに実行させるように構成され得る。さらなる態様では、記憶されたサーバ実行可能ソフトウェア命令は、低減された数のファクタおよびデータポイントを、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するステップが、判断されたファクタを挙動ベクトルのクラウドコーパスに適用することによってクラシファイアモデルの第2のファミリーを生成するステップを含み得るような動作をサーバプロセッサに実行させるように構成され得る。
【００１１】
さらなる態様は、モバイルデバイスとサーバコンピューティングデバイスとを含むクライアントクラウド通信システムを含む。サーバプロセッサは、挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために機械学習技法を適用するステップと、クラシファイアモデルの第1のファミリー内のどのファクタが、モバイルデバイス挙動が悪性であるか良性であるかをモバイルデバイスが最終的に判断することを可能にする高い確率を有するかを判断するステップと、クラシファイアモデルの第1のファミリーと判断されたファクタとをモバイルデバイスに送信するステップとを含む動作を実行するように、サーバ実行可能命令で構成され得る。モバイルデバイスプロセッサは、判断されたファクタに基づいて、低減された数のファクタおよびデータポイントを、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にするのに適切であるものとして特定するクラシファイアモデルの第2のファミリーを生成するステップと、クラシファイアモデルの第2のファミリーに基づいてモバイルデバイスのクラシファイアモジュールを生成するステップとを含む動作を実行するように、プロセッサ実行可能命令で構成され得る。
【００１２】
さらなる態様は、観測値を生成するためにモバイルデバイス挙動をモニタするステップと、モバイルデバイス挙動が性能劣化させるか、良性であるか、または疑わしいかを判断するために観測値を初期の低減された特徴セットモデルに適用するステップと、モバイルデバイス挙動が疑わしいと判断されるときに精細化された観測値を生成するために追加のまたは異なるモバイルデバイス挙動をモニタするステップと、モバイルデバイス挙動が性能劣化させるかまたは良性であるかを判断するために精細化された観測値を後続の低減された特徴セットモデルに適用するステップとを含む、モバイルデバイス挙動を段階的に評価する方法を含む。
【００１３】
さらなる態様は、観測値を生成するためにモバイルデバイス挙動をモニタするための手段と、モバイルデバイス挙動が性能劣化させるか、良性であるか、または疑わしいかを判断するために観測値を初期の低減された特徴セットモデルに適用するための手段と、モバイルデバイス挙動が疑わしいと判断されるときに精細化された観測値を生成するために追加のまたは異なるモバイルデバイス挙動をモニタするための手段と、モバイルデバイス挙動が性能劣化させるかまたは良性であるかを判断するために、精細化された観測値を後続の低減された特徴セットモデルに適用するための手段とを有するモバイルコンピューティングデバイスを含む。
【００１４】
さらなる態様は、観測値を生成するためにモバイルデバイス挙動をモニタするステップと、モバイルデバイス挙動が性能劣化させるか、良性であるか、または疑わしいかを判断するために観測値を初期の低減された特徴セットモデルに適用するステップと、モバイルデバイス挙動が疑わしいと判断されるときに精細化された観測値を生成するために追加のまたは異なるモバイルデバイス挙動をモニタするステップと、モバイルデバイス挙動が性能劣化させるかまたは良性であるかを判断するために精細化された観測値を後続の低減された特徴セットモデルに適用するステップとを含む動作を実行するようにプロセッサ実行可能命令で構成されたプロセッサを含み得る動作を実行するようにプロセッサ実行可能命令で構成されたプロセッサを有するモバイルコンピューティングデバイスを含む。
【００１５】
さらなる態様は、モバイルデバイス挙動を段階的に評価するための動作をプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を記憶した非一時的コンピュータ可読記憶媒体を含む。動作は、観測値を生成するためにモバイルデバイス挙動をモニタするステップと、モバイルデバイス挙動が性能劣化させるか、良性であるか、または疑わしいかを判断するために観測値を初期の低減された特徴セットモデルに適用するステップと、モバイルデバイス挙動が疑わしいと判断されるときに精細化された観測値を生成するために追加のまたは異なるモバイルデバイス挙動をモニタするステップと、モバイルデバイス挙動が性能劣化させるかまたは良性であるかを判断するために、精細化された観測値を後続の低減された特徴セットモデルに適用するステップとを含み得る。
【００１６】
さらなる態様は、複数のモバイルデバイスから観測情報を受信し、複数のモバイルデバイスから受信された観測情報に基づいてクラウドネットワークのサーバ内の挙動分類のグローバルモデルを更新し、グローバルモデルに基づいてクラシファイアの第1のファミリーを生成するために機械学習動作を実行し、新しいモデルの生成を保証するのに十分な変化がクラシファイアの生成された第1のファミリーに対して存在するかどうかを判断し、クラシファイアの第1のファミリーに対して十分な変化が存在すると判断されるときに、クラシファイアの生成された第1のファミリー内のどの特徴が、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスプロセッサが最終的に判断することを可能にするために最良の特徴であるかを判断し、最良の特徴に基づいてクラシファイアの第2のファミリーを生成し、追加の新しいモデルの生成を保証するのに十分な変化がクラシファイアの生成された第2のファミリーに対して存在するかどうかを判断し、クラシファイアの第2のファミリーに対して十分な変化が存在すると判断されるときに追加のクラシファイアモデルを生成し、生成された追加のクラシファイアモデルをモバイルデバイスプロセッサに送る方法を含む。
【００１７】
さらなる態様は、複数のモバイルデバイスから観測情報を受信するための手段と、複数のモバイルデバイスから受信された観測情報に基づいて挙動分類のグローバルモデルを更新するための手段と、グローバルモデルに基づいてクラシファイアの第1のファミリーを生成するために機械学習動作を実行するための手段と、新しいモデルの生成を保証するのに十分な変化がクラシファイアの生成された第1のファミリーに対して存在するかどうかを判断するための手段と、クラシファイアの第1のファミリーに対して十分な変化が存在すると判断されるときに、クラシファイアの生成された第1のファミリー内のどの特徴が、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスプロセッサが最終的に判断することを可能にするために最良の特徴であるかを判断するための手段と、最良の特徴に基づいてクラシファイアの第2のファミリーを生成するための手段と、追加の新しいモデルの生成を保証するのに十分な変化がクラシファイアの生成された第2のファミリーに対して存在するかどうかを判断するための手段と、クラシファイアの第2のファミリーに対して十分な変化が存在すると判断されるときに追加のクラシファイアモデルを生成するための手段と、生成された追加のクラシファイアモデルをモバイルデバイスプロセッサに送るための手段とを含み得るサーバコンピューティングデバイスを含む。
【００１８】
さらなる態様は、複数のモバイルデバイスから観測情報を受信するステップと、複数のモバイルデバイスから受信された観測情報に基づいて挙動分類のグローバルモデルを更新するステップと、グローバルモデルに基づいてクラシファイアの第1のファミリーを生成するために機械学習動作を実行するステップと、新しいモデルの生成を保証するのに十分な変化がクラシファイアの生成された第1のファミリーに対して存在するかどうかを判断するステップと、クラシファイアの第1のファミリーに対して十分な変化が存在すると判断されるときに、クラシファイアの生成された第1のファミリー内のどの特徴が、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスプロセッサが最終的に判断することを可能にするために最良の特徴であるかを判断するステップと、最良の特徴に基づいてクラシファイアの第2のファミリーを生成するステップと、追加の新しいモデルの生成を保証するのに十分な変化がクラシファイアの生成された第2のファミリーに対して存在するかどうかを判断するステップと、クラシファイアの第2のファミリーに対して十分な変化が存在すると判断されるときに追加のクラシファイアモデルを生成するステップと、生成された追加のクラシファイアモデルをモバイルデバイスプロセッサに送るステップとを含み得る動作を実行するように、プロセッサ実行可能命令で構成されたプロセッサを含み得るサーバコンピューティングデバイスを含む。
【００１９】
さらなる態様は、複数のモバイルデバイスから観測情報を受信するステップと、複数のモバイルデバイスから受信された観測情報に基づいてクラウドネットワークのサーバ内の挙動分類のグローバルモデルを更新するステップと、グローバルモデルに基づいてクラシファイアの第1のファミリーを生成するために機械学習動作を実行するステップと、新しいモデルの生成を保証するのに十分な変化がクラシファイアの生成された第1のファミリーに対して存在するかどうかを判断するステップと、クラシファイアの第1のファミリーに対して十分な変化が存在すると判断されるときに、クラシファイアの生成された第1のファミリー内のどの特徴が、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスプロセッサが最終的に判断することを可能にするために最良の特徴であるかを判断するステップと、最良の特徴に基づいてクラシファイアの第2のファミリーを生成するステップと、追加の新しいモデルの生成を保証するのに十分な変化がクラシファイアの生成された第2のファミリーに対して存在するかどうかを判断するステップと、クラシファイアの第2のファミリーに対して十分な変化が存在すると判断されるときに追加のクラシファイアモデルを生成するステップと、生成された追加のクラシファイアモデルをモバイルデバイスプロセッサに送るステップとを含み得る動作をサーバコンピューティングデバイスに実行させるように構成されたプロセッサ実行可能命令を記憶した非一時的サーバ可読記憶媒体を含む。
【００２０】
さらなる態様は、モバイルデバイスとサーバとを含むクライアントクラウド通信システムを含む。サーバプロセッサは、複数のモバイルデバイスから観測情報を受信するステップと、複数のモバイルデバイスから受信された観測情報に基づいて挙動分類のグローバルモデルを更新するステップと、グローバルモデルに基づいてクラシファイアの第1のファミリーを生成するために機械学習動作を実行するステップと、新しいモデルの生成を保証するのに十分な変化がクラシファイアの生成された第1のファミリーに対して存在するかどうかを判断するステップと、クラシファイアの第1のファミリーに対して十分な変化が存在すると判断されるときに、クラシファイアの生成された第1のファミリー内のどの特徴が、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスプロセッサが最終的に判断することを可能にするために最良の特徴であるかを判断するステップと、最良の特徴に基づいてクラシファイアの第2のファミリーを生成するステップと、追加の新しいモデルの生成を保証するのに十分な変化がクラシファイアの生成された第2のファミリーに対して存在するかどうかを判断するステップと、クラシファイアの第2のファミリーに対して十分な変化が存在すると判断されるときに追加のクラシファイアモデルを生成するステップと、生成された追加のクラシファイアモデルを初期の低減された特徴セットモデルとしてモバイルデバイスプロセッサに送るステップとを含む動作を実行するように、サーバ実行可能命令で構成され得る。
【００２１】
モバイルデバイスプロセッサは、サーバから初期の低減された特徴セットモデルを受信するステップと、観測値を生成するためにモバイルデバイス挙動をモニタするステップと、モバイルデバイス挙動が性能劣化させるか、良性であるか、または疑わしいかを判断するために観測値を初期の低減された特徴セットモデルに適用するステップと、モバイルデバイス挙動が疑わしいと判断されるときに精細化された観測値を生成するために追加のまたは異なるモバイルデバイス挙動をモニタするステップと、モバイルデバイス挙動が性能劣化させるかまたは良性であるかを判断するために、精細化された観測値を後続の低減された特徴セットモデルに適用するステップと、精細化された観測値と精細化された観測値を適用した結果とを観測情報としてサーバに送るステップとを含む動作を実行するように、プロセッサ実行可能命令で構成され得る。
【００２２】
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本発明の例示的な態様を示し、上記の全般的な説明および下記の発明を実施するための形態とともに、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【００２３】
【図１】様々な態様において使用するのに好適な例示的な電気通信システムのネットワーク構成要素を示す通信システムのブロック図である。
【図２】特定のモバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが性能劣化させるか、疑わしいか、または良性であるかを判断するように構成された一態様のモバイルデバイスにおける例示的な論理構成要素および情報フローを示すブロック図である。
【図３】アクティブに悪性であるかもしくは不完全に記述されたソフトウェアアプリケーション、および/または疑わしいかもしくは性能劣化させるモバイルデバイス挙動を特定するために、クラウドサービス/ネットワークと連動して働くように構成されたネットワークサーバを有する一態様のシステムにおける例示的な構成要素および情報フローを示すブロック図である。
【図４】完全な特徴モデルからの特徴およびデータポイントのサブセットを含む1つまたは複数の低減された特徴モデルを生成する一態様の方法を示すプロセスフロー図である。
【図５Ａ】1つまたは複数の低減された特徴モデルに基づいてリーンなモバイルデバイスのクラシファイアモデルを構築する、一態様のシステムの方法を示すプロセスフロー図である。
【図５Ｂ】1つまたは複数の低減された特徴モデルに基づいてリーンなモバイルデバイスのクラシファイアモデルを構築する、一態様のシステムの方法を示すプロセスフロー図である。
【図６】モバイルデバイス挙動を段階的に評価する一態様の漸進的分析方法を示すプロセスフロー図である。
【図７】複数のモバイルデバイスから更新情報(update)を受信するように構成されたネットワークサーバを含む一態様のシステムにおける例示的な構成要素および情報フローを示すブロック図である。
【図８Ａ】複数のモバイルデバイスから受信された情報で継続的に更新される挙動ベクトルのクラウドコーパスからリーンなモバイルデバイスのクラシファイアモデルを構築する一態様のサーバ/システム方法を示すプロセスフロー図である。
【図８Ｂ】複数のモバイルデバイスから受信された情報で継続的に更新される挙動ベクトルのクラウドコーパスからリーンなモバイルデバイスのクラシファイアモデルを構築する一態様のサーバ/システム方法を示すプロセスフロー図である。
【図９】一態様による、動的および適応的観測を実行するように構成された観測器モジュール内の例示的な論理構成要素および情報フローを示すブロック図である。
【図１０】別の態様による、観測器デーモンを実装するコンピューティングシステム内の論理構成要素および情報フローを示すブロック図である。
【図１１】モバイルデバイス上で適応的観測を実行するための一態様の方法を示すプロセスフロー図である。
【図１２】一態様において使用するのに好適なモバイルデバイスの構成要素のブロック図である。
【図１３】一態様において使用するのに好適なサーバデバイスの構成要素のブロック図である。
【発明を実施するための形態】
【００２４】
様々な態様について添付の図面を参照して詳細に説明する。可能な場合はどこでも、同じ参照番号は、図面全体を通して同じまたは同様の部分を指すために使用される。特定の例および実装形態に行われる参照は、説明を目的とし、本発明の範囲または特許請求の範囲を限定するものではない。
【００２５】
「例示的な」という言葉は、「例、事例、または例示として機能すること」を意味するように本明細書で使用される。本明細書に「例示的な」と記載されるいかなる実装形態も、必ずしも他の実装形態よりも好ましいか、または有利であると解釈されるべきではない。
【００２６】
いくつかの異なるセルラーおよびモバイル通信サービスおよび規格が利用可能であるか、または将来考えられ、それらのすべてが様々な態様を実装し、様々な態様から利益を受けることができる。そのようなサービスおよび規格は、たとえば、第3世代パートナーシッププロジェクト(3GPP)、ロングタームエボリューション(LTE)システム、第3世代ワイヤレスモバイル通信技術(3G)、第4世代ワイヤレスモバイル通信技術(4G)、広域移動通信システム(GSM(登録商標))、ユニバーサルモバイル通信システム(UMTS)、3GSM(登録商標)、汎用パケット無線サービス(GPRS)、符号分割多元接続(CDMA)システム(たとえば、cdmaOne、CDMA1020TM)、GSM(登録商標)進化型高速データレート(EDGE:enhanced  data  rates  for  GSM(登録商標)  evolution)、高度移動電話システム(AMPS:advanced  mobile  phone  system)、デジタルAMPS(IS-136/TDMA)、エボリューションデータ最適化(EV-DO)、digital  enhanced  cordless  telecommunications(DECT)、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX:worldwide  interoperability  for  microwave  access)、ワイヤレスローカルエリアネットワーク(WLAN)、Wi-Fi  Protected  Access  I  &  II(WPA、WPA2)、およびintegrated  digital  enhanced  network(iden)を含む。これらの技術の各々は、たとえば、音声、データ、シグナリング、および/またはコンテンツメッセージの送信および受信を伴う。個々の電気通信規格または技術に関連した用語および/または技術的詳細に対するいかなる参照も、例示目的にすぎず、請求項の文言に具体的に記載されない限り、請求項の範囲を特定の通信システムまたは技術に限定することは意図していないことを理解されたい。
【００２７】
「モバイルコンピューティングデバイス」および「モバイルデバイス」という用語は、携帯電話、スマートフォン、パーソナルまたはモバイルマルチメディアプレーヤー、携帯情報端末(PDA)、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、ウルトラブック、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応携帯電話、ワイヤレスゲームコントローラ、ならびに、性能が重要であるメモリとプログラム可能プロセッサを含み、節電方法が有益であるようなバッテリー電源で動作する同様の個人用電子デバイスのうちの、任意の1つまたはすべてを指すように、本明細書では交換可能に使用される。様々な態様は、限られたリソースを有し、バッテリーで動作する、スマートフォンなどのモバイルコンピューティングデバイスに対して特に有用であるが、これらの態様は、概して、プロセッサを含み、アプリケーションプログラムを実行する任意の電子デバイスにおいて有用である。
【００２８】
「性能劣化」という用語は、本明細書では、長い処理時間、短いバッテリー寿命、個人データの喪失、悪性である経済活動(たとえば、無許可の報奨金のSMSメッセージを送信すること)、スパイまたはボットネット活動などのためにモバイルデバイスを乗っ取ることまたは電話を利用することに関する動作など、多種多様な望ましくないモバイルデバイスの動作および特性を指すために使用される。
【００２９】
「システムオンチップ」(SOC)という用語は、単一の基板に統合された複数のリソースおよび/またはプロセッサを含む単一の集積回路(IC)チップを指すように本明細書で使用される。単一のSOCは、デジタル、アナログ、混合信号、および高周波機能のための回路を含み得る。単一のSOCは、任意の数の汎用および/または専用のプロセッサ(デジタル信号プロセッサ、モデムプロセッサ、ビデオプロセッサなど)、メモリブロック(たとえば、ROM、RAM、Flashなど)、およびリソース(たとえば、タイマー、電圧調整器、発振器など)も含み得る。SOCは、統合されたリソースおよびプロセッサを制御するための、また周辺デバイスを制御するためのソフトウェアも含み得る。
【００３０】
「マルチコアプロセッサ」という用語は、プログラム命令を読み取り、実行するように構成された2つ以上の独立した処理コア(たとえば、CPUコア)を含む単一の集積回路(IC)チップまたはチップパッケージを指すように本明細書で使用される。SOCは、複数のマルチコアプロセッサを含むことができ、SOCにおける各プロセッサは、コアと呼ばれ得る。「マルチプロセッサ」という用語は、本明細書では、プログラム命令を読み出して実行するように構成された2つ以上の処理ユニットを含むシステムまたはデバイスを指すために使用される。
【００３１】
概して、モバイルデバイスの性能および電力効率は、時間がたつにつれて劣化する。近年、アンチウイルス会社(たとえば、McAfee、Symantecなど)は、この劣化を遅くすることを狙いとするモバイル用アンチウイルス、ファイアウォール、および暗号化製品のマーケティングを開始した。しかしながら、これらの解法の多くは、モバイルデバイス上で計算負荷の大きいスキャニングエンジンを周期的に実行することに依存しており、そのことが、モバイルデバイスの処理およびバッテリーリソースの多くを消費し、モバイルデバイスを遅くさせるかまたはより長い時間期間の間使えなくさせ、および/または場合によってはユーザエクスペリエンスを劣化させる。加えて、これらの解法は、一般に、知られているウイルスおよびマルウェアの検出に限定され、複数の複雑なファクタおよび/または(たとえば、性能劣化がウイルスまたはマルウェアによって引き起こされない場合に)経時的なモバイルデバイスの劣化に寄与するようにしばしば結びつく相互作用に対処しない。これらのおよび他の理由によって、既存のアンチウイルス、ファイアウォールおよび暗号化製品は、経時的なモバイルデバイスの劣化に寄与することがある多くのファクタを特定するため、モバイルデバイスの劣化を予防するため、または経年劣化したモバイルデバイスをそれの初期状態に効率的に回復させるために十分な解法を提供していない。
【００３２】
コンピューティングデバイス上で実行されるプロセスまたはアプリケーションプログラムの挙動をモデル化するために、様々な解法が存在し、そのような挙動モデルは、コンピューティングデバイス上で悪性であるプロセス/プログラムと良性であるプロセス/プログラムとの間を区別するために使用され得る。しかしながら、これらの既存のモデリング解法は、概して、それらすべての量がモバイルデバイス上に十分にない、処理、メモリおよびエネルギーのリソースのかなりの量を消費する、計算負荷の大きいプロセスの実行を必要とするので、モバイルデバイス上での使用には適さない。加えて、これらの解法は、概して、個別のアプリケーションプログラムまたはプロセスの挙動を評価することに限定され、性能劣化するモバイルデバイス挙動の正確なまたは完全なモデルを提供しない。これらのおよび他の理由によって、既存のモデリング解法は、経時的なモバイルデバイスの劣化に寄与することがある多くのファクタを特定するため、モバイルデバイスの劣化を予防するため、または経年劣化したモバイルデバイスをそれの初期状態に効率的に回復させるためには十分でない。
【００３３】
様々な他の解法が、機械学習技法を使用することによって悪性であるソフトウェアを検出するために存在する。これらの解法は、一般に、クラウドベースのサーバ内のアプリケーションを介してソフトウェアアプリケーションまたはプロセスを分析する。そのような分析は、ソフトウェアアプリケーションの特徴を抽出するための数学的変換、および次いでその特徴を前に生成された機械学習モデル上で実行することから成ることがある。モデルの実行は、現在のアプリケーションの実行によって得られた新しい情報を用いて現在のモデルを更新することによって、現在のモデルを改良することを可能にする。
【００３４】
しかしながら、これらの解法の多くは、非常に大きいデータのコーパスを評価することを必要とするか、個別のアプリケーションプログラムまたはプロセスを評価することに限定されるか、またはモバイルデバイスにおいて計算負荷の大きいプロセスの実行を必要とするので、モバイルデバイス上の使用には適さない。たとえば、既存の解法は、数学的変換のアプリケーションから導出された特徴ベクトルを入力として取り出すモデルを導くために、訓練データのコーパスを個別のソフトウェアアプリケーションに適用することがある。しかしながら、そのような解法は、一般に、一度に単一のソフトウェアアプリケーションを分析するだけであり、性能劣化させるモバイルデバイス挙動の完全なモデルを分析しない。さらに、そのような解法は、挙動ベクトルの大きいコーパスを記述するクラシファイアモデルの第1のファミリーを生成することと、クラシファイアモデルの第1のファミリー内のどのファクタが、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスが最終的に判断することを可能にする最高の確率を有するかを判断することと、判断されたファクタに基づいてクラシファイアモデルの第2のファミリーを生成することとを行うために機械学習技法を適用することはない。同じく、そのような解法は、新しいまたは追加のデータ/挙動モデルの生成を保証するのに十分な変化が、クラシファイアの第1のファミリーと第2のファミリーに対して存在するかどうかを判断することはない。これらおよび他の理由によって、既存の機械学習技法は、近代的なモバイルデバイスの複雑ではあるがリソースを制約されたシステムにおける使用には十分に好適ではない。
【００３５】
不十分に設計されたソフトウェアアプリケーション、マルウェア、ウイルス、断片的メモリ、背景処理などを含め、モバイルデバイスの性能および電力利用のレベルの経時的な劣化に寄与することがある様々なファクタが存在する。しかしながら、近代的なモバイルデバイスの複雑さゆえに、そのような問題の原因を正確かつ効率的に特定すること、および/または特定された問題に対して十分な改善措置を提供することは、ユーザ、オペレーティングシステム、および/またはアプリケーションプログラム(たとえば、アンチウイルスソフトウェアなど)にとってますます困難となっている。結果として、モバイルデバイスの性能および電力利用のレベルにおける経時的な劣化を防止するため、または経年劣化したモバイルデバイスをそれの元の性能および電力利用のレベルに回復させるための改善措置を、モバイルデバイスユーザは、現在、ほとんど持っていない。
【００３６】
様々な態様が、モバイルデバイスの性能および/または電力利用のレベルをしばしば経時的に劣化させる条件および/またはモバイルデバイス挙動を効率的に特定し、分類し、モデリングし、防止し、および/または修正するためのネットワークサーバ、モバイルデバイス、システム、および方法を提供する。そのような条件および是正措置についての情報を「クラウド」などの中央データベースに記憶し、モバイルデバイスがこのデータベースに記憶されている情報にアクセスして使用することを可能にすることによって、様々な態様が、そのような分析のすべてが各モバイルデバイス内で独立に達成される場合よりもずっと速やかにかつ低電力消費で、性能を限定する望ましくない動作条件に対してモバイルデバイスが反応することを可能にする。
【００３７】
上述のように、モバイルデバイスは、比較的限定された処理、メモリおよびエネルギーのリソースを有する、リソースを制限されたシステムである。同じく、上述のように、近代的なモバイルデバイスは複雑なシステムであり、モバイルデバイスの劣化の原因または根源を適切に特定するために分析を必要とする数千の特徴/ファクタおよび数十億のデータポイントが存在することがある。これらの制約によって、近代的なモバイルデバイスの複雑でありながらリソースを制約されたシステムの性能および/または電力利用のレベルを劣化させることがある様々なプロセス、挙動、またはファクタ(またはそれらの組合せ)のすべてをモニタ/観測することは、しばしば実行可能ではない。
【００３８】
これらの事実を考慮してより良い性能を提供するために、様々な態様は、モバイルデバイスの性能および電力利用のレベルの経時的な劣化に寄与することがあるファクタを知的かつ効率的に特定するために、クラウドサービスまたはネットワークと連動して働くように構成されたモバイルデバイスおよびネットワークサービス(たとえば、アンチウイルスパートナー、セキュリティパートナーなど)を含む。様々な態様は、モバイルデバイスの処理、メモリまたはエネルギーのリソースの量を過剰に消費することなく、モバイルデバイスに対して性能を劣化させるファクタを特定できる。
【００３９】
一態様では、モバイルデバイスの観測プロセス、デーモン、モジュール、またはサブシステム(本明細書では総称的に「モジュール」と呼ぶ)が、モバイルデバイスシステムの様々なレベルにおける様々なアプリケーションプログラミングインターフェース(API)を取り付けるかまたは連携させ、取り付けられたAPIから挙動情報を収集することができる。一態様では、モバイルデバイスはまたアナライザモジュールを含み、アナライザモジュールは、1つまたは複数のクラシファイアモジュールおよび/または1つまたは複数のクラシファイアを含む1つのクラシファイアモジュールを生成することができる。観測器モジュールは、収集された挙動情報をモバイルデバイスのクラシファイアモジュールおよび/またはアナライザモジュールに、(たとえば、メモリ書込み動作、関数呼出しなどを介して)伝達でき、モバイルデバイスは、収集された挙動情報を分析および/または分類し、挙動ベクトルを生成し、挙動ベクトルおよび様々な他のモバイルデバイスサブシステムから収集された情報に基づいて空間相関および/または時間相関を生成し、特定のモバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが良性であるか、疑わしいか、または悪性である/性能劣化させるかを判断することができる。
【００４０】
一態様では、アナライザモジュールおよび/またはクラシファイアモジュールは、モバイルデバイスのアナライザモジュールの中に、または一部として含まれ得る。一態様では、1つまたは複数のクラシファイアが、数千の特徴と数十億のエントリとを含み得る訓練データセットの関数として生成され得る。一態様では、1つまたは複数のクラシファイアが、特定のモバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが良性であるか、疑わしいか、または悪性である/性能劣化させるかを判断するのに最も適切である特徴/エントリのみを含む、低減された訓練データセットから生成され得る。
【００４１】
一態様では、モバイルデバイスのアナライザモジュールおよび/またはクラシファイアモジュールは、モバイルデバイス挙動が良性であるか、疑わしいか、または悪性である/性能劣化させるかを判断するために、観測器モジュールによって収集された挙動情報にデータ、アルゴリズム、および/または挙動モデルを適用するステップを含み得る実時間分析動作を実行するように構成され得る。挙動が良性または悪性のいずれであるかを分類するまたは最終的に判断するのに十分な情報をクラシファイアが持たないとき、クラシファイアモジュールは、モバイルデバイス挙動が疑わしいと判断できる。
【００４２】
一態様では、デバイスの挙動が疑わしいとクラシファイアモジュールが判断するとき、モバイルデバイスのクラシファイアモジュールは、それの実時間分析動作の結果を観測器モジュールに伝達するように構成され得る。観測器モジュールは、それの観測の細分性(granularity)(すなわち、モバイルデバイス挙動が観測される詳細さ(detail)のレベル)の調節および/またはクラシファイアモジュールから受信された情報(たとえば、実時間分析動作の結果)に基づいて観測される挙動の変更を行い、新しいまたは追加の挙動情報を生成または収集し、かつさらなる分析/分類のために新しい/追加の情報をクラシファイアモジュールに送ることができる。
【００４３】
観測器モジュールとクラシファイアモジュールとの間のそのようなフィードバック通信(たとえば、クラシファイアモジュールがそれの実時間分析動作の結果を観測器モジュールに送ること、および観測器モジュールが更新された挙動情報をクラシファイアモジュールに送ること)は、疑わしいもしくは性能劣化させるモバイルデバイス挙動の原因が特定されるまで、処理もしくはバッテリー消費の閾値に到達するまで、または観測細分性をさらに増加させても疑わしいまたは性能劣化させるモバイルデバイス挙動の原因が特定され得ないとモバイルデバイスプロセッサが判断するまで、モバイルデバイスプロセッサが繰り返し、観測の細分性を増加させる(すなわち、より微細にまたはより詳細に観測する)ことまたは観測される特徴/挙動を変更することを可能にすることができる。そのようなフィードバック通信はまた、モバイルデバイスプロセッサが、モバイルデバイスの処理、メモリ、またはエネルギーのリソースの量を過剰に消費することなく、データ/挙動モデルをモバイルデバイス内でローカルに調節または修正することを可能にする。
【００４４】
様々な態様では、モバイルデバイスは、オフラインクラシファイアおよび/または実時間オンラインクラシファイアを含むネットワークサーバと通信するように構成され得る。オフラインクラシファイアは、クラウドサービス/ネットワークから受信された情報に基づいてロバストなデータ/挙動モデルを生成できる。実時間オンラインクラシファイアは、クラウドサービス/ネットワークから受信された情報から生成された、より大きくより複雑な挙動モデルを分析することに基づいてリーンなデータ/挙動モデルを生成できる。オンラインとオフラインのクラシファイアの両方は、特定のモバイルデバイスに対するクラウドサービス/ネットワークによって利用可能にされた、情報の低減されたサブセットを含むデータ/挙動モデルを生成できる。一態様では、リーンなデータ/挙動モデルを生成するステップは、1つまたは複数の低減された特徴モデル(RFM)を生成するステップを含み得る。
【００４５】
ネットワークサーバは、生成されたリーンなデータ/挙動モデルをモバイルデバイスに送ることができる。モバイルデバイスは、リーンなデータ/挙動モデルを受信して実装するか、適用するかまたは使用して、疑わしいまたは性能劣化させるモバイルデバイス挙動、ソフトウェアアプリケーション、プロセスなどを特定することができる。リーンなデータ/挙動モデルは、クラウドサービス/ネットワークによって利用可能にされた関連情報の低減されたサブセットを含むので、モバイルデバイスは、モバイルデバイスの処理、メモリ、またはエネルギーのリソースの量を過剰に消費することなく、モバイルデバイス挙動が悪性である/性能劣化させるか、または良性であるかを判断するために、リーンなデータ/挙動モデルを使用できる。次いで、モバイルデバイスは、特定された性能劣化させるモバイルデバイス挙動がモバイルデバイスの性能および電力利用のレベルを劣化させるのを修正または防止できる。
【００４６】
様々な態様では、ネットワークサーバは、機械学習技法および/またはコンテキストモデリング技法を実行すること、遂行すること、および/または多くのモバイルデバイスによって提供される挙動情報および/または挙動分析の結果に適用することによって、リーンなデータ/挙動モデルを生成または更新するように構成され得る。したがって、ネットワークサーバは、多数の報告を多くのモバイルデバイスから受信し、そのようなクラウドソース情報を分析し、統合整理し、場合によっては使用可能な情報に、特にすべてのモバイルデバイスによって使用またはアクセスされ得るリーンなデータセットまたは集中的挙動モデルに変化させることができる。ネットワークサーバは、新しい挙動/分析報告がモバイルデバイスから受信されるにつれて既存のリーンなデータ/挙動モデルを継続的に再評価すること、ならびに/あるいは(たとえば、前の遂行、挙動モデルの前の適用などから収集された)過去の(historical)情報、新しい情報、機械学習、コンテキストモデリング、および利用可能な情報、モバイルデバイス状態、環境条件、ネットワーク条件、モバイルデバイス性能、バッテリー消費レベルにおいて検出された変化などに基づいて新しいまたは更新されたリーンなデータ/挙動モデルを生成することができる。
【００４７】
一態様では、ネットワークサーバは、初期の特徴セット(たとえば、初期の低減された特徴モデル)と1つまたは複数の後続の特徴セット(たとえば、後続の低減された特徴モデル)とを含むために、リーンなデータ/挙動モデルを生成するように構成され得る。初期の特徴セットは、特定のモバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが悪性である/性能劣化させるかまたは良性であるかをモバイルデバイスのクラシファイアモジュールが最終的に判断することを可能にする最高の確率を有するように判断された情報を含み得る。後続の各特徴セットは、モバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが悪性である/性能劣化させるかまたは良性であることを最終的に判断する、最高に次ぐ確率を有するように判断された情報を含み得る。後続の各特徴セットは、それの前の特徴セットよりも大きいデータセットを含み得、したがってデータ/挙動モデルを適用することに関連する性能および電力消費のコストは、後続の各特徴セットに対して漸次増加する。
【００４８】
一態様では、モバイルデバイスのクラシファイアモジュールは、モバイルデバイスプロセッサがモバイルデバイス挙動を段階的に評価することを可能にする漸進的挙動モデル(またはクラシファイア)を含むかまたは実装することができる。たとえば、クラシファイアモジュールは、最初に初期の特徴セットを含むリーンなデータ/挙動モデルを適用し、次いで、モバイルデバイス挙動が良性であるまたは悪性である/性能劣化させることをクラシファイアモジュールが判断するまで漸次大きくなる特徴セットを含むモデルを適用するように構成され得る。次いで、クラシファイアモジュールは、それの動作の結果、および/または各モデルのアプリケーションに関連する成功率をネットワークサーバに送ることができる。ネットワークサーバは、リーンなデータ/挙動モデル(たとえば、各モデル内に含まれる特徴セットなど)を更新するためにそのような結果を使用し、それにより、報告されたすべてのモバイルデバイスの結果/成功率に基づいてデータおよび/またはモデルを精細化することができる。次いで、ネットワークサーバは、更新されたリーンなデータ/挙動モデルをモバイルデバイスに対して利用可能にし、それによりモバイルデバイスがリーンなデータ/挙動モデルへのアクセスを有することができる。この方式では、モバイルデバイスは、他のモバイルデバイスの挙動および結論から瞬時に利益を得ることができる。
【００４９】
一態様では、ネットワークサーバは、オンラインおよびオフラインクラシファイア、モデル発生器、および/またはクラウドモデルを継続的に更新するように構成され得る。ネットワークサーバは、変化が新しいモデルの生成を保証するのに実質的に十分であるときと、変化が無視され得るときとを知的に判断するように構成され得る。たとえば、ネットワークサーバは、多くの異なるモバイルデバイスから更新情報を受信し、クラシファイアの第1のファミリーを生成するために機械学習動作を実行し、クラシファイアの生成された第1のファミリーに対して、新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断し、クラシファイアの第1のファミリーに対して十分な変化が存在すると判断されるとき、クラシファイアの生成された第1のファミリー内のどの特徴が(たとえば、特徴選択アルゴリズムを介して)最良の特徴であるかを判断し、最良の特徴に基づいてクラシファイアの第2のファミリーを生成し、クラシファイアの生成された第2のファミリーに対して十分な変化が存在するかどうかを判断し、クラシファイアの第2のファミリーに対して十分な変化が存在すると判断されるとき、モバイルデバイスのクラシファイアのデータ/挙動モデルを生成/更新することができる。
【００５０】
様々な態様は、クラウド内のディープなクラシファイアと、モバイルデバイス上のオンライン実時間電力効率のよい実施のためのリーンなクラシファイアとを含む、クライアントクラウドシステムとネットワークアーキテクチャとを含み得る。一態様では、リーンなクラシファイアは、ディープなクラシファイアよりも(たとえば、評価されるファクタの数、処理時間などに関して)1桁以上小さくなり得る。たとえば、一態様のクライアントクラウドシステムは、500のファクタを評価するディープなクラシファイアと、50のファクタを評価するリーンなクラシファイアとを含み得る。同様に、一態様のクライアントクラウドシステムは、5000億のデータポイントを評価するディープなクラシファイアと、500億のデータポイントを評価するリーンなクラシファイアとを含み得る。
【００５１】
収集された挙動情報に対してクラシファイアまたはデータ/挙動モデルを遂行/適用することの各々は、既存のおよび将来のクラシファイアおよびデータ/挙動モデルを改良するのに好適な情報を提供できる。たとえば、モバイルデバイス上に収集された挙動情報にデータ/挙動モデルを適用した結果が、1Mbpsを超えるネットワーク使用を悪性であるとして特定し、モニタされたプロセスがネットワークリソースの1.5Mbpsを消費しているとモバイルデバイスが判断する場合、システムは、実際のモデルを変更することなく、悪性であるものとプロセスにラベル付けし、適応されるモデルを強化する(たとえば、モデルの正確さに与えられる重みを増加するなど)ことができる。別の例として、ネットワークリソースの0.5Mbpsを消費しているアプリケーションが(他の属性によって)悪性であるとモバイルデバイスが判断する場合、システムは、元のクラウドモデル、リーンモデル、または両方を修正するために閾値を0.9Mbpsに引き下げ得る。
【００５２】
様々な態様は、モバイルデバイス挙動の段階的評価を可能にするクラシファイアの漸進的モデルを適用するように構成されたモバイルデバイスを含み得る。
【００５３】
様々な態様は、新しい観測値に基づいてクラウド内のグローバルモデルを更新し、十分な(enough/sufficient)変化が存在するときにモバイルデバイスのモデルを更新するのに好適なシステムを含み得る。
【００５４】
様々な態様は、図1に示す例示的な通信システム100などの様々な通信システム内で実装され得る。典型的なセル電話ネットワーク104は、ネットワーク運用センタ108に結合された複数のセル基地局106を含み、ネットワーク運用センタ108は、たとえば電話陸上通信線(たとえば、図示していないPOTSネットワーク)およびインターネット110を介して、モバイルデバイス102(たとえば、セルフォン、ラップトップ、タブレットなど)と他のネットワーク宛先との間のボイス呼およびデータを接続するように動作する。モバイルデバイス102と電話ネットワーク104との間の通信は、4G、3G、CDMA、TDMA、LTEおよび/または他のセル電話通信技術などの双方向ワイヤレス通信リンク112を介して遂行され得る。電話ネットワーク104は、インターネット110への接続を提供するネットワーク運用センタ108に結合されるかまたはネットワーク運用センタ108内の、1つまたは複数のサーバ114も含み得る。
【００５５】
通信システム100は、電話ネットワーク104およびインターネット110に接続されたネットワークサーバ116をさらに含み得る。ネットワークサーバ116と電話ネットワーク104との間の接続は、インターネット110を介するかまたは(破線の矢印で示すように)私的ネットワークを介することができる。ネットワークサーバ116はまた、クラウドサービスプロバイダネットワーク118のネットワークインフラストラクチャ内のサーバとして実装され得る。ネットワークサーバ116とモバイルデバイス102との間の通信は、電話ネットワーク104、インターネット110、私的ネットワーク(図示せず)、またはそれらの任意の組合せを介して達成され得る。
【００５６】
ネットワークサーバ116は、モバイルデバイス102にリーンなデータ/挙動モデルを送り、モバイルデバイス102は、疑わしいまたは性能劣化させるモバイルデバイス挙動、ソフトウェアアプリケーション、プロセスなどを特定するためにリーンなデータ/挙動モデルを受信して使用することができる。ネットワークサーバ116はまた、モバイルデバイスのデータ/挙動モデルを交換、更新、生成および/または維持するために、分類情報とモデリング情報とをモバイルデバイス102に送ることができる。
【００５７】
モバイルデバイス102は、挙動、状態、分類、モデリング、成功率および/または統計的情報をモバイルデバイス102内に収集し、収集された情報を分析のために(たとえば、電話ネットワーク104を介して)ネットワークサーバ116に送ることができる。ネットワークサーバ116は、モバイルデバイス102から受信された情報を使用してリーンなデータ/挙動モデルを更新もしくは精細化すること、または分類/モデリング情報を使用してさらに標的化および/または低減される特徴のサブセットを含むことができる。
【００５８】
図2は、特定のモバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが、悪性である/性能劣化させるか、疑わしいか、または良性であるかを判断するように構成された一態様のモバイルデバイス102における例示的な論理構成要素と情報フローとを示す。図2に示す例では、モバイルデバイス102は、挙動観測器モジュール202と、挙動アナライザモジュール204と、外部コンテキスト情報モジュール206と、クラシファイアモジュール208と、アクチュエータモジュール210とを含む。一態様では、クラシファイアモジュール208は、挙動アナライザモジュール204の一部として実装され得る。一態様では、挙動アナライザモジュール204は、1つまたは複数のクラシファイアモジュール208を生成するように構成され得、1つまたは複数のクラシファイアモジュール208の各々は、1つまたは複数のクラシファイアを含み得る。
【００５９】
モジュール202〜210の各々は、ソフトウェア、ハードウェアまたはそれらの任意の組合せで実装され得る。様々な態様では、モジュール202〜210は、オペレーティングシステムの一部の中(たとえば、カーネル内、カーネル空間内、ユーザ空間内など)、個別のプログラムもしくはアプリケーション内、専用のハードウェアバッファもしくはプロセッサ内、またはそれらの任意の組合せに実装され得る。一態様では、モジュール202〜210のうちの1つまたは複数は、モバイルデバイス102の1つまたは複数のプロセッサ上で遂行されるソフトウェア命令として実装され得る。
【００６０】
挙動観測器モジュール202は、アプリケーションプログラミングインターフェース(API)をモバイルデバイスの様々なレベル/モジュールにおいて取り付けるかまたは連携させるように構成され、取り付けられたAPIを介して様々なレベル/モジュールにおいてモバイルデバイスの動作および事象(たとえば、システム事象、状態変化など)をモニタ/観測し、観測された動作/事象に関する情報を収集し、収集された情報を知的にフィルタ処理し、フィルタ処理された情報に基づいて1つまたは複数の観測値を生成し、ならびに生成された観測値をメモリ内(たとえば、ログファイルなどの中)に記憶しおよび/または生成された観測値を挙動アナライザモジュール204に(たとえば、メモリ書込み、関数呼出しなどを介して)送ることができる。
【００６１】
挙動観測器モジュール202は、アプリケーションフレームワークまたはランタイムライブラリ、システムコールAPI、ファイルシステムおよびネットワーキングサブシステム動作、デバイス(センサーデバイスを含む)状態変化、ならびに他の同様の事象内のライブラリAPI呼出しに関する情報を収集することによって、モバイルデバイスの動作および事象をモニタ/観測することができる。挙動観測器モジュール202はまた、ファイルシステム活動をモニタでき、ファイルシステム活動には、ファイル名、ファイルアクセスのカテゴリ(パーソナル情報またはノーマルデータファイル)を探索すること、ファイル(たとえば、type  exe、zipなど)を生成または削除すること、ファイル読出し/書込み/シーク動作、ファイルパーミッションを変更することなどが含まれる。
【００６２】
挙動観測器モジュール202はまた、データネットワーク活動をモニタでき、データネットワーク活動には、接続のタイプ、プロトコル、ポート数、デバイスが接続されるサーバ/クライアント、接続数、通信の容量または周波数などが含まれる。挙動観測器モジュール202は、電話ネットワーク活動をモニタでき、電話ネットワーク活動には、送り出された、受信された、またはインターセプトされた呼またはメッセージ(たとえば、SMSなど)のタイプおよび数(たとえば、かけられた報奨金の呼の数)をモニタすることを含み得る。
【００６３】
挙動観測器モジュール202はまた、フォークの数、メモリアクセス動作、開いたファイルの数などをモニタすることを含み得る、システムリソース使用をモニタできる。挙動観測器モジュール202は、ディスプレイはオンかまたはオフか、デバイスはロックされているかまたはロックされていないか、バッテリーの残量、カメラの状態など、様々なファクタをモニタすることを含み得る、モバイルデバイスの状態をモニタできる。挙動観測器モジュール202はまた、たとえば、重要なサービス(ブラウザ、コントラクトプロバイダなど)への意図、プロセス間通信(IPC)の数または程度、ポップアップウィンドウなどをモニタすることによってプロセス間通信をモニタできる。
【００６４】
挙動観測器モジュール202はまた、カメラ、センサー、電子ディスプレイ、WiFi通信構成要素、データコントローラ、メモリコントローラ、システムコントローラ、アクセスポート、タイマー、周辺デバイス、ワイヤレス通信構成要素、外部メモリチップ、電圧レギュレータ、発振器、フェーズロックループ、周辺ブリッジ、およびモバイルコンピューティングデバイス上で動作するプロセッサおよびクライアントをサポートするために使用される他の同様の構成要素を含み得る、1つまたは複数のハードウェア構成要素のドライバ統計および/またはステータスをモニタ/観測できる。
【００６５】
挙動観測器モジュール202はまた、モバイルコンピューティングデバイスおよび/またはモバイルデバイスサブシステムの状態またはステータスを示す1つまたは複数のハードウェアカウンタをモニタ/観測できる。ハードウェアカウンタは、モバイルコンピューティングデバイス内で発生するハードウェア関連の活動または事象のカウントまたは状態を記憶するように構成されたプロセッサ/コアの専用レジスタを含み得る。
【００６６】
挙動観測器モジュール202はまた、ソフトウェアアプリケーションの活動または動作、アプリケーションダウンロードサーバ(たとえば、Apple(登録商標)App  Store  server)からのソフトウェアダウンロード、ソフトウェアアプリケーションによって使用されるモバイルデバイス情報、呼情報、テキストメッセージ情報(たとえば、SendSMS、BlockSMS、ReadSMSなど)、メディアメッセージ情報(たとえば、ReceiveMMS)、ユーザアカウント情報、ロケーション情報、カメラ情報、加速度計情報、ブラウザ情報、ブラウザベース通信のコンテンツ、音声ベース通信のコンテンツ、短距離無線通信(たとえば、Bluetooth(登録商標)、WiFiなど)、テキストベース通信のコンテンツ、記録されたオーディオファイルのコンテンツ、電話帳または連絡先情報、連絡先リストなどをモニタ/観測できる。
【００６７】
挙動観測器モジュール202は、ボイスメールを含む通信(VoiceMailComm)を含むモバイルデバイスの送信または通信、デバイス識別子(DeviceIDComm)、ユーザアカウント情報(UserAccountComm)、カレンダー情報(CalendarComm)、ロケーション情報(LocationComm)、記録されたオーディオ情報(RecordAudioComm)、加速度計情報(AccelerometerComm)などをモニタ/観測できる。
【００６８】
挙動観測器モジュール202は、コンパス情報、モバイルデバイス設定、バッテリー寿命、ジャイロスコープ情報、圧力センサー、磁気センサー、スクリーン活動などの使用をモニタ/観測し、それらを更新/変更することができる。挙動観測器モジュール202は、ソフトウェアアプリケーション(AppNotifications)、アプリケーション更新などへおよびそれらから通信される通知をモニタ/観測できる。挙動観測器モジュール202は、第2のソフトウェアアプリケーションのダウンロードおよび/またはインストールを要求している第1のソフトウェアアプリケーションに関する条件または事象をモニタ/観測できる。挙動観測器モジュール202は、パスワードのエントリなど、ユーザ照合に関する条件または事象をモニタ/観測できる。
【００６９】
挙動観測器モジュール202はまた、アプリケーションレベル、無線レベルおよびセンサーレベルを含む、モバイルデバイスの複数のレベルにおける条件または事象をモニタ/観測できる。アプリケーションレベルの観測は、顔認識ソフトウェアを介してユーザを観測すること、ソーシャルストリームを観測すること、ユーザによって入力された注釈を観測すること、PassBook/Google  Wallet/Paypalの使用に関する事象を観測することなどを含み得る。アプリケーションレベルの観測はまた、バーチャルプライベートネットワーク(VPN)の使用に関する事象、および同期、音声探索、音声制御(たとえば、1語を発することによる電話のロック/アンロック)、言語翻訳機、計算に対するデータのオフロード、ビデオストリーミング、ユーザ活動のないカメラの使用、ユーザ活動のないマイクロフォンの使用などに関する事象を観測することを含み得る。
【００７０】
無線レベルの観測は、無線通信リンクを設立するかまたは情報を送信する前のモバイルデバイスとのユーザの対話、二重/多重SIMカード、インターネット無線、携帯電話テザリング、計算に対するデータのオフロード、デバイス状態通信、ゲームコントローラまたはホームコントローラとしての使用、車両通信、モバイルデバイス同期などのうちのいずれかまたは複数の存在、実在、または量を判断するステップを含み得る。無線レベルの観測はまた、位置決め、ピアツーピア(p2p)通信、同期、車両対車両通信、および/または機械対機械(m2m)通信のための無線(WiFi、WiMax、Bluetooth(登録商標)など)の使用をモニタするステップを含み得る。無線レベルの観測は、ネットワークトラフィックの使用、統計、またはプロファイルをモニタするステップをさらに含み得る。
【００７１】
センサーレベルの観測は、モバイルデバイスの使用環境および/または外部環境を判断するために磁気センサーまたは他のセンサーをモニタするステップを含み得る。たとえば、モバイルデバイスプロセッサは、電話が(たとえば、ホルスター内の磁石を検知するように構成された磁気センサーを介して)ホルスター内にあるかまたは(たとえば、カメラまたは光センサーによって検出される光の量を介して)ユーザのポケット内にあるかを判断するように構成され得る。たとえば、モバイルデバイスがホルスターに入れられている間に発生する、ユーザによるアクティブな使用(たとえば、写真またはビデオを取ること、メッセージを送ること、音声呼を行うこと、音を録音することなど)に関する活動および機能は、(たとえば、ユーザを追跡またはスパイするために)デバイス上で遂行している不正なプロセスのサインであり得るので、モバイルデバイスがホルスター内にあることを検出することは、疑わしい挙動を認識することに関連し得る。
【００７２】
使用環境または外部環境に関するセンサーレベルの観測の他の例には、近距離場通信(NFC)を検出すること、クレジットカードスキャナ、バーコードスキャナ、またはモバイルタグリーダから情報を収集すること、USB電力充電源の存在を検出すること、キーボードまたは補助デバイスがモバイルデバイスに結合されていることを検出すること、モバイルデバイスが(たとえば、USBなどを介して)コンピューティングデバイスに結合されていることを検出すること、LED、フラッシュ、フラッシュライト、または光源が修正または(たとえば、緊急シグナリングアップなどを悪意を持ってディセーブルして)ディセーブルされているかどうかを判断すること、スピーカまたはマイクロフォンがスイッチオンまたは電源オンにされていることを検出すること、充電事象または電力事象を検出すること、モバイルデバイスがゲームコントローラとして使用されていることを検出することなどを含み得る。センサーレベルの観測はまた、医療もしくはヘルスケアのセンサーからまたはユーザの体をスキャンすることから情報を収集すること、USB/オーディオジャックに差し込まれた外部センサーから情報を収集すること、(たとえば、振動インターフェースなどを介して)触知センサーまたは触覚センサーから情報を収集すること、モバイルデバイスの熱状態に関する情報を収集することなどを含み得る。
【００７３】
一態様では、モニタされるファクタの数を管理可能レベルまで低減するために、挙動観測器モジュール202は、モバイルデバイスの劣化に寄与する可能性があるすべてのファクタの小さいサブセットである初期の挙動またはファクタのセットをモニタ/観測することによって粗い観測を実行できる。一態様では、挙動観測器モジュール202は、ネットワークサーバ116および/またはクラウドサービスもしくはネットワーク118内の構成要素から挙動および/またはファクタの初期のセットを受信できる。一態様では、挙動/ファクタの初期のセットは、ネットワークサーバ116またはクラウドサービス/ネットワーク118から受信されたデータ/挙動モデル内で規定され得る。一態様では、挙動/ファクタの初期のセットは、低減された特徴モデル(RFM)内で規定され得る。
【００７４】
挙動アナライザモジュール204および/またはクラシファイアモジュール208は、挙動観測器モジュール202から観測値を受信し、受信された情報(すなわち、観測値)を外部コンテキスト情報モジュール206から受信されたコンテキスト情報と比較し、デバイスの劣化に経時的に寄与する(または寄与しそうである)かまたは場合によってはデバイスに問題を引き起こす可能性がある、受信された観測値に関連するサブシステム、プロセス、および/またはアプリケーションを特定することができる。
【００７５】
一態様では、挙動アナライザモジュール204および/またはクラシファイアモジュール208は、デバイスの劣化に経時的に寄与する(または寄与しそうである)かまたは場合によってはデバイスに問題を引き起こす可能性がある、挙動、プロセス、またはプログラムを特定するために、情報の限定されたセット(すなわち、粗い観測値)を利用するための知性を含み得る。たとえば、挙動アナライザモジュール204は、様々なモジュール(たとえば、挙動観測器モジュール202、外部コンテキスト情報モジュール206など)から収集された(たとえば、観測値の形の)情報を分析し、モバイルデバイスの正常動作挙動を学習し、比較結果に基づいて1つまたは複数の挙動ベクトルを生成するように構成され得る。挙動アナライザモジュール204は、生成された挙動ベクトルをさらなる分析のためにクラシファイアモジュール208に送ることができる。
【００７６】
クラシファイアモジュール208は、挙動ベクトルを受信し、それらを1つまたは複数の挙動モジュールと比較して、特定のモバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが性能劣化させる/悪性であるか、良性であるか、または疑わしいかを判断する。
【００７７】
挙動、ソフトウェアアプリケーション、またはプロセスが悪性であるまたは性能劣化させるとクラシファイアモジュール208が判断するとき、クラシファイアモジュール208はアクチュエータモジュール210に通知し、アクチュエータモジュール210は、悪性であるまたは性能劣化させると判断されるモバイルデバイス挙動を修正するために様々な活動または動作を実行し、および/または特定された問題を直す、矯正する、隔離する、または場合によっては解決するための動作を実行することができる。
【００７８】
クラシファイアモジュール208が、挙動、ソフトウェアアプリケーション、またはプロセスが疑わしいと判断するとき、クラシファイアモジュール208は挙動観測器モジュール202に通知し、挙動観測器モジュール202は、それの観測の細分性(すなわち、モバイルデバイス挙動が観測される詳細さのレベル)の調節および/またはクラシファイアモジュール208から受信された情報(たとえば、実時間分析動作の結果)に基づいて観測される挙動の変更を行い、新しいまたは追加の挙動情報を生成または収集し、かつさらなる分析/分類のために新しい/追加の情報を挙動アナライザモジュール204および/またはクラシファイアモジュール208に送ることができる。挙動観測器モジュール202とクラシファイアモジュール208との間のそのようなフィードバック通信は、疑わしいもしくは性能劣化させるモバイルデバイス挙動の原因が特定されるまで、処理またはバッテリーの消費の閾値に到達するまで、または観測細分性をさらに増加させても疑わしいまたは性能劣化させるモバイルデバイス挙動の原因が特定され得ないとモバイルデバイスプロセッサが判断するまで、モバイルデバイス102が繰り返し、観測の細分性を増加させる(すなわち、より微細にまたはより詳細に観測する)ことまたは観測される特徴/挙動を変更することを可能にする。そのようなフィードバック通信はまた、モバイルデバイス102が、モバイルデバイスの処理、メモリ、またはエネルギーのリソースの量を過剰に消費することなく、データ/挙動モデルをモバイルデバイス内でローカルに調節または修正することを可能にする。
【００７９】
一態様では、挙動観測器モジュール202および挙動アナライザモジュール204は、限定された粗い観測値から疑わしい挙動を特定するため、より詳細に観測するために挙動を動的に判断するため、および観測のために必要な詳細さのレベルを動的に判断するために、コンピューティングシステムの挙動の実時間挙動分析を個別にまたは集合的に提供できる。この方式では、挙動観測器モジュール202は、デバイス上にプロセッサ、メモリまたはバッテリーのリソースを多量に必要とすることなく、モバイルデバイス102が問題を効率的に特定し、モバイルデバイス上で問題が発生するのを防止することを可能にする。
【００８０】
図3は、モバイルデバイス102の処理、メモリ、またはエネルギーのリソースの量を過剰に消費することなく、アクティブに悪性であるもしくは不完全に記述されたソフトウェアアプリケーションおよび/または疑わしいもしくは性能劣化させるモバイルデバイス挙動を、モバイルデバイス102上で知的かつ効率的に特定するために、クラウドサービス/ネットワーク118と連動して働くように構成されたネットワークサーバ116を含む、一態様のシステム300における例示的な構成要素および情報フローを示す。図3に示す例では、ネットワークサーバ116はクラウドモジュール302と、モデル発生器304と、訓練データモジュール306とを含み、モバイルデバイス102は挙動観測器モジュール202と、クラシファイアモジュール208と、アクチュエータモジュール210とを含む。一態様では、クラシファイアモジュール208は、挙動アナライザモジュール204(図2に示す)の中にまたは一部として含まれ得る。一態様では、モデル発生器304は、実時間オンラインクラシファイアであり得る。
【００８１】
クラウドモジュール302は、クラウドサービス/ネットワーク118から大量の情報を受信し、モバイルデバイスの劣化に経時的に寄与する可能性がある特徴、データポイント、および/またはファクタのすべてまたは大半を含む、完全またはロバストなデータ/挙動モデルを生成するように構成され得る。
【００８２】
モデル発生器304は、クラウドモジュール302内で生成された完全なモデルに基づいてリーンなデータ/挙動モデルを生成できる。一態様では、リーンなデータ/挙動モデルを生成するステップは、クラウドモジュール302によって生成された完全なモデル内に含まれる特徴およびデータポイントのサブセットを含む1つまたは複数の低減された特徴モデル(RFM)を生成するステップを含み得る。一態様では、モデル発生器304は、特定のモバイルデバイス挙動が悪性である/性能劣化させるかまたは良性であるかをクラシファイアモジュール208が最終的に判断することを可能にする最高の確率を有するように決定された情報を含む初期の特徴セット(たとえば、初期の低減された特徴モデル)を含むリーンなデータ/挙動モデルを生成できる。モデル発生器304は、生成されたリーンモデルを挙動観測器モジュール202に送ることができる。
【００８３】
挙動観測器モジュール202は、受信されたモデルに基づいてモバイルデバイス挙動をモニタ/観測し、観測値を生成し、観測値をクラシファイアモジュール208に送ることができる。クラシファイアモジュール208は、モバイルデバイス挙動が良性であるか、疑わしいか、または悪性である/性能劣化させるかを判断するために、挙動観測器モジュール202によって収集された挙動情報にデータ/挙動モデルを適用するステップを含み得る実時間分析動作を実行できる。挙動が良性であるかまたは悪性であるかのいずれであるかを分類するまたは最終的に判断するのに十分な情報をクラシファイアモジュール208が持たないとき、クラシファイアモジュール208は、モバイルデバイス挙動は疑わしいと判断できる。
【００８４】
デバイス挙動が疑わしいとクラシファイアモジュール208が判断するとき、クラシファイアモジュール208は、それの実時間分析動作の結果を挙動観測器モジュール202に伝達するように構成され得る。挙動観測器モジュール202は、それの観測の細分性(すなわち、モバイルデバイス挙動が観測される詳細さのレベル)の調節および/またはクラシファイアモジュール208から受信された情報に基づいて(たとえば、実時間分析動作の結果に基づいて)観測される挙動の変更を行い、新しいまたは追加の挙動情報を生成または収集し、かつ(たとえば、新しいモデルの形態における)さらなる分析/分類のために新しい/追加の情報をクラシファイアモジュールに送ることができる。この方式では、疑わしいもしくは性能劣化させるモバイルデバイス挙動の原因が特定されるまで、処理またはバッテリー消費の閾値に到達するまで、または観測細分性をさらに増加させても疑わしいまたは性能劣化させるモバイルデバイス挙動の原因が特定され得ないとモバイルデバイスプロセッサが判断するまで、モバイルデバイス102が繰り返し、観測の細分性を増加させる(すなわち、より微細にまたはより詳細に観測する)ことまたは観測される特徴/挙動を変更することを行うことができる。
【００８５】
モバイルデバイス102は、それの動作の結果、および/またはモデルのアプリケーションに関連する成功率をネットワークサーバ116に送ることができる。ネットワークサーバ116は、モデル発生器304による使用に対する結果/成功率に基づいて訓練データを(たとえば、訓練データモジュール306を介して)生成できる。モデル発生器は、更新されたモデルを生成し、更新されたモデルをモバイルデバイス102に送ることができる。
【００８６】
図4は、完全な特徴モデル(たとえば、クラウドモジュール302などの中で生成されたモデル)内に含まれる特徴およびデータポイントのサブセットを含むために1つまたは複数の低減された特徴モデル(RFM)を生成する、一態様の方法400を示す。様々な態様では、方法400は、クラウドモジュール302、モデル発生器304、クラシファイアモジュール208、またはそれらの任意の組合せにおいて実行され得る。ブロック402で、プロセッサは、クラウドサービス/ネットワーク118から受信されたデータの大きいコーパス(たとえば、数10億のデータポイント、数千の特徴など)から決定木(または他の同様の構造)を構築するために分類アルゴリズムを実行できる。一態様では、分類アルゴリズムは、増強決定木(BDT)アルゴリズムまたは任意の他の同様の分類アルゴリズムもしくは意思決定アルゴリズムを含み得る。
【００８７】
ブロック404で、プロセッサは、決定木または決定構造から初期の低減された特徴セット(たとえば、RFM0)を生成できる。初期の低減された特徴セット(たとえば、RFM0)は、特定のモバイルデバイス挙動が悪性であるかまたは良性であるかをクラシファイアモジュールが最終的に判断することを可能にする最高の確率を有するように決定された情報を含み得る。ブロック406で、プロセッサは、モバイルデバイス挙動が悪性であるかまたは良性であるかを最終的に判断する、最高に次ぐ確率を有するように決定された情報を含むために、決定木または決定構造から後続の低減された特徴セット(たとえば、RFM1)を生成できる。ブロック408で、プロセッサは、決定木または決定構造から追加の後続の特徴セット(たとえば、RFMn)を生成できる。
【００８８】
後続の各特徴セット(たとえば、RFM1〜RFMn)は、それの先行する特徴セットよりも大きいデータセットを含み得る。たとえば、決定木または決定構造が千(1000)の関連ファクタを特定した場合、初期の低減された特徴セット(たとえば、RFM0)は、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスのクラシファイアモジュールが最終的に判断することを可能にする最高の確率を有するように決定された五十(50)のファクタを含み得る。第1の後続の低減された特徴セット(たとえば、RFM1)は次の百(100)のファクタを含み得、後続の低減された特徴セット(たとえば、RFMn)は残りの八百五十(850)のファクタを含み得る。
【００８９】
図5Aは、1つまたは複数の低減された特徴モデル(RFM)に基づいてリーンなモバイルデバイスのクラシファイアモデルを構築する、一態様のシステムの方法500を示す。動作502で、ネットワークサーバプロセッサは、挙動ベクトル512のクラウドコーパスを記述するクラシファイアモデルのファミリーを(たとえば、増強決定木などを生成することによって)生成するために、機械学習技法を適用できる。挙動ベクトル512のクラウドコーパスは、多くの異なるモバイルデバイス(たとえば、1000万のモバイルデバイス)から収集された挙動ベクトルの大きい集まり(body)(たとえば、10億の挙動ベクトル)を含み得る。
【００９０】
動作504で、ネットワークサーバプロセッサは、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスのクラシファイア/アナライザモジュールが最終的に判断することを可能にする最高の確率を有するように決定された特徴を、特定およびグループ化することができる。動作506で、ネットワークサーバプロセッサは、特定された最良の特徴514を挙動ベクトル512のクラウドコーパスに与えることができる。動作508で、ネットワークサーバプロセッサは、モバイルデバイス挙動が悪性であるかまたは良性であるかをクラシファイア/アナライザモジュールが最終的に判断することを可能にするのに適切な著しく少数の特徴を特定する、低減された特徴モジュールの新しいファミリーを生成できる。動作510で、ネットワークサーバプロセッサは、低減された特徴モジュールをモバイルデバイス102に送ることができる。
【００９１】
図5Bは、1つまたは複数の低減された特徴モデル(RFM)に基づいてリーンなモバイルデバイスのクラシファイアモデルを構築する、別の態様のシステムの方法550を示す。動作552で、ネットワークサーバプロセッサは、挙動ベクトル512のクラウドコーパスを記述するクラシファイアモデルのファミリーを(たとえば、増強決定木などを生成することによって)生成するために、機械学習技法を適用できる。動作554で、ネットワークサーバプロセッサは、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスのクラシファイア/アナライザモジュールが最終的に判断することを可能にする最高の確率を有するように決定された特徴を、特定およびグループ化することができる。動作556で、ネットワークサーバプロセッサは、モバイルデバイス挙動が悪性であるかまたは良性であるかをクラシファイア/アナライザモジュールが最終的に判断することを可能にするのに適切な著しく少数の特徴を特定する、低減された特徴モジュールの新しいファミリーを生成できる。一態様では、ネットワークサーバプロセッサは、特定された最良の特徴514に基づいて低減された特徴モジュールの新しいファミリーを生成できる。動作556で、ネットワークサーバプロセッサは、低減された特徴モジュールをモバイルデバイス102に送ることができる。
【００９２】
図6は、モバイルデバイス挙動を段階的に評価する、一態様の漸進的分析方法600を実行するように構成された、モバイルデバイス102内の論理構成要素、情報フローを示す。図6に示す例では、モバイルデバイス102は、初期の低減された特徴セット(たとえば、RFM0)モジュールと複数の後続の低減された特徴セット(たとえば、RFM1〜RFMn)モジュールとを含む挙動アナライザモジュール204を含み、それらの各々がクラシファイアモジュール208であり得る。動作602で、挙動観測器モジュール202は、受信されたモデルに基づいてモバイルデバイス挙動をモニタ/観測し、観測値を生成し、観測値を初期の低減された特徴セット(たとえば、RFM0)モジュールに送ることができる。
【００９３】
初期の低減された特徴セット(たとえば、RFM0)モジュールは、観測値を受信し、特定のモバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが性能劣化させる/悪性であるか、良性であるか、または疑わしいかを判断することができる。挙動、ソフトウェアアプリケーション、またはプロセスが良性であること、悪性であること、または性能劣化させることを初期の低減された特徴セット(たとえば、RFM0)モジュールが判断するとき、動作604aで、初期の低減された特徴セット(たとえば、RFM0)モジュールはアクチュエータモジュール210に通知し、アクチュエータモジュール210は、悪性であるまたは性能劣化させると判断されるモバイルデバイス挙動を修正し、および/または特定された問題を直す、矯正する、隔離する、または場合によっては解決するための動作を実行するために、様々な活動または動作を実行することができる。
【００９４】
挙動、ソフトウェアアプリケーション、またはプロセスが疑わしいと、初期の低減された特徴セット(たとえば、RFM0)モジュールが判断するとき、動作604bで、初期の低減された特徴セット(たとえば、RFM0)モジュールは通知メッセージを挙動観測器モジュール202に送り、挙動観測器モジュール202は、それの観測値の細分性(すなわち、モバイルデバイス挙動が観測される詳細さのレベル)の調節および/または初期の低減された特徴セット(たとえば、RFM0)モジュールから受信された情報(たとえば、実時間分析動作の結果)に基づいて観測される挙動の変更を行い、新しいまたは追加の挙動情報を生成または収集することができる。動作606で、挙動観測器モジュール202は、さらなる分析/分類のために新しい/追加の情報を第1の後続の低減された特徴セット(たとえば、RFM1)モジュールに送ることができる。
【００９５】
第1の後続の低減された特徴セット(たとえば、RFM1)モジュールは、追加の情報を受信し、特定のモバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが性能劣化させる/悪性であるか、良性であるか、または疑わしいかを判断することができる。挙動、ソフトウェアアプリケーション、またはプロセスが良性であること、悪性であること、または性能劣化させることを第1の後続の低減された特徴セット(たとえば、RFM1)モジュールが判断するとき、動作608aで、第1の後続の低減された特徴セット(たとえば、RFM1)モジュールはアクチュエータモジュール210に通知し、アクチュエータモジュール210は、悪性であるまたは性能劣化させると判断されるモバイルデバイス挙動を修正し、および/または特定された問題を直す、矯正する、隔離する、または場合によっては解決するための動作を実行するために、様々な活動または動作を実行することができる。
【００９６】
挙動、ソフトウェアアプリケーション、またはプロセスが疑わしいと、第1の後続の低減された特徴セット(たとえば、RFM1)モジュールが判断するとき、動作608bで、第1の後続の低減された特徴セット(たとえば、RFM1)モジュールは通知メッセージを挙動観測器モジュール202に送り、挙動観測器モジュール202は、それの観測値の細分性をさらに調節し、および/または第1の後続の低減された特徴セット(たとえば、RFM1)モジュールから受信された情報に基づいて観測される挙動を変更し、新しいまたは追加の挙動情報を生成または収集することができる。動作610で、挙動観測器モジュール202は、さらなる分析/分類のために新しい/追加の情報を別の後続の低減された特徴セット(たとえば、RFMn)モジュールに送ることができる。動作606〜610は、挙動、ソフトウェアアプリケーション、またはプロセスが良性であることまたは悪性であることを挙動アナライザモジュール204が最終的に判断するまで繰り返し実行され得る。
【００９７】
図7は、複数のモバイルデバイスから更新情報を受信するように構成されたネットワークサーバ116を含む一態様のシステム700における例示的な構成要素および情報フローを示す。
【００９８】
図8Aは、複数のモバイルデバイスから更新された情報を継続的に受信している挙動ベクトル512のクラウドコーパスから、リーンなモバイルデバイスのクラシファイアモデルを構築する一態様のサーバ/システムの方法800を示す。動作802で、サーバプロセッサは、挙動ベクトル512のクラウドコーパスを記述するクラシファイアモデルの更新された第1のファミリーを(たとえば、増強決定木などを生成することによって)生成するために、機械学習技法を適用できる。判断動作804で、サーバプロセッサは、クラシファイアモデルの第1のファミリーに対する変化が有意であるかどうかを判断できる。
【００９９】
クラシファイアモデルの第1のファミリーが有意でないと判断される(判断動作804=「No」)とき、動作816で、方法800は終了し得る。クラシファイアモデルの第1のファミリーが有意であると判断される(判断動作804=「Yes」)とき、動作806で、サーバプロセッサは、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスのクラシファイア/アナライザモジュールが最終的に判断することを可能にする最高の確率を有するように決定された特徴を、特定およびグループ化することができる。
【０１００】
動作808で、サーバプロセッサは、特定された最良の特徴を挙動ベクトル512のクラウドコーパスに与えることができる。動作810で、サーバプロセッサは、モバイルデバイス挙動が悪性であるかまたは良性であるかをクラシファイア/アナライザモジュールが最終的に判断することを可能にするのに適切な著しく少数の特徴を特定する、低減された特徴モジュールを含むクラシファイアの第2のファミリーを生成できる。判断動作812で、サーバプロセッサは、更新されたモバイルデバイスのクラシファイアの生成を保証するために、前のモデルと有意に異なる低減された特徴モジュールを、クラシファイアの生成された第2のファミリーが含むかどうかを判断できる。更新されたモバイルデバイスのクラシファイアの生成を保証するのに十分な変化が、クラシファイアの第2のファミリー内に存在しない(判断動作812=「No」)と判断されるとき、動作816で、方法800は終了し得る。更新されたモバイルデバイスのクラシファイアを生成することを保証するのに十分な変化が、クラシファイアの第2のファミリー内に存在する(判断動作812=「Yes」)と判断されるとき、動作814で、システムは、低減された特徴モジュールのうちの1つまたは複数を含む更新されたモバイルデバイスのクラシファイアを生成し、モバイルデバイスのクラシファイアをモバイルデバイス102に送ることができる。
【０１０１】
図8Bは、複数のモバイルデバイスから更新された情報を継続的に受信している挙動ベクトル512のクラウドコーパスから、リーンなモバイルデバイスのクラシファイアモデルを構築する別の態様のサーバ/システムの方法850を示す。動作852で、サーバプロセッサは、挙動ベクトル512のクラウドコーパスを記述するクラシファイアモデルの更新された第1のファミリーを(たとえば、増強決定木などを生成することによって)生成するために、機械学習技法を適用できる。判断動作854で、サーバプロセッサは、クラシファイアモデルの第1のファミリーに対する変化が有意であるかどうかを判断できる。
【０１０２】
クラシファイアモデルの第1のファミリーが有意でないと判断される(判断動作854=「No」)とき、動作864で、方法850は終了し得る。クラシファイアモデルの第1のファミリーが有意であると判断される(判断動作854=「Yes」)とき、動作856で、サーバプロセッサは、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスのクラシファイア/アナライザモジュールが最終的に判断することを可能にする最高の確率を有するように決定された特徴を、特定およびグループ化することができる。動作858で、サーバプロセッサは、モバイルデバイス挙動が悪性であるかまたは良性であるかをクラシファイア/アナライザモジュールが最終的に判断することを可能にするのに適切な著しく少数の特徴を特定する、低減された特徴モジュールを含むクラシファイアの第2のファミリーを生成できる。判断動作860で、サーバプロセッサは、更新されたモバイルデバイスのクラシファイアの生成を保証するために、前のモデルと有意に異なる低減された特徴モジュールを、クラシファイアの生成された第2のファミリーが含むかどうかを判断できる。
【０１０３】
更新されたモバイルデバイスのクラシファイアの生成を保証するのに十分な変化が、クラシファイアの第2のファミリー内に存在しないと判断される(判断動作860=「No」)とき、動作864で、方法850は終了し得る。更新されたモバイルデバイスのクラシファイアの生成を保証するのに十分な変化が、クラシファイアの第2のファミリー内に存在すると判断される(判断動作860=「Yes」)とき、動作862で、システムは、低減された特徴モジュールのうちの1つまたは複数を含む更新されたモバイルデバイスのクラシファイアを生成し、モバイルデバイスのクラシファイアをモバイルデバイス102に送ることができる。
【０１０４】
図9は、一態様による、動的および適応的観測を実行するように構成されたコンピューティングシステムの挙動観測器モジュール202における例示的な論理構成要素および情報フローを示す。挙動観測器モジュール202は、適応フィルタモジュール902と、スロットルモジュール904と、観測器モードモジュール906と、高レベル挙動検出モジュール908と、挙動ベクトル発生器910と、セキュアバッファ912とを含み得る。高レベル挙動検出モジュール908は、空間相関モジュール914と時間相関モジュール916とを含み得る。
【０１０５】
観測器モードモジュール906は、アナライザユニット(たとえば、図2を参照して上記で説明した挙動アナライザモジュール204)および/またはアプリケーションAPIを含み得る様々なソースから制御情報を受信できる。観測器モードモジュール906は、様々な観測器モードに関する制御情報を適応フィルタモジュール902および高レベル挙動検出モジュール908に送ることができる。
【０１０６】
適応フィルタモジュール902は、複数のソースからデータ/情報を受信し、受信された情報を知的にフィルタ処理し、受信された情報から選択された情報のより小さいサブセットを生成することができる。このフィルタは、アナライザモジュールから、またはAPIを介して通信するより高いレベルのプロセスから受信された情報または制御に基づいて適合され得る。フィルタ処理された情報は、スロットルモジュール904に送られ得、スロットルモジュール904は、高レベル挙動検出モジュール908が要求または情報で氾濫するかまたは過負荷になることがないことを確実にするために、フィルタから流れる情報の量を制御する役割を果たすことができる。
【０１０７】
高レベル挙動検出モジュール908は、スロットルモジュール904からのデータ/情報と、観測器モードモジュール906からの制御情報と、モバイルデバイスの他の構成要素からのコンテキスト情報とを受信できる。高レベル挙動検出モジュール908は、受信された情報を使用して空間相関および時間相関を実行し、準最適レベルで実行することをデバイスに行わせ得る高レベル挙動を検出または特定することができる。空間相関および時間相関の結果は、挙動ベクトル発生器910に送られ得、挙動ベクトル発生器910は相関情報を受信し、特定のプロセス、アプリケーション、またはサブシステムの挙動を記述する挙動ベクトルを生成することができる。一態様では、挙動ベクトル発生器910は、特定のプロセス、アプリケーション、またはサブシステムの各高レベル挙動が挙動ベクトルの要素であるように挙動ベクトルを生成できる。一態様では、生成された挙動ベクトルは、セキュアバッファ912内に記憶され得る。高レベル挙動検出の例は、特定の事象の存在、別の事象の量または頻度、複数の事象間の関係、事象が発生する順序、いくつかの事象の発生の間の時間差などの検出を含み得る。
【０１０８】
様々な態様では、挙動観測器モジュール202は、適応的観測を実行し、観測の細分性を制御することができる。すなわち、挙動観測器モジュール202は、観測されるべき関連挙動を動的に特定し、特定された挙動が観測されるべき詳細さのレベルを動的に決定することができる。この方式では、挙動観測器モジュール202は、様々なレベル(たとえば、複数の粗いレベルおよび微細なレベル)においてシステムがモバイルデバイスの挙動をモニタすることを可能にする。挙動観測器モジュール202は、観測されているものにシステムが適応することを可能にすることができる。挙動観測器モジュール202は、多様なソースから取得され得る情報の集中的なサブセットに基づいて観測されているファクタ/挙動を、システムが動的に変更することを可能にすることができる。
【０１０９】
上記で説明したように、挙動観測器モジュール202は、適応的観測技法を実行し、様々なソースから受信された情報に基づいて観測の細分性を制御することができる。たとえば、高レベル挙動検出モジュール908は、スロットルモジュール904、観測器モードモジュール906からの情報と、モバイルデバイスの他の構成要素(たとえば、センサー)から受信されたコンテキスト情報とを受信できる。一例として、時間相関を実行する高レベル挙動検出モジュール908は、カメラが使用されたことと、モバイルデバイスがピクチャをサーバへのアップロードを試みていることとを検出できる。高レベル挙動検出モジュール908はまた、デバイスがホルスターに入れられ、ユーザのベルトに取り付けられていた間にモバイルデバイス上のアプリケーションがピクチャを撮ったかどうかを判断するために、空間相関を実行できる。高レベル挙動検出モジュール908は、この検出された高レベル挙動(たとえば、ホルスターに入れたままでカメラを使用すること)が容認できるまたは一般的な挙動であるかどうかを判断し得、そのことは、モバイルデバイスの現在の挙動と過去の挙動とを比較することによって、および/または複数のデバイスから収集された情報(たとえば、クラウドソーシングサーバから受信された情報)にアクセスすることによって達成され得る。ホルスターに入れられている間にピクチャを撮り、それらをサーバにアップロードすることは、(ホルスターに入れられている状況で観測される通常の挙動から判断され得るように)異常な挙動であるので、この状況では、高レベル挙動検出モジュール908は、これを、潜在的に危険な(threatening)挙動と認識し、適切な対応(たとえば、カメラを遮断する、警報を鳴らすなど)を開始することができる。
【０１１０】
一態様では、挙動観測器モジュール202は、複数の部分に実装され得る。
【０１１１】
図10は、一態様の観測器デーモンを実装するコンピューティングシステム1000内の論理構成要素および情報フローを示す。図10に示す例では、コンピューティングシステム1000は、ユーザ空間内に挙動検出器1002モジュール、データベースエンジン1004モジュールおよび挙動アナライザモジュール204と、カーネル空間内にリングバッファ1014、フィルタルール1016モジュール、スロットリングルール1018モジュールおよびセキュアバッファ1020とを含む。コンピューティングシステム1000は、ユーザ空間内に挙動検出器1002およびデータベースエンジン1004と、カーネル空間内にセキュアバッファマネージャ1006、ルールマネージャ1008およびシステムヘルスモニタ1010とを含む観測器デーモンをさらに含み得る。
【０１１２】
様々な態様は、システム挙動を特徴付けるためにwebkit、SDK、NDK、カーネル、ドライバ、およびハードウェアを包含する、モバイルデバイス上のクロスレイヤ観測を提供できる。挙動観測は、実時間で行われ得る。
【０１１３】
観測器モジュールは、適応的観測技法を実行し、観測の細分性を制御することができる。上記で説明したように、モバイルデバイスの劣化に寄与する可能性のある多数(すなわち、数千)のファクタが存在し、デバイスの性能の劣化に寄与する可能性のある異なるファクタのすべてをモニタ/観測することは実現不可能である。これを克服するために、様々な態様は、観測されるべきである関連挙動を動的に特定し、特定された挙動が観測されるべき詳細さのレベルを動的に決定する。
【０１１４】
図11は、一態様による、動的かつ適応的観測を実行するための例示的な方法1100を示す。ブロック1102で、モバイルデバイスプロセッサは、モバイルデバイスの劣化に寄与する可能性のある多数のファクタ/挙動のサブセットをモニタ/観測するとによって、粗い観測を実行できる。ブロック1103で、モバイルデバイスプロセッサは、粗い観測を特徴付ける挙動ベクトルおよび/または粗い観測に基づくモバイルデバイス挙動を生成できる。ブロック1104で、モバイルデバイスプロセッサは、モバイルデバイスの劣化に潜在的に寄与する可能性のある粗い観測に関連するサブシステム、プロセス、および/またはアプリケーションを特定できる。これは、たとえば、複数のソースから受信された情報とモバイルデバイスのセンサーから受信されたコンテキスト情報とを比較することによって達成され得る。ブロック1106で、モバイルデバイスプロセッサは、粗い観測に基づいて挙動分析動作を実行できる。態様では、ブロック1103および1104の一部として、モバイルデバイスプロセッサは、図2〜図8Bを参照して上記で説明した動作のうちの1つまたは複数を実行できる。
【０１１５】
判断ブロック1108で、疑わしい挙動または潜在的問題が特定され、挙動分析の結果に基づいて修正され得るかどうかを、モバイルデバイスプロセッサが判断できる。疑わしい挙動または潜在的問題が特定され、挙動分析の結果に基づいて修正され得るとモバイルデバイスプロセッサが判断する(すなわち、判断ブロック1108=「Yes」)とき、ブロック1118で、プロセッサは、挙動を修正するためのプロセスを開始し、ブロック1102に戻って追加の粗い観測を実行することができる。
【０１１６】
疑わしい挙動または潜在的問題が、挙動分析の結果に基づいて特定および/または修正され得ないとモバイルデバイスプロセッサが判断する(すなわち、判断ブロック1108=「No」)とき、判断ブロック1109で、モバイルデバイスプロセッサは、問題の可能性があるかどうかを判断できる。一態様では、モバイルデバイスプロセッサは、モバイルデバイスが潜在的問題に遭遇することおよび/または疑わしい挙動に関与することの確率を計算し、計算された確率が所定の閾値よりも大きいかどうかを判断することによって、問題の可能性があるかどうかを判断できる。計算された確率が所定の閾値よりも大きくない、ならびに/あるいは疑わしい挙動または潜在的問題が存在するおよび/または検出可能である可能性はないとモバイルデバイスプロセッサが判断する(すなわち、判断ブロック1109=「No」)とき、プロセッサは、ブロック1102に戻って追加の粗い観測を実行することができる。
【０１１７】
疑わしい挙動または潜在的問題が存在するおよび/または検出可能である可能性があるとモバイルデバイスプロセッサが判断する(すなわち、判断ブロック1109=「Yes」)とき、ブロック1110で、モバイルデバイスプロセッサは、特定されたサブシステム、プロセスまたはアプリケーションに対して、よりディープなロギング/観測または最終のロギングを実行できる。ブロック1112で、モバイルデバイスプロセッサは、特定されたサブシステム、プロセスまたはアプリケーションに対して、よりディープでより詳細な観測を実行できる。ブロック1114で、モバイルデバイスプロセッサは、よりディープでより詳細な観測に基づいて、より広範および/またはよりディープな挙動分析を実行できる。判断ブロック1108で、モバイルデバイスプロセッサは、よりディープな挙動分析の結果に基づいて、疑わしい挙動または潜在的問題が特定され修正され得るかどうかを再び判断できる。よりディープな挙動分析の結果に基づいて疑わしい挙動または潜在的問題が特定され修正され得ないとモバイルデバイスプロセッサが判断する(すなわち、判断ブロック1108=「No」)とき、詳細さのレベルが問題を特定するのに十分に微細になるまで、または詳細さを追加しても問題が特定され得ないかまたは問題が存在しないと判断されるまで、プロセッサはブロック1110〜1114で動作を繰り返すことができる。
【０１１８】
よりディープな挙動分析の結果に基づいて疑わしい挙動または潜在的問題が特定され修正され得るとモバイルデバイスプロセッサが判断する(すなわち、判断ブロック1108=「Yes」)とき、ブロック1118で、モバイルデバイスプロセッサは、問題/挙動を修正するための動作を実行し、プロセッサはブロック1102に戻って追加の動作を実行することができる。
【０１１９】
一態様では、方法1100のブロック1102〜1118の一部として、モバイルデバイスプロセッサは、限定された粗い観測値から疑わしい挙動を特定するため、より詳細に観測するために挙動を動的に判断するため、および観測のために必要な詳細さの正確なレベルを動的に決定するために、システムの挙動の実時間挙動分析を実行できる。これは、デバイス上のプロセッサ、メモリまたはバッテリーのリソースを多量に使用する必要なしに、モバイルデバイスプロセッサが問題を効率的に特定し、問題が発生するのを防止することを可能にする。
【０１２０】
様々な態様が、多様なモバイルコンピューティングデバイス上に実装され得、それらの一例が、スマートフォンの形で図12に示されている。スマートフォン1200は、内部メモリ1202と、ディスプレイ1203と、スピーカとに結合されたプロセッサ1201を含み得る。加えて、スマートフォン1200は、プロセッサ1201に結合されたワイヤレスデータリンクおよび/またはセルラー電話トランシーバ1205に接続され得る、電磁放射を送信および受信するためのアンテナ1204を含むことができる。スマートフォン1200は通常、ユーザ入力を受け取るためのメニュー選択ボタンまたはロッカースイッチ1206も含む。
【０１２１】
一般的なスマートフォン1200はまた、マイクロフォンから受信された音をワイヤレス送信に適したデータパケットにデジタル化し、受信された音のデータパケットを復号し、スピーカに供給されるアナログ信号を生成して音を発生する音符号化/復号(CODEC)回路1212を含む。同じく、プロセッサ1201、ワイヤレストランシーバ1205およびCODEC  1212のうちの1つまたは複数は、デジタル信号プロセッサ(DSP)回路(個別に示されず)を含み得る。
【０１２２】
態様の方法の一部は、態様の方法を実行している間にモバイルデバイスプロセッサによってアクセスされ得る正常動作挙動のデータベースを維持することなど、サーバ内で発生する処理のいくつかによって、クライアントサーバアーキテクチャ内で遂行され得る。そのような態様は、図13に示すサーバ1300のような、種々の市販のサーバデバイスのいずれにおいても実装され得る。そのようなサーバ1300は通常、揮発性メモリ1302と、ディスクドライブ1303のような大容量の不揮発性メモリとに結合された、プロセッサ1301を含む。サーバ1300はまた、プロセッサ1301に結合された、フロッピー(登録商標)ディスクドライブ、コンパクトディスク(CD)またはDVDディスクドライブ13011も含み得る。サーバ1300はまた、他のブロードキャストシステムコンピュータおよびサーバに結合されたローカルエリアネットワークなど、ネットワーク1305とデータ接続を確立するための、プロセッサ1301に結合されたネットワークアクセスポート1304も含み得る。
【０１２３】
プロセッサ1201、1301は、以下で説明する様々な態様の機能を含む、様々な機能を実施するためのソフトウェア命令(アプリケーション)によって構成され得る、任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、または1つもしくは複数の多重プロセッサチップであり得る。いくつかのモバイルデバイスでは、1つのプロセッサをワイヤレス通信機能専用にし、1つのプロセッサを他のアプリケーションの実行専用にするように、複数のプロセッサ1201を設けることができる。一般的には、ソフトウェアアプリケーションは、それらがアクセスされ、プロセッサ1201、1301にロードされる前に、内部メモリ1202、1302、1303内に記憶され得る。プロセッサ1201、1301は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。
【０１２４】
様々な態様の動作を遂行するためにプログラマブルプロセッサ上で遂行するためのコンピュータプログラムコードすなわち「プログラムコード」は、C、C++、C#、Smalltalk、Java(登録商標)、JavaScript(登録商標)、Visual  Basic、Structured  Query  Language  (たとえば、Transact-SQL)、Perlなどの高レベルプログラミング言語で、または様々な他のプログラミング言語で記述され得る。本出願で用いられるように、コンピュータ可読記憶媒体に記憶されるプログラムコードまたはプログラムは、そのフォーマットがプロセッサによって理解可能であるマシン言語コード(オブジェクトコードなど)を指すことがある。
【０１２５】
多くのモバイルコンピューティングデバイスのオペレーティングシステムのカーネルは、(非特権コードが動作する場合)ユーザ空間内に編成され、(特権コードが動作する場合)カーネル空間内に編成される。この分離は、カーネル空間の一部であるコードがGPL許諾される必要がある一方で、ユーザ空間内で動作するコードがGPL許諾されなくてもよい、Android(登録商標)および他の一般公有使用許諾(GPL)環境において特に重要である。本明細書で説明する様々なソフトウェア構成要素/モジュールは、明示的に別段の記述がない場合、カーネル空間またはユーザ空間のいずれかに実装され得ることを理解されたい。
【０１２６】
上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供したものであり、様々な態様のステップを提示された順序で実施しなければならないことを要求または暗示するものではない。当業者が諒解するように、上記の態様におけるステップの順序は、どのような順序で実施されてもよい。「その後」、「次いで」、「次」などの言葉は、ステップの順番を限定するものではなく、これらの言葉は単に、読者に本方法の説明を案内するために使用される。さらに、たとえば、冠詞「a」、「an」または「the」の使用による単数形での請求要素へのいかなる言及も、その要素を単数に限定するものとして解釈されるべきではない。
【０１２７】
本出願で使用されるように、「構成要素」、「モジュール」、「システム」、「エンジン」、「発生器」、「マネージャ」などの用語は、限定はしないが、特定の動作または機能を実行するように構成された、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなど、コンピュータ関連のエンティティを含むものとする。たとえば、構成要素は、プロセッサ上で作動しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得るが、これらに限定されない。例を挙げると、コンピューティングデバイス上で作動しているアプリケーションとコンピューティングデバイスの両方が、構成要素と呼ばれてよい。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッドの中に存在してよく、1つのコンポーネントは、1つのプロセッサまたはコアに局在してよく、かつ/または2つ以上のプロセッサまたはコアの間に分散してよい。加えて、これらの構成要素は、様々な命令および/またはデータ構造を記憶している様々な非一時的コンピュータ可読媒体から実行することができる。構成要素は、ローカルおよび/またはリモートプロセス、関数呼出しまたはプロシージャ呼出し、電子信号、データパケット、メモリ読出し/書込み、ならびに他の知られているネットワーク、コンピュータ、プロセッサ、および/または通信方法に関するプロセスによって通信できる。
【０１２８】
本明細書で開示された態様に関して記載された、様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装することができる。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【０１２９】
本明細書で開示された態様に関して記載された様々な例示的な論理、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別のハードウェアコンポーネント、または、本明細書に記載された機能を実行するように設計されたそれらの任意の組合せで、実装または実行され得る。汎用プロセッサは多重プロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPと多重プロセッサとの組合せ、複数の多重プロセッサ、DSPコアと連携する1つまたは複数の多重プロセッサ、あるいは任意の他のそのような構成として実装され得る。代替として、いくつかのステップまたは方法は、所与の機能に固有の回路によって実行され得る。
【０１３０】
1つまたは複数の例示的な態様では、記載された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せに実装することができる。機能は、ソフトウェアで実装される場合、1つまたは複数の命令またはコードとして、非一時的コンピュータ可読媒体または非一時的プロセッサ可読記憶媒体に記憶され得る。本明細書で開示された方法またはアルゴリズムのステップは、非一時的コンピュータ可読またはプロセッサ可読の記憶媒体上に常駐できるプロセッサ実行可能ソフトウェアモジュール内で具現化することができる。非一時的コンピュータ可読記憶媒体またはプロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスされ得る任意の記憶媒体であってよい。限定ではなく例として、そのような非一時的コンピュータ可読媒体またはプロセッサ可読媒体は、RAM、ROM、EEPROM、フラッシュメモリ、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、およびブルーレイ(登録商標)ディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザーで光学的にデータを再生する。上記の組合せも非一時的コンピュータ可読媒体およびプロセッサ可読媒体の範囲内に含まれる。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る、非一時的プロセッサ可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の、1つまたは任意の組合せ、またはそのセットとして存在し得る。
【０１３１】
開示された態様の上記の説明は、任意の当業者が本発明を製作または使用できるようになされている。これらの態様への様々な修正が当業者には容易に明らかであり、本明細書で定義された一般的な原理は、本発明の趣旨または範囲を逸脱することなく、他の態様に適用することができる。したがって、本発明は、本明細書で示された態様に限定されるものではなく、以下の特許請求の範囲ならびに本明細書で開示された原理および新規の特徴に合致する、最も広い範囲を与えられるべきである。
【符号の説明】
【０１３２】
100  通信システム
102  モバイルデバイス
104  セル電話ネットワーク
106  セル基地局
108  ネットワーク運用センタ
110  インターネット
112  双方向ワイヤレス通信リンク
114  サーバ
116  ネットワークサーバ
118  クラウドサービスプロバイダネットワーク
202  挙動観測器モジュール
204  挙動アナライザモジュール
206  外部コンテキスト情報モジュール
208  クラシファイアモジュール
210  アクチュエータモジュール
300  システム
302  クラウドモジュール
304  モデル発生器
306  訓練データモジュール
400  方法
402  ブロック
404  ブロック
406  ブロック
408  ブロック
500  方法
502  動作
504  動作
506  動作
508  動作
510  動作
512  挙動ベクトル
514  特定された最良の特徴
550  方法
552  動作
554  動作
556  動作
558  なし
600  漸進的分析方法
602  動作
604a  動作
604b  動作
606  動作
608a  動作
608b  動作
610  動作
700  システム
800  方法
802  動作
804  判断動作
806  動作
808  動作
810  動作
812  判断動作
814  動作
816  動作
850  方法
852  動作
854  判断動作
856  動作
858  動作
860  判断動作
862  動作
864  動作
902  適応フィルタモジュール
904  スロットルモジュール
906  観測器モードモジュール
908  高レベル挙動検出モジュール
910  挙動ベクトル発生器
912  セキュアバッファ
914  空間相関モジュール
916  時間相関モジュール
1000  コンピューティングシステム
1002  挙動検出器モジュール
1004  データベースエンジンモジュール
1006  セキュアバッファマネージャ
1008  ルールマネージャ
1010  システムヘルスモニタ
1014  リングバッファ
1016  フィルタルールモジュール
1018  スロットリングルールモジュール
1020  セキュアバッファ
1100  方法
1200  スマートフォン
1201  プロセッサ
1202  内部メモリ
1203  ディスプレイ
1204  アンテナ
1205  ワイヤレストランシーバ
1206  ロッカースイッチ
1212  CODEC
1300  サーバ
1301  プロセッサ
1302  揮発性メモリ
1303  ディスクドライブ
1304  ネットワークアクセスポート
1305  ネットワーク
1306  なし
【図１】
2015525382.tif 000003
【図２】
2015525382.tif 000004
【図３】
2015525382.tif 000005
【図４】
2015525382.tif 000006
【図５Ａ】
2015525382.tif 000007
【図５Ｂ】
2015525382.tif 000008
【図６】
2015525382.tif 000009
【図７】
2015525382.tif 000010
【図８Ａ】
2015525382.tif 000011
【図８Ｂ】
2015525382.tif 000012
【図９】
2015525382.tif 000013
【図１０】
2015525382.tif 000014
【図１１】
2015525382.tif 000015
【図１２】
2015525382.tif 000016
【図１３】
2015525382.tif 000017
【手続補正書】
【提出日】平成26年6月2日(2014.6.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クライアントクラウド通信システムにおいてデータモデルを生成する方法であって、
挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために、複数の異なるモバイルデバイスから収集された挙動ベクトルの前記クラウドコーパスに機械学習技法を適用するステップと、
クラシファイアの前記第1のファミリーに対して、新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断するステップと、
クラシファイアの前記第1のファミリーに対して十分な変化が存在すると判断することに応答して、クラシファイアモデルの前記第1のファミリー内のどのファクタが、モバイルデバイスの挙動が悪性であるかまたは良性であるかを示す高い確率を有するかを判断するステップと、
前記判断されたファクタに基づいて、前記モバイルデバイスの前記挙動が悪性であるかまたは良性であるかの判断において前記モバイルデバイスによる使用に適切な、低減された数のファクタおよびデータポイントを含むクラシファイアモデルの第2のファミリーを生成するステップと、
クラシファイアモデルの前記第2のファミリーに基づいてモバイルデバイスのクラシファイアモジュールを生成するステップとを含む、方法。
【請求項２】
挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために、複数の異なるモバイルデバイスから収集された挙動ベクトルの前記クラウドコーパスに機械学習技法を適用するステップが、
前記クライアントクラウド通信システム内のサーバ上に、ディープなクラシファイアからクラシファイアモデルの前記第1のファミリーを生成するステップを含む、請求項1に記載の方法。
【請求項３】
クラシファイアモデルの第2のファミリーを生成するステップが、
前記クライアントクラウド通信システム内のサーバ上に、リーンなクラシファイアからクラシファイアモデルの前記第2のファミリーを生成するステップを含む、請求項1に記載の方法。
【請求項４】
クラシファイアモデルの第2のファミリーを生成するステップが、
前記モバイルデバイス上に、リーンなクラシファイアからクラシファイアモデルの前記第2のファミリーを生成するステップを含む、請求項1に記載の方法。
【請求項５】
前記モバイルデバイスの前記挙動が悪性であるかまたは良性であるかの判断に対して前記モバイルデバイス上での使用に適切な、低減された数のファクタおよびデータポイントを含むクラシファイアモデルの第2のファミリーを生成するステップが、
前記判断されたファクタを挙動ベクトルの前記クラウドコーパスに適用することによってクラシファイアモデルの前記第2のファミリーを生成するステップを含む、請求項1に記載の方法。
【請求項６】
クライアントクラウド通信システム内のサーバであって、
挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために、複数の異なるモバイルデバイスから収集された挙動ベクトルの前記クラウドコーパスに機械学習技法を適用するための手段と、
クラシファイアの前記第1のファミリーに対して、新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断するための手段と、
クラシファイアの前記第1のファミリーに対して十分な変化が存在すると判断することに応答して、クラシファイアモデルの前記第1のファミリー内のどのファクタが、モバイルデバイスの挙動が悪性であるかまたは良性であるかを示す高い確率を有するかを判断するための手段と、
前記判断されたファクタに基づいて、前記モバイルデバイスの前記挙動が悪性であるかまたは良性であるかの判断において前記モバイルデバイスによる使用に適切な、低減された数のファクタおよびデータポイントを含むクラシファイアモデルの第2のファミリーを生成するための手段と、
クラシファイアモデルの前記第2のファミリーに基づいてモバイルデバイスのクラシファイアモジュールを生成するための手段とを含む、サーバ。
【請求項７】
挙動ベクトルのクラウドコーパスを記述するクラシファイアモデルの第1のファミリーを生成するために、複数の異なるモバイルデバイスから収集された挙動ベクトルの前記クラウドコーパスに機械学習技法を適用するための手段が、
ディープなクラシファイアからクラシファイアモデルの前記第1のファミリーを生成するための手段を含む、請求項6に記載のサーバ。
【請求項８】
クラシファイアモデルの第2のファミリーを生成するための手段が、
リーンなクラシファイアからクラシファイアモデルの前記第2のファミリーを生成するための手段を含む、請求項6に記載のサーバ。
【請求項９】
クラシファイアモデルの第2のファミリーを生成するための手段が、
クラシファイアモデルの前記第1のファミリーと前記判断されたファクタとを前記モバイルデバイスに送信するための手段を含む、請求項6に記載のサーバ。
【請求項１０】
前記モバイルデバイスの前記挙動が悪性であるかまたは良性であるかの判断に対して前記モバイルデバイス上での使用に適切な、低減された数のファクタおよびデータポイントを含むクラシファイアモデルの第2のファミリーを生成するための手段が、
前記判断されたファクタを挙動ベクトルの前記クラウドコーパスに適用することによってクラシファイアモデルの前記第2のファミリーを生成するための手段を含む、請求項6に記載のサーバ。
【請求項１１】
モバイルデバイス挙動を段階的に評価する方法であって、
観測値を生成するためにモバイルデバイス挙動をモニタするステップと、
前記モバイルデバイス挙動が性能劣化させるか、良性であるか、または疑わしいかを判断するために、初期の低減された特徴セットモデルに前記観測値を適用するステップと、
前記モバイルデバイス挙動が疑わしいと判断されるとき、精細化された観測値を生成するために追加のまたは異なるモバイルデバイス挙動をモニタするステップと、
前記モバイルデバイス挙動が性能劣化させるか、または良性であるかを判断するために、後続の低減された特徴セットモデルに前記精細化された観測値を適用するステップとを含む、方法。
【請求項１２】
観測値を生成するためにモバイルデバイス挙動をモニタするための手段と、
前記モバイルデバイス挙動が性能劣化させるか、良性であるか、または疑わしいかを判断するために、初期の低減された特徴セットモデルに前記観測値を適用するための手段と、
前記モバイルデバイス挙動が疑わしいと判断されるとき、精細化された観測値を生成するために追加のまたは異なるモバイルデバイス挙動をモニタするための手段と、
前記モバイルデバイス挙動が性能劣化させるか、または良性であるかを判断するために、後続の低減された特徴セットモデルに前記精細化された観測値を適用するための手段とを含む、モバイルデバイス。
【請求項１３】
請求項１１に記載の動作をプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を記憶した非一時的コンピュータ可読記憶媒体。
【請求項１４】
複数のモバイルデバイスから観測情報を受信するステップと、
前記複数のモバイルデバイスから受信された前記観測情報に基づいて、クラウドネットワークのサーバ内の挙動分類のグローバルモデルを更新するステップと、
前記グローバルモデルに基づいてクラシファイアの第1のファミリーを生成するために機械学習動作を実行するステップと、
クラシファイアの前記生成された第1のファミリーに対して、新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断するステップと、
クラシファイアの前記第1のファミリーに対して十分な変化が存在すると判断されるとき、クラシファイアの前記生成された第1のファミリー内のどの特徴が、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスプロセッサが最終的に判断することを可能にするために最良の特徴であるかを判断するステップと、
前記最良の特徴に基づいてクラシファイアの第2のファミリーを生成するステップと、
クラシファイアの前記生成された第2のファミリーに対して、追加の新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断するステップと、
クラシファイアの前記第2のファミリーに対して十分な変化が存在すると判断されるとき、追加のクラシファイアモデルを生成するステップと、
前記モバイルデバイスプロセッサに前記生成された追加のクラシファイアモデルを送るステップとを含む、方法。
【請求項１５】
複数のモバイルデバイスから観測情報を受信するための手段と、
前記複数のモバイルデバイスから受信された前記観測情報に基づいて、挙動分類のグローバルモデルを更新するための手段と、
前記グローバルモデルに基づいてクラシファイアの第1のファミリーを生成するために機械学習動作を実行するための手段と、
クラシファイアの前記生成された第1のファミリーに対して、新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断するための手段と、
クラシファイアの前記第1のファミリーに対して十分な変化が存在すると判断されるとき、クラシファイアの前記生成された第1のファミリー内のどの特徴が、モバイルデバイス挙動が悪性であるかまたは良性であるかをモバイルデバイスプロセッサが最終的に判断することを可能にするために最良の特徴であるかを判断するための手段と、
前記最良の特徴に基づいてクラシファイアの第2のファミリーを生成するための手段と、
クラシファイアの前記生成された第2のファミリーに対して、追加の新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断するための手段と、
クラシファイアの前記第2のファミリーに対して十分な変化が存在すると判断されるとき、追加のクラシファイアモデルを生成するための手段と、
前記モバイルデバイスプロセッサに生成された追加のクラシファイアモデルを送るための手段とを含む、サーバ。
【請求項１６】
請求項1から5および１４のうちの一項または複数項に記載の動作をサーバプロセッサに実行させるように構成されたサーバ実行可能ソフトウェア命令を記憶した非一時的コンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
関連出願
本出願は、参照によりそのすべての内容全体が、あらゆる目的のために本明細書に組み込まれる、2013年1月2日に出願した「Architecture  for  Client-Cloud  Behavior  Analyzer」と題する米国仮特許出願第61/748,220号の優先権の利益を主張する。
【国際調査報告】
2015525382.tif 000018
2015525382.tif 000019
2015525382.tif 000020
2015525382.tif 000021