説明

コンピュータネットワーク、異常検出装置、異常検出方法および異常検出プログラム

【課題】要素の入れ替えの対称性を考慮しつつシステム全体の異常度を的確に検出することを可能とするコンピュータネットワークなどを提供する。
【解決手段】異常検出装置11は、コンピュータネットワーク1に接続され、コンピュータネットワークに接続されたコンピュータ11〜1nで取得された特徴量を行列もしくはテンソルとして入力データを作成するデータ入力処理部201と、入力データの中で要素を入れ替えても不変な量である不変量を算出する不変量計算処理部202と、不変量に基づいて異常が発生したか否かを検出する異常検出手段203〜205とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、要素が相互に関連して動作するシステムにおける異常の検出に関し、特にコンピュータネットワークにおけるワーム、ウイルス、マルウェアなどのような不正プログラムに起因する異常の検出に関する。
【背景技術】
【0002】
たとえばコンピュータネットワークなどのように、接続された多数の要素が相互に関連して動作するシステムでは、その動作において発生した異常を早急に検出する必要がある。その異常検出は、特定の要素の性質に依存しないものでなければならない。
【0003】
その一つの例が、コンピュータネットワークにおいてワーム、ウイルス、マルウェアなどのような不正プログラムに起因する異常の検出である。該ネットワークを構成するコンピュータにワームが急激に拡散すると、該ネットワーク内の通信トラフィックは急激に増大する。そのため、該ネットワークのノードであるコンピュータおよび各種ネットワーク機器間でのデータ送信量を時刻と共に記録し、そのデータを入力として通信トラフィックの急増を検出し、これによってワームの拡散を検出することを考える。
【0004】
上記に関連する技術文献として、次に示すものがある。特許文献1には、ネットワークの特徴量を成分に持つ行列の最大固有ベクトルを入力としてベクトルの通常の状態を学習し、通常のベクトルと大きく異なるものを異常として検出するという技術が記載されている。特許文献2には、データが入力される前後の確率密度の間の距離関数を外れ値度として計算し、各データの外れ値度から該データが不正であるか否かを検出するという技術が記載されている。
【0005】
また特許文献3には、人間の顔面の画像を認識する方法で、顔の表情の変形に伴う統計的な変形データを使用して認識精度を向上するという技術が記載されている。特許文献4には、過去一定期間に集計されたトラフィック量などのデータを指標データとして、トラフィック量の異常を検知する方法の一例が記載されている。特許文献5には、印鑑照合システムで、安定的な特徴点を選択することによって、失敗を減らして高精度な位置合わせを行うという技術が記載されている。
【0006】
【特許文献1】特開2005−216066号公報
【特許文献2】特開2004−078981号公報
【特許文献3】特開2005−208850号公報
【特許文献4】特開2008−022498号公報
【特許文献5】特開平09−044655号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
上述のようなコンピュータネットワーク上のワームなどに起因する通信トラフィックの異常の検出で、考慮すべきネットワークの性質として次に示す二点が挙げられる。一つはネットワークの対称性である。異常として検出されるべきなのは、データ送信の偏りの変化である。より具体的には、少数の要素(コンピュータ)間でのみデータの交換がなされていたのがワームの蔓延によって全要素間でデータが交換されるようになったなどのようなことが、異常として検出されるべき現象である。
【0008】
一方で、ある時刻では要素Aから要素BにXという量のデータの送信が観測されて次の時刻には要素Cから要素Dに同じ量のデータの送信が観測されたという場合、これを異常として検出するのは適切ではない。なぜなら、これはデータを送受信する要素の組み合わせが時間によって変わったというだけであり、データの送受信の偏り方(この例では二つの要素間でXという量のデータが遣り取りされる)が変化していないからである。
【0009】
ここでいう対称性とは、要素(コンピュータ等)の入れ替えに対して、たとえば通信トラフィックなどのような特徴量が不変であるという性質をいう。この場合は、この要素の入れ替えに対する対称性を考慮した異常検出が必要である。上記の例ではデータ送信の偏り方が変化する、という異常がこれに該当する。これと同様の対称性は、これ以外の場合についても適用されうる。
【0010】
考慮すべきネットワークの性質のもう一つは、ネットワーク上のトラフィック量等は時刻と共に変化し、どの要素とどの要素が繋がっているかというネットワークの構造も時間と共に変化するという点である。そのため、異常であると判断されるべき状態も時間によって異なる。たとえば、同じトラフィック量であっても、深夜の時間帯にそのトラフィック量が発生すれば異常であるが、昼間に発生すれば通常の量である、などといった状況もありうる。
【0011】
上記の2点の性質のうち、時間変化を考慮に入れた異常の検出は、特許文献1などで可能である。しかしながら、要素の入れ替えの対称性を考慮して、特定の要素の性質に依らないシステム全体の挙動の異常を検出することは、従来の技術では不可能である。前述の特許文献1〜5のいずれにも、このような要素の入れ替えの対称性を考慮した異常の検出が可能な技術は記載されていない。
【0012】
本発明の目的は、要素の入れ替えの対称性を考慮しつつシステム全体の異常度を的確に検出することを可能とするコンピュータネットワーク、異常検出装置、異常検出方法および異常検出プログラムを提供することにある。
【課題を解決するための手段】
【0013】
上記目的を達成するため、本発明に係るコンピュータネットワークは、複数台のコンピュータが相互に接続されてなるコンピュータネットワークであって、複数台のコンピュータのうち少なくとも1台が、ネットワーク全体の通信トラフィック等の特徴量を検出する第1の特徴量取得部と、特徴量から異常検出に係る計算を行う異常検出部とを有する異常検出装置であり、複数台のコンピュータのうち異常検出装置でない他の全てのものが、特徴量を検出して異常検出部に転送する第2の特徴量取得部を有し、異常検出装置の異常検出部が、第1および第2の特徴量取得部で取得された特徴量を行列もしくはテンソルとして入力データを作成するデータ入力処理部と、入力データの中で要素を入れ替えても不変な量である不変量を算出する不変量計算処理部と、不変量に基づいて異常が発生したか否かを検出する異常検出手段とを有することを特徴とする。
【0014】
上記目的を達成するため、本発明に係る異常検出装置は、コンピュータネットワークに接続されたコンピュータからなる異常検出装置であって、コンピュータネットワークに接続された他のコンピュータで取得された通信トラフィック等の特徴量を行列もしくはテンソルとして入力データを作成するデータ入力処理部と、入力データの中で要素を入れ替えても不変な量である不変量を算出する不変量計算処理部と、不変量に基づいて異常が発生したか否かを検出する異常検出手段とを有することを特徴とする。
【0015】
上記目的を達成するため、本発明に係る異常検出方法は、複数台のコンピュータが相互に接続されてなるコンピュータネットワークにあって、コンピュータネットワークに接続されたコンピュータで発生した異常を検出する方法であって、コンピュータネットワークに接続されたコンピュータの特徴量取得部が、通信トラフィック等の特徴量を取得し、特徴量取得部が、取得した特徴量をコンピュータネットワークに接続された異常検出装置に転送し、異常検出装置のデータ入力処理部が、転送された特徴量から行列もしくはテンソルとして入力データを作成し、異常検出装置の不変量計算処理部が、入力データの中で要素を入れ替えても不変な量である不変量を算出し、異常検出装置の異常検出手段が、不変量に基づいて異常が発生したか否かを検出することを特徴とする。
【0016】
上記目的を達成するため、本発明に係る異常検出プログラムは、コンピュータネットワークに接続された異常検出装置が備えるコンピュータに、コンピュータネットワークに接続されたコンピュータで取得された通信トラフィック等の特徴量から行列もしくはテンソルとして入力データを作成する手順と、入力データの中で要素を入れ替えても不変な量である不変量を算出する手順と、不変量に基づいて異常が発生したか否かを検出する手順とを実行させることを特徴とする異常検出プログラム。
【発明の効果】
【0017】
本発明は、上述したように要素を入れ替えても不変な量である不変量を算出してから、この不変量の確率密度から外れ値スコアを算出して、そこから異常が発生したか否かを検出するように構成したので、要素の入れ替えの対称性は考慮される。これによって、要素の入れ替えの対称性を考慮しつつシステム全体の異常度を的確に検出することを可能とするという、従来にない優れたコンピュータネットワーク、異常検出装置、異常検出方法および異常検出プログラムを提供することができる。
【発明を実施するための最良の形態】
【0018】
(第1の実施形態)
以下、本発明の実施形態の構成について添付図1および2に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るコンピュータネットワーク1は、複数台のコンピュータ11〜1nが相互に接続されてなる。そのうちの1台であるコンピュータ11が、ネットワーク全体の特徴量を検出する第1の特徴量取得部115と、特徴量から異常検出に係る計算を行う異常検出部116とを有する異常検出装置である。異常検出装置でないコンピュータ12〜1nは、特徴量を検出して異常検出部に転送する第2の特徴量取得部125のみを有する。そしてコンピュータ11の異常検出部116は、特徴量取得部115および125で取得された特徴量を行列もしくはテンソルとして入力データを作成するデータ入力処理部201と、入力データの中で要素を入れ替えても不変な量である不変量を算出する不変量計算処理部202と、不変量に基づいて異常が発生したか否かを検出する異常検出手段とを有する。
【0019】
ここでいう異常検出手段は、不変量の確率密度を逐次的に求める分布学習処理部203と、確率密度を用いて不変量の異常度を表す第1の外れ値スコアを算出するスコア計算処理部204と、第1の外れ値スコアを用いて異常が発生したか否かを検出する異常検出処理部205とを有する。
【0020】
そしてコンピュータ11〜1nの特徴量取得部115および125は、これらのコンピュータの相互間の通信トラフィックを特徴量として取得して異常検出部に転送するトラフィック取得部115および125である。
【0021】
この構成を備えることにより、本実施形態は、要素の入れ替えの対称性を考慮しつつシステム全体の異常度を的確に検出することが可能となる。
以下、これをより詳細に説明する。
【0022】
図2は、本発明の実施形態に係るコンピュータネットワーク1について示す説明図である。コンピュータネットワーク1には、n台(nは2以上の整数)のコンピュータ11〜1nが相互に接続されている。本実施形態では、これらのコンピュータ11〜1nをノード、そして各ノード間の通信トラフィックをリンクとしている。そして、それらのノードの中の任意の1つであるコンピュータ11に、他のコンピュータ12〜1nから通信トラフィックに関する情報が転送され、コンピュータ11上で後述する異常検出に係る計算が行われる。このため、コンピュータ11を異常検出装置ともいう。
【0023】
図1は、図2で示したコンピュータ11および12〜1n内部の構成をより詳細に示す説明図である。異常検出装置であるコンピュータ11は、プログラムを実行する主体であるCPU(Central Processing Unit)111と、CPU111が実行するプログラムが読み込まれて記憶されるRAM(Random Access Memory)112と、プログラムおよびデータが記憶される不揮発性の大容量記憶装置であるHDD(Hard Disk Unit)113と、コンピュータネットワーク1に接続して他のコンピュータ等とのデータ通信を行うネットワークアダプタ114とを備える通常のコンピュータ装置である。
【0024】
またCPU111は、本実施形態に係るコンピュータプログラムであるトラフィック取得部115と、異常検出部116とを実行する。いずれも、HDD113からRAM112に読み出され、CPU111によって実行される。トラフィック取得部115は、ネットワークアダプタ114で行われる他のコンピュータとの通信トラフィックを検出し、異常検出部116はトラフィック取得部115によって取得された通信トラフィックから異常検出に係る計算を行う。
【0025】
異常検出装置ではないコンピュータ12〜1nも、コンピュータ11と同じく、CPU121と、RAM122と、HDD123と、ネットワークアダプタ124とを備える通常のコンピュータ装置である。これら各部の機能は、コンピュータ11の同名の構成部と等しい。図2にはコンピュータ12のみを示しているが、図2に示していないコンピュータ13〜1nの構成もコンピュータ12と同一である。
【0026】
CPU121は、本実施形態に係るコンピュータプログラムであるトラフィック取得部125を実行する。トラフィック取得部125は、HDD123からRAM112に読み出され、CPU121によって実行される。トラフィック取得部125は、ネットワークアダプタ124で行われる他のコンピュータとの通信トラフィックを検出し、検出された通信トラフィックについての情報をコンピュータ11の異常検出部116に転送する。
【0027】
コンピュータ11の異常検出部116は、コンピュータ12〜1nのトラフィック取得部125から転送された通信トラフィックに係る情報を、自らのトラフィック取得部115が取得した情報と共に利用して、異常検出に係る計算を行うのである。
【0028】
コンピュータ12〜1nは、各々サーバであってもクライアントであってもよい。トラフィック取得部125は、該コンピュータで行われる他の処理と並行して、通信トラフィックの検出および検出された通信トラフィックについての情報の転送を行う。異常検出装置であるコンピュータ11もまた、サーバであってもクライアントであってもよいし、ネットワーク管理専門の機器としてもよい。またトラフィック取得部115および異常検出部116による処理をコンピュータ11で行われる他の処理と並行して行うものとしてもよい。
【0029】
(不変量の算出と異常の検出)
図3は、図1に示した異常検出部116の構成をより詳しく説明する説明図である。異常検出部116は、システム全体の特徴量から入力データを作成するデータ入力処理部201と、作成された入力データから要素入れ替えに対して不変な特徴量である不変量を算出する不変量計算処理部202と、算出された不変量の確率密度を逐次的に求める分布学習処理部203と、不変量および更新された確率密度から異常度を表すスコアを算出するスコア計算処理部204と、算出されたスコアから異常が発生したか否かを検出する異常検出処理部205とからなる。各々の処理部による処理の詳細については後述する。
【0030】
図3のデータ入力処理部201では、システム全体の特徴量から入力データを作成する。ここでいうシステム全体の特徴量とは、各ノード(コンピュータ11〜1n)間のトラフィック量の集合であり、トラフィック取得部115および125から異常検出部116に入力される。トラフィック量の入力データは時刻と共に逐次的に入力されるか、もしくはそのデータが発生した時刻に関する情報が付与されている。データ入力処理部201は、そこから入力データを作成する。
【0031】
トラフィック量の入力データはテンソル型でもよいが、以後は該入力データが行列型である場合を例にとって説明する。前述のように、n台のコンピュータ11〜1nをノード、そして各ノード間の通信トラフィックをリンクとしており、そしてi番目のノードとj番目のノードの間で時刻tに観測されたトラフィックをAij(t)とすると、時刻tにおける入力データはAij(t)をi行j列目の成分とするn次元の行列A(t)で表される。ただし1≦i≦n、1≦j≦nである。
【0032】
即ち、入力データA(t)はコンピュータネットワーク1を構成するn台のコンピュータ11〜1nで時刻tに観測された相互間の通信トラフィックを表すn次元の行列である。不変量計算処理部202は、データ入力処理部201で入力されたA(t)に対して、要素を入れ替えても(iおよびjの数値を変えても)不変な量である不変量E(t)を、次のようにして求める。
【0033】
行列A(t)で、i番目に大きい固有値をλi(t)、全ての固有値を並べたベクトルをλ(t)、行列式及びトレースを各々det[A(t)]、tr[A(t)]とする。det[A(t)]およびtr[A(t)]は、詳細には下式のように定義される。
【0034】
【数1】

