(57)【特許請求の範囲】
【請求項１】
複数のコアプロセッサを有し、ネットワークを介してサーバへ送信されてきた複数のパケットを、該複数のパケットのそれぞれを識別する識別情報に基づいて前記複数のコアプロセッサのいずれかに振り分け、前記複数のコアプロセッサのそれぞれが前記振り分けられたパケットに対して所定の解析処理を実行することにより、当該振り分けられたパケットから構成されるフローのうち、前記ネットワークを介した攻撃に基づくパケットから構成される攻撃フローを特定するセキュリティ装置において、
前記複数のコアプロセッサのそれぞれは、
当該コアプロセッサの負荷を計測または推定する負荷監視部と、
前記計測または推定された負荷に基づき、前記所定の解析処理を実行するパケットの割合を制限するかどうかを決定するスケジューリング部と、
前記所定の解析処理の実行が制限された場合、前記振り分けられたパケットのうち前記所定の解析処理が実行されなかったパケットの割合と、前記所定の解析処理の実行結果とに基づき、当該振り分けられたパケットのうちの所定の割合以上のパケットから構成されるフローを推定し、該推定されたフローを前記攻撃フローとして特定するフロー推定部と、
前記所定の解析処理の実行が制限された場合、前記サーバから送信されたパケットへの応答メッセージを含むパケットに対する前記所定の解析処理の実行結果に基づき、前記フロー推定部にて前記攻撃フローとして特定されなかったフローを特定する応答メッセージ解析部と、を有するセキュリティ装置。
【請求項２】
請求項１に記載のセキュリティ装置において、
前記負荷監視部は、当該コアプロセッサに振り分けられたパケットの待ち行列の長さに基づいて当該コアプロセッサの負荷を計測または推定するセキュリティ装置。
【請求項３】
請求項１または請求項２に記載のセキュリティ装置において、
前記スケジューリング部は、前記計測または推定された負荷を示す値が、予め決められた閾値以上である場合に、前記所定の解析処理を実行するパケットの割合を制限するセキュリティ装置。
【請求項４】
請求項１乃至３のいずれか１項に記載のセキュリティ装置において、
前記識別情報は、前記受信した複数のパケットのそれぞれに含まれる５ｔｕｐｌｅ情報、または、当該５ｔｕｐｌｅ情報を用いてハッシュ演算を行ったハッシュ値であるセキュリティ装置。
【請求項５】
複数のコアプロセッサを有し、ネットワークを介してサーバへ送信されてきた複数のパケットを、該複数のパケットのそれぞれを識別する識別情報に基づいて前記複数のコアプロセッサのいずれかに振り分け、前記複数のコアプロセッサのそれぞれが前記振り分けられたパケットに対して所定の解析処理を実行することにより、当該振り分けられたパケットから構成されるフローのうち、前記ネットワークを介した攻撃に基づくパケットから構成される攻撃フローを特定するセキュリティ装置におけるフロー特定方法であって、
前記複数のコアプロセッサのそれぞれの負荷を計測または推定する負荷監視処理と、
前記計測または推定された負荷に基づき、前記複数のコアプロセッサのそれぞれにおいて前記所定の解析処理を実行するパケットの割合を制限するかどうかを決定するスケジューリング処理と、
前記所定の解析処理の実行が制限された場合、前記振り分けられたパケットのうち前記所定の解析処理が実行されなかったパケットの割合と、前記所定の解析処理の実行結果とに基づき、当該振り分けられたパケットのうちの所定の割合以上のパケットから構成されるフローを推定し、該推定されたフローを前記攻撃フローとして特定するフロー推定処理と、
前記所定の解析処理の実行が制限された場合、前記サーバから送信されたパケットへの応答メッセージを含むパケットに対する前記所定の解析処理の実行結果に基づき、前記フロー推定処理において前記攻撃フローとして特定されなかったフローを特定する処理と、を有するフロー特定方法。
【請求項６】
請求項５に記載のフロー特定方法において、
前記負荷監視処理は、前記複数のコアプロセッサのそれぞれに振り分けられたパケットの待ち行列の長さに基づいて当該コアプロセッサの負荷を計測または推定する処理であるフロー特定方法。
【請求項７】
請求項５または請求項６に記載のフロー特定方法において、
前記スケジューリング処理は、前記計測または推定された負荷を示す値が、予め決められた閾値以上である場合に、前記所定の解析処理を実行するパケットの割合を制限する処理であるフロー特定方法。
【請求項８】
請求項５乃至７のいずれか１項に記載のフロー特定方法において、
前記識別情報は、前記受信した複数のパケットのそれぞれに含まれる５ｔｕｐｌｅ情報、または、当該５ｔｕｐｌｅ情報を用いてハッシュ演算を行ったハッシュ値であるフロー特定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信した複数のパケットのそれぞれを解析することにより、攻撃に基づくフローを特定するセキュリティ装置及びフロー特定方法に関する。
【背景技術】
【０００２】
ネットワーク上のＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）サーバをパケットの送信による攻撃から防御するセキュリティ装置は、ＳＩＰサーバへ送信されてきたパケットを解析するマルチレイヤ処理を実行することにより、攻撃に基づくフローである攻撃フローを特定する。そして、セキュリティ装置は、特定した攻撃フローを構成するパケットを一定時間廃棄したり、帯域を制御したりする対策を実行する。これにより、ネットワーク上のＳＩＰサーバが攻撃から防御される。
【０００３】
マルチレイヤ処理では、ＳＩＰサーバへ送信されてきたパケットに含まれるマルチレイヤフィールド（５ｔｕｐｌｅ情報（ＩＰパケットの宛先ＩＰアドレス、送信元ＩＰアドレス、送信元ポート番号、宛先ポート番号、プロトコル）、ＳＩＰシグナリング情報（ＳＩＰメッセージのＳＩＰ  Ｍｅｔｈｏｄ、Ｈｅａｄｅｒ  ＦｉｅｌｄのＦｒｏｍＴｏ、及び、呼を一意に識別するＣａｌｌ−ＩＤ）等）の識別が行われ、識別されたフィールドの組み合わせが一致するパケットが監視される。
【０００４】
そして、セキュリティ装置は、マルチレイヤ処理の実行結果に基づき、例えば識別されたフィールドの組合せが一致するパケットが一定時間以上継続するようなフローを攻撃フローとして特定する。
【０００５】
また、セキュリティ装置は、マルチレイヤ処理の実行結果に基づき、相互に異なる通信相手や電話番号の数を送信元の端末毎に計測する。これにより、短時間に多くの新たな端末と通信をすることを意図した情報を含むパケットから構成されるフローを攻撃フローとして特定することも可能である（例えば、特許文献１参照。）。なお、短時間に多くの新たな端末と通信をすることを意図した情報を含むパケットから構成されるフローとは、機械的不完了呼（いわゆるワンギリ）や、電話番号スキャン等のフローである。電話番号スキャンとは、実際に使用されている電話番号を調べることを目的とした攻撃の１つである。
【０００６】
一方、近年、消費電力を増やさずに高性能を実現できるマルチコアプロセッサが注目されている。マルチコアプロセッサを用いることにより、複数のコアプロセッサで並列処理を行うことができ、演算能力の向上を実現できる。そのため、マルチコアプロセッサをネットワークプラットフォームに適用することが期待されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−４９５９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
マルチコアプロセッサをネットワークプラットフォームに適用した場合、上述した５ｔｕｐｌｅ情報や、５ｔｕｐｌｅ情報を用いてハッシュ演算を行ったハッシュ値に基づき、複数のコアプロセッサのいずれかへ複数のパケットのそれぞれを振り分けることができる。これにより、１つのフローを構成する複数のパケットを１つのコアプロセッサで処理することが可能となる。従って、負荷の分散、パケットの順序の維持、及び、キャッシュミスヒット率の低減を同時に実現でき、性能の向上が期待できる。
【０００９】
ここで、ネットワーク上の端末等を攻撃から防御するためのネットワークセキュリティプラットフォームにマルチコアプロセッサを適用した場合を考えてみる。この場合、パケットの送信による攻撃を受けると、上述した振り分けによって特定のコアプロセッサに偏ってパケットが振り分けられてしまう可能性が高い。その結果、特定のコアプロセッサの負荷が高くなる。
【００１０】
高負荷となったコアプロセッサでは、負荷のかかるマルチレイヤ処理を実行することができなくなり、フローを特定する精度が低下してしまうという問題点がある。
【００１１】
また、攻撃フローを構成しないパケットが、高負荷となったコアプロセッサに振り分けられた場合、キュー溢れによる悪影響がそのパケットに及んでしまうという問題点がある。
【００１２】
本発明は、ネットワークセキュリティプラットフォーム向けにマルチコアプロセッサを適用した場合において、攻撃フローを構成しないパケットへの悪影響と、フローを特定する精度の低下とを回避することができるセキュリティ装置及びフロー特定方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために本発明のセキュリティ装置は、複数のコアプロセッサを有し、ネットワークを介してサーバへ送信されてきた複数のパケットを、該複数のパケットのそれぞれを識別する識別情報に基づいて前記複数のコアプロセッサのいずれかに振り分け、前記複数のコアプロセッサのそれぞれが前記振り分けられたパケットに対して所定の解析処理を実行することにより、当該振り分けられたパケットから構成されるフローのうち、前記ネットワークを介した攻撃に基づくパケットから構成される攻撃フローを特定するセキュリティ装置において、
前記複数のコアプロセッサのそれぞれは、
当該コアプロセッサの負荷を計測または推定する負荷監視部と、
前記計測または推定された負荷に基づき、前記所定の解析処理を実行するパケットの割合を制限するかどうかを決定するスケジューリング部と、
前記所定の解析処理の実行が制限された場合、前記振り分けられたパケットのうち前記所定の解析処理が実行されなかったパケットの割合と、前記所定の解析処理の実行結果とに基づき、当該振り分けられたパケットのうちの所定の割合以上のパケットから構成されるフローを推定し、該推定されたフローを前記攻撃フローとして特定するフロー推定部と、
前記所定の解析処理の実行が制限された場合、前記サーバから送信されたパケットへの応答メッセージを含むパケットに対する前記所定の解析処理の実行結果に基づき、前記フロー推定部にて前記攻撃フローとして特定されなかったフローを特定する応答メッセージ解析部と、を有する。
【００１４】
また、上記目的を達成するために本発明のフロー特定方法は、複数のコアプロセッサを有し、ネットワークを介してサーバへ送信されてきた複数のパケットを、該複数のパケットのそれぞれを識別する識別情報に基づいて前記複数のコアプロセッサのいずれかに振り分け、前記複数のコアプロセッサのそれぞれが前記振り分けられたパケットに対して所定の解析処理を実行することにより、当該振り分けられたパケットから構成されるフローのうち、前記ネットワークを介した攻撃に基づくパケットから構成される攻撃フローを特定するセキュリティ装置におけるフロー特定方法であって、
前記複数のコアプロセッサのそれぞれの負荷を計測または推定する負荷監視処理と、
前記計測または推定された負荷に基づき、前記複数のコアプロセッサのそれぞれにおいて前記所定の解析処理を実行するパケットの割合を制限するかどうかを決定するスケジューリング処理と、
前記所定の解析処理の実行が制限された場合、前記振り分けられたパケットのうち前記所定の解析処理が実行されなかったパケットの割合と、前記所定の解析処理の実行結果とに基づき、当該振り分けられたパケットのうちの所定の割合以上のパケットから構成されるフローを推定し、該推定されたフローを前記攻撃フローとして特定するフロー推定処理と、
前記所定の解析処理の実行が制限された場合、前記サーバから送信されたパケットへの応答メッセージを含むパケットに対する前記所定の解析処理の実行結果に基づき、前記フロー推定処理において前記攻撃フローとして特定されなかったフローを特定する処理と、を有する。
【発明の効果】
【００１５】
本発明は以上説明したように構成されているので、ネットワークセキュリティプラットフォーム向けにマルチコアプロセッサを適用した場合において、攻撃フローを構成しないパケットへの悪影響と、フローを特定する精度の低下とを回避することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明のセキュリティ装置を適用した通信システムの実施の一形態の構成を示すブロック図である。
【図２】図１に示したセキュリティ装置の一構成例を示すブロック図である。
【図３】図２に示したコアプロセッサの一構成例を示すブロック図である。
【図４】図３に示した応答メッセージ解析部が攻撃フローを特定する動作を説明するためシーケンス図である。
【図５】図１〜図４に示したセキュリティ装置の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【００１７】
以下に、本発明の実施の形態について図面を参照して説明する。
【００１８】
図１は、本発明のセキュリティ装置を適用した通信システムの実施の一形態の構成を示すブロック図である。
【００１９】
本実施形態の通信システムは図１に示すように、セキュリティ装置１０と、セキュリティ装置１０に接続されたＳＩＰサーバ２０と、ネットワーク１００を介してセキュリティ装置１０に接続された端末３０−１〜３０−ｎとを備えている。
【００２０】
端末３０−１〜３０−ｎは、ＩＰ電話による通信を行うためのＳＩＰメッセージを含む複数のパケットのそれぞれをセキュリティ装置１０を介してＳＩＰサーバ２０と送受信する。ＳＩＰメッセージは例えば、ＩＰ電話による通信を開始するためのＩＮＶＩＴＥリクエストである。
【００２１】
セキュリティ装置１０は、端末３０−１〜３０−ｎからＳＩＰサーバ２０へ送信されてきたＳＩＰメッセージを含む複数のパケットのそれぞれを受信する。そして、セキュリティ装置１０は、所定の解析処理であるマルチレイヤ処理を、受信した複数のパケットのそれぞれに対して実行する。なお、マルチレイヤ処理では、受信した複数のパケットのそれぞれのマルチレイヤフィールドが識別され、識別されたフィールドの組み合わせが一致するパケットが監視される。そして、セキュリティ装置１０は、マルチレイヤ処理の実行結果に基づき、受信したパケットから構成されるフローのうち攻撃に基づくフローである攻撃フローを特定する。そして、セキュリティ装置１０は、特定した攻撃フローを構成するパケットを一定時間廃棄したり、帯域を制御したりする対策を実行する。これにより、ＳＩＰサーバ２０が攻撃から防御される。
【００２２】
なお、攻撃フローを特定することには例えば、その攻撃フローを構成するパケットに含まれるＩＰアドレスや電話番号等を特定することが含まれる。
【００２３】
また、攻撃フローとは例えば、極めて多数のパケットから構成され、全体のトラヒック量のうちの大部分を占める少数のフローや、短時間に多くの新たな端末と通信をすることを意図した情報を含むパケットから構成されるフローである。極めて多数のパケットから構成され、全体のトラヒック量の大部分を占める少数のフローは、エレファントフローと呼ばれている。エレファントフローは、例えばＤｏＳ（Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ）攻撃等によって発生する。また、短時間に多くの新たな端末と通信をすることを意図した情報を含むパケットから構成されるフローとは例えば、機械的不完了呼や電話番号スキャンのフローである。
【００２４】
図２は、図１に示したセキュリティ装置１０の一構成例を示すブロック図である。
【００２５】
図１に示したセキュリティ装置１０は図２に示すように、複数のコアプロセッサ１１−１〜１１−ｎと、振分部１２と、コアプロセッサ１１−１〜１１−ｎのそれぞれに対応付けられたキュー１３−１〜１３−ｎと、対策部１４と、対策部１４に対応付けられたキュー１５と、送信処理部１６とを備えている。
【００２６】
振分部１２は、端末３０−１〜３０−ｎからＳＩＰサーバ２０へ送信されてきたＳＩＰメッセージを含む複数のパケットのそれぞれを受信する。そして、振分部１２は、受信した複数のパケットのそれぞれに含まれる５ｔｕｐｌｅ情報を抽出する。そして、振分部１２は、識別情報である抽出した５ｔｕｐｌｅ情報、または、抽出した５ｔｕｐｌｅ情報を用いてハッシュ演算を行った識別情報であるハッシュ値に基づき、コアプロセッサ１１−１〜１１−ｎの中から、受信した複数のパケットのそれぞれの振分先を決定する。そして、振分部１２は、キュー１３−１〜１３−ｎのうち、振分先となるコアプロセッサに対応するキューに、受信した複数のパケットのそれぞれを蓄積させる。
【００２７】
コアプロセッサ１１−１〜１１−ｎのそれぞれは、振り分けられたパケットに対してマルチレイヤ処理を実行する。そして、コアプロセッサ１１−１〜１１−ｎのそれぞれは、マルチレイヤ処理を実行したパケットをキュー１５に蓄積させる。なお、コアプロセッサ１１−１〜１１−ｎの構成の詳細については後述する。
【００２８】
対策部１４は、キュー１５に蓄積されたパケットを取得する。そして、対策部１４は、コアプロセッサ１１−１〜１１−ｎによるマルチレイヤ処理の結果に基づき、攻撃フローを特定する。対策部１４は例えば、エレファントフローを特定する。また、対策部１４は、コアプロセッサ１１−１〜１１−ｎによるマルチレイヤ処理の結果に基づき、相互に異なる通信相手や宛先電話番号の数を送信元の端末毎に計測する。これにより、機械的不完了呼や電話番号スキャン等の攻撃フローを特定する。そして、対策部１４は、特定した攻撃フローを構成するパケットを一定時間破棄したり、当該攻撃フローの帯域を制御したりする対策を実行する。また、対策部１４は、取得したパケットのうち対策の対象とならないフローを構成するパケットを送信処理部１６へ出力する。
【００２９】
送信処理部１６は、対策部１４から出力されたパケットを受け付け、受け付けたパケットをＳＩＰサーバ２０へ送信する。
【００３０】
次に、図２に示したコアプロセッサ１１−１〜１１−ｎの構成の詳細について説明する。
【００３１】
図３は、図２に示したコアプロセッサ１１−１の一構成例を示すブロック図である。なお、コアプロセッサ１１−２〜１１−ｎも同様の構成である。
【００３２】
図２に示したコアプロセッサ１１−１は図３に示すように、負荷監視部１１ａと、スケジューリング部１１ｂと、処理実行部１１ｃと、フロー推定部１１ｄと、応答メッセージ解析部１１ｅと、入出力部１１ｆとを備えている。
【００３３】
負荷監視部１１ａは、コアプロセッサ１１−１の負荷を計測または推定する。そして、計測または推定された負荷を示す値をスケジューリング部１１ｂへ出力する。なお、負荷監視部１１aは例えば、コアプロセッサ１１−１に対応するキュー１３−１に蓄積されたパケットの数に応じた待ち行列の長さに基づき、コアプロセッサ１１−１の負荷を計測または推定する。
【００３４】
スケジューリング部１１ｂは、負荷監視部１１ａから出力された値を受け付ける。そして、受け付けた値が予め決められた閾値以上である場合、受け付けた値を含み、マルチレイヤ処理を実行するパケットの割合を制限するための制限指示を処理実行部１１ｃへ出力する。また、スケジューリング部１１ｂは、受け付けた値が予め決められた閾値以上である場合、フロー推定部１１ｄ及び応答メッセージ解析部１１ｅにおける動作を開始させるための開始指示をフロー推定部１１ｄ及び応答メッセージ解析部１１ｅへ出力する。
【００３５】
処理実行部１１ｃは、コアプロセッサ１１−１に対応するキュー１３−１に蓄積されたパケットを入出力部１１ｆを介して取得し、取得したパケットに対してマルチレイヤ処理を実行する。そして、処理実行部１１ｃは、マルチレイヤ処理が実行されたパケットを入出力部１１ｆを介してキュー１５に蓄積させる。なお、処理実行部１１ｃは、スケジューリング部１１ｂから出力された制限指示を受け付けた場合、マルチレイヤ処理を実行するパケットの割合を制限する。具体的には、処理実行部１１ｃは、受け付けた制限指示に含まれる値に応じ、または、確率的に、取得したパケットのサンプリングを行う。そして、処理実行部１１ｃは、サンプリングされたパケットに対してだけマルチレイヤ処理を実行する。
【００３６】
フロー推定部１１ｄは、スケジューリング部１１ｂから出力された開始指示を受け付けると、コアプロセッサ１１−１に振り分けられたパケットのうち所定の割合以上のパケットから構成されるフローを推定する。具体的には、フロー推定部１１ｄは、コアプロセッサ１１−１に振り分けられたパケットのうち、マルチレイヤ処理を実行されなかったパケットの割合と、処理実行部１１ｃにおけるマルチレイヤ処理の実行結果に基づき、統計的手法を用いてこのようなフローを推定する。そして、フロー推定部１１ｄは、推定されたフローを攻撃フローであるエレファントフローとして特定する。マルチレイヤ処理の実行が制限された場合、マルチレイヤ処理が実行されたパケットの数（サンプリング数）は、フローレートに比例する。そのため、フロー推定部１１ｄは、統計的手法を用いることによってエレファントフローを高精度で特定することができる。
【００３７】
応答メッセージ解析部１１ｅは、スケジューリング部１１ｂから出力された開始指示を受け付けると、攻撃フローのうちフロー推定部１１ｄにて特定されなかった攻撃フローを特定する。なお、フロー推定部１１ｄにて特定されない攻撃フローとは例えば、機械的不完了呼や電話番号スキャン等、短時間に多くの新たな端末と通信をすることを意図した情報が含まれるパケットから構成される攻撃フローである。
【００３８】
機械的不完了呼や電話番号スキャン等の攻撃フローは、個々のサイズが小さい。そのため、このような攻撃フローを構成するパケットは、マルチレイヤ処理の実行が制限された場合、処理実行部１１ｃにてサンプリングされる確率が低い。フローを構成するパケットが１つもサンプリングされない場合、フロー推定部１１ｄにおける統計的手法では、そのフローを高精度で特定することが困難となる。
【００３９】
図４は、図３に示した応答メッセージ解析部１１ｅが攻撃フローを特定する動作を説明するためシーケンス図である。なお、図４は、図１に示した通信システムにおいて、攻撃者が端末３０−１を用いて端末３０−２〜３０−ｎに対して機械的不完了呼を発生させた場合のシーケンスを示している。
【００４０】
まず、端末３０−１は、攻撃者からの操作に従い、端末３０−２〜３０−ｎの数の分だけのＩＮＶＩＴＥリクエストをＳＩＰサーバ２０へ送信する。
【００４１】
端末３０−１から送信されたＩＮＶＩＴＥリクエストをＳＩＰサーバ２０を介して受信した端末３０−２〜３０−ｎは、１８０ＲｉｎｇｉｎｇをＳＩＰサーバ２０を介して端末３０−１へ送信する。なお、１８０Ｒｉｎｇｉｎｇは、呼出中であることを示すメッセージである。
【００４２】
端末３０−２〜３０−ｎのそれぞれから送信された複数の応答メッセージ（１８０Ｒｉｎｇｉｎｇ等）のそれぞれは、送信元ＩＰアドレスが相互に異なる。そのため、振分部１２は、相互に異なる複数のコアプロセッサのそれぞれに複数の応答メッセージのそれぞれを振り分ける。
【００４３】
すなわち、機械的不完了呼の場合、攻撃者が用いる端末３０−１から送信されたＩＮＶＩＴＥリクエストを含む複数のパケットは全て、送信元ＩＰアドレスが同じである。そのため、これらの複数のパケットは、コアプロセッサ１１−１〜１１−ｎのうち特定のコアプロセッサに振り分けられる。
【００４４】
一方、ＳＩＰサーバ２０から送信されたＩＮＶＩＴＥリクエストに対する応答メッセージ（１８０Ｒｉｎｇｉｎｇ等）を含む複数のパケットのそれぞれは、送信元ＩＰアドレスが相互に異なる。そのため、これらの複数のパケットは、コアプロセッサ１１−１〜１１−ｎのうち、相互に異なる複数のコアプロセッサのそれぞれに振り分けられる。この場合、特定のコアプロセッサの負荷が高くならず、処理実行部１１ｃにおけるマルチレイヤ処理の実行が制限されることがない。
【００４５】
従って、応答メッセージ解析部１１ｅは、ＳＩＰサーバ２０から送信されたＳＩＰメッセージの応答メッセージに対するマルチレイヤ処理の実行結果に基づき、フロー推定部１１ｄにおいて高精度で特定することが困難であったフローを特定することができる。具体的には応答メッセージ解析部１１ｅは、ＳＩＰサーバ２０から送信されたＳＩＰメッセージの応答メッセージを含むパケットに対するマルチレイヤ処理の実行結果に基づき、相互に異なる通信相手や宛先電話番号の数を送信元の端末毎に計測する。これにより、機械的不完了呼や電話番号スキャン等の攻撃フローを特定することができる。
【００４６】
なお、ＳＩＰメッセージの状態遷移情報を利用すれば、複数の端末からの応答メッセージが１８０Ｒｉｎｇｉｎｇである場合、その複数の端末のそれぞれが攻撃者の端末からＩＮＶＩＴＥリクエストを受信したことを判別できる。
【００４７】
以下に、上記のように構成されたセキュリティ装置１０の動作について説明する。なお、ここでは、受信した複数のパケットのそれぞれのコアプロセッサ１１−１〜１１−ｎへの振り分けが行われているときの動作について説明する。
【００４８】
図５は、図１〜図４に示したセキュリティ装置１０の動作を説明するためのフローチャートである。
【００４９】
負荷監視部１１ａは、当該コアプロセッサの負荷を計測または推定する（ステップＳ１）。
【００５０】
次に、負荷監視部１１ａは、計測または推定した負荷を示す値をスケジューリング部１１ｂへ出力する。
【００５１】
負荷監視部１１ａから出力された値を受け付けたスケジューリング部１１ｂは、受け付けた値が予め決められた閾値以上かどうかを判定する（ステップＳ２）。
【００５２】
ステップＳ２における判定の結果、受け付けた値が予め決められた閾値以上である場合、スケジューリング部１１ｂは、受け付けた値を含む制限指示を処理実行部１１ｃへ出力し、フロー推定部１１ｄ及び応答メッセージ解析部１１ｅへ開始指示を出力する。
【００５３】
スケジューリング部１１ｂから出力された制限指示を受け付けた処理実行部１１ｃは、受け付けた制限指示に含まれる値に応じ、または、確率的に、取得したパケットのサンプリングを行う。
【００５４】
そして、処理実行部１１ｃは、サンプリングされたパケットに対してだけマルチレイヤ処理を実行する（ステップＳ３）。
【００５５】
また、スケジューリング部１１ｂから送信された開始指示を受け付けたフロー推定部１１ｄは、コアプロセッサ１１−１に振り分けられたパケットのうち所定の割合以上のパケットから構成されるフローを推定し、推定されたフローを攻撃フローであるエレファントフローとして特定する（ステップＳ４）。
【００５６】
また、スケジューリング部１１ｂから送信された開始指示を受け付けた応答メッセージ解析部１１ｅは、ＳＩＰサーバ２０から送信されたＳＩＰメッセージの応答メッセージを含むパケットに対して実行されたマルチレイヤ処理の実行結果に基づき、機械的不完了呼や電話番号スキャン等の攻撃フローを特定する（ステップＳ５）。
【００５７】
次に、対策部１４は、ステップＳ４及びステップＳ５において特定された攻撃フローを構成するパケットを一定時間破棄したり、当該攻撃フローの帯域を制御したりする対策を実行する（ステップＳ６）。
【００５８】
ここで、ステップＳ２における判定の結果、受け付けた値が予め決められた閾値以上でない場合、スケジューリング部１１ｂは、制限指示及び開始指示を出力しない。
【００５９】
従って、処理実行部１１ｃは、対応するキューから取得した全てのパケットに対してマルチレイヤ処理を実行する（ステップＳ７）。
【００６０】
次に、対策部１４は、処理実行部１１ｃにおけるマルチレイヤ処理の実行結果に基づき、攻撃フローを特定する。
【００６１】
そして、対策部１４は、特定した攻撃フローを構成するパケットを一定時間破棄したり、当該攻撃フローの帯域を制御したりする対策を実行する（ステップＳ８）。
【００６２】
なお、上述した動作は、セキュリティ装置１０が稼働している間、繰り返し行われる。
【００６３】
このように本実施形態においてセキュリティ装置１０は、コアプロセッサ１１−１〜１１−ｎのそれぞれの負荷を計測または推定し、計測または推定された負荷に基づき、コアプロセッサ１１−１〜１１−ｎのそれぞれにおいてマルチレイヤ処理を実行する割合を制限するかどうかを決定する。
【００６４】
そして、セキュリティ装置１０は、マルチレイヤ処理の実行が制限された場合、振り分けられたパケットのうちマルチレイヤ処理が実行されなかったパケットの割合と、マルチレイヤ処理の実行結果とに基づき、当該振り分けられたパケットのうちの所定の割合以上のパケットから構成されるフローを推定し、推定されたフローを攻撃フローとして特定する。
【００６５】
また、セキュリティ装置１０は、マルチレイヤ処理の実行が制限された場合、ＳＩＰサーバ２０から送信されたパケットへの応答メッセージを含むパケットに対するマルチレイヤ処理の実行結果に基づき、攻撃フローとして特定されなかったフローを特定する。
【００６６】
これにより、ネットワークセキュリティプラットフォーム向けにマルチコアプロセッサを適用した場合において、攻撃フローを構成しないパケットへの悪影響と、フローを特定する精度の低下とを回避することができる。
【００６７】
なお、振分部１２が、複数のハッシュ関数、及び、ハッシュ値とカウンタのテーブルとを複数のハッシュ関数毎に備え、複数のハッシュ関数のうちコアプロセッサ１１−１〜１１−ｎの負荷を最もバランスよく分散できるハッシュ関数を選択できるようにしてもよい。
【符号の説明】
【００６８】
１０    セキュリティ装置
１１−１〜１１−ｎ    コアプロセッサ
１１ａ    負荷監視部
１１ｂ    スケジューリング部
１１ｃ    処理実行部
１１ｄ    フロー推定部
１１ｅ    応答メッセージ解析部
１１ｆ    入出力部
１２    振分部
１３−１〜１３−ｎ，１５    キュー
１４    対策部
１６    送信処理部
２０    ＳＩＰサーバ
３０−１〜３０−ｎ    端末
１００    ネットワーク
【図１】
0005405414.tif 000002
【図２】
0005405414.tif 000003
【図３】
0005405414.tif 000004
【図４】
0005405414.tif 000005
【図５】
0005405414.tif 000006