(57)【特許請求の範囲】
【請求項１】
モバイルデバイス内でモデルを生成する方法であって、
各増強決定株が試験条件および重み値を含む複数の増強決定株として表示するのに好適な情報を含む有限状態機械を含むフル分類器モデルをサーバコンピューティングデバイスから前記モバイルデバイスのプロセッサ内で受信するステップと、
前記モバイルデバイスの前記プロセッサにより、前記受信されたフル分類器モデル内に含まれる前記有限状態機械を前記複数の増強決定株に変換することによって増強決定株の順序付けられたリストを生成するステップと、
前記モバイルデバイスの前記プロセッサにより、前記増強決定株の前記生成された順序付けられたリストを選別して、前記モバイルデバイス内でリーン分類器モデルを生成するステップであって、
前記モバイルデバイスのエネルギーの資源の量を過剰に消費することなく、モバイルデバイス挙動を分類するために前記モバイルデバイス内で評価されるべき特有の試験条件の数を決定するステップと、
増強決定株の前記生成された順序付けられたリストを連続的にトラバースすることによって前記決定された数の異なる試験条件を含む試験条件のリストを生成し、試験条件の前記リストが前記決定された数の異なる試験条件を含むまで、連続的にトラバースされた増強決定株の各々と関連付けられた前記試験条件を試験条件の前記リストに挿入するステップと、
前記生成された試験条件のリスト内に含まれる複数の試験条件のうちの1つを試験する増強決定株を含むように前記リーン分類器モデルを生成するステップとを含む、
ステップと、
前記モバイルデバイスの前記プロセッサにより、モバイルデバイスの挙動ベクトルを前記生成されたリーン分類器モデルに適用して結果を生成するステップと、
前記モバイルデバイスの前記プロセッサにより、前記生成された結果を使用して前記モバイルデバイスの挙動を分類するステップと、
を含む、方法。
【請求項２】
前記生成された結果を使用して前記モバイルデバイスの挙動を分類するステップは、前記生成された結果を使用して、前記モバイルデバイスの前記挙動が良性でないと分類するステップを含む、請求項1に記載の方法。
【請求項３】
前記モバイルデバイスの挙動ベクトルを前記生成されたリーン分類器モデルに適用して前記結果を生成するステップが、
前記モバイルデバイスの挙動ベクトルに含まれる収集された挙動情報を前記リーン分類器モデル内の増強決定株の各々に適用するステップと、
前記収集された挙動情報を前記リーン分類器モデル内の増強決定株の各々に適用した結果の加重平均を計算するステップと、
前記加重平均としきい値とを比較するステップと、
を含む、請求項1に記載の方法。
【請求項４】
前記リーン分類器モデルを生成するステップが、
増強決定株の前記生成された順序付けられたリスト内に含まれる前記増強決定株に基づいてリーン分類器モデルのファミリーを生成するステップを含み、リーン分類器モデルの前記生成されたファミリーが前記リーン分類器モデルおよび複数の追加のリーン分類器モデルを含み、前記複数の追加のリーン分類器モデルの各々が異なる数の異なる試験条件を含む、請求項1に記載の方法。
【請求項５】
前記リーン分類器モデルを生成するステップが、
異なる重み値および異なるしきい値を使用して第1の条件を試験する決定株をそれぞれ含む複数のリーン分類器モデルを生成するステップを含む、請求項1に記載の方法。
【請求項６】
前記受信されたフル分類器モデルに基づいて前記モバイルデバイスで生成された複数のリーン分類器モデル内の前記増強決定株と関連付けられたしきい値を再計算するステップをさらに含む、請求項1に記載の方法。
【請求項７】
前記受信されたフル分類器モデルに基づいて前記モバイルデバイスで生成された複数のリーン分類器モデル内の前記増強決定株と関連付けられた重み値を再計算するステップをさらに含む、請求項1に記載の方法。
【請求項８】
前記フル分類器モデルをサーバ内で、
モバイルデバイス挙動についての情報のコーパスを前記サーバ内で受信することと、
前記複数の増強決定株への変換に好適なデータを含むために、情報の前記コーパスに基づいて前記有限状態機械を生成することと、
前記有限状態機械を前記フル分類器モデルとして前記モバイルデバイスに送信することとによって生成するステップをさらに含む、請求項1に記載の方法。
【請求項９】
各試験条件が確率値と関連付けられ、前記確率値の各々が、前記モバイルデバイス挙動が良性であるかどうかを前記モバイルデバイスが判断することを、その関連付けられた試験条件が可能にする尤度を特定し、前記方法が、
前記有限状態機械を前記フル分類器モデルとして前記モバイルデバイスに送信する前に、前記確率値に基づいて前記有限状態機械内に前記複数の増強決定株を編成するステップをさらに含む、請求項8に記載の方法。
【請求項１０】
モバイルコンピューティングデバイスであって、
動作を実行するようにプロセッサ実行可能命令で構成されたプロセッサを備え、前記動作が、
各増強決定株が試験条件および重み値を含む複数の増強決定株として表示するのに好適な情報を含む有限状態機械を含むフル分類器モデルを受信するステップと、
前記受信されたフル分類器モデル内に含まれる前記有限状態機械を前記複数の増強決定株に変換することによって増強決定株の順序付けられたリストを生成するステップと、
前記増強決定株の前記生成された順序付けられたリストを選別して、リーン分類器モデルを生成するステップであって、
エネルギーの資源の量を過剰に消費することなく、モバイルデバイス挙動を分類するために評価されるべき特有の試験条件の数を決定するステップと、
増強決定株の前記生成された順序付けられたリストを連続的にトラバースすることによって前記決定された数の異なる試験条件を含む試験条件のリストを生成し、試験条件の前記リストが前記決定された数の異なる試験条件を含むまで、連続的にトラバースされた増強決定株の各々と関連付けられた前記試験条件を試験条件の前記リストに挿入するステップと、
前記生成された試験条件のリスト内に含まれる複数の試験条件のうちの1つを試験する増強決定株を含むように前記リーン分類器モデルを生成するステップとを含む、
ステップと、
モバイルデバイスの挙動ベクトルを前記生成されたリーン分類器モデルに適用して結果を生成するステップと、
前記生成された結果を使用して前記モバイルデバイスの挙動を分類するステップと、
を含む、モバイルコンピューティングデバイス。
【請求項１１】
前記モバイルデバイスの挙動ベクトルを前記生成されたリーン分類器モデルに適用して前記結果を生成するステップが、
前記モバイルデバイスの挙動ベクトルに含まれる収集された挙動情報を前記リーン分類器モデル内の増強決定株の各々に適用するステップと、
前記収集された挙動情報を前記リーン分類器モデル内の増強決定株の各々に適用した結果の加重平均を計算するステップと、
前記加重平均としきい値とを比較するステップと、
を含むような動作を実行するように、前記プロセッサがプロセッサ実行可能命令で構成される、請求項10に記載のモバイルコンピューティングデバイス。
【請求項１２】
前記リーン分類器モデルを生成するステップが、
増強決定株の前記生成された順序付けられたリスト内に含まれる前記増強決定株に基づいてリーン分類器モデルのファミリーを生成するステップを含み、リーン分類器モデルの前記生成されたファミリーが前記リーン分類器モデルおよび複数の追加のリーン分類器モデルを含み、前記複数の追加のリーン分類器モデルの各々が異なる数の異なる試験条件を含む、請求項10に記載のモバイルコンピューティングデバイス。
【請求項１３】
リーン分類器モデルを生成するステップが、
異なる重み値および異なるしきい値を使用して第1の条件を試験する決定株をそれぞれ含む複数のリーン分類器モデルを生成するステップを含むような動作を実行するように、前記プロセッサがプロセッサ実行可能命令で構成される、請求項10に記載のモバイルコンピューティングデバイス。
【請求項１４】
前記プロセッサが、
前記受信されたフル分類器モデルに基づいて生成された複数のリーン分類器モデル内の前記増強決定株と関連付けられたしきい値および重み値を再計算するステップをさらに含む動作を実行するようにプロセッサ実行可能命令で構成される、請求項10に記載のモバイルコンピューティングデバイス。
【請求項１５】
プロセッサ実行可能ソフトウェア命令を記憶されたコンピュータ可読記憶媒体であって、前記プロセッサ実行可能ソフトウェア命令が、モバイルデバイス内のプロセッサに、
各増強決定株が試験条件および重み値を含む複数の増強決定株として表示するのに好適な情報を含む有限状態機械を含むフル分類器モデルを受信するステップと、
前記受信されたフル分類器モデル内に含まれる前記有限状態機械を前記複数の増強決定株に変換することによって増強決定株の順序付けられたリストを生成するステップと、
前記増強決定株の前記生成された順序付けられたリストを選別して、リーン分類器モデルを生成するステップであって、
資源の量を過剰に消費することなく、モバイルデバイス挙動を分類するために評価されるべき特有の試験条件の数を決定するステップと、
増強決定株の前記生成された順序付けられたリストを連続的にトラバースすることによって前記決定された数の異なる試験条件を含む試験条件のリストを生成し、試験条件の前記リストが前記決定された数の異なる試験条件を含むまで、連続的にトラバースされた増強決定株の各々と関連付けられた前記試験条件を試験条件の前記リストに挿入するステップと、
前記生成された試験条件のリスト内に含まれる複数の試験条件のうちの1つを試験する増強決定株を含むように前記リーン分類器モデルを生成するステップとを含む、
ステップと、
モバイルデバイスの挙動ベクトルを前記生成されたリーン分類器モデルに適用して結果を生成するステップと、
前記生成された結果を使用して前記モバイルデバイスの挙動を分類するステップと、
を含む動作を実行させるように構成される、コンピュータ可読記憶媒体。
【請求項１６】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、前記モバイルデバイス内のプロセッサに、前記モバイルデバイスの挙動ベクトルを前記生成されたリーン分類器モデルに適用して前記結果を生成するステップが、
前記モバイルデバイスの挙動ベクトルに含まれる収集された挙動情報を前記リーン分類器モデル内の増強決定株の各々に適用するステップと、
前記収集された挙動情報を前記リーン分類器モデル内の増強決定株の各々に適用した結果の加重平均を計算するステップと、
前記加重平均としきい値とを比較するステップと、
を含むような動作を実行させるように構成される、請求項15に記載のコンピュータ可読記憶媒体。
【請求項１７】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、前記モバイルデバイス内のプロセッサに、前記リーン分類器モデルを生成するステップが、
増強決定株の前記生成された順序付けられたリスト内に含まれる前記増強決定株に基づいてリーン分類器モデルのファミリーを生成するステップを含み、リーン分類器モデルの前記生成されたファミリーが前記リーン分類器モデルおよび複数の追加のリーン分類器モデルを含み、前記複数の追加のリーン分類器モデルの各々が異なる数の異なる試験条件を含む、請求項15に記載のコンピュータ可読記憶媒体。
【請求項１８】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、前記モバイルデバイス内のプロセッサに、リーン分類器モデルを生成するステップが、
異なる重み値および異なるしきい値を使用して第1の条件を試験する決定株をそれぞれ含む複数のリーン分類器モデルを生成するステップを含むような動作を実行させるように構成される、請求項15に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、前記モバイルデバイス内のプロセッサに、
前記受信されたフル分類器モデルに基づいて生成された複数のリーン分類器モデル内の前記増強決定株と関連付けられたしきい値および重み値を再計算するステップをさらに含む動作を実行させるように構成される、請求項15に記載のコンピュータ可読記憶媒体。
【請求項２０】
デバイスプロセッサを備えるモバイルデバイスと、
モバイルデバイス挙動についての情報のコーパスを受信するステップと、
試験条件および重み値をそれぞれ含む複数の増強決定株への変換に好適なデータを含む有限状態機械を、情報の前記コーパスに基づいて生成するステップと、
前記有限状態機械をフル分類器モデルとして前記モバイルデバイスに送信するステップとを含む動作を実行するようにサーバ実行可能命令で構成されたプロセッサを備え、
前記モバイルデバイス内の前記デバイスプロセッサが、
前記フル分類器モデルを受信するステップと、
前記受信されたフル分類器モデル内に含まれる前記有限状態機械を前記複数の増強決定株に変換することによって増強決定株の順序付けられたリストを生成するステップと、
前記増強決定株の前記生成された順序付けられたリストを選別して、リーン分類器モデルを生成するステップであって、
前記モバイルデバイスのエネルギーの資源の量を過剰に消費することなく、モバイルデバイス挙動を分類するために評価されるべき特有の試験条件の数を決定するステップと、
増強決定株の前記生成された順序付けられたリストを連続的にトラバースすることによって前記決定された数の異なる試験条件を含む試験条件のリストを生成し、試験条件の前記リストが前記決定された数の異なる試験条件を含むまで、連続的にトラバースされた増強決定株の各々と関連付けられた前記試験条件を試験条件の前記リストに挿入するステップと、
前記生成された試験条件のリスト内に含まれる複数の試験条件のうちの1つを試験する増強決定株を含むように前記リーン分類器モデルを生成するステップとを含む、
ステップと、
モバイルデバイスの挙動ベクトルを前記生成されたリーン分類器モデルに適用して結果を生成するステップと、
前記生成された結果を使用して前記モバイルデバイスの挙動を分類するステップと、
を含む動作を実行するように
プロセッサ実行可能命令で構成される、システム。
【請求項２１】
前記モバイルデバイスの挙動ベクトルを前記生成されたリーン分類器モデルに適用して前記結果を生成するステップが、
前記モバイルデバイスの挙動ベクトルに含まれる収集された挙動情報を前記リーン分類器モデル内の増強決定株の各々に適用するステップと、
前記収集された挙動情報を前記リーン分類器モデル内の増強決定株の各々に適用した結果の加重平均を計算するステップと、
前記加重平均としきい値とを比較するステップと、
を含むような動作を実行するように、前記デバイスプロセッサがプロセッサ実行可能命令で構成される、請求項20に記載のシステム。
【請求項２２】
前記リーン分類器モデルを生成するステップが、
増強決定株の前記生成された順序付けられたリスト内に含まれる前記増強決定株に基づいてリーン分類器モデルのファミリーを生成するステップを含むような動作を実行するように、前記デバイスプロセッサがプロセッサ実行可能命令で構成され、リーン分類器モデルの前記生成されたファミリーが前記リーン分類器モデルおよび複数の追加のリーン分類器モデルを含み、前記複数の追加のリーン分類器モデルの各々が異なる数の異なる試験条件を含む、請求項20に記載のシステム。
【請求項２３】
前記リーン分類器を生成するステップが、
異なる重み値および異なるしきい値を使用して第1の条件を試験する決定株をそれぞれ含む複数のリーン分類器モデルを生成するステップを含むような動作を実行するように、前記デバイスプロセッサがプロセッサ実行可能命令で構成される、請求項20に記載のシステム。
【請求項２４】
前記デバイスプロセッサが、
前記受信されたフル分類器モデルに基づいて前記モバイルデバイスで生成された複数のリーン分類器モデル内の前記増強決定株と関連付けられたしきい値および重
み値を再計算するステップをさらに含む動作を実行するようにプロセッサ実行可能命令で構成される、請求項23に記載のシステム。
【請求項２５】
各試験条件が確率値と関連付けられ、前記確率値のそれぞれが、前記モバイルデバイス挙動が良性であるかどうかを前記モバイルデバイスが判断することをその関連付けられた試験条件が可能にする尤度を特定するように前記有限状態機械を生成するステップを、前記有限状態機械を生成するステップが含むような動作を実行するように、前記サーバがサーバ実行可能命令で構成され、
前記有限状態機械を前記フル分類器モデルとして前記モバイルデバイスに送信する前に、前記確率値に基づいて前記有限状態機械内で前記複数の増強決定株を順序付けるステップをさらに含む動作を実行するように、前記サーバがサーバ実行可能命令で構成される、請求項20に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、参照によりそれらのすべての全体が本明細書に組み入れられている、2013年9月5日に出願した「Methods and Systems of Using Boosted Decision Stumps and Joint Feature Selection and Pruning Algorithms for the Efficient Classification of Mobile Device Behaviors」と題する米国特許仮出願第61/874,129号、2013年1月2日に出願した「On-Device Real-Time Behavior Analyzer」と題する米国特許仮出願第61/748,217号、および2013年1月2日に出願した「Architecture for Client-Cloud Behavior Analyzer」と題する米国特許仮出願第61/748,220号の優先権の利益を主張する。
【背景技術】
【０００２】
セルラー通信技術およびワイヤレス通信技術は、過去数年の間に爆発的な発展をとげてきた。この発展は、より優れた通信、ハードウェア、より大きいネットワーク、およびより信頼できるプロトコルによって促進されている。結果として、ワイヤレスサービスプロバイダは現在、情報、リソース、および通信に対する前例のないレベルのアクセスを顧客に提供することができる。
【０００３】
これらのサービス向上と歩調を合わせて、モバイル電子デバイス(たとえば、携帯電話、タブレット、ラップトップなど)は、これまでよりも強力かつ複雑になってきている。この複雑さは、悪性であるソフトウェア、ソフトウェアの衝突、ハードウェアの欠陥、および他の同様のエラーまたは現象が、モバイルデバイスの長期の継続的な性能および電力利用レベルに悪影響を与える新たな機会を生み出した。したがって、モバイルデバイスの長期の継続的な性能および電力利用レベルに悪影響を与える可能性がある条件および/またはモバイルデバイス挙動を特定して修正することは、消費者に対する便益である。
【発明の概要】
【課題を解決するための手段】
【０００４】
様々な態様は、モバイルデバイス内でリーン挙動分類器モデル(lean behavior classifier model)を生成する方法を含み、そのモデルは、有限状態機械を含むフル分類器モデル(full classifier model)をモバイルデバイスのプロセッサ内で受信するステップと、モバイルデバイス内でリーン分類器モデルを生成するためにフル分類器モデルを使用するステップとを含むことができる。有限状態機械は、複数の増強決定株としての変換または表示に好適な情報を含み、増強決定株の各々は、試験条件および重み値を含むことができる。一態様では、方法は、モバイルデバイスの挙動を良性であるまたは良性でない(すなわち、悪性である、性能を劣化させる、など)のいずれかであるとして分類するために、モバイルデバイス内でリーン分類器モデルを使用するステップをさらに含むことができる。
【０００５】
一態様では、フル分類器モデルに基づいてリーン分類器モデルを生成するステップは、フル分類器モデル内に含まれる有限状態機械を増強決定株のリストに変換するステップと、増強決定株のリスト内に含まれる増強決定株に基づいてリーン分類器モデルを生成するステップとを含むことができる。
【０００６】
一態様では、フル分類器モデルに基づいてリーン分類器モデルを生成するステップは、モバイルデバイスの処理、メモリ、またはエネルギーの資源の量を過剰に消費することなくモバイルデバイス挙動を分類するために、評価されるべき特有の試験条件の数を決定するステップと、増強決定株のリストを連続的にトラバースする(traverse)ことによって試験条件のリストを生成し、試験条件のリストが規定された数の特有の試験条件を含み得るまで、連続的にトラバースされた増強決定株の各々と関連付けられた試験条件を試験条件のリストに挿入するステップと、生成された試験条件のリスト内に含まれる複数の試験条件のリストのうちの1つを試験するそれらの増強決定株だけを含むようにリーン分類器モデルを生成するステップとをさらに含むことができる。
【０００７】
一態様では、方法は、収集された挙動情報をリーン分類器モデル内の増強決定株の各々に適用することによってモバイルデバイスの挙動を良性であるまたは良性でないのいずれかであるとして分類するためにモバイルデバイス内のリーン分類器モデルを使用するステップと、収集された挙動情報をリーン分類器モデル内の増強決定株の各々に適用した結果の加重平均を計算するステップと、加重平均としきい値とを比較するステップとを含むことができる。
【０００８】
一態様では、フル分類器モデルに基づいてリーン分類器モデルを生成するステップは、フル分類器モデル内に含まれる有限状態機械を増強決定株のリストに変換するステップと、増強決定株のリスト内に含まれる増強決定株に基づいてリーン分類器モデルのファミリーを生成するステップとを含み得、リーン分類器モデルのファミリーはリーン分類器モデルおよび複数の追加のリーン分類器モデルを含み、複数の追加のリーン分類器モデルの各々は異なる数の特有の試験条件を含む。
【０００９】
一態様では、リーン分類器モデルを生成するステップは、異なる重み値および異なるしきい値を使用して第1の条件を試験する決定株をそれぞれ含む複数のリーン分類器モデルを生成するステップを含むことができる。一態様では、方法は、フル分類器モデルに基づいてモバイルデバイス内に生成された複数のリーン分類器モデル内の増強決定株と関連付けられたしきい値を再計算するステップを含むことができる。一態様では、方法は、フル分類器モデルに基づいてモバイルデバイス内に生成された複数のリーン分類器モデル内の増強決定株と関連付けられた重み値を再計算するステップを含むことができる。
【００１０】
一態様では、方法は、モバイルデバイス挙動についての情報のコーパスをサーバ内で受信することによってサーバ内でフル分類器モデルを生成するステップと、複数の増強決定株に変換するのに好適なデータを含むためにモバイルデバイス挙動についての情報のコーパスに基づいて有限状態機械を生成するステップと、有限状態機械をフル分類器モデルとしてモバイルデバイスに送信するステップとを含むことができる。一態様では、複数の試験条件の各々が確率値と関連付けられ、その確率値が、モバイルデバイス挙動が良性であるかどうかをモバイルデバイスが判断することを、その関連付けられた試験条件が可能にする尤度を特定し、方法は、有限状態機械をフル分類器モデルとしてモバイルデバイスに送信する前に、確率値に基づいて有限状態機械内の増強決定株を編成するステップをさらに含む。
【００１１】
さらなる態様は、上記で説明した方法の動作を実行するようにプロセッサ実行可能命令で構成されたプロセッサを有するモバイルコンピューティングデバイスを含む。
【００１２】
さらなる態様は、上記に記載された方法の動作をモバイルデバイス内のプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を記憶している非一時的コンピュータ可読記憶媒体を含む。
【００１３】
さらなる態様は、デバイスプロセッサを含むモバイルデバイスと、モバイルデバイス挙動についての情報のコーパスを受信するステップ、情報のコーパスに基づいて、試験条件および重み値をそれぞれ含む複数の増強決定株への変換に好適なデータを含むために有限状態機械を生成するステップ、および有限状態機械をフル分類器モデルとしてモバイルデバイスに送信するステップを含む動作を実行するようにサーバ実行可能命令で構成されたサーバとを含むシステムを含む。一態様では、デバイスプロセッサは、フル分類器モデルを受信するステップと、受信されたフル分類器モデルに基づいてモバイルデバイス内にリーン分類器モデルを生成するステップと、モバイルデバイスの挙動を良性であるまたは良性でないのいずれかであるとして分類するためにリーン分類器モデルを使用するステップとを含む動作を実行するようにプロセッサ実行可能命令で構成され得る。
【００１４】
一態様では、デバイスプロセッサは、フル分類器モデルに基づいてリーン分類器モデルを生成するステップが、フル分類器モデル内に含まれる有限状態機械を増強決定株のリストに変換するステップと、モバイルデバイスの処理、メモリ、またはエネルギーの資源の量を過剰に消費することなくモバイルデバイスの挙動を分類するために、評価されるべき特有の試験条件の数を決定するステップと、増強決定株のリストを連続的にトラバースすることによって試験条件のリストを生成し、試験条件のリストが規定された数の特有の試験条件を含むまで、連続的にトラバースされた増強決定株の各々と関連付けられた試験条件を試験条件のリストに挿入するステップと、生成された試験条件のリスト内に含まれる複数の試験条件のうちの1つを試験する増強決定株のリスト内に含まれる増強決定株を含むようにリーン分類器モデルを生成するステップとを含むような動作を実行するようにプロセッサ実行可能命令で構成され得る。
【００１５】
一態様のシステムでは、モバイルデバイスの挙動を分類するためにリーン分類器モデルを使用するステップが、収集された挙動情報をリーン分類器モデル内の増強決定株の各々に適用するステップと、収集された挙動情報をリーン分類器モデル内の増強決定株の各々に適用した結果の加重平均を計算するステップと、加重平均としきい値とを比較するステップとを含むような動作を実行するように、デバイスプロセッサがプロセッサ実行可能命令で構成され得る。一態様のシステムでは、フル分類器モデルに基づいてリーン分類器モデルを生成するステップが、フル分類器モデル内に含まれる有限状態機械を増強決定株のリストに変換するステップと、増強決定株のリスト内に含まれる増強決定株に基づいてリーン分類器モデルのファミリーを生成するステップとを含み、リーン分類器モデルのファミリーがリーン分類器モデルおよび複数の追加のリーン分類器モデルを含み、複数の追加のリーン分類器モデルの各々が異なる数の特有の試験条件を含むような動作を実行するように、デバイスプロセッサがプロセッサ実行可能命令で構成され得る。
【００１６】
一態様のシステムでは、フル分類器モデルに基づいてリーン分類器モデルを生成するステップが、異なる重み値および異なるしきい値を使用して第1の条件を試験する決定株をそれぞれ含む複数のリーン分類器モデルを生成するステップを含むような動作を実行するように、デバイスプロセッサがプロセッサ実行可能命令で構成され得る。一態様のシステムでは、複数のリーン分類器モデル内の増強決定株と関連付けられたしきい値および重み値を再計算するステップをさらに含む動作を実行するように、デバイスプロセッサがプロセッサ実行可能命令で構成され得る。
【００１７】
一態様のシステムでは、複数の試験条件の各々が確率値と関連付けられ、その確率値が、モバイルデバイス挙動が良性であるかどうかをモバイルデバイスが判断することを、その関連付けられた試験条件が可能にする尤度を特定するような動作を実行するように、サーバがサーバ実行可能命令で構成され得る。一態様のシステムでは、有限状態機械をフル分類器モデルとしてモバイルデバイスに送信する前に、確率値に基づいて有限状態機械内の増強決定株を編成するステップをさらに含む動作を実行するように、サーバがサーバ実行可能命令で構成され得る。
【００１８】
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本発明の例示的な態様を示し、上記の全般的な説明および下記の発明を実施するための形態とともに、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【００１９】
【図１】様々な態様で使用するのに好適である例示的な電気通信システムのネットワーク構成要素を示す通信システムのブロック図である。
【図２】特定のモバイルデバイス挙動が悪性であるか、性能劣化させるか、疑わしいか、または良性であるかを判断するように構成された一態様のモバイルデバイスにおける例示的な論理構成要素および情報フローを示すブロック図である。
【図３】特定のモバイルデバイス挙動が悪性であるか、性能を劣化させるか、疑わしいか、または良性であるかを判断するためにモバイルデバイスと協同して働くように構成されたネットワークサーバを含む一態様のシステム内の例示的な構成要素および情報フローを示すブロック図である。
【図４】データ、挙動ベクトルまたは分類器モデルを再訓練することなくフル分類器モデルからターゲットとされるリーン分類器モデルを生成するように構成されたモバイルデバイスを含む一態様のシステム内の例示的な構成要素および情報フローを示すブロック図である。
【図５Ａ】ネットワークサーバから受信されたフル分類器モデル内に含まれる特徴およびデータポイントのサブセットを含むリーン分類器モデルをモバイルデバイス内に生成する、一態様のモバイルデバイスの方法を示すプロセスフロー図である。
【図５Ｂ】モバイルデバイス内でローカルにリーン分類器モデルを生成する別の態様のモバイルデバイスの方法を示すプロセスフロー図である。
【図５Ｃ】モバイルデバイスの挙動を分類するために、ローカルに生成されたリーン分類器モデルを使用する、一態様のモバイルデバイスの方法を示すプロセスフロー図である。
【図５Ｄ】モバイルデバイス内でリーン分類器モデルを生成する、さらに別の態様のモバイルデバイスの方法を示すプロセスフロー図である。
【図６Ａ】より合焦されたリーンな分類器モデルを生成することにおいてモバイルデバイスによる使用に好適な増強決定株を含むフル分類器モデルをネットワークサーバ内で生成する、一態様のネットワークサーバの方法を示すプロセスフロー図である。
【図６Ｂ】様々な態様による、増強決定株分類器を生成するのに好適な例示的な方法を示すプロセスフロー図である。
【図７】一態様による、増強決定株を含む分類器モデルを生成する例示的な方法のプロセスフロー図である。
【図８】リーン分類器モデルを生成するために一態様のサーバプロセッサによって生成され、モバイルデバイスプロセッサによって使用され得る例示的な増強決定株の一例である。
【図９】一態様による、動的および適応的観測を実行するように構成された観測器モジュール内の例示的な論理構成要素および情報フローを示すブロック図である。
【図１０】別の態様による、観測器デーモンを実装するコンピューティングシステム内の論理構成要素および情報フローを示すブロック図である。
【図１１】モバイルデバイス上で適応的観測を実行するための一態様の方法を示すプロセスフロー図である。
【図１２】一態様において使用するのに好適なモバイルデバイスの構成要素のブロック図である。
【図１３】一態様において使用するのに好適なサーバデバイスの構成要素のブロック図である。
【発明を実施するための形態】
【００２０】
様々な態様について添付の図面を参照して詳細に説明する。可能な場合はどこでも、同じ参照番号は、図面全体を通して同じまたは同様の部分を指すために使用される。特定の例および実装形態に行われる参照は、説明を目的とし、本発明の範囲または特許請求の範囲を限定するものではない。
【００２１】
「例示的な」という言葉は、「例、事例、または例示として機能すること」を意味するように本明細書で使用される。本明細書に「例示的な」と記載されるいかなる実装形態も、必ずしも他の実装形態よりも好ましいか、または有利であると解釈されるべきではない。
【００２２】
概して、様々な態様が、モバイルデバイスの性能および/または電力利用のレベルをしばしば経時的に劣化させる条件および/またはモバイルデバイス挙動を効率的に特定し、分類し、モデリングし、防止し、および/または修正するためのネットワークサーバ、モバイルデバイス、システム、および方法を含む。ネットワークサーバは、中央データベース(たとえば、「クラウド」)から様々な条件、特徴、挙動および修正措置についての情報を受信することと、モバイルデバイスによって1つまたは複数のリーン分類器モデルに迅速に変換され得るフォーマットまたは構造で挙動情報の大きいコーパスを記述するフル分類器モデル(すなわち、データまたは挙動のモデル)を生成するためにこの情報を使用することとを行うように構成され得る。
【００２３】
一態様では、フル分類器モデルは、挙動情報の大きいコーパスの有限状態機械の記述または表現であり得る。一態様では、有限状態機械は、複数の増強決定株としての表示に好適な情報を含むことができる。たとえば、有限状態機械は、モバイルデバイス挙動が良性であるかまたはそのモバイルデバイスの性能の劣化を経時的に引き起こすかを判断することに関連するすべてまたは多くの特徴およびデータポイントを一括して特定、記述、試験、または評価する増強決定株のファミリーとして表示され得る情報構造であってよい。次に、ネットワークサーバは、フル分類器モデル(すなわち、有限状態機械および/または増強決定株のファミリーなどを含む情報構造)をモバイルデバイスに送信することができる。
【００２４】
モバイルデバイスは、リーン分類器モデルまたは変化するレベルの複雑さ(または「リーン性」)のリーン分類器モデルのファミリーを生成するためにフル分類器モデルを受信して使用するように構成され得る。これを達成するために、モバイルデバイスは、ネットワークサーバから受信されたフル分類器モデル(本明細書では「フル増強決定株分類器モデル」)内に含まれる増強決定株のロバストなファミリーを選別して、低減された数の増強決定株を含み、かつ/または限られた数の試験条件を評価するリーン分類器モデルを生成することができる。フル増強決定株分類器モデルのこの選別は、増強決定株を選択することと、選択された決定株と同じモバイルデバイスの状態、特徴、挙動または条件に依存する(およびしたがって、1つの決定結果に基づいて適用され得る)すべての他の増強決定株を特定することと、同じモバイルデバイスの状態、特徴、挙動または条件に依存する選択されたおよびすべての特定された他の増強決定株をリーン分類器モデル内に含むことと、リーン分類器モデル内に未だ含まれていない限られた数の選択された増強決定株に対してプロセスを反復することとによって達成され得る。このようにして、限られた数の異なるモバイルデバイスの状態、特徴、挙動または条件に依存するすべての増強決定株を含むリーン分類器モデルが、生成され得る。次に、モバイルデバイスは、その処理、メモリ、またはエネルギーの資源の量を過剰に消費することなくモバイルデバイス挙動を迅速に分類するために、このローカルに生成されたリーン分類器モデルを使用することができる。
【００２５】
一態様では、モバイルデバイスは、異なる程度のリーン性のリーン分類器モデルのファミリーを生成するために、異なる数の異なるモバイルデバイスの状態、特徴、挙動、または条件を使用して何回か、フル増強決定株分類器モデルを選別する動作を実行することができる。リーン分類器モデルを作成するために使用される異なるモバイルデバイスの状態、特徴、挙動、または条件の数が大きいほど、モデルは、悪性のまたは疑わしい挙動を正確に特定する可能性がより高くなるが、消費される処理電力はより多くなる。したがって、一態様では、モバイルデバイスは、リーン分類器モデルのファミリーのうちの最もリーンなモデル(すなわち、最小の数の異なるモバイルデバイスの状態、特徴、挙動、または条件に基づくモデル)を定期的に適用するように構成され得る。最もリーンな分類器モデルによって生成された結果が疑わしい場合、モバイルデバイスプロセッサは、挙動が悪性であるまたは良性であると特定され得るかどうかを判断するためにより多くのデバイスの状態、特徴、挙動、または条件を評価する、より強い(すなわち、それほどリーンでない)分類器モデルを適用することができる。そのそれほどリーンでない分類器モデルを適用することによって生成された結果が依然として疑わしい場合、さらに強い(さらにそれほどリーンでない)分類器モデルが適用され得、挙動が悪性であるまたは良性であると断定的に分類されるまで、同様に繰り返される。
【００２６】
中央データベース(たとえば、「クラウド」)におけるそのような挙動および修正措置についての情報を記憶すること、ならびに中央データベース内に記憶された情報を使用して各モバイルデバイスの性能および電力使用レベルにおける劣化を経時的に引き起こしているファクタを知的におよび効率的に特定するために、モバイルデバイスおよびネットワークサーバを互いに連携して働くように構成することによって、モバイルデバイスが、モバイルデバイスの性能を限定する条件および望ましくない動作条件をより正確にかつ効率的に特定してそれらに対応することを、様々な態様が可能にする。
【００２７】
加えて、ネットワークサーバ内に増強決定株を含む分類器モデルを生成し、これらの分類器/モデルをモバイルデバイスに送信することによって、モバイルデバイスが、訓練データにアクセスすることなくまたはネットワークサーバ、中央データベース、もしくはクラウドネットワーク/サーバとさらに通信することなく、上記で説明した方法で増強決定株の数を選別することによってモバイルデバイス内にリーンな(またはより合焦された)分類器モデルをより迅速におよび効率的に生成することを、様々な態様が可能にする。これは、モバイルデバイスのネットワークへの依存を著しく低減し、さらに、モバイルデバイスの性能および電力消費特性を改善する。
【００２８】
いくつかの異なるセルラーおよびモバイル通信サービスおよび規格が利用可能であるか、または将来考えられ、それらのすべてが様々な態様を実装し、様々な態様から利益を受けることができる。そのようなサービスおよび規格は、たとえば、第3世代パートナーシッププロジェクト(3GPP)、ロングタームエボリューション(LTE)システム、第3世代ワイヤレスモバイル通信技術(3G)、第4世代ワイヤレスモバイル通信技術(4G)、広域移動通信システム(GSM（登録商標）)、ユニバーサルモバイル通信システム(UMTS)、3GSM（登録商標）、汎用パケット無線サービス(GPRS)、符号分割多元接続(CDMA)システム(たとえば、cdmaOne、CDMA1020TM)、GSM（登録商標）進化型高速データレート(EDGE:enhanced data rates for GSM evolution)、高度移動電話システム(AMPS:advanced mobile phone system)、デジタルAMPS(IS-136/TDMA)、エボリューションデータ最適化(EV-DO)、digital enhanced cordless telecommunications(DECT)、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX:worldwide interoperability for microwave access)、ワイヤレスローカルエリアネットワーク(WLAN)、Wi-Fi Protected Access I & II(WPA、WPA2)、およびintegrated digital enhanced network(iden)を含む。これらの技術の各々は、たとえば、音声、データ、シグナリング、および/またはコンテンツメッセージの送信および受信を伴う。個々の電気通信規格または技術に関連した用語および/または技術的詳細に対するいかなる参照も、例示目的にすぎず、請求項の文言に具体的に記載されない限り、請求項の範囲を特定の通信システムまたは技術に限定することは意図していないことを理解されたい。
【００２９】
「モバイルコンピューティングデバイス」および「モバイルデバイス」という用語は、携帯電話、スマートフォン、パーソナルまたはモバイルマルチメディアプレーヤー、携帯情報端末(PDA)、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、ウルトラブック、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応携帯電話、ワイヤレスゲームコントローラ、ならびに、性能が重要であるメモリとプログラム可能プロセッサを含み、節電方法が有益であるようなバッテリー電源で動作する同様の個人用電子デバイスのうちの、任意の1つまたはすべてを指すように、本明細書では交換可能に使用される。様々な態様は、限られたリソースを有し、バッテリーで動作する、スマートフォンなどのモバイルコンピューティングデバイスに対して特に有用であるが、これらの態様は、概して、プロセッサを含み、アプリケーションプログラムを実行する任意の電子デバイスにおいて有用である。
【００３０】
概して、モバイルデバイスの性能および電力効率は、時間がたつにつれて劣化する。近年、アンチウイルス会社(たとえば、McAfee、Symantecなど)は、この劣化を遅くすることを狙いとするモバイル用アンチウイルス、ファイアウォール、および暗号化製品のマーケティングを開始した。しかしながら、これらの解法の多くは、モバイルデバイス上で計算負荷の大きいスキャニングエンジンを周期的に実行することに依存しており、そのことが、モバイルデバイスの処理およびバッテリーリソースの多くを消費し、モバイルデバイスを遅くさせるかまたはより長い時間期間の間使えなくさせ、および/または場合によってはユーザエクスペリエンスを劣化させる。加えて、これらの解法は、一般に、知られているウイルスおよびマルウェアの検出に限定され、複数の複雑なファクタおよび/または(たとえば、性能劣化がウイルスまたはマルウェアによって引き起こされない場合に)経時的なモバイルデバイスの劣化に寄与するようにしばしば結びつく相互作用に対処しない。これらのおよび他の理由によって、既存のアンチウイルス、ファイアウォールおよび暗号化製品は、経時的なモバイルデバイスの劣化に寄与することがある多くのファクタを特定するため、モバイルデバイスの劣化を予防するため、または経年劣化したモバイルデバイスをそれの初期状態に効率的に回復させるために十分な解法を提供していない。
【００３１】
機械学習技法を使用することによって、またはコンピューティングデバイス上で実行するプロセスもしくはアプリケーションプログラムの挙動をモデリングすることによって悪性のソフトウェアを検出するために、様々な他の解法が存在する。しかしながら、これらの解法の多くは、非常に大きいデータのコーパスを評価することを必要とするか、個別のアプリケーションプログラムまたはプロセスを評価することに限定されるか、またはモバイルデバイスにおいて計算負荷の大きいプロセスの実行を必要とするので、モバイルデバイス上の使用には適さない。したがって、モバイルデバイス内のそのような解法を実施または実行することは、モバイルデバイスの応答性、性能、または電力消費特性に負のおよび/またはユーザが気付く重大な影響を及ぼすことがある。これらおよび他の理由によって、既存のモデリングおよび機械学習解法は、近代的なモバイルデバイスの複雑ではありながら資源を制約されたシステムにおける使用には十分に好適ではない。
【００３２】
たとえば、既存の機械学習ベースの解法は、特徴ベクトルを入力としてとるモデルを導出するために訓練データのコーパスを使用するようにコンピューティングデバイスを構成することを含むことがある。しかしながら、そのような解法は、試験条件および重み値をそれぞれ含む複数の増強決定株への変換または複数の増強決定株としての表示に好適な有限状態機械(または他の類似の情報構造)を含むフル分類器モデル(または分類器モデルのファミリー)を生成しない。少なくともこの理由のために、そのような解法は、モバイルデバイスの応答性または性能または電力消費特性に著しい負のまたはユーザが気付く影響を及ぼすことなく、迅速におよび効率的にモバイルデバイス挙動を特定、分析および/または分類するために使用される増強決定株の合焦されたセットを含むリーン分類器モデルを迅速におよび効率的に生成するためにモバイルデバイスプロセッサによって使用されることはできない。
【００３３】
モバイルデバイスは、比較的限定された処理、メモリ、およびエネルギーの資源を有する、資源を制限されたシステムである。近代的なモバイルデバイスはまた複雑なシステムであり、悪性であるかまたは場合によってはモバイルデバイスの性能劣化を引き起こすことがあるすべての様々なデータフロー、データ動作(読取り、書込み、データ符号化、データ送信など)、プロセス、構成要素、挙動、またはファクタ(またはそれらの組合せ)を評価することは、しばしば実行不可能である。これらおよび他の理由のために、問題の根源を正確かつ効率的に特定すること、および/または特定された問題に対して十分な改善措置を提供することは、ユーザ、オペレーティングシステム、および/またはアプリケーションプログラム(たとえば、アンチウイルスソフトウェアなど)にとってますます困難となっている。結果として、モバイルデバイスの性能および電力利用のレベルにおける経時的な劣化を防止するための改善措置を、モバイルデバイスユーザは、現在、ほとんど持っていない。
【００３４】
様々な態様が、モバイルデバイスの性能および/または電力利用のレベルをしばしば経時的に劣化させる条件および/またはモバイルデバイス挙動を効率的に特定し、分類し、モデリングし、防止し、および/または修正するためのネットワークサーバ、モバイルデバイス、システム、および方法を含む。
【００３５】
一態様では、観測器プロセス、デーモン、モジュール、またはモバイルデバイスのサブシステム(本明細書では「モジュール」と総称される)は、様々なレベルのモバイルデバイスシステムにおいて、様々なAPI、レジスタ、カウンタまたは他の構成要素(本明細書では総称して「機器を装着された構成要素(instrumented component)」)を装着するかまたは協調させることができる。観測器モジュールは、機器を装着された構成要素から挙動情報を収集することによってモバイルデバイス挙動を連続的に(または略連続的に)モニタすることができる。モバイルデバイスはまた分析器モジュールを含み、観測器モジュールは、収集された挙動情報をモバイルデバイスの分析器モジュールに、(たとえば、メモリ書込み動作、関数呼出しなどを介して)伝達することができる。分析器モジュールは、挙動情報を受信し使用して挙動ベクトルを生成し、挙動ベクトルに基づいて空間的および/または時間的相関関係を生成し、この情報を使用して、特定のモバイルデバイス挙動、サブシステム、ソフトウェアアプリケーション、またはプロセスが良性であるか、疑わしいか、悪性であるか、または性能を劣化させるかを判断する。
【００３６】
分析器モジュールは、モバイルデバイス挙動が良性であるかまたは良性でない(たとえば、悪性であるまたは性能を劣化させる)かを判断するために、収集された挙動情報に対してデータ、アルゴリズム、分類器、または挙動のモデル(本明細書では総称して「分類器モデル」)を実行すること(performing)、実施すること(executing)、および/または適用することを含み得る実時間挙動分析動作を実行するように構成され得る。各分類器モデルは、モバイルデバイス挙動の特定の態様を評価するためにモバイルデバイスプロセッサによって使用され得る情報を含む挙動モデルであり得る。分類器モデルは、モバイルデバイス上にプレインストールされるか、ダウンロードされるか、ネットワークサーバから受信されるか、モバイルデバイス内で生成されることがあり、またはそれらの任意の組合せであることがある。分類器モデルは、機械学習および他の同様の技法を使用することによって生成され得る。
【００３７】
各分類器モデルは、フル分類器モデルまたはリーン分類器モデルとしてカテゴリ化され得る。フル分類器モデルは、数千の特徴および数十億のエントリを含み得る大きい訓練データセットの関数として生成されるロバストなデータモデルであり得る。リーン分類器モデルは、特定のモバイルデバイス挙動が良性であるかまたは良性でない(たとえば、悪性であるかまたは性能を劣化させる)かを判断することに最も関連性のある特徴/エントリだけを含む縮小されたデータセットから生成される、より合焦されたデータモデルであり得る。
【００３８】
上述のように、モバイルデバイスの劣化の原因または根源を適切に特定するために分析を必要とする数千の特徴/ファクタおよび数十億のデータポイントが存在することがある。それゆえ、分析器モジュールによって使用される各分類器モデルは、モバイルデバイスが、特定のモバイルデバイス挙動が良性であるかまたは良性でない(たとえば、悪性であるかまたは性能を劣化させる)かに関して正確な決断を下すことができるように、非常に多数の特徴、ファクタ、およびデータポイントに対して訓練されなければならない。さらに、モバイルデバイスは資源を制約されたシステムであるので、分析器モジュールがすべてのこれらの特徴、ファクタ、およびデータポイントを評価することは、しばしば実行不可能である。それゆえ、分析器モジュールは、場合によってはモバイルデバイス挙動を分類するときに分析が必要なすべての特徴、ファクタ、およびデータポイントに対して、ターゲットとされるサブセットを評価することに合焦するリーン分類器モデルを適用することが重要である。
【００３９】
様々な態様は、モバイルデバイス挙動が良性であるか良性でない(たとえば、悪性であるまたは性能を劣化させる)かを判断することに最も関連性のある特徴、ファクタ、およびデータポイントを知的におよび効率的に特定するために互いに連携して働くように構成されたモバイルデバイスおよびネットワークサーバを含む。ネットワークサーバ内に増強決定株を含む分類器モデルを生成することおよびこれらの分類器/モデルをモバイルデバイスに送信することによって、モバイルデバイスがモバイルデバイス内でリーン分類器モデルを迅速におよび効率的に生成することを、様々な態様が可能にする。
【００４０】
様々な態様では、ネットワークサーバは、モバイルデバイス挙動を特性化している間に、クラウドサービス/ネットワークからモバイルデバイス挙動および状態、特徴、ならびに条件に関する大量の情報を受信するように構成され得る。この情報は、モバイルデバイス挙動ベクトルの非常に大きいクラウドコーパスの形態であり得る。ネットワークサーバは、挙動ベクトルの非常に大きいクラウドコーパスを正確に記述するフル分類器モデル(すなわち、ロバストなデータ/挙動モデル)を生成するためにこの情報を使用することができる。ネットワークサーバは、いくつかの異なるモバイルデバイスのうちのいずれかに対して経時的に劣化を引き起こすことがあるすべてのまたは大半の特徴、データポイント、および/またはファクタを含むようにフル分類器モデルを生成することができる。
【００４１】
一態様では、ネットワークサーバは、増強決定株または増強決定株のファミリーなど、有限状態機械表示または表現を含むようにフル分類器モデルを生成することができる。この有限状態機械表示または表現は、モバイルデバイスプロセッサにおいて選別アルゴリズムの適用を介してモバイルデバイス内での使用または実施に好適なリーン分類器モデルに、迅速におよび効率的に選別、修正または変換され得る。有限状態機械表示または表現は、試験条件、状態情報、状態遷移規則、および他の同様の情報を含む情報構造であり得る。一態様では、有限状態機械表示または表現は、条件、特徴、ファクタ、またはモバイルデバイスの挙動の態様をそれぞれ評価または試験する大きいまたはロバストな増強決定株のファミリーを含む情報構造であり得る。
【００４２】
モバイルデバイスは、ネットワークサーバからフル分類器モデルを受信し、受信されたフル分類器モデルを使用してモバイルデバイス内でローカルにリーン分類器モデル(すなわち、データ/挙動モデル)を生成するように構成され得る。モバイルデバイスは、受信されたフル分類器モデル内に含まれる増強決定株のセットを選別して、縮小もしくは限定された数の異なるモバイルデバイスの状態、特徴、挙動、または条件を特定、試験、評価しおよび/またはそれらに依存する増強決定株のサブセットにすることによってこれらのローカルなリーン分類器モデルを生成することができる。増強決定株のフルセットのこの選別は、増強決定株を選択することと、選択された決定株と同じモバイルデバイスの状態、特徴、挙動または条件に依存する(およびしたがって、1つの判断結果に基づいて適用され得る)すべての他の増強決定株を特定することと、同じモバイルデバイスの状態、特徴、挙動または条件に依存する選択されたおよびすべての特定された他の増強決定株をリーン分類器モデル内に含むことと、リーン分類器モデル内に未だ含まれていない縮小された/限られた数の選択された増強決定株に対してプロセスを反復することとによって達成され得る。試験される異なる数のモバイルデバイスの状態、特徴、挙動、または条件を使用してプロセスを反復することによって、評価される状態、特徴、挙動、または条件の数によって決定される、変化するリーン性の程度を有するリーン分類器モデルのファミリーが生成され得る。加えて、これらのリーン分類器モデルの各々は、別のリーン分類器モデルと同じ特徴または条件の一部または全部を、評価される試験結果、特徴、または条件の重要性に対して割り当てられた異なるしきい値および/または異なる重みを使用して試験または評価することができる。したがって、リーン分類器モデルを生成または再生するプロセスは、決定株と関連付けられたしきい値および/または重みを再計算するステップを含むことができる。
【００４３】
これらのリーン分類器モデルは、(フル分類器モデルと比較して)試験されなければならない状態、特徴、挙動、または条件の縮小されたサブセットを含むので、観測器モジュールおよび/または分析器モジュールは、モバイルデバイスの処理、メモリ、またはエネルギーの資源の量を過剰に消費することなく、モバイルデバイス挙動が良性であるかまたはモバイルデバイスの性能の劣化を引き起こしているかどうかを迅速におよび正確に判断するためにそれらを使用することができる。上述のように、モデルが良性または悪性のいずれかであるとしてカテゴリ化できない(およびそれゆえモデルによって疑わしいとしてカテゴリ化される)挙動に遭遇するまで、リーン分類器モデルのファミリーのうちの最もリーンなモデル(すなわち、最小数の試験条件に基づくリーン分類器モデル)が規定通りに適用され得、その時点において、よりロバストな(すなわち、それほどリーンでない)リーン分類器モデルが、良性または悪性のいずれかであるとして挙動をカテゴリ化する試みにおいて適用され得る。挙動の断定的な分類が達成されるまで、生成されたリーン分類器モデルのファミリー内のより一層ロバストなリーン分類器モデルのアプリケーションが適用され得る。このようにして、観測器モジュールおよび/または分析器モジュールは、最も完全なものの使用を制限するが、挙動を断定的に分類するためにロバストな分類器モデルが必要とされる状況に対する資源集約的リーン分類器モデルによって、効率性と正確さとの間のバランスをとることができる。
【００４４】
様々な態様では、モバイルデバイスは、有限状態機械表現/表示を増強決定株に変換すること、フル分類器モデル内に含まれる増強決定株のフルセットを選別して、限られた数の異なるモバイルデバイスの状態、特徴、挙動、または条件に依存する増強決定株の1つまたは複数のサブセットにすること、および増強決定株の1つまたは複数のサブセットを使用してモバイルデバイス挙動を知的にモニタ、分析、および/または分類することによって、1つまたは複数のリーン分類器モデルを生成するように構成され得る。増強決定株を使用することで、観測器モジュールおよび/または分析器モジュールが、データを再訓練するためにクラウドまたはネットワークと通信することなくリーンデータモデルを生成および適用することが可能になり、そのことで、モバイルデバイスのネットワークサーバおよびクラウドへの依存が著しく低減される。これは、モバイルデバイスとネットワークサーバとの間のフィードバック通信を省略し、さらに、モバイルデバイスの性能および電力消費特性を改善する。
【００４５】
増強決定株は、厳密に1つのノード(したがって1つの試験質問(test question)または試験条件)と重み値とを有し、したがってデータ/挙動の二項分類における使用に十分に好適な、1レベル決定木である。すなわち、挙動ベクトルを増強決定株に適用することで、2値の答え(たとえば、はいまたはいいえ)がもたらされる。たとえば、増強決定株によって試験される質問/条件が「ショートメッセージサービス(SMS)送信の周波数が毎分x未満であるか」である場合、「3」の値を増強決定株に適用することで、(「3未満」のSMS送信に対して)「はい」の答えまたは(「3以上」のSMS送信に対して)「いいえ」の答えのいずれかがもたらされる。
【００４６】
増強決定株は、それらが非常に単純で原初的である(したがって処理資源をあまり必要としない)ので、効率的である。増強決定株はまた、高度に並列化可能であり、したがって多くの株が並列に/同時に(たとえば、モバイルデバイス内の複数のコアまたはプロセッサによって)適用または試験され得る。
【００４７】
以下で説明するように、ネットワークサーバ(または別のコンピューティングデバイス)は、増強決定木モデルなど、モバイルデバイス挙動の別のより複雑なモデルから増強決定株タイプのフル分類器モデルを生成することができる。そのような複雑なモデルは、精緻な分類システムにおけるモバイルデバイス挙動を特徴付けるデバイスの状態、動作、およびモニタされるノードの間の相互作用のフルセット(または略フルセット)を相関させることができる。上述のように、サーバまたは他のコンピューティングデバイスは、多数のモバイルデバイスから収集されたモバイルデバイスの挙動ベクトルのクラウドコーパスを記述するモデルを生成するために、機械学習技法を適用することによって複雑なフル分類器モデルを生成することができる。一例として、増強決定木分類器モデルは、現在のモバイルデバイス挙動が悪性であるかまたは良性であるかの判断に到達するために、試験可能条件の決定ノードを通る数百の経路をトレースすることがある。そのような複雑なモデルは、いくつかの知られている学習および相関のモデリング技法を使用してサーバ内で生成され得る。そのような複雑なモデルは、数百のモバイルデバイスからのデータから学習することによって悪性の挙動を正確に認識するのに十分に有効となり得るが、特定のモバイルデバイスの構成および挙動に対するそれらの適用は、特にモデルが複雑でマルチレベルの決定木を伴う場合に著しい処理を必要とすることがある。モバイルデバイスは、一般的に資源が限られているので、そのようなモデルを使用することは、デバイス性能およびバッテリー寿命に強い影響を与えることがある。
【００４８】
モバイルデバイスによる使用をより助長するロバストな分類器モデルを提供するために、サーバ(たとえば、クラウドサーバまたはネットワークサーバ)または別のコンピューティングデバイス(たとえば、モバイルデバイスまたはモバイルデバイスに結合するコンピュータ)は、複雑な分類器モデルを大きい増強決定株モデルに変換することができる。決定株に関わるより単純な判断およびそのような分類器モデルを並列処理で適用する能力によって、モバイルデバイスが、ネットワークサーバによって実行される分析からより恩恵を受けることが可能になる。同じく、以下で説明するように、増強決定株のフル分類器モデルが、以下で説明する態様方法を使用してリーン分類器モデルを生成するためにモバイルデバイスによって使用され得る。
【００４９】
一態様では、増強決定株のフル分類器モデルを生成するサーバまたは他のコンピューティングデバイスは、以下でより詳細に説明する態様プロセスに従うことによって、そのように実施することができる。要約すると、サーバまたは他のコンピューティングデバイスは、複雑なフル分類器モデル(たとえば、増強決定木モデル)内でノードを選択し、ノードが悪性の挙動を予測する機会のパーセンテージ(percentage of the time)を決定するためにモデルを適用することができる。言い換えれば、サーバまたは他のコンピューティングデバイスは、ノードの1つの分岐を選択し、その分岐に接続されるすべての後続のノードおよび経路を追従して、分岐が悪性の挙動の判断に導く機会の割合を決定することができる。一態様では、機会のこの割合は、ノードに対する「重み」ファクタを計算するために使用され得る。たとえば、後続の経路が機会の80%で悪性の挙動の結論をもたらす1つの分岐を有する決定ノードが、0.8の重みファクタと関連付けられてよく、この単一の決定ノードが潜在的に悪性の(したがって疑わしい)挙動の高信頼のインジケータであることを示している。別の例として、その分岐が等しく悪性の挙動の結論につながり得る複雑な分類器モデル内の決定ノードは、悪性の挙動を認識することにおいて支援をほとんど提供せず、したがって非常に低い重みファクタまたは優先度を与えられてよい。
【００５０】
各決定ノードからの結果を追跡するプロセスにおいて、サーバまたは他のコンピューティングデバイスは、決定ノードが2値(すなわち、「はい」または「いいえ」)でない場合、多様な試験条件を各ノードに適用することができる。たとえば、複雑な分類器モデルは、値(たとえば、1分当たりに送信されるSMSメッセージの数)の範囲を調整することができ、最終結論は値に依存する。しかしながら、値の範囲は、決定株の2値の性質と矛盾する。したがって、サーバまたは他のコンピューティングデバイスは、値によって特徴付けられた条件を助長するそのようなノードに対して、2値の決定または試験の範囲を拡張することができる。たとえば、サーバまたは他のコンピューティングデバイスは、「1超」、「10超」および「100超」など、いくつかのしきい値の試験または条件を、複雑な分類器モデルを介して生成し試験することができる。そのようなしきい値試験は、複雑なモデルを研究することによってサーバが到達できる結論に基づいてサーバによって特定または選択され得る。次に、そのようなしきい値ベースの試験の各々は、その予測値およびしたがってそのブースティングファクタを決定するために試験され得る単一の決定株として扱われ得る。
【００５１】
複雑な分類器モデル内のすべての決定ノードを通ってこのプロセスを追従することによって、サーバまたは他のコンピューティングデバイスは、複雑な多層決定モデルを多数の増強決定株の単層モデルに変換することができる。次に、サーバまたは他のコンピューティングデバイスは、非常に小さい予測または分類の恩恵しか提供しない試験条件(たとえば、「電源はオンか」)を除去するために、その値がしきい値より低い決定株を除去することによってモデルをトリミングすることができる。
【００５２】
結果として得られたそのような株の数は、フル分類器モデル内で大きいことがあるが、株の2値の性質は、とりわけ資源を制約されているプロセッサにおいて、それらの適用を容易にすることができる。一態様では、サーバまたは他のコンピューティングデバイスは、増強決定株のフル分類器モデルを、それらの使用のためにモバイルデバイスに提供することができる。
【００５３】
増強決定株の大きい分類器モデルを生成するプロセスは、多くのモバイルデバイスからの入力を分析し、複雑な挙動のフル分類器モデルを生成するクラウドサーバによって生成され得る。というのは、そのようなサーバは、分析を完了するための処理資源および処理時間を有することになるからである。しかしながら、上述のように、態様方法はまた、モバイルデバイスさえも含む別のコンピューティングデバイスによっても実行され得る。この態様では、サーバ(たとえば、クラウドまたはネットワークサーバ)は、複雑な挙動のフル分類器モデルを他のコンピューティングデバイスに配信し、他のコンピューティングデバイスは、次に、上記で概説し以下でより詳細に述べるようにそのモデルを処理し、それを増強決定株モデルに変換することができる。たとえば、ユーザが自分のモバイルデバイスに結合するパーソナルコンピュータは、複雑な挙動のフル分類器モデルをダウンロードし、次に態様方法を実行して、パーソナルコンピュータがモバイルデバイスに対して(たとえば、ワイヤードまたはワイヤレスのデータリンクを介して)利用可能にする大きい増強決定株モデルを生成することができる。別の例として、モバイルデバイスは、複雑な挙動のフル分類器モデルをダウンロードし、次に、デバイスが充電されていて使用されていない深夜の時間帯の間などに態様方法を実行して、デバイスがメモリ内に記憶する大きい増強決定株モデルを生成することができる。サーバまたは別のコンピューティングデバイスによって実施されるプロセスは非常に似ているので、態様方法は、サーバによって実行されるときに以下でより詳細に説明される。しかしながら、その説明は例示を目的とし、態様方法をサーバ上で実行されるものと限定することは、特許請求の範囲において明確にそのように記載されている場合を除いて、意図されていない。
【００５４】
さらなる態様では、モバイルデバイスは、訓練データにアクセスすることなく、およびモバイルデバイスの処理、メモリ、またはエネルギーの資源の量を過剰に消費することなく、決定株内で試験される限られた数のファクタを選択することによってリーン分類器モデルを構築するために受信されたまたは自己生成された増強決定株の大きい分類器モデルを使用するように構成され得る。分析器モジュールは、マルウェアを特定し、デバイス挙動を悪性または良性であるとして分類するために選択された増強決定株のリーン分類器モデルを使用することができる。以下でより十分に説明するように、モバイルデバイスは、試験されることになるモニタする特徴の数(たとえば、15)を決定することと、第1の特徴を選択し、その特徴の試験を含む増強決定株のすべて(たとえば、モニタされた特徴から取得された値に基づくしきい値試験を有するすべての株)をリーン分類器に組み込むことと、リーン分類器モデル内で取り組まれる特徴の数が決定された数になるまでこのプロセスを反復することとによって、リーン分類器モデルを生成することができる。そのようなリーン分類器モデル内の増強決定株の数は、特徴の数より相当に大きくなることがあることは注目に値する。
【００５５】
一態様では、モバイルデバイスは、複数の増強決定株への変換に好適な有限状態機械を含むフル分類器モデルを受信するように構成され得る。モバイルデバイスは、フル分類器モデルに基づいてリーン分類器モデルを生成し得、そのことは、フル分類器モデルの有限状態機械を増強決定株に変換し、これらの増強決定株をリーン分類器モデルとして使用することによって達成され得る。
【００５６】
様々な態様は、図1に示す例示的な通信システム100などの様々な通信システム内で実装され得る。典型的なセル電話ネットワーク104は、ネットワーク運用センタ108に結合された複数のセル基地局106を含み、ネットワーク運用センタ108は、たとえば電話陸上通信線(たとえば、図示していないPOTSネットワーク)およびインターネット110を介して、モバイルデバイス102(たとえば、セルフォン、ラップトップ、タブレットなど)と他のネットワーク宛先との間のボイス呼およびデータを接続するように動作する。モバイルデバイス102と電話ネットワーク104との間の通信は、4G、3G、CDMA、TDMA、LTEおよび/または他のセル電話通信技術などの双方向ワイヤレス通信リンク112を介して遂行され得る。電話ネットワーク104は、インターネット110への接続を提供するネットワーク運用センタ108に結合されるかまたはネットワーク運用センタ108内の、1つまたは複数のサーバ114も含み得る。
【００５７】
通信システム100は、電話ネットワーク104およびインターネット110に接続されたネットワークサーバ116をさらに含み得る。ネットワークサーバ116と電話ネットワーク104との間の接続は、インターネット110を介するかまたは(破線の矢印で示すように)私的ネットワークを介することができる。ネットワークサーバ116はまた、クラウドサービスプロバイダネットワーク118のネットワークインフラストラクチャ内のサーバとして実装され得る。ネットワークサーバ116とモバイルデバイス102との間の通信は、電話ネットワーク104、インターネット110、私的ネットワーク(図示せず)、またはそれらの任意の組合せを介して達成され得る。
【００５８】
ネットワークサーバ116は、モバイルデバイス102にリーンなデータ/挙動モデルを送り、モバイルデバイス102は、疑わしいまたは性能劣化させるモバイルデバイス挙動、ソフトウェアアプリケーション、プロセスなどを特定するためにリーンなデータ/挙動モデルを受信して使用することができる。ネットワークサーバ116はまた、モバイルデバイスのデータ/挙動モデルを交換、更新、生成および/または維持するために、分類情報とモデリング情報とをモバイルデバイス102に送ることができる。
【００５９】
モバイルデバイス102は、挙動、状態、分類、モデリング、成功率および/または統計的情報をモバイルデバイス102内に収集し、収集された情報を分析のために(たとえば、電話ネットワーク104を介して)ネットワークサーバ116に送ることができる。ネットワークサーバ116は、モバイルデバイス102から受信された情報を使用してリーンなデータ/挙動モデルを更新もしくは精細化すること、または分類/モデリング情報を使用してさらに標的化および/または低減される特徴のサブセットを含むことができる。
【００６０】
一態様では、モバイルデバイス102は、収集された挙動の状態、分類、モデリング、成功率、および/または統計情報を使用して、モバイルデバイス102内にさらなる、ターゲットとされおよび/または縮小された特徴のサブセットを含むリーン分類器モデル(またはデータ/挙動モデル)を生成、更新または精細化するように構成され得る。これは、モバイルデバイスとネットワークサーバ116との間のフィードバック通信の量を低減し、モバイルデバイス102の性能および電力消費特性を改善する。
【００６１】
図2は、特定のモバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが、悪性である/性能劣化させるか、疑わしいか、または良性であるかを判断するように構成された一態様のモバイルデバイス102における例示的な論理構成要素と情報フローとを示す。図2に示す例では、モバイルデバイス102は、挙動観測器モジュール202と、挙動分析器モジュール204と、外部コンテキスト情報モジュール206と、分類器モジュール208と、アクチュエータモジュール210とを含む。一態様では、分類器モジュール208は、挙動分析器モジュール204の一部として実装され得る。一態様では、挙動分析器モジュール204は、1つまたは複数の分類器モジュール208を生成するように構成され得、1つまたは複数の分類器モジュール208の各々は、1つまたは複数の分類器を含み得る。
【００６２】
モジュール202〜210の各々は、ソフトウェア、ハードウェアまたはそれらの任意の組合せで実装され得る。様々な態様では、モジュール202〜210は、オペレーティングシステムの一部の中(たとえば、カーネル内、カーネル空間内、ユーザ空間内など)、個別のプログラムもしくはアプリケーション内、専用のハードウェアバッファもしくはプロセッサ内、またはそれらの任意の組合せに実装され得る。一態様では、モジュール202〜210のうちの1つまたは複数は、モバイルデバイス102の1つまたは複数のプロセッサ上で遂行されるソフトウェア命令として実装され得る。
【００６３】
挙動観測器モジュール202は、アプリケーションプログラミングインターフェース(API)をモバイルデバイスの様々なレベル/モジュールにおいて取り付けるかまたは連携させるように構成され、取り付けられたAPIを介して様々なレベル/モジュールにおいてモバイルデバイスの動作および事象(たとえば、システム事象、状態変化など)をモニタ/観測し、観測された動作/事象に関する情報を収集し、収集された情報を知的にフィルタ処理し、フィルタ処理された情報に基づいて1つまたは複数の観測値を生成し、ならびに生成された観測値をメモリ内(たとえば、ログファイルなどの中)に記憶しおよび/または生成された観測値を挙動分析器モジュール204に(たとえば、メモリ書込み、関数呼出しなどを介して)送ることができる。
【００６４】
挙動観測器モジュール202は、アプリケーションフレームワークまたはランタイムライブラリ、システムコールAPI、ファイルシステムおよびネットワーキングサブシステム動作、デバイス(センサーデバイスを含む)状態変化、ならびに他の同様の事象内のライブラリアプリケーションプログラミングインターフェース(API)呼出しに関する情報を収集することによって、モバイルデバイスの動作および事象をモニタ/観測することができる。挙動観測器モジュール202はまた、ファイルシステム活動をモニタでき、ファイルシステム活動には、ファイル名、ファイルアクセスのカテゴリ(パーソナル情報またはノーマルデータファイル)を探索すること、ファイル(たとえば、type exe、zipなど)を生成または削除すること、ファイル読出し/書込み/シーク動作、ファイルパーミッションを変更することなどが含まれる。
【００６５】
挙動観測器モジュール202はまた、データネットワーク活動をモニタでき、データネットワーク活動には、接続のタイプ、プロトコル、ポート数、デバイスが接続されるサーバ/クライアント、接続数、通信の容量または周波数などが含まれる。挙動観測器モジュール202は、電話ネットワーク活動をモニタでき、電話ネットワーク活動には、送り出された、受信された、またはインターセプトされた呼またはメッセージ(たとえば、SMSなど)のタイプおよび数(たとえば、かけられた報奨金の呼の数)をモニタすることを含み得る。
【００６６】
挙動観測器モジュール202はまた、フォークの数、メモリアクセス動作、開いたファイルの数などをモニタすることを含み得る、システムリソース使用をモニタできる。挙動観測器モジュール202は、ディスプレイはオンかまたはオフか、デバイスはロックされているかまたはロックされていないか、バッテリーの残量、カメラの状態など、様々なファクタをモニタすることを含み得る、モバイルデバイスの状態をモニタできる。挙動観測器モジュール202はまた、たとえば、重要なサービス(ブラウザ、コントラクトプロバイダなど)への意図、プロセス間通信(IPC)の程度、ポップアップウィンドウなどをモニタすることによってプロセス間通信をモニタできる。
【００６７】
挙動観測器モジュール202はまた、カメラ、センサー、電子ディスプレイ、WiFi通信構成要素、データコントローラ、メモリコントローラ、システムコントローラ、アクセスポート、タイマー、周辺デバイス、ワイヤレス通信構成要素、外部メモリチップ、電圧レギュレータ、発振器、フェーズロックループ、周辺ブリッジ、およびモバイルコンピューティングデバイス上で動作するプロセッサおよびクライアントをサポートするために使用される他の同様の構成要素を含み得る、1つまたは複数のハードウェア構成要素のドライバ統計および/またはステータスをモニタ/観測できる。
【００６８】
挙動観測器モジュール202はまた、モバイルコンピューティングデバイスおよび/またはモバイルデバイスサブシステムの状態またはステータスを示す1つまたは複数のハードウェアカウンタをモニタ/観測できる。ハードウェアカウンタは、モバイルコンピューティングデバイス内で発生するハードウェア関連の活動または事象のカウントまたは状態を記憶するように構成されたプロセッサ/コアの専用レジスタを含み得る。
【００６９】
挙動観測器モジュール202はまた、ソフトウェアアプリケーションの活動または動作、アプリケーションダウンロードサーバ(たとえば、Apple(登録商標)App Store server)からのソフトウェアダウンロード、ソフトウェアアプリケーションによって使用されるモバイルデバイス情報、呼情報、テキストメッセージ情報(たとえば、SendSMS、BlockSMS、ReadSMSなど)、メディアメッセージ情報(たとえば、ReceiveMMS)、ユーザアカウント情報、ロケーション情報、カメラ情報、加速度計情報、ブラウザ情報、ブラウザベース通信のコンテンツ、音声ベース通信のコンテンツ、短距離無線通信(たとえば、Bluetooth（登録商標）、WiFiなど)、テキストベース通信のコンテンツ、記録されたオーディオファイルのコンテンツ、電話帳または連絡先情報、連絡先リストなどをモニタ/観測できる。
【００７０】
挙動観測器モジュール202は、ボイスメールを含む通信(VoiceMailComm)を含むモバイルデバイスの送信または通信、デバイス識別子(DeviceIDComm)、ユーザアカウント情報(UserAccountComm)、カレンダー情報(CalendarComm)、ロケーション情報(LocationComm)、記録されたオーディオ情報(RecordAudioComm)、加速度計情報(AccelerometerComm)などをモニタ/観測できる。
【００７１】
挙動観測器モジュール202は、コンパス情報、モバイルデバイス設定、バッテリー寿命、ジャイロスコープ情報、圧力センサー、磁気センサー、スクリーン活動などの使用をモニタ/観測し、それらを更新/変更することができる。挙動観測器モジュール202は、ソフトウェアアプリケーション(AppNotifications)、アプリケーション更新などへおよびそれらから通信される通知をモニタ/観測できる。挙動観測器モジュール202は、第2のソフトウェアアプリケーションのダウンロードおよび/またはインストールを要求している第1のソフトウェアアプリケーションに関する条件または事象をモニタ/観測できる。挙動観測器モジュール202は、パスワードのエントリなど、ユーザ照合に関する条件または事象をモニタ/観測できる。
【００７２】
挙動観測器モジュール202はまた、アプリケーションレベル、無線レベルおよびセンサーレベルを含む、モバイルデバイスの複数のレベルにおける条件または事象をモニタ/観測できる。アプリケーションレベルの観測は、顔認識ソフトウェアを介してユーザを観測すること、ソーシャルストリームを観測すること、ユーザによって入力された注釈を観測すること、PassBook/Google Wallet/Paypalの使用に関する事象を観測することなどを含み得る。アプリケーションレベルの観測はまた、バーチャルプライベートネットワーク(VPN)の使用に関する事象、および同期、音声探索、音声制御(たとえば、1語を発することによる電話のロック/アンロック)、言語翻訳機、計算に対するデータのオフロード、ビデオストリーミング、ユーザ活動のないカメラの使用、ユーザ活動のないマイクロフォンの使用などに関する事象を観測することを含み得る。
【００７３】
無線レベルの観測は、無線通信リンクを設立するかまたは情報を送信する前のモバイルデバイスとのユーザの対話、二重/多重加入者識別モジュール(SIM)カード、インターネット無線、携帯電話テザリング、計算に対するデータのオフロード、デバイス状態通信、ゲームコントローラまたはホームコントローラとしての使用、車両通信、モバイルデバイス同期などのうちのいずれかまたは複数の存在、実在、または量を判断するステップを含むことができる。無線レベルの観測はまた、位置決め、ピアツーピア(p2p)通信、同期、車両対車両通信、および/または機械対機械(m2m)通信のための無線(WiFi、WiMax、Bluetooth（登録商標）など)の使用をモニタするステップを含み得る。無線レベルの観測は、ネットワークトラフィックの使用、統計、またはプロファイルをモニタするステップをさらに含み得る。
【００７４】
センサーレベルの観測は、モバイルデバイスの使用環境および/または外部環境を判断するために磁気センサーまたは他のセンサーをモニタするステップを含み得る。たとえば、モバイルデバイスプロセッサは、電話が(たとえば、ホルスター内の磁石を検知するように構成された磁気センサーを介して)ホルスター内にあるかまたは(たとえば、カメラまたは光センサーによって検出される光の量を介して)ユーザのポケット内にあるかを判断するように構成され得る。たとえば、モバイルデバイスがホルスターに入れられている間に発生する、ユーザによるアクティブな使用(たとえば、写真またはビデオを撮ること、メッセージを送ること、音声呼を行うこと、音を録音することなど)に関する活動および機能は、(たとえば、ユーザを追跡またはスパイするために)デバイス上で遂行している不正なプロセスのサインであり得るので、モバイルデバイスがホルスター内にあることを検出することは、疑わしい挙動を認識することに関連し得る。
【００７５】
使用環境または外部環境に関するセンサーレベルの観測の他の例には、近距離場通信(NFC)を検出すること、クレジットカードスキャナ、バーコードスキャナ、またはモバイルタグリーダから情報を収集すること、ユニバーサルシリアルバス(USB)電力充電源の存在を検出すること、キーボードまたは補助デバイスがモバイルデバイスに結合されていることを検出すること、モバイルデバイスが(たとえば、USBなどを介して)コンピューティングデバイスに結合されていることを検出すること、LED、フラッシュ、フラッシュライト、または光源が修正または(たとえば、緊急シグナリングアップなどを悪意を持ってディセーブルして)ディセーブルされているかどうかを判断すること、スピーカまたはマイクロフォンがスイッチオンまたは電源オンにされていることを検出すること、充電事象または電力事象を検出すること、モバイルデバイスがゲームコントローラとして使用されていることを検出することなどを含み得る。センサーレベルの観測はまた、医療もしくはヘルスケアのセンサーからまたはユーザの体をスキャンすることから情報を収集すること、USB/オーディオジャックに差し込まれた外部センサーから情報を収集すること、(たとえば、振動インターフェースなどを介して)触知センサーまたは触覚センサーから情報を収集すること、モバイルデバイスの熱状態に関する情報を収集することなどを含み得る。
【００７６】
一態様では、モニタされるファクタの数を管理可能レベルまで低減するために、挙動観測器モジュール202は、モバイルデバイスの劣化に寄与する可能性があるすべてのファクタの小さいサブセットである初期の挙動またはファクタのセットをモニタ/観測することによって粗い観測を実行できる。一態様では、挙動観測器モジュール202は、ネットワークサーバ116および/またはクラウドサービスもしくはネットワーク118内の構成要素から挙動および/またはファクタの初期のセットを受信できる。一態様では、挙動/ファクタの初期のセットは、ネットワークサーバ116またはクラウドサービス/ネットワーク118から受信されたデータ/挙動モデル内で規定され得る。一態様では、挙動/ファクタの初期のセットは、低減された特徴モデル(RFM)内で規定され得る。
【００７７】
挙動分析器モジュール204および/または分類器モジュール208は、挙動観測器モジュール202から観測値を受信し、受信された情報(すなわち、観測値)を外部コンテキスト情報モジュール206から受信されたコンテキスト情報と比較し、デバイスの劣化に経時的に寄与する(または寄与しそうである)かまたは場合によってはデバイスに問題を引き起こす可能性がある、受信された観測値に関連するサブシステム、プロセス、および/またはアプリケーションを特定することができる。
【００７８】
一態様では、挙動分析器モジュール204および/または分類器モジュール208は、デバイスの劣化に経時的に寄与するまたは寄与しそうであるかまたは場合によってはデバイスに問題を引き起こす可能性がある、挙動、プロセス、またはプログラムを特定するために、情報の限定されたセット(すなわち、粗い観測値)を利用するための知性を含み得る。たとえば、挙動分析器モジュール204は、様々なモジュール(たとえば、挙動観測器モジュール202、外部コンテキスト情報モジュール206など)から収集された(たとえば、観測値の形の)情報を分析し、モバイルデバイスの正常動作挙動を学習し、比較結果に基づいて1つまたは複数の挙動ベクトルを生成するように構成され得る。挙動分析器モジュール204は、生成された挙動ベクトルをさらなる分析のために分類器モジュール208に送ることができる。
【００７９】
分類器モジュール208は、挙動ベクトルを受信し、それらを1つまたは複数の挙動モジュールと比較して、特定のモバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが性能劣化させる/悪性であるか、良性であるか、または疑わしいかを判断する。
【００８０】
挙動、ソフトウェアアプリケーション、またはプロセスが悪性であるまたは性能劣化させると分類器モジュール208が判断するとき、分類器モジュール208はアクチュエータモジュール210に通知し、アクチュエータモジュール210は、悪性であるまたは性能劣化させると判断されるモバイルデバイス挙動を修正するために様々な活動または動作を実行し、および/または特定された問題を直す、矯正する、隔離する、または場合によっては解決するための動作を実行することができる。
【００８１】
分類器モジュール208が、挙動、ソフトウェアアプリケーション、またはプロセスが疑わしいと判断するとき、分類器モジュール208は挙動観測器モジュール202に通知し、挙動観測器モジュール202は、それの観測の細分性(すなわち、モバイルデバイス挙動が観測される詳細さのレベル)の調節および/または分類器モジュール208から受信された情報(たとえば、実時間分析動作の結果)に基づいて観測される挙動の変更を行い、新しいまたは追加の挙動情報を生成または収集し、かつさらなる分析/分類のために新しい/追加の情報を挙動分析器モジュール204および/または分類器モジュール208に送ることができる。挙動観測器モジュール202と分類器モジュール208との間のそのようなフィードバック通信は、疑わしいもしくは性能劣化させるモバイルデバイス挙動の原因が特定されるまで、処理またはバッテリーの消費のしきい値に到達するまで、または観測細分性をさらに増加させても疑わしいまたは性能劣化させるモバイルデバイス挙動の原因が特定され得ないとモバイルデバイスプロセッサが判断するまで、モバイルデバイス102が繰り返し、観測の細分性を増加させる(すなわち、より微細にまたはより詳細に観測する)ことまたは観測される特徴/挙動を変更することを可能にする。そのようなフィードバック通信はまた、モバイルデバイス102が、モバイルデバイスの処理、メモリ、またはエネルギーのリソースの量を過剰に消費することなく、データ/挙動モデルをモバイルデバイス内でローカルに調節または修正することを可能にする。
【００８２】
一態様では、挙動観測器モジュール202および挙動分析器モジュール204は、限定された粗い観測値から疑わしい挙動を特定するため、より詳細に観測するために挙動を動的に判断するため、および観測のために必要な詳細さのレベルを動的に判断するために、コンピューティングシステムの挙動の実時間挙動分析を個別にまたは集合的に提供できる。この方式では、挙動観測器モジュール202は、デバイス上にプロセッサ、メモリまたはバッテリーのリソースを多量に必要とすることなく、モバイルデバイス102が問題を効率的に特定し、モバイルデバイス上で問題が発生するのを防止することを可能にする。
【００８３】
図3および図4は、モバイルデバイス102の処理、メモリ、またはエネルギーのリソースの量を過剰に消費することなく、アクティブに悪性であるもしくは不完全に記述されたソフトウェアアプリケーションおよび/または疑わしいもしくは性能劣化させるモバイルデバイス挙動を、モバイルデバイス102上で知的かつ効率的に特定するために、クラウドサービス/ネットワーク118と連動して働くように構成されたネットワークサーバ116を含む、一態様のシステム300における例示的な構成要素および情報フローを示す。図3に示す例では、ネットワークサーバ116はクラウドモジュール302と、モデル発生器モジュール304と、訓練データモジュール306とを含む。モバイルデバイス102は挙動観測器モジュール202と、分類器モジュール208と、アクチュエータモジュール210とを含む。一態様では、分類器モジュール208は、挙動分析器モジュール204(図2に示す)の中にまたは一部として含まれ得る。一態様では、モデル発生器モジュール304は、実時間オンライン分類器であり得る。
【００８４】
クラウドモジュール302は、クラウドサービス/ネットワーク118から大量の情報を受信し、モバイルデバイスの劣化に経時的に寄与する可能性がある特徴、データポイント、および/またはファクタのすべてまたは大半を含む、完全またはロバストなデータ/挙動モデルを生成するように構成され得る。
【００８５】
モデル発生器モジュール304は、クラウドモジュール302内で生成された完全なモデルに基づいてリーンなデータ/挙動モデルを生成するように構成され得る。一態様では、リーンなデータ/挙動モデルを生成するステップは、クラウドモジュール302によって生成された完全なモデル内に含まれる特徴およびデータポイントのサブセットを含む1つまたは複数の低減された特徴モデル(RFM)を生成するステップを含み得る。一態様では、モデル発生器304は、特定のモバイルデバイス挙動が良性であるかまたは悪性である/性能劣化させるかを分類器モジュール208が最終的に判断することを可能にする最高の確率を有するように決定された情報を含む初期の特徴セット(たとえば、初期の低減された特徴モデル)を含むリーンなデータ/挙動モデルを生成できる。モデル発生器304は、生成されたリーンモデルを挙動観測器モジュール202に送ることができる。
【００８６】
挙動観測器モジュール202は、受信されたモデルに基づいてモバイルデバイス挙動をモニタ/観測し、観測値を生成し、観測値を分類器モジュール208に送ることができる。分類器モジュール208は、モバイルデバイス挙動が良性であるか、疑わしいか、または悪性である/性能劣化させるかを判断するために、挙動観測器モジュール202によって収集された挙動情報にデータ/挙動モデルを適用するステップを含み得る実時間分析動作を実行できる。挙動が良性であるかまたは悪性であるかのいずれであるかを分類するまたは最終的に判断するのに十分な情報を分類器モジュール208が持たないとき、分類器モジュール208は、モバイルデバイス挙動は疑わしいと判断できる。
【００８７】
デバイス挙動が疑わしいと分類器モジュール208が判断するとき、分類器モジュール208は、それの実時間分析動作の結果を挙動観測器モジュール202に伝達するように構成され得る。挙動観測器モジュール202は、それの観測の細分性(すなわち、モバイルデバイス挙動が観測される詳細さのレベル)の調節および/または分類器モジュール208から受信された情報に基づいて(たとえば、実時間分析動作の結果に基づいて)観測される挙動の変更を行い、新しいまたは追加の挙動情報を生成または収集し、かつ(たとえば、新しいモデルの形態における)さらなる分析/分類のために新しい/追加の情報を分類器モジュールに送ることができる。この方式では、疑わしいもしくは性能劣化させるモバイルデバイス挙動の原因が特定されるまで、処理またはバッテリー消費のしきい値に到達するまで、または観測細分性をさらに増加させても疑わしいまたは性能劣化させるモバイルデバイス挙動の原因が特定され得ないとモバイルデバイスプロセッサが判断するまで、モバイルデバイス102が繰り返し、観測の細分性を増加させる(すなわち、より微細にまたはより詳細に観測する)ことまたは観測される特徴/挙動を変更することを行うことができる。
【００８８】
モバイルデバイス102は、それの動作の結果、および/またはモデルのアプリケーションに関連する成功率をネットワークサーバ116に送ることができる。ネットワークサーバ116は、モデル発生器304による使用に対する結果/成功率に基づいて訓練データを(たとえば、訓練データモジュール306を介して)生成できる。モデル発生器は、訓練データに基づいて更新されたモデルを生成し、更新されたモデルをモバイルデバイス102に送ることができる。
【００８９】
図4に示す例では、モバイルデバイス102とネットワークサーバ116との間にフィードバック通信は存在しない。むしろ、モバイルデバイス102は、フルモデル発生器404内で生成され、ネットワークサーバ116から受信されたフルモデルまたはよりロバストなモデルに基づいて合焦された/ターゲットとされる挙動モデルまたは分類器を生成するように構成されたリーンモデル発生器モジュール402を含む。すなわち、ネットワークサーバ116は、フル分類器モデルをモバイルデバイス102に送信するように構成され、モバイルデバイス102は、フル分類器モデルに基づいてリーン分類器モデルを生成するように構成され得る。これは、分類器モデル内の増強決定株の使用(または含有)によってモバイルデバイスの処理またはバッテリーの資源の量を過剰に消費することなく達成され得る。すなわち、ネットワークサーバ116内に増強決定株を含む分類器モデルを生成し、これらの分類器/モデルをモバイルデバイス102に送信することによって、リーンモデル発生器モジュール402が、訓練データにアクセスすることなくまたはネットワークサーバ116もしくはクラウドネットワーク/サーバ118とさらに通信することなく、フル分類器モデル内に含まれる増強決定株の数を選別することによってモバイルデバイス102内にリーンな(またはより合焦された)分類器モデルをより迅速におよび効率的に生成することを、様々な態様が可能にする。これは、モバイルデバイスのネットワーク通信への依存を著しく低減し、さらに、モバイルデバイス102の性能および電力消費特性を改善する。
【００９０】
図5Aは、モバイルデバイス内のリーンなまたは合焦された分類器/挙動モデル(たとえば、モデル発生器モジュール402内で生成されたモデルなど)を生成する態様方法500を示す。方法500は、モバイルデバイス内の処理コアによって実行され得る。
【００９１】
方法500のブロック502において、処理コアは、有限状態機械、増強決定株のリストまたは他の同様の情報構造であるかまたはそれを含むフル分類器モデルを受信することができる。一態様では、フル分類器モデルは、複数の増強決定株を表示するのに好適な情報を含む有限状態機械、および/またはモバイルデバイスによる複数の増強決定株への変換に好適な情報を含む有限状態機械を含む。一態様では、有限状態機械は、増強決定株の順序付けられたリストまたは優先順位付けられたリストであり得る(またはそれを含むことができる)。増強決定株の各々は、試験条件および重み値を含むことができる。
【００９２】
上記で説明したように、増強決定株は、厳密に1つのノード(したがって1つの試験質問または試験条件)と重み値とを有し、したがってデータ/挙動の二項分類における使用に十分に好適な、1レベル決定木である。これは、特徴ベクトルまたは挙動ベクトルを増強決定株に適用することで、2値の答え(たとえば、はいまたはいいえ)がもたらされることを意味する。たとえば、増強決定株によって試験される質問/条件が「SMS送信の周波数が毎分x未満であるか」である場合、「3」の値を増強決定株に適用することで、(「3未満」のSMS送信に対して)「はい」の答えまたは(「3以上」のSMS送信に対して)「いいえ」の答えのいずれかがもたらされることになる。
【００９３】
図5Aに戻ると、方法500のブロック504において、処理コアは、モバイルデバイスの処理、メモリ、またはエネルギーの資源の量を過剰に消費することなく、モバイルデバイス挙動を悪性または良性のいずれかであるとして正確に分類するために評価されるべき特有の試験条件の数を決定することができる。これは、モバイルデバイス内で利用可能な処理、メモリ、および/またはエネルギーの資源の量、条件を試験するために必要なモバイルデバイスの処理、メモリ、またはエネルギーの資源の量を決定することと、条件を試験することによってモバイルデバイス内で分析または評価されるべき挙動または条件と関連付けられた優先度および/または複雑さを決定することと、モバイルデバイスの利用可能な処理、メモリ、またはエネルギーの資源の消費、条件を試験することによって達成されるべき挙動分類の正確さ、および条件によって試験される挙動の重要性または優先度の間のバランスをとるかまたは折り合いをつけるために特有の試験条件の数を選択/決定することとを含むことができる。
【００９４】
ブロック506において、処理コアは、特有の試験条件の決定された数を有する選択された試験条件のリストに追加する(populate)ために増強決定株のリストを最初からトラバースすることができる。一態様では、処理コアはまた、選択された試験条件の各々に対する絶対的または相対的な優先度値を決定し、選択された試験条件のリスト内のそれらの対応する試験条件に関連する絶対的または相対的優先度値を記憶することができる。
【００９５】
ブロック508において、処理コアは、選択された試験条件のうちの1つを試験するフル分類器モデル内に含まれるすべての増強決定株を含むリーン分類器モデルを生成することができる。一態様では、処理コアは、重要性または優先度の値の順番に増強決定株を含むかまたは表示するリーン分類器モデルを生成することができる。
【００９６】
随意のブロック510において、特有の試験条件の数は、ブロック506においてより大きい数の試験条件のために増強決定株のリストをトラバースする動作を反復すること、およびブロック508において別のリーン分類器モデルを生成することによって別のよりロバストな(すなわち、それほどリーンでない)リーン分類器モデルを生成するために増加され得る。これらの動作は、リーン分類器モデルのファミリーを生成するために反復され得る。
【００９７】
図5Bは、モバイルデバイス内でデータモデルを生成する別の態様方法511を示す。方法511は、モバイルデバイス内の処理コアによって実行され得る。方法511のブロック512において、処理コアは、有限状態機械を含むフル分類器モデルを受信することができる。有限状態機械は、複数の増強決定株への変換に好適な情報を含む情報構造であり得る。ブロック514において、処理コアは、フル分類器モデル内に含まれる有限状態機械を試験条件および重み値を含む増強決定株に変換することができる。
【００９８】
一態様では、処理コアはまた、ブロック512において有限状態機械から生成される増強決定株の各々に対する優先度値を計算または決定することができる。処理コアは、モバイルデバイスの処理、メモリ、またはエネルギーの資源の消費、挙動分類の正確さなどの間のトレードオフの均衡をとるために増強決定株の優先度を決定することができる。処理コアはまた、それらの関連付けられた重み値、挙動を正確に分類するための試験条件の相対的なまたは予測された重要性などに基づいて増強決定株の優先度を決定することができる。
【００９９】
同じく、ブロック512において、処理コアは、それらの優先度に従っておよび/またはそれらの重要性の順番に、有限状態機械から生成された増強決定株を含み、照合し、特定し、および/または編成する第1のリスト(または他の情報構造)を生成することができる。たとえば、処理コアは、第1の項目(item)として最高の優先度を有する株、それに続いて2番目に高い優先度値を有する株、以下同様、を含む順位リストとなる第1のリストを生成することができる。重要性のこの順番はまた、クラウドコーパスから集められる情報、ならびに選別アルゴリズムが実施されているデバイスに固有の情報を考慮に入れることができる。
【０１００】
ブロック516において、処理コアは、リーン分類器モデルを適用するときに評価されるべき特有の試験条件(すなわち、増強決定株内で試験され得るモバイルデバイスの状態、特徴、挙動、または条件)の数を計算または決定することができる。特有の試験条件のこの数を計算または決定することは、モデルを適用するのに必要なモバイルデバイスの処理、メモリ、またはエネルギーの資源の消費とリーン分類器モデルによって達成されるべき挙動分類の正確さの間のバランスをとるかまたは折り合いをつけることを伴うことがある。そのような決定は、モバイルデバイス内で利用可能な処理、メモリ、および/またはエネルギーの資源の量を決定することと、分析されるべき挙動と関連付けられた優先度および/または複雑さを決定することと、挙動の優先度および/または複雑さを用いて利用可能な資源の均衡をとることとを含むことができる。
【０１０１】
ブロック518において、処理コアは、増強決定株の第1のリストを連続的にトラバースすることによって第2のリストを生成し、トラバースされた増強決定株の各々と関連付けられた試験条件を第2のリストに挿入することができる。処理コアは、第2のリストの長さが特有の試験条件の決定された数に等しくなるまで、または第2のリストがすべての決定された数の特有の試験条件を含むまで、第1のリストをトラバースすることおよび値を第2のリストに挿入することを継続することができる。
【０１０２】
ブロック520において、処理コアは、第1のリスト内に含まれる増強決定株に基づいてリーン分類器モデルを生成することができる。一態様では、処理コアは、第2のリスト(すなわち、ブロック518において生成された試験条件のリスト)内に含まれる試験条件のうちの1つを試験する増強決定株だけを含むようにリーン分類器モデルを生成することができる。
【０１０３】
随意のブロック522において、特有の試験条件の数は、ブロック518においてより大きい数の試験条件のために増強決定株のリストをトラバースする動作を反復すること、およびブロック520において別のリーン分類器モデルを生成することによって別のよりロバストな(すなわち、それほどリーンでない)リーン分類器モデルを生成するために増加され得る。これらの動作は、リーン分類器モデルのファミリーを生成するために反復され得る。
【０１０４】
図5Cは、モバイルデバイスの挙動を分類するためにリーン分類器モデルを使用する態様方法524を示す。方法524は、モバイルデバイス内の処理コアによって実行され得る。
【０１０５】
方法524のブロック526において、処理コアは、モバイルデバイスシステムの様々なレベルにおいて機器を装着された様々な構成要素から挙動情報を収集するために観測を実行することができる。一態様では、これは、図2を参照しながら上記で説明した挙動観測器モジュール202を介して達成され得る。ブロック528において、処理コアは、観測値、収集された挙動情報、および/またはモバイルデバイス挙動を特徴付ける挙動ベクトルを生成することができる。同じく、ブロック528において、処理コアは、リーン分類器モデルまたは変化するレベルの複雑さ(または「リーン性」)のリーン分類器モデルのファミリーを生成するために、ネットワークサーバから受信されたフル分類器モデルを使用することができる。これを達成するために、処理コアは、フル分類器モデル内に含まれる増強決定株のファミリーを選別して、低減された数の増強決定株を含むリーン分類器モデルおよび/または限られた数の試験条件を評価するリーン分類器モデルを生成することができる。
【０１０６】
ブロック529において、処理コアは、モバイルデバイスによって未だ評価または適用されていないリーン分類器モデル(すなわち、最小数の異なるモバイルデバイスの状態、特徴、挙動、または条件に基づくモデル)のファミリー内の最もリーンな分類器を選択することができる。一態様では、これは、処理コアが分類器モデルの順位リスト内の第1の分類器モデルを選択することによって達成され得る。
【０１０７】
ブロック530において、処理コアは、収集された挙動情報または挙動ベクトルを選択されたリーン分類器モデル内の増強決定株の各々に適用することができる。増強決定株は2値決定であり、リーン分類器モデルは同じ試験条件に基づく多くの2値決定を選択することによって生成されるので、リーン分類器モデル内の増強決定株に挙動ベクトルを適用するプロセスは、並列動作で実行され得る。代替として、ブロック530において適用される挙動ベクトルは、リーン分類器モデル内に含まれる限られた数の試験条件パラメータをちょうど含むように打ち切られるかまたはフィルタリングされ得、それによってモデルを適用することにおける計算量はさらに低減される。
【０１０８】
ブロック532において、処理コアは、収集された挙動情報をリーン分類器モデル内の増強決定株の各々に適用した結果の加重平均を計算または決定することができる。ブロック534において、処理コアは、計算された加重平均としきい値とを比較することができる。判断ブロック535において、処理コアは、この比較の結果および/または選択されたリーン分類器モデルを適用することによって生成された結果が疑わしいかどうかを判断することができる。たとえば、処理コアは、これらの結果が、高度の信頼度で悪性または良性のいずれかであるとして挙動を分類するために使用され得るかどうかを判断し得、使用できない場合、挙動を疑わしいとして取り扱う。
【０１０９】
結果が疑わしいと処理コアが判断する(たとえば、判断ブロック535=「はい」の)場合、処理コアは、挙動が高度の信頼度で悪性または良性であるとして分類されるまで、より多くのデバイスの状態、特徴、挙動、または条件を評価するより強い(すなわち、それほどリーンでない)分類器モデルを選択および適用するために、ブロック529〜534における動作を反復することができる。挙動が高度の信頼度で悪性または良性のいずれかであるとして分類され得ると判断することによるなど、結果が疑わしくない(たとえば、判断ブロック535=「いいえ」)と処理コアが判断する場合、ブロック536において、処理コアは、ブロック534において生成された比較の結果を使用して、良性であるまたは潜在的に悪性であるとしてモバイルデバイスの挙動を分類することができる。
【０１１０】
図5Dに示す代替の態様方法540では、ブロック518および520を参照しながら上記で説明した動作は、リーン分類器モデル内に未だ存在しない増強決定株を連続的に選択することと、選択された決定株と同じモバイルデバイスの状態、特徴、挙動または条件に依存する(およびしたがって、1つの決定結果に基づいて適用され得る)すべての他の増強決定株を特定することと、同じモバイルデバイスの状態、特徴、挙動または条件に依存する選択されたおよびすべての特定された他の増強決定株をリーン分類器モデル内に含むことと、試験条件の決定された数に等しい数の回数に対してプロセスを反復することとによって達成され得る。選択された増強決定株と同じ試験条件に依存するすべての増強決定株が毎回リーン分類器モデルに追加されるので、このプロセスが実行される回数を限定することが、リーン分類器モデル内に含まれる試験条件の数を限定することになる。
【０１１１】
図5Dを参照すると、ブロック542において、処理コアは、リーン分類器モデル内で評価されるべき特有の試験条件(すなわち、増強決定株内で試験され得るモバイルデバイスの状態、特徴、挙動、または条件)の数(N)を計算または決定することができる。特有の試験条件のこの数を計算または決定することは、モデルを適用するのに必要なモバイルデバイスの処理、メモリ、またはエネルギーの資源の消費と、リーン分類器モデルによって達成されるべき挙動分類の正確さとの間のバランスをとるかまたは折り合いをつけることを伴うことがある。そのような決定は、モバイルデバイス内で利用可能な処理、メモリ、および/またはエネルギーの資源の量を決定することと、分析されるべき挙動と関連付けられた優先度および/または複雑さを決定することと、挙動の優先度および/または複雑さを用いて利用可能な資源の均衡をとることとを含むことができる。
【０１１２】
ブロック544において、処理コアは、ループカウント変数の値をゼロ(0)に等しくなるように設定するか、または場合によっては決定された回数のN回実行されるループを初期化することができる。ブロック546において、処理コアは、増強決定株のフルセット内に含まれるかもしくはそこから生成され、かつリーン分類器モデルのリスト内に含まれない増強決定株を選択することができる。ループを通る初回は、リーン分類器モデルのリスト内に増強決定株が存在しないので、第1の増強決定株が選択されることになる。本明細書で説明するように、フル分類器モデルは、フルセットにおける第1の増強決定株が悪性または良性の挙動を認識する最高の確立を有するように構成され得る。ブロック548において、処理コアは、選択された決定株と関連付けられた試験条件を決定することができる。ブロック550において、処理コアは、選択された決定株の試験条件と同じ試験条件に依存するか、それを含むか、または試験するフル分類器モデル内に含まれるかまたはそこから生成される決定株のすべてを特定することができる。ブロック552において、処理コアは、選択された増強決定株と、同じ試験条件に依存するか、それを含むかまたは試験する特定された増強決定株のすべてとをリーン分類器モデルのリストに追加することができる。
【０１１３】
ブロック554において、処理コアは、ループカウント変数の値を増分することができる。判断ブロック556において、処理コアは、ループカウント変数の値がブロック542において決定された特有の試験条件の数N以上であるかどうかを判断することができる。ループカウント変数の値が特有の試験条件の数以上ではない(すなわち、判断ブロック556=「いいえ」)と処理コアが判断すると、処理コアは、ブロック546〜554における動作を反復することができる。ループカウント変数の値が特有の試験条件の数以上である(すなわち、判断ブロック556=「はい」)と処理コアが判断すると、ブロック558において、処理コアは、リーン分類器モデルのリスト内のすべての増強決定株を含むようにリーン分類器モデルを生成することができる。
【０１１４】
この方法540は、リーン分類器モデル内の特有の試験条件の数Nを変えることによって、ロバスト性またはリーン性の程度を変化させるリーン分類器モデルのファミリーを生成するために回数を使用することができる。たとえば、随意のブロック560において、モバイルデバイスプロセッサは、より多くの試験条件を組み入れる別のリーン分類器モデルを生成するために、ブロック542において決定される特有の試験条件の数Nを増加することができる。随意の判断ブロック562において、プロセッサは、増加する数Nが試験条件の最大数(max N)を超えるかどうかを判断することができる。試験条件の最大数は、最大性能ペナルティまたは分類し難い挙動を評価するのに望ましい資源投資に基づいて(たとえば、開発者、サービスプロバイダ、ユーザによって、またはアルゴリズムを介して)決定され得る。増加した数Nが最大数max Nより小さい(すなわち、判断ブロック562=「いいえ」の)場合、上記で説明したブロック544〜560の動作が、別のリーン分類器モデルを生成するために反復され得る。特有の試験条件の最大数がリーン分類器モデル内に含まれる(すなわち、判断ブロック562=「はい」)と、リーン分類器モデルを生成するプロセスは終了する。
【０１１５】
図5A、図5Bおよび図5Dは、増強決定株のフルセットをトラバースする全プロセスを反復することによってリーン分類器モデルのファミリーを生成することを説明しているが、同様の結果は、生成されたリーン分類器モデル(すなわち、ブロック508、520および558のいずれかにおいて生成されたモデル)から開始し、かつ追加された試験条件の数に対して増強決定株のフルセットをトラバースして、生成されたリーン分類器モデル内に未だ含まれていない試験条件に応じて増強決定株をそのモデルに追加することによって達成され得る。
【０１１６】
同じく、図5A、図5Bおよび図5Dは最もリーンから最もロバストまでリーン分類器モデルのファミリーを生成することを説明しているが、リーン分類器モデルはまた、単に、試験条件の最大数(たとえば、N=max N)から開始し、かつ数を毎回減じることによって、最もロバストから最もリーンまで生成され得る。
【０１１７】
図6Aは、サーバまたはクラウド内にフル分類器を生成する態様方法600を示す。方法600は、クラウドネットワークに結合されるサーバコンピューティングデバイス内の処理コアによって実行され得る。
【０１１８】
ブロック602において、処理コアは、多数のデバイスの状態、構成および挙動、ならびに悪性の挙動が検出されたかどうかに関する情報を含む挙動データのコーパスを、多くのモバイルデバイスから集めることができる。ブロック604において、処理コアは、挙動データのコーパスから、デバイスの状態、構成、および挙動の中で試験され得る特定の2値の質問/試験条件を特定することができる。デバイスの状態、構成および挙動のすべてを特徴付けるために、多数のそのような2値の質問/試験条が、一般的に特定されることになる。次に、ブロック606において、特定された2値の質問の各々に対して、処理コアは、悪性の挙動が2値の質問に対する答えの一方または他方に該当した回数の割合またはパーセンテージを決定するためにデータベースを試験することができる。ブロック608において、処理コアは、該当のパーセンテージに基づいて決定された重み値を有する第1の決定株として、悪性の挙動への最高の該当を有する2値の質問を選択することができる。ブロック610において、処理コアは、図6Bを参照しながら以下で説明するように、誤分類されたサンプル/試験条件の重みを増強することができる。
【０１１９】
次に、サーバの処理コアは、この場合に悪性の挙動への最高の該当を有する質問を特定するために、第1の質問の答えが悪性の挙動と関連付けられない値(たとえば、「いいえ」)であると仮定して2値の質問を走査するプロセスを反復することができる。次に、質問は、モデル内の第2の2値の質問として設定され、その重み値はその該当のパーセンテージに基づいて決定される。次に、サーバは、この場合に悪性の挙動への最高の該当を有する次の質問/試験条件を特定するために、第2の質問/試験条件の答えが悪性の挙動と関連付けられない値(たとえば、「いいえ」)であると仮定して2値の質問を走査するプロセスを反復する。次に、その質問/試験条件は、モデル内の第3の2値の質問/試験条件であり、その重み値はその該当のパーセンテージに基づいて決定される。このプロセスは、特定された2値の質問/試験条件のすべてを通して継続されて、完全なセットを構築する。
【０１２０】
2値の質問/試験条件を生成するプロセスにおいて、サーバは、前の時間間隔内の通信の周波数または通信の数などの範囲を有するデータを評価し、挙動を分類するのを支援する形でその範囲を包含する一連の2値の質問/試験条件を策定することができる。したがって、1つの2値の質問/試験条件はデバイスが前の5分間に1つ以上のデータ送信を送信した(それは低い相関を有する)かどうかであってよく、第2の2値の質問/試験条件はデバイスが前の5分間に11以上のデータ送信を送信した(それは中間の相関を有する)かどうかであってよく、第3の2値の質問/試験条件はデバイスが前の5分間に101以上のデータ送信を送信した(それは高い相関を有する)かどうかであってよい。
【０１２１】
悪性の挙動に対して決定された重みまたは相関がしきい値より小さい(たとえば、統計的有意に満たない)質問/試験条件を除去することなどのために、フル分類器セットがモバイルデバイスに送信される前に、質問/試験条件の最終のセットの何らかの選別が、サーバによって行われることがある。たとえば、悪性の挙動に対する相関が約50/50である場合、両方の答えは、現在の挙動が悪性であるかまたは良性であるかの質問に答えることを支援をしないので、その決定株を使用する利点はほとんどないことがある。
【０１２２】
図6Bは、様々な態様に従って使用するのに好適な増強決定木/分類器を生成するために好適な例示的な増強方法620を示す。動作622において、プロセッサは、決定木/分類器を生成および/または実施し、決定木/分類器の実施によって訓練サンプルを収集し、訓練サンプルに基づいて新しい分類器モデル(h1(x))を生成することができる。訓練サンプルは、モバイルデバイス挙動、ソフトウェアアプリケーション、またはモバイルデバイス内のプロセスについての前の観測または分析から収集された情報を含むことができる。訓練サンプルおよび/または新しい分類器モデル(h1(x))は、前の分類器内に含まれる質問または試験条件のタイプに基づいて、ならびに/あるいは挙動分析器モジュール204の分類器モジュール208内の前のデータ/挙動モデルまたは分類器の実施/適用によって収集された正確さまたは性能特性に基づいて生成され得る。動作624において、プロセッサは、第2の新しい木/分類器(h2(x))を生成するために、生成された決定木/分類器(h1(x))によって誤分類されたエントリの重みを増強(または増加)することができる。一態様では、訓練サンプルおよび/または新しい分類器モデル(h2(x))は、分類器の前の実施または使用(h1(x))の誤り率に基づいて生成され得る。一態様では、訓練サンプルおよび/または新しい分類器モデル(h2(x))は、分類器の前の実施または使用においてデータポイントの誤り率または誤分類を引き起こしたと判断される属性に基づいて生成され得る。
【０１２３】
一態様では、誤分類されたエントリは、それらの相対的な正確さまたは有効性に基づいて重み付けられ得る。動作626において、プロセッサは、第3の新しい木/分類器(h3(x))を生成するために、生成された第2の木/分類器(h2(x))によって誤分類されたエントリの重みを増強(または増加)することができる。動作628において、624〜626の動作が、新しい木/分類器(ht(x))の数「t」を生成するために反復され得る。
【０１２４】
第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))のファミリーを生成することは、全体として収束するシステムをもたらすのではなく、並列に実施され得るいくつかの決定木/分類器をもたらす。
【０１２５】
図7は、モバイルデバイスの処理、メモリ、またはエネルギーの資源の量を過剰に消費することなく、アクティブに悪性であるもしくは不完全に記述されたソフトウェアアプリケーションおよび/または疑わしいもしくは性能を劣化させるモバイルデバイス挙動を、モバイルデバイス102上で知的におよび効率的に特定するために使用され得る増強決定株を含む分類器モデルを生成する例示的な方法700を示す。方法700の動作1において、ネットワークサーバ内のオフライン分類器が、クラウドサービス/ネットワークから受信された情報に基づいてフルのまたはロバストな分類器モデルを生成することができる。たとえば、フル分類器は、40の特有の条件を試験する100の増強決定株を含むことができる。方法700の動作2において、フル分類器モデルは、モバイルデバイス102内の分析器/分類器モジュール208に送信され得る。方法700の動作3において、分析器/分類器モジュール208は、フル分類器モデルを分析することに基づいて増強決定株の形態のリーンデータ/挙動モデル分類器のセットを生成することができる。これは、モバイルデバイスが、クラウド訓練データにアクセスする必要なしにオンザフライでリーンモデルを生成すること、分類の正確さを強化するためにアプリケーション当たりの分類器を動的に再構成すること、および各分類器に対して決定論的複雑さ(たとえば、O(株の#))を指定することを可能にする「連動した特徴選択および選別」動作を実行することによって達成され得る。「連動した特徴選択および選別」動作はまた、特徴選択動作を実行することを含むことができる。
【０１２６】
図8は、モバイルデバイス内でリーン分類器モデルを生成するために、一態様のサーバプロセッサによって生成され、デバイスプロセッサによって使用され得る例示的な増強決定株800を示す。図8に示す例では、増強決定株800は、プロセッサによって実施または実行されると、断定的な2値の答え(たとえば、真または偽、悪性または良性など)のいずれかをもたらし得る質問または試験条件(たとえば、F1、F3、F5)をそれぞれ含む複数の決定ノードW1〜W4を含む。各決定ノードW1〜W4はまた、重み値と関連付けられ得る。
【０１２７】
図8はまた、図7を参照しながら上記で説明した「連動した特徴選択および選別」動作を実行する方法802を示す。方法802は、2つの特有の条件を試験するリーン分類器を生成する必要があると判断するモバイルデバイスの分析器モジュールを含むことがあり、その場合、特徴選択動作は、第1の2つの特有の条件(たとえば、図8のF1およびF3)が発見されるまで100の増強決定株のリストをトラバースすることを含むことがある。次に、分析器/分類器モジュール208は、特徴選択動作(たとえば、F1およびF3)によって特定された条件だけを試験することができ、それは、100の増強決定株の全リストをトラバースして異なる条件(たとえば、F5)を試験する株を消去することによって達成され得る。残っている増強決定株(すなわち、条件「F1」および「F3」を試験する株)が、データを再訓練することなくリーン分類器として使用され得る。分析器/分類器モジュール208は、残っている増強決定株(すなわち、条件「F1」および「F3」を試験する株)の各々に挙動情報を適用し、残っている株から受信されたすべての答えの加重平均を計算し、加重平均を使用してモバイルデバイス挙動が悪性であるかまたは良性であるかを判断することができる。
【０１２８】
増強決定株が特徴選択および選別プロセスを介して生成されると、選択された決定株は、現在のデバイスの状態、設定および挙動に対して比較され得る分類器または挙動モデルとして使用され得る。決定株は独立した2値の試験であるので、挙動ベクトルに要約され得る観測された挙動とモデルとを比較する挙動分析プロセスは、並列に実行され得る。同じく、株は非常に単純(基本的に2値)であるので、各株を実行するための処理は非常に単純であり、したがってより小さい処理オーバーヘッドで迅速に達成され得る。各決定株は、重み値を有する答えをもたらし、挙動が悪性であるかまたは良性であるかに関する最終的な決定が、同じく単純な計算である、すべての結果の加重和として決定され得る。
【０１２９】
ノードと関連付けられた重みは、モバイルデバイス挙動、ソフトウェアアプリケーション、またはモバイルデバイス内のプロセスについての前の観測または分析から収集された情報に基づいて計算され得る。各ノードと関連付けられた重みはまた、データのコーパス(たとえば、データまたは挙動ベクトルのクラウドコーパス)のどれだけ多くのユニットが増強決定株を構築するために使用されるかに基づいて計算され得る。
【０１３０】
図9は、一態様による、動的および適応的観測を実行するように構成されたコンピューティングシステムの挙動観測器モジュール202における例示的な論理構成要素および情報フローを示す。挙動観測器モジュール202は、適応フィルタモジュール902と、スロットルモジュール904と、観測器モードモジュール906と、高レベル挙動検出モジュール908と、挙動ベクトル発生器910と、セキュアバッファ912とを含み得る。高レベル挙動検出モジュール908は、空間相関モジュール914と時間相関モジュール916とを含み得る。
【０１３１】
観測器モードモジュール906は、分析器ユニット(たとえば、図2を参照して上記で説明した挙動分析器モジュール204)および/またはアプリケーションAPIを含み得る様々なソースから制御情報を受信できる。観測器モードモジュール906は、様々な観測器モードに関する制御情報を適応フィルタモジュール902および高レベル挙動検出モジュール908に送ることができる。
【０１３２】
適応フィルタモジュール902は、複数のソースからデータ/情報を受信し、受信された情報を知的にフィルタ処理し、受信された情報から選択された情報のより小さいサブセットを生成することができる。このフィルタは、分析器モジュールから、またはAPIを介して通信するより高いレベルのプロセスから受信された情報または制御に基づいて適合され得る。フィルタ処理された情報は、スロットルモジュール904に送られ得、スロットルモジュール904は、高レベル挙動検出モジュール908が要求または情報で氾濫するかまたは過負荷になることがないことを確実にするために、フィルタから流れる情報の量を制御する役割を果たすことができる。
【０１３３】
高レベル挙動検出モジュール908は、スロットルモジュール904からのデータ/情報と、観測器モードモジュール906からの制御情報と、モバイルデバイスの他の構成要素からのコンテキスト情報とを受信できる。高レベル挙動検出モジュール908は、受信された情報を使用して空間相関および時間相関を実行し、準最適レベルで実行することをデバイスに行わせ得る高レベル挙動を検出または特定することができる。空間相関および時間相関の結果は、挙動ベクトル発生器910に送られ得、挙動ベクトル発生器910は相関情報を受信し、特定のプロセス、アプリケーション、またはサブシステムの挙動を記述する挙動ベクトルを生成することができる。一態様では、挙動ベクトル発生器910は、特定のプロセス、アプリケーション、またはサブシステムの各高レベル挙動が挙動ベクトルの要素であるように挙動ベクトルを生成できる。一態様では、生成された挙動ベクトルは、セキュアバッファ912内に記憶され得る。高レベル挙動検出の例は、特定の事象の存在、別の事象の量または頻度、複数の事象間の関係、事象が発生する順序、いくつかの事象の発生の間の時間差などの検出を含み得る。
【０１３４】
様々な態様では、挙動観測器モジュール202は、適応的観測を実行し、観測の細分性を制御することができる。すなわち、挙動観測器モジュール202は、観測されるべき関連挙動を動的に特定し、特定された挙動が観測されるべき詳細さのレベルを動的に決定することができる。この方式では、挙動観測器モジュール202は、様々なレベル(たとえば、複数の粗いレベルおよび微細なレベル)においてシステムがモバイルデバイスの挙動をモニタすることを可能にする。挙動観測器モジュール202は、観測されているものにシステムが適応することを可能にすることができる。挙動観測器モジュール202は、多様なソースから取得され得る情報の集中的なサブセットに基づいて観測されているファクタ/挙動を、システムが動的に変更することを可能にすることができる。
【０１３５】
上記で説明したように、挙動観測器モジュール202は、適応的観測技法を実行し、様々なソースから受信された情報に基づいて観測の細分性を制御することができる。たとえば、高レベル挙動検出モジュール908は、スロットルモジュール904、観測器モードモジュール906からの情報と、モバイルデバイスの他の構成要素(たとえば、センサー)から受信されたコンテキスト情報とを受信できる。一例として、時間相関を実行する高レベル挙動検出モジュール908は、カメラが使用されたことと、モバイルデバイスがピクチャをサーバへのアップロードを試みていることとを検出できる。高レベル挙動検出モジュール908はまた、デバイスがホルスターに入れられ、ユーザのベルトに取り付けられていた間にモバイルデバイス上のアプリケーションがピクチャを撮ったかどうかを判断するために、空間相関を実行できる。高レベル挙動検出モジュール908は、この検出された高レベル挙動(たとえば、ホルスターに入れたままでカメラを使用すること)が容認できるまたは一般的な挙動であるかどうかを判断し得、そのことは、モバイルデバイスの現在の挙動と過去の挙動とを比較することによって、および/または複数のデバイスから収集された情報(たとえば、クラウドソーシングサーバから受信された情報)にアクセスすることによって達成され得る。ホルスターに入れられている間にピクチャを撮り、それらをサーバにアップロードすることは、(ホルスターに入れられている状況で観測される通常の挙動から判断され得るように)異常な挙動であるので、この状況では、高レベル挙動検出モジュール908は、これを、潜在的に危険な(threatening)挙動と認識し、適切な対応(たとえば、カメラを遮断する、警報を鳴らすなど)を開始することができる。
【０１３６】
一態様では、挙動観測器モジュール202は、複数の部分に実装され得る。
【０１３７】
図10は、一態様の観測器デーモンを実装するコンピューティングシステム1000内の論理構成要素および情報フローをより詳細に示す。図10に示す例では、コンピューティングシステム1000は、ユーザ空間内に挙動検出器1002モジュール、データベースエンジン1004モジュールおよび挙動分析器モジュール204と、カーネル空間内にリングバッファ1014、フィルタルール1016モジュール、スロットリングルール1018モジュールおよびセキュアバッファ1020とを含む。コンピューティングシステム1000は、ユーザ空間内に挙動検出器1002およびデータベースエンジン1004と、カーネル空間内にセキュアバッファマネージャ1006、ルールマネージャ1008およびシステムヘルスモニタ1010とを含む観測器デーモンをさらに含み得る。
【０１３８】
様々な態様は、システム挙動を特徴付けるためにwebkit、SDK、NDK、カーネル、ドライバ、およびハードウェアを包含する、モバイルデバイス上のクロスレイヤ観測を提供できる。挙動観測は、実時間で行われ得る。
【０１３９】
観測器モジュールは、適応的観測技法を実行し、観測の細分性を制御することができる。上記で説明したように、モバイルデバイスの劣化に寄与する可能性のある多数(すなわち、数千)のファクタが存在し、デバイスの性能の劣化に寄与する可能性のある異なるファクタのすべてをモニタ/観測することは実現不可能である。これを克服するために、様々な態様は、観測されるべきである関連挙動を動的に特定し、特定された挙動が観測されるべき詳細さのレベルを動的に決定する。
【０１４０】
図11は、一態様による、動的かつ適応的観測を実行するための例示的な方法1100を示す。ブロック1102で、モバイルデバイスプロセッサは、モバイルデバイスの劣化に寄与する可能性のある多数のファクタ/挙動のサブセットをモニタ/観測するとによって、粗い観測を実行できる。ブロック1103で、モバイルデバイスプロセッサは、粗い観測を特徴付ける挙動ベクトルおよび/または粗い観測に基づくモバイルデバイス挙動を生成できる。ブロック1104で、モバイルデバイスプロセッサは、モバイルデバイスの劣化に潜在的に寄与する可能性のある粗い観測に関連するサブシステム、プロセス、および/またはアプリケーションを特定できる。これは、たとえば、複数のソースから受信された情報とモバイルデバイスのセンサーから受信されたコンテキスト情報とを比較することによって達成され得る。ブロック1106で、モバイルデバイスプロセッサは、粗い観測に基づいて挙動分析動作を実行できる。態様では、ブロック1103および1104の一部として、モバイルデバイスプロセッサは、図2〜図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およびCODEC 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は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。
【０１５０】
「性能劣化」という用語は、本明細書では、長い処理時間、遅い実時間応答性、短いバッテリー寿命、個人データの喪失、悪性である経済活動(たとえば、無許可の報奨金の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、フラッシュメモリ、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク（登録商標）、光ディスク、デジタル多用途ディスク(DVD)、フロッピー（登録商標）ディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザーで光学的にデータを再生する。上記の組合せも非一時的コンピュータ可読媒体およびプロセッサ可読媒体の範囲内に含まれる。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る、非一時的プロセッサ可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の、1つまたは任意の組合せ、またはそのセットとして存在し得る。
【０１５８】
開示された態様の上記の説明は、任意の当業者が本発明を製作または使用できるようになされている。これらの態様への様々な修正が当業者には容易に明らかであり、本明細書で定義された一般的な原理は、本発明の趣旨または範囲を逸脱することなく、他の態様に適用することができる。したがって、本発明は、本明細書で示された態様に限定されるものではなく、以下の特許請求の範囲ならびに本明細書で開示された原理および新規の特徴に合致する、最も広い範囲を与えられるべきである。
【符号の説明】
【０１５９】
100  通信システム
102  モバイルデバイス
104  セル電話ネットワーク
106  セル基地局
108  ネットワーク運用センタ
110  インターネット
112  双方向ワイヤレス通信リンク
114  サーバ
116  ネットワークサーバ
118  クラウドサービスプロバイダネットワーク、クラウドサービス/ネットワーク
202  挙動観測器モジュール
204  挙動分析器モジュール
206  外部コンテキスト情報モジュール
208  分類器モジュール
210  アクチュエータモジュール
300  システム
302  クラウドモジュール
304  モデル発生器モジュール
306  訓練データモジュール
402  リーンモデル発生器モジュール
404  フルモデル発生器
700  方法
800  増強決定株
802  方法
902  適応フィルタモジュール
904  スロットルモジュール
906  観測器モードモジュール
908  高レベル挙動検出モジュール
910  挙動ベクトル発生器
912  セキュアバッファ
914  空間相関モジュール
916  時間相関モジュール
1000  コンピューティングシステム
1002  挙動検出器モジュール
1004  データベースエンジンモジュール
1006  セキュアバッファマネージャ
1008  ルールマネージャ
1010  システムヘルスモニタ
1014  リングバッファ
1016  フィルタルールモジュール
1018  スロットリングルールモジュール
1020  セキュアバッファ
1100  方法
1200  スマートフォン
1202  プロセッサ
1204  内部メモリ
1206  CODEC
1208  ワイヤレストランシーバ
1212  ディスプレイ
1214  スピーカ
1220  ロッカースイッチ
1300  サーバ
1301  プロセッサ
1302  揮発性メモリ
1303  ディスクドライブ
1304  DVDディスクドライブ
1305  ネットワーク
1306  ネットワークアクセスポート
【図１】
0006258970.tif 000002
【図２】
0006258970.tif 000003
【図３】
0006258970.tif 000004
【図４】
0006258970.tif 000005
【図５Ａ】
0006258970.tif 000006
【図５Ｂ】
0006258970.tif 000007
【図５Ｃ】
0006258970.tif 000008
【図５Ｄ】
0006258970.tif 000009
【図６Ａ】
0006258970.tif 000010
【図６Ｂ】
0006258970.tif 000011
【図７】
0006258970.tif 000012
【図８】
0006258970.tif 000013
【図９】
0006258970.tif 000014
【図１０】
0006258970.tif 000015
【図１１】
0006258970.tif 000016
【図１２】
0006258970.tif 000017
【図１３】
0006258970.tif 000018