(57)【要約】【課題】データ解析、特に異常データ伝送の検出に関する技術を提供する。【解決手段】ネットワークを通じて伝送された異常ペイロードを検出する方法、装置、及び媒体。システムは、ネットワーク内のペイロードを受信し、各ペイロードに含まれたデータに対する長さを判断する。ネットワーク内で受信した各ペイロードに含まれたデータに対して統計的分布が生成され、ネットワークを通じて伝送された正常ペイロードを表す選択されたモデル分布と比較される。モデルペイロードは、それが受信ペイロードに含まれたデータに対する長さを含む所定の長さ範囲を有するように選択することができる。次に、受信ペイロードの統計的分布とモデル分布の間で検出された差異に基づいて、異常ペイロードが識別される。システムはまた、モデルの自動トレーニング及び漸次的更新をもたらすことができる。【選択図】図１
2011040064.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで受信したペイロードデータをモデル化する方法であって、
ネットワーク内で複数のペイロードデータを受信する段階と、
受信した全てのペイロードデータに対してペイロード長さ分布を作成する段階と、
前記ペイロード長さ分布を複数のペイロード範囲に分割する段階と、
各受信ペイロードデータに対して統計的分布を生成する段階と、
前記ペイロード範囲によって包含された全ての受信ペイロードデータの前記統計的分布に基づいて、各ペイロード範囲に対するモデルペイロードを構成する段階と、
を含むことを特徴とする方法。
【請求項２】
前記モデルペイロードを構成する段階は、各ペイロード範囲によって包含された全てのペイロードデータの前記統計的分布に対して少なくとも１つの重心を計算する段階を更に含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ペイロード長さ分布は、カーネル推定を用いて分割されることを特徴とする請求項１に記載の方法。
【請求項４】
前記ペイロード長さ分布は、少なくとも１つのクラスター化アルゴリズムを用いて分割されることを特徴とする請求項１に記載の方法。
【請求項５】
各区分に対してペイロード長さ分布を作成する段階と、
各ペイロード範囲内の前記ペイロード長さ分布を複数のクラスターにクラスター化する段階と、
前記複数のクラスターの各々に対して１つずつ複数の重心を計算する段階と、
各ペイロード範囲内の前記複数の重心に対してモデル重心を計算する段階と
を更に含み、
各モデル重心は、対応するペイロード範囲に対して前記ネットワークで受信した正常ペイロードを表すものである、
ことを特徴とする請求項１に記載の方法。
【請求項６】
ペイロードデータが、連続的に受信され、
前記モデルペイロードは、全ての受信ペイロードデータに基づいて構成される、
ことを特徴とする請求項１に記載の方法。
【請求項７】
所定の閾値よりも古い受信ペイロードデータをエージアウトする段階を更に含み、
前記モデルペイロードは、現在のペイロードデータに基づいて構成される、
ことを特徴とする請求項６に記載の方法。
【請求項８】
前記統計的分布は、ｎグラム分布を用いて生成され、
各ｎグラムは、可変バイト分類である、
ことを特徴とする請求項１に記載の方法。
【請求項９】
ｎは、バイト分類の混合値であることを特徴とする請求項８に記載の方法。
【請求項１０】
ｎ＝１であることを特徴とする請求項８に記載の方法。
【請求項１１】
ｎ＝２であることを特徴とする請求項８に記載の方法。
【請求項１２】
ｎ＝３であることを特徴とする請求項８に記載の方法。
【請求項１３】
各受信ペイロードデータの前記統計的分布は、該受信ペイロードデータに関するバイト値分布であることを特徴とする請求項１に記載の方法。
【請求項１４】
各受信ペイロードデータの前記バイト値分布は、該受信ペイロードデータに含まれたデータのバイト頻度カウントであることを特徴とする請求項１３に記載の方法。
【請求項１５】
各受信ペイロードデータの前記バイト値分布は、該受信ペイロードデータに含まれたデータのランク順バイト頻度カウントであることを特徴とする請求項１３に記載の方法。
【請求項１６】
前記モデルペイロードを構成するのに十分なペイロードデータを受信した時を自動的に検出する段階を更に含むことを特徴とする請求項１に記載の方法。
【請求項１７】
前記自動的に検出する段階は、
所定の時間長を有するエポックを定義する段階と、
現在のエポックに対して前記ネットワークで前記複数のペイロードデータを受信する段階と、
前記現在のエポック内で受信した前記複数のペイロードデータに対する前記モデルペイロードとして現在のペイロードモデルを構成する段階と、
前記現在のペイロードモデルを前回のエポックに対する前記モデルペイロードと比較する段階と、
所定の安定性条件に到達するまで前記受信する段階、前記構成する段階、及び前記比較する段階を繰り返す段階と、
を更に含む、
ことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記安定性条件は、少なくとも部分的に、前記現在のペイロードモデルと前記前回のエポックに対する前記モデルペイロードとの間の距離に基づいていることを特徴とする請求項１７に記載の方法。
【請求項１９】
ネットワークで受信したペイロードデータをモデル化するためのシステムであって、
ネットワークに結合され、該ネットワークを通じて複数のペイロードデータを受信するコンピュータ、
を含み、
前記コンピュータは、
受信した全てのペイロードデータに対してペイロード長さ分布を作成し、
前記ペイロード長さ分布を複数のペイロード範囲に分割し、
各受信ペイロードデータに対して統計的分布を生成し、
前記ペイロード範囲によって包含された全ての受信ペイロードデータの前記統計的分布に基づいて、各ペイロード範囲に対してモデルペイロードを構成する、
ように構成されている、
ことを特徴とするシステム。
【請求項２０】
前記コンピュータは、更に、
各区分に対してペイロード長さ分布を作成し、
各ペイロード範囲内の前記ペイロード長さ分布を複数のクラスターにクラスター化し、  前記複数のクラスターの各々に対して１つずつ複数の重心を計算し、
各ペイロード範囲内の前記複数の重心に対してモデル重心を計算する、
ように構成されており、
各前記モデル重心は、前記対応するペイロード範囲に対して前記ネットワークで受信した正常ペイロードを表している、
ことを特徴とする請求項１９に記載のシステム。
【請求項２１】
前記コンピュータは、更に、
所定の時間長を有するエポックを定義し、
現在のエポックに対して前記ネットワークで前記複数のペイロードデータを受信し、
前記現在のエポック内で受信した前記複数のペイロードデータに対する前記モデルペイロードとして現在のペイロードモデルを構成し、
前記現在のペイロードモデルを前回のエポックに対する前記モデルペイロードと比較し、
所定の安定性条件に到達するまで受信し、構成し、比較し続ける、
ように構成されている、
ことを特徴とする請求項１９に記載のシステム。
【請求項２２】
ネットワークで受信したペイロードデータをモデル化するためにコンピュータによって実行可能な命令を記録するコンピュータ可読記録媒体であって、
前記命令により、前記コンピュータは、
ネットワークを通じて複数のペイロードデータを受信し、
受信した全てのペイロードデータに対してペイロード長さ分布を作成し、
前記ペイロード長さ分布を複数のペイロード範囲に分割し、
各受信ペイロードデータに対して統計的分布を生成し、
前記ペイロード範囲によって包含された全ての受信ペイロードデータの前記統計的分布に基づいて、各ペイロード範囲に対してモデルペイロードを構成する、
行為を実行する、
ことを特徴とするコンピュータ可読記録媒体。
【請求項２３】
前記コンピュータに、
各区分に対してペイロード長さ分布を作成する段階と、
各ペイロード範囲内の前記ペイロード長さ分布を複数のクラスターにクラスター化する段階と、
前記複数のクラスターの各々に対して１つずつ複数の重心を計算する段階と、
各ペイロード範囲内の前記複数の重心に対してモデル重心を計算する段階と、
を実行させる命令、
を更に含み、
各前記モデル重心は、前記対応するペイロード範囲に対して前記ネットワークで受信した正常ペイロードを表している、
ことを特徴とする請求項２２に記載のコンピュータ可読記録媒体。
【請求項２４】
前記コンピュータに、
所定の時間長を有するエポックを定義する段階と、
現在のエポックに対して前記ネットワークで前記複数のペイロードデータを受信する段階と、
前記現在のエポック内で受信した前記複数のペイロードデータの前記モデルペイロードとして現在のペイロードモデルを構成する段階と、
前記現在のペイロードモデルを前回のエポックに対する前記モデルペイロードと比較する段階と、
所定の安定性条件に到達するまで前記受信する段階、前記構成する段階、及び前記比較する段階を繰り返す段階と、
を実行させる命令、
を更に含むことを特徴とする請求項２２に記載のコンピュータ可読記録媒体。
【請求項２５】
ネットワークで受信したペイロードデータをモデル化するためのシステムであって、
ネットワークを通じて複数のペイロードデータを受信するための手段と、
受信した全てのペイロードデータに対してペイロード長さ分布を作成するための手段と、
前記ペイロード長さ分布を複数のペイロード範囲に分割するための手段と、
各受信ペイロードデータに対して統計的分布を生成するための手段と、
前記ペイロード範囲によって包含された全ての受信ペイロードデータの前記統計的分布に基づいて、各ペイロード範囲に対してモデルペイロードを構成するための手段と、
を含むことを特徴とするシステム。
【請求項２６】
各区分に対してペイロード長さ分布を作成するための手段と、
各ペイロード範囲内の前記ペイロード長さ分布を複数のクラスターにクラスター化するための手段と、
前記複数のクラスターの各々に対して１つずつ複数の重心を計算するための手段と、
各ペイロード範囲内の前記複数の重心に対してモデル重心を計算するための手段と、
を更に含むことを特徴とする請求項２５に記載のシステム。
【請求項２７】
所定の時間長を有するエポックを定義するための手段と、
現在のエポックに対して前記ネットワークで前記複数のペイロードデータを受信するための手段と、
前記現在のエポック内で受信した前記複数のペイロードデータに対する前記モデルペイロードとして現在のペイロードモデルを構成するための手段と、
前記現在のペイロードモデルを前回のエポックに対する前記モデルペイロードと比較するための手段と、
所定の安定性条件に到達するまで前記受信する段階、前記構成する段階、及び前記比較する段階を繰り返すための手段と、
を更に含むことを特徴とする請求項２５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権情報及び関連出願への相互参照
本出願は、２００３年１１月１２日出願の米国特許仮出願第６０／５１８，７４２号及び２００４年９月２８日出願の米国特許仮出願第６０／６１３，６３７号からの優先権を主張するものであり、この両方は、本明細書において引用により組み込まれている。
【０００２】
本出願は、出願番号＿＿＿＿＿を有する「データのｎグラム分布を用いてファイルを特定する装置、方法、及び媒体」という名称の現在特許出願中の特許出願、及び出願番号＿＿＿＿＿を有する「データのｎグラム分布を用いてネットワーク送信の発信源をトレースする装置、方法、及び媒体」という名称の現在特許出願中の特許出願に関連しており、両方とも本出願と同日に出願され、その全内容は引用により組み込まれている。
【０００３】
連邦政府補助研究に関する説明
本発明は、ＤＡＲＰＡに付与された契約番号Ｆ３０６０２−０２−２−０２０９の下で合衆国政府の支援により行われたものである。合衆国政府は、本発明におけるある一定の権利を有する。
【０００４】
本発明は、データ解析に関し、より具体的には、異常データ伝送の検出に関する。
【背景技術】
【０００５】
ネットワークコンピュータシステムは、データを互いに交換する処理サイト（例えば、ホストコンピュータ）から成る。データを交換するためにコンピュータによって使用されるプロトコルは様々である。例えば、ＴＣＰ／ＩＰは、ネットワークによって接続されているコンピュータ間でデータ搬送を行う１つのネットワークプロトコルである。各ホストコンピュータには、固有のインターネットプロトコル（ＩＰ）アドレスが割り当てられ、データは、送信元ＩＰアドレスと宛先ＩＰアドレスとの間で交換され、送信元ホスト上の送信元ポートから宛先ホスト上の宛先ポートへ送られる。ポート番号は、何らかの遠隔送信元ホストからそのポート上に着信したデータを「聞く」特定のサービス又はアプリケーションに対応する。標準化されて典型的な公知のサービスが割り当てられたポートもある。例えば、ウェブベースのサーバは、一般的に、ウェブサーバが予想するハイパーテキスト・トランスファー・プロトコル（ＨＴＴＰ）指令に従って制御情報と共にＴＣＰ／ＩＰパケットを通じて送出されたウェブ要求の送信用ポート８０が割り当てられる。ＴＣＰ／ＩＰは、ＩＰアドレス、ポート番号、制御情報、及びペイロードのＩＤから成る「ネットワークパケット」の形でこのようなデータを伝送する。ペイロードは、サーバ又はアプリケーションが予想する実際のデータである。ウェブトラフィックの場合、ペイロードは、例えば、ＵＲＬによって表されたウェブページに対するＧＥＴ要求で構成することができる。
【０００６】
インターネットのようなネットワークがユーザによりアクセス可能になると、伝送されるデータ量が大幅に増加する。これによって、個人が無防備のユーザのコンピュータに危害を与える機会が発生する。ワーム及びウイルスは、特に、コンピュータシステムでのセキュリティ侵害の公知の要因である。これらは、サービス又はアプリケーションを無効化し、クラッシュさせ、又は無許可の特権をアタッカーに与える脆弱性（ワームの実行可能なプログラムへのルートアクセスをもたらすバッファオーバーフローなど）を利用したサービス又はアプリケーションに送られる悪意データから成るものである。一部の一般的な例としては、最近の「Ｃｏｄｅ  Ｒｅｄ」、「Ｎｉｍｄａ」、及び「Ｓｏｂｉｇ」ワーム及びウイルスがある。これらの悪意のある侵略イベントを検出してそれからシステムを守るように設計された従来のシステムは、公知の従来の悪いワーム又はウイルスから人間によって又は半自動手段によって作成された「シグニチャー」又は「サムプリント」に依存している。現在、システムは、ウイルスが検出され、シグニチャーが作成されてウイルススキャナ又はファイアウォール規則のようなシグニチャーベースの検出器に分配された後に保護される。
【０００７】
攻撃の脅威の可能性を小さくするために、ファイアウォールが確立されてネットワーク内のコンピュータを保護する。ファイアウォールは、一般的にコンピュータネットワークのゲートウェイに配置されるか又は極めて重要なホスト又はサーバコンピュータの前のネットワーク上にあるコンピュータシステムであり、これは、ネットワーク又はサーバに出入りするトラフィックを検査して、どのトラフィックを進めることができるか及びどのトラフィックをフィルタ処理することになるかを判断する。ファイアウォールはまた、個々のコンピュータ上でソフトウエアの形で実行することができる。一例として、伝播するワームは、一般的に、特定のワームの出現を検出する「シグニチャー規則」が予め取り込まれたファイアウォールによってフィルタ処理される。パケット及びそのペイロードがワームに付随する公知のシグニチャーストリングと「符合」した時、ファイアウォールは、ワームを配信するＴＣＰ／ＩＰパケットをブロックし、サーバがそのワームに攻撃されるのを防止するであろう。
【０００８】
この手法には、２つの基本的な問題がある。第１に、ワームに付随するシグニチャーストリングは、ワームが検出された後でしか構成することができない。これは、ワームが実際には最初の出現時に検出されず、少なくとも１つのサーバを論理的に攻撃してそのサーバを損傷させることを意味する。保護は、第三者がシグニチャーストリングを構成して全てネットワークサイト及びファイアウォールに幅広く配備するまで可能ではない。一般的に何日も要する可能性があるこの過程の間に貴重な時間を損失する可能性がある。この時間の間に、ワームは、インターネット中に幅広く広がることに成功し、何百万ではなくても何千ものホストを損傷するであろう。これは、ワームが特にインターネット上で急速に伝播し、非常に高速にシステムに感染して破壊するからである。第２に、インターネット上に出現するワームは非常に多く、その各々は、ファイアウォールの全てに各々が取り込まれているそのワーム検出のために構成された個別のシグニチャーストリングを既に持っている。これは、ファイアウォールは、多くのシグニチャーストリングを記憶し、処理し、ゲートウェイ又はサーバに送出された各パケットペイロードと適合させるために、時間と共に複雑に成長すべきであることを示唆している。
【０００９】
ワーム伝播中であることを示すと考えられる外部ソースからの走査及び探査の速度を解析することによってワームを検出する様々な試みが為されている。残念ながら、この手法は、早期の伝播開始を検出するものであり、本質的に、ワームは、既にシステムへの進入に成功してそれに感染し、損害及び伝播が始まっているのである。
【００１０】
以上により、ネットワークを通じて伝送される潜在的に有害なデータを検出することができるシステムを提供することが有用と考えられる。また、潜在的に有害なデータが悪意のあるプログラムか否かを判断することができるシステムを提供することも有用であろう。更に、ワーム及びウイルスのような悪意なプログラムをこのようなプログラムの最初の出現時にフィルタ処理するためのシグニチャーを提供することも有用と考えられる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】米国特許仮出願第６０／５１８，７４２号
【特許文献２】米国特許仮出願第６０／６１３，６３７号
【発明の概要】
【課題を解決するための手段】
【００１２】
上記及び他の必要性は、ネットワークを通じて伝送されている潜在的に有害なデータを検出することができる本発明によって対処される。本発明の１つ又はそれよりも多くの実施形態は、ペイロードが潜在的に有害であるか否かを判断するために、ペイロードに含まれたデータの統計的解析を利用する。統計的解析は、ペイロードに含まれたデータのバイト値分布の形での解析とすることができる。ネットワークを通じて伝送されたデータは、その有害である可能性を判断するために、ネットワークによって以前に受信した「正常」データのモデルと比較される。ネットワークによって受信した正常データは、設定期間にわたって受信したトラフィックをモデル化することによって判断することができる。すなわち、正常データは、ネットワークを通るトラフィックの通常の流れを表し、従って、良好なデータ、潜在的に有害なデータ、及びノイズを含む可能性がある。次に、この正常データを収集して処理し、新たに受信したデータの統計的分布と比較されるモデル統計的分布を作成することができる。
【００１３】
本発明の１つ又はそれよりも多くの実施形態によれば、ネットワークを通じて伝送された異常ペイロードを検出する方法が提供される。本方法は、ネットワーク内で少なくとも１つのペイロードを受信する段階と、少なくとも１つのペイロードに含まれたデータに対して長さを判断する段階と、ネットワーク内で受信した少なくとも１つのペイロードに含まれたデータの統計的分布を生成する段階と、生成された統計的分布の少なくとも一部分をネットワークを通じて伝送された正常ペイロードを表す選択されたモデル分布の対応する部分と比較する段階とを含み、選択モデルのペイロードは、少なくとも１つのペイロードに含まれたデータに対する長さを包含する所定の長さ範囲を有し、本方法は、更に、少なくとも１つのペイロードに対する統計的分布の少なくとも一部分とモデル分布の対応する部分との間で検出された差異に少なくとも部分的に基づいて、少なくとも１つのペイロードが異常ペイロードであるか否かを識別する段階を含む。
【００１４】
１つ又はそれよりも多くの実施例によれば、少なくとも１つのペイロードの統計的分布とモデル分布との間の差は、２つの間の距離メトリックに基づいて判断される。距離メトリックは、任意的に、例えばマハラノビスの距離を含む様々な技術に基づいて計算することができる。本発明の他の実施例は、異常ペイロードがワーム又はウイルスであるか否かを判断することができる。ワーム又はウイルスであると判断されたあらゆるペイロードに対して、任意的に、シグニチャーを生成することができる。
【００１５】
本発明の１つ又はそれよりも多くの実施形態によれば、ネットワークで受信したペイロードデータをモデル化する方法が提供される。本方法は、ネットワークで複数のペイロードデータを受信する段階と、全ての受信ペイロードデータに対してペイロード長さ分布を作成する段階と、ペイロード長さ分布を複数のペイロード範囲に分割する段階と、各受信ペイロードデータに対して統計的分布を生成する段階と、ペイロード長さ範囲によって包含された全ての受信ペイロードデータの統計的分布に基づいて、各ペイロード範囲に対してモデルペイロードを構成する段階とを含む。
【００１６】
少なくとも１つの特定的な実施例によれば、モデルペイロードは、最も最近に受信した又は現在のペイロードデータに基づいて構成される。また、本発明の１つ又はそれよりも多くの実施例は、モデルペイロードを構成するのに十分なペイロードデータが収集された時を自動的に検出することができる。
【００１７】
すなわち、以下の詳細な説明をより良く理解することができるように及び当業技術への本発明の貢献をより良く認めることができるように、本発明のより重要な特徴及び全てではないがいくつかの実施形態を概説した。勿論、以下で説明することになる及び特許請求の範囲の主題を形成することになる本発明の付加的な特徴が存在する。
【００１８】
この点において、本発明の１つ又はそれよりも多くの実施形態をより詳細に説明する前に、本発明は、その適用において、以下の説明で示すか又は図面に示す構成の詳細及び構成要素の配置に限定されないことを理解されたい。むしろ、本発明は、他の実施形態が可能であり、様々な方法で実施かつ実行することができる。また、本明細書で使用する表現法及び用語は、説明を目的としたものであり、限定的と考えるべきではないことも理解されたい。
【００１９】
従って、当業者は、本開示が基本とする概念を本発明のいくつかの目的を実行するために他の構造、方法、及びシステムの設計の基盤として容易に利用することができることを認めるであろう。従って、特許請求の範囲は、このような同等な構成をそれらが本発明の精神及び範囲から逸脱しない限り含むものとして見なすことが重要である。
【００２０】
本発明を特徴付ける新規性の上記及び様々な特徴は、本開示の一部を形成する特許請求の範囲に特殊性と共に指摘されている。本発明、その作動上の利点、及びその使用によって達成される特定の恩典をより良く理解するために、本発明を実施するために考えられている最良の態様を説明する本発明の添付図面及び好ましい実施形態を参照すべきである。
【図面の簡単な説明】
【００２１】
【図１】本発明の少なくとも１つの例示的な実施形態による異常ペイロードを検出するシステムを概念的に示すブロック図である。
【図２】本発明の１つ又はそれよりも多くの実施形態によるネットワーク内で受信したペイロードデータをモデル化するために実行される段階を示す流れ図である。
【図３Ａ】本発明の１つ又はそれよりも多くの実施形態によるペイロードデータの長さ分布を示すグラフである。
【図３Ｂ】本発明の１つ又はそれよりも多くの実施形態によるペイロードデータの長さ分布を示すグラフである。
【図４】例示的なペイロードに含まれたデータの統計的分布を示す図である。
【図５Ａ】ペイロードに含まれたデータのランク順バイト頻度カウントを示す図である。
【図５Ｂ】図４に示すデータのランク順バイト頻度カウントを示す図である。
【図６Ａ】図５Ａのデータに対応する例示的なペイロードシグニチャーＺストリングを示す図である。
【図６Ｂ】図５Ｂのデータに対応する例示的なペイロードシグニチャーＺストリングを示す図である。
【図７】本発明の１つ又はそれよりも多くの実施形態によるペイロードデータをモデル化するために実行される段階を示す流れ図である。
【図８】本発明の１つ又はそれよりも多くの実施形態によるペイロードデータが自動的に収集される方法を示す流れ図である。
【図９】ネットワークを通じて伝送された異常ペイロードを検出するために実行される段階を示す流れ図である。
【図１０】本発明の１つ又はそれよりも多くの実施形態による異常ペイロードを検出するために実行される段階を示す流れ図である。
【図１１】例示的なワームの検出を示す図である。
【図１２】ネットワーク上でのコンピュータへの異なるファイル形式の送出を概念的に示すブロック図である。
【図１３】本発明の１つ又はそれよりも多くの実施形態によるファイル形式を識別するために実行される段階を示す流れ図である。
【図１４Ａ】異なるファイル形式の統計的分布を示すグラフである。
【図１４Ｂ】異なるファイル形式の統計的分布を示すグラフである。
【図１４Ｃ】異なるファイル形式の統計的分布を示すグラフである。
【図１４Ｄ】異なるファイル形式の統計的分布を示すグラフである。
【図１４Ｅ】異なるファイル形式の統計的分布を示すグラフである。
【図１４Ｆ】異なるファイル形式の統計的分布を示すグラフである。
【図１４Ｇ】異なるファイル形式の統計的分布を示すグラフである。
【図１４Ｈ】異なるファイル形式の統計的分布を示すグラフである。
【図１４Ｉ】異なるファイル形式の統計的分布を示すグラフである。
【図１５】本発明の１つ又はそれよりも多くの実施形態によるファイル形式をモデル化するために実行される段階を示す流れ図である。
【図１６】本発明の１つ又はそれよりも多くの実施形態によるファイル形式を確認するために実行される段階を示す流れ図である。
【図１７】本発明の１つ又はそれよりも多くの実施形態による悪意的なプログラムを識別するために実行される段階を示す流れ図である。
【図１８】いくつかのコンピュータシステムにわたる攻撃を概念的に示すブロック図である。
【図１９】本発明の１つ又はそれよりも多くの実施形態による送信源をトレースするために実行される段階を示す流れ図である。
【発明を実施するための形態】
【００２２】
ここで、本発明の１つ又はそれよりも多くの実施形態を以下に詳細に参照する。このような実施形態を本発明の説明として提供するが、それには限定されないものとする。実際に、当業者は、本明細書を読んで本発明の図面を見ると、様々な修正及び変形を行うことができることを認めるであろう。
【００２３】
例えば、一実施形態の一部として示すか又は説明する特徴を他の実施形態に用いて、更に別の実施形態をもたらすことができる。更に、ある一定の特徴を同じか又は類似の機能を実行するまだ言及していない類似の装置又は特徴と相互交換することができる。従って、このような修正及び変形は、本発明の全体に含まれることが意図されている。
【００２４】
本発明の詳細を説明する前に、説明で用いる表記及び名称の一部を簡単に説明する。次に、本発明を実施する際に使用可能な例示的なハードウエアを説明する。
【００２５】
表記及び名称
以下の詳細な説明は、コンピュータ上又はコンピュータのネットワーク上で実行するプログラム手順を用いて表すことができる。これらの手続き上の説明及び表現は、自らの作業の内容を他の当業者に有効に伝えるために当業者によって使用される手段である。このような手順を実行するために、１つ又はそれよりも多くの外部ソース又は入力装置から情報を検索することが必要であると考えられる。また、内部又は外部に位置することができる様々な記憶装置から情報を検索することができる。実行段階が完了すると、情報を表示装置、磁気記憶装置、不揮発性メモリ装置、揮発性メモリ、及び／又はプリンタのような様々なソースに出力することができる。更に、有線、無線、衛星、光などのような様々な通信方法及びネットワークを用いて、情報を遠隔地に位置する装置に伝送することができる。
【００２６】
本明細書で使用される時の「コンピュータ可読媒体」という用語は、実行のために命令をプロセッサに供給することに参加するあらゆる媒体を示している。このような媒体は、以下に限定されるものではないが、不揮発性媒体、揮発性媒体、及び伝送媒体を含む多くの形態を取ることができる。不揮発性媒体としては、例えば、光又は磁気ディスクがある。揮発性媒体としては、コンピュータ内にインストールされる動的メモリがある。伝送媒体としては、同軸ケーブル、銅線、及び光ファイバを含むことができる。また、伝送媒体は、無線周波数（ＲＦ）及び赤外線（ＩＲ）データ通信中に生成されるもののような音波又は光波の形態を取ることができる。コンピュータ可読媒体の一般的な形態としては、例えば、ハードディスク、磁気テープ、あらゆる他の磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤ、あらゆる他の光媒体、ＲＡＭ、ＲＯＭ、及びＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、あらゆる他のメモリチップ又はカートリッジ、後述するような搬送波、又はコンピュータが読み取ることができるあらゆる他の媒体がある。
【００２７】
ペイロードベースの異常検出の概要
本発明は、少なくとも１つの目標として、ネットワーク内で受信したペイロードデータを解析する必要がある。解析結果は、例えば、ネットワークを通じたトラフィックの正常な流れのモデル化を含む様々な目的に使用することができる。本発明の１つ又はそれよりも多くの実施形態は、ネットワークシステムゲートウェイでのワームの最初の発生の検出及び第１にワーム侵入の防止を考慮するものである。従って、ワームの破壊的な作用及びその伝播への関わりを防止することができる。むしろ、本発明の１つ又はそれよりも多くの実施形態は、部分的には、解析と、ネットワークサービス又はアプリケーションに送出されると予想される「正常」ペイロードのモデル化とを行うものである。
【００２８】
１つ又はそれよりも多くの実施形態では、本発明は、「正常」ペイロードを収集し、「正常」ペイロードのモデルの役目をするこれらのペイロードのｎグラム（又は「バイト値」）統計的分布を生成する「学習」段階を含む。収集ペイロードは、必ずしも安全なペイロードとは限らない。むしろ、これらのペイロードは、正規の期間中にネットワークを通じて伝送された情報を表すものである。これをモデルペイロードと呼ぶ。このモデルペイロードを学習段階で生成した後、異常検出段階が始まる。異常検出段階では、ネットワークサービス／アプリケーションへの着信ペイロードを捕捉する。着信ペイロードを試験してモデルペイロードとの差異を判断する。例えば、モデルペイロードからの一貫性（又は距離）に関してこのペイロードを試験することによってこれを行うことができる。本発明の１つ又はそれよりも多くの実施形態では、学習段階中に収集した全てのペイロードデータに対して「重心」を計算する。次に、重心モデルは、異常ペイロードを検出するモデルペイロードとして機能する。
【００２９】
本発明の１つ又はそれよりも多くの実施形態によれば、正常（例えば、予想）ペイロードと違いすぎると判断されたあらゆるペイロードは、異常と見なされてフィルタ処理されるか、又はそうでなければサービス／アプリケーションに送られない。これによって、このペイロードがその後にワーム又はウイルスと判断された場合に、感染の可能性を防止することができる。許される許容範囲レベルをユーザが設定するか、又は所定の判断基準に基づいて自動的に設定することができる。本発明の１つ又はそれよりも多くの実施形態では、学習（又はトレーニング）段階中に解析された「正常」ペイロードの組のバイト頻度カウント分布に基づいて重心モデルを計算することができる。使用することができる距離メトリックの少なくとも１つは、マハラノビス距離メトリックである。本発明の１つ又はそれよりも多くの実施形態では、トレーニング段階において計算したバイト値（又は文字）頻度の有限離散的ヒストグラムにマハラノビス距離を適用することができる。本発明の手法をシステムに実行し、検出器を標準的ファイアウォール、アプリケーションプロキシファイアウォール、又は他のネットワークベース又はホストベースのコンピュータセキュリティ技術と一体化してワームの第１の発生が保護されたネットワーク又はホストシステムへ進入するのを防止することが可能な多くのエンジニアリング上の選択がある。本発明の異常検出システムは、ネットワーク接続のペイロード内のバイト値の統計的分布を基本とすることができる。本発明の１つ又はそれよりも多くの実施形態によれば、サイト又はポート固有の正常接続のペイロードに対してプロフィールを構成して使用すると、新しい接続のペイロードの重大な逸脱があれば悪意的な攻撃の可能性として検出することができる。
【００３０】
第１の段階として、ファイアウォールを通過してホストサービス及びポートに送出されたペイロードをアーカイブ（又はログ）を通じて収集するか又はリアルタイムで監査することができる。このデータ（すなわち、受信ペイロード）は、正常モデル（又はモデルペイロード）の導出元であるトレーニングデータを構成する。この組のペイロードは、例えば、サービスに送出されたデータ量によっては、幅広い範囲の長さを有することができる。
【００３１】
第２の段階として、接続のペイロード長の分布をモデル化して長さ分布を複数の範囲に分割することができる。一般的に、接続の長さは、例えば数バイトから何百万バイトまでの非常に大きな範囲にわたって変動する可能性がある。従って、長さ範囲が異なれば、ペイロードの形式も異なる可能性がある。例えば、短いＨＴＴＰ接続は、通常、文字及び桁を有し、非常に長いＨＴＴＰ接続は、多くの印刷不可能な文字を含む写真、ビデオクリップ、実行可能なファイルなどを含むことが多い。従って、本発明の１つの態様によれば、異なる接続長範囲に対してペイロードモデルを構成することができる。これは、全ての接続に対してモデルを１つだけ構成するよりも様々な利点を有することができる。
【００３２】
本発明の１つ又はそれよりも多くの実施形態によれば、接続長の分布のモデル化は、カーネル推定を使用すれば、あらゆる事前仮定事項がなくても行うことができる。カーネル推定により、各観察データポイントの局所近傍にわたるそのポイントの貢献度が平滑化される。着信／発信ＨＴＴＰ接続に対して確率曲線を生成することができる。累積確率値に従って、確率曲線を分割することができる。確率範囲が高ければビンサイズが小さく、確率範囲が低ければビンサイズが大きい。
【００３３】
更に、長さ範囲を分割するのに使用することができる他の技術がある。例えば、様々な種類のクラスター化アルゴリズムを使用することができ、それにより、以下でより詳細に説明するように、使用した距離メトリックをｎグラム文字分布に適用された距離メトリックに基づくものとすることができる。長さ分布が特定の範囲に分割された状態で、正常ペイロードのトレーニングデータは、区分によって定められた長さを有するペイロードの互いに素な部分集合に分割される。例えば、長さ区分が１つの範囲を０から５０と特定した場合、５０バイトに制約された長さの全てのペイロードは、この部分集合のペイロードに分割される。
【００３４】
次の段階では、各長さ範囲内の正常ペイロードの全てをモデル化する。長さが何らかの長さ範囲内である接続の場合、ＡＳＣＩＩバイト０から２５５に対して平均バイト頻度カウントを計算することができる。この単純なバイト頻度は１グラム分布と呼ばれる。また、２グラム（２つの連続バイト）、３グラム（３つの連続バイト）などに対して分布を構成することができる。更に、頻度分布を混合グラムとすることができ、これは、例えば、１グラム分布と２グラム分布の混合が使用されることを意味する。本明細書で使用される時、混合グラム分布は、データ内の異なるサイズのｎグラムモデルの混合である。他の混合の例としては、以下に限定されるものではないが、１グラム及び３グラムと、１グラム及び４グラムと、２グラム及び３グラムと、２グラム及び５グラムと、３グラム及び４グラムと、３グラム及び７グラムと、１グラム、３グラム、及び４グラムと、１グラム、５グラム、７グラム、及び３グラムと、２グラム、５グラム、３グラム、及び４グラムとその他を含むことができる。実質的には、あらゆる混合を使用することができる。１グラムを例示的に使用すると、文字頻度の順番が最も高いものから最も低いものである場合、通常、長いテール部を有する「Ｚｉｐｆ」分布と類似のものである。
【００３５】
異常ペイロードを検出する少なくとも１つの技術（ただし唯一の技術ではない）は、観察トレーニングデータから予想されるよりも何倍も大きいか又は小さい発生頻度でいずれかの文字又はバイト値がこのようなペイロード内で出現しているか否かを判断するものである。各バイトの変動と相まったこのような文字頻度は、何らかの範囲内のペイロードを特徴付けることができる。それを表す別の方法は、上述の順番の頻度分布の対応するＡＳＣＩＩバイトストリングである「正常ペイロードシグニチャーストリング」を使用するというものであり、その場合、ゼロ頻度を有する文字又はバイト値は無視される。明らかに、各バイトの変動が考慮される場合、「正常ペイロードシグニチャーストリングの近傍」を得ることができ、これは、各バイトが平均化された頻度に加えて変動が考慮される場合、その場所に恐らく並べることができるいくつかの他のバイトを含む近傍を有することを意味する。
【００３６】
新しいペイロードを試験すると、正常モデルからの逸脱の程度を検出することができる。これは、例えば、新しいペイロードのバイト頻度分布を正常ペイロードモデルと比較することによって行うことができる。プロフィールが構成されると、いくつかの新しい接続のペイロードをプロフィールに照らして比較して、大きな差異つまり逸脱を検出する方法は複数存在する。マハラノビス距離メトリックは、２つの頻度分布の類似性を計算する距離メトリックの１つである。
【００３７】
マハラノビス距離の公式は、以下のようになる。
【００３８】
【数１】
2011040064.tif 000003
【００３９】
ここで、
【００４０】
【数２】
2011040064.tif 000004
【００４１】
は、前回のトレーニング段階から検出されたプロフィール特徴ベクトルである。共分散行列Ｂは、
【００４２】
【数３】
2011040064.tif 000005
【００４３】
であり、Ａ＝Ｂ-1である。バイトが統計的に独立したものと仮定すると、行列Ｂは、対角行列になり、要素は、ちょうど各バイトの平均頻度の分散である。計算を単純かつ速くするために、簡素化したマハラノビス距離を以下のように導出することができる。
【００４４】
【数４】
2011040064.tif 000006
【００４５】
ただし、ｎは、１グラムが使用される場合は２５６に等しい。この方法を２グラムの頻度分布に適用した場合、ｎ＝２５６2つまり６５，５３６ビンになる。様々な方法を使用してこの数字を実質的に小さくすることができる。一般的に、計算は、試験される接続ペイロードの長さにおいては線形であることになる。
【００４６】
ペイロードデータのモデル化
図面及び最初に図１を参照すると、本発明の１つ又はそれよりも多くの実施形態による異常ペイロードを検出するシステム１００を示している。図１のペイロード検出システム１００は、例えば、インターネット１１６のような外部ソースからデータ（例えば、ペイロード又はペイロードデータ）を実施するサーバ１１０を含む。また、サーバ１１０は、攻撃の可能性に対するサーバ１１０の保護を助けるファイアウォール１１２を含む。ファイアウォール１１２は、ウイルス及びワームがインターネット１１６からサーバ１１０に伝送される可能性を小さくするために、ある一定のデータをフィルタ処理するように機能する。また、サーバ１１０を１つ又はそれよりも多くのワークステーション１１４及び／又は他のサーバ１１８に結合することができる。ワークステーション１１４は、サーバ１１０を通じてインターネット１１６に接続されて相互作用する。より具体的には、各ワークステーション１１４は、データをサーバ１１０に伝送し、次に、サーバ１１０は、このデータをインターネット１１６を通じて宛先に伝送する。様々なソースからのデータをサーバ１１０によって受信し、ファイアウォール１１２を通じてフィルタ処理することができる。データがフィルタ処理された状態で、サーバ１１０は、遠隔地に位置する装置との相互作用を容易にするためにデータをワークステーション１１４に転送する。
【００４７】
サーバ１１０は、以下でより詳細に説明するように、ネットワーク（又はインターネット１１６）から受信したペイロードデータに対して統計的分布を生成する。サーバ１１０は、サーバ１１０によって受信した正常ペイロードの統計的分布を表すか又はその統計的分布に対応する複数のモデル分布（すなわち、モデルペイロード）を記憶することができる。サーバ１１０によって受信した新しいペイロードデータの統計的分布は、選択されたモデルペイロードと比較される。モデルペイロードの選択は、少なくとも部分的には、サーバ１１０によって受信した現在のペイロードデータのサイズに基づいて行われる。例えば、サーバ１１０によって受信した現在のペイロードデータが２５６バイトである場合、サーバ１１０によって選択されたモデルペイロードは、２５６バイトを包含する範囲を少なくとも含むことになる。
【００４８】
サーバ１１０は、異常ペイロードを識別するために分布を比較する。一般的に、異常ペイロードは、統計的分布においてモデルペイロードとのある一定の差異を有する。本発明の１つ又はそれよりも多くの実施形態によれば、サーバ１１０は、限定はしないがワーム又はウイルスのような悪意的なプログラムに相当するか否かを判断するために、異常ペイロード又はデータを更に処理することができる。ワーム又はウイルスが検出された場合、サーバ１１０は、任意的に、そのマシン及び他のマシンを保護するのに使用することができるウイルスパターン又はワームシグニチャーを生成することができる。例えば、本発明の１つ又はそれよりも多くの実施形態によれば、サーバ１１０がウイルスパターン（又はワームシグニチャー）を検出して生成した時、それは、インターネット１１６又は他のネットワークから更に伝送された場合に、特定されたウイルス又はワームがフィルタされるように、ファイアウォール１１２の規則を自動的に更新する。本発明の他の（又は重複する）実施形態では、サーバ１１０は、ウイルスパターン及びワームシグニチャーを他の遠隔サーバ１１８に伝送することができる。遠隔サーバ１１８とサーバ１１０の接続は、図１に示すように、保護された及び／又は直接の接続を通じて行うことができる。代替的に、ウイルスパターン及びシグニチャーをインターネット１１６を通じて遠隔サーバ１１８に伝送することができる。遠隔サーバ１１８は、ウイルスパターン及びシグニチャーを受信した状態で、自己及び接続装置をインターネット１１６で伝送された悪意的なアプリケーションから保護するようにフィルタ処理規則を更新することができる。
【００４９】
本発明の１つ又はそれよりも多くの実施形態によれば、複数のサーバ（例えば、１１０及び１１８）は、ペイロード検出システム１００を使用して悪意データを特定することができる。各個々のサーバ（例えば、参照番号１１０及び１１８）は、同じ技術を実行して悪意データを特定し、更に、ワーム又はウイルスに相当するか否かを判断することになる。しかし、サーバ１１０及び１１８は遠隔地に位置するために、それらは、ネットワーク、すなわち、インターネット１１６から異なるデータを受信する可能性がある。従って、各サーバ１１０及び１１８は、異なる形式のワーム又はウイルスを潜在的に特定することができる。更に、各サーバ１１０及び１１８は、全てのサーバ１１０及び１１８がファイアウォール規則を更新して最も最近に見出されたワーム又はウイルスをフィルタ処理することができるように、ウイルスパターン及びワームシグニチャーに関する情報と相互作用して交換することができる。更に、個々のワークステーション１１４は、別のセキュリティ層をもたらし、及び／又は独立に自己を保護するために本発明の技術を実行することができる。
【００５０】
本発明の１つ又はそれよりも多くの実施形態によれば、サーバ１１０は、インターネット１１６を通じて受信したデータに基づいてモデル分布を作成する。例えば、サーバ１１０は、様々な技術を実行して送受信するデータを捕捉又はスヌープすることができる。この情報は、表にされて、ネットワークを通るデータの正常な流れを表すのに使用される。従って、データの正常な流れは、どうしてもノイズ及び／又は悪意的なプログラムを含む可能性がある。サーバ１１０は、所定の期間にわたってデータを収集し、次に、収集したデータのモデル分布を生成することができる。
【００５１】
図２は、本発明の１つ又はそれよりも多くの実施形態によるモデルペイロードを生成するために実行される段階を示す流れ図である。これらの段階を例えばサーバ１１０によって実行し、ネットワーク１１６上で受信したペイロードデータと比較するモデルペイロードを生成することができる。段階Ｓ２１０で、サーバは、ペイロードデータを受信する。ペイロードデータの受信は、例えば、他のネットワーク、インターネット、無線ネットワーク、衛星ネットワークなどを含む複数のソースから行うことができる。段階Ｓ２１２で、受信したペイロードデータに対して長さ分布を作成する。しかし、サーバは、モデルペイロードを構成するのに十分な所定の量のデータを収集する時間まで連続的にペイロードデータを受信することができることに注意すべきである。Ｓ２１２でサーバによって作成された長さ分布は、トレーニング期間中にサーバによって受信した個々のペイロードの長さの分布に対応する。
【００５２】
更に、図３Ａを参照すると、例示的な長さ分布図が示されている。図３Ａの長さ分布図は、ペイロードのサイズに基づいて受信したデータの分布を示している。例えば、図３Ａに示すように、ゼロに近い長さを有するペイロードの数は、非常に少ない。しかし、約２００バイトの長さを有するペイロードの数は実質的に多い。バイト数を小さくすると、このような長さを有するペイロードの数が少なくなる。これは、受信データの大部分がテキスト及び／又は小さなファイルに相当するということに帰する可能性がある。しかし、より大きいファイルは、画像及び／又は映像又は音声ファイルに相当するものになる。図３Ｂは、０から１０，０００バイトの範囲であるペイロードデータの別の長さ分布を示している。
【００５３】
再び図２を参照すると、段階Ｓ２１４では長さ分布を分割する。分割処理を行うと、部分的に、受信ペイロードデータと選択的に比較することができる複数のモデルペイロードを生成することができる。本発明の１つ又はそれよりも多くの実施形態によれば、長さ分布の分割の少なくとも１つの利点は、モデルペイロードの分布と比較される受信ペイロードの統計的分布間の差異を計算するために必要な時間量を少なくすることである。長さ分布を分割するのに使用することができる様々な技術がある。例えば、本発明の一実施形態によれば、少なくとも１つのクラスター化アルゴリズムを使用して長さ分布を分割することができる。また、カーネル推定を用いて長さ分布を分割することもできる。
【００５４】
段階Ｓ２１６で、長さ分布から作成した区分の各々に対して統計的分布を生成する。統計的分布は、例えば、ペイロードに含まれたＡＳＣＩＩ文字（又はデータ）の頻度分布に対応することができる。更に図４を参照すると、１５０バイトから１５５バイトの長さを有する例示的なペイロードの統計的分布が示されている。図４の例示的な実施形態によれば、統計的分布は、ペイロードに含まれたデータのバイト頻度カウントに対応する。例えば、ｘ軸は、ＡＳＣＩＩ文字の数値を表し、ｙ軸は、ペイロードに発生した特定の文字の回数に対応する。特定の文字又はバイト値の発生回数の百分率に対応してｙ軸を正規化することができる。
【００５５】
本発明の１つ又はそれよりも多くの実施形態によれば、ｎグラム法を用いると統計的分布生成時にバイトを分類することができる。本方法を用いると、変数ｎは、異なる数を取ることができる特定のバイト分類に対応する。例えば、２グラム分布においては、隣接するバイト対は、１つの特徴として一緒に分類されるであろう。同様に、４グラム分布を用いると、４つの隣接するバイトが１つの特徴として分類されることになる。更に、本発明の１つ又はそれよりも多くの実施形態は、上述のように、ペイロードの混合グラム分布をもたらすことができることに注意すべきである。例えば、長さ分布の一部を２バイトとして分類することができ、一方、他の部分を３又は４などとして分類することができる。従って、サーバによって受信した長さ分布及び／又はデータの複雑性によっては、混合グラム分布を用いると受信ペイロードデータとモデルペイロードの間の差異を計算するのに必要な時間量を少なくすることができる。
【００５６】
本発明の１つ又はそれよりも多くの実施形態によれば、様々な形式で統計的分布を配置することができる。例えば、バイト値分布からランク順バイト頻度カウントを生成することができる。図５Ａは、文字分布のランク順バイト頻度カウントを示している。図５Ａにおいては、最も頻繁に発生した文字は、ｘ軸上の文字１としてマップされている。マップされた次に最も頻繁に受信した文字は、文字２などである。図５Ａを吟味すると、全てのＡＳＣＩＩ文字がペイロードデータに含まれていたとは限らないことが分る。従って、ランク順バイト頻度グラフにおいては、図表の最も右の部分は空いている。更に、この例に関して試験したサンプルの接続長及びペイロードデータに対しては、２９文字のみが存在していた。
【００５７】
図５Ｂは、１５０バイトから１５５バイトの接続長（図４に示す）に関する別の例示的なランク順バイト頻度図表を示している。図５Ｂで分るように、図５Ａと比較すると、図５Ｂの方がペイロードデータに存在するＡＳＣＩＩ文字が多い。特に、８３個のＡＳＣＩＩ文字が存在していた。従って、グラフの最も右の部分には値がない。
【００５８】
再び図２を参照すると、段階Ｓ２１８で、モデルペイロードを構成する。生成された区分数によっては、対応する数のモデルペイロードを構成することになる。例えば、長さ分布が２０個の区域に分割された場合、２０個の別々のモデルペイロードが構成されることになる。本発明の１つ又はそれよりも多くの実施形態によれば、ペイロードシグニチャーストリングの形で各モデルペイロードを生成することができる。
【００５９】
図６Ａを参照すると、図５Ａのランク順バイト頻度カウントに対応する例示的なペイロードシグニチャー「Ｚストリング」１５０が示されている。ペイロードシグニチャーＺストリングは、最も高いから最も低いまでの頻度順に特定のバイト値を表す統計的分布データから直接に形成されたストリング値である。更に、本発明のペイロードシグニチャーＺストリングは、データに内容によっては異なる長さを有することができる。図６Ａに示すように、ペイロードシグニチャーストリング１５０は、複数のＡＳＣＩＩ文字を含む。表１６０は、どの文字が最も高い頻度で発生したかに対応するデータをより詳細に示している。図６Ａから分るように、表は、２９個のエントリのみを示している。この値は、サンプルの接続長に対して発生した文字数に対応する。
【００６０】
図６Ｂは、図５Ｂのランク順頻度表の例示的なペイロードシグニチャーストリングを示している。また，シグニチャーストリング１７０は、グラフからの各文字の値を含む対応する表と共に示されている。図６Ｂと同様に、８３個のエントリのみが表１８０に存在する。この値は、ここでもまた、図５Ｂのグラフに対応する。
【００６１】
モデルペイロードが構成された状態で、サーバは、異常ペイロードを識別するために各受信ペイロードデータをモデルペイロードと比較する。更に、上述のように、受信ペイロードデータをペイロードデータの長さに対応するモデルペイロードと比較する。例えば、受信ペイロードデータが４０バイトの長さを有する場合、図６Ａのようなペイロードシグニチャーストリングと比較されることになる。同様に、受信ペイロードデータが１５３バイトの長さを有する場合、それは、図６Ｂのようなペイロードシグニチャーストリングと比較されることになる。
【００６２】
ここで図７を参照すると、本発明の１つ又はそれよりも多くの実施形態によるペイロードデータを構成する流れ図が示されている。段階Ｓ２５０で、ペイロードデータを受信する。これは、ネットワークを通じてデータを受信するサーバに対応する。段階Ｓ２５２で、このペイロードデータに対して長さ分布を作成する。上述のように、サーバは、モデルペイロードを作成するのに十分な複数のペイロードデータを受信する。複数のペイロードデータが受信された状態で、長さ分布を作成することができる。代替的に、サーバは、最小量のデータを受信することができ、このデータに基づいて最初に長さ分布を作成することができる。データが受信されると、長さ分布は連続的に更新され、構成されたモデルペイロードは、ネットワークを通じて現在受信されているデータの形式をより良く反映するように精緻化されることになる。
【００６３】
段階Ｓ２５４で、長さ分布を複数の部分に分割する。上述のように、長さ分布の分割は、カーネル推定及び／又は様々なクラスター化技術を用いて行うことができる。段階Ｓ２５６で、各区分に対してバイト値分布を作成する。段階Ｓ２５８で、ペイロードデータを異なる区分に仕分けする。例えば、区分の１つが０バイトから５０バイトの長さを有するペイロードデータに対応する場合、その範囲に該当するあらゆる個々のペイロードデータがその特定の区分に仕分けされることになる。Ｓ２６０で、各区分に対してモデルペイロードを構成する。
【００６４】
本発明の１つ又はそれよりも多くの実施形態によれば、様々な技術を適用してモデルペイロードを構成し及び／又は精緻化することができる。例えば、図７に示すように、段階Ｓ２６２で、各区分に含まれたペイロードデータをコンパイルすることができる。これは、更に別の処理のために区分内のペイロードデータの全てが結合される段階に対応する。区分内のペイロードがコンパイルされた状態で、段階Ｓ２６４で、各区分に対して重心を計算する。重心の計算は、複数の計算技術のいずれかを用いて行うことができる。段階Ｓ２６６で、重心をモデルペイロードとして指定する。従って、モデルペイロードを精緻化する本方法を用いて、着信ペイロードデータが異常か否かを判断するために、重心（すなわち、新たに指定されたモデルペイロード）が使用されるであろう。
【００６５】
代替的に、段階Ｓ２６８で、複数の区分長さ分布を作成する。区分長さ分布は、上述のように、単に区分内のデータの分布である。区分長さ分布が作成された状態で、段階Ｓ２７０で、データをクラスター化して複数のクラスター分布を生成する。段階Ｓ２７２で、生成した各クラスターに対して重心を計算する。段階Ｓ２７４で、モデル重心を計算する。本発明の１つ又はそれよりも多くの実施形態によれば、段階Ｓ２７４で計算したモデル重心は、段階Ｓ２７２で計算した全てのクラスター重心の重心に対応する。従って、モデル重心は、複数の重心の重心である。段階Ｓ２７６で、モデル重心をモデル分布と指定する。従って、潜在的に悪意的なプログラムである可能性がある異常ペイロードを判断するために、着信データは、モデル重心と比較されることになる。
【００６６】
本発明の１つ又はそれよりも多くの実施形態によれば、段階Ｓ２７０に関連して使用したクラスター化アルゴリズムは、リアルタイムの増分アルゴリズムとすることができ、予めクラスター数を指定することは必要ないと考えられる。初期クラスター数Ｋを許容最大可能クラスター数に対応するように設定することができる。例えば、異なる種類のネットワークペイロードトラフィックを表すのにＫ＝１０という値で十分であろう。トレーニング段階中に解析される新しいペイロードを使用して、新しいペイロードに最も類似した前回計算した重心の統計結果を更新することができる。まだ計算されていない重心又は新しいペイロードに類似した既存の重心がない場合、新しいペイロードが新しい重心として使用される。重心全数がＫを超える場合、統計結果を結合して１つの分布にすることによって２つの最も類似した重心を合併することができる。トレーニング段階完了時に、単に指定トレーニングペイロード最小数で計算した重心を保持するだけで、いくつかの重心を除くことができる。「トレーニング以下」の重心のこのような削除は、そうでなければ検出段階中に特定されないであろう「悪い」ペイロードを表す可能性があるトレーニングデータ内の「ノイズ」の識別を助けることができる。
【００６７】
本発明の１つ又はそれよりも多くの実施形態によれば、サーバは、更に、使用中のモデル分布がネットワークを現在通って流れているデータの形式を正確に反映することができるように、受信したデータをエージアウトすることができる。例えば、段階Ｓ２７８で、サーバは、受信したデータの日付を検査してモデル分布を生成することができる。段階Ｓ２８０で、サーバは、ペイロードデータの日付が所定の閾値を超えるつまり所定の閾値よりも古いか否かを判断する。例えば、ペイロードプロフィールを最新に維持又は保持するために、過去６ヵ月以内に受信したペイロードデータのみを使用してモデル分布を構成すべきであると判断することができる。このような例に基づいて、６ヵ月よりも古いペイロードデータは、閾値を超えることになる。ペイロードデータの日付が閾値を超えた場合、制御が段階Ｓ２８２に移り、そこで、ペイロードデータが廃棄される。代替的に、ペイロードデータの日付が閾値を超えない場合、サーバは、段階Ｓ２８４で、単にペイロードデータを受信し続けるだけである。
【００６８】
本発明の１つ又はそれよりも多くの実施形態によれば、サーバは、ペイロードデータを連続的に受信かつ処理して漸次的にモデル分布を精緻化することができる。従って、サーバは、ペイロードデータを受信し続けることになり、制御は、任意的に段階Ｓ２５２に移り、そこで、新しい長さ分布を作成することになるであろう。更に、本発明の１つ又はそれよりも多くの実施形態は、サーバが新しいモデル分布を生成する必要がある期間を設定することができる。従って、その期間が満了になると、サーバは、データを収集して段階Ｓ２５２で新しい長さ分布を作成してモデルペイロードを精緻化することになる。
【００６９】
自動トレーニング及び較正
１つ又はそれよりも多くの実施形態によれば、本発明は、自動トレーニング及び較正を行うことができる。本発明はまた、十分なトレーニングが行われた時点で自動的に停止することができる。例えば、完全自動化されるようにトレーニング処理を設計することができる。エポックサイズ及び閾値を一度確立することができ、システムは、十分なトレーニングを受けた時を独立に判断するであろう。エポックは、所定の時間長又は所定のデータ量に対応する。更に、例えば、ユーザ指定の閾値に基づいてトレーニング及び較正を行うことができる。代替的に、システムは、トレーニングデータを試験して、例えば最大距離値を選択することにより、各ペイロードモデルに対して初期閾値を決めることができる。各エポックに対して捕捉されたパケット数をユーザが調節することもできる。各トレーニングエポック後、計算されたばかりの新しいモデルは、前回エポック内で計算されたモデルと比較される。トレーニングは、モデルが「安定」状態になった時点で終了する。
【００７０】
図８は、本発明の１つ又はそれよりも多くの実施形態によるモデルペイロードを構成するのに十分なペイロードデータを受信した時をサーバが検出することができる方法を示す流れ図である。段階Ｓ３１０で、サーバは、現在のエポックを定義するであろう。エポックは、データが受信することができるか又は受信中である所定の時間の長さに対応する。段階Ｓ３１２で、サーバは、通常の方法でペイロードデータを受信する。段階Ｓ３１４で、現在のペイロードモデルをサーバが構成する。現在のペイロードモデルは、現在のエポック中に受信した全てのペイロードデータに関するペイロードモデルに対応する。
【００７１】
段階Ｓ３１６で、現在のペイロードモデルを前回のペイロードモデルと比較する。従って、第１のエポック中には、現在のペイロードモデルを比較することができる前回のペイロードモデルはない。本発明の１つ又はそれよりも多くの実施形態では、サーバには、前回収集された初期ペイロードモデルを設置することができる。従って、第１の反復中は、現在のペイロードモデルを保存ペイロードモデルと比較することができる。現在のペイロードモデルと前回のペイロードモデルとの比較は、例えば、２つの異なる分布間の統計的距離の計算を含む多くの方法で行うことができる。
【００７２】
段階Ｓ３１８で、現在のペイロードモデルと前回のペイロードモデルの間の距離が所定の閾値よりも小さいか否かを判断する。この距離が所定の閾値よりも小さい場合、ペイロードモデルを構成するのに十分なデータが既に収集されている。処理は、段階Ｓ３２０で停止される。従って、現在のペイロードモデルが着信ペイロードデータを比較するためのモデルペイロードとして使用されることになる。代替的に、この距離が所定の閾値を超える場合、段階Ｓ３２２で新しいエポックを定義する。段階Ｓ３２４で、現在のペイロードモデルを前回のペイロードモデルと指定する。次に、制御は段階Ｓ３１２に戻り、そこでサーバは、段階Ｓ３２２で受信した新しいエポックに対してペイロードデータを受信する。処理は、現在のペイロードモデルと前回のペイロードモデルの間の距離が閾値よりも小さくなるまで反復的に繰り返される。
【００７３】
本発明の１つ又はそれよりも多くの実施形態によれば、各ポートの各モデル安定性は、２つのメトリックによって判断することができる。その第１は、エポック内で生成される新しいモデル（クラスター化の前）の数である。その第２は、前回トレーニングエポック内で計算されたものまでの現在エポック後の各モデルの単純なマハラノビスの距離である。両方のメトリックが何らかの閾値内である場合、モデルは安定状態であると考えられてトレーニングが停止する。複数のポートがモニタされている場合、付加的なメトリックを使用することができる。この付加的なメトリックは、モニタ中の全ポートからの安定したポートの百分率を検査することができる。安定したポートの百分率が何らかのユーザ指定閾値よりも高い場合、トレーニング処理全体が終了になる。「不安定な」ポートのモデルは、トレーニング不足でありかつ試験時に異常検出に使用すべきではないために任意的に廃棄することができる。
【００７４】
トレーニングが完了した状態で、異常閾値を判断することができる。全ての重心を対象とした普遍的な閾値を使用するのではなく、１つの明確な閾値を各々に対して選択する。このようなきめの細かい閾値は、精度を向上させることができる。これは、様々な方法で達成することができる。例えば、トレーニング段階中にサンプリングを行うことができる。次に、サンプルを使用して、検出期間中に使用される初期閾値の決定を自動的に助けることができる。トレーニング処理中に、ペイロードサンプルのバッファが各重心に対して維持される。サンプル最小数及び最大数があり、サンプリング率ｓ％がある。最小数に達する前、このビン内の全てのパケットペイロードがサンプルになる。次に、各ペイロードは、バッファサンプルになる確率ｓを有する。バッファが最大サイズまで満たされた後に、先入れ先出し（ＦＩＦＯ）スタイルのバッファリングが用いられる。新しいサンプルが挿入された時に最も古いサンプルが除去される。トレーニング段階全体が終了した後、サンプルが重心に対して計算され、最大距離がその重心の初期異常閾値として使用される。ＦＩＦＯスタイルのサンプリングのために、計算閾値は、最も最近のペイロード傾向を反映し、適応学習を行って概念ドリフトに適合させる。これは、モデル及び較正が、システムが組み込まれているより最近の環境に適するように計算されることを意味する。
【００７５】
試験の最初に、本発明はまた、エポック単位で実行することができる。各エポック後、発生した警報の割合を何らかのユーザ定義の数字に照らして比較する。全警報率が高すぎる場合、閾値をｔ％分大きくして次のエポックを開始する。このようなサイクルは、警報発生率が検出モードになるまで繰り返す。この較正段階後、システムは安定状態であり、かつ検出モードでの実行に対して準備完了状態であると考えられる。システムは、新しいモデルをトレーニングし続け、モデルを回復及び更新状態に維持して最新の環境を反映させることに注意すべきである。
【００７６】
異常ペイロードの検出
図９は、本発明の１つ又はそれよりも多くの実施形態によるネットワークを通じて伝送された異常ペイロードを検出するために実行される段階を示す流れ図である。段階Ｓ３５０で、サーバは、ペイロードデータをネットワークから受信する。これは、例えば、外部ネットワーク、内部ネットワーク、無線ネットワーク、又は衛星ネットワークなどから受信することができるデータに対応する。段階Ｓ３５２で、サーバは、ペイロードに含まれたデータの長さを判断する。段階Ｓ３５４で、ペイロードに含まれたデータに対して統計的分布を生成する。例えば、サーバは、ペイロードに含まれたデータを解析し、例えば、上述のように、データ内で発生する文字の統計的分布を生成する。段階Ｓ３５６で、ペイロードデータの統計的分布をモデル分布と比較する。例えば、サーバは、上述のように、検索してペイロードの適切な長さに適用することができる複数のモデル分布を含む。段階Ｓ３５８で、サーバは、例えば、所定のユーザ判断基準に基づいて、モデル分布と十分に異なるペイロードとして異常ペイロードを特定する。従って、異常と特定された全てのペイロードは、廃棄されるか又は更に解析されることになる。
【００７７】
図１０は、本発明の１つ又はそれよりも多くの実施形態による異常ペイロードを検出することができる方法を示す流れ図である。段階Ｓ４１０で、ペイロードをサーバが受信する。段階Ｓ４１２で、サーバは、ペイロードに含まれたデータの長さを判断する。段階Ｓ４１４で、このペイロードデータに対して統計的分布を生成する。本発明の１つ又はそれよりも多くの実施形態によれば、ペイロードデータの分布は、例えば、ｎグラム又は混合グラム分布を用いて行うことができる。これを段階Ｓ４１６に示している。本発明の１つ又はそれよりも多くの実施形態によれば、様々な重み係数を統計的分布内の異なるバイト値に割り当てることができる。これを段階Ｓ４１８に示している。様々な重み係数は、恐らくはコンピュータ又はネットワーク装置の作動コードに対応する可能性があるバイト値がより高く重み付けされ、従ってより厳しく検査されるように選択される。重み係数は、少なくとも部分的には、コンピュータ又は装置の様々な作動コードを実行するワームのような悪意的なプログラムを検出するサーバの機能を向上させることができる。例えば、作動コードは、ジャンプ命令用マシンコード、又は算術演算などに対応するスクリプト言語文字とすることができる。
【００７８】
本発明のこのような実施形態によれば、悪意的なコンピュータコードを含む可能性がより高い異常ペイロードを迅速に特定することができる。従って、警報が何らかのペイロードに対して生成された時、そのペイロードは、任意的に、特に関連するバイト値を含むか否かを判断する別々の試験を受けることができ、又は代替的に、ペイロードの採点法を変えて「顕著な」バイト値を含む場合は正常分布からの距離を長くすることができる。従って、マハラノビス距離を修正して重み付け値に対応させることができ、又はある一定の重み付けバイト値を因数処理する異なる距離関数を使用することができる。このような実施形態の恩典の少なくとも一部には、悪質なコードを特定する精度の向上、偽陽性の低減、及びペイロード異常を真のゼロ・デイ弱点又はワームとして迅速に特定する際の助けが含まれる。
【００７９】
段階Ｓ４２０で、モデル分布をサーバが選択する。モデル分布の選択は、ペイロードに含まれたデータの長さを包含するように行われる。例えば、上述のように、モデル分布の１つが１５０バイトから１５５バイトのペイロード長に対応する場合、その範囲に該当する長さを有する全ての受信ペイロードデータは、そのモデル分布と比較されることになる。段階Ｓ４２２で、モデル分布のプロフィールが崩壊プロフィールであるか否かを判断する。これは、例えば、モデル分布がランク順バイト頻度カウントで配置された状況で発生する可能性がある。従って、第１のエントリの方が大きな値を有し、この値は、図表の終わりに向けて衰退して小さな値になる。
【００８０】
上述のように、計算上の複雑性は、接続長において線形である。これを速くするためには、計算は、文字頻度分布の末尾部から開始すると、マハラノビス距離及びストリング編集距離の場合は、距離が閾値よりも大きい場合は直ちに停止することができる。分布の末尾部は、トレーニングデータベース内に決して現れなかった文字（ゼロ頻度を有するもの）か、又は出現するのが非常に稀な（非常に低い頻度の）文字である。このような文字が試験データに出現した場合、そのデータは異常であり、従って、悪意データである確率が高い。従って、悪意的な接続を検出する時間を短縮することができる。
【００８１】
従って、モデル分布が崩壊プロフィールを有する場合、段階Ｓ４２４で、サーバは、分布の端部から距離測定値を計算する選択肢を選択する。代替的に、モデル分布が崩壊プロフィールを有していない場合、段階Ｓ４２６で、サーバは、モデル分布の始めから距離を測定する選択肢を選択する。段階Ｓ４２４及びＳ４２６で測定した距離は、受信ペイロードデータとモデル分布との差異を判断するためにモデル分布と行われる比較に対応している。上述のように、様々な技術を用いて２つの分布間の距離を計算することができる。段階Ｓ４２８で、この距離が所定の閾値よりも大きいか否かを判断する。例えば、閾値は、受信ペイロードとモデル分布との間で許容される最小距離に対応する。この距離が閾値よりも小さい場合、段階Ｓ４３０で、サーバは、ペイロードデータを正常データと特定する。代替的に、サーバが、この距離が閾値を超えると判断した場合、段階Ｓ４３２で、ペイロードは、異常と特定される。段階Ｓ４３０で、ペイロードが正常ペイロードと考えられた場合、それは、単に特定された宛先に方向付けられるだけであり、段階Ｓ４４４で処理は終了する。しかし、異常であると判断されたペイロードに対しては、サーバは、付加的な試験を行ってペイロードに含まれたデータの様々な特性を識別することができる。
【００８２】
例えば、段階Ｓ４３４で、サーバは、ペイロードが例えばワーム又はウイルスのような悪意的なプログラムに相当するか否かを判断する。これは、様々な方法で行うことができる。例えば、サーバは、ペイロードデータの様々な特徴を公知のワームシグニチャー又はウイルスシグニチャーと比較することができる。代替的に、ペイロードを制御サイトに伝送することができ、そこで、プログラムを実行させることができ、又はプログラムが実際に悪意的なものであるか否かを判断することができるようにそれをエミュレートすることができる。
【００８３】
本発明の１つ又はそれよりも多くの実施形態によれば、サーバは、悪意であると考えられるペイロード内で見つかる最長共通ストリング又は最長共通サブシーケンスを特定することができる。到着（又は進入）パケット又はペイロードが異常と見なされ、出発（又は退出）パレット又はペイロードが異常と見なされ、かつ到着パケットが出発パケットと同じ宛先アドレスを有する場合、ペイロードを比較して両方の異常ペイロードの最長共通ストリング又は最長共通サブシーケンスを判断することができる。最長共通ストリング又は最長共通サブシーケンスに基づいて、ホストは、特定のワーム又はウイルスを特定してワーム又はウイルスに対するコンテンツフィルタの役目をするシグニチャーを生成するであろう。悪意データが実際にはワーム又はウイルスではないと判断された場合、それは、段階Ｓ４３６で廃棄され、処理は、その特定のペイロードデータに対しては終了する。代替的に、ペイロードがワーム又はウイルスと判断された場合、段階Ｓ４３８で、シグニチャーが生成される。段階Ｓ４４０で、サーバによって生成された全てのウイルスパターン又はワームシグニチャーは、コンテンツフィルタリングのために他のサーバ、ルータ、ワークステーションなどに伝送される。
【００８４】
本発明の１つ又はそれよりも多くの実施形態によれば、サーバは、閾値を自動的に調節して異常ペイロードデータを検出する機能を助け、及び／又は向上させることができる。これを段階Ｓ４４２に示している。例えば、自動的に閾値を調節する１つの方法では、サーバは、警報閾値を設定すべきである。警報閾値は、サーバが生成することになる警報の所定の回数に対応するであろう。各警報は、１つ異常ペイロードデータに対応すると考えられる。従って、警報閾値が１時間という期間に対して１００である場合、サーバは、１００回の警報が１時間という期間内に発生しなかった場合は自動的に閾値を調節する。サーバはまた、例えば、±５回の警報のようなエラーマージンを有することができる。従って、サーバが１時間という期間内に９５回から１０５回の警報を発生した場合には、調節は行われない。しかし、サーバが発生した警報回数がその期間内で８０回のみの場合、これは、閾値が高すぎて、受信ペイロードとモデルペイロードの間の距離が閾値を超えるのに十分に長いものではないことを示唆している。従って、サーバは、警報の発生回数が増加するように閾値の値を小さくすることになる。
【００８５】
図１１は、モデル分布からの様々なペイロードデータの距離を示すグラフである。複数のペイロードデータが、モデルペイロードからの所定の距離内に該当している。しかし、コードレッドワームは、正常受信ペイロードの一般的なクラスター化を遥かに超える距離を有する。従って、この状況においては、サーバは、コードレッドワームをサーバに対する潜在的な攻撃として容易に識別するであろう。
【００８６】
図１１に示す例に対しては、ゼロ・デイ・ワーム及びウイルスの検出時にこの技術がいかに有効であるかを示すための検出目標として「コード・レッド」ワームの実際のペイロードを使用した。２４時間という期間にわたってウェブトラフィックからウェブサーバまででトレーニングデータを探り出した。長さ区分処理に従ってトレーニングペイロードを異なる部分集合に分割し、正常モデルを計算した。次に、「コード・レッド」ペイロードを解析した。ペイロード内のバイト値の分布を計算して、正常ペイロードプロフィール分布と比較した。
【００８７】
図１１のグラフは、正常接続と「コード・レッド」攻撃の両方に対して長さ範囲３８０から３８５内の接続の簡素化したマハラノビス距離を示している。図から分るように、「コード・レッド」攻撃は、他の全ての正常接続よりも遥かに大きな距離を有する。従って、所定の閾値が与えられると、それは、何か悪意的なものとして容易に検出され、ウェブサーバを損傷することなく拒絶することができる。トレーニング段階中に閾値を設定することができる。１つの可能な値は、トレーニングデータの距離値に何らかの許容範囲を加えたものの最大値である。この技術を用いると、あらゆるウイルスシグニチャーが放たれる前でさえもホストをウイルス／ワームから保護することができる。
【００８８】
また、距離メトリックを用いて類似性を計算する代わりに、「正常ペイロードシグニチャーＺストリング」を用いて同じ目標を達成することができる。プロフィール「シグニチャーＺストリング」及び試験される新しい接続データのバイトストリングがあると、単純なストリング編集距離を使用してそれらの類似性スコアを得ることができる。ストリング編集距離は、単にいくつの文字がプロフィールシグニチャーストリングから誤って置かれているかを数えるものである。ストリング編集距離の１つの利点は、いかなる数値的計算も伴わずにストリングの同等性比較のみを伴うということである。これで、結果的に非常に速く距離を計算することができる。
【００８９】
本発明の例示的な用途
ネットワーク電気製品
本発明の１つ又はそれよりも多くの実施形態は、コンピュータネットワーク上のネットワークトラフィックを受動的に探知して監査するコンピュータシステム上で実施することができ、又はネットワークファイアウォールを操作する同じコンピュータ上で実施することができ、又はプロフィールが既に計算されたホスト又はサーバコンピュータ上で実施することができる。１つ又はそれよりも多くの実施形態は、到着及び退出トラフィックの両方に対して、多くのサービス及びポートに対する正常ペイロードモデルを計算することができるネットワーク電気製品の構築を想定している。この電気製品は、トラフィックをフィルタ処理してネットワーク上のあらゆるサービスを保護するファイアウォールに異常検出モデルを分布することができる。代替的に、ペイロード検出システムは、サーバ又はホスト上に新しいソフトウエアをインストールしたり又はネットワークシステム上に新しい電気製品又は装置をインストールする必要がなく、ホスト又はサーバコンピュータのネットワークインタフェースカード上で実施することができる。
【００９０】
漸次的学習
本発明の１つ又はそれよりも多くの実施形態によれば、マハラノビス距離を有する１グラムモデルは、僅かに多い情報のみが各モデルに記憶された漸次的バージョンとして実施することができる。本方法の漸次的バージョンは、いくつかの理由で特に有用である可能性がある。第１に、「ハンドフリー」で自動的にオンザフライでモデルを計算することができる。このモデルは、時間が進むにつれて精度が向上し、より多くのデータが採取されることになる。更に、漸次的オンラインバージョンはまた、古いデータをモデルから「エージアウト」して、サービスを出入りして流れる最も最近のペイロードのより正確な姿を維持するものである。
【００９１】
本発明の１つ又はそれよりも多くの実施形態は、モデルをトレーニングする際に使用したより古い例をエージアウトさせる。これは、少なくとも部分的には、より古いモデルの崩壊パラメータを指定し、新しいサンプルに出現する頻度分布を強調することによって達成することができる。これは、モデルの自動更新が最も最近に見られた正常ペイロードの正確な姿を維持することを可能にする。
【００９２】
マハラノビス距離の漸次的バージョンの計算は、本発明の特定的な実施例に依存する様々な方法で達成することができる。例えば、観察された各新しいサンプルに対して見られた各ＡＳＣＩＩ文字に関して平均値及び標準偏差を計算する。文字の平均頻度に対しては、トレーニング例から次式が計算される。
【００９３】
【数５】
2011040064.tif 000007
【００９４】
任意的に、処理済みサンプル数Ｎを記憶することができる。これによって、新しいサンプルｘN+1が観察された時に、平均値を次式として更新することができる。
【００９５】
【数６】
2011040064.tif 000008
【００９６】
標準偏差は、分散の平方根であるから、分散の計算は、期待値Ｅを用いて以下のように書き換えることができる。
Ｖａｒ（Ｘ）＝Ｅ（Ｘ−ＥＸ）2＝Ｅ（Ｘ2）−（ＥＸ）2
モデルにおけるｘ2iの平均も記憶される場合には、同様な方法で標準偏差を更新することができる。
【００９７】
本発明のこのような実施形態によれば、ｘ2iの平均及び観察の全回数Ｎを記憶する各モデルにおいて維持する必要があるのは、１つの付加的な２５６要素アレイのみである。すなわち、ｎグラムバイト分布モデルを漸次的学習システムとして容易にかつ非常に効率的に実施することができる。また、この特別な情報の維持は、以下でより詳細に説明するように、サンプルをクラスター化する際にも用いることができる。
【００９８】
クラスター化によるモデルの小型化
上述のように、ポートｊに送られたペイロードの各観察長さビンｉに対してモデルＭijを計算する。ある一定の状況の下では、このようなきめの細かいモデル化は、様々な問題を招く可能性がある。例えば、モデルの全サイズは、非常に大きくなる可能性がある。これは、ペイロード長がギガバイトで測定することができるメディアファイルに関連して、多くの長さビンが定義される時に発生する可能性がある。その結果、多数の重心を計算する必要がある。更に、長さビンｉのペイロードのバイト分布は、１バイトだけ異なるという理由で、長さビンｉ−１及びｉ＋１のペイロードのバイト分布と非常に類似である可能性がある。各長さに対してモデルを記憶することは、時には冗長かつ無駄である可能性がある。別の問題は、一部の長さビンに対しては、トレーニングサンプルが十分ではない場合があるということである。まばらであるということは、データが真の分布の不正確な推定である経験的分布を生成することになり、エラー発生数が多すぎる欠陥検出器をもたらす可能性があることを示唆している。
【００９９】
本発明の異常検出システムは、様々な考えられるソリューションを提供してこれらの問題に対処するものである。本発明の１つ又はそれよりも多くの実施形態によれば、まばらであるという問題に対処する１つのソリューションは、より高い平滑化係数を標準偏差に割り当てることによってモデルを緩和することである。これは、ペイロードの変動性を高くすることができる。本発明の少なくとも１つの付加的な（又は重複する）実施形態は、近傍のビンからデータを「借りて」サンプル数を増す。すなわち、近傍ビンからのデータを用いて他の「類似の」モデルを計算する。単純なマハラノビス距離を用いて２つの近傍モデルを比較し、平均バイト頻度分布の類似性を測定することができる。２つの近傍モデルの距離が何らかの閾値ｔよりも小さい場合、これらの２つのモデルは合併される。このクラスター化法は、合併することができる近傍モデルがそれ以上ないという状態になるまで繰り返される。また、この合併は、上述の漸次的アルゴリズムを用いて計算することができる。上述のように、このような技術は、２つのモデルの平均及び分散を更新して、新しい更新された分布を生成することを伴っている。
【０１００】
長さｉがポートｊに送られる新しい観察試験データに対しては、モデルＭij又はそれが合併したモデルを使用することができる。試験データの長さが全ての計算したモデルの範囲外である場合、長さ範囲が試験データのそれに最も近いモデルを使用する。これらの場合、単にペイロードがトレーニング中に観察されなかったこのような異常な長さを有するということだけで、それ自体、警報を発生させることができる。
【０１０１】
モデル化アルゴリズム及びモデル合併処理の各々は、線形時間計算であり、従って、モデル技術は、非常に速度が速く、リアルタイムで行うことができることに注意すべきである。更に、オンライン学習アルゴリズムにより、モデルが時間と共に向上し、その精度は、サービスが変更されて新しいペイロードが観察された時でさえも維持されることになることが保証される。
【０１０２】
ワーム伝播を検出してシグニチャーを生成するための相関進入及び退出トラフィック
自己伝播は、ワームにとって１つの重要な特徴及び必要条件である。自己伝播は、ワームがマシンに感染した状態で、自らのコピー又はその変形を別の影響を受けやすいホストに送ろうとすることによって自動的に他のマシンを攻撃し始めることを意味する。例えば、マシンがポート８０で受信した何らかの要求からワーム「コード・レッドＩＩ」に感染した場合、このマシンは、同じ要求を他のマシンのポット８０に送り始める。このような伝播パターンは、ほとんど全てのワームに当て嵌まる。従って、ポートｉに至る異常進入トラフィックと非常に類似したポートｉに至る何らかの退出トラフィックを検出することができた場合、ポートｉを狙うワームが自己伝播している確率が高い。
【０１０３】
本発明の１つ又はそれよりも多くの実施形態によれば、着信悪意トラフィックを検出して警報を生成することができる。同時に、ペイロードは、ポートｉ用バッファ内でストリングとして供給され、全てのストリングに対して発信トラフィックと比較されてどれが最も高い類似性スコアを戻すかを見ることができる。スコアが何らかの所定の閾値よりも高い場合、ワーム伝播の可能性が考えられる。更に、例えば、ウェブサーバのようなサーバマシン上で本発明を実施することができる。ウェブサーバは、一般的に、多量の着信要求を有するが、発信要求の可能性は一般的に非常に低い。従って、発信要求があれば、その要求は既に全く怪しいものであり、悪意ストリングに照らして比較すべきである。ホストマシンがサーバ及びクライアントとして作動している場合（これは、着信要求と発信要求の両方が一般的であることを意味する）、同じモデル化技術を発信トラフィックに適用して、既に悪意と判断された退出トラフィックを比較するためにのみ使用される。
【０１０４】
また、本発明の１つ又はそれよりも多くの実施形態は、２つのストリング間の類似性を判断するのに使用することができる複数のメトリックを提供する。最も一般的なものは、最長共通サブストリング（ＬＣＳ）又は最長共通サブシーケンス（ＬＣＳｅｑ）である。その差異は、共通サブストリングが連続的であり、一方、最長共通サブシーケンスは連続的である必要がないということである。ＬＣＳｅｑには、「多様型」ワーム及び「変形」ワームを検出することができるという利点があるが、偽陽性を招く場合がある。コンテキスト依存サブストリングサイズを考慮した確率モデル化法のような他の技術も本発明で適用することができる。返却された類似性スコアは、悪意ペイロードストリングの全長のうちの共通部分の長さの百分率である。シグニチャーを計算する代替的な（又は重複する）実施例は、悪意データの２つ又はそれよりも多くの例に出現するペイロード内の最も発生頻度が高いサブストリングの組を計算することになる。
【０１０５】
１つ又はそれよりも多くの更に別の（又は重複する）実施形態によれば、本発明を使用すると、自動的にワームシグニチャーを生成することができる。また、類似性スコアを計算することにより、進入悪意トラフィック及び退出悪意トラフィックの共通部分を表す適合サブストリング又はサブシーケンスが計算される。比較するトラフィックが既に悪意トラフィックと判断されているので（これは、ペイロードが正常ペイロードと全く異なることを意味する）、これらの共通ストリングは、ワームのコンテンツシグニチャーを表している。従って、進入悪意ペイロードと退出悪意ペイロードを相関させることにより、本発明は、非常に初期のワーム伝播を検出しかつ一切の外部の介入なしに直ちにそのシグニチャー又は部分的シグニチャーを特定することができる。これは、ゼロ・デイ・ワーム問題を解決する上で有効である。次に、コンテンツフィルタ処理のためにこのようなシグニチャーを他のホスト及び装置に伝達すると、ネットワーク上の他のホストに感染するワームの更に別の発生を排除することができる。
【０１０６】
協調セキュリティによるより正確なワーム検出
本発明の１つ又はそれよりも多くの実施形態によれば、ネットワーク上の複数のホスト及び装置上で異常検出システムを実施することができる。次に、ホスト及び装置は、例えば、警報及び考えられるワームシグニチャーを交換することによって互いに協調することができる。従って、複数のホストが同じワームシグニチャーを互いに報告するので、ワームを迅速に識別して広がるのを防止することができる。次に、ネットワーク上の全てで迅速にコンテンツフィルタ処理を適用するために、このシグニチャーを公開することができる。このような協調セキュリティ戦略を用いると、ワームがネットワーク中に広がりかつ占有する可能性を小さくすることが可能である。
【０１０７】
ファイルの識別
ネットワーク環境から生じる可能性がある様々な厄介な問題があり、その一部は、ネットワークをオフィス環境で使用することができるという事実に関連している。上述の問題を悪化させているのは、複数のネットワークにわたってデータを伝送することができる速度が速い点である。その結果、ネットワーク運用及び／又はセキュリティ担当者は、ネットワーク内のコンピュータの実際の使い方及びどのような形式のデータがネットワークの内側及び外側でホスト間で伝達されているかを知りたい場合がある。これは、例えば、ネットワーク内でコンピュータ（又はユーザ）間で伝送されるファイル及び媒体の形式を判断する段階を伴うであろう。ほとんどの伝達内容は、一般的に無害であるが、ウイルス及びワームのような悪意的なプログラムを広げる道になることがある。更に、ワークステーションの外側に広めるべきではない極秘及び／又は個人情報を維持する雇用主がいる。このような雇用主は、ある一定のファイル及び／又は情報を会社ネットワークの外側にあるコンピュータに伝送しないように従業員に警告する方針を制定することが多い。また、雇用主がある一定のファイル形式を外部ネットワーク又はコンピュータから受信（又は送信）されたくないと考える場合がある可能性がある。
【０１０８】
これらの方針の一部を実施するために、会社ネットワークを通るトラフィックは、一般的に、ある一定のファイルを阻止又は検査することができるようにモニタされる。例えば、「ワード」文書を外部コンピュータに伝送すべきではない場合は、電子メール添付ファイル「Ｐａｔｅｎｔ２５．ｄｏｃ」を検査することができる。しかし、単にファイル名に関連する拡張子を変更することによってファイルの真の形式をマスクする（つまり隠す）ことは比較的簡単である。従って、ユーザは、ファイル名を例えば、「Ｐａｔｅｎｔ２５．ｄｏｃ」から「ＨｏｌｉｄａｙＰｉｃｔｕｒｅｓ．ｊｐｇ」に変更することによってセキュリティ方針を容易に出し抜くことができる。代替的に、例えば、ファイルに画像ファイルを示す異なる接尾辞を与えてネットワークの外側に伝送することができるであろう。受信された状態で、受信者は、「Ｐａｔｅｎｔ２５．ｄｏｃ」にファイル名を書き換えて、例えば、「マイクロソフト・ワード」でそれを開くことができる。逆に、着信電子メール添付ファイルは、例えば「Ｐａｔｅｎｔ２５．ｄｏｃ」に書き換えられたウイルス又はワームである可能性がある。開いた状態で、ウイルスは、コンピュータシステムを損傷させる可能性がある。
【０１０９】
図１２は、ファイルが密かに又は虚偽の下にユーザに伝送される場合があるいくつかの状況を示すブロック図である。例えば、ワークステーション１１４は、インターネット１１６のようなネットワークに接続されている。３つの異なる添付ファイルが既にワークステーションに伝送されている。第１の添付ファイル１５０は、「ｈｅｌｌｏ．ｄｏｃ」というファイル名である。このファイルは、「マイクロソフト・ワード」ファイルであると考えられる。しかし、実はそうではない。ファイルは、一見「ワード」文書のように見えるようにファイル名を書き換えたウイルス（ｓｏｂｉｇ．ｅｘｅ）である。第２の添付ファイル１５２は、「ｊｕｎｋ．ｚｉｐ」という表題である。このファイルは、必ずしもファイル名が書き換えられたものとは限らないが、複数のアーカイブコンテンツを含むことができるアーカイブファイルの形である。アーカイブコンテンツは、アーカイブファイル１５２にアクセスするか又は開くまでは見ることができないものである。オペレーティングシステム又はメールプログラムがアーカイブファイル１５２にそれが受信されると直ちに自動的にアクセスすることができる状況が存在する。従って、ウイルスがアーカイブファイル１５２に含まれた場合、自動的に解除することができる。第３の添付ファイル１５４は、「ワード」ファイルと識別されないように「文書．ｐｄｆ」という表題である。しかし、ファイルは、元々、「契約．ｄｏｃ」というファイル名であった。ファイルの全てが、ワークステーション１１４に対して潜在的な問題を呈する可能性がある。
【０１１０】
図１３は、本発明の１つ又はそれよりも多くの実施形態によるネットワークを通じて伝送されるファイル形式を特定する方法を示している。段階Ｓ５１０で、伝送がネットワークを通じて受信される。伝送は、従来の電子メールメッセージである可能性があり、例えば、テキスト、添付ファイルなどのような様々な形式の情報を含む可能性がある。段階Ｓ５１２で、伝送がファイルを含むか否かを判断する。電子メールメッセージに対する添付ファイルの一部としてファイルが伝送に含まれる可能性がある。伝送がファイルを含まない場合、制御は、段階Ｓ２５６に進み、そこで、処理は終了する。しかし、伝送が１つ又はそれよりも多くのファイルを含むと判断された場合、段階Ｓ５１４で、伝送内のファイルの各々に含まれたデータに対して統計的分布を生成する。
【０１１１】
段階Ｓ５１６で、モデル分布を選択する。モデル分布は、所定のファイル形式にいて生成された１つ又はそれよりも多くの統計的分布に対応する。例えば、「．ｇｉｆ」ファイルに対して特定のモデルファイル分布を生成することができるであろう。同様に、「．ｐｄｆ」ファイル、「．ｄｏｃ」ファイル、及び「．ｊｐｅｇ」ファイルなどに対して、上述の概念及び／又は以下で説明する概念を用いてモデルファイル分布を生成することができる。更に、図１４Ａから１４Ｉを参照すると、様々なファイル形式のモデル分布を示している。段階Ｓ５１８で、ファイルの統計的分布をモデル分布に照らして測定する。上述のように、様々な方法を用いて、限定はしないがマハラノビス距離を含む距離を測定することができる。更に、伝送が1つよりも多いファイルを含む場合、伝送に含まれた各ファイルに距離試験を適用することになる。段階Ｓ５２０で、受信ファイルとモデルファイルの間の距離が所定の閾値よりも大きいか否かを判断する。この距離が閾値よりも大きい場合、制御は、段階Ｓ５２２に進む。この距離が閾値よりも小さい場合、制御は、段階Ｓ５２４に進む。この時点で、受信ファイルを特定の形式であると識別することができる。例えば、モデル分布に対する形式は、既に既知である。従って、受信ファイルをモデル分布と同じ形式であると判断することができる。次に、制御は段階Ｓ５２６に進み、そこで処理は終了する。
【０１１２】
段階Ｓ５２２で、付加的なモデル分布があるか否かを判断する。これ以上付加的なモデル分布がない場合、処理はまた、受信ファイルの形式を特定することなく又は特定することはできないまま終了する。しかし、付加的なモデル分布がある場合、制御は、段階５２６に戻り、そこで、次のモデル分布を選択する。処理は、受信ファイルがモデル分布の全てに照らして試験されるまで続行され、形式が判断されるか又は形式を判断することができないかのいずれかである。本発明の１つ又はそれよりも多くの実施形態によれば、ファイルの形式を判断することができない場合、そのファイルは、廃棄するか又は潜在的なウイルス又は悪意的なプログラムとして特定することができる。
【０１１３】
図１５は、本発明の１つ又はそれよりも多くの実施形態によるファイル形式をモデル化する方法を示す流れ図である。段階Ｓ５５０で、複数のファイルを収集する。ファイルは、特定の形式と分っており、及び／又はこのような形式として作成する。例えば、複数の「．ｐｄｆ」ファイルか、又は複数の「．ｄｏｃ」ファイル、「．ｊｐｅｇ」ファイル、「．ｇｉｆ」ファイルなどを収集することができる。ファイルの全てが同じ形式である限り、これらのファイルを使用して適切なモデルを生成することができる。段階Ｓ５５２で、収集したファイルの各々に対して統計的分布を生成する。段階Ｓ５５４で、統計的分布を結合する。これは、例えば、収集した各ファイルに関する分布の単純な追加のような様々な方法で達成することができる。
【０１１４】
段階Ｓ５５６で、複数のクラスターを統計的分布に対して形成する。段階Ｓ５５８で、統計的分布に対して形成した各クラスターに関して重心を計算する。段階Ｓ５６０で、モデル重心を計算する。モデル重心は、段階Ｓ５５８で計算した複数のクラスター重心の重心に対応する。段階Ｓ５６２で、特定のファイル形式を表すためのモデルとしてモデル重心を指定する。従って、「．ｐｄｆ」ファイルがモデル化されている場合、モデル重心は、「．ｐｄｆ」ファイルのモデル分布に対応することになる。段階Ｓ５６６で、処理は終了する。本発明の１つ又はそれよりも多くの実施形態によれば、モデルファイル形式はまた、収集した全てのファイルの結合統計的分布に基づくものとすることができる。これを段階Ｓ５６４に示している。従って、収集ファイルの結合統計的分布は、特定のファイル形式のモデル分布として割り当てられるであろう。
【０１１５】
図１６は、本発明の１つ又はそれよりも多くの実施形態によるファイル形式を確認するために実行される段階を示す流れ図である。段階Ｓ６１０で、ファイルを受信する。ファイルの受信は、例えば、一般的なネットワーク伝送、電子メール、又は携帯媒体を含む複数のソースのいずれかから行うことができる。段階Ｓ６１２で、ファイルに対して統計的分布を生成する。段階Ｓ６１４で、受信ファイル形式に対応するモデル分布を再検索する。例えば、受信ファイル形式が「．ｊｐｅｇ」ファイルとしてタグ付き（又は、特定の拡張子を使用して指定）である場合、「．ｊｐｅｇ」ファイル用の適切なモデル分布を検索する。段階Ｓ６１６で、受信ファイルの統計的分布を段階Ｓ６１４で検索したモデル分布と比較する。段階Ｓ６１８で、受信ファイルの統計的分布がモデル分布の許容範囲限界内であるか否かを判断する。より具体的には、受信ファイルの統計的分布とモデル分布の間の距離を再調査して、それが許容範囲閾値内に該当するか否かを判断する。
【０１１６】
受信ファイルの統計的分布の距離が許容範囲内である場合、ファイルは、ファイル名に指定された形式であるとして確認することができる。これを段階Ｓ６２０に示している。従って、処理は、受信ファイルの形式を確認した時点で終了する。代替的に、受信ファイルの統計的分布の距離が許容範囲内ではなかった場合、警報を生成して、ファイルが実はファイル名で指定された形式ではないことを示すことができる。これを段階Ｓ６２２に示している。段階Ｓ６２４で、ファイルを阻止するか、又はネットワーク又はワークステーションを通じた更に別の伝送から廃棄することができる。
【０１１７】
本発明の１つ又はそれよりも多くの実施形態によれば、ファイルが不適切なファイル名であり、かつ異なるフィールド形式に相当することを検出した時点で、更に別の試験を行ってファイルが実は異なるファイル形式を装ったウイルスであるか否かを判断することができる。次に、制御は、段階Ｓ６２４に戻り、そこで、ここでもまたファイルを阻止するか又はネットワークを通じた更に別の伝播からファイルを廃棄することができる。次に、処理は、段階Ｓ６２８で終了する。
【０１１８】
図１７は、本発明の１つ又はそれよりも多くの実施形態によるウイルス及びワームのような悪意的なプログラムを検出及び／又は識別するために実行される段階を示す流れ図である。段階Ｓ６５０で、ネットワークを通じて又はワークステーションで伝送を受信する。その伝送は、複数のコンピュータ間やネットワーク内などのネットワークにわたる伝送とすることができる。更に、その伝送は、単一マシン内のデータの内部送信に対応することができる。例えば、その伝送は、携帯媒体からワークステーションのメモリに行われたファイルの読取に対応することができる。
【０１１９】
段階Ｓ６５２で、伝送に添付されたファイルがあるか否かを判断する。伝送に添付されたファイルがない場合、処理は終了する。伝送内にファイルがある場合、制御は、段階Ｓ６５４に進む。各ファイルの形式に関する情報を検索する。この情報の検索は、例えば、ファイル名の拡張子を検査することによって行うことができる。段階Ｓ６５６で、ファイルに対して統計的分布を生成する。段階Ｓ６５８で、ファイルの形式に対応するモデル分布を検索する。段階Ｓ６６０で、ファイルの統計的分布を検索したモデル分布と比較する。段階Ｓ６６２で、ファイルの統計的分布が許容範囲閾値内であるか否かを判断する。許容範囲閾値内である場合、ファイルは、恐らくウイルスではなく、段階Ｓ６６４でウイルスではないと特定する。しかし、ファイルの統計的分布が許容範囲内ではなかった場合、段階Ｓ６６６で、ファイルをウイルスと特定する。段階Ｓ６６８で、ファイルの統計的分布をあらゆる公知のウイルス統計的分布と比較することができる。
【０１２０】
本発明の１つ又はそれよりも多くの実施形態によれば、様々な重み係数を統計的分布内の異なるバイト値に割り当てることができる。これを段階Ｓ６７０に示している。上述のように、より高い重み係数は、恐らくマシン実行コード、スクリプトファイル、及び／又はマシンを損傷させる可能性がある他のプログラムに対応する可能性があるバイト値に割り当てることができる。段階Ｓ６７２で、ファイルの統計的分布がウイルス分布のいずれかに適合するか否かを判断する。適合があった場合、段階Ｓ６７４で、ウイルス形式を特定する。適合がなかった場合、制御は、段階Ｓ６７６に進む。ウイルスに関する情報を識別するためにファイルに含まれたデータを検索する。段階Ｓ６７８で、ファイル内に共通ストリング又はサブシーケンスがあれば特定する。段階Ｓ６８０で、共通ストリング又はサブシーケンスを用いてウイルスのシグニチャーを生成する。段階Ｓ６８４で、処理は終了する。本発明の１つ又はそれよりも多くの実施形態によれば、ファイル内のデータを検査してシグニチャーを生成するよりはむしろ、ファイルの統計的分布をシグニチャーストリング（又は分布）として使用することができる。これを段階Ｓ６８２に示すが、そこでは、ファイルに対して分布ベースのシグニチャーを生成する（すなわち、特定されたウイルス）。
【０１２１】
伝送元のトレース
本発明の１つ又はそれよりも多くの実施形態によれば、本発明を使用してインターネットのような大規模ネットワークの使用に関連する様々な問題に対処することができる。このような問題の１つは、飛び石プロキシの使用に関連するものである。これらのプロキシをアタッカー（又はハッカー）が用いる目的は、様々なマシンに対して攻撃を行いながら真の位置を隠すためである。アタッカーは、前回ハッキングを行って勢力内にある「ドローン」マシンに攻撃を開始することが多い。次に、これらのドローンマシンは、様々な商業レベルのコンピュータ、サーバ、ウェブサイトなどにサービス妨害攻撃を開始することができる。更に、アタッカーは、１つのドローンマシンに第２のドローンマシンを作動させることにより、攻撃を開始することができる。攻撃が開始された状態で、ターゲットコンピュータは、攻撃指令を伝送するマシンからの情報をただ見るだけである。
【０１２２】
アタッカーは、ドローンコンピュータを勢力下に置いてしまっているので、ターゲットコンピュータは、攻撃を引き起こすドローンコンピュータのＩＰアドレスを見るだけになる。ハッカーは、複数のレベル、すなわち、このような攻撃の開始元である飛び石プロキシを用いる可能性がある。これによって、実際のアタッカーの場所をトレースすることが困難になる。更に状況を複雑にするために、ドローンコンピュータには、別のドローンに自動的に接触し、及び／又は攻撃を開始するための特定の時間を与えることができる。
【０１２３】
図１８は、飛び石状況の１つの形式を示している。アタッカー２００は、ターゲットコンピュータ２５０に対して攻撃を開始する。ターゲットコンピュータは、アタッカーと同じ周辺地域、国、又は州とすることができる。しかし、アタッカーはまた、居場所をインターネットに接続する世界のあらゆる場所とすることができる。図１６の状況によれば、アタッカーは、４つのドローンコンピュータを勢力下に置いてしまっている。これらには、段階１ドローン２１０、段階２ドローン２２０、段階３ドローン２３０、段階４ドローン２４０がある。これらのドローンコンピュータの全ては、アタッカーに管理されている。上述のように、正常なネットワーク接続中、マシンは、直前のマシンから伝送される情報のみを見ることができる。例えば、ターゲットコンピュータ２５０は、攻撃の最終目的地であり、段階４のドローン２４０から伝送される情報を見るだけである。すなわち、ターゲットコンピュータ２５０は、攻撃が段階４ドローン２４０から開始されていると信じている。同様に、段階４ドローン２４０は、段階３ドローン２３０に関係する情報を見る。後に戻って、段階３ドローン２３０は、段階２ドローン２２０によって開始されている攻撃を見る。段階２ドローン２２０は、段階１候２１０によって開始されている攻撃を見る。アタッカー２００の真のアドレスが分る接続リンク内の唯一のコンピュータは、段階１ドローン２１０である。
【０１２４】
本発明の１つ又はそれよりも多くの実施形態によれば、アタッカーの居場所の判断は、複数のドローンコンピュータを通じて伝送されたデータペイロードの統計的分布を解析することによって行うことができる。ドローンコンピュータは、いくつかのサービスプロバイダ２６０を通じてネットワーク上で互いに接続されている。各サービスプロバイダ２６０は、ネットワーク上の伝送に関する情報を含む接続記録２７０を維持する。接続記録２７０は、例えば、情報を伝達するコンピュータシステムのＩＰアドレス２７２、情報が送出されるコンピュータシステムの宛先アドレス２７４、及び送出される実際の情報２７６を含むことができる。接続記録に含まれた情報量を最小限に抑えるために、伝送される各データペイロード２７６に対して統計的分布を生成することができる。従って、統計的分布の構成は、本発明の様々な実施形態に対して上述したように、短い、例えば、２５６バイトストリング内に記憶されるように行うことができる。これによって、サービスプロバイダ２６０は、記憶スペースを浪費することなく、膨大な数の通過する伝送に関する情報を捕捉して記憶することができる。以下でより詳細に説明するように、サービスプロバイダによって維持された情報を使用すると、ターゲットマシンへの攻撃を開始するアタッカーの物理的な居場所をトレースすることができる。更に、接続記録２７０全体又はその一部に対して統計的分布を生成することができる。
【０１２５】
図１９は、本発明の１つ又はそれよりも多くの実施形態による伝送されたメッセージの出所をトレースするために実行される段階を示す流れ図である。段階Ｓ７１０で、接続記録をサービスプロバイダが作成する。上述のように、接続記録は、例えば、前回のコンピュータシステムのアドレス、データペイロード、及びその後のコンピュータシステムのアドレスを含むことができる。段階Ｓ７２０で、接続記録を検査して、各接続記録に含まれたデータに対して統計的分布を生成する。段階Ｓ７１４で、エンドターゲットコンピュータで疑わしいペイロードを特定する。より具体的には、疑わしきデータペイロードは、例えば、ターゲットコンピュータシステムへの攻撃を感染させるか又は開始するのに使用した悪意的なプログラムに対応することができる。段階Ｓ７１６で、疑わしきデータペイロードに対して統計的分布を生成する。段階Ｓ７１８で、エンドターゲットコンピュータを疑わしきコンピュータとして指定する。
【０１２６】
段階Ｓ７２０で、疑わしきデータペイロードの統計的分布を、段階Ｓ７１２で生成したデータペイロードの統計的分布と比較する。段階Ｓ７２２で、疑わしきデータペイロード分布の距離が、現在の接続記録の分布に対して許容範囲閾値内であるか否かを判断する。許容範囲内である場合、適合と特定することができる。疑わしいペイロードの統計的分布が許容範囲内でなかった場合、段階Ｓ７２４で、付加的な接続記録があるか否かを判断する。付加的な接続記録がある場合、制御は、段階Ｓ７２０に戻り、そこで、次の接続記録と比較する。これ以上接続記録がない場合、処理は、終了することになる。しかし、疑わしいペイロードの統計的分布が許容範囲内である場合、段階Ｓ７２６で、前回の送信者のＩＤを特定する。これは、例えば、分布が生成された接続記録を検査することによって行うことができる。接続記録内で、送信者のアドレス及び宛先コンピュータシステムを特定する。すなわち、疑わしきコンピュータシステムは、宛先アドレスになり、前回の送信者のアドレスが特定されるであろう。
【０１２７】
段階Ｓ７２８で、前回のコンピュータシステムが伝送の最初の送信者であるか否かを判断する。前回のコンピュータシステムが伝送の最初の送信者であった場合、最初の送信者のＩＤが得られて、処理は終了する。しかし、前回の送信者のアドレスが伝送の最初の送信者に対応しなかった場合、制御は、段階Ｓ７３２に進む。前回のコンピュータが疑わしきコンピュータとして指定される。次に、制御は、段階Ｓ７２０に戻り、そこで、疑わしいペイロードの統計的分布を、新しい指定された疑わしきコンピュータによって記憶された接続記録の統計的分布と比較する。処理は、伝送の最初の送信者が特定されるまで複数のコンピュータシステムを遡って繰り返すことができる。
【０１２８】
本発明の異常検出システムはまた、「ウィンドウズ」ラインのオペレーティングシステム、Ｌｉｎｕｘ、ＭａｃＯＳなどのような様々なオペレーティングシステムを使用してコンピュータ及びサーバ上で実施することができる。また、Ｃ＋＋、Ｃ＃、Ｊａｖａなどのようなあらゆるプログラミング言語を使用して必要なプログラムコードを生成することができる。
【０１２９】
本発明の多くの特徴及び利点は、この詳細な明細書から明らかであり、すなわち、特許請求の範囲は、本発明の真の精神及び範囲に該当する全てのこのような特徴及び利点を網羅するように意図している。更に、多くの修正及び変形が当業者には容易に明らかになると考えられるので、本発明は、図示して説明した正確な構成及び作動に限定されるべきではない。むしろ、全ての適切な修正及び均等物は、請求する本発明の範囲に該当すると考えることができる。
【符号の説明】
【０１３０】
１００  異常ペイロードを検出するシステム
１１０  サーバ
１１２  ファイアウォール
１１６  インターネット
【図１】
2011040064.tif 000009
【図２】
2011040064.tif 000010
【図３Ａ】
2011040064.tif 000011
【図３Ｂ】
2011040064.tif 000012
【図４】
2011040064.tif 000013
【図５Ａ】
2011040064.tif 000014
【図５Ｂ】
2011040064.tif 000015
【図６Ａ】
2011040064.tif 000016
【図６Ｂ】
2011040064.tif 000017
【図７】
2011040064.tif 000018
【図８】
2011040064.tif 000019
【図９】
2011040064.tif 000020
【図１０】
2011040064.tif 000021
【図１１】
2011040064.tif 000022
【図１２】
2011040064.tif 000023
【図１３】
2011040064.tif 000024
【図１４Ａ】
2011040064.tif 000025
【図１４Ｂ】
2011040064.tif 000026
【図１４Ｃ】
2011040064.tif 000027
【図１４Ｄ】
2011040064.tif 000028
【図１４Ｅ】
2011040064.tif 000029
【図１４Ｆ】
2011040064.tif 000030
【図１４Ｇ】
2011040064.tif 000031
【図１４Ｈ】
2011040064.tif 000032
【図１４Ｉ】
2011040064.tif 000033
【図１５】
2011040064.tif 000034
【図１６】
2011040064.tif 000035
【図１７】
2011040064.tif 000036
【図１８】
2011040064.tif 000037
【図１９】
2011040064.tif 000038