【0035】
このとき、例えば以下のようにして不変量E(t)を求めることができる。
【数2】

(fは任意の関数、E(t)はスカラー)
【0036】
【数3】

(fは任意の関数、E(t)はスカラー)
【0037】
【数4】

(E(t)はn次元のベクトル)
【0038】
行列A(t)のi番目に大きい固有値をλi(t)、それに対応する固有ベクトルをui(t)とすると、λi(t)に対応する固有方程式は以下のようになる。
【数5】

【0039】
要素を入れ替える変換行列をUとすると、要素を入れ替える変換の下で行列、固有ベクトル、固有値はそれぞれ下式に示したようになる。ここで行列U†は、行列Uを転置し、かつ各成分の複素共役をとった行列を表す。そのため、U†U=1となる。
【数6】

【0040】
数5の左辺および右辺に左からUをかければ、下式が得られる。
【数7】

【0041】
U†U=1であることから、不変量E(t)は要素の入れ替えに対して不変な量であることがわかる。
【0042】
ここで計算されるE(t)は、要素間の相関を考慮に入れたシステム全体を表す量になっている。なぜならば、E(t)はシステム全体の特徴量を用いて算出されるので要素間の相関が考慮されており、かつ、特定の要素に依存せず(要素の入れ替えに対して不変な)システム全体を表す量になっているからである。
【0043】
図3で示した分布学習処理部203は、次のようにして不変量E(t)の分布を学習する。時刻tにおけるE(t)の分布をpt(E|θt)とすると、分布学習処理部203はE(t)が入力されるたびにpt(E|θt)を逐次的に更新する。θtは分布のパラメータを表す。
【0044】
pt(E|θt)は、例えば、E(t)がベクトルλ(t)であって多次元正規分布を用いた場合、下式のように表記できる。
【数8】

