JP7306446B2 - 異常検知装置、異常検知方法、及びプログラム - Google Patents

異常検知装置、異常検知方法、及びプログラム Download PDF

Info

Publication number
JP7306446B2
JP7306446B2 JP2021501257A JP2021501257A JP7306446B2 JP 7306446 B2 JP7306446 B2 JP 7306446B2 JP 2021501257 A JP2021501257 A JP 2021501257A JP 2021501257 A JP2021501257 A JP 2021501257A JP 7306446 B2 JP7306446 B2 JP 7306446B2
Authority
JP
Japan
Prior art keywords
tree structure
data
binary tree
groups
creating
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.)
Active
Application number
JP2021501257A
Other languages
English (en)
Other versions
JPWO2020170425A1 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2020170425A1 publication Critical patent/JPWO2020170425A1/ja
Application granted granted Critical
Publication of JP7306446B2 publication Critical patent/JP7306446B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は異常検知装置、異常検知方法、及びコンピュータ可読媒体に関し、特にデータの異常の程度を示すスコアを算出することが可能な異常検知装置、異常検知方法、及びコンピュータ可読媒体に関する。
近年の情報化社会の発達により、サイバーセキュリティの重要性が高まってきている。例えば、サイバーセキュリティの分野では、データの異常を検知するために、通常とは異なるデータ(異常値や外れ値)を発見することが重要である。このような外れ値を検知するためのアルゴリズムの一つとして、Isolation Forestが用いられている。
特許文献1には、車載ネットワーク等で用いられる異常検知技術が開示されている。特許文献1に開示されている技術では、Isolation Forestを用いてネットワークの異常を検出している。
特開2018-092613号公報
Isolation Forestアルゴリズムは、複数のデータを用いて二分木構造(分離木構造)を作成し、この二分木構造を用いて複数のデータを分割していくアルゴリズムである。Isolation Forestアルゴリズムでは、根ノードから葉ノードに到達するまでのパス長をスコアとしており、このスコアが小さいほど(深さが浅いほど)、外れ値(異常データ)である可能性が高いと判断している。
しかしながら、Isolation Forestアルゴリズムを用いた場合は、データの分布に偏りがあると、期待した結果が得られないという問題がある。すなわち、Isolation Forestアルゴリズムでは、分割するデータの特徴(パラメータ)と閾値とをランダムに決定して二分木構造を作成している。このため、多数派のデータ群と少数派のデータ群とを備える偏りのあるデータの場合は、少数派のデータ群に含まれるデータを外れ値と判断する傾向があり、この結果、期待した通りにデータの異常を検知することができないという問題がある。
上記課題に鑑み本発明の目的は、データの分布に偏りがある場合であっても適切に異常を検知することが可能な異常検知装置、異常検知方法、及びコンピュータ可読媒体を提供することである。
本発明の一態様にかかる異常検知装置は、複数のデータを複数のグループに分割するための第1の二分木構造を作成する第1の二分木構造作成部と、前記複数のグループの各々に分割されたデータを前記複数のグループ毎に更に分割するための第2の二分木構造を作成する第2の二分木構造作成部と、前記第2の二分木構造の根ノードから葉ノードに到達するまでの深さを用いて、前記複数のデータの異常の程度を示すスコアを算出するスコア算出部と、を備える。
本発明の一態様にかかる異常検知方法は、複数のデータを複数のグループに分割するための第1の二分木構造を作成し、前記複数のグループの各々に分割されたデータを前記複数のグループ毎に更に分割するための第2の二分木構造を作成し、前記第2の二分木構造の根ノードから葉ノードに到達するまでの深さを用いて、前記複数のデータの異常の程度を示すスコアを算出する。
本発明の一態様にかかるコンピュータ可読媒体は、複数のデータを複数のグループに分割するための第1の二分木構造を作成し、前記複数のグループの各々に分割されたデータを前記複数のグループ毎に更に分割するための第2の二分木構造を作成し、前記第2の二分木構造の根ノードから葉ノードに到達するまでの深さを用いて、前記複数のデータの異常の程度を示すスコアを算出する、異常検知処理をコンピュータに実行させるためのプログラムが格納された非一時的なコンピュータ可読媒体である。
本発明により、データの分布に偏りがある場合であっても適切に異常を検知することが可能な異常検知装置、異常検知方法、及びコンピュータ可読媒体を提供することができる。
実施の形態1にかかる異常検知装置を説明するためのブロック図である。 実施の形態1にかかる異常検知装置が備えるスコア算出部を示すブロック図である。 実施の形態1にかかる異常検知装置の動作を説明するためのフローチャートである。 実施の形態1にかかる異常検知装置を用いて作成した大域木構造を示す図である。 実施の形態1にかかる異常検知装置を用いて作成した大域木構造、及び局所木構造を示す図である。 データの分布に偏りがある場合を示す図である。 実施の形態2にかかる異常検知装置を説明するためのブロック図である。 プロキシログデータの一例を示す表である。 特徴データの一例を示す表である。 比較例にかかる異常検知動作を説明するための図である。 実施の形態2にかかる異常検知装置の異常検知動作を説明するための図である。 実施の形態2にかかる異常検知装置の異常検知動作を説明するための図である。 本発明にかかる異常検知処理用プログラムを実行するためのコンピュータを示すブロック図である。
<実施の形態1>
以下、本発明の実施の形態1について説明する。
図1は、実施の形態1にかかる異常検知装置を説明するためのブロック図である。図1に示すように、異常検知装置1は、大域木構造作成部(第1の二分木構造作成部)11、局所木構造作成部(第2の二分木構造作成部)12、及びスコア算出部13を備える。図2に示すように、スコア算出部13は、大域分割部(第1のデータ分割部)21および局所分割部(第2のデータ分割部)22を備える。本実施の形態にかかる異常検知装置1は、入力された複数のデータの中から異常を示すデータを検知するための異常検知装置である。
大域木構造作成部11は、複数のデータを複数のグループに分割するための大域木構造(第1の二分木構造)を作成する。大域木構造作成部11で作成された大域木構造は、スコア算出部13の大域分割部21が複数のデータを複数のグループに分割する際に用いられる。
大域木構造作成部11は、各々のグループに属するデータの数が所定の閾値以上となるように複数のデータを複数のグループに分割して大域木構造を作成する。このとき、大域木構造作成部11は、複数のデータの全てを用いて大域木構造を作成してもよい。
すなわち、大域木構造作成部11は、複数のデータの全てを入力として、分割の次元(パラメータ)および閾値をランダムに選択して二分木構造を作成する。このとき作成した二分木構造の葉ノード(グループ)の数が指定した数になるまで、または、葉ノード(グループ)の深さが所定の深さになるまで分割を行ってもよい。
局所木構造作成部12は、大域木構造作成部11において複数のグループの各々に分割されたデータを、複数のグループ毎に更に分割するための局所木構造(第2の二分木構造)を作成する。ここで、大域木構造の各々の葉ノード(各々のグループ)は、局所木構造の根ノードに対応している。局所木構造作成部12で作成された局所木構造は、スコア算出部13の局所分割部22が、大域木構造の各々の葉ノード(各々のグループ)のデータを更に分割する際に用いられる。
局所木構造作成部12は、グループ毎に抽出されたデータを入力として、分割の次元(パラメータ)および閾値をランダムに選択して、各々のグループ毎に二分木構造を作成する。なお、局所木構造作成部12が作成する局所木構造については、Isolation Forestアルゴリズムを用いた二分木構造の作成と同様である。また、局所木構造作成部12は、各々のグループ毎にランダムに抽出した一部のデータを用いて、各々のグループ毎に局所木構造を作成してもよい。また、各々のグループ毎に同じ数のデータを抽出して局所木構造を作成してもよい。
スコア算出部13は、局所木構造作成部12で作成された局所木構造の根ノードから葉ノードに到達するまでの深さを用いて、複数のデータの異常の程度を示すスコアを算出する。
具体的に説明すると、スコア算出部13が備える大域分割部21(図2参照)は、入力された複数のデータを、大域木構造作成部11で作成された大域木構造を用いて複数のグループに分割する。換言すると、大域分割部21は、大域木構造作成部11で作成された大域木構造を用いて複数のデータの各々が属するグループを決定する。
また、スコア算出部13が備える局所分割部22(図2参照)は、複数のグループの各々に分割されたデータを、局所木構造作成部12で作成された局所木構造を用いてグループ毎に更に分割する。換言すると、局所分割部22は、局所木構造作成部12で作成された局所木構造を用いて、各々のグループに属するデータの葉ノードを決定する。
そして、スコア算出部13は、局所分割部22で分割されたデータの根ノードから葉ノードに到達するまでの深さをスコアとして算出する。すなわち、スコア算出部13は、局所分割部22で決定された各々のグループの葉ノードの深さを用いてスコアを算出する。このとき算出されたスコアは、各々のデータがどの程度の外れ値(異常値)を有するかを示す指標となる。
次に、本実施の形態にかかる異常検知装置1の動作について説明する。本実施の形態にかかる異常検知装置1は、まず、大域木構造作成部11および局所木構造作成部12を用いて二分木構造(大域木構造、及び局所木構造)を作成する。その後、作成した二分木構造(大域木構造、及び局所木構造)を用いて、入力データである複数のデータを分割する。そして、分割したデータの葉ノードまでの深さを用いてスコアを算出する。以下、本実施の形態にかかる異常検知装置1の動作について、図3に示すフローチャート、及び図4、図5を用いて具体的に説明する。
まず、大域木構造作成部11は、複数のデータを複数のグループに分割するための大域木構造を作成する(図3のステップS1)。つまり、図4に示すように、複数のデータの全てを入力として、分割の次元(パラメータ)および閾値をランダムに選択して二分木構造を作成する。図4に示す例では、ノードA11においてノードA21とノードA22に分岐している。ノードA21は更にノードA31とノードA32に分岐している。ノードA31は更にノードA41とノードA42に分岐している。各々のノードA11、A21、A31には、データを分割するための次元(パラメータ)および閾値が設定してある。
大域木構造作成部11は、大域木構造の葉ノード(グループ)の数が指定した数になるまで、または、葉ノード(グループ)の深さが所定の深さになるまで分割を行う。図4に示す例では、ノードA41、A42、A32、A22が葉ノード(グループ)に対応している。よって、葉ノード(グループ)の数は4つである。また、葉ノードA41、A42の深さは「3」、葉ノードA32の深さは「2」、葉ノードA22の深さは「1」であるので、大域木構造の葉ノードの最大深さは「3」となる。
このとき、大域木構造作成部11は、各々の葉ノード(グループ)A41、A42、A32、A22に属するデータの数が所定の閾値N以上(Nは2以上の自然数)となるように大域木構造を作成する。換言すると、各々の葉ノード(グループ)A41、A42、A32、A22に属するデータの数が所定の閾値未満とならないように大域木構造を作成する。このようにすることで、各々の葉ノード(グループ)に属するデータのバランスを保つことができる。
また、大域木構造作成部11は、大域木構造の葉ノードの最大深さに上限を設けてもよい。つまり、大域木構造の葉ノードの深さが所定の深さよりも深くならないようにしてもよい。このように葉ノードの最大深さに上限を設けることで、大域木構造の葉ノードの数が増加することを抑制することができる。
その後、図4に示す大域木構造の各々の葉ノード(グループ)A41、A42、A32、A22からランダムにn個(nは2以上の自然数)の要素(データ)を抽出する。このとき、各々の葉ノード(グループ)A41、A42、A32、A22から抽出するデータの数を同一にすることが好ましい。このように、各々の葉ノード(グループ)A41、A42、A32、A22から抽出するデータの数を同一にした場合は、データ数の多い特定の葉ノード(グループ)においてスコアが大きくなることを抑制することができる。
その後、局所木構造作成部12は、大域木構造の各々の葉ノード(グループ)A41、A42、A32、A22から抽出されたデータを用いて、局所木構造を作成する(図3のステップS2)。ここで、図4に示す大域木構造の各々の葉ノード(グループ)A41、A42、A32、A22はそれぞれ、図5に示す局所木構造の根ノードB11、C11、D11、E11に対応している。
図5に示すように、局所木構造の根ノードB11は、ノードB21とノードB22に分岐される。根ノードC11は、ノードC21とノードC22に分岐される。ノードC22は更に、ノードC31とノードC32に分岐される。根ノードD11は、ノードD21とノードD22に分岐される。ノードD22は更に、ノードD31とノードD32に分岐される。根ノードE11は、ノードE21とノードE22に分岐される。ノードE22は更に、ノードE31とノードE32に分岐される。ノードE32は更に、ノードE41とノードE42に分岐される。局所木構造作成部12は、このようにすることで局所木構造を作成することができる。
次に、スコア算出部13は、作成した二分木構造(大域木構造、及び局所木構造:図4、図5参照)を用いてスコアを算出する(図3のステップS3)。具体的には、スコア算出部13の大域分割部21は、大域木構造作成部11で作成された大域木構造(図4参照)を用いて、入力データの各々を複数のグループA41、A42、A32、A22に分割する。換言すると、大域分割部21は、大域木構造作成部11で作成された大域木構造を用いて、複数の入力データの各々が属するグループA41、A42、A32、A22を決定する。
その後、スコア算出部13が備える局所分割部22は、局所木構造作成部12で作成された局所木構造(図5参照)を用いて、各々のグループA41、A42、A32、A22(図5の根ノードB11、C11、D11、E11に対応)に属するデータを分割する。例えば、局所分割部22は、根ノードB11に属するデータをノードB21またはノードB22に分割する。例えば、局所分割部22は、根ノードC11に属するデータをノードC21またはノードC22に分割する。更に局所分割部22は、ノードC22に属するデータをノードC31またはノードC32に分割する。根ノードD11に属するデータ、及び根ノードE11に属するデータについても同様である。
このようにすることで、局所分割部22は、各々のグループ(根ノードB11、C11、D11、E11)に属するデータの葉ノードを決定することができる。図5に示す例では、ノードB21、B22、C21、C31、C32、D21、D31、D32、E21、E31、E41、E42が葉ノードに対応している。なお、図5では各々の葉ノードの深さを数字で記載している。例えば、葉ノードB21の深さは「1」である。
スコア算出部13は、このようにして求めた葉ノードB21、B22、C21、C31、C32、D21、D31、D32、E21、E31、E41、E42の深さを用いてスコアを算出する。
Isolation Forestアルゴリズムでは、スコアの値が小さいほど(つまり、葉ノードまでの深さが浅いほど)外れ値である可能性が高い。よって、本実施の形態にかかる異常検知装置1では、例えば、スコア算出部13で算出されたスコアが所定の値よりも小さい場合に、データが異常であると判断するようにしてもよい。
また、大域木構造作成部11と局所木構造作成部12とを用いて複数の木構造を作成するように構成してもよい。その場合、スコア算出部13は、各々の木構造においてデータが到達する葉ノードの深さの平均値をスコアとする。例えば、2つの木構造Aと木構造Bを用いる場合、あるデータの到達する葉ノードの深さがそれぞれDAとDBのとき、(DA+DB)/2をそのデータのスコアとして採用することができる。
背景技術で説明したように、Isolation Forestアルゴリズムは、複数のデータを用いて二分木構造を作成し、この二分木構造を用いて複数のデータを分割していくアルゴリズムである。Isolation Forestアルゴリズムでは、根ノードから葉ノードに到達するまでのパス長をスコアとしており、このスコアが小さいほど(深さが浅いほど)、外れ値(異常データ)である可能性が高いと判断している。
しかしながら、Isolation Forestアルゴリズムを用いた場合は、データの分布に偏りがあると、期待した結果が得られないという問題があった。すなわち、Isolation Forestアルゴリズムでは、分割するデータの特徴(パラメータ)と閾値とをランダムに決定して二分木構造を作成している。このため、多数派のデータ群と少数派のデータ群とを備える偏りのあるデータの場合は、少数派のデータ群に含まれるデータを外れ値と判断する傾向があり、この結果、期待した通りにデータの異常を検知することができないという問題があった。
例えば、図6に示すデータ群は複数のデータ121、122を備えるが、これらの複数のデータは、多数派のデータ群111と少数派のデータ群112とを備える偏りのあるデータとなっている。このようなデータ群にIsolation Forestアルゴリズムを適用すると、少数派のデータ群112に含まれるデータ122を外れ値と判断する傾向が高くなる。このため、偏りのあるデータにIsolation Forestアルゴリズムを適用した場合は、期待した通りにデータの異常を検知することができないという問題があった。
そこで本実施の形態にかかる異常検知装置1は、大域木構造作成部11において、複数のデータを複数のグループに分割するための大域木構造を作成している。また、局所木構造作成部12は、大域木構造作成部11で分割された各々のグループに属するデータを更に分割するための局所木構造を作成している。そして、スコア算出部13は、局所木構造作成部12で作成された局所木構造の根ノードから葉ノードに到達するまでの深さを用いて、複数のデータの異常の程度を示すスコアを算出している。
すなわち、本実施の形態にかかる異常検知装置1では、局所木構造作成部12において局所木構造を作成する前に、予め大域木構造作成部11において大域木構造を作成している。そして、大域木構造の葉ノード(グループ)に属するデータに対して、局所木構造を作成している。このように、大域木構造を予め作成することで、データの分布に偏りがある場合であっても、偏りのあるデータ群を大域木構造の各々のグループ(葉ノード)に所属させることができる。具体的には、図6に示すような少数派のデータ群112に含まれるデータ122を大域木構造のグループ(葉ノード)に所属させることができる。したがって、このような少数派のデータ群112に対して適切に局所木構造を作成することができる。よって、データの分布に偏りがある場合であっても適切に異常を検知することができる。
以上で説明した本実施の形態にかかる発明により、データの分布に偏りがある場合であっても適切に異常を検知することが可能な異常検知装置、異常検知方法、及びプログラムを提供することができる。
<実施の形態2>
次に、本発明の実施の形態2について説明する。実施の形態2では、本発明をプロキシサーバのログ分析に適用した場合について説明する。図7は、本実施の形態にかかる異常検知装置を説明するためのブロック図である。なお、本実施の形態にかかる異常検知装置2の基本的な構成および動作については、実施の形態1で説明した異常検知装置1の構成および動作と同様であるので、同一の構成要素には同一の符号を付し、重複した説明は適宜省略する。
図7に示すように、本実施の形態にかかる異常検知装置2は、大域木構造作成部11、局所木構造作成部12、スコア算出部13、サンプリング部14、データ変換部15、及び特徴データ格納部16を備える。また、異常検知装置2にはプロキシサーバ31が接続されている。プロキシサーバ31のプロキシログ格納部32には、プロキシサーバ31のプロキシログが格納されている。
データ変換部15は、プロキシログ格納部32から供給されたプロキシログを、異常検知処理に使用するための特徴データに変換する。図8は、プロキシログデータの一例を示す表である。また、図9は、特徴データの一例を示す表である。例えば、データ変換部15は、図8に示すプロキシログデータを用いて、図9に示す特徴データ(ドメイン、POST率、アクセス回数)に変換する。
図9に示す例では、ドメイン毎に、リクエストメソッドがPOSTの行である割合(POST率)と行の総数(アクセス回数)を求めている。例えば、これ以外の特徴として、送信バイト数(最小値、最大値、平均値)、受信バイト数(最小値、最大値、平均値)、アクセスクライアント数、応答コードの分布(例えば、「200」が何%であるかなど)などを用いてもよい。
特徴データ格納部16は、データ変換部15で変換された特徴データを格納する。特徴データ格納部16に格納されている特徴データは、異常検知装置2における異常検知処理に用いられる。
大域木構造作成部11は、特徴データ格納部16に格納されている特徴データを複数のグループに分割するための大域木構造を作成する。具体的には、大域木構造作成部11は、特徴データ格納部16に格納されている特徴データの全てを入力として、分割の次元(パラメータ)および閾値をランダムに選択して二分木構造を作成する。このとき作成した二分木構造の葉ノード(グループ)の数が指定した数になるまで、または、葉ノード(グループ)の深さが所定の深さになるまで分割を行う。なお、大域木構造作成部11の詳細については実施の形態1で説明した場合と同様である。
サンプリング部14は、局所木構造作成部12において局所木構造を作成する際に用いるデータを抽出する。サンプリング部14は、大域木構造のグループ(葉ノード)毎にデータを抽出する。このとき、サンプリング部14は、大域木構造のグループ(葉ノード)の中から予め決定された数のデータを抽出する。また、サンプリング部14は、大域木構造の各々のグループ(葉ノード)に分割されたデータから同じ数のデータを抽出してもよい。
局所木構造作成部12は、大域木構造の各々のグループ(葉ノード)に含まれるデータを更に分割して局所木構造を作成する。局所木構造作成部12は、サンプリング部14において各々のグループ毎に抽出されたデータを入力として、分割の次元(パラメータ)および閾値をランダムに選択して、各々のグループ毎に二分木構造を作成する。このとき、局所木構造作成部12は、各々のグループ毎にランダムに抽出した一部のデータを用いて、各々のグループ毎に局所木構造を作成してもよい。また、各々のグループ毎に同じ数のデータを抽出して局所木構造を作成してもよい。なお、局所木構造作成部12の詳細については実施の形態1で説明した場合と同様である。
スコア算出部13は、局所木構造作成部12で作成された局所木構造の根ノードから葉ノードに到達するまでの深さを用いて、複数のデータの異常の程度を示すスコアを算出する。なお、スコア算出部13の詳細については実施の形態1で説明した場合と同様である。
次に、本実施の形態にかかる異常検知装置2の動作について説明する。
まず、比較例として、本発明を適用しない場合の動作について図10を用いて説明する。なお、図10では説明を簡略化するために、図9に示すデータのうち50%のデータ(ドメインd1、d3、d5、d7、d9、d11)をサンプリングして二分木構造を作成した場合について説明する。
図10に示す二分木構造は、Isolation Forestアルゴリズムを用いて作成している。このとき用いたデータの特徴は、POST率とアクセス回数であり、これらの閾値は、各ノードに含まれるデータの最小値と最大値の平均値を用いている。
例えば、ノード41にはドメインd1、d3、d5、d7、d9、d11のデータが含まれており、これらのPOST率の最小値は「0」、最大値は「1」であるので、閾値を「0.5」としている。また、例えば、ノード42にはドメインd1、d3、d5、d7、d9のデータが含まれており、これらのアクセス回数の最小値は「4」、最大値は「110」であるので、閾値を「57」としている。他のノードの分岐条件についても同様である。
図10に示すように、ノード41の分岐条件は「POST率<0.5」である。よって、ドメインd1、d3、d5、d7、d9のデータがノード42に分岐され、ドメインd11のデータが葉ノード(以下では、便宜上、葉ノードd11とも記載する。他の葉ノードについても同様である。)に分岐される。なお、図10では条件を満たす場合の矢印を実線とし、条件を満たさない場合の矢印を破線で示している。
ノード42の分岐条件は「アクセス回数<57」である。よって、ドメインd3、d5、d7、d9のデータがノード44に分岐され、ドメインd1のデータが葉ノードd1に分岐される。ノード43の分岐条件は「アクセス回数<7」である。よって、ドメインd3、d5のデータがノード44に分岐され、ドメインd7、d9のデータがノード45に分岐される。
ノード44の分岐条件は「アクセス回数<5」である。よって、ドメインd3のデータが葉ノードd3に分岐され、ドメインd5のデータが葉ノードd5に分岐される。また、ノード45の分岐条件は「アクセス回数<11」である。よって、ドメインd7のデータが葉ノードd7に分岐され、ドメインd9のデータが葉ノードd9に分岐される。
図10に示した比較例では、POST率の分布に偏りがあるため(図9参照)、POST率が高い少数派のデータ(ドメインd11のデータ)を短絡的に外れ値と判定するような二分木構造が作成される。このため、POST率が小さい多数派のドメイン(d1、d3、d5、d7、d9)において外れ値が検知されにくくなる。
すなわち、一般的にPOSTリクエストがあるドメインの方が少数派であるので、POSTリクエストがないドメイン内での外れ値が検知されにくくなる。また、外部サイトへのリクエストの場合は「アクセスクライアント数」が1のドメインが多数を占めるため、利用者が少ないレアなドメインが正常と判断されやすくなる。
このように、本発明を適用しない場合は、多数派のデータ群と少数派のデータ群とを備える偏りのあるデータに対して二分木構造を作成する際に、少数派のデータ群に含まれるデータを外れ値と判断する傾向がある。このため、期待した通りにデータの異常を検知することができない。
次に、図11、図12を用いて、本実施の形態にかかる異常検知装置2の動作(本発明を適用した場合の動作)について説明する。
まず、大域木構造作成部11は、特徴データ格納部16に格納されている特徴データ(ドメインd1~d12の全データ)を複数のグループに分割するための大域木構造を作成する。図11に示す例では、1つのグループ(葉ノード)に含まれるデータ数が6以下となるまで分割している。
つまり、図11に示すように、ノード51の分岐条件は「POST率<0.5」である。よって、ドメインd1~d9のデータがノード52に分岐され、ドメインd10~d12のデータがグループ(葉ノード)55に分岐される。
また、ノード52の分岐条件は「アクセス回数<71」である。よって、ドメインd2、d3、d5、d6、d7、d9のデータがグループ(葉ノード)53に分岐され、ドメインd1、d4、d8のデータがグループ(葉ノード)54に分岐される。
このような大域木構造を作成することで、特徴データ(ドメインd1~d12の全データ)を各々のグループ53~55に分割することができる。
その後、サンプリング部14は、各々のグループ53~55からそれぞれ3つのデータをサンプリングする。また、局所木構造作成部12は、各々のグループ53~55からサンプリングされたデータを用いて局所木構造を作成する。
具体的には、図11に示すグループ53では、ドメインd2、d5、d7のデータを用いて局所木構造を作成する。グループ54では、ドメインd1、d4、d8のデータを用いて局所木構造を作成する。グループ55では、ドメインd10、d11、d12のデータを用いて局所木構造を作成する。なお、グループ54、55のデータ数は3つであるので、グループ54、55では各々のグループ54、55に含まれる全てのデータを使用することとなる。
図12に示す大域木構造50は、図11に示す大域木構造に対応している。
図12に示すノード(根ノード)61は、図11に示すグループ(葉ノード)53に対応している。図12に示すように、ノード61の分岐条件は「アクセス回数<6」である。よって、ドメインd2、d5のデータがノード64に分岐され、ドメインd7のデータが葉ノードd7に分岐される。また、ノード64の分岐条件は「アクセス回数<4」である。よって、ドメインd2のデータが葉ノードd2に分岐され、ドメインd5のデータが葉ノードd5に分岐される。このようにすることで、局所木構造作成部12は、グループ53(図11参照)に対応する局所木構造(つまり、ノード61、64、葉ノードd2、d5、d7を含む局所木構造)を作成することができる。
図12に示すノード(根ノード)62は、図11に示すグループ(葉ノード)54に対応している。図12に示すように、ノード62の分岐条件は「アクセス回数<125」である。よって、ドメインd1、d4のデータがノード65に分岐され、ドメインd8のデータが葉ノードd8に分岐される。また、ノード65の分岐条件は「アクセス回数<115」である。よって、ドメインd1のデータが葉ノードd1に分岐され、ドメインd4のデータが葉ノードd4に分岐される。このようにすることで、局所木構造作成部12は、グループ54(図11参照)に対応する局所木構造(つまり、ノード62、65、葉ノードd1、d4、d8を含む局所木構造)を作成することができる。
図12に示すノード(根ノード)63は、図11に示すグループ(葉ノード)55に対応している。図12に示すように、ノード63の分岐条件は「POST率<0.9」である。よって、ドメインd10のデータが葉ノードd10に分岐され、ドメインd11、d12のデータがノード66に分岐される。また、ノード66の分岐条件は「アクセス回数<54」である。よって、ドメインd12のデータが葉ノードd12に分岐され、ドメインd11のデータが葉ノードd11に分岐される。このようにすることで、局所木構造作成部12は、グループ55(図11参照)に対応する局所木構造(つまり、ノード63、66、葉ノードd10、d11、d12を含む局所木構造)を作成することができる。
スコア算出部13は、このようにして求めた葉ノードd1、d2、d4、d5、d7、d8、d10、d11、d12の深さ(根ノードから葉ノードに到達するまでの深さ)を用いてスコアを算出する。
このように、本実施の形態にかかる異常検知装置では、特徴に偏りのあるデータ(つまり、POST率が高いドメインd10、d11、d12のデータ)を、大域木構造のグループ(葉ノード)55に振り分けることができる(図11参照)。また、他のデータについても大域木構造の他のグループ(葉ノード)53、54に振り分けることができる。そして、各々のグループ53~55に対して局所木構造をそれぞれ作成している。よって、各々のグループ53~55において外れ値を検知することができる。
すなわち、本実施の形態にかかる異常検知装置では、特徴に偏りのあるデータを大域木構造のグループ(葉ノード)に振り分けているので、特徴に偏りのあるデータが短絡的に外れ値と判定されることを抑制することができる。換言すると、図11、図12に示す例では、POST率の高いグループを、大域木構造の葉ノード55に作成している。そして、このPOST率の高いグループ(葉ノード)55に対して局所木構造を作成することで、POST率が高いデータの中での外れ値を検知することができる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、本発明にかかる異常検知装置1、2は、スコア算出部13を複数備える構成としてもよい。複数のスコア算出部13を設けた場合は、複数のスコア算出部13で算出されたスコアの統計量(つまり、複数のデータの異常の程度を示すスコアの統計量)を、異常を示すスコアとしてもよい。この場合は、多数のデータに対して、様々な視点から異常を検知することができる。
上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、異常検知処理を、プロセッサであるCPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。
すなわち、複数のデータを複数のグループに分割するための大域木構造を作成し、複数のグループの各々に分割されたデータを複数のグループ毎に更に分割するための局所木構造を作成する。そして、局所木構造の根ノードから葉ノードに到達するまでの深さを用いて、複数のデータの異常の程度を示すスコアを算出する。このような異常検知処理を実行するためのプログラムを、コンピュータに実行させてもよい。
図13は、本発明にかかる異常検知処理用プログラムを実行するためのコンピュータを示すブロック図である。図13に示すように、コンピュータ90は、プロセッサ91およびメモリ92を備える。メモリ92には異常検知処理用のプログラムが格納されている。プロセッサ91は、メモリ92から異常検知処理用のプログラムを読み出す。そして、プロセッサ91において異常検知処理用のプログラムを実行することで、上述した本発明にかかる異常検知処理を実行することができる。
上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
以上、本発明を上記実施の形態に即して説明したが、本発明は上記実施の形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。
1、2 異常検知装置
11 大域木構造作成部
12 局所木構造作成部
13 スコア算出部
14 サンプリング部
15 データ変換部
16 特徴データ格納部
21 大域分割部
22 局所分割部
31 プロキシサーバ
32 プロキシログ格納部
90 コンピュータ
91 プロセッサ
92 メモリ

