(57)【特許請求の範囲】
【請求項１】
ネットワーク・サーバ上の一のポート番号に対する多数の接続リクエストが受信されるという形態の前記サーバへのフラッド攻撃を防止する方法であって、
前記ポート番号に対する一のホストからの一の接続リクエストを前記サーバが受信したことに応答して、当該ポートに残っている使用可能な接続数をポート番号毎に設定された値である割合Ｐにかけてしきい値を計算するステップと、
前記ホストに割当てられている前記ポートとの接続の数が前記しきい値を超えるかどうかを判定し、超える場合は、前記受信された接続リクエストを拒否するステップと
を含む、方法。
【請求項２】
ネットワーク・サーバ上の一のポート番号に対する多数の接続リクエストが受信されるという形態の前記サーバへのフラッド攻撃を防止する装置であって、
前記ポート番号に対する一のホストからの一の接続リクエストを前記サーバが受信したことに応答して、当該ポートに残っている使用可能な接続数をポート番号毎に設定された値である割合Ｐにかけてしきい値を計算する手段と、
前記ホストに割当てられている前記ポートとの接続の数が前記しきい値を超えるかどうかを判定し、超える場合は、前記受信された接続リクエストを拒否する手段と
を含む、装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に、ネットワークの分野に関し、特にネットワーク・トラフィックをサーバに溢れさせることでサーバを使用不能にしようとする悪意ある攻撃の防止に関する。
【０００２】
【従来の技術】
最近、インターネット上のサーバを標的にしてサーバを使用不能にするフラッド攻撃が増加している。フラッド攻撃はサーバを過負荷にし、よって使用不能にすることを目的に、比較的短い時間にサーバに多数のリクエストを送ることをいう。悪意あるユーザからのパケットの洪水により、構成ミスのあるシステムからのパケットの洪水の場合と同様にサーバが過負荷になる。最終的な結果は同じである。つまりサーバはリクエスト処理が間に合わなくなる。これにより正当なリクエストが適時に処理されなくなり、サーバが使用できなくなったり、クラッシュしたりすることもある。最近は、よく知られたＷｅｂでもフラッド攻撃が発生したとのニュースが聞かれる。フラッド攻撃は従来の侵入検出システムで防止することは難しい。これはトラフィックが正当かどうかを判断するのが困難なためである。
【０００３】
【発明が解決しようとする課題】
意図的フラッド攻撃と、接続リクエストのバーストにより生じる意図的ではない過負荷状況の影響は、正当なトラフィックと不当なトラフィックを区別するという従来の考え方を破棄することによって軽減すると本発明では考える。
【０００４】
【課題を解決するための手段】
本発明では、フラッドの状況で、フラッドの原因が正当なトラフィックか不当なトラフィックかにかかわらず、正当な操作が行われ、サーバはクラッシュしないことを保証しようとするポリシの対象として全トラフィックを考慮する。本発明により、過負荷によるサーバのクラッシュを防ぎやすくなり、攻撃者が全サーバ・リソースを消費することはできなくなる。
【０００５】
サーバ上のポート番号に対してホストから接続リクエストがあった場合、ホストに割当てられているポートとの接続数が確認される。接続数が第１しきい値を超える場合、接続リクエストは拒否される。好適な実施例では、要求側ホストに関連するＱｏＳ（サービス品質）パラメータにより許容される場合は、接続リクエストを拒否する決定を無効にすることができる。ただし好適な実施例のとき、ポートに使用できる接続の数が第２しきい値より少ない場合、接続リクエストは、どのような条件下でも拒否される。所定ホストとの接続の拒否により、意図的または非意図的な接続リクエスト・バーストの影響が緩和される。要求側ホストに関連したＱｏＳパラメータにもとづく所定リクエストの拒否決定の無効化は、特定のホストに対して行えるサービス保証を満足する上で役立つ。ただし、ＱｏＳ無効化パラメータが存在する場合でも、使用できるポート接続数が極端に少なくなったときの接続拒否は、サーバの完全な機能停止を防ぐのに役立つ。
【０００６】
好適な実施例では、サーバの所有者がフラッド・チェックの対象になるポート番号毎に、どの時点でもポートに可能な最大接続数（Ｍ）と、そのポートに残っている未割当て（使用可能な）接続の支配的割合（Ｐ）を指定する。本発明は、ポートに割当てられた（使用できない）接続の数を追跡し、使用できるポート接続数を計算するため、使用できない接続数を最大接続数からマイナスする。割合Ｐは、接続リクエストを拒否する最初の決定をトリガする第１しきい値を設定するため用いられる。具体的には、最初の拒否がトリガされるのは、要求側ホストに割当てられた既存接続数が使用可能な接続のしきい値割合に等しいかまたはそれを上回る場合である。
【０００７】
ほとんどの所有者にとって、最大接続数としきい値を設定することは容易ではない。そこで、複数のサーバの通常のトラフィック負荷を測定し、同様且つ正当なトラフィック負荷の妨げにならない適切な最大値としきい値を提案する統計モードが提供される。この統計モードは、特許請求の範囲内の発明の一部ではなく、よってここでは詳細に立ち入らない。
【０００８】
同様な手法は、ＵＤＰデータグラム等のコネクションレス・トラフィックにも適用できる。これは他の特許出願の主題である。
【０００９】
【発明の実施の形態】
本発明では、サーバの所有者が、サーバを特定のパラメータで設定する必要がある。例えば好適な実施例では、所有者がフラッド・チェックの対象になるポート番号毎に、どの時点でもポートに許容される最大接続数（Ｍ）と、ポートに残っている使用可能な接続のしきい値割合（Ｐ）を指定する必要がある。ポートに使用可能な接続の割合Ｐは、接続リクエストの拒否をトリガする第１しきい値を設定する。接続が割当てられ、解除されるとき、サーバはポート毎に各ホストに割当てられた接続の数を維持する。従ってサーバは、新しいリクエストが受信された時点で、ポートに使用できる接続の数を指定済みの最大接続数とポートにすでに割当てられている接続数から動的に計算することができる。
【００１０】
図１のステップ１００で、ＴＣＰ／ＳＹＮ接続リクエストがネットワーク・サーバで受信される。ＳＹＮリクエストは、ＴＣＰ接続を確立するため必要な従来の３フロー・プロトコルの最初のハンドシェイクである。ステップ１０２で、ＴＣＰ／ＳＹＮリクエストに対する確認応答がサーバから接続を要求したホストに返される。ステップ１０４で、要求側ホストがＴＣＰ確認応答を返す。これによりハンドシェイク・プロトコルが完了する。ステップ１０６で、要求側ホストの確認応答からリクエストが送られるポート番号が確認される。ＴＣＰでは、ポート番号は、接続が要求された所定ホスト・コンピュータ内の宛先を表す。標準サービスのため予約されたポートがある。例えば、ポート２１はＦＴＰ（ファイル転送プロトコル）に使用することが決められている。要求側ホストのＩＤ（ＩＰアドレス）も、ハンドシェイク・プロトコルにより確認される。ポート番号は、ステップ１０８で、ポートのメモリ制御ブロックを見つけるか、またはポート制御ブロックが存在しない場合にはそれを作成するために用いられる。ポート制御ブロックには、現在アクティブな接続を持つホスト用の複数のホスト制御ブロックが付加される。要求側ホストにホスト制御ブロックがない場合は１つ作成される。ホスト制御ブロックは、特にホストに現在割当てられているポート接続のカウントを格納する。
【００１１】
ステップ１１０で、サーバが、このポート番号に指定された最大接続数Ｍ、支配的割合Ｐ、及びアクティブ接続数Ａをフェッチする。ステップ１１２では、使用可能な接続数ＩがＭ−Ａとして計算される。ステップ１１４では、すでに要求側ホストに割当てられている接続数がＰ×Ｉに等しいかより大きいかどうかが判定される。等しいかより大きい場合、他の特別な予防措置により拒否が無効にされる場合を除き、接続リクエストは拒否される。一方、すでに要求側ホストに割当てられている接続数がＰ×Ｉより少ない場合、接続リクエストはステップ１１６で許容されてＡが１つ増分され、このポート番号でアクティブな接続数が更新される。
【００１２】
すでに要求側ホストに割当てられている接続数がＰとＩの積に等しいかより大きい場合、ステップ１１４から図２の接続点Ａに入る。ステップ２０２では、最初、ポートが制約状態にあるか否かが判定される。ポートに残っている休止接続数が、ポートに可能な最大接続数Ｍの一定の割合Ｘに等しいかより小さい場合、ポートは制約状態にある。好適な実施例では、Ｘは１０％である。その場合、接続リクエストはステップ２０８で拒否される。ただし、ポートが制約されていない場合、特に要求側ホストに関連するＱｏＳ（サービス品質）指定により、接続拒否の決定を無効にすることができる。その場合、リクエストはステップ２０６で受け入れられる。受け入れられた場合、パラメータＡが１つ増分されて更新される。言い換えると、ステップ２０２、２０４、及び２０６は、全体として要求側に関連するＱｏＳポリシにより拒否が無効になる場合を除き、接続リクエストを拒否するポリシを実装するものである。しかし、要求されたポートが制約状態にあるとき、つまりポートに残っている接続が少ない場合、どのような条件下でもリクエストは拒否される。
【００１３】
ここで説明しているコンピュータ・プログラムは、パーソナル・コンピュータからＩＢＭのＳｙｓｔｅｍ  ３９０マシン等の大型メインフレームまで、事実上、あらゆる種類のコンピュータで実行することができる。唯一の要件は、コンピュータをネットワーク通信ソフトウェアで構成し、ネットワークを通してコンピュータをサーバとしてアクセスできることである。
【００１４】
当業者には明らかなように、ここに開示した実施例には、本発明の主旨と範囲から逸脱することなく、様々な変更を加えることができる。
【図面の簡単な説明】
【図１】接続リクエストのフラッドにより他の操作の完了が妨げられることがなく、サーバがクラッシュしないようにするため、ポートとの接続リクエストの受信に応答してサーバ側で実行される操作のフローチャートである。
【図２】接続リクエストのフラッドにより他の操作の完了が妨げられることがなく、サーバがクラッシュしないようにするため、ポートとの接続リクエストの受信に応答してサーバ側で実行される操作のフローチャートである。
【図１】
0003560553.tif 000002
【図２】
0003560553.tif 000003