(57)【特許請求の範囲】
【請求項１】
ネットワークのエンドシステムに対するコントローラノードによる増幅攻撃を軽減する方法であって、
前記ネットワーク内の中間ノードによって受信されたパケットに対して候補定義を適用し、前記受信されたパケットの中から１または複数の候補攻撃要求パケットを検出することであって、前記候補攻撃要求パケットは、前記中間ノードに、前記候補攻撃要求パケットのデータ量より大きいデータ量の応答パケットを送信させること、
前記中間ノードによって受信された候補攻撃要求パケットごとに、データ量を表すクレジットを累積すること、
前記中間ノードから前記エンドシステムに送信される、前記受信された候補攻撃要求パケットに対応する応答パケットごとにクレジットを計算すること、
前記計算されたクレジットが前記累積されたクレジットを越えない場合、前記応答パケットを前記中間ノードから前記エンドシステムに送信すること、および
前記応答パケットの送信に応答して、前記累積されたクレジットから前記応答パケットの計算されたクレジットを減算すること
を備えたことを特徴とする方法。
【請求項２】
前記計算されたクレジットが前記累積されたクレジットを越える場合、前記応答パケットを前記中間ノードでドロップすることをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記計算されたクレジット値が前記累積されたクレジットを越える場合、前記中間ノードから前記エンドシステムへの前記応答パケットの送信を遅延させることをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項４】
前記中間ノードによって累積された前記クレジットの上限を事前定義されたしきい値に制限することをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項５】
前記中間ノードによって累積された前記クレジットを、タイマに従って減らすことをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項６】
前記中間ノードによって累積された前記クレジットを、タイマに従って減らすことであって、前記タイマは、新しい候補攻撃要求パケットが前記中間ノードによって受信され、前記累積されたクレジットが増すとき、再始動されることをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項７】
ネットワークのエンドシステムに対するコントローラノードによる増幅攻撃を軽減するためのコンピュータプログラムであって、
前記ネットワーク内の中間ノードによって受信されたパケットに対して候補定義を適用し、前記受信されたパケットの中から１または複数の候補攻撃要求パケットを検出することであって、前記候補攻撃要求パケットは、前記中間ノードに、前記候補攻撃要求パケットのデータ量より大きいデータ量の応答パケットを送信させること、
前記中間ノードによって受信された候補攻撃要求パケットごとに、データ量を表すクレジットを累積すること、
前記中間ノードから前記エンドシステムに送信される、前記受信された候補攻撃要求パケットに対応する応答パケットごとにクレジットを計算すること、
前記計算されたクレジットが前記累積されたクレジットを越えない場合、前記応答パケットを前記中間ノードから前記エンドシステムに送信すること、および
前記応答パケットの送信に応答して、前記累積されたクレジットから前記応答パケットの計算されたクレジットを減算すること
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項８】
前記計算されたクレジットが前記累積されたクレジットを越える場合、前記応答パケットを前記中間ノードでドロップすることを前記コンピュータに実行させることを特徴とする請求項７に記載のコンピュータプログラム。
【請求項９】
前記計算されたクレジット値が前記累積されたクレジットを越える場合、前記中間ノードから前記エンドシステムへの前記個々の応答パケットの送信を遅延させることを前記コンピュータに実行させることを特徴とする請求項７に記載のコンピュータプログラム。
【請求項１０】
前記中間ノードによって累積された前記クレジットの上限を事前定義されたしきい値に制限することを前記コンピュータに実行させることを特徴とする請求項７に記載のコンピュータプログラム。
【請求項１１】
前記中間ノードによって累積された前記クレジットを、タイマに従って減らすことを前記コンピュータに実行させることを特徴とする請求項７に記載のコンピュータプログラム。
【請求項１２】
前記中間ノードによって累積された前記クレジットを、タイマに従って減らすことであって、前記タイマは、新しい候補攻撃要求パケットが前記中間ノードによって受信され、前記累積されたクレジットが増すとき、再始動されることを前記コンピュータに実行させることを特徴とする請求項７に記載のコンピュータプログラム。
【請求項１３】
ネットワーク内のエンドシステムに対するコントローラノードによる増幅攻撃を軽減するためのネットワーキングサブシステムであって、
前記ネットワーク内の中間ノードによって受信されたパケットに対して候補定義を適用し、前記受信されたパケットの中から１または複数の候補攻撃要求パケットを検出するネットワーク要求プロセッサであって、前記候補攻撃要求パケットは、前記中間ノードに、前記候補攻撃要求パケットのデータ量より大きいデータ量の応答パケットを送信させること、
前記中間ノードによって受信された候補攻撃要求パケットごとに、データ量を表すクレジットを累積し、前記中間ノードから前記エンドシステムに送信される、前記受信された候補攻撃要求パケットに対応する応答パケットごとにクレジットを計算し、前記計算されたクレジットが前記累積されたクレジットを越えない場合、前記応答パケットを前記中間ノードから前記エンドシステムに送信し、および前記応答パケットの送信に応答して、前記累積されたクレジットから前記応答パケットの計算されたクレジットを減算する送信スケジューラと
を備えたことを特徴とするネットワーキングサブシステム。
【請求項１４】
受信されたパケットが、信頼されたパケットまたは候補攻撃要求パケットであるか否か判定することであって、該候補攻撃要求パケットは、中間ノードがエンドシステムに応答パケットを通信するように構成された攻撃要求パケットであって前記応答パケットのデータ量が前記中間ノードによって受信された攻撃要求パケットに含まれるデータ量より大きい攻撃要求パケットの候補であり、少なくとも前記エンドシステムに関連付けられた宛先アドレスおよび前記受信されたパケットのソースに関連付けられたソースアドレスに基づいて判定すること、
前記受信されたパケットが信頼されたパケットであると判定されると、前記受信されたパケットを宛先アドレスに送信すること、
前記受信されたパケットが候補攻撃要求パケットであると判定されると、前記候補攻撃要求パケットに含まれるデータ量を前記受信されたパケットのソースに関連付けられた第１のデータ量に加え、該第１のデータ量は、前記ソースから受信した全データ量から前記ソースに代わって送信されたデータ量を差し引いたデータ量を示すこと、および
前記候補攻撃要求パケットの応答パケットのデータ量が前記第１のデータ量より小さいとき、前記候補攻撃要求パケットを宛先アドレスに送信すること
を備えたことを特徴とする方法。
【請求項１５】
前記判定することは、前記宛先アドレス、前記受信されたパケットのタイプおよび前記ソースアドレスに基づいて判定することを特徴とする請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にネットワークインフラストラクチャに関し、より詳細には、ネットワーク増幅攻撃の軽減に関する。
【背景技術】
【０００２】
インターネットサイトにおけるサービス拒否（ＤｏＳ）攻撃は、あまりにも頻繁に発生しており、影響を受けるコンピュータシステムへの悪意的損害の特定の形態を引き起こしている。一般に、ＤｏＳ攻撃は、正当なユーザがこのようなシステム上のコンピュータサービスにアクセスすることを妨げることを目的とする。例えば、ある会社のウェブサイトのネットワーク帯域幅を圧迫することによって、悪意のあるコンピュータ（またはコンピュータのグループ）は、他のユーザがその会社のウェブサイトにアクセスして注文を出したり、サービスを得ることを妨げることができる。このような攻撃の理由は、さまざまであるが、最近はゆすり（a protection racket）に類似した脅迫メール（blackmail）の試みがある。いくつかの状況では、ＤｏＳ攻撃は、コンピュータシステムを所有する会社で「ピケを張る（picketing）」ことに似ている場合もある。
【０００３】
加害者は、ＤｏＳ攻撃をいくつかの方法で発生させることができる。以下の３つの基本的な攻撃の分野があるが、他の攻撃が使用される場合もある。
【０００４】
（１）帯域幅、ディスクスペースまたはＣＰＵ時間など、制限されたリソースの消費、
（２）ルーティング情報またはレジストリエントリなど、構成情報の改ざん、および、
（３）ネットワーキングコンポーネントの物理的な破壊。
【０００５】
リソースへの攻撃はますます多くなってきており、主に、インターネットを介して過剰な、または偽のパケットデータによりネットワークを「フラッディング（flood）」させる試みを通じて行われ、それによりウェブサイトへの正当なトラフィックを妨げる。分散サービス拒否（ＤＤｏＳ）攻撃では、多数のコンピュータが連携してターゲットシステムを攻撃する。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
いくつかのＤＤｏＳ攻撃は、分散された中間デバイスをネットワークエンドポイント（すなわち、エンドシステム）に対して使用する。潜在的に信用できないか、または敵意のあるマスタコントローラは、多くの中間スレーブエージェント（例えば、ルーターまたはプロキシ）に、過剰なネットワークトラフィック（すなわち、攻撃トラフィック）をネットワーク内のエンドシステムへ送信するように（またはそうでない場合は、そのエンドシステムのあるリソースを過剰に使用するように）命令する能力を有する。各スレーブから発生した攻撃トラフィックの負荷が、不良なマスタコントローラまたは「加害者」によってスレーブに投入されたトラフィック負荷より大きい場合、この攻撃は「ネットワーク増幅攻撃（network amplification attack）」と呼ばれる。
【０００７】
本明細書で説明および主張する実施態様は、ネットワーク増幅攻撃を軽減するための改良されたネットワークプロトコルを提供することによって、上述の問題に対処する。一時的な分散攻撃のいずれも引き起こす可能性のある絶対ネットワーク負荷またはリソース負荷は、リソースクレジッティングスキーム（resource crediting scheme）に基づいて制限される。いくつかの実施態様では、このような攻撃の時間フレームもまた、リソースクレジッティングスキームに適用された時間制限を使用して制限される。
【課題を解決するための手段】
【０００８】
いくつかの実施態様では、製造品は、コンピュータプログラム製品として提供される。コンピュータプログラム製品の一実施態様は、コンピュータシステムによって読取り可能なコンピュータプログラム記憶媒体を提供し、コンピュータプログラムをエンコードする。コンピュータプログラム製品のもう１つの実施態様は、コンピューティングシステムによって搬送波に具現化されたコンピュータデータ信号において提供され、コンピュータプログラムをエンコードする。
【０００９】
コンピュータプログラム製品は、コンピュータシステム上で実行するコンピュータプロセスのためのコンピュータプログラムをエンコードする。コンピュータプロセスは、ネットワーク内のエンドシステム上のコントローラノードによる増幅攻撃を軽減する。ネットワーク内の中間ノードによって受信された、１または複数の候補攻撃要求パケットを検出する。中間ノードからエンドシステムに通信された応答パケットの応答トラフィックは、コントローラノードから中間ノードに通信された候補攻撃要求パケットから導出されたクレジットによって制限される。
【００１０】
もう１つの実施態様では、ネットワーク内のエンドシステム上のコントローラノードによる増幅攻撃を軽減する方法が提供される。ネットワーク内の中間ノードによって受信された、１または複数の候補攻撃要求パケットが検出される。中間ノードからエンドシステムに通信された応答パケットの応答トラフィックは、コントローラノードから中間ノードに通信され、検出された候補攻撃要求パケットから導出されたクレジットによって制限される。中間ノードからエンドシステムに送信された各応答パケットは、クレジットを引き出す（draw on）。
【００１１】
もう１つの実施態様では、ネットワーク内のエンドシステム上のコントローラノードによる増幅攻撃を軽減するためのアプリケーションが提供される。ネットワーク要求プロセッサは、ネットワーク内の中間ノードによって受信された、１または複数の候補攻撃要求パケットを検出する。送信スケジューラは、中間ノードからエンドシステムに通信された応答パケットの応答トラフィックを、コントローラノードから中間ノードに通信された候補攻撃要求パケットから導出されたクレジットによって制限する。
【００１２】
さらにもう１つの実施態様では、ネットワーク内のエンドシステム上のコントローラノードによる増幅攻撃を軽減するためのネットワーキングサブシステムが提供される。ネットワーク要求プロセッサは、ネットワーク内の中間ノードによって受信された、１または複数の候補攻撃要求パケットを検出する。送信スケジューラは、中間ノードからエンドシステムに通信された応答パケットの応答トラフィックを、コントローラノードから中間ノードに通信された候補攻撃要求パケットから導出されたクレジットによって制限する。
【００１３】
他の実施態様もまた本明細書で説明および列挙される。
【発明を実施するための最良の形態】
【００１４】
ネットワーク増幅攻撃を軽減するための改良されたネットワークプロトコルが提供される。一時的な分散攻撃のいずれも引き起こす可能性のある絶対ネットワーク負荷またはリソース負荷は、リソースクレジッティングスキームに基づいて制限される。このプロトコルは、「クレジット」を、候補攻撃要求パケットの受信および検出の上で累積し、応答パケットを送信するとき、そのクレジットを引き出す（draw against）。いくつかの実施態様では、このような攻撃の時間フレームを、リソースクレジッティングスキームに適用された時間制限を使用して制限する。
【００１５】
図１は、コントローラノード１０２、複数の中間ノード１０４および１０６（例えば、プロキシサーバなど）、および、電子商取引サイトまたは企業の他のリソースサーバなどのエンドシステム１０８を含む、ネットワーク構成１００を示す。例示的増幅攻撃シナリオでは、コントローラノード１０２（または「加害者」）は、大量の攻撃要求トラフィック１１０を中間ノード１０４および１０６へ、ネットワーク１１２を介して送信する。このトラフィックには攻撃要求パケットが含まれ、各攻撃要求パケットは、個々の中間ノード１０４および１０６に、攻撃応答パケット１１４をエンドノード１０８に送信させるように構成される。従って、攻撃応答データの量が攻撃要求データの量より大きい場合、「増幅された」レベルの攻撃応答トラフィック１１４がエンドシステム１０８に通信される（すなわち、攻撃要求トラフィックのレベルに対して）。
【００１６】
例えば、不良コントローラノード１０２は、大量のＨＴＴＰ  ＧＥＴ要求トラフィックを中間ノード１０４および１０６に送信することができる。ある種の攻撃では、ＨＴＴＰ  ＧＥＴ要求トラフィックは、犠牲者（すなわち、エンドノード１０８）のなりすましされた（spoofed）ソースアドレスを含む、攻撃要求パケットを含む。中間ノードは、一連のＨＴＴＰ  ＲＥＳＰＯＮＳＥパケットを攻撃トラフィックのソースアドレスに送信することによって、ＨＴＴＰ  ＧＥＴ要求パケットに応答するようになる。このような応答トラフィックは、しばしば、挿入されたＨＴＴＰ  ＧＥＴ要求トラフィックよりも大きい。従って、中間ノードは、不良コントローラノード１０２から受信されたトラフィックを増加させ、中間ノードが「増幅された」応答トラフィックをエンドノード１０８における攻撃として送信するようになる。複数の中間ノード１０４および１０６の使用は、さらにこの影響を増幅させる。このような増幅された攻撃トラフィックは、エンドノード１０８の使用可能な帯域幅および他のリソースを圧迫し、結果としてエンドノード１０８における「サービス拒否」攻撃となる可能性がある。中間ノード１０４および１０６ならびにエンドシステム１０８の操作は、このような攻撃によって損なわれる可能性がある。
【００１７】
中間ノードによって受信されたすべてのパケットが必ずしも攻撃要求パケットを構成するとは限らないことを理解されたい。多数のシナリオでは、任意のコントローラノードは、エンドシステムへのアクセスのために、攻撃を構成することなく、正当な要求をプロキシサーバに送信することができる。例えば、中間ノードは正当なＨＴＴＰ  ＧＥＴ要求に対して、その要求が攻撃の一部となることなく、受信および応答することができる。それにもかかわらず、コントローラノードは、攻撃要求パケットをプロキシサーバに、増幅攻撃の一部として送信することもできる。個々の正当な要求パケットと攻撃要求パケットの間の差異を認識することは、攻撃要求パケットの良くない性質が、しばしば個々のパケットごとに明白ではないので、問題になる可能性がある。
【００１８】
加えて、一実施態様では、信頼関係がコントローラノードと中間ノードの間に存在する可能性があり、信頼関係の中で受信されたパケットは、安全または「非攻撃」パケットと見なされる場合がある。従って、いくつかの実施態様では、このようなパケットを、攻撃要求パケットの「候補」として考慮することから除外する場合がある。しかし、信頼関係の中で通信されたトラフィックでさえ攻撃要求パケットを含む場合があり、従って、他の実施態様では、このようなパケットは、なお潜在的アタッカーと見なされることを理解されたい。ネットワーク管理者は、信頼されたパケットが候補攻撃要求パケットと見なされるかどうかについて、中間ノードを設定することができる。それにもかかわらず、候補攻撃要求パケットは、実際には攻撃要求パケットである場合もそうでない場合もある。
【００１９】
よって、「候補攻撃要求パケット」は、コントローラノードによるモニタリングされたリソースの量を暗示しまたは指定し、中間ノードによってその上で実行された場合、結果として、エンドシステムでのそのモニタリングされたリソースの応答量の消費（または、その消費のための要求）となる、コントローラ要求パケットを指す。応答量は、要求された量より大きい場合も、それより小さい場合も、あるいはそれに等しい場合もある。このような候補攻撃要求パケットは、結果として、可能な増幅を有する分散サービス拒否攻撃となる場合がある。リソースの「暗示された」量の一例は、ネットワーク帯域幅であり、ネットワーク帯域幅は、要求パケットトラフィックの量によって暗示される場合がある。対照的に、ストレージ要求は、コントローラノードによって要求されたストレージの量を指定することができる。
【００２０】
候補攻撃要求パケットの一例には、ウェブプロキシによって受信および検出されるコントローラからのＨＴＴＰ要求が含まれ、ウェブプロキシは、別のサーバ（例えば、ＵＲＬまたはネクストホップのプロキシによって示唆されたサーバ）にプロキシ要求を行うことによってのみ、この要求を満たすことができる。また、いくつかの実施態様では、候補攻撃要求パケットを、中間ノードとコントローラノードの間に存在する以前の信頼／身元関係に依拠することなく、ネットワーク内の中間ノードによって軽減されたフレームワーク内で通常に処理することができる。
【００２１】
攻撃要求パケットを受信する可能性が与えられると、各中間ノード１０４および１０６は、このようなパケットに応答して引き起こされる可能性のある損害を軽減する機能を組み込む。このために、中間ノード１０４および１０６は、候補攻撃要求パケットを検出し、起こりうる攻撃応答パケットの出力トラフィックを、入力された候補攻撃要求パケットのトラフィックに基づいて制限することができる。一実施態様では、増幅率（所与のソースから受信された要求パケットと各中間ノードを通じて送信された応答パケットの間の）は、わずか１：１に過ぎない比率（例えば１：「≦１」）に制限される。他の実施態様では、受け入れ可能な増幅率は、１：１の比率の近接（例えば、１：「≦１．１」、１：「≦２」、または、ネットワーク管理者によって受け入れ可能と見なされる、より大きい定義済みの比率）に制限される場合がある。１：１より大きい比率は、コントローラのためのより短い充電サイクルを与える。それにもかかわらず、ネットワーク管理者は、この受け入れ可能なトレードオフを発見して、中間ノードを通じた正当なトラフィックのパフォーマンスを向上させることができる。このように各中間ノードからエンドシステムへの応答トラフィックのレベルを、受信された候補攻撃要求トラフィックのレベルに基づいて制限することによって、アタッカーがわざわざ分散スレーブをハイジャックするためのインセンティブは、大幅に低減される。
【００２２】
加えて、信頼されたチャネル１１６を介した通信が複数の中間ノードの間に存在する場合、中間ノードは、増幅率の管理を調整して、ネットワーク使用の分散ポリシングおよびモニタリングを提供することができる。
【００２３】
図２は、コントローラノード２０２、ルーターの形態における複数の中間ノード２０４、２０６および２０８、および、電子商取引サイトまたは企業の他のリソースサーバなどのエンドシステム２１０を含む、ネットワーク構成２００を示す。例えば、ルーター２０４、２０６および２０８は、パケットを企業の内部ネットワーク２１８にルーティングする。例示的な増幅攻撃のシナリオでは、不良コントローラノード２０２は、大量の攻撃要求パケット２１２をルーター２０４、２０６および２０８へ、ネットワーク２１４を介して挿入する。攻撃要求パケットは、各ルーターに、一連の攻撃応答パケット２１６をエンドノード２１０に送信させる（例えば、ＨＴＴＰ  ＧＥＴ要求または他のメソッド内のソースアドレスをなりすますことによる）ように構成される。従って、増幅されたレベルの攻撃応答トラフィック２１６が、エンドシステム２１０に通信される。
【００２４】
しかし、中間ノード２０４、２０６および２０８は、候補攻撃要求パケットを検出し、可能な攻撃応答パケットの出力トラフィックを、入力候補攻撃要求パケットトラフィックの検出に基づいて制限することができる。一実施態様では、１：「≦１」の増幅率を、受信された要求パケットと各中間ノードを通じて送信された応答パケットとの間で維持する。このように、各ルーターからエンドシステムへの応答トラフィックのレベルを、受信された候補攻撃要求トラフィックのレベルに基づいて制限することによって、アタッカーがわざわざ分散スレーブをハイジャックするためのインセンティブを、大幅に低減する。
【００２５】
図１に関して論じたものに類似の方法で、信頼されたチャネルを介した通信が複数の中間ノードの間に存在する場合、中間ノードは、増幅率の管理を調整して、ネットワーク使用の分散ポリシングおよびモニタリングを提供することができる。
【００２６】
図３は、増幅攻撃軽減サブシステム３００の例示的実施態様を示す。図３の例示された実施態様では、増幅攻撃を軽減するシステムは、ネットワークサブシステムモジュールとして（例えば、プロトコルドライバ内で）実装され、このモジュールは、中間ノードのための攻撃を軽減する機能を提供する。
【００２７】
パケットトラフィックは、ネットワークトランスポートスタック３０２を通じてネットワークと通信する。受信されたパケットには、正当なノードまたは不良なノードからの要求パケットが含まれる可能性があり、受信されたパケットは、ネットワーク要求プロセッサ３０４に渡される。ネットワーク要求プロセッサ３０４は、各パケットの宛先アドレス、タイプおよびソースアドレスを検出／評価する。この情報に基づいて、ネットワーク要求プロセッサ３０４は、各受信されたパケットが候補攻撃要求パケットであるかどうかを判断する。この検出は、パケットが攻撃要求パケットの「候補」と見なされるようにするパケット情報を定義するように構成される場合がある。例えば、管理者は、所与のタイプの、または、所与の宛先アドレスへのパケットが決して攻撃のための「候補」と見なされないと決定することができる。従って、検出操作は、一実施態様では、選択的および構成可能である。
【００２８】
候補攻撃要求パケットが検出される場合、ネットワーク要求プロセッサ３０４は、そのパケットについてのクレジットを計算する。例示的なクレジットのプロパティは、パケットサイズ、ストレージ要求サイズ、中央処理装置（ＣＰＵ）使用要求、電力要件などに基づくことができる。パケットごとに計算されたクレジットは、送信スケジューラ３０８のクレジットカウンタ３０６に渡され、パケットは、プロキシアプリケーション、ルーティングアプリケーションまたは他の中間アプリケーションなど、宛先アプリケーション３１０上に、インタフェース３１２を通じて転送される。
【００２９】
クレジットカウンタ３０６は、送信のために使用可能なクレジットのバランスを維持する。受信バイトをクレジットプロパティとして使用する単純な実施例では、中間ノードが５つの各１００バイトの候補攻撃要求パケットを受信する場合、５００単位のクレジットを、クレジットカウンタ３０６に「預け入れる」ことができる。従って、最大５００バイトを、受信された要求パケットに応答して送信することができ、応答パケットが送信スケジューラ３０８を通じて送信されると、クレジットは引き出される（draw down）。一実施態様では、クレジットは、すべてのコントローラについて（コントローラ毎のベースではなく）累積されて、アタッカーが複数の有効なコントローラの身元に成りすますシナリオが回避され、クレジットの増幅された蓄積を作成する。しかし、他の実施態様では、クレジットをコントローラ毎のベースで、パケットタイプ毎のベースで、エンドシステム毎のベースで（例えば、所与のクラスのシステム内で信頼可能に識別されるホストのセット）、および他のより細かいベースで、累積および評価することができる。
【００３０】
例示的実施態様では、クレジットカウンタ３０６は、クレジットカウンタ３０６によって累積することができるクレジットの最大量を制限するクレジット制限Ｌが設定されることにおいても、制限される。従って、中間ノードは、クレジットを（例えば、現在のコントローラから受信されたデータの受信量に基づいて）、最大でクレジット制限Ｌまで累積することができる。
【００３１】
加えて、例示的実施態様では、クレジットカウンタ３０６は、クレジットタイマ３１４と対話することもでき、クレジットタイマ３１４は、クレジットが送信スケジューラ３０８を通じた送信のために使用可能である期間を制限する。初期状態（例えば、クレジットがクレジットカウンタ３０６内に累積されない状態）では、クレジットタイマ３１４は、クレジットがクレジットカウンタ３０６に追加されるとき、Ｔのタイムアウト値から始動される。クレジットタイマ３１４がカウントダウン中である期間中に、送信は、クレジットカウンタ３０６によって維持されたクレジットを引き出す。クレジットタイマ３１４が満了する場合、クレジットカウンタ３０６内のすべての残りのクレジットは、キャンセルされる（例えば、ゼロに設定される）。クレジット制限値Ｌおよびタイムアウト値Ｔを、ネットワーク内で予期される実際の作業負荷と一致するように設定することができる。
【００３２】
クレジットタイマ３１４がカウントダウン中であり、クレジットカウンタ３０６がその最大値Ｌでない間に、追加の候補攻撃要求パケットが中間ノードによって受信される場合、クレジットタイマ３１４は、タイムアウト値Ｔから再始動される。追加の候補攻撃要求パケットが受信されるとき、クレジットタイマ３１４のカウントダウン中にクレジットカウンタ３０６がすでにその最大値Ｌである場合、カウントダウンは、再始動なしに継続する。
【００３３】
図３に関して説明した構成に基づいて、分散攻撃に対するネットワークのエクスポージャ（すなわち、攻撃バイトの最大数Ｂｍａｘ）は、Ｍｉｎ（Ｕ＊Ｔ，Ｎ＊Ｌ）によって制限される。ただし、Ｕは「アタッカーのアップリンク帯域幅」を表し、Ｎは「ネットワーク内の中間物の数」を表す。企業用の分散ネットワークプロトコルの設計者は、Ｂｍａｘの受け入れ可能な値を定義することができる。一実施態様では、Ｂｍａｘは、企業のネットワーク内のすべての既知の攻撃ターゲットに渡る最小ダウンリンク帯域幅によって制限される場合がある。
【００３４】
インタフェース３１２は、アプリケーション３１０と増幅攻撃軽減サブシステム３００の間の通信インタフェースを提供する。加えて、インタフェース３１２は、管理者がネットワーク統計を監視することができるユーザインタフェースも提供することができ、ネットワーク統計には、クレジット状態およびタイマ状態の監視すること、および、サブシステムプロパティ（例えば、クレジット制限Ｌまたはタイムアウト値Ｔ）を構成することが含まれる。
【００３５】
いくつかの実施態様では、中間ノードは、異なるリソース（例えば、帯域幅、ストレージなど）、異なるコントローラアドレス、異なるエンドシステム、異なるパケットタイプ、および他の基準について、個々のクレジットカウンタおよびタイマを維持することができることを理解されたい。中間ノードは、どの応答パケットがどの要求パケットによって生じるかを追跡し、クレジットを対応するクレジットカウンタから引き出す。
【００３６】
図４は、アプリケーション４００における増幅攻撃軽減コンポーネントの例示的実施態様を示す。図４のアプリケーション攻撃コンポーネントにおける１つの違いは、アプリケーション攻撃コンポーネントがアプリケーション４００に統合され、アプリケーションモジュール４０２が、インタフェース４０８を通じてではなく、ネットワーク要求プロセッサ４０４および送信スケジューラ４０６と直接通信することである。全体的に、図３および４に例示した実施態様は、増幅攻撃軽減サブシステムがネットワークサブシステム内に（図３）、または、プロキシアプリケーションもしくはルーターアプリケーションなど、アプリケーションの機能として（図４）配置される場合があることを表す。
【００３７】
図５は、パケットを受信するための例示的操作５００を示す。受信操作５０２は、パケットを１または複数のソースから受信する。受信されたパケットには、非攻撃パケットおよび攻撃要求パケットが含まれる可能性がある。検出操作５０４は、各パケットを評価して、そのパケットが攻撃パケットである可能性があるかどうかを、使用可能な候補定義に基づいて判断する。例えば、検出操作５０４は、ある候補定義を各パケットに適用し、パケットがその定義を満たす場合、そのパケットを候補攻撃要求パケットとして指定することができる。例示的な候補定義パラメータには、ソースアドレス、パケットタイプ、宛先アドレス、日付、時間、パケットサイズおよび他のパケット特性を含むことができる。
【００３８】
例えば、ＴＣＰスタックシグネチャを、候補定義パラメータとして使用することができる。特定のＴＣＰ実装の遅延およびビヘイビアを評価して、特定のエンドシステムタイプ／バージョンを識別する。これは、ＴＣＰ／ＩＰの仕様が、微妙に異なる実装を可能にするための十分な柔軟性を許容するので、可能である。これらの微妙に異なるビヘイビアの検出は、エンドシステムが特定のＯＳバージョンを実行中であるかどうか、および、ＴＣＰ／ＩＰスタックの特定のパッチレベルが既知のセキュリティ上の弱点に対して脆弱であるかどうかを判断するための、従来のハッカー技術である。
【００３９】
パケットが候補攻撃要求パケットとして指定されない場合、パケットは送信操作５０６によって宛先（例えば、中間ノード内のアプリケーション）へ送信される。しかし、パケットが候補攻撃要求パケットとして指定される場合、パケットのためのクレジット値は、計算操作５０８内で計算される（例えば、パケットのサイズ、要求されたリソースの量など）。
【００４０】
預け入れ操作５１０で、計算されたクレジットは、クレジットカウンタに、最大で中間ノードのクレジット制限Ｌまで「預け入れ」られる。預け入れの結果として、クレジットカウンタがそのクレジット制限でない場合、クレジットタイマを再始動させることになる場合がある。次に、受信されたパケットは送信操作５０６によって宛先（すなわち、ローカルアプリケーション）に送信される。次いで、処理は受信操作５０２に戻り、後続のパケットを受信する。
【００４１】
図６は、応答パケットを送信するための例示的操作６００を示す。選択操作６０２は、中間ノード内のアプリケーションまたはサービスによって実装された送信バッファからパケットを選択する。計算操作６０４は、選択されたパケットを宛先に送信するために必要とされたクレジットを計算する。例えば、パケットのサイズを、クレジット要件として使用することができる。対照的に、選択されたパケットによる宛先ノードの要求されたストレージの量（すなわち、バックアップまたはデータミラーリングアプリケーションにおける）を、クレジットのプロパティとして使用してもよい。他のクレジットプロパティを使用してもよく、これらのプロパティは、ＣＰＵ要求、記憶容量、電力などを含む。
【００４２】
判断操作６０６は、パケットを送信するためにクレジットカウンタ内に十分なクレジットが存在するかどうかを判断する。そうでない場合、パケットの送信は、変更操作６０８内で何らかの方法で変更される。例えば、パケットの送信を、十分なクレジットが存在する、および／または、廃棄される（例えば、パケットがドロップされる）まで、遅延することができる。次に、処理は選択操作６０２に戻り、後続のパケットを選択する。
【００４３】
パケットを送信するためにクレジットカウンタ内に十分なクレジットが存在する場合、差し引き操作６１０は、必要とされたクレジットをクレジットカウンタから差し引き、送信操作６１２は、パケットをその宛先に送信する。処理は選択操作６０２に戻り、後続のパケットを選択する。
【００４４】
図７は、コントローラノード７００、ストレージリソース７０６および７０８を有する複数のエンドシステム７０２および７０４、ならびに、ストレージリソース７１２を有するバックアップサーバ７１０を含む、ネットワーク構成を示す。図７のアーキテクチャは、コントローラノード７００がデータをストレージリソース７０６および７０８上に格納することができ、格納されたデータがバックアップサーバ７１０のストレージリソース７１２上にバックアップされるように設計される。操作上、コントローラノード７００は、例えば、エンドシステム７０２で指定された量のストレージスペースを必要とするストレージパケットを送信することができる。この要求に応答して、エンドシステム７０２は、データをストレージリソース７０６内に格納し、バックアップ要求およびデータをバックアップサーバ７１０に転送する。
【００４５】
十分な量において、不良コントローラノードは、バックアップサーバ７１０をこのような要求により１または複数のエンドシステムを通じて圧迫することができ、バックアップサーバ７１０への帯域幅を飽和し、および／または、使用可能なストレージおよびＣＰＵ能力が使い尽くされるようにすることができる。従って、エンドシステム７０２および７０４（この実施例では、コントローラノード７００とバックアップサーバ７１０の間の中間ノードとして動作中である）を通じて要求されたバックアップストレージの量を、クレジットカウンティングおよびクレジットタイミングを使用して制限することによって、バックアップサーバおよびエンドシステムのパフォーマンスおよびリソースに対するいかなる障害をも軽減することができる。
【００４６】
他のエンドシステムリソースを、説明したシステム、方法およびプログラム製品の様々な実施態様において保護することができ、他のエンドシステムリソースには、制限なしに、ＣＰＵ能力、電力網またはバッテリバックアップからの電力、およびメモリ容量が含まれることも理解されたい。
【００４７】
本発明を実施するための図８の例示的ハードウェアおよびオペレーティング環境には、コンピュータ２０の形態における汎用コンピューティングデバイスが含まれ、コンピュータ２０には、処理装置２１、システムメモリ２２、および、システムメモリを含む様々なシステムコンポーネントを処理装置２１に動作可能に結合するシステムバス２３が含まれる。ただ１つ、または１つ以上の処理装置２１が存在する場合があり、コンピュータ２０のプロセッサは、単一の中央処理装置（ＣＰＵ）を備えるようになるか、あるいは、複数の処理装置を備えるようになり、これは一般に並列処理環境と呼ばれる。コンピュータ２０は、従来のコンピュータであってもよく、分散コンピュータであってもよく、または他のいかなる種類のコンピュータであってもよく、本発明はそのように限定されない。
【００４８】
システムバス２３をいくつかの種類のバス構造のいずれにすることもでき、これらのバス構造には、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、スイッチドファブリック、ポイントツーポイント接続、およびローカルバスが含まれる。システムメモリはまた単にメモリとも呼ばれる場合があり、読み取り専用メモリ（ＲＯＭ）２４およびランダムアクセスメモリ（ＲＡＭ）２５が含まれる。基本入出力システム（ＢＩＯＳ）２６は、起動中など、コンピュータ２０内の複数の要素の間で情報を転送する助けとなる基本ルーチンを含み、ＲＯＭ２４に格納される。コンピュータ２０は、図示しないハードディスクに対する読み書きを行うためのハードディスクドライブ２７、リムーバブル磁気ディスク２９に対する読み書きを行うための磁気ディスクドライブ２８、および、ＣＤ  ＲＯＭや他の光媒体などのリムーバブル光ディスク３１に対する読み書きを行うための光ディスクドライブ３０をさらに含む。
【００４９】
ハードディスクドライブ２７、磁気ディスクドライブ２８および光ディスクドライブ３０はシステムバス２３を、それぞれハードディスクドライブインタフェース３２、磁気ディスクドライブインタフェース３３および光ディスクドライブインタフェース３４に接続する。これらのドライブおよびそれらの関連付けられたコンピュータ読取り可能媒体は、コンピュータ２０用のコンピュータ読取り可能命令、データ構造、プログラムモジュールおよび他のデータの不揮発性ストレージを提供する。コンピュータによってアクセス可能であるデータを格納することができる、いかなる種類のコンピュータ読取り可能媒体をも例示的オペレーティング環境内で使用することができ、これらのコンピュータ読取り可能媒体は、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ（ＲＡＭ）、および読み取り専用メモリ（ＲＯＭ）などであることを、当業者には理解されたい。
【００５０】
いくつかのプログラムモジュールをハードディスク、磁気ディスク２９、光ディスク３１、ＲＯＭ２４またはＲＡＭ２５上に格納することができ、これらのプログラムモジュールは、オペレーティングシステム３５、１または複数のアプリケーションプログラム３６、他のプログラムモジュール３７およびプログラムデータ３８を含む。ユーザは、コマンドおよび情報をパーソナルコンピュータ２０へ、キーボード４０およびポインティングデバイス４２などの入力デバイスを通じて入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどが含まれる可能性がある。これらおよび他の入力デバイスは、しばしば処理装置２１へ、システムバスに結合されるシリアルポートインタフェース４６を通じて接続されるが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（ＵＳＢ）など、他のインタフェースによって接続されてもよい。モニタ４７または他のタイプの表示デバイスもまたシステムバス２３へ、ビデオアダプタ４８などのインタフェースを介して接続される。モニタに加えて、コンピュータには通常、スピーカおよびプリンタなど、他の周辺出力デバイス（図示せず）が含まれる。
【００５１】
コンピュータ２０は、ネットワーク環境において、リモートコンピュータ４９など、１または複数のリモートコンピュータへの論理接続を使用して動作することができる。これらの論理接続は、コンピュータ２０またはその一部に結合された通信デバイスによって達成され、本発明は特定のタイプの通信デバイスに限定されない。リモートコンピュータ４９は、別のコンピュータ、サーバ、ルーター、ネットワークＰＣ、クライアント、ピアデバイスまたは他の共通ネットワークノードであってもよく、典型的には、コンピュータ２０に関連して上述した要素の多数またはすべてを含むが、メモリストレージデバイス５０のみが図８に例示されている。図８に示す論理接続には、ローカルエリアネットワーク（ＬＡＮ）５１およびワイドエリアネットワーク（ＷＡＮ）５２が含まれる。このようなネットワーキング環境は、オフィスネットワーク、企業全体のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的であり、これらはすべての種類のネットワークである。
【００５２】
ＬＡＮネットワーキング環境において使用されるとき、コンピュータ２０は、ローカルネットワーク５１へ、通信デバイスの１つの種類であるネットワークインタフェースまたはアダプタ５３を通じて接続される。ＷＡＮネットワーキング環境において使用されるとき、コンピュータ２０は、典型的には、モデム５４、ネットワークアダプタ、ある種の通信デバイス、または、ワイドエリアネットワーク５２を介して通信を確立するための他のいかなる種類の通信デバイスも含む。モデム５４は、内部であっても外部であってもよく、システムバス２３へ、シリアルポートインタフェース４６を介して接続される。ネットワーク環境では、コンピュータ２０に関連して示したプログラムモジュールまたはその一部を、リモートメモリストレージデバイスに格納することができる。図示のネットワーク接続は例示的であり、複数のコンピュータの間で通信リンクを確立する他の手段およびそのための通信デバイスを使用することができることは理解されよう。
【００５３】
例示的実施態様では、ネットワーク要求プロセッサ、送信スケジューラ、インタフェースおよびアプリケーションモジュール、ネットワークトランスポートスタック、および他のモジュールを、オペレーティングシステム３５、アプリケーションプログラム３６または他のプログラムモジュール３７の一部として組み込むことができる。クレジットデータ、クレジット制限、タイムアウト値、ソースおよび宛先アドレス、候補定義、および他のデータを、プログラムデータ３８として格納することができる。
【００５４】
本明細書で説明した本発明の実施形態は、１または複数のコンピュータシステム内の論理ステップとして実装される。本発明の論理操作は、（１）１または複数のコンピュータシステム内で実行するプロセッサ実装ステップのシーケンスとして、および（２）１または複数のコンピュータシステム内で相互接続されたマシンモジュールとして実装される。この実装は、本発明を実施するコンピュータシステムのパフォーマンス要件に応じて選択できることである。従って、本明細書で説明した本発明の実施形態を構成する論理操作は、オペレーション、ステップ、オブジェクトまたはモジュールとして様々に称される。
【００５５】
上記の明細、実施例およびデータは、本発明の例示的実施形態の構造および使用の完全な説明を提供する。本発明の多数の実施形態を、本発明の精神および範囲から逸脱することなく作成することができるので、本発明は、付属の特許請求の範囲に存在する。
【図面の簡単な説明】
【００５６】
【図１】コントローラノード、複数の中間ノード、およびエンドシステムを含むネットワーク構成を示す図である。
【図２】コントローラノード、ルーターの形態における複数の中間ノード、およびエンドシステムを含むネットワーク構成を示す図である。
【図３】増幅攻撃軽減サブシステムの例示的実施態様を示す図である。
【図４】アプリケーションにおける増幅攻撃軽減コンポーネントの例示的実施態様を示す図である。
【図５】パケットを受信するための例示的操作を示す図である。
【図６】応答パケットを送信するための例示的操作を示す図である。
【図７】コントローラノード、ストレージリソースを有する複数のエンドシステム、および、ストレージリソースを有するバックアップサーバを含むネットワーク構成を示す図である。
【図８】説明した技術の実施態様において有用な例示的システムを示す図である。
【符号の説明】
【００５７】
３０２  ネットワークトランスポートスタック
３０４  ネットワーク要求プロセッサ
３０６  クレジットカウンタ
３０８  送信スケジューラ
３１０  アプリケーション
３１２  インタフェース
３１４  クレジットタイマ
【図１】
0004794197.tif 000002
【図２】
0004794197.tif 000003
【図３】
0004794197.tif 000004
【図４】
0004794197.tif 000005
【図５】
0004794197.tif 000006
【図６】
0004794197.tif 000007
【図７】
0004794197.tif 000008
【図８】
0004794197.tif 000009