(57)【要約】【課題】  ＮＡＴまたはＮＡＰＴなどのネットワークアドレス変換機器を動作させている端末を、より高い精度で検出する方法を提案する。【解決手段】該方法は、ネットワークデータを第１の機器に転送するネットワークアドレス変換機器を検出する方法であって、ネットワークに接続された第２の機器のアドレスを取得するステップと、前記アドレスを送信先アドレスとし、前記ネットワークデータの転送可能回数を、前記第１の機器に到達するのに要する転送回数として設定した疑似ネットワークデータを作成するステップと、前記疑似ネットワークデータを、前記第２の機器に送信するステップと、前記第２の機器から、前記疑似ネットワークデータの再転送不可のメッセージを検知するステップと、  前記メッセージを検知したことに応答して、前記第２の機器が、ネットワークアドレス変換機器を動作させていると判断するステップとを含む方法である。【選択図】図５
2007295039.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークデータを第１の機器に転送するネットワークアドレス変換機器を検出する方法であって、
ネットワークに接続された第２の機器のアドレスを取得するステップと、
前記アドレスを送信先アドレスとし、前記ネットワークデータの転送可能回数を、前記第１の機器に到達するのに要する転送回数として設定した疑似ネットワークデータを作成するステップと、
前記疑似ネットワークデータを、前記第２の機器に送信するステップと、
前記第２の機器から、前記疑似ネットワークデータの再転送不可のメッセージを検知するステップと、
前記メッセージを検知したことに応答して、前記第２の機器が、ネットワークアドレス変換機器を動作させていると判断するステップと
を含む方法。
【請求項２】
前記アドレスを取得するステップは、さらに、
前記ネットワークを流れる前記ネットワークデータをキャプチャするステップと、
前記キャプチャしたネットワークデータの送信先アドレスを取得するステップと
を含む請求項１に記載の方法。
【請求項３】
前記ネットワークデータはパケットであり、前記転送可能回数はＴＴＬ値である、請求項１に記載の方法。
【請求項４】
前記ネットワークアドレス変換機器がＮＡＴまたはＮＡＰＴのいずれか１つである、請求項１に記載の方法。
【請求項５】
前記方法は、さらに、
パケットのＴＴＬの値、ポート番号が不連続か、または、ＴＣＰタイムスタンプが不連続かのいずれか１つ以上から、前記ネットワークアドレス変換機器を動作させていると判断するステップと
を含む請求項１乃至４のいずれかに記載の方法。
【請求項６】
前記方法は、さらに、
前記動作させていると判断した場合、前記第２の機器宛てに送信するネットワークデータの前記転送可能回数を変更して、前記ネットワークアドレス変換機器としての機能を無効化するステップと
を含む請求項１に記載の方法。
【請求項７】
請求項１乃至６のいずれか１項に記載の方法の各ステップを、コンピュータに実行させるための、コンピュータ・プログラム。
【請求項８】
ネットワークデータを第１の機器に転送するネットワークアドレス変換機器を検出する装置であって、
ネットワークに接続された第２の機器のアドレスを取得する手段と、
前記アドレスを送信先アドレスとし、、前記ネットワークデータの転送可能回数の上限を、前記送信先機器までの転送回数として設定した疑似ネットワークデータを作成する手段と、
前記疑似ネットワークデータを、前記第２の機器に送信する手段と、
前記第２の先機器から、前記作成した疑似ネットワークデータの転送不可のメッセージを検知した場合に、前記第２の機器が、ネットワークアドレス変換機器を動作させていると判断する手段と
を有する装置。
【請求項９】
前記装置は、さらに
前記ネットワークデータをキャプチャする手段をさらに含み、
前記アドレスを取得する手段は、前記キャプチャした前記ネットワークデータの送信先アドレスから取得することを特徴とする
請求項８に記載の装置。
【請求項１０】
前記ネットワークデータはパケットであり、前記転送可能回数はＴＴＬ値である、請求項８に記載の装置。
【請求項１１】
前記ネットワークアドレス変換機器がＮＡＴまたはＮＡＰＴのいずれか１つである、請求項８に記載の装置。
【請求項１２】
前記装置は、さらに、
前記ネットワークアドレス変換機器を動作させていると判断した場合に、前記第２の機器宛てに送信するネットワークデータの前記転送可能回数を変更して、前記ネットワークアドレス変換機器としての機能を無効化する手段と
を含む請求項８に記載の装置。
【請求項１３】
前記パケットは、ＡＣＫパケット、ＴＣＰ  Ｃｈｅｃｋｓｕｍに正しくない値を入れたパケット、または、ＵＤＰ  Ｃｈｅｃｋｓｕｍに正しくない値を入れたパケットのいずれかである請求項１０に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＣなどの正規認証を得ている端末上で、ネットワークアドレス変換機器を動作させることで、接続許可を得ていない端末を接続している状態を把握することに関する。
【背景技術】
【０００２】
最近、企業などのイントラネットなどでは、情報漏洩やコンピュータ・ウィルスの蔓延を防ぐため、許可を得ていないコンピュータの接続を防止するようにしている。そのため、認証スイッチやワイヤレスアクセスポイントでは、IEEE 802.1xなどで端末を認証した後、認証された端末をＭＡＣアドレス（Ｍｅｄｉａ  Ａｃｃｅｓｓ Ｃｏｎｔｒｏｌ  Ａｄｄｒｅｓｓ）あるいはＭＡＣアドレスとＩＰアドレス（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ａｄｄｒｅｓｓ）のペアで判別している。また、不正な接続端末の検出を可能にする製品・システムにおいても、同様の判別を行っている。このように、ＭＡＣアドレス・ＩＰアドレスを用いた端末の判別法は広く用いられている。
【０００３】
一方、接続許可を得た正規端末にＬＡＮカードを複数枚装着して、該正規端末上で、ＮＡＴ（Ｎｅｔｗｏｒｋ Ａｄｄｒｅｓｓ Ｔｒａｎｓｌａｔｉｏｎ）またはＮＡＰＴ（Ｎｅｔｗｏｒｋ Ａｄｄｒｅｓｓ Ｐｏｒｔ Ｔｒａｎｓｌａｔｉｏｎ）を動作させ、正規端末のＮＡＴ／ＮＡＰＴ経由で認証を受けていない端末をネットワークに接続する方法がある。このような接続は、企業の従業員が、自宅で使用しているＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などを、企業のネットワークに接続するために、悪意無く利用することがある。この場合、該ＰＣが、アンチ・ウィルス・ソフトなどのセキュリティ・ソフトをインストールしないで、また、最悪の場合、コンピュータ・ウィルスに感染している状態で接続される場合がある。このような接続許可を受けていない端末は接続を許可すべきでない。
【０００４】
しかし、該ＰＣは、正規端末のＮＡＴまたはＮＡＰＴ経由でネットワークに接続するので、接続許可を受けていない該ＰＣより出たパケットのＭＡＣアドレスおよびIPアドレスは正規端末のものに置き換わり、発見するのが容易でなくなる。このため、企業内ネットワークで、疑わしいアクセスや、動作があっても、ネットワーク管理者はそれを突き止めることは容易ではない。
【０００５】
非特許文献１では、これらの、ＮＡＴ／ＮＡＰＴを動作させている端末を見つけるために、スイッチ上を流れるパケットの情報をｓＦｌｏｗプロトコル（ＲＦＣ ３１７６）を用いて、解析サーバに収集している。解析サーバ上では、ＩＰヘッダのＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）値をチェックし、ＮＡＴ／ＮＡＰＴを動作させている端末を確認している。非特許文献２では、詳細は不明だが、ネットワーク上を流れるネットワークデータのＴＴＬ値やＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）ヘッダのＴｉｍｅスタンプ値などを用いて、ＮＡＴを動作させている端末を確認しているようである。
【０００６】
非特許文献１および非特許文献２では、パケットをモニタリングするだけなので、ＮＡＴ／ＮＡＰＴの検出率があまり高くない。また、ＴＴＬの初期値は、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）では１２８、Ｌｉｎｕｘ（登録商標）ＯＳでは６４で決まっているが、この値はレジストリやＯＳの設定ファイルを変更することで、ユーザが容易にＴＴＬ初期値を改竄できるので、ＮＡＴ／ＮＡＰＴの検出について信頼性が高いとはいえない。
【０００７】
【非特許文献１】Detecting NAT Devices using sFlow (URL:http://www.sflow.org/detectNAT/)
【非特許文献２】NATDet - NATDetection Tool (URL:http://elceef.itsec.pl/natdet/)
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ＮＡＴまたはＮＡＰＴなどのネットワークアドレス変換機器を動作させている端末を、より高い精度で検出し、無効化する必要がある。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明においては、ネットワークアドレス変換機器を検出する方法を提案する。該方法は、  ネットワークデータを第１の機器（例えば、ＮＡＴ／ＮＡＰＴを介してネットワークに接続される機器）に転送するネットワークアドレス変換機器を検出する方法であって、ネットワークに接続された第２の機器（例えば、ネットワークに接続される単一のまたはＰＣ）のアドレスを取得するステップと、前記アドレスを送信先アドレスとし、前記ネットワークデータの転送可能回数を、前記第１の機器に到達するのに要する転送回数として設定した疑似ネットワークデータを作成するステップと、前記疑似ネットワークデータを、前記第２の機器に送信するステップと、前記第２の機器から、前記疑似ネットワークデータの再転送不可のメッセージを検知するステップと、  前記メッセージを検知したことに応答して、前記第２の機器が、ネットワークアドレス変換機器を動作させていると判断するステップとを含む方法である。該方法により、ＮＡＴまたはＮＡＰＴを動作させている端末を高い精度で検出することが可能となる。
【００１０】
前記方法は、さらに、前記ネットワークアドレス変換機器を動作させていると判断した場合、前記ネットワークに接続された機器宛てに送信するネットワークデータの前記転送可能回数を変更して、前記ネットワークアドレス変換機器を無効化するステップとを含む。該方法により、ＮＡＴ／ＮＡＰＴを検出した後、ＮＡＴ／ＮＡＰＴの無効化処理を自動で行うので、ネットワークの管理がより容易になる。
【発明を実施するための最良の形態】
【００１１】
図１は、ネットワークアドレス変換機器（ＩＰアドレスの変換を行うＮＡＴ、またはアドレスおよびポート番号の変換を行うＮＡＰＴ）を動作させている端末を検出する装置に関するハードウェア構成１００の概略を示している。中央演算処理装置であるＣＰＵ１０１は各種オペレーティング・システムの制御下で様々なプログラムを実行する。ＣＰＵ１０１はバス１０２を介して、メモリ１０３、ディスク１０４、ディスプレイ・アダプタ１０５、ユーザ・インタフェース１０６およびネットワーク・インタフェース１０７と相互接続される。
【００１２】
ディスク１０４には、コンピュータを機能させるために必要なソフトウェア、オペレーティング・システムおよび本発明を実行するためのプログラム等が含まれる。これらのプログラムは必要に応じメモリに読み出されＣＰＵで実行される。また、ディスク１０４には、ネットワークをモニタリングしてキャプチャしたネットワークデータ（パケット）や、既にチェックしたネットワークアドレスなどを記録しておく。なお、ディスク１０４は、フラッシュメモリなどで代用可能であり、記録可能な媒体であればハードディスクに限定されないことは当業者には自明である。
【００１３】
ユーザ・インタフェース１０６を通して、キーボード１０９およびマウス１１０に接続され、ディスプレイ・アダプタ１０５を通してディスプレイ装置１０８に接続され、ネットワーク・インタフェース１０７を通してネットワーク１１１に接続される。キーボード１０９およびマウス１１０により、本装置が操作され、ディスプレイ装置１０８に、処理の途中経過や処理結果が表示される。ネットワーク・インタフェース１０７は、ネットワーク・カードなどが接続される。ネットワーク・インタフェース１０７を介して、ネットワークデータの取得や送信が行われる。
【００１４】
ネットワーク１１１を介して、本発明が分散環境で実施される場合もある。なお、このハードウェア構成１００は、コンピュータ・システム、バス配置およびネットワーク接続の一実施形態の例示に過ぎず、本発明の特徴は、さまざまなシステム構成で、同一の構成要素を複数有する形態で、または、ネットワーク上にさらに分散された形態で実現することができる。
【００１５】
図２は、ネットワークアドレス変換機器検出装置が動作するネットワーク環境の一例である。例えばインターネット２０１から、企業内のルータ２０２に接続され、本発明のネットワークアドレス変換機器検出装置２０３にさらに接続される。ネットワークアドレス変換機器検出装置２０３は、ネットワーク・スイッチ２１１と接続され、ネットワークスイッチ２１１には、ネットワークスイッチ２１０および２１２が接続されている。ルータ２０２は、サブネットワークを形成する。それぞれのネットワーク・スイッチには複数のＰＣ端末が接続されており、ネットワーク・スイッチ２１１には、ＰＣ２２０、２２１、２２２・・・が接続されている。図２からわかるように、本発明のネットワークアドレス変換機器検出装置２０３は、ルータ２０２とネットワーク・スイッチ２１１の間に位置している。
【００１６】
ネットワークアドレス変換機器検出装置２０３は、ネットワークスイッチ２１１に接続されているＰＣ２２０〜２２３・・に加えて、他のネットワークスイッチ２１０および２１２に接続されているＰＣから送られるネットワークデータを、全て取得することができる。ルータ２０２がある位置に、Ｌ３スイッチがあり、これが、ミラーリング機能を備えていれば、ネットワークアドレス変換機器検出装置２０３は、ミラーリング機能に直接接続すればよく、ここに位置する必要はない。また、ネットワークアドレス変換機器検出装置２０３は、他の実施形態としては、それぞれのＰＣとネットワーク・スイッチの間に、ネットワークデータのキャプチャ装置を設置してもよい。ネットワークへの接続形態は図２に限られるものではない。
【００１７】
図３は、ネットワークアドレス変換機器検出装置の機能構成の概略を示したものである。通信部３０１は、ネットワークデータを収集したり、送信したりするのに使用する。ネットワークデータのキャプチャ部３０２は、各ＰＣが送信しているネットワークデータをキャプチャする。ネットワークデータ作成部３０３は、ネットワークデータのキャプチャ部３０２でキャプチャしたネットワークデータの送信先アドレス、送信元アドレス、送信元ポート、送信先ポートと同じ設定値を持つ疑似のネットワークデータを作成する。作成されたネットワークデータは、ネットワークアドレス変換機器により転送できないように、すなわち、転送しようとしたときに転送不可のエラーメッセージが出るようにパラメータを設定する。そして、作成されたネットワークデータは、通信部３０１から送信される。
【００１８】
ネットワークアドレス変換機器判断部３０４は、ネットワークデータの送信後、転送不可のエラーメッセージが返ってきたか否かを判断する。転送不可のエラーメッセージがあった場合、ネットワークアドレス変換装置が動作しているということなので、ネットワークデータのネットワークアドレスを持つＰＣ端末は、ＮＡＴ／ＮＡＰＴを動作していると判断できる。チェック管理ＤＢ３０５は、キャプチャしたネットワークデータや、チェックし終わったネットワークアドレスなどを記録しておく。ネットワークアドレス変換機器無効化処理部３０６は、ＮＡＴ／ＮＡＰＴを動作させている機器宛てのネットワークデータのパラメータの一部を変更することで、ＮＡＴ／ＮＡＰＴを実質的に無効にする処理を行う。無効化の詳細については後述する。
【００１９】
図４は、パケットなどのネットワークデータが、ネットワークアドレス変換機器であるＮＡＴ／ＮＡＰＴを動作しているＰＣに転送される際の概要を示したものである。図４（ａ）では、従来のＷｉｎｄｏｗｓＯＳから送信されたネットワークデータであるパケットが、ＮＡＴ／ＮＡＰＴにより転送される様子を示したものである。ＰＣ−Ａからパケット４０１が送信される。パケット４０１は、ＰＣ−Ｂに到達した後、ネットワークアドレスが変更されて、パケット４０２としてＰＣ−Ｘに転送される。パケット４０１では、転送可能回数を示すパラメータであるＴＴＬの初期値は１２８になっている。パケット４０１が、ＮＡＴ／ＮＡＰＴ機器で転送される際、ＴＴＬの値は１減され、パケット４０２では、ＴＴＬは１２７になる。なお、Ｌｉｎｕｘの場合、ＴＴＬの初期値は６４である。
【００２０】
図４（ｂ）は、ネットワークアドレス変換機器検出装置４１０が作成したパケット４１１を送信する概要を示している。ネットワークアドレス変換機器検出装置４１０は、ＴＴＬの値が１のパケットをＰＣ−Ｂに対して送信する。これは、ＰＣ−ＡとＰＣ−Ｂの間のパケットをキャプチャして、これを元に、パケット４１１を作成してもよい。ＮＡＴ／ＮＡＰＴが動作するＰＣ−Ｂでは、それを、パケット４１２としてＰＣ−Ｘに転送する場合、転送可能回数であるＴＴＬが０となるので、転送不可としてエラーメッセージを送信する。エラーメッセージ４１３をネットワークアドレス変換機器検出装置４１０が検出すれば、ＰＣ−ＢがＮＡＴ／ＮＡＰＴを動作させていることが分かる。
【００２１】
図５は、ネットワークアドレス変換機器を検出するための処理フローを例示している。ステップ５０１で処理を開始する。ステップ５０３でネットワークに接続されたＰＣから送信されるネットワークデータをキャプチャする。ステップ５０５では、ステップ５０３でキャプチャしたネットワークデータの送信先アドレスを取得する。ここでは、既にチェックしたＰＣのアドレスについては、再チェックを行わないようにしてもよい。既にチャックしたＰＣのアドレスの場合は、再度別のネットワークデータを取得するようにステップ５０３に戻る。再チェックを行わないようにするには、図３のチェック管理ＤＢ３０５にチェック済みアドレスを登録して管理することで実現できる。
【００２２】
また、ステップ５０３および５０５では、代わりに、ルータやインテリジェント・スイッチが管理するＡＲＰ（Ａｄｄｒｅｓｓ Ｒｅｓｏｌｕｔｉｏｎ Ｐｒｏｔｏｃｏｌ）テーブルからアドレスを取得するようにしてもよい。ステップ５０７では、ステップ５０５で取得した送信先アドレスを持つネットワークデータを作成する。このネットワークデータは転送可能回数であるＴＴＬ値を１にするなどのパラメータ設定があるが、詳細については後述する。ステップ５０９では、ステップ５０７で作成したネットワークデータを送信する。ステップ５１１では、ステップ５０９で送信したネットワークデータに対して、ネットワークデータ転送不可のエラーメッセージを検出したか判断する。
【００２３】
ステップ５１１でエラーメッセージを検出しない場合（Ｎｏ）、ステップ５１５に進む。一方、ステップ５１１でエラーメッセージを検出した場合（Ｙｅｓ）、ステップ５１３で、ネットワークデータの送信先アドレスのＰＣがＮＡＴ／ＮＡＰＴを動作させていることを特定する。ステップ５１５では、さらに検出処理を続けるか判断する。ステップ５１５で、処理を続けると判断した場合（Ｙｅｓ）、他のＰＣのアドレスについて検出処理を行うため、ステップ５０３に戻る。ステップ５１５で、処理を続けないと判断した場合（Ｎｏ）、ステップ５１７に進み、処理を終了する。
【００２４】
図６は、図５のフローに従って、ＮＡＴ／ＮＡＰＴ検出装置が、ネットワークデータであるパケットを処理する概要を示したものである。ＰＣ−Ａ６０１はＭＡＣアドレス００：００：００：００：００：０１とＩＰアドレス１９２．１６８．１０３．２００に設定されている。ＰＣ−Ｂ６０２は、ＮＡＴまたはＮＡＰＴを動作させている端末であると仮定する。すなわち、ＰＣ−Ｂの正規ネットワーク側は、ＭＡＣアドレス００：００：００：００：００：０２とＩＰアドレス１９２．１６８．１０３．１００に設定されたネットワークカードを持つ。
【００２５】
もう一枚のネットワークカードは、ＭＡＣアドレス００：００：００：００：００：０３とＩＰアドレス１９２．１６８．９４．１０を有するネットワークカードを持ち、プライベートネットワーク側に接続している。さらに、接続許可を受けていないＰＣ−Ｘが、ＮＡＴ／ＮＡＰＴを介してＰＣ−Ｂに接続される。ＰＣ−ＸはＭＡＣアドレス００：００：００：００：００：０４とＩＰアドレス１９２．１６８．９４．２０に設定されている。また、ここではＮＡＴ／ＮＡＰＴ検出システム６０４が、動作しているものとする。
【００２６】
ＰＣ−Ｘは、ＰＣ−ＢのＮＡＴ／ＮＡＰＴを介して、ＰＣ−Ａとパケットの送受信を行っているものとする。ＰＣ−Ｘから、送信されたパケット６１１は、送信元ＭＡＣ:００：００：００：００：００：０４、送信先ＭＡＣ:００:００:００:００:００:０３（ネットワークカード２のＭＡＣアドレス）、ＴＴＬ:１２８、送信元ＩＰ:１９２．１６８. ９４．２０、送信先ＩＰ:１９２．１６８.１０３．２００（ＰＣ−ＡのＩＰアドレス）、ＴＣＰ送信元ポート：１００００、ＴＣＰ送信先ポート：２３、ＴＣＰフラグ：ＡＣＫ＋ＰＳＨに設定されている。パケット６１１は、ＰＣ−ＢのＮＡＴ／ＮＡＰＴによりアドレスを変換される。ネットワークカード１から、ＰＣ−Ａに送信されるときには、パケット６１２のようにＭＡＣアドレス、ＩＰアドレス、ポート番号等が変更される。
【００２７】
また、ＰＣ−Ａからは、返答として、パケット６１３が送出される。パケット６１３は、ＰＣ−ＢのＮＡＴ／ＮＡＰＴを介して、ネットワークカード２から、パケット６１４として送信される。ＮＡＴ／ＮＡＰＴ検出装置６０４は、パケット６１３をキャプチャし、ＮＡＴ／ＮＡＰＴを検知するためのパケット６２１を作成して、ＰＣ−Ｂ宛てに送信する。ここでは、パケット６２１は、ＩＰヘッダのＴＴＬ値を１に設定し、ＴＣＰヘッダのＣｈｅｃｋｓｕｍ値に不正な数値を入れる。
【００２８】
これは、ＰＣ−ＢがＮＡＴ／ＮＡＰＴを動作させていない場合には、ＰＣ−Ｂは、パケットを受取った後、ＴＣＰ  Ｃｈｅｃｋｓｕｍが間違っているので、そのパケットを廃棄するだけで、他には影響ないからである。また、パケットのＴＣＰフラグをＡＣＫに設定していてもよい。これも、関係ないＡＣＫを受取った場合、ＰＣ−Ｂはそのパケットを廃棄するだけだからである。さらに、ＵＤＰセッションの場合、ＵＤＰ  Ｃｈｅｃｋｓｕｍに不正な値を入れてもよい。
【００２９】
ＰＣ−Ｂが、ＮＡＴ／ＮＡＰＴを動作させている場合、ＴＴＬ値が１なので、これ以上他にパケット６２２を転送できないとして、ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ Ｃｏｎｔｒｏｌ Ｍｅｓｓａｇｅ Ｐｒｏｔｏｃｏｌ）  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄメッセージ６２２を送出する。ＮＡＴ／ＮＡＰＴ検出装置６０４は、パケット６２２を検出した場合、ＰＣ−ＢはＮＡＴ／ＮＡＰＴを動作させているものとして判断する。なお、パケット６２１がＰＣ−Ｂで本来処理されるものであっても、Ｃｈｅｃｋｓｕｍが間違っているので、パケット６２１を廃棄するだけで、他の処理には影響を与えない。
【００３０】
しかし、ＮＡＴ／ＮＡＰＴ検出装置６０４は、パケット６２２をキャプチャすることに失敗する場合もある。検出の精度を上げるためには、ＮＡＴ／ＮＡＰＴ検出システムから、パケット６２１の送信を複数回繰り返すのがよい。
【００３１】
さらに、精度を上げるために、他の項目をチェックすることと併せて、ＮＡＴ／ＮＡＰＴを検出することも考えられる。例えば、図７は、ＩＰヘッダのＩＤフィールドの変化を示したものである。７０１と７０２のパケットのＩＤフィールドと、７０３と７０４のＩＤフィールドでは、数値が大きく離れているため、同一のＰＣから送出されたパケットであっても、２つのＩＤの体系があることが予想される。そのため、このような場合には、該ＰＣは、ＮＡＴ／ＮＡＰＴを動作させていると予想される。
【００３２】
また、ＩＰヘッダのＴＴＬフィールドの値をチェックすることで、ＮＡＴ／ＮＡＰＴを動作しているか否かを判断することが可能である。例えば、図８のように、パケット８０１と８０２では、ＴＴＬ値が１２８なので、ＷｉｎｄｏｗｓＯＳから送出され初期値のＴＴＬだと判断できる。一方、パケット８０３と８０４では、ＴＴＬ値が１２７なので、ＮＡＴ／ＮＡＰＴで転送されたものとして判断できる。しかし、このＴＴＬ値は、ＰＣのレジストリの変更で、ユーザが自由に設定できるので、単独では信頼性に欠ける恐れがある。そのため、図６のパケット６２２の検出と併せて利用するのが好ましい。
【００３３】
さらに、ＴＣＰヘッダやＵＤＰヘッダのポート番号の値をチェックッすることで、ＮＡＴ／ＮＡＰＴを動作しているか否かを判断することが可能である。図９のように、パケット９０１と９０２のポート番号と、パケット９０３と９０４の送信元ポート番号はあまりにも違うので（ポート番号が不連続な値であるので）、これらのパケットが同一の送信元の場合、ＮＡＴ／ＮＡＰＴを動作している可能性があると考えられる。
【００３４】
さらに、ＴＣＰタイムスタンプの値をチェックすることで、ＮＡＴ／ＮＡＰＴを動作しているか否かを判断することが可能である。各ＰＣごとにマシン時間が異なるので、ある一定時間内にタイムスタンプが大きく異なる複数のパケットが同一のＰＣから送信されている場合、すなわち、不連続なＴＣＰタイムスタンプの値が観測された場合、ＮＡＴ／ＮＡＰＴを動作している可能性があると考えられる。
【００３５】
図１０は、ＮＡＴ／ＮＡＰＴを動作しているＰＣに対して、ＮＡＴ／ＮＡＰＴを無効化する方法を示している。ここでは、ＮＡＴ／ＮＡＰＴを無効化するために、ＮＡＴ／ＮＡＰＴを動作しているＰＣ宛てのパケットのＴＴＬ値を１に変更するようにする。これは、ルータやレイヤ３スイッチに、ＴＴＬ値の変更機能を追加し、ＮＡＴ／ＮＡＰＴ検出装置からＮＡＴ／ＮＡＰＴを動作しているＰＣのアドレスの通知を受けた後、該ＰＣ宛てのパケットを中継する際に、パケットのＴＴＬ値を１に設定することで可能である。すなわち、パケット１０１０をルーティングする際に、パケット１０１２のようにＴＴＬ値を１に変更する。
【００３６】
また、図１１では、ＰＣ１１００のＡＲＰテーブルを変更して、該ＰＣ宛てのパケットを、ＴＴＬ変更機器向けにすることで、ＴＴＬの値を１に変更することも可能である。これは、ＡＲＰテーブル１１０２中のＮＡＴ／ＮＡＰＴを動作しているＰＣに対応するＭＡＣアドレス１１０３を、ＴＴＬ変換装置のＭＡＣアドレスに変更することで実現できる。これにより、ＰＣ−Ｘ宛てのパケットは必ずＴＴＬ変換機器１１０６を経由することになり、例えば、ＴＴＬ値が１２８のパケット１１０４を、ＴＴＬ値が１のパケット１１０８に変更される。この結果、ＮＡＴ／ＮＡＰＴを実質的に無効化できる。
【００３７】
以上、本発明によれば、ＮＡＴやＮＡＰＴのようなネットワークアドレス変換機器動作するＰＣを、高い精度で検出することができ、また、発見した後、ＮＡＴやＮＡＰＴを容易に無効化することが可能である。
【００３８】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００３９】
【図１】ネットワークアドレス変換機器を動作させている端末を検出する装置に関するハードウェア構成の概略を示している。
【図２】ネットワークアドレス変換機器検出装置が動作するネットワーク環境の例示である。
【図３】ネットワークアドレス変換機器検出装置の機能構成の概略を示したものである。
【図４】ネットワークデータが、ネットワークアドレス変換機器を動作しているＰＣ転送される際の概要を示したものである。
【図５】ネットワークアドレス変換機器を検出するための処理フローを例示している。
【図６】ＮＡＴ／ＮＡＰＴ検出装置が、パケットを処理する概要を示したものである。
【図７】ＩＰヘッダのＩＤフィールドの変化を例示したものである。
【図８】パケットのＴＴＬ値の例示である。
【図９】パケットのポート番号の例示である。
【図１０】ＮＡＴ／ＮＡＰＴを無効化する方法を例示している。
【図１１】ＮＡＴ／ＮＡＰＴを無効化する方法を例示している。
【図１】
2007295039.tif 000003
【図２】
2007295039.tif 000004
【図３】
2007295039.tif 000005
【図４】
2007295039.tif 000006
【図５】
2007295039.tif 000007
【図６】
2007295039.tif 000008
【図７】
2007295039.tif 000009
【図８】
2007295039.tif 000010
【図９】
2007295039.tif 000011
【図１０】
2007295039.tif 000012
【図１１】
2007295039.tif 000013