(57)【特許請求の範囲】
【請求項１】
ネットフローデータを収集するための装置であって、
一又はそれ以上のプロセスを実行するように適応したプロセッサーと、
該プロセッサーによって実行可能なプロセスを格納するように構成されたメモリとからな
り、
該プロセスが、実行時に、
前記装置を介して、少なくとも一つのネットワーク機器から、複数のフローレコードであって各フローレコードが少なくとも送信元インターネットプロトコル（ＩＰ）アドレスと宛先ＩＰアドレスを有するフローレコードを受け取り、
前記装置を介して、該受け取られたフローレコードからデータを抽出して、ブロックデータ構造にするが、該ブロックデータ構造が複数の個別の要素を含み、各要素が、それぞれのフローレコードから抽出された送信元インターネットプロトコル（ＩＰ）アドレスと宛先ＩＰアドレスを含むデータと、前記複数の個別の要素のそれぞれのインデックスとを格納しており、
前記装置を介して、前記ブロックデータ構造内の前記個別の要素を、前記複数の個別の要素のそれぞれのインデックスを並べ替えることによってソートするが、ソート順が行われるべき処理の種別によって決められており、
前記装置を介して、前記ソートした個別の要素に従って前記ブロックデータ構造をデータストリームとして処理し、少なくとも同じ送信元ＩＰアドレス又は宛先ＩＰアドレスを示すフローレコードの数に基づいてネットワーク使用のパターンを識別する
ように行われる装置。
【請求項２】
前記ブロックデータ構造が固定サイズを有し、前記プロセスが、実行時に、前記ブロックデータ構造内の前記個別の要素をソートする前に、いつ前記ブロックデータ構造が一杯になるか決定するように行われる請求項１に記載の装置。
【請求項３】
前記プロセスが、前記ブロックデータ構造内の前記個別の要素をソートする実行時に、更に前記抽出されたデータのビットパターンに基づいて前記個別の要素をソートするように行われる請求項２に記載の装置。
【請求項４】
前記プロセスが、前記ブロックデータ構造内の前記個別の要素をソートする実行時に、更に前記ソートされたブロックデータ構造を出力ブロックファイルに追加するように行われる請求項３に記載の装置。
【請求項５】
前記プロセスが、前記複数のフローレコードの受け取りを実行するときに、所定の時間ウィンドウ内に複数のフローレコードを受け取るように行われる請求項４に記載の装置。
【請求項６】
前記プロセスが、実行時に更に、繰り返し前記受け取ったフローレコードからデータを抽出してブロックデータ構造にし、前記ブロックデータ構造内の個別の要素をソートしてブロックデータ構造を満たし、該満たされたブロックデータ構造をソートし、前記所定の時間ウィンドウ内に前記複数のフローレコードについて、前記ソートされたブロック構造を前記ブロックファイルに追加するように行われる請求項５に記載の装置。
【請求項７】
前記プロセスが、実行時に更に、前記ブロックファイル内の前記複数の要素のマージソートを実施し、前記ソートされた要素のデータストリームを出力するように行われる請求項６に記載の装置。
【請求項８】
前記個別の要素がＮタプルであり、ただし、Ｎがフローレコードから抽出されたデータエンティティの数であり、前記ブロックデータ構造がタプルブロックである請求項１に記
載の装置。
【請求項９】
前記インデックスが、それぞれが前記タブルブロック内の各々の個別のＮタプルの位置を識別するインデックスの配列を備える請求項８に記載の装置。
【請求項１０】
前記プロセスが、実行時に更に、前記フローレコードのネットワークアドレス及びネットワークポート間の関連性を識別し、前記識別された関連性に基づいて、分散型サービス妨害攻撃及び／又はポートスキャン攻撃を示す１つ又は複数のフローレコードを識別するように行われる請求項９に記載の装置。
【請求項１１】
前記プロセスが、実行時に更に、単一の送信元ネットワークアドレスに関連している宛先ネットワークアドレス及びネットワークポートの最大数、及び単一の宛先ネットワークアドレスに関連している送信元ネットワークアドレス及びネットワークポートの最大数に従って、前記決定された結果をランク付けすることによって関連性を識別するように行われる請求項１０に記載の装置。
【請求項１２】
前記プロセスが、実行時に更に、ランク付けされた情報を出力するように行われる請求項１１に記載の装置。
【請求項１３】
コード化されたソフトウェアを記録した有形の非一時的なコンピュータ読み取り可能な記録媒体であって、前記ソフトウェアが、プロセッサーによる実行時に、
少なくとも一つのネットワーク機器から、複数のフローレコードであって各フローレコードが少なくとも送信元インターネットプロトコル（ＩＰ）アドレスと宛先ＩＰアドレスを有するフローレコードを受け取ることと、
該受け取られたフローレコードからデータを抽出して、ブロックデータ構造にするが、該ブロックデータ構造が複数の個別の要素を含み、各要素が、それぞれのフローレコードから抽出された送信元インターネットプロトコル（ＩＰ）アドレスと宛先ＩＰアドレスとを含むデータと、前記複数の個別の要素のそれぞれのインデックスとを格納することと、
前記ブロックデータ構造内の前記個別の要素を、前記複数の個別の要素のそれぞれのインデックスを並べ替えることによってソートするが、ソート順が行われるべき処理の種別によって決められていることと、
該ソートした個別の要素に従って前記ブロックデータ構造をデータストリームとして処理し、少なくとも同じ送信元ＩＰアドレス又は宛先ＩＰアドレスを示すフローレコードの数に基づいてネットワーク使用のパターンを識別することを、
実行可能であるコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク通信及び使用解析に関し、詳細には、ネットフローデータを収集し処理するための方法及び装置に関する。より具体的には、本発明の例示的な実施形態は、フローレコードを使用してネットワーク攻撃を識別することに関する。
【背景技術】
【０００２】
世界中でデータを移送するパケット式データネットワークが普及している。パケット式データネットワークは、典型的に、あるコンピュータと別のコンピュータの間で伝送するためにデータをパケットにフォーマットする。これらのパケットは、パケットデータ及びルーティングに関する情報を含むヘッダを含む。データネットワークは、ルータを使用して発信元コンピュータから宛先コンピュータにこれらのパケットを送り、このルータは、パケットヘッダ内のルーティング情報を使用して宛先コンピュータにパケットを送る。パケットのフローは、特定の送信元ネットワークアドレス及びポートから宛先ネットワークアドレス及びポートに送られた一群のパケットである。これらの特定の宛先及び送信元のネットワークアドレス及びポートは、たとえばそれぞれ異なるコンピュータに対応してもよい。これらのネットワークが拡張されるにつれて、それらを使用する利点が増している。しかし、これは、ネットワークを使用して企業を攻撃する機会を開いた。
【０００３】
あるタイプの攻撃は、分散型サービス妨害である。分散型サービス妨害は、障害が生じた（ｃｏｍｐｒｏｍｉｓｅｄ）多数のコンピュータが特定のコンピュータを攻撃し、膨大な数のネットワーク接続を開くことによってその特定のコンピュータを圧倒することを伴う。別のタイプの攻撃は、ポートスキャン攻撃である。ポートスキャン攻撃は、不正（ｒｏｇｕｅ）コンピュータが様々なネットワークアドレスにわたって接続を開き、弱点を求めて接続を探索することを伴う。
【０００４】
ネットフローは、ＩＰトラフィックの収集及び監視のために使用されてもよい、よく知られているネットワークプロトコルである。いくつかのネットフロー解析エンジンは、ＩＰアドレスに関連するデータ量だけに基づいて、送信元ＩＰアドレス、宛先ＩＰアドレスの上位数（通常最大１０００）だけを保持する。このように情報をフィルタリングすることの欠点は、実際のフロー情報、特に、結果として生じる情報のコンテキスト、たとえば送信元ＩＰアドレス及び宛先ＩＰアドレスに関連する送信元ポート及び宛先ポートが失われるということである。したがって、こうしたエンジンは、すべての配布情報が失われるので、攻撃を識別することができない。
【０００５】
他のネットフロー解析エンジンは、フローのサブセット（通常１時間の期間の約１０，０００フロー）だけを保存する。サブセットは、フローオクテットサイズに通常基づく。この技法は、上記に概説された技法とは対照的に、何らかの配布情報を依然として保存しながら、フローに必要な記憶容量を減少させる。しかし、サブセットはフローオクテットサイズ、特にフローオクテットサイズの最大値に通常基づき、サービス妨害攻撃及びポートスキャン攻撃は少量のオクテットを含み得るので、攻撃に関連するフローは、サブセット内に現れず、したがって攻撃はやはり、エンジンには見えない。
【０００６】
本明細書で述べられた攻撃のパターンを識別できるようにするには、すべてのフロー、特に少量のオクテット及びパケットしか有さないフローを解析する必要がある。こうした解析は一般に、解析が非能率的であるために行われず、すなわち、こうした大量のデータを効果的に解析することは、これが記憶容量に関する問題をもたらすだけでなく、攻撃の識別のために非現実的な処理時間をも必要とするので、実行不可能と見なされる。
【発明の概要】
【０００７】
本発明の目的は、ネットフローデータを効率的に処理し解析するための技法を提供することによってこれらの問題を克服することであり、この技法は特に、フロー情報一式を解析することに基づいて分散型サービス妨害攻撃及びポートスキャン攻撃を識別することを可能にする。
【０００８】
本発明の態様については、添付の特許請求の範囲で述べられる。
【０００９】
本発明の一態様によれば、フロー収集技術を使用して、現実的な時間尺度内でウィルス攻撃を識別するためにも使用できるデータネットワーク内の接続に関する情報を取得する。これは、オペレータがたとえば、攻撃に関与していると識別された関連するアドレスからの特定の送信を拒否するようにファイアウォール設定を再構成することによって、こうした攻撃に対する目標とされた措置を取れることを可能にし、それによって、ネットワークが安全に、またできるだけ大きい帯域幅で実行されることが保証される。
【００１０】
一実施形態によれば、これは、
フローについての情報を格納し、
特定の送信元ＩＰアドレス及びポートと、宛先ＩＰアドレス及びポートとの間の関連性を、それらの間の伝送量と共に識別するために、フローのそれぞれに特有の情報をソートすること、
次いで、ソートされた情報に基づいて、これらの別個の送信元又は宛先のアドレス及び会話をカウントすること、及び
上位の別個のアドレス又は会話の数によって結果を並べ替えることによって達成される。
【００１１】
いわゆる「会話」は、特定の送信元ＩＰアドレス及びポートと、特定の宛先ＩＰアドレス及びポートとの間の送信内容であり、これらのＩＰアドレス及びポートは、それらの間の各々の関連性を確立するために本発明によって格納されソートされる。会話数が大きい場合は、ポートスキャン攻撃を示し得る大量のトラフィックが実証される。
【００１２】
好ましい一実施形態では、本発明は、フローレコードから関連情報を抽出し、あるタイプの攻撃が実施されていることを示し得る特定のアドレス間の反復した関連性及び通信パターンを求めて関連情報を解析する。次いで、本発明は、これらの別個の関連性及びパターンの量に基づいて情報をランク付けし、それによって、特定の攻撃が行われる可能性のリアルタイム表示をユーザに提供する。
【００１３】
オブジェクトに関するデータを表すことができる多くの方法のうちの１つは、「タプル」としてのものである。これは、それぞれがオブジェクトの何らかの側面を表す、順序付けられた１組の値である。そしてタプルは、スプレッドシートの行やデータベーステーブルの行など、インデックス付きのブロックデータ構造として格納される。一実施形態では、本発明は、フローレコードの関連フィールドを備えるタプル内に、各フローレコードに特有の情報を格納する。これは、多数のこうした情報をソートしやすくすることを可能にする便利な技法である。さらなる実施形態では、タプルは、ランダムアクセスメモリ（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリ内の整数配列に書き込まれる。このようにタプルブロックをメモリに書き込むことによって、この実施形態は、タプルブロックを併合し、特定のアドレス及び会話の合計を容易なやり方で決定することを可能にする。
【００１４】
本発明を具現化する構成について、例を挙げるため、添付の図面を参照して次に述べられる。
【図面の簡単な説明】
【００１５】
【図１】ネットワーク内のフロー情報を処理し提供するためのネットワークルーティングデバイスを示すブロック図である。
【図２】本発明の一実施形態によるネットフロー処理エンジンによって検出されるポートスキャン攻撃の一例を示すブロック図である。
【図３】本発明の一実施形態によるネットフロー処理エンジンによって検出される分散型サービス妨害攻撃の一例を示すブロック図である。
【図４】本発明の例示的な一実施形態による、機能コンポーネント、データ構造、及びネットワークフローレコードのストリームを処理するためにネットフロー処理エンジンによって実施される操作を概略的に示す図である。
【図５】本発明の例示的な実施形態の各フローレコードのフィールドを示すブロック図である。
【図６Ａ】本発明の一実施形態による、ネットワーク接続の情報を格納するために使用されるコンピュータメモリ内の例示的なタプル及びタプルブロックデータ構造を示すブロック図である。
【図６Ｂ】本発明の一実施形態による、ネットワーク接続の情報を格納するために使用されるコンピュータメモリ内の例示的なタプル及びタプルブロックデータ構造を示すブロック図である。
【図６Ｃ】本発明の一実施形態による、ネットワーク接続の情報を格納するために使用されるコンピュータメモリ内の例示的なタプル及びタプルブロックデータ構造を示すブロック図である。
【発明を実施するための形態】
【００１６】
図１は、受け取られたパケットを処理し、ネットワークからフローレコードを収集するためのネットワークルーティングデバイス１の一般的なブロック図を示している。パケット１１は、ルーティングデバイス１のパケット処理エンジン１２によって受け取られ処理され、受け取られたパケットのフローについての情報は、フローキャッシュ１３に格納される。フローキャッシュ１３は、固定の時間間隔で、たとえば毎分フラッシュされ、ネットフロー情報は、フローエクスポータ１４として具現化されたネットフローエクスポートプロトコルによってエクスポートされ、フローデータエンジン１５に送信される。
【００１７】
図２は、攻撃者から複数のターゲットホストへのポートスキャン攻撃の一例を示している。攻撃側コンピュータは、典型的に、様々なコンピュータへの多数の接続を開く。これらの接続は、ルーティングデバイス１によって、フローレコードを使用してネットフロー処理エンジン３に報告される。この攻撃についてのフロー情報は一般に、１つの送信元アドレスと、多数の関連する宛先アドレス及びポートをもつ。換言すると、攻撃は、複数の他のホストをターゲットとする単一のアドレスを有する不正コンピュータから開始され、この複数の他のホストは、すべてが単一の送信元アドレスに関連している多くの異なる宛先アドレス及びポートを有する。
【００１８】
図３は、複数のコンピュータから、ターゲットとされた単一のホストへと開始されるサービス妨害攻撃の一例を示している。この例では、多数のコンピュータが、典型的に、単一のコンピュータとの接続を開く。これらの接続は、フローレコードを使用して、ルーティングデバイス１によってネットフロー処理エンジン３に報告される。この攻撃についてのフロー情報は、ターゲットとされたホストに対応する１つの宛先アドレスと、複数のコンピュータに対応しており、単一の宛先アドレスに関連する多数の送信元アドレス及びポートをもつ。
【００１９】
上記の形のネットワーク攻撃を識別するための効率的な後続の解析を容易にする、本発明によるフローレコードのストリームを処理し収集する操作について、図４を参照して次に述べられる。図４は、フローレコード処理エンジン３の機能コンポーネント及びデータ構造による操作を概略的に示すブロックフローチャートである。このプロセスは、ルーティングデバイス１から複数のフローレコード４１を受け取ることから開始し、このフローレコード４１は、ネットフロー処理エンジン３のフローレコード受信スレッド４２によって処理される。この実施形態では、ネットフロー処理エンジン３は、１時間や数日など、いずれかの時間量であり得る事前定義された時間ウィンドウ内に複数のフローレコードを収集する。
【００２０】
図５は、フローに関する関連情報を含む、例示的なフローレコードのコンテンツを示している。図５に示されたように、フィールドは、以下を含む。
送信元ＩＰアドレス
宛先ＩＰアドレス
送信元ＩＰポート
宛先ＩＰポート
ＩＰプロトコル
フロー内のオクテット数
フロー内のパケット数
サービスタイプ
他のフィールド
【００２１】
フローレコードは、各フローについて、ルータによって、規則的な時間間隔、たとえば毎分に発行されてもよく、したがって、長く持続した単一のフローは、多くのフローレコードを生成する。
【００２２】
特定の問合せのためのフィルタが、各フローに適用されてもよい。こうしたフィルタの例は、ある時間範囲内のフローや、特定のインターフェースに一致するフローなどであってもよい。フィルタは、フローレコード内で使用可能なフィールドの任意の組合せのためのフィルタパラメータから構成されてもよい。フィルタパラメータは、関連するフィールドの値又は値範囲によって定義することができる。たとえば、ＩＰアドレス値の範囲は、たとえばネットマスクとして定義することができ、ポート範囲は、開始値から終了値まで定義してもよい。
【００２３】
この実施形態では、ネットフロー処理エンジン３は、上記に言及されたように、分散型サービス妨害攻撃及び／又はポートスキャンネットワーク攻撃を検出するように構成され、したがって、特定の送信元又は宛先ＩＰアドレスへのアクティブなネットフローを効率的に識別するために、所定の時間ウィンドウ内でフローレコードを収集し解析する。この実施形態では、ネットフロー処理エンジン３は、ネットフローを解析するためにフローレコードから上記のフィールドのうちの５つ、すなわち送信元アドレス及びポート、宛先アドレス及びポート、ＩＰプロトコルを抽出するように構成される。これらの５つのフィールドはひとまとめにして、５タプル会話データと呼ばれる。Ｎ個のフィールドを有するＮ個のタプルを、たとえば異なるタスク又は問合せについてフローレコードを解析するように形成するために、フィールドの他の任意の組合せを使用できることが当業者には理解されよう。
【００２４】
５タプル会話データのそれぞれのフィールドからの値は、タプルブロックライタ４３によって、受け取られた各フローレコードから抽出される。この例示的な実施形態では、抽出された値は、図６Ａに示されたように、タプルデータ構造内にまず置かれる。タプルデータ構造内のフィールドの順序は、ネットフロー処理エンジン３の構成に依存する。たとえば、ネットフロー処理エンジン３が同じ宛先ＩＰアドレスへのアクティブなネットフローを識別するように構成される分散型サービス妨害検出では、値は、まず宛先ＩＰアドレス、次に送信元ＩＰアドレス、その後に送信元ポート、宛先ポート及びＩＰプロトコルの順序６１でタプルデータ構造に書き込まれる。もう一方では、ネットフロー処理エンジン３が同じ送信元ＩＰアドレスへのアクティブなネットフローを識別するように構成されるポートスキャン検出では、値は、まず送信元ＩＰアドレス、次に宛先ＩＰアドレス、その後に送信元ポート、宛先ポート及びＩＰプロトコルの順序６２でタプルデータ構造に書き込まれる。
【００２５】
５タプルデータ構造は、たとえば処理効率のために４つの３２ビット整数要素からなる固定サイズのものであってよい。したがって、図６Ａに示されたように、関連する値がデータ構造の固定長より小さい場合、５つのフィールドの後にパディングを設けてもよい。
【００２６】
この実施形態では、ネットフロー処理エンジン３は、所定の時間ウィンドウから５タプルのソートされたデータストリームを抽出し、収集し、処理し、出力するように構成される。次いで、このソートされたデータストリームは、効率的な処理のために後続の解析コンポーネントに渡される。この実施形態によるソートは、メモリとプロセッサの両方の効率のために２段階で実施される。第１段階として、タプルブロックライタ４３は、固定数の５タプルのデータ構造を格納する所定のサイズを有するインデックス付きタプルブロックデータ構造６３に、そのブロックデータ構造が一杯になるまで、生成された５タプルデータ構造を出力する。インデックス付きのタプルブロックは、たとえば、ＲＡＭメモリ内に整数配列として格納されてもよいことが当業者には理解されよう。タプルブロック６３は、タプルブロック６３内の個別の各タプル要素６５の相対位置のインデックス６４をも含む。図６Ｂに示された例では、インデックス６４は、タプルブロック６３内にオフセットとして各タプル要素６５の整数インデックスを格納する整数配列である。
【００２７】
ネットフロー処理エンジン３が、タプルブロック６３が個別のタプル要素６５の最大数で埋められていると決定すると、タプルブロック６３は、タプルブロックソータ４４に送られる。タプルブロックソータ４４は、個別のタプル要素６５を事前定義された順序でソートし、したがってソートされたデータ構造によって、（たとえば、関連するフローレコードから抽出された値からのフロー内のオクテットの数、及び／又はフロー内のパケットの数に基づいて）特定の送信元ＩＰアドレス及びポートと宛先ＩＰアドレス及びポートとの間の別個の関連性を、それらの間の伝送量と共に識別するより効率的な解析が促される。ソート順は、ネットフロー処理エンジンの構成に基づいて定義されてもよいことが当業者には理解されよう。たとえば、ネットフロー処理エンジン３が同じ宛先ＩＰアドレスへのアクティブなネットフローを識別するように構成される分散型サービス妨害検出では、タプルは、宛先ＩＰアドレスに基づいてソートされ、この宛先ＩＰアドレスは、タプルデータ構造６１内の第１の要素として格納され、したがって、タプルブロックソータ４４による処理のために効率的に抽出することができる。もう一方で、ネットフロー処理エンジン３が同じ送信元ＩＰアドレスへのアクティブなネットフローを識別するように構成されるポートスキャン検出では、タプルは、送信元ＩＰアドレスに基づいてソートされ、この送信元ＩＰアドレスは、この構成に従って、やはりタプルデータ構造６２内の第１の要素として格納される。
【００２８】
この実施形態によれば、タプルブロックソータ４４は、タプルデータ自体を抽出し、並べ替え、再書き込みしなければならないのではなく、インデックス６４の個別のインデックスを並べ替えることによって個別のタプル要素６５の効率的なソートを実施することができる。換言すると、タプル要素６５自体は、タプルブロックソートの間、タプルブロック６４内で移動されず、インデックス位置だけが移動される。識別されたどんな重複タプル（たとえば、タプルが同じ送信元及び宛先のアドレス、ポート及びプロトコルを有する）をも、インデックス６４から重複タプルのうちの１つの個別のインデックスを取り除くことによって、タプルブロック６３から効率的に取り除くことができる。
【００２９】
タプルブロック６３がタプルブロックソータ４４によってソートされた場合、ソートされたタプルブロックは、タプルブロックライタ４５に送られ、このタプルブロックライタ４５は、ソートされたタプルブロック４４を出力タプルブロックファイル６６に移動する。図６Ｃに示されたように、生成されたタプルブロックファイル６６は、ヘッダ要素として、ソートされた個別のタプル要素の総数を含んでもよい。したがって、タプルブロックは空であり、所定の時間ウィンドウの間に、第１段階の第１の反復が完了する。タプルブロックライタ４５は、攻撃を示す可能性が最も高い別個の送信元又は宛先アドレス及び会話を決定し優先付けするために追加の処理を実施してもよい。
【００３０】
５タプルを抽出し、タプルブロックを満たし、満たされたタプルブロックをソートし、ソートされたタプルブロックを出力タプルブロックファイルに追加する上述のプロセスは、所定の時間ウィンドウの継続時間の間、繰り返される。
【００３１】
ネットフロー処理エンジン３が、所定の時間ウィンドウが経過したと決定する場合、タプルブロックファイル６６は、マージソートコンポーネント４６に出力され、このマージソートコンポーネント４６は、タプルブロックファイル６６からタプルブロックを読み出し、ソートされたタプルのマージソートを実施する。マージコンポーネント４６は、タプルブロックファイル内の各タプルブロックへのポインタを保持し、ブロックから最小のタプルを出し、そのポインタを進めることによってマージソートを効率的に実行できることが当業者には理解されよう。
【００３２】
次いで、マージソートされたタプル全体が、マージソートコンポーネント４６によって、所定時間ウィンドウからの抽出されたタプルのすべてのソートされたデータストリームとして出力され、ソートされたタプルのデータストリームは、アドレス／会話カウンタ４７に渡され、このアドレス／会話カウンタ４７は、受け取られたデータストリームを処理して、各一意の送信元ＩＰアドレスと宛先ＩＰアドレスの対について、別個の関連するアドレス及び会話の数を計算する。この実施形態では、カウンタの計算は、たとえば以下のアルゴリズムを使用して、ソートされたタプルの受け取られたデータストリームに対して効率的に実施することができる。
【００３３】
ＰｅｒＴｕｐｌｅ：
ｉｆ  ｔｕｐｌｅ（０）！＝ａｔｕｐｌｅ（０）：
ｅｍｉｔ（），ｉｎｃｒ  ａｄｄｒ＿ｃｏｕｎｔ，ｉｎｃｒ＿ｃｏｎｖ＿ｃｏｕｎｔ
Ｅｌｓｅ  ｉｆ  ｔｕｐｌｅ（１）！＝ａｔｕｐｌｅ（１）：
ｉｎｃｒ＿ａｄｄｒ＿ｃｏｕｎｔ，ｉｎｃｒ＿ｃｏｎｖ＿ｃｏｕｎｔ
Ｅｌｓｅ  ｉｆ  ｔｕｐｌｅ！＝ａｔｕｐｌｅ
ｉｎｃｒ＿ｃｏｎｖ＿ｃｏｕｎｔ
ａｔｕｐｌｅ＝ｔｕｐｌｅ
【００３４】
分散型サービス妨害攻撃に対応する宛先ＩＰアドレスは、別個の関連するアドレス及び会話の最大数を有する宛先ＩＰアドレスである。同様に、最大数を有する送信元ＩＰアドレスは、ポートスキャン攻撃側のＩＰアドレスを示す。アドレス及び会話カウンタ４７もまた、たとえば単一の送信元アドレスに関連している宛先アドレス及びポートの最大数、及び単一の宛先アドレスに関連している送信元アドレスの最大数に従って、計算された数をランク付けすることによって、ネットワークアドレス及びネットワークポートの間の関連性を識別するように構成することもできる。
【００３５】
上記の特徴によって、本発明は、大量のフロー情報処理の技法を容易にし、それによって、特定のネットワークサービス攻撃のタイプ及び送信元を効率的に正確に識別することが可能になる。
【００３６】
次いで、この情報は、チャート又はグラフ形式でユーザに表示されてもよく、ある時間間隔にわたる結果を示すことができる。この情報に基づいて、ユーザ又は自動化されたシステムは、進行中の攻撃を阻止するための措置を講じることができる。たとえば、攻撃源であると識別されたアドレスからの送信をブロックするために、ファイアウォール設定を変更してもよい。
【００３７】
上記の記述では、ネットフロー処理エンジン３は、上述された方法を実施するように操作を制御するソフトウェアを格納し実行するように構成される。当業者には理解されるように、上記方法を実施するよう動作可能になるようにプログラマブルデバイスを構成するためのコンピュータプログラムは、キャリアに格納され、システムのフラッシュメモリなどのメモリにロードされてもよい。プログラムは、信号としてダウンロードしてもよいし、及び／又はシステム上に既に常駐するソフトウェアへのパッチ又は更新として適用してもよい。本発明の範囲は、プログラム、プログラムを運ぶキャリア、及びブロードキャスト信号を含む。
【００３８】
（代替実施形態）
諸実施形態について単に例示するために上記に述べられており、この説明を読んだ後、様々な変形形態が当業者には考えられようが、その変形形態は、特許請求の範囲に定義された本発明の範囲内に含まれるものである。
【００３９】
たとえば、上述された実施形態では、タプルブロックライタによって出力されたタプルブロックファイルは、分散型サービス妨害攻撃に対応する宛先ＩＰアドレス、及び／又はポートスキャン攻撃側の送信元ＩＰアドレスを効率的に識別するために、各一意の送信元ＩＰアドレスと宛先ＩＰアドレスの対について別個の関連するアドレス及び会話の数を計算する処理のためにマージされて、アドレス／会話カウンタに送られる。当業者には理解されるように、ソートされたタプルブロックデータ構造は、効率的な処理のためにソートされたストリームを受け取るように構成された他の形のネットフローデータ解析コンポーネントによって使用することができる。たとえば、ソートされたストリームは、データストリーム内のソートされたデータの特定の構成のために特定の基準を満たす上位Ｎ個のネットフローを効率的に識別するために、本出願人の同時係属出願、「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｔｒｅａｍｉｎｇ  Ｎｅｔｆｌｏｗ  Ｄａｔａ  Ａｎａｌｙｓｉｓ」に記載された上位Ｎ計算器によって処理することができる。
【００４０】
上述された実施形態では、ネットフロー処理エンジンは、所定の時間ウィンドウ内にフローレコードを収集するように構成される。その代わりに、当業者が理解するように、フローレコードは、事前定義された固定サイズの出力タプルブロックファイルが一杯になるまで、上述された方法に従って収集されてもよい。
【００４１】
上述された実施形態では、ネットワークアドレスは、ＩＰアドレスである。本発明の諸実施形態は、他の任意の形のネットワークアドレシングに適用可能であることが当業者には理解されよう。
【００４２】
本発明の実施形態は、ハードウェア、ソフトウェア又はその組合せを使用して実施されてもよく、１つ又は複数のコンピューティングシステム又は他の処理システムで実施されてもよい。
【符号の説明】
【００４３】
１…ルーティングデバイス、３…ネットフロー処理エンジン、１１…パケット、１２…パケット処理エンジン、１３…フローキャッシュ、１４…フローエクスポータ、１５…フローデータエンジン、４１…フローレコード、４２…フローレコード受信スレッド、４３…タプルブロックライタ、４４…タプルブロックソータ、４５…タプルブロックライタ、４６…マージソートコンポーネント／マージコンポーネント、４７…アドレス／会話カウンタ、６１…順序、６２…順序、６３…タプルブロックデータ構造／タプルブロック、６４…インデックス、６５…タプル要素、６６…タプルブロックファイル。
【図１】
0005961354.tif 000002
【図２】
0005961354.tif 000003
【図３】
0005961354.tif 000004
【図４】
0005961354.tif 000005
【図５】
0005961354.tif 000006
【図６Ａ】
0005961354.tif 000007
【図６Ｂ】
0005961354.tif 000008
【図６Ｃ】
0005961354.tif 000009