(57)【特許請求の範囲】
【請求項１】
複数のフローを受信する受信装置と、
受信した複数のフローの各々に対するポートホッピングの実行に関与するアプリケーションプログラムの特徴を捉え、ポートホッピングを検出するポートホッピングフロー検出装置と
を含み、
前記ポートホッピングフロー検出装置は、前記複数のフローの各々に関するフロー情報に基づいて、ポートホッピングに関する情報を演算し、前記演算の結果として得られたポート移動時間差、フロー継続時間、ポート番号関係、及びアプリケーション種別を示す各パラメータと、前記各パラメータに対応し前記アプリケーションプログラムの特徴を示すパラメータに関するアプリケーション情報とを比較して、ポートホッピングの有無を検出する
ポートホッピング検出システム。
【請求項２】
請求項１に記載のポートホッピング検出システムであって、
前記フロー情報は、
フローを構成するパケットのヘッダに含まれる送信元ＩＰアドレス、送信先ＩＰアドレス、送信元ポート番号、送信先ポート番号、プロトコル番号と、
同一の前記送信元ＩＰアドレス、前記送信先ＩＰアドレス、前記送信元ポート番号、前記送信先ポート番号、前記プロトコル番号を持つパケット群のうち最初に前記ポートホッピングフロー検出装置が受信したパケットの受信時刻を示すフロー発生時刻と、
前記パケット群のうち最後に前記ポートホッピングフロー検出装置が受信したパケットの受信時刻を示す最終パケット受信時刻と、
アプリケーション種別を識別するためのフロー特徴と、
前記ポートホッピング検出の結果を示すポートホッピング検出結果と
を含む
ポートホッピング検出システム。
【請求項３】
請求項１又は２に記載のポートホッピング検出システムであって、
前記アプリケーション情報は、
ポートホッピングする前後のフロー間のポート移動時間差と、
フロー間のポートを移るまでのフロー継続時間と、
フロー間のポート番号関係と、
フロー特徴から識別されるアプリケーション種別と
を含む
ポートホッピング検出システム。
【請求項４】
請求項１乃至３のいずれか一項に記載のポートホッピング検出システムであって、
前記ポートホッピングフロー検出装置は、
前記複数のフローを個々のフローに分離し、個々のフロー毎にフロー情報を抽出するフロー分離部と、
前記フロー情報に基づいて、ポートホッピングする前後のフロー間のポート移動時間差を演算するポート移動時間差演算部と、
前記フロー情報に基づいて、ポートを移るまでのフロー継続時間を演算するフロー継続時間演算部と、
前記フロー情報に基づいて、前記フロー間の前記ポート番号関係を演算するポート移動関係演算部と、
前記フロー情報に基づいて、フロー特徴を演算し、前記アプリケーション種別を識別するフロー特徴演算部と、
前記ポート移動時間差、前記フロー継続時間、前記ポート番号関係、及び前記アプリケーション種別を示す各パラメータと、前記各パラメータに対応し前記アプリケーションプログラムの特徴を示すパラメータに関するアプリケーション情報とを比較して、ポートホッピングを検出するポートホッピング検出部と
を具備する
ポートホッピング検出システム。
【請求項５】
請求項４に記載のポートホッピング検出システムであって、
前記ポート移動時間差演算部は、前記フロー情報に基づいて、新規に発生したフローのフロー発生時刻と他の既存のフローの最終パケット受信時刻との差を演算して、前記ポート移動時間差を演算する
ポートホッピング検出システム。
【請求項６】
請求項４又は５に記載のポートホッピング検出システムであって、
前記フロー継続時間演算部は、前記フロー情報に基づいて、新規に発生したフローのフロー発生時刻と他の既存のフローの発生時刻との差を演算して、前記フロー継続時間を演算する
ポートホッピング検出システム。
【請求項７】
請求項４乃至６のいずれか一項に記載のポートホッピング検出システムであって、
前記ポート移動関係演算部は、前記フロー情報に基づいて、新規に発生したフローの送信元ポート番号、及び送信先ポート番号と他の既存の送信元ポート番号、及び送信先ポート番号を比較して、前記ポート番号関係を演算する
ポートホッピング検出システム。
【請求項８】
請求項４乃至７のいずれか一項に記載のポートホッピング検出システムであって、
前記フロー特徴演算部は、入力された個々のフローについてフロー特徴を演算し、前記フロー特徴に基づいて、前記アプリケーション種別の識別を行う
ポートホッピング検出システム。
【請求項９】
請求項４乃至８のいずれか一項に記載のポートホッピング検出システムであって、
前記フロー分離部は、フローを構成するパケットのヘッダの情報毎にフローを分離し、フロー毎にフロー情報を保存し、前記フロー情報を参照して前記フロー情報の最終パケット受信時刻を更新し、前記フロー情報を決められた条件に従い削除する
ポートホッピング検出システム。
【請求項１０】
請求項１乃至９のいずれか一項に記載のポートホッピング検出システムであって、
前記フロー情報及び帯域制御ポリシーを参照し、アプリケーション識別結果及びポートホッピング検出結果を用いて、継続的にポートホッピングするフローのポートの移動を追従し、前記帯域制御ポリシーに従い帯域制御を実施して、アプリケーション識別結果が出ていないフローの使用帯域を一時的に制限する帯域制御装置と、
前記帯域制御の結果に応じたフローを送信する送信装置と
を更に含む
ポートホッピング検出システム。
【請求項１１】
ポートホッピングを使用するアプリケーションプログラムに特有のポート移動時間差、フロー継続時間、ポート番号関係、及びアプリケーション種別を、アプリケーション情報として保存する手段と、
パケットのヘッダに含まれる複数の情報のうち少なくとも１つの情報を、フローを特定するためのフロー情報として保存する手段と、
受信した複数のパケットの各々のヘッダからフロー情報として使用される情報を抽出し、前記各パケット毎に、前記抽出された情報と前記保存されているフロー情報とを比較して、前記抽出された情報をフロー情報として保存しているか確認する手段と、
前記抽出された情報をフロー情報として保存している場合、前記保存されているフロー情報に対して、該当するパケットのうち最終のパケットの受信時刻を更新する手段と、
前記抽出された情報をフロー情報として保存していない場合、前記抽出された情報を新規のフロー情報として保存し、前記新規のフロー情報に対して、該当するパケットのうち最初のパケットの受信時刻と最終のパケットの受信時刻とを記録する手段と、
前記抽出された情報に基づいて、前記複数のパケットをフロー毎に分離する手段と、
前記新規のフロー情報の最初のパケットの受信時刻と、他の既存のフロー情報の最終のパケットの受信時刻との差を演算し、ポート移動時間差を求める手段と、
前記新規のフロー情報の最初のパケットの受信時刻と、他の既存のフロー情報の最初のパケットの受信時刻との差を演算し、フロー継続時間を求める手段と、
パケットのヘッダに含まれるポート番号をフロー情報として使用している場合、前記新規のフロー情報のポート番号と、他の既存のフロー情報のポート番号との差を演算し、ポート番号関係を求める手段と、
フロー特徴に基づいてアプリケーション種別を識別する手段と、
前記ポート移動時間差、前記フロー継続時間、前記ポート番号関係、及び前記アプリケーション種別と、前記保存されているアプリケーション情報とを比較して、ポートホッピングを検出する手段と、
前記ポートホッピングを検出した際、前記ポートホッピングの前後のフローのフロー情報を関連付けして保存する手段と
を具備する
ポートホッピング検出装置。
【請求項１２】
複数のフローを受信することと、
受信した複数のフローの各々に対するポートホッピングの実行に関与するアプリケーションプログラムの特徴を捉え、ポートホッピングを検出することと、
ポートホッピングを検出する際、前記複数のフローの各々に関するフロー情報に基づいて、ポートホッピングに関する情報を演算し、前記演算の結果として得られるポート移動時間差、フロー継続時間、ポート番号関係、及びアプリケーション種別を示す各パラメータと、前記各パラメータに対応し前記アプリケーションプログラムの特徴を示すパラメータに関するアプリケーション情報とを比較して、ポートホッピングの有無を検出することと
を含む
ポートホッピング検出方法。
【請求項１３】
請求項１２に記載のポートホッピング検出方法であって、
前記複数のフローを個々のフローに分離し、個々のフローのフロー情報を抽出することと、
前記フロー情報に基づいて、前記ポート移動時間差を演算することと、
前記フロー情報に基づいて、前記ポート継続時間を演算することと、
前記フロー情報に基づいて、前記ポート番号関係を演算することと、
前記フロー情報に基づいて、フロー特徴を演算し、前記アプリケーション種別を識別することと、
前記ポート移動時間差、前記フロー継続時間、前記ポート番号関係、及び前記アプリケーション種別を示す各パラメータと、前記各パラメータに対応し前記アプリケーションプログラムの特徴を示すパラメータに関するアプリケーション情報とを比較して、ポートホッピングを検出することと
を更に含む
ポートホッピング検出方法。
【請求項１４】
請求項１３に記載のポートホッピング検出方法であって、
前記ポート移動時間差を演算する際、前記フロー情報に基づいて、新規に発生したフローのフロー発生時刻と他の既存のフローの最終パケット受信時刻との差を演算して、前記ポート移動時間差を演算すること
を更に含む
ポートホッピング検出方法。
【請求項１５】
請求項１３又は１４に記載のポートホッピング検出方法であって、
前記ポート継続時間を演算する際、前記フロー情報に基づいて、新規に発生したフローのフロー発生時刻と他の既存のフローの発生時刻との差を演算して、前記フロー継続時間を演算すること
を更に含む
ポートホッピング検出方法。
【請求項１６】
請求項１３乃至１５のいずれか一項に記載のポートホッピング検出方法であって、
前記ポート番号関係を演算する際、前記フロー情報に基づいて、新規に発生したフローの送信元ポート番号、及び送信先ポート番号と他の既存の送信元ポート番号、及び送信先ポート番号を比較して、前記ポート番号関係を演算すること
を更に含む
ポートホッピング検出方法。
【請求項１７】
請求項１３乃至１６のいずれか一項に記載のポートホッピング検出方法であって、
前記アプリケーション種別を識別する際、フローについてフロー特徴を演算し、前記フロー特徴に基づいて、前記アプリケーション種別の識別を行うこと
を更に含む
ポートホッピング検出方法。
【請求項１８】
請求項１３乃至１７のいずれか一項に記載のポートホッピング検出方法であって、
フローを構成するパケットのヘッダの情報毎にフローを分離することと、
分離した個々のフロー毎にフロー情報を保存することと、
前記フロー情報を参照し、前記フロー情報の最終パケット受信時刻を更新することと、
前記フロー情報を決められた条件に従い削除することと
を更に含む
ポートホッピング検出方法。
【請求項１９】
請求項１２乃至１８のいずれか一項に記載のポートホッピング検出方法であって、
前記フロー情報及び帯域制御ポリシーを参照し、アプリケーション識別結果及びポートホッピング検出結果を用いて、継続的にポートホッピングするフローのポートの移動を追従することと、
前記帯域制御ポリシーに従い帯域制御を実施して、アプリケーション識別結果が出ていないフローの使用帯域を一時的に制限することと、
前記帯域制御の結果に応じたフローを送信することと
を更に含む
ポートホッピング検出方法。
【請求項２０】
請求項１２乃至１９のいずれか一項に記載のポートホッピング検出方法を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ポートホッピング識別装置、ポートホッピング識別方法、及びプログラムに関し、特にポートホッピングを多用しながらネットワーク内を通過するフローを検出し、ポートの移動を追従、及び監視するポートホッピング識別装置、ポートホッピング識別方法、及びプログラムに関する。
【背景技術】
【０００２】
インターネット上には、Ｐ２Ｐ技術を用いて可能な限り多くの帯域を使用し、かつポート番号を詐称して大きなデータを転送するアプリケーションが多数存在する。このようなアプリケーションを使用されたＩＳＰは、提供可能な帯域の大部分を一部のユーザに使われてしまう。ＩＳＰは通過するフローのうち長時間大容量のフローを発生させるものがあれば、ネットワーク管理ポリシーに従いそのフローのみを帯域制限した。この時、特定用途のポートを使用できる正規のフローか、又は不正なフローかを識別するためにアプリケーション識別が必要となる。
【０００３】
アプリケーション識別方法に関連する技術として、特開２００４−３８５５７号公報（特許文献１）に「不正アクセス遮断システム」が開示されている。
この不正アクセス遮断システムでは、正規のフローの送受信ＩＰアドレスの組み合わせと、そのフローを構成するパケットの中身を正規フローのパターンとして予め保存しておき、受信したパケットが前記正規フローのパターンと一致するかでアプリケーション識別を行っている。これを従来技術１とする。
【０００４】
また、特開２００４−１４０６１８号公報（特許文献２）に開示されている「パケットフィルタ装置及び不正アクセス検知装置」のように、不正なフローを構成するパケットのビットパターンを予め保存しておき、受信したパケットが前記ビットパターンに一致するかでアプリケーション識別を行う技術もある。これを従来技術２とする。
【０００５】
また、電子情報通信学会２００５総合大会Ｂ−６−４３（非特許文献１）に開示されている「トラフィック挙動監視による不正トラフィック検出手法」のように、フローのパケット長平均値、パケット長分散値、パケットの到着間隔平均値、パケットの到着間隔分散値で表される統計的特徴で定義されるフローの特徴を予め保存しておき、受信したフローが前記フローの統計的特徴と一致するかでアプリケーション識別を行う技術もある。この方法によりポート番号を詐称していてもアプリケーションの識別が可能となる。これを従来技術３とする。
【０００６】
【特許文献１】特開２００４−３８５５７号公報
【特許文献２】特開２００４−１４０６１８号公報
【非特許文献１】電子情報通信学会２００５総合大会Ｂ−６−４３
【発明の開示】
【発明が解決しようとする課題】
【０００７】
第１の問題は、最近登場した、ＩＳＰによる帯域制限を逃れるため短時間の間に使用するポートを移動していく「ポートホッピング」を多用するアプリケーションの検出ができないということである。その理由は、従来技術１と従来技術２、及び従来技術３は、このポートホッピングを多用するアプリケーションを考慮しておらず、実際は１つのアプリケーションが発生させる複数のフローをポート毎に個別に識別するためである。
第２の問題は、ポートホッピングを多用するアプリケーションが発生させるフローのポートの移動を継続的に追従することができないということである。その理由は、従来技術１と従来技術２、及び従来技術３は、ポートホッピングを多用するアプリケーションが発生させる複数のフローをそれぞれ独立に識別し、識別されたフロー相互の関連性については考慮していないからである。
第３の問題は、ポートホッピングを多用するアプリケーションの識別精度が低いことである。その理由は、従来技術１と従来技術２、及び従来技術３では観察時間が長いほどアプリケーション識別精度が向上するが、ポートホッピングを多用するアプリケーションの識別においてはフローの観察時間は短くなり、信頼度が低くなるためである。特に従来技術３ではフローの統計的特徴で定義されるフローの特徴は、観察時間が短ければ精度が大きく低下するため問題になる。
本発明の目的は、ポートホッピングを多用するアプリケーションの検出ができるシステムを提供することにある。
本発明の他の目的は、ポートホッピングを多用するアプリケーションが発生させるフローのポートの移動を継続的に追従することができるシステムを提供することにある。
本発明の更に他の目的は、ポートホッピングを多用するアプリケーションのアプリケーション識別精度を向上させることができるシステムを提供することにある。
【課題を解決するための手段】
【０００８】
以下に、［発明を実施するための最良の形態］で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。但し、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００９】
本発明のポートホッピング検出システムは、ポートホッピングの実行に関与するアプリケーションプログラムの特徴を捉えポートホッピングを検出するポートホッピング検出システムにおいて、受信した複数のデータフローの各々に関するデータフロー情報に基づいて、ポートホッピングに関する情報を演算し、前記演算の結果として得られたポート移動時間差、データフロー継続時間、ポート番号関係、及びアプリケーション種別と、前記アプリケーションプログラムに関するアプリケーション情報とを比較してポートホッピングの有無を検出するポートホッピングフロー検出装置（２）を有する。
【００１０】
前記データフロー情報は、データフローを構成するパケットのヘッダに含まれる送信元ＩＰアドレス、送信先ＩＰアドレス、送信元ポート番号、送信先ポート番号、プロトコル番号と、同一の前記送信元ＩＰアドレス、前記送信先ＩＰアドレス、前記送信元ポート番号、前記送信先ポート番号、前記プロトコル番号を持つパケット群のうち最初に前記ポートホッピングフロー検出装置（２）が受信したパケットの受信時刻を示すデータフロー発生時刻と、前記パケット群のうち最後に前記ポートホッピングフロー検出装置（２）が受信したパケットの受信時刻を示す最終パケット受信時刻と、前記データフローのアプリケーション種別を識別するためのデータフロー特徴と、記ポートホッピング検出の結果を示すポートホッピング検出結果とを含む。
【００１１】
前記アプリケーション情報は、ポートホッピングする前後の前記データフロー間のポート移動時間差と、前記ポートを移るまでのデータフロー継続時間と、前記データフロー間のポート番号関係と、前記データフローの特徴から識別されたアプリケーション種別と
を含む。
【００１２】
前記ポートホッピングフロー検出装置（２）は、前記複数のデータフローを個々のデータフローに分離し、個々のデータフロー毎に前記データフロー情報を抽出するデータフロー分離部（２１）と、前記データフロー情報に基づいて、前記ポート移動時間差を演算するポート移動時間差演算部（２２）と、前記データフロー情報に基づいて、ポートを移るまでの前記データフロー継続時間を演算するデータフロー継続時間演算部（２３）と、前記データフロー情報に基づいて、前記データフロー間の前記ポート番号関係を演算するポート移動関係演算部（２４）と、前記データフロー情報に基づいて、受信したデータフローの特徴を演算し前記アプリケーション種別を識別するデータフロー特徴演算部（２５）と、前記ポート移動時間差、前記データフロー継続時間、前記ポート番号関係、及び前記アプリケーション種別と、前記アプリケーション情報とを比較することによりポートホッピングを検出するポートホッピング検出部（２６）とを具備する。
【００１３】
前記ポート移動時間差演算部（２２）は、前記データフロー情報に基づいて、新規に発生したデータフローのデータフロー発生時刻と他の既存のデータフローの最終パケット受信時刻との差を演算することにより前記ポート移動時間差を演算する。
【００１４】
前記データフロー継続時間演算部（２３）は、前記データフロー情報に基づいて、新規に発生したデータフローのデータフロー発生時刻と他の既存のデータフローの発生時刻との差を演算することにより前記データフロー継続時間を演算する。
【００１５】
前記ポート移動関係演算部（２４）は、前記データフロー情報に基づいて、新規に発生したデータフローの送信元ポート番号、及び送信先ポート番号と他の既存の送信元ポート番号、及び送信先ポート番号を比較することにより前記ポート番号関係を演算する。
【００１６】
前記データフロー特徴演算部（２５）は、入力された個々のデータフローについてデータフローの特徴を演算し前記アプリケーション種別の識別を行う。
【００１７】
前記データフロー分離部（２１）は、データフローを構成するパケットのヘッダの情報毎に入力されたデータフローを分離し、受信したデータフローの前記データフロー情報を保存し、保存している前記データフロー情報を参照して前記データフロー情報の最終パケット受信時刻を更新し、保存している前記データフロー情報を決められた条件に従い削除する。
【００１８】
本発明の帯域制御システムは、ポートホッピングの実行に関与するアプリケーションプログラムの特徴を捉えポートホッピングを検出し、前記アプリケーションに対して保存されている帯域制御ポリシーに従い継続的に帯域制御する帯域制御システムにおいて、受信した複数のデータフローの各々に関するデータフロー情報に基づいてポートホッピングに関する情報を演算し、前記演算の結果として得られたポート移動時間差、データフロー継続時間、ポート番号関係、及びアプリケーション種別と、前記アプリケーションプログラムに関するアプリケーション情報とを比較してポートホッピングの有無を検出するポートホッピングフロー検出装置（２）と、前記帯域制御ポリシーを参照して前記データフローの使用帯域を制限する帯域制御装置（５）とを有する。
【００１９】
前記ポートホッピングフロー検出装置（２）は、前記複数のデータフローを個々のデータフローに分離し、個々のデータフロー毎に前記データフロー情報を抽出するデータフロー分離部（２１）と、前記データフロー情報に基づいて、前記ポート移動時間差を演算するポート移動時間差演算部（２２）と、前記データフロー情報に基づいて、ポートを移るまでの前記データフロー継続時間を演算するデータフロー継続時間演算部（２３）と、前記データフロー情報に基づいて、前記データフロー間の前記ポート番号関係を演算するポート移動関係演算部（２４）と、前記データフロー情報に基づいて、受信したデータフローの特徴を演算し前記アプリケーション種別を識別するデータフロー特徴演算部（２５）と、前記ポート移動時間差、前記データフロー継続時間、前記ポート番号関係、及び前記アプリケーション種別と、前記アプリケーション情報とを比較することによりポートホッピングを検出するポートホッピング検出部（２６）と、受信したそれぞれのデータフローの前記データフロー情報を保存する前記データフロー情報格納部と、前記アプリケーションプログラムの前記アプリケーション情報を保存するアプリケーション情報格納部と、帯域制御ポリシーを保存する帯域制御ポリシー格納部（３３）とを有する。
【００２０】
本発明のポートホッピング検出方法は、（ａ）受信した複数のデータフローの各々に関するデータフロー情報に基づいて、ポートホッピングに関する情報を演算し、前記演算の結果として得られるポート移動時間差、データフロー継続時間、ポート番号関係、及びアプリケーション種別と、前記アプリケーションプログラムに関するアプリケーション情報とを比較してポートホッピングの有無を検出するステップと、（ｂ）前記データフロー情報、及び前記アプリケーション情報を保存するステップとを具備する。
【００２１】
前記（ａ）ステップは、（ａ１）前記複数のデータフローを個々のデータフローに分離し、個々のデータフローの前記データフロー情報を抽出するステップと、（ａ２）前記ポート移動時間差を演算するステップと、（ａ３）前記データフロー継続時間を演算するステップと、（ａ４）前記ポート番号関係を演算するステップと、（ａ５）受信したデータフローの特徴を演算し前記アプリケーション種別を識別するステップと、（ａ６）前記ポート移動時間差、前記データフロー継続時間、前記ポート番号関係、及び前記アプリケーション種別と、前記アプリケーションプログラムの情報とを比較することによりポートホッピングを検出するステップとを具備する。
【００２２】
前記（ａ２）ステップは、（ａ２１）前記データフロー情報に基づいて、新規に発生したデータフローのデータフロー発生時刻と他の既存のデータフローの最終パケット受信時刻との差を演算することにより前記ポート移動時間差を演算するステップを具備する。
【００２３】
前記（ａ３）ステップは、（ａ３１）前記データフロー情報に基づいて、新規に発生したデータフローのデータフロー発生時刻と他の既存のデータフローの発生時刻との差を演算することにより前記データフロー継続時間を演算するステップを具備する。
【００２４】
前記（ａ４）ステップは、（ａ４１）前記データフロー情報に基づいて、新規に発生したデータフローの送信元ポート番号、及び送信先ポート番号と他の既存の送信元ポート番号、及び送信先ポート番号を比較することにより前記ポート番号関係を演算するステップを具備する。
【００２５】
前記（ａ３）ステップは、前記データフローについてデータフローの特徴を演算し前記アプリケーション種別の識別を行うステップを具備する。
【００２６】
前記（ａ２）ステップは、（ａ２２）データフローを構成するパケットのヘッダの情報毎に前記データフローを分離するステップと、（ａ２３）分離した個々のデータフローの前記データフロー情報を保存するステップと、（ａ２４）保存している前記データフロー情報を参照し前記データフロー情報の最終パケット受信時刻を更新するステップと、（ａ２５）保存している前記データフロー情報を決められた条件に従い削除するステップとを更に具備する。
【００２７】
本発明のポートホッピング検出方法は、（ｃ）帯域制御ポリシーを保存するステップと、（ｄ）前記帯域制御ポリシーを参照して前記データフローの使用帯域を制限するステップとを更に具備する。
【００２８】
本発明のポートホッピング検出用プログラムは、上記のいずれかのポートホッピング検出方法を、コンピュータに実行させるためのプログラムである。
【発明の効果】
【００２９】
第１の効果は、ポートホッピングを多用するアプリケーションの検出ができることにある。その理由は、ポートホッピングするアプリケーションはポートホップする前後のフロー間にポート移動時間差、フロー継続時間、ポート番号関係、フロー特徴と相関があるため、受信した複数のフローのポート移動時間差、フロー継続時間、ポート番号関係、フロー特徴とポートホッピングするアプリケーションの情報とを比較することによりポートホッピングを多用するアプリケーションの特徴を捉えるためである。
第２の効果は、ポートホッピングを多用するアプリケーションが発生させるフローのポートの移動を継続的に追従することができることにある。その理由は、第１の効果によりポートホッピングを検出した場合ポートホッピングしたフローのフロー情報を関連付けして保存しておくためである。
第３の効果は、ポートホッピングを多用するアプリケーションのアプリケーション識別精度を向上させることができることにある。その理由は、第２の効果によりポートホッピングしたフローのフロー情報を参照することによりポートホッピングした前後のフローを１つのフローとして扱うことができる。このため前記アプリケーションを長時間観察できるためである。
【発明を実施するための最良の形態】
【００３０】
以下に本発明の第１実施形態について添付図面を参照して説明する。
図１を参照すると、本発明のポートホッピング検出システムは、受信装置１と、ポートホッピングフロー検出装置２と、記憶装置３と、フロー情報表示装置４とを有する。
【００３１】
受信装置１は、複数のフローを受信する。ポートホッピングフロー検出装置２は、受信したフロー個々に対しポートホッピングの有無を検出する。記憶装置３は、フロー情報、及びポートホッピングを多用するアプリケーションの情報を保存する。フロー情報表示装置４は、記憶装置３に保存されたフロー情報を表示する。
【００３２】
ここで、フロー情報とは、フローを構成するパケットのヘッダに含まれる送信元ＩＰアドレス、送信先ＩＰアドレス、送信元ポート番号、送信先ポート番号、プロトコル番号と、フロー発生時刻、最終パケット受信時刻、フロー特徴、ポートホッピング検出結果を含む、フローを一意に特定しその特徴を示す情報である。
【００３３】
同一の送信元ＩＰアドレス、送信先ＩＰアドレス、送信元ポート番号、送信先ポート番号、プロトコル番号を持つパケット群のうち一番最初に受信したパケットの受信時刻をフロー発生時刻とし、一番最後に受信したパケットの受信時刻を最終パケット受信時刻とする。これらのフロー情報はフロー情報格納部３１にフロー毎に保存される。
【００３４】
受信装置１は、装置に入力されるフローを受信し、ポートホッピングフロー検出装置２へフローを送る。
【００３５】
ポートホッピングフロー検出装置２は、フロー分離部２１と、ポート移動時間差演算部２２と、フロー継続時間演算部２３と、ポート移動関係演算部２４と、フロー特徴演算部２５と、ポートホッピング検出部２６とを有する。
【００３６】
フロー分離部２１は、受信した複数のフローを個々のフローに分離し、個々のフローのフロー情報を抽出する。ポート移動時間差演算部２２は、ポート移動時間差を演算する。フロー継続時間演算部２３は、ポートを移るまでの時間を演算する。ポート移動関係演算部２４は、フロー間のポート番号関係を演算する。フロー特徴演算部２５は、受信したフローの特徴を演算しアプリケーション種別を識別する。ポートホッピング検出部２６は、受信した複数のフローのポートホッピングに関する情報の演算結果とポートホッピングするアプリケーションの情報とを比較することによりポートホッピングを検出する。
【００３７】
また、記憶装置３は、フロー情報格納部３１と、アプリケーション情報格納部３２とを有する。
フロー情報格納部３１は、受信したそれぞれのフローの情報を保存する。アプリケーション情報格納部３２は、ポートホッピングを多用するアプリケーションの情報を保存する。
【００３８】
フロー分離部２１は入力されたフローを、各フローを構成するパケットのヘッダに含まれる送信元ＩＰアドレス、送信先ＩＰアドレス、送信元ポート番号、送信先ポート番号、プロトコル番号の組み合わせ毎に分離する。この時、フロー分離部２１はフロー情報格納部３１に保存してあるフロー情報を参照しフロー情報の最終パケット受信時刻を更新する。
【００３９】
また、フロー分離部２１は、フロー情報格納部３１に保存してあるフロー情報を参照した時、現在時刻と最終パケット受信時刻の関係がある条件に当てはまる場合、そのフローのフロー情報を削除する。ここで、ある条件とは、例えば「現在時刻と最終パケット受信時刻の差に一定以上の開きがある」などである。
【００４０】
更に、フロー分離部２１はフロー情報格納部３１にフロー情報が保存されていない新規のフローを受信した場合、新規に受信したフロー用のフロー情報をフロー情報格納部３１へ保存し、新規に発生したフローと送信元ＩＰアドレス、及び送信先ＩＰアドレスの組み合わせが一致するすべてのフローのフロー情報をポート移動時間差演算部２２、フロー継続時間差演算部２３、ポート番号関係演算部２４、フロー特徴演算部２５に送信する。
【００４１】
但し、フロー特徴演算部２５に実パケットを入力する必要がある場合には、フロー分離部２１はフロー特徴演算部２５に対して新規に発生したフローと送信元ＩＰアドレス、及び送信先ＩＰアドレスの組み合わせが一致するすべてのフローの実パケットを送信する。
【００４２】
フロー情報格納部３１は本発明のポートホッピングフロー検出装置２が受信したフローのフロー情報を保存する。フロー情報格納部３１はフロー情報をフロー分離部２１、及びポートホッピング検出部２４により更新される。
【００４３】
ポート移動時間差演算部２２は、フロー情報から新規に発生したフローと既存のフロー間のポート移動時間差を演算する。ポート移動時間差とは、例えば、あるフローＡからフローＢにポートホッピングする場合の移動にかかる時間を指す。フロー情報には各フローのフロー発生時刻と最終パケット受信時刻が保存されているため、新規に発生したフローのフロー発生時刻と他の既存のフローの最終パケット受信時刻との差を演算することによりポート移動時間差を演算する。ポート移動時間差演算部２２は、演算結果をポートホッピング検出部２６へ送信する。
【００４４】
フロー継続時間演算部２３は、フロー情報から新規に発生したフローと既存のフロー間のフロー継続時間を演算する。フロー継続時間とは、例えば、フローＡからフローＢにポートホッピングする場合のフローＡが発生してからフローＢが発生するまでの時間を指す。フロー情報には各フローのフロー発生時刻が保存されているため、新規に発生したフローのフロー発生時刻と他の既存のフローの発生時刻との差を演算することによりフロー継続時間を演算する。フロー継続時間演算部２３は、演算結果をポートホッピング検出部２６へ送信する。
【００４５】
ポート番号関係演算部２４は、フロー情報から新規に発生したフローと既存フロー間のポート番号関係を演算する。ポート番号関係とは、２つのフローの使用するポート番号の関係を示す情報で、例えば、フローＡからフローＢにポートホッピングする場合、フローＡの送信元ポート番号、送信先ポート番号とフローＢの送信元ポート番号、送信先ポート番号の差などがある。但し、演算すべきポート番号関係は検出するアプリケーションの特徴に依存するため、ポート番号関係とは前記の例に限らない。フロー情報には各フローの送信元ポート番号、及び送信先ポート番号が保存されているため、新規に発生したフローの送信元ポート番号、及び送信先ポート番号と他の既存の送信元ポート番号、及び送信先ポート番号を比較することによりポート番号関係を演算する。ポート番号関係演算部２４は、演算結果をポートホッピング検出部２６へ送信する。
【００４６】
フロー特徴演算部２５は、入力された個々のフローについてフローの特徴を演算しアプリケーション種別の識別を行う。アプリケーション種別の識別手段としては、従来方式１又は従来技術２がある。フロー特報演算部２５は、フローのアプリケーション種別の識別結果をポートホッピング検出部２６に送る。
【００４７】
ポートホッピング検出部２６は、ポート移動時間差、フロー継続時間、ポート番号関係、及びアプリケーション種別と、アプリケーション情報格納部３２が保存しているアプリケーション情報とを比較することによりポートホッピングを検出する。ポートホッピングするアプリケーションはポートホップする前後のフロー間でポート移動時間差、フロー継続時間、ポート番号関係、及びアプリケーション種別に特徴があるため、その特徴をアプリケーション情報格納部３２に保存しておくことでポートホッピングを検出することができる。ポートホッピング検出部２６はポートホッピング検出結果をポートホッピングの前後のフローのフロー情報を関連付けすることによりフロー情報へ反映し、フロー情報をフロー情報格納部３１に保存する。
【００４８】
アプリケーション情報格納部３２はポートホッピングするアプリケーションのアプリケーション情報を保存する。アプリケーション情報とは、ポートホップする前後のフロー間のポート移動時間差、フロー継続時間、ポート番号関係、及びアプリケーション種別といった、１つのポートホッピングを行うアプリケーションの特徴情報である。アプリケーション種別としては、例えば「各フローともファイル転送系アプリケーションである」などがある。
【００４９】
フロー情報表示装置４はフロー情報格納部３１に保存されているフロー情報を表示する。
【００５０】
次に、図２を参照して本発明の第１実施形態の動作について詳細に説明する。
（１）ステップＳ１
本発明のポートホッピング検出システムは、フローを受信する。
（２）ステップＳ２
入力されたフローの、各フローを構成するパケットのヘッダに含まれる送信元ＩＰアドレス、送信先ＩＰアドレス、送信元ポート番号、送信先ポート番号、プロトコル番号の組み合わせを確認し、前記フローのフロー情報を保存しているか確認する。ステップＳ２の結果、入力されたフローのフロー情報が保存されていなかった場合ステップＳ３−１に移行し、入力されたフローのフロー情報が保存されていた場合ステップＳ３−２に移行する。
（３）ステップＳ３−１
ステップＳ２において入力されたフローのフロー情報が保存されていなかった場合、前記フローのフロー情報を保存する。
（４）ステップＳ４
更に、入力されたフローを送信元ＩＰアドレス、送信先ＩＰアドレス、送信元ポート番号、送信先ポート番号、プロトコル番号の組み合わせ毎に分離する。
（５）ステップＳ５−１
次に、フロー情報から新規に発生したフローと既存のフロー間のポート移動時間差を演算する。
（６）ステップＳ５−２
また、フロー情報から新規に発生したフローと既存のフロー間のフロー継続時間を演算する。
（７）ステップＳ５−３
また、フロー情報から新規に発生したフローと既存フロー間のポート番号関係を演算する。
（８）ステップＳ５−４
また、入力された個々のフローについてフローの特徴を演算しアプリケーション種別の識別を行う。
（９）ステップＳ６
次に、ポート移動時間差、フロー継続時間、ポート番号関係、及びアプリケーション種別と、保存していたアプリケーション情報とを比較することによりポートホッピングを検出する。ステップＳ６の結果、ポートホッピングを検出した場合ステップＳ７へ移行し、ポートホッピングを検出しなかった場合ステップＳ８へ移行する。
（１０）ステップＳ７
ステップＳ６の結果、ポートホッピングを検出した場合、ポートホッピングした前後のフローのフロー情報を関連付けし、フロー情報を保存する。
（１１）ステップＳ３−２
なお、ステップＳ２において入力されたフローが新規フローでなかった場合、入力されたフローのフロー情報のうち最終パケット受信時刻を更新し、保存する。
（１２）ステップＳ８
最後に、保存しているフロー情報を表示する。
【００５１】
次に、本発明の第１実施形態の効果について説明する。
本実施形態では、新規に発生したフローと他の既存フロー間のポート移動時間差、フロー継続時間、ポート番号関係、及びアプリケーション種別と、アプリケーション情報格納部３２が保存しているアプリケーション情報とを比較することによりポートホッピングを検出することができる。また、ポートホッピングしたフローのフロー情報を関連付けし保存しておくことにより、継続的にポートの移動を追従することができる。更に、検出結果をアプリケーション識別部が参照することによりポートホッピングしたフローを１つのフローとして扱うことができる。このため、フロー特徴演算部２５は長時間フローを観察できるためアプリケーション種別の識別精度が向上する。
【００５２】
次に、本発明の第２実施形態について図面を参照して詳細に説明する。
図３を参照すると、本発明のポートホッピング検出システムは、受信装置１と、ポートホッピングフロー検出装置２と、記憶装置３と、帯域制御装置５と、送信装置６とを有する。
【００５３】
本発明の第２実施形態は、図１におけるフロー情報表示装置４に代わり、帯域制御装置５と、送信装置６とを有し、記憶装置３に帯域制御ポリシー格納部３３が加えられ、フロー分離部２１ｂにより分離されたフローが帯域制御装置５に入力され、帯域制御システムとして動作する点で異なる。
【００５４】
帯域制御ポリシー格納部３３は、装置管理者の帯域制御ポリシーを格納する。帯域制御ポリシーとしては、従来のアプリケーション毎の帯域制御ポリシーの他に、例えば、「ポートホッピングしたフローに対しては使用帯域をある一定の帯域に制限する」、あるいは「帯域の使用を禁止する」などがある。また、アプリケーション種別の識別結果と連携して、アプリケーション種別の識別結果が出ていないフローに対して使用できる帯域を制限するというポリシーもある。但し、アプリケーション識別結果が出ていないフローに対する帯域制限は一時的なもので、ＩＰ電話などのリアルタイム通信のフローに影響が出ない程度に制限することが望ましく、またアプリケーション種別の識別結果が出次第各アプリケーション毎の帯域制御ポリシーを使用することが望ましい。
【００５５】
帯域制御装置５は帯域制御ポリシー格納手段３３が保存している帯域制御ポリシーに従い入力されるフローに対し帯域制限する。
送信装置６は帯域制御装置５により帯域制限を受けたフローを送出する。
【００５６】
次に、図４を参照して本発明の第２実施形態の動作について詳細に説明する。
図４のステップＳ１からＳ７までに示される本実施形態における受信装置１、ポートホッピングフロー検出装置２ｂ、及び記憶装置３ｂの動作は、第１実施形態の各装置１、２、及び３の動作と同一のため、説明は省略する。本実施形態では、ステップＳ８の代わりに、以下に示すステップＳ９，Ｓ１０を実施する。
（１）ステップＳ９
第１実施形態では、ポートホッピングの検出結果を表示するのみであった。本実施形態では、ポートホッピング検出の結果を含んだフロー情報を用いて帯域制御ポリシー格納部に保存されている帯域制御ポリシーに従い帯域制御を実施する。
（２）ステップＳ１０
次に、帯域制限を受けたフローを送信する。
【００５７】
この時、予め設定により又は帯域制御ポリシーの有無により、第１実施形態のステップＳ８を実施するか、第２実施形態のステップＳ９，Ｓ１０を実施するかを選択するようにしても良い。また、ステップＳ８と同時に又は連続して、ステップＳ９，Ｓ１０を実施するようにしても良い。
【００５８】
次に、本発明の第２実施形態の効果について説明する。
本実施形態では、アプリケーション識別結果、及びポートホッピング検出結果を用いて、継続的にポートホッピングするフローのポートの移動を追従し帯域制御ポリシーに従い帯域制限できる。更に、アプリケーション識別が出ていないフローに対しても使用帯域を一時的に制限することにより、アプリケーション識別前にポートホッピングをされたとしてもそれらのフローに対し継続的に帯域制限することができる。
【００５９】
次に、本発明の第３実施形態について図面を参照して詳細に説明する。
図５を参照すると、本発明の第３実施形態は、本発明の第２実施形態と同様に、受信装置１、ポートホッピングフロー検出装置２ｃ、記憶装置３ｃ、帯域制御装置５ｃ、送信装置６を備える。
【００６０】
更に、本発明の第３実施形態は、ポートホッピング検出用プログラム７、帯域制御用プログラム８を有する。
【００６１】
ポートホッピング検出用プログラム７は、ポートホッピングフロー検出装置２ｃに読み込まれポートホッピングフロー検出装置２ｃの動作を制御し、記憶装置３ｃにフロー情報格納部３１、フロー間関係情報格納部３２を生成する。ポートホッピングフロー検出装置２ｃはポートホッピング検出用プログラム７の制御により第２の実施の形態におけるポートホッピングフロー検出装置による処理と同一の処理を実行する。
【００６２】
帯域制御用プログラム８は、帯域制御装置５ｃに読み込まれ帯域制御装置５ｃの動作を制御し、記憶装置３ｃ帯域制御ポリシー格納部３３を生成する。帯域制御装置５ｃは、帯域制御用プログラム８の制御により第２の実施の形態における帯域制御装置による処理と同一の処理を実行する。
【００６３】
次に、本発明の第３実施形態の効果について説明する。
本実施形態では、本発明の第１、及び第２実施形態の効果と同様の効果を得るために、ポートホッピング検出用プログラム、及び帯域制御用プログラムを用いることによりコンピュータをポートホッピング検出装置、及び帯域制御装置として動作させることができる。
【００６４】
以上のように、本発明のポートホッピング検出システムは、複数のフローを受信する受信装置（図１の１）と、受信したフロー個々に対しポートホッピングの有無を検出するポートホッピングフロー検出装置（図１の２）と、フロー情報、及びアプリケーション情報を保存する記憶装置（図１の３）と、記憶装置に保存されたフロー情報を表示するフロー情報表示装置（図１の４）とを有する。なお、フロー情報は１つのフローについての情報であり、アプリケーション情報は２つのフロー間の関係を示す情報である。
【００６５】
また、ポートホッピングフロー検出装置は、受信した複数のフローを個々のフローに分離し、個々のフローのフロー情報を抽出するフロー分離手段（図１の２１）と、ポート移動時間差を演算するポート移動時間差演算手段（図１の２２）と、ポートを移るまでの時間を演算するフロー継続時間演算手段（図１の２３）と、フロー間のポート番号関係を演算するポート移動関係演算手段（図１の２４）と、受信したフローの特徴を演算するフロー特徴演算手段（図１の２５）と、受信した複数のフローのポートホッピングに関する情報の演算結果とポートホッピングするアプリケーションの情報とを比較することによりポートホッピングを検出するポートホッピング検出手段（図１の２６）とを有する。
【００６６】
また記憶装置は受信したそれぞれのフローのフロー情報を保存するフロー情報格納部（図１の３１）と、ポートホッピングするアプリケーションの情報を保存するアプリケーション情報格納部（図１の３２）とを有する。
【００６７】
ポートホッピングするアプリケーションはポートホップする前後のフロー間にポート移動時間差、フロー継続時間、ポート番号関係、フロー特徴と相関があるため、このような構成を採用し、受信した複数のフローのポート移動時間差、フロー継続時間、ポート番号関係、フロー特徴とポートホッピングするアプリケーションの情報とを比較することによりポートホッピングを検出できることから、本発明の第１、及び第２、及び第３の目的を達成することができる。
【図面の簡単な説明】
【００６８】
【図１】図１は、本発明の第１実施形態の構成を示す図である。
【図２】図２は、本発明の第１実施形態の動作を示す流れ図である。
【図３】図３は、本発明の第２実施形態の構成を示す図である。
【図４】図４は、本発明の第２実施形態の動作を示す流れ図である。
【図５】図５は、本発明の第３実施形態の構成を示す図である。
【符号の説明】
【００６９】
１    受信装置
２、２ｂ、２ｃ    ポートホッピングフロー検出装置
３、３ｂ、３ｃ    記憶装置
４    フロー情報表示装置
５    帯域制御装置
６    送信装置
７    ポートホッピング検出用プログラム
８    帯域制御用プログラム
２１、２１ｂ    フロー分離部
２２    ポート移動時間差演算部
２３    フロー継続時間演算部
２４    ポート番号関係演算部
２５    フロー特徴演算部
２６    ポートホッピング検出部
３１    フロー情報格納部
３２    アプリケーション情報格納部
３３    帯域制御ポリシー格納部
【図１】
0004626811.tif 000002
【図２】
0004626811.tif 000003
【図３】
0004626811.tif 000004
【図４】
0004626811.tif 000005
【図５】
0004626811.tif 000006