(57)【要約】  方法、および方法を実施するコンピューティングデバイスは、ソフトウェアアプリケーションが望ましくない挙動または性能を劣化させる挙動を引き起こしているかどうかを予測するように構成される、網羅的な挙動監視および分析システムの効率性と性能とを向上させる。挙動監視および分析システムは、あるソフトウェアアプリケーションの活動を特徴付ける挙動ベクトルを生成し、そのソフトウェアアプリケーションを信頼できるソフトウェアアプリケーションとして特定する際立った挙動または挙動の手がかりを生成された挙動ベクトルが含むかどうかを判定し、そのソフトウェアアプリケーションを信頼できるソフトウェアアプリケーションとして特定する際立った挙動を生成された挙動ベクトルが含むと判定したことに応答して、そのソフトウェアアプリケーションを良性であるものとして分類することによって、そのソフトウェアアプリケーションを良性であるものとして迅速かつ効率的に分類するように構成され得る。
2017504102.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスのプロセッサにおいて動作するソフトウェアアプリケーションを分析する方法であって、
前記コンピューティングデバイスのメモリに記憶されている活動のログから挙動情報を収集することによって、前記ソフトウェアアプリケーションの活動を前記プロセッサにおいて監視するステップと、
前記収集された挙動情報に基づいて、前記ソフトウェアアプリケーションの前記監視された活動を特徴付ける挙動ベクトルを生成するステップと、
既知のベンダーからのものとして前記ソフトウェアアプリケーションを特定する際立った挙動を前記生成された挙動ベクトルが含むかどうかを判定するステップとを備える、方法。
【請求項２】
前記生成された挙動ベクトルが前記際立った挙動を含むかどうかを判定するステップが、前記ソフトウェアアプリケーションによる予期されないデバイスの特徴の使用を特定する情報を前記生成された挙動ベクトルが含むかどうかを判定するステップを備える、請求項1に記載の方法。
【請求項３】
前記生成された挙動ベクトルが前記際立った挙動を含むかどうかを判定するステップが、前記ソフトウェアアプリケーションによるデバイスの特徴の異常な使用を特定する情報を前記生成された挙動ベクトルが含むかどうかを判定するステップを備える、請求項1に記載の方法。
【請求項４】
前記生成された挙動ベクトルが前記際立った挙動を含むと判定したことに応答して、前記ソフトウェアアプリケーションを良性であるものとして分類することによって、前記ソフトウェアアプリケーションを認証するステップをさらに備える、請求項1に記載の方法。
【請求項５】
前記生成された挙動ベクトルが前記際立った挙動を含まないと判定したことに応答して、前記生成された挙動ベクトルを専心的な分類器モデルに適用して、前記ソフトウェアアプリケーションが非良性であるかどうかを判定することによって、深い挙動分析動作を実行するステップと、
前記生成された挙動ベクトルが前記際立った挙動を含まないと判定したことに応答して、前記生成された挙動ベクトルを分類器モデルに適用して、前記ソフトウェアアプリケーションが非良性であるかどうかを判定するステップとをさらに備える、請求項1に記載の方法。
【請求項６】
複数の試験条件を含む完全な分類器モデルを受信するステップと、
前記ソフトウェアアプリケーションによって使用されるデバイスの特徴を特定するステップと、
前記特定されたデバイスの特徴を評価する、前記複数の試験条件の中の試験条件を特定するステップと、
前記特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するステップとをさらに備え、
前記生成された挙動ベクトルを前記分類器モデルに適用して前記ソフトウェアアプリケーションが非良性であるかどうかを判定するステップが、前記生成された挙動ベクトルを前記生成されたアプリケーションベースの分類器モデルに適用するステップを備える、請求項5に記載の方法。
【請求項７】
前記収集された挙動情報に基づいて前記挙動ベクトルを生成するステップが、前記収集された挙動情報を使用して特徴ベクトルを生成するステップを備え、
前記生成された挙動ベクトルを前記生成されたアプリケーションベースの分類器モデルに適用するステップが、
前記アプリケーションベースの分類器モデルに含まれる各試験条件を評価するために、前記生成された挙動ベクトルを前記アプリケーションベースの分類器モデルに適用するステップと、
前記アプリケーションベースの分類器モデルの中の試験条件を評価した各結果の加重平均を計算するステップと、
前記加重平均に基づいて、前記挙動が非良性であるかどうかを判定するステップと
を備える、請求項6に記載の方法。
【請求項８】
前記複数の試験条件を含む前記完全な分類器モデルを受信するステップが、前記複数の試験条件の1つを各々評価する複数の決定ノードへの変換に適した情報を含む、有限状態機械を受信するステップを備え、
前記特定された試験条件を優先順位付ける前記アプリケーションベースの分類器モデルを生成するステップが、
前記ソフトウェアアプリケーションに関連があるデバイスの特徴、および
前記ソフトウェアアプリケーションのアプリケーション種類に関連があるデバイスの特徴
のうちの1つを評価する決定ノードを含むように、前記アプリケーションベースの分類器モデルを生成するステップを備える、請求項6に記載の方法。
【請求項９】
メモリと、
前記メモリに結合されたプロセッサとを備え、前記プロセッサが、
前記メモリに記憶されている活動のログから挙動情報を収集することによって、ソフトウェアアプリケーションの活動を監視するステップと、
前記収集された挙動情報に基づいて、前記ソフトウェアアプリケーションの前記監視された活動を特徴付ける挙動ベクトルを生成するステップと、
既知のベンダーからのものとして前記ソフトウェアアプリケーションを特定する際立った挙動を前記生成された挙動ベクトルが含むかどうかを判定するステップと
を備える動作を実行するように、プロセッサ実行可能命令によって構成される、コンピューティングデバイス。
【請求項１０】
前記生成された挙動ベクトルが前記際立った挙動を含むかどうかを判定するステップが、前記ソフトウェアアプリケーションによる予期されないデバイスの特徴の使用を特定する情報を前記生成された挙動ベクトルが含むかどうかを判定するステップを備えるように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
【請求項１１】
前記生成された挙動ベクトルが前記際立った挙動を含むかどうかを判定するステップが、前記ソフトウェアアプリケーションによるデバイスの特徴の異常な使用を特定する情報を前記生成された挙動ベクトルが含むかどうかを判定するステップを備えるように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
【請求項１２】
前記プロセッサが、
前記生成された挙動ベクトルが前記際立った挙動を含むと判定したことに応答して、前記ソフトウェアアプリケーションを良性であるものとして分類することによって、前記ソフトウェアアプリケーションを認証するステップをさらに備える動作を実行するように、プロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
【請求項１３】
前記プロセッサが、
前記生成された挙動ベクトルが前記際立った挙動を含まないと判定したことに応答して、前記生成された挙動ベクトルを専心的な分類器モデルに適用して、前記ソフトウェアアプリケーションが非良性であるかどうかを判定することによって、深い挙動分析動作を実行するステップと、
前記生成された挙動ベクトルが前記際立った挙動を含まないと判定したことに応答して、前記生成された挙動ベクトルを分類器モデルに適用して、前記ソフトウェアアプリケーションが非良性であるかどうかを判定するステップとをさらに備える動作を実行するように、プロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
【請求項１４】
前記プロセッサが、
複数の試験条件を含む完全な分類器モデルを受信するステップと、
前記ソフトウェアアプリケーションによって使用されるデバイスの特徴を特定するステップと、
前記特定されたデバイスの特徴を評価する、前記複数の試験条件の中の試験条件を特定するステップと、
前記特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するステップとをさらに備える動作を実行するように、プロセッサ実行可能命令によって構成され、
前記生成された挙動ベクトルを前記分類器モデルに適用して前記ソフトウェアアプリケーションが非良性であるかどうかを判定するステップが、前記生成された挙動ベクトルを前記生成されたアプリケーションベースの分類器モデルに適用するステップを備える、請求項13に記載のコンピューティングデバイス。
【請求項１５】
前記収集された挙動情報に基づいて前記挙動ベクトルを生成するステップが、前記収集された挙動情報を使用して特徴ベクトルを生成するステップを備え、
前記生成された挙動ベクトルを前記生成されたアプリケーションベースの分類器モデルに適用するステップが、
前記アプリケーションベースの分類器モデルに含まれる各試験条件を評価するために、前記生成された挙動ベクトルを前記アプリケーションベースの分類器モデルに適用するステップと、
前記アプリケーションベースの分類器モデルの中の試験条件を評価した各結果の加重平均を計算するステップと、
前記加重平均に基づいて、前記挙動が非良性であるかどうかを判定するステップと
を備えるように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項14に記載のコンピューティングデバイス。
【請求項１６】
前記複数の試験条件を含む前記完全な分類器モデルを受信するステップが、前記複数の試験条件の1つを各々評価する複数の決定ノードへの変換に適した情報を含む、有限状態機械を受信するステップを備え、
前記特定された試験条件を優先順位付ける前記アプリケーションベースの分類器モデルを生成するステップが、
前記ソフトウェアアプリケーションに関連があるデバイスの特徴、および
前記ソフトウェアアプリケーションのアプリケーション種類に関連があるデバイスの特徴
のうちの1つを評価する決定ノードを含むように、前記アプリケーションベースの分類器モデルを生成するステップを備えるように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項14に記載のコンピューティングデバイス。
【請求項１７】
コンピューティングデバイスのプロセッサに、前記プロセッサにおいて動作するソフトウェアアプリケーションを分析するための動作を実行させるように構成されるプロセッサ実行可能ソフトウェア命令を記憶した、非一時的コンピュータ可読記憶媒体であって、前記動作が、
前記コンピューティングデバイスのメモリに記憶されている活動のログから挙動情報を収集することによって、前記ソフトウェアアプリケーションの活動を監視するステップと、
前記収集された挙動情報に基づいて、前記ソフトウェアアプリケーションの前記監視された活動を特徴付ける挙動ベクトルを生成するステップと、
既知のベンダーからのものとして前記ソフトウェアアプリケーションを特定する際立った挙動を前記生成された挙動ベクトルが含むかどうかを判定するステップとを備える、非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、前記生成された挙動ベクトルが前記際立った挙動を含むかどうかを判定するステップが、前記ソフトウェアアプリケーションによる予期されないデバイスの特徴の使用を特定する情報を前記生成された挙動ベクトルが含むかどうかを判定するステップを備えるように、プロセッサに動作を実行させるように構成される、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、前記生成された挙動ベクトルが前記際立った挙動を含むかどうかを判定するステップが、前記ソフトウェアアプリケーションによるデバイスの特徴の異常な使用を特定する情報を前記生成された挙動ベクトルが含むかどうかを判定するステップを備えるように、プロセッサに動作を実行させるように構成される、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、
前記生成された挙動ベクトルが前記際立った挙動を含むと判定したことに応答して、前記ソフトウェアアプリケーションを良性であるものとして分類することによって、前記ソフトウェアアプリケーションを認証するステップを備える動作をプロセッサに実行させるように構成される、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項２１】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、
前記生成された挙動ベクトルが前記際立った挙動を含まないと判定したことに応答して、前記生成された挙動ベクトルを専心的な分類器モデルに適用して、前記ソフトウェアアプリケーションが非良性であるかどうかを判定することによって、深い挙動分析動作を実行するステップと、
前記生成された挙動ベクトルが前記際立った挙動を含まないと判定したことに応答して、前記生成された挙動ベクトルを分類器モデルに適用して、前記ソフトウェアアプリケーションが非良性であるかどうかを判定するステップとを備える動作をプロセッサに実行させるように構成される、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項２２】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、
複数の試験条件を含む完全な分類器モデルを受信するステップと、
前記ソフトウェアアプリケーションによって使用されるデバイスの特徴を特定するステップと、
前記特定されたデバイスの特徴を評価する、前記複数の試験条件の中の試験条件を特定するステップと、
前記特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するステップとを備える動作をプロセッサに実行させるように構成され、
前記生成された挙動ベクトルを前記分類器モデルに適用して前記ソフトウェアアプリケーションが非良性であるかどうかを判定するステップが、前記生成された挙動ベクトルを前記生成されたアプリケーションベースの分類器モデルに適用するステップを備える、請求項21に記載の非一時的コンピュータ可読記憶媒体。
【請求項２３】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、
前記収集された挙動情報に基づいて前記挙動ベクトルを生成するステップが、前記収集された挙動情報を使用して特徴ベクトルを生成するステップを備え、
前記生成された挙動ベクトルを前記生成されたアプリケーションベースの分類器モデルに適用するステップが、
前記アプリケーションベースの分類器モデルに含まれる各試験条件を評価するために、前記生成された挙動ベクトルを前記アプリケーションベースの分類器モデルに適用するステップと、
前記アプリケーションベースの分類器モデルの中の試験条件を評価した各結果の加重平均を計算するステップと、
前記加重平均に基づいて、前記挙動が非良性であるかどうかを判定するステップと
を備えるように、動作をプロセッサに実行させるように構成される、請求項22に記載の非一時的コンピュータ可読記憶媒体。
【請求項２４】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、
前記複数の試験条件を含む前記完全な分類器モデルを受信するステップが、前記複数の試験条件の1つを各々評価する複数の決定ノードへの変換に適した情報を含む、有限状態機械を受信するステップを備え、
前記特定された試験条件を優先順位付ける前記アプリケーションベースの分類器モデルを生成するステップが、
前記ソフトウェアアプリケーションに関連があるデバイスの特徴、および
前記ソフトウェアアプリケーションのアプリケーション種類に関連があるデバイスの特徴
のうちの1つを評価する決定ノードを含むように、前記アプリケーションベースの分類器モデルを生成するステップを備えるように、動作をプロセッサに実行させるように構成される、請求項22に記載の非一時的コンピュータ可読記憶媒体。
【請求項２５】
コンピューティングデバイスであって、
前記コンピューティングデバイスのメモリに記憶されている活動のログから挙動情報を収集することによって、ソフトウェアアプリケーションの活動を監視するための手段と、
前記収集された挙動情報に基づいて、前記ソフトウェアアプリケーションの前記監視された活動を特徴付ける挙動ベクトルを生成するための手段と、
既知のベンダーからのものとして前記ソフトウェアアプリケーションを特定する際立った挙動を前記生成された挙動ベクトルが含むかどうかを判定するための手段とを備える、コンピューティングデバイス。
【請求項２６】
前記生成された挙動ベクトルが前記際立った挙動を含むかどうかを判定するための手段が、前記ソフトウェアアプリケーションによる予期されないデバイスの特徴の使用を特定する情報を前記生成された挙動ベクトルが含むかどうかを判定するための手段を備える、請求項25に記載のコンピューティングデバイス。
【請求項２７】
前記生成された挙動ベクトルが前記際立った挙動を含むかどうかを判定するための手段が、前記ソフトウェアアプリケーションによるデバイスの特徴の異常な使用を特定する情報を前記生成された挙動ベクトルが含むかどうかを判定するための手段を備える、請求項25に記載のコンピューティングデバイス。
【請求項２８】
前記生成された挙動ベクトルが前記際立った挙動を含むと判定したことに応答して、前記ソフトウェアアプリケーションを良性であるものとして分類することによって、前記ソフトウェアアプリケーションを認証するための手段をさらに備える、請求項25に記載のコンピューティングデバイス。
【請求項２９】
前記生成された挙動ベクトルが前記際立った挙動を含まないと判定したことに応答して、前記生成された挙動ベクトルを専心的な分類器モデルに適用して、前記ソフトウェアアプリケーションが非良性であるかどうかを判定することによって、深い挙動分析動作を実行するための手段と、
前記生成された挙動ベクトルが前記際立った挙動を含まないと判定したことに応答して、前記生成された挙動ベクトルを分類器モデルに適用して、前記ソフトウェアアプリケーションが非良性であるかどうかを判定するための手段とをさらに備える、請求項25に記載のコンピューティングデバイス。
【請求項３０】
複数の試験条件を含む完全な分類器モデルを受信するための手段と、
前記ソフトウェアアプリケーションによって使用されるデバイスの特徴を特定するための手段と、
前記特定されたデバイスの特徴を評価する、前記複数の試験条件の中の試験条件を特定するための手段と、
前記特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するための手段とをさらに備え、
前記生成された挙動ベクトルを前記分類器モデルに適用して前記ソフトウェアアプリケーションが非良性であるかどうかを判定するための手段が、前記生成された挙動ベクトルを前記生成されたアプリケーションベースの分類器モデルに適用するための手段を備える、請求項29に記載のコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、すべての目的でその内容全体が参照によって本明細書に組み込まれる、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つを各々評価する複数の決定ノードへの変換に適した情報を含む有限状態機械を受信するステップを含んでよく、特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するステップは、ソフトウェアアプリケーションに関連があるデバイスの特徴および/またはソフトウェアアプリケーションのアプリケーション種類に関連がある(すなわち、ソフトウェアの種類に関連がある)デバイスの特徴を評価する決定ノードを含むようにアプリケーションベースの分類器モデルを生成するステップを含んでよい。
【００１０】
さらなる態様は、メモリとメモリに結合されるプロセッサとを有し、上で説明された態様の方法の動作を実行するようにプロセッサがプロセッサ実行可能命令によって構成される、コンピューティングデバイスを含む。さらなる態様は、上で説明された態様の方法の動作をコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を記憶している、非一時的コンピュータ可読記憶媒体を含む。さらなる態様は、上で説明された態様の方法の機能を実行するための様々な手段を有するコンピューティングデバイスを含み得る。
【００１１】
本明細書に組み込まれ、本明細書の一部を構成している添付の図面は、本発明の例示的な態様を示すものであり、上で与えられた全般的な説明、および下で与えられる詳細な説明とともに、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【００１２】
【図１】様々な態様とともに使用するのに適した、例示的な遠隔通信システムのネットワークコンポーネントを示す通信システムブロック図である。
【図２】特定のデバイスの挙動が性能を劣化させるか、または良性であるかを判定するように構成される、ある態様のコンピューティングデバイスにおける例示的な論理コンポーネントおよび情報フローを示すブロック図である。
【図３】特定のデバイスの挙動が性能を劣化させるか、または良性であるかを判定するようにコンピューティングデバイスとともに働くように構成される、ネットワークサーバを含むある態様のシステム中の例示的なコンポーネントおよび情報フローを示すブロック図である。
【図４】データ、挙動ベクトル、または分類器モデルを再訓練することなくアプリケーションベースの分類器モデルを生成するように構成されるコンピューティングデバイスを含む、ある態様のシステム中の例示的なコンポーネントおよび情報フローを示すブロック図である。
【図５Ａ】複数のソフトウェアアプリケーションにマッピングされる例示的な分類器モデルの図である。
【図５Ｂ】コンピューティングデバイスにおいてローカルにアプリケーションベースの分類器モデルを生成するある態様の方法を示すプロセスフロー図である。
【図６Ａ】ある態様による、ソフトウェアアプリケーションの挙動を分析する方法を示すプロセスフロー図である。
【図６Ｂ】ある態様による、ソフトウェアアプリケーションを認証する方法を示すプロセスフロー図である。
【図６Ｃ】ある態様による、アプリケーションベースの分類器モデルを生成し使用してソフトウェアアプリケーションが非良性かどうかを判定する方法を示すプロセスフロー図である。
【図７】ある態様による、コンピューティングデバイスにおいてローカルに簡潔な分類器モデルを生成する方法を示すプロセスフロー図である。
【図８】簡潔な分類器モデルを生成するためにある態様のサーバプロセッサによって生成され、コンピューティングデバイスのプロセッサによって使用され得る例示的なブーストされた決定株の図である。
【図９】ある態様による、動的かつ適応的な観測を実行するように構成される観測器モジュール中の例示的な論理コンポーネントおよび情報フローを示すブロック図である。
【図１０】別の態様による、観測器デーモンを実装するコンピューティングシステム中の論理コンポーネントおよび情報フローを示すブロック図である。
【図１１】モバイルデバイス上で適応的な観測を実行するためのある態様の方法を示すプロセスフロー図である。
【図１２】ある態様において使用するのに適したモバイルデバイスのコンポーネントブロック図である。
【図１３】ある態様において使用するのに適したサーバデバイスのコンポーネントブロック図である。
【発明を実施するための形態】
【００１３】
様々な態様が、添付の図面を参照して詳細に説明される。可能である場合、同じまたは同様の部分を参照するために図面全体を通じて同じ参照番号が使用される。特定の例および実装形態へと行われる言及は、説明を目的とし、本発明の範囲または特許請求の範囲を限定するものではない。
【００１４】
概して、様々な態様は、いくつかの重大なソフトウェアアプリケーションの開発者が、それらのアプリケーションを他の同様のアプリケーションと区別する特別な動作を実行するためのアプリケーションを作ることを可能にする。コンピューティングデバイスの挙動監視および分析システムは、ソフトウェアアプリケーションの挙動を監視して、これらの特別な動作を検出し、面倒なまたは詳細な監視または分析の動作を実行することなく、特別な動作を実行するアプリケーションを信頼できるまたは良性であるものとして迅速に分類するように構成され得る。
【００１５】
挙動の手がかりと同様である際立った挙動を認識して、いくつかのソフトウェアアプリケーションを(たとえば、信頼できる、良性である、重要であるなどとして)迅速に分類することによって、様々な態様は、挙動監視および分析システムが、最も重要なソフトウェアアプリケーションに対して動作を専念させ、かつ/または信頼できるベンダーからのアプリケーションの分析を控えることを可能にする。これは、挙動監視および分析システムの動作の複雑さを下げ、コンピューティングデバイスの性能および電力消費特性を改善する。
【００１６】
「例示的」という言葉は、「例、事例、または例示として役立つ」ことを意味するように本明細書において使用される。「例示的」として本明細書で説明されるいずれの実装形態も、必ずしも他の実装形態よりも好ましいか、または有利であると解釈されるべきではない。
【００１７】
「性能劣化」という用語は、本明細書では、より長い処理時間、より遅いリアルタイム応答性、より短いバッテリー持続時間、個人データの損失、悪意のある経済活動(たとえば、無許可のプレミアムSMSメッセージを送信すること)、サービス拒否(DoS)、不適切に書かれたまたは設計されたソフトウェアアプリケーション、悪意のあるソフトウェア、マルウェア、ウイルス、断片化されたメモリ、スパイまたはボットネット活動のためにモバイルデバイスを乗っ取ることまたは電話を利用することに関する動作などのような、コンピューティングデバイスの多種多様な望ましくない動作および特性を指すために使用される。また、これらの理由のいずれかで性能を劣化させる挙動、活動、および条件は、本明細書では「良性ではない」または「非良性である」ものとして呼ばれる。
【００１８】
「モバイルコンピューティングデバイス」および「モバイルデバイス」という用語は、携帯電話、スマートフォン、パーソナルまたはモバイルのマルチメディアプレーヤ、携帯情報端末(PDA)、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、ウルトラブック、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応携帯電話、ワイヤレスゲームコントローラ、および、性能が重要であるメモリとプログラマブルプロセッサとを含み電力節減の方法が有益であるようなバッテリー電源で動作する同様のパーソナル電子デバイスの、任意の1つまたはすべてを指すように、本明細書では互換的に使用される。様々な態様は、限られたリソースを有しバッテリーで動作する、スマートフォンなどのモバイルコンピューティングデバイスに対して特に有用であるが、これらの態様は一般に、プロセッサを含みアプリケーションプログラムを実行する、任意の電子コンピューティングデバイスにおいて有用である。
【００１９】
現代のコンピューティングデバイスは、高度に構成可能かつ複雑なシステムである。したがって、特定のデバイスの挙動が良性かまたは良性ではない(たとえば、悪性または性能を劣化させる)かを判定するために最も重要である特徴は、各コンピューティングデバイスにおいて異なり得る。さらに、特徴の異なる組合せは、特定の挙動が良性かまたは非良性かをそのデバイスが迅速かつ効率的に判定するために、各コンピューティングデバイスにおける監視および/または分析を必要とすることがある。しかし、監視および分析を必要とする特徴の厳密な組合せ、および各特徴または特徴の組合せの相対的な優先順位または重要性は、しばしば、挙動が監視または分析されるべき特定のデバイスから取得された、アプリケーション固有の、および/またはデバイス固有の情報を使用することでのみ、決定され得る。上記のおよび他の理由で、挙動モデルが使用される特定のデバイス以外の任意のコンピューティングデバイスにおいて生成された挙動モデルは、そのコンピューティングデバイスにおけるソフトウェアアプリケーションまたは挙動を分類することに対して最も重要である、特徴の厳密な組合せを特定する情報を含み得ない。
【００２０】
加えて、多くの現代のコンピューティングは、比較的限られた処理、メモリ、およびエネルギーのリソースを有する、リソースが制約されたシステムである。たとえば、モバイルデバイスは、性能および電力利用レベルの経時的な劣化に寄与し得る多くの特徴または要因を含む、複雑かつリソースが制約されたコンピューティングデバイスである。性能劣化に寄与し得る要因の例は、設計が不十分なソフトウェアアプリケーション、マルウェア、ウイルス、断片化されたメモリ、およびバックグラウンドプロセスを含む。これらの要因の数、多様性、および複雑さに起因して、これらの複雑でありながらリソースが制約されたシステムの性能および/または電力利用レベルを劣化させ得る、様々なコンポーネント、挙動、プロセス、動作、条件、状態、または特徴(またはそれらの組合せ)のすべてを評価することは、実現可能ではないことが多い。したがって、ユーザ、オペレーティングシステム、またはアプリケーションプログラム(たとえば、アンチウイルスソフトウェアなど)が、そのような問題の根源を正確かつ効率的に特定することは困難である。結果として、モバイルデバイスのユーザは現在、モバイルデバイスの性能および電力利用レベルの経時的な劣化を防止するための、または経年劣化したモバイルデバイスをその元の性能および電力利用レベルに回復させるための措置をほとんど有していない。
【００２１】
既存の解決法の制約を克服するために、様々な態様は、非良性のソフトウェアアプリケーション(たとえば、悪性のアプリケーション、不適切に書かれたアプリケーション、デバイスと互換性のないアプリケーションなど)を迅速かつ効率的に特定し、そのようなアプリケーションがコンピューティングデバイスの性能、電力利用レベル、ネットワーク使用レベル、セキュリティ、および/またはプライバシーを経時的に劣化させるのを防止するように構成される、挙動監視および分析システムを備えたコンピューティングデバイスを含む。挙動監視および分析システムは、コンピューティングデバイスの応答性、性能、または電力消費特性に、重大な、負の、またはユーザが知覚できる影響を与えることなく、特定された問題を特定し、防止し、修正するように構成され得る。
【００２２】
様々な態様では、挙動監視および分析システムは、観測器プロセス、デーモン、モジュール、またはサブシステム(本明細書では「モジュール」と集合的に呼ばれる)と、分析器モジュールとを含み得る。観測器モジュールは、コンピューティングデバイスシステムの様々なレベルにおいて、様々なアプリケーションプログラミングインターフェース(API)、レジスタ、カウンタ、または他のコンポーネント(本明細書では集合的に「取り付けられたコンポーネント」)を、取り付けまたは協調させ、取り付けられたコンポーネントから挙動情報を収集し、収集された挙動情報を(たとえば、メモリ書込み動作、関数呼出しなどを介して)分析器モジュールに通信するように構成され得る。分析器モジュールは、収集された挙動情報を受信し使用して挙動ベクトルを生成し、リアルタイムの挙動分析動作を実行して、ソフトウェアアプリケーションまたはデバイスの挙動が良性であるかまたは良性ではない(たとえば、悪性である、性能を劣化させるなど)かを判定することができる。
【００２３】
分析器モジュールは、各挙動ベクトルが、コンピューティングデバイスの特定のソフトウェアアプリケーション、モジュール、コンポーネント、タスク、またはプロセスと関連付けられる、観測された挙動の多くまたはすべてを表しまたは特徴付けるように、挙動ベクトルを生成するように構成され得る。各挙動ベクトルは、1つまたは複数の「挙動の特徴」をカプセル化することができる。各挙動の特徴は、観測された挙動のすべてまたは一部分を表す無名数であり得る。加えて、各挙動の特徴は、可能な値の範囲、それらの値に対して実行され得る動作、値の意味などを特定する、データタイプと関連付けられ得る。データタイプは、特徴(または特徴値)がどのように測定され、分析され、重み付けられ、または使用されるべきかを決定するために、コンピューティングデバイスによって使用され得る。
【００２４】
分析器モジュールは、生成された挙動ベクトルを分析器モデルに適用することによって、ソフトウェアアプリケーションまたはデバイスの挙動が非良性であるかどうかを判定するように構成され得る。分類器モデルは、デバイスの挙動の特定の特徴または態様を評価するために、コンピューティングデバイスによって使用され得る、データおよび/または情報構造(たとえば、特徴ベクトル、挙動ベクトル、コンポーネントリストなど)を含む挙動モデルであり得る。分類器モデルはまた、コンピューティングデバイスにおけるいくつかの特徴、要因、データポイント、エントリ、API、状態、条件、挙動、ソフトウェアアプリケーション、プロセス、動作、コンポーネントなど(本明細書では集合的に「特徴」)を監視するための決定基準を含み得る。
【００２５】
完全な分類器モデルは、数千の特徴および数十億のエントリを含み得る大きな訓練データセットの関数として生成されるロバストなデータモデルであり得る。簡潔な分類器モデルは、特定のモバイルデバイスの挙動が良性ではないかを判定することに最も関連がある特徴/エントリに対する試験を含みまたは優先順位付ける、縮小されたデータセットから生成された、より専心的なデータモデルであり得る。ローカルに生成される簡潔な分類器モデルは、コンピューティングデバイスにおいて生成される簡潔な分類器モデルである。モデルが使用されるコンピューティングデバイスにおいて分類器モデルを生成することによって、様々な態様は、特定のデバイス上の挙動が良性であるか、またはそのデバイスの性能の劣化に寄与しているかを判定する際に最も重要である特定の特徴を、そのコンピューティングデバイスが正確に特定することを可能にする。これらの態様はまた、特定のデバイスにおける挙動を分類することに対する分類器モデルの相対的な重要性に従って、分類器モデルの中の特徴を、そのコンピューティングデバイスが正確に優先順位付けることも可能にする。
【００２６】
アプリケーション固有の分類器モデルは、特定のソフトウェアアプリケーション(または特定の種類のソフトウェアアプリケーション)が非良性であるかどうかを判定することに最も関連がある特徴/エントリに対する試験を含みまたは優先順位付ける、専心的なデータモデルを含む分類器モデルであり得る。コンピューティングデバイスは、複数の試験条件を含む完全な分類器モデルをネットワークサーバから受信し、デバイスにおいて動作するソフトウェアアプリケーションによって(またはデバイス上で実行され得るある種類のソフトウェアアプリケーションによって)使用されるデバイスの特徴を特定し、特定されたデバイスの特徴の1つを評価する完全な分類器モデルの中の試験条件を特定し、特定された試験条件の優先順位、重要性、または成功率を決定し、重要性または成功率に従って特定された試験条件を優先順位付け、または順序付け、特定された試験条件が決定された優先順位、重要性、または成功率に従って順序付けられるように、特定された試験条件を含むように分類器モデルを生成することによって、アプリケーション固有の分類器モデルを生成するように構成され得る。コンピューティングデバイスにおいてアプリケーション固有の分類器モデルをローカルに動的に生成することによって、様々な態様は、コンピューティングデバイスが、特定のソフトウェアアプリケーションの動作がコンピューティングデバイスの望ましくない挙動または性能を低下させる挙動に寄与しているかどうかを判定するのに最も重要な少数の特徴に対する監視および分析動作に専念することを可能にする。
【００２７】
ある態様では、コンピューティングデバイスは、コンピューティングデバイスにおいて動作する各ソフトウェアアプリケーション(または各種のソフトウェアアプリケーション)のためのアプリケーション固有の分類器モデルを生成するように構成され得る。しかしながら、コンピューティングデバイスにおいて動作する各ソフトウェアアプリケーションを分析することは、デバイスの大量の処理および電力のリソースを消費し得る。したがって、コンピューティングデバイスはまた、危険性が高い、または乱用されやすいソフトウェアアプリケーションおよび/またはアプリケーションの種類(たとえば、金融アプリケーション、point-of-saleアプリケーション、生体センサアプリケーションなど)を動的に特定し、危険性が高い、または乱用されやすいものとして特定されるソフトウェアアプリケーションおよび/またはアプリケーションの種類だけのための分類器モデルを生成するように構成され得る。
【００２８】
挙動監視および分析システムによって実行される動作の数をさらに減らすために、コンピューティングデバイスは、識別子、際立った挙動、または、ソフトウェアアプリケーションが既知のベンダーからのものであるかどうかをコンピューティングデバイスが迅速に判定することを可能にする挙動の手がかりについて、ソフトウェアアプリケーションを監視するように構成され得る。コンピューティングデバイスは次いで、より深い分析を必要とする重大な、敏感な、または重要なアプリケーションであるものとして、これらのソフトウェアアプリケーションを分類することができる。このことにより、ベンダーは、挙動分析システムにアプリケーションを詳細に監視し分析させる特別な動作を実行するようにソフトウェアアプリケーションを開発することが可能になる。たとえば、バンキングソフトウェアのベンダーは、良性の予期されない動作を実行して挙動分析システムに動作を詳細に監視させるように、バンキングアプリケーションをプログラムすることができ、このことは、バンキングアプリケーションがマルウェアによって攻撃されないことを確実にするのを助ける。
【００２９】
ある実施形態では、コンピューティングデバイスは、識別子、際立った挙動、または、ソフトウェアアプリケーションが信頼できるベンダーからのものであるかどうかをコンピューティングデバイスが迅速に判定することを可能にする挙動の手がかりについて、ソフトウェアアプリケーションを監視するように構成され得る。コンピューティングデバイスは、それらのソフトウェアアプリケーションを良性であるものとして分類することによって、信頼できるベンダーからのソフトウェアアプリケーションを迅速に認証することができる。このことにより、挙動監視および分析システムは、信頼できるアプリケーションに対する詳細の分析動作の実行を控えることが可能になり、これによって、コンピューティングデバイスの性能および電力消費特性を改善する。
【００３０】
コンピューティングデバイスは、ソフトウェアアプリケーションがデバイスにおいて動作するときにソフトウェアアプリケーションの活動を監視し、監視された活動を特徴付ける挙動ベクトルを生成し、ソフトウェアアプリケーションが信頼できるベンダーからのものであることを示す際立った挙動を生成された挙動ベクトルが含むかどうかを判定することによって、ソフトウェアアプリケーションが信頼できるベンダーからのものであると判定するように構成され得る。コンピューティングデバイスは、生成された挙動ベクトルがソフトウェアアプリケーションによる予期されないデバイスの特徴の使用および/または一般的なデバイスの特徴の異常な使用を特定する情報を含むかどうかを判定することによって、そのような際立った挙動を特定することができる。すなわち、ソフトウェアアプリケーションによる予期されないデバイスの特徴の使用または一般的なデバイスの特徴の異常な使用は、信頼できるベンダーからのものであるとしてアプリケーションを特定する、際立った挙動として機能し得る。したがって、コンピューティングデバイスは、アプリケーションを認証するための挙動の鍵として、これらの際立った挙動を使用することができる。この挙動の鍵は、標準的な認証鍵よりも、複製、なりすまし、または復号がはるかに難しいことがある。
【００３１】
様々な態様は、図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はまた、ユーザとモバイルデバイスとの間のユーザインターフェース(UI)による対話を監視/観測することができる。たとえば、バックグラウンド実行状態で動作しているヘルパーアプリケーションが対応するUIの対話または事象を伴わずにダイアログボックスを立ち上げる場合、システムはこの動作について疑わしいものとして目印を付け、ヘルパーアプリケーションの活動および動作に関する追加の情報を収集することができる。
【００５４】
すなわち、各ソフトウェアアプリケーションは一般に、モバイルデバイス上でいくつかのタスクまたは活動を実行し、あるタスク/活動は本質的に、オペレーティングシステムまたはソフトウェアアプリケーション(またはプロセス、スレッドなど)が、それらのタスク/活動をサポートする実行状態、またはそれらに適合する実行状態にあることを要求する。たとえば、カメラの使用、録音するためのマイクロフォンのアクティブ化、ショートメッセージサービス(SMS)メッセージの送信、および加速度計データの収集はすべて、モバイルデバイスとの何らかの形態のユーザ対話(たとえば、ユーザがカメラのシャッターリリースボタンを作動させること、テキストを打つこと、送信ボタンを押すことなど)を通常は必要とするタスク/活動である。したがって、これらの活動は一般に、フォアグラウンドで、またはモバイルデバイスとのユーザ対話をサポートする実行状態において実行されなければならない。これらのまたは他の同様のタスク/活動が、バックグラウンド実行状態のような、モバイルデバイスとの高度なユーザ対話をサポートしない実行状態において実行されるとき、そのような動作条件は、その活動と関連付けられるモバイルデバイスの挙動が良性ではないこと、または別様に、追加のまたはより詳細な調査、監視、または分析に値することの、強い指標であり得る。すなわち、あるタスク/活動がモバイルデバイスにおいて実行される具体的なオペレーティングシステム実行状態は、モバイルデバイスの挙動が追加のまたはより詳細な調査、監視、および/または分析に値するかどうかの、強い指標であり得る。したがって、様々な態様において、モバイルデバイスのプロセッサは、あるタスク/活動が実行される具体的なオペレーティングシステム実行状態を監視するように構成され得る。
【００５５】
挙動観測器モジュール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に含めるための決定ノードを特定することができる。ある態様では、処理コアは、ソフトウェアアプリケーションと関連付けられるアプリケーションストアのラベルを読み取ること、静的分析動作を実行すること、および/またはソフトウェアアプリケーションを他の同様のソフトウェアアプリケーションと比較することによって、各ソフトウェアアプリケーションのカテゴリ、種類、もしくは分類を決定し、かつ/または、アプリケーションの種類に固有の分類器モデル458に含まれるべき決定ノード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において、処理コアは、関心のある特徴を含むようにアプリケーションごとの簡潔な分類器モデルを生成することができる。
【０１１２】
図6Aは、ある態様による、コンピューティングデバイスの処理コアにおいて動作するソフトウェアアプリケーションを分析する方法600を示す。ブロック602において、処理コアは、コンピューティングデバイスのメモリに記憶されている活動のログから挙動情報を収集すること、または、図2を参照して上で論じられた監視/観測動作のいずれかを実行することなどによって、ソフトウェアアプリケーションの活動を監視することができる。
【０１１３】
ブロック604において、処理コアは、収集された挙動情報を使用して、ソフトウェアアプリケーションの監視された活動を特徴付ける挙動ベクトルを生成することができる。判定ブロック606において、処理コアは、ソフトウェアアプリケーションを特定する挙動の手がかりまたは際立った挙動を生成された挙動ベクトルが含むかどうかを判定することができる。たとえば、判定ブロック606において、処理コアは、生成された挙動ベクトルがソフトウェアアプリケーションによる予期されないデバイスの特徴の使用を特定する情報および/またはソフトウェアアプリケーションによるデバイスの特徴の異常な使用を特定する情報を含むかどうかを判定することができる。
【０１１４】
生成された挙動ベクトルが際立った挙動を含まないと判定したことに応答して(すなわち、判定ブロック606=「No」)、ブロック608において、処理コアは、本出願で論じられる分析または作動の動作のいずれかを実行することができる。たとえば、処理コアは、生成された挙動ベクトルを分類器モデルに適用して、ソフトウェアアプリケーションが非良性であるかどうかを判定し、ソフトウェアアプリケーションが非良性であることを挙動ベクトルを分類器モデルに適用した結果が示すとき、ソフトウェアアプリケーションを終了することができる。
【０１１５】
生成された挙動ベクトルが際立った挙動を含むと判定したことに応答して(すなわち、判定ブロック606=「Yes」)、処理コアは、ブロック610において、ソフトウェアアプリケーションを、重大である、重要である、または乱用されやすいものとして分類することができる。ブロック612において、処理コアは深い挙動分析を実行することができ、深い挙動分析は、挙動ベクトルを専心的な分類器モデルに適用すること、より詳細な観測結果を収集すること、より深いログ取得を実行することなどを含み得る。
【０１１６】
図6Bは、コンピューティングデバイスの処理コアにおいて動作するソフトウェアアプリケーションを認証するある態様の方法620を示す。ブロック622において、処理コアは、コンピューティングデバイスのメモリに記憶されている活動のログから挙動情報を収集すること、または、図2を参照して上で論じられた監視/観測動作のいずれかを実行することなどによって、ソフトウェアアプリケーションの活動を監視することができる。
【０１１７】
ブロック624において、処理コアは、収集された挙動情報を使用して、ソフトウェアアプリケーションの監視された活動を特徴付ける挙動ベクトルを生成することができる。判定ブロック626において、処理コアは、既知のまたは信頼できるベンダーからのものとしてソフトウェアアプリケーションを特定する際立った挙動を生成された挙動ベクトルが含むかどうかを判定することができる。たとえば、判定ブロック626において、処理コアは、生成された挙動ベクトルがソフトウェアアプリケーションによる予期されないデバイスの特徴の使用を特定する情報を含むかどうかを判定することができる。別の例として、処理コアは、生成された挙動ベクトルがソフトウェアアプリケーションによるデバイスの特徴の異常な使用を特定する情報を含むかどうかを判定することができる。
【０１１８】
生成された挙動ベクトルが際立った挙動を含むと判定したことに応答して(すなわち、判定ブロック626=「Yes」)、処理コアは、ブロック630において、ソフトウェアアプリケーションを良性であるものとして分類することによって、ソフトウェアアプリケーションを認証することができる。生成された挙動ベクトルが際立った挙動を含まないと判定したことに応答して(すなわち、判定ブロック626=「No」)、ブロック628において、処理コアは、本出願で論じられる分析または作動の動作のいずれかを実行することができる。たとえば、処理コアは、生成された挙動ベクトルを分類器モデルに適用して、ソフトウェアアプリケーションが非良性であるかどうかを判定し、ソフトウェアアプリケーションが非良性であることを挙動ベクトルを分類器モデルに適用した結果が示すとき、ソフトウェアアプリケーションを終了することができる。
【０１１９】
図6Cは、コンピューティングデバイスのアプリケーション固有のおよびアプリケーションの種類に固有の特徴を考慮する、簡潔なまたは専心的な分類器/挙動モデルを生成するある態様の方法650を示す。方法650は、分類器モデルを使用する挙動監視システムが認識するであろう種類の挙動の手がかりであり得る際立った挙動を生成された挙動ベクトルが含まないと判定したことなどに応答して、方法600または方法620の後でコンピューティングデバイス中の処理コアによって実行され得る。
【０１２０】
ブロック652において、処理コアは、有限状態機械、ブーストされた決定木、決定株のリスト、または複数の試験条件を特定する他の同様の情報構造である、またはそれらを含む、完全な分類器モデルを取り出すか、または受信することができる。ある態様では、完全な分類器モデルは、複数のブーストされた決定株を表現するのに適した情報を含み、かつ/または複数のブーストされた決定株へのモバイルデバイスによる変換に適した情報を含む、有限状態機械を含む。ある態様では、有限状態機械は、ブーストされた決定株の順序付けられた、または優先順位付けられたリストであり得る(またはそれを含み得る)。ブーストされた決定株の各々は、試験条件および重み値を含み得る。
【０１２１】
ブロック654において、処理コアは、モバイルデバイスの過剰な量の処理、メモリ、またはエネルギーのリソースを消費することなく、モバイルデバイスの挙動を非良性であるとして正確に分類するために評価されるべき固有の試験条件の数を決定することができる。これは、モバイルデバイスにおいて利用可能な処理、メモリ、および/またはエネルギーのリソースの量、条件を試験するために必要なモバイルデバイスの処理、メモリ、またはエネルギーのリソースの量を決定するステップと、条件を試験することによってモバイルデバイスにおいて分析または評価されるべき挙動または条件と関連付けられる優先順位および/または複雑さを決定することと、モバイルデバイスの利用可能な処理、メモリ、またはエネルギーのリソースの消費、条件を試験することによって達成されることになる挙動分類の正確さ、および条件によって試験される挙動の重要性または優先度の間でバランスを取るように、または折り合いをつけるように固有の試験条件の数を選択/決定するステップとを含み得る。
【０１２２】
ブロック656において、処理コアは、デバイス固有のまたはデバイスの状態に固有の情報を使用して、簡潔な分類器モデルに含まれるべきである、または簡潔な分類器モデルから除外されるべきである、特徴および/または試験条件を迅速に特定することができる。たとえば、処理コアは、モバイルデバイスの現在のハードウェアまたはソフトウェアの構成、動作状態などに起因して、モバイルデバイスの中に存在することができない条件、特徴、または要因を試験する試験条件を特定することができる。別の例として、処理コアは、完全なモデルに含まれる特徴/ノード/株、およびモバイルデバイスの中に存在することができない、かつ/またはモバイルデバイスに関係しない試験条件を特定し、簡潔な分類器モデルから除外することができる。
【０１２３】
ある態様では、ブロック658において、処理コアは、決定された数の固有の試験条件を有する選択された試験条件のリストを生成するために、およびブロック626において特定された試験条件を除外するために、ブーストされた決定株のリストを最初から網羅的に検討することができる。たとえば、処理コアは、ソフトウェアアプリケーションによって使用され得ない条件を試験する、完全な分類器モデルに含まれる特徴を省略し、無視し、または削除することができる。ある態様では、処理コアはまた、選択された試験条件の各々に対する絶対的または相対的な優先度の値を決定し、選択された試験条件のリスト中の対応する試験条件に関連して、絶対的または相対的な優先度の値を記憶することができる。
【０１２４】
ある態様では、ブロック658において、処理コアは、完全な分類器モデルの中の複数の試験条件を順次網羅的に検討し、試験条件のリストが決定された数の固有の試験条件を含むまで、モバイルデバイスの挙動を分類することに関連がある試験条件を試験条件のリストに挿入することによって、試験条件のリストを生成することができる。さらなる態様では、試験条件のリストを生成するステップは、完全な分類器モデルの決定ノードを順次網羅的に検討するステップと、ソフトウェアアプリケーションに関連がない試験条件と関連付けられる決定ノードを無視するステップと、試験条件のリストが決定された数の固有の試験条件を含むまで、無視されていない順次網羅的に検討された各決定ノードと関連付けられる試験条件を試験条件のリストに挿入するステップとを含み得る。
【０１２５】
ブロック660において、処理コアは、生成された試験条件のリストにおいて特定された、選択された(したがって、ブロック656において特定された試験条件を除外する)試験条件の1つを試験する、完全な分類器モデルに含まれるすべてのブーストされた決定株を含む簡潔な分類器モデルを生成することができる。ある態様では、処理コアは、それらの重要性または優先度の値の順でブーストされた決定株を含むように、または表現するように、簡潔な分類器モデルを生成することができる。ある態様では、ブロック660において、処理コアは、ブロック658においてより多数の試験条件に対するブーストされた決定株のリストを網羅的に検討して別の簡潔な分類器モデルを生成する動作を繰り返すことによって、別のよりロバストな(すなわち、より簡潔ではない)簡潔な分類器モデルを生成するために、固有の試験条件の数を増やすことができる。これらの動作は、簡潔な分類器モデルの群を生成するために繰り返され得る。
【０１２６】
ブロック662において、処理コアは、アプリケーション固有の情報および/またはアプリケーションの種類に固有の情報を使用して、簡潔な分類器モデルに含まれ、かつソフトウェアアプリケーションがモバイルデバイスの性能を劣化させる挙動に寄与しているかどうかを判定することに関連がある、特徴または試験条件を特定することができる。ブロック664において、処理コアは、簡潔な分類器モデルの中のブーストされた決定株を網羅的に検討して、ソフトウェアアプリケーションによって使用される特徴または条件を試験する決定株を選択し、またはそのソフトウェアアプリケーションと対応付け、選択されたまたは対応付けられた決定株を、アプリケーション固有の分類器モデルまたはアプリケーションの種類に固有の分類器モデルとして使用することができる。
【０１２７】
図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  方法
620  方法
650  方法
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  ネットワークアクセスポート
【図１】
2017504102.tif 000003
【図２】
2017504102.tif 000004
【図３】
2017504102.tif 000005
【図４】
2017504102.tif 000006
【図５Ａ】
2017504102.tif 000007
【図５Ｂ】
2017504102.tif 000008
【図６Ａ】
2017504102.tif 000009
【図６Ｂ】
2017504102.tif 000010
【図６Ｃ】
2017504102.tif 000011
【図７】
2017504102.tif 000012
【図８】
2017504102.tif 000013
【図９】
2017504102.tif 000014
【図１０】
2017504102.tif 000015
【図１１】
2017504102.tif 000016
【図１２】
2017504102.tif 000017
【図１３】
2017504102.tif 000018
【手続補正書】
【提出日】平成28年6月7日(2016.6.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピューティングデバイス上で動作するソフトウェアアプリケーションを分析する方法であって、
前記コンピューティングデバイスのメモリに記憶されている活動のログから挙動情報を収集することによって、前記ソフトウェアアプリケーションの活動を前記コンピューティングデバイスのプロセッサにおいて監視するステップと、
前記収集された挙動情報に基づいて、前記ソフトウェアアプリケーションの前記監視された活動を特徴付ける挙動ベクトルを生成するステップと、
既知のベンダーからのものとして前記ソフトウェアアプリケーションを特定する特別な動作の実行によって引き起こされる際立った挙動を前記生成された挙動ベクトルが含むかどうかを判定するステップとを備える、方法。
【請求項２】
前記生成された挙動ベクトルが前記際立った挙動を含むかどうかを判定するステップが、前記ソフトウェアアプリケーションによる予期されないデバイスの特徴の使用を特定する情報を前記生成された挙動ベクトルが含むかどうかを判定するステップを備える、請求項1に記載の方法。
【請求項３】
前記生成された挙動ベクトルが前記際立った挙動を含むかどうかを判定するステップが、前記ソフトウェアアプリケーションによるデバイスの特徴の異常な使用を特定する情報を前記生成された挙動ベクトルが含むかどうかを判定するステップを備える、請求項1に記載の方法。
【請求項４】
前記生成された挙動ベクトルが前記際立った挙動を含むと判定したことに応答して、前記ソフトウェアアプリケーションを良性であるものとして分類することによって、前記ソフトウェアアプリケーションを認証するステップをさらに備える、請求項1に記載の方法。
【請求項５】
前記生成された挙動ベクトルが前記際立った挙動を含まないと判定したことに応答して、前記生成された挙動ベクトルを専心的な分類器モデルに適用して、前記ソフトウェアアプリケーションが非良性であるかどうかを判定することによって、深い挙動分析動作を実行するステップと、
前記生成された挙動ベクトルが前記際立った挙動を含まないと判定したことに応答して、前記生成された挙動ベクトルを分類器モデルに適用して、前記ソフトウェアアプリケーションが非良性であるかどうかを判定するステップとをさらに備える、請求項1に記載の方法。
【請求項６】
複数の試験条件を含む完全な分類器モデルを受信するステップと、
前記ソフトウェアアプリケーションによって使用されるデバイスの特徴を特定するステップと、
前記特定されたデバイスの特徴を評価する、前記複数の試験条件の中の試験条件を特定するステップと、
前記特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するステップとをさらに備え、
前記生成された挙動ベクトルを前記分類器モデルに適用して前記ソフトウェアアプリケーションが非良性であるかどうかを判定するステップが、前記生成された挙動ベクトルを前記生成されたアプリケーションベースの分類器モデルに適用するステップを備える、請求項5に記載の方法。
【請求項７】
前記収集された挙動情報に基づいて前記挙動ベクトルを生成するステップが、前記収集された挙動情報を使用して特徴ベクトルを生成するステップを備え、
前記生成された挙動ベクトルを前記生成されたアプリケーションベースの分類器モデルに適用するステップが、
前記アプリケーションベースの分類器モデルに含まれる各試験条件を評価するために、前記生成された挙動ベクトルを前記アプリケーションベースの分類器モデルに適用するステップと、
前記アプリケーションベースの分類器モデルの中の試験条件を評価した各結果の加重平均を計算するステップと、
前記加重平均に基づいて、前記挙動が非良性であるかどうかを判定するステップと
を備える、請求項6に記載の方法。
【請求項８】
前記複数の試験条件を含む前記完全な分類器モデルを受信するステップが、前記複数の試験条件の1つを各々評価する複数の決定ノードへの変換に適した情報を含む、有限状態機械を受信するステップを備え、
前記特定された試験条件を優先順位付ける前記アプリケーションベースの分類器モデルを生成するステップが、
前記ソフトウェアアプリケーションに関連があるデバイスの特徴、および
前記ソフトウェアアプリケーションのアプリケーション種類に関連があるデバイスの特徴
のうちの1つを評価する決定ノードを含むように、前記アプリケーションベースの分類器モデルを生成するステップを備える、請求項6に記載の方法。
【請求項９】
メモリと、
前記メモリに結合されたプロセッサとを備え、前記プロセッサが、
前記メモリに記憶されている活動のログから挙動情報を収集することによって、ソフトウェアアプリケーションの活動を監視するステップと、
前記収集された挙動情報に基づいて、前記ソフトウェアアプリケーションの前記監視された活動を特徴付ける挙動ベクトルを生成するステップと、
既知のベンダーからのものとして前記ソフトウェアアプリケーションを特定する特別な動作の実行によって引き起こされる際立った挙動を前記生成された挙動ベクトルが含むかどうかを判定するステップと
を備える動作を実行するように、プロセッサ実行可能命令によって構成される、コンピューティングデバイス。
【請求項１０】
前記生成された挙動ベクトルが前記際立った挙動を含むかどうかを判定するステップが、前記ソフトウェアアプリケーションによる予期されないデバイスの特徴の使用を特定する情報を前記生成された挙動ベクトルが含むかどうかを判定するステップを備えるように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
【請求項１１】
前記生成された挙動ベクトルが前記際立った挙動を含むかどうかを判定するステップが、前記ソフトウェアアプリケーションによるデバイスの特徴の異常な使用を特定する情報を前記生成された挙動ベクトルが含むかどうかを判定するステップを備えるように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
【請求項１２】
前記プロセッサが、
前記生成された挙動ベクトルが前記際立った挙動を含むと判定したことに応答して、前記ソフトウェアアプリケーションを良性であるものとして分類することによって、前記ソフトウェアアプリケーションを認証するステップをさらに備える動作を実行するように、プロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
【請求項１３】
前記プロセッサが、
前記生成された挙動ベクトルが前記際立った挙動を含まないと判定したことに応答して、前記生成された挙動ベクトルを専心的な分類器モデルに適用して、前記ソフトウェアアプリケーションが非良性であるかどうかを判定することによって、深い挙動分析動作を実行するステップと、
前記生成された挙動ベクトルが前記際立った挙動を含まないと判定したことに応答して、前記生成された挙動ベクトルを分類器モデルに適用して、前記ソフトウェアアプリケーションが非良性であるかどうかを判定するステップとをさらに備える動作を実行するように、プロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
【請求項１４】
前記プロセッサが、
複数の試験条件を含む完全な分類器モデルを受信するステップと、
前記ソフトウェアアプリケーションによって使用されるデバイスの特徴を特定するステップと、
前記特定されたデバイスの特徴を評価する、前記複数の試験条件の中の試験条件を特定するステップと、
前記特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するステップとをさらに備える動作を実行するように、プロセッサ実行可能命令によって構成され、
前記生成された挙動ベクトルを前記分類器モデルに適用して前記ソフトウェアアプリケーションが非良性であるかどうかを判定するステップが、前記生成された挙動ベクトルを前記生成されたアプリケーションベースの分類器モデルに適用するステップを備える、請求項13に記載のコンピューティングデバイス。
【請求項１５】
前記収集された挙動情報に基づいて前記挙動ベクトルを生成するステップが、前記収集された挙動情報を使用して特徴ベクトルを生成するステップを備え、
前記生成された挙動ベクトルを前記生成されたアプリケーションベースの分類器モデルに適用するステップが、
前記アプリケーションベースの分類器モデルに含まれる各試験条件を評価するために、前記生成された挙動ベクトルを前記アプリケーションベースの分類器モデルに適用するステップと、
前記アプリケーションベースの分類器モデルの中の試験条件を評価した各結果の加重平均を計算するステップと、
前記加重平均に基づいて、前記挙動が非良性であるかどうかを判定するステップと
を備えるように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項14に記載のコンピューティングデバイス。
【請求項１６】
前記複数の試験条件を含む前記完全な分類器モデルを受信するステップが、前記複数の試験条件の1つを各々評価する複数の決定ノードへの変換に適した情報を含む、有限状態機械を受信するステップを備え、
前記特定された試験条件を優先順位付ける前記アプリケーションベースの分類器モデルを生成するステップが、
前記ソフトウェアアプリケーションに関連があるデバイスの特徴、および
前記ソフトウェアアプリケーションのアプリケーション種類に関連があるデバイスの特徴
のうちの1つを評価する決定ノードを含むように、前記アプリケーションベースの分類器モデルを生成するステップを備えるように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項14に記載のコンピューティングデバイス。
【請求項１７】
コンピューティングデバイスのプロセッサに、前記プロセッサにおいて動作するソフトウェアアプリケーションを分析するための動作を実行させるように構成されるプロセッサ実行可能ソフトウェア命令を記憶した、非一時的コンピュータ可読記憶媒体であって、前記動作が、
前記コンピューティングデバイスのメモリに記憶されている活動のログから挙動情報を収集することによって、前記ソフトウェアアプリケーションの活動を監視するステップと、
前記収集された挙動情報に基づいて、前記ソフトウェアアプリケーションの前記監視された活動を特徴付ける挙動ベクトルを生成するステップと、
既知のベンダーからのものとして前記ソフトウェアアプリケーションを特定する特別な動作の実行によって引き起こされる際立った挙動を前記生成された挙動ベクトルが含むかどうかを判定するステップとを備える、非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、前記生成された挙動ベクトルが前記際立った挙動を含むかどうかを判定するステップが、前記ソフトウェアアプリケーションによる予期されないデバイスの特徴の使用を特定する情報を前記生成された挙動ベクトルが含むかどうかを判定するステップを備えるように、プロセッサに動作を実行させるように構成される、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、前記生成された挙動ベクトルが前記際立った挙動を含むかどうかを判定するステップが、前記ソフトウェアアプリケーションによるデバイスの特徴の異常な使用を特定する情報を前記生成された挙動ベクトルが含むかどうかを判定するステップを備えるように、プロセッサに動作を実行させるように構成される、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、
前記生成された挙動ベクトルが前記際立った挙動を含むと判定したことに応答して、前記ソフトウェアアプリケーションを良性であるものとして分類することによって、前記ソフトウェアアプリケーションを認証するステップを備える動作をプロセッサに実行させるように構成される、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項２１】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、
前記生成された挙動ベクトルが前記際立った挙動を含まないと判定したことに応答して、前記生成された挙動ベクトルを専心的な分類器モデルに適用して、前記ソフトウェアアプリケーションが非良性であるかどうかを判定することによって、深い挙動分析動作を実行するステップと、
前記生成された挙動ベクトルが前記際立った挙動を含まないと判定したことに応答して、前記生成された挙動ベクトルを分類器モデルに適用して、前記ソフトウェアアプリケーションが非良性であるかどうかを判定するステップとを備える動作をプロセッサに実行させるように構成される、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項２２】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、
複数の試験条件を含む完全な分類器モデルを受信するステップと、
前記ソフトウェアアプリケーションによって使用されるデバイスの特徴を特定するステップと、
前記特定されたデバイスの特徴を評価する、前記複数の試験条件の中の試験条件を特定するステップと、
前記特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するステップとを備える動作をプロセッサに実行させるように構成され、
前記生成された挙動ベクトルを前記分類器モデルに適用して前記ソフトウェアアプリケーションが非良性であるかどうかを判定するステップが、前記生成された挙動ベクトルを前記生成されたアプリケーションベースの分類器モデルに適用するステップを備える、請求項21に記載の非一時的コンピュータ可読記憶媒体。
【請求項２３】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、
前記収集された挙動情報に基づいて前記挙動ベクトルを生成するステップが、前記収集された挙動情報を使用して特徴ベクトルを生成するステップを備え、
前記生成された挙動ベクトルを前記生成されたアプリケーションベースの分類器モデルに適用するステップが、
前記アプリケーションベースの分類器モデルに含まれる各試験条件を評価するために、前記生成された挙動ベクトルを前記アプリケーションベースの分類器モデルに適用するステップと、
前記アプリケーションベースの分類器モデルの中の試験条件を評価した各結果の加重平均を計算するステップと、
前記加重平均に基づいて、前記挙動が非良性であるかどうかを判定するステップと
を備えるように、動作をプロセッサに実行させるように構成される、請求項22に記載の非一時的コンピュータ可読記憶媒体。
【請求項２４】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、
前記複数の試験条件を含む前記完全な分類器モデルを受信するステップが、前記複数の試験条件の1つを各々評価する複数の決定ノードへの変換に適した情報を含む、有限状態機械を受信するステップを備え、
前記特定された試験条件を優先順位付ける前記アプリケーションベースの分類器モデルを生成するステップが、
前記ソフトウェアアプリケーションに関連があるデバイスの特徴、および
前記ソフトウェアアプリケーションのアプリケーション種類に関連があるデバイスの特徴
のうちの1つを評価する決定ノードを含むように、前記アプリケーションベースの分類器モデルを生成するステップを備えるように、動作をプロセッサに実行させるように構成される、請求項22に記載の非一時的コンピュータ可読記憶媒体。
【請求項２５】
コンピューティングデバイスであって、
前記コンピューティングデバイスのメモリに記憶されている活動のログから挙動情報を収集することによって、ソフトウェアアプリケーションの活動を監視するための手段と、
前記収集された挙動情報に基づいて、前記ソフトウェアアプリケーションの前記監視された活動を特徴付ける挙動ベクトルを生成するための手段と、
既知のベンダーからのものとして前記ソフトウェアアプリケーションを特定する特別な動作の実行によって引き起こされる際立った挙動を前記生成された挙動ベクトルが含むかどうかを判定するための手段とを備える、コンピューティングデバイス。
【請求項２６】
前記生成された挙動ベクトルが前記際立った挙動を含むかどうかを判定するための手段が、前記ソフトウェアアプリケーションによる予期されないデバイスの特徴の使用を特定する情報を前記生成された挙動ベクトルが含むかどうかを判定するための手段を備える、請求項25に記載のコンピューティングデバイス。
【請求項２７】
前記生成された挙動ベクトルが前記際立った挙動を含むかどうかを判定するための手段が、前記ソフトウェアアプリケーションによるデバイスの特徴の異常な使用を特定する情報を前記生成された挙動ベクトルが含むかどうかを判定するための手段を備える、請求項25に記載のコンピューティングデバイス。
【請求項２８】
前記生成された挙動ベクトルが前記際立った挙動を含むと判定したことに応答して、前記ソフトウェアアプリケーションを良性であるものとして分類することによって、前記ソフトウェアアプリケーションを認証するための手段をさらに備える、請求項25に記載のコンピューティングデバイス。
【請求項２９】
前記生成された挙動ベクトルが前記際立った挙動を含まないと判定したことに応答して、前記生成された挙動ベクトルを専心的な分類器モデルに適用して、前記ソフトウェアアプリケーションが非良性であるかどうかを判定することによって、深い挙動分析動作を実行するための手段と、
前記生成された挙動ベクトルが前記際立った挙動を含まないと判定したことに応答して、前記生成された挙動ベクトルを分類器モデルに適用して、前記ソフトウェアアプリケーションが非良性であるかどうかを判定するための手段とをさらに備える、請求項25に記載のコンピューティングデバイス。
【請求項３０】
複数の試験条件を含む完全な分類器モデルを受信するための手段と、
前記ソフトウェアアプリケーションによって使用されるデバイスの特徴を特定するための手段と、
前記特定されたデバイスの特徴を評価する、前記複数の試験条件の中の試験条件を特定するための手段と、
前記特定された試験条件を優先順位付けるアプリケーションベースの分類器モデルを生成するための手段とをさらに備え、
前記生成された挙動ベクトルを前記分類器モデルに適用して前記ソフトウェアアプリケーションが非良性であるかどうかを判定するための手段が、前記生成された挙動ベクトルを前記生成されたアプリケーションベースの分類器モデルに適用するための手段を備える、請求項29に記載のコンピューティングデバイス。
【国際調査報告】
2017504102.tif 000019
2017504102.tif 000020
2017504102.tif 000021