(57)【要約】  様々な態様のシステム、方法、およびデバイスは、モジュール間挙動検証の方法を可能にする。システムの複数の観測器モジュールは、システムの被観測モジュールの1つまたは複数の挙動を観測し得る。観測器モジュールの各々は、被観測モジュールの1つまたは複数の挙動に基づく挙動表現を生成し得る。各観測器モジュールは、挙動表現を各観測器モジュールに適した挙動分類器モデルに適用し得る。観測器モジュールは、観測器モジュールの各々によって決定された被観測モジュールの挙動の分類をアグリゲートし得る。観測器モジュールは、アグリゲートされた分類に基づいて、被観測モジュールが異常に挙動しているかどうかを決定し得る。
2018522334.tif 000002
【特許請求の範囲】
【請求項１】
モジュール間挙動検証の方法であって、
システムの複数の観測器モジュールによって、前記システムの被観測モジュールの挙動を観測するステップと、
前記観測器モジュールの各々によって、前記被観測モジュールの前記挙動に基づく挙動表現を生成するステップと、
前記観測器モジュールの各々によって、前記挙動表現を前記被観測モジュールのための挙動分類器モデルに適用するステップと、
アグリゲートされた分類を生成するために、前記観測器モジュールの各々によって、前記観測器モジュールの各々により決定された前記被観測モジュールの挙動の分類をアグリゲートするステップと、
前記アグリゲートされた分類に基づいて、前記被観測モジュールが異常に挙動しているかどうかを決定するステップと
を含む方法。
【請求項２】
前記観測器モジュールの各々が、前記被観測モジュールの前記挙動の異なる挙動を観測する、請求項1に記載の方法。
【請求項３】
前記観測器モジュールによって、前記観測器モジュールの各々によって決定された前記被観測モジュールの挙動の分類をアグリゲートするステップが、前記被観測モジュールの前記挙動に対する各観測器モジュールの観点に基づいて、前記観測器モジュールの各々からの分類に重み付けするステップを含む、請求項1に記載の方法。
【請求項４】
前記被観測モジュールの前記挙動に対する各観測器モジュールの前記観点が、前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の数を含む、請求項3に記載の方法。
【請求項５】
前記被観測モジュールの前記挙動に対する各観測器モジュールの前記観点が、前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の1つまたは複数のタイプを含む、請求項3に記載の方法。
【請求項６】
前記被観測モジュールの前記挙動に対する各観測器モジュールの前記観点が、前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の持続時間を含む、請求項3に記載の方法。
【請求項７】
前記被観測モジュールの前記挙動に対する各観測器モジュールの前記観点が、前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の複雑度を含む、請求項3に記載の方法。
【請求項８】
前記被観測モジュールが異常に挙動しているとの決定に応答して、前記観測器モジュールの各々によってアクションを取るステップ
をさらに含む、請求項1に記載の方法。
【請求項９】
前記被観測モジュールが異常に挙動しているとの決定に応答して、前記観測器モジュールの各々によってアクションを取るステップが、前記観測器モジュールの各々によって観測されるそれぞれの前記挙動に基づいて、前記観測器モジュールの各々によってアクションを取るステップを含む、請求項8に記載の方法。
【請求項１０】
前記観測器モジュールの各々によってアクションを取るステップが、前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の数、前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の1つまたは複数のタイプ、前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の持続時間、および前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の複雑度のうちの1つまたは複数に基づく、請求項9に記載の方法。
【請求項１１】
前記観測器モジュールの各々によって、前記被観測モジュールの前記挙動に基づく挙動表現を生成するステップが、前記観測器モジュールの各々によって、前記被観測モジュールの前記挙動に基づく挙動ベクトルを生成するステップを含み、
前記観測器モジュールの各々によって、前記挙動表現を前記被観測モジュールのための挙動分類器モデルに適用するステップが、前記観測器モジュールの各々によって、前記挙動ベクトルを前記被観測モジュールのための挙動分類器モデルに適用するステップを含む、
請求項1に記載の方法。
【請求項１２】
コンピューティングデバイスであって、
動作を実行するためのプロセッサ実行可能命令で構成されたプロセッサを含み、前記動作が、
前記コンピューティングデバイスの被観測モジュールの挙動を観測するステップと、
前記被観測モジュールの前記挙動に基づく挙動表現を生成するステップと、
前記挙動表現を前記被観測モジュールのための挙動分類器モデルに適用するステップと、
アグリゲートされた分類を生成するために、前記プロセッサおよび複数の観測器モジュールの各々によって決定された前記被観測モジュールの挙動の分類をアグリゲートするステップと、
前記被観測モジュールが異常に挙動しているかどうかを決定するステップと
を含む、コンピューティングデバイス。
【請求項１３】
前記プロセッサが、前記コンピューティングデバイスが前記複数の観測器モジュールによって観測される挙動とは異なる前記被観測モジュールの挙動を観測するような動作を実行するためのプロセッサ実行可能命令で構成される、請求項12に記載のコンピューティングデバイス。
【請求項１４】
前記プロセッサが、前記プロセッサおよび複数の観測器モジュールの各々によって決定される前記被観測モジュールの挙動の分類をアグリゲートするステップが、前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの観点に基づいて前記プロセッサおよび前記観測器モジュールの各々からの分類に重み付けするステップを含むような動作を実行するためのプロセッサ実行可能命令で構成される、請求項12に記載のコンピューティングデバイス。
【請求項１５】
前記プロセッサが、前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの前記観点が、前記プロセッサおよび前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の数を含むような動作を実行するためのプロセッサ実行可能命令で構成される、請求項14に記載のコンピューティングデバイス。
【請求項１６】
前記プロセッサが、前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの前記観点が、前記プロセッサおよび前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の1つまたは複数のタイプを含むような動作を実行するためのプロセッサ実行可能命令で構成される、請求項14に記載のコンピューティングデバイス。
【請求項１７】
前記プロセッサが、前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの前記観点が、前記プロセッサおよび前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の持続時間を含むような動作を実行するためのプロセッサ実行可能命令で構成される、請求項14に記載のコンピューティングデバイス。
【請求項１８】
前記プロセッサが、前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの前記観点が、前記プロセッサおよび前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の複雑度を含むような動作を実行するためのプロセッサ実行可能命令で構成される、請求項14に記載のコンピューティングデバイス。
【請求項１９】
前記プロセッサが、
前記被観測モジュールが異常に挙動しているとの決定に応答してアクションを取るステップ
をさらに含む動作を実行するためのプロセッサ実行可能命令で構成される、請求項12に記載のコンピューティングデバイス。
【請求項２０】
前記プロセッサが、前記被観測モジュールが異常に挙動しているとの決定に応答してアクションを取るステップが、前記観測された挙動に基づいてアクションを取るステップを含むような動作を実行するためのプロセッサ実行可能命令で構成される、請求項19に記載のコンピューティングデバイス。
【請求項２１】
前記プロセッサが、前記観測された挙動に基づいてアクションを取るステップが、前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の数、前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の1つまたは複数のタイプ、前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の持続時間、および前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の複雑度のうちの1つまたは複数に基づくような動作を実行するためのプロセッサ実行可能命令で構成される、請求項20に記載のコンピューティングデバイス。
【請求項２２】
前記観測器モジュールの各々によって、前記被観測モジュールの前記挙動に基づく挙動表現を生成するステップが、前記観測器モジュールの各々によって、前記被観測モジュールの前記挙動に基づく挙動ベクトルを生成するステップを含み、
前記観測器モジュールの各々によって、前記挙動表現を前記被観測モジュールのための挙動分類器モデルに適用するステップが、前記観測器モジュールの各々によって、前記挙動ベクトルを前記被観測モジュールのための挙動分類器モデルに適用するステップを含む、
請求項12に記載のコンピューティングデバイス。
【請求項２３】
システム内のプロセッサにモジュール間挙動検証の動作を実行させるように構成されたプロセッサ実行可能ソフトウェア命令を記憶した非一時的プロセッサ可読記憶媒体であって、前記動作が、
前記システムの被観測モジュールの挙動を観測するステップと、
前記被観測モジュールの前記挙動に基づく挙動表現を生成するステップと、
前記挙動表現を前記被観測モジュールのための挙動分類器モデルに適用するステップと、
アグリゲートされた分類を生成するために、前記プロセッサおよび複数の観測器モジュールの各々によって決定された前記被観測モジュールの挙動の分類をアグリゲートするステップと、
前記被観測モジュールが異常に挙動しているかどうかを決定するステップと
を含む、非一時的プロセッサ可読記憶媒体。
【請求項２４】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、前記プロセッサに、前記プロセッサが前記複数の観測器モジュールによって観測される挙動とは異なる前記被観測モジュールの挙動を観測するような動作を実行させるように構成される、請求項23に記載の非一時的プロセッサ可読記憶媒体。
【請求項２５】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、前記プロセッサに、前記プロセッサおよび複数の観測器モジュールの各々によって決定される前記被観測モジュールの挙動の分類をアグリゲートするステップが、前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの観点に基づいて前記プロセッサおよび前記観測器モジュールの各々からの分類に重み付けするステップを含むような動作を実行させるように構成される、請求項23に記載の非一時的プロセッサ可読記憶媒体。
【請求項２６】
前記プロセッサが、前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの前記観点が、前記プロセッサおよび前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の数、前記プロセッサおよび前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の1つまたは複数のタイプ、前記プロセッサおよび前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の持続時間、ならびに前記プロセッサおよび前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の複雑度のうちの1つまたは複数を含むような動作を実行するためのプロセッサ実行可能命令で構成される、請求項25に記載の非一時的プロセッサ可読記憶媒体。
【請求項２７】
システム内のプロセッサであって、
前記システムの被観測モジュールの挙動を観測するための手段と、
前記被観測モジュールの前記挙動に基づく挙動表現を生成するための手段と、
前記挙動表現を前記被観測モジュールのための挙動分類器モデルに適用するための手段と、
アグリゲートされた分類を生成するために、前記システム内の前記プロセッサおよび複数の観測器モジュールの各々によって決定された前記被観測モジュールの挙動の分類をアグリゲートするための手段と、
前記被観測モジュールが異常に挙動しているかどうかを決定するための手段と
を含むプロセッサ。
【請求項２８】
前記プロセッサが、前記複数の観測器モジュールによって観測される挙動とは異なる前記被観測モジュールの挙動を観測する、請求項27に記載のプロセッサ。
【請求項２９】
前記プロセッサおよび複数の観測器モジュールの各々によって決定される前記被観測モジュールの挙動の分類をアグリゲートするための手段が、前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの観点に基づいて前記プロセッサおよび前記観測器モジュールの各々からの分類に重み付けするための手段を含む、請求項27に記載のプロセッサ。
【請求項３０】
前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの前記観点が、前記プロセッサおよび前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の数、前記プロセッサおよび前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の1つまたは複数のタイプ、前記プロセッサおよび前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の持続時間、ならびに前記プロセッサおよび前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の複雑度のうちの1つまたは複数を含む、請求項29に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
モジュール間挙動検証のためのシステム、方法、およびデバイスに関する。
【背景技術】
【０００２】
ポータブル電子機器、コンピューティングデバイス、および通信デバイスの普及により、人々が生活し、働き、遊ぶ環境が根本的に変わった。ポータブルデバイスは現在、情報、リソース、および通信に対するかつてないレベルのアクセスをユーザに提供する、多岐にわたる機能およびサービスを提供している。車両およびアプライアンスなどの一般的に使用されるツールは、組込み型または一体型電子システムをますます含むようになっている。さらに、ロケーションの物理セキュリティ、患者の状態、子どもの安全、および機械類の物理条件を監視するなどの重要なタスクを実行するために、機密情報(たとえば、クレジットカード情報、連絡先など)を記憶および処理するために、ならびに、セキュリティが重要であるタスクを達成するために(たとえば、商品を購入する、機密通信を送受信する、請求書の支払いをする、銀行口座を管理する、および他の機密取引を行うために)、ますます電子デバイスに依存するようになっている。
【０００３】
このようにして、電子デバイスおよびアプライアンスは複雑な電子システムへと進化し、今では通常、複雑なソフトウェアアプリケーションを実行することが可能な、いくつかの強力なプロセッサ、大容量メモリ、および他のリソースを含む。これらの複雑な電子システムは、単独でおよび他のシステム構成要素と組み合わせての両方で様々なタスクを実行するための1つまたは複数の処理モジュールを各々が備えた、複数のモジュールまたは構成要素を含み得る。そのような電子システムの重要性の増大により、誤動作および悪意のある攻撃に対してシステム完全性を維持することがますます重要になっている。
【発明の概要】
【課題を解決するための手段】
【０００４】
様々な実施形態のシステム、方法、およびデバイスは、1つまたは複数のコンピューティングデバイスがモジュール間挙動検証を実行することを可能にする。様々な態様は、システムの複数の観測器モジュールによって、システムの被観測モジュールの挙動(すなわち、1つまたは複数の挙動)を観測するステップと、観測器モジュールの各々によって、被観測モジュールの挙動に基づく挙動表現を生成するステップと、観測器モジュールの各々によって、挙動表現を被観測モジュールのための挙動分類器モデルに適用するステップと、アグリゲートされた分類を生成するために、観測器モジュールの各々によって、観測器モジュールの各々によって決定された被観測モジュールの挙動の分類をアグリゲートするステップと、アグリゲートされた分類に基づいて、被観測モジュールが異常に挙動しているかどうかを決定するステップとを含み得る。
【０００５】
いくつかの態様では、観測器モジュールの各々は、被観測モジュールの異なる挙動を観測し得る。いくつかの態様では、観測器モジュールによって、観測器モジュールの各々によって決定された被観測モジュールの挙動の分類をアグリゲートするステップは、被観測モジュールの挙動に対する各観測器モジュールの観点(Perspective)に基づいて、観測器モジュールの各々からの分類に重み付けするステップを含み得る。
【０００６】
いくつかの態様では、被観測モジュールの挙動に対する各観測器モジュールの観点は、観測器モジュールの各々によって観測される被観測モジュールの挙動の数を含み得る。いくつかの態様では、被観測モジュールの挙動に対する各観測器モジュールの観点は、観測器モジュールの各々によって観測される被観測モジュールの挙動の1つまたは複数のタイプを含み得る。いくつかの態様では、被観測モジュールの挙動に対する各観測器モジュールの観点は、観測器モジュールの各々による被観測モジュールの挙動の観測の持続時間を含み得る。いくつかの態様では、被観測モジュールの挙動に対する各観測器モジュールの観点は、観測器モジュールの各々による被観測モジュールの挙動の観測の複雑度を含み得る。
【０００７】
いくつかの態様は、被観測モジュールが異常に挙動しているとの決定に応答して、観測器モジュールの各々によってアクションを取るステップをさらに含み得る。いくつかの態様では、被観測モジュールが異常に挙動しているとの決定に応答して、観測器モジュールの各々によってアクションを取るステップは、観測器モジュールの各々によって観測されるそれぞれの挙動に基づいて、観測器モジュールの各々によってアクションを取るステップを含み得る。いくつかの態様では、観測器モジュールの各々によってアクションを取るステップは、観測器モジュールの各々によって観測される被観測モジュールの挙動の数、観測器モジュールの各々によって観測される被観測モジュールの挙動の1つまたは複数のタイプ、観測器モジュールの各々による被観測モジュールの挙動の観測の持続時間、および観測器モジュールの各々による被観測モジュールの挙動の観測の複雑度のうちの1つまたは複数に基づき得る。
【０００８】
いくつかの態様では、観測器モジュールの各々によって、被観測モジュールの挙動に基づく挙動表現を生成するステップは、観測器モジュールの各々によって、被観測モジュールの挙動に基づく挙動ベクトルを生成するステップを含み得、観測器モジュールの各々によって、挙動表現を被観測モジュールのための挙動分類器モデルに適用するステップは、観測器モジュールの各々によって、挙動ベクトルを被観測モジュールのための挙動分類器モデルに適用するステップを含み得る。
【０００９】
様々な態様は、上記で説明した実施形態方法の動作を実行するためのプロセッサ実行可能命令で構成されたプロセッサを含むコンピューティングデバイスを含み得る。様々な態様は、上記で説明した実施形態方法の動作をプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を記憶した非一時的プロセッサ可読記憶媒体を含み得る。様々な態様は、上記で説明した実施形態方法の動作の機能を実行するための手段を含む、システム(たとえば、コンピューティングデバイスシステムまたはコンピューティングデバイスのシステム)内のプロセッサを含み得る。
【００１０】
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、例示的な態様を示し、上記の概略的な説明および下記の詳細な説明とともに、様々な態様の特徴を説明するのに役立つ。
【図面の簡単な説明】
【００１１】
【図１Ａ】様々な態様を実装するのに適した例示的なシステムオンチップのアーキテクチャ図である。
【図１Ｂ】様々な態様を実装するのに適した車両システムの論理構成要素を示す構成要素ブロック図である。
【図１Ｃ】様々な態様を実装するのに適した無人航空機システムの論理構成要素を示す構成要素ブロック図である。
【図２】様々な態様を実装するために使用され得る挙動特徴づけシステムにおける例示的な論理構成要素および情報フローを示すブロック図である。
【図３】モジュール間挙動検証のための態様方法を示すプロセスフロー図である。
【図４】モジュール間挙動検証のための態様方法を示すプロセスフロー図である。
【図５】様々な態様とともに使用するのに適した例示的なモバイルデバイスの構成要素ブロック図である。
【発明を実施するための形態】
【００１２】
添付の図面を参照しながら、様々な態様について詳細に説明する。可能な場合はいつでも、同じまたは同様の部分を指すために、図面全体を通して同じ参照番号が使用される。特定の例および実装形態に対してなされる参照は、説明を目的としており、様々な態様の範囲または特許請求の範囲を限定するものではない。
【００１３】
様々な態様は、システム中の各他のモジュールを監視する各モジュールによって、システム中の様々な通信リンクを介して一緒に接続された複数のコンピューティングモジュール(たとえば、プロセッサ、SoC、コンピューティングデバイス)の挙動を継続的に監視および分析し、結果および/または結論をシステム中のその他のモジュールと共有し、モジュールの各々の観測と分析の組合せに基づいて、被観測モジュールにおける挙動異常を決定する方法、ならびに、それらの方法を実装するように構成されたコンピューティングデバイスおよびシステムを含む。様々な態様は、互いと通信するいくつかのプログラマブルプロセッサを含む任意のシステムにおいて実装され得る。そのようなプロセッサは、アプリケーションプロセッサなどの汎用プロセッサ、ならびに、モバイル通信デバイス内のモデムプロセッサ、デジタル信号プロセッサ(DSP)、およびグラフィックスプロセッサなどの専用プロセッサであり得る。様々な態様はまた、自動車内の様々なコンピューティングデバイスおよび専用プロセッサの中など、システムのシステム内で実装され得る。説明しやすいように、様々な態様を実装する様々なタイプのコンピューティングデバイスおよびプロセッサは、概して「モジュール」と呼ばれる。さらに、「観測モジュール」という用語は、監視動作を実行するモジュールを指すために使用され、「被観測モジュール」という用語は、観測されているモジュールを指すために使用される。ほとんどまたはすべてのモジュールは、コンピューティングシステム中のほとんどまたはすべての他のモジュールを観測するので、システム中の任意のモジュールは、観測モジュールと被観測モジュールの両方であり得る。
【００１４】
「コンピューティングデバイス」および「モバイルデバイス」という用語は、本明細書では、セルラー電話、スマートフォン、パーソナルまたはモバイルマルチメディアプレーヤ、携帯情報端末(PDA)、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、ウルトラブック、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応セルラー電話、ワイヤレスゲームコントローラ、および、メモリと、プログラマブルプロセッサと、RFセンサーとを含む同様のパーソナル電子デバイスのうちのいずれか1つまたはすべてを指すために互換的に使用される。
【００１５】
「構成要素」、「システム」などの用語は、本明細書では、限定はしないが、特定の動作または機能を実行するように構成された、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなどのコンピュータ関連エンティティを指すために使用される。たとえば、構成要素は、限定はしないが、プロセッサ上で動作しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得る。例として、通信デバイス上で動作しているアプリケーションと通信デバイスの両方が、構成要素と呼ばれることがある。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在する場合があり、構成要素は、1つのプロセッサもしくはコア上に局在する場合があり、および/または2つ以上のプロセッサもしくはコアの間で分散される場合がある。加えて、これらの構成要素は、様々な命令および/またはデータ構造を記憶した様々な非一時的コンピュータ可読媒体から実行することができる。構成要素は、ローカルおよび/またはリモートプロセス、関数呼出しまたはプロシージャ呼出し、電子信号、データパケット、メモリ読取り/書込み、ならびに他の知られているコンピュータ、プロセッサ、および/またはプロセス関連の通信方法によって通信することができる。
【００１６】
システムは、複数のモジュールを含み得る。たとえば、システムは、各々がモジュールと見なされる、アプリケーションプロセッサ(AP)、モデムプロセッサ、グラフィックス処理ユニット(GPU)、およびデジタル信号プロセッサ(DSP)を含み得る。各モジュールは、(たとえば、通信バスを介して)各他のモジュールと対話することができ、各モジュールは、各他のモジュールの挙動を独立して観測および分析することができる。したがって、上記で説明したように、各モジュールは、「観測器モジュール」と「被観測モジュール」の両方であり得る。言い換えれば、各モジュールは、挙動分析システムの構成要素として機能することができる。
【００１７】
その他のモジュールとの各モジュールの対話は、異なる量および品質の対話を含み得る。各モジュール(たとえば、AP、GPU、およびDSP)は、システムにおいておよび/またはそのようなシステム上で動作しているアプリケーションに基づいて異なる機能を実行することを課される場合がある。たとえば、APはGPUおよびDSPと異なるように対話する場合があるが、GPUおよびDSPは限られた様式で対話する場合がある。したがって、AP、GPU、およびDSPは各々、その他の2つのモジュールの異なる挙動を観測する場合がある。したがって、異なる観測器モジュールは、被観測モジュールから少なくともいくつかの異なる挙動を観測する場合がある。各観測器モジュールによって観測される挙動は、少なくとも部分的に重複する場合もある。
【００１８】
各観測器モジュールは、その観測を分析し、被観測モジュールの分析結果を独立して生成することができる。被観測モジュールの独立した分析は、各モジュールにおいて(たとえば、各観測器モジュールごとに独立して)組み合わされてもよく、システムまたは各モジュールは、組み合わされた観測に基づいて、特定のモジュールが異常に挙動している(たとえば、誤動作している、またはマルウェアによって損なわれている)かどうかを独立して決定してもよい。
【００１９】
いくつかの態様では、各観測器モジュールは、被観測モジュールが異常に挙動しているという決定をその他の観測器モジュールと共有してもよい。したがって、一緒に動作する観測器モジュールとして機能するモジュールの各々は、コンピューティングシステム中のモジュールの各々のアンサンブル分類器として働くことができる。
【００２０】
被観測モジュールが異常に挙動しているという決定は、その他のモジュール(観測器モジュール)の各々の観測の重み付き平均に基づいて行われ得る。そのような重み付き平均は、組み合わされた観測が異常挙動のレベルに達するかどうかを決定するために、しきい値と比較され得る。一例として、各モジュールの結論に割り当てられる重みは、観測器モジュールと被観測モジュールとの間の対話の程度に依存し得る。対話の程度は、対話の量および/または対話のタイプを含み得る。したがって、たとえば、モデムプロセッサおよびGPUは(たとえば、特定のシステムにおいて、または特定のアプリケーションによって命令されたとおりに)対話することはまれであるので、モデムプロセッサによるGPUの観測は、より小さく重み付けされることがあるが、モデムによるDSPの観測(すなわち、同じシステムおよび/またはアプリケーションにおける)は、モデムプロセッサおよびDSPが定期的に対話する場合、より大きく重み付けされることがある。代替的にまたは追加として、被観測モジュールが異常に挙動しているという決定は、被観測モジュールを観測しているモジュール(すなわち、観測器モジュール)の各々の投票に基づいて行われ得、観測器モジュールの各々のアグリゲート投票は、アンサンブル分類をもたらし得る。
【００２１】
いくつかの態様では、各被観測モジュールのモデルは、各観測器モジュールにロードされるか、または各観測器モジュールに与えられ得る。言い換えれば、システム中の各モジュールには、システム内の各他のモジュール用に一意に構成され得る挙動分析モデルがプロビジョニングされ得る。次いで、各観測器モジュールは、被観測モジュールのそのモデルを、被観測モジュールとの観測器モジュールの対話を特徴づけるモデルの特徴に基づいて適応させ、調整し、またはカスタマイズすることができる。各観測器モジュールは、被観測モジュールとの観測器モジュールの対話に基づいて、被観測モジュールを独立して分析することもできる。この場合も、各モジュールはシステム中のあらゆる他のモジュールを観測し得るので、別の被観測モジュールを観測する1つの観測器モジュールへの言及は、ここでは、一態様を実装するシステム中の多くの観測器/被観測の関係のうちの1つだけを説明するものとする。
【００２２】
いくつかの態様では、様々なモジュール内で実装される挙動分析システムが、モジュールが異常に挙動していると決定したとき、各観測器モジュールは、そのモジュールとの各観測器モジュールの対話に基づいて、異なるアクションを取ることができる。たとえば、モデムプロセッサは、APによるモデムの機能へのアクセスを制限することができるが、GPUは、APが異常に挙動しているという警報を表示することができる。別の例として、モデムプロセッサは、異常に挙動していると決定されたGPUに対していかなるアクションも取らないことがあるが、APは、GPUとの対話を、すべてではないとしてもほとんど制限することができる。
【００２３】
各モジュールは、挙動観測器モジュールおよび挙動分析器モジュールを含み得る挙動分析機能で構成され得る。挙動観測器モジュールは、各被観測モジュール(たとえば、被観測モジュールイベント、状態変化など)の挙動(たとえば、アクティビティ、条件、動作、およびイベント)を監視するために、他のモジュールとの対話の挙動(たとえば、メッセージング、命令、メモリアクセス、要求、データ変換、および他のモジュール挙動)を観測するように構成され得る。挙動観測器モジュールは、被観測モジュールに関係する挙動情報を収集することができ、収集された情報を、いくつかの態様では挙動ベクトルであり得る挙動表現の形態でメモリに(たとえば、ログファイルなどに)記憶することができる。様々な態様では、分析器モジュールは、被観測モジュールの挙動を評価するために、被観測モジュール挙動を特徴づけるために、および、被観測モジュールが異常に挙動していることを被観測モジュール挙動が示すかどうかを決定するために、生成された挙動表現を1つまたは複数の分類器モデルと比較することができる。
【００２４】
各挙動表現は、1つまたは複数の特徴を含むかまたはカプセル化するデータ構造または情報構造であり得る。いくつかの態様では、挙動表現は挙動ベクトルであり得る。挙動ベクトルは、観測モジュールによって観測される被観測モジュール挙動の全部または一部分を表す抽象的な数またはシンボル(すなわち、特徴)を含み得る。各特徴は、可能な値の範囲、それらの値に対して実行され得る動作、値の意味、および他の同様の情報を識別するデータタイプに関連付けられ得る。データタイプは、対応する特徴(または特徴値)がどのように測定され、分析され、重み付けられ、または使用されるべきかを決定するために、観測モジュールによって使用され得る。
【００２５】
挙動表現が挙動ベクトルである態様では、観測器モジュールは、観測器リアルタイムデータをn次元空間にマッピングする、サイズ「n」の挙動ベクトルを生成するように構成され得る。挙動ベクトルの中の各数またはシンボル(すなわち、ベクトルによって記憶された「n」個の値の各々)は、特徴の値を表し得る。観測器モジュールは、各被観測モジュールの挙動を評価するために、(たとえば、挙動ベクトルを様々な被観測モジュールのモデルに適用することによって)挙動ベクトルを分析することができる。いくつかの態様では、観測器モジュールは、すべての観測された挙動の挙動スコアを、たとえば、平均挙動スコア、重み付き平均挙動スコア、または別のアグリゲーションに組み合わせるかまたはアグリゲートすることもできる。いくつかの態様では、観測された挙動の特徴に基づいて、1つまたは複数の重みが選択され得る。
【００２６】
一態様では、観測器モジュールは、被観測モジュールのモデルを記憶するように構成され得る。被観測モジュールのモデルは、被観測モジュールが異常に挙動していることを示し得る被観測モジュールの観測可能な挙動の1つまたは複数の特徴を識別することができる。いくつかの態様では、被観測モジュール挙動のモデルは、クラウドサーバまたはネットワークに記憶され、多数のデバイスのモジュールにわたって共有され、定期的にまたはオンデマンドで各観測モジュールに送られ、被観測モジュールの観測された挙動に基づいて、観測モジュールにおいてカスタマイズされ得る。被観測モジュール挙動の1つまたは複数のモデルは、分類器モデルであり得るか、または分類器モデルに含まれ得る。いくつかの態様では、挙動分析システムは、被観測モジュール挙動から抽出される特徴の粒度を変更するために、挙動ベクトルのサイズを調整することができる。
【００２７】
分類器モデルは、観測されるリアルタイムデータの特徴(たとえば、特定の因子、データポイント、エントリ、API、状態、条件、挙動、ソフトウェアアプリケーション、プロセス、動作、および/または構成要素など)を迅速におよび効率的にテストまたは評価するためにデバイスプロセッサによって使用され得る、データ、エントリ、決定ノード、決定基準、および/または情報構造を含む挙動モデルであり得る。分類器モデルは、より大きいまたはより小さいデータセットを含んでもよく、そのサイズは、挙動表現を分類器モデルに適用するのに要求される処理の量に影響を及ぼす場合がある。たとえば、「フル」分類器モデルは、たとえば、数千の特徴および数十億のエントリを含み得る大きいトレーニングデータセットの関数として生成され得る、大規模でロバストなデータモデルであり得る。別の例として、「リーン」分類器モデルは、特定の被観測モジュールの挙動を決定し、特徴づけることに最も関連がある特徴/エントリに対するテストを含むかまたは優先する縮小されたデータセットから生成される、より集中的なデータモデルであり得る。いくつかの態様では、挙動分析システムは、挙動表現を分析するために使用される分類器モデルのロバストネスおよび/またはサイズを変更することができる。
【００２８】
ローカル分類器モデルは、観測器モジュールにおいて生成されるリーン分類器モデルであり得る。モデルが使用される観測器モジュールにおいて分類器モデルを生成することによって、様々な態様は、各観測モジュールが、特定の観測モジュールによって観測可能な特定の挙動のうちの特定の被観測モジュールの挙動を決定し、特徴づける際に最も重要である特定の特徴を正確に識別することを可能にする。これらの態様はまた、各観測モジュールが、分類器モデルにおける特徴を、被観測モジュールの挙動を分類することに対するその相対的重要度に従って正確に優先することを可能にする。
【００２９】
生成された挙動表現と1つまたは複数の分類器モデルの比較に基づいて、各観測器モジュールの挙動分析システムはアクションを開始することができる。いくつかの態様では、各観測器モジュールのアクションは、観測器モジュールと被観測モジュールとの間の対話の量および/または品質に応じて異なり得る。
【００３０】
様々な態様は、シングルプロセッサシステムおよびマルチプロセッサシステム、ならびにシステムオンチップ(SOC)を含む、いくつかの異なるコンピューティングデバイスにおいて実装され得る。図1Aは、様々な態様を実装するコンピューティングデバイスおよびシステムにおいて使用され得る例示的なSOC100Aアーキテクチャを示すアーキテクチャ図である。SOC100Aは、デジタル信号プロセッサ(DSP)102、モデムプロセッサ104、グラフィックスプロセッサ106、およびアプリケーションプロセッサ108などの、いくつかの異種プロセッサを含み得る。SOC100Aは、異種プロセッサ102、104、106、108のうちの1つまたは複数に接続された1つまたは複数のコプロセッサ110(たとえば、ベクトルコプロセッサ)も含み得る。各プロセッサ102、104、106、108、110は、1つまたは複数のコアを含むことがあり、各プロセッサ/コアは、その他のプロセッサ/コアとは無関係に動作を実行することがある。たとえば、SOC100Aは、第1のタイプのオペレーティングシステム(たとえば、FreeBSD、LINUX、OS Xなど)を実行するプロセッサと、第2のタイプのオペレーティングシステム(たとえば、Microsoft Windows 8)を実行するプロセッサとを含み得る。
【００３１】
各プロセッサ102、104、106、108、110は、その他のプロセッサの挙動を観測し、各観測された他のプロセッサの分析結果を独立して生成するように構成され得る、小規模のソフトウェアアプリケーション102a、104a、106a、108aを含み得るか、またはそれらを備え得る。各プロセッサは、(たとえば、通信バス124を介して)各他のプロセッサと対話することができ、各プロセッサは、各他のプロセッサの挙動を独立して観測および分析することができる。
【００３２】
SOC100Aは、センサーデータ、アナログデジタル変換、ワイヤレスデータ送信を管理し、ゲームおよび映画用の符号化されたオーディオ信号の処理などの他の特殊な動作を実行するためのアナログ回路構成およびカスタム回路構成114も含み得る。SOC100Aは、電圧調整器、発振器、位相ロックループ、周辺ブリッジ、データコントローラ、メモリコントローラ、システムコントローラ、アクセスポート、タイマー、ならびに、コンピューティングデバイス上で動作しているプロセッサおよびクライアントをサポートするために使用される他の同様の構成要素などの、システム構成要素およびリソース116をさらに含み得る。システム構成要素116およびカスタム回路構成114は、カメラ、電子ディスプレイ、ワイヤレス通信デバイス、外部メモリチップなどの周辺デバイスとインターフェースする回路構成を含み得る。プロセッサ102、104、106、および108は、相互接続/バスモジュール124を介して1つまたは複数のメモリ要素112、システム構成要素およびリソース116、ならびにカスタム回路構成114に相互接続されてもよく、相互接続/バスモジュール124は、再構成可能な論理ゲートのアレイを含むおよび/またはバスアーキテクチャ(たとえば、CoreConnect、AMBAなど)を実装することができる。通信は、高性能ネットワークオンチップ(NoC)などの高度な相互接続によって提供されてもよい。
【００３３】
SOC100Aは、クロック118および電圧調整器120など、SOCの外部のリソースと通信するための入力/出力モジュール(図示せず)をさらに含み得る。SOCの外部のリソース(たとえば、クロック118、電圧調整器120)は、内部SOCプロセッサ/コア(たとえば、DSP102、モデムプロセッサ104、グラフィックスプロセッサ106、アプリケーションプロセッサ108など)のうちの2つ以上によって共有され得る。
【００３４】
SOC100Aは、スピーカー、ユーザインターフェース要素(たとえば、入力ボタン、タッチスクリーンディスプレイなど)、マイクロフォンアレイ、物理条件(たとえば、ロケーション、方向、動き、方位、振動、圧力など)を監視するためのセンサー、カメラ、コンパス、GPS受信機、通信回路構成(たとえば、Bluetooth(登録商標)、WLAN、Wi-Fiなど)、および現代の電子デバイスの他のよく知られている構成要素(たとえば、加速度計など)を含む、センサーからセンサーデータを収集するのに適したハードウェア構成要素および/またはソフトウェア構成要素も含み得る。
【００３５】
上記で説明したSOC100Aに加えて、様々な態様は、単一のプロセッサ、複数のプロセッサ、マルチコアプロセッサ、またはそれらの任意の組合せを含み得る、多種多様なコンピューティングシステムおよびコンピューティングデバイスのシステムにおいて実装され得る。たとえば、車両システムは、1つまたは複数の電子制御ユニット(ECU)を含み得る。
【００３６】
図1Bは、有人車両システム100Bの構成要素ブロック図である。車両システムは、インフォテインメントシステムモジュール130と、環境システムモジュール132(たとえば、空調システム)と、ナビゲーションシステムモジュール134と、ボイス/データ通信モジュール136と、エンジン制御モジュール138と、ペダルモジュール140と、トランスミッション制御モジュール142とを含み得る。環境システムモジュール132は、車両内の環境条件についての情報を提供し得る環境センサー132aと通信することができる。インフォテインメントシステムモジュール130およびボイス/データ通信モジュール136は、車両内の音を受信および/または生成するためにスピーカー/マイクロフォン130aと通信することができる。ナビゲーションシステムモジュール134は、ナビゲーション情報を表示するためにディスプレイ134aと通信することができる。上述のモジュールは例示的なものにすぎず、挙動システムは、明快にするために図示していない、1つまたは複数の追加のモジュールを含み得る。そのような追加のモジュールは、計装機器、エアバッグ、クルーズコントロール、他のエンジンシステム、安定制御、駐車システム、タイヤ圧監視、アンチロックブレーキ、アクティブサスペンション、バッテリーレベルおよび/または管理、ならびに様々な他のモジュールを含む、車両システムの追加の他の機能に関連するモジュールを含み得る。各モジュール130〜142は、ワイヤード通信リンク(たとえば、コントローラエリアネットワーク(CAN)プロトコル準拠バス、ユニバーサルシリアルバス(USB)接続、Firewire(登録商標)接続など)および/またはワイヤレス通信リンク(たとえば、Wi-Fi(登録商標)リンク、Bluetooth(登録商標)リンク、ZigBee(登録商標)リンク、ANT+(登録商標)リンクなど)を含み得る1つまたは複数の通信リンクを介して、1つまたは複数の他のモジュールと通信することができる。
【００３７】
各モジュール130〜142は、少なくとも1つのプロセッサと少なくとも1つのメモリと(図示せず)を含み得る。各モジュールのメモリは、その他のモジュールの挙動を観測し、各観測された他のモジュールの分析結果を独立して生成するように構成され得るソフトウェアアプリケーションを含む、プロセッサ実行可能命令および他のデータを記憶することができる。各モジュールは、(たとえば、通信リンクを介して)各他のプロセッサと対話することができ、各モジュールは、各他のモジュールの挙動を独立して観測および分析することができる。
【００３８】
やはり様々な態様が実装され得るシステムの別の例として、図1Cは、無人航空機システム100Cの構成要素ブロック図である。無人航空機システムは、アビオニクスモジュール150と、GPS/NAVモジュール152と、ジャイロ/加速度計モジュール154と、モーター制御モジュール156と、カメラモジュール158と、RFトランシーバモジュール160と、1つまたは複数のペイロードモジュール164と、1つまたは複数の着陸センサーモジュール166と、センサー制御モジュール168とを含み得る。上述のモジュール150〜168は例示的なものにすぎず、無人航空機システムは、様々な追加または代替のモジュールを含み得る。モジュール150〜168の各々は、ワイヤードまたはワイヤレス通信リンクを含み得る1つまたは複数の通信リンクを介して、1つまたは複数の他のモジュールと通信することができる。
【００３９】
アビオニクスモジュール150、ジャイロ/加速度計モジュール154、およびGPS/NAVモジュールは各々、無人航空機システムの飛行動作および他の動作を制御するためのプロセッサ実行可能命令で構成され得る。センサーモジュール168は、カメラモジュール158、着陸センサーモジュール166、および/またはペイロードモジュール164などの1つまたは複数のセンサーからの入力を受信するためのプロセッサ実行可能命令で構成され得る。モーター制御モジュール156は、無人航空機システムの1つまたは複数のモーターから情報を受信し、それらのモーターに命令を与えることができる。RFトランシーバモジュール160は、無人航空機システムがワイヤレス通信リンク172を介して制御システム170と通信することを可能にするために、アンテナ160aと通信することができる。ペイロードモジュール164は、無人航空機システムに結合されるかまたは設けられる場合がある1つまたは複数のペイロードモジュールから情報を受信し、それらのペイロードモジュールに命令を与えることができる。
【００４０】
各モジュール150〜168は、少なくとも1つのプロセッサと少なくとも1つのメモリと(図示せず)を含み得る。各モジュールのメモリは、その他のモジュールの挙動を観測し、各観測された他のモジュールの分析結果を独立して生成するように構成され得るソフトウェアアプリケーションを含む、プロセッサ実行可能命令および他のデータを記憶することができる。各モジュールは、(たとえば、通信リンクを介して)各他のプロセッサと対話することができ、各モジュールは、各他のモジュールの挙動を独立して観測および分析することができる。
【００４１】
図2は、様々な態様による、被観測モジュールの挙動を特徴づけるために挙動分析技法を使用するように構成されたモジュール挙動特徴づけシステム220を含む態様モジュール200における例示的な論理構成要素および情報フローを示す。図2に示す例では、モジュールは、挙動観測器モジュール202と、特徴抽出器モジュール204と、分析器モジュール206と、アクチュエータモジュール208と、挙動特徴づけモジュール210とを含む実行可能命令モジュールで構成されたデバイスプロセッサ(たとえば、図1Aのプロセッサ102a、104a、106a、108a、または図1Bのモジュール130〜142のプロセッサ、または図1Cのモジュール150〜168のプロセッサ)を含む。
【００４２】
様々な態様では、挙動特徴づけモジュール210のすべてまたは部分は、挙動観測器モジュール202、特徴抽出器モジュール204、分析器モジュール206、またはアクチュエータモジュール208の一部として実装され得る。モジュール202〜210の各々は、ソフトウェア、ハードウェア、またはそれらの組合せにおいて実装される、スレッド、プロセス、デーモン、モジュール、サブシステム、または構成要素であり得る。様々な態様では、モジュール202〜210は、オペレーティングシステムの部分内(たとえば、カーネル内、カーネル空間中、ユーザ空間中など)で、別個のプログラムもしくはアプリケーション内で、専用ハードウェアバッファもしくはプロセッサ中で、またはそれらの任意の組合せにおいて実装され得る。一態様では、モジュール202〜210のうちの1つまたは複数は、モジュール200の1つまたは複数のプロセッサ上で実行されるソフトウェア命令として実装され得る。
【００４３】
挙動特徴づけモジュール210は、被観測モジュールの挙動を特徴づけ、被観測モジュールの挙動に基づいて少なくとも1つの挙動モデルを生成し、観測された挙動を挙動モデルと比較し、他の観測器モジュールによって行われた、被観測モジュールの挙動およびそれぞれの挙動モデルの比較をアグリゲートし、アグリゲートされた比較に基づいて、被観測モジュールが異常に挙動しているかどうかを決定するように構成され得る。挙動特徴づけモジュール210は、被観測モジュールの挙動を決定するために、挙動観測器モジュール202によって収集された情報を使用することができ、被観測モジュールの挙動を特徴づけるために、そのような情報のいずれかまたはすべてを使用することができる。
【００４４】
挙動観測器モジュール202は、メッセージ、命令、メモリアクセス、要求、データ変換、アクティビティ、条件、動作、イベント、および観測器モジュールと被観測モジュールとの間の通信リンクを介して観測される他のモジュール挙動に基づいて、被観測モジュールの挙動を観測するように構成され得る。
【００４５】
監視される挙動要素の数を管理可能なレベルまで低減するために、一態様では、挙動観測器モジュール202は、被観測モジュールのすべての観測可能な挙動の小さいサブセットである、挙動または因子の初期セットを監視または観測することによって、粗い観測を実行するように構成され得る。いくつかの態様では、挙動観測器モジュール202は、サーバおよび/またはクラウドサービスもしくはネットワークの中の構成要素から挙動および/または因子の初期セットを受信することができる。いくつかの態様では、挙動/因子の初期セットは、機械学習分類器モデルにおいて指定され得る。
【００４６】
挙動観測器モジュール202は、収集された観測された挙動データを特徴抽出器モジュール204に(たとえば、メモリ書込み動作、関数呼出しなどを介して)通信することができる。特徴抽出器モジュール204は、観測された挙動データを受信するかまたは取り出し、1つまたは複数の挙動表現を生成するためにこの情報を使用するように構成され得る。各挙動表現は、観測された挙動データを値またはベクトルデータ構造で簡潔に記述することができる。挙動表現が挙動ベクトルであるいくつかの態様では、ベクトルデータ構造は一連の数を含むことができ、その各々は、挙動観測器モジュール202によって収集されたリアルタイムデータの部分的なまたは完全な表現を意味する。
【００４７】
いくつかの態様では、特徴抽出器モジュール204は、挙動分析システム(たとえば、分析器モジュール206)がデバイスのリアルタイムセンサーデータを迅速に認識すること、識別すること、または分析することを可能にする識別子として挙動表現が機能するように、挙動表現を生成するように構成され得る。挙動表現が挙動ベクトルである一態様では、特徴抽出器モジュール204は、サイズ「n」の挙動ベクトルを生成するように構成されてもよく、挙動ベクトルの各々は、センサーまたはハードウェアもしくはソフトウェア挙動のリアルタイムデータをn次元空間にマッピングする。一態様では、特徴抽出器モジュール204は、被観測モジュールの挙動を特徴づける挙動データの1つまたは複数の特徴に関するクエリに対する回答を生成するために、挙動特徴づけモジュールの中の特徴/決定ノードに入力され得る情報を含むように挙動表現を生成するように構成され得る。
【００４８】
特徴抽出器モジュール204は、生成された挙動表現を分析器モジュール206に(たとえば、メモリ書込み動作、関数呼出しなどを介して)通信することができる。分析器モジュール206は、被観測モジュールの観測された挙動を、たとえば、正常な動作パラメータ内として、または異常として特徴づけるために、挙動表現を分類器モジュールに適用するように構成され得る。加えて、挙動分析器モジュール206は、被観測モジュールの挙動を特徴づけるために、挙動表現を分類器モジュールに適用するように構成され得る。
【００４９】
各分類器モデルは、観測された挙動データの特定の特徴または態様を評価するために観測モジュールによって(たとえば、観測モジュールの中のプロセッサによって)使用され得るデータおよび/または情報構造(たとえば、特徴表現、挙動ベクトル、構成要素リストなど)を含む挙動モデルであり得る。各分類器モデルは、被観測モジュールにおけるいくつかの特徴、因子、データポイント、エントリ、メッセージ、命令、メモリ呼出し、状態、条件、挙動、プロセス、動作、構成要素など(本明細書ではまとめて「特徴」)を監視するための決定基準も含み得る。分類器モデルは、観測器モジュール上にプレインストールされてもよく、ネットワークサーバからダウンロードもしくは受信されてもよく、観測器モジュールにおいて生成されてもよく、またはそれらの任意の組合せであってもよい。分類器モデルは、挙動モデル化技法、機械学習アルゴリズム、または分類器モデルを生成する他の方法を使用することによって生成され得る。
【００５０】
各分類器モデルは、フル分類器モデルまたはリーン分類器モデルであり得る。フル分類器モデルは、数千の特徴および数十億のエントリを含み得る大きいトレーニングデータセットの関数として生成される、ロバストなデータモデルであり得る。リーン分類器モデルは、観測された挙動データを評価することに最も関連がある特徴/エントリのみを分析またはテストする縮小されたデータセットから生成される、より集中的なデータモデルであり得る。リーン分類器モデルは、被観測モジュールにおいて観測され得る特徴および挙動の総数のサブセットを含む挙動表現を分析するために使用され得る。一例として、モジュールは、フル分類器モデルを受信し、フル分類器に基づいてモジュールにおいてリーン分類器モデルを生成し、挙動表現において収集された被観測モジュール挙動データを評価するために、ローカルに生成されたリーン分類器モデルを使用するように構成され得る。
【００５１】
ローカルに生成されたリーン分類器モデルは、モジュールにおいて生成されるリーン分類器モデルである。各観測器モジュールは、各被観測モジュールと異なるように対話し、したがって、各被観測モジュールの異なる挙動を観測することができるので、異なるリーン分類器モデルは、被観測モジュールごとにシステム中の各観測器モジュールによって開発され得る。さらに、特徴の異なる組合せは、各観測器モジュールが被観測モジュールの挙動を迅速におよび効率的に評価するために、そのモジュールにおいて監視および/または分析され得る。監視および分析を必要とする特徴の正確な組合せ、ならびに各特徴または特徴の組合せの相対的優先度または重要度は、しばしば、特定の観測器モジュールによって特定の被観測モジュールから取得された情報を使用してのみ決定されてもよい。これらおよび他の理由で、様々な態様は、モデルが使用されるモバイルデバイスにおいて分類器モデルを生成し得る。
【００５２】
ローカル分類器モデルは、デバイスプロセッサが、被観測モジュールの挙動を評価するうえで最も重要である特定の特徴を正確に識別することを可能にし得る。ローカル分類器モデルはまた、観測器モジュールが、テストまたは評価される特徴を、被観測モジュールの挙動を評価することに対するその相対的重要度に従って優先することを可能にし得る。
【００５３】
いくつかの態様では、各被観測モジュールに固有の分類器モデルが使用されてもよく、この分類器モデルは、被観測モジュールの挙動を評価することに最も関連があると決定された被観測モジュール固有の特徴/エントリのみを含む/テストする、集中型のデータモデルを含む分類器モデルである。観測器モジュールにおいてローカルに、被観測モジュール固有の分類器モデルを動的に生成することによって、様々な態様は、観測器モジュールが、被観測モジュールの挙動を評価するうえで最も重要である、評価するのに適用可能である、および/または評価することに関連がある少数の特徴に監視および分析動作を集中させることを可能にする。
【００５４】
一態様では、分析器モジュール206は、被観測モジュール挙動の分析が決定的でないときは特に、分析器モジュールが評価する観測される挙動の特徴の粒度または詳細度を調整するように構成され得る。たとえば、分析器モジュール206は、分析器モジュール206が被観測モジュールの挙動を特徴づけることができないとの決定に応答して、挙動観測器モジュール202に通知するように構成され得る。応答して、挙動観測器モジュール202は、分析器モジュール206から送られる通知(たとえば、観測された挙動特徴の分析の結果に基づく通知)に基づいて、監視される因子もしくは挙動を変更するおよび/またはその観測の粒度(すなわち、挙動が観測される詳細度および/または頻度)を調整することができる。
【００５５】
挙動観測器モジュールは、新しいまたは追加の挙動を観測し、新しい/追加の観測された挙動データをさらなる分析/分類のために特徴抽出器モジュール204および分析器モジュール206に送ることもできる。挙動観測器モジュール202と分析器モジュール206との間のそのようなフィードバック通信は、分析器モジュールが、ある範囲の信頼度内まで、または信頼度のしきい値レベルまで、被観測モジュールの挙動を評価し、特徴づけることができるまで、モジュール挙動特徴づけシステム220が観測の粒度を再帰的に増大させる(すなわち、より詳細なおよび/またはより頻繁な観測を行う)か、または観測されるリアルタイムデータを変更することを可能にし得る。そのようなフィードバック通信は、モジュール挙動特徴づけシステム220が、過剰な量の観測器モジュールの処理リソース、メモリリソース、またはエネルギーリソースを消費することなしに、挙動表現および分類器モデルを調整または修正することも可能にし得る。
【００５６】
観測器モジュールは、様々なレベルの複雑度(または「リーンネス」)のリーン分類器モデルのファミリーを生成するために、フル分類器モデルを使用することができる。分析器モジュールが、被観測モジュールの挙動を確実に特徴づけることができないと決定するまで、リーン分類器モデルの最もリーンなファミリー(すなわち、最も少ない数のテスト条件に基づくリーン分類器モデル)がルーチン的に適用されてもよい。そのような決定に応答して、分析器モジュールは、被観測モジュールの挙動の決定的な特徴づけが分析器モジュールによって行われ得るまで、生成されたリーン分類器モデルのファミリー内のこれまで以上にロバストな分類器モデルを使用するためのフィードバック(たとえば、通知または命令)を挙動観測器モジュールおよび/または特徴抽出器モジュールに与えることができる。このようにして、モジュール挙動特徴づけシステム220は、最も完全だがリソース集約的な分類器モデルの使用を、被観測モジュールの挙動を決定的に特徴づけるためにロバストな分類器モデルが必要とされる状況に制限することによって、効率と精度のバランスを取ることができる。
【００５７】
様々な態様では、観測器モジュールは、フル分類器モデルに含まれる観測された挙動データの表現(representation)または発現(expression)をブーストされた決定株に変換することによって、リーン分類器モデルを生成するように構成され得る。観測器モジュールは、フル分類器モデルに含まれるブーストされた決定株のサブセットを含むリーン分類器モデルを生成するために、被観測モジュールの挙動の特定の特徴に基づいて、ブーストされた決定株のフルセットをプルーニングするかまたはカリングすることができる。次いで、観測器モジュールは、被観測モジュールの挙動をインテリジェントに監視し、特徴づけるために、リーン分類器モデルを使用することができる。
【００５８】
ブーストされた決定株は、ちょうど1つのノード(すなわち、1つのテスト質問またはテスト条件)と重み値とを有することができ、データ/挙動の軽い非プロセッサ集約的な2値の分類において使用するのに好適であり得る、1レベル決定木である。挙動表現をブーストされた決定株に適用することで、2値の回答(たとえば、1または0、yesまたはnoなど)がもたらされ得る。たとえば、ブーストされた決定株によってテストされる質問/条件は、デバイスマイクロフォンによって検出された語もしくは音がRFに敏感な環境の特徴であるかどうか、またはデバイスカメラによってキャプチャされた別のデバイスの画像が危険を引き起こすRF放出として認識可能であるかどうかを含んでもよく、これらに対する回答は2値であり得る。ブーストされた決定株は、2値の回答を生成するためにかなりの処理リソースを必要としないので、効率的である。ブーストされた決定株はまた、高度に並列化可能であってもよく、したがって、(たとえば、モジュール、コンピューティングデバイス、またはシステム中の複数のコアまたはプロセッサによって)多くの株が並列に/同時に適用またはテストされ得る。
【００５９】
図3は、様々な態様による、モジュール間挙動検証のための方法300を示す。方法300は、システムオンチップ上のプロセッサ(たとえば、図1Aに示すSOC100A上のプロセッサ102、104、106、および108)など、モジュールの処理コアもしくはデバイスプロセッサ、または任意の同様のプロセッサ(たとえば、図1Bのモジュール130〜142のプロセッサ、または図1Cのモジュール150〜168のプロセッサ)によって実行され得、被観測モジュールの挙動を観測し、特徴づけるために挙動分析システム(たとえば、図2のモジュール挙動特徴づけシステム220)を用いることができる。
【００６０】
ブロック302において、各観測器モジュールは、被観測モジュールの1つまたは複数の挙動を観測し得る。各観測器モジュールは、複数の被観測モジュールの挙動を観測し得る。各観測器モジュールは、被観測モジュールとの異なる量および/または品質の対話を有し得るので、各観測器モジュールは、被観測モジュールの挙動に対して異なる観点(Perspective)を有し得る。したがって、異なる観測器モジュールは、被観測モジュールからの異なる挙動を観測し得る。観測器モジュールの各々によって観測される挙動は、少なくとも部分的に重複する場合もある。被観測モジュールの挙動は、メッセージ、命令、メモリアクセス、要求、データ変換、アクティビティ、条件、動作、イベント、および観測器モジュールと被観測モジュールとの間の通信リンクを介して観測される他のモジュール挙動のうちの1つまたは複数を含み得るか、またはそれらに基づき得る。
【００６１】
ブロック304において、各観測器モジュールは、各観測器モジュールによって観測される被観測モジュールの1つまたは複数の挙動を特徴づける挙動表現を生成し得る。各観測器モジュールは、複数の被観測モジュールの各々を特徴づける挙動表現を生成し得る。いくつかの態様では、挙動表現は挙動ベクトルであり得る。挙動ベクトルは、いくつかの挙動特徴の各々を特徴づける一連の値であり得る。
【００６２】
ブロック306において、各観測器モジュールは、被観測モジュールの挙動を特徴づける挙動表現(たとえば、挙動ベクトル)を、被観測モジュールのそれぞれの挙動分類器モデルに適用し得る。挙動表現を被観測モジュールのそれぞれの挙動分類器モデルに適用することによって、各観測器モジュールは、被観測モジュールの挙動の1つまたは複数の挙動分類を生成し得る。挙動分類器モデルが一連のブーストされた決定株である一態様では、この動作は、それぞれの決定株に対して挙動表現における各値を使用して成果を決定することと、各決定株の成果に関連付けられた重みを適用することと、決定株のすべてに基づいて合計するかまたは別の方法で全体的な結論に達して良性または非良性などの挙動の分類に至ることとを伴い得る。
【００６３】
各モジュールがシステム中のほとんどまたはすべての他のモジュールを観測している場合があるので、ブロック302〜306の動作は、いずれか1つのモジュールが観測しているモジュールのすべてに対してほぼ同時に繰り返されるおよび/または実行される場合がある。したがって、ブロック306の動作の成果(すなわち、結果または出力)は、所与のモジュールによって観測されるモジュールの各々の挙動の分類であり得る。たとえば、GPUは、DSPおよびモデムプロセッサの挙動の継続的に更新される分類(たとえば、「正常」または「異常」)を維持することができる。
【００６４】
ブロック307において、モジュールの各々は、すべての被観測モジュールの挙動分類(すなわち、挙動分類結果)をシステム中のすべてまたはほとんどの他のモジュールに送信することができ、システム中のすべてまたはほとんどの他のモジュールから被観測モジュールの挙動分類結果を受信することができる。
【００６５】
ブロック308において、観測器モジュールは、他のモジュールから受信された各モジュールの挙動の分類およびそれ自体の分類をアグリゲートし得る。いくつかの態様では、観測器モジュールは、それらのそれぞれの分類を観測器モジュールのうちの1つまたは複数においてアグリゲートし得る。いくつかの態様では、各観測器モジュールは、その他の観測器モジュールの各々の挙動分類を受信し得る。たとえば、被観測モジュール(たとえば、GPU)は、システムまたはデバイス中のその他のモジュール(たとえば、AP、モデムプロセッサ、およびDSP)によって観測され得る。AP、モデムプロセッサ、およびDSPは各々、GPUの挙動のそれらの挙動分類を互いに提供することができ、AP、モデムプロセッサ、およびDSPの各々は、その他の観測器モジュールの分析を組み合わせることができる。たとえば、APはモデムプロセッサおよびDSPによって実行された分類を受信することができ、モデムプロセッサはAPおよびDSPによって実行された分類を受信することができ、DSPはAPおよびモデムプロセッサによって実行された分類を受信することができる。各観測器モジュールは、独立した分析を組み合わせることができる。いくつかの実施形態では、観測器モジュールは、他のモジュールから受信された各モジュールの挙動の分類およびそれ自体の分類、ならびに各モジュールのそれぞれの挙動モデルおよびそれ自体の挙動モデルをアグリゲートし得る。たとえば、各観測器モジュールは、1つまたは複数の他の観測器モジュールから受信された挙動モデルに基づいて、被観測モジュールのためのその挙動モデルを調整および/または更新し得る。
【００６６】
決定ブロック310において、モジュールのうちの1つまたは複数は、アグリゲートされた分類に基づいて、被観測モジュールが異常に挙動しているかどうかを決定し得る。いくつかの態様では、各観測器モジュールは、被観測モジュールが異常に挙動しているという決定をその他の観測器モジュールと共有してもよい。したがって、一緒に動作する観測器モジュールの各々は、被観測モジュールの各々のアンサンブル分類器として働くことができる。被観測モジュールが異常に挙動しているという決定は、観測器モジュールの各々の分類の重み付き平均に基づいて行われ得る。重み付き平均は、組み合わされた観測が異常挙動のレベルに達するかどうかを決定するために、しきい値と比較され得る。一例として、各モジュールの結論に割り当てられる重みは、観測器モジュールと被観測モジュールとの間の対話の程度に依存し得る。対話の程度は、対話の量および/または対話のタイプを含み得る。したがって、たとえば、モデムプロセッサおよびGPUは(たとえば、特定のシステムにおいて、または特定のアプリケーションによって命令されたとおりに)対話することはまれであるので、モデムプロセッサによるGPUの観測は、より小さく重み付けされることがあるが、モデムによるDSPの観測(すなわち、同じシステムおよび/またはアプリケーションにおける)は、モデムプロセッサおよびDSPが定期的に対話する場合、より大きく重み付けされることがある。代替的に、被観測モジュールが異常に挙動しているという決定は、観測器モジュールの各々の投票に基づいて行われ得、観測器モジュールの各々のアグリゲート投票は、アンサンブル分類をもたらし得る。
【００６７】
被観測モジュールが異常に挙動していない(すなわち、決定ブロック310=「No」)との決定に応答して、モジュールは、システム内のモジュールの挙動を継続的に監視するために、ブロック302〜310の動作を繰り返すことができる。
【００６８】
被観測モジュールが異常に挙動している(すなわち、決定ブロック310=「Yes」)との決定に応答して、各モジュールはブロック312においてアクションを取ることができる。いくつかの態様では、各モジュールは、各観測器モジュールによって観測される特定の挙動および/または被観測モジュールとの各観測器モジュールの対話の特定の詳細に基づいて、異なるアクションを取ることができる。一例として、DSP102、モデムプロセッサ104、およびGPU106は各々、AP108が異常に挙動しているとの(独立した、またはアンサンブルでの)決定に応答して、異なるアクションを取ることができる。ある態様では、各モジュールは、異常に挙動しているモジュールとの対話を低減または制限することができる。モジュールは、異常に挙動しているモジュールから送られた命令を実行することを拒否することもできる。追加または代替として、モジュールは、異常に挙動しているモジュールによるその機能および/またはメモリアドレスへのアクセスを制限または防止することができる。たとえば、DSPはAPにDSPのメモリアドレスへのアクセスを提供しないことがあるか、またはDSPはAPによって送られたデータを処理することを拒否することがある。別の例として、モデムプロセッサは、(たとえば、モデムを介した)外部通信へのAPアクセスを拒むことがある。別の例として、GPUは、APから送られた視覚データまたはグラフィカルデータを表示または処理しないことがある。別の例として、モデムプロセッサは、異常に挙動していると決定されたGPUに対していかなるアクションも取らないことがあるが、APは、GPUとの対話を、すべてではないとしてもほとんど制限することができる。さらなる例として、モジュール(たとえば、GPUまたはAP)は、メッセージの表示をユーザに命令することができる。別の例として、モデムプロセッサは、通知もしくは警報などのメッセージを通信リンクを介してサーバに、通知を企業サーバに、または通知を電子メールアドレスもしくはメッセージングアドレスに送ることができる。観測器モジュールは、ブロック302において別の被観測モジュールの1つまたは複数の挙動を観測し、上記で説明したようにブロック302〜312の動作を繰り返すことができる。
【００６９】
図4は、様々な態様による、モジュール間挙動検証のための方法400を示す。方法400は、システムオンチップ上のプロセッサ(たとえば、図1Aに示すSOC100A上のプロセッサ102、104、106、および108)など、モジュールの処理コアもしくはデバイスプロセッサ、または任意の同様のプロセッサ(たとえば、図1Bのモジュール130〜142のプロセッサ、または図1Cのモジュール150〜168のプロセッサ)によって実行され得、被観測モジュールの挙動を観測し、特徴づけるために挙動分析システム(たとえば、図2のモジュール挙動特徴づけシステム220)を用いることができる。いくつかの態様では、デバイスプロセッサは、方法300のブロック302〜310に関して説明した動作(図3参照)と同様の動作をブロック302〜310において実行することができる。
【００７０】
ブロック402において、各観測器モジュールは、各観測器モジュールが観測し得る被観測モジュールの挙動の数を決定し得る。ブロック404において、各観測器モジュールは、各観測器モジュールが観測する被観測モジュールの挙動の1つまたは複数のタイプを決定し得る。
【００７１】
ブロック406において、各観測器モジュールは、観測器モジュールの各々による被観測モジュールの観測の持続時間を決定し得る。ブロック408において、各観測器モジュールは、観測器モジュールの各々による被観測モジュールの観測の複雑度を決定し得る。たとえば、各観測器モジュールおよび被観測モジュールは、命令、メッセージ、コマンド、情報、メモリアドレスアクセス、通知、データ、または、他の観測器モジュールおよび被観測モジュールの対話と比較して、複雑度、詳細、長さ、情報の量、必要とされる処理の量、もしくは別の形態の複雑度が異なり得る他の情報を送信および/または受信し得る。
【００７２】
各観測器モジュールは、被観測モジュールとの異なる量および/または品質の対話を有し得るので、各観測器モジュールは、被観測モジュールの挙動に対して異なる観点を有し得る。したがって、異なる観測器モジュールは、被観測モジュールからの異なる挙動を観測し得る。観測される挙動のタイプの例は、メッセージ、命令、メモリアクセス、要求、データ変換、アクティビティ、条件、動作、イベント、および観測器モジュールと被観測モジュールとの間の通信リンクを介して観測される他のモジュール挙動のうちの1つまたは複数を含み得る。
【００７３】
ブロック308において、観測器モジュールは、被観測モジュールの1つまたは複数の観測された挙動の分類をそれぞれの挙動モデルにアグリゲートし得る。観測器モジュールは、分類を観測器モジュールのうちの1つまたは複数においてアグリゲートし得る。
【００７４】
ブロック410において、観測器モジュールは、被観測モジュールの挙動(すなわち、各観測器モジュールによって観測される1つまたは複数の挙動)に対する各観測器モジュールの観点に基づいて、観測器モジュールの各々からの分類に重み付けする。いくつかの態様では、各観測器モジュールの分類の重みは、各観測器モジュールが観測した被観測モジュールの挙動の決定された数、各観測器モジュールが観測した被観測モジュールの挙動の決定された1つまたは複数のタイプ、および観測器モジュールの各々による被観測モジュールの観測の決定された持続時間のうちの1つまたは複数に基づき得る。たとえば、被観測モジュールのより少ない観測を行い、被観測モジュールの軽微なもしくは重要ではないタイプの挙動を観測し、および/または比較的短い時間期間の間、被観測モジュールの挙動を観測するモジュールの分類には、より少ない重みが与えられ得る。逆に、より多くの観測を行い、または重要なタイプの挙動を観測し、または比較的長い時間期間の間、挙動を観測するモジュールの分類には、より多くの重みが与えられ得る。たとえば、DSPの挙動のGPUによる観測は、DSPとのGPUの比較的限定された数、タイプ、持続時間、および/または複雑度の対話により比較的小さく重み付けされ得るが、APは通常、すべての他のモジュールと対話し、さらに、APは通常、その他のモジュールのより多くの数、タイプ、持続時間、および/または複雑度の観測を行い得るので、DSP(または任意の他のモジュール)のAPによる観測は比較的大きく重み付けされ得る。
【００７５】
いくつかの態様では、各観測器モジュールの分類に与えられる重みは、分類をアグリゲートした後に割り当てられてもよく、したがって、割り当てられた重みは、他の観測器モジュールと比較して各観測器モジュールの観測の相対的な品質および量に基づき得る。
【００７６】
いくつかの態様では、ブロック410の動作は、ブロック308の動作の前に実行されてもよく、その結果、各観測器モジュールの分類には、観測器モジュールの各々の比較をアグリゲートする前の、観測された挙動の決定された数、観測された挙動の決定された1つもしくは複数のタイプ、観測の決定された持続時間、および/または各観測器モジュールによって観測された挙動の観測の決定された複雑度に基づいた重みが与えられる。
【００７７】
決定ブロック310において、観測器モジュールのうちの1つまたは複数は、重み付けされたアグリゲートされた分類に基づいて、被観測モジュールが異常に挙動しているかどうかを決定し得る。被観測モジュールが異常に挙動していない(すなわち、決定ブロック310=「No」)との決定に応答して、観測器モジュールはブロック302に戻ることができ、観測器モジュールはブロック302〜410の動作を繰り返すことができる。
【００７８】
被観測モジュールが異常に挙動している(すなわち、決定ブロック310=「Yes」)との決定に応答して、各観測器モジュールはブロック412において異なるアクションを取ることができる。いくつかの態様では、各観測器モジュールは、各観測器モジュールによって観測される特定の挙動および/または被観測モジュールとの各観測器モジュールの対話の特定の詳細に基づいて、異なるアクションを取ることができる。いくつかの態様では、各観測器モジュールが取るアクションは、観測された挙動の決定された数、観測された挙動の決定された1つもしくは複数のタイプ、および/または観測器モジュールの各々の観測の決定された持続時間に基づき得る。したがって、各観測器モジュールが取るアクションは、観測器モジュールの各々によって観測されるそれぞれの挙動に基づいて、観測器モジュールの各々によってアクションを取ることを含み得る。次いで、観測器モジュールはブロック302に戻ることができ、観測器モジュールはブロック302〜410の動作を繰り返すことができる。
【００７９】
様々な態様は、システムの中の各他のモジュールの挙動を監視および評価して被観測モジュールが異常に挙動しているかどうかを決定するために、システムの各モジュールにおいて挙動分析および/または機械学習技法を使用することによって、既存の解決策を改善する。現在のコンピューティングデバイスおよび電子システムは極めて複雑なシステムであり、各観測器モジュールの観点から観測可能である各被観測モジュールの挙動、ならびにそのような挙動から抽出可能である特徴は、各コンピューティングデバイスまたはシステムにおいて異なり得るので、被観測モジュールの挙動を評価するための観測器モジュールによる挙動分析または機械学習技法の使用は重要である。さらに、観測可能な挙動/特徴/因子の異なる組合せは、各デバイスまたはシステムが被観測モジュールの挙動を評価するために、そのデバイスまたはシステムにおける異なる分析を必要とする場合がある。観測器モジュールが観測する挙動および/または特徴の正確な組合せは、場合によっては、特定の被観測モジュールから取得された情報を使用して決定され得る。これらおよび他の理由で、既存の解決策は、かなりの量のシステムのまたはデバイスの処理リソース、メモリリソース、および/または電力リソースを消費することなしに、非常に複雑で多様なシステムまたはデバイスにおいて異常挙動について被観測モジュールを評価するのに適切ではない。
【００８０】
図1A〜図4を参照しながら上記で説明した態様を含む様々な態様は、様々なコンピューティングデバイス上で実装される場合があり、その一例が図5に示すモバイル通信デバイス500である。モバイル通信デバイス500は、内部メモリ504と、ディスプレイ512と、スピーカー514とに結合されたプロセッサ502を含み得る。プロセッサ502は、汎用または特定の処理タスクに指定された1つまたは複数のマルチコア集積回路であり得る。内部メモリ504は、揮発性または不揮発性メモリであってもよく、また、セキュアおよび/もしくは暗号化メモリ、または非セキュアおよび/もしくは非暗号化メモリ、あるいはそれらの任意の組合せであってもよい。モバイル通信デバイス500は、互いに結合され、プロセッサ502に結合された、通信を送受信するための、2つ以上の無線信号トランシーバ508(たとえば、Peanut、Bluetooth、Zigbee、Wi-Fi、RF無線など)と、アンテナ510とを有し得る。加えて、モバイル通信デバイス500は、プロセッサ502に結合されたワイヤレスデータリンクおよび/またはトランシーバ508に接続され得る、電磁放射を送受信するためのアンテナ510を含み得る。モバイル通信デバイス500は、2つ以上の無線アクセス技術による2つ以上のセルラーネットワークを介した通信を可能にする、プロセッサ502とアンテナ510とに結合された1つまたは複数のセルラーネットワークワイヤレスモデムチップ516を含み得る。
【００８１】
モバイル通信デバイス500は、プロセッサ502に結合された周辺デバイス接続インターフェース518を含み得る。周辺デバイス接続インターフェース518は、1つのタイプの接続を受け入れるように単独で構成されてもよく、または、USB、FireWire、Thunderbolt、もしくはPCIeなどの共通もしくはプロプライエタリの様々なタイプの物理接続および通信接続を受け入れるように構成されてもよい。周辺デバイス接続インターフェース518はまた、同様に構成された周辺デバイス接続ポート(図示せず)に結合され得る。モバイル通信デバイス500は、オーディオ出力を提供するためのスピーカー514も含み得る。モバイル通信デバイス500は、本明細書で説明する構成要素の全部または一部を収容するための、プラスチック、金属、または材料の組合せから構成されたハウジング520も含み得る。モバイル通信デバイス500は、使い捨て電池または充電式電池など、プロセッサ502に結合された電源522を含み得る。充電式電池は、モバイル通信デバイス500の外部の電源から充電電流を受け取るために周辺デバイス接続ポートにも結合され得る。モバイル通信デバイス500は、ユーザ入力を受け取るための物理ボタン524も含み得る。モバイル通信デバイス500は、モバイル通信デバイス500をオンおよびオフするための電源ボタン526も含み得る。
【００８２】
プロセッサ502は、以下で説明する様々な態様の機能を含む様々な機能を実行するようにソフトウェア命令(アプリケーション)によって構成され得る、任意のプログラマブルマイクロプロセッサ、マイクロコンピュータまたは1つもしくは複数のマルチプロセッサチップであり得る。いくつかのモバイル通信デバイスでは、ワイヤレス通信機能に専用の1つのプロセッサおよび他のアプリケーションの実行に専用の1つのプロセッサなど、複数のプロセッサ502が設けられてもよい。通常、ソフトウェアアプリケーションは、アクセスされ、プロセッサ502にロードされる前に、内部メモリ504に記憶され得る。プロセッサ502は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。様々な態様では、プロセッサ502は、デバイスプロセッサ、処理コア、または(図1Aに示す例示的なSOC100Aなどの)SOCであり得る。一態様では、モバイル通信デバイス500はSOCを含んでもよく、プロセッサ502は、(図1Aに示すプロセッサ102、104、106、108、および110のうちの1つなどの)SOCに含まれるプロセッサのうちの1つであってもよい。
【００８３】
様々な態様の動作を遂行するためにプログラマブルプロセッサ上で実行されるコンピュータコードまたはプログラムコードは、C、C++、C#、Smalltalk、Java(登録商標)、JavaScript(登録商標)、Visual Basic、構造化照会言語(たとえば、Transact-SQL)、Perlなどの高水準プログラミング言語で、または様々な他のプログラミング言語で書かれる場合がある。本出願で使用するコンピュータ可読記憶媒体上に記憶されたプログラムコードまたはプログラムは、そのフォーマットがプロセッサによって理解可能である(オブジェクトコードなどの)機械言語コードを指す場合がある。
【００８４】
多くのモバイルコンピューティングデバイスのオペレーティングシステムカーネルは、(非特権コードが動作する場合)ユーザ空間内に編成され、(特権コードが動作する場合)カーネル空間内に編成される。この分離は、カーネル空間の一部であるコードが一般公有使用許諾(GPL)許諾される必要がある一方で、ユーザ空間において動作するコードがGPL許諾されなくてもよい、Android(登録商標)および他のGPL環境において特に重要である。本明細書で説明する様々なソフトウェア構成要素/モジュールは、別段に明記されていない限り、カーネル空間またはユーザ空間のいずれかにおいて実装されてもよいことを理解されたい。
【００８５】
上記の方法説明およびプロセスフロー図は、単に例示的な例として提供され、様々な態様の動作が提示された順序で実行されなければならないことを要求または暗示するものではない。当業者によって諒解されるように、上記の態様における動作の順序は、任意の順序で実行され得る。「その後」、「次いで」、「次に」などの語は、動作の順序を限定するものではなく、これらの語は単に、方法の説明を通して読者を導くために使用される。さらに、たとえば、冠詞「a」、「an」または「the」を使用する、単数形での請求項の要素へのいかなる言及も、要素を単数形に限定するものとして解釈されるべきではない。
【００８６】
本明細書で開示する態様に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズム動作は、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、および動作について、上記では概してそれらの機能に関して説明した。そのような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装決定は、様々な態様の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００８７】
本明細書で開示する態様に関して説明する様々な例示的な論理、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(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つまたは任意の組合せまたはセットとして存在し得る。
【００８９】
開示した態様の前述の説明は、いかなる当業者も様々な態様を作成または使用することを可能にするために提供される。これらの態様に対する様々な修正は、当業者に容易に明らかになり、本明細書で定義した一般原理は、様々な態様の趣旨または範囲から逸脱することなく、他の態様に適用され得る。したがって、様々な態様は、本明細書に示す態様に限定されるものではなく、以下の特許請求の範囲ならびに本明細書で開示する原理および新規の特徴に一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００９０】
100A  SOC
100B  有人車両システム
100C  無人航空機システム
102  デジタル信号プロセッサ(DSP)、異種プロセッサ、プロセッサ
102a  プロセッサ、ソフトウェアアプリケーション
104  モデムプロセッサ、異種プロセッサ、プロセッサ
104a  プロセッサ、ソフトウェアアプリケーション
106  グラフィックスプロセッサ、異種プロセッサ、プロセッサ
106a  プロセッサ、ソフトウェアアプリケーション
108  アプリケーションプロセッサ、異種プロセッサ、プロセッサ
108a  プロセッサ、ソフトウェアアプリケーション
110  コプロセッサ、プロセッサ
112  メモリ要素
114  アナログ回路構成およびカスタム回路構成、カスタム回路構成
116  システム構成要素およびリソース、システム構成要素
118  クロック
120  電圧調整器
124  通信バス、相互接続/バスモジュール
130  インフォテインメントシステムモジュール
130a  スピーカー/マイクロフォン
132  環境システムモジュール
132a  環境センサー
134  ナビゲーションシステムモジュール
134a  ディスプレイ
136  ボイス/データ通信モジュール
138  エンジン制御モジュール
140  ペダルモジュール
142  トランスミッション制御モジュール
150  アビオニクスモジュール
152  GPS/NAVモジュール
154  ジャイロ/加速度計モジュール
156  モーター制御モジュール
158  カメラモジュール
160  RFトランシーバモジュール
160a  アンテナ
164  ペイロードモジュール
166  着陸センサーモジュール
168  センサー制御モジュール
170  制御システム
172  ワイヤレス通信リンク
200  態様モジュール、モジュール
202  挙動観測器モジュール
204  特徴抽出器モジュール
206  分析器モジュール
208  アクチュエータモジュール
210  挙動特徴づけモジュール
220  モジュール挙動特徴づけシステム
300  方法
400  方法
500  モバイル通信デバイス
502  プロセッサ
504  内部メモリ
508  トランシーバ
510  アンテナ
512  ディスプレイ
514  スピーカー
516  セルラーネットワークワイヤレスモデムチップ
518  周辺デバイス接続インターフェース
520  ハウジング
522  電源
524  物理ボタン
526  電源ボタン
【図１Ａ】
2018522334.tif 000003
【図１Ｂ】
2018522334.tif 000004
【図１Ｃ】
2018522334.tif 000005
【図２】
2018522334.tif 000006
【図３】
2018522334.tif 000007
【図４】
2018522334.tif 000008
【図５】
2018522334.tif 000009
【手続補正書】
【提出日】平成29年12月4日(2017.12.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
モジュール間挙動検証の方法であって、
システムの複数の観測器モジュールによって、前記システムの被観測モジュールの挙動を観測するステップであって、前記被観測モジュールが、前記複数の観測器モジュールのうちの1つである、ステップと、
前記観測器モジュールの各々によって、前記被観測モジュールの前記挙動に基づく挙動表現を生成するステップと、
前記観測器モジュールの各々によって、前記挙動表現を前記被観測モジュールのための挙動分類器モデルに適用するステップと、
アグリゲートされた分類を生成するために、前記観測器モジュールの各々によって、前記観測器モジュールの各々により決定された前記被観測モジュールの挙動の分類をアグリゲートするステップと、
前記アグリゲートされた分類に基づいて、前記被観測モジュールが異常に挙動しているかどうかを決定するステップと
を含む方法。
【請求項２】
前記観測器モジュールの各々が、前記被観測モジュールの前記挙動の異なる挙動を観測する、請求項1に記載の方法。
【請求項３】
前記観測器モジュールによって、前記観測器モジュールの各々によって決定された前記被観測モジュールの挙動の分類をアグリゲートするステップが、前記被観測モジュールの前記挙動に対する各観測器モジュールの観点に基づいて、前記観測器モジュールの各々からの分類に重み付けするステップを含む、請求項1に記載の方法。
【請求項４】
前記被観測モジュールの前記挙動に対する各観測器モジュールの前記観点が、前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の数を含む、請求項3に記載の方法。
【請求項５】
前記被観測モジュールの前記挙動に対する各観測器モジュールの前記観点が、前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の1つまたは複数のタイプを含む、請求項3に記載の方法。
【請求項６】
前記被観測モジュールの前記挙動に対する各観測器モジュールの前記観点が、前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の持続時間を含む、請求項3に記載の方法。
【請求項７】
前記被観測モジュールの前記挙動に対する各観測器モジュールの前記観点が、前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の複雑度を含む、請求項3に記載の方法。
【請求項８】
前記被観測モジュールが異常に挙動しているとの決定に応答して、前記観測器モジュールの各々によってアクションを取るステップ
をさらに含む、請求項1に記載の方法。
【請求項９】
前記被観測モジュールが異常に挙動しているとの決定に応答して、前記観測器モジュールの各々によってアクションを取るステップが、前記観測器モジュールの各々によって観測されるそれぞれの前記挙動に基づいて、前記観測器モジュールの各々によってアクションを取るステップを含む、請求項8に記載の方法。
【請求項１０】
前記観測器モジュールの各々によってアクションを取るステップが、前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の数、前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の1つまたは複数のタイプ、前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の持続時間、および前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の複雑度のうちの1つまたは複数に基づく、請求項9に記載の方法。
【請求項１１】
前記観測器モジュールの各々によって、前記被観測モジュールの前記挙動に基づく挙動表現を生成するステップが、前記観測器モジュールの各々によって、前記被観測モジュールの前記挙動に基づく挙動ベクトルを生成するステップを含み、
前記観測器モジュールの各々によって、前記挙動表現を前記被観測モジュールのための挙動分類器モデルに適用するステップが、前記観測器モジュールの各々によって、前記挙動ベクトルを前記被観測モジュールのための挙動分類器モデルに適用するステップを含む、
請求項1に記載の方法。
【請求項１２】
コンピューティングデバイスであって、
動作を実行するためのプロセッサ実行可能命令で構成されたプロセッサを含み、前記動作が、
前記コンピューティングデバイスの複数の観測器モジュールによって、前記コンピューティングデバイスの被観測モジュールの挙動を観測するステップであって、前記被観測モジュールが、前記複数の観測器モジュールのうちの1つである、ステップと、
前記被観測モジュールの前記挙動に基づく挙動表現を生成するステップと、
前記挙動表現を前記被観測モジュールのための挙動分類器モデルに適用するステップと、
アグリゲートされた分類を生成するために、前記プロセッサおよび前記複数の観測器モジュールの各々によって決定された前記被観測モジュールの挙動の分類をアグリゲートするステップと、
前記被観測モジュールが異常に挙動しているかどうかを決定するステップと
を含む、コンピューティングデバイス。
【請求項１３】
前記プロセッサが、前記コンピューティングデバイスが前記複数の観測器モジュールによって観測される挙動とは異なる前記被観測モジュールの挙動を観測するような動作を実行するためのプロセッサ実行可能命令で構成される、請求項12に記載のコンピューティングデバイス。
【請求項１４】
前記プロセッサが、前記プロセッサおよび複数の観測器モジュールの各々によって決定される前記被観測モジュールの挙動の分類をアグリゲートするステップが、前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの観点に基づいて前記プロセッサおよび前記観測器モジュールの各々からの分類に重み付けするステップを含むような動作を実行するためのプロセッサ実行可能命令で構成される、請求項12に記載のコンピューティングデバイス。
【請求項１５】
前記プロセッサが、前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの前記観点が、前記プロセッサおよび前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の数を含むような動作を実行するためのプロセッサ実行可能命令で構成される、請求項14に記載のコンピューティングデバイス。
【請求項１６】
前記プロセッサが、前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの前記観点が、前記プロセッサおよび前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の1つまたは複数のタイプを含むような動作を実行するためのプロセッサ実行可能命令で構成される、請求項14に記載のコンピューティングデバイス。
【請求項１７】
前記プロセッサが、前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの前記観点が、前記プロセッサおよび前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の持続時間を含むような動作を実行するためのプロセッサ実行可能命令で構成される、請求項14に記載のコンピューティングデバイス。
【請求項１８】
前記プロセッサが、前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの前記観点が、前記プロセッサおよび前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の複雑度を含むような動作を実行するためのプロセッサ実行可能命令で構成される、請求項14に記載のコンピューティングデバイス。
【請求項１９】
前記プロセッサが、
前記被観測モジュールが異常に挙動しているとの決定に応答してアクションを取るステップ
をさらに含む動作を実行するためのプロセッサ実行可能命令で構成される、請求項12に記載のコンピューティングデバイス。
【請求項２０】
前記プロセッサが、前記被観測モジュールが異常に挙動しているとの決定に応答してアクションを取るステップが、前記観測された挙動に基づいてアクションを取るステップを含むような動作を実行するためのプロセッサ実行可能命令で構成される、請求項19に記載のコンピューティングデバイス。
【請求項２１】
前記プロセッサが、前記観測された挙動に基づいてアクションを取るステップが、前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の数、前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の1つまたは複数のタイプ、前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の持続時間、および前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の複雑度のうちの1つまたは複数に基づくような動作を実行するためのプロセッサ実行可能命令で構成される、請求項20に記載のコンピューティングデバイス。
【請求項２２】
前記観測器モジュールの各々によって、前記被観測モジュールの前記挙動に基づく挙動表現を生成するステップが、前記観測器モジュールの各々によって、前記被観測モジュールの前記挙動に基づく挙動ベクトルを生成するステップを含み、
前記観測器モジュールの各々によって、前記挙動表現を前記被観測モジュールのための挙動分類器モデルに適用するステップが、前記観測器モジュールの各々によって、前記挙動ベクトルを前記被観測モジュールのための挙動分類器モデルに適用するステップを含む、
請求項12に記載のコンピューティングデバイス。
【請求項２３】
システム内のプロセッサにモジュール間挙動検証の動作を実行させるように構成されたプロセッサ実行可能ソフトウェア命令を記憶したプロセッサ可読記憶媒体であって、前記動作が、
複数の観測器モジュールによって、前記システムの被観測モジュールの挙動を観測するステップであって、前記被観測モジュールが、前記複数の観測器モジュールのうちの1つである、ステップと、
前記被観測モジュールの前記挙動に基づく挙動表現を生成するステップと、
前記挙動表現を前記被観測モジュールのための挙動分類器モデルに適用するステップと、
アグリゲートされた分類を生成するために、前記プロセッサおよび前記複数の観測器モジュールの各々によって決定された前記被観測モジュールの挙動の分類をアグリゲートするステップと、
前記被観測モジュールが異常に挙動しているかどうかを決定するステップと
を含む、プロセッサ可読記憶媒体。
【請求項２４】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、前記プロセッサに、前記プロセッサが前記複数の観測器モジュールによって観測される挙動とは異なる前記被観測モジュールの挙動を観測するような動作を実行させるように構成される、請求項23に記載のプロセッサ可読記憶媒体。
【請求項２５】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、前記プロセッサに、前記プロセッサおよび複数の観測器モジュールの各々によって決定される前記被観測モジュールの挙動の分類をアグリゲートするステップが、前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの観点に基づいて前記プロセッサおよび前記観測器モジュールの各々からの分類に重み付けするステップを含むような動作を実行させるように構成される、請求項23に記載のプロセッサ可読記憶媒体。
【請求項２６】
前記プロセッサが、前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの前記観点が、前記プロセッサおよび前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の数、前記プロセッサおよび前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の1つまたは複数のタイプ、前記プロセッサおよび前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の持続時間、ならびに前記プロセッサおよび前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の複雑度のうちの1つまたは複数を含むような動作を実行するためのプロセッサ実行可能命令で構成される、請求項25に記載のプロセッサ可読記憶媒体。
【請求項２７】
システム内のプロセッサであって、
複数の観測器モジュールを用いて、前記システムの被観測モジュールの挙動を観測するための手段であって、前記被観測モジュールが、前記複数の観測器モジュールのうちの1つである、手段と、
前記被観測モジュールの前記挙動に基づく挙動表現を生成するための手段と、
前記挙動表現を前記被観測モジュールのための挙動分類器モデルに適用するための手段と、
アグリゲートされた分類を生成するために、前記システム内の前記プロセッサおよび前記複数の観測器モジュールの各々によって決定された前記被観測モジュールの挙動の分類をアグリゲートするための手段と、
前記被観測モジュールが異常に挙動しているかどうかを決定するための手段と
を含むプロセッサ。
【請求項２８】
前記プロセッサが、前記複数の観測器モジュールによって観測される挙動とは異なる前記被観測モジュールの挙動を観測する、請求項27に記載のプロセッサ。
【請求項２９】
前記プロセッサおよび複数の観測器モジュールの各々によって決定される前記被観測モジュールの挙動の分類をアグリゲートするための手段が、前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの観点に基づいて前記プロセッサおよび前記観測器モジュールの各々からの分類に重み付けするための手段を含む、請求項27に記載のプロセッサ。
【請求項３０】
前記被観測モジュールの前記挙動に対する前記プロセッサおよび各観測器モジュールの前記観点が、前記プロセッサおよび前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の数、前記プロセッサおよび前記観測器モジュールの各々によって観測される前記被観測モジュールの挙動の1つまたは複数のタイプ、前記プロセッサおよび前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の持続時間、ならびに前記プロセッサおよび前記観測器モジュールの各々による前記被観測モジュールの前記挙動の観測の複雑度のうちの1つまたは複数を含む、請求項29に記載のプロセッサ。
【国際調査報告】
2018522334.tif 000010
2018522334.tif 000011