(57)【特許請求の範囲】
【請求項１】
外部ネットワークとサーバとの間に設置された中継サーバにおけるパケット中継プログラムであって、
前記中継サーバに、
前記サーバからの確立要求／確立要求の確認応答パケットを受信するステップと、
前記確立要求／確立要求の確認応答パケットの受信に基づき、前記外部ネットワークに該確立要求／確立要求の確認応答パケットを中継すると共に、前記サーバに該確立要求／確立要求の確認応答パケットに対応する確認応答パケットを返信するステップと
を動作させることを特徴とするパケット中継プログラム。
【請求項２】
外部ネットワークとサーバとの間に設置された中継サーバに、
前記サーバからの確立要求／確立要求の確認応答パケットを受信するステップと、
前記確立要求／確立要求の確認応答パケットの受信に基づき、前記外部ネットワークに該確立要求／確立要求の確認応答パケットを中継すると共に、前記サーバに該確立要求／確立要求の確認応答パケットに対応する確認応答パケットを返信するステップと
を動作させることを特徴とするパケット中継プログラムを記録したコンピュータ読取可能な記録媒体。
【請求項３】
サーバからの確立要求／確立要求の確認応答パケットを受信する手段と、
前記確立要求／確立要求の確認応答パケットの受信に基づき、外部ネットワークに該確立要求／確立要求の確認応答パケットを中継すると共に、前記サーバに該確立要求／確立要求の確認応答パケットに対応する確認応答パケットを返信する手段と
を備えることを特徴とするパケット中継装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークから多数のＴＣＰコネクション確立要求パケットの送信を受けた時のパケット中継プログラム、パケット中継装置および記録媒体に関するものである。
【０００２】
【従来の技術】
ＴＣＰはコネクション型のプロトコルであり、コネクションを確立するために以下のような３Ｗａｙ  Ｈａｎｄｓｈａｋｅが用いられる。サーバ側は、Ｌｉｓｔｅｎにあり、そこにクライアントは利用したいサービスのポートへＳＹＮパケットを送信する。サーバ側はそれを受け、ＡＣＫパケットを送信、それと同時にＳＹＮパケットも送信する。クライアントはそれを受け、ＡＣＫパケットをサーバに返信してコネクションが確立される。
【０００３】
【発明が解決しようとする課題】
ＤＯＳ攻撃の１つにＳＹＮ  Ｆｌｏｏｄ攻撃がある。これは、ＴＣＰサービスに対し、接続要求（ＳＹＮパケット）を多量に送りつけ、そのサービスの処理能力を消費させる攻撃である。悪意のあるクライアントは、ＩＰアドレスを詐称したＳＹＮパケットを送信してくるため、サーバはＳＹＮ＋ＡＣＫを送信し、ＳＹＮ  ＲＣＶＤの状態のままクライアントからのＡＣＫパケットを待ちつづける。悪意のあるクライアントはＩＰアドレスを詐称しているため、当然のことながらこのＡＣＫパケットは戻ってこない。この時、多量の接続要求を受信すると、その数だけバッファ上に情報を確保する必要があるため、メモリを消費し、正常なアクセスを受けられなくなったり、システムクラッシュを起こしたりするなど種々な問題を引き起こすこととなる。そのための対策として、受け付けるクライアントを制限する方法は実現されているが、全てのなクライアントを把握することは不可能であり、この方法を適用できるサーバは社内サーバなどに限られてしまうなどの問題があった。
【０００４】
本発明は、これらの問題を解決するため、同一セグメント内に代理サーバを設けてサーバが送信元から受信したパケットを代理サーバに中継依頼して当該代理サーバからＡｃｋパケットを受信して待機状態から開放すると共にアプリに当該パケットを渡して待機させ、サーバのＯＳにおける待機状態を可及的に早急に解消して詐称パケットなどにより全てのサービスの提供が停止する事態をなくすことを目的としている。
【０００５】
【課題を解決するための手段】
図１を参照して課題を解決するための手段を説明する。
【０００６】
図１において、サーバ１は、ネットワークからパケットを受信するものであって、ＯＳ２およびアプリ３などから構成されるものである。
【０００７】
ＯＳ２は、オペレーティングシステムであって、ここでは、パケットを受信する通信機能２１などから構成されるものである。
【０００８】
アプリ３は、ＯＳ２の制御のもとで動作するアプリケーションプログラムであって、ここでは、サーバ（ＷＷＷ）３１，サーバ（ＳＭＴＰ）３２，サーバ（ｔｅｌｎｅｔ）３３などであり、各種サービスを提供するものである。
【０００９】
代理サーバ４は、サーバ１と同一セグメント内に設けたものであって、ここでは、サーバ１に代理して送信元にパケットを中継およびサーバにＡｃｋパケットを送信したりなどするものである。
【００１０】
ルータ６は、ネットワーク間（異なるセグメント間）で相互にパケットを送受信するものであって、ここでは、代理サーバ６１を設けたものである。
【００１１】
次に、動作を説明する。
サーバ１がパケットを受信すると、待機状態に遷移すると共に代理サーバ４１（あるいはルータ６内の代理サーバ６１）にパケットの中継依頼し、中継依頼を受けた代理サーバ４（あるいはルータ６内の代理サーバ６１）が送信元にパケットを送信すると共にサーバ１にＡｃｋパケットを送信し、Ａｃｋパケットをサーバ１が受信すると、アプリ３にパケットを渡すと共に待機状態から開放し、パケットを渡されたアプリ３がタイマを起動して所定時間経過しても送信元からパケットを受信しないときに、リセットパケットを送信元に送信してリセットするようにしている。
【００１２】
この際、代理サーバ６１を同一セグメント内のルータ６に設け、あるいはサーバ１内に独立に設けるようにしている。
【００１３】
また、サーバ１で、ＷＷＷサーバ、電子メールサーバ，ｔｅｌｎｅｔサーバなどの２つ以上のサーバとして機能させるようにしている。
【００１４】
従って、同一セグメント内に代理サーバ４，６１などを設けてサーバ１が送信元から受信したパケットを代理サーバ４，６１などに中継依頼して代理サーバ４，６１などからＡｃｋパケットを受信して待機状態から開放すると共にアプリ３にパケットを渡して待機させることにより、サーバ１のＯＳにおける待機状態を可及的に早急に解消して詐称パケットなどにより全てのサービスの提供が停止する事態をなくすことが可能となる。
【００１５】
【発明の実施の形態】
次に、図１から図３を用いて本発明の実施の形態および動作を順次詳細に説明する。
【００１６】
図１は、本発明のシステム構成図を示す。
図１において、サーバ１は、外部ネットワークに接続せれたクライアントなどからのパケットを受信するものである、ここでは、攻撃対象のサーバであって、ＯＳ２およびアプリ３などから構成されるものである。
【００１７】
ＯＳ２は、オペレーティングシステムであって、ここでは、パケットを受信するＯＳの機能である通信機能２１などから構成されるものである。通信機能２１は、ＷＷＷ、電子メール、テルネットなどの各種サービスに対応したソケットを送信元毎にそれぞれ用意し、パケットを受信したときに該当ソケットで各種サービスを提供するアプリにパケットを振り分けて渡したり、受け取って送信元に送信したりするようにしている。
【００１８】
アプリ３は、ＯＳ２の制御のもとで動作するアプリケーションプログラムであって、ここでは、サーバ（ＷＷＷ）３１，サーバ（ＳＭＴＰ）３２，サーバ（ｔｅｌｎｅｔ）３３などとして動作するものであり、各種サービスを実際に提供するものである。
【００１９】
代理サーバ４は、サーバ１と同一セグメント内に接続した（設けた）ものであって、ここでは、サーバ１に代理して送信元にパケットを中継およびサーバ１にＡｃｋパケットを送信したりなどするものであり、中継手段４１、代理応答手段４２などから構成されるものである（図２および図３を用いて後述する）。
【００２０】
ハブ５は、同一セグメント内で複数の機器（サーバ１、代理サーバ４、ルータ６）を接続して相互にパケットを送受信するためのものである。
【００２１】
ルータ６は、ネットワーク間（異なるセグメント間）で相互にパケットを送受信するものであって、ここでは、代理サーバ６１を設けたものである。
【００２２】
代理サーバ６１は、代理サーバ４と同一に動作し、ここでは、ルータ６内に設けたものであって、中継手段６２、代理応答手段６３などから構成されるものである。
【００２３】
外部ネットワーク７は、ルータ６に接続されたサーバ１などが接続されたネットワークと異なる外部（他）のネットワークであって、ここでは、多数の詐称パケットをサーバ１に向けて送信するクライアントが接続されているネットワークである。
【００２４】
次に、図２のシーケンス例の順番に従い、図１の構成の動作を詳細に説明する。
【００２５】
図２は、本発明のシーケンス例を示す。ここで、クライアント（攻撃側）は、図１の外部ネットワークに接続されたクライアント（端末）であって、多数の詐称パケット（送信元のＩＰアドレスを偽ったパケット）をサーバ１に送信するものである。代理サーバ４は、図１のサーバ１と同一セグメント内に設置された代理サーバ４（あるいはルータ６内の代理理サーバ６１）である。サーバ１は図１のサーバ１である。
【００２６】
図２において、Ｓ１は、クライアント（攻撃側）が特殊パケットをサーバ１に向けて送信する。これは、外部ネットワーク上のクライアント（攻撃側）が送信元のＩＰアドレスを偽ったＳＹＮパケット（確立要求）をサーバ１に向けて送信する。
【００２７】
Ｓ２は、サーバ１の通信機能２１がＳ１で送信したＳＹＮパケットを受信し、ＬＩＳＴＥＮ状態から待機状態（ＳＹＮーＲＣＶＤ状態）に遷移すると共に、代理サーバ４に向けて▲１▼（ＳＹＮ＋Ａｃｋ）パケット（確立要求／確立要求の確認応答）を送信する（図３の▲１▼参照）。
【００２８】
Ｓ３は、代理サーバ４がパケット中継とＡｃｋパケットの返却を行なう。これにより、▲４▼（ＳＹＮ＋Ａｃｋ）パケット（確立要求／確立要求の確認応答）を送信元に送信する（図３の▲４▼参照）と共に、サーバ１に▲５▼Ａｃｋパケット（確認応答）を送信する（図３の▲５▼参照）。
【００２９】
Ｓ４は、Ｓ３で送信された▲５▼Ａｃｋパケットを受信したサーバ１が待機状態から確立状態（ＥＳＴＡＢＬＩＳＨＥＤ状態）に遷移すると共に、Ｓ２２で受信したパケットをアプリ３に渡す。このように、代理サーバ４が送信元の代理でサーバ１にＡｃｋパケットを返信することにより、サーバ１はあたかも送信元から正常な確認応答が返されたかのように正常にセションの確立を行い、アプリに制御を渡すことが可能となる。
【００３０】
Ｓ５は、アプリ３が無通信タイマ監視を行い、タイマ満了時はＲＳＴパケット送信でソケット資源を即座に解放する。これは、Ｓ４でパケットを渡されたアプリが送信元（クライアント）からのパケットの受信を待機（Ｓ３で代理サーバ４から送信元に返信された▲４▼（ＳＹＮ＋Ａｃｋ）パケットに対する送信元からのパケットの受信を待機）するが、ここでは、詐称ＩＰアドレスに送信したために受信されなく、タイムオーバとなりＲＳＴパケット送信でソケット資源を即座に開放する。
【００３１】
Ｓ６は、アプリ３がＣｌｏｓｅ（クローズ）すると共に、ＲＥＳＴパケットを代理サーバ４に送信し、リセットする。
【００３２】
Ｓ７は、代理サーバ４がＲＳＴパケットを詐称されたＩＰアドレス（詐称された送信元）に送信し、リセットする。
【００３３】
以上によって、外部ネットワークから送信元のＩＰアドレスを詐称された多数の▲１▼ＳＹＮパケットがサーバ１で受信されても、サーバ１は即座に▲３▼（ＳＹＮ＋Ａｃｋ）パケットを代理サーバ４に送信して中継依頼し、代理サーバ４は詐称された送信元ＩＰアドレスに▲４▼（ＳＹＮ＋Ａｃｋ）パケットを送信すると共に疑似の▲５▼Ａｃｋパケットをサーバ１に返信してサーバ１を確立状態（ＥＳＴＡＢＬＩＳＨ状態）に遷移させ、サーバ１はパケットをアプリ３に渡し、アプリ３がタイマを起動し、この場合には、詐称の送信元ＩＰアドレスから応答がないので、タイムオーバとなり、即座にソケットを解放およびリセットパケットを代理サーバ４、詐称の送信元に送信して一連の処理を終了することが可能となる。これにより、従来のＯＳ２の通信機能２１のある種別（例えば電子メールのＳＭＴＰ）のソケット資源が使い果たされ、他の種別（ＷＷＷ、ＴＥＬＮＥＴなど）のソケット資源などが使えなくなり、図４の既述した全体としての機能が停止してしまう事態をなくすことが可能となる。即ち、アプリ３である各ＷＷＷ，ＳＭＴＰ、ＴＥＬＮＥＴなどのアプリケーションプログラム側で個別にタイマ設定（例えば動的にタイマ値を変更）してタイムオーバしたときに即座にソケット資源を解放し、次のパケットを受信することが可能となると共に、他の種別のＷＷＷ，ＳＭＴＰ、ＴＥＬＮＥＴなどには全く影響を与えないように切り離すことが可能となる。
【００３４】
尚、代理サーバ４は、ネットワークの同一セグメント内であれば、ルータ６内で動作する代理サーバ６１、更に、サーバ１内にＯＳ２，アプリ３と独立に動作する代理サーバとして設けてもよい。
【００３５】
図３は、本発明のＴＣＰ／ＩＰパケット概念構造図を示す。
図３の概念の欄の
・パケットのＥｔｈｅｒヘッダには、送信元と宛先のＭＡＣアドレスと、Ｅｔｈｅｒｎｅｔヘッダとして必要な情報を格納する。
【００３６】
・ＩＰヘッダには、送信元ＩＰアドレス、宛先ＩＰアドレス等のＩＰヘッダとして必要な情報を格納する。
【００３７】
・ＴＣＰヘッダには、送信元ポート番号、宛先ポート番号、コードビット、シーケンス番号、確認応答番号等のＴＣＰヘッダとして必要な情報を格納する。
【００３８】
・データには、ユーザデータを格納する。
▲１▼は、既述した図２の▲１▼ＳＹＮパケットの例であって、ここでは、図示の下記の情報を設定する。
【００３９】
・パケットのＥｔｈｅｒヘッダには、同一セグメント内のＭＡＣアドレスを設定する。
【００４０】
・ＩＰヘッダには、送信元のＩＰを詐称している。
・ＴＣＰヘッダには、コードビットの”ＳＹＮ”が立てる。
【００４１】
▲３▼は、既述した図２の▲３▼（ＳＹＮ＋Ａｃｋ）パケットの例であって、ここでは、図示の下記の情報を設定する。
【００４２】
・パケットのＥｔｈｅｒヘッダには、同一セグメント内のＭＡＣアドレスを設定する。
【００４３】
・ＩＰヘッダには、▲１▼の送信元、宛先のＩＰアドレスが逆になる。
・ＴＣＰヘッダには、コードビットの”ＳＹＮとＡｃｋ”が立てる。
【００４４】
▲４▼は、既述した図２の▲４▼（ＳＹＮ＋Ａｃｋ）パケットの例であって、ここでは、図示の下記の情報を設定する。
【００４５】
・パケットのＥｔｈｅｒヘッダには、同一セグメント内のＭＡＣアドレスを設定する。
【００４６】
・ＩＰヘッダには、▲３▼と全く同じ。
・ＴＣＰヘッダには、▲３▼と全く同じ。
【００４７】
▲５▼は、既述した図２の▲５▼Ａｃｋパケットの例であって、ここでは、図示の下記の情報を設定する。
【００４８】
・パケットのＥｔｈｅｒヘッダには、同一セグメント内のＭＡＣアドレスを設定する。
【００４９】
・ＩＰヘッダには、▲３▼とは逆。▲１▼と同じ内容。
・ＴＣＰヘッダには、ＡＣＫビットのみ立てる。
【００５０】
【００５１】
【発明の効果】
以上説明したように、本発明によれば、同一セグメント内に代理サーバ４，６１などを設けてサーバ１が送信元から受信したパケットを代理サーバ４，６１などに中継依頼して代理サーバ４，６１などからＡｃｋパケットを受信して待機状態から開放すると共にアプリ３にパケットを渡して待機させる構成を採用しているため、サーバ１のＯＳにおける待機状態を可及的に早急に解消して詐称パケットなどにより全サービスの提供が停止する事態をなくすことが可能となる。
【図面の簡単な説明】
【図１】本発明のシステム構成図である。
【図２】本発明のシーケンス例である。
【図３】本発明のＴＣＰ／ＩＰパケット概念構造図である。
【図４】従来技術の説明図である。
【符号の説明】
１：サーバ
２：ＯＳ
２１：通信機能
３：アプリ
３１：サーバ（ＷＷＷ）
３２：サーバ（ＳＭＴＰ）
３３：サーバ（ＴＥＬＮＥＴ）
４、６１：代理サーバ
４１、６２：中継手段
４２，６３：代理応答手段
５：ハブ
６：ルータ
７：外部ネットワーク
【図１】
0003648211.tif 000002
【図２】
0003648211.tif 000003
【図３】
0003648211.tif 000004
【図４】
0003648211.tif 000005