(57)【特許請求の範囲】
【請求項１】
モバイルデバイスにおいてモバイルデバイス挙動を監視するための方法であって、
モバイルデバイスプロセッサにおいて、アプリケーションダウンロードサービスから挙動モデルを受信するステップであって、前記受信された挙動モデルは、モバイルデバイス挙動が無害であるかどうかを前記モバイルデバイスプロセッサが良好に判断することを可能にすることに最も関連がある、要因およびデータポイントを特定する初期特徴セットを含む、ステップと、
前記モバイルデバイスにインストールされた既存の挙動アナライザエンジンと連動して、前記受信された挙動モデルを前記モバイルデバイスにインストールするステップと、
前記インストールされた挙動モデルを使用して、1つまたは複数のモバイルデバイス挙動を監視するステップと、
より詳細に観測するために挙動を動的に判断するステップと、
漸次大きくなる特徴セットを含む挙動モデルを適用するステップと、
を含む方法。
【請求項２】
前記挙動モデルを受信するステップが、モバイルデバイス挙動が無害であるかどうかを前記モバイルデバイスプロセッサが良好に判断することを可能にすることに最も関連がある、要因およびデータポイントを特定する、ソフトウェアアプリケーションを受信するステップを含む、請求項1に記載の方法。
【請求項３】
前記挙動モデルを受信するステップが、モバイルデバイス挙動が無害であるかどうかを前記モバイルデバイスプロセッサが良好に判断することを可能にすることに最も関連がある、要因およびデータポイントを特定する、XML、JSON、YAMLおよびHTML/XHTMLを含むグループから選択されたファイルを受信するステップを含む、請求項1に記載の方法。
【請求項４】
前記挙動モデルを受信するステップが、挙動分類への特徴のマッピングを含む有限状態機械表現を受信するステップを含む、請求項1に記載の方法。
【請求項５】
既存の挙動モデルを前記受信された挙動モデルと交換するステップと、
前記受信された挙動モデルを前記既存の挙動アナライザエンジンにリンクさせて、前記既存の挙動アナライザエンジンが分析動作を実施するとき、前記受信された挙動モデルを使用してそのように行うようにするステップと
をさらに含む、請求項1に記載の方法。
【請求項６】
既存の挙動モデルを、前記受信された挙動モデル中に含まれる情報で更新するステップと、
前記更新された挙動モデルを前記既存の挙動アナライザエンジンにリンクさせて、前記既存の挙動アナライザエンジンが分析動作を実施するとき、前記更新された挙動モデルを使用してそのように行うようにするステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
複数の公衆ネットワークから複数の挙動モデルを受信するステップと、
少なくとも1つの既存の挙動モデルを、前記受信された複数の挙動モデルのうちの1つまたは複数中に含まれる情報で更新するステップと
をさらに含む、請求項1に記載の方法。
【請求項８】
モバイルデバイスプロセッサと、
アプリケーションダウンロードサービスから挙動モデルを受信するための手段であって、前記受信された挙動モデルは、モバイルデバイス挙動が無害であるかどうかを前記モバイルデバイスプロセッサが良好に判断することを可能にすることに最も関連がある、要因およびデータポイントを特定する初期特徴セットを含む、手段と、
既存の挙動アナライザエンジンと連動して、前記受信された挙動モデルをインストールするための手段と、
前記インストールされた挙動モデルを使用して、1つまたは複数のモバイルデバイス挙動を監視するための手段と、
より詳細に観測するために挙動を動的に判断するための手段と、
漸次大きくなる特徴セットを含む挙動モデルを適用するための手段と、
を含むモバイルコンピューティングデバイス。
【請求項９】
前記挙動モデルをを受信するための手段が、モバイルデバイス挙動が無害であるかどうかを前記モバイルデバイスプロセッサが良好に判断することを可能にすることに最も関連がある、要因およびデータポイントを特定する、ソフトウェアアプリケーションを受信するための手段を含む、請求項8に記載のモバイルコンピューティングデバイス。
【請求項１０】
前記挙動モデルを受信するための手段が、モバイルデバイス挙動が無害であるかどうかを前記モバイルデバイスプロセッサが良好に判断することを可能にすることに最も関連がある、要因およびデータポイントを特定する、XMLファイルを受信するための手段を含む、請求項8に記載のモバイルコンピューティングデバイス。
【請求項１１】
前記挙動モデルを受信するための手段が、挙動分類への特徴のマッピングを含む有限状態機械表現を受信するための手段を含む、請求項8に記載のモバイルコンピューティングデバイス。
【請求項１２】
既存の挙動モデルを前記受信された挙動モデルと交換するための手段と、
前記受信された挙動モデルを前記既存の挙動アナライザエンジンにリンクさせて、前記既存の挙動アナライザエンジンが分析動作を実施するとき、前記受信された挙動モデルを使用してそのように行うようにするための手段と
をさらに含む、請求項8に記載のモバイルコンピューティングデバイス。
【請求項１３】
既存の挙動モデルを、前記受信された挙動モデル中に含まれる情報で更新するための手段と、
前記更新された挙動モデルを前記既存の挙動アナライザエンジンにリンクさせて、前記既存の挙動アナライザエンジンが分析動作を実施するとき、前記更新された挙動モデルを使用してそのように行うようにするための手段と
をさらに含む、請求項8に記載のモバイルコンピューティングデバイス。
【請求項１４】
複数の公衆ネットワークから複数の挙動モデルを受信するための手段と、
少なくとも1つの既存の挙動モデルを、前記受信された複数の挙動モデルのうちの1つまたは複数中に含まれる情報で更新するための手段と
をさらに含む、請求項8に記載のモバイルコンピューティングデバイス。
【請求項１５】
コンピュータで実行されたとき、請求項1乃至7の何れか1項に記載の方法を実行するための命令を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、すべての目的のためにその内容全体が参照により本明細書に組み込まれる、2013年2月15日に出願された「On-Line Behavioral Analysis Engine in Mobile Device with Multiple Analyzer Model Providers」という名称の米国仮特許出願第61/765,461号の優先権の利益を主張する。
【背景技術】
【０００２】
セルラー通信技術およびワイヤレス通信技術は、過去数年の間に爆発的な発展をとげてきた。この発展は、より優れた通信、ハードウェア、より大きいネットワーク、およびより信頼できるプロトコルによって促進されている。ワイヤレスサービスプロバイダは今では、拡大し続ける多数の特徴およびサービスを顧客に提供し、情報、リソースおよび通信への、前例のないレベルのアクセスをユーザに提供することができる。これらのサービス向上と歩調を合わせて、モバイル電子デバイス(たとえば、携帯電話、タブレット、ラップトップなど)は、これまでよりも強力かつ複雑になってきている。この複雑さによって、悪意のあるソフトウェア、ソフトウェアの衝突、ハードウェアの欠陥、および他の同様のエラーまたは現象が、モバイルデバイスの長期の継続的な性能ならびに電力利用レベルに悪影響を及ぼす新たな機会が生み出された。したがって、モバイルデバイスの長期の継続的な性能および電力利用レベルに悪影響を及ぼし得る条件および/またはモバイルデバイス挙動を特定および修正することは、ユーザにとって有益である。
【発明の概要】
【課題を解決するための手段】
【０００３】
様々な態様は、モバイルデバイスにおいてモバイルデバイス挙動を監視する方法を含み、方法は、アプリケーションダウンロードサービスから、モバイルデバイス挙動が無害であるか悪意のあるものであるかをモバイルデバイスプロセッサがよりよく判断することを可能にすることに最も関連がある、要因およびデータポイントを特定する挙動モデルを受信するステップと、モバイルデバイスにインストールされた既存の挙動アナライザエンジンと連動して、受信された挙動モデルをモバイルデバイスにインストールするステップと、インストールされた挙動モデルを使用して、1つまたは複数のモバイルデバイス挙動を監視するステップとを含み得る。
【０００４】
一態様では、挙動モデルを受信するステップは、モバイルデバイス挙動が無害であるか悪意のあるものであるかをモバイルデバイスプロセッサがよりよく判断することを可能にすることに最も関連がある、要因およびデータポイントを特定する、ソフトウェアアプリケーションを受信するステップを含み得る。さらなる態様では、挙動モデルを受信するステップは、モバイルデバイス挙動が無害であるか悪意のあるものであるかをモバイルデバイスプロセッサがよりよく判断することを可能にすることに最も関連がある、要因およびデータポイントを特定する、XML、JSON、YAML、HTML/XHTML、または他のマークアップ言語ファイルを受信するステップを含み得る。さらなる態様では、挙動モデルを受信するステップは、挙動分類への特徴のマッピングを含み得る有限状態機械表現を受信するステップを含み得る。
【０００５】
さらなる態様では、方法は、既存の挙動モデルを、受信された挙動モデルと交換するステップを含み得る。一態様では、方法はまた、受信された挙動モデルを既存の挙動アナライザエンジンにリンクさせて、既存の挙動アナライザエンジンが分析動作を実施するとき、受信された挙動モデルを使用してそのように行うようにするステップを含み得る。
【０００６】
さらなる態様では、方法は、既存の挙動モデルを、受信された挙動モデル中に含まれる情報で拡張することによって更新するステップ、および/または、更新された挙動モデルを既存の挙動アナライザエンジンにリンクさせて、既存の挙動アナライザエンジンが分析動作を実施するとき、更新された挙動モデルを使用してそのように行うようにするステップを含み得る。
【０００７】
さらなる態様では、方法は、複数の公衆ネットワークから複数の挙動モデルを受信するステップと、少なくとも1つの既存の挙動モデルを、受信された複数の挙動モデルのうちの1つまたは複数中に含まれる情報で更新するステップとを含み得る。
【０００８】
さらなる態様では、アプリケーションダウンロードサービスから挙動モデルを受信するステップは、クラウドサービスネットワークサーバと、アプリストアサーバと、ユニフォームリソースロケータアドレスを介して識別されたウェブサーバと、ファイル転送プロトコルサービスネットワークサーバとのうちの1つから挙動モデルを受信するステップを含み得る。
【０００９】
さらなる態様では、アプリケーションダウンロードサービスから挙動モデルを受信するステップは、モバイルデバイスプロセッサによって、オンラインアプリストアにアクセスし、認証するステップと、オンラインアプリストアから、ダウンロードまたは更新のために利用可能な挙動モデルのメニューをダウンロードするステップと、モバイルデバイスプロセッサにおいて、ユーザ選択入力を受信するステップと、ユーザにより選択された挙動モデルのダウンロードまたは更新を、オンラインアプリストアに要求するステップと、要求された、ユーザにより選択された挙動モデルを、モバイルデバイスのダウンロードバッファにおいて受信するステップとを含み得る。
【００１０】
さらなる態様では、モバイルデバイスにインストールされた既存の挙動アナライザエンジンと連動して、受信された挙動モデルをモバイルデバイスにインストールするステップは、受信された挙動モデルを妥当性確認するステップと、妥当性確認された挙動モデルを、モバイルデバイスのメモリにインストールするステップと、インストールされた挙動モデルを、モバイルデバイスのオブザーバモジュールおよび/またはアナライザモジュールに登録するステップとを含み得る。
【００１１】
さらなる態様では、インストールされた挙動モデルを使用して、1つまたは複数のモバイルデバイス挙動を監視するステップは、ある時間期間にわたってモバイルデバイス挙動を観測するステップと、その時間期間にわたってモバイルデバイス挙動を観測することに基づいて、通常のモバイルデバイス動作と矛盾するモバイルデバイス挙動を特定するステップと、通常のモバイルデバイス動作と矛盾するとして特定されるモバイルデバイス挙動に基づいて、挙動ベクトルを生成するステップと、生成された挙動ベクトルを、インストールされた挙動モデルと比較して、特定されたモバイルデバイス挙動が無害であるか、疑わしいか、悪意のあるものであるかを判断するステップとを含み得る。さらなる態様では、方法は、モバイルデバイス挙動が無害であるか悪意のあるものであるかをモバイルデバイスプロセッサがよりよく判断することを可能にすることに関連があるとして、追加の要因およびデータポイントを特定する、新しい挙動モデルを受信するステップと、特定されたモバイルデバイス挙動が疑わしいと判断することに応答して、インストールされた挙動モデルを、新しい挙動モデル中に含まれる情報で更新するステップと、生成された挙動ベクトルを、更新された挙動モデルと比較して、特定された疑わしいモバイルデバイス挙動が無害であるか悪意のあるものであるかをよりよく判断するステップとを含み得る。
【００１２】
さらなる態様は、モバイルデバイスプロセッサと、アプリケーションダウンロードサービスから、モバイルデバイス挙動が無害であるか悪意のあるものであるかをモバイルデバイスプロセッサがよりよく判断することを可能にすることに最も関連がある、要因およびデータポイントを特定する挙動モデルを受信するための手段と、既存の挙動アナライザエンジンと連動して、受信された挙動モデルをインストールするための手段と、インストールされた挙動モデルを使用して、1つまたは複数のモバイルデバイス挙動を監視するための手段とを有する、コンピューティングデバイスを含む。
【００１３】
一態様では、挙動モデルを受信するための手段は、モバイルデバイス挙動が無害であるか悪意のあるものであるかをモバイルデバイスプロセッサがよりよく判断することを可能にすることに最も関連がある、要因およびデータポイントを特定する、ソフトウェアアプリケーションを受信するための手段を含み得る。さらなる態様では、挙動モデルを受信するための手段は、モバイルデバイス挙動が無害であるか悪意のあるものであるかをモバイルデバイスプロセッサがよりよく判断することを可能にすることに最も関連がある、要因およびデータポイントを特定する、XMLファイルを受信するための手段を含み得る。さらなる態様では、挙動モデルを受信するための手段は、挙動分類への特徴のマッピングを含み得る有限状態機械表現を受信するための手段を含み得る。
【００１４】
さらなる態様では、コンピューティングデバイスは、既存の挙動モデルを受信された挙動モデルと交換するための手段と、受信された挙動モデルを既存の挙動アナライザエンジンにリンクさせて、既存の挙動アナライザエンジンが分析動作を実施するとき、受信された挙動モデルを使用してそのように行うようにするための手段とを含み得る。
【００１５】
さらなる態様では、コンピューティングデバイスは、既存の挙動モデルを、受信された挙動モデル中に含まれる情報で更新するための手段と、更新された挙動モデルを既存の挙動アナライザエンジンにリンクさせて、既存の挙動アナライザエンジンが分析動作を実施するとき、更新された挙動モデルを使用してそのように行うようにするための手段とを含み得る。
【００１６】
さらなる態様では、コンピューティングデバイスは、複数の公衆ネットワークから複数の挙動モデルを受信するための手段と、少なくとも1つの既存の挙動モデルを、受信された複数の挙動モデルのうちの1つまたは複数中に含まれる情報で更新するための手段とを含み得る。
【００１７】
さらなる態様では、アプリケーションダウンロードサービスから挙動モデルを受信するための手段は、クラウドサービスネットワークサーバと、アプリストアサーバと、ユニフォームリソースロケータアドレスを介して識別されたウェブサーバと、ファイル転送プロトコルサービスネットワークサーバとのうちの1つから挙動モデルを受信するための手段を含み得る。
【００１８】
さらなる態様では、アプリケーションダウンロードサービスから挙動モデルを受信するための手段は、モバイルデバイスプロセッサによって、オンラインアプリストアにアクセスし、認証するための手段と、オンラインアプリストアから、ダウンロードまたは更新のために利用可能な挙動モデルのメニューをダウンロードするための手段と、モバイルデバイスプロセッサにおいて、ユーザ選択入力を受信するための手段と、ユーザにより選択された挙動モデルのダウンロードまたは更新を、オンラインアプリストアに要求するための手段と、要求された、ユーザにより選択された挙動モデルを、ダウンロードバッファにおいて受信するための手段とを含み得る。
【００１９】
さらなる態様では、既存の挙動アナライザエンジンと連動して、受信された挙動モデルをインストールするための手段は、受信された挙動モデルを妥当性確認するための手段と、妥当性確認された挙動モデルをメモリにインストールするための手段と、インストールされた挙動モデルをオブザーバモジュールに登録するための手段とを含み得る。
【００２０】
さらなる態様では、インストールされた挙動モデルを使用して、1つまたは複数のモバイルデバイス挙動を監視するための手段は、ある時間期間にわたってモバイルデバイス挙動を観測するための手段と、その時間期間にわたってモバイルデバイス挙動を観測することに基づいて、通常のモバイルデバイス動作と矛盾するモバイルデバイス挙動を特定するための手段と、通常のモバイルデバイス動作と矛盾するとして特定されるモバイルデバイス挙動に基づいて、挙動ベクトルを生成するための手段と、生成された挙動ベクトルを、インストールされた挙動モデルと比較して、特定されたモバイルデバイス挙動が無害であるか、疑わしいか、悪意のあるものであるかを判断するための手段とを含み得る。さらなる態様では、コンピューティングデバイスは、モバイルデバイス挙動が無害であるか悪意のあるものであるかをモバイルデバイスプロセッサがよりよく判断することを可能にすることに関連があるとして、追加の要因およびデータポイントを特定する、新しい挙動モデルを受信するための手段と、特定されたモバイルデバイス挙動が疑わしいと判断することに応答して、インストールされた挙動モデルを、新しい挙動モデル中に含まれる情報で更新するための手段と、生成された挙動ベクトルを、更新された挙動モデルと比較して、特定された疑わしいモバイルデバイス挙動が無害であるか悪意のあるものであるかをよりよく判断するための手段とを含み得る。
【００２１】
さらなる態様は、動作を実施するようにプロセッサ実行可能命令で構成されたプロセッサを有する、モバイルコンピューティングデバイスを含み、動作は、アプリケーションダウンロードサービスから、モバイルデバイス挙動が無害であるか悪意のあるものであるかをプロセッサがよりよく判断することを可能にすることに最も関連がある、要因およびデータポイントを特定する挙動モデルを受信すること、既存の挙動アナライザエンジンと連動して、受信された挙動モデルをインストールすること、および、インストールされた挙動モデルを使用して、1つまたは複数のモバイルデバイス挙動を監視することを含む。
【００２２】
一態様では、挙動モデルを受信することが、モバイルデバイス挙動が無害であるか悪意のあるものであるかをプロセッサがよりよく判断することを可能にすることに最も関連がある、要因およびデータポイントを特定する、ソフトウェアアプリケーションを受信することを含み得るように、プロセッサが動作を実施するようにプロセッサ実行可能命令で構成され得る。さらなる態様では、挙動モデルを受信することが、モバイルデバイス挙動が無害であるか悪意のあるものであるかをプロセッサがよりよく判断することを可能にすることに最も関連がある、要因およびデータポイントを特定する、XMLファイルを受信することを含み得るように、プロセッサが動作を実施するようにプロセッサ実行可能命令で構成され得る。さらなる態様では、挙動モデルを受信することが、挙動分類への特徴のマッピングを含む有限状態機械表現を受信することを含み得るように、プロセッサが動作を実施するようにプロセッサ実行可能命令で構成され得る。
【００２３】
さらなる態様では、プロセッサは、既存の挙動モデルを受信された挙動モデルと交換すること、および、受信された挙動モデルを既存の挙動アナライザエンジンにリンクさせて、既存の挙動アナライザエンジンが分析動作を実施するとき、受信された挙動モデルを使用してそのように行うようにすることを含む、動作を実施するようにプロセッサ実行可能命令で構成され得る。
【００２４】
さらなる態様では、プロセッサは、既存の挙動モデルを、受信された挙動モデル中に含まれる情報で更新すること、および、更新された挙動モデルを既存の挙動アナライザエンジンにリンクさせて、既存の挙動アナライザエンジンが分析動作を実施するとき、更新された挙動モデルを使用してそのように行うようにすることを含む、動作を実施するようにプロセッサ実行可能命令で構成され得る。
【００２５】
さらなる態様では、プロセッサは、複数の公衆ネットワークから複数の挙動モデルを受信すること、および、少なくとも1つの既存の挙動モデルを、受信された複数の挙動モデルのうちの1つまたは複数中に含まれる情報で更新することを含む、動作を実施するようにプロセッサ実行可能命令で構成され得る。
【００２６】
さらなる態様では、アプリケーションダウンロードサービスから挙動モデルを受信することが、クラウドサービスネットワークサーバと、アプリストアサーバと、ユニフォームリソースロケータアドレスを介して識別されたウェブサーバと、ファイル転送プロトコルサービスネットワークサーバとのうちの1つから挙動モデルを受信することを含み得るように、プロセッサが動作を実施するようにプロセッサ実行可能命令で構成され得る。
【００２７】
さらなる態様では、アプリケーションダウンロードサービスから挙動モデルを受信することが、オンラインアプリストアにアクセスし、認証すること、オンラインアプリストアから、ダウンロードまたは更新のために利用可能な挙動モデルのメニューをダウンロードすること、ユーザ選択入力を受信すること、ユーザにより選択された挙動モデルのダウンロードまたは更新を、オンラインアプリストアに要求すること、および、要求された、ユーザにより選択された挙動モデルを、ダウンロードバッファにおいて受信することを含み得るように、プロセッサが動作を実施するようにプロセッサ実行可能命令で構成され得る。
【００２８】
さらなる態様では、既存の挙動アナライザエンジンと連動して、受信された挙動モデルをインストールすることが、受信された挙動モデルを妥当性確認すること、妥当性確認された挙動モデルをメモリにインストールすること、および、インストールされた挙動モデルをオブザーバモジュールに登録することを含み得るように、プロセッサが動作を実施するようにプロセッサ実行可能命令で構成され得る。
【００２９】
さらなる態様では、インストールされた挙動モデルを使用して、1つまたは複数のモバイルデバイス挙動を監視することが、ある時間期間にわたってモバイルデバイス挙動を観測すること、その時間期間にわたってモバイルデバイス挙動を観測することに基づいて、通常のモバイルデバイス動作と矛盾するモバイルデバイス挙動を特定すること、通常のモバイルデバイス動作と矛盾するとして特定されるモバイルデバイス挙動に基づいて、挙動ベクトルを生成すること、および、生成された挙動ベクトルを、インストールされた挙動モデルと比較して、特定されたモバイルデバイス挙動が無害であるか、疑わしいか、悪意のあるものであるかを判断することを含み得るように、プロセッサが動作を実施するようにプロセッサ実行可能命令で構成され得る。さらなる態様では、プロセッサは、モバイルデバイス挙動が無害であるか悪意のあるものであるかをプロセッサがよりよく判断することを可能にすることに関連があるとして、追加の要因およびデータポイントを特定する、新しい挙動モデルを受信すること、特定されたモバイルデバイス挙動が疑わしいと判断することに応答して、インストールされた挙動モデルを、新しい挙動モデル中に含まれる情報で更新すること、および、生成された挙動ベクトルを、更新された挙動モデルと比較して、特定された疑わしいモバイルデバイス挙動が無害であるか悪意のあるものであるかをよりよく判断することを含む、動作を実施するようにプロセッサ実行可能命令で構成され得る。
【００３０】
さらなる態様は、プロセッサ実行可能ソフトウェア命令を記憶した非一時的コンピュータ可読記憶媒体を含み、プロセッサ実行可能ソフトウェア命令は、モバイルデバイスプロセッサに、アプリケーションダウンロードサービスから挙動モデルを受信することであって、受信された挙動モデルは、モバイルデバイス挙動が無害であるか悪意のあるものであるかをモバイルデバイスプロセッサがよりよく判断することを可能にすることに最も関連がある、要因およびデータポイントを特定すること、既存の挙動アナライザエンジンと連動して、受信された挙動モデルをインストールすること、および、インストールされた挙動モデルを使用して、1つまたは複数のモバイルデバイス挙動を監視することを含む、動作を実施させるように構成される。
【００３１】
一態様では、挙動モデルを受信することが、モバイルデバイス挙動が無害であるか悪意のあるものであるかをモバイルデバイスプロセッサがよりよく判断することを可能にすることに最も関連がある、要因およびデータポイントを特定する、ソフトウェアアプリケーションを受信することを含み得るように、記憶されたプロセッサ実行可能ソフトウェア命令が、モバイルデバイスプロセッサに動作を実施させるように構成され得る。さらなる態様では、挙動モデルを受信することが、モバイルデバイス挙動が無害であるか悪意のあるものであるかをモバイルデバイスプロセッサがよりよく判断することを可能にすることに最も関連がある、要因およびデータポイントを特定する、XMLファイルを受信することを含み得るように、記憶されたプロセッサ実行可能ソフトウェア命令が、モバイルデバイスプロセッサに動作を実施させるように構成され得る。さらなる態様では、挙動モデルを受信することが、挙動分類への特徴のマッピングを含む有限状態機械表現を受信することを含み得るように、記憶されたプロセッサ実行可能ソフトウェア命令が、モバイルデバイスプロセッサに動作を実施させるように構成され得る。
【００３２】
さらなる態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、モバイルデバイスプロセッサに、既存の挙動モデルを受信された挙動モデルと交換すること、および、受信された挙動モデルを既存の挙動アナライザエンジンにリンクさせて、既存の挙動アナライザエンジンが分析動作を実施するとき、受信された挙動モデルを使用してそのように行うようにすることを含む、動作を実施させるように構成され得る。さらなる態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、モバイルデバイスプロセッサに、既存の挙動モデルを、受信された挙動モデル中に含まれる情報で更新すること、および、更新された挙動モデルを既存の挙動アナライザエンジンにリンクさせて、既存の挙動アナライザエンジンが分析動作を実施するとき、更新された挙動モデルを使用してそのように行うようにすることを含む、動作を実施させるように構成され得る。
【００３３】
さらなる態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、モバイルデバイスプロセッサに、複数の公衆ネットワークから複数の挙動モデルを受信すること、および、少なくとも1つの既存の挙動モデルを、受信された複数の挙動モデルのうちの1つまたは複数中に含まれる情報で更新することを含む、動作を実施させるように構成され得る。
【００３４】
さらなる態様では、アプリケーションダウンロードサービスから挙動モデルを受信することが、クラウドサービスネットワークサーバと、アプリストアサーバと、ユニフォームリソースロケータアドレスを介して識別されたウェブサーバと、ファイル転送プロトコルサービスネットワークサーバとのうちの1つから挙動モデルを受信することを含み得るように、記憶されたプロセッサ実行可能ソフトウェア命令が、モバイルデバイスプロセッサに動作を実施させるように構成され得る。
【００３５】
さらなる態様では、アプリケーションダウンロードサービスから挙動モデルを受信することが、オンラインアプリストアにアクセスし、認証すること、オンラインアプリストアから、ダウンロードまたは更新のために利用可能な挙動モデルのメニューをダウンロードすること、ユーザ選択入力を受信すること、ユーザにより選択された挙動モデルのダウンロードまたは更新を、オンラインアプリストアに要求すること、および、要求された、ユーザにより選択された挙動モデルを、ダウンロードバッファにおいて受信することを含み得るように、記憶されたプロセッサ実行可能ソフトウェア命令が、モバイルデバイスプロセッサに動作を実施させるように構成され得る。
【００３６】
さらなる態様では、既存の挙動アナライザエンジンと連動して、受信された挙動モデルをインストールすることが、受信された挙動モデルを妥当性確認すること、妥当性確認された挙動モデルをメモリにインストールすること、および、インストールされた挙動モデルをオブザーバモジュールに登録することを含み得るように、記憶されたプロセッサ実行可能ソフトウェア命令が、モバイルデバイスプロセッサに動作を実施させるように構成され得る。
【００３７】
さらなる態様では、インストールされた挙動モデルを使用して、1つまたは複数のモバイルデバイス挙動を監視することが、ある時間期間にわたってモバイルデバイス挙動を観測すること、その時間期間にわたってモバイルデバイス挙動を観測することに基づいて、通常のモバイルデバイス動作と矛盾するモバイルデバイス挙動を特定すること、通常のモバイルデバイス動作と矛盾するとして特定されるモバイルデバイス挙動に基づいて、挙動ベクトルを生成すること、および、生成された挙動ベクトルを、インストールされた挙動モデルと比較して、特定されたモバイルデバイス挙動が無害であるか、疑わしいか、悪意のあるものであるかを判断することを含み得るように、記憶されたプロセッサ実行可能ソフトウェア命令が、モバイルデバイスプロセッサに動作を実施させるように構成され得る。さらなる態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、モバイルデバイスプロセッサに、モバイルデバイス挙動が無害であるか悪意のあるものであるかをモバイルデバイスプロセッサがよりよく判断することを可能にすることに関連があるとして、追加の要因およびデータポイントを特定する、新しい挙動モデルを受信すること、特定されたモバイルデバイス挙動が疑わしいと判断することに応答して、インストールされた挙動モデルを、新しい挙動モデル中に含まれる情報で更新すること、および、生成された挙動ベクトルを、更新された挙動モデルと比較して、特定された疑わしいモバイルデバイス挙動が無害であるか悪意のあるものであるかをよりよく判断することを含む、動作を実施させるように構成され得る。
【００３８】
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本発明の例示的な態様を示し、上記の全般的な説明および下記の発明を実施するための形態とともに、本発明の特徴について説明するために役立つ。
【図面の簡単な説明】
【００３９】
【図１】様々な態様において使用するために好適な例示的な電気通信システムのネットワーク構成要素を示す通信システムブロック図である。
【図２Ａ】特定のモバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが性能劣化させるか、疑わしいか、無害であるかを判断するように構成された、一態様のモバイルデバイスにおける例示的な論理構成要素および情報フローを示すブロック図である。
【図２Ｂ】特定のモバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが性能劣化させるか、疑わしいか、無害であるかを判断するように構成された、一態様のモバイルデバイスにおける例示的な論理構成要素および情報フローを示すブロック図である。
【図３】一態様による、動的および適応観測を実施するように構成されたオブザーバモジュールにおける例示的な論理構成要素および情報フローを示すブロック図である。
【図４】別の態様による、オブザーバデーモンを実装するコンピューティングシステムにおける論理構成要素および情報フローを示すブロック図である。
【図５】モバイルデバイス上で適応観測を実施するための一態様の方法を示すプロセスフロー図である。
【図６】挙動分析モジュール/アプリケーションをアプリケーションストアからモバイルデバイスへダウンロードするための一態様の方法を示すプロセスフロー図である。
【図７】挙動分析モデルをダウンロードおよび使用するための一態様の方法を示すプロセスフロー図である。
【図８】交換用挙動分析モジュール/アプリケーションをダウンロードおよび使用するための一態様のモバイルデバイス方法を示すプロセスフロー図である。
【図９】挙動分析モジュール/アプリケーションをアプリケーションストアからモバイルデバイスへダウンロードするための一態様のモバイルデバイス方法を示すプロセスフロー図である。
【図１０】複数の挙動分析モジュール/アプリケーションを複数の公衆ネットワークからダウンロードするための一態様のモバイルデバイス方法を示すプロセスフロー図である。
【図１１】公衆ネットワークから受信された、更新された挙動モデルを使用して、挙動分析動作を実施するための一態様のモバイルデバイス方法を示すプロセスフロー図である。
【図１２】一態様において使用するために好適なモバイルデバイスの構成要素ブロック図である。
【図１３】一態様において使用するために好適なサーバデバイスの構成要素ブロック図である。
【発明を実施するための形態】
【００４０】
様々な態様について、添付の図面を参照して詳細に説明する。可能な場合はいつでも、同じ参照番号は、図面全体を通して同じまたは同様の部分を指すために使用される。特定の例および実装形態に行われる参照は、説明を目的とし、本発明の範囲または特許請求の範囲を限定するものではない。
【００４１】
「例示的な」という言葉は、「例、事例、または例示として機能すること」を意味するように本明細書で使用される。本明細書に「例示的な」と記載されるいかなる実装形態も、他の実装形態よりも好ましいまたは有利であると必ずしも解釈されるべきではない。
【００４２】
様々な態様は、モバイルデバイスの性能、電力利用レベル、ネットワーク使用レベル、セキュリティおよび/またはプライバシーをしばしば経時的に劣化させる条件および/またはモバイルデバイス挙動を効率的に特定、分類、モデリング、防止、および/または修正するためのネットワークサーバ、モバイルデバイス、システム、および方法を提供する。そのような条件および修正活動についての情報を「クラウド」などの中央データベースに記憶し、モバイルデバイスがこのデータベースに記憶されている情報にアクセスして使用することを可能にすることによって、様々な態様は、そのような分析のすべてが各モバイルデバイス内で独立に遂行された場合よりもはるかに高速かつ低電力消費で、性能を限定する望ましくない動作条件に対してモバイルデバイスが反応することを可能にする。加えて、一態様のアプリケーションプログラミングインターフェース(API)およびモジュールの使用によって、モバイルデバイスと、複数のサードパーティ、アプリケーションストア、公衆ネットワーク、プライベートネットワーク、相手先ブランド製造会社(OEM)、電気通信サービスプロバイダなどとの間の、挙動モデル、クラシファイア、および挙動情報の通信が可能となり、また、モバイルデバイスの挙動分析エンジンが、頻繁に更新されること、複数の挙動もしくはアナライザモデルプロバイダとともに働くこと、ならびに/または、更新されたモデルを1つもしくは複数のソース(たとえば、複数のクラウドサービス)から、様々な時間に、および/もしくは変化する頻度で受信することが可能となる。具体的には、一態様のAPIおよびモジュールは、挙動モデルがインターネット、または、「アプリストア」(たとえば、Apple(登録商標)App Store、Windows(登録商標)Store、Google(登録商標)Playなど)、クラウドサービスもしくはサーバ、URLアドレス、FTPサーバなどのアプリケーションダウンロードサービスからダウンロードされることを可能にする。様々な態様では、モバイルデバイスは、モバイルデバイスにおけるクライアントモジュールと通信するクラウドサーバなど、アプリケーションダウンロードサービスから受信された情報またはモデルに基づいて、先在する、または生成された挙動モデルを更新または交換することができる。
【００４３】
いくつかの異なるセルラー通信およびモバイル通信のサービスおよび規格が利用可能であるか、または将来考えられ、それらのすべてが様々な態様を実装し、様々な態様から利益を得ることができる。そのようなサービスおよび規格には、たとえば、第3世代パートナーシッププロジェクト(3GPP)、ロングタームエボリューション(LTE)システム、第3世代ワイヤレスモバイル通信技術(3G)、第4世代ワイヤレスモバイル通信技術(4G)、モバイル通信用グローバルシステム(GSM（登録商標）)、ユニバーサルモバイルテレコミュニケーションシステム(UMTS)、3GSM（登録商標）、汎用パケット無線サービス(GPRS)、符号分割多元接続(CDMA)システム(たとえば、cdmaOne、CDMA1020(商標))、GSM（登録商標）進化型高速データレート(EDGE:enhanced data rates for GSM（登録商標） evolution)、高度移動電話システム(AMPS:advanced mobile phone system)、デジタルAMPS(IS-136/TDMA)、エボリューションデータオプティマイズド(EV-DO)、デジタル発展型コードレステレコミュニケーション(DECT:digital enhanced cordless telecommunications)、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX:worldwide interoperability for microwave access)、ワイヤレスローカルエリアネットワーク(WLAN)、Wi-Fi Protected Access I & II(WPA、WPA2)、および統合デジタル拡張ネットワーク(iden:integrated digital enhanced network)が含まれる。これらの技術の各々は、たとえば、音声、データ、シグナリング、および/またはコンテンツメッセージの送信および受信を伴う。個々の電気通信の規格または技術に関連した用語および/または技術的詳細に対するいかなる参照も例示目的にすぎず、請求項の文言に具体的に記載されない限り、特許請求の範囲を特定の通信システムまたは通信技術に限定するものではないことを理解されたい。
【００４４】
「モバイルコンピューティングデバイス」および「モバイルデバイス」という用語は、携帯電話、スマートフォン、パーソナルまたはモバイルのマルチメディアプレーヤ、携帯情報端末(PDA)、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、ウルトラブック、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応携帯電話、ワイヤレスゲームコントローラ、および、性能が重要であるメモリとプログラマブルプロセッサとを含み、節電方法が有益であるようなバッテリー電源で動作する同様のパーソナル電子デバイスのうちの、任意の1つまたはすべてを指すように、本明細書では互換的に使用される。様々な態様は、制限されたリソースを有し、バッテリーで動作する、スマートフォンなどのモバイルコンピューティングデバイスに対して特に有用であるが、これらの態様は、一般に、モノのインターネット(IOT)接続デバイスなど、プロセッサを含み、アプリケーションプログラムを実行する任意の電子デバイスにおいて有用である。
【００４５】
「性能劣化」という用語は、本明細書では、より長い処理時間、より遅いリアルタイム応答性、より短いバッテリー寿命、個人データの損失、悪意のある経済活動(たとえば、無許可のプレミアムSMSメッセージを送ること)、サービス拒否(DoS)、スパイまたはボットネット活動のためにモバイルデバイスを乗っ取ることまたは電話を利用することに関する動作など、多種多様な望ましくないモバイルデバイスの動作および特性を指すために使用される。
【００４６】
一般に、モバイルデバイスの性能および電力効率は、時間とともに劣化する。最近、アンチウイルス会社(たとえば、McAfee、Symantecなど)は、この劣化を遅くすることを狙いとするモバイルのアンチウイルス、ファイアウォール、および暗号化製品のマーケティングを開始した。しかしながら、これらのソリューションの多くは、モバイルデバイス上で計算集約的なスキャニングエンジンを周期的に実行することに依存しており、そのことが、モバイルデバイスの処理およびバッテリーのリソースの多くを消費し、モバイルデバイスを遅くさせるか、もしくは長い時間期間の間使えなくさせ、ならびに/または場合によってはユーザ体験を劣化させる場合がある。加えて、これらのソリューションは、通常、知られているウイルスおよびマルウェアの検出に限定され、(たとえば、性能劣化がウイルスもしくはマルウェアによって引き起こされないときに)経時的なモバイルデバイスの劣化に寄与するようにしばしば結びつく、複数の複雑な要因および/または相互作用に対処しない。これらおよび他の理由のために、既存のアンチウイルス、ファイアウォール、および暗号化製品は、経時的なモバイルデバイスの劣化に寄与し得る多くの要因を特定するため、モバイルデバイスの劣化を防止するため、または経年劣化したモバイルデバイスをその初期状態に効率的に回復させるための十分なソリューションを提供しない。
【００４７】
モバイルデバイスは、比較的限定された処理、メモリ、およびエネルギーのリソースを有する、リソースが制約されたシステムである。現代のモバイルデバイスはまた、複雑なシステムでもあり、不十分に設計されたソフトウェアアプリケーション、マルウェア、ウイルス、断片的メモリ、バックグラウンドプロセスなどを含む、モバイルデバイスの性能および電力利用レベルの経時的な劣化に寄与し得る多種多様な要因がある。これらの要因の数、多様性、および複雑さに起因して、現代のモバイルデバイスの複雑でありながらリソースが制約されたシステムの性能および/または電力利用レベルを劣化させ得る様々なプロセス、挙動、または要因(またはそれらの組合せ)のすべてを評価することは、しばしば実現可能ではない。
【００４８】
これらの事実に鑑みてより良い性能を提供するために、様々な態様は、任意の数または組合せの公衆およびプライベートクラウドサービス/ネットワーク(たとえば、アプリケーションストア、アンチウイルスパートナー、セキュリティパートナーなど)と連動して働いて、モバイルデバイスの性能および電力利用レベルの経時的な劣化に寄与し得る要因をインテリジェントおよび効率的に特定するように構成された、モバイルデバイスを含む。そのようなクラウドサービスは、計算的オフローディング、クラウドソーシングを提供し、ならびに、他の利益を提供して、モバイルデバイスが、モバイルデバイスの処理、メモリ、またはエネルギーのリソースの量を過剰に消費することなく、モバイルデバイス上で性能劣化要因を特定し得るようにすることができる。
【００４９】
一態様では、モバイルデバイスのオブザーバプロセス、デーモン、モジュール、またはサブシステム(本明細書で「モジュール」と総称する)は、モバイルデバイスシステムの様々なレベルで、様々なアプリケーションプログラミングインターフェース(API)、レジスタ、カウンタ、または他の利用可能な情報もしくは構成要素(本明細書で「装備された構成要素(instrumented component)」と総称する)を装備するかまたは協調させ、装備された構成要素から挙動情報を収集することができる。一態様では、モバイルデバイスはまた、アナライザモジュールおよび/またはクラシファイアモジュールをも含み得る。オブザーバモジュールは、収集された挙動情報をモバイルデバイスの(たとえば、メモリ書込み動作などを介して)クラシファイアモジュールおよび/またはアナライザモジュールへ、(たとえば、メモリ書込み動作、関数呼出しなどを介して)通信することができ、モバイルデバイスのクラシファイアモジュールおよび/またはアナライザモジュールは、収集された挙動情報を分析および/または分類し、挙動ベクトルを生成し、挙動ベクトルおよび様々な他のモバイルデバイスサブシステムから収集された情報に基づいて空間相関および/または時間相関を生成し、特定のモバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが無害であるか、疑わしいか、悪意のあるものであるか、性能劣化させるかを判断することができる。
【００５０】
モバイルデバイスのアナライザモジュールおよび/またはクラシファイアモジュールは、モバイルデバイス挙動が無害であるか、疑わしいか、悪意のあるものであるか、性能劣化させるかを判断するために、オブザーバモジュールによって収集されたリアルタイム挙動情報に、データ、アルゴリズム、および/またはモデルを実施、実行、および/または適用することを含み得る、リアルタイム分析動作を実施するように構成され得る。アナライザモジュールおよび/またはクラシファイアモジュールによって適用されるデータ、アルゴリズム、および/またはモデルは、モバイルデバイス上にプレインストールされるか、モバイルデバイス上で生成されるか、ならびに/または、サードパーティベンダおよびアプリケーションストアを含む、任意の数または組合せの公衆およびプライベートクラウドサービス/ネットワークからダウンロードされ、もしくはそれによってアップグレードされ得る。ダウンロードされたデータ、アルゴリズム、および/またはモデルは、インストールまたは更新プロセスにおいてアナライザモジュールおよび/またはクラシファイアモジュールにインストールまたはリンクされ、アナライザモジュールおよび/またはクラシファイアモジュールがリアルタイム分析動作を実施するとき、ダウンロードされたデータ、アルゴリズム、および/またはモデルを使用してそのように行うようにすることができる。
【００５１】
様々な態様は、モバイルデバイスと、1つまたは複数のプライベートおよび/または公衆ネットワークおよびサービス(たとえば、アプリケーションダウンロードサービス)との間の通信を促進し、アナライザモジュールが複数のクラウドサービスと連動して働くことを可能にする、インターフェースモジュールとともに構成された、モバイルデバイスを含み得る。インターフェースモジュールはまた、モバイルデバイスが、1つまたは複数のセキュリティクラウドパートナー、モバイルデバイスにおいて生成されたモデル、および、他のパートナー(たとえば、OEM、ネットワーク事業者など)からのモデルとともに働くことを可能にすることによって、モバイルデバイスのセキュリティおよび信頼性を高める。インターフェースモジュールはまた、モバイルデバイスが、アナライザモジュールおよびクラシファイアモジュールにリンクされたデータ、アルゴリズム、および/またはモデルへの増分更新をダウンロード、または他の方法で受信することも可能にする。
【００５２】
インターフェースモジュールはまた、モバイルデバイスがオブザーバモジュールおよび作業用アナライザアルゴリズムの配信を受け、後でアプリケーションダウンロードサービスまたはサードパーティからダウンロードされる機械学習または挙動モデルを受信可能であることを可能にする、アプリケーションレベルのダウンロード機構を提供することもできる。これらの態様は、モバイルデバイスユーザが、ユーザのセキュリティおよび選好を最もよく満たす最新の、ターゲットを絞ったモデルを購入することを可能にする。また、これらの態様は、インストールされたモデルが、増分的に、ならびに/または、アプリストアおよび他のサードパーティソフトウェア更新機構を通してアプリケーションを更新するためのすでに配備された機構を通して、更新されることを可能にする。このことにおいて、モバイルデバイスは、既存のソフトウェア配信およびサポートインフラストラクチャを使用して、モバイルデバイスの処理、メモリ、またはエネルギーのリソースの量を過剰に消費することなく、最も最新のアナライザモデルおよび/またはクラシファイアモデルで構成され得る。
【００５３】
一態様では、インターフェースモジュールは、アプリケーションダウンロードサービス(たとえば、クラウドネットワークにおけるサーバ、アプリストアなど)がデータ/挙動モデルをモバイルデバイスへ送ることを可能にするように構成され得る。モバイルデバイスは、データ/挙動モデルを受信および実装、適用、または使用して、疑わしい、悪意のある、または性能劣化させるモバイルデバイス挙動を、特定および修正することができる。これは、モバイルデバイスが、モバイルデバイスの既存のデータ/挙動モデルの全部または部分を交換または更新し、新しい/更新されたモデルをモバイルデバイスにおいて収集された情報に適用することによって、達成され得る。データ/挙動モデルは、クラシファイア、OEMによって提供された電力消費のモデル、ネットワーク事業者によって提供されたネットワークトラフィック使用のモデル、セキュリティパートナーによって提供された悪意のある活動のモデル、縮小された特徴モデル(RFM:reduced feature model)などであり得る。
【００５４】
様々な態様では、モバイルデバイスは、オフラインクラシファイアおよび/またはリアルタイムオンラインクラシファイアを含む、ネットワークサーバと通信するように構成され得る。オフラインクラシファイアは、クラウドサービス/ネットワークから前に受信された情報に基づいて、ロバストなデータ/挙動モデルを生成することができる。リアルタイムオンラインクラシファイアは、クラウドサービス/ネットワークから受信された情報から生成された、より大きくより複雑な挙動モデルを分析することに基づいて、リーンなデータ/挙動モデルを生成することができる。リーンなデータ/挙動モデルは、アナライザが処理しなければならないデータ量を低減しながら、疑わしいかまたは悪意のある挙動を示す可能性のある情報のサブセット、ならびに/または、限られた数の状態条件および挙動を考慮または評価する、モデルを含み得る。オンラインクラシファイアとオフラインクラシファイアの両方は、特定のモバイルデバイスのためのクラウドサービス/ネットワークによって利用可能にされた、縮小された情報のサブセットを含むデータ/挙動モデルを生成することができる。一態様では、リーンなデータ/挙動モデルを生成することは、1つもしくは複数の縮小された特徴モデル(RFM)を生成すること、および/または、クラウドソースモデルを活用することを含み得る。
【００５５】
様々な態様では、ダウンロードされたアナライザモデル/クラシファイアモデルで構成されたモバイルデバイスを含む、モバイルデバイスは、挙動ベクトル、分析結果、および他の挙動分析データを、ダウンロードされたアナライザモデル/クラシファイアモデルをサポートするサーバなど、ネットワークサーバへ転送することができる。この挙動ベクトルおよび/または分析結果のフィードバックは、リアルタイムで、または好都合なときに発生してよく、ネットワークサーバがアナライザモデル/クラシファイアモデルを開発および精緻化することを可能にすることができ、アナライザモデル/クラシファイアモデルは、次いで、アプリケーション更新として、アプリストアインフラストラクチャなどを介して、公衆クラウドネットワークを通してモバイルデバイスに提供され得る。
【００５６】
一態様では、モバイルデバイスは、公衆クラウドネットワークまたはアプリストアタイプの機構を介して、ネットワークサーバから受信された、クラウドソーシングされたモデルを活用するように構成され得る。クラウドソーシングされたモデルは、ネットワークサーバにおいて、サーバが機械学習技法および/またはコンテキストモデリング技法を実施すること、実行すること、ならびに/または、多くのモバイルデバイスによって提供される挙動情報および/もしくは挙動分析の結果に適用することを介して、生成され得る。たとえば、ネットワークサーバは、多数の報告を多くのモバイルデバイスから受信し、そのようなクラウドソーシングされた情報を分析し、統合整理し、または場合によっては、使用可能な情報に、特にすべてのモバイルデバイスによって使用もしくはアクセスされ得るリーンなデータセットもしくは集中的挙動モデルに変化させることができる。
【００５７】
一態様では、ネットワークサーバは、増分更新をモバイルデバイスへ送ることができ、モバイルデバイスは、ネットワークサーバから受信された増分更新に基づいて、そのモデルを更新するように構成され得る。たとえば、ネットワークサーバが、1万もの挙動ルールまたはレコードを記憶するデータベースを含み、新しいルール/レコードがデータベースに(たとえば、多くのモバイルデバイスから受信されたクラウドソーシングデータを介して)追加される場合、ネットワークサーバは、(すべての1万ものレコードとは対照的に)モデルの一部分および/または新しいルールもしくはレコードのみをモバイルデバイスへ送るように構成され得る。モバイルデバイスは、新しいルール/レコードを受信し、そのルールを含めるようにその既存のモデルを更新することができる。この新しいルール/レコード、および既存のモデルへの更新のダウンロードは、アプリストアインターフェースを介して遂行され得る。
【００５８】
一態様では、ネットワークサーバは、新しい挙動/分析報告がモバイルデバイスから受信されるとき、既存のリーンなデータ/挙動モデルを継続的に再評価すること、ならびに/または、(たとえば、前の実行、挙動モデルの前の適用などから収集された)履歴情報、新しい情報、機械学習、コンテキストモデリング、および利用可能な情報、モバイルデバイス状態、環境条件、ネットワーク条件、モバイルデバイス性能、バッテリー消費レベルなどにおいて検出された変化に基づいて、新しいまたは更新されたリーンなデータ/挙動モデルを生成することができる。
【００５９】
一態様では、ネットワークサーバは、初期の特徴セット(たとえば、初期の縮小された特徴モデル)と1つまたは複数の後続の特徴セット(たとえば、後続の縮小された特徴モデル)とを含むために、リーンなデータ/挙動モデルを生成するように構成され得る。初期の特徴セットは、特定のモバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが悪意のあるものである/性能劣化させるか、無害であるかをモバイルデバイスのクラシファイアモジュールがよりよく判断することを可能にする、最高の確率を有するように判断された情報を含み得る。後続の各特徴セットは、モバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが悪意のあるものである/性能劣化させるか、または無害であることを最終的に判断する、次に高い確率を有するように判断された情報を含み得る。後続の各特徴セットは、その前の特徴セットよりも大きいデータセットを含み得、したがって、データ/挙動モデルを適用することに関連する性能および電力消費のコストは、後続の各特徴セットに対して漸次増加し得る。
【００６０】
一態様では、モバイルデバイスのクラシファイアモジュールは、モバイルデバイスプロセッサがモバイルデバイス挙動を段階的に評価することを可能にする漸進的挙動モデル(またはクラシファイア)を含むかまたは実装することができる。たとえば、クラシファイアモジュールは、初期の特徴セットを含むリーンなデータ/挙動モデルを最初に適用し、次いで、モバイルデバイス挙動が無害であるか、または悪意のあるものである/性能劣化させることをクラシファイアモジュールが判断するまで、漸次大きくなる特徴セットを含むモデルを適用するように構成され得る。次いで、クラシファイアモジュールは、その動作の結果、および/または各モデルの適用に関連する成功率をネットワークサーバへ送ることができる。ネットワークサーバは、そのような結果を使用して、そのリーンなデータ/挙動モデル(たとえば、各モデル中に含まれる特徴セットなど)を更新し、それによって、すべての報告するモバイルデバイスの結果/成功率に基づいて、データおよび/またはモデルを精緻化することができる。次いで、ネットワークサーバは、更新されたリーンなデータ/挙動モデルを、新しいモデルアプリ、または前にダウンロードされたアプリへのアップグレードとして、モバイルデバイスにとって利用可能にし、それによって、モバイルデバイスが精緻化されたリーンなデータ/挙動モデルへのアクセスを有するようにすることができる。このようにして、モバイルデバイスは、アプリストアインフラストラクチャによって提供されたソフトウェア配信および更新機構を活用して、他のモバイルデバイスの挙動および結論から迅速に利益を得ることができる。
【００６１】
一態様では、ネットワークサーバは、オンラインおよびオフラインのクラシファイア、モデルジェネレータ、ならびに/またはクラウドモデルを継続的に更新するように構成され得る。ネットワークサーバは、変化が新しいモデルの生成を保証するのに実質的に十分であるときと、変化が無視され得るときとを、インテリジェントに判断するように構成され得る。たとえば、ネットワークサーバは、多くの異なるモバイルデバイスから更新を受信し、機械学習動作を実施してクラシファイアの第1のファミリーを生成し、生成されたクラシファイアの第1のファミリーに対して、新しいモデルの生成を保証するのに十分な変化が存在するかどうかを判断し、クラシファイアの第1のファミリーに対して十分な変化が存在すると判断されるとき、生成されたクラシファイアの第1のファミリー中のどの特徴が最良の特徴であるかを判断し、最良の特徴に基づいてクラシファイアの第2のファミリーを生成し、生成されたクラシファイアの第2のファミリーに対して十分な変化が存在するかどうかを判断し、クラシファイアの第2のファミリーに対して十分な変化が存在すると判断されるとき、モバイルデバイスのクラシファイアのデータ/挙動モデルを生成/更新することができる。
【００６２】
一態様では、インターフェースモジュールは、モバイルデバイスがプライベートクラウドサービスから典型的に受信されるものよりも少ない、またはより低い頻度の更新を受信することを可能にするように構成され得る。これによって、モバイルデバイスが、ユーザの裁量で、柔軟な方法で、クラウドサービスへの常時接続性を必要とせずに、更新されたモデルを受信することが可能となる。
【００６３】
様々な態様では、アナライザモジュールの全部または部分が、複数のソースからダウンロードされ、モバイルデバイス上にプリロードされ、モバイルデバイスのクライアントアプリケーションにダウンロードされ、アプリケーションダウンロードサービス(たとえば、アプリストアなど)からソフトウェアアプリケーションとしてダウンロードされ得る。
【００６４】
様々な態様は、図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および公衆ネットワークサーバ122をさらに含み得る。ネットワークサーバ116、122と電話ネットワーク104との間の接続は、インターネット110を介するか、(破線の矢印で示すように)プライベートネットワークを介するか、または任意の他の公衆もしくは半公衆ネットワーク(たとえば、アプリケーションダウンロードフレームワーク)を介してもよい。一態様では、プライベートネットワークサーバ116はまた、クラウドサービスプロバイダネットワーク118のネットワークインフラストラクチャ内のサーバとして実装されてもよい。ネットワークサーバ116、122とモバイルデバイス102との間の通信は、電話ネットワーク104、インターネット110、プライベートネットワーク(図示せず)、またはそれらの任意の組合せを介して達成され得る。
【００６６】
ネットワークサーバ116、122は、データ/挙動モデルをモバイルデバイス102へ送ることができ、モバイルデバイス102は、リーンなデータ/挙動モデルを受信および使用して、疑わしいまたは性能劣化させるモバイルデバイス挙動、ソフトウェアアプリケーション、プロセスなどを特定することができる。ネットワークサーバ116、122はまた、モバイルデバイスのデータ/挙動モデルを交換、更新、作成、および/または維持するために、分類およびモデリング情報をモバイルデバイス102へ送ることもできる。
【００６７】
モバイルデバイス102は、挙動、状態、分類、モデリング、成功率および/または統計情報をモバイルデバイス102において収集し、収集された情報を分析のために(たとえば、電話ネットワーク104を介して)ネットワークサーバ116へ送ることができる。ネットワークサーバ116は、モバイルデバイス102から受信された情報を使用して、データ/挙動モデルを更新もしくは精緻化すること、または、分類/モデリング情報を使用して、よりターゲットを絞った、および/もしくは縮小された特徴のサブセットを含むことができる。
【００６８】
図2Aは、特定のモバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが、悪意のあるものである/性能劣化させるか、疑わしいか、無害であるかを判断するように構成された、一態様のモバイルデバイス102における例示的な論理構成要素および情報フローを示す。図2Aに示す例では、モバイルデバイス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)および他の構成要素(たとえば、レジスタ、カウンタなど)を装備するかもしくは協調させ、装備された構成要素を介して様々なレベル/モジュールでモバイルデバイスの動作およびイベント(たとえば、システムイベント、状態変化など)を監視/観測し、観測された動作/イベントに関する情報を収集し、収集された情報をインテリジェントにフィルタ処理し、フィルタ処理された情報に基づいて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サーバ、Google(登録商標)Playサーバ)からのソフトウェアダウンロード、ソフトウェアアプリケーションによって使用されるモバイルデバイス情報、呼情報、テキストメッセージング情報(たとえば、SendSMS、BlockSMS、ReadSMSなど)、メディアメッセージング情報(たとえば、ReceiveMMS)、ユーザアカウント情報、位置情報、カメラ情報、加速度計情報、ブラウザ情報、ブラウザベース通信のコンテンツ、音声ベース通信のコンテンツ、短距離無線通信(たとえば、Bluetooth（登録商標）、WiFiなど)、テキストベース通信のコンテンツ、記録されたオーディオファイルのコンテンツ、電話帳または連絡先情報、連絡先リストなどを監視/観測することもできる。挙動オブザーバモジュール202は、内部プロセスであるので、情報および通信のコンテンツのその観測は、ユーザのプライバシーを損なわないはずであり、悪意のある挙動を削減または場合によっては軽減する目的は、ユーザの個人情報および秘密情報をマルウェアによる無許可配信から保護するように機能するべきである。
【００７７】
挙動オブザーバモジュール202は、ボイスメールを含む通信(VoiceMailComm)、デバイス識別子を含む通信(DeviceIDComm)、ユーザアカウント情報を含む通信(UserAccountComm)、カレンダ情報を含む通信(CalendarComm)、位置情報を含む通信(LocationComm)、記録されたオーディオ情報を含む通信(RecordAudioComm)、加速度計情報を含む通信(AccelerometerComm)などを含む、モバイルデバイスの送信または通信を監視/観測することができる。
【００７８】
挙動オブザーバモジュール202は、コンパス情報、モバイルデバイス設定、バッテリー寿命、ジャイロスコープ情報、圧力センサー、磁気センサー、スクリーン活動などの使用、およびそれらに対する更新/変更を監視/観測することができる。挙動オブザーバモジュール202は、ソフトウェアアプリケーションとの間で通信される通知(AppNotifications)、アプリケーション更新などを監視/観測することができる。挙動オブザーバモジュール202は、第2のソフトウェアアプリケーションのダウンロードおよび/またはインストールを要求している第1のソフトウェアアプリケーションに関する条件またはイベントを監視/観測することができる。挙動オブザーバモジュール202は、パスワードのエントリなどのユーザ検証に関する条件またはイベントを監視/観測することができる。
【００７９】
挙動オブザーバモジュール202はまた、アプリケーションレベル、無線レベル、およびセンサーレベルを含む、モバイルデバイスの複数のレベルで、条件またはイベントを監視/観測することもできる。
【００８０】
一態様では、監視される要因の数を管理可能レベルまで低減するために、挙動オブザーバモジュール202は、モバイルデバイスの劣化に寄与し得るすべての要因の小さいサブセットである、挙動または要因の初期セットを監視/観測することによって、粗い観測を実施することができる。一態様では、挙動オブザーバモジュール202は、ネットワークサーバ116および/またはクラウドサービスもしくはネットワーク118中の構成要素から、挙動および/または要因の初期セットを受信することができる。一態様では、挙動/要因の初期セットは、ネットワークサーバ116またはクラウドサービス/ネットワーク118から受信されたデータ/挙動モデル内で指定される場合がある。一態様では、挙動/要因の初期セットは、縮小された特徴モデル(RFM)内で指定される場合がある。
【００８１】
挙動オブザーバモジュール202は、モバイルデバイスメーカーまたはサービスプロバイダで供給され得るが、一態様では、挙動オブザーバモジュール202は、アプリストアからダウンロードされた挙動観測アプリケーションによって交換、補足、または更新され得る。言い換えれば、この態様では、ダウンロードされたモジュールは、挙動オブザーバモジュール、挙動アナライザモジュール、および/またはクラシファイアモジュールを含み得る。
【００８２】
挙動アナライザモジュール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が問題を効率的に特定し、モバイルデバイス上で問題が発生するのを防止することを可能にする。
【００８８】
図2Bは、挙動、ソフトウェアアプリケーション、および/またはプロセスが、悪意のあるものであるか、性能劣化させるか、疑わしいか、無害であるかを判断するように構成された、一態様のモバイルデバイス102における他の例示的な論理構成要素および情報フローを示す。図2Bに示す例では、モバイルデバイス102は、挙動オブザーバモジュール202と、挙動アナライザモジュール204と、インターフェースモジュール206と、モジュールまたは構成要素として実装され得る挙動API214とを含む。インターフェースモジュールは、パートナークライアントモジュールと、アプリケーションストアモジュールとを含み得る。モジュール202〜208、214の各々は、ソフトウェア、ハードウェアまたはそれらの任意の組合せで実装され得る。様々な態様では、モジュール202〜208、214は、高レベルオペレーティングシステム210の部分内(たとえば、カーネル内、カーネル空間中、ユーザ空間中など)、個別のプログラムもしくはアプリケーション内、専用のハードウェアバッファもしくはプロセッサ中、またはそれらの任意の組合せに実装され得る。一態様では、モジュール202〜208、214のうちの1つまたは複数は、モバイルデバイス102の1つまたは複数のプロセッサ上で実行するソフトウェア命令として実装され得る。
【００８９】
挙動オブザーバモジュール202は、モバイルデバイス挙動を特徴付けるために、webkit、SDK、NDK、カーネル、ドライバ、ブラウザ、ウェブレイヤソフトウェアおよびハードウェアを包含する、様々なモバイルデバイスモジュールおよびサブシステム上で、クロスレイヤ観測を実施するように構成され得る。
【００９０】
挙動オブザーバモジュール202は、受信されたモデルに基づいてモバイルデバイス挙動を監視/観測し、観測値を生成し、観測値を挙動アナライザモジュール204へ送ることができる。挙動アナライザモジュール204は、モバイルデバイス挙動が無害であるか、疑わしいか、悪意のあるものである/性能劣化させるかを判断するために、挙動オブザーバモジュール202によって収集された挙動情報にデータ/挙動モデルを適用することを含み得る、リアルタイム分析動作を実行することができる。挙動モデルは、モバイルデバイスにおいて生成されてよく、または、アプリケーションダウンロードサービス(たとえば、Apple(登録商標)App Store、Windows(登録商標)Store、Google(登録商標)Playなど)などの外部ソースから受信され得る。たとえば、様々な態様では、挙動アナライザモジュール204は、サードパーティネットワークサーバ116、クラウドサービスもしくはネットワーク118中の構成要素、または、アプリケーションダウンロードサーバ122から、インターフェースモジュール206を介して、挙動モデルを受信することができる。
【００９１】
インターフェースモジュール206は、アプリケーションダウンロードサーバ122から受信されたモデルを解釈するために好適な協調情報および/またはデータ構造を記憶する(または、記憶するデータベースもしくはサーバへのアクセスを有する)ことができる。そのような協調情報/データ構造は、挙動モデル、および/または、挙動特徴をモバイルデバイス挙動、アプリケーションもしくはプロセスの分類もしくは分析にマッピングする様々な表現(たとえば、有限状態機械、決定ツリーなど)を解釈、分析、組合せ、および/または適用するための、挙動特徴および文法の辞書データベースを含み得る。各表現は、1つまたは複数のデータ構造を含んでよく、複雑な関係、マッピング、相互接続、依存性、変換および/または状態のセットを記述することができ、知識の新しい要素を作成するように情報を編成することができる。表現は、モバイルデバイス挙動およびその特徴、挙動分類、ならびに、他の挙動、分類、またはシステムとの関係を記述することができる。
【００９２】
一態様では、インターフェースモジュール206は、観測された挙動情報、モバイルデバイス特徴、およびデータモデルを復号、解釈、評価、組合せ、編成、ならびに/または、通信リンク216を介してアプリケーションダウンロードサーバ122へ送信するために好適な、および/もしくは、挙動API214を介して挙動オブザーバモジュールと挙動アナライザモジュールとに送るために好適な、通信メッセージに符号化するように構成され得る。
【００９３】
様々な態様では、インターフェースモジュール206は、アプリケーションダウンロードサーバ122が挙動API214モジュール/構成要素を介してモバイルデバイス102中の挙動オブザーバモジュール202および挙動アナライザモジュール204と相互作用することを可能にするように構成され得る。たとえば、ユーザ許可が与えられたアプリケーション開発者は、インターフェースモジュール206を介して挙動オブザーバモジュール202および挙動アナライザモジュール204にアクセスして、モバイルデバイスの能力を発見すること、デバイス上でクライアント登録および認証動作を実施すること、モバイルデバイス中で観測/分析され得るモバイルデバイス挙動もしくは特徴のリストにアクセスすること、無害である、疑わしい、もしくは悪意のある/性能劣化させる挙動への、特徴のマッピングの有限状態機械記述を生成、ポピュレート、および/もしくは更新すること、モバイルデバイス挙動の追加のより詳細な、もしくはよりターゲットを絞った観測の要求を発行すること、特定のアプリケーション(たとえば、ホワイトリスト)を観測することからバックオフするための要求を発行すること、挙動ログ(良い、悪い、疑わしいなど)を受信するための要求を発行すること、モバイルデバイスに(たとえば、アクチュエータモジュール210を介して)修正活動を開始させる要求を発行すること、ならびに/または、モバイルデバイスにおいて他の同様の動作を実施することを行うための動作を実施することができる。
【００９４】
クラシファイアモジュール208が、デバイス挙動が疑わしいと判断するとき、クラシファイアモジュール208は、そのリアルタイム分析動作の結果を挙動オブザーバモジュール202に通信するように構成され得る。挙動オブザーバモジュール202は、その観測の細分性(すなわち、モバイルデバイス挙動が観測される詳細さのレベル)の調節、および/または、クラシファイアモジュール208から受信された情報に基づいて(たとえば、リアルタイム分析動作の結果に基づいて)観測される挙動の変更を行い、新しいまたは追加の挙動情報を生成または収集し、ならびに、(たとえば、新しいモデルの形態における)さらなる分析/分類のための新しい/追加の情報をクラシファイアモジュールへ送ることができる。このようにして、疑わしいもしくは性能劣化させるモバイルデバイス挙動の原因が特定されるまで、処理もしくはバッテリー消費のしきい値に到達するまで、または、観測の細分性をさらに増加させても疑わしいもしくは性能劣化させるモバイルデバイス挙動の原因が特定され得ないとモバイルデバイスプロセッサが判断するまで、モバイルデバイス102が繰り返し、観測の細分性を増加させる(すなわち、より微細にもしくはより詳細に観測する)こと、または観測される特徴/挙動を変更することを行うことができる。
【００９５】
モバイルデバイス102は、その動作の結果、および/またはモデルの適用に関連する成功率をネットワークサーバ116へ送ることができる。ネットワークサーバ116は、モデルジェネレータが使用するために、その結果/成功率に基づいて(たとえば、トレーニングデータモジュールを介して)トレーニングデータを生成することができ、モデルジェネレータは、更新されたモデルを生成し、更新されたモデルをモバイルデバイス102へ送ることができる。
【００９６】
図3は、一態様による、アプリケーションダウンロードサービスから受信されたモデルに適用され得る挙動情報を収集するように構成された、コンピューティングシステムの挙動オブザーバモジュール202における例示的な論理構成要素および情報フローを示す。挙動オブザーバモジュール202は、適応フィルタモジュール302と、スロットルモジュール304と、オブザーバモードモジュール306と、高レベル挙動検出モジュール308と、挙動ベクトルジェネレータ310と、セキュアバッファ312とを含み得る。高レベル挙動検出モジュール308は、空間相関モジュール314と時間相関モジュール316とを含み得る。
【００９７】
オブザーバモードモジュール306は、アナライザユニット(たとえば、図2を参照して上記で説明した挙動アナライザモジュール204)、アプリケーションAPI、および/または任意の装備された構成要素を含み得る、様々なソースから制御情報を受信することができる。オブザーバモードモジュール306は、様々なオブザーバモードに関する制御情報を適応フィルタモジュール302および高レベル挙動検出モジュール308へ送ることができる。
【００９８】
適応フィルタモジュール302は、複数のソースからデータ/情報を受信し、受信された情報をインテリジェントにフィルタ処理して、受信された情報から選択された情報のより小さいサブセットを生成することができる。このフィルタは、アナライザモジュールから、またはAPIを介して通信するより高いレベルのプロセスから受信された情報または制御に基づいて適合され得る。フィルタ処理された情報は、スロットルモジュール304に送られ得、スロットルモジュール304は、高レベル挙動検出モジュール308が要求または情報で氾濫するかまたは過負荷になることがないことを確実にするために、フィルタから流れる情報の量を制御する役割を果たすことができる。
【００９９】
高レベル挙動検出モジュール308は、スロットルモジュール304からのデータ/情報と、オブザーバモードモジュール306からの制御情報と、モバイルデバイスの他の構成要素からのコンテキスト情報とを受信することができる。高レベル挙動検出モジュール308は、受信された情報を使用して空間相関および時間相関を実施して、準最適レベルで実施することをデバイスに行わせ得る高レベル挙動を検出または特定することができる。空間相関および時間相関の結果は、挙動ベクトルジェネレータ310へ送られ得、挙動ベクトルジェネレータ310は、相関情報を受信し、特定のプロセス、アプリケーション、またはサブシステムの挙動を記述する挙動ベクトルを生成することができる。非限定的な態様では、挙動ベクトルジェネレータ310は、特定のプロセス、アプリケーション、またはサブシステムの高レベル挙動が挙動ベクトルの要素であり得るように、挙動ベクトルを生成することができる。一態様では、生成された挙動ベクトルは、セキュアバッファ312内に記憶され得る。高レベル挙動検出の例は、特定のイベントの存在、別のイベントの量または頻度、複数のイベント間の関係、イベントが発生する順序、いくつかのイベントの発生の間の時間差などの検出を含み得る。
【０１００】
様々な態様では、挙動オブザーバモジュール202は、適応観測を実施し、観測の細分性を制御することができる。すなわち、挙動オブザーバモジュール202は、観測されるべき関連挙動を動的に特定し、特定された挙動が観測されるべき詳細さのレベルを動的に判断することができる。このようにして、挙動オブザーバモジュール202は、様々なレベル(たとえば、複数の粗いレベルおよび微細なレベル)においてシステムがモバイルデバイスの挙動を監視することを可能にする。挙動オブザーバモジュール202は、観測されているものにシステムが適応することを可能にすることができる。挙動オブザーバモジュール202は、多様なソースから取得され得る情報の集中的なサブセットに基づいて、観測されている要因/挙動を、システムが動的に変更することを可能にすることができる。
【０１０１】
上記で説明したように、挙動オブザーバモジュール202は、適応観測技法を実施し、様々なソースから受信された情報に基づいて観測の細分性を制御することができる。たとえば、高レベル挙動検出モジュール308は、スロットルモジュール304、オブザーバモードモジュール306からの情報と、モバイルデバイスの他の構成要素(たとえば、センサー)から受信されたコンテキスト情報とを受信することができる。一例として、時間相関を実施する高レベル挙動検出モジュール308は、カメラが使用されたこと、および、モバイルデバイスがサーバへのピクチャのアップロードを試みていることを検出することがある。高レベル挙動検出モジュール308はまた、デバイスがホルスターに入れられ、ユーザのベルトに取り付けられていた間に、モバイルデバイス上のアプリケーションがピクチャを撮ったかどうか、または、バックグラウンドプロセスがユーザ対話なしにカメラスナップショットイベントをトリガしたかどうかを判断するために、空間相関を実施することもできる。高レベル挙動検出モジュール308は、この検出された高レベル挙動(たとえば、ホルスターに入れたままでカメラを使用すること)が容認できるまたは一般的な挙動であるかどうかを判断し得、そのことは、モバイルデバイスの現在の挙動と過去の挙動とを比較することによって、および/または複数のデバイスから収集された情報(たとえば、クラウドソーシングサーバから受信された情報)にアクセスすることによって達成され得る。ホルスターに入れられている間にピクチャを撮り、それらをサーバにアップロードすることは、(ホルスターに入れられている状況で観測される通常の挙動から判断され得るように)異常な挙動であるので、この状況では、高レベル挙動検出モジュール308は、これを、潜在的に危険な(threatening)挙動と認識し、適切な対応(たとえば、カメラを遮断する、警報を鳴らすなど)を開始することができる。
【０１０２】
一態様では、挙動オブザーバモジュール202は、複数の部分に実装され得る。
【０１０３】
図4は、一態様のオブザーバデーモンを実装するコンピューティングシステム400における論理構成要素および情報フローを示す。図4に示す例では、コンピューティングシステム400は、ユーザ空間内に挙動検出器402モジュール、データベースエンジン404モジュールおよび挙動アナライザモジュール204と、カーネル空間内にリングバッファ414、フィルタルール416モジュール、スロットリングルール418モジュールおよびセキュアバッファ420とを含む。コンピューティングシステム400は、ユーザ空間内に挙動検出器402およびデータベースエンジン404と、カーネル空間内にセキュアバッファマネージャ406、ルールマネージャ408およびシステムヘルスモニタ410とを含む、オブザーバデーモンをさらに含み得る。
【０１０４】
様々な態様は、システム挙動を特徴付けるためにwebkit、SDK、NDK、カーネル、ドライバ、およびハードウェアを包含する、モバイルデバイス上のクロスレイヤ観測を提供できる。挙動観測は、リアルタイムで行われ得る。
【０１０５】
オブザーバモジュールは、適応観測技法を実施し、観測の細分性を制御することができる。上記で説明したように、モバイルデバイスの劣化に寄与し得る多数(すなわち、数千)の要因が存在し、デバイスの性能の劣化に寄与し得る異なる要因のすべてを監視/観測することは実現不可能であり得る。これを克服するために、様々な態様は、観測されるべきである関連挙動を動的に特定し、特定された挙動が観測されるべき詳細さのレベルを動的に判断することができる。特定された挙動は、クラウドソーシングモデルの一部として使用され、他のモバイルデバイスのいずれかが同じまたは同様の挙動に遭遇する前でも、最初のモバイルデバイス上で学習された情報が、他のモバイルデバイスの利益になるように使用され得るようにすることができる。
【０１０６】
図5は、一態様による動的および適応観測を実施するための例示的な方法500を示す。ブロック502で、モバイルデバイスプロセッサは、モバイルデバイスの劣化に寄与し得る多数の要因/挙動のサブセットを監視/観測することによって、粗い観測を実施することができる。ブロック503で、モバイルデバイスプロセッサは、粗い観測を特徴付ける挙動ベクトルおよび/または粗い観測に基づくモバイルデバイス挙動を生成できる。ブロック504で、モバイルデバイスプロセッサは、モバイルデバイスの劣化に潜在的に寄与し得る粗い観測に関連するサブシステム、プロセス、および/またはアプリケーションを特定することができる。これは、たとえば、複数のソースから受信された情報とモバイルデバイスのセンサーから受信されたコンテキスト情報とを比較することによって達成され得る。ブロック506で、モバイルデバイスプロセッサは、粗い観測に基づいて挙動分析動作を実施することができる。態様では、ブロック503および504の一部として、モバイルデバイスプロセッサは、図2〜図4を参照して上記で説明した動作のうちの1つまたは複数を実施することができる。
【０１０７】
判断ブロック508で、疑わしい挙動または潜在的問題が特定され、挙動分析の結果に基づいて修正され得るかどうかを、モバイルデバイスプロセッサが判断できる。疑わしい挙動または潜在的問題が特定され、挙動分析の結果に基づいて修正され得るとモバイルデバイスプロセッサが判断する(すなわち、判断ブロック508=「Yes」)とき、ブロック518で、プロセッサは、挙動を修正するためのプロセスを開始し、ブロック502に戻って追加の粗い観測を実施することができる。
【０１０８】
疑わしい挙動または潜在的問題が、挙動分析の結果に基づいて特定および/または修正され得ないとモバイルデバイスプロセッサが判断する(すなわち、判断ブロック508=「No」)とき、判断ブロック509で、モバイルデバイスプロセッサは、問題の可能性があるかどうかを判断できる。一態様では、モバイルデバイスプロセッサは、モバイルデバイスが潜在的問題に遭遇することおよび/または疑わしい挙動に関与することの確率を計算し、計算された確率が所定のしきい値よりも大きいかどうかを判断することによって、問題の可能性があると判断することができる。計算された確率が所定のしきい値よりも大きくない、ならびに/または、疑わしい挙動もしくは潜在的問題が存在するおよび/もしくは検出可能である可能性はないとモバイルデバイスプロセッサが判断する(すなわち、判断ブロック509=「No」)とき、プロセッサは、ブロック502に戻って追加の粗い観測を実施することができる。
【０１０９】
疑わしい挙動または潜在的問題が存在するおよび/または検出可能である可能性があるとモバイルデバイスプロセッサが判断する(すなわち、判断ブロック509=「Yes」)とき、ブロック510で、モバイルデバイスプロセッサは、特定されたサブシステム、プロセスまたはアプリケーション上で、よりディープなロギングを実施することができる。ブロック512で、モバイルデバイスプロセッサは、よりディープなロギングに基づいて、特定されたサブシステム、プロセスまたはアプリケーション上で、よりディープでより詳細な観測を実施することができる。ブロック514で、モバイルデバイスプロセッサは、よりディープでより詳細な観測に基づいて、さらなるおよび/またはよりディープな挙動分析を実施することができる。
【０１１０】
判断ブロック508で、モバイルデバイスプロセッサは、よりディープな挙動分析の結果に基づいて、疑わしい挙動または潜在的問題が特定され修正され得るかどうかを再び判断することができる。よりディープな挙動分析の結果に基づいて疑わしい挙動または潜在的問題が特定され修正され得ないとモバイルデバイスプロセッサが判断する(すなわち、判断ブロック508=「No」)とき、詳細さのレベルが問題を特定するのに十分に微細になるまで、または詳細さを追加しても問題が特定され得ないかもしくは問題が存在しないと判断されるまで、プロセッサはブロック510〜514で動作を繰り返すことができる。
【０１１１】
図6は、挙動オブザーバ/アナライザ/クラシファイアモジュールまたは挙動モデルを、アプリケーションストアからモバイルデバイスへダウンロードするための一態様の方法600を示す。ブロック602で、モバイルデバイスは、ユーザ入力に応答して、インターネットなどのネットワークを介して、オンラインアプリストアにアクセスすることができる。ブロック602の一部として、モバイルデバイスはまた、認証ルーチンを実施して、アクセスされたアプリケーションストアが実際に信頼できるサイトであり、中間者攻撃を実行するマルウェアまたはサーバのソースではないことを確認することもできる。そのような認証プロセスは、モバイルデバイスをマルウェアから保護するために、様々な態様で特に必要であり得るものであり、その理由は、その態様のモデル/アプリケーションが、性能劣化させる挙動およびソフトウェアからモバイルデバイスを保護するように意図されているからである。アプリケーションおよびデータに署名し、それらの署名をモバイルデバイス上で検証することは、信頼を達成するために使用され得る1つの方法である。
【０１１２】
アプリケーションストアが認証されると、モバイルデバイスは、ブロック604で、ダウンロードまたは更新のために利用可能なモデルのメニューをダウンロードし、モバイルデバイスのディスプレイ上にメニューを提示することができる。モバイルデバイスは、代替として、その構成選好をアプリケーションストアにアップロードすることができる。ブロック606で、モバイルデバイスプロセッサは、ユーザ選択入力を受信し、ブロック608で、ユーザの選択またはデバイスのプレインストールされた構成に基づいて、ダウンロードまたは更新要求をアプリケーションストアへ送ることができる。
【０１１３】
ブロック610で、モバイルデバイスプロセッサは、要求されたモデルまたはアプリケーションのダウンロードを受信し、コードをメモリのバッファ部分に記憶することができる。判断ブロック612で、モバイルデバイスプロセッサは、ダウンロードされたコードに対してソフトウェア検証および妥当性確認プロセスを実施して、正確にダウンロードされており、信頼されたサードパーティによって妥当性確認されてから修正されていないかどうかを判断することができる。ダウンロードされたコードを検証および妥当性確認するための機構は、当技術分野でよく知られており、判断ブロック612で実施され得る。ダウンロードされたコードが検証または妥当性確認されない(すなわち、判断ブロック612=「No」)場合、ブロック620で、プロセッサは、コードをバッファメモリから削除することができる。
【０１１４】
ダウンロードされたコードが検証および妥当性確認される(すなわち、判断ブロック612=「Yes」)場合、プロセッサは、ブロック614で、ダウンロードされたモデルまたはアプリケーションをインストールすることができる。このインストールプロセスは、コードを実行するためにバッファからメモリの適切な部分にコピーすることを伴い得る。これはまた、特に更新の場合、前にインストールされたモデルまたはアプリケーションを交換することを伴い得る。代替として、新しい挙動ルールが、先在するルールセットに付加され得る。ブロック616で、プロセッサは、モデルまたはアプリケーションを、アナライザモジュールおよび/またはクラシファイアモジュールに登録することによって、インストールプロセスを完了することができる。上述のように、ダウンロードされたデータ、アルゴリズム、および/またはモデルは、インストールまたは更新プロセスにおいてアナライザモジュールおよび/またはクラシファイアモジュールにインストールまたはリンクされ、アナライザモジュールおよび/またはクラシファイアモジュールがリアルタイム分析動作を実施するとき、ダウンロードされたデータ、アルゴリズム、および/またはモデルを使用してそのように行うようにすることができる。インストールプロセスが完了すると、プロセッサは、ブロック618で、ダウンロードされたモデル/アプリケーションを使用して、デバイス挙動を監視、分析および/または分類することを開始することができる。
【０１１５】
図7は、挙動分析モデルをダウンロードおよび使用するための一態様の方法700を示す。ブロック702で、モバイルデバイスのプロセッサは、アプリケーションダウンロードサービスから挙動モデルを受信することができる。挙動モデルは、モバイルデバイス挙動が無害であるか悪意のあるものであるかをモバイルデバイスプロセッサがよりよく判断することを可能にすることに、最も関連があると判断された要因およびデータポイントを特定することができる。
【０１１６】
ブロック704で、モバイルデバイスプロセッサは、モバイルデバイスにインストールされた既存の分析エンジンと連動して、ダウンロードされた挙動モデルをモバイルデバイスにインストールすることができる。一実施形態では、これは、アプリケーションダウンロードサーバから受信されたモデルを解釈するために好適な協調情報および/またはデータ構造など、APIモジュールによって記憶された情報にアクセスすることによって達成され得る。そのような協調情報/データ構造は、挙動モデル、および/または、挙動特徴をモバイルデバイス挙動、アプリケーションもしくはプロセスの分類もしくは分析にマッピングする様々な表現(たとえば、有限状態機械、決定ツリーなど)を解釈、分析、組合せ、および/または適用するための、挙動特徴および文法の辞書データベースを含み得る。ブロック706で、モバイルデバイスプロセッサは、ダウンロードされた挙動モデルを使用して、モバイルデバイス挙動を監視することができる。
【０１１７】
図8は、交換用挙動分析モジュール/アプリケーションをダウンロードおよび使用するための一態様のモバイルデバイス方法800を示す。ブロック802で、モバイルデバイスのプロセッサは、アプリケーションダウンロードサービスから挙動モデルを受信することができる。挙動モデルは、モバイルデバイス挙動が無害であるか悪意のあるものであるかをモバイルデバイスプロセッサがよりよく判断することを可能にすることに、最も関連があると判断された要因およびデータポイントを特定することができる。ブロック804で、モバイルデバイスプロセッサは、既存の挙動モデルを受信されたモデルと交換することができる。ブロック806で、モバイルデバイスプロセッサは、受信されたモデルを分析エンジンにリンクさせて、分析エンジンが分析動作を実施するとき、受信されたモデルを使用してそのように行うようにすることができる。
【０１１８】
図9は、挙動分析モジュール/アプリケーションをアプリケーションストアからモバイルデバイスへダウンロードするための一態様のモバイルデバイス方法900を示す。ブロック902で、モバイルデバイスのプロセッサは、アプリケーションダウンロードサービスから挙動モデルを受信することができる。挙動モデルは、モバイルデバイス挙動が無害であるか悪意のあるものであるかをモバイルデバイスプロセッサがよりよく判断することを可能にすることに、最も関連があると判断された要因およびデータポイントを特定することができる。ブロック904で、モバイルデバイスプロセッサは、既存の挙動モデルの全部または部分を、受信されたモデル中に含まれる情報で更新することができる。ブロック906で、モバイルデバイスプロセッサは、更新されたモデルを分析エンジンにリンクさせて、分析エンジンが分析動作を実施するとき、更新された挙動モデルを使用してそのように行うようにすることができる。
【０１１９】
図10は、複数の挙動分析モジュール/アプリケーションを複数の公衆ネットワークからダウンロードするための、モバイルデバイスにおいて実施され得る一態様の方法1000を示す。ブロック1002で、モバイルデバイスのプロセッサは、複数の公衆ネットワークから複数の挙動モデルを受信することができる。各挙動モデルは、モバイルデバイス挙動が無害であるか悪意のあるものであるかをモバイルデバイスプロセッサがよりよく判断することを可能にすることに、最も関連があると判断された要因およびデータポイントを特定することができる。ブロック1004で、モバイルデバイスプロセッサは、1つまたは複数の既存の挙動モデルの全部または部分を、受信されたモデルのうちの1つまたは複数中に含まれる情報で更新することができる。ブロック1006で、モバイルデバイスプロセッサは、更新されたモデルを分析エンジンにリンクさせて、分析エンジンが分析動作を実施するとき、更新された挙動モデルを使用してそのように行うようにすることができる。
【０１２０】
図11は、公衆ネットワークから受信された、更新された挙動モデルを使用して、挙動分析動作を実施するための、モバイルデバイスにおいて実施され得る一態様の方法1100を示す。ブロック1102で、モバイルデバイスにおけるプロセッサは、モバイルデバイスシステムの様々なレベルで、様々なAPI、レジスタ、カウンタ、または他の利用可能な情報もしくは構成要素を、装備するかまたは協調させることができる。ブロック1104で、モバイルデバイスプロセッサは、装備された構成要素から挙動情報を収集することができる。ブロック1106で、モバイルデバイスプロセッサは、収集された挙動情報をモバイルデバイスの(たとえば、メモリ書込み動作などを介して)クラシファイアモジュールおよび/またはアナライザモジュールへ(たとえば、メモリ書込み動作、関数呼出しなどを介して)送ることができる。
【０１２１】
ブロック1108で、モバイルデバイスプロセッサは、収集された挙動情報を分析および/または分類し、挙動ベクトルを生成し、挙動ベクトルと、挙動モデルと、様々な他のモバイルデバイスサブシステムから収集された情報とに基づいて、空間相関および/または時間相関を生成することができる。ブロック1110で、モバイルデバイスプロセッサは、特定のモバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが無害であるか、疑わしいか、悪意のあるものであるか、性能劣化させるかを判断するために、様々な分析動作を実施することを開始することができる。
【０１２２】
ブロック1112で、モバイルデバイスプロセッサは、モバイルデバイス挙動が無害であるか悪意のあるものであるかを判断することに最も関連がある要因およびデータポイントをよりよく特定する、新しい挙動モデルを受信することができる。ブロック1114で、モバイルデバイスプロセッサは、既存の挙動モデルを受信されたモデルと交換することができる。ブロック1116で、モバイルデバイスプロセッサは、受信されたモデルを分析エンジンにリンクさせることができる。判断ブロック1118で、モバイルデバイスは、モバイルデバイス挙動が無害であるとして分類されたか、悪意のあるものとして分類されたか、および/または、問題が特定されたかどうかを判断することができる。モバイルデバイスプロセッサが、問題が特定されたと判断する(すなわち、判断ブロック1118=「Yes」)場合、ブロック1120で、モバイルデバイスプロセッサは、問題を解決するための動作を実施することができる。モバイルデバイスプロセッサが、問題が特定されていないと判断する(すなわち、判断ブロック1118=「No」)場合、問題が特定されるまで、ブロック1108〜1116における動作が繰り返され得る。
【０１２３】
モバイルデバイスのアナライザモジュールおよび/またはクラシファイアモジュールは、モバイルデバイス挙動が無害であるか、疑わしいか、悪意のあるものであるか、性能劣化させるかを判断するために、オブザーバモジュールによって収集されたリアルタイム挙動情報に、データ、アルゴリズム、および/またはモデルを実施、実行、および/または適用することを含み得る、リアルタイム分析動作を実施するように構成され得る。アナライザモジュールおよび/またはクラシファイアモジュールによって適用されるデータ、アルゴリズム、および/またはモデルは、モバイルデバイス上にプレインストールされるか、モバイルデバイス上で生成されるか、ならびに/または、サードパーティベンダおよびアプリケーションストアを含む、任意の数または組合せの公衆およびプライベートクラウドサービス/ネットワークからダウンロードされ、もしくはそれによってアップグレードされ得る。ダウンロードされたデータ、アルゴリズム、および/またはモデルは、インストールまたは更新プロセスにおいてアナライザモジュールおよび/またはクラシファイアモジュールにインストールまたはリンクされ、アナライザモジュールおよび/またはクラシファイアモジュールがリアルタイム分析動作を実施するとき、ダウンロードされたデータ、アルゴリズム、および/またはモデルを使用してそのように行うようにすることができる。
【０１２４】
様々な態様が、多様なモバイルコンピューティングデバイス上に実装され得、それらの一例が、スマートフォンの形で図12に示されている。スマートフォン1200は、内部メモリ1202と、ディスプレイ1203と、スピーカとに結合されたプロセッサ1201を含み得る。加えて、スマートフォン1200は、プロセッサ1201に結合されたワイヤレスデータリンクおよび/または携帯電話トランシーバ1205に接続され得る、電磁放射を送信および受信するためのアンテナ1204を含み得る。スマートフォン1200は通常、ユーザ入力を受け取るためのメニュー選択ボタンまたはロッカースイッチ1206も含む。
【０１２５】
一般的なスマートフォン1200はまた、マイクロフォンから受信された音をワイヤレス送信に適したデータパケットにデジタル化し、受信された音のデータパケットを復号し、スピーカに供給されて音を発生するアナログ信号を生成する、音の符号化/復号(CODEC)回路1212を含む。同じく、プロセッサ1201、ワイヤレストランシーバ1205およびCODEC1212のうちの1つまたは複数は、デジタル信号プロセッサ(DSP)回路(個別に示されず)を含み得る。
【０１２６】
態様の方法の一部は、態様の方法を実行している間にモバイルデバイスプロセッサによってアクセスされ得る通常動作挙動のデータベースを維持することなど、サーバ内で発生する処理のいくつかによって、クライアントサーバアーキテクチャにおいて遂行され得る。そのような態様は、図13に示すサーバ1300のような、種々の市販のサーバデバイスのいずれにおいても実装され得る。そのようなサーバ1300は通常、揮発性メモリ1302と、ディスクドライブ1303のような大容量の不揮発性メモリとに結合された、プロセッサ1301を含む。サーバ1300はまた、プロセッサ1301に結合されたフロッピー（登録商標）ディスクドライブ、コンパクトディスク(CD)またはDVDディスクドライブ1301を含み得る。サーバ1300はまた、他のブロードキャストシステムコンピュータおよびサーバに結合されたローカルエリアネットワークなど、ネットワーク1305とデータ接続を確立するための、プロセッサ1301に結合されたネットワークアクセスポート1304を含み得る。
【０１２７】
プロセッサ1201、1301は、上記で説明した様々な態様の機能を含む、様々な機能を実施するためのソフトウェア命令(アプリケーション)によって構成され得る、任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、または1つもしくは複数の多重プロセッサチップであり得る。いくつかのモバイルデバイスでは、1つのプロセッサをワイヤレス通信機能専用にし、1つのプロセッサを他のアプリケーションの実行専用にするように、複数のプロセッサ1201を設けることができる。一般的には、ソフトウェアアプリケーションは、それらがアクセスされ、プロセッサ1201、1301にロードされる前に、内部メモリ1202、1302、1303内に記憶され得る。プロセッサ1201、1301は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。
【０１２８】
様々な態様の動作を遂行するためにプログラマブルプロセッサ上で実行するためのコンピュータプログラムコードすなわち「プログラムコード」は、C、C++、C#、Smalltalk、Java（登録商標）、JavaScript（登録商標）、Visual Basic、Structured Query Language(たとえば、Transact-SQL)、Perlなどの高水準プログラミング言語で、または様々な他のプログラミング言語で記述される場合がある。本出願で使用する場合、コンピュータ可読記憶媒体に記憶されるプログラムコードまたはプログラムは、そのフォーマットがプロセッサによって理解可能である(オブジェクトコードなどの)機械語コードを指す場合がある。
【０１２９】
多くのモバイルコンピューティングデバイスのオペレーティングシステムのカーネルは、(非特権コードが動作する場合)ユーザ空間内に編成され、(特権コードが動作する場合)カーネル空間内に編成される。この分離は、カーネル空間の一部であるコードが許諾される必要がある一方で、ユーザ空間内で動作するコードがそのような許諾を必要としない、Android(登録商標)および他の一般公有使用許諾(GPL)環境またはオープンソース環境において特に重要である。本明細書で説明する様々なソフトウェア構成要素/モジュールは、明示的に別段の記述がない場合、カーネル空間またはユーザ空間のいずれかに実装され得ることを理解されたい。
【０１３０】
上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供したものであり、様々な態様のステップを提示された順序で実施しなければならないことを要求または暗示するものではない。当業者によって諒解されるように、上記の態様におけるステップの順序は、いかなる順序でも実施することができる。「その後」、「次いで」、「次に」などの単語は、ステップの順序を限定するものではなく、これらの単語は、単に、方法の説明を通して読者を案内するために使用される。さらに、たとえば、冠詞「a」、「an」または「the」を使用する単数形での請求要素への任意の言及は、その要素を単数に限定するものとして解釈されるべきではない。
【０１３１】
本出願で使用する場合、「構成要素」、「モジュール」、「システム」、「エンジン」、「ジェネレータ」、「マネージャ」などの用語は、限定はしないが、特定の動作または機能を実施するように構成された、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなどのコンピュータ関連エンティティを含むものとする。たとえば、構成要素は、プロセッサ上で動作しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得るが、それらに限定されない。実例として、コンピューティングデバイス上で動作しているアプリケーションとコンピューティングデバイスの両方は、構成要素と呼ばれる場合がある。1つまたは複数の構成要素は、プロセスおよび/または実行スレッドの中に存在する場合があり、1つの構成要素は、1つのプロセッサもしくはコアに局在する場合があり、かつ/または2つ以上のプロセッサもしくはコアの間に分散する場合がある。加えて、これらの構成要素は、様々な命令および/またはデータ構造を記憶している様々な非一時的コンピュータ可読媒体から実行することができる。構成要素は、ローカルプロセスおよび/またはリモートプロセス、関数呼出しまたはプロシージャ呼出し、電子信号、データパケット、メモリ読出し/書込み、ならびに他の知られているネットワーク、コンピュータ、プロセッサ、および/またはプロセス関連の通信方法によって通信することができる。
【０１３２】
本明細書で開示する態様に関して説明する、様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装することができる。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、概してそれらの機能に関して上記で説明した。そのような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、具体的な適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を具体的な適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【０１３３】
本明細書で開示する態様に関して説明する様々な例示的な論理、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別のハードウェア構成要素、または、本明細書で説明する機能を実施するように設計されたそれらの任意の組合せで、実装または実施され得る。汎用プロセッサはマルチプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとGPUとマルチプロセッサとの組合せ、複数のマルチプロセッサ、DSPコアと連動する1つもしくは複数のマルチプロセッサ、または任意の他のそのような構成として実装され得る。代替として、いくつかのステップまたは方法は、所与の機能に固有の回路によって実施され得る。
【０１３４】
1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、非一時的コンピュータ可読媒体または非一時的プロセッサ可読記憶媒体に記憶され得る。本明細書で開示された方法またはアルゴリズムのステップは、非一時的コンピュータ可読記憶媒体またはプロセッサ可読記憶媒体上に存在し得るプロセッサ実行可能ソフトウェアモジュールで具現化され得る。非一時的コンピュータ可読記憶媒体またはプロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスされ得る任意の記憶媒体であってよい。限定ではなく例として、そのような非一時的コンピュータ可読媒体またはプロセッサ可読媒体は、RAM、ROM、EEPROM、フラッシュメモリ、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー（登録商標）ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せも、非一時的コンピュータ可読媒体およびプロセッサ可読媒体の範囲内に含まれる。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る、非一時的プロセッサ可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の、1つまたは任意の組合せまたはセットとして存在し得る。
【０１３５】
開示された態様の上記の説明は、任意の当業者が本発明を製作または使用することが可能になるように提供される。これらの態様への様々な修正が当業者には容易に明らかであり、本明細書で定義された一般的な原理は、本発明の趣旨または範囲を逸脱することなく、他の態様に適用することができる。したがって、本発明は、本明細書で示された態様に限定されるものではなく、以下の特許請求の範囲ならびに本明細書で開示された原理および新規の特徴に合致する、最も広い範囲を与えられるべきである。
【符号の説明】
【０１３６】
100  通信システム
102  モバイルデバイス
104  セル電話ネットワーク、電話ネットワーク
106  セル基地局
108  ネットワーク運用センター
110  インターネット
112  双方向ワイヤレス通信リンク
114、1300  サーバ
116  プライベートネットワークサーバ、ネットワークサーバ、サードパーティネットワークサーバ
118  クラウドサービスプロバイダネットワーク、ネットワーク、クラウドサービス/ネットワーク
122  公衆ネットワークサーバ、ネットワークサーバ、アプリケーションダウンロードサーバ
202  挙動オブザーバモジュール
204  挙動アナライザモジュール
206  外部コンテキスト情報モジュール、インターフェースモジュール
208  クラシファイアモジュール
210  アクチュエータモジュール、高レベルオペレーティングシステム
214  挙動API
216  通信リンク
302  適応フィルタモジュール
304  スロットルモジュール
306  オブザーバモードモジュール
308  高レベル挙動検出モジュール
310  挙動ベクトルジェネレータ
312  セキュアバッファ
314  空間相関モジュール
316  時間相関モジュール
400  コンピューティングシステム
402  挙動検出器
404  データベースエンジン
406  セキュアバッファマネージャ
408  ルールマネージャ
410  システムヘルスモニタ
414  リングバッファ
416  フィルタルール
418  スロットリングルール
420  セキュアバッファ
1200  スマートフォン
1201、1301  プロセッサ
1202  内部メモリ
1203  ディスプレイ
1204  アンテナ
1205  ワイヤレスデータリンクおよび/または携帯電話トランシーバ、ワイヤレストランシーバ
1206  メニュー選択ボタンまたはロッカースイッチ
1212  音の符号化/復号(CODEC)回路
1301  フロッピー（登録商標）ディスクドライブ、コンパクトディスク(CD)またはDVDディスクドライブ
1302  揮発性メモリ、内部メモリ
1303  ディスクドライブ、内部メモリ
1304  ネットワークアクセスポート
1305  ネットワーク
【図１】
0006305442.tif 000002
【図２Ａ】
0006305442.tif 000003
【図２Ｂ】
0006305442.tif 000004
【図３】
0006305442.tif 000005
【図４】
0006305442.tif 000006
【図５】
0006305442.tif 000007
【図６】
0006305442.tif 000008
【図７】
0006305442.tif 000009
【図８】
0006305442.tif 000010
【図９】
0006305442.tif 000011
【図１０】
0006305442.tif 000012
【図１１】
0006305442.tif 000013
【図１２】
0006305442.tif 000014
【図１３】
0006305442.tif 000015