説明

分散ネットワーク内の無許可ルータを検出するためのコンピュータによって実行される方法、データ処理システム、およびコンピュータ・プログラム(ルータ検出)

【課題】 ネットワーク内の無許可ルータを発見するためのコンピュータによって実行される方法、データ処理システム、およびコンピュータ・プログラムを提供する。
【解決手段】 例示的な諸実施形態のプロセスは、まず、疑わしいルータまたは宛先装置の物理アドレスを入手する。少なくとも宛先メディア・アクセス制御フィールド、宛先インターネット・プロトコル・フィールド、および活動時間フィールドを含むデータ・パケットを作成し、宛先メディア・アクセス制御フィールドは宛先装置の物理アドレスを含み、宛先インターネット・プロトコル・フィールドは偽インターネット・プロトコル・アドレスを含み、活動時間フィールドはデータ・パケットが時間制限を超えたことを示す値を含む。宛先メディア・アクセス制御フィールド内の物理アドレスを使用して、宛先装置にデータ・パケットを送信する。宛先装置から時間超過メッセージを受信した場合、その宛先装置が経路指定のために使用可能になっていると判断する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、改良されたデータ処理システムに関し、特に、ネットワーク内の無許可ルータを発見するためのコンピュータによって実行される方法、データ処理システム、およびコンピュータ・プログラム(computer program product)に関する。
【背景技術】
【0002】
分散ネットワーク・データ処理システムは、企業および家庭でますます普及している。典型的に、ネットワーク・データ処理システムは、ネットワーク内に接続された様々な装置およびコンピュータ間の通信リンクを提供するために使用される媒体を有するネットワークを含む。この媒体は、ネットワーク上の種々の装置間でデータの経路指定を行うルータなどの他の装置との通信リンクを提供するワイヤを含む。ネットワーク内でデータを伝送するために使用されるプロトコルの1つは、伝送制御プロトコル/インターネット・プロトコル(TCP/IP:transmission control protocol/internet protocol)である。このプロトコルは、インターネット上で使用され、イントラネット、ローカル・エリア・ネットワーク(LAN)、または広域ネットワーク(WAN)などの他のネットワークでも実装することができる。TCPは、送信された全バイト数が正確にもう一方の側で受信されることを保証するためのトランスポート機能を提供する。IPは、TCPからのパケットを受け入れるために使用され、データリンク層プロトコルにそのパケットを配信するためのヘッダを追加する。種々のシステム間でデータを送信するためにネットワーク内のすべてのクライアントおよびサーバによってIPアドレスが使用される。
【0003】
ルータは、データが異なるネットワーク(すなわち、個別の論理サブネット)間を移動するための適切なパス(path)を決定する装置である。ルータは、このパスに沿って次の装置にデータ・パケットを転送する。ルータは、使用可能な経路(route)およびその条件のテーブルを作成または維持し、この情報を使用して所与のパケットのために最良経路を決定することができる。
【0004】
セキュリティの世界では、ある組織のネットワーク内の無許可ルータはローグ・ルータ(rogue router)として知られている。このような無許可ルータはモニターされず、ルータのサブネット上のマシンもモニターされない。このようなルータに関連するセキュリティ上の懸念がいくつかあるので、組織は自身のネットワーク上で無許可ルータが動作するのを望まない。ユーザに悪意がなくても、ネットワーク内のクライアント装置はローグ・ルータになる可能性がある。たとえば、ユーザがラップトップ・コンピュータをクライアント装置に接続し、モデムを使用してインターネットを介して電子メールにアクセスする場合、そのモデムは無許可ルータになる。ユーザのラップトップ上のオペレーティング・システムがルータ機能を含み、その機能が使用可能になっている場合、そのラップトップはルータとして働くこともできる。ユーザのラップトップは許可ルータより弱いファイアウォールを含むので、このシナリオはセキュリティ問題を発生する。その結果として、ネットワーク・セキュリティ管理者が無許可ルータを検出し、その動作を中止できることが望ましい。
【0005】
あるコンピュータから他のコンピュータにパケットが送信される場合、そのパケットは0個またはそれ以上のルータをトラバースする。パケットがトラバースする一連のルータはその経路またはパスと呼ばれる。1つのルータのトラバーサルはホップと呼ばれる。現在の技術では、トレースルート・ユーティリティ(traceroute utility)を使用すると、ソース・マシンと指定の宛先マシンとの間の分散ネットワークを通る経路を記録することにより、ネットワーク内のルータを検出することができる。宛先マシンがアクティブであり、ソース・マシン内のモニター・ツールが宛先マシンのIPアドレスをpingすることができる場合、ソース・マシンと宛先マシンとの間のルータ(複数も可)を検出することは可能である。トレースルート・コマンドは、(インターネット制御メッセージ・プロトコルまたはICMPを使用して)一連のパケットをターゲット宛先マシンに送信することによって動作する。第1のパケットは、第1のホップに関するパケットを受信する第1のルータが超えるように設計された限られた活動時間(TTL:Time-To-Live)値とともに構築される。たとえば、第1のパケット内のTTL値は1という値を有する。第1のルータが1というTTL値を有するパケットに遭遇すると、第1のルータは、送信側ソース・マシンにICMP時間超過メッセージ(タイプ11)を返送する義務がある。また、送信側ソース・マシンは、第2のホップに関する2という活動時間(TTL)値を含むその他のパケットを送信し、次に、第3のホップに関する3という活動時間(TTL)値を含むその他のパケットを送信し、以後同様に送信する。その結果として、パス内の各ルータは、送信側ソース・マシンと宛先マシンとの間でタイプ11のパケットで応答することになる。最終的な宛先マシンがパケットに応答すると、プロセスは停止する。
【発明の概要】
【発明が解決しようとする課題】
【0006】
ネットワーク内のルータを検出するためにトレースルート・ユーティリティを使用することができるが、トレースルート・ユーティリティの問題は、経路指定されたサブネットが不明である場合またはルータのサブネット上のマシンが無音であるか機能停止している場合、マシンが経路指定しているかどうかをネットワーク管理者が発見できないことである。したがって、トレースルートなどの現在の技術のユーティリティは、ソース・マシンがサブネットのIPアドレスまたはサブネット内のマシンのIPアドレスを把握している場合にマシンがルータであるかどうかを発見できるようにするだけである。
【課題を解決するための手段】
【0007】
例示的な諸実施形態は、ネットワーク内の無許可ルータを発見するためのコンピュータによって実行される方法、データ処理システム、およびコンピュータ・プログラムを提供する。例示的な諸実施形態のプロセスは、まず、疑わしいルータ(suspected router)または宛先装置の物理アドレスを入手する。少なくとも宛先メディア・アクセス制御フィールド、宛先インターネット・プロトコル・フィールド、および活動時間フィールドを含むデータ・パケットを作成し、宛先メディア・アクセス制御フィールドは宛先装置の物理アドレスを含み、宛先インターネット・プロトコル・フィールドは偽(bogus)インターネット・プロトコル・アドレスを含み、活動時間フィールドはデータ・パケットが時間制限を超えたことを示す値を含む。宛先メディア・アクセス制御フィールド内の物理アドレスを使用して、宛先装置にデータ・パケットを送信する。宛先装置から時間超過メッセージを受信した場合、その宛先装置が経路指定のために使用可能になっていると判断する。
【0008】
次に、以下の図面に関連して、一例としてのみ、本発明の好ましい諸実施形態について説明する。
【図面の簡単な説明】
【0009】
【図1】例示的な諸実施形態を実装可能な分散データ処理システムの図表現である。
【図2】例示的な諸実施形態を実装可能なデータ処理システムのブロック図である。
【図3】本発明の好ましい一実施形態により描写されたデータ処理システム用の典型的なソフトウェア・アーキテクチャを示す図である。
【図4】本発明の好ましい一実施形態により描写された伝送制御プロトコル/インターネット・プロトコル(TCP/IP)および同様のプロトコルを示す図である。
【図5】例示的な諸実施形態により無許可ルータを発見するためのローグ・ルータ・ハンタ・システムのブロック図である。
【図6】例示的な諸実施形態によりローグ・ルータ・ハンタによって作成されたパケットを示す図である。
【図7】例示的な諸実施形態により無許可ルータを発見するためのプロセスの流れ図である。
【発明を実施するための形態】
【0010】
次に、図面に関連して、特に図1〜図2に関連して説明すると、例示的な諸実施形態を実装可能なデータ処理環境の模範的な図が示されている。図1〜図2は、模範的なものに過ぎず、種々の実施形態を実装可能な環境に関するいかなる制限も表明または暗示するものではないことを認識されたい。描写されている環境に対して多くの変更が可能である。
【0011】
図1は、例示的な諸実施形態を実装可能なデータ処理システムのネットワークの図表現を描写している。ネットワーク・データ処理システム100は、例示的な諸実施形態を実装可能なコンピュータのネットワークである。ネットワーク・データ処理システム100はネットワーク102を含み、このネットワークはネットワーク・データ処理システム100内に一緒に接続された様々な装置およびコンピュータ間の通信リンクを提供するために使用される媒体である。ネットワーク102は、ワイヤ、無線通信リンク、または光ファイバ・ケーブルなどの接続部を含むことができる。
【0012】
描写されている例では、サーバ104およびサーバ106は記憶装置108とともにネットワーク102に接続する。加えて、クライアント110、112、および114もネットワーク102に接続する。クライアント110、112、および114は、たとえば、パーソナル・コンピュータまたはネットワーク・コンピュータにすることができる。描写されている例では、サーバ104は、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータをクライアント110、112、および114に提供する。クライアント110、112、および114は、この例ではサーバ104に対するクライアントである。ネットワーク・データ処理システム100は、図示されていない追加のサーバ、クライアント、およびその他の装置を含むことができる。
【0013】
描写されている例では、ネットワーク・データ処理システム100は、相互に通信するために伝送制御プロトコル/インターネット・プロトコル(TCP/IP)プロトコル・スイートを使用するネットワークおよびゲートウェイの世界的集合を表すネットワーク102を含むインターネットである。インターネットの中心には、データおよびメッセージを経路指定する数千もの商用、行政、教育、およびその他のコンピュータ・システムからなる、大ノードまたはホスト・コンピュータ間の高速データ通信回線のバックボーンがある。当然のことながら、ネットワーク・データ処理システム100は、たとえば、イントラネット、ローカル・エリア・ネットワーク(LAN)、または広域ネットワーク(WAN)など、いくつかの異なるタイプのネットワークとしても実装することができる。図1は、一例として意図されたものであって、異なる例示的な諸実施形態に関するアーキテクチャ上の制限として意図されたものではない。
【0014】
次に、図2に関連して説明すると、例示的な諸実施形態を実装可能なデータ処理システムのブロック図が示されている。データ処理システム200は、図1のサーバ104またはクライアント110などのコンピュータの一例であり、例示的な諸実施形態の場合、プロセスを実装するコンピュータ使用可能プログラム・コードまたは命令はそこに位置することができる。この例示的な例では、データ処理システム200は、プロセッサ・ユニット204、メモリ206、永続記憶装置208、通信装置210、入出力(I/O)装置212、およびディスプレイ214の間の通信を提供する通信ファブリック202を含む。
【0015】
プロセッサ・ユニット204は、メモリ206にロードすることができるソフトウェア用の命令を実行する働きをする。プロセッサ・ユニット204は、特定の実装例に応じて、1つまたは複数のプロセッサからなるセットである場合もあれば、1つのマルチプロセッサ・コアである場合もある。さらに、プロセッサ・ユニット204は、単一チップ上に2次プロセッサとともにメイン・プロセッサが存在する、1つまたは複数の異種プロセッサ・システムを使用して実装することができる。他の例示的な例として、プロセッサ・ユニット204は、同じタイプの複数プロセッサを含む対称型マルチプロセッサ・システムにすることができる。
【0016】
メモリ206は、この例では、たとえば、ランダム・アクセス・メモリにすることができる。永続記憶装置208は、特定の実装例に応じて、様々な形を取ることができる。たとえば、永続記憶装置208は、1つまたは複数のコンポーネントまたはデバイスを含むことができる。たとえば、永続記憶装置208は、ハード・ディスク、フラッシュ・メモリ、書き換え型光ディスク、書き換え型磁気テープ、またはこれらの何らかの組み合わせにすることができる。永続記憶装置208によって使用される媒体は取り外し可能なものにすることもできる。たとえば、取り外し可能ハード・ディスクを永続記憶装置208に使用することができる。
【0017】
これらの例では、通信装置210は、他のデータ処理システムまたは装置との通信を可能にする。これらの例では、通信装置210は、ネットワーク・インターフェース・カードである。通信装置210は、物理リンクおよび無線通信リンクのいずれか一方または両方を使用することによって通信を提供することができる。
【0018】
入出力装置212は、データ処理システム200に接続可能な他の装置によるデータの入出力を可能にする。たとえば、入出力装置212は、キーボードおよびマウスによるユーザ入力のための接続を提供することができる。さらに、入出力装置212はプリンタに出力を送信することができる。ディスプレイ214は、ユーザに対して情報を表示するためのメカニズムを提供する。
【0019】
オペレーティング・システムおよびアプリケーションまたはプログラムのための命令は永続記憶装置208上に位置する。これらの命令は、プロセッサ・ユニット204によって実行するためにメモリ206にロードすることができる。種々の実施形態のプロセスは、メモリ206などのメモリ内に位置することができる、コンピュータによって実行される命令を使用してプロセッサ・ユニット204によって実行することができる。これらの命令は、プロセッサ・ユニット204内のプロセッサによって読み取って実行することができるプログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ可読プログラム・コードと呼ばれる。種々の実施形態におけるプログラム・コードは、メモリ206または永続記憶装置208などの種々の物理的または有形のコンピュータ可読媒体上で実施することができる。
【0020】
プログラム・コード216は、コンピュータ可読媒体218上に機能的な形で位置し、プロセッサ・ユニット204によって実行するためにデータ処理システム200上にロードするかまたはそこに転送することができる。プログラム・コード216およびコンピュータ可読媒体218はこれらの例ではコンピュータ・プログラム220を形成する。一例では、コンピュータ可読媒体218は、たとえば、永続記憶装置208の一部であるハード・ディスクなどの記憶装置上に転送するために、永続記憶装置208の一部であるドライブまたはその他の装置内に挿入または配置される光ディスクまたは磁気ディスクなどの有形の形にすることができる。有形の形のコンピュータ可読媒体218は、データ処理システム200に接続されるハード・ディスクまたはフラッシュ・メモリなどの永続記憶装置の形を取ることもできる。
【0021】
代わって、プログラム・コード216は、コンピュータ可読媒体218から、通信装置210への通信リンクを介してまたは入出力装置212への接続部を介してあるいはその両方を介して、データ処理システム200に転送することができる。通信リンクまたは接続部あるいはその両方は、例示的な例では物理的なものまたは無線にすることができる。また、コンピュータ可読媒体は、プログラム・コードを含む、通信リンクまたは無線伝送などの非有形媒体の形を取ることもできる。
【0022】
データ処理システム200について例示されている種々のコンポーネントは、種々の実施形態を実装可能な方法に対してアーキテクチャ上の制限をもたらすものではない。種々の例示的な実施形態は、データ処理システム200について例示されているものに加えてまたはその代わりにいくつかのコンポーネントを含むデータ処理システムに実装することができる。図2に示されているその他のコンポーネントは、図示されている例示的な例から変更することができる。
【0023】
たとえば、通信ファブリック202を実装するためにバス・システムを使用することができ、システム・バスまたは入出力バスなどの1つまたは複数のバスでバス・システムを構成することができる。当然のことながら、バス・システムは、バス・システムに接続された種々のコンポーネントまたは装置間のデータ転送を可能にする任意の適切なタイプのアーキテクチャを使用して実装することができる。さらに、通信装置は、モデムまたはネットワーク・アダプタなど、データを送受信するために使用される1つまたは複数の装置を含むことができる。さらに、メモリは、たとえば、通信ファブリック202内に存在することができるインターフェースおよびメモリ・コントローラ・ハブ内で検出されるようなメモリ206またはキャッシュにすることができる。
【0024】
図3を参照すると、例示的な諸実施形態によりデータ処理システム用の典型的なソフトウェア・アーキテクチャが描写されている。このアーキテクチャは、図2のデータ処理システム200などのデータ処理システムに実装することができる。ソフトウェア・アーキテクチャ300の最下部レベルでは、オペレーティング・システム302を使用して、ユーザおよびその他のソフトウェアに高レベルの機能を提供する。このようなオペレーティング・システムは、典型的に、基本入出力システム(BIOS)を含む。通信ソフトウェア304は、オペレーティング・システム機能を直接呼び出すかまたはオペレーティング・システムを間接的に迂回してネットワークによる通信のためのハードウェアにアクセスすることにより、物理的通信リンクを介してインターネットなどのネットワークへの外部ポートによる通信を提供する。
【0025】
アプリケーション・プログラム・インターフェース(API)306は、特定の機能が実装される方法を心配せずに、規格に一致したインターフェースを使用して、システムのユーザ、個人、またはソフトウェア・ルーチンがシステム機能を呼び出せるようにするものである。ネットワーク・アクセス・ソフトウェア308は、システムがネットワークにアクセスできるようにするために使用可能な任意のソフトウェアを表している。このアクセスは、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、またはインターネットなどのネットワークに対するものにすることができる。インターネットの場合、このソフトウェアは、Webブラウザなどのプログラムを含むことができる。アプリケーション・ソフトウェア310は、ユーザが探し求めている所望の機能を提供するために通信ポートを通るデータに対して反応するように設計された任意の数のソフトウェア・アプリケーションを表している。例示的な諸実施形態のメカニズムは、これらの例では通信ソフトウェア304内に実装することができる。
【0026】
図4は、例示的な諸実施形態により描写された伝送制御プロトコル/インターネット・プロトコル(TCP/IP)および同様のプロトコルを示す図である。TCP/IPおよび同様のプロトコルは通信アーキテクチャ400によって使用される。この例では、通信アーキテクチャ400は4層のシステムである。このアーキテクチャは、アプリケーション層402、トランスポート層404、ネットワーク層406、およびリンク層408を含む。各層は様々な通信タスクを処理する役割を担う。リンク層408は、データリンク層またはネットワーク・インターフェース層とも呼ばれ、通常、オペレーティング・システム内のデバイス・ドライバおよびコンピュータ内の対応するネットワーク・インターフェースを含む。この層は、光ケーブルまたはイーサネット・ケーブルなど、使用されるネットワーク媒体との物理的なインターフェースを取るハードウェア細部のすべてを処理するものである。
【0027】
ネットワーク層406は、インターネット層とも呼ばれ、ネットワーク内のデータ・パケットの移動を処理する。たとえば、ネットワーク層406は、ネットワークにより転送される様々なデータ・パケットの経路指定を処理する。TCP/IPスイートにおけるネットワーク層406は、インターネット・プロトコル(IP)、インターネット制御メッセージ・プロトコル(ICMP)、およびインターネット・グループ管理プロトコル(IGMP)を含む、いくつかのプロトコルからなる。
【0028】
次に、トランスポート層404は、2つのホスト・コンピュータ間のデータの転送を容易にする、ネットワーク層406とアプリケーション層402との間のインターフェースを提供する。トランスポート層404は、たとえば、アプリケーションからそれに渡されるデータをその下のネットワーク層のために適切なサイズのチャンクに分割すること、受信したパケットを確認すること、送信されたパケットをもう一方の側が確実に確認するためのタイムアウトを設定することなどに関するものである。TCP/IPプロトコル・スイートには、TCPおよびユーザ・データグラム・プロトコル(UDP)という2つの明確に異なるトランスポート・プロトコルが存在する。TCPは、ドロップアウト検出および再伝送サービスを含み、2つのホスト間でデータが適切に伝送されたことを保証するための信頼性サービスを提供する。
【0029】
逆に、UDPは、データが適切に転送されたことを保証するためのメカニズムを提供せずに、単に一方のホストからもう一方へデータグラムと呼ばれるデータ・パケットを送信することにより、もっと単純なサービスをアプリケーション層に提供する。UDPを使用する場合、アプリケーション層は信頼性機能を実行しなければならない。
【0030】
アプリケーション層402は特定のアプリケーションの細部を処理する。ほぼすべての実装例について、リモート・ログイン用のテルネット、ファイル転送プロトコル(FTP:file transfer protocol)、電子メール用の簡易メール転送プロトコル(SMTP:simple mail transfer protocol)、簡易ネットワーク管理プロトコル(SNMP:simple network management protocol)を含み、多くの一般的なTCP/IPアプリケーションが存在する。例示的な諸実施形態のメカニズムは、ネットワーク層406内のプロセスとして実装することができる。
【0031】
例示的な諸実施形態は、ネットワーク内の無許可ルータを発見することにより潜在的なセキュリティ問題を検出するローグ・ルータ・ハンタ・システムを提供する。無許可ルータは、ネットワーク・セキュリティ管理者によって許可されずにマシン上の経路指定機能が意図的にまたは意図せずに使用可能になっているマシンである。トレースルート・ユーティリティなどの既存のルータ検出方法とは対照的に、例示的な諸実施形態のローグ・ルータ・ハンタ・システムは、マシンが経路指定しているサブネットのIPアドレスが不明である場合およびサブネット上のマシンのIPアドレスが不明である場合にマシンが無許可ルータであるかどうかをネットワーク・セキュリティ管理者が判断できるようにする。この判断は、判断の時点でサブネット上のマシンが電源投入されていないかまたはオンラインになっていない場合でも行うことができる。
【0032】
図5は、例示的な諸実施形態により無許可ルータを発見するためのローグ・ルータ・ハンタ・システムのブロック図である。この例では、無許可経路指定装置は疑わしいサブネット・ルータ502の形を取る。疑わしいサブネット・ルータ502は、意図的にまたは意図せずに使用可能になっている経路指定機能を有するマシンにすることができる。疑わしいサブネット・ルータ(SR)502は、イーサネットにアクセスするためにネットワーク・インターフェース・カード(NIC)を含んでいる。疑わしいサブネット・ルータ502内のネットワーク・インターフェース・カードは、メディア・アクセス制御(MAC:media access control)アドレスを使用してイーサネットにアクセスする。MACアドレスは、ネットワークの各ノードを明確に識別するハードウェア・アドレスである。たとえば、それぞれのネットワーク・インターフェース・カードは異なるMACアドレスを有する。疑わしいサブネット・ルータ502のためのMACアドレスは、製造段階でネットワーク・インターフェース・カードに割り振られている。
【0033】
ネットワーク504は、図1のネットワーク102など、様々な装置およびコンピュータ間の通信リンクを提供する分散ネットワークの一例である。疑わしいサブネット・ルータ502は、ネットワーク504内のトラフィックを経路指定するために実装される。疑わしいサブネット・ルータ502は、ネットワーク504上のデータ・パケットをサブネット506に転送することができる。この例では、サブネット506は、S1 508〜SN 510などの複数のマシンを含む。
【0034】
従来のシステムはトレースルート・ユーティリティを使用して、ルータの既知のIPアドレスに基づいてルータにパケットを送信することにより、ルータが機能停止しているかまたは故障しているかどうかを判断するが、ローグ・ルータ・ハンタ(RRH)ホスト512は、固有の方法でトレースルート・ユーティリティを使用して、疑わしいサブネット・ルータ502などの装置がルータとして構成されているかどうかを判断するプログラムを含む。この判断は、ローグ・ルータ・ハンタ・プログラムが疑わしいルータのサブネットのIPアドレスまたはサブネット上のマシンのIPアドレスを把握していない場合でも行うことができる。ローグ・ルータ・ハンタ・ホスト512は、ネットワーク504にアクセスするためのMACアドレスを有するネットワーク・インターフェース・カードを含む。ローグ・ルータ・ハンタ・ホスト512は、疑わしいサブネット・ルータ502のイーサネット・アドレス(MACアドレス)を把握しているので、ネットワーク504を介して疑わしいサブネット・ルータ502と通信することができる。ローグ・ルータ・ハンタ512は、ターゲット装置がネットワーク上にあるかどうかを識別するpingユーティリティを使用するか、またはターゲットのIPアドレスのみが分かっているときにアドレス解決プロトコルを使用してターゲットのハードウェア・アドレスを決定することにより、疑わしいサブネット・ルータ502のMACアドレスを入手することができる。パケットがそのパケットの宛先アドレスにサブネット・ルータのMACアドレスを含まない場合、サブネット・ルータはそのパケットを聴取または処理しないので、ローグ・ルータ・ハンタ512は疑わしいサブネット・ルータ502のMACアドレスを入手する必要がある。pingユーティリティは、ターゲット装置にICMP要求パケットを送信することによって動作し、応答を聴取する。応答パケットは、ソースMACアドレス、宛先またはターゲットMACアドレス、ソースIPアドレス、および宛先IPアドレスを含むことができる。したがって、ローグ・ルータ・ハンタ・ホスト512内のプログラムは、ローグ・ルータ・ハンタ・ホスト512用のMACアドレスを含むソースMACアドレスと、疑わしいサブネット・ルータ502用のMACアドレスを含む宛先MACアドレスとを含むデータ・パケットを作成する。このデータ・パケットは、そのパケットの宛先IDアドレス・フィールド内に疑わしいサブネット・ルータ502用の偽IPアドレスも含む。ローグ・ルータ・ハンタは、そのパケットの活動時間(TTL)値を1に設定することになる。次に、ローグ・ルータ・ハンタ・ホスト512は疑わしいサブネット・ルータ502にそのデータ・パケットを送信し、パケット内の宛先MACアドレスが疑わしいサブネット・ルータ502内のネットワーク・インターフェース・カードのMACアドレスと一致するので疑わしいサブネット・ルータ502はそのパケットを受信する。
【0035】
疑わしいサブネット・ルータ502は、パケット・ヘッダを検査し、宛先IPアドレスが疑わしいサブネット・ルータ502にアドレス指定されているかどうかを判断する。パケット内の宛先IPアドレスが疑わしいサブネット・ルータ502のIPアドレスと一致しない場合、疑わしいサブネット・ルータ502はそのパケットを廃棄することになる。したがって、サブネット・ルータが経路指定するように構成されていない場合、サブネット・ルータは宛先IPアドレスをチェックし、宛先IPアドレスがサブネット・ルータのIPアドレスではないと判断し、そのパケットをドロップする。しかし、疑わしいサブネット・ルータ502のルータ機能が使用可能になっている場合、疑わしいサブネット・ルータ502はそのパケットを廃棄しない。このルータ使用可能状況では、疑わしいサブネット・ルータ502は最終的に、パケット内の宛先IPアドレスと経路指定テーブル内のIPアドレスを比較して、そのパケットのために最良経路を決定する。サブネット・ルータは、宛先IPアドレスがサブネット・ルータのIPアドレスではないが、サブネット・ルータが経路指定するように構成されているので、サブネット・ルータはパケットを前方へ送信しなければならないと判断する。しかし、疑わしいサブネット・ルータ502がこの比較を実行する前に、疑わしいサブネット・ルータ502は活動時間(TTL)フィールドを検査する。TTLフィールドは、パケットを廃棄する前にそのパケットが経験しうる反復回数の限界を示すために使用されるホップ限界である。TTLフィールドが1以下である場合、疑わしいサブネット・ルータ502は、パケット内のソースIPアドレスまたはローグ・ルータ・ハンタ・ホスト512にICMPプロトコルによる時間超過(タイプ11)パケットを返す。したがって、サブネット・ルータは、TTL値が低すぎるのでそのパケットを経路指定できないと判断し、サブネット・ルータはパケット送信側にこの問題を通知する。ローグ・ルータ・ハンタ・ホスト512がこのようなICMP時間超過メッセージを受信した場合、ローグ・ルータ・ハンタは、疑わしいサブネット・ルータ502の経路指定機能が使用可能になっていることを把握する。ローグ・ルータ・ハンタ・ホスト512は、無許可ルータについてネットワーク・セキュリティ管理者に警告することができる。
【0036】
特定の例では、拡張対話式エグゼクティブ(AIX:AdvancedInteractive eXecutive(TM))オペレーティング・システムを使用する疑わしいサブネット・ルータ502は、ローグ・ルータ・ハンタ・ホスト512からパケットを受信し検査する。パケット内の宛先IPアドレスが疑わしいサブネット・ルータ502のIPアドレスと一致せず、疑わしいサブネット・ルータ502で経路指定が使用可能になっている場合、そのパケットは経路指定テーブルに渡される前にip_mforward()関数に渡される。パケット内のTTLが期限切れになり(すなわち、TTL≦1)、疑わしいサブネット・ルータ502がICMP時間超過(タイプ11)メッセージで応答する場合、このip_mforward()関数は0を返すことになる。ローグ・ルータ・ハンタ・ホスト512が疑わしいサブネット・ルータ502からこのようなICMP時間超過メッセージを受信した場合、ローグ・ルータ・ハンタ・ホスト512は、疑わしいサブネット・ルータ502が経路指定のために使用可能になっていることを把握する。
【0037】
図6は、例示的な諸実施形態によりローグ・ルータ・ハンタによって作成されたパケットを示している。図5の疑わしいサブネット・ルータ502などのマシンが経路指定しているかどうかを判断するために、ローグ・ルータ・ハンタ512からパケット600を送信することができる。パケット600は、ソースMACアドレス602、宛先MACアドレス604、ソースIPアドレス606、宛先IPアドレス608、TTLフィールド610を含む、様々なフィールドを含む。
【0038】
ソースMACアドレス602は、パケットを送信する装置または図5のローグ・ルータ・ハンタ・ホスト512のMACアドレスである。
【0039】
宛先MACアドレス604は、パケットを受信すべき装置または図5の疑わしいサブネット・ルータ502のMACアドレスである。前述の通り、疑わしい経路指定マシンまたはサブネット上のマシンのIPアドレスが不明である状況では、疑わしいマシンが経路指定しているかどうかを判断するために、ソースIPアドレスと宛先IPアドレスを含む従来のパケットを使用することはできない。ローグ・ルータ・ハンタにとって既知のアドレスである疑わしいルータのMACアドレスを使用して、ローグ・ルータ・ハンタが特定の疑わしいルータにパケットを送信できるようにするパケット600を作成することにより、ローグ・ルータ・ハンタはこの問題に対処する。したがって、ローグ・ルータ・ハンタが疑わしいルータにパケット600を送信すると、パケット内の宛先MACアドレスが疑わしいルータのネットワーク・インターフェース・カードのMACアドレスと一致するので、疑わしいルータはそのパケットを受信する。
【0040】
ソースIPアドレス606は、パケットを送信する装置またはローグ・ルータ・ハンタのIPアドレスである。ソースIPアドレス606は、疑わしいルータが経路指定している場合にローグ・ルータ・ハンタにICMP時間超過メッセージを返すために疑わしいルータによって使用される。
【0041】
宛先IPアドレス608は偽IPアドレスである。ローグ・ルータ・ハンタは疑わしいルータまたはサブネット・マシンのIPアドレスをいずれも把握していないので、パケット600では正しい宛先IPアドレスは使用されない。宛先IPアドレス608内の偽IPアドレスは疑わしいルータのIPアドレスと一致せず、したがって、経路指定が使用可能になっている場合に疑わしいルータがパケットを経路指定しようと試みるので、疑わしいルータが通常の方法でパケット600を処理できるようにし、疑わしいルータが経路指定しているかどうかをローグ・ルータ・ハンタが発見できるようにするために、宛先IPアドレス608内に偽IPアドレスが配置される。
【0042】
TTLフィールド610は、パケット600に割り当てられた活動時間値を指定する値である。ローグ・ルータ・ハンタがパケット600を作成する場合、ローグ・ルータ・ハンタと疑わしいルータとの間に1つのホップのみが必要なので、ローグ・ルータ・ハンタは「1」という値をTTLフィールド610に割り当てる。TTLフィールド610内の1という値により、疑わしいルータは、その疑わしいルータがパケット600を受信したときにICMP時間超過メッセージをローグ・ルータ・ハンタに返送する。
【0043】
図7は、例示的な諸実施形態により無許可ルータを発見するためのプロセスの流れ図である。このプロセスは、ローグ・ルータ・ハンタのソースMACアドレスと、疑わしいルータの宛先MACアドレスと、ローグ・ルータ・ハンタのソースIPアドレスと、偽宛先IPアドレスと、1という値を有するTTLフィールドとを含む、図6のパケット600によるデータ・パケットをローグ・ルータ・ハンタ・プログラムが作成するときから始まる(ステップ702)。ローグ・ルータ・ハンタは疑わしいルータにそのパケットを送信する(ステップ704)。パケット内の宛先MACアドレスは疑わしいルータのネットワーク・インターフェース・カードのMACアドレスと一致するので、疑わしいルータはそのパケットを受信する(ステップ706)。
【0044】
次に、疑わしいルータは、パケット内の宛先IPアドレス(偽IPアドレス)を検査して、そのパケットが疑わしいルータ用であるかどうかを判断する(ステップ708)。パケット内の宛先IPアドレスは偽アドレスであるので、パケット内の宛先IPアドレスは疑わしいルータのIPアドレスと一致しない。したがって、疑わしいルータは、そのパケットが疑わしいルータ用ではないと判断することになる(ステップ710)。
【0045】
この時点で、いかなる経路指定機能も疑わしいルータ上で使用可能になっていない場合、疑わしいルータはそのパケットを廃棄し(ステップ712)、その後、プロセスは終了する。ローグ・ルータ・ハンタは疑わしいルータからICMP時間超過メッセージを受信しないので、ローグ・ルータ・ハンタは、疑わしいルータが経路指定していないと判断する。
【0046】
しかし、経路指定機能が疑わしいルータ上で使用可能になっている場合、疑わしいルータはそのパケット内のTTLフィールドを検査する(ステップ714)。ローグ・ルータ・ハンタによって作成されたパケット内のTTLフィールドは1という値を有するので、疑わしいルータは、パケット内のソースIPアドレスに基づいてローグ・ルータ・ハンタ(パケット送信側)にICMP時間超過メッセージを返す(ステップ716)。パケット内のソースIPアドレスはローグ・ルータ・ハンタのIPアドレスであるので、ローグ・ルータ・ハンタはICMP時間超過メッセージを受信する(ステップ718)。
【0047】
疑わしいルータからの時間超過メッセージがローグ・ルータ・ハンタによって受信されると、ローグ・ルータ・ハンタは、疑わしいルータが経路指定していることを把握する(ステップ720)。次に、ローグ・ルータ・ハンタは、疑わしいルータがネットワーク上の無許可ルータであることをネットワーク・セキュリティ管理者に警告することができ(ステップ722)、その後、プロセスは終了する。
【0048】
本発明の諸実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェアとソフトウェアの両方の要素を含む実施形態の形を取ることができる。好ましい一実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されないソフトウェアで実装される。
【0049】
さらに、本発明の諸実施形態は、コンピュータまたは任意の命令実行システムによりあるいはそれに関連して使用するためのプログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラムの形を取ることができる。この説明のために、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによりあるいはそれに関連して使用するためのプログラムを収容、保管、通信、伝搬、または伝送可能な任意の有形装置にすることができる。
【0050】
この媒体は、電子、磁気、光、電磁、赤外線、または半導体システム(あるいは装置またはデバイス)もしくは伝搬媒体にすることができる。コンピュータ可読媒体の例としては、半導体またはソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、剛性磁気ディスク、および光ディスクを含む。光ディスクの現在の例としては、コンパクト・ディスク読み取り専用メモリ(CD−ROM)、書き換え可能コンパクト・ディスク(CD−R/W)、およびDVDを含む。
【0051】
さらに、コンピュータ記憶媒体は、コンピュータ可読プログラム・コードがコンピュータ上で実行されたときに、このコンピュータ可読プログラム・コードの実行によりコンピュータが通信リンクにより他のコンピュータ可読プログラム・コードを送信するようなコンピュータ可読プログラム・コードを収容または保管することができる。この通信リンクは、たとえば、無制限に、物理的なものまたは無線である媒体を使用することができる。
【0052】
プログラム・コードの保管または実行あるいはその両方に適したデータ処理システムは、システム・バスを介して記憶素子に直接または間接的に結合された少なくとも1つのプロセッサを含むことになる。記憶素子としては、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量記憶装置と、実行中に大容量記憶装置からコードを検索しなければならない回数を削減するために少なくとも何らかのプログラム・コードの一時記憶を提供するキャッシュ・メモリとを含むことができる。
【0053】
入出力またはI/O装置(キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれらに限定されない)は、直接あるいは介在する入出力コントローラを介してシステムに結合することができる。
【0054】
データ処理システムが介在する私設網または公衆網を介してその他のデータ処理システムあるいはリモート・プリンタまたは記憶装置に結合された状態になれるようにするために、ネットワーク・アダプタもシステムに結合することができる。モデム、ケーブル・モデム、およびイーサネット・カードは、現在使用可能なタイプのネットワーク・アダプタのうちのいくつかに過ぎない。
【0055】
本発明の説明は、例示および解説のために提示されたものであり、網羅するためまたは開示された形式に本発明を限定するためのものではない。多くの変更および変形は当業者にとって明白なものであるであろう。この実施形態は、本発明の原理、実用的な適用例を最も良く説明するため、ならびにその他の当業者が企図された特定の用途に適した様々な変更を含む様々な実施形態について本発明を理解できるようにするために、選択され記載されたものである。

