(57)【特許請求の範囲】
【請求項１】
メインプロセッサおよびバッテリを含む一つ以上の資源を備える処理システムの前記メインプロセッサとは独立して動作するセキュリティエンジンが、前記処理システムの現在の動作モードで、前記処理システムのホストオペレーティングシステムの命令によりアクティブになることが予測される少なくとも一つのプロセスを特定する段階と、
前記セキュリティエンジンが、前記現在の動作モードとアクティブになることが予測される前記少なくとも一つのプロセスとに基づいて、前記メインプロセッサの予測プロセッサ周波数および前記バッテリのバッテリ消費の予測レベルを含む前記処理システムの前記一つ以上の資源の予測アクティビティレベルを算出する段階と、
前記セキュリティエンジンが、前記メインプロセッサのプロセッサ周波数および前記処理システムのバッテリのバッテリ消費のレベルを含む前記一つ以上の資源の実際のアクティビティレベルを判定する段階と、
前記予測アクティビティレベルと前記実際のアクティビティレベルとの間に偏差が検出された場合に、前記セキュリティエンジンが、前記偏差の潜在的原因である予測されないアクティビティのソースとして、予測されないアクティブなプロセスおよび前記予測されないアクティブなプロセスに対応付けられたアプリケーションを特定する段階と、
前記セキュリティエンジンが、ポリシーガイドラインを使用して、前記予測されないアクティビティが合法であるかを判定する段階と、
前記予測されないアクティビティが合法でない場合、前記セキュリティエンジンが、前記予測されないアクティビティの前記ソースをマルウェアとして分類する段階と
を備えるコンピュータ実装される方法。
【請求項２】
前記セキュリティエンジンが、帯域外通信チャネルを介して前記処理システムのスナップショットを遠隔のサーバに送信する段階をさらに備え、
前記遠隔のサーバは、前記スナップショットの検証を行う
請求項１に記載の方法。
【請求項３】
前記セキュリティエンジンが、帯域外通信チャネルを介して前記処理システムのスナップショットを遠隔のサーバに送信する段階をさらに備え、
前記遠隔のサーバは、前記スナップショットをウィルスシグネチャに関して分析する
請求項１または２に記載の方法。
【請求項４】
前記ホストオペレーティングシステムが、前記予測されないアクティビティの前記ソースを終了させる段階をさらに備える請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記セキュリティエンジンが、前記処理システムの前記現在の動作モードから新しい動作モードへの変化を識別する段階と、
前記セキュリティエンジンが、少なくとも一つのプロセスがアクティブになると予測される瞬間を特定する段階と、
前記セキュリティエンジンが、前記新しい動作モードと、少なくとも一つのプロセスがアクティブになると予測される前記瞬間とに基づいて、前記予測アクティビティレベルを調整する段階と
をさらに備える請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記ポリシーガイドラインを使用して、前記予測されないアクティビティが合法であるかを判定する段階は、前記ソースが署名されているかを判定する段階を有する請求項１から５のいずれか１項に記載の方法。
【請求項７】
前記ポリシーガイドラインを使用して、前記予測されないアクティビティが合法であるかを判定する段階は、
前記予測されないアクティビティをユーザに警告する段階と、
前記予測されないアクティビティについて前記ユーザからフィードバックを取得する段階と
を有する請求項１から６のいずれか１項に記載の方法。
【請求項８】
ホストオペレーティングシステムを実行するメインプロセッサと、
前記メインプロセッサから独立して動作するセキュリティエンジンと、
前記セキュリティエンジンに結合されたメモリと
を備える処理システムであって、
前記メモリは、実行されると前記セキュリティエンジンに、
前記メインプロセッサおよびバッテリを含む一つ以上の資源を備える前記処理システムの現在の動作モードで、前記ホストオペレーティングシステムの命令によりアクティブになると予測される少なくとも一つのプロセスを特定する手順と、
前記現在の動作モードと、アクティブになると予測される前記少なくとも一つのプロセスとに基づいて、前記メインプロセッサの予測プロセッサ周波数および前記バッテリのバッテリ消費の予測レベルを含む前記処理システムの前記一つ以上の資源の予測アクティビティレベルを算出する手順と、
前記メインプロセッサのプロセッサ周波数および前記処理システムのバッテリのバッテリ消費のレベルを含む前記一つ以上の資源の実際のアクティビティレベルを判定する手順と、
前記予測アクティビティレベルと前記実際のアクティビティレベルとの間に偏差が検出された場合に、前記偏差の潜在的原因である予測されないアクティビティのソースとして、予測されないアクティブなプロセスおよび前記予測されないアクティブなプロセスに対応付けられたアプリケーションを特定する手順と、
ポリシーガイドラインを使用して、前記予測されないアクティビティが合法であるかを判定する手順と、
前記予測されないアクティビティが合法でない場合、前記予測されないアクティビティの前記ソースをマルウェアとして分類する手順と
を実行させる命令を有する
システム。
【請求項９】
前記命令は、実行されると、前記セキュリティエンジンに、前記処理システムのスナップショットを帯域外通信チャネルを介して遠隔のサーバに送信する手順をさらに実行させ、
前記遠隔のサーバは、前記スナップショットの検証を行う
請求項８に記載のシステム。
【請求項１０】
前記命令は、実行されると、前記セキュリティエンジンに、前記処理システムのスナップショットを帯域外通信チャネルを介して遠隔のサーバに送信する手順をさらに実行させ、
前記遠隔のサーバは、前記スナップショットをウィルスシグネチャに関して分析する
請求項８または９に記載のシステム。
【請求項１１】
前記命令は、実行されると、前記ホストオペレーティングシステムに、前記予測されないアクティビティの前記ソースを終了させる手順をさらに実行させる請求項８から１０のいずれか１項に記載のシステム。
【請求項１２】
前記命令は、実行されると、前記セキュリティエンジンに、
前記処理システムの前記現在の動作モードから新しい動作モードへの変化を識別する手順と、
少なくとも一つのプロセスがアクティブになると予測される瞬間を特定する手順と、
前記新しい動作モードと、少なくとも一つのプロセスがアクティブになると予測される前記瞬間とに基づいて、前記予測アクティビティレベルを調整する手順と
をさらに実行させる請求項８から１１のいずれか１項に記載のシステム。
【請求項１３】
前記ポリシーガイドラインを使用して前記予測されないアクティビティが合法であるかを判定する手順は、前記ソースが署名されているかを判定する手順を有する請求項８から１２のいずれか１項に記載のシステム。
【請求項１４】
前記ポリシーガイドラインを使用して前記予測されないアクティビティが合法であるかを判定する手順は、
前記予測されないアクティビティをユーザに警告する手順と、
前記予測されないアクティビティについて前記ユーザからフィードバックを取得する手順と
を有する請求項８から１３のいずれか１項に記載のシステム。
【請求項１５】
処理システムで実行されると、前記処理システムのメインプロセッサから独立して動作するセキュリティエンジンに、
前記メインプロセッサおよびバッテリを含む一つ以上の資源を備える前記処理システムの現在の動作モードで、前記処理システムのホストオペレーティングシステムの命令によりアクティブになると予測される少なくとも一つのプロセスを特定する手順と、
前記現在の動作モードとアクティブになると予測される前記少なくとも一つのプロセスとに基づいて、前記メインプロセッサの予測プロセッサ周波数および前記バッテリのバッテリ消費の予測レベルを含む前記処理システムの前記一つ以上の資源の予測アクティビティレベルを算出する手順と、
前記メインプロセッサのプロセッサ周波数および前記処理システムのバッテリのバッテリ消費のレベルを含む前記一つ以上の資源の実際のアクティビティレベルを判定する手順と、
前記予測アクティビティレベルと前記実際のアクティビティレベルとの間に偏差が検出された場合、前記偏差の潜在的原因である予測されないアクティビティのソースとして、予測されないアクティブなプロセスおよび前記予測されないアクティブなプロセスに対応付けられたアプリケーションを特定する手順と、
ポリシーガイドラインを使用して、前記予測されないアクティビティが合法であるかを判定する手順と、
前記予測されないアクティビティが合法でない場合、前記予測されないアクティビティの前記ソースをマルウェアとして分類する手順と
を実行させる命令を備えるコンピュータプログラム。
【請求項１６】
前記命令は、実行されると、前記処理システムの前記セキュリティエンジンに、前記処理システムのスナップショットを帯域外通信チャネルを介して遠隔のサーバに送信する手順をさらに実行させ、
前記遠隔のサーバは、前記スナップショットの検証を行う
請求項１５に記載のコンピュータプログラム。
【請求項１７】
前記命令は、実行されると、前記処理システムの前記セキュリティエンジンに、前記処理システムのスナップショットを帯域外通信チャネルを介して遠隔のサーバに送信する手順をさらに実行させ、
前記遠隔のサーバは、前記スナップショットをウィルスシグネチャに関して分析する
請求項１５または１６に記載のコンピュータプログラム。
【請求項１８】
前記命令は、実行されると、前記処理システムに、前記予測されないアクティビティの前記ソースを終了させる手順をさらに実行させる請求項１５から１７のいずれか１項に記載のコンピュータプログラム。
【請求項１９】
前記命令は、実行されると、前記処理システムの前記セキュリティエンジンに、
前記処理システムの前記現在の動作モードから新しい動作モードへの変更を識別する手順と、
少なくとも一つのプロセスがアクティブになると予測される瞬間を特定する手順と、
前記新しい動作モードと、少なくとも一つのプロセスがアクティブになると予測される前記瞬間とに基づいて、前記予測アクティビティレベルを調整する手順と
をさらに実行させる請求項１５から１８のいずれか１項に記載のコンピュータプログラム。
【請求項２０】
前記ポリシーガイドラインを使用して前記予測されないアクティビティが合法であるかを判定する手順は、前記ソースが署名されているかを判定する手順を有する請求項１５から１９のいずれか１項に記載のコンピュータプログラム。
【請求項２１】
前記ポリシーガイドラインを使用して前記予測されないアクティビティが合法であるかを判定する手順は、
前記予測されないアクティビティをユーザに警告する手順と、
前記予測されないアクティビティについて前記ユーザからフィードバックを取得する手順と
を有する請求項１５から２０のいずれか１項に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全体的に、データ処理システムでのマルウェア検出に関する。
【０００２】
[著作権表示／許諾]
本明細書は、著作権保護の対象となる題材を含む。著作権所有者は、米国特許商標庁の特許包袋もしくは記録の通りに特許文書の開示内容が何人により再現されようと異議を申し立てないが、その他のあらゆる著作権およびその他の権利を留保する。
【背景技術】
【０００３】
移動体デバイスが社会で普及している今日、移動コンピューティング環境で動作するアプリケーションは、数も増大し、機能性も向上している。移動体デバイスは、現在、ファイナンス・バンキングに関するトランザクション、健康・ウェルネスの管理、支払い処理、ソーシャルネットワーキング等の高度にセンシティブなトランザクションの処理に使用されている。これらの高度にセンシティブなトランザクションによって、移動体デバイスは、ハッカーおよびマルウェアにとって恰好のターゲットとなっている。フォームファクターが小さく、移動体デバイスで利用可能なコンピューティング資源、ストレージ、およびバッテリ寿命が制限されるので、従来のウィルス防止技術は、移動体デバイス上では、有用性が限られている。
【図面の簡単な説明】
【０００４】
【図１】本発明の一実施形態に係る、シグネチャとは無関係の、システム挙動に基づいた、マルウェア検出を可能にするシステムのブロック図である。
【図２】本発明の一実施形態に係る図１のシステムの詳細なブロック図である。
【図３】本発明の一実施形態に係る、シグネチャとは無関係の、システム挙動に基づいた、マルウェア検出を実行する方法のフローチャートである。
【図４】本発明の一実施形態に係る、システムの動作時にユーザが呼び出した新しいアプリケーションを監視する方法のフローチャートである。
【発明を実施するための形態】
【０００５】
本発明の実施形態は、シグネチャとは無関係に、システム挙動に基づいて、マルウェア検出を実行する方法、システム、およびコンピュータプログラムプロダクトを提供する。一実施形態では、この方法は、一つ以上の資源を有する処理システムの現在の動作モードでアクティブになることが予測される少なくとも一つのプロセスを特定する段階と、現在の動作モードとアクティブになることが予測される少なくとも一つのプロセスとに基づいて、処理システムの一つ以上の資源の予測されるアクティビティレベルを算出する段階と、複数の資源の実際のアクティビティレベルを判定する段階と、予測アクティビティレベルと実際のアクティビティレベルとの間に偏差がある場合、予測されないアクティビティのソースを偏差の潜在的原因として特定する段階と、ポリシーガイドラインを使用して、予測されないアクティビティが合法であるかを判定する段階と、予測されないアクティビティが合法でない場合、予測されないアクティビティのソースをマルウェアに分類する段階とを備える。
【０００６】
この方法は、処理システムのスナップショットを遠隔のサーバに送信する段階をさらに備えてよく、遠隔のサーバは、ウィルスシグネチャを調べるべく、スナップショットを検証し、および／または、スナップショットを分析する。この方法は、予測されないアクティビティのソースを終了させる段階をさらに備えてよい。一実施形態では、この方法は、処理システムの現在の動作モードから新しい動作モードへの変更を識別する段階と、少なくとも一つのプロセスがアクティブになると予測される瞬間（秒）を特定する段階と、新しい動作モードと少なくとも一つのプロセスがアクティブになると予測される瞬間（秒）とに基づいて、予測アクティビティレベル調整する段階とを備える。一実施形態では、ポリシーガイドラインを使用して、予測されないアクティビティが合法であるかを判定する段階は、ソースに署名が施されているかを判定する段階を有する。ポリシーガイドラインを使用して、予測されないアクティビティが合法であるかを判定する段階は、予測されないアクティビティのユーザに警告を発して、予測されないアクティビティについてのユーザからのフィードバックを得る段階をさらに有してよい。
【０００７】
本明細書において、本発明の「一実施形態」または「ある実施形態」と言及する場合、当該実施形態に関連して記載される特定の特性、構造、または特徴が、本発明の少なくとも一つの実施形態に含まれるということが意図される。したがって、本明細書の全体を通して各所に記載される「一実施形態では」、「一実施形態によると」等の表現は、必ずしも全てが同一の実施形態を示すのではない。
【０００８】
説明の便宜を図るべく、特定の構成および詳細を述べることで、本発明の完全な理解を促す。しかし、本明細書に提示される特定の詳細がなくても、本発明の実施形態は実施可能であることが当業者には明らかとなるであろう。さらに、本発明が曖昧とならないように、周知の特性を省略または簡略化する場合がある。この記載を通して、多様な例を提示する。これらは、本発明の特定の実施形態を単に記載するものである。本発明の範囲は、提示される例に限定されない。
【０００９】
従来のデスクトップシステムでは、コンピュータが実行ファイルをダウンロードまたは実行開始した後、多くのユーザは、周知のウィルスを検出して除去することができるウィルス対策ソフトウェアをインストールする。ウィルス対策ソフトウェアアプリケーションがウィルスを検出するのに使用する一般的な方法が二つある。一番目の最も一般的なウィルス検出方法は、ウィルスシグネチャ定義のリストの使用である。この方法では、コンピュータのメモリ（ＲＡＭおよびブートセクター）並びに固定または取り外し可能ドライブ（ハードドライブおよびフロッピー（登録商標）ドライブ）に格納されたファイルの内容を調べて、これらのファイルを周知のウィルス「シグネチャ」のデータベースと比較する。この検出方法の欠点の一つは、ユーザは、最後にウィルス定義を更新した時点より以前から存在するウィルスからしか保護されないことである。別の欠点は、何百万ものエントリを保存することとなりうるウィルスシグネチャデータベースを格納するのにかなりの資源が必要となり、移動体デバイス上で確保できる記憶容量を超えてしまうことである。
【００１０】
ウィルス検出の二番目の方法は、ウィルスソフトウェアが示す共通の挙動に基づいてウィルスを発見する発見的アルゴリズム（ｈｅｕｒｉｓｔｉｃ  ａｌｔｏｒｉｔｈｍ）の使用である。この方法では、シグネチャがまだ定義されていない新種のウィルスを検出することができるが、ウィルスソフトウェアが示す共通の挙動を前もって特定する必要がある。この方法にも、共通の挙動を特定および追跡するべく膨大なコンピューティング資源が必要であり、このような膨大なコンピューティング資源は移動体デバイス上では確保できないという欠点がある。
【００１１】
図１は、本発明の一実施形態に係る、シグネチャとは無関係に、システム挙動に基づいてマルウェアを検出するシステムのブロック図である。移動体コンピュータシステムおよび／または携帯電話に対応するプラットフォーム１００は、チップセット１２０に接続されたプロセッサ１１０を備える。プロセッサ１１０は、プラットフォーム１００の処理機能であり、シングルコアまたはマルチコアのプロセッサであってよく、２つ以上のプロセッサをプラットフォーム１００に設けてよい。プロセッサ１１０は、一つ以上のシステムバス、通信経路、または通信媒体（不図示）を介してプラットフォーム１００のその他のコンポーネントに接続されてよい。プロセッサ１１０は、相互接続１５１を介してネットワーク１５０でエンタプライズサーバ１７０と通信するホストアプリケーション１１２等のホストアプリケーションを実行する。ホストアプリケーション１１２は、ホストオペレーティングシステム１０５の制御下で動作する。
【００１２】
チップセット１２０は、プロセッサ１１０から独立して動作し、プラットフォーム１００のセキュリティを管理する組み込みマイクロプロセッサとして実装してよいセキュリティエンジン１３０を有する。セキュリティエンジン１３０は、暗号化機能およびその他のユーザ認証機能を提供する。一実施形態では、プロセッサ１１０は、ホストオペレーティングシステム１０５の命令により動作するが、セキュリティエンジン１３０は、ホストオペレーティングシステム１０５によってアクセスできないセキュアで隔離された環境を提供する。このセキュアな環境を、本明細書では、セキュアパーティションと呼ぶ。セキュアな環境には、セキュアストレージ１３２も存在する。
【００１３】
一実施形態では、ホストアプリケーション１１２は、セキュリティエンジン１３０内で動作する挙動分析モジュール１４０を使用して、シグネチャとは無関係の、システム挙動に基づいたマルウェア検出を実行する。ホストアプリケーション１１２は、シグネチャとは無関係のシステム挙動に基づいたマルウェア検出を含むセキュリティエンジン１３０のサービスを、セキュリティエンジンインターフェース（ＳＥＩ）１１４を介して要求する。挙動分析モジュール１４０は、セキュリティエンジン１３０によって実行されるファームウェアとして実装してよい。
【００１４】
セキュリティエンジン１３０とエンタプライズサーバ１７０との通信は、帯域外通信チャネル１５２を介して実行される。一実施形態では、帯域外通信チャネル１５２は、ホストシステムのセキュリティエンジン１３０とエンタプライズサーバ１７０との間のセキュアな通信チャネルである。帯域外通信チャネル１５２によって、セキュリティエンジン１３０は、プラットフォーム１００のホストオペレーティングシステム１０５から独立して、外部のサーバと通信可能である。
【００１５】
図２は、図１のシステムのコンポーネントをより詳細に表した図である。図２に示す実施形態では、挙動分析モジュールユーザインターフェース２１２は、モバイルオペレーティングシステム（ＯＳ）２０５によって構築される環境で動作するホストアプリケーションである。挙動分析モジュールユーザインターフェース２１２は、挙動分析モジュール２４０を呼び出して、シグネチャとは無関係のシステム挙動に基づいたマルウェア検出を提供する。挙動分析モジュールユーザインターフェース２１２と挙動分析モジュール２４０とのやり取りは、実施例ごとに特定であり、直接、またはモバイルＯＳ２０５を介して、実行してよい。一実施形態では、挙動分析モジュールユーザインターフェース２１２は、挙動分析モジュール２４０の動的設定をオーバーライドすることもできる。
【００１６】
モバイルＯＳ２０５は、アイドル期間にプラットフォーム２００のサブシステムを一時停止させ、プロセッサ２１０が低電力状態で動作する時間長を増加させる電力管理器２０７を有する。電力管理器２０７は、可能な最小電力状態にプロセッサ２１０を維持し、移動体デバイス２００の節電量を増大させる。
【００１７】
挙動分析モジュール２４０はセキュリティエンジン２３０内で動作するので、挙動分析モジュール２４０は、セキュリティエンジンインターフェース（ＳＥＩ）２１４を介してアクセスされる。挙動分析モジュール２４０は、プロセッサモニタ２４１、バッテリモニタ２４２、覚醒イベントモニタ２４３、および通信／ログエージェント２４４を含むいくつかのサブモジュールを含む。
【００１８】
プロセッサモニタ２４１は、プロセッサ利用情報を挙動分析モジュール２４０に提供する。プロセッサモニタ２４１は、カーネル制御器／メニュー（不図示）とやり取りすることにより、プロセッサ利用を監視する。プロセッサモニタ２４１は、特権および／または周波数を制限した状態でプロセスが実行されるようにすることもできる。
【００１９】
バッテリモニタ２４２は、バッテリ利用情報を挙動分析モジュール２４０に提供する。バッテリの利用を監視して、プロセッサ以外の資源の過度の利用を検出する。たとえば、バッテリモニタ２４２は、グラフィックスエンジン資源またはオーディオサブシステムの過度の利用を検出してよい。バッテリモニタ２４２は、バッテリ２５０のドライバ（不図示）とやり取りすることにより、バッテリ利用を監視する。
【００２０】
覚醒イベントモニタ２４３は、システム制御ユニット（ＳＣＵ）２０８と協働して覚醒イベントを監視する。覚醒イベントモニタ２４３は、所定の動作モードにおいて予測されない覚醒イベントをフィルターするようＳＣＵ２０８のレジスタを設定する。システム制御ユニット（ＳＣＵ）２０８は、きめ細やかなプラットフォーム電力管理支援を実行する。プラットフォーム２００の覚醒イベントは、ＳＣＵ２０８を介して覚醒イベントモニタ２４３にルーティングされる。
【００２１】
挙動分析モジュール２４０は、呼び出されると、セキュアストレージ２３２からポリシー設定をロードする。挙動分析モジュール２４０は、モバイルＯＳ２０５の電力管理器２０７から、プラットフォームの現在の動作モードを取得する。プラットフォームの動作モードの例としては、ブラウジング、映像／音声の再生、カメラ、電話等がある。現在の動作モードに基づいて、挙動分析モジュール２４０は、アクティブになることが予測される少なくとも一つのプロセスを特定する。たとえば、音声再生モードでは、オーディオサブシステムのプロセスがアクティブになることが予測され、プロセッサは、バッファの設定・消去のためだけに起動されることが予測される。
【００２２】
挙動分析モジュール２４０は、プラットフォーム２００の資源のアクティビティレベルを監視し、実際のアクティビティレベルを予測アクティビティレベルと比較する。予測アクティビティレベルは、システムの動作モードと、その動作モードでアクティブになることが予測されるプロセスとに基づいて決定される。たとえば、プロセッサモニタ２４１は、カーネルプロセッサメニュー／制御器（不図示）とやり取りして、現在の動作モードでのプロセッサ２１０およびバッテリ２５０の予測アクティビティレベルを決定する。次に、プロセッサ２１０およびバッテリ２５０の実際のアクティビティレベルと、システム制御ユニット（ＳＣＵ）２０８が扱う覚醒イベントの数および種類とを監視する。実際のアクティビティレベルと予測アクティビティレベルとに偏差が発見された場合、予測されないアクティビティのソースを偏差の潜在的原因として特定する。
【００２３】
挙動分析モジュール２４０は、カーネルスケジューラ（不図示）と協働してシステムで現在アクティブとなっているプロセスを特定することにより、予測されないアクティビティのソースを特定する。現在アクティブとなっているこれらのプロセスを、プラットフォームの現在の動作モードで起動されていると現在予測されているアプリケーションにマッピングする。アクティブとなっているプロセスを現在の動作モードで予測されるアプリケーションにマッピングできない場合、アクティブとなっているそのプロセスおよびそれに対応付けられたアプリケーションを予測されないアクティビティのソースとして特定する。
【００２４】
予測されないアクティビティのソースを特定すると、挙動分析モジュール２４０は、ポリシーガイドラインを使用して、予測されないアクティビティが合法であるかを判定する。たとえば、ポリシーガイドラインは、アプリケーションが合法であると認められるには署名されていなければならない旨を規定してよい。ポリシーガイドラインは、予測されないアクティビティについてユーザに警告を発し、ユーザのフィードバックを取得して、アプリケーションが合法であるかを判定する旨を規定してよい。
【００２５】
予測されないアクティビティが合法でないと判定されたら、予測されないアクティビティのソースをマルウェアとして分類してよい。ポリシーガイドラインを使用して、マルウェアの対処策を決定してよく、たとえば、予測されないアクティビティのソースを終了してよく、および／または、さらに分析するべくシステムのスナップショットを取ってよい。たとえば、システムのスナップショットを遠隔のサーバに送信して分析させてよい。遠隔のサーバは、スナップショットの検証および／またはスナップショットをウィルスシグネチャに関して分析してよい。
【００２６】
挙動分析モジュール２４０は、プラットフォーム２００の動作モードが変更された場合、モバイルＯＳ２０５の電力管理器２０７から通知を受けてよい。たとえば、プラットフォーム２００が当初は音声再生モードであった場合にユーザがブラウザを起動させると、システムは、「ブラウザ＋音声再生」動作モードに変化する。モバイルＯＳ２０５の電力管理器２０７から通知を受けると、挙動分析モジュール２４０は、自身の設定および予測アクティビティレベルを調整して、虚偽の警告のトリガを回避する。
【００２７】
通信／ログエージェント２４４は、システム状態のスナップショットを定期的にログして、当該情報を図１のエンタプライズサーバ１７０等の遠隔のサーバに送信して、検証および／または分析させてよい。ログした情報を送信する際、通信／ログエージェント２４４は、エンタプライズサーバ１７０とのセキュアな通信チャネルを構築する。スナップショットに取る情報は、実施例ごとに特定であり、検出された異常アクティビティの統計、実行されている非署名アプリケーションの識別情報および／またはコード、ユーザのデバイス使用パターン、特権設定のオーバーライド試行のログ、及び珍しい挙動パターンのログを含んでよい。
【００２８】
プラットフォーム２００は、メモリ２０４およびセキュアストレージ２３２等のメモリ装置をさらに備える。これらのメモリ装置は、ランダムアクセスメモリ（ＲＡＭ）および読み出し専用メモリ（ＲＯＭ）を含んでよい。本発明においては、通常、消去可能プログラム可能ＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラム可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュＲＯＭ、フラッシュメモリ等の不揮発性メモリ装置を指して、「ＲＯＭ」という用語を使用する。セキュアストレージ２３２は、統合デバイスエレクトロニクス（ＩＤＥ）ハードドライブ等の大容量記憶装置、および／または、たとえば、フロッピー（登録商標）ディスク、光学式記憶装置、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、生物学的記憶装置等のその他の装置または媒体を含んでよい。一実施形態では、セキュアストレージ２３２は、モバイルＯＳ２０５から隔離されたチップセット２２０内に組み込まれたｅＭＭＣ  ＮＡＮＤフラッシュメモリである。
【００２９】
プロセッサ２１０は、ディスプレイコントローラ２０２、小型コンピュータ用周辺機器インターフェース（ＳＣＳＩ）コントローラ、通信コントローラ２０６等のネットワークコントローラ、ユニバーサルシリアルバス（ＵＳＢ）コントローラ、キーボードおよびマウス等の入力装置等のさらなるコンポーネントに通信可能に結合されてもよい。プラットフォーム２００は、多様なシステムコンポーネントを通信可能に結合するべく、メモリコントローラハブ、入出力（Ｉ／Ｏ）コントローラハブ、ＰＣＩルートブリッジ等の一つ以上のブリッジまたはハブをさらに備えてよい。本明細書で使用される「バス」という用語は、共有の通信経路およびポイントツーポイント経路を指すべく使用される場合がある。
【００３０】
たとえば、通信コントローラ２０６等のいくつかのコンポーネントは、バスと通信するためのインターフェース（たとえば、ＰＣＩコネクタ）を有するアダプタカードとして実装してよい。一実施形態では、プログラム可能またはプログラム不可能な論理デバイスまたはアレイ、特定用途向け集積回路（ＡＳＩＣｓ）、組み込みコンピュータ、スマートカード等を使用して、一つ以上の装置を組み込みコントローラとして実装してよい。
【００３１】
本明細書で使用される「処理システム」および「データ処理システム」という用語は、単一の機械、または、通信可能に結合されて協働する複数の機械または装置から構成されるシステムを広範に包含することが意図される。処理システムの例としては、分散コンピューティングシステム、スーパーコンピュータ、高性能コンピューティングシステム、コンピューティングクラスタ、メインフレームコンピュータ、ミニコンピュータ、クライアント−サーバシステム、パーソナルコンピュータ、ワークステーション、サーバ、携帯型コンピュータ、ラップトップコンピュータ、タブレット、電話、携帯情報端末（ＰＤＡ）、ハンドヘルドデバイス、音声および／または映像端末等の娯楽端末、情報を処理または送信するためのその他の装置等があるが、これらに限定されない。
【００３２】
キーボード、マウス、タッチスクリーン、音声作動式装置、ジェスチャ作動式装置等の従来の入力装置からの入力、および／または、別の装置から受信したコマンド、生体認証機能からのフィードバック、もしくはその他の入力ソース／信号によって、少なくとも部分的にプラットフォーム２００を制御してよい。プラットフォーム２００は、たとえば、通信コントローラ２０６、モデム、またはその他の通信ポートもしくは通信結合部を介して、図１のエンタプライズサーバ１７０等の一つ以上の遠隔データ処理システムへの一つ以上の接続を活用してよい。
【００３３】
ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、イントラネット、インターネット等の物理的および／または論理的なネットワークを介して、プラットフォーム２００をその他の処理システム（不図示）に相互接続してよい。ネットワークを介した通信は、無線周波数（ＲＦ）、衛星、マイクロ波、電気電子技術者協会（ＩＥＥＥ）８０２．１１、ブルートゥース（登録商標）、光、赤外線、ケーブル、レーザ等を含む多様な有線および／または無線の短距離または長距離キャリアおよびプロトコルを利用してよい。
【００３４】
図３は、本発明の一実施形態に係る、シグネチャとは無関係のシステム挙動に基づいたマルウェア検出を実行する方法のフローチャートである。図３に示す本方法の段階は、図１および図２に示すシステムのコンポーネントによって実行されるものとして記載する。本方法は、３０２の「プラットフォームで挙動分析モジュールが起動されたか」の判定点から始まる。プラットフォーム２００で挙動分析モジュール２４０が起動されていない場合、処理は終了する。挙動分析モジュール２４０が起動されると、制御は、段階３０４の「セキュアストレージからポリシー設定をロードする」に進む。プロセッサ２１０およびバッテリ２５０等の各資源の予測アクティビティレベルについてのポリシー設定が、動作モードごとに確立され、セキュアストレージ２３２のポリシーデータベースに保存される。これらのポリシー設定は、メモリにロードされ、挙動分析モジュール２４０は、段階３０６の「プラットフォームの現在の動作モードを電力管理器から取得する」に進む。挙動分析モジュール２４０は、モバイルＯＳ２０５の電力管理器２０７から現在の動作モードを取得する。継続的に、モバイルＯＳ２０５の電力管理器２０７は、段階３０８の「プラットフォームの動作モードが変更されたら、電力管理器は挙動分析モジュールに通知する」に示すように、プラットフォームの動作モードに変更があった場合に、挙動分析モジュール２４０に通知する。
【００３５】
段階３０６の「プラットフォームの現在の動作モードを電力管理器から取得する」から、制御は、段階３１０の「動作モードに基づいて、対応するモードでアクティブになることが予測されるプロセスを判定する」に進み、挙動分析モジュール２４０は、プラットフォーム２００の現在の動作モードに基づいて、アクティブになることが予測される少なくとも一つのプロセスを特定する。制御は、段階３１２の「現在の動作モードの予測アクティビティレベルを算出する（プロセッサ周波数およびバッテリ消費を概算する）」に進み、挙動分析モジュール２４０は、現在の動作モードの場合のプラットフォーム２００の資源の予測アクティビティレベルを算出する。たとえば、概算的なプロセッサ周波数およびバッテリ消費レベルを算出してよい。次に、制御は、段階３１４の「予測アクティビティレベルに対する実際のアクティビティレベルの偏差を監視する」に進む。段階３１４で、挙動分析モジュール２４０は、実際のアクティビティレベルが予測アクティビティレベルに対して偏差を有するか監視する。たとえば、プロセッサモニタ２４１は、予測アクティビティレベルに対するプロセッサ周波数、特権期間（ｐｒｉｖｉｌｅｇｅ  ｄｕｒａｔｉｏｎ）、および使用期間（ｕｓａｇｅ  ｄｕｒａｔｉｏｎ）の偏差を監視する。バッテリモニタ２４２は、予測バッテリ消費量に対するバッテリ使用の偏差を監視する。覚醒イベントモニタ２４３は、現在の動作モードの場合の覚醒イベントの予測数を、システム制御ユニット（ＳＣＵ）２０８を使用して監視する。
【００３６】
制御は、段階３１４の「予測アクティビティレベルに対する実際のアクティビティレベルの偏差を監視する」から３１６の「偏差が検出されたか」の判定点に進む。偏差が検出されなかった場合、制御は、段階３２２の「システムのスナップショットを取って、スナップショットをログする」に進み、通信／ログエージェント２４４は、システムのスナップショットを取ってログに書き込む。スナップショットに収集されるデータ量およびスナップショットを取る周期は、実施例ごとに特定であり、相手先商標製品製造業者／相手先商標機器製造業者（ＯＥＭ／ＯＤＭ）によって決定してよい。一実施形態では、システムのスナップショットを遠隔のサーバが分析して、ウィルスシグネチャマッチングを遠隔のサーバで実行し、クライアント処理システムで要求されるシグネチャ処理用資源を少なくしてよい。
【００３７】
３１６の「偏差が検出されたか」の判定点で偏差が検出されると、制御は、段階３１８の「予測されないアクティビティレベルのソースを特定する」に進む。段階３１８では、予測されないプロセッサ周波数のソース等の予測されないアクティビティレベルのソースを偏差の潜在的ソースとして特定する。次に、制御は、段階３２０の「ポリシーガイドラインを使用して予測されないアクティビティが合法であるかを判定する」に進む。上記したように、予測されないアクティビティのソースを特定すると、挙動分析モジュール２４０は、ポリシーガイドラインを使用して予測されないアクティビティが合法であるかを判定する。たとえば、ポリシーガイドラインは、アプリケーションは、合法であると認められるには、署名されていなければならない旨を規定してよい。ポリシーガイドラインは、アプリケーションが合法であるかを判定するには、予測されないアクティビティについてユーザに警告を発して、ユーザからのフィードバックを取得する旨を規定してよい。制御は、３２２の「アクティビティは合法であるか」の判定点に進む。予測されないアクティビティが合法であると判定されれば、制御は、段階３２６の「ポリシー設定にしたがって行動をとる」に進む。たとえば、さらなる監視ルーチンを呼び出して、予測されないアクティビティのソースであるアプリケーションを監視してよい。
【００３８】
３２２の「アクティビティは合法であるか」の判定点で、予測されないアクティビティが合法でないと判定されると、制御は、段階３２４の「予測されないアクティビティのソースをマルウェアとして分類する」に進み、予測されないアクティビティのソースをマルウェアとして分類する。次に、制御は、段階３２６の「ポリシー設定にしたがって行動をとる」に進み、マルウェアに対処するべく、予測されないアクティビティレベルのソースを終了させる、および／または、システムのスナップショットを遠隔のサーバに通知する等の適切な行動をとる。次に、制御は、段階３２８の「システムのスナップショットを取り、スナップショットをログする」に進み、通信／ログエージェント２４４は、システムのスナップショットを取ってログに書き込む。
【００３９】
図４は、システムが動作している間にユーザが呼び出した新しいアプリケーションを監視するための本発明の一実施形態に係る方法のフローチャートである。４０２の「ユーザが新しいアプリケーション／サービスを起動させたか」の判定点で、挙動分析モジュール２４０は、プラットフォーム２００のユーザが新しいアプリケーションまたはサービスを起動させたかを判定する。新しいアプリケーションまたはサービスが起動されていない場合、処理は終了する。新しいアプリケーションまたはサービスが起動されている場合、制御は、４０４の「アプリケーション／サービスは署名されているか」の判定点に進む。アプリケーションまたはサービスが署名されていれば、制御は、段階４０８の「アプリケーション／サービスの起動を許可／拒否し、それにしたがって動作モードを更新する」に進む。挙動分析モジュール２４０は、アプリケーションまたはサービスの起動を許可または拒否し、そのいずれであるかにしたがって動作モードを更新する。
【００４０】
４０４の「アプリケーション／サービスは署名されているか」の判定点で、アプリケーションまたはサービスが署名されていなければ、制御は、段階４０６の「ユーザに警告して、ユーザからのフィードバックに基づいて調整する」に進む。挙動分析モジュールユーザインターフェース２１２を介してユーザに警告を発し、挙動分析モジュール２４０は、ユーザからのフィードバックにしたがって自身の挙動を調整する。たとえば、ユーザは、全てのアプリケーションおよびサービスが署名されていなければならないという要件をオーバーライドして未署名であってもアプリケーションの起動を許可する命令を発行してよい。または、挙動分析モジュール２４０は、未署名のアプリケーションは許可できない旨をユーザに通知してよい。制御は、段階４０６の「ユーザに警告して、ユーザからのフィードバックに基づいて調整する」から、段階４０８の「アプリケーション／サービスの起動を許可／拒否し、それにしたがって動作モードを更新する」に進む。挙動分析モジュール２４０は、アプリケーションまたはサービスの起動を許可または拒否し、それにしたがって動作モードを更新する。
【００４１】
図４を参照して記載した処理は、新しいアプリケーションが起動されたとき、または予測アクティビティレベルに対する実際のアクティビティレベルの偏差が生じたかの判定を行ったごとに、実行してよい。図４を参照して記載した処理は、予測されないアクティビティが合法であるかを判定するべく使用してよい。
【００４２】
本明細書においてシグネチャとは無関係のシステム挙動に基づいたマルウェア検出について記載した技術には、従来のマルウェア検出法と比較していくつかの利点がある。マルウェア検出の実行には、何百万ものマルウェアシグネチャを検出するべくソフトウェアプログラムを調べることが伴わないので、かなりのストレージおよびコンピューティング資源が節約される。本明細書に記載される挙動分析モジュールは、処理システムの動作モード並びにプロセッサおよびバッテリ等の資源のアクティビティレベルを活用して、積極的にマルウェアを特定する。挙動分析モジュールは、動作モードが変化したとき、動的に調整するので、虚偽の警告が回避される。挙動分析モジュールは、挙動を分析する際、アプリケーションまたはサービスが署名されているかも考慮する。
【００４３】
本明細書に記載の挙動分析モジュールは、設定可能（ｃｏｎｆｉｇｕｒａｂｌｅ）でポリシーベース（ｐｏｌｉｃｙ−ｂａｓｅｄ）である。挙動分析モジュールは、システムのスナップショットを取り、スナップショットを遠隔のエンタプライズサーバに提供し、検証させることができる。
【００４４】
さらに、本明細書に記載の挙動分析モジュールは、処理システムのオペレーティングシステムから隔離されたセキュアな環境で動作する。これにより、挙動分析データは、ユーザ、オペレーティングシステム、ホストアプリケーション、およびマルウェアを含む信頼できない存在にアクセスされないようになる。さらに、ポリシー設定およびトランザクションログは、タンパープルーフのセキュアなストレージに記憶される。遠隔のエンタプライズサーバからポリシーおよび警告をセキュアに送信することができるので、挙動分析モジュールは、変化し続けるマルウェア環境に適合することが可能である。
【００４５】
本明細書に記載のメカニズムの実施形態は、ハードウェア、ソフトウェア、ファームウェア、または、これらの実装法の組み合わせで実装してよい。本発明の実施形態は、少なくとも一つのプロセッサ、データストレージシステム（揮発性および不揮発性のメモリ、および／またはストレージ要素を含む）、少なくとも一つの入力装置、および少なくとも一つの出力装置を備えるプログラマブルシステムで実行されるコンピュータプログラムとして実装してよい。
【００４６】
入力データにプログラムコードを適用して、本明細書に記載の機能を実行し、出力情報を生成してよい。本発明の実施形態は、本発明の動作を実行するための命令、または、本明細書に記載の構造、回路、装置、プロセッサ、および／またはシステム特性を定義するＨＤＬ等の設計データを含む機械アクセス可能媒体も含む。このような実施形態もプログラムプロダクトと呼んでよい。
【００４７】
このような機械アクセス可能記憶媒体は、ハードディスク等の記憶媒体、フロッピー（登録商標）ディスク、光ディスク、読み出し専用コンパクトディスクメモリ（ＣＤ−ＲＯＭｓ）、書き換え可能コンパクトディスク（ＣＤ−ＲＷｓ）、もしくは磁気光ディスク等のその他の種類のディスク、読み出し専用メモリ（ＲＯＭｓ）、動的ランダムアクセスメモリ（ＤＲＡＭｓ）もしくは静的ランダムアクセスメモリ（ＳＲＡＭｓ）等のランダムアクセスメモリ（ＲＡＭｓ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭｓ）、プログラム可能フラッシュメモリ（ＦＬＡＳＨ）、もしくは電気的消去可能プログラム可能読み出し専用メモリ（ＥＥＰＲＯＭｓ）等の半導体装置、磁気もしくは光カード、または、電子的命令を記憶するのに適したその他の任意の種類の媒体を含む、機械または装置により製造または形成された粒子の有形の配置（ｔａｎｇｉｂｌｅ  ａｒｒａｎｇｅｍｅｎｔｓ）であってよいが、これに限定されない。
【００４８】
出力情報は、周知の方法で、一つ以上の出力装置に適用してよい。本願の目的においては、処理システムは、たとえば、デジタルシグナルプロセッサ（ＤＳＰ）、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、またはマイクロプロセッサ等のプロセッサを有する任意のシステムを含む。
【００４９】
プログラムは、処理システムとやり取りするべく、高水準手続き型言語またはオブジェクト指向プログラミング言語で実装してよい。プログラムは、所望であれば、アセンブリ言語または機械言語で実装してもよい。実際、本明細書に記載のメカニズムの範囲は、特定のプログラミング言語に限定されない。いずれにせよ、言語は、コンパイルまたはインタープリットされた言語であってよい。
【００５０】
本明細書には、シグネチャとは無関係のシステム挙動に基づいたマルウェア検出を実行する方法およびシステムの実施形態を提示した。本発明の特定の実施形態を示し記載したが、添付の特許請求の範囲から逸脱することなく、多くの変更、多様化、および改変を行うことができることが当業者には明らかとなろう。したがって、本発明から逸脱することなく、そのより広い観点において変更および改変を行うことができることは当業者であれば認識するであろう。添付の特許請求の範囲は、本発明の真の範囲および趣旨のうちにあるこのようなあらゆる変更、多様化、および改変を、その範囲に包含するものとする。
【図１】
0005632097.tif 000002
【図２】
0005632097.tif 000003
【図３】
0005632097.tif 000004
【図４】
0005632097.tif 000005