Claims (9)

  1. Isolation Forestアルゴリズムを用いた異常検知装置であって、
    複数のデータを複数のグループに分割するための第1の二分木構造を作成する第1の二分木構造作成部と、
    前記第1の二分木構造を用いて前記複数のグループの各々に分割されたデータを前記複数のグループ毎に更に分割するための第2の二分木構造を作成する第2の二分木構造作成部と、
    前記第2の二分木構造の根ノードから葉ノードに到達するまでの深さを用いて、前記複数のデータの異常の程度を示すスコアを算出するスコア算出部と、を備え
    前記第1の二分木構造作成部は、前記各々のグループに属するデータの数が所定の閾値以上となるように前記複数のデータを前記複数のグループに分割して前記第1の二分木構造を作成する、
    異常検知装置。
  2. 前記スコア算出部は、
    前記第1の二分木構造作成部で作成された前記第1の二分木構造を用いて前記複数のデータを前記複数のグループに分割する第1のデータ分割部と、
    前記第2の二分木構造作成部で作成された前記第2の二分木構造を用いて、前記複数のグループの各々に分割された前記データを前記複数のグループ毎に更に分割する第2のデータ分割部と、を更に備え、
    前記第2のデータ分割部で分割されたデータの根ノードから葉ノードに到達するまでの深さをスコアとして算出する、
    請求項1に記載の異常検知装置。
  3. 前記第1の二分木構造の葉ノードが前記第2の二分木構造の根ノードに対応している、請求項1または2に記載の異常検知装置。
  4. 前記各々のグループに分割されたデータから同じ数のデータを抽出するサンプリング部を更に備え、
    前記第2の二分木構造作成部は、前記サンプリング部で抽出された前記各々のグループに属する同じ数のデータに対して前記第2の二分木構造を作成する、請求項1~のいずれか一項に記載の異常検知装置。
  5. 前記第1の二分木構造作成部は、前記複数のデータの全てを用いて前記第1の二分木構造を作成する、請求項1~のいずれか一項に記載の異常検知装置。
  6. 前記複数のデータは、多数派のデータ群と少数派のデータ群とを備える偏りのあるデータであり、
    前記第1の二分木構造作成部は、前記少数派のデータ群が前記第1の二分木構造の葉ノードである所定のグループに含まれるように前記第1の二分木構造を作成する、
    請求項1~のいずれか一項に記載の異常検知装置。
  7. 前記異常検知装置は、前記スコア算出部を複数備えており、
    前記複数のスコア算出部で算出された前記複数のデータの異常の程度を示すスコアの統計量を異常を示すスコアとする、
    請求項1~のいずれか一項に記載の異常検知装置。
  8. Isolation Forestアルゴリズムを用いた異常検知方法であって、
    コンピュータが、
    複数のデータを複数のグループに分割するための第1の二分木構造を作成し、
    前記第1の二分木構造を用いて前記複数のグループの各々に分割されたデータを前記複数のグループ毎に更に分割するための第2の二分木構造を作成し、
    前記第2の二分木構造の根ノードから葉ノードに到達するまでの深さを用いて、前記複数のデータの異常の程度を示すスコアを算出し、
    前記第1の二分木構造を作成する際に、前記各々のグループに属するデータの数が所定の閾値以上となるように前記複数のデータを前記複数のグループに分割して前記第1の二分木構造を作成する、
    異常検知方法。
  9. Isolation Forestアルゴリズムを用いた異常検知処理をコンピュータに実行させるためのプログラムであって、
    複数のデータを複数のグループに分割するための第1の二分木構造を作成し、
    前記第1の二分木構造を用いて前記複数のグループの各々に分割されたデータを前記複数のグループ毎に更に分割するための第2の二分木構造を作成し、
    前記第2の二分木構造の根ノードから葉ノードに到達するまでの深さを用いて、前記複数のデータの異常の程度を示すスコアを算出し、
    前記第1の二分木構造を作成する際に、前記各々のグループに属するデータの数が所定の閾値以上となるように前記複数のデータを前記複数のグループに分割して前記第1の二分木構造を作成する、異常検知処理をコンピュータに実行させるためのプログラム。
