(57)【特許請求の範囲】
【請求項１】
複数のソース・ネットワークのサブセットを識別するためのコンピュータにおける方法であって、前記サブセットが、同じＩＰアドレスを有する複数の宛先位置のうちの１つに悪意あるメッセージを送信しているものと推定される１つ以上のソース・ネットワークを含み、前記方法が、
前記複数のソース・ネットワークのそれぞれについて、前記それぞれのソース・ネットワークから前記１つの宛先位置への介在ホップ数の方が、前記それぞれのソース・ネットワークから前記複数の宛先位置のうちの他の宛先位置への介在ホップ数より少ないかどうかを判定する第１の判定ステップと、
少ないと判定されたソース・ネットワークを前記サブセットに含まれるものとして識別するステップと、
少なくないと判定されたソース・ネットワークを前記サブセットに含まれるものとして識別しないステップと、
前記サブセット内のそれぞれのソース・ネットワークからのメッセージをブロックするためのフィルタを順次適用して、前記サブセット内のどのソース・ネットワークが前記悪意あるメッセージを送信しているかを判定する第２の判定ステップとを含む、方法。
【請求項２】
前記第１の判定ステップが、
前記複数のソース・ネットワークのそれぞれから前記複数の宛先位置のそれぞれへのルーティング・パスを示す情報をルータから収集するステップを含む、請求項１に記載の方法。
【請求項３】
前記第１の判定ステップが、
前記複数のソース・ネットワークのそれぞれから前記複数の宛先位置のそれぞれへのホップ数を前記ルーティング・パスから決定するステップをさらに含む、請求項２に記載の方法。
【請求項４】
複数のソース・ネットワークのサブセットを識別するためのシステムであって、前記サブセットが、同じＩＰアドレスを有する複数の宛先位置のうちの１つに悪意あるメッセージを送信しているものと推定される１つ以上のソース・ネットワークを含み、前記システムが、
前記複数のソース・ネットワークのそれぞれについて、前記それぞれのソース・ネットワークから前記１つの宛先位置への介在ホップ数の方が、前記それぞれのソース・ネットワークから前記複数の宛先位置のうちの他の宛先位置への介在ホップ数より少ないかどうかを判定するための第１の判定手段と、
前記それぞれのソース・ネットワークから前記１つの宛先位置への介在ホップ数の方が、前記それぞれのソース・ネットワークから前記複数の宛先位置のうちの他の宛先位置への介在ホップ数より少ないという判定に応答して、少ないと判定されたソース・ネットワークを前記サブセットに含まれるものとして識別し、前記それぞれのソース・ネットワークから前記１つの宛先位置への介在ホップ数の方が、前記それぞれのソース・ネットワークから前記複数の宛先位置のうちの他の宛先位置への介在ホップ数より少なくないという判定に応答して、少なくないと判定されたソース・ネットワークを前記サブセットに含まれるものとして識別しないための手段と、
前記サブセット内のそれぞれのソース・ネットワークからのメッセージをブロックするためのフィルタを順次適用して、前記サブセット内のどのソース・ネットワークが前記悪意あるメッセージを送信しているかを判定するための第２の判定手段とを備える、システム。
【請求項５】
前記第１の判定手段が、
前記複数のソース・ネットワークのそれぞれから前記複数の宛先位置のそれぞれへのルーティング・パスを示す情報をルータから収集するための手段を含む、請求項４に記載のシステム。
【請求項６】
前記第１の判定手段が、
前記複数のソース・ネットワークのそれぞれから前記複数の宛先位置のそれぞれへのホップ数を前記ルーティング・パスから決定するための手段をさらに含む、請求項５に記載のシステム。
【請求項７】
請求項１ないし請求項３の何れか１項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータおよびネットワークに関し、詳細には、ネットワークにより送信された悪意あるメッセージのソースを識別するための技法に関する。
【背景技術】
【０００２】
イントラネット、エクストラネット、およびインターネットなどのネットワークは、今日、周知のものである。コンピュータおよびその他の装置は、それぞれのネットワーク上に存在する。（ファイアウォール内には、スクリーニング機能ならびにルーティング機能を実行するいくつかのルータが含まれている。）ある「ソース」ネットワーク上のコンピュータが他の「宛先」ネットワーク上のコンピュータにアドレス指定されたメッセージを送信すると、そのメッセージは、宛先ネットワークに到達するまで、あるルータから次のルータに転送される。メッセージを宛先コンピュータに転送するために、宛先ネットワーク用のインターネット・サービス・プロバイダ（「ＩＳＰ：Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ」）と、宛先ネットワークの「サイト」ルータが存在する可能性がある。したがって、異なるネットワーク上のコンピュータおよびその他の電子装置は互いに通信することができる。
【０００３】
各メッセージは、既知のインターネット・プロトコル（ＩＰ）規格による伝送およびルーティングのためにパケットに分割される。各パケットはヘッダとペイロードとを含む。ヘッダは宛先ホストのＩＰアドレスを含み、ルータはそのＩＰアドレスを使用して、メッセージをどこに転送すべきかを把握する。ペイロードは要求または情報などのデータを含む。ペイロードは、要求されたサービスを提供するためのアプリケーション・ポートなどの情報も含み、サイト・ルータはこの情報のすべてを使用して、ネットワーク内のどのコンピュータがメッセージ・パケットを受信し処理すべきかを決定する。
【０００４】
ほとんどのホストは、それぞれの固有のＩＰアドレスを有する。ソース・ホストは、各メッセージ・パケットのヘッダ内に宛先ホストのＩＰアドレスを埋め込む。ソース・ネットワークがメッセージ・パケットを送信する場合、宛先ネットワークまでの途上にあるルータは、メッセージ・パケットが宛先ホストに到達するまで、そのメッセージ・パケットをルータからルータに（「ホップ（hop）」として）転送する。「マルチネット」アーキテクチャでは、同じＩＰアドレスをブロードキャストする２つ以上のサイト・ネットワークまたは宛先ネットワーク（典型的には、同じ企業によって所有される）が存在する。このようなサイトは、それぞれ異なる物理的位置と、異なるサイト・ルータと、異なるＭＡＣアドレス（それぞれのサイト・ルータを表す）とを有する。また、マルチネット内の各宛先ネットワークごとに、１つまたは複数のＩＳＰが宛先ネットワーク用のサイト・ルータとインターネット（そのルータを含む）との間に論理的に挿入されている。ソース・ネットワークは、各メッセージ・パケット内にマルチネットのＩＰアドレスを埋め込む（おそらく、宛先がマルチネットであることに気づいていない）。ソース・ネットワークがメッセージ・パケットを送信する場合、マルチサイトまでの途上にあるルータは、後述の通り、最少ホップ数のパスに沿ってマルチネット用のＩＳＰ（複数も可）のうちの１つにメッセージを送信する。
【０００５】
多くの場合、ソース・ネットワークと宛先ネットワーク（またはサイト・ルータ）との間に複数の可能なパスまたはルートが存在する。ルータは、ルータ間で進行中のルータおよびネットワーク「トポロジ」情報の交換に基づいて、様々なパスを把握する。典型的には、各ルータは、メッセージ・パケットがその宛先ネットワークに到達するために使用すべき最短（使用可能）パスを決定し、そのメッセージ・パケットをパス内の次の（ダウンストリーム）ルータ／ホップに転送することになる。経路指定情報プロトコル（「ＲＩＰ：Ｒｏｕｔｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ」）、開放型最短経路優先（「ＯＳＰＦ：Ｏｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ」）、および境界ゲートウェイ・プロトコル（「ＢＧＰ：Ｂｏｒｄｅｒ  Ｇａｔｅｗａｙ  Ｐｒｏｔｏｃｏｌ」）など、宛先ネットワークまでの最短パスを識別するために各ルータが使用できる種々の規格／プロトコルが存在する。「ＢＧＰ」プロトコルでは、各ルータは、他のルータまたは「ノード」を介して、宛先ネットワークに到着するためにそれが使用するパスを他のルータにブロードキャストする。たとえば、ルータＢは、ネットワークＤに到着するためにルータＣを使用することをブロードキャストする可能性があり、ルータＧは、ネットワークＤに到着するためにルータＣを使用することをブロードキャストする可能性があり、ルータＩは、ネットワークＤに到着するためにルータＦ、Ｇ、およびＣを使用することをブロードキャストする可能性があり、ルータＥは、ネットワークＤに到着するためにルータＥ、Ｆ、Ｇ、およびＣを使用することをブロードキャストする可能性がある。このようなブロードキャストに基づいて、ルータＦは、ネットワークＤへのその最短パスがルータＧおよびＣを介するものであることを決定し、ネットワークＤにアドレス指定されたメッセージ・パケットをルータＧに転送することができる。次に、ルータＧは、これらのメッセージ・パケットをルータＣに転送することになり、ルータＣは、これらのメッセージ・パケットをネットワークＤに転送することになる。ＯＳＰＦプロトコルでは、「隣接（adjacent）」ルータ同士がトポロジ情報を交換する。典型的には、各ＬＡＮ上の１つのルータは近隣（neighboring）ルータとトポロジ情報を交換する。ＯＳＰＦプロトコルでは、各ルータがその状態およびネットワーク・ルーティング「コスト」を提供するメッセージをその「隣接」ルータに送信することを規定している。次に、隣接ルータは、すべての近隣ルータに完全なルーティング・トポロジをブロードキャストする。近隣ルータはこの情報を使用して、どのパスがネットワーク・トラフィックを送信するために最良であるかを決定する。
【０００６】
残念ながら、「ハッカ」によって操作された多くのコンピュータは、典型的にはインターネットを介して、他のコンピュータに「悪意ある」メッセージを送信する。あるタイプの悪意あるメッセージは「サービス妨害（denial of service）」攻撃を形成する可能性がある。サービス妨害攻撃では、個々のメッセージは宛先コンピュータからの通常のサービスを要求する可能性があるが、そのメッセージは宛先コンピュータまたは通過ネットワークのリソースを当惑させるほど多数である。これにより、適合ユーザ／カスタマ用の宛先コンピュータまたはネットワークのパフォーマンス／応答時間が劣化し、極端なケースでは、宛先コンピュータを完全にシャットダウンする可能性がある。
【０００７】
サービス妨害攻撃が発生すると、悪意あるものと疑われるメッセージをそのソース・ネットワークまでトレースバックすることが知られていた。このトレースバックは、受信メッセージ・ヘッダ内のソース・ネットワーク・アドレスを調べることにより実行された。ソース・ネットワークまでメッセージをトレースバックした後、このソース・ネットワークのＩＰアドレスからの後続メッセージをブロックするためにファイアウォールまたはサイト・ルータ内にフィルタを適用することが知られていた。しかし、悪意あるメッセージを識別することは容易ではない。また、その正体を隠すために、ハッカの中には、送信するメッセージ・パケット内に偽のソースＩＰアドレスを埋め込むものもいる。これは一般に、ソースＩＰアドレスの「送信偽装（spoofing）」と呼ばれる。その結果として、宛先ネットワークがこれらのメッセージ・パケットを受信すると、宛先ネットワーク（およびその管理者）は、悪意あるメッセージが識別され、そのヘッダが検査されても、悪意あるメッセージの実ソースを識別することはできない。
【０００８】
もう１つの既知の解決策は、サービス妨害攻撃にさらされているネットワーク用のファイアウォールまたはサイト・ルータでフィルタを順次適用することである。各フィルタは、異なる個別ソースＩＰアドレスまたは複数ソースＩＰアドレスのグループをブロックし、その後、悪意あるトラフィックがブロックされるかどうかをチェックする。残念ながら、典型的にはブロックすべきソースＩＰアドレスが多数存在するので、これは時間のかかるプロセスである。また、テストの過程で、いくつかの善意のメッセージがブロックされて失われるか、または容認できないほど遅延される可能性がある。
【非特許文献１】ＲＦＣ２３２８
【非特許文献２】ＲＦＣ１７７１
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の一目的は、マルチネットに送信された悪意あるメッセージのソースの識別を容易にすることにある。
【００１０】
本発明の一目的は、メッセージ・パケットにリストされた悪意あるメッセージのソースＩＰアドレスが「送信偽装」されたときに、マルチネット環境に送信された悪意あるメッセージのソースの識別を容易にすることにある。
【００１１】
本発明のさらに他の目的は、悪意あるメッセージがサービス妨害攻撃を構成する場合に、マルチネットに送信された悪意あるメッセージのソースの識別を容易にすることにある。
【課題を解決するための手段】
【００１２】
本発明は、多数のソース・ネットワークのサブセットを識別するためのシステム、方法、およびプログラムにある。このサブセットは、同じＩＰアドレスを有する複数の宛先位置のうちの１つにメッセージを送信した１つまたは複数のソース・ネットワークを含む。多数のソース・ネットワークのそれぞれについて、ソース・ネットワークから１つの宛先位置への介在ホップ数の方が、ソース・ネットワークから複数の宛先位置のうちの他の宛先位置への介在ホップ数より少ないかどうかの判定が行われる。そうである場合、そのソース・ネットワークはそのサブセットに含まれる。そうではない場合、そのソース・ネットワークはそのサブセットに含まれない。本発明の応用例の１つは、サービス妨害攻撃のソースを識別することである。
【００１３】
本発明の特徴の１つによれば、サブセットが識別された後、サブセット内のそれぞれのソース・ネットワークからのメッセージをブロックするためのフィルタが順次適用され、サブセット内のどのソース・ネットワークがメッセージを送信しているかが判定される。
【００１４】
本発明の他の特徴によれば、ソース・ネットワークから１つの宛先位置への介在ホップ数の方が、ソース・ネットワークから複数の宛先位置のうちの他の宛先位置への介在ホップ数より少ないかどうかの判定は、部分的に、多数のソース・ネットワークのそれぞれから複数の宛先位置のそれぞれへのルーティング・パスを示す情報をルータから収集することによって行われる。ルーティング・パスにより、多数のソース・ネットワークのそれぞれから複数の宛先位置のそれぞれへのホップ数が決定される。
【発明を実施するための最良の形態】
【００１５】
次に、図面に関連して本発明について詳細に説明する。図１は、物理的位置またはサイト７１のネットワーク１１上のサーバ・コンピュータ９および１０と、物理的位置またはサイト７４のネットワーク１４上のサーバ・コンピュータ１２および１３と、物理的位置またはサイト７７のネットワーク１７上のサーバ・コンピュータ１５および１６とを示している。この例では、ネットワーク１１、１４、および１７のそれぞれは、それぞれのサイト・ルータ４１、４４、および４７を有し、そのそれぞれがインターネット２０に接続されている。この例では、インターネット・サービス・プロバイダ（「ＩＳＰ」）５０および５１はサイト・ルータ４１とインターネットとの間に論理的に挿入されており、ＩＳＰ５０および５２はサイト・ルータ４４とインターネットとの間に論理的に挿入されており、ＩＳＰ５１および５２はサイト・ルータ４７とインターネットとの間に論理的に挿入されている。この例では、ＩＳＰの１つに障害が発生した場合にワークロードを共用するために、２つのＩＳＰがネットワーク１１、１４、および１７のそれぞれに供応している。以下のシナリオでは、すべてのコンピュータ９、１０、１２、１３、１５、および１６用のネットワーク１１、１４、および１７は同じＩＰアドレスを有しており（すなわち、「マルチネット」）、そうでなければ、このＩＰアドレスはインターネット内で固有のものである。異なるサイト・ルータ用の異なる物理的位置が存在し、異なるＩＰアドレスがそれぞれのサイト・ルータを表している。ソース・ネットワークがマルチネットの共通ＩＰアドレスにメッセージ・パケットを送信すると、サイト・ルータへの途上のインターネット内のルータ「Ｒ」は、ＢＧＰまたはＯＳＰＦなどの周知のルーティング・プロトコルの１つにより、それに対してメッセージ・パケットを送信すべきマルチネット１１、１４、および１７の最も近いサイト・ルータを選択する。
【００１６】
図１は、ネットワーク２３上のコンピュータ２２と、ネットワーク２５上のコンピュータ２４と、ネットワーク２７上のコンピュータ２６も示している。ネットワーク２３、２５、および２７は、インターネット２０に接続され、以下のシナリオではソース・ネットワークである。ネットワーク２３、２５、および２７のそれぞれは、単一の固有のＩＰアドレスを有する。以下のシナリオでは、コンピュータ２２は、悪意あるものであり、ネットワーク１１、１４、および１７用の共通ＩＰアドレスにデータ要求、エコー要求、タイムスタンプ要求、または発信元などの多数のメッセージを送信している。コンピュータ２２の意図は、「サービス妨害」攻撃などの多数のメッセージで、ネットワーク１１、１４、および１７内の１つまたは複数のコンピュータ９、１０、１２、１３、１５、または１６、あるいはこれらの組み合わせ、インターネット２０内のルータおよびネットワーク、あるいはパス内の任意の他のネットワーク装置を当惑させ、それにより、コンピュータ２４および２６などの適合または「友好的」要求元に対するパフォーマンスを低下させることである。コンピュータ２４および２６がアプリケーション３０に送信しているメッセージの量はそれよりかなり少なく、コンピュータ２４および２６からのメッセージは適切に意図されたものである。
【００１７】
インターネットは、ソース・コンピュータ２２、２４、および２６のそれぞれと宛先サーバ９、１０、１２、１３、１５、および１６のそれぞれとの間のルータ（図１で「Ｒ」と表示されている）を含む。ルータは、多方向性であり、すなわち、以下のシナリオでは、メッセージはコンピュータ２２、２４、および２６からコンピュータ９、１０、１２、１３、１５、および１６に流れるが、コンピュータ９、１０、１２、１３、１５、１６、２２、２４、および２６の任意の対の間で両方向にメッセージを経路指定することができる。
【００１８】
任意のコンピュータ２２、２４、または２６がメッセージを送信したいと希望する場合、そのコンピュータは、ＵＤＰ、ＩＣＭＰ、およびＴＣＰなどの既知のインターネット・プロトコルにより、メッセージをパケットに分割する。各パケットは、ソースＩＰアドレスおよび宛先ＩＰアドレスを有するヘッダと、要求または情報などのデータを含むペイロードとを含む。ペイロードは、要求されたサービスを提供するためのアプリケーションのポートなどの情報も含み、サイト・ルータはこの情報を使用して、ネットワーク内のどのコンピュータがメッセージ・パケットを受信し処理すべきかを決定する。理想的には、ソースＩＰアドレスは、メッセージのソース・ネットワークの実ソースＩＰアドレスである。しかし、ハッカの中には、自分のメッセージ・パケット・ヘッダに異なるソースＩＰアドレスを埋め込んで自分のソース・ネットワークを隠し、悪意あるメッセージ内のソースＩＰアドレスに対して設定されたＩＰフィルタなどの何らかの対策を阻もうと、自分のソース・コンピュータをプログラミングするものもいる。ソース・コンピュータは、ソース・コンピュータが存在するネットワーク用のそのＩＳＰ、ゲートウェイ・ルータ、またはサイト・ルータ（ファイアウォール内に含まれる可能性がある）に各メッセージ・パケットを送信する。ＩＳＰ、サイト・ルータ、ならびにインターネット内のその他のルータ「Ｒ」は、それらが実施するルーティング・プロトコルに基づいて、宛先ネットワークへの途上にあるその他のルータのトポロジに関する情報を有する。たとえば、既知のＯＳＰＦプロトコルでは、ルータは、自分の存在（および暗にそれ自体と関連リンクの生存能力）、それらが接続されている他のルータに関する情報、および宛先ネットワークへのルーティング・パスを、他のルータおよびＩＳＰにブロードキャストする。他のルータから各ＩＳＰおよびルータによって収集された情報により、各ルータは、隣接ルータ、ネットワーク、およびネットワークへのルーティング・パスのトポロジをコンパイルする。この情報により、各ルータおよびＩＳＰは、少なくとも、宛先サーバへの最短パスのネクスト・ホップ（next hop）を決定することができる。ＯＳＰＦに関する詳細についてはＲＦＣ２３２８に記載されている可能性があり、その文書は本明細書の一部として援用する。既知のＢＧＰプロトコルでは、各ルータは、様々なネットワークに到着するためにそれが使用するルーティング・パスをＩＳＰおよび他のルータにブロードキャストする。たとえば、ルータＢは、ネットワークＤに到着するためにルータＣを使用することをブロードキャストする可能性があり、ルータＧは、ネットワークＤに到着するためにルータＣを使用することをブロードキャストする可能性があり、ルータＩは、ネットワークＤに到着するためにルータＦ、Ｇ、およびＣを使用することをブロードキャストする可能性があり、ルータＥは、ネットワークＤに到着するためにルータＥ、Ｆ、Ｇ、およびＣを使用することをブロードキャストする可能性がある。このようなブロードキャストに基づいて、ルータＦは、ネットワークＤへのその最短パスがルータＧおよびＣを介するものであることを決定し、ネットワークＤ���アドレス指定されたメッセージ・パケットをルータＧに転送することになる。次に、ルータＧは、これらのメッセージ・パケットをルータＣに転送することになり、ルータＣは、これらのメッセージ・パケットをネットワークＤに転送することになる。他のルータから得られたトポロジ情報により、各ＩＳＰおよびルータは、少なくとも、宛先サーバへの最短パスのネクスト・ホップを決定することができる。宛先ネットワークへのルーティング・パスを指定する、他のルータから各ルータおよびＩＳＰが受信した情報は、ルーティング・テーブル内の項目を形成する。ＢＧＰに関する詳細についてはＲＦＣ１７７１に記載されている可能性があり、その文書は本明細書の一部として援用する。どのルーティング・プロトコルが使用されるかにかかわらず、各ルーティング・プロトコルの目標および効果は、最短ルーティング・パス、典型的には、宛先ネットワークへの介在ルータまたは「ホップ」が最少であるパスを使用することである。したがって、これらの既知のプロトコルでは、ソース・コンピュータ２２、２４、または２６が（マルチネット）ネットワーク１１、１４、および１７の共通ＩＰアドレスにアドレス指定されたメッセージを送信する場合、そのメッセージは、マルチネットの最も近い（すなわち、一般に、最少ホップ数の）サイト・ルータ４１、４４、または４７用のＩＳＰに到達するまで、あるルータから次のルータに転送される。次に、ＩＳＰはそれぞれのサイト・ルータにパケットを転送し、サイト・ルータは宛先コンピュータにメッセージを転送する。
【００１９】
図２は、それぞれの宛先ネットワーク１１、１４、および１７のＩＳＰ５０，５１、５０，５２、および５１，５２におけるＢＧＰ（またはその他のこのような）ルータ・テーブルの受信および集約を示している。ＩＳＰ５０および５１がインターネット・ルータ「Ｒ」からルーティング・テーブルを受信した後、ＩＳＰ５０および５１はゲートウェイ・ルータ４１内のルーティング・テーブル・コレクタ・プログラム６１にルーティング・テーブルを転送する。同様に、ＩＳＰ５０および５２がインターネット・ルータ「Ｒ」からルーティング・テーブルを受信した後、ＩＳＰ５０および５２はゲートウェイ・ルータ４４内のルーティング・テーブル・コレクタ・プログラム６４にルーティング・テーブルを転送する。同様に、ＩＳＰ５１および５２がインターネット・ルータ「Ｒ」からルーティング・テーブルを受信した後、ＩＳＰ５１および５２はゲートウェイ・ルータ４７内のルーティング・テーブル・コレクタ・プログラム６７にルーティング・テーブルを転送する。定期的に、ルーティング・テーブル・コレクタ・プログラム６１、６４、および６７のそれぞれは、マルチサイト・ルータ・テーブル・アグリゲータ・プログラム７０にそれぞれのルーティング・テーブルを転送する。図３にさらに図示されている通り、プログラム７０がルーティング・テーブル・コレクタ・プログラム６１、６４、および６７からルータ・テーブルを受信すると（ステップ８０）、プログラム７０は、ルーティング・テーブルを転送したＩＳＰと、ルーティング・テーブル内の各ルーティング・パスに関連するルータ４１、４４、および４７ならびに宛先ネットワークの物理的位置とに、各受信ルータ・テーブルを関連付ける（ステップ８２）。次に、プログラム７０は、ステップ８２で生成された情報を集約し、各ソース・ネットワークからマルチネット内の各宛先ネットワーク１１、１４、および１７へのルータ・ホップの数をカウントして記録する（ステップ８４）。以下の表１は、ルーティング・テーブルの一例である。
【表１】
0004808573.tif 000002
【００２０】
実際には、通常、多くの、あるいは、より多くのソース・ネットワークがテーブル内に表されるが、以下の表２は、ルーティング・テーブルから生成された、各ソース・ネットワークからマルチネット内の各宛先ネットワークへのホップ数のレコードの一例である。
【表２】
0004808573.tif 000003
【００２１】
管理者がサービス妨害攻撃などの悪意ある攻撃に気づいた場合、管理者は、ソース・ネットワーク候補識別プログラム１００を呼び出して、プログラム７０によってコンパイルされた表１などのルーティング・テーブルと表２などのホップ数テーブルとに部分的に基づいて、そこから悪意あるメッセージが送信されたソース・ネットワークの推定サブセットを決定する。表２の例では、１列目は、マルチネットにメッセージを送信したソース・ネットワーク２３、２５、および２７のそれぞれに関する行／項目を有する（ただし、典型的には、より多くの、あるいは、数千ものソース・ネットワークが存在することになる）。２列目は、宛先位置７１を表しており、各ソース・ネットワークから宛先位置７１へのホップ数に関する行／項目を有する。３列目は、宛先位置７４を表しており、各ソース・ネットワークから宛先位置７４へのホップ数に関する行／項目を有する。４列目は、宛先位置７７を表しており、各ソース・ネットワークから宛先位置７７へのホップ数に関する行／項目を有する。
【００２２】
一例として、位置７７は、サービス妨害攻撃として大量の悪意あるメッセージを受信している。管理者は、表２をチェックして、どのソース・ネットワーク２３、２５、または２７（および任意のその他のソース・ネットワーク）で位置７１または７４（または任意のその他の宛先ネットワーク）へのホップ数より位置７７へのホップ数の方が少ないかを決定するプログラム１００を呼び出す。表２の例では、ネットワーク２３では位置７４へのホップ数（すなわち、３）より位置７７へのホップ数（すなわち、４）の方が多く、ネットワーク２５では位置７１へのホップ数（すなわち、６）または位置７４へのホップ数（すなわち、７）より位置７７へのホップ数（すなわち、２）の方が少なく、ネットワーク２７では位置７１へのホップ数（すなわち、２）より位置７７へのホップ数（すなわち、３）の方が多い。したがって、位置７７への悪意あるメッセージについて見込みのあるソースは、ソース・ネットワーク２５からになる。その推論は以下の通りである。すべての位置７１、７４、および７７は同じＩＰアドレスを有し、インターネット・ルータ「Ｒ」のルーティング・プロトコルはソース・ネットワークから宛先ネットワークへのホップ数を最小限にしようと試みる。ソース・ネットワーク２３が（ソース・ネットワーク２５の代わりに）悪意あるメッセージを送信した場合、それが最少介在ルータ・ホップ数を有するので、悪意あるメッセージは位置７４に到着しているものと考えられる。ソース・ネットワーク２７が（ソース・ネットワーク２５の代わりに）悪意あるメッセージを送信した場合、それが最少介在ルータ・ホップ数を有するので、悪意あるメッセージは位置７１に到着しているものと考えられる。
【００２３】
図４は、ソース・ネットワーク候補識別プログラム１００の使用法および機能をより詳細に示す流れ図である。ステップ２００では、プログラム１００は、システム管理者が悪意あるサービス妨害攻撃を検出した後など、ある企業のシステム管理者がプログラム１００を呼び出すのを待つ。プログラム１００を呼び出すときに、管理者は、ネットワーク１１、１４、および１７から公示された宛先アドレスと、攻撃を受けている物理的位置とをプログラム１００に対して識別する。この例の場合、位置７７が攻撃を受けているものと想定する。呼び出されると、プログラム１００は、位置７７のＩＳＰ５１および５２に関する空の「推定ソース・ネットワーク候補リスト」を作成する。次に、プログラム１００は、表２の第１のソース・ネットワーク行から、すなわち、ネットワーク２３から位置７７へのホップ数を決定する（ステップ２０４）。次に、プログラム１００は、（表２の第１のソース・ネットワーク行において）ネットワーク２３から位置７１へのホップ数を決定する（ステップ２０６）。次に、プログラム１００は、（表２の第１のソース・ネットワーク行において）ネットワーク２３から位置７４へのホップ数を決定する（ステップ２０６）。次に、プログラム１００は、ソース・ネットワーク２３から位置７７へのホップ数の方がソース・ネットワーク２３から位置７１へのホップ数およびソース・ネットワーク２３から位置７４へのホップ数より少ないかどうかを判定する（判断２０８）。そうである場合（判断２０８のＹＥＳ分岐）、プログラム１００は、ソース・ネットワーク２３が「推定ソース・ネットワーク候補リスト」上の候補であることを記録する（ステップ２１０）。図示されている例では、ソース・ネットワーク２３からのホップ数は、宛先位置７７へのホップ数より宛先位置７４へのホップ数の方が少なく（判断２０８のＮＯ分岐）、したがって、プログラム１００は、ソース・ネットワーク２３を推定ソース・ネットワーク候補リスト上の候補として記録しない。次に、プログラム１００は、表２に他の行、すなわち、おそらく位置７７への悪意あるメッセージのソースと見なすべき他のソース・ネットワークが存在すると判断する（判断２２０のＹＥＳ分岐）。したがって、プログラム１００は、表２内の次の行、すなわち、ソース・ネットワーク２５に関する項目について、ステップ２０４、２０６、および２０８を繰り返す。ステップ２０４のこの反復中に、プログラム１００は、ソース・ネットワーク２５から宛先位置７７へのホップ数が２であると判断する。また、ステップ２０６のこの反復中に、プログラム１００は、ソース・ネットワーク２５から宛先位置７１へのホップ数が６であり、ソース・ネットワーク２５から宛先位置７４へのホップ数が７であると判断する。次に、判断２０８のこの反復中に、プログラムは、ソース・ネットワーク２５では宛先位置７１または７４へのホップ数より宛先位置７７へのホップ数の方が少ないと判断する。したがって、判断２０８およびステップ２１０のこの反復中に、プログラム１００は推定ソース・ネットワーク候補リストにソース・ネットワーク２５を入力する。次に、プログラム１００は、表２に他の行、すなわち、おそらく悪意あるメッセージのソースと見なすべき他のソース・ネットワークが存在すると判断する（判断２２０のＹＥＳ分岐）。したがって、プログラム１００は、表２内の次の行、すなわち、ソース・ネットワーク２７に関する項目について、ステップ２０４、２０６、および２０８を繰り返す。ステップ２０４のこの最終反復中に、プログラム１００は、ソース・ネットワーク２７から宛先位置７７へのホップ数が３であると判断する。また、ステップ２０６のこの最終反復中に、プログラム１００は、ソース・ネットワーク２７から宛先位置７１へのホップ数が２であり、ソース・ネットワーク２７から宛先位置７４へのホップ数が５であると判断する。次に、判断２０８のこの最終反復中に、プログラムは、ソース・ネットワーク２７では宛先位置７７へのホップ数より宛先位置７１へのホップ数の方が少ないと判断する。したがって、判断２０８のこの最終反復中に、プログラム１００は「推定ソース・ネットワーク候補リスト」にソース・ネットワーク２７を入力しない。ステップ２０４〜２１０の最終反復後に、推定ソース・ネットワーク候補リスト内には項目が１つだけ存在しており、したがって、プログラム１００は、ソース・ネットワーク２５が悪意あるメッセージの推定ソースであることをシステム管理者に通知する（ステップ２３０）。応答として、ＩＳＰ５１または５２のシステム管理者は、ソース・ネットワーク２５に接続するそれぞれのルータ・インターフェース上に悪意あるトラフィック・タイプに関するレート制限フィルタ（rate limiting filter）をインストールすることができる（ステップ２４０）。ネットワーク２５に接続するインターフェースのみにレート制限フィルタを適用することにより、良性トラフィックはブロックされず、悪意あるトラフィックがブロックされる。プログラム１００は、推定ソース・ネットワーク候補の識別の際に、位置７７によって受信されたメッセージに含まれるソースＩＰアドレスに基づかないので、このようなメッセージ内の間違った（または「送信偽装された」）ソースＩＰアドレスによって欺されることはない。
【００２４】
典型的なネットワーク環境では、表２は、位置７７に接続している数千の、あるいは、数十万ものソース・ネットワークを表す数千の、あるいは、数十万もの行を有することになる。（表２内のすべての行について）ステップ２０４〜２１０のすべての反復が完了した後、推定ソース・ネットワーク候補リストには平均してＸ／Ｎ個の候補が存在することになり、その場合、「Ｘ」は位置７７に接続しているソース・ネットワークの総数に等しく、「Ｎ」はＩＳＰを通過する宛先ネットワークの総数に等しい。図示されている例では、このような宛先ネットワークが３つ存在し、したがって、プログラム１００は平均してソース・ネットワークの２／３を詳細検討から排除することになり、それらは悪意あるメッセージのソースではない。その場合、ステップ２４０では、ＩＳＰのシステム管理者または自動プログラム機能は、推定ソース・ネットワーク候補リスト上のソース・ネットワークに接続するＩＳＰルータ内にレート制限フィルタ（一度に１つのインターフェース）をインストールすることになる。このような場合、プログラム１００は悪意あるメッセージのソースとして単一ソース・ネットワークを識別せず、プログラム１００は候補の数を大幅に低減している。これにより、悪意あるメッセージを識別し、次にそれをブロックしようとするためにインストールすべきフィルタの数が大幅に低減されている。
【００２５】
上記に基づいて、そこから悪意あるメッセージが送信されたソース・ネットワークのリストを決定するためのシステム、方法、およびプログラムが開示されている。しかし、本発明の範囲から逸脱せずに多数の変更および代替態様が可能である。したがって、本発明は制限のためではなく例証のために開示されており、本発明の範囲を決定するためには特許請求の範囲を参照しなければならない。
【図面の簡単な説明】
【００２６】
【図１】インターネットと、本発明が組み込まれるマルチネット環境とを含む、種々のネットワークのブロック図である。
【図２】図１のマルチネット環境のより詳細なブロック図である。
【図３】本発明によって使用されるマルチネット・アグリゲータ・プログラムの流れ図である。
【図４】本発明を実施するソース・ネットワーク候補識別プログラムの流れ図である。
【符号の説明】
【００２７】
９：コンピュータ
１０：コンピュータ
１１：ネットワーク
１２：コンピュータ
１３：コンピュータ
１４：ネットワーク
１５：コンピュータ
１６：コンピュータ
１７：ネットワーク
２０：インターネット
２２：悪意あるコンピュータ
２３：ネットワーク
２４：友好的コンピュータ
２５：ネットワーク
２６：友好的コンピュータ
２７：ネットワーク
３０：アプリケーション
４１：サイト・ルータ
４４：サイト・ルータ
４７：サイト・ルータ
５０：ＩＳＰ
５１：ＩＳＰ
５２：ＩＳＰ
７１：地理的サイト
７４：地理的サイト
７７：地理的サイト
【図１】
0004808573.tif 000004
【図２】
0004808573.tif 000005
【図３】
0004808573.tif 000006
【図４】
0004808573.tif 000007