(57)【要約】ワームは１つのホストから別のホストへそれ自身を自律的に拡散する悪質なプロセスである。ホストを感染させるために、ワームは何らかの形で自身をホストにコピーしなければならない。ワームが自身のコピーを送信する方法は、トラフィックビヘービアとして一般化され得るネットワークトラフィックパターンを生成する。ワームがネットワークを通じて自身を拡散するときには、トラフィックビヘービアの伝播はホストが次から次へと感染する様子として目撃され得る。トラフィックビヘービアの伝播によるネットワークトラフィックをモニタリングすることによって、ワームの存在が検出され得る。【特許請求の範囲】
【請求項１】
コンピュータネットワーク上のワームを検出するコンピュータベースの方法であって、該方法は、
（ａ）複数のトラフィックビヘービアの発生を識別するために、コンピュータネットワーク上でトラフィックをモニタするステップと、
（ｂ）該トラフィックビヘービアの発生を、ノードとリンクを有するツリーを表すデータ構造に体系化するステップであって、ノードはホストを表し、リンクは２つのノードの間での該複数のトラフィックビヘービアの発生のうちの１つを表す、該ステップと、
（ｃ）コンピュータネットワーク上のワームに感染した可能性のあるホストを識別するために、該データ構造を使用するステップと
を包含する、方法。
【請求項２】
ステップ（ａ）は、
（１）所定のパターンと合致する、第１のホストと第２のホストとの間のパケットのシーケンスを検出するステップと、
（２）合致するシーケンスが検出された場合にはトラフィックビヘービアの発生を示すステップと
を包含する、請求項１に記載の方法。
【請求項３】
ステップ（１）は、
（ｉ）第１のホストと第２のホストとの間のＴＣＰ接続の立ち上げを示す第１のパケットを検出するステップと、
（ｉｉ）該第１のホストから該第２のホストへ送信されたＴＣＰ  ＦＩＮメッセージを表す第２のパケットを検出するステップと、
（ｉｉｉ）該第２のホストから該第１のホストへ送信されるＴＣＰ  ＲＳＴまたはＴＣＰ  ＦＩＮメッセージを表す第３のパケットがないことを検出するステップであって、それによって半開きのＴＣＰ接続トラフィックビヘービアを識別する、該ステップと
を包含する、請求項２に記載の方法。
【請求項４】
ステップ（ａ）は、複数のトラフィックビヘービアの発生のうちの１つを識別するために、第１のホストと第２のホストとの間のトラフィックをモニタするステップを包含し、該識別されたトラフィックビヘービアの発生は、該第１のホストから該第２のホストへのパケットの送信である、請求項１に記載の方法。
【請求項５】
ステップ（ｃ）は、
（１）前記ツリーの深度を決定するために、前記データ構造を使用するステップと、
（２）該深度が閾値よりも大きい場合には、該ツリーの中の少なくとも１つのホストはワームに感染した可能性のあるホストであるということを示すステップと
を包含する、請求項１に記載の方法。
【請求項６】
ステップ（ｃ）は、
（１）前記ツリーのノードの数を決定するために、前記データ構造を使用するステップと、
（２）該ノードの数が閾値よりも大きい場合には、該ツリーの中の少なくとも１つのホストはワームに感染した可能性のあるホストであるということを示すステップと
を包含する、請求項１に記載の方法。
【請求項７】
ステップ（ｃ）は、
（１）前記ツリーの各深度の平均分岐係数を決定するために、前記データ構造を使用するステップと、
（２）該ツリーの各深度の該平均分岐係数が、閾値が約１よりも大きい場合において、該閾値よりも大きい場合には、該ツリーの中の少なくとも１つのホストはワームに感染した可能性のあるホストであるということを示すステップと
を包含する、請求項１に記載の方法。
【請求項８】
ステップ（ｃ）は、
（１）前記ツリーの前記内部ノードの平均分岐係数を決定するために、前記データ構造を使用するステップと、
（２）該内部ノードの該平均分岐係数が、閾値が約１よりも大きい場合において、該閾値よりも大きい場合には、該ツリーの中の少なくとも１つのホストはワームに感染した可能性のあるホストであるということを示すステップと
を包含する、請求項１に記載の方法。
【請求項９】
ステップ（ｃ）は、
（１）前記ツリーの平均伝播時間を決定するために、前記データ構造を使用するステップと、
（２）該平均伝播時間が閾値よりも小さい場合には、該ツリーの中の少なくとも１つのホストはワームに感染した可能性のあるホストであるということを示すステップと
を包含する、請求項１に記載の方法。
【請求項１０】
ステップ（ｃ）は、
（１）前記データ構造のサブツリーを選択するステップであって、該サブツリーは、第１のノード、第２のノード、第３のノード、該第１のノードと該第２のノードとを接続する第１のリンク、および、該第２のノードと該第３のノードとを接続する第２のリンクから成る、該ステップと、
（２）該第２のノードによって表されたホストを、前記コンピュータネットワーク上のワームに感染した可能性のあるホストとして識別するために、該サブツリーを使用するステップと
を包含する、請求項１に記載の方法。
【請求項１１】
ステップ（２）は、前記第１のリンクおよび前記第２のリンクが同じトラフィックビヘービアの発生を示す場合には、前記第２のノードによって表された前記ホストを、アルファインアルファアウトのワームと類似する症状を示すワームに感染した可能性のあるホストとして識別するステップを包含する、請求項１０に記載の方法。
【請求項１２】
ステップ（２）は、前記第１のリンクおよび前記第２のリンクが同じトラフィックビヘービアの発生を示し、該トラフィックビヘービアの発生が、パケットが特定のポートに送信されたということを示す場合には、前記第２のノードによって表された前記ホストを、サーバツークライアントのワームと類似する症状を示すワームに感染した可能性のあるホストとして識別するステップを包含する、請求項１０に記載の方法。
【請求項１３】
請求項１に記載の方法であって、
（ｄ）複数のホストが前記コンピュータネットワーク上のワームに感染した可能性のあるホストであるということを示すために、前記データ構造の中の同じトラフィックビヘービアを示した該複数のホストを、該ワームに感染した可能性のあるホストとして識別するステップを
さらに包含する、方法。
【請求項１４】
ステップ（ｃ）は、
（１）トラフィックビヘービアを示すことを禁止されるホストを、前記データ構造の中で選択するステップと、
（２）該ホストが該トラフィックビヘービアを示したか否かを決定するために、該データ構造を使用するステップと、
（３）該ホストが該トラフィックビヘービアを示した場合には、該ホストがワームに感染した可能性のあるホストであるということを示すステップと
を包含する、請求項１に記載の方法。
【請求項１５】
ステップ（ｂ）は、
（１）前記トラフィックビヘービアの発生をシーケンスに配置するステップと、
（２）該シーケンス中の少なくとも１つのホストに対して、ツリーを表すデータ構造を生成するステップであって、該ツリーの根は該ホストを表す、該ステップと、
（３）該シーケンスの先頭からトラフィックビヘービアの発生を選択するステップと、
（４）該トラフィックビヘービアの発生から発生源ホストおよび目的先ホストを識別するステップであって、該発生源ホストはトラフィックビヘービアを開始し、該目的先ホストは該トラフィックビヘービアの目標であるとする、該ステップと、
（５）該目的先ホストが該ツリーの中にまだ存在せず、かつ、該発生源ホストを表すノードが該ツリーの中に存在する場合には、該目的先ホストをリーフノードとして該ツリーに追加するステップと、
（６）該シーケンスの先頭から該トラフィックビヘービアの発生を取り除くステップと、
（７）該シーケンスの中の全ての該トラフィックビヘービアに対してステップ（３）〜ステップ（６）を繰り返すステップと
を包含する、請求項１に記載の方法。
【請求項１６】
コンピュータネットワーク上のワームを検出する装置であって、
複数のトラフィックビヘービアの発生を識別するために、コンピュータネットワーク上でトラフィックをモニタするモニタリング手段と、
該トラフィックビヘービアの発生を、ノードとリンクを有するツリーを表すデータ構造に体系化する体系化手段であって、ノードはホストを表し、リンクは２つのノードの間での該複数のトラフィックビヘービアの発生のうちの１つを表す、該手段と、
コンピュータネットワーク上のワームに感染した可能性のあるホストを識別するために、該データ構造を使用する使用手段と
を備える、装置。
【請求項１７】
前記モニタリング手段は、
所定のパターンと合致する、第１のホストと第２のホストとの間のパケットのシーケンスを検出する検出手段と、
合致するシーケンスが検出された場合にはトラフィックビヘービアの発生を示す表示手段と
を備える、請求項１６に記載の装置。
【請求項１８】
前記検出手段は、
第１のホストと第２のホストとの間のＴＣＰ接続の立ち上げを示す第１のパケットを検出する検出手段と、
該第１のホストから該第２のホストへ送信されたＴＣＰ  ＦＩＮメッセージを表す第２のパケットを検出する検出手段と、
該第２のホストから該第１のホストへ送信される、ＴＣＰ  ＲＳＴまたはＴＣＰ  ＦＩＮメッセージを表す第３のパケットがないことを検出し、それによって半開きのＴＣＰ接続トラフィックビヘービアを識別する、検出手段と
を備える、請求項１６に記載の装置。
【請求項１９】
前記モニタリング手段は、複数のトラフィックビヘービアの発生のうちの１つを識別するために、第１のホストと第２のホストとの間のトラフィックをモニタするモニタリング手段を備え、該識別されたトラフィックビヘービアの発生は、該第１のホストから該第２のホストへのパケットの送信である、請求項１６に記載の装置。
【請求項２０】
前記使用手段は、
前記ツリーの深度を決定するために、前記データ構造を使用する使用手段と、
該深度が閾値よりも大きい場合には、該ツリーの中の少なくとも１つのホストはワームに感染した可能性のあるホストであるということを示す表示手段と
を備える、請求項１６に記載の装置。
【請求項２１】
前記使用手段は、
前記ツリーのノードの数を決定するために、前記データ構造を使用する使用手段と、
該ノードの数が閾値よりも大きい場合には、該ツリーの中の少なくとも１つのホストはワームに感染した可能性のあるホストであるということを示す表示手段と
を備える、請求項１６に記載の装置。
【請求項２２】
前記使用手段は、
前記ツリーの各深度の平均分岐係数を決定するために、前記データ構造を使用する使用手段と、
該ツリーの各深度の該平均分岐係数が、閾値が約１よりも大きい場合において、該閾値よりも大きい場合には、該ツリーの中の少なくとも１つのホストはワームに感染した可能性のあるホストであるということを示す表示手段と
を備える、請求項１６に記載の装置。
【請求項２３】
前記使用手段は、
前記ツリーの前記内部ノードの平均分岐係数を決定するために、前記データ構造を使用する使用手段と、
該ツリーの該内部ノードの該平均分岐係数が、閾値が約１よりも大きい場合において、該閾値よりも大きい場合には、該ツリーの中の少なくとも１つのホストはワームに感染した可能性のあるホストであるということを示す表示手段と
を備える、請求項１６に記載の装置。
【請求項２４】
前記使用手段は、
前記ツリーの平均伝播時間を決定するために、前記データ構造を使用する使用手段と、
該平均伝播時間が閾値よりも小さい場合には、該ツリーの中の少なくとも１つのホストはワームに感染した可能性のあるホストであるということを示す表示手段と
を備える、請求項１６に記載の装置。
【請求項２５】
前記使用手段は、
前記データ構造のサブツリーを選択する選択手段であって、該サブツリーは、第１のノード、第２のノード、第３のノード、該第１のノードと該第２のノードとを接続する第１のリンク、および、該第２のノードと該第３のノードとを接続する第２のリンクから成る、該手段と、
該第２のノードによって表されたホストを、前記コンピュータネットワーク上のワームに感染した可能性のあるホストとして識別するために、該サブツリーを使用する使用手段と
を備える、請求項１６に記載の装置。
【請求項２６】
請求項２５に記載の使用手段は、前記第１のリンクおよび前記第２のリンクが同じトラフィックビヘービアの発生を示す場合には、前記第２のノードによって表された前記ホストを、アルファインアルファアウトのワームと類似する症状を示すワームに感染した可能性のあるホストとして識別する識別手段を備える、請求項２５に記載の装置。
【請求項２７】
請求項２５に記載の使用手段は、前記第１のリンクおよび前記第２のリンクが同じトラフィックビヘービアの発生を示し、該トラフィックビヘービアの発生が、パケットが特定のポートに送信されたということを示す場合には、前記第２のノードによって表された前記ホストを、サーバツークライアントのワームと類似する症状を示すワームに感染した可能性のあるホストとして識別する識別手段を備える、請求項２５に記載の装置。
【請求項２８】
複数のホストが前記コンピュータネットワーク上のワームに感染した可能性のあるホストであるということを示すために、前記データ構造の中の同じトラフィックビヘービアを示した該複数のホストを、該ワームに感染した可能性のあるホストとして識別する識別手段をさらに備える、
請求項１６に記載の装置。
【請求項２９】
前記使用手段は、
前記トラフィックビヘービアを示すことを禁止されるホストを、前記データ構造の中で選択する選択手段と、
該ホストが該トラフィックビヘービアを示したか否かを決定するために、該データ構造を使用する使用手段と、
該ホストが該トラフィックビヘービアを示した場合には、該ホストがワームに感染した可能性のあるホストであるということを示す表示手段と
を備える、請求項１６に記載の装置。
【請求項３０】
前記体系化手段は、
トラフィックビヘービアの発生をシーケンスに配置する配置手段と、
該シーケンス中の少なくとも１つのホストに対して、ツリーを表すデータ構造を生成する生成手段であって、該ツリーの根は該ホストを表す、該手段と、
該シーケンスの中のトラフィックビヘービアの発生に対して以下の機能を実行する処理手段と
を備え、該機能は、
該シーケンスの先頭からトラフィックビヘービアの発生を選択することと、
該トラフィックビヘービアの発生から発生源ホストおよび目的先ホストを識別することであって、該発生源ホストはトラフィックビヘービアを開始し、該目的先ホストは該トラフィックビヘービアの目標であるとする、該識別することと、
該目的先ホストが該ツリーの中にまだ存在せず、かつ、該発生源ホストを表すノードが該ツリーの中に存在する場合には、該目的先ホストをリーフノードとして該ツリーに追加することと、
該シーケンスの先頭から該トラフィックビヘービアの発生を取り除くことと
を含む、
請求項１６に記載の装置。
【請求項３１】
コンピュータネットワーク上のワームを検出するアプリケーションプログラムをコンピュータ上で実行させるために、コンピュータ利用可能な媒体に組み込まれたコンピュータ読取り可能なプログラムコードの手段を有する、該媒体を備えるコンピュータプログラム製品であって、該コンピュータプログラム製品は、
複数のトラフィックビヘービアの発生を識別するために、コンピュータネットワーク上でトラフィックをモニタするための、第１のコンピュータ読取り可能なプログラムコードの手段と、
該トラフィックビヘービアの発生を、ノードとリンクを有するツリーを表すデータ構造に体系化するための、第２のコンピュータ読取り可能なプログラムコードの手段であって、ノードはホストを表し、リンクは２つのノードの間での該複数のトラフィックビヘービアの発生のうちの１つを表す、該手段と、
コンピュータネットワーク上のワームに感染した可能性のあるホストを識別するために、該データ構造を使用するための、第３のコンピュータ読取り可能なプログラムコードの手段と
を備える、コンピュータプログラム製品。
【請求項３２】
前記第１のコンピュータ読取り可能なプログラムコードの手段は、
所定のパターンと合致する、第１のホストと第２のホストとの間のパケットのシーケンスを検出するための、第４のコンピュータ読取り可能なプログラムコードの手段と、
合致するシーケンスが検出された場合にはトラフィックビヘービアの発生を示すための、第５のコンピュータ読取り可能なプログラムコードの手段と
を備える、請求項３１に記載のコンピュータプログラム製品。
【請求項３３】
前記第４のコンピュータ読取り可能なプログラムコードの手段は、
第１のホストと第２のホストとの間のＴＣＰ接続の立ち上げを示す第１のパケットを検出するための、第６のコンピュータ読取り可能なプログラムコードの手段と、
該第１のホストから該第２のホストへ送信されたＴＣＰ  ＦＩＮメッセージを表す第２のパケットを検出するための、第７のコンピュータ読取り可能なプログラムコードの手段と、
該第２のホストから該第１のホストへ送信されるＴＣＰ  ＲＳＴまたはＴＣＰ  ＦＩＮメッセージを表す第３のパケットがないことを検出し、それによって半開きのＴＣＰ接続トラフィックビヘービアを識別する、検出するための第８のコンピュータ読取り可能なプログラムコードの手段と
を備える、請求項３１に記載のコンピュータプログラム製品。
【請求項３４】
前記第１のコンピュータ読取り可能なプログラムコードの手段は、複数のトラフィックビヘービアの発生のうちの１つを識別するために、第１のホストと第２のホストとの間のトラフィックをモニタするための、コンピュータ読取り可能なプログラムコードの手段を備え、該識別されたトラフィックビヘービアの発生は、該第１のホストから該第２のホストへのパケットの送信である、請求項３１に記載のコンピュータプログラム製品。
【請求項３５】
前記第３のコンピュータ読取り可能なプログラムコードの手段は、
前記ツリーの深度を決定するために、前記データ構造を使用するための、第４のコンピュータ読取り可能なプログラムコードの手段と、
該深度が閾値よりも大きい場合には、該ツリーの中の少なくとも１つのホストはワームに感染した可能性のあるホストであるということを示すための、第５のコンピュータ読取り可能なプログラムコードの手段と
を備える、請求項３１に記載のコンピュータプログラム製品。
【請求項３６】
前記第３のコンピュータ読取り可能なプログラムコードの手段は、
前記ツリーのノードの数を決定するために、前記データ構造を使用するための、第４のコンピュータ読取り可能なプログラムコードの手段と、
該ノードの数が閾値よりも大きい場合には、該ツリーの中の少なくとも１つのホストはワームに感染した可能性のあるホストであるということを示すための、第５のコンピュータ読取り可能なプログラムコードの手段と
を備える、請求項３１に記載のコンピュータプログラム製品。
【請求項３７】
前記第３のコンピュータ読取り可能なプログラムコードの手段は、
前記ツリーの各深度の平均分岐係数を決定するために、前記データ構造を使用するための、第４のコンピュータ読取り可能なプログラムコードの手段と、
該ツリーの各深度の該平均分岐係数が、閾値が約１よりも大きい場合において、該閾値よりも大きい場合には、該ツリーの中の少なくとも１つのホストはワームに感染した可能性のあるホストであるということを示すための、第５のコンピュータ読取り可能なプログラムコードの手段と
を備える、請求項３１に記載のコンピュータプログラム製品。
【請求項３８】
前記第３のコンピュータ読取り可能なプログラムコードの手段は、
前記ツリーの前記内部ノードの平均分岐係数を決定するために、前記データ構造を使用するための、第４のコンピュータ読取り可能なプログラムコードの手段と、
該内部ノードの該平均分岐係数が、閾値が約１よりも大きい場合において、該閾値よりも大きい場合には、該ツリーの中の少なくとも１つのホストはワームに感染した可能性のあるホストであるということを示すための、第５のコンピュータ読取り可能なプログラムコードの手段と
を備える、請求項３１に記載のコンピュータプログラム製品。
【請求項３９】
前記第３のコンピュータ読取り可能なプログラムコードの手段は、
前記ツリーの平均伝播時間を決定するために、前記データ構造を使用するための、第４のコンピュータ読取り可能なプログラムコードの手段と、
該平均伝播時間が閾値よりも小さい場合には、該ツリーの中の少なくとも１つのホストはワームに感染した可能性のあるホストであるということを示すための、第５のコンピュータ読取り可能なプログラムコードの手段と
を備える、請求項３１に記載のコンピュータプログラム製品。
【請求項４０】
前記第３のコンピュータ読取り可能なプログラムコードの手段は、
前記データ構造のサブツリーを選択する、第４のコンピュータ読取り可能なプログラムコードの手段であって、該サブツリーは、第１のノード、第２のノード、第３のノード、該第１のノードと該第２のノードとを接続する第１のリンク、および、該第２のノードと該第３のノードとを接続する第２のリンクから成る、該手段と、
該第２のノードによって表されたホストを、前記コンピュータネットワーク上のワームに感染した可能性のあるホストとして識別するために、該サブツリーを使用するための、第５のコンピュータ読取り可能なプログラムコードの手段と
を備える、請求項３１に記載のコンピュータプログラム製品。
【請求項４１】
前記第５のコンピュータ読取り可能なプログラムコードの手段は、前記第１のリンクおよび前記第２のリンクが同じトラフィックビヘービアの発生を示す場合には、前記第２のノードによって表された前記ホストを、アルファインアルファアウトのワームと類似する症状を示すワームに感染した可能性のあるホストとして識別するための、コンピュータ読取り可能なプログラムコードの手段を備える、請求項４０に記載のコンピュータプログラム製品。
【請求項４２】
前記第５のコンピュータ読取り可能なプログラムコードの手段は、前記第１のリンクおよび前記第２のリンクが同じトラフィックビヘービアの発生を示し、該トラフィックビヘービアの発生が、パケットが特定のポートに送信されたということを示す場合には、前記第２のノードによって表された前記ホストを、サーバツークライアントのワームと類似する症状を示すワームに感染した可能性のあるホストとして識別する、コンピュータ読取り可能なプログラムコードの手段を備える、請求項４０に記載のコンピュータプログラム製品。
【請求項４３】
複数のホストが前記コンピュータネットワーク上のワームに感染した可能性のあるホストであるということを示すために、前記データ構造の中の同じトラフィックビヘービアを示した該複数のホストを、該ワームに感染した可能性のあるホストとして識別するための、第４のコンピュータ読取り可能なプログラムコードの手段をさらに備える、
請求項３１に記載のコンピュータプログラム製品。
【請求項４４】
前記第３のコンピュータ読取り可能なプログラムコードの手段は、
トラフィックビヘービアを示すことを禁止されるホストを、前記データ構造の中で選択するための、第４のコンピュータ読取り可能なプログラムコードの手段と、
該ホストが該トラフィックビヘービアを示したか否かを決定するために、該データ構造を使用するための、第５のコンピュータ読取り可能なプログラムコードの手段と、
該ホストが該トラフィックビヘービアを示した場合には、該ホストがワームに感染した可能性のあるホストであるということを示すための、第６のコンピュータ読取り可能なプログラムコードの手段と
を備える、請求項３１に記載のコンピュータプログラム製品。
【請求項４５】
前記第２のコンピュータ読取り可能なプログラムコードの手段は、
前記トラフィックビヘービアの発生をシーケンスに配置するための、第４のコンピュータ読取り可能なプログラムコードの手段と、
該シーケンス中の少なくとも１つのホストに対して、ツリーを表すデータ構造を生成するための、第５のコンピュータ読取り可能なプログラムコードの手段であって、該ツリーの根は該ホストを表す、該手段と、
該シーケンスの中のトラフィックビヘービアの発生を以下のような手順で処理するための、第６のコンピュータ読取り可能なプログラムコードの手段と
を備え、該手順は、
該シーケンスの先頭からトラフィックビヘービアの発生を選択することと、
該トラフィックビヘービアの発生から発生源ホストおよび目的先ホストを識別することであって、該発生源ホストはトラフィックビヘービアを開始し、該目的先ホストは該トラフィックビヘービアの目標であるとする、該識別することと、
該目的先ホストが該ツリーの中にまだ存在せず、かつ、該発生源ホストを表すノードが該ツリーの中に存在する場合には、該目的先ホストをリーフノードとして該ツリーに追加することと、
該シーケンスの先頭から該トラフィックビヘービアの発生を取り除くことと
を含む、請求項３１に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータネットワーク上のコンピュータワームを検出することに関する。
【背景技術】
【０００２】
ネットワーク上のコンピュータは、ネットワークにおける悪質なアクティビティに対して脆弱である。１つのそのような脅威はコンピュータワームである。ワームは、疑いを持たないホストの上に自身をひそかにコピーしランすることによってネットワーク中を１つのホストから別のホストへ広がるプロセスである。ワームが広がり、ますます多くのホストを感染させるときには、ワームが他のホストを集団的に感染させ得る速度は、多くの場合指数的な速度で大きくなる。
【０００３】
ホストの何らかの脆弱性を利用することによって、ワームは、疑いを持たないホストに自身をコピーしランする。ワームはコンピュータプロセスであるので、ホストにおいて悪質なコードを実行する可能性を有している。例えば、ワームは、ファイルを消去し得、または、サービスを拒絶し別のホストを攻撃するために、ホストの処理パワーを使用し得る。さらに、ワームが、自身をますます多くのホストにコピーするにつれて、ワームによって生成されるネットワークのトラフィックは、重大なネットワークの混雑を引き起こし得る。ワームのアクティビティは、ホストおよびネットワークに障害をもたらし得る。
【０００４】
ホストのあらゆる脆弱性を識別し、ワームがそれらの脆弱性を利用する新しい手法を予想することは難しいので、新しいワームの自動的検出はとりわけ困難な課題である。
【０００５】
目下のところ、多くの場合、新しいワームの影響および被害が十分に感知された後に、新しいワームは手動で検出される。いったん新しいワームが発見されると、そのワーム特有の性質が識別され、この性質は、ネットワーク上のその既知のワームの存在を将来検出するために使用される。従って、一般的に、今のシステムは経験的に知られたワームを検出することに限られている。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ワームが大きく広がりすぎる前に、迅速にそれらが検出され収容され得るような、新しいワームを自動的に検出する方法およびシステムが必要とされる。新らたに発生したワームは、瞬く間に何百万ものホストを感染させ得るので、自動的な検出および対処が不可避なものとなりつつある。
【課題を解決するための手段】
【０００７】
本発明は、コンピュータネットワーク上のワームの存在を自動的に検出する方法、装置、コンピュータプログラム製品である。
【０００８】
ワームが別のホストを感染させるためには、ワームは、そのホストと通信せねばならない。従って、ワームが別のホストを感染させるとき、または、感染させようとするときには、トラフィックが生成される。生成されるトラフィック特有の特徴は、トラフィックビヘービアと表現される。
【０００９】
コンピュータネットワーク上のトラフィックは、トラフィックビヘービアの発生を識別するためにモニタされる。トラフィックビヘービアの例は、あらゆるＩＰパケットの伝送、半開きのＴＣＰ接続の存在、および所定のパターンと合致するパケットのシーケンスである。
【００１０】
ワームが伝播し新しいホストを感染させるときには、ワームのアクティビティによって示されるトラフィックビヘービアもまた、現れ、ネットワークを通じて伝播する。
【００１１】
１つ以上のトラフィックビヘービアがネットワーク中に伝播しているか否かを決定するために、識別されたトラフィックビヘービアの発生が、ツリーを表すデータ構造の中に体系化される。ツリーのノードはトラフィックビヘービアを示したホストを表し、ツリーのリンクはトラフィックビヘービアの発生を表す。一部のワームは、複数の脆弱性を利用する能力があり、従って、それらがネットワーク中に広がるときには、複数のトラフィックビヘービアを示し得る。従って、ツリーにおけるリンクのすべてが、同じトラフィックビヘービアを表すとは限らない。データ構造は、ノードおよびリンクの情報の両方を維持することが、明らかに必要でないこともあり得る。すべてのリンクが同じトラフィックビヘービアを表す場合には、データ構造は、各ノードに対する情報およびツリーにおけるその深度を単に維持し得る。
【００１２】
いったんツリーを表すデータ構造が形成されると、可能性のあるワームの存在を検出するために、ツリーの性質が調査される。チェックされる性質の一部は、深度、ノードの数、ツリーの各深度に対する平均的分岐係数（ｂｒａｎｃｈｉｎｇ  ｆａｃｔｏｒ）、ツリーの内部ノードに対する平均的分岐係数、および、ツリーの各深度での最初の子孫（ｄｅｓｃｅｎｄａｎｔ）までの平均伝播時間である。例えば、内部ノードの分岐係数が、小さな閾値（たとえば、４）よりも大きく、かつ、平均伝播時間が１秒よりも十分に小さい場合には、トラフィックビヘービアは、なにか他の悪質でないアクティビティによるというよりもむしろワームによって実際に引き起こされたという強い兆候がある。
【００１３】
さらに、ワームと類似する症状を識別するために、ツリーのサブセットが検査され得る。複数のトラフィックビヘービアによって形成されるツリーにおいては、アルファインアルファアウト（ａｌｐｈａ−ｉｎ  ａｌｐｈａ−ｏｕｔ）およびサーバツークライアント（ｓｅｒｖｅｒ−ｔｏ−ｃｌｉｅｎｔ）のワームと類似する症状の存在は、ワームが存在するという追加の兆候を提供する。いったん、ツリーの中のホストが、ワーム感染した可能性のあるホストとして識別されたならば、そのワーム感染した可能性のあるホストによって示されたのと同じトラフィックビヘービアを示した、ツリーの中の他のホストもまた、潜在的なワーム感染したホストとして識別される。
【００１４】
さらに、ワームの検出をさらに容易にするために、ホストが特定のトラフィックビヘービアのセットを表すべきではないということを示すために、ホストはマークを付され得る。
【発明を実施するための最良の形態】
【００１５】
本明細書において援用され明細書の一部を形成する添付の図面は、本発明を図示し、かつ、本記述と共に本発明の原理を説明し、当業者が本発明を作り使用することにさらに資す。
【００１６】
本発明は添付図面を参照して記述される。エレメントが最初に登場する図は、一般的に、対応する参照番号の一番左端の数字によって示される。
【００１７】
（発明の詳細な説明）
本明細書に記載される発明の実施形態は、特に、および例えば、ワームに関するものであるが、ウィルス、Ｅメールウィルス、または、通信システムにおいてそれ自身を伝播する能力があるかもしくは移動性ロジックと関連するプロセスである全ての他のロジックを、それに限るものではないが、含む、他の移動性ロジックに対しても均等に適用可能であるということが、当業者には容易に明確に理解される。
【００１８】
（例示的なネットワークの構成要素）
図１は、コンピュータネットワークの例を図示し、それは、インターネット１００、ルータ１９０、スイッチ１８０および１８２、センサ１９２〜１９６、ホスト１１０〜１２８、および、ネットワーク接続１４０〜１７０を含む。図１のコンピュータネットワークは、パケットを基本とするネットワークであって、例えば、国際標準機構（ＩＳＯ）のオープンシステム相互接続（ＯＳＩ）７層プロトコルスイートに従うＴＣＰ／ＩＰのパケットを用いるネットワークを表す。ネットワーク接続１４０〜１７０は、例えば、ＯＳＩ第１層および第２層に相当するイーサネット（登録商標）接続であり得る。ホストは、ネットワークを介してインターネットプロトコル（ＩＰ）パケットを送信することによって互いに通信する。例えば、ホスト１１０がホスト１２６と通信を望む場合には、ネットワーク接続１４０、１４２、１４６および１６２、インターネット１００、ルータ１９０、ならびに、スイッチ１８２を介して、ホスト１１０はパケットを送信する。この経路に沿うどこにおいても、ホスト１１０と１２６との間のトラフィックはモニタされ得る。
【００１９】
センサ１９２〜１９６の各々は、本発明の実施形態の物理的インプリメンテーションをネットワーク上に置かれるスタンドアロンのデバイスとして表す。しかしながら、本発明は、ルータ、スイッチまたはホストのような、ネットワークトラフィックをモニタすることが可能な、任意のネットワークデバイスまたはコンピュータ上でランするようにインストールされ得る。
【００２０】
図１において、センサ１９２は、スイッチ１８０を通過する全てのパケットを見るように構成され、センサ１９６は、スイッチ１８２を通過する全てのパケットを見るように構成され、センサ１９４は、ルータ１９０を通過する全てのパケットを見るように構成される。センサ１９２〜１９６は、ネットワークトラフィック情報を共有するために互いに通信し得る。
【００２１】
（ワームの性質）
一般的には、ワームは、リモートのホスト上の何らかの脆弱性を利用して、そのリモートのホストに自身のコピーを送信する。このアクティビティは、ネットワークにトラフィックを生じる。このトラフィックの顕著な特徴はトラフィックビヘービアとして表現される。
【００２２】
例えば、ワームは、標的とするホスト上のネットワークサービスのバッファオーバーフローの脆弱性をしばしば利用する。バッファオーバーフローを利用するために、感染したホスト上のワームは、クライアントとして振る舞い、標的とするホスト上のネットワークサービスとのＴＣＰ接続を開始する。その後、ワームクライアントは、ネットワークサービスのバッファオーバーフローの脆弱性を利用するために、注意深く工夫されたデータパケットを送信し、標的のホストを感染させる。いったん標的のホストが感染されると、ワームクライアントはＴＣＰ接続を破壊しようとする。しかしながら、バッファオーバーフローの後ではソケットを回復することがむずかしいので、一般的には、標的のホストは、ＴＣＰ接続の自分側を適切にシャットダウンすることはできない。従って、ワームクライアントがバッファオーバーフローの脆弱性を利用する場合には、普通、半開きのＴＣＰ接続が残る。この例においては、半開きのＴＣＰ接続の形成は、このワームがホストを感染させた場合に示されるトラフィックビヘービアとして表現され得る。
【００２３】
トラフィックビヘービアは、あるホスト上のワームが別のホストを感染させる場合、または、感染させようとする場合に示されるトラフィックの、あらゆる特徴を表現する。最も単純なトラフィックビヘービアは、あるホストから別のホストに送信された単一のパケットの存在である。別のトラフィックビヘービアは、特定のポートへのＵＤＰパケットの送信であり得る。より複雑なトラフィックビヘービアは、半開きのＴＣＰ接続の存在であり得る。
【００２４】
トラフィックビヘービアは、ワームトラフィックにユニークでないことがあり得、また、正常なトラフィックによっても示され得る。例えば、半開きのＴＣＰ接続は、バッファオーバーフローの利用ではない他の理由に対して起こり得る。従って、たった１つのトラフィックビヘービアの存在だけでは、ワームの存在を指摘し得ない。しかしながら、ワームの伝播に似た様態でネットワーク中を伝播する特定のトラフィックビヘービアが目撃された場合には、トラフィックビヘービアは、正常なトラフィックによってというよりはワームによって生じたと考えられる。
【００２５】
ワームの伝播は、ツリー（すなわち、ツリーのようなデータ構造）にグラフ化され（すなわち、ツリーとして表され）得る。ツリーの内部ノードは、感染したホストを表し、リーフノードは、感染したノードまたはワームが感染させようとしたが失敗したホストを表す。ワームは様々な理由で失敗し得る。例えば、ワームが、存在しないホストを標的にしたということがあり得る。ワームが無作為に作成されたＩＰアドレスによってホストを感染させようとしている場合には、この状態が起こり得る。感染が失敗する別の可能性のある理由は、その攻撃に対して脆弱ではないホストを標的にしたということがあり得る。親ノードから子ノードへのツリーにおけるリンクは、親ノードが子ノードを感染させたかまたは感染させようとした、ということを示す。ワームの伝播をツリーに体系化することにおいては、再感染を表すリンクは省略され、グラフの中で循環が形成されることを防ぐ。
【００２６】
例えば、図２は、図１に示される例示的なネットワークを介するワームの伝播を示す。ホスト２４０が最初に感染され、ホスト２４２を感染させる。矢印２００〜２２２は、ワームが、例えばＯＳＩ第３層で、伝播した方向を示す。ホスト２４０〜２５８は、感染した実際のホストである。ホスト２６０〜２６６は、ワームが感染させることができなかった実際のホストであるか、または、ワームによって標的にされたが存在しないホストであるかのいずれかである。
【００２７】
上述のように感染の発生をツリー構造に体系化することによって、ワームの特有の伝播特性が明らかにされる。例えば、一般的には、感染したホストの各々は、他のホストを感染させようとするので、ワームの分岐係数は概ね１よりも大きく、一般的には、子孫の数は、ツリーのある深度から次の深度へ指数的に大きくなる。さらに、非常に攻撃的なワームに対しては、ツリーの深度は非常な速さで成長し得る。
【００２８】
（ワームの存在の検出）
本発明は、新しいホストを感染させる場合にワームがトラフィックビヘービアを生成するという知見、および、特有の伝播特性をワームが示すという知見を使用して、新しいワームの存在を検出する。
【００２９】
ワームは、脆弱性を利用するために１つ以上の手法を使用し得る。さらに、ワームは異なる脆弱性を利用し得る。手法と利用される脆弱性との組合わせの各々に対して、異なるトラフィックビヘービアが起こり得る。しかしながら、一般的には、ワームは数個の手法および脆弱性しか知らず、トラフィックビヘービアのセットは、ワーム各々について有限である。
【００３０】
図３は、ワームがホストからホストへ伝播するときのトラフィックビヘービアの発生を示す。ホスト３０１はワームに感染している。ホスト３０１上のワームはホスト３０２とのトラフィック３１０を開始する。トラフィック３１０は、ホスト３０２の脆弱性を利用しそれを感染させるメカニズムを含む。いったんホスト３０２が感染させられると、ホスト３０２はホスト３０３とのトラフィック３１１を開始する。トラフィック３１１は、ホスト３０３における同じまたは別の脆弱性を利用する同じまたは別のメカニズムを含む。トラフィック３１０の顕著な特徴はトラフィックビヘービア３２０として表される。トラフィック３１１の顕著な特徴はトラフィックビヘービア３２１として表される。
【００３１】
トラフィックビヘービアの存在は、ワームに感染した可能性のあるホストを識別するためのヒントを提供し得る。一般的には、多くのワームは、たった１つだけの脆弱性を利用するので、従って、新しいホストを感染させるときはいつでも同じトラフィックビヘービアを生成する。従って、ホストがあるトラフィックビヘービアの標的であり、そのホストが他のホストを同じトラフィックビヘービアで標的にし始めた場合には、そのホストはワームによって感染させられた可能性がある。このワームと類似する症状は、アルファインアルファアウトと呼ばれ、トラフィックビヘービア３２０と３２１とが同じの場合には、図３に示される。トラフィックビヘービア３２０と３２１とが同じの場合には、ワームが、ホスト３０１からホスト３０２に、そして、ホスト３０２からホスト３０３に広がったという強い兆候がある。
【００３２】
さらに、可能性のある新しい標的にクライアント接続を積極的に作ることによって、多くのワームが新しいホストを探し出す。これらの標的はサーバである。サーバが攻撃され感染させられた場合には、新しく感染した標的ホスト上のワームは、他のホストを感染させようとする。結果として、感染した標的のホストはクライアントのように振る舞い始める。従って、ホストが、最初はトラフィックビヘービアに対してサーバとして振る舞い、その後同じトラフィックビヘービアに対してクライアントとして振舞う場合には、これらのトラフィックビヘービアの存在は、ホストがワームによって感染させられたということを示し得る。このワームと類似する症状はサーバツークライアントと呼ばれ、トラフィックビヘービア３２０と３２１とが同じであり、かつ、特定のポートのクライアント接続を表す場合には、図３において示される。例として、トラフィックビヘービア３２０および３２１が、ポート８０へのクライアントツーサーバ接続を表すとする。ホスト３０２は、トラフィックビヘービア３２０に対してはサーバとして振る舞い、トラフィックビヘービア３２１に対してはクライアントとして振舞う。ホスト３０２は、サーバツークライアントのワームと類似する症状を示すと言われる。
【００３３】
上で検討したように、単一のホストに到着し単一のホストを出発するトラフィックビヘービアを検出することは、ワームの存在を明らかにし得る。しかしながら、トラフィックビヘービアがネットワーク中をワームと類似するやり方で伝播するのが目撃された場合には、ワームがホストを感染させつつあり得るという強い兆候がある。
【００３４】
識別されたトラフィックビヘービアの発生は、特定のトラフィックビヘービアまたは一式のトラフィックビヘービアのネットワーク上の伝播を明らかにするために、ツリーグラフの中に体系化され得る。検出されたトラフィックビヘービアの発生の各々に対して、発生源のホストおよび目的先のホストが識別される。発生源ホストはトラフィックビヘービアを開始したホストである。目的先ホストはトラフィックビヘービアの標的である。ツリーが空白である場合には、発生源ホストを表すノードはツリーの根として追加される。発生源ホストがツリーに存在しかつ目的先ホストが存在しない場合には、目的先ホストがツリーの発生源ホストに対する子のノードとして追加される。発生源ホストがツリーにない場合には、トラフィックビヘービアがツリーにすでに存在するホストから伝播したという兆候はないので、目的先ホストは追加されない。目的先ホストがすでにツリーの中に存在する場合にもやはり、それはツリーに追加されない。そのトラフィックビヘービアまたはツリーの中にグラフ化されているトラフィックビヘービアが、実際にワームトラフィックを表した場合には、ツリーの中の目的先ホストの存在は、再感染を示す。
【００３５】
いったんトラフィックビヘービアの発生がツリーに体系化されると、トラフィックビヘービアが、ワームと類似する伝播に似た様態でホストを介して伝播したかどうかを決定するために、ツリーの特性が調査される。伝播がワームと類似する伝播の特性を有する場合には、本発明は、ホストがワームによって感染したことがあり得るということを示す。
【００３６】
ツリーがワームと類似する伝播を示すかどうかの決定においては、いくつもの異なる比較またはテストがツリーについて実行され得る。
【００３７】
ツリーの深度がある閾値よりも大きい場合には、トラフィックビヘービアが、ある閾値深度にまで伝播しており、従って、ホストがワームによって感染させられているということを示し得る。
【００３８】
ツリーの中のノードの数がある閾値よりも大きい場合には、トラフィックビヘービアはある閾値ホスト数にまで伝播しており、従って、ホストがワームによって感染されているということを示し得る。
【００３９】
ツリーの各深度の平均分岐係数は、Σ（Ｄｉ＋１／Ｄｉ）／ＦＤで定義され、ここで、Σは、１＜ｉ＜（ＦＤ−１）の範囲での総和であり、Ｄｉは、ツリーの深度ｉでの子孫の数、ＦＤは、ツリーの深度でありＦＤは１よりも大きい。ツリーの各深度の平均分岐係数が約１よりも大きい場合には、ツリーは指数的に成長しており、従って、ホストがワームによって感染されているということを示し得る。
【００４０】
ツリーの内部ノードの平均分岐係数は、全てのｘについての、Σ（Ｄ（ｘ））／Ｎで定義され、ここで、Ｄ（ｘ）は内部ノードｘの子ノードの数であり、Ｎは内部ノードの数である。ツリーの内部ノードの平均分岐係数が約１よりも大きい場合には、ツリーは指数的に成長しており、従って、ホストがワームによって感染されているということを示し得る。
【００４１】
ある世代から次の世代へのツリーの平均伝播時間が、（ｔｉｍｅ（ＦＤｎ）−ｔｉｍｅ（ＦＤ１））／（ｎ）で定義され、ここで、ｔｉｍｅ（ＦＤｉ）が深度ｉにおいて最初の子がツリーに追加される時刻である場合であって、平均伝播時間がある閾値よりも小さい場合には、ツリーはある閾値よりも速く成長しており、従って、ホストがワームによって感染されているということを示し得る。
【００４２】
トラフィックビヘービアの伝播を調査することは、ワームを検出するための強力なメカニズムである。例えば、図４および図５は、特定のトラフィックビヘービアに対するワームのトラフィックと正常なトラフィクとの間での比較を示す。両図において検出されるトラフィックビヘービアは、１つのホストから別のホストへの任意のＩＰパケットの送信である。このトラフィックビヘービアの発生は、正常なトラフィックに対してネットワーク上で検出され、上述のようにツリーに体系化された。同様にして、このトラフィックビヘービアの発生が、またワームトラフィックに対して検出され、別のツリーに体系化された。
【００４３】
図４においては、ツリーの各深度での子孫の数が、正常なトラフィック４０１とワームトラフィック４０２との両方についてグラフ化されている。通常は、正常なトラフィック４０１についての子孫の数は、ある深度までは増大し、その後時間の経過とともに減少する。しかしながら、ワームトラフィック４０２に対しては、子孫の数は着実に増大し、ワームが指数的に成長しているということを示す。
【００４４】
図５においては、ツリーの各深度における第１番目のノードに到達する時間の長さが、正常トラフィック５０１とワームトラフィック５０２との両方に対してグラフ化されている。正常トラフィックに対して、子孫の数は、深度が増すにつれて最終的には減少する。従って、ツリーのより深い深度に到達するための正常トラフィック５０１が要する時間の長さは、一般的には指数的に大きくなる。しかしながら、ワームトラフィック５０２は一般的には迅速に広がり、伝播の初期段階では、ワームが他のホストを感染させるために要する時間は小さくかつほぼ一定である。従って、ワームの伝播の初期段階においては、ワームは新しい深度にほぼ一定の早い速度で到達する。ワームトラフィック５０２の直線的な傾きは、自動化されたプロセスがその成長のペースを制御していることを示す。
【００４５】
図４と図５は、いかにしてＩＰパケットがネットワークを伝播するかという関係を単に調べることが、ネットワーク上にワームが存在するか否かを決定するための効果的な手段であるということを示す。
【００４６】
しかしながら、ＩＰパケットが送信されたということを単に示すよりもさらに特徴的なトラフィックビヘービアのほうが、１つ以上のホストがワームによって感染したという、より強い兆候を生成する可能性が高い。
【００４７】
さらに、コンピュータネットワーク上のワームの検出をさらに容易にするために、ホストは、特定のセットのトラフィックビヘービアを表さない（例えば、あるポリシーに基づいて）ということを示すためにマークを付され得る。トラフィックビヘービアの発生が検出されたときに、禁止されたトラフィックビヘービアを表しているとホストが識別された場合には、そのホストはワーム感染した可能性のあるホストとして識別され得る。トラフィックビヘービアの伝播を表示するツリーグラフにおいては、トラフィックビヘービアを表すべきでないホストの存在は、ツリーグラフのそのホストがワームによって感染した可能性があるというより強い兆候を提供し得る。
【００４８】
例えば、ホストをサーバとして含むあらゆるトラフィックビヘービアをそのホストが表すべきでないということを示すように、ホストはマークされ得る。同様に、ホストをクライアントとして含むあらゆるトラフィックビヘービアをそのホストが表すべきでないということを示すように、ホストはマークされ得る。この様にホストにマークを付すことは、コンピュータネットワーク上のホストがワームによって感染したという可能性を決定することを容易にする。
【００４９】
ワームの伝播を検出するために、異なるタイプのトラフィックビヘービアが１つだけのツリーにグラフ化された場合には、ツリーにアルファインアルファアアウトおよびサーバツークライアントのワームと類似する症状が存在することは、ワームが存在するというさらなる兆候を提供し得る。ツリーの中にワーム感染した可能性のあるホストが識別された場合には、同じトラフィックビヘービアを表す、ツリーの中の他のホストもワーム感染したホストである、という強い可能性がある。
【００５０】
いったんホストがワーム感染した可能性のあるホストとして識別されると、そのホストは隔離され得る。たとえば、全てのまたは特定のタイプのＩＰパケットを、それが送信または受信し得ないように、そのホストは分離され得る。そのホストはまた、離れたバーチャルＬＡＮ（ＶＬＡＮ）区画に置かれ得る。
【００５１】
小さなセンサが１つの領域だけをモニタし、大きなセンサが複数の領域をモニタするという、異なるセンサによってネットワークの一部分が細かく分割される場合の構成においては、小さなセンサがホストをワーム感染した可能性のあるホストとして識別する場合には、そのホストはより大きなセンサにさらなる観察のために委ねられ得る。大きなサーバはより多くのトラフィックをモニタし得るので、より詳細にトラフィックビヘービアの伝播を観察することが可能であり得る。
【００５２】
（さまざまなトラフィックビヘービア）
１つのホスト上のワームが別のホストを感染し、または感染しようとする場合に生成される任意のトラフィックの特徴を、トラフィックビヘービアは表現する。トラフィックビヘービアの発生は、ネットワークトラフィックをモニタし、パケットのシーケンスを所定のパターンと比較することによって識別され得る。
【００５３】
以下は所定のパターンの例であり、このパターンは、パケットのシーケンスと合致させて、ワームによって一般的に示されるトラフィックビヘービアの発生を検出するために使用され得る。Ｐｎａｍｅはパターンを示し、ａおよびｂはホストを表す。
Ｐｂａｓｅ  ｃａｓｅ＝ａが任意のＩＰパケットをｂに送信する
Ｐｅｃｈｏ＝ａがＩＣＭＰエコーリクエストをｂに送信する
Ｐｈａｌｆ−ｏｐｅｎ  ＴＣＰ  ｃｏｎｎｅｃｔｉｏｎ＝
−ａがＴＣＰ  ＳＹＮパケットをｂのあるポートに送信する
−ｂがＳＹＮ  ＡＣＫパケットでａに応答する
−ａがＴＣＰ  ＦＩＮパケットをｂに送信する
−ｂがＴＣＰ  ＲＳＴまたはＴＣＰ  ＦＩＮのパケットをａに返信しない
Ｐｆａｎｏｕｔ＝
−ａが任意のＩＰパケットをｂに送信する
−以下のいずれか１つ：
−ｂがＴＣＰ  ＲＳＴパケットでａに応答する
−ＩＣＭＰホストｂ未到着メッセージがａに戻される
−ｂからの応答なくタイムアウトとなる
Ｐａｔｔａｃｋ  ａｎｄ  ｄｏｗｎｌｏａｄ  ｆｒｏｍ  ｔｈｉｒｄ  ｐａｒｔｙ＝
−ａが任意のＩＰパケットをｂに送信する
−ｂがパケットを固定の、周知のホストｃに送信する
−ｃがパケットをｂに送信する。
【００５４】
以下は所定のパターンの例であり、このパターンは、パケットのシーケンスと合致させて、一部のヒストリカルなワームによって一般的に示されるトラフィックビヘービアの発生を検出するために使用され得る。Ｐｎａｍｅはパターンを示し、ａ、ｂおよびｃはホストを表す。
ＰＬｉｏｎＷｏｒｍ＝
−ａがｂのポート８０とのＴＣＰ接続を立ち上げかつ切断する
−ａがｂとの別のＴＣＰ接続を立ち上げ、その接続において：
−ａが少なくとも１つのパケットをｂに送信する
−ｂが接続の自分の側を閉じない
−ｂがｃにコンタクトする
−ｃがＬｉｏｎ  Ｗｏｒｍのソースコードを少なくとも１つのペイロードでｂに送信する
ＰＳｌａｍｍｅｒ＝
−ａがＵＤＰパケットをｂのポート１４３４に送信する
ＰＢｌａｓｔｅｒ＝
−ａがｂのＴＣＰポート１３５に接続する
−ｂが接続の自分の側を閉じない
−ｂがＵＤＰパケットをａのポート６９に送信する
−ａがＵＤＰパケットでｂに応答する
ＰＷｅｌｃｈｉａ＝
−ａがエコーリクエストをｂに送信する
−ｂがエコーに対する応答をａに送信する
−ａがｂのＴＣＰポート１３５に接続する
−ｂがＵＤＰパケットをａの６６６と７６５との間のポートに送信する
−ａがＵＤＰパケットでｂに応答する
ＰＳａｓｓｅｒ＝
−ａがｂのポート４４５とのＴＣＰ接続を立ち上げる
−ｂが接続の自分の側を閉じない
−ａがｂのポート９９９６とのＴＣＰ接続を立ち上げる
−ｂがａのポート５５５４との接続を立ち上げる。
【００５５】
（実施形態の例）
本発明の方法は、ルータ、スイッチ、または、プロキシサーバのようなネットワークトラフィックをモニタリング可能な任意のネットワークデバイスに組み込まれ得る。さらに、本発明の方法は、スタンドアロンのネットワーク器具を形成するためにネットワークインターフェースを含む汎用コンピュータと組み合わされ得る。さらに、本発明の方法は、ネトワークに接続される任意のコンピュータのホスト上で稼動し得る。
【００５６】
図６は、本発明の実施形態がネットワークトラフィックをモニタするために利用し得る、１つの手法を示す。パケットトレース６００は、例えば、ティーシーピーダンプ（ｔｃｐｄｕｍｐ）のようなパケットスニファ（ｐａｃｋｅｔ  ｓｎｉｆｆｅｒ）を利用することによって、ネットワークトラフィクから得られる。パケットトレースはパケットの記録であり、特にパケットの発生源および目的先のホストを含み得る。例えば、パケットトレース６０１は発生源ホストの識別子ｈ１および目的先ホストの識別子ｈ２を含む。ある期間に対して、ネットワーク上のパケットがパケットトレースとして収集され、フィーチャーウィンドウ６０４の中にグループ化される。フィーチャーウィンドウ内のパケットトレースのサブセットは、レコードウィンドウ６０２のパケットトレースとして選択される。レコードウィンドウ６０２のパケットトレースにおける各ホストに対して、ツリー状のデータ構造（そこでは、ホストはツリーの根である）が、モニタされるトラフィックビヘービアの各々に対して作られる。次に、モニタされたトラフィックビヘービアの発生を検出するために、フィーチャーウィンドウ６０４のパケットトレースが順にチェックされる。トラフィックビヘービアの発生が検出された場合には、そのトラフィックビヘービアに関連する全てのツリー状のデータ構造が更新され、ワームの伝播の態様に似たトラフィックビヘービアの伝播がネットワーク全体の中にあるか否かを決定する。
【００５７】
図７は、ある特定のトラフィックビヘービアに対するトラフィックビヘービアの発生を体系化するために使用される、子孫マトリクス（ｄｅｓｃｅｎｄａｎｔｓ  ｍａｔｒｉｘ）と呼ばれるツリー状データ構造の１つの実施形態を示す。子孫マトリクス７００はポートのベクトル（すなわちリンクされたリストまたはアレイまたはハッシュテーブル）７０１を含む。ベクトル７０１の各エレメントは、深度のベクトル（すなわちリンクされたリストまたはアレイまたはハッシュテーブル）に対するリンクを含む。ベクトル７０２、７０４、および、７０６は深度ベクトルの例である。深度のベクトルは、特定のポートで開始されたトラフィックビヘービアを示した全てのホストを含む。深度のベクトルの各エレメントは、７１０〜７３４のようなホストノードのリンクされたリスト（すなわちベクトルまたはアレイまたはハッシュテーブル）を含む。深度のベクトルは、ある深度のホストがそれ以前の深度のホストとのトラフィックビヘービア示したということを示す。例えば、深度４の全てのホスト７１８〜７２２は、深度３のホスト７１０〜７１６のうちの少なくとも１つとのトラフィックビヘービアを示した。従って、特定の深度のホストノードは、それ以前の深度の各々におけるホストがトラフィックビヘービアを示した以降にのみ、そのホストがトラフィックビヘービアを示したということを示す。深度のベクトルの中のホストノードの位置は、そのホストがトラフィックビヘービアを示した、ツリーの深度を示す。
【００５８】
いったんフィーチャーウィンドウ６０４のパケットトレースから検出された全てのトラフィックビヘービアの発生が、子孫マトリクスのようなツリー状のデータ構造に体系化されると、トラフィックビヘービア発生の伝播がワームと類似する伝播を示しているか否かを決定するために、ツリー状のデータ構造の各々が調査される。例えば、ツリーの深度、ツリーの中のノードの数、ツリーの各深度に対する平均分岐係数、ツリーの内部ノードに対する平均分岐係数、および、ツリーの平均伝播時間が、計算され、ワームの存在があり得るか否かを決定するために閾値と比較され得る。ツリー状のデータ構造の調査がワームの存在の可能性を示す場合には、ツリー状のデータ構造の中のホストは、ワームに感染した可能性のあるホストとして識別される。ワーム感染した可能性のあるホストは、上述した対策を利用して自動的に隔離され得る。さらに、ワーム存在の可能性が検出されたということを示すために、例えば、ｅメールを介して、自然人のコンピュータディスプレイおよび他の警告メカニズムに表示される通知を、ネットワークの管理者のような自然人に、本発明は通知し得る。
【００５９】
図８は、本発明がプログラマブルコードとしてインプリメントされ得る例としてのコンピュータシステム８００を示す。本発明の様々な実施形態が、この例のコンピュータシステム８００に関して記述される。この記述を読んだ後には、他のコンピュータシステムおよび／またはコンピュータアーキテクチャを使用して本発明をインプリメントする方法が、当業者に明らかとなる。
【００６０】
コンピュータシステム８００はプロセッサ８０４のような１つ以上のプロセッサを含む。プロセッサ８０４は、それに限定するものではないが、特別な目的または汎用のディジタル信号プロセッサを含む、任意のタイプのプロセッサであり得る。プロセッサ８０４は通信インフラストラクチャ８０６（例えば、バスまたはネットワーク）に接続される。様々なソフトウェアインプリメンテーションがこの例示的なコンピュータシステムに関して記述される。この記述を読んだ後には、他のコンピュータシステムおよび／またはコンピュータアーキテクチャを使用して本発明をインプリメントする方法が、当業者に明らかとなる。
【００６１】
コンピュータシステム８００は、好ましくはランダムアクセスメモリ（ＲＡＭ）のメインメモリ８０８をも含み、および、補助メモリ８１０をも含み得る。補助メモリ８１０は、例えば、ハードディスクドライブ８１２、および／または、フロッピー（登録商標）ディスクドライブ、磁気テープドライブ、光ディスクドライブなどを表す、リムーバブルストレージドライブ８１４を含み得る。リムーバブルストレージドライブ８１４は、周知の方法で、リムーバブルストレージユニット８１８から読み取り、および／または、リムーバブルストレージユニット８１８に書き込む。リムーバブルストレージユニット８１８は、フロッピー（登録商標）ディスク、磁気テープ、光ディスクなどを表し、それらは、リムーバブルストレージドライブ８１４によって読み取られ、書き込まれる。理解されるように、リムーバブルストレージユニット８１８は、その中に格納されたコンピュータのソフトウェアおよび／またはデータを有する、コンピュータが利用可能な記憶媒体を含む。
【００６２】
代替的なインプリメンテーションにおいては、コンピュータプログラムまたは他の命令がコンピュータシステム８００の中にロードされることを可能とする他の類似の手段を、補助メモリ８１０は含み得る。そのような手段は、例えば、リムーバブルストレージユニット８２２およびインターフェース８２０を含み得る。そのような手段の例は、プログラムカートリッジおよびカートリッジインターフェース（ビデオゲームのデバイスにおいて見られるような）、リムーバブルメモリチップ（ＥＰＲＯＭまたはＰＲＯＭのような）および付随のソケット、ならびに、ソフトウェアおよびデータがリムーバブルストレージユニット８２２からコンピュータシステム８００に伝送されることを可能とする、他のリムーバブルストレージユニット８２２およびインターフェース８２０を含み得る。
【００６３】
コンピュータシステム８００は通信インターフェース８２４をも含み得る。通信インターフェース８２４は、ソフトウェアおよびデータがコンピュータシステム８００と外部デバイスとの間を伝送されることを可能とする。通信インターフェース８２４の例は、モデム、ネットワークインターフェース（イーサネット（登録商標）カードのような）、通信ポート、コンピュータメモリカードインターナショナルアソシエーション（ＰＣＭＣＩＡ）のスロット、およびカードなどを含み得る。通信インターフェース８２４を経由して伝送されるソフトウェアおよびデータは、通信インターフェース８２４によって受信されることが可能な、電子的な、電磁気的な、光の、または、他の信号であり得る、信号８２８形式である。これらの信号８２８は、通信経路８２６を経由して通信インターフェース８２４に提供される。通信経路８２６は、信号８２８を運び、ワイヤまたはケーブル、光ファイバ、電話線、セルラー電話リンク、ラジオ周波数リンク、または、任意の他の適切な通信チャネルを使用してインプリメントされ得る。例えば、通信経路８２６はチャネルの組み合わせを使用してインプリメントされ得る。
【００６４】
この明細書においては、「コンピュータプログラム媒体」および「コンピュータ利用可能な媒体」という用語は、概して、リムーバブルストレージデバイス８１４、ハードディスクドライブ８１２にインストールされるハードディスク、および、信号８２８に関して使用される。これらのコンピュータプログラム製品は、コンピュータシステム８００にソフトウェアを提供するための手段である。
【００６５】
コンピュータプログラム（コンピュータ制御ロジックとも呼ばれる）はメインメモリ８０８および／または補助メモリ８１０に格納される。コンピュータプログラムは、通信インターフェース８２４を経由しても受信され得る。そのようなコンピュータプログラムは、実行された場合には、コンピュータシステム８００が本明細書で検討された本発明をインプリメントすることを可能とする。従って、そのようなコンピュータプログラムはコンピュータシステム８００のコントローラを表す。本発明がソフトウェアを使用してインプリメントされる場合には、ソフトウェアはコンピュータプログラム製品に格納され、いくつかの例をあげるならば、リムーバブルストレージドライブ８１４、ハードディスクドライブ８１２、または、通信インターフェース８２４を使用してコンピュータシステム８００の中にロードされる。
【００６６】
代替的な実施形態においては、本発明は、ハードウェアの制御ロジック、ファームウェア、もしくは、ソフトウェアまたはそれらの任意の組み合わせとしてインプリメントされ得る。
【００６７】
本発明の様々な実施形態が上述されたが、それらは例示的にのみ提示され、限定的に示されたのではないということが理解されるべきである。本発明の意図および範囲から逸脱することなく、形式および詳細における様々な変更がその中で為され得るということが、当業者にとっては明らかである。従って、本発明の広さおよび範囲は、上述の例示的な実施形態のいずれによっても限定されるべきではなく、特許請求の範囲およびそれらの均等物に従ってのみ規定されるべきである。
【図面の簡単な説明】
【００６８】
【図１】図１は、コンピュータネットワークの例を示す。
【図２】図２は、図１に示される例示的なネットワークを介するワームの伝播を示す。
【図３】図３は、ワームがホストからホストに伝播するときのトラフィックビヘービアの発生を示す。
【図４】図４は、トラフィックが深度ごとに集積する子孫の数に関する、ワームトラフィックと正常トラフィックとの間の比較を示す。
【図５】図５は、トラフィックが特定の深度に伝播するために要する時間の長さに関する、ワームトラフィックと正常トラフィックとの間の比較を示す。
【図６】図６は、ネットワークトラフィックをモニタリングする１つの手法を示す。
【図７】図７は、トラフィクビヘービアの発生をツリー状の構造に体系化するために使用される、データ構造の１つの実施形態を示す。
【図８】図８は、本発明がプログラマブルコードとしてインプリメントされ得る、例示のコンピュータシステムを示す。
【図１】
2008518323.tif 000002
【図２】
2008518323.tif 000003
【図３】
2008518323.tif 000004
【図４】
2008518323.tif 000005
【図５】
2008518323.tif 000006
【図６】
2008518323.tif 000007
【図７】
2008518323.tif 000008
【図８】
2008518323.tif 000009