(57)【要約】本発明は比較的に軽度にロードされた状態を維持し、同時にネットワークサーバーをＤＯＳやＤＤＯＳアタックから保護するネットワークスイッチに関する。このスイッチは比較的に大きなＩＰアドレステーブルを維持する。このテーブルにはそれぞれのアドレスからの未完成及び完成接続数のごとき情報が保存されている。この情報を活用して、スイッチはそれぞれのアドレスを脅威レベルである未確認、信頼、注意及び悪性に分類する。それぞれの脅威レベルは異なる扱いを受け、安全性が確保されながらサーバーへの効率的なアクセスが提供される。サーバーへの接続は悪性と分類されたクライエントに対して拒絶され、信頼クライエントはサーバーと接続される。注意接続は代理され、未確認接続処理はユーザーによってセットが可能である。
2004507978.tif 000002
【特許請求の範囲】
【請求項１】
接続セットアップ中にノードリソースを予約することで接続が部分的に確立される通信ネットワークにおいて利用されるものであり、サービス拒絶を引き起こすリソース悪性予約に対抗する方法であって、
ａ）所定の時間、特定ソースからノードリソースの予約リクエスト数を捕捉するステップと、
ｂ）完成接続に失敗した該ソースからの失敗リクエスト数を決定するステップと、
ｃ）該失敗リクエスト数が想定悪性しきい値を超えていた場合、該ソースからの以後のリクエストを所定の期間拒絶するステップと、
を含んで構成されていることを特徴とする方法。
【請求項２】
ｂ’）失敗リクエスト数が注意しきい値を超えていた場合、そのソースからの以後のリクエストを所定の観察期間プロキシを介して送るステップをさらに含んでいることを特徴とする請求項１記載の方法。
【請求項３】
しきい値は、リクエスト数に対する失敗リクエスト数の比であって、所定の初期化しきい値を超えるものであることを特徴とする請求項１記載の方法。
【請求項４】
ｄ）そのソースからの失敗リクエスト数が注意しきい値を超えておらず、そのソースからの完成接続リクエスト数が想定信頼しきい値を超えていない場合、そのソースからの以後のリクエストを所定の観察期間プロキシを介して送るステップをさらに含んでいることを特徴とする請求項１記載の方法。
【請求項５】
ｅ）そのソースからの完成接続リクエスト数が想定信頼しきい値を超えていた場合、該ソースをサーバと接続するステップをさらに含んでいることを特徴とする請求項４記載の方法。
【請求項６】
巨大ネットワークに接続されているサーバーに対するアタックを軽減させる装置であって、
複数のクライエント識別要素と関連クライエントデータとを保存するデータベースと、
ネットワークを介し、入力としてサーバーへの接続をリクエストするクライエントの識別要素を受領するスイッチと、
を含んで構成され、該スイッチは、受領した該識別要素を前記データベースに保存されたクライエント識別要素とマッチさせ、マッチされた識別要素と関連するクライエントデータに従ってリクエストされた接続に対して作動することを特徴とする装置。
【請求項７】
データベース内で受領識別要素にマッチしたものを発見できない場合、スイッチはユーザーがセットしたパラメータに従って作動することを特徴とする請求項６記載の装置。
【請求項８】
関連クライエントデータは脅威レベルをさらに含んでいることを特徴とする請求項６記載の装置。
【請求項９】
データベースに保存された受領クライエント識別要素及び関連クライエントデータから、接続をリクエストするクライエントの脅威レベルを判定する状態装置をさらに含んでいることを特徴とする請求項６記載の装置。
【請求項１０】
関連クライエントデータは、クライエントとサーバーとの間の完成接続カウント及びクライエントからサーバーへの未完成接続カウントをさらに含んでいることを特徴とする請求項６記載の装置。
【発明の詳細な説明】
【０００１】
発明の分野
本発明は一般的にコンピュータセキュリティに関し、特には、ＴＣＰ／ＩＰプロトコルを使用してコンピュータネットワークに接続されたサーバーのＳＹＮフラッド（ｆｌｏｏｄｉｎｇ）を介した“サービス拒絶”アタックを阻止するシステム及び方法に関する。
【０００２】
発明の背景
ネットワーク及びネットワークで接続されるコンピュータは種々なアタックに曝される。１つの可能性はサービス拒絶（ＤＯＳ：ｄｅｎｉａｌ ｏｆ ｓｅｒｖｉｃｅ）アタック並びにディストリビュート型サービス拒絶（ＤＤＯＳ：ｄｉｓｔｒｉｂｕｔｅｄ ｄｅｎｉａｌ ｏｆ ｓｅｒｖｉｃｅ）アタックである。近年これらの問題は多数の人気ウェブサイトを妨害し、何時間もの間それらウェブサイトを使用不能とした。
【０００３】
ＤＯＳアタックの通常タイプはＳＹＮフラッド（ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ ｆｌｏｏｄｉｎｇ）と呼称されるものである。典型的には、ＴＣＰ式アプリケーションコネクションがクライエントとサーバーとの間で完成された３ウェイハンドシェーク（３−ｗａｙ ｈａｎｄｓｈａｋｅ）でセットアップされる。クライエントはサーバーにＳＹＮメッセージを送ることでサーバーとの接続をリクエストする。サーバーはリソースを開放し、クライエントにＳＹＮ−ＡＣＫ（ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）メッセージを送る。ＳＹＮ−ＡＣＫを受信するとクライエントはサーバーに対してＡＣＫを送り、接続が確立（”ＥＳＴＡＢＬＩＳＨＥＤ”）状態とされる。
【０００４】
もし、３ウェイハンドシェークが普通に完成しなければ、サーバーは、接続を実行してリソースを提供する前に２分間ほどもその未完成状態を保つ。ＤＯＳアタックとＤＤＯＳアタックは、サーバーによって送られるＳＹＮ−ＡＣＫに応答しない複数のコネクションを発生させる悪戯クライエントマシンが関与する。その結果、サーバーはすぐにそのリソースを枯渇させ、正当クライエントからの新規接続を提供することができなくなる。状況によっては、サーバーは正常なサービス状態に戻る前にリブーツ処理（ｒｅｂｏｏｔ）されなければならない。もしそのようなアタック状態が続けば、サーバーは長時間そのサービスが提供できない。
【０００５】
別タイプのＤＯＳアタックは反復完成ＴＣＰ接続が関与する。例えば、反復ＨＴＴＰ ＧＥＴはインターネットクライエントからサーバーへリクエストする。ＨＴＴＰ ＧＥＴコマンドが小規模であろうとも、サーバーからリクエストされたデータ量は多量であり得る。それぞれのＨＴＴＰ ＧＥＴコマンドはサーバーリソースの大きな割合を使用する可能性があり、サーバー機能はマヒすることがある。また多数のＨＴＴＰ ＧＥＴリクエストは多量のデータをリクエストせずともサーバーを機能不全とすることがある。別なアタック形態は、ＦＴＰ ＧＥＴメッセージとＳＭＴＰ（Ｅメール）ＳＥＮＤコマンドである。
【０００６】
現在、ＤＯＳアタックやＤＤＯＳアタック問題に対処するソルーションが存在する。最も頻用されているソリューションは、３ウェイハンドシェークが成功裏に完成するまで、“プロキシ（代理）”として知られるサーバーに代って作動する第３装置（通常はスイッチまたはルータ）が関与する。このプロキシがサーバーに接続する。これはリソース集約的方法である。現在の技術によるプロキシ装置は普通のネットワークロードでさえも充分に取り扱えない。サーバー利用性を犠牲とせずにネットワークサーバーを保護する技術が望まれている。
【０００７】
よって、本発明の１目的はＤＯＳアタックやＤＤＯＳアタックによるネットワークサーバーへの悪影響を減少させる方法と装置の提供である。
【０００８】
発明の概要
コンピュータネットワークのサービス拒絶（ＤＯＳ）とディストリビュート型サービス拒絶（ＤＤＯＳ）は本発明のＳＹＮフラッド軽減システムと方法とで解消される。
【０００９】
本発明は比較的に軽いロード状態を維持し、同時にネットワークサーバーをＤＯＳアタックやＤＤＯＳアタックから保護するネットワークスイッチを提供する。このスイッチは非常に巨大なＩＰアドレステーブル（例えば、２００Ｋ程度；但し、本発明はさらに巨大なテーブルも想定）を維持する。このテーブルにはそれぞれのアドレスからの未完成／完成接続数のごとき情報が保存される。この情報を活用してスイッチはそれぞれのアドレスを危険度レベルに応じて“未確認”、“信頼”、“注意”及び“悪性”に分類する。各危険度レベルは別々に処理され、安全を確保しながらスイッチにサーバーへの効果的なアクセスを提供させる。悪性と分類されたクライエントに対するサーバーへの接続は拒絶され、信頼クライエントはサーバーへの接続が許される。注意接続は代理され、未確認接続処理はユーザーによってセット可能である。
【００１０】
それぞれのクライエントによる接続試行が何回実行されたか、また何回成功したかを継続的に記録することでスイッチはクライエントのＩＰアドレスを前記の危険度レベルの１つに指定し、そのレベルに応じてサーバーに対する接続を処理する。
【００１１】
本発明は前述及びその他の利点と共に実施例と図面を利用した以下の詳細な説明でさらに深く理解されよう。
【００１２】
好適実施例の詳細な説明
図１は本発明の原理に基づくスイッチのブロック図である。インターネット１５に接続されたウェブサイト１０は本発明に従って作動するスイッチ２５に接続されたルーター２０を有している。スイッチ２５は複数のサーバー３０とデータベース１００を有している。インターネット１５に接続された複数のクライエント３５はスイッチ２５を介してウェブサイト１０のサーバー３０にアクセスできる。サーバーはＴＣＰ／ＩＰプロトコルを使用してインターネットでアクセスできる。
【００１３】
図２はクライエント５０からサーバー５５への本発明のスイッチ２５を介した代理接続の確立を表す概略図である。
図２のａ）はクライエント５０からサーバー５５への未完成接続を示す。サーバー５５との接続を確立させるためにクライエント５０はＳＹＮメッセージ６０を送り出し、スイッチ２５で受領される。スイッチ２５は接続用のリソースを提供し、ＳＹＮ−ＡＣＫメッセージ６５をクライエント５０に送る。スイッチ２５はクライエント５０からＡＣＫメッセージをしばらく待つ。その待ち時間は、例えば１５秒であるが、本発明のスコープ内でそれより長くても短くてもよい。もしその待ち時間後にスイッチ２５がクライエント５０からＡＣＫメッセージを受け取らなければスイッチはリソースを放出する。
【００１４】
図２のｂ）はスイッチ２５を介してクライエント５０からサーバー５５への完成代理接続を示す。クライエント５０はＳＮＹメッセージ６０を送る。スイッチ２５はリソースを提供し、ＳＹＮ−ＡＣＫメッセージ６５で応答する。クライエント５０はＡＣＫメッセージ７０でＳＹＮ−ＡＣＫメッセージ６５に応答し、スイッチへの接続を完成させる。ＡＣＫメッセージ７０をクライエントから受領するとスイッチはＳＹＮメッセージ７５をサーバー５５に送る。サーバー５５はリソースを提供し、スイッチ２５にＳＮＹ−ＡＣＫメッセージ８０を送る。スイッチはＡＣＫメッセージ８５で応答し、サーバー５５への接続とクライエント５０への代理接続を完成させる。
【００１５】
図２のｃ）はクライエント５０とサーバー５５との間のデータ接続を提供するスイッチ２５を示す。スイッチ２５はスプライス９０、９５を提供し、クライエントデータセクエンス番号をサーバーデータセクエンス番号とマッチさせる。
【００１６】
図３は本発明のスイッチの状態図である。スイッチはサーバーに接続を試みているクライエントを未確認１０５、注意１１０、信頼１１５及び悪性１２０のいずれかに分類する。クライエントがサーバーに接続を試みると、クライエント識別と接続試行は以下のごとくに処理される。本発明においては、クライエント識別はクライエントのＩＰアドレスで行われる。クラエイエント識別及び関連クライエントタイプは大型データベース１００（図１）に保存される。クライエントがスイッチに接続されたサーバーに接続をリクエストすると、スイッチはそのデータベースにアクセスする。データベースはスイッチ自身に内蔵されても、離れて提供されても構わない。サーバーはスイッチに直接的または間接的に接続される。データベースのそれぞれのＩＰアドレスに対して２カウントが保存される。それらは完成接続カウントと未完成接続カウントである。スイッチは信頼しきい値と呼ばれるしきい値を維持する。これは完成接続カウントに関連する。スイッチはさらに２つのしきい値である注意しきい値と悪性しきい値とを有する。それらは未完成接続カウントに関連する。
【００１７】
分類の詳細な説明を以下にて提供する。
１）未確認１０５−クライエントが最初に接続を試みたら、あるいは以前の接続から長時間が経過していたら、そのクライエントは未確認として分類される。スイッチは未確認クライエントを注意クライエントまたは信頼クライエントとして処理するようにセットできる。
２）注意１１０−特定クライエントからの未完成接続セットアップ数が注意しきい値を超えたら、そのクライエントは注意クライエントとして分類される。
３）信頼１１５−特定クライエントからの成功完成接続数が信頼しきい値を超えたら、そのクライエントは信頼クライエントとして分類される。
４）悪性１２０−特定クライエントからの未完成接続セットアップ数が悪性しきい値を超えたら、そのクライエントは悪性クライエントとしてと分類される。
【００１８】
信頼クライエントとして分類されたクライエントのＩＰアドレスは正常と判断され、その接続リクエストは通常通りにサーバーに送られる。スイッチのユーザーは未確認クライエントＩＰアドレスを信頼アドレスとして処理するようにスイッチをセットすることもできる。
【００１９】
注意状態のクライエントＩＰアドレスからの接続リクエストは常にスイッチのよって代理される。サーバーはクライエントとスイッチとの間の接続が成功した完成状態の場合にのみコンタクトされる。
悪性状態のクライエントＩＰアドレスからの接続リクエストは無視される。
【００２０】
状態変動は以下の通りである。
未確認から注意１２５；未完成接続リクエスト数がサーバー接続しきい値の注意しきい値以上であればクライエントは未確認状態から注意状態に再分類される。未確認から信頼１３０；完成接続リクエスト数が信頼しきい値以上であれば未確認状態から信頼状態に再分類される。
信頼から注意１３５；未完成接続リクエスト数が注意しきい値以上であればクライエントは信頼状態から注意状態に再分類される。
注意から信頼１４０；完成接続リクエスト数が信頼しきい値以上であれば注意状態から信頼状態に再分類される。
注意から悪性１４５；未完成接続リクエスト数が悪性しきい値以上であればクライエントは注意状態から悪性状態に再分類される。
【００２１】
あるアドレスに対して指定された当初状態はユーザーによってセットされる未確認処理パラメータに基く。それが注意としてセットされれば、未確認クライエントの当初状態は注意となり、最初の接続リクエストは代理される。それ以外では当初状態は未確認として分類され、信頼状態と同様に処理される。
【００２２】
どの状態であろうと、処理レベルリセット時間値（ＴｈｒｅａｔＬｅｖｅｌＲｅｓｅｔ Ｔｉｍｅ ｖａｌｕｅ）でセットされた期間に新規の接続リクエストがなければ、そのアドレスは未確認１５０の当初状態に戻される。但し、その変更が悪性状態からのもので、未確認クライエントの当初値が注意である場合を除く。
【００２３】
図４は本発明のスイッチ操作を表す第１フロー図である。クライエントがスイッチに接続されたサーバーとの接続をリクエストすると、スイッチはクライエントＩＰアドレスを含んだＳＹＮメッセージをクライエントから受領する（ブロック２００）。スイッチはＩＰアドレスと関連タイプのテーブルをチェックする（ブロック２０５）。もしクライエントのＩＰアドレスがテーブルで発見されなければクライエントは未確認である。そのＩＰアドレスはテーブルに追加され、スイッチ処理パラメータはセットされる（ブロック２１０）。もしクライエントＩＰアドレスがテーブルで発見されればスイッチはクライエントが接続を最後にリクエストした時をテーブルでチェックする（ブロック２１５）。もし最後の接続リクエストからの期間が所定の制限期間を超えていれば、そのクライエントのための処理パラメータは未確認にリセットされる（ブロック２１５）。
【００２４】
続いてスイッチはＩＰアドレスと関係する未完成接続カウンターを増分処理する（ブロック２２０）。次にスイッチはテーブルからクライエントの処理パラメータを読み取り（ブロック２２５）、その状態に移動する。もしクライエントが悪性であれば、そのクライエントからのパケット（ｐａｃｋｅｔ）は無効処理され、接続は提供されない（ブロック２３０）。
【００２５】
クライエントが信頼状態であれば、クライエントは図５に示す方法Ａ２３５で処理される。クライエントが注意状態であれば、クライエントは図６に示す方法Ｂ２４０で処理される。クライエントが未確認状態であれば、クライエントは図７に示す方法Ｃ２４５で処理される。
【００２６】
図５に示すようにクライエントが信頼クライエントである場合にはスイッチは未完成接続数が注意しきい値を超えるかどうかを判定する（２５０）。もし注意しきい値が超えられていたらクライエント状態は注意状態に変更される（２５５）。スイッチはクライエントのための完成接続カウンターをリセットする。スイッチは次にサーバーとクライエントとの間でプロキシ（代理）接続を確立させる（２６０）。
【００２７】
注意しきい値が超えられていなければクライエントは信頼クライエントのままで残る。信頼クライエントはプロキシを必要とせず、接続はサーバーに伝達される（ブロック２６５）。続いてスイッチはクライエントとサーバーとの間の接続が完成したか否かを確認する（ブロック２７０）。もし接続が完成していれば、完成接続カウンターは増分処理され、未完成接続カウンターは減分処理される（ブロック２７５）。もし接続が完成していなければカウンターは変化しない（ブロック２８０）。
【００２８】
図６に示すように、クライエントが注意クライエントでなければスイッチはまず未完成接続数が悪性しきい値と等しいか否かを判定する（ブロック３００）。等しければパケットは無効化され、接続は完成されない（ブロック３０５）。もし未完成接続カウントが悪性しきい値と等しくなければスイッチは完成接続数が信頼しきい値より大きいか否かを判定する（ブロック３１０）。もし信頼しきい値が超えられていればスイッチはサーバーへと接続を通じさせる（ブロック３１５）。もし信頼しきい値が超えられていなければスイッチはクライエントとサーバーとの間でプロキシ装置として作動する（ブロック３２０）。
【００２９】
図７を解説する。クライエントが未確認クライエントであればスイッチはまず未完成接続カウンターが注意しきい値を超えているか否かを判定する（ブロック３５０）。もし注意しきい値が超えられていればクライエントの処理パラメータは注意に変更され、スイッチはクライエントとサーバーとの間でプロキシ接続を形成する（ブロック３５５）。もし注意しきい値が超えられていなければスイッチは完成接続カウンターが信頼しきい値を超えているか否かを判定する（ブロック３６０）。もし信頼しきい値が超えられていればクライエントは信頼クライエントとして分類され、接続はサーバーに送られる（ブロック３６５）。もし信頼しきい値が超えられていなければクライエントは未確認状態に残り、接続はサーバーに送られる（ブロック３７０）。
【００３０】
スイッチはまた、サーバーアタックに使用されるかも知れないリクエストタイプのソースＩＰアドレスごとに有効接続カウントを保存する。そのカウントは一定期間保存される。もしクライエントアドレスが特定タイプの有効接続しきい値を超えているなら、しきい値以上の接続試行は無視される。リクエスト例はＨＴＴＰ ＧＥＴリクエストとＦＴＰ ＧＥＴリクエストである。
【００３１】
別形態のＳＹＮフラッドアタックが存在する。多数のクライエント、すなわち多数のアドレスが存在し、それぞれサーバーへの接続をリクエストする状態である。このタイプのアタックにおいては個々のアドレスは注意しきい地または悪性しきい値を超えないかも知れない。よって、接続の代理や拒絶されないかも知れない。しかしサーバーは処理能力以上の数の接続を受けることがあろう。サーバーをこの種のアタックから防御するため、スイッチはそれぞれのサーバーへの未完成ＴＣＰ接続カウンターを保存する。もしこの数がサーバーコンしきい値（ＳｅｒｖｅｒＣｏｎ Ｔｈｒｅｓｈｏｌｄ）と呼称されるしきい値を超えていればリクエストされた接続は常に代理される。但し、アドレスが既に悪性として分類されている場合を除く。その場合には接続リクエストは無効化される。
【００３２】
スイッチを介して新接続が試行されるときはいつでもスイッチはセッションリポートをデータコレクターに送る。データコレクターはスイッチ近くに設置され、または遠隔場所に設置される。そのリポートは試行接続のクライエントＩＰアドレスと関連した脅威レベルを示す。データはシステムをモニターするユーザーへのシステムメッセージ発生のごとき目的で保存できる。データは分析のために引き出すこともグラフ式モニターシステムに利用することもできる。
【００３３】
本発明の第１別実施例では瞬間しきい値をセットすることができる。瞬間しきい値は充分に大きな値にセットされ、クライエントを否定するような、消失パケットによって消失したＡＣＫにスイッチ状態変更をさせない。同時に瞬間しきい値は充分に小さくセットされ、本物のアタックを許してＤＯＳ条件を創出させない。
【００３４】
本発明の第２別実施例においてはしきい値はランダムに変更され、ネットワークスキャンツールによる、特定スイッチまたはサーバーがネットワーク内に存在するか否かの判定を困難にさせる。
【００３５】
本発明の第３別実施例においては、“知られた脅威”アドレスからの接続の割合はネットワークスキャンツールを混乱させるために代理される。その割合はアタックロード（ａｔｔａｃｋ ｌｏａｄ）または通常ロード（ｎｏｒｍａｌ ｌｏａｄ）に基かせることができる。もしスイッチが、例えば激しいアタックに曝されるていると、“知られた脅威”アドレスは全て、またはほとんど全て無視される。もしスイッチが軽いアタックを受けていると、“知られた脅威”アドレスからのいくらかの接続は代理される。これでネットワークスキャンツールに対してネットワークの混乱情報が提供され、さらに、異なるセットの“利用可能”ポートが異なる時点、すなわち反復アタックで提供される。
【００３６】
本発明の第４別実施例では、悪性しきい値は選択された初期化しきい値よりも大きなリクエスト数に対する拒絶接続数の比で提供される。しかし、この方法は複雑な脅威に良性リクエストを悪性リクエストと混合させ、サーバーのＤＯＳ拒絶を引き起こさせるであろう。なぜなら、ソースＩＰアドレスの脅威レベルは悪性レベルにまで引き上げられていなかったからである。
【００３７】
前述の実施例は本発明の原理を解説する目的のみに提供されている。よって、当業技術者であれば本発明の精神とスコープ内でそれら実施例を適宜変更することができよう。
【図面の簡単な説明】
【図１】図１はインターネットに接続された状態の本発明の原理に基づいて提供されたスイッチを有したウェブサイトのブロック図である。
【図２】図２は図１のスイッチを介したクライエントとサーバーとの間の通信を表す概略図である。
【図３】図３は図１のスイッチの状態図である。
【図４】図４は図１のスイッチの操作を表す第１フローチャート図である。
【図５】図５は信頼ＩＰアドレスからの接続リクエストが受領されたときの図１のスイッチの作動を表す第２フローチャート図である。
【図６】図６は注意ＩＰアドレスからの接続リクエストが受領されたときの図１のスイッチの作動を表す第３フローチャート図である。
【図７】図７は未確認ＩＰアドレスからの接続リクエストが受領されたときの図１のスイッチの作動を表す第４フローチャート図である。
【図１】
2004507978.tif 000003
【図２】
2004507978.tif 000004
【図３】
2004507978.tif 000005
【図４】
2004507978.tif 000006
【図５】
2004507978.tif 000007
【図６】
2004507978.tif 000008
【図７】
2004507978.tif 000009
【国際公開パンフレット】
2004507978.tif 000010
2004507978.tif 000011
2004507978.tif 000012
2004507978.tif 000013
2004507978.tif 000014
2004507978.tif 000015
2004507978.tif 000016
2004507978.tif 000017
2004507978.tif 000018
2004507978.tif 000019
2004507978.tif 000020
2004507978.tif 000021
2004507978.tif 000022
2004507978.tif 000023
2004507978.tif 000024
2004507978.tif 000025
2004507978.tif 000026
2004507978.tif 000027
2004507978.tif 000028
2004507978.tif 000029
2004507978.tif 000030
【国際公開パンフレット（コレクトバージョン）】
2004507978.tif 000031
2004507978.tif 000032
【国際調査報告】
2004507978.tif 000033
2004507978.tif 000034
2004507978.tif 000035