(58)【調査した分野】(Int.Cl.,DB名)
前記列挙された特徴が、ポータブル実行可能(PE)コンピュータファイルの特徴を含み、前記ラベル付けされたサンプルが、ラベル付けされたコンピュータファイルと関連付けられ、前記ラベル付けされていないサンプルが、ラベル付けされていないコンピュータファイルと関連付けられる、請求項2に記載の方法。
前記特徴が、前記ラベル付けされたサンプル及びラベル付けされていないサンプルの構造を説明する構造特徴と、前記ラベル付けされたサンプル及びラベル付けされていないサンプル内のコンテンツを説明するコンテンツ特徴と、を含み、特徴のサブセットを選択する工程が、
1回以上の初期反復のために前記構造特徴のみの中から前記サブセットを選択する工程と、
前記初期反復後に生じる1回以上のその後の反復のために前記構造特徴及び前記コンテンツ特徴の中から前記サブセットを選択する工程と、を含む、請求項1に記載の方法。
前記選択された特徴のサブセットの前記収集された値の類似性に基づいて、前記ラベル付けされたサンプル及びラベル付けされていないサンプルを一緒にクラスタ化する工程が、
前記選択された特徴のサブセットの前記収集された値の中の少なくとも1つの類似性閾値測度を有するラベル付けされたサンプル及びラベル付けされていないサンプルを一緒にクラスタ化する工程を含み、異なる類似性閾値測度が、異なる反復のために使用される、請求項1に記載の方法。
前記少なくとも1つの停止条件が、前記クラスタ内のサンプルの数、クラスタの合計数、前記クラスタ内の前記サンプルが更にクラスタ化され得ることを用いた利用可能な特徴の数、及び前記クラスタ内の前記サンプルの特徴値の変動のうちの少なくとも1つに基づく停止条件を含む、請求項1に記載の方法。
前記特徴が、前記ラベル付けされたサンプル及びラベル付けされていないサンプルの構造を説明する構造特徴と、前記ラベル付けされたサンプル及びラベル付けされていないサンプル内のコンテンツを説明するコンテンツ特徴と、を含み、特徴のサブセットを選択する工程が、 1回以上の初期反復のために前記構造特徴のみの中から前記サブセットを選択する工程と、
前記初期反復後に生じる1回以上のその後の反復のために前記構造特徴及び前記コンテンツ特徴の中から前記サブセットを選択する工程と、を含む、請求項9に記載のコンピュータ。
前記選択された特徴のサブセットの前記収集された値の類似性に基づいて、前記ラベル付けされたサンプル及びラベル付けされていないサンプルを一緒にクラスタ化する工程が、
前記選択された特徴のサブセットの前記収集された値の中の少なくとも1つの類似性閾値測度を有するラベル付けされたサンプル及びラベル付けされていないサンプルを一緒にクラスタ化する工程を含み、異なる類似性閾値測度が、異なる反復のために使用される、請求項9に記載のコンピュータ。
前記反復が、階層内に前記クラスタと前記クラスタの下の子クラスタとを含む階層クラスタのセットを生成し、前記実行可能なコンピュータプログラムモジュールが、前記クラスタの前記ラベル付けされたサンプルから前記子クラスタのラベル付けされていないサンプルに前記ラベルを伝播するように更に実行可能である、請求項9に記載のコンピュータ。
前記特徴が、前記ラベル付けされたサンプル及びラベル付けされていないサンプルの構造を説明する構造特徴と、前記ラベル付けされたサンプル及びラベル付けされていないサンプル内のコンテンツを説明するコンテンツ特徴と、を含み、特徴のサブセットを選択する工程が、
1回以上の初期反復のために前記構造特徴のみの中から前記サブセットを選択する工程と、
前記初期反復後に生じる1回以上のその後の反復のために前記構造特徴及び前記コンテンツ特徴の中から前記サブセットを選択する工程と、を含む、請求項15に記載のコンピュータ可読記憶媒体。
前記選択された特徴のサブセットの前記収集された値の類似性に基づいて、前記ラベル付けされたサンプル及びラベル付けされていないサンプルを一緒にクラスタ化する工程が、
前記選択された特徴のサブセットの前記収集された値の中の少なくとも1つの類似性閾値測度を有するラベル付けされたサンプル及びラベル付けされていないサンプルを一緒にクラスタ化する工程を含み、異なる類似性閾値が、異なる反復のために使用される、請求項15に記載のコンピュータ可読記憶媒体。
【発明を実施するための形態】
【0010】
図1は、一実施形態に従うコンピューティング環境100のハイレベルブロック図である。
図1は、ネットワーク114によって接続された1つのセキュリティサーバ110及び3つのクライアント112を図解する。説明を単純且つ明瞭にするために、
図1において、3つのクライアント112のみが図解される。コンピューティング環境100の実施形態は、何千又は何百万ものクライアント112を有することができる。いくつかの実施形態は、複数のセキュリティサーバ110も有する。
【0011】
クライアント112は、悪意のあるソフトウェアをホストすることができる電子デバイスである。一実施形態では、クライアント112は、例えば、Microsoft Windows(登録商標)互換オペレーティングシステム(OS)、Apple OS X、及び/又はLinux(登録商標)ディストリビューションを実行する従来のコンピュータシステムである。クライアント112はまた、タブレットコンピュータ、モバイル電話、ビデオゲームシステム等のコンピュータ機能性を有する別のデバイスであり得る。クライアント112は、典型的に、悪意のあるソフトウェアをホストできる多数のコンピュータファイルを記憶する。
【0012】
「マルウェア」とも呼ばれる悪意のあるソフトウェアは、一般に、クライアント112上で不正に実行されるか、又は何らかの不正な機能性を有するソフトウェアとして定義される。マルウェアは、正当なファイルに付随する寄生ウイルス、コンピュータに感染して他のコンピュータに広がるためにコンピュータのセキュリティの弱さを悪用するワーム、正当に見えるが実際は隠れた悪意のあるコードを含むトロイの木馬プログラム、機密情報を捕捉するか、又は広告を表示させるためにコンピュータ上のキーストローク及び/又は他のアクションを監視するスパイウェア等の多くの形態をとることができる。
【0013】
クライアント112は、クライアント上でマルウェアの存在を検出するためにセキュリティモジュール116を実行する。セキュリティモジュール116は、クライアント112のOS又は別個の包括的セキュリティパッケージの一部に組み込まれてもよい。一実施形態では、セキュリティモジュール116は、セキュリティサーバ110を動作する同じエンティティによって提供される。セキュリティモジュール116は、ネットワーク114を介してセキュリティサーバ110と通信し、クライアント112側でマルウェアを検出するための検出データを取得する。
【0014】
セキュリティモジュール116によって取得された検出データは、マルウェアシグネチャを含む。マルウェアシグネチャは、クライアント112側でマルウェアのインスタンスを検出するために使用され得るマルウェアの属性を説明する。これらの属性は、コンピュータファイルにおいて見つかったマルウェアの特性であるデータの配列、及びクライアント112側で実行されるとマルウェアによって実施される挙動の配列を識別するストリングシグネチャを含み得る。検出データは、セキュリティモジュール116を使用して所与の1つのソフトウェアがマルウェアであるかを評価することができるレピュテーション、及び/又はマルウェア攻撃を示す可能性の高いクライアントの状態を識別するヒューリスティック等のクライアント112側でマルウェアを検出するための他の方法を説明するデータも含み得る。
【0015】
一実施形態では、セキュリティモジュール116は、検出データを用いてクライアント112を監視し、それがマルウェアを検出した場合、報告書を生成する。報告書は、クライアント112のユーザ及び/又はクライアント112の管理者等の別のエンティティに検出されたマルウェアを通知する。セキュリティモジュール116は、悪意のある挙動のブロック、マルウェアの検疫、及びマルウェアの削除等のマルウェアを修復する1つ以上のアクションも実施することができる。
【0016】
加えて、セキュリティモジュール116は、マルウェアのサンプル及びクライアント112側で検出された他のファイルをセキュリティサーバ110に提供(例えば、アップロード)し得る。一実施形態の「サンプル」は、関連付けられたコンピュータファイルを説明するデータである。サンプルは、ファイル全体、ファイルのサブセットを含む一部、又はファイルから抽出されたデータ若しくは得られたデータの収集物(例えば、ファイル内の情報のハッシュ)を含み得る。一実施形態では、セキュリティモジュール116は、セキュリティサーバ110に、ポータブル実行可能(PE)ファイルのみのサンプル等のクライアント112側で検出された特定の種類のファイルのみのサンプルを提供する。サンプルは、コンピュータファイル以外のデータも説明し得る。
【0017】
セキュリティサーバ110は、検出データを生成してクライアント112に分配させるように構成されたハードウェアデバイス及び/又はソフトウェアモジュールである。セキュリティサーバ110の例は、クライアント112のセキュリティモジュール116にセキュリティソフトウェア及びサービスを提供するウェブベースのシステムである。実施形態に応じて、セキュリティサーバ110の機能のうちの1つ以上は、クラウドコンピューティング環境によって提供され得る。本明細書で使用されるとき、「クラウドコンピューティング」は、動的にスケーラブルであり、かつ多くの場合、仮想化されたリソースがネットワーク114上のサービスとして提供される、コンピューティングのスタイルを指す。クライアント112及びセキュリティモジュール116に属する機能は、クラウドコンピューティング環境によっても提供され得る。
【0018】
セキュリティサーバ110の一実施形態は、マルウェア又はグッドウェア(即ち、悪意のないもの)のいずれかとして不明サンプルを分類するための分類モジュール118を含む。分類モジュール118は、類似の特徴を有するラベル付けされたサンプル及びラベル付けされていないサンプルを一緒にクラスタ化する反復型技術を使用する。初期クラスタ化反復は、類似の特徴を有するラベル付けされたサンプル及びラベル付けされていないサンプルのクラスタを生成する。その後の反復は、初期クラスタを再帰的に分解してより小さい子クラスタにする。サンプルの特徴の異なるサブセットは、クラスタ化の各反復中に異なるクラスタのために使用される。
【0019】
結果として得られるクラスタは、フラットクラスタ化アプローチを用いても明らかにされ得ないサンプル間の階層関係を明らかにする。例えば、分類モジュール118によって実施される反復型クラスタ化は、ラベル付けされていないサンプルを有する子クラスタ及び既知のマルウェアとしてラベル付けされたサンプルを有する親クラスタを生成し得、それによって、子クラスタ内のラベル付けされていないサンプルが、親クラスタ内のラベル付けされたサンプルと同じマルウェアファミリーに属することを明らかにする。分類モジュール118は、クラスタ内のサンプル間でラベル及び他の情報を伝播し、それにより以前にラベル付けされていなかったサンプル及び関連付けられたコンピュータファイルを分類する。
【0020】
セキュリティサーバ110は、新たな分類を使用して新たに分類されたコンピュータファイルに関する検出データを生成し得る。次いで、セキュリティサーバは、クライアント112のセキュリティモジュール116に検出データを分配し得る。一実施形態では、セキュリティサーバ110は、新たなデータが作成されたときにローリングベースで検出データを分配する。別の実施形態では、検出データは、所定のスケジュールで及び/又はセキュリティモジュール116による要求時に分配される。
【0021】
ネットワーク114は、セキュリティサーバ110と、クライアント112と、ネットワーク上の任意の他のエンティティとの間の通信経路を表す。一実施形態では、ネットワーク114は、インターネットであり、標準的な通信技術及び/又はプロトコルを使用する。したがって、ネットワーク114は、イーサネット(登録商標)、802.11、ワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス(WiMAX)、3G、デジタル加入者線(DSL)、非同期転送モード(ATM)、InfiniBand、PCIエキスプレス・アドバンスド・スイッチング等の技術を用いてリンクを含むことができる。同様に、ネットワーク114上で使用されるネットワーキングプロトコルは、マルチプロトコル・ラベル・スイッチング(MPLS)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ユーザ・データグラム・プロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)、簡易メール転送プロトコル(SMTP)、ファイル転送プロトコル(FTP)等を含むことができる。ネットワーク114上で交換されるデータは、ハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XML)等を含む技術及び/又はフォーマットを用いて表され得る。加えて、リンクの全て又はリンクのうちのいくつかは、セキュアソケットレイヤ(SSL)、トランスポート層セキュリティ(TLS)、仮想プライベートネットワーク(VPN)、インターネットプロトコルセキュリティ(IPsec)等の従来の暗号化技術を用いて暗号化され得る。他の実施形態では、エンティティは、上に説明されたものの代わりに又はそれらのものに加えて、カスタム及び/又は専用のデータ通信技術を使用できる。
【0022】
図2は、セキュリティサーバ110又はクライアント112としての使用のための典型的なコンピュータ200を図解するハイレベルブロック図である。チップセット204に連結される1つのプロセッサ202が図解される。メモリ206、記憶装置208、キーボード210、グラフィックスアダプタ212、ポインティングデバイス214、及びネットワークアダプタ216もチップセット204に連結される。ディスプレイ218がグラフィックスアダプタ212に連結される。一実施形態では、チップセット204の機能性は、メモリコントローラハブ220及び入出力コントローラハブ222によって与えられる。別の実施形態では、メモリ206は、チップセット204の代わりにプロセッサ202に直接連結される。
【0023】
記憶装置208は、ハードドライブ、コンパクトディスク読出し専用メモリ(CD−ROM)、DVD、又はソリッドステートメモリデバイス等の非一時的コンピュータ可読記憶媒体である。メモリ206は、プロセッサ202によって使用される命令及びデータを保持する。ポインティングデバイス214は、マウス、トラックボール、又は他の種類のポインティングデバイスであり、コンピュータシステム200内にデータを入力するためにキーボード210と組み合わせて使用される。グラフィックスアダプタ212は、ディスプレイ218上に画像及び他の情報を表示する。ネットワークアダプタ216は、コンピュータシステム200をネットワーク116に連結する。
【0024】
当技術分野で知られているように、コンピュータ200は、
図2に示されるコンポーネントとは異なるコンポーネント及び/又は他のコンポーネントを有することができる。更に、コンピュータ200は、図解されるある特定のコンポーネントを欠いてもよい。一実施形態では、セキュリティサーバとして機能するコンピュータ200は、複数のブレードコンピュータで形成され、キーボード210、ポインティングデバイス214、グラフィックスアダプタ212、及び/又はディスプレイ218を欠く。更に、記憶装置208は、(ストレージエリアネットワーク(SAN)内に組み入れられる等の)ローカルであり、且つ/又はコンピュータ200から離れていてもよい。
【0025】
この説明は、特定の機能性を提供するためのコンピュータプログラムロジックを指す「モジュール」という用語を使用する。モジュールは、ハードウェア、ファームウェア、及び/又はソフトウェアによって実装され得る。モジュールは、典型的に、記憶装置208等のコンピュータ可読記憶媒体に記憶され、メモリ206にロードされ、プロセッサ202によって実行される。
【0026】
図3は、一実施形態に従う、セキュリティサーバ110の分類モジュール118の詳細図を図解するハイレベルブロック図である。
図3に示されるように、分類モジュール118自体が複数のモジュールを含む。いくつかの実施形態では、機能は、本明細書に記載の様式とは異なる様式でこれらのモジュール間に分配される。
【0027】
記憶モジュール310は、分類モジュール118によって使用されるデータを記憶する。そのようなデータの例としては、ファイルサンプル、分類プロセス中に作成され使用される中間データ、結果として得られる分類、及び検出データが挙げられる。記憶モジュール310は、リレーショナルデータベース又は別の種類のデータベースを含み得る。
【0028】
図3に示されるように、記憶モジュール310の実施形態は、ラベル付けされたサンプルデータセット312及びラベル付けされていないサンプルデータセット314を含む、コンピュータファイルサンプルを保持するデータセットを記憶する。ラベル付けされたサンプルデータセット312(「ラベル付けされたデータセット」とも呼ばれる)は、既知のラベルを有するファイルのサンプルを含む。一実施形態では、ラベル付けされたデータセット312内の各サンプルは、グッドウェア又はマルウェアのいずれかとしてラベル付けされる。グッドウェアラベルは、サンプルと関連付けられたファイルが、悪意のないもの(即ち、悪意のないものであると既知である)として分類されることを示す。例えば、グッドウェアラベルは、クライアント112に頻繁に存在する共通及び/又は人気のソフトウェアプログラムからのファイルのサンプルに適用され得る。マルウェアラベルは、サンプルと関連付けられたファイルが、マルウェアとして分類されることを示す。
【0029】
一実施形態では、サンプルは、人間のセキュリティアナリストによって明示的に識別され、ラベル付けされ、ラベル付けされたデータセット312に追加される。例えば、セキュリティアナリストは、クライアント112で見つかった最も共通のグッドウェア及びマルウェアの代表的な集団を説明するサンプルを含むデータセットを作成し得る。同様に、セキュリティアナリストは、既知の種類のグッドウェア及びマルウェア(例えば、最も共通のグッドウェア及びマルウェアである必要はない)の幅広い表示を説明するデータセットを作成し得る。他の実施形態では、サンプルは、セキュリティサーバ110によって実施される自動化技術を介する等の他の技術を用いて、ラベル付けされ、ラベル付けされたデータセット312に追加される。
【0030】
対照的に、ラベル付けされていないサンプルデータセット314(「ラベル付けされていないデータセット」とも呼ばれる)は、ラベルが不明であるファイルのサンプルを含む。言い換えると、ラベル付けされていないデータセット314内のサンプルは、サンプルと関連付けられたコンピュータファイルがグッドウェアか又はマルウェアかどうか知られていないため、ラベル付けされない。したがって、ラベル付けされていないサンプルは、不明の分類となる。ラベル付けされていないデータセット314のサンプルは、クライアント112及び/又は他のソースから取得され得る。例えば、ラベル付けされていないサンプルは、クライアント112側で以前に不明であったファイルを検出するセキュリティモジュール116から受信され得る。同様に、ラベル付けされていないサンプルは、人間セキュリティアナリストによって追加され得る。
【0031】
更には、記憶モジュール310は、ラベル付けされた及びラベル付けされていないファイルサンプルの特徴を識別する特徴辞書316を記憶する。一実施形態では、特徴辞書316は、ラベル付けされたデータセット312及びラベル付けされていないデータセット314において個別のサンプルを区別するように使用され得るサンプル(それ故に、関連付けられたファイル)の特徴を列挙する。したがって、「特徴」は、異なるサンプル間で変化し得る特性である。いくつかのサンプルは、所与の特徴に関して同じ値を有し得るが、他のサンプルは、特徴に関して異なる値を有する。ラベル付けされたデータセット312及びラベル付けされていないデータセット314におけるサンプルが、PEファイルと関連付けられた実施形態では、特徴辞書316は、異なるPEファイルを区別するように使用され得る特徴を列挙する。いくつかの実施形態には、何百又は何千もの列挙された特徴が存在し得る。
【0032】
具体的には、PEファイルは、WINDOWS 7(「WINDOWS」は登録商標、以下同じ)又はWINDOWS 8等のMICROSOFT WINDOWSベースのオペレーティングシステム(OS)との使用を対象としたファイルである。典型的に、PEファイルは、ファイルが実行可能なファイルであることを示すファイル拡張子「.EXE」か又はファイルがダイナミックリンクライブラリ(DLL)であることを示す「.DLL」を有する。PEファイルは、コード又はデータのいずれかを含むセクションに分割される。これらのセクションは、ヘッダを含有するMS−DOSセクション、ファイルについての基本情報を含むデータ構造を保持するPEセクション、セクションの種類、サイズ、及びファイル内の場所を含む、ファイル内の各セクションについての情報を含むセクションテーブルを含む。更なるセクションとしては、コンパイラ又はアセンブラによって生成される汎用コードを保持するテキストセクション、並びにグローバル及び静的変数を保持するデータセクションを含む。更には、PEファイルは、他のプログラムによる使用のためのファイルによってエクスポートされる機能を識別するエクスポートテーブル、及びファイルによってインポートされるモジュールを識別するインポートセクションを含む。
【0033】
PEファイルの場合、特徴辞書316によって列挙される特徴は、PEファイルの構造を説明する構造特徴を含み得る。これらの構造特徴は、ファイルがどのように構築されたかを反映し、例えば、ファイルの作成に使用されたリンカー、(存在する場合)ファイルの圧縮に使用されたパッカー、及びファイルによって使用されたライブラリに影響され得る。構造特徴は、ファイル内のセクションの名前、及びファイルによって参照されるインポートされたモジュールの名前を含む。更なる構造特徴は、ファイル内のセクションの数、ファイルによって参照されるインポートされたモジュールの数、及びファイル内で使用されるリソース種類の数を含む。これらの構造特徴のうちの多くには技術的制限が存在せず、それ故に、特徴の値は、異なるファイルにわたって変化し得る。
【0034】
更には、特徴辞書316によって列挙される特徴は、PEファイル内のコンテンツを説明するコンテンツ特徴を含み得る。コンテンツ特徴は、ファイルが実行されるとファイルによって実施される機能性の種類及び拡張を反映する。したがって、異なる機能性を持つ2つのファイルのコンテンツ特徴は、ファイルの構造特徴が類似であった場合でも(例えば、同じパッカーを使用して各ファイルを圧縮したかのような結果をもたらし得る場合でも)変化し得る。コンテンツ特徴は、ファイルのサイズ及びファイル内の種々のセクションのサイズを含む。
【0035】
上に説明される静的特徴に加えて、特徴辞書316は、ファイルの挙動特徴も列挙し得る。挙動特徴は、ファイルが実行されるとファイルが実施する挙動を説明する(例えば、ファイルのランタイム挙動)。挙動特徴は、導き出すのに静的特徴よりもコンピュータ的に高価である。しかしながら、特徴辞書316に挙動特徴を含むことは、いくつかの実施形態では有益であり得る。
【0036】
特徴辞書の他の実施形態は、本明細書に考察されるものとは異なる特徴を説明し列挙し得る。更には、特徴辞書の実施形態は、Linux(登録商標)分配において使用される実行可能及びリンク可能なフォーマット(ELF)ファイル、及びOS Xにおいて使用されるMach Object (Mach−O)ファイル等の異なる種類のファイルの特徴を説明し得る。
【0037】
ここで分類モジュール118内の他のモジュールを見てみると、特徴収集モジュール318は、ラベル付けされたデータセット312及びラベル付けされていないデータセット314の各サンプルから特徴辞書316によって列挙される特徴の値を収集する。例えば、ラベル付けされたデータセット312内の所与のサンプルについては、特徴収集モジュール318は、前述の構造特徴及びコンテンツ特徴を含む、サンプルから列挙された特徴のうちの各々の値を収集する。サンプルは、その関連付けられたファイルを説明するため、収集された値は、関連付けられたファイルの同じ特徴の値も説明する。特徴収集モジュール318は、記憶モジュール310内又は他の箇所に収集した特徴を記憶し得る。
【0038】
クラスタ化モジュール320は、類似の特徴を有するサンプルが一緒にクラスタ化されるように、ラベル付けされたデータセット312及びラベル付けされていないデータセット314内のファイルサンプルをクラスタ化する。一実施形態では、クラスタ化モジュール320は、反復型及び再帰型技術を用いてクラスタ化を実施する。初期クラスタ化は、ラベル付けされたデータセット312及びラベル付けされていないデータセット314内のサンプルの全てに基づいて実施されてクラスタの初期セットを生成する。別のクラスタ化は、初期セット内の各クラスタにおいて実施され、各初期親クラスタから得られた子クラスタの新たなセットを生成する。再帰型クラスタ化は、各クラスタ化のための特徴の異なるサブセットを用いて、複数回反復されて、階層関係の複数のクラスタを生成する。したがって、ルート(初期)及びリーフ(最終)ノード内のそれらのものは別として各所与のクラスタは、親クラスタが得られたファイルサンプルのスーパーセットを含む親クラスタ、及び所与のクラスタ内のファイルサンプルのサブセットを含む子クラスタを有する。
【0039】
クラスタ化モジュール320は、反復型クラスタ化を制御するための反復制御モジュール322を含む。一般的に、反復制御モジュール322は、1つ以上の停止条件に達するまで、反復型クラスタ化工程を繰り返す。反復制御モジュール322のいくつかの実施形態によって使用される停止条件が以下に説明される。反復制御モジュール322の異なる実施形態は、本明細書に説明される条件以外の更なる及び/又は異なる停止条件を使用してもよく、複数の停止条件の組み合わせを使用してもよい。
【0040】
反復制御モジュール322は、クラスタ内のサンプルの数に基づく停止条件を使用してもよい。この実施形態では、反復制御モジュール322は、クラスタ内のサンプルの数が特定の閾値数を下回るまで反復的にクラスタ化する。所与のクラスタが、サンプルの閾値数より少ない数を有した時点で、反復型クラスタ化は、そのクラスタに関しては停止し、結果として得られるクラスタは、クラスタ階層のその部分に関して最終クラスタ化(即ち、リーフノード)を表す。
【0041】
反復制御モジュール322は、クラスタの数に基づく停止条件を使用することもできる。この実施形態では、反復制御モジュール322は、クラスタの合計数が特定の閾値数を超えるまで反復的にクラスタ化する。合計クラスタの閾値数を上回って存在した場合、反復型クラスタ化は停止し、結果として得られるクラスタは、サンプルの最終クラスタ化を表す。
【0042】
反復制御モジュール322は、クラスタ化が実施され得るサンプルの利用可能な特徴の数に基づく停止条件を更に使用し得る。この実施形態では、反復制御モジュール322は、クラスタ化が実施され得るサンプルの利用可能な特徴の数が特定の閾値数を下回るまで反復的にクラスタ化する。利用可能な特徴の数は、クラスタ内のサンプルが異なる値を有する特徴の数に基づき得る。例えば、1000の合計特徴が存在した場合、クラスタ内のサンプルは、990の特徴に関しては同じ値を有し、クラスタに関しては10の利用可能な特徴が存在する。
【0043】
反復制御モジュール322は、所与のクラスタ内の特徴値の変動に基づく停止条件を使用することもできる。この実施形態では、反復制御モジュール322は、クラスタ内のサンプルに関して利用可能な特徴間で変動の量を決定する。クラスタに関する変動の量が閾値量内であった場合(例えば、クラスタ内のポイントがクラスタの重心と重複するか、又はある距離閾値内であるか)、反復制御モジュール322は、そのクラスタの反復型クラスタ化を停止する。
【0044】
特徴選択モジュール324は、反復制御モジュール322によって有効化され、クラスタ化プロセスの反復において使用される特徴を選択する。一実施形態では、特徴選択モジュール324は、各反復中に各クラスタに関する特徴辞書316に列挙された特徴の異なるサブセットを選択する。加えて、特徴選択モジュール324は、そのような特徴がサンプルを排除するように機能しないため、クラスタ化されるサンプルの値が変動を有しない任意の特徴を選択から除外し得る。特徴選択モジュール324が選択する特徴の中からの特徴(例えば、クラスタ内のサンプルの値が異なる特徴)は、「利用可能な」又は「残っている」特徴と称される。
【0045】
代替的な実施形態では、特徴選択モジュール324は、反復中のクラスタを伴う使用のためにサンプルの特徴のうちのいずれかの中から選択する。例えば、セキュリティアナリストは、特定のクラスタのクラスタ化反復に関する特徴を明示的に選択し得る。アナリストは、クラスタ内のサンプルが、特定の特徴の値において差異を有するかにかかわらず、全ての可能な特徴の中から選択し得る。
【0046】
一実施形態の特徴選択モジュール324は、1回以上の初期クラスタ化反復に関する構造特徴を選択する。構造特徴は、ファイルがどのように構築されたかを反映するため、同じ技術を用いて構築された異なるファイルは、同じ構造特徴を有する傾向がある。例えば、ファイルパッカー(即ち、他の実行可能なプログラムを圧縮するためのプログラム)は、パックされた(圧縮された)ファイルの構造特徴を均質化する傾向がある。したがって、同じファイルパッカーを用いてパックされたファイルは、共通の構造特徴を有する傾向がある。したがって、構造特徴に基づく初期クラスタ化は、同じ技術(例えば、同じパッカー)を用いて作成されるファイルと関連付けられたサンプルを一緒にクラスタ化する傾向がある。次いで、異なる技術を用いて作成されるファイルと関連付けられたサンプルは、異なるクラスタとなる傾向がある。
【0047】
データセット312、314内のサンプルが構造特徴に基づいてクラスタ化されたとき、特徴選択モジュール324は、その後のクラスタ化反復に関してコンテンツ特徴の中から選択する。コンテンツ特徴に基づくクラスタ化は、構造的類似性を無視し、代わりにファイル内のコンテンツの類似性に基づいてクラスタ化する(例えば、実行されたときにファイルによって実施される機能性を反映する特徴に基づいて)。したがって、コンテンツ特徴に基づくクラスタ化は、同じクラスタ内の同じマルウェアファミリーからのファイルサンプルを設置する傾向がある。同じパッカーを使用する異なるマルウェアファミリー、及びまたパッカーを使用する任意の合法的ソフトウェアは、(構造特徴に基づく初期クラスタの子である)異なるクラスタとなって終わる傾向がある。
【0048】
特徴選択モジュール324は、1つ以上の様々な技術を用いてコンテンツ特徴を選択し得る。特徴選択モジュール324は、次のクラスタ化反復に関する利用可能な特徴のランダムサブセットを選択し得る。加えて、特徴選択モジュール324は、利用可能な特徴に関するクラスタ内のサンプルの値における差異の量を決定し得、次いで、「n」が整数であるとき、次のクラスタ化反復に関する最小差異を有するn特徴を選択し得る。他の実施形態の特徴選択モジュール324は、異なる及び/又は更なる技術を使用して利用可能なコンテンツ特徴の中から選択し得る。
【0049】
クラスタ生成モジュール326は、反復制御モジュール322によって有効化され、特徴選択モジュール324によって選択される特徴を用いてファイルサンプルをクラスタ化する。クラスタ生成モジュール326によってクラスタ化されるサンプルは、どのクラスタ化の反復が実施されているかに依存する。初期反復について、クラスタ生成モジュール326は、ラベル付けされたデータセット312もラベル付けされていないデータセット314もいずれもにおいてサンプルの全てをクラスタ化する。その後の反復中、クラスタ生成モジュール326は、前の反復中に生成された所与のクラスタ内に存在するサンプルのみをクラスタ化する。
【0050】
所与のサンプルのセット及び選択された特徴のセットについては、クラスタ生成モジュール326は、各々が選択された特徴に関して類似の値を有する1つ以上のサンプルを有する、複数のクラスタを生成する。このプロセスの一環として、クラスタ生成モジュール326は、セット内の各サンプルに関する選択された特徴の値を比較して、どのサンプルがどの他のサンプルに類似しているかを決定する。少なくとも1つの類似性の閾値量を有するサンプルは、一緒にクラスタ化される。一実施形態では、クラスタ生成モジュール326は、類似性の指標として編集距離を使用し、編集の閾値数内に存在する選択された特徴に関する値を有するサンプルを一緒にクラスタ化する。加えて、異なる実施形態のクラスタ生成モジュール326は、異なる及び/又は更なる類似性指標を使用し得る。
【0051】
類似性閾値は、実施形態によって異なり得る。一実施形態では、クラスタ生成モジュール326は、異なるクラスタ化反復に対しては、異なる類似性閾値を使用する。具体的には、クラスタ生成モジュール326は、初期クラスタ化反復に対しては、低類似性閾値(即ち、疎性類似性閾値)を使用する。低類似性閾値は、比較的異種のファイルサンプルを一緒にクラスタ化させ、各々がより多くのサンプルを含むより少ないクラスタをもたらす。その後のクラスタ化反復については、クラスタ生成モジュール326は、ますますより高い類似性閾値を使用する(即ち、より厳密な類似性閾値を増加させる)。より高い類似性閾値は、比較的類似のファイルサンプルを一緒にクラスタ化させ、各々がより少ないサンプルを含むより多くのクラスタをもたらす。
【0052】
情報伝播モジュール328は、クラスタ内のサンプル間及び/又はクラスタ間にラベル及び他の情報を伝播する。一実施形態では、情報伝播モジュール328は、反復制御モジュール322が停止条件に達し反復を停止させた後、有効化される。この時点で、複数のクラスタが存在し、その各クラスタは、1つ以上のサンプルを含む。クラスタは、ラベル付けされたデータセット312とラベル付けされていないデータセット314との組み合わせから最初に得られるため、所与のクラスタ内のサンプルは、全てのラベル付けされたサンプル、全てのラベル付けされていないサンプル、又はラベル付けされたサンプルとラベル付けされていないサンプルとの混合を含み得る。この後者の場合では、情報伝播モジュール328は、クラスタ内のラベル付けされたサンプルからクラスタ内のラベル付けされていないサンプルにラベル及び他の情報を伝播し得る。
【0053】
典型的に、クラスタ化プロセスは、同じマルウェアファミリー内のサンプル等の関連するサンプルを一緒にクラスタ化することができる。クラスタ内のサンプルのうちの少なくとも1つが、ラベル付けされた場合(例えば、マルウェアとして)、情報伝播モジュール328は、このラベルをクラスタ内の他のサンプルに伝播する。したがって、この伝播は、伝播されたラベルに従って他のサンプルに関連付けられたファイルを分類する。伝播モジュール328は、マルウェアが表すマルウェアの種類についての情報、マルウェアの重大度、及びマルウェアの修復の仕方等の伝播されたラベルを有するファイルについて既知の他の情報もまた伝播し得る。
【0054】
例えば、クラスタ化は、マルウェアとしてサンプルを識別するラベルを有する1つのサンプル、及び不明のラベルを有する4つのサンプルを含むクラスタを生成し得る。ラベル付けされたサンプルは、既知の種類のマルウェアを含むファイルと関連付けられる。他の4つのサンプルは、クラスタ内のファイルが全て、類似の特徴を有するため、既知のマルウェアにおいて見つかった同じ悪意のあるコードを含む可能性が高い。したがって、伝播モジュール328は、ラベル付けされたサンプルから4つのラベル付けされていないサンプル、及び転じてラベル付けされていないファイルと関連付けられたファイルに、ラベル及び他の情報を伝播する。この様式では、(以前に)ラベル付けされていないファイルと関連付けられたファイルは、マルウェアとして分類される。加えて、サンプルのクラスタは、マルウェアファミリーを説明する。
【0055】
情報伝播モジュール328は、ラベル及びクラスタの階層内の他の情報も伝播し得る。特に、情報伝播モジュール328は、子クラスタ内のラベル付けされていないサンプルに、所与の親クラスタ内のラベル付けされたサンプルに関連付けられた情報を伝播し得る。親クラスタ内の1つ以上のサンプルがラベル付けされる(例えば、マルウェアとして)一実施例を考慮するが、親クラスタの子内のサンプルは、どれも全くラベル付けされていない。この場合では、子クラスタ内のラベル付けされていないサンプルは、定義によるサンプルが、親クラスタ内のマルウェアとラベル付けされたサンプルと共通の特徴を有するため、以前に未検出であったマルウェアファミリーの変形を表す可能性が高い。したがって、情報伝播モジュール328は、ラベル付けされたサンプルから子クラスタ内のラベル付けされていないサンプルに、ラベル及び他の情報を伝播し得る。
【0056】
情報伝播モジュール328は、他の技術を使用してラベルを伝播し得る。例えば、完了したクラスタ化プロセスから得られるクラスタが、異なるラベルを持つサンプルを含んだ(例えば、マルウェアとラベル付けされたサンプル及びグッドウェアとラベル付けされたサンプルを含む)場合、実施形態の情報伝播モジュール328は、大多数のラベルか又はクラスタ内のラベル付けされていないサンプルに統計的に有意であるとして識別された他のラベルを伝播し得る。情報伝播モジュール328はまた、伝播されたラベルとは異なるラベルを有する任意のサンプルをセキュリティアナリストに報告し得る。2つのサンプルが、異なるラベルを有するにもかかわらず一緒にクラスタ化されたという事実は、ラベル付けされたデータセット312内のサンプルが誤ってラベル付けされていることを示し得る。セキュリティアナリストは、情報伝播モジュール328からの報告書を調査することができ、誤ってラベル付けされているサンプルを修復することができる。
【0057】
図4は、不明のコンピュータファイルを分類するためにセキュリティサーバ110の一実施形態によって実施される工程を図解するフロー図である。他の実施形態は、異なる及び/又は更なる工程を実施することができる。更には、他の実施形態は、異なる順序で工程を実施することができる。更には、工程のうちの一部又は全ては、セキュリティサーバ110以外のエンティティによって実施され得る。
【0058】
最初に、コンピュータファイルサンプルデータセットが、確立される410。サンプルデータセットは、ラベル付けされたデータセット312及びラベル付けされていないデータセット314を含む。集合的に、ラベル付けされたデータセット312及びラベル付けされていないデータセット内のサンプルは、ラベル付けされたサンプル及びラベル付けされていないサンプルを含むサンプルのセットを形成する。セキュリティサーバ110は、構造特徴もコンテンツ特徴もいずれも含む、データセット312、314内のサンプルから特徴辞書316に列挙された特徴の値を収集する412。例えば、特徴辞書316が、特徴としてファイル内のセクションの数を列挙した場合、セキュリティサーバ110は、ファイルサンプルラベル付けされたデータセット312及びラベル付けされていないデータセット314内の各ファイルサンプルからセクションの数を収集する。
【0059】
セキュリティサーバ110は、反復的且つ再帰的に、ラベル付けされたデータセット312及びラベル付けされていないデータセット314内のファイルサンプルをクラスタ化する。セキュリティサーバ110は、クラスタ化反復における使用のための特徴辞書316に列挙される特徴のサブセットを選択する414。したがって、第1の反復については、セキュリティサーバ110は、ラベル付けされたデータセット312及びラベル付けされていないデータセット314内のサンプルの全てをクラスタ化する際の使用のための特徴のサブセットを選択する414。その後のクラスタ化反復については、セキュリティサーバ110は、前の反復において作成されたクラスタ内のサンプルをクラスタ化する際の使用のための特徴のサブセットを選択する。
【0060】
実施形態のセキュリティサーバ110は、利用可能な特徴のセットの中から特徴を選択する414。一実施形態では、利用可能な特徴は、クラスタ内の更にクラスタ化されるサンプルの値が変動を有する、特徴である。セキュリティサーバ110は、1回以上の初期クラスタ化反復に関するファイルの構造特徴を選択し得る414。したがって、第1のクラスタ化反復については、セキュリティサーバ110は、ファイルセクションの名前及びインポートされたモジュールの数等の構造特徴を選択し得る414。初期クラスタ化反復の後、実施形態のセキュリティサーバ110は、ファイルのコンテンツ特徴の中から選択する414。
【0061】
セキュリティサーバ110は、選択された特徴を用いてファイルサンプルをクラスタ化する416。一般的に、セキュリティサーバ110は、選択された特徴に関する類似の値を有するファイルサンプルを一緒にクラスタ化する416。サンプルを一緒にクラスタ化するのに必要とされる類似性の閾値量は、異なる実施形態において様々であり得る。一実施形態では、セキュリティサーバ110は、クラスタ化の初期反復に関しては、低類似性閾値を使用し、その後の反復に関しては、より高い類似性閾値を使用する。
【0062】
各クラスタ化反復は、クラスタのセットを生成する。初期クラスタ化反復は、ラベル付けされたデータセット312及びラベル付けされていないデータセット314内のサンプルを、初期クラスタのセットにクラスタ化する。その後のクラスタ化反復は、各初期クラスタを子クラスタのセットにクラスタ化し、その各子クラスタは、その親クラスタ内のクラスタのサブセットを含む。セキュリティサーバ110は、先行の反復によって生成された各クラスタに関する利用可能な特徴のセットの中から選択される特徴を用いてクラスタ化を反復的に繰り返して、クラスタの階層を生成する。階層の一番上では、単一のクラスタが、組み合わされたラベル付けされたデータセット312及びラベル付けされていないデータセット314(ルートクラスタ)を表す。階層の一番下では、クラスタが、最終クラスタ化(リーフクラスタ)を表す。ルートクラスタとリーフクラスタとの間には、中間クラスタがあり、各々が、親クラスタと複数の子クラスタと、を有する。
【0063】
セキュリティサーバ110は、停止条件が存在するまで、特徴選択414及びクラスタ化416工程を再帰的且つ反復的に繰り返す。一実施形態では、セキュリティサーバ110は、前のクラスタ化反復中に生成された各クラスタに関する停止条件に達したかを決定する418。停止条件は、例えば、前の反復によって生成されたクラスタの数、クラスタ内のサンプルの数、クラスタ化が実施され得る利用可能な特徴の数、及びクラスタ内の特徴の変動の量、に基づき得る。停止条件が存在しなかった418場合、セキュリティサーバ110は、特徴選択414及びクラスタ化416工程を繰り返す。
【0064】
セキュリティサーバ110が、クラスタに関する停止条件に達したと決定する418と、セキュリティサーバは、任意に、クラスタ内のサンプルの間においてラベル及び他の情報を伝播する420。セキュリティサーバ110は、そのクラスタに関する停止条件に達するとき各クラスタ上で伝播420を実施し得るか、全てのクラスタに関する停止条件に達した後に伝播420を実施し得るか、又は他の時に伝播を実施し得る。
【0065】
一実施形態では、セキュリティサーバ110は、クラスタが、少なくとも1つのラベル付けされたサンプル及び少なくとも1つのラベル付けされていないサンプルを含んだ場合、クラスタ内のラベルを伝播する420。この場合では、セキュリティサーバ110は、ラベル付けされたサンプルのラベルをラベル付けされていないサンプルに伝播し得110、それにより(以前に)ラベル付けされていないサンプルと関連付けられたファイルを分類する。セキュリティサーバ110は、ラベル付けされたサンプルと関連付けられたファイル及びラベル付けされていないサンプルと関連付けられたファイルについての他の情報も伝播し得る。セキュリティサーバ110は、ラベル及びクラスタ階層内の他の情報を、親クラスタ内のサンプルのラベルを伝播する工程等によって、子クラスタ内のラベル付けされていないサンプルに更に伝播し得る。
【0066】
次いで、セキュリティサーバ110は、上述のクラスタ化技術を介して分類されたファイル上で他の動作を実施し得る。例えば、セキュリティアナリストは、マルウェアとして新たに分類されるファイルを分析して、ファイルに関する検出データを生成し得る。次いで、検出データは、クライアント側でマルウェアの検出を改善するために、クライアント112のセキュリティモジュール116に供給され得る。
【0067】
クラスタ化技術が、コンピュータファイルと関連付けられたサンプルをクラスタ化するコンテクストにおいて主として上に説明されるが、その技術は、他の環境においてもまた使用され得る。その技術は、データが階層関係を有するという予測が存在する任意のデータ及びドメインに対する適用である。例えば、学術科目についてのテキスト文書は、科学、財政学、数学等に関連しているとして高いレベルでクラスタ化され得る。次いで、高いレベルのクラスタは、科目の具体的な態様に関連しているより低いレベルのクラスタにクラスタ化され得る。例えば、科学クラスタ内の文書は、物理学、生物学、及び化学に関連するサブクラスタにクラスタ化され得る。
【0068】
上記の説明は、特定の実施形態の動作を図解するために含まれており、本発明の範囲を限定するようには意図されていない。本発明の範囲は、以下の特許請求の範囲によってのみ限定される。上記の考察から、多くの変形形態が、本発明の趣旨及び範囲によってなおも包含されるであろうことが、当業者にとっては明らかである。