(57)【特許請求の範囲】
【請求項１】
別個の特性を有するアプリケーションの種類に基づいて、モバイルデバイスにおいて分類器モデルを生成し使用する方法であって、
前記モバイルデバイスのプロセッサにおいて、複数のブーストされた決定株への変換に適した情報を含む有限状態機械を受信するステップであって、前記ブーストされた決定株の各々は複数の試験条件の1つを評価する、ステップと、
前記複数の試験条件の1つを各々評価するブーストされた決定株へと前記受信された有限状態機械に含まれる前記情報を変換するステップと、
前記複数のブーストされた決定株に基づいて、前記モバイルデバイスにおいて簡潔な分類器モデルの群を生成するステップと、
前記モバイルデバイスの前記プロセッサを介して、前記複数の試験条件の中の試験条件のサブセットを評価する前記複数のブーストされた決定株内のブーストされた決定株を含み優先順位付ける、アプリケーションの種類に固有の簡潔な分類器モデルを生成するステップであって、試験条件の前記サブセットは、1つの種類のソフトウェアアプリケーションによって使用されるモバイルデバイスの特徴を評価するものとして決定され、前記1つの種類のソフトウェアアプリケーションは、前記モバイルデバイス上で実行するのに適していると判定される、ステップと、
簡潔な分類器モデルの前記群から、ある簡潔な分類器モデルを選択するステップと、
収集された挙動情報を、前記生成されたアプリケーションの種類に固有の簡潔な分類器モデルおよび前記選択された簡潔な分類器モデルに並列に適用して、前記モバイルデバイスの挙動を分類するステップと、
備える、方法。
【請求項２】
モバイルデバイスのコンポーネントから挙動情報を収集することによって、ある期間にわたって前記挙動を監視するステップをさらに備え、
収集された挙動情報を、前記生成されたアプリケーションの種類に固有の簡潔な分類器モデルおよび前記選択された簡潔な分類器モデルに並列に適用して、前記モバイルデバイスの挙動を分類するステップは、
前記挙動情報を使用して特徴ベクトルを生成するステップと、
前記生成された特徴ベクトルを前記アプリケーションの種類に固有の分類器モデルに適用することによって、前記アプリケーションの種類に固有の分類器モデルに含まれる各試験条件を評価するステップと、
前記アプリケーションの種類に固有の分類器モデルの中の試験条件を評価した各結果の加重平均を計算するステップと、
前記計算された加重平均に基づいて、前記挙動が良性であるかどうかを判定するステップと
を備える、請求項1に記載の方法。
【請求項３】
前記アプリケーションの種類に固有の簡潔な分類器モデルを生成するステップが、
モバイルデバイスの過剰な量のリソースを消費することなく、前記挙動を分類するために評価されるべきある数の固有の試験条件を決定するステップ、
をさらに備える、請求項1に記載の方法。
【請求項４】
ソフトウェアアプリケーションを監視して、前記ソフトウェアアプリケーションの状態、前記ソフトウェアアプリケーションの構成、前記ソフトウェアアプリケーションの動作、および前記ソフトウェアアプリケーションの機能のうちの1つにおける変化を検出するステップをさらに備える、請求項1に記載の方法。
【請求項５】
前記検出された変化と関連付けられる特徴を特定するステップと、
前記特定された特徴が前記アプリケーションの種類に固有の簡潔な分類器モデルに含まれるかどうかを判定するステップと、
前記特定された特徴が前記アプリケーションの種類に固有の簡潔な分類器モデルに含まれないと判定したことに応答して、前記特定された特徴を評価する前記複数の試験条件の中のある試験条件を特定し、前記特定された試験条件を前記アプリケーションの種類に固有の簡潔な分類器モデルに追加するステップとをさらに備える、請求項4に記載の方法。
【請求項６】
挙動情報の集積をサーバにおいて受信し、
挙動情報の前記集積に基づいて有限状態機械を生成し、
前記有限状態機械を前記モバイルデバイスに送信する
ことによって、前記有限状態機械を前記サーバにおいて生成するステップをさらに備える、請求項1に記載の方法。
【請求項７】
モバイルコンピューティングデバイスであって、
メモリと、
前記メモリに結合されたプロセッサとを備え、前記プロセッサが、
複数のブーストされた決定株への変換に適した情報を含む有限状態機械を受信するステップであって、前記ブーストされた決定株の各々は複数の試験条件の1つを評価する、ステップと、
前記複数の試験条件の1つを各々評価するブーストされた決定株へと前記受信された有限状態機械に含まれる前記情報を変換するステップと、
前記複数のブーストされた決定株に基づいて、簡潔な分類器モデルの群を生成するステップと、
前記複数の試験条件の中の試験条件のサブセットを評価する前記複数のブーストされた決定株内のブーストされた決定株を含み優先順位付ける、アプリケーションの種類に固有の簡潔な分類器モデルを生成するステップであって、試験条件の前記サブセットは、1つの種類のソフトウェアアプリケーションによって使用されるモバイルデバイスの特徴を評価するものとして決定され、前記1つの種類のソフトウェアアプリケーションは、前記モバイルデバイス上で実行するのに適していると判定される、ステップと、
簡潔な分類器モデルの前記群から、ある簡潔な分類器モデルを選択するステップと、
収集された挙動情報を、前記生成されたアプリケーションの種類に固有の簡潔な分類器モデルおよび前記選択された簡潔な分類器モデルに並列に適用して、前記モバイルコンピューティングデバイスの挙動を分類するステップと、
を備える動作を実行するようにプロセッサ実行可能命令によって構成される、モバイルコンピューティングデバイス。
【請求項８】
前記プロセッサが、モバイルデバイスのコンポーネントから挙動情報を収集することによって、ある期間にわたって前記挙動を監視するステップをさらに備える動作を実行するように、プロセッサ実行可能命令によって構成され、
収集された挙動情報を、前記生成されたアプリケーションの種類に固有の簡潔な分類器モデルおよび前記選択された簡潔な分類器モデルに並列に適用して、前記モバイルデバイスの挙動を分類するステップは、
前記挙動情報を使用して特徴ベクトルを生成するステップと、
前記生成された特徴ベクトルを前記アプリケーションの種類に固有の分類器モデルに適用することによって、前記アプリケーションの種類に固有の分類器モデルに含まれる各試験条件を評価するステップと、
前記アプリケーションの種類に固有の分類器モデルの中の試験条件を評価した各結果の加重平均を計算するステップと、
前記計算された加重平均に基づいて、前記挙動が良性であるかどうかを判定するステップと
を備えるように、動作を実行するように前記プロセッサがプロセッサ実行可能命令によって構成される、請求項7に記載のモバイルコンピューティングデバイス。
【請求項９】
前記アプリケーションの種類に固有の簡潔な分類器モデルを生成するステップが、
モバイルデバイスの過剰な量のリソースを消費することなく、前記挙動を分類するために評価されるべきある数の固有の試験条件を決定するステップ、
を備えるように、動作を実行するように前記プロセッサがプロセッサ実行可能命令によって構成される、請求項7に記載のモバイルコンピューティングデバイス。
【請求項１０】
動作をモバイルデバイスのプロセッサに実行させるように構成されるプロセッサ実行可能ソフトウェア命令を記憶した、コンピュータ可読記憶媒体であって、前記動作が、
複数のブーストされた決定株への変換に適した情報を含む有限状態機械を受信するステップであって、前記ブーストされた決定株の各々は複数の試験条件の1つを評価する、ステップと、
前記複数の試験条件の1つを各々評価するブーストされた決定株へと前記受信された有限状態機械に含まれる前記情報を変換するステップと、
前記複数のブーストされた決定株に基づいて、前記モバイルデバイスにおいて簡潔な分類器モデルの群を生成するステップと、
前記複数の試験条件の中の試験条件のサブセットを評価する前記複数のブーストされた決定株内のブーストされた決定株を含み優先順位付ける、アプリケーションの種類に固有の簡潔な分類器モデルを生成するステップであって、試験条件の前記サブセットは、1つの種類のソフトウェアアプリケーションによって使用されるモバイルデバイスの特徴を評価するものとして決定され、前記1つの種類のソフトウェアアプリケーションは、前記モバイルデバイス上で実行するのに適していると判定される、ステップと、
簡潔な分類器モデルの前記群から、ある簡潔な分類器モデルを選択するステップと、
収集された挙動情報を、前記生成されたアプリケーションの種類に固有の簡潔な分類器モデルおよび前記選択された簡潔な分類器モデルに並列に適用して、前記モバイルデバイスの挙動を分類するステップと、
を備える、コンピュータ可読記憶媒体。
【請求項１１】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、モバイルデバイスのコンポーネントから挙動情報を収集することによって、ある期間にわたって前記挙動を監視するステップをさらに備える動作を、プロセッサに実行させるように構成され、
収集された挙動情報を、前記生成されたアプリケーションの種類に固有の簡潔な分類器モデルおよび前記選択された簡潔な分類器モデルに並列に適用して、前記モバイルデバイスの挙動を分類するステップは、
前記挙動情報を使用して特徴ベクトルを生成するステップと、
前記生成された特徴ベクトルを前記アプリケーションの種類に固有の分類器モデルに適用することによって、前記アプリケーションの種類に固有の分類器モデルに含まれる各試験条件を評価するステップと、
前記アプリケーションの種類に固有の分類器モデルの中の試験条件を評価した各結果の加重平均を計算するステップと、
前記計算された加重平均に基づいて、前記挙動が良性であるかどうかを判定するステップと
を備えるように、動作をプロセッサに実行させるように前記記憶されたプロセッサ実行可能ソフトウェア命令が構成される、請求項10に記載のコンピュータ可読記憶媒体。
【請求項１２】
前記アプリケーションの種類に固有の簡潔な分類器モデルを生成するステップがさらに、
モバイルデバイスの過剰な量のリソースを消費することなく、前記挙動を分類するために評価されるべきある数の固有の試験条件を決定するステップ、
を備えるように、動作をプロセッサに実行させるように前記記憶されたプロセッサ実行可能ソフトウェア命令が構成される
、請求項10に記載のコンピュータ可読記憶媒体。
【請求項１３】
モバイルコンピューティングデバイスであって、
複数のブーストされた決定株への変換に適した情報を含む有限状態機械を受信するための手段であって、前記ブーストされた決定株の各々は複数の試験条件の1つを評価する、手段と、
前記複数の試験条件の1つを各々評価するブーストされた決定株へと前記受信された有限状態機械に含まれる前記情報を変換するための手段と、
前記複数のブーストされた決定株に基づいて、簡潔な分類器モデルの群を生成するための手段と、
前記複数の試験条件の中の試験条件のサブセットを評価する前記複数のブーストされた決定株内のブーストされた決定株を含み優先順位付ける、アプリケーションの種類に固有の簡潔な分類器モデルを生成するための手段であって、試験条件の前記サブセットは、1つの種類のソフトウェアアプリケーションによって使用されるモバイルデバイスの特徴を評価するものとして決定され、前記1つの種類のソフトウェアアプリケーションは、前記モバイルデバイス上で実行するのに適していると判定される、手段と、
簡潔な分類器モデルの前記群から、ある簡潔な分類器モデルを選択するための手段と、
収集された挙動情報を、前記生成されたアプリケーションの種類に固有の簡潔な分類器モデルおよび前記選択された簡潔な分類器モデルに並列に適用して、前記モバイルコンピューティングデバイスの挙動を分類するための手段と、
を備える、モバイルコンピューティングデバイス。
【請求項１４】
モバイルデバイスのコンポーネントから挙動情報を収集することによって、ある期間にわたって前記挙動を監視するための手段をさらに備え、
収集された挙動情報を、前記生成されたアプリケーションの種類に固有の簡潔な分類器モデルおよび前記選択された簡潔な分類器モデルに並列に適用して、前記モバイルデバイスの挙動を分類するための手段は、
前記挙動情報を使用して特徴ベクトルを生成するための手段と、
前記生成された特徴ベクトルを前記アプリケーションの種類に固有の分類器モデルに適用することによって、前記アプリケーションの種類に固有の分類器モデルに含まれる各試験条件を評価するための手段と、
前記アプリケーションの種類に固有の分類器モデルの中の試験条件を評価した各結果の加重平均を計算するための手段と、
前記計算された加重平均に基づいて、前記挙動が良性であるかどうかを判定するための手段と
を備える、請求項13に記載のモバイルコンピューティングデバイス。
【請求項１５】
前記アプリケーションの種類に固有の簡潔な分類器モデルを生成するための手段がさらに、
モバイルデバイスの過剰な量のリソースを消費することなく、前記挙動を分類するために評価されるべきある数の固有の試験条件を決定するための手段、
を備える、請求項13に記載のモバイルコンピューティングデバイス。
【請求項１６】
前記ソフトウェアアプリケーションを監視して、前記ソフトウェアアプリケーションの状態、前記ソフトウェアアプリケーションの構成、前記ソフトウェアアプリケーションの動作、および前記ソフトウェアアプリケーションの機能のうちの1つにおける変化を検出するための手段をさらに備える、請求項13に記載のモバイルコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、すべての目的でその内容全体が参照によって本明細書に組み込まれる、2013年12月6日に出願された「Methods and Systems of Using Application-Specific and Application-Type-Specific Models for the Efficient Classification of Mobile Device Behaviors」という表題の米国仮出願第61/912,624号の優先権の利益を主張する。
【背景技術】
【０００２】
セルラー通信技術およびワイヤレス通信技術は、過去数年の間に爆発的な成長をとげている。この成長は、より優れた通信、ハードウェア、より大きいネットワーク、およびより信頼できるプロトコルによって加速されている。結果として、ワイヤレスサービスプロバイダは今や、情報、リソース、および通信に対する前例のないレベルのアクセスを、顧客に提供することができる。
【０００３】
これらのサービス向上と歩調を合わせて、モバイル電子デバイス(たとえば、携帯電話、タブレット、ラップトップなど)は、これまでよりも強力かつ複雑になってきている。この複雑さは、悪意のあるソフトウェア、ソフトウェアの競合、ハードウェアの欠陥、および他の同様のエラーまたは現象が、モバイルデバイスの長期的かつ継続的な性能および電力利用レベルに悪影響を与える新たな機会を生み出した。したがって、モバイルデバイスの長期的かつ継続的な性能および電力利用レベルに悪影響を与える可能性がある条件および/またはモバイルデバイスの挙動を特定し修正することは、消費者に対して有益である。
【発明の概要】
【課題を解決するための手段】
【０００４】
様々な態様は、複数の試験条件を含む完全な分類器モデルをモバイルデバイスのプロセッサにおいて受信し、モバイルデバイスのソフトウェアアプリケーションまたはモバイルデバイス上で実行され得るある種類のソフトウェアアプリケーションによって使用されるモバイルデバイスの特徴を特定し、特定されたモバイルデバイスの特徴を評価する複数の試験条件の中の試験条件を特定し、特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成し(アプリケーションベースの分類器モデルはアプリケーション固有の分類器モデルまたはアプリケーションの種類に固有の分類器モデルである)、モバイルデバイスの中の生成されたアプリケーションベースの分類器モデルを使用してモバイルデバイスの挙動を分類することによって、モバイルデバイスにおいてデータモデルを生成する方法を含む。
【０００５】
ある態様では、モバイルデバイスの特徴を特定するステップは、ソフトウェアアプリケーションによって使用されるモバイルデバイスの特徴を特定するステップを含んでよく、アプリケーションベースの分類器モデルを生成するステップは、アプリケーション固有の分類器モデルを生成するステップを含んでよい。さらなる態様では、モバイルデバイスの特徴を特定するステップは、モバイルデバイス上で実行され得る1つの種類のソフトウェアアプリケーションによって使用されるモバイルデバイスの特徴を特定するステップを含んでよく、アプリケーションベースの分類器モデルを生成するステップは、アプリケーションの種類に固有の分類器モデルを生成するステップを含んでよい。
【０００６】
さらなる態様では、方法は、モバイルデバイスのコンポーネントから挙動情報を収集することによって、ある期間にわたって挙動を監視するステップを含み得る。さらなる態様では、モバイルデバイスにおいてアプリケーションベースの分類器モデルを使用してモバイルデバイスの挙動を分類するステップは、挙動情報を使用して特徴ベクトルを生成するステップと、アプリケーションベースの分類器モデルに生成された特徴ベクトルを適用することによって、アプリケーションベースの分類器モデルに含まれる各試験条件を評価するステップと、アプリケーションベースの分類器モデルの中の試験条件を評価した各結果の加重平均を計算するステップと、加重平均に基づいてその挙動が悪性かまたは良性かを判定するステップとを含み得る。
【０００７】
さらなる態様では、複数の試験条件を特定する完全な分類器モデルを受信するステップは、複数の試験条件の1つを各々評価する複数の決定ノードへの変換に適した情報を含み得る、有限状態機械を受信するステップを含み得る。ある態様では、特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するステップは、ソフトウェアアプリケーションに関連があるモバイルデバイスの特徴および/またはソフトウェアアプリケーションの種類に関連があるモバイルデバイスの特徴の1つを評価する決定ノードを含むように、アプリケーションベースの分類器モデルを生成するステップを含み得る。
【０００８】
さらなる態様では、特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するステップは、過剰な量のモバイルデバイスのリソース(たとえば、メモリ、処理、およびバッテリーのリソース)を消費することなく挙動を分類するために評価されるべきある数の固有の試験条件を決定するステップと、完全な分類器モデルにおいて複数の試験条件を順次網羅的に検討し、ソフトウェアアプリケーションによりアクセスされ使用され得る特徴に関連がある試験条件を、試験条件のリストが決定された数の固有の試験条件を含むまで試験条件のリストへと挿入することによって、試験条件のリストを生成するステップと、試験条件の生成されたリストに含まれる試験条件の1つを試験する、完全な分類器モデルに含まれる決定ノードを含むようにアプリケーションベースの分類器モデルを生成するステップとを含み得る。
【０００９】
さらなる態様では、複数の試験条件を特定する完全な分類器モデルを受信するステップは、有限状態機械を受信するステップを含み得る。さらなる態様では、方法は、複数の試験条件の1つを各々評価するブーストされた決定株へと有限状態機械を変換するステップと、ブーストされた決定株に基づいてモバイルデバイスにおいて簡潔な分類器モデルの群を生成するステップと、簡潔な分類器モデルの群からある簡潔な分類器モデルを選択するステップと、収集された挙動情報をアプリケーションベースの分類器モデルおよび選択された簡潔な分類器モデルに並列に適用するステップとを含む。
【００１０】
さらなる態様では、モバイルデバイスの特徴を特定するステップは、ソフトウェアアプリケーションによって使用されるモバイルデバイスの特徴を特定するステップを含み得る。さらなる態様では、方法は、ソフトウェアアプリケーションを監視して、ソフトウェアアプリケーションの状態、ソフトウェアアプリケーションの構成、ソフトウェアアプリケーションの動作、およびソフトウェアアプリケーションの機能のうちの1つにおける変化を検出するステップを含み得る。さらなる態様では、方法は、変化を検出したことに応答して、試験条件の更新されたセットを含むようにアプリケーションベースの分類器モデルを変更するステップと、変更されたアプリケーションベースの分類器モデルを使用してモバイルデバイスの挙動を再分類するステップとを含み得る。
【００１１】
さらなる態様では、ソフトウェアアプリケーションを監視するステップおよび変化を検出したことに応答して試験条件の更新されたセットを含むようにアプリケーションベースの分類器モデルを変更するステップは、検出された変化と関連付けられる特徴を特定するステップと、特定された特徴がアプリケーションベースの分類器モデルの中に含まれるかどうかを判定するステップと、特定された特徴を評価する複数の試験条件の中のある試験条件を特定するステップと、特定された特徴がアプリケーションベースの分類器モデルに含まれないと判定したことに応答して、特定された試験条件をアプリケーションベースの分類器モデルに追加するステップとを含み得る。さらなる態様では、方法は、挙動情報の集積をサーバにおいて受信することによってサーバにおいて完全な分類器モデルを生成するステップと、複数のブーストされた決定株への変換に適したデータを含むように挙動情報の集積に基づいて有限状態機械を生成するステップと、有限状態機械を完全な分類器モデルとしてモバイルデバイスに送信するステップとを含み得る。
【００１２】
さらなる態様は、複数の試験条件を含む完全な分類器モデルを受信するステップと、モバイルコンピューティングデバイスのソフトウェアアプリケーション、およびモバイルコンピューティングデバイス上で実行され得るある種類のソフトウェアアプリケーションのうちの1つによって使用されるモバイルデバイスの特徴を特定するステップと、特定されたモバイルデバイスの特徴を評価する複数の試験条件の中の試験条件を特定するステップと、特定された試験条件を優先順位付けるアプリケーションベースの分類器モデル(すなわち、アプリケーション固有の分類器モデルまたはアプリケーションの種類に固有の分類器モデル)を生成するステップと、生成されたアプリケーションベースの分類器モデルを使用してモバイルコンピューティングデバイスの挙動を分類するステップとを含み得る動作を実行するように、プロセッサ実行可能命令によって構成されるプロセッサを有する、モバイルデバイスコンピューティングデバイスを含む。
【００１３】
ある態様では、モバイルデバイスの特徴を特定するステップが、ソフトウェアアプリケーションによって使用されるモバイルデバイスの特徴を特定するステップを含み得るとともに、アプリケーションベースの分類器モデルを生成するステップが、アプリケーション固有の分類器モデルを生成するステップを含み得るように、プロセッサが動作を実行するようにプロセッサ実行可能命令によって構成され得る。さらなる態様では、モバイルデバイスの特徴を特定するステップが、モバイルコンピューティングデバイス上で実行され得る1つの種類のソフトウェアアプリケーションによって使用されるモバイルデバイスの特徴を特定するステップを含み得るとともに、アプリケーションベースの分類器モデルを生成するステップが、アプリケーションの種類に固有の分類器モデルを生成するステップを含み得るように、プロセッサが動作を実行するようにプロセッサ実行可能命令によって構成され得る。
【００１４】
さらなる態様では、プロセッサは、モバイルデバイスのコンポーネントから挙動情報を収集することによって、ある期間にわたって挙動を監視するステップをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成され得る。さらなる態様では、アプリケーションベースの分類器モデルを使用して挙動を分類するステップが、挙動情報を使用して特徴ベクトルを生成するステップと、アプリケーションベースの分類器モデルに生成された特徴ベクトルを適用することによって、アプリケーションベースの分類器モデルに含まれる各試験条件を評価するステップと、アプリケーションベースの分類器モデルの中の試験条件を評価した各結果の加重平均を計算するステップと、加重平均に基づいてその挙動が悪性かまたは良性かを判定するステップとを含み得るように、プロセッサが動作を実行するようにプロセッサ実行可能命令によって構成され得る。
【００１５】
さらなる態様では、プロセッサは、複数の試験条件を特定する完全な分類器モデルを受信するステップが、複数の試験条件の1つを各々評価する複数の決定ノードへの変換に適した情報を含む有限状態機械を受信するステップを含み得るとともに、特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するステップが、ソフトウェアアプリケーションに関連があるモバイルデバイスの特徴およびソフトウェアアプリケーションの種類に関連があるモバイルデバイスの特徴のうちの1つを評価する決定ノードを含むようにアプリケーションベースの分類器モデルを生成するステップを含み得るように、プロセッサが動作を実行するようにプロセッサ実行可能命令によって構成され得る。
【００１６】
さらなる態様では、特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するステップがさらに、過剰な量のモバイルデバイスのリソースを消費することなく挙動を分類するために評価されるべきある数の固有の試験条件を決定するステップと、完全な分類器モデルにおいて複数の試験条件を順次網羅的に検討し、ソフトウェアアプリケーションによりアクセスされ使用され得る特徴に関連がある試験条件を、試験条件のリストがその数の固有の試験条件を含むまで試験条件のリストへと挿入することによって、試験条件のリストを生成するステップと、試験条件の生成されたリストに含まれる試験条件の1つを試験する、完全な分類器モデルの中の決定ノードを含むようにアプリケーションベースの分類器モデルを生成するステップとを含み得るように、プロセッサが動作を実行するようにプロセッサ実行可能命令によって構成され得る。
【００１７】
さらなる態様は、複数の試験条件を含む完全な分類器モデルを受信するステップと、ソフトウェアアプリケーション、およびモバイルデバイス上で実行され得るある種類のソフトウェアアプリケーションのうちの1つによって使用されるモバイルデバイスの特徴を特定するステップと、特定されたモバイルデバイスの特徴を評価する複数の試験条件の中の試験条件を特定するステップと、特定された試験条件を優先順位付けるアプリケーションベースの分類器モデル(たとえば、アプリケーション固有の分類器モデルまたはアプリケーションの種類に固有の分類器モデル)を生成するステップと、生成されたアプリケーションベースの分類器モデルを使用してモバイルデバイスの挙動を分類するステップとを含み得る動作をプロセッサに実行させるように構成されるプロセッサ実行可能ソフトウェア命令を記憶した、非一時的コンピュータ可読記憶媒体を含む。
【００１８】
ある態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、モバイルデバイスの特徴を特定するステップが、ソフトウェアアプリケーションによって使用されるモバイルデバイスの特徴を特定するステップを含み得るとともに、アプリケーションベースの分類器モデルを生成するステップが、アプリケーション固有の分類器モデルを生成するステップを含み得るように、プロセッサに動作を実行させるように構成され得る。さらなる態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、モバイルデバイスの特徴を特定するステップが、モバイルデバイス上で実行され得る1つの種類のソフトウェアアプリケーションによって使用されるモバイルデバイスの特徴を特定するステップを含み得るとともに、アプリケーションベースの分類器モデルを生成するステップが、アプリケーションの種類に固有の分類器モデルを生成するステップを含み得るように、プロセッサに動作を実行させるように構成され得る。
【００１９】
さらなる態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、モバイルデバイスのコンポーネントから挙動情報を収集することによって、ある期間にわたって挙動を監視するステップをさらに含む動作を、プロセッサに実行させるように構成され得る。さらなる態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、アプリケーションベースの分類器モデルを使用してモバイルデバイスの挙動を分類するステップが、挙動情報を使用して特徴ベクトルを生成するステップと、アプリケーションベースの分類器モデルに生成された特徴ベクトルを適用することによって、アプリケーションベースの分類器モデルに含まれる各試験条件を評価するステップと、アプリケーションベースの分類器モデルの中の試験条件を評価した各結果の加重平均を計算するステップと、加重平均に基づいてその挙動が悪性かまたは良性かを判定するステップとを含み得るように、プロセッサに動作を実行させるように構成され得る。
【００２０】
さらなる態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、複数の試験条件を特定する完全な分類器モデルを受信するステップが、複数の試験条件の1つを各々評価する複数の決定ノードへの変換に適した情報を含む有限状態機械を受信するステップを含み得るとともに、特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するステップが、ソフトウェアアプリケーションまたはソフトウェアアプリケーションの種類に関連があるモバイルデバイスの特徴を評価する決定ノードを含むようにアプリケーションベースの分類器モデルを生成するステップを含み得るように、プロセッサに動作を実行させるように構成され得る。
【００２１】
さらなる態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するステップがさらに、過剰な量のモバイルデバイスのリソースを消費することなく挙動を分類するために評価されるべきある数の固有の試験条件を決定するステップと、完全な分類器モデルにおいて複数の試験条件を順次網羅的に検討し、ソフトウェアアプリケーションによりアクセスされ使用され得る特徴に関連がある試験条件を、試験条件のリストがその数の固有の試験条件を含むまで試験条件のリストへと挿入することによって、試験条件のリストを生成するステップと、試験条件の生成されたリストに含まれる試験条件の1つを試験する、完全な分類器モデルの中の決定ノードを含むようにアプリケーションベースの分類器モデルを生成するステップとを含み得るように、プロセッサに動作を実行させるように構成され得る。
【００２２】
さらなる態様は、複数の試験条件を含む完全な分類器モデルを受信するための手段と、ソフトウェアアプリケーションまたはモバイルコンピューティングデバイス上で実行され得るある種類のソフトウェアアプリケーションによって使用されるモバイルデバイスの特徴を特定するための手段と、特定されたモバイルデバイスの特徴を評価する複数の試験条件の中の試験条件を特定するための手段と、特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するための手段と、生成されたアプリケーションベースの分類器モデルを使用してモバイルコンピューティングデバイスの挙動を分類するための手段とを含み得る、コンピューティングデバイスを含む。
【００２３】
ある態様では、モバイルデバイスの特徴を特定するための手段は、ソフトウェアアプリケーションによって使用されるモバイルデバイスの特徴を特定するための手段を含み得る。さらなる態様では、アプリケーションベースの分類器モデルを生成するための手段は、アプリケーション固有の分類器モデルを生成するための手段を含み得る。ある態様では、モバイルデバイスの特徴を特定するための手段は、モバイルコンピューティングデバイス上で実行され得る1つの種類のソフトウェアアプリケーションによって使用されるモバイルデバイスの特徴を特定するための手段を含んでよく、アプリケーションベースの分類器モデルを生成するための手段は、アプリケーションの種類に固有の分類器モデルを生成するための手段を含んでよい。
【００２４】
さらなる態様では、コンピューティングデバイスは、モバイルデバイスのコンポーネントから挙動情報を収集することによって、ある期間にわたって挙動を監視するための手段を含み得る。さらなる態様では、アプリケーションベースの分類器モデルを使用してモバイルコンピューティングデバイスの挙動を分類するための手段は、挙動情報を使用して特徴ベクトルを生成するための手段と、アプリケーションベースの分類器モデルに生成された特徴ベクトルを適用することによって、アプリケーションベースの分類器モデルに含まれる各試験条件を評価するための手段と、アプリケーションベースの分類器モデルの中の試験条件を評価した各結果の加重平均を計算するための手段と、加重平均に基づいてその挙動が悪性かまたは良性かを判定するための手段とを含み得る。
【００２５】
さらなる態様では、複数の試験条件を特定する完全な分類器モデルを受信するための手段は、複数の試験条件の1つを各々評価する複数の決定ノードへの変換に適した情報を含む有限状態機械を受信するための手段を含んでよく、特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するための手段は、ソフトウェアアプリケーションに関連があるモバイルデバイスの特徴またはソフトウェアアプリケーションの種類に関連があるモバイルデバイスの特徴を評価する決定ノードを含むようにアプリケーションベースの分類器モデルを生成するための手段を含んでよい。
【００２６】
さらなる態様では、特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するための手段はさらに、過剰な量のモバイルデバイスのリソースを消費することなく挙動を分類するために評価されるべきある数の固有の試験条件を決定するための手段と、完全な分類器モデルにおいて複数の試験条件を順次網羅的に検討し、ソフトウェアアプリケーションによりアクセスされ使用され得る特徴に関連がある試験条件を、試験条件のリストがその数の固有の試験条件を含むまで試験条件のリストへと挿入することによって、試験条件のリストを生成するための手段と、試験条件の生成されたリストに含まれる試験条件の1つを試験する、完全な分類器モデルの中の決定ノードを含むようにアプリケーションベースの分類器モデルを生成するための手段とを含み得る。
【００２７】
さらなる態様では、複数の試験条件を特定する完全な分類器モデルを受信するための手段は、有限状態機械を受信するための手段を含み得る。さらなる態様では、モバイルコンピューティングデバイスはさらに、複数の試験条件の1つを各々評価するブーストされた決定株へと有限状態機械を変換するための手段と、ブーストされた決定株に基づいて簡潔な分類器モデルの群を生成するための手段と、簡潔な分類器モデルの群からある簡潔な分類器モデルを選択するための手段と、収集された挙動情報をアプリケーションベースの分類器モデルおよび選択された簡潔な分類器モデルに並列に適用するための手段とを含み得る。
【００２８】
さらなる態様では、モバイルデバイスの特徴を特定するための手段は、ソフトウェアアプリケーションによって使用されるモバイルデバイスの特徴を特定するための手段を含み得る。さらなる態様では、モバイルコンピューティングデバイスはさらに、ソフトウェアアプリケーションを監視して、ソフトウェアアプリケーションの状態、ソフトウェアアプリケーションの構成、ソフトウェアアプリケーションの動作、およびソフトウェアアプリケーションの機能のうちの1つにおける変化を検出するための手段を含み得る。さらなる態様では、コンピューティングデバイスは、変化を検出したことに応答して、試験条件の更新されたセットを含むようにアプリケーションベースの分類器モデルを変更するための手段と、変更されたアプリケーションベースの分類器モデルを使用して挙動を再分類するための手段とを含み得る。
【００２９】
本明細書に組み込まれ、本明細書の一部を構成している添付の図面は、本発明の例示的な態様を示すものであり、上で与えられた全般的な説明、および下で与えられる詳細な説明とともに、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【００３０】
【図１】様々な態様とともに使用するのに適した、例示的な遠隔通信システムのネットワークコンポーネントを示す通信システムブロック図である。
【図２】特定のモバイルデバイスの挙動が悪性であるか、性能を劣化させるか、疑わしいか、または良性であるかを判定するように構成される、ある態様のモバイルデバイスにおける例示的な論理コンポーネントおよび情報フローを示すブロック図である。
【図３】特定のモバイルデバイスの挙動が悪性であるか、性能を劣化させるか、疑わしいか、または良性であるかを判定するようにモバイルデバイスとともに働くように構成される、ネットワークサーバを含むある態様のシステム中の例示的なコンポーネントおよび情報フローを示すブロック図である。
【図４】データ、挙動ベクトル、または分類器モデルを再訓練することなくアプリケーションベースの分類器モデルを生成するように構成されるモバイルデバイスを含む、ある態様のシステム中の例示的なコンポーネントおよび情報フローを示すブロック図である。
【図５Ａ】複数のソフトウェアアプリケーションにマッピングされる例示的な分類器モデルの図である。
【図５Ｂ】モバイルデバイスにおいてローカルにアプリケーションベースの分類器モデルを生成する別の態様のモバイルデバイスの方法を示すプロセスフロー図である。
【図６】モバイルデバイスにおいてローカルにアプリケーションベースの分類器モデルを生成する別の態様のモバイルデバイスの方法を示す別のプロセスフロー図である。
【図７】モバイルデバイスにおいてアプリケーションベースの分類器モデルまたは簡潔な分類器モデルを生成する別の態様のモバイルデバイスの方法を示すプロセスフロー図である。
【図８】簡潔な分類器モデルを生成するためにある態様のサーバプロセッサによって生成され、モバイルデバイスのプロセッサによって使用され得る例示的なブーストされた決定株の図である。
【図９】ある態様による、動的かつ適応的な観測を実行するように構成される観測器モジュール中の例示的な論理コンポーネントおよび情報フローを示すブロック図である。
【図１０】別の態様による、観測器デーモンを実装するコンピューティングシステム中の論理コンポーネントおよび情報フローを示すブロック図である。
【図１１】モバイルデバイス上で適応的な観測を実行するためのある態様の方法を示すプロセスフロー図である。
【図１２】ある態様において使用するのに適したモバイルデバイスのコンポーネントブロック図である。
【図１３】ある態様において使用するのに適したサーバデバイスのコンポーネントブロック図である。
【発明を実施するための形態】
【００３１】
様々な態様が、添付の図面を参照して詳細に説明される。可能である場合、同じまたは同様の部分を参照するために図面全体を通じて同じ参照番号が使用される。特定の例および実装形態へと行われる言及は、説明を目的とし、本発明の範囲または特許請求の範囲を限定するものではない。
【００３２】
概して、様々な態様は、包括的な挙動監視および分析システムの効率と性能を向上させ、ソフトウェアアプリケーションがモバイルデバイスの望ましくない挙動または性能を低下させる挙動の根源または原因であるかどうかをモバイルデバイスがより良く予測することを可能にするために、アプリケーション固有のおよび/またはアプリケーションの種類に固有の分類器モデル(すなわち、データまたは挙動モデル)を使用する方法と、その方法を実施するように構成されるモバイルデバイスとを含む。言及を簡単にするために、「アプリケーションベースの分類器モデル」という用語が、下で説明されるようなアプリケーション固有の分類器モデルとアプリケーションの種類に固有の分類器モデルのいずれかまたは両方に言及するために、本明細書および特許請求の範囲において使用される。
【００３３】
包括的な挙動監視および分析システムは、モバイルデバイスの性能および/または電力利用レベルをしばしば経時的に劣化させる条件および/またはモバイルデバイスの挙動をインテリジェントに、かつ効率的に特定し、分類し、モデル化し、防止し、かつ/または修正するように、互いに連携して働くように構成されるネットワークサーバとモバイルデバイスとを含み得る。ネットワークサーバは、中央データベース(たとえば、「クラウド」)から様々な条件、特徴、挙動および修正措置についての情報を受信し、この情報を使用して、モバイルデバイスによって1つまたは複数の簡潔な分類器モデルへ迅速に変換され得るフォーマットまたは構造で情報(たとえば、挙動情報)の大きな集積を記述する完全なまたはロバストな分類器モデル(たとえば、データ/挙動のモデル)を生成するように構成され得る。たとえば、ネットワークサーバは、モバイルデバイスの特徴を各々評価または試験し簡潔な分類器モデルに含まれ得る、複数の決定ノード(たとえば、ブーストされた決定木、ブーストされた決定株など)を含むように、完全な分類器モデルを生成することができる。
【００３４】
ネットワークサーバは、完全な分類器をモバイルデバイスに送信することができる。モバイルデバイスは、完全な分類器モデルを受信し使用して、簡潔な分類器モデルまたは複雑さ(または「簡潔さ」)のレベルが様々である簡潔な分類器モデルの群を生成するように構成され得る。これを達成するために、モバイルデバイスは、完全な分類器モデル内に含まれる決定ノードを削減し、選別し、または間引いて、減らされた数の決定ノードを含む、かつ/または限られた数の試験条件を評価する、簡潔な分類器モデルを生成することができる。
【００３５】
加えて、モバイルデバイスはまた、特定のソフトウェアアプリケーション(Google(登録商標) wallet)に、および/または特定の種類のソフトウェアアプリケーション(たとえば、ゲーム、ナビゲーション、金融、ニュース、生産性など)に関連がある、試験条件または特徴を特定するアプリケーション固有のおよび/またはアプリケーションの種類に固有の分類器モデルを動的に生成することができる。ある態様では、これらのアプリケーションベースの分類器モデル(すなわち、アプリケーション固有のモデルおよびアプリケーションの種類に固有の分類器モデル)は、受信された完全な分類器モデルに含まれる決定ノードの、または受信された完全な分類器モデルから生成された簡潔な分類器モデルに含まれる決定ノードの、削減された、かつより専心的なサブセットを含むように生成され得る。
【００３６】
様々な態様では、モバイルデバイスは、システム中の各ソフトウェアアプリケーションのための、および/またはシステム中の各種のソフトウェアアプリケーションのための、アプリケーションベースの分類器モデルを生成するように構成され得る。モバイルデバイスはまた、危険性が高い、または乱用されやすいソフトウェアアプリケーションおよび/またはアプリケーションの種類(たとえば、金融アプリケーション、point-of-saleアプリケーション、生体センサアプリケーションなど)を動的に特定し、危険性が高い、または乱用されやすいものとして特定されるソフトウェアアプリケーションおよび/またはアプリケーションの種類だけのためのアプリケーションベースの分類器モデルを生成するように構成され得る。様々な態様では、モバイルデバイスは、動的に、反応的に、前もって、および/または新しいアプリケーションがインストールもしくは更新されるたびに、アプリケーションベースの分類器モデルを生成するように構成され得る。
【００３７】
モバイルデバイスは、ローカルに生成された簡潔なおよび/またはアプリケーションベースの分類器モデルを使用して、リアルタイムの挙動監視および分析動作を実行するように構成され得る。ある態様では、モバイルデバイスは、複数の分類器モデルを並列に使用または適用するように構成され得る。様々な態様では、モバイルデバイスは、特定のソフトウェアアプリケーションを評価するときにより汎用的な簡潔な分類器モデルを同じまたは異なる挙動/特徴ベクトルに対して使用/適用することから生成される結果よりも、アプリケーションベースの分類器モデルを挙動/特徴ベクトルに対して使用または適用することから生成される結果に、選好または優先権を与えるように構成され得る。様々な態様では、モバイルデバイスは、分類器モデルを適用した結果を使用して、ソフトウェアアプリケーション、プロセス、または複合的なモバイルデバイスの挙動が、良性であるか、またはモバイルデバイスの性能もしくは電力消費特性の劣化に寄与しているかを予測することができる。
【００３８】
分類器モデルがアプリケーション固有の特徴またはアプリケーションの種類に固有の特徴に専念するように、またはそれらに基づくように、モバイルデバイスにおいて分類器モデルをローカルに動的に生成することによって、様々な態様は、モバイルデバイスが、特定のソフトウェアアプリケーションの動作がモバイルデバイスの望ましくない挙動または性能を低下させる挙動に寄与しているかどうかを判定するのに最も重要な少数の特徴に対する監視および分析動作に専念することを可能にする。このことは、モバイルデバイスの性能および電力消費特性を改善し、モバイルデバイスが過剰な量のモバイルデバイスのリソース(たとえば、処理、メモリ、またはエネルギーのリソース)を消費することなく、リアルタイムの挙動監視および分析動作を、継続的に、またはほぼ継続的に実行することを可能にする。
【００３９】
「例示的」という言葉は、「例、事例、または例示として役立つ」ことを意味するように本明細書において使用される。「例示的」として本明細書で説明されるいずれの実装形態も、必ずしも他の実装形態よりも好ましいか、または有利であると解釈されるべきではない。
【００４０】
「アプリケーションベースの分類器モデル」という語句は一般に、アプリケーション固有の分類器モデルとアプリケーションの種類に固有の分類器モデルの両方に集合的におよび選択的に言及するために本明細書において使用される。すなわち、アプリケーションベースの分類器モデルは、アプリケーション固有の分類器モデルまたはアプリケーションの種類に固有の分類器モデルであり得る。アプリケーション固有の分類器モデルは、データ、情報構造(たとえば、特徴ベクトル、挙動ベクトル、コンポーネントリストなど)、および/または個々のソフトウェアアプリケーションを評価するために使用され得る決定基準を、特定しまたは含む分類器モデルであってよい。アプリケーションの種類に固有の分類器モデルは、データ、情報構造、および/またはソフトウェアアプリケーション(たとえば、金融アプリケーション、生産性アプリケーションなど)の特定のクラス、カテゴリ、または種類を評価することに関する決定基準を、特定しまたは含む分類器モデルであってよい。
【００４１】
「モバイルコンピューティングデバイス」および「モバイルデバイス」という用語は、携帯電話、スマートフォン、パーソナルまたはモバイルのマルチメディアプレーヤ、携帯情報端末(PDA)、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、ウルトラブック、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応携帯電話、ワイヤレスゲームコントローラ、および、性能が重要であるメモリとプログラマブルプロセッサとを含み電力節減の方法が有益であるようなバッテリー電源で動作する同様のパーソナル電子デバイスの、任意の1つまたはすべてを指すように、本明細書では互換的に使用される。様々な態様は、限られたリソースを有しバッテリーで動作する、スマートフォンなどのモバイルコンピューティングデバイスに対して特に有用であるが、これらの態様は一般に、プロセッサを含みアプリケーションプログラムを実行する、任意の電子デバイスにおいて有用である。
【００４２】
一般に、モバイルデバイスの性能および電力効率は、時間とともに劣化する。近年、アンチウイルス会社(たとえば、McAfee、Symantecなど)は、この劣化を遅くすることを目的とするモバイル用アンチウイルス、ファイアウォール、および暗号化製品の販売を開始した。しかしながら、これらの解決法の多くは、モバイルデバイス上で計算集約的なスキャニングエンジンを定期的に実行することに依存しており、そのことは、モバイルデバイスの処理およびバッテリーのリソースの多くを消費し、モバイルデバイスを遅くさせるか、もしくはより長期間使えなくさせ、かつ/または別様にユーザ体験を劣化させることがある。加えて、これらの解決法は通常、知られているウイルスおよびマルウェアの検出に限定され、(たとえば、性能劣化がウイルスまたはマルウェアによって引き起こされないときに)経時的なモバイルデバイスの劣化に複合的に寄与することが多い、複数の複雑な要因および/または相互作用に対処しない。これらのおよび他の理由によって、既存のアンチウイルス、ファイアウォール、および暗号化製品は、経時的なモバイルデバイスの劣化に寄与し得る多数の要因を特定するための、モバイルデバイスの劣化を防止するための、または経年劣化したモバイルデバイスをその元の状態へと効率的に回復させるための、十分な解決法を提供しない。
【００４３】
現在、コンピューティングデバイス上で実行されるアプリケーションプログラムの挙動をモデル化するための様々な解決法が存在し、これらの解決法は、ソフトウェアアプリケーションが悪性かまたは良性かを判定するための機械学習技法とともに使用され得る。しかしながら、これらの解決法は、挙動情報の非常に大きな集積を評価することを必要とし、コンピューティングデバイスのアプリケーション固有のもしくはアプリケーションの種類に固有の特徴を考慮するように挙動モデルを動的に生成せず、挙動モデルの中の特徴をインテリジェントに優先順位付けず、個別のアプリケーションプログラムもしくはプロセスを評価することに限定され、かつ/またはモバイルデバイスにおける計算集約的なプロセスの実行を必要とするので、モバイルデバイス上での使用に適していない。したがって、モバイルデバイスにおいてこれらの既存の解決法を実施または実行することは、モバイルデバイスの応答性、性能、または電力消費特性に対して、大きな悪影響および/またはユーザが知覚できる影響を及ぼし得る。
【００４４】
たとえば、コンピューティングデバイスは、既存の機械学習ベースの解決法を使用して、訓練データの大きな集積を入手して使用し、入力として特徴ベクトルを用いるモデルを導出し、このモデルを使用してコンピューティングデバイスのソフトウェアアプリケーションが悪性かまたは良性かを判定するように構成され得る。しかしながら、そのような解決法は、簡潔な分類器モデルを迅速に生成するためにモバイルデバイスによって使用され得るフォーマットまたは情報構造(たとえば、有限状態機械など)で挙動情報の大きな集積を記述する、完全な分類器モデル(すなわち、ロバストなデータモデルまたは挙動モデル)を生成しない。少なくともこの理由で、そのような解決法は、個々のアプリケーションまたはアプリケーションの種類に固有の条件または特徴に専念しまたはそれらを優先順位付ける決定ノードを含む、簡潔な分類器モデルをモバイルデバイスが生成することを可能にしない。加えて、この解決法は、モバイルデバイスが、モデルが使用される特定のモバイルデバイスにおける特定の挙動、ソフトウェアアプリケーション、またはソフトウェアアプリケーションの種類を分類することに対する関連性に従って、特徴をインテリジェントに特定し優先順位付ける簡潔な分類器モデルを生成することを可能にしない。これらの、および他の理由で、そのような解決法は、モバイルデバイスの応答性、性能、または電力消費特性に対して大きな悪影響および/またはユーザが知覚できる影響を及ぼす複雑なモバイルデバイスの挙動に寄与するものとして、ソフトウェアアプリケーションを迅速かつ効率的に特定し、分析し、または分類するために、モバイルデバイスのプロセッサによって使用され得ない。
【００４５】
既存の解決法の上述された限界に加えて、多くの挙動モデル化の解決法は、コンピューティングデバイスの挙動をモデル化することに対して「万能の」手法を実施しており、したがってモバイルデバイスにおいて使用するのに適していない。すなわち、これらの解決法は通常、汎用的であるように、かつ多くのコンピューティングデバイスならびに/または多種多様なハードウェア構成およびソフトウェア構成で使用され得るように、挙動モデルを生成する。したがって、これらの汎用的な挙動モデルはしばしば、非常に多数の特徴を含み/試験し、特徴の多くは、実際に使用される特定のコンピューティングデバイスにおける特定のソフトウェアアプリケーションまたはアプリケーションの種類の挙動を特定し、分析し、または分類することに関連がない(かつ、したがってそのことのために使用され得ない)。加えて、これらの解決法は、モデルが使用される特定のモバイルデバイスにおける特定の挙動を分類することに対する関連性に基づいて、特徴に相対的な優先順位を割り当てない。したがって、これらの解決法は通常、多数の組織的ではない、不適切に優先順位付けられた、または無関係な特徴を含む挙動モデルをコンピューティングデバイスが適用することを必要とする。そのようなモデルは、モバイルデバイスの経時的な劣化の原因または根源を特定するために有用ではない多数の特徴をモバイルデバイスのプロセッサに分析させ得るので、リソースが制限されたモバイルデバイスにおいて使用するのに適していない。したがって、これらの既存の解決法は、複雑でありながらリソースが制約されたモバイルデバイスにおいて使用するのに適していない。
【００４６】
現代のモバイルデバイスは、高度に構成可能かつ複雑なシステムである。したがって、特定のモバイルデバイスの挙動が良性かまたは良性ではない(たとえば、悪性または性能を劣化させる)かを判定するために最も重要である特徴は、各モバイルデバイスにおいて異なり得る。さらに、特徴の異なる組合せは、特定の挙動が良性かまたは良性ではないかをそのモバイルデバイスが迅速かつ効率的に判定するために、各モバイルデバイスにおける監視および/または分析を必要とすることがある。しかし、監視および分析を必要とする特徴の厳密な組合せ、および各特徴または特徴の組合せの相対的な優先順位または重要性は、しばしば、挙動が監視または分析されるべき特定のモバイルデバイスから取得された、アプリケーション固有の、アプリケーションの種類に固有の、および/またはデバイス固有の情報を使用することでのみ、決定され得る。上記のおよび他の理由で、挙動モデルが使用される特定のデバイス以外の任意のコンピューティングデバイスにおいて生成された挙動モデルは、そのデバイスにおけるソフトウェアアプリケーションまたはモバイルデバイスの挙動を分類することに対して最も重要である、特徴の厳密な組合せを特定する情報を含み得ない。
【００４７】
たとえば、第1のモバイルデバイスが生体センサ(たとえば、指紋読取器、音声認識システム、網膜スキャナなど)を使用して金融取引を認証するように構成される場合、生体センサのアクセスおよび使用に関する条件を試験する特徴は、金融ソフトウェアにアクセスする観察された挙動がそのモバイルデバイスにおいて悪性かまたは良性かを判定することに関連する可能性が高い。たとえば、第1のモバイルデバイスにおける生体センサのアクセスおよび使用は、悪意のあるアプリケーションがユーザの認識または同意なく金融取引を認証していることを示すことがある。一方、生体センサを使用して金融取引を認証するように構成されていない第2のモバイルデバイスにおいては、これらのセンサのアクセスおよび使用に関する条件を試験する特徴は、金融ソフトウェアにアクセスする観察された挙動が悪性かまたは良性かを判定することに関連する可能性は低い。すなわち、第1のデバイスおよび第2のデバイスは、生体センサを使用するための構成を除き、すべての側面において同一(すなわち、同じ種類、モデル、オペレーティングシステム、ソフトウェアなど)であり得るので、両方のデバイスに対する生体センサのアクセスおよび使用に関する条件を評価する特徴を正確に特定する汎用的な挙動モデルを生成することは困難であろう。装備は同様であるが個別に構成可能な数十万(または数百万)のモバイルデバイスに対して、はるかに複雑な条件または特徴を試験する汎用的なモデルを生成することは、なお一層困難であろう。
【００４８】
加えて、モバイルデバイスは、比較的限られた処理、メモリ、およびエネルギーのリソースを有する、リソースが制約されたシステムである。現代のモバイルデバイスはまた、モバイルデバイスの性能および電力利用レベルの経時的な劣化に寄与し得る、多種多様な要因を有する複雑なシステムである。性能劣化に寄与し得る要因の例は、設計が不十分なソフトウェアアプリケーション、マルウェア、ウイルス、断片化されたメモリ、およびバックグラウンドプロセスを含む。これらの要因の数、多様性、および複雑さに起因して、現代のモバイルデバイスの複雑でありながらリソースが制約されたシステムの性能および/または電力利用レベルを劣化させ得る、様々なコンポーネント、挙動、プロセス、動作、条件、状態、または特徴(またはそれらの組合せ)のすべてを評価することは、実現可能ではないことが多い。したがって、ユーザ、オペレーティングシステム、またはアプリケーションプログラム(たとえば、アンチウイルスソフトウェアなど)が、そのような問題の根源を正確かつ効率的に特定することは困難である。結果として、モバイルデバイスのユーザは現在、モバイルデバイスの性能および電力利用レベルの経時的な劣化を防止するための、または経年劣化したモバイルデバイスをその元の性能および電力利用レベルに回復させるための措置をほとんど有していない。
【００４９】
様々な態様は、モバイルデバイスの性能および/または電力利用レベルをしばしば経時的に劣化させる、条件、要因、および/またはモバイルデバイスの挙動をインテリジェントかつ効率的に特定し、防止し、および/または修正するための、包括的な挙動監視および分析システムを含む。ある態様では、モバイルデバイスの観測器プロセス、デーモン、モジュール、またはサブシステム(本明細書では集合的に「モジュール」と呼ばれる)が、モバイルデバイスシステムの様々なレベルにおいて、様々なアプリケーションプログラミングインターフェース(API)、レジスタ、カウンタ、または他のモバイルデバイスのコンポーネント(本明細書では集合的に「取り付けられたコンポーネント」と呼ばれる)を取り付け、または協調させることができる。観測器モジュールは、取り付けられたコンポーネントから挙動情報を収集することによって、モバイルデバイスの挙動を継続的に(またはほぼ継続的に)監視することができる。モバイルデバイスはまた、分析器モジュールを含んでよく、観測器モジュールは、収集された挙動情報を(たとえば、メモリ書込み動作、関数呼出しなどを介して)分析器モジュールに通信することができる。分析器モジュールは、挙動情報を受信し使用して特徴ベクトルまたは挙動ベクトルを生成し、特徴/挙動ベクトルに基づいて空間的なおよび/または時間的な相関関係を生成し、この情報を使用して、特定のモバイルデバイスの挙動、条件、サブシステム、ソフトウェアアプリケーション、またはプロセスが、良性か、疑わしいか、または良性ではない(すなわち、悪性または性能を劣化させる)かを判定することができる。次いで、モバイルデバイスは、この分析の結果を使用して、特定された問題を解消し、回復させ、隔離し、または別様に修復もしくは応答することができる。
【００５０】
分析器モジュールはまた、リアルタイムの挙動分析動作を実行するように構成されてよく、リアルタイムの挙動分析動作は、データ、アルゴリズム、分類器またはモデル(本明細書では集合的に「分類器モデル」と呼ばれる)を収集された挙動情報に対して実施、実行、および/または適用して、ソフトウェアアプリケーションまたはモバイルデバイスの挙動が良性かまたは良性ではない(たとえば、悪性または性能を劣化させる)かを判定することを含み得る。各分類器モデルは、モバイルデバイスの挙動の特定の特徴または態様を評価するために、モバイルデバイスのプロセッサによって使用され得る、データおよび/または情報構造(たとえば、特徴ベクトル、挙動ベクトル、コンポーネントリストなど)を含む挙動モデルであり得る。各分類器モデルはまた、モバイルデバイスにおけるいくつかの特徴、要因、データポイント、エントリ、API、状態、条件、挙動、アプリケーション、プロセス、動作、コンポーネントなど(本明細書では集合的に「特徴」)を監視するための決定基準を含み得る。分類器モデルは、モバイルデバイスにプレインストールされてよく、ネットワークサーバからダウンロードもしくは受信されてよく、モバイルデバイス内で生成されてよく、またはそれらの任意の組合せであってよい。分類器モデルは、クラウドソーシングによる解決法、挙動モデル化技法、機械学習アルゴリズムなどを使用することによって、生成され得る。
【００５１】
各分類器モデルは、完全な分類器モデルまたは簡潔な分類器モデルとして分類され得る。完全な分類器モデルは、数千の特徴および数十億のエントリを含み得る大きな訓練データセットの関数として生成されるロバストなデータモデルであり得る。簡潔な分類器モデルは、特定のモバイルデバイスの挙動が良性かまたは良性ではない(たとえば、悪性または性能を劣化させる)かを判定することに最も関連がある特徴/エントリに対する試験を含みまたは優先順位付ける、縮小されたデータセットから生成された、より専心的なデータモデルであり得る。
【００５２】
ローカルで生成される簡潔な分類器モデルは、モバイルデバイスにおいて生成される簡潔な分類器モデルである。アプリケーションベースの分類器モデルは、アプリケーション固有の分類器モデルまたはアプリケーションの種類に固有の分類器モデルであり得る。アプリケーション固有の分類器モデルは、特定のソフトウェアアプリケーションが良性かまたは良性ではない(たとえば、悪性または性能を劣化させる)かを判定することに最も関連がある特徴/エントリに対する試験を含みまたは優先順位付ける、専心的なデータモデルを含む分類器モデルである。アプリケーションの種類に固有の分類器モデルは、特定の種類のソフトウェアアプリケーションが良性かまたは良性ではない(たとえば、悪性または性能を劣化させる)かを判定することに最も関連がある特徴/エントリに対する試験を含みまたは優先順位付ける、専心的なまたは優先順位付けられたデータモデルを含む分類器モデルである。
【００５３】
上述されたように、モバイルデバイスの劣化の原因または根源を適切に特定するために、分析を必要とする数千の特徴/要因および数十億のデータポイントが存在し得る。したがって、モバイルデバイスのすべてのメーカーおよびモデルをサポートし、モバイルデバイスごとに、特定のモバイルデバイスの挙動が良性かまたは良性ではない(たとえば、悪性または性能を劣化させる)かに関する正確な決定を行うために、分類器モデルは、非常に多数の特徴に対して訓練され得る。しかし、モバイルデバイスはリソースが制約されたシステムなので、モバイルデバイスがこれらすべての特徴を評価することは、実現可能ではないことが多い。さらに、モバイルデバイスは、多くの異なる構成および種類があり、多数の異なるソフトウェアアプリケーションまたはアプリケーションの種類を含み得る。しかし、(あったとしても)ごく少数のモバイルデバイスしか、完全な分類器モデルにおいて対処され得るすべての特徴または機能を含まない。様々な態様は、分析器モジュールが特定のモバイルデバイスのソフトウェアアプリケーションに最も関連がある特徴の標的サブセットを評価するために適用することができる、簡潔なアプリケーションベースの分類器モデルを生成し、モバイルデバイスの挙動を分類するときに汎用的なまたは完全な分類器モデルが使用されれば実行されたはずの試験条件および分析の数を制限する。
【００５４】
様々な態様は、モバイルデバイスの挙動が良性であるかまたは良性でない(たとえば、悪性であるまたは性能を劣化させる)かを判定することに最も関連がある特徴、要因、およびデータポイントをインテリジェントにかつ効率的に特定するために互いに連携して働くように構成される、モバイルデバイスおよびネットワークサーバを含む。モバイルデバイスにおいて、デバイス固有の特徴および/またはデバイスの状態に固有の特徴を考慮する簡潔な分類器モデルをローカルに生成することによって、様々な態様は、モバイルデバイスのプロセッサが、専心的な分類器モデルを適用して、モバイルデバイスの応答性、性能、または電力消費特性において大きな負の変化またはユーザが感知できる変化を引き起こすことなく、(たとえば、観測器モジュールおよび分析器モジュールを介して)複雑なモバイルデバイスの挙動を迅速かつ効率的に特定し、分析し、または分類することを可能にする。
【００５５】
完全な分類器モデルは、クラウドサービス/ネットワークから、モバイルデバイスの挙動に関する、ならびにそれらの挙動の間の、またはそれらの挙動を特徴付ける状態、特徴、および条件に関する、大量の情報を受信するように構成される、ネットワークサーバによって生成され得る。この情報は、モバイルデバイスの挙動ベクトルの非常に大きなクラウド集積の形態であり得る。ネットワークサーバは、この情報を使用して、挙動ベクトルの非常に大きなクラウド集積を正確に記述する、完全な分類器モデル(すなわち、ロバストなデータ/挙動モデル)を生成することができる。ネットワークサーバは、いくつかの異なるメーカー、モデル、および構成のモバイルデバイスのいずれかの経時的な劣化に寄与し得る、特徴、データポイント、および/または要因のすべてまたは大半を含むように、完全な分類器モデルを生成することができる。
【００５６】
ある態様では、ネットワークサーバは、モバイルデバイスのプロセッサにおける使用または実行に適した簡潔な分類器モデルへと、迅速かつ効率的に選別され、変更され、または変換され得る、ブーストされた決定木/株またはブーストされた決定木/株の群を含む情報構造であり得る、有限状態機械の表現または代表を含むように、完全な分類器モデルを生成することができる。有限状態機械の表現または代表(「有限状態機械」と省略される)は、試験条件、状態情報、状態遷移規則、および他の同様の情報を含む情報構造であり得る。ある態様では、有限状態機械は、各々がモバイルデバイスの挙動の特徴、条件、または態様を評価または試験する、ブーストされた決定株の大きなまたはロバストな群を含む情報構造であり得る。
【００５７】
モバイルデバイスは、ネットワークサーバから完全な分類器モデルを受信し、受信された完全な分類器モデルを使用して、モバイルデバイスの特徴および機能に固有の簡潔な分類器モデル(すなわち、データ/挙動モデル)を生成するように構成され得る。
【００５８】
様々な態様では、モバイルデバイスは、挙動のモデル化および機械学習技法を使用して、簡潔な分類器モデルをインテリジェントにかつ動的に生成することができ、その結果、簡潔な分類器モデルは、モバイルデバイスのデバイス固有の特徴および/もしくはデバイスの状態に固有の特徴(たとえば、モバイルデバイスの構成、機能、接続される/含まれるハードウェアなどに関連がある特徴)を考慮し、モバイルデバイスの経時的な劣化の原因または根源を特定するために重要であると判定された特徴の専心的な標的サブセットを含み、試験し、もしくは評価し、かつ/または、特徴の標的サブセットが使用/評価される特定のモバイルデバイスにおける挙動の分類に成功するための特徴の標的サブセットの相対的な重要性を特定する確率または信頼値に基づいて、特徴の標的サブセットを優先順位付ける。
【００５９】
モデルが使用されるモバイルデバイスにおいて分類器モデルを生成することによって、様々な態様は、特定のモバイルデバイス上の挙動が良性か、またはそのデバイスの性能の劣化に寄与しているかを判定する際に最も重要である特定の特徴を、モバイルデバイスが正確に特定することを可能にする。これらの態様により、その特定のモバイルデバイス内の挙動を分類することに対する簡潔な分類器モデルの相対的な重要性に従って、簡潔な分類器モデルの中の特徴をモバイルデバイスが正確に優先順位付けることも可能になる。
【００６０】
アプリケーション固有の、アプリケーションの種類に固有の、デバイス固有の、および/またはデバイスの状態に固有の情報を使用すると、モバイルデバイスが、簡潔な分類器モデルに含まれるべき特徴を迅速に特定して優先順位付けること、ならびに簡潔な分類器モデルから除外されるべき特徴を特定することが可能になる。たとえば、モバイルデバイスは、その特定の特徴セットに基づいてモバイルデバイス上で実行されるソフトウェアアプリケーションに関係しない、したがってモバイルデバイスに関連しない条件を試験する、完全なモデルに含まれる特徴/ノード/木/株を特定し、簡潔な分類器モデルから除外するように構成され得る。たとえば、生体センサを含まないモバイルデバイスは、ソフトウェアアプリケーションによる生体センサの使用に関する条件を試験または評価するすべての特徴/ノード/株を、簡潔な分類器モデルから除外することができる。
【００６１】
さらに、簡潔な分類器モデルは、評価されなければならない状態、特徴、挙動、または条件の縮小されたサブセット(すなわち、完全な分類器モデルと比較して)を含むので、観測器モジュールおよび/または分析器モジュールは、モバイルデバイスの過剰な量の処理、メモリ、またはエネルギーのリソースを消費することなく、簡潔な分類器モデルを使用して、モバイルデバイスの挙動が良性かまたは良性ではない(たとえば、悪性または性能を劣化させる)かを迅速かつ正確に判定することができる。
【００６２】
ある態様では、モバイルデバイスは、完全な分類器モデルを使用して、複雑さ(または「簡潔さ」)のレベルが様々である簡潔な分類器モデルの群を生成するように構成され得る。簡潔な分類器モデルの最も簡潔な群(すなわち、最も少数の試験条件に基づく簡潔な分類器モデル)は、モデルが良性または悪性のいずれかとして分類することができない(したがってモデルによって疑わしいものとして分類される)挙動に遭遇するまで、定期的に適用されてよく、遭遇した時点で、よりロバストな(すなわち、より簡潔ではない)簡潔な分類器モデルが、良性または悪性のいずれかとして挙動を分類する試みにおいて適用され得る。生成された簡潔な分類器モデルの群の中の一層ロバストな簡潔な分類器モデルの適用は、挙動の最終的な分類が達成されるまで適用され得る。このようにして、観測器モジュールおよび/または分析器モジュールは、ロバストな分類器モデルが挙動を最終的に分類する必要がある状況に、最も完全だがリソース集約的な簡潔な分類器モデルの使用を制限することによって、効率と正確さとの間でバランスを取ることができる。
【００６３】
様々な態様では、モバイルデバイスは、有限状態機械の表示/表現をブーストされた決定株に変換し、特定のアプリケーションに固有のアプリケーション状態、またはアプリケーション、特徴、挙動、条件、もしくは構成の種類に基づいて、完全な分類器モデルに含まれるブーストされた決定株の1つまたは複数のサブセットを含むように、ブーストされた決定株の完全なセットを間引きまたは選別し、ブーストされた決定株の1つまたは複数のサブセットを使用して、モバイルデバイスの挙動をインテリジェントに監視し、分析し、かつ/または分類することによって、1つまたは複数の簡潔な分類器モデルを生成するように構成され得る。
【００６４】
ブーストされた決定株を使用すると、観測器モジュールおよび/または分析器モジュールは、クラウドまたはネットワークと通信してデータを再訓練することなく、簡潔なデータモデルを生成し適用することが可能になり、このことは、ネットワークサーバおよびクラウドに対するモバイルデバイスの依存性を著しく下げる。これにより、モバイルデバイスとネットワークサーバとの間のフィードバック通信が解消され、モバイルデバイスの性能および電力消費特性がさらに向上する。
【００６５】
ブーストされた決定株は、厳密に1つのノード(したがって1つの試験質問または試験条件)と重み値とを有し、したがってデータ/挙動の2値の分類における使用に十分に適した、1段の決定木である。すなわち、挙動ベクトルをブーストされた決定株に適用することで、2値の答え(たとえば、はいまたはいいえ)がもたらされる。たとえば、ブーストされた決定株によって試験される質問/条件が「ショートメッセージサービス(SMS)送信の頻度が毎分x回未満であるか」である場合、「3」という値をブーストされた決定株に適用することで、(「3回未満」のSMS送信に対して)「はい」の答えまたは(「3回以上」のSMS送信に対して)「いいえ」の答えのいずれかがもたらされる。
【００６６】
ブーストされた決定株は、非常に簡単かつ根本的である(したがって著しい処理リソースを必要としない)ので効率的である。ブーストされた決定株はまた非常に並列化可能であり、したがって、(たとえば、モバイルデバイス中の複数のコアまたはプロセッサにより)多くの株が並列に/同時に適用または試験され得る。
【００６７】
下で説明されるように、ネットワークサーバ(または別のコンピューティングデバイス)は、ブーストされた決定木モデルなどの、モバイルデバイスの挙動の別のより複雑なモデルから、ブーストされた決定株タイプの完全な分類器モデルを生成することができる。そのような複雑なモデルは、精巧な分類システムにおいてモバイルデバイスの挙動を特徴付ける、デバイスの状態、動作、および監視されたノードの間の相互作用の完全な(またはほぼ完全な)セットを相関付けることができる。上述されたように、サーバまたは他のコンピューティングデバイスは、機械学習技法を適用して、多数のモバイルデバイスから収集されたモバイルデバイスの挙動ベクトルのクラウド集積を記述するモデルを生成することによって、完全で複雑な分類器モデルを生成することができる。ある例として、ブーストされた決定木の分類器モデルは、試験可能な条件の決定ノードを通る数百の経路をたどり、現在のモバイルデバイスの挙動が悪性かまたは良性かの判定に到達することができる。そのような複雑なモデルは、いくつかの既知の学習および相関モデル化技法を使用して、サーバにおいて生成され得る。そのような複雑なモデルは、何百個ものモバイルデバイスからのデータから学習することによって、悪意のある挙動を正確に認識する際に極めて有効になり得るが、特定のモバイルデバイスの構成および挙動へのそれらの適用は、特にモデルが複雑な多段の決定木を含む場合、かなりの処理を必要とすることがある。モバイルデバイスは通常リソースが限られているので、そのようなモデルを使用すると、デバイスの性能およびバッテリー持続時間に影響を与えることがある。
【００６８】
モバイルデバイスによる使用によりつながるロバストな分類器モデルを提供するために、サーバ(たとえば、クラウドサーバまたはネットワークサーバ)または別のコンピューティングデバイス(たとえば、モバイルデバイスまたはモバイルデバイスに結合するコンピュータ)は、複雑な分類器モデルを大きなブーストされた決定株モデルに変換することができる。決定株に関わる判定がより単純であること、およびそのような分類器モデルを並列処理において適用できることにより、モバイルデバイスは、ネットワークサーバによって実行される分析からより恩恵を受けることが可能になり得る。また、下で論じられるように、ブーストされた決定株の完全な分類器モデルは、デバイス固有のまたはデバイスの状態に固有の情報に基づいて、特徴を含める(または除外する)ように簡潔な分類器モデルを生成するために、モバイルデバイスによって使用され得る。このことは、下で説明される態様の方法を実行するようにモバイルデバイスのプロセッサを構成することによって、達成され得る。
【００６９】
さらなる態様では、モバイルデバイスは、モバイルデバイス上で悪意のある挙動を検出するために使用される簡潔な分類器モデルまたは簡潔な分類器モデルのセットに、モバイルデバイスまたはモバイルデバイスの現在の状態に固有の特徴を組み込むように構成される、様々なコンポーネントを含み得る。
【００７０】
ある態様では、モバイルデバイスは、モバイルデバイスの構成、機能、および接続される/含まれるハードウェアに関連がある特徴に対応する分類器基準を優先順位付ける、完全な分類器モデルに含まれる分類器基準のサブセットを含むように、簡潔な分類器モデルを生成するように構成され得る。モバイルデバイスは、この簡潔な分類器モデルを使用して、デバイスに存在する、または関連がある特徴および機能のみを優先的にまたは排他的に監視することができる。次いで、モバイルデバイスは、モバイルデバイスの現在の状態および構成に基づいて、様々な特徴および対応する分類器基準を含むように、または削除するように、簡潔な分類器モデルを定期的に変更または再生成することができる。
【００７１】
ある例として、かつある態様では、モバイルデバイス上で動作する挙動分析器モジュールは、挙動モデルの完全な特徴セットと関連付けられる決定株を有する大きなブーストされた決定株の分類器モデルを受信することができ、挙動分析器モジュールは、モバイルデバイスの現在の構成、機能、動作状態、および/または接続される/含まれるハードウェアに関連がある特徴を大きな分類器モデルから選択しまたは優先順位付け、選択された特徴に対応するブーストされた決定株のサブセットを簡潔な分類器モデルに含めることによって、大きな分類器モデルから1つまたは複数の簡潔な分類器モデルを導出することができる。この態様では、モバイルデバイスに関連がある特徴に対応する分類器基準は、選択された特徴の少なくとも1つを試験する大きな分類器モデルに含まれるブーストされた決定株であり得る。ある態様では、挙動分析器モジュールは次いで、モバイルデバイスの現在の状態および構成に基づいて様々な特徴を含むように、または削除するように、ブーストされた決定株の簡潔な分類器モデルを定期的に変更または再生成することができ、その結果、簡潔な分類器モデルは、デバイス固有の特徴のブーストされた決定株を含み続ける。
【００７２】
ある態様では、モバイルコンピューティングデバイス上で動作するデバイス状態監視エンジンは、モバイルデバイスの構成および/または状態の変化について、モバイルデバイスを継続的に監視することができる。さらなる態様では、デバイス状態監視エンジンは、挙動分析器モジュール(または分類器モジュール)の性能または有効性に影響し得る構成および/または状態の変化を探して、悪意のある挙動を検出することができる。たとえば、デバイス状態監視エンジンは、「低バッテリー状態」が検出されるまでモバイルデバイスの挙動を監視することができ、その時点で、挙動分析器モジュールが、エネルギーを節約するために、悪意のある挙動についてモバイルデバイス上のより少ない特徴を分析するように、簡潔な分類器モデルを変更することができる。
【００７３】
別の態様では、デバイス状態監視エンジンが状態変化を検出したとき、デバイス状態監視エンジンはデバイス状態固有の特徴生成器に通知することができ、デバイス状態固有の特徴生成器は、モバイルデバイスの状態変化に基づいて、いくつかの特徴を追加または削除するように、挙動分析器モジュールにシグナリングすることができる。
【００７４】
別の態様では、モバイルデバイスは、モバイルデバイス自体に関する特徴を判定するように構成される、デバイス固有の特徴生成器を含み得る。たとえば、デバイス固有の特徴生成器は、モバイルデバイスが近距離場通信、Wi-Fi、およびBluetooth(登録商標)の能力を含むと判定することができる。さらなる態様では、デバイス固有の特徴生成器は、モバイルデバイス自体に関する特徴に基づいて、簡潔な分類器モデルの中の特徴を含むか、または削除するように、挙動分析器にシグナリングすることができる。したがって、モバイルデバイス上の様々なコンポーネントは、モバイルデバイスの構成および/またはモバイルデバイスの現在の状態に固有の特徴を反映するように簡潔な分類器モデルを変更することができ、これにより、モバイルデバイスの現在の状態に基づいて、監視される特徴を優先順位付けることによって、様々なコンポーネントが悪意のある挙動をより良く検出すること、またはモバイルデバイスの性能全体を改善することが可能になり得る。
【００７５】
上で述べられたように、挙動を監視する際に使用するための簡潔な分類器モデルを生成するために、モバイルデバイスによって処理され得る、ある種類の大きな分類器モデルの一例は、ブーストされた決定株の分類器モデルである。以下の発明を実施するための形態では、ブーストされた決定株の分類器モデルへの言及が行われることがあるが、そのような言及は例示を目的とするものであり、請求項がブーストされた決定株の分類器モデルを明確に記述しない限り、特許請求の範囲を限定するものではない。
【００７６】
ある態様では、モバイルデバイスは、複数の試験条件を含む完全な分類器モデルをネットワークサーバから受信し、モバイルデバイスのソフトウェアアプリケーションによって(またはモバイルデバイス上で実行され得るある種類のソフトウェアアプリケーションによって)使用されるモバイルデバイスの特徴を特定し、特定されたモバイルデバイスの特徴の1つを評価する完全な分類器モデルの中の試験条件を特定し、特定された試験条件の優先順位、重要性、または成功率を決定し、重要性または成功率に従って特定された試験条件を優先順位付け、または順序付け、特定された試験条件が決定された優先順位、重要性、または成功率に従って順序付けられるように、特定された試験条件を含む分類器モデルを生成することによって、アプリケーションベースの分類器モデルを生成するように構成され得る。
【００７７】
モバイルデバイスは、ローカルに生成された簡潔なおよび/またはアプリケーションベースの分類器モデルを使用して、リアルタイムの挙動監視および分析動作を実行するように構成され得る。たとえば、モバイルデバイスは、モバイルデバイスから挙動情報を収集し、収集された挙動情報を使用して特徴ベクトルを生成し、生成された特徴ベクトルをアプリケーションベースの分類器モデルに適用してアプリケーションベースの分類器モデルに含まれる各試験条件を評価することによって、アプリケーションベースの分類器モデルを使用して、対応するアプリケーションを実行するモバイルデバイスの挙動を分類することができる。モバイルデバイスはまた、アプリケーションベースの分類器モデルの中の試験条件を評価した各結果の加重平均を計算し、その加重平均を使用してモバイルデバイスの挙動が悪性かまたは良性かを判定することができる。
【００７８】
様々な態様は、図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は、中央データベースまたはクラウドサービスプロバイダネットワーク118から、様々な条件、特徴、挙動、および修正動作についての情報を受信し、この情報を使用して、コンピューティングデバイスの挙動のある特定の態様を評価するためにコンピューティングデバイスのプロセッサによって使用され得るデータおよび/または情報構造(たとえば、特徴ベクトル、挙動ベクトル、コンポーネントリストなど)を含むデータ、アルゴリズム、分類器、または挙動モデル(本明細書では集合的に「分類器モデル」)を生成するように構成され得る。
【００８１】
ある態様では、ネットワークサーバ116は、完全な分類器モデルを生成するように構成され得る。完全な分類器モデルは、数千の特徴および数十億のエントリを含み得る大きな訓練データセットの関数として生成されるロバストなデータモデルであり得る。ある態様では、ネットワークサーバ116は、いくつかの異なるメーカー、モデル、および構成のモバイルデバイス102のいずれかの劣化に寄与し得る、特徴、データポイント、および/または要因のすべてまたは大半を含むように、完全な分類器モデルを生成するように構成され得る。様々な態様では、ネットワークサーバは、挙動情報の大きな集積を、有限状態機械、決定ノード、決定木、または、より簡潔な分類器モデルを迅速かつ効率的に生成するために変更され、選別され、補足され、または別様に使用され得る任意の情報構造として、記述または表現するように、完全な分類器モデルを生成するように構成され得る。
【００８２】
加えて、モバイルデバイス102は、完全な分類器モデルをネットワークサーバ116から受信するように構成され得る。モバイルデバイスはさらに、完全な分類器モデルを使用して、モバイルデバイス102のソフトウェアアプリケーションの特定の特徴および機能を考慮するより専心的な分類器モデルを生成するように構成され得る。たとえば、モバイルデバイス102は、特定のソフトウェアアプリケーションに関連がある、またはモバイルデバイス102にインストールされ、もしくはデバイスのメモリに記憶される特定の種類のソフトウェアアプリケーション(たとえば、ゲーム、ナビゲーション、金融など)に関連がある、モバイルデバイスの条件または特徴を優先的または排他的に特定または評価する、アプリケーション固有のおよび/またはアプリケーションの種類に固有の分類器モデル(すなわち、データまたは挙動モデル)を生成することができる。モバイルデバイス102は、これらのローカルに生成された分類器モデルを使用して、リアルタイムの挙動監視および分析動作を実行することができる。
【００８３】
図2は、リアルタイムの挙動監視および分析動作200を実行して、特定のモバイルデバイスの挙動、ソフトウェアアプリケーション、またはプロセスが、悪性である/性能を劣化させるか、疑わしいか、または良性であるかを判定するように構成される、ある態様のモバイルデバイス102における例示的な論理コンポーネントおよび情報フローを示す。これらの動作200は、モバイルデバイスの過剰な量の処理、メモリ、またはエネルギーのリソースを消費することなく、継続的に(またはほぼ継続的に)モバイルデバイス102の中の1つまたは複数の処理コアによって実行され得る。
【００８４】
図2に示される例では、モバイルデバイス102は、挙動観測器モジュール202と、挙動分析器モジュール204と、外部状況情報モジュール206と、分類器モジュール208と、作動器モジュール210とを含む。ある態様では、分類器モジュール208は、挙動分析器モジュール204の一部として実装され得る。ある態様では、挙動分析器モジュール204は、1つまたは複数の分類器モジュール208を生成するように構成されてよく、分類器モジュール208の各々は、ソフトウェアアプリケーションの特定の特徴またはモバイルデバイスの挙動を評価するためにモバイルデバイスのプロセッサによって使用され得るデータおよび/または情報構造(たとえば、決定ノードなど)を含む、1つまたは複数の分類器モデル(たとえば、データ/挙動モデル)を含み得る。
【００８５】
モジュール202〜210の各々は、ソフトウェア、ハードウェア、またはこれらの組合せにおいて実装される、スレッド、プロセス、デーモン、モジュール、サブシステム、またはコンポーネントであり得る。様々な態様では、モジュール202〜210は、オペレーティングシステムの部分の中(たとえば、カーネル内、カーネル空間中、ユーザ空間中など)で、個別のプログラムもしくはアプリケーションの中で、専用のハードウェアバッファもしくはプロセッサの中で、またはそれらの任意の組合せにて実装され得る。ある態様では、モジュール202〜210の1つまたは複数は、モバイルデバイス102の1つまたは複数のプロセッサ上で実行されるソフトウェア命令として実装され得る。
【００８６】
挙動観測器モジュール202は、モバイルデバイスシステムの様々なレベルにおいて、様々なAPI、レジスタ、カウンタ、または他のコンポーネント(本明細書では集合的に「取り付けられたコンポーネント」)を取り付け、または協調させ、取り付けられたコンポーネントから挙動情報を収集することによって、ある期間にわたってリアルタイムでモバイルデバイスの挙動を継続的に(またはほぼ継続的に)監視するように構成され得る。たとえば、挙動観測器モジュール202は、モバイルデバイス102のメモリに記憶されているログファイル(たとえば、APIログなど)から情報を読み取ることによって、ライブラリAPIコール、システムコールAPI、ドライバAPIコール、および他の取り付けられたコンポーネントを監視することができる。
【００８７】
挙動観測器モジュール202はまた、取り付けられたコンポーネントを介してモバイルデバイスの動作および事象(たとえば、システム事象、状態変化など)を監視/観測し、観測された動作/事象に関する情報を収集し、収集された情報をインテリジェントにフィルタリングし、フィルタリングされた情報に基づいて1つまたは複数の観測結果(たとえば、挙動ベクトルなど)を生成し、生成された観測結果をメモリに(たとえば、ログファイルなどに)記憶し、かつ/または、生成された観測結果または収集された挙動情報を挙動分析器モジュール204に(たとえば、メモリ書込み、関数呼出しなどを介して)送信するように構成され得る。様々な態様では、生成された観測結果は、挙動ベクトルとして、および/またはAPIログファイルもしくは構造に、記憶され得る。
【００８８】
挙動観測器モジュール202は、アプリケーションフレームワークまたはランタイムライブラリにおけるライブラリAPIコール、システムコールAPI、ファイルシステムおよびネットワーキングサブシステムの動作、デバイス(センサデバイスを含む)の状態変化、ならびに他の同様の事象に関する情報を収集することによって、モバイルデバイスの動作および事象を監視/観測することができる。挙動観測器モジュール202はまた、ファイルシステムの活動を監視することもでき、ファイルシステムの活動は、ファイル名、ファイルアクセスのカテゴリ(個人情報または通常のデータファイル)を探索すること、ファイル(たとえば、type exe、zipなど)を作成または削除すること、ファイル読出し/書込み/探索動作、ファイルパーミッションを変更することなどを含み得る。
【００８９】
挙動観測器モジュール202はまた、データネットワーク活動を監視することもでき、データネットワーク活動は、接続の種類、プロトコル、ポート番号、デバイスが接続されるサーバ/クライアント、接続の数、通信の量または頻度などを含み得る。挙動観測器モジュール202は、電話ネットワーク活動を監視することができ、電話ネットワーク活動は、送出された、受信された、または傍受された通話またはメッセージ(たとえば、SMSなど)の種類および数(たとえば、かけられたプレミアムコールの数)を監視することを含み得る。
【００９０】
挙動観測器モジュール202はまた、システムリソースの使用を監視することもでき、これは、フォークの数、メモリアクセス動作、開かれたファイルの数などを監視することを含み得る。挙動観測器モジュール202は、モバイルデバイスの状態を監視することができ、モバイルデバイスの状態は、ディスプレイがオンかまたはオフか、デバイスがロックされているかまたはロックされていないか、バッテリーの残量、カメラの状態などの様々な要因を監視することを含み得る。挙動観測器モジュール202はまた、たとえば、重要なサービス(ブラウザ、契約プロバイダなど)に対する意図、プロセス間通信(IPC)の程度、ポップアップウィンドウなどを監視することによって、プロセス間通信を監視することができる。
【００９１】
挙動観測器モジュール202はまた、カメラ、センサ、電子ディスプレイ、WiFi通信コンポーネント、データコントローラ、メモリコントローラ、システムコントローラ、アクセスポート、タイマー、周辺デバイス、ワイヤレス通信コンポーネント、外部メモリチップ、電圧レギュレータ、発振器、位相ロックループ、周辺ブリッジ、および、モバイルコンピューティングデバイス上で実行されるプロセッサおよびクライアントをサポートするために使用される他の同様のコンポーネントを含み得る、1つまたは複数のハードウェアコンポーネントのドライバ統計および/またはステータスを監視/観測することができる。
【００９２】
挙動観測器モジュール202はまた、モバイルコンピューティングデバイスおよび/またはモバイルデバイスサブシステムの状態またはステータスを示す、1つまたは複数のハードウェアカウンタを監視/観測することもできる。ハードウェアカウンタは、モバイルコンピューティングデバイスにおいて発生するハードウェア関連の活動または事象のカウントまたは状態を記憶するように構成されたプロセッサ/コアの専用レジスタを含み得る。
【００９３】
挙動観測器モジュール202はまた、ソフトウェアアプリケーションの活動または動作、アプリケーションダウンロードサーバ(たとえば、Apple(登録商標)のApp Storeサーバ)からのソフトウェアダウンロード、ソフトウェアアプリケーションによって使用されるモバイルデバイス情報、呼情報、テキストメッセージング情報(たとえば、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は、一連の数字を含む挙動ベクトルを生成することができ、これらの数字の各々がモバイルデバイスの特徴または挙動を表す。たとえば、挙動ベクトルに含まれる数字は、モバイルデバイスのカメラが使用されているかどうか(たとえば、カメラがオフであるときは0、カメラがアクティブであるときは1として)、モバイルデバイスから送信された、またはモバイルデバイスによって生成されたネットワークトラフィックの量(たとえば、20KB/秒など)、通信されたインターネットメッセージの数(たとえば、SMSメッセージの数など)などを表すことができる。
【０１０１】
不十分に設計されたソフトウェアアプリケーション、マルウェア、ウイルス、断片化されたメモリ、バックグラウンドプロセスを含む、モバイルデバイスの性能および電力利用レベルの経時的な劣化に寄与し得る、多種多様な要因が存在し得る。これらの要因の数、多様性、および複雑さに起因して、現代のモバイルデバイスの複雑でありながらリソースが制約されたシステムの性能および/または電力利用レベルを劣化させ得る、様々なコンポーネント、挙動、プロセス、動作、条件、状態、または特徴(またはそれらの組合せ)のすべてを同時に評価することは、実現可能ではないことが多い。ある態様では、監視される要因の数を管理可能レベルにまで減らすために、挙動観測器モジュール202は、モバイルデバイスの劣化に寄与し得るすべての要因の小さなサブセットである、挙動または要因の初期のセットまたは縮小されたセットを監視/観測するように構成され得る。
【０１０２】
ある態様では、挙動観測器モジュール202は、ネットワークサーバ116および/またはクラウドサービスもしくはネットワーク118の中のコンポーネントから、挙動および/または要因の初期のセットを受信することができる。ある態様では、挙動/要因の初期のセットは、ネットワークサーバ116から受信された完全な分類器モデルにおいて指定され得る。別の態様では、挙動/要因の初期のセットは、完全な分類器モデルに基づいてモバイルデバイスにおいて生成される簡潔な分類器モデルにおいて指定され得る。ある態様では、挙動/要因の初期のセットは、完全なまたは簡潔な分類器モデルに基づいてモバイルデバイスにおいて生成されるアプリケーションベースの分類器モデルにおいて指定され得る。様々な態様では、アプリケーションベースの分類器モデルは、アプリケーション固有の分類器モデルまたはアプリケーションの種類に固有の分類器モデルであり得る。
【０１０３】
挙動観測器モジュール202は、収集された挙動情報を挙動分析器モジュール204に(たとえば、メモリ書込み動作、関数呼出しなどを介して)通信することができる。挙動分析器モジュール204は、挙動情報を受信し使用して挙動ベクトルを生成し、挙動ベクトルに基づいて空間的なおよび/または時間的な相関関係を生成し、この情報を使用して、特定のモバイルデバイスの挙動、条件、サブシステム、ソフトウェアアプリケーション、またはプロセスが、良性か、疑わしいか、または良性ではない(すなわち、悪性または性能を劣化させる)かを判定することができる。
【０１０４】
挙動分析器モジュール204および/または分類器モジュール208は、リアルタイムの挙動分析動作を実行するように構成されてよく、リアルタイムの挙動分析動作は、データ、アルゴリズム、分類器、またはモデル(集合的に「分類器モデル」と呼ばれる)を収集された挙動情報に対して実施、実行、および/または適用して、モバイルデバイスの挙動が良性かまたは良性ではない(たとえば、悪性または性能を劣化させる)かを判定することを含み得る。各分類器モデルは、モバイルデバイスの挙動の特定の特徴または態様を評価するために、モバイルデバイスのプロセッサによって使用され得る、データおよび/または情報構造(たとえば、特徴ベクトル、挙動ベクトル、コンポーネントリストなど)を含む挙動モデルであり得る。各分類器モデルはまた、モバイルデバイス102におけるいくつかの特徴、要因、データポイント、エントリ、API、状態、条件、挙動、アプリケーション、プロセス、動作、コンポーネントなど(集合的に「特徴」と呼ばれる)を(すなわち、挙動観測器モジュール202を介して)監視するための決定基準を含み得る。分類器モデルは、モバイルデバイス102にプレインストールされてよく、ネットワークサーバ116からダウンロードもしくは受信されてよく、モバイルデバイス102において生成されてよく、またはそれらの任意の組合せであってよい。分類器モデルはまた、クラウドソーシングによる解決法、挙動モデル化技法、機械学習アルゴリズムなどを使用することによって、生成され得る。
【０１０５】
各分類器モデルは、完全な分類器モデルまたは簡潔な分類器モデルとして分類され得る。完全な分類器モデルは、数千の特徴および数十億のエントリを含み得る大きな訓練データセットの関数として生成されるロバストなデータモデルであり得る。簡潔な分類器モデルは、特定のモバイルデバイスの挙動が良性かまたは良性ではない(たとえば、悪性または性能を劣化させる)かを判定することに最も関連がある特徴/エントリに対する試験を含みまたは優先順位付ける、縮小されたデータセットから生成された、より専心的なデータモデルであり得る。
【０１０６】
挙動分析器モジュール204および/または分類器モジュール208は、挙動観測器モジュール202から観測結果または挙動情報を受信し、受信された情報(すなわち、観測結果)を外部状況情報モジュール206から受信された状況情報と比較し、デバイスの劣化に経時的に寄与している(または寄与する可能性が高い)、またはデバイスに別様に問題を引き起こし得る、受信された観測結果と関連付けられるサブシステム、プロセス、および/またはアプリケーションを特定することができる。
【０１０７】
ある態様では、挙動分析器モジュール204および/または分類器モジュール208は、経時的なデバイスの劣化に寄与している(もしくは寄与する可能性が高い)、または別様にデバイスに問題を引き起こし得る、挙動、プロセス、またはプログラムを特定するために、情報の限られたセット(すなわち、粗い観測結果)を利用するためのインテリジェンスを含み得る。たとえば、挙動分析器モジュール204は、様々なモジュール(たとえば、挙動観測器モジュール202、外部状況情報モジュール206など)から収集された(たとえば、観測結果の形態の)情報を分析し、モバイルデバイスの正常な動作挙動を学習し、比較の結果に基づいて1つまたは複数の挙動ベクトルを生成するように構成され得る。挙動分析器モジュール204は、生成された挙動ベクトルをさらなる分析のために分類器モジュール208に送信することができる。
【０１０８】
ある態様では、分類器モジュール208は、挙動ベクトルを分類器モデルに対して適用または比較し、特定のモバイルデバイスの挙動、ソフトウェアアプリケーション、またはプロセスが性能を劣化させる/悪性であるか、良性であるか、または疑わしいかを判定するように構成され得る。挙動、ソフトウェアアプリケーション、またはプロセスが悪性であるか、または性能を劣化させると分類器モジュール208が判定するとき、分類器モジュール208は作動器モジュール210に通知することができ、作動器モジュール210は、悪性であるか、または性能を劣化させると判定されたモバイルデバイスの挙動を修正するために様々な活動もしくは動作を実行し、かつ/または特定された問題を解消し、回復させ、隔離し、または別様に修復する動作を実行することができる。
【０１０９】
挙動、ソフトウェアアプリケーション、またはプロセスが疑わしいと分類器モジュール208が判定するとき、分類器モジュール208は挙動観測器モジュール202に通知することができ、挙動観測器モジュール202は、その観測の細分性(すなわち、モバイルデバイスの挙動が観測される詳細さのレベル)を調整し、かつ/または、分類器モジュール208から受信された情報(たとえば、リアルタイムの分析動作の結果)に基づいて観測される挙動を変更し、新しいまたは追加の挙動情報を生成または収集し、さらなる分析/分類のために新しい/追加の情報を挙動分析器モジュール204および/または分類器モジュール208へ送信することができる。挙動観測器モジュール202と分類器モジュール208との間のそのようなフィードバック通信により、疑わしいかもしくは性能を劣化させるモバイルデバイスの挙動の根源が特定されるまで、処理もしくはバッテリー消費の閾値に到達するまで、または、観測の細分性のさらなる向上によっても疑わしいかまたは性能を劣化させるモバイルデバイスの挙動の根源が特定され得ないとモバイルデバイスのプロセッサが判定するまで、モバイルデバイス102が繰り返し、観測の細分性を向上させる(すなわち、より微細にまたはより詳細に観測する)こと、または観測される特徴/挙動を変更することが可能になる。そのようなフィードバック通信により、モバイルデバイス102が、モバイルデバイスの過剰な量の処理、メモリ、またはエネルギーのリソースを消費することなく、モバイルデバイスにおいてローカルにデータ/挙動モデルを調整または修正することも可能になる。
【０１１０】
ある態様では、挙動観測器モジュール202および挙動分析器モジュール204は、限られた粗い観測結果から疑わしい挙動を特定するため、挙動を動的に判定してより詳細に観測するため、および観測のために必要な詳細さのレベルを動的に判定するために、コンピューティングシステムの挙動のリアルタイムの挙動分析を個別にまたは集合的に提供することができる。このようにして、挙動観測器モジュール202は、デバイス上のプロセッサ、メモリ、またはバッテリーの大量のリソースを必要とすることなく、モバイルデバイス102が問題を効率的に特定し、モバイルデバイス上で問題が発生するのを防止することを可能にする。
【０１１１】
様々な態様では、挙動観測器モジュール202および/または挙動分析器モジュール204は、精密な監視を必要とする重要なデータリソースを特定し、重要なデータリソースと関連付けられる中間リソースを特定し、重要なデータリソースおよび中間リソースにアクセスするときにソフトウェアによって行われるAPIコールを監視し、APIコールによって消費または生成されるモバイルデバイスのリソースを特定し、ソフトウェアアプリケーションによる悪性の活動を示すものとしてAPIコールのパターンを特定し、APIの特定されたパターンおよび特定されたモバイルデバイスのリソースに基づいて軽量挙動シグネチャを生成し、軽量挙動シグネチャを使用して挙動分析動作を実行し、ソフトウェアアプリケーションが悪性であるかまたは良性であるかを挙動分析動作に基づいて判定することによって、モバイルデバイスの挙動を分析するように構成され得る。
【０１１２】
様々な態様では、挙動観測器モジュール202および/または挙動分析器モジュール204は、モバイルデバイス上で実行されるソフトウェアアプリケーションによって最も頻繁に使用されるAPIを特定し、特定されたホットAPIの使用量に関する情報をモバイルデバイスのメモリ中のAPIログに記憶し、APIログに記憶されている情報に基づいて挙動分析動作を実行して正常な動作パターンと一致しないモバイルデバイスの挙動を特定することによって、モバイルデバイスの挙動を分析するように構成され得る。ある態様では、APIの複数の実施にわたって同じままである汎用的なフィールドの値が、APIの各実施に対して固有である特定のフィールドの値とは別のテーブルに記憶されるように、APIログが編成されるように、APIログは生成され得る。APIログはまた、固有のフィールドの値が、汎用的なフィールドの値を記憶する別のテーブルに対するハッシュ鍵とともにあるテーブルに記憶されるように、生成され得る。
【０１１３】
様々な態様では、挙動観測器モジュール202および/または挙動分析器モジュール204は、複数のブーストされた決定株としての変換または表現に適した有限状態機械を含む完全な分類器モデルを受信し、完全な分類器に基づいてモバイルデバイスにおいて簡潔な分類器モデルを生成し、モバイルデバイス中の簡潔な分類器モデルを使用して良性であるまたは良性ではない(すなわち、悪性である、性能を劣化させるなど)ものとしてモバイルデバイスの挙動を分類することによって、モバイルデバイスの挙動を分析するように構成され得る。ある態様では、完全な分類器モデルに基づいて簡潔な分類器モデルを生成するステップは、モバイルデバイスの過剰な量の処理、メモリ、またはエネルギーのリソースを消費することなくモバイルデバイスの挙動を分類するために評価されるべきある数の固有の試験条件を決定するステップと、ブーストされた決定株のリストを順次網羅的に検討し、試験条件のリストが決定された数の固有の試験条件を含み得るまで、順次網羅的に検討されたブーストされた決定株の各々と関連付けられた試験条件を試験条件のリストに挿入することによって、試験条件のリストを生成するステップと、生成された試験条件のリストに含まれる複数の試験条件の1つを試験するブーストされた決定株を含むように、または優先順位付けるように、簡潔な分類器モデルを生成するステップとをさらに含み得る。
【０１１４】
様々な態様では、挙動観測器モジュール202および/または挙動分析器モジュール204は、モバイルデバイスのデバイス固有の情報を使用して、モバイルデバイスの挙動を分類することに関連がある複数の試験条件の中のモバイルデバイス固有の、アプリケーション固有の、またはアプリケーションの種類に固有の試験条件を特定し、特定されたモバイルデバイス固有の、アプリケーション固有の、またはアプリケーションの種類に固有の試験条件を含む、または優先順位付ける、簡潔な分類器モデルを生成し、モバイルデバイス中の生成された簡潔な分類器モデルを使用してモバイルデバイスの挙動を分類するように構成され得る。ある態様では、簡潔な分類器モデルは、モバイルデバイスの現在の動作状態または構成に関連があるモバイルデバイスの特徴を評価する決定ノードを含むように、または優先順位付けるように生成され得る。さらなる態様では、簡潔な分類器モデルを生成するステップは、過剰な量のモバイルデバイスのリソース(たとえば、処理、メモリ、またはバッテリーのリソース)を消費することなく挙動を分類するために評価されるべきある数の固有の試験条件を決定するステップと、完全な分類器モデルの中の複数の試験条件を順次網羅的に検討し、モバイルデバイスの挙動を分類することに関連がある試験条件を、試験条件のリストが決定された数の固有の試験条件を含むまで試験条件のリストへと挿入することによって、試験条件のリストを生成するステップと、試験条件の生成されたリストに含まれる条件の1つを試験する、完全な分類器モデルに含まれる決定ノードを含むように簡潔な分類器モデルを生成するステップとを含み得る。
【０１１５】
様々な態様では、挙動観測器モジュール202および/または挙動分析器モジュール204は、ソフトウェアアプリケーションまたはプロセスの活動を監視し、ソフトウェアアプリケーション/プロセスのオペレーティングシステム実行状態を判定し、活動に基づいて、および/または活動が監視されたソフトウェアアプリケーションもしくはプロセスのオペレーティングシステム実行状態に基づいて、活動が良性かどうかを判定することによって、モバイルデバイスの正常な動作パターンと一致しないモバイルデバイスの挙動を認識するように構成され得る。さらなる態様では、挙動観測器モジュール202および/または挙動分析器モジュール204は、ソフトウェアアプリケーションまたはプロセスのオペレーティングシステム実行状態が活動に関連があるかどうかを判定し、活動が監視されたソフトウェアアプリケーションまたはプロセスのオペレーティングシステム実行状態を特定する影の特徴値を生成し、オペレーティングシステム実行状態を特定する影の特徴値と活動を関連付ける挙動ベクトルを生成し、挙動ベクトルを使用して活動が良性であるか、疑わしいか、または良性ではない(すなわち、悪性であるまたは性能を劣化させる)かを判定することができる。
【０１１６】
上で論じられたように、モバイルデバイスのプロセッサは、様々な特徴を評価するのに適した複数の試験条件を含む分類器モデルを受信または生成し、特定のソフトウェアアプリケーションまたは特定の種類のソフトウェアアプリケーションによって使用されるモバイルデバイスの特徴を特定し、特定されたモバイルデバイスの特徴を評価する受信/生成された分類器モデルの中の試験条件を特定し、特定された試験条件を含む、または優先順位付ける、アプリケーション固有のおよび/またはアプリケーションの種類に固有の分類器モデルを生成することができる。特定のソフトウェアアプリケーションまたは特定のソフトウェアアプリケーションの種類によって使用される特徴は、モバイルデバイスの動作、モバイルデバイスの事象、データネットワーク活動、システムリソースの使用量、モバイルデバイスの状態、プロセス間通信、ドライバ統計、ハードウェアコンポーネントのステータス、ハードウェアカウンタ、ソフトウェアアプリケーションの活動または動作、ソフトウェアのダウンロード、デバイスまたはコンポーネントの設定への変更、アプリケーションレベルでの条件および事象、無線レベルでの条件および事象、センサレベルでの条件および事象、測位ハードウェア、パーソナルエリアネットワークハードウェア、マイクロフォンハードウェア、スピーカーハードウェア、カメラハードウェア、スクリーンハードウェア、ユニバーサルシリアルバスハードウェア、同期ハードウェア、測位ハードウェアドライバ、パーソナルエリアネットワークハードウェアドライバ、近距離通信ハードウェアドライバ、マイクロフォンハードウェアドライバ、スピーカーハードウェアドライバ、カメラハードウェアドライバ、ジャイロスコープハードウェアドライバ、ブラウザサポートハードウェアドライバ、バッテリーハードウェアドライバ、ユニバーサルシリアルバスハードウェアドライバ、記憶ハードウェアドライバ、ユーザ対話ハードウェアドライバ、同期ハードウェアドライバ、無線インターフェースハードウェアドライバ、ならびに測位ハードウェア、近距離通信(NFC)ハードウェア、スクリーンハードウェア、ブラウザサポートハードウェア、記憶ハードウェア、加速度計ハードウェア同期ハードウェア、デュアルSIMハードウェア、無線インターフェースハードウェア、および任意の特定のハードウェアに関する特徴を、監視または評価することによって決定され得る。
【０１１７】
たとえば、様々な態様では、モバイルデバイスのプロセッサは、慣性センサコンポーネント、バッテリーハードウェアコンポーネント、ブラウザサポートハードウェアコンポーネント、カメラハードウェアコンポーネント、加入者識別モジュール(SIM)ハードウェアコンポーネント、測位ハードウェアコンポーネント、マイクロフォンハードウェアコンポーネント、無線インターフェースハードウェアコンポーネント、スピーカーハードウェアコンポーネント、スクリーンハードウェアコンポーネント、同期ハードウェアコンポーネント、記憶コンポーネント、ユニバーサルシリアルバスハードウェアコンポーネント、ユーザ対話ハードウェアコンポーネント、慣性センサドライバコンポーネント、バッテリーハードウェアドライバコンポーネント、ブラウザサポートハードウェアドライバコンポーネント、カメラハードウェアドライバコンポーネント、SIMハードウェアドライバコンポーネント、測位ハードウェアドライバコンポーネント、マイクロフォンハードウェアドライバコンポーネント、無線インターフェースハードウェアドライバコンポーネント、スピーカーハードウェアドライバコンポーネント、スクリーンハードウェアドライバコンポーネント、同期ハードウェアドライバコンポーネント、記憶ドライバコンポーネント、ユニバーサルシリアルバスハードウェアドライバコンポーネント、ユニバーサルシリアルバスを通じて接続されたハードウェアコンポーネント、およびユーザ対話ハードウェアドライバコンポーネントのような、1つまたは複数の取り付けられたコンポーネントから情報を収集することによって、特定のソフトウェアアプリケーション(または特定のソフトウェアアプリケーションの種類)によって使用されるモバイルデバイスの特徴を特定することができる。
【０１１８】
様々な態様では、モバイルデバイスのプロセッサは、アプリケーションフレームワークまたはランタイムライブラリにおけるライブラリアプリケーションプログラミングインターフェース(API)コール、システムコールAPI、ファイルシステムおよびネットワーキングサブシステムの動作、ファイルシステムの活動、ファイル名の検索、ファイルアクセスのカテゴリ、ファイルパーミッションの変更、ファイルの作成または削除に関する動作、およびファイルの読取り/書込み/探索動作の1つまたは複数を監視または分析することによって、特定のソフトウェアアプリケーション(または特定のソフトウェアアプリケーションの種類)によって使用されるモバイルデバイスの特徴を特定することができる。
【０１１９】
様々な態様では、モバイルデバイスのプロセッサは、接続の種類、プロトコル、ポート番号、デバイスが接続されているサーバ/クライアント、接続の数、通信の量または頻度、電話ネットワークの活動、送られた呼/メッセージの種類および数、受信された呼/メッセージの種類および数、中断された呼/メッセージの種類および数、呼の情報、テキストメッセージング情報、メディアメッセージング、ユーザアカウント情報、送信、ボイスメール、ならびにデバイス識別子の、1つまたは複数を監視または分析することによって、特定のソフトウェアアプリケーション(または特定のソフトウェアアプリケーションの種類)によって使用されるモバイルデバイスの特徴を特定することができる。
【０１２０】
様々な態様では、モバイルデバイスのプロセッサは、フォークの数、メモリアクセス動作、およびソフトウェアアプリケーションによって開かれるファイルの数の1つまたは複数を監視または分析することによって、特定のソフトウェアアプリケーション(または特定のソフトウェアアプリケーションの種類)によって使用されるモバイルデバイスの特徴を特定することができる。様々な態様では、モバイルデバイスのプロセッサは、ディスプレイのオン/オフの状態、ロック/アンロックの状態、バッテリー充電の状態、カメラの状態、およびマイクロフォンの状態を含む、ソフトウェアアプリケーションによって引き起こされる状態変化を監視または分析することによって、特定のソフトウェアアプリケーション(または特定のソフトウェアアプリケーションの種類)によって使用されるモバイルデバイスの特徴を特定することができる。
【０１２１】
様々な態様では、モバイルデバイスのプロセッサは、重要なサービス、プロセス間通信の程度、およびソフトウェアアプリケーションによって生成されるポップアップウィンドウを監視または分析することによって、特定のソフトウェアアプリケーション(または特定のソフトウェアアプリケーションの種類)によって使用されるモバイルデバイスの特徴を特定することができる。様々な態様では、モバイルデバイスのプロセッサは、カメラ、センサ、電子ディスプレイ、WiFi通信コンポーネント、データコントローラ、メモリコントローラ、システムコントローラ、アクセスポート、周辺デバイス、ワイヤレス通信コンポーネント、および外部メモリチップの1つまたは複数についての、ドライバからの統計を監視または分析することによって、特定のソフトウェアアプリケーション(または特定のソフトウェアアプリケーションの種類)によって使用されるモバイルデバイスの特徴を特定することができる。
【０１２２】
様々な態様では、モバイルデバイスのプロセッサは、カメラ、センサ、電子ディスプレイ、WiFi通信コンポーネント、データコントローラ、メモリコントローラ、システムコントローラ、アクセスポート、タイマー、周辺デバイス、ワイヤレス通信コンポーネント、外部メモリチップ、電圧レギュレータ、発振器、位相ロックループ、周辺ブリッジ、およびモバイルコンピューティングデバイス上で動作するプロセッサおよびクライアントをサポートするために使用される他の同様のコンポーネントの、アクセスまたは使用を監視または分析することによって、特定のソフトウェアアプリケーション(または特定のソフトウェアアプリケーションの種類)によって使用されるモバイルデバイスの特徴を特定することができる。
【０１２３】
様々な態様では、モバイルデバイスのプロセッサは、モバイルコンピューティングデバイスおよび/またはモバイルデバイスのサブシステムの状態もしくはステータスを示すハードウェアカウンタ、および/または、ハードウェア関連の活動または事象のカウントもしくは状態を記憶するように構成されるプロセッサ/コアの専用レジスタの、アクセスまたは使用を監視または分析することによって、特定のソフトウェアアプリケーション(または特定のソフトウェアアプリケーションの種類)によって使用されるモバイルデバイスの特徴を特定することができる。
【０１２４】
様々な態様では、モバイルデバイスのプロセッサは、位置情報、カメラ情報、加速度計情報、ブラウザ情報、ブラウザベースの通信の内容、音声ベースの通信の内容、短距離無線通信、テキストベースの通信の内容、記録されたオーディオファイルの内容、電話帳または連絡先情報、連絡先リスト、カレンダー情報、記録されたオーディオ情報、ソフトウェアアプリケーションとの間で通信される通知、ユーザ認証、およびユーザパスワードを含む、ソフトウェアアプリケーションによって使用される情報の種類を監視または分析することによって、特定のソフトウェアアプリケーション(または特定のソフトウェアアプリケーションの種類)によって使用されるモバイルデバイスの特徴を特定することができる。
【０１２５】
様々な態様では、モバイルデバイスのプロセッサは、アプリケーションダウンロードサーバからのソフトウェアダウンロード、ならびに、第1のソフトウェアアプリケーションが第2のソフトウェアアプリケーションのダウンロードおよび/またはインストールを要求することの、1つまたは複数を監視または分析することによって、特定のソフトウェアアプリケーション(または特定のソフトウェアアプリケーションの種類)によって使用されるモバイルデバイスの特徴を特定することができる。
【０１２６】
図3は、モバイルデバイス102の過剰な量の処理、メモリ、またはエネルギーのリソースを消費することなく、モバイルデバイス102上の性能を劣化させるモバイルデバイスの挙動をインテリジェントにかつ効率的に特定するために、モバイルデバイス102と連携して働くように構成されるネットワークサーバ116を含む、システム300の中の例示的なコンポーネントおよび情報フローを示す。図3に示される例では、モバイルデバイス102は、特徴選択および選別モジュール304、簡潔な分類器モデル生成器モジュール306、およびアプリケーションベースの分類器モデル生成器モジュール308を含み、アプリケーションベースの分類器モデル生成器モジュール308は、アプリケーション固有の分類器モデル生成器モジュール310およびアプリケーションの種類に固有の分類器モデル生成器モジュール312を含み得る。ネットワークサーバ116は、簡潔な分類器モデル生成器モジュール302を含む。
【０１２７】
モジュール304〜312のいずれかまたはすべてが、リアルタイムオンライン分類器モジュールであってよく、かつ/または図2に示される挙動分析器モジュール204または分類器モジュール208に含まれてよい。ある態様では、アプリケーションベースの分類器モデル生成器モジュール308は、簡潔な分類器モデル生成器モジュール306に含まれ得る。様々な態様では、特徴選択および選別モジュール304は、アプリケーションベースの分類器モデル生成器モジュール308または簡潔な分類器モデル生成器モジュール306に含まれ得る。
【０１２８】
ネットワークサーバ116は、クラウドサービス/ネットワーク118から様々な条件、特徴、挙動および修正措置についての情報を受信し、この情報を使用して、モバイルデバイス102によって1つまたは複数の簡潔な分類器モデルに迅速に変換され得るフォーマットまたは構造で挙動情報の大きな集積を記述する完全な分類器モデルを生成するように構成され得る。たとえば、ネットワークサーバ116の中の完全な分類器モデル生成器モジュール302は、クラウドサービス/ネットワーク118から受信された挙動ベクトルのクラウド集積を使用して完全な分類器モデルを生成することができ、完全な分類器モデルは、挙動情報の大きな集積の有限状態機械による記述または表現を含み得る。有限状態機械は、モバイルデバイスの挙動を分類することに関連がある特徴およびデータポイントのすべてまたは多くを集合的に特定し、記述し、試験し、または評価するブーストされた決定株の群のような、1つまたは複数の決定ノードとして表され得る情報構造であり得る。
【０１２９】
ネットワークサーバ116は完全な分類器モデルをモバイルデバイス102に送信することができ、モバイルデバイス102は、完全な分類器モデルを受信し使用して、特徴の減らされた分類器モデル、または、複雑さまたは簡潔さのレベルが様々である分類器モデルの群を生成することができる。様々な態様では、特徴の減らされた分類器モデルは、特徴選択および選別モジュール304、簡潔な分類器モデル生成器モジュール306、アプリケーションベースの分類器生成器モジュール308、またはこれらの任意の組合せにおいて生成され得る。すなわち、モバイルデバイス102の特徴選択および選別モジュール304、簡潔な分類器モデル生成器モジュール306、および/またはアプリケーションベースの分類器生成器モジュール308は、集合的にまたは個別に、ネットワークサーバから受信された完全な分類器モデルに含まれる情報を使用して、完全な分類器モデルに含まれる特徴およびデータポイントのサブセットを含む1つまたは複数の特徴の減らされた分類器モデルを生成することができる。
【０１３０】
たとえば、簡潔な分類器モデル生成器モジュール306および特徴選択および選別モジュール304は、ネットワークサーバ116から受信された完全な分類器モデルの有限状態機械に含まれるブーストされた決定株のロバストな群を集合的に選別して、減らされた数のブーストされた決定株を含み、かつ/または限られた数の試験条件を評価する、特徴の減らされた分類器モデルを生成することができる。ブーストされた決定株のロバストな群の選別は、ブーストされた決定株を選択し、選択された決定株と同じモバイルデバイスの特徴を試験する、またはそれに依存するすべての他のブーストされた決定株を特定し、選択された株と、同じモバイルデバイスの特徴を試験する、またはそれに依存するすべての特定された他のブーストされた決定株とを、情報構造に追加することによって、達成され得る。このプロセスが次いで、少数のまたは限られた数の異なる特徴または条件を試験する、またはそれらに依存する、完全な分類器モデルの中のすべてのブーストされた決定株を情報構造が含むように、限られた数の株またはデバイスの特徴に対して繰り返され得る。モバイルデバイスは次いで、モバイルデバイスの限られた数の異なる特徴または条件を試験するために、かつ、過剰な量の処理、メモリ、またはエネルギーのリソースを消費することなくモバイルデバイスの挙動を迅速に分類するために、簡潔な分類器モデルとしてこの情報構造を使用することができる。
【０１３１】
簡潔な分類器モデル生成器モジュール306はさらに、モバイルデバイスに固有の、かつモバイルデバイス上で実行され得る特定のソフトウェアアプリケーションまたはプロセスに固有の分類器モデルを生成するように構成され得る。このようにして、モバイルデバイスに関する、かつソフトウェアアプリケーションに特に関連がある、特徴または要素を優先的にまたは排他的に試験する、1つまたは複数の簡潔な分類器モデルが生成され得る。これらのデバイス固有の、アプリケーション固有の/アプリケーションの種類に固有の簡潔な分類器モデルは、アプリケーションに関連がありモバイルデバイスに関する試験条件を選択することによって、簡潔な分類器モデル生成器モジュール306によってワンパスで生成され得る。代替的に、簡潔な分類器モデル生成器モジュール306は、モバイルデバイスに関する試験条件を含むデバイス固有の簡潔な分類器モデルを生成し、この簡潔な分類器モデルから、アプリケーションに関連がある試験条件を含む、または優先順位付ける、さらに精緻なモデルを生成することができる。さらなる代替形態として、簡潔な分類器モデル生成器モジュール306は、アプリケーションに関連がある簡潔な分類器モデルを生成し、次いで、モバイルデバイスに関連がない試験条件を除去することができる。説明を簡単にするために、デバイス固有の簡潔な分類器モデルを生成するプロセスが最初に説明され、それに続いてアプリケーション固有のまたはアプリケーションの種類に固有の簡潔な分類器モデルを生成するプロセスが説明される。
【０１３２】
簡潔な分類器モデル生成器モジュール306は、モバイルデバイス102のデバイス固有の情報を使用して、その特定のモバイルデバイス102の挙動を分類することに関連がある、またはそれに関するモバイルデバイス固有の特徴(または試験条件)を特定することによって、デバイス固有の分類器モデルを生成するように構成され得る。簡潔な分類器モデル生成器モジュール306は、この情報を使用して、特定されたモバイルデバイス固有の特徴または試験条件を優先的または排他的に含む、試験する、またはそれらに依存する、簡潔な分類器モデルを生成することができる。モバイルデバイス102は次いで、これらのローカルに生成された簡潔な分類器モデルを使用して、過剰な量の処理、メモリ、またはエネルギーのリソースを消費することなくモバイルデバイスの挙動を迅速に分類することができる。すなわち、モバイルデバイス102においてローカルに簡潔な分類器モデルを生成して、デバイス固有のまたはデバイスの状態に固有の特徴を考慮することによって、様々な態様は、モバイルデバイス102が、その特定のモバイルデバイス102における望ましくない挙動の根源または原因を特定するために最も重要である特徴または要因に対して監視動作を専念させることを可能にする。
【０１３３】
簡潔な分類器モデル生成器モジュール306はまた、監視されているモバイルデバイスの挙動のいずれかが悪性であるまたは疑わしいかどうかを判定することにソフトウェアアプリケーション/プロセスのオペレーティングシステム実行状態が関連があるかどうかを判定し、オペレーティングシステム実行状態を考慮する特徴または挙動を含む、特定する、または評価する簡潔な分類器モデルを生成するように構成され得る。モバイルデバイス102は次いで、これらのローカルに生成された簡潔な分類器モデルを使用して、そのような決定に関連があるソフトウェアアプリケーションのオペレーティングシステム実行状態を優先的または排他的に監視することができる。これにより、モバイルデバイス102は、挙動が良性かどうかをより良く予測するためにアプリケーションの最も重要な特徴および機能に対して動作を専念させることが可能になる。すなわち、選択されたソフトウェアアプリケーション(またはプロセス、スレッドなど)のオペレーティングシステム実行状態を監視することによって、様々な態様は、モバイルデバイス102が、挙動が良性であるかまたは悪性であるかをより良く予測することを可能にする。さらに、ソフトウェアアプリケーションのオペレーティングシステム実行状態が、挙動が良性であるかまたは悪性であるかの判定に関連があるかどうかをインテリジェントに判定し、そのような決定に関連があるソフトウェアアプリケーション(またはプロセス、スレッドなど)を監視するために選択することによって、様々な態様は、モバイルデバイス102が、動作をより専念させることと、過剰な量のモバイルデバイスの処理、メモリ、またはエネルギーのリソースを消費することなく性能を劣化させる挙動/要因を特定することとを可能にする。
【０１３４】
ある態様では、特徴選択および選別モジュール304は、再訓練のためにクラウドデータにアクセスするようにモバイルデバイス102に要求することなく、「オンザフライ」で特徴の選択および分類器モデルの生成を可能にするように構成され得る。これにより、アプリケーションベースの分類器モデル生成器モジュール308は、モバイルデバイス102において分類器モデルを生成/作成することが可能になり、これにより、モバイルデバイス102は、特定のソフトウェアアプリケーション、またはソフトウェアアプリケーションの特定の種類、クラス、もしくはカテゴリに関する特徴を評価することに動作を専念させることが可能になる。
【０１３５】
すなわち、アプリケーションベースの分類器モデル生成器モジュール308は、モバイルデバイス102が、特定のソフトウェアアプリケーションの動作と関連付けられる、または、ある種類、クラス、もしくはカテゴリのソフトウェアアプリケーションによって通常は実行される動作と関連付けられる、モバイルデバイスの特徴を優先的または排他的に試験または評価する、より専心的な簡潔な分類器モデルを生成し使用することが可能になる。これを達成するために、アプリケーションベースの分類器モデル生成器モジュール308は、乱用の危険性が高い、かつ/またはセキュリティに対する特別な要求のあるソフトウェアアプリケーションをインテリジェントに特定し、これらの特定されたアプリケーションの各々に対して、アプリケーションがその実行の間に実施できる、または実施するであろう活動を決定することができる。アプリケーション固有の分類器モデル生成器モジュール308は次いで、これらの活動をモバイルデバイスのデータ中心の特徴と関連付けて、個々のソフトウェアアプリケーションがモバイルデバイス102の性能を劣化させる挙動に寄与しているかどうか、または寄与する可能性が高いかどうかを判定する際の、モバイルデバイスによる使用によく適している分類器モデルを生成することができる。
【０１３６】
アプリケーション固有の分類器モデル生成器モジュール308は、新しいアプリケーションがモバイルデバイスにインストールされるたびに、または更新されるたびに、アプリケーション固有のおよび/またはアプリケーションの種類に固有の分類器モデルを生成するように構成され得る。これは、アプリケーション固有のモデル生成器モジュール310および/またはアプリケーションの種類に固有のモデル生成器モジュール312を介して達成され得る。
【０１３７】
アプリケーションの種類に固有の分類器モデル生成器モジュール312は、そのソフトウェアアプリケーションのカテゴリ、種類、または分類(たとえば、ゲーム、ナビゲーション、金融など)に基づいて、特定のソフトウェアアプリケーションのための分類器モデルを生成するように構成され得る。アプリケーションの種類に固有の分類器モデル生成器モジュール312は、ソフトウェアアプリケーションと関連付けられるアプリケーションストアのラベルを読み取ることによって、統計分析動作を実行することによって、および/またはソフトウェアアプリケーションを他の同様のソフトウェアアプリケーションと比較することによって、ソフトウェアアプリケーションのカテゴリ、種類、または分類を決定することができる。
【０１３８】
たとえば、アプリケーションの種類に固有の分類器モデル生成器モジュール312は、第1のソフトウェアアプリケーションのパーミッション(たとえば、オペレーティングシステム、ファイル、アクセスなど)および/またはAPI使用パターンを評価し、この情報を第2のソフトウェアアプリケーションのパーミッションまたはAPI使用パターンと比較して、第1のソフトウェアアプリケーションが第2のソフトウェアアプリケーションと同じパーミッションのセットを含むかどうか、または同じAPIのセットを利用するかどうかを判定し、第1のソフトウェアアプリケーションが第2のソフトウェアアプリケーションと同じパーミッションのセットを含むときに、または同じAPIのセットを利用するときに、第2のソフトウェアアプリケーションのラベリング情報を使用して、第1のソフトウェアアプリケーションに対するソフトウェアアプリケーションの種類(たとえば、金融ソフトウェア、バンキングアプリケーションなど)を決定することができる。アプリケーションの種類に固有の分類器モデル生成器モジュール312は次いで、決定されたソフトウェアアプリケーションの種類に基づいて、第1のソフトウェアアプリケーションを評価するのに適した分類器モデルを生成し、更新し、または選択することができる。ある態様では、これは、決定されたソフトウェアアプリケーションの種類に基づいて、ネットワークサーバ116から受信された完全な分類器モデルに含まれる決定ノードを選別することによって達成され得る。
【０１３９】
アプリケーション固有の分類器モデル生成器モジュール310は、ラベリング情報、静的分析、インストール時間の分析に基づいて、または、ソフトウェアアプリケーションによるオペレーティングシステム、ファイル、および/もしくはアクセスのパーミッションを判定することによって、特定のソフトウェアアプリケーションのための分類器モデルを生成するように構成され得る。たとえば、モバイルデバイスは、ソフトウェアアプリケーションが更新されるたびにソフトウェアアプリケーションの静的分析を実行し、この分析の結果をモバイルデバイスのメモリに記憶し、この情報を使用して、アプリケーションがモバイルデバイスの疑わしい挙動に寄与しているかどうかを判定するための最も重要なモバイルデバイスの条件または要因を決定し、最も重要な条件または要因を試験するノードを含むように、完全な分類器モデルに含まれる決定ノードを選別することができる。
【０１４０】
図4は、モバイルデバイス102においてアプリケーション固有のおよび/またはアプリケーションの種類に固有の分類器モデルを生成するある態様の方法400を示す。方法400は、モバイルデバイス102の処理コアによって実行され得る。
【０１４１】
ブロック402において、処理コアは、完全な分類器モデル452に含まれる情報を使用して、モバイルデバイスの挙動が良性であるか、またはモバイルデバイス102の性能もしくは電力消費特性の経時的な劣化に寄与しているかを判定することに関連がある特徴およびデータポイントのすべてまたは多くを集合的に特定し、記述し、試験し、または評価する、多数の決定ノード448を生成することができる。たとえば、ブロック402において、処理コアは、40個の固有の条件を試験する100個の決定ノード448を生成することができる。
【０１４２】
ある態様では、決定ノード448は決定株(たとえば、ブーストされた決定株など)であり得る。各決定株は、1つの条件またはモバイルデバイスの特徴を試験する1つだけのノードを有する、1段の決定木であり得る。決定株には1つのノードしかないので、特徴ベクトルを決定株に適用することは2値の答え(たとえば、はいまたはいいえ、悪性であるまたは良性である、など)をもたらす。たとえば、決定株448bによって試験される条件が「SMS送信の頻度が毎分x回未満であるか」である場合、「3」という値を決定株448bに適用することで、(「3回未満」のSMS送信に対して)「yes」の答えと(「3回以上」のSMS送信に対して)「no」の答えのいずれかがもたらされる。この2値の「yes」または「no」の答えが次いで、挙動が悪性である(M)または良性である(B)かのいずれかであることを示すものとして、結果を分類するために使用され得る。これらの株は非常に単純な評価(基本的に2値)であるので、各株を実行するための処理は非常に単純であり、したがってより小さい処理オーバーヘッドで迅速におよび/または並列に達成され得る。
【０１４３】
ある態様では、各決定ノード448は、試験質問に答えることからどれだけの知識が得られるか、および/または、モバイルデバイスの挙動が良性であるかどうかを処理コアが判定することを試験質問に答えることが可能にするであろう確率を示す、重み値と関連付けられ得る。決定ノード448と関連付けられた重みは、モバイルデバイスの挙動、ソフトウェアアプリケーション、またはモバイルデバイス中のプロセスの、以前の観測または分析から収集された情報に基づいて計算され得る。ある態様では、各決定ノード448と関連付けられた重みはまた、データの集積(たとえば、データまたは挙動ベクトルのクラウド集積)のどれだけ多くのユニットがノードを構築するために使用されるかに基づいて計算され得る。ある態様では、重み値は、以前のデータ/挙動モデルまたは分類器の実行/適用から収集される正確さまたは性能の情報に基づいて生成され得る。
【０１４４】
図4に戻ると、ブロック404において、処理コアは、完全な分類器モデル452に含まれる決定ノード448の専心的なサブセットを含む、簡潔な分類器モデル454を生成することができる。これを達成するために、処理コアは、完全な分類器モデル452に含まれる決定ノード448の順序付けられたまたは優先順位付けられたリストを生成するステップと、モバイルデバイス102の過剰な量の処理、メモリ、またはエネルギーのリソースを消費することなくモバイルデバイスの挙動を分類するために評価されるべきある数の固有の試験条件を決定するステップと、決定ノード448の順序付けられた/優先順位付けられたリストを順次網羅的に検討し、試験条件のリストが決定された数の固有の試験条件を含むまで、順次網羅的に検討された決定ノード448の各々と関連付けられた試験条件を試験条件のリストに挿入することによって、試験条件のリストを生成するステップと、生成された試験条件のリストに含まれる試験条件の1つを試験する決定ノード448を優先的にまたは排他的に含む情報構造を生成するステップとを含み得る、特徴選択動作を実行することができる。ある態様では、処理コアは、分類器モデルの群の中の各モデル454が異なる数の固有の試験条件を評価するように、かつ/または異なる数の決定ノードを含むように、分類器モデルの群を生成することができる。
【０１４５】
ブロック406において、処理コアは、たとえば、アプリケーションによってコールされないまたは呼び出されないAPIまたは機能をアドレス指定する決定ノードを省略することによって、さらに、アプリケーションによってアクセスまたは変更されないデバイスリソースに関する決定ノードを省略することによって、簡潔な分類器モデル454の1つに含まれる決定ノード(すなわち、ブーストされた決定株)を削減し、選別し、または間引いて、特定のソフトウェアアプリケーション(すなわち、Google(登録商標) wallet)に関連がある条件または特徴を試験または評価する、簡潔な分類器モデル454の中の決定ノードを優先的にまたは排他的に含む、アプリケーション固有の分類器モデル456を生成することができる。ある態様では、処理コアは、特徴の選択および選別の動作を実行することによって、アプリケーション固有の分類器モデル456を生成することができる。様々な態様では、処理コアは、ソフトウェアアプリケーションと関連付けられるラベリング情報、アプリケーションに対する静的分析動作の実行の結果、アプリケーションのインストール時間分析の実行の結果に基づいて、ソフトウェアアプリケーションによるオペレーティングシステム、ファイル、および/またはアクセスのパーミッションを評価すること、アプリケーションのAPI使用を評価することなどによって、アプリケーション固有の分類器モデル456に含めるための決定ノード448を特定することができる。
【０１４６】
ある態様では、ブロック406において、処理コアは、各々が異なるソフトウェアアプリケーションを評価する、複数のアプリケーション固有の分類器モデル456を生成することができる。ある態様では、処理コアは、システム中のすべてのソフトウェアアプリケーションのために、および/または、モバイルデバイス上で実行されるすべてのアプリケーションが固有のアクティブな分類器を有するように、アプリケーション固有の分類器モデル456を生成することができる。ある態様では、ブロック406において、処理コアは、アプリケーション固有の分類器モデル456の群を生成することができる。アプリケーション固有の分類器モデル456の群の中の各々のアプリケーション固有の分類器モデル456は、単一のソフトウェアアプリケーションに関連がある異なる組合せまたは数の特徴を評価することができる。
【０１４７】
ブロック408において、処理コアは、簡潔な分類器モデル454の1つに含まれる決定ノード(すなわち、ブーストされた決定株)を削減し、選別し、または間引いて、アプリケーションの種類に固有の分類器モデル458を生成することができる。生成されたアプリケーションの種類に固有の分類器モデル458は、特定の種類、カテゴリ、またはクラスのソフトウェアアプリケーション(たとえば、ゲーム、ナビゲーション、金融など)に関連がある条件または特徴を試験または評価する、完全なまたは簡潔な分類器モデル452、454に含まれる、決定ノードを優先的にまたは排他的に含み得る。ある態様では、処理コアは、特徴の選択および選別の動作を実行することによって、アプリケーションの種類に固有の分類器モデル458に含めるための決定ノードを特定することができる。ある態様では、処理コアは、ソフトウェアアプリケーションと関連付けられるアプリケーションストアのラベルを読み取ること、静的分析動作を実行すること、および/またはソフトウェアアプリケーションを他の同様のソフトウェアアプリケーションと比較することによって、各ソフトウェアアプリケーションのカテゴリ、種類、もしくは分類を決定し、かつ/または、アプリケーションの種類に固有の分類器モデル456に含まれるべき決定ノード448を特定することができる。
【０１４８】
ブロック410において、処理コアは、ローカルに生成された分類器モデル454、456、458の1つまたは任意の組合せを使用して、リアルタイムの挙動監視および分析動作を実行して、複合的なモバイルデバイスの挙動が良性であるか、またはモバイルデバイスの性能もしくは電力消費特性の劣化に寄与しているかを予測することができる。ある態様では、モバイルデバイスは、複数の分類器モデル454、456、458を並列に使用または適用するように構成され得る。ある態様では、処理コアは、特定のソフトウェアアプリケーションを評価するときに簡潔な分類器モデル454を適用/使用することで得られる結果よりも、アプリケーションベースの分類器モデル456、458を適用または使用することで得られる結果に、選好または優先権を与えることができる。処理コアは、分類器モデルを適用した結果を使用して、複合的なモバイルデバイスの挙動が、良性であるか、またはモバイルデバイスの性能もしくは電力消費特性の経時的な劣化に寄与しているかを予測することができる。
【０１４９】
アプリケーション固有のまたはアプリケーションの種類に固有の特徴および/または機能を考慮するように、モバイルデバイスにおいてローカルにアプリケーションベースの分類器モデル456、458を動的に生成することによって、様々な態様は、モバイルデバイス102が、特定のソフトウェアアプリケーションの動作がモバイルデバイスの望ましくない挙動または性能を劣化させる挙動に寄与しているかどうかを判定するのに最も重要な少数の特徴に対する分析動作に専念することを可能にする。このことは、モバイルデバイス102の性能および電力消費特性を改善し、モバイルデバイスが過剰な量の処理、メモリ、またはエネルギーのリソースを消費することなく、リアルタイムの挙動監視および分析動作を、継続的に、またはほぼ継続的に実行することを可能にする。
【０１５０】
図5Aは、複数のアプリケーションベースの分類器モデルに並列に挙動ベクトルを適用するためにある態様のモバイルデバイス102によって使用され得る、例示的な分類器モデル500を示す。分類器モデル500は、完全な分類器モデルまたはローカルに生成された簡潔な分類器モデルであり得る。分類器モデル500は、1つまたは複数のソフトウェアアプリケーションApp1〜App5と関連付けられる複数の決定ノード502〜514を含み得る。たとえば、図5Aにおいて、決定ノード502はソフトウェアアプリケーションApp1、App2、App4、およびApp5と関連付けられ、決定ノード504はApp1と関連付けられ、決定ノード506はApp1およびApp2と関連付けられ、決定ノード508はソフトウェアアプリケーションApp1、App2、App4、およびApp5と関連付けられ、決定ノード510はソフトウェアアプリケーションApp1、App2、およびApp5と関連付けられ、決定ノード512はソフトウェアアプリケーションApp1と関連付けられ、決定ノード514はソフトウェアアプリケーションApp1、App2、App4、およびApp5と関連付けられる。
【０１５１】
ある態様では、モバイルデバイス中の処理コアは、決定ノード502〜514とソフトウェアアプリケーションApp1〜App5との間の対応付けを使用して、複数のアプリケーションベースの分類器モデルへと分類器モデル500を区分するように構成され得る。たとえば、プロセッサは、この対応付けを使用して、App1のためのアプリケーションベースの分類器が決定ノード502〜514を含むべきであり、一方でApp2のためのアプリケーションベースの分類器が決定ノード502、506、508、510、および514を含むべきであると、決定することができる。すなわち、各ソフトウェアアプリケーションに対して異なる分類器モデルを生成して実行するのではなく、処理コアは、分類器モデル500に含まれるすべての決定ノード502〜514に挙動ベクトルを適用して、すべての分類器に対して決定ノード502〜514の同じセットを実行することができる。各アプリケーションApp1〜App5に対して、モバイルデバイスは、アプリケーションApp1〜App5に関連がある決定ノード502〜514が、そのアプリケーションが実行されているときにデバイスの挙動を評価するために使用されるように、または優先されるように、マスク(たとえば、0-1マスク)を分類器モデル500に適用することができる。
【０１５２】
ある態様では、モバイルデバイスは、対応するアプリケーションApp1〜App5への関連性に基づいて、決定ノード502〜514に対して異なる重み値または異なる加重平均を計算することができる。マルウェア/良性についてのそのような信頼値を計算するステップは、いくつかの決定ノード502〜514を評価して、重み値の加重平均をとるステップを含み得る。ある態様では、モバイルデバイスは、同じまたは異なる簡潔な分類器にわたって信頼値を計算することができる。ある態様では、モバイルデバイスは、分類器を構成する決定ノード502〜514の各組合せに対して異なる加重平均を計算することができる。
【０１５３】
図5Bは、モバイルデバイスのアプリケーション固有のおよびアプリケーションの種類に固有の特徴を考慮する分類器モデルを生成するある態様の方法510を示す。方法510は、モバイルデバイス中の処理コアによって実行され得る。
【０１５４】
ブロック512において、処理コアは、合同の特徴選択および選別(JFSP)動作を実行して、減らされた数の決定ノードおよび特徴/試験条件を含む簡潔な分類器モデルを生成することができる。ブロック518において、処理コアは、モバイルデバイスの挙動を分類することに対する関連性に従って、特徴/試験条件を優先順位付け、またはランク付けすることができる。
【０１５５】
ブロック514において、処理コアは、アプリケーションのパーミッションセット{Fper}を評価することによって、ソフトウェアアプリケーションのための特徴/試験条件を導出または決定することができる。ブロック516において、処理コアは、そのアプリケーション上で静的分析またはインストール時間分析を実行した結果を評価することによって、ソフトウェアアプリケーションのための特徴または試験条件のセット{Finstall}を決定することができる。ブロック520において、処理コアは、モバイルデバイスの挙動を分類することに対する関連性に従って、各アプリケーションのための特徴/試験条件を優先順位付け、またはランク付けすることができる。ある態様では、これは以下の式を介して達成され得る。
{Fapp} = {Fper} U {Finstall}
【０１５６】
ブロック522において、処理コアは、順序付け関数としてJFSPを使用して、アプリケーションごとの特徴{Fapp}を優先順位付け、またはランク付けすることができる。たとえば、処理コアは、ブロック518において生成される簡潔な分類器に対してJFSP動作を実行することができる。ブロック524において、処理コアは、アプリケーションごとの特徴{Fapp}のランク付けされたリストを生成することができる。ブロック526において、処理コアは、JFSPを適用して関心のある特徴を選択することができる。ブロック528において、処理コアは、関心のある特徴を含むようにアプリケーションごとの簡潔な分類器モデルを生成することができる。
【０１５７】
図6は、モバイルデバイスのアプリケーション固有のおよびアプリケーションの種類に固有の特徴を考慮する、簡潔なまたは専心的な分類器/挙動モデルを生成するある態様の方法600を示す。
【０１５８】
方法600のブロック602において、処理コアは、有限状態機械、ブーストされた決定木、決定株のリスト、または複数の試験条件を特定する他の同様の情報構造である、またはそれらを含む、完全な分類器モデルを受信することができる。ある態様では、完全な分類器モデルは、複数のブーストされた決定株を表現するのに適した情報を含み、かつ/または複数のブーストされた決定株へのモバイルデバイスによる変換に適した情報を含む、有限状態機械を含む。ある態様では、有限状態機械は、ブーストされた決定株の順序付けられた、または優先順位付けられたリストであり得る(またはそれを含み得る)。ブーストされた決定株の各々は、試験条件および重み値を含み得る。
【０１５９】
ブロック604において、処理コアは、モバイルデバイスの過剰な量の処理、メモリ、またはエネルギーのリソースを消費することなく、モバイルデバイスの挙動を悪性または良性のいずれかとして正確に分類するために評価されるべき固有の試験条件の数を決定することができる。これは、モバイルデバイスにおいて利用可能な処理、メモリ、および/またはエネルギーのリソースの量、条件を試験するために必要なモバイルデバイスの処理、メモリ、またはエネルギーのリソースの量を決定するステップと、条件を試験することによってモバイルデバイスにおいて分析または評価されるべき挙動または条件と関連付けられる優先順位および/または複雑さを決定することと、モバイルデバイスの利用可能な処理、メモリ、またはエネルギーのリソースの消費、条件を試験することによって達成されることになる挙動分類の正確さ、および条件によって試験される挙動の重要性または優先度の間でバランスを取るように、または折り合いをつけるように固有の試験条件の数を選択/決定するステップとを含み得る。
【０１６０】
ブロック606において、処理コアは、デバイス固有のまたはデバイスの状態に固有の情報を使用して、簡潔な分類器モデルに含まれるべきである、または簡潔な分類器モデルから除外されるべきである、特徴および/または試験条件を迅速に特定することができる。たとえば、処理コアは、モバイルデバイスの現在のハードウェアまたはソフトウェアの構成、動作状態などに起因して、モバイルデバイスの中に存在することができない条件、特徴、または要因を試験する試験条件を特定することができる。別の例として、処理コアは、完全なモデルに含まれる特徴/ノード/株、およびモバイルデバイスの中に存在することができない、かつ/またはモバイルデバイスに関係しない試験条件を特定し、簡潔な分類器モデルから除外することができる。
【０１６１】
ある態様では、ブロック608において、処理コアは、決定された数の固有の試験条件を有する選択された試験条件のリストを生成するために、およびブロック606において特定された試験条件を除外するために、ブーストされた決定株のリストを最初から網羅的に検討することができる。たとえば、処理コアは、ソフトウェアアプリケーションによって使用され得ない条件を試験する、完全な分類器モデルに含まれる特徴を省略し、無視し、または削除することができる。ある態様では、処理コアはまた、選択された試験条件の各々に対する絶対的または相対的な優先度の値を決定し、選択された試験条件のリスト中の対応する試験条件に関連して、絶対的または相対的な優先度の値を記憶することができる。
【０１６２】
ある態様では、ブロック608において、処理コアは、完全な分類器モデルの中の複数の試験条件を順次網羅的に検討し、試験条件のリストが決定された数の固有の試験条件を含むまで、モバイルデバイスの挙動を分類することに関連がある試験条件を試験条件のリストに挿入することによって、試験条件のリストを生成することができる。さらなる態様では、試験条件のリストを生成するステップは、完全な分類器モデルの決定ノードを順次網羅的に検討するステップと、ソフトウェアアプリケーションに関連がない試験条件と関連付けられる決定ノードを無視するステップと、試験条件のリストが決定された数の固有の試験条件を含むまで、無視されていない順次網羅的に検討された各決定ノードと関連付けられる試験条件を試験条件のリストに挿入するステップとを含み得る。
【０１６３】
ブロック610において、処理コアは、生成された試験条件のリストにおいて特定された、選択された(したがって、ブロック606において特定された試験条件を除外する)試験条件の1つを試験する、完全な分類器モデルに含まれるすべてのブーストされた決定株を含む簡潔な分類器モデルを生成することができる。ある態様では、処理コアは、それらの重要性または優先度の値の順でブーストされた決定株を含むように、または表現するように、簡潔な分類器モデルを生成することができる。ある態様では、ブロック610において、処理コアは、ブロック608においてより多数の試験条件に対するブーストされた決定株のリストを網羅的に検討して別の簡潔な分類器モデルを生成する動作を繰り返すことによって、別のよりロバストな(すなわち、より簡潔ではない)簡潔な分類器モデルを生成するために、固有の試験条件の数を増やすことができる。これらの動作は、簡潔な分類器モデルの群を生成するために繰り返され得る。
【０１６４】
ブロック612において、処理コアは、アプリケーション固有の情報および/またはアプリケーションの種類に固有の情報を使用して、簡潔な分類器モデルに含まれ、かつソフトウェアアプリケーションがモバイルデバイスの性能を劣化させる挙動に寄与しているかどうかを判定することに関連がある、特徴または試験条件を特定することができる。ブロック614において、処理コアは、簡潔な分類器モデルの中のブーストされた決定株を網羅的に検討して、ソフトウェアアプリケーションによって使用される特徴または条件を試験する決定株を選択し、またはそのソフトウェアアプリケーションと対応付け、選択されたまたは対応付けられた決定株を、アプリケーション固有の分類器モデルまたはアプリケーションの種類に固有の分類器モデルとして使用することができる。
【０１６５】
図7は、モバイルデバイスの挙動を分類するために簡潔な分類器モデルを使用する、ある態様の方法700を示す。方法700は、モバイルデバイス中の処理コアによって実行され得る。
【０１６６】
ブロック702において、処理コアは、観測を実行して、モバイルデバイスシステムの様々なレベルにおいて取り付けられた様々なコンポーネントから挙動情報を収集することができる。ある態様では、これは、図2を参照して上で論じられた挙動観測器モジュール202を介して達成され得る。ブロック704において、処理コアは、観測結果、収集された挙動情報、および/またはモバイルデバイスの挙動を特徴付ける、挙動ベクトルを生成することができる。また、ブロック704において、処理コアは、ネットワークサーバから受信された完全な分類器モデルを使用して、簡潔な分類器モデル、または複雑さ(または「簡潔さ」)のレベルが様々である簡潔な分類器モデルの群を生成することができる。これを達成するために、処理コアは、完全な分類器モデル内に含まれるブーストされた決定株の群を選別して、減らされた数のブーストされた決定株を含む、かつ/または限られた数の試験条件を評価する、簡潔な分類器モデルを生成することができる。
【０１６７】
ブロック706において、処理コアは、モバイルデバイスによってまだ評価または適用されていない簡潔な分類器モデルの群の中で最も簡潔な分類器(すなわち、最少の数の異なるモバイルデバイスの状態、特徴、挙動、または条件に基づくモデル)を選択することができる。ある態様では、これは、処理コアが分類器モデルの順位付けられたリストの中の最初の分類器モデルを選択することによって達成され得る。
【０１６８】
ブロック708において、処理コアは、収集された挙動情報または挙動ベクトルを、選択された簡潔な分類器モデルの中の各々のブーストされた決定株に適用することができる。ブーストされた決定株は2値の決定であり、簡潔な分類器モデルは同じ試験条件に基づく多くの2値の決定を選択することによって生成されるので、簡潔な分類器モデルの中のブーストされた決定株に挙動ベクトルを適用する処理は、並列動作で実行され得る。代替的に、ブロック530において適用される挙動ベクトルは、簡潔な分類器モデル内に含まれる限られた数の試験条件パラメータをちょうど含むように切り捨てられてよく、またはフィルタリングされてよく、それによってモデルを適用する際の計算量はさらに低減される。
【０１６９】
ブロック710において、処理コアは、収集された挙動情報を簡潔な分類器モデルの中の各々のブーストされた決定株に適用した結果の加重平均を計算または決定することができる。ブロック712において、処理コアは、計算された加重平均と閾値とを比較することができる。判定ブロック714において、処理コアは、この比較の結果、および/または選択された簡潔な分類器モデルを適用することによって生成された結果が疑わしいかどうかを判定することができる。たとえば、処理コアは、これらの結果が、高い信頼度で悪性または良性のいずれかであるとして挙動を分類するために使用され得るかどうかを判定することができ、そうでない場合、挙動を疑わしいものとして扱う。
【０１７０】
結果が疑わしいと処理コアが判定する(たとえば、判定ブロック714=「Yes」の)場合、処理コアは、ブロック706〜712における動作を繰り返して、挙動が高い信頼度で悪性または良性であるとして分類されるまで、より多くのデバイスの状態、特徴、挙動、または条件を評価するより強い(すなわち、より簡潔ではない)分類器モデルを選択および適用することができる。挙動が高い信頼度で悪性または良性のいずれかであるとして分類され得ると判定することなどによって、結果が疑わしくない(たとえば、判定ブロック714=「No」)と処理コアが判定する場合、ブロック716において、処理コアは、ブロック712において生成された比較の結果を使用して、良性であるまたは潜在的に悪性であるとしてモバイルデバイスの挙動を分類することができる。
【０１７１】
ある代替的な態様の方法では、上で説明された動作は、簡潔な分類器モデルの中にまだ存在しないブーストされた決定株を順次選択し、選択された決定株と同じモバイルデバイスの状態、特徴、挙動または条件に依存する(およびしたがって、1つの決定結果に基づいて適用され得る)すべての他のブーストされた決定株を特定し、同じモバイルデバイスの状態、特徴、挙動または条件に依存する選択されたすべての特定された他のブーストされた決定株を簡潔な分類器モデルに含め、試験条件の決定された数に等しい回数、プロセスを繰り返すことによって、達成され得る。選択されたブーストされた決定株と同じ試験条件に依存するすべてのブーストされた決定株が毎回簡潔な分類器モデルに追加されるので、このプロセスが実行される回数を限定することは、簡潔な分類器モデルに含まれる試験条件の数を限定することになる。
【０１７２】
図8は、様々な態様に従って使用するのに適した、ブーストされた決定木/分類器を生成するのに適した例示的なブースト方法800を示す。動作802において、プロセッサは、決定木/分類器を生成および/または実行し、決定木/分類器の実行によって訓練サンプルを収集し、訓練サンプルに基づいて新しい分類器モデル(h1(x))を生成することができる。訓練サンプルは、モバイルデバイスの挙動、ソフトウェアアプリケーション、またはモバイルデバイスにおけるプロセスの、以前の観測または分析から収集された情報を含み得る。訓練サンプルおよび/または新しい分類器モデル(h1(x))は、以前の分類器に含まれる質問もしくは試験条件の種類に基づいて、ならびに/または、挙動分析器モジュール204の分類器モジュール208の中の以前のデータ/挙動モデルまたは分類器の実行/適用によって収集された正確さもしくは性能特性に基づいて生成され得る。動作804において、プロセッサは、第2の新しい木/分類器(h2(x))を生成するために、生成された決定木/分類器(h1(x))によって誤分類されたエントリの重みをブーストする(または増大させる)ことができる。ある態様では、訓練サンプルおよび/または新しい分類器モデル(h2(x))は、分類器の以前の実行または使用(h1(x))の誤り率に基づいて生成され得る。ある態様では、訓練サンプルおよび/または新しい分類器モデル(h2(x))は、分類器の以前の実行または使用においてデータポイントの誤り率または誤分類に寄与したと判定される属性に基づいて生成され得る。
【０１７３】
ある態様では、誤分類されたエントリは、それらの相対的な正確さまたは有効性に基づいて重み付けられ得る。動作806において、プロセッサは、第3の新しい木/分類器(h3(x))を生成するために、生成された第2の木/分類器(h2(x))によって誤分類されたエントリの重みをブーストする(または増大させる)ことができる。動作808において、804〜806の動作が、数「t」の新しい木/分類器(ht(x))を生成するために繰り返され得る。
【０１７４】
第1の決定木/分類器(h1(x))によって誤分類されたエントリの重みをブーストし、または増大させることによって、第2の木/分類器(h2(x))は、第1の決定木/分類器(h1(x))によって誤分類されたエントリをより正確に分類することができるが、第1の決定木/分類器(h1(x))によって正しく分類されたエントリのいくつかを誤分類することがある。同様に、第3の木/分類器(h3(x))は、第2の決定木/分類器(h2(x))によって誤分類されたエントリをより正確に分類することができるが、第2の決定木/分類器(h2(x))によって正しく分類されたエントリのいくつかを誤分類することがある。すなわち、木/分類器の群h1(x)〜ht(x)を生成することは、全体として収束するシステムをもたらさないことがあり、並列に実行され得るいくつかの決定木/分類器をもたらす。
【０１７５】
図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は、これを、潜在的に脅威をもたらす挙動として認識し、適切な対応(たとえば、カメラを遮断する、警報を鳴らすなど)を開始することができる。
【０１８１】
ある態様では、挙動観測器モジュール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〜図10を参照して上で論じられた動作の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は、内部メモリ1204と、ディスプレイ1212と、スピーカー1214とに結合されたプロセッサ1202を含み得る。加えて、スマートフォン1200は、プロセッサ1202に結合されたワイヤレスデータリンクおよび/または携帯電話送受信機1208に接続され得る、電磁放射を送信しかつ受信するためのアンテナを含み得る。スマートフォン1200は通常、ユーザ入力を受け取るためのメニュー選択ボタンまたはロッカースイッチ1220も含む。
【０１９２】
一般的なスマートフォン1200はまた、マイクロフォンから受信された音をワイヤレス送信に適したデータパケットにデジタル化し、かつ受信された音のデータパケットを復号し、音を生成するためにスピーカーに与えられるアナログ信号を生成する、音の符号化/復号(CODEC)回路1206を含む。また、プロセッサ1202、ワイヤレス送受信機1208およびコーデック1206の1つまたは複数は、デジタル信号プロセッサ(DSP)回路(個別に示されず)を含み得る。
【０１９３】
態様の方法の一部は、態様の方法を実行している間にモバイルデバイスのプロセッサによってアクセスされ得る正常な動作挙動のデータベースを維持することのような、サーバにおいて発生する処理のいくつかによって、クライアントサーバアーキテクチャ中で遂行され得る。そのような態様は、図13に示されるサーバ1300のような、種々の市販のサーバデバイスのいずれにおいても実装され得る。そのようなサーバ1300は通常、揮発性メモリ1302と、ディスクドライブ1303などの大容量の不揮発性メモリとに結合されたプロセッサ1301を含む。サーバ1300はまた、プロセッサ1301に結合されたフロッピーディスクドライブ、コンパクトディスク(CD)、またはDVDディスクドライブ1304を含み得る。サーバ1300はまた、他のブロードキャストシステムコンピュータおよびサーバに結合されたローカルエリアネットワークのような、ネットワーク1305とのデータ接続を確立するための、プロセッサ1301に結合されたネットワークアクセスポート1306を含み得る。
【０１９４】
プロセッサ1202、1301は、以下で説明される様々な態様の機能を含む、種々の機能を実行するようにソフトウェア命令(アプリケーション)によって構成され得る、任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、または1つもしくは複数の多重プロセッサチップであり得る。いくつかのモバイルデバイスでは、1つのプロセッサをワイヤレス通信機能専用にし、1つのプロセッサを他のアプリケーションの実行専用にするように、複数のプロセッサ1202が設けられ得る。通常、ソフトウェアアプリケーションは、それらがアクセスされ、プロセッサ1202、1301にロードされる前に、内部メモリ1204、1302、1303に記憶され得る。プロセッサ1202、1301は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。
【０１９５】
いくつかの異なるセルラー通信およびモバイル通信のサービスおよび規格が利用可能であるか、または将来考えられ、それらのすべてが様々な態様を実装し、様々な態様から恩恵を受けることができる。そのようなサービスおよび規格は、たとえば、第3世代パートナーシッププロジェクト(3GPP)、long term evolution(LTE)システム、第3世代ワイヤレスモバイル通信技術(3G)、第4世代ワイヤレスモバイル通信技術(4G)、global system for mobile communications(GSM（登録商標）)、universal mobile telecommunications system(UMTS)、3GSM（登録商標）、general packet radio service(GPRS)、符号分割多元接続(CDMA)システム(たとえば、cdmaOne, CDMA1020(商標))、enhanced data rates for GSM（登録商標） evolution(EDGE)、advanced mobile phone system(AMPS)、デジタルAMPS(IS-136/TDMA)、evolution-data optimized(EV-DO)、digital enhanced cordless telecommunications(DECT)、Worldwide Interoperability for Microwave Access(WiMAX)、ワイヤレスローカルエリアネットワーク(WLAN)、Wi-Fi Protected Access I & II(WPA, WPA2)、およびintegrated digital enhanced network(iden)を含む。これらの技術の各々は、たとえば、音声、データ、シグナリング、および/またはコンテンツメッセージの送信および受信を伴う。個々の電気通信の規格または技術に関係する用語および/または技術的詳細に対するいかなる言及も例示目的にすぎず、請求項の文言に具体的に記載されない限り、特許請求の範囲を特定の通信システムまたは通信技術に限定するものではないことを理解されたい。
【０１９６】
「性能劣化」という用語は、本明細書では、長い処理時間、遅いリアルタイム応答性、短いバッテリー持続時間、個人データの喪失、悪意のある経済活動(たとえば、無許可のプレミアムSMSメッセージを送信すること)、サービス拒否(DoS)、モバイルデバイスを乗っ取ることまたはスパイもしくはボットネット活動のために電話を利用することに関する動作のような、多種多様な望ましくないモバイルデバイスの動作および特性を指すために使用される。
【０１９７】
様々な態様の動作を遂行するためにプログラマブルプロセッサ上で実行されるコンピュータプログラムコードすなわち「プログラムコード」は、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、FLASHメモリ、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または命令またはデータ構造の形態で所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を含み得る。本明細書で使用される場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタルバーサタイルディスク(disc)(DVD)、フロッピーディスク(disk)、およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、一方、ディスク(disc)はデータをレーザで光学的に再生する。上記の組合せも非一時的コンピュータ可読およびプロセッサ可読媒体の範囲内に含まれるべきである。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る、非一時的なプロセッサ可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の1つまたは任意の組合せまたはセットとして存在し得る。
【０２０４】
開示される態様の前述の説明は、当業者が本発明を作成または使用することを可能にするために提供されている。これらの態様に対する様々な修正は、当業者には容易に明らかであり、本明細書で定義された一般的な定義は、本発明の要旨または範囲から逸脱することなく、他の態様に適用され得る。したがって、本発明は、本明細書に示される態様に限定されることは意図されず、以下の特許請求の範囲、ならびに、本明細書で開示されている原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【０２０５】
100  通信システム
102  モバイルデバイス
104  携帯電話ネットワーク
106  セル基地局
108  ネットワーク運用センター
110  インターネット
112  双方向ワイヤレス通信リンク
114  サーバ
116  ネットワークサーバ
118  クラウドサービスプロバイダネットワーク
200  リアルタイムの挙動監視および分析動作
202  挙動観測器モジュール
204  挙動分析モジュール
206  外部状況情報モジュール
208  分類器モジュール
210  作動器モジュール
300  システム
302  完全な分類器モデル生成器モジュール
304  特徴選択および選別モジュール
306  簡潔な分類器モデル生成器モジュール
308  アプリケーションベースの分類器モデル生成器モジュール
310  アプリケーション固有のモデル生成器モジュール
312  アプリケーションの種類に固有のモデル生成器モジュール
400  方法
448  決定ノード
452  完全な分類器モデル
454  簡潔な分類器モデル
456  アプリケーション固有の分類器モデル
458  アプリケーションの種類に固有の分類器モデル
500  分類器モデル
502  決定ノード
504  決定ノード
506  決定ノード
508  決定ノード
510  決定ノード
512  決定ノード
514  決定ノード
600  方法
700  方法
800  ブースト方法
802  訓練サンプル
804  重み付けられたサンプル
806  重み付けられたサンプル
808  重み付けられたサンプル
902  適応フィルタモジュール
904  スロットルモジュール
906  観測器モードモジュール
908  高レベル挙動検出モジュール
910  挙動ベクトル生成器
912  セキュアバッファ
914  空間相関モジュール
916  時間相関モジュール
1000  コンピューティングシステム
1002  挙動検出器
1004  データベースエンジン
1006  セキュアバッファマネージャ
1008  ルールマネージャ
1010  システムヘルスモニタ
1014  リングバッファ
1016  フィルタルール
1018  スロットルルール
1020  セキュアバッファ
1100  方法
1200  スマートフォン
1202  プロセッサ
1204  内部メモリ
1206  符号化/復号回路
1208  携帯電話送受信機
1212  ディスプレイ
1214  スピーカー
1220  ロッカースイッチ
1300  サーバ
1301  プロセッサ
1302  揮発性メモリ
1303  ディスクドライブ
1304  ディスクドライブ
1305  ネットワーク
1306  ネットワークアクセスポート
【図１】
0006320532.tif 000002
【図２】
0006320532.tif 000003
【図３】
0006320532.tif 000004
【図４】
0006320532.tif 000005
【図５Ａ】
0006320532.tif 000006
【図５Ｂ】
0006320532.tif 000007
【図６】
0006320532.tif 000008
【図７】
0006320532.tif 000009
【図８】
0006320532.tif 000010
【図９】
0006320532.tif 000011
【図１０】
0006320532.tif 000012
【図１１】
0006320532.tif 000013
【図１２】
0006320532.tif 000014
【図１３】
0006320532.tif 000015