(57)【要約】  本明細書にて説明される複数の特定の実施形態は、プロセスに関連するプログラムが実行を開始することを決定し、プログラムが監視されるべきであると決定される場合、プログラムに関連する複数のイベントをトレースし、トレースが終了する前にトレースされるべきイベントの数を決定するように構成することができる電子デバイスを提供する。トレースされるべきイベントの数は、プログラムのタイプに関連する。また、トレースされるイベントの数は、プログラムのアクティビティに関連する。トレースされるべき子イベントの数は、プログラムが子プログラムを有するか否かを判断することができる。トレースされた子イベントは、複数のトレースされたイベントと組み合わされ、その複数の結果は、プロセスがマルウェアを含むか否かの判断に対して解析することができる。
2017522641.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサによって実行される場合、前記プロセッサに
プロセスに関連するプログラムが実行を開始することを決定させ、
前記プログラムが監視されるべきであると決定される場合、前記プログラムに関連する複数のイベントをトレースさせ、
前記トレースが終了する前にトレースされるべきイベントの数を決定させ、
前記プロセスがマルウェアを含むか否かの判断に対してトレースされた前記複数のイベントの複数の結果を解析させる
１または複数の命令を備える少なくとも１つのコンピュータ可読媒体。
【請求項２】
トレースされるべきイベントの数が、前記プログラムのタイプに関連する、請求項１に記載の少なくとも１つのコンピュータ可読媒体。
【請求項３】
トレースされるイベントの数が、前記プログラムのアクティビティに関連する、
請求項１および２のいずれか一項に記載の少なくとも１つのコンピュータ可読媒体。
【請求項４】
前記プロセッサによって実行される場合、前記プログラムが子プログラムを有するか決定する１または複数の命令をさらに備える、請求項１から３のいずれか一項に記載の少なくとも１つのコンピュータ可読媒体。
【請求項５】
前記プロセッサによって実行される場合、前記プログラムが前記子プログラムを有するなら、トレースされるべき子イベントの数を決定する１または複数の命令をさらに備える、請求項４に記載の少なくとも１つのコンピュータ可読媒体。
【請求項６】
前記プロセッサによって実行される場合、複数のトレースされた子イベントをトレースされたイベントと組み合わせる１または複数の命令をさらに備える、請求項５に記載の少なくとも１つのコンピュータ可読媒体。
【請求項７】
トレースされるべきイベントの数が、複数のコンテキスト上のトリガーに基づく、請求項１から６のいずれか一項に記載の少なくとも１つのコンピュータ可読媒体。
【請求項８】
前記プロセッサによって実行される場合、前記トレースの複数の結果を更なる解析のためにネットワーク要素に通信する１または複数の命令をさらに備える、請求項７に記載の少なくとも１つのコンピュータ可読媒体。
【請求項９】
検知モジュールを備える装置であって、前記検知モジュールは、
プロセスに関連するプログラムが実行を開始することを決定し、
前記プログラムが監視されるべきであると決定される場合、前記プログラムに関連する複数のイベントをトレースし、
前記トレースが終了する前にトレースされるべきイベントの数を決定し、
前記プロセスがマルウェアを含むか否かの判断に対して複数の前記トレースされたイベントの複数の結果を解析する、ように構成される装置。
【請求項１０】
トレースされるべきイベントの数は、プログラムのタイプに関連する、請求項９に記載の装置。
【請求項１１】
前記検知モジュールは、前記プログラムが子プログラムを有するか否かを判断するようにさらに構成される、請求項９および１０のいずれか一項に記載の装置。
【請求項１２】
前記検知モジュールは、前記プログラムが子プログラムを有するなら、トレースされるべき子イベントの数を決定するようにさらに構成される、請求項１１に記載の装置。
【請求項１３】
前記検知モジュールは、前記複数のトレースされた子イベントをトレースされた前記イベントと組み合わせるようにさらに構成される、請求項１２に記載の装置。
【請求項１４】
トレースされるべきイベントの数が、複数のコンテキスト上のトリガーに基づく、請求項９から１３のいずれか一項に記載の装置。
【請求項１５】
前記トレースの前記複数の結果が、更なる解析のためにネットワーク要素に通信される、
請求項９から１４のいずれか一項に記載の装置。
【請求項１６】
プロセスに関連するプログラムが実行を開始していることを決定する段階と、
前記プログラムが監視されるべきであると決定される場合、前記プログラムに関連する複数のイベントをトレースする段階と、
前記トレースが終了する前にトレースされるべきイベントの数を決定する段階と、
前記プロセスがマルウェアを含むか否かの判断に対して複数の前記トレースされたイベントの複数の結果を解析する段階と、
を備える方法。
【請求項１７】
トレースされるべきイベントの数が、前記プログラムのタイプに関連する、
請求項１６に記載の方法。
【請求項１８】
前記プログラムが、子プログラムを有するか否かを判断する段階をさらに備える、請求項１６および１７のいずれか一項に記載の方法。
【請求項１９】
前記プログラムが前記子プログラムを有するなら、トレースされるべき子イベントの数を決定する段階をさらに備える、請求項１８に記載の方法。
【請求項２０】
前記複数のトレースされた子イベントをトレースされた前記イベントと組み合わせる段階をさらに備える、請求項１９に記載の方法。
【請求項２１】
前記トレースされたイベントの結果を解析する段階と、
前記複数の結果をセキュリティサーバに送信する段階と
をさらに備える請求項１６から２０のいずれか一項に記載の方法。
【請求項２２】
トレースされるべきイベントの数が、複数のコンテキスト上のトリガーに基づく、請求項１６から２１のいずれか一項に記載の方法。
【請求項２３】
マルウェアのトレースおよび検知のためのシステムであって、前記システムは、
プロセスに関連するプログラムが実行を開始することを決定し、
前記プログラムが監視されるべきであると決定される場合、前記プログラムに関連する複数のイベントをトレースし、
前記トレースが終了する前にトレースされるべきイベントの数を決定し、トレースされるべきイベントの数は前記プログラムのタイプに関連し、
複数の前記トレースされたイベントと、前記プロセスに関連する複数の他のプログラムからの複数のイベントとを組み合わせ、
複数の組み合わせられた前記トレースされたイベントと複数の他のプログラムからの複数のイベントとの複数の結果を、前記プロセスがマルウェアを含むか否かの判断に対して解析する
ように構成された検知モジュールを備えるシステム。
【請求項２４】
トレースされるべきイベントの数は、複数のコンテキスト上のトリガーに基づく、請求項２３に記載のシステム。
【請求項２５】
検知モジュールは、前記プログラムが子プログラムを有するか否かを判断し、前記プログラムが子プログラムを有するなら、トレースされるべき子イベントの数を決定し、前記複数のトレースされた子イベントと、トレースされた前記イベントとを組み合わせる、
ようにさらに構成される請求項２３および２４のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、概して情報セキュリティの分野に関し、より詳しくは、マルウェアのトレースおよび検知に関する。
【背景技術】
【０００２】
ネットワークセキュリティの分野は、今日の社会においてますます重要になってきている。インターネットにより、世界中の様々なコンピュータネットワークを相互接続することが可能になってきている。特に、インターネットは、様々なタイプのクライアントデバイスを経由して様々なコンピュータネットワークに接続される異なるユーザ間のデータを交換する媒体を提供する。インターネットの使用が、ビジネスおよび個人の通信を変容させてきた一方で、インターネットは、コンピュータおよびコンピュータネットワークへの不正アクセスを得ようとする悪意のあるオペレータのための、および機密情報の故意または不慮の開示のための手段としても使用されている。
【０００３】
ホストコンピュータを感染させる悪意のあるソフトウェア（「マルウェア」）は、そのホストコンピュータに関連するビジネスまたは個人からの機密情報を盗む、他の複数のホストコンピュータに伝播する、および／または複数の分散型サービス妨害攻撃の分配された否認を支援する、ホストコンピュータからのスパムまたは悪意のある電子メールを送出するなどの、任意数の悪意のある動作を実行することが可能であり得る。よって、悪意のあるソフトウェアによる悪意のある、不注意な搾取からコンピュータおよびコンピュータネットワークを保護するための重要な管理問題が、残っている。
【図面の簡単な説明】
【０００４】
本開示とそれの特徴および利点に関してのより完全な理解を提供するために、添付の図面とともに考慮して、以下の説明を参照する。本明細書で、同様の参照符号は、同様の部分を表す。
【０００５】
【図１】本開示の一実施形態によるネットワーク環境のマルウェア軽減のための通信システムの簡略化されたブロック図である。
【０００６】
【図２】一実施形態による通信システムと関連し得る潜在的なオペレーションを図示する簡略化されたフローチャートである。
【０００７】
【図３】一実施形態による通信システムと関連し得る複数の潜在的なオペレーションを図示する簡略化されたフローチャートである。
【０００８】
【図４】一実施形態による通信システムと関連し得る複数の潜在的なオペレーションを図示する簡略化されたフローチャートである。
【０００９】
【図５】一実施形態による通信システムと関連し得る複数の潜在的なオペレーションを図示する簡略化されたフローチャートである。
【００１０】
【図６】一実施形態による通信システムと関連し得る複数の潜在的なオペレーションを図示する簡略化されたフローチャートである。
【００１１】
【図７】一実施形態によるポイントツーポイント構成に配置された例示的なコンピューティングシステムを図示するブロック図である。
【００１２】
【図８】本開示の例示的なＡＲＭエコシステムのシステムオンチップ（ＳＯＣ）と関連する簡略化されたブロック図である。
【００１３】
【図９】一実施形態による例示的なプロセッサコアを図示するブロック図である。
【００１４】
図面の図は、必ずしも縮尺通りに描かれておらず、それらの寸法は、本開示の範囲から逸脱しなければ、相当変動することができる。 
【発明を実施するための形態】
【００１５】
［例示的な実施形態］
図１は、マルウェアをトレースおよび検知するのに役立つ通信システム１００の簡略化されたブロック図である。通信システム１００は、電子デバイス１１０、ネットワーク１１４およびセキュリティサーバ１１６を含むことができる。電子デバイスは、検知モジュール１１８を含むことができる。悪質なデバイス１１２は、電子デバイス１１０にマルウェアを導入しようと企て得る。電子デバイス１１０、悪質なデバイス１１２およびセキュリティサーバ１１６は、ネットワーク１１４を介して接続され得る。一例において、悪質なデバイス１１２は、電子デバイス１１０に（例えば、汎用シリアルバス（ＵＳＢ）タイプの接続を介して）直接接続され得る。
【００１６】
例示的な実施形態において、通信システム１００は、特性に関連するプログラムが実行を開始することを決定し、プログラムが監視されるべきと決定される場合にそのプログラムに関連するイベントをトレースし、トレースが終了する前にトレースされたイベントの数を決定するように構成される。特性は、プログラムがマルウェアであるか、またはマルウェアを含む場合があることを示し得る任意の特性であり得る。例えば、プログラムは、所有者の同意無しに、そのプログラムがコンピュータシステムに潜入するか、これを修正、変更、破損または損傷することを可能にする特性を有する場合がある。トレースされるべきイベントの数は、プログラムのタイプに関連し得る。また、トレースされるイベントの数は、プログラムのアクティビティに関連し得る。通信システム１００は、プログラムが子プログラムを有するなら、トレースされるべき子イベントの数を決定するようにさらに構成することができる。プログラムの子は、他のプログラムからのリクエスト、イベントまたはアクションの代わり、あるいはそれに応答して機能する任意のプログラムまたはコードである。通信システム１００は、親／子プロセスにわたる複数のトレースされたイベントを統合して、プロセスがマルウェアを含むか否かの判断に対して複数のトレースされたイベントの複数の結果を解析するように構成され得る。他の例では、通信システム１００は、複数のトレースされたイベントの複数の結果を解析して、セキュリティサーバにそれらの結果を送信するように構成することができる。いくつかの例では、複数のトレースされたイベントの複数の結果は、それらがセキュリティサーバに送信される前に正規化および統合される。 
【００１７】
図１の複数の要素は、ネットワーク（例えば、ネットワーク１１４）通信についての実行可能な経路を提供する任意の好適な接続（有線または無線）を採用する１または複数のインターフェースを介して互いに連結してよい。更に、図１におけるこれらの要素のうち任意の１または複数のものは、必要とされる特定の構成に基づいて組み合わされるか、またはアーキテクチャから除去され得る。通信システム１００は、ネットワークでの複数のパケットの送信または受信のための伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）通信が可能な構成を含んでよい。通信システム１００はまた、ユーザデータグラムプロトコル／ＩＰ（ＵＤＰ／ＩＰ）または必要に応じて、特定のニーズに基づいた任意の他の好適なプロトコルと連携して動作してよい。
【００１８】
通信システム１００の特定の例示的な技術を図示する目的で、ネットワーク環境を横断中であり得る通信を理解することは重要である。以下の基本的情報は、本開示が適切に説明される上での基礎とみなされ得る。
【００１９】
インターネットへのアクセスの増大は、ユーザの同意無しに複数のユーザの個人情報を獲得するか、あるいは、彼らの認識および同意無しにコンピュータを破損するソフトウェアプログラムの到達が増大するという意図しない効果をもたらしている。本明細書中に使用される用語であるマルウェアは、所有者の同意無しに、ソフトウェアプログラムに対する動機づけに関わらず、所有者のデバイス、システム、ネットワークまたはデータに対してソフトウェアプログラムによって引き起こされる結果に関わらず、コンピュータシステムに潜入するか、これを修正、変更、破損または損傷するように設計される任意のタイプのソフトウェアプログラムを含む。 
【００２０】
様々な検知プログラムが、マルウェアの存在を検知しようと試みるべく使用され得る。いくつかの例では、複数の検知プログラムは、検証されているソフトウェアプログラムの署名を検知することに頼り、プログラムがマルウェアであるか、または、これを含むかどうか判断している。いくつかの例では、検知プログラムは、ソフトウェアプログラムがマルウェアであるかどうかを判断するトレース方法を使用する。しかしながらマルウェアの作者は、トレース方法による検知を回避するべく、マルウェアプログラムの一部を頻繁に変更または改変する。 
【００２１】
その結果、アンチマルウェアベンダーおよびセキュリティシステムは、事前検知を目指した挙動技術を採用している。しかしながら、いくつかの技術は、単一プロセス指向であり、マルチコンポーネントの脅威には有効ではない。いくつかの脅威は、数個のコンポーネントを有する傾向がある。例えば、いくつかの脅威は、悪意のあるＵＲＬで開始し、脆弱性を活用する、またはドライブバイダウンロードをホストする。次に、悪意のあるユニフォームリソースロケータ（ＵＲＬ）（例えば、Ｃ＆Ｃボットコード、パスワードスティーラペイロードなど）からの悪意のあるダウンロードは、別個のプロセスとしてスポーンされる可能性がある。単一プロセスのトレースにより、エンドツーエンドの脅威イベントの全体にわたってコンテキストを構築せず、したがって保護値を限定する。
【００２２】
また、複数の脅威アクティビティをトレースする場合、いくつかの技術は、トレースをいつ停止するかを決定するべく、ハードコード化された、または事前設定されたタイムアウトを使用する。これが有効ではないのは、各脅威が異なる感染時間ウィンドウを有し、３０秒または６０秒のトレースにより、マルウェア検知のための十分なイベントまたは挙動を獲得できることは保証されないからである。複数の脅威は進行するべく、ユーザマシン上のアクティビティ、ハンドシェイク、およびマルウェアサーバからのコマンドなどを待機している場合があり、６０秒のトレースにより、悪意のあるアクティビティを特定する可能性は低い。 
【００２３】
マルウェアをトレースおよび検知する通信システムは、図１にて概説したように、これらの問題（およびその他）を解消することができる。図１の通信システム１００において、マルウェアをトレースおよび検知するべく、システムは、複数のイベントが正規化および統合された後に、複数のファイルおよび複数のプログラムの複数のイベントおよび複数の挙動をグループ化するように構成されてよい。これは、一般的だが十分詳細なエンドツーエンドの脅威のイベントトレースを構築することができる。複数の統合されたイベントは、複数のルールおよび機械学習を用いてタグ付けおよび相関付けられ、これにより脅威が検知された場合、それに従いミティゲーションポリシーを各コンポーネントに適用することができる。全体にわたって使用される「イベント」および「複数のイベント」なる用語は、挙動、アクション、呼び出し、リダイレクト、ダウンロード、または、任意の他のプロセス、イベントもしくは挙動を含むことができ、悪性コードは、電子デバイスに対して使用し得る。
【００２４】
また、検知モジュール１１８は、トレース期間を決定するためのインテリジェンスコンテキストを使用することができる。ハードコード化されたタイムアウトの代わりに、検知モジュール１１８は、トレースが十分であるとき、および保留および再開されるべきときを決定するべく、複数のコンテキスト上のトリガーを利用することができる。
【００２５】
通信システム１００は、複数のプロセスにわたり複数のイベントを監視し、複数のイベントを単一のトレースへと統合するべく構成することができる。現在の解決法は、複数のプロセスにわたる複数のイベントを統合されたトレースにまとめない。検知を回避すべく、何らかのマルウェアはシフトして、マルチコンポーネントとなるか、それらの同類の中で相互依存したペイロードを有するかのいずれかとなる。単一のプロセスまたは単一のコンポーネントからの複数のイベントは、大抵十分疑わしいアクティビティを提示しない。検知モジュール１１８は、イベントトレースを複数のプロセスにわたるコンテキストで構築し、複数の関連したコンポーネントの全体にわたり複数のイベントを組み合わせるように構成することができる。複数のプロセスの複数のイベントを統合することにより、マルウェアの機械学習および分類にも役立つ。
【００２６】
具体的な例において、複数のマルウェアイベントのトレース（例えば、マルウェアスポーニングツリー）は、複数の分岐を有することができる。プロセスＡは、プロセスＢ１およびＢ２をスポーンしてよく、Ｂ１はＣ１、Ｃ２、Ｃ３をスポーンしてよく、などである。これらのアクティビティは統合され、完全な脅威を説明し、マルウェアを検知するのに役立つ。複数のイベントはまた、分類フェーズにおける相関のためにタグ付けされ得る。分類フェーズが、潜在的な誤検出の防止に役立つことができるのは、マルウェアイベントのトレースにおける複数のプロセスのいくつかは、ミティゲーション中に良性であり得、無視される必要があり得るからである。 
【００２７】
トレースの完了は、コンテキスト上判断され得、イベント相関と、中断および再開のトレースの複数の他のトリガー条件とに基づく。例えば、低アクティビティのイベントトレースでは、トレースが、ポートからの送受信データイベントがトレースの再開のトリガーとなるまで保留されることができる。セキュリティシステムが、トレースを終了するための３０秒または６０秒のタイムアウトの間にハードコード化または事前構成された場合、セキュリティシステムは送受信データイベントを取り逃し、マルウェアを検知できないおそれがある。他の例において、単位時間レンジ内の特定のイベントの量は、トレースをいつ終了するかを決定するのに役立ち得る。
【００２８】
図１のインフラストラクチャを参照すると、例示的な実施形態による通信システム１００が示される。概して、通信システム１００は、任意のタイプまたはトポロジーのネットワークに実装することができる。ネットワーク１１４は、通信システム１００を介して伝搬する情報の複数のパケットを受信および送信する相互接続された通信パスの一連のポイントまたはノードを表す。ネットワーク１１４は、ノード間の通信インターフェースを提供し、任意のローカルエリアネットワーク（ＬＡＮ）、仮想ローカルエリアネットワーク（ＶＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、無線ローカルエリアネットワーク（ＷＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、イントラネット、エクストラネット、仮想プライベートネットワーク（ＶＰＮ）、およびネットワーク環境の複数の通信を促進する任意の他の妥当なアーキテクチャまたはシステム、あるいは、有線および／または無線通信を含む、それらの任意の好適な組み合わせとして構成されてよい。 
【００２９】
通信システム１００において、パケット、フレーム、信号、データなどを含むネットワークトラフィックは、複数の任意の好適な通信メッセージングプロトコルにより送信および受信することができる。複数の適切な通信メッセージングプロトコルは、開放型システム間相互接続（ＯＳＩ）モデル、あるいは、それの複数の任意の派生物または変種（例えば、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザデータグラムプロトコル／ＩＰ（ＵＤＰ／ＩＰ））などの多層スキームを含むことができる。加えて、セルラーネットワークを通じての複数の無線信号通信も、通信システム１００に提供されてよい。複数の適切なインターフェースおよびインフラストラクチャが提供され、セルラーネットワークとの通信を可能としてよい。
【００３０】
本明細書にて用いられる「パケット」なる用語は、  パケット交換ネットワーク上の送信元ノードと、宛先ノードとの間でルーティングされ得るデータ単位を指す。パケットは、送信元ネットワークアドレスおよび宛先ネットワークアドレスを含む。これらのネットワークアドレスは、ＴＣＰ／ＩＰメッセージングプロトコルの複数のインターネットプロトコル（ＩＰ）アドレスであり得る。本明細書にて用いられる「データ」なる用語は、任意のタイプのバイナリ、数値、音声、映像、テキストまたはスクリプトデータを指し、あるいは、任意のタイプのソースまたはオブジェクトコード、あるいは、複数の電子デバイスおよび／または複数のネットワークにてある地点から別の地点へ通信され得る任意の好適なフォーマットでの任意の他の好適な情報を指す。なお、メッセージ、リクエスト、応答およびクエリは、ネットワークトラフィックの形態であり、したがってパケット、フレーム、信号、データなどを備えてよい。
【００３１】
例示的な実装において、電子デバイス１１０およびセキュリティサーバ１１６は複数のネットワーク要素であり、これらは、ネットワークアプライアンス、サーバ、ルータ、スイッチ、ゲートウェイ、ブリッジ、ロードバランサ、プロセッサ、モジュール、あるいは、ネットワーク環境の情報を交換するべく動作可能な任意の他の好適なデバイス、コンポーネント、要素またはオブジェクトを含むことが意図される。複数のネットワーク要素は、それらの複数の動作を容易にする任意の好適なハードウェア、ソフトウェア、コンポーネント、モジュール、またはオブジェクト、ならびに、ネットワーク環境で、データまたは情報を受信、送信、および／またはそうでなければ通信するための複数の適切なインターフェースを含んでよい。これは、データまたは情報の効果的な交換を可能にする複数の適切なアルゴリズムおよび通信プロトコルを含んでよい。
【００３２】
通信システム１００に関連する内部構造に関して、電子デバイス１１０およびセキュリティサーバ１１６の各々は、本明細書で、概説される複数の動作で用いられる情報を格納するための複数のメモリ要素を含むことができる。電子デバイス１１０およびセキュリティサーバ１１６の各々は、任意の好適なメモリ要素（例えば、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、消去可能プログラム可能ＲＯＭ（ＥＰＲＯＭ）、電子的消去可能プログラム可能ＲＯＭ（ＥＥＰＲＯＭ）、特定用途向け集積回路（ＡＳＩＣ）など）、ソフトウェア、ハードウェア、ファームウェアまたは、必要に応じ且つ特定のニーズに基づき、任意の他の好適なコンポーネント、デバイス、要素、またはオブジェクトに、情報を保持してよい。本明細書にて論じられる複数のメモリアイテムのいずれも、広義の用語「メモリ要素」に包含されると解釈されるべきである。さらにまた、通信システム１００にて使用、トラッキング、送信、または受信される情報は、任意のデータベース、レジスタ、キュー、テーブル、キャッシュ、制御リスト、または他のストレージ構造に提供されることができ、それらのすべては、任意の好適なタイムフレームで参照されることができる。任意のそのようなストレージオプションはまた、本明細書中で用いられる広義の用語「メモリ要素」内に含まれてよい。 
【００３３】
特定の例示的な実装において、本明細書にて概説される複数の機能は、１または複数の有形の媒体（例えば、ＡＳＩＣで提供される埋込みロジック、デジタルシグナルプロセッサ（ＤＳＰ）命令、プロセッサによって実行されるソフトウェア（潜在的にオブジェクトコードおよびソースコードを含む）、または他の同様な機械など）にエンコードされているロジックにより実装されてよく、これらは、非一時的コンピュータ可読媒体を含み得る。これらの例のいくつかにおいて、メモリ要素は、本明細書で説明される動作のために用いられるデータを格納できる。これは、メモリ要素が、本明細書において説明する複数のアクティビティを行うべく実行されるソフトウェア、ロジック、コード、または複数のプロセッサ命令を格納できるということを含む。
【００３４】
例示的な実装において、電子デバイス１１０およびセキュリティサーバ１１６などの通信システム１００のネットワーク要素は、ソフトウェアモジュール（例えば、検知モジュール１１８）を含み、本明細書に概説されるように、複数のオペレーションを達成または促進することができる。これらのモジュールは、任意の好適なやり方にて好適に組み合わされてよく、特定の構成および／またはプロビジョニングニーズに基づいてもよい。例示的な実施形態において、そのような複数のオペレーションは、ハードウェアによって実行され、これらの要素に外部に実装され、または意図される機能を達成する何らかの他のネットワークデバイスに含まれてよい。さらにまた、複数のモジュールが、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の好適な組み合わせとして実装することができる。これらの要素はまた、本明細書で概説されるような複数のオペレーションを達成するべく、他のネットワーク要素と協調できるソフトウェア（または往復ソフトウェア）を含んでよい。 
【００３５】
更に、電子デバイス１１０およびセキュリティサーバ１１６の各々は、本明細書で説明されるようなアクティビティを行うべく、ソフトウェアまたはアルゴリズムを実行できるプロセッサを含んでよい。 プロセッサは、データに関連付けられた任意のタイプの複数の命令を実行して、本明細書において詳しく述べる複数のオペレーションを達成できる。一例において、複数のプロセッサは、要素または物（例えば、データ）を、１つの状態または物から別の状態または物へと変換できたであろう。他の例において、本明細書において概説する複数のアクティビティは、固定ロジックまたはプログラム可能ロジック（例えば、プロセッサによって実行される複数のソフトウェア／コンピュータ命令）で実施され、本明細書において特定される複数の要素は、なんらかのタイプのプログラム可能プロセッサ、プログラム可能デジタルロジック（例えば、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ）、または、デジタルロジック、ソフトウェア、コード、複数の電子命令、またはそれらの任意の好適な組み合わせを含むＡＳＩＣであり得たであろう。本明細書で説明される複数の任意の潜在的な処理要素、モジュール、および機械は、広義の用語「プロセッサ」内に包含されるように解釈されるべきである。 
【００３６】
電子デバイス１１０は、ネットワーク要素であり得、例えば、デスクトップコンピュータ、ラップトップコンピュータ、モバイルデバイス、携帯情報端末、スマートフォン、タブレット、または他の同様なデバイスを含む。セキュリティサーバ１１６は、サーバまたは仮想サーバなどのネットワーク要素であり得、何らかのネットワーク（例えば、ネットワーク１１４）を経由して通信システム１００で通信を開始したい複数のクライアント、顧客、エンドポイントまたはエンドユーザと関連することができる。「サーバ」なる用語は、通信システム１００内で複数のクライアントの複数のリクエストを供給する、および／または、複数のクライアントに代わって何らかの計算タスクを実行するべく使用されるデバイスを含む。検知モジュール１１８は、電子デバイス１１０に配置されるように図１に表わされるが、これは説明のためにすぎない。検知モジュール１１８は、任意の好適な構成にて組み合わせまたは分離することができる。さらにまた、検知モジュール１１８は、セキュリティサーバ１１６、クラウドサービス、または電子デバイス１０２によってアクセス可能な別のネットワークと一体化されるか、これに分散することができる。クラウドサービスは、インターネットなどのネットワークを通じたサービスとして提供されるコンピューティングリソースの使用として概して定義されてよい。通常、計算、記憶および複数のネットワークリソースがクラウドインフラストラクチャにて提供され、ローカルネットワークからクラウドネットワークへとワークロードを効果的にシフトする。 
【００３７】
図２を参照すると、図２は、一実施形態によるマルウェアのトレースおよび検知と関連し得るフロー２００の複数の可能なオペレーションを図示する例示的なフローチャートである。一実施形態において、フロー２００の１または複数のオペレーションが、検知モジュール１１８によって実行され得る。２０２で、プロセスが開始する。２０４で、プロセスに関連したプログラムが実行を開始する。２０６で、システムは、プログラムが監視されるべきか否かを判断する。プログラムが監視されるべきでない場合、フローは停止する。プログラムが監視されるべきである場合、２０８のように、プログラムに関連する複数のイベントがトレースされる。２１０で、システムは、ファイルがマルウェアであるか否かを判断するべく十分な複数のイベントがトレースされたか否かを判断する。十分な複数のイベントがトレースされていない、またはより多くのイベントがトレースされる必要がある場合、システムは、２０８に戻り、プログラムに関連した複数のイベントがトレースされる。十分な複数のイベントがトレースされた場合、２１２のように、トレースの複数の結果が解析される。
【００３８】
図３を参照すると、図３は、一実施形態によるマルウェアのトレースおよび検知と関連し得るフロー３００の複数の可能なオペレーションを図示する例示的なフローチャートである。一実施形態において、フロー３００の１または複数のオペレーションは、検知モジュール１１８によって実行され得る。３０２で、プログラムは、実行を開始する。３０４で、システムは、プログラムが監視されるべき特性を有するか否かを判断する。プログラムが、監視されるべき特性またはプロセスを有する場合、３１０のように、プログラムに関連するイベントがトレースされる。プログラムが監視されるべき特性またはプロセスを有さない場合、システムは、３０６のように、プログラムが監視される必要があるプログラムの子であるか否かを判断する。プログラムの子は、他のプログラムからのリクエスト、イベントまたはアクションの代わりか、これらに応答して行動する任意のプログラムまたはコードである。プログラムが、監視される必要があるプログラムの子である場合、３１０のように、（子）プログラムに関連する複数のイベントがトレースされる。プログラムが、監視される必要があるプログラムの子でない場合、３０８のように、（子プログラムを含む）プログラムに関連する複数のイベントがトレースされない。 
【００３９】
図４を参照すると、図４は、一実施形態によるマルウェアのトレースおよび検知と関連し得るフロー４００の複数の可能なオペレーションを図示する例示的なフローチャートである。一実施形態において、フロー４００の１または複数のオペレーションが、検知モジュール１１８によって実行され得る。４０２で、監視されるべきプログラムが特定される。４０４で、プログラムと関連する複数のイベントの複数のタイプが、決定される。４０６で、複数のイベントの複数のタイプに基づいて、プログラムをトレースするためのコンテンツイベントの数が決定される。システムは、マルウェアの存在を示し得る複数のイベントを監視することに関心があるので、複数のコンテンツイベント（例えば、マルウェアの存在を示し得る品質イベントまたはそれらのコンテンツイベント）はトレースされ、マルウェアの存在を示したり示さなかったりするいくつかの複数のイベントだけではない。４０８、プログラムに関連するイベントが、トレースされる。４１０で、システムは、プログラムをトレースするためのコンテンツイベントの数が満たされているか否かを判断する。プログラムをトレースするイベントの数が満たされていない場合、４０８のように、プログラムに関連するイベント（新たなイベント）がトレースされる。プログラムをトレースするイベントの数が満たされている場合、４１２のように、複数のトレースの複数の結果が解析される。
【００４０】
図５を参照すると、図５は、一実施形態によるマルウェアのトレースおよび検知と関連し得るフロー５００の複数の可能なオペレーションを図示する例示的なフローチャートである。一実施形態において、フロー３００の１または複数のオペレーションが検知モジュール１１８によって実行され得る。５０２で、監視されるべきプログラムが、特定される。５０４で、プログラムと関連する１または複数のイベントが決定される。５０６で、プログラムと関連するイベントがトレースされる。５０８で、システムは、プログラムと関連する１または複数のイベントがトレースされているか否かを判断する。プログラムと関連する複数のイベントがトレースされていない場合、５０６のように、プログラムと関連するイベント（新たなイベント）がトレースされる。プログラムと関連する複数のイベントがトレースされている場合、複数のトレースされたイベントは、５１０のように、プログラムの子に対する複数の任意のトレースされたイベントと、プログラムの親からの複数の任意のトレースされたイベントと統合される。 
【００４１】
図６を参照すると、図６は、一実施形態によるマルウェアのトレースおよび検知と関連し得るフロー６００の複数の可能なオペレーションを図示する例示的なフローチャートである。一実施形態において、フロー３００の１または複数のオペレーションは、検知モジュール１１８によって実行され得る。６０２で、プロセスが開始する。６０４で、プロセスと関連する１または複数のプログラムが実行を開始する。６０８で、１または複数のプログラムに関連する複数のイベントがトレースおよび統合される。６１０で、１または複数のプログラムのトレースが、完了する。トレースを完了することにより、複数のシステムリソースが、複数の他のプロセスによる使用のため解放される。６１２で、統合されたトレースが、正規化される。６１４で、正規化および統合されたトレースが圧縮される。６１８で、特徴ベクトルが複数の統合されたトレースに対して構成される。特徴ベクトルは、複数のトレースに関する属性の固定サイズのリストを含むことができる。６２０で、特徴ベクトルが、解析される。いくつかの例示的な実装において、複数の統合されたトレースは圧縮されず、特徴ベクトルは構成されない。
【００４２】
図７は、実施形態によるポイントツーポイント（ＰｔＰ）構成で配置されたコンピューティングシステム７００を図示する。特に、図７は、複数のプロセッサ、メモリおよび入力／出力デバイスが複数のポイントツーポイントインターフェースにより相互接続されたシステムを示す。概して、通信システム１００の１または複数のネットワーク要素は、コンピューティングシステム７００と同一または同様なやり方で構成してよい。 
【００４３】
図７に図示されるように、システム７００は、プロセッサ７７０および７８０の２つのみが明確に示されているが、いくつかのプロセッサを含んでよい。２つのプロセッサ７７０および７８０が示されているが、システム７００の一実施形態はまた、ただ１つのそのようなプロセッサを含み得ることは理解されるべきである。プロセッサ７７０および７８０はそれぞれ、一セットのコア（すなわち、プロセッサコア７７４Ａおよび７７４Ｂおよびプロセッサコア７８４Ａおよび７８４Ｂ）を含み、プログラムのマルチスレッドを実行してよい。複数のコアは、図１−４を参照して上記に論じたものと同様なやり方で命令コードを実行するように構成されてよい。各プロセッサ７７０、７８０は、少なくとも１つの共有キャッシュ７７１、７８１を含み得る。共有キャッシュ７７１、７８１は、プロセッサコア７７４および７８４などのプロセッサ７７０、７８０の１または複数のコンポーネントによって利用されるデータ（例えば、複数の命令）を格納してよい。 
【００４４】
プロセッサ７７０および７８０はそれぞれ、集積メモリコントローラロジック（ＭＣ）７７２および７８２を含み、メモリ要素７３２および７３４とも通信し得る。メモリ要素７３２および／または７３４は、プロセッサ７７０および７８０によって使用される様々なデータを格納し得る。代替の実施形態において、メモリコントローラロジック７７２および７８２は、プロセッサ７７０および７８０から分離された別個のロジックでよい。 
【００４５】
プロセッサ７７０および７８０は、任意のタイプのプロセッサであってよく、ポイントツーポイントインターフェース回路７７８および７８８を用いることで、ポイントツーポイント（ＰｔＰ）インターフェース７５０を介してデータを交換してよい。プロセッサ７７０および７８０は、ポイントツーポイントインターフェース回路７７６、７８６、７９４および７９８を用いて、個々のポイントツーポイントインターフェース７５２および７５４を介してチップセット７９０とそれぞれデータを交換してよい。チップセット７９０ｊはまた、ＰｔＰインターフェース回路であり得るインターフェース回路７９２を用いて、高性能グラフィックインターフェース７３９を介して高性能グラフィック回路７３８とデータを交換してよい。複数の代替の実施形態において、図７に図示される任意のまたはすべてのＰｔＰリンクは、１つのＰｔＰリンクではなく、マルチドロップバスとして実装されることができる。 
【００４６】
チップセット７９０はインターフェース回路７９６を介してバス７２０と通信してよい。バス７２０は、バスブリッジ７１８およびＩ／Ｏデバイス７１６などの、バスを通して通信する１または複数のデバイスを有してよい。バス７１０を介して、バスブリッジ７１８は、キーボード／マウス７１２（または、例えばタッチスクリーン、トラックボールなどの複数の他の入力デバイス）、複数の通信デバイス７２６（モデム、ネットワークインターフェースデバイス、またはコンピュータネットワーク７６０を介して通信できる他の複数のタイプの複数の通信デバイスなど）、複数のオーディオＩ／Ｏデバイス７１４、および／または、データストレージデバイス７２８などの複数の他のデバイスと通信してよい。データストレージデバイス７２８は、プロセッサ７７０および／または７８０によって実行され得るコード７３０を格納し得る。複数の代替の実施形態において、複数のバスアーキテクチャの任意の一部は、１または複数のＰｔＰリンクで実装されることができる。 
【００４７】
図７に図示されるコンピュータシステムは、本明細書において論じられる様々な実施形態を実施するべく利用され得るコンピューティングシステムの一実施形態の概略図である。図７に図示されるシステムの様々なコンポーネントは、システムオンチップ（ＳｏＣ）アーキテクチャまたは任意の他の好適な構成で組み合わせられてよいことは理解されよう。例えば、本明細書で開示される複数の実施形態は、例えば、スマートセルラーフォンなどのモバイルデバイス、タブレットコンピュータ、携帯情報端末、ポータブルゲームデバイスなどを含むシステム内に組み込まれることができる。これらのモバイルデバイスは、少なくともいくつかの実施形態でＳｏＣアーキテクチャを備えてよいことは理解されよう。 
【００４８】
図８を参照すると、図８は、本開示の例示的なＡＲＭエコシステムＳＯＣ８００に関連する簡略化されたブロック図である。本開示の少なくとも１つの例示的な実装は、本明細書において論じられているトレースおよび検知の特徴とＡＲＭコンポーネントを含むことができる。例えば、図８の例は、任意のＡＲＭコア（例えば、Ａ−９、Ａ−１５等）に関連し得る。さらに、該アーキテクチャは、任意のタイプのタブレット、スマートフォン（アンドロイド（登録商標）フォン、ｉ−Ｐｈｏｎｅ（登録商標）を含む）、ｉ−Ｐａｄ（登録商標）、Ｇｏｏｇｌｅ  Ｎｅｘｕｓ（登録商標）、Ｍｉｃｒｏｓｏｆｔ  Ｓｕｒｆａｃｅ（登録商標）、パーソナルコンピュータ、サーバ、ビデオ処理コンポーネント、ラップトップコンピュータ（任意のタイプのノートブックを含む）、ウルトラブック（登録商標）システム、任意のタイプのタッチ対応入力デバイスなどの部分であることができる。 
【００４９】
図８のこの例では、ＡＲＭエコシステムＳＯＣ８００は、複数のコア８０６−８０７、Ｌ２キャッシュ制御８０８、バスインターフェースユニット８０９、Ｌ２キャッシュ８１０、グラフィック処理ユニット（ｇｒａｐｈｉｃｓ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ（ＧＰＵ））８１５、相互接続８０２、ビデオコーデック８２０、および液晶ディスプレイ（ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ（ＬＣＤ））Ｉ／Ｆ８２５を含むことができ、これらは、ＬＣＤに結合するモバイルインダストリープロセッサインターフェース（ｍｏｂｉｌｅ  ｉｎｄｕｓｔｒｙ  ｐｒｏｃｅｓｓｏｒ  ｉｎｔｅｒｆａｃｅ（ＭＩＰＩ））／高精細度マルチメディアインターフェース（ｈｉｇｈ−ｄｅｆｉｎｉｔｉｏｎ  ｍｕｌｔｉｍｅｄｉａ  ｉｎｔｅｒｆａｃｅ（ＨＤＭＩ（登録商標）））リンクと関連付けられ得る。 
【００５０】
ＡＲＭエコシステムＳＯＣ８００は、サブスクライバアイデンティティモジュール（ＳＩＭ））Ｉ／Ｆ８３０、ブートリードオンリメモリ（ＲＯＭ））８３５、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ））コントローラ８４０、フラッシュコントローラ８４５、シリアルペリフェラルインターフェース（ｓｅｒｉａｌ  ｐｅｒｉｐｈｅｒａｌ  ｉｎｔｅｒｆａｃｅ（ＳＰＩ））マスター８５０、適切なパワー制御８５５、ダイナミックＲＡＭ（ＤＲＡＭ）８６０およびフラッシュ８６５をも含み得る。加えて、１または複数の例示的な実施形態は、１または複数の通信機能、インターフェース、ならびに、ブルートゥース（登録商標）８７０、３Ｇモデム８７５、全地球測位システム（ＧＰＳ）８８０、および８０２．１１Ｗｉ−Ｆｉ８８５の例などの特徴を含む。 
【００５１】
動作において、図８の例は、様々なタイプ（例えば、モバイル演算、ハイエンドデジタルホーム、サーバ、無線インフラストラクチャ等）の演算を可能にするために、比較的低い消費電力とともに処理能力を提供できる。加えて、そのようなアーキテクチャは、任意数のソフトウェアアプリケーション（例えば、アンドロイド（商標）、アドビ（登録商標）フラッシュ（登録商標）プレーヤ、Ｊａｖａ（登録商標）プラットフォームスタンダードエディション（Ｊａｖａ（登録商標）  ＳＥ）、Ｊａｖａ（登録商標）ＦＸ、Ｌｉｎｕｘ（登録商標）、マイクロソフトウインドウズ（登録商標）エンベデッド、シンビアンおよびウブントゥなど）を可能にすることができる。少なくとも１つの例示的な実施形態において、該コアプロセッサは、結合されている低レイテンシレベル２キャッシュでアウトオブオーダースーパースカラーパイプライン（ｏｕｔ−ｏｆ−ｏｒｄｅｒ  ｓｕｐｅｒｓｃａｌａｒ  ｐｉｐｅｌｉｎｅ）を実施することができる。 
【００５２】
図９は、一実施形態によるプロセッサコア９００を図示する。プロセッサコア９００は、コードを実行するべく、マイクロプロセッサ、エンベデッドプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、ネットワークプロセッサまたは他のデバイスなどの任意のタイプのプロセッサ用のコアであってよい。ただ１つのプロセッサコア９００が図９には図示されているが、プロセッサは、代わりに図９に図示されるプロセッサコア９００の複数を含み得る。例えば、プロセッサコア９００は、図７のプロセッサ７７０および７８０を参照して示され、説明されるプロセッサコア７７４ａ、７７４ｂ、７８４ａおよび７８４ｂの１つの例示的な実施形態を表わす。プロセッサコア９００は、シングルスレッドコアであってよく、または、少なくとも１つの実施形態に対して、プロセッサコア９００がコアごとの複数のハードウェアスレッドコンテキスト（または「論理プロセッサ」）を含み得る点で、マルチスレッドで構成されてよい。 
【００５３】
図９は、一実施形態によるプロセッサコア９００に結合されたメモリ９０２も図示する。メモリ９０２は、既知の、またはそうでなければ当業者に入手可能な、多種多様なメモリ（メモリ階層の様々なレイヤを含む）のうちのいずれかであってよい。メモリ９０２は、プロセッサコア９００によって実行される１または複数の命令でよいコード９０４を含んでよい。プロセッサコア９００は、コード９０４により示される複数の命令のプログラムシーケンスに従う。各命令は、フロントエンドロジック９０６に入り、１または複数のデコーダ９０８によってプロセスされる。デコーダは、その出力として、予め定義されたフォーマットの固定幅のマイクロオペレーションなどのマイクロオペレーションを生成してもよく、または元のコード命令を反映する他の複数の命令、マイクロ命令もしくは制御信号を生成してもよい。フロントエンドロジック９０６はまた、レジスタ改名ロジック９１０およびスケジューリングロジック９１２を含み、概してリソースを割り当て、実行用の命令に対応してオペレーションをキューイングする。
【００５４】
プロセッサコア９００は、一セットの実行ユニット９１６−１〜９１６−Ｎを有する実行ロジック９１４をも含むことができる。いくつかの実施形態は、特定の複数の機能または複数の機能セット専用の複数の実行ユニットを含んでよい。複数の他の実施形態は、特定の機能を実行し得る１つの実行ユニット、またはそのような１つの実行ユニットのみを含んでよい。実行ロジック９１４は、複数のコード命令により特定される複数の動作を実行する。 
【００５５】
複数のコード命令により特定された複数の動作の実行が完了した後、バックエンドロジック９１８はコード９０４の複数の命令をリタイアし得る。一実施形態では、プロセッサコア９００は、アウトオブオーダ実行を許可するが、複数の命令のインオーダリタイアメントを求める。リタイアメントロジック９２０は、様々な既知の形態（例えば、リオーダバッファなど）を取り得る。これにより、プロセッサコア９００は、レジスタ改名ロジック９１０により利用されるデコーダ、ハードウェアレジスタ、およびテーブルと、実行ロジック９１４により変更される任意のレジスタ（図示せず）とにより生成される出力に少なくとも関して、コード９０４の実行中に変換される。 
【００５６】
図９に図示されていないが、プロセッサは、プロセッサコア９００付きのチップ上に他の要素を含んでよく、これらの少なくともいくつかは、図７を参照して本明細書に示され、説明された。例えば、図７に示されるように、プロセッサは、プロセッサコア９００とともにメモリ制御ロジックを含み得る。プロセッサは、Ｉ／Ｏ制御ロジックを含んでよく、および／またはメモリ制御ロジックと一体化されたＩ／Ｏ制御ロジックを含み得る。 
【００５７】
本明細書で提供される例に関して、インタラクションが、２つ、３つまたはそれより多いネットワーク要素に関して説明されてよいことに留意されたい。しかしながら、これは、明確さおよび例示の目的のためだけに行われる。特定の場合、限定数のネットワーク要素を参照することのみにより所与のフローセットの１または複数の機能を説明することがより容易となり得る。通信システム１００およびその教示は、より複雑な／高機能な配置および構成と同様に、多数のコンポーネントに容易にスケーラブルであり、適応することができることは、理解すべきである。従って、提供される例は、または、無数の他のアーキテクチャに潜在的に適用されるような通信システム１００の範囲を限定せず、それの広い教示を妨げるべきでない。 
【００５８】
前述のフロー図における複数の動作（すなわち、図２−６）は、通信システム１００により、またはその内部で実行されてよい複数の可能な相関するシナリオおよびパターンのいくつかのみを図示していることに留意すべきことも重要である。これらのオペレーションのいくつかは、必要に応じて削除もしくは除去されてよく、またはこれらの動作は、本開示の範囲を逸脱することなく相当に修正もしくは変更されてもよい。加えて、複数のこれらのオペレーションは、１または複数の追加のオペレーションと同時に、またはパラレルに実行されるものとして説明された。しかしながら、これらのオペレーションのタイミングは大幅に変更されてよい。前述の複数のオペレーションフローは、例示および説明の目的のために提供された。任意の好適な配置、時系列、構成、およびタイミングメカニズムが本開示の教示を逸脱せずに提供され得る点で、通信システム１００によってかなりのフレキシビリティが提供される。 
【００５９】
本開示は、特定の配置および構成を参照して詳細に説明されているが、これらの例示的な構成および配置は、本開示の範囲を逸脱することなく相当に変更されてもよい。さらにまた、特定のコンポーネントは、特定のニーズおよび実装に基づき、組み合わせたり、分離したり、削除したり、加算されたりされ得る。なお、通信システム１００は、通信プロセスを促進する特定の要素およびオペレーションを参照して図示されているが、これらの要素およびオペレーションは、通信システム１００の意図される機能を実現する任意の好適なアーキテクチャ、プロトコルおよび／またはプロセスによって置換され得る。
【００６０】
多数の他の変更、代替、変形、改変および修正は、当業者に確認されてよく、本開示が添付された特許請求の範囲内に収まるそのような全ての変更、代替、変形、改変および修正を網羅することが意図される。米国特許商標庁（ＵＳＰＴＯ）と、更に本願に発行される任意の特許の任意の読者とが本明細書に添付された請求項を解釈するのを支援するべく、出願人は、出願人には（ａ）添付された特許請求の範囲のいずれにも、「ための手段」または「ためのステップ」なる文言が具体的に特定の請求項に用いられない限り、本願の出願日に存在する米国特許法第１１２条第６パラグラフを行使させる意図はないこと、（ｂ）明細書中の任意の説明により、添付された特許請求の範囲に別途反映されない任意の手法でこの開示を限定する意図はないことに留意することを望む。他の注釈および例
【００６１】
例Ｃ１は、プロセッサによって実行される場合、プロセッサに、プロセスに関連するプログラムが実行を開始することを決定させ、プログラムが監視されるべきであると決定される場合、プログラムに関連する複数のイベントをトレースさせ、トレースが終了する前にトレースされるべきイベントの数を決定させ、プロセスがマルウェアを含むか否かの判断に対して複数のトレースされたイベントの複数の結果を解析させる１または複数の命令を有する少なくとも１つの機械可読記憶媒体である。
【００６２】
例Ｃ２において、例Ｃ１の主題は、トレースされるべきイベントの数がプログラムのタイプに関連する場合を任意に含むことができる。 
【００６３】
例Ｃ３おいて、例Ｃ１−Ｃ２のいずれか１つの主題は、トレースされるイベントの数がプログラムのアクティビティに関連する場合を任意に含むことができる。
【００６４】
例Ｃ４おいて、例Ｃ１−Ｃ３のいずれか１つの主題は、複数の命令は、プロセッサによって実行される場合、プログラムが子プログラムを有するかプロセッサにさらに決定させる場合を任意に含むことができる。
【００６５】
例Ｃ５おいて、例Ｃ１−Ｃ４のいずれか１つの主題は、複数の命令は、プロセッサによって実行される場合、プロセッサに、プログラムが子プログラムを有するなら、トレースされるべき子イベントの数をさらに決定させる場合を任意に含むことができる。
【００６６】
例Ｃ６おいて、例Ｃ１−Ｃ５のいずれか１つの主題は、複数の命令は、プロセッサによって実行される場合、プロセッサに、複数のトレースされた子イベントをトレースされたイベントとさらに組み合わせさせる場合を任意に含むことができる。
【００６７】
例Ｃ７おいて、例Ｃ１−Ｃ６のいずれか１つの主題は、複数の命令は、プロセッサによって実行される場合、プロセッサに、プロセスがマルウェアを含むか否かの判断に対して複数のトレースされたイベントの複数の結果をさらに解析させる場合を任意に含むことができる。
【００６８】
例Ｃ８おいて、例Ｃ１−Ｃ７のいずれか１つの主題は、複数の命令は、プロセッサによって実行される場合、プロセッサにトレースの複数の結果を更なる解析のためにネットワーク要素にさらに通信させる場合を任意に含むことができる。 
【００６９】
例Ａ１において、装置は、検知モジュールを含むことができ、検知モジュールは、プロセスに関連するプログラムが実行を開始することを決定し、プログラムが監視されるべきであると決定される場合、プログラムに関連する複数のイベントをトレースし、トレースが終了する前にトレースされるべきイベントの数を決定し、プロセスがマルウェアを含むか否かの判断に対して複数のトレースされたイベントの複数の結果を解析するように構成される。
【００７０】
例Ａ２において、例Ａ１の主題は、トレースされるべきイベントの数がプログラムのタイプに関連する場合を任意に含むことができる。 
【００７１】
例Ａ３において、例Ａ１−Ａ２のいずれか１つの主題は、検知モジュールは、プログラムが子プログラムを有するか決定するようにさらに構成される場合を任意に含むことができる。 
【００７２】
例Ａ４において、例Ａ１−Ａ３のいずれか１つの主題は、検知モジュールは、プログラムが子プログラムを有するなら、トレースされるべき子イベントの数を決定するようにさらに構成される場合を任意に含むことができる。 
【００７３】
例Ａ５において、例Ａ１−Ａ４のいずれか１つの主題は、検知モジュールは、複数のトレースされた子イベントをトレースされたイベントと組み合わせるようにさらに構成される場合を任意に含むことができる。
【００７４】
例Ａ６において、例Ａ１−Ａ５のいずれか１つの主題は、トレースされるべきイベントの数が、複数のコンテキスト上のトリガーに基づく場合を任意に含むことができる。
【００７５】
例Ａ７において、例Ａ１−Ａ６のいずれか１つの主題は、トレースの複数の結果が、更なる解析のためにネットワーク要素に通信される場合を任意に含むことができる。
【００７６】
例Ｍ１は、プロセスに関連するプログラムが実行を開始したことを決定する段階と、プログラムが監視されるべきであると決定される場合、プログラムに関連する複数のイベントをトレースする段階と、トレースが終了する前にトレースされるべきイベントの数を決定する段階と、プロセスがマルウェアを含むか否かの判断に対して複数のトレースされたイベントの複数の結果を解析する段階とを含む方法である。
【００７７】
例Ｍ２において、例Ｍ１の主題は、トレースされるべきイベントの数が、プログラムのタイプに関連する場合を任意に含むことができる。
【００７８】
例Ｍ３において、例Ｍ１−Ｍ２のいずれか１つの主題は、プログラムが、子プログラムを有するか否かを判断する段階を任意に含むことができる。
【００７９】
例Ｍ４において、例Ｍ１−Ｍ３のいずれか１つの主題は、プログラムが子プログラムを有するなら、トレースされるべき子イベントの数を決定する段階を任意に含むことができる。
【００８０】
例Ｍ５において、例Ｍ１−Ｍ４のいずれか１つの主題は、複数のトレースされた子イベントを複数のトレースされたイベントと組み合わせる段階を任意に含むことができる。
【００８１】
例Ｍ６において、例Ｍ１−Ｍ５のいずれか１つの主題は、複数のトレースされたイベントの複数の結果を解析する段階と、複数の結果をセキュリティサーバに送信する段階を任意に含むことができる。
【００８２】
例Ｍ７において、例Ｍ１−Ｍ６のいずれか１つの主題は、トレースされるべきイベントの数が、複数のコンテキスト上のトリガーに基づく場合を任意に含むことができる。
【００８３】
例Ｓ１は、マルウェアのトレースおよび検知のためのシステムであって、そのシステムは、プロセスに関連するプログラムが実行を開始することを決定し、プログラムが監視されるべきであると決定される場合、プログラムに関連する複数のイベントをトレースし、トレースが終了する前にトレースされるべきイベントの数を決定し、トレースされるべきイベントの数がプログラムのタイプに関連し、複数のトレースされたイベントと、プロセスに関連する複数の他のプログラムからの複数のイベントとを組み合わせ、複数の組み合わせられたトレースされたイベントと、複数の他のプログラムからの複数のイベントとの複数の結果とをプロセスがマルウェアを含むか否かの判断に対して解析する、ように構成された検知モジュールを含む。
【００８４】
例Ｓ２において、例Ｓ１の主題は、トレースされるべきイベントの数は、複数のコンテキスト上のトリガーに基づく場合を任意に含むことができる。 
【００８５】
例Ｓ３において、例Ｓ１−Ｓ２のいずれか１つの主題は、プログラムが子プログラムか決定し、プログラムが子プログラムを有するなら、トレースされるべき子イベントの数を決定し、複数のトレースされた子イベントと、トレースされた複数のイベントとを組み合わせ、プロセスがマルウェアを含むか否かの判断に対して複数のトレースされたイベントの複数の結果を解析するようにさらに構成される検知モジュールを任意に含むことができる。
【００８６】
例Ｘ１は、例Ａ１−Ａ７またはＭ１−Ｍ７のいずれか１つのような方法を実施する、または装置を実現する機械可読命令を含む機械可読記憶媒体である。例Ｙ１は、方法の例Ｍ１−Ｍ７のいずれか１つを実行する手段を備える装置である。例Ｙ２において、例Ｙ１の主題は、プロセッサおよびメモリを備える方法を実行する手段を任意に含むことができる。例Ｙ３において、例Ｙ２の主題は、複数の機械可読命令を備えたメモリを任意に含むことができる。 
【図１】
2017522641.tif 000003
【図２】
2017522641.tif 000004
【図３】
2017522641.tif 000005
【図４】
2017522641.tif 000006
【図５】
2017522641.tif 000007
【図６】
2017522641.tif 000008
【図７】
2017522641.tif 000009
【図８】
2017522641.tif 000010
【図９】
2017522641.tif 000011
【手続補正書】
【提出日】平成28年12月28日(2016.12.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセスに関連するプログラムが実行を開始することを決定する手順と、
前記プログラムが監視されるべきであると決定される場合、前記プログラムに関連する複数のイベントをトレースする手順と、
前記トレースが終了する前にトレースされるべきイベントの数を決定する手順と、
前記プロセスがマルウェアを含むか否かの判断に対してトレースされた前記複数のイベントの複数の結果を解析する手順と
をコンピュータに実行させるプログラム。
【請求項２】
トレースされるべきイベントの数が、前記プログラムのタイプに関連する、請求項１に記載のプログラム。
【請求項３】
トレースされるイベントの数が、前記プログラムのアクティビティに関連する、
請求項１または２に記載のプログラム。
【請求項４】
前記プログラムが子プログラムを有するか決定する手順を前記コンピュータにさらに実行させる、請求項１から３のいずれか一項に記載のプログラム。
【請求項５】
前記プログラムが前記子プログラムを有するなら、トレースされるべき子イベントの数を決定する手順を前記コンピュータにさらに実行させる、請求項４に記載のプログラム。
【請求項６】
複数のトレースされた子イベントをトレースされたイベントと組み合わせる手順を前記コンピュータにさらに実行させる、請求項５に記載のプログラム。
【請求項７】
トレースされるべきイベントの数が、複数のコンテキスト上のトリガーに基づく、請求項１から６のいずれか一項に記載のプログラム。
【請求項８】
前記トレースの複数の結果を更なる解析のためにネットワーク要素に通信する手順を前記コンピュータにさらに実行させる、請求項７に記載のプログラム。
【請求項９】
検知モジュールを備える装置であって、前記検知モジュールは、
プロセスに関連するプログラムが実行を開始することを決定し、
前記プログラムが監視されるべきであると決定される場合、前記プログラムに関連する複数のイベントをトレースし、
前記トレースが終了する前にトレースされるべきイベントの数を決定し、
前記プロセスがマルウェアを含むか否かの判断に対して複数の前記トレースされたイベントの複数の結果を解析する、装置。
【請求項１０】
トレースされるべきイベントの数は、プログラムのタイプに関連する、請求項９に記載の装置。
【請求項１１】
前記検知モジュールは、前記プログラムが子プログラムを有するか否かを判断する、請求項９または１０に記載の装置。
【請求項１２】
前記検知モジュールは、前記プログラムが子プログラムを有するなら、トレースされるべき子イベントの数を決定する、請求項１１に記載の装置。
【請求項１３】
前記検知モジュールは、前記複数のトレースされた子イベントをトレースされた前記イベントと組み合わせる、請求項１２に記載の装置。
【請求項１４】
トレースされるべきイベントの数が、複数のコンテキスト上のトリガーに基づく、請求項９から１３のいずれか一項に記載の装置。
【請求項１５】
前記トレースの前記複数の結果が、更なる解析のためにネットワーク要素に通信される、
請求項９から１４のいずれか一項に記載の装置。
【請求項１６】
プロセスに関連するプログラムが実行を開始していることを決定する段階と、
前記プログラムが監視されるべきであると決定される場合、前記プログラムに関連する複数のイベントをトレースする段階と、
前記トレースが終了する前にトレースされるべきイベントの数を決定する段階と、
前記プロセスがマルウェアを含むか否かの判断に対して複数の前記トレースされたイベントの複数の結果を解析する段階と、
を備える方法。
【請求項１７】
トレースされるべきイベントの数が、前記プログラムのタイプに関連する、
請求項１６に記載の方法。
【請求項１８】
前記プログラムが、子プログラムを有するか否かを判断する段階をさらに備える、請求項１６または１７に記載の方法。
【請求項１９】
前記プログラムが前記子プログラムを有するなら、トレースされるべき子イベントの数を決定する段階をさらに備える、請求項１８に記載の方法。
【請求項２０】
前記複数のトレースされた子イベントをトレースされた前記イベントと組み合わせる段階をさらに備える、請求項１９に記載の方法。
【請求項２１】
前記トレースされたイベントの結果を解析する段階と、
前記複数の結果をセキュリティサーバに送信する段階と
をさらに備える請求項１６から２０のいずれか一項に記載の方法。
【請求項２２】
トレースされるべきイベントの数が、複数のコンテキスト上のトリガーに基づく、請求項１６から２１のいずれか一項に記載の方法。
【請求項２３】
マルウェアのトレースおよび検知のためのシステムであって、前記システムは、
プロセスに関連するプログラムが実行を開始することを決定し、
前記プログラムが監視されるべきであると決定される場合、前記プログラムに関連する複数のイベントをトレースし、
前記トレースが終了する前にトレースされるべきイベントの数を決定し、トレースされるべきイベントの数は前記プログラムのタイプに関連し、
複数の前記トレースされたイベントと、前記プロセスに関連する複数の他のプログラムからの複数のイベントとを組み合わせ、
複数の組み合わせられた前記トレースされたイベントと複数の他のプログラムからの複数のイベントとの複数の結果を、前記プロセスがマルウェアを含むか否かの判断に対して解析する
検知モジュールを備えるシステム。
【請求項２４】
トレースされるべきイベントの数は、複数のコンテキスト上のトリガーに基づく、請求項２３に記載のシステム。
【請求項２５】
検知モジュールは、前記プログラムが子プログラムを有するか否かを判断し、前記プログラムが子プログラムを有するなら、トレースされるべき子イベントの数を決定し、前記複数のトレースされた子イベントと、トレースされた前記イベントとを組み合わせる、
請求項２３または２４に記載のシステム。
【請求項２６】
請求項１から８のいずれか一項に記載のプログラムを格納するコンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
電子デバイス１１０は、ネットワーク要素であり得、例えば、デスクトップコンピュータ、ラップトップコンピュータ、モバイルデバイス、携帯情報端末、スマートフォン、タブレット、または他の同様なデバイスを含む。セキュリティサーバ１１６は、サーバまたは仮想サーバなどのネットワーク要素であり得、何らかのネットワーク（例えば、ネットワーク１１４）を経由して通信システム１００で通信を開始したい複数のクライアント、顧客、エンドポイントまたはエンドユーザと関連することができる。「サーバ」なる用語は、通信システム１００内で複数のクライアントの複数のリクエストを供給する、および／または、複数のクライアントに代わって何らかの計算タスクを実行するべく使用されるデバイスを含む。検知モジュール１１８は、電子デバイス１１０に配置されるように図１に表わされるが、これは説明のためにすぎない。検知モジュール１１８は、任意の好適な構成にて組み合わせまたは分離することができる。さらにまた、検知モジュール１１８は、セキュリティサーバ１１６、クラウドサービス、または電子デバイス１０２によってアクセス可能な別のネットワークと一体化されるか、これに分散することができる。クラウドサービスは、インターネットなどのネットワークを通じたサービスとして提供されるコンピューティングリソースの使用として概して定義されてよい。通常、計算、記憶および複数のネットワークリソースがクラウドインフラストラクチャにて提供され、ローカルネットワークからクラウドネットワークへとワークロードを効果的にシフトする。
【国際調査報告】
2017522641.tif 000012
2017522641.tif 000013
2017522641.tif 000014