ここでΣtはλ(t)の分散を表す行列型パラメータで、μ(t)はλ(t)の平均を表すベクトル型のパラメータである。θtは、これらのパラメータをまとめて表記したものである。
【0045】
図3で示したスコア計算処理部204は、分布学習処理部203で学習されたE(t)の分布から、時刻tにおけるシステム全体の異常度スコアS(t)を算出する。異常度スコアは入力データが通常のデータとどれだけ異なっているかを表す量で、この値が大きければ、通常は出現しない異常なデータであることを表す。
【0046】
異常度スコアS(t)は、たとえば下式のように計算される。
【数9】

図3で示した異常検出処理部205は、スコア計算処理部204で算出された異常度スコアを基にしてシステム全体の異常を検出する。異常度スコアの情報を基にシステムの異常を検出する方法としては、たとえば異常度スコアが予め設定された閾値を超えた場合を異常として検出するようにすることができる。また、検出結果の出力は、異常の発生が検出された場合にコンピュータ11が備える表示装置(ディスプレイ)にその旨を表示するようにすることができるし、それ以外にもユーザに異常の発生を知らせることのできる方法であれば任意の出力方法を適用することができる。
【0047】
(第1の実施形態の全体的な動作)
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係る動作は、複数台のコンピュータ11〜1nが相互に接続されてなるコンピュータネットワーク1にあって、それらのコンピュータ11〜1nで発生した異常を検出する方法であって、コンピュータネットワーク1に接続された全てのコンピュータ11〜1nの特徴量取得部115および125が、特徴量を取得し、特徴量取得部115および125が、取得した特徴量をコンピュータネットワークに接続された異常検出装置(コンピュータ11)に転送し、異常検出装置のデータ入力処理部201が、転送された特徴量から行列もしくはテンソルとして入力データを作成し、異常検出装置の不変量計算処理部202が、入力データの中で要素を入れ替えても不変な量である不変量を算出し、異常検出装置の分布学習処理部203が、不変量の確率密度を逐次的に求め、異常検出装置のスコア計算処理部204が、確率密度を用いて不変量の異常度を表す第1の外れ値スコアを算出し、異常検出装置の異常検出処理部205が、第1の外れ値スコアを用いて異常が発生したか否かを検出する。
【0048】
また、ここでいう特徴量は、複数台のコンピュータの相互間の通信トラフィックとすることができる。
【0049】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータ11〜1nに実行させるようにしてもよい。
この動作により、本実施形態は以下のような効果を奏する。
【0050】
本実施形態では、コンピュータネットワーク1を構成するn台のコンピュータ11〜1nで時刻tに観測された相互間の通信トラフィックを処理の対象としているので、異常度スコアS(t)が高いことは通信トラフィックの偏り方が通常とは異なる状態であるということに対応する。この状態はワームの蔓延や全体的な通信の輻輳の発生等の全体的な異常が発生によって引き起こされるので、異常度スコアを監視することでコンピュータネットワーク全体の異常を検出できる。
【0051】
要素同士が相関を持つネットワーク等のシステムに対して、特定の要素の性質に依らないシステム全体の挙動の異常を検出することが出来る。その理由は、システム全体を表す特徴量から、要素の入れ替えに関して不変な量を構成し、その量を入力として異常を検出するからである。
【0052】
また、異常の検出に際して、誤検出を削減することができる。その理由は、特定の要素の性質によらない異常のみを検出するので、異常と判断される回数(アラーム数)を削減することができるからである。特定の要素の性質によらない異常を検出することで、実際には異常ではないにもかかわらず、特定の要素のみが例外的な挙動を示したというだけで異常と判断される回数を減らすことができ、誤報の削減につながる。
【0053】
さらに、時刻と共に変化し、異常な状態を定義することが難しいシステムに対して異常検出を行うことができる。その理由は、要素の入れ替えに対して不変な特徴量の確率分布の学習を行うことで、発生確率の低いものを異常として検出できるからである。確率分布の学習には異常な状態の定義を与える必要はなく、また、確率分布を逐次的に更新することで時刻と共に変化するシステムを扱うことができる。
【0054】
(第2の実施形態)
本発明の第2の実施形態は、ネットワークおよびハードウェアの構成、さらにソフトウェアの大まかな構成は前述の図1〜3と同一である。第2の実施形態が前述の第1の実施形態と異なる点は、分布学習処理部203が不変量の時間遷移に対する確率密度分布を学習する特徴量分布学習機能部301と、学習された確率密度分布から不変量が通常の出現パターンからどれだけ外れているかを示す第2の外れ値スコアを算出する外れ値スコア移動平均機能部302と、第2の外れ値スコアの時間遷移に対する確率密度を学習する移動平均分布学習機能部303とを含み、またスコア計算処理部304が第2の外れ値スコアの時間遷移に対する確率密度から第1の外れ値スコアを算出するという点にある。
【0055】
この構成を備えることにより、本実施形態は、不変量の急激な変化をより的確に検出することが可能となる。
以下、これをより詳細に説明する。
【0056】
図4は、本発明の第2の実施形態における、図1に示した異常検出部116の構成をより詳しく説明する説明図である。本実施形態では、分布学習処理部203はさらに、不変量の時間遷移に対する確率密度分布を学習する特徴量分布学習機能部301、学習された確率密度分布から不変量E(t)が通常の出現パターンからどの程度外れているかを示す第2の外れ値スコアを算出する外れ値スコア移動平均機能部302、第2の外れ値スコアの時間遷移に対する確率密度を学習する移動平均分布学習機能部303といった各機能部に分かれる。
【0057】
第2の実施形態が前述の第1の実施形態と異なる点は、分布学習処理部203の動作である。第1の実施形態では、不変量E(t)がそれまで学習された通常のパターンからどれだけ外れているかの度合いで異常度スコアを算出した。以下に説明する第2の実施形態では、不変量E(t)がどれだけ急激に変化したかで異常度を定義する。
【0058】
また、スコア計算処理部304の動作も、後述するように第1の実施形態におけるスコア計算処理部204と多少異なるので、ここでは別の参照番号を付している。それら以外の各処理部は、図3で示した第1の実施形態と同一の構成および動作を行うので、名称および参照番号は全て同一とする。
【0059】
特徴量分布学習機能部301では、E(t)の時間遷移の確率密度分布を学習する。以後、E(t)の時間遷移の確率密度分布は下式のように表記する。
【数10】

