(57)【要約】  ネットワーク内のデバイスと連携して動作するようにサーバコンピューティングデバイスを構成することによってソフトウェアをダウンロードすることによって引き起こされる、非良性挙動攻撃、マルウェア攻撃、およびサイバー攻撃からネットワークおよびそのデバイスを保護することができる。サーバコンピューティングデバイスは、アプリケーションダウンロードサービスからソフトウェアアプリケーションを受信し、ネットワーク内のクライアントコンピューティングデバイスに対するセキュアな通信リンクを確立し、セキュアな通信リンクを介してクライアントコンピューティングデバイスから運用情報を受信し、受信されたソフトウェアアプリケーションをクライアントコンピューティングデバイスエミュレータ内で運用して1つまたは複数の挙動を特定するために、受信された運用情報を使用し、特定された挙動が良性であるかどうかを判定するように構成され得る。サーバコンピューティングデバイスは、特定された挙動が良性であるとの判定に応じて、ソフトウェアアプリケーションをクライアントコンピューティングデバイスに送り、特定された挙動が良性でないとの判定に応じて、ソフトウェアアプリケーションを隔離することができる。
2019516178.tif 000002
【特許請求の範囲】
【請求項１】
非良性ソフトウェアアプリケーションからコンピューティングデバイスを保護する方法であって、
サーバコンピューティングデバイス内のプロセッサが、アプリケーションダウンロードサービスからソフトウェアアプリケーションを受信するステップと、
前記プロセッサが、クライアントコンピューティングデバイスに対するセキュアな通信リンクを確立するステップと、
前記プロセッサが、前記セキュアな通信リンクを介して前記クライアントコンピューティングデバイスから運用情報を受信するステップと、
前記プロセッサが、前記受信されたソフトウェアアプリケーションをクライアントコンピューティングデバイスエミュレータ内で運用して1つまたは複数の挙動を特定するために、前記受信された運用情報を使用するステップと、
前記プロセッサが、前記特定された1つまたは複数の挙動が良性であるかどうかを判定するステップと
を含む、方法。
【請求項２】
前記プロセッサが、前記受信されたソフトウェアアプリケーションを前記クライアントコンピューティングデバイスエミュレータ内で運用して1つまたは複数の挙動を特定するために、前記受信された運用情報を使用するステップが、
観測を保証する前記ソフトウェアアプリケーションの態様を特定するために、前記クライアントコンピューティングデバイスエミュレータのアプリケーション分析器構成要素内で前記ソフトウェアアプリケーションを分析するステップと、
前記受信された運用情報および前記ソフトウェアアプリケーションの分析に基づいて、運用するための前記ソフトウェアアプリケーションのターゲット活動を選択するステップと、
実行するための前記ソフトウェアアプリケーションの前記選択されたターゲット活動をトリガするステップと、
前記トリガされた活動の実行中に前記ソフトウェアアプリケーションの挙動を観測し、前記ソフトウェアアプリケーションのランタイム挙動に基づいて、新しいターゲット活動をさらに選択するステップと
を含む、請求項1に記載の方法。
【請求項３】
グラフィカルユーザインターフェースのレイアウトを分析するステップと、
実行するための前記ソフトウェアアプリケーションの前記選択されたターゲット活動をトリガするとき、前記グラフィカルユーザインターフェースの分析の結果を使用するステップと
をさらに含む、請求項2に記載の方法。
【請求項４】
前記プロセッサが、前記特定された1つまたは複数の挙動が良性でないとの判定に応じて、前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを隔離するステップと、
非良性として前記ソフトウェアアプリケーションを特定する情報を含む通知メッセージを前記クライアントコンピューティングデバイスに送るステップと
をさらに含む、請求項1に記載の方法。
【請求項５】
前記特定された1つまたは複数の挙動が良性であるとの判定に応じて、前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを前記クライアントコンピューティングデバイスに送るステップ
をさらに含む、請求項1に記載の方法。
【請求項６】
前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを前記クライアントコンピューティングデバイスに送ることに応じて、前記セキュアな通信リンクを介して前記クライアントコンピューティングデバイスから追加の運用情報を受信するステップと、
前記受信されたソフトウェアアプリケーションをさらに運用して追加の挙動を特定するために、前記追加の運用情報を使用するステップと、
前記特定された追加の挙動が良性であるかどうかを判定するステップと
をさらに含む、請求項5に記載の方法。
【請求項７】
前記クライアントコンピューティングデバイスから運用情報を受信するステップが、
前記ソフトウェアアプリケーションに関する信頼レベルを特定する情報、
探査した活動のリスト、
探査したグラフィカルユーザインターフェース(GUI)スクリーンのリスト、
探査しなかった活動のリスト、
探査しなかったGUIスクリーンのリスト、
探査しなかった挙動のリスト、
ハードウェア構成情報、または
ソフトウェア構成情報
のうちの1つまたは複数を受信するステップを含む、請求項1に記載の方法。
【請求項８】
前記受信されたソフトウェアアプリケーションに関するリスクスコアを計算するステップと、
前記セキュアな通信リンクを介して、前記計算されたリスクスコアを前記クライアントコンピューティングデバイスに送るステップと
をさらに含む、請求項1に記載の方法。
【請求項９】
前記クライアントコンピューティングデバイス内で前記ソフトウェアアプリケーションを受信するステップと、
前記クライアントコンピューティングデバイス上で前記ソフトウェアアプリケーションの実行を開始するステップと、
挙動情報を収集するために前記ソフトウェアアプリケーションの活動を監視するステップと、
前記収集された挙動情報を記述するベクトルデータ構造を生成するステップと、
分析結果を生成するために前記ベクトルデータ構造を機械学習分類器モデルに適用するステップと、
前記ソフトウェアアプリケーションが良性であるかどうかを判定するために前記分析結果を使用するステップと
をさらに含む、請求項1に記載の方法。
【請求項１０】
前記ソフトウェアアプリケーションが良性でないとの判定に応じて、運用情報として、前記分析結果を前記クライアントコンピューティングデバイスから前記サーバコンピューティングデバイスに送るステップ
をさらに含む、請求項9に記載の方法。
【請求項１１】
前記クライアントコンピューティングデバイスから通信要求メッセージを受信するステップと、
前記クライアントコンピューティングデバイスからの前記通信要求メッセージの受信に応じて、前記クライアントコンピューティングデバイスに対する前記セキュアな通信リンクを確立するステップと
をさらに含む、請求項1に記載の方法。
【請求項１２】
動作を実行するようにプロセッサ実行可能命令で構成されたプロセッサを備え、前記動作が、
アプリケーションダウンロードサービスからソフトウェアアプリケーションを受信することと、
クライアントコンピューティングデバイスに対するセキュアな通信リンクを確立することと、
前記セキュアな通信リンクを介して前記クライアントコンピューティングデバイスから運用情報を受信することと、
前記受信されたソフトウェアアプリケーションをクライアントコンピューティングデバイスエミュレータ内で運用して1つまたは複数の挙動を特定するために、前記受信された運用情報を使用することと、
前記特定された1つまたは複数の挙動が良性であるかどうかを判定することと
を含む、サーバコンピューティングデバイス。
【請求項１３】
前記受信されたソフトウェアアプリケーションを前記クライアントコンピューティングデバイスエミュレータ内で運用して1つまたは複数の挙動を特定するために、前記受信された運用情報を使用することが、
観測を保証する前記ソフトウェアアプリケーションの態様を特定するために、前記クライアントコンピューティングデバイスエミュレータのアプリケーション分析器構成要素内で前記ソフトウェアアプリケーションを分析することと、
前記受信された運用情報および前記ソフトウェアアプリケーションの分析に基づいて、運用するための前記ソフトウェアアプリケーションのターゲット活動を選択することと、
実行するための前記ソフトウェアアプリケーションの前記選択されたターゲット活動をトリガすることと、
前記トリガされた活動の実行中に前記ソフトウェアアプリケーションの挙動を観測し、前記ソフトウェアアプリケーションのランタイム挙動に基づいて、新しいターゲット活動をさらに選択することと
を含むような動作を実行するようにプロセッサ実行可能命令で構成される、請求項12に記載のサーバコンピューティングデバイス。
【請求項１４】
前記プロセッサが、
グラフィカルユーザインターフェースのレイアウトを分析することと、
実行するための前記ソフトウェアアプリケーションの前記選択されたターゲット活動をトリガするとき、前記グラフィカルユーザインターフェースの分析の結果を使用することと
をさらに含む動作を実行するようにプロセッサ実行可能命令で構成される、請求項13に記載のサーバコンピューティングデバイス。
【請求項１５】
前記プロセッサが、
前記特定された1つまたは複数の挙動が良性でないとの判定に応じて、前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを隔離することと、
非良性として前記ソフトウェアアプリケーションを特定する情報を含む通知メッセージを前記クライアントコンピューティングデバイスに送ることと
をさらに含む動作を実行するようにプロセッサ実行可能命令で構成される、請求項12に記載のサーバコンピューティングデバイス。
【請求項１６】
前記プロセッサが、
前記特定された1つまたは複数の挙動が良性であるとの判定に応じて、前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを前記クライアントコンピューティングデバイスに送ること
をさらに含む動作を実行するようにプロセッサ実行可能命令で構成される、請求項15に記載のサーバコンピューティングデバイス。
【請求項１７】
前記プロセッサが、
前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを前記クライアントコンピューティングデバイスに送ることに応じて、前記セキュアな通信リンクを介して前記クライアントコンピューティングデバイスから追加の運用情報を受信することと、
前記受信されたソフトウェアアプリケーションをさらに運用して追加の挙動を特定するために、前記追加の運用情報を使用することと、
前記特定された追加の挙動が良性であるかどうかを判定することと
をさらに含む動作を実行するようにプロセッサ実行可能命令で構成される、請求項16に記載のサーバコンピューティングデバイス。
【請求項１８】
前記プロセッサが、前記クライアントコンピューティングデバイスから運用情報を受信することが、
前記ソフトウェアアプリケーションに関する信頼レベルを特定する情報、
探査した活動のリスト、
探査したグラフィカルユーザインターフェース(GUI)スクリーンのリスト、
探査しなかった活動のリスト、
探査しなかったGUIスクリーンのリスト、
探査しなかった挙動のリスト、
ハードウェア構成情報、または
ソフトウェア構成情報
のうちの1つまたは複数を受信することを含むような動作を実行するようにプロセッサ実行可能命令で構成される、請求項12に記載のサーバコンピューティングデバイス。
【請求項１９】
前記プロセッサが、
前記受信されたソフトウェアアプリケーションに関するリスクスコアを計算することと、
前記セキュアな通信リンクを介して、前記計算されたリスクスコアを前記クライアントコンピューティングデバイスに送ることと
をさらに含む動作を実行するようにプロセッサ実行可能命令で構成される、請求項12に記載のサーバコンピューティングデバイス。
【請求項２０】
前記プロセッサが、
前記クライアントコンピューティングデバイスから通信要求メッセージを受信することと、
前記クライアントコンピューティングデバイスからの前記通信要求メッセージの受信に応じて、前記クライアントコンピューティングデバイスに対する前記セキュアな通信リンクを確立することと
をさらに含む動作を実行するようにプロセッサ実行可能命令で構成される、請求項12に記載のサーバコンピューティングデバイス。
【請求項２１】
プロセッサ実行可能ソフトウェア命令が記憶された非一時的コンピュータ可読記憶媒体であって、前記プロセッサ実行可能ソフトウェア命令が、サーバコンピューティングデバイス内のプロセッサに、
アプリケーションダウンロードサービスからソフトウェアアプリケーションを受信することと、
クライアントコンピューティングデバイスに対するセキュアな通信リンクを確立することと、
前記セキュアな通信リンクを介して前記クライアントコンピューティングデバイスから運用情報を受信することと、
前記受信されたソフトウェアアプリケーションをクライアントコンピューティングデバイスエミュレータ内で運用して1つまたは複数の挙動を特定するために、前記受信された運用情報を使用することと、
前記特定された1つまたは複数の挙動が良性であるかどうかを判定することと
を含む動作を実行させるように構成される、非一時的コンピュータ可読記憶媒体。
【請求項２２】
前記記憶されたプロセッサ実行可能命令が、前記プロセッサに、前記受信されたソフトウェアアプリケーションを前記クライアントコンピューティングデバイスエミュレータ内で運用して1つまたは複数の挙動を特定するために、前記受信された運用情報を使用することが、
観測を保証する前記ソフトウェアアプリケーションの態様を特定するために、前記クライアントコンピューティングデバイスエミュレータのアプリケーション分析器構成要素内で前記ソフトウェアアプリケーションを分析することと、
前記受信された運用情報および前記ソフトウェアアプリケーションの分析に基づいて、運用するための前記ソフトウェアアプリケーションのターゲット活動を選択することと、
実行するための前記ソフトウェアアプリケーションの前記選択されたターゲット活動をトリガすることと、
前記トリガされた活動の実行中に前記ソフトウェアアプリケーションの挙動を観測し、前記ソフトウェアアプリケーションのランタイム挙動に基づいて、新しいターゲット活動をさらに選択することと
を含むような動作を実行させるように構成される、請求項21に記載の非一時的コンピュータ可読記憶媒体。
【請求項２３】
前記記憶されたプロセッサ実行可能命令が、前記プロセッサに、
グラフィカルユーザインターフェースのレイアウトを分析することと、
実行するための前記ソフトウェアアプリケーションの前記選択されたターゲット活動をトリガするとき、前記グラフィカルユーザインターフェースの分析の結果を使用することと
をさらに含む動作を実行させるように構成される、請求項22に記載の非一時的コンピュータ可読記憶媒体。
【請求項２４】
前記記憶されたプロセッサ実行可能命令が、前記プロセッサに、
前記特定された1つまたは複数の挙動が良性でないとの判定に応じて、前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを隔離することと、
非良性として前記ソフトウェアアプリケーションを特定する情報を含む通知メッセージを前記クライアントコンピューティングデバイスに送ることと
をさらに含む動作を実行させるように構成される、請求項21に記載の非一時的コンピュータ可読記憶媒体。
【請求項２５】
前記記憶されたプロセッサ実行可能命令が、前記プロセッサに、
前記特定された1つまたは複数の挙動が良性であるとの判定に応じて、前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを前記クライアントコンピューティングデバイスに送ること
をさらに含む動作を実行させるように構成される、請求項21に記載の非一時的コンピュータ可読記憶媒体。
【請求項２６】
前記記憶されたプロセッサ実行可能命令が、前記プロセッサに、
前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを前記クライアントコンピューティングデバイスに送ることに応じて、前記セキュアな通信リンクを介して前記クライアントコンピューティングデバイスから追加の運用情報を受信することと、
前記受信されたソフトウェアアプリケーションをさらに運用して追加の挙動を特定するために、前記追加の運用情報を使用することと、
前記特定された追加の挙動が良性であるかどうかを判定することと
をさらに含む動作を実行させるように構成される、請求項25に記載の非一時的コンピュータ可読記憶媒体。
【請求項２７】
前記記憶されたプロセッサ実行可能命令が、前記プロセッサに、前記クライアントコンピューティングデバイスから運用情報を受信することが、
前記ソフトウェアアプリケーションに関する信頼レベルを特定する情報、
探査した活動のリスト、
探査したグラフィカルユーザインターフェース(GUI)スクリーンのリスト、
探査しなかった活動のリスト、
探査しなかったGUIスクリーンのリスト、
探査しなかった挙動のリスト、
ハードウェア構成情報、または
ソフトウェア構成情報
のうちの1つまたは複数を受信することを含むような動作を実行させるように構成される、請求項21に記載の非一時的コンピュータ可読記憶媒体。
【請求項２８】
前記記憶されたプロセッサ実行可能命令が、前記プロセッサに、
前記受信されたソフトウェアアプリケーションに関するリスクスコアを計算することと、
前記セキュアな通信リンクを介して、前記計算されたリスクスコアを前記クライアントコンピューティングデバイスに送ることと
をさらに含む動作を実行させるように構成される、請求項21に記載の非一時的コンピュータ可読記憶媒体。
【請求項２９】
前記記憶されたプロセッサ実行可能命令が、前記プロセッサに、
前記クライアントコンピューティングデバイスから通信要求メッセージを受信することと、
前記クライアントコンピューティングデバイスからの前記通信要求メッセージの受信に応じて、前記クライアントコンピューティングデバイスに対する前記セキュアな通信リンクを確立することと
をさらに含む動作を実行させるように構成される、請求項21に記載の非一時的コンピュータ可読記憶媒体。
【請求項３０】
アプリケーションダウンロードサービスからソフトウェアアプリケーションを受信するための手段と、
クライアントコンピューティングデバイスに対するセキュアな通信リンクを確立するための手段と、
前記セキュアな通信リンクを介して前記クライアントコンピューティングデバイスから運用情報を受信するための手段と、
前記受信されたソフトウェアアプリケーションをクライアントコンピューティングデバイスエミュレータ内で運用して1つまたは複数の挙動を特定するために、前記受信された運用情報を使用するための手段と、
前記特定された1つまたは複数の挙動が良性であるかどうかを判定するための手段と
を含む、コンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントコンピューティングデバイスおよび企業ネットワーク上でマルウェアおよび攻撃をインテリジェントに検出するための方法およびシステムに関する。
【背景技術】
【０００２】
セルラー通信技術およびワイヤレス通信技術は、過去数年の間に爆発的な成長をとげている。ワイヤレスサービスプロバイダは現在、情報、リソース、および通信に対するかつてないレベルのアクセスをユーザに提供する、多岐にわたる機能およびサービスを提供している。これらの強化と歩調を合わせるために、消費者向け電子デバイス(たとえば、セルラーフォン、時計、ヘッドフォン、遠隔制御装置など)は、かつてないほど強力かつ複雑になり、今や一般的に、強力なプロセッサと、大規模メモリと、それらのデバイス上で複雑かつ強力なソフトウェアアプリケーションを実行することを可能にする他のリソースとを含む。これらのデバイスはまた、デバイスのユーザがアプリケーションダウンロードサービス(たとえば、Apple(登録商標) App Store、Windows(登録商標) Store、Google(登録商標) playなど)またはインターネットから、様々なソフトウェアアプリケーションをダウンロードし実行することを可能にする。
【０００３】
これらおよび他の改善により、ますます多くのモバイルデバイスおよびワイヤレスデバイスのユーザは今や、各自のデバイスを使用して、機密情報(たとえば、クレジットカード情報、連絡先など)を記憶し、かつ/またはセキュリティが重要であるタスクを達成する。たとえば、モバイルデバイスユーザは頻繁に、各自のデバイスを使用して、商品を購入し、機密の通信を送り、受信し、支払いを行い、預金口座を管理し、他の機密取引を行う。これらの動向により、マルウェア攻撃およびサイバー攻撃にとって、モバイルデバイスは次の開拓分野になりつつある。したがって、モバイルデバイスおよびワイヤレスデバイスなどのリソース制約のあるコンピューティングデバイスをより良好に保護する、改善された新しいセキュリティソリューションが消費者に有益である。
【発明の概要】
【課題を解決するための手段】
【０００４】
様々な実施形態は、非良性ソフトウェアアプリケーションからコンピューティングデバイスを保護する方法であって、サーバコンピューティングデバイス内のプロセッサが、アプリケーションダウンロードサービスからソフトウェアアプリケーションを受信するステップと、プロセッサがクライアントコンピューティングデバイスに対するセキュアな通信リンクを確立するステップと、プロセッサが、セキュアな通信リンクを介してクライアントコンピューティングデバイスから運用情報(exercise information)を受信するステップと、プロセッサが、受信されたソフトウェアアプリケーションをクライアントコンピューティングデバイスエミュレータ内で運用して(たとえば、実行して)1つまたは複数の挙動を特定するために、受信された運用情報を使用するステップと、プロセッサが、特定された挙動が良性であるかどうかを判定するステップとを含み得る、方法を含む。
【０００５】
いくつかの実施形態では、プロセッサが、受信されたソフトウェアアプリケーションをクライアントコンピューティングデバイスエミュレータ内で運用して1つまたは複数の挙動を特定するために、受信された運用情報を使用するステップは、観測を保証するソフトウェアアプリケーションの態様を特定するために、クライアントコンピューティングデバイスエミュレータのアプリケーション分析器構成要素内でソフトウェアアプリケーションを分析するステップと、受信された運用情報およびソフトウェアアプリケーションの分析に基づいて、運用するためのソフトウェアアプリケーションのターゲット活動を選択するステップとを含み得る。そのような実施形態は、実行するためのソフトウェアアプリケーションの選択されたターゲット活動をトリガするステップと、トリガされた活動の実行中にソフトウェアアプリケーションの挙動を観測し、ソフトウェアアプリケーションのランタイム挙動に基づいて、新しいターゲット活動をさらに選択するステップとをさらに含み得る。そのような実施形態は、グラフィカルユーザインターフェースのレイアウトを分析するステップと、実行するためのソフトウェアアプリケーションの選択されたターゲット活動をトリガするとき、グラフィカルユーザインターフェースの分析の結果を使用するステップとをさらに含み得る。
【０００６】
いくつかの実施形態は、プロセッサが、特定された挙動が良性でないとの判定に応じて、アプリケーションダウンロードサービスから受信されたソフトウェアアプリケーションを隔離するステップと、非良性としてソフトウェアアプリケーションを特定する情報を含む通知メッセージをクライアントコンピューティングデバイスに送るステップとを含み得る。いくつかの実施形態は、特定された挙動が良性であるとの判定に応じて、アプリケーションダウンロードサービスから受信されたソフトウェアアプリケーションをクライアントコンピューティングデバイスに送るステップを含み得る。
【０００７】
いくつかの実施形態は、アプリケーションダウンロードサービスから受信されたソフトウェアアプリケーションをクライアントコンピューティングデバイスに送ることに応じて、セキュアな通信リンクを介してクライアントコンピューティングデバイスから追加の運用情報を受信するステップを含み得る。そのような実施形態は、受信されたソフトウェアアプリケーションをさらに運用して追加の挙動を特定するために、追加の運用情報を使用するステップと、特定された追加の挙動が良性であるかどうかを判定するステップとを含み得る。いくつかの実施形態では、クライアントコンピューティングデバイスから運用情報を受信するステップは、ソフトウェアアプリケーションに関する信頼レベルを特定する情報、探査されるアプリケーション内の活動(たとえば、GUIスクリーンなど)のリスト、探査されるグラフィカルユーザインターフェース(GUI)スクリーンのリスト、アプリケーションの探査されていない活動のリスト、探査されていないGUIスクリーンのリスト、探査されていない挙動のリスト、ハードウェア構成情報、またはソフトウェア構成情報を受信するステップを含み得る。
【０００８】
いくつかの実施形態は、受信されたソフトウェアアプリケーションに関するリスクスコアを計算するステップと、セキュアな通信リンクを介して、計算されたリスクスコアをクライアントコンピューティングデバイスに送るステップとを含み得る。
【０００９】
いくつかの実施形態は、クライアントコンピューティングデバイス内でソフトウェアアプリケーションを受信するステップと、クライアントコンピューティングデバイス上でソフトウェアアプリケーションの実行を開始するステップと、挙動情報を収集するためにソフトウェアアプリケーションの活動を監視するステップとを含み得る。そのような実施形態は、複数の数字またはシンボルを介して収集された挙動情報を記述するベクトルデータ構造を生成するステップと、分析結果を生成するためにベクトルデータ構造を機械学習分類器モデルに適用するステップと、ソフトウェアアプリケーションが良性であるかどうかを判定するために、生成された分析結果を使用するステップとを含み得る。いくつかの実施形態は、ソフトウェアアプリケーションが良性でないとの判定に応じて、運用情報として、生成された分析結果をクライアントコンピューティングデバイスからサーバコンピューティングデバイスに送るステップを含み得る。
【００１０】
いくつかの実施形態は、クライアントコンピューティングデバイスから通信要求メッセージを受信するステップを含み得る。そのような実施形態では、クライアントコンピューティングデバイスに対するセキュアな通信リンクを確立するステップは、クライアントコンピューティングデバイスからの通信要求メッセージの受信に応じて、クライアントコンピューティングデバイスに対するセキュアな通信リンクを確立するステップを含み得る。
【００１１】
さらなる実施形態は、上記で要約した方法の動作を実行するようにプロセッサ実行可能命令で構成されたプロセッサを含むサーバコンピューティングデバイスを含む。さらなる実施形態は、サーバコンピューティングデバイス内のプロセッサに、上記で要約した方法の動作を実行させるように構成されたプロセッサ実行可能ソフトウェア命令を記憶した非一時的コンピュータ可読記憶媒体を含む。さらなる実施形態は、上記で要約した方法の機能を実行するための手段を有するコンピューティングデバイスを含む。
【００１２】
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本発明の例示的な実施形態を示し、上記の一般的な説明および以下の発明を実施するための形態とともに、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【００１３】
【図１】様々な実施形態とともに使用するのに適した、例示的な遠隔通信システムのネットワーク構成要素を示す通信システムブロック図である。
【図２】様々な実施形態に従って構成された実施形態システム内の例示的な論理構成要素および情報フローを示すブロック図である。
【図３】様々な実施形態による、企業ネットワークおよびそのデバイスを保護するように構成された実施形態システム内の例示的な追加の構成要素および情報フローを示すブロック図である。
【図４Ａ】様々な実施形態による、企業ネットワークおよびクライアントデバイスを保護するための方法を示すプロセスフロー図である。
【図４Ｂ】様々な実施形態による、エミュレータ内でソフトウェアアプリケーションを運用する方法を示すプロセスフロー図である。
【図５】様々な実施形態とともに使用するのに適したクライアントコンピューティングデバイスの構成要素ブロック図である。
【図６】様々な実施形態とともに使用するのに適したサーバデバイスの構成要素ブロック図である。
【発明を実施するための形態】
【００１４】
様々な実施形態が、添付の図面を参照して詳細に説明される。可能な場合はいつでも、同一のまたは同様の部分を指すために、図面全体を通して同一の参照番号が使用される。具体的な例および実装形態への言及は説明のためであり、本発明の範囲または特許請求の範囲を限定するものではない。
【００１５】
概要では、様々な実施形態は、コンピューティングデバイスまたは企業ネットワークの性能を劣化させ得る、マルウェアおよび他の非良性のアプリケーションまたは挙動から企業ネットワークおよびモバイルコンピューティングデバイスを保護するための方法、およびそれらの方法を実装するように構成されたデバイス(たとえば、サーバコンピューティングデバイス、クライアントコンピューティングデバイスなど)を含む。
【００１６】
様々な実施形態は、潜在的な非良性挙動を検出するために複数のユーザ対話を通してクライアントデバイスに対するソフトウェアアプリケーションをテストするためのソフトウェアモジュールまたは実行可能コードで構成されたサーバコンピューティングデバイスを含み得る。当技術分野で使用される用語法に従って、様々な実施形態の動作を実行するソフトウェアアプリケーションは、「デトネータ(detonator)構成要素」と呼ばれる。デトネータ構成要素は、アプリケーションダウンロードサービス(たとえば、Apple(登録商標) App Store、Windows(登録商標) Store、Google(登録商標)プレイ、など)から、クライアントコンピューティングデバイス(たとえば、モバイルコンピューティングデバイスまたはリソース制約のあるコンピューティングデバイスなど)によって要求されるソフトウェアアプリケーションを受信するかまたはインターセプトするように構成され得る。デトネータ構成要素は、クライアントコンピューティングデバイスをエミュレートし、様々な構成、動作、およびユーザ対話を通して、受信された/インターセプトされたソフトウェアアプリケーションを運用またはストレステストすることができる。そのような運用中に動作および挙動を観測することによって、デトネータ構成要素は、様々な分析動作(たとえば、静的分析動作、動的分析動作、挙動ベースの分析動作など)を実行して、ソフトウェアアプリケーションが良性であるかまたは非良性であるかを判定することができる。デトネータ構成要素は、ソフトウェアアプリケーションプログラムが非良性であるとの判定に応じて、様々な補正措置または防止措置をとることができる。たとえば、デトネータ構成要素は、非良性であると判定されたソフトウェアアプリケーションを隔離すること、クライアントコンピューティングデバイスが非良性ソフトウェアアプリケーションをダウンロードするのを防止すること、クライアントデバイスがマルウェアのダウンロードを試みたこと(したがって、サイバー攻撃を受ける可能性があるか、または別のしかたで、精査または評価が必要であること)を企業または情報技術(IT)セキュリティシステムに通知すること、要求されたアプリケーションがブロックされるべきであること、削除されるべきであること、またはダウンロードされるべきではないことをクライアントコンピューティングデバイスに通知すること、および他の同様の動作を実行することができる。
【００１７】
様々な実施形態は、クライアント主導型デトネーションを達成するための様々な動作を実行するように構成されたクライアントコンピューティングデバイスを含み得る。たとえば、クライアントコンピューティングデバイスは、デトネータ構成要素またはサーバコンピューティングデバイスに対するセキュアな通信リンクを確立し、セキュアな通信リンクを使用して、(たとえば、ソフトウェアアプリケーションが疑わしい、非良性であるなどのクライアントコンピューティングデバイスの判定に応じて)ソフトウェアアプリケーションの特定の態様または挙動を評価するようにデトネータ構成要素に要求するように構成され得る。
【００１８】
いくつかの実施形態では、クライアントコンピューティングデバイスは、挙動分析および機械学習技法を使用して非良性の挙動を特定し、防止し、それに応じ、かつ/または修正するように構成されたオンデバイスセキュリティシステムを装備し得る。これらの動作の一部として、オンデバイスセキュリティシステムは、デバイス挙動を監視し、挙動情報構造(たとえば、挙動ベクトル)を生成し、挙動情報構造を分類器モデルに適用して挙動分析結果を生成し、挙動分析結果を使用してソフトウェアアプリケーションまたはデバイスの挙動が良性であるかまたは非良性であるかを判定することができる。
【００１９】
ソフトウェアアプリケーションまたはデバイス挙動が疑わしい(たとえば、比較結果または分析結果などに基づいて、十分高い信頼度で良性または非良性であると分類することができない)との判定に応じて、クライアントコンピューティングデバイスは、運用情報を収集して、セキュアな通信リンクを介してデトネータ構成要素に送り、ソフトウェアアプリケーションをさらに分析するようにデトネータ構成要素に要求することができる。運用情報は、ソフトウェアアプリケーションに関する信頼レベルを特定する情報、探査されたアプリケーションの活動のリスト、探査されたGUIスクリーンのリスト、探査されていないアプリケーションの活動のリスト、探査されていないGUIスクリーンのリスト、探査されていない挙動のリスト、ハードウェア構成情報、ソフトウェア構成情報、収集された挙動情報、生成された挙動ベクトル、分類器モデル、その分析動作の結果、クライアントデバイスの電子デバイス上に表示される、ボタン、テキストボックス、または他の電子ユーザ入力の位置、および他の情報を含み得る。サーバコンピューティングデバイスは、運用情報を受信し、その運用情報を使用して、そのクライアントコンピューティングデバイスエミュレータを更新すること、および/または特定の挙動活動、スクリーン、ユーザインターフェース要素、電子キー、レイアウトなどを評価することにその動作を集中させることができる。
【００２０】
いくつかの実施形態では、クライアントコンピューティングデバイスは、デトネータまたはサーバコンピューティングデバイスから情報(たとえば、リスクスコア、信頼値、ランキングなど)を受信して、受信された情報を使用して、ソフトウェアアプリケーションを評価(または、さらに評価)するように、かつ/またはソフトウェアアプリケーションが良性であるか非良性であるかを判定するように構成され得る。
【００２１】
デトネータ構成要素は、クライアントコンピューティングデバイスからセキュアな通信リンクを介して、ソフトウェアアプリケーションに関する運用情報(たとえば、挙動情報、分類器モデル、挙動ベクトルなど)をセキュアに受信するように構成され得る。いくつかの実施形態では、サーバコンピューティングデバイスは、エミュレーションまたは分析結果(たとえば、静的および/または動的な分析動作を実行することによって生成された結果)を使用して運用情報を生成し、運用情報をクライアントコンピューティングデバイスに送るように構成され得る。運用情報は、挙動情報、挙動ベクトル、分類器モデル、その分析動作の結果、信頼レベル、リスクスコア、探査された活動またはグラフィカルユーザインターフェース(GUI)スクリーンのリスト、探査されていないGUIスクリーンまたは活動のリスト、ハードウェア構成情報、ソフトウェア構成情報、ランキング、セキュリティスコア、および他の同様の情報を含み得る。一実施形態では、運用情報は、(たとえば、一連の数字またはシンボルを介してなど)ソフトウェアアプリケーションの活動を簡潔に記述または特徴付ける挙動ベクトル(情報構造)を含み得る。
【００２２】
様々な実施形態は、そのセキュリティ、性能、および電力消費の特性を改善することによってコンピューティングデバイスの作用を改善する。たとえば、サーバから受信された情報をデバイス内で収集された情報と比較して、ソフトウェアアプリケーションが疑わしいかどうかを判定することによって、様々な実施形態は、コンピューティングデバイスが、追加の分析動作を実行するかどうかを迅速かつインテリジェントに判定すること、またはソフトウェアアプリケーションのよりロバストな分析を実行するようにサーバに要求すること可能にする。これは、デバイスがプロセッサまたはバッテリー集中型動作をオフロードし、(たとえば、セキュアなリンクを介して運用情報を送ることによって)デトネータ構成要素によって評価された特徴または要因を制御することを可能にすることによって、デバイスの性能および電力消費の特性を改善する。コンピューティングデバイスの機能、機能性、および/または作用に対する追加の改善は、以下で提供される実施形態の詳細な説明から明らかになろう。
【００２３】
「性能劣化」、「性能における劣化」などの句は、本出願では、より長い処理時間、より遅いリアルタイム応答性、より短いバッテリー持続時間、個人データの損失、悪意のある経済活動(たとえば、無許可のプレミアムショートメッセージサービス(SMS)メッセージを送ること)、サービス拒否(DoS)、不適切に書かれたまたは設計されたソフトウェアアプリケーション、悪意のあるソフトウェア、マルウェア、ウイルス、断片化されたメモリ、スパイまたはボットネット活動のためにデバイスを乗っ取ることまたはデバイスを利用することに関する動作など、ネットワークまたはコンピューティングデバイスの多種多様な望ましくない動作および特性を指すために使用され得る。また、これらの理由のいずれかで性能を劣化させる挙動、活動、および条件は、本明細書では「良性ではない」または「非良性である」と呼ばれる。
【００２４】
「クライアントコンピューティングデバイス」および「モバイルコンピューティングデバイス」という用語は、本出願では一般的かつ互換的に使用され、セルラー電話、スマートフォン、パーソナルまたはモバイルのマルチメディアプレーヤ、携帯情報端末(PDA)、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、ウルトラブック、パームトップコンピュータ、ワイヤレス電子メールレシーバ、マルチメディアインターネット対応セルラー電話、ワイヤレスゲームコントローラ、および、性能が重要であるメモリとプログラマブルプロセッサとを含み、節電方法が有益であるようなバッテリー電力で動作する同様の電子デバイスのいずれかまたはすべてを指す。様々な実施形態は、リソース制約のあるシステムであるクライアントコンピューティングデバイスに対して特に有用であるが、これらの実施形態は、通常、プロセッサを含みソフトウェアアプリケーションを実行する、任意のコンピューティングデバイスにおいて有用である。
【００２５】
現代のコンピューティングデバイスは、デバイスのユーザがアプリケーションダウンロードサービス(たとえば、Apple App Store、Windows Store、Google playなど)またはインターネットから様々なソフトウェアアプリケーションをダウンロードし実行することを可能にする。これらのアプリケーションの多くは、マルウェア、アドウェア、バグ、または他の非良性要素を受けやすくかつ/またはこれらを含む。結果として、これらのアプリケーションをコンピューティングデバイス上にダウンロードし実行することは、企業ネットワークおよび/またはコンピューティングデバイス上の性能を劣化させる可能性がある。したがって、良性のアプリケーションのみがコンピューティングデバイスまたは企業ネットワーク内にダウンロードされることを確実にすることが重要である。
【００２６】
最近、Google/Androidは、ユーザがソフトウェアアプリケーションを「ストレステスト」することを可能にする、「The Monkey」と呼ばれるツールを開発した。このツールは、開発者がソフトウェアアプリケーションをストレステストするために使用することができる、ユーザイベント(たとえば、クリック、タッチ、ジェスチャなど)およびシステムレベルイベント(たとえば、ディスプレイ設定変更イベント、セッション終了イベント、など)の疑似ランダムストリームを生成するためのエミュレータとして実行され得る。そのような従来型のツール(たとえば、The Monkeyなど)は、ある程度まで有用であり得るが、これらは、モバイルコンピューティングデバイスまたは他のリソース制約のあるデバイス内で実行し使用するように設計されたソフトウェアアプリケーションに特有のリッチなグラフィカルユーザインターフェースを備えた「アプリ」またはソフトウェアアプリケーションの体系的/知的/スマートな評価には適していない。
【００２７】
アプリケーションがクライアントコンピューティングデバイス上にてダウンロードされ実行される前に、そのようなツールが、マルウェアおよび/または他の非良性アプリケーションをインテリジェントに特定することを妨げる従来型のストレステストツールに関していくつかの制約が存在する。まず、ほとんどの従来型のエミュレータは、デスクトップ環境で実行するように、かつ/またはデスクトップ環境で実行するように設計されたソフトウェアアプリケーションをエミュレートするように設計されている。デスクトップアプリケーション(すなわち、デスクトップ環境で実行するように設計されたソフトウェアアプリケーション)がアプリ(すなわち、主に、モバイル環境またはリソース制約のある環境で実行するように設計されたソフトウェアアプリケーション)よりもさらに遅いレートで開発されている。このために、従来のソリューションは、概して、迅速に、効率的に(すなわち、大量の処理リソースもしくはバッテリーリソースを使用せずに)、または適応的に(すなわち、同じもしくは同様のアプリケーションを実行する他のモバイルコンピューティングデバイスによって「ワイルド」もしくは「フィールド」内で収集される実際のデータに基づいて)アプリケーションを評価するための特徴および機能性を含まない。
【００２８】
さらに、モバイルコンピューティングデバイスは、比較的制限された処理リソース、メモリリソース、およびエネルギーリソースを有するリソース制約のあるシステムであり、これらの従来のソリューションは、モバイルコンピューティングデバイス内で計算量的に集約したプロセスの実行を必要とし得る。したがって、モバイルコンピューティングデバイス内でこれらの従来のソリューションを実装または実行することは、モバイルコンピューティングデバイスの応答性、性能、または電力消費の特性に重要な悪影響および/またはユーザが知覚できる影響を及ぼし得る。
【００２９】
加えて、多くの従来のソリューション(たとえば、「The Monkey」など)は、ソフトウェアアプリケーションに限られた数の動作を実行させるイベントの疑似ランダムストリームを生成する。これらのストリームは、限られた数の条件、特徴、または要因を評価するためにのみ使用され得る。しかし、現代のモバイルコンピューティングデバイスは、高度に構成可能かつ複雑なシステムであり、非良性挙動を特定するために分析を必要とし得る多種多様な条件、要因、および特徴を含む。結果として、The Monkeyなどの従来のソリューションはモバイルコンピューティングデバイス内の分析を必要とし得るすべての条件、特徴、または要因を評価することができないため、これらのソリューションは、アプリまたはモバイルコンピューティングデバイスアプリケーションを完全にストレステストしない。たとえば、The Monkeyおよび他の従来型のツールは、モバイルコンピューティングデバイスの電子ディスプレイ画像上に表示される、ボタン、テキストボックス、または他の電子ユーザ入力構成要素のプレゼンス、存在、または位置を適切に特定しない。結果として、これらのソリューションは、これらの特徴(たとえば、電子ユーザ入力構成要素など)を適切にストレステストまたは評価して、モバイルコンピューティングデバイスアプリケーションが良性であるか非良性であるかを判定することができない。
【００３０】
さらに、従来型のツールは、ソフトウェアアプリケーションまたはモバイルコンピューティングデバイスによって使用される活動もしくはスクリーンの数、または個々の活動もしくはスクリーンの相対的な重要性をインテリジェントに判定しない。加えて、従来型のツールは、モバイルコンピューティングデバイス上のソフトウェアアプリケーションの使用から収集された実際のデータまたはライブデータとは対照的に、作製されたテストデータ(すなわち、事前に判定されたプログラムの実行のデータ)を使用して、ソフトウェアアプリケーションを評価する。すべてのこれらの理由で、ソフトウェアアプリケーションをストレステストするための従来型のツールは、モバイルコンピューティングデバイス上で実行するように設計されたソフトウェアアプリケーションを適切にまたは完全に「運用」またはストレステストせず、非良性アプリケーションが企業ネットワーク上にダウンロードされる前に、かつ/または非良性アプリケーションが、モバイルコンピューティングデバイス上にダウンロード、インストール、または実行される前に、非良性アプリケーションを特定するのに通常であれば適さない。
【００３１】
様々な実施形態は、従来型のソリューションの上述の限度を克服し、アプリケーションが企業ネットワークもしくはプライベートネットワーク上にダウンロードされる前に、かつ/またはアプリケーションがクライアントコンピューティングデバイス上にダウンロードされ、インストールされる前に、非良性アプリケーションを特定するように構成されたコンピューティングデバイスを含む。
【００３２】
様々な実施形態は、アプリケーションダウンロードサービスからソフトウェアアプリケーションを受信し、クライアントコンピューティングデバイスに対するセキュアな通信リンクを確立し、セキュアな通信リンクを介してクライアントコンピューティングデバイスから運用情報を受信するように構成されたサーバプロセッサを含むサーバコンピューティングデバイスを含み得る。サーバによって受信され得る運用情報の例は、ソフトウェアアプリケーションに関する信頼レベルを特定する情報、探査された活動のリスト、探査されたGUIスクリーンのリスト、探査されていない活動のリスト、探査されていないGUIスクリーンのリスト、探査されていない挙動のリスト、ハードウェア構成情報、ソフトウェア構成情報などを含み得る。サーバは、受信されたソフトウェアアプリケーションをクライアントコンピューティングデバイスエミュレータ内で運用/実行して1つまたは複数の挙動を特定するために、受信された運用情報を使用することができる。そのような運用中のエミュレータの挙動の観測に基づいて、サーバは、所望の挙動をもたらすことになる一連の活動をどのようにトリガするかを判定し、次いで、特定された挙動をトリガすることができる。サーバは、特定された挙動がトリガされるとき、エミュレータの挙動を観測し、ソフトウェアアプリケーションおよび/または特定された挙動が良性であるかどうかを判定することができる。コンピューティングデバイスは、ソフトウェアアプリケーションもしくは特定された挙動のうちのいずれかが良性でないとの判定に応じて、ソフトウェアアプリケーションを隔離すること、または特定された挙動が良性であるとの判定に応じて、ソフトウェアアプリケーションをクライアントコンピューティングデバイスに送ることができる。いくつかの実施形態は、サーバコンピューティングデバイスはまた、受信されたソフトウェアアプリケーションに関するリスクスコアを計算し、セキュアな通信リンクを介して、計算されたリスクスコアをクライアントコンピューティングデバイスに送ることができる。
【００３３】
クライアントコンピューティングデバイスは、ソフトウェアアプリケーションを受信し実行し、観測のための挙動を動的に選択することができる。クライアントコンピューティングデバイスは、挙動情報を収集するために、動的に選択された挙動を適応的に観測することができる。観測に基づいて、クライアントコンピューティングデバイスは、複数の数字またはシンボルを介して収集された挙動情報を記述するベクトルデータ構造を生成することができる。クライアントコンピューティングデバイスは、分析結果を生成するためにベクトルデータ構造を機械学習分類器モデルに適用し、生成された分析結果を使用して、ソフトウェアアプリケーションが疑わしいことを判定することができる。クライアントコンピューティングデバイスは、ソフトウェアアプリケーションが疑わしいとの判定に応じて、追加の運用情報を収集して、セキュアな通信リンクを介してサーバコンピューティングデバイスに送ることができる。
【００３４】
サーバコンピューティングデバイスは、セキュアな通信リンクを介して、クライアントコンピューティングデバイスから追加の運用情報を受信することができる。サーバコンピューティングデバイスは、追加の運用情報を使用して、受信されたソフトウェアアプリケーションをさらに運用して追加の挙動を特定することができる。特定された追加の挙動を観察して、サーバコンピューティングデバイスは、特定された追加の挙動が良性であるかまたは良性でないかを判定することができる。
【００３５】
様々な実施形態では、サーバコンピューティングデバイスは、アプリケーションが企業ネットワーク上にダウンロードされる前に、かつ/またはアプリケーションがクライアントコンピューティングデバイス上にダウンロードされる前、インストールされる前、もしくはその上で実行される前に、マルウェアおよび/または他の非良性アプリケーションをインテリジェントに特定するように構成され得る。
【００３６】
いくつかの実施形態では、サーバコンピューティングデバイスは、モバイルコンピューティングデバイスまたは他のリソース制約のあるコンピューティングデバイス内で実行し使用するように設計された「アプリ」またはソフトウェアアプリケーションを運用、評価、またはストレステストするように構成され得る。
【００３７】
いくつかの実施形態では、サーバコンピューティングデバイスは、ソフトウェアアプリケーションおよび/またはクライアントコンピューティングデバイスの多種多様な条件、要因、および特徴を評価して、挙動またはソフトウェアアプリケーションが非良性であるかどうかを判定するように構成され得る。
【００３８】
いくつかの実施形態では、サーバコンピューティングデバイスは、クライアントコンピューティングデバイスの応答性、性能、または電力消費の特性に重大な悪影響および/またはユーザが知覚可能な影響を及ぼすことなく、迅速、効率的、かつ適切にアプリを評価するように構成され得る。
【００３９】
いくつかの実施形態では、サーバコンピューティングデバイスは、クライアントコンピューティングデバイスの電子ディスプレイ画面上に表示された、ボタン、テキストボックス、または他の電子ユーザ入力構成要素のプレゼンス、存在、または位置を特定し、これらの特定された条件、特徴、または要因のうちのいずれかまたはすべてを評価して、挙動またはソフトウェアアプリケーションが非良性であるかどうかを判定するように構成され得る。
【００４０】
いくつかの実施形態では、サーバコンピューティングデバイスは、ソフトウェアアプリケーションによって使用される活動またはスクリーンの数を判定し、個々の活動またはスクリーンの相対的な重要性を判定し、この情報を使用して、挙動またはソフトウェアアプリケーションが非良性であるかどうかを判定するように構成され得る。
【００４１】
いくつかの実施形態では、サーバコンピューティングデバイスは、クライアントコンピューティングデバイス上のソフトウェアアプリケーションの使用から収集された実際のデータまたはライブデータを使用して、クライアントコンピューティングデバイス上で実行するように設計されたソフトウェアアプリケーションをより完全に運用またはストレステストするように構成され得る。
【００４２】
様々な実施形態は、図1に示す例示的な通信システム100などの様々な通信システム内で実装され得る。典型的なセル電話ネットワーク104は、ネットワーク運用センター108に結合された複数のセル基地局106を含み、ネットワーク運用センター108は、電話陸上通信線(たとえば、図示されていない簡易電話サービス(POTS)ネットワーク)およびインターネット110を介してなど、クライアントコンピューティングデバイス102(たとえば、セルフォン、ラップトップ、タブレットなど)と他のネットワーク宛先との間の通話(たとえば、音声通話またはビデオ通話)およびデータを接続するように動作する。クライアントコンピューティングデバイス102と電話ネットワーク104との間の通信は、第4世代(4G)、第3世代(3G)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、ロングタームエボリューション(LTE)、および/または他のモバイル通信技術など、双方向ワイヤレス通信リンク112を介して達成され得る。電話ネットワーク104はまた、インターネット110への接続を提供する、ネットワーク運用センター108に結合されるかまたはネットワーク運用センター108内にある、1つまたは複数のサーバ114を含み得る。
【００４３】
通信システム100はさらに、電話ネットワーク104およびインターネット110に接続されたネットワークサーバ116を含み得る。ネットワークサーバ116と電話ネットワーク104との間の接続は、インターネット110を通じたものであるか、または(破線の矢印で示されたように)プライベートネットワークを通じたものであり得る。ネットワークサーバ116は、クラウドサービスプロバイダネットワーク118のネットワークインフラストラクチャ内のサーバとしても実装され得る。ネットワークサーバ116とクライアントコンピューティングデバイス102との間の通信は、電話ネットワーク104、インターネット110、プライベートネットワーク(図示せず)、またはそれらの任意の組合せを介して達成することができる。一実施形態では、ネットワークサーバ116は、クライアントコンピューティングデバイス102に対するセキュアな通信リンクを確立し、セキュアな通信リンクを介して情報(たとえば、挙動情報、分類器モデル、挙動ベクトルなど)をセキュアに通信するように構成され得る。
【００４４】
クライアントコンピューティングデバイス102は、プライベートネットワーク、アプリケーションダウンロードサービス、またはクラウドサービスプロバイダネットワーク118からソフトウェアアプリケーションのダウンロードを要求することができる。ネットワークサーバ116は、クライアントコンピューティングデバイス102によって要求されるソフトウェアアプリケーションを受信またはインターセプトするように構成された、エミュレータ構成要素、エクササイザ構成要素、および/またはデトネータ構成要素を装備し得る。エミュレータ構成要素、エクササイザ構成要素、および/またはデトネータ構成要素は、クライアントコンピューティングデバイス102をエミュレートし、受信/インターセプトされたソフトウェアアプリケーションを使用またはストレステストし、様々な分析動作を実行してソフトウェアアプリケーションが良性であるかまたは非良性であるかを判定するように構成されることも可能である。
【００４５】
したがって、ネットワークサーバ116は、ソフトウェアアプリケーションがクライアントコンピューティングデバイス102にダウンロードされる前に、ソフトウェアアプリケーションをインターセプトし、クライアントコンピューティングデバイス102をエミュレートし、インターセプトされたソフトウェアアプリケーションを運用またはストレステストし、インターセプトされたソフトウェアアプリケーションのうちのいずれかが良性であるかまたは非良性であるかを判定するように構成され得る。いくつかの実施形態では、ネットワークサーバ116は、ソフトウェアアプリケーションが良性であるかまたは非良性であるかを判定するように構成された挙動ベースのセキュリティシステムを装備し得る。一実施形態では、挙動ベースのセキュリティシステムは、機械学習分類器モデル(たとえば、構成要素リスト、決定ノードなどを含む情報構造)を生成し、挙動ベクトル(たとえば、デバイス挙動を特徴付け、かつ/または複数の数字もしくはシンボルを介して収集された挙動情報を表す情報構造)を生成し、生成された挙動ベクトルを生成された機械学習分類器モデルに適用して分析結果を生成し、生成された分類結果を使用して、ソフトウェアアプリケーションを良性または非良性として分類するように構成され得る。
【００４６】
図2は、様々な実施形態による、ソフトウェアアプリケーションをインターセプトし評価するように構成され得るデトネータ構成要素202を含む例示的なシステム200を示す。図2に示す例では、デトネータ構成要素202とクライアントコンピューティングデバイス102との間にセキュアな通信リンク204が確立される。いくつかの実施形態では、クライアントコンピューティングデバイス102は、デトネータ構成要素202に対するセキュアな通信リンク204を確立することができる。他の実施形態では、デトネータ構成要素202は、クライアントコンピューティングデバイス102に対するセキュアな通信リンク204を確立することができる。
【００４７】
様々な実施形態では、デトネータ構成要素202は、クライアントコンピューティングデバイス102からアプリケーションをダウンロードする要求の受信に応じて、デトネータ構成要素202がクライアントコンピューティングデバイス102によって要求されたソフトウェアアプリケーションを受信したとの判定に応じてなど、クライアントコンピューティングデバイス102に対するセキュアな通信リンク204を確立することができる。様々な実施形態では、クライアントコンピューティングデバイス102は、ソフトウェアアプリケーションがアプリケーションダウンロードサービスからダウンロードされたとの判定に応じて、ソフトウェアアプリケーションの受信に応じて、受信されたソフトウェアアプリケーションが疑わしいかまたは非良性であるとの判定に応じてなど、デトネータ構成要素202に対するセキュアな通信リンク204を確立することができる。
【００４８】
デトネータ構成要素202は、セキュアな通信リンク204を介して運用情報(たとえば、信頼レベル、探査された活動のリスト、探査されたGUIスクリーンのリスト、探査されていない活動のリスト、探査されていないGUIスクリーンのリスト、探査されていない挙動のリスト、ハードウェア構成情報、ソフトウェア構成情報、挙動ベクトルなど)をクライアントコンピューティングデバイス102から受信するように構成され得る。デトネータ構成要素202はまた、セキュアな通信リンク204を介して情報(たとえば、リスクスコア、セキュリティ格付け、挙動ベクトル、分類器モデルなど)をクライアントコンピューティングデバイス102に送ることができる。
【００４９】
デトネータ構成要素202は、ソフトウェアアプリケーション(または、アプリケーションパッケージ、アプリケーションデータなど)をアプリケーションダウンロードサービスからまたはインターネット110を介して受信するように構成され得る。デトネータ構成要素202は、受信されたソフトウェアアプリケーションをクライアントコンピューティングデバイスエミュレータ内で運用またはストレステストするように構成され得る。デトネータ構成要素202は、ソフトウェアアプリケーションおよび/またはクライアントコンピューティングデバイス102の1つまたは複数の活動または挙動を特定し、それらの重要性レベルに従って、活動または挙動をランク付けするように構成され得る。デトネータ構成要素202は、それらのランクに基づいて活動または挙動を優先順位付けし、それらの優先順位に従って活動または挙動を分析するように構成され得る。デトネータ構成要素202は、分析結果を生成し、分析結果を使用して、特定された挙動が良性であるかまたは非良性であるかを判定するように構成され得る。
【００５０】
デトネータ構成要素202は、受信されたソフトウェアアプリケーション(または、アプリケーションパッケージ、アプリケーションデータなど)を、企業ネットワーク206に送ることができるか、または別の方法で、ソフトウェアアプリケーションが企業ネットワーク206内で受信されることを可能にすることができる。企業ネットワーク206は、ソフトウェアアプリケーションをクライアントコンピューティングデバイス102に送るように構成された構成要素を含み得る。
【００５１】
ソフトウェアアプリケーションまたは特定された挙動のうちのいずれかが非良性であるとの判定に応じて、デトネータ構成要素202は、ソフトウェアアプリケーションを隔離し、セキュリティ警告または通知メッセージを企業またはIT/セキュリティシステム206に送ることができる。それに応じて、企業またはIT/セキュリティシステム206は、ソフトウェアアプリケーションを非良性として特定する情報を含む通知メッセージをクライアントコンピューティングデバイス102に送ること、および/または他の補正措置もしくは防止措置を講じることができる。
【００５２】
図3は、サーバ内で実行するデトネータ構成要素202と、様々な実施形態に従って構成されたクライアントコンピューティングデバイス102とを含むシステム300内の様々な構成要素および情報フローを示す。図3に示す例では、デトネータ構成要素202は、アプリケーション分析器構成要素322と、ターゲット選択構成要素324と、活動トリガ構成要素326と、レイアウト分析構成要素328と、トラップ構成要素330とを含む。クライアントコンピューティングデバイス102は、挙動観測器構成要素302と、挙動抽出器構成要素304と、挙動分析器構成要素306と、アクチュエータ構成要素308とを含むセキュリティシステム300を含む。
【００５３】
上述のように、デトネータ構成要素202は、ソフトウェアアプリケーションを(たとえば、クライアントコンピューティングデバイスエミュレータ内で)運用して、ソフトウェアアプリケーションおよび/またはクライアントコンピューティングデバイス102の1つまたは複数の挙動を特定し、特定された挙動が良性であるかまたは非良性であるかを判定するように構成され得る。これらの動作の一部として、デトネータ構成要素202は、静的および/または動的分析動作を実行することができる。静的な分析動作は、コードパスを特定するためにバイトコード(たとえば、アプリケーションダウンロードサービスにアップロードされたソフトウェアアプリケーションのコード)を分析することと、(たとえば、ソフトウェアアプリケーションが悪意のあるものであるかどうかを判定するなどのために)ソフトウェアアプリケーションの意図を評価することと、ソフトウェアアプリケーションの可能な動作または挙動のすべてまたは多くを特定するための他の類似の動作を実行することとを含み得る。動的な分析動作は、その挙動のすべてもしくは多くを判定するために、かつ/または非良性の挙動を特定するために、(たとえば、クラウドなどにおける)エミュレータを介してバイトコードを実行することを含み得る。一実施形態では、デトネータ構成要素202は、静的分析動作および動的分析動作から生成された情報の組合せ(たとえば、静的分析結果および動的分析結果の組合せ)を使用して、ソフトウェアアプリケーションまたは挙動が良性であるかまたは非良性であるかを判定するように構成され得る。たとえば、デトネータ構成要素202は、静的な分析を使用して、アプリケーションプログラミングインターフェース(API)使用および/またはコードパスに基づく予期される挙動を用いて挙動情報構造をポピュレートし、動的な分析を使用して、エミュレートされた挙動、および特徴が励起または使用された頻度などの、それらの関連する統計値に基づく挙動情報構造をポピュレートするように構成され得る。デトネータ構成要素202は、次いで、挙動情報構造を機械学習分析器に適用して分析結果を生成し、アプリケーションが良性であるかまたは非良性であるかを判定するために分析結果を使用することができる。
【００５４】
アプリケーション分析器構成要素322は、静的および/または動的分析動作を実行して1つまたは複数の挙動を特定し、特定された挙動が良性であるかまたは非良性であるかを判定するように構成され得る。たとえば、各活動(すなわち、GUIスクリーン)に関して、アプリケーション分析器構成要素322は、コードの行数をカウントする、機密/関心のあるAPI通話の数をカウントする、ソースコードまたは動作/活動を明らかにする(unroll)ために、その対応するソースコード、通話方法を検査する、結果として生じるソースコードを検査する、コードの行数を再帰的にカウントする、機密/関心のあるAPI通話の数を再帰的にカウントする、活動から到達可能なコードの総行数を出力する、活動から到達可能な機密/関心のあるAPI通話の総数を出力するなど、様々な動作のうちのいずれかを実行することができる。アプリケーション分析器構成要素322を使用して、異なる活動(すなわち、GUIスクリーン)が互いにどのようにリンクされるかをキャプチャする所与のアプリケーションに関する活動遷移グラフを生成することもできる。
【００５５】
ターゲット選択構成要素324は、(たとえば、使用事例に従って、ヒューリスティクス(heuristics)に基づいて、アプリケーション分析器構成要素322によって実行された分析の結果、ならびに、クライアントコンピューティングデバイスから受信された運用情報に基づいてなど)有用性が高いターゲット活動を特定および選択するように構成され得る。ターゲット選択構成要素324はまた、コードの累積行数、ソースコード内で作成された機密API通話または関心のあるAPI通話の数などに従って、活動または活動クラスをランク付けすることができる。マルウェア検出に関する機密APIの例には、takePicture、getDeviceIdなどがあり得る。エネルギーバグ検出に関する当該APIの例には、Wakelock.acquire、Wakelock.releaseなどがあり得る。ターゲット選択構成要素324はまた、ランクに従って活動の訪問を優先順位付けし、ランクおよび/または優先順位に基づいてターゲットを選択することができる。
【００５６】
現在のターゲット活動が達成され探査されると、ターゲット選択構成要素324によって新しいターゲットが選択され得る。一実施形態では、ランタイム中に実際に行われた機密/関心のあるAPI通話の数をアプリ分析器構成要素322によって判定される機密/関心のあるAPI通話の数と比較することによって、これを達成することができる。さらに、アプリケーションが示した、観測されたランタイム挙動に基づいて、(すでに探査されている活動を含めて)活動のうちのいくつかを再ランク付けし、エミュレータ上で再び探査/運用することができる。
【００５７】
アプリケーション分析器構成要素322内で判定された活動遷移グラフに基づいて、活動トリガ構成要素326は、選択されたターゲット活動をもたらすことになる一連の活動をどのようにトリガするかを判定すること、たとえば、アプリケーションのマニフェストファイルからエントリポイント活動を特定すること、および/またはThe Monkeyツールを使用して、判定された一連の活動をエミュレート、トリガ、もしくは実行することができる。
【００５８】
レイアウト分析構成要素328は、GUIスクリーン上で可視の異なるGUI制御(ボタン、テキストボックスなど)、それらの位置、および、ボタンがクリック可能であるかどうかなど、他の属性を特定するために、ソースコードを分析するようにおよび/またはディスプレイ画面もしくは出力画面のレイアウトを評価するように構成され得る。
【００５９】
トラップ構成要素330は、ターゲット挙動を捕捉するかまたは生じさせるように構成され得る。いくつかの実施形態では、これは、挙動情報を収集するためにソフトウェアアプリケーションの活動を監視すること、収集された挙動情報を使用して挙動ベクトルを生成すること、挙動ベクトルを分類器モデルに適用して分析結果を生成すること、および分析結果を使用して、ソフトウェアアプリケーションまたはデバイス挙動が良性であるかまたは非良性であるかを判定すること、を含み得る。
【００６０】
各挙動ベクトルは、1つまたは複数の「挙動特徴」をカプセル化する挙動情報構造であり得る。各挙動特徴は、観測された挙動のすべてまたは一部分を表す無名数であり得る。加えて、各挙動特徴は、可能な値の範囲、それらの値に対して実行され得る動作、値の意味などを特定するデータタイプに関連付けられ得る。データタイプは、特徴(または特徴値)がどのように測定され、分析され、重み付けられ、または使用されるべきかを判定するために使用され得る情報を含み得る。一例として、トラップ構成要素330は、その値が、ソフトウェアアプリケーションがバックグラウンド状態において動作中であったときにソフトウェアアプリケーションが位置情報にアクセスした回数または割合を特定する、「location_background」データフィールドを含む挙動ベクトルを生成してもよい。これによって、トラップ構成要素330が、ソフトウェアアプリケーションの他の観測された/監視された活動とは無関係に、および/またはそれと並列に、この実行状態情報を分析することが可能になる。このようにして挙動ベクトルを生成することで、システムが情報(たとえば、頻度または割合)を経時的に統合することも可能になる。
【００６１】
分類器モデルは、デバイスの挙動の特定の特徴または具現を評価するためにコンピューティングデバイスプロセッサによって使用され得る、データおよび/または情報構造(たとえば、特徴ベクトル、挙動ベクトル、構成要素リスト、決定ツリー、決定ノードなど)を含む挙動モデルであり得る。分類器モデルはまた、コンピューティングデバイスにおけるいくつかの特徴、要因、データポイント、エントリ、API、状態、条件、挙動、ソフトウェアアプリケーション、プロセス、動作、構成要素など(本明細書では、「特徴」と総称される)を監視および/または分析するための決定基準を含み得る。
【００６２】
クライアントコンピューティングデバイス102内で、挙動観測器構成要素302は、様々なアプリケーションプログラミングインターフェース(API)、レジスタ、カウンタ、またはクライアントコンピューティングデバイス102の様々なレベルにおける他の構成要素(本明細書では、総称して「計装された構成要素」)を計装または調整するように構成され得る。挙動観測器構成要素302は、計装された構成要素から挙動情報を収集することによって、クライアントコンピューティングデバイス102の活動を繰り返しまたは連続的に(もしくは、略連続的に)監視し得る。一実施形態では、このことは、クライアントコンピューティングデバイス102のメモリの中に記憶されたAPIログファイルから情報を読み取ることによって達成され得る。
【００６３】
挙動観測器構成要素302は、収集された挙動情報を挙動抽出器構成要素304へ(たとえば、メモリ書込み動作、関数呼出しなどを介して)通信し得、挙動抽出器構成要素304は、収集された挙動情報を使用して、クライアントコンピューティングデバイスの特定のソフトウェアアプリケーション、モジュール、構成要素、タスク、またはプロセスに関連する観測された挙動のうちの多くまたはすべてをそれぞれが表し、または特徴付ける、挙動情報構造を生成することができる。各挙動情報は、1つまたは複数の「挙動特徴」をカプセル化する挙動ベクトルであり得る。各挙動特徴は、観測された挙動のすべてまたは一部分を表す無名数であり得る。加えて、各挙動特徴は、可能な値の範囲、それらの値に対して実行され得る動作、値の意味などを特定するデータタイプに関連付けられ得る。データタイプは、特徴(または特徴値)がどのように測定され、分析され、重み付けられ、または使用されるべきかを判定するために使用され得る情報を含み得る。
【００６４】
挙動抽出器構成要素304は、生成された挙動情報構造を挙動分析器構成要素306に(たとえば、メモリ書込み動作、関数呼出しなどを介して)通信することができる。分析器構成要素306は、挙動情報構造を分類器モデルに適用して分析結果を生成し、分析結果を使用してソフトウェアアプリケーションまたはデバイス挙動が良性であるかまたは非良性であるか(たとえば、悪意のある、不十分に書かれている、性能を劣化させるなど)を判定し得る。
【００６５】
挙動分析器構成要素306は、活動または挙動が良性でないことをアクチュエータ構成要素308に通知するように構成されてもよい。それに応じて、アクチュエータ構成要素308は、特定された問題を修復する、是正する、隔離する、または別様に直すために、様々な活動または動作を実行してもよい。たとえば、アクチュエータ構成要素308は、挙動情報構造を分類器モデルに(たとえば、分析器モジュールによって)適用した結果が、ソフトウェアアプリケーションまたはプロセスが良性でないことを示すとき、ソフトウェアアプリケーションまたはプロセスを終了するように構成され得る。
【００６６】
挙動分析器構成要素306は、デバイス挙動が疑わしいという判定に応じて(すなわち、分析動作の結果が挙動を良性または非良性であるとして分類するのに十分でないという判定に応じて)挙動観測器構成要素302に通知するようにも構成され得る。それに応じて、挙動観測器構成要素302は、その観測の粒度(すなわち、クライアントコンピューティングデバイスの特徴が監視される際の詳細のレベル)を調整し、かつ/または挙動分析器構成要素306から受信された情報(たとえば、リアルタイム分析動作の結果)に基づいて観測された要因/挙動を変更することができ、新しいもしくは追加の挙動情報を生成もしくは収集し、さらなる分析のために新しい/追加の情報を挙動分析器構成要素306に送ることができる。挙動観測器構成要素302と挙動分析器構成要素306との間のそのようなフィードバック通信は、挙動が良性もしくは非良性のいずれかであるとして分類されるまで、処理もしくはバッテリー消費のしきい値に到達するまで、または疑わしいかもしくは性能を劣化させる根源が観測粒度のさらなる増大から特定され得ないとクライアントコンピューティングプロセッサデバイスが判定するまで、クライアントコンピューティングデバイスプロセッサが、観測の粒度を再帰的に増大させること(すなわち、もっと微細もしくはもっと詳細に観測すること)、または観測される特徴/挙動を変更することを可能にする。そのようなフィードバック通信はまた、クライアントコンピューティングデバイス102が、クライアントコンピューティングデバイス102の処理リソース、メモリリソース、またはエネルギーリソースを過剰に消費することなく、クライアントコンピューティングデバイス102において局所的に分類器モデルを調整または変更することを可能にする。
【００６７】
図4Aは、様々な実施形態による、企業ネットワークおよび/またはクライアントデバイスを保護するための、サーバ方法400およびクライアントコンピューティングデバイス方法450を示す。方法400は、デトネータ構成要素のすべてまたは部分を実装するサーバコンピューティングデバイス内のサーバプロセッサによって実行され得る。方法450は、モバイルコンピューティングデバイス、リソース制約のあるコンピューティングデバイス内など、クライアントコンピューティングデバイス内のクライアントコンピューティングデバイスプロセッサによって実行され得る。
【００６８】
方法400のブロック402で、サーバプロセッサは、アプリケーションダウンロードサービスからソフトウェアアプリケーションを受信することができる。ブロック404で、サーバプロセッサは、クライアントコンピューティングデバイスに対するセキュアな通信リンクを確立することができる。いくつかの実施形態では、サーバプロセッサは、クライアントコンピューティングデバイスからの要求メッセージ(たとえば、セキュアな通信リンクを確立する要求)の受信に応じて、クライアントコンピューティングデバイスに対するセキュアな通信リンクを確立することができる。いくつかの実施形態では、サーバプロセッサは、ソフトウェアアプリケーションを受信するのに先立って、クライアントコンピューティングデバイスに対するセキュアな通信リンクを確立することができる。いくつかの実施形態では、サーバプロセッサは、ソフトウェアアプリケーションの受信に応じて、クライアントコンピューティングデバイスに対するセキュアな通信リンクを確立することができる。
【００６９】
ブロック406で、サーバプロセッサは、(たとえば、ユーザが、モバイルデバイス上でアプリケーションをすでに使用し、デトネータサーバ上でそれをさらに評価することを望む場合など)セキュアな通信リンクを介してクライアントコンピューティングデバイスから運用情報を受信することができる。運用情報は、ソフトウェアアプリケーションに関する信頼レベルを特定する情報、探査された活動のリスト、探査されたGUIスクリーンのリスト、探査されていない活動のリスト、探査されていないGUIスクリーンのリスト、探査されていない挙動のリスト、ハードウェア構成情報、ソフトウェア構成情報、などを含み得る。
【００７０】
ブロック408で、サーバプロセッサは、1つまたは複数の挙動を特定するために、受信されたソフトウェアアプリケーションを(たとえば、クライアントコンピューティングデバイスエミュレータ内などで)運用することができる。たとえば、サーバプロセッサはアプリケーションをエミュレータ内で実行して、受信された運用情報に基づいて選択または判定され得る、ソフトウェアアプリケーションの様々な特徴、活動、挙動などをテストすることができる。
【００７１】
ブロック410で、サーバプロセッサは、特定された挙動(たとえば、コードの行、API通話などのカウント)を評価し、ソフトウェアアプリケーションが良性として分類され得るかまたは非良性として分類され得るかを判定することができる。
【００７２】
判定ブロック412で、サーバプロセッサは、ソフトウェアアプリケーションが良性であるかどうかを判定することができる。
【００７３】
ソフトウェアアプリケーションが良性であるとの判定(すなわち、判定ブロック412=「Yes」)に応じて、サーバプロセッサは、ブロック414で、ソフトウェアアプリケーションを企業ネットワーク内のサーバおよび/またはクライアントコンピューティングデバイスに送ることができる。
【００７４】
ソフトウェアアプリケーションが良性でないとの判定(すなわち、判定ブロック412=「No」)に応じて、サーバプロセッサは、ブロック416で、ソフトウェアアプリケーションを隔離することができ、ブロック418で、サーバプロセッサは、セキュリティ警告または通知メッセージを企業またはITセキュリティシステムおよび/またはクライアントコンピューティングデバイスに送ることができる。
【００７５】
方法450のブロック452で、クライアントコンピューティングデバイスプロセッサは、アプリケーションダウンロードサービスからソフトウェアアプリケーションを受信することができる。一実施形態では、クライアントコンピューティングデバイスプロセッサは、サーバプロセッサがブロック414で動作を実行した後に、ソフトウェアアプリケーションを受信することができる。
【００７６】
ブロック454で、クライアントコンピューティングデバイスプロセッサは、(セキュアなリンクがまだ存在しない場合)デトネータ構成要素に対するセキュアな通信リンクを確立することができる。
【００７７】
ブロック456で、デバイスプロセッサは、ソフトウェアアプリケーションを実行(run)または実行(execute)し、運用情報(たとえば、探査された/探査されていないGUIスクリーンのリストなど)を収集するために、ユーザ対話、挙動、およびデバイスの構成を(たとえば、オンデバイスセキュリティシステムなどを介して)観測することができる。ブロック458で、デバイスプロセッサは、セキュアな通信リンクを介して、収集された運用情報をサーバに送るか、または送信することができる。デバイスプロセッサがブロック460でセキュリティ通知メッセージを受信するまで、デバイスプロセッサは、ブロック456および458で動作を連続的にまたは繰り返し実行することができる。
【００７８】
ブロック462で、デバイスプロセッサは、セキュリティ通知メッセージの受信に応じて、補正措置を講じることができる。たとえば、デバイスプロセッサは、ブロック462で、ソフトウェアアプリケーションを終了または隔離することができる。
【００７９】
方法400のブロック408で、受信されたソフトウェアアプリケーションをモバイルデバイスエミュレータ内で運用する際に、サーバプロセッサは、ソフトウェアアプリケーションをインテリジェントに実行して、非良性であり得る挙動を引き出すことを試みることができる。言い換えれば、クライアントデバイスから受信された運用情報、ならびにソフトウェアアプリケーション自体の分析を活用して、サーバプロセッサは、実行するための、その分析が非良性挙動に関連するかまたはそれをトリガする確率の増大を示す特定の活動、トリガするためのGUIインターフェース、および動作モードを選択することができる。図4Bは、ソフトウェアアプリケーションのそのような知的実行を達成するために、方法400のブロック408で実行され得る動作の例示的な方法を示す。
【００８０】
ブロック420で、サーバプロセッサは、実行および観測を保証するアプリケーションの態様を特定するために、アプリケーション分析器構成要素(たとえば、図3のアプリケーション分析器構成要素322)内でソフトウェアアプリケーションを分析することができる。この分析は、非良性のエクスプロイトの潜在性を増大させた、疑わしいAPI通話、動作モード、データ転送などを特定することに関連し得る。
【００８１】
ブロック422で、サーバプロセッサは、受信された運用情報、ならびにアプリケーションの分析に基づいて、運用するためのターゲット活動(たとえば、GUI対話)を選択することができる。いくつかの実施形態では、ターゲット活動の選択は、図3を参照して説明したように、ターゲット選択構成要素324によって達成され得る。
【００８２】
ブロック424で、サーバプロセッサは、実行するためのソフトウェアアプリケーションの選択されたターゲット活動をトリガすることができる。たとえば、サーバプロセッサは、選択されたGUIアイコンまたはGUI対話をアクティブ化するための手順またはアプリケーションを使用して、関連する動作または活動を実行させることができる。
【００８３】
ブロック424で、選択されたターゲット活動の実行をトリガする一部として、サーバプロセッサは、ブロック426で、GUIスクリーンのレイアウトを分析して、アクティブ化のための特定のアイコンを特定すると同様に、非良性挙動を示し得るスクリーン要素を認識することができる。たとえば、サーバプロセッサは、ブロック426で、GUIスクリーンのレイアウトを分析して、ソフトウェアアプリケーションのターゲット活動に関連する、トリガのためのアイコンの座標を特定することができる。別の例として、サーバプロセッサは、ブロック426で、GUIスクリーンのレイアウトを分析して、可視のアイコンに関連しない活動トリガに関連するスクリーンの部分を特定することができる。さらなる例として、サーバプロセッサは、ブロック426で、GUIスクリーンのレイアウトを分析して、アイコン上のラベルまたは指示に整合しない活動をトリガする(たとえば、アイコンが「取消し」と標示されるとき、活動をトリガする)ことになる表示アイコンを特定することができる。
【００８４】
ブロック428で、サーバプロセッサは、トリガされた活動の実行中にソフトウェアアプリケーションの挙動を観測することができる。たとえば、サーバプロセッサは、本明細書で説明するように、トリガされた活動の実行中に観測された挙動に基づいて、挙動ベクトルを生成し、挙動ベクトルを挙動分析モデルに適応することができる。
【００８５】
アプリケーションの観測されたランタイム挙動に基づいて、エミュレータ上で運用するための、新しいターゲット活動を選択することができる。さらに、アプリケーションが示したランタイム挙動に基づいて、(すでに探査されている活動を含めて)活動のうちのいくつかを再ランク付けし、エミュレータ上で再び探査/運用することができる。
【００８６】
実行するための選択されたターゲット活動をトリガし、トリガされた活動の実行中にソフトウェアアプリケーションの挙動を観測する動作は、すべての選択されたターゲット活動が実行され、観測されるまで継続し得る。
【００８７】
ソフトウェアアプリケーションの選択されたターゲット活動の挙動の実行動作および観測動作の結果は、図4Aを参照して上記で説明したように、ブロック410で、サーバプロセッサによって評価され得る。
【００８８】
様々な実施形態は、様々なクライアントコンピューティングデバイス上で実装されることがあり、その例が図5に示される。詳細には、図5は、実施形態のいずれかとともに使用するのに適したスマートフォン/セルフォン500の形態でのクライアントコンピューティングデバイスのシステムブロック図である。セルフォン500は、内部メモリ504に結合されたプロセッサ502と、ディスプレイ506と、スピーカー508とを含み得る。加えて、セルフォン500は、プロセッサ502に結合されたワイヤレスデータリンクおよび/またはセルラー電話(または、ワイヤレス)トランシーバ512に接続され得る、電磁放射を送り受信するためのアンテナ510を含み得る。セルフォン500はまた、通常、ユーザ入力を受信するためのメニュー選択ボタンまたはロッカースイッチ514を含む。
【００８９】
一般的なセルフォン500はまた、マイクロフォンから受信された音をワイヤレス送信に適したデータパケットにデジタル化するとともに、受信された音のデータパケットを復号して、音を生成するためにスピーカー508に提供されるアナログ信号を生成する、音声符号化/復号(コーデック)回路516を含む。また、プロセッサ502、ワイヤレストランシーバ512、およびコーデック516のうちの1つまたは複数は、デジタル信号プロセッサ(DSP)回路(個別に図示せず)を含み得る。セルフォン500はさらに、ワイヤレスデバイス間の低電力短距離通信のためのZigBeeトランシーバ(すなわち、米国電気電子技術者協会(IEEE)802.15.4トランシーバ)、または他の同様の通信回路(たとえば、Bluetooth(登録商標)またはWiFiプロトコルなどを実装する回路)を含み得る。
【００９０】
上記で説明した実施形態およびネットワークサーバは、図6に示すサーバ600などの様々な市販のサーバデバイスにおいて実施され得る。そのようなサーバ600は通常、揮発性メモリ602と、ディスクドライブ603などの大容量の不揮発性メモリとに結合された、プロセッサ601を含む。サーバ600はまた、プロセッサ601に結合された、フロッピー(登録商標)ディスクドライブ、コンパクトディスク(CD)またはDVDディスクドライブ604を含む場合がある。サーバ600はまた、他の通信システムコンピュータおよびサーバに結合されたローカルエリアネットワークなどのネットワーク605とデータ接続を確立するために、プロセッサ601に結合されたネットワークアクセスポート606を含み得る。
【００９１】
プロセッサ502、601は、以下で説明する様々な実施形態の機能を含む、様々な機能を実行するようにソフトウェア命令(アプリケーション)で構成され得る任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、または1つもしくは複数の多重プロセッサチップであり得る。いくつかのクライアントコンピューティングデバイスでは、1つのプロセッサがワイヤレス通信機能専用とされ、1つのプロセッサが他のアプリケーションの実行専用とされるなど、複数のプロセッサ502が設けられ得る。通常、ソフトウェアアプリケーションは、それらがアクセスされ、プロセッサ502、601にロードされる前に、内部メモリ504、602内に記憶され得る。プロセッサ502は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含んでもよい。いくつかのサーバでは、プロセッサ601は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。いくつかの受信機デバイスでは、プロセッサ601に結合された個別のメモリチップの中にセキュアメモリがあり得る。内部メモリ504、602は、揮発性メモリ、もしくはフラッシュメモリなどの不揮発性メモリ、または両方の混合であり得る。本明細書では、メモリへの一般的な言及は、内部メモリ504、602、デバイスに差し込まれたリムーバブルメモリ、およびプロセッサ502、601自体の中のメモリを含む、プロセッサ502、601によってアクセス可能なすべてのメモリを指す。
【００９２】
多くの現代のコンピューティングは、比較的限定された処理リソース、メモリリソース、およびエネルギーリソースしか有しない、リソース制約のあるシステムである。たとえば、クライアントコンピューティングデバイスは、性能レベルおよび電力利用レベルの経時的な劣化に寄与し得る多くの特徴または要因を含む、複雑かつリソース制約のあるコンピューティングデバイスである。性能劣化に寄与し得る要因の例は、不十分に設計されたソフトウェアアプリケーション、マルウェア、ウイルス、断片化されたメモリ、およびバックグラウンドプロセスを含む。これらの要因の数、多様性、および複雑さにより、これらの複雑でありながらリソース制約のあるシステムの性能および/または電力利用レベルを劣化させ得る、様々な構成要素、挙動、プロセス、動作、条件、状態、または特徴(または、それらの組合せ)のすべてを評価することは、実現可能ではないことが多い。したがって、ユーザ、オペレーティングシステム、またはアプリケーションプログラム(たとえば、アンチウイルスソフトウェアなど)が、そのような問題の根源を正確かつ効率的に特定することは困難である。結果として、クライアントコンピューティングデバイスのユーザは現在、クライアントコンピューティングデバイスの性能レベルおよび電力利用レベルの経時的な劣化を防止するための、または経年劣化したクライアントコンピューティングデバイスをその元の性能レベルおよび電力利用レベルに回復させるための措置をほとんど有していない。
【００９３】
本出願で説明した様々な実施形態は、クライアントコンピューティングデバイスなどのリソース制約のあるコンピューティングデバイスにおいて使用するのに特に適しており、というのもマルウェアをインテリジェントに検出するタスクは主にデトネータサーバに委任されるからであり、というのもそれらはクライアントコンピューティングデバイス上でそれほど大きい挙動情報のコーパスを評価することを必要とせず、コンピューティングデバイスのデバイス固有もしくはアプリケーション固有の特徴を考慮するための分類器/挙動モデルを動的に生成し、分類器/挙動モデルによってテスト/評価された特徴をインテリジェントに優先付けし、個々のアプリケーションプログラムもしくはプロセスを評価することに限定されず、コンピューティングデバイスによって監視されるべき要因もしくは挙動をインテリジェントに特定し、監視された挙動を正確かつ効率的に分類し、かつ/または計算量的に集約したプロセスの実行を必要としないからである。これらのすべての原因に対して、リソース制約のあるコンピューティングデバイスにおいて、デバイスの応答性、性能、または電力消費の特性に重大な悪影響および/またはユーザが知覚できる影響を及ぼすことなく、様々な実施形態が実施または実行され得る。
【００９４】
たとえば、現代のクライアントコンピューティングデバイスは、高度に構成可能かつ複雑なシステムである。したがって、特定のデバイス挙動が良性であるかまたは良性でないか(たとえば、悪意があるかまたは性能を劣化させるか)を判定するために最も重要である要因または特徴は、各クライアントコンピューティングデバイスにおいて異なり得る。さらに、要因/特徴の異なる組合せは、特定の挙動が良性であるかまたは良性でないかをデバイスが迅速かつ効率的に判定するために、各クライアントコンピューティングデバイスにおける監視および/または分析を必要とし得る。しかし、監視および分析を必要とする要因/特徴の厳密な組合せ、ならびに各特徴または特徴の組合せの相対的な優先順位または重要性は、しばしば、挙動が監視または分析されるべき特定のコンピューティングデバイスから取得されたデバイス固有の情報を使用してのみ判定され得る。これらおよび他の理由のために、それらが使用される特定のデバイス以外のいかなるコンピューティングデバイス内で生成された分類器モデルも、その特定のデバイスにおけるソフトウェアアプリケーションまたはデバイス挙動を分類することに対して最も重要である、要因/特徴の厳密な組合せを特定する情報を含むことができない。すなわち、モデルが使用される特定のコンピューティングデバイスにおいて分類器モデルを生成することによって、様々な実施形態は、ソフトウェアアプリケーション、プロセス、活動、またはデバイス挙動が良性であるかまたは非良性であるかを判定するために、最も重要である要因/特徴をより良好に特定し優先付ける改善されたモデルを生成する。
【００９５】
本出願で使用した「構成要素」、「モジュール」、「システム」などの用語は、限定はされないが、特定の動作もしくは機能を実行するように構成された、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなどの、コンピュータ関連のエンティティを含むものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で実行しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであってよい。例として、コンピューティングデバイス上で実行しているアプリケーションとコンピューティングデバイスの両方は、構成要素と呼ばれることがある。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在してよく、1つの構成要素は、1つのプロセッサもしくはコアに局在してよく、かつ/または2つ以上のプロセッサもしくはコアの間で分散されてよい。加えて、これらの構成要素は、様々な命令および/またはデータ構造を記憶した様々な非一時的コンピュータ可読媒体から実行し得る。構成要素は、ローカルプロセスおよび/またはリモートプロセス、関数呼出しまたはプロシージャ呼出し、電子信号、データパケット、メモリ読取り/書込み、ならびに他の知られているネットワーク、コンピュータ、プロセッサ、および/またはプロセス関連の通信方法によって通信し得る。
【００９６】
上記の方法の説明およびプロセスフロー図は、例示的な例として与えられるものにすぎず、様々な実施形態のステップが提示された順序で実行されなければならないことを要求または暗示するものではない。当業者なら諒解するように、上記の実施形態におけるステップの順序は、任意の順序で実行されてもよい。「その後」、「次いで」、「次に」などの語は、ステップの順序を限定するものではなく、これらの語は単に、方法の説明を通じて読者を案内するために使用される。さらに、たとえば、冠詞「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)、およびBlu-ray(登録商標)ディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せも、非一時的コンピュータ可読媒体およびプロセッサ可読媒体の範囲に含まれる。追加として、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれてもよい、非一時的プロセッサ可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の1つまたは任意の組合せまたはセットとして存在してもよい。
【０１００】
開示した実施形態の前述の説明は、いかなる当業者も本発明を作成または使用することができるように提供される。これらの実施形態の様々な修正は当業者には容易に明らかとなり、本明細書で定義した一般原理は、本発明の趣旨または範囲から逸脱することなく、他の実施形態に適用され得る。したがって、本発明は、本明細書に示した実施形態に限定されるものではなく、以下の特許請求の範囲、ならびに本明細書で開示した原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【０１０１】
100  通信システム
102  クライアントコンピューティングデバイス
104  セル電話ネットワーク、電話ネットワーク
106  セル基地局
108  ネットワーク運用センター
110  インターネット
112  双方向ワイヤレス通信リンク
114  サーバ
116  ネットワークサーバ
118  クラウドサービスプロバイダネットワーク
200  システム
202  デトネータ構成要素
204  セキュアな通信リンク
206  企業ネットワーク、企業またはIT/セキュリティシステム
300  システム、セキュリティシステム
302  挙動観測器構成要素
304  挙動抽出器構成要素
306  挙動分析器構成要素
308  アクチュエータ構成要素
322  アプリケーション分析器構成要素、アプリ分析器構成要素
324  ターゲット選択構成要素
326  活動トリガ構成要素
328  レイアウト分析構成要素
330  トラップ構成要素
400  方法
500  スマートフォン/セルフォン
502  プロセッサ
504  内部メモリ
506  ディスプレイ
508  スピーカー
510  アンテナ
512  ワイヤレスデータリンクおよび/またはセルラー電話(または、ワイヤレス)トランシーバ
514  メニュー選択ボタンまたはロッカースイッチ
516  音声符号化/復号(コーデック)回路
526  コーデック
600  サーバ
601  プロセッサ
602  揮発性メモリ、内部メモリ
603  ディスクドライブ
605  ネットワーク
606  ネットワークアクセスポート
【図１】
2019516178.tif 000003
【図２】
2019516178.tif 000004
【図３】
2019516178.tif 000005
【図４Ａ】
2019516178.tif 000006
【図４Ｂ】
2019516178.tif 000007
【図５】
2019516178.tif 000008
【図６】
2019516178.tif 000009
【手続補正書】
【提出日】平成30年10月23日(2018.10.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
非良性ソフトウェアアプリケーションからコンピューティングデバイスを保護する方法であって、
サーバコンピューティングデバイス内のプロセッサが、アプリケーションダウンロードサービスからソフトウェアアプリケーションを受信するステップと、
前記プロセッサが、クライアントコンピューティングデバイスに対するセキュアな通信リンクを確立するステップと、
前記プロセッサが、前記セキュアな通信リンクを介して前記クライアントコンピューティングデバイスから運用情報を受信するステップと、
前記プロセッサが、前記ソフトウェアアプリケーションをクライアントコンピューティングデバイスエミュレータ内で運用して1つまたは複数の挙動を特定するために、前記受信された運用情報を使用するステップであって、前記運用が、前記クライアントコンピューティングデバイスエミュレータを介して実行するための前記ソフトウェアアプリケーションの活動の集中的なサブセットをトリガするために前記受信された運用情報を使用するステップを含む、使用するステップと、
前記プロセッサが、前記特定された1つまたは複数の挙動が良性であるかどうかを判定するステップと
を含む、方法。
【請求項２】
前記プロセッサが、前記ソフトウェアアプリケーションを前記クライアントコンピューティングデバイスエミュレータ内で運用して1つまたは複数の挙動を特定するために、前記受信された運用情報を使用するステップが、観測を保証する前記ソフトウェアアプリケーションの態様を特定するために、前記クライアントコンピューティングデバイスエミュレータのアプリケーション分析器構成要素内で前記ソフトウェアアプリケーションを分析するステップを含み、
前記クライアントコンピューティングデバイスエミュレータを介して実行するための前記ソフトウェアアプリケーションの活動の前記集中的なサブセットをトリガするために前記受信された運用情報を使用するステップが、前記受信された運用情報および前記ソフトウェアアプリケーションの分析に基づいて、前記1つまたは複数の活動を選択するステップを含み、
前記運用が、
前記トリガされた活動の実行中に前記ソフトウェアアプリケーションの挙動を観測するステップと、
前記ソフトウェアアプリケーションのランタイム挙動に基づいて、新しいターゲット活動をさらに選択するステップと
をさらに含む、請求項1に記載の方法。
【請求項３】
前記運用が、
グラフィカルユーザインターフェースのレイアウトを分析するステップと、
実行するための前記ソフトウェアアプリケーションの前記選択された活動をトリガするとき、前記グラフィカルユーザインターフェースの分析の結果を使用するステップと
をさらに含む、請求項2に記載の方法。
【請求項４】
前記プロセッサが、前記特定された1つまたは複数の挙動が良性でないとの判定に応じて、前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを隔離するステップと、
非良性として前記ソフトウェアアプリケーションを特定する情報を含む通知メッセージを前記クライアントコンピューティングデバイスに送るステップと
をさらに含む、請求項1に記載の方法。
【請求項５】
前記特定された1つまたは複数の挙動が良性であるとの判定に応じて、前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを前記クライアントコンピューティングデバイスに送るステップ
をさらに含む、請求項1に記載の方法。
【請求項６】
前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを前記クライアントコンピューティングデバイスに送ることに応じて、前記セキュアな通信リンクを介して前記クライアントコンピューティングデバイスから追加の運用情報を受信するステップと、
前記ソフトウェアアプリケーションをさらに運用して追加の挙動を特定するために、前記追加の運用情報を使用するステップであって、前記運用が、
前記ソフトウェアアプリケーションの追加の活動を選択するために前記追加の運用情報を使用するステップと、
前記クライアントコンピューティングデバイスエミュレータを介して実行するための追加の活動をトリガするステップとを含む、使用するステップと、
前記特定された追加の挙動が良性であるかどうかを判定するステップと
をさらに含む、請求項5に記載の方法。
【請求項７】
前記クライアントコンピューティングデバイスから運用情報を受信するステップが、
前記ソフトウェアアプリケーションに関する信頼レベルを特定する情報、
探査した活動のリスト、
探査したグラフィカルユーザインターフェース(GUI)スクリーンのリスト、
探査しなかった活動のリスト、
探査しなかったGUIスクリーンのリスト、
探査しなかった挙動のリスト、
ハードウェア構成情報、または
ソフトウェア構成情報
のうちの1つまたは複数を受信するステップを含む、請求項1に記載の方法。
【請求項８】
前記ソフトウェアアプリケーションに関するリスクスコアを計算するステップと、
前記セキュアな通信リンクを介して、前記計算されたリスクスコアを前記クライアントコンピューティングデバイスに送るステップと
をさらに含む、請求項1に記載の方法。
【請求項９】
前記クライアントコンピューティングデバイス内で前記ソフトウェアアプリケーションを受信するステップと、
前記クライアントコンピューティングデバイス上で前記ソフトウェアアプリケーションの実行を開始するステップと、
挙動情報を収集するために前記ソフトウェアアプリケーションの活動を監視するステップと、
前記収集された挙動情報を記述するベクトルデータ構造を生成するステップと、
分析結果を生成するために前記ベクトルデータ構造を機械学習分類器モデルに適用するステップと、
前記ソフトウェアアプリケーションが良性であるかどうかを判定するために前記分析結果を使用するステップと
をさらに含む、請求項1に記載の方法。
【請求項１０】
前記ソフトウェアアプリケーションが良性でないとの判定に応じて、運用情報の一部として、前記分析結果を前記クライアントコンピューティングデバイスから前記サーバコンピューティングデバイスに送るステップ
をさらに含む、請求項9に記載の方法。
【請求項１１】
前記クライアントコンピューティングデバイスから通信要求メッセージを受信するステップと、
前記クライアントコンピューティングデバイスからの前記通信要求メッセージの受信に応じて、前記クライアントコンピューティングデバイスに対する前記セキュアな通信リンクを確立するステップと
をさらに含む、請求項1に記載の方法。
【請求項１２】
動作を実行するようにプロセッサ実行可能命令で構成されたプロセッサを備え、前記動作が、
アプリケーションダウンロードサービスからソフトウェアアプリケーションを受信することと、
クライアントコンピューティングデバイスに対するセキュアな通信リンクを確立することと、
前記セキュアな通信リンクを介して前記クライアントコンピューティングデバイスから運用情報を受信することと、
前記ソフトウェアアプリケーションをクライアントコンピューティングデバイスエミュレータ内で運用して1つまたは複数の挙動を特定するために、前記受信された運用情報を使用することであって、前記運用が、前記クライアントコンピューティングデバイスエミュレータを介して実行するための前記ソフトウェアアプリケーションの活動の集中的なサブセットをトリガするために前記受信された運用情報を使用することを含む、使用することと、
前記特定された1つまたは複数の挙動が良性であるかどうかを判定することと
を含む、サーバコンピューティングデバイス。
【請求項１３】
前記プロセッサが、
前記ソフトウェアアプリケーションを前記クライアントコンピューティングデバイスエミュレータ内で運用して1つまたは複数の挙動を特定するために、前記受信された運用情報を使用することが、観測を保証する前記ソフトウェアアプリケーションの態様を特定するために、前記クライアントコンピューティングデバイスエミュレータのアプリケーション分析器構成要素内で前記ソフトウェアアプリケーションを分析することを含み、
前記クライアントコンピューティングデバイスエミュレータを介して実行するための前記ソフトウェアアプリケーションの活動の前記集中的なサブセットをトリガするために前記受信された運用情報を使用することが、前記受信された運用情報および前記ソフトウェアアプリケーションの分析に基づいて、前記1つまたは複数の活動を選択することを含み、
前記運用が、
前記トリガされた活動の実行中に前記ソフトウェアアプリケーションの挙動を観測することと、
前記ソフトウェアアプリケーションのランタイム挙動に基づいて、新しいターゲット活動をさらに選択することと
をさらに含むような動作を実行するようにプロセッサ実行可能命令で構成される、請求項12に記載のサーバコンピューティングデバイス。
【請求項１４】
前記プロセッサが、前記運用が、
グラフィカルユーザインターフェースのレイアウトを分析することと、
実行するための前記ソフトウェアアプリケーションの前記選択された活動をトリガするとき、前記グラフィカルユーザインターフェースの分析の結果を使用することと
をさらに含むような動作を実行するようにプロセッサ実行可能命令で構成される、請求項13に記載のサーバコンピューティングデバイス。
【請求項１５】
前記プロセッサが、
前記特定された1つまたは複数の挙動が良性でないとの判定に応じて、前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを隔離することと、
非良性として前記ソフトウェアアプリケーションを特定する情報を含む通知メッセージを前記クライアントコンピューティングデバイスに送ることと
をさらに含む動作を実行するようにプロセッサ実行可能命令で構成される、請求項12に記載のサーバコンピューティングデバイス。
【請求項１６】
前記プロセッサが、
前記特定された1つまたは複数の挙動が良性であるとの判定に応じて、前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを前記クライアントコンピューティングデバイスに送ること
をさらに含む動作を実行するようにプロセッサ実行可能命令で構成される、請求項15に記載のサーバコンピューティングデバイス。
【請求項１７】
前記プロセッサが、
前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを前記クライアントコンピューティングデバイスに送ることに応じて、前記セキュアな通信リンクを介して前記クライアントコンピューティングデバイスから追加の運用情報を受信することと、
前記ソフトウェアアプリケーションをさらに運用して追加の挙動を特定するために、前記追加の運用情報を使用することであって、前記運用が、
前記ソフトウェアアプリケーションの追加の活動を選択するために前記追加の運用情報を使用することと、
前記クライアントコンピューティングデバイスエミュレータを介して実行するための前記選択された追加の活動をトリガすることとを含む、使用することと、
前記特定された追加の挙動が良性であるかどうかを判定することと
を含む動作を実行するようにプロセッサ実行可能命令で構成される、請求項16に記載のサーバコンピューティングデバイス。
【請求項１８】
前記プロセッサが、前記クライアントコンピューティングデバイスから運用情報を受信することが、
前記ソフトウェアアプリケーションに関する信頼レベルを特定する情報、
探査した活動のリスト、
探査したグラフィカルユーザインターフェース(GUI)スクリーンのリスト、
探査しなかった活動のリスト、
探査しなかったGUIスクリーンのリスト、
探査しなかった挙動のリスト、
ハードウェア構成情報、または
ソフトウェア構成情報
のうちの1つまたは複数を受信することを含むような動作を実行するようにプロセッサ実行可能命令で構成される、請求項12に記載のサーバコンピューティングデバイス。
【請求項１９】
前記プロセッサが、
前記ソフトウェアアプリケーションに関するリスクスコアを計算することと、
前記セキュアな通信リンクを介して、前記計算されたリスクスコアを前記クライアントコンピューティングデバイスに送ることと
をさらに含む動作を実行するようにプロセッサ実行可能命令で構成される、請求項12に記載のサーバコンピューティングデバイス。
【請求項２０】
前記プロセッサが、
前記クライアントコンピューティングデバイスから通信要求メッセージを受信することと、
前記クライアントコンピューティングデバイスからの前記通信要求メッセージの受信に応じて、前記クライアントコンピューティングデバイスに対する前記セキュアな通信リンクを確立することと
をさらに含む動作を実行するようにプロセッサ実行可能命令で構成される、請求項12に記載のサーバコンピューティングデバイス。
【請求項２１】
プロセッサ実行可能ソフトウェア命令が記憶された非一時的コンピュータ可読記憶媒体であって、前記プロセッサ実行可能ソフトウェア命令が、サーバコンピューティングデバイス内のプロセッサに、
アプリケーションダウンロードサービスからソフトウェアアプリケーションを受信することと、
クライアントコンピューティングデバイスに対するセキュアな通信リンクを確立することと、
前記セキュアな通信リンクを介して前記クライアントコンピューティングデバイスから運用情報を受信することと、
前記ソフトウェアアプリケーションをクライアントコンピューティングデバイスエミュレータ内で運用して1つまたは複数の挙動を特定するために、前記受信された運用情報を使用することであって、前記運用が、前記クライアントコンピューティングデバイスエミュレータを介して実行するための前記ソフトウェアアプリケーションの活動の集中的なサブセットをトリガするために前記受信された運用情報を使用することを含む、使用することと、
前記特定された1つまたは複数の挙動が良性であるかどうかを判定することと
を含む動作を実行させるように構成される、非一時的コンピュータ可読記憶媒体。
【請求項２２】
前記記憶されたプロセッサ実行可能命令が、前記プロセッサに、前記ソフトウェアアプリケーションを前記クライアントコンピューティングデバイスエミュレータ内で運用して1つまたは複数の挙動を特定するために、前記受信された運用情報を使用することが、観測を保証する前記ソフトウェアアプリケーションの態様を特定するために、前記クライアントコンピューティングデバイスエミュレータのアプリケーション分析器構成要素内で前記ソフトウェアアプリケーションを分析することを含み、
前記クライアントコンピューティングデバイスエミュレータを介して実行するための前記ソフトウェアアプリケーションの活動の前記集中的なサブセットをトリガするために前記受信された運用情報を使用することが、前記受信された運用情報および前記ソフトウェアアプリケーションの分析に基づいて、前記1つまたは複数の活動を選択することを含み、
前記運用が、
前記トリガされた活動の実行中に前記ソフトウェアアプリケーションの挙動を観測することと、
前記ソフトウェアアプリケーションのランタイム挙動に基づいて、新しいターゲット活動をさらに選択することと
をさらに含むような動作を実行させるように構成される、請求項21に記載の非一時的コンピュータ可読記憶媒体。
【請求項２３】
前記記憶されたプロセッサ実行可能命令が、前記プロセッサに、前記運用が、
グラフィカルユーザインターフェースのレイアウトを分析することと、
実行するための前記ソフトウェアアプリケーションの前記選択されたターゲット活動をトリガするとき、前記グラフィカルユーザインターフェースの分析の結果を使用することと
をさらに含むような動作を実行させるように構成される、請求項22に記載の非一時的コンピュータ可読記憶媒体。
【請求項２４】
前記記憶されたプロセッサ実行可能命令が、前記プロセッサに、
前記特定された1つまたは複数の挙動が良性でないとの判定に応じて、前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを隔離することと、
非良性として前記ソフトウェアアプリケーションを特定する情報を含む通知メッセージを前記クライアントコンピューティングデバイスに送ることと
をさらに含む動作を実行させるように構成される、請求項21に記載の非一時的コンピュータ可読記憶媒体。
【請求項２５】
前記記憶されたプロセッサ実行可能命令が、前記プロセッサに、
前記特定された1つまたは複数の挙動が良性であるとの判定に応じて、前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを前記クライアントコンピューティングデバイスに送ること
をさらに含む動作を実行させるように構成される、請求項21に記載の非一時的コンピュータ可読記憶媒体。
【請求項２６】
前記記憶されたプロセッサ実行可能命令が、前記プロセッサに、
前記アプリケーションダウンロードサービスから受信された前記ソフトウェアアプリケーションを前記クライアントコンピューティングデバイスに送ることに応じて、前記セキュアな通信リンクを介して前記クライアントコンピューティングデバイスから追加の運用情報を受信することと、
前記ソフトウェアアプリケーションをさらに運用して追加の挙動を特定するために、前記追加の運用情報を使用することであって、前記運用が、
前記ソフトウェアアプリケーションの追加の活動を選択するために前記追加の運用情報を使用することと、
前記クライアントコンピューティングデバイスエミュレータを介して実行するための前記選択された追加の活動をトリガすることとを含む、使用することと、
前記特定された追加の挙動が良性であるかどうかを判定することと
を含む動作を実行させるように構成される、請求項25に記載の非一時的コンピュータ可読記憶媒体。
【請求項２７】
前記記憶されたプロセッサ実行可能命令が、前記プロセッサに、前記クライアントコンピューティングデバイスから運用情報を受信することが、
前記ソフトウェアアプリケーションに関する信頼レベルを特定する情報、
探査した活動のリスト、
探査したグラフィカルユーザインターフェース(GUI)スクリーンのリスト、
探査しなかった活動のリスト、
探査しなかったGUIスクリーンのリスト、
探査しなかった挙動のリスト、
ハードウェア構成情報、または
ソフトウェア構成情報
のうちの1つまたは複数を受信することを含むような動作を実行させるように構成される、請求項21に記載の非一時的コンピュータ可読記憶媒体。
【請求項２８】
前記記憶されたプロセッサ実行可能命令が、前記プロセッサに、
前記ソフトウェアアプリケーションに関するリスクスコアを計算することと、
前記セキュアな通信リンクを介して、前記計算されたリスクスコアを前記クライアントコンピューティングデバイスに送ることと
をさらに含む動作を実行させるように構成される、請求項21に記載の非一時的コンピュータ可読記憶媒体。
【請求項２９】
前記記憶されたプロセッサ実行可能命令が、前記プロセッサに、
前記クライアントコンピューティングデバイスから通信要求メッセージを受信することと、
前記クライアントコンピューティングデバイスからの前記通信要求メッセージの受信に応じて、前記クライアントコンピューティングデバイスに対する前記セキュアな通信リンクを確立することと
をさらに含む動作を実行させるように構成される、請求項21に記載の非一時的コンピュータ可読記憶媒体。
【請求項３０】
アプリケーションダウンロードサービスからソフトウェアアプリケーションを受信するための手段と、
クライアントコンピューティングデバイスに対するセキュアな通信リンクを確立するための手段と、
前記セキュアな通信リンクを介して前記クライアントコンピューティングデバイスから運用情報を受信するための手段と、
前記ソフトウェアアプリケーションをクライアントコンピューティングデバイスエミュレータ内で運用して1つまたは複数の挙動を特定するために、前記受信された運用情報を使用するための手段であって、前記運用が、前記クライアントコンピューティングデバイスエミュレータを介して実行するための前記ソフトウェアアプリケーションの活動の集中的なサブセットをトリガするために前記受信された運用情報を使用することを含む、使用するための手段と、
前記特定された1つまたは複数の挙動が良性であるかどうかを判定するための手段と
を含む、コンピューティングデバイス。
【国際調査報告】
2019516178.tif 000010
2019516178.tif 000011