(57)【要約】  コンピューティングデバイスプロセッサは、コンピューティングデバイスの悪意のあるまたは性能を劣化させる挙動を識別する、防止する、是正する、および/またはそうでなければそれに対処するために挙動分析技法および機械学習技法を使用する方法を実装するためのプロセッサ実行可能命令で構成されてもよい。これらの動作の一部として、プロセッサは、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を決定することと、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために、これらの値のうちの1つまたは複数を使用することと、決定された数の認証要素を評価することによってユーザを認証することとを含む多要素認証動作を実行してもよい。
2017538186.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスにおいて多要素ユーザ認証を実行する方法であって、
前記コンピューティングデバイスのプロセッサにおいて、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を決定するステップと、
前記コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために、前記トランザクションタイプクリティカリティ値、前記ユーザ信頼性値、前記ソフトウェア完全性信頼性値、および前記履歴挙動値のうちの1つまたは複数を使用するステップと、
前記決定された数の認証要素を評価することによって前記ユーザを認証するステップと
を含む、方法。
【請求項２】
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素を決定するために、前記トランザクションタイプクリティカリティ値、前記ユーザ信頼性値、前記ソフトウェア完全性信頼性値、および前記履歴挙動値のうちの1つまたは複数を使用するステップ
をさらに含む、請求項1に記載の方法。
【請求項３】
不正使用に対する前記コンピューティングデバイスの現在の脆弱性を決定するために、前記コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視するステップ
をさらに含む、請求項1に記載の方法。
【請求項４】
前記トランザクションタイプクリティカリティ値、前記ユーザ信頼性値、前記ソフトウェア完全性信頼性値、および前記履歴挙動値のうちの1つまたは複数を決定するステップが、
挙動情報を収集するためにソフトウェアアプリケーションのアクティビティを監視するステップと、
前記収集された挙動情報に基づいて、前記監視されたアクティビティを特徴付ける挙動ベクトルを生成するステップと、
分析結果を生成するために前記挙動ベクトルを分類器モデルに適用するステップと
を含む、請求項1に記載の方法。
【請求項５】
前記分類器モデルが、クリティカルなアクティビティのモデルである、請求項4に記載の方法。
【請求項６】
前記挙動ベクトルが、多次元ベクトルデータ構造である、請求項5に記載の方法。
【請求項７】
前記ユーザが前記コンピューティングデバイスと対話する別個の方法を経時的に学習するために、前記コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視するステップをさらに含み、前記決定された数の認証要素を評価することによって前記ユーザを認証するステップが、ソフトウェアアプリケーションの挙動が、前記ユーザが前記コンピューティングデバイスと対話する前記別個の方法と一致するかどうかを判定するステップを含む、請求項1に記載の方法。
【請求項８】
評価されるべき前記認証要素の数を決定するステップが、
認証のために明示的なユーザ対話を必要とすることなしに前記ユーザを認証するために、パッシブ認証動作を実行するステップと、
前記パッシブ認証動作の精度でデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定するステップと、
前記コンピューティングデバイス上で動作するプロセスまたはソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定するステップと、
前記パッシブ認証における信頼性のレベルがクリティカリティのレベルを上回るかどうかを識別する比較結果を生成するために、前記パッシブ認証信頼性値を前記クリティカリティレベル値と比較するステップと、
前記比較結果に基づいて、前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するステップと
を含む、請求項1に記載の方法。
【請求項９】
コンピューティングデバイスであって、
トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を決定することと、
前記コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために、前記トランザクションタイプクリティカリティ値、前記ユーザ信頼性値、前記ソフトウェア完全性信頼性値、および前記履歴挙動値のうちの1つまたは複数を使用することと、
前記決定された数の認証要素を評価することによって前記ユーザを認証することと
を含む動作を実行するためのプロセッサ実行可能命令で構成されるプロセッサ
を備える、コンピューティングデバイス。
【請求項１０】
前記プロセッサが、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素を決定するために、前記トランザクションタイプクリティカリティ値、前記ユーザ信頼性値、前記ソフトウェア完全性信頼性値、および前記履歴挙動値のうちの1つまたは複数を使用すること
をさらに含む動作を実行するためのプロセッサ実行可能命令で構成される、請求項9に記載のコンピューティングデバイス。
【請求項１１】
前記プロセッサが、不正使用に対する前記コンピューティングデバイスの現在の脆弱性を決定するために、ハードウェアシステムおよびソフトウェアシステムを監視することをさらに含む動作を実行するためのプロセッサ実行可能命令で構成される、請求項9に記載のコンピューティングデバイス。
【請求項１２】
前記プロセッサが、前記トランザクションタイプクリティカリティ値、前記ユーザ信頼性値、前記ソフトウェア完全性信頼性値、および前記履歴挙動値のうちの1つまたは複数を決定することが、
挙動情報を収集するためにソフトウェアアプリケーションのアクティビティを監視することと、
前記収集された挙動情報に基づいて、前記監視されたアクティビティを特徴付ける挙動ベクトルを生成することと、
分析結果を生成するために前記挙動ベクトルを分類器モデルに適用することと
を含むように、動作を実行するためのプロセッサ実行可能命令で構成される、請求項9に記載のコンピューティングデバイス。
【請求項１３】
前記プロセッサが、前記分析結果を生成するために前記挙動ベクトルを前記分類器モデルに適用することが、前記挙動ベクトルをクリティカルなアクティビティのモデルに適用することを含むように、動作を実行するためのプロセッサ実行可能命令で構成される、請求項12に記載のコンピューティングデバイス。
【請求項１４】
前記プロセッサが、前記挙動ベクトルを前記クリティカルなアクティビティのモデルに適用することが、多次元ベクトルデータ構造を前記クリティカルなアクティビティのモデルに適用することを含むように、動作を実行するためのプロセッサ実行可能命令で構成される、請求項13に記載のコンピューティングデバイス。
【請求項１５】
前記プロセッサが、前記ユーザが前記コンピューティングデバイスと対話する別個の方法を経時的に学習するために、前記コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視することをさらに含む動作を実行するためのプロセッサ実行可能命令で構成され、
前記プロセッサが、前記決定された数の認証要素を評価することによって前記ユーザを認証することが、ソフトウェアアプリケーションの挙動が、前記ユーザが前記コンピューティングデバイスと対話する前記別個の方法と一致するかどうかを判定することを含むように、動作を実行するためのプロセッサ実行可能命令で構成される、
請求項9に記載のコンピューティングデバイス。
【請求項１６】
前記プロセッサが、評価されるべき前記認証要素の数を決定することが、
認証のために明示的なユーザ対話を必要とすることなしに前記ユーザを認証するために、パッシブ認証動作を実行することと、
前記パッシブ認証動作の精度でデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定することと、
前記コンピューティングデバイス上で動作するプロセスまたはソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定することと、
前記パッシブ認証における信頼性のレベルがクリティカリティのレベルを上回るかどうかを識別する比較結果を生成するために、前記パッシブ認証信頼性値を前記クリティカリティレベル値と比較することと、
前記比較結果に基づいて、前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定することと
を含むように、動作を実行するためのプロセッサ実行可能命令で構成される、請求項9に記載のコンピューティングデバイス。
【請求項１７】
コンピューティングデバイスのプロセッサに、
トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を決定することと、
前記コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために、前記トランザクションタイプクリティカリティ値、前記ユーザ信頼性値、前記ソフトウェア完全性信頼性値、および前記履歴挙動値のうちの1つまたは複数を使用することと、
前記決定された数の認証要素を評価することによって前記ユーザを認証することと
を含む動作を実行させるように構成されるプロセッサ実行可能ソフトウェア命令を記憶する、非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素を決定するために、前記トランザクションタイプクリティカリティ値、前記ユーザ信頼性値、前記ソフトウェア完全性信頼性値、および前記履歴挙動値のうちの1つまたは複数を使用すること
をさらに含む動作を実行させるように構成される、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、
不正使用に対する前記コンピューティングデバイスの現在の脆弱性を決定するために、ハードウェアシステムおよびソフトウェアシステムを監視すること
をさらに含む動作を実行させるように構成される、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、前記トランザクションタイプクリティカリティ値、前記ユーザ信頼性値、前記ソフトウェア完全性信頼性値、および前記履歴挙動値のうちの1つまたは複数を決定することが、
挙動情報を収集するためにソフトウェアアプリケーションのアクティビティを監視することと、
前記収集された挙動情報に基づいて、前記監視されたアクティビティを特徴付ける挙動ベクトルを生成することと、
分析結果を生成するために前記挙動ベクトルを分類器モデルに適用することと
を含むように、動作を実行させるように構成される、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項２１】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、前記分析結果を生成するために前記挙動ベクトルを前記分類器モデルに適用することが、前記挙動ベクトルをクリティカルなアクティビティのモデルに適用することを含むように、動作を実行させるように構成される、請求項20に記載の非一時的コンピュータ可読記憶媒体。
【請求項２２】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、前記挙動ベクトルを前記クリティカルなアクティビティのモデルに適用することが、多次元ベクトルデータ構造を前記クリティカルなアクティビティのモデルに適用することを含むように、動作を実行させるように構成される、請求項21に記載の非一時的コンピュータ可読記憶媒体。
【請求項２３】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、前記ユーザが前記コンピューティングデバイスと対話する別個の方法を経時的に学習するために、前記コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視することをさらに含む動作を実行させるように構成され、
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、前記決定された数の認証要素を評価することによって前記ユーザを認証することが、ソフトウェアアプリケーションの挙動が、前記ユーザが前記コンピューティングデバイスと対話する前記別個の方法と一致するかどうかを判定することを含むように、動作を実行させるように構成される、
請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項２４】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、評価されるべき前記認証要素の数を決定することが、
認証のために明示的なユーザ対話を必要とすることなしに前記ユーザを認証するために、パッシブ認証動作を実行することと、
前記パッシブ認証動作の精度でデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定することと、
前記コンピューティングデバイス上で動作するプロセスまたはソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定することと、
前記パッシブ認証における信頼性のレベルがクリティカリティのレベルを上回るかどうかを識別する比較結果を生成するために、前記パッシブ認証信頼性値を前記クリティカリティレベル値と比較することと、
前記比較結果に基づいて、前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定することと
を含むように、動作を実行させるように構成される、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項２５】
コンピューティングデバイスであって、
トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を決定するための手段と、
前記コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために、前記トランザクションタイプクリティカリティ値、前記ユーザ信頼性値、前記ソフトウェア完全性信頼性値、および前記履歴挙動値のうちの1つまたは複数を使用するための手段と、
前記決定された数の認証要素を評価することによって前記ユーザを認証するための手段と
を備える、コンピューティングデバイス。
【請求項２６】
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素を決定するために、前記トランザクションタイプクリティカリティ値、前記ユーザ信頼性値、前記ソフトウェア完全性信頼性値、および前記履歴挙動値のうちの1つまたは複数を使用するための手段
をさらに備える、請求項25に記載のコンピューティングデバイス。
【請求項２７】
不正使用に対する前記コンピューティングデバイスの現在の脆弱性を決定するために、ハードウェアシステムおよびソフトウェアシステムを監視するための手段をさらに備える、請求項25に記載のコンピューティングデバイス。
【請求項２８】
前記トランザクションタイプクリティカリティ値、前記ユーザ信頼性値、前記ソフトウェア完全性信頼性値、および前記履歴挙動値のうちの1つまたは複数を決定するための手段が、
挙動情報を収集するためにソフトウェアアプリケーションのアクティビティを監視するための手段と、
前記収集された挙動情報に基づいて、前記監視されたアクティビティを特徴付ける挙動ベクトルを生成するための手段と、
分析結果を生成するために前記挙動ベクトルを分類器モデルに適用するための手段と
を備える、請求項25に記載のコンピューティングデバイス。
【請求項２９】
前記分析結果を生成するために前記挙動ベクトルを前記分類器モデルに適用するための手段が、前記挙動ベクトルをクリティカルなアクティビティのモデルに適用するための手段を備える、請求項28に記載のコンピューティングデバイス。
【請求項３０】
前記挙動ベクトルを前記クリティカルなアクティビティのモデルに適用するための手段が、多次元ベクトルデータ構造を前記クリティカルなアクティビティのモデルに適用するための手段を備える、請求項29に記載のコンピューティングデバイス。
【請求項３１】
前記ユーザが前記コンピューティングデバイスと対話する別個の方法を経時的に学習するために、前記コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視するための手段をさらに備え、前記決定された数の認証要素を評価することによって前記ユーザを認証するための手段が、ソフトウェアアプリケーションの挙動が、前記ユーザが前記コンピューティングデバイスと対話する前記別個の方法と一致するかどうかを判定するための手段を備える、請求項25に記載のコンピューティングデバイス。
【請求項３２】
評価されるべき前記認証要素の数を決定するための手段が、
認証のために明示的なユーザ対話を必要とすることなしに前記ユーザを認証するために、パッシブ認証動作を実行するための手段と、
前記パッシブ認証動作の精度でデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定するための手段と、
前記コンピューティングデバイス上で動作するプロセスまたはソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定するための手段と、
前記パッシブ認証における信頼性のレベルがクリティカリティのレベルを上回るかどうかを識別する比較結果を生成するために、前記パッシブ認証信頼性値を前記クリティカリティレベル値と比較するための手段と、
前記比較結果に基づいて、前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するための手段と
を備える、請求項25に記載のコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、効率的な連続認証に対して挙動分析を使用するための方法およびシステムに関する。
【背景技術】
【０００２】
セルラー通信技術およびワイヤレス通信技術は、過去数年の間に爆発的な成長をとげている。ワイヤレスサービスプロバイダは現在、情報、リソースおよび通信に対するかつてないレベルのアクセスをユーザに提供する、多岐にわたる機能およびサービスを提供している。これらの強化と歩調を合わせるために、パーソナル電子デバイスおよび消費者向け電子デバイス(たとえば、セルラーフォン、時計、ヘッドフォン、遠隔制御装置など)は、今までよりも強力かつ複雑になり、今や一般的に、強力なプロセッサ、大規模メモリ、および各自のデバイス上で複雑で強力なソフトウェアアプリケーションを実行することを可能にする他のリソースを含む。また、これらのデバイスによって、それらのユーザは、アプリケーションダウンロードサービス(たとえば、Apple(登録商標) App Store、Windows(登録商標) Store、Google(登録商標) playなど)またはインターネットから様々なソフトウェアアプリケーションをダウンロードし、実行することができる。
【０００３】
これらおよび他の改善により、パーソナル電子デバイスおよび消費者向け電子デバイスは、現代の生活において至る所に常に存在するようになっており、それらのユーザによって生成されるかまたはそれらのユーザに関する情報にかつてないレベルでアクセスできる。加えて、人々は、機密情報(たとえば、クレジットカード情報、連絡先など)を記憶するためにおよび/またはセキュリティが重要であるタスクを達成するために、各自のデバイスを頻繁に使用する。たとえば、モバイルデバイスユーザは、商品を購入し、機密の通信を送受信し、請求書の支払いをし、銀行口座を管理し、他の機密のトランザクションを行うために、各自のデバイスを頻繁に使用する。これらの傾向により、スマートフォンなどのパーソナル電子デバイスおよび消費者向け電子デバイスのユーザを認証するための新規の改善されたセキュリティソリューションが、消費者にとって有益であろう。
【発明の概要】
【課題を解決するための手段】
【０００４】
様々な態様は、コンピューティングデバイスのプロセッサにおいて、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を決定し、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を使用し、決定された数の認証要素を評価することによってユーザを認証することによって、コンピューティングデバイスにおいて多要素ユーザ認証を実行する方法を含む。一態様では、本方法は、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素を決定するために、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を使用するステップを含んでもよい。
【０００５】
さらなる態様では、本方法は、不正使用に対するコンピューティングデバイスの現在の脆弱性を決定するために、コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視するステップを含んでもよい。さらなる態様では、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を決定するステップは、挙動情報を収集するためにソフトウェアアプリケーションのアクティビティを監視するステップと、収集された挙動情報に基づいて、監視されたアクティビティを特徴付ける挙動ベクトルを生成するステップと、分析結果を生成するために挙動ベクトルを分類器モデルに適用するステップとを含んでもよい。さらなる態様では、分類器モデルは、クリティカルなアクティビティのモデルであってもよい。さらなる態様では、挙動ベクトルは、多次元ベクトルデータ構造であってもよい。
【０００６】
さらなる態様では、本方法は、ユーザがコンピューティングデバイスと対話する別個の方法を経時的に学習するために、コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視するステップを含んでもよく、決定された数の認証要素を評価することによってユーザを認証するステップは、ソフトウェアアプリケーションの挙動が、ユーザがコンピューティングデバイスと対話する別個の方法と一致するかどうかを判定するステップを含む。
【０００７】
さらなる態様では、評価されるべき認証要素の数を決定するステップは、認証のために明示的なユーザ対話を必要とすることなしにユーザを認証するために、パッシブ認証動作を実行するステップと、パッシブ認証動作の精度でデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定するステップと、コンピューティングデバイス上で動作するプロセスまたはソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定するステップと、パッシブ認証における信頼性のレベルがクリティカリティのレベルを上回るかどうかを識別する比較結果を生成するために、パッシブ認証信頼性値をクリティカリティレベル値と比較するステップと、比較結果に基づいて、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するステップとを含んでもよい。
【０００８】
さらなる態様は、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を決定することと、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を使用することと、決定された数の認証要素を評価することによってユーザを認証することとを含んでもよい動作を実行するためのプロセッサ実行可能命令で構成されるプロセッサを含むコンピューティングデバイスを含んでもよい。
【０００９】
一態様では、プロセッサは、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素を決定するために、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を使用することをさらに含む動作を実行するためのプロセッサ実行可能命令で構成されてもよい。さらなる態様では、プロセッサは、不正使用に対するコンピューティングデバイスの現在の脆弱性を決定するために、ハードウェアシステムおよびソフトウェアシステムを監視することをさらに含む動作を実行するためのプロセッサ実行可能命令で構成されてもよい。
【００１０】
さらなる態様では、プロセッサは、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を決定するステップが、挙動情報を収集するためにソフトウェアアプリケーションのアクティビティを監視することと、収集された挙動情報に基づいて、監視されたアクティビティを特徴付ける挙動ベクトルを生成することと、分析結果を生成するために挙動ベクトルを分類器モデルに適用することとを含むように、動作を実行するためのプロセッサ実行可能命令で構成されてもよい。
【００１１】
さらなる態様では、プロセッサは、分析結果を生成するために挙動ベクトルを分類器モデルに適用することが、挙動ベクトルをクリティカルなアクティビティのモデルに適用することを含むように、動作を実行するためのプロセッサ実行可能命令で構成されてもよい。さらなる態様では、プロセッサは、挙動ベクトルをクリティカルなアクティビティのモデルに適用することが、多次元ベクトルデータ構造をクリティカルなアクティビティのモデルに適用することを含むように、動作を実行するためのプロセッサ実行可能命令で構成されてもよい。
【００１２】
さらなる態様では、プロセッサは、ユーザがコンピューティングデバイスと対話する別個の方法を経時的に学習するために、コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視することをさらに含む動作を実行するためのプロセッサ実行可能命令で構成されてもよい。さらなる態様では、プロセッサは、決定された数の認証要素を評価することによってユーザを認証することが、ソフトウェアアプリケーションの挙動が、ユーザがコンピューティングデバイスと対話する別個の方法と一致するかどうかを判定することを含むように、動作を実行するためのプロセッサ実行可能命令で構成されてもよい。
【００１３】
さらなる態様では、プロセッサは、評価されるべき認証要素の数を決定することが、認証のために明示的なユーザ対話を必要とすることなしにユーザを認証するために、パッシブ認証動作を実行することと、パッシブ認証動作の精度でデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定することと、コンピューティングデバイス上で動作するプロセスまたはソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定することと、パッシブ認証における信頼性のレベルがクリティカリティのレベルを上回るかどうかを識別する比較結果を生成するために、パッシブ認証信頼性値をクリティカリティレベル値と比較することと、比較結果に基づいて、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定することとを含むように、動作を実行するためのプロセッサ実行可能命令で構成されてもよい。
【００１４】
さらなる態様は、コンピューティングデバイスのプロセッサに、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を決定することと、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を使用することと、決定された数の認証要素を評価することによってユーザを認証することとを含んでもよい動作を実行させるように構成されるプロセッサ実行可能ソフトウェア命令を記憶した非一時的コンピュータ可読記憶媒体を含んでもよい。
【００１５】
一態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、プロセッサに、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素を決定するために、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を使用することをさらに含む動作を実行させるように構成されてもよい。さらなる態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、プロセッサに、不正使用に対するコンピューティングデバイスの現在の脆弱性を決定するために、ハードウェアシステムおよびソフトウェアシステムを監視することをさらに含む動作を実行させるように構成されてもよい。
【００１６】
さらなる態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、プロセッサに、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を決定することが、挙動情報を収集するためにソフトウェアアプリケーションのアクティビティを監視することと、収集された挙動情報に基づいて、監視されたアクティビティを特徴付ける挙動ベクトルを生成することと、分析結果を生成するために挙動ベクトルを分類器モデルに適用することとを含むように、動作を実行させるように構成されてもよい。さらなる態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、プロセッサに、分析結果を生成するために挙動ベクトルを分類器モデルに適用することが、挙動ベクトルをクリティカルなアクティビティのモデルに適用することを含むように、動作を実行させるように構成されてもよい。
【００１７】
さらなる態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、プロセッサに、挙動ベクトルをクリティカルなアクティビティのモデルに適用することが、多次元ベクトルデータ構造をクリティカルなアクティビティのモデルに適用することを含むように、動作を実行させるように構成されてもよい。さらなる態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、プロセッサに、ユーザがコンピューティングデバイスと対話する別個の方法を経時的に学習するために、コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視することをさらに含む動作を実行させるように構成されてもよい。さらなる態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、プロセッサに、決定された数の認証要素を評価することによってユーザを認証することが、ソフトウェアアプリケーションの挙動が、ユーザがコンピューティングデバイスと対話する別個の方法と一致するかどうかを判定することを含むように、動作を実行させるように構成されてもよい。
【００１８】
さらなる態様では、記憶されたプロセッサ実行可能ソフトウェア命令は、プロセッサに、評価されるべき認証要素の数を決定することが、認証のために明示的なユーザ対話を必要とすることなしにユーザを認証するために、パッシブ認証動作を実行することと、パッシブ認証動作の精度でデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定することと、コンピューティングデバイス上で動作するプロセスまたはソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定することと、パッシブ認証における信頼性のレベルがクリティカリティのレベルを上回るかどうかを識別する比較結果を生成するために、パッシブ認証信頼性値をクリティカリティレベル値と比較することと、比較結果に基づいて、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定することとを含むように、動作を実行させるように構成されてもよい。
【００１９】
さらなる態様は、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を決定するための手段と、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を使用するための手段と、決定された数の認証要素を評価することによってユーザを認証するための手段とを含むコンピューティングデバイスを含む。一態様では、コンピューティングデバイスは、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素を決定するために、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を使用するための手段を含んでもよい。
【００２０】
さらなる態様では、コンピューティングデバイスは、不正使用に対するコンピューティングデバイスの現在の脆弱性を決定するために、ハードウェアシステムおよびソフトウェアシステムを監視するための手段を含んでもよい。さらなる態様では、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を決定するための手段は、挙動情報を収集するためにソフトウェアアプリケーションのアクティビティを監視するための手段と、収集された挙動情報に基づいて、監視されたアクティビティを特徴付ける挙動ベクトルを生成するための手段と、分析結果を生成するために挙動ベクトルを分類器モデルに適用するための手段とを含んでもよい。
【００２１】
さらなる態様では、分析結果を生成するために挙動ベクトルを分類器モデルに適用するための手段は、挙動ベクトルをクリティカルなアクティビティのモデルに適用するための手段を含んでもよい。さらなる態様では、挙動ベクトルをクリティカルなアクティビティのモデルに適用するための手段は、多次元ベクトルデータ構造をクリティカルなアクティビティのモデルに適用するための手段を含んでもよい。さらなる態様では、コンピューティングデバイスは、ユーザがコンピューティングデバイスと対話する別個の方法を経時的に学習するために、コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視するための手段を含んでもよく、決定された数の認証要素を評価することによってユーザを認証するための手段は、ソフトウェアアプリケーションの挙動が、ユーザがコンピューティングデバイスと対話する別個の方法と一致するかどうかを判定するための手段を含む。
【００２２】
さらなる態様では、評価されるべき認証要素の数を決定するための手段は、認証のために明示的なユーザ対話を必要とすることなしにユーザを認証するために、パッシブ認証動作を実行するための手段と、パッシブ認証動作の精度でデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定するための手段と、コンピューティングデバイス上で動作するプロセスまたはソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定するための手段と、パッシブ認証における信頼性のレベルがクリティカリティのレベルを上回るかどうかを識別する比較結果を生成するために、パッシブ認証信頼性値をクリティカリティレベル値と比較するための手段と、比較結果に基づいて、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するための手段とを含んでもよい。
【００２３】
本明細書に組み込まれ、本明細書の一部を構成している添付の図面は、本発明の例示的な態様を示すものであり、上で与えられた全般的な説明および下で与えられる詳細な説明とともに、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【００２４】
【図１】様々な態様を実装するのに適した、例示的なシステムオンチップのアーキテクチャ図である。
【図２】コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するように構成される一態様のモバイルデバイスにおける、例示的な論理構成要素および情報フローを示すブロック図である。
【図３】一態様による、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定する方法を示すプロセスフロー図である。
【図４】コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数をインテリジェントに決定するために使用される場合がある例示的なイベントおよび値の図である。
【図５】一態様による、多要素認証を実行する方法を示すプロセスフロー図である。
【図６】別の態様による、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定する方法を示すプロセスフロー図である。
【図７】モバイルデバイス上で適応的観測を実行するための一態様の方法を示すプロセスフロー図である。
【図８】一態様において使用するのに適したモバイルデバイスの構成要素ブロック図である。
【発明を実施するための形態】
【００２５】
添付の図面を参照しながら、様々な態様について詳細に説明する。可能な限り、同じまたは同様の部分を指すために図面全体を通じて同じ参照番号が使用される。具体的な例および実装形態への言及は説明のためであり、本発明の範囲または特許請求の範囲を限定するものではない。
【００２６】
概して、様々な態様は、コンピューティングデバイスのユーザを連続的に/繰り返して認証するために多要素認証動作を実行する挙動分析技法および機械学習技法を使用する方法、およびその方法を実装するように構成されるコンピューティングデバイスを含む。多要素認証動作は、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を決定することと、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために、これらの値のうちの1つまたは複数を使用することと、決定された数の認証要素を評価することによってユーザを認証することとを含んでもよい。機械学習技法および/または挙動分析技法を使用することによって、コンピューティングデバイスは、デバイスの性能、ユーザビリティ、セキュリティ、または電力消費特性に著しい悪影響を及ぼす可能性がある、必要以上の認証要素を必要とすることなしに、現在のアクティビティ、挙動、ユーザなどのために必要な認証のレベルを使用して、ユーザをインテリジェントにかつ連続的に認証してもよい。コンピューティングデバイスの機能、機能性、および/または役割に対する追加の改善は、以下で提供される態様の詳細な説明から明らかになろう。
【００２７】
「モバイルコンピューティングデバイス」および「モバイルデバイス」という用語は、セルラー電話、スマートフォン、パーソナルまたはモバイルのマルチメディアプレーヤ、携帯情報端末(PDA)、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、ウルトラブック、パームトップコンピュータ、ワイヤレス電子メールレシーバ、マルチメディアアインターネット対応セルラー電話、ワイヤレスゲームコントローラ、および、性能が重要であるメモリとプログラマブルプロセッサとを含み、電力節約方法が有益であるようなバッテリー電源で動作する同様のパーソナル電子デバイスのいずれかまたはすべてを指すように、本明細書では互換的に使用される。様々な態様は、限られたリソースを有しバッテリーで動作する、スマートフォンなどのモバイルコンピューティングデバイスに対して特に有用であるが、これらの態様は一般に、プロセッサを含み、アプリケーションプログラムを実行する任意の電子デバイスにおいて有用である。
【００２８】
ユーザがコンピューティングデバイス、そのオペレーティングシステム、そのソフトウェアアプリケーション、および/またはその記憶されたコンテンツにアクセスするのを許可されることを保証するためにコンピューティングデバイスによって使用される場合がある、様々な認証技法がある。そのような技法は、アクティブ認証、パッシブ認証、単要素認証(SFA)、および多要素認証(MFA)を含む。
【００２９】
現在、大半のコンピューティングデバイスは、ユーザがデバイスへのアクセスを許可される前に、個人識別番号(PIN)またはユーザ名とパスワードの組合せの入力など、ユーザが認証資格証明を入力(enter/input)することを必要とするアクティブ単要素認証技法を実装し、使用する。この認証技法は、コンピューティングデバイスが、認証資格証明についてのユーザの知識などの単一の認証要素を評価することしか必要としないので、「単要素」認証である。この技法は、認証のためにユーザが情報(すなわち、自分の認証資格証明)を明示的に入力することを必要とするので、アクティブ認証でもある。
【００３０】
近年、サイバー攻撃者および窃盗犯は巧妙さを増しており、今では、ユーザの知識または同意なしに、そのユーザの認証資格証明をさらに容易に取得または推測することができる。結果として、単要素認証ソリューションはもはや、コンピューティングデバイスを不正使用から保護するのに適切ではない。この理由で、ますます多くのコンピューティングデバイスは今では、許可されたユーザのみがコンピューティングデバイス、そのオペレーティングシステム、そのソフトウェアアプリケーション、またはその記憶されたコンテンツにアクセスすることを保証するために、多要素認証(MFA)ソリューションを実装し、使用している。
【００３１】
多要素認証ソリューションは、知識要素、所有要素、および固有要素のうちの2つ以上など、2つ以上の異なるタイプの独立した認証要素をテストする。知識要素は、ユーザがPINもしくはパスワードを入力する、パターンを描く、または画像を選択することを必要とすることなどによって、秘密についてのユーザの知識をテストする認証要素であってもよい。所有要素は、キーフォブ、SMSベースのセキュリティトークン、USBトークン、乱数生成トークン、スマートカードなどのオブジェクトのユーザの所有権/所有をテストする認証要素であってもよい。固有要素は、ユーザに備わっている特徴または特性、通常は指紋、虹彩パターンなどのバイオメトリックをテストする認証要素であってもよい。異なるタイプの認証要素をテストすることによって、多要素認証ソリューションは、コンピューティングデバイスのセキュリティを大幅に改善する。
【００３２】
コンピューティングデバイスは、異なるタイプの認証要素をテスト/評価するための複数の独立した動作セットを定義し、ユーザが認証されるたびにこれらの動作セットのうちの2つ以上を実行することによって、多要素認証ソリューションを実装してもよい。たとえば、コンピューティングデバイスは、パターン(知識要素)を評価するための第1のセットの動作と、乱数トークン(所有要素)を評価するための第2のセットの動作とを定義してもよい。(知識要素である)パターンを評価するための例示的な動作は、プロンプトを表示することと、ユーザがパターンを選択するかまたは描くことを要求することと、選択された/描かれたパターンをメモリに記憶された暗号化パターン値と比較することとを含んでもよい。乱数トークン(したがって所有要素)を評価するための例示的な動作は、セキュリティトークン値(たとえば、現在の時間および/または暗号鍵などに基づいた数値)を生成することと、個別の媒体を介して(たとえば、電子メールを介して、キーフォブに、など)セキュリティトークン値をデバイスの許可されたユーザに送信することと、ユーザがセキュリティトークン値を入力することを要求するプロンプトを表示することと、ユーザ入力を元のセキュリティトークン値と比較することとを含んでもよい。コンピューティングデバイスは、ユーザが認証されるたびに2つの異なるタイプの認証要素(すなわち、知識要素および所有要素)を評価するために、両方の動作のセットを実行してもよい。2つの異なるタイプの認証要素(すなわち、知識要素および所有要素)を評価することによって、この多要素認証ソリューションは、コンピューティングデバイスのセキュリティを改善するが、これはハッカーが知識要素(たとえば、パスワードを推測するかまたは盗む)と所有要素(たとえば、USBトークンまたはセキュリティフォブを盗む)の両方を取得しなければならなくなるからである。また、知識要素とは異なり、ユーザは、いつ所有要素がなくなったかがわかる可能性が高いので、いつセキュリティが危険にさらされる場合があるかを検出することができる。
【００３３】
コンピューティングデバイスのセキュリティは、認証要素のタイプごとに評価される要素の数を増やすことによって、さらに改善される場合がある。たとえば、2つの知識要素(たとえば、パスワードとパターン)および2つの所有要素(たとえば、USBトークンとキーフォブ)をテストするように構成されるコンピューティングデバイスは、一般に、2つの知識要素および1つの所有要素をテストするように構成される同様の装備のコンピューティングデバイスよりもセキュアである。
【００３４】
コンピューティングデバイスのセキュリティは、多数の認証要素を繰り返して評価することによっても改善される場合がある。すなわち、コンピューティングデバイスが評価する認証要素が多ければ多いほど、また、それらの要素がより頻繁に評価されればされるほど、そのセキュリティレベルはより強力になる。認証要素を繰り返して、頻繁に、または連続的に評価するコンピューティングデバイスは、1回(たとえば、ログイン時など)、または選択イベント(たとえば、ソフトウェアをインストールするかまたは機密情報にアクセスするという要求など)に応答して認証要素を評価する同様の装備のデバイスよりもセキュアである。しかしながら、多数の認証要素を繰り返して評価する従来のソリューションはしばしば、コンピューティングデバイスの性能、ユーザビリティ、および電力消費特性に悪影響を及ぼす。さらに、ユーザは、認証のための頻繁なプロンプトにいらいらし、それに応じてそのような特徴を無効化することがあり、それによって、ユーザのデバイスがより攻撃を受けやすくなる。結果として、従来のソリューションは、限られた処理リソースおよびバッテリーリソースを有し、快適なユーザエクスペリエンスが重要である、スマートフォンなどのリソース制約のあるコンピューティングデバイスに含めるか、またはそのコンピューティングデバイスにおいて使用するのに適していない。
【００３５】
従来のソリューションを使用すると、コンピューティングデバイスは、評価される認証要素ごとに複数の複雑なまたは電力集約的な動作(たとえば、プロンプトを表示する、ユーザ入力を受信する、ユーザ入力を記憶された値と比較する、など)を実行することが必要とされる。さらに、大半の従来のソリューションは、ユーザが認証されるたびに(たとえば、パスワードを入力するために、指をスキャンするために、など)デバイスとの何らかの形態のユーザ対話を必要とする。ユーザが認証資格証明を繰り返して入力することおよび/または複数の認証動作(たとえば、パスワードを入力し、次いで指をスキャンする)を実行することを必要とすることは、厄介なもの、気が散るものであり、ユーザエクスペリエンスを低下させる。すべてのこれらの理由で、従来の多要素ソリューションは、十分な数の認証要素を評価せず、ユーザを連続的に認証せず、適切なレベルの保護/セキュリティを提供せず、または、コンピューティングデバイスの性能、ユーザビリティ、もしくは電力消費特性に著しい悪影響を及ぼす。
【００３６】
加えて、大半の従来のソリューションは、ユーザが認証されるたびに同数の認証要素をテストする。いくつかのソリューションは、認証要素(およびそれらの関連する動作セット)を静的に定義し、実行時に評価される認証要素を動的に選択する。しかも、これらのコンピューティングデバイスは、ユーザが認証されるたびにテストするために、同数(または以前に定義された数)の認証要素を選択する。
【００３７】
従来のソリューションはまた、認証要素を評価するときに実行されるべき動作を動的に計算/決定せず、デバイスの現在の挙動、デバイス上で動作するソフトウェアアプリケーションの挙動、進行中のトランザクションのタイプ、ユーザ信頼性値、ソフトウェア完全性信頼性値、および/または履歴挙動情報に基づいてユーザを連続的に認証しない。加えて、従来のソリューションは、実行時に評価されるべき認証要素の数およびタイプを、デバイスの現在の挙動、攻撃に対する現在の脆弱性、またはデバイスの現在のセキュリティリスク許容レベルに基づいてインテリジェントにかつ動的に決定しない。従来のソリューションはまた、デバイスの性能、ユーザビリティ、セキュリティ、および電力消費特性の間のトレードオフのバランスを適切にとらない。すべてのこれらの理由で、従来のソリューションは、リソース制約のあるコンピューティングデバイスに含めるか、またはそのコンピューティングデバイスにおいて使用するのに適していない。
【００３８】
様々な態様は、機械学習技法および/または挙動分析技法を使用して、認証が必要とされるかどうか、評価されるべき認証要素の数、評価されるべき認証要素のタイプ、および認証要素を評価するときに実行されるべき動作をインテリジェントに、効率的に、かつ動的に決定するようにコンピューティングデバイスを構成することによって、従来のユーザ認証ソリューションの制限を克服する。コンピューティングデバイスは、デバイスの現在の挙動、進行中のトランザクションのタイプ、ユーザ信頼性値、ユーザ対話、ソフトウェア完全性信頼性値、および/またはデバイス上で動作するソフトウェアアプリケーションの履歴挙動などに基づいて、ユーザ、アプリケーション、またはアクティビティを認証するように構成されてもよい。
【００３９】
機械学習技法および/または挙動分析技法を使用することによって、コンピューティングデバイスは、このような状況下で過剰な量のデバイスの処理リソースまたは電力リソースを消費することなしに、デバイスのハードウェアシステムおよび/またはソフトウェアシステムを連続的に(またはほぼ連続的に)監視し、不正使用(または攻撃)に対するコンピューティングデバイスの現在の脆弱性を正確に決定してもよい。コンピューティングデバイスはまた、不正使用(または攻撃)に対するコンピューティングデバイスの現在の脆弱性に基づいて、評価されるべき認証要素の数をインテリジェントに決定し、インテリジェントにデバイスのセキュリティ、性能、ユーザビリティ、および電力消費特性の間のトレードオフのバランスをとるために絞り込んだ数の認証要素を連続的に評価してもよい。
【００４０】
機械学習技法および/または挙動分析技法を使用することによって、コンピューティングデバイスは、デバイスとの明示的なユーザ対話(たとえば、ユーザ資格証明の入力など)を必要としない認証要素を識別し、評価してもよい。これにより、コンピューティングデバイスは、ユーザ、アプリケーション、もしくはアクティビティを連続的に認証するおよび/またはユーザエクスペリエンスを低下させることなしに多数の認証要素を評価することができる。
【００４１】
上述のすべての理由で、様々な態様は、限られた処理リソースおよびバッテリーリソースを有し、セキュリティおよび快適なユーザエクスペリエンスが重要である、スマートフォンなどのリソース制約のあるコンピューティングデバイスに含めるか、またはそのコンピューティングデバイスにおいて使用するのに好適である。
【００４２】
一態様では、コンピューティングデバイスは、攻撃/不正使用に対するデバイスの脆弱性のレベルを識別する脆弱性値を計算するように構成されてもよい。コンピューティングデバイスは、認証要素を計算もしくは選択することができ、および/または、決定された脆弱性値に基づいて認証要素の数を決定し、ユーザ、アプリケーション、もしくはアクティビティを認証するための認証要素を評価することができる。コンピューティングデバイスは、デバイスの現在の挙動、進行中のトランザクションのタイプ、ユーザ信頼性値、ソフトウェア完全性信頼性値、デバイス上で現在動作しているソフトウェアアプリケーションの履歴挙動、および/またはデバイスにおいて検出された他の挙動、イベント、もしくは条件に基づいて、脆弱性値を計算するように構成されてもよい。
【００４３】
一般に、ユーザは、一意の方法または別個の方法で各自のコンピューティングデバイスと対話する。たとえば、モバイルデバイスユーザはしばしば、別個の仕事または通信のスタイルを有し、特定のソフトウェアアプリケーションまたは特定のタイプのソフトウェアアプリケーションを使用し、特定のアクティビティを実行するかまたは特定のタスクを遂行するために各自のモバイルデバイスを使用し、特定の順序でアクティビティを実行し、特定の時間に特定のアクティビティを実行し、特定の方法で特定のソフトウェアアプリケーションと対話する、などである。一態様では、コンピューティングデバイスは、ユーザが自分のデバイスと経時的に対話する別個の方法を学習し、この情報を使用してそのユーザをインテリジェントに認証するように構成されてもよい。
【００４４】
一態様では、コンピューティングデバイスは、ユーザがデバイスと対話する別個の方法に基づいて、ユーザが許可された/認証されたユーザであるというデバイスの信頼性を(たとえば、確率値などによって)識別するユーザ信頼性値を計算または決定するために、オンデバイス学習動作を実行するように構成されてもよい。ユーザ信頼性値は、デバイスの現在の使用パターンが特定のユーザによるデバイスの通常の使用パターンと一致するかどうか、またはその程度を示してもよい。コンピューティングデバイスは、認証要素を計算/選択するためにおよび/またはユーザを認証するときにデバイスによって評価されるべき認証要素の数をインテリジェントに決定するためにユーザ信頼性値を使用してもよい。たとえば、コンピューティングデバイスは、ユーザ信頼性値が高いときは低減された数の認証要素を評価し、ユーザ信頼性値が低いときは(すなわち、検出された使用パターンがデバイスまたはユーザの通常の使用パターンに一致しないときは)より多い数の認証要素を評価してもよい。コンピューティングデバイスはまた、攻撃または不正使用に対するデバイスの脆弱性のレベルを識別する脆弱性値を計算するためにユーザ信頼性値を使用し、ユーザを認証するときにデバイスによって評価されるべき認証要素の数を決定するために脆弱性値を使用してもよい。
【００４５】
一態様では、コンピューティングデバイスは、挙動情報を収集するためにデバイスのプロセス、ソフトウェアアプリケーション、およびハードウェアセンサのアクティビティまたは挙動を連続的に(またはほぼ連続的に)監視し、ユーザのデバイス使用パターンを識別するために収集された挙動情報を使用し、ユーザ信頼性値を決定するために識別されたデバイス使用パターンを使用するように構成されてもよい。
【００４６】
一態様では、コンピューティングデバイスは、進行中のトランザクションのタイプを決定し、これらのトランザクションのうちのいずれかが詳細な監視を必要とするクリティカルなアクティビティであるかどうかを判定し、トランザクションタイプクリティカリティ値を計算し、トランザクションタイプクリティカリティ値に基づいて(たとえば、現在進行中のトランザクションのタイプに基づいて)、評価される認証要素および/または認証要素の数を計算/選択するように構成されてもよい。たとえば、コンピューティングデバイスは、進行中のクリティカルなアクティビティがないときは低減された数の認証要素を評価し、1つまたは複数のクリティカルなアクティビティが進行中であるときはより多い数の認証要素を評価してもよい。コンピューティングデバイスはまた、(たとえば、トランザクションタイプクリティカリティ値を使用することによって)進行中のトランザクションのタイプの関数として脆弱性値を計算し、ユーザを認証するときにデバイスによって評価されるべき認証要素の数を決定するために脆弱性値を使用してもよい。このようにして、用いられる認証要素の数は、現在の使用および動作状態、したがって、コンピューティングデバイスの現在の脆弱性および現在の状況によってもたらされるユーザに対するリスクに応答するか、またはそれらと一致することができる。
【００４７】
コンピューティングデバイスは、進行中のトランザクションのタイプを決定する、および/または、デバイス上で動作するプロセス/ソフトウェアアプリケーションのうちのいずれかが、悪用されやすい、ユーザをリスク(たとえば、なりすまし犯罪または損金)にさらす、または場合によっては厳重な審査を必要とする、極めて重要な/クリティカルなソフトウェアアプリケーション(たとえば、バンキングアプリ、クレジットカード情報を記憶するアプリケーションなど)として標示されているかどうかを判定することによって、トランザクションタイプクリティカリティ値を計算するように構成されてもよい。コンピューティングデバイスはまた、挙動情報を収集するためにプロセスまたはソフトウェアアプリケーションのアクティビティ/挙動を監視し、収集された挙動情報に基づいて、監視されたアクティビティ/挙動を表す挙動ベクトルを生成し、プロセス/ソフトウェアアプリケーションが極めて重要な/クリティカルなソフトウェアアプリケーションであるか、または詳細な監視を必要とするクリティカルなアクティビティに関与しているかを決定するために、生成された挙動ベクトルを分類器モデルまたはクリティカルな挙動のモデルと比較し、極めて重要/クリティカルであると決定されたアクティビティ、プロセス、またはソフトウェアアプリケーションの数に基づいて、トランザクションタイプクリティカリティ値を計算してもよい。
【００４８】
一態様では、コンピューティングデバイスは、ソフトウェアアプリケーションが許可される、認証される、または非良性である疑いまたは信頼性の程度を(たとえば、確率値などによって)表すかまたは数量化するソフトウェア完全性信頼性値を決定するように構成されてもよい。コンピューティングデバイスは、認証要素を計算/選択するためにおよび/または現在の状況下で評価されるべき認証要素の数を決定するために、そのようなソフトウェア完全性信頼性値を使用してもよい。コンピューティングデバイスはまた、ソフトウェア完全性信頼性値の関数として脆弱性値を計算し、ユーザを認証するときにデバイスによって評価されるべき認証要素の数を決定するために脆弱性値を使用してもよい。
【００４９】
一態様では、コンピューティングデバイスは、デバイスによって評価される、プロセス、ソフトウェアアプリケーション、またはデバイス挙動ごとの履歴挙動情報を収集および記憶するように構成されてもよい。履歴挙動情報は、ソフトウェアアプリケーションまたはプロセスの以前に観測された挙動、その挙動の優先度または相対的重要度、挙動が以前に分析されたか/良性または非良性として分類されたかどうか、挙動の以前の分類についての分類信頼性値、(非良性として分類された挙動についての)悪意または性能低下の程度を識別する重大度値、挙動が最後に観測、分析または分類されたのはいつかを識別するタイムスタンプ値、および他の同様の情報を識別するのに適した情報を含んでもよい。
【００５０】
コンピューティングデバイスは、履歴挙動値(信頼性/確率値)を計算するために履歴挙動情報を使用し、認証要素を選択/計算するためにおよび/またはユーザを認証するときに分析されるべき認証要素の数を決定するために履歴挙動値を使用するように構成されてもよい。たとえば、コンピューティングデバイスは、デバイス上で現在動作しているソフトウェアアプリケーションの挙動が以前に非良性として分類されたことを履歴挙動情報が示すときに(または履歴挙動値が低いかもしくは0に近いときに)、より強力なもしくはよりロバストな認証要素を選択するおよび/またはより多い数の認証要素を評価するように構成されてもよい。同様に、コンピューティングデバイスは、その現在の挙動がいずれも最近(たとえば、過去1時間、1日、1週間、1カ月、1年などに)疑わしいもしくは非良性として分類されなかったことを履歴挙動情報が示すときにまたは履歴挙動値が高いかもしくは1に近いときに、よりリーンな/より弱い認証要素を選択するかまたはより少ない数の認証要素を評価するように構成されてもよい。コンピューティングデバイスはまた、履歴挙動情報または履歴挙動値の関数として脆弱性値を計算し、ユーザを認証するときにデバイスによって評価されるべき認証要素の数を決定するために脆弱性値を使用するように構成されてもよい。
【００５１】
様々な態様では、コンピューティングデバイスは、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および/または履歴挙動値のいくつかまたはすべての関数として脆弱性値を計算するように構成されてもよい。コンピューティングデバイスは、ユーザを認証するときにデバイスによって評価されるべき認証要素の数を決定するために脆弱性値を使用してもよい。コンピューティングデバイスはまた、認証要素をインテリジェントに選択/計算するために脆弱性値を使用してもよい。
【００５２】
機械学習技法および/または挙動分析技法を使用することによって、コンピューティングデバイスは、過剰な量のその処理リソースまたは電力リソースを消費することなしに、認証要素を連続的に(またはほぼ連続的に)計算、選択、および/または評価してもよい。コンピューティングデバイスは、クリティカルな時(たとえば、ログイン時)にだけではなく常にリスクレベルを決定することによって、確率的にまたは確率的な方法を使用してこれを達成してもよい。
【００５３】
一態様では、コンピューティングデバイスは、認証のために明示的なユーザ対話を必要とすることなしにユーザを認証するために、パッシブ認証動作を実行するように構成されてもよい。この態様では、コンピューティングデバイスは、パッシブ認証の精度でデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定し、デバイス上で動作するプロセスまたはソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定し、パッシブ認証における信頼性のレベルがクリティカリティのレベルに適しているかどうかを判定するために、パッシブ認証信頼性値をクリティカリティレベル値と比較し、比較の結果に基づいて、パッシブ認証動作において使用されるべき認証要素および/または認証要素の数を決定(たとえば、計算または選択)するように構成されてもよい。
【００５４】
様々な態様では、コンピューティングデバイスは、コンピューティングデバイスの包括的な挙動監視および分析システムを介して、本出願で説明する動作のいずれかまたはすべてを実行するように構成されてもよい。挙動監視および分析システムは、コンピューティングデバイスの応答性、性能、または電力消費特性に著しい悪影響またはユーザが知覚できる影響を及ぼすことなしに、これらの動作を達成してもよい。
【００５５】
挙動監視および分析システムは、非良性のソフトウェアアプリケーション(たとえば、悪意のある、不適切に書かれた、デバイスと互換性のないアプリケーションなど)を迅速かつ効率的に識別し、そのようなアプリケーションがコンピューティングデバイスの性能、電力利用レベル、ネットワーク使用レベル、セキュリティ、および/またはプライバシーを経時的に劣化させるのを防止するように構成されてもよい。挙動監視および分析システムは、デバイスによって評価される認証要素の数を決定し、評価される認証要素のタイプを決定し、認証要素を評価するときに実行されるべき動作を決定するようにさらに構成されてもよい。挙動監視および分析システムは、デバイスの現在の挙動、進行中のトランザクションのタイプ、ユーザ信頼性値、ソフトウェア完全性信頼性値、またはデバイス上で動作するソフトウェアアプリケーションの履歴挙動に基づいて、ユーザ、プロセス、ソフトウェアアプリケーション、または任意の他のエンティティもしくは構成要素を認証するようにさらに構成されてもよい。
【００５６】
挙動ベースの監視および分析システムは、観測器プロセス、デーモン、モジュール、またはサブシステム(本明細書では、まとめて「モジュール」と呼ばれる)と、挙動抽出器モジュールと、分析器モジュールとを含んでもよい。観測器モジュールは、コンピューティングデバイスシステムの様々なレベルにおいて様々なアプリケーションプログラミングインターフェース(API)、レジスタ、カウンタ、または他のデバイス構成要素(本明細書では、まとめて「計測対象構成要素(instrumented components)」)を計測するかまたはそれらを協調させ、計測対象構成要素から挙動情報を収集し、収集された挙動情報を挙動抽出器モジュールに(たとえば、メモリ書込み動作、関数呼出しなどを介して)通信するように構成されてもよい。挙動抽出器モジュールは、各々がデバイスの1つまたは複数の特定のスレッド、プロセス、ソフトウェアアプリケーション、モジュール、または構成要素に関連付けられた観測されたイベント、条件、タスク、アクティビティ、および/または挙動(本明細書では、まとめて「挙動」)の多くまたはすべてを表すかまたは特徴付ける挙動ベクトルを生成するために、収集された挙動情報を使用してもよい。挙動抽出器モジュールは、生成された挙動ベクトルを分析器モジュールに(たとえば、メモリ書込み動作、関数呼出しなどを介して)通信してもよく、分析器モジュールは、分析結果を生成するために挙動ベクトルを分類器モデルに適用し、ソフトウェアアプリケーションまたはデバイス挙動が良性であるか非良性(たとえば、悪意のある、不適切に書かれた、性能を劣化させる、など)であるかを決定するために分析結果を使用してもよい。次いで、デバイスプロセッサは、識別された問題(たとえば、非良性であると決定された挙動)を是正する、修復する、解消する、分離する、またはそうでなければ解決するために様々な動作を実行してもよい。
【００５７】
各挙動ベクトルは、1つまたは複数の「挙動特徴」を含むかまたはカプセル化する情報構造であってもよい。挙動特徴は、モバイルデバイスにおける観測されたイベント、条件、アクティビティ、動作、関係、対話、または挙動のすべてまたは一部分を表す抽象的な数またはシンボルであってもよい。各挙動特徴は、可能な値の範囲、それらの値に対して実行される場合がある動作、値の意味、および他の同様の情報を識別するデータタイプに関連付けられてもよい。データタイプは、対応する挙動特徴(または特徴値)がどのように測定され、分析され、重み付けられ、または使用されるべきかを決定するために、モバイルデバイスによって使用されてもよい。
【００５８】
一態様では、コンピューティングデバイスは、プロセス/アプリケーションの挙動をn次元空間にマップする、サイズ"n"の挙動ベクトルを生成するように構成されてもよい。挙動ベクトル内の各数またはシンボル(すなわち、ベクトルによって記憶された"n"値の各々)は、デバイスの特徴の値を表してもよい。コンピューティングデバイスは、プロセス/ソフトウェアアプリケーションが異常であるかどうかを判定するために、(たとえば、挙動ベクトルをクリティカルな挙動のモデルに適用することなどによって)挙動ベクトルを分析してもよい。コンピューティングデバイスはまた、システムの正常な/異常な挙動を識別するために、システムにおけるすべてのプロセス/アプリケーションの挙動スコアをアグリゲートしてもよい。
【００５９】
一態様では、コンピューティングデバイスは、クリティカルな挙動のモデルを記憶するように構成されてもよい。クリティカルな挙動のモデルは、クリティカリティレベル(または優先度もしくは重要度値)に関連する一般的な「クリティカルな」挙動を識別してもよい。クリティカルな挙動の例は、近距離無線通信(NFC)支払い、バンキングトランザクション、写真撮影、オーディオまたはビデオ情報の記録、パスワードまたはPINへのアクセス、セキュアな電子メールまたは暗号化電子メールの送信または受信などを処理するための動作を含む。これらおよび他のクリティカルな挙動のモデルは、クラウドサーバまたはネットワークに記憶され、多数のデバイスにわたって共有され、周期的にまたはオンデマンドでコンピューティングデバイスに送信され、個人ユーザに関連付けられたクリティカルな挙動を考慮するためにデバイスにおいてカスタマイズされてもよい。クリティカルな挙動のモデルは、分類器モデルであってもよく、または分類器モデルに含まれてもよい。
【００６０】
分類器モデルは、特定の特徴、要素、データポイント、エントリ、API、状態、条件、挙動、ソフトウェアアプリケーション、プロセス、動作、構成要素など(本明細書では、まとめて「特徴」)またはデバイスの挙動の他の態様を迅速かつ効率的にテストまたは評価するためにデバイスプロセッサによって使用される場合があるデータ、エントリ、決定ノード、決定基準、および/または情報構造を含む挙動モデルであってもよい。分類器モデルはまた、ソフトウェアアプリケーション間の関係および/またはモバイルデバイス内で監視されるべき挙動の性質を決定するためにデバイスプロセッサによって使用される場合がある情報を含んでもよい。
【００６１】
各分類器モデルは、フル分類器モデルまたはリーン分類器モデルとして類別されてもよい。フル分類器モデルは、数千の特徴および数十億のエントリを含んでもよい大きいトレーニングデータセットの関数として生成される、ロバストなデータモデルであってもよい。リーン分類器モデルは、特定のモバイルデバイス挙動が良性ではないかどうかを判定することに最も関連がある特徴/エントリに対するテストを含むかまたは優先する縮小されたデータセットから生成される、より集中的なデータモデルであってもよい。ローカル分類器モデルは、モバイルコンピューティングデバイスにおいて生成されるリーン分類器モデルであってもよい。モデルが使用されるコンピューティングデバイスにおいて分類器モデルを生成することによって、様々な態様は、コンピューティングデバイスが、その特定のデバイス上の挙動が良性であるか、またはそのデバイスの性能の劣化に寄与しているかを決定する際に最も重要である特定の特徴を正確に識別することを可能にする。これらの態様はまた、コンピューティングデバイスが、分類器モデルにおける特徴を、その特定のデバイスにおける挙動を分類することに対するその相対的重要度に従って正確に優先することを可能にする。
【００６２】
(図2〜図7を参照しながら説明する態様を含む)様々な態様は、シングルプロセッサシステムおよびマルチプロセッサシステム、ならびにシステムオンチップ(SOC)を含む、いくつかの異なるモバイルデバイスにおいて実装されてもよい。図1は、様々な態様を実装するコンピューティングデバイスにおいて使用される場合がある例示的なシステムオンチップ(SOC)100アーキテクチャを示すアーキテクチャ図である。SOC100は、デジタル信号プロセッサ(DSP)101、モデムプロセッサ104、グラフィックスプロセッサ106、およびアプリケーションプロセッサ108などの、いくつかの異種(heterogeneous)プロセッサを含んでもよい。SOC100はまた、異種プロセッサ101、104、106、108のうちの1つまたは複数に接続された1つまたは複数のコプロセッサ110(たとえば、ベクトルコプロセッサ)を含んでもよい。各プロセッサ101、104、106、108、110は、1つまたは複数のコアを含んでもよく、各プロセッサ/コアは、その他のプロセッサ/コアとは無関係に動作を実行してもよい。たとえば、SOC100は、第1のタイプのオペレーティングシステム(たとえば、FreeBSD、LINIX、OS Xなど)を実行するプロセッサと、第2のタイプのオペレーティングシステム(たとえば、Microsoft Windows 8)を実行するプロセッサとを含んでもよい。
【００６３】
SOC100はまた、センサデータ、アナログデジタル変換、ワイヤレスデータ送信を管理し、ゲームおよび映画用の符号化オーディオ信号の処理などの他の特殊な動作を実行するためのアナログ回路およびカスタム回路114を含んでもよい。SOC100は、電圧レギュレータ、発振器、位相ロックループ、周辺ブリッジ、データコントローラ、メモリコントローラ、システムコントローラ、アクセスポート、タイマー、ならびに、コンピューティングデバイス上で実行されているプロセッサおよびクライアントをサポートするために使用される他の同様の構成要素など、システム構成要素およびリソース116をさらに含んでもよい。
【００６４】
システム構成要素116およびカスタム回路114は、カメラ、電子ディスプレイ、ワイヤレス通信デバイス、外部メモリチップなどの周辺デバイスとインターフェースする回路を含んでもよい。プロセッサ101、104、106、108は、相互接続/バスモジュール124を介して、1つまたは複数のメモリ要素112、システム構成要素およびリソース116、ならびにカスタム回路114に相互接続されてもよく、相互接続/バスモジュール124は、再構成可能な論理ゲートのアレイを含むおよび/またはバスアーキテクチャ(たとえば、CoreConnect、AMBAなど)を実装することができる。通信は、高性能ネットワークオンチップ(NoC)などの高度な相互接続によって提供されてもよい。
【００６５】
SOC100は、クロック118および電圧レギュレータ120など、SOCの外部のリソースと通信するための入力/出力モジュール(図示せず)をさらに含んでもよい。SOCの外部のリソース(たとえば、クロック118、電圧レギュレータ120)は、内部SOCプロセッサ/コア(たとえば、DSP101、モデムプロセッサ104、グラフィックスプロセッサ106、アプリケーションプロセッサ108など)のうちの2つ以上によって共有されてもよい。
【００６６】
SOC100はまた、スピーカー、ユーザインターフェース要素(たとえば、入力ボタン、タッチスクリーンディスプレイなど)、マイクロフォンアレイ、物理条件(たとえば、ロケーション、方向、動き、方位、振動、圧力など)を監視するためのセンサ、カメラ、コンパス、GPSレシーバ、通信回路(たとえば、Bluetooth(登録商標)、WLAN、WiFiなど)、および現代の電子デバイスの他のよく知られている構成要素(たとえば、加速度計など)を含む、センサからセンサデータを収集するのに適したハードウェア構成要素および/またはソフトウェア構成要素を含んでもよい。
【００６７】
上記で説明したSOC100に加えて、様々な態様は、単一のプロセッサ、複数のプロセッサ、マルチコアプロセッサ、またはそれらの任意の組合せを含んでもよい、多種多様なコンピューティングシステムにおいて実装されてもよい。
【００６８】
図2は、様々な態様による、ユーザ、アプリケーション、またはアクティビティを認証するために挙動分析技法を使用するように構成される挙動ベースのセキュリティシステム200を含む一態様のコンピューティングデバイスにおける、例示的な論理構成要素および情報フローを示す。図2に示す例では、コンピューティングデバイスは、挙動観測器モジュール202と、挙動抽出器モジュール204と、挙動分析器モジュール206と、アクチュエータモジュール208と、認証モジュール210とを含む実行可能命令モジュールで構成されるデバイスプロセッサ(すなわち、モバイルデバイスプロセッサ)を含むモバイルデバイス102である。
【００６９】
様々な態様では、認証モジュール210のすべてまたは部分は、挙動観測器モジュール202、挙動抽出器モジュール204、挙動分析器モジュール206、またはアクチュエータモジュール208の一部として実装されてもよい。モジュール202〜210の各々は、ソフトウェア、ハードウェア、またはそれらの組合せにおいて実装される、スレッド、プロセス、デーモン、モジュール、サブシステム、または構成要素であってもよい。様々な態様では、モジュール202〜210は、オペレーティングシステムの部分内(たとえば、カーネル内、カーネル空間中、ユーザ空間中など)で、個別のプログラムもしくはアプリケーション内で、専用ハードウェアバッファもしくはプロセッサ中で、またはそれらの任意の組合せにおいて実装されてもよい。一態様では、モジュール202〜210のうちの1つまたは複数は、モバイルデバイス102の1つまたは複数のプロセッサ上で実行されるソフトウェア命令として実装されてもよい。
【００７０】
認証モジュール210は、その他のモジュール202〜208によって収集された、生成された、または分析された情報のいずれかまたはすべてに基づいて、認証が必要とされるかどうか、評価されるべき認証要素の数、評価されるべき認証要素のタイプ、および認証要素を評価するときに実行されるべき動作をインテリジェントに、効率的に、かつ動的に決定するように構成されてもよい。たとえば、認証モジュール210は、デバイスの現在の挙動、進行中のトランザクションのタイプ、ユーザ信頼性値、およびソフトウェア完全性信頼性値を決定するために、挙動観測器モジュール202によって収集された情報を使用し、ユーザを認証するときに評価されるべき認証要素の数およびタイプを決定するために、いずれかまたはすべてのそのような情報を使用してもよい。別の例として、認証モジュール210は、挙動分析器モジュール206によって挙動ベクトルを分類器モデルに適用した結果を履歴挙動情報として記憶し、履歴挙動値(すなわち、信頼性または確率値)を計算するために、記憶された履歴挙動情報を使用し、ユーザを認証するために挙動観測器モジュール202によって監視され挙動分析器モジュール206によって分析されるべきデバイスの特徴を決定するために、履歴挙動値を使用するように構成されてもよい。
【００７１】
一態様では、認証モジュール210は、知識要素タイプ、所有要素タイプ、および固有要素タイプのうちの2つ以上を含む、2つ以上の異なるタイプの独立した認証要素をテストするために選択するように構成されてもよい。一態様では、認証モジュール210は、認証要素をテストまたは評価するための動作を決定するように構成されてもよい。そのような動作は、挙動観測器モジュール202によって監視されるアクティビティのいずれかまたは挙動分析器モジュール206によって分析される挙動のいずれかを含んでもよく、またはそれに基づいてもよい。
【００７２】
挙動観測器モジュール202は、デバイスの様々なレベル/モジュールにおいてアプリケーションプログラミングインターフェース(API)、カウンタ、ハードウェアモニタなどを計測し、ある時間期間にわたって様々なレベル/モジュールにおいてアクティビティ、条件、動作、およびイベント(たとえば、システムイベント、状態変化など)を監視するように構成されてもよい。挙動観測器モジュール202は、監視されたアクティビティ、条件、動作、またはイベントに関係する挙動情報を収集し、収集された情報をメモリに(たとえば、ログファイルなどに)記憶してもよい。
【００７３】
挙動観測器モジュール202は、アプリケーションフレームワークまたはランタイムライブラリにおけるライブラリAPIコール、システムコールAPI、ファイルシステムおよびネットワーキングサブシステム動作、デバイス(センサデバイスを含む)の状態変化、ならびに他の同様のイベントに関係する情報を収集することによって、モバイルコンピューティングデバイス102のアクティビティを監視するように構成されてもよい。加えて、挙動観測器モジュール202は、ファイル名、ファイルアクセスのカテゴリ(個人情報または通常のデータファイル)を探索すること、ファイル(たとえば、exe、zipタイプなど)を作成または削除すること、ファイル読出し/書込み/シーク動作、ファイルパーミッションを変更することなどを含んでもよい、ファイルシステムアクティビティを監視してもよい。
【００７４】
挙動観測器モジュール202はまた、接続のタイプ、プロトコル、ポート番号、デバイスが接続されるサーバ/クライアント、接続の数、通信の量または頻度などを含んでもよいデータネットワークアクティビティを監視することによって、モバイルコンピューティングデバイス102のアクティビティを監視してもよい。挙動観測器モジュール202は、送出、受信、または傍受された通話またはメッセージ(たとえば、SMSなど)のタイプおよび数(たとえば、かけられたプレミアムコールの数)を監視することを含んでもよい電話ネットワークアクティビティを監視してもよい。
【００７５】
挙動観測器モジュール202はまた、フォークの数、メモリアクセス動作、開かれたファイルの数などを監視することを含んでもよいシステムリソース使用を監視することによって、モバイルコンピューティングデバイス102のアクティビティを監視してもよい。挙動観測器モジュール202は、ディスプレイがオンかまたはオフか、デバイスがロックされているかまたはロックされていないか、バッテリーの残量、カメラの状態などの様々な要素を監視することを含んでもよい、モバイルコンピューティングデバイス102の状態を監視してもよい。挙動観測器モジュール202はまた、重要なサービス(ブラウザ、契約プロバイダなど)に対する意図、プロセス間通信(IPC)の程度、ポップアップウィンドウなどを監視することなどによって、プロセス間通信を監視してもよい。
【００７６】
挙動観測器モジュール202はまた、ドライバ統計値および/または1つもしくは複数のハードウェア構成要素のステータスを監視することによって、モバイルコンピューティングデバイス102のアクティビティを監視してもよく、ハードウェア構成要素は、カメラ、センサ、電子ディスプレイ、WiFi通信構成要素、データコントローラ、メモリコントローラ、システムコントローラ、アクセスポート、タイマー、周辺デバイス、ワイヤレス通信構成要素、外部メモリチップ、電圧レギュレータ、発振器、位相ロックループ、周辺ブリッジ、ならびにモバイルコンピューティングデバイス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は、クラウドサービスまたはネットワーク内のサーバおよび/または構成要素から挙動および/または要素の初期セットを受信してもよい。一態様では、挙動/要素の初期セットは、機械学習分類器モデル内で指定されてもよい。一態様では、機械学習分類器モデルは、クリティカルな挙動のモデルであってもよい。
【００８６】
挙動観測器モジュール202は、収集された挙動情報を挙動抽出器モジュール204に(たとえば、メモリ書込み動作、関数呼出しなどを介して)通信してもよい。挙動抽出器モジュール204は、収集された挙動情報を受信するかまたは取り出し、1つまたは複数の挙動ベクトルを生成するためにこの情報を使用するように構成されてもよい。各挙動ベクトルは、デバイス、ソフトウェアアプリケーション、またはプロセスの挙動を値またはベクトルデータ構造で簡潔に記述してもよい。
【００８７】
ベクトルデータ構造は、一連の数字を含んでもよく、数字の各々は、モバイルデバイスのカメラが使用中であるかどうか(たとえば、0または1として)、モバイルデバイスからどのくらいのネットワークトラフィックが送信されているか、もしくはモバイルデバイスによってどのくらいのネットワークトラフィックが生成されているか(たとえば、20KB/秒など)、いくつのインターネットメッセージが通信されているか(たとえば、SMSメッセージの数など)、および/または挙動観測器モジュール202によって収集された任意の他の挙動情報など、モバイルデバイスの特徴または挙動を示す。別の例として、ベクトルデータ構造は、モバイルデバイスがテーブルから手に取られたかどうか、ユーザが電子メールアプリケーション、モバイル支払いアプリケーション、またはモバイルゲームアプリケーションを開いた/起動したかどうか、ユーザがデバイスを別のユーザに手渡したかどうか、ユーザが大人であるかまたは子供であるか、ユーザがデバイスにアクティブに関与しているか(たとえば、ゲームをしている、など)などを表す一連の数字を含んでもよい。
【００８８】
一態様では、挙動抽出器モジュール204は、モバイルデバイスシステム(たとえば、挙動分析器モジュール206)がデバイスの挙動を迅速に認識すること、識別すること、または分析することを可能にする識別子として挙動ベクトルが機能するように、挙動ベクトルを生成するように構成されてもよい。一態様では、挙動抽出器モジュール204は、サイズ"n"の挙動ベクトルを生成するように構成されてもよく、挙動ベクトルの各々は、プロセスまたはソフトウェアアプリケーションの挙動をn次元空間にマップする。一態様では、挙動抽出器モジュール204は、監視されたアクティビティに関するクエリに対する回答を生成するために、または挙動が詳細な監視を必要とするクリティカルなアクティビティであるかどうかを判定するために、機械学習分類器における特徴/決定ノードに入力される場合がある情報を含めるように挙動ベクトルを生成するように構成されてもよい。
【００８９】
一態様では、挙動抽出器モジュール204は、実行情報を含めるように挙動ベクトルを生成するように構成されてもよい。実行情報は、挙動(たとえば、バックグラウンドプロセスによって3秒間に5回使用されたカメラ、フォアグラウンドプロセスによって3秒間に3回使用されたカメラなど)の一部として、または無関係の特徴の一部として、挙動ベクトルに含まれてもよい。一態様では、実行状態情報は、影の特徴値サブベクトルまたはデータ構造として、挙動ベクトルに含まれてもよい。一態様では、挙動ベクトルは、実行状態が関連する特徴、アクティビティ、タスクに関連する影の特徴値サブベクトル/データ構造を記憶してもよい。
【００９０】
挙動抽出器モジュール204は、生成された挙動ベクトルを挙動分析器モジュール206に(たとえば、メモリ書込み動作、関数呼出しなどを介して)通信してもよい。挙動分析器モジュール206は、デバイス挙動が、経時的にデバイスの劣化に寄与している(または寄与する可能性が高い)および/または他の点でデバイス上に問題を生じさせる場合がある非良性の挙動であるかどうかを判定するために、挙動ベクトルを分類器モジュールに適用するように構成されてもよい。挙動分析器モジュール206は、認証が必要とされるかどうか、評価されるべき認証要素の数、評価されるべき認証要素のタイプ、および認証要素を評価するときに実行されるべき動作を決定するために、挙動ベクトルを分類器モジュールに適用するように構成されてもよい。加えて、挙動分析器モジュール206は、進行中のトランザクションのタイプ、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、デバイス上で現在動作しているソフトウェアアプリケーションの履歴挙動、履歴挙動値、脆弱性値などを決定するために、挙動ベクトルを分類器モジュールに適用するように構成されてもよい。
【００９１】
各分類器モデルは、コンピューティングデバイスの挙動の特定の特徴または態様を評価するためにコンピューティングデバイスプロセッサによって使用される場合があるデータおよび/または情報構造(たとえば、特徴ベクトル、挙動ベクトル、構成要素リストなど)を含む挙動モデルであってもよい。各分類器モデルはまた、コンピューティングデバイスにおけるいくつかの特徴、要素、データポイント、エントリ、API、状態、条件、挙動、アプリケーション、プロセス、動作、構成要素など(本明細書では、まとめて「特徴」)を監視するための決定基準を含んでもよい。分類器モデルは、コンピューティングデバイス上にプレインストールされてもよく、ネットワークサーバからダウンロードもしくは受信されてもよく、コンピューティングデバイスにおいて生成されてもよく、またはそれらの任意の組合せであってもよい。分類器モデルは、クラウドソーシングソリューション、挙動モデル化技法、機械学習アルゴリズムなどを使用することによって、生成されてもよい。
【００９２】
各分類器モデルは、フル分類器モデルまたはリーン分類器モデルとして類別されてもよい。フル分類器モデルは、数千の特徴および数十億のエントリを含んでもよい大きいトレーニングデータセットの関数として生成される、ロバストなデータモデルであってもよい。リーン分類器モデルは、特定のアクティビティが進行中のクリティカルなアクティビティであるかどうかおよび/または特定のコンピューティングデバイス挙動が良性ではないかどうかを判定することに最も関連がある特徴/エントリのみを含む/テストする縮小されたデータセットから生成される、より集中的なデータモデルであってもよい。一例として、デバイスプロセッサは、ネットワークサーバからフル分類器モデルを受信し、フル分類器に基づいて、モバイルデバイスにおいてリーン分類器モデルを生成し、デバイスの挙動を攻撃に対して脆弱性があるまたは非良性(たとえば、悪意のある、性能を劣化させる、など)として分類するために、ローカルに生成されたリーン分類器モデルを使用するように構成されてもよい。
【００９３】
ローカルに生成されたリーン分類器モデルは、コンピューティングデバイスにおいて生成されたリーン分類器モデルである。すなわち、モバイルデバイスは高度に構成可能で複雑なシステムであるので、特定のデバイス挙動が非良性である(たとえば、悪意のあるまたは性能を劣化させる)かどうかを判定するために最も重要である特徴は、各デバイスにおいて異なる場合がある。さらに、特徴の異なる組合せは、コンピューティングデバイスが脆弱である(したがって、より高いレベルのユーザ認証が適切である)か、または特定の挙動が非良性であるかを各デバイスが迅速かつ効率的に決定するために、そのデバイスにおける監視および/または分析を必要とする場合がある。しかも、監視および分析を必要とする特徴の正確な組合せ、ならびに各特徴または特徴の組合せの相対的優先度または重要度は、しばしば、挙動が監視または分析されるべきである特定のデバイスから取得された情報を使用してのみ決定されてもよい。これらおよび他の理由で、様々な態様は、モデルが使用されるモバイルデバイスにおいて分類器モデルを生成してもよい。これらのローカル分類器モデルは、デバイスプロセッサが、コンピューティングデバイスが脆弱であるかまたはその特定のデバイス上の挙動が非良性である(たとえば、そのデバイスの性能の劣化に寄与している)かを決定する際に最も重要である特定の特徴を正確に識別することを可能にする。ローカル分類器モデルはまた、デバイスプロセッサが、テストまたは評価される特徴を、コンピューティングデバイスが脆弱であるかどうかを判定するかまたはその特定のデバイスにおける挙動を分類するためのその相対的重要度に従って優先することを可能にする。
【００９４】
デバイス固有の分類器モデルは、特定のコンピューティングデバイスにおけるアクティビティまたは挙動を分類することに最も関連があると決定される、コンピューティングデバイス固有の特徴/エントリのみを含む/テストする、集中的なデータモデルを含む分類器モデルである。アプリケーション固有の分類器モデルは、特定のソフトウェアアプリケーションを評価することに最も関連がある特徴/エントリのみを含む/テストする、集中的なデータモデルを含む分類器モデルである。ユーザ固有の分類器モデルは、デバイスのユーザを識別すること、ユーザのペルソナ(persona)を決定すること、デバイス挙動が識別されたユーザのペルソナと一致するかどうかを判定すること、デバイス挙動がその識別されたユーザのうちの1人によるそのデバイスの通常の使用と一致するかどうかを判定すること、またはユーザのアクティビティがより高いレベルのユーザ認証を正当化する疑わしいもしくは非良性の挙動を示すかどうかを判定することに最も関連がある特徴/エントリに対するテストを含むまたは優先する集中的なデータモデルを含む、ローカル分類器モデルであってもよい。モバイルデバイスにおいてローカルにユーザ固有、デバイス固有、および/またはアプリケーション固有の分類器モデルを動的に生成することによって、様々な態様は、デバイスプロセッサが、その特定のモバイルデバイスの動作および/またはそのデバイスにおいて動作している特定のソフトウェアアプリケーションの動作がその特定のデバイスの既知のユーザのパーソナリティ、習慣、または通常の使用パターンと一致するかどうかを判定するのに最も重要である少数の特徴に対するその監視および分析動作に集中することを可能にする。
【００９５】
本出願で説明する分類器モデルのいずれかまたはすべては、クリティカリティレベルまたは信頼性、確率、優先度、挙動のクリティカリティを識別する重要度値に関連するクリティカルな挙動を識別するクリティカルな挙動のモデルであってもよく、またはそれを含んでもよい。クリティカルな挙動の例は、近距離無線通信(NFC)支払い、バンキングトランザクション、写真撮影、オーディオもしくはビデオ情報の記録、パスワードもしくはPINへのアクセス、セキュアな電子メールもしくは暗号化電子メールの送信もしくは受信、またはモジュール202〜208によって監視され、分析され、もしくはそのようなものとして分類される任意の他のアクティビティもしくは挙動を処理するための動作を含む。
【００９６】
一態様では、挙動分析器モジュール206は、その挙動分析動作の結果がデバイス挙動を良性または非良性のいずれかとして分類するのに十分な情報を提供しないとき、挙動を「疑わしい」として分類するように構成されてもよい。挙動分析器モジュール206は、デバイス挙動が疑わしいとの決定に応答して、挙動観測器モジュール202に通知するように構成されてもよい。それに応答して、挙動観測器モジュール202は、その観測の粒度(すなわち、コンピューティングデバイス特徴が監視される詳細さのレベル)を調整し、および/または、挙動分析器モジュール206から受信された情報(たとえば、リアルタイム分析動作の結果)に基づいて、監視される要素もしくは挙動を変更し、新しいもしくは追加の挙動情報を生成もしくは収集し、さらなる分析/分類のために新しい/追加の情報を挙動分析器モジュール206に送信してもよい。挙動観測器モジュール202と挙動分析器モジュール206との間のそのようなフィードバック通信は、集合的挙動が良性もしくは非良性として分類されるまで、疑わしいもしくは性能を劣化させる挙動の発生源が識別されるまで、処理もしくはバッテリー消費しきい値に達するまで、または、観測粒度のさらなる変更、調整、もしくは向上から、疑わしいもしくは性能を劣化させるデバイス挙動の発生源を識別することができないとデバイスプロセッサが決定するまで、モバイルコンピューティングデバイス102が、観測の粒度を再帰的に向上させる(すなわち、より細かいまたはより詳細な観測にする)こと、または観測される特徴/挙動を変更することを可能にする。そのようなフィードバック通信はまた、モバイルコンピューティングデバイス102が、過剰な量のコンピューティングデバイスの処理リソース、メモリリソース、またはエネルギーリソースを消費することなしに、挙動ベクトルおよび分類器モデルを調整または修正することを可能にする。
【００９７】
様々な態様では、モバイルデバイス102は、コンピューティングデバイスが脆弱であるかどうかを判定することまたはアクティビティもしくは挙動が非良性であると決定することに最も関連がある特徴、要素、およびデータポイントをインテリジェントにかつ効率的に識別するために、ネットワークサーバとともに動作するように構成されてもよい。たとえば、デバイスプロセッサは、ネットワークサーバからフル分類器モデルを受信し、デバイスのユーザならびに/またはデバイスもしくはそのソフトウェアアプリケーションの特徴および機能に固有であるリーン分類器モデル(すなわち、データ/挙動モデル)を生成するために、受信されたフル分類器モデルを使用するように構成されてもよい。デバイスプロセッサは、様々なレベルの複雑さ(または「リーンネス」)のリーン分類器のモデルのファミリーを生成するために、フル分類器モデルを使用してもよい。リーン分類器モデルの最もリーンなファミリー(すなわち、最も少数のテスト条件に基づくリーン分類器モデル)は、分類器モデルが類別できない挙動に遭遇するまでルーチン的に適用されてもよく、遭遇した時点で、よりロバストな(すなわち、それほどリーンではない)リーン分類器モデルが、挙動を類別する試みにおいて適用されてもよい。挙動の最終的な分類が達成されるか、または必要なレベルのユーザ認証が決定されるまで、生成されたリーン分類器モデルのファミリー内のより一層ロバストなリーン分類器モデルのアプリケーションが適用されてもよい。このようにして、デバイスプロセッサは、挙動を最終的に分類するためにロバストな分類器モデルが必要とされるそれらの状況に対して、最も完全であるがリソース集約的なリーン分類器モデルの使用を制限することによって、効率と精度との間でバランスをとることができる。
【００９８】
様々な態様では、デバイスプロセッサは、フル分類器モデルに含まれる有限ステートマシン表示または表現をブーストされた決定株に変換することによって、リーン分類器モデルを生成するように構成されてもよい。デバイスプロセッサは、フル分類器モデルに含まれるブーストされた決定株のサブセットを含むリーン分類器モデルを生成するために、アプリケーション、デバイス、またはユーザ固有の特徴に基づいて、ブーストされた決定株のフルセットをプルーニングするかまたは選び出すことができる。次いで、デバイスプロセッサは、デバイス挙動をインテリジェントに監視、分析および/または分類するために、リーン分類器モデルを使用してもよい。
【００９９】
ブーストされた決定株は、厳密に1つのノード(したがって、1つのテスト質問またはテスト条件)と重み値とを有し、したがってデータ/挙動の2値の分類における使用に好適な、1レベル決定木である。すなわち、挙動ベクトルをブーストされた決定株に適用することで、2値の回答(たとえば、YesまたはNo)がもたらされる。たとえば、ブーストされた決定株によってテストされる質問/条件が「ショートメッセージサービス(SMS)送信の頻度が毎分x回未満であるか」である場合、"3"の値をブーストされた決定株に適用することで、(「3回未満」のSMS送信の場合)"yes"回答または(「3回以上」のSMS送信の場合)"no"回答のいずれかがもたらされる。ブーストされた決定株は、非常に単純で原始的である(したがって、著しい処理リソースを必要としない)ので効率的である。ブーストされた決定株はまた、非常に並列化可能であり、したがって、(たとえば、コンピューティングデバイス内の複数のコアまたはプロセッサによって)多くの株が並列に/同時に適用またはテストされてもよい。
【０１００】
図3は、一態様による、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数をインテリジェントに決定する方法300を示す。方法300は、モバイルコンピューティングデバイスまたはリソース制約のあるコンピューティングデバイスの処理コアまたはデバイスプロセッサによって実行されてもよい。ブロック301において、デバイスプロセッサは、挙動情報を収集するために、コンピューティングデバイスシステムの様々なレベルにおいて計測対象構成要素(たとえば、API、レジスタ、カウンタなど)を監視し、新しいアクティビティ、条件、イベント、または挙動が進行中であることを検出してもよい。ブロック302において、デバイスプロセッサは、収集された挙動情報に基づいて、検出されたアクティビティ、条件、イベント、または挙動を表すかまたは特徴付ける挙動ベクトルを生成してもよい。
【０１０１】
任意選択のブロック304において、デバイスプロセッサは、挙動ベクトルに基づいて、トランザクションタイプクリティカリティ値を計算(または以前に計算されたトランザクションタイプクリティカリティ値を更新)してもよい。たとえば、デバイスプロセッサは、挙動のクリティカリティまたは重要度を決定するために、挙動ベクトルをクリティカルな挙動のモデルと比較し、挙動の決定されたクリティカリティまたは重要度に基づいて、トランザクションタイプクリティカリティ値を計算してもよい。一態様では、デバイスプロセッサは、両端値を含む0と1の間の値に等しくなるようにトランザクションタイプクリティカリティ値を設定してもよい。たとえば、デバイスプロセッサは、挙動が非クリティカルである(たとえば、デバイスが移動した)と決定されたときは値を"1.0"に設定し、挙動がニュートラルであると決定されたときは"0.5"に設定し、挙動が非常にクリティカルである(たとえば、NFC支払いを使用するバンキングトランザクション)と決定されたときは"0.1"に設定してもよい。
【０１０２】
任意選択のブロック306において、デバイスプロセッサは、挙動ベクトルに基づいて、ユーザ信頼性値を計算(または以前に計算されたユーザ信頼性値を更新)してもよい。たとえば、デバイスプロセッサは、検出された挙動がユーザの通常の使用パターンと一致するかどうかを判定するために、生成された挙動ベクトルを分類器モデルに適用し、ユーザ信頼性値を計算するために、挙動ベクトルをモデルに適用した結果を使用してもよい。一態様では、デバイスプロセッサは、デバイスの現在の使用パターンがそのユーザによるデバイスの通常の使用パターンと一致する程度を示すために、両端値を含む0と1の間の値に等しくなるようにユーザ信頼性値を設定してもよい。たとえば、デバイスプロセッサは、挙動が通常の使用パターンと非常に一致するときは値を"1.0"に設定し、挙動がニュートラルであるときは"0.5"に設定し、挙動が非常に異常であるときは"0.1"に設定してもよい。
【０１０３】
任意選択のブロック308において、デバイスプロセッサは、挙動ベクトルに基づいて、ソフトウェア完全性信頼性値を計算(または以前に計算されたソフトウェア完全性信頼性値を更新)してもよい。デバイスプロセッサは、挙動に関連付けられたソフトウェアアプリケーションが良性であるという信頼性の程度を示すために、両端値を含む0と1の間の値に等しくなるようにソフトウェア完全性信頼性値を設定してもよい。たとえば、デバイスプロセッサは、挙動が挙動分析器モジュールによって良性として分類される場合は値を"1.0"に設定し、挙動が軽度に疑わしいと決定された場合は"0.8"に設定し、挙動が非常に疑わしいと決定された場合は"0.2"に設定し、挙動が非良性であると決定された場合は"0.0"に設定してもよい。
【０１０４】
任意選択のブロック310において、デバイスプロセッサは、メモリに記憶された挙動ベクトルおよび/または履歴挙動情報に基づいて、履歴挙動値を計算(または以前に計算された履歴挙動値を更新)してもよい。履歴挙動情報は、関連するソフトウェアアプリケーションまたはプロセスの以前に観測された挙動、その挙動の優先度または相対的重要度、挙動が以前に分析されたか/良性または非良性として分類されたかどうか、挙動の以前の分類についての分類信頼性値、(非良性として分類された挙動についての)悪意または性能低下の程度を識別する重大度値、挙動が最後に観測、分析または分類されたのはいつかを識別するタイムスタンプ値、および他の同様の情報を識別するのに適した情報を含んでもよい。一態様では、デバイスプロセッサは、検出されたアクティビティ、条件、イベント、または挙動が非良性であることを履歴挙動情報が示す程度を示すために、両端値を含む0と1の間の値に等しくなるように履歴挙動値を設定してもよい。たとえば、デバイスプロセッサは、デバイス上で現在動作しているソフトウェアアプリケーションの挙動が以前に良性として分類されたことを履歴挙動情報が示す場合は値を"1.0"に設定し、挙動が疑わしいと先月に決定された場合は"0.8"に設定し、挙動が疑わしいと1時間前に決定され、高い優先度または相対的重要度を有する場合は"0.2"に設定し、挙動が非良性であると最近決定された場合は"0.0"に設定してもよい。
【０１０５】
ブロック312において、デバイスプロセッサは、コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のいずれかまたはすべてを使用してもよい。
【０１０６】
図4は、コンピューティングデバイスによって検出される場合があるイベント/挙動の例示的なシーケンスと、各検出されたイベント/挙動に基づいてトランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値について計算される場合がある例示的な値とを示す。図4はセキュリティのレベルも示し、認証要素の数は、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値に基づいて動的に決定されてもよい。
【０１０７】
動作452において、デバイスプロセッサは、ユーザがテーブルまたは同等の高さからコンピューティングデバイスを手に取ったことを(たとえば、配向センサなどから収集された情報を介して)検出する。結果として、デバイスプロセッサは、トランザクションタイプクリティカリティ値を"1.0"に、(ユーザを識別するのに十分な情報がまだないので)ユーザ信頼性値を"0.5"に、ソフトウェア完全性信頼性値を"1.0"に、履歴挙動値を"0.7"に設定する。これらの値に基づいて、デバイスプロセッサは、ユーザを認証するのに適した認証要素の数を3つ(3)に設定する。動作453において、ユーザはデバイスにログインし、デバイスプロセッサは、3つの認証要素(たとえば、パスワード、指紋、セキュリティトークンなど)を使用してユーザを認証する。
【０１０８】
動作454において、デバイスプロセッサは、ユーザが電子メールアプリケーションを開いた/起動したことを検出する。結果として、デバイスプロセッサは、トランザクションタイプクリティカリティ値を(よりクリティカルな)"0.4"に、ユーザ信頼性値を(より高い信頼性でユーザをモデル化するためのより良い機会を有した)"0.7"に、ソフトウェア完全性信頼性値を"1.0"に、履歴挙動値を"0.7"に設定する。これらの値に基づいて、デバイスプロセッサは、ユーザを認証するのに適した認証要素の数を4つ(4)に増やす。動作455において、デバイスプロセッサは、追加の認証要素(たとえば、顔認識のためにカメラをアクティブ化する、など)を使用してユーザを認証する。
【０１０９】
動作456において、デバイスプロセッサは、ユーザがモバイル支払いアプリケーションを開いた/起動したことを検出する。結果として、デバイスプロセッサは、トランザクションタイプクリティカリティ値を(非常にクリティカルな)"0.1"に、ユーザ信頼性値を(ユーザアイデンティティに非常に自信がある)"1.0"に、ソフトウェア完全性信頼性値を"1.0"に、履歴挙動値を"0.7"に設定する。これらの値に基づいて、デバイスプロセッサは、ユーザを認証するのに適した認証要素の数を5つ(5)に増やすことができる。動作457において、デバイスプロセッサは、動作のこの特定のシーケンスがユーザの前のデバイス使用パターンに一致するかどうかを判定することなどによって、追加の認証要素を使用してユーザを認証する。
【０１１０】
動作458において、デバイスプロセッサは、ユーザがモバイルゲームアプリケーションを開いた/起動したことを検出する。結果として、デバイスプロセッサは、トランザクションタイプクリティカリティ値を"0.9"に、ユーザ信頼性値を"1.0"に、ソフトウェア完全性信頼性値を"1.0"に、履歴挙動値を"0.8"に設定する。これらの値に基づいて、デバイスプロセッサは、ユーザを認証するのに適した認証要素の数を2つ(2)に減らすことができる。
【０１１１】
動作460において、ユーザはデバイスを子供に手渡す。デバイスプロセッサは、ユーザがデバイスを第2のユーザに手渡したことと、(たとえば、第2のユーザがデバイスと対話するために両手を使用することに基づいて、顔認識技術を使用することによって、など)第2のユーザが子供であることとを検出し、ユーザ信頼性値を"0.5"に設定する。結果として、デバイスプロセッサは、トランザクションタイプクリティカリティ値を"0.9"に、ユーザ信頼性値を"0.5"に、ソフトウェア完全性信頼性値を"1.0"に、履歴挙動値を"0.8"に設定する。これらの値に基づいて、デバイスプロセッサは、認証要素の数を3つ(3)に増やすことができる。
【０１１２】
動作462において、デバイスプロセッサは、第2のユーザ(子供)がゲームアプリケーションをプレイし始めたことを検出する。結果として、デバイスプロセッサは、トランザクションタイプクリティカリティ値を"0.9"に、ユーザ信頼性値を"1.0"に、ソフトウェア完全性信頼性値を"1.0"に、履歴挙動値を"0.8"に設定する。これらの値に基づいて、デバイスプロセッサは、認証要素の数を2つ(2)に減らすことができる。
【０１１３】
動作464において、デバイスプロセッサは、第2のユーザ(子供)が疑わしいまたは既知のマルウェアアプリケーションをダウンロードしようとしていることを検出する。結果として、デバイスプロセッサは、トランザクションタイプクリティカリティ値を"0.9"に、ユーザ信頼性値を"1.0"に、ソフトウェア完全性信頼性値を"0.0"に、履歴挙動値を"0.1"に設定する。これらの値に基づいて、デバイスプロセッサは、認証要素の数を6つ(6)に増やすことができる。動作465において、デバイスプロセッサは、追加の認証要素を使用してユーザを認証する。
【０１１４】
図5は、一態様による、多要素認証を実行する方法500を示す。方法500は、モバイルコンピューティングデバイスまたはリソース制約のあるコンピューティングデバイスの処理コアまたはデバイスプロセッサによって実行されてもよい。ブロック502において、デバイスプロセッサは、第1の知識タイプの認証要素を評価するための第1の動作セットと、第2の知識タイプの認証要素を評価するための第2の動作セットとを定義してもよい。デバイスプロセッサは、図2を参照しながら上記で説明した挙動観測器モジュール202および/または挙動分析器モジュール206の動作に基づいて、第1の動作セットおよび第2の動作セットを決定してもよい。
【０１１５】
ブロック504において、デバイスプロセッサは、第1の所有タイプの認証要素を評価するための第3の動作セットと、第2の所有タイプの認証要素を評価するための第4の動作セットとを定義してもよく、これらの動作セットのいずれかまたはすべては、挙動観測器モジュール202および挙動分析器モジュール206の動作に基づいて決定されてもよい。ブロック506において、デバイスプロセッサは、第1の固有タイプの認証要素を評価するための第5の動作セットと、第2の固有タイプの認証要素を評価するための第6の動作セットとを定義してもよく、これらの動作セットも、挙動観測器モジュール202および挙動分析器モジュール206の動作に基づいて決定されてもよい。
【０１１６】
ブロック508において、デバイスプロセッサは、現在の状態/条件下のユーザを認証するのに適した認証要素の数を決定するために、機械学習技法および/または挙動分析技法を、デバイス状態情報、センサデータ、ユーザ対話情報などの収集された挙動情報に適用してもよい。一態様では、これは、図3を参照しながら上記で説明した方法300の動作を実行することによって達成されてもよい。たとえば、ブロック508において、デバイスプロセッサは、コンピューティングデバイスのユーザを認証するときに6つ(6)の認証要素のうちの3つ(3)の認証要素が評価されるべきであると決定するために、クリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を使用してもよい。
【０１１７】
ブロック510において、デバイスプロセッサは、どの認証要素が評価されるべきかを決定し、決定された数の認証要素に基づいて動作セットを選択してもよく、その結果、選択された動作セットは、知識タイプの認証要素、所有タイプの認証要素、および固有タイプの認証要素のうちの2つ以上を評価する。たとえば、ブロック510において、処理コアは、コンピューティングデバイスのユーザを認証するときに第1および第2の知識タイプの認証要素および第2の固有タイプの認証要素が評価されるべきであると決定するために、クリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を使用し、第1および第2の知識タイプの認証要素を評価するための第1および第2の動作セットを選択し、第2の固有タイプの認証要素を評価するための第4の動作セットを選択してもよい。ブロック512において、デバイスプロセッサは、ユーザを認証するために、選択された動作セットを実行してもよい。
【０１１８】
図6は、一態様による、認証要素および/または認証要素の数を決定する方法600を示す。方法600は、モバイルコンピューティングデバイスまたはリソース制約のあるコンピューティングデバイスの処理コアまたはデバイスプロセッサによって実行されてもよい。ブロック602において、デバイスプロセッサは、認証のために明示的なユーザ対話を必要とすることなしにユーザを認証するために、パッシブ認証動作を実行してもよい。ブロック604において、デバイスプロセッサは、パッシブ認証の精度でデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定してもよい。ブロック606において、デバイスプロセッサは、デバイス上で動作するプロセスまたはソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定してもよい。ブロック608において、デバイスプロセッサは、パッシブ認証における信頼性のレベルがクリティカリティのレベルを上回る(たとえば、クリティカリティのレベルよりも大きい、など)かどうかを判定するために、パッシブ認証信頼性値をクリティカリティレベル値と比較してもよい。ブロック610において、デバイスプロセッサは、比較の結果に基づいて、認証要素および/または認証要素の数を決定、計算、または選択してもよい。
【０１１９】
図7は、一態様による、動的および適応的観測を実行するための例示的な方法700を示す。ブロック702において、デバイスプロセッサは、モバイルデバイスの劣化に寄与する場合がある多数の要素/挙動のサブセットを監視/観測することによって、粗い観測を実行してもよい。ブロック703において、デバイスプロセッサは、粗い観測および/または粗い観測に基づくモバイルデバイス挙動を特徴付ける挙動ベクトルを生成してもよい。ブロック704において、デバイスプロセッサは、モバイルデバイスの劣化に潜在的に寄与する場合がある、粗い観測に関連付けられたサブシステム、プロセス、および/またはアプリケーションを識別してもよい。これは、たとえば、複数のソースから受信された情報をモバイルデバイスのセンサから受信されたコンテキスト情報と比較することによって達成されてもよい。ブロック706において、デバイスプロセッサは、粗い観測に基づいて挙動分析動作を実行してもよい。
【０１２０】
決定ブロック708において、デバイスプロセッサは、疑わしい挙動または潜在的な問題が挙動分析の結果に基づいて識別および是正される場合があるかどうかを判定してもよい。疑わしい挙動または潜在的な問題が挙動分析の結果に基づいて識別および是正される場合があるとデバイスプロセッサが決定する(すなわち、決定ブロック708="Yes")とき、ブロック718において、プロセッサは、挙動を是正するためのプロセスを開始し、追加の粗い観測を実行するためにブロック702に戻ってもよい。
【０１２１】
疑わしい挙動または潜在的な問題が挙動分析の結果に基づいて識別および/または是正されない場合があるとデバイスプロセッサが決定する(すなわち、決定ブロック708="No")とき、決定ブロック709において、デバイスプロセッサは、問題の可能性があるかどうかを判定してもよい。一態様では、デバイスプロセッサは、モバイルデバイスが潜在的な問題に遭遇することおよび/または疑わしい挙動に関与することの確率を計算し、計算された確率が所定のしきい値よりも大きいかどうかを判定することによって、問題の可能性があると決定してもよい。計算された確率が所定のしきい値よりも大きくない、ならびに/あるいは、疑わしい挙動または潜在的な問題が存在するおよび/または検出可能である可能性はないとデバイスプロセッサが決定する(すなわち、決定ブロック709="No")とき、プロセッサは、追加の粗い観測を実行するためにブロック702に戻ってもよい。
【０１２２】
疑わしい挙動または潜在的な問題が存在するおよび/または検出可能である可能性があるとデバイスプロセッサが決定する(すなわち、決定ブロック709="Yes")とき、ブロック710において、デバイスプロセッサは、識別されたサブシステム、プロセスまたはアプリケーションに対して、より深いロギング/観測または最終的なロギングを実行してもよい。ブロック712において、デバイスプロセッサは、識別されたサブシステム、プロセスまたはアプリケーションに対して、より深くより詳細な観測を実行してもよい。ブロック714において、デバイスプロセッサは、より深くより詳細な観測に基づいて、さらなるおよび/またはより深い挙動分析を実行してもよい。決定ブロック708において、デバイスプロセッサは、疑わしい挙動または潜在的な問題がより深い挙動分析の結果に基づいて識別および是正される場合があるかどうかを再び決定してもよい。疑わしい挙動または潜在的な問題がより深い挙動分析の結果に基づいて識別および是正されない場合があるとデバイスプロセッサが決定する(すなわち、決定ブロック708="No")とき、プロセッサは、詳細さのレベルが問題を識別するのに十分なほど細かくなるまで、または詳細さを追加しても問題が識別されない場合があるかもしくは問題が存在しないと決定されるまで、ブロック710〜714における動作を繰り返してもよい。
【０１２３】
疑わしい挙動または潜在的な問題がより深い挙動分析の結果に基づいて識別および是正される場合があるとデバイスプロセッサが決定する(すなわち、決定ブロック708="Yes")とき、ブロック718において、デバイスプロセッサは、問題/挙動を是正するための動作を実行してもよく、プロセッサは、追加の動作を実行するためにブロック702に戻ってもよい。
【０１２４】
一態様では、方法700のブロック702〜718の一部として、デバイスプロセッサは、限られた粗い観測から疑わしい挙動を識別するため、より詳細に観測すべき挙動を動的に決定するため、および観測に必要とされる詳細さの正確なレベルを動的に決定するために、システムの挙動のリアルタイム挙動分析を実行してもよい。これは、デバイスプロセッサが、デバイス上で大量のプロセッサリソース、メモリリソース、またはバッテリーリソースを使用する必要なしに、問題を効率的に識別し、問題が発生するのを防止することを可能にする。
【０１２５】
様々な態様は、ソフトウェアアプリケーションの選択グループの集合的挙動を監視および分析するために(許可、ポリシー、またはルールベースの手法とは対照的に)挙動分析技法および/または機械学習技法を使用することによって、既存のソリューションを改善する。現代のコンピューティングデバイスは高度に構成可能で複雑なシステムであり、ソフトウェアアプリケーションが結託しているかどうかを判定するために最も重要である要素は各デバイスにおいて異なる場合があるので、挙動分析技法または機械学習技法の使用は重要である。さらに、デバイスの特徴/要素の異なる組合せは、ソフトウェアアプリケーションが結託しているかどうかをそのデバイスが決定するために、各デバイスにおける分析を必要とする場合がある。しかも、しばしば監視および分析を必要とする特徴/要素の正確な組合せは、アクティビティが進行中であるとき、アクティビティが実行される特定のコンピューティングデバイスから取得された情報を使用して決定することしかできない。これらおよび他の理由で、既存のソリューションは、挙動が進行中である間、かなりの量のコンピューティングデバイスの処理リソース、メモリリソース、または電力リソースを消費することなしに、コンピューティングデバイス内の複数のソフトウェアアプリケーションの集合的挙動、またはそれらのソフトウェアアプリケーション間の関係をリアルタイムで監視し、検出し、特徴付けるのに適切ではない。
【０１２６】
図2〜図7を参照しながら上記で説明した態様を含む様々な態様は、様々なコンピューティングデバイス上で実装される場合があり、それらの一例が、スマートフォンの形で図8に示されている。スマートフォン800は、内部メモリ804と、ディスプレイ812と、スピーカー814とに結合されたプロセッサ802を含んでもよい。加えて、スマートフォン800は、プロセッサ802に結合されたワイヤレスデータリンクおよび/またはセルラー電話トランシーバ808に接続される場合がある、電磁放射を送信および受信するためのアンテナを含んでもよい。スマートフォン800は通常、ユーザ入力を受け取るためのメニュー選択ボタンまたはロッカースイッチ820も含む。
【０１２７】
典型的なスマートフォン800はまた、マイクロフォンから受信された音をワイヤレス送信に適したデータパケットにデジタル化し、受信された音のデータパケットを復号して、音を生成するためにスピーカーに供給されるアナログ信号を生成する、音符号化/復号(コーデック)回路806を含む。また、プロセッサ802、ワイヤレストランシーバ808およびコーデック806のうちの1つまたは複数は、デジタル信号プロセッサ(DSP)回路(個別に図示せず)を含んでもよい。
【０１２８】
プロセッサ802は、以下で説明する様々な態様の機能を含む、様々な機能を実行するようにソフトウェア命令(アプリケーション)によって構成される場合がある、任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、または1つもしくは複数の多重プロセッサチップであってもよい。いくつかのモバイルデバイスでは、1つのプロセッサをワイヤレス通信機能専用にし、1つのプロセッサを他のアプリケーションの実行専用にするなどして、複数のプロセッサ802が設けられてもよい。通常、ソフトウェアアプリケーションは、アクセスされ、プロセッサ802にロードされる前に、内部メモリ804に記憶されてもよい。プロセッサ802は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含んでもよい。様々な態様では、プロセッサ812は、デバイスプロセッサ、処理コア、または(図1に示す例示的なSOC100などの)SOCであってもよい。一態様では、スマートフォン800はSOCを含んでもよく、プロセッサ802は、(図1に示すプロセッサ101、104、106、108、110のうちの1つなどの)SOCに含まれるプロセッサのうちの1つであってもよい。
【０１２９】
本出願で使用する「性能低下」という用語は、より長い処理時間、より遅いリアルタイム応答性、より低いバッテリー寿命、プライベートデータの損失、悪意のある経済活動(たとえば、無認可のプレミアムSMSメッセージを送信すること)、サービス拒否(DoS)、不適切に書かれたまたは設計されたソフトウェアアプリケーション、悪意のあるソフトウェア、マルウェア、ウイルス、フラグメント化されたメモリ、スパイまたはボットネットアクティビティのためにモバイルデバイスを乗っ取ることまたは電話を利用することに関する動作など、コンピューティングデバイスの多種多様な望ましくない動作および特性を指す。また、これらの理由のいずれかで性能を劣化させる挙動、アクティビティ、および条件は、本明細書では「良性ではない」または「非良性である」と呼ばれる。
【０１３０】
本出願で使用する「構成要素」、「モジュール」などの用語は、限定はしないが、特定の動作または機能を実行するように構成される、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなどの、コンピュータ関連のエンティティを含むものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で動作しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであってもよい。例として、コンピューティングデバイス上で動作しているアプリケーションとコンピューティングデバイスの両方は、構成要素と呼ばれる場合がある。1つまたは複数の構成要素が、プロセスおよび/または実行スレッド内に存在することがあり、1つの構成要素が、1つのプロセッサまたはコア上に局在することがあり、ならびに/あるいは2つ以上のプロセッサまたはコアの間で分散されることがある。加えて、これらの構成要素は、様々な命令および/またはデータ構造を記憶した様々な非一時的コンピュータ可読媒体から実行することができる。構成要素は、ローカルプロセスおよび/またはリモートプロセス、関数呼出しまたはプロシージャ呼出し、電子信号、データパケット、メモリ読出し/書込み、ならびに他の知られているネットワーク、コンピュータ、プロセッサ、および/またはプロセス関連の通信方法によって通信することができる。
【０１３１】
様々な態様の動作を遂行するためにプログラマブルプロセッサ上で実行されるコンピュータプログラムコードまたは「プログラムコード」は、C、C++、C#、Smalltalk、Java(登録商標)、JavaScript(登録商標)、Visual Basic、Structured Query Language(たとえば、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つまたは任意の組合せまたはセットとして存在する場合がある。
【０１３７】
開示した態様の前述の説明は、任意の当業者が本発明を作成または使用することを可能にするために提供される。これらの態様に対する様々な修正は当業者に容易に明らかになり、本明細書で定義する一般原理は、本発明の趣旨または範囲から逸脱することなく、他の態様に適用されてもよい。したがって、本発明は、本明細書に示す態様に限定されるものではなく、以下の特許請求の範囲、ならびに本明細書で開示する原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【０１３８】
100  システムオンチップ(SOC)、SOC
101  デジタル信号プロセッサ(DSP)、異種プロセッサ、DSP
102  モバイルデバイス、モバイルコンピューティングデバイス
104  モデムプロセッサ、異種プロセッサ、プロセッサ
106  グラフィックスプロセッサ、異種プロセッサ、プロセッサ
108  アプリケーションプロセッサ、異種プロセッサ、プロセッサ
110  コプロセッサ、プロセッサ
112  メモリ要素
114  アナログ回路およびカスタム回路、カスタム回路
116  システム構成要素およびリソース、システム構成要素
118  クロック
120  電圧レギュレータ
124  相互接続/バスモジュール
200  セキュリティシステム
202  挙動観測器モジュール
204  挙動抽出器モジュール
206  挙動分析器モジュール
208  アクチュエータモジュール
210  認証モジュール
300、500、600、700  方法
452、453、454、455、456、457、458、460、462、464、465  動作
800  スマートフォン
802  プロセッサ
804  内部メモリ
806  音符号化/復号(コーデック)回路、コーデック
808  セルラー電話トランシーバ、ワイヤレストランシーバ
812  ディスプレイ
814  スピーカー
820  ロッカースイッチ
【図１】
2017538186.tif 000003
【図２】
2017538186.tif 000004
【図３】
2017538186.tif 000005
【図４】
2017538186.tif 000006
【図５】
2017538186.tif 000007
【図６】
2017538186.tif 000008
【図７】
2017538186.tif 000009
【図８】
2017538186.tif 000010
【手続補正書】
【提出日】平成29年4月18日(2017.4.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピューティングデバイスにおいて多要素ユーザ認証を実行する方法であって、
挙動情報を収集するために、前記コンピューティングデバイスのプロセッサを介して、前記コンピューティングデバイス上で動作するソフトウェアアプリケーションのアクティビティを監視するステップと、
前記ソフトウェアアプリケーションの前記監視されたアクティビティを特徴付ける挙動ベクトルを生成するために前記収集された挙動情報を使用するステップと、
分析結果を生成するために前記生成された挙動ベクトルを分類器モデルに適用するステップと、
少なくとも1つの値を計算するために前記生成された分析結果を使用するステップであって、前記計算された少なくとも1つの値が、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を含む、ステップと、
前記コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために前記計算された少なくとも1つの値を使用するステップと、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素を決定するために前記計算された少なくとも1つの値を使用するステップと、
前記決定された数の前記決定された認証要素を評価することによって前記ユーザを認証するステップと
を含む、方法。
【請求項２】
不正使用に対する前記コンピューティングデバイスの現在の脆弱性を決定するために、前記コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視するステップ
をさらに含む、請求項1に記載の方法。
【請求項３】
前記分析結果を生成するために前記挙動ベクトルを前記分類器モデルに適用するステップが、前記分析結果を生成するために前記挙動ベクトルをクリティカルなアクティビティのモデルに適用するステップを含む、請求項1に記載の方法。
【請求項４】
前記分析結果を生成するために前記挙動ベクトルを前記クリティカルなアクティビティのモデルに適用するステップが、
前記分析結果を生成するために多次元ベクトルデータ構造を前記クリティカルなアクティビティのモデルに適用するステップを含む、請求項3に記載の方法。
【請求項５】
前記ユーザが前記コンピューティングデバイスと対話する別個の方法を経時的に学習するために、前記コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視するステップをさらに含み、前記決定された数の前記決定された認証要素を評価することによって前記ユーザを認証するステップが、前記ソフトウェアアプリケーションの挙動が、前記ユーザが前記コンピューティングデバイスと対話する前記別個の方法と一致するかどうかを判定するステップを含む、請求項1に記載の方法。
【請求項６】
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するために前記計算された少なくとも1つの値を使用するステップが、
明示的なユーザ対話を必要とすることなしに前記ユーザを認証するために、パッシブ認証動作を実行するステップと、
前記パッシブ認証動作の精度で前記コンピューティングデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定するステップと、
前記コンピューティングデバイス上で動作する前記ソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定するステップと、
前記パッシブ認証における信頼性のレベルがクリティカリティのレベルを上回るかどうかを識別する比較結果を生成するために、前記パッシブ認証信頼性値を前記クリティカリティレベル値と比較するステップと、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するために前記生成された比較結果を使用するステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
コンピューティングデバイスであって、
メモリと、
前記メモリに結合されたプロセッサであって、
挙動情報を収集するために前記コンピューティングデバイス上で動作するソフトウェアアプリケーションのアクティビティを監視することと、
前記ソフトウェアアプリケーションの前記監視されたアクティビティを特徴付ける挙動ベクトルを生成するために前記収集された挙動情報を使用することと、
分析結果を生成するために前記生成された挙動ベクトルを分類器モデルに適用することと、
少なくとも1つの値を計算するために前記生成された分析結果を使用することであって、前記計算された少なくとも1つの値が、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を含む、使用することと、
前記コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために前記計算された少なくとも1つの値を使用することと、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素を決定するために前記計算された少なくとも1つの値を使用することと、
前記決定された数の前記決定された認証要素を評価することによって前記ユーザを認証することと
を含む動作を実行するためのプロセッサ実行可能命令で構成される、プロセッサと
を備える、コンピューティングデバイス。
【請求項８】
前記プロセッサが、不正使用に対する前記コンピューティングデバイスの現在の脆弱性を決定するために、ハードウェアシステムおよびソフトウェアシステムを監視することをさらに含む動作を実行するためのプロセッサ実行可能命令で構成される、請求項7に記載のコンピューティングデバイス。
【請求項９】
前記プロセッサが、前記分析結果を生成するために前記挙動ベクトルを前記分類器モデルに適用することが、
前記分析結果を生成するために前記挙動ベクトルをクリティカルなアクティビティのモデルに適用することを含むように、動作を実行するためのプロセッサ実行可能命令で構成される、請求項7に記載のコンピューティングデバイス。
【請求項１０】
前記プロセッサが、前記分析結果を生成するために前記挙動ベクトルを前記クリティカルなアクティビティのモデルに適用することが、
前記分析結果を生成するために多次元ベクトルデータ構造を前記クリティカルなアクティビティのモデルに適用することを含むように、動作を実行するためのプロセッサ実行可能命令で構成される、請求項9に記載のコンピューティングデバイス。
【請求項１１】
前記プロセッサが、前記ユーザが前記コンピューティングデバイスと対話する別個の方法を経時的に学習するために、前記コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視することをさらに含む動作を実行するためのプロセッサ実行可能命令で構成され、
前記プロセッサが、前記決定された数の前記決定された認証要素を評価することによって前記ユーザを認証することが、前記ソフトウェアアプリケーションの挙動が、前記ユーザが前記コンピューティングデバイスと対話する前記別個の方法と一致するかどうかを判定することを含むように、動作を実行するためのプロセッサ実行可能命令で構成される、
請求項7に記載のコンピューティングデバイス。
【請求項１２】
前記プロセッサが、前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するために前記計算された少なくとも1つの値を使用することが、
明示的なユーザ対話を必要とすることなしに前記ユーザを認証するために、パッシブ認証動作を実行することと、
前記パッシブ認証動作の精度で前記コンピューティングデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定することと、
前記コンピューティングデバイス上で動作する前記ソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定することと、
前記パッシブ認証における信頼性のレベルがクリティカリティのレベルを上回るかどうかを識別する比較結果を生成するために、前記パッシブ認証信頼性値を前記クリティカリティレベル値と比較することと、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するために前記生成された比較結果を使用することと
をさらに含むように、動作を実行するためのプロセッサ実行可能命令で構成される、請求項7に記載のコンピューティングデバイス。
【請求項１３】
コンピューティングデバイスのプロセッサに、
挙動情報を収集するために前記コンピューティングデバイス上で動作するソフトウェアアプリケーションのアクティビティを監視することと、
前記ソフトウェアアプリケーションの前記監視されたアクティビティを特徴付ける挙動ベクトルを生成するために前記収集された挙動情報を使用することと、
分析結果を生成するために前記生成された挙動ベクトルを分類器モデルに適用することと、
少なくとも1つの値を計算するために前記生成された分析結果を使用することであって、前記計算された少なくとも1つの値が、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を含む、使用することと、
前記コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために前記計算された少なくとも1つの値を使用することと、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素を決定するために前記計算された少なくとも1つの値を使用することと、
前記決定された数の前記決定された認証要素を評価することによって前記ユーザを認証することと
を含む動作を実行させるように構成されるプロセッサ実行可能ソフトウェア命令を記憶する、非一時的コンピュータ可読記憶媒体。
【請求項１４】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、
不正使用に対する前記コンピューティングデバイスの現在の脆弱性を決定するために、ハードウェアシステムおよびソフトウェアシステムを監視すること
をさらに含む動作を実行させるように構成される、請求項13に記載の非一時的コンピュータ可読記憶媒体。
【請求項１５】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、前記分析結果を生成するために前記挙動ベクトルを前記分類器モデルに適用することが、前記分析結果を生成するために前記挙動ベクトルをクリティカルなアクティビティのモデルに適用することを含むように、動作を実行させるように構成される、請求項13に記載の非一時的コンピュータ可読記憶媒体。
【請求項１６】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、前記分析結果を生成するために前記挙動ベクトルを前記クリティカルなアクティビティのモデルに適用することが、前記分析結果を生成するために多次元ベクトルデータ構造を前記クリティカルなアクティビティのモデルに適用することを含むように、動作を実行させるように構成される、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、前記ユーザが前記コンピューティングデバイスと対話する別個の方法を経時的に学習するために、前記コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視することをさらに含む動作を実行させるように構成され、
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、前記決定された数の前記決定された認証要素を評価することによって前記ユーザを認証することが、前記ソフトウェアアプリケーションの挙動が、前記ユーザが前記コンピューティングデバイスと対話する前記別個の方法と一致するかどうかを判定することを含むように、動作を実行させるように構成される、
請求項13に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するために前記計算された少なくとも1つの値を使用することが、
明示的なユーザ対話を必要とすることなしに前記ユーザを認証するために、パッシブ認証動作を実行することと、
前記パッシブ認証動作の精度で前記コンピューティングデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定することと、
前記コンピューティングデバイス上で動作する前記ソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定することと、
前記パッシブ認証における信頼性のレベルがクリティカリティのレベルを上回るかどうかを識別する比較結果を生成するために、前記パッシブ認証信頼性値を前記クリティカリティレベル値と比較することと、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するために前記生成された比較結果を使用することと
をさらに含むように、動作を実行させるように構成される、請求項13に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
コンピューティングデバイスであって、
挙動情報を収集するために前記コンピューティングデバイス上で動作するソフトウェアアプリケーションのアクティビティを監視するための手段と、
前記ソフトウェアアプリケーションの前記監視されたアクティビティを特徴付ける挙動ベクトルを生成するために前記収集された挙動情報を使用するための手段と、
分析結果を生成するために前記生成された挙動ベクトルを分類器モデルに適用するための手段と、
少なくとも1つの値を計算するために前記生成された分析結果を使用するための手段であって、前記計算された少なくとも1つの値が、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を含む、手段と、
前記コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために前記計算された少なくとも1つの値を使用するための手段と、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素を決定するために前記計算された少なくとも1つの値を使用するための手段と、
前記決定された数の前記決定された認証要素を評価することによって前記ユーザを認証するための手段と
を備える、コンピューティングデバイス。
【請求項２０】
不正使用に対する前記コンピューティングデバイスの現在の脆弱性を決定するために、ハードウェアシステムおよびソフトウェアシステムを監視するための手段をさらに備える、請求項19に記載のコンピューティングデバイス。
【請求項２１】
前記分析結果を生成するために前記挙動ベクトルを前記分類器モデルに適用するための手段が、前記分析結果を生成するために前記挙動ベクトルをクリティカルなアクティビティのモデルに適用するための手段を備える、請求項19に記載のコンピューティングデバイス。
【請求項２２】
前記分析結果を生成するために前記挙動ベクトルを前記クリティカルなアクティビティのモデルに適用するための手段が、前記分析結果を生成するために多次元ベクトルデータ構造を前記クリティカルなアクティビティのモデルに適用するための手段を備える、請求項21に記載のコンピューティングデバイス。
【請求項２３】
前記ユーザが前記コンピューティングデバイスと対話する別個の方法を経時的に学習するために、前記コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視するための手段をさらに備え、前記決定された数の前記決定された認証要素を評価することによって前記ユーザを認証するための手段が、前記ソフトウェアアプリケーションの挙動が、前記ユーザが前記コンピューティングデバイスと対話する前記別個の方法と一致するかどうかを判定するための手段を備える、請求項19に記載のコンピューティングデバイス。
【請求項２４】
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するために前記計算された少なくとも1つの値を使用するための手段が、
明示的なユーザ対話を必要とすることなしに前記ユーザを認証するために、パッシブ認証動作を実行するための手段と、
前記パッシブ認証動作の精度で前記コンピューティングデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定するための手段と、
前記コンピューティングデバイス上で動作する前記ソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定するための手段と、
前記パッシブ認証における信頼性のレベルがクリティカリティのレベルを上回るかどうかを識別する比較結果を生成するために、前記パッシブ認証信頼性値を前記クリティカリティレベル値と比較するための手段と、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するために前記生成された比較結果を使用するための手段と
を備える、請求項19に記載のコンピューティングデバイス。
【手続補正書】
【提出日】平成29年8月8日(2017.8.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピューティングデバイスにおいて多要素ユーザ認証を実行する方法であって、
挙動情報を収集するために、前記コンピューティングデバイスのプロセッサを介して、前記コンピューティングデバイス上で動作するソフトウェアアプリケーションのアクティビティを監視するステップと、
前記ソフトウェアアプリケーションの前記監視されたアクティビティを特徴付ける挙動ベクトルを生成するために前記収集された挙動情報を使用するステップと、
分析結果を生成するために前記生成された挙動ベクトルを分類器モデルに適用するステップと、
少なくとも1つの値を計算するために前記生成された分析結果を使用するステップであって、前記計算された少なくとも1つの値が、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を含む、ステップと、
前記コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために前記計算された少なくとも1つの値を使用するステップと、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数のそれぞれに対してどの認証要素を使用するかを決定するために前記計算された少なくとも1つの値を使用するステップと、
前記決定された数の前記決定された認証要素を評価することによって前記ユーザを認証するステップと
を含む、方法。
【請求項２】
不正使用に対する前記コンピューティングデバイスの現在の脆弱性を決定するために、前記コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視するステップ
をさらに含む、請求項1に記載の方法。
【請求項３】
前記分析結果を生成するために前記挙動ベクトルを前記分類器モデルに適用するステップが、前記分析結果を生成するために前記挙動ベクトルをクリティカルなアクティビティのモデルに適用するステップを含む、請求項1に記載の方法。
【請求項４】
前記分析結果を生成するために前記挙動ベクトルを前記クリティカルなアクティビティのモデルに適用するステップが、
前記分析結果を生成するために多次元ベクトルデータ構造を前記クリティカルなアクティビティのモデルに適用するステップを含む、請求項3に記載の方法。
【請求項５】
前記ユーザが前記コンピューティングデバイスと対話する別個の方法を経時的に学習するために、前記コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視するステップをさらに含み、前記決定された数の前記決定された認証要素を評価することによって前記ユーザを認証するステップが、前記ソフトウェアアプリケーションの挙動が、前記ユーザが前記コンピューティングデバイスと対話する前記別個の方法と一致するかどうかを判定するステップを含む、請求項1に記載の方法。
【請求項６】
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するために前記計算された少なくとも1つの値を使用するステップが、
明示的なユーザ対話を必要とすることなしに前記ユーザを認証するために、パッシブ認証動作を実行するステップと、
前記パッシブ認証動作の精度で前記コンピューティングデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定するステップと、
前記コンピューティングデバイス上で動作する前記ソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定するステップと、
前記パッシブ認証における信頼性のレベルがクリティカリティのレベルを上回るかどうかを識別する比較結果を生成するために、前記パッシブ認証信頼性値を前記クリティカリティレベル値と比較するステップと、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するために前記生成された比較結果を使用するステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
コンピューティングデバイスであって、
メモリと、
前記メモリに結合されたプロセッサであって、
挙動情報を収集するために前記コンピューティングデバイス上で動作するソフトウェアアプリケーションのアクティビティを監視することと、
前記ソフトウェアアプリケーションの前記監視されたアクティビティを特徴付ける挙動ベクトルを生成するために前記収集された挙動情報を使用することと、
分析結果を生成するために前記生成された挙動ベクトルを分類器モデルに適用することと、
少なくとも1つの値を計算するために前記生成された分析結果を使用することであって、前記計算された少なくとも1つの値が、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を含む、使用することと、
前記コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために前記計算された少なくとも1つの値を使用することと、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数のそれぞれに対してどの認証要素を使用するかを決定するために前記計算された少なくとも1つの値を使用することと、
前記決定された数の前記決定された認証要素を評価することによって前記ユーザを認証することと
を含む動作を実行するためのプロセッサ実行可能命令で構成される、プロセッサと
を備える、コンピューティングデバイス。
【請求項８】
前記プロセッサが、不正使用に対する前記コンピューティングデバイスの現在の脆弱性を決定するために、ハードウェアシステムおよびソフトウェアシステムを監視することをさらに含む動作を実行するためのプロセッサ実行可能命令で構成される、請求項7に記載のコンピューティングデバイス。
【請求項９】
前記プロセッサが、前記分析結果を生成するために前記挙動ベクトルを前記分類器モデルに適用することが、
前記分析結果を生成するために前記挙動ベクトルをクリティカルなアクティビティのモデルに適用すること
を含むように、動作を実行するためのプロセッサ実行可能命令で構成される、請求項7に記載のコンピューティングデバイス。
【請求項１０】
前記プロセッサが、前記分析結果を生成するために前記挙動ベクトルを前記クリティカルなアクティビティのモデルに適用することが、
前記分析結果を生成するために多次元ベクトルデータ構造を前記クリティカルなアクティビティのモデルに適用することを含むように、動作を実行するためのプロセッサ実行可能命令で構成される、請求項9に記載のコンピューティングデバイス。
【請求項１１】
前記プロセッサが、前記ユーザが前記コンピューティングデバイスと対話する別個の方法を経時的に学習するために、前記コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視することをさらに含む動作を実行するためのプロセッサ実行可能命令で構成され、
前記プロセッサが、前記決定された数の前記決定された認証要素を評価することによって前記ユーザを認証することが、前記ソフトウェアアプリケーションの挙動が、前記ユーザが前記コンピューティングデバイスと対話する前記別個の方法と一致するかどうかを判定することを含むように、動作を実行するためのプロセッサ実行可能命令で構成される、
請求項7に記載のコンピューティングデバイス。
【請求項１２】
前記プロセッサが、前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するために前記計算された少なくとも1つの値を使用することが、
明示的なユーザ対話を必要とすることなしに前記ユーザを認証するために、パッシブ認証動作を実行することと、
前記パッシブ認証動作の精度で前記コンピューティングデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定することと、
前記コンピューティングデバイス上で動作する前記ソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定することと、
前記パッシブ認証における信頼性のレベルがクリティカリティのレベルを上回るかどうかを識別する比較結果を生成するために、前記パッシブ認証信頼性値を前記クリティカリティレベル値と比較することと、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するために前記生成された比較結果を使用することと
をさらに含むように、動作を実行するためのプロセッサ実行可能命令で構成される、請求項7に記載のコンピューティングデバイス。
【請求項１３】
コンピューティングデバイスのプロセッサに、
挙動情報を収集するために前記コンピューティングデバイス上で動作するソフトウェアアプリケーションのアクティビティを監視することと、
前記ソフトウェアアプリケーションの前記監視されたアクティビティを特徴付ける挙動ベクトルを生成するために前記収集された挙動情報を使用することと、
分析結果を生成するために前記生成された挙動ベクトルを分類器モデルに適用することと、
少なくとも1つの値を計算するために前記生成された分析結果を使用することであって、前記計算された少なくとも1つの値が、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を含む、使用することと、
前記コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために前記計算された少なくとも1つの値を使用することと、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数のそれぞれに対してどの認証要素を使用するかを決定するために前記計算された少なくとも1つの値を使用することと、
前記決定された数の前記決定された認証要素を評価することによって前記ユーザを認証することと
を含む動作を実行させるように構成されるプロセッサ実行可能ソフトウェア命令を記憶する、非一時的コンピュータ可読記憶媒体。
【請求項１４】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、
不正使用に対する前記コンピューティングデバイスの現在の脆弱性を決定するために、ハードウェアシステムおよびソフトウェアシステムを監視すること
をさらに含む動作を実行させるように構成される、請求項13に記載の非一時的コンピュータ可読記憶媒体。
【請求項１５】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、前記分析結果を生成するために前記挙動ベクトルを前記分類器モデルに適用することが、前記分析結果を生成するために前記挙動ベクトルをクリティカルなアクティビティのモデルに適用することを含むように、動作を実行させるように構成される、請求項13に記載の非一時的コンピュータ可読記憶媒体。
【請求項１６】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、前記分析結果を生成するために前記挙動ベクトルを前記クリティカルなアクティビティのモデルに適用することが、前記分析結果を生成するために多次元ベクトルデータ構造を前記クリティカルなアクティビティのモデルに適用することを含むように、動作を実行させるように構成される、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、前記ユーザが前記コンピューティングデバイスと対話する別個の方法を経時的に学習するために、前記コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視することをさらに含む動作を実行させるように構成され、
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、前記決定された数の前記決定された認証要素を評価することによって前記ユーザを認証することが、前記ソフトウェアアプリケーションの挙動が、前記ユーザが前記コンピューティングデバイスと対話する前記別個の方法と一致するかどうかを判定することを含むように、動作を実行させるように構成される、
請求項13に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサに、前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するために前記計算された少なくとも1つの値を使用することが、
明示的なユーザ対話を必要とすることなしに前記ユーザを認証するために、パッシブ認証動作を実行することと、
前記パッシブ認証動作の精度で前記コンピューティングデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定することと、
前記コンピューティングデバイス上で動作する前記ソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定することと、
前記パッシブ認証における信頼性のレベルがクリティカリティのレベルを上回るかどうかを識別する比較結果を生成するために、前記パッシブ認証信頼性値を前記クリティカリティレベル値と比較することと、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するために前記生成された比較結果を使用することと
をさらに含むように、動作を実行させるように構成される、請求項13に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
コンピューティングデバイスであって、
挙動情報を収集するために前記コンピューティングデバイス上で動作するソフトウェアアプリケーションのアクティビティを監視するための手段と、
前記ソフトウェアアプリケーションの前記監視されたアクティビティを特徴付ける挙動ベクトルを生成するために前記収集された挙動情報を使用するための手段と、
分析結果を生成するために前記生成された挙動ベクトルを分類器モデルに適用するための手段と、
少なくとも1つの値を計算するために前記生成された分析結果を使用するための手段であって、前記計算された少なくとも1つの値が、トランザクションタイプクリティカリティ値、ユーザ信頼性値、ソフトウェア完全性信頼性値、および履歴挙動値のうちの1つまたは複数を含む、手段と、
前記コンピューティングデバイスのユーザを認証するときに評価されるべき認証要素の数を決定するために前記計算された少なくとも1つの値を使用するための手段と、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数のそれぞれに対してどの認証要素を使用するかを決定するために前記計算された少なくとも1つの値を使用するための手段と、
前記決定された数の前記決定された認証要素を評価することによって前記ユーザを認証するための手段と
を備える、コンピューティングデバイス。
【請求項２０】
不正使用に対する前記コンピューティングデバイスの現在の脆弱性を決定するために、ハードウェアシステムおよびソフトウェアシステムを監視するための手段をさらに備える、請求項19に記載のコンピューティングデバイス。
【請求項２１】
前記分析結果を生成するために前記挙動ベクトルを前記分類器モデルに適用するための手段が、前記分析結果を生成するために前記挙動ベクトルをクリティカルなアクティビティのモデルに適用するための手段を備える、請求項19に記載のコンピューティングデバイス。
【請求項２２】
前記分析結果を生成するために前記挙動ベクトルを前記クリティカルなアクティビティのモデルに適用するための手段が、前記分析結果を生成するために多次元ベクトルデータ構造を前記クリティカルなアクティビティのモデルに適用するための手段を備える、請求項21に記載のコンピューティングデバイス。
【請求項２３】
前記ユーザが前記コンピューティングデバイスと対話する別個の方法を経時的に学習するために、前記コンピューティングデバイスのハードウェアシステムおよびソフトウェアシステムを監視するための手段をさらに備え、前記決定された数の前記決定された認証要素を評価することによって前記ユーザを認証するための手段が、前記ソフトウェアアプリケーションの挙動が、前記ユーザが前記コンピューティングデバイスと対話する前記別個の方法と一致するかどうかを判定するための手段を備える、請求項19に記載のコンピューティングデバイス。
【請求項２４】
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するために前記計算された少なくとも1つの値を使用するための手段が、
明示的なユーザ対話を必要とすることなしに前記ユーザを認証するために、パッシブ認証動作を実行するための手段と、
前記パッシブ認証動作の精度で前記コンピューティングデバイスの信頼性のレベルを識別するパッシブ認証信頼性値を決定するための手段と、
前記コンピューティングデバイス上で動作する前記ソフトウェアアプリケーションの重要度またはクリティカリティを識別するクリティカリティレベル値を決定するための手段と、
前記パッシブ認証における信頼性のレベルがクリティカリティのレベルを上回るかどうかを識別する比較結果を生成するために、前記パッシブ認証信頼性値を前記クリティカリティレベル値と比較するための手段と、
前記コンピューティングデバイスの前記ユーザを認証するときに評価されるべき前記認証要素の数を決定するために前記生成された比較結果を使用するための手段と
を備える、請求項19に記載のコンピューティングデバイス。
【国際調査報告】
2017538186.tif 000011
2017538186.tif 000012
2017538186.tif 000013