【0060】
図4の外れ値スコア移動平均機能部302は、特徴量分布学習機能部301で学習された確率密度分布からE(t)が通常の出現パターンからどれだけ外れているかを表す(第2の)外れ値スコアO(t)を計算する。外れ値スコアO(t)は、値が大きいほど通常の出現パターンから外れていることを表す。外れ値スコアO(t)は、下式のように計算される。
【数11】

【0061】
外れ値スコア移動平均機能部302はさらに、外れ値スコアO(t)の移動平均y(t)を、下式で計算する。ωはウィンドウの大きさを表す。このy(t)は外れ値スコアの時間的な密集度を表す量である。
【数12】

【0062】
図4の移動平均分布学習機能部303では、下式で表されるy(t)の時間遷移の確率密度分布を学習する。
【数13】

【0063】
スコア算出処理部304では、数13で示した移動平均の分布を用いて求めた移動平均y(t)の(第1の)外れ値スコアS’(t)を下式で算出し、これをコンピュータネットワーク1全体の異常度とする。
【数14】

【0064】
以上で説明した以外の各処理部は、図3で示した第1の実施形態と同一の構成および動作を行う。
【0065】
このS’(t)はバースト的な急激な変化が起こっている場合に高い値を取るという性質がある。従って、このS’(t)を外れ値スコアとして用いることは、E(t)の急激な変化をシステム全体の異常と見做すことに相当する。
【0066】
(第2の実施形態の全体的な動作)
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係る動作は、第1の実施形態で説明した動作で、分布学習処理部203が不変量の確率密度を逐次的に求める工程が、不変量の時間遷移に対する確率密度分布を学習する工程と、学習された確率密度分布から不変量が通常の出現パターンからどの程度外れているかを示す第2の外れ値スコアO(t)を算出する工程と、第2の外れ値スコアO(t)の時間遷移に対する確率密度を学習する工程とを含み、スコア計算処理部304が第2の外れ値スコアの時間遷移に対する確率密度から第1の外れ値スコアS’(t)を算出する。
【0067】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータ11〜1nに実行させるようにしてもよい。
この動作により、本実施形態は以下のような効果を奏する。
【0068】
第2の実施形態は、第1の実施形態の特徴に加えて、第1の実施形態よりもE(t)の急激な変化をより的確に検出できるという効果を得ることができる。
【0069】
(実施形態の拡張)
上記の第1および第2の実施形態では、コンピュータネットワークで相互に接続されている各々のコンピュータ間の通信トラフィックを特徴量として、ワームおよびウイルスなどの発生および蔓延に起因する異常の検出を行うものとした。しかしながら、本発明の適用可能な範囲はそれだけではない。多数のノードが相互に接続された系で、それらのノードの相互間の関係を示す量であれば、ここでいう「(ネットワーク全体の)特徴量」と捉えることができる。
【0070】
たとえば、機械の故障診断の例を考えると、機械の中の1つのパーツ(自動車ならエンジン、トランスミッションなど)を1つのノード、該パーツの出力間の相関の強さ(自動車ならエンジンの出力と他のパーツの電圧との間の相関係数)を「特徴量」とみなすことができる。ここに本発明の手法を適用すれば、これらのパーツ間の挙動が通常と異なり始めた場合に異常と判断するので、該機械の故障診断に利用することができる。
【0071】
また、国際経済の状態の分析の例を考えると、1つの国を1つのノード、各国の経済指標(株価指数、為替レートなど)の相関の強さを「特徴量」とみなすことができる。ここに本発明の手法を適用すれば、株価指数間の関係が全体的に通常と異なり始めた場合に異常と判断するので、経済状態の異常検出に利用することができる。
【0072】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【産業上の利用可能性】
【0073】
コンピュータネットワークにおけるワーム、ウイルス、マルウェアなどのような不正プログラムに起因する通信トラフィックの異常の検出に適用できる。これ以外にも、前述のように多数のノードが相互に接続された系で、それらのノードの相互間の関係を示す量を特徴量として捉えることのできる系全般に適用することができる。
【図面の簡単な説明】
【0074】
【図1】本発明の第1の実施形態に係るコンピュータ内部の構成を詳細に示す説明図である。
【図2】本発明の第1の実施形態に係るコンピュータネットワークについて示す説明図である。
【図3】図1に示した異常検出部の構成をより詳しく説明する説明図である。
【図4】本発明の第2の実施形態における、図1に示した異常検出部の構成をより詳しく説明する説明図である。
【符号の説明】
【0075】
1 コンピュータネットワーク
11、12 コンピュータ
111、121 CPU
112、122 RAM
113、123 HDD
114、124 ネットワークアダプタ
115、125 トラフィック取得部
116 異常検出部
201 データ入力処理部
202 不変量計算処理部
203 分布学習処理部
204、304 スコア計算処理部
205 異常検出処理部
301 特徴量分布学習機能部
302 外れ値スコア移動平均機能部
303 移動平均分布学習機能部