JP2021501257A 2019-02-22 2019-02-22 異常検知装置、異常検知方法、及びプログラム Active JP7306446B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/006790 WO2020170425A1 (ja) 2019-02-22 2019-02-22 異常検知装置、異常検知方法、及びコンピュータ可読媒体

Publications (2)

Publication Number Publication Date
JPWO2020170425A1 JPWO2020170425A1 (ja) 2021-12-23
JP7306446B2 true JP7306446B2 (ja) 2023-07-11

Family

ID=72143804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021501257A Active JP7306446B2 (ja) 2019-02-22 2019-02-22 異常検知装置、異常検知方法、及びプログラム

Country Status (3)

Country Link
US (1) US11934563B2 (ja)
JP (1) JP7306446B2 (ja)
WO (1) WO2020170425A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170199902A1 (en) 2016-01-07 2017-07-13 Amazon Technologies, Inc. Outlier detection for streaming data
US10045218B1 (en) 2016-07-27 2018-08-07 Argyle Data, Inc. Anomaly detection in streaming telephone network data
JP2019020124A (ja) 2017-07-11 2019-02-07 富士通株式会社 異常検出プログラム、異常検出方法、及び情報処理装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1096942C (zh) * 1995-05-01 2002-12-25 鲍德温·格拉菲克系统有限公司 就地浸渍和印刷机上浸渍清洁系统及其使用方法
US9412024B2 (en) * 2013-09-13 2016-08-09 Interra Systems, Inc. Visual descriptors based video quality assessment using outlier model
JP6782679B2 (ja) 2016-12-06 2020-11-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 情報処理装置、情報処理方法及びプログラム
US11710033B2 (en) * 2018-06-12 2023-07-25 Bank Of America Corporation Unsupervised machine learning system to automate functions on a graph structure
US20190378049A1 (en) * 2018-06-12 2019-12-12 Bank Of America Corporation Ensemble of machine learning engines coupled to a graph structure that spreads heat

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170199902A1 (en) 2016-01-07 2017-07-13 Amazon Technologies, Inc. Outlier detection for streaming data
US10045218B1 (en) 2016-07-27 2018-08-07 Argyle Data, Inc. Anomaly detection in streaming telephone network data
JP2019020124A (ja) 2017-07-11 2019-02-07 富士通株式会社 異常検出プログラム、異常検出方法、及び情報処理装置

Also Published As

Publication number Publication date
WO2020170425A1 (ja) 2020-08-27
US20220147658A1 (en) 2022-05-12
US11934563B2 (en) 2024-03-19
JPWO2020170425A1 (ja) 2021-12-23

Similar Documents

Publication Publication Date Title
US9866573B2 (en) Dynamic malicious application detection in storage systems
US9405589B2 (en) System and method of optimization of in-memory data grid placement
US10594573B2 (en) Systems and methods for rule quality estimation
JP2020155098A (ja) コンピュータネットワークにおける攻撃経路を予測するための方法およびシステム
WO2014037767A1 (en) Multi-level inline data deduplication
US11249987B2 (en) Data storage in blockchain-type ledger
WO2016206605A1 (zh) 一种客户端数据的采集方法和装置
CN111183620B (zh) 入侵调查
US10282239B2 (en) Monitoring method
WO2014204470A1 (en) Generating a fingerprint representing a response of an application to a simulation of a fault of an external service
JP7306446B2 (ja) 異常検知装置、異常検知方法、及びプログラム
US11223641B2 (en) Apparatus and method for reconfiguring signature
US10977150B2 (en) Data analysis
CN113590447B (zh) 埋点处理方法和装置
CN114912111A (zh) 一种云主机病毒检测方法、装置和系统
US20210092159A1 (en) System for the prioritization and dynamic presentation of digital content
CN113746920A (zh) 一种数据转发方法、装置、电子设备及计算机可读存储介质
CN105657473A (zh) 数据处理的方法和装置
JP6580535B2 (ja) 開発支援システム及び方法
CN117056133B (zh) 一种基于分布式物联网架构的数据备份方法、装置及介质
JP7302668B2 (ja) レベル推定装置、レベル推定方法、および、レベル推定プログラム
CN114650252B (zh) 基于企业服务总线的路由方法、装置及计算机设备
US20210135683A1 (en) Method, electronic device and computer program product for processing data
CN115879166A (zh) 数据识别方法、装置、电子设备以及存储介质
CN113946702A (zh) 图像特征的存储方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210804

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230314

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: 20230530

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230612

R151 Written notification of patent or utility model registration

Ref document number: 7306446

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151