(57)【特許請求の範囲】
【請求項１】
サンプルを分類するコンピュータに実装された方法であって、
ラベル付けされたサンプル及びラベル付けされていないサンプルを含むサンプルのセットを確立する工程と、
前記ラベル付けされたサンプル及びラベル付けされていないサンプルから特徴の値を収集する工程と、
前記特徴のサブセットを選択する工程と、
クラスタのセットを生成するために、前記選択された特徴のサブセットの前記収集された値の類似性に基づいて、前記ラベル付けされたサンプル及びラベル付けされていないサンプルを一緒にクラスタ化する工程であって、各クラスタが、前記サンプルのセットからのサンプルのサブセットを有する、クラスタ化する工程と、
少なくとも１つの停止条件に達するまで、前記クラスタのセット内の各クラスタ内の前記サンプルのサブセットにおいて前記選択する工程及びクラスタ化する工程を再帰的に反復する工程であって、前記反復が、ラベル付けされたサンプル及びラベル付けされていないサンプルを有するクラスタを生成する、反復する工程と、
前記ラベル付けされていないサンプルを分類するために、前記クラスタの前記ラベル付けされたサンプルから前記クラスタの前記ラベル付けされていないサンプルにラベルを伝播する工程と、を含む、方法。
【請求項２】
特徴の値を収集する工程が、
前記ラベル付けされたサンプル及びラベル付けされていないサンプルを区別することができる特徴を列挙する特徴辞書にアクセスする工程と、
前記ラベル付けされたサンプル及びラベル付けされていないサンプルから前記列挙された特徴の値を収集する工程と、を含む、請求項１に記載の方法。
【請求項３】
前記列挙された特徴が、ポータブル実行可能（ＰＥ）コンピュータファイルの特徴を含み、前記ラベル付けされたサンプルが、ラベル付けされたコンピュータファイルと関連付けられ、前記ラベル付けされていないサンプルが、ラベル付けされていないコンピュータファイルと関連付けられる、請求項２に記載の方法。
【請求項４】
特徴のサブセットを選択する工程が、
利用可能な特徴の中から前記特徴のサブセットを選択する工程を含み、前記利用可能な特徴が、前記反復時にクラスタ化されるサンプルの値が変動を有する特徴から成る、請求項１に記載の方法。
【請求項５】
前記特徴が、前記ラベル付けされたサンプル及びラベル付けされていないサンプルの構造を説明する構造特徴と、前記ラベル付けされたサンプル及びラベル付けされていないサンプル内のコンテンツを説明するコンテンツ特徴と、を含み、特徴のサブセットを選択する工程が、
１回以上の初期反復のために前記構造特徴のみの中から前記サブセットを選択する工程と、
前記初期反復後に生じる１回以上のその後の反復のために前記構造特徴及び前記コンテンツ特徴の中から前記サブセットを選択する工程と、を含む、請求項１に記載の方法。
【請求項６】
前記選択された特徴のサブセットの前記収集された値の類似性に基づいて、前記ラベル付けされたサンプル及びラベル付けされていないサンプルを一緒にクラスタ化する工程が、
前記選択された特徴のサブセットの前記収集された値の中の少なくとも１つの類似性閾値測度を有するラベル付けされたサンプル及びラベル付けされていないサンプルを一緒にクラスタ化する工程を含み、異なる類似性閾値測度が、異なる反復のために使用される、請求項１に記載の方法。
【請求項７】
前記少なくとも１つの停止条件が、前記クラスタ内のサンプルの数、クラスタの合計数、前記クラスタ内の前記サンプルが更にクラスタ化され得ることを用いた利用可能な特徴の数、及び前記クラスタ内の前記サンプルの特徴値の変動のうちの少なくとも１つに基づく停止条件を含む、請求項１に記載の方法。
【請求項８】
前記反復が、階層内に前記クラスタと前記クラスタの下の子クラスタとを含む階層クラスタのセットを生成し、
前記クラスタ内の前記ラベル付けされたサンプルから前記子クラスタ内のラベル付けされていないサンプルに前記ラベルを伝播する工程を更に含む、請求項１に記載の方法。
【請求項９】
サンプルを分類するためのコンピュータであって、
非一時的コンピュータ可読記憶媒体であって、
ラベル付けされたサンプル及びラベル付けされていないサンプルを含むサンプルのセットを確立する工程と、
前記ラベル付けされたサンプル及びラベル付けされていないサンプルから特徴の値を収集する工程と、
前記特徴のサブセットを選択する工程と、
クラスタのセットを生成するために、前記選択された特徴のサブセットの前記収集された値の類似性に基づいて、前記ラベル付けされたサンプル及びラベル付けされていないサンプルを一緒にクラスタ化する工程であって、各クラスタが、前記サンプルのセットからのサンプルのサブセットを有する、クラスタ化する工程と、
少なくとも１つの停止条件に達するまで、前記クラスタのセット内の各クラスタ内の前記サンプルのサブセットにおいて前記選択する工程及びクラスタ化する工程を再帰的に反復する工程であって、前記反復が、ラベル付けされたサンプル及びラベル付けされていないサンプルを有するクラスタを生成する、反復する工程と、
前記ラベル付けされていないサンプルを分類するために、前記クラスタの前記ラベル付けされたサンプルから前記クラスタの前記ラベル付けされていないサンプルにラベルを伝播する工程と、を含む工程を実施するように実行可能なコンピュータプログラムモジュールを記憶する、非一時的コンピュータ可読記憶媒体と、
前記コンピュータプログラムモジュールを実行するためのコンピュータプロセッサと、を備える、コンピュータ。
【請求項１０】
特徴の値を収集する工程が、
前記ラベル付けされたサンプル及びラベル付けされていないサンプルを区別することができる特徴を列挙する特徴辞書にアクセスする工程と、
前記ラベル付けされたサンプル及びラベル付けされていないサンプルから前記列挙された特徴の値を収集する工程と、を含む、請求項９に記載のコンピュータ。
【請求項１１】
特徴のサブセットを選択する工程が、
利用可能な特徴の中から前記特徴のサブセットを選択する工程を含み、前記利用可能な特徴が、前記反復時にクラスタ化されるサンプルの値が変動を有する特徴から成る、請求項９に記載のコンピュータ。
【請求項１２】
前記特徴が、前記ラベル付けされたサンプル及びラベル付けされていないサンプルの構造を説明する構造特徴と、前記ラベル付けされたサンプル及びラベル付けされていないサンプル内のコンテンツを説明するコンテンツ特徴と、を含み、特徴のサブセットを選択する工程が、  １回以上の初期反復のために前記構造特徴のみの中から前記サブセットを選択する工程と、
前記初期反復後に生じる１回以上のその後の反復のために前記構造特徴及び前記コンテンツ特徴の中から前記サブセットを選択する工程と、を含む、請求項９に記載のコンピュータ。
【請求項１３】
前記選択された特徴のサブセットの前記収集された値の類似性に基づいて、前記ラベル付けされたサンプル及びラベル付けされていないサンプルを一緒にクラスタ化する工程が、
前記選択された特徴のサブセットの前記収集された値の中の少なくとも１つの類似性閾値測度を有するラベル付けされたサンプル及びラベル付けされていないサンプルを一緒にクラスタ化する工程を含み、異なる類似性閾値測度が、異なる反復のために使用される、請求項９に記載のコンピュータ。
【請求項１４】
前記反復が、階層内に前記クラスタと前記クラスタの下の子クラスタとを含む階層クラスタのセットを生成し、前記実行可能なコンピュータプログラムモジュールが、前記クラスタの前記ラベル付けされたサンプルから前記子クラスタのラベル付けされていないサンプルに前記ラベルを伝播するように更に実行可能である、請求項９に記載のコンピュータ。
【請求項１５】
サンプルを分類するためのコンピュータプログラムモジュールを記憶する非一時的コンピュータ可読記憶媒体であって、前記コンピュータプログラムモジュールが、
ラベル付けされたサンプル及びラベル付けされていないサンプルを含むサンプルのセットを確立する工程と、
前記ラベル付けされたサンプル及びラベル付けされていないサンプルから特徴の値を収集する工程と、
前記特徴のサブセットを選択する工程と、
クラスタのセットを生成するために、前記選択された特徴のサブセットの前記収集された値の類似性に基づいて、前記ラベル付けされたサンプル及びラベル付けされていないサンプルを一緒にクラスタ化する工程であって、各クラスタが、前記サンプルのセットからのサンプルのサブセットを有する、クラスタ化する工程と、
少なくとも１つの停止条件に達するまで、前記クラスタのセット内の各クラスタ内の前記サンプルのサブセットにおいて前記選択する工程及びクラスタ化する工程を再帰的に反復する工程であって、前記反復が、ラベル付けされたサンプル及びラベル付けされていないサンプルを有するクラスタを生成する、反復する工程と、
前記ラベル付けされていないサンプルを分類するために、前記クラスタの前記ラベル付けされたサンプルから前記クラスタの前記ラベル付けされていないサンプルにラベルを伝播する工程と、を含む、工程を実施するように実行可能である、コンピュータ可読記憶媒体。
【請求項１６】
特徴の値を収集する工程が、
前記ラベル付けされたサンプル及びラベル付けされていないサンプルを区別することができる特徴を列挙する特徴辞書にアクセスする工程と、
前記ラベル付けされたサンプル及びラベル付けされていないサンプルから前記列挙された特徴の値を収集する工程と、を含む、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１７】
特徴のサブセットを選択する工程が、
利用可能な特徴の中から前記特徴のサブセットを選択する工程を含み、前記利用可能な特徴が、前記反復時にクラスタ化されるサンプルの値が変動を有する特徴から成る、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１８】
前記特徴が、前記ラベル付けされたサンプル及びラベル付けされていないサンプルの構造を説明する構造特徴と、前記ラベル付けされたサンプル及びラベル付けされていないサンプル内のコンテンツを説明するコンテンツ特徴と、を含み、特徴のサブセットを選択する工程が、
１回以上の初期反復のために前記構造特徴のみの中から前記サブセットを選択する工程と、
前記初期反復後に生じる１回以上のその後の反復のために前記構造特徴及び前記コンテンツ特徴の中から前記サブセットを選択する工程と、を含む、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記選択された特徴のサブセットの前記収集された値の類似性に基づいて、前記ラベル付けされたサンプル及びラベル付けされていないサンプルを一緒にクラスタ化する工程が、
前記選択された特徴のサブセットの前記収集された値の中の少なくとも１つの類似性閾値測度を有するラベル付けされたサンプル及びラベル付けされていないサンプルを一緒にクラスタ化する工程を含み、異なる類似性閾値が、異なる反復のために使用される、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記反復が、階層内に前記クラスタと親クラスタの下の子クラスタとを含む階層クラスタのセットを生成し、
前記クラスタ内の前記ラベル付けされたサンプルから前記子クラスタ内のラベル付けされていないサンプルに前記ラベルを伝播するためのモジュールを更に含む、請求項１５に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、コンピュータセキュリティに関し、具体的には、コンピュータファイルのサンプル等のサンプルを分類する工程に関する。
【背景技術】
【０００２】
現代のコンピュータを攻撃することができる多種多様な悪意のあるソフトウェア（マルウェア）が存在する。マルウェアの脅威には、コンピュータウイルス、ワーム、トロイの木馬プログラム、スパイウェア、アドウェア、クライムウェア、及びフィッシングウェブサイトが含まれる。マルウェアは、ログイン、パスワード、銀行口座識別子、及びクレジットカード番号等の重要な情報を不正に取り込むことができる。同様に、マルウェアは、攻撃者が感染しているコンピュータにアクセスしそれを制御することを可能にする。
【０００３】
現代のマルウェアは、多くの場合、標的が絞られており、関連した一握りのコンピュータにしか送られない。例えば、トロイの木馬プログラムは、特定の企業の特定の部門内のコンピュータを標的とするように設計され得る。更には、大量に分配されたマルウェアでさえも、マルウェアを経時的に変化させる多相性を含み得る。同じマルウェアのインスタンスが小数しか存在せず、セキュリティソフトウェアが、所定のコンピュータを感染させた特定のインスタンスを認識するように構成されない場合があるため、セキュリティソフトウェアがそのようなマルウェアを検出することは困難である。
【０００４】
しかしながら、多くの場合、マルウェアの異なるインスタンスは関連している。例えば、複数の見た目には異なるマルウェアファイルは、実際には、単一の種類のマルウェアの変形であり得る。これらの変形は、単一のマルウェア「ファミリー」を集合的に形成する。マルウェアのファミリー関係の知識を用いて、セキュリティソフトウェアの検出能力を改善することができる。
【発明の概要】
【課題を解決するための手段】
【０００５】
上術及び他の問題は、サンプルを分類するための方法、コンピュータ、及びコンピュータ可読記憶媒体によって対処される。方法は、ラベル付けされたサンプル及びラベル付けされていないサンプルを含むサンプルのセットを確立する工程を含む。特徴の値がラベル付けされたサンプル及びラベル付けされていないサンプルから収集され、特徴のサブセットが選択される。クラスタのセットを生成するために、選択された特徴のサブセットの収集された値の類似性に基づいて、ラベル付けされたサンプル及びラベル付けされていないサンプルが一緒にクラスタ化され、各クラスタは、サンプルのセットからのサンプルのサブセットを有する。少なくとも１つの停止条件に達するまで、クラスタのセット内の各クラスタ内のサンプルのサブセットにおいて選択する工程及びクラスタ化する工程が再帰的に反復される。反復は、ラベル付けされたサンプル及びラベル付けされていないサンプルを有するクラスタを生成する。ラベル付けされていないサンプルを分類するために、クラスタ内のラベル付けされたサンプルからクラスタ内のラベル付けされていないサンプルにラベルが伝播される。
【０００６】
コンピュータの実施形態は、工程を実施するために実行可能なコンピュータプログラムモジュールを記憶する非一時的コンピュータ可読記憶媒体を備える。工程は、ラベル付けされたサンプル及びラベル付けされていないサンプルを含むサンプルのセットを確立する。特徴の値がサンプルから収集され、特徴のサブセットが選択される。クラスタのセットを生成するために、選択された特徴のサブセットの収集された値の類似性に基づいて、ラベル付けされたサンプル及びラベル付けされていないサンプルが一緒にクラスタ化され、各クラスタは、サンプルのセットからのサンプルのサブセットを有する。少なくとも１つの停止条件に達するまで、クラスタのセット内の各クラスタ内のサンプルのサブセットにおいて選択する工程及びクラスタ化する工程が再帰的に反復される。反復は、ラベル付けされたサンプル及びラベル付けされていないサンプルを有するクラスタを生成する。ラベル付けされていないサンプルを分類するために、クラスタ内のラベル付けされたサンプルからクラスタ内のラベル付けされていないサンプルにラベルが伝播される。コンピュータは、コンピュータプログラムモジュールを実行するためのコンピュータプロセッサを更に備える。
【０００７】
本媒体の実施形態は、コンピュータファイルを分類するためのコンピュータプログラムモジュールを記憶する。コンピュータプログラムモジュールは、工程を実施するために実行可能である。工程は、ラベル付けされたサンプル及びラベル付けされていないサンプルを含むサンプルのセットを確立する。特徴の値がサンプルから収集され、特徴のサブセットが選択される。クラスタのセットを生成するために、選択された特徴のサブセットの収集された値の類似性に基づいて、ラベル付けされたサンプル及びラベル付けされていないサンプルが一緒にクラスタ化され、各クラスタは、サンプルのセットからのサンプルのサブセットを有する。少なくとも１つの停止条件に達するまで、クラスタのセット内の各クラスタ内のサンプルのサブセットにおいて選択する工程及びクラスタ化する工程が再帰的に反復される。反復は、ラベル付けされたサンプル及びラベル付けされていないサンプルを有するクラスタを生成する。ラベル付けされていないサンプルを分類するために、クラスタのラベル付けされたサンプルからクラスタのラベル付けされていないサンプルにラベルが伝播される。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に従うコンピューティング環境のハイレベルブロック図である。
【図２】セキュリティサーバ又はクライアントとしての使用のための典型的なコンピュータを図解するハイレベルブロック図である。
【図３】一実施形態に従うセキュリティサーバの分類モジュールの詳細な図を図解するハイレベルブロック図である。
【図４】不明のコンピュータファイルを分類するためにセキュリティサーバの一実施形態によって実施される工程を図解するフロー図である。
【０００９】
これらの図は、図解の目的のみのために実施形態を描写する。当業者であれば、本明細書に記載の原理から逸脱することなく、本明細書に図解される構造及び方法の代替実施形態を用いることができることを以下の説明から容易に理解するであろう。
【発明を実施するための形態】
【００１０】
図１は、一実施形態に従うコンピューティング環境１００のハイレベルブロック図である。図１は、ネットワーク１１４によって接続された１つのセキュリティサーバ１１０及び３つのクライアント１１２を図解する。説明を単純且つ明瞭にするために、図１において、３つのクライアント１１２のみが図解される。コンピューティング環境１００の実施形態は、何千又は何百万ものクライアント１１２を有することができる。いくつかの実施形態は、複数のセキュリティサーバ１１０も有する。
【００１１】
クライアント１１２は、悪意のあるソフトウェアをホストすることができる電子デバイスである。一実施形態では、クライアント１１２は、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）互換オペレーティングシステム（ＯＳ）、Ａｐｐｌｅ  ＯＳ  Ｘ、及び／又はＬｉｎｕｘ（登録商標）ディストリビューションを実行する従来のコンピュータシステムである。クライアント１１２はまた、タブレットコンピュータ、モバイル電話、ビデオゲームシステム等のコンピュータ機能性を有する別のデバイスであり得る。クライアント１１２は、典型的に、悪意のあるソフトウェアをホストできる多数のコンピュータファイルを記憶する。
【００１２】
「マルウェア」とも呼ばれる悪意のあるソフトウェアは、一般に、クライアント１１２上で不正に実行されるか、又は何らかの不正な機能性を有するソフトウェアとして定義される。マルウェアは、正当なファイルに付随する寄生ウイルス、コンピュータに感染して他のコンピュータに広がるためにコンピュータのセキュリティの弱さを悪用するワーム、正当に見えるが実際は隠れた悪意のあるコードを含むトロイの木馬プログラム、機密情報を捕捉するか、又は広告を表示させるためにコンピュータ上のキーストローク及び／又は他のアクションを監視するスパイウェア等の多くの形態をとることができる。
【００１３】
クライアント１１２は、クライアント上でマルウェアの存在を検出するためにセキュリティモジュール１１６を実行する。セキュリティモジュール１１６は、クライアント１１２のＯＳ又は別個の包括的セキュリティパッケージの一部に組み込まれてもよい。一実施形態では、セキュリティモジュール１１６は、セキュリティサーバ１１０を動作する同じエンティティによって提供される。セキュリティモジュール１１６は、ネットワーク１１４を介してセキュリティサーバ１１０と通信し、クライアント１１２側でマルウェアを検出するための検出データを取得する。
【００１４】
セキュリティモジュール１１６によって取得された検出データは、マルウェアシグネチャを含む。マルウェアシグネチャは、クライアント１１２側でマルウェアのインスタンスを検出するために使用され得るマルウェアの属性を説明する。これらの属性は、コンピュータファイルにおいて見つかったマルウェアの特性であるデータの配列、及びクライアント１１２側で実行されるとマルウェアによって実施される挙動の配列を識別するストリングシグネチャを含み得る。検出データは、セキュリティモジュール１１６を使用して所与の１つのソフトウェアがマルウェアであるかを評価することができるレピュテーション、及び／又はマルウェア攻撃を示す可能性の高いクライアントの状態を識別するヒューリスティック等のクライアント１１２側でマルウェアを検出するための他の方法を説明するデータも含み得る。
【００１５】
一実施形態では、セキュリティモジュール１１６は、検出データを用いてクライアント１１２を監視し、それがマルウェアを検出した場合、報告書を生成する。報告書は、クライアント１１２のユーザ及び／又はクライアント１１２の管理者等の別のエンティティに検出されたマルウェアを通知する。セキュリティモジュール１１６は、悪意のある挙動のブロック、マルウェアの検疫、及びマルウェアの削除等のマルウェアを修復する１つ以上のアクションも実施することができる。
【００１６】
加えて、セキュリティモジュール１１６は、マルウェアのサンプル及びクライアント１１２側で検出された他のファイルをセキュリティサーバ１１０に提供（例えば、アップロード）し得る。一実施形態の「サンプル」は、関連付けられたコンピュータファイルを説明するデータである。サンプルは、ファイル全体、ファイルのサブセットを含む一部、又はファイルから抽出されたデータ若しくは得られたデータの収集物（例えば、ファイル内の情報のハッシュ）を含み得る。一実施形態では、セキュリティモジュール１１６は、セキュリティサーバ１１０に、ポータブル実行可能（ＰＥ）ファイルのみのサンプル等のクライアント１１２側で検出された特定の種類のファイルのみのサンプルを提供する。サンプルは、コンピュータファイル以外のデータも説明し得る。
【００１７】
セキュリティサーバ１１０は、検出データを生成してクライアント１１２に分配させるように構成されたハードウェアデバイス及び／又はソフトウェアモジュールである。セキュリティサーバ１１０の例は、クライアント１１２のセキュリティモジュール１１６にセキュリティソフトウェア及びサービスを提供するウェブベースのシステムである。実施形態に応じて、セキュリティサーバ１１０の機能のうちの１つ以上は、クラウドコンピューティング環境によって提供され得る。本明細書で使用されるとき、「クラウドコンピューティング」は、動的にスケーラブルであり、かつ多くの場合、仮想化されたリソースがネットワーク１１４上のサービスとして提供される、コンピューティングのスタイルを指す。クライアント１１２及びセキュリティモジュール１１６に属する機能は、クラウドコンピューティング環境によっても提供され得る。
【００１８】
セキュリティサーバ１１０の一実施形態は、マルウェア又はグッドウェア（即ち、悪意のないもの）のいずれかとして不明サンプルを分類するための分類モジュール１１８を含む。分類モジュール１１８は、類似の特徴を有するラベル付けされたサンプル及びラベル付けされていないサンプルを一緒にクラスタ化する反復型技術を使用する。初期クラスタ化反復は、類似の特徴を有するラベル付けされたサンプル及びラベル付けされていないサンプルのクラスタを生成する。その後の反復は、初期クラスタを再帰的に分解してより小さい子クラスタにする。サンプルの特徴の異なるサブセットは、クラスタ化の各反復中に異なるクラスタのために使用される。
【００１９】
結果として得られるクラスタは、フラットクラスタ化アプローチを用いても明らかにされ得ないサンプル間の階層関係を明らかにする。例えば、分類モジュール１１８によって実施される反復型クラスタ化は、ラベル付けされていないサンプルを有する子クラスタ及び既知のマルウェアとしてラベル付けされたサンプルを有する親クラスタを生成し得、それによって、子クラスタ内のラベル付けされていないサンプルが、親クラスタ内のラベル付けされたサンプルと同じマルウェアファミリーに属することを明らかにする。分類モジュール１１８は、クラスタ内のサンプル間でラベル及び他の情報を伝播し、それにより以前にラベル付けされていなかったサンプル及び関連付けられたコンピュータファイルを分類する。
【００２０】
セキュリティサーバ１１０は、新たな分類を使用して新たに分類されたコンピュータファイルに関する検出データを生成し得る。次いで、セキュリティサーバは、クライアント１１２のセキュリティモジュール１１６に検出データを分配し得る。一実施形態では、セキュリティサーバ１１０は、新たなデータが作成されたときにローリングベースで検出データを分配する。別の実施形態では、検出データは、所定のスケジュールで及び／又はセキュリティモジュール１１６による要求時に分配される。
【００２１】
ネットワーク１１４は、セキュリティサーバ１１０と、クライアント１１２と、ネットワーク上の任意の他のエンティティとの間の通信経路を表す。一実施形態では、ネットワーク１１４は、インターネットであり、標準的な通信技術及び／又はプロトコルを使用する。したがって、ネットワーク１１４は、イーサネット（登録商標）、８０２．１１、ワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス（ＷｉＭＡＸ）、３Ｇ、デジタル加入者線（ＤＳＬ）、非同期転送モード（ＡＴＭ）、ＩｎｆｉｎｉＢａｎｄ、ＰＣＩエキスプレス・アドバンスド・スイッチング等の技術を用いてリンクを含むことができる。同様に、ネットワーク１１４上で使用されるネットワーキングプロトコルは、マルチプロトコル・ラベル・スイッチング（ＭＰＬＳ）、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザ・データグラム・プロトコル（ＵＤＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、簡易メール転送プロトコル（ＳＭＴＰ）、ファイル転送プロトコル（ＦＴＰ）等を含むことができる。ネットワーク１１４上で交換されるデータは、ハイパーテキストマークアップ言語（ＨＴＭＬ）、拡張マークアップ言語（ＸＭＬ）等を含む技術及び／又はフォーマットを用いて表され得る。加えて、リンクの全て又はリンクのうちのいくつかは、セキュアソケットレイヤ（ＳＳＬ）、トランスポート層セキュリティ（ＴＬＳ）、仮想プライベートネットワーク（ＶＰＮ）、インターネットプロトコルセキュリティ（ＩＰｓｅｃ）等の従来の暗号化技術を用いて暗号化され得る。他の実施形態では、エンティティは、上に説明されたものの代わりに又はそれらのものに加えて、カスタム及び／又は専用のデータ通信技術を使用できる。
【００２２】
図２は、セキュリティサーバ１１０又はクライアント１１２としての使用のための典型的なコンピュータ２００を図解するハイレベルブロック図である。チップセット２０４に連結される１つのプロセッサ２０２が図解される。メモリ２０６、記憶装置２０８、キーボード２１０、グラフィックスアダプタ２１２、ポインティングデバイス２１４、及びネットワークアダプタ２１６もチップセット２０４に連結される。ディスプレイ２１８がグラフィックスアダプタ２１２に連結される。一実施形態では、チップセット２０４の機能性は、メモリコントローラハブ２２０及び入出力コントローラハブ２２２によって与えられる。別の実施形態では、メモリ２０６は、チップセット２０４の代わりにプロセッサ２０２に直接連結される。
【００２３】
記憶装置２０８は、ハードドライブ、コンパクトディスク読出し専用メモリ（ＣＤ−ＲＯＭ）、ＤＶＤ、又はソリッドステートメモリデバイス等の非一時的コンピュータ可読記憶媒体である。メモリ２０６は、プロセッサ２０２によって使用される命令及びデータを保持する。ポインティングデバイス２１４は、マウス、トラックボール、又は他の種類のポインティングデバイスであり、コンピュータシステム２００内にデータを入力するためにキーボード２１０と組み合わせて使用される。グラフィックスアダプタ２１２は、ディスプレイ２１８上に画像及び他の情報を表示する。ネットワークアダプタ２１６は、コンピュータシステム２００をネットワーク１１６に連結する。
【００２４】
当技術分野で知られているように、コンピュータ２００は、図２に示されるコンポーネントとは異なるコンポーネント及び／又は他のコンポーネントを有することができる。更に、コンピュータ２００は、図解されるある特定のコンポーネントを欠いてもよい。一実施形態では、セキュリティサーバとして機能するコンピュータ２００は、複数のブレードコンピュータで形成され、キーボード２１０、ポインティングデバイス２１４、グラフィックスアダプタ２１２、及び／又はディスプレイ２１８を欠く。更に、記憶装置２０８は、（ストレージエリアネットワーク（ＳＡＮ）内に組み入れられる等の）ローカルであり、且つ／又はコンピュータ２００から離れていてもよい。
【００２５】
この説明は、特定の機能性を提供するためのコンピュータプログラムロジックを指す「モジュール」という用語を使用する。モジュールは、ハードウェア、ファームウェア、及び／又はソフトウェアによって実装され得る。モジュールは、典型的に、記憶装置２０８等のコンピュータ可読記憶媒体に記憶され、メモリ２０６にロードされ、プロセッサ２０２によって実行される。
【００２６】
図３は、一実施形態に従う、セキュリティサーバ１１０の分類モジュール１１８の詳細図を図解するハイレベルブロック図である。図３に示されるように、分類モジュール１１８自体が複数のモジュールを含む。いくつかの実施形態では、機能は、本明細書に記載の様式とは異なる様式でこれらのモジュール間に分配される。
【００２７】
記憶モジュール３１０は、分類モジュール１１８によって使用されるデータを記憶する。そのようなデータの例としては、ファイルサンプル、分類プロセス中に作成され使用される中間データ、結果として得られる分類、及び検出データが挙げられる。記憶モジュール３１０は、リレーショナルデータベース又は別の種類のデータベースを含み得る。
【００２８】
図３に示されるように、記憶モジュール３１０の実施形態は、ラベル付けされたサンプルデータセット３１２及びラベル付けされていないサンプルデータセット３１４を含む、コンピュータファイルサンプルを保持するデータセットを記憶する。ラベル付けされたサンプルデータセット３１２（「ラベル付けされたデータセット」とも呼ばれる）は、既知のラベルを有するファイルのサンプルを含む。一実施形態では、ラベル付けされたデータセット３１２内の各サンプルは、グッドウェア又はマルウェアのいずれかとしてラベル付けされる。グッドウェアラベルは、サンプルと関連付けられたファイルが、悪意のないもの（即ち、悪意のないものであると既知である）として分類されることを示す。例えば、グッドウェアラベルは、クライアント１１２に頻繁に存在する共通及び／又は人気のソフトウェアプログラムからのファイルのサンプルに適用され得る。マルウェアラベルは、サンプルと関連付けられたファイルが、マルウェアとして分類されることを示す。
【００２９】
一実施形態では、サンプルは、人間のセキュリティアナリストによって明示的に識別され、ラベル付けされ、ラベル付けされたデータセット３１２に追加される。例えば、セキュリティアナリストは、クライアント１１２で見つかった最も共通のグッドウェア及びマルウェアの代表的な集団を説明するサンプルを含むデータセットを作成し得る。同様に、セキュリティアナリストは、既知の種類のグッドウェア及びマルウェア（例えば、最も共通のグッドウェア及びマルウェアである必要はない）の幅広い表示を説明するデータセットを作成し得る。他の実施形態では、サンプルは、セキュリティサーバ１１０によって実施される自動化技術を介する等の他の技術を用いて、ラベル付けされ、ラベル付けされたデータセット３１２に追加される。
【００３０】
対照的に、ラベル付けされていないサンプルデータセット３１４（「ラベル付けされていないデータセット」とも呼ばれる）は、ラベルが不明であるファイルのサンプルを含む。言い換えると、ラベル付けされていないデータセット３１４内のサンプルは、サンプルと関連付けられたコンピュータファイルがグッドウェアか又はマルウェアかどうか知られていないため、ラベル付けされない。したがって、ラベル付けされていないサンプルは、不明の分類となる。ラベル付けされていないデータセット３１４のサンプルは、クライアント１１２及び／又は他のソースから取得され得る。例えば、ラベル付けされていないサンプルは、クライアント１１２側で以前に不明であったファイルを検出するセキュリティモジュール１１６から受信され得る。同様に、ラベル付けされていないサンプルは、人間セキュリティアナリストによって追加され得る。
【００３１】
更には、記憶モジュール３１０は、ラベル付けされた及びラベル付けされていないファイルサンプルの特徴を識別する特徴辞書３１６を記憶する。一実施形態では、特徴辞書３１６は、ラベル付けされたデータセット３１２及びラベル付けされていないデータセット３１４において個別のサンプルを区別するように使用され得るサンプル（それ故に、関連付けられたファイル）の特徴を列挙する。したがって、「特徴」は、異なるサンプル間で変化し得る特性である。いくつかのサンプルは、所与の特徴に関して同じ値を有し得るが、他のサンプルは、特徴に関して異なる値を有する。ラベル付けされたデータセット３１２及びラベル付けされていないデータセット３１４におけるサンプルが、ＰＥファイルと関連付けられた実施形態では、特徴辞書３１６は、異なるＰＥファイルを区別するように使用され得る特徴を列挙する。いくつかの実施形態には、何百又は何千もの列挙された特徴が存在し得る。
【００３２】
具体的には、ＰＥファイルは、ＷＩＮＤＯＷＳ  ７（「ＷＩＮＤＯＷＳ」は登録商標、以下同じ）又はＷＩＮＤＯＷＳ  ８等のＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳベースのオペレーティングシステム（ＯＳ）との使用を対象としたファイルである。典型的に、ＰＥファイルは、ファイルが実行可能なファイルであることを示すファイル拡張子「．ＥＸＥ」か又はファイルがダイナミックリンクライブラリ（ＤＬＬ）であることを示す「．ＤＬＬ」を有する。ＰＥファイルは、コード又はデータのいずれかを含むセクションに分割される。これらのセクションは、ヘッダを含有するＭＳ−ＤＯＳセクション、ファイルについての基本情報を含むデータ構造を保持するＰＥセクション、セクションの種類、サイズ、及びファイル内の場所を含む、ファイル内の各セクションについての情報を含むセクションテーブルを含む。更なるセクションとしては、コンパイラ又はアセンブラによって生成される汎用コードを保持するテキストセクション、並びにグローバル及び静的変数を保持するデータセクションを含む。更には、ＰＥファイルは、他のプログラムによる使用のためのファイルによってエクスポートされる機能を識別するエクスポートテーブル、及びファイルによってインポートされるモジュールを識別するインポートセクションを含む。
【００３３】
ＰＥファイルの場合、特徴辞書３１６によって列挙される特徴は、ＰＥファイルの構造を説明する構造特徴を含み得る。これらの構造特徴は、ファイルがどのように構築されたかを反映し、例えば、ファイルの作成に使用されたリンカー、（存在する場合）ファイルの圧縮に使用されたパッカー、及びファイルによって使用されたライブラリに影響され得る。構造特徴は、ファイル内のセクションの名前、及びファイルによって参照されるインポートされたモジュールの名前を含む。更なる構造特徴は、ファイル内のセクションの数、ファイルによって参照されるインポートされたモジュールの数、及びファイル内で使用されるリソース種類の数を含む。これらの構造特徴のうちの多くには技術的制限が存在せず、それ故に、特徴の値は、異なるファイルにわたって変化し得る。
【００３４】
更には、特徴辞書３１６によって列挙される特徴は、ＰＥファイル内のコンテンツを説明するコンテンツ特徴を含み得る。コンテンツ特徴は、ファイルが実行されるとファイルによって実施される機能性の種類及び拡張を反映する。したがって、異なる機能性を持つ２つのファイルのコンテンツ特徴は、ファイルの構造特徴が類似であった場合でも（例えば、同じパッカーを使用して各ファイルを圧縮したかのような結果をもたらし得る場合でも）変化し得る。コンテンツ特徴は、ファイルのサイズ及びファイル内の種々のセクションのサイズを含む。
【００３５】
上に説明される静的特徴に加えて、特徴辞書３１６は、ファイルの挙動特徴も列挙し得る。挙動特徴は、ファイルが実行されるとファイルが実施する挙動を説明する（例えば、ファイルのランタイム挙動）。挙動特徴は、導き出すのに静的特徴よりもコンピュータ的に高価である。しかしながら、特徴辞書３１６に挙動特徴を含むことは、いくつかの実施形態では有益であり得る。
【００３６】
特徴辞書の他の実施形態は、本明細書に考察されるものとは異なる特徴を説明し列挙し得る。更には、特徴辞書の実施形態は、Ｌｉｎｕｘ（登録商標）分配において使用される実行可能及びリンク可能なフォーマット（ＥＬＦ）ファイル、及びＯＳ  Ｘにおいて使用されるＭａｃｈ  Ｏｂｊｅｃｔ  （Ｍａｃｈ−Ｏ）ファイル等の異なる種類のファイルの特徴を説明し得る。
【００３７】
ここで分類モジュール１１８内の他のモジュールを見てみると、特徴収集モジュール３１８は、ラベル付けされたデータセット３１２及びラベル付けされていないデータセット３１４の各サンプルから特徴辞書３１６によって列挙される特徴の値を収集する。例えば、ラベル付けされたデータセット３１２内の所与のサンプルについては、特徴収集モジュール３１８は、前述の構造特徴及びコンテンツ特徴を含む、サンプルから列挙された特徴のうちの各々の値を収集する。サンプルは、その関連付けられたファイルを説明するため、収集された値は、関連付けられたファイルの同じ特徴の値も説明する。特徴収集モジュール３１８は、記憶モジュール３１０内又は他の箇所に収集した特徴を記憶し得る。
【００３８】
クラスタ化モジュール３２０は、類似の特徴を有するサンプルが一緒にクラスタ化されるように、ラベル付けされたデータセット３１２及びラベル付けされていないデータセット３１４内のファイルサンプルをクラスタ化する。一実施形態では、クラスタ化モジュール３２０は、反復型及び再帰型技術を用いてクラスタ化を実施する。初期クラスタ化は、ラベル付けされたデータセット３１２及びラベル付けされていないデータセット３１４内のサンプルの全てに基づいて実施されてクラスタの初期セットを生成する。別のクラスタ化は、初期セット内の各クラスタにおいて実施され、各初期親クラスタから得られた子クラスタの新たなセットを生成する。再帰型クラスタ化は、各クラスタ化のための特徴の異なるサブセットを用いて、複数回反復されて、階層関係の複数のクラスタを生成する。したがって、ルート（初期）及びリーフ（最終）ノード内のそれらのものは別として各所与のクラスタは、親クラスタが得られたファイルサンプルのスーパーセットを含む親クラスタ、及び所与のクラスタ内のファイルサンプルのサブセットを含む子クラスタを有する。
【００３９】
クラスタ化モジュール３２０は、反復型クラスタ化を制御するための反復制御モジュール３２２を含む。一般的に、反復制御モジュール３２２は、１つ以上の停止条件に達するまで、反復型クラスタ化工程を繰り返す。反復制御モジュール３２２のいくつかの実施形態によって使用される停止条件が以下に説明される。反復制御モジュール３２２の異なる実施形態は、本明細書に説明される条件以外の更なる及び／又は異なる停止条件を使用してもよく、複数の停止条件の組み合わせを使用してもよい。
【００４０】
反復制御モジュール３２２は、クラスタ内のサンプルの数に基づく停止条件を使用してもよい。この実施形態では、反復制御モジュール３２２は、クラスタ内のサンプルの数が特定の閾値数を下回るまで反復的にクラスタ化する。所与のクラスタが、サンプルの閾値数より少ない数を有した時点で、反復型クラスタ化は、そのクラスタに関しては停止し、結果として得られるクラスタは、クラスタ階層のその部分に関して最終クラスタ化（即ち、リーフノード）を表す。
【００４１】
反復制御モジュール３２２は、クラスタの数に基づく停止条件を使用することもできる。この実施形態では、反復制御モジュール３２２は、クラスタの合計数が特定の閾値数を超えるまで反復的にクラスタ化する。合計クラスタの閾値数を上回って存在した場合、反復型クラスタ化は停止し、結果として得られるクラスタは、サンプルの最終クラスタ化を表す。
【００４２】
反復制御モジュール３２２は、クラスタ化が実施され得るサンプルの利用可能な特徴の数に基づく停止条件を更に使用し得る。この実施形態では、反復制御モジュール３２２は、クラスタ化が実施され得るサンプルの利用可能な特徴の数が特定の閾値数を下回るまで反復的にクラスタ化する。利用可能な特徴の数は、クラスタ内のサンプルが異なる値を有する特徴の数に基づき得る。例えば、１０００の合計特徴が存在した場合、クラスタ内のサンプルは、９９０の特徴に関しては同じ値を有し、クラスタに関しては１０の利用可能な特徴が存在する。
【００４３】
反復制御モジュール３２２は、所与のクラスタ内の特徴値の変動に基づく停止条件を使用することもできる。この実施形態では、反復制御モジュール３２２は、クラスタ内のサンプルに関して利用可能な特徴間で変動の量を決定する。クラスタに関する変動の量が閾値量内であった場合（例えば、クラスタ内のポイントがクラスタの重心と重複するか、又はある距離閾値内であるか）、反復制御モジュール３２２は、そのクラスタの反復型クラスタ化を停止する。
【００４４】
特徴選択モジュール３２４は、反復制御モジュール３２２によって有効化され、クラスタ化プロセスの反復において使用される特徴を選択する。一実施形態では、特徴選択モジュール３２４は、各反復中に各クラスタに関する特徴辞書３１６に列挙された特徴の異なるサブセットを選択する。加えて、特徴選択モジュール３２４は、そのような特徴がサンプルを排除するように機能しないため、クラスタ化されるサンプルの値が変動を有しない任意の特徴を選択から除外し得る。特徴選択モジュール３２４が選択する特徴の中からの特徴（例えば、クラスタ内のサンプルの値が異なる特徴）は、「利用可能な」又は「残っている」特徴と称される。
【００４５】
代替的な実施形態では、特徴選択モジュール３２４は、反復中のクラスタを伴う使用のためにサンプルの特徴のうちのいずれかの中から選択する。例えば、セキュリティアナリストは、特定のクラスタのクラスタ化反復に関する特徴を明示的に選択し得る。アナリストは、クラスタ内のサンプルが、特定の特徴の値において差異を有するかにかかわらず、全ての可能な特徴の中から選択し得る。
【００４６】
一実施形態の特徴選択モジュール３２４は、１回以上の初期クラスタ化反復に関する構造特徴を選択する。構造特徴は、ファイルがどのように構築されたかを反映するため、同じ技術を用いて構築された異なるファイルは、同じ構造特徴を有する傾向がある。例えば、ファイルパッカー（即ち、他の実行可能なプログラムを圧縮するためのプログラム）は、パックされた（圧縮された）ファイルの構造特徴を均質化する傾向がある。したがって、同じファイルパッカーを用いてパックされたファイルは、共通の構造特徴を有する傾向がある。したがって、構造特徴に基づく初期クラスタ化は、同じ技術（例えば、同じパッカー）を用いて作成されるファイルと関連付けられたサンプルを一緒にクラスタ化する傾向がある。次いで、異なる技術を用いて作成されるファイルと関連付けられたサンプルは、異なるクラスタとなる傾向がある。
【００４７】
データセット３１２、３１４内のサンプルが構造特徴に基づいてクラスタ化されたとき、特徴選択モジュール３２４は、その後のクラスタ化反復に関してコンテンツ特徴の中から選択する。コンテンツ特徴に基づくクラスタ化は、構造的類似性を無視し、代わりにファイル内のコンテンツの類似性に基づいてクラスタ化する（例えば、実行されたときにファイルによって実施される機能性を反映する特徴に基づいて）。したがって、コンテンツ特徴に基づくクラスタ化は、同じクラスタ内の同じマルウェアファミリーからのファイルサンプルを設置する傾向がある。同じパッカーを使用する異なるマルウェアファミリー、及びまたパッカーを使用する任意の合法的ソフトウェアは、（構造特徴に基づく初期クラスタの子である）異なるクラスタとなって終わる傾向がある。
【００４８】
特徴選択モジュール３２４は、１つ以上の様々な技術を用いてコンテンツ特徴を選択し得る。特徴選択モジュール３２４は、次のクラスタ化反復に関する利用可能な特徴のランダムサブセットを選択し得る。加えて、特徴選択モジュール３２４は、利用可能な特徴に関するクラスタ内のサンプルの値における差異の量を決定し得、次いで、「ｎ」が整数であるとき、次のクラスタ化反復に関する最小差異を有するｎ特徴を選択し得る。他の実施形態の特徴選択モジュール３２４は、異なる及び／又は更なる技術を使用して利用可能なコンテンツ特徴の中から選択し得る。
【００４９】
クラスタ生成モジュール３２６は、反復制御モジュール３２２によって有効化され、特徴選択モジュール３２４によって選択される特徴を用いてファイルサンプルをクラスタ化する。クラスタ生成モジュール３２６によってクラスタ化されるサンプルは、どのクラスタ化の反復が実施されているかに依存する。初期反復について、クラスタ生成モジュール３２６は、ラベル付けされたデータセット３１２もラベル付けされていないデータセット３１４もいずれもにおいてサンプルの全てをクラスタ化する。その後の反復中、クラスタ生成モジュール３２６は、前の反復中に生成された所与のクラスタ内に存在するサンプルのみをクラスタ化する。
【００５０】
所与のサンプルのセット及び選択された特徴のセットについては、クラスタ生成モジュール３２６は、各々が選択された特徴に関して類似の値を有する１つ以上のサンプルを有する、複数のクラスタを生成する。このプロセスの一環として、クラスタ生成モジュール３２６は、セット内の各サンプルに関する選択された特徴の値を比較して、どのサンプルがどの他のサンプルに類似しているかを決定する。少なくとも１つの類似性の閾値量を有するサンプルは、一緒にクラスタ化される。一実施形態では、クラスタ生成モジュール３２６は、類似性の指標として編集距離を使用し、編集の閾値数内に存在する選択された特徴に関する値を有するサンプルを一緒にクラスタ化する。加えて、異なる実施形態のクラスタ生成モジュール３２６は、異なる及び／又は更なる類似性指標を使用し得る。
【００５１】
類似性閾値は、実施形態によって異なり得る。一実施形態では、クラスタ生成モジュール３２６は、異なるクラスタ化反復に対しては、異なる類似性閾値を使用する。具体的には、クラスタ生成モジュール３２６は、初期クラスタ化反復に対しては、低類似性閾値（即ち、疎性類似性閾値）を使用する。低類似性閾値は、比較的異種のファイルサンプルを一緒にクラスタ化させ、各々がより多くのサンプルを含むより少ないクラスタをもたらす。その後のクラスタ化反復については、クラスタ生成モジュール３２６は、ますますより高い類似性閾値を使用する（即ち、より厳密な類似性閾値を増加させる）。より高い類似性閾値は、比較的類似のファイルサンプルを一緒にクラスタ化させ、各々がより少ないサンプルを含むより多くのクラスタをもたらす。
【００５２】
情報伝播モジュール３２８は、クラスタ内のサンプル間及び／又はクラスタ間にラベル及び他の情報を伝播する。一実施形態では、情報伝播モジュール３２８は、反復制御モジュール３２２が停止条件に達し反復を停止させた後、有効化される。この時点で、複数のクラスタが存在し、その各クラスタは、１つ以上のサンプルを含む。クラスタは、ラベル付けされたデータセット３１２とラベル付けされていないデータセット３１４との組み合わせから最初に得られるため、所与のクラスタ内のサンプルは、全てのラベル付けされたサンプル、全てのラベル付けされていないサンプル、又はラベル付けされたサンプルとラベル付けされていないサンプルとの混合を含み得る。この後者の場合では、情報伝播モジュール３２８は、クラスタ内のラベル付けされたサンプルからクラスタ内のラベル付けされていないサンプルにラベル及び他の情報を伝播し得る。
【００５３】
典型的に、クラスタ化プロセスは、同じマルウェアファミリー内のサンプル等の関連するサンプルを一緒にクラスタ化することができる。クラスタ内のサンプルのうちの少なくとも１つが、ラベル付けされた場合（例えば、マルウェアとして）、情報伝播モジュール３２８は、このラベルをクラスタ内の他のサンプルに伝播する。したがって、この伝播は、伝播されたラベルに従って他のサンプルに関連付けられたファイルを分類する。伝播モジュール３２８は、マルウェアが表すマルウェアの種類についての情報、マルウェアの重大度、及びマルウェアの修復の仕方等の伝播されたラベルを有するファイルについて既知の他の情報もまた伝播し得る。
【００５４】
例えば、クラスタ化は、マルウェアとしてサンプルを識別するラベルを有する１つのサンプル、及び不明のラベルを有する４つのサンプルを含むクラスタを生成し得る。ラベル付けされたサンプルは、既知の種類のマルウェアを含むファイルと関連付けられる。他の４つのサンプルは、クラスタ内のファイルが全て、類似の特徴を有するため、既知のマルウェアにおいて見つかった同じ悪意のあるコードを含む可能性が高い。したがって、伝播モジュール３２８は、ラベル付けされたサンプルから４つのラベル付けされていないサンプル、及び転じてラベル付けされていないファイルと関連付けられたファイルに、ラベル及び他の情報を伝播する。この様式では、（以前に）ラベル付けされていないファイルと関連付けられたファイルは、マルウェアとして分類される。加えて、サンプルのクラスタは、マルウェアファミリーを説明する。
【００５５】
情報伝播モジュール３２８は、ラベル及びクラスタの階層内の他の情報も伝播し得る。特に、情報伝播モジュール３２８は、子クラスタ内のラベル付けされていないサンプルに、所与の親クラスタ内のラベル付けされたサンプルに関連付けられた情報を伝播し得る。親クラスタ内の１つ以上のサンプルがラベル付けされる（例えば、マルウェアとして）一実施例を考慮するが、親クラスタの子内のサンプルは、どれも全くラベル付けされていない。この場合では、子クラスタ内のラベル付けされていないサンプルは、定義によるサンプルが、親クラスタ内のマルウェアとラベル付けされたサンプルと共通の特徴を有するため、以前に未検出であったマルウェアファミリーの変形を表す可能性が高い。したがって、情報伝播モジュール３２８は、ラベル付けされたサンプルから子クラスタ内のラベル付けされていないサンプルに、ラベル及び他の情報を伝播し得る。
【００５６】
情報伝播モジュール３２８は、他の技術を使用してラベルを伝播し得る。例えば、完了したクラスタ化プロセスから得られるクラスタが、異なるラベルを持つサンプルを含んだ（例えば、マルウェアとラベル付けされたサンプル及びグッドウェアとラベル付けされたサンプルを含む）場合、実施形態の情報伝播モジュール３２８は、大多数のラベルか又はクラスタ内のラベル付けされていないサンプルに統計的に有意であるとして識別された他のラベルを伝播し得る。情報伝播モジュール３２８はまた、伝播されたラベルとは異なるラベルを有する任意のサンプルをセキュリティアナリストに報告し得る。２つのサンプルが、異なるラベルを有するにもかかわらず一緒にクラスタ化されたという事実は、ラベル付けされたデータセット３１２内のサンプルが誤ってラベル付けされていることを示し得る。セキュリティアナリストは、情報伝播モジュール３２８からの報告書を調査することができ、誤ってラベル付けされているサンプルを修復することができる。
【００５７】
図４は、不明のコンピュータファイルを分類するためにセキュリティサーバ１１０の一実施形態によって実施される工程を図解するフロー図である。他の実施形態は、異なる及び／又は更なる工程を実施することができる。更には、他の実施形態は、異なる順序で工程を実施することができる。更には、工程のうちの一部又は全ては、セキュリティサーバ１１０以外のエンティティによって実施され得る。
【００５８】
最初に、コンピュータファイルサンプルデータセットが、確立される４１０。サンプルデータセットは、ラベル付けされたデータセット３１２及びラベル付けされていないデータセット３１４を含む。集合的に、ラベル付けされたデータセット３１２及びラベル付けされていないデータセット内のサンプルは、ラベル付けされたサンプル及びラベル付けされていないサンプルを含むサンプルのセットを形成する。セキュリティサーバ１１０は、構造特徴もコンテンツ特徴もいずれも含む、データセット３１２、３１４内のサンプルから特徴辞書３１６に列挙された特徴の値を収集する４１２。例えば、特徴辞書３１６が、特徴としてファイル内のセクションの数を列挙した場合、セキュリティサーバ１１０は、ファイルサンプルラベル付けされたデータセット３１２及びラベル付けされていないデータセット３１４内の各ファイルサンプルからセクションの数を収集する。
【００５９】
セキュリティサーバ１１０は、反復的且つ再帰的に、ラベル付けされたデータセット３１２及びラベル付けされていないデータセット３１４内のファイルサンプルをクラスタ化する。セキュリティサーバ１１０は、クラスタ化反復における使用のための特徴辞書３１６に列挙される特徴のサブセットを選択する４１４。したがって、第１の反復については、セキュリティサーバ１１０は、ラベル付けされたデータセット３１２及びラベル付けされていないデータセット３１４内のサンプルの全てをクラスタ化する際の使用のための特徴のサブセットを選択する４１４。その後のクラスタ化反復については、セキュリティサーバ１１０は、前の反復において作成されたクラスタ内のサンプルをクラスタ化する際の使用のための特徴のサブセットを選択する。
【００６０】
実施形態のセキュリティサーバ１１０は、利用可能な特徴のセットの中から特徴を選択する４１４。一実施形態では、利用可能な特徴は、クラスタ内の更にクラスタ化されるサンプルの値が変動を有する、特徴である。セキュリティサーバ１１０は、１回以上の初期クラスタ化反復に関するファイルの構造特徴を選択し得る４１４。したがって、第１のクラスタ化反復については、セキュリティサーバ１１０は、ファイルセクションの名前及びインポートされたモジュールの数等の構造特徴を選択し得る４１４。初期クラスタ化反復の後、実施形態のセキュリティサーバ１１０は、ファイルのコンテンツ特徴の中から選択する４１４。
【００６１】
セキュリティサーバ１１０は、選択された特徴を用いてファイルサンプルをクラスタ化する４１６。一般的に、セキュリティサーバ１１０は、選択された特徴に関する類似の値を有するファイルサンプルを一緒にクラスタ化する４１６。サンプルを一緒にクラスタ化するのに必要とされる類似性の閾値量は、異なる実施形態において様々であり得る。一実施形態では、セキュリティサーバ１１０は、クラスタ化の初期反復に関しては、低類似性閾値を使用し、その後の反復に関しては、より高い類似性閾値を使用する。
【００６２】
各クラスタ化反復は、クラスタのセットを生成する。初期クラスタ化反復は、ラベル付けされたデータセット３１２及びラベル付けされていないデータセット３１４内のサンプルを、初期クラスタのセットにクラスタ化する。その後のクラスタ化反復は、各初期クラスタを子クラスタのセットにクラスタ化し、その各子クラスタは、その親クラスタ内のクラスタのサブセットを含む。セキュリティサーバ１１０は、先行の反復によって生成された各クラスタに関する利用可能な特徴のセットの中から選択される特徴を用いてクラスタ化を反復的に繰り返して、クラスタの階層を生成する。階層の一番上では、単一のクラスタが、組み合わされたラベル付けされたデータセット３１２及びラベル付けされていないデータセット３１４（ルートクラスタ）を表す。階層の一番下では、クラスタが、最終クラスタ化（リーフクラスタ）を表す。ルートクラスタとリーフクラスタとの間には、中間クラスタがあり、各々が、親クラスタと複数の子クラスタと、を有する。
【００６３】
セキュリティサーバ１１０は、停止条件が存在するまで、特徴選択４１４及びクラスタ化４１６工程を再帰的且つ反復的に繰り返す。一実施形態では、セキュリティサーバ１１０は、前のクラスタ化反復中に生成された各クラスタに関する停止条件に達したかを決定する４１８。停止条件は、例えば、前の反復によって生成されたクラスタの数、クラスタ内のサンプルの数、クラスタ化が実施され得る利用可能な特徴の数、及びクラスタ内の特徴の変動の量、に基づき得る。停止条件が存在しなかった４１８場合、セキュリティサーバ１１０は、特徴選択４１４及びクラスタ化４１６工程を繰り返す。
【００６４】
セキュリティサーバ１１０が、クラスタに関する停止条件に達したと決定する４１８と、セキュリティサーバは、任意に、クラスタ内のサンプルの間においてラベル及び他の情報を伝播する４２０。セキュリティサーバ１１０は、そのクラスタに関する停止条件に達するとき各クラスタ上で伝播４２０を実施し得るか、全てのクラスタに関する停止条件に達した後に伝播４２０を実施し得るか、又は他の時に伝播を実施し得る。
【００６５】
一実施形態では、セキュリティサーバ１１０は、クラスタが、少なくとも１つのラベル付けされたサンプル及び少なくとも１つのラベル付けされていないサンプルを含んだ場合、クラスタ内のラベルを伝播する４２０。この場合では、セキュリティサーバ１１０は、ラベル付けされたサンプルのラベルをラベル付けされていないサンプルに伝播し得１１０、それにより（以前に）ラベル付けされていないサンプルと関連付けられたファイルを分類する。セキュリティサーバ１１０は、ラベル付けされたサンプルと関連付けられたファイル及びラベル付けされていないサンプルと関連付けられたファイルについての他の情報も伝播し得る。セキュリティサーバ１１０は、ラベル及びクラスタ階層内の他の情報を、親クラスタ内のサンプルのラベルを伝播する工程等によって、子クラスタ内のラベル付けされていないサンプルに更に伝播し得る。
【００６６】
次いで、セキュリティサーバ１１０は、上述のクラスタ化技術を介して分類されたファイル上で他の動作を実施し得る。例えば、セキュリティアナリストは、マルウェアとして新たに分類されるファイルを分析して、ファイルに関する検出データを生成し得る。次いで、検出データは、クライアント側でマルウェアの検出を改善するために、クライアント１１２のセキュリティモジュール１１６に供給され得る。
【００６７】
クラスタ化技術が、コンピュータファイルと関連付けられたサンプルをクラスタ化するコンテクストにおいて主として上に説明されるが、その技術は、他の環境においてもまた使用され得る。その技術は、データが階層関係を有するという予測が存在する任意のデータ及びドメインに対する適用である。例えば、学術科目についてのテキスト文書は、科学、財政学、数学等に関連しているとして高いレベルでクラスタ化され得る。次いで、高いレベルのクラスタは、科目の具体的な態様に関連しているより低いレベルのクラスタにクラスタ化され得る。例えば、科学クラスタ内の文書は、物理学、生物学、及び化学に関連するサブクラスタにクラスタ化され得る。
【００６８】
上記の説明は、特定の実施形態の動作を図解するために含まれており、本発明の範囲を限定するようには意図されていない。本発明の範囲は、以下の特許請求の範囲によってのみ限定される。上記の考察から、多くの変形形態が、本発明の趣旨及び範囲によってなおも包含されるであろうことが、当業者にとっては明らかである。
【図１】
0006388875.tif 000002
【図２】
0006388875.tif 000003
【図３】
0006388875.tif 000004
【図４】
0006388875.tif 000005