【特許請求の範囲】
【請求項1】
分散ネットワーク内の無許可ルータを検出するためのコンピュータによって実行される方法であって、
宛先装置の物理アドレスを入手するステップと、
少なくとも宛先メディア・アクセス制御フィールド、宛先インターネット・プロトコル・フィールド、および活動時間フィールドを含むデータ・パケットを作成するステップであって、前記宛先メディア・アクセス制御フィールドが前記宛先装置の前記物理アドレスを含み、前記宛先インターネット・プロトコル・フィールドが偽インターネット・プロトコル・アドレスを含み、前記活動時間フィールドが前記データ・パケットが時間制限を超えたことを示す値を含むステップと、
前記宛先メディア・アクセス制御フィールド内の前記物理アドレスを使用して、前記宛先装置に前記データ・パケットを送信するステップと、
前記宛先装置から時間超過メッセージを受信したことに応答して、前記宛先装置が経路指定のために使用可能になっていると判断するステップと、
を含む、コンピュータによって実行される方法。
【請求項2】
前記宛先装置から時間超過メッセージを受信しなかったことに応答して、前記宛先装置が経路指定のために使用可能になっていないと判断するステップ
をさらに含む、請求項1記載のコンピュータによって実行される方法。
【請求項3】
前記宛先装置の前記物理アドレスが、前記宛先装置内のネットワーク・インターフェース・カードのメディア・アクセス制御アドレスである、請求項1記載のコンピュータによって実行される方法。
【請求項4】
前記データ・パケットが、ソース装置の物理アドレスを含むソース・メディア・アクセス制御フィールドと、前記ソース装置のインターネット・プロトコル・アドレスを含むソース・インターネット・プロトコル・フィールドとをさらに含む、請求項1記載のコンピュータによって実行される方法。
【請求項5】
前記宛先装置が、前記データ・パケット内の前記宛先インターネット・プロトコル・アドレスを検査し、前記データ・パケット内の前記宛先インターネット・プロトコル・アドレスが前記宛先装置の前記インターネット・プロトコル・アドレスと一致するかどうかを判断し、経路指定が前記宛先装置上で使用可能になっている場合に前記データ・パケット内の前記活動時間フィールドの前記値を検査し、前記データ・パケットが時間制限を超過したことを前記値が示す場合に前記ソース・インターネット・プロトコル・アドレス・フィールド内の前記インターネット・プロトコル・アドレスに前記時間超過メッセージを送信する、請求項1記載のコンピュータによって実行される方法。
【請求項6】
経路指定が前記宛先装置上で使用可能になっていない場合に前記宛先装置が前記データ・パケットを廃棄する、請求項5記載のコンピュータによって実行される方法。
【請求項7】
前記宛先装置に関する前記インターネット・プロトコル・アドレスが不明であるときに、前記宛先装置が経路指定のために使用可能になっているという前記判断が実行される、請求項1記載のコンピュータによって実行される方法。
【請求項8】
前記宛先装置のサブネット上の装置に関する前記インターネット・プロトコル・アドレスが不明であるときに、前記宛先装置が経路指定のために使用可能になっているという前記判断が実行される、請求項1記載のコンピュータによって実行される方法。
【請求項9】
前記装置がオフラインになっているかまたは電源遮断されている、請求項8記載のコンピュータによって実行される方法。
【請求項10】
pingユーティリティまたはアドレス解決プロトコルのうちの一方を使用して、前記宛先装置の前記物理アドレスが入手される、請求項1記載のコンピュータによって実行される方法。
【請求項11】
分散ネットワーク内の無許可ルータを検出するためのデータ処理システムであって、
バスと、
前記バスに接続された記憶装置であって、コンピュータ使用可能コードを含む記憶装置と、
前記バスに接続された少なくとも1つの管理装置と、
前記バスに接続された通信装置と、
前記バスに接続された処理装置であって、宛先装置の物理アドレスを入手し、少なくとも宛先メディア・アクセス制御フィールド、宛先インターネット・プロトコル・フィールド、および活動時間フィールドを含むデータ・パケットを作成し、前記宛先メディア・アクセス制御フィールドが前記宛先装置の前記物理アドレスを含み、前記宛先インターネット・プロトコル・フィールドが偽インターネット・プロトコル・アドレスを含み、前記活動時間フィールドが前記データ・パケットが時間制限を超えたことを示す値を含み、前記宛先メディア・アクセス制御フィールド内の前記物理アドレスを使用して、前記宛先装置に前記データ・パケットを送信し、前記宛先装置から時間超過メッセージを受信したことに応答して、前記宛先装置が経路指定のために使用可能になっていると判断するために前記コンピュータ使用可能コードを実行する処理装置と、
を含む、データ処理システム。
【請求項12】
分散ネットワーク内の無許可ルータを検出するためのコンピュータ・プログラムであって、
そこにコンピュータ使用可能プログラム・コードが有形に実施されているコンピュータ使用可能媒体を含み、前記コンピュータ使用可能プログラム・コードが、
宛先装置の物理アドレスを入手するためのコンピュータ使用可能プログラム・コードと、
少なくとも宛先メディア・アクセス制御フィールド、宛先インターネット・プロトコル・フィールド、および活動時間フィールドを含むデータ・パケットを作成するためのコンピュータ使用可能プログラム・コードであって、前記宛先メディア・アクセス制御フィールドが前記宛先装置の前記物理アドレスを含み、前記宛先インターネット・プロトコル・フィールドが偽インターネット・プロトコル・アドレスを含み、前記活動時間フィールドが前記データ・パケットが時間制限を超えたことを示す値を含むコンピュータ使用可能プログラム・コードと、
前記宛先メディア・アクセス制御フィールド内の前記物理アドレスを使用して、前記宛先装置に前記データ・パケットを送信するためのコンピュータ使用可能プログラム・コードと、
前記宛先装置から時間超過メッセージを受信したことに応答して、前記宛先装置が経路指定のために使用可能になっていると判断するためのコンピュータ使用可能プログラム・コードと、
を含む、コンピュータ・プログラム。
【請求項13】
前記宛先装置から時間超過メッセージを受信しなかったことに応答して、前記宛先装置が経路指定のために使用可能になっていないと判断するためのコンピュータ使用可能プログラム・コード
をさらに含む、請求項12記載のコンピュータ・プログラム。
【請求項14】
前記宛先装置の前記物理アドレスが、前記宛先装置内のネットワーク・インターフェース・カードのメディア・アクセス制御アドレスである、請求項12記載のコンピュータ・プログラム。
【請求項15】
前記データ・パケットが、ソース装置の物理アドレスを含むソース・メディア・アクセス制御フィールドと、前記ソース装置のインターネット・プロトコル・アドレスを含むソース・インターネット・プロトコル・フィールドとをさらに含む、請求項12記載のコンピュータ・プログラム。
【請求項16】
前記宛先装置が、前記データ・パケット内の前記宛先インターネット・プロトコル・アドレスを検査し、前記データ・パケット内の前記宛先インターネット・プロトコル・アドレスが前記宛先装置の前記インターネット・プロトコル・アドレスと一致するかどうかを判断し、経路指定が前記宛先装置上で使用可能になっている場合に前記データ・パケット内の前記活動時間フィールドの前記値を検査し、前記データ・パケットが時間制限を超過したことを前記値が示す場合に前記ソース・インターネット・プロトコル・アドレス・フィールド内の前記インターネット・プロトコル・アドレスに前記時間超過メッセージを送信する、請求項12記載のコンピュータ・プログラム。
【請求項17】
経路指定が前記宛先装置上で使用可能になっていない場合に前記宛先装置が前記データ・パケットを廃棄する、請求項16記載のコンピュータ・プログラム。
【請求項18】
前記宛先装置に関する前記インターネット・プロトコル・アドレスが不明であるときに、または前記宛先装置のサブネット上の装置に関する前記インターネット・プロトコル・アドレスが不明であるときに、前記宛先装置が経路指定のために使用可能になっているという前記判断が実行される、請求項12記載のコンピュータ・プログラム。
【請求項19】
前記装置がオフラインになっているかまたは電源遮断されている、請求項18記載のコンピュータ・プログラム。
【請求項20】
pingユーティリティまたはアドレス解決プロトコルのうちの一方を使用して、前記宛先装置の前記物理アドレスが入手される、請求項12記載のコンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2010−541441(P2010−541441A)
【公表日】平成22年12月24日(2010.12.24)
【国際特許分類】
【出願番号】特願2010−527400(P2010−527400)
【出願日】平成20年9月22日(2008.9.22)
【国際出願番号】PCT/EP2008/062593
【国際公開番号】WO2009/043745
【国際公開日】平成21年4月9日(2009.4.9)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】