(57)【要約】【課題】ＤｏＳ攻撃及びＤＤｏＳ攻撃に関連する不正パケットを事前に破棄し、サービスの継続を可能にする。【解決手段】装置間で送受信されるパケットを転送するネットワーク装置であって、記憶装置は受信したパケットを一時的に格納するキューを含み、ネットワーク装置は、キューに格納されるパケットである格納パケットの中から破棄する格納パケットを選択し、選択された格納パケットを破棄するキュー管理モジュールを有し、格納パケットを選択するために使用する比較用パケットを保持し、キュー管理モジュールは、比較用パケットと格納パケットとの間の類似度を算出し、類似度に基づいて格納パケットを選択し、選択された格納パケットをキューから破棄する。【選択図】図２
2017212617.tif 000002
【特許請求の範囲】
【請求項１】
装置間で送受信されるパケットを転送するネットワーク装置であって、
前記ネットワーク装置は、
プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続され、他の装置に接続するためのネットワークインタフェースを有し、
前記記憶装置は、受信したパケットを一時的に格納するキューを含み、
前記ネットワーク装置は、
前記キューに格納されるパケットである格納パケットの中から破棄する格納パケットを選択し、前記選択された格納パケットを破棄するキュー管理モジュールを有し、
破棄する前記格納パケットを選択するために使用する比較用パケットを保持し、
前記キュー管理モジュールは、
前記比較用パケットと前記格納パケットとの間の類似度を算出し、
前記類似度に基づいて前記格納パケットを選択し、
前記選択された格納パケットを前記キューから破棄することを特徴とするネットワーク装置。
【請求項２】
請求項１に記載のネットワーク装置であって、
前記キュー管理モジュールは、
前記ネットワーク装置が受信したパケットである受信パケットを、前記比較用パケットとして前記記憶装置に格納する処理と、
前記受信パケットと前記格納パケットとの間の類似度である第１類似度を算出する処理と、
前記第１類似度に基づいて、前記受信パケットに類似する所定の数の前記格納パケットを選択する処理と、
前記選択された前記キューから格納パケットを破棄する処理と、を含む第１パケット処理を実行することを特徴とするネットワーク装置。
【請求項３】
請求項２に記載のネットワーク装置であって、
前記記憶装置は、前記比較用パケットである第１フィードバックパケットを格納する第１記憶部を含み、
前記キュー管理モジュールは、
前記第１記憶部に前記第１フィードバックパケットが格納されていない場合、前記第１パケット処理を実行し、
前記第１記憶部に前記第１フィードバックパケットが格納されている場合、当該第１フィードバックパケットと前記格納パケットとの間の類似度である第２類似度を算出する処理と、
前記第１類似度及び第２類似度に基づいて、前記受信パケット又は前記第１フィードバックパケットに類似する所定の数の前記格納パケットを選択する処理と、
前記選択された所定の数の格納パケットの中から少なくとも一つの前記格納パケットを前記第１フィードバックパケットとして選択する処理と、
前記第１フィードバックパケットを前記第１記憶部に格納する処理と、
前記選択された格納パケットを前記キューから破棄する処理と、を含む第２パケット処理を実行することを特徴とするネットワーク装置。
【請求項４】
請求項３に記載のネットワーク装置であって、
前記記憶装置は、前記比較用パケットである第２フィードバックパケットを格納する第２記憶部を含み、
前記キュー管理モジュールは、
他のネットワーク装置によって破棄された格納パケットを含むパケットの登録要求を受信した場合、前記第２記憶部に、前記第２フィードバックパケットとして前記パケットの登録要求に含まれる格納パケットを格納し、
前記第２記憶部に前記第２フィードバックパケットが格納されている場合、当該第２フィードバックパケットと前記格納パケットとの間の類似度である第３類似度を算出する処理と、
所定の閾値より大きい前記第３類似度に対応する前記格納パケットを選択する処理と、
前記選択された格納パケットを前記キューから破棄する処理と、を含む第３パケット処理を実行することを特徴とするネットワーク装置。
【請求項５】
請求項４に記載のネットワーク装置であって、
前記第２パケット処理において、前記キュー管理モジュールが、前記第１記憶部に格納された前記第１フィードバックパケットを含む前記パケットの登録要求を前記他のネットワーク装置に送信することを特徴とするネットワーク装置。
【請求項６】
請求項４に記載のネットワーク装置であって、
前記キュー管理モジュールは、
前記ネットワーク装置が前記受信パケットを受信した場合、前記第３パケット処理を実行し、
前記第３パケット処理が実行された後の前記キューに格納されるパケットの量を示すキュー長が所定の閾値より大きい場合、前記第１パケット処理及び前記第２パケット処理を実行することを特徴とするネットワーク装置。
【請求項７】
請求項４に記載のネットワーク装置であって、
前記第１記憶部及び前記第２記憶部は、ＦＩＦＯ方式で格納するデータを管理することを特徴とするネットワーク装置。
【請求項８】
装置間で送受信されるパケットを転送するネットワーク装置のキュー制御方法であって、
前記ネットワーク装置は、
プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続され、他の装置に接続するためのネットワークインタフェースを有し、
前記記憶装置は、受信したパケットを一時的に格納するキューを含み、
前記ネットワーク装置は、
前記キューに格納されるパケットである格納パケットの中から破棄する格納パケットを選択し、前記選択された格納パケットを破棄するキュー管理モジュールを有し、
破棄する前記格納パケットを選択するために使用する比較用パケットを保持し、
前記キュー制御方法は、
前記キュー管理モジュールが、前記比較用パケットと前記格納パケットとの間の類似度を算出するステップと、
前記類似度に基づいて前記格納パケットを選択するステップと、
前記選択された格納パケットを前記キューから破棄するステップと、を含むことを特徴とするキュー制御方法。
【請求項９】
請求項８に記載のキュー制御方法であって、
前記キュー管理モジュールが、前記キューに格納されるパケットの量を示すキュー長が所定の閾値より大きい場合、前記ネットワーク装置が受信したパケットである受信パケットを、前記比較用パケットとして前記記憶装置に格納するステップと、
前記キュー管理モジュールが、前記受信パケットと前記格納パケットとの間の類似度である第１類似度を算出するステップと、
前記キュー管理モジュールが、前記第１類似度に基づいて、前記受信パケットに類似する所定の数の前記格納パケットを選択するステップと、
前記キュー管理モジュールが、前記選択された格納パケットを前記キューから破棄するステップと、を含むことを特徴とするキュー制御方法。
【請求項１０】
請求項９に記載のキュー制御方法であって、
前記記憶装置は、前記比較用パケットである第１フィードバックパケットを格納する第１記憶部を含み、
前記キュー制御方法は、
前記キュー長が所定の閾値より大きく、かつ、前記第１記憶部に前記第１フィードバックパケットが格納されている場合、前記キュー管理モジュールが、当該第１フィードバックパケットと前記格納パケットとの間の類似度である第２類似度を算出するステップと、
前記キュー管理モジュールが、前記第１類似度及び第２類似度に基づいて、前記受信パケット又は前記第１フィードバックパケットに類似する所定の数の前記格納パケットを選択するステップと、
前記キュー管理モジュールが、前記選択された所定の数の格納パケットの中から少なくとも一つの前記格納パケットを前記第１フィードバックパケットとして選択するステップと、
前記キュー管理モジュールが、前記第１フィードバックパケットを前記第１記憶部に格納するステップと、
前記キュー管理モジュールが、前記選択された格納パケットを前記キューから破棄するステップと、
前記キュー管理モジュールが、前記第１記憶部に格納された前記第１フィードバックパケットを含むパケットの登録要求を他のネットワーク装置に送信するステップと、を含むことを特徴とするキュー制御方法。
【請求項１１】
請求項１０に記載のキュー制御方法であって、
前記記憶装置は、前記比較用パケットである第２フィードバックパケットを格納する第２記憶部を含み、
前記キュー制御方法は、
前記キュー管理モジュールが、前記パケットの登録要求を受信した場合、前記第２記憶部に、前記第２フィードバックパケットとして前記パケットの登録要求に含まれる格納パケットを格納するステップと、
前記ネットワーク装置が前記受信パケットを受信し、かつ、前記第２記憶部に前記第２フィードバックパケットが格納されている場合、前記キュー管理モジュールが、当該第２フィードバックパケットと前記格納パケットとの間の類似度である第３類似度を算出するステップと、
前記キュー管理モジュールが、所定の閾値より大きい前記第３類似度に対応する前記格納パケットを選択するステップと、
前記キュー管理モジュールが、前記選択された格納パケットを前記キューから破棄するステップと、を含むことを特徴とするキュー制御方法。
【請求項１２】
装置間で送受信されるパケットを転送する複数のネットワーク装置を含む計算機システムであって、
前記複数のネットワーク装置の各々は、
プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続され、他の装置に接続するためのネットワークインタフェースを有し、
前記記憶装置は、受信したパケットを一時的に格納するキューを含み、
前記複数のネットワーク装置の各々は、
前記キューに格納されるパケットである格納パケットの中から破棄する格納パケットを選択し、前記選択された格納パケットを破棄するキュー管理モジュールを有し、
破棄する前記格納パケットを選択するために使用する比較用パケットを保持し、
前記キュー管理モジュールは、
前記比較用パケットと前記格納パケットとの間の類似度を算出し、
前記類似度に基づいて前記格納パケットを選択し、
前記選択された格納パケットを前記キューから破棄することを特徴とする計算機システム。
【請求項１３】
請求項１２に記載の計算機システムであって、
前記キュー管理モジュールは、
前記キューに格納されるパケットの量を示すキュー長が所定の閾値より大きい場合、前記ネットワーク装置が受信したパケットである受信パケットを、前記比較用パケットとして前記記憶装置に格納し、
前記受信パケットと前記格納パケットとの間の類似度である第１類似度を算出し、
前記第１類似度に基づいて、前記受信パケットに類似する所定の数の前記格納パケットを選択し、
前記キュー管理モジュールが、前記選択された格納パケットを前記キューから破棄することを特徴とする計算機システム。
【請求項１４】
請求項１３に記載の計算機システムであって、
前記記憶装置は、前記比較用パケットである第１フィードバックパケットを格納する第１記憶部を含み、
前記キュー管理モジュールは、
前記キュー長が所定の閾値より大きく、かつ、前記第１記憶部に前記第１フィードバックパケットが格納されている場合、前記キュー管理モジュールが、当該第１フィードバックパケットと前記格納パケットとの間の類似度である第２類似度を算出し、
前記第１類似度及び第２類似度に基づいて、前記受信パケット又は前記第１フィードバックパケットに類似する所定の数の前記格納パケットを選択し、
前記選択された所定の数の格納パケットの中から少なくとも一つの前記格納パケットを前記第１フィードバックパケットとして選択し、
前記第１フィードバックパケットを前記第１記憶部に格納し、
前記選択された格納パケットを前記キューから破棄し、
前記第１記憶部に格納された前記第１フィードバックパケットを含むパケットの登録要求を他のネットワーク装置に送信することを特徴とする計算機システム。
【請求項１５】
請求項１４に記載の計算機システムであって、
前記記憶装置は、前記比較用パケットである第２フィードバックパケットを格納する第２記憶部を含み、
前記キュー管理モジュールは、
前記パケットの登録要求を受信した場合、前記第２記憶部に、前記第２フィードバックパケットとして前記パケットの登録要求に含まれる格納パケットを格納し、
前記ネットワーク装置が前記受信パケットを受信し、かつ、前記第２記憶部に前記第２フィードバックパケットが格納されている場合、当該第２フィードバックパケットと前記格納パケットとの間の類似度である第３類似度を算出し、
所定の閾値より大きい前記第３類似度に対応する前記格納パケットを選択し、
前記選択された格納パケットを前記キューから破棄することを特徴とすることを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク装置のキュー制御に関する。
【背景技術】
【０００２】
ＤｏＳ（Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ）攻撃及びＤＤｏＳ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ）攻撃の増加が問題になっている。ＤｏＳ攻撃及びＤＤｏＳ攻撃は、サービスを提供するサーバ装置等の標的に対して大量のパケットを送信することによって、サービスを停止させる攻撃である。
【０００３】
ＤｏＳ攻撃及びＤＤｏＳ攻撃に使用されるパケットは、正常なパケットに偽装しているため、個々のパケットだけでは攻撃を検知するのが困難である。そのため、ＤｏＳ攻撃及びＤＤｏＳ攻撃に使用されるパケットを検知し、破棄する技術が求められている。
【０００４】
従来技術として、非特許文献１及び非特許文献２に記載された技術が知られている。非特許文献２には、ＲＥＤ（Ｒａｎｄｏｍ  Ｅａｒｌｙ  Ｄｅｔｅｃｔｉｏｎ）技術が記載されている。非特許文献１には、ＲＥＤを改良したＲＲＥＤ（Ｒｏｂｕｓｔ  Ｒａｎｄｏｍ  Ｅａｒｌｙ  Ｄｅｔｅｃｔｉｏｎ）技術が記載されている。
【０００５】
ＲＲＥＤは、低レートＤｏＳ攻撃（ＬＤｏＳ攻撃）に対処するためのキュー制御方法である。ＲＲＥＤは、パケットの到着間隔に基づいて正常なパケット及び不正パケットを識別し、不正パケットを破棄するフィルタリング手段と、キューの溜まり度合に応じてパケットを破棄するキュー管理手段とを有する。ＲＲＥＤでは、最後に破棄されたパケットと新たに受信したパケットとの間の受信間隔が所定の閾値以下である場合、受信したパケットが不正パケットとして破棄される。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Zhang, C.; Yin, J.; Cai, Z.; Chen, W. (May 2010). "RRED: Robust RED algorithm to counter low-rate denial-of-service attacks". IEEE Communications Letters 14 (5): 489-491.
【非特許文献２】Floyd, Sally; Jacobson, Van (1993年8月). “Random Early Detection (RED) gateways for Congestion Avoidance”. IEEE/ACM Transactions on Networking 1 (4): 397-413.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
非特許文献１の方式は、ＴＣＰを用いたＤｏＳ攻撃、特にＬＤｏＳ攻撃に対して効果を発揮する。しかし、ＵＤＰを用いたＤｏＳ攻撃及びＤＤｏＳ攻撃等には対応できない。
【０００８】
本発明は、様々な種類のＤｏＳ攻撃及びＤＤｏＳ攻撃において、不正パケットを高い精度で、かつ、効率的に検知し、検知された不正パケットを破棄する装置、方法、及びシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、装置間で送受信されるパケットを転送するネットワーク装置であって、前記ネットワーク装置は、プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続され、他の装置に接続するためのネットワークインタフェースを有し、前記記憶装置は、受信したパケットを一時的に格納するキューを含み、前記ネットワーク装置は、前記キューに格納されるパケットである格納パケットの中から破棄する格納パケットを選択し、前記選択された格納パケットを破棄するキュー管理モジュールを有し、破棄する前記格納パケットを選択するために使用する比較用パケットを保持し、前記キュー管理モジュールは、前記比較用パケットと前記格納パケットとの間の類似度を算出し、前記類似度に基づいて前記格納パケットを選択し、前記選択された格納パケットを前記キューから破棄することを特徴とする。
【発明の効果】
【００１０】
本発明の一態様によれば、ネットワーク装置は、類似度に基づいて、キューに格納されるパケットの中から、ＤｏＳ攻撃及びＤＤｏＳ攻撃に使用される不正パケットを高い精度で、かつ、効率的に破棄することができる。そのため、ＤｏＳ攻撃及びＤＤｏＳ攻撃を防ぐことができる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【００１１】
【図１】実施例１の計算機システムの構成例を示す図である。
【図２】実施例１のネットワーク装置のハードウェア構成及びソフトウェア構成の一例を示す図である。
【図３】実施例１のキュー管理モジュールが実行する処理の概要を説明するフローチャートである。
【図４】実施例１のキュー管理モジュールが実行する第１パケット処理の一例を説明するフローチャートである。
【図５】実施例１のキュー管理モジュールが実行する第１特徴量算出処理の一例を説明するフローチャートである。
【図６】実施例１のキュー管理モジュールが実行する第１類似度算出処理の一例を説明するフローチャートである。
【図７】実施例１のキュー管理モジュールが実行する第１パケット破棄処理の一例を説明するフローチャートである。
【図８】実施例１のキュー管理モジュールが実行する第２パケット処理の一例を説明するフローチャートである。
【図９】実施例１のキュー管理モジュールが実行する第２特徴量算出処理の一例を説明するフローチャートである。
【図１０】実施例１のキュー管理モジュールが実行する第２類似度算出処理の一例を説明するフローチャートである。
【図１１】実施例１のキュー管理モジュールが実行する第２パケット破棄処理の一例を説明するフローチャートである。
【図１２】実施例１のキュー管理モジュールが実行するフィードバックパケット受信処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例にすぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については、同一の参照符号が付されている。
【００１３】
まず、本発明の概要について説明する。
【００１４】
ＤｏＳ攻撃及びＤＤｏＳ攻撃に使用される複数のパケットは類似することが多い。そこで、装置間で送受信されるパケットを転送するネットワーク装置は、パケット間の類似度に基づいて、転送前のパケットを格納するキューから不正パケットを破棄する。
【００１５】
具体的には、ネットワーク装置は、比較用パケットを保持し、キューに格納されるパケットと比較用パケットとの間の類似度を算出する。ネットワーク装置は、算出された類似度に基づいて、キューに格納されるパケットの中から不正パケットと疑われるパケットを選択し、また、選択されたパケットを破棄する。本実施例では、ネットワーク装置が受信したパケット、ネットワーク装置が破棄したパケット、及び他のネットワーク装置が破棄したパケットが、比較用パケットとして用いられる。
【００１６】
これによって、ＤｏＳ攻撃及びＤＤｏＳ攻撃を防ぐことができる。本発明のネットワーク装置は事前に学習処理を実行する必要はない。したがって、装置のコスト等を抑えることができる。
【００１７】
また、ネットワーク装置は、ネットワークを構成する複数のネットワーク装置に不正パケットの情報をフィードバックするために、主記憶装置にパケットを保存し、また、破棄されたパケットを他のネットワーク装置に送信する。これによって、システム全体の不正パケットの検知率を向上できる。
【実施例１】
【００１８】
図１は、実施例１の計算機システムの構成例を示す図である。
【００１９】
計算機システムは、端末１０１、サーバ装置１０２、及びネットワーク１０５を構成する複数のネットワーク装置１１０から構成される。端末１０１及びサーバ装置１０２は、ネットワーク１０５を介して互いに通信する。
【００２０】
サーバ装置１０２は、所定のサービスを提供する計算機である。端末１０１は、サーバ装置１０２が提供するサービスを利用するユーザが使用する計算機である。端末１０１及びサーバ装置１０２は、図示しないプロセッサ、主記憶装置、及びネットワークインタフェースを有する。
【００２１】
ネットワーク装置１１０は、端末１０１及びサーバ装置１０２間で送受信されるデータ（パケット）を転送する。本実施例のネットワーク装置１１０は、パケットを受信した場合、比較用パケットと入出力キュー２２０（図２参照）に格納されるパケットとの間の類似度に基づいて、入出力キュー２２０に格納されるパケットを破棄する。
【００２２】
図２は、実施例１のネットワーク装置１１０のハードウェア構成及びソフトウェア構成の一例を示す図である。
【００２３】
ネットワーク装置１１０は、ハードウェア構成として、プロセッサ２００、主記憶装置２０１、及びネットワークインタフェース２０２を有する。各構成は、内部バス等を介して互いに接続される。なお、ネットワーク装置１１０は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）及びＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の副記憶装置、並びに入出力装置を有してもよい。入出力装置は、キーボード、マウス、ディスプレイ、及びタッチパネルを含む。
【００２４】
プロセッサ２００は、主記憶装置２０１に格納されるプログラムを実行する。プロセッサ２００がプログラムを実行することによってネットワーク装置１１０の機能が実現される。以下の説明では、モジュールを主語に説明する場合、プロセッサ２００が当該モジュールを実現するプログラムを実行していることを表す。
【００２５】
主記憶装置２０１は、プログラム及び情報を格納する。また、主記憶装置２０１は、プログラムが使用するワークエリアを含む。本実施例の主記憶装置２０１は、制御モジュール２１０を実現するプログラムを格納する。また、本実施例の主記憶装置２０１は、入出力キュー２２０、フィードバックパケット記憶部２２１、隣接フィードバックパケット記憶部２２２を含む。
【００２６】
制御モジュール２１０は、ネットワーク装置１１０全体を制御する。例えば、制御モジュール２１０は、パケットの送信処理及び受信処理を実行する。本実施例の制御モジュール２１０は、キュー管理モジュール２１１を含む。
【００２７】
キュー管理モジュール２１１は、比較用パケットを用いて入出力キュー２２０に格納されるパケットを破棄する。キュー管理モジュール２１１が実行する処理の詳細は後述する。
【００２８】
なお、実施例１では、制御モジュール２１０はキュー管理モジュール２１１に含まれているが、制御モジュール２１０と独立したモジュールであってもよい。
【００２９】
入出力キュー２２０は、転送するパケットを格納するバッファである。ネットワーク装置１１０は、パケットを受信した場合、入出力キュー２２０にパケットを格納し、入出力キュー２２０からパケットを読み出し、他の装置に当該パケットを転送する。
【００３０】
フィードバックパケット記憶部２２１は、キュー管理モジュール２１１によって破棄されたパケットであるフィードバックパケットを格納する記憶領域である。隣接フィードバックパケット記憶部２２２は、他のネットワーク装置１１０によって破棄されたパケットである隣接フィードバックパケットを格納する記憶領域である。フィードバックパケット記憶部２２１及び隣接フィードバックパケット記憶部２２２に格納されるパケットは比較用パケットして用いられる。
【００３１】
本実施例のフィードバックパケット記憶部２２１には一つのパケットが格納され、隣接フィードバックパケット記憶部２２２には複数のパケットが格納されるものとする。また、入出力キュー２２０、フィードバックパケット記憶部２２１、隣接フィードバックパケット記憶部２２２のパケットの入出力の制御には、ＦＩＦＯ方式が適用される。
【００３２】
また、フィードバックパケット記憶部２２１及び隣接フィードバックパケット記憶部２２２は、周期的に初期化される。フィードバックパケット記憶部２２１及び隣接フィードバックパケット記憶部２２２にパケットが格納されていない場合、後述する第１パケット処理、及び後述する第２パケット処理の一部の処理が省略される。これによって、通常時の通信におけるネットワーク装置１１０の処理負荷を軽減することができる。
【００３３】
図３は、実施例１のキュー管理モジュール２１１が実行する処理の概要を説明するフローチャートである。
【００３４】
キュー管理モジュール２１１は、外部装置からパケットを受信した場合（ステップＳ３００）、処理を開始する。このとき、キュー管理モジュール２１１は、外部から受信したパケットを比較用パケットとして主記憶装置２０１に一時的に格納する。以下の説明では、外部から受信したパケットを受信パケットとも記載する。
【００３５】
キュー管理モジュール２１１は、第１パケット処理を実行する（ステップＳ３０１）。第１パケット処理では、隣接フィードバックパケットに基づいて、入出力キュー２２０に格納されるパケットが破棄される。第１パケット処理の詳細は図４を用いて説明する。なお、隣接フィードバックパケットが存在しない場合、キュー管理モジュール２１１は、第１パケット処理を実行することなくステップＳ３０２に進む。
【００３６】
次に、キュー管理モジュール２１１は、入出力キュー２２０のキュー長が閾値より大きいか否かを判定する（ステップＳ３０２）。閾値は予め設定されているものとする。なお、閾値は更新することができる。ここで、キュー長は、入出力キュー２２０に格納されるパケットの量を示す値であり、入出力キュー２２０に格納されるパケットの数又は入出力キュー２２０に格納されるパケットのサイズの合計値等が考えられる。
【００３７】
入出力キュー２２０のキュー長が閾値以下であると判定された場合（ステップＳ３０２の判定結果がＮＯ）、キュー管理モジュール２１１は、入出力キュー２２０に受信パケットを格納する（ステップＳ３０３）。その後、キュー管理モジュール２１１は、処理を終了する。なお、キュー管理モジュール２１１は、比較用パケットとして主記憶装置２０１に格納される受信パケットを削除する。
【００３８】
入出力キュー２２０のキュー長が閾値より大きいと判定された場合（ステップＳ３０２の判定結果がＹＥＳ）、キュー管理モジュール２１１は、第２パケット処理を実行する（ステップＳ３０４）。その後、キュー管理モジュール２１１は、ステップＳ３０３に進む。第２パケット処理では、受信パケット及びフィードバックパケットに基づいて、入出力キュー２２０に格納されるパケットが破棄される。第２パケット処理の詳細は図８を用いて説明する。
【００３９】
以下の説明では、入出力キュー２２０に格納されるパケットを格納パケットとも記載する。
【００４０】
図３に示すように、キュー管理モジュール２１１は、隣接フィードバックパケットを用いて格納パケットを破棄し、その後、必要に応じて第２パケット処理を実行する。隣接フィードバックパケットは、他のネットワーク装置１１０が不正パケットとして破棄したパケットであるため、隣接フィードバックパケットに類似するパケットは、他の比較用パケットに類似するパケットよりも不正パケットである可能性が高い。
【００４１】
不正パケットである可能性が高い順に格納パケットを破棄するために、キュー管理モジュール２１１は、最初に第１パケット処理を実行し、その後、第２パケット処理をする。これによって、不正パケットを効率的に破棄できる。
【００４２】
図４は、実施例１のキュー管理モジュール２１１が実行する第１パケット処理の一例を説明するフローチャートである。
【００４３】
キュー管理モジュール２１１は、隣接フィードバックパケット及び格納パケットの特徴量を算出するための第１特徴量算出処理を実行する（ステップＳ４００）。第１特徴量算出処理の詳細は図５を用いて説明する。
【００４４】
次に、キュー管理モジュール２１１は、隣接フィードバックパケットと格納パケットとの間の類似度を算出するための第１類似度算出処理を実行する（ステップＳ４０１）。第１類似度算出処理の詳細は図６を用いて説明する。
【００４５】
次に、キュー管理モジュール２１１は、算出された類似度に基づいて格納パケットを破棄するための第１パケット破棄処理を実行する（ステップＳ４０２）。その後、キュー管理モジュール２１１は、第１パケット処理を終了する。第１パケット破棄処理の詳細は図７を用いて説明する。
【００４６】
図５は、実施例１のキュー管理モジュール２１１が実行する第１特徴量算出処理の一例を説明するフローチャートである。
【００４７】
キュー管理モジュール２１１は、変数ｉ及び変数ｊに「１」を設定することによって、各変数を初期化する（ステップＳ５００）。変数ｉは入出力キュー２２０に格納される格納パケットの識別番号を表し、変数ｊは隣接フィードバックパケット記憶部２２２に格納される隣接フィードバックパケットの識別番号を表す。
【００４８】
なお、入出力キュー２２０に格納される格納パケットの数はＮ個であり、また、隣接フィードバックパケット記憶部２２２に格納される隣接フィードバックパケットの数はＭ個であるものとする。Ｎ及びＭは１以上の整数である。
【００４９】
次に、キュー管理モジュール２１１は、格納パケットＱ＿ｉの特徴量Ａ＿ｉを算出する（ステップＳ５０１）。パケットの特徴量の算出方法は様々考えられる。本実施例では、以下のような算出方法を採用する。なお、本発明は、パケットの特徴量の算出方法に限定されない。
【００５０】
キュー管理モジュール２１１は、パケットをバイナリデータに変更し、バイナリデータに含まれる「１」の出現位置を特定する。キュー管理モジュール２１１は、特定された出現位置を示す値から構成される集合をパケットの特徴量として算出する。
【００５１】
パケットのデータ長は長いため、パケットそのものを用いてパケット間の類似度を算出する場合、計算コストが増大する。そこで、前述のような方法を用いることによって、データ量が小さいパケットの特徴量を用いることによって、類似度を算出するための計算コストを削減する。
【００５２】
例えば、バイナリデータ「０００１１１０００１００１００１００００」の場合、「１」の出現位置は、「４」、「５」、「６」、「１０」、「１３」、及び「１６」である。したがって、集合（４，５，６，１０，１３，１６）が当該バイナリデータの特徴量となる。
【００５３】
キュー管理モジュール２１１は、主記憶装置２０１に、格納パケットＱ＿ｉに対応付けた特徴量Ａ＿ｉを一時的に格納する。
【００５４】
次に、キュー管理モジュール２１１は、変数ｉに「１」を加算することによって変数ｉを更新し（ステップＳ５０２）、更新された変数ｉがＭ以下であるか否かを判定する（ステップＳ５０３）。
【００５５】
更新された変数ｉがＭ以下であると判定された場合（ステップＳ５０３の判定結果がＹＥＳ）、キュー管理モジュール２１１は、ステップＳ５０１に戻り、同様の処理を実行する。
【００５６】
更新された変数ｉがＭより大きいと判定された場合（ステップＳ５０３の判定結果がＮＯ）、キュー管理モジュール２１１は、隣接フィードバックパケットＦ＿ｊの特徴量Ｂ＿ｊを算出する（ステップＳ５０４）。パケットの特徴量の算出方法は、ステップＳ５０１と同一の方法を用いる。なお、キュー管理モジュール２１１は、主記憶装置２０１に、隣接フィードバックパケットＦ＿ｊに対応付けた特徴量Ｂ＿ｊを一時的に格納する。
【００５７】
次に、キュー管理モジュール２１１は、変数ｊに「１」を加算することによって変数ｊを更新し（ステップＳ５０５）、更新された変数ｊがＮ以下であるか否かを判定する（ステップＳ５０６）。
【００５８】
更新された変数ｊがＮ以下であると判定された場合（ステップＳ５０６の判定結果がＹＥＳ）、キュー管理モジュール２１１は、ステップＳ５０４に戻り、同様の処理を実行する。
【００５９】
更新された変数ｊがＮより大きいと判定された場合（ステップＳ５０６の判定結果がＮＯ）、キュー管理モジュール２１１は、第１特徴量算出処理を終了する。
【００６０】
図６は、実施例１のキュー管理モジュール２１１が実行する第１類似度算出処理の一例を説明するフローチャートである。
【００６１】
キュー管理モジュール２１１は、変数ｊに「１」を設定することによって、変数ｊを初期化する（ステップＳ６００）。
【００６２】
次に、キュー管理モジュール２１１は、変数ｉに「１」を設定することによって、変数ｉを初期化する（ステップＳ６０１）。
【００６３】
次に、キュー管理モジュール２１１は、格納パケットＱ＿ｉと隣接フィードバックパケットＦ＿ｊとの間の類似度Ｘ＿ｉｊを算出する（ステップＳ６０２）。
【００６４】
特徴量Ａ＿ｉ及び特徴量Ｂ＿ｊは集合であるため、本実施例では、二つの集合の類似度を示す値であるＪａｃｃａｒｄ係数、Ｄｉｃｅ係数、又はＳｉｍｐｓｏｎ係数のいずれかをパケット間の類似度として用いる。
【００６５】
集合Ａ及び集合ＢのＪａｃｃａｒｄ係数は式（１）に基づいて算出できる。集合Ａ及び集合ＢのＤｉｃｅ係数は式（２）に基づいて算出できる。集合Ａ及び集合ＢのＳｉｍｐｓｏｎ係数は、式（３）に基づいて算出できる。なお、｜Ａ｜及び｜Ｂ｜等は、集合に含まれる要素の数を示す。前述した各係数は、０から１までの値となる。各係数の値が１に近いほど二つの集合が類似していることを示す。
【００６６】
【数１】
2017212617.tif 000003
【００６７】
【数２】
2017212617.tif 000004
【００６８】
【数３】
2017212617.tif 000005
【００６９】
本実施例では、キュー管理モジュール２１１は、格納パケットＱ＿ｉの特徴量Ａ＿ｉ及び隣接フィードバックパケットＦ＿ｊの特徴量Ｂ＿ｊを主記憶装置２０１から読み出し、式（１）、式（２）、及び式（３）のいずれかを用いて類似度を算出する。キュー管理モジュール２１１は、主記憶装置２０１に、格納パケットＱ＿ｉに対応付けた類似度Ｘ＿ｉｊを一時的に格納する。
【００７０】
次に、キュー管理モジュール２１１は、変数ｉに「１」を加算することによって変数ｉを更新し（ステップＳ６０３）、更新された変数ｉがＭ以下であるか否かを判定する（ステップＳ６０４）。
【００７１】
更新された変数ｉがＭ以下であると判定された場合（ステップＳ６０４の判定結果がＹＥＳ）、キュー管理モジュール２１１は、ステップＳ６０２に戻り、同様の処理を実行する。ステップＳ６０１からステップＳ６０４までの処理によって、一つの隣接フィードバックパケットＦ＿ｊと各格納パケットＱ＿ｉとの間の類似度Ｘ＿ｉｊが算出される。
【００７２】
更新された変数ｉがＭより大きいと判定された場合（ステップＳ６０４の判定結果がＮＯ）、キュー管理モジュール２１１は、変数ｊに「１」を加算することによって変数ｊを更新し（ステップＳ６０５）、更新された変数ｊがＮ以下であるか否かを判定する（ステップＳ６０６）。
【００７３】
更新された変数ｊがＮ以下であると判定された場合（ステップＳ６０６の判定結果がＹＥＳ）、キュー管理モジュール２１１は、ステップＳ６０１に戻り、同様の処理を実行する。
【００７４】
更新された変数ｊがＮより大きいと判定された場合（ステップＳ６０６の判定結果がＮＯ）、キュー管理モジュール２１１は、第１類似度算出処理を終了する。
【００７５】
図７は、実施例１のキュー管理モジュール２１１が実行する第１パケット破棄処理の一例を説明するフローチャートである。
【００７６】
キュー管理モジュール２１１は、変数ｉに「１」を設定することによって、変数ｉを初期化する（ステップＳ７００）。
【００７７】
次に、キュー管理モジュール２１１は、格納パケットＱ＿ｉに対応付けられた類似度Ｘ＿ｉｊの最大値ｄ＿ｉを算出する（ステップＳ７０１）。
【００７８】
具体的には、キュー管理モジュール２１１は、主記憶装置２０１から格納パケットＱ＿ｉに対応付けられる類似度Ｘ＿ｉｊを全て読み出し、読み出された類似度Ｘ＿ｉｊの最大値を算出する。本実施例では、格納パケットＱ＿ｉに対して、類似度Ｘ＿ｉ１から類似度Ｘ＿ｉＮまでのＮ個の類似度が対応付けられている。そのため、キュー管理モジュール２１１は、Ｎ個の類似度の中から最大値ｄ＿ｉを算出する。キュー管理モジュール２１１は、最大値ｄ＿ｉを格納パケットＱ＿ｉの代表類似度として用いる。
【００７９】
次に、キュー管理モジュール２１１は、最大値ｄ＿ｉが閾値より大きいか否かを判定する（ステップＳ７０２）。閾値は予め設定されているものとする。なお、閾値は更新することができる。
【００８０】
最大値ｄ＿ｉが閾値以下であると判定された場合（ステップＳ７０２の判定結果がＮＯ）、キュー管理モジュール２１１は、ステップＳ７０４に進む。
【００８１】
最大値ｄ＿ｉが閾値より大きいと判定された場合（ステップＳ７０２の判定結果がＹＥＳ）、キュー管理モジュール２１１は、入出力キュー２２０から格納パケットＱ＿ｉを破棄する（ステップＳ７０３）。その後、キュー管理モジュール２１１は、ステップＳ７０４に進む。
【００８２】
実施例１では、格納パケットＱ＿ｉが複数の隣接フィードバックパケットＦ＿ｊのいずれかに類似する場合、キュー管理モジュール２１１は、当該格納パケットＱ＿ｉを破棄する。
【００８３】
ステップＳ７０２の判定結果がＮＯである場合、又は、ステップＳ７０３の処理が実行された後、キュー管理モジュール２１１は、変数ｉに「１」を加算することによって変数ｉを更新し（ステップＳ７０４）、更新された変数ｉがＭ以下であるか否かを判定する（ステップＳ７０５）。
【００８４】
更新された変数ｉがＭ以下であると判定された場合、キュー管理モジュール２１１は、ステップＳ７０１に戻り、同様の処理を実行する。
【００８５】
更新された変数ｉがＭより大きいと判定された場合、キュー管理モジュール２１１は、一時的に主記憶装置２０１に格納された各種データを削除した後、第１パケット破棄処理を終了する。
【００８６】
図８は、実施例１のキュー管理モジュール２１１が実行する第２パケット処理の一例を説明するフローチャートである。
【００８７】
キュー管理モジュール２１１は、受信パケット、フィードバックパケット、及び格納パケットの特徴量を算出するための第２特徴量算出処理を実行する（ステップＳ８００）。第２特徴量算出処理の詳細は図９を用いて説明する。
【００８８】
次に、キュー管理モジュール２１１は、受信パケットと格納パケットとの間の類似度、及びフィードバックパケットと格納パケットとの間の類似度を算出するための第２類似度算出処理を実行する（ステップＳ８０１）。第２類似度算出処理の詳細は図１０を用いて説明する。
【００８９】
次に、キュー管理モジュール２１１は、第２パケット破棄処理を実行する（ステップＳ８０２）。その後、キュー管理モジュール２１１は、第２パケット処理を終了する。第２パケット破棄処理の詳細は図１１を用いて説明する。
【００９０】
図９は、実施例１のキュー管理モジュール２１１が実行する第２特徴量算出処理の一例を説明するフローチャートである。
【００９１】
キュー管理モジュール２１１は、変数ｉに「１」を設定することによって、変数ｉを初期化する（ステップＳ９００）。
【００９２】
次に、キュー管理モジュール２１１は、格納パケットＱ＿ｉの特徴量Ａ＿ｉを算出する（ステップＳ９０１）。ステップＳ９０１の処理はステップＳ５０１の処理と同一である。
【００９３】
次に、キュー管理モジュール２１１は、変数ｉに「１」を加算することによって変数ｉを更新し（ステップＳ９０２）、更新された変数ｉがＭ以下であるか否かを判定する（ステップＳ９０３）。ステップＳ９０２及びステップＳ９０３の処理は、ステップＳ５０２及びステップＳ５０３の処理と同一である。
【００９４】
更新された変数ｉがＭ以下であると判定された場合（ステップＳ９０３の判定結果がＹＥＳ）、キュー管理モジュール２１１は、ステップＳ９０１に戻り、同様の処理を実行する。
【００９５】
更新された変数ｉがＭより大きい場合（ステップＳ９０３の判定結果がＮＯ）、キュー管理モジュール２１１は、受信パケットＧの特徴量Ｃを算出し（ステップＳ９０４）、また、フィードバックパケットＨの特徴量Ｄを算出する（ステップＳ９０５）。その後、キュー管理モジュール２１１は、第２特徴量算出処理を終了する。
【００９６】
各パケットの特徴量の算出方法は、ステップＳ５０１で用いた特徴量の算出方法と同一である。なお、フィードバックパケット記憶部２２１に複数のフィードバックパケットが格納される場合、ステップＳ９００において、キュー管理モジュール２１１は、フィードバックパケットの数を表す変数を初期化し、各フィードバックパケットについて、ステップＳ９０１からステップＳ９０３までの処理と同様の処理を実行する。
【００９７】
なお、ステップＳ５０１の処理結果が主記憶装置２０１に格納される場合、ステップＳ９００からステップＳ９０３までの処理を省略できる。また、フィードバックパケット記憶部２２１にフィードバックパケットが格納されていない場合、ステップＳ９０５の処理を省略できる。
【００９８】
図１０は、実施例１のキュー管理モジュール２１１が実行する第２類似度算出処理の一例を説明するフローチャートである。
【００９９】
キュー管理モジュール２１１は、変数ｉに「１」を設定することによって、変数ｉを初期化する（ステップＳ１０００）。
【０１００】
次に、キュー管理モジュール２１１は、格納パケットＱ＿ｉと受信パケットＧとの間の類似度Ｙ＿ｉを算出し（ステップＳ１００１）、また、格納パケットＱ＿ｉとフィードバックパケットＨとの間の類似度Ｚ＿ｉを算出する（ステップＳ１００２）。類似度の算出方法は、ステップＳ６０２で用いた算出方法と同一である。
【０１０１】
次に、キュー管理モジュール２１１は、変数ｉに「１」を加算することによって変数ｉを更新し（ステップＳ１００３）、更新された変数ｉがＭ以下であるか否かを判定する（ステップＳ１００４）。ステップＳ１００３及びステップＳ１００４の処理は、ステップＳ６０３及びステップＳ６０４の処理と同一である。
【０１０２】
更新された変数ｉがＭ以下であると判定された場合（ステップＳ１００４の判定結果がＹＥＳ）、キュー管理モジュール２１１は、ステップＳ１００１に戻り、同様の処理を実行する。
【０１０３】
更新された変数ｉがＭより大きいと判定された場合（ステップＳ１００４の判定結果がＮＯ）、キュー管理モジュール２１１は、第２類似度算出処理を終了する。
【０１０４】
なお、フィードバックパケット記憶部２２１にフィードバックパケットが格納されていない場合、ステップＳ１００２の処理を省略できる。
【０１０５】
図１１は、実施例１のキュー管理モジュールが実行する第２パケット破棄処理の一例を説明するフローチャートである。
【０１０６】
キュー管理モジュール２１１は、類似度Ｙ＿ｉの合計値Ｓｕｍ＿Ｙを算出し（ステップＳ１１００）、また、類似度Ｚ＿ｉの合計値Ｓｕｍ＿Ｚを算出する（ステップＳ１１０１）。
【０１０７】
次に、キュー管理モジュール２１１は、合計値Ｓｕｍ＿Ｙが合計値Ｓｕｍ＿Ｚ以上であるか否かを判定する（ステップＳ１１０２）。
【０１０８】
類似度の合計値が大きい場合、比較用パケットに類似する格納パケットの数が多いことを示す。そこで、本実施例のキュー管理モジュール２１１は、合計値が大きい類似度に基づいて、不正パケットを破棄する。これによって、不正パケットである可能性が高い格納パケットを多く破棄できる。
【０１０９】
合計値Ｓｕｍ＿Ｙが合計値Ｓｕｍ＿Ｚ以上であると判定された場合（ステップＳ１１０２の判定結果がＹＥＳ）、キュー管理モジュール２１１は、類似度Ｙ＿ｉに基づいて破棄する格納パケットを選択する（ステップＳ１１０３）。その後、キュー管理モジュール２１１は、ステップＳ１１０５に進む。
【０１１０】
具体的には、キュー管理モジュール２１１は、類似度Ｙ＿ｉが大きい順に所定の数の格納パケットを選択する。
【０１１１】
合計値Ｓｕｍ＿Ｙが合計値Ｓｕｍ＿Ｚより小さいと判定された場合（ステップＳ１１０２の判定結果がＮＯ）、キュー管理モジュール２１１は、類似度Ｚ＿ｉに基づいて破棄する格納パケットを選択する（ステップＳ１１０４）。その後、キュー管理モジュール２１１は、ステップＳ１１０５に進む。
【０１１２】
具体的には、キュー管理モジュール２１１は、類似度Ｚ＿ｉが大きい順に所定の数の格納パケットを選択する。
【０１１３】
ステップＳ１１０３及びステップＳ１１０４の処理が実行された後、キュー管理モジュール２１１は、選択された格納パケットの中から一つの格納パケットを選択し、当該格納パケットをフィードバックパケットとしてフィードバックパケット記憶部２２１に格納する（ステップＳ１１０５）。具体的には、以下のような処理が実行される。
【０１１４】
キュー管理モジュール２１１は、破棄する格納パケットを選択する時に用いた類似度の値が最も大きい格納パケットをフィードバックパケットして選択する。
【０１１５】
類似度Ｙ＿ｉに基づいて破棄する格納パケットが選択された場合、キュー管理モジュール２１１は、ステップＳ１１０３において選択された格納パケットの中で類似度Ｙ＿ｉが最も大きい格納パケットを選択する。類似度Ｚ＿ｉに基づいて破棄する格納パケットが選択された場合、キュー管理モジュール２１１は、ステップＳ１１０４において選択された格納パケットの中で類似度Ｚ＿ｉが最も大きい格納パケットを選択する。
【０１１６】
フィードバックパケット記憶部２２１にフィードバックパケットが格納される場合、キュー管理モジュール２１１は、当該フィードバックパケットを破棄した後に、選択された格納パケットをフィードバックパケット記憶部２２１に格納する。
【０１１７】
なお、フィードバックパケット記憶部２２１に複数のフィードバックパケットを格納できる場合、キュー管理モジュール２１１は、ステップＳ１００４において選択された格納パケットの中から、類似度の大きい順に所定の数の格納パケットを選択する。
【０１１８】
不正パケットである可能性が最も高い格納パケットをフィードバックパケットとして保持することによって、不正パケットの検知率を向上させるとともに、フィードバックパケットを用いた処理負荷を低減できる。以上がステップＳ１１０５の処理の説明である。
【０１１９】
次に、キュー管理モジュール２１１は、ステップＳ１１０３又はステップＳ１１０４において選択された格納パケットを破棄する（ステップＳ１１０６）。
【０１２０】
次に、キュー管理モジュール２１１は、ステップＳ１１０５において選択された格納パケットを含むパケットの登録要求を、他のネットワーク装置１１０に送信する（ステップＳ１１０７）。その後、キュー管理モジュール２１１は、一時的に主記憶装置２０１に格納された各種データを削除した後、第２パケット破棄処理を終了する。
【０１２１】
なお、フィードバックパケット記憶部２２１にフィードバックパケットが格納されていない場合、ステップＳ１１０１、ステップＳ１１０２、及びステップＳ１１０４の処理を省略できる。
【０１２２】
なお、図１１に示す格納パケットの破棄方法は一例であってこれに限定されない。例えば、キュー管理モジュール２１１は、類似度Ｙ＿ｉ及び類似度Ｚ＿ｉを大きい順にソートし、類似度の値が大きい順に所定の数の格納パケットを選択する。
【０１２３】
このとき、同じ格納パケットが重複して選択される可能性がある。そこで、キュー管理モジュール２１１は、一つの格納パケットＱ＿ｉに対応付けられる類似度Ｙ＿ｉ及び類似度Ｚ＿ｉを比較し、大きい方の類似度を当該格納パケットＱ＿ｉの類似度として使用する。
【０１２４】
図１２は、実施例１のキュー管理モジュール２１１が実行するフィードバックパケット受信処理の一例を説明するフローチャートである。
【０１２５】
キュー管理モジュール２１１は、他のネットワーク装置１１０からパケットの登録要求を受信した場合（ステップＳ１２００）、当該パケットの登録要求に含まれる格納パケットを隣接フィードバックパケットとして隣接フィードバックパケット記憶部２２２に格納する（ステップＳ１２０１）。
【０１２６】
隣接フィードバックパケット記憶部２２２に空きがない場合、キュー管理モジュール２１１は、ＦＩＦＯ方式にしたがって、隣接フィードバックパケット記憶部２２２に格納される隣接フィードバックパケットを一つ破棄し、その後、パケットの登録要求に含まれる格納パケットをフィードバックパケット記憶部２２１に格納する。
【０１２７】
ここで、ネットワーク装置１１０の一連の運用について説明する。
【０１２８】
初期状態のネットワーク装置１１０は、フィードバックパケット及び隣接フィードバックパケットを保持していない。したがって、ネットワーク装置１１０は、パケットを受信した場合、受信パケットと格納パケットとの間の類似度を算出する。受信パケットに類似する格納パケットは不正パケットである可能性が高いため、ネットワーク装置１１０は、類似度に基づいて、入出力キュー２２０から格納パケットを破棄する。
【０１２９】
ネットワーク装置１１０は、事前に学習処理を実行していない場合でも、高い精度で不正パケットを検知できる。
【０１３０】
ネットワーク装置１１０は、破棄したパケットをフィードバックパケットとしてフィードバックパケット記憶部２２１に格納する。ネットワーク装置１１０は、パケットを受信した場合、受信パケットと格納パケットとの間の類似度、及び、フィードバックパケットと格納パケットとの間の類似度に基づいて、入出力キュー２２０から格納パケットを破棄する。
【０１３１】
ネットワーク装置１１０は、他のネットワーク装置１１０から隣接フィードバックパケットを含むパケットの登録要求を受信した場合、隣接フィードバックパケット記憶部２２２に当該隣接フィードバックパケットを格納する。受信パケットに類似する格納パケット、フィードバックパケットに類似する格納パケット、及び隣接フィードバックパケットに類似する格納パケットのうち、隣接フィードバックパケットに類似する格納パケットが最も不正パケットである可能性が高い。
【０１３２】
そこで、ネットワーク装置１１０は、パケットを受信した場合、隣接フィードバックパケットと格納パケットとの間の類似度に基づいて、入出力キュー２２０から格納パケットを破棄する。その後、ネットワーク装置１１０は、受信パケットと格納パケットとの間の類似度、及び、フィードバックパケットと格納パケットとの間の類似度に基づいて、入出力キュー２２０から格納パケットを破棄する。
【０１３３】
フィードバックパケット及び隣接フィードバックパケットを用いることによって、システムにおける不正パケットの検知率を向上できる。
【０１３４】
従来技術ではパケットはランダムに破棄されていたが、本実施例のネットワーク装置１１０はパケットの類似度に基づいてパケットを破棄する。したがって、従来技術より高い精度で、かつ、効率的に不正パケットを破棄できる。
【０１３５】
なお、本実施例では、ネットワーク装置１１０がキュー管理モジュール２１１を含んでいたがこれに限定されない。例えば、ネットワーク装置１１０を監視する装置がキュー管理モジュール２１１を含んでもよい。
【０１３６】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【０１３７】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１３８】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０１３９】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【０１４０】
上記の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【０１４１】
１０１  端末
１０２  サーバ装置
１０５  ネットワーク
１１０  ネットワーク装置
２００  プロセッサ
２０１  主記憶装置
２０２  ネットワークインタフェース
２１０  制御モジュール
２１１  キュー管理モジュール
２２０  入出力キュー
２２１  フィードバックパケット記憶部
２２２  隣接フィードバックパケット記憶部
【図１】
2017212617.tif 000006
【図２】
2017212617.tif 000007
【図３】
2017212617.tif 000008
【図４】
2017212617.tif 000009
【図５】
2017212617.tif 000010
【図６】
2017212617.tif 000011
【図７】
2017212617.tif 000012
【図８】
2017212617.tif 000013
【図９】
2017212617.tif 000014
【図１０】
2017212617.tif 000015
【図１１】
2017212617.tif 000016
【図１２】
2017212617.tif 000017