(57)【要約】      （修正有）【課題】異常フロー検知方法における誤報及び欠報を解決する。【解決手段】メッセージを受信するとＳ１１０、メッセージタイプに基づいて数量統計を行い、ＩＰハッシュ配列に記憶し、前記ＩＰハッシュ配列にフロー特徴を記憶するＳ１２０。前記ＩＰハッシュ配列に記憶されているメッセージの数量情報により、数量ランキングトップＮ個のメッセージのＩＰ情報を並び替え配列に記憶し、ここで、Ｎは自然数であるＳ１３０。新しいＩＰ情報を受信し、ランキングトップＮ個のメッセージのＩＰ情報を更新して並び替え配列に記憶するＳ１４０。更新された前記並び替え配列において、所定の特徴値に基づいて、対応するデータのメッセージに異常フロー行為が発生したか否かをチェックするＳ１５０。【選択図】図１
2017059232.tif 000002
【特許請求の範囲】
【請求項１】
メッセージを受信するステップと、
メッセージタイプに基づいて数量統計を行い、ＩＰハッシュ配列に記憶し、前記ＩＰハッシュ配列にフロー特徴を記憶するステップと、
前記ＩＰハッシュ配列に記憶されているメッセージの数量情報により、数量ランキングトップＮ個のメッセージのＩＰ情報を並び替え配列に記憶し、ここで、Ｎは自然数であるステップと、
新しいＩＰ情報を受信し、ランキングトップＮ個のメッセージのＩＰ情報を更新して並び替え配列に記憶するステップと、
更新された前記並び替え配列において、所定の特徴値に基づいて、対応するデータのメッセージに異常フロー行為が発生したか否かをチェックするステップと
を備える、ことを特徴とする異常フロー検知方法。
【請求項２】
メッセージタイプに基づいて数量統計を行い、ＩＰハッシュ配列に記憶するステップは、
メッセージタイプを識別するステップと、
前記メッセージタイプが同期メッセージであれば、前記ＩＰハッシュ配列の第１フロー特徴に同期メッセージの数量を記録するステップと、
前記メッセージタイプが制御情報メッセージであれば、前記ＩＰハッシュ配列の第２フロー特徴に制御情報メッセージの数量を記録するステップと、
前記メッセージタイプがユーザデータメッセージであれば、前記ＩＰハッシュ配列の第３フロー特徴にユーザデータメッセージの数量を記録するステップと、
前記ユーザデータメッセージからフロー特徴を抽出してから、前記ＩＰハッシュ配列の第４のフロー特徴に記憶するステップと
を備える、ことを特徴とする請求項１に記載の異常フロー検知方法。
【請求項３】
並び替え配列を初期化し、前記並び替え配列のメンバーは、第１並び替えサブ配列と、第２並び替えサブ配列と、第３並び替えサブ配列とを備え、各サブ配列のメンバーは、長さがＮ＋１であり、それぞれトップＮ個のＩＰ情報を保存するステップとをさらに備え、
前記ＩＰハッシュ配列に記憶されているメッセージの数量情報により、数量ランキングトップＮ個のメッセージのＩＰ情報を並び替え配列に記憶するステップは、前記ＩＰハッシュ配列に記憶されているメッセージの数量情報により、メッセージタイプに基づいて、最小二分ヒープの形式で数量ランキングトップＮ個のメッセージのＩＰ情報を各並び替えサブ配列に記憶することを備える、ことを特徴とする請求項１に記載の異常フロー検知方法。
【請求項４】
Nお。
前記ＩＰハッシュ配列に記憶されているメッセージの数量情報により、メッセージタイプに基づいて、最小二分ヒープの形式で数量ランキングトップＮ個のメッセージのＩＰ情報を各並び替えサブ配列に記憶するステップは、さらに、
前記ＩＰハッシュ配列に記憶されているメッセージの数量情報により、メッセージタイプに基づいて、第１並び替え関数を用いて、並び替えサブ配列を上向きトラバースすることで、前記並び替えサブ配列の最小二分ヒープの特性を保持するステップと、
前記ＩＰハッシュ配列に記憶されているメッセージの数量情報により、メッセージタイプに基づいて、第２並び替え関数を用いて、並び替えサブ配列を下向きトラバースすることで、前記並び替えサブ配列の最小二分ヒープの特性を保持するステップと
を備える、ことを特徴とする請求項３に記載の異常フロー検知方法。
【請求項５】
新しいＩＰ情報を受信し、ランキングトップＮ個のメッセージのＩＰ情報を更新して並び替え配列に記憶するステップは、２つのスレッドを生成するステップを備え、
第１スレッドは、出力及び入力メッセージからＩＰアドレス及びメッセージタイプを抽出し、ＩＰハッシュ配列に記憶することに用いられ、
第２スレッドは、前記ＩＰハッシュ配列をトラバースし、前記ＩＰハッシュ配列における各ＩＰ情報を取得し、前記ＩＰ情報が対応する並び替え配列に存在するか否かを判断することに用いられ、
存在していない場合、前記ＩＰ情報に対応するフロー特徴は、前記並び替え配列における一番目のＩＰ情報に対応するフロー特徴と比較し、一番目のＩＰ情報に対応するフロー特徴より大きい場合、一番目のＩＰ情報を置換し、第２並び替え関数を呼び出し、
存在している場合、前記ＩＰ情報の新しいフロー特徴は、前記並び替え配列におけるそのＩＰ情報の元のフロー特徴と比較し、比較結果に基づいて、並び替え配列が最小二分ヒープの特性を保持するように、第１並び替え関数又は第２並び替え関数を呼び出し、次に、前記新しいフロー特徴及び元のフロー特徴を比較して、異常フロー行為が発生したか否かを判断する、ことを特徴とする請求項１に記載の異常フロー検知方法。
【請求項６】
更新された前記並び替え配列において、所定の特徴値に基づいて、対応するデータのメッセージに異常フロー行為が発生したか否かをチェックするステップは、
前記所定の特徴値は、所属しているネットワーク環境における総フローに基づいて自動的に設定される、ことを特徴とする請求項１に記載の異常フロー検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムの技術分野に関し、特に異常フロー検知方法に関する。
【背景技術】
【０００２】
ボットネットは攻撃方式が簡単で、影響が大きく、追跡調査しにくいなどの特性を有するため、分散サービス拒否攻撃（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄｅｎｉａｌ  ｏｆ Ｓｅｒｖｉｃｅ、ＤＤｏＳ）は急速に拡大し、日に日に氾濫している。幾千幾万のホストからなるボットネットは、ＤＤｏＳ攻撃のために必要な帯域幅及びホストを提供し、多大な規模の攻撃及びネットワークフローを形成し、攻撃されたネットワークに多大な危害を加えている。ＤＤｏＳ攻撃技術の絶えない向上と発展に伴い、インターネットサービスプロバイダ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ、ＩＳＰ）、インターネットコンテンツプロバイダ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｅｎｔ  Ｐｒｏｖｉｄｅｒ、ＩＣＰ）及びインターネットデータセンター（Ｉｎｔｅｒｎｅｔ  Ｄａｔａ  Ｃｅｎｔｅｒ、ＩＤＣ）などのオペレータが直面する安全及び運営への挑戦が絶えず増大している。オペレータは、ＤＤｏＳが主要な業務及び応用に影響を与える前に、フローを検査して処理しなければない。このようにして、ネットワークの正常で安定な動作及び正常な業務進展を確保している。
【０００３】
ＤＤｏＳの攻撃の危害が多大であるので、攻撃されたサーバがサービスを正常に提供できないだけでなく、ネットワーク全体も混雑する。深刻な場合に、ネットワークをダウンさせて、当該ネットワークにおける他のサーバに影響を与える。したがって、ネットワークに対する攻撃を適時に見出すことがとても重要である。
【０００４】
現在の攻撃検知方法は、一般的に、固定閾値を使用する方法又はフローダイナミックベースラインを生成する方法である。この２つの方法には、明らかな欠点がある。固定閾値の方法では、設定された閾値が大きすぎるか又は小さすぎるので、誤検知及び検知漏れが発生している。フローダイナミックベースラインの方法では、小さいフローのターゲットは、ベースが小さいので、バーストの場合に容易に誤検知され、大きいフローのターゲットは、変化幅が大きくないので、検知漏れされている可能性がある。正常な業務のバーストフローを誤報することは、この２つの方法の共通欠点である。フローダイナミックベースラインは、各新しいターゲットのために設定された初期段階において、攻撃を検出することができず、攻撃フローを用いてベースラインを生成する場合、そのターゲットに対する今後の攻撃を検出できない可能性がある。
【発明の概要】
【０００５】
このため、本発明の実施例は、従来技術における技術欠点を解決するために、異常フロー検知方法を提供する。
【０００６】
本発明の実施例による異常フロー検知方法は、
メッセージを受信するステップと、
メッセージタイプに基づいて数量統計を行い、ＩＰハッシュ配列に記憶し、前記ＩＰハッシュ配列にフロー特徴を記憶するステップと、
前記ＩＰハッシュ配列に記憶されているメッセージの数量情報により、数量ランキングトップＮ個のメッセージのＩＰ情報を並び替え配列に記憶し、ここで、Ｎは自然数であるステップと、
新しいＩＰ情報を受信し、ランキングトップＮ個のメッセージのＩＰ情報を更新して並び替え配列に記憶するステップと、
更新された前記並び替え配列において、所定の特徴値に基づいて、対応するデータのメッセージに異常フロー行為が発生したか否かをチェックするステップと
を備える。
【０００７】
本発明の実施例による異常フロー検知方法は、改良の最小二分ヒープのアルゴリズムにより、ネットワーク全体におけるフローなどの各指標ランキングトップのターゲットをリアルタイムで算出してから、ランキングトップのターゲットに対して行為分析を行って、これらのターゲットに異常フロー行為が発生したか否かを確実に判定する。本方法は、任意のネットワークに適用し、プログラムの起動直後の攻撃を検知することができ、正常なフローバーストを区分することができる。本発明の実施例による異常フロー検知方法は、固定閾値及びフローダイナミックベースラインなどの現在の異常フロー検知方法における誤報及び欠報を解決することができ、攻撃を正確に且つ適時に見出し、誤報率及び欠報率を大幅に低減することができる。
【図面の簡単な説明】
【０００８】
以下の図面に基づく非限定的な実施例の詳細な説明により、本発明の他の特徴、目的及び利点が明らかになる。
【０００９】
【図１】図１は、本発明の第１実施例による異常フロー検知方法のフローチャートである。
【図２】図２は、本発明の第１実施例による異常フロー検知方法の具体的なプロセスのフローチャートである。
【図３】図３は、本発明の第２実施例による異常フロー検知方法のフローチャートである。
【図４】図４は、本発明の第３実施例による異常フロー検知方法のフローチャートである。
【図５】図５は、本発明の第３実施例による異常フロー検知方法の具体的なプロセスのフローチャートである。
【図６】図６は、本発明の第４実施例による異常フロー検知方法のフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面及び実施例を参照しながら、本発明について更に説明する。本発明の具体的な実施例は、本発明を説明するためのものであり、本発明を限定するものではないが理解されるべきである。なお、本発明の説明を容易にするために、図面では、本発明に関わる部分が例示されており、全ての内容が例示されていない。
＜実施例１＞
【００１１】
図１は、本発明の第１実施例による異常フロー検知方法のフローチャートを示す。本実施例は、異常フロー検知方法を提供する。当該方法は、任意のフロー検知装置により実行されてもよい。当該装置は、ソフトウェア及び／又はハードウエアにより実現されてもよい。図１に示すように、当該方法は、以下のステップを備える。
【００１２】
Ｓ１１０において、メッセージを受信する。
【００１３】
Ｓ１２０において、メッセージタイプに基づいて数量統計を行い、ＩＰハッシュ配列に記憶し、前記ＩＰハッシュ配列にフロー特徴を記憶する。 
【００１４】
例えば、ＩＰフローなどの情報を統計するために、全局のＩＰハッシュ配列（ＨＡＳＨ）を生成する。前記ＩＰハッシュ配列は、ＩＰフローなどの情報を統計するように、異なる変量を含んでもよい。好ましくは、前記ＩＰハッシュ配列は、ＩＰフローに含んでいるメッセージ情報を統計してもよい。例えば、前記ＩＰハッシュ配列は、変量ＳＹＮ、ＩＣＭＰ及びＵＤＰを含んでもよく、同期メッセージ（ｓｙｎメッセージ）の数量、制御情報メッセージ（ｉｃｍｐメッセージ）の数量及びユーザデータメッセージ（ｕｄｐメッセージ）の数量を統計することにそれぞれ用いる。同期メッセージ及び制御情報メッセージのフロー特徴は比較的に単一であり、攻撃の判断が比較的に簡単であるので、この２つのメッセージの出現頻度に基づいて直接判断を行うことができる。しかしながら、ユーザデータメッセージのフロー特徴は多様であるので、出現頻度が高くても、正常な状況であるかもしれない。したがって、ユーザデータメッセージは、そのポートの出現頻度及びチェックコードの同程度に基づいて再び判断を行う。前記ＩＰハッシュ配列は、ユーザデータメッセージのフロー特徴を抽出するための変量ＤＮＡをさらに含んでもよく、複数のメンバーを含んでもよい。好ましくは、ＤＮＡのメンバーは、ＣＵＲ、ＳＡＭＥ、ＲＥＰＬＹ及びＴＣＰを含んでもよい。
【００１５】
図２を参照し、上記の技術案に基づいて、当該プロセスは、以下のステップを備える。
【００１６】
Ｓ１２１において、メッセージタイプを識別する。
【００１７】
Ｓ１２２において、前記メッセージタイプが同期メッセージであれば、前記ＩＰハッシュ配列の第１フロー特徴に同期メッセージの数量を記録する。
【００１８】
Ｓ１２３において、前記メッセージタイプが制御情報メッセージであれば、前記ＩＰハッシュ配列の第２フロー特徴に制御情報メッセージの数量を記録する。
【００１９】
Ｓ１２４において、前記メッセージタイプがユーザデータメッセージであれば、前記ＩＰハッシュ配列の第３フロー特徴にユーザデータメッセージの数量を記録する。
【００２０】
Ｓ１２５において、前記ユーザデータメッセージからフロー特徴を抽出して、前記ＩＰハッシュ配列の第４のフロー特徴に記憶する。
【００２１】
Ｓ１３０において、前記ＩＰハッシュ配列に記憶されているメッセージの数量情報により、数量ランキングトップＮ個のメッセージのＩＰ情報を並び替え配列に記憶する。ここで、Ｎは自然数である。
【００２２】
例えば、ランキングトップＮ個のＩＰ情報を保存するために、１つの全局の並び替え配列（ＴＯＰ配列）を生成し、並び替え配列を初期化する。前記並び替え配列のメンバーは、第１並び替えサブ配列（ＳＹＮ）と、第２並び替えサブ配列（ＩＣＭＰ）と、第３並び替えサブ配列（ＵＤＰ）とを備える。各サブ配列のメンバーは、長さがＮ＋１であり（添字が０である一番目のエレメントが使用されない）、それぞれトップＮ個のメッセージのＩＰ情報を保存する。さらに、前記ＩＰハッシュ配列に記憶されているメッセージの数量情報により、メッセージタイプに基づいて、最小二分ヒープの形式で数量ランキングトップＮ個のメッセージのＩＰ情報を各並び替えサブ配列に記憶する。例えば、ランキングトップＮ個の同期メッセージのＩＰ情報を第１並び替えサブ配列に記憶し、ランキングトップＮ個の制御情報メッセージのＩＰ情報を第２並び替えサブ配列に記憶し、ランキングトップＮ個のユーザデータメッセージのＩＰ情報を第３並び替えサブ配列に記憶する。
【００２３】
Ｓ１４０において、新しいＩＰ情報を受信し、ランキングトップＮ個のメッセージのＩＰ情報を更新し、並び替え配列に記憶する。
【００２４】
前記並び替え配列は、動的配列であり、新しいＩＰ情報の具体的な状況により、最小二分ヒープの特性に基づいて再び並び替えられる必要がある。
【００２５】
Ｓ１５０において、更新された前記並び替え配列において、所定の特徴値に基づいて、対応するデータのメッセージに異常フロー行為が発生したか否かをチェックする。
【００２６】
さらに、前記所定の特徴値は、所属しているネットワーク環境における総フローに基づいて自動的に設定されてもよく、例えば、１００００と設定される。所属しているネットワーク環境のフローが大きい場合に、大きい特徴値は設定されてもよく、例えば、１０００００と設定される。所属しているネットワーク環境のフローが小さい場合に、小さい特徴値は設定されてもよく、例えば、１０００と設定される。前記特徴値の設定は、フレキシブルであり、具体的な状況に基づく。前記特徴値の設定は単一ではない。
【００２７】
本発明の第１実施例による異常フロー検知方法は、全局のＩＰハッシュ配列及び全局の並び替え配列を生成するにより、ＩＰ情報の各指標に対して記憶、並び替え及びフロー検査分析をそれぞれ行い、ネットワーク全体におけるフローなどの各指標ランキングトップのターゲットをリアルタイムで算出することができ、次に、こちらのランキングトップのターゲットに対して詳細な行為検査を行う。このようにして、フロー異常状況を正確に且つ適時に見出し、誤報率及び欠報率大幅に低減することができる。
＜実施例２＞
【００２８】
図３は、本発明の第２実施例による異常フロー検知方法のフローチャートを示す。この実施例による技術案は、上述の第１実施例に基づいて、第１実施例を最適化する。
【００２９】
さらに、前記ＩＰハッシュ配列に記憶されているメッセージの数量情報により、メッセージタイプに基づいて、最小二分ヒープの形式で数量ランキングトップＮ個のメッセージのＩＰ情報を各並び替えサブ配列に記憶するプロセスは、以下のステップを備える。
【００３０】
Ｓ３１０において、前記ＩＰハッシュ配列に記憶されているメッセージの数量情報により、メッセージタイプに基づいて、第１並び替え関数を用いて、並び替えサブ配列を上向きトラバースすることで、前記並び替えサブ配列の最小二分ヒープの特性を保持する。
【００３１】
Ｓ３２０において、前記ＩＰハッシュ配列に記憶されているメッセージの数量情報により、メッセージタイプに基づいて、第２並び替え関数を用いて、並び替えサブ配列を下向きトラバースすることで、前記並び替えサブ配列の最小二分ヒープの特性を保持する。
【００３２】
例えば、前記並び替え配列の各メンバーは、１つの最小二分ヒープであり、つまり、前記並び替え配列における各メンバーは、完全二分木の形式で存在する。以下、第１並び替えサブ配列を例とする。
【００３３】
ＴＯＰ→ＳＹＮ［ｉ］が葉でないノードと仮定すると、左の子は、ＴＯＰ→ＳＹＮ［ｉ*２］であり、右の子は、ＴＯＰ→ＳＹＮ［ｉ*２＋１］である。この場合、前記最小二分ヒープの一番目の葉でないノードは、１から始まる。
【００３４】
ＴＯＰ→ＳＹＮ［ｉ］が葉でないノードと仮定すると、左の子は、ＴＯＰ→ＳＹＮ［ｉ*２＋１］であり、右の子は、ＴＯＰ→ＳＹＮ［ｉ*２+２］である。この場合、前記最小二分ヒープの一番目の葉でないノードは、０から始まる。
【００３５】
ＴＯＰ→ＳＹＮ［ｉ］が葉でないノードと仮定すると、左の子は、ＴＯＰ→ＳＹＮ［ｉ*２−１］であり、右の子は、ＴＯＰ→ＳＹＮ［ｉ*２］である。この場合、前記最小二分ヒープの一番目の葉でないノードは、２から始まる。
【００３６】
ここで、様々な場合が可能であり、ｉ−Ｎ＋１からの全ての値が前記最小二分ヒープのノードの添字値であればよい。なお、左の子のノードの添字値はその親のノードの添字値より大きく、右の子のノードの添字値は左の子のノードの添字値より大きい必要がある。
【００３７】
前記第１並び替え関数及び第２並び替え関数を設定する目的は、並び替え配列の最小二分ヒープの特性を保持するものである。好ましくは、第１並び替え関数をｔｏｐ_ｕｐ（ｊ）と設定し、第２並び替え関数をｔｏｐ_ｄｏｗｎ（ｊ）と設定する。この２つの関数の役割は、現在の並び替え配列が最小二分ヒープの特性を有していると仮定してから、位置ｊの値を更新するものである。新しい値が元の値より小さいと仮定すると、このノードの新しい値がその親のノードの値より小さい可能性があるので、並び替え配列が最小二分ヒープの特性を再び満たすまで、連続的なシフトアップ操作を行う必要がある。これらの操作は、ｔｏｐ_ｕｐ（ｊ）により、実現される。第１並び替え関数の役割は、並び替えサブ配列を上向きトラバースすることで、前記並び替えサブ配列の最小二分ヒープの特性を保持するものである。同じ理由で、ｔｏｐ_ｄｏｗｎ（ｊ）の操作は、ｔｏｐ_ｕｐ（ｊ）と逆である。第２並び替え関数の役割は、並び替えサブ配列を下向きトラバースすることで、前記並び替えサブ配列の最小二分ヒープの特性を保持するものである。
【００３８】
本発明の第２実施例による方法は、最小二分ヒープを用いて並び替え配列を並び替えることで、並び替え配列の最小二分ヒープの特性を保持することができる。この実施例では、子のノードは、左の子及び右の子のみを有するので、並び替え配列全体の並び替え関係を簡単にする。同時に、新しいＩＰ情報が入るとき、第１並び替え関数又は第２並び替え関数を用いて、上向きトラバースの方法又は下向きトラバースの方法で、並び替え配列を再び並び替える。したがって、ロジックが明瞭である。
＜実施例３＞
【００３９】
図４は、本発明の第３実施例による異常フロー検知方法のフローチャートを示す。この実施例による技術案は、上述の実施例に基づいて、上述の実施例をさらに最適化する。
【００４０】
さらに、新しいＩＰ情報を受信し、ランキングトップＮ個のメッセージのＩＰ情報を更新し、並び替え配列に記憶するステップは、以下のステップを備える。
【００４１】
Ｓ４１０において、２つのスレッドを生成する。
【００４２】
Ｓ４２０において、第１スレッドは、出力及び入力メッセージからＩＰアドレス及びメッセージタイプ（ＴＹＰＥ）を抽出し、ＩＰハッシュ配列に記憶することに用いられる。
【００４３】
例えば、メッセージタイプが同期メッセージであれば、ＨＡＳＨ［ＩＰ］→ＳＹＮ＋１であり、つまり、ＩＰハッシュ配列において同期メッセージの数量に１を加算する。
【００４４】
そうでなければ、メッセージタイプが制御情報メッセージであれば、ＨＡＳＨ［ＩＰ］→ＩＣＭＰ＋１であり、つまり、ＩＰハッシュ配列において制御情報メッセージの数量に１を加算する。
【００４５】
そうでなければ、メッセージタイプがユーザデータメッセージであれば、ＨＡＳＨ［ＩＰ］→ＵＤＰ＋１であり、つまり、ＩＰハッシュ配列においてユーザデータメッセージの数量に１を加算する。
【００４６】
さらに、ＩＰが第３並び替えサブ配列に存在すれば、メッセージの元ポート（ＳＰＯＲＴ）、ターゲットポート（ＤＰＯＲＴ）及びチェック値（ＣＨＥＣＫ）を抽出する。
【００４７】
例えば、元ポートの値が指定値であれば、例えば、現在のネットワークにおいて攻撃されているポート１２３、１９００、５３であれば、ＨＡＳＨ［ＩＰ］→ＤＮＡ→ＲＥＰＬＹ＋１であり、つまり、ＩＰハッシュ配列においてＤＮＡのメンバーＲＥＰＬＹの数量に１を加算する。
【００４８】
ターゲットポートの値が指定値であれば、例えば、現在のネットワークにおいて攻撃されているポート２２、８０、４４３であれば、ＨＡＳＨ［ＩＰ］→ＤＮＡ→ＴＣＰ＋１であり、つまり、ＩＰハッシュ配列においてＤＮＡのメンバーＴＣＰの数量に１を加算する。
【００４９】
ＣＨＥＣＫ＝ＨＡＳＨ［ＩＰ］→ＤＮＡ→ＣＵＲであれば、ＨＡＳＨ［ＩＰ］→ＤＮＡ→ＳＡＭＥ＋１である。そうでなければ、ＨＡＳＨ［ＩＰ］→ＤＮＡ→ＣＵＲ＝ＣＨＥＣＫである。チェック値がＩＰハッシュ配列におけるＤＮＡのメンバーＣＵＲの値と同じ場合、ＩＰハッシュ配列におけるＤＮＡのメンバーＳＡＭＥの数量に１を加算する。そうでなければ、ＩＰハッシュ配列におけるＤＮＡのメンバーＣＵＲの値をチェック値に付与する。
【００５０】
メッセージの出力及び入力が存在する限り、第１スレッドは、動作が始まり、出力及び入力メッセージからＩＰアドレス及びメッセージタイプを抽出し、ＩＰハッシュ配列に記憶することに用いられる。
【００５１】
Ｓ４３０において、第２スレッドは、前記ＩＰハッシュ配列をトラバースし、前記ＩＰハッシュ配列における各ＩＰ情報を取得し、前記ＩＰ情報が対応する並び替え配列に存在するか否かを判断することに用いられる。
【００５２】
存在していない場合、前記ＩＰ情報に対応するフロー特徴は、前記並び替え配列における一番目のＩＰ情報に対応するフロー特徴と比較し、一番目のＩＰ情報に対応するフロー特徴より大きい場合、一番目のＩＰ情報を置換し、第２並び替え関数を呼び出す。
【００５３】
存在している場合、前記ＩＰ情報の新しいフロー特徴は、前記並び替え配列におけるそのＩＰ情報の元のフロー特徴と比較し、比較結果に基づいて、並び替え配列が最小二分ヒープの特性を保持するように、第１並び替え関数又は第２並び替え関数を呼び出す。次に、前記新しいフロー特徴及び元のフロー特徴を比較して、異常フロー行為が発生したか否かを判断する。
【００５４】
図５を参照し、好ましくは、上記の技術案に基づいて、当該プロセスは、以下のステップを備える。
【００５５】
Ｓ４３１において、前記ＩＰ情報のフロー特徴ＳＹＮを取得し、前記ＩＰ情報がＴＯＰ→ＳＹＮに存在するか否かを判断する。
【００５６】
存在していない場合、前記ＩＰ情報のフロー特徴ＳＹＮは、ＴＯＰ→ＳＹＮ配列における一番目のＩＰ情報に対応するフロー特徴と比較し、一番目のＩＰ情報に対応するフロー特徴より大きい場合、一番目のＩＰ情報を置換し、前記ＩＰ情報がＴＯＰ_ＳＹＮ属性を有する（つまり、ＴＯＰ→ＳＹＮ配列に存在する）ことをマークし、置換されたＩＰ情報のＴＯＰ_ＳＹＮ属性を取り消し、次に、ｔｏｐ_ｄｏｗｎ（ｊ）を呼び出し、新しい並び替え配列を最小二分ヒープの特性を満たさせる。
【００５７】
存在している場合、前記ＩＰ情報の新しいフロー特徴ＳＹＮは、ＴＯＰ→ＳＹＮ配列におけるそのＩＰ情報の元のフロー特徴と比較し、新しいフロー特徴ＳＹＮが元のフロー特徴より小さい場合、ＴＯＰ→ＳＹＮ［ｊ］を前記フロー特徴ＳＹＮに更新してからｔｏｐ_ｕｐ（ｊ）を呼び出す。そうでなければ、ＴＯＰ→ＳＹＮ［ｊ］を前記フロー特徴ＳＹＮに更新してからｔｏｐ_ｄｏｗｎ（ｊ）を呼び出す。
【００５８】
前記新しいフロー特徴ＳＹＮを元のフロー特徴と比較し、ＳＹＮの前後２つの差が所定の特徴値（例えば、１００００）より大きい場合、ＳＹＮ  ＦＬＯＯＤが発生することを判断し、異常フロー行為が存在する。
【００５９】
Ｓ４３２において、前記ＩＰ情報のフロー特徴ＩＣＭＰを取得し、前記ＩＰ情報がＴＯＰ→ＩＣＭＰに存在するか否かを判断する。
【００６０】
存在していない場合、前記ＩＰ情報のフロー特徴ＩＣＭＰは、ＴＯＰ→ＩＣＭＰ配列における一番目のＩＰ情報に対応するフロー特徴と比較し、一番目のＩＰ情報に対応するフロー特徴より大きい場合、一番目のＩＰ情報を置換し、前記ＩＰ情報がＴＯＰ_ＩＣＭＰ属性を有する（つまり、ＴＯＰ→ＩＣＭＰ配列に存在する）ことをマークし、置換されたＩＰ情報のＴＯＰ_ＩＣＭＰ属性を取り消し、次に、ｔｏｐ_ｄｏｗｎ（ｊ）を呼び出し、新しい並び替え配列を最小二分ヒープ特性に満たさせる。
【００６１】
存在している場合、前記ＩＰ情報の新しいフロー特徴ＩＣＭＰは、ＴＯＰ→ＩＣＭＰ配列におけるそのＩＰ情報の元のフロー特徴と比較し、新しいフロー特徴ＩＣＭＰが元のフロー特徴より小さい場合、ＴＯＰ→ＩＣＭＰ［ｊ］を前記フロー特徴ＩＣＭＰに更新してからｔｏｐ_ｕｐ（ｊ）を呼び出す。そうでなければ、ＴＯＰ→ＩＣＭＰ［ｊ］を前記フロー特徴ＩＣＭＰに更新してからｔｏｐ_ｄｏｗｎ（ｊ）を呼び出す。
【００６２】
前記新しいフロー特徴ＩＣＭＰを元のフロー特徴と比較し、ＩＣＭＰの前後２つの差が所定の特徴値（例えば、１００００）より大きい場合、ＩＣＭＰ  ＦＬＯＯＤが発生することを判断し、異常フロー行為が存在する。
【００６３】
Ｓ４３３において、前記ＩＰ情報のフロー特徴ＵＤＰを取得し、前記ＩＰ情報がＴＯＰ→ＵＤＰに存在するか否かを判断する。
【００６４】
存在していない場合、前記ＩＰ情報のフロー特徴ＵＤＰは、ＴＯＰ→ＵＤＰ配列における一番目のＩＰ情報に対応するフロー特徴と比較し、一番目のＩＰ情報に対応するフロー特徴より大きい場合、一番目のＩＰ情報を置換し、前記ＩＰ情報がＴＯＰ_ＵＤＰ属性を有する（つまり、ＴＯＰ→ＵＤＰ配列に存在する）ことをマークし、置換されたＩＰ情報のＴＯＰ_ＵＤＰ属性を取り消し、次に、ｔｏｐ_ｄｏｗｎ（ｊ）を呼び出し、新しい並び替え配列を最小二分ヒープ特性に満たさせる。
【００６５】
存在している場合、前記ＩＰ情報の新しいフロー特徴ＵＤＰは、ＴＯＰ→ＵＤＰ配列におけるそのＩＰ情報の元のフロー特徴と比較し、新しいフロー特徴ＵＤＰが元のフロー特徴より小さい場合、ＴＯＰ→ＵＤＰ［ｊ］を前記フロー特徴ＵＤＰに更新してからｔｏｐ_ｕｐ（ｊ）を呼び出す。そうでなければ、ＴＯＰ→ＵＤＰ［ｊ］を前記フロー特徴ＵＤＰに更新してからｔｏｐ_ｄｏｗｎ（ｊ）を呼び出す。
【００６６】
前記新しいフロー特徴ＵＤＰを元のフロー特徴ＵＤＰと比較する。ユーザデータメッセージに対して攻撃が多様であるので、細分化分析を行う必要がある。
【００６７】
ＨＡＳＨ［ＩＰ］→ＤＮＡ→ＲＥＰＬＹにおいてＲＥＰＬＹの前後２つの差が所定の特徴値（例えば、１００００）より大きい場合、ＵＤＰ  ＦＬＯＯＤが発生することを判断し、異常フロー行為が存在する。
【００６８】
ＨＡＳＨ［ＩＰ］→ＤＮＡ→ＴＣＰにおいてＴＣＰの前後２つの差が所定の特徴値（例えば、１００００）より大きい場合、ＵＤＰ ＦＬＯＯＤが発生することを判断し、異常フロー行為が存在する。
【００６９】
ＨＡＳＨ［ＩＰ］→ＤＮＡ→ＳＡＭＥにおいてＳＡＭＥの前後２つの差が所定の特徴値（例えば、１００００）より大きい場合、ＵＤＰ ＦＬＯＯＤが発生することを判断し、異常フロー行為が存在する。
【００７０】
すなわち、ＩＰハッシュ配列におけるＤＮＡのメンバーのＲＥＰＬＹ、ＴＣＰ及びＳＡＭＥの前後２回の差を所定の特徴値と比較し、異常フロー行為が発生するか否かを判断する。
【００７１】
例えば、第２スレッドの起動を所定のタイミングで設定してもよく、例えば、第２スレッドを１秒毎に１回起動することを設定してもよい。
【００７２】
本発明の第３実施例による方法、リアルタイムのランキング及び行為分析を用いて攻撃を検知し、異常フロー行為が発生したか否かを判断する。攻撃されたターゲットのある指標がこの指標のランキングトップに必ず存在するので、リアルタイムのランキングにより、攻撃される可能性があるターゲットを見出すことができる。さらに、行為分析により、これらのターゲットが攻撃されたか否かを確実に判定する。本方法は、任意のネットワークに適用し、プログラムの起動直後の攻撃を検知することができ、正常なフローバーストを区分することができ、誤検知が起こらない。
＜実施例４＞
【００７３】
図６は、本発明の第４実施例による異常フロー検知方法のフローチャートを示す。この実施例による技術案は、上述の実施例に基づいて、上述の実施例をさらにまとめる。
【００７４】
当該方法は、以下のステップを備える。
【００７５】
Ｓ６０１において、全局ＩＰハッシュ配列及び並び替え配列を生成する。
【００７６】
前記ＩＰハッシュ配列は、ＩＰフローなどの情報を統計することに用いられる。前記ＩＰハッシュ配列は、変量ＳＹＮ、ＩＣＭＰ、ＵＤＰ及びＤＮＡを備えてもよく、同期メッセージの数量、制御情報メッセージの数量、ユーザデータメッセージの数量を統計することに及びユーザデータメッセージのフロー特徴を抽出することにそれぞれ用いられる。前記並び替え配列は、ランキングトップＮ個のＩＰ情報を保存することに用いられる。
【００７７】
Ｓ６０２において、第１スレッドを生成する。
【００７８】
Ｓ６０３において、前記第１スレッドは、メッセージを受信し、メッセージからＩＰアドレス及びメッセージタイプを取得することに用いられる。
【００７９】
Ｓ６０４において、メッセージタイプが同期メッセージであるか否かを判断する。メッセージタイプが同期メッセージである場合、Ｓ６０５を実行する。そうでなければ、Ｓ６０６を実行する。
【００８０】
Ｓ６０５において、ＨＡＳＨ［ＩＰ］→ＳＹＮ＋１である。
【００８１】
Ｓ６０６において、メッセージタイプが制御情報メッセージであるか否かを判断する。メッセージタイプが制御情報メッセージである場合、Ｓ６０７を実行する。そうでなければ、Ｓ６０８を実行する。
【００８２】
Ｓ６０７において、ＨＡＳＨ［ＩＰ］→ＩＣＭＰ＋１である。
【００８３】
Ｓ６０８において、メッセージタイプがユーザデータメッセージであるか否かを判断する。メッセージタイプがユーザデータメッセージである場合、Ｓ６０９を実行する。そうでなければ、Ｓ６０３に戻ってＳ６０３を実行する。
【００８４】
Ｓ６０９において、ＨＡＳＨ［ＩＰ］→ＵＤＰ＋１である。
【００８５】
Ｓ６１０において、ＩＰがＴＯＰ→ＵＤＰ配列に存在するか否かを判断する。存在する場合、Ｓ６１１を実行する。そうでなければ、Ｓ６０３に戻ってＳ６０３を実行する。
【００８６】
Ｓ６１１において、メッセージのＳＰＯＲＴ、ＤＰＯＲＴ、ＣＨＥＣＫを抽出し、ＩＰのメンバーＤＮＡを抽出する。
【００８７】
例えば、ユーザデータメッセージのフロー特徴が多様であるので、そのポートの出現頻度及びチェックコードの同程度を再び判断する。好ましくは、ＳＰＯＲＴ、ＤＰＯＲＴ及びＣＨＥＣＫを選択してユーザデータメッセージを細分化分析する。ＤＮＡは、ユーザデータメッセージのフロー特徴を抽出することに用いられる。ＤＮＡのメンバーは、複数であってもよい。好ましくは、ＤＮＡのメンバーは、ＣＵＲ、ＳＡＭＥ、ＲＥＰＬＹ及びＴＣＰを備える。
【００８８】
Ｓ６１２において、ＳＰＯＲＴの値が所定の値（例えば、現在のネットワークにおいて攻撃されているポート１２３、１９００、５３）であるか否かを判断する。ＳＰＯＲＴの値が所定の値である場合、Ｓ６１３を実行する。そうでなければ、Ｓ６１４を実行する。
【００８９】
Ｓ６１３において、ＤＮＡ→ＲＥＰＬＹ＋１である。
【００９０】
Ｓ６１４において、ＤＰＯＲＴの値が所定の値（例えば、現在のネットワークにおいて攻撃されているポート２２、８０、４４３）であるか否かを判断する。ＤＰＯＲＴの値が所定の値である場合、Ｓ６１５を実行する。そうでなければ、Ｓ６１６を実行する。
【００９１】
Ｓ６１５において、ＤＮＡ→ＴＣＰ＋１である。
【００９２】
Ｓ６１６において、ＣＨＥＣＫがＤＮＡ→ＣＵＲに等しいか否かを判断する。等しい場合、Ｓ６１７を実行する。そうでなければ、Ｓ６１８を実行する。
【００９３】
Ｓ６１７において、ＤＮＡ→ＳＡＭＥ＋１である。
【００９４】
Ｓ６１８において、ＤＮＡ→ＣＵＲ＝ＣＨＥＣＫである。
【００９５】
Ｓ６１９において、第２スレッドを生成する。
【００９６】
Ｓ６２０において、前記第２スレッドは、ＩＰハッシュ配列をトラバースし、現在ＩＰ対象Ａを取得することに用いられる。
【００９７】
Ｓ６２１において、対象ＡのメンバーＳＹＮ、ＩＣＭＰ、ＵＤＰを順に抽出してＰと表す。
【００９８】
Ｓ６２２において、ＰがＴＯＰ→Ｐ配列に存在するか否かを判断する。存在する場合、Ｓ６２３を実行する。そうでなければ、Ｓ６３４を実行する。
【００９９】
Ｓ６２３において、ＴＯＰ→Ｐ配列におけるＰの位置ｊを取得する。
【０１００】
Ｓ６２４において、ＡがＴＯＰ［ｊ］より大きいか否かを判断する。大きい場合、Ｓ６２５を実行する。そうでなければ、Ｓ６２６を実行する。
【０１０１】
Ｓ６２５において、ＴＯＰ→Ｐ［ｊ］＝Ｐであり、ｔｏｐ_ｄｏｗｎ（ｊ）を呼び出す。
【０１０２】
Ｓ６２６において、ＴＯＰ→Ｐ［ｊ］＝Ｐであり、ｔｏｐ_ｕｐ（ｊ）を呼び出す。
【０１０３】
Ｓ６２７において、ＰがＵＤＰであるか否かを判断する。ＰがＵＤＰである場合、Ｓ６２８を実行する。そうでなければ、Ｓ６３０を実行する。
【０１０４】
Ｓ６２８において、ＤＮＡのメンバーのＲＥＰＬＹ、ＴＣＰ、ＳＡＭＥのいずれかが所定の特徴値（例えば、１００００）より大きいか否かを判断する。大きい場合、Ｓ６２９を実行する。
【０１０５】
Ｓ６２９において、ＵＤＰ  ＦＬＯＯＤ攻撃が発生している。
【０１０６】
Ｓ６３０において、Ｐが所定の特徴値より大きいか否かを判断する。大きい場合、Ｓ６３１を実行する。
【０１０７】
Ｓ６３１において、ＰがＳＹＮであるか否かを判断する。ＰがＳＹＮである場合、Ｓ６３２を実行する。そうでなければ、Ｓ６３３を実行する。
【０１０８】
Ｓ６３２において、ＳＹＮ  ＦＬＯＯＤ攻撃が発生している。
【０１０９】
Ｓ６３３において、ＩＣＭＰ  ＦＬＯＯＤ攻撃が発生している。
【０１１０】
Ｓ６３４において、ＰがＴＯＰ→Ｐ［１］より大きいか否かを判断する。大きい場合、Ｓ６３５、Ｓ６３６及びＳ６３７を順に実行する。
【０１１１】
Ｓ６３５において、ＴＯＰ→Ｐ［１］の元のＩＰ情報のメンバーＰのＴＯＰ属性を取り消す。
【０１１２】
Ｓ６３６において、ＴＯＰ→Ｐ［１］＝Ｐであり、ＰにＴＯＰ属性を添加する。
【０１１３】
Ｓ６３７において、ｔｏｐ_ｄｏｗｎ（ｊ）を呼び出す。
【０１１４】
本発明の第４実施例による方法は、上述の実施例の技術案を総合し、ネットワーク全体におけるフローなどの各指標のランキングトップのターゲットを全面的に且つ細かく算出し、ランキングトップのターゲットに対して行為分析を行ってこれらのターゲットに異常フロー行為が発生したか否かを正確に判定する。このようにして、フロー異常状況を正確に且つ適時に見出し、誤報率及び欠報率を大幅に低減することができる。
【０１１５】
以上は、本発明の好ましい実施例及び技術原理に過ぎない。当業者であれば、本発明が以上の具体的な実施例に限定されず、本発明の要旨を逸脱しない範囲において、種々の変形、調整及び変更が可能であることが分かるはずである。したがって、上述の実施例により本発明について詳細に説明したが、本発明は、上述の実施例に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、 他の均等実施例をさらに含んでもよく、本発明の範囲は以下の特許請求の範囲により規定される。
【図１】
2017059232.tif 000003
【図２】
2017059232.tif 000004
【図３】
2017059232.tif 000005
【図４】
2017059232.tif 000006
【図５】
2017059232.tif 000007
【図６】
2017059232.tif 000008
【手続補正書】
【提出日】平成28年11月30日(2016.11.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項４
【補正方法】変更
【補正の内容】
【請求項４】
前記ＩＰハッシュ配列に記憶されているメッセージの数量情報により、メッセージタイプに基づいて、最小二分ヒープの形式で数量ランキングトップＮ個のメッセージのＩＰ情報を各並び替えサブ配列に記憶するステップは、さらに、
前記ＩＰハッシュ配列に記憶されているメッセージの数量情報により、メッセージタイプに基づいて、第１並び替え関数を用いて、並び替えサブ配列を上向きトラバースすることで、前記並び替えサブ配列の最小二分ヒープの特性を保持するステップと、
前記ＩＰハッシュ配列に記憶されているメッセージの数量情報により、メッセージタイプに基づいて、第２並び替え関数を用いて、並び替えサブ配列を下向きトラバースすることで、前記並び替えサブ配列の最小二分ヒープの特性を保持するステップと
を備える、ことを特徴とする請求項３に記載の異常フロー検知方法。