(57)【特許請求の範囲】
【請求項１】
所定のポート番号に対して攻撃フローを送出する攻撃ホストを検知する検知装置であって、
既知の攻撃ホストのリストを記憶する記憶部と、
あるホストから前記ポート番号に対して送信されたフローについて、フロー数、パケット数、バイト数、及びこれら相互の比率からなる統計値を要素とする特徴ベクトルを生成する生成部と、
ある未知のホストに関して生成された特徴ベクトルが前記既知の攻撃ホストに関して生成された特徴ベクトルの群と所定以内に近似する場合、当該未知のホストを攻撃ホストと判定する判定部と、を備え、
前記生成部は、前記既知の攻撃ホストに関する統計値のそれぞれが所定の範囲内の値となるように、前記統計値のそれぞれを正規化し、当該統計値のうち分散が最も低い統計値を第１の要素とし、当該第１の要素及び当該第１の要素と相関係数が所定未満の統計値のみを要素とする前記特徴ベクトルを生成する検知装置。
【請求項２】
前記判定部は、前記既知の攻撃ホストに関して生成された特徴ベクトルの中心を示す中心ベクトルを求め、前記未知のホストに関して生成された前記特徴ベクトルと、当該中心ベクトルとの距離が所定の閾値未満である場合、当該未知のホストを攻撃ホストと判定する請求項１に記載の検知装置。
【請求項３】
前記判定部は、前記既知の攻撃ホストに関して生成された特徴ベクトルのうち所定の割合が含まれる前記中心ベクトルからの距離を、前記閾値として設定する請求項２に記載の検知装置。
【請求項４】
所定のポート番号に対して攻撃フローを送出する攻撃ホストを検知する検知装置であって、
既知の攻撃ホストのリストを記憶する記憶部と、
あるホストから前記ポート番号に対して送信されたフローについて、フロー数、パケット数、バイト数、及びこれら相互の比率からなる統計値を要素とする特徴ベクトルを生成する生成部と、
ある未知のホストに関して生成された特徴ベクトルが前記既知の攻撃ホストに関して生成された特徴ベクトルの群と所定以内に近似する場合、当該未知のホストを攻撃ホストと判定する判定部と、を備え、
前記生成部は、前記既知の攻撃ホストに関する統計値のそれぞれが所定の範囲内の値となるように、前記統計値のそれぞれを正規化して、前記特徴ベクトルを生成し、
前記判定部は、前記既知の攻撃ホストに関して生成された特徴ベクトルの中心を示す中心ベクトルを求め、前記既知の攻撃ホストに関して生成された特徴ベクトルのうち所定の割合が含まれる前記中心ベクトルからの距離を閾値として設定し、前記未知のホストに関して生成された前記特徴ベクトルと、前記中心ベクトルとの距離が前記閾値未満である場合、当該未知のホストを攻撃ホストと判定する検知装置。
【請求項５】
所定のポート番号に対して攻撃フローを送出する攻撃ホストをコンピュータが検知する検知方法であって、
既知の攻撃ホストのリストを記憶する記憶ステップと、
あるホストから前記ポート番号に対して送信されたフローについて、フロー数、パケット数、バイト数、及びこれら相互の比率からなる統計値を要素とする特徴ベクトルを生成する生成ステップと、
ある未知のホストに関して生成された特徴ベクトルが前記既知の攻撃ホストに関して生成された特徴ベクトルの群と所定以内に近似する場合、当該未知のホストを攻撃ホストと判定する判定ステップと、を含み、
前記生成ステップにおいて、前記既知の攻撃ホストに関する統計値のそれぞれが所定の範囲内の値となるように、前記統計値のそれぞれを正規化し、当該統計値のうち分散が最も低い統計値を第１の要素とし、当該第１の要素及び当該第１の要素と相関係数が所定未満の統計値のみを要素とする前記特徴ベクトルを生成する検知方法。
【請求項６】
所定のポート番号に対して攻撃フローを送出する攻撃ホストをコンピュータが検知する検知方法であって、
既知の攻撃ホストのリストを記憶する記憶ステップと、
あるホストから前記ポート番号に対して送信されたフローについて、フロー数、パケット数、バイト数、及びこれら相互の比率からなる統計値を要素とする特徴ベクトルを生成する生成ステップと、
ある未知のホストに関して生成された特徴ベクトルが前記既知の攻撃ホストに関して生成された特徴ベクトルの群と所定以内に近似する場合、当該未知のホストを攻撃ホストと判定する判定ステップと、を含み、
前記生成ステップにおいて、前記既知の攻撃ホストに関する統計値のそれぞれが所定の範囲内の値となるように、前記統計値のそれぞれを正規化して、前記特徴ベクトルを生成し、
前記判定ステップにおいて、前記既知の攻撃ホストに関して生成された特徴ベクトルの中心を示す中心ベクトルを求め、前記既知の攻撃ホストに関して生成された特徴ベクトルのうち所定の割合が含まれる前記中心ベクトルからの距離を閾値として設定し、前記未知のホストに関して生成された前記特徴ベクトルと、前記中心ベクトルとの距離が前記閾値未満である場合、当該未知のホストを攻撃ホストと判定する検知方法。
【請求項７】
所定のポート番号に対して攻撃フローを送出する攻撃ホストをコンピュータに検知させるための検知プログラムであって、
既知の攻撃ホストのリストを記憶する記憶ステップと、
あるホストから前記ポート番号に対して送信されたフローについて、フロー数、パケット数、バイト数、及びこれら相互の比率からなる統計値を要素とする特徴ベクトルを生成する生成ステップと、
ある未知のホストに関して生成された特徴ベクトルが前記既知の攻撃ホストに関して生成された特徴ベクトルの群と所定以内に近似する場合、当該未知のホストを攻撃ホストと判定する判定ステップと、を実行させ、
前記生成ステップにおいて、前記既知の攻撃ホストに関する統計値のそれぞれが所定の範囲内の値となるように、前記統計値のそれぞれを正規化し、当該統計値のうち分散が最も低い統計値を第１の要素とし、当該第１の要素及び当該第１の要素と相関係数が所定未満の統計値のみを要素とする前記特徴ベクトルを生成させるための検知プログラム。
【請求項８】
所定のポート番号に対して攻撃フローを送出する攻撃ホストをコンピュータに検知させるための検知プログラムであって、
既知の攻撃ホストのリストを記憶する記憶ステップと、
あるホストから前記ポート番号に対して送信されたフローについて、フロー数、パケット数、バイト数、及びこれら相互の比率からなる統計値を要素とする特徴ベクトルを生成する生成ステップと、
ある未知のホストに関して生成された特徴ベクトルが前記既知の攻撃ホストに関して生成された特徴ベクトルの群と所定以内に近似する場合、当該未知のホストを攻撃ホストと判定する判定ステップと、を実行させ、
前記生成ステップにおいて、前記既知の攻撃ホストに関する統計値のそれぞれが所定の範囲内の値となるように、前記統計値のそれぞれを正規化して、前記特徴ベクトルを生成させ、
前記判定ステップにおいて、前記既知の攻撃ホストに関して生成された特徴ベクトルの中心を示す中心ベクトルを求め、前記既知の攻撃ホストに関して生成された特徴ベクトルのうち所定の割合が含まれる前記中心ベクトルからの距離を閾値として設定し、前記未知のホストに関して生成された前記特徴ベクトルと、前記中心ベクトルとの距離が前記閾値未満である場合、当該未知のホストを攻撃ホストと判定させるための検知プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、攻撃ホストを検知する検知装置、検知方法及び検知プログラムに関する。
【背景技術】
【０００２】
従来、ルータ上で悪意のあるホスト、すなわち攻撃ホストを検知するための情報として、ＤＮＳＢＬ（ＤＮＳ  Ｂｌａｃｋｌｉｓｔ）が運用されている（例えば、非特許文献１参照）。ＤＮＳＢＬは、スパム送信ホスト等の攻撃ホストのＩＰアドレスが記録されているブラックリストである。ＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ）サーバに対して、ＩＰアドレスの情報を問い合わせると、このＤＮＳＢＬが参照されて、記録されている攻撃ホストであるか否かが判断される。
【０００３】
ところで、攻撃ホストを精度良く検知するためには、このＤＮＳＢＬをローカルで拡張、更新することが有効である。そこで、ネットワークのフローデータからスパムホストを推定することが試みられており、例えば、ブラックリストのフロー及びホワイトリスト（非攻撃ホストのリスト）のフローを利用して、教師付き学習を行い、攻撃ホストを推定する方法が提案されている（例えば、非特許文献２参照）。
【０００４】
また、ネットワークを流れるパケットを解析し、抽出した情報に基づいて攻撃を検知する方法も提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】再表２００８／０８４７２９号公報
【非特許文献】
【０００６】
【非特許文献１】「Ｔｈｅ  Ｓｐａｍｈａｕｓ  Ｐｒｏｊｅｃｔ」、［ｏｎｌｉｎｅ］、［平成２２年１１月１２日検索］、インターネット＜ｈｔｔｐ：／／ｗｗｗ．ｓｐａｍｈａｕｓ．ｏｒｇ／＞
【非特許文献２】“Ｄｅｔｅｃｔｉｏｎ  ｏｆ  Ｓｐａｍ  Ｈｏｓｔｓ  ａｎｄ  Ｓｐａｍ  Ｂｏｔｓ  Ｕｓｉｎｇ  Ｎｅｔｗｏｒｋ  Ｆｌｏｗ  Ｔｒａｆｆｉｃ  Ｍｏｄｅｌｉｎｇ，”  Ｗｉｌｌａ  Ｋ．  Ｅｈｒｌｉｃｈ，  Ａｎｅｓｔｉｓ  Ｋａｒａｓａｒｉｄｉｓ，  Ｄａｎｉｅｌｌｅ  Ｌｉｕ，  ａｎｄ  Ｄａｖｉｄ  Ｈｏｅｆｌｉｎ  （ＡＴ＆Ｔ  Ｌａｂｓ，  Ｍｉｄｄｌｅｔｏｗｎ，  ＮＪ，  ＵＳＡ），  ２０１０
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＤＮＳＢＬによる攻撃ホストの検知では、既知の有限のブラックリストに基づくため、検知率が十分でない場合がある。さらに、データベースを利用するためには、問い合わせ数に応じて高額料金が掛かってしまい、また、問い合わせのために外部に通信相手を知らしめることとなっていた。
【０００８】
また、教師付き学習により攻撃ホストを推定する場合、処理負荷が大きい上に、ブラックリストとホワイトリストの両方を必要とするため効率が低下する。さらに、パケットを解析する場合には、通信量が多くなると処理負荷が増大してしまう。
【０００９】
本発明は、処理負荷を抑制し、効率良く攻撃ホストを検知できる検知装置、検知方法及び検知プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明では、以下のような解決手段を提供する。
【００１１】
（１）所定のポート番号に対して攻撃フローを送出する攻撃ホストを検知する検知装置であって、既知の攻撃ホストのリストを記憶する記憶部と、あるホストから前記ポート番号に対して送信されたフローについて、フロー数、パケット数、バイト数、及びこれら相互の比率からなる統計値を要素とする特徴ベクトルを生成する生成部と、ある未知のホストに関して生成された特徴ベクトルが前記既知の攻撃ホストに関して生成された特徴ベクトルの群と所定以内に近似する場合、当該未知のホストを攻撃ホストと判定する判定部と、を備える検知装置。
【００１２】
このような構成によれば、検知装置は、統計値のみを利用した簡易な演算により、処理負荷を抑制し、既知の攻撃ホストのリストから効率良く攻撃ホストを検知できる。
また、ＤＮＳＢＬのような外部のデータベースを利用しないため、利用料金が発生せず、さらに、外部に通信相手を知らしめることがない。
【００１３】
（２）前記生成部は、前記既知の攻撃ホストに関する統計値のそれぞれが所定の範囲内の値となるように、前記統計値のそれぞれを正規化して、前記特徴ベクトルを生成する（１）に記載の検知装置。
【００１４】
このような構成によれば、検知装置は、統計値を正規化して特徴ベクトルを生成するので、特徴ベクトルを構成する各要素値の重要度が統一され、近似の判定における精度の向上が期待できる。
【００１５】
（３）前記生成部は、前記統計値のうち分散が最も低い統計値を第１の要素とし、当該第１の要素及び当該第１の要素と相関係数が所定未満の統計値のみを要素とする前記特徴ベクトルを生成する（２）に記載の検知装置。
【００１６】
このような構成によれば、検知装置は、冗長な要素を排除して、特徴ベクトルの次元を減らすことができるので、処理負荷が低減される。また、このとき、検知装置は、分散が最も低く、すなわち攻撃ホストの特徴を如実に表している要素を優先し、さらに、相関が低い要素のみを選択するので、冗長性が効果的に排除され、検知精度の向上が期待できる。
【００１７】
（４）前記判定部は、前記既知の攻撃ホストに関して生成された特徴ベクトルの中心を示す中心ベクトルを求め、前記未知のホストに関して生成された前記特徴ベクトルと、当該中心ベクトルとの距離が所定の閾値未満である場合、当該未知のホストを攻撃ホストと判定する（２）又は（３）に記載の検知装置。
【００１８】
このような構成によれば、検知装置は、既知の攻撃ホストに関する特徴ベクトルを代表する中心ベクトルを求め、この中心ベクトルとの距離が十分に近い特徴ベクトルが生成されるホストを攻撃ホストと判定する。したがって、検知装置は、簡易な数値演算により、既知の攻撃ホストとの近似性、すなわち攻撃ホストであるか否かを精度良く判定できる。
【００１９】
（５）前記判定部は、前記既知の攻撃ホストに関して生成された特徴ベクトルのうち所定の割合が含まれる前記中心ベクトルからの距離を、前記閾値として設定する（４）に記載の検知装置。
【００２０】
このような構成によれば、検知装置は、攻撃ホストか否かの判定基準である距離の閾値を、既知の攻撃ホストが含まれる割合に基づいて設定する。したがって、検知装置は、既存情報に基づいて効率的に判断基準を設定できる。
【００２１】
（６）接続要求パケットを所定以上の割合で含み、かつ、最もパケットを多く受信しているポート番号を選択する選択部と、前記選択部により選択されたポート番号に対してフローを送信しているホストを抽出し、前記既知の攻撃ホストとして前記記憶部に記憶させる抽出部と、を備える（１）から（５）のいずれかに記載の検知装置。
【００２２】
このような構成によれば、検知装置は、攻撃ホストのサンプルとなるブラックリストを、パケットの種類（接続要求パケット）、すなわちヘッダ情報における特定フラグ（ＳＹＮフラグ）の出現率に基づいて抽出する。したがって、検知装置は、送信されるパケットのヘッダ情報を統計処理するのみで、効率的にブラックリストを自作することができる。
【００２３】
（７）前記選択部は、使用が推奨されるポート番号のリストを取得し、当該リストに含まれていないポート番号を優先して選択する（６）に記載の検知装置。
【００２４】
このような構成によれば、検知装置は、使用が推奨される、正常なフローが多いポート番号のリストを予め取得できる場合、これらと異なるポート番号、すなわち正常ではないフローが含まれる可能性が高いポート番号を優先して選択できる。したがって、検知装置は、効率的に精度良くブラックリストを生成することができる。
【００２５】
（８）所定のポート番号に対して攻撃フローを送出する攻撃ホストをコンピュータが検知する検知方法であって、既知の攻撃ホストのリストを記憶する記憶ステップと、あるホストから前記ポート番号に対して送信されたフローについて、フロー数、パケット数、バイト数、及びこれら相互の比率からなる統計値を要素とする特徴ベクトルを生成する生成ステップと、ある未知のホストに関して生成された特徴ベクトルが前記既知の攻撃ホストに関して生成された特徴ベクトルの群と所定以内に近似する場合、当該未知のホストを攻撃ホストと判定する判定ステップと、を含む検知方法。
【００２６】
（９）所定のポート番号に対して攻撃フローを送出する攻撃ホストをコンピュータに検知させるための検知プログラムであって、既知の攻撃ホストのリストを記憶する記憶ステップと、あるホストから前記ポート番号に対して送信されたフローについて、フロー数、パケット数、バイト数、及びこれら相互の比率からなる統計値を要素とする特徴ベクトルを生成する生成ステップと、ある未知のホストに関して生成された特徴ベクトルが前記既知の攻撃ホストに関して生成された特徴ベクトルの群と所定以内に近似する場合、当該未知のホストを攻撃ホストと判定する判定ステップと、を実行させるための検知プログラム。
【発明の効果】
【００２７】
本発明によれば、処理負荷を抑制し効率良く攻撃ホストを検知できる。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施形態に係るルータの機能構成を示すブロック図である。
【図２】本発明の実施形態に係る中心ベクトルの例を示す図である。
【図３】本発明の実施形態に係る特徴ベクトルに基づいて攻撃ホストを判定する方法を示す図である。
【図４】本発明の実施形態に係る異常ホストのリストを生成する処理の流れを示すフローチャートである。
【図５】本発明の実施形態に係る攻撃ホストを検知する基準を設定する処理の流れを示すフローチャートである。
【図６】本発明の実施形態に係る攻撃ホストを検知する処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２９】
以下、本発明の実施形態について説明する。
本実施形態は、インターネット上に配置されているルータ１（検知装置）において、ネットワークを流れるフローの統計情報に基づいて、あるポート番号に対して攻撃フローを送出している送信元である攻撃ホストを検知する。
【００３０】
なお、検知装置は、本実施形態のルータ１には限られず、ネットワークのフローを収集可能な下記構成を備える情報処理装置（コンピュータ）であればよい。そして、検知装置における各機能は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、上記情報処理装置にインストールされる。また、これらのプログラムは、ＣＤ−ＲＯＭのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。
【００３１】
図１は、本実施形態に係るルータ１の機能構成を示すブロック図である。
ルータ１は、制御部１０と、記憶部２０と、通信部３０とを備える。そして、制御部１０は、選択部１１と、抽出部１２と、生成部１３と、判定部１４とを備える。また、記憶部２０は、異常ホストＤＢ２１を備える。
【００３２】
制御部１０は、ルータ１の全体を制御する部分であり、記憶部２０に記憶された各種プログラムを適宜読み出して実行することにより、前述のハードウェアと協働し、本実施形態における各種機能を実現している。制御部１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であってよい。なお、制御部１０が備える各部の機能は後述する。
【００３３】
記憶部２０は、ハードウェア群をルータ１として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ＲＯＭ、ＲＡＭ、フラッシュメモリ又はハードディスク（ＨＤＤ）であってよい。具体的には、記憶部２０には、ルータ１の基本機能であるルーティングのためのプログラムや、ルーティングテーブル等の設定データを記憶する。また、記憶部２０は、本実施形態の各種機能を制御部１０に実行させるプログラムと、抽出部１２により抽出された異常ホスト（既知の攻撃ホスト）のリストを格納するための異常ホストＤＢ２１を記憶する。
【００３４】
通信部３０は、制御部１０の制御に従って、ネットワーク間でパケットの送受信を行う。このとき、通信部３０は、送受信されるネットワーク上のフローの情報を、制御部１０へ提供する。
【００３５】
選択部１１は、ＴＣＰヘッダにＳＹＮフラグのみを含む接続要求パケットを所定以上の割合（例えば、９０％以上）で含み、かつ、最もパケットを多く受信しているポート番号を選択する。
【００３６】
通常、グローバルネットワークで頻繁に使用されるポート（以下、正常ポートという）は、ＳＹＮフラグ以外にも、ＡＣＫやＲＥＳＥＴ等のフラグが含まれるパケットを受信することが多い。一方、通常使用されないポート（以下、異常ポートという）は、ウィルスに感染したＰＣ等から異常な通信、すなわち一方的な攻撃フローを受信するため、ＳＹＮフラグのみが含まれるパケットの割合が大きい傾向にある。
そこで、選択部１１は、異常ポートを特定するために、ＳＹＮフラグのみを含むパケットを最も多く受信しているポート番号を選択する。
【００３７】
さらに、選択部１１は、使用が推奨されるポート番号（例えば、ＷＥＬＬ  ＫＮＯＷＮ  ＰＯＲＴ  ＮＵＭＢＥＲや、その一部）のリストを取得し、このリストに含まれていないポート番号を優先して選択する。このことにより、異常な通信の多いポート番号が精度良く選択される。
【００３８】
抽出部１２は、選択部１１により選択されたポート番号に対してフローを送信しているホストを抽出し、異常ホスト（既知の攻撃ホスト）として異常ホストＤＢ２１に記憶させる。
【００３９】
生成部１３は、あるホストから、指定されたポート番号に対して送信されたフローについて、フロー数、パケット数、バイト数、及びこれら相互の比率からなる統計値を要素とする特徴ベクトルを生成する。なお、フローは１又は複数のパケットからなり、パケットはバイト数の上限が規定されている。
【００４０】
ここで、特徴ベクトルの要素には、以下の６種類の統計値を採用する。
・ＦＬ＝ｌｏｇ（ｆｌ）
・ＰＫＴ＝ｌｏｇ（ｐｋｔ）
・ＢＹＴ＝ｌｏｇ（ｂｙｔ）
・ＰＰＦ＝ｌｏｇ（ｐｋｔ／ｆｌ）
・ＢＰＦ＝ｌｏｇ（ｂｙｔ／ｆｌ）
・ＢＰＰ＝ｌｏｇ（ｂｙｔ／ｐｋｔ）
なお、ｆｌ、ｐｋｔ、ｂｙｔは、それぞれ、指定されたポート番号を宛先にしてホストから送信されるフロー数、パケット数、バイト数である。
【００４１】
また、生成部１３は、異常ホストに関する統計値のそれぞれが所定の範囲内の値（０以上、１以下）となるように、各ホストに関する統計値のそれぞれを正規化して、特徴ベクトルを生成する。具体的には、生成部１３は、各統計値を以下のように正規化する。
・ＦＬＮ＝（ＦＬ−ＦＬｍｉｎ）／（ＦＬｍａｘ−ＦＬｍｉｎ）
・ＰＫＴＮ＝（ＰＫＴ−ＰＫＴｍｉｎ）／（ＰＫＴｍａｘ−ＰＫＴｍｉｎ）
・ＢＹＴＮ＝（ＢＹＴ−ＢＹＴｍｉｎ）／（ＢＹＴｍａｘ−ＢＹＴｍｉｎ）
・ＰＰＦＮ＝（ＰＰＦ−ＰＰＦｍｉｎ）／（ＰＰＦｍａｘ−ＰＰＦｍｉｎ）
・ＢＰＦＮ＝（ＢＰＦ−ＢＰＦｍｉｎ）／（ＢＰＦｍａｘ−ＢＰＦｍｉｎ）
・ＢＰＰＮ＝（ＢＰＰ−ＢＰＰｍｉｎ）／（ＢＰＰｍａｘ−ＢＰＰｍｉｎ）
なお、ＦＬｍｉｎ、ＰＫＴｍｉｎ、ＢＹＴｍｉｎ、ＰＰＦｍｉｎ、ＢＰＦｍｉｎ、ＢＰＰｍｉｎは、それぞれＮ個の異常ホストに関するＦＬｉ、ＰＫＴｉ、ＢＹＴｉ、ＰＰＦｉ、ＢＰＦｉ、ＢＰＰｉ（１≦ｉ≦Ｎ）の最小値である。また、ＦＬｍａｘ、ＰＫＴｍａｘ、ＢＹＴｍａｘ、ＰＰＦｍａｘ、ＢＰＦｍａｘ、ＢＰＰｍａｘは、それぞれＮ個の異常ホストに関するＦＬｉ、ＰＫＴｉ、ＢＹＴｉ、ＰＰＦｉ、ＢＰＦｉ、ＢＰＰｉ（１≦ｉ≦Ｎ）の最大値である。
【００４２】
ところで、これらの統計値は、全て３つの値（ｆｌ、ｐｋｔ、ｂｙｔ）から算出されるため、互いに相関が高い組み合わせが存在し得る。
そこで、生成部１３は、冗長な次元を減らすために、まず、正規化された統計値のうち分散が最も低い統計値を第１の要素（ｘ）として選択する。次に、この第１の要素と相関が低い、すなわち相関係数が所定未満の統計値（ｙｋ、１≦ｋ≦ｎ、ｎ＜６）のみを選択し、選択された統計値（ｘ、ｙｋ）を要素とする特徴ベクトル（Ｇ）を生成する。
【数１】
0005607513.tif 000002
【００４３】
判定部１４は、ある未知のホストに関して生成された特徴ベクトル（Ｇｊ）が既知の異常ホストに関して生成された特徴ベクトルの群と所定以内に近似する場合、この未知のホストを攻撃ホストと判定する。
【００４４】
具体的には、判定部１４は、まず、異常ホストに関して生成されたＮ個の特徴ベクトル（Ｇｉ）の中心を示す中心ベクトル（Ｇｃｅｎｔｅｒ）を求める。
【数２】
0005607513.tif 000003
【００４５】
図２は、本実施形態に係る中心ベクトルの例を示す図である。
簡略化のため、特徴ベクトルの要素数を２（２次元）又は３（３次元）とし、特徴ベクトルの数（Ｎ）を３として図示する。特徴ベクトルは、始点Ｏから、それぞれ点Ａ、Ｂ、Ｃに至るベクトルである。そして、中心ベクトルは、始点Ｏから３点Ａ、Ｂ、Ｃの重心Ｄへ至るベクトルとなる。
【００４６】
次に、判定部１４は、未知のホストに関して生成された特徴ベクトル（Ｇｊ）と、中心ベクトル（Ｇｃｅｎｔｅｒ）とのユークリッド距離（ｄｊ）を算出する。
【数３】
0005607513.tif 000004
【００４７】
そして、判定部１４は、このユークリッド距離（ｄｊ）が所定の閾値（ｄｔｈ）未満である場合、この未知のホストを攻撃ホストと判定する。ここで、閾値（ｄｔｈ）は、例えば、異常ホストに関して生成された特徴ベクトルのうち所定の割合が含まれる中心ベクトルからの距離として設定される。
【００４８】
図３は、本実施形態に係る特徴ベクトルに基づいて攻撃ホストを判定する方法を示す図である。
まず、判定部１４は、中心ベクトル（Ｇｃｅｎｔｅｒ）の終点からの距離が閾値（ｄｔｈ）である球面（円）を設定する。そして、判定部１４は、この球面（円）の内部を終点とする特徴ベクトル（Ｇａ）が得られるホストは、攻撃ホストと判定し、球面（円）の外部を終点とする特徴ベクトル（Ｇｂ）が得られるホストは、攻撃ホストではないと判定する。
【００４９】
なお、判定部１４は、距離（ｄｊ）と閾値（ｄｔｈ）との比較の際、二乗値（ｄｊ２及びｄｔｈ２）を用い、平方根の演算を省略してもよい。
【００５０】
図４は、本実施形態に係るルータ１において、異常ホストのリストを生成する処理の流れを示すフローチャートである。
本処理は、攻撃ホストの検知に先立って予め実行され、攻撃ホストのサンプルとしてリストが蓄積される。
【００５１】
ステップＳ１において、選択部１１は、ＴＣＰポートの中で、ＳＹＮフラグのみを含む異常パケットを多数受信しているポート番号を選択する。
【００５２】
ステップＳ２において、抽出部１２は、ステップＳ１で選択されたポート番号を宛先とするフローを送出しているホストを抽出し、これらを異常ホストとしてリストを異常ホストＤＢ２１に記憶する。
【００５３】
図５は、本実施形態に係るルータ１において、攻撃ホストを検知する基準を設定する処理の流れを示すフローチャートである。
本処理は、攻撃を検知したい宛先ポート番号（Ｐ）が指定された後に実行され、このポート番号に関しての検知処理の判断基準が設定される。
【００５４】
ステップＳ１１において、生成部１３は、異常ホストが送信元であり、指定されたポート番号（Ｐ）を宛先とするフローを抽出し、異常ホストそれぞれについて、特徴ベクトル（Ｇｉ）を生成する。
【００５５】
ステップＳ１２において、判定部１４は、ステップＳ１１で生成された複数の特徴ベクトルの中心を示す中心ベクトル（Ｇｃｅｎｔｅｒ）を算出する。
【００５６】
ステップＳ１３において、判定部１４は、ステップＳ１２で算出された中心ベクトル（Ｇｃｅｎｔｅｒ）との距離に関して、所定の割合の特徴ベクトルが含まれるように、閾値（ｄｔｈ）を算出する。
【００５７】
図６は、本実施形態に係るルータ１において、攻撃ホストを検知する処理の流れを示すフローチャートである。
本処理は、攻撃ホストか否かを判定したいホストが指定されたことにより実行される。
【００５８】
ステップＳ２１において、判定部１４は、指定されたホストから、判断基準が設定されているポート番号（Ｐ）を宛先とするフローを抽出し、この特徴ベクトルを生成する。
【００５９】
ステップＳ２２において、判定部１４は、ステップＳ２１で生成された特徴ベクトルと中心ベクトル（Ｇｃｅｎｔｅｒ）とのユークリッド距離を算出する。
【００６０】
ステップＳ２３において、判定部１４は、ステップＳ２２で算出されたユークリッド距離が設定されている閾値（ｄｔｈ）未満であるか否かを判定する。この判定がＹＥＳの場合、処理はステップＳ２４に移り、判定がＮＯの場合、処理はステップＳ２５に移る。
【００６１】
ステップＳ２４において、判定部１４は、特徴ベクトルが中心ベクトルから十分に近いので、指定されたホストが攻撃ホストであると判定する。
【００６２】
ステップＳ２５において、判定部１４は、特徴ベクトルが中心ベクトルから十分に離れているので、指定されたホストが攻撃ホストではないと判定する。
【００６３】
以上のように、本実施形態によれば、ルータ１は、統計値のみを利用した特徴ベクトルの簡易な演算により、処理負荷を抑制し、異常ホストのリストから効率良く攻撃ホストを検知できる。
このとき、特徴ベクトルの要素が正規化されることにより各要素値の重要度が統一され、また、冗長な要素を排除して特徴ベクトルの次元を減らすことにより近似の判定における精度の向上が期待できる。
【００６４】
また、ルータ１は、異常ホストに関する特徴ベクトルを代表する中心ベクトルを求め、この中心ベクトルとの距離が十分に近い特徴ベクトルが生成されるホストを攻撃ホストと判定するので、簡易な数値演算により、異常ホストとの近似性、すなわち攻撃ホストであるか否かを精度良く判定できる。
このとき、攻撃ホストか否かの判定基準である距離の閾値は、既知の異常ホストが含まれる割合に基づいて効率的に設定される。
【００６５】
また、ルータ１は、攻撃ホストのサンプルとなる異常ホストのリスト（ブラックリスト）を、ヘッダ情報におけるＳＹＮフラグの出現率に基づいて抽出するので、送信されるパケットのヘッダ情報を統計処理するのみで、効率的にブラックリストを自作することができる。
このとき、ルータ１は、使用が推奨される、正常なフローが多いポート番号のリストを予め取得できる場合、これらと異なるポート番号、すなわち正常ではないフローが含まれる可能性が高いポート番号を優先して選択できるので、効率的に精度良くブラックリストを生成できる。
【００６６】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【符号の説明】
【００６７】
１  ルータ（検知装置）
１０  制御部
１１  選択部
１２  抽出部
１３  生成部
１４  判定部
２０  記憶部
２１  異常ホストＤＢ
３０  通信部
【図１】
0005607513.tif 000005
【図２】
0005607513.tif 000006
【図３】
0005607513.tif 000007
【図４】
0005607513.tif 000008
【図５】
0005607513.tif 000009
【図６】
0005607513.tif 000010