(57)【要約】【課題】サーバ装置とクライアント装置との間に設置される中継ノードにおいても、コネクションを確立したクライアント装置のアドレスを独自に取得することを課題とする。【解決手段】中継装置１０では、サーバ装置２からクライアント装置１に送信されたパケットを監視し、ＡＣＫフラグのみが立っているＴＣＰパケットを検出することで、コネクション確立後のクライアント装置１に対して送信されているパケットを検出する。その上で、中継装置１０は、かかるパケットに含まれる送信先アドレスを抽出することで、コネクションを確立したクライアント装置１のアドレスを取得する。【選択図】        図１
2006186845.tif 000002
【特許請求の範囲】
【請求項１】
サーバとの間でコネクションを確立したクライアントのアドレスを特定するアドレス特定装置であって、
前記サーバからクライアントに送信されたパケットを監視し、コネクション確立後のクライアントに対して送信されているパケットを検出するパケット監視手段と、
前記パケット監視手段によって検出されたパケットに含まれる送信先アドレスを抽出するアドレス抽出手段と、
を備えたことを特徴とするアドレス特定装置。
【請求項２】
前記パケット監視手段は、監視するパケットのなかから、ＡＣＫフラグのみが立っているＴＣＰパケットを検出することを特徴とする請求項１に記載のアドレス特定装置。
【請求項３】
前記パケット監視手段は、前記サーバからクライアントに送信されたパケットの全てを監視することを特徴とする請求項１または２に記載のアドレス特定装置。
【請求項４】
前記パケット監視手段は、前記サーバからクライアントに送信されたパケットをサンプリングしながら監視することを特徴とする請求項１または２に記載のアドレス特定装置。
【請求項５】
前記パケット監視手段は、前記サンプリングのタイミングを動的に変化させて前記パケットを監視することを特徴とする請求項４に記載のアドレス特定装置。
【請求項６】
サーバとの間でコネクションを確立したクライアントのアドレスを特定するアドレス特定方法であって、
前記サーバからクライアントに送信されたパケットを監視し、コネクション確立後のクライアントに対して送信されているパケットを検出するパケット監視工程と、
前記パケット監視工程によって検出されたパケットに含まれる送信先アドレスを抽出するアドレス抽出工程と、
を含んだことを特徴とするアドレス特定方法。
【請求項７】
前記パケット監視工程は、監視するパケットのなかから、ＡＣＫフラグのみが立っているＴＣＰパケットを検出することを特徴とする請求項６に記載のアドレス特定方法。
【請求項８】
サーバとの間でコネクションを確立したクライアントのアドレスを特定するアドレス特定方法をコンピュータに実行させるアドレス特定プログラムであって、
前記サーバからクライアントに送信されたパケットを監視し、コネクション確立後のクライアントに対して送信されているパケットを検出するパケット監視手順と、
前記パケット監視手順によって検出されたパケットに含まれる送信先アドレスを抽出するアドレス抽出手順と、
をコンピュータに実行させることを特徴とするアドレス特定プログラム。
【請求項９】
前記パケット監視手順は、監視するパケットのなかから、ＡＣＫフラグのみが立っているＴＣＰパケットを検出することを特徴とする請求項８に記載のアドレス特定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、サーバとの間でコネクションを確立したクライアントのアドレスを特定するアドレス特定装置、アドレス特定方法およびアドレス特定プログラムに関する。
【背景技術】
【０００２】
従来より、ＴＣＰ（Transmission Control Protocol）サーバとの間でコネクションを確立したクライアントのアドレスを特定する技術がある。例えば、非特許文献１では、サーバ装置本体において、「netstat」などのツールを用いて、ＴＣＰコネクションの状態を確認した上で、通信相手となるクライアント装置のアドレスを抽出している。
【０００３】
【非特許文献１】Steven Maxwell,“RED HAT LINUX Network MANAGEMENT TOOLS”,McGraw-Hill,p.519-520
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記した従来の技術は、サーバ装置本体でなければ、サーバ装置との間でコネクションを確立したクライアント装置のアドレスを取得することができないという問題がある。すなわち、サーバ装置とクライアント装置との間に設置されるＩＤＳ（Intrusion Detective System：侵入検知システム）やＤＤｏＳ（Distributed Denial of Service）攻撃検出システムなどの中継ノードにおいて、コネクションを確立したクライアント装置のアドレスを独自に取得することはできなかった。
【０００５】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、サーバ装置とクライアント装置との間に設置される中継ノードにおいても、コネクションを確立したクライアント装置のアドレスを独自に取得することが可能なアドレス特定装置、アドレス特定方法およびアドレス特定プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、サーバとの間でコネクションを確立したクライアントのアドレスを特定するアドレス特定装置であって、前記サーバからクライアントに送信されたパケットを監視し、コネクション確立後のクライアントに対して送信されているパケットを検出するパケット監視手段と、前記パケット監視手段によって検出されたパケットに含まれる送信先アドレスを抽出するアドレス抽出手段と、を備えたことを特徴とする。
【０００７】
また、請求項２に係る発明は、上記の発明において、前記パケット監視手段は、監視するパケットのなかから、ＡＣＫフラグのみが立っているＴＣＰパケットを検出することを特徴とする。
【０００８】
また、請求項３に係る発明は、上記の発明において、前記パケット監視手段は、前記サーバからクライアントに送信されたパケットの全てを監視することを特徴とする。
【０００９】
また、請求項４に係る発明は、上記の発明において、前記パケット監視手段は、前記サーバからクライアントに送信されたパケットをサンプリングしながら監視することを特徴とする。
【００１０】
また、請求項５に係る発明は、上記の発明において、前記パケット監視手段は、前記サンプリングのタイミングを動的に変化させて前記パケットを監視することを特徴とする。
【００１１】
また、請求項６に係る発明は、サーバとの間でコネクションを確立したクライアントのアドレスを特定するアドレス特定方法であって、前記サーバからクライアントに送信されたパケットを監視し、コネクション確立後のクライアントに対して送信されているパケットを検出するパケット監視工程と、前記パケット監視工程によって検出されたパケットに含まれる送信先アドレスを抽出するアドレス抽出工程と、を含んだことを特徴とする。
【００１２】
また、請求項７に係る発明は、上記の発明において、前記パケット監視工程は、監視するパケットのなかから、ＡＣＫフラグのみが立っているＴＣＰパケットを検出することを特徴とする。
【００１３】
また、請求項８に係る発明は、サーバとの間でコネクションを確立したクライアントのアドレスを特定するアドレス特定方法をコンピュータに実行させるアドレス特定プログラムであって、前記サーバからクライアントに送信されたパケットを監視し、コネクション確立後のクライアントに対して送信されているパケットを検出するパケット監視手順と、前記パケット監視手順によって検出されたパケットに含まれる送信先アドレスを抽出するアドレス抽出手順と、をコンピュータに実行させることを特徴とする。
【００１４】
また、請求項９に係る発明は、上記の発明において、前記パケット監視手順は、監視するパケットのなかから、ＡＣＫフラグのみが立っているＴＣＰパケットを検出することを特徴とする。
【発明の効果】
【００１５】
請求項１、６または８の発明によれば、サーバ装置からクライアント装置に送信されたパケットを監視し、コネクション確立後のクライアント装置に対して送信されているパケットを検出し、そのパケットに含まれる送信先アドレスを抽出するので、サーバ装置とクライアント装置との間に設置される侵入検知システムやＤＤｏＳ攻撃検出システムなどの中継ノードにおいても、コネクションを確立したクライアント装置のアドレスを独自に取得することが可能である。
【００１６】
また、請求項２、７または９の発明によれば、ＡＣＫフラグのみが立っているＴＣＰパケットを検出する（サーバ装置がＡＣＫパケットを発信するのは、コネクション確立を完了してクライアント装置と正しく通信を行う場合のみである。）ので、コネクションを確立したクライアント装置を簡易かつ確実に検出することが可能である。
【００１７】
また、請求項３の発明によれば、サーバ装置からクライアント装置に送信されたパケットの全てを監視するので、コネクションを確立したクライアント装置を漏らさず検出することが可能である。
【００１８】
また、請求項４の発明によれば、サーバ装置からクライアント装置に送信されたパケットをサンプリングしながら監視するので、例えば、通過するパケットの半分だけキャプチャして監視する、また、通過するパケットを数秒ごとキャプチャして監視するなど、全てのパケットを監視する手法よりも処理負荷を軽減することが可能である。
【００１９】
また、請求項５の発明によれば、サンプリングのタイミングを動的に変化させてパケットを監視するので、例えば、通過するパケットが少ない時間帯では高率でパケットを監視する（例えば１０パケット中の７パケットをキャプチャして監視する）一方で、通過するパケットが多い時間帯には低率でパケットを監視する（例えば１０パケット中の１パケットをキャプチャして監視する）など、状況に応じた効率的なパケット監視を行うことが可能である。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、この発明に係るアドレス特定装置、アドレス特定方法およびアドレス特定プログラムの実施例を詳細に説明する。なお、以下では、ネットワーク上の中継装置に本発明に係るアドレス特定技術を適用した場合を実施例１として説明した後に、本発明に含まれる他の実施例を実施例２として説明する。
【実施例１】
【００２１】
以下の実施例１では、実施例１の概要および特徴を説明した後に、実施例１に係る中継装置の構成、アドレス特定処理の手順、実施例１の効果等を順に説明する。
【００２２】
［概要および特徴（実施例１）］
最初に、図１を用いて、実施例１の概要および特徴を説明する。図１は、実施例１の概要および特徴を説明するための図である。
【００２３】
同図に示すように、実施例１に係る中継装置１０は、ＤｏＳ攻撃やＤＤｏＳ攻撃を行い得るコンピュータである一または複数のクライアント装置１（例えばＴＣＰクライアント）と、かかるＤｏＳ攻撃やＤＤｏＳ攻撃の対象となるコンピュータである一または複数のサーバ装置２（例えばＴＣＰサーバ）とを接続するネットワーク３上に設けられる中継ノード（例えばルータやブリッジなど）であって、パケットを中継することを概要とする。
【００２４】
そして、この中継装置１０は、以下に簡単に説明するように、かかるパケットの中継処理とは別に、サーバ装置２との間でコネクションを確立したクライアント装置１０のアドレスを特定する処理を行う点に主たる特徴がある。すなわち、図１に示すように、正常なＴＣＰコネクションでは、先ずはクライアント装置１とサーバ装置２との間で「three-way handshake」を行うことによって、コネクション確立を完了してからデータ転送を開始する。また、同図に示すように、かかるデータ転送に際して、サーバ装置２は、クライアント装置１からＰＳＨパケットを受信すると、受信確認としてクライアント装置１に対してＡＣＫパケットを返信する。言い換えれば、サーバ装置２からクライアント装置１に対してＡＣＫパケットを発信されるのは、クライアント装置１とのコネクション確立を完了し、クライアント装置１と正しく通信を行う場合のみである。
【００２５】
そこで、実施例１に係る中継装置１０では、サーバ装置２からクライアント装置１に送信されたパケットを監視し、ＡＣＫフラグのみが立っているＴＣＰパケットを検出することで、コネクション確立後のクライアント装置１に対して送信されているパケットを検出する。その上で、中継装置１０は、かかるパケットに含まれる送信先アドレスを抽出することで、コネクションを確立したクライアント装置１のアドレスを取得する。したがって、この中継装置１０によれば、上記した主たる特徴の如く、サーバ装置１とクライアント装置２との間に設置される侵入検知システムやＤＤｏＳ攻撃検出システムなどの中継ノードにおいても、コネクションを確立したクライアント装置１のアドレスを独自に取得することが可能である。
【００２６】
［中継装置の構成（実施例１）］
続いて、図２を用いて、実施例１に係る中継装置１０の構成を説明する。図２は、中継装置１０の構成を示すブロック図である。
【００２７】
図２に示すように、この中継装置１０は、ネットワークインターフェース部１１と、記憶部１２（アドレス記憶部１２ａを含む）と、制御部１３（パケット処理部１３ａ、ヘッダ分析部１３ｂおよびアドレス抽出部１３ｃを含む）とを備えて構成される。なお、ヘッダ分析部１３ｂは特許請求の範囲に記載された「パケット監視手段」に対応し、アドレス抽出部１３ｃは同じく「アドレス抽出手段」に対応する。
【００２８】
同図において、ネットワークインターフェース部１１は、ネットワークと接続されている通信機器との間でパケットを送受する手段であり、具体的には、ＬＡＮ（Local Area Network）またはＷＡＮ（Wide Area Network）などのネットワークと接続するためのネットワーク接続カード等によって構成される。
【００２９】
記憶部１２は、制御部１３による各種処理に必要なデータおよびプログラムを記憶する記憶手段（格納手段）であり、特に本発明に密接に関連するものとしては、図２に示すように、アドレス記憶部１２ａを備える。このアドレス記憶部１２ａは、後述するアドレス抽出部１３ｃによって抽出されたアドレス（すなわち、コネクションを確立したクライアント装置のアドレス）を記憶するものである。なお、かかるアドレス記憶部１２ａに記憶されたアドレスは、パケットのフィルタリングに用いるシグネチャ（例えば、正規ユーザの通信パケットを特定するための正規シグネチェなど）の生成などに利用される。
【００３０】
制御部１３は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する制御手段であり、特に本発明に密接に関連するものとしては、図２に示すように、パケット処理部１３ａ、ヘッダ分析部１３ｂおよびアドレス抽出部１３ｃを備える。
【００３１】
このうち、パケット処理部１３ａは、パケットの通過を制御する処理部であり、例えば、サーバ装置２を攻撃から防御するように機能するような場合には、記憶部１２に記憶された容疑シグネチャ（攻撃容疑のあるパケットを特定するためのシグネチャ）や不正シグネチャ（不正トラヒックに含まれる不正パケットを特定するためのシグネチャ）、正規シグネチャなどに基づいてパケットの通過を制御する。より詳細には、不正シグネチャや容疑シグネチャに該当するパケットについては、伝送帯域を制限して通過させるかもしくは廃棄し、正規シグネチャに該当するパケットやいずれのシグネチャにも該当しないパケットについては、伝送帯域を制限せずに通過を許可する。なお、このようなフィルタリング制御を行うことなく、全てのパケットを通過させるようにしてもよい。
【００３２】
ヘッダ分析部１３ｂは、サーバ装置２からクライアント装置１に送信されたパケットを監視し、ＡＣＫフラグのみが立っているＴＣＰパケットを検出することで、コネクション確立後のクライアント装置１に対して送信されているパケットを検出する処理部である。そして、アドレス抽出部１３ｃは、ヘッダ分析部１３ｂによって検出されたパケットから送信先アドレス（コネクションを確立したクライアント装置１のアドレス）を抽出し、抽出したアドレスをアドレス記憶部１２ａに登録する処理部である。なお、かかるヘッダ分析部１３ｂおよびアドレス抽出部１３ｃによる処理の詳細については、「アドレス特定処理」として、図３を用いて後に詳述する。
【００３３】
ところで、中継装置１０は、ＣＰＵ（Central Processing Unit）やメモリ、ハードディスク等を有し、パケット処理部１３ａ、ヘッダ分析部１３ｂおよびアドレス抽出部１３ｃを含む制御部１３が、ＣＰＵによって処理されるプログラムのモジュールであってもよい。また、このプログラムのモジュールは、１つのＣＰＵで処理されてもよく、複数のＣＰＵに分散して処理されてもよい。
【００３４】
［アドレス特定処理の手順（実施例１）］
続いて、図３を用いて、中継装置１０によるアドレス特定処理の手順を説明する。図３は、アドレス特定処理の流れを示すフローチャートである。なお、以下では、中継装置１０のパケット処理部１３ａによって、パケットの通過が制御されているものとする。
【００３５】
同図に示すように、中継装置１０のヘッダ分析部１３ｂでは、通過するパケットがあると（ステップＳ１０１肯定）、その通過するパケットをキャプチャして（ステップＳ１０２）、コネクション確立後のクライアント装置１に対して送信されているパケットであるか否かを判定する（ステップＳ１０３〜Ｓ１０５）。
【００３６】
すなわち、ヘッダ分析部１３ｂは、キャプチャしたパケットについて、パケットの送信元が監視対象のサーバ装置２であるか否か（ステップＳ１０３）、パケットのプロトコルはＴＣＰであるか否か（ステップＳ１０４）、ＴＣＰヘッダのフラグにＡＣＫのみが立っているか否か（ステップＳ１０５）を順に判定する。そして、かかる判定において、いずれかを満たさない場合には、そのまま処理を終了する。
【００３７】
これとは反対に、いずれの要件も満たす場合には（ステップＳ１０３肯定、ステップＳ１０４肯定並びにステップＳ１０５肯定）、コネクション確立後のクライアント装置１に対して送信されているパケットであるので、アドレス抽出部１２ｃは、パケットから送信先アドレス（クライアント装置１のアドレス）を抽出する（ステップＳ１０６）。
【００３８】
その上でアドレス抽出部１２ｃは、抽出したアドレスがアドレス記憶部１２ａに既に登録されているか否かを調べ（ステップＳ１０７）、既に登録されている場合には（ステップＳ１０７肯定）、そのまま処理を終了するが、未だ登録されていない場合には（ステップＳ１０７否定）、上記のステップＳ１０６で抽出したアドレスをアドレス記憶部１２ａに登録する（ステップＳ１０８）。このようにして、アドレス記憶部１２ａには、サーバ装置２との間でコネクションを確立したクライアント装置１０のアドレスが登録される。
【００３９】
［実施例１の効果］
上述してきたように、実施例１によれば、サーバ装置１からクライアント装置２に送信されたパケットを監視し、コネクション確立後のクライアント装置１に対して送信されているパケットを検出し、そのパケットに含まれる送信先アドレスを抽出するので、サーバ装置１とクライアント装置２との間に設置される侵入検知システムやＤＤｏＳ攻撃検出システムなどの中継ノードにおいても、コネクションを確立したクライアント装置１のアドレスを独自に取得することが可能である。
【００４０】
また、実施例１によれば、ＡＣＫフラグのみが立っているＴＣＰパケットを検出する（サーバ装置２がＡＣＫパケットを発信するのは、コネクション確立を完了してクライアント装置１と正しく通信を行う場合のみである。）ので、コネクションを確立したクライアント装置１を簡易かつ確実に検出することが可能である。
【００４１】
また、実施例１によれば、サーバ装置２からクライアント装置１に送信されたパケットの全てを監視するので、コネクションを確立したクライアント装置１を漏らさず検出することが可能である。
【実施例２】
【００４２】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例１以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例２として本発明に含まれる他の実施例を説明する。
【００４３】
（１）他の検出手法
上記の実施例１では、コネクションを確立したクライアント装置１を検出するために、ＡＣＫフラグのみが立っているＴＣＰパケットを検出する場合を説明したが、本発明はこれに限定されるものではなく、例えば、他のプロトコル層のヘッダ情報や、ペイロード部分の情報からコネクション確立後のクライアント装置１を検出するなど、コネクションを確立したクライアント装置１を検出するための手法は他の手法でもよい。
【００４４】
（２）パケットのサンプリング
また、上記の実施例１では、通過するパケットを全てキャプチャして監視する場合を説明したが、本発明はこれに限定されるものではなく、例えば、通過するパケットの半分だけキャプチャして監視する、また、通過するパケットを数秒ごとキャプチャして監視するなど、通過するパケットをサンプリングしながら監視するようにしてもよい。そこで、以下では、図４を用いて、通過するパケットを所定回数ごとにサンプリングしながら監視する場合のアドレス特定処理を説明する。
【００４５】
この場合、中継装置１０のヘッダ分析部１３ｂは、同図に示すように、通過するパケットがあると（ステップＳ２０１肯定）、それをカウントし（ステップＳ２０２）、カウントが所定数（例えば１０回）に達したか否かを判定する（ステップＳ２０３）。ここで、所定数に達していない場合には（ステップＳ２０３否定）、上記のステップＳ２０１に処理は戻り、新たなパケットの通過を待機する。
【００４６】
その一方、所定数に達した場合には（ステップＳ２０３肯定）は、ヘッダ分析部１３ｂは、カウントをリセットするとともに（ステップＳ２０４）、上記のステップＳ２０２でカウントされたパケットをキャプチャし（ステップＳ２０５）、コネクション確立後のクライアント装置１に対して送信されているパケットであるか否かを判定する（図３のステップＳ１０３〜１０５参照）。なお、判定後の処理は、図３と同様である。
【００４７】
上記した一連の処理によって、通過するパケットが所定回数ごとに（例えば１０回に１回だけ）キャプチャされ、コネクション確立後のクライアント装置１に対して送信されているパケットであるか否かが判定される。このように、サーバ装置２からクライアント装置１に送信されたパケットをサンプリングしながら監視することで、全てのパケットを監視する手法よりも処理負荷を軽減することが可能である。
【００４８】
ところで、上記したようにパケットをサンプリングしながら監視する場合には、サンプリングのタイミングを動的に変化させてパケットを監視するようにしてもよい。すなわち、例を挙げれば、通過するパケットが少ない時間帯では高率でパケットを監視する（例えば１０パケット中の７パケットをキャプチャして監視する）一方で、通過するパケットが多い時間帯には低率でパケットを監視する（例えば１０パケット中の１パケットをキャプチャして監視する）などしてもよい。このように、サンプリングのタイミングを動的に変化させてパケットを監視することで、状況に応じた効率的なパケット監視を行うことが可能である。
【００４９】
（３）装置構成等
また、上記の実施例で図示した中継装置１０の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、中継装置１０の分散・統合の具体的形態は図示のものに限られず、中継装置１０の全部または一部を各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、中継装置１０にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５０】
なお、上記の実施例では、本発明を実現する中継装置１０を機能面から説明したが、各装置の各機能はパーソナルコンピュータやワークステーションなどのコンピュータにプログラムを実行させることによって実現することもできる。すなわち、本実施例で説明した各種の処理手順は、あらかじめ用意されたプログラムをコンピュータ上で実行することによって実現することができる。そして、これらのプログラムは、インターネットなどのネットワークを介して配布することができる。さらに、これらのプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。つまり、例を挙げれば、実施例に示したような中継装置用プログラムを格納したＣＤ−ＲＯＭを配布し、このＣＤ−ＲＯＭに格納されたプログラムをコンピュータが読み出して実行するようにしてもよい。
【産業上の利用可能性】
【００５１】
以上のように、本発明に係るアドレス特定装置、アドレス特定方法およびアドレス特定プログラムは、サーバ装置との間でコネクションを確立したクライアント装置のアドレスを特定する場合に有用であり、特に、サーバ装置とクライアント装置との間に設置される中継ノードにおいても、コネクションを確立したクライアント装置のアドレスを独自に取得することに適する。
【図面の簡単な説明】
【００５２】
【図１】実施例１の概要および特徴を説明するための図である。
【図２】中継装置の構成を示すブロック図である。
【図３】アドレス特定処理の流れを示すフローチャートである。
【図４】他のアドレス特定処理の流れを示すフローチャートである。
【符号の説明】
【００５３】
１  クライアント装置
２  サーバ装置
３  ネットワーク
１０  中継装置
１１  ネットワークインターフェース部
１２  記憶部
１２ａ  アドレス記憶部
１３  制御部
１３ａ  パケット処理部
１３ｂ  ヘッダ分析部
１３ｃ  アドレス抽出部
【図１】
2006186845.tif 000003
【図２】
2006186845.tif 000004
【図３】
2006186845.tif 000005
【図４】
2006186845.tif 000006