【特許請求の範囲】
【請求項1】
複数台のコンピュータが相互に接続されてなるコンピュータネットワークであって、
前記複数台のコンピュータのうち少なくとも1台が、前記ネットワーク全体の通信トラフィック等の特徴量を検出する第1の特徴量取得部と、前記特徴量から異常検出に係る計算を行う異常検出部とを有する異常検出装置であり、
前記複数台のコンピュータのうち前記異常検出装置でない他の全てのものが、前記特徴量を検出して前記異常検出部に転送する第2の特徴量取得部を有し、
前記異常検出装置の前記異常検出部が、前記第1および第2の特徴量取得部で取得された特徴量を行列もしくはテンソルとして入力データを作成するデータ入力処理部と、前記入力データの中で要素を入れ替えても不変な量である不変量を算出する不変量計算処理部と、前記不変量に基づいて異常が発生したか否かを検出する異常検出手段とを有することを特徴とするコンピュータネットワーク。
【請求項2】
前記異常検出手段が、前記不変量の確率密度を逐次的に求める分布学習処理部と、前記確率密度を用いて前記不変量の異常度を表す第1の外れ値スコアを算出するスコア計算処理部と、前記第1の外れ値スコアを用いて異常が発生したか否かを検出する異常検出処理部とを有することを特徴とする、請求項1に記載のコンピュータネットワーク。
【請求項3】
前記分布学習処理部が、前記不変量の時間遷移に対する確率密度分布を学習する特徴量分布学習機能部と、学習された前記確率密度分布から前記不変量が通常の出現パターンからどの程度外れているかを示す第2の外れ値スコアを算出する外れ値スコア移動平均機能部と、前記第2の外れ値スコアの時間遷移に対する確率密度を学習する移動平均分布学習機能部とを含み、
前記スコア計算処理部が前記第2の外れ値スコアの時間遷移に対する確率密度から前記第1の外れ値スコアを算出することを特徴とする、請求項2に記載のコンピュータネットワーク。
【請求項4】
前記第1および第2の特徴量取得部が、該複数台のコンピュータの相互間の通信トラフィックを前記特徴量として取得して前記異常検出部に転送するトラフィック取得部であることを特徴とする、請求項1ないし請求項3のうちいずれか1項に記載のコンピュータネットワーク。
【請求項5】
コンピュータネットワークに接続されたコンピュータからなる異常検出装置であって、
前記コンピュータネットワークに接続された他のコンピュータで取得された通信トラフィック等の特徴量を行列もしくはテンソルとして入力データを作成するデータ入力処理部と、
前記入力データの中で要素を入れ替えても不変な量である不変量を算出する不変量計算処理部と、
前記不変量に基づいて異常が発生したか否かを検出する異常検出手段と
を有することを特徴とする異常検出装置。
【請求項6】
前記異常検出手段が、
前記不変量の確率密度を逐次的に求める分布学習処理部と、
前記確率密度を用いて前記不変量の異常度を表す第1の外れ値スコアを算出するスコア計算処理部と、
前記第1の外れ値スコアを用いて異常が発生したか否かを検出する異常検出処理部と
を有することを特徴とする、請求項5に記載の異常検出装置。
【請求項7】
前記分布学習処理部が、前記不変量の時間遷移に対する確率密度分布を学習する特徴量分布学習機能部と、学習された前記確率密度分布から前記不変量が通常の出現パターンからどの程度外れているかを示す第2の外れ値スコアを算出する外れ値スコア移動平均機能部と、前記第2の外れ値スコアの時間遷移に対する確率密度を学習する移動平均分布学習機能部とを含み、
前記スコア計算処理部が前記第2の外れ値スコアの時間遷移に対する確率密度から前記第1の外れ値スコアを算出することを特徴とする、請求項6に記載の異常検出装置。
【請求項8】
前記特徴量が、前記コンピュータネットワークにおける前記複数台のコンピュータの相互間の通信トラフィックであることを特徴とする、請求項5ないし請求項7のうちいずれか1項に記載の異常検出装置。
【請求項9】
複数台のコンピュータが相互に接続されてなるコンピュータネットワークにあって、前記コンピュータネットワークに接続されたコンピュータで発生した異常を検出する方法であって、
前記コンピュータネットワークに接続されたコンピュータの特徴量取得部が、通信トラフィック等の特徴量を取得し、
前記特徴量取得部が、取得した前記特徴量を前記コンピュータネットワークに接続された異常検出装置に転送し、
前記異常検出装置のデータ入力処理部が、転送された前記特徴量から行列もしくはテンソルとして入力データを作成し、
前記異常検出装置の不変量計算処理部が、前記入力データの中で要素を入れ替えても不変な量である不変量を算出し、
前記異常検出装置の異常検出手段が、前記不変量に基づいて異常が発生したか否かを検出する
ことを特徴とする異常検出方法。
【請求項10】
前記異常検出手段が前記不変量に基づいて異常が発生したか否かを検出する手順が、前記異常検出装置の分布学習処理部が、前記不変量の確率密度を逐次的に求める手順と、前記異常検出装置のスコア計算処理部が、前記確率密度を用いて前記不変量の異常度を表す第1の外れ値スコアを算出する手順とを設け、
これによって前記異常検出装置の異常検出処理部が、前記第1の外れ値スコアを用いて異常が発生したか否かを検出することを特徴とする、請求項9に記載の異常検出方法。
【請求項11】
前記分布学習処理部が前記不変量の確率密度を逐次的に求める手順が、前記不変量の時間遷移に対する確率密度分布を学習する手順と、学習された前記確率密度分布から前記不変量が通常の出現パターンからどの程度外れているかを示す第2の外れ値スコアを算出する工程と、前記第2の外れ値スコアの時間遷移に対する確率密度を学習する手順とを設け、
これによって前記スコア計算処理部が、前記第2の外れ値スコアの時間遷移に対する確率密度から前記第1の外れ値スコアを算出することを特徴とする、請求項10に記載の異常検出方法。
【請求項12】
前記特徴量が、前記複数台のコンピュータの相互間の通信トラフィックであることを特徴とする、請求項9ないし請求項11のうちいずれか1項に記載の異常検出方法。
【請求項13】
コンピュータネットワークに接続された異常検出装置が備えるコンピュータに、
前記コンピュータネットワークに接続されたコンピュータで取得された通信トラフィック等の特徴量から行列もしくはテンソルとして入力データを作成する手順と、
前記入力データの中で要素を入れ替えても不変な量である不変量を算出する手順と、
前記不変量に基づいて異常が発生したか否かを検出する手順と
を実行させることを特徴とする異常検出プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate