(57)【要約】【課題】処理能力が低くても適切にＤｏＳ攻撃を検知する。【解決手段】受信したＳＮＭＰリクエストに対する処理を行う前に、当該ＳＮＭＰリクエストを一旦キューに保持する。そして、キューの先頭のＳＮＭＰリクエストの処理を行う前に、任意のリモートホストからのＳＮＭＰリクエストが一定回数以上あったか否かを調べる。その結果、同一のリモートホストからのＳＮＭＰリクエストが一定回数以上あった場合に、当該リモートホストによるＤｏＳ攻撃として検知する。【選択図】図４
2010218462.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置からネットワークを介して送信されたリクエストを受信して、該リクエストに対して所定の処理を行う情報処理装置であって、
受信された前記リクエストを一時的に保持する保持手段と、
前記保持手段に保持されたリクエストに基づきＤｏＳ攻撃を受けたか否かを判定する判定手段と、
前記判定手段による前記判定に応じて、前記保持手段に保持された前記リクエストに対して前記所定の処理を行う処理手段と
を有する
ことを特徴とする情報処理装置。
【請求項２】
前記判定手段は、
前記ＤｏＳ攻撃を受けたと判定された場合に、前記保持手段に保持される前記リクエストのうち該ＤｏＳ攻撃によるリクエストを該保持手段から削除する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判定手段は、
前記保持手段に保持される、同一のホスト装置からのリクエストの数が第１の閾値以上の場合に、前記ＤｏＳ攻撃を受けたと判定する
ことを特徴とする請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記判定手段は、
前記保持手段に対して、所定時間内に第２の閾値以上の数の同一のホスト装置からのリクエストが保持された場合に、前記ＤｏＳ攻撃を受けたと判定する
ことを特徴とする請求項１乃至請求項３の何れか１項に記載の情報処理装置。
【請求項５】
前記判定手段は、
同一のホスト装置からのリクエストが前記保持手段の最大サイズまで保持された場合に、前記ＤｏＳ攻撃を受けたと判定する
ことを特徴とする請求項１乃至請求項４の何れか１項に記載の情報処理装置。
【請求項６】
前記判定手段は、
前記ＤｏＳ攻撃を受けたと判定したら、該ＤｏＳ攻撃として送信されたリクエストの送信元のホスト装置からのリクエストの受付を禁止するように、リクエストを受信する受信手段に対する設定を行う
ことを特徴とする請求項１乃至請求項５の何れか１項に記載の情報処理装置。
【請求項７】
前記保持手段は、
該保持手段の最大サイズまで前記リクエストが保持されている状態で新規の前記リクエストが追加される際に、保持されているリクエストのうち該新規のリクエストの送信元のホスト装置から送信された、該新規のリクエストと重複したリクエストを削除する
ことを特徴とする請求項１乃至請求項６の何れか１項に記載の情報処理装置。
【請求項８】
ホスト装置からネットワークを介して送信されたリクエストを受信して、該リクエストに対して所定の処理を行う情報処理方法であって、
受信された前記リクエストを保持手段に一時的に保持する保持ステップと、
前記保持ステップにより前記保持手段に保持されたリクエストに基づきＤｏＳ攻撃を受けたか否かを判定する判定ステップと、
前記判定ステップによる前記判定に応じて、前記保持手段に保持された前記リクエストに対して前記所定の処理を行う処理ステップと
を有する
ことを特徴とする情報処理方法。
【請求項９】
コンピュータを請求項１乃至請求項７の何れか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤｏＳ攻撃の検出を行う情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
標的の情報処理装置（コンピュータなど）に対して、ネットワークを介して大量のパケットを送信することで当該情報処理装置の処理を滞らせ、当該情報処理装置の利用に支障が起こるようにする、ＤｏＳ(Denial of Service)攻撃が知られている。このため、標的となり得る情報処理装置側では、何らかの手段でＤｏＳ攻撃を検知し、当該情報処理装置による他のサービスを継続して提供できるように対応する必要がある。
【０００３】
特許文献１には、パスワードクラックとＤｏＳ攻撃を共に防止する事を目的とし、所定時間内に閾値以上のアクセスがあった場合にＤｏＳ攻撃として検知する構成が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ＤｏＳ攻撃の一つとして、ＳＮＭＰ(Simple Network Management Protocol)エージェント機能を有する情報処理装置に対し、ネットワークを介してＳＮＭＰリクエストを大量に送信する事で当該情報処理装置の処理能力を浪費させ、他のサービスの提供を不可能な状態にする攻撃がある。
【０００５】
すなわち、ＳＮＭＰによれば、ＳＮＭＰリクエストを受信した情報処理装置は、当該ＳＮＭＰリクエストに応じて所定の処理を行い応答を返すのが一般的である。そのため、連続的に送信された大量のＳＮＭＰリクエストを受信すると、受信したＳＮＭＰリクエストに対する応答を生成する処理に処理能力が費やされ、他のサービスに対して僅かな処理能力しか振り分けることができなくなる。
【０００６】
従来では、特定のリモートホストから送信されたＳＮＭＰリクエストを受け、それに対する応答を行った回数を計測し、計測された回数が所定時間内（例えば１秒間）に閾値以上に達した場合にこの特定のリモートホストからのＳＮＭＰリクエストの送信がＤｏＳ攻撃であると検知していた。そして、ＤｏＳ攻撃が検知された以降は、そのリモートホストからのＳＮＭＰリクエストを読み捨てるという処理を行っていた。
【０００７】
この方法だと、処理能力が低く所定時間当たりの処理可能なＳＮＭＰリクエストの数が少ない情報処理装置では、現在なされているＳＮＭＰリクエストによるアクセスが通常のアクセスなのかＤｏＳ攻撃なのかを判断するのが困難であるという問題があった。
【０００８】
例えば、上述した閾値が１０００回以上に設定されている情報処理装置が所定時間内にＳＮＭＰリクエストを１００個しか処理できなければ、ＤｏＳ攻撃を受けているにも関わらず検知できないということが起こる。一方、閾値を低くすると、通常のアクセスをＤｏＳ攻撃として検知してしまう可能性がある。
【０００９】
また、上述の特許文献１では、他のコンピュータからのアクセスがある度に利用者の認証を行うため、処理能力の低いコンピュータではＤｏＳ攻撃が検知できない可能性があるという問題を含んでいる。
【００１０】
本発明は、上記に鑑みてなされたものであって、処理能力が低くても適切にＤｏＳ攻撃を検知することができる情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明は、ホスト装置からネットワークを介して送信されたリクエストを受信して、リクエストに対して所定の処理を行う情報処理装置であって、受信されたリクエストを一時的に保持する保持手段と、保持手段に保持されたリクエストに基づきＤｏＳ攻撃を受けたか否かを判定する判定手段と、判定手段による判定に応じて、保持手段に保持されたリクエストに対して所定の処理を行う処理手段とを有することを特徴とする。
【００１２】
また、本発明は、ホスト装置からネットワークを介して送信されたリクエストを受信して、リクエストに対して所定の処理を行う情報処理方法であって、受信されたリクエストを保持手段に一時的に保持する保持ステップと、保持ステップにより保持手段に保持されたリクエストに基づきＤｏＳ攻撃を受けたか否かを判定する判定ステップと、判定ステップによる判定に応じて、保持手段に保持されたリクエストに対して所定の処理を行う処理ステップとを有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ホスト装置からネットワークを介して送信されたリクエストを受信して、リクエストに対して所定の処理を行う際に、受信されたリクエストを保持手段に一時的に保持し、保持手段に保持されたリクエストに基づきＤｏＳ攻撃を受けたか否かを判定し、判定に応じて、保持手段に保持されたリクエストに対して所定の処理を行うようにしているため、処理能力が低くても適切にＤｏＳ攻撃を検知することができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の各実施形態に適用可能な情報処理装置の一例の構成を示すブロック図である。
【図２】図２は、本発明の各実施形態に適用可能な情報処理装置の機能を示す一例の機能ブロック図である。
【図３】図３は、情報処理装置が正常にＳＮＭＰリクエストを処理する場合の一例の処理を示すシーケンス図である。
【図４】図４は、情報処理装置においてＤｏＳ攻撃が検知された場合の一例の処理を示すシーケンス図である。
【図５】図５は、キューの最大サイズまで未処理のＳＮＭＰリクエストが入っている場合の一例の処理を示すシーケンス図である。
【発明を実施するための形態】
【００１５】
以下に添付図面を参照して、この発明に係る情報処理装置の最良な実施の形態を詳細に説明する。先ず、本発明について、概念的に説明する。ＳＮＭＰ(Simple Network Management Protocol)リクエストを送信するリモートホストは、一般的には、１つのＳＮＭＰリクエストを送信し、その応答を待って次のＳＮＭＰリクエストを送信する。一方、ＤｏＳ(Denial of Service)攻撃を目的としたリモートホストは、送信したＳＮＭＰリクエストに対する応答を待たずに、連続的にＳＮＭＰリクエストを送信する。換言すると、ＤｏＳ攻撃を仕掛けてきたリモートホストからのＳＮＭＰリクエストは、情報処理装置が当該リモートホストから送信されたＳＮＭＰリクエストに対する応答を返す前に、連続的に送信されてくる。
【００１６】
本発明は、この点に着目し、受信したＳＮＭＰリクエストに対する処理を行う前に、当該ＳＮＭＰリクエストを一旦キューに保持する。そして、キューの先頭のＳＮＭＰリクエストの処理を行う前に、任意のリモートホストからのＳＮＭＰリクエストが一定回数以上あったか否かを調べる。その結果、同一のリモートホストからのＳＮＭＰリクエストが一定回数以上あった場合に、当該リモートホストによるＤｏＳ攻撃として検知する。
【００１７】
このように、本発明では、ＳＮＭＰリクエストの処理数ではなくＳＮＭＰリクエストの受信数に基づきＤｏＳ攻撃の有無を判断できるため、情報処理装置の処理能力に拠らずＤｏＳ攻撃を検知する事が可能になる。
【００１８】
なお、以下では、ＤｏＳ攻撃は、ネットワークを介して送信されたリクエストに対して応答を返すシステムを利用して、リクエストを、対応する応答を待たずに次々と情報処理装置に送信することで、当該情報処理装置の処理能力を浪費させる攻撃であるものとする。
【００１９】
＜各実施形態に共通の構成＞
図１は、本発明の各実施形態に適用可能な情報処理装置１００の一例の構成を示す。情報処理装置１００において、バス１０に対してＣＰＵ(Central Processing Unit)１１、ＲＯＭ(Read Only Memory)１２、ＲＡＭ(Random Access Memory)１３、ネットワークＩ／Ｆ１４、ハードディスク１５、入出力Ｉ／Ｆ１６およびドライブ装置１７が接続される。バス１０に接続される各部は、バス１０を介して互いにデータのやりとりを行うことができるようにされている。
【００２０】
ＣＰＵ１１は、ＲＯＭ１２やハードディスク１５に予め記憶されたプログラムに従い、ＲＡＭ１３をワークメモリとして用いてこの情報処理装置１００の全体の動作を制御する。本実施形態においては、ＣＰＵ１１が実行するプログラムには、ＴＣＰ／ＩＰ(Transmission Control Protocol/Internet Protocol)やＳＮＭＰ(Simple Network Management Protocol)といったプロトコルが実装される。
【００２１】
ハードディスク１５は、上述したＣＰＵ１１が動作するためのプログラムや、様々なデータが格納される。また、ハードディスク１５は、ＣＰＵ１１がプログラムの実行に際して発生したデータを一時的に格納することもできる。
【００２２】
入出力Ｉ／Ｆ１６は、この情報処理装置１００に対するデータの入出力を制御する。例えば、入出力Ｉ／Ｆ１６に対してキーボードやマウスなどの入力デバイスが接続される。これら入力デバイスに対するユーザ操作に応じた制御信号が入出力Ｉ／Ｆ１６から出力され、バス１０を介してＣＰＵ１１に供給される。また、入出力Ｉ／Ｆ１６がＵＳＢ(Universal Serial Bus)やＩＥＥＥ(Institute Electrical and Electronics Engineers)１３９４といったシリアルインターフェイスに対応していてもよい。
【００２３】
ドライブ装置１７は、ＣＤ(Compact Disk)やＤＶＤ(Digital Versatile Disk)といったディスク記憶媒体２０からデータを読み出す。これに限らず、ドライブ装置１７の対応する記憶媒体が不揮発性の半導体メモリなどであってもよい。上述したＣＰＵ１１が動作するためのプログラムは、例えばこれらＣＤ、ＤＶＤ、不揮発性の半導体メモリなどの記憶媒体に記憶されて提供され、ドライブ装置１７から読み込まれてハードディスク１５に対して所定に格納される。表示制御部１８は、ディスプレイ２１が接続され、ＣＰＵ１１により生成された表示制御信号をディスプレイ２１が表示可能な形式の信号に変換して出力する。
【００２４】
ネットワークＩ／Ｆ１４は、ＴＣＰ／ＩＰに対応し、インターネットやＬＡＮ(Local Area Network)といったネットワーク２００を介して、外部の情報機器と通信を行うことができる。上述したＣＰＵ１１が動作するためのプログラムは、外部のサーバ装置などから、ネットワーク２００を介して提供され、ネットワークＩ／Ｆ１４で受信してハードディスク１５に所定に格納することもできる。
【００２５】
図２は、本発明の各実施形態に適用可能な情報処理装置１００の機能を示す一例の機能ブロック図である。情報処理装置１００は、ネットワークＩ／Ｆ１０１、ＳＮＭＰリクエスト処理部１０２、ＤｏＳ攻撃判定部１０３、ＳＮＭＰリクエスト管理部１０４およびＳＮＭＰリクエスト保持部１０５を備える。
【００２６】
これらのうち、ネットワークＩ／Ｆ１０１は、上述したネットワークＩ／Ｆ１４に対応し、ネットワーク２００を介してリモートホスト２１０Ａ、２１０Ｂ、…との間での通信を制御する。ＳＮＭＰリクエスト処理部１０２、ＤｏＳ攻撃判定部１０３およびＳＮＭＰリクエスト管理部１０４は、ＣＰＵ１１上で動作するプログラムにより実現される。例えば、ＳＮＭＰリクエスト処理部１０２、ＤｏＳ攻撃判定部１０３、ＳＮＭＰリクエスト管理部１０４およびＳＮＭＰリクエスト保持部１０５のそれぞれは、プログラム上のモジュールとして、ＣＰＵ１１によりＲＡＭ１３上に展開されて構成される。
【００２７】
ＳＮＭＰリクエスト処理部１０２は、リモートホスト２１０Ａ、２１０Ｂ、…から送信されたＳＮＭＰリクエストを受け取って処理を行う。ＳＮＭＰリクエスト管理部１０４は、ＳＮＭＰリクエスト処理部１０２が処理を実行する前にリモートホスト２１０Ａ、２１０Ｂ、…から送信されてきた全てのＳＮＭＰリクエストを受け取って管理する。ＳＮＭＰリクエスト保持部１０５は、リモートホスト２１０Ａ、２１０Ｂ、…から送信されてきたＳＮＭＰリクエストを、キューに保持する。キューは、具体的には、例えばＲＡＭ１３の所定領域を用いて構成される。ＤｏＳ攻撃判定部１０３は、ＤｏＳ攻撃判定のための閾値を持っており、任意のリモートホスト２１０Ａ、２１０Ｂ、…がＤｏＳ攻撃を行ってきているか否かを、例えばＳＮＭＰリクエストの受信数と閾値とに基づき判定する。
【００２８】
＜実施形態＞
以下、図３〜図５のシーケンス図を用いて、本発明の実施形態によるＤｏＳ攻撃の検知処理について説明する。図３は、情報処理装置１００に対してＤｏＳ攻撃が行われておらず、情報処理装置１００が正常にＳＮＭＰリクエストを処理する場合の一例の処理を示すシーケンス図である。
【００２９】
先ず、ＳＥＱ１で、ＳＮＭＰリクエスト処理部１０２は、例えばリモートホスト２１０Ａから送信されたＳＮＭＰリクエストを受け取る。すなわち、リモートホスト２１０Ａから送信されたＳＮＭＰリクエストは、ネットワーク２００を介してネットワークＩ／Ｆ１０１に受信される。ネットワークＩ／Ｆ１０１は、受信したＳＮＭＰリクエストをＳＮＭＰリクエスト処理部１０２に渡す。なお、ＳＮＭＰリクエストは、送信元の機器を識別するための識別情報と、ＳＮＭＰリクエストの内容を示す情報とを含む。
【００３０】
ＳＮＭＰリクエスト処理部１０２は、リモートホスト２１０ＡからのＳＮＭＰリクエストを受け取ると、ＳＥＱ２で、このＳＮＭＰリクエストをＳＮＭＰリクエスト管理部１０４に渡す。ＳＮＭＰリクエスト管理部１０４は、ＳＮＭＰリクエストを受け取ると、このＳＮＭＰリクエストを受け付けた時刻を示す情報を保持し（ＳＥＱ３）、当該ＳＮＭＰリクエストをＳＮＭＰリクエスト保持部１０５に渡す（ＳＥＱ４）。ＳＮＭＰリクエスト保持部１０５は、受け取ったＳＮＭＰリクエストをキューに追加して保持する。
【００３１】
上述のＳＥＱ１〜ＳＥＱ４の処理は、この情報処理装置１００がＳＮＭＰリクエストを継続的に受信している間、繰り返される。例えば、ＳＮＭＰリクエスト管理部１０４は、現在の時刻が直前にＳＮＭＰリクエストを受け付けた時刻から所定時間を経過しているか否かを判定し、所定時間を経過していると判定されたら、ＳＮＭＰリクエストの受信が直前の受信で終了していると判断する。
【００３２】
ＳＮＭＰリクエストの受信が終了したと判定されたら、ＳＮＭＰリクエスト管理部１０４は、ＤｏＳ攻撃判定部１０３に対して、この情報処理装置１００がＤｏＳ攻撃されていたか否かの判定を行うように要求する（ＳＥＱ５）。この要求に応じて、ＤｏＳ攻撃判定部１０３は、ＳＮＭＰリクエスト保持部１０５に対して、キューに保持されているＳＮＭＰリクエストの一覧を要求する（ＳＥＱ６）。この要求に応じて、キューに保持されているＳＮＭＰリクエストの一覧がＳＮＭＰリクエスト保持部１０５からＤｏＳ攻撃判定部１０３に対して渡される。ＤｏＳ攻撃判定部１０３は、ＳＮＭＰリクエスト保持部１０５から取得したＳＮＭＰリクエストの一覧に基づき、この情報処理装置１００がＤｏＳ攻撃を受けていたか否かを判定する。
【００３３】
本実施形態では、この判定を、同一のリモートホストから予め決められた閾値以上の数のＳＮＭＰリクエストを受信しているか否かにより行う。一例として、ＤｏＳ攻撃判定部１０３は、ＳＮＭＰリクエスト保持部１０５から取得したＳＮＭＰリクエストの一覧に基づき、ＳＮＭＰリクエストの数をリモートホスト毎に計数する。そして、閾値と各リモートホストの計数結果とをそれぞれ比較し、閾値以上の数を受信したＳＮＭＰリクエストの送信元のリモートホストを検出する。
【００３４】
その結果、若し、同一のリモートホストから閾値以上の数のＳＮＭＰリクエストを受信しているとされれば、ＤｏＳ攻撃判定部１０３は、この情報処理装置１００がＤｏＳ攻撃を受けていたと判定する。ＤｏＳ攻撃を受けていたと判定された場合の処理は、図４を用いて後述する。
【００３５】
一方、各リモートホストから受信したＳＮＭＰリクエストの回数が閾値未満であるとされれば、この情報処理装置１００がＤｏＳ攻撃を受けていないと判定する。この場合、ＤｏＳ攻撃判定部１０３は、ＤｏＳ攻撃を受けていない旨を示す判定結果をＳＮＭＰリクエスト管理部１０４に対して通知する（ＳＥＱ７）。ＳＮＭＰリクエスト管理部１０４は、このＤｏＳ攻撃を受けていない旨の通知に応じて、ＳＮＭＰリクエスト処理部１０２に対して、キューに保持されているＳＮＭＰリクエストの処理を行うように要求する（ＳＥＱ８）。
【００３６】
ＳＮＭＰリクエスト処理部１０２は、この要求を受け、ＳＮＭＰリクエスト管理部１０４に対して、キューに保持されているＳＮＭＰリクエストを１つ、要求する。ＳＮＭＰリクエスト管理部１０４は、この要求に応じてＳＮＭＰリクエスト保持部１０５に対して、キューの先頭に保持されているＳＮＭＰリクエストを読み出すように要求する（ＳＥＱ１０）。ＳＮＭＰリクエスト保持部１０５は、キューから先頭のＳＮＭＰリクエストを読み出してＳＮＭＰリクエスト管理部１０４に渡す。
【００３７】
続けて、ＳＮＭＰリクエスト処理部１０２は、ＳＮＭＰリクエスト管理部１０４に渡されたＳＮＭＰリクエストの受付時刻を確認する（ＳＥＱ１２）、若し、確認した受付時刻が現在の時刻が確認した受付時刻から一定の時間を経過していたと判定されたら、当該ＳＮＭＰリクエストが古いリクエストであるとして、当該ＳＮＭＰリクエストを処理せずに捨て、次のＳＮＭＰリクエストの処理に移行する。
【００３８】
一方、現在の時刻が確認した受付時刻から一定の時間を経過していないと判定されたら、ＳＮＭＰリクエスト処理部１０２は、当該ＳＮＭＰリクエストをＳＮＭＰリクエスト管理部１０４から取得し（ＳＥＱ１３）、取得したＳＮＭＰリクエストに応じた処理、例えばレスポンス生成処理を行う（ＳＥＱ１４）。
【００３９】
上述のＳＥＱ９〜ＳＥＱ１４の処理は、キューに保持されている全てのＳＮＭＰリクエストに対して行うように、繰り返される。また、ＳＥＱ９〜ＳＥＱ１４の処理において、新たなＳＮＭＰリクエストを受信した場合、処理がＳＥＱ１に戻される。
【００４０】
次に、情報処理装置１００においてＤｏＳ攻撃が検知された場合の一例の処理を、図４を用いて説明する。なお、図４において、上述の図３と共通する処理には同一の符号を付し、詳細な説明を省略する。以下では、煩雑さを避けるために、上述の図３によるＤｏＳ攻撃がなされていない場合の例との差異部分を中心に説明を行う。
【００４１】
リモートホストからのＳＮＭＰリクエストを継続的に受信している間、ＳＥＱ１〜ＳＥＱ４の処理が繰り返され、受信されたＳＮＭＰリクエストがＳＮＭＰリクエスト保持部１０５によりキューに順次、保持される。最後のＳＮＭＰリクエストの受信から所定時間が経過したら、ＳＥＱ５によりＳＮＭＰリクエスト管理部１０４からＤｏＳ攻撃判定部１０３に対してＤｏＳ攻撃の有無の判定が要求される。ＤｏＳ攻撃判定部１０３は、この要求に応じてＳＮＭＰリクエスト保持部１０５からキューに保持されているＳＮＭＰリクエストの一覧を取得し（ＳＥＱ６)、取得した一覧に基づきこの情報処理装置１００がＤｏＳ攻撃を受けているか否かを判定する。
【００４２】
若し、同一のリモートホストから閾値以上の回数のＳＮＭＰリクエストを受信していれば、ＤｏＳ攻撃判定部１０３は、この情報処理装置１００が当該リモートホストからＤｏＳ攻撃を受けていたと判定する。ＤｏＳ攻撃判定部１０３は、このＤｏＳ攻撃を受けていた旨を示す判定結果をＳＮＭＰリクエスト管理部１０４に対して通知する（ＳＥＱ７）。
【００４３】
ＳＮＭＰリクエスト管理部１０４は、このＤｏＳ攻撃を受けていた旨を示す通知に応じて、ＳＮＭＰリクエスト保持部１０５に対して、ＤｏＳ攻撃を行ったと判定されたリモートホストから受け取ったＳＮＭＰリクエストをキューから一括削除するように、ＳＮＭＰリクエスト保持部１０５に対して要求する（ＳＥＱ２０）。ＳＮＭＰリクエスト保持部１０５は、この要求に応じて、当該リモートホストから受け取ったＳＮＭＰリクエストをキューから一括削除する。
【００４４】
ＳＮＭＰリクエスト管理部１０４は、上述のＳＥＱ２０による一括削除要求の後、ＳＮＭＰリクエスト処理部１０２に対して、キューに保持されているＳＮＭＰリクエストの処理を行うように要求する（ＳＥＱ８）。以降、ＳＥＱ９〜ＳＥＱ１４の処理で、上述の一括削除でキューに残ったＳＮＭＰリクエストの処理が行われる。
【００４５】
このように、本実施形態によれば、リモートホストから受け取ったＳＮＭＰリクエストを、処理前に一旦キューに保持する。そして、ＤｏＳ攻撃の有無の判定を、キューに保持されたＳＮＭＰリクエストのうち同一リモートホストから受け取ったＳＮＭＰリクエストの数に基づき行うようにしている。そのため、情報処理装置１００の処理能力が低くても、適切にＤｏＳ攻撃を検出することができると共に、ＤｏＳ攻撃により情報処理装置１００が提供する他のサービスが停止されることが防がれる。
【００４６】
また、ＤｏＳ攻撃を受けていたと判定した場合、キューに保持されているＳＮＭＰリクエストのうちＤｏＳ攻撃元によるＳＮＭＰリクエストを一括削除するようにしているため、無駄にＳＮＭＰリクエストに対する処理を行うことがない。
【００４７】
なお、ＤｏＳ攻撃判定部１０３により、リモートホストからＤｏＳ攻撃を受けていると判定された場合に、当該リモートホストから送信されたＳＮＭＰリクエストを情報処理装置１００が受け付けないようにすると、より好ましい。一例として、ＤｏＳ攻撃によるＳＮＭＰリクエストに含まれる、当該ＳＮＭＰリクエストの送信元の機器を示す識別情報に基づき、当該送信元の機器からのＳＮＭＰリクエストに対するフィルタをネットワークＩ／Ｆ１０１に対して設定して、当該リモートホストから送信されたＳＮＭＰリクエストの受付を禁止することが考えられる。
【００４８】
ところで、本実施形態では、リモートホストからのＳＮＭＰリクエストを、処理前に一旦キューに保持するため、図３や図４のＳＥＱ１〜ＳＥＱ４の処理を繰り返しているうちに、キューの最大サイズまで未処理のＳＮＭＰリクエストが入ってしまう可能性がある。この状態で新規に受け取ったＳＮＭＰリクエストは、キューに保持できずに捨てられてしまうことになる。
【００４９】
図５を用いて、キューの最大サイズまで未処理のＳＮＭＰリクエストが入っている場合に、新規に受け取ったＳＮＭＰリクエストが捨てられてしまうことを防ぐ一例の方法について説明する。なお、図５において、上述の図３と共通する処理には同一の符号を付し、詳細な説明を省略する。以下では、煩雑さを避けるために、上述の図３によるＤｏＳ攻撃がなされていない場合の例との差異部分を中心に説明を行う。
【００５０】
リモートホストからのＳＮＭＰリクエストを継続的に受信している間、ＳＥＱ１〜ＳＥＱ４の処理が繰り返され、受信されたＳＮＭＰリクエストがＳＮＭＰリクエスト保持部１０５によりキューに順次、保持される。
【００５１】
ここで、ＳＮＭＰリクエスト保持部１０５は、ＳＥＱ４でＳＮＭＰリクエスト管理部１０４からのＳＮＭＰリクエストのキューへの追加要求を受け取ったら、追加が要求されるＳＮＭＰリクエストをキューに追加して保持することが可能か否かを判定する。若し、追加して保持が可能であると判定されたら、当該ＳＮＭＰリクエストをキューに追加して保持する。
【００５２】
一方、既にキューの最大サイズまでＳＮＭＰリクエストが保持されており、新規のＳＮＭＰリクエストを追加して保持することができないと判定されたら、ＳＮＭＰリクエスト保持部１０５は、キューに保持されているＳＮＭＰリクエストのうち、当該新規ＳＮＭＰリクエストと重複するＳＮＭＰリクエストを削除する（ＳＥＱ３０）。
【００５３】
一例として、ＳＮＭＰリクエスト保持部１０５は、キューに保持されているＳＮＭＰリクエストから、当該新規ＳＮＭＰリクエストの送信元のリモートホストから受け取ったＳＮＭＰリクエストを検索する。さらに、検索されたＳＮＭＰリクエストから、当該新規ＳＮＭＰリクエストと内容が一致するＳＮＭＰリクエストを検索する。ここで検索されたＳＮＭＰリクエストを削除する。
【００５４】
なお、キュー内に、新規ＳＮＭＰリクエストと重複するＳＮＭＰリクエストが無かった場合、当該新規ＳＮＭＰリクエストが捨てられる。
【００５５】
上述のＳＥＱ１〜ＳＥＱ３０の処理は、この情報処理装置１００がＳＮＭＰリクエストを継続的に受信している間、繰り返される。
【００５６】
最後のＳＮＭＰリクエストの受信から所定時間が経過したら、ＳＥＱ５によりＳＮＭＰリクエスト管理部１０４からＤｏＳ攻撃判定部１０３に対してＤｏＳ攻撃の有無の判定が要求される。ＤｏＳ攻撃判定部１０３は、この要求に応じて、既に説明したようにしてＤｏＳ攻撃の有無を判定する。ＤｏＳ攻撃を受けていないと判定されたら、キューに保持されているＳＮＭＰリクエストの処理が行われる（ＳＥＱ９〜ＳＥＱ１４）。一方、ＤｏＳ攻撃を受けていたと判定されたら、図４のＳＥＱ２０によりキューに保持されているＳＮＭＰリクエストのうち、ＤｏＳ攻撃を行ったと判定されたリモートホストから受け取ったＳＮＭＰリクエストを一括削除し、キューに残ったＳＮＭＰリクエストの処理が行われる（ＳＥＱ９〜ＳＥＱ１４）。
【００５７】
＜第１の変形例＞
次に、本発明の実施形態の第１の変形例について説明する。上述の実施形態では、ＤｏＳ攻撃の有無を、リモートホスト毎のＳＮＭＰリクエストの受信数を閾値と比較することで判定したが、これはこの例に限定されるものではない。本第１の変形例では、リモートホスト毎のＳＮＭＰリクエストの受信数を計数し、同一のリモートホストから所定時間内に閾値以上の数のＳＮＭＰリクエストの受信を検知した場合に、ＤｏＳ攻撃を受けたと判定する。換言すれば、本第１の変形例では、リモートホストからのＳＮＭＰリクエストの受信速度に基づき、ＤｏＳ攻撃の有無を判定する。
【００５８】
一例として、ＤｏＳ攻撃判定部１０３は、上述の実施形態と同様に、最後のＳＮＭＰリクエストが受信されてから所定時間の経過後に、ＳＮＭＰリクエスト保持部１０５に対してキューに保持されているＳＮＭＰリクエストの一覧を要求する（ＳＥＱ６）。ＳＮＭＰリクエスト保持部１０５は、この要求に応じてＳＮＭＰリクエスト管理部１０４に対して各ＳＮＭＰリクエストの受付時刻を要求する。
【００５９】
ＳＮＭＰリクエスト保持部１０５は、この要求に応じて取得された各ＳＮＭＰリクエストの受付時刻と、キューに保持されているＳＮＭＰリクエストの一覧とを、ＳＮＭＰリクエスト毎に関連付けてＤｏＳ攻撃判定部１０３に渡す。ＤｏＳ攻撃判定部１０３は、ＳＮＭＰリクエスト保持部１０５から受け取ったＳＮＭＰリクエストの受付時刻と一覧とに基づき、各リモートホスト毎に、ＳＮＭＰリクエストの受信速度、すなわち、同一のＳＮＭＰリクエストを所定時間内に何回受け取ったかを求める。この所定時間内に受け取ったＳＮＭＰリクエスト数が閾値以上で、当該ＳＮＭＰリクエストの送信元からＤｏＳ攻撃を受けていると判定し、ＳＮＭＰリクエスト管理部１０４に対してその旨を通知する。
【００６０】
これに限らず、ＤｏＳ攻撃判定部１０３は、ＳＮＭＰリクエスト保持部１０５によってＳＮＭＰリクエストがキューに保持されるのを常時監視して、略リアルタイムにＤｏＳ攻撃の有無を判定することも可能である。一例として、ＤｏＳ攻撃判定部１０３は、キューに保持されるＳＮＭＰリクエストの受付時刻に基づき、単位時間当たりの平均受信数（受信速度）をリモートホスト毎に求める。この単位時間当たりの平均受信数を閾値と比較して、ＤｏＳ攻撃の有無を判定することが考えられる。ＤｏＳ攻撃判定部１０３は、ＤｏＳ攻撃を受けていると判定されたら、その旨をＳＮＭＰリクエスト管理部１０４に通知する。
【００６１】
ＳＮＭＰリクエスト管理部１０４は、このＤｏＳ攻撃を受けている旨の通知に応じて、ＳＮＭＰリクエスト保持部１０５に対して、キューに保持されているＳＮＭＰリクエストのうち、ＤｏＳ攻撃を行っているとされたリモートホストからのＳＮＭＰリクエストを一括削除するように要求する。
【００６２】
この第１の変形例によれば、ＤｏＳ攻撃によるＳＮＭＰリクエスト数が少なくても、情報処理装置１００がＤｏＳ攻撃を受けているか否かを判断できる。
【００６３】
＜第２の変形例＞
次に、本発明の実施形態の第２の変形例について説明する。上述した実施形態および実施形態の第１の変形例では、ＤｏＳ攻撃の有無を、受け付けたＳＮＭＰリクエストの数をリモートホスト毎に計数することで判定したが、これはこの例に限定されるものではない。本第２の変形例では、キューの状態を監視し、同一のリモートホストからのＳＮＭＰリクエストによってキューの最大サイズまでＳＮＭＰリクエストが追加されてしまった場合に、情報処理装置１００がＤｏＳ攻撃を受けていると判定する。
【００６４】
一例として、ＳＮＭＰリクエスト保持部１０５は、ＳＥＱ４でキューに新規のＳＮＭＰリクエストを追加した際に、キューの最大サイズまでＳＮＭＰリクエストが追加されたか否かを判定する。キューの最大サイズまでＳＮＭＰリクエストが追加されていないと判定されたら、次のＳＮＭＰリクエストの追加要求を待つ。
【００６５】
一方、キューの最大サイズまでＳＮＭＰリクエストが追加されたと判定したら、ＳＮＭＰリクエスト保持部１０５は、その旨をＳＮＭＰリクエスト管理部１０５に通知する。ＳＮＭＰリクエスト管理部１０５は、この通知に応じてＤｏＳ攻撃判定部１０３に対してＤｏＳ攻撃の判定を行うように要求する（ＳＥＱ５）。
【００６６】
ＤｏＳ攻撃判定部１０３は、この判定要求に応じて、キューに保持されるＳＮＭＰリクエストの一覧をＳＮＭＰリクエスト保持部１０５に要求し（ＳＥＱ６）、この要求に応じて取得された一覧に基づき、キューに保持されているＳＮＭＰリクエストが同一のリモートホストからものであるか否かを調べる。その結果、若し、キューに保持されているＳＮＭＰリクエストが同一のリモートホストからものであれば、この情報処理装置１００がＤｏＳ攻撃を受けていると判定し、その旨をＳＮＭＰリクエスト管理部１０４に対して通知する（ＳＥＱ７）。
【００６７】
ＳＮＭＰリクエスト管理部１０４は、このＤｏＳ攻撃を受けている旨の通知に応じて、ＳＮＭＰリクエスト保持部１０５に対して、キューに保持されているＳＮＭＰリクエストのうち、ＤｏＳ攻撃を行っているとされたリモートホストからのＳＮＭＰリクエストを一括削除するように要求する。
【００６８】
なお、上述では、キューに保持されているＳＮＭＰリクエスト全てが同一のリモートホストからものである場合に、ＤｏＳ攻撃を受けていると判定しているが、これはこの例に限られない。例えば、キューに保持されているＳＮＭＰリクエストのうち所定の割合以上が同一のリモートホストからものである場合に、ＤｏＳ攻撃を受けていると判定することもできる。
【００６９】
このように、本第２の変形例によれば、ＤｏＳ攻撃の有無を、キューの状態を監視することで判定しているため、ＤｏＳ攻撃の有無を、情報処理装置１００の負荷を増やすことなく、リアルタイムに近い状態で検知することができる。
【００７０】
なお、上述では、本発明がＳＮＭＰリクエストを用いたＤｏＳ攻撃に対して適用されるように説明したが、これはこの例に限定されるものではない。すなわち、本発明は、受信したリクエストを処理して応答を返すようなシステムを利用したＤｏＳ攻撃であれば、他の種類のＤｏＳ攻撃にも適用可能である。
【００７１】
また、上述では、実施形態、実施形態の第１の変形例および第２の変形例がそれぞれ独立的に用いられるように説明したが、これはこの例に限定されない。すなわち、上述の実施形態、実施形態の第１の変形例および第２の変形例は、互いに組み合わせて用いることができる。この場合、実施形態、実施形態の第１の変形例および第２の変形例のうち２または全てを、論理和として組み合わせることが考えられる。
【符号の説明】
【００７２】
１００  情報処理装置
１０１  ネットワークＩ／Ｆ
１０２  ＳＮＭＰリクエスト処理部
１０３  ＤｏＳ攻撃判定部
１０４  ＳＮＭＰリクエスト管理部
１０５  ＳＮＭＰリクエスト保持部
【先行技術文献】
【特許文献】
【００７３】
【特許文献１】特開２００８−３１０６７７号公報
【図１】
2010218462.tif 000003
【図２】
2010218462.tif 000004
【図３】
2010218462.tif 000005
【図４】
2010218462.tif 000006
【図５】
2010218462.tif 000007