JP5973636B1 - 異常ベクトル検出装置および異常ベクトル検出プログラム - Google Patents

異常ベクトル検出装置および異常ベクトル検出プログラム Download PDF

Info

Publication number
JP5973636B1
JP5973636B1 JP2015156841A JP2015156841A JP5973636B1 JP 5973636 B1 JP5973636 B1 JP 5973636B1 JP 2015156841 A JP2015156841 A JP 2015156841A JP 2015156841 A JP2015156841 A JP 2015156841A JP 5973636 B1 JP5973636 B1 JP 5973636B1
Authority
JP
Japan
Prior art keywords
vector
abnormal
cluster
abnormality
vectors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015156841A
Other languages
English (en)
Other versions
JP2017037382A (ja
Inventor
勝人 伊佐野
勝人 伊佐野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Information Systems Corp
Original Assignee
Mitsubishi Electric Information Systems Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Information Systems Corp filed Critical Mitsubishi Electric Information Systems Corp
Priority to JP2015156841A priority Critical patent/JP5973636B1/ja
Application granted granted Critical
Publication of JP5973636B1 publication Critical patent/JP5973636B1/ja
Publication of JP2017037382A publication Critical patent/JP2017037382A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ベクトルのクラスタ分類に基づいて異常ベクトルを検出する、異常ベクトル検出装置および異常ベクトルプログラムにおいて、異常クラスタが複数存在する場合に、より適切に異常ベクトルを検出できるものを提供する。【解決手段】異常ベクトル検出装置は、変数j(ただしjは2以上の整数)の、異なる複数の値について、複数のベクトルを、j個のクラスタに分類するステップS4と、j個のクラスタのうちから異常クラスタを検出する、異常クラスタ検出ステップS5と、異常クラスタに属する各ベクトルについて異常度を決定する、異常度決定ステップS6とを実行し、各ベクトルの異常度に基づき、各ベクトルが異常ベクトルであるか否かを判定するS10。【選択図】図3

Description

本発明は、異常ベクトル検出装置および異常ベクトル検出プログラムに関する。
大量のベクトルデータに含まれる正常なデータと異常なデータとを識別する方法として、様々な方法が公知である。たとえば特許文献1には、超球を用いた外れ値検出アルゴリズムが記載されている。
安藤晋、鈴木英之進「情報理論的クラスタリングによる異常値クラスタの検出」、[online]、平成20年10月12日、「5.2 外れ値検出と一クラス分類」、[平成27年6月17日検索]、インターネット<URL:http:www.cs.gunma-u.ac.jp/~ando/jsai08_revised.pdf>
しかしながら、従来の技術では、異常クラスタが複数存在する場合には、適切に異常ベクトルを検出することができないという問題があった。
たとえば非特許文献1のアルゴリズムでは、単一の超球しか扱うことができない。
この発明は、このような問題点を解決するためになされたものであり、異常クラスタが複数存在する場合に、より適切に異常ベクトルを検出できる、異常ベクトル検出装置および異常ベクトル検出プログラムを提供することを目的とする。
上述の問題点を解決するため、この発明に係る異常ベクトル検出装置は、複数のベクトルのうちから異常ベクトルを検出する、異常ベクトル検出装置であって、
変数j(ただしjは2以上の整数)の、異なる複数の値について、
‐前記複数のベクトルを、j個のクラスタに分類するステップと、
‐前記j個のクラスタのうちから異常クラスタを検出する、異常クラスタ検出ステップと、
‐前記異常クラスタに属する各ベクトルについて異常度を決定する、異常度決定ステップと、
を実行する、異常度決定機能と、
各ベクトルの前記異常度に基づき、各ベクトルが異常ベクトルであるか否かを判定する、異常ベクトル判定機能と
を備える。
前記異常度決定機能は、所定数のjの値について、少なくとも1個の異常クラスタが検出され、かつ、少なくとも1個の異常クラスタに属する少なくとも1個のベクトルの前記異常度が、前記所定数のjの値すべてにおいて同一となるまで実行されてもよい。
前記異常度決定機能は、変数i(ただしiは1以上の整数)の、異なる複数の値について実行され、
前記異常クラスタ検出ステップは、各クラスタについて、そのクラスタに属するベクトルの数がi個以下である場合に、そのクラスタを異常クラスタとして検出するステップであってもよい。
前記異常ベクトル判定機能は、変数iおよびjについて算出された各ベクトルの暫定異常度に基づいて実行されてもよい。
前記異常度決定ステップにおいて、各ベクトルの前記異常度は、そのベクトルと、SVMによって求められる他のクラスタに属する少なくとも1つの最近サポートベクトルとの距離に基づいて計算されてもよい。
前記ベクトルは、それぞれ通信ネットワークを介した通信に関する値を表し、
前記異常ベクトルは、マルウェア等の影響による不審な通信に関する値であってもよい。
また、この発明に係る異常ベクトル検出プログラムは、コンピュータを、上述の異常ベクトル検出装置として機能させる。
この発明に係る異常ベクトル検出装置および異常ベクトル検出プログラムは、ベクトルを分類するクラスタの数を変化させつつ異常度を評価するので、異常クラスタが複数存在する場合に、より適切に異常ベクトルを検出することができる。
本発明の実施の形態1に係る異常ベクトル検出装置の構成の例を示す図である。 異常ベクトル検出の対象となるベクトルの集合の例を示す図である。 図1の異常ベクトル検出装置の処理の流れを示すフローチャートである。 図1の異常ベクトル検出装置の動作の具体例を説明する図である。 図1の異常ベクトル検出装置の動作の具体例を説明する図である。 図1の異常ベクトル検出装置の動作の具体例を説明する図である。 図1の異常ベクトル検出装置の動作の具体例を説明する図である。 図1の異常ベクトル検出装置の動作の具体例を説明する図である。 図1の異常ベクトル検出装置の動作の具体例を説明する図である。
以下、この発明の実施の形態を添付図面に基づいて説明する。
実施の形態1.
図1に、本発明の実施の形態1に係る異常ベクトル検出装置10の構成の例を示す。異常ベクトル検出装置10は、複数のベクトルのうちから異常ベクトルを検出する装置である。
異常ベクトルとは、たとえば、複数のベクトルのうちで、他のベクトルとは異なる性質を持つ1個以上のベクトルを指す。たとえば、2次元のベクトルの集合において、ほとんどのベクトルがいずれの次元においても大きな値の要素を持っているときに、わずかな数のベクトルがいずれの次元においても小さな値の要素を持っている場合には、そのわずかな数のベクトルは異常ベクトルであると考えることができる。ただし、異常ベクトルの定義はこれに限らず、公知の定義を用いてもよいし、当業者が適宜決定してもよい。また、とくに異常ベクトルの数学的定義が明確に与えられなくとも、本発明の実施は可能である。
異常ベクトル検出装置10はコンピュータとしての構成を含み、演算を行う演算手段20と、情報を格納する記憶手段30とを備える。たとえば、演算手段20はCPU(中央処理装置)を含み、記憶手段30は半導体メモリおよびHDD(ハードディスクドライブ)等の記憶媒体を含む。
記憶手段30には異常ベクトル検出プログラムが格納されている。演算手段20がこの異常ベクトル検出プログラムを実行することにより、演算手段20を含むコンピュータは、本明細書に記載の異常ベクトル検出装置10としての機能を実現する。すなわち、この異常ベクトル検出プログラムは、コンピュータを異常ベクトル検出装置10として機能させる。
また、とくに図示しないが、異常ベクトル検出装置10は、使用者の操作を受け付ける入力手段(キーボードおよび/またはマウス等)と、情報を出力する出力手段(ディスプレイおよび/またはプリンタ等)と、外部の通信ネットワークに対し情報の入出力を受け付けるネットワークインタフェースとを備える。
図2に、異常ベクトル検出の対象となるベクトルの集合の例を示す。ベクトルの集合は複数のベクトルを含み、図2の例では4229個のベクトルを含んでいる。本実施形態では、ベクトルの集合は各次元について最大値が1となるよう正規化されている。ベクトルの集合は、たとえば記憶手段30に記憶される。
本実施形態では、ベクトルは、コンピュータによる、通信ネットワーク(インターネット等)を介した通信に関する値を表すデータである。通信に関する値は、たとえば通信の頻度およびデータサイズによって表される。具体例としては、ある次元(たとえば縦軸)が1時間あたりのHTTPリクエスト発行回数であり、別の次元(たとえば横軸)がHTTPリクエストの平均サイズである。
また、ベクトルの各要素を構成する数値は、通信やネットワークに関するものに限らず、連続的な数値データのベクトルなら汎用的に扱うことができる。言い換えると、回数やサイズなどの連続する数値に意味のあるデータなら扱うことができる。
また、本実施形態では、異常ベクトルは、マルウェア等の影響による不審な通信に関する値であるが、これに限定されない。たとえば、あるコンピュータにおいて通常の頻度およびデータサイズとは大きく異なる頻度やデータサイズの通信が発生した場合には、それは正常ではない通信である可能性が高いと考えることができる。正常でない通信とは、たとえば不審な通信であり、または、たとえばマルウェア等による通信である。ここでマルウェアとは、コンピュータウィルスその他の悪意のあるソフトウェアを含むが、これに限定されない。
以上のように構成される異常ベクトル検出装置10の動作を、以下に説明する。
図3は、異常ベクトル検出装置10の処理の流れの例を示すフローチャートである。
まず異常ベクトル検出装置10の演算手段20は、複数のベクトルからなる集合を取得する(ステップS1)。ここで、各ベクトルは記憶手段30にあらかじめ記憶されていてもよいし、異常ベクトル検出装置10の入力手段またはネットワークインタフェース等を介して入力されてもよい。
次に、演算手段20は変数iを初期化する(ステップS2)。ここで、iは後述のステップS3からステップS7までの処理を繰り返し実行するためのループ変数である。また、iは異常クラスタの検出基準であり、異常クラスタに含まれるベクトル数を表す。すなわち、異常クラスタを検出する際(たとえば後述のステップS5)に、属するベクトルがi個以下であるようなクラスタが、異常クラスタであると判定されることになる。
iの初期値(ループ範囲の一方の限界)はたとえば1であるが、この値は1以上の整数であれば任意に設計可能である。また、iの終値(ループ範囲の他方の限界)はたとえば5であるが、この値は初期値以上の整数であれば任意に設計可能である。
次に、演算手段20は変数jを初期化する(ステップS3)。ここで、jは後述のステップS4からステップS7までの処理を繰り返し実行するためのループ変数である。また、jはクラスタ分類を行う際(たとえば後述のステップS4)のクラスタ数を表す。
jの初期値(ループ範囲の一方の限界)はたとえば2であるが、この値は2以上の整数であれば任意に設計可能である。また、本実施形態では、jの終値(ループ範囲の他方の限界)は定義されない。ただしjの終値を定義してもよく、たとえばベクトルの数と等しい値としてもよい。図2の例では4229個のベクトルが扱われるので、jの終値を4229としてもよい。
次に、演算手段20は、すべてのベクトルをj個のクラスタに分類する(ステップS4)。ここで、複数のベクトルを複数のクラスタに分類する方法としては、たとえばk−means法を用いることができるが、他の任意の方法を用いてもよい。
次に、演算手段20は、ステップS4で得られたj個のクラスタのうちから、異常クラスタを検出する(ステップS5、異常クラスタ検出ステップ)。たとえば、各クラスタについて、そのクラスタに属するベクトルの数がi個以下である場合に、そのクラスタを異常クラスタとして検出する。または、他の公知の基準を用いて異常クラスタを検出してもよい。ここで検出された異常クラスタに属するベクトルは、異常ベクトルの候補(異常候補ベクトル)であるということができる。
次に、演算手段20は、異常クラスタに属する各ベクトルについて、暫定異常度を決定する(ステップS6、異常度決定ステップ)。ここで、各ベクトルの暫定異常度は、たとえば、そのベクトルと、他のクラスタに属する少なくとも1つのベクトルとの距離(たとえばユークリッド距離)に基づいて計算される。この「他のクラスタに属する少なくとも1つのベクトル」は、たとえば異常クラスタ(または異常クラスタに属するベクトルのいずれか)に最も近いベクトルとして選択することができる。
距離の計算には、たとえばSVM(Support Vector Machine)を用いることができる。SVMを用いると、あるクラスタ(異常クラスタ)と他の全クラスタとを隔てるのに適した超平面を求めることができる。また、SVMを用いると、あるクラスタ(異常クラスタ)と、他のクラスタに属するベクトルのうちこの超平面に最も近いもの(サポートベクトル)を、他の各クラスタについて求めることができる。この場合には、異常クラスタに属する各ベクトルの異常度は、そのベクトルと、そのベクトルに対するサポートベクトルのうちそのベクトルに最も近いもの(最近サポートベクトル)との距離として算出することができる。
異常クラスタに属するベクトル1つあたりの計算コストは、クラスタ数−1[回]となる。この計算コストは、SVMを用いない場合には全ベクトル数−1[回]となるが、SVMを用いることによりクラスタ数−1[回]に低減することができる。本実施形態では、たとえば異常クラスタに属するベクトル1つあたり4229−1=4228[回]の計算ではなく、28−1=27[回]の計算で済む場合がある。この計算量の低減効果は、3次元以上のデータでも得ることができる。
なお、異常クラスタに属さないベクトルについては、異常度を決定する必要はないが、0または他の定数または特定の値として決定してもよい。
次に、演算手段20は、異常候補ベクトルの暫定異常度がjの変化に対して安定しているか否かを判定する(ステップS7)。ここで、「安定している」とは、「収束した」と表現される状態であってもよい。
異常候補ベクトルの暫定異常度がjの変化に対して安定しているか否かは、たとえば、所定数のjの値について、少なくとも1個の異常クラスタが検出され、かつ、少なくとも1個の異常クラスタに属する少なくとも1個のベクトルとその暫定異常度がその所定数のjの値すべてにおいて同一となったか否かによって判定される。
たとえば、この所定数を「10」とすると、ある異常候補ベクトルの暫定異常度が10個の異なるjの値について同一となった場合に、暫定異常度はjの変化に対して安定していると判定される。具体例として、各ベクトルV(p)(ただしpはベクトルのインデックスであり、値の範囲は1からベクトルの個数までとなる整数)の暫定異常度をA(p,i,j)と表した場合において、pのある値pについて、ベクトルV(p)が1≦j≦18のとき異常クラスタに属さず(したがって異常候補ベクトルではなく)、19≦j≦28のとき異常クラスタに属して異常候補ベクトルとなり、A(p,i,j)=0.31となったとすると、異常候補ベクトルの暫定異常度は、j=28のときにjの変化に対して安定したと判定される。(なお、ステップS7の判定は、すべてのベクトルを考慮して総合的に行われる。上記から明らかなように、少なくとも1個の異常候補ベクトルの暫定異常度が安定していればよく、ベクトル単位で見たときに暫定異常度が安定しない異常候補ベクトルが存在しても、ステップS7の判定には影響しない。)
この例ではjの値は連続であるが、jの値は連続でなくともよい。たとえばベクトルV(p)は1≦j≦18のとき異常クラスタに属さず、19≦j≦23のとき異常クラスタに属してA(p,i,j)=0.31となり、24≦j≦26のとき異常クラスタに属さず、27≦j≦31のとき異常クラスタに属してA(p,i,j)=0.31となったとすると、異常候補ベクトルの暫定異常度はj=31のときにjの変化に対して安定したと判定される。
言い換えると、同一の異常候補ベクトルとその暫定異常度が、jが1ずつ増加していく中で、断続または連続してn回(上記の例ではn=10)出現したら、安定もしくは収束したと判断される。
または、異常候補ベクトルの暫定異常度がjの変化に対して安定しているか否かは、所定数の「連続する」jの値について、少なくとも1個の異常クラスタが検出され、かつ、少なくとも1個の異常クラスタに属する少なくとも1個のベクトルとその暫定異常度が、その所定数の連続するjの値すべてにおいて同一となったか否かによって判定されてもよい。
異常候補ベクトルの暫定異常度がjの変化に対して安定していないと判定された場合には、演算手段20はjの値を次の値に変更し(たとえば1だけ増加させ)、処理をステップS4に戻す。このようにして、演算手段20は、jの異なる複数の値について、ステップS4〜S6の処理(異常度決定機能)を繰り返し実行する。
ステップS7において、異常候補ベクトルの暫定異常度がjの変化に対して安定したと判定された場合には、演算手段20はiのループが終了したか否かを判定する(ステップS8)。たとえば、iが所定の終値に等しければiのループが終了したと判定し、そうでなければ終了していないと判定する。
iのループが終了していないと判定された場合には、演算手段20はiの値を次の値に変更し(たとえば1だけ増加させ)、処理をステップS3に戻す。このようにして、演算手段20は、iの異なる複数の値について、ステップS3〜S7の処理を繰り返し実行する。ここで、このループはステップS4〜S6の処理(異常度決定機能)を含むので、演算手段20は、iの異なる複数の値について異常度決定機能を繰り返し実行するということができる。
ステップS8においてiのループが終了したと判定された場合には、演算手段20は、各ベクトルの最終異常度を決定する(ステップS9)。各ベクトルの最終異常度は、たとえば、iおよびjについて算出された暫定異常度に基づいて決定される。
各ベクトルの最終異常度は、たとえば次のように算出することができる。まず、すべてのベクトルV(p)のうち異常候補ベクトルとなったものと、その異常候補ベクトルが検知されたiおよびjについて、jを変化させた場合の暫定異常度A(p,i,j)の最頻値L(p,i)を求める。たとえば、あるpおよびiについて、暫定異常度A(p,i,j)=0.2となるjの値が5個あり、暫定異常度A(p,i,j)=0.31となるjの値が10個あれば、最頻値L(p,i)=0.31となる。最頻値が複数存在する場合には、それらに基づいて最終的なL(p,i)を決定してもよく、たとえばそれらのうち最も小さいものをL(p,i)としてもよい。次に、L(p,i)を最小とするiの値およびそのときの暫定異常度Min{L(p,i)}を決定する。次に、Min{L(p,i)}を最大とするpの値およびそのときの暫定異常度A=Max[Min{L(p,i)}]を決定する。そして、各異常候補ベクトルV(p)の最終異常度A(p)を、これらの比すなわちA(p)=Min{L(p,i)}/Aとして算出する。
次に、演算手段20は、各ベクトルの最終異常度に基づき、各ベクトルが異常ベクトルであるか否かを判定する(ステップS10、異常ベクトル判定機能)。ここで、最終異常度が所定の基準を満たすものを異常ベクトルと判定してもよい。所定の基準として、所定の閾値以上であるか否かを用いてもよい。たとえば、上記の最終異常度に基づき、A(p)≧0.8となるベクトルV(p)は異常ベクトルであると判定し、そうでないベクトルV(p)は異常ベクトルではないと判定してもよい。
以上のように動作する異常ベクトル検出装置10および異常ベクトル検出プログラムによる動作の具体例を、図2の例を用いて以下に説明する。
以下の具体例では、変数iの初期値は1、終値は5である。変数jの初期値は2である。変数jの終値は定義されないが、4229と定義してもよい。異常度は各ベクトルと対応する最近サポートベクトルとの距離として算出される。異なる10個のjの値(連続であっても不連続であってもよい)について、少なくとも1個の異常候補ベクトルの暫定異常度が同一となった場合に、異常候補ベクトルとその暫定異常度がjの変化に対して安定したと判定されるものとする。異常ベクトルの判定基準は0.80とする。有効数字は2桁とする。
図2の例において、ベクトルX1〜X3が本来検出したい異常ベクトルであるとする。まずi=1として異常クラスタの検出を行う(すなわち、単一のベクトルを含むクラスタのみが異常クラスタとなる)。j<19(すなわち、クラスタの数が19未満)の場合には、すべてのクラスタに複数のベクトルが分類され、異常クラスタは検出されない。
図4に示すように、j=19の場合に、X1(0.02, 1.00)のみを含むクラスタC1が出現し、これが異常クラスタとなる。他のクラスタはすべて2個以上のベクトルを含んでおり、異常クラスタではない。異常クラスタC1に属するX1(0.02, 1.00)に対する最近サポートベクトルはY1(0.03, 0.69)であり、X1の暫定異常度すなわちX1とY1との距離は0.31となる。なお、図4〜図7において、異常クラスタでないクラスタについてはとくに図示しない。
20≦j≦28の場合についても同様の結果となる。すなわち、異常クラスタはC1のみであり、これに属するベクトルX1の暫定異常度は0.31である。ここで、j=28の時に、19から28まで10個の異なるjの値(この例では連続する値であるが、断続であってもよい)についてベクトルX1の暫定異常度が同一であるので、異常候補ベクトルの暫定異常度がjの変化に対して安定したと判定される。このようにしてi=1のループが終了する。
次に、i=2について同様の処理が実行される(すなわち、2個以下のベクトルしか含まないクラスタが異常クラスタとなる)。j<14(すなわち、クラスタの数が14未満)の場合には、すべてのクラスタに3個以上のベクトルが分類され、異常クラスタは検出されない。
図5に示すように、j=14の場合に、X2(1.00, 0.00)およびX3(0.98, 0.00)のみを含むクラスタC2が出現し、これが異常クラスタとなる。他のクラスタはすべて3個以上のベクトルを含んでおり、異常クラスタではない。異常クラスタC2に属するX2(1.00, 0.00)およびX3(0.98, 0.00)に対する最近サポートベクトルは、いずれもY5(0.65, 0.00)であり、X2およびX3の暫定異常度すなわちY5との距離はそれぞれ0.35および0.33となる。
15≦j≦18の場合についても同様の結果となる。すなわち、異常クラスタはC2のみであり、これに属するベクトルX2およびX3の暫定異常度は、それぞれ、0.35および0.33となる。
その後、図6に示すように、j=19の場合に、X1のみを含むクラスタC1が新たに出現し、これが異常クラスタとなる。また、X2およびX3のみを含むクラスタC2は依然として存在しており、異常クラスタのままである。他のクラスタはすべて3個以上のベクトルを含んでおり、異常クラスタではない。X1、X2およびX3の暫定異常度は、それぞれ、0.31、0.35および0.33となる。
20≦j≦23の場合についても、j=19の場合と同様の結果となる。j=23の時に、異常候補ベクトルX2およびX3について、14から23まで10個の異なるjの値について暫定異常度が同一であるので、異常候補ベクトルの暫定異常度がjの変化に対して安定したと判定される。このようにしてi=2のループが終了する。なお、ベクトルX1の暫定異常度は、19≦j≦23の5つのjについてのみ同一であるが、ここでは異常候補ベクトルとして検出される。ただし、そのようなベクトルを異常候補ベクトルとして検出しないよう構成してもよい。
i=3のときは、i=2のときと同じ結果が得られるものとする。
i=4の場合には、図7に示すように、j=23において異常候補ベクトルの暫定異常度が安定する。図7の例では、異常クラスタとしてC1〜C3が検出されている。C1はX1のみを含み、C2はX2およびX3のみを含み、C3はY1〜Y4のみを含む。X1(0.02, 1.00)に対する最近サポートベクトルはY1(0.03, 0.69)である。X2(1.00, 0.00)およびX3(0.98, 0.00)に対する最近サポートベクトルはいずれもY5(0.65, 0.01)である。Y1(0.03, 0.69),Y2(0.03, 0.64),Y3(0.03, 0.62),Y4(0.03, 0.60)に対する最近サポートベクトルはいずれもY6(0.01, 0.43)である。
i=5の場合には、図8に示すように、j=9の場合に、X1およびY1〜Y4のみを含むクラスタC4が出現し、これが異常クラスタとなる。他のクラスタはすべて6個以上のベクトルを含んでおり、異常クラスタではない。異常クラスタC4に属するX1およびY1〜Y4に対する最近サポートベクトルはY6となる。なお、1≦i≦4の場合には、X1の最近サポートベクトルはすべてY1であったが、i=5かつj=9の場合には、Y6となり、暫定異常度も0.57とこれまでより大きくなる。
10≦j≦13の場合についても同様の結果となる。すなわち、異常クラスタはC4のみであり、これに属するベクトルX1およびY1〜Y4の暫定異常度は、それぞれ、0.57、0.26、0.21、0.19および0.17となる。
その後、図9に示すように、j=14の場合に、X1およびY1〜Y4のみを含むクラスタC4と、X2およびX3のみを含むクラスタC2とが出現し、これらが異常クラスタとなる。他のクラスタはすべて6個以上のベクトルを含んでおり、異常クラスタではない。X1〜X3およびY1〜Y4の暫定異常度は、それぞれ、0.57、0.35、0.33、0.26、0.21、0.19および0.17となる。
15≦j≦18の場合についても、j=14の場合と同様の結果となる。j=18の時に、9から18まで10個の異なるjの値についてX1およびY1〜Y4のベクトルとその暫定異常度が同一であるので、異常候補ベクトルの暫定異常度がjの変化に対して安定したと判定される。このようにしてi=5のループが終了する。なお、X2およびX3のベクトルとその暫定異常度は、14≦j≦18の5つのjについてのみ同一であるが、ここでは異常候補ベクトルとして検出される。ただし、そのようなベクトルを異常候補ベクトルとして検出しないよう構成してもよい。
このとき、異常候補ベクトルごとに整理すると、
‐異常候補ベクトルのインデックスp
‐異常候補ベクトルV(p)
‐ループ変数i
‐V(p)の最近サポートベクトルw(p,i,j)のうち、jを変化させたときに最頻となるものW(p,i)
‐V(p)の暫定異常度A(p,i,j)のうち、jを変化させたときの最頻値L(p,i)
をまとめると、たとえば次の通りになる。
p V(p) i W(p,i) L(p,i)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
2064 X1 1 Y1 0.31
2064 X1 2 Y1 0.31
2064 X1 3 Y1 0.31
2064 X1 4 Y1 0.31
2064 X1 5 Y6 0.57
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
923 X2 2 Y5 0.35
923 X2 3 Y5 0.35
923 X2 4 Y5 0.35
923 X2 5 Y5 0.35
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
899 X3 2 Y5 0.33
899 X3 3 Y5 0.33
899 X3 4 Y5 0.33
899 X3 5 Y5 0.33
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
3274 Y1 4 Y6 0.26
3274 Y1 5 Y6 0.26
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
3726 Y2 4 Y6 0.21
3726 Y2 5 Y6 0.21
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
2317 Y3 4 Y6 0.19
2317 Y3 5 Y6 0.19
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
3730 Y4 4 Y6 0.17
3730 Y4 5 Y6 0.17
このようにしてiのループが終了し、各ベクトルの暫定異常度が決定される。最終異常度は、X1〜X3およびY1〜Y4についてのみ計算される。
最終異常度の計算のため、同一の異常候補ベクトルについてまとめると、
‐異常候補ベクトルのインデックスp
‐異常候補ベクトルV(p)
‐暫定異常度A(p,i,j)のうち、jを変化させたときの最頻値L(p,i)を求め、さらにこれにおいてiを変化させたときの最小値Min{L(p,i)}
は、たとえば次の通りになる。
p V(p) Min{L(p,i)}
2064 X1 0.31
923 X2 0.35
899 X3 0.33
3274 Y1 0.26
3726 Y2 0.21
2317 Y3 0.19
3730 Y4 0.17
Min{L(p,i)}を最大とする異常候補ベクトルはX2すなわちp=923であり、そのときの暫定異常度A=Max[Min{L(p,i)}]=0.35である。これらより、X1〜X3およびY1〜Y4の最終異常度は次のようになる。
X1(0.02, 1.00) … 0.31/0.35 ≒ 0.89 ≧ 0.80
X2(1.00, 0.00) … 0.35/0.35 ≒ 1.00 ≧ 0.80
X3(0.98, 0.00) … 0.33/0.35 ≒ 0.94 ≧ 0.80
Y1(0.03, 0.69) … 0.26/0.35 ≒ 0.74 < 0.80
Y2(0.03, 0.64) … 0.21/0.35 ≒ 0.60 < 0.80
Y3(0.02, 0.62) … 0.19/0.35 ≒ 0.54 < 0.80
Y4(0.03, 0.60) … 0.17/0.35 ≒ 0.49 < 0.80
以上より、最終異常度が異常ベクトルの判定基準以上となったX1〜X3が異常ベクトル(真の異常ベクトル)であると判定され、最終異常度が異常ベクトルの判定基準未満となるY1〜Y4は異常ベクトルではない(または偽の異常ベクトルである)と判定される。
このようにして、本発明の実施の形態1に係る異常ベクトル検出装置10および異常ベクトル検出プログラムは、複数のベクトルのうちから異常ベクトルを検出する。ここで、異常ベクトル検出装置10および異常ベクトル検出プログラムは、ベクトルを分類するクラスタの数を変化させつつ異常度を評価するので、異常クラスタが複数存在する場合(異常クラスタの数が不明である場合を含む)に、より適切に異常ベクトルを検出することができる。
たとえば、コンピュータによる通信の頻度およびデータサイズを値として持つベクトルのうちから、異常ベクトルを検出することにより、マルウェア等の影響による不審な通信を発見することが容易になる。
また、変数iにより、異常クラスタの検出基準を変更しながら暫定異常度を評価するので、異常ベクトルの分布の粗密によらずより適切な検出が可能である。たとえば図2の例では、i=1の場合にはまず異常クラスタC1が検出され、i=2の場合にはまず異常クラスタC2が検出されるので、安定の判断基準が緩い場合等には、安定する異常クラスタが異なる場合がある。実施の形態1によれば、異なるiの値についての結果を総合的に考慮できるので、このような場合により適切な検出を行うことができる。
上述の実施の形態1において、次のような変形を施すことができる。
変数iのループは省略してもよい。すなわち、異常クラスタを検出する基準となるベクトルの個数を固定してもよい。
実施の形態1では、変数jの終値は定義されないが、変数jの終値を定義してもよい。その場合には、たとえばステップS6とステップS7との間にjが終値に達したか否かの判定ステップを設け、jが終値に達した場合にはステップS8に進んでもよい。なお、jの終値を適宜設定してもよい。設定可能な終値の最大値はベクトルの数となる。
実施の形態1では、ステップS7のように暫定異常度の安定を待つが、安定を待たないようにしてもよい。たとえば、jについてもiと同様に終値までループさせてもよい。
実施の形態1では、図2に示すようにベクトルは2次元のものであるが、3次元以上のベクトルの集合についても、同様に異常ベクトルを検出することができる。
実施の形態1では、ベクトルはそれぞれ通信ネットワークを介した通信に関する値を表すものであるが、他の値を表すものであってもよい。たとえばスポーツに関するものであってもよく、野球選手(たとえば投手)の奪三振数、打ち取り数、失点、防御率、等の値を表すものであってもよい。このようにすると、異常ベクトルを検出することにより、各選手の次年度の起用を決定する際に有用な情報を得ることができる。その他、様々なデータについて汎用的に扱うことが可能である。
実施の形態1では、図2に示すようにベクトルの集合は正規化されているが、正規化されていない集合を用いてもよい。また、その場合には、異常ベクトル検出装置10はベクトルの集合を正規化する機能を備えてもよい。集合を正規化した場合には各次元について等しい重みをもって異常度を評価することができるが、そのような評価が不要である場合や、いずれかの次元をとくに重視したい場合等では、正規化されない集合を用いてもよい。
10 異常ベクトル検出装置、X1〜X3,Y1〜Y6 ベクトル(X1〜X3 異常候補ベクトルおよび異常ベクトル、Y1〜Y4 異常候補ベクトル)、C1〜C4 クラスタ(異常クラスタ)。

Claims (7)

  1. 複数のベクトルのうちから異常ベクトルを検出する、異常ベクトル検出装置であって、
    変数j(ただしjは2以上の整数)の、異なる複数の値について、
    ‐前記複数のベクトルを、j個のクラスタに分類するステップと、
    ‐前記j個のクラスタのうちから異常クラスタを検出する、異常クラスタ検出ステップと、
    ‐前記異常クラスタに属する各ベクトルについて異常度を決定する、異常度決定ステップと、
    を実行する、異常度決定機能と、
    各ベクトルの前記異常度に基づき、各ベクトルが異常ベクトルであるか否かを判定する、異常ベクトル判定機能と
    を備える、異常ベクトル検出装置。
  2. 前記異常度決定機能は、所定数のjの値について、少なくとも1個の異常クラスタが検出され、かつ、少なくとも1個の異常クラスタに属する少なくとも1個のベクトルの前記異常度が、前記所定数のjの値すべてにおいて同一となるまで実行される、請求項1に記載の異常ベクトル検出装置。
  3. 前記異常度決定機能は、変数i(ただしiは1以上の整数)の、異なる複数の値について実行され、
    前記異常クラスタ検出ステップは、各クラスタについて、そのクラスタに属するベクトルの数がi個以下である場合に、そのクラスタを異常クラスタとして検出するステップである、請求項1または2に記載の異常ベクトル検出装置。
  4. 前記異常ベクトル判定機能は、変数iおよびjについて算出された各ベクトルの暫定異常度に基づいて実行される、請求項3に記載の異常ベクトル検出装置。
  5. 前記異常度決定ステップにおいて、各ベクトルの前記異常度は、そのベクトルと、SVMによって求められる他のクラスタに属する少なくとも1つの最近サポートベクトルとの距離に基づいて計算される、請求項1〜4のいずれか一項に記載の異常ベクトル検出装置。
  6. 前記ベクトルは、それぞれ通信ネットワークを介した通信に関する値を表し、
    前記異常ベクトルは、マルウェア等の影響による不審な通信に関する値である、
    請求項1〜5のいずれか一項に記載の異常ベクトル検出装置。
  7. コンピュータを、請求項1〜6のいずれか一項に記載の異常ベクトル検出装置として機能させる、異常ベクトル検出プログラム。
JP2015156841A 2015-08-07 2015-08-07 異常ベクトル検出装置および異常ベクトル検出プログラム Expired - Fee Related JP5973636B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015156841A JP5973636B1 (ja) 2015-08-07 2015-08-07 異常ベクトル検出装置および異常ベクトル検出プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015156841A JP5973636B1 (ja) 2015-08-07 2015-08-07 異常ベクトル検出装置および異常ベクトル検出プログラム

Publications (2)

Publication Number Publication Date
JP5973636B1 true JP5973636B1 (ja) 2016-08-23
JP2017037382A JP2017037382A (ja) 2017-02-16

Family

ID=56706682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015156841A Expired - Fee Related JP5973636B1 (ja) 2015-08-07 2015-08-07 異常ベクトル検出装置および異常ベクトル検出プログラム

Country Status (1)

Country Link
JP (1) JP5973636B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6249505B1 (ja) * 2016-12-26 2017-12-20 三菱電機インフォメーションシステムズ株式会社 特徴抽出装置およびプログラム
US20220086179A1 (en) * 2020-09-12 2022-03-17 Microsoft Technology Licensing, Llc Service access data enrichment for cybersecurity

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6770454B2 (ja) * 2017-02-16 2020-10-14 日本電信電話株式会社 異常検知システム及び異常検知方法
CN109990803B (zh) * 2018-01-02 2022-05-24 西门子(中国)有限公司 检测系统异常的方法、装置及传感器处理的方法、装置
JP2020181235A (ja) * 2019-04-23 2020-11-05 株式会社 インターコム サーバ、セキュリティ監視システム、プログラム及びセキュリティ監視方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000137702A (ja) * 1998-07-01 2000-05-16 General Electric Co <Ge> 多変量デ―タの評価によって警告を発生するシステムと方法
JP2004312064A (ja) * 2003-02-21 2004-11-04 Intelligent Cosmos Research Institute ネットワーク異常検出装置、ネットワーク異常検出方法およびネットワーク異常検出プログラム
US20140165198A1 (en) * 2012-10-23 2014-06-12 Verint Systems Ltd. System and method for malware detection using multidimensional feature clustering

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000137702A (ja) * 1998-07-01 2000-05-16 General Electric Co <Ge> 多変量デ―タの評価によって警告を発生するシステムと方法
JP2004312064A (ja) * 2003-02-21 2004-11-04 Intelligent Cosmos Research Institute ネットワーク異常検出装置、ネットワーク異常検出方法およびネットワーク異常検出プログラム
US20140165198A1 (en) * 2012-10-23 2014-06-12 Verint Systems Ltd. System and method for malware detection using multidimensional feature clustering

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6016026104; 安藤晋,鈴木英之進: '情報理論的クラスタリングによる異常値クラスタの検出' 人工知能学会論文誌 第23巻,第5号, 2008, pp. 344-354 *
JPN6016026107; 市田達也 他: '特徴量の時間的な状態遷移を考慮したマルウェア感染検知手法に関する一検討' 2012 第29回 暗号と情報セキュリティシンポジウム概要集[CD-ROM] , 20120202, pp. 1-8 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6249505B1 (ja) * 2016-12-26 2017-12-20 三菱電機インフォメーションシステムズ株式会社 特徴抽出装置およびプログラム
JP2018106383A (ja) * 2016-12-26 2018-07-05 三菱電機インフォメーションシステムズ株式会社 特徴抽出装置およびプログラム
US20220086179A1 (en) * 2020-09-12 2022-03-17 Microsoft Technology Licensing, Llc Service access data enrichment for cybersecurity
US11647034B2 (en) * 2020-09-12 2023-05-09 Microsoft Technology Licensing, Llc Service access data enrichment for cybersecurity

Also Published As

Publication number Publication date
JP2017037382A (ja) 2017-02-16

Similar Documents

Publication Publication Date Title
Pervez et al. Feature selection and intrusion classification in NSL-KDD cup 99 dataset employing SVMs
JP5973636B1 (ja) 異常ベクトル検出装置および異常ベクトル検出プログラム
Khraisat et al. An anomaly intrusion detection system using C5 decision tree classifier
Koc et al. A network intrusion detection system based on a Hidden Naïve Bayes multiclass classifier
Bostani et al. Modification of supervised OPF-based intrusion detection systems using unsupervised learning and social network concept
Kanakarajan et al. Improving the accuracy of intrusion detection using gar-forest with feature selection
Sabar et al. A bi-objective hyper-heuristic support vector machines for big data cyber-security
Bifet et al. Improving adaptive bagging methods for evolving data streams
Wang et al. Mining multi-label data streams using ensemble-based active learning
US20190155824A1 (en) Enabling advanced analytics with large data sets
US10992675B2 (en) Anomaly detection using tripoint arbitration
Sharma et al. A novel multi-classifier layered approach to improve minority attack detection in IDS
Deshmukh et al. Intrusion detection system by improved preprocessing methods and Naïve Bayes classifier using NSL-KDD 99 Dataset
Ghanem et al. Novel multi-objective artificial bee colony optimization for wrapper based feature selection in intrusion detection
Sahu et al. An ensemble-based scalable approach for intrusion detection using big data framework
Pattawaro et al. Anomaly-based network intrusion detection system through feature selection and hybrid machine learning technique
Nguyen et al. An efficient local region and clustering-based ensemble system for intrusion detection
EP2953062A1 (en) Learning method, image processing device and learning program
Bhati et al. A new ensemble based approach for intrusion detection system using voting
Aziz et al. Cluster Analysis-Based Approach Features Selection on Machine Learning for Detecting Intrusion.
Xiao et al. A multiple-instance stream learning framework for adaptive document categorization
Jirachan et al. Applying KSE-test and K-means clustering towards scalable unsupervised intrusion detection
Bertini et al. Ensemble of complete p-partite graph classifiers for non-stationary environments
JP7500980B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
Jiang A semi-supervised learning model for intrusion detection

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160714

R150 Certificate of patent or registration of utility model

Ref document number: 5973636

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees