【文献】
菅谷 みどり 外1名,「組込みシステム向けオンライン障害検出システムの提案」,情報処理学会研究報告,日本,社団法人情報処理学会,2010年,第2010−SLDM−144巻,第62号,pp.1−8
【文献】
木村 周 外2名,「モバイル端末上における行動認識のための距離関数を用いた分類モデル生成手法の提案と評価」,情報処理学会研究報告,日本,一般社団法人情報処理学会,2012年,第2012−IOT−16巻,第20号,pp.1−6
(58)【調査した分野】(Int.Cl.,DB名)
前記モバイルデバイスを監視して、前記モバイルデバイスの状態、前記モバイルデバイスの構成、前記モバイルデバイスの能力、および前記モバイルデバイスの機能のうちの1つにおける変化を検出するステップと、
前記変化を検出したことに応答して、テスト条件の更新されたセットを含めるように、前記簡潔な分類器モデルを修正するステップと、
前記修正された簡潔な分類器モデルを使用して、前記モバイルデバイスの前記挙動を分類するステップと
をさらに含む、請求項1に記載の方法。
前記モバイルデバイスを監視するステップ、および前記変化を検出したことに応答して、テスト条件の前記更新されたセットを含めるように、前記簡潔な分類器モデルを修正するステップが、
前記検出された変化に関連する、追加されるモバイルデバイスの特徴を識別するステップと、
前記識別された追加されるモバイルデバイスの特徴が、前記生成された簡潔な分類器モデルに含まれるかどうかを判定するステップと、
前記識別された特徴が前記生成された簡潔な分類器モデルに含まれないとの判定に応答して、前記生成された簡潔な分類器モデルに前記識別された特徴を追加するステップと
を含む、請求項5に記載の方法。
前記モバイルデバイスを監視するステップ、および前記変化を検出したことに応答して、テスト条件の前記更新されたセットを含めるように、前記簡潔な分類器モデルを修正するステップが、
前記モバイルデバイスへの補助構成要素の追加を検出することによって、前記モバイルデバイスの前記能力における前記変化を検出するステップと、
前記簡潔な分類器モデルが前記補助構成要素を評価する任意のテスト条件を含むかどうかを判定するステップと、
前記簡潔な分類器モデルが前記補助構成要素を評価する任意のテスト条件を含まないとの判定に応答して、前記完全な分類器モデルが前記補助構成要素についての任意のテスト条件を含むかどうかを判定するステップと、
前記完全な分類器モデルが前記補助構成要素についてのテスト条件を含むとの判定に応答して、前記簡潔な分類器モデルに前記補助構成要素に関連する新しいテスト条件を含む新しい決定ノードを追加するステップと
を含む、請求項5に記載の方法。
前記モバイルデバイスを監視するステップ、および前記変化を検出したことに応答して、テスト条件の前記更新されたセットを含めるように、前記簡潔な分類器モデルを修正するステップが、
前記モバイルデバイスの前記機能における前記変化を検出するステップと、
前記検出された機能における変化が追加された機能を表すか削除された機能を表すかを判定するステップと、
前記検出された機能における変化が追加された機能を表すとの判定に応答して、前記検出された機能における変化によって影響されたモバイルデバイスの特徴を評価する任意のテスト条件を、前記簡潔な分類器モデルが含むかどうかを判定するステップと、
前記簡潔な分類器モデルが前記モバイルデバイスの特徴を評価する任意のテスト条件を含まないとの判定に応答して、前記完全な分類器モデルが前記モバイルデバイスの特徴を評価する任意のテスト条件を含むかどうかを判定するステップと、
前記完全な分類器モデルが前記モバイルデバイスの特徴を評価するテスト条件を含むとの判定に応答して、前記検出された変化によって影響された前記モバイルデバイスの特徴を評価する新しいテスト条件を含む新しい決定ノードを前記簡潔な分類器モデルに追加するステップと
を含む、請求項5に記載の方法。
前記モバイルデバイスを監視するステップ、および前記変化を検出したことに応答して、テスト条件の前記更新されたセットを含めるように、前記簡潔な分類器モデルを修正するステップが、
前記モバイルデバイス上の状態において前記変化があったかどうかを判定するステップと、
前記モバイルデバイス上の状態において前記変化があったとの判定に応答して、前記モバイルデバイスの以前の状態に関係し、前記モバイルデバイスの現在の状態に関係しない特徴を識別するステップと、
前記識別された特徴に関連するテスト条件を前記簡潔な分類器モデルから削除するステップと
を含む、請求項5に記載の方法。
【発明を実施するための形態】
【0033】
様々な態様が添付の図面を参照して詳細に記載される。可能な場合はどこでも、同じ参照番号は、図面全体を通して同じまたは同様の部分を指すために使用される。特定の例および実装形態に行われる参照は、説明を目的とし、本発明の範囲または特許請求の範囲を限定するものではない。
【0034】
現在、コンピューティングデバイス上で実行されるアプリケーションプログラムの挙動をモデル化するための様々なソリューションが存在し、これらのソリューションは、ソフトウェアアプリケーションが悪性か良性かを判定するために、機械学習技法とともに使用することができる。しかしながら、これらのソリューションは、挙動情報の非常に膨大なコーパスを評価する必要があり、挙動モデルを動的に生成せず、コンピューティングデバイスのデバイス固有もしくはデバイス状態固有の特徴を考慮せず、挙動モデルの中の特徴に知的に優先順位を付けず、個別のアプリケーションプログラムもしくはプロセスを評価することに限定され、かつ/またはモバイルデバイス内のコンピュータ集約的なプロセスの実行を必要とするので、モバイルデバイス上での使用に適していない。したがって、モバイルデバイス内のこれらの既存のソリューションを実施または実行することは、モバイルデバイスの応答性、性能、または電力消費特性に、かなり否定的および/またはユーザが知覚できる影響を有する可能性がある。
【0035】
たとえば、コンピューティングデバイスは、既存の機械学習ベースのソリューションを使用して、トレーニングデータの膨大なコーパスにアクセスし、それらを使用し、入力として特徴ベクトルを取るモデルを導出し、このモデルを使用して、コンピューティングデバイスのソフトウェアアプリケーションが悪性か良性かを判定するように構成される場合がある。しかしながら、そのようなソリューションは、簡潔な分類器モデルを迅速に生成するためにモバイルデバイスによって使用され得るフォーマットまたは情報構造(たとえば、有限状態機械など)で挙動情報の膨大なコーパスを記述する、完全な分類器モデル(すなわち、ロバストなデータモデルまたは挙動モデル)を生成することはない。少なくともこの理由のために、そのようなソリューションにより、モバイルデバイスが、デバイス固有またはデバイス状態固有の特徴を含むか、テストするか、または考慮する、簡潔な分類器モデルを生成することが可能にならない。加えて、このソリューションにより、モバイルデバイスが、モデルが使用される特定のモバイルデバイス内の特定の挙動を分類することに対する特徴の関連性に従って、特徴を知的に識別し優先順位を付ける簡潔な分類器モデルを生成することが可能にならない。上記その他の理由のために、そのようなソリューションは、モバイルデバイスの応答性、性能、または電力消費特性にかなり否定的および/またはユーザが知覚できる影響を有することなく、複雑なモバイルデバイスの挙動を迅速かつ効率的に識別、分析、または分類するために、モバイルデバイスのプロセッサによって使用することができない。
【0036】
既存のソリューションの上述された限界に加えて、多くの挙動モデル化ソリューションは、「多目的用途に適した」手法を実施してコンピューティングデバイスの挙動をモデル化しており、したがってモバイルデバイスにおいて使用するのに適していない。すなわち、これらのソリューションは、通常、一般的であるように、かつ多くのコンピューティングデバイスならびに/または多種多様なハードウェア構成およびソフトウェア構成で使用され得るように、挙動モデルを生成する。したがって、これらの一般的な挙動モデルは、しばしば、非常に多数の特徴を含み/テストし、特徴のうちの多くは、実際に使用される特定のコンピューティングデバイス内の挙動を識別、分析、または分類することに関係しない(かつ、したがって使用することができない)。加えて、これらのソリューションは、モデルが使用される特定のモバイルデバイス内の特定の挙動を分類することに対する関連性に基づいて特徴に相対的な優先順位を割り当てることはしない。したがって、これらのソリューションは、通常、多数の組織的ではない、不適切に優先順位を付けられた、または無関係な特徴を含む挙動モデルをコンピューティングデバイスが適用することを必要とする。そのようなモデルは、モバイルデバイスの経時的な劣化の原因または根源を識別するために有用ではない多数の特徴をモバイルデバイスのプロセッサに分析させる場合があるので、リソースが制限されたモバイルデバイスにおいて使用するのに適していない。したがって、これらの既存のソリューションは、複雑でありながらリソースが制約されたモバイルデバイスにおいて使用するのに適していない。
【0037】
現代のモバイルデバイスは、高度に構成可能かつ複雑なシステムである。したがって、特定のモバイルデバイスの挙動が良性か良性ではない(たとえば、悪性もしくは性能を劣化させる)かを判定するために最も重要である特徴は、各モバイルデバイスで異なる場合がある。さらに、特徴の異なる組合せは、特定の挙動が良性か良性ではないかをそのモバイルデバイスが迅速かつ効率的に判定するために、各モバイルデバイス内の監視および/または分析を必要とする場合がある。しかし、監視および分析を必要とする特徴の厳密な組合せ、ならびに各特徴または特徴の組合せの相対的な優先順位または重要性は、しばしば、挙動が監視または分析されるべき特定のモバイルデバイスから取得されたデバイス固有の情報を使用するときだけ決定することができる。上記その他の理由のために、それらが使用される特定のデバイス以外の任意のコンピューティングデバイス内で生成された挙動モデルは、そのデバイス内の挙動を分類することに対して最も重要である特徴の厳密な組合せを識別する情報を含むことができない。
【0038】
たとえば、第1のモバイルデバイスがその生体センサ(たとえば、指紋リーダ、音声認識システム、網膜スキャナなど)を使用して、金融取引を認証するように構成されている場合、生体センサのアクセスおよび使用に関する条件をテストする特徴は、金融ソフトウェアにアクセスするといった観察された挙動がそのモバイルデバイス内で悪性か良性かを判定することに関係する可能性がある。たとえば、第1のモバイルデバイス内の生体センサのアクセスおよび使用は、悪意のあるアプリケーションがユーザの認識または同意なしに金融取引を認証していることを示す場合がある。一方、これらのセンサのアクセスおよび使用に関する条件をテストする特徴は、金融ソフトウェアにアクセスするといった観察された挙動が、その生体センサを使用して金融取引を認証するように構成されていない第2のモバイルデバイス内で、悪性か良性かを判定することに関係する可能性はない。すなわち、第1のデバイスおよび第2のデバイスは、それらの生体センサを使用するためのそれらの構成を除き、すべての態様において同一(すなわち、同じタイプ、モデル、オペレーティングシステム、ソフトウェアなど)であり得るので、両方のデバイス用の生体センサのアクセスおよび使用に関する条件を評価する特徴を正確に識別する一般的な挙動モデルを生成することは困難なものとなり得る。数十万(または数百万)の同様の機器だが個別に構成可能なモバイルデバイスで、はるかに複雑な条件または特徴をテストする一般的なモデルを生成することは、なお一層困難なものとなり得る。
【0039】
概して、様々な態様は、互いに連携して動作し、モバイルデバイスの性能および/または電力利用のレベルをしばしば経時的に劣化させる条件および/またはモバイルデバイスの挙動を効率的に識別、分類、モデル化、防止、および/または修正するように、ネットワークサーバおよびモバイルデバイスを構成することによって、現在のソリューションのこれらの限界を克服する。ネットワークサーバは、中央データベース(たとえば、「クラウド」)から様々な条件、特徴、挙動、および是正処置に関する情報を受信し、この情報を使用して、モバイルデバイスによって1つまたは複数の簡潔な分類器モデルに迅速に変換され得るフォーマットまたは構造(たとえば、有限状態機械など)で挙動情報の膨大なコーパスを記述する、完全な分類器モデル(すなわち、データモデルまたは挙動モデル)を生成するように構成される場合がある。
【0040】
一態様では、完全な分類器モデルは、挙動情報の膨大なコーパスの有限状態機械の記述または表現であり得る。一態様では、有限状態機械は、各々が1つまたは複数の特徴をテストする複数のノード、増強決定木、または決定株としての表現に適した情報を含む場合がある。たとえば、有限状態機械は、モバイルデバイスの挙動が良性であるか、そのモバイルデバイスの経時的な性能における劣化に寄与するかを判定することに関する特徴およびデータポイントのすべてまたは多くを一括して識別、記述、テスト、または評価する、増強決定株のファミリとして表現され得る情報構造であり得る。次いで、ネットワークサーバは、完全な分類器モデル(すなわち、有限状態機械および/または増強決定株を含む情報構造など)を、モバイルデバイスに送ることができる。
【0041】
モバイルデバイスは、完全な分類器モデルを受信し使用して、デバイス固有および/またはデバイス状態固有の簡潔な分類器モデル、または様々なレベルの複雑さ(または「簡潔さ」)の簡潔な分類器モデルのファミリを生成するように構成される場合がある。これを遂行するために、モバイルデバイスは、ネットワークサーバ(本明細書では「完全な増強決定木分類器モデル」)から受信された完全な分類器モデルに含まれる増強決定木のロバストなファミリを剪定または選別して、数が減らされた増強決定木を含み、かつ/または限られた数のテスト条件もしくは特徴を評価する、簡潔な分類器モデルを生成することができる。次いで、モバイルデバイスは、このローカルに生成されたデバイス固有および/またはデバイス状態固有の分類器モデルを使用して、リアルタイムの挙動の監視動作および分析動作を実行し、不要なまたは性能を劣化させるモバイルデバイスの挙動の根源または原因を識別することができる。
【0042】
修正され、選別され、拡張され、または場合によっては簡潔な分類器モデルを生成するために使用され得る、有限状態機械、決定ノード、決定木、または他の同様の情報構造として、挙動情報の膨大なコーパスを記述または表現する完全な分類器モデルを生成することによって、様々な態様により、トレーニングデータにアクセスすることなく、またはネットワークサーバ、中央データベース、もしくはクラウドネットワーク/サーバとさらに通信することなく、モバイルデバイスが簡潔な分類器モデルを迅速かつ効率的に生成することが可能になる。これにより、モバイルデバイスのネットワークに対する依存性が著しく低減され、モバイルデバイスの性能および電力消費特性が向上する。
【0043】
さらに、モバイルデバイス内でローカルに簡潔な分類器モデルを生成して、デバイス固有またはデバイス状態固有の特徴を考慮することによって、様々な態様により、不要なまたは性能を劣化させるモバイルデバイスの挙動の根源または原因を識別するために最も重要である特徴または要因に対するその監視動作にモバイルデバイスが集中することが可能になる。これにより、モバイルデバイスの応答性、性能、または電力消費特性においてかなり否定的またはユーザが知覚できる変化を発生させることなく、モバイルデバイスが、不要なまたは性能を劣化させるモバイルデバイスの挙動を識別し、それに応答することが可能になる。
【0044】
いくつかの異なるセルラー通信およびモバイル通信のサービスおよび規格が利用可能であるか、または将来考えられ、それらのすべてが様々な態様を実装し、様々な態様から恩恵を受けることができる。そのようなサービスおよび規格には、たとえば、第3世代パートナーシッププロジェクト(3GPP)、ロングタームエボリューション(LTE)システム、第3世代ワイヤレスモバイル通信技術(3G)、第4世代ワイヤレスモバイル通信技術(4G)、モバイル通信用グローバルシステム(GSM(登録商標))、ユニバーサルモバイルテレコミュニケーションシステム(UMTS)、3GSM(登録商標)、汎用パケット無線サービス(GPRS)、符号分割多元接続(CDMA)システム(たとえば、cdmaOne、CDMA1020(商標))、GSM(登録商標)エボリューション用発展型データレート(EDGE:enhanced data rates for GSM evolution)、高度モバイルフォンシステム(AMPS:advanced mobile phone system)、デジタルAMPS(IS-136/TDMA)、エボリューションデータ最適化(EV-DO)、デジタル発展型コードレステレコミュニケーション(DECT:digital enhanced cordless telecommunication)、マイクロ波アクセス用ワールドワイドインターオペラビリティ(WiMAX:worldwide interoperability for microwave access)、ワイヤレスローカルエリアネットワーク(WLAN)、Wi-Fi保護アクセスIおよびII(WPA、WPA2:Wi-Fi Protected Access I & II)、ならびに統合デジタル発展型ネットワーク(iden:integrated digital enhanced network)が含まれる。これらの技術の各々は、たとえば、音声、データ、シグナリング、および/またはコンテンツメッセージの送信および受信を伴う。個々の電気通信の規格または技術に関連した用語および/または技術的詳細に対するいかなる参照も例示目的にすぎず、請求項の文言に具体的に記載されない限り、特許請求の範囲を特定の通信システムまたは通信技術に限定するものではないことを理解されたい。
【0045】
「モバイルコンピューティングデバイス」および「モバイルデバイス」という用語は、携帯電話、スマートフォン、パーソナルまたはモバイルのマルチメディアプレーヤ、携帯情報端末(PDA)、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、ウルトラブック、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応携帯電話、ワイヤレスゲームコントローラ、および、性能が重要であるメモリとプログラマブルプロセッサを含み、節電方法が有益であるようなバッテリ電源で動作する同様のパーソナル電子デバイスのうちの、任意の1つまたはすべてを指すように、本明細書では互換的に使用される。様々な態様は、制限されたリソースを有し、バッテリで動作する、スマートフォンなどのモバイルコンピューティングデバイスに対して特に有用であるが、これらの態様は、一般に、プロセッサを含み、アプリケーションプログラムを実行する任意の電子デバイスにおいて有用である。
【0046】
一般に、モバイルデバイスの性能および電力効率は、時間とともに劣化する。最近、アンチウイルス会社(たとえば、McAfee、Symantecなど)は、この劣化を遅くすることを狙いとするモバイルのアンチウイルス、ファイアウォール、および暗号化製品のマーケティングを開始した。しかしながら、これらのソリューションの多くは、モバイルデバイス上でコンピュータ集約的なスキャニングエンジンを周期的に実行することに依存しており、そのことが、モバイルデバイスの処理およびバッテリのリソースの多くを消費し、モバイルデバイスを遅くさせるか、もしくはより長期間の間使えなくさせ、かつ/または場合によってはユーザ体験を劣化させる場合がある。加えて、これらのソリューションは、通常、知られているウイルスおよびマルウェアの検出に限定され、(たとえば、性能劣化がウイルスもしくはマルウェアによって引き起こされないときに)経時的なモバイルデバイスの劣化に寄与するようにしばしば結びつく、複数の複雑な要因および/または相互作用に対処しない。上記その他の理由のために、既存のアンチウイルス、ファイアウォール、および暗号化製品は、経時的なモバイルデバイスの劣化に寄与する場合がある多くの要因を識別するため、モバイルデバイスの劣化を防止するため、または経年劣化したモバイルデバイスをその初期状態に効率的に回復させるための十分なソリューションを提供しない。
【0047】
モバイルデバイスは、比較的限定された処理、メモリ、およびエネルギーのリソースを有する、リソースが制約されたシステムである。現代のモバイルデバイスはまた、モバイルデバイスの性能および電力利用のレベルの経時的な劣化に寄与する場合がある、多種多様な要因を有する複雑なシステムである。性能劣化に寄与する場合がある要因の例には、設計が不十分なソフトウェアアプリケーション、マルウェア、ウイルス、断片化されたメモリ、およびバックグラウンドプロセスが含まれる。これらの要因の数、多様性、および複雑さに起因して、現代のモバイルデバイスの複雑でありながらリソースが制約されたシステムの性能および/または電力利用のレベルを劣化させる場合がある様々な構成要素、挙動、プロセス、動作、条件、状態、または特徴(またはそれらの組合せ)のすべてを評価することは、しばしば実現可能ではない。したがって、ユーザ、オペレーティングシステム、またはアプリケーションプログラム(たとえば、アンチウイルスソフトウェアなど)が、そのような問題の根源を正確かつ効率的に識別することは困難である。結果として、モバイルデバイスのユーザは、現在、モバイルデバイスの性能および電力利用のレベルにおける経時的な劣化を防止するため、または経年劣化したモバイルデバイスをその元の性能および電力利用のレベルに回復させるための改善措置をほとんど有していない。
【0048】
様々な態様はまた、モバイルデバイスの性能および/または電力利用のレベルをしばしば経時的に劣化させる、条件、要因、および/またはモバイルデバイスの挙動を知的かつ効率的に識別、防止、および/または修正するための、包括的な挙動監視および分析システムを含む。一態様では、モバイルデバイスの観測器プロセス、デーモン、モジュール、またはサブシステム(本明細書では総称的に「モジュール」と呼ぶ)が、モバイルデバイスシステムの様々なレベルでの様々なアプリケーションプログラミングインターフェース(API)、レジスタ、カウンタ、または他の構成要素(本明細書では総称的に「計装化構成要素」と呼ぶ)を計装するかまたは連携させることができる。観測器モジュールは、計装化構成要素から挙動情報を収集することによって、モバイルデバイスの挙動を絶え間なく(またはほぼ絶え間なく)監視することができる。モバイルデバイスはまた、分析器モジュールを含む場合があり、観測器モジュールは、収集された挙動情報を(たとえば、メモリ書込み動作、関数呼出しなどを介して)分析器モジュールに通信することができる。分析器モジュールは、挙動情報を受信し使用して挙動ベクトルを生成し、挙動ベクトルに基づいて空間および/または時間の相関関係を生成し、この情報を使用して、特定のモバイルデバイスの挙動、条件、サブシステム、ソフトウェアアプリケーション、またはプロセスが、良性か、疑わしいか、または良性ではない(すなわち、悪性もしくは性能を劣化させる)かを判定することができる。次いで、モバイルデバイスは、この分析の結果を使用して、識別された問題を治癒、回復、隔離、または場合によっては修復もしくはそれに応答することができる。
【0049】
分析器モジュールはまた、リアルタイムの挙動分析動作を実行するように構成される場合があり、リアルタイムの挙動分析動作は、データ、アルゴリズム、分類器またはモデル(本明細書では総称的に「分類器モデル」と呼ぶ)を実施、実行、および/または収集された挙動情報に適用して、モバイルデバイスの挙動が良性か良性ではない(たとえば、悪性もしくは性能を劣化させる)かを判定することを含む場合がある。各分類器モデルは、モバイルデバイスの挙動の特定の特徴または態様を評価するために、モバイルデバイスのプロセッサによって使用され得る、データおよび/または情報構造(たとえば、特徴ベクトル、挙動ベクトル、構成要素リストなど)を含む挙動モデルであり得る。各分類器モデルはまた、モバイルデバイス内のいくつかの特徴、要因、データポイント、項目、API、状態、条件、挙動、アプリケーション、プロセス、動作、構成要素など(本明細書では総称して「特徴」)を監視するための決定基準を含む場合がある。分類器モデルは、モバイルデバイスにプレインストールされるか、ネットワークサーバからダウンロードもしくは受信されるか、モバイルデバイス内で生成されるか、またはそれらの任意の組合せであり得る。分類器モデルは、クラウドソーシングソリューション、挙動モデル化技法、機械学習アルゴリズムなどを使用することによって、生成される場合がある。
【0050】
各分類器モデルは、完全な分類器モデルまたは簡潔な分類器モデルとして分類することができる。完全な分類器モデルは、数千の特徴および数十億の項目を含む場合がある、大規模トレーニングデータセットの関数として生成された、ロバストなデータモデルであり得る。簡潔な分類器モデルは、特定のモバイルデバイスの挙動が良性か良性ではない(たとえば、悪性もしくは性能を劣化させる)かを判定することに最も関係する特徴/項目のみを含む/テストする、縮小されたデータセットから生成された、より焦点が絞られたデータモデルであり得る。
【0051】
上述されたように、モバイルデバイスの劣化の原因または根源を適切に識別するために、分析を必要とする数千の特徴/要因および数十億のデータポイントが存在する場合がある。したがって、モバイルデバイスのすべてのメーカーおよびモデルをサポートし、モバイルデバイスごとに、特定のモバイルデバイスの挙動が良性か良性ではない(たとえば、悪性もしくは性能を劣化させる)かに関する正確な決定を行うために、分類器モデルは、非常に多数の特徴で訓練することができる。しかし、モバイルデバイスはリソースが制約されたシステムなので、モバイルデバイスがこれらすべての特徴を評価することは、しばしば実現可能ではない。さらに、モバイルデバイスは、多くの様々な構成および種類で提供されるが、完全な分類器モデルで対処され得るすべての特徴または機能を含むモバイルデバイスは(もしあっても)少ない。様々な態様は、分析器モジュールがモバイルデバイスに最も関係する特徴の的を絞ったサブセットを評価するように適用することができる簡潔な分類器モデルを生成し、場合によってはモバイルデバイスの挙動を分類するときに完全な分類器モデルが使用された場合に実行されたはずのテスト条件および分析の数を制限する。
【0052】
様々な態様は、互いに連携して動作して、モバイルデバイスの挙動が良性か良性ではない(たとえば、悪性もしくは性能を劣化させる)かを判定することに最も関係する、特徴、要因、およびデータポイントを知的かつ効率的に識別するように構成された、モバイルデバイスおよびネットワークサーバを含む。モバイルデバイスにおいて、デバイス固有の特徴および/またはデバイス状態固有の特徴を考慮する簡潔な分類器モデルをローカルに生成することによって、様々な態様により、モバイルデバイスのプロセッサが、モバイルデバイスの応答性、性能、または電力消費特性において著しく否定的かまたはユーザが感知できる変化を引き起こすことなく、(たとえば、観測器モジュールおよび分析器モジュールを介して)複雑なモバイルデバイスの挙動を迅速かつ効率的に識別、分析、または分類するために、焦点を絞った分類器モデルを適用することが可能になる。
【0053】
完全な分類器モデルは、クラウドサービス/ネットワークから、モバイルデバイスの挙動、ならびにそれらの挙動の間の、またはそれらの挙動を特徴付ける状態、特徴、および条件に関する大量の情報を受信するように構成された、ネットワークサーバによって生成される場合がある。この情報は、モバイルデバイスの挙動ベクトルの非常に大規模なクラウドコーパスの形態であり得る。ネットワークサーバは、この情報を使用して、挙動ベクトルの非常に大規模なクラウドコーパスを正確に記述する、完全な分類器モデル(すなわち、ロバストなデータ/挙動モデル)を生成することができる。ネットワークサーバは、いくつかの異なるメーカー、モデル、および構成のモバイルデバイスのうちの任意のモバイルデバイスの経時的な劣化に寄与する可能性がある、特徴、データポイント、および/または要因のうちのすべてまたは大部分を含めるように、完全な分類器モデルを生成することができる。
【0054】
一態様では、ネットワークサーバは、モバイルデバイスのプロセッサ内の使用または実行に適した簡潔な分類器モデルに、迅速かつ効率的に選別され、修正され、または変換され得る、増強決定木/株または増強決定木/株のファミリなどの、有限状態機械の表現または表示を含めるように、完全な分類器モデルを生成することができる。有限状態機械の表現または表示は、テスト条件、状態情報、状態遷移規則、および他の同様の情報を含む情報構造であり得る。一態様では、有限状態機械の表現または表示は、各々がモバイルデバイスの挙動の特徴、条件、または態様を評価またはテストする、増強決定株の大きいまたはロバストなファミリを含む情報構造であり得る。
【0055】
モバイルデバイスは、ネットワークサーバから完全な分類器モデルを受信し、受信された完全な分類器モデルを使用して、モバイルデバイスの特徴および機能に特有の簡潔な分類器モデル(すなわち、データ/挙動モデル)を生成するように構成される場合がある。
【0056】
様々な態様では、モバイルデバイスは、挙動のモデル化および機械学習技法を使用して、簡潔な分類器モデルを知的かつ動的に生成することができ、その結果、簡潔な分類器モデルは、モバイルデバイスのデバイス固有および/もしくはデバイス状態固有の特徴(たとえば、モバイルデバイスの構成、機能、接続される/含まれるハードウェアなどに関する特徴)を考慮し、モバイルデバイスの経時的な劣化の原因もしくは根源を識別するために重要であると判断された特徴の焦点および的を絞ったサブセットを含むか、テストするか、もしくは評価し、かつ/またはそれらが使用/評価される特定のモバイルデバイス内の挙動の分類に成功するためのそれらの相対的な重要性を識別する確率値もしくは信頼値に基づいて、特徴の的を絞ったサブセットの優先順位を付ける。
【0057】
モデルが使用されるモバイルデバイス内で分類器モデルを生成することによって、様々な態様により、特定のモバイルデバイス上の挙動が良性か、そのデバイスの性能における劣化に寄与するかを判定する際に最も重要である特定の特徴を、モバイルデバイスが正確に識別することが可能になる。これらの態様により、その特定のモバイルデバイス内の挙動を分類することに対する簡潔な分類器モデルの相対的な重要性に従って、簡潔な分類器モデルの中の特徴にモバイルデバイスが正確に優先順位を付けることも可能になる。
【0058】
デバイス固有またはデバイス状態固有の情報を使用すると、モバイルデバイスが、簡潔な分類器モデルに含まれるべき特徴を迅速に識別し、それらに優先順位を付けること、ならびに簡潔な分類器モデルから除外されるべき特徴を識別することが可能になる。たとえば、モバイルデバイスは、その特定の特徴セットに基づいてモバイルデバイス内に存在しない、または存在することができない、したがってモバイルデバイスに関係しない条件をテストする、完全なモデルに含まれる特徴/ノード/木/株を識別し、簡潔な分類器モデルから除外するように構成される場合がある。たとえば、生体センサを含まないモバイルデバイスは、生体センサの使用に関する条件をテストまたは評価するすべての特徴/ノード/株を、簡潔な分類器モデルから除外することができる。
【0059】
さらに、簡潔な分類器モデルは、評価(すなわち、完全な分類器モデルと比較)されなければならない状態、特徴、挙動、または条件の縮小されたサブセットを含むので、観測器モジュールおよび/または分析器モジュールは、モバイルデバイスの処理、メモリ、またはエネルギーのリソースの量を過剰に消費することなく、簡潔な分類器モデルを使用して、モバイルデバイスの挙動が良性か良性ではない(たとえば、悪性もしくは性能を劣化させる)かを迅速かつ正確に判定することができる。
【0060】
一態様では、モバイルデバイスは、完全な分類器モデルを使用して、様々なレベルの複雑さ(または「簡潔さ」)の簡潔な分類器モデルのファミリを生成するように構成される場合がある。簡潔な分類器モデルの最も簡潔なファミリ(すなわち、最も少ない数のテスト条件に基づく簡潔な分類器モデル)は、モデルが良性または悪性(したがってモデルによって疑わしいと分類される)のいずれかとして分類することができない挙動に遭遇するまで、定期的に適用することができ、その時点で、よりロバストな(すなわち、より簡潔ではない)簡潔な分類器モデルは、良性または悪性のいずれかとして挙動を分類する試みに適用することができる。生成された簡潔な分類器モデルのファミリ内の一層ロバストな簡潔な分類器モデルの適用は、挙動の最終的な分類が達成されるまで、適用することができる。このようにして、観測器モジュールおよび/または分析器モジュールは、ロバストな分類器モデルが挙動を最終的に分類する必要がある状況に、最も完全だがリソース集約型の簡潔な分類器モデルの使用を制限することによって、効率と正確さとの間のバランスを取ることができる。
【0061】
様々な態様では、モバイルデバイスは、有限状態機械の表示/表現を増強決定株に変換し、モバイルデバイス固有の状態、特徴、挙動、条件、または構成に基づいて、完全な分類器モデルに含まれる増強決定株の1つまたは複数のサブセットを含めるように、増強決定株の完全なセットを剪定または選別し、増強決定株の1つまたは複数のサブセットを使用して、モバイルデバイスの挙動を知的に監視、分析、および/または分類することによって、1つまたは複数の簡潔な分類器モデルを生成するように構成される場合がある。
【0062】
増強決定株を使用すると、クラウドまたはネットワークと通信してデータを再訓練することなく、観測器モジュールおよび/または分析器モジュールが簡潔なデータモデルを生成し適用することが可能になり、それにより、ネットワークサーバおよびクラウドに対するモバイルデバイスの依存性が著しく低減される。これにより、モバイルデバイスとネットワークサーバとの間のフィードバック通信が解消され、モバイルデバイスの性能および電力消費特性がさらに向上する。
【0063】
増強決定株は、正確に1つのノード(およびしたがって1つのテスト問題またはテスト条件)、ならびに重み値を有する1つのレベルの決定木であり、したがってデータ/挙動の二項分類において使用するのに好適である。すなわち、増強決定株に挙動ベクトルを適用すると、二項回答(たとえば、はいまたはいいえ)がもたらされる。たとえば、増強決定株によってテストされる問題/条件が「ショートメッセージサービス(SMS)送信の頻度が毎分xより小さいか」である場合、増強決定株に「3」の値を適用すると、(「3未満」のSMS送信の場合)「はい」の回答または(「3以上」のSMS送信の場合)「いいえ」の回答のいずれかがもたらされる。
【0064】
増強決定株は、非常に簡単かつ根本的である(したがって著しい処理リソースを必要としない)ので効率的である。増強決定株はまた非常に並列化可能であり、したがって、(たとえば、モバイルデバイス内の多重コアまたは多重プロセッサにより)多くの株を並行して/同時に適用またはテストすることができる。
【0065】
下記に記載されるように、ネットワークサーバ(または別のコンピューティングデバイス)は、増強決定木モデルなどの、モバイルデバイスの挙動の別のより複雑なモデルから、増強決定株タイプの完全な分類器モデルを生成することができる。そのような複雑なモデルは、精巧な分類システム内でモバイルデバイスの挙動を特徴付ける、デバイスの状態、動作、および監視されたノードの間の相互作用の完全な(またはほぼ完全な)セットを相関させることができる。上述されたように、サーバまたは他のコンピューティングデバイスは、機械学習技法を適用して、多数のモバイルデバイスから収集されたモバイルデバイスの挙動ベクトルのクラウドコーパスを記述するモデルを生成することによって、完全で複雑な分類器モデルを生成することができる。一例として、増強決定木分類器モデルは、テスト可能な条件の決定ノードを通る数百の経路を辿って、現在のモバイルデバイスの挙動が悪性か良性かの判定に到達することができる。そのような複雑なモデルは、いくつかの既知の学習および相関モデル化技法を使用して、サーバにおいて生成することができる。そのような複雑なモデルは、何百個ものモバイルデバイスからのデータから学習することによって、悪意のある挙動を正確に認識する際に極めて有効になることができるが、特定のモバイルデバイスの構成および挙動へのそれらの適用は、特にモデルが複雑なマルチレベルの決定木を含む場合、かなりの処理を必要とする場合がある。モバイルデバイスは通常リソース制限されているので、そのようなモデルを使用すると、デバイスの性能およびバッテリ寿命が影響を受ける場合がある。
【0066】
モバイルデバイスによる使用により貢献するロバストな分類器モデルをレンダリングするために、サーバ(たとえば、クラウドサーバもしくはネットワークサーバ)または別のコンピューティングデバイス(たとえば、モバイルデバイス、もしくはモバイルデバイスに結合するコンピュータ)は、複雑な分類器モデルを大きい増強決定株のモデルに変換することができる。決定株に含まれるより簡単な判定、および並行プロセス内にそのような分類器モデルを適用する能力により、モバイルデバイスが、ネットワークサーバによって実行された分析からより良い恩恵を受けることが可能になる。また、下記に記載されるように、増強決定株の完全な分類器モデルは、デバイス固有またはデバイス状態固有の情報に基づいて、特徴を含める(または除外する)ように簡潔な分類器モデルを生成するために、モバイルデバイスによって使用することができる。このことは、下記に記載される態様の方法を実施するようにモバイルデバイスのプロセッサを構成することによって、達成することができる。
【0067】
さらなる態様では、モバイルデバイスは、モバイルデバイス上の悪意のある挙動を検出するために使用される簡潔な分類器モデルまたは簡潔な分類器モデルのセットに、モバイルデバイスまたはモバイルデバイスの現在の状態に特有の特徴を組み込むように構成された、様々な構成要素を含む場合がある。
【0068】
一態様では、モバイルデバイスは、完全な分類器モデルに含まれる分類器基準のサブセット、ならびにモバイルデバイスの構成、機能、および接続される/含まれるハードウェアに関する特徴に対応する分類器基準のみを含めるように、簡潔な分類器モデルを生成するように構成される場合がある。モバイルデバイスは、この簡潔な分類器モデルを使用して、デバイスに存在または関係する特徴および機能のみを監視することができる。次いで、モバイルデバイスは、モバイルデバイスの現在の状態および構成に基づいて、様々な特徴および対応する分類器基準を含めるか、または削除するように、簡潔な分類器モデルを周期的に修正または再生成することができる。
【0069】
一例として、かつ一態様では、モバイルデバイス上で動作する挙動分析器モジュールは、挙動モデルの完全な特徴セットに関連する決定株を有する大きい増強決定株の分類器モデルを受信することができ、挙動分析器モジュールは、モバイルデバイスの現在の構成、機能、動作状態、および/または接続される/含まれるハードウェアに関する特徴のみを大きい分類器モデルから選択し、選択された特徴に対応する増強決定株のサブセットを簡潔な分類器モデルに含めることによって、大きい分類器モデルから1つまたは複数の簡潔な分類器モデルを導出することができる。この態様では、モバイルデバイスに関する特徴に対応する分類器基準は、選択された特徴のうちの少なくとも1つをテストする大きい分類器モデルに含まれる増強決定株であり得る。一態様では、挙動分析器モジュールは、次いで、モバイルデバイスの現在の状態および構成に基づいて様々な特徴を含めるか、または削除するように、増強決定株の簡潔な分類器モデルを周期的に修正または再生成することができ、その結果、簡潔な分類器モデルは、デバイス固有の特徴の増強決定株を含め続ける。
【0070】
一態様では、モバイルコンピューティングデバイス上で動作するデバイス状態監視エンジンは、モバイルデバイスの構成および/または状態における変化について、モバイルデバイスを絶え間なく監視することができる。さらなる態様では、デバイス状態監視エンジンは、挙動分析器モジュール(または分類器モジュール)の性能または有効性に影響する可能性がある、構成および/または状態の変化を探して、悪意のある挙動を検出することができる。たとえば、デバイス状態監視エンジンは、「低バッテリ状態」が検出されるまでモバイルデバイスの挙動を監視することができ、その時点で、挙動分析器モジュールは、エネルギーを節約するために、悪意のある挙動についてのモバイルデバイス上のより少ない特徴を分析するように、簡潔な分類器モデルを変更することができる。
【0071】
別の態様では、デバイス状態監視エンジンが状態変化を検出したとき、デバイス状態監視エンジンはデバイス状態固有特徴生成器に通知することができ、デバイス状態固有特徴生成器は、モバイルデバイスの状態変化に基づいて、いくつかの特徴を追加または削除するように、挙動分析器モジュールにシグナリングすることができる。
【0072】
別の態様では、モバイルデバイスは、モバイルデバイス自体に関する特徴を判断するように構成された、デバイス固有特徴生成器を含む場合がある。たとえば、デバイス固有特徴生成器は、モバイルデバイスが近距離場通信、Wi-Fi、およびBluetooth(登録商標)の能力を含むと判断することができる。さらなる態様では、デバイス固有特徴生成器は、モバイルデバイス自体に関する特徴に基づいて、簡潔な分類器モデルの中の特徴を含めるか、または削除するように、挙動分析器にシグナリングすることができる。このように、モバイルデバイス上の様々な構成要素は、簡潔な分類器モデルを修正して、モバイルデバイスの構成および/またはモバイルデバイスの現在の状態に特有の特徴を反映することができ、これにより、モバイルデバイスの現在の状態に基づいて、監視される特徴に優先順位を付けることによって、様々な構成要素が悪意のある挙動をより良く検出するか、またはモバイルデバイスの性能全体を改善することが可能になる。
【0073】
上記のように、挙動を監視する際に使用するための簡潔な分類器モデルを生成するために、モバイルデバイスによって処理され得る、1つのタイプの大きい分類器モデルの一例は、増強決定株の分類器モデルである。以下の発明を実施するための形態では、増強決定株の分類器モデルに参照が行われる場合があるが、そのような参照は、例示目的のためであり、請求項が増強決定株の分類器モデルを明確に列挙しない限り、特許請求の範囲を限定するものではない。
【0074】
様々な態様は、
図1に示された例示的な通信システム100などの様々な通信システム内に実装される場合がある。典型的なセル電話ネットワーク104は、ネットワーク運用センタ108に結合された複数のセル基地局106を含み、ネットワーク運用センタ108は、電話陸上通信線(たとえば、図示されていないPOTSネットワーク)およびインターネット110などを介して、モバイルデバイス102(たとえば、携帯電話、ラップトップ、タブレットなど)と他のネットワーク宛先との間の音声通話およびデータを接続するように動作する。モバイルデバイス102と電話ネットワーク104との間の通信は、4G、3G、CDMA、TDMA、LTE、および/または他の携帯電話通信技術などの双方向ワイヤレス通信リンク112を介して遂行することができる。電話ネットワーク104は、インターネット110への接続を提供するネットワーク運用センタ108に結合されるか、またはネットワーク運用センタ108内の、1つまたは複数のサーバ114を含む場合もある。
【0075】
通信システム100はさらに、電話ネットワーク104およびインターネット110に接続されたネットワークサーバ116を含む場合がある。ネットワークサーバ116と電話ネットワーク104との間の接続は、インターネット110を介するか、または(破線の矢印で示されたように)プライベートネットワークを介する場合がある。ネットワークサーバ116は、クラウドサービスプロバイダネットワーク118のネットワークインフラストラクチャ内のサーバとして実装される場合もある。ネットワークサーバ116とモバイルデバイス102との間の通信は、電話ネットワーク104、インターネット110、プライベートネットワーク(図示せず)、またはそれらの任意の組合せを介して実現することができる。
【0076】
ネットワークサーバ116は、モバイルデバイス102に完全な分類器モデルを送ることができ、モバイルデバイス102は、完全な分類器モデルを受信し使用して、疑わしいかまたは性能を劣化させるモバイルデバイスの挙動、ソフトウェアアプリケーション、プロセスなどを識別することができる。ネットワークサーバ116はまた、モバイルデバイスの分類モデルを交換、更新、作成、および/または維持するために、分類情報およびモデル化情報をモバイルデバイス102に送ることができる。モバイルデバイス102は、完全な分類器モデルを受信し使用して、疑わしいかまたは性能を劣化させるモバイルデバイスの挙動、ソフトウェアアプリケーション、プロセスなどを識別する際の使用に適した簡潔な分類器モデルを生成することができる。ネットワークサーバ116はまた、モバイルデバイスのデータ/挙動モデルを交換、更新、作成、および/または維持するために、分類情報およびモデル化情報をモバイルデバイス102に送ることができる。
【0077】
一態様では、モバイルデバイス102は、収集された挙動、状態、分類、モデル化、成功率、および/または統計情報を使用して、モバイルデバイス102内の特徴のさらに的を絞った、かつ/または縮小されたサブセットを含む簡潔な分類器モデル(またはデータ/挙動モデル)を生成、更新、または洗練するように構成される場合がある。これにより、モバイルデバイスとネットワークサーバ116との間のフィードバック通信の量が削減され、モバイルデバイス102の性能および電力消費特性が向上する。
【0078】
図2は、特定のモバイルデバイスの挙動、ソフトウェアアプリケーション、またはプロセスが、悪意がある/性能を劣化させるか、疑わしいか、または良性であるかを判定するように構成された、一態様のモバイルデバイス102における例示的な論理構成要素および情報フローを示す。
図2に示された例では、モバイルデバイス102は、挙動観測器モジュール202と、挙動分析器モジュール204と、分類器モジュール208と、作動器モジュール210とを含む。一態様では、分類器モジュール208は、挙動分析器モジュール204の一部として実装される場合がある。一態様では、挙動分析器モジュール204は、1つまたは複数の分類器モジュール208を生成するように構成される場合があり、1つまたは複数の分類器モジュール208の各々は、1つまたは複数の分類器を含む場合がある。
【0079】
モジュール202〜210の各々は、ソフトウェア、ハードウェア、またはそれらの任意の組合せに実装される場合がある。様々な態様では、モジュール202〜210は、オペレーティングシステムの部分内(たとえば、カーネル内、カーネル空間内、ユーザ空間内など)、個別のプログラムもしくはアプリケーション内、専用のハードウェアバッファもしくはプロセッサ内、またはそれらの任意の組合せに実装される場合がある。一態様では、モジュール202〜210のうちの1つまたは複数は、モバイルデバイス102の1つまたは複数のプロセッサ上で実行されるソフトウェア命令としてされる場合がある。
【0080】
挙動観測器モジュール202は、モバイルデバイスの様々なレベル/モジュールでアプリケーションプログラミングインターフェース(API)を計装するかまたは連携させ、計装されたAPIを介して様々なレベル/モジュールでモバイルデバイスの動作およびイベント(たとえば、システムイベント、状態変化など)を監視/観測し、観測された動作/イベントに関する情報を収集し、収集された情報を知的にフィルタ処理し、フィルタ処理された情報に基づいて1つまたは複数の観測値を生成し、生成された観測値をメモリ内(たとえば、ログファイルなどの中)に記憶し、かつ/または生成された観測値を挙動分析器モジュール204に(たとえば、メモリ書込み、関数呼出しなどを介して)送ることができる。
【0081】
挙動観測器モジュール202は、アプリケーションフレームワークまたはランタイムライブラリ、システム呼出しAPI、ファイルシステム、およびネットワーキングサブシステムの動作、(センサデバイスを含む)デバイスの状態変化、ならびに他の同様のイベントにおけるライブラリアプリケーションプログラミングインターフェース(API)呼出しに関する情報を収集することによって、モバイルデバイスの動作およびイベントを監視/観測することができる。挙動観測器モジュール202はまた、ファイルシステムの活動を監視することができ、ファイルシステムの活動には、ファイル名、ファイルアクセスのカテゴリ(パーソナル情報または通常のデータファイル)を探索すること、ファイル(たとえば、type exe、zipなど)を作成または削除すること、ファイル読出し/書込み/シーク動作、ファイルパーミッションを変更することなどが含まれ得る。
【0082】
挙動観測器モジュール202はまた、データネットワーク活動を監視することができ、データネットワーク活動には、接続のタイプ、プロトコル、ポート番号、デバイスが接続されるサーバ/クライアント、接続数、通信の容量または周波数などが含まれ得る。挙動観測器モジュール202は、電話ネットワーク活動を監視することができ、電話ネットワーク活動には、送り出された、受信された、または妨害された通話またはメッセージ(たとえば、SMSなど)のタイプおよび数(たとえば、かけられた割増し料金の通話の数)を監視することが含まれ得る。
【0083】
挙動観測器モジュール202はまた、システムリソースの使用を監視することができ、システムリソースの使用には、フォークの数、メモリアクセス動作、開かれたファイルの数などを監視することが含まれ得る。挙動観測器モジュール202は、モバイルデバイスの状態を監視することができ、モバイルデバイスの状態には、ディスプレイがオンかオフか、デバイスがロックされているかアンロックされているか、バッテリの残量、カメラの状態などの様々な要因を監視することが含まれ得る。挙動観測器モジュール202はまた、たとえば、重要なサービス(ブラウザ、コントラクトプロバイダなど)に対する意図、プロセス間通信(IPC)の程度、ポップアップウィンドウなどを監視することによって、プロセス間通信(IPC)を監視することができる。
【0084】
挙動観測器モジュール202はまた、1つまたは複数のハードウェア構成要素のドライバの統計および/または状況を監視/観測することができ、ハードウェア構成要素には、カメラ、センサ、電子ディスプレイ、WiFi通信構成要素、データコントローラ、メモリコントローラ、システムコントローラ、アクセスポート、タイマ、周辺デバイス、ワイヤレス通信構成要素、外部メモリチップ、電圧レギュレータ、発振器、フェーズロックループ、周辺ブリッジ、ならびにモバイルコンピューティングデバイス上で動作するプロセッサおよびクライアントをサポートするために使用される他の同様の構成要素が含まれ得る。
【0085】
挙動観測器モジュール202はまた、モバイルコンピューティングデバイスおよび/またはモバイルデバイスサブシステムの状態または状況を示す、1つまたは複数のハードウェアカウンタを監視/観測することができる。ハードウェアカウンタは、モバイルコンピューティングデバイス内で発生するハードウェア関連の活動またはイベントのカウントまたは状態を記憶するように構成された、プロセッサ/コアの専用レジスタを含む場合がある。
【0086】
挙動観測器モジュール202はまた、ソフトウェアアプリケーションの活動または動作、アプリケーションダウンロードサーバ(たとえば、Apple(登録商標)のApp Storeサーバ)からのソフトウェアダウンロード、ソフトウェアアプリケーションによって使用されるモバイルデバイス情報、呼情報、テキストメッセージ情報(たとえば、SendSMS、BlockSMS、ReadSMSなど)、メディアメッセージ情報(たとえば、ReceiveMMS)、ユーザアカウント情報、位置情報、カメラ情報、加速度計情報、ブラウザ情報、ブラウザベース通信のコンテンツ、音声ベース通信のコンテンツ、短距離無線通信(たとえば、Bluetooth(登録商標)、WiFiなど)、テキストベース通信のコンテンツ、記録されたオーディオファイルのコンテンツ、電話帳または連絡先情報、連絡先リストなどを監視/観測することができる。
【0087】
挙動観測器モジュール202は、ボイスメールを含む通信(VoiceMailComm)、デバイス識別子を含む通信(DeviceIDComm)、ユーザアカウント情報を含む通信(UserAccountComm)、カレンダ情報を含む通信(CalendarComm)、位置情報を含む通信(LocationComm)、記録されたオーディオ情報を含む通信(RecordAudioComm)、加速度計情報を含む通信(AccelerometerComm)などを含む、モバイルデバイスの送信または通信を監視/観測することができる。
【0088】
挙動観測器モジュール202は、コンパス情報、モバイルデバイス設定、バッテリ寿命、ジャイロスコープ情報、圧力センサ、磁気センサ、スクリーン活動などの使用、およびそれらに対する更新/変更を監視/観測することができる。挙動観測器モジュール202は、ソフトウェアアプリケーション(AppNotifications)、アプリケーション更新などとの間で通信される通知を監視/観測することができる。挙動観測器モジュール202は、第2のソフトウェアアプリケーションのダウンロードおよび/またはインストールを要求している第1のソフトウェアアプリケーションに関する条件またはイベントを監視/観測することができる。挙動観測器モジュール202は、パスワードのエントリなどのユーザ認証に関する条件またはイベントを監視/観測することができる。
【0089】
挙動観測器モジュール202はまた、アプリケーションレベル、無線レベル、およびセンサレベルを含むモバイルデバイスの複数のレベルで、条件またはイベントを監視/観測することができる。アプリケーションレベルの観測には、顔認識ソフトウェアを介してユーザを観測すること、ソーシャルストリームを観測すること、ユーザによって入力された注釈を観測すること、PassBook/Google Wallet/Paypalの使用に関するイベントを観測することなどが含まれ得る。アプリケーションレベルの観測には、仮想プライベートネットワーク(VPN)の使用に関するイベント、および同期、音声探索、音声制御(たとえば、1語を発することによる電話のロック/アンロック)、言語翻訳機、計算用のデータのオフロード、ビデオストリーミング、ユーザ活動のないカメラの使用、ユーザ活動のないマイクロフォンの使用などに関するイベントを観測することも含まれ得る。
【0090】
無線レベルの観測には、無線通信リンクを確立するか、または情報を送信する前のモバイルデバイスとのユーザ対話、二重/多重の加入者識別モジュール(SIM)カード、インターネットラジオ、モバイル電話テザリング、計算用のデータのオフロード、デバイス状態通信、ゲームコントローラまたはホームコントローラとしての使用、車両通信、モバイルデバイス同期などのうちのいずれかまたは複数の存在、実在、または量を判断することが含まれ得る。無線レベルの観測には、位置決め、ピアツーピア(p2p)通信、同期、車両間通信、および/または機械間(m2m)通信のための無線(WiFi、WiMax、Bluetooth(登録商標)など)の使用を監視することも含まれ得る。無線レベルの観測には、ネットワークトラフィックの使用、統計、またはプロファイルを監視することがさらに含まれ得る。
【0091】
センサレベルの観測には、モバイルデバイスの使用環境および/または外部環境を判断するために、磁気センサまたは他のセンサを監視することが含まれ得る。たとえば、モバイルデバイスのプロセッサは、電話が(たとえば、ホルスタ内の磁石を検知するように構成された磁気センサを介して)ホルスタ内にあるか、または(たとえば、カメラもしくは光センサによって検出される光の量を介して)ユーザのポケット内にあるかを判定するように構成される場合がある。たとえば、モバイルデバイスがホルスタに入れられている間に発生する、ユーザによるアクティブな使用(たとえば、写真またはビデオを撮ること、メッセージを送ること、音声通話を行うこと、音を録音することなど)に関する活動および機能は、(たとえば、ユーザを追跡またはスパイするために)デバイス上で実行されている不正なプロセスのサインである可能性があるので、モバイルデバイスがホルスタ内にあることを検出することは、疑わしい挙動を認識することに関係する場合がある。
【0092】
使用環境または外部環境に関するセンサレベルの観測の他の例には、近距離場通信(NFC)を検出すること、クレジットカードスキャナ、バーコードスキャナ、またはモバイルタグリーダから情報を収集すること、ユニバーサルシリアルバス(USB)電力充電源の存在を検出すること、キーボードまたは補助デバイスがモバイルデバイスに結合されていることを検出すること、モバイルデバイスが(たとえば、USBなどを介して)コンピューティングデバイスに結合されていることを検出すること、LED、フラッシュ、フラッシュライト、または光源が修正または(たとえば、緊急シグナリングアプリケーションなどを、悪意をもって無効にして)無効にされているかどうかを判定すること、スピーカまたはマイクロフォンがスイッチオンまたは電源オンにされていることを検出すること、充電イベントまたは電力イベントを検出すること、モバイルデバイスがゲームコントローラとして使用されていることを検出することなどが含まれ得る。センサレベルの観測には、医療もしくはヘルスケアのセンサから、またはユーザの体をスキャンすることから情報を収集すること、USB/オーディオジャックに差し込まれた外部センサから情報を収集すること、(たとえば、振動インターフェースなどを介して)触知センサまたは触覚センサから情報を収集すること、モバイルデバイスの熱状態に関する情報を収集することなども含まれ得る。
【0093】
一態様では、監視される要因の数を管理可能レベルまで削減するために、挙動観測器モジュール202は、モバイルデバイスの劣化に寄与する可能性があるすべての要因の小さいサブセットである、挙動または要因の初期セットを監視/観測することによって、粗い観測を実行することができる。一態様では、挙動観測器モジュール202は、ネットワークサーバ116および/またはクラウドサービスもしくはネットワーク118内の構成要素から、挙動および/または要因の初期セットを受信することができる。一態様では、挙動/要因の初期セットは、ネットワークサーバ116またはクラウドサービス/ネットワーク118から受信されたデータ/挙動モデル内で指定される場合がある。一態様では、挙動/要因の初期セットは、縮小された特徴モデル(RFM)内で指定される場合がある。
【0094】
挙動分析器モジュール204および/または分類器モジュール208は、挙動観測器モジュール202から観測値を受信し、受信された情報(すなわち、観測値)を外部モジュールから受信されたコンテキスト情報と比較し、経時的なデバイスの劣化に寄与する(もしくは寄与する可能性がある)か、または場合によってはデバイスに問題を引き起こす可能性がある、受信された観測値に関連するサブシステム、プロセス、および/またはアプリケーションを識別することができる。
【0095】
一態様では、挙動分析器モジュール204および/または分類器モジュール208は、経時的なデバイスの劣化に寄与する(もしくは寄与する可能性がある)か、または場合によってはデバイスに問題を引き起こす可能性がある、挙動、プロセス、またはプログラムを識別するために、情報の限定されたセット(すなわち、粗い観測値)を利用するための知性を含む場合がある。たとえば、挙動分析器モジュール204は、様々なモジュール(たとえば、挙動観測器モジュール202、外部モジュールなど)から収集された(たとえば、観測値の形態の)情報を分析し、モバイルデバイスの正常動作の挙動を学習し、比較の結果に基づいて1つまたは複数の挙動ベクトルを生成するように構成される場合がある。挙動分析器モジュール204は、さらなる分析のために、生成された挙動ベクトルを分類器モジュール208に送ることができる。
【0096】
分類器モジュール208は、挙動ベクトルを受信し、それらを1つまたは複数の挙動モジュールと比較して、特定のモバイルデバイスの挙動、ソフトウェアアプリケーション、またはプロセスが性能を劣化させる/悪意があるか、良性であるか、または疑わしいかを判定することができる。
【0097】
挙動、ソフトウェアアプリケーション、またはプロセスが悪意があるか、または性能を劣化させると分類器モジュール208が判定したとき、分類器モジュール208は作動器モジュール210に通知することができ、作動器モジュール210は、悪意があるか、もしくは性能を劣化させると判定されたモバイルデバイスの挙動を修正するために様々な活動もしくは動作を実行し、かつ/または識別された問題を治癒、回復、隔離、または場合によっては修復する動作を実行することができる。
【0098】
挙動、ソフトウェアアプリケーション、またはプロセスが疑わしいと分類器モジュール208が判定したとき、分類器モジュール208は挙動観測器モジュール202に通知することができ、挙動観測器モジュール202は、その観測の細分性(すなわち、モバイルデバイスの挙動が観測される詳細さのレベル)を調節し、かつ/または分類器モジュール208から受信された情報(たとえば、リアルタイムの分析動作の結果)に基づいて観測される挙動を変更し、新しいまたは追加の挙動情報を生成または収集し、さらなる分析/分類のために新しい/追加の情報を挙動分析器モジュール204および/または分類器モジュール208に送ることができる。挙動観測器モジュール202と分類器モジュール208との間のそのようなフィードバック通信により、疑わしいかもしくは性能を劣化させるモバイルデバイスの挙動の根源が識別されるまで、処理もしくはバッテリ消費のしきい値に到達するまで、または観測細分性をさらに増加させても疑わしいかもしくは性能を劣化させるモバイルデバイスの挙動の根源が識別され得ないとモバイルデバイスのプロセッサが判断するまで、モバイルデバイス102が繰り返し、観測の細分性を増加させる(すなわち、より微細にもしくはより詳細に観測する)こと、または観測される特徴/挙動を変更することが可能になる。そのようなフィードバック通信により、モバイルデバイス102が、モバイルデバイスの処理、メモリ、またはエネルギーのリソースの量を過剰に消費することなく、モバイルデバイス内でローカルにデータ/挙動モデルを調節または修正することも可能になる。
【0099】
一態様では、挙動観測器モジュール202および挙動分析器モジュール204は、限定された粗い観測値から疑わしい挙動を識別するため、挙動を動的に判断してより詳細に観測するため、および観測のために必要な詳細さのレベルを動的に判断するために、コンピューティングシステムの挙動のリアルタイムの挙動分析を個別または一括のいずれかで提供することができる。このようにして、挙動観測器モジュール202により、デバイス上のプロセッサ、メモリ、またはバッテリのリソースを大量に必要とすることなく、モバイルデバイス102が問題を効率的に識別し、モバイルデバイス上で問題が発生しないように防止することが可能になる。
【0100】
図3は、モバイルデバイス102の処理、メモリ、またはエネルギーのリソースの量を過剰に消費することなく、モバイルデバイス102上のアクティブに悪意があるか、もしくは不十分に記述されたソフトウェアアプリケーションおよび/または疑わしいか、もしくは性能を劣化させるモバイルデバイスの挙動を知的かつ効率的に識別するために、ネットワークサーバ116と連携して動作するように構成されたモバイルデバイス102を含む、一態様のシステム300における例示的な構成要素および情報フローを示す。
【0101】
図3に示された例では、ネットワークサーバ116は、クラウドモジュール302と、モデル生成器304のモジュールと、トレーニングデータモジュール306とを含む。モバイルデバイス102は、挙動観測器モジュール202と、分析器モジュール204と、作動器モジュール210と、状態監視エンジン318と、状態固有特徴生成器314と、デバイス固有特徴生成器316と、デバイス特徴監視エンジン320とを含む。様々な態様では、状態監視エンジン318、状態固有特徴生成器314、デバイス固有特徴生成器316、および/またはデバイス特徴監視エンジン320は、挙動分析器モジュール204の一部または分類器モジュール208(
図3には示されず)の一部として含まれるか、または実装される場合がある。
【0102】
クラウドモジュール302は、経時的なモバイルデバイスの劣化に寄与する可能性がある特徴、データポイント、および/または要因のすべてまたは大部分を含む大量の情報を、クラウドサービス/ネットワーク118から受信するように構成される場合がある。
【0103】
モデル生成器304は、クラウドモジュール302で受信された情報および(たとえば、トレーニングデータモジュール306を介した)トレーニングデータを使用して、経時的なモバイルデバイスの劣化に寄与する可能性がある特徴、データポイント、および/または要因のすべてまたは大部分を含むか、または識別する、完全またはロバストな分類器モデルを生成することができる。
【0104】
様々な態様では、ネットワークサーバ116は、機械学習技法および/またはコンテキストモデル化技法を実施すること、実行すること、ならびに/あるいは多くのモバイルデバイスによって提供された挙動情報および/もしくは挙動分析の結果、またはクラウドサービス/ネットワーク118から受信された他の情報に適用することによって、完全な分類器モデルを生成するように構成される場合がある。したがって、ネットワークサーバ116は、多くのモバイルデバイスから多数の報告を受信し、そのようなクラウドソーシングされた情報を分析するか、統合整理するか、または場合によっては使用可能な情報に、特にすべてのモバイルデバイスによって使用またはアクセスされ得る挙動モデルに変化させることができる。ネットワークサーバ116は、新しい挙動/分析報告がモバイルデバイスから受信されるにつれて既存の挙動モデルを継続的に再評価し、かつ/または(たとえば、挙動モデルの前の実行、以前の適用などから収集された)履歴情報、新しい情報、機械学習、コンテキストモデル化、および利用可能な情報、モバイルデバイスの状態、環境条件、ネットワーク条件、モバイルデバイスの性能、バッテリ消費レベルなどにおいて検出された変化に基づいて、新しいもしくは更新された挙動モデルを生成することができる。
【0105】
一態様では、モデル生成器304は、モバイルデバイスのプロセッサ内の使用または実行に適した簡潔な分類器モデルに、迅速かつ効率的に選別、修正、または変換され得る、増強決定株または増強決定株のファミリなどの、有限状態機械の表示を含めるように、完全な分類器モデルを生成することができる。有限状態機械の表現または表示は、テスト条件、状態情報、状態遷移規則、および他の同様の情報を含む情報構造であり得る。一態様では、有限状態機械の表現または表示は、各々がモバイルデバイスの挙動の条件、特徴、要因、または態様を評価またはテストする、増強決定株の大きいまたはロバストなファミリを含む情報構造であり得る。
【0106】
モデル生成器304のモジュールは、モバイルデバイス102に完全な分類器モデルを送ることができ、モバイルデバイス102は、クラウドモジュール302内で生成された完全なモデルに基づいて、簡潔なデータ/挙動モデルを生成するように構成される場合がある。一態様では、モバイルデバイス102は、完全な分類器モデルを使用して、様々なレベルの複雑さ(または「簡潔さ」)の簡潔な分類器モデルのファミリを生成するように構成される場合がある。
【0107】
一態様では、簡潔なデータ/挙動モデルを生成することは、ネットワークサーバ116内で生成された完全なモデルに含まれる特徴およびデータポイントのサブセットを含む、1つまたは複数の縮小された特徴モデル(RFM)を生成することを含む場合がある。一態様では、モバイルデバイスは、特定のモバイルデバイスの挙動が良性か悪性/性能を劣化させるかを挙動分析器モジュール204が最終的に判定することを可能にする、最高の可能性を有するように決定された情報を含む、初期の特徴セット(たとえば、初期の縮小された特徴モデル)を含む、簡潔なデータ/挙動モデルを生成することができる。
【0108】
一態様では、モバイルデバイス102は、ネットワークサーバ116から受信された完全な分類器モデルに含まれる増強決定株のファミリを選別して、削減された数の増強決定株を含み、かつ/または限られた数のテスト条件を評価する、簡潔な分類器モデルを生成するように構成される場合がある。完全な増強決定株の分類器モデルのこの選別は、増強決定株を選択すること、選択された決定株と同じモバイルデバイス固有の状態、特徴、挙動、または条件に依存する(かつ、したがって1つの判定結果に基づいて適用され得る)すべての他の増強決定木を識別すること、選択された決定株および同じモバイルデバイス固有の状態、特徴、挙動、または条件に依存するすべての識別された他の増強決定木を簡潔な分類器モデルに含めること、ならびに、簡潔な分類器モデルにまだ含まれていない限られた数の選択された増強決定株についてプロセスを繰り返すことによって、達成することができる。このようにして、限られた数の様々なモバイルデバイス固有の状態、特徴、挙動、または条件に依存するすべての増強決定株を含む簡潔な分類器モデルが生成される場合がある。次いで、モバイルデバイスは、このローカルに生成された簡潔な分類器モデルを使用して、その処理、メモリ、またはエネルギーのリソースの量を過剰に消費することなく、モバイルデバイスの挙動を迅速に分類することができる。
【0109】
増強決定株は、正確に1つのノード(およびしたがって1つのテスト問題またはテスト条件)、ならびに重み値を有する1つのレベルの決定木であり、したがってデータ/挙動の二項分類において使用するのに好適である。すなわち、増強決定株に挙動ベクトルを適用すると、二項回答(たとえば、はいまたはいいえ)がもたらされる。たとえば、増強決定株によってテストされる問題/条件が「SMS送信の頻度が毎分xより小さいか」である場合、増強決定株に「3」の値を適用すると、(「3未満」のSMS送信の場合)「はい」の回答または(「3以上」のSMS送信の場合)「いいえ」の回答のいずれかがもたらされる。
【0110】
株は、非常に簡単かつ根本的である(したがって著しい処理リソースを必要としない)ので効率的である。株はまた非常に並列化可能であり、したがって、(たとえば、モバイルデバイス内の多重コアまたは多重プロセッサにより)多くの株を並行して/同時に適用することができる。
【0111】
一態様では、モバイルデバイス102の挙動分析器モジュール204は、ネットワークサーバ116上の(たとえば、トレーニングデータモジュール306からの)トレーニングデータにアクセスすることなく、決定株の形態で簡潔な分類器モデルを生成することができ、それによって、モデルデバイス102とネットワークサーバ116との間のフィードバック通信に対する要求が解消される。言い換えれば、挙動分析器モジュール204は、クラウドまたはネットワークと通信することなく、簡潔な分類器モデルを生成し適用してデータを再訓練し、それによって、モバイルデバイスのクラウドに対する依存性が著しく低減される(かつ、したがってモバイルデバイスの性能および電力消費特性が向上する)。挙動分析器モジュール204はまた、増強決定株を使用して、コンピューティングデバイスの挙動を分類して、マルウェアまたは悪意のある挙動を識別することができる。
【0112】
一態様では、モバイルデバイスは、モバイルデバイスがクラウドのトレーニングデータにアクセスする必要なしにオンザフライで簡潔な分類器モデルを生成し、アプリケーションごとに分類器を動的に再構成して分類確度を高め、分類器ごとに最終的な複雑さ(たとえば、O(株の数))を指定することを可能にする、「合同特徴選択および剪定」動作を実行するように構成される場合がある。
【0113】
一態様では、「合同特徴選択および剪定」動作は、特徴選択動作を実行することを含む場合がある。たとえば、挙動分析器モジュール204は、2つのユニークな特徴(たとえば、F1およびF3)をテストする簡潔な分類器モデルを生成する必要があると判断する場合があり、その場合、特徴選択動作は、最初の2つのユニークな特徴(たとえば、F1およびF3)が発見されるまで、100個の増強決定株のリストを検討することを含む場合がある。
【0114】
次いで、挙動分析器モジュール204は、特徴選択動作によって識別された特徴(たとえば、F1およびF3)のみをテストすることができ、これは、100個の増強決定株の項目リストを検討すること、および異なる特徴/条件(たとえば、F5)をテストする任意の株を削除することによって達成される場合がある。残りの増強決定株(すなわち、条件「F1」および「F3」をテストする株)は、データを再訓練しない簡潔な分類器モデルとして使用される場合がある。挙動分析器モジュール204は、残りの増強決定株の各々に(たとえば、挙動ベクトルの形態の)挙動情報を適用し、残りの株から受信されたすべての回答の加重平均を計算し、加重平均を使用してモバイルデバイスの挙動が悪性か良性かを判定することができる。
【0115】
増強決定株が特徴選択および剪定プロセスを介して生成されると、挙動分析器モジュール204は、挙動分析器モジュール204が現在のデバイスの状態、設定、および挙動と比較することができる挙動モデルとして、選択された決定株を使用することができる。決定株は独立した二項テストであるので、挙動分析器モジュール204は、挙動ベクトル内に集約され得る観測された挙動を、並行してモデルと比較する挙動分析プロセスを実行することができる。また、株は非常に簡単(基本的に二項)であるので、各株を実行する処理は非常に簡単であり、したがって、より少ない処理のオーバーヘッドで迅速に達成することができる。各決定株は重み値を有する回答をもたらすので、挙動が悪性か良性かに関する挙動分析器モジュール204の最終決定は、すべての結果の重み付けされた合計として決定される場合があり、それも簡単な計算であり得る。
【0116】
したがって、一態様では、挙動分析器モジュール204は、挙動観測器モジュール202から受信されたモバイルデバイス102上の進行中の挙動の観測地から挙動ベクトルを生成することができ、挙動分析器モジュール204は、増強決定株に挙動ベクトルを適用して、モバイルデバイス102上の進行中の挙動が悪性か良性かを判定することができる。
【0117】
さらなる態様では、挙動分析器モジュール204は、モバイルデバイス102に特有の特徴および/またはモバイルデバイス102の現在の状態/構成に特有の特徴を組み込むように、合同特徴選択および剪定動作を実行した結果として生成された簡潔な分類器モデルを修正することができる。一態様では、挙動分析器モジュール204がネットワークサーバ116から受信された大きい分類器モデルから生成する簡潔な分類器モデルは、モバイルデバイス102の特徴および現在の挙動を十分に表現しない場合がある。たとえば、ネットワークサーバ116から受信された大きい分類器モデルは、近距離場通信に関する少数の挙動ベクトル/モデルのみを含む場合があり、その結果、挙動分析器モジュール204がモバイルデバイス上に含まれる特徴に関係しない簡潔な分類器モデルを生成した場合、近距離場通信に関する少ない特徴は省略される。しかしながら、特定の金融取引(たとえば、Google Wallet)を行う際の近距離場通信の重要性から判断して、重要な金融的な意味合いを有する可能性がある悪意のある活動(たとえば、ハッカにクレジットカード情報を送ること)を検出するために、簡潔な分類器モデルに近距離場通信の特徴を含めることは大いに望ましい場合がある。別の例として、モバイルデバイス102がセキュアではないワイヤレスアクセスポイントに接続する場合、無認可アクセスまたは他の悪意のある活動のリスクが増大するので、モバイルデバイス102はWi-Fiの挙動の増加した警戒から恩恵を受けることができる。様々な態様は、グローバルモデルをモバイルデバイスの挙動および状態を監視するために使用される簡潔な分類器モデルに剪定するとき、モバイルデバイス上に含まれるか、またはモバイルデバイスに接続される特徴および機能のすべてを考慮することによって、これらの問題に対処する。
【0118】
さらに、簡潔な分類器モデルは、モバイルデバイス102の構成または状態の変化に起因して、モデルがモバイルデバイス102に関係しない特徴を含む場合に悪意のある挙動を監視する際にそうであるよりも効率的ではなくなる場合がある。たとえば、モバイルデバイスがワイヤレス接続を遮断する「機内モード」にある場合、モデムの活動およびメッセージ送信に関する特徴は関係がなくなる。別の例として、WiFiトランシーバが使用不能である場合、WiFi通信活動に関する特徴は関係がなくなる。
【0119】
一態様では、モバイルデバイスの状態および構成が変化し発展するにつれて、大きい分類器モデルから導出された簡潔な分類器モデルを修正または更新することによって、挙動分析器モジュール204は、モバイルデバイスおよび/またはモバイルデバイスの現在の状態に関する重要な特徴が簡潔な分類器モデルに含まれ、関係ない特徴が削除されることを保証することができる。重要な特徴を含めることによって、挙動分析器モジュール204は、モバイルデバイスのより関係がある特徴が監視されているので、より高い信頼性により悪意のある挙動を検出することができる。
【0120】
挙動分析器モジュール204は、モバイルデバイス102上で動作する状態固有特徴生成器314および/またはデバイス固有特徴生成器316から簡潔な分類器モデルに追加するか、または簡潔な分類器モデルから削除する特徴を知ることができる。一態様では、状態固有特徴生成器314および/またはデバイス固有特徴生成器316は、挙動分析器モジュール204とは別に、または挙動分析器モジュール204の一部として実装される場合がある。
【0121】
一態様では、状態固有特徴生成器314は、状態監視エンジン318と通信している場合がある。状態監視エンジン318は、モバイルデバイス102上の構成および/または状態の変化を絶え間なく監視することができる。これらの構成および/または状態の変化は、モバイルデバイス102の様々な特徴または構成要素に関する場合がある。たとえば、状態監視エンジン318は、モバイルデバイス102が新しいワイヤレスネットワークに接続するとき、モバイルデバイス102のバッテリレベルがしきい値より低下するとき(たとえば、低バッテリ状態)、モバイルデバイス102がローミングしているとき、およびワイヤレス周辺デバイス(たとえば、ワイヤレスキーボードまたはゲームコントローラ)とBluetooth(登録商標)接続を確立しているときを検出することができる。別の態様では、状態監視エンジンは、モバイルデバイス102上の重要な変化/イベント(たとえば、モバイルデバイス102上の「機内モード」を有効にすること)のみを監視することができる。
【0122】
構成および/または状態の変化を検出した後、状態監視エンジン318は、状態固有特徴生成器314に通知することができる。状態固有特徴生成器314は、構成および/または状態の変化に関する1つまたは複数の特徴を識別することができ、簡潔な分類器モデルからこれらの特徴を追加または削除するように、挙動分析器モジュール204に信号を送ることができる。たとえば、モバイルデバイス102が「機内モード」に入った(すなわち、そのワイヤレス通信機能をオフにした)ことを状態監視エンジン318が状態固有特徴生成器314に知らせたとき、状態固有特徴生成器314は、モバイルデバイスのWi-Fiに関する特徴が簡潔な分類器モデルの中で現在必要ではないと判断することができる。
【0123】
状態固有特徴生成器314から受信されたフィードバックに基づいて、挙動分析器モジュール204は、特徴を追加または削除するように簡潔な分類器モデルに通知することができ、それによって、悪意のある挙動を検出する挙動分析器モジュール204の全体的な能力が高まり、モバイルデバイスに関する特徴のみが監視されることが保証される。
【0124】
別の態様では、デバイス固有特徴生成器316は、モバイルデバイスの機能/能力における変化を監視するように構成されたデバイス特徴監視エンジン320と通信している場合がある。言い換えれば、デバイス特徴監視エンジン320は、モバイルデバイス102が、キーボード、マウス、または他の周辺デバイスなどの特定の機能を追加または削除するときを検出することができる。
【0125】
新しいまたは削除された機能を検出したことに応答して、デバイス特徴監視エンジン320は、デバイス固有特徴生成器316にモバイルデバイス102の機能における変化を警告することができる。デバイス固有特徴生成器316は、機能における変化に関連する特徴を特定することができ、変化に関連する特徴を追加または削除するように、挙動分析器モジュール204にシグナリングすることができる。
【0126】
別の態様では、デバイス固有特徴生成器316は、モバイルデバイス102に関係しない簡潔な分類器モデルの中の特徴を特定するか、またはモバイルデバイス102に関係する簡潔な分類器モデルから失われた特徴を特定することができる。たとえば、挙動分析器モジュール204の最初の簡潔な分類器モデルは、Bluetooth(登録商標)無線の挙動に関する特徴を含まない場合があり、それにより、Bluetooth(登録商標)上の活動が簡単な分類器モデルの中になく、したがって無視される/監視されないので、モバイルデバイスはそのBluetooth(登録商標)無線上の悪意のある挙動に無防備のままであり得る。そのような例では、挙動分析器モジュール204は、サーバから受信された大きい分類器モデルの中にBluetooth(登録商標)の特徴を突き止めることができ、簡潔な分類器モデルにそれらのBluetooth(登録商標)の特徴を追加することができ、それによって、モバイルデバイスのBluetooth(登録商標)無線が悪意のある挙動に対して十分に監視され得ることが保証される。したがって、デバイス固有特徴生成器316は、簡潔な分類器モデルの中の失われたかまたは余分な特徴を特定し、それらの特徴を追加または削除するように、挙動分析器モジュール204にフィードバックを送ることができる。
【0127】
図4は、モバイルデバイスのデバイス固有およびデバイス状態固有の特徴を考慮に入れる簡潔な分類器を生成する一態様の方法400を示す。方法400は、モバイルデバイス内の処理コアによって実行することができる。
【0128】
一態様では、方法400は、モバイルデバイスのプロセッサにおいて、複数のテスト条件を識別する完全な分類器モデル(たとえば、各々が複数のテスト条件のうちの1つを評価する複数の決定ノードへの変換に適した情報を含む有限状態機械など)を受信することと、モバイルデバイスのデバイス固有の情報を使用して、モバイルデバイスの挙動を分類することに関する、複数のテスト条件の中のモバイルデバイス固有のテスト条件を識別することと、モバイルデバイスにおいて、識別されたモバイルデバイス固有のテスト条件のみを含む簡潔な分類器モデルを生成すること(たとえば、モバイルデバイスの現在の動作状態または構成に関するモバイルデバイスの特徴を評価する決定ノードのみを含むことなど)と、モバイルデバイス内の生成された簡潔な分類器モデルを使用して、モバイルデバイスの挙動を分類することとを含む、モバイルデバイス内のデータモデルを生成する方法を含む場合がある。
【0129】
図4を参照すると、ブロック402において、処理コアは、多数の特徴および/または特徴に関連する複数のテスト条件を含むか、または識別する完全な分類器モデルを受信することができる。一態様では、完全な分類器モデルは、増強決定株/木への入力として挙動ベクトル値を適用して、モバイルデバイスの機能に関する条件をテストすることなどによって、挙動を良性または悪性として分類する際のモバイルデバイスによる使用に適した、増強決定木または決定株を含む場合がある。
【0130】
多数の株/木に挙動ベクトル値を適用して、大きい分類器モデルの中の複数の特徴をテストすることは、モバイルデバイス102で負担がかかる可能性がある。たとえば、これらの動作は、モバイルデバイスの他のプロセスの性能に被害が及ぶまで、プロセッサおよびメモリの機能を占有する可能性がある。これらの動作はまた、モバイルデバイス102のバッテリ電力を消耗させる可能性がある。モバイルデバイス102の性能に対するこれらの逓減作用を削減する助けになるために、モバイルデバイス102は、合同特徴選択および剪定アルゴリズムを実施して、大きい分類器モデルから簡潔な分類器モデルを生成することができる。
【0131】
ブロック404において、処理コア内で動作する挙動分析器モジュール204は、関係するモバイルデバイスの挙動を分類するために、大きい分類器モデルから特徴を選択して、監視し評価することができる。大きい分類器モデルから特徴および増強決定株を選択するために、様々な基準を使用することができる。たとえば、合同特徴選択および剪定アルゴリズムの一規則は、プロセッサ、メモリ、および通信の特徴のような、モバイルデバイス102の適正な動作に必須と考えられる特徴を選択することを指定することができる。その規則は、大きい分類器モデルが、最も必須なものから最も必須ではないものまでの方式で順序付けられるときに適切であり得る、第1の数の特徴(たとえば、第1の50個、100個、200個、1,000個など)、または通常のモバイルデバイスの特徴を指定することもできる。
【0132】
ブロック406において、処理コア内で動作する挙動分析器モジュール204は、選択された特徴から簡潔な分類器モデルを生成して、モバイルデバイス102の少なくとも1つの特徴の挙動をテストすることができる。一態様では、挙動分析器モジュール204は、大きい分類器モデルに含まれる増強決定株のリストを通してスキャンし、選択された特徴のうちの少なくとも1つをテストするか、またはそれらによって回答される増強決定株すべてを簡潔な分類器モデルに組み込むことができる。したがって、一態様では、簡潔な分類域モデルは、選択された特徴と選択された特徴に関連する増強決定株の両方を含む場合がある。
【0133】
ブロック408において、処理コア内で動作する挙動分析器モジュール204は、デバイス固有の特徴/機能および/またはデバイス状態固有の特徴に基づいて、簡潔な分類器モデルを修正することができる。ネットワークサーバ116は様々なタイプのモバイルデバイスからの情報を使用して大きい分類器モデルを作成するので、大きい分類器モデルから導出された簡潔な分類器モデルは、モバイルデバイスに関係しない多数の特徴(すなわち、他のタイプのモバイルデバイスに関係する特徴)を含む場合があり、いくつかの極めて重要な特徴(すなわち、大きい分類器モデル内で選択されない特徴)を含まない場合がある。関係ない特徴の存在または重要な特徴の不足のために、簡潔な分類器モデルは、前者の場合関係ない特徴を監視してリソース(たとえば、バッテリ電力、CPUサイクルなど)を浪費するか、または、後者の場合重大な特徴を監視しないことによって効果的ではないセキュリティを提供するかのいずれかであり得る。したがって、モバイルデバイスの全体的なセキュリティおよび性能は、モバイルデバイスの特徴およびモバイルデバイスの現在の状態に関する特徴をより厳密に反映するように、簡潔な分類器モデルを修正することから恩恵を受けることができる。簡潔な分類器モデルを修正するプロセスは、
図5〜
図8を参照して下記にさらに記載される。
【0134】
一態様では、処理コア内で動作する挙動分析器モジュール204は、モバイルデバイス102によって識別された未選択の特徴を組み込むこと、および受信された大きい分類器モデルから組み込まれた関係する増強決定株を有することによって、ネットワークサーバ116と交信する必要なしに、モバイルデバイス102の特有の特徴および状態における変化を反映するように、簡潔な分類器モデルを修正することができる。簡潔な分類器モデルはまた、デバイス固有およびデバイス状態固有の情報に基づいて、簡潔な分類器モデルから不要な特徴および増強決定株を削除することによって、修正することができる。ネットワークサーバ116と交信する必要をなくして、モバイルデバイスに対する変化から生成された情報を再訓練すると、モバイルデバイスの電力、処理、および通信のリソースを節約することができる。不要な特徴および増強決定株を削除するとまた、過剰または関係ない情報の処理を回避することによって、電力および処理のリソースを節約することができる。
【0135】
ブロック410において、処理コア内で動作する挙動観測器202は、簡潔な分類器モデルによって示されたモバイルデバイスの特徴の挙動を監視/観測することができる。挙動観測器202は、
図2を参照して上述された特徴に関するデータを記録することができる。
【0136】
ブロック412において、挙動分析器モジュール204は、簡潔な分類器モデルに含まれるモバイルデバイスの特徴の挙動用の挙動ベクトルを生成することができる。一態様では、挙動ベクトルは、挙動観測器202から受信された観測値を利用して、
図2を参照して上述された挙動ベクトルを生成することができる。
【0137】
ブロック414において、処理コア内で動作する分類器208および/または挙動分析器モジュール204は、増強決定株に生成された挙動ベクトルを適用することができる。一態様では、分類器208および/または挙動分析器モジュール204は、特定の特徴をテストする1つまたは複数の増強決定株に、特定の特徴を表現する挙動ベクトル内の値を適用することができる。増強決定株に挙動ベクトルの値を適用した結果は、「はい」または「いいえ」などの二項結果であり、各結果は、特徴の挙動が良性または悪性である信頼因子を示す重み付けされた確率を割り当てられる。たとえば、挙動分類器208は、ショートメッセージサービス(SMS)用のその挙動ベクトルの値(たとえば、最近10分間に送られたSMSメッセージの数を表す値)を使用して、SMSの特徴に関する増強決定株を解くことによって、モバイルデバイス102上のSMSの特徴をテストすることができる。SMSの特徴に関連する増強決定株は、「最近10分間で150個以下のSMSメッセージが送られた」、「最近10分間で100個以下のSMSメッセージが送られた」、「最近10分間で50個以下のSMSメッセージが送られた」などであるかどうかのテストを含む場合がある。増強決定株のテストについての各解答は、モバイルデバイス102のSMSの特徴の挙動が悪性または良性である、いくらか重み付けされた確率を生成することができ、挙動分類器208は、モバイルデバイス102の現在の構成が悪性か良性かを判定する重み付けされた確率と、その結果のいくらかの信頼性とを組み合わせることができる(たとえば、現在の構成は35%の信頼性をもつ良性である)。
【0138】
判定ブロック416において、分類器モジュール208および/または挙動分析器モジュール204は、簡潔な分類器モデルの中の増強決定株に生成された挙動ベクトルを適用した結果に基づいて、モバイルデバイスが悪意のある挙動に遭遇しているかどうかを判定することができる。
【0139】
モバイルデバイスが悪意のある挙動に遭遇していると分類器モジュール208が判定したとき(すなわち、判定ブロック416=「はい」)、ブロック418において、作動器210は悪意のある挙動を終了させることができる。悪意のある挙動を終了させるために、作動器は、違反挙動の関係する特徴に対するアクセスを制限するか、またはその挙動に関与する要素を識別し、その要素を隔離もしくは削除することができる。モバイルデバイスが悪意のある挙動に遭遇していないと分類器モジュール208が判定したとき(すなわち、判定ブロック416=「いいえ」)、ブロック410において簡潔な分類器モデルによって示されたモバイルデバイスの特徴の挙動を監視/観測することによって、挙動観測器202が継続することができるようなループ内で、プロセスは継続することができる。
【0140】
一般に、モバイルデバイスは、様々な共通の要素/特徴を共有するが、特定の要素/特徴の場合、モバイルデバイス間に広範な差異が存在する。近距離場通信のような特徴は、製造業者によって、彼らの製品構成の頂点またはその近くにあるモバイルデバイス内に供給される場合がある。政府または業務使用向けに開発された専用デバイスは、セキュアな通信または生体ユーザ識別機能などの特徴を含む場合がある。これらの特徴は、他のモバイルデバイスには通常含まれない、デバイス固有の特徴であり得る。
【0141】
同様に、周辺デバイスおよびソフトウェアは、モバイルデバイスの特徴をその元の特徴セットを越えて拡張することができる。たとえば、Bluetooth(登録商標)対応のイヤピースまたはキーボード、オーディオジャックを介して接続された磁気ストリップリーダ、接続された医療デバイス(たとえば、ペースメーカ)、またはHDMI(登録商標)接続された外部ディスプレイ(たとえば、テレビジョン、モニタ、もしくはプロジェクタ)は、それらが接続されたときモバイルデバイスの特徴セットを拡張する、今や普通に使用されている周辺デバイスである。すべてのこれらの特徴は、それらが実装され、含まれ、監視され、かつ/または評価される特定のモバイルデバイスに高度に依存し、それに特有のデバイス固有の特徴であり得る。
【0142】
図5は、モデルが使用されるモバイルデバイスのデバイス固有の特徴を含めるように、分類器モデルを修正する一態様の方法500を示す。方法500は、モバイルデバイス102の処理コア内で実行することができる。
【0143】
ブロック502において、処理コア内で動作するデバイス特徴監視エンジン320は、モバイルデバイスの機能に関する特徴を認識することができる。特徴を認識することは、モバイルデバイスまたは悪意のある挙動監視アプリケーションの初期化時、および/または特徴の初期化時に行われる場合がある。たとえば、デバイス特徴監視エンジン320は、Bluetooth(登録商標)、1つまたは複数のWAN無線、入力/出力デバイス(たとえば、カメラ、スピーカ、マウス、キーボードなど)などの、モバイルデバイスの機能/能力を識別するように、モバイルデバイスのスタートアップ時に決定することができる。別の例では、デバイス特徴監視エンジン320は、リモート処理デバイスなどの、モバイルデバイスと通信している、またはモバイルデバイスによって制御される周辺デバイスに関する他の機能/能力を認識することができる。
【0144】
判定ブロック504において、処理コア内で動作するデバイス固有特徴生成器316は、簡潔な分類器モデルに含めるために大きい分類器モデルから選択された特徴の中に、認識された特徴が含まれるかどうかを判定することができる。一態様では、デバイス固有特徴生成器316は、モバイルデバイス上に現在存在する機能/能力の通知を、デバイス特徴監視エンジン320から受信することができる。たとえば、デバイス特徴監視エンジン320は、モバイルデバイスがBluetooth(登録商標)無線を含むと認識することができ、この機能をデバイス固有特徴生成器316に警告することができる。それに応答して、デバイス固有特徴生成器316は、Bluetooth(登録商標)無線に関する特徴が簡潔な分類器モデルにあるかどうか、または含まれるべきかどうかを判定することができる。
【0145】
認識された特徴が簡潔な分類器モデルに含まれる特徴のうちの1つであるとデバイス固有特徴生成器316が判定したとき(すなわち、判定ブロック504=「はい」)、処理コアは、簡潔な分類器モデルに対する変更が行われるべきではないと判断することができ、処理コア内で動作する挙動観測器モジュール202は、ブロック410において、簡潔な分類器モデルによって示された特徴に関する情報を収集することによって、モバイルデバイスの挙動の監視/観測を継続することができる。言い換えれば、デバイス固有特徴生成器316は、簡潔な分類器モデルが認識された特徴をすでに含んでいるので、これ以上のアクションが必要ではないと判断することができる。
【0146】
認識された特徴が簡潔な分類器モデルに含まれる特徴のうちの1つではないとデバイス固有特徴生成器316が判定したとき(すなわち、判定ブロック504=「いいえ」)、ブロック506において、挙動分析器モジュール204は、大きい分類器モデルから、関係する対応する増強決定株ともに、デバイス固有特徴生成器316によって識別された特徴を簡潔な分類器モデルに追加することができる。一態様では、挙動分析器モジュール204は、簡潔な分類器モデルがモバイルデバイスの能力および機能を十分に表現することを保証するために(すなわち、モバイルデバイスのデバイス固有の特徴/機能が十分に監視/保護されていることを保証するために)、認識された特徴を追加することができる。
【0147】
次いで、挙動観測器202は、ブロック410において、更新された簡潔な分類器モデルによって示されたモバイルデバイスの特徴の挙動の監視/観測を継続することができる。
【0148】
簡潔な分類器に特徴を追加すると、簡潔な分類器をモバイルデバイスの構成および動作状態における変化に遅れないようにする助けになる場合がある。上述されたように、最新の簡潔な分類器を有すると、アクティブな特徴のより完全なセットを監視することができるので、モバイルデバイス102上の悪意のある挙動を監視する挙動分析器モジュール204の能力が向上することができる。一態様では、いくつかの特徴は、アクティブであるとき、金融情報などの機密情報に対するアクセスを提供することができるので、監視することがますます重要になる。たとえば、近距離場通信は、電子商取引と密接に関係する。この特徴は、しばしば、Google WalletおよびPayPalのアカウント情報などの、クレジットカード情報および電子商取引アカウント情報にアクセスする。したがって、機密情報に対するアクセスに伴うアクティブな特徴を追加することは、この情報を悪意のある挙動から保護するために重要であり得る。
【0149】
図6は、モバイルデバイスのデバイス固有の特徴を削除することによって、簡潔な分類器モデルを修正するための、モバイルデバイス上に実装され得る一態様の方法600を示す。モバイルデバイス102の特徴が変化した(たとえば、周辺デバイスがモバイルデバイスから取り除かれた)とき、特徴はもはやモバイルデバイス102に含まれていない可能性があるが、簡潔な分類器モデルでは対処されたままである可能性がある。これにより、挙動ベクトルの処理が今やモバイルデバイスの挙動の監視に有用でなく関係がない情報を含む可能性があり、存在しない特徴は悪性ではあり得ないので、挙動ベクトルの処理に不要な複雑さが加わる。1つの残りの特徴は、モバイルデバイス102のリソースおよび能力に対する影響を多くは有していない可能性がある。しかし、時間がたつにつれて削除された特徴の数が増加し、挙動監視プロセス内の顕著な劣化を引き起こす可能性がある。したがって、特徴がモバイルデバイスの現在の構成または動作状態にもはや関係がないとき、それらの特徴および対応する増強決定株を簡潔な分類器モデルから削除することが有益であり得る。
【0150】
ブロック602において、デバイス特徴監視エンジン320は、モバイルデバイス102の機能に関する特徴のリストを認識することができる。リストは、モバイルデバイスの近距離場通信能力、周辺デバイス、WAN無線などの、モバイルデバイスの機能に関する各特徴を含んでいる場合がある。
【0151】
判定ブロック604において、デバイス固有特徴生成器316は、簡潔な分類器モデルに含まれるデバイス固有の能力に関する特徴が、モバイルデバイスの機能に関する特徴のリストに含まれるかどうかを判定することができる。言い換えれば、デバイス固有特徴生成器316は、簡潔な分類器モデルの中の任意の特徴(たとえば、Bluetooth(登録商標)、近距離場通信、または他のデバイス固有の機能)または関係する機能がモバイルデバイス上に存在しないので、それらの特徴が余分かどうかを判定することができる。簡潔な分類器モデルの中の特徴のすべてがリスト上にあるとデバイス固有特徴生成器316が判定したとき(すなわち、判定ブロック604=「はい」)、簡潔な分類器モデルに対する変更が行われない可能性があり、挙動観測器202は、ブロック410において、簡潔な分類器モデルによって示されたモバイルデバイスの特徴の挙動の監視/観測を継続することができる。
【0152】
簡潔な分類器モデルの中のモバイルデバイスの能力/機能に関する1つまたは複数の特徴が、モバイルデバイスの能力/機能のリスト上にはないとデバイス固有特徴生成器316が判定したとき(すなわち、判定ブロック604=「いいえ」)、ブロック606において、挙動分析器モジュール204は、簡潔な分類器モデルから関係がないかまたは余分な機能および対応する増強決定株を削除することができる。たとえば、挙動分析器モジュール204は、Bluetooth(登録商標)無線がモバイルデバイス上で非アクティブ化されたとき、Bluetooth(登録商標)無線に関する特徴を簡潔な分類器モデルから削除することができる。次いで、挙動観測器202は、ブロック410において、更新された簡潔な分類器モデルを使用して、モバイルデバイスの特徴の挙動の監視/観測を継続することができる。
【0153】
図7は、モバイルデバイスのデバイス固有の特徴における変化を考慮するように、簡潔な分類器モデルを修正するための、モバイルデバイス上に実装され得る一態様の方法700を示す。方法700は、モバイルデバイスの処理コア内で実行することができる。モバイルデバイス102の特徴が静的である態様では、たとえば、最初に完全なモバイルデバイス102の電源がオンにされときに一度、処理コアがモバイルデバイス102の特徴をチェックするだけで十分であり得る。特徴が突発的に変更される場合がある他の態様では、モバイルデバイス102の特徴をチェックすることは、たとえば、モバイルデバイス102が更新手順を起動するか、またはモバイルデバイス102の挙動を監視するためにソフトウェアが初期化されたときに、行われる場合がある。しかしながら、モバイルデバイス102の特徴が動的である(すなわち、機能および/または特徴がモバイルデバイス102の通常動作中に追加および削除され得る)態様では、変化を識別し、変化が起きたときに簡潔な分類器モデルを特徴に適合することは有利であり得る。前述された周辺デバイスと同様の周辺デバイスを接続し切断することは、デバイスの機能および/または特徴におけるこれらの変化を引き出す可能性がある。
【0154】
判定ブロック702において、モバイルデバイスの処理コア内で動作するデバイス特徴監視エンジン320は、モバイルデバイスを監視して、モバイルデバイスの状態、構成、能力、または機能において任意の変化があるかどうか、またはあったかどうかを判定することができる。一態様では、特徴監視エンジン320は、モバイルデバイス102を常に監視して、モバイルデバイスのデバイス固有の特徴に関する機能がいつ追加または削除されたかを判断するように構成される場合がある。別の態様では、デバイス特徴監視エンジン320は、機能および/または特徴が追加または削除されたとき、デバイス固有特徴生成器316に通知するプロンプトを受信するように構成される場合がある。たとえば、デバイス固有特徴生成器316は、モバイルデバイス102から周辺デバイスを接続または切断する割込みがカーネル空間内で受信されたとき、通知される場合がある。
【0155】
モバイルデバイス102の機能に対する変化がないとデバイス特徴監視エンジン320が判定したとき(すなわち、判定ブロック702=「いいえ」)、簡潔な分類器モデルに対する変化が行われない可能性があり、挙動観測器202は、ブロック410において、簡潔な分類器モデルによって示されたモバイルデバイスの特徴の挙動の監視/観測を継続することができる。モバイルデバイス102の機能に対する変化があるか、またはあったとデバイス特徴監視エンジン320が判定したとき(すなわち、判定ブロック702=「はい」)、ブロック704において、デバイス固有特徴生成器316は、検出された機能における変化に関連するモバイルデバイスの特徴を認識または識別することができる。複数の特徴は、所与の機能を共有するか、または所与の機能に関係する場合がある。一態様では、デバイス固有特徴生成器316は、デバイス特徴監視エンジン320から、変化した機能の指示を受信することができる。デバイス固有特徴生成器316は、機能を1つまたは複数の特徴と相関させ、特徴のうちのどれが機能における変化によって影響されるかを識別することができる。たとえば、モバイルデバイス102に接続された様々な周辺デバイスは、モバイルデバイス102からBluetooth(登録商標)のようなワイヤレス接続を介してメディアをストリーミングすることができる。そのような周辺デバイスの一方は一組のワイヤレススピーカであり得るし、他方はワイヤレスに接続されたテレビジョンであり得る。両方の周辺デバイスにより、メディアをストリーミングすることが機能的に可能になり得るが、デバイス固有特徴生成器316は、スピーカがオーディオメディアをストリーミングする特徴を提供することができ、テレビジョンがオーディオメディア、ビデオメディア、およびオーディオ/ビデオのマルチメディアをストリーミングする特徴を提供することができると区別することができる。したがって、オーディオをストリーミングする機能のみにおける変化は、変化によって影響される特徴がワイヤレススピーカへのオーディオストリーミングであって、ワイヤレステレビジョンへのオーディオストリーミングではないと、デバイス固有特徴生成器316に結論付けさせることができる。
【0156】
判定ブロック706において、デバイス固有特徴生成器316は、モバイルデバイスの機能における変化が機能の追加であったか削除であったかを判定することができる。すなわち、判定ブロック706において、処理コアは、検出された機能における変化が追加された機能を表すか削除された機能を表すかを判定することができる。この判定は、現在の簡潔な分類器モデルを維持することに役立つ場合がある。前に説明されたように、簡潔な分類器モデルを維持すると、悪意のある挙動を監視する性能が向上し、モバイルデバイス102の性能に対する監視の影響が低減される場合がある。
【0157】
変化が機能の追加であるとデバイス固有特徴生成器316が判定したとき(すなわち、判定ブロック706=「追加」)、判定ブロック708において、デバイス固有特徴生成器316は、変化した機能に関連する認識された特徴が簡潔な分類器モデルに含まれるかどうかを判定することができる。たとえば、処理コアは、判定ブロック708において、検出された機能における変化が追加された機能を表すとの判定に応答して、検出された機能における変化によって影響されたモバイルデバイスの特徴を評価する任意のテスト条件を、簡潔な分類器モデルが含むかどうかを判定することができる。認識された特徴が簡潔な分類器モデルの特徴に含まれるとデバイス固有特徴生成器316が判定したとき(すなわち、判定ブロック708=「はい」)、処理コアは、簡潔な分類器モデルに対する変更が行われるべきではないと判定することができ、挙動観測器202は、ブロック410において、簡潔な分類器モデルによって示されたモバイルデバイスの特徴の挙動の監視/観測を継続することができる。
【0158】
モバイルデバイスの認識された特徴が簡潔な分類器モデルに含まれないとデバイス固有特徴生成器316が判定したとき(すなわち、判定ブロック708=「いいえ」)、ブロック710において、挙動分析器モジュール204は、大きい分類器モデルから簡潔な分類器モデルに、デバイス固有特徴生成器316によって識別された特徴、およびその関係する対応する増強決定株を追加することができる。すなわち、ブロック710において、処理コアは、簡潔な分類器モデルがモバイルデバイスの特徴を評価する任意のテスト条件を含まないとの判定に応答して、完全な分類器モデルがモバイルデバイスの特徴を評価する任意のテスト条件を含むかどうかを判定し、完全な分類器モデルがモバイルデバイスの特徴を評価するテスト条件を含むとの判定に応答して、検出された変化によって影響されたモバイルデバイスの特徴を評価するテスト条件を簡潔な分類域モデルに追加することができる。モバイルデバイスに新しい機能が追加されたときに簡潔な分類器モデルに新しい特徴を追加すると、モバイルデバイス102の構成が変化するときに、モバイルデバイス102のすべての特徴および機能の効果的な悪意のある挙動の監視が可能になる。挙動観測器202は、ブロック410において、更新された簡潔な分類器モデルによって示されたモバイルデバイスの特徴の挙動の監視/観測を継続することができる。
【0159】
変化が機能および/または特徴の削除に関係するとデバイス固有特徴生成器316が判定したとき(すなわち、判定ブロック708=「削除」)、判定ブロック712において、デバイス固有特徴生成器316は、認識された特徴が簡潔な分類器モデルに含まれるかどうかを判定することができる。特徴が簡潔な分類器モデルの中にあるとデバイス固有特徴生成器316が判定したとき(すなわち、判定ブロック712=「はい」)、ブロック714において、挙動分析器モジュール204は、簡潔な分類器モデルから、特徴および関係する対応する増強決定株を削除することができる。もはやモバイルデバイス102に関係しない特徴および増強決定株を削除すると、悪意のある挙動を監視するために必要なリソースが削減され得るし、したがってモバイルデバイス102の性能に対する影響が低減される。挙動観測器202は、ブロック410において、簡潔な分類器モデルによって示されたモバイルデバイスの特徴の挙動の監視/観測を継続することができる。認識された特徴が簡潔な分類器モデルの中にないとデバイス固有特徴生成器316が判定したとき(すなわち、判定ブロック714=「いいえ」)、簡潔な分類器モデルに対する変更が行われない可能性があり、挙動観測器202は、ブロック410において、簡潔な分類器モデルによって示されたモバイルデバイスの特徴の挙動の監視/観測を継続することができる。
【0160】
図8は、モバイルデバイスの状態に関するモバイルデバイスの特徴を追加することによって、簡潔な分類器モデルを修正するための一態様の方法800を示す。モバイルデバイスの状態は、常に変化している可能性があり、モバイルデバイス102で発生するあらゆるイベントは、特徴に関する状態を変化させる可能性がある。たとえば、モバイルデバイス102がアクティブまたはアイドルになるとき、通信接続を行うかまたは接続を終了するとき、充電器に差し込まれるかまたはバッテリで動作するように充電器から抜かれろとき、状態は変化する可能性がある。状態は頻繁に変化する可能性があるので、状態変化ごとに特徴を識別することは、ネットワークサーバ116、さらには受信された大きい分類器モデルから特徴情報を取得しなければならないので、負担になる可能性がある。状態は非常に迅速に変化する可能性もあり、状態変化ごとに特徴が更新された場合、更新が発生した時間までに関係する状態が再び変化するので、更新が廃棄される可能性がある。したがって、モバイルデバイス102は、簡潔な分類器モデルに追加するか、または簡潔な分類器モデルから削除するために機能を識別する前に、状態変化が実体のあることが必要になる場合がある。実体のある状態変化には、「機内モード」をアクティブにするときのようにすべてのワイヤレス接続を切断すること、セキュアなネットワークアクセスポイントに接続されたときにセキュリティプロトコルレベルを低減すること、またはセルラー通信用のローミングモードから出入りすることが含まれ得る。
【0161】
判定ブロック802において、状態監視エンジン318は、モバイルデバイス上の状態に変化があったかどうかを判定することができる。状態監視エンジン318は、モバイルデバイスの状態のすべてまたはサブセットを監視することができる。一態様では、モバイルデバイスのいくつかの状態は、悪意のある挙動に寄与するか、または関与する可能性がある特徴を示すものとして考えられておらず、したがって、監視される必要がない場合がある。さらなる態様では、状態監視エンジン318によって監視される状態は、状態における変化を常に監視される場合がある。状態における変化がなかったと状態監視エンジン318が判定したとき(すなわち、判定ブロック802=「いいえ」)、簡潔な分類器モデルに対する変更が行われない可能性があり、挙動観測器202は、ブロック410において、簡潔な分類器モデルによって示されたモバイルデバイスの特徴の挙動の監視/観測を継続することができる。
【0162】
上記で説明されたように、すべての状態変化が重要であると考えられるとは限らない場合があり、多くの状態変化は迅速かつ/またはしばしば発生するので、状態における変化に基づいて関係する特徴を監視(または監視を中止)することは、効果的ではない可能性がある。状態における変化があると状態監視エンジン318が判定したとき(すなわち、判定ブロック802=「はい」)、判定ブロック806において、状態監視エンジン318は、モバイルデバイスの状態における1つまたは複数の変化が実体のあるものかどうかを判定することができる。モバイルデバイスの状態における1つまたは複数の変化が実体のあるものではなかったと状態監視エンジン318が判定したとき(すなわち、判定ブロック806=「いいえ」)、挙動観測器202は、ブロック410において、簡潔な分類器モデルによって示されたモバイルデバイスの特徴の挙動の監視/観測を継続することができる。モバイルデバイスの状態における1つまたは複数の変化が実体のあるものであったと状態監視エンジン318が判定したとき(すなわち、判定ブロック806=「はい」)、ブロック808において、状態監視エンジン318は、モバイルデバイスの現在の状態および以前の状態を認識することができる。一態様では、状態変化を実体のあるものにするものはあらかじめ決められている場合があり、実体のある状態変化は、状態監視エンジン318によってアクセスされる規則によって識別することができる。
【0163】
ブロック810において、状態固有特徴生成器314は、現在の状態および以前の状態に関する特徴を認識することができる。一態様では、状態固有特徴生成器314は、状態監視エンジン318から実体のある状態変化の通知を受信することができ、状態監視エンジン318は、特徴を実体のある状態変化と相関させるか、または認識するように、状態固有特徴生成器314をトリガすることができる。一態様では、特徴と実体のある状態変化との間の相関は、直接相関であり得る。たとえば、WiFiを介して確立されているワイヤレス接続の状態は、モバイルデバイス102のWiFiの特徴に直接関係する場合がある。別の態様では、特徴と実体のある状態変化との間の相関は、接線相関であり得る。たとえば、速いネットワーク接続を示す状態は、クラウドサーバとのより良い対話を示す場合があり、クラウドサーバは、クラウドサーバにオフロードする情報などの、モバイルデバイス102上の悪意のある挙動と関係をもっている可能性がある。別の態様では、相関は間接相関であり得る。たとえば、モバイルデバイス102のバッテリ状態は、様々なセットの特徴と相関する場合がある。高いバッテリ状態の間、モバイルデバイス102が広範なセットの特徴の監視を処理するのに十分な電力リソースを有するとき、高い優先順位の特徴および低い優先順位の特徴を含む広範なセットの特徴は、悪意のある挙動について監視される場合がある。同様に、低いバッテリ状態の間、モバイルデバイス102が広範なセットの特徴の監視を処理するのに十分な電力リソースを有していないとき、高い優先順位の特徴を含む狭いセットの特徴は、悪意のある挙動について監視される場合がある。
【0164】
ブロック812において、挙動分析器モジュール204は、現在の状態に関係するが、以前の状態に関係しない(すなわち、新しく関連する特徴)、状態固有特徴生成器314によって識別された特徴とともに、任意の特徴を簡潔な分類器モデルに追加することができる。簡潔な分類器モデルに追加された特徴および関連する増強決定株は、大きい分類器モデルから取得することができる。ブロック814において、挙動分析器モジュール204は、以前の状態に関係するが、現在の状態に関係しない(すなわち、もはや関係しない)任意の特徴および関連する増強決定株を、簡潔な分類器モデルから削除することができる。挙動観測器202は、ブロック410において、簡潔な分類器モデルによって示されたモバイルデバイスの特徴の挙動の監視/観測を継続することができる。このようにして、実体のある状態変化に関係する特徴および関連する増強決定株を追加および削除すると、上記で説明されたように、簡潔な分類器モデルを最新に保つことができる。
【0165】
図9は、モバイルデバイスのデバイス固有およびデバイス状態固有の特徴を考慮する簡潔な、または焦点を絞った分類器/挙動モデルを生成する一態様の方法900を示す。方法900は、モバイルデバイス内の処理コアによって実行することができる。
【0166】
方法900のブロック902において、処理コアは、有限状態機械、増強決定木、決定株のリスト、または複数のテスト条件を識別する他の同様の情報構造であるか、またはそれらを含む完全な分類器モデルを受信することができる。一態様では、完全な分類器モデルは、複数の増強決定株を表現するのに適した情報を含み、かつ/または複数の増強決定株へのモバイルデバイスによる変換に適した情報を含む、有限状態機械を含む。一態様では、有限状態機械は、増強決定株の順序を付けられた、または優先順位を付けられたリストであり得る(またはそれを含む場合がある)。増強決定株の各々は、テスト条件および重み値を含む場合がある。
【0167】
上記で説明されたように、増強決定株は、正確に1つのノード(およびしたがって1つのテスト問題またはテスト条件)、ならびに重み値を有する1つのレベルの決定木であり、したがってデータ/挙動の二項分類において使用するのに好適である。これは、増強決定株に特徴ベクトルまたは挙動ベクトルを適用すると、二項回答(たとえば、はいまたはいいえ)がもたらされることを意味する。たとえば、増強決定株によってテストされる問題/条件が「SMS送信の頻度が毎分xより小さいか」である場合、増強決定株に「3」の値を適用すると、(「3未満」のSMS送信の場合)「はい」の回答または(「3以上」のSMS送信の場合)「いいえ」の回答のいずれかがもたらされる。
【0168】
図9に戻ると、方法900のブロック904において、処理コアは、モバイルデバイスの処理、メモリ、またはエネルギーのリソースの量を過剰に消費することなく、悪性または良性のいずれかであるようにモバイルデバイスの挙動を正確に分類するために評価されるべきユニークなテスト条件の数を決定することができる。これは、モバイルデバイス内で利用可能な処理、メモリ、および/またはエネルギーのリソースの量を決定すること、条件をテストするために必要なモバイルデバイスの処理、メモリ、および/またはエネルギーのリソースの量を決定すること、条件をテストすることによってモバイルデバイス内で分析または評価されるべき挙動または条件に関連付けられた優先順位および/または複雑さを決定すること、ならびに、モバイルデバイスの利用可能な処理、メモリ、またはエネルギーのリソースの消費と、条件をテストすることから実現されるべき挙動分類の正確さと、条件によってテストされる挙動の重要性または優先順位との間のバランスまたはトレードオフを取るために、ユニークなテスト条件の数を選択/決定することを含む。
【0169】
ブロック906において、処理コアは、デバイス固有またはデバイス状態固有の情報を使用して、簡潔な分類器モデルに含まれるべきか、または簡潔な分類器モデルから除外されるべき特徴および/またはテスト条件を迅速に識別することができる。たとえば、処理コアは、モバイルデバイスの現在のハードウェアまたはソフトウェアの構成、動作状態などに起因して、モバイルデバイス内に存在することができない条件、特徴、または要因をテストするテスト条件を識別することができる。別の例として、処理コアは、完全なモデルに含まれる特徴/ノード/株、およびモバイルデバイス内に存在することができない、かつ/またはモバイルデバイスに関係しないテスト条件を識別し、簡潔な分類器モデルから除外することができる。
【0170】
一態様では、ブロック908において、処理コアは、増強決定株のリストを最初から検討して、決定された数のユニークなテスト条件を有する選択されたテスト条件のリストを生成し、ブロック906において識別されたテスト条件を除外することができる。たとえば、処理コアは、モバイルデバイスの現在のハードウェアまたはソフトウェアの構成に起因して、モバイルデバイス内に存在することができない条件をテストする、完全な分類器モデルに含まれる特徴を省略、無視、または削除することができる。一態様では、処理コアは、選択されたテスト条件の各々について絶対的または相対的な優先順位の値を決定し、選択されたテスト条件のリスト内のそれらの対応するテスト条件に関連する絶対的または相対的な優先順位の値を記憶することもできる。
【0171】
一態様では、ブロック908において、処理コアは、完全な分類器モデルの中の複数のテスト条件を順次検討し、テスト条件のリストが決定された数のユニークなテスト条件を含むまで、モバイルデバイスの挙動を分類することに関するテスト条件をテスト条件のリストに挿入することによって、テスト条件のリストを生成することができる。さらなる態様では、テスト条件のリストを生成することは、完全な分類器モデルの決定ノードを順次検討すること、モバイルデバイスの挙動を分類することに関係しないテスト条件に関連する決定ノードを無視すること、および、テスト条件のリストが決定された数のユニークなテスト条件を含むまで、無視されていない順次検討された各決定ノードに関連するテスト条件をテスト条件のリストに挿入することを含む場合がある。
【0172】
ブロック910において、処理コアは、生成されたテスト条件のリスト内で識別された、選択された(したがって、ブロック906において識別されたテスト条件を除外する)テスト条件のうちの1つをテストする、完全な分類器モデルに含まれるすべての増強決定株を含む簡潔な分類器モデルを生成することができる。一態様では、処理コアは、それらの重要性または優先順位の値の順に増強決定株を含めるかまたは表現するように、簡潔な分類器モデルを生成することができる。
【0173】
オプションのブロック912において、ユニークなテスト条件の数は、ブロック908内の多数のテスト条件について、増強決定株のリストを検討する動作を繰り返すこと、およびブロック910において別の簡潔な分類器モデルを生成することによって、別のよりロバストな(すなわち、より簡潔ではない)簡潔な分類器モデルを生成するために、増加する場合がある。これらの動作は、簡潔な分類器モデルのファミリを生成するために繰り返される場合がある。
【0174】
様々な態様は、様々なモバイルコンピューティングデバイスのいずれにも実装することができ、その一例が
図10に示される。モバイルコンピューティングデバイス1000は、タッチスクリーンコントローラ1004および内部メモリ1006に結合されたプロセッサ1002を含む場合がある。プロセッサ1002は、汎用または特定の処理タスクに指定された1つまたは複数のマルチコア集積回路であり得る。内部メモリ1006は、揮発性メモリまたは不揮発性メモリであり得るし、また、セキュアなメモリおよび/もしくは暗号化されたメモリ、またはセキュアでないメモリおよび/もしくは暗号化されていないメモリ、またはそれらの任意の組合せであり得る。タッチスクリーンコントローラ1004およびプロセッサ1002は、抵抗感知タッチスクリーン、容量感知タッチスクリーン、赤外線感知タッチスクリーンなどの、タッチスクリーンパネル1012に結合される場合もある。加えて、モバイルコンピューティングデバイス1000のディスプレイは、タッチスクリーン機能を有する必要はない。
【0175】
モバイルコンピューティングデバイス1000は、互いに結合され、かつ/またはプロセッサ1002に結合された、通信を送信および受信するための1つまたは複数の無線信号トランシーバ1008(たとえば、Peanut、Bluetooth(登録商標)、Zigbee(登録商標)、Wi-Fi、RF無線など)、およびアンテナ1010を有する場合がある。トランシーバ1008およびアンテナ1010は、様々なワイヤレス送信のプロトコルスタックおよびインターフェースを実装するために、上述の回路とともに使用される場合がある。モバイルコンピューティングデバイス1000は、セルラーネットワークを介する通信を可能にし、プロセッサに結合されたセルラーネットワークワイヤレスモデムチップ1016を含む場合がある。
【0176】
モバイルコンピューティングデバイス1000は、プロセッサ1002に結合された周辺デバイス接続インターフェース1018を含む場合がある。周辺デバイス接続インターフェース1018は、1つのタイプの接続を受け入れるように単独で構成される場合があるか、または、USB、FireWire、Thunderbolt、もしくはPCIeなどの様々なタイプの物理接続および通信接続を共通もしくはプロプライエタリに受け入れるように、構成される場合がある。周辺デバイス接続インターフェース1018は、単独で構成された周辺デバイス接続ポート(図示せず)に結合される場合もある。
【0177】
モバイルコンピューティングデバイス1000は、オーディオ出力を提供するためのスピーカ1014を含む場合もある。モバイルコンピューティングデバイス1000は、本明細書で説明された構成要素のすべてまたはいくつかを収容するための、プラスチック、金属、または材料の組合せから構築された筐体1020を含む場合もある。モバイルコンピューティングデバイス1000は、使い捨てまたは充電可能なバッテリなどの、プロセッサ1002に結合された電源1022を含む場合もある。充電可能なバッテリは、モバイルコンピューティングデバイス1000の外部にある電源から充電電流を受けるために、周辺デバイス接続ポートに結合される場合もある。モバイルコンピューティングデバイス1000は、ユーザ入力を受け取るための物理ボタン1024を含む場合もある。モバイルコンピューティングデバイス1000は、モバイルコンピューティングデバイス1000をオンオフするための電源ボタン1026を含む場合もある。
【0178】
上述された様々な態様はまた、
図11に示されたラップトップコンピュータ1100などの様々なモバイルコンピューティングデバイス内に実装される場合がある。多くのラップトップコンピュータは、コンピュータのポインティングデバイスとして働くタッチパッドのタッチ面1117を含み、したがって、タッチスクリーンディスプレイを装備した上述のモバイルコンピューティングデバイス上で実施されるものと同様のドラッグジェスチャ、スクロールジェスチャ、およびフリックジェスチャを受信することができる。ラップトップコンピュータ1100は、通常、揮発性メモリ1112、およびフラッシュメモリのディスクドライブ1113などの大容量不揮発性メモリに結合されたプロセッサ1111を含む。加えて、コンピュータ1100は、プロセッサ1111に結合されたワイヤレスデータリンクおよび/または携帯電話トランシーバ1116に接続され得る、電磁放射を送受信するための1つまたは複数のアンテナ1108を有する場合がある。コンピュータ1100は、プロセッサ1111に結合されたフロッピー(登録商標)ディスクドライブ1114およびコンパクトディスク(CD)ドライブ1115を含む場合もある。ノートブック構成では、コンピュータの筐体は、すべてがプロセッサ1111に結合された、タッチパッド1117、キーボード1118、およびディスプレイ1119を含む。コンピューティングデバイスの他の構成には、よく知られているように、(たとえば、USB入力を介して)プロセッサに結合されたコンピュータマウスまたはトラックボールが含まれ得るし、それらは様々な対応と連携して使用される場合もある。
【0179】
様々な態様の動作を遂行するためにプログラマブルプロセッサ上で実行するためのコンピュータプログラムコードすなわち「プログラムコード」は、C、C++、C#、Smalltalk、Java(登録商標)、JavaScript(登録商標)、Visual Basic、Structured Query Language(たとえば、Transact-SQL)、Perlなどの高水準プログラミング言語で、または様々な他のプログラミング言語で記述される場合がある。本出願で使用されるように、コンピュータ可読記憶媒体に記憶されるプログラムコードまたはプログラムは、そのフォーマットがプロセッサによって理解可能である(オブジェクトコードなどの)機械語コードを指す場合がある。
【0180】
多くのモバイルコンピューティングデバイスのオペレーティングシステムのカーネルは、(非特権コードが動作する場合)ユーザ空間内に編成され、(特権コードが動作する場合)カーネル空間内に編成される。この分離は、カーネル空間の一部であるコードがGPL認可される必要がある一方で、ユーザ空間内で動作するコードがGPL認可されなくてもよい、Androidおよび他の一般公有使用許諾(GPL)環境において特に重要である。本明細書で説明された様々なソフトウェア構成要素/モジュールは、明示的に別段の記述がない限り、カーネル空間またはユーザ空間のいずれかに実装され得ることを理解されたい。
【0181】
上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供されたものであり、様々な態様のステップが提示された順序で実行されなければならないことを要求または意味するものではない。当業者によって諒解されるように、上記の態様におけるステップの順序は、いかなる順序でも実行することができる。「その後」、「次いで」、「次に」などの単語は、ステップの順序を限定するものではなく、これらの単語は、単に、方法の説明を通して読者を案内するために使用される。さらに、たとえば、冠詞「a」、「an」、または「the」を使用する単数形での請求要素への任意の言及は、その要素を単数に限定するものとして解釈されるべきではない。
【0182】
本出願で使用されるように、「構成要素」、「モジュール」、「システム」、「エンジン」、「生成器」、「マネージャ」などの用語は、限定はしないが、特定の動作または機能を実行するように構成された、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなどのコンピュータ関連のエンティティを含むものとする。たとえば、構成要素は、プロセッサ上で動作しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得るが、それらに限定されない。実例として、コンピューティングデバイス上で動作しているアプリケーションとコンピューティングデバイスの両方は、構成要素と呼ばれる場合がある。1つまたは複数の構成要素は、プロセスおよび/または実行スレッドの中に存在する場合があり、1つの構成要素は、1つのプロセッサもしくはコアに局在する場合があり、かつ/または2つ以上のプロセッサもしくはコアの間に分散する場合がある。加えて、これらの構成要素は、様々な命令および/またはデータ構造を記憶している様々な非一時的コンピュータ可読媒体から実行することができる。構成要素は、ローカルプロセスおよび/またはリモートプロセス、関数呼出しまたはプロシージャ呼出し、電子信号、データパケット、メモリ読出し/書込み、ならびに他の知られているネットワーク、コンピュータ、プロセッサ、および/またはプロセス関連の通信方法によって通信することができる。
【0183】
本明細書で開示された態様に関して記載された、様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装される場合がある。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能に関して上述された。そのような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、記載された機能を具体的な適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【0184】
本明細書で開示された態様に関して記載された、様々な例示的な論理、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別のハードウェア構成要素、または、本明細書に記載された機能を実行するように設計されたそれらの任意の組合せで、実装または実行される場合がある。汎用プロセッサはマルチプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサは、コンピューティングデバイスの組合せ、たとえば、DSPとマルチプロセッサとの組合せ、複数のマルチプロセッサ、DSPコアと連携する1つもしくは複数のマルチプロセッサ、または任意の他のそのような構成として実装される場合もある。代替として、いくつかのステップまたは方法は、所与の機能に特有の回路によって実行される場合がある。
【0185】
1つまたは複数の態様に記載された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せに実装される場合がある。ソフトウェアに実装される場合、機能は、非一時的コンピュータ可読媒体または非一時的プロセッサ可読媒体に、1つまたは複数の命令またはコードとして記憶される場合がある。本明細書で開示された方法またはアルゴリズムのステップは、非一時的コンピュータ可読記憶媒体またはプロセッサ可読記憶媒体上に存在する場合がある、プロセッサ実行可能ソフトウェアモジュールで具現化される場合がある。非一時的コンピュータ可読記憶媒体またはプロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスすることができる、任意の記憶媒体であり得る。限定ではなく例として、そのような非一時的コンピュータ可読媒体またはプロセッサ可読媒体には、RAM、ROM、EEPROM、フラッシュメモリ、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを記憶するために使用され得るし、コンピュータによってアクセスされ得る任意の他の媒体が含まれ得る。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生するが、ディスク(disc)は、レーザーで光学的にデータを再生する。上記の組合せも、非一時的コンピュータ可読媒体およびプロセッサ可読媒体の範囲内に含まれる。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれる場合がある、非一時的プロセッサ可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の1つまたは任意の組合せまたはセットとして存在することができる。
【0186】
開示された態様の上記の説明は、任意の当業者が本発明を製作または使用することが可能になるように提供される。これらの態様への様々な修正が当業者には容易に明らかであり、本明細書で定義された一般的な原理は、本発明の趣旨または範囲を逸脱することなく、他の態様に適用することができる。したがって、本発明は、本明細書で示された態様に限定されるものではなく、以下の特許請求の範囲、ならびに本明細書で開示された原理および新規の特徴に合致する、最も広い範囲を与えられるべきである。