(57)【要約】  モバイルデバイス挙動を特定し、分類し、モデル化し、それに応じるための方法、システム、およびデバイスは、非良性挙動のインスタンスを検出するための様々な条件およびデバイス挙動を監視および分析するために軽いプロセスを使用することと、非良性挙動の他のインスタンスを特定するためにセキュリティまたは精査のレベルを高めることと、選択コンピューティングデバイスがそのセキュリティ/精査レベルをやはり高めることができるように、増大したセキュリティレベルについて選択コンピューティングデバイスに通知することとを含み得る。たとえば、コンピューティングデバイスは、増大したセキュリティリスクが存在するかどうかを決定するために第1のタイプの分析動作(たとえば、軽い分析動作)を実行し、第1のタイプの分析動作の実行によって検出されたセキュリティリスクとは異なる追加のセキュリティリスクが存在するかどうかを決定するために、増大したセキュリティリスクが存在するとの決定に応じて、第2のタイプの分析動作(たとえば、ロバストな分析動作)を実行するように構成され得る。
2018508071.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイス内の挙動を分析する方法であって、
前記コンピューティングデバイスのプロセッサ内で、増大したセキュリティリスクが存在するかどうかを決定するために第1のタイプの分析動作を実行するステップであって、前記第1のタイプの分析動作が、前記増大したセキュリティリスクまたは以前に発生のリスクの兆候に関して前記コンピューティングデバイスを監視することを含む、実行するステップと、
前記増大したセキュリティリスクが存在するとの決定に応じて、第2のタイプの分析動作を実行するステップであって、前記第2のタイプの分析動作が前記第1のタイプの分析動作よりも計算集約的である、実行するステップと
を含む、方法。
【請求項２】
前記第1のタイプの分析動作を前記実行するステップが、軽い分析動作を実行するステップを含み、
前記第2のタイプの分析動作を前記実行するステップが、ロバストな分析動作を実行するステップを含む
請求項1に記載の方法。
【請求項３】
ロバストな分析動作を前記実行するステップが、軽い分析動作によって検出された前記増大したセキュリティリスクとは異なる別のセキュリティリスクを特定するステップを含む、請求項2に記載の方法。
【請求項４】
軽い分析動作を前記実行するステップが、
挙動情報を収集するためにデバイス挙動を監視するステップと、
前記収集された挙動情報に基づいて挙動ベクトルデータ構造を生成するステップと、
第1のデバイス挙動が非良性であるかどうかの決定を得るために、前記挙動ベクトルデータ構造を簡潔な分類器モデルに適用するステップと、
前記第1のデバイス挙動が非良性であるとの決定に応じて、前記増大したセキュリティリスクが存在すると決定するステップと
を含む、請求項2に記載の方法。
【請求項５】
ロバストな分析動作を前記実行するステップが、前記コンピューティングデバイスのフルスキャンを実行するステップを含む、請求項2に記載の方法。
【請求項６】
ロバストな分析動作を前記実行するステップが、別のセキュリティリスクが前記コンピューティングデバイス内に存在するかどうかの決定を得るために、挙動ベクトルデータ構造を完全な分類器モデルに適用するステップを含む、請求項2に記載の方法。
【請求項７】
ロバストな分析動作を前記実行するステップが、
追加の挙動情報を収集するために追加のデバイス挙動を監視するステップと、
前記収集された追加の挙動情報に基づいて複数の挙動ベクトルデータ構造を生成するステップと、
前記複数の挙動ベクトルデータ構造の各々を分類器モデルに適用するステップと
を含む、請求項2に記載の方法。
【請求項８】
前記増大したセキュリティリスクが存在するとの決定に応じて、ロバストな分析動作を前記実行するステップが、動的に決定された時間期間にわたってロバストな分析動作を実行するステップを含む、請求項2に記載の方法。
【請求項９】
前記コンピューティングデバイスと第2のコンピューティングデバイスとの間の距離に基づいて前記時間期間を動的に決定するステップをさらに含む、請求項8に記載の方法。
【請求項１０】
前記増大したセキュリティリスクまたは前記以前に発生のリスクの前記兆候に関して前記コンピューティングデバイスを前記監視するステップが、
前記増大したセキュリティリスクを示す、別のコンピューティングデバイスからの通知メッセージに関して前記コンピューティングデバイスを監視するステップ
を含む、請求項1に記載の方法。
【請求項１１】
前記増大したセキュリティリスクまたは以前に発生のリスクの前記兆候に関して前記コンピューティングデバイスを前記監視するステップが、
内部計算、ファイル、機能的挙動、およびデータアクセス要求のうちの1つまたは複数を監視するステップ
を含む、請求項1に記載の方法。
【請求項１２】
前記増大したセキュリティリスクまたは前記以前に発生のリスクの前記兆候に関して前記コンピューティングデバイスを前記監視するステップが、
非良性活動に関連付けられたデータパターンを特定するために前記コンピューティングデバイスを監視するステップ
を含む、請求項1に記載の方法。
【請求項１３】
前記増大したセキュリティリスクが存在するとの決定に応じて、リスク情報を含む通知メッセージを生成するステップと、
1つまたは複数のコンピューティングデバイスに前記通知メッセージを送信するステップと
をさらに含む、請求項1に記載の方法。
【請求項１４】
前記増大したセキュリティリスクまたは前記以前に発生のリスクの前記兆候に関して前記コンピューティングデバイスを前記監視するステップが、
マルウェア感染の一般的な結果に関して前記コンピューティングデバイスを監視するステップ
を含む、請求項1に記載の方法。
【請求項１５】
前記マルウェア感染の一般的な結果に関して前記コンピューティングデバイスを前記監視するステップが、
ある時間期間内に送信されたプレミアムSMSメッセージの数を監視すること、
悪意のある挙動に関連付けられたサイトへのトラフィック内の増大を監視すること、
前記時間期間内に通信されたアドレスブック連絡先の数を監視すること、
前記時間期間内のパスワード修正の数を監視すること、および
デバイス構成に対する変更を監視すること
のうちの1を実行するステップを含む、請求項14に記載の方法。
【請求項１６】
リスク情報を含む通知メッセージを別のコンピューティングデバイスから受信するステップと、
前記受信された通知メッセージ内に含まれた前記リスク情報に基づいて、前記増大したセキュリティリスクが存在すると決定するステップと
をさらに含む、請求項1に記載の方法。
【請求項１７】
前記受信された通知メッセージ内に含まれた前記リスク情報に基づいて、前記増大したセキュリティリスクが存在すると前記決定するステップが、前記コンピューティングデバイスと前記受信された通知メッセージを送信する別のコンピューティングデバイスとの間の距離に少なくとも部分的に基づいて、前記増大したセキュリティリスクが存在すると決定するステップを含み、前記距離が、物理的距離、検出されたセキュリティリスクと前記受信された通知メッセージとの間の時差、ネットワーク分離距離、前記コンピューティングデバイスがリブートされている回数、ソフトウェアアプリケーションが更新されている回数、ソフトウェアのバージョン間の差、および前記送信側コンピューティングデバイスと前記受信側コンピューティングデバイスとの間の種類、モデル、バージョン、特徴、またはハードウェア差異のうちの1つまたは複数を含む、請求項16に記載の方法。
【請求項１８】
増大したセキュリティリスクが存在するかどうかを決定するために第1のタイプの分析動作を実行するための手段であって、前記第1のタイプの分析動作が、前記増大したセキュリティリスクまたは以前に発生のリスクの兆候に関して前記コンピューティングデバイスを監視することを含む、実行するための手段と、
前記増大したセキュリティリスクが存在するとの決定に応じて、第2のタイプの分析動作を実行するための手段であって、前記第2のタイプの分析動作が前記第1のタイプの分析動作よりも計算集約的である、実行するための手段と
を含む、コンピューティングデバイス。
【請求項１９】
前記第1のタイプの分析動作を前記実行するための手段が、軽い分析動作を実行するための手段を含み、
前記第2のタイプの分析動作を前記実行するための手段が、ロバストな分析動作を実行するための手段を含む
請求項18に記載のコンピューティングデバイス。
【請求項２０】
ロバストな分析動作を前記実行するための手段が、軽い分析動作によって検出された前記増大したセキュリティリスクとは異なる別のセキュリティリスクを特定するための手段を含む、請求項19に記載のコンピューティングデバイス。
【請求項２１】
プロセッサを含み、前記プロセッサが、
増大したセキュリティリスクが存在するかどうかを決定するために第1のタイプの分析動作を実行することであって、前記第1のタイプの分析動作が、前記増大したセキュリティリスクまたは以前に発生のリスクの兆候に関して前記コンピューティングデバイスを監視することを含む、実行することと、
前記増大したセキュリティリスクが存在するとの決定に応じて、第2のタイプの分析動作を実行することであって、前記第2のタイプの分析動作が前記第1のタイプの分析動作よりも計算集約的である、実行することと
を含む動作を実行するためのプロセッサ実行可能ソフトウェア命令で構成される
コンピューティングデバイス。
【請求項２２】
前記プロセッサが、
リスク情報を含む通知メッセージを別のコンピューティングデバイスから受信することと、
前記受信された通知メッセージ内に含まれた前記リスク情報と、前記コンピューティングデバイスと前記受信された通知メッセージを送信する前記別のコンピューティングデバイスとの間の距離とに基づいて、前記増大したセキュリティリスクが存在すると決定することと
をさらに含む動作を実行するためのプロセッサ実行可能ソフトウェア命令で構成される、請求項21に記載のコンピューティングデバイス。
【請求項２３】
前記プロセッサが、
前記第1のタイプの分析動作を前記実行することが、軽い分析動作を実行することを含み、
前記第2のタイプの分析動作を前記実行することが、ロバストな分析動作を実行することを含む
ような動作を実行するためのプロセッサ実行可能ソフトウェア命令で構成される、請求項21に記載のコンピューティングデバイス。
【請求項２４】
前記プロセッサが、ロバストな分析動作を前記実行することが、軽い分析動作によって検出された前記増大したセキュリティリスクとは異なる別のセキュリティリスクを特定することを含むような動作を実行するためのプロセッサ実行可能ソフトウェア命令で構成される、請求項23に記載のコンピューティングデバイス。
【請求項２５】
前記プロセッサが、軽い分析動作を前記実行することが、
挙動情報を収集するためにデバイス挙動を監視することと、
前記収集された挙動情報に基づいて挙動ベクトルデータ構造を生成することと、
第1のデバイス挙動が非良性であるかどうかの決定を得るために、前記挙動ベクトルデータ構造を簡潔な分類器モデルに適用することと、
前記第1のデバイス挙動が非良性であるとの決定に応じて、前記増大したセキュリティリスクが存在すると決定することと
を含むような動作を実行するためのプロセッサ実行可能ソフトウェア命令で構成される、請求項23に記載のコンピューティングデバイス。
【請求項２６】
前記プロセッサが、ロバストな分析動作を前記実行することが、
追加の挙動情報を収集するために追加のデバイス挙動を監視することと、
前記収集された追加の挙動情報に基づいて複数の挙動ベクトルデータ構造を生成することと、
前記複数の挙動ベクトルデータ構造の各々を分類器モデルに適用することと
を含むような動作を実行するためのプロセッサ実行可能ソフトウェア命令で構成される、請求項23に記載のコンピューティングデバイス。
【請求項２７】
動作をコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令が記憶された、コンピュータ可読記憶媒体であって、前記動作が、
増大したセキュリティリスクが存在するかどうかを決定するために第1のタイプの分析動作を実行することであって、前記第1のタイプの分析動作が、前記増大したセキュリティリスクまたは以前に発生のリスクの兆候に関して前記コンピューティングデバイスを監視することを含む、実行することと、
前記増大したセキュリティリスクが存在するとの決定に応じて、第2のタイプの分析動作を実行することであって、前記第2のタイプの分析動作が前記第1のタイプの分析動作よりも計算集約的である、実行することと
を含む、コンピュータ可読記憶媒体。
【請求項２８】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、
リスク情報を含む通知メッセージを別のコンピューティングデバイスから受信することと、
前記受信された通知メッセージ内に含まれた前記リスク情報と、前記受信された通知メッセージを送信する前記別のコンピューティングデバイスまでの距離とに基づいて、前記増大したセキュリティリスクが存在すると決定することと
をさらに含む動作を前記プロセッサに実行させるように構成される、請求項27に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記記憶されたプロセッサ実行可能なソフトウェア命令が、
前記第1のタイプの分析動作を前記実行することが、軽い分析動作を実行することを含み、
前記第2のタイプの分析動作を前記実行することが、ロバストな分析動作を実行することを含む
ような動作を前記プロセッサに実行させるように構成される、請求項27に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、ロバストな分析動作を前記実行することが、軽い分析動作によって検出された前記増大したセキュリティリスクとは異なる別のセキュリティリスクを特定することを含むような動作を前記プロセッサに実行させるように構成される、請求項29に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
同様のデバイス内のマルウェア検出に基づくモデル保護レベルオンデバイスの決定に関する。
【背景技術】
【０００２】
セルラー通信技術およびワイヤレス通信技術は、過去数年の間に爆発的な成長をとげている。この成長は、より優れた通信、ハードウェア、より大きいネットワーク、およびより信頼できるプロトコルによって加速されている。ワイヤレスサービスプロバイダは現在、向上し続ける多数の特徴およびサービスを顧客に提供し、情報、リソースおよび通信に対するかつてないレベルのアクセスをユーザに提供することができる。これらのサービス強化と歩調を合わせるために、モバイル電子デバイス(たとえば、セルラーフォン、タブレット、ラップトップなど)は、今までよりも強力かつ複雑になっている。この複雑さは、悪意のあるソフトウェア、ソフトウェアの競合、ハードウェアの欠陥、および他の同様のエラーまたは現象が、モバイルデバイスの長期的かつ連続的な性能および電力利用レベルに悪影響を与える新たな機会を生み出した。したがって、モバイルデバイスの長期的かつ連続的な性能および電力利用レベルに悪影響を与える可能性がある条件および/またはモバイルデバイスの挙動を特定し補正することは、消費者に対して有益である。
【発明の概要】
【課題を解決するための手段】
【０００３】
様々な実施形態は、コンピューティングデバイスのプロセッサ内で、増大したセキュリティリスクが存在するかどうかを決定するために第1のタイプの分析動作を実行するステップであって、第1のタイプの分析動作が、増大したセキュリティリスクまたは以前に発生のリスクの兆候に関してコンピューティングデバイスを監視するステップを含む、実行するステップと、増大したセキュリティリスクが存在するとの決定に応じて、第2のタイプの分析動作を実行するステップであって、第2のタイプの分析動作が第1のタイプの分析動作よりも計算集約的である、実行するステップとを含む、コンピューティングデバイス内の挙動を分析する方法を含む。
【０００４】
ある実施形態では、第1のタイプの分析動作を実行するステップは、軽い(lightweight)分析動作を実行するステップを含むことが可能であり、第2のタイプの分析動作を実行するステップは、ロバストな分析動作を実行するステップを含むことが可能である。さらなる実施形態では、ロバストな分析動作を実行するステップは、軽い分析動作によって検出された増大したセキュリティリスクとは異なる別のセキュリティリスクを特定するステップを含み得る。さらなる実施形態では、増大したセキュリティリスクまたは以前に発生のリスクの兆候に関してコンピューティングデバイスを監視するステップは、増大したセキュリティリスクを示す、別のコンピューティングデバイスからの通知メッセージに関してコンピューティングデバイスを監視するステップを含み得る。
【０００５】
さらなる実施形態では、増大したセキュリティリスクまたは以前に発生のリスクの兆候に関してコンピューティングデバイスを監視するステップは、内部計算、ファイル、機能的挙動、およびデータアクセス要求のうちの1つまたは複数を監視するステップを含み得る。さらなる実施形態では、増大したセキュリティリスクまたは以前に発生のリスクの兆候に関してコンピューティングデバイスを監視するステップは、非良性活動に関連付けられたデータパターンを特定するためにコンピューティングデバイスを監視するステップを含み得る。さらなる実施形態では、増大したセキュリティリスクまたは以前に発生のリスクの兆候に関してコンピューティングデバイスを監視するステップは、マルウェア感染の一般的な結果に関してコンピューティングデバイスを監視するステップを含み得る。さらなる実施形態では、マルウェア感染の一般的な結果に関してコンピューティングデバイスを監視するステップは、ある時間期間内に送信されたプレミアムSMSメッセージの数を監視すること、悪意のある挙動に関連付けられたサイトへのトラフィック内の増大を監視すること、その時間期間内に通信されたアドレスブック連絡先の数を監視すること、その時間期間のパスワード修正の数を監視すること、デバイス構成に対する変更を監視することのうちの1つを実行するステップを含み得る。
【０００６】
さらなる実施形態では、この方法は、増大したセキュリティリスクが存在するとの決定に応じて、リスク情報を含む通知メッセージを生成するステップと、1つまたは複数のコンピューティングデバイスに通知メッセージを送信するステップとを含み得る。さらなる実施形態では、この方法は、リスク情報を含む通知メッセージを別のコンピューティングデバイスから受信するステップと、受信された通信メッセージ内に含まれたリスク情報に基づいて、増大したセキュリティリスクが存在すると決定するステップとを含み得る。さらなる実施形態では、受信された通知メッセージ内に含まれたリスク情報に基づいて、増大したセキュリティリスクが存在すると決定するステップは、コンピューティングデバイスと受信された通知メッセージを送信する別のコンピューティングデバイスとの間の距離に少なくとも部分的に基づいて、増大したセキュリティリスクが存在すると決定するステップを含み、この距離は、物理的距離、検出されたセキュリティリスクと受信された通知メッセージとの間の時差、ネットワーク分離距離、コンピューティングデバイスがリブートされている回数、ソフトウェアアプリケーションが更新されている回数、ソフトウェアのバージョン間の差、および送信側コンピューティングデバイスと受信側コンピューティングデバイスとの間の種類、モデル、バージョン、特徴、またはハードウェア差異のうちの1つまたは複数を含む。
【０００７】
さらなる実施形態では、軽い分析動作を実行するステップは、挙動情報を収集するためにデバイス挙動を監視するステップと、収集された挙動情報に基づいて挙動ベクトルデータ構造を生成するステップと、第1のデバイス挙動が非良性であるかどうかの決定を得るために、挙動ベクトルデータ構造を簡潔な分類器モデルに適用するステップと、第1のデバイス挙動が非良性であるとの決定に応じて、増大したセキュリティリスクが存在すると決定するステップとを含み得る。さらなる実施形態では、ロバストな分析動作を実行するステップは、コンピューティングデバイスのフルスキャンを実行するステップを含み得る。
【０００８】
さらなる実施形態では、ロバストな分析動作を実行するステップは、別のセキュリティリスクがコンピューティングデバイス内に存在するかどうかの決定を得るために、挙動ベクトルデータ構造を完全な分類器モデルに適用するステップを含み得る。さらなる実施形態では、ロバストな分析動作を実行するステップは、追加の挙動情報を収集するために追加のデバイス挙動を監視するステップと、収集された追加の挙動情報に基づいて複数の挙動ベクトルデータ構造を生成するステップと、複数の挙動ベクトルデータ構造の各々を分類器モデルに適用するステップとを含み得る。さらなる実施形態では、増大したセキュリティリスクが存在するとの決定に応じて、ロバストな分析動作を実行するステップは、動的に決定された時間期間にわたってロバストな分析動作を実行するステップを含み得る。さらなる実施形態では、この方法は、コンピューティングデバイスと第2のコンピューティングデバイスとの間の距離に基づいて時間期間を動的に決定するステップを含み得る。
【０００９】
様々な実施形態は、増大したセキュリティリスクが存在するかどうかを決定するために第1のタイプの分析動作を実行するための手段であって、第1のタイプの分析動作が、増大したセキュリティリスクまたは以前に発生のリスクの兆候に関してコンピューティングデバイスを監視することを含む、実行するための手段と、増大したセキュリティリスクが存在するとの決定に応じて、第2のタイプの分析動作を実行するための手段であって、第2のタイプの分析動作が第1のタイプの分析動作よりも計算集約的である、実行するための手段とを含む、上で論じた方法動作に対応する機能を実行するための様々な手段(たとえば、プロセッサ、メモリなど)を有するコンピューティングデバイスを含み得る。ある実施形態では、第1のタイプの分析動作を実行するための手段は、軽い分析動作を実行するための手段を含むことが可能であり、第2のタイプの分析動作を実行するための手段は、ロバストな分析動作を実行するための手段を含むことが可能である。さらなる実施形態では、ロバストな分析動作を実行するための手段は、軽い分析動作によって検出された増大したセキュリティリスクとは異なる別のセキュリティリスクを特定するための手段を含み得る。
【００１０】
様々な実施形態は、増大したセキュリティリスクが存在するかどうかを決定するために第1のタイプの分析動作を実行することであって、第1のタイプの分析動作が、増大したセキュリティリスクまたは以前に発生のリスクの兆候に関してコンピューティングデバイスを監視することを含む、実行することと、増大したセキュリティリスクが存在するとの決定に応じて、第2のタイプの分析動作を実行することであって、第2のタイプの分析動作が第1のタイプの分析動作よりも計算集約的である、実行することとを含む動作を実行するためのプロセッサ実行可能ソフトウェア命令で構成されたプロセッサを有するコンピューティングデバイスを含み得る。
【００１１】
ある実施形態では、このプロセッサは、第1のタイプの分析動作を実行することが、軽い分析動作を実行することを含み、第2のタイプの分析動作を実行することが、ロバストな分析動作を実行するステップを含むような動作を実行するためのプロセッサ実行可能ソフトウェア命令で構成され得る。さらなる実施形態では、このプロセッサは、ロバストな分析動作を実行することが、軽い分析動作によって検出された増大したセキュリティリスクとは異なる別のセキュリティリスクを特定することを含むような動作を実行するためのプロセッサ実行可能ソフトウェア命令で構成され得る。さらなる実施形態では、このプロセッサは、軽い分析動作を実行することが、挙動情報を収集するためにデバイス挙動を監視すること、収集された挙動情報に基づいて挙動ベクトルデータ構造を生成することと、第1の挙動が非良性であるかどうかの決定を得るために、挙動ベクトルデータ構造を簡潔な分類器モデルに適用することと、第1のデバイス挙動が非良性であるとの決定に応じて、増大したセキュリティリスクが存在すると決定することとを含むような動作を実行するためのプロセッサ実行可能ソフトウェア命令で構成され得る。
【００１２】
さらなる実施形態では、このプロセッサは、ロバストな分析動作を実行することが、追加の挙動情報を収集するために追加のデバイス挙動を監視することと、収集された追加の挙動情報に基づいて複数の挙動ベクトルデータ構造を生成することと、複数の挙動ベクトルデータ構造の各々を分類器モデルに適用することとを含むような動作を実行するためのプロセッサ実行可能ソフトウェア命令で構成され得る。さらなる実施形態では、このプロセッサは、リスク情報を含む通知メッセージを別のコンピューティングデバイスから受信することと、受信された通知メッセージ内に含まれたリスク情報と、そのコンピューティングデバイスと受信された通知メッセージを送信する別のコンピューティングデバイスとの間の距離とに基づいて、増大したセキュリティリスクが存在するかどうかを決定することとをさらに含む動作を実行するためのプロセッサ実行可能ソフトウェア命令で構成され得る。
【００１３】
様々な実施形態は、増大したセキュリティリスクが存在するかどうかを決定するために第1のタイプの分析動作を実行することであって、第1のタイプの分析動作が、増大したセキュリティリスクまたは以前に発生のリスクの兆候に関してコンピューティングデバイスを監視することを含む、実行することと、増大したセキュリティリスクが存在するとの決定に応じて、第2のタイプの分析動作を実行することであって、第2のタイプの分析動作が第1のタイプの分析動作よりも計算集約的である、実行することとを含む動作をコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を記憶した非一時的コンピュータ可読記憶媒体を含み得る。
【００１４】
ある実施形態では、この記憶されたプロセッサ実行可能ソフトウェア命令は、第1のタイプの分析動作を実行することが、軽い分析動作を実行することを含み、第2のタイプの分析動作を実行することが、ロバストな分析動作を実行することを含むような動作をプロセッサに実行させるように構成され得る。さらなる実施形態では、この記憶されたプロセッサ実行可能ソフトウェア命令は、ロバストな分析動作を実行することが、軽い分析動作によって検出された増大したセキュリティリスクとは異なる別のセキュリティリスクを特定することを含むような動作をプロセッサに実行させるように構成され得る。さらなる実施形態では、この記憶されたプロセッサ実行可能ソフトウェア命令は、リスク情報を含む通知メッセージを別のコンピューティングデバイスから受信することと、受信された通知メッセージ内に含まれたリスク情報と、受信された通知メッセージを送信する別のコンピューティングデバイスまでの距離とに基づいて、増大したセキュリティリスクが存在すると決定することとをさらに含む動作をプロセッサに実行させるように構成され得る。
【００１５】
さらなる実施形態は、上で説明した方法に対応する様々な動作を実行するためのプロセッサ実行可能命令で構成されたプロセッサを有するコンピューティングデバイスを含み得る。さらなる実施形態は、上で説明した方法動作に対応する機能を実行するための様々な手段を有するコンピューティングデバイスを含み得る。さらなる実施形態は、上で説明した方法動作に対応する様々な動作をプロセッサに実行させるように構成されたプロセッサ実行可能命令を記憶した非一時的プロセッサ可読記憶媒体を含み得る。
【００１６】
本明細書に組み込まれ、本明細書の一部を構成している添付の図面は、本発明の例示的な実施形態を示すものであり、上で与えられた全般的な説明、および下で与えられる詳細な説明とともに、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【００１７】
【図１】様々な実施形態で使用するのに適した例示的な電気通信システムのネットワーク構成要素を示す通信システムブロック図である。
【図２】特定のモバイルデバイス挙動、ソフトウェアアプリケーション、またはプロセスが性能劣化させるか、疑わしいか、または良性であるかを決定するように構成された、ある実施形態のモバイルデバイスにおける例示的な論理構成要素および情報フローを示すブロック図である。
【図３】ある実施形態による、コンピューティングデバイス内で挙動分析を実行する方法を示すプロセスフロー図である。
【図４】モバイルデバイスにおいて簡潔な分類器モデルを生成する別の実施形態のモバイルデバイスの方法を示すプロセスフロー図である。
【図５】ある実施形態による、簡潔な分類器モデルを生成するために生成および使用され得る例示的な判定ノードの図である。
【図６】ある実施形態による、コンピューティングデバイス内で適応的な観測を実行するための方法を示すプロセスフロー図である。
【図７】ある実施形態において使用するのに適したモバイルデバイスの構成要素ブロック図である。
【図８】ある実施形態において使用するのに適したサーバデバイスの構成要素ブロック図である。
【発明を実施するための形態】
【００１８】
添付の図面を参照しながら、様々な実施形態について詳細に説明する。可能な場合はいつでも、同じまた同様の部分を指すために、図面全体を通して同じ参照番号が使用される。特定の例および実装形態へと行われる言及は、説明を目的とし、本発明の範囲または特許請求の範囲を限定するものではない。
【００１９】
「例示的」という語は、本明細書では「例、事例、または例示としての役割を果たすこと」を意味するために使用される。本明細書で「例示的」として説明するいかなる実装形態も、必ずしも他の実装形態よりも好ましいか、または有利であると解釈されるべきではない。
【００２０】
概要では、様々な実施形態は、コンピューティングデバイスの性能、電力利用レベル、ネットワーク使用レベル、セキュリティおよび/またはプライバシーをしばしば経時的に劣化させる条件および挙動を効率的に特定、分類、モデリング、防止、および/または修正する方法、およびその方法を実装するように構成されたコンピューティングデバイスを含む。コンピューティングデバイスは、増大したセキュリティリスクが存在するかどうかを決定するために第1のタイプの分析動作(たとえば、軽い分析動作)を実行し、第1のタイプの分析動作の実行によって検出されたセキュリティリスクとは異なる追加のセキュリティリスクが存在するかどうかを決定するために、増大したセキュリティリスクが存在するとの決定に応じて、第2のタイプの分析動作(たとえば、ロバストな分析動作)を実行するように構成され得る。
【００２１】
コンピューティングデバイスが非良性挙動(たとえば、誤動作しているメモリ、マルウェア、無許可のアクセスなど)のあるインスタンスによって損なわれているとき、非良性挙動の他のインスタンスが存在する可能性があり、そのコンピューティングデバイスは、非良性挙動によって有効にされる、またはコンピューティングデバイスの脆弱性について知らされるなど、無許可の当事者による他の形態のマルウェアおよび攻撃の影響を受けやすい可能性があることが注目されている。デバイスがマルウェアによる影響を受けているとき、他のタイプのマルウェアをダウンロードまたは実行する、かつ/または他のコンピューティングデバイスをそのマルウェアに感染させることを試みる可能性が高いことも注目されている。これらの観測に鑑みて、コンピューティングデバイスは、そのコンピューティングデバイス内の非良性の活動、挙動、動作、行為、活動、条件、イベント、アプリケーション、またはプロセス(集合的に、「挙動」)のインスタンスを検出するための様々な条件およびデバイス挙動を監視および分析するために軽いプロセスを使用して第1のタイプの分析動作を実行するように構成され得る。コンピューティングデバイスは、非良性挙動のあるインスタンスの検出に応じて、非良性挙動の他のインスタンスに対して警戒するように、第2のタイプの分析動作を実行するそのセキュリティレベルまたは精査レベルを高めることができる。
【００２２】
セキュリティまたは精査のレベルを高めることは、重い(heavyweight)または計算集約的な挙動分析およびスキャンエンジンを実行することと、署名ベースの検出技法を使用することと、コンピューティングデバイス内のより詳細な挙動情報を収集することと、観測されたデバイス挙動の高められた分析を実行するために、よりロバストな分析器モデルを使用することとを伴い得る。たとえば、セキュリティ/精査のレベルを高めることは、デバイスがルートキットを有するかどうかを決定するために少なくとも1つのテストを実行することと、デバイスがTrojanを有するかどうかを決定するために少なくとも1つのテストを実行することと、デバイスが望ましくないソフトウェアを有するかどうかを決定するために少なくとも1つのテストを実行することと、望ましくないイベント、ソフトウェアの更新、または警告メッセージの生成の兆候が存在するかどうかを決定するためにデバイスに関連付けられたイベントの履歴を検討することとを含み得る。ある実施形態では、コンピューティングデバイスは、非良性挙動のインスタンスの特定に応じて、増大したセキュリティリスクについて選択コンピューティングデバイスに通知するように構成され得る。ある実施形態では、コンピューティングデバイスは、別のコンピューティングデバイスからの増大したセキュリティリスクの通知の受信に応じて、そのセキュリティ/精査レベルを高めるように構成され得る。
【００２３】
ある実施形態では、コンピューティングデバイスは、通信モジュール、挙動ベースのセキュリティモジュール、リスク検出モジュール、スキャンモジュール、およびアクチュエータモジュールを装備することができる。通信モジュールは、デバイス極近傍にある他のコンピューティングデバイスなど、他の選択コンピューティングデバイスとの間でセキュリティリスク情報を送受信するように、そのコンピューティングデバイスと同様に装備されたコンピューティングデバイスとリソースを共有するようになど構成され得る。リスク検出モジュールは、増大したセキュリティリスクが存在するかどうかを決定するために、他のコンピューティングデバイスから受信されたリスク情報および/またはデバイスの挙動ベースのセキュリティモジュールによって生成された分析情報を使用することを含み得る第1のタイプの分析動作を実行するように構成され得る。増大したセキュリティリスクが存在するとの決定に応じて、スキャンモジュールは、デバイス内の非良性挙動の他のインスタンスを特定するために、(たとえば、計算集約的なフルスキャンプロセスを実行し、より多くの情報を収集し、よりロバストな分類器モデルを使用することなどによって)高められた分析動作を実行することを含み得る第2のタイプの分析動作を実行することができる。フルスキャンは、非良性挙動の他のインスタンスを特定するために多数のファイルを分析するために、従来のマルウェアスキャン技法を使用することを含み得る。そのコンピューティングデバイス内で非良性挙動の他のインスタンスが検出された場合、コンピューティングデバイスは、増大したセキュリティリスクについて他のデバイスに知らせ、そのデバイス内で特定された非良性挙動の原因または根源を補正するため、低減するため、またはさもなければそれに応じるための様々なセキュリティ動作をアクチュエータモジュールに実行させることができる。
【００２４】
ある実施形態では、コンピューティングデバイスは、非良性挙動の1つのインスタンスが検出されるまで、デバイス上で動作する選択プロセスを評価するために簡潔な分類器モデルを使用することを含む軽い分析動作を実行するように構成され得る。コンピューティングデバイスは、非良性挙動のインスタンスの検出に応じて、完全な分類器モデルを切り替え、デバイス上で動作するすべてのプロセスを評価することができる。コンピューティングデバイスは、静的なまたは動的に決定された時間期間にわたってこの高められた分析モードに留まること(したがって、よりロバストな分析動作を実行し続けること)ができる。コンピューティングデバイスは、他の同様のコンピューティングデバイスに、より高められた分析モードに入らせるように、非良性挙動の検出されたインスタンスについてそれらのデバイスに知らせることもできる。コンピューティングデバイスまたはネットワークサーバは、「同様の」コンピューティングデバイスが、挙動ベースのセキュリティシステムを装備しているかどうか、オペレーティングシステムの同じバージョンを有するかどうか、同じソフトウェアアプリケーションをダウンロードしたかどうか、同様の役割を有するかどうか(たとえば、デバイスがイラクにおいて軍隊によって使用されているかどうかなど)、プレミアムサービスに加入しているかどうかなど、様々な要因に基づいて、非良性挙動の検出されたインスタンスについて知らせるべき「同様の」コンピューティングデバイスを特定することができる。
【００２５】
ある実施形態では、コンピューティングデバイスは、選択デバイス挙動を連続的にまたは繰り返し評価するための軽いプロセスおよび/または簡潔な分類器モデルを使用することを含む軽い分析動作(たとえば、第1のタイプの分析動作)を実行し、これらの評価の結果を使用して、リスクパラメータの値を更新し、リスクパラメータの値がしきい値を超えたとき、ある時間期間にわたってより多数のデバイス挙動を評価するために重いプロセスおよび/または完全な分類器モデルを使用することを含むロバストな分析動作(たとえば、第2のタイプの分析動作)の実行に切り替えるように構成され得る。様々な実施形態では、コンピューティングデバイスは、「距離」に基づいて、リスクパラメータ値、しきい値、および/または時間期間を決定するように構成され得る。この距離は、現在のデバイスと非良性挙動のインスタンスを検出したデバイス(すなわち、影響を受けたデバイス)との間の物理的距離であり得る。代替または追加として、この距離は、非良性挙動のインスタンスが検出されてから経過した時間量、コンピューティングデバイスがリブートされている回数、ソフトウェアアプリケーションが更新されている回数、ソフトウェアバージョン間の差異、送信側コンピューティングデバイスと受信側コンピューティングデバイスとの間の種類/モデル/バージョン/特徴/ハードウェアの差異であり得る。この距離はまた、現在のデバイスと影響を受けたデバイスとの間にある中間ノードまたは中間構成要素の数を特定するネットワーク距離、または現在のデバイスと影響を受けたデバイスとの間の構成、使用、役割、使用されるサービスの類似性を特定する論理的距離であり得る。
【００２６】
したがって、様々な実施形態は、コンピューティングデバイスが、リスクに関してデバイスを繰り返しまたは連続的に監視するための軽いおよび低電力のプロセスを使用することを含む軽い分析動作(たとえば、第1のタイプの分析動作)を実行し、高められたセキュリティリスクが存在するとき、よりロバストなスキャン動作、監視動作、および分析動作(たとえば、第2のタイプの分析動作)を実行することを可能にする。これは、その性能および電力消費の特性を改善することによって、コンピューティングデバイスの機能を改善する。さらに、リスク情報を他のコンピューティングデバイスと共有することによって、各コンピューティングデバイスは、高められた分析が各デバイス内で実行された場合よりも、性能限定的な望ましくない動作条件をより速く、より低い電力消費で特定し、それに反応することができる。これは、コンピューティングデバイスの機能をさらに改善する。
【００２７】
コンピューティングデバイスの機能、機能性、および/または作用に対する追加の改善は、下で提供される実施形態の詳細な説明から明らかになろう。
【００２８】
「モバイルコンピューティングデバイス」および「モバイルデバイス」という用語は、セルラー電話、スマートフォン、パーソナルまたはモバイルのマルチメディアプレーヤ、携帯情報端末(PDA)、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、ウルトラブック、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応セルラー電話、ワイヤレスゲームコントローラ、および、性能が重要であるメモリとプログラマブルプロセッサとを含み、電力節約の方法が有益であるようなバッテリ電源で動作する同様のパーソナル電子デバイスのうちの、任意の1つまたはすべてを指すように、本明細書では互換的に使用される。様々な実施形態は、限られたリソースを有しバッテリで動作する、スマートフォンなどのモバイルコンピューティングデバイスに対して特に有用であるが、これらの実施形態は一般に、プロセッサを含みアプリケーションプログラムを実行する、任意の電子デバイスにおいて有用である。
【００２９】
「性能劣化」という用語は、本明細書では、より長い処理時間、より遅いリアルタイム応答性、より短いバッテリ寿命、個人データの損失、悪意のある経済活動(たとえば、無許可のプレミアムSMSメッセージを送信すること)、サービス拒否(DoS)、不適切に書かれたまたは設計されたソフトウェアアプリケーション、悪意のあるソフトウェア、マルウェア、ウイルス、断片化されたメモリ、コンピュータデバイスを乗っ取ることまたはスパイ活動またはボットネット活動のためにデバイスを利用することに関する動作などのような、コンピューティングデバイスの多種多様な望ましくない動作および特性を指すために使用される。また、これらの理由のいずれかで性能を劣化させる挙動、活動、および条件は、本明細書では「良性ではない」または「非良性である」と呼ばれる。
【００３０】
一般に、モバイルデバイスの性能および電力効率は経時的に劣化する。近年、アンチウイルス会社(たとえば、McAfee、Symantecなど)は、この劣化を遅くすることを目的とするモバイル用アンチウイルス製品、ファイアウォール製品、および暗号化製品の販売を開始した。しかしながら、これらのソリューションの多くは、モバイルデバイス上で計算集約的なスキャニングエンジンを定期的に実行すること(またはフルスキャンを実行すること)に依存しており、そのことは、モバイルデバイスの処理リソースおよびバッテリリソースの多くを消費し、モバイルデバイスを遅くさせるか、もしくはより長期間使えなくさせ、かつ/または別様にユーザ体験を劣化させることがある。加えて、これらのソリューションは通常、知られているウイルスおよびマルウェアの検出に限定され、(たとえば、性能劣化がウイルスまたはマルウェアによって引き起こされないときに)経時的なモバイルデバイスの劣化に複合的に寄与することが多い、複数の複雑な要因および/または相互作用に対処しない。これらのおよび他の理由によって、既存のアンチウイルス製品、ファイアウォール製品、および暗号化製品は、経時的なモバイルデバイスの劣化に寄与し得る多数の要因を特定するための、モバイルデバイスの劣化を防止するための、または経年劣化したモバイルデバイスをその元の条件へと効率的に回復させるための、十分なソリューションを提供しない。
【００３１】
モバイルデバイスは、比較的限定された処理リソース、メモリリソース、およびエネルギーリソースを有する、リソース制約のあるシステムである。近代的なモバイルデバイスはまた、複雑なシステムであり、不十分に設計されたソフトウェアアプリケーション、マルウェア、ウイルス、断片的メモリ、背景処理などを含め、モバイルデバイスの性能および電力利用のレベルの経時的な劣化に寄与する可能性がある多種多様なファクタが存在する。これらの要因の数、多様性および複雑さゆえに、現代のモバイルデバイスの複雑ではあるがリソースを制約されたシステムの性能および/または電力利用のレベルの劣化に寄与する可能性のあるすべての要因を評価することは、しばしば実現不可能である。
【００３２】
既存のソリューションの制約を克服するために、様々な実施形態は、非良性のソフトウェアアプリケーション(たとえば、悪性のアプリケーション、不適切に書かれたアプリケーション、デバイスと互換性のないアプリケーションなど)を迅速かつ効率的に特定し、そのようなアプリケーションがコンピューティングデバイスの性能、電力利用レベル、ネットワーク使用レベル、セキュリティ、および/またはプライバシーを経時的に劣化させるのを防止するように構成された挙動監視および分析システムを備えたコンピューティングデバイスを含む。挙動監視および分析システムは、コンピューティングデバイスの応答性、性能、または電力消費特性に、重大な、負の、またはユーザが知覚できる影響を与えることなく、特定された問題を特定、防止、および修正するように構成され得る。
【００３３】
性能をさらに改善するために、コンピューティングデバイスは、他のコンピューティングデバイスが、マルウェア、サイバー攻撃、誤動作ソフトウェアなどのような、非良性挙動を受けやすいかどうかを知的かつ効率的に決定するために、それらのコンピューティングデバイスと提携して動作するように構成され得る。複数のコンピューティングデバイスの各々は、コンピューティングデバイスの経時的な劣化に寄与する高い可能性を有するソフトウェアアプリケーションまたはプロセスを特定するために軽いセキュリティ動作(たとえば、挙動ベースの観測および分析動作など)を実行するように構成され得る。そのような挙動ベースの動作は、観測プロセス、デーモン、モジュール、またはサブシステム(本明細書では総称的に「モジュール」と呼ばれる)がコンピューティングデバイスのシステムの様々なレベルにおいて様々なアプリケーションプログラミングインターフェース(API)を計測し、または協調させて、計測されたAPIから挙動情報を収集することを含み得る。
【００３４】
観測器モジュールは、収集された挙動情報を(たとえば、メモリ書込み動作、機能呼出しなどによって)コンピューティングデバイスの挙動抽出器モジュールに通信することができ、挙動抽出器モジュールは、デバイス挙動を表すまたは特徴付ける挙動ベクトルを生成するために挙動情報(すなわち、観測器モジュールによって収集された情報)を使用することができる。各挙動ベクトルは、1つまたは複数の「挙動の特徴」を含むか、またはカプセル化する情報構造であり得る。挙動特徴は、コンピューティングデバイス内の観測されたイベント、条件、活動、動作、関係、対話、または挙動のすべてまたは一部を表す抽象的な数またはシンボルであり得る。各挙動の特徴は、可能な値の範囲、それらの値に対して実行され得る動作、値の意味、および他の同様の情報を特定するデータタイプと関連付けられ得る。データタイプは、対応する挙動特徴(または特徴値)がどのように測定され、分析され、重み付けられ、または使用されるべきかを決定するために、コンピューティングデバイスによって使用され得る。
【００３５】
挙動抽出器モジュールは、生成された挙動ベクトルを(たとえば、メモリ書込み動作、関数呼出しなどによって)分析器モジュールに通信することができ、分析器モジュールは、アプリケーションのデバイス挙動が非良性であるかどうかを決定するために、挙動ベクトルを分類器モデルに適用することができる。分類器モデルは、特定の特徴、要因、データ点、エントリ、API、状態、条件、挙動、ソフトウェアアプリケーション、プロセス、動作、構成要素(本明細書で、集合的に「特徴」)など、またはデバイスの挙動の他の実施形態を迅速かつ効率的にテストまたは評価するためにデバイスプロセッサによって使用され得るデータ、エントリ、判定ノード、判定基準、および/または情報構造を含む挙動モデルであり得る。分類器モデルは、ソフトウェアアプリケーション間の関係および/またはコンピューティングデバイス内で観測されるべき挙動の性質を決定するためにデバイスプロセッサによって使用され得る情報を含むことも可能である。
【００３６】
各分類器モデルは、完全な分類器モデルまたは簡潔な分類器モデルとして類別され得る。完全な分類器モデルは、数千の特徴および数十億のエントリを含み得る大きいトレーニングデータセットに応じて生成される、ロバストなデータモデルであり得る。簡潔な分類器モデルは、特定のコンピューティングデバイスの挙動が良性でないかどうかを決定することに最も関連がある特徴/エントリに対するテストを含むかまたは優先順位付ける、縮小されたデータセットから生成された、より専心的なデータモデルであり得る。ローカル分類器モデルは、コンピューティングデバイスにおいて生成される簡潔な分類器モデルであり得る。デバイス固有の分類器モデルは、特定のデバイス内で活動または挙動を分類することに最も関連があると決定される、コンピューティングデバイス固有の特徴/エントリのみを含む/テストする、焦点が絞られたデータモデルを含むローカル分類器モデルであり得る。アプリケーション固有の分類器モデルは、特定のソフトウェアアプリケーション(または、特定のタイプのソフトウェアアプリケーション)が非良性であるかどうかを決定することに最も関連がある特徴/エントリに対するテストを含むかまたは優先順位付ける、専心的なデータモデルを含むローカル分類器モデルであり得る。
【００３７】
したがって、分析器モジュールは、挙動ベクトルを分類器モジュールに適用して、特定のコンピューティングデバイス挙動、ソフトウェアアプリケーション、またはプロセスが非良性であるどうかを決定することもできる。次いで、デバイスプロセッサは、特定された問題(たとえば、非良性であると決定された挙動)を補正、修復、解消、分離、またはさもなければ解決するために様々な動作を実行してもよい。デバイスプロセッサはまた、そのデバイス内の非良性挙動の他のインスタンスを特定し、増大したセキュリティリスクについて他のコンピューティングデバイスに通知するためにそのセキュリティ/精査レベルを高めることができる。
【００３８】
ある実施形態では、コンピューティングデバイスは、非良性挙動のインスタンスを特定した後、または別のデバイスからリスク情報を受信した後にある時間期間または持続時間にわたってそのそれぞれのセキュリティ/精査レベルを高め、第1の時間期間/持続時間の後に、通常の監視および分析動作に戻るように構成され得る。コンピューティングデバイスは、非良性挙動の第1のインスタンスが特定されるまで、デバイス挙動を評価し、非良性挙動の第1のインスタンスが特定された後に第1の時間期間/持続時間にわたって完全な分析器モデルの使用を開始し、非良性挙動の追加のインスタンスが特定されない場合、第1の時間期間/持続時間の後に軽い分類器モデルの使用に逆戻りするように構成され得る。この時間期間/持続時間は、固定された持続時間であってよく、または前に良性として分類された挙動ベクトルの数、検出されたマルウェアの信頼レベル、検出された非良性挙動の臨界または重大度などのような、基準に基づいて動的に決定されてもよい。
【００３９】
ある実施形態では、高められたセキュリティ/精査に関する時間期間/持続時間は、最初に影響を受けたデバイスからの距離に反比例するように動的に決定され得る。この距離は、現在のデバイスと非良性挙動のインスタンスを検出したデバイス(すなわち、影響を受けたデバイス)との間の物理的距離であり得る。この距離はまた、または代替として、現在のデバイスと影響を受けたデバイスとの間にある中間ノードまたは中間構成要素の数を特定するネットワーク距離、または現在のデバイスと影響を受けたデバイスとの間の構成、使用、役割、使用されるサービスの類似性を特定する論理的距離であり得る。
【００４０】
ある実施形態では、コンピューティングデバイスは、複数のプレスクリーニングされたまたは信頼できるコンピューティングデバイスを含む信頼ネットワークを設立するかまたはそれに加わるように構成され得る。様々な実施形態では、信頼ネットワークを確立すること、またはそれに加わることは、各コンピューティングデバイスが、ピアツーピア、WiFi-Direct、または他の類似の技術によって、他のコンピューティングデバイスに対する通信リンクを確立することを含むグループ形成動作を実行することを含み得る。コンピューティングデバイスはまた、共有されたセキュアネットワーク、企業仮想プライベートネットワーク、および他の類似の技術またはグループ分類によって接続され得る。ある実施形態では、信頼できるネットワークは、同じネットワークであるか、または直接通信リンクを有するコンピューティングデバイスを含み得る。信頼できるネットワーク内の各コンピューティングデバイスは、リスク情報、挙動ベクトル、分類器モデル、分析動作の結果、および他の類似の情報を信頼できるネットワーク内の他のコンピューティングデバイスと共有することを含む協力的学習動作を実行するように構成され得る。
【００４１】
ある実施形態では、コンピューティングデバイスは、性能および/または電力利用レベルをしばしば経時的に劣化させる条件および/または挙動を効率的に特定、分類、モデル化、防止、および/または修正するようにサーバとともに働くように構成され得る。通信ネットワーク内のサーバまたはインターネットを介してアクセス可能なサーバであり得るサーバは、様々なリスクレベル、能力、状態、条件、特徴、挙動および補正活動に関する情報を中央データベース(たとえば、「クラウド」)から、かつ/または多くのコンピューティングデバイスから受信し、この情報を使用して、挙動情報の大きなコーパスを1つまたは複数の簡潔な分類器モデルに迅速に変換され得るフォーマットまたは構造(たとえば、有限状態機械)内に記述する完全な分類器モデル(すなわち、データまたは挙動モデル)を生成するように構成され得る。
【００４２】
ある実施形態では、完全な分類器モデルは、挙動情報の大きいコーパスの有限状態機械の記述または表現であり得る。ある実施形態では、有限状態機械は、各々が1つまたは複数の特徴をテストする複数のノード、ブーストされた判定木、または判定株としての表現に適した情報を含む場合がある。たとえば、有限状態機械は、コンピューティングデバイス挙動が良性であるかどうか、またはそのコンピューティングデバイスの性能の劣化を経時的に引き起こすかどうかを決定することに関連するすべてまたは多くの特徴およびデータポイントを一括して特定、記述、テスト、または評価するブーストされた判定株のファミリーとして表示され得る情報構造であってよい。次いで、サーバは、完全なまたは簡潔な分類器モデル(すなわち、有限状態機械および/またはブーストされた判定株のファミリーなどを含む情報構造)をコンピューティングデバイスに送信することができる。
【００４３】
コンピューティングデバイスは、これらの分類器モデルを受信し、使用して、コンピューティングデバイスの性能および/または電力利用レベルの劣化に経時的に寄与する条件、要因、および/またはコンピューティングデバイス挙動を特定、防止、および/または補正するように構成され得る。コンピューティングデバイスはまた、コンピューティングデバイス内でさらに簡潔な分類器モデルを局所的に生成するために分類器モデルを使用することができる。これを達成するために、コンピューティングデバイスは、サーバから受信された分類器モデル内に含まれるブーストされた判定木のロバストなファミリーを剪定または選別して、数が減らされたブーストされた判定木を含み、かつ/または限られた数のテスト条件もしくは特徴を評価する、より簡潔な分類器モデルを生成することができる。次いで、コンピューティングデバイスは、この分類器モデルを使用して、リアルタイムの挙動の監視動作および分析動作を実行し、不要なまたは性能を劣化させるコンピューティングデバイスの挙動の根源または原因を特定することができる。
【００４４】
コンピューティングデバイスプロセッサは、増大したセキュリティリスクが存在するかどうかを決定するために軽い分析動作を実行し、増大したセキュリティリスクが存在するとの決定に応じて、ロバストな分析動作を実行するように構成され得る。軽い分析動作は、増大したセキュリティリスクまたは以前に発生のリスクの兆候に関してデバイスを監視することを含み得る。ある実施形態では、これは、別のコンピューティングデバイスからの通知メッセージに関してデバイスを監視することによって達成され得る。たとえば、コンピューティングデバイスは、挙動ベクトル情報構造を簡潔な分類器モデルに適用し、様々な条件およびデバイス挙動を監視および分析するために軽いプロセスを使用し、リスク情報を含む通知メッセージに関してポートを監視するように構成され得る。コンピューティングデバイスは、高まったリスク(たとえばコンピューティングデバイスの近傍内の別のデバイスがウイルスに感染していること)を示すリスク情報を含む通知メッセージの受信に応じて、ロバストな分析動作を実行することができる。
【００４５】
いくつかの実施形態では、コンピューティングデバイスプロセッサは、内部計算、ファイル、機能的挙動、データアクセス要求などを監視し、非良性活動に関連付けられたデータパターンを特定するためにデバイスを監視し、マルウェア感染の一般的な重要性についてデバイスを監視し、かつ/または他の同様の動作を実行することによって、増大したセキュリティリスク/脅威の兆候を特定することを含む軽い分析動作を実行するように構成され得る。マルウェアの一般的な結果を特定するために、コンピューティングデバイスは、ある時間期間内に送信されたプレミアムSMSメッセージの数を監視し、悪意のある活動/挙動に関連付けられたサイトへのトラフィック内の増大を監視し、ある時間期間内に通信されたアドレスブック連絡先の数を監視し、ある時間期間内にパスワードが修正された回数を監視し、コンピューティングデバイスの構成に対する変更(たとえば、変更の数、変更の頻度、変更の重要性/範囲など)を監視し、かつ/または他の同様の動作を実行することができる。
【００４６】
様々な実施形態は、図1に示す例示的な通信システム100などの様々な通信システム内で実装され得る。典型的なセル電話ネットワーク104は、ネットワーク運用センター108に結合された複数のセル基地局106を含み、ネットワーク運用センター108は、電話陸上通信線(たとえば、図示されていないPOTSネットワーク)およびインターネット110などを介して、モバイルデバイス102(たとえば、セルフォン、ラップトップ、タブレットなど)と他のネットワーク宛先との間の音声通話およびデータを接続するように動作する。モバイルデバイス102と電話ネットワーク104との間の通信は、4G、3G、CDMA、TDMA、LTE、および/または他のセル電話通信技術のような、双方向ワイヤレス通信リンク112を介して達成され得る。電話ネットワーク104はまた、インターネット110への接続を提供する、ネットワーク運用センター108に結合されるかまたはネットワーク運用センター108内にある、1つまたは複数のサーバ114を含み得る。
【００４７】
各モバイルデバイス102は、リスク情報、挙動ベクトル、データ/挙動モデル、リアルタイム挙動分析動作の結果、成功率、および他の類似の情報をシステム100内の他のモバイルデバイス102と共有するように構成され得る。モバイルデバイス102間の通信は、直接通信リンクまたはピアツーピア通信リンク122、電話ネットワーク104を通して、またはインターネット110を介して達成され得る。
【００４８】
通信システム100はさらに、電話ネットワーク104およびインターネット110に接続されたネットワークサーバ116を含み得る。ネットワークサーバ116と電話ネットワーク104との間の接続は、インターネット110を介するか、または(破線の矢印で示されたように)プライベートネットワークを介する場合がある。ネットワークサーバ116は、クラウドサービスプロバイダネットワーク118のネットワークインフラストラクチャ内のサーバとして実装される場合もある。ネットワークサーバ116とモバイルデバイス102との間の通信は、電話ネットワーク104、インターネット110、プライベートネットワーク(図示せず)、またはそれらの任意の組合せを介して実現することができる。
【００４９】
ある実施形態では、ネットワークサーバサーバ116は、モバイルデバイス102にデータ/挙動モデルを送り、モバイルデバイス102は、疑わしいまたは性能劣化させるモバイルデバイス挙動、ソフトウェアアプリケーション、プロセスなどを特定するためにデータ/挙動モデルを受信して使用するように構成され得る。ネットワークサーバ116はまた、モバイルデバイスのデータ/挙動モデルを交換、更新、作成、および/または維持するために、分類情報およびモデル化情報をモバイルデバイス102に送信することができる。
【００５０】
図2は、非良性デバイス挙動を特定し、それらに応答するために、挙動分析技法を使用するように構成された挙動ベースのセキュリティシステム200を含むある実施形態のモバイルコンピューティングデバイス102内の例示的な論理構成要素および情報フローを示す。図2に示す例では、コンピューティングデバイスは、挙動観測器モジュール202、挙動抽出器モジュール204、挙動分析器モジュール208、およびアクチュエータモジュール210を含む実行可能命令モジュールで構成されたデバイスプロセッサ(たとえば、モバイルデバイスプロセッサ)を含むモバイルコンピューティングデバイス102である。モジュール202〜210の各々は、ソフトウェア、ハードウェア、またはこれらの組合せにおいて実装される、スレッド、プロセス、デーモン、モジュール、サブシステム、または構成要素であり得る。様々な実施形態では、モジュール202〜210は、オペレーティングシステムの部分内(たとえば、カーネル内、カーネル空間内、ユーザ空間内など)で、個別のプログラムもしくはアプリケーション内で、専用のハードウェアバッファもしくはプロセッサ内で、またはそれらの任意の組合せにて実装され得る。ある実施形態では、モジュール202〜210のうちの1つまたは複数は、モバイルコンピューティングデバイス102の1つまたは複数のプロセッサまたは処理コア上で実行するソフトウェア命令として実装される場合がある。
【００５１】
挙動観測器モジュール202は、デバイスの様々なレベル/モジュールにおいてアプリケーションプログラミングインターフェース(API)、カウンタ、ハードウェアモニタなどを計測し、ある時間期間にわたって様々なレベル/モジュールにおいて活動、条件、動作、およびイベント(たとえば、システムイベント、状態変化など)を監視するように構成され得る。たとえば、挙動観測器モジュール202は、モバイルコンピューティングデバイス102の様々なソフトウェア構成要素およびハードウェア構成要素を監視し、モバイルコンピューティングデバイス102の活動に関連付けられた、監視されたおよび測定可能な構成要素の対話、通信、トランザクション、イベント、または動作に関係する挙動情報を収集するように構成され得る。そのような活動は、ソフトウェアアプリケーションのハードウェア構成要素の使用、動作またはタスクの性能、モバイルコンピューティングデバイス102の処理コアにおけるソフトウェアアプリケーションの実行、プロセスの実行、タスクまたは動作の実行、デバイスの挙動などを含む。
【００５２】
挙動観測器モジュール202は、監視された活動、条件、動作、またはイベントに関係する挙動情報を収集し、収集された情報をメモリ(たとえば、ログファイルなど)に記憶することができる。挙動観測器モジュール202は、次いで、収集された挙動情報を挙動抽出器モジュール204に(たとえば、メモリ書込み動作、関数呼出しなどを介して)通信することができる。挙動抽出器モジュール204は、収集された挙動情報を受信および取り出し、1つまたは複数の挙動ベクトルを生成するためにこの情報を使用するように構成され得る。
【００５３】
様々な実施形態では、挙動抽出器モジュール204は、ソフトウェアアプリケーションの観測された挙動、関係、または対話の簡潔な定義を含めるように挙動ベクトルを生成するように構成され得る。たとえば、各挙動ベクトルは、ソフトウェアアプリケーションの集合的挙動を値またはベクトルデータ構造で簡潔に記述することができる。ベクトルデータ構造は、一連の数字を含んでよく、その各々は、コンピューティングデバイスのカメラが使用されているかどうか(たとえば、ゼロであるか、または1であるか)、コンピューティングデバイスからどの程度のネットワークトラフィックが送信されているか、またはコンピューティングデバイスによってどの程度のネットワークトラフィックが生成されているか(たとえば、毎秒20KBなど)、どれだけ多くのインターネットメッセージが通信されているか(たとえば、SMSメッセージの数など)、および/または挙動観測器モジュール202によって収集された任意の他の挙動情報など、デバイスの特徴または挙動を示す。ある実施形態では、挙動抽出器モジュール204は、挙動ベクトルが、コンピューティングデバイス(たとえば、挙動分析器モジュール208)がアプリケーション間の関係を迅速に認識すること、特定すること、または分析することを可能にする識別子として機能するように挙動ベクトルを生成するように構成可能である。
【００５４】
挙動分析器モジュール208は、デバイス挙動(すなわち、デバイス上で動作する2つ以上のソフトウェアアプリケーションの集合的活動)が、経時的にデバイスの劣化に寄与する(または、寄与する可能性が高い)かつ/またはさもなければ、デバイス上に問題を生じさせる非良性挙動であるかどうかを決定するために、挙動ベクトルを分類器モデルに適用するように構成されることも可能である。挙動分析器モジュール208は、活動または挙動が良性でないことをアクチュエータモジュール210に通知することができる。それに応答して、アクチュエータモジュール210は、特定された問題を修復する、是正する、隔離する、またはさもなければ解決するために、様々なアクションまたは動作を実行することができる。たとえば、アクチュエータモジュール210は、挙動ベクトルを(たとえば、分析器モジュールによって)分類器モデルに適用する結果が、ソフトウェアアプリケーションの集合的挙動が良性でないことを示すとき、ソフトウェアアプリケーションのうちの1つまたは複数を中止または終了するように構成され得る。
【００５５】
様々な実施形態では、挙動観測器モジュール202は、アプリケーションフレームワークまたはランタイムライブラリ、システムコールAPI、ファイルシステムおよびネットワーキングサブシステム動作、デバイス(センサデバイスを含む)状態変化、ならびに他の同様のイベント内のライブラリアプリケーションプログラミングインターフェース(API)コールに関する情報を収集することによって、モバイルコンピューティングデバイス102の活動を監視するように構成され得る。さらに、挙動観測器モジュール202は、ファイルシステムの活動を監視することができ、ファイルシステムの活動は、ファイル名、ファイルアクセスのカテゴリ(個人情報または通常のデータファイル)を探索すること、ファイル(たとえば、type exe、zipなど)を作成または削除すること、ファイル読出し/書込み/探索動作、ファイルパーミッションを変更することなどを含み得る。
【００５６】
挙動観測器モジュール202はまた、接続のタイプ、プロトコル、ポート番号、デバイスが接続されるサーバ/クライアント、接続の数、通信の量または頻度などを含み得るデータネットワーク活動を監視することによって、モバイルコンピューティングデバイス102の活動を監視することもできる。挙動観測器モジュール202は、電話ネットワーク活動を監視することができ、電話ネットワーク活動は、送出、受信、または傍受された通話またはメッセージ(たとえば、SMSなど)のタイプおよび数(たとえば、かけられたプレミアムコールの数)を監視することを含み得る。
【００５７】
挙動観測器モジュール202はまた、フォークの数、メモリアクセス動作、開かれたファイルの数などを監視することを含み得るシステムリソース使用を監視することによって、モバイルコンピューティングデバイス102の活動を監視することもできる。挙動観測器モジュール202は、ディスプレイがオンかまたはオフか、デバイスがロックされているかまたはロックされていないか、バッテリの残量、カメラの状態など様々な要因を監視することを含み得る、モバイルコンピューティングデバイス102の状態を監視することができる。挙動観測器モジュール202はまた、たとえば、重要なサービス(ブラウザ、契約プロバイダなど)に対する意図、プロセス間通信(IPC)の程度、ポップアップウィンドウなどを監視することによって、プロセス間通信を監視することができる。
【００５８】
挙動観測器モジュール202はまた、カメラ、センサ、電子ディスプレイ、WiFi通信構成要素、データコントローラ、メモリコントローラ、システムコントローラ、アクセスポート、タイマ、周辺デバイス、ワイヤレス通信構成要素、外部メモリチップ、電圧レギュレータ、発振器、フェーズロックループ、周辺ブリッジ、ならびに、プロセッサ、およびモバイルコンピューティングデバイス102上で実行するクライアントをサポートするために使用される他の同様の構成要素を含み得る、1つまたは複数のハードウェア構成要素のドライバの統計データおよび/またはステータスを監視することによって、モバイルコンピューティングデバイス102の活動を監視することもできる。
【００５９】
挙動観測器モジュール202はまた、モバイルコンピューティングデバイス102および/またはコンピューティングデバイスのサブシステムの状態またはステータスを示す、1つまたは複数のハードウェアカウンタを監視することによって、モバイルコンピューティングデバイス102の活動を監視することもできる。ハードウェアカウンタは、モバイルコンピューティングデバイス102内で発生するハードウェア関連の活動またはイベントのカウント値または状態を記憶するように構成されたプロセッサ/コアの専用レジスタを含み得る。
【００６０】
挙動観測器モジュール202はまた、ソフトウェアアプリケーションの活動または動作、アプリケーションダウンロードサーバ(たとえば、Apple(登録商標) App Storeサーバ)からのソフトウェアダウンロード、ソフトウェアアプリケーションによって使用されるコンピューティングデバイス情報、呼情報、テキストメッセージング情報(たとえば、SendSMS、BlockSMS、ReadSMSなど)、メディアメッセージング情報(たとえば、ReceiveMMS)、ユーザアカウント情報、位置情報、カメラ情報、加速度計情報、ブラウザ情報、ブラウザベースの通信の内容、音声ベースの通信の内容、短距離無線通信(たとえば、Bluetooth(登録商標)、WiFiなど)、テキストベースの通信の内容、記録されたオーディオファイルの内容、電話帳または連絡先情報、連絡先リストなどを監視することによって、モバイルコンピューティングデバイス102の活動を監視することもできる。
【００６１】
挙動観測器モジュール202は、ボイスメールを含む通信(VoiceMailComm)、デバイス識別子を含む通信(DeviceIDComm)、ユーザアカウント情報を含む通信(UserAccountComm)、カレンダー情報を含む通信(CalendarComm)、ロケーション情報を含む通信(LocationComm)、記録されたオーディオ情報を含む通信(RecordAudioComm)、加速度計情報を含む通信(AccelerometerComm)などを含む、モバイルコンピューティングデバイス102の送信または通信を監視することによって、モバイルコンピューティングデバイス102の活動を監視することもできる。
【００６２】
挙動観測器モジュール202は、コンパス情報、コンピューティングデバイスの設定、バッテリ寿命、ジャイロスコープ情報、圧力センサ、磁気センサ、スクリーン活動などの使用とそれらに対する更新/変更とを監視することによって、モバイルコンピューティングデバイス102の活動を監視することもできる。挙動観測器モジュール202は、ソフトウェアアプリケーションとの間で通信される通知(AppNotifications)、アプリケーション更新などを監視することができる。挙動観測器モジュール202は、第2のソフトウェアアプリケーションのダウンロードおよび/またはインストールを要求している第1のソフトウェアアプリケーションに関する条件またはイベントを監視することができる。挙動観測器モジュール202は、パスワードの入力のような、ユーザ検証に関する条件またはイベントを監視することができる。
【００６３】
挙動観測器モジュール202はまた、アプリケーションレベル、無線レベル、およびセンサレベルを含む、モバイルコンピューティングデバイス102の複数のレベルにおいて条件またはイベントを監視することによって、モバイルコンピューティングデバイス102の活動を監視することもできる。アプリケーションレベルの観測には、顔認識ソフトウェアを介してユーザを観測すること、ソーシャルストリームを観測すること、ユーザによって入力された注釈を観測すること、PassBook(登録商標)、Google(登録商標) Wallet、Paypal(登録商標)、および他の類似のアプリケーションまたはサービスの使用に関するイベントを観測することなどが含まれ得る。アプリケーションレベルの観測には、仮想プライベートネットワーク(VPN)の使用に関するイベント、および同期、音声探索、音声制御(たとえば、1語を発することによる電話のロック/アンロック)、言語翻訳機、計算用のデータのオフローディング、ビデオストリーミング、ユーザ活動なしでのカメラの使用、ユーザ活動なしでのマイクロフォンの使用などに関するイベントを観測することも含まれ得る。
【００６４】
無線レベルの観測には、無線通信リンクを確立するかまたは情報を送信する前のモバイルコンピューティングデバイス102とのユーザの対話、デュアル/マルチ加入者識別モジュール(SIM)カード、インターネット無線、モバイルフォンテザリング、計算のためのデータのオフロード、デバイス状態通信、ゲームコントローラまたはホームコントローラとしての使用、車両通信、コンピューティングデバイス同期などのうちのいずれかまたは複数の存在、実在、または量を決定することが含まれ得る。無線レベルの観測にはまた、測位、ピアツーピア(p2p)通信、同期、車両対車両通信、および/または機械対機械(m2m)のための、無線(WiFi、WiMax、Bluetooth(登録商標)など)の使用を監視することも含まれ得る。無線レベルの観測には、ネットワークトラフィックの使用、統計データ、またはプロファイルを監視することがさらに含まれ得る。
【００６５】
センサレベルの観測には、モバイルコンピューティングデバイス102の使用環境および/または外部環境を判断するために、磁気センサまたは他のセンサを監視することが含まれ得る。たとえば、コンピューティングデバイスプロセッサは、デバイスが(たとえば、ホルスタ内の磁石を検知するように構成された磁石センサを介して)ホルスタ内にあるか、または(たとえば、カメラもしくは光センサによって検出される光の量を介して)ユーザのポケット内にあるかを判断するように構成される場合がある。たとえば、モバイルコンピューティングデバイス102がホルスタに入れられている間に発生する、ユーザによるアクティブな使用(たとえば、写真またはビデオを撮ること、メッセージを送ること、音声通話を行うこと、音を録音することなど)に関連する活動および機能は、(たとえば、ユーザを追跡またはスパイするために)デバイス上で実行している不正なプロセスのサインである可能性があるので、モバイルコンピューティングデバイス102がホルスタ内にあることを検出することは、疑わしい挙動を認識することに関係する場合がある。
【００６６】
使用環境または外部環境に関連するセンサレベルの観測の他の例には、近距離無線通信(NFC)シグナリングを検出すること、クレジットカードスキャナ、バーコードスキャナ、またはモバイルタグリーダから情報を収集すること、ユニバーサルシリアルバス(USB)電力充電源の存在を検出すること、キーボードまたは補助デバイスがモバイルコンピューティングデバイス102に結合されていることを検出すること、モバイルコンピューティングデバイス102が(たとえば、USBなどを介して)別のコンピューティングデバイスに結合されていることを検出すること、LED、フラッシュ、フラッシュライト、または光源が変更または(たとえば、緊急シグナリングアプリケーションなどを、悪意をもって無効にして)無効化されているかどうかを決定すること、スピーカまたはマイクロフォンがオンにされているかまたは電源投入されていることを検出すること、充電または電力供給イベントを検出すること、モバイルコンピューティングデバイス102がゲームコントローラとして使用されていることを検出することなどが含まれ得る。センサレベルの観測には、医療もしくはヘルスケアのセンサから、またはユーザの体をスキャンすることから情報を収集すること、USB/オーディオジャックに差し込まれた外部センサから情報を収集すること、(たとえば、振動インターフェースなどを介して)触知センサまたは触覚センサから情報を収集すること、モバイルコンピューティングデバイス102の熱状態に関する情報を収集することなども含まれ得る。
【００６７】
監視される要因の数を管理可能レベルまで削減するために、ある実施形態では、挙動観測器モジュール202は、コンピューティングデバイスの劣化に寄与する可能性があるすべての要因の小さいサブセットである、挙動または要因の初期セットを監視/観測することによって、粗い観測を実施するように構成され得る。ある実施形態では、挙動観測器モジュール202は、挙動および/または要因の初期セットをサーバおよび/またはクラウドサービスもしくはネットワーク内の構成要素から受信することができる。ある実施形態では、挙動/要因の初期セットは、機械学習分類器モデル内で指定され得る。
【００６８】
各分類器モデルは、コンピューティングデバイスの挙動の特定の特徴または実施形態を評価するために、コンピューティングデバイスプロセッサによって使用され得る、データおよび/または情報構造(たとえば、特徴ベクトル、挙動ベクトル、構成要素リストなど)を含む挙動モデルであり得る。各分類器モデルはまた、コンピューティングデバイス内のいくつかの特徴、要因、データ点、エントリ、API、状態、条件、挙動、アプリケーション、プロセス、動作、構成要素など(本明細書では総称して「特徴」)を監視するための判定基準を含み得る。分類器モデルは、コンピューティングデバイスにプレインストールされてよく、ネットワークサーバからダウンロードもしくは受信されてよく、コンピューティングデバイス内で生成されてよく、またはそれらの任意の組合せであってよい。分類器モデルは、クラウドソーシングソリューション、挙動モデル化技法、機械学習アルゴリズムなどを使用することによって、生成され得る。
【００６９】
各分類器モデルは、完全な分類器モデルまたは簡潔な分類器モデルとして類別され得る。完全な分類器モデルは、数千の特徴および数十億のエントリを含み得る大きいトレーニングデータセットに応じて生成される、ロバストなデータモデルであり得る。簡潔な分類器モデルは、特定の活動が進行中のクリティカル活動であるかどうか、および/または特定のモバイルデバイスの挙動が良性ではないかどうかを決定することに最も関連がある特徴/エントリのみを含む/テストする、縮小されたデータセットから生成された、より専心的なデータモデルであり得る。一例として、デバイスプロセッサは、ネットワークサーバから完全な分類器モデルを受信し、完全な分類器に基づいて、コンピューティングデバイス内で学習分類器モデルを生成し、デバイスの挙動を良性または非良性(すなわち、悪意がある、性能を劣化させるなど)のいずれかであるとして分類するために、ローカルに生成された学習分類器モデルを使用するように構成され得る。
【００７０】
ローカルに生成される簡潔な分類器モデルは、コンピューティングデバイスにおいて生成される簡潔な分類器モデルである。すなわち、現代のコンピューティングデバイス(たとえば、モバイルデバイスなど)は非常に構成可能かつ複雑なシステムであるため、特定のデバイス挙動が非良性(たとえば、悪意がある、または性能劣化である)かどうかを決定するために最も重要な特性は各デバイスにおいて異なり得る。さらに、特徴の異なる組合せは、特定の挙動が非良性であるかどうかをそのデバイスが迅速かつ効率的に決定するために、各デバイスにおける監視および/または分析を必要とすることがある。しかし、監視および分析を必要とする特徴の的確な組合せ、ならびに各特徴または特徴の組合せの相対的な優先順位または重要性は、しばしば、それにおいて挙動が監視または分析されるべきである特定のデバイスから取得された情報を使用してのみ決定され得る。これらのおよび他の理由で、様々な実施形態は、モデルが使用されるコンピューティングデバイス内に分類器モデルを生成することができる。これらのローカル分類器モデルは、そのデバイスプロセッサが、その特定のデバイス上の挙動が非良性である(デバイスの性能の劣化に寄与している)かを決定する際に最も重要である特定の特徴を正確に特定することを可能にする。ローカル分類器モデルはまた、デバイスプロセッサが、その特定のデバイス内の挙動を分類するためのその相対的な重要性に従ってテストまたは評価される特徴を優先順位付けすることを可能にする。
【００７１】
デバイス固有の分類器モデルは、特定のコンピューティングデバイス内で活動または挙動を分類することに最も関連があると決定される、コンピューティングデバイス固有の特徴/エントリのみを含む/テストする専心的なデータモデルを含む分類器モデルである。アプリケーション固有の分類器モデルは、特定のソフトウェアアプリケーションを評価することに最も関連がある特徴/エントリのみを含む/テストする専心的なデータモデルを含む分類器モデルである。コンピューティングデバイスにおいてアプリケーション固有の分類器モデルをローカルに動的に生成することによって、様々な実施形態は、デバイスプロセッサが、特定のソフトウェアアプリケーションの動作がそのデバイスの望ましくない挙動または性能を劣化させる挙動に寄与しているかどうかを決定するのに最も重要な少数の特徴に対する監視動作および分析動作に専念することを可能にする。
【００７２】
マルチアプリケーション分類器モデルは、2つ以上の特定のソフトウェアアプリケーション(または、特定のタイプのソフトウェアアプリケーション)の集合的挙動が非良性であるかどうかを決定することに最も関連がある特徴/エントリに対するテストを含みまたは優先順位付ける、専心的なデータモデルを含むローカル分類器モデルであり得る。マルチアプリケーション分類器モデルは、特徴のアグリゲートされたセットをテスト/評価するアグリゲートされた特徴セットおよび/または判定ノードを含み得る。デバイスプロセッサは、コンピューティングデバイス上で動作する2つ以上のソフトウェアアプリケーション間の関係、対話、および/または通信を特定することに最も関連があるデバイス特徴を特定し、特定されたデバイス特徴のうちの1つを評価するテスト条件を特定し、特定されたテスト条件の優先順位、重要性、または成功率を決定し、その重要性または成功率に従って、特定されたテスト条件を優先順位付けまたは順序付け、その決定された優先順位、重要性、または成功率に従ってそれらが順序付けられるように、特定されたテスト条件を含めるように分類器モデルを生成することによって、マルチアプリケーション分類器モデルを生成するように構成され得る。デバイスプロセッサは、2つ以上のアプリケーション特定分類器モデルを組み合わせることによって、マルチアプリケーション分類器モデルを生成するように構成され得る。
【００７３】
様々な実施形態では、デバイスプロセッサは、2つ以上のアプリケーションが協働して結託または動作している、またはアプリケーションがグループとして一緒に分析されるべきであると決定することに応答して、マルチアプリケーション分類器モデルを生成するように構成され得る。デバイスプロセッサは、アプリケーションの各特定されたグループまたはクラスに関してマルチアプリケーション分類器モデルを生成するように構成され得る。しかしながら、すべてのグループを分析することは、デバイスの限定された、かなりのリソース量を消費する可能性がある。したがって、ある実施形態では、デバイスプロセッサは、(たとえば、他のアプリケーションとのその対話などに基づいて)アプリケーションが結託挙動に関与している確率を決定し、結託挙動の高い確率があるソフトウェアアプリケーションを含むグループだけに関して分類器モデルを知的に生成するように構成され得る。
【００７４】
挙動分析器モジュール208は、監視された活動(または、挙動)が良性であるか、または非良性であるかを決定するために、挙動抽出器モジュール204によって生成された挙動ベクトルを分類器モデルに適用するように構成され得る。ある実施形態では、その挙動分析動作の結果が良性または非良性のいずれかとして挙動を分類するために十分な情報を提供しないとき、挙動分析器モジュール208は「疑いがある」として挙動を分類することができる。
【００７５】
挙動分析器モジュール208は、結託しているソフトウェアアプリケーションを特定すること、いくつかのアプリケーションをグループとして評価するべきであると決定することに応答して、かつ/または監視された活動または挙動が疑わしいと決定することに応答して、挙動観測器モジュール202に通知するように構成され得る。それに応答して、挙動観測器モジュール202は、その観測の粒度(すなわち、コンピューティングデバイスの特徴が監視される際の詳細度のレベル)を調節し、かつ/または、挙動分析器モジュール208から受信された情報(たとえば、リアルタイム分析動作の結果)に基づいて監視されるアプリケーション/要因/挙動を変更し、新たな情報または追加の挙動情報を生成または収集し、さらなる分析/分類のために新たな/追加の情報を挙動分析器モジュール208に送ることができる。
【００７６】
挙動観測器モジュール202と挙動分析器モジュール208との間のそのようなフィードバック通信により、集合的挙動が良性または非良性として分類されるまで、疑わしいかもしくは性能を劣化させる挙動の根源が特定されるまで、処理もしくはバッテリの消費しきい値に到達するまで、または、観測の細分性のさらなる変化、調整、または向上から、疑わしいかもしくは性能を劣化させる挙動の根源が特定され得ないとデバイスプロセッサが決定するまで、モバイルコンピューティングデバイス102が観測の細分性を繰り返し向上させる(すなわち、より微細にまたはより詳細に観測する)こと、または観測される特徴/挙動を変更することが可能になる。そのようなフィードバック通信により、モバイルコンピューティングデバイス102が、コンピューティングデバイスの過剰な量の処理リソース、メモリリソース、またはエネルギーリソースを消費することなく、挙動ベクトルおよび分類器モデルを調整または修正することも可能になる。
【００７７】
挙動観測器モジュール202および挙動分析器モジュール208は、限られた粗い観測結果から疑わしい挙動を特定するため、挙動を動的に決定してより詳細に観測するため、および観測のために必要な詳細さのレベルを動的に決定するために、コンピューティングシステムの挙動のリアルタイムの挙動分析を個別にまたは集合的に提供することができる。これは、デバイス上で大量のプロセッサリソース、メモリリソース、またはバッテリリソースの必要なく、モバイルコンピューティングデバイス102が問題を効率的に特定し、問題を防止することを可能にする。
【００７８】
様々な実施形態では、モバイルコンピューティングデバイス102のデバイスプロセッサは、綿密な監視を必要とするクリティカルデータリソースを特定し、そのクリティカルデータリソースにアクセスするとき、ソフトウェアアプリケーションによって行われるAPI呼出しを(たとえば、挙動観測器モジュール202を介して)監視し、API呼出しのパターンを2つ以上のソフトウェアアプリケーションによる非良性挙動を示すと特定し、API呼出しの特定されたパターンとリソース使用とに基づいて、挙動ベクトルを生成し、(たとえば、挙動分析器モジュール208を介して)挙動分析動作を実行するために挙動ベクトルを使用し、挙動分析動作に基づいて、ソフトウェアアプリケーションのうちの1つまたは複数が非良性であるかどうかを決定するように構成され得る。
【００７９】
ある実施形態では、デバイスプロセッサは、コンピューティングデバイス上で動作するソフトウェアアプリケーションによって最も頻繁に使用されるAPIを特定し、特定されたホットAPIの使用に関する情報をデバイスのメモリ内のAPIログ内に記憶し、非良性挙動を特定するために、APIログ内に記憶された情報に基づいて挙動分析を実行するように構成され得る。
【００８０】
様々な実施形態では、モバイルコンピューティングデバイス102は、活動または挙動が非良性であるかどうかを決定することに最も関連のある特徴、要因、およびデータ点を知的にかつ効率的に特定するために、ネットワークサーバとともに動作するように構成され得る。たとえば、デバイスプロセッサは、ネットワークサーバから完全な分類器モデルを受信し、コンピューティングデバイスまたはデバイス上で動作するソフトウェアアプリケーションの特徴および機能性に固有である簡潔な分類器モデル(すなわち、データ/挙動モデル)を生成するために、受信された完全な分類器モデルを使用するように構成され得る。デバイスプロセッサは、様々なレベルの複雑さ(または「簡潔さ」)の簡潔な分類器モデルのファミリーを生成するために、完全な分類器モデルを使用することができる。簡潔な分類器モデルの最も簡潔なファミリー(すなわち、最も少数のテスト条件に基づく簡潔な分類器モデル)は、モデルが良性または非良性のいずれかとして類別することができない(したがって、モデルによって疑わしいものとして類別される)挙動に遭遇するまで、ルーチン的に適用されてよく、遭遇した時点で、よりロバストな(すなわち、より簡潔ではない)簡潔な分類器モデルが、挙動を類別する試みにおいて適用され得る。生成された簡潔な分類器モデルのファミリー内の一層ロバストな簡潔な分類器モデルの適用は、挙動の最終的な分類が達成されるまで適用され得る。このようにして、デバイスプロセッサは、挙動を最終的に分類するためにロバストな分類器モデルが必要とされる状況に、最も完全だがリソース集約的な簡潔な分類器モデルの使用を制限することによって、効率と精度との間でバランスをとることができる。
【００８１】
様々な実施形態では、デバイスプロセッサは、完全な分類器モデル内に含まれた有限状態機械表示/表現をブーストされた判定株に変換することによって、簡潔な分類器モデルを生成するように構成され得る。デバイスプロセッサは、デバイス固有の特徴、条件、または構成に基づいて、ブーストされた判定株の完全セットを剪定するかまたは選別して、完全な分類器モデル内に含まれたブーストされた判定株のサブセットを含む分類器モデルを生成することができる。デバイスプロセッサは、次いで、コンピューティングデバイス挙動を知的に監視、分析、および/または分類するために、簡潔な分類器モデルを使用することができる。
【００８２】
ブーストされた判定株は、厳密に1つのノード(および、したがって、1つのテスト質問またはテスト条件)と重み値とを有し、したがって、データ/挙動の二項分類における使用に十分に適した1レベル判定木である。すなわち、挙動ベクトルをブーストされた判定株に適用することで、2値の回答(たとえば、YesまたはNo)がもたらされる。たとえば、ブーストされた判定株によってテストされる質問/条件が「ショートメッセージサービス(SMS)送信の頻度が毎分x回未満であるか」である場合、「3」という値をブーストされた判定株に適用することで、(「3回未満」のSMS送信に対して)「yes」の回答または(「3回以上」のSMS送信に対して)「no」の回答のいずれかがもたらされる。
【００８３】
ブーストされた判定株は、非常に簡単かつ根本的である(したがって、著しい処理リソースを必要としない)ので効率的である。ブーストされた判定株はまた非常に並列化可能であり、したがって、(たとえば、コンピューティングデバイス内の複数のコアまたはプロセッサによって)多くの株が並列に/同時に適用またはテストされ得る。
【００８４】
ある実施形態では、デバイスプロセッサは、完全な分類器モデルに含まれる分類器基準のサブセット、ならびに、コンピューティングデバイスの構成、機能性、および接続される/含まれるハードウェアに関連のある特徴に対応する分類器基準のみを含む簡潔な分類器モデルを生成するように構成され得る。デバイスプロセッサは、デバイスに存在する、または関連のある特徴および機能のみを監視するために、この簡潔な分類器モデルを使用することができる。次いで、デバイスプロセッサは、コンピューティングデバイスの現在の状態および構成に基づいて、様々な特徴および対応する分類器基準を含むように、または削除するように、簡潔な分類器モデルを定期的に変更または再生成することができる。
【００８５】
一例として、デバイスプロセッサは、挙動モデル(たとえば、分類器)の完全な特徴セットに関連付けられた判定株を含む、大きいブーストされた判定株の分類器モデルを受信し、コンピューティングデバイスの現在の構成、機能性、動作状態、および/または接続される/含まれるハードウェアに関連のある特徴のみを大きい分類器モデルから選択すること、ならびに、選択された特徴に対応するブーストされた判定株のサブセットを簡潔な分類器モデル内に含めることによって、大きい分類器モデルから1つまたは複数の簡潔な分類器モデルを導出するように構成され得る。この実施形態では、コンピューティングデバイスに関連のある特徴に対応する分類器基準は、選択された特徴の少なくとも1つをテストする大きい分類器モデルに含まれるブーストされた判定株であり得る。次いで、デバイスプロセッサは、コンピューティングデバイスの現在の状態および構成に基づいて様々な特徴を含むように、または削除するように、ブーストされた判定株の簡潔な分類器モデルを定期的に変更または再生成することができ、その結果、簡潔な分類器モデルは、アプリケーション固有またはデバイス固有の特徴のブーストされた判定株を含め続ける。
【００８６】
さらに、デバイスプロセッサはまた、特定のソフトウェアアプリケーション(Google(登録商標) walletおよびeTrade(登録商標))に、および/または特定のタイプのソフトウェアアプリケーション(たとえば、ゲーム、ナビゲーション、金融、ニュース、生産性など)に関連のある条件または特徴を特定するアプリケーション固有の分類器モデルを動的に生成することもできる。これらの分類器モデルは、完全な分類器モデル内に含まれる判定ノードの(または、受信された完全な分類器モデルから生成されたより簡潔な分類器モデル内に含まれる判定ノードの)低減された、およびより専心的なサブセットを含むように生成され得る。これらの分類モデルを組み合わせて、マルチアプリケーション分類器モデルを生成することができる。
【００８７】
様々な実施形態では、デバイスプロセッサは、システム内の各ソフトウェアアプリケーションのための、および/またはシステム内のソフトウェアアプリケーションの各タイプのための、アプリケーションベースの分類器モデルを生成するように構成され得る。デバイスプロセッサはまた、危険性が高い、または乱用されやすいソフトウェアアプリケーションおよび/またはアプリケーションタイプ(たとえば、金融アプリケーション、ポイントオブセールアプリケーション、生体センサアプリケーションなど)を動的に特定し、危険性が高い、または乱用されやすいものとして特定されるソフトウェアアプリケーションおよび/またはアプリケーションタイプのみのためのアプリケーションベースの分類器モデルを生成するように構成され得る。様々な実施形態では、デバイスプロセッサは、動的に、反応的に、前もって、および/または新しいアプリケーションがインストールもしくは更新されるたびに、アプリケーションベースの分類器モデルを生成するように構成され得る。
【００８８】
一般に、各ソフトウェアアプリケーションは、コンピューティングデバイス上でいくつかのタスクまたは活動を実行する。いくつかのタスク/活動がコンピューティングデバイスにおいて実行される特定の実行状態は、挙動または活動が追加のまたはより綿密な精査、監視、および/または分析に値するか否かの強い指標であり得る。したがって、様々な実施形態では、デバイスプロセッサは、それにおいていくつかのタスク/活動が実行される実際の実行状態を特定する情報を使用して、その挙動監視および分析動作に専心し、活動がクリティカル活動であるか、および/または活動が非良性であるかどうかをより良く決定するように構成され得る。
【００８９】
様々な実施形態では、デバイスプロセッサは、ソフトウェアアプリケーションによって実行された活動/タスクを、それにおいてそれらの活動/タスクが実行された実行状態に関連付けるように構成され得る。たとえば、デバイスプロセッサは、実行状態が関連のあるソフトウェアの特徴、活動、または動作(たとえば、ロケーションアクセス、SMS読取り動作、センサアクセスなど)をリストするサブベクトルまたはデータ構造において、計測された構成要素を監視することから収集された挙動情報を含む挙動ベクトルを生成するように構成され得る。ある実施形態では、このサブベクトル/データ構造は、それにおいて各特徴/活動/動作が観測された実行状態を特定する影の特徴値サブベクトル/データ構造に関連して記憶され得る。一例として、デバイスプロセッサは、その値が、ソフトウェアアプリケーションがバックグラウンド状態において動作中であったときに、ソフトウェアアプリケーションがロケーション情報にアクセスした数または割合を特定する、「location_background」データフィールドを含む挙動ベクトルを生成し得る。これによって、デバイスプロセッサが、コンピューティングデバイスの他の観測された/監視された活動とは無関係に、および/またはそれと並列に、この実行状態情報を分析することが可能になる。このようにして挙動ベクトルを生成することで、システムが情報(たとえば、頻度または割合)を経時的に統合することも可能になる。
【００９０】
様々な実施形態では、デバイスプロセッサは、監視された活動に関してクエリに対する回答を生成するために、機械学習分類器における判定ノードに入力され得る情報を含むために挙動ベクトルを生成するように構成され得る。
【００９１】
様々な実施形態では、デバイスプロセッサは、実行情報を含めるように挙動ベクトルを生成するように構成され得る。実行情報は、挙動の一部(たとえば、バックグラウンドプロセスによって3秒間に5回使用されたカメラ、フォアグラウンドプロセスによって3秒間に3回使用されたカメラなど)として、または無関係の特徴の一部として、挙動ベクトル内に含まれ得る。ある実施形態では、実行状態情報は、影の特徴値サブベクトルまたはデータ構造として、挙動ベクトル内に含まれ得る。ある実施形態では、挙動ベクトルは、実行状態が関連のある特徴、活動、タスクに関連して、影の特徴値サブベクトル/データ構造を記憶し得る。
【００９２】
図3は、ある実施形態による、コンピューティングデバイス内で挙動を分析する方法300を示す。ブロック302で、コンピューティングデバイスのハードウェアモジュールまたはプロセッサは、非良性挙動のインスタンスが存在するかどうかを決定するために軽い分析動作を実行することができる。決定ブロック304で、ハードウェアモジュールまたはプロセッサは、ブロック302で軽い分析動作を実行した結果に基づいて、増大したセキュリティリスクが存在するかどうかを決定することができる。軽い分析動作に基づいて、増大したセキュリティリスクが存在しないとの決定(すなわち、決定ブロック304=「No」)に応じて、ハードウェアモジュールまたはプロセッサは、決定ブロック308で、増大したセキュリティリスクが存在することを示すメッセージが別のコンピューティングデバイスから受信されているかどうかを決定することができる。そのようなメッセージが受信されていないとの決定(すなわち、決定ブロック304および308=「No」)に応じて、ハードウェアモジュールまたはプロセッサは、ブロック302で軽い分析動作を実行し続け得ることができる。
【００９３】
非良性挙動の検出に応じてなど、軽い分析動作に基づいて、増大したセキュリティリスクが存在するとの決定(すなわち、決定ブロック304=「Yes」)に応じて、ハードウェアモジュールまたはプロセッサは、ブロック306で、増大したセキュリティリスクについて他のコンピューティングデイバスに通知するためのメッセージをそれらのコンピューティングデバイスに送り、ブロック310で、よりロバストな分析動作を実行することができる。コンピューティングデバイスはまた、増大したセキュリティリスクが存在することを示すメッセージの別のコンピューティングデバイスからの受信(すなわち、決定ブロック308=「Yes」)に応じて、ブロック310で、よりロバストな分析動作を実行することができる。ブロック310で、よりロバストな分析動作を実行することは、重いまたは計算集約的なスキャンエンジンまたはプロセッサを実行することと、署名ベースの検出技法を使用することと、デバイス内のより詳細な挙動情報を収集することと、高められた分析動作を実行するために、よりロバストな分類器モデルを使用することとを含み得る。
【００９４】
ある実施形態では、ブロック310で、よりロバストな分析動作を実行すると同時に、ハードウェアモジュールまたはプロセッサは、非良性挙動の別のインスタンスが特定されてから(または、別のコンピューティングデバイスからのメッセージに応じて、よりロバストな分析が開始されたときに何らかの非良性挙動が特定されてから)の時間を監視することができる。定義された時間量内に非良性挙動のさらなる(または、何の)インスタンスも観測されない場合、ハードウェアモジュールまたはプロセッサは、通常の精査レベルに戻り、処理リソースを保存することができる。その後でプロセッサが軽い分析動作の実行に戻ることができる定義された時間期間は、事前定義された時間期間であってよく、または動的に決定された時間期間であってもよい。事前定義された時間期間は、デバイス製造業者、サービスプロバイダ(たとえば、デバイスプロビジョニング情報の一部)、または(たとえば、セキュリティサービスのサーバによってコンピューティングデバイスに通信された)セキュリティサービスによって定義され得る。動的に決定された時間期間は、コンピューティングデバイスに利用可能な情報に基づいて、コンピューティングデバイスのプロセッサによって決定され得る。たとえば、時間期間は、検出された非良性挙動、またはいくつかの非良性挙動の性質に基づいて、増大または低減され得る。したがって、ハードウェアモジュールまたはプロセッサが、コンピューティングデバイスに対して比較的著しい影響を有するか、またはセキュリティ脆弱性を示す非良性挙動を検出した場合、ハードウェアモジュールまたはプロセッサは、よりロバストな分析動作が実行されることになる定義された時間期間を動的に増大することができる。同様に、著しい非良性挙動が特定された場合、プロセッサは、よりロバストな分析動作が実行されることになる定義された時間期間を動的に増大することができる。他方で、特定された非良性挙動が軽微な性質のものであるか、またはコンピューティングデバイスに攻撃を受けやすくさせる可能性が低い場合、ハードウェアモジュールまたはプロセッサは、よりロバストな分析動作が実行されることになる定義された時間期間を動的に低減することができる。ブロック310で、別のコンピューティングデバイスからのメッセージの受信(すなわち、決定ブロック308=「Yes」)に応じて、ロバストな分析動作が実行されるとき、ハードウェアモジュールまたはプロセッサは、そのコンピューティングデバイスと第2のコンピューティングデバイスとの間の距離に基づいて、よりロバストな分析動作が実行されることになる時間期間を動的に決定することができる。したがって、ブロック310での動作の一部は、セキュリティリスクの性質、特定された非良性挙動インスタンスの数、特定された非良性挙動の性質および重大度ならびに/またはそのコンピューティングデバイスと第2のコンピューティングデバイスとの間の距離に基づいて、よりロバストな分析動作が実行されることになる定義された時間期間を動的に決定することを含み得る。
【００９５】
図4は、コンピューティングデバイスの挙動を分類するための簡潔な分類器モデルを使用する実施形態の方法400を示す。様々な実施形態では、方法400は、軽い分析動作の一部として、またはロバストな分析動作の一部として実行され得る。ブロック402で、コンピューティングデバイスのプロセッサまたは処理コアは、観測を実行して、デバイスシステムの様々なレベルにおいて計測された様々な構成要素から挙動情報を収集することができる。ある実施形態では、これは、図2を参照して上で論じた挙動観測器モジュール202を介して達成され得る。ブロック404で、処理コアは、観測結果、収集された挙動情報、および/またはモバイルデバイスの挙動を特徴付ける、挙動ベクトルを生成することができる。また、ブロック404で、処理コアは、簡潔な分類器モデル、または複雑さ(または「簡潔さ」)のレベルが様々である簡潔な分類器モデルのファミリーを生成するために、ネットワークサーバから受信された完全な分類器モデルを使用することができる。ある実施形態では、処理コアは、完全な分類器モデル内に含まれるブーストされた判定株のファミリーを選別して、減らされた数のブーストされた判定株を含む、かつ/または限られた数のテスト条件を評価する、簡潔な分類器モデルを生成することによって、これを達成することができる。
【００９６】
ブロック406で、処理コアは、モバイルデバイスによってまだ評価または適用されていない簡潔な分類器モデルのファミリー内で最も簡潔な分類器(すなわち、最少の数の異なるモバイルデバイスの状態、特徴、挙動、または条件に基づくモデル)を選択することができる。ある実施形態では、これは、処理コアが分類器モデルの順位付けられたリスト内の最初の分類器モデルを選択することによって達成され得る。
【００９７】
ブロック408で、処理コアは、収集された挙動情報または挙動ベクトルを選択された簡潔な分類器モデル内の各々のブーストされた判定株に適用することができる。ブーストされた判定株は2値の判定であり、簡潔な分類器モデルは同じテスト条件に基づく多くの2値の判定を選択することによって生成されるので、簡潔な分類器モデル内のブーストされた判定株に挙動ベクトルを適用する処理は、並列動作で実行され得る。代替的に、挙動ベクトルは、簡潔な分類器モデル内に含まれる限られた数のテスト条件パラメータをちょうど含むように切り捨てられてよく、またはフィルタリングされてよく、それによってモデルを適用する際の計算量はさらに低減される。
【００９８】
ブロック410で、処理コアは、収集された挙動情報を簡潔な分類器モデル内の各々のブーストされた判定株に適用した結果の加重平均を計算または決定することができる。ブロック412で、処理コアは、計算された加重平均としきい値とを比較することができる。決定ブロック414で、処理コアは、この比較の結果、および/または選択された簡潔な分類器モデルを適用することによって生成された結果が疑わしいかどうかを決定することができる。たとえば、処理コアは、これらの結果が、高い信頼度で悪意があるまたは良性のいずれかであるとして挙動を分類するために使用され得るかどうかを決定することができ、そうでない場合、挙動を疑わしいものとして扱う。
【００９９】
結果が疑わしいと処理コアが決定する(たとえば、決定ブロック414=「Yes」の)場合、処理コアは、ブロック406〜412における動作を繰り返して、挙動が高い信頼度で悪意があるまたは良性であるとして分類されるまで、より多くのデバイスの条件、特徴、挙動、または条件を評価するより強い(すなわち、より簡潔ではない)分類器モデルを選択および適用することができる。挙動が高い信頼度で悪意があるまたは良性のいずれかであるとして分類され得ると決定することなどによって、結果が疑わしくない(たとえば、決定ブロック414=「No」)と処理コアが決定する場合、ブロック416において、処理コアは、良性であるまたは潜在的に悪意があるとしてモバイルデバイスの挙動を分類するために、ブロック412において生成された比較の結果を使用することができる。
【０１００】
ある代替的な実施形態の方法では、上で説明した動作は、簡潔な分類器モデル内にまだ存在しないブーストされた判定株を順次選択し、選択された判定株と同じモバイルデバイスの状態、特徴、挙動または条件に依存する(および、したがって、1つの決定結果に基づいて適用され得る)すべての他のブーストされた判定株を特定し、同じモバイルデバイスの状態、特徴、挙動または条件に依存する選択されたすべての特定された他のブーストされた判定株を簡潔な分類器モデルに含め、テスト条件の決定された数に等しい回数、プロセスを繰り返すことによって、達成され得る。選択されたブーストされた判定株と同じテスト条件に依存するすべてのブーストされた判定株が毎回簡潔な分類器モデルに追加されるので、このプロセスが実行される回数を限定することは、簡潔な分類器モデルに含まれるテスト条件の数を限定することになる。
【０１０１】
図5は、様々な実施形態に従って使用するのに適した、ブーストされた判定木/分類器を生成するのに適した例示的なブースト方法500を示す。動作502で、プロセッサは、判定木/分類器を生成および/または実行し、判定木/分類器の実行によってトレーニングサンプルを収集し、トレーニングサンプルに基づいて新しい分類器モデル(h1(x))を生成することができる。トレーニングサンプルは、モバイルデバイスの挙動、ソフトウェアアプリケーション、またはモバイルデバイスにおけるプロセスの、以前の観測または分析から収集された情報を含み得る。トレーニングサンプルおよび/または新しい分類器モデル(h1(x))は、以前の分類器に含まれる質問またはテスト条件のタイプに基づいて、および/または、挙動分析器モジュール208の以前のデータ/挙動モデルまたは分類器の実行/適用から収集された正確さまたは性能の特性に基づいて生成され得る。動作504で、プロセッサは、第2の新しい木/分類器(h2(x))を生成するために、生成された判定木/分類器(h1(x))によって誤分類されたエントリの重みをブーストする(または増大させる)ことができる。ある実施形態では、トレーニングサンプルおよび/または新しい分類器モデル(h2(x))は、分類器の以前の実行または使用(h1(x))の誤り率に基づいて生成され得る。ある実施形態では、トレーニングサンプルおよび/または新しい分類器モデル(h2(x))は、分類器の以前の実行または使用においてデータ点の誤り率または誤分類に寄与したと判定される属性に基づいて生成され得る。
【０１０２】
ある実施形態では、誤分類されたエントリは、それらの相対的な正確さまたは有効性に基づいて重み付けられ得る。動作506で、プロセッサは、第3の新しい木/分類器(h3(x))を生成するために、生成された第2の木/分類器(h2(x))によって誤分類されたエントリの重みをブーストする(または増大させる)ことができる。動作508で、504〜506の動作が、数「t」の新しい木/分類器(ht(x))を生成するために繰り返され得る。
【０１０３】
第1の判定木/分類器(h1(x))によって誤分類されたエントリの重みをブーストし、または増大させることによって、第2の木/分類器(h2(x))は、第1の判定木/分類器(h1(x))によって誤分類されたエントリをより正確に分類することができるが、第1の判定木/分類器(h1(x))によって正しく分類されたエントリのいくつかを誤分類することもある。同様に、第3の木/分類器(h3(x))は、第2の判定木/分類器(h2(x))によって誤分類されたエントリをより正確に分類することができるが、第2の判定木/分類器(h2(x))によって正しく分類されたエントリのいくつかを誤分類することがある。すなわち、木/分類器のファミリーh1(x)〜ht(x)を生成することは、全体として収束するシステムをもたらさないことがあり、並列に実行され得るいくつかの判定木/分類器をもたらす。
【０１０４】
図6は、ある実施形態による、動的で適応的な観測を実行するための例示的な方法600を示す。様々な実施形態では、方法600は、軽い分析動作の一部として、またはロバストな分析動作の一部として実行され得る。ブロック602で、モバイルデバイスプロセッサ(または処理コア)は、モバイルデバイスの劣化に寄与し得る多数の要因/挙動のサブセットを監視/観測することによって、粗い観測を実行することができる。ブロック603で、モバイルデバイスプロセッサは、粗い観測に基づいて、粗い観測および/またはモバイルデバイスの挙動を特徴付ける挙動ベクトルを生成することができる。ブロック604で、モバイルデバイスプロセッサは、モバイルデバイスの劣化に潜在的に寄与し得る、粗い観測と関連付けられるサブシステム、プロセス、および/またはアプリケーションを特定することができる。これは、たとえば、複数のソースから受信された情報とモバイルデバイスのセンサから受信された状況的情報とを比較することによって達成され得る。ブロック606で、モバイルデバイスプロセッサは、粗い観測に基づいて挙動分析動作を実行することができる。ある実施形態では、ブロック603および604の一部として、モバイルデバイスプロセッサは、図2〜図5を参照して上で論じた動作の1つまたは複数を実行することができる。
【０１０５】
決定ブロック608で、モバイルデバイスプロセッサは、疑わしい挙動または潜在的な問題が挙動分析の結果に基づいて特定され補正され得るかどうかを決定することができる。疑わしい挙動または潜在的な問題が挙動分析の結果に基づいて特定され補正され得るとモバイルデバイスプロセッサが決定する(すなわち、決定ブロック608=「Yes」)とき、ブロック618で、プロセッサは、挙動を補正するためのプロセスを開始し、ブロック602に戻って追加の粗い観測を実行することができる。
【０１０６】
疑わしい挙動または潜在的な問題が挙動分析の結果に基づいて特定および/または補正され得ないとモバイルデバイスプロセッサが決定する(すなわち、決定ブロック608=「No」)とき、決定ブロック609で、モバイルデバイスプロセッサは、問題の可能性があるかどうかを決定できる。ある実施形態では、モバイルデバイスプロセッサは、モバイルデバイスが潜在的な問題に遭遇することおよび/または疑わしい挙動に関与することの確率を計算し、計算された確率が所定のしきい値よりも大きいかどうかを決定することによって、問題の可能性があるかどうかを決定することができる。計算された確率が所定のしきい値よりも大きくない、および/または、疑わしい挙動または潜在的問題が存在するおよび/または検出可能である可能性はないとモバイルデバイスプロセッサが決定する(すなわち、決定ブロック609=「No」)とき、プロセッサは、ブロック602に戻って追加の粗い観測を実行することができる。
【０１０７】
疑わしい挙動または潜在的問題が存在するおよび/または検出可能である可能性があるとモバイルデバイスのプロセッサが判定する(すなわち、判定ブロック609=「Yes」)とき、ブロック610において、モバイルデバイスのプロセッサは、特定されたサブシステム、プロセス、またはアプリケーションに対して、より深いログ取得/観測または最終的なログ取得を実行することを含む、よりロバストな分析動作を実行することができる。ブロック612で、モバイルデバイスプロセッサは、特定されたサブシステム、プロセス、またはアプリケーションに対して、より深くより詳細な観測を実行することができる。ブロック614で、モバイルデバイスプロセッサは、より深くより詳細な観測に基づいて、さらなるおよび/またはより深い挙動分析を実行することができる。決定ブロック608で、モバイルデバイスプロセッサは、より深い挙動分析の結果に基づいて、疑わしい挙動または潜在的な問題が特定され補正され得るかどうかを再び決定することができる。より深い挙動分析の結果に基づいて疑わしい挙動または潜在的な問題が特定され補正され得ないとモバイルデバイスプロセッサが決定する(すなわち、決定ブロック608=「No」)とき、詳細さのレベルが問題を特定するのに十分に微細になるまで、または、詳細さを追加しても問題が特定され得ないかまたは問題が存在しないと決定されるまで、プロセッサはブロック610〜614の動作を繰り返すことができる。
【０１０８】
より深い挙動分析の結果に基づいて疑わしい挙動または潜在的な問題が特定され補正され得るとモバイルデバイスプロセッサが決定する(すなわち、決定ブロック608=「Yes」)とき、ブロック618で、モバイルデバイスプロセッサは、問題/挙動を補正するための動作を実行することができ、プロセッサはブロック602に戻って追加の動作を実行することができる。
【０１０９】
ある実施形態では、方法600のブロック602〜618の一部として、モバイルデバイスプロセッサは、限られた粗い観測値から疑わしい挙動を特定するため、より詳細に観測するために挙動を動的に決定するため、および観測のために必要な詳細さの的確なレベルを動的に決定するために、システムの挙動のリアルタイム挙動分析を実行することができる。これは、デバイス上で大量のプロセッサリソース、メモリリソース、またはバッテリリソースを使用する必要なく、モバイルデバイスプロセッサが問題を効率的に特定し、問題が発生するのを防止することを可能にする。
【０１１０】
様々な実施形態は、様々なコンピューティングデバイス上で実装される場合があり、その一例がスマートフォンの形で図7に示される。スマートフォン700は、内部メモリ704と、ディスプレイ712と、スピーカ714とに結合されたプロセッサ702を含み得る。加えて、スマートフォン700は、プロセッサ702に結合されたワイヤレスデータリンクおよび/または携帯電話トランシーバ708に接続され得る、電磁放射を送り、受信するためのアンテナを含み得る。スマートフォン700は通常、ユーザ入力を受信するためのメニュー選択ボタンまたはロッカースイッチ720も含む。
【０１１１】
典型的なスマートフォン700はまた、マイクロフォンから受信された音をワイヤレス送信に適したデータパケットにデジタル化し、受信された音のデータパケットを復号し、スピーカに供給されて音を発生させるアナログ信号を生成する、音声符号化/復号(コーデック)回路706を含む。また、プロセッサ702、ワイヤレストランシーバ708、およびコーデック706のうちの1つまたは複数は、デジタル信号プロセッサ(DSP)回路(個別に図示せず)を含んでよい。
【０１１２】
実施形態の方法の部分は、実施形態の方法を実行している間にモバイルデバイスプロセッサによってアクセスされ得る正常な動作挙動のデータベースを維持することなどの、サーバにおいて発生する処理のいくつかによって、クライアントサーバアーキテクチャ内で行われてよい。そのような実施形態は、図8に示すサーバ800のような、様々な市販のサーバデバイスのいずれかにおいて実装され得る。そのようなサーバ800は通常、揮発性メモリ802と、ディスクドライブ803などの大容量の不揮発性メモリとに結合されたプロセッサ801を含む。サーバ800はまた、プロセッサ801に結合されたフロッピーディスクドライブ、コンパクトディスク(CD)ドライブまたはDVDディスクドライブ804を含み得る。サーバ800はまた、他のブロードキャストシステムコンピュータおよびサーバに結合されたローカルエリアネットワークのような、ネットワーク805とのデータ接続を確立するための、プロセッサ801に結合されたネットワークアクセスポート806を含み得る。
【０１１３】
プロセッサ702、801は、以下で説明する様々な実施形態の機能を含む、種々の機能を実行するようにソフトウェア命令(アプリケーション)によって構成され得る任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、または1つまたは複数の多重プロセッサチップであり得る。いくつかのモバイルデバイスでは、1つのプロセッサをワイヤレス通信機能専用にし、1つのプロセッサを他のアプリケーションの実行専用にするというように、複数のプロセッサ702が設けられ得る。通常、ソフトウェアアプリケーションは、それらがアクセスされ、プロセッサ702、801にロードされる前に、内部メモリ704、802、803内に記憶され得る。プロセッサ702、801は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。
【０１１４】
いくつかの異なるセルラーおよびモバイル通信サービスおよび規格が利用可能であり、または将来考えられ、それらのすべてが様々な実施形態を実装し、様々な実施形態から利益を受けることができる。そのようなサービスおよび規格は、たとえば、第3世代パートナーシッププロジェクト(3GPP)、ロングタームエボリューション(LTE)システム、第3世代ワイヤレスモバイル通信技術(3G)、第4世代ワイヤレスモバイル通信技術(4G)、モバイル通信用グローバルシステム(GSM(登録商標))、ユニバーサルモバイルテレコミュニケーションシステム(UMTS)、3GSM(登録商標)、汎用パケット無線サービス(GPRS)、符号分割多元接続(CDMA)システム(たとえば、cdmaOne、CDMA1020(商標))、GSM(登録商標)エボリューション用発展型データレート(EDGE)、高度モバイルフォンシステム(AMPS)、デジタルAMPS(IS-136/TDMA)、エボリューションデータ最適化(EV-DO)、デジタル発展型コードレステレコミュニケーション(DECT)、マイクロ波アクセス用ワールドワイドインターオペラビリティ(WiMAX)、ワイヤレスローカルエリアネットワーク(WLAN)、Wi-Fi保護アクセスI&II(WPA、WPA2)、および統合デジタル発展型ネットワーク(iden:integrated digital enhanced network)を含む。これらの技術の各々は、たとえば、音声、データ、シグナリング、および/またはコンテンツメッセージの送信および受信を伴う。個々の電気通信の規格または技術に関係する用語および/または技術的詳細に対するいかなる言及も例示目的にすぎず、請求項の文言に具体的に記載されない限り、特許請求の範囲を特定の通信システムまたは通信技術に限定するものではないことを理解されたい。
【０１１５】
「性能劣化」という用語は、本出願では、より長い処理時間、より遅いリアルタイム応答性、より短いバッテリ寿命、個人データの損失、悪意のある経済活動(たとえば、無許可のプレミアムSMSメッセージを送信すること)、サービス拒否(DoS)、モバイルデバイスを乗っ取ることまたはスパイ活動もしくはボットネット活動のために電話を利用することに関する動作などのような、多種多様な望ましくないモバイルデバイスの動作および特性を指すために使用される。
【０１１６】
様々な実施形態の動作を実行するためのプログラマブルプロセッサ上での実行のためのコンピュータプログラムコードまたは「プログラムコード」は、C、C++、C#、Smalltalk、Java(登録商標)、JavaScript(登録商標)、Visual Basic、構造化照会言語(たとえば、Transact-SQL)、Perlなどの高水準プログラミング言語または様々な他のプログラミング言語で記述され得る。本出願で使用する場合、コンピュータ可読記憶媒体上に記憶されたプログラムコードまたはプログラムは、そのフォーマットがプロセッサによって理解可能である(オブジェクトコードなどの)機械語コードを指し得る。
【０１１７】
多くのモバイルコンピューティングデバイスのオペレーティングシステムのカーネルは、(非特権コードが実行する場合)ユーザ空間内に編成され、(特権コードが実行する場合)カーネル空間内に編成される。この分離は、カーネル空間の一部であるコードが一般公有使用許諾(GPL)で許諾される必要がある一方で、ユーザ空間において実行するコードがGPL許諾されなくてもよい、Android(登録商標)および他のGPL環境において特に重要である。本明細書で論じた様々なソフトウェア構成要素/モジュールは、明示的に別段の記述がない場合、カーネル空間またはユーザ空間のいずれかに実装され得ることを理解されたい。
【０１１８】
上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供したものであり、様々な実施形態のステップを提示された順序で実行しなければならないことを要求または暗示するものではない。当業者なら諒解するように、上記の実施形態におけるステップの順番は、任意の順番で実行可能である。「その後」、「次いで」、「次」などの語は、ステップの順番を限定するものではなく、これらの語は単に、読者に本方法の説明を案内するために使用される。さらに、たとえば冠詞「a」、「an」、または「the」を使用する、請求項の要素に対する単数形でのいかなる参照も、要素を単数形に限定すると解釈されるべきではない。
【０１１９】
本出願で使用される「構成要素」、「モジュール」、「システム」、「エンジン」、「生成器」、「マネージャ」などの用語は、限定はされないが、特定の動作または機能を実行するように構成された、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのような、コンピュータ関連エンティティを含むものとする。たとえば、構成要素は、プロセッサ上で実行するプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであってもよいが、それらに限定されない。例として、コンピューティングデバイス上で実行するアプリケーションとコンピューティングデバイスの両方は、構成要素と呼ばれる場合がある。1つまたは複数の構成要素が、プロセスおよび/または実行スレッド内に存在することがあり、1つの構成要素が、1つのプロセッサもしくはコアに局在することがあり、かつ/または2つ以上のプロセッサもしくはコアに分散されることがある。加えて、これらの構成要素は、様々な命令および/またはデータ構造が記憶された様々な非一時的コンピュータ可読媒体から実行することができる。構成要素は、ローカルプロセスおよび/またはリモートプロセス、関数呼出しまたはプロシージャ呼出し、電子信号、データパケット、メモリ読出し/書込み、ならびに他の知られているネットワーク、コンピュータ、プロセッサ、および/またはプロセス関連の通信方法によって通信することができる。
【０１２０】
本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装される場合がある。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、一般にそれらの機能性に関して上述した。そのような機能性がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の用途およびシステム全体に課せられる設計制約によって決まる。当業者は、説明した機能性を特定のアプリケーションごとに様々な方法で実装し得るが、そのような実装決定は本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【０１２１】
本明細書で開示した実施形態に関して説明した様々な例示的論理、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明した機能を実行するように設計されたそれらの任意の組合せを用いて実装もしくは実行され得る。汎用プロセッサはマルチプロセッサであり得るが、代替的に、プロセッサはいかなる従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサは、コンピューティングデバイスの組合せ、たとえば、DSPとマルチプロセッサとの組合せ、複数のマルチプロセッサ、DSPコアと連携する1つもしくは複数のマルチプロセッサ、または任意の他のそのような構成としても実装され得る。代替的に、いくつかのステップまたは方法は、所与の機能に特有の回路によって実行され得る。
【０１２２】
1つまたは複数の例示的な実施形態では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装されてもよい。ソフトウェアで実装される場合、機能は、非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体上に1つまたは複数のプロセッサ実行可能命令またはコードとして記憶され得る。本明細書で開示した方法またはアルゴリズムのステップは、非一時的なコンピュータ可読媒体またはプロセッサ可読記憶媒体上に存在し得るプロセッサ実行可能ソフトウェアモジュールにおいて実施され得る。非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスされる場合がある任意の記憶媒体であってもよい。限定ではなく例として、そのような非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体は、RAM、ROM、EEPROM、FLASHメモリ、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。ディスク(disk)およびディスク(disc)は、本明細書で使用するとき、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せも、非一時的コンピュータ可読記憶媒体およびプロセッサ可読記憶媒体の範囲内に含まれる。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれる場合がある、非一時的プロセッサ可読媒体および/または非一時的コンピュータ可読媒体上のコードおよび/または命令の1つまたは任意の組合せまたはセットとして存在する場合がある。
【０１２３】
開示した実施形態の前述の説明は、いかなる当業者も本発明を作成または使用することができるように与えたものである。これらの実施形態に対する様々な修正は当業者には容易に明らかとなり、本明細書で定義した一般原理は、本発明の趣旨または範囲から逸脱することなく、他の実施形態に適用され得る。したがって、本発明は、本明細書に示す実施形態に限定されるものではなく、以下の特許請求の範囲、ならびに本明細書で開示する原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【０１２４】
100  通信システム
102  モバイルデバイス
104  携帯電話ネットワーク、電話ネットワーク
106  セル基地局
108  ネットワーク運用センター
110  インターネット
112  双方向ワイヤレス通信リンク
114  サーバ
116  ネットワークサーバ
118  クラウドサービスプロバイダネットワーク
122  ピアツーピア通信リンク
200  挙動ベースのセキュリティシステム
202  挙動観測器モジュール、モジュール
204  挙動抽出器モジュール、モジュール
208  挙動分析器モジュール、モジュール
210  アクチュエータモジュール、モジュール
300  方法
400  方法
500  方法
600  方法
700  スマートフォン
702  プロセッサ
704  内部メモリ
706  音声符号化/復号(コーデック)回路、コーデック
708  ワイヤレスデータリンクおよび/または携帯電話トランシーバ、ワイヤレストランシーバ
712  ディスプレイ
714  スピーカ
720  メニュー選択ボタンまたはロッカースイッチ
800  サーバ
801  プロセッサ
802  揮発性メモリ、内部メモリ
803  ディスクドライブ、内部メモリ
804  フロッピーディスクドライブ、コンパクトディスク(CD)またはDVDディスクドライブ
805  ネットワーク
806  ネットワークアクセスポート
【図１】
2018508071.tif 000003
【図２】
2018508071.tif 000004
【図３】
2018508071.tif 000005
【図４】
2018508071.tif 000006
【図５】
2018508071.tif 000007
【図６】
2018508071.tif 000008
【図７】
2018508071.tif 000009
【図８】
2018508071.tif 000010
【手続補正書】
【提出日】平成29年8月10日(2017.8.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピューティングデバイス内の挙動を分析する方法であって、
前記コンピューティングデバイスのプロセッサ内で、第1のタイプのセキュリティリスクが存在するかどうかを決定するために第1のタイプの分析動作を実行するステップであって、前記第1のタイプの分析動作が、
前記第1のタイプのセキュリティリスクまたは以前に発生の前記第1のタイプのセキュリティリスクの前の発生の兆候に関して前記コンピューティングデバイスを監視することと、
選択デバイス挙動を繰り返し評価し、評価結果を生成するために第1のプロセスを使用することであって、前記第1のプロセスが、前記選択デバイス挙動のうちの少なくとも1つに関するバイナリ分類を実行することを含む、使用することと、
リスクパラメータの値を更新するために前記評価結果を使用することと、
前記リスクパラメータの前記値がしきい値を超えるかどうかを決定することと
を含む、実行するステップと、
前記リスクパラメータの前記値が前記しきい値を超えるとの決定に応じて、前記第1のタイプの分類動作によって検出された前記第1のタイプのセキュリティリスクとは異なる第2のタイプのセキュリティリスクを特定するために、決定された時間行期間にわたって第2のタイプの分析動作を実行するステップであって、前記第2のタイプの分析動作が前記選択デバイス挙動よりも多数のデバイス挙動を評価するために前記第1のプロセスよりも計算集約的である第2のプロセスを使用する、実行するステップと
を含む、方法。
【請求項２】
前記第1のタイプの分析動作を前記実行するステップが、軽い分析動作を実行するステップを含み、
前記決定された時間期間にわたって前記第2のタイプの分析動作を前記実行するステップが、前記決定された時間期間にわたってロバストな分析動作を実行するステップを含む
請求項1に記載の方法。
【請求項３】
前記軽い分析動作を前記実行するステップが、
挙動情報を収集するために前記選択デバイス挙動を監視するステップと、
前記収集された挙動情報に基づいて挙動ベクトルデータ構造を生成するステップと、
第1のデバイス挙動が非良性であるかどうかの決定を得るために、前記挙動ベクトルデータ構造を簡潔な分類器モデルに適用するステップと、
前記第1のデバイス挙動が非良性であるとの決定に応じて、前記増大したセキュリティリスクが存在すると決定するステップと
を含む、請求項2に記載の方法。
【請求項４】
前記決定された時間期間にわたって前記ロバストな分析動作を前記実行するステップが、前記コンピューティングデバイスのフルスキャンを実行するステップを含む、請求項2に記載の方法。
【請求項５】
前記決定された時間期間にわたって前記ロバストな分析動作を前記実行するステップが、別のセキュリティリスクが前記コンピューティングデバイス内に存在するかどうかの決定を得るために、挙動ベクトルデータ構造を完全な分類器モデルに適用するステップを含む、請求項2に記載の方法。
【請求項６】
前記決定された時間期間にわたって前記ロバストな分析動作を前記実行するステップが、
追加の挙動情報を収集するために追加のデバイス挙動を監視するステップと、
前記収集された追加の挙動情報に基づいて複数の挙動ベクトルデータ構造を生成するステップと、
前記複数の挙動ベクトルデータ構造の各々を分類器モデルに適用するステップと
を含む、請求項2に記載の方法。
【請求項７】
前記決定された時間期間にわたって前記ロバストな分析動作を前記実行するステップが、動的に決定された時間期間にわたって前記ロバストな分析動作を実行するステップを含む、請求項2に記載の方法。
【請求項８】
前記コンピューティングデバイスと第2のコンピューティングデバイスとの間の距離に基づいて前記時間期間を動的に決定するステップをさらに含む、請求項7に記載の方法。
【請求項９】
前記増大したセキュリティリスクまたは前記以前に発生のリスクの前記兆候に関して前記コンピューティングデバイスを前記監視するステップが、
前記増大したセキュリティリスクを示す、別のコンピューティングデバイスからの通知メッセージに関して前記コンピューティングデバイスを監視するステップ
を含む、請求項1に記載の方法。
【請求項１０】
前記増大したセキュリティリスクまたは以前に発生のリスクの前記兆候に関して前記コンピューティングデバイスを前記監視するステップが、
内部計算、ファイル、機能的挙動、およびデータアクセス要求のうちの1つまたは複数を監視するステップ
を含む、請求項1に記載の方法。
【請求項１１】
前記増大したセキュリティリスクまたは前記以前に発生のリスクの前記兆候に関して前記コンピューティングデバイスを前記監視するステップが、
非良性活動に関連付けられたデータパターンを特定するために前記コンピューティングデバイスを監視するステップ
を含む、請求項1に記載の方法。
【請求項１２】
前記リスクパラメータの前記値が前記しきい値を超えるとの決定に応じて、リスク情報を含む通知メッセージを生成するステップと、
1つまたは複数のコンピューティングデバイスに前記通知メッセージを送信するステップと
をさらに含む、請求項1に記載の方法。
【請求項１３】
前記増大したセキュリティリスクまたは前記以前に発生のリスクの前記兆候に関して前記コンピューティングデバイスを前記監視するステップが、
マルウェア感染の一般的な結果に関して前記コンピューティングデバイスを監視するステップ
を含む、請求項1に記載の方法。
【請求項１４】
前記マルウェア感染の一般的な結果に関して前記コンピューティングデバイスを前記監視するステップが、
ある時間期間内に送信されたプレミアムSMSメッセージの数を監視すること、
悪意のある挙動に関連付けられたサイトへのトラフィック内の増大を監視すること、
前記時間期間内に通信されたアドレスブック連絡先の数を監視すること、
前記時間期間内のパスワード修正の数を監視すること、および
デバイス構成に対する変更を監視すること
のうちの1を実行するステップを含む、請求項13に記載の方法。
【請求項１５】
リスク情報を含む通知メッセージを別のコンピューティングデバイスから受信するステップと、
前記受信された通知メッセージ内に含まれた前記リスク情報に基づいて、前記増大したセキュリティリスクが存在すると決定するステップと
をさらに含む、請求項1に記載の方法。
【請求項１６】
前記受信された通知メッセージ内に含まれた前記リスク情報に基づいて、前記増大したセキュリティリスクが存在すると前記決定するステップが、前記コンピューティングデバイスと前記受信された通知メッセージを送信する別のコンピューティングデバイスとの間の距離に少なくとも部分的に基づいて、前記増大したセキュリティリスクが存在すると決定するステップを含み、前記距離が、物理的距離、検出されたセキュリティリスクと前記受信された通知メッセージとの間の時差、ネットワーク分離距離、前記コンピューティングデバイスがリブートされている回数、ソフトウェアアプリケーションが更新されている回数、ソフトウェアのバージョン間の差、および前記送信側コンピューティングデバイスと前記受信側コンピューティングデバイスとの間の種類、モデル、バージョン、特徴、またはハードウェア差異のうちの1つまたは複数を含む、請求項15に記載の方法。
【請求項１７】
第1のタイプのセキュリティリスクが存在するかどうかを決定するために第1のタイプの分析動作を実行するための手段であって、前記第1のタイプの分析動作が、
前記第1のタイプのセキュリティリスクまたは以前に発生の前記第1のタイプのセキュリティリスクの前の発生の兆候に関して前記コンピューティングデバイスを監視することと、
選択デバイス挙動を繰り返し評価し、評価結果を生成するために第1のプロセスを使用することであって、前記第1のプロセスが、前記選択デバイス挙動のうちの少なくとも1つに関するバイナリ分類を実行することを含む、使用することと、
リスクパラメータの値を更新するために前記評価結果を使用することと、
前記リスクパラメータの前記値がしきい値を超えるかどうかを決定することと
を含む、実行するための手段と、
前記リスクパラメータの前記値が前記しきい値を超えるとの決定に応じて、前記第1のタイプの分類動作によって検出された前記第1のタイプのセキュリティリスクとは異なる第2のタイプのセキュリティリスクを特定するために、決定された時間行期間にわたって第2のタイプの分析動作を実行するための手段であって、前記第2のタイプの分析動作が前記選択デバイス挙動よりも多数のデバイス挙動を評価するために前記第1のプロセスよりも計算集約的である第2のプロセスを使用する、実行するための手段と
を含む、コンピューティングデバイス。
【請求項１８】
前記第1のタイプの分析動作を前記実行するための手段が、軽い分析動作を実行するための手段を含み、
前記決定された時間期間にわたって前記第2のタイプの分析動作を前記実行するための手段が、前記決定された時間期間にわたってロバストな分析動作を実行するための手段を含む
請求項17に記載のコンピューティングデバイス。
【請求項１９】
プロセッサを含み、前記プロセッサが、
第1のタイプのセキュリティリスクが存在するかどうかを決定するために第1のタイプの分析動作を実行することであって、前記第1のタイプの分析動作が、
前記第1のタイプのセキュリティリスクまたは以前に発生の前記第1のタイプのセキュリティリスクの兆候に関して前記コンピューティングデバイスを監視することと、
選択デバイス挙動を繰り返し評価し、評価結果を生成するために第1のプロセスを使用することであって、前記第1のプロセスが、前記選択デバイス挙動のうちの少なくとも1つに関するバイナリ分類を実行することを含む、使用することと、
リスクパラメータの値を更新するために前記評価結果を使用することと、
前記リスクパラメータの前記値がしきい値を超えるかどうかを決定することと
を含む、実行することと、
前記リスクパラメータの前記値が前記しきい値を超えるとの決定に応じて、前記第1のタイプの分類動作によって検出された前記第1のタイプのセキュリティリスクとは異なる第2のタイプのセキュリティリスクを特定するために、決定された時間行期間にわたって第2のタイプの分析動作を実行することであって、前記第2のタイプの分析動作が前記選択デバイス挙動よりも多数のデバイス挙動を評価するために前記第1のプロセスよりも計算集約的である第2のプロセスを使用する、実行することと
を行うためのプロセッサ実行可能ソフトウェア命令で構成される
コンピューティングデバイス。
【請求項２０】
前記プロセッサが、
リスク情報を含む通知メッセージを別のコンピューティングデバイスから受信し、
前記受信された通知メッセージ内に含まれた前記リスク情報と、前記コンピューティングデバイスと前記受信された通知メッセージを送信する前記別のコンピューティングデバイスとの間の距離とに基づいて、前記増大したセキュリティリスクが存在すると決定する
ためのプロセッサ実行可能ソフトウェア命令でさらに構成される、請求項19に記載のコンピューティングデバイス。
【請求項２１】
前記プロセッサが、
前記第1のタイプの分析動作を前記実行することが、軽い分析動作を実行することを含み、
前記決定された時間期間にわたって前記第2のタイプの分析動作を前記実行することが、前記決定された時間期間にわたってロバストな分析動作を実行することを含む
ようなプロセッサ実行可能ソフトウェア命令でさらに構成される、請求項19に記載のコンピューティングデバイス。
【請求項２２】
前記プロセッサが、
挙動情報を収集するために前記選択デバイス挙動を監視することと、
前記収集された挙動情報に基づいて挙動ベクトルデータ構造を生成することと、
第1のデバイス挙動が非良性であるかどうかの決定を得るために、前記挙動ベクトルデータ構造を簡潔な分類器モデルに適用することと、
前記第1のデバイス挙動が非良性であるとの決定に応じて、前記増大したセキュリティリスクが存在すると決定することと
によって、前記軽い分析を実行するためのプロセッサ実行可能ソフトウェア命令でさらに構成される、請求項21に記載のコンピューティングデバイス。
【請求項２３】
前記プロセッサが、
追加の挙動情報を収集するために追加のデバイス挙動を監視することと、
前記収集された追加の挙動情報に基づいて複数の挙動ベクトルデータ構造を生成することと、
前記複数の挙動ベクトルデータ構造の各々を分類器モデルに適用することと
によって、前記第2のタイプのセキュリティリスクを特定するためのロバストな分析動作を実行するためのプロセッサ実行可能ソフトウェア命令でさらに構成される、請求項21に記載のコンピューティングデバイス。
【請求項２４】
動作をコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令が記憶された、コンピュータ可読記憶媒体であって、前記動作が、
第1のタイプのセキュリティリスクが存在するかどうかを決定するために第1のタイプの分析動作を実行することであって、前記第1のタイプの分析動作が、
前記第1のタイプのセキュリティリスクまたは以前に発生の前記第1のタイプのセキュリティリスクの兆候に関して前記コンピューティングデバイスを監視することと、
選択デバイス挙動を繰り返し評価し、評価結果を生成するために第1のプロセスを使用することであって、前記第1のプロセスが、前記選択デバイス挙動のうちの少なくとも1つに関するバイナリ分類を実行することを含む、使用することと、
リスクパラメータの値を更新するために前記評価結果を使用することと、
前記リスクパラメータの前記値がしきい値を超えるかどうかを決定することと
を含む、実行することと、
前記リスクパラメータの前記値が前記しきい値を超えるとの決定に応じて、前記第1のタイプの分類動作によって検出された前記第1のタイプのセキュリティリスクとは異なる第2のタイプのセキュリティリスクを特定するために、決定された時間行期間にわたって第2のタイプの分析動作を実行することであって、前記第2のタイプの分析動作が前記選択デバイス挙動よりも多数のデバイス挙動を評価するために前記第1のプロセスよりも計算集約的である第2のプロセスを使用する、実行することと
を含む、コンピュータ可読記憶媒体。
【請求項２５】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、
リスク情報を含む通知メッセージを別のコンピューティングデバイスから受信することと、
前記受信された通知メッセージ内に含まれた前記リスク情報と、前記受信された通知メッセージを送信する前記別のコンピューティングデバイスまでの距離とに基づいて、前記増大したセキュリティリスクが存在すると決定することと
をさらに含む動作を前記プロセッサに実行させるように構成される、請求項24に記載のコンピュータ可読記憶媒体。
【請求項２６】
前記記憶されたプロセッサ実行可能なソフトウェア命令が、
前記第1のタイプの分析動作を前記実行することが、軽い分析動作を実行することを含み、
前記決定された時間期間にわたって前記第2のタイプの分析動作を前記実行することが、前記決定された時間期間にわたってロバストな分析動作を実行することを含む
ような動作を前記プロセッサに実行させるように構成される、請求項24に記載のコンピュータ可読記憶媒体。
【国際調査報告】
2018508071.tif 000011
2018508071.tif 000012
2018508071.tif 000013