(57)【要約】【課題】ＤｏＳ攻撃（Denial of Service）を従来よりも効果的に予防する。【解決手段】  複数台の情報処理装置２がそれぞれに特定のプログラムを使用して相互に通信を行うことができるように構成されてなる仮想ネットワーク１におけるポート番号管理方法であって、いずれか１台の情報処理装置２がＤｏＳ攻撃（Denial of Service）を受けた場合に、各情報処理装置２は、自らが使用するその特定のプログラムに対応するポート番号を変更する。【選択図】図１
2008048198.tif 000002
【特許請求の範囲】
【請求項１】
複数台の情報処理装置がそれぞれに特定のプログラムを使用して相互に通信を行うことができるように構成されてなるネットワークにおけるポート番号管理方法であって、
前記ネットワークのいずれかの情報処理装置がＤｏＳ攻撃を受けた場合に、前記ネットワークの各情報処理装置は、当該情報処理装置自身が使用する前記特定のプログラムに対応するポート番号である対応ポート番号を変更する、
ことを特徴とするポート番号管理方法。
【請求項２】
前記ネットワークの各情報処理装置に、前記対応ポート番号を変更する規則を示す規則情報を共通に記憶させておき、
前記ネットワークの各情報処理装置は、当該情報処理装置自身の前記対応ポート番号を前記規則情報に基づいて変更する、
請求項１記載のポート番号管理方法。
【請求項３】
前記ネットワークのいずれかの情報処理装置がＤｏＳ攻撃を受けた場合に、前記ネットワークの他のいずれか１台の情報処理装置は、前記対応ポート番号をどのポート番号に変更するのかを決定し、決定したポート番号を前記ネットワークの他の情報処理装置に通知し、かつ、当該情報処理装置自身の前記対応ポート番号を当該決定したポート番号に変更し、
決定したポート番号が通知された前記ネットワークの各情報処理装置は、当該情報処理装置自身の前記対応ポート番号を当該決定したポート番号に変更する、
請求項１記載のポート番号管理方法。
【請求項４】
前記ネットワークのいずれかの情報処理装置がＤｏＳ攻撃を受けた場合に、当該情報処理装置は、前記対応ポート番号をどのポート番号に変更するのかを決定し、決定したポート番号を前記ネットワークの他の情報処理装置に通知し、
決定したポート番号が通知された前記ネットワークの各情報処理装置は、当該決定したポート番号に当該情報処理装置自身の前記対応ポート番号を変更する、
請求項１記載のポート番号管理方法。
【請求項５】
特定のプログラムを使用することによってネットワークに参加する情報処理装置であって、
前記ネットワークに参加する他の情報処理装置がＤｏＳ攻撃を受けていることを検知するＤｏＳ攻撃検知手段と、
前記他の情報処理装置がＤｏＳ攻撃を受けていることを前記ＤｏＳ攻撃検知手段が検知した場合に、当該情報処理装置自身の前記特定のプログラムに対応するポート番号である対応ポート番号を変更する、対応ポート番号変更手段と、
を有することを特徴とする情報処理装置。
【請求項６】
前記対応ポート番号を変更する規則を示す規則情報を記憶する規則情報記憶手段、を有し、
前記対応ポート番号変更手段は、前記規則情報に基づいて前記対応ポート番号を変更する、
請求項５記載の情報処理装置。
【請求項７】
前記ＤｏＳ攻撃検知手段は、前記他の情報処理装置に対して所定の信号を送信し当該所定の信号に対する応答が所定の時間内にない場合に、当該他の情報処理装置がＤｏＳ攻撃を受けていると検知する、
請求項５または請求項６記載の情報処理装置。
【請求項８】
特定のプログラムを使用することによってネットワークに参加するコンピュータを管理するための管理用プログラムであって、
前記コンピュータに、
前記ネットワークに参加する他のコンピュータがＤｏＳ攻撃を受けていることを検知する処理を実行させ、
前記他のコンピュータがＤｏＳ攻撃を受けていることを検知した場合に、当該コンピュータ自身の前記特定のプログラムに対応するポート番号である対応ポート番号を変更する処理を実行させる、
ことを特徴とする管理用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＴＣＰ／ＩＰなどのプロトコルによる通信の際のポート番号の管理方法およびそのプロトコルが適用された情報処理装置に関する。
【背景技術】
【０００２】
近年、ＤｏＳ（Denial of Service）攻撃による被害が問題視されている。ＤｏＳ攻撃は、一般的に、アプリケーションのバグまたはセキュリティホールを標的に行う攻撃と、単純に大量のパケットを送り付けてコンピュータに過剰な負荷を掛ける攻撃との、２種類に分類される。
【０００３】
ＤｏＳ攻撃を防止する方法として、特許文献１、２に記載されるような方法が提案されている。
【０００４】
特許文献１に記載される方法によると、ファイアウォールにポート監視処理部とフィルタリング処理部とを設けておく。ポート監視処理部には、アクセス許可ポート番号と、アクセス許可ポート番号に対するアクセス状況と、当該アクセス許可ポート番号を用いて通信を行うシステム対象であるクライアントおよびサーバの識別番号と、が格納されたポート管理テーブルを設けておく。ポート監視処理部は、アクセス許可しているポート番号のアクセス状況を監視して攻撃があるかを判定する。フィルタリング処理部は、ポート監視処理部が攻撃があったと判定した場合に、アクセス制御部がアクセス許可しているポート番号を切り替えるとともに、切り替えたポート番号をクライアントおよびサーバに通知する。
【０００５】
特許文献２に記載される方法によると、ファイアウォールは、ＤｏＳ攻撃を検出すると、ＤｏＳ攻撃を遮断し、攻撃があったことを示すログを出力する。そして、ＤｏＳ攻撃の送信元のＩＰアドレスを特定する。そして、ルータに、攻撃遮断のためのフィルタリングコマンドを生成して、ルータに送る。ルータは、ファイアウォールから送られてきたコマンドにより、指定されたＩＰアドレスから送信されてくるパケットをフィルタリングにより破棄する。
【特許文献１】特開２００４−１９２０４４号公報
【特許文献２】特開２００５−１９７８２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１、２に記載する方法では、ネットワーク内のいずれかの情報処理装置が現在受けているＤｏＳ攻撃を遮断することはできるが、ネットワーク内の他の情報処理装置が今後受けるであろうと予想されるＤｏＳ攻撃を予防することはできない。
【０００７】
本発明は、このような問題点に鑑み、ＤｏＳ攻撃を従来よりも効果的に予防できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るポート番号管理方法は、複数台の情報処理装置がそれぞれに特定のプログラムを使用して相互に通信を行うことができるように構成されてなるネットワークにおけるポート番号管理方法であって、前記ネットワークのいずれかの情報処理装置がＤｏＳ攻撃を受けた場合に、前記ネットワークの各情報処理装置は、当該情報処理装置自身が使用する前記特定のプログラムに対応するポート番号である対応ポート番号を変更する、ことを特徴とする。
【０００９】
好ましくは、前記ネットワークの各情報処理装置に、前記対応ポート番号を変更する規則を示す規則情報を共通に記憶させておき、前記ネットワークの各情報処理装置は、当該情報処理装置自身の前記対応ポート番号を前記規則情報に基づいて変更する。
【００１０】
または、前記ネットワークのいずれかの情報処理装置がＤｏＳ攻撃を受けた場合に、前記ネットワークの他のいずれか１台の情報処理装置は、前記対応ポート番号をどのポート番号に変更するのかを決定し、決定したポート番号を前記ネットワークの他の情報処理装置に通知し、かつ、当該情報処理装置自身の前記対応ポート番号を当該決定したポート番号に変更し、決定したポート番号が通知された前記ネットワークの各情報処理装置は、当該情報処理装置自身の前記対応ポート番号を当該決定したポート番号に変更する。
【００１１】
または、前記ネットワークのいずれかの情報処理装置がＤｏＳ攻撃を受けた場合に、当該情報処理装置は、前記対応ポート番号をどのポート番号に変更するのかを決定し、決定したポート番号を前記ネットワークの他の情報処理装置に通知し、決定したポート番号が通知された前記ネットワークの各情報処理装置は、当該決定したポート番号に当該情報処理装置自身の前記対応ポート番号を変更する。
【００１２】
本発明に係る情報処理装置は、特定のプログラムを使用することによってネットワークに参加する情報処理装置であって、前記ネットワークに参加する他の情報処理装置がＤｏＳ攻撃を受けていることを検知するＤｏＳ攻撃検知手段と、前記他の情報処理装置がＤｏＳ攻撃を受けていることを前記ＤｏＳ攻撃検知手段が検知した場合に、当該情報処理装置自身の前記特定のプログラムに対応するポート番号である対応ポート番号を変更する、対応ポート番号変更手段と、を有することを特徴とする。
【発明の効果】
【００１３】
本発明によると、ＤｏＳ攻撃を従来よりも効果的に予防できるようにすることを目的とする。
【発明を実施するための最良の形態】
【００１４】
図１は仮想ネットワーク１の全体的な構成の例を示す図、図２は情報処理装置２のハードウェア構成の例を示す図、図３は情報処理装置２にインストールされているソフトウェアの構成の例を示す図、図４は攻撃対策モジュール２Ｐ２によって実現される機能的構成の例を示す図である。
【００１５】
仮想ネットワーク１は、図１に示すように、複数台の情報処理装置２および通信回線３などによって構成される。
【００１６】
情報処理装置２は、パーソナルコンピュータ、サーバ機、または複合機などの情報処理装置である。複合機は、コピー、ネットワークプリンティング、スキャナ、およびファックスなどの様々な機能を備えた装置であって、ＭＦＰ（Multi Function Peripherals）と呼ばれることもある。以下、それぞれの情報処理装置２を「情報処理装置２１」、「情報処理装置２２」、「情報処理装置２３」、…と区別して記載することがある。
【００１７】
これらの情報処理装置２同士は、通信回線３を介して互いに接続可能である。通信回線３として、ＬＡＮ回線、インターネット、公衆回線、または専用線などが用いられる。プロトコルとして、ＴＣＰ／ＩＰが用いられる。各情報処理装置２には、ユニークなＩＰアドレスが与えられている。
【００１８】
また、情報処理装置２は、仮想ネットワーク１を構成する装置以外の装置とも接続可能である。例えば、インターネット上のＷｅｂサーバまたは電子メールサーバなどの装置とも接続可能である。
【００１９】
情報処理装置２は、図２に示すように構成される。すなわち、情報処理装置２がパーソナルコンピュータまたはサーバ機である場合は、図２（ａ）に示すように、ＣＰＵ２Ａａ、ＲＡＭ２Ａｂ、ＲＯＭ２Ａｃ、ハードディスク２Ａｄ、入出力インタフェース２Ａｅ、通信インタフェース２Ａｆ、画像インタフェース２Ａｇ、その他種々の回路などによって構成される。情報処理装置２がＭＦＰである場合は、図２（ｂ）に示すように、ＣＰＵ２Ｂａ、ＲＡＭ２Ｂｂ、ＲＯＭ２Ｂｃ、ハードディスク２Ｂｄ、タッチパネル２Ｂｅ、印刷ユニット２Ｂｆ、スキャナユニット２Ｂｇ、通信インタフェース２Ｂｈ、モデム２Ｂｉ、その他種々の回路などによって構成される。
【００２０】
図２（ａ）において、通信インタフェース２Ａｆは、ＮＩＣ（Network Interface Card）であって、ツイストペアケーブルを介してハブまたはルータなどのいずれかのポートに繋がれている。画像インタフェース２Ａｇは、モニタと繋がれており、画面を表示するための映像信号をモニタに送出する。
【００２１】
入出力インタフェース２Ａｅは、キーボードもしくはマウスなどの入力装置またはフロッピディスクドライブもしくはＣＤ−ＲＯＭドライブなどの外部記憶装置などと繋がれている。そして、ユーザが入力装置に対して行った操作の内容を示す信号を入力装置から入力する。または、フロッピディスクまたはＣＤ−ＲＯＭなどの記録媒体に記録されているデータを外部記憶装置に読み取らせ、これを入力する。または、記録媒体に書き込むためのデータを外部記憶装置に出力する。
【００２２】
図２（ｂ）において、タッチパネル２Ｂｅは、ユーザに対してメッセージまたは指示を与えるための画面、ユーザが所望する処理の種類および処理条件を入力するための画面、およびＣＰＵ２Ｂａで実行された処理の結果を示す画面などが表示される。また、ユーザは、タッチパネル２Ｂｅの所定の位置に触れることによって情報処理装置２に対して指令を与えたり処理条件の指定を行ったりすることができる。このように、タッチパネル２Ｂｅは、ＭＦＰである情報処理装置２を操作するユーザのユーザインタフェースの役割を果たしている。
【００２３】
スキャナユニット２Ｂｇは、用紙に記されている文章、数式、記号、写真、図表、またはイラストなどの書類の画像を光学的に読み取って画像データを生成する。
【００２４】
印刷ユニット２Ｂｆは、スキャナユニット２Ｂｇで得られた画像データまたは他の情報処理装置２などから送信されてきた印刷ジョブに基づいて画像を形成し、その画像を用紙に印刷する。
【００２５】
通信インタフェース２Ｂｈは、図２（ａ）の通信インタフェース２Ａｆと同様、ツイストペアケーブルを介して情報処理装置２自身をハブまたはルータなどのいずれかのポートに繋ぐためのＮＩＣである。モデム２Ｂｉは、ファックス端末を相手にＧ３などのファックスプロトコルによってデータ通信を行うためのインタフェースである。
【００２６】
図２（ａ）のハードディスク２ＡｄまたはＲＯＭ２Ａｃおよび図２（ｂ）のハードディスク２ＢｄまたはＲＯＭ２Ｂｃには、それぞれ、図３に示すように、オペレーティングシステム２Ｐ０および仮想ネットワーク用アプリケーション２Ｐ１などのソフトウェアがインストールされている。
【００２７】
オペレーティングシステム２Ｐ０は、ＴＣＰ／ＩＰによる他の装置との通信を行う機能を有するネットワークＯＳである。
【００２８】
仮想ネットワーク用アプリケーション２Ｐ１は、仮想ネットワーク１に参加するためのソフトウェアである。つまり、この仮想ネットワーク用アプリケーション２Ｐ１がインストールされている情報処理装置２によって仮想ネットワーク１が構成される、と言える。仮想ネットワーク用アプリケーション２Ｐ１は、例えば、グループウェア、ファイル共有用のソフトウェア、またはチャット用のソフトウェアであって、各情報処理装置２のユーザ同士が情報を共有しまたはコミュニケーションを取ったり複数台の情報処理装置２に一連の処理を連携して実行させたりするために用いられる。または、仮想ネットワーク用アプリケーション２Ｐ１としてＶＰＮ（Virtual Private Network）用のソフトウェアが用いられる場合もある。
【００２９】
さらに、仮想ネットワーク用アプリケーション２Ｐ１には、攻撃対策モジュール２Ｐ２が適用されている。この攻撃対策モジュール２Ｐ２は、Ｄｏｓ（Denial of Service）攻撃の対策のためのプログラムであって、図４に示すような受信データ種別判別部２０１、アプリケーション起動通知制御部２０２、アプリケーション終了通知制御部２０３、参加メンバ情報管理部２０４、対自装置攻撃検知部２０５、対自装置攻撃通知処理部２０６、対他装置攻撃検知部２０７、およびポート番号変更処理部２０８などの機能を実現する。
【００３０】
オペレーティングシステム２Ｐ０および仮想ネットワーク用アプリケーション２Ｐ１を構成する各モジュールは、必要に応じてＲＡＭ２Ａｂ、２Ｂｂに読み出され、ＣＰＵ２Ａａ、２Ｂａによって実行される。
【００３１】
図５は参加メンバテーブルＴＬＡの例を示す図、図６は第一の他装置攻撃検知処理の流れの例を説明するフローチャート、図７は第二の他装置攻撃検知処理の流れの例を説明するフローチャート、図８はポート番号表ＴＬＢの例を示す図である。
【００３２】
次に、オペレーティングシステム２Ｐ０および図４に示す攻撃対策モジュール２Ｐ２の各部の処理内容などについて詳細に説明する。
【００３３】
オペレーティングシステム２Ｐ０は、その情報処理装置２自身のシステム管理を行う。特に、本実施形態では、仮想ネットワーク用アプリケーション２Ｐ１などのサービスからＡＰＩ（Application Program Interface）を介して与えられた指令に基づいて宛先の装置にデータ（パケット）を送信する処理および他の装置から受信したパケットを所定のサービスに与える処理を行う。つまり、パケットの受渡しの処理を行う。この際に、ポート番号が用いられる。
【００３４】
各情報処理装置２の仮想ネットワーク用アプリケーション２Ｐ１のために、共通のポート番号が定められている。以下、この共通のポート番号を「仮想ネットワーク用ポート番号」と記載する。したがって、オペレーティングシステム２Ｐ０は、仮想ネットワーク用アプリケーション２Ｐ１のサービスからの指令に基づいて宛先の装置にパケットを送信する際に、宛先ポート番号および送信元ポート番号に仮想ネットワーク用ポート番号を指定する。または、受信したパケットの宛先ポート番号が仮想ネットワーク用ポート番号である場合は、そのパケットを仮想ネットワーク用アプリケーション２Ｐ１のサービスに渡す。
【００３５】
また、いずれかの情報処理装置２に対してＤｏＳ攻撃があった場合は、次に説明する攻撃対策モジュール２Ｐ２の各部によって、各情報処理装置２の仮想ネットワーク用ポート番号が一斉に変更される。
【００３６】
ただし、仮想ネットワーク用ポート番号は、ポート番号の一般的な範囲つまり０番〜６５５３５番の範囲で定められまたは変更される。
【００３７】
図４において、受信データ種別判別部２０１は、他の装置からオペレーティングシステム２Ｐ０を介して受け取ったパケットを組み立てることによってデータを復元し、そのデータの種類を判別する。そして、その種類に応じて、後に順次説明する処理を実行するように、参加メンバ情報管理部２０４、対他装置攻撃検知部２０７、または仮想ネットワーク用アプリケーション２Ｐ１の他のモジュールなどに対して指令を与える。
【００３８】
アプリケーション起動通知制御部２０２は、その情報処理装置２において仮想ネットワーク用アプリケーション２Ｐ１を起動した際に、起動した旨を知らせるメッセージと仮想ネットワーク用アプリケーション２Ｐ１を現在稼動中であるか否かおよび現在の仮想ネットワーク用ポート番号を回答するように要求するメッセージを示すアプリケーション起動通知データＤＴ１を生成し、そのアプリケーション起動通知データＤＴ１をブロードキャストするようにオペレーティングシステム２Ｐ０に指令する。
【００３９】
これにより、仮想ネットワーク１を構成する他の各情報処理装置２に対してアプリケーション起動通知データＤＴ１が届けられる。
【００４０】
アプリケーション起動通知データＤＴ１を受信した情報処理装置２において、オペレーティングシステム２Ｐ０は、その情報処理装置２自身が仮想ネットワーク用アプリケーション２Ｐ１を現在稼動中である場合は、稼動中である旨のメッセージ、現在の仮想ネットワーク用ポート番号、および自らの識別情報（例えば、ＩＰアドレスまたはＭＡＣアドレス）を示す稼動中通知データＤＴ２を生成し、これをアプリケーション起動通知データＤＴ１の送信元に返信する。この際に、宛先ポート番号および送信元ポート番号に仮想ネットワーク用ポート番号を指定する。
【００４１】
稼動中通知データＤＴ２を受信した情報処理装置２において、オペレーティングシステム２Ｐ０は、その稼動中通知データＤＴ２を参照することによって仮想ネットワーク用アプリケーション２Ｐ１のためのポート番号つまり仮想ネットワーク用ポート番号を知る。そして、そのポート番号（仮想ネットワーク用ポート番号）を仮想ネットワーク用アプリケーション２Ｐ１のポート番号として適用するとともに、その稼動中通知データＤＴ２を受信データ種別判別部２０１に送る。
【００４２】
参加メンバ情報管理部２０４は、仮想ネットワーク用アプリケーション２Ｐ１を現在稼動している他の情報処理装置２つまり仮想ネットワーク１に現在参加しているメンバの一覧を示す参加メンバテーブルＴＬＡを記憶し管理している。例えば、情報処理装置２１の参加メンバ情報管理部２０４は、図５に示すような、参加メンバテーブルＴＬＡを記憶し管理している。
【００４３】
参加メンバ情報管理部２０４は、仮想ネットワーク用アプリケーション２Ｐ１の起動後にアプリケーション起動通知制御部２０２によって送信されたアプリケーション起動通知データＤＴ１に対する他の各情報処理装置２からの返信つまり稼動中通知データＤＴ２を纏めることによって、参加メンバテーブルＴＬＡを生成する。
【００４４】
また、次に説明するアプリケーション終了通知データＤＴ３が受信されたら、そのアプリケーション終了通知データＤＴ３に示されるメンバ（情報処理装置２）を参加メンバテーブルＴＬＡから削除する。
【００４５】
アプリケーション終了通知制御部２０３は、その情報処理装置２で稼動していた仮想ネットワーク用アプリケーション２Ｐ１を終了する際に、その旨のメッセージおよび自らの識別情報を示すアプリケーション終了通知データＤＴ３を生成し、参加メンバテーブルＴＬＡに現在示される各情報処理装置２に宛ててそのアプリケーション終了通知データＤＴ３を送信するようにオペレーティングシステム２Ｐ０に対して指令する。
【００４６】
すると、オペレーティングシステム２Ｐ０は、現在の仮想ネットワーク用ポート番号を宛先ポート番号および送信元ポート番号に指定し、そのアプリケーション終了通知データＤＴ３を、参加メンバテーブルＴＬＡに示される各情報処理装置２に送信（マルチキャスト）する。後に説明する被攻撃通知データＤＴ４、疑攻撃通知データＤＴ５、および疑攻撃通知データＤＴ６を送信する際も同様に、現在の仮想ネットワーク用ポート番号を宛先ポート番号および送信元ポート番号に指定する。
【００４７】
対自装置攻撃検知部２０５は、仮想ネットワーク用ポート番号が指定され送信されてきたデータ（パケット）をチェックすることによって、その情報処理装置２自身に対するＤｏＳ攻撃を検知する。
【００４８】
すなわち、対自装置攻撃検知部２０５は、その情報処理装置２自身がＤｏＳ攻撃を受けていることを、ＤｏＳ攻撃の特性に基づいて検知する。例えば、同一のコマンドを示すデータ（パケット）が所定の時間に所定の数以上受信された場合に、ＤｏＳ攻撃を受けていると判別（検知）する。または、ローカルの参加メンバテーブルＴＬＡに示されていない装置からのデータが所定の時間に所定の数以上受信された場合に、ＤｏＳ攻撃を受けていると判別する。または、情報処理装置２自身のＣＰＵ２Ａａ、２Ｂａの負荷をチェックし、その負荷が所定の値以上でありかつ前記のデータが所定の時間に所定の量以上受信された場合に、ＤｏＳ攻撃を受けていると判別する。
【００４９】
対自装置攻撃通知処理部２０６は、その情報処理装置２自身がＤｏＳ攻撃を受けていることが対自装置攻撃検知部２０５によって検知されたら、その旨のメッセージおよびその情報処理装置２自身の識別情報を示す被攻撃通知データＤＴ４を生成する。そして、参加メンバテーブルＴＬＡ（図５参照）に現在示される他の情報処理装置２に宛てて送信するようにオペレーティングシステム２Ｐ０に指令する。
【００５０】
対他装置攻撃検知部２０７は、他の情報処理装置２が受けているＤｏＳ攻撃を検知するための処理を、図６のフローチャートに示すような手順で行う。ここで、係る処理の手順を、情報処理装置２２がＤｏＳ攻撃を受けている場合の情報処理装置２１における処理の手順を例に、説明する。
【００５１】
情報処理装置２１の対他装置攻撃検知部２０７は、情報処理装置２２からの被攻撃通知データＤＴ４が受信されると、仮想ネットワーク１に現在参加している、情報処理装置２２以外の情報処理装置２でも被攻撃通知データＤＴ４が受信されているか否かを、次のようにして確認する（＃１０１）。
【００５２】
すなわち、情報処理装置２２がＤｏＳ攻撃を受けている可能性（疑い）がある旨のメッセージを示す疑攻撃通知データＤＴ５を生成する。そして、参加メンバテーブルＴＬＡに示される、情報処理装置２２以外の情報処理装置２に対してその疑攻撃通知データＤＴ５を送信するように、オペレーティングシステム２Ｐ０に指令する。もしも、情報処理装置２２以外の情報処理装置２でも被攻撃通知データＤＴ４が受信されたならば、これらの情報処理装置２においても、疑攻撃通知データＤＴ５の送信が行われる。したがって、情報処理装置２１は、これらの情報処理装置２から疑攻撃通知データＤＴ５を受信することができる。つまり、情報処理装置２２以外の情報処理装置２同士で、情報処理装置２２がＤｏＳ攻撃を受けていることを確認し合う。
【００５３】
情報処理装置２２以外の情報処理装置２から疑攻撃通知データＤＴ５を受信することができた場合は（＃１０２でＹｅｓ）、情報処理装置２２からの被攻撃通知データＤＴ４の信憑性が高いので、対他装置攻撃検知部２０７は、情報処理装置２２がＤｏＳ攻撃を受けていると判別する（＃１０３）。疑攻撃通知データＤＴ５を受信することができなかった場合は（＃１０２でＮｏ）、ＤｏＳ攻撃を受けていないと判別する（＃１０４）。
【００５４】
ところで、一般に、ＤｏＳ攻撃を受けている装置は、ＣＰＵに負荷が掛かり過ぎてしまい、データの送信が不能になることがある。つまり、ＤｏＳ攻撃を受けている情報処理装置２から被攻撃通知データＤＴ４が発信されず、図６で説明した方法が機能しないことがある。そこで、対他装置攻撃検知部２０７は、図７に示すフローチャートのような手順で、他の情報処理装置２が受けているＤｏＳ攻撃の検知の処理を行ってもよい。ここで、係る処理の手順を、情報処理装置２２に対するＤｏＳ攻撃を情報処理装置２１が検知する場合の手順を例に、説明する。
【００５５】
情報処理装置２１において、対他装置攻撃検知部２０７は、情報処理装置２２に対してポーリング（polling）を行うように、オペレーティングシステム２Ｐ０に指令する（図７の＃１２１）。もしも、情報処理装置２２がＤｏＳ攻撃を受けていないのであれば、ポーリングを行ってから速やかに返信があるはずである。そこで、ポーリングに対する返信が情報処理装置２２から所定の時間内に届いた場合は（＃１２２でＹｅｓ）、対他装置攻撃検知部２０７は、情報処理装置２２がＤｏＳ攻撃を受けていないと判別する（＃１２７）。
【００５６】
ただし、情報処理装置２２が既に仮想ネットワーク１から離脱している場合つまり情報処理装置２２からアプリケーション終了通知データＤＴ３を既に受信している場合は、当然、情報処理装置２２からのポーリングに対する返信はない。そこで、対他装置攻撃検知部２０７は、参加メンバテーブルＴＬＡ（図５参照）から情報処理装置２２が除外されている場合も（＃１２３でＹｅｓ）、情報処理装置２２がＤｏＳ攻撃を受けていないと判別する（＃１２７）。
【００５７】
情報処理装置２２が参加メンバテーブルＴＬＡに残っているにも関わらずポーリングに対する返信が得られない場合は（＃１２２でＮｏ、＃１２３でＮｏ）、情報処理装置２２がＤｏＳ攻撃を受けている疑いがある。そこで、参加メンバテーブルＴＬＡに現在示される他の情報処理装置２（２３、２４、…）に対して、これらの情報処理装置２においても情報処理装置２２に対するＤｏＳ攻撃の疑いを検知しているか否かを、次のようにして問い合わせる（＃１２４）。
【００５８】
すなわち、情報処理装置２２がＤｏＳ攻撃を受けている疑いがある旨のメッセージを示す疑攻撃通知データＤＴ６を生成する。そして、参加メンバテーブルＴＬＡに示される、情報処理装置２２以外の情報処理装置２に対してその疑攻撃通知データＤＴ６を送信するように、オペレーティングシステム２Ｐ０に指令する。もしも、情報処理装置２２以外の情報処理装置２でもその疑いを検知しているならば、これらの情報処理装置２においても、疑攻撃通知データＤＴ６の送信が行われる。したがって、情報処理装置２１は、これらの情報処理装置２から疑攻撃通知データＤＴ６を受信することができる。つまり、図６の処理の場合と同様に、情報処理装置２２以外の情報処理装置２同士で、情報処理装置２２がＤｏＳ攻撃を受けていることを確認し合う。
【００５９】
情報処理装置２２以外の情報処理装置２から疑攻撃通知データＤＴ６を受信することができた場合は（＃１２５でＹｅｓ）、対他装置攻撃検知部２０７は、情報処理装置２２がＤｏＳ攻撃を受けていると判別する（＃１２６）。疑攻撃通知データＤＴ６を受信することができなかった場合は（＃１２５でＮｏ）、ＤｏＳ攻撃を受けていないと判別する（＃１２７）。
【００６０】
情報処理装置２２に対する図７の処理は、定期的に実行する。また、情報処理装置２１は、情報処理装置２２以外の情報処理装置２（２３、２４、…）に対しても、図７の処理を定期的に実行する。なお、ステップ＃１２１において、ポーリングの代わりにピング（ping）を行ってもよい。
【００６１】
図４に戻って、ポート番号変更処理部２０８は、対他装置攻撃検知部２０７によって他の情報処理装置２に対するＤｏＳ攻撃が検知された場合に、現在の仮想ネットワーク用ポート番号を変更する処理を、次のように行う。
【００６２】
所定の数式を用いて、新しいポート番号を算出する。例えば、次の（１）式に示す数式に現在の仮想ネットワーク用ポート番号を代入することによって、新しいポート番号を算出する。
Ｎｎ＝Ｎｐ＋α×Ｎｋ＋β×Ｎｈ  ……  （１）
ただし、「Ｎｎ」は、新しいポート番号である。「Ｎｐ」は、現在の仮想ネットワーク用ポート番号である。「α」は、所定の自然数の係数（例えば、「２」）である。「Ｎｋ」は、仮想ネットワーク１を構成する情報処理装置２が共通に有するＰＫＩ（Public Key Infrastructure）の共通鍵の一部分（例えば、上位の８ビット）を１０進数に変換した数である。「β」は、所定の自然数の係数（例えば、「３０」）である。「Ｎｈ」は、上記の共通鍵に対応する秘密鍵の一部分（例えば、上位の４ビット）を１０進数に変換した数である。
【００６３】
（１）式で算出した新しいポート番号が一般的なポート番号の最大値つまり６５５３５番を超えてしまう場合は、一般的なポート番号の範囲に収まるようにするために、次の（２）式を用いて新しいポート番号を算出し直す。
Ｎｎ＝Ｎｐ＋α×Ｎｋ＋β×Ｎｈ−６５５３５−１  ……  （２）
ただし、「Ｎｎ」、「Ｎｐ」、「α」、「Ｎｋ」、「β」、および「Ｎｈ」の意味は、（１）式のそれらの意味と同じである。
【００６４】
そして、ポート番号変更処理部２０８は、仮想ネットワーク用ポート番号を（１）式または（２）式によって算出した新しいポート番号に変更するようにオペレーティングシステム２Ｐ０に対して指令する。
【００６５】
以上の処理によって、仮想ネットワーク用ポート番号が変更される。なお、ＤｏＳ攻撃を受けていない他の情報処理装置２においても同様に、ポート番号変更処理部２０８は、仮想ネットワーク用ポート番号を変更する処理を、（１）式または（２）式によって行う。（１）式および（２）式の「α」、「Ｎｋ」、「β」、および「Ｎｈ」の値は、すべての情報処理装置２において同一である。したがって、仮想ネットワーク用ポート番号は、他の情報処理装置２に対するＤｏＳ攻撃を検知したすべての情報処理装置２において、同一のポート番号から別の同一のポート番号に変更される。よって、これらの情報処理装置２は、仮想ネットワーク用ポート番号の変更後も引き続き、仮想ネットワーク１を保つことができる。
【００６６】
または、いずれか１台の情報処理装置２が（１）式または（２）式によって新しいポート番号を算出し、それを他の情報処理装置２に通知するようにしてもよい。
【００６７】
または、ポート番号変更処理部２０８は、（１）式および（２）式の代わりに、図８に示すようなポート番号表ＴＬＢを用いて仮想ネットワーク用ポート番号の変更を行ってもよい。
【００６８】
すなわち、各情報処理装置２において、それぞれの対他装置攻撃検知部２０７によってＤｏＳ攻撃が検知されると、それぞれのポート番号変更処理部２０８は、現在の仮想ネットワーク用ポート番号を、ポート番号表ＴＬＢに示されるその次のポート番号に変更する処理を行う。例えば、現在の仮想ネットワーク用ポート番号が「５００２０」である場合は、「４９９０」に変更する処理を行う。ただし、現在の仮想ネットワーク用ポート番号が最下行のポート番号（図中の「４７８９０」）である場合は、最上行のポート番号（図中の「５６６０」）に変更する処理を行う。
【００６９】
または、いずれか１台の情報処理装置２がポート番号表ＴＬＢの中からランダムにポート番号を選び出して他の情報処理装置２に通知する。そして、各情報処理装置２は、そのポート番号に仮想ネットワーク用ポート番号を変更するようにしてもよい。
【００７０】
なお、仮想ネットワーク用ポート番号をどのポート番号に変更するのかを秘密にするために、選び出したポート番号をそのまま他の情報処理装置２に通知するのではなく、それに対応するＩＤを他の情報処理装置２に通知するのが望ましい。ポート番号表ＴＬＢは、予めハードディスク２Ａｄ、２Ｂｄに記憶させておけばよい。
【００７１】
図９および図１０は情報処理装置２の全体的な処理の流れの例を説明するフローチャートである。
【００７２】
次に、仮想ネットワーク１に参加する情報処理装置２の処理の流れを、情報処理装置２１における処理を例に、図９および図１０のフローチャートなどを参照しながら説明する。
【００７３】
情報処理装置２１は、仮想ネットワーク用アプリケーション２Ｐ１を起動すると、現在の仮想ネットワーク１の参加メンバおよび仮想ネットワーク用ポート番号を問い合わせるなどの処理を行い、仮想ネットワーク１への参加を開始する（図９の＃１）。
【００７４】
参加後、他の装置から様々なデータが送信されてくる。ポート番号として仮想ネットワーク用ポート番号が指定されたデータを受信すると（＃２でＹｅｓ）、そのデータが情報処理装置２１自身に対するＤｏＳ攻撃に係るか否かをチェックする（＃３）。ＤｏＳ攻撃を検知すると（＃４でＹｅｓ）、仮想ネットワーク１に現在参加している他の情報処理装置２に対してその旨を通知する（＃５）。そして、仮想ネットワーク用ポート番号の使用を中止しつまり仮想ネットワーク用ポート番号を閉鎖し（＃６）、一旦、仮想ネットワーク１から離脱する。その後、ＤｏＳ攻撃を回避できたら、再び仮想ネットワーク１に参加するのであれば、ステップ＃１に戻り、再度、参加のための処理を行う。
【００７５】
情報処理装置２１は、自らに対するＤｏＳ攻撃の検知の処理以外にも、他の装置から受信したデータの種類に応じて図１０のステップ＃７〜＃１３の処理を行う。
【００７６】
他の情報処理装置２から、当該他の情報処理装置２がＤｏＳ攻撃を受けている旨の通知を受けると（図１０の＃７でＹｅｓ）、その通知を検証することによって当該他の情報処理装置２に対するＤｏＳ攻撃の検知の処理を行う（＃８）。係る検知の処理の手順は、前に図６で説明した通りである。つまり、例えば、情報処理装置２２がＤｏＳ攻撃を受けている場合は、情報処理装置２１は、情報処理装置２２、２３、…と疑攻撃通知データＤＴ５のやり取りを行いＤｏＳ攻撃の有無を確認し合う。
【００７７】
ＤｏＳ攻撃を検知することができたら（＃９でＹｅｓ）、現在の仮想ネットワーク用ポート番号を別のポート番号に変更する処理を行う（＃１０）。係る処理は、ＤｏＳ攻撃を受けていない他の情報処理装置２同士で連携して実行する。どのポート番号に変更するのかは、各情報処理装置２が（１）式、（２）式、またはポート番号表ＴＬＢ（図８参照）に基づいて決定してもよいし、いずれかの情報処理装置２が決定し全情報処理装置２に通知してもよい。
【００７８】
なお、その後、ＤｏＳ攻撃を受けている情報処理装置２を、参加メンバテーブルＴＬＡ（図５参照）から除外しておくのが望ましい。以下、同様である。
【００７９】
または、情報処理装置２１は、他の情報処理装置２が仮想ネットワーク１から離脱する旨の通知つまりアプリケーション終了通知データＤＴ３を受信した場合は（＃７でＮｏ、＃１１でＹｅｓ）、当該他の情報処理装置２を、参加メンバテーブルＴＬＡから除外する（＃１２）。
【００８０】
または、情報処理装置２１は、仮想ネットワーク用アプリケーション２Ｐ１の通常のデータ（つまり、攻撃対策モジュール２Ｐ２に無関係のデータ）を受信すると（＃７でＮｏ、＃１１でＮｏ）、従来通り、そのデータに基づいて所定の処理を行う（＃１３）。
【００８１】
図９に戻って、情報処理装置２１は、受信したデータに基づく処理と並行して、次のような処理を適宜行う。定期的に、ポーリングを行うことによって他の情報処理装置２が受けているＤｏＳ攻撃の検知の処理を行う（＃１４でＮｏ、＃１５）。係る検知の処理の手順は、前に図７で説明した通りである。その結果、ＤｏＳ攻撃を検知したら（＃１６でＹｅｓ）、現在の仮想ネットワーク用ポート番号を変更する処理を行う（図１０の＃１０）。
【００８２】
また、情報処理装置２１は、適宜、ユーザが入力したコマンドなどに従って所定の処理を実行する（＃１７）。
【００８３】
情報処理装置２１は、仮想ネットワーク用アプリケーション２Ｐ１を終了しまたは電源をオフにする際は（＃１４でＹｅｓ）、その旨を他の情報処理装置２に対して通知する（＃１８）。
【００８４】
本実施形態によると、ＤｏＳ攻撃を従来よりも効果的に予防することができる。特に、仮想ネットワーク用ポート番号を指定して多数のパケットを送りつけるタイプのＤｏＳ攻撃に対して有効的である。
【００８５】
本実施形態では、どのポート番号に仮想ネットワーク用ポート番号を変更するのかを（１）式、（２）式、または図８のポート番号表ＴＬＢに基づいて求めたが、変更の規則性が解析されるのを防止するために、これらの式またはポート番号表ＴＬＢを、もっと複雑にしてもよい。
【００８６】
本実施形態では、０番〜６５５３５番の範囲のポート番号を仮想ネットワーク用ポート番号として用いた。しかし、情報処理装置２は、仮想ネットワーク１の中の装置のみを相手に通信を行うだけでなく、インターネット上の装置とも通信を行うのであれば、ＩＥＴＦ（Internet Engineering Task Force）が提案するＲＦＣ（Request for Comments）に従って仮想ネットワーク用ポート番号を決めなければならない。つまり、仮想ネットワーク用ポート番号は、ダイナミック（Dynamic）ポートの範囲である４９１５２番〜６５５３５番の範囲で定められまたは変更されなければならない。そこで、この場合は、デフォルトの仮想ネットワーク用ポート番号として、ダイナミックポートの範囲の任意のポート番号を用いる。そして、（２）式の変わりに、次の（２’）式を用いる。
Ｎｎ＝Ｎｐ＋α×Ｎｋ＋β×Ｎｈ−６５５３５＋４９１５２−１  ……  （２’）
ただし、「Ｎｎ」、「Ｎｐ」、「α」、「Ｎｋ」、「β」、および「Ｎｈ」の意味は、（１）式および（２）式のそれらの意味と同じである。
【００８７】
本実施形態では、宛先ポート番号および送信元ポート番号が共通である場合を例に説明したが、宛先ポート番号および送信元ポート番号のそれぞれに異なる仮想ネットワーク用ポート番号を与えるようにしてもよい。そして、いずれかの情報処理装置２がＤｏＳ攻撃を受けた場合に、宛先ポート番号に係る仮想ネットワーク用ポート番号および送信元ポート番号に係る仮想ネットワーク用ポート番号のそれぞれを変更するようにすればよい。
【００８８】
本実施形態では、ＤｏＳ攻撃を受けていない情報処理装置２が仮想ネットワーク用ポート番号をどのポート番号に変更するのかを決定したが、ＤｏＳ攻撃を受けている情報処理装置２が決定するようにしてもよい。そして、ＤｏＳ攻撃を受けた旨の通知（被攻撃通知データＤＴ４の送信）を行う際に、決定した新たな仮想ネットワーク用ポート番号も一緒に通知すればよい。
【００８９】
攻撃を受けている情報処理装置２も、可能であれば仮想ネットワーク用ポート番号を新たなポート番号に変更すればよい。
【００９０】
その他、仮想ネットワーク１、情報処理装置２の全体または各部の構成、処理内容、処理順序、テーブル、ポート番号表の構成などは、本発明の趣旨に沿って適宜変更することができる。
【図面の簡単な説明】
【００９１】
【図１】仮想ネットワークの全体的な構成の例を示す図である。
【図２】情報処理装置のハードウェア構成の例を示す図である。
【図３】情報処理装置にインストールされているソフトウェアの構成の例を示す図である。
【図４】攻撃対策モジュールによって実現される機能的構成の例を示す図である。
【図５】参加メンバテーブルの例を示す図である。
【図６】第一の他装置攻撃検知処理の流れの例を説明するフローチャートである。
【図７】第二の他装置攻撃検知処理の流れの例を説明するフローチャートである。
【図８】ポート番号表の例を示す図である。
【図９】情報処理装置の全体的な処理の流れの例を説明するフローチャートである。
【図１０】情報処理装置の全体的な処理の流れの例を説明するフローチャートである。
【符号の説明】
【００９２】
２Ｐ１  仮想ネットワーク用アプリケーション（特定のプログラム）
２  情報処理装置（情報処理装置）
１  仮想ネットワーク（ネットワーク）
２０７  対他装置攻撃検知部（ＤｏＳ攻撃検知手段）
２０８  ポート番号変更処理部（対応ポート番号変更手段）
ＴＬＢ  ポート番号表（規則情報）
２Ａｄ、２Ｂｄ  ハードディスク（規則情報記憶手段）
【図１】
2008048198.tif 000003
【図２】
2008048198.tif 000004
【図３】
2008048198.tif 000005
【図４】
2008048198.tif 000006
【図５】
2008048198.tif 000007
【図６】
2008048198.tif 000008
【図７】
2008048198.tif 000009
【図８】
2008048198.tif 000010
【図９】
2008048198.tif 000011
【図１０】
2008048198.tif 000012