説明

ネットワーク異常検知装置及びネットワーク異常検知プログラム

【課題】トラフィック異常とデータ異常の組み合わせに特徴がある場合であっても、異常の検知漏れや検知間違いを低減する。
【解決手段】ネットワーク異常検知装置1は、ヘッダ異常検知部11により、ヘッダパターンの異常度合いとトラフィック異常閾値とに基づいてトラフィック異常を検知すると共に、データ異常検知部12により、データパターンの異常度合いとデータ異常閾値とに基づいて、データ異常を検知し、その後、異常判断部25により、トラフィック異常と、データ異常とに基づいて、パケットの異常を判断する。閾値調整部24は、トラフィック異常閾値とデータ異常閾値とのうち、複数のヘッダパターンの異常度合いの変化と複数のデータパターンの異常度合いの変化とが大きい方の閾値を変更する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不正な通信データを検知するネットワーク異常検知装置及びネットワーク異常検知プログラムに関する。
【背景技術】
【0002】
従来より、ネットワーク上のトラフィック異常、データ異常を検知する技術としては、下記の特許文献1,2に開示されたものなどが知られている。トラフィック異常とは、例えば、IP(Internet Protocol)アドレスの宛先の通信方向等の異常を指す。データ異常は、コンピュータウィルスによって生成されたデータ等の異常を指す。
【0003】
特許文献1には、ネットワーク上に流れるパケットを観測し、当該観測パケットのトラフィックの種別を要素とする相関係数に基づいて異常パケットを送受信する通信機器の特定を行っていることが記載されている。また、観測パケットに含まれるIPアドレスとポート番号に関する外れ値の検知手段(Outlier Detection)を用いたトラフィック異常の検知技術も知られている。
【0004】
特許文献2には、ネットワーク上のデータ異常(ウィルスを特定するデータ)を検知するための技術として、ウィルスパターン(シグネチャ)のチェックを行う技術が記載されている。これに対し、従来より、PAYL/Anagramと呼ばれるパターンデータをN-gram方式と呼ばれるデータ検索方法を応用して、トラフィックに含まれるデータの前後のデータ要素に基づいて異常データの特定を行う技術が知られている。これにより、特定のシグネチャに依らずに異常データの特定を行うことができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−219525号公報
【特許文献2】特開2007−243566号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述した従来の技術では、ネットワーク上のトラフィック異常の検知と、ネットワーク上のデータ異常を別々の手法で行っていた。従って、トラフィック異常であってデータ異常である場面において、正しく異常を評価することができなかった。
【0007】
例えば、図1に示すようなサーバS1、クライアントC1,C2,C3とを含むネットワーク構成におけるトラフィック異常、データ異常を検知するとする。また、所定の単位時間内にネットワーク上を流れるパケットのトラフィック異常と判定する基準となる閾値TH1と、ネットワーク上に流れるパケットに含まれるデータ異常と判定する基準となる閾値TH2とを定めておくとする。更に、クライアントC1,C2,C3は、正常時にはサーバS1にアクセスするとする。
【0008】
クライアントC1,C2が正常であり、クライアントC3がウィルス(Blaster)に感染しているとする。クライアントC1,C2は、サーバS1にアスキー(ASCII)データを10000パケットづつ送信する。一方、クライアントC3は、アスキーデータを9700パケット送り、バイナリ(BINARY)データを300パケット送る。
【0009】
この場合、上述したトラフィック異常の検知を行うと、クライアントC1,C2,C3からサーバS1への通信は、それぞれ、合計で10000パケットづつ送信している。これらの通信は、ネットワーク全体に対する通信方向に対して少ない通信量ではなく、閾値TH1に基づいて、トラフィック異常ではないと判定される。
【0010】
しかし、クライアントC3は、サーバS1とは異なる方向であって、サーバS1のようにサービスを提供しないクライアントC1に対して100パケット、クライアントC2に対して10パケットを送信している。
【0011】
ここで、ネットワーク全体において、クライアントC1〜C3がサーバS1に対して10000パケットづつの30000パケットを送信し、クライアントC3が、クライアントC1に対して100パケット、クライアントC2に対して10パケットを送信している。したがって、ネットワーク全体における送信された合計パケットは、30110パケットとなる。このような状況において、上述のトラフィック異常検知技術によれば、クライアントC3がクライアントC1,C2に対して送信した110パケットが、全送信パケットの30110パケットよりも非常に少ない割合となり、トラフィック異常の閾値TH1に基づいて、トラフィック異常であると判定されてしまう。
【0012】
しかし、クライアントC3がクライアントC1に送信した63パケットは、正常なXML(Extensible Markup Language)データである。また、クライアントC3がクライアントC2に送信した10パケットのうち、7パケットは正常なアスキーデータである。したがって、このトラフィック異常検知技術では、正常なXMLデータ及びアスキーデータを、トラフィック異常と誤検知してしまう。
【0013】
また、データ異常に関し、ネットワーク全体における全30110パケットに含まれるアスキーデータに対して、少ない割合のXMLデータ及びバイナリデータは、上述の閾値TH2に基づいて、上述のデータ異常検知技術によって、データ異常であると検知されてしまう。
【0014】
しかし、クライアントC3がクライアントC1に送信した63パケットは、正常なXMLデータである。また、クライアントC3がクライアントC2に送信した10パケットのうち、7パケットは正常なアスキーデータである。したがって、このデータ異常検知技術では、正常なXMLデータ及びアスキーデータを、データ異常と誤検知してしまう。
【0015】
ここで、図1において、クライアントC3から送信された悪意のコードであるバイナリデータを含むパケットのみが、トラフィック異常且つデータ異常である。
【0016】
しかし、単純にトラフィック方向のみで異常を検知するトラフィック異常検知技術では、クライアントC3からサーバS1に送信されたバイナリデータを含む300パケットは、トラフィック異常とはみなされず、検知漏れが発生する。
【0017】
また、トラフィック異常検知技術によれば、クライアントC3からクライアントC1に送信されるXMLデータの63パケットは、本来であれば正常な通信であるが、トラフィック異常且つデータ異常と判定されてしまう。
【0018】
更に、クライアントC3からクライアントC2に送信される3パケットのバイナリデータは、トラフィック異常且つデータ異常と判定できる。しかし、データ異常の方法によっては、63パケットのXMLデータに対して、37パケットのバイナリデータの割合から、バイナリデータがデータ異常と判定されない可能性もある。
【0019】
このように、データマインイングのスコア(異常度合い)による異常判定は、スコアの算出方法とデータの構成に依存して異常の検知漏れ(フォールスポジティブ性が低い)、検知間違い(フォールスネガティブ性が低い)を生ずる。これにより、トラフィック異常とデータ異常のインシデントの組み合わせに特徴(例えばワーム型ウィルス)がある場合には、片方の異常検知方式を単純に並列処理するだけでは、検知漏れや検知間違いを含んだ異常判定となる問題があった。
【0020】
そこで、本発明は、上述した実情に鑑みて提案されたものであり、トラフィック異常とデータ異常の組み合わせに特徴がある場合であっても、異常の検知漏れや検知間違いを低減できるネットワーク異常検知装置及びネットワーク異常検知プログラムを提供することを目的とする。
【課題を解決するための手段】
【0021】
本発明に係るネットワーク異常検知装置は、受信手段によりネットワーク上に流れるパケットを受信すると、ヘッダ学習手段により、受信手段により受信されたパケットのヘッダパターンを蓄積し、当該ヘッダパターンごとに異常度合いを求め、トラフィック異常閾値設定手段により、ヘッダ学習手段により求められた複数のヘッダパターンの異常度合いに基づいてトラフィック異常を判定するためのトラフィック異常閾値を設定する。一方、本発明に係るネットワーク異常検知装置は、受信手段によりネットワーク上に流れるパケットを受信すると、データ学習手段により、受信手段により受信されたパケットのデータパターンを蓄積し、当該データパターンごとに異常度合いを求め、データ異常閾値設定手段により、データ学習手段により求められた複数のデータパターンの異常度合いに基づいてデータ異常を判定するためのデータ異常閾値を設定する。
【0022】
これにより、ネットワーク異常検知装置は、トラフィック異常検知手段により、受信手段により受信されたパケットに含まれるヘッダパターンの異常度合いとトラフィック異常閾値とに基づいて、トラフィック異常を検知すると共に、データ異常検知手段により、受信手段により受信されたパケットに含まれるデータパターンの異常度合いとデータ異常閾値とに基づいて、データ異常を検知し、その後、異常判断手段により、トラフィック異常検知手段により検知されたトラフィック異常と、データ異常検知手段により検知されたデータ異常とに基づいて、受信手段により受信されたパケットの異常を判断する。
【0023】
このようなネットワーク異常検知装置は、上述の課題を解決するために、閾値調整手段により、トラフィック異常閾値とデータ異常閾値とのうち、複数のヘッダパターンの異常度合いの変化と複数のデータパターンの異常度合いの変化とが大きい方の閾値を変更する。
【0024】
また、本発明に係るネットワーク異常検知装置において、閾値調整手段は、トラフィック異常閾値とデータ異常閾値との一方の閾値を固定して他方の閾値を変更した後に、当該固定した閾値を変更させることが望ましい。
【0025】
更に、本発明に係るネットワーク異常検知装置において、閾値調整手段は、トラフィック異常閾値とデータ異常閾値とのうち、ヘッダ学習手段により異常度合いが求められたヘッダパターンとデータ学習手段により求められたデータパターンとのうち、パターンの個数が少ない方の閾値を固定し、パターンの個数が多い方の閾値を変更することが望ましい。
【0026】
更に、本発明に係るネットワーク異常検知装置において、ヘッダ学習手段は、ヘッダパターンごとに、当該ヘッダに付加されていたデータを蓄積し、閾値調整手段は、データパターンに含まれるデータと、ヘッダパターンごとのデータとの間に相関がある場合には、当該トラフィック異常閾値又はデータ異常閾値を変化させることが望ましい。
【0027】
更に、本発明に係るネットワーク異常検知装置において、ヘッダ学習手段は、ヘッダパターンごとに、当該ヘッダに付加されていたデータを蓄積し、データパターンに含まれるデータと、ヘッダパターンごとのデータとの間に相関がある場合には、当該相関があるヘッダパターンの異常度合い又は当該相関があるデータパターンの異常度合いを高くすることが望ましい。
【0028】
更に、本発明に係るネットワーク異常検知装置において、ヘッダ学習手段は、ヘッダパターンごとに、当該ヘッダに付加されていたデータを蓄積し、閾値調整手段は、データパターンに含まれるデータと、ヘッダパターンごとのデータとの間に相関がない場合には、当該トラフィック異常閾値又はデータ異常閾値を変化度合いを高くすることが望ましい。
【0029】
更に、本発明に係るネットワーク異常検知装置において、閾値調整手段は、トラフィック異常閾値及びデータ異常閾値の最大値及び最小値からなる限界範囲を設け、トラフィック異常閾値又はデータ異常閾値が限界範囲を超えた場合に、閾値の変更を停止することが望ましい。
【0030】
更に、ネットワーク上に流れるパケットを受信する通信機器内のコンピュータによりされるネットワーク異常検知プログラムは、ネットワーク上に流れるパケットを受信すると、ヘッダ学習機能により、受信されたパケットのヘッダパターンを蓄積し、当該ヘッダパターンごとに異常度合いを求め、トラフィック異常閾値設定機能により、ヘッダ学習機能により求められた複数のヘッダパターンの異常度合いに基づいてトラフィック異常を判定するためのトラフィック異常閾値を設定する。一方、本発明に係るネットワーク異常検知装置は、ネットワーク上に流れるパケットを受信すると、データ学習機能により、受信されたパケットのデータパターンを蓄積し、当該データパターンごとに異常度合いを求め、データ異常閾値設定機能により、データ学習機能により求められた複数のデータパターンの異常度合いに基づいてデータ異常を判定するためのデータ異常閾値を設定する。
【0031】
これにより、ネットワーク異常検知プログラムは、トラフィック異常検知機能により、受信されたパケットに含まれるヘッダパターンの異常度合いとトラフィック異常閾値とに基づいて、トラフィック異常を検知すると共に、データ異常検知機能により、受信されたパケットに含まれるデータパターンの異常度合いとデータ異常閾値とに基づいて、データ異常を検知し、その後、異常判断機能により、トラフィック異常検知機能により検知されたトラフィック異常と、データ異常検知機能により検知されたデータ異常とに基づいて、受信されたパケットの異常を判断する。
【0032】
このようなネットワーク異常検知プログラムは、上述の課題を解決するために、閾値調整機能により、トラフィック異常閾値とデータ異常閾値とのうち、複数のヘッダパターンの異常度合いの変化と複数のデータパターンの異常度合いの変化とが大きい方の閾値を変更する。
【発明の効果】
【0033】
本発明に係るネットワーク異常検知装置によれば、トラフィック異常閾値とデータ異常閾値とのうち、複数のヘッダパターンの異常度合いの変化と複数のデータパターンの異常度合いの変化とが大きい方の閾値を変更する。これにより、ネットワーク異常検知装置によれば、トラフィック異常とデータ異常とが重なる場合であっても、2つの異常の閾値を固定することなく、異常の誤検知及び検知漏れを低減できる。
【0034】
また、本発明に係るネットワーク異常検知装置によれば、トラフィック異常閾値とデータ異常閾値との一方の閾値を固定して他方の閾値を変更した後に、当該固定した閾値を変更させる。これにより、ネットワーク異常検知装置によれば、異常なイベントが多すぎる又は少なすぎる場合であっても、固定していた閾値を変更することによって新たな異常を検知でき、異常の誤検知及び検知漏れを低減できる。
【0035】
更に、本発明に係るネットワーク異常検知装置によれば、トラフィック異常閾値とデータ異常閾値とのうち、ヘッダパターンとデータパターンとのうち、パターンの個数が少ない方の閾値を固定し、パターンの個数が多い方の閾値を変更する。これにより、トラフィック異常とデータ異常とが重なる場合でも、パターンの個数が多い方の閾値を先に変化させて、その後に、パターンの個数が少ない方の閾値を変化させることができ、閾値調整を効率化できる。
【0036】
更に、本発明に係るネットワーク異常検知装置によれば、データパターンに含まれるデータと、ヘッダパターンごとのデータとの間に相関がある場合には、当該データパターンとヘッダパターンの双方が異常又は正常である可能性が高い。よって、ネットワーク異常検知装置は、当該トラフィック異常閾値又はデータ異常閾値を変化度合いを大きくして、閾値調整を効率化することができる。
【0037】
更に、本発明に係るネットワーク異常検知装置によれば、データパターンに含まれるデータと、ヘッダパターンごとのデータとの間に相関がある場合には、当該相関があるヘッダパターンの異常度合い又は当該相関があるデータパターンの異常度合いを高くするので、当該高くしたパターン間の差を高くして、閾値を設定しやすくでき、閾値調整を効率化できる。
【0038】
更に、本発明に係るネットワーク異常検知装置によれば、データパターンに含まれるデータと、ヘッダパターンごとのデータとの間に相関がない場合には、当該トラフィック異常閾値又はデータ異常閾値を変化度合いを高くするので、当該高くしたパターンの差を高くして、閾値を設定しやすくでき、閾値調整を効率化できる。
【0039】
更に、本発明に係るネットワーク異常検知装置によれば、トラフィック異常閾値及びデータ異常閾値の最大値及び最小値からなる限界範囲を設け、トラフィック異常閾値又はデータ異常閾値が限界範囲を超えた場合に、閾値の変更を停止するので、誤って閾値を設定して、異常の誤検知及び検出漏れを回避できる。
【0040】
更に、本発明に係るネットワーク異常検知プログラムによれば、トラフィック異常閾値とデータ異常閾値とのうち、複数のヘッダパターンの異常度合いの変化と複数のデータパターンの異常度合いの変化とが大きい方の閾値を変更する。これにより、ネットワーク異常検知プログラムによれば、トラフィック異常とデータ異常とが重なる場合であっても、2つの異常の閾値を固定することなく、異常の誤検知及び検知漏れを低減できる。
【図面の簡単な説明】
【0041】
【図1】本発明の一実施形態として示すネットワーク異常検知装置が接続される通信ネットワークについて示す図である。
【図2】本発明の一実施形態として示すネットワーク異常検知装置が所定期間内の通信から異常を検知することのシーケンス図である。
【図3】本発明の一実施形態として示すネットワーク異常検知装置の構成を示すブロック図である。
【図4】本発明の一実施形態として示すネットワーク異常検知装置において作成するパケット群を示す図である。
【図5】本発明の一実施形態として示すネットワーク異常検知装置において作成するヘッダパターン群を示す図である。
【図6】本発明の一実施形態として示すネットワーク異常検知装置において、ヘッダパターン群を生成する処理手順を示すフローチャートである。
【図7】本発明の一実施形態として示すネットワーク異常検知装置において作成するデータパターン群を示す図である。
【図8】本発明の一実施形態として示すネットワーク異常検知装置において、データパターン群を生成する処理手順を示すフローチャートである。
【図9】本発明の一実施形態として示すネットワーク異常検知装置において、(a)はヘッダパターンに基づく異常検知結果、(b)はデータパターンに基づく異常検知結果、(c)は通信ネットワークにおける異常な通信を示す。
【図10】本発明の一実施形態として示すネットワーク異常検知装置において、(a)はヘッダパターンのスコア等とトラフィック異常閾値Atrafficとの関係を示し、(b)はデータパターンのスコア等とデータ異常閾値Adataとの関係を示し、(c)は当該トラフィック異常閾値Atraffic及びデータ異常閾値Adataから検知可能な異常な通信を示す。
【図11】本発明の一実施形態として示すネットワーク異常検知装置が図10に対してトラフィック異常閾値Atrafficを変更したときにおける、(a)パターンのスコア等とトラフィック異常閾値Atrafficとの関係、(b)データパターンのスコア等とデータ異常閾値Adataとの関係、(c)は当該トラフィック異常閾値Atraffic及びデータ異常閾値Adataから検知可能な異常な通信、を示す。
【図12】本発明の一実施形態として示すネットワーク異常検知装置が図11に対してトラフィック異常閾値Atrafficを変更したときにおける、(a)パターンのスコア等とトラフィック異常閾値Atrafficとの関係、(b)データパターンのスコア等とデータ異常閾値Adataとの関係、(c)は当該トラフィック異常閾値Atraffic及びデータ異常閾値Adataから検知可能な異常な通信、を示す。
【図13】本発明の一実施形態として示すネットワーク異常検知装置が図12に対してトラフィック異常閾値Atrafficを変更したときにおける、(a)パターンのスコア等とトラフィック異常閾値Atrafficとの関係、(b)データパターンのスコア等とデータ異常閾値Adataとの関係、(c)は当該トラフィック異常閾値Atraffic及びデータ異常閾値Adataから検知可能な異常な通信、を示す。
【図14】本発明の一実施形態として示すネットワーク異常検知装置が図13に対してトラフィック異常閾値Atrafficを変更したときにおける、(a)パターンのスコア等とトラフィック異常閾値Atrafficとの関係、(b)データパターンのスコア等とデータ異常閾値Adataとの関係、(c)は当該トラフィック異常閾値Atraffic及びデータ異常閾値Adataから検知可能な異常な通信、を示す。
【図15】本発明の一実施形態として示すネットワーク異常検知装置が図14に対してトラフィック異常閾値Atrafficを変更したときにおける、(a)パターンのスコア等とトラフィック異常閾値Atrafficとの関係、(b)データパターンのスコア等とデータ異常閾値Adataとの関係、(c)は当該トラフィック異常閾値Atraffic及びデータ異常閾値Adataから検知可能な異常な通信、を示す。
【図16】本発明の一実施形態として示すネットワーク異常検知装置が図15に対してトラフィック異常閾値Atrafficを変更したときにおける、(a)パターンのスコア等とトラフィック異常閾値Atrafficとの関係、(b)データパターンのスコア等とデータ異常閾値Adataとの関係、(c)は当該トラフィック異常閾値Atraffic及びデータ異常閾値Adataから検知可能な異常な通信、を示す。
【図17】本発明の一実施形態として示すネットワーク異常検知装置が図16に対してトラフィック異常閾値Atrafficを変更したときにおける、(a)パターンのスコア等とトラフィック異常閾値Atrafficとの関係、(b)データパターンのスコア等とデータ異常閾値Adataとの関係、(c)は当該トラフィック異常閾値Atraffic及びデータ異常閾値Adataから検知可能な異常な通信、を示す。
【図18】本発明の一実施形態として示すネットワーク異常検知装置が図17に対してトラフィック異常閾値Atraffic及びデータ異常閾値Adataを変更したときにおける、(a)パターンのスコア等とトラフィック異常閾値Atrafficとの関係、(b)データパターンのスコア等とデータ異常閾値Adataとの関係、(c)は当該トラフィック異常閾値Atraffic及びデータ異常閾値Adataから検知可能な異常な通信、を示す。
【図19】本発明の一実施形態として示すネットワーク異常検知装置が図18に対してトラフィック異常閾値Atrafficを変更したときにおける、(a)パターンのスコア等とトラフィック異常閾値Atrafficとの関係、(b)データパターンのスコア等とデータ異常閾値Adataとの関係、(c)は当該トラフィック異常閾値Atraffic及びデータ異常閾値Adataから検知可能な異常な通信、を示す。
【図20】本発明の一実施形態として示すネットワーク異常検知装置が図19に対してトラフィック異常閾値Atrafficを変更したときにおける、(a)パターンのスコア等とトラフィック異常閾値Atrafficとの関係、(b)データパターンのスコア等とデータ異常閾値Adataとの関係、(c)は当該トラフィック異常閾値Atraffic及びデータ異常閾値Adataから検知可能な異常な通信、を示す。
【図21】本発明の一実施形態として示すネットワーク異常検知装置が図20に対してトラフィック異常閾値Atrafficを変更したときにおける、(a)パターンのスコア等とトラフィック異常閾値Atrafficとの関係、(b)データパターンのスコア等とデータ異常閾値Adataとの関係、(c)は当該トラフィック異常閾値Atraffic及びデータ異常閾値Adataから検知可能な異常な通信、を示す。
【図22】本発明の一実施形態として示すネットワーク異常検知装置において、(a)はヘッダパターンのスコア等とトラフィック異常閾値Atrafficとの関係を示し、(b)はデータパターンのスコア等とデータ異常閾値Adataとの関係を示し、(c)は当該トラフィック異常閾値Atraffic及びデータ異常閾値Adataから検知可能な異常な通信を示す。
【図23】本発明の一実施形態として示すネットワーク異常検知装置において、ヘッダパターンに含まれるデータハッシュ値と、データパターンに含まれるハッシュ値との相関によりヘッダパターンのスコア値を変更することの説明図である。
【図24】本発明の一実施形態として示すネットワーク異常検知装置において、ヘッダパターンに含まれるデータハッシュ値と、データパターンに含まれるハッシュ値との相関によりヘッダパターンのスコア値を変更する処理手順を示すフローチャートである。
【図25】本発明の一実施形態として示すネットワーク異常検知装置において、ヘッダパターンに含まれる生データと、データパターンに含まれる生データとの相関によりヘッダパターンのスコア値を変更することの説明図である。
【図26】本発明の一実施形態として示すネットワーク異常検知装置において、ヘッダパターンに含まれる生データと、データパターンに含まれる生データとの相関によりヘッダパターンのスコア値を変更する処理手順を示すフローチャートである。
【図27】本発明の一実施形態として示すネットワーク異常検知装置において、ヘッダパターンに含まれる生データと、データパターンに含まれる生データとの相関がない場合に閾値の移動を大きくすることの説明図である。
【図28】本発明の一実施形態として示すネットワーク異常検知装置において、ヘッダパターンに含まれる生データと、データパターンに含まれる生データとの相関がないことにより閾値の移動を大きくする処理手順を示すフローチャートである。
【発明を実施するための形態】
【0042】
以下、本発明の実施の形態について図面を参照して説明する。
【0043】
本発明を適用したネットワーク異常検知装置は、例えば図1に示すようにサーバS1とクライアントC1,C2,C3とが接続された通信ネットワークNTに接続される。ネットワーク異常検知装置は、サーバS1とクライアントC1,C2,C3との間で送受信されるIPパケットを傍受する。
【0044】
このネットワーク異常検知装置は、トラフィック異常とデータ異常とを組み合わせたインシデントに特徴がある場合であっても、異常の検知漏れ及び検知間違いを低減するものである。このネットワーク異常検知装置は、図2に示すように、所定の時間単位Tx内において通信ネットワークNT内のノードN1、N2、N3間で流れるパケットを傍受する。また、ネットワーク異常検知装置は、パケットのトラフィック異常と判定する基準となる閾値Atrafficと、パケットに含まれるデータ異常と判定する基準となる閾値Adataとを設定しておく。そして、ネットワーク異常検知装置は、トラフィック異常、データ異常の双方で異常とみなされるように基準となる閾値(閾値Adata、閾値Atraffic)を自動的に調整する。これにより、ネットワーク異常検知装置は、トラフィック異常且つデータ異常である場面でのパケットを特定する。例えば、図2において、ノードN2が送信してノードN1、N2が受信するメッセージXXX、YYYが異常原因であると判定する。
【0045】
[ネットワーク異常検知装置の構成]
上述したネットワーク異常検知装置1は、図3に示すように、複数のノードN1,N2,・・・Nnが接続された通信ネットワークNTに接続されている。ネットワーク異常検知装置は、通信キャプチャ部10,ヘッダ異常検知部11,データ異常検知部12,ヘッダ学習部13,ヘッダスコア定義記憶部14,ヘッダパターン群記憶部15,従属データパターン群記憶部16,ヘッダ閾値群記憶部17,データ学習部18,データスコア定義記憶部19,データパターン群記憶部20,従属ヘッダパターン群記憶部21,データ閾値群記憶部22,閾値定義部23,閾値調整部24,異常判断部25を備える。なお、ネットワーク異常検知装置1は、ハードウェア、ソフトウェアにより図3の各部を構成しても良い。例えばネットワーク異常検知装置1の各部は、通信装置内のコンピュータにより実行されるように、当該通信装置内に記憶されたプログラムによって実現される機能であっても良い。
【0046】
通信キャプチャ部10は、通信ネットワークNT上に流れるパケットを受信する(受信手段)。通信キャプチャ部10は、受信したパケットをヘッダ異常検知部11、データ異常検知部12、ヘッダ学習部13及びデータ学習部18に供給する。通信キャプチャ部10は、所定の期間ごとに、通信ネットワークNTに流れているパケットを収集する。
【0047】
ヘッダ学習部13、ヘッダスコア定義記憶部14、ヘッダパターン群記憶部15、従属データパターン群記憶部16、ヘッダ閾値群記憶部17及び閾値定義部23は、トラフィック異常閾値としてのAtrafficを設定する。すなわち、これらは、通信キャプチャ部10により受信されたパケットに含まれるヘッダ情報に基づいてトラフィック異常を判定するためのトラフィック異常閾値を設定する(トラフィック異常閾値設定手段)。
【0048】
ヘッダ学習部13は、通信キャプチャ部10により収集されたパケット群を用いて、トラフィック異常を検知するための情報を生成する。このとき、ヘッダ学習部13は、ヘッダスコア定義記憶部14に記憶されたIPアドレスとサービスとのパターンを示すヘッダスコア定義を参照する。これにより、ヘッダ学習部13は、ヘッダパターン群、従属データパターン群、ヘッダ閾値群を生成する。なお、このヘッダ学習部13の処理は、後述する。
【0049】
ヘッダスコア定義では、ある特定のヘッダを異常性が高いとしてスコアを高くするためのバイアス値を定義している。これにより、ヘッダ学習部13は、ヘッダスコア定義を参照することにより、後述するように求めたヘッダスコア値(n_score)に対してバイアス値を乗算することで、ヘッダスコア値(n_score)を調整できる。このように、ヘッダ学習部13は、効率的に異常を検知できるヘッダスコア値(n_score)を設定できる。
【0050】
閾値定義部23は、時間的に前後するパケットを用いて、当該パケットがトラフィック異常に関するものであるかの異常度合いを示すスコアを生成する。閾値定義部23は、所定の判定値αを設定し、時間的に前後するパケットから得たヘッダパターン間のスコア差を計算する。そして、閾値定義部23は、計算したスコア差が所定の判定値αを超えている場合に、スコア値の変化が大きいとみなし、そのヘッダパターンのスコア値を閾値候補とし、ヘッダ閾値群を生成する。
【0051】
また、閾値定義部23は、判定値α以外に、判定値βを設定し、一方を最大値、他方を最小値に設定しても良い。これにより、閾値定義部23は、ヘッダパターン間のスコア差が極端に変化するときに、当該判定値α、β間のスコア差に該当しない場合には、当該スコア差では閾値候補から外す。これにより、誤って閾値を設定して、異常の誤検知及び検出漏れを回避できる。
【0052】
ヘッダ異常検知部11は、通信キャプチャ部10により受信されたパケットに含まれるヘッダ情報と、閾値調整部24により調整されたトラフィック異常閾値Atrafficとに基づいて、トラフィック異常を検知する(トラフィック異常検知手段)。ヘッダ異常検知部11は、トラフィック異常の判断結果を異常判断部25に供給する。
【0053】
データ学習部18、データスコア定義記憶部19、データパターン群記憶部20、従属ヘッダパターン群記憶部21、データ閾値群記憶部22及び閾値定義部23は、データ異常閾値としてのAdataを設定する。すなわち、これらは、通信キャプチャ部10により受信されたパケットに含まれるデータ(ペイロード)情報に基づいてデータ異常を判定するためのデータ異常閾値を設定する(データ異常閾値設定手段)。
【0054】
データ学習部18は、通信キャプチャ部10により収集されたパケット群を用いて、データ異常を検知するための情報を生成する。このとき、データ学習部18は、データスコア定義記憶部19に記憶されたシグネチャとサービスとのパターンを示すデータスコア定義を参照する。これにより、データ学習部18は、データパターン群、従属ヘッダパターン群、データ閾値群を生成する。なお、このデータ学習部18の処理は、後述する。
【0055】
データスコア定義では、ある特定のデータを異常性が高いとしてスコアを高くするためのバイアス値を定義している。これにより、データ学習部18は、データスコア定義を参照することにより、後述するように求めたデータスコア値(n_score)に対してバイアス値を乗算することで、データスコア値(n_score)を調整できる。このように、データ学習部18は、効率的に異常を検知できるデータスコア値(n_score)を設定できる。
【0056】
閾値定義部23は、時間的に前後するパケットを用いて、当該パケットがデータ異常に関するものであるかの程度を示すスコアを生成する。閾値定義部23は、所定の判定値αを設定し、時間的に前後するパケットから得たデータパターン間のスコア差を計算する。そして、閾値定義部23は、計算したスコア差が所定の判定値αを超えている場合に、スコア値の変化が大きいとみなし、そのデータパターンのスコア値を閾値候補とし、データ閾値群を生成する。
【0057】
データ異常検知部12は、通信キャプチャ部10により受信されたパケットに含まれるデータ情報と、閾値調整部24により調整されたデータ異常閾値Adataとに基づいて、データ異常を検知する(データ異常検知手段)。データ異常検知部12は、データ異常の判断結果を異常判断部25に供給する。
【0058】
異常判断部25は、ヘッダ異常検知部11により検知されたトラフィック異常と、データ異常検知部12により検知されたデータ異常とに基づいて、通信キャプチャ部10により受信されたパケットの異常を判断する(異常判断手段)。この異常判断部25により検出された異常情報は、図示しない管理装置などに出力されることにより蓄積され、又は、通信ネットワークNTの管理者等に通知される。また、異常判断部25によるパケット異常の判断結果は、閾値調整部24に供給される。
【0059】
閾値調整部24は、異常判断部25により判断されたパケットの異常に基づいて、ヘッダ学習部13により設定されたトラフィック異常閾値Atrafficとデータ学習部18により設定されたデータ異常閾値Adataとの少なくとも一方を変更する(閾値調整手段)。閾値調整部24により一方が変更されたトラフィック異常閾値Atraffic、データ異常閾値Adataは、それぞれ、ヘッダ異常検知部11、データ異常検知部12に供給される。
【0060】
このとき、閾値調整部24は、異常判断部25による異常判断結果から、異常なイベントが多すぎる又は少なすぎる場合に、自動フィードバック制御によって、トラフィック異常閾値Atraffic、データ異常閾値Adataを高く又は低くする。例えば、異常判断部25でトラフィック異常、データ異常を判断していないが、実際に異常が発見された場合に、ネットワーク異常検知装置の管理者は、図示しないキーボード等の操作により、手動でトラフィック異常、データ異常が無いと入力する。この入力信号は、閾値定義部23に供給される。これに応じて、閾値定義部23は、トラフィック異常閾値Atraffic、データ異常閾値Adataを下げる。これにより、閾値調整部24は、調整対象とするデータ異常閾値Adataを変化させる。
【0061】
より具体的には、閾値調整部24は、トラフィック異常とデータ異常との何れか一方が異常ではない場合、自動フィードバックにより、異常でない側の閾値を調整する。例えば、異常判断部25によりトラフィック異常であるがデータ異常ではないと判断された場合、異常判断部25は、データ異常ではないメッセージを閾値調整部24に供給する。これに応じ、閾値調整部24は、データ異常閾値Adataを変化させる。
【0062】
[ヘッダ学習部13によるスコア生成処理]
つぎに、上述したネットワーク異常検知装置1において、ヘッダ学習部13によるIPヘッダを用いてスコアを生成する処理について説明する。
【0063】
通信キャプチャ部10により収集されるパケット群は、図4に示すように、シーケンス番号(seq)ごとに、収集時刻(time)、データ長(len)、IPヘッダ(IP header)、ポート番号(port)、データ(Data)が格納されるというリスト形式で保存される。そして、ヘッダ学習部13は、当該パケット群を参照して、トラフィック異常に関わるパケットのスコアを生成する。
【0064】
ヘッダ学習部13は、図5に示すように、トラフィック異常に関わるIPヘッダについての情報として、ヘッダパターン群101を生成する。ヘッダパターン群101は、ヘッダパターンnPt[0],nPt[1],・・・,nPt[m]である。
【0065】
各ヘッダパターン102は、ヘッダスコア値(n_score)103と、第1ヘッダ情報102aと、第2ヘッダ情報102bと、従属データパターン情報102cとを含む。
【0066】
第1ヘッダ情報102aは、所定の期間においてIPパケットが収集開始された時刻start_time、IPパケットが収集終了された時刻end_time、収集パケット数total_cntを含む。
【0067】
第2ヘッダ情報102bは、ポート番号及びデータのハッシュ値pat_sig_hash、送信元IPアドレスIP_addr_src、宛先IPアドレスIP_addr_dst、送信元ポート番号port_src、宛先ポート番号port_dstを含む。
【0068】
従属データパターン情報102cは、ヘッダハッシュ値sig_ptr、当該ヘッダハッシュ値のカウント数sig_munに対応して、当該ヘッダに付加されたポート番号及びデータのハッシュ値であるデータハッシュ値sig_hash[0]〜sig_hash[sig_mun]を含む。また、各データハッシュ値sig_hash[0]〜sig_hash[sig_mun]には、当該データハッシュ値sig_hash[0]〜sig_hash[sig_mun]のカウント数sig_cnt[0]〜sig_cnt[sig_mun]、シグネチャ長sig_len[0]〜sig_len[sig_mun]、及び、ポート番号及びデータの生データsig_data[0]〜sig_data[sig_mun]が対応付けられている。なお、生データsig_dataは、後述するように、トラフィック異常と判定されたIPヘッダと、データ異常と判定されたデータとの相関を判断しない場合には、従属データパターン情報102cとして必要はない。
【0069】
このようなヘッダパターン群101を生成するとき、ヘッダ学習部13は、図6に示す処理を行う。
【0070】
先ず、ヘッダ学習部13は、ステップS1において、図4のパケット群を参照して、当該パケット群からシーケンスの昇順に、IPアドレスとポート番号との組であるヘッダ情報Set{IP[k],PORT[k]}を抽出する。
【0071】
次のステップS2において、ヘッダ学習部13は、既存のヘッダパターンnPt[0]〜nPt[m]に、ステップS1にて抽出したヘッダ情報Set{IP[k],PORT[k]}が無いか否かを判定する。このとき、ヘッダ学習部13は、既存のヘッダパターンのうちの第2ヘッダ情報102bに含まれる送信元IPアドレスIP_addr_src、宛先IPアドレスIP_addr_dst、送信元ポート番号port_src、宛先ポート番号port_dstと、ステップS1にて抽出したヘッダ情報Set{IP[k],PORT[k]}とを比較する。その結果、ヘッダ情報Set{IP[k],PORT[k]}が既存のヘッダパターンに無い場合には、ステップS7に処理を進め、既存のヘッダパターンにある場合には、ステップS3に処理を進める。
【0072】
ステップS7において、ヘッダ学習部13は、新たなヘッダパターンnPt[m+1]を生成する。このとき、ヘッダ学習部13は、第2ヘッダ情報102bも生成する。ヘッダ学習部13は、IPヘッダ及びポート番号をハッシュ化してハッシュ値pat_sig_hashを生成し、送信元IPアドレスIP_addr_src、宛先IPアドレスIP_addr_dst、送信元ポート番号port_src、宛先ポート番号port_dstを取り出す。この後、ヘッダ学習部13は、処理をステップS4に進める。
【0073】
ステップS3において、ヘッダ学習部13は、既存のヘッダパターンnPtから、ステップS1にて抽出されたヘッダ情報Set{IP[k],PORT[k]}に一致する第2ヘッダ情報102bのヘッダパターンnPt[k]を選択する。
【0074】
ステップS4において、ヘッダ学習部13は、パケット群のシーケンスから、第1ヘッダ情報102aを抽出して、更新する。ヘッダ学習部13は、既存のヘッダパターンと同じヘッダパターンである場合には、当該IPパケットが収集開始された時刻start_time、IPパケットが収集終了された時刻end_time、収集パケット数total_cntを抽出して、更新する。また、既存のヘッダパターンが無い場合には、ヘッダ学習部13は、新たに第1ヘッダ情報102aを生成する。
【0075】
次のステップS5において、ヘッダ学習部13は、パケット群のシーケンスから、従属データパターン情報102cを抽出して、更新する。このとき、ヘッダ学習部13は、先ず、既存のヘッダパターンがある場合にはヘッダハッシュ値sig_ptrのカウント数sig_munを更新する。既存のヘッダパターンが無い場合には、ヘッダ学習部13は、新たにヘッダハッシュ値sig_ptrを生成し、当該ヘッダハッシュ値のカウント数sig_munを「1」にする。
【0076】
既存のヘッダパターンがある場合、ヘッダ学習部13は、ポート番号とデータ情報の組Set{PORT[k],DATA[k]}のハッシュ値と従属データパターン情報102cとを比較する。そして、当該ポート番号とデータ情報の組Set{PORT[k],DATA[k]}のハッシュ値が、データハッシュ値sig_hash[0]〜sig_hash[sig_mun]に無い場合には、新たにデータハッシュ値sig_hash[sig_mun+1]、カウント数sig_cnt[sig_mun+1]、シグネチャ長sig_len[sig_mun+1]を生成する。そして、ヘッダ学習部13は、カウント数sig_cnt、ヘッダハッシュ値のカウント数sig_munをインクリメントする。また、ヘッダ学習部13は、ポート番号及びデータの生データsig_data[sig_mun+1]を格納する。
【0077】
一方、当該ポート番号とデータ情報の組Set{PORT[k],DATA[k]}のハッシュ値が、データハッシュ値sig_hash[0]〜sig_hash[sig_mun]にある場合には、カウント数sig_cnt、ヘッダハッシュ値のカウント数sig_munをインクリメントする。
【0078】
次のステップS6において、ヘッダ学習部13は、ヘッダスコア値(n_score)103の情報を更新する。このとき、ヘッダ学習部13は、下記(1)〜(5)の何れかの手法によりヘッダスコア値(n_score)103を計算する。
【0079】
(1)スコア1=収集パケット数total_cnt/n(シーケンス数に占めるパターン数)(少数のヘッダパターンをトラフィック異常とする)
(2)スコア2=第2ヘッダ情報102bが特定のパケットシグネチャのハッシュ値pat_sig_hashであれば0.3、それ以外のパケットシグネチャのハッシュ値pat_sig_hashであれば、0.7(特定のトラフィックパターンをトラフィック異常とする)
(3)スコア3=従属データパターン情報102cが特定のデータハッシュ値sig_hashの組み合わせ(且つ、カウント数sig_cnt、シグネチャ長sig_lenが規定値以上)(synfloodに対応)
(4)スコア4=|end_time−start_time|/|tn−t1|*total_cnt(短時間で大量のヘッダパターンが発生している場合をトラフィック異常とする(DoSに対応))
(5)スコア5=スコア1及び/又はスコア2及び/又はスコア3(上記の(1)〜(3)の組み合わせでトラフィック異常を判断する)
以上のように、ヘッダ学習部13は、第1ヘッダ情報102a、第2ヘッダ情報102b、従属データパターン情報102c及びヘッダスコア値(n_score)103を更新又は生成する。
【0080】
[データ学習部18によるスコア生成処理]
つぎに、上述したネットワーク異常検知装置1において、データ学習部18によるIPペイロードを用いてスコアを生成する処理について説明する。
【0081】
通信キャプチャ部10により収集されるパケット群は、図4に示すように、シーケンス番号(seq)、収集時刻(time)、データ長(len)、IPヘッダ(IP header)、ポート番号(port)、データ(Data)というリスト形式で保存される。そして、データ学習部18は、当該パケット群を参照して、データ異常に関わるパケットのスコアを生成する。
【0082】
データ学習部18は、図7に示すように、データ異常に関わるIPペイロードについての情報として、データパターン群201を生成する。データパターン群201は、データパターンdPt[0],dPt[1],・・・,dPt[m]である。
【0083】
各データパターン202は、データスコア値(d_score)203と、第1データ情報202aと、第2データ情報202bと、従属ヘッダパターン情報202cとを含む。
【0084】
第1データ情報202aは、所定の期間においてIPパケットが収集開始された時刻start_time、IPパケットが収集終了された時刻end_time、収集パケット数total_cntを含む。
【0085】
第2データ情報202bは、ポート番号及びペイロードを含むパケットシグネチャのハッシュ値pat_sig_hash、送信元IPアドレスIP_addr_src、宛先IPアドレスIP_addr_dst、送信元ポート番号port_src、宛先ポート番号port_dst、ポート番号及びペイロードの生データdata、データ長data_lenを含む。
【0086】
従属ヘッダパターン情報202cは、データハッシュ値sig_ptr、当該データハッシュ値のカウント数sig_munに対応して、当該データに付加されたIPアドレス及びポート番号のハッシュ値であるヘッダハッシュ値sig_hash[0]〜sig_hash[sig_mun]を含む。また、各ヘッダハッシュ値sig_hash[0]〜sig_hash[sig_mun]には、当該ヘッダハッシュ値sig_hash[0]〜sig_hash[sig_mun]のカウント数sig_cnt[0]〜sig_cnt[sig_mun]、シグネチャ長sig_len[0]〜sig_len[sig_mun]、及び、IPアドレス及びポート番号の生データsig_data[0]〜sig_data[sig_mun]が対応付けられている。なお、生データsig_dataは、後述するように、トラフィック異常と判定された生データと、データ異常と判定された生データとの相関を判断しない場合には、従属ヘッダパターン情報202cとして必要はない。
【0087】
このようなデータパターン群201を生成するとき、データ学習部18は、図8に示す処理を行う。
【0088】
先ず、データ学習部18は、ステップS11において、図4のパケット群を参照して、当該パケット群からシーケンスの昇順に、ポート番号とペイロードデータとの組であるデータ情報Set{PORT[k],DATA[k]}を抽出する。
【0089】
次のステップS12において、データ学習部18は、既存のデータパターンdPt[0]〜dPt[m]に、ステップS11にて抽出したデータ情報Set{PORT[k],DATA[k]}が無いか否かを判定する。このとき、データ学習部18は、既存のデータパターンのうちの第2データ情報202bに含まれる送信元IPアドレスIP_addr_src、宛先IPアドレスIP_addr_dst、送信元ポート番号port_src、宛先ポート番号port_dstと、ステップS11にて抽出したデータ情報Set{PORT[k],DATA[k]}とを比較する。その結果、データ情報Set{PORT[k],DATA[k]}が既存のデータパターンに無い場合には、ステップS17に処理を進め、既存のデータパターンにある場合には、ステップS13に処理を進める。
【0090】
ステップS17において、データ学習部18は、新たなデータパターンdPt[m+1]を生成する。このとき、データ学習部18は、第2データ情報202bも生成する。データ学習部18は、IPペイロード及びポート番号をハッシュ化してハッシュ値pat_sig_hashを生成し、送信元IPアドレスIP_addr_src、宛先IPアドレスIP_addr_dst、送信元ポート番号port_src、宛先ポート番号port_dstを取り出す。この後、データ学習部18は、処理をステップS14に進める。
【0091】
ステップS13において、データ学習部18は、既存のデータパターンnPtから、ステップS11にて抽出されたデータ情報Set{PORT[k],DATA[k]}に一致する第2データ情報202bのデータパターンdPt[k]を選択する。
【0092】
ステップS14において、データ学習部18は、パケット群のシーケンスから、第1データ情報202aを抽出して、更新する。データ学習部18は、既存のデータパターンと同じデータパターンである場合には、当該IPパケットが収集開始された時刻start_time、IPパケットが収集終了された時刻end_time、収集パケット数total_cntを抽出して、更新する。また、既存のデータパターンが無い場合には、データ学習部18は、新たに第1データ情報202aを生成する。
【0093】
次のステップS15において、データ学習部18は、パケット群のシーケンスから、従属ヘッダパターン情報202cを抽出して、更新する。このとき、データ学習部18は、先ず、既存のデータパターンがある場合にはデータハッシュ値sig_ptrのカウント数sig_munを更新する。既存のデータパターンが無い場合には、データ学習部18は、新たにデータハッシュ値sig_ptrを生成し、当該データハッシュ値のカウント数sig_munを「1」にする。
【0094】
既存のデータパターンがある場合、データ学習部18は、ポート番号とIPペイロードの組Set{PORT[k],DATA[k]}のハッシュ値と従属ヘッダパターン情報202cとを比較する。そして、当該ポート番号とIPペイロードの組Set{PORT[k],DATA[k]}のハッシュ値が、データハッシュ値sig_hash[0]〜sig_hash[sig_mun]に無い場合には、新たにデータハッシュ値sig_hash[sig_mun+1]、カウント数sig_cnt[sig_mun+1]、シグネチャ長sig_len[sig_mun+1]を生成する。そして、データ学習部18は、カウント数sig_cnt、データハッシュ値のカウント数sig_munをインクリメントする。また、データ学習部18は、ポート番号及びIPペイロードの生データsig_data[sig_mun+1]を格納する。
【0095】
一方、当該ポート番号とIPペイロードの組Set{PORT[k],DATA[k]}のハッシュ値が、データハッシュ値sig_hash[0]〜sig_hash[sig_mun]にある場合には、カウント数sig_cnt、データハッシュ値のカウント数sig_munをインクリメントする。
【0096】
次のステップS16において、データ学習部18は、データスコア値(d_score)203の情報を更新する。このとき、データ学習部18は、下記(1)〜(5)の何れかの手法によりデータスコア値(d_score)203を計算する。
【0097】
(1)スコア1=収集パケット数total_cnt/n(シーケンス数に占めるパターン数)(少数のデータパターンをトラフィック異常とする)
(2)スコア2=第2データ情報103bが特定のパケットシグネチャのハッシュ値pat_sig_hashであれば0.3、それ以外のパケットシグネチャのハッシュ値pat_sig_hashであれば、0.7(特定のトラフィックパターンをトラフィック異常とする)
(3)スコア3=従属ヘッダパターン情報202cが特定のデータハッシュ値sig_hashの組み合わせ(且つ、カウント数sig_cnt、シグネチャ長sig_lenが規定値以上)(synfloodに対応)
(4)スコア4=|end_time−start_time|/|tn−t1|*total_cnt(短時間で大量のデータパターンが発生している場合をトラフィック異常とする(DoSに対応))
(5)スコア5=スコア1及び/又はスコア2及び/又はスコア3(上記の(1)〜(3)の組み合わせでトラフィック異常を判断する)
以上のように、データ学習部18は、第1データ情報202a、第2データ情報202b、従属ヘッダパターン情報202c及びデータスコア値(d_score)203を更新又は生成する。
【0098】
[閾値調整処理]
上述したようにヘッダ学習部13及びデータ学習部18によってスコアが算出されると、閾値定義部23は、トラフィック異常閾値Atraffic及びデータ異常閾値Adataを設定する。ヘッダ学習部13は、図9(a)に示すように、ヘッダ異常検知のために、ヘッダスコア値(n_score)103に相当するスコア、ヘッダパターンnPt、送信元及び宛先のIPアドレス、ポート番号、シグネチャのデータタイプを含むヘッダパターン群101を取得することができる。また、データ学習部18は、図9(b)に示すように、データスコア値(d_score)203に相当するスコア、データパターンdPt、ポート番号、データタイプ及び送信元及び宛先のIPアドレスであるシグネチャを含むデータパターン群201を取得することができる。
【0099】
ここで、図1に示した通信が通信ネットワークNTにて行われるとすると、図9(c)に示すように、クライアントC3がブラスターウィルスに感染すると、バイナリデータ(BIN)の異常な通信データがクライアントC3からクライアントC1、クライアントC2に送信される。また、正常な通信として、クライアントC3からサーバS1にアスキーデータ(ASC)が送信され、クライアントC3からクライアントC1にXMLデータ(XML)が送信される。
【0100】
このような場面において、閾値定義部23は、図9(a)のヘッダパターンnPt[k]とヘッダパターンnPt[n]との間にトラフィック異常閾値Atraffic(311)を設定する。このとき、閾値定義部23は、ヘッダスコア値(n_score)103が0.015と0.36とで大きく乖離していることから、当該位置にトラフィック異常閾値Atrafficを設定する。
【0101】
具体的には、閾値定義部23は、トラフィック異常として検知できるヘッダパターンnPt間のヘッダスコア値(n_score)103のスコア差を判定値αとして設定しておく。そして、閾値定義部23は、ヘッダパターン群101を生成したときに、ヘッダパターンnPt間のヘッダスコア値(n_score)103のスコア差と、判定値αとを比較する。ヘッダパターンnPt間のヘッダスコア値(n_score)103のスコア値が、判定値αを上回る場合、閾値定義部23は、ヘッダスコア値(n_score)103が低い方のヘッダスコア値(n_score)103を閾値候補とし、ヘッダ閾値群として設定する。なお、図9(a)では、単一のトラフィック異常閾値Atrafficの候補を設定しているが、ヘッダパターン群101内でスコア差が大きい箇所があれば、閾値定義部23は、複数のトラフィック異常閾値Atrafficの候補を生成できる。
【0102】
これにより、ネットワーク異常検知装置1は、ヘッダパターンnPt[0]〜ヘッダパターンnPt[k]までを異常な通信として識別する。従って、ネットワーク異常検知装置1は、クライアントC3からクライアントC1、クライアントC2に対してバイナリデータを送信したときのヘッダパターンnPt[0]をトラフィック異常として検知できる。また、ネットワーク異常検知装置1は、クライアントC3からサーバS1に送信される正常なアスキーデータを、トラフィック異常として検知しない。しかし、ネットワーク異常検知装置1は、クライアントC3からクライアントC1に送信される正常なXMLデータをトラフィック異常として誤検知してしまう。
【0103】
同様に、閾値定義部23は、図9(b)のデータパターンdPt[k]とデータパターンdPt[n]との間にデータ異常閾値Adataの候補を設定する。このとき、閾値定義部23は、データスコア値(d_score)203が0.03と0.79とで大きく乖離していることから、当該位置にデータスコア値(d_score)203を設定する。
【0104】
具体的には、閾値定義部23は、データ異常として検知できるデータパターンdPt間のデータスコア値(d_score)203のスコア差を判定値α(上記αと異なる値でも良い。)として設定しておく。そして、閾値定義部23は、データパターン群201を生成したときに、データパターンdPt間のデータスコア値(d_score)203のスコア差と、判定値αとを比較する。データパターンdPt間のデータスコア値(d_score)203のスコア値が、判定値αを上回る場合、閾値定義部23は、データスコア値(d_score)203が低い方のデータスコア値(d_score)203を閾値候補とし、ヘッダ閾値群として設定する。なお、図9(b)では、単一のデータ異常閾値Adataの候補を設定しているが、データパターン群201内でスコア差が大きい箇所があれば、閾値定義部23は、複数のデータ異常閾値Adataの候補を生成できる。
【0105】
これにより、ネットワーク異常検知装置1は、データパターンdPt[0]〜データパターンdPt[k]までを異常な通信として識別する。従って、ネットワーク異常検知装置1は、クライアントC3からクライアントC1、クライアントC2に対してバイナリデータを送信したときのデータパターンdPt[0]をデータ異常として検知できる。また、ネットワーク異常検知装置1は、クライアントC3からサーバS1に送信される正常なアスキーデータを、トラフィック異常として検知しない。しかし、ネットワーク異常検知装置1は、クライアントC3からクライアントC1に送信される正常なXMLデータをトラフィック異常として誤検知してしまう。
【0106】
そこで、閾値調整部24は、トラフィック異常閾値Atrafficと、データ異常閾値Adataの何れかの閾値を固定し、一方を変化させる。
【0107】
また、閾値調整部24は、異常判断部25により判断されたパケットの異常に基づいて、トラフィック異常閾値Atrafficとデータ異常閾値Adataとの一方の閾値を固定して他方の閾値を変更した後に、当該固定した閾値を変更させる。
【0108】
更に、閾値調整部24は、トラフィック異常閾値Atrafficとデータ異常閾値Adataとのうち、ヘッダパターン102とデータパターン群201とのうち、パターンの個数が少ない方の閾値を固定し、パターンの個数が多い方の閾値を変更する。
【0109】
以下、閾値調整部24によるトラフィック異常閾値Atraffic及びデータ異常閾値Adataの調整処理の具体的を、図10〜図22を参照して説明する。
【0110】
閾値調整部24は、図10(a)、(b)に示すように、トラフィック異常閾値Atraffic(311)とデータ異常閾値Adata(312)とのうち、トラフィック異常閾値Atrafficを変更させ、データ異常閾値Adataを固定させる。これは、図10(a)に示すヘッダパターン群101によるヘッダ異常検知結果301が8パターンのうち、図10(b)に示すデータパターン群201によるデータ異常検知結果302が3パターンであることによる。すなわち、閾値調整部24は、ヘッダ異常検知部11により検知されたトラフィック異常のヘッダパターンの個数は8回であり、データ異常検知部12により検知されたデータ異常のデータパターンの個数は3回である。これにより、閾値調整部24は、パターンが少ない方のデータ異常閾値Adataを固定し、パターンの個数が多い方のトラフィック異常閾値Atrafficを変更するとする。
【0111】
先ず、図10(a)に示すIDX1とIDX2との間にトラフィック異常閾値Atrafficを設定し、図10(b)に示すIDX1とIDX2との間にデータ異常閾値Adataを設定するとする。この場合、トラフィック異常且つデータ異常となるAND条件を満たす通信は、図10(c)に示すように存在しない。したがって、閾値調整部24は、これらのトラフィック異常閾値Atraffic及びデータ異常閾値Adataは採用しない。
【0112】
次に、図11(a)に示すIDX2とIDX3との間にトラフィック異常閾値Atrafficを設定し、図11(b)に示すIDX1とIDX2との間にデータ異常閾値Adataを設定するとする。この場合、トラフィック異常且つデータ異常となるAND条件を満たす通信は、図11(c)に示すように存在しない。したがって、閾値調整部24は、これらのトラフィック異常閾値Atraffic及びデータ異常閾値Adataは採用しない。
【0113】
次に、図12(a)に示すIDX3とIDX4との間にトラフィック異常閾値Atrafficを設定し、図12(b)に示すIDX1とIDX2との間にデータ異常閾値Adataを設定するとする。この場合、トラフィック異常且つデータ異常となるAND条件を満たす通信は、図12(c)に示すように存在しない。したがって、閾値調整部24は、これらのトラフィック異常閾値Atraffic及びデータ異常閾値Adataは採用しない。
【0114】
次に、図13(a)に示すIDX4とIDX5との間にトラフィック異常閾値Atrafficを設定し、図13(b)に示すIDX1とIDX2との間にデータ異常閾値Adataを設定するとする。この場合、トラフィック異常且つデータ異常となるAND条件を満たす通信は、図13(c)に示すように、クライアントC3からクライアントC1に63パケットのXMLデータが送信される通信が該当する。但し、閾値調整部24は、これらのトラフィック異常閾値Atraffic及びデータ異常閾値Adataは採用しない。
【0115】
次に、図14(a)に示すIDX5とIDX6との間にトラフィック異常閾値Atrafficを設定し、図14(b)に示すIDX1とIDX2との間にデータ異常閾値Adataを設定するとする。この場合、トラフィック異常且つデータ異常となるAND条件を満たす通信は、図14(c)に示すように、クライアントC3からクライアントC1に63パケットのXMLデータが送信される通信が該当する。但し、閾値調整部24は、これらのトラフィック異常閾値Atraffic及びデータ異常閾値Adataは採用しない。
【0116】
次に、図15(a)に示すIDX6とIDX7との間にトラフィック異常閾値Atrafficを設定し、図15(b)に示すIDX1とIDX2との間にデータ異常閾値Adataを設定するとする。この場合、トラフィック異常且つデータ異常となるAND条件を満たす通信は、図15(c)に示すように、クライアントC3からクライアントC1にXMLデータが送信される通信が該当する。但し、閾値調整部24は、これらのトラフィック異常閾値Atraffic及びデータ異常閾値Adataは採用しない。
【0117】
次に、図16(a)に示すIDX7とIDX8との間にトラフィック異常閾値Atrafficを設定し、図16(b)に示すIDX1とIDX2との間にデータ異常閾値Adataを設定するとする。この場合、トラフィック異常且つデータ異常となるAND条件を満たす通信は、図16(c)に示すように、クライアントC3からクライアントC1にXMLデータが送信される通信が該当する。但し、閾値調整部24は、これらのトラフィック異常閾値Atraffic及びデータ異常閾値Adataは採用しない。
【0118】
次に、図17(a)に示すIDX8にトラフィック異常閾値Atrafficを設定し、図17(b)に示すIDX1とIDX2との間にデータ異常閾値Adataを設定するとする。この場合、トラフィック異常且つデータ異常となるAND条件を満たす通信は、図17(c)に示すように、クライアントC3からクライアントC1にXMLデータが送信される通信が該当する。但し、閾値調整部24は、これらのトラフィック異常閾値Atraffic及びデータ異常閾値Adataは採用しない。
【0119】
次に、図18(a)に示すIDX1とIDX2との間にトラフィック異常閾値Atrafficを設定し、更に、図18(b)に示すように、固定していたデータ異常閾値Adataを変化させて、IDX2とIDX3との間にデータ異常閾値Adataを設定する。この場合、トラフィック異常且つデータ異常となるAND条件を満たす通信は、図18(c)に示すように、クライアントC3からクライアントC2に3パケットのバイナリデータが送信される通信が該当する。但し、閾値調整部24は、これらのトラフィック異常閾値Atraffic及びデータ異常閾値Adataは採用しない。
【0120】
次に、図19(a)に示すIDX2とIDX3との間にトラフィック異常閾値Atrafficを設定し、図19(b)に示すIDX2とIDX3との間にデータ異常閾値Adataを設定するとする。この場合、トラフィック異常且つデータ異常となるAND条件を満たす通信は、図19(c)に示すように、クライアントC3からクライアントC2に3パケットのバイナリデータが送信される通信が該当する。但し、閾値調整部24は、これらのトラフィック異常閾値Atraffic及びデータ異常閾値Adataは採用しない。
【0121】
次に、図20(a)に示すIDX3とIDX4との間にトラフィック異常閾値Atrafficを設定し、図20(b)に示すIDX2とIDX3との間にデータ異常閾値Adataを設定する。この場合、トラフィック異常且つデータ異常となるAND条件を満たす通信は、図20(c)に示すように、クライアントC3からクライアントC2に3パケットのバイナリデータが送信される通信に加えて、クライアントC3からクライアントC1に37パケットのバイナリデータが送信される通信が該当する。但し、閾値調整部24は、これらのトラフィック異常閾値Atraffic及びデータ異常閾値Adataは採用しない。
【0122】
次に、図21(a)に示すIDX4とIDX5との間にトラフィック異常閾値Atrafficを設定し、図21(b)に示すIDX2とIDX3との間にデータ異常閾値Adataを設定する。この場合、トラフィック異常且つデータ異常となるAND条件を満たす通信は、図21(c)に示すように、クライアントC3からクライアントC2に63パケットのバイナリデータが送信される通信と、クライアントC3からクライアントC1に37パケットのバイナリデータが送信される通信と、クライアントC3からクライアントC1に63パケットのXMLデータが送信される通信とが該当する。但し、閾値調整部24は、これらのトラフィック異常閾値Atraffic及びデータ異常閾値Adataは採用しない。
【0123】
次に、図22(a)に示すIDX5とIDX6との間にトラフィック異常閾値Atrafficを設定し、図22(b)に示すIDX2とIDX3との間にデータ異常閾値Adataを設定する。この場合、トラフィック異常且つデータ異常となるAND条件を満たす通信は、図22(c)に示すように、クライアントC3からクライアントC2に63パケットのバイナリデータが送信される通信と、クライアントC3からクライアントC1に37パケットのバイナリデータが送信される通信と、クライアントC3からクライアントC1に63パケットのXMLデータが送信される通信とに加えて、クライアントC3からサーバS1に300パケットのバイナリデータが送信される通信が該当する。このとき、閾値調整部24は、トラフィック異常閾値AtrafficをIDX6以降に変更しても、大きなスコアの変異点は無く、且つ、データ異常閾値AdataをIDX3に変更しても、大きなスコアの変異点は無い。したがって、閾値調整部24は、トラフィック異常閾値Atraffic及びデータ異常閾値Adataの変更を停止し、当該閾値の調整を終了する。
【0124】
これにより、ネットワーク異常検知装置1は、図1に示した悪意のコードのバイナリデータをトラフィック異常且つデータ異常と判定できる。このようにネットワーク異常検知装置1は、検知漏れをなくす。また、ネットワーク異常検知装置1は、図1に示したクライアントC3からクライアントC2に送信される正常なアスキーデータをトラフィック異常且つデータ異常とは判定しない。このようにネットワーク異常検知装置1は、誤検知を回避する。更に、ネットワーク異常検知装置1は、合計100パケットのデータに対して、37パケットのバイナリデータをデータ異常であることを確実に検知できる。
【0125】
なお、ネットワーク異常検知装置1は、クライアントC3からクライアントC1に送信された63パケットのXMLデータを、トラフィック異常及びデータ異常と誤検知してしまう。
【0126】
ただし、ネットワーク異常検知装置1は、XMLデータを含む送信を誤検知してしまうが、XMLデータを含む送信を誤検知させないためには、後述の相関を用いる。この相関を用いることにより、ネットワーク異常検知装置1は、バイナリデータに対するトラフィック異常の異常度合い(スコア)を高め、相対的にXMLデータのトラフィック異常の異常度合い(スコア)を低めることで閾値調整部24で閾値調整を行う。これにより、ネットワーク異常検知装置1は、総合的な異常判断部25による異常判断により、XMLデータを含む送信の誤検知を低減することができる。
【0127】
以上のように、閾値調整部24は、先ず、データ異常閾値Adataを固定してトラフィック異常閾値Atrafficを変化させて閾値調整を行う。これにより、閾値調整部24は、異常判断部25によってヘッダ異常検知とデータ異常検知との一方が異常でないと判断された場合には、自動的なフィードバックにより異常でない方の閾値を調整する。これにより、ネットワーク異常検知装置1は、トラフィック異常とデータ異常とが重なる場合であっても、2つの異常の閾値を固定することなく、異常のない通信を異常であると誤検知するフォールスポジティブ、異常である通信を異常ではないと検知漏れするフォールスネガティブを低減できる。
【0128】
また、閾値調整部24は、一方のみの閾値を変化させているときに、トラフィック異常閾値Atrafficとデータ異常閾値Adataの双方の変異点が大きくならない場合には、他方のデータ異常閾値Adataを変化させる。これにより、ネットワーク異常検知装置1は、異常なイベントが多すぎる又は少なすぎる場合であっても、固定していた閾値を変更することによって新たな異常を検知でき、異常の誤検知及び検知漏れを低減できる。
【0129】
ここで、閾値調整部24は、一方の閾値のみを変化させ他方の閾値を固定するときに、ヘッダ学習部13により異常度合いが求められたヘッダパターンとデータ学習部18により求められたデータパターンとのうち、パターンの個数が少ない方の閾値を固定し、パターンの個数が多い方の閾値を変更する。これにより、ネットワーク異常検知装置1は、トラフィック異常とデータ異常とが重なる場合でも、パターンの個数が多い方の閾値を先に変化させて、その後に、パターンの個数が少ない方の閾値を変化させることができ、閾値調整を効率化できる。
【0130】
[トラフィック異常とデータ異常との相関に基づく処理]
つぎに、上述したネットワーク異常検知装置1において、トラフィック異常とデータ異常との間の相関に基づく処理について説明する。
【0131】
ヘッダ学習部13は、ヘッダパターンnPtごとに、当該ヘッダに付加されていたデータを従属データパターン情報102cとして従属データパターン群記憶部16に蓄積する。閾値調整部24は、データパターンdPtに含まれるデータと、ヘッダパターンnPtごとのデータとの間に相関がある場合には、当該トラフィック異常閾値Atraffic又はデータ異常閾値Adataを変化させる。
【0132】
具体的には、図23に示すように、ヘッダパターンnPt[k]における従属データパターン情報102cに含まれるデータハッシュ値sig_hash[1]と、データパターンdPt[p]におけるハッシュ値pat_sig_hashとが一致する場合には、ヘッダスコア値(n_score)103を高くする。また、ヘッダスコア値(n_score)103に代えて、トラフィック異常閾値Atrafficを高くしても良い。
【0133】
このとき、ヘッダ学習部13は、図24に示すように、先ずステップS21において、ヘッダパターン群101からあるヘッダパターンnPt[k]を選ぶ。
【0134】
次のステップS22において、ヘッダ学習部13は、ヘッダハッシュ値のカウント数sig_munが所定値x以上であるか否かを判定する。ここで、所定値xは、当該ヘッダパターンnPt[k]が出現したカウント数sig_munがある程度の回数であることを確認できる値に設定されている。ヘッダハッシュ値のカウント数sig_munが所定値x以上である場合には、ステップS23に処理を進め、そうでない場合には別のヘッダパターンnPt[k]を選ぶ。
【0135】
次のステップS23において、ヘッダ学習部13は、従属データパターン情報102cにおけるデータハッシュ値sig_hashのカウント数sig_cnt[x]が所定の定義値LIMITより高い値か否かを判定する。データハッシュ値sig_hashのカウント数sig_cnt[x]が所定の定義値LIMITより高い場合には、ステップS25に処理を進め、そうでない場合にはxをインクリメントしてステップS22に処理を戻す。これにより、あるヘッダパターンnPt[k]のデータハッシュ値sig_hashのカウント数sig_cntが、0〜ヘッダハッシュ値のカウント数sig_munの範囲から、データハッシュ値sig_hashのカウント数sig_cntが所定の定義値LIMITとなるものを選択する。すなわち、データハッシュ値sig_hashのカウント数sig_cntである全体のうち、所定の定義値LIMITより高い割合で含まれているデータハッシュ値sig_hashを選ぶ。
【0136】
次のステップS25において、ヘッダ学習部13は、ステップS23にて選ばれたデータハッシュ値sig_hash[x]と、データパターン群201に含まれるデータパターンdPt[p]におけるハッシュ値pat_sig_hashとが同一であるか否かを判定する。双方が同一である場合には、ステップS27に処理を進め、同一ではない場合には、ステップS26でデータパターンdPt[p]のpの値をインクリメントしてステップS23に処理を戻す。これにより、ヘッダ学習部13は、ステップS23で選ばれたデータハッシュ値sig_hash[x]と同じ値のデータパターン群201内のハッシュ値pat_sig_hashを検索する。
【0137】
次のステップS27において、ヘッダ学習部13は、ステップS23にて選ばれたデータハッシュ値sig_hash[x]と、データパターン群201に含まれるデータパターンdPt[p]におけるハッシュ値pat_sig_hashとは相関があると判断する。
【0138】
次のステップS28において、ヘッダ学習部13は、ステップS27にて相関があると判定されたヘッダパターンnPtに含まれるヘッダスコア値(n_score)103の値を更新する。ここで、ヘッダ学習部13は、ヘッダスコア値(n_score)103を高くしているが、低く更新しても良い。また、閾値調整部24は、当該ヘッダスコア値(n_score)103を変更したことに応じて、当該変更後のスコア差が高くなった位置にトラフィック異常閾値Atrafficを更新しても良い。
【0139】
このように、ネットワーク異常検知装置1は、ヘッダパターンnPtとデータパターンdPtとの間に相関がある場合には、トラフィック異常及びデータ異常の双方が発生しているか、双方とも発生していない可能性が高い。このため、ネットワーク異常検知装置1は、ヘッダスコア値(n_score)103又はデータスコア値(d_score)203を高く又は低く調整する、又は、閾値を高く又は低くする。これにより、ネットワーク異常検知装置1は、ヘッダパターンnPt間のスコア差又はデータパターンdPt間のスコア差を大きくでき、ネットワーク異常検知装置1は、上述した閾値調整を効率化することができる。
【0140】
また、ネットワーク異常検知装置1は、データパターンdPtに含まれるデータと、ヘッダパターンnPtごとのデータとの間に相関がある場合には、当該相関があるヘッダスコア値(n_score)103又は当該相関があるデータスコア値(d_score)203を高くしても良い。
【0141】
具体的には、図25に示すように、ヘッダパターンnPt[k]におけるポート番号及びデータの生データsig_dataと、データパターンdPt[p]における生データsig_dataとが一致する場合には、ヘッダスコア値(n_score)103を高くする。また、ヘッダスコア値(n_score)103に代えて、トラフィック異常閾値Atrafficを高くしても良い。
【0142】
このとき、ヘッダ学習部13は、図26に示すように、上述の図25と同様にステップS21,S22,S23,S24の処理を行う。そして、ステップS23にて肯定判定された後のステップS25’において、ヘッダ学習部13は、従属データパターン情報102cにおけるハッシュ値sig_hash[x]と、データパターン群201に含まれるデータパターンdPt[p]における生データdataとの相関係数が所定値αより高いか否かを判定する。相関係数が所定値αよりも高い場合には、ステップS27’に処理を進め、相関係数が所定値αより高くない場合には、ステップS26でデータパターンdPt[p]のpの値をインクリメントしてステップS23に処理を戻す。これにより、ヘッダ学習部13は、生データsig_data[x]に近い値のデータパターン群201内の生データdataを検索する。
【0143】
次のステップS27において、ヘッダ学習部13は、従属データパターン情報102cにおける生データsig_dataと、データパターン群201に含まれるデータパターンdPt[p]における生データdataとが相関があると判断する。
【0144】
次のステップS28において、ヘッダ学習部13は、ステップS27にて相関があると判定されたヘッダパターンnPtに含まれるヘッダスコア値(n_score)103の値を更新する。ここで、ヘッダ学習部13は、ヘッダスコア値(n_score)103を高くしているが、低く更新しても良い。また、閾値調整部24は、当該ヘッダスコア値(n_score)103を変更したことに応じて、当該変更後のスコア差が高くなった位置にトラフィック異常閾値Atrafficを更新しても良い。
【0145】
このように、ネットワーク異常検知装置1は、ヘッダパターンnPtの生データsig_dataとデータパターンdPtの生データdataとの間の相関が高い場合には、ヘッダスコア値(n_score)103又はデータスコア値(d_score)203を高く又は低く調整する。これにより、ネットワーク異常検知装置1によれば、ヘッダパターンnPt間のスコア差又はデータパターンdPt間のスコア差を大きくでき、又は、閾値を高く又は低く調整する。る。これにより、ネットワーク異常検知装置1は、ヘッダパターンnPt又はデータパターンdPtに対応したIDX間のスコア差を大きくして、変異点を発生しやすくし、上述した閾値調整を効率化することができる。
【0146】
更に、このネットワーク異常検知装置1において、データパターンdPtに含まれる生データdataと、ヘッダパターンnPtごとの生データsig_dataとの間に相関がない場合には、当該トラフィック異常閾値Atraffic又はデータ異常閾値Adataの変化度合いを高くしても良い。なお、以下の処理は、上述の図23及び図24で示した処理、図25及び図26で示した処理が行われている場合には実行されない。
【0147】
具体的には、図27に示すように、ヘッダパターンnPt[k]における従属データパターン情報102cに含まれるポート番号及びデータの生データsig_dataと、データパターンdPt[p]における生データsig_dataとの相関がない場合がある。この場合に、閾値調整部24は、トラフィック異常閾値Atraffic又はデータ異常閾値Adataの変化度合いを高くする。
【0148】
このとき、ヘッダ学習部13は、図28に示すように、上述の図25と同様にステップS21,S22,S23,S24の処理を行う。そして、ステップS23にて肯定判定された後のステップS25”において、ヘッダ学習部13は、従属データパターン情報102cにおける生データsig_data[x]と、データパターン群201に含まれるデータパターンdPt[p]における生データdataとの相関係数が所定値αより低いか否かを判定する。
【0149】
相関係数が所定値αよりも低い場合には、ステップS27’に処理を進め、相関係数が所定値αより低くない場合には、ステップS26でデータパターンdPt[p]のpの値をインクリメントしてステップS23に処理を戻す。これにより、ヘッダ学習部13は、生データsig_data[x]と異なる値のデータパターン群201内の生データdataを検索する。
【0150】
次のステップS27において、ヘッダ学習部13は、従属データパターン情報102cにおける生データsig_dataと、データパターン群201に含まれるデータパターンdPt[p]における生データdataとが相関がないと判断する。
【0151】
次のステップS28において、ヘッダ学習部13は、ステップS27にて相関がないと判定されたことに応じてトラフィック異常閾値Atraffic及びデータ異常閾値Adataの調整度合いを高くする。ここで、ヘッダ学習部13は、ヘッダスコア値(n_score)103を高くしているが、低く更新しても良い。また、閾値調整部24は、当該ヘッダスコア値(n_score)103を変更したことに応じて、当該変更後のスコア差が高くなった位置にトラフィック異常閾値Atrafficを更新しても良い。
【0152】
このように、ネットワーク異常検知装置1は、ヘッダパターンnPtの生データsig_dataとデータパターンdPtの生データdataとの間の相関がない場合には、トラフィック異常閾値Atraffic及びデータ異常閾値Adataの移動度合いを大きくする。これにより、ネットワーク異常検知装置1は、例えば、上述のIDXの移動度合いを2つづつ変化させるなどの処理によって、上述した閾値調整を効率化することができる。
【0153】
なお、上述の実施の形態は本発明の一例である。このため、本発明は、上述の実施形態に限定されることはなく、この実施の形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論である。
【符号の説明】
【0154】
1 ネットワーク異常検知装置
10 通信キャプチャ部
11 ヘッダ異常検知部
12 データ異常検知部
13 ヘッダ学習部
14 ヘッダスコア定義記憶部
15 ヘッダパターン群記憶部
16 従属データパターン群記憶部
17 ヘッダ閾値群記憶部
18 データ学習部
19 データスコア定義記憶部
20 データパターン群記憶部
21 従属ヘッダパターン群記憶部
22 データ閾値群記憶部
23 閾値定義部
24 閾値調整部
25 異常判断部
101 ヘッダパターン群
102 ヘッダパターン
102a 第1ヘッダ情報
102b 第2ヘッダ情報
102c 従属データパターン情報
201 データパターン群
202 データパターン
202a 第1データ情報
202b 第2データ情報
202c 従属ヘッダパターン情報

【特許請求の範囲】
【請求項1】
ネットワーク上に流れるパケットを受信する受信手段と、
前記受信手段により受信されたパケットのヘッダパターンを蓄積し、当該ヘッダパターンごとに異常度合いを求めるヘッダ学習手段と、
前記ヘッダ学習手段により求められた複数のヘッダパターンの異常度合いに基づいてトラフィック異常を判定するためのトラフィック異常閾値を設定するトラフィック異常閾値設定手段と、
前記受信手段により受信されたパケットに含まれるヘッダパターンの異常度合いと前記トラフィック異常閾値とに基づいて、トラフィック異常を検知するトラフィック異常検知手段と、
前記受信手段により受信されたパケットのデータパターンを蓄積し、当該データパターンごとに異常度合いを求めるデータ学習手段と、
前記データ学習手段により求められた複数のデータパターンの異常度合いに基づいてデータ異常を判定するためのデータ異常閾値を設定するデータ異常閾値設定手段と、
前記受信手段により受信されたパケットに含まれるデータパターンの異常度合いと前記データ異常閾値とに基づいて、データ異常を検知するデータ異常検知手段と、
前記トラフィック異常検知手段により検知されたトラフィック異常と、前記データ異常検知手段により検知されたデータ異常とに基づいて、前記受信手段により受信されたパケットの異常を判断する異常判断手段と、
前記トラフィック異常閾値と前記データ異常閾値とのうち、前記複数のヘッダパターンの異常度合いの変化と前記複数のデータパターンの異常度合いの変化とが大きい方の閾値を変更する閾値調整手段と
を備えることを特徴とするネットワーク異常検知装置。
【請求項2】
前記閾値調整手段は、前記トラフィック異常閾値と前記データ異常閾値との一方の閾値を固定して他方の閾値を変更した後に、当該固定した閾値を変更させることを特徴とする請求項1に記載のネットワーク異常検知装置。
【請求項3】
前記閾値調整手段は、前記トラフィック異常閾値と前記データ異常閾値とのうち、前記ヘッダ学習手段により異常度合いが求められたヘッダパターンと前記データ学習手段により求められたデータパターンとのうち、パターンの個数が少ない方の閾値を固定し、パターンの個数が多い方の閾値を変更することを特徴とする請求項1に記載のネットワーク異常検知装置。
【請求項4】
前記ヘッダ学習手段は、前記ヘッダパターンごとに、当該ヘッダに付加されていたデータを蓄積し、
前記閾値調整手段は、前記データパターンに含まれるデータと、前記ヘッダパターンごとのデータとの間に相関がある場合には、当該トラフィック異常閾値又はデータ異常閾値を変化させること
を特徴とする請求項1に記載のネットワーク異常検知装置。
【請求項5】
前記ヘッダ学習手段は、前記ヘッダパターンごとに、当該ヘッダに付加されていたデータを蓄積し、
前記データパターンに含まれるデータと、前記ヘッダパターンごとのデータとの間に相関がある場合には、当該相関があるヘッダパターンの異常度合い又は当該相関があるデータパターンの異常度合いを高くすること
を特徴とする請求項1に記載のネットワーク異常検知装置。
【請求項6】
前記ヘッダ学習手段は、前記ヘッダパターンごとに、当該ヘッダに付加されていたデータを蓄積し、
前記閾値調整手段は、前記データパターンに含まれるデータと、前記ヘッダパターンごとのデータとの間に相関がない場合には、当該トラフィック異常閾値又はデータ異常閾値を変化度合いを高くすること
を特徴とする請求項1に記載のネットワーク異常検知装置。
【請求項7】
前記閾値調整手段は、前記トラフィック異常閾値及び前記データ異常閾値の最大値及び最小値からなる限界範囲を設け、前記トラフィック異常閾値又は前記データ異常閾値が限界範囲を超えた場合に、閾値の変更を停止することを特徴とする請求項1乃至請求項6の何れか一項に記載のネットワーク異常検知装置。
【請求項8】
ネットワーク上に流れるパケットを受信する通信機器内のコンピュータによりされるネットワーク異常検知プログラムであって、
前記ネットワークから受信したパケットのヘッダパターンを蓄積し、当該ヘッダパターンごとに異常度合いを求めるヘッダ学習機能と、
前記ヘッダ学習機能により求められた複数のヘッダパターンの異常度合いに基づいてトラフィック異常を判定するためのトラフィック異常閾値を設定するトラフィック異常閾値設定機能と、
前記ネットワークから受信したパケットに含まれるヘッダパターンの異常度合いと前記トラフィック異常閾値とに基づいて、トラフィック異常を検知するトラフィック異常検知機能と、
前記ネットワークから受信されたパケットのデータパターンを蓄積し、当該データパターンごとに異常度合いを求めるデータ学習機能と、
前記データ学習機能により求められた複数のデータパターンの異常度合いに基づいてデータ異常を判定するためのデータ異常閾値を設定するデータ異常閾値設定機能と、
前記ネットワークから受信されたパケットに含まれるデータパターンの異常度合いと前記データ異常閾値とに基づいて、データ異常を検知するデータ異常検知手段と、
前記トラフィック異常検知機能により検知されたトラフィック異常と、前記データ異常検知機能により検知されたデータ異常とに基づいて、前記ネットワークから受信されたパケットの異常を判断する異常判断機能と、
前記トラフィック異常閾値と前記データ異常閾値とのうち、前記複数のヘッダパターンの異常度合いの変化と前記複数のデータパターンの異常度合いの変化とが大きい方の閾値を変更する閾値調整機能と
を前記コンピュータに備えさせることを特徴とするネットワーク異常検知プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate


【公開番号】特開2011−135131(P2011−135131A)
【公開日】平成23年7月7日(2011.7.7)
【国際特許分類】
【出願番号】特願2009−290024(P2009−290024)
【出願日】平成21年12月22日(2009.12.22)
【出願人】(000005832)パナソニック電工株式会社 (17,916)
【Fターム(参考)】