(57)【要約】【課題】コンピュータウィルス、ワーム、他のコンピュータアタック、および／またはネットワークを繰り返し通過し得る任意の他のデータを検出する改善されたシステムおよび方法を提供すること。【解決手段】電子ネットワークを介してデータを受信することと、該データを複数のデータ項目にセグメント化することと、選択されたデータ項目を得るために、該複数のデータ項目のうちの１つのデータ項目を分離することと、第１の特性メトリクスを得るために、第１の処理技術に従って該選択されたデータ項目を処理することと、第２の特性メトリクスを得るために、第２の処理技術に従って該選択されたデータ項目を処理することと、該選択された集合体サムプリントを得るために、該第１のメトリクスと該第２のメトリクスとを組み合わせることと、該集合体サムプリントを、ライブラリに格納された複数の集合体サムプリントと比較することとを包含する、方法。【選択図】図１
2011023008.tif 000002
【特許請求の範囲】
【請求項１】
電子ネットワークを介してデータを受信することと、
該データを複数のデータ項目にセグメント化することと、
選択されたデータ項目を得るために、該複数のデータ項目のうちの１つのデータ項目を分離することと、
第１の特性メトリクスを得るために、第１の処理技術に従って該選択されたデータ項目を処理することと、
第２の特性メトリクスを得るために、第２の処理技術に従って該選択されたデータ項目を処理することであって、第２の処理技術は該第１の処理技術と異なる、ことと、
該選択されたデータ項目の集合体サムプリントを得るために、該第１のメトリクスと該第２のメトリクスとを組み合わせることと、
該集合体サムプリントを、集合体サムプリントのライブラリに格納された複数の集合体サムプリントと比較することによって、該集合体サムプリントと、集合体サムプリントの該ライブラリの複数の該集合体サムプリントのうちの任意のものとの間に一致が存在するか否かを決定することと
を包含する、方法。
【請求項２】
前記第１の特性メトリクスおよび前記第２の特性メトリクスの正確さを減少させることをさらに包含する、請求項１に記載の方法。
【請求項３】
前記第１の特性メトリクスおよび前記第２の特性メトリクスの値を丸めることを包含する、請求項２に記載の方法。
【請求項４】
組み合わせることは、前記第１の特性メトリクスおよび前記第２の特性メトリクスをストリングに連結することを包含する、請求項１に記載の方法。
【請求項５】
処理することは、前記選択されたデータ項目におけるバイト数をカウントすることを包含する、請求項１に記載の方法。
【請求項６】
処理することは、偶数のバイト値を加算することと、奇数のバイト値を原産することとを包含する、請求項１に記載の方法。
【請求項７】
処理することは、後続のバイトが直前のバイトより大きいＡＳＣＩＩ値を有する場合にはカウンタに加算することと、後続のバイトが直前のバイトより小さいＡＳＣＩＩ値を有する場合には該カウンタから減算することとを包含する、請求項１に記載の方法。
【請求項８】
前記処理するステップの後に、ハッシュ関数を前記選択されたデータ項目に適用する、請求項１に記載の方法。
【請求項９】
一致が存在しない集合体サムプリントを、集合体サムプリントの前記ライブラリに格納することをさらに包含する、請求項１に記載の方法。
【請求項１０】
一致が存在する場合にはアラートを発生させることをさらに包含する、請求項１に記載の方法。
【請求項１１】
類似ではあるが同一ではないデータを検出する方法であって、
データ項目をデータベースから選択することと、
ストリングを生成することであって、該ストリングは該データ項目に対する複数の個別の特性メトリクスから構成され、各特性メトリクスは、元々計算された値から正確さを低減されている、ことと、
該ストリングを、該ストリングのライブラリに格納されている複数のストリングと比較することにより、該ストリングと、ストリングの該ライブラリに格納された複数のストリングのうちの任意のストリングとの間に一致が存在するか否かを決定することと、
一致が見出された場合にはアラートを発生させこと、または一致が見出されない場合にはストリングの該ライブラリに該ストリングを付加することと
を包含する、方法。
【請求項１２】
各特性メトリクスは、それぞれの特性メトリクスを丸めることによって正確さを低減される、請求項１１に記載の方法。
【請求項１３】
特性メトリクスは、前記データ項目において、バイト数をカウントすることによって決定される、請求項１１に記載の方法。
【請求項１４】
特性メトリクスは、前記データ項目中のバイト値の偶数のバイト値を加算することと、奇数のバイト値を減算することとによって決定される、請求項１１に記載の方法。
【請求項１５】
特性メトリクスは、前記データ項目中の後続のバイトが直前のバイトより大きいＡＳＣＩＩ値を有する場合にはカウンタに加算することと、該データ項目中の後続のバイトが直前のバイトより小さいＡＳＣＩＩ値を有する場合には該カウンタから減算することとを包含する、請求項１１に記載の方法。
【請求項１６】
前記ストリングを生成した後に、前記データ項目にハッシュ関数を適用することをさらに包含する、請求項１１に記載の方法。
【請求項１７】
類似のデータ項目を検出するシステムであって、該システムは、
電子データを格納するように構成されている物理メモリを有するか、または該物理メモリと通信する分析モジュールと、
該分析モジュールと通信するデータ項目データベースと、
該分析モジュールと通信するストリングライブラリと
を備えており、
該分析モジュールは、
データ項目を該データ項目データベースから選択することと、
ストリングを生成することであって、該ストリングは該データ項目に対する複数の個別の特性メトリクスから構成され、各特性メトリクスは、元々計算された値から正確さを低減されている、ことと、
該ストリングを、該ストリングライブラリに格納されている複数のストリングと比較することにより、該ストリングと、該ストリングライブラリに格納されている該複数のストリングのうちの任意のストリングとの間に一致が存在するか否かを決定することと、
一致が見出された場合にはアラートを発生させること、または一致が見出されない場合には該ストリングライブラリに該ストリングを付加することと
を行うように構成されている、システム。
【請求項１８】
ネットワークデータを捕捉し、前記データ項目データベース中に該ネットワークデータを格納するように構成されているサーバをさらに備えている、請求項１７に記載のシステム。
【請求項１９】
前記個別の特性メトリクスのうちの１つは前記データ項目のバイトカウントである、請求項１７に記載のシステム。
【請求項２０】
前記個別の特性メトリクスのうちの１つは前記データ項目中の文字のソート順序の測度である、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
添付される付録は、本発明の実施形態に従ったデータ処理の結果のプリントアウトである。この付録は、例示的な実装を図示することを意図され、本発明の範囲を定義したり、制限したりすることを意図されていない。
【０００２】
（発明の分野）
本発明の実施形態は、デジタルデータおよびデジタルデータストリームを特徴付け、そして検出するシステムおよび方法に関する。
【背景技術】
【０００３】
（発明の背景）
デジタルデータ（またはバイト）ストリームを特徴付けるために開発されたシステムおよび方法が公知である。このようなシステムおよび方法は、しばしば、コンピュータウィルスおよびワームなどを検出するために使用される。より具体的には、侵入検出およびアンチウィルスシステムは、典型的に、特定のパターンまたは特性またはデジタルバイトを検出するために「シグネチャ」を使用する。ハッシュ、チェックサムおよび他の数値計算が、しばしば、デジタルファイルおよびバイトストリーム（適合ソフトウェアファイルおよびマルウェアを含む）を特徴付けるために使用される。これらの技術は、シグネチャのソースと同一の項目を識別するために使用される。一般的に言うと、これらの技術は、類似ではあるが同一ではない項目を検出することは意図されないか、または不可能である。
【０００４】
しかしながら、公知のアプローチが２００２年８月１４日にＴｏｄｄ  Ｈｅｂｅｒｌｅｉｎ「Ｗｏｒｍ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｐｒｅｖｅｎｔｉｏｎ：Ｃｏｎｃｅｐｔ，Ａｐｐｒｏａｃｈ，ａｎｄ  Ｅｘｐｅｒｉｅｎｃｅ」、ＮｅｔＳｑｕａｒｅｄ，Ｉｎｃ．（２００２年未発行）（“Ｈｅｂｅｒｌｅｉｎ”）に記載され、このアプローチは選択されたデータの組の中で類似性を検出することが可能である。Ｈｅｂｅｒｌｅｉｎによって説明されるように、「サムプリント」を用いてデータの一部を特徴付けることが可能である。この場合には、サムプリントは、データの選択された部分に適用されたハッシュ関数の結果によって表される。
【０００５】
図６は、Ｈｅｂｅｒｌｅｉｎに従った基本的なアプローチを示す。オリジナルのコンテンツ“Ｔｈｅ  ｑｕｉｃｋ  ｂｒｏｗｎ  ｆｏｘ  ｊｕｍｐｅｄ  ｏｖｅｒ  ｔｈｅ  ｌａｚｙ  ｄｏｇ．”が、数字を生成するハッシュ関数を介して送信される。オリジナルのコンテンツ３６０ビット（１文字当たり８ビット×４５文字）で構成され、その結果は、単一の３２ビット数字（ほとんどのコンピュータ上では典型的な符号のない整数）である。
【０００６】
この数字は、オリジナルのコンテンツのコンパクトな表現のタイプ（すなわち、“サムプリント”）として役立ち得る。例えば、文書がこの技術によって処置されたことを想像されたい。ハッシュ数は、この文書中の各文章に対して算出され、算出されたハッシュ数はハッシュテーブルに一緒に格納される。後に、ユーザがサンプルの文章を提供し、この文章が文書中に存在するか否か尋ねた場合、以下のアルゴリズムが、回答を非常に素早く決定するために使用され得る。第１に、サンプルの文章のハッシュ値が算出される。第２に、ハッシュテーブルが、この数字がテーブル中に存在するか否かを確認するためにクエリされる。この数字がテーブル中にない場合には、サンプルの文章は文書中に存在しない。第３に、一致がある場合には、ハッシュ値を生成したオリジナルの文書中の文章（または複数の文章）が検査され、実際にサンプルの文章に一致するか否か決定される。
【０００７】
Ｈｅｂｅｒｌｅｉｎによってさらに説明されるように、従来のハッシュ関数は、特定のシナリオにおいて十分に作用しない。具体的には、ほとんどのハッシュ関数は、コンテンツが１つのバイトだけ変わっている場合でさえ、完全に異なるハッシュ数字を生じるように設計されている。例えば、再び図６を参照すると、オリジナルの文章が、単語“ｄｏｇ”を“ｄｏｇｓ”に変更することによってわずかに修正される場合には、完全に異なるハッシュ数字が生成され得る。実際には、従来のハッシュ関数を用いると、各ストリングに対する結果生じた数字の確認は、２つの文章が非常に類似していることを全く示さない。
【０００８】
Ｈｅｂｅｒｌｅｉｎは、表面的に類似しているデータの集合間の全体の不一致を減少させるために、主成分分析（ＣＰＡ）と呼ばれる多変量統計分析技術を選択されたデータに利用することが可能であり、結果として全体の不一致が有意に減少し得ることを説明している。
【０００９】
Ｈｅｂｅｒｌｅｉｎによって記載された利点にかかわらず、コンピュータウィルス、ワーム、他のコンピュータアタックおよび／またはネットワークを繰り返し通過し得る任意の他のデータを検出する改善されたシステムおよび方法を提供することが所望されている。
【発明の概要】
【課題を解決するための手段】
【００１０】
（発明の概要）
本発明の実施形態は、コンピュータネットワークにおける侵入およびウィルス検出に対するシステムおよび方法を提供する。本発明の実施形態に従う方法は、電子ネットワークを介してデータを受信することと、データを複数のデータ項目にセグメント化することとを含む。データ項目は、選択されたデータ項目を得るために分離され得る。選択されたデータ項目は、次いで、選択されたデータ項目に対する特性メトリクスを得るために、１つ以上の処理技術に従って処理される。結果生じる特性メトリクスの値は、選択されたデータ項目の「集合体サムプリント」を得るために組み合わされる。次いで、集合体サムプリントは、集合体サムプリントのライブラリに格納された複数の集合体サムプリントと比較されることによって、集合体サムプリントと、集合体サムプリントのライブラリ内の複数の集合体サムプリントのうちの任意の集合体サムプリントとの間に一致が存在するか否かを決定する。
【００１１】
一実施形態において、特性メトリクスの値の正確さは、一致の確率を増加させるために減少させられる。この正確さは、例えば、特性メトリクスの値を丸めることによって減少し得る。
【００１２】
特性メトリクスは、特に、選択されたデータ項目におけるバイト数をカウントすること、偶数のバイト値をカウンタに加算することと奇数のバイト値をカウンタから減算すること、または後続のバイトが直前のバイトより大きいＡＳＣＩＩ値を有する場合にカウンタに加算することと後続のバイトが直前のバイトより小さいＡＳＣＩＩ値を有する場合にカウンタから減算することを含む。
【００１３】
一実施形態において、ハッシュ関数は、特性メトリクスに対する値を計算した後に、選択されたデータに適用される。
【００１４】
本発明のいくつかの実施形態のこれらの特徴および他の特徴と、それらに付随する利点とが、以下の詳細な説明を関連する図面とともに読んだ際により完全に認識される。
【００１５】
本発明は、例えば、以下の項目を提供する。
（項目１）
電子ネットワークを介してデータを受信することと、
該データを複数のデータ項目にセグメント化することと、
選択されたデータ項目を得るために、該複数のデータ項目のうちの１つのデータ項目を分離することと、
第１の特性メトリクスを得るために、第１の処理技術に従って該選択されたデータ項目を処理することと、
第２の特性メトリクスを得るために、第２の処理技術に従って該選択されたデータ項目を処理することであって、第２の処理技術は該第１の処理技術と異なる、ことと、
該選択されたデータ項目の集合体サムプリントを得るために、該第１のメトリクスと該第２のメトリクスとを組み合わせることと、
該集合体サムプリントを、集合体サムプリントのライブラリに格納された複数の集合体サムプリントと比較することによって、該集合体サムプリントと、集合体サムプリントの該ライブラリの複数の該集合体サムプリントのうちの任意のものとの間に一致が存在するか否かを決定することと
を包含する、方法。
（項目２）
上記第１の特性メトリクスおよび上記第２の特性メトリクスの正確さを減少させることをさらに包含する、上記項目のいずれかに記載の方法。
（項目３）
上記第１の特性メトリクスおよび上記第２の特性メトリクスの値を丸めることを包含する、上記項目のいずれかに記載の方法。
（項目４）
組み合わせることは、上記第１の特性メトリクスおよび上記第２の特性メトリクスをストリングに連結することを包含する、上記項目のいずれかに記載の方法。
（項目５）
処理することは、上記選択されたデータ項目におけるバイト数をカウントすることを包含する、上記項目のいずれかに記載の方法。
（項目６）
処理することは、偶数のバイト値を加算することと、奇数のバイト値を原産することとを包含する、上記項目のいずれかに記載の方法。
（項目７）
処理することは、後続のバイトが直前のバイトより大きいＡＳＣＩＩ値を有する場合にはカウンタに加算することと、後続のバイトが直前のバイトより小さいＡＳＣＩＩ値を有する場合には該カウンタから減算することとを包含する、上記項目のいずれかに記載の方法。
（項目８）
上記処理するステップの後に、ハッシュ関数を上記選択されたデータ項目に適用する、上記項目のいずれかに記載の方法。
（項目９）
一致が存在しない集合体サムプリントを、集合体サムプリントの上記ライブラリに格納することをさらに包含する、上記項目のいずれかに記載の方法。
（項目１０）
一致が存在する場合にはアラートを発生させることをさらに包含する、上記項目のいずれかに記載の方法。
（項目１１）
類似ではあるが同一ではないデータを検出する方法であって、
データ項目をデータベースから選択することと、
ストリングを生成することであって、該ストリングは該データ項目に対する複数の個別の特性メトリクスから構成され、各特性メトリクスは、元々計算された値から正確さを低減されている、ことと、
該ストリングを、該ストリングのライブラリに格納されている複数のストリングと比較することにより、該ストリングと、ストリングの該ライブラリに格納された複数のストリングのうちの任意のストリングとの間に一致が存在するか否かを決定することと、
一致が見出された場合にはアラートを発生させこと、または一致が見出されない場合にはストリングの該ライブラリに該ストリングを付加することと
を包含する、方法。
（項目１２）
各特性メトリクスは、それぞれの特性メトリクスを丸めることによって正確さを低減される、上記項目のいずれかに記載の方法。
（項目１３）
特性メトリクスは、上記データ項目において、バイト数をカウントすることによって決定される、上記項目のいずれかに記載の方法。
（項目１４）
特性メトリクスは、上記データ項目中のバイト値の偶数のバイト値を加算することと、奇数のバイト値を減算することとによって決定される、上記項目のいずれかに記載の方法。
（項目１５）
特性メトリクスは、上記データ項目中の後続のバイトが直前のバイトより大きいＡＳＣＩＩ値を有する場合にはカウンタに加算することと、該データ項目中の後続のバイトが直前のバイトより小さいＡＳＣＩＩ値を有する場合には該カウンタから減算することとを包含する、上記項目のいずれかに記載の方法。
（項目１６）
上記ストリングを生成した後に、上記データ項目にハッシュ関数を適用することをさらに包含する、上記項目のいずれかに記載の方法。
（項目１７）
類似のデータ項目を検出するシステムであって、該システムは、
電子データを格納するように構成されている物理メモリを有するか、または該物理メモリと通信する分析モジュールと、
該分析モジュールと通信するデータ項目データベースと、
該分析モジュールと通信するストリングライブラリと
を備えており、
該分析モジュールは、
データ項目を該データ項目データベースから選択することと、
ストリングを生成することであって、該ストリングは該データ項目に対する複数の個別の特性メトリクスから構成され、各特性メトリクスは、元々計算された値から正確さを低減されている、ことと、
該ストリングを、該ストリングライブラリに格納されている複数のストリングと比較することにより、該ストリングと、該ストリングライブラリに格納されている該複数のストリングのうちの任意のストリングとの間に一致が存在するか否かを決定することと、
一致が見出された場合にはアラートを発生させること、または一致が見出されない場合には該ストリングライブラリに該ストリングを付加することと
を行うように構成されている、システム。
（項目１８）
ネットワークデータを捕捉し、上記データ項目データベース中に該ネットワークデータを格納するように構成されているサーバをさらに備えている、上記項目のいずれかに記載のシステム。
（項目１９）
上記個別の特性メトリクスのうちの１つは上記データ項目のバイトカウントである、上記項目のいずれかに記載のシステム。
（項目２０）
上記個別の特性メトリクスのうちの１つは上記データ項目中の文字のソート順序の測度である、上記項目のいずれかに記載のシステム。
【００１６】
（摘要）
コンピュータネットワークにおける侵入およびウィルス検出のシステムおよび方法。ファイル、ネットワークバイトシステム、または他のソースからのデータはセグメント化され、結果生じるデータ項目は、それぞれの結果値またはサムプリントを得るために複数の処理技術に委ねられる。それぞれのデータ項目に対する複数のサムプリントは、次いで、単一の結果値または集合体サムプリントを得るために集合される。集合体サムプリントの成分は、単一の結果値における低い正確さを可能にするように「曖昧にされ」得る。集合体サムプリントは、ライブラリに格納された同様に生成された他のサムプリントと比較される。同一の集合体サムプリントが複数回検出される場合にはアラートが生成され得る。
【図面の簡単な説明】
【００１７】
【図１】図１は、本発明の実施形態に従った方法を図示するフローチャートを示す。
【図２】図２は、本発明の実施形態に従った方法のより詳細版を示す。
【図３】図３は、本発明の実施形態に従った、データ項目に関して計算され得るいくつかの可能性のある分析技術あるいはメトリクスを示す。
【図４】図４は、本発明の実施形態から得られたいくつかの実験結果の模式的表示である。
【図５】図５は、本発明の実施形態を実装する、いくつかの要素およびモジュールの構成を図示している。
【図６】図６は、従来技術に従った、同様ではあるが同一ではないデータ項目に適用された従来のハッシュ関数の結果を示す。
【発明を実施するための形態】
【００１８】
本発明の実施形態は、ネットワークを通過するデータを検出して特徴付ける性能を提供する。より具体的には、本発明の実施形態は、同様なバイトストリームを検出し、対象のデータの内容、順序および／または大きさを分析することによってデータストリームの繰り返し頻度を検出することによって、悪意のある意図をより正確に推定する。
【００１９】
概して、本明細書に記述される方法およびシステムは、パケット、文書、および画像あるいはログファイルに、他のタイプのデータの中でとりわけ、アプリオリに公知のあるいはそうでない、コンピュータウィルス、ワーム、他のコンピュータアタックあるいは対象のデータを検出しようとして、適用され得る。
【００２０】
ここで、図１を参照すると、本発明の実施形態に従った方法を図示するフローチャートが示されている。この方法は、対象のデータ項目が分析のために選択される、ステップ１０２で始まる。項目は、単一の、束の間の項目であり得、長いデータセット、ファイル、文書等の一部分である項目、あるいは、その大きなデータセットの常に増加するあるいは減少する部分であることを理解すべきである。項目が分析のために選択されると、特性メトリクスは、その項目に対してステップ１０４において計算される。結果としてのメトリクスは、ついで、ステップ１０６において「曖昧にされ」、これらの正確さを減少し、従って、値が他の同様に計算された値に一致することの可能性がよりありそうにする。そして、ステップ１０７において、集合体サムプリントが、例えば、いくつかのメトリクスを単一のストリングに連結させることによって導出される単一の数、あるいはストリングとして発生される。
【００２１】
決定ステップ１０８において、最近発生されたサムプリントが、その様な集合体サムプリントのライブラリに格納される、任意の以前発生された集合体サムプリントと同様であるか否かが決定される。もしもそうでない場合、ついでステップ１１０において、新しい母音がライブラリに追加される。一致が検出された場合、ついで最新発生された集合体サムプリントが格納された集合体サムプリントに関連され、格納されたサムプリントに関連するヒットカウンタ（示されない）が増加させられる。
【００２２】
図２は、本発明の実施形態に従った方法のより詳細な説明を示す。ステップ２０２において、データソースがアクセスされる。データソースは、例えば、ファイルシステムからのファイル、ネットワークトラフィック、ネットワークイベント（例えば、ログファイル）、あるいは、本明細書に記述される方法論に従って検査され得る任意の他のデータソースであり得る。
【００２３】
ステップ２０４において、そして、上に簡単に記述されたように、データソースは全体としてとられる必要はない。むしろ、データソースはより小さい構成要素にセグメント化され得、解像度を向上し、それによって、相対的に小さいデータ項目の識別／一致を可能にする。それ故、例えば、大きなワードプロセッシング文書は、段落によって（例えば、キーのリターンによって）、ページによって、３あるいは４単語の組等によってセグメント化され得る。同様に、画像（例えば、ビットマップ）は、全体として取られる必要はない。代わりに、画像は規則的なグリッドパターンにセグメント化され得るか、あるいは、円形、三角形あるいは他の多角形のような規則的あるいは不規則的（重なりあうことも）形状によってセグメント化され得る。従って、所与のファイル、ネットワークトラフィックの組等は、本発明の実施形態に従った処理に対して、ひとたびファイル、ネットワークトラフィック等がセグメント化されると、それに関連する複数の集合体サムプリントを有し得る。
【００２４】
ステップ２０６において、データ項目は分離させられる。項目は、特定のメモリ位置、連続したメモリ位置、データベースあるいは、アクセスされ得る任意の他の位置に配置され得る。
【００２５】
ステップ２０８において、１つあるいはいくつかの特性メトリクスが計算され、その例は、より完全に下で議論される。好ましい実施形態において、各結果としてのメトリクスは、ついで、その正確さが減少させられるように、「曖昧にされる」。これは、例えば、それぞれのメトリクスの結果としての値を丸めることによって、達成され得る。
【００２６】
集合体サムプリントが、ついで、ステップ２１０において発生される。本発明の実施形態において、集合体サムプリントは、一連のメトリクスあるいは、選択された／分離されたデータ項目にそれぞれ適用される別々の分析技術から導出される単ストリングである。
【００２７】
図３は、データ項目に関して計算され得る、いくつかの可能性のある分析技術／プロセス／メトリクスを一覧し、ここで、メトリクスはついで組み合わせて集合体サムプリントを発生する。本発明の実施形態に関係して使用され得る例示的なメトリクスは、次に記述される。
【００２８】
（バイトカウント）
このメトリクスは、データ項目中のバイト数をカウントし、従って、大雑把に異なるデータ項目を弁別することができる。
【００２９】
（Ａ＿ＥＡＯＳ−ＡＳＣＩＩ  Ｅｖｅｎ  Ａｄｄ，  Ｏｄｄ  Ｓｕｂｔｒａｃｔ）
このメトリクスは、カウンタあるいはレジスタに偶数のＡＳＣＩＩバイトを加え、カウンタあるいはレジスタから奇数のＡＳＣＩＩバイトを減算する。このメトリクスは、順序に関係なく、同様な特性内容を分析する。
【００３０】
（Ａ＿ＧＥＡ＿ＬＴＳ−ＡＳＣＩＩ，  Ｇｒｅａｔｅｒ／Ｅｑｕａｌ  Ａｄｄ，  Ｌｅｓｓ  Ｔｈａｎ  Ｓｕｂｔｒａｃｔ）
このメトリクスは、ＡＳＣＩＩ文字が最後のＡＳＣＩＩ文字以上である場合、カウンタあるいはレジスタに加え、現在の文字が最後の文字未満である場合、カウンタあるいはレジスタから減算する。このメトリクスは、文字の並べ替え順序に加えて、同様な文字内容を分析する。
【００３１】
（Ａ＿ＲＥＬＡＴＩＶＥ−ＡＳＣＩＩ  Ｒｅｌａｔｉｖｅ）
このメトリクスは、文字間の相対位置を使用して、ＡＳＣＩＩバイト値の偶数値を加え、奇数値を減算する。例えば、文字Ａ→Ｃは、変位２を、あるいは偶数値を有している。この相対測度により、各個別の文字に関係なく、文字から文字への相対移動の同様なパターンが検出され得る。
【００３２】
（ＡＳＣＩＩＣｏｕｎｔ，ＥｘｔＣｈａｒＣｏｕｎｔ，ａｎｄ  ＣｎｔｒｌＣｈａｒＣｏｕｎｔ）
これらは、ＡＳＣＩＩ、Ｅｘｔｅｎｄｅｄ  Ｃｈａｒａｃｔｅｒ、およびＣｏｎｔｒｏｌ  Ｃｈａｒａｃｔｅｒセットにおける文字の詳細カウントを行う、３つの個別のメトリクスであり、助けになる文字分布の分析を提供する。
【００３３】
（ａｓｃＴｒａｎｓＣｏｕｎｔ、ｄｅｃＴｒａｎｓＣｏｕｎｔ、ｅｑＴｒａｎｓＣｏｕｎｔ、およびｅｑＣｈａｒＣｏｕｎｔ）
これらのメトリクスは、繰り返しのカウントに加えて、昇順、降順、および同等の間の文字の並べ替え順の移行のカウントを提供し、並べ替え移行に関するさらなる分析を提供する。
【００３４】
（Ｂｙｔｅ  Ｆｒｅｑｕｅｎｃｙ  Ｈａｓｈ）
このメトリクスは、バイト発生頻度に関する詳細を提供し、全体のバイト頻度を提供する。
【００３５】
１つの実施形態において、特性メトリクスを計算した後に、ハッシュ関数がデータ項目に適用される。この方法において、サムプリントは、データ項目についての情報を妥協する、より少ない機会を有する他のものと、より容易に共有され得る。
【００３６】
再び、図２を参照して、各サムプリントメトリクスが個別に計算された後に、ステップ２１０において、いくつかのメトリクス（あるいはメトリクスのサブセット）が組み合わされ、単一の値−集合体サムプリントを形成する。単純な実施形態においては、いくつかのサムプリント値は、単一のストリングに連結される。
【００３７】
ステップ２１２において、所与の集合体サムプリントは、集合体サムプリントのライブラリに格納された、複数の事前に発生された集合体サムプリントと比較され、一致を識別する。より具体的には、各データ項目に対して（集合体サムプリントによって表わされるように）、比較器は、ライブラリ内において、集合体サムプリントと一致することがあるか否かを決定する。一致する値がある場合、一致はライブラリに記録され（例えば、カウンタをインクリメントすることによって）、現在のデータ項目を識別するデータが一致する集合体サムプリント値に関連付けられる。一致する値がない場合、データ項目を識別するデータと共に、新しい集合体サムプリント記録がライブラリに入力される。
【００３８】
ステップ２１４において、比較器がデータ項目が既存の集合体サムプリントに一致すると決定する場合、比較器は記録された観測頻度を閾値と比較する。閾値を超える場合、警告がついで発生され得る。
【００３９】
図４は、本発明に従った実施形態から得られたいくつかの実験結果の模式図を表わす。要素４０２は、元の文書あるいはデータ項目を表わす。この場合、文書は、テキスト文書であり、約１１０ｋバイトの大きさを有する。要素４０４は、同じ文書を表わすが、テキスト変換が初めの数行に対してなされている。同様に、要素４０６、４０８および４１０は、同じ元の文書を表わすが、文書の中央部において、文書の尾部あるいは終端部において、および文書の開始部と終端部との両方において、それぞれテキスト変換がなされている。
【００４０】
要素４４０は、選択されたデータ項目に対して、ストリングに連結された７つの個別のメトリクスの１６進法における行の値を示す。要素４４０において、メトリクスは、例えば、丸めて、「曖昧にされ」ている。要素４３０は、一方、連続した形式における２つのメトリクス（再び１６進法で）を示すが、ここでは、メトリクスは、すでに曖昧にされている。列の左側のメトリクスは、バイトカウントメトリクスであり、列の右側のメトリクスは、Ａ＿ＧＥＡ＿ＬＴＳメトリクスであり、両方とも上に記述されている。見られるように、この対のメトリクスは、文書の修正がなされた部分（開始部、中間部、終端部、あるいは開始と終端部の両方）に拘わらず、同じである。
【００４１】
図４は、単に例示としてのみを意味しており、従って、単に２つの連結された曖昧なメトリクスを示している。しかしながら、当業者は、他の同様な連結するメトリクスとの比較に対する仕方において、任意の数のメトリクスが連結され得ることを容易に理解するであろう。
【００４２】
再び図４を参照すると、要素４１２は、全体の変化（例えば、単語「ｄａｔａ」のすべての発生が、「ｄｔａａ」に変更されて、数値的な順序のみが変化する結果をもたらす）が元の文書４０２に対してなされている。この場合、要素４３２は、バイトカウントが同じに残る一方で、（１１０から１１１に）１だけ変更されて曖昧にされたＡ＿ＧＥＡ＿ＬＴＳメトリクスを示す。同様な文脈において、Ｒｏｔ１３暗号が元の文書に適用され、データ項目４１４を取得する。この場合、バイトカウントは、再び同じ値（７１）を残すが、Ａ＿ＧＥＡ＿ＬＴＳメトリクスは、さらに変更されている（要素４３４参照）。最後に、要素４１６は、元の文書４０２の再び並べ替えされた版を示す。この場合、バイトカウントは再び同じ値で残るが、Ａ＿ＧＥＡ＿ＬＴＳメトリクスは、さらに変更されている（要素４３６参照）。
【００４３】
最後の２つの要素４１８および４２０は、第１のビットマップ「Ａ」および第２のビットマップ「Ｂ」を表わし、ビットマップＢは、ビットマップＡの僅かに（つまり、１ピクセルだけ、）変更された版である。要素４３８から見られるように、バイトカウントは、これらの２つのビットマップに対して同じであり、Ａ＿ＧＥＡ＿ＬＴＳメトリクスもまた同じである。
【００４４】
前述のことから、本発明の実施形態に従った曖昧にされた集合体サムプリントを使用することは、同一ではないが、同様なデータ項目を、特に、その差が並べ替え順序にあるデータ項目を、同様に検出することを可能にすることを当業者は容易に理解する。結果として、下に議論するように、本発明の実施形態は複数の可能性のある応用を有する。
【００４５】
（ａ．ゼロデイアタックの検出）
以前に観測されたことのない方法を使用する新しいネットワークアタックは、「ゼロデイ」アタックと呼ばれる。ゼロデイアタックは、多くのコンピュータが短時間にアタックされあるいは検出されるので、同じあるいは同様なネットワークトラフィックの頻繁な繰り返しをしばしば発生する。そのような繰り返しを検出する本発明の実施形態の可能性は、そのようなアタックを検出することを助ける。
【００４６】
多くのゼロデイアタックは実際に以前のアタックの変形である。履歴的アタックに対するサムプリントのライブラリを仮定すると、同様に近いバイトストリームを検出する本発明の実施形態の可能性は、正確なシグネチャが得られる前に、そのような変形を検出することを助け得る。
【００４７】
（ｂ．ゼロデイアタックが識別される場合の、他の位置に対する指示および警告）
集合体サムプリント（単一の数）を使用するアタックの特徴付けは、アタックの識別が、他の位置／組織とすばやくかつ極秘に共有され、同じサムプリントを同様なアタックを識別するために使用し得る。
【００４８】
（ｃ．分類されていないネットワークへの分類されたシグネチャの配布）
集合体サムプリントが導出された元のデータ項目を導出する（「リバースエンジニアリング」）ことは、困難であるか不可能である。集合体サムプリントは、従って、実際のアタックの知識をあらわにしないで、通信され得るアタック「シグネチャ」を表わす。従って、特定のアタックの知識が分類され、分類された情報をあらわにする方法がないので、集合体サムプリント「シグネチャ」が分類されていない情報として扱われ得る。
【００４９】
（ｄ．全体のバイトストリームの伝送なしの集中型ゼロデイアタック）
本発明の実施形態を使用するアタックの検出は、中央位置において、あるいは、中央位置が中央サムプリントライブラリとして働く複数の位置において実行され得る。全体の悪意のあるバイトストリームではなく、コンパクトなサムプリントのみが伝送される必要があるので、サムプリントは、ライブラリから分散された位置に（例えば、分散型センサに）効率的に配布され得る。
【００５０】
（ｅ．通過における検出および／または法医学的分析に対して、微小な変更が加えられた、マルウェア／トロイの木馬／不適切な内容として指定されるファイルの検出）
集合体サムプリントは、ウィルス、ワーム、「マルウェア」、ポルノグラフィー、あるいはテロリスト情報のような、悪意のあるあるいは法律違反として識別されるコンピュータファイルに対して、計算され得る。微小な変更（例えば、数単語、あるいは画像中の数ピクセル）を有するそのようなフィルのコピーのサムプリントは、元のサムプリントと同一か、あるいは、数値的に元のサムプリントに近くあるべきである。サムプリントは、従って、ネットワーク上の通過か、あるいは特定のコンピュータ上の格納（例えば、法医学的分析の間）におけるそのようなファイルを検出するために使用され得る。
【００５１】
（ｆ．アタック属性）
集合体サムプリントは、アタックのソースである、特定の人物、組織あるいはコンピュータを識別し得る。しかしながら、同様なネットワークトラフィックあるいはファイルを識別する手段を提供することによって、複数のネットワーク位置において、同様な敵意のある活動を識別するために使用され得、ソースを追跡することを支援する。
【００５２】
（ｇ．非公開または機密として指定された文書の散布の検出）
認証されていない位置（例えば、ネットワークセンサ上または認証されていないコンピュータ上）における、制限されたまたは機密として指定された文書のサムプリントの観測は、その位置におけるその文書の存在を強く示す。さらに、集合体サムプリントがソース項目における小さな変化に対して変化しないので、この認証されていない非公開の検出方法は、このような変化を介するこの公開を隠蔽することへの試みに対して弾力的である。
【００５３】
（ｈ．アクティビティパターンの相関）
アクティビティパターンのシーケンスの集合体サムプリント（例えば、ネットワーク侵入検出シグネチャ）が計算され得る。このことは、このようなアクティビティを相関させ、同様のパターンを識別する手段を提供し得る。
【００５４】
図５は、本発明の実施形態を実装するためのいくつかの物理要素およびモジュールの配列を描いている。より具体的には、サーバ５０４またはいくつかの他の電子デバイスは、例えば、ネットワーク５０２と通信し、このネットワーク５０２を介してデータが渡され得る。このデータのいくつかは、サーバ５０４によって受信されるか、または捕捉され、データ項目データベース５０６に格納される。データ項目データベース５０６は、単一の物理ユニットとして実現され得るか、または、他の公知のストレージデバイス技術の中で周知のハードディスク技術によって実装される分散型データベースとして実現され得る。
【００５５】
分析モジュール５０８は、データ項目データベース５０６にアクセスし、上述のデータ項目を直接分析するか、または最初にデータ項目データベース５０６に格納されたデータをセグメント化し、次いで上記のようにセグメント化されたデータ項目を分析する。分析モジュール５０８は、物理メモリ５０９（例えば、ランダムアクセスメモリ（ＲＡＭ）、動的ＲＡＭ（ＤＲＡＭ）、または磁気ＲＡＭ（ＭＲＡＭ）など）を用いて、好適には、データ項目の特性メトリクスを計算し、結果の値の正確さを低減し、集合体サムプリントを得るためにこれらの値をストリングに組み込む。集合体サムプリントは、次いで、集合体サムプリントライブラリ５１０に格納された、同様に計算された他の集合体サムプリントと比較される。一致が見出され、一致の閾値数が検出される場合には、アラームモジュール５１２は、例えば、特に他の可能性ある技術の中でも、通知ｅメール、テキストメッセージ、信号光またはトーン、あるいは「ダッシュボート」指示を提供することによって、アラームを発生させ得る。
【００５６】
当業者は、要素５０６、５０８、５０９、５１０および５１２が示されるように実質的に別個に実装され得るか、または適切であるように組み合わされ得ることを認識する。例えば、これらの要素の全て（またはいくつか）がサーバ５０４または他の単一のコンピューティングデバイスに組み込まれ得る。
【００５７】
本明細書に添付される付録は、本発明の実施形態に従ったデータ処理の結果のプリントアウトである。この場合には、比較的単純なフレーズ／ストリング“Ｔｈｉｓ  ｉｓ  ＡＮ  ｅｘａｍｐｌｅ”が最初に処理され、次いで、付録の８ページにおいて、類似のストリング“Ｔｈｉｓ  ＩＳ  ａｎ  ｅｘａｍｐｌｅ”が次に処理される。これらの２つのストリングのそれぞれの特性メトリクスは文字ごとに（すなわちバイトごとに）示される。付録の１４ページの下部は、２つのストリングの結果を比較する。この付録は、例示的な実装を図示することを意図され、本発明の範囲を定義したり、限定したりすることを意図されていない。
【００５８】
図５に描かれている上述の要素およびモジュールは、ハードウェアに実装され得るか、そして／または便宜に応じてハードウェアおよびソフトウェアの組み合わせで実装され得る。
【００５９】
本発明の実施形態の上述の開示は、例示および説明の目的で提示されてきた。開示された正確な形式に本発明を包括したり限定したりすることは意図されていない。本明細書に記載された実施形態の多くの変形および修正が、上記の開示を考慮すると当業者に明らかである。本発明の範囲は、添付の特許請求の範囲によって、そしてそれらの均等物によってのみ定義されることが意図される。
【００６０】
【数１】
2011023008.tif 000003
【００６１】
【数２】
2011023008.tif 000004
【００６２】
【数３】
2011023008.tif 000005
【００６３】
【数４】
2011023008.tif 000006
【００６４】
【数５】
2011023008.tif 000007
【００６５】
【数６】
2011023008.tif 000008
【００６６】
【数７】
2011023008.tif 000009
【００６７】
【数８】
2011023008.tif 000010
【００６８】
【数９】
2011023008.tif 000011
【００６９】
【数１０】
2011023008.tif 000012
【００７０】
【数１１】
2011023008.tif 000013
【００７１】
【数１２】
2011023008.tif 000014
【００７２】
【数１３】
2011023008.tif 000015
【００７３】
【数１４】
2011023008.tif 000016
【図１】
2011023008.tif 000017
【図２】
2011023008.tif 000018
【図３】
2011023008.tif 000019
【図４】
2011023008.tif 000020
【図５】
2011023008.tif 000021
【図６】
2011023008.tif 000022