(57)【要約】  悪意のある呼び出しを軽減するための例示的な実施形態において、複数のシステムおよび方法が提供される。システムは、ファイルに対する一連の複数のチェックサムを判断し、一連の複数のチェックサムを、各々が既知のマルウェアのファジーチェックサムを含む複数のノードを含むチェックサムツリーと比較し、１または複数の分類をファイルに割り当てるように構成され得、１または複数の分類の各々は、一連の複数のチェックサムにおける１つのチェックサムと一致し、ファイルがマルウェアまたは害のない複数のチェックサムを含むか否かを判断するチェックサムツリーの各ノードに基づく。
2017520828.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサにより実行されると、
ファイルに対する一連の複数のチェックサムを判断し、
前記一連の複数のチェックサムを、各々が既知のマルウェアのファジーチェックサムを含む複数のノードを含むチェックサムツリーと比較し、
１または複数の分類を前記ファイルに割り当てる１または複数の命令を備え、
前記１または複数の分類の各々は、前記一連の複数のチェックサムにおける１つのチェックサムと一致する前記チェックサムツリーの各ノードに基づく、少なくとも１つのコンピュータ可読媒体。
【請求項２】
パーセンテージは、前記１または複数の分類の各々に割り当てられる、請求項１に記載の少なくとも１つのコンピュータ可読媒体。
【請求項３】
前記複数のノードの各ノードは、既知の害のない複数のファイルのファジーチェックサムを含む、請求項１または２に記載の少なくとも１つのコンピュータ可読媒体。
【請求項４】
前記少なくとも１つのプロセッサにより実行されると、前記一連の複数のチェックサムを複数のチェックサムツリーと比較する１または複数の命令を更に備える、請求項１〜３のいずれか１項に記載の少なくとも１つのコンピュータ可読媒体。
【請求項５】
前記少なくとも１つのプロセッサにより実行されると、
前記ファイルに対する１または複数の特性を判断し、
前記ファイルの前記１または複数の特性に基づいて、前記ファイルと比較するための少なくとも１つのチェックサムツリーを判断する１または複数の命令を更に備える、請求項１〜４のいずれか１項に記載の少なくとも１つのコンピュータ可読媒体。
【請求項６】
前記少なくとも１つのプロセッサにより実行されると、
前記ファイルに割り当てられた前記１または複数の分類に基づいて、前記ファイルがマルウェアであるか否かを判断する１または複数の命令を更に備える、請求項１〜５のいずれか１項に記載の少なくとも１つのコンピュータ可読媒体。
【請求項７】
前記少なくとも１つのプロセッサにより実行されると、
前記１または複数の分類の各々にパーセンテージを割り当て、
各々の割り当てられたパーセンテージが閾値未満である場合、更なる分析のために複数のクラウドサービスに前記ファイルを送信する１または複数の命令を更に備える、請求項１〜６のいずれか１項に記載の少なくとも１つのコンピュータ可読媒体。
【請求項８】
前記少なくとも１つのプロセッサにより実行されると、
前記ファイルチェックサムと比較するべく用いられる新たなチェックサムツリーを受信する１または複数の命令を更に備える、請求項１〜７のいずれか１項に記載の少なくとも１つのコンピュータ可読媒体。
【請求項９】
ファイルに対する一連の複数のチェックサムを判断して、前記一連の複数のチェックサムを、各々が既知のマルウェアのファジーチェックサムを含む複数のノードを含むチェックサムツリーと比較するように構成されたチェックサムモジュールと、
１または複数の分類を前記ファイルに割り当てるように構成された分類モジュールとを備え、
前記１または複数の分類の各々は、前記一連の複数のチェックサムにおける１つのチェックサムと一致する前記チェックサムツリーの各ノードに基づく、装置。
【請求項１０】
パーセンテージは、前記１または複数の分類の各々に割り当てられる、請求項９に記載の装置。
【請求項１１】
前記複数のノードの各ノードは、既知の害のない複数のファイルのファジーチェックサムも含む、請求項９または１０に記載の装置。
【請求項１２】
複数のチェックサムツリーを含むツリーモジュールを更に備え、
前記チェックサムモジュールは、前記一連の複数のチェックサムを複数のチェックサムツリーと比較する、請求項９〜１１のいずれか１項に記載の装置。
【請求項１３】
前記チェックサムモジュールは、更に、前記ファイルに対する１または複数の特性を判断し、
前記ファイルの前記１または複数の特性に基づいて、前記ファイルと比較するための少なくとも１つのチェックサムツリーを判断するように構成される、請求項９〜１２のいずれか１項に記載の装置。
【請求項１４】
前記分類モジュールは、更に、前記ファイルに割り当てられた前記１または複数の分類に基づいて、前記ファイルがマルウェアであるか否かを判断するように構成される、請求項９〜１３のいずれか１項に記載の装置。
【請求項１５】
前記分類モジュールは、更に、前記１または複数の分類の各々にパーセンテージを割り当てるように構成される、請求項９〜１４のいずれか１項に記載の装置。
【請求項１６】
前記ファイルチェックサムと比較するべく用いられる新たなチェックサムツリーを受信するための更新モジュールを更に備える、請求項９〜１５のいずれか１項に記載の装置。
【請求項１７】
ファイルに対する一連の複数のチェックサムを判断する段階と、
前記一連の複数のチェックサムを、各々が既知のマルウェアのファジーチェックサムを含む複数のノードを含むチェックサムツリーと比較する段階と、
１または複数の分類を前記ファイルに割り当てる段階とを備え、
前記１または複数の分類の各々は、前記一連の複数のチェックサムにおける１つのチェックサムと一致する前記チェックサムツリーの各ノードに基づく、方法。
【請求項１８】
パーセンテージは、前記１または複数の分類の各々に割り当てられる、請求項１７に記載の方法。
【請求項１９】
前記複数のノードの各ノードは、既知の害のない複数のファイルのファジーチェックサムも含む、請求項１７または１８に記載の方法。
【請求項２０】
前記一連の複数のチェックサムを複数のチェックサムツリーと比較する段階を更に備える、請求項１７〜１９のいずれか１項に記載の方法。
【請求項２１】
前記ファイルに対する１または複数の特性を判断する段階と、
前記ファイルの前記１または複数の特性に基づいて、前記ファイルと比較するための少なくとも１つのチェックサムツリーを判断する段階とを更に備える、請求項１７〜２０のいずれか１項に記載の方法。
【請求項２２】
前記ファイルに割り当てられた前記１または複数の分類に基づいて、前記ファイルがマルウェアであるか否かを判断する段階を更に備える、請求項１７〜２１のいずれか１項に記載の方法。
【請求項２３】
前記１または複数の分類の各々にパーセンテージを割り当てる段階と、
各々の割り当てられたパーセンテージが閾値未満である場合、更なる分析のために複数のクラウドサービスに前記ファイルを送信する段階とを更に備える、請求項１７〜２２のいずれか１項に記載の方法。
【請求項２４】
マルウェアを軽減するためのシステムであって、
ファイルに対する一連の複数のチェックサムを判断するためのチェックサムモジュールと、
前記一連の複数のチェックサムを、各々が既知のマルウェアのファジーチェックサムを含む複数のノードを含むチェックサムツリーと比較するための分類モジュールとを備え、
前記分類モジュールは、１または複数の分類の前記ファイルへの割り当ても行い、前記１または複数の分類の各々は、前記一連の複数のチェックサムにおける１つのチェックサムに一致する前記チェックサムツリーの各ノードに基づき、
パーセンテージは、前記１または複数の分類の各々に割り当てられる、システム。
【請求項２５】
前記チェックサムモジュールは、前記ファイルの１または複数の特性に基づいて、前記ファイルと比較するための少なくとも１つのチェックサムツリーを判断する、請求項２４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１４年６月２７日に出願された「Ｍｉｔｉｇａｔｉｏｎ  ｏｆ  Ｍａｌｗａｒｅ」という名称の米国非仮特許出願第１４／３１８，４０６号に対する優先権を主張し、これは参照により本明細書に組み込まれる。
【０００２】
本開示は、概ね情報セキュリティの分野に関し、より具体的にはマルウェアの軽減に関する。
【背景技術】
【０００３】
ネットワークセキュリティの分野は、今日の社会においてますます重要になってきている。インターネットは、世界中で異なるコンピュータネットワークの相互接続を可能とした。具体的には、インターネットは、様々なタイプのクライアントデバイスを介して異なるコンピュータネットワークに接続される異なるユーザ間でデータを交換するための媒体を提供する。インターネットの使用がビジネスおよび個人の通信を一変させつつ、インターネットは、悪意のオペレータがコンピュータおよびコンピュータネットワークへの許可されないアクセスを得るための媒体、および機密情報を意図的または誤って開示してしまう媒体としても用いられている。
【０００４】
ホストコンピュータに感染する悪意のあるソフトウェア（「マルウェア」）は、機密情報をホストコンピュータと関連付けられたビジネスまたは個々人から盗み、他のホストコンピュータへと伝播させ、および／またはサービス拒否攻撃の分散を支援し、スパムもしくは悪意のある電子メールをホストコンピュータから送信する等のような任意の数の悪意のある行為を実行することができる場合がある。したがって、コンピュータおよびコンピュータネットワークの悪意のあるソフトウェアによる悪意がある誤った使用からの保護については、重大な管理上の問題が残る。
【図面の簡単な説明】
【０００５】
本開示、ならびにその機能および利点についてのより完全な理解を提供するべく、添付の図面と併せて以下の説明を参照する。同一の符号は、同一の部品を表す。
【０００６】
【図１】本開示の一実施形態によるネットワーク環境においてマルウェアを軽減するための通信システムの簡略ブロック図である。
【０００７】
【図２】本開示の一実施形態によるネットワーク環境における検出モジュールの簡略ブロック図である。
【０００８】
【図３】本開示の一実施形態によるネットワーク環境におけるコンパイラモジュールの簡略ブロック図である。
【０００９】
【図４】本開示の一実施形態によるネットワーク環境におけるネットワーク検出モジュールの簡略ブロック図である。
【００１０】
【図５】本開示の一実施形態による実行可能ファイルレイアウトの簡略ブロック図である。
【００１１】
【図６Ａ】本開示の一実施形態による複数のチェックサムツリーの簡略ブロック図である。
【図６Ｂ】本開示の一実施形態による複数のチェックサムツリーの簡略ブロック図である。
【００１２】
【図７】本開示の一実施形態に関連し得る潜在的な複数の動作を図示する簡略フロー図である。
【００１３】
【図８】本開示の一実施形態に関連し得る潜在的な複数の動作を図示する簡略フロー図である。
【００１４】
【図９】本開示の一実施形態に関連し得る潜在的な複数の動作を図示する簡略フロー図である。
【００１５】
【図１０】本開示の一実施形態に関連し得る潜在的な複数の動作を図示する簡略フロー図である。
【００１６】
【図１１】本開示の一実施形態によるファイルチェックサムの簡略ブロック図である。
【００１７】
【図１２】一実施形態によるポイントツーポイント構成で配置される例示的なコンピューティングシステムを図示するブロック図である。
【００１８】
【図１３】本開示の例示的なＡＲＭエコシステムのシステムオンチップ（ＳＯＣ）に関連する簡略ブロック図である。
【００１９】
【図１４】一実施形態による例示的なプロセッサコアを図示するブロック図である。
【００２０】
図面における複数の図は、必ずしも縮尺して描かれないので、それらの大きさは、本開示の範囲を逸脱することなく、大幅に変更され得る。
【発明を実施するための形態】
【００２１】
図１は、ネットワーク環境においてマルウェアを軽減することを支援する通信システム１００の簡略ブロック図である。通信システム１００は、電子デバイス１０２、セキュリティサーバ１０６、および複数のクラウドサービス１０８を含み得る。電子デバイスは、検出モジュール１１０を含み得る。セキュリティサーバ１０６は、コンパイラモジュール１１２およびネットワーク検出モジュール１１４を含み得る。複数のクラウドサービス１０８は、コンパイラモジュール１１２およびネットワーク検出モジュール１１４も含み得る。悪意のあるデバイス１０４は、マルウェアを電子デバイス１０２に導くことを試み得る。電子デバイス１０２、悪意のあるデバイス１０４、セキュリティサーバ１０６、および複数のクラウドサービス１０８は、ネットワーク１７０を介して接続され得る。一例において、悪意のあるデバイス１０４は、（例えば、ユニバーサルシリアルバス（ＵＳＢ）タイプの接続を介して）電子デバイス１０２に物理的に接続され得る。
【００２２】
例示的な実施形態において、通信システム１００は、機械学習トレーニングを用いて１または複数のチェックサムツリーの形態の分類インテリジェンスを生成することにより、悪意のあるデバイス１０４からの既知のマルウェアの脅威および新しいマルウェアバリアントの脅威に対抗するように構成され得る。コンパイラモジュール１１２を用いて、通信システム１００は、ファイル毎の一連の複数のファジーチェックサム（悪意のあるものおよび安全なものの双方）を決定し、完全なトレーニングのセットについて複数のチェックサムの全体的出現率を追跡し得る。次に、コンパイラモジュール１１２は、最も出現する一連のチェックサムのチェックサムツリーを生成し得る。チェックサムツリーは、幾何学的特性（ファイルの大きさ、エントロピ、セクションの数等）または動作特性（アンパックを実行し、Ｗｉｎｌｎｅｔ  ＡＰＩを呼び出す等）のような任意の追加のファイル特性により拡大され得る。ランタイムにおいて、検出モジュール１１０を用いて、チェックサムツリーは解釈され得、ファイルに対するチェックサムは、ファイルの各々の（論理的）ファイル位置またはサブ文字列において計算され得、ファイルに対するチェックサムは、チェックサムツリーのツリーノード内に格納される複数のチェックサムと比較され得る。「論理的」ファイル位置は、例えば、実行可能ファイルのエントリポイントエリア、実行可能ファイルのコードセクションの終わり等であり得る。一致するノードを介して到達したチェックサムツリーの任意の分類ノードまたはリーフは、記憶されて、分類を割り当てられ得る。検出モジュール１１０は、生じた複数の個別の分類にわたって統計的投票を実行するように構成され得る（例えば、９０％の確率でファイルがＷｉｎ３２．ＩＲＣＢｏｔを含む、８０％の確率でファイルがＷｉｎ３２．ＦａｋｅＡｌｅｒｔ．Ｂを含む等、生じた一連の複数の一致を識別する）。
【００２３】
全体としての検出の確率が構成可能な閾値未満（例えば、９０％未満）である場合、検出モジュール１１０は、予め定義されたより詳細な一連の複数のファジーチェックサムをスキャン済みファイルから算出し、一連の複数のファジーチェックサムをシリアル化して特徴ベクトルとし、特徴ベクトルをセキュリティサーバ１０６または複数のクラウドサービス１０８に送信し得、より広範な分類チェックサムツリーがネットワーク検出モジュール１１４において利用可能であり、ファイルのより正確な分類決定が行われ得る。「特徴ベクトル」という用語は、ファイル毎のチェックサム等、複数の属性の固定された大きさのリストを含む。検出モジュール１１０、コンパイラモジュール１１２、およびネットワーク検出モジュール１１４は、（高いスキャン性能および合理的な低いメモリフットプリントを必要とする）オンプレミスシステムまたは複数のネットワークスキャナ、および顕著により大きい分類データをホストするべく、より大規模の専用ハードウェアに依存し得る複数のクラウドサービスにわたって分散され得る。特徴ベクトルのファイルデータをネットワーク検出モジュール１１４に提供することにより、コンパイラモジュール１１２が、規則正しい間隔で検出モジュール１１０およびネットワーク検出モジュール１１４を動的にチューニングおよび再トレーニングすることを可能にする。データプライバシーは、クラウドサービス１０８およびセキュリティサーバ１０６に提出される複数の不可逆的ファジーチェックサムのベクトルとしてのみサポートされ、元のファイル、その任意のサブ文字列、またはそのソースＵＲＬは、提出される必要はない。
【００２４】
図１の複数の要素は、任意の好適な複数の接続（有線または無線）を使用する１または複数のインターフェースを介して互いに結合され、それにより複数のネットワーク通信のための発展し得る経路を提供し得る。更に、図１におけるこれらの要素のうち任意の１または複数のものは、必要とされる特定の構成に基づいて組み合わされ、またはアーキテクチャから除去され得る。通信システム１００は、ネットワークにおいて複数のパケットを送信または受信するための伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）通信を行うことができる構成を含み得る。また、通信システム１００は、適切である場合に、特定の必要性に基づいて、ユーザデータグラムプロトコル／ＩＰ（ＵＤＰ／ＩＰ）またはその他の好適なプロトコルと共に動作し得る。
【００２５】
通信システム１００の特定の例示的な複数の技術を図示する目的のために、ネットワーク環境を横断し得る通信を理解することが重要である。以下の基本的情報は、本開示が適切に説明される基礎として示され得る。
【００２６】
インターネットへのアクセスの増大は、インフォームドコンセントなしに複数のユーザの個人情報を取り込み、またはユーザの認識およびインフォームドコンセントなしに複数のコンピュータを破損するソフトウェアプログラムの到達範囲を大きくするという意図しない影響を有している。本明細書において用いられるマルウェアという用語は、ソフトウェアプログラムに対する動機に関係なく、また所有者のデバイス、システム、ネットワーク、またはデータ上でソフトウェアプログラムにより生じた結果に関係なく、所有者のインフォームドコンセントなしに、コンピュータシステムに潜入し、変形させ、変更し、破損させ、または損害を与えるように設計された任意のタイプのソフトウェアプログラムを含む。
【００２７】
マルウェアの存在を検出することを試みるべく、様々なセキュリティプログラムが用いられ得る。いくつかの例において、セキュリティプログラムは、ファイルがマルウェアであるか、またはこれを含むか否かを判断するべく検証されるファイルにおいて署名を検出することに依存する。いくつかの例において、セキュリティプログラムは、ファイルがマルウェアであるか否かを判断するべく、チェックサムベースの方法を用い得る。しかし、マルウェアの複数の作成者は、署名またはチェックサムの方法による検出を逃れるべくマルウェアファイルの一部を頻繁に変更する。既知のマルウェアの新たな複数のバリアントは、署名またはチェックサムベースの検出を逃れ、複数の更新済み検出署名またはチェックサムを作成して提供する際の遅延を利用するべく、短時間の間隔内で再パックまたはコンパイルすることにより作成され得る。
【００２８】
セキュリティプログラムの複数のベンダは、より汎用的でよりヒューリスティックな検出を用いることにより増大した量の新たな複数のマルウェアバリアントおよびサンプルに対抗することを試みる。しかし、汎用的検出は、適切な検出を提供するべく、１つの、または大抵の場合には少なくとも２つのマルウェアバリアントの手動による分析を必要とするという欠陥を有する。更に、ヒューリスティックな検出は、誤検知の欠陥を有する。
【００２９】
図１に概説されるように、マルウェアを軽減するための通信システムは、これらの問題（および他の問題）を解決し得る。図１の通信システム１００において、悪意のあるデバイス１０４からのマルウェアの脅威および新しいマルウェアバリアントの脅威に対抗するべく、システムは、複数のファジーチェックサムのチェックサムツリーを用いて、新たな複数のマルウェアバリアント（または「ゼロデイ」のマルウェアバリアント）からのプロアクティブな保護を実装し得る。マルウェアファミリの再コンパイルまたは再パッケージ化された複数のバリアント、または前のマルウェアファミリからの複数のコンポーネントを再利用する新たなマルウェアは、汎用的方式で検出され、従来のリアクティブなアプローチにおいて犠牲にされるマルウェアの第１の複数の犠牲者（または「患者第１号」）を含む、全てのユーザを保護し得る。
【００３０】
通信システム１００は、チェックサムツリーにおいて複数のファジーローリングチェックサムを用いて新たな、または「ゼロデイ」のマルウェアを検出することにより、マルウェアを軽減することを支援するように構成され得る。「ファジー」は、チェックサムが、最初に計算されたデータの同一の部分にぴったり一致しないが、小さいか、または比較的小さい編集距離を有する近親者においてやはり一致することを意味する。「ローリング」は、チェックサムの比較が合理的位置独立の態様で実行されることを意味する。従って、処理は、コードをエントロピグラフに変換することにより、あまりにも多くの情報を除外し、および／またはマルウェアの深い分解、対抗、および理解を必要とする以前の複数の方法より正確でファイルフォーマットにより依存しないものになり得る。マルウェア検出は、検出率対誤り率対メモリフットプリント対スキャン性能比率等の様々な態様に対してスケーラブルであり得、各態様は、ファイル毎に用いられるチェックサムの数、ローリングチェックサムの比較において許容される位置の偏差、およびチェックサムの一致毎に割り当てられるパーセンテージもしくはスコア（例えば、ベイズスコアもしくはいくつかの他の類似のタイプのスコア）を変更することにより、複数のアルゴリズム変更なしで、ランタイムで制御され得る。マルウェア検出は、既存の既知の複数のマルウェアバリアントおよびコンポーネントに対する新たな未知のマルウェアの最も近い関係を識別する一連の複数のファジーチェックサムを含み得る。結果として、マルウェアバリアントＭ１において計算されたチェックサムは、たとえマルウェアバリアントＭ１が新たなコードで拡張され、コードが除去され、再コンパイルまたは再パッケージ化される等であっても、派生Ｍ２になおも一致する可能性がある。
【００３１】
マルウェアの検出は、ローカルにインストールされた「オンプレミス」ネットワークスキャナで第１の「ダウンセレクション」を実行し、次に、最初の一致で詳細な分類を接続された複数のクラウドサービスまたはサーバに、特徴ベクトルとしてオフロードする等、複数のシステムにわたって段階化された態様で機能し得る。特徴ベクトルの大きさは固定されているので、検出モジュールは、複数のクラウドサービス（またはセキュリティサーバ）におけるネットワーク検出モジュールによる完全な分析に必要とされる特徴ベクトルを比較的容易に計算し得る。検出モジュールは、特徴ベクトルを複数のクラウドサービス（またはセキュリティサーバ）に送信し得、特徴ベクトルにおける複数のチェックサムは、複数のクラウドサービス（またはセキュリティサーバ）内に位置するより大きなチェックサムツリーと比較され得る。これにより、システムが精度を犠牲にする必要なく、ローカルデバイス（例えば、電子デバイス１０２）のデータフットプリントを小さく保つことを可能にする。検出率と誤検知率との間の比率は、マルウェアを検出するのに必要とされる一連の複数のチェックサムの大きさに基づいて、所望のように構成され得る。例えば、アグレッシブな検出は、４つのチェックサムのみがファイル毎に一致することを要求し得るが、より正確な検出は、３２個のチェックサムが一致することを要求し得る等である。
【００３２】
更に、チェックサムを算出して比較するのに必要とされるＣＰＵサイクルの量は、チェックサムの範囲の大きさ（例えば、２５６バイト）に関連するものであり、そのような範囲の数は、ファイル毎に固定され得る（例えば、用いられる特徴ベクトルの大きさに対して固定される）。ファイルの大きさも、分類データベースの大きさも、（非常に小さいＩ／Ｏ関連の部分を除き）性能にあまり影響を有しない。処理は、Ｏ（１）の性能特性を提供し得るが、従来のフルファイルハッシュベースの検出リストは、Ｏ（ｎ＋ｌｏｇ  ｍ）の性能特性（例えば、ファイルの大きさ×リストの大きさ）を有する。「Ｏ（１）」という用語は、性能が固定されており、スキャン済みファイルの大きさも、チェックサムツリーの大きさも性能に影響を与えないことを意味する。小さいファイルが小さいデータベースに対してスキャンされるか、または膨大なファイルが膨大なデータベースに対してスキャンされるかに関係なく、性能は、大体において、常に同一である。「Ｏ（ｎ＋ｌｏｇ  ｍ）」という用語は、性能が、スキャン済みファイルの大きさ（ｎは、ファイルの大きさを表す）およびｌｏｇ  ｍであるツリーの大きさの双方に依存することを意味する。ツリーのノードの総数およびルックアップ性能を表す「ｍ」という用語は、シーケンシャルなリストではなくソートされたツリー（例えば、「赤と黒の」バイナリツリー）として格納されるので、ｍの対数である。
【００３３】
また、システムは、各々が関係の確率を有する複数のファミリ関係のリストの提供を可能にし得る。すなわち、単一の検出名をただ返すのではなく、システムは、"Ｗｉｎ３２．ＩＲＣＢｏｔ．Ｄ"：９０％、"Ｗｉｎ３２．ＦａｋｅＡｌｅｒｔ．Ｂ"：８０％、および"Ｗｉｎ３２．ＡｕｔｏＲｕｎ．Ｘ"：７０％等のリストを返し得る。例において、パーセンテージを判断するべく、チェックサムツリーにおける一致する各ノードに対する複数の確率値が格納され得る。確率値は、クリーンなトレーニングセットと比較される、マルウェアおよび害のないファイルの複数のトレーニングセットにおけるチェックサムの出現率から導かれ得る。更に、分類データは、合理的な大きさ（１００，０００＋）のマルウェアおよび害のないファイルサンプルの複数のセットに基づくデータマイニングおよび機械学習技術により完全に生成され得る。従って、手動によるルール作成の必要はない。
【００３４】
通信システム１００は、既知の悪意のファイルサンプルおよび既知の害のないファイルサンプルの双方のトレーニングセットを用いて、チェックサムツリーの分類インテリジェンスを生成するように構成され得る。各サンプルから、通信システム１００は、一連の複数のファジーチェックサムを判断し、完全なトレーニングのセットにおける任意のチェックサムの全体的出現率を追跡し得る。トレーニングセットを用いて、通信システム１００は次に、マルウェアセットおよび害のないファイルセットにおいて最も出現すると判明したそれらの一連のチェックサムを反映するチェックサムツリーを生成し得る。チェックサムツリーにおける各ノードは、ファイルにおけるチェックサムの（論理的）位置およびチェックサム自体からなり得る。位置は、数量オフセット（例えば、ファイル開始からの＋２０４８バイト）、または（例えば、実行可能ファイルのエントリポイントにおける、リソースセクションの中央における等の）予め定義されたフォーマット固有の論理オフセットもしくはサブ文字列を反映し得る。
【００３５】
ランタイムにおいて、通信システム１００は、ルートノードから降りて、チェックサムツリーにおけるノード毎に各ファイル位置におけるチェックサムを計算して、当該チェックサムを、チェックサムツリーノードと共に格納されたチェックサムと比較するように、チェックサムツリーを解釈するように構成され得る。チェックサムツリーにおける複数のリーフノード（または複数のリーフノードの少なくとも大部分）は、クラスラベルまたは分類を割り当てられている。割り当てられた分類は、最も可能性のあるマルウェアファミリ名（例えば、Ｗｉｎ３２．ＩＲＣＢｏｔ．Ｄ）または害のないファイル名（例えば、Ｗｉｎ３２．ＦａｋｅＡｌｅｒｔ．Ｂ，＊ＣＬＥＡＮ＊等）を指定して、ファイルチェックサムに一致するノードまたは複数のノードに基づき、ファイルチェックサムがどのくらい密にノードに一致するかに基づいて一致の確率（例えば、０...１００％）を割り当て得る。複数の一致するノードを介して到達した任意の分類は記憶され、個別の分類にわたる投票が実行されて、最も可能性のある分類を示す。一例において、個別の検出の重み付けされた組み合わせを用いて、確率の合計が作成される。より具体的には、一致する複数の分類ノードにわたって、ランダムフォレスト分類子がベイズ投票と共に用いられ得る。
【００３６】
ファイル、プログラム、またはデータが電子デバイス１０２により受信されると、検出モジュール１１０は、圧縮コンテンツのアンパック（例えば、パックドエグセキュータブル、ＳＷＦ動画、ＺＩＰアーカイブ、ＰＤＦドキュメントストリーム等のアンパック）のようなファイルフォーマット固有の分解を適用するように構成され得る。正規化は、チェックサムを計算される各々のデータのサブ文字列に適用され得る。データが実行可能なコードであることが既知である場合、データは逆分解され得（再帰トラバーサル）、各命令の複数のオペランドは、一般的な形（ＲＥＧｉｓｔｅｒまたはＭＥＭｏｒｙのようなオペランドタイプを表すのみ等）まで正規化され得る。分解の開始位置は、ファイルのタイプ、ファイルの大きさ、または開始位置を判断するためのいくつかの他の処理に基づいて判断され得る。任意のデータに対して、検出モジュール１１０は、バイナリビット形式の正規化を適用して、複数のバイト値の差異を低減し得る。次に、最初のチェックサムＣは、データのサブ文字列の最初において、バイト位置Ｎ〜Ｍまで計算され得、チェックサムアルゴリズムは、チェックサムの範囲を再計算する必要なく、チェックサムの範囲Ｎ＋ｘ〜Ｍ＋ｘのチェックサムをＣから導き得る。例えば、チェックサムを導くべく、ラビン・カープアルゴリズムまたはいくつかの他のアルゴリズムが用いられ得る。次に、所望の比較位置が各ノードにより定義されるように、チェックサムツリーにおけるノード毎に、比較が実行される。ローリングチェックサムは、（所望の検索範囲に応じて）サブ文字列の各スライディングウィンドウにおいて計算され、チェックサムは、各バイト位置において、チェックサムツリーノードに格納されたチェックサムと比較される。例えば、比較は、３２ビットのアラインされたオフセットにおいて開始し、次に各ローリングチェックサムに対して４バイト進み得る。チェックサムツリーにおける各ノードに対するチェックサムの範囲は、チェックサムツリーの各ノードに含まれ得る。
【００３７】
図１のインフラストラクチャを参照すると、例示的な実施形態による通信システム１００が示されている。一般に、通信システム１００は、任意のタイプまたはトポロジのネットワークにおいて実装され得る。ネットワーク１７０は、通信システム１００により伝播する情報の複数のパケットを送受信するための相互接続された複数の通信経路の一連のポイントまたはノードを表す。ネットワーク１７０は、複数のノード間の通信インターフェースを提供し、任意のローカルエリアネットワーク（ＬＡＮ）、仮想ローカルエリアネットワーク（ＶＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、無線ローカルエリアネットワーク（ＷＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、イントラネット、エクストラネット、仮想プライベートネットワーク（ＶＰＮ）、およびネットワーク環境において通信を容易にするその他の適切なアーキテクチャもしくはシステム、または有線および／もしくは無線通信を含む、これらの任意の好適な組み合わせとして構成され得る。
【００３８】
通信システム１００において、ネットワークトラフィックは、複数のパケット、フレーム、信号、データ等を含み、任意の好適な通信メッセージングプロトコルに準拠して送受信され得る。好適な通信メッセージングプロトコルとしては、開放型システム間相互接続（ＯＳＩ）モデル等のマルチレイヤスキーム、またはその任意の派生物もしくは変形形態（例えば、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザデータグラムプロトコル／ＩＰ（ＵＤＰ／ＩＰ））が挙げられ得る。更に、セルラーネットワークを介した複数の無線信号通信も、通信システム１００において提供され得る。セルラーネットワークとの通信を可能にするべく、複数の好適なインターフェースおよびインフラストラクチャが提供され得る。
【００３９】
本明細書において用いられる「パケット」という用語は、パケット交換られるネットワーク上におけるソースノードとデスティネーションノードとの間でルーティングされ得るデータ単位を指す。パケットは、ソースネットワークアドレスおよびデスティネーションネットワークアドレスを含む。これらのネットワークアドレスは、ＴＣＰ／ＩＰメッセージングプロトコルのインターネットプロトコル（ＩＰ）アドレスであり得る。本明細書において用いられる「データ」という用語は、任意のタイプのバイナリ、数値、音声、動画、テキスト、スクリプトのデータ、または任意のタイプのソースもしくはオブジェクトコード、または電子デバイスおよび／またはネットワークにおいてあるポイントから別のポイントへと通信され得る任意の適切なフォーマットのその他の好適な情報を指す。更に、複数のメッセージ、要求、応答、およびクエリは、ネットワークトラフィックの形態であり、従って複数のパケット、フレーム、信号、データ等を含み得る。
【００４０】
例示的な実装において、電子デバイス１０２、セキュリティサーバ１０６、および複数のクラウドサービス１０８は、ネットワーク要素であり、これらは、複数のネットワークアプライアンス、サーバ、ルータ、スイッチ、ゲートウェイ、ブリッジ、ロードバランサ、プロセッサ、モジュール、またはネットワーク環境において情報を交換するように動作可能なその他の好適なデバイスコンポーネント、要素、もしくはオブジェクトを含むことが意図される。ネットワーク要素としては、複数の動作を容易にする任意の好適なハードウェア、ソフトウェア、コンポーネント、モジュール、もしくはオブジェクト、ならびにネットワーク環境においてデータもしくは情報を受信し、送信し、および／もしくはそうでなければ通信する複数の好適なインターフェースが挙げられ得る。これは、データまたは情報の効果的な交換を可能にする適切なアルゴリズムおよび通信プロトコルを含み得る。一般に、複数のクラウドサービス１０８は、インターネット等のネットワークを介してサービスとして提供される複数のコンピューティングリソースの使用として定義される。通常、計算、ストレージ、およびネットワークのリソースは、クラウドインフラストラクチャにおいて提供され、ワークロードをローカルネットワークからクラウドネットワークに実質的にシフトさせる。
【００４１】
通信システム１００に関連する内部構造について、電子デバイス１０２、セキュリティサーバ１０６、および複数のクラウドサービス１０８の各々は、本明細書において概説される複数の動作において用いられる情報を格納するための複数のメモリ素子を含み得る。電子デバイス１０２、セキュリティサーバ１０６、および複数のクラウドサービス１０８の各々は、適切な場合に、特定の必要性に基づいて、任意の好適なメモリ素子（例えば、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、特定用途向け集積回路（ＡＳＩＣ）等）、ソフトウェア、ハードウェア、ファームウェア、またはその他の好適なコンポーネント、デバイス、エレメント、もしくはオブジェクト内に情報を保持し得る。本明細書において検討される複数のメモリアイテムのいずれも、「メモリ素子」という広範な用語に含まれるものと解釈されるべきである。更に、通信システム１００において用いられ、追跡され、送信され、または受信される情報は、任意のデータベース、レジスタ、キュー、テーブル、キャッシュ、制御リスト、または他のストレージ構造体において提供され得、これらの全てが任意の好適な時間枠で参照され得る。また、任意のそのような複数のストレージオプションは、本明細書において用いられる「メモリ素子」という広範な用語に含まれ得る。
【００４２】
特定の例示的な実装において、本明細書において概説される複数の機能は、非一時的コンピュータ可読媒体を含み得る、１または複数の有形媒体（例えば、ＡＳＩＣにおいて提供される埋め込みロジック、デジタル信号プロセッサ（ＤＳＰ）命令、プロセッサにより実行されるソフトウェア（潜在的にはオブジェクトコードおよびソースコードを含む）、もしくは他の類似のマシン等）においてエンコードされるロジックにより実装され得る。いくつかのこれらの例において、複数のメモリ素子は、本明細書に説明される複数の動作に用いられるデータを格納し得る。これは、本明細書に説明される複数のアクティビティを実行するべく実行されるソフトウェア、ロジック、コード、または複数のプロセッサ命令を格納することができる複数のメモリ素子を含む。
【００４３】
例示的な実装において、本明細書に概説される複数の動作を実現し、または促進するべく、電子デバイス１０２、セキュリティサーバ１０６、および／または複数のクラウドサービス１０８等、通信システム１００の複数のネットワーク要素は、複数のソフトウェアモジュール（例えば、検出モジュール１１０、コンパイラモジュール１１２、および／またはネットワーク検出モジュール１１４）を含み得る。これらのモジュールは、特定の構成および／またはプロビジョニングの必要性に基づき得る、任意の適切な態様で好適に組み合わされ得る。複数の例示的な実施形態において、そのような複数の動作は、意図される機能を実現するべく、ハードウェアにより実行され、これらの要素の外部で実装され、またはいくつかの他のネットワークデバイスに含まれ得る。更に、複数のモジュールは、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の好適な組み合わせとして実装され得る。これらの要素は、本明細書に概説されるような複数の動作を実現するべく、他の複数のネットワーク要素と調整し得るソフトウェア（またはレシプロケーティングソフトウェア）も含み得る。
【００４４】
更に、電子デバイス１０２、悪意のあるデバイス１０４、セキュリティサーバ１０６、および複数のクラウドサービス１０８の各々は、本明細書において検討される複数のアクティビティを実行するためのソフトウェアまたはアルゴリズムを実行し得るプロセッサを含み得る。プロセッサは、データに関連付けられた任意のタイプの複数の命令を実行して、本明細書において詳述される複数の動作を実現し得る。一例において、複数のプロセッサは、要素または物品（例えば、データ）を、ある状態もしくは物から別の状態もしくは物へと変換し得る。別の例において、本明細書において概説される複数のアクティビティは、固定ロジックまたはプログラマブルロジック（例えば、プロセッサにより実行される複数のソフトウェア／コンピュータ命令）で実装され得、本明細書において識別される複数の要素は、いくつかのタイプのプログラマブルプロセッサ、プログラマブルデジタルロジック（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ）、または、デジタルロジック、ソフトウェア、コード、複数の電子命令、またはそれらの任意の好適な組み合わせを含むＡＳＩＣであり得る。本明細書に説明される潜在的な複数の処理要素、モジュール、およびマシンのいずれも、「プロセッサ」という広範な用語に含まれるものと解釈されるべきである。
【００４５】
電子デバイス１０２は、ネットワーク要素であり得、例えば、複数のデスクトップコンピュータ、ラップトップコンピュータ、モバイルデバイス、携帯情報端末、スマートフォン、タブレット、または他の類似のデバイスを含む。セキュリティサーバ１０６は、サーバもしくは仮想サーバ等のネットワーク要素であり得、いくつかのネットワーク（例えば、ネットワーク１７０）を介して通信システム１００において通信を開始することを希望する複数のクライアント、顧客、エンドポイント、エンドユーザに関連付けられ得る。「サーバ」という用語は、複数のクライアントの要求に対応し、および／または通信システム１００内の複数のクライアントに代わっていくつかの計算タスクを実行するべく用いられる複数のデバイスを含む。検出モジュール１１０、コンパイラモジュール１１２、およびネットワーク検出モジュール１１４は、図１において別個の複数のモジュールとして表されているが、これは、専ら図示の目的のためである。これらのモジュールは、任意の好適な構成で組み合わされ、または分離され得る。更に、これらのモジュールは、複数のクラウドサービス１０８もしくはセキュリティサーバ１０６、または電子デバイス１０２によりアクセス可能な別のネットワークにおいて統合され、または分散され得る。 
【００４６】
図２を参照すると、図２は、検出モジュール１１０の一例を図示する。検出モジュール１１０は、チェックサムモジュール１１６、ツリーモジュール１１８、分類モジュール１２０、構成モジュール１２２、および更新モジュール１２４を含み得る。チェックサムモジュール１１６は、チェックサム計算機およびコンパレータとして構成され得る。チェックサムモジュール１１６は、複数の害のないファイル、既存のマルウェア、および新たな未知のマルウェアを識別するべく、一連の複数のファジーチェックサムを用い得る。マルウェアバリアントＭ１において計算されたチェックサムは、たとえバリアントマルウェアが新たなコードで拡張され、コードが除去され、再コンパイルまたは再パッケージ化されても、派生Ｍ２になおも一致する可能性がある。
【００４７】
ツリーモジュール１１８は、チェックサムツリーデータベースおよびインタプリタとして構成され得る。ツリーモジュール１１８は、害のないファイルおよび既知のマルウェアの複数のセットにおいて最も出現すると判明した一連の複数のチェックサムを反映し得る。チェックサムツリーにおける各ノードは、ファイルまたはサブ文字列におけるチェックサムの（論理的）位置およびチェックサム自体からなる。位置は、数量オフセット（例えば、ファイル開始からの＋２０４８バイト）、または（例えば、実行可能ファイルのエントリポイントにおける、リソースセクションの中央における等の）予め定義されたフォーマット固有の論理オフセットを反映し得る。
【００４８】
分類モジュール１２０は、分類キューおよび投票者として構成され得る。分類モジュール１２０は、各々が関係の確率を有する複数のファミリ関係のリストを作成し得る。すなわち、単一の検出名（例えば、Ｗｉｎ３２．ＩＲＣＢｏｔ．Ｄ）をただ返すのではなく、分類モジュール１２０は、Ｗｉｎ３２．ＩＲＣＢｏｔ．Ｄ：９０％（バックドア型のトロイの木馬）、Ｗｉｎ３２．ＦａｋｅＡｌｅｒｔ．Ｂ：８０％（偽りの、またはフェイクアラートを与える害のないファイル）、およびＷｉｎ３２．ＡｕｔｏＲｕｎ．Ｘ：７０％（トロイの木馬）等のリストを返し得る。分類データは、既存の既知のマルウェアおよび害のない複数のファイルバリアント、ならびに複数のコンポーネントを用いるデータマイニングおよび機械学習技術により完全に生成され得る。既存の既知のマルウェアおよび害のない複数のファイルバリアント、ならびに複数のコンポーネントは、合理的な大きさ（１００，０００＋）のマルウェアおよび害のないファイルサンプルの複数のセットであり得る。手動によるルール作成の必要はない。
【００４９】
構成モジュール１２２は、所望のように、検出率と誤検知率との間の比率を変更するように構成され得る。この比率は、ファイルにおいて用いられる一連の複数のチェックサムの大きさに基づき得る。例えば、アグレッシブな検出は、４つのチェックサムのみがファイル毎に一致することを要求し得るが、より正確な検出は、３２個のチェックサムが一致することを要求し得る等である。チェックサムを算出して比較するのに必要とされるＣＰＵサイクルの量は、チェックサムを計算された範囲（例えば、２５６バイト）の大きさに関連するものである。そのような範囲の数は、ファイル毎に固定され得る（例えば、特徴ベクトルの大きさに対して固定される）。ファイルの大きさも、分類データベースの大きさも、非常に小さいＩ／Ｏ関連の部分を除き、性能に影響を与えない。これは、従来のフルファイルハッシュベースの検出リストは、Ｏ（ｎ＋ｌｏｇ  ｍ）の性能特性（ファイルの大きさ×リストの大きさ）を有する一方、Ｏ（１）の性能特性が提供され得るという点で１つの利点を提供する。
【００５０】
更新モジュール１２４は、ツリーモジュール１１８に格納するために生成された複数のチェックサムツリーの更新済みバージョンを受信するように構成され得る。セキュリティサーバ１０６または複数のクラウドサービスは、特定の間隔で、または複数の新たなチェックサムツリーが生成される場合に、複数の新たなチェックサムツリーでツリーモジュール１１８を更新するように動作可能であり得る。様々な実施形態において、更新モジュール１２４は、セキュリティサーバ１０６またはクラウドサービス１０８におけるコンパイラモジュール１１２から、複数の新たなチェックサムツリーによるツリーモジュール１１８の更新を制御する。
【００５１】
図３を参照すると、図３は、コンパイラモジュール１１２の一例を図示する。コンパイラモジュール１１２は、追跡モジュール１２６およびツリー生成モジュール１２８を含み得る。追跡モジュール１２６は、既知および新たなマルウェア、ならびに複数の害のないファイルを追跡するように構成され得る。また、追跡モジュール１２６は、ツリー生成モジュール１２８に、新たなマルウェアおよび複数の新たな害のないファイルに対して生成される新たなチェックサムツリーの要求を送信し得る。
【００５２】
ツリー生成モジュール１２８は、既知の悪意のファイルサンプルおよび既知の害のないファイルサンプルの双方のトレーニングセットを用いて、チェックサムツリーを生成するように構成され得る。各ファイルサンプルまたはサブ文字列から、ツリー生成モジュール１２８は、一連の複数のファジーチェックサムを判断し、完全なトレーニングのセットにおける任意のチェックサムの全体的出現率を追跡し得る。一連の複数のファジーチェックサムを用いて、ツリー生成モジュール１２８は、マルウェアおよび害のないファイルのセットにおいて最も出現すると判明した一連のそれらのチェックサムを反映するように構成され得るチェックサムツリーを作成および生成し得る。チェックサムツリーにおける各ノードは、ファイルにおけるチェックサムの（論理的）位置およびチェックサム自体からなり得る。チェックサムの位置は、数量オフセット（例えば、ファイル開始からの＋２０４８バイト）、または（例えば、実行可能ファイルのエントリポイントにおける、リソースセクションの中央における等の）予め定義されたフォーマット固有の論理オフセットを反映し得る。
【００５３】
図４を参照すると、図４は、ネットワーク検出モジュール１１４の一例を図示する。ネットワーク検出モジュール１１４は、ネットワークツリーモジュール１３０およびネットワーク分類モジュール１３２を含み得る。ネットワークツリーモジュール１３０は、ツリーモジュール１１８における複数のチェックサムツリーより広範な複数のチェックサムツリーを反映するように構成され得る。ネットワークツリーモジュール１３０における複数のチェックサムツリーは、マルウェアまたは害のないファイルセットにおいて最も出現すると判明した拡張済みの一連の複数のチェックサムを含み得る。複数のチェックサムツリーにおける各ノードは、ファイルにおけるチェックサムの（論理的）位置およびチェックサム自体からなる。チェックサムの位置は、数量オフセット（例えば、ファイル開始からの＋２０４８バイト）、または（例えば、実行可能ファイルのエントリポイントにおける、リソースセクションの中央における等の）予め定義されたフォーマット固有の論理オフセットを反映し得る。ネットワーク分類モジュール１３２は、各々が関係の確率を有する複数のファミリ関係のリストの提供を可能にするように構成され得る。すなわち、Ｗｉｎ３２．ＩＲＣＢｏｔ．Ｄのような単一の検出名をただ返すのではなく、ネットワーク分類モジュールは、Ｗｉｎ３２．ＩＲＣＢｏｔ．Ｄ：９０％、Ｗｉｎ３２．ＦａｋｅＡｌｅｒｔ．Ｂ：８０％、およびＷｉｎ３２．ＡｕｔｏＲｕｎ．Ｘ：７０％等のリストを返し得る。分類データは、既存の既知のマルウェアおよび害のない複数のファイルバリアント、ならびに複数のコンポーネントを用いるデータマイニングおよび機械学習技術により完全に生成され得る。既知のマルウェアおよび害のない複数のファイルバリアント、ならびに複数のコンポーネントは、合理的な大きさ（１００，０００＋）のマルウェアおよび害のないファイルサンプルの複数のセットであり得る。手動によるルール作成の必要はない。
【００５４】
図５を参照すると、図５は、実行可能ファイル１３６のための１つの可能なレイアウト図１３４を図示する。一実施形態において、実行可能ファイル１３６は、マルウェアを含むファイルであるか、またはマルウェアである。様々な実施形態において、実行可能ファイル１３６は、ファイルに対して生成されたチェックサムを有するファイルであり、従ってファイル１３６に対するチェックサムは、チェックサムツリーにおける複数のノードと比較され得る。様々な実施形態において、ファイル１３６は、コードセクション１３８、データセクション１５６、およびリソースセクション１６２を含む。様々な実施形態において、コードセクション１３８は、生データセクション１４０およびパディング１５２ａを含み得る。生データセクション１４０は、インポートアドレステーブル１４２、デバッグディレクトリ１４４、マシンコード１４６、インポートディレクトリ１４８、およびインポートネームテーブル１５０を含み得る。様々な実施形態において、データセクション１５６は、初期化データ１５８およびパディング１５２ｂを含み得る。様々な実施形態において、リソースセクション１６２は、リソースディレクトリ１６４およびパディング１５２ｃを含み得る。
【００５５】
生成コンパイラおよびリンカに応じて、複雑性のレベルは、ファイル１３６の異なる部分を通して変わり得る。通常、パディング１５２ａ〜ｃは、非常に低い情報エントロピの区域であり、コードセクション１３８、データセクション１５６、またはリソースセクション１６２の複雑性の基準として各々用いられ得る。インポートネームテーブル１５０およびリソースディレクトリ１６４は、概して低いか、または中間の情報エントロピの区域である。マシンコード１４６は、概して中間の情報エントロピの区域である。マシンコード１４６は、ファイル１３６をマルウェアにするプログラミングを含むファイル１３６におけるポイントである可能性がある。結果として、マシンコード１４６からの少なくとも１つのサブファイルが用いられ得、ファイル１３６に対する少なくとも１つのチェックサムがマシンコード１４６から作成され得る。様々な実施形態において、エントリポイント１５４は、マシンコード１４６において、ファイル１３６に対するチェックサムにおいて用いられる複数のブロックを比較し、チェックサムツリーにおけるチェックサムとノードを比較するための開始点に対して選択され得る。
【００５６】
図６Ａを参照すると、図６Ａは、可能な第１のチェックサムツリー１７０を図示する。一実施形態において、第１のチェックサムツリー１７０は、エントリポイントチェックサムノード１７４、第２の領域のチェックサムノード１７６ａおよび１７６ｂ、第３の領域のチェックサムノード１７８ａ〜ｃ、ならびに第１のチェックサムツリー分類１８０ａ〜ｃを含み得る。エントリポイントチェックサムノード１７４は、ファイルがマルウェアであるか、またはマルウェアを含み得るか否か、またはファイルが害のないものであるか否かを判断するべく分析されるファイルの領域または区域からのチェックサムであり得る。第２の領域のチェックサムノード１７６ａおよび１７６ｂは、エントリポイントチェックサム１７４の領域または区域からの特定数のバイトであるファイルの領域または区域のチェックサムであり得る。
【００５７】
例えば、第１のチェックサムツリー１７０において、図６Ａは、第２の領域のチェックサムノード１７６ａおよび１７６ｂにおける複数の第２の領域のチェックサムがエントリポイントチェックサムノード１７４からの１，０００バイトであることを図示する。第３の領域のチェックサムノード１７８ａおよび１７８ｂにおける複数の第３の領域のチェックサムは、エントリポイントチェックサムノード１７４からの特定数のバイトであるファイルの領域または区域であり得る。例えば、図６Ａは、第３の領域のチェックサムノード１７８ａ〜ｃが、エントリポイントチェックサム１７４の領域または区域からの１６，０００バイトであることを図示する。
【００５８】
第１のチェックサムツリー分類１８０ａ〜ｃは、ファイルのサブ文字列からのチェックサムが第１のチェックサムツリー１７０におけるノードと一致する場合に用いられる。例えば、サブ文字列からのチェックサムが最初のチェックサム１７４と一致する場合、チェックサムが第２の領域のチェックサム１７６ａおよび１７６ｂと一致するか否かを判断するべく、ファイルが検査される。一致がある場合、チェックサムが第３の領域のチェックサム１７８ａ〜ｃと一致するか否かを判断するべく、ファイルが検査される。チェックサムツリー１７０の複数のノードが検査された後、次に、第１のチェックサムツリー分類１８０ａ〜ｃからの分類がファイルに割り当てられる。例えば、ファイルの領域が最初のチェックサム１７４、第２の領域のチェックサム１７６ａ、および第３の領域のチェックサム１７８ａに一致する場合、Ｗｉｎ３２．Ｆａｋｅ．Ａｌｅｒｔ分類がファイルに割り当てられ得る。一実施形態において、一致する領域は、複数の一致するノードに基づいて分析され得、Ｗｉｎ３２．Ｆａｋｅ．Ａｌｅｒｔ分類が正しい確率のパーセンテージが、分類に割り当てられ得る。図６Ａに図示されるように、第１のチェックサムツリー１７０によれば、特定のファイルは、Ｗｉｎ３２．Ｆａｋｅ．Ａｌｅｒｔ（フェイクアラート）を含む確率が８０％あり、マルウェアＷｉｎ３２．ＩＲＣＢｏｔ．Ｘ（バックドア型のトロイの木馬）を含む確率が８０％あり、マルウェアＷｉｎ３２．ＡｕｔｏＲｕｎ．Ｃ（トロイの木馬）を含む確率が６０％あり得る。
【００５９】
図６Ｂを参照すると、図６Ｂは、可能な第２のチェックサムツリー１７２を図示する。一実施形態において、第２のチェックサムツリー１７２は、テキストセクションチェックサム１８２、テキストセクションエンドチェックサム１８４ａ〜ｃ、リソースセクションチェックサムノード１８６ａおよび１８６ｂ、ならびに第２のチェックサムツリー分類１８８ａ〜ｃを含み得る。第２のチェックサムツリー１７２において、テキストセクションチェックサム１８２は、テキストファイルの特定区域に対するチェックサムであってもよく、またはテキストファイル全体に対するものであってもよい。テキストセクションエンドチェックサム１８４ａ〜ｃは、テキストファイルの終わりに対するチェックサムであってもよい。リソースセクションチェックサムノード１８６ａおよび１８６ｂは、ファイルのリソースセクションに対するチェックサムであってもよい。
【００６０】
一例において、ファイルのチェックサムがテキストセクションチェックサム１８２と一致する場合、チェックサムがテキストセクションエンドチェックサム１８４ａと一致するか否かを判断するべく、ファイルが検査される。一致がある場合、チェックサムがリソースセクションチェックサムノード１８６ａまたはｂと一致するか否かを判断するべく、ファイルが検査される。一致が存在する場合、第２のチェックサムツリー分類１８８ａまたはｂからの分類が、ファイルに割り当てられ得る。また、チェックサムがテキストセクションエンドチェックサム１８４ｂまたはｃと一致する場合、第２のチェックサムツリー分類１８６ｃからの分類が、ファイルに割り当てられ得る。例えば、ファイルの領域がテキストセクションチェックサム１８２、テキストセクションエンドチェックサム１８４ａ、およびリソースセクションチェックサムノード１８６ａと一致する場合、Ｗｉｎ３２．ＩＲＣＢｏｔ．Ｘ分類がファイルに割り当てられ得る。一実施形態において、一致する領域が分析され得、Ｗｉｎ３２．ＩＲＣＢｏｔ．Ｘ分類が正しい確率のパーセンテージが、分類に割り当てられ得る。図６Ｂに図示されるように、チェックサムツリー１７２によれば、ファイルは、マルウェアＷｉｎ３２．ＩＲＣＢｏｔ．Ｘを含む確率が７０％あり、Ｗｉｎ３２．Ｆａｋｅ．Ａｌｅｒｔを含む確率が６０％あり、マルウェアＷｉｎ３２．Ｓａｌｉｔｙ．Ｂ（埋め込み型トロイの木馬）を含む確率が５５％あり得る。
【００６１】
図７を参照すると、図７は、一実施形態による、マルウェアに対する軽減に関連し得るフロー７００の複数の可能な動作を図示する例示的なフロー図である。一実施形態において、フロー７００の１または複数の動作は、検出モジュール１１０により実行され得る。７０２において、ファイルはアンパックされるか、または圧縮解除される。７０４において、ファイルの複数の特性が判断される。７０６において、システムは、ある（または任意の）チェックサムツリーがファイルに関連するか否かを判断する。例えば、システムは、ツリーモジュール１１８における複数のチェックサムツリーのいずれかがファイルに関連するか否かを判断し得る。いずれのチェックサムツリーもファイルに関連しない場合、処理は終了する。チェックサムツリーがファイルに関連する場合、７０８におけるように、関連するチェックサムツリーを用いて、ファイルが分類される。例えば、ファイルは、悪意のある、または害のないものとして分類され得る。７１０において、システムは、ファイルが更なる分析のために送信される必要があるか否かを判断する。ファイルが更なる分析のために送信される必要がある場合、７１２におけるように、当該ファイルに関連するデータが抽出されて、更なる分析のために送信される。例えば、ファイルが悪意のある（または害のない）ものであるという９０％未満の確率をファイルの分類が有する場合、ネットワーク検出モジュール１１４を用いて、特徴ベクトルは、更なる分析のためにセキュリティサーバ１０６または複数のクラウドサービス１０８に送信され得る。ファイルが更なる分析のために送信される必要がない場合、処理は終了する。例えば、ファイルがマルウェアを含む９０％を超える確率を有するチェックサムツリーにおけるノードと、ファイルのチェックサムが一致する場合、ファイルがマルウェアを含む可能性が非常に高くなり（例えば、９０％を超える確率）、更なる分析は必要とされない。
【００６２】
図８を参照すると、図８は、一実施形態による、マルウェアに対する軽減に関連し得るフロー８００の複数の可能な動作を図示する例示的なフロー図である。一実施形態において、フロー８００の１または複数の動作は、検出モジュール１０４またはネットワーク検出モジュール１１４により実行され得る。８０２において、チェックサムツリーのルートにおいて参照されるサブ文字列が判断される。例えば、チェックサムツリーのルートは、図６Ａにおいて図示されるエントリポイントチェックサムノード１７４であってもよい。８０４において、ファイルのサブ文字列におけるデータが正規化される。８０６において、最初のチェックサムが判断される。８０８において、チェックサムは、チェックサムツリーにおけるノードと比較される。８１０において、システムは、チェックサムがチェックサムツリーにおけるノードと一致するか否かを判断する。
【００６３】
チェックサムがチェックサムツリーにおけるノードと一致する場合、システムは、８１６におけるように、ノードが分類を有するか否かを判断する。ノードが分類を有しない場合、システムは、８２０におけるように、ノードが任意の子を有するか否かを判断する。ノードが分類を有する場合、８１８におけるように、当該分類は格納され、システムは、８２０におけるように、ノードが任意の子を有するか否かを判断する。ノードが任意の子を有する場合、システムは８０４に戻り、ファイルのサブ文字列におけるデータが正規化される。ノードが子を全く有しない場合、システムは、８２２におけるように、チェックサムツリーのルートにおいて参照される各ファイル位置が分析されたか否かを判断する。これにより、ファイルに関連するチェックサムツリーの全てが分析されることを保証する。例えば、ツリーモジュール１１８は、ファイルに関連する２、５、１０、または任意の数のチェックサムツリーを含み得る。チェックサムツリーのルートにおいて参照される各ファイル位置が分析された場合、（もし、あれば）格納された複数の分類が８２４におけるように、組み合わされる。チェックサムツリーのルートにおいて参照される各ファイル位置が分析されなかった場合、システムは８０２に戻り、（新しい）チェックサムツリーのルートにおいて参照されるサブ文字列が判断される。これにより、複数のチェックサムツリーを用いて、単一のファイルが分析されることを可能にする。
【００６４】
８１０に戻って、チェックサムがチェックサムツリーにおけるノードと一致しない場合、システムは、８１２におけるように、サブ文字列のチェックサムの範囲が完全に検査されたか否かを判断する。サブ文字列のチェックサムの範囲が完全に検査されなかった場合、８１４におけるように、チェックサムは更新され、（更新された）チェックサムは、８０８におけるように、チェックサムツリーにおけるノードと比較される。これにより、システムがローリングチェックサム分析を実行することを可能にする。ファイルのチェックサムの範囲が完全に検査された場合、システムは、８２６におけるように、ノードが兄弟を有するか否かを判断する。例えば、図６Ａに図示されるように、第２の領域のチェックサムノード１７６ａは、第２の領域のチェックサムノード１７６ｂの兄弟である。チェックサムツリーにおけるルートノードおよびその他のノード下に多くの兄弟を有することが可能であり、これにより、一致するノード下の各兄弟が分析されることを保証する。ノードが任意の兄弟を有する場合、システムは、８２２におけるように、チェックサムツリーのルートにおいて参照される各ファイル位置が分析されたか否かを判断する。
【００６５】
図９を参照すると、図９は、一実施形態による、マルウェアに対する軽減に関連し得るフロー９００の複数の可能な動作を図示する例示的なフロー図である。一実施形態において、フロー９００の１または複数の動作は、検出モジュール１１０により実行され得る。９０２において、ファイルデータが受信される。９０４において、ファイルの複数の特性が判断される。９０６において、複数のファジーチェックサムを含む複数のノードを有するチェックサムツリーを用いて、ファイルが分析される。９０８において、チェックサムツリーを用いたファイルの分析に基づいて、ファイルに関連するベクトルが作成される。９１０において、ベクトルは、ファイルを分類するべく当該ベクトルを用いるデバイスに送信される。
【００６６】
図１０を参照すると、図１０は、一実施形態による、マルウェアに対する軽減に関連し得るフロー１０００の複数の可能な動作を図示する例示的なフロー図である。一実施形態において、フロー１０００の１または複数の動作は、コンパイラモジュール１１２により実行され得る。１００２において、ファイルデータが受信される。ファイルデータは、新たなマルウェアまたは新たな害のないファイルに関連し得る。１００４において、ファイルの複数の特性が判断される。１００６において、ファイルに対する複数のファジーチェックサムが判断される。１００８において、ファイルに関連するチェックサムツリーが作成される。チェックサムツリーは、新たなマルウェアまたは新たな害のないファイルを識別するべく用いられる新たなチェックサムツリーであってもよい。１０１０において、チェックサムツリーは、デバイスにより受信された未知のファイルを分析するべくチェックサムツリーを用いるデバイスに送信される。
【００６７】
図１１を参照すると、図１１は、テキストファイル１９０、リソースファイル１９２、およびデータファイル１９４のための一連の複数のチェックサムの例である。例えば、サブ文字列２０２ａ〜ｃは、チェックサムを計算されたワード文書等のテキストファイルの一部であり得る。また、サブ文字列２０２ａ〜ｃは、特徴ベクトル全体または特徴ベクトルの一部であり得る。ローリング検索の範囲２０４ａ〜ｃは、チェックサムツリー（例えば、チェックサムツリー１７２）と比較して、ファイルが悪意のある、または害のないファイルであり得るか否かを判断するべく用いられるサブ文字列２０２ａ〜ｃの区域であり得る。また、図１０において図示される一連の複数のサブ文字列は、チェックサムツリーの複数のチェックサムおよびノードを作成するべく用いられ得る。例えば、特定のタイプのマルウェアは、ファイルの最初から１，１０４バイトにおいて見られる既知のコードを有し得る。ローリング検索の範囲２０４ｃは、既知のコードに対するファイルを分析するべく用いられるチェックサムツリー上のファジーチェックサムノードを表し得る。
【００６８】
図１２は、一実施形態による、ポイントツーポイント（ＰｔＰ）構成で配置されたコンピューティングシステム１２００を図示する。具体的には、図１２は、複数のプロセッサ、メモリおよび入力／出力デバイスが多数のポイントツーポイントインターフェースにより相互接続されたシステムを示す。概して、通信システム１００における複数のネットワーク要素のうちの１または複数は、コンピューティングシステム１２００と同一または類似の態様で構成され得る。
【００６９】
図１２において図示されるように、システム１２００は、いくつかのプロセッサを含み得、分かりやすくするべく、これらのうちの２つのみ、すなわちプロセッサ１２７０および１２８０が示されている。２つのプロセッサ１２７０および１２８０が示されるが、システム１２００の一実施形態は、そのようなプロセッサを１つのみ含む場合もあることを理解されたい。プロセッサ１２７０および１２８０は各々、プログラムの複数のスレッドを実行するべく、複数のコアのセット（すなわち、プロセッサコア１２７４Ａおよび１２７４Ｂ、ならびにプロセッサコア１２８４Ａおよび１２８４Ｂ）を含み得る。複数のコアは、図７〜１０を参照して上述されたものと類似する態様で命令コードを実行するように構成され得る。各プロセッサ１２７０、１２８０は、少なくとも１つの共有キャッシュ１２７１、１２８１を含み得る。共有キャッシュ１２７１、１２８１は、プロセッサコア１２７４および１２８４等、プロセッサ１２７０、１２８０の１または複数のコンポーネントにより使用されるデータ（例えば、命令）を格納し得る。
【００７０】
プロセッサ１２７０および１２８０は各々、メモリ素子１２３２および１２３４と通信するための統合メモリコントローラロジック（ＭＣ）１２７２および１２８２も含み得る。メモリ素子１２３２および／または１２３４は、プロセッサ１２７０および１２８０により用いられる様々なデータを格納し得る。複数の代替的な実施形態において、メモリコントローラロジック１２７２および１２８２は、プロセッサ１２７０および１２８０とは独立した離散ロジックであってもよい。
【００７１】
プロセッサ１２７０および１２８０は、任意のタイプのプロセッサであり得、各々、ポイントツーポイント（ＰｔＰ）インターフェース回路１２７８および１２８８を用いて、ポイントツーポイントインターフェース１２５０を介してデータを交換し得る。プロセッサ１２７０および１２８０は各々、ポイントツーポイントインターフェース回路１２７６、１２８６、１２９４、および１２９８を用いて、個別のポイントツーポイントインターフェース１２５２および１２５４を介して制御ロジック１２９０とデータを交換し得る。また、制御ロジック１２９０は、ＰｔＰインターフェース回路であり得るインターフェース回路１２９２を用いて、高性能グラフィックスインターフェース１２３９を介して高性能グラフィックス回路１２３８とデータを交換し得る。複数の代替的な実施形態において、図１２に図示される複数のＰｔＰリンクのうちのいずれかまたは全ては、ＰｔＰリンクではなくマルチドロップバスとして実装され得る。
【００７２】
制御ロジック１２９０は、インターフェース回路１２９６を介してバス１２２０と通信し得る。バス１２２０は、バスブリッジ１２１８およびＩ／Ｏデバイス１２１６等、バスを介して通信する１または複数のデバイスを有し得る。バス１２１０を介して、バスブリッジ１２１８は、キーボード／マウス１２１２等の複数の他のデバイス（もしくはタッチスクリーン、トラックボール等のような他の入力デバイス）、複数の通信デバイス１２２６（モデム、ネットワークインターフェースデバイス、もしくはコンピュータネットワーク１２６０を介して通信し得る他のタイプの通信デバイス等）、複数のオーディオＩ／Ｏデバイス１２１４、および／またはデータストレージデバイス１２２８と通信し得る。データストレージデバイス１２２８は、プロセッサ１２７０および／または１２８０により実行され得るコード１２３０を格納し得る。複数の代替的な実施形態において、複数のバスアーキテクチャの任意の部分は、１または複数のＰｔＰリンクで実装され得る。
【００７３】
図１２に図示されるコンピュータシステムは、本明細書において検討される様々な実施形態を実装するべく使用され得るコンピューティングシステムの一実施形態の概略図である。図１２に図示されるシステムの様々なコンポーネントは、システムオンチップ（ＳｏＣ）アーキテクチャまたはその他の好適な構成で組み合わされ得ることが理解されよう。例えば、本明細書において開示される複数の実施形態は、スマートセルラーフォン、タブレットコンピュータ、携帯情報端末、ポータブルゲームデバイス等の複数のモバイルデバイスを含む複数のシステムに組み込まれ得る。これらのモバイルデバイスには、少なくともいくつかの実施形態において、複数のＳｏＣアーキテクチャが提供され得ることが理解されよう。
【００７４】
図１３を参照すると、図１３は、本開示の例示的なＡＲＭエコシステムのＳＯＣ１３００に関連する簡略ブロック図である。本開示における少なくとも１つの例示的な実装は、本明細書において検討される複数のマルウェア機能の軽減およびＡＲＭコンポーネントを含み得る。例えば、図１３の例は、任意のＡＲＭコア（例えば、Ａ‐９、Ａ‐１５等）に関連し得る。更に、アーキテクチャは、任意のタイプのタブレット、スマートフォン（Ａｎｄｒｏｉｄ（登録商標）フォン、ｉＰｈｏｎｅ（登録商標）を含む）、ｉＰａｄ（登録商標）、Ｇｏｏｇｌｅ  Ｎｅｘｕｓ（登録商標）、マイクロソフトサーフェス（登録商標）、パーソナルコンピュータ、サーバ、動画処理コンポーネント、ラップトップコンピュータ（任意のタイプのノートブックを含む）、Ｕｌｔｒａｂｏｏｋ（登録商標）システム、任意のタイプのタッチ対応入力デバイス等の一部であり得る。
【００７５】
図１３の本例において、ＡＲＭエコシステムのＳＯＣ１３００は、複数のコア１３０６〜１３０７、Ｌ２キャッシュ制御器１３０８、バスインターフェースユニット１３０９、Ｌ２キャッシュ１３１０、グラフィックス処理ユニット（ＧＰＵ）１３１５、相互接続１３０２、ビデオコーデック１３２０、およびＬＣＤに結合されるモバイルインダストリプロセッサインターフェース（ＭＩＰＩ）／高解像度マルチメディアインターフェース（ＨＤＭＩ（登録商標））のリンクに関連し得る液晶ディスプレイ（ＬＣＤ）Ｉ／Ｆ１３２５を含み得る。
【００７６】
ＡＲＭエコシステムのＳＯＣ１３００は、加入者識別モジュール（ＳＩＭ）Ｉ／Ｆ１３３０、ブートリードオンリメモリ（ＲＯＭ）１３３５、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）コントローラ１３４０、フラッシュコントローラ１３４５、シリアル周辺機器インターフェース（ＳＰＩ）マスタ１３５０、好適なパワー制御器１３５５、ダイナミックＲＡＭ（ＤＲＡＭ）１３６０、およびフラッシュ１３６５も含み得る。更に、１または複数の例示的な実施形態は、Ｂｌｕｅｔｏｏｔｈ（登録商標）１３７０、３Ｇモデム１３７５、全地球測位システム（ＧＰＳ）１３８０、および８０２．１１Ｗｉ‐Ｆｉ１３８５の例のような１または複数の通信機能、インターフェース、および機能を含む。
【００７７】
動作において、図１３の例は、様々なタイプのコンピューティング（例えば、モバイルコンピューティング、ハイエンドデジタルホーム、サーバ、無線インフラストラクチャ等）を可能にするべく、比較的低い電源消費量と共に処理機能を提供し得る。更に、そのようなアーキテクチャは、任意の数のソフトウェアアプリケーション（例えば、Ａｎｄｒｏｉｄ（登録商標）、Ａｄｏｂｅ（登録商標）Ｆｌａｓｈ（登録商標）Ｐｌａｙｅｒ、Ｊａｖａ（登録商標）Ｐｌａｔｆｏｒｍ  Ｓｔａｎｄａｒｄ  Ｅｄｉｔｉｏｎ（Ｊａｖａ（登録商標）ＳＥ）、Ｊａｖａ（登録商標）ＦＸ、Ｌｉｎｕｘ（登録商標）、マイクロソフトウィンドウズ（登録商標）エンベデッド、Ｓｙｍｂｉａｎ、およびＵｂｕｎｔｕ等）を有効にし得る。少なくとも１つの例示的な実施形態において、コアプロセッサは、低レイテンシのレベル２キャッシュが結合されたアウトオブオーダのスーパースケーラパイプラインを実装し得る。
【００７８】
図１４は、一実施形態によるプロセッサコア１４００を図示する。プロセッサコア１４００は、マイクロプロセッサ、エンベデッドプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ等の任意のタイプのプロセッサ、またはコードを実行する他のデバイス用のコアであり得る。１つのプロセッサコア１４００のみが図１４において図示されているが、プロセッサは、代替的に、図１４に図示される２つ以上のプロセッサコア１４００を含み得る。例えば、プロセッサコア１４００は、図１２のプロセッサ１２７０および１２８０を参照して示され、説明されるプロセッサコア１２７４ａ、１２７４ｂ、１２８４ａ、および１２８４ｂの１つの例示的な実施形態を表す。プロセッサコア１４００は、シングルスレッドコアであってもよく、または少なくとも一実施形態においては、プロセッサコア１４００は、１コア毎に２つ以上のハードウェアスレッドコンテキスト（または「論理プロセッサ」）を含み得るようにマルチスレッドであってもよい。
【００７９】
図１４は、一実施形態による、プロセッサコア１４００に結合されたメモリ１４０２も図示する。メモリ１４０２は、当業者に既知の、またはそうでなければ入手可能な多種多様なメモリ（メモリ階層の様々なレイヤを含む）のうちのいずれかであってもよい。メモリ１４０２は、プロセッサコア１４００により実行される１または複数の命令であり得るコード１４０４を含み得る。プロセッサコア１４００は、コード１４０４により示される複数の命令のプログラムシーケンスに従い得る。各命令は、フロントエンドロジック１４０６に入力され、１または複数のデコーダ１４０８により処理される。デコーダは、その出力として、予め定義されたフォーマットの固定幅のマイクロオペレーション等のマイクロオペレーションを生成してもよく、または元のコード命令を反映する他の複数の命令、マイクロ命令もしくは制御信号を生成してもよい。また、フロントエンドロジック１４０６は、レジスタリネーミングロジック１４１０およびスケジューリングロジック１４１２を含み、これらは概して、複数のリソースを割り当て、実行のために命令に対応する動作をキューに登録する。
【００８０】
また、プロセッサコア１４００は、実行ユニット１４１６‐１〜１４１６‐Ｎのセットを有する実行ロジック１４１４を含み得る。多数の実施形態は、特定の複数の機能または複数のセットの機能に専用のいくつかの実行ユニットを含み得る。複数の他の実施形態は、特定の機能を実行し得る１つの実行ユニットのみ、または１つの実行ユニットを含んでもよい。実行ロジック１４１４は、複数のコード命令により指定された複数の動作を実行する。
【００８１】
複数のコード命令により指定された複数の動作の実行が完了した後、バックエンドロジック１４１８はコード１４０４の複数の命令をリタイアし得る。一実施形態において、プロセッサコア１４００は、アウトオブオーダ実行を可能にするが、複数の命令のインオーダリタイアメントを必要とする。リタイアメントロジック１４２０は、様々な既知の形態（例えば、リオーダバッファ等）を取り得る。このように、プロセッサコア１４００は、デコーダにより生成された出力、レジスタリネーミングロジック１４１０により使用される複数のハードウェアレジスタおよびテーブル、ならびに実行ロジック１４１４により変更される任意のレジスタ（図示せず）に少なくとも関して、コード１４０４の実行中に変換される。
【００８２】
図１４に図示されていないが、プロセッサは、プロセッサコア１４００を有するチップ上に他の複数の要素を含み得、それらのうちの少なくともいくつかは、図１２を参照して本明細書において示され、説明された。例えば、図１２に示されるように、プロセッサは、プロセッサコア１４００と共にメモリ制御ロジックを含み得る。プロセッサは、Ｉ／Ｏ制御ロジックを含み得、および／またはメモリ制御ロジックと統合されたＩ／Ｏ制御ロジックを含み得る。
【００８３】
本明細書において提供される複数の例においては、２つ、３つ、またはこれより多くのネットワーク要素に関してインタラクションが説明される場合があることに留意されたい。しかし、これは、分かりやすさおよび例示のみの目的でそのようにしている。特定の場合には、限定された数のネットワーク要素のみを参照することにより、所与のセットのフローにおける複数の機能のうちの１または複数を説明することがより容易である場合がある。通信システム１００およびその教示は、容易に調整可能であり、多数のコンポーネント、ならびにより複雑な／洗練された複数の配置および構成に適合し得ることを理解されたい。従って、提供される複数の例は、無数の他のアーキテクチャに潜在的に適用される通信システム１００の範囲を限定し、またはそのより広い教示を妨げるべきではない。
【００８４】
また、前述の複数のフロー図（すなわち、図７〜９）における複数の動作は、通信システム１００により、またはこの内部で実行され得る可能な相関する複数のシナリオおよびパターンのうちのいくつかのみを図示することに留意することが重要である。これらの動作のいくつかは、適切な場合には削除もしくは除去されてもよく、またはこれらの動作は、本開示の範囲を逸脱することなく相当に修正もしくは変更されてもよい。更に、これらの多数の動作は、１または複数の追加の動作と同時に、またはこれと並行して実行されるものとして説明されている。しかし、これらの動作のタイミングは、相当に変更されてもよい。前述の複数の動作フローは、例示および検討の目的のために提供されている。本開示の教示を逸脱することなく、任意の好適な複数の配置、時系列、構成、およびタイミングメカニズムが提供され得るように、通信システム１００により相当な柔軟性が提供される。
【００８５】
本開示は、特定の配置および構成を参照して詳細に説明されているが、これらの例示的な構成および配置は、本開示の範囲を逸脱することなく相当に変更されてもよい。更に、特定のコンポーネントは、特定の必要性および実装に基づいて組み合わされ、分離され、除去され、または追加されてもよい。更に、通信システム１００は、通信処理を容易にする特定の複数の要素および動作を参照して図示されているが、これらの要素および動作は、通信システム１００の意図される機能を実現する任意の好適なアーキテクチャ、プロトコル、および／または処理で代替されてもよい。
【００８６】
様々な他の変更形態、代替形態、変形形態、改変形態、および修正形態は、当業者により確認され得、本開示がそのような変更形態、代替形態、変形形態、改変形態、および修正形態の全てを添付の特許請求の範囲内に含まれるものとして包含することが意図される。本明細書に添付される特許請求の範囲を解釈する際に、米国特許商標庁（ＵＳＰＴＯ）、更には、本願に関して発行される任意の特許の任意の読者に役立つべく、出願人は、出願人が（ａ）「のための手段」または「のための段階」という文言が特定の請求項において具体的に用いられない限り、添付の特許請求の範囲のいずれかが、本願の出願時に存在する米国法典第３５巻第１１２条（６）項を援用することを意図せず、（ｂ）本明細書のいずれの記述によっても、添付の特許請求の範囲において別途反映されない任意の態様に本開示を限定することを意図しないことを注記したい。
【００８７】
他の注記および例  例Ｃ１は、プロセッサにより実行されると、ファイルに対する一連の複数のチェックサムを判断し、一連の複数のチェックサムを、各々が既知のマルウェアのファジーチェックサムを含む複数のノードを含むチェックサムツリーと比較し、１または複数の分類をファイルに割り当てる１または複数の命令を備え、１または複数の分類の各々は、一連の複数のチェックサムにおける１つのチェックサムと一致するチェックサムツリーの各ノードに基づく、少なくとも１つの機械可読ストレージ媒体である。
【００８８】
例Ｃ２において、例Ｃ１の主題は、パーセンテージが、１または複数の分類の各々に割り当てられることを任意選択で含み得る。
【００８９】
例Ｃ３において、例Ｃ１〜Ｃ２のいずれか１つの主題は、複数のノードの各ノードが、既知の害のない複数のファイルのファジーチェックサムも含むことを任意選択で含み得る。
【００９０】
例Ｃ４において、例Ｃ１〜Ｃ３のいずれか１つの主題は、複数の命令が、プロセッサにより実行されると、プロセッサに更に、一連の複数のチェックサムを複数のチェックサムツリーと比較させることを任意選択で含み得る。
【００９１】
例Ｃ５において、例Ｃ１〜Ｃ４のいずれか１つの主題は、複数の命令が、プロセッサにより実行されると、プロセッサに更に、ファイルに対する１または複数の特性を判断させ、ファイルの１または複数の特性に基づいて、ファイルと比較するための少なくとも１つのチェックサムツリーを判断させることを任意選択で含み得る。
【００９２】
例Ｃ６において、例Ｃ１〜Ｃ５のいずれか１つの主題は、複数の命令が、プロセッサにより実行されると、プロセッサに更に、ファイルに割り当てられた１または複数の分類に基づいて、ファイルがマルウェアであるか否かを判断させることを任意選択で含み得る。
【００９３】
例Ｃ７において、例Ｃ１〜Ｃ６のいずれか１つの主題は、複数の命令が、プロセッサにより実行されると、プロセッサに更に、１または複数の分類の各々にパーセンテージを割り当てさせ、各々の割り当てられたパーセンテージが閾値未満である場合、更なる分析のために複数のクラウドサービスにファイルを送信させることを任意選択で含み得る。
【００９４】
例Ｃ８において、例Ｃ１〜Ｃ７のいずれか１つの主題は、複数の命令が、プロセッサにより実行されると、プロセッサに更に、ファイルチェックサムと比較するべく用いられる新たなチェックサムツリーを受信させることを任意選択で含み得る。
【００９５】
例Ａ１において、装置は、ファイルに対する一連の複数のチェックサムを判断して、一連の複数のチェックサムを、各々が既知のマルウェアのファジーチェックサムを含む複数の複数のノードを含むチェックサムツリーと比較するように構成されたチェックサムモジュールと、１または複数の分類をファイルに割り当てるように構成された分類モジュールとを備え得、１または複数の分類の各々は、一連の複数のチェックサムにおける１つのチェックサムと一致するチェックサムツリーの各ノードに基づく。
【００９６】
例Ａ２において、例Ａ１の主題は、パーセンテージが、１または複数の分類の各々に割り当てられることを任意選択で含み得る。
【００９７】
例Ａ３において、例Ａ１〜Ａ２のいずれか１つの主題は、複数のノードの各ノードが、既知の害のない複数のファイルのファジーチェックサムも含むことを任意選択で含み得る。
【００９８】
例Ａ４において、例Ａ１〜Ａ３のいずれか１つの主題は、複数のチェックサムツリーを含むツリーモジュールを任意選択で備え得、チェックサムモジュールは、一連の複数のチェックサムを複数のチェックサムツリーと比較し得る。
【００９９】
例Ａ５において、例Ａ１〜Ａ４のいずれか１つの主題は、チェックサムモジュールが、更に、ファイルに対する１または複数の特性を判断し、ファイルの１または複数の特性に基づいて、ファイルと比較するための少なくとも１つのチェックサムツリーを判断するように構成され得ることを任意選択で含み得る。
【０１００】
例Ａ６において、例Ａ１〜Ａ５のいずれか１つの主題は、分類モジュールが、更に、ファイルに割り当てられた１または複数の分類に基づいて、ファイルがマルウェアであるか否かを判断するように構成されることを任意選択で含み得る。
【０１０１】
例Ａ７において、例Ａ１〜Ａ６のいずれか１つの主題は、分類モジュールが、更に１または複数の分類の各々にパーセンテージを割り当てるように構成されることを任意選択で含み得る。
【０１０２】
例Ａ８において、例Ａ１〜Ａ７のいずれか１つの主題は、ファイルチェックサムと比較するべく用いられる新たなチェックサムツリーを受信するための更新モジュールを任意選択で備え得る。
【０１０３】
例Ｍ１は、ファイルに対する一連の複数のチェックサムを判断する段階と、一連の複数のチェックサムを、各々が既知のマルウェアのファジーチェックサムを含む複数のノードを含むチェックサムツリーと比較する段階と、１または複数の分類をファイルに割り当てる段階とを備え、１または複数の分類の各々は、一連の複数のチェックサムにおける１つのチェックサムと一致するチェックサムツリーの各ノードに基づく、方法である。
【０１０４】
例Ｍ２において、例Ｍ１の主題は、パーセンテージが、１または複数の分類の各々に割り当てられることを任意選択で含み得る。
【０１０５】
例Ｍ３において、例Ｍ１〜Ｍ２のいずれか１つの主題は、複数のノードの各ノードが、既知の害のない複数のファイルのファジーチェックサムも含むことを任意選択で含み得る。
【０１０６】
例Ｍ４において、例Ｍ１〜Ｍ３のいずれか１つの主題は、一連の複数のチェックサムを複数のチェックサムツリーと比較する段階を任意選択で備え得る。
【０１０７】
例Ｍ５において、例Ｍ１〜Ｍ４のいずれか１つの主題は、ファイルに対する１または複数の特性を判断する段階と、ファイルの１または複数の特性に基づいて、ファイルと比較するための少なくとも１つのチェックサムツリーを判断する段階とを任意選択で備え得る。
【０１０８】
例Ｍ６において、例Ｍ１〜Ｍ５のいずれか１つの主題は、ファイルに割り当てられた１または複数の分類に基づいて、ファイルがマルウェアであるか否かを判断する段階を任意選択で備え得る。
【０１０９】
例Ｍ７において、例Ｍ１〜Ｍ６のいずれか１つの主題は、１または複数の分類の各々にパーセンテージを割り当てる段階と、各々の割り当てられたパーセンテージが閾値未満である場合、更なる分析のために複数のクラウドサービスにファイルを送信する段階とを任意選択で備え得る。
【０１１０】
例Ｓ１は、マルウェアを軽減するためのシステムであり、システムは、ファイルに対する一連の複数のチェックサムを判断するためのチェックサムモジュールと、一連の複数のチェックサムを、各々が既知のマルウェアのファジーチェックサムを含む複数のノードを含むチェックサムツリーと比較するための分類モジュールとを備え得、分類モジュールは、１または複数の分類のファイルへの割り当ても行い、１または複数の分類の各々は、一連の複数のチェックサムにおける１つのチェックサムに一致するチェックサムツリーの各ノードに基づき、パーセンテージは、１または複数の分類の各々に割り当てられる。
【０１１１】
例Ｓ２において、例Ｓ１の主題は、チェックサムモジュールが、ファイルの１または複数の特性に基づいて、ファイルと比較するための少なくとも１つのチェックサムツリーを判断することを任意選択で含み得る。
【０１１２】
例Ｘ１は、例Ａ１〜Ａ８、または例Ｍ１〜Ｍ７のいずれか１つの方法を実装し、または装置を実現するための複数の機械可読命令を含む機械可読ストレージ媒体である。例Ｙ１は、例Ｍ１〜Ｍ７における方法のいずれかを実行するための手段を備える装置である。例Ｙ２において、例Ｙ１の主題は、プロセッサおよびメモリを含む方法を実行するための手段を任意選択で備え得る。例Ｙ３において、例Ｙ２の主題は、複数の機械可読命令を含むメモリを任意選択で備え得る。
【図１】
2017520828.tif 000003
【図２】
2017520828.tif 000004
【図３】
2017520828.tif 000005
【図４】
2017520828.tif 000006
【図５】
2017520828.tif 000007
【図６Ａ】
2017520828.tif 000008
【図６Ｂ】
2017520828.tif 000009
【図７】
2017520828.tif 000010
【図８】
2017520828.tif 000011
【図９】
2017520828.tif 000012
【図１０】
2017520828.tif 000013
【図１１】
2017520828.tif 000014
【図１２】
2017520828.tif 000015
【図１３】
2017520828.tif 000016
【図１４】
2017520828.tif 000017
【手続補正書】
【提出日】平成29年1月16日(2017.1.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータに、
ファイルに対する一連の複数のチェックサムを判断する手順と、
前記一連の複数のチェックサムを、各々が既知のマルウェアのファジーチェックサムを含む複数のノードを含むチェックサムツリーと比較する手順と、
１または複数の分類を前記ファイルに割り当てる手順とを実行させ、
前記１または複数の分類の各々は、前記一連の複数のチェックサムにおける１つのチェックサムと一致する前記チェックサムツリーの各ノードに基づく、コンピュータプログラム。
【請求項２】
パーセンテージは、前記１または複数の分類の各々に割り当てられる、請求項１に記載のコンピュータプログラム。
【請求項３】
前記複数のノードの各ノードは、既知の害のない複数のファイルのファジーチェックサムを含む、請求項１または２に記載のコンピュータプログラム。
【請求項４】
前記コンピュータに、前記一連の複数のチェックサムを複数のチェックサムツリーと比較する手順を更に実行させる、請求項１〜３のいずれか１項に記載のコンピュータプログラム。
【請求項５】
前記コンピュータに、
前記ファイルに対する１または複数の特性を判断する手順と、
前記ファイルの前記１または複数の特性に基づいて、前記ファイルと比較するための少なくとも１つのチェックサムツリーを判断する手順とを更に実行させる、請求項１〜４のいずれか１項に記載のコンピュータプログラム。
【請求項６】
前記コンピュータに、
前記ファイルに割り当てられた前記１または複数の分類に基づいて、前記ファイルがマルウェアであるか否かを判断する手順を更に実行させる、請求項１〜５のいずれか１項に記載のコンピュータプログラム。
【請求項７】
前記コンピュータに、
前記１または複数の分類の各々にパーセンテージを割り当てる手順と、
各々の割り当てられたパーセンテージが閾値未満である場合、更なる分析のために複数のクラウドサービスに前記ファイルを送信する手順とを更に実行させる、請求項１〜６のいずれか１項に記載のコンピュータプログラム。
【請求項８】
前記コンピュータに、
ファイルチェックサムと比較するべく用いられる新たなチェックサムツリーを受信する手順を更に実行させる、請求項１〜７のいずれか１項に記載のコンピュータプログラム。
【請求項９】
ファイルに対する一連の複数のチェックサムを判断して、前記一連の複数のチェックサムを、各々が既知のマルウェアのファジーチェックサムを含む複数のノードを含むチェックサムツリーと比較するチェックサムモジュールと、
１または複数の分類を前記ファイルに割り当てる分類モジュールとを備え、
前記１または複数の分類の各々は、前記一連の複数のチェックサムにおける１つのチェックサムと一致する前記チェックサムツリーの各ノードに基づく、装置。
【請求項１０】
パーセンテージは、前記１または複数の分類の各々に割り当てられる、請求項９に記載の装置。
【請求項１１】
前記複数のノードの各ノードは、既知の害のない複数のファイルのファジーチェックサムも含む、請求項９または１０に記載の装置。
【請求項１２】
複数のチェックサムツリーを含むツリーモジュールを更に備え、
前記チェックサムモジュールは、前記一連の複数のチェックサムを複数のチェックサムツリーと比較する、請求項９〜１１のいずれか１項に記載の装置。
【請求項１３】
前記チェックサムモジュールは、更に、前記ファイルに対する１または複数の特性を判断し、
前記ファイルの前記１または複数の特性に基づいて、前記ファイルと比較するための少なくとも１つのチェックサムツリーを判断する、請求項９〜１２のいずれか１項に記載の装置。
【請求項１４】
前記分類モジュールは、更に、前記ファイルに割り当てられた前記１または複数の分類に基づいて、前記ファイルがマルウェアであるか否かを判断する、請求項９〜１３のいずれか１項に記載の装置。
【請求項１５】
前記分類モジュールは、更に、前記１または複数の分類の各々にパーセンテージを割り当てる、請求項９〜１４のいずれか１項に記載の装置。
【請求項１６】
ファイルチェックサムと比較するべく用いられる新たなチェックサムツリーを受信するための更新モジュールを更に備える、請求項９〜１５のいずれか１項に記載の装置。
【請求項１７】
ファイルに対する一連の複数のチェックサムを判断する段階と、
前記一連の複数のチェックサムを、各々が既知のマルウェアのファジーチェックサムを含む複数のノードを含むチェックサムツリーと比較する段階と、
１または複数の分類を前記ファイルに割り当てる段階とを備え、
前記１または複数の分類の各々は、前記一連の複数のチェックサムにおける１つのチェックサムと一致する前記チェックサムツリーの各ノードに基づく、方法。
【請求項１８】
パーセンテージは、前記１または複数の分類の各々に割り当てられる、請求項１７に記載の方法。
【請求項１９】
前記複数のノードの各ノードは、既知の害のない複数のファイルのファジーチェックサムも含む、請求項１７または１８に記載の方法。
【請求項２０】
前記一連の複数のチェックサムを複数のチェックサムツリーと比較する段階を更に備える、請求項１７〜１９のいずれか１項に記載の方法。
【請求項２１】
前記ファイルに対する１または複数の特性を判断する段階と、
前記ファイルの前記１または複数の特性に基づいて、前記ファイルと比較するための少なくとも１つのチェックサムツリーを判断する段階とを更に備える、請求項１７〜２０のいずれか１項に記載の方法。
【請求項２２】
前記ファイルに割り当てられた前記１または複数の分類に基づいて、前記ファイルがマルウェアであるか否かを判断する段階を更に備える、請求項１７〜２１のいずれか１項に記載の方法。
【請求項２３】
前記１または複数の分類の各々にパーセンテージを割り当てる段階と、
各々の割り当てられたパーセンテージが閾値未満である場合、更なる分析のために複数のクラウドサービスに前記ファイルを送信する段階とを更に備える、請求項１７〜２２のいずれか１項に記載の方法。
【請求項２４】
マルウェアを軽減するためのシステムであって、
ファイルに対する一連の複数のチェックサムを判断するためのチェックサムモジュールと、
前記一連の複数のチェックサムを、各々が既知のマルウェアのファジーチェックサムを含む複数のノードを含むチェックサムツリーと比較するための分類モジュールとを備え、
前記分類モジュールは、１または複数の分類の前記ファイルへの割り当ても行い、前記１または複数の分類の各々は、前記一連の複数のチェックサムにおける１つのチェックサムに一致する前記チェックサムツリーの各ノードに基づき、
パーセンテージは、前記１または複数の分類の各々に割り当てられる、システム。
【請求項２５】
前記チェックサムモジュールは、前記ファイルの１または複数の特性に基づいて、前記ファイルと比較するための少なくとも１つのチェックサムツリーを判断する、請求項２４に記載のシステム。
【請求項２６】
請求項１から８のいずれか１項に記載のコンピュータプログラムを格納する、コンピュータ可読記録媒体。
【国際調査報告】
2017520828.tif 000018
2017520828.tif 000019
2017520828.tif 000020