(57)【要約】データネットワーク上でサービス拒否タイプの攻撃を防ぐための方法および装置が記載される。本方法（５００）は、トラフィックフロー走査エンジン（５０２）を用いてデータネットワーク上を流れるデータパケットの内容を走査することを含む。データパケットは並べ替えられ、アセンブルし直され（５０４）、その後、ペイロード内容が走査され（５１０）、データパケットが所定の要件に一致するか否かが判定される（５１２）。正確に並べ替えられず、アセンブルし直されない（５０６）データパケット、あるいは所定の要件に一致しない（５１２）データパケットは破棄される場合がある（５０８）。トラフィックフロー走査エンジンはさらに、データパケットが有効であることを検証されたトラフィックフローに関連付けられるか否かを判定するように動作可能である（５１４）。有効であることを検証されたトラフィックフローに関連付けられるデータパケットは高い優先順位に割り当てられ（５２０）、一方、有効であることを検証されたトラフィックフローに関連付けられないデータパケットは低い優先順位に割り当てられて（５１６）、そのトラフィックフローは、利用可能な帯域幅のうちの所定の最大幅以下の帯域幅しか占有することができない（５１８）。
2004503146.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ複数のデータパケットから形成される複数のトラフィックフローを含むデータネットワーク上のサービス拒否攻撃を防ぐための方法であって、
前記データパケットの内容を走査することと、
前記データパケットが１組の所定の要件に一致することを確認することと、
前記データパケットが有効であることを検証されたトラフィックフローに関連付けられるか否かを検査することと、
前記データパケットが有効であることを検証されたトラフィックフローに関連付けられる場合には、前記データパケットを高い優先順位のサービス品質に配置し、有効であることを検証されたトラフィックフローに関連付けられない場合には、低い優先順位のサービス品質に配置することとを含む方法。
【請求項２】
前記確認することは、前記データパケットが所定のポリシーに従って並べ替えられ、アセンブルし直されるようにし、かつ前記データパケットが、要求されるパラメータに一致することを保証することを含む請求項１に記載の方法。
【請求項３】
前記確認することと、前記検査することとの間に、前記データパケットが前記１組の所定の要件に一致しない場合には、前記データパケットを破棄することをさらに含む請求項１に記載の方法。
【請求項４】
前記走査することは、前記データパケットのヘッダ情報を走査することと、前記データパケットのペイロード内容を走査することとを含む請求項３に記載の方法。
【請求項５】
前記所定の要件は、パケット長と、重複しないオフセットフィールドと、プロトコル標準規格への準拠とを含む請求項１に記載の方法。
【請求項６】
前記有効であることを検証されたトラフィックフローは、前記各トラフィックフローに関連付けられる状態によって識別される請求項５に記載の方法。
【請求項７】
ヘッダおよびペイロード情報を有する多数のデータパケットによってそれぞれ形成される複数のトラフィックフローを含むデータネットワーク上でサービス拒否攻撃を防ぐための方法であって、トラフィックフロー走査エンジンと、低い優先順位のキューおよび高い優先順位のキューを有するサービス品質プロセッサとを含むネットワーク装置を利用し、
前記トラフィックフロー走査エンジンを用いて前記ヘッダ情報を走査することと、
前記トラフィックフロー走査エンジンを用いて前記データパケットを並べ替え、アセンブルし直すことと、
正確に並べ替えられず、アセンブルし直されずに破棄されることになるデータパケットにフラグを立てることと、
前記トラフィックフロー走査エンジンを用いて前記ペイロード内容を走査することと、
前記データパケットが１組の所定の要件に一致するか否かを判定することと、
一致せず、破棄されることになるデータパケットにフラグを立てることと、
前記データパケットが有効であることを検証されたトラフィックフローに関連付けられるか否かを検査することと、
前記データパケットが有効であることを検証されたトラフィックフローに関連付けられる場合には、前記データパケットを高い優先順位のサービス品質に割り当て、前記データパケットが有効であることを検証されたトラフィックフローに関連付けられない場合には、前記データパケットを低い優先順位のサービス品質に割り当てることとを含む方法。
【請求項８】
前記１組の所定の要件は、パケット長と、重複しないオフセットフィールドと、プロトコル標準規格への準拠とを含む請求項７に記載の方法。
【請求項９】
前記フラグを立てられたデータパケットは、前記トラフィックフロー走査エンジンによって破棄される請求項７に記載の方法。
【請求項１０】
前記フラグを立てられたデータパケットは、前記サービス品質プロセッサによって破棄される請求項７に記載の方法。
【請求項１１】
前記有効であることを検証されたトラフィックフローは、前記各トラフィックフローに関連付けられる状態によって識別される請求項７に記載の方法。
【請求項１２】
ヘッダ情報およびペイロード情報を含む内容を有する多数のデータパケットによってそれぞれ形成される複数のトラフィックフローを含むデータネットワーク上でサービス拒否攻撃を防ぐためのネットワーク装置であって、
前記データパケットの前記ヘッダおよび前記ペイロード情報を走査し、前記各データパケットを特定のトラフィックフローに関連付け、前記各トラフィックフローが有効であることを検証されたトラフィックフローであるか、有効であることを検証されていないトラフィックフローであるかを判定するように動作可能なトラフィックフロー走査エンジンであって、該トラフィックフロー走査エンジンは、前記データパケットを並べ替え、アセンブルし直し、前記トラフィックフロー走査エンジンが前記各データパケットに関連付けられる結果を生成するような所定の要件に、前記データパケットが一致することを確認するようにさらに動作可能である、トラフィックフロー走査エンジンと、
該トラフィックフロー走査エンジンに接続され、前記トラフィックフロー走査エンジンからの前記結果に基づいて、複数のサービス品質キューからの１つのサービス品質キューに前記データパケットを配置するように動作可能なサービス品質プロセッサであって、有効であることを検証されていないトラフィックフローからのデータパケットは低い優先順位のキューに割り当てられ、有効であることを検証されたトラフィックフローからのデータパケットはその内容に基づいて高い優先順位のキューに割り当てられる、サービス品質プロセッサとを含むネットワーク装置。
【請求項１３】
前記低い優先順位のキューは、ある最大パーセンテージのネットワーク帯域幅を割り当てられる請求項１２に記載のネットワーク装置。
【請求項１４】
正確に並べ替えられず、アセンブルし直されないデータパケットおよび前記所定の要件に一致しないデータパケットは、前記ネットワーク装置によって破棄される請求項１２に記載のネットワーク装置。
【請求項１５】
前記トラフィックフローは、前記各トラフィックフローに関連付けられる状態によって識別され、前記状態は、前記トラフィックフローが有効であることを検証されるか、有効であることを検証されないかを表す請求項１２に記載のネットワーク装置。
【請求項１６】
前記１組の所定の要件は、パケット長と、重複しないオフセットフィールドと、プロトコル標準規格への準拠とを含む請求項１２に記載のネットワーク装置。
【発明の詳細な説明】
【０００１】
［技術分野］
本発明は広帯域データネットワークキング装置に関する。具体的には、本発明はサービス拒否タイプのインターネット攻撃を防ぐ方法および装置に関する。
【０００２】
［発明の背景］
「サービス拒否」（ＤｏＳ）攻撃の特徴は、攻撃者による明らかな試みによって、あるサービスの正当なユーザがそのサービスを利用できなくなることである。ＤｏＳ攻撃はインターネットに接続されている装置およびネットワークに向けられる。その目的は、外部のユーザがもはやネットワークリソースにアクセスできないように、装置あるいはネットワークの機能を停止させることである。パスワードファイルをハッキングしたり、機密データを盗んだりすることなく、サービス拒否ハッカーは、ある特定のサイトに対して大量のトラフィックを生成することになるプログラムを起動し、そのサイトの正当なユーザへのサービスが拒否されるようにする。
【０００３】
３つのタイプのＤｏＳ攻撃、すなわちＴＣＰ／ＩＰ実装時のバグを利用する攻撃、ＴＣＰ／ＩＰ仕様内の欠陥を利用する攻撃、およびネットワークを輻輳させ、多量の無駄なトラフィックによって他のトラフィックが出入りできないようにする強引な攻撃が存在する。
【０００４】
２つの致命的な攻撃、すなわちよく知られているピング・オブ・デス（Ｐｉｎｇ　ｏｆ　Ｄｅａｔｈ）および新しいティアドロップ（Ｔｅａｒｄｒｏｐ）攻撃は、ＴＣＰ／ＩＰ実装時の既知のバグを利用する。ピング・オブ・デスはｐｉｎｇシステムユーティリティを用いて、ＩＰ仕様によって許可される最大６５，５３６バイトのデータを超えるＩＰパケットを生成する。その際、過剰なパケットが何も気が付いていないシステムに送信される。そのような悪意のある巧妙なパケットを受信すると、そのシステムはクラッシュするか、ハングアップするか、あるいはリブートする場合がある。
【０００５】
最近に開発されたティアドロップ攻撃は、ＩＰパケットフラグメントの再アセンブルの脆弱性を利用する。インターネット内の移動中に、ＩＰパケットはより小さな塊に細分される場合がある。各フラグメントは元のＩＰパケットのように見えるが、たとえば、「このフラグメントは元の（フラグメント化されていない）ＩＰパケットのうちの６００〜８００バイトを搬送している」というオフセットフィールドを含む点が異なる。ティアドロッププログラムは、オフセットフィールドが重複した一連のＩＰフラグメントを生成する。これらのフラグメントが転送先ホストでアセンブルし直されるとき、システムによってはクラッシュ、ハングアップあるいはリブートするものもある。
【０００６】
ＴＣＰ／ＩＰ仕様の脆弱性によって、２つのアプリケーション間のＴＣＰ会話を開始する３方向ハンドシェーク中に実行されるＳＹＮ攻撃に対してホストが無防備になる。正常な状況下では、ＴＣＰセッションを開始するアプリケーションが、受信側アプリケーションにＴＣＰ　ＳＹＮ同期パケットを送信する。受信機はＴＣＰ　ＳＹＮ−ＡＣＫ肯定応答パケットを返送し、その後、イニシエータがＡＣＫ肯定応答で応答する。このハンドシェークの後に、それらのアプリケーションはデータを送受信するように設定される。
【０００７】
しかしながら、ＳＹＮ攻撃は一連のＴＣＰ　ＳＹＮパケットで標的とされるシステムを輻輳させる。各パケットによって、標的とされるシステムはＳＹＮ−ＡＣＫ応答を発行するようになる。標的とされるシステムはＳＹＮ−ＡＣＫに続くＡＣＫを待つ間、全ての未処理のＳＹＮ−ＡＣＫ応答がバックログキューとして知られるキューに入れられる。このバックログキューは、通常は非常に小さな有限の長さを有する。いったんキューが満杯になると、システムは全ての到来するＳＹＮ要求を無視するか、それどころかクラッシュする可能性もあるであろう。ＡＣＫが返送されて来るか、あるいは内部タイマ（比較的長いインターバルに設定される）が３方向ハンドシェークを終了するときにのみ、ＳＹＮ−ＡＣＫはキューから移される。
【０００８】
１つのＳＹＮ攻撃は、所定の手順において元のパケットを識別する、ある不当な転送元ＩＰアドレスで満たされたＳＹＮパケットをそれぞれ生成する。全ての応答がその転送元ＩＰアドレスに送信される。しかしながら、不当な転送元ＩＰアドレスは、実際には存在しないか、あるいはダウンしているかのいずれかである。それゆえ、ＳＹＮ−ＡＣＫ応答に続くことになるＡＣＫは決して返送されて来ないであろう。これにより、常に満杯のバックログキューが作り出され、正当なＴＣＰ　ＳＹＮ要求がほとんどシステムに入ることができなくなる。
【０００９】
ランド（Ｌａｎｄ）攻撃、すなわちＳＹＮ攻撃の簡単なハイブリッドでは、ハッカーが、標的とされるシステムのスプーフされた転送元ＩＰアドレスを有するネットワークをＳＹＮパケットで輻輳させる。
【００１０】
アニメの名前にちなんだ名称で現れた任意の初期の攻撃よりもさらに危険であるスマーフ（Ｓｍｕｒｆ）攻撃は、ダイレクト・プロードキャスト・アドレッシングとして知られるＩＰ仕様の一機構を標的にした強引な攻撃である。スマーフハッカーは、インターネット制御メッセージプロトコル（ＩＣＭＰ）エコー要求パケット（ｐｉｎｇ）で被害者のルータを輻輳させる。各パケットの転送先ＩＰアドレスは被害者のネットワークの同報通信アドレスであるので、被害者のルータはＩＣＭＰエコー要求パケットをそのネットワーク上の全てのホストに報知するであろう。被害者が多数のホストを有する場合には、これにより大量のＩＣＭＰエコー要求および応答パケットが生成されるであろう。
【００１１】
ハッカーがＩＣＭＰエコー要求パケットの転送元ＩＰアドレスをスプーフすることを選択する場合には、結果として生成されるＩＣＭＰパケットは一次被害者ネットワーク、すなわち「媒介」ネットワークを輻輳させるだけでなく、スプーフされた転送元ＩＰアドレスのネットワーク、すなわち「二次被害者」ネットワークにも大きな負荷をかけるであろう。
【００１２】
ＵＤＰ（Ｕｓｅｒ　Ｄａｔａｇｒａｍ　Ｐｒｏｔｏｃｏｌ）フラッド（Ｆｌｏｏｄ）サービス拒否攻撃も、２つの何も気が付かないシステムを結び付ける。スプーフィングによって、ＵＤＰフラッド攻撃は、試験を目的としてシステムが受信する各パケットのための一連のキャラクタを生成する、あるシステムのＵＤＰチャージェンサービスを、ネットワークプログラムを試験するためにシステムが受信する任意のキャラクタのエコーを生成する、別のシステムのＵＤＰエコーサービスに接続する。結果として、２つのシステム間で、停止することなく殺到する無駄なデータが伝送される。
【００１３】
ＵＤＰフラッドの防止は、ネットワーク内の各ホスト上の全てのＵＤＰサービスを停止することにより、あるいは到来する全てのＵＤＰサービス要求をファイアウォールでフィルタリングすることにより達成することができる。しかしながら、全てのＵＤＰトラフィックを全面的に拒否すると、トランスポート機構としてＵＤＰを利用する、ＲｅａｌＡｕｄｉｏのような正当なサービスが拒絶されるであろう。
【００１４】
したがって、ＤｏＳ攻撃がネットワーク全体に影響を及ぼすのを防ぐために、ＤｏＳ攻撃を防止する方法と、本方法を実行することができるネットワーク装置とが必要とされる。
【００１５】
［発明の開示］
本発明はＤｏＳ攻撃を防ぐ方法を提供する。本方法は、データパケットの内容を走査し、その後、そのデータパケットの内容が１組の所定の要件に一致することを確認することを含み、上記所定の要件は規定されたポリシーにしたがってデータパケットを並べ替え、アセンブルし直し、それらのパケットが、パケット長、重複しないオフセット、およびプロトコル標準規格への準拠のような必要とされるパラメータに一致することを保証することを含む。確認されないデータパケットは破棄される場合がある。
【００１６】
内容を確認した後、そのデータパケットは、それらが有効であることを検証されたトラフィックフローに関連付けられるか否かを判定するために検査される。そのデータパケットが有効であることを検証されたトラフィックフローに関連付けられる場合には、そのデータパケットは、ネットワークに返送するためにより優先順位の高いサービス品質キューに割り当てられる。そのデータパケットが有効であることを検証されたトラフィックフローに関連付けらない場合には、そのデータパケットは優先順位の低いサービス品質キューに割り当てられ、優先順位の低いサービス品質キューは、データパケットがネットワークに返送される際に、利用可能なネットワーク帯域幅のうちの所定の最大幅以下の帯域幅しか占有することができない。
【００１７】
また本発明は、ＤｏＳ攻撃を防ぐためのネットワーク装置も含む。そのネットワーク装置は、トラフィックフロー走査エンジンと、サービス品質プロセッサとを含む。トラフィックフロー走査エンジンは、ヘッダおよびペイロードを含むデータパケットの内容を走査し、そのデータパケットを特定のトラフィックフローに関連付けるように動作可能である。またトラフィックフロー走査エンジンは、各トラフィックフローが有効であることを検証されたか否かを判定するように動作可能である。さらに、トラフィックフロー走査エンジンは、データパケットおよび関連するトラフィックフローを並べ替え、アセンブルし直し、そのデータパケットが所定の要件に一致することを保証する。そのネットワーク装置は、正確に並べ替え、アセンブルし直すことができないパケット、あるいは所定の要件に一致しないパケットを破棄する場合がある。トラフィックフロー走査エンジンは、いったんデータパケットを走査すると、そのデータパケットに関連する結果を生成し、そのデータパケットおよび関連する結果はいずれもサービス品質プロセッサに渡される。
【００１８】
サービス品質プロセッサは、トラフィックフロー走査プロセッサからの結果を用いて、データパケットを適当なサービス品質キューに配置する。有効であることを検証されたトラフィックフローに関連するデータパケットは優先順位の高いキューに配置され、その特定のキューのためのプロトコルに従ってネットワーク上に返送される。有効であることを検証されたトラフィックフローに割り当てられないデータパケットは優先順位の低いＱｏＳキューに配置される。優先順位の低いＱｏＳキュー内のデータパケットはネットワークに返送されるが、それらは利用可能な帯域幅のうちの所定の最大幅以下しか占有せず、それによりフラッドタイプのＤｏＳ攻撃を防ぐ。
【００１９】
上記の説明は、当業者が以下に記載される本発明の詳細な説明をより深く理解できるように、ある程度広範に、本発明の好ましい機構および代替の機構の概要を述べている。本発明の特許請求の範囲の主題を形成する本発明のさらに別の機構が以下に記載されるであろう。本発明と同じ目的を果たすための他の構造を設計したり、変更したりするための基準として、開示される概念および特定の実施形態を容易に利用できることは当業者には理解されよう。また当業者は、そのような等価な構成物が最も幅広い形態の本発明の精神および範囲から逸脱しないことも理解されよう。
【００２０】
［発明を実施するための形態］
ここで図１を参照すると、インターネットのような広帯域の公衆ＩＰネットワーク１０にある態様で接続されるいくつかのネットワークインフラストラクチャの一例であるネットワークトポロジーが示される。図１は正確なネットワークアーキテクチャであることを意図しているわけではなく、広帯域ＩＰネットワーク上に存在することができる種々のネットワーク構造の概略的な例示としての役割を果たすことのみが意図される。公衆ＩＰネットワーク１０には、様々な方法でアクセスすることができる。図１は、公衆ＩＰネットワークが、私設コアネットワークを提供するＭＣＩあるいはＵＵＮＥＴのような一企業のＩＰネットワークを用いることができる私設ＩＰネットワーク１２を通してアクセスされることを示す。私設ＩＰネットワーク１２に接続される他のネットワークにアクセスするために、あるいは公衆ＩＰネットワーク１０にアクセスするために、数限りない種々のネットワーク構造が私設ＩＰネットワーク１２に接続されることができる。
【００２１】
私設ＩＰネットワーク１２に接続されるネットワーク構造の一例がホスティングネットワーク１４である。ホスティングネットワーク１４は、インターネットウェブサイトのためのホスティングサービスを提供するネットワーク構造の一例である。これらのホスティングサービスはウェブファーム１６の形態をとることができる。ウェブファーム１６は、ａｍａｚｏｎ．ｃｏｍあるいはｙａｈｏｏ．ｃｏｍのような特定のウェブサイトに関連するウェブページ、プログラムおよびデータベースを含むウェブサーバ３０およびデータベース３２で開始する。ウェブサーバ３０は、到来するインターネットトラフィックを受信し、それを特定のウェブサーバに割り当てて、全てのウェブサーバ３０にわたって負荷を平均化させる二重の負荷バランサ２８に接続される。二重の侵入検知システム２６およびファイアウォールが負荷バランサ２８に接続され、ウェブファーム１６にセキュリティを提供する。個々のウェブファーム１６および１７は、スイッチ２０およびルータ２２のネットワークを介して、ホスティングネットワーク１４の交換バックボーン１８に接続される。ホスティングネットワーク１４の交換バックボーン１８自体はスイッチ２０のネットワークから構成され、それらはその後、１つあるいは複数のルータ２２に接続され、さらに私設ＩＰネットワーク１２に接続される。個々のウェブファーム１６および１７と、ホスティングネットワーク１４の交換バックボーン１８との間の接続は通常、ＯＣ−３あるいはＯＣ−１２のような速度（概ね、１５０Ｍビット／秒あるいは６２５Ｍビット／秒）で行われるが、一方、ホスティングネットワーク１４のルータ２２から私設ＩＰネットワーク１２への接続は概ねＯＣ−４８速度（概ね２．５Ｇビット／秒）である。
【００２２】
私設ＩＰネットワークに接続されるネットワーク構造の別の例がサービスプロバイダネットワーク３４で示される。サービスプロバイダネットワーク３４は、私設ＩＰネットワーク１２および公衆ＩＰネットワーク１０に対してデータおよび音声の両方でアクセスを提供できるようにするための、インターネットサービスプロバイダ（ＩＳＰ）あるいは地域電話会社（ＬＥＣ）のためのネットワーク構造の一例である。サービスプロバイダネットワーク３４は、企業ネットワーク３６および３７に対してインターネットおよびイントラネットアクセスのようなサービスを提供する。企業ネットワーク３６および３７はたとえば、ルーセント・テクノロジーズ（Ｌｕｃｅｎｔ Ｔｅｃｈｎｏｌｏｇｉｅｓ）あるいはメリル・リンチ（Ｍｅｒｒｉｌｌ Ｌｙｎｃｈ）のための企業ネットワークのような企業ネットワークである。企業ネットワーク３６のような各企業ネットワークは、交換バックボーン１８に接続される複数のネットワークサーバおよび個別のワークステーションを含み、交換パックボーン１８はルータ２２によってサービスプロバイダネットワーク３４に接続されることができる。
【００２３】
企業ネットワークのためのインターネットアクセスに加えて、サービスプロバイダネットワーク３４は、個人および小企業のためのダイヤルアップインターネットアクセスを提供する。ダイヤルアップアクセスは、サービスプロバイダネットワーク３４においてリモートアクセスサーバ（ＲＡＳ）４２によって提供され、それによりパーソナルコンピュータ（ＰＣ）が、公衆交換電話網（ＰＳＴＮ）（図示せず）を通してサービスプロバイダネットワーク３４に発呼できるようになる。いったんＰＳＴＮを経由してＰＣ５０とＲＡＳ４２との間の接続がなされたなら、ＰＣ５０は私設あるいは公衆ＩＰネットワーク１２あるいは１０にアクセスすることができる。
【００２４】
またサービスプロバイダネットワーク３４は、インターネットを用いて、ボイス・オーバ・ＩＰ（ＶｏＩＰ：ｖｏｉｃｅ ｏｖｅｒ ＩＰ）と呼ばれる、データネットワーク上で音声通話を提供するための能力も提供する。ＶｏＩＰネットワーク４６および４７によって、適当なソフトウエアを備えるＩＰ電話４８およびＰＣ５０が、インターネットに接続される他の電話またはＰＣに、またはさらにはＰＳＴＮに接続される通常の電話に電話をかけることができるようになる。ＶｏＩＰネットワーク４６のようなＶｏＩＰネットワークは、必要に応じてサービスプロバイダネットワーク３４ならびに私設および公衆インターネット１２および１０を通して送信されるＶｏＩＰ呼を収集し、集中させるために、メディアゲートウエイ５２および他の装置（図示せず）を備える。上記のように、ＶｏＩＰ、およびビデオ・オーバ・インターネットのような他のリアルタイムサービスの出現によって、従来からの電話会社によって提供される従来の電話サービスと競合するため、サービスプロバイダにとってサービス品質が優先事項になる。
【００２５】
サービスプロバイダネットワーク３４は、サービスプロバイダネットワーク３４とそのエンドユーザとの間に、およびサービスプロバイダネットワーク３４と私設ＩＰネットワーク１２との間に、スイッチ２０およびルータ２２によって形成される交換バックボーン１８を備える。図には示されないが、ドメインネームサーバ４４および他のネットワーキング装置もサービスプロバイダネットワーク３４に備えられる。ホスティングネットワーク３４と同様に、サービスプロバイダネットワーク３４の場合の接続速度は、企業ネットワーク３６および３７ならびにＶｏＩＰネットワーク４６および４７に接続するためのＴ１、Ｔ３、ＯＣ−３およびＯＣ−１２から、私設ＩＰネットワークに接続するためのＯＣ−４８および場合によってはＯＣ−１９２に至るまでの範囲にわたることができる。
【００２６】
ＯＣ−３、ＯＣ−１２およびＯＣ−４８のような速度で１つのネットワーク構造から別のネットワーク構造までデータが渡される、これらの種々のネットワーク構造の端部に集合ポイント６０が存在することは容易に明らかになろう。図１に示すネットワーク構造における１つの主な問題点は、ネットワークがセキュリティ、測定およびサービス品質のようなサービスを提供できるようになるこれらの集合ポイント６０においてあらゆるタイプのインテリジェンスが欠如していることである。これらのサービスを提供するためのインテリジェンスは、ネットワークが、現時点では理解している内容の全てである宛先および／または転送元情報だけでなく、集約点６０を通過するデータのタイプを理解することを要求するであろう。関連するペイロードの内容およびヘッダ情報を含む、データのタイプ、あるいはその内容を理解することにより、またそれぞれの個々のトラフィックフローにわたって状態アウェアネスを理解し、かつ保持することにより、そのネットワークは、サービス品質が根本的な要件であるＶｏＩＰあるいはビデオのような応用形態に対して、ネットワークへの帯域幅要件に合わせてリアルタイムに構成変更できるようになるであろう。インテリジェント、すなわち「コンテンツ・アウェア」ネットワークは、電子メールワーム、ウイルス、サービス拒否（ＤｏＳ）攻撃、および違法性のハッキングのような、エンドユーザに対してトランスペアレントな方法でセキュリティの問題を特定し、除去することもできるであろう。さらに、コンテンツ・アウェアネットワークは、企業およびサービスプロバイダをホスティングすることにより測定能力を提供し、これらの企業が個々の顧客に割り当てられる帯域幅の量を規制し、かつ帯域幅、およびセキュリティのような付加機能に対して正確に課金できるようにするであろう。
【００２７】
上記の要件にしたがって、本発明は、ＯＣ−３、ＯＣ−１２、ＯＣ−４８、およびそれ以上の速度でペイロード情報を含むネットワークトラフィックを走査し、分類し、変更することができる装置を提供し、それにより、ネットワーク上でサービス拒否攻撃を防ぐことが可能な「コンテンツ・アウェア」なネットワークを提供する。
【００２８】
ここで図２を参照すると、本発明によるネットワーク装置の一実施形態が示される。図に示されるネットワーク装置１００は、高速ネットワークラインから受信されるデータを受け取り、そのデータを処理して、そのライン上にデータを戻して配置することにより、「バンプ・イン・ザ・ライン」タイプの装置として動作する。ネットワーク装置１００は、入力物理インターフェース１０２を用いてラインからデータを受信する。入力物理インターフェース１０２は複数のポートから構成されることができ、ＯＣ−３、ＯＣ−１２、ＯＣ−４８のような高速を含む任意の数のネットワーク速度およびプロトコル、ならびに１０／１００イーサネット（登録商標）、ギガビットイーサネット（登録商標）およびＳＯＮＥＴを含むプロトコルを受け入れることができる。入力物理インターフェース１０２は物理ポートからデータを取得し、そのデータをフレーム処理して、好ましくはＰＯＳ−ＰＨＹレベル３あるいはＡＴＭ　ＵＴＯＰＩＡレベル３タイプデータバスのような業界標準データバスである高速パスデータバス１２６上に配置するためにデータをフォーマットする。
【００２９】
高速パスデータバス１２６はそのデータを、ヘッダプロセッサ１０４およびペイロードアナライザ１１０を備えるトラフィックフロー走査プロセッサ１４０に供給する。そのデータは最初にヘッダプロセッサ１０４に送信され、ヘッダプロセッサ１０４は、データパケットヘッダ内に含まれる情報を用いていくつかの演算を実行するように動作することができる。ヘッダプロセッサ１０４は、受信されたデータパケットをパケット記憶メモリ１０６に格納し、ヘッダ情報を走査する。ヘッダ情報が走査されて、データパケットのタイプ、すなわちプロトコルが特定され、それを用いてルーティング情報が判定され、かつデータパケットの所定の属性を用いてセッションＩＤが生成される。
【００３０】
好ましい実施形態では、セッションＩＤは、転送元アドレス、宛先アドレス、転送元ポート、宛先ポートおよびプロトコルからなるセッション情報を用いて生成されるが、当業者であれば、本発明の範囲から逸脱することなく、セッションＩＤがデータパケット内の、リスト化されたフィールドの任意のサブセットあるいは任意の付加フィールドを用いて形成されることもできることは理解されよう。新たなセッション情報を有するデータパケットが受信されるとき、ヘッダプロセッサは、その特定のトラフィックフローを特定するために固有のセッションＩＤを生成する。同じセッション情報を含む一連のデータパケットはそれぞれ、そのフロー内の各パケットを特定するために同じセッションＩＤを割り当てられる。特定のトラフィックフローが明示的な動作を通して終了されるとき、あるいはトラフィックフローがタイムアウトするとき、それは、そのトラフィックフローのためのデータパケットが所定の時間量内に受信されなかったことを意味しており、セッションＩＤが破棄される。本明細書ではセッションＩＤはヘッダプロセッサ１０４によって生成されるものとして説明されるが、セッションＩＤは、ペイロードアナライザ１１０を含むトラフィックフロー走査エンジン１４０のいかなる場所においても生成されることができる。
【００３１】
以下に説明されるように、ネットワーク装置１００が適当に機能するためには、順序が変更されたデータパケットを並べ替えて、データパケットのフラグメントをアセンブルし直す必要がある。ヘッダプロセッサ１０４は、非同期転送モード（ＡＴＭ）ヘッダ情報の除去（ｓｔｒｉｐｐｉｎｇ）を含むことができる、ＡＴＭセルの完全なデータパケット（ＰＤＵ）へのアセンブルを実行するように動作することができる。
【００３２】
またヘッダプロセッサ１０４はルーティング機能を実行するように動作することができる。ルーティングテーブルおよび情報はデータベースメモリ１０８に格納されることができる。ネットワーク装置１００によって受信されるルーティング命令は、ヘッダプロセッサ１０４によって識別され、記録され、さらにマイクロプロセッサ１２４に渡されて、それに応じてマイクロプロセッサ１２４がデータベースメモリ１０８内のルーティングテーブルを更新できるようになる。ネットワーク装置１００は「バンプ・イン・ザ・ライン」装置として示されるが、入力および出力が多数のラインによって形成されることもでき、たとえば４本のＯＣ−１２ラインが、ＯＣ−４８速度で動作するネットワーク装置１００に接続されることもできる。そのような場合には、「バンプ・イン・ザ・ライン」ネットワーク装置１００のルーティングおよびスイッチング能力は多数のライン間で制限されることなり、そのスイッチング能力は従来のルータあるいはスイッチよりも低くなるであろう。さらに、本発明の原理に従って、ネットワークルータあるいはスイッチとして動作することができるネットワーク装置を構成することができる。そのような実装形態は図４を参照しながらさらに詳細に記載されるであろう。
【００３３】
ヘッダプロセッサ１０４によってデータパケットが処理された後に、データパケット、その関連するセッションＩＤ、およびルーティングあるいはＱｏＳ情報のような、ヘッダプロセッサによって形成される任意の結果が、高速データパス１２６上でトラフィックフロー走査エンジン１４０のうちのもう一方であるペイロードアナライザ１１０に送信される。受信されたパケットは、ペイロードアナライザ１１０によって処理されると同時に、パケット記憶メモリ１１２に格納される。ペイロードアナライザ１１０は、ヘッダプロセッサ１０４から受信されるデータパケットの内容、特にデータパケットのペイロード内容を走査するように動作することができるが、必要に応じてヘッダ情報も走査することができる。任意のあるいは全てのデータパケットの内容が既知のシグネチャのデータベースと比較され、１つあるいは複数のデータパケットの内容が既知のシグネチャと一致する場合には、そのシグネチャおよび／またはセッションＩＤに関連する動作がネットワーク装置１００によって行われることができる。さらに、ペイロードアナライザ１１０は、個々のそれぞれのトラフィックフロー全体を通して状態アウェアネスを保持するように動作する。言い換えると、ペイロードアナライザ１１０は、トラフィックフローからの現在のデータパケットにのみ関連する状態情報だけでなく、トラフィックフローの全体に関連する状態情報を格納する、各セッションに対するデータベースを保持する。これにより、ネットワーク装置１００は、走査されるデータパケットの内容に基づいてだけでなく、トラフィックフロー全体の内容に基づいて動作できるようになる。ペイロードアナライザ１１０の具体的な動作は図３を参照して記載されるであろう。
【００３４】
いったんトラフィックフロー走査エンジン１４０によってパケットの内容が走査され、結果が得られたなら、ヘッダプロセッサあるいはペイロードアナライザのいずれかあるいは両方のパケットおよび関連する結果がサービス品質（ＱｏＳ）プロセッサ１１６に送信される。再びＱｏＳプロセッサ１１６はそのパケットを転送用に自らのパケット記憶メモリ１１８に格納する。ＱｏＳプロセッサ１１６は、ネットワーク装置１００によって処理されるデータパケットのストリームのためのトラフィックフロー管理を実行するように動作することができる。ＱｏＳプロセッサは、トラフィック管理１２６、トラフィックシェーピング１２８およびパケット変更１３０のためのエンジンを備える。
【００３５】
ＱｏＳプロセッサ１１６は、ヘッダプロセッサ１０４あるいはペイロードアナライザ１１０のいずれかあるいは両方の結果を取得し、その結果に基づいて、そのデータパケットを内部のサービス品質キュー１３２のうちの１つに割り当てる。サービス品質キュー１３２は、互いに対する優先順位を割り当てられることができるか、あるいはその装置内のトラフィックフローの最大あるいは最小パーセンテージを割り当てられることができる。これにより、ＱｏＳプロセッサは、ＶｏＩＰ、ビデオおよび高品質、高信頼性要件を有する他のフローのようなトラフィックフローに対して必要な帯域幅を割り当て、一方、低優先順位の電子メールおよび一般的なウェブサーフィンのような低品質要件を有するトラフィックフローに対して残りの帯域幅を割り当てることができるようになる。ＱｏＳエンジンにしたがってキュー内に現時点で存在する全てのデータを送信するために利用可能な帯域幅を持たないキュー内の情報は選択的に破棄され、それによりトラフィックフローからそのデータは除去される。
【００３６】
またサービス品質キュー１３２によって、ネットワーク装置１１０は、サービス拒否（ＤｏＳ）攻撃のようなネットワーク攻撃を管理できるようになる。ネットワーク装置１００は、パケットの内容を走査し、その内容が既知の転送元と宛先との間の有効なネットワークトラフィックを含むことを確認することにより、トラフィックフローを識別するように動作することができる。未知の転送元に由来するために、あるいは新しい未分類のフローであるために確認されなかったトラフィックフローは、転送元が確認されるか、あるいはそのトラフィックフローが有効なトラフィックであると確認されるまで、低いサービス品質キューに割り当てられることができる。大部分のＤｏＳ攻撃は、新たなセッション情報、スプーフされた転送元からのデータあるいは意味のないデータのいずれかを送信するので、ネットワーク装置１００はそれらのトラフィックフローに低品質のトラフィックキューを割り当てるであろう。これにより、ＤｏＳトラフィックは利用可能な帯域幅のうちの少ないパーセンテージ（すなわち５％）以下しか受信されないようになり、それにより攻撃者がダウンストリームネットワーク装置を輻輳させるのを防ぐことができるであろう。
【００３７】
ＱｏＳプロセッサ１１６内のＱｏＳキュー１３２（このＱｏＳプロセッサの本実施形態では６５ｋキューがあるが、任意の数のキューが用いられることができる）はスケジューラ１３４（本実施形態では１０２４）に接続され、それはさらに論理ポート１３６（本実施形態では２５６）に接続され、論理ポート１３６は、ネットワーク装置のための物理入口ポートに対応することができるフロー制御ポートマネージャ１３８（本実施形態では３２）にデータを送信する。トラフィック管理エンジン１２６およびトラフィックシェーピングエンジン１２８は、プログラミングされたパラメータにしたがってトラフィックフローを保持するために、スケジューラおよび論理ポートの動作を決定する。
【００３８】
またＱｏＳプロセッサ１１６はパケット変更エンジン１３０も備え、パケット変更エンジン１３０はデータパケットのフィールドのうちの任意のフィールドにおいてビットを変更、付加あるいは削除するように動作することができる。これにより、ＱｏＳプロセッサ１１６はルーティングのためのアドレスを変更したり、あるいは必要とされるプロトコルのためにデータパケット上に適当なヘッダを配置したりできるようになる。またパケット変更エンジン１３０は、必要に応じてペイロード自体の内部情報を変更するために用いられる場合もある。その後、データパケットは高速データパス１２６に沿って出力ＰＨＹインターフェース１２０に送信され、そこで再びアナログ信号に変換され、ネットワーク上に出力される。
【００３９】
全てのネットワーク装置と同様に、ある一定量のネットワークトラフィックは高速データパス１２６に沿って処理されることができないであろう。このトラフィックはオンボード・マイクロプロセッサ１２４によって処理される必要があるであろう。高速パストラフィックフロー走査エンジン１４０およびＱｏＳプロセッサ１１６は、さらに処理する必要があるパケットをフロー管理プロセッサ１２２に送信し、フロー管理プロセッサ１２２はそれらを処理するためにマイクロプロセッサ１２４に転送する。その後、マイクロプロセッサ１２４は、再びフロー管理プロセッサ１２２を通して、トラフィックフロー走査エンジン１４０およびＱｏＳプロセッサ１１６と通信を行う。フロー管理プロセッサ１２２は、ネットワーク装置１００を通して、トラフィックフローの特性に関するデータおよび統計値を収集するように動作することもできる。余分なパケットあるいは紛失したパケットを処理するほかに、マイクロプロセッサ１２４はユーザ管理インターフェース１４２を制御し、新たなシグネチャを収容するためにデータベース１０８および１１４をコンパイルし直し、トラフィックフロー走査エンジン１４０によっ識別されるセッションを記憶あるいは破棄するために用いられることができる。
【００４０】
ネットワーク装置１００の能力は多くの点において固有である。ネットワーク装置１００は、１つのシグネチャあるいは一連のシグネチャとして表されることができる任意の情報のための任意の１つあるいは複数のデータパケットの内容を走査することができる能力を有する。シグネチャは任意の長さからなることができ、パケット内の如何なる場所においても開始および終了することができ、さらにパケット境界を越えることができる。さらに、ネットワーク装置１００は、そのトラフィックフローの過程において一致する任意のあるいは全てのシグネチャを表す各トラフィックフローのための状態情報を格納することにより、個々のトラフィックフローの全てを通して状態アウェアネスを保持することができる。既存のネットワーク装置は、各データパケット内の正確な点で固定長の情報を探索することにより動作し、パケット境界を越えて探索することができない。パケット内の正確な点において固定長の情報を探索することしかできないことにより、既存のネットワーク装置は、あるレベルのパケットヘッダ内の特定可能の位置において含まれる情報に関して動作することに制限され、データパケットのペイロードを探索することはできず、トラフィックフロー全体のための状態情報、あるいはペイロードを含むデータパケットの内容に関してもほとんど判断することができない。
【００４１】
ここで図３を参照すると、図２のペイロードアナライザ１１０がさらに詳細に示される。上記のように、ペイロードアナライザ１１０は、図２のヘッダプロセッサ１０４から転送されるデータパケットの内容を走査するように動作することができる。ペイロードアナライザ１１０は３つの個別のエンジン、すなわちキューエンジン３０２と、内容エンジン３０４と、ペイロード走査エンジン３０６とを備える。
【００４２】
ペイロードアナライザ１１０はペイロードの内容を走査し、かつパケット境界を越えて走査することができるので、ペイロードアナライザ１１０は、セッション毎に、フラグメント化されたパケットをアセンブルし直し、順序を変更されたパケットを並べ替えることができなければならない。パケットを並べ替え、アセンブルし直すことは、キューエンジン３０２の機能である。キューエンジン３０２は高速パスインターフェース３１０を用いて高速パスデータバス１２６から離れてデータを受信する。その後、パケットはパケット並べ替えおよび再アセンブリエンジン３１２に送信され、パケット並べ替えおよび再アセンブリエンジン３１２はパケットメモリコントローラ３１６を用いて、そのパケットをパケットメモリ１１２に格納する。またパケット並べ替えおよび再アセンブリエンジン３１２は、リンクリストコントローラ３１４およびリンクリストメモリ３１８を用いて、処理するためのデータパケットを並べるために用いられる詳細なリンクリストを作成する。セッションＣＡＭ３２０は、ペイロードアナライザ１１０のキューエンジン３０２によって生成されるセッションＩＤを格納することができる。パケット並べ替えおよび再アセンブリエンジン３１２はそのセッションＩＤを用いて、同じデータフローに属するデータパケットをリンクする。
【００４３】
必要とされる高スループット速度を得るために、ペイロードアナライザ１１０は多数のセッションからのパケットを同時に処理できなければならない。ペイロードアナライザ１１０は、関連するセッションＩＤを有する固有のトラフィックフローにそれぞれ属する多数のデータパケットからのデータのブロックを処理する。本発明の好ましい実施形態では、ペイロードアナライザ１１０は、固有のトラフィックフローからの６４個の異なるデータパケットからなる６４バイトブロックを同時に処理する。６４個の異なるデータパケットからなる６４バイトブロックはそれぞれ、ペイロードアナライザのための単一のコンテクストを表す。ペイロードアナライザ１１０のための全ての同時のコンテクストのスケジューリングおよび管理はコンテクストエンジン３０４によって処理される。
【００４４】
コンテクストエンジン３０４はキューエンジン３０２と協動し、１つのコンテクストが処理を終えて、ペイロードアナライザ１１０から送信されたときに、新たなコンテクストを選択する。次フリーコンテクスト／次フリーブロックエンジン３３０はリンクリストコントローラ３１４と通信を行い、処理されることになるデータパケットの次のブロックを識別する。ペイロードアナライザ１１０はデータパケットを順番に走査しなければならないので、ある時点である特定のセッションＩＤを有する１つのデータパケットあるいはトラフィックフローだけがアクティブであることができる。アクティブコントロールリスト３２２は、アクティブコンテクストを有するセッションＩＤのリストを保持し、アクティブリストに対して新たなコンテクストを検査し、新たなコンテクストがイナクティブセッションＩＤに由来することを保証する。新たなコンテクストが特定されたとき、パケットローダ３４０は次フリーコンテクスト／次フリーブロックエンジンによって検索されるリンクリスト情報を用いて、パケットメモリコントローラ３１６を用いて、パケットメモリ１１２から必要とされるデータブロックを検索する。その後、新たなデータブロックはコンテクストバッファ３４２から空きバッファにロードされ、そこで、ペイロード走査エンジンインターフェース３４４によって検索されるのを待つ。
【００４５】
ペイロード走査エンジンインターフェース３４４は、コンテクストエンジン３０４とペイロード走査エンジン３０６との間のインターフェースである。ペイロード走査エンジン３０６に、新たなコンテクストを走査するための余地があるとき、ペイロード走査エンジンインターフェース３４４は新たなコンテクストをペイロード走査エンジン３０６内のストリングプリプロセッサ３６０に送信する。ストリングプリプロセッサ３６０は、走査を簡略化するために、余白（すなわち、スペース、タブ、リターン）を単一の空間に圧縮するなどの動作を実行することにより、コンテクストを簡略化するように動作することができる。いったんストリングプリプロセッサ３６０が終了したなら、そのコンテクストは、スケジューラ３６４によって検索されるまで、コンテクストバッファ３６２内のバッファのうちの１つにロードされる。スケジューラは、シグネチャメモリ３６６への入力および出力を制御する。それぞれが潜在的に多数のコンテクストを処理することができる４つのシグネチャメモリ３６６が示されるが、ペイロード走査エンジン１１０内のスループットを増減するために任意の数のメモリが用いられることができる。この実施形態では、シグネチャメモリ３６６はそれぞれ一度に４つのコンテクストを処理することができる。
【００４６】
シグネチャメモリ３６６のうちの１つはスケジューラ３６４によってコンテクストを割り当てられ、その後、そのコンテクストの有意ビットを、シグネチャメモリ３６６内に存在する既知のストリングのデータベースと比較する。シグネチャメモリ３６６は、特定のシグネチャに固有のビットである有意ビットを用いて、コンテクストと既知のシグネチャのうちの１つとの間に一致する可能性があるか否かを判定する。一致する可能性がある場合には、そのコンテクストおよび一致する可能性のあるストリングはリーフストリング比較機構３６８に送信され、リーフストリング比較機構３６８はリーフストリングメモリ３７０を用いて、そのコンテクストと一致する可能性があるストリングとのビット毎の比較を実行する。
【００４７】
その後、ペイロード走査の結果が、おそらく、走査されることになる新たなデータの要求とともにペイロード走査インターフェース３４４に返送される。ペイロード走査の結果は、多数の起こり得る結果のうちの任意のものであることができる。その走査は未だ結果に達していない場合もあり、シーケンス番号、カウンタ等のような他の適当な情報とともに、トラフィックフローの状態および任意の未完了の走査がセッションメモリ３５４に格納される場合には、走査を継続するために新たなデータパケットからのさらに別のデータを必要とする場合がある。シグネチャメモリ３６６によって到達された結果は、走査が完了し、一致するものが存在するか、あるいは存在しないかである場合があり、その場合には、データパケットおよび結果は図２のＱｏＳプロセッサ１１６に渡すために送信エンジン３５２に送信される。またその走査は、データパケットがさらに処理されるために図２のマイクロプロセッサ１２４に転送される必要があるものと判定し、データパケットがホストインターフェース３５０に送信され、ホストインターフェースバス３７２上に配置されるようにすることもできる。余分なパケットを処理するほかに、ホストインターフェースバス３５０がコンテクストエンジン３０４内の任意のバッファあるいはレジスタへの書込みをマイクロプロセッサ１２４に行なわせることにより、マイクロプロセッサ１２４は、ペイロードアナライザ１１０のいかなる態様の動作も制御することができるようになる。
【００４８】
状態情報はセッションメモリ３５４に格納され、特定のトラフィックフローに関連するデータが走査された後に必要に応じて更新される。各トラフィックフローについての状態情報は図２のネットワーク装置１００のコンテンツ・アウェアネスを表しており、それによりネットワーク装置は、走査される情報に基づいてだけでなく、各トラフィックフローの場合に走査された全ての情報に基づいて動作できるようになる。
【００４９】
送信エンジン３５２、ホストインターフェース３５０およびセッションメモリコントローラ３４８の動作はスクリプトエンジン３３４によって制御され、セッションメモリコントローラ３４８はセッションメモリ３５４の利用を制御し、汎用の論理演算装置（ＧＰＡＬＵ）３４６から構成され、汎用の論理演算装置（ＧＰＡＬＵ）３４６はカウンタの増減、ポインタの移動等を行うために用いられる。スクリプトエンジン３３４は、必要に応じてレジスタ３３８を用いて、スクリプトメモリ３３６に格納されるプログラム可能なスクリプトを実行するように動作する。スクリプトエンジン３３４は制御バス３７４を用いて、コンテクストエンジン３０４内の任意の構成要素に命令を送信する。
【００５０】
図３の説明から明らかなように、ペイロードアナライザ１１０によって、ネットワーク装置によって受信される任意のあるいは全てのデータパケットの内容全体が、既知のシグネチャのデータベースに対して走査されるようになる。走査された内容は任意の可変あるいは自由な長さを有することができ、パケット境界を越えることもできる。ペイロードアナライザ１１０の能力によって、本明細書において先に記載されたように、データパケットの内容に基づいてデータパケットに関して動作するための能力をネットワーク装置に付与するコンテンツ・アウェアなネットワーク装置を構成できるようになる。
【００５１】
ここで図４を参照すると、ルーティング能力を有する本発明のネットワーク装置の一実施形態が示される。ルーティングネットワーク装置４００は、スイッチファブリック４０４に接続される２つ以上のルートエンジンカード４０２によって形成される。ユーザインターフェースを提供し、ルートエンジンカード４０２を管理するために、１つあるいは複数の管理カード４０６も含まれる。ルートエンジンカード４０２はそれぞれ基本的には、図２のネットワーク装置１００に関して記載されたように動作する。ヘッダプロセッサ４１０およびペイロードアナライザ４１２によって形成されるトラフィックフロー走査エンジン４０８が、データパケットの内容を走査し、その内容に基づく結果を生成する。パケットおよび関連する結果は、入口ＱｏＳプロセッサ４１４に転送され、そこでそのパケットはＱｏＳキューに割り当てられる。その後、データパケットはスイッチファブリックに送信され、スイッチファブリックはそのデータパケットを、その割り当てられた出力ポートのために適したルートエンジンカード４０２に転送する。その後、そのデータパケットは出口ＱｏＳプロセッサ４１８内を流れ、その出口ＱｏＳプロセッサ４１８では、ネットワーク上に送信するための全てのルートエンジンカード４０２から受信されるトラフィックがスケジューリングされる。図２に示されるマイクロプロセッサ１２４は、ルートエンジンカード４０２上に存在することができるか、あるいは１つのマイクロプロセッサが多数のルートエンジンカード４０２をサポートできるようにするために、管理カード４０６に移されることもできる。ルートエンジンカード４０２はそれぞれ自らのマイクロプロセッサを有することもでき、１つの付加的なマイクロプロセッサが管理カード４０６上に存在する。
【００５２】
多数の入口および出口パスを有する多数のルートエンジンカードを有することにより、ルーティングネットワーク装置は、図２に関して記載される「バンプ・イン・ザ・ライン」装置の単一の入口および出口パスとは対照的に、ルーティングネットワーク装置として機能できるようになる。これにより、ルーティングネットワーク装置４００において、ヘッダプロセッサ４１０のルーティング機能を利用できるようになる。
【００５３】
ここで図５を参照すると、本発明によるサービス拒否攻撃を防ぐ方法が示される。本方法は、開始ブロック５００で開始し、データパケットのヘッダ情報を走査するブロック５２０に進む。その後、本方法はブロック５０４に移動し、データパケットがアセンブルし直され、並べ替えられて、完全なデータパケットの順序化されたフローが生成される。並べ替え、アセンブルし直す間に、ブロック５０６は、データパケットが正確に並べ替えられ、アセンブルし直されるか否かを判定する。ティアドロップ攻撃の場合のように、データパケットが正確に並べ替えられ、アセンブルし直されない場合には、ブロック５０８で示されるように、１つあるいは複数のパケットが破棄され、それにより、その攻撃が転送先に到達するのを防ぐ。データパケットの破棄は、たとえば、図２のＱｏＳプロセッサ１１６によって直ちに、あるいは将来のある時点で破棄されることになるデータパケットにフラグを立てることにより達成されることができる。
【００５４】
ブロックが正確に並べ替えられ、アセンブルし直される場合には、本方法はブロック５１０に移動し、データパケットのペイロード内容が走査される。ペイロード内容の走査中に、本方法は、データが、長さ、構造およびデータ内の適当なコンテクスト等のような従うべきプロトコルに一致するか否かを判定する。ピング・オブ・デスタイプの攻撃で最大パケット長を超える場合のように、データが従うべきプロトコルに一致しない場合には、そのパケットもブロック５０８によって示されるように破棄される。
【００５５】
正確に並べ替えられ、アセンブルし直され、かつ従うべきプロトコルに一致するデータを含むデータパケットはその後、有効であることを検証されたトラフィックフローの一部であるか否かを確認するために検査される。図２および図３を参照して先に記載されたように、個々のトラフィックフローは識別され、セッションＩＤを割り当てられる。トラフィックフローの特性を判定するだけの十分なデータパケット上のトラフィックフローを走査した後、そのトラフィックフローは分類、すなわちサービス品質レベルを割り当てられ、適当なトラフィックフローとして有効であることを検証されるか、あるいは有効であることが検証されないままにされる。トラフィックフローの分類は動的であり、トラフィックフローについてのさらに多くの情報が走査によって記憶されるのに応じて、トラフィックフローの過程にわたって変更されることができる。その分類は図３のセッションメモリ３５４に格納されるトラフィックフローの状態の一部である。
【００５６】
ブロック５１４は、データパケットが有効であることを検証されたトラフィックフローに属するか否かの判定を示す。そのパケットが有効であることを検証されたトラフィックフローに属する場合には、ブロック５２０に示されるように、トラフィックフローの特性に基づいて高い優先順位のＱｏＳキューに割り当てられる。その後、ブロック５２２に示されるように、そのデータパケットは、それが割り当てられたＱｏＳキューのためのＱｏＳプロトコルによって定義されるようにネットワーク上で伝送される。その後、ブロック５２４は本発明の終了を表す。
【００５７】
有効なセッションが決して確立されないスマーフあるいはＳＹＮフラッドの場合のように、そのパケットが有効であることを検証されたトラフィックフローに属さない場合には、ブロック５１６に示されるように、そのパケットは低い優先順位のＱｏＳキューに割り当てられる。図２のＱｏＳプロセッサ１１６のトラフィック管理エンジン１２６およびトラフィックシェーピングエンジン１２６は、低い優先順位のＱｏＳキューが利用可能な帯域幅のうちの所定のパーセンテージのみを許可されるようにプログラミングされることができる。これにより、ブロック５１８に示されるように、有効であることを検証されないデータパケットは、ネットワーク装置１００内の全トラフィックフローのうちのごく一部以外は消費できないようになる。ＳＹＮフラッド攻撃あるいはスマーフ攻撃のような強引な攻撃が利用することができる帯域幅の量を制限することにより、その攻撃は、ネットワークに過負荷をかけるだけの十分に広いネットワーク帯域幅を決して消費できないようになる。
【００５８】
図５は、ＤｏＳタイプ攻撃を防ぐために、本発明が、各トラフィックフローにわたって状態を保持することを含む、データパケットの内容および関連するトラフィックフローのアウェアネスを如何に利用することができるかを示す。図２のネットワーク装置１００は、その中を伝送するデータの特性を理解することにより、一致しないデータパケットを破棄することができるか、あるいはフラッドタイプの攻撃が全ての利用可能な帯域幅を消費するのを防ぐことができる。
【００５９】
図２および図４を参照して記載されるヘッダプロセッサ、ＱｏＳプロセッサおよびフロー管理プロセッサには、記載された機能を実行することができる任意の適当なプロセッサを用いることができるが、好ましい実施形態では、ヘッダプロセッサには高速パターンプロセッサ（Ｆａｓｔ Ｐａｔｔｅｒｎ Ｐｒｏｃｅｓｓｏｒ：ＦＰＰ）が、ＱｏＳプロセッサにはルーティングスイッチプロセッサ（Ｒｏｕｔｉｎｇ Ｓｗｉｔｃｈ Ｐｒｏｃｅｓｓｏｒ：ＲＳＰ）が、フロー管理プロセッサにはＡＳＩプロセッサが用いられ、それらは全て、Ｌｕｃｅｎｔ Ｔｅｃｈｎｏｌｏｇｉｅｓ（Ａｕｓｔｉｎ， Ｔｅｘａｓ）のアジェレ（Ａｇｅｒｅ）事業部によって製造される。同様に、スイッチファブリックは、Ｐｏｗｅｒ Ｘ Ｎｅｔｗｏｒｋｓ（２８３３、Ｊｕｎｃｔｉｏｎ Ａｖｅ、Ｓｕｉｔｅ、Ｓａｎ Ｊｏｓｅ、ＣＡ）によって製造される製品を含む、当分野においてよく知られているような任意の適当なスイッチファブリックであることができる。図２および図４を参照して記載されるマイクロプロセッサは、Ｍｏｔｏｒｏｌａ， Ｉｎｃ．から市販されるＰｏｗｅｒＰＣシリーズのマイクロプロセッサ、あるいはＩｎｔｅｌ Ｃｏｒｐｏｒａｔｉｏｎから市販されるＸ８６またはＰｅｎｔｉｕｍ（登録商標）シリーズのマイクロプロセッサを含む任意の適当なマイクロプロセッサであることができるであろう。特定のプロトコル、実装形態および構成要素が特に参照されてきたが、「バンプ・イン・ザ・ライン」およびルーティング装置両方のネットワーク装置が、本発明の範囲から逸脱することなく、プロトコルに関係なく、種々の異なる実装形態において機能することができることを当業者は理解されたい。
【００６０】
本発明が詳細に記載されてきたが、その最も広範な形態において本発明の精神および範囲から逸脱することなく、当業者であれば、種々の変形形態、代替形態および変更形態を実施できることを当業者には理解されたい。
【図面の簡単な説明】
【図１】
本発明が動作することができる例示的な環境を示すネットワークトポロジー図である。
【図２】
本発明による「バンプ・イン・ザ・ライン」ネットワーク装置のブロック図である。
【図３】
図２のペイロード走査エンジンのブロック図である。
【図４】
本発明によるルーティングネットワーク装置のブロック図である。
【図５】
サービス拒否攻撃を防ぐための本発明による方法を示す流れ図である。
【図１】
2004503146.tif 000003
【図２】
2004503146.tif 000004
【図３】
2004503146.tif 000005
【図４】
2004503146.tif 000006
【図５】
2004503146.tif 000007
【国際公開パンフレット】
2004503146.tif 000008
2004503146.tif 000009
2004503146.tif 000010
2004503146.tif 000011
2004503146.tif 000012
2004503146.tif 000013
2004503146.tif 000014
2004503146.tif 000015
2004503146.tif 000016
2004503146.tif 000017
2004503146.tif 000018
2004503146.tif 000019
2004503146.tif 000020
2004503146.tif 000021
2004503146.tif 000022
2004503146.tif 000023
2004503146.tif 000024
2004503146.tif 000025
2004503146.tif 000026
2004503146.tif 000027
2004503146.tif 000028
2004503146.tif 000029
2004503146.tif 000030
2004503146.tif 000031
【国際調査報告】
2004503146.tif 000032
2004503146.tif 000033