(57)【要約】【課題】  ポート・スキャン保護のためのコンピュータ実施方法、装置、およびコンピュータ・プログラムを提供する。【解決手段】  ポート・スキャン保護のためのコンピュータ実施方法、装置、およびコンピュータ・プログラム。ポート・スキャンの検出に応答して、変更伝送制御プロトコル・ヘッダを有する応答データ・パケットを発生して、変更応答データ・パケットを形成する。変更応答データ・パケットは、変更データ・パケットの受信者からの応答を引き出す。応答データ・パケットを、ポート・スキャンに関連した第１のインターネット・プロトコル・アドレスに送信する。変更応答データ・パケットの応答のヘッダから、第２のインターネット・プロトコル・アドレスを識別する。第２のインターネット・プロトコル・アドレスは、ポート・スキャンのソースの実際のインターネット・プロトコル・アドレスである。第２のインターネット・プロトコル・アドレスからの全てのネットワーク・トラヒックを阻止して、ポート・スキャンのソースからのいかなる開いたポート上の攻撃も防ぐことができる。【選択図】  図５
2010527527.tif 000002
【特許請求の範囲】
【請求項１】
ポート・スキャン保護のための方法であって、
ポート・スキャンの検出に応答して、データ・パケットの送信に用いるプロトコルのための変更ヘッダを有する応答データ・パケットを発生して、変更応答データ・パケットを形成するステップであって、前記変更応答データ・パケットは前記変更応答データ・パケットの受信者からの応答を取得する、前記ステップと、
前記変更応答データ・パケットを、前記ポート・スキャンに関連した第１のルーティング・アドレスに送信するステップと、
前記変更応答データ・パケットの応答の受信に応じて、前記応答のヘッダにおける第２のルーティング・アドレスを識別するステップであって、前記第２のルーティング・アドレスが前記ポート・スキャンのソースの実際のルーティング・アドレスである、前記ステップと、
を含む、前記方法。
【請求項２】
前記プロトコルのための前記変更ヘッダが、許容可能なシーケンス番号範囲から外れたシーケンス番号を含む、請求項１に記載の方法。
【請求項３】
前記シーケンス番号が、前記受信者からの応答を取得するプロトコル違反である、請求項２に記載の方法。
【請求項４】
前記プロトコルのための前記変更ヘッダがリセット・フラグを含む、請求項１に記載の方法。
【請求項５】
前記プロトコルのための前記変更ヘッダが終了フラグを含む、請求項１に記載の方法。
【請求項６】
前記ヘッダを変更するステップが、前記変更応答データ・パケットを発生するために用いるチェックサムを変更することを更に含む、請求項１に記載の方法。
【請求項７】
前記第２のルーティング・アドレスから発信されるネットワーク・トラヒックを阻止して、いかなる開いたポート上の攻撃も防止するステップを更に含む、請求項１に記載の方法。
【請求項８】
前記第１のルーティング・アドレスがコンピューティング・デバイスの正しいルーティング・アドレスでない、請求項１に記載の方法。
【請求項９】
ポート・スキャン・データ・パケットの受信に応答して、前記ポート・スキャン・データ・パケットのヘッダにおけるソース・ルーティング・アドレスを前記第１のルーティング・アドレスとして識別するステップを更に含む、請求項１に記載の方法。
【請求項１０】
前記プロトコルのための前記変更ヘッダが変更伝送制御プロトコル・ヘッダである、請求項１に記載の方法。
【請求項１１】
前記プロトコルのための前記変更ヘッダが変更ユーザ・データグラム・プロトコル・ヘッダである、請求項１に記載の方法。
【請求項１２】
前記第１のルーティング・アドレスが第１のインターネット・プロトコル・アドレスであり、前記第２のルーティング・アドレスが第２のインターネット・プロトコル・アドレスである、請求項１に記載の方法。
【請求項１３】
バス・システムと、
前記バス・システムに接続された通信システムと、
前記バス・システムに接続され、コンピュータ使用可能プログラム・コードを含むメモリと、
前記バス・システムに接続され、前記コンピュータ使用可能プログラム・コードを実行し、ポート・スキャンの検出に応答して、データ・パケットの送信に用いるプロトコルのための変更ヘッダを有する応答データ・パケットを発生して、変更応答データ・パケットを形成する処理ユニットであって、前記変更応答データ・パケットは前記変更応答データ・パケットの受信者からの応答データ・パケットを取得し、前記変更応答データ・パケットを、前記ポート・スキャンに関連した第１のルーティング・アドレスに送信し、前記応答データ・パケットの受信に応じて、前記応答データ・パケットのヘッダにおける第２のルーティング・アドレスを識別し、前記第２のルーティング・アドレスが前記ポート・スキャンのソースの実際のルーティング・アドレスである、前記処理ユニットと、
を含む、装置。
【請求項１４】
前記プロトコルのための前記変更ヘッダがシーケンス番号を含み、前記シーケンス番号が、許容可能なシーケンス番号範囲から外れたシーケンス番号である、請求項１３に記載の装置。
【請求項１５】
前記プロトコルのための前記変更ヘッダがリセット・フラグを含む、請求項１３に記載の装置。
【請求項１６】
前記プロトコルのための前記変更ヘッダが終了フラグを含む、請求項１３に記載の装置。
【請求項１７】
前記処理ユニットが、更に、前記コンピュータ使用可能プログラム・コードを実行して、前記第２のルーティング・アドレスから発信される全てのネットワーク・トラヒックを阻止し、いかなる開いたポート上の攻撃も防止する、請求項１３に記載の装置。
【請求項１８】
前記シーケンス番号が、前記応答データ・パケットの受信者からの応答を取得するプロトコル違反である、請求項１４に記載の装置。
【請求項１９】
前記プロトコルのための前記変更ヘッダが変更伝送制御プロトコル・ヘッダである、請求項１３に記載の装置。
【請求項２０】
前記第１のルーティング・アドレスが第１のインターネット・プロトコル・アドレスであり、前記第２のルーティング・アドレスが第２のインターネット・プロトコル・アドレスである、請求項１３に記載の装置。
【請求項２１】
ポート・スキャンに対する保護のためのシステムであって、
ポート・スキャン・データ・パケットを検出し、ポート・スキャンの検出に応答して、データ・パケットの送信に用いるプロトコルのための変更ヘッダを有する応答データ・パケットを発生して、変更応答データ・パケットを形成する高度ポート・スキャン保護ソフトウェアと、
前記変更応答データ・パケットに対する応答のヘッダにおけるソース・ルーティング・アドレスを識別するソース・インターネット・プロトコル・アドレス検出器であって、前記ソース・ルーティング・アドレスが前記ポート・スキャンのソースの実際のルーティング・アドレスである、前記ソース・インターネット・プロトコル・アドレス検出器と、
を含むホスト・コンピュータを含む、システム。
【請求項２２】
前記プロトコルのための前記変更ヘッダが、前記応答データ・パケットの受信者からの応答をトリガするためのプロトコル違反を含む、請求項２１に記載のシステム。
【請求項２３】
前記プロトコルのための前記変更ヘッダがリセット・フラグまたは終了フラグを含む、請求項２１に記載のシステム。
【請求項２４】
前記ホスト・コンピュータが第１のコンピュータであり、更に、
第２のコンピュータであって、
偽のソース・ルーティング・アドレスを有する前記ポート・スキャン・データ・パケットを前記第１のコンピュータに送信することによって前記第１のコンピュータ上で前記ポート・スキャンを実行するポート・スキャナであって、前記偽のソース・ルーティング・アドレスが前記第２のコンピュータの正しいルーティング・アドレスでない、前記ポート・スキャナと、
前記変更応答データ・パケットに対する前記応答を自動的に発生する伝送制御プロトコル／インターネット・プロトコル層と、
を含む前記第２のコンピュータを含む、請求項２１に記載のシステム。
【請求項２５】
デジタル・コンピュータの内部メモリ内にロードすることができるコンピュータ・プログラムであって、コンピュータ上で実行されると、請求項１から１２に記載された前記方法の前記ステップの全てを行うように実行されるソフトウェア・コード部分を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データ処理システムに関し、具体的には、データ処理システム・セキュリティのための方法および装置に関する。更に特定すれば、本発明は、偽の（fake）ソース・インターネット・プロトコル・アドレスを用いたポート・スキャナを阻止するためのコンピュータ実施方法、装置、およびコンピュータ使用可能プログラム・コードを対象とする。
【背景技術】
【０００２】
ネットワークに接続されたクライアント等のコンピューティング・デバイス上のユーザは、サーバ等の異なるコンピューティング・デバイス上で利用可能なアプリケーションまたは他のサービスを、このアプリケーションまたはサービスに関連したサーバ上のポートに接続することによって、実行することができる。ポートは、ネットワークにおけるクライアントとサーバとの間の論理接続に対するエンドポイントである。ポートは通常、ポート番号によって識別される。サーバ上で利用可能な各アプリケーションには、異なるポート番号が関連付けられている。
【０００３】
換言すると、ポートは、コンピュータ上の特定のアプリケーションに対するドアまたはゲートウェイのようなものである。ドアと同様に、ポートは開いたり閉じたりすることができる。サーバ上の開いたポートは、１つ以上のクライアント・コンピュータが用いるためにサーバ上で現在利用可能なアプリケーションに関連付けられたポートである。閉じたポートは、サーバ上で利用可能なアプリケーションまたはサービスに関連付けられていないポートである。ハッカーは、通常、閉じたポートを介してコンピュータにアクセスすることはできない。
【０００４】
コンピューティング・デバイスは、サーバ上の特定のアプリケーションに関連付けられたポート番号を指定することによって、この特定のアプリケーションにアクセスすることができる。しかしながら、時に、非認証のまたは悪質なユーザが、サーバに攻撃を開始する目的でサーバ上のアプリケーションまたはサービスにアクセスを望む場合がある。これらのユーザは通常、ハッカーまたはコンピュータ・クラッカーと称される。ハッカーによって攻撃されるサーバは、ねらわれた被害者（intended victim）と称されることがある。
【０００５】
ハッカーは、一般に、ねらわれた被害者でどんなアプリケーションまたはサーバが利用可能であるかを知らない。従って、ハッカーは、ポート・スキャンを実行する場合がある。ポート・スキャンは、コンピュータのポートを系統的にスキャンして、どのポートが利用可能なアプリケーションまたはサービスに関連付けられた開いたポートであるか、および、どのポートが閉じたポートであるかを判定するための方法である。ポート・スキャンにおいては、一連のメッセージを送信して、周知の各ポートとの接続を要求する。ねらわれた被害者から受信された応答は、周知のポートが開いたポートであるかまたは閉じたポートであるかを示す。ポート・スキャンは、攻撃に対して無防備であり得るコンピュータへの開いたアクセス・ポイントの位置を突き止めるために、ハッカーによって用いられる。
【０００６】
いったん無防備な開いたポートの位置を突き止めると、ハッカーは攻撃を開始し、これによって、攻撃された開いたポートに関連するアプリケーションのリソースが、アプリケーションの対象ユーザに利用不可能となる場合がある。このタイプの攻撃は、時に、サービス使用不能（ＤＯＳ：denial-of-service）攻撃と称される。
【０００７】
この問題に対する１つの解決策が、ポート・スキャン保護ソフトウェアによって与えられる。現在のポート・スキャン保護ソフトウェアは、ポート・スキャンの一部である可能性のある接続要求においてソース・インターネット・プロトコル（ＩＰ）アドレスを識別する。ポート・スキャン保護ソフトウェアは、次いで、そのソースＩＰアドレスを阻止する。換言すると、ポート・スキャン・ソフトウェアは、そのソースＩＰアドレスからのどんな追加メッセージも受信を許可しない。これによって、以降、同一のソースＩＰアドレスを用いたハッカーによる攻撃を防ぐことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、ハッカーは、ポート・スキャン中に偽のソースＩＰアドレスを用いて開いたポートの位置を突き止めることによって、現在のポート・スキャン防止ソフトウェアの裏をかいている。ポート・スキャン・ソフトウェアが、ポート・スキャンが行われている可能性があることを認識すると、ポート・スキャン防止ソフトウェアは、ポート・スキャン・メッセージにおいて識別された偽のＩＰアドレスを阻止する。しかしながら、現在のポート・スキャン防止ソフトウェアは、ハッカーの実ＩＰアドレスを阻止しない。従って、ハッカーは依然として、ハッカーの実ＩＰアドレスを用いていずれかの開いたポート上で自由に攻撃を開始でき、これはポート・スキャン保護ソフトウェアによって阻止されない。これらの攻撃により、ねらわれた被害者によって与えられるアプリケーションまたはサービスあるいはその両方に正当なアクセスを得ようとするユーザに対し、サービス使用不能（ＤＯＳ）の結果を及ぼす恐れがある。更に、これらの攻撃は、時間、データ、および収入の損失になると同時に、アプリケーションまたはサービスあるいはその両方が利用不可能となる場合がある。
【課題を解決するための手段】
【０００９】
例示的な実施形態は、ポート・スキャン保護のためのコンピュータ実施方法、装置、およびコンピュータ使用可能プログラム・コードを提供する。一実施形態において、プロセスは、ポート・スキャンの検出に応答して、データ・パケットの送信に用いるプロトコルのための変更ヘッダを有する応答データ・パケットを発生して、変更応答データ・パケットを形成する。一実施形態において、データ・パケットの送信に用いるプロトコルのための変更ヘッダは、変更伝送制御プロトコル・ヘッダである。
【００１０】
変更応答データ・パケットは、変更データ・パケットの受信者からの応答を引き出す。プロセスは、応答データ・パケットを、ポート・スキャンに関連した第１のルーティング・アドレスに送信する。
【００１１】
プロセスは、変更応答データ・パケットの応答の受信に応じて、応答データ・パケットのヘッダにおける第２のルーティング・アドレスを識別する。第２のルーティング・アドレスは、ポート・スキャンのソースの実際のルーティング・アドレスである。第２のルーティング・アドレスからの全てのネットワーク・トラヒックを阻止して、いかなる開いたポート上の攻撃も防ぐことができる。一実施形態において、第１のルーティング・アドレスは第１のインターネット・プロトコル・アドレスであり、第２のルーティング・アドレスは第２のインターネット・プロトコル・アドレスである。
【００１２】
データ・パケットの送信に用いるプロトコルのための変更ヘッダは、不良シーケンス番号を含む場合がある。不良シーケンス番号は、許容可能なシーケンス番号またはプロトコルから外れたシーケンス番号であり、応答データ・パケットの受信者からの応答を引き出す。別の実施形態においては、変更ヘッダは、リセット・フラグまたは終了フラグを含む場合がある。別の実施形態では、変更ヘッダは、変更応答データ・パケットを発生するために用いるチェックサムを変更することによって発生される。
【００１３】
第１の態様から見ると、本発明は、ポート・スキャン保護のための方法を提供する。この方法は、ポート・スキャンの検出に応答して、データ・パケットの送信に用いるプロトコルのための変更ヘッダを有する応答データ・パケットを発生して、変更応答データ・パケットを形成するステップであって、変更応答データ・パケットは変更応答データ・パケットの受信者からの応答を取得する、ステップと、変更応答データ・パケットを、ポート・スキャンに関連した第１のルーティング・アドレスに送信するステップと、変更応答データ・パケットの応答の受信に応じて、応答のヘッダにおける第２のルーティング・アドレスを識別するステップであって、第２のルーティング・アドレスがポート・スキャンのソースの実際のルーティング・アドレスである、ステップと、を含む。
【００１４】
好ましくは、本発明が提供する方法において、プロトコルのための変更ヘッダが、許容可能なシーケンス番号範囲から外れたシーケンス番号を含む。
【００１５】
好ましくは、本発明が提供する方法において、シーケンス番号が、受信者からの応答を取得するプロトコル違反である。
【００１６】
好ましくは、本発明が提供する方法において、プロトコルのための変更ヘッダがリセット・フラグを含む。
【００１７】
好ましくは、本発明が提供する方法において、プロトコルのための変更ヘッダが終了フラグを含む。
【００１８】
好ましくは、本発明が提供する方法において、ヘッダを変更するステップが、変更応答データ・パケットを発生するために用いるチェックサムを変更することを更に含む。
【００１９】
好ましくは、本発明が提供する方法は、第２のルーティング・アドレスから発信されるネットワーク・トラヒックを阻止して、いかなる開いたポート上の攻撃も防止するステップを更に含む。
【００２０】
好ましくは、本発明が提供する方法において、第１のルーティング・アドレスがコンピューティング・デバイスの正しいルーティング・アドレスでない。
【００２１】
好ましくは、本発明が提供する方法は、ポート・スキャン・データ・パケットの受信に応答して、ポート・スキャン・データ・パケットのヘッダにおけるソース・ルーティング・アドレスを第１のルーティング・アドレスとして識別するステップを更に含む。
【００２２】
好ましくは、本発明が提供する方法において、プロトコルのための変更ヘッダが変更伝送制御プロトコル・ヘッダである。
【００２３】
好ましくは、本発明が提供する方法において、プロトコルのための変更ヘッダが変更ユーザ・データグラム・プロトコル・ヘッダである。
【００２４】
好ましくは、本発明が提供する方法において、第１のルーティング・アドレスが第１のインターネット・プロトコル・アドレスであり、第２のルーティング・アドレスが第２のインターネット・プロトコル・アドレスである。
【００２５】
第２の態様から見ると、本発明は、バス・システムと、バス・システムに接続された通信システムと、バス・システムに接続され、コンピュータ使用可能プログラム・コードを含むメモリと、バス・システムに接続され、コンピュータ使用可能プログラム・コードを実行し、ポート・スキャンの検出に応答して、データ・パケットの送信に用いるプロトコルのための変更ヘッダを有する応答データ・パケットを発生して、変更応答データ・パケットを形成する処理ユニットであって、変更応答データ・パケットは変更応答データ・パケットの受信者からの応答データ・パケットを取得し、変更応答データ・パケットをポート・スキャンに関連した第１のルーティング・アドレスに送信し、応答データ・パケットの受信に応じて、応答データ・パケットのヘッダにおける第２のルーティング・アドレスを識別し、第２のルーティング・アドレスがポート・スキャンのソースの実際のルーティング・アドレスである、処理ユニットと、を含む装置を提供する。
【００２６】
好ましくは、本発明が提供する装置において、プロトコルのための変更ヘッダがシーケンス番号を含み、シーケンス番号が、許容可能なシーケンス番号範囲から外れたシーケンス番号である。
【００２７】
好ましくは、本発明が提供する装置において、プロトコルのための変更ヘッダがリセット・フラグを含む。
【００２８】
好ましくは、本発明が提供する装置において、プロトコルのための変更ヘッダが終了フラグを含む。
【００２９】
好ましくは、本発明が提供する装置において、処理ユニットが、更に、コンピュータ使用可能プログラム・コードを実行して、第２のルーティング・アドレスから発信される全てのネットワーク・トラヒックを阻止し、いかなる開いたポート上の攻撃も防止する。
【００３０】
好ましくは、本発明が提供する装置において、シーケンス番号が、応答データ・パケットの受信者からの応答を取得するプロトコル違反である。
【００３１】
好ましくは、本発明が提供する装置において、プロトコルのための変更ヘッダが変更伝送制御プロトコル・ヘッダである。
【００３２】
好ましくは、本発明が提供する装置において、第１のルーティング・アドレスが第１のインターネット・プロトコル・アドレスであり、第２のルーティング・アドレスが第２のインターネット・プロトコル・アドレスである。
【００３３】
第３の態様から見ると、本発明は、ポート・スキャンに対する保護のためのシステムを提供する。このシステムは、ポート・スキャン・データ・パケットを検出し、ポート・スキャンの検出に応答して、データ・パケットの送信に用いるプロトコルのための変更ヘッダを有する応答データ・パケットを発生して、変更応答データ・パケットを形成する高度ポート・スキャン保護ソフトウェアと、変更応答データ・パケットに対する応答のヘッダにおけるソース・ルーティング・アドレスを識別するソース・インターネット・プロトコル・アドレス検出器であって、ソース・ルーティング・アドレスがポート・スキャンのソースの実際のルーティング・アドレスである、ソース・インターネット・プロトコル・アドレス検出器と、を含むホスト・コンピュータを含む。
【００３４】
好ましくは、本発明が提供するシステムにおいて、プロトコルのための変更ヘッダが、応答データ・パケットの受信者からの応答をトリガするためのプロトコル違反を含む。
【００３５】
好ましくは、本発明が提供するシステムにおいて、プロトコルのための変更ヘッダがリセット・フラグまたは終了フラグを含む。
【００３６】
好ましくは、本発明が提供するシステムにおいて、ホスト・コンピュータが第１のコンピュータであり、更に、第２のコンピュータであって、偽のソース・ルーティング・アドレスを有するポート・スキャン・データ・パケットを第１のコンピュータに送信することによって第１のコンピュータ上でポート・スキャンを実行するポート・スキャナであって、偽のソース・ルーティング・アドレスが第２のコンピュータの正しいルーティング・アドレスでない、ポート・スキャナと、変更応答データ・パケットに対する応答を自動的に発生する伝送制御プロトコル／インターネット・プロトコル層と、を含む第２のコンピュータを含む。
【００３７】
第４の態様から見ると、本発明は、デジタル・コンピュータの内部メモリ内にロードすることができるコンピュータ・プログラムであって、コンピュータ上で実行されると、上述した方法のステップの全てを行うように実行されるソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
【００３８】
第５の態様から見ると、コンピュータ・プログラムは、ポート・スキャン保護のためのコンピュータ使用可能プログラム・コードを含むコンピュータ読み取り可能媒体を含む。このコンピュータ・プログラムは、ポート・スキャンの検出に応答して、データ・パケットの送信に用いるプロトコルのための変更ヘッダを有する応答データ・パケットを発生して、変更応答データ・パケットを形成するためのコンピュータ使用可能プログラム・コードであって、変更応答データ・パケットは変更応答データ・パケットの受信者からの応答を引き出す、コンピュータ使用可能プログラム・コードと、変更応答データ・パケットを、ポート・スキャンに関連した第１のルーティング・アドレスに送信するためのコンピュータ使用可能プログラム・コードと、変更応答データ・パケットの受信に応じて、応答データ・パケットのヘッダにおける第２のルーティング・アドレスを識別するためのコンピュータ使用可能プログラム・コードであって、第２のルーティング・アドレスがポート・スキャンのソースの実際のルーティング・アドレスである、コンピュータ使用可能プログラム・コードと、を含む。
【００３９】
好ましくは、本発明が提供するコンピュータ・プログラムにおいて、プロトコルのための変更ヘッダがシーケンス番号を含む。
【００４０】
好ましくは、本発明が提供するコンピュータ・プログラムにおいて、プロトコルのための変更ヘッダが、許容可能なシーケンス番号範囲から外れたシーケンス番号を含む。
【００４１】
好ましくは、本発明が提供するコンピュータ実施方法において、シーケンス番号が、応答データ・パケットの受信者からの応答を取得するプロトコル違反である。
【００４２】
好ましくは、本発明が提供するコンピュータ・プログラムにおいて、プロトコルのための変更ヘッダがリセット・フラグを含む。
【００４３】
好ましくは、本発明が提供するコンピュータ・プログラムにおいて、プロトコルのための変更ヘッダが終了フラグを含む。
【００４４】
本発明の実施形態について、添付図面を参照して、例示としてのみ、以下に詳細に説明する。
【図面の簡単な説明】
【００４５】
【図１】本発明の好適な実施形態を実施可能なデータ処理システムのネットワークの図である。
【図２】本発明の好適な実施形態を実施可能なデータ処理システムの図である。
【図３】本発明の好適な実施形態に従った、開放型システム間相互接続（ＯＳＩ）基本参照モデルのブロック図である。
【図４】現在使用されているポート・スキャン保護機構を示すブロック図である。
【図５】本発明の好適な実施形態に従った、偽のソースＩＰアドレスを用いたポート・スキャンを検出するためのポート・スキャン保護システムによるフローを示すブロック図である。
【図６】本発明の例示的な実施形態に従ったポート・スキャン保護機構を示すブロック図である。
【図７】本発明の例示的な実施形態に従った、ポート・スキャン中に送信されるポート・スキャン・パケットの例示である。
【図８】本発明の例示的な実施形態に従った、偽のソースＩＰアドレスを用いたポート・スキャンを検出するためのプロセスを示すフローチャートである。
【図９】本発明の例示的な実施形態に従った、応答データ・パケットを変更するためのプロセスを示すフローチャートである。
【発明を実施するための形態】
【００４６】
ここで図面、特に図１および図２を参照して、例示的な実施形態を実行可能なデータ処理環境の例示的な図を与える。図１から図２は単に例示であり、異なる実施形態を実行実施可能な環境に関して何らかの限定を主張したり意味したりすることを意図していないことは認められよう。図示した環境に対しては、多くの変更が可能である。
【００４７】
ここで図面を参照すると、図１は、例示的な実施形態を実行可能なデータ処理システムのネットワークの図を示す。ネットワーク・データ処理システム１００は、実施形態を実行可能なコンピュータのネットワークである。ネットワーク・データ処理システム１００はネットワーク１０２を含む。これは、ネットワーク・データ処理システム１００内で接続される様々なデバイスおよびコンピュータ間に通信リンクを与えるために用いられる媒体である。ネットワーク１０２は、有線、無線通信リンク、または光ファイバ・ケーブル等の接続を含むことができる。
【００４８】
図示した例において、サーバ１０４およびサーバ１０６は、記憶ユニット１０８と共に、ネットワーク１０２に接続する。更に、クライアント１１０、１１２、および１１４がネットワーク１０２に接続する。これらのクライアント１１０、１１２、および１１４は、例えばパーソナル・コンピュータまたはネットワーク・コンピュータとすれば良い。図示した例では、サーバ１０４は、ブート・ファイル、オペレーティング・システム画像、およびアプリケーション等のデータを、クライアント１１０、１１２、および１１４に提供する。この例では、クライアント１１０、１１２、および１１４は、サーバ１０４に対するクライアントである。ネットワーク・データ処理システム１００は、図示しない追加のサーバ、クライアント、および他のデバイスを含むことも可能である。
【００４９】
クライアント１１０等のコンピューティング・デバイスは、ネットワーク１０２を介して利用可能なサーバ１０６等の異なるコンピューティング・デバイス上で利用可能なアプリケーションまたは他のサービスを、所望のアプリケーションまたはサービスに関連付けられたサーバ１０６上のポートに接続することによって、実行することができる。アプリケーションは、コンピューティング・デバイスのリソースを用いてユーザのためのタスクまたはサービスを実行するコンピュータ・ソフトウェアである。
【００５０】
ポートは、ネットワーク１０２におけるクライアント１１０とサーバ１０６との間の論理接続に対するエンドポイントである。ポートは通常、ポート番号によって識別される。ポート番号は０から６５，５３６までの範囲である。ポート番号は、ＩＡＮＡ（Internet Assigned Numbers Authority）によって割り当てられる。ＩＡＮＡは、ＩＣＡＮＮ（Internet Corporation for Assigned Names and Numbers）によって運営される。
【００５１】
サーバ１０４または１０６上で利用可能な各アプリケーションには、異なるポート番号が関連付けられている。いくつかのポート番号は、所与のポートに関連付けられたアプリケーションまたはサービスのタイプに基づいて予め割り当てられている。これらの予め割り当てられたまたは標準のポート番号は、周知のポートと称される。約１，０２４の周知のポート番号が、特定のサービスおよびアプリケーションのために予約または予め割り当てられている。例えば、周知のポート番号は、限定ではないが、ＨＴＴＰ（ハイパーテキスト転送プロトコル）トラヒックのためのポート８０、テルネットのためのポート２３、ＳＭＴＰ（簡易メール転送プロトコル）のためのポート２５、ＤＮＳ（ドメイン・ネーム・サーバ）のためのポート５３、およびＩＲＣ（インターネット・リレー・チャット）のためのポート１９４を含む。従って、ハイパーテキスト転送プロトコル・トラヒックに指定されたサーバ上のあらゆるポートには、通常、ポート番号８０が割り当てられている。
【００５２】
クライアント１１０は、サーバ１０４または１０６上の特定のアプリケーションに関連付けられたポート番号を指定する接続要求を送信することによって、この特定のアプリケーションにアクセスすることができる。
【００５３】
図示する例において、ネットワーク・データ処理システム１００は、ネットワーク１０２を有するインターネットであり、このネットワーク１０２は、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）プロトコル・スイートを用いて相互に通信を行う世界的なネットワークおよびゲートウェイ集合を表す。インターネットの中心には、主要ノードまたはホスト・コンピュータ間の高速データ通信線のバックボーンがあり、データおよびメッセージをルーティングする何千もの民生用、政府用、教育用および他のコンピュータ・システムから成る。むろん、ネットワーク・データ処理システム１００は、例えばイントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、またはワイド・エリア・ネットワーク（ＷＡＮ）等の多数の異なる種類のネットワークとして実施することも可能である。図１は、一例として意図されたものであり、異なる実施形態のためのアーキテクチャの限定としてのものではない。
【００５４】
ここで図２を参照すると、例示的な実施形態を実行可能なデータ処理システムのブロック図が示されている。データ処理システム２００は、図１におけるサーバ１０６またはクライアント１１０等のコンピュータの例であり、ここに、例示的な実施形態のためのプロセスを実施するコンピュータ使用可能コードまたは命令を配置することができる。
【００５５】
図示する例において、データ処理システム２００は、ノース・ブリッジおよびメモリ・コントローラ・ハブ（ＭＣＨ）２０２ならびにサウス・ブリッジおよび入出力（Ｉ／Ｏ）コントローラ・ハブ（ＩＣＨ）２０４を含むハブ・アーテキクチャを用いる。処理ユニット２０６、メイン・メモリ２０８、およびグラフィック・プロセッサ２１０が、ノース・ブリッジおよびメモリ・コントローラ・ハブ２０２に結合されている。処理ユニット２０６は、１つ以上のプロセッサを含むことができ、１つ以上の異種プロセッサ・システムを用いて実施することができる。グラフィック・プロセッサ２１０は、例えば、ＡＧＰ（accelerated graphics port）を介してＭＣＨに結合することができる。
【００５６】
図示する例において、ローカル・エリア・ネットワーク（ＬＡＮ）・アダプタ２１２が、サウス・ブリッジおよびＩ／Ｏコントローラ・ハブ２０４に結合され、オーディオ・アダプタ２１６、キーボードおよびマウス・アダプタ２２０、モデム２２２、リード・オンリ・メモリ（ＲＯＭ）２２４、ユニバーサル・シリアル・バス（ＵＳＢ）・ポートおよび他の通信ポート２３２、ならびにＰＣＩ／ＰＣＩｅデバイス２３４が、バス２３８を介してサウス・ブリッジおよびＩ／Ｏコントローラ・ハブ２０４に結合され、ハード・ディスク・ドライブ（ＨＤＤ）２３６およびＣＤ−ＲＯＭドライブ２３０が、バス２４０を介してサウス・ブリッジおよびＩ／Ｏコントローラ・ハブ２０４に結合されている。ＰＣＩ／ＰＣＩｅデバイスは、例えば、イーサネット・アダプタ、アドイン・カード、およびノートブック・コンピュータのためのＰＣカードを含むことができる。ＰＣＩはカード・バス・コントローラを用いるが、ＰＣＩｅは用いない。ＲＯＭ２２４は、例えば、フラッシュＢＩＯＳ（binary input/output system）とすれば良い。ハード・ディスク・ドライブ２２６およびＣＤ−ＲＯＭドライブ２３０は、例えば、ＩＤＥ（integrated drive electronics）またはＳＡＴＡ（serial advanced technology attachment）インタフェースを用いることができる。サウス・ブリッジおよびＩ／Ｏコントローラ・ハブ２０４に、ＳＩＯデバイス２３６を結合することができる。
【００５７】
処理ユニット２０６上では、オペレーティング・システムが動作し、図２のデータ処理システム２００内の様々なコンポーネントを調整してそれらの制御を行う。オペレーティング・システムは、Ｍｉｃｒｏｓｏｆｔ（Ｒ）Ｗｉｎｄｏｗｓ（Ｒ）ＸＰ（ＭｉｃｒｏｓｏｆｔおよびＷｉｎｄｏｗｓは、米国、他の国々、または双方におけるマイクロソフト社の商標である）等の市販のオペレーティング・システムとすれば良い。このオペレーティング・システムと組み合わせて、Ｊａｖａ（ＴＭ）プログラミング・システム等のオブジェクト指向プログラミング・システムが動作することも可能であり、データ処理システム２００上で実行するＪａｖａプログラムまたはアプリケーションからオペレーティング・システムへのコールを提供する。Ｊａｖａおよび全てのＪａｖａベースの商標は、米国、他の国々、または双方におけるサン・マイクロシステムズ社の商標である。
【００５８】
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムのための命令は、ハード・ディスク・ドライブ２２６等の記憶デバイス上に配置され、処理ユニット２０６による実行のためにメイン・メモリ２０８にロードすることができる。例示的な実施形態のプロセスは、コンピュータ実施命令を用いて処理ユニット２０６によって実行することができる。この命令は、例えばメイン・メモリ２０８、リード・オンリ・メモリ２２４等のメモリ、または１つ以上の周辺デバイスに配することができる。
【００５９】
図１および図２のハードウェアは、実施に応じて変動することがある。図１および図２に示したハードウェアに加えて、またはその代わりに、フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブ等の他の内部ハードウェアまたは周辺デバイスを用いることができる。また、例示的な実施形態のプロセスを、マルチプロセッサ・データ処理システムに適用することも可能である。
【００６０】
いくつかの例示的な実施形態においては、データ処理システム２００は、パーソナル・デジタル・アシスタント（ＰＤＡ）である。これは一般に、フラッシュ・メモリを用いて、オペレーティング・システム・ファイルまたはユーザが発生したデータあるいはその両方を記憶するための不揮発性メモリを提供するように構成される。バス・システムは、システム・バス、Ｉ／Ｏバス、およびＰＣＩバス等の１つ以上のバスによって構成することができる。むろん、バス・システムは、いずれかのタイプの通信構造またはアーキテクチャを用いて実施して、その構造またはアーキテクチャに接続した異なるコンポーネントまたはデバイス間でデータ転送が行われるようにすれば良い。通信ユニットは、モデムまたはネットワーク・アダプタ等、データを送信および受信するために用いられる１つ以上のデバイスを含むことができる。メモリは、例えばメイン・メモリ２０８、または、ノース・ブリッジおよびメモリ・コントローラ・ハブ２０２において見られるもの等のキャッシュとすれば良い。処理ユニットは、１つ以上のプロセッサまたはＣＰＵを含むことができる。図１および図２において図示する例および上述の例は、アーキテクチャに制限を加えることを意図したものではない。例えば、データ処理システム２００は、ＰＤＡの形態を取ることに加えて、タブレット・コンピュータ、ラップトップ・コンピュータ、または電話デバイスとすることも可能である。
【００６１】
伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）は、図１のネットワーク１０２等のネットワークを介してコンピューティング・デバイスを接続するために用いられる通信プロトコル・スイートである。伝送制御プロトコル／インターネット・プロトコルは、インターネット等のネットワークを介してデータを送信するための標準的なプロトコルである。
【００６２】
ここで図３に移ると、例示的な実施形態に従った開放型システム間相互接続（ＯＳＩ）基本参照モデルのブロック図が示されている。開放型システム間相互接続参照モデル３００は、ネットワーク・デバイス間の相互運用性および通信を規定するための標準プロトコル層の共通モデルである。この例においては、開放型システム間相互接続参照モデル３００は、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）スイートを含む。
【００６３】
開放型システム間相互接続通信アーキテクチャによって、ＴＣＰ／ＩＰおよび同様のプロトコルが利用される。この例では、アーキテクチャは、アプリケーション層３０２、プレゼンテーション層３０４、セッション層３０６、トランスポート層３０８、ネットワーク層３１０、データリンク層３１２、および物理層３１４を含む。各層は、様々な機能または通信タスクあるいはその両方の処理を担当する。
【００６４】
アプリケーション層３０２は、アクセスされているかまたは実行されているあるいはその両方である特定のアプリケーションの細目を処理する。遠隔ログインのためのテルネット、ＦＴＰ（ファイル転送プロトコル）、電子メールのためのＳＭＴＰ、およびＳＮＭＰ（簡易ネットワーク管理プロトコル）を含めて、ほとんど全ての実施について、多くの共通のＴＣＰ／ＩＰアプリケーションが存在する。
【００６５】
アプリケーション層３０２によって処理されるアプリケーション・ソフトウェアは、通信ポートを介してデータに反応してユーザが求める所望の機能を与えるように設計されたいかなる数のソフトウェア・アプリケーションも含むことができる。このレベルのアプリケーションは、インターネットのユーザによってアクセスすることができるデータ、ビデオ、グラフィック、写真、またはテキストあるいはそれら全てを処理するために必要なものを含むことができる。
【００６６】
プレゼンテーション層３０４は、プレゼンテーション・プロトコルおよびプレゼンテーション・サービスを含む。プレゼンテーション・サービスは、使用予定の合意に基づいた転送構文を識別するために用いられる。プレゼンテーション・プロトコルによって、ユーザは、プレゼンテーション・サービスと通信を行うことができる。
【００６７】
セッション層３０６は、セッション・プロトコルおよびセッション・サービスから成る。セッション・サービスは、ユーザにサービスを提供する。このサービスは、限定ではないが、セッション・サービス・ユーザ間の接続の確立、ユーザ間の接続の終了、セッション層トークン使用のための交渉の実行、および、送信データにおけるポイントの同期を取ってエラーまたは中断が発生した場合にセッションを回復させることを含む。セッション・プロトコルによって、ユーザは、セッション・サービスと通信を行うことができる。
【００６８】
次に、トランスポート層３０８は、ネットワーク層３１０とアプリケーション層３０２との間のインタフェースを提供し、２つのホスト・コンピュータ間のデータ転送を容易にする。トランスポート層３０８は、限定ではないが、アプリケーションから渡されたデータを下位のネットワーク層のための適切な大きさのまとまりに分割すること、受信パケットを承認すること、および、他端が送信されたパケットを承認することを確実とするためにタイムアウトを設定すること等に関与する。ＴＣＰ／ＩＰプロトコル・スイートでは、２つの異なるトランスポート・プロトコルが存在する。すなわち、伝送制御プロトコル（ＴＣＰ）およびユーザ・データグラム・プロトコル（ＵＤＰ）である。
【００６９】
伝送制御プロトコルは、ドロップアウト検出および再送信サービスを含め、信頼性サービスを提供して、データが２つのホスト間で適切に送信されることを確実とする。これに対し、ユーザ・データグラム・プロトコルは、あるホストから別のホストにデータグラムと呼ばれる比較的単純なデータ・パケットを単に送信することによって、はるかに簡単なサービスをアプリケーション層３０２に提供する。データグラムは、このデータグラム内のデータが適切に転送されることを保証するための機構を何ら設けることなく送信される。ユーザ・データグラム・プロトコルを用いる場合、アプリケーション層３０２は信頼性機能を実行しなければならない。トランスポート層のデータ・パケット情報の一例は、限定ではないが、ソース・ホストのためのポート番号または宛先ホストのためのポート番号あるいはその両方を含む。
【００７０】
ネットワーク層３１０は、インターネット層とも呼ばれることがあり、ネットワーク周辺のデータ・パケットの移動を処理する。例えば、ネットワーク層３１０は、ネットワークを介して転送される様々なデータ・パケットのルーティングを処理する。ＴＣＰ／ＩＰスイートにおけるネットワーク層３１０は、インターネット・プロトコル（ＩＰ）、インターネット制御メッセージ・プロトコル（ＩＣＭＰ）、およびインターネット・グループ管理プロトコル（ＩＧＭＰ）を含むいくつかのプロトコルから構成される。インターネット・プロトコル（ＩＰ）は、限定ではないが、インターネット・プロトコル・バージョン４（ＩＰｖ４）、インターネット・プロトコル・バージョン６（ＩＰｖ６）、または他のいずれかのインターネット・プロトコルの既知もしくは利用可能なバージョンを含むことができる。ネットワーク層のデータ・パケット情報の一例は、限定ではないが、ソース・ホストのＩＰアドレスまたは宛先ホストのＩＰアドレスあるいはその両方を識別するインターネット・プロトコル（ＩＰ）アドレスを含むことができる。
【００７１】
データリンク層３１２は、リンク層またはネットワーク・インタフェース層とも称される場合があり、通常、オペレーティング・システムにおけるデバイス・ドライバおよびコンピュータにおける対応したネットワーク・インタフェース・カードを含む。データリンク層３１２は、通例、物理層３１４と物理的にインタフェースする全てのハードウェアの細目を処理する。それらは、限定ではないが、イーサネット・ネットワーク・インタフェース・カードまたは無線インターネット・アダプタあるいはその両方を含む。データリンク層のデータ・パケット情報の一例は、メディア・アクセス制御（ＭＡＣ）アドレスを含むことができるが、これに限定されるわけではない。
【００７２】
物理層３１４は、光ケーブルまたはイーサネット・ケーブル等、用いられているネットワーク媒体を指す。換言すると、物理層３１４は、図１のクライアント１１０等のコンピューティング・デバイスを、図１のネットワーク１０２等のネットワークに接続する物理ネットワーク・ケーブルである。
【００７３】
例示的な実施形態の機構は、トランスポート層３０８またはネットワーク層３１０あるいはその両方等の層において、更に具体的に実施することができる。
【００７４】
図４は、現在用いられるポート・スキャン保護機構を示すブロック図である。ネットワーク・データ処理システム４００は、図１のネットワーク・データ処理システム１００等のネットワークに接続される２つ以上のコンピューティング・デバイスを含むデータ処理システムである。この例において、ネットワークはインターネットである。しかしながら、ネットワークは、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、イーサネット、または他のいずれかのタイプのネットワークを含むことも可能である。ネットワーク・データ処理システム４００は、悪質なホスト４０２および被害者４０４を含む。
【００７５】
悪質なホスト４０２は、図１のクライアント１１０等のコンピューティング・デバイス上のハッカーまたは他の非認証のユーザであり、被害者４０４のポート・スキャンを実行する。換言すると、悪質なホスト４０２は、被害者４０４に対して非認証のアクセスを得るか、または開いたポートを介して被害者４０４に攻撃を開始する、あるいはその両方を実行可能とするように、悪質なホスト４０２は、被害者４０４における無防備な開いたアクセス・ポイントの位置を突き止めようとしている。悪質なホスト４０２は、被害者４０４に対する攻撃を開始する際に用いる無防備な開いたアクセス・ポイントの位置を突き止めるために、被害者４０４のポート・スキャンを実行している。
【００７６】
被害者４０４は、１つ以上のアプリケーションまたはサービスあるいはその両方をホストとして処理するコンピューティング・デバイスである。悪質なホスト４０２は、図１のネットワーク１０２等のネットワークに接続されている。クライアント・コンピューティング・デバイスは、ネットワーク接続を介して所与のアプリケーションまたはサービスに関連付けられたポートに対する接続を要求することによって、被害者４０４上で利用可能なアプリケーションまたはサービスあるいはその両方にアクセスすることができる。
【００７７】
被害者４０４は、ポート・スキャン保護４０５を含む。ポート・スキャン保護４０５は、ポート・スキャンを検出し、悪質なホスト４０２のソースＩＰアドレスを阻止するための現在利用可能ないずれかのポート・スキャン保護ソフトウェアである。ポート・スキャン保護４０５が機能する一般的な方法は、１組の閉じたポートを監視することである。これらのポートは、被害者４０４によって用いられていないが、ポートに関連付けられたアプリケーションにおける無防備さのためにハッカーによって利用される恐れがあるものである。ポート・スキャン保護４０５は、正当なユーザがこの１組の閉じたポート内のポートにアクセスを試みないことを想定する。なぜなら、正当なユーザは、被害者４０４が１組の閉じたポートに関連したアプリケーションまたはサービスを提供しないことを知っているからである。１組の閉じたポート内のポートに接続しようとするのは、悪質なホスト４０２等の悪質なホストのみである。なぜなら、彼らはポートを聴取して無防備なサービスを探っているからである。
【００７８】
ポート・スキャン保護４０５が、特定の遠隔ホストから送信された同期（ＳＹＮ）データ・パケットまたはこれらのデータ・パケットのパターン等、１組の閉じたポート内のポートに対する接続を要求するデータ・パケットを検出すると、ホスト・スキャン保護４０５は、この特定の遠隔ホストからの全てのトラヒックを回避または阻止する。このように、遠隔ホストが無防備な開いたポートを検出した場合であっても、以降この遠隔ホストからの全てのネットワーク・トラヒックが阻止されるので、遠隔ホストは攻撃を開始することはできない。
【００７９】
この例においては、悪質なホスト４０２は、被害者４０４上の１つ以上の周知のポートに対する接続を要求する一連のデータ・パケットを被害者４０４に送信することによって、ポート・スキャンを実行する。データ・パケット４０６は、悪質なホスト４０２が送信した一連のデータ・パケットの１つである。
【００８０】
データ・パケット４０６は、被害者４０４上のポート「ｎ」と識別されるポートに接続する要求を含む伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）・データ・パケットである。この例では、データ・パケット４０６は、伝送制御プロトコル同期（ＴＣＰ  ＳＹＮ）メッセージであり、ポート「ｎ」に対する接続を要求する。ポート「ｎ」は、ハイパーテキスト転送プロトコル・トラヒックに関連したポート８０等、いずれかのポート番号とすることができる。
【００８１】
この例では、データ・パケット４０６は、偽のまたは誤ったソースＩＰアドレスを含む。ソースＩＰアドレスは、データ・パケットの送信者を識別するＩＰアドレスである。偽のソースＩＰアドレスは、データ・パケット４０６の実際の送信者ではなく偶発的な被害者４０８を識別するＩＰアドレスである。偶発的な被害者４０８は実際のコンピューティング・デバイスである場合があり、または偶発的な被害者４０８は実際には存在しない場合もある。換言すると、悪質なホスト４０２が用いる偽のＩＰアドレスは、実際のコンピューティング・デバイスを識別するものである必要はない。この例では、データ・パケット４０６は、悪質なホスト４０２の実ＩＰアドレスであるＩＰアドレス「Ｂ」でなく、偶発的な被害者４０８に関連したソースＩＰアドレス「Ａ」を含む。
【００８２】
データ・パケット４０６の受信に応答して、被害者４０４は、偶発的な被害者４０８にデータ・パケット４１０を送信する。データ・パケット４１０は、伝送制御プロトコル／インターネット・プロトコル・データ・パケットであり、ポート「ｘ」が開いたポートであるか閉じたポートであるかを示す。この例では、データ・パケット４１０は、同期承認（ＳＹＮ／ＡＣＫ）メッセージである。データ・パケット４１０は、偶発的な被害者４０８に関連した宛先ＩＰアドレス「Ａ」に送信されている。従って、悪質なホスト４０２は、被害者４０４から偶発的な被害者４０８への通常のメッセージ送信過程ではデータ・パケット４１０を受信しない。
【００８３】
悪質なホスト４０２がデータ・パケット４１０の意図される受信者でないので、悪質なホスト４０２はネットワークからデータ・パケット４１０をスヌープ（snoop）する（４１２）。スヌープとは、異なる宛先コンピューティング・デバイスに送信されるように意図されたデータ・パケットを捕捉または見ることを指す。この例では、悪質なホスト４０２は、パケット・スニファ（sniffer）を用いて、偶発的な被害者４０８が受信するように意図されたデータ・パケット４１０をスヌープする。パケット・スニファは、悪質なホストがデータ・パケットの意図される受信者でないことにもかかわらず、ネットワークを介して送信されるデータ・パケットを捕捉するアプリケーションである。
【００８４】
従って、悪質なホスト４０２は、ポート「ｘ」が攻撃に対して無防備であり得る開いたポートであるか否かを通知される。ポート「ｘ」が開いたポートである場合、悪質なホスト４０２は、被害者４０４に対して攻撃を開始する（４１４）。
【００８５】
被害者４０４は、現在のポート・スキャン保護ソフトウェアを有する。現在のポート・スキャン保護によって、被害者４０４は、データ・パケット４０６を、悪質なホスト４０２等のハッカーからのポート・スキャンの可能性があるものとして認識することができる。現在のポート・スキャン保護ソフトウェアによって、被害者４０４は、データ・パケット４０６等のポート・スキャンと疑われるものにおいて識別されたソースＩＰアドレスからの以降のメッセージを阻止することができる。しかしながら、データ・パケット４０６におけるソースＩＰアドレスは偽のＩＰアドレスであるので、被害者４０４は、攻撃４１４に関連した悪質なホスト４０２からのメッセージ等、悪質なホスト４０２からのメッセージを阻止することはない。このように、悪質なホスト４０２は、現在のポート・スキャン保護ソフトウェアを回避して、被害者４０４を攻撃し、おそらくはその機能を無効にするかまたは損なわせることができる。
【００８６】
従って、この例では、悪質なホスト４０２は、データ・パケット４０６等のＴＣＰ  ＳＹＮパケットを被害者４０４上の所与のポートに送信することによって、無防備なポートに対する接続を行おうとしているポート・スキャナである。悪質なホスト４０２によって発生したデータ・パケット４０６は、存在する場合もあるし存在しない場合もある偶発的な被害者の偽のソースＩＰアドレスを含む。この所与のポートを聴取しているプログラムまたはアプリケーションがある場合、被害者４０４は、データ・パケット４１０等のＴＣＰ  ＳＹＮ／ＡＣＫパケットを偶発的な被害者に送信することによって応答する。
【００８７】
悪質なホスト４０２は、ネットワークを監視し、データ・パケット４１０が通過するのを見る。悪質なホスト４０２は、所与のポートが開いたポートであり、この所与のポートに関連したアプリケーションにおける無防備さを利用するために接続可能であると判定する。悪質なホスト４０２は、各ポートに割り当てられた周知のポート番号に基づいて、所与のポートにどのアプリケーションが関連付けられているかを判定することができる。
【００８８】
被害者４０４上のポート・スキャン保護４０５は、偶発的な被害者４０８の偽のソースＩＰアドレス「Ａ」を阻止することによって、偽のパケットに応答する。悪質なホスト４０２は、被害者４０４上の所与のポートおよびこの特定のポートに関連した無防備なアプリケーション・プログラムに適切なハッキング・ツールを用いて、この特定のポートに対して自由に攻撃４１４を送信する。
【００８９】
例示的な実施形態では、現在のポート・スキャン保護ソフトウェアが、ポート・スキャン中にハッカーから受信した偽のソースＩＰアドレスを用いて偽のデータ・パケットに応答した場合、ポート・スキャン保護ソフトウェアは、真の悪質なホストの実ＩＰアドレスでなく、偶発的な被害者の偽のソースＩＰアドレスを阻止することによって応答することが認識される。偽のソースＩＰアドレスが悪質なホストによって与えられる場合、現在のポート・スキャン保護ソフトウェアは、真のソースＩＰアドレスを識別しブロックすることができない。従って、例示的な実施形態では、ポート・スキャンを検出した後できるだけ早急に実際に攻撃を開始するホストＩＰアドレスを回避する高度な（enhanced）ポート・スキャン保護ソフトウェアが必要であることが認識される。
【００９０】
このため、例示的な実施形態は、ポート・スキャン保護のためのコンピュータ実施方法、装置、およびコンピュータ使用可能プログラム・コードを提供する。一実施形態においては、プロセスは、データ・パケットを送信するために用いるプロトコルについて変更したヘッダを有する応答データ・パケットを発生して、ポート・スキャンの検出に応答して変更した応答データ・パケットを形成する。
【００９１】
以下に説明する例示的な実施形態においては、データ・パケットを送信するために用いるプロトコルについての変更ヘッダは、変更伝送制御プロトコル・ヘッダである。しかしながら、例示的な実施形態は、伝送制御プロトコルにおけるヘッダの変更に限定されない。例示的な実施形態は、ネットワーク接続を介してデータ・パケットを送信するために用いるいずれかのタイプの既知または利用可能なプロトコルにおいてヘッダを変更して、変更応答データ・パケットを形成することができる。そのプロトコルは、限定ではないが、伝送制御プロトコルまたはユーザ・データグラム・プロトコル（ＵＤＰ）を含む。
【００９２】
変更応答データ・パケットは、変更データ・パケットの受信者からの応答を引き出す。プロセスにおいて、応答データ・パケットを、ポート・スキャンに関連した第１のルーティング・アドレスに送信する。プロセスにおいて、変更応答データ・パケットに対する応答の受信に応答して、応答データ・パケットのヘッダにおいて第２のルーティング・アドレスを識別する。以下に述べる例では、第１のルーティング・アドレスは第１のインターネット・プロトコル・アドレスであり、第２のルーティング・アドレスは、第２のインターネット・プロトコル・アドレスである。インターネット・プロトコルは、限定ではないが、インターネット・プロトコル・バージョン４（ＩＰｖ４）、インターネット・プロトコル・バージョン６（ＩＰｖ６）、または他のいずれかのインターネット・プロトコルのバージョンを含むインターネット・プロトコルのいずれかのバージョンとすれば良い。更に、例示的な実施形態は、インターネット・プロトコルには限定されない。例示的な実施形態に従って、１つ以上のポートにルーティング・アドレスを提供するいずれかのタイプの既知または利用可能なプロトコルを使用可能である。
【００９３】
第２のルーティング・アドレスは、ポート・スキャン・ソースの実際のルーティング・アドレスである。そして、第２のルーティング・アドレスからの全てのネットワーク・トラヒックを阻止することで、いずれかの開いたポート上での攻撃を防ぐことができる。
【００９４】
ここで図５に移ると、例示的な実施形態に従って、偽のソースＩＰアドレスを用いたポート・スキャンを検出するためのポート・スキャン保護システムによるフローを示すブロック図が示されている。コンピュータ５００は、限定ではないが、図１におけるサーバ１０６またはクライアント１１０を含むいずれかのタイプのコンピューティング・デバイスを用いて実施することができる。
【００９５】
コンピュータ５００は、１組のアプリケーション５０２を含む。１組のアプリケーション５０２は、コンピュータ５００上で利用可能な１組の１つ以上のアプリケーションまたはサービスあるいはその両方である。アプリケーションは、コンピューティング・デバイスのリソースを用いてユーザのためのタスクまたはサービスを実行するコンピュータ・ソフトウェアである。
【００９６】
１組のアプリケーション５０２は、データ記憶デバイス５０４等のデータ記憶デバイス上に記憶することができる。データ記憶デバイス５０４は、データを記憶するためのいずれかのタイプの既知または利用可能なデバイスであり、限定ではないが、メイン・メモリ、データベース、リード・オンリ・メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、不揮発性ランダム・アクセス・メモリ（ＮＶ−ＲＡＭ）、ハード・ディスク、フラッシュ・メモリ、フロッピ・ディスク、書き換え可能コンパクト・ディスク（ＣＤ−ＲＷ）、または他のいずれかのタイプのデータ記憶デバイスを含む。この例では、データ記憶デバイス５０４は、コンピュータ５００上にまたはコンピュータ５００にローカルに配置されている。しかしながら、データ記憶デバイス５０４は、コンピュータ５００に対して遠隔配置することも可能である。
【００９７】
コンピュータ５００は、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）５０６を用いて、図１のネットワーク１０２等のネットワークに接続された他のコンピューティング・デバイスとの間でメッセージを送信および受信する。ＴＣＰ／ＩＰ５０６は、送信者と受信者との間に接続を与えるための標準プロトコル・スイートである。ＴＣＰ／ＩＰ５０６は、保証された配信を提供し、パッケージが正しい順序で受信されることを確実とすることができる。換言すると、メッセージが別のコンピューティング・デバイスからコンピュータ５００に送信されると、メッセージは順序正しく受信されない場合がある。従って、ＴＣＰ／ＩＰ５０６は、伝送制御プロトコル（ＴＣＰ）のシーケンス番号を用いて、メッセージが正しい順序でアプリケーション層に配信されることを確実とする。
【００９８】
ＴＣＰ／ＩＰ５０６は、ＴＣＰ／ＩＰ５０６によって送信される全てのメッセージにシーケンス番号を与えて、メッセージの受信者がメッセージの正しい順序を判定できるようにする。初期シーケンス番号（ＩＳＮ）は、コンピュータ５００と第２のコンピューティング・デバイスとの間の接続が確立された場合に、コンピュータ５００と第２のコンピューティング・デバイスとの間で交換される。順序正しくないシーケンス番号のメッセージであっても、その番号がある範囲内または限定内である場合は、ＴＣＰ／ＩＰ５０６は、これらのメッセージの受信を可能とする。しかしながら、シーケンス番号が予想されるシーケンス番号範囲から大きく外れすぎている場合、メッセージは無視されるか、または不良メッセージとして識別される。かかる場合、コンピュータ５００は、第２のコンピュータに、不良シーケンス番号を有するメッセージを再送信するように要求することができる。
【００９９】
ＴＣＰ／ＩＰ５０６はポート５０８およびポート５１０を含む。この例では、コンピュータ５００は２つのポートを有するものとして示す。しかしながら、コンピュータ５００は、いかなる数のポートも有することができる。
【０１００】
ポート５０８は、割り当てられたポート番号を有し、１組のアプリケーション５０２内のアプリケーションに関連付けられている。例えば、ポート５０８にハイパーテキスト転送プロトコル・トラヒックを処理するためのアプリケーションが関連付けられている場合、ポート５０８はポート番号８０が割り当てられる。この例では、ポート５０８は開いたポートである。
【０１０１】
また、ポート５１０にもポート番号が割り当てられる。この例では、ポート５１０には、ファイル転送プロトコル（ＦＴＰ）のためのポート番号２０が割り当てられる。しかしながら、この例では、ファイル転送プロトコルはコンピュータ５００上で利用可能でない。従って、ポート５００は閉じたポートである。
【０１０２】
また、コンピュータ５００は、高度ポート・スキャン保護５１２を含む。高度ポート・スキャン保護５１２は、ポート・スキャンを検出し、悪質なホスト５１６等のポート・スキャンを実行している悪質なホストまたは他のコンピューティング・デバイスに関連したＩＰアドレスを阻止するためのポート・スキャン保護ソフトウェアである。
【０１０３】
悪質なホスト５１６は、ハッカー、クラッカー、非認証のユーザ、または不法のユーザであり、ポート５０８および５１０等のコンピュータ５００に関連した１つ以上のポート上でポート・スキャンを実行している。悪質なホスト５１６は、ネットワークを介してデータ・パケットを送信および受信するためのＴＣＰ／ＩＰプロトコル・スイート５１８を含む。悪質なホスト５１６は、このネットワーク接続を介してコンピュータ５００に接続する。
【０１０４】
悪質なホスト５１６は、ポート・スキャナ５２０を含む。ポート・スキャナ５２０は、コンピュータ５００上の１組の１つ以上のポートのポート・スキャンを実行するためのいずれかのタイプの既知または利用可能なデバイスであり得る。ポート・スキャナ５２０は、完全にソフトウェアで、またはハードウェアおよびソフトウェアの組み合わせとして実施可能である。この例において、ポート・スキャナ５２０は、ポート・スキャン・データ・パケット５２２を発生する。ポート・スキャン・データ・パケット５２２は、偽のソースＩＰアドレス５２４を含む。偽のソースＩＰアドレス５２４は、悪質なホスト５１６に関連したＩＰアドレスではない。偽のソースＩＰアドレス５２４は、悪質なホスト５１６以外の実際のコンピューティング・デバイスのためのＩＰアドレスである場合があり、または、偽のソースＩＰアドレス５２４は、実際には存在しないコンピューティング・デバイスのためのＩＰアドレスである場合もある。
【０１０５】
高度ポート・スキャン保護５１２は、ソースＩＰアドレス検出５１４を含む。ソースＩＰアドレス検出５１４は、応答データ・パケット５２６を発生するためのソフトウェア・コンポーネントである。応答データ・パケット５２６は、悪質なホスト５１６上のＴＣＰ／ＩＰ５１８に応答５２８を発生させるように変更されたデータ・パケットである。換言すると、高度ポート・スキャン検出５１２がポート・スキャンを検出すると、高度ポート・スキャン保護５１２はこれに応答して、応答データ・パケット５２６を悪質なホスト５１６に送信し、これによって悪質なホスト５１６は応答５２８を送信する。応答５２８は、応答５２８の伝送制御プロトコル・ヘッダに、リセット（ＲＳＴ）フラグまたは終了承認（ＦＩＮ／ＡＣＫ）フラグを含むことができる。この例では、応答５２８は、応答５２８の伝送制御プロトコル・ヘッダのネットワーク層に、悪質なホストの実ＩＰアドレス５３０を含む。
【０１０６】
コンピュータ５００は、応答５２８から悪質なホストの実ＩＰアドレス５３０を識別することができる。次いで、高度ポート・スキャン保護５１２は、悪質なホスト５１６の実ＩＰアドレス５３０を回避または阻止して、その後の悪質なホスト５１６からのいかなる攻撃も防ぐ。
【０１０７】
次に、図６は、例示的な実施形態に従ったポート・スキャン保護機構を示すブロック図である。ネットワーク・データ処理システム６００は、図１のネットワーク・データ処理システム１００等のネットワークを介して接続された多数のコンピューティング・デバイスを含むデータ処理システムである。この例では、ネットワークはインターネットである。しかしながら、ネットワークは、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、イーサネット、または他のいずれかのタイプのネットワークを含むことも可能である。ネットワーク・データ処理システム６００は、悪質なホスト６０２および被害者６０４を含む。
【０１０８】
悪質なホスト６０２は、図１のクライアント１１０または図５の悪質なホスト５１６等のコンピューティング・デバイス上のハッカーまたは他の非認証のユーザである。悪質なホスト６０２は、無防備な開いたアクセス・ポイントの位置を突き止めようとして被害者６０４上で非認証のポート・スキャンを実行し、被害者６０４に非認証のアクセスを得るか、または開いたポートを介して被害者６０４に攻撃を開始するか、またはその両方を実行可能としようとしている。
【０１０９】
被害者６０４は、図１のサーバ１０６または図５のコンピュータ５００等の１つ以上のアプリケーションまたはサービスあるいはその両方をホストとして処理するコンピューティング・デバイスである。クライアント・コンピューティング・デバイスは、ネットワーク接続を介して所与のアプリケーションまたはサービスに関連したポートに対する接続を要求することによって、被害者６０４上で利用可能なアプリケーションまたはサービスあるいはその両方にアクセスすることができる。
【０１１０】
被害者６０４は、図５の高度ポート・スキャン保護５１２等、ソースＩＰアドレス検出ソフトウェアを含む高度ポート・スキャン保護６０５を含む。高度ポート・スキャン保護６０５は、悪質なホスト６０２が偽のソースＩＰアドレスを用いてデータ・パケット６０６を送信することでポート・スキャンを開始した場合に悪質なホスト６０２のＩＰアドレスを識別し、悪質なホスト６０２が用いる偽のソースＩＰアドレスを阻止するのでなく悪質なホスト６０２のＩＰアドレスを阻止する際に用いられるソフトウェアである。
【０１１１】
悪質なホスト６０２は、被害者６０４上の１つ以上の周知のポートに対する接続を要求する一連のデータ・パケットを被害者６０４に送信することによって、ポート・スキャンを実行する。データ・パケット６０６は、図５のポート・スキャン・データ・パケット５２２等、悪質なホスト６０２によって被害者６０４上のポートに送信された一連のデータ・パケットの１つである。
【０１１２】
データ・パケット６０６は、伝送制御プロトコル／インターネット・プロトコル・データ・パケットであり、被害者６０４上のポート「ｎ」として識別されたポートに対する接続を要求する。この例では、データ・パケット６０６は、転送制御プロトコル同期（ＴＣＰ  ＳＹＮ）データ・パケットである。ポート「ｎ」は、いずれかのポート番号とすることができ、ハイパーテキスト転送プロトコル・トラヒックに関連したポート８０等である。
【０１１３】
データ・パケット６０６は、偶発的な被害者の偽のまたは誤ったソースＩＰを含む。偶発的な被害者は、実際に存在する場合もあるし存在しない場合もある。この例では、データ・パケット６０６は、悪質なホスト６０２の実ＩＰアドレスであるＩＰアドレス「Ｂ」でなく、偶発的な被害者に関連したソースＩＰアドレス「Ａ」を含む。
【０１１４】
データ・パケット６０６の受信に応答して、高度ポート・スキャン保護６０５は、データ・パケット６０８を発生する。データ・パケット６０８は、図５の応答データ・パケット５２６等の応答データ・パケットである。データ・パケット６０８は、悪質なホスト６０２がネットワーク外からデータ・パケット６０８をスヌープした場合、データ・パケットが悪質なホスト６０２からの応答を引き出すように生成される。データ・パケット６０８の伝送制御プロトコル（ＴＣＰ）・ヘッダのヘッダを変更することで、悪質なホスト６０２がネットワークからデータ・パケット６０８をスヌープした場合に悪質なホストのＴＣＰ／ＩＰ層をだましてデータ・パケット６０８に応答させる。
【０１１５】
例えば、高度ポート・スキャン保護６０５がデータ・パケット６０８に不良シーケンス番号を与えた場合、悪質なホスト６０２のＴＣＰ／ＩＰ層は、被害者６０４に再接続しようとして同期（ＳＹＮ）フラグを送信することで応答する。不良シーケンス番号は、予想されるまたは許容可能なシーケンス番号範囲の外にあるシーケンス番号である。
【０１１６】
終了（ＦＩＮ）フラグは、セッションの終了を示す。終了フラグを含むデータ・パケットが受信されると、ＴＣＰ／ＩＰは自動的に応答で終了承認を送信する。このため、ポート・スキャン保護６０５がデータ・パケット６０８に終了フラグを与えた場合、悪質なホスト６０２のＴＣＰ／ＩＰ層は、被害者６０４に対する応答メッセージにおいて自動的に終了承認（ＦＩＮ／ＡＣＫ）フラグを送信する。
【０１１７】
従って、この例では、高度ポート・スキャン保護６０５は、偽のソースＩＰアドレスに関連した偶発的な被害者に対してデータ・パケット６０８を送信する。データ・パケット６０８は、伝送制御プロトコル／インターネット・プロトコル・データ・パケットであり、ポート「ｎ」が開いたポートであるか閉じたポートであるかを示す。この例では、データ・パケット６０８は、同期承認（ＳＹＮ／ＡＣＫ）フラグおよび不良シーケンス番号を含む。被害者６０４は、データ・パケット６０８を、偶発的な被害者に関連した偽のＩＰアドレス「Ａ」に送信する。
【０１１８】
データ・パケット６０８のヘッダにおけるデータリンク層は、データ・パケット６０８の宛先のためのメディア・アクセス制御（ＭＡＣ）アドレスを示す。メディア・アクセス制御アドレスは、宛先コンピューティング・デバイスの特定のネットワーク・アダプタを指定する。この場合、メディア・アクセス制御アドレスは、偶発的な被害者のネットワーク・アダプタを指定する。
【０１１９】
通常、悪質なホスト６０２がスヌープ・モードで動作していない場合、悪質なホスト６０２はデータ・パケット６０８を受信しない。なぜなら、データリンク層のメディア・アクセス制御アドレスが、悪質なホスト６０２に関連したネットワーク・アダプタと一致しないからである。しかしながら、この例では、悪質なホスト６０２はスヌープ・モードである。従って、悪質なホスト６０２に関連したイーサネット・ドライバは、データ・パケット６０８のヘッダ内のメディア・アクセス制御アドレスを無視し、データ・パケット６０８を、悪質なホスト６０２に関連したＴＣＰ／ＩＰ層に渡す。
【０１２０】
悪質なホスト６０２は、ネットワークからデータ・パケット６０８をスヌープする。この例では、悪質なホスト６０２は、パケット・スニファを用いてネットワークからデータ・パケット６０８をスヌープする。データ・パケット６０８における不良シーケンス番号の検出に応答して、悪質なホスト６０２のＴＣＰ／ＩＰ層は、被害者６０４に再接続しようとして、データ・パケット６１０の応答を自動的に発生して被害者６０４に送信する。データ・パケット６１０は、図５の応答５２８等の応答データ・パケットである。
【０１２１】
データ・パケット６１０は、偽のＩＰアドレス「Ａ」でなく悪質なホスト６０２の実ソースＩＰアドレス「Ｂ」を含む。高度ポート・スキャン保護６０５は、実ソースＩＰアドレス「Ｂ」が、ネットワークを介して更にメッセージを被害者６０４に送信することを阻止する。このように、悪質なホスト６０２は、被害者６０４上の無防備なポートに対するいかなる攻撃の開始も阻止される。
【０１２２】
図７は、例示的な実施形態に従ったポート・スキャン中に送信されるポート・スキャン・データの例である。ポート・スキャン・データ・パケット７０２は、図５のポート・スキャン・データ・パケット５２２または図６のデータ・パケット６０６あるいはその両方等、悪質なホストによって発生する誤ったソースＩＰアドレスを有するデータ・パケットである。この例では、ポート・スキャン・データ・パケットは同期（ＳＹＮ）データ・パケットである。
【０１２３】
応答データ・パケット７０３は、図５の応答データ・パケット５２６または図６のデータ・パケット６０８あるいはその両方等、ポート・スキャン・データ・パケット７０２の受信者によって発生したデータ・パケットである。受信者は、悪質なホストのねらわれた被害者である。応答データ・パケット７０３は、被害者によって発生され、誤ったＩＰアドレスに送信される。この例では、応答データ・パケットは、図６の被害者６０４等、悪質なホストのねらわれた被害者によって発生した同期承認（ＳＹＮ／ＡＣＫ）データ・パケットである。
【０１２４】
ポート・スキャン・データ・パケット７０２は、セクション７０４におけるデータリンク層のための情報を含む。悪質なホストからねらわれた被害者へのポート・スキャン・データ・パケットの送信ルートは、ルーティング・テーブルに基づいて、イーサネット（ＥＴＨ）メディア・アクセス制御（ＭＡＣ）アドレスを割り当てる。
【０１２５】
また、ポート・スキャン・データ・パケット７０２は、ネットワーク層における情報も含む。ネットワーク層の情報は、ライン７０５に偽のソースＩＰアドレス「Ａ」を含む。偽のソースＩＰアドレス「Ａ」は、ポート・スキャン・データ・パケット７０２を発生した悪質なホストの実ＩＰアドレスでなく、存在するかまたは存在しない偶発的な被害者のＩＰアドレスである。また、データ・パケットにおけるネットワーク層の情報は、被害者のコンピューティング・デバイスを識別する宛先ＩＰアドレス７０６を含む。
【０１２６】
ポート・スキャン・データ・パケット７０２のトランスポート層の情報は、ライン７０８に示すように、悪質なハッカーのソース・ポート番号および被害者のホスト・コンピューティング・デバイスの宛先ポート番号を識別する。ライン７１０は、ポート・スキャン・パケットのためのシーケンス番号である。ライン７１２は、被害者のコンピューティング・デバイスとの接続を要求する同期（ＳＹＮ）データ・パケットとしてデータ・パケットを識別する。
【０１２７】
応答データ・パケット７０３は、被害者７１４のソースＩＰアドレスおよび宛先ＩＰアドレス７１６を含む。宛先ＩＰアドレスは、悪質なハッカーが用いる偽のＩＰアドレスである。
【０１２８】
ライン７１４に示すように、トランスポート層の情報は、応答データ・パケットを発生する被害者のコンピューティング・デバイスのソース・ポート番号を含む。ライン７１６は、宛先ＩＰアドレスを含む。この例では、宛先ＩＰアドレスは、偶発的な被害者の偽のＩＰアドレスである。偶発的な被害者は、実際に存在する場合もあるし存在しない場合もある。
【０１２９】
ライン７２２は、不良シーケンス番号を与えることができる。不良シーケンス番号は、予想されるまたは許容可能なシーケンス番号範囲の外にあるシーケンス番号である。
【０１３０】
ライン７２２は、同期／承認（ＳＹＮ／ＡＣＫ）データ・パケットである。別の例では、ライン７２２は、応答データ・パケット７０３がリセット（ＲＳＴ）または終了（ＦＩＮ）データ・パケットであることを示すことができる。
【０１３１】
換言すると、現在利用可能なポート・スキャン保護ソフトウェアを用いて、ライン７０８において識別可能であるように被害者がポート２３上でアクティブなサービスを有する場合に、被害者は、ＳＹＮ／ＡＣＫ応答データ・パケットを発生することによって応答する。これは、被害者のポート２３と悪質なホストのポート１４９４との間のセッションの終了となる。そして、悪質なホストは、被害者がポート２３上でテルネット・サービスを実行中であることを知る。次いで、悪質なホストは、ポート２３上にテルネット攻撃を開始することができる。現在のポート・スキャン保護ソフトウェアは、ポート・スキャン・パケットのライン７０５において識別した偽のＩＰアドレスを阻止するが、悪質なホストの実ＩＰアドレスを阻止することはできない。従って、悪質なホストはポート２３を自由に攻撃する。
【０１３２】
例示的な実施形態によれば、被害者がポート・スキャン・データ・パケット７０２を受信すると、被害者上の高度ポート・スキャン保護ソフトウェアは、実際の悪質なホストに応答を行わせるように対応する。例えば、高度ポート・スキャン保護ソフトウェアは、不良シーケンス番号、リセット（ＲＳＴ）メッセージ、または終了（ＦＩＮ）メッセージを含む応答データ・パケット７０３を発生する。偶発的なホストはポート・スキャン・データ・パケット７０２を送信しなかったので、偶発的なホストは応答データ・パケット７０３に応答しない。その代わり、偶発的なホストが実際に存在する場合、偶発的なホストは単に応答データ・パケット７０３を無視する。偶発的なホストが存在しない場合は、偶発的なホストは応答データ・パケット７０３に応答することはできない。従って、悪質なホストが応答データ・パケット７０３に応答すると予想される。このように、被害者は、ポート・スキャンを用いて攻撃に対して無防備であり得る開いたポートを識別する悪質なホストの実ＩＰアドレスを識別して阻止することができる。
【０１３３】
ここで図８を参照すると、例示的な実施形態に従った、偽のソースＩＰアドレスを用いたポート・スキャンを検出するためのプロセスを示すフローチャートが示されている。図８に示す例においては、プロセスは、図５の高度ポート・スキャン保護５１２等のポート・スキャン保護のためのソフトウェア・コンポーネントによって実行される。
【０１３４】
プロセスは、ポート・スキャンを検出したか否かについて判定することで開始する（ステップ８０２）。ポート・スキャンが検出されない場合、プロセスは、ポート・スキャンを検出するまで、ステップ８０２に戻る。悪質なホストからポート・スキャン・データ・パケットまたは一連のデータ・パケットが受信された場合、ポート・スキャンを検出することができる。
【０１３５】
ステップ８０２においてポート・スキャンを検出すると、プロセスは、変更応答データ・パケットを発生する（ステップ８０４）。プロセスは、変更応答データ・パケットを、ポート・スキャン・データ・パケットにおいて識別されたソースＩＰアドレスに送信する（ステップ８０６）。この例では、ソースＩＰアドレスは、ポート・スキャンを実行するホストの正しいＩＰアドレスでない偽のソースＩＰアドレスである。
【０１３６】
次いで、プロセスは、応答に対する返答を受信したか否かについて判定を行う（ステップ８０８）。返答が受信されない場合、プロセスは、返答を受信するまでステップ８０８に戻る。ステップ８０８において返答が受信されると、プロセスは、この返答の伝送制御プロトコル・ヘッダにおいて識別される第２のＩＰアドレスからの全てのネットワーク・トラヒックを阻止して（ステップ８１０）、ポート・スキャンのソースから開始される恐れがあるあらゆる攻撃を防止し、その後、プロセスは終了する。
【０１３７】
図９は、例示的な実施形態に従った、応答データ・パケットを変更するためのプロセスを示すフローチャートである。図９におけるこの例では、プロセスは、図５の高度ポート・スキャン保護５１２等のポート・スキャン保護のためのソフトウェア・コンポーネントによって実施することができる。
【０１３８】
プロセスは、応答データ・パケットを発生することで開始する（ステップ９０２）。プロセスは、応答データ・パケットの伝送制御プロトコル・ヘッダに不良シーケンス番号を追加することによって応答データ・パケットを変更するか否かについて判定を行う（ステップ９０４）。不良シーケンス番号を追加することで応答データ・パケットを変更するという判定が行われると、プロセスは、応答データ・パケットのヘッダに不良シーケンス番号を追加して（ステップ９０６）、この変更応答データ・パケットを偶発的な被害者に送信し（ステップ９０８）、その後、プロセスは終了する。
【０１３９】
ステップ９０４に戻ると、不良シーケンス番号を追加しないという判定が行われた場合、プロセスは、応答データ・パケットにリセット・フラグまたは終了フラグを追加するか否かについて判定を行う（ステップ９１０）。プロセスがフラグを追加しないという判定を行った場合、プロセスはその後、終了する。
【０１４０】
ステップ９１０に戻ると、プロセスが、リセット・フラグまたは終了フラグを追加することによって応答データ・パケットを変更するという判定を行った場合、プロセスは、応答データ・パケットにリセット・フラグまたは終了フラグを追加する（ステップ９１２）。次いで、プロセスは、この変更応答データ・パケットを偶発的な被害者に送信し（ステップ９０８）、その後、プロセスは終了する。
【０１４１】
従って、例示的な実施形態は、ポート・スキャン保護のためのコンピュータ実施の方法、装置、およびコンピュータ使用可能プログラム・コードを提供する。一実施形態においては、このプロセスは、ポート・スキャンの検出に応答して、変更伝送制御プロトコル・ヘッダを有する応答データ・パケットを発生し、変更応答データ・パケットを形成する。変更応答データ・パケットは、変更データ・パケットの受信者からの応答を引き出す。このプロセスは、応答データ・パケットを、ポート・スキャンに関連した第１のインターネット・プロトコル・アドレスに送信する。
【０１４２】
このプロセスは、変更応答データ・パケットへの応答の受信に対する応答データ・パケットのヘッダにおいて第２のインターネット・プロトコル・アドレスを識別する。第２のインターネット・プロトコル・アドレスは、ポート・スキャンのソースの実インターネット・プロトコル・アドレスである。次いで、第２のインターネット・プロトコル・アドレスからの全てのンゼットワーク・トラヒックを阻止して、いかなる開いたポート上の攻撃も防止することができる。
【０１４３】
変更伝送制御プロトコル・ヘッダは、不良シーケンス番号を含むことができる。不良シーケンス番号は、許容可能なシーケンス番号範囲から外れたシーケンス番号である。別の実施形態においては、変更伝送制御プロトコル・ヘッダは、リセット・フラグまたは終了フラグを含むことができる。別の実施形態では、変更伝送制御プロトコルは、変更応答データ・パケットを発生するために用いられるチェックサムを変更することによって発生する。
【０１４４】
このようにして、ハッカーによる、誤ったＩＰアドレスを用いた、開いた潜在的に無防備なポートの攻撃を防ぐことができる。
【０１４５】
図面におけるフローチャートおよびブロック図は、様々な実施形態によるシステム、方法、およびコンピュータ・プログラムの、可能な実施のアーキテクチャ、機能、および動作を示す。この点において、フローチャートまたはブロック図における各ステップは、指定された論理機能（複数の機能）を実施するための１つ以上の実行可能命令を含むコードのモジュール、セグメント、または部分を表すことができる。また、いくつかの代替的な実施では、ステップにおいて明記した機能は、図面において明記した順序どおりでなく行われる場合があることに留意すべきである。例えば、関与する機能に応じて、連続して示した２つのステップは実際にはほぼ同時に実行される場合があり、または、ステップは時に逆の順序で実行される場合がある。
【０１４６】
本発明は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態、またはハードウェアおよびソフトウェアの双方の要素を含む実施形態の形態を取ることができる。好適な実施形態においては、本発明は、限定ではないが、ファームウェア、ソフトウェア、マイクロコード等を含むソフトウェアにおいて実施される。
【０１４７】
更に、本発明は、コンピュータまたはいずれかの命令実行システムによってまたはこれと共に用いるためのプログラム・コードを提供するコンピュータ使用可能またはコンピュータ読み取り可能媒体からアクセス可能なコンピュータ・プログラムの形態を取ることも可能である。この記載の目的のために、コンピュータ使用可能またはコンピュータ読み取り可能媒体は、命令実行システム、装置、またはデバイスによってまたはこれと共に用いるためのプログラムを含有、記憶、伝達、伝播、または転送することができるいずれかの有形の装置とすることができる。
【０１４８】
この媒体は、電子、磁気、光学、電磁気、赤外線、または半導体システム（または装置またはデバイス）、または伝播媒体とすることができる。コンピュータ読み取り可能媒体の例は、半導体または固体メモリ、磁気テープ、着脱可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、剛性（rigid）磁気ディスク、および光ディスクを含む。光ディスクの現在の例は、コンパクト・ディスク−リード・オンリ・メモリ（ＲＯＭ）、コンパクト・ディスク−読み取り／書き込み（ＣＤ−Ｒ／Ｗ）、およびＤＶＤを含む。
【０１４９】
プログラム・コードの記憶または実行あるいはその両方を行うために適切なデータ処理システムは、システム・バスを介してメモリ要素に直接または間接に結合された少なくとも１つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実行中に用いられるローカル・メモリ、バルク記憶装置、およびキャッシュ・メモリを含むことができる。キャッシュ・メモリは、実行中にバルク記憶装置からコードを検索しなければならない回数を減らすために、少なくとも一部のプログラム・コードの一時記憶を提供する。
【０１５０】
入出力またはＩ／Ｏデバイス（限定ではないが、キーボード、ディスプレイ、ポインティング・デバイス等を含む）を、直接にまたはＩ／Ｏコントローラを介在させて、システムに結合することができる。
【０１５１】
また、システムにネットワーク・アダプタを結合して、データ処理システムが私設または公設のネットワークを介して他のデータ処理システムまたは遠隔プリンタまたは記憶デバイスに結合できるようにすることも可能である。現在利用可能なタイプのネットワーク・アダプタのいくつかの例として、モデム、ケーブル・モデム、およびイーサネット・カードが挙げられる。
【０１５２】
本発明の説明は、例示および記述のためのものであり、網羅的（exhaustive）であることも開示する形態に本発明を限定することも意図していない。当業者には、多くの変更および変形が明らかであろう。実施形態は、本発明の原理、実際の適用を最良に説明するために、更に、考えられる特定の用途のため適切に様々な変形を用いて様々な実施形態に関して当業者が本発明を理解することができるように、選択して記載したものである。
【図１】
2010527527.tif 000003
【図２】
2010527527.tif 000004
【図３】
2010527527.tif 000005
【図４】
2010527527.tif 000006
【図５】
2010527527.tif 000007
【図６】
2010527527.tif 000008
【図７】
2010527527.tif 000009
【図８】
2010527527.tif 000010
【図９】
2010527527.tif 000011
【国際調査報告】
2010527527.tif 000012
2010527527.tif 000013