JP6823501B2 - Anomaly detection device, anomaly detection method and program - Google Patents

Anomaly detection device, anomaly detection method and program Download PDF

Info

Publication number
JP6823501B2
JP6823501B2 JP2017040589A JP2017040589A JP6823501B2 JP 6823501 B2 JP6823501 B2 JP 6823501B2 JP 2017040589 A JP2017040589 A JP 2017040589A JP 2017040589 A JP2017040589 A JP 2017040589A JP 6823501 B2 JP6823501 B2 JP 6823501B2
Authority
JP
Japan
Prior art keywords
unit
abnormality
data
learning
degree
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
JP2017040589A
Other languages
Japanese (ja)
Other versions
JP2018147172A (en
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2017040589A priority Critical patent/JP6823501B2/en
Publication of JP2018147172A publication Critical patent/JP2018147172A/en
Application granted granted Critical
Publication of JP6823501B2 publication Critical patent/JP6823501B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Testing And Monitoring For Control Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、異常検知装置、異常検知方法及びプログラムに関する。 The present invention relates to an abnormality detection device, an abnormality detection method and a program.

リアルタイムな異常検知においては、様々なデータを定期的に観測し、データが正常時と異なる傾向を示した場合に「異常」が検知される。ここで、異常検知アルゴリズムは、予め正常時として定義された「学習期間」のデータを教師データとして用いて学習を行い、異常検知を行う「テスト期間」においては、観測されたテストデータと、学習した教師データの傾向の比較を行うものとする。このような異常検知アルゴリズムとしては、正常時における各種データの相関関係を学習し、テスト期間においては、学習したデータの相関関係が崩れた際に「異常」と判断するようなアルゴリズムが提案されている(例えば、非特許文献1、非特許文献2、非特許文献3)。 In real-time abnormality detection, various data are regularly observed, and "abnormality" is detected when the data shows a tendency different from the normal state. Here, the anomaly detection algorithm learns by using the data of the "learning period" defined in advance as normal as the teacher data, and in the "test period" in which the abnormality is detected, the observed test data and the learning The tendency of the teacher data is compared. As such an abnormality detection algorithm, an algorithm has been proposed that learns the correlation of various data in the normal state and determines "abnormal" when the correlation of the learned data is broken during the test period. (For example, Non-Patent Document 1, Non-Patent Document 2, Non-Patent Document 3).

このようなアルゴリズムは、異常か否かを判定することが困難な異常時のデータを用いることなく、正常時のデータだけを用いて異常検知ができるという利点がある。 Such an algorithm has an advantage that abnormality detection can be performed using only normal data without using abnormal data, which is difficult to determine whether or not it is abnormal.

Hodge, Victoria J., and Jim Austin. "A survey of outlier detection methodologies." Artificial intelligence review 22.2 (2004): 85-126.Hodge, Victoria J., and Jim Austin. "A survey of outlier detection methodologies." Artificial intelligence review 22.2 (2004): 85-126. 櫻田 麻由,矢入 健久,"オートエンコーダを用いた次元削減による宇宙機の異常検知", 人工知能学会全国大会論文集 28, 1-3, 2014Mayu Sakurada, Takehisa Yairi, "Anomaly Detection of Spacecraft by Dimensionality Reduction Using Autoencoder", Proceedings of the Japanese Society for Artificial Intelligence National Convention 28, 1-3, 2014 Ringberg, Haakon, et al. "Sensitivity of PCA for traffic anomaly detection." ACM SIGMETRICS Performance Evaluation Review 35.1 (2007): 109-120.Ringberg, Haakon, et al. "Sensitivity of PCA for traffic anomaly detection." ACM SIGMETRICS Performance Evaluation Review 35.1 (2007): 109-120.

しかしながら、相関が低いデータが入力に多く含まれると、それに従って正常時にデータが取り得る状態のパターンも組合せ的に増加するため、学習に要する教師データが増加し、十分な教師データが無い場合に精度の良い異常検知が困難になる。特に、観測対象となるデータの種別が増加した場合、相関が低いデータが増加することから、このような問題はより顕著となる。 However, when a large amount of data with low correlation is included in the input, the pattern of the state in which the data can be obtained at normal times also increases in combination, so that the teacher data required for learning increases and there is not enough teacher data. Accurate abnormality detection becomes difficult. In particular, when the types of data to be observed increase, the number of data with low correlation increases, so that such a problem becomes more remarkable.

本発明は、上記の点に鑑みてなされたものであって、異常を検知するための学習に要するデータの増加を抑制することを目的とする。 The present invention has been made in view of the above points, and an object of the present invention is to suppress an increase in data required for learning to detect an abnormality.

そこで上記課題を解決するため、異常検知装置は、異常の検知対象が正常である場合に前記検知対象から得られる複数の種別のデータのデータ要素間の相関関係を、前記データ要素間の相関の高さに基づいて分類される単位ごとに、当該単位に関して生成される複数の学習器を用いて学習し、学習結果を出力する学習部と、前記検知対象から複数のタイミングで得られる複数の種別のデータのデータ要素群について、前記単位ごとに、当該単位に係る学習結果に基づいて、当該単位に分類されるデータ要素群の相関関係の崩れの程度を示す異常度を算出し、前記単位ごとの異常度に基づいて前記検知対象の異常を検知する検知部と、を有する。 Therefore, in order to solve the above problem, the abnormality detection device determines the correlation between the data elements of a plurality of types of data obtained from the detection target when the abnormality detection target is normal, and the correlation between the data elements. For each unit classified based on height, a learning unit that learns using a plurality of learning devices generated for the unit and outputs the learning result, and a plurality of types obtained from the detection target at a plurality of timings. For each of the data element groups of the data of, based on the learning result related to the unit, the degree of anomaly indicating the degree of collapse of the correlation of the data element group classified into the unit is calculated, and for each of the units. It has a detection unit that detects an abnormality of the detection target based on the degree of abnormality of.

異常を検知するための学習に要するデータの増加を抑制することができる。 It is possible to suppress an increase in data required for learning to detect an abnormality.

第1の実施の形態におけるシステム構成例を示す図である。It is a figure which shows the system configuration example in 1st Embodiment. 第1の実施の形態における異常検知装置10のハードウェア構成例を示す図である。It is a figure which shows the hardware configuration example of the abnormality detection apparatus 10 in 1st Embodiment. 第1の実施の形態における異常検知装置10の機能構成例を示す図である。It is a figure which shows the functional configuration example of the abnormality detection apparatus 10 in the 1st Embodiment. 第1の実施の形態における学習処理の処理手順の一例を説明するためのフローチャートである。It is a flowchart for demonstrating an example of the processing procedure of the learning process in 1st Embodiment. 第1の実施の形態における検知処理の処理手順の一例を説明するためのフローチャートである。It is a flowchart for demonstrating an example of the processing procedure of the detection process in 1st Embodiment. オートエンコーダを説明するための図である。It is a figure for demonstrating an autoencoder. 第6の実施の形態において前処理部13が追加的に実行する処理手順を説明するためのフローチャートである。6 is a flowchart for explaining a processing procedure additionally executed by the preprocessing unit 13 in the sixth embodiment.

以下、図面に基づいて本発明の実施の形態を説明する。図1は、第1の実施の形態におけるシステム構成例を示す図である。図1において、ネットワークN1は、異常の検知対象とされるネットワークである。ネットワークN1は、ルータやサーバ装置等の複数のノードが相互に接続されることによって構成され、所定のサービスを提供するために任意のノード間においてパケットの送受信が行われる。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a diagram showing an example of a system configuration according to the first embodiment. In FIG. 1, the network N1 is a network for which an abnormality is detected. The network N1 is configured by connecting a plurality of nodes such as routers and server devices to each other, and packets are transmitted and received between arbitrary nodes in order to provide a predetermined service.

ネットワークN1の複数箇所には測定装置20が配置されている。測定装置20は、配置箇所を監視することで得られる観測データを複数のタイミングで採取する。収集される観測データの一例として、MIB(Management Information Base)データ、NetFlowによるフローデータ、CPU使用率等が挙げられる。 Measuring devices 20 are arranged at a plurality of locations in the network N1. The measuring device 20 collects observation data obtained by monitoring the arrangement location at a plurality of timings. Examples of collected observation data include MIB (Management Information Base) data, NetFlow flow data, CPU usage rate, and the like.

MIBは、ネットワーク機器を監視するためのメーカ間の共通ポリシーである。MIBデータは、例えば、5分単位で集約され、「時刻、ホスト名、インターフェース(IF)名、入力データ量(ibps)、出力データ量(obps)」等を含む。 MIB is a common policy among manufacturers for monitoring network devices. The MIB data is aggregated in units of 5 minutes, for example, and includes "time, host name, interface (IF) name, input data amount (ibps), output data amount (obps)", and the like.

NetFlowは、フロー単位でのネットワーク監視をおこなう技術であり、通信が終了した段階でそのフローに関する情報が出力される。また、フローとは、「何処」と「何処」が「どのような通信」を「どれだけの量」行っているかを把握するための単位をいい、通信の送り手側のIPアドレス(srcIP)、送り手側のポート番号(srcport)、受け手側のIPアドレス(dstIP)、受け手側のポート番号(dstport)、通信プロトコル(proto)の5属性によりまとめられる。フローデータは、「フロー開始時刻、srcIP、srcport、dstIP、dstport、proto、フロー継続時間、総送信パケット数、総送信バイト数」等を含む。 NetFlow is a technology that monitors the network in units of flows, and information about the flow is output when communication is completed. A flow is a unit for grasping "where" and "where" are performing "what kind of communication" and "how much", and is an IP address (srcIP) on the sender side of communication. , Port number on the sender side (srcport), IP address on the receiver side (dstIP), port number on the receiver side (dstport), and communication protocol (proto). The flow data includes "flow start time, srcIP, srcport, dstIP, dstport, proto, flow duration, total number of transmitted packets, total number of transmitted bytes" and the like.

CPU使用率は、例えば、ネットワークN1に含まれるサーバ装置又はルータ等のCPUの使用率である。 The CPU usage rate is, for example, the usage rate of a CPU such as a server device or a router included in the network N1.

測定装置20によって採取された観測データは、異常検知装置10によって収集される。異常検知装置10は、収集された観測データから、正常時の特徴を学習し、学習結果に基づいて、その後に入力される観測データについて、異常の発生を検知する(異常の有無を判定する)コンピュータである。なお、正常時の特徴の学習が行われる処理を「学習処理」という。学習処理において学習された結果に基づいて異常の検知が行われる処理を「テスト処理」という。 The observation data collected by the measuring device 20 is collected by the abnormality detecting device 10. The abnormality detection device 10 learns the characteristics at the normal time from the collected observation data, and detects the occurrence of an abnormality in the observation data input thereafter based on the learning result (determines the presence or absence of the abnormality). It is a computer. The process in which the characteristics in the normal state are learned is called "learning process". The process in which an abnormality is detected based on the result learned in the learning process is called "test process".

図2は、第1の実施の形態における異常検知装置10のハードウェア構成例を示す図である。図2の異常検知装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。 FIG. 2 is a diagram showing a hardware configuration example of the abnormality detection device 10 according to the first embodiment. The abnormality detection device 10 of FIG. 2 has a drive device 100, an auxiliary storage device 102, a memory device 103, a CPU 104, an interface device 105, and the like, which are connected to each other by a bus B, respectively.

異常検知装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。 The program that realizes the processing in the abnormality detection device 10 is provided by a recording medium 101 such as a CD-ROM. When the recording medium 101 storing the program is set in the drive device 100, the program is installed in the auxiliary storage device 102 from the recording medium 101 via the drive device 100. However, the program does not necessarily have to be installed from the recording medium 101, and may be downloaded from another computer via the network. The auxiliary storage device 102 stores the installed program and also stores necessary files, data, and the like.

メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って異常検知装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。 The memory device 103 reads and stores the program from the auxiliary storage device 102 when the program is instructed to start. The CPU 104 executes the function related to the abnormality detection device 10 according to the program stored in the memory device 103. The interface device 105 is used as an interface for connecting to a network.

図3は、第1の実施の形態における異常検知装置10の機能構成例を示す図である。図3において、異常検知装置10は、受信部11、学習処理制御部12、前処理部13、学習部14、検知処理制御部15及び検知部16等を有する。これら各部は、異常検知装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。異常検知装置10は、また、教師データ記憶部121、パラメータ記憶部122、観測データ記憶部123、学習結果記憶部124及び学習データ記憶部125等を利用する。これら各記憶部は、例えば、補助記憶装置102、又は異常検知装置10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。 FIG. 3 is a diagram showing a functional configuration example of the abnormality detection device 10 according to the first embodiment. In FIG. 3, the abnormality detection device 10 includes a receiving unit 11, a learning processing control unit 12, a preprocessing unit 13, a learning unit 14, a detection processing control unit 15, a detection unit 16, and the like. Each of these parts is realized by a process of causing the CPU 104 to execute one or more programs installed in the abnormality detection device 10. The abnormality detection device 10 also uses the teacher data storage unit 121, the parameter storage unit 122, the observation data storage unit 123, the learning result storage unit 124, the learning data storage unit 125, and the like. Each of these storage units can be realized by using, for example, a storage device that can be connected to the auxiliary storage device 102 or the abnormality detection device 10 via a network.

教師データ記憶部121には、予め正常時に収集されたことが確認されている観測データが教師データとして記憶されている。但し、教師データは、観測データから選別されるのではなく、人為的に作成されてもよい。 The teacher data storage unit 121 stores observation data that has been confirmed to have been collected in the normal state in advance as teacher data. However, the teacher data may be artificially created instead of being selected from the observation data.

受信部11は、測定装置20から観測データを受信する。受信された観測データは、観測データ記憶部123に記憶される
学習処理制御部12は、学習処理を制御する。
The receiving unit 11 receives the observation data from the measuring device 20. The received observation data is stored in the observation data storage unit 123. The learning processing control unit 12 controls the learning process.

前処理部13は、教師データの集合、観測データの集合、又は学習データ記憶部125に記憶されている学習データの集合について前処理を実行する。前処理とは、データ集合からの単位時間ごとの特徴量の抽出や、抽出された特徴量の正規化等の処理である。特徴量は、数値ベクトルの形式で表現される。なお、1回目の学習時には、教師データ記憶部121に記憶されている教師データ群が前処理の対象とされる。受信部11によって観測データの受信が開始されると、観測データ群が前処理の対象とされる。更に、検知部16による異常の検知が開始され、正常であると判定され、学習データとして学習データ記憶部125に記憶された観測データが所定数に達すると、当該学習データ群が前処理の対象とされる。 The pre-processing unit 13 executes pre-processing on a set of teacher data, a set of observation data, or a set of learning data stored in the learning data storage unit 125. The pre-processing is processing such as extraction of feature quantities for each unit time from a data set and normalization of the extracted feature quantities. Features are expressed in the form of numerical vectors. At the time of the first learning, the teacher data group stored in the teacher data storage unit 121 is targeted for preprocessing. When the reception unit 11 starts receiving the observation data, the observation data group is subject to preprocessing. Further, when the detection unit 16 starts detecting an abnormality, determines that it is normal, and reaches a predetermined number of observation data stored in the learning data storage unit 125 as learning data, the learning data group is subject to preprocessing. It is said that.

前処理部13は、また、教師データ群又は学習データ群について前処理を実行する際に、観測データ又は学習データを正規化するためのパラメータ(以下、「正規化パラメータ」という。)を生成又は更新し、生成又は更新された正規化パラメータをパラメータ記憶部122に記憶する。 The preprocessing unit 13 also generates or generates a parameter for normalizing the observation data or the training data (hereinafter, referred to as “normalization parameter”) when executing the preprocessing for the teacher data group or the training data group. The updated and generated or updated normalized parameters are stored in the parameter storage unit 122.

学習部14は、教師データ又は学習データに基づいて学習を実行する。学習部14による学習結果は、学習結果記憶部124に記憶される。 The learning unit 14 executes learning based on the teacher data or the learning data. The learning result by the learning unit 14 is stored in the learning result storage unit 124.

検知処理制御部15は、検知処理を制御する。 The detection process control unit 15 controls the detection process.

検知部16は、観測データ記憶部123に記憶されている観測データが前処理部13によって前処理されることで生成される数値ベクトルと、学習結果記憶部124に記憶されている学習結果とに基づいて異常の発生を検知する。具体的には、検知部16は、前処理された数値ベクトルについて、学習結果との違いを異常度として算出し、当該異常度を閾値と比較することで異常の発生を検知する。異常が検知されなかった数値ベクトルの正規化前の値は、学習データとして学習データ記憶部125に記憶される。 The detection unit 16 uses a numerical vector generated by preprocessing the observation data stored in the observation data storage unit 123 by the preprocessing unit 13 and a learning result stored in the learning result storage unit 124. Detect the occurrence of anomalies based on. Specifically, the detection unit 16 calculates the difference from the learning result of the preprocessed numerical vector as the degree of abnormality, and detects the occurrence of the abnormality by comparing the degree of abnormality with the threshold value. The value before normalization of the numerical vector in which no abnormality is detected is stored in the learning data storage unit 125 as learning data.

以下、異常検知装置10が実行する処理手順について説明する。図4は、第1の実施の形態における学習処理の処理手順の一例を説明するためのフローチャートである。なお、以下においては、便宜上、フローデータが処理対象である例について示す。 Hereinafter, the processing procedure executed by the abnormality detection device 10 will be described. FIG. 4 is a flowchart for explaining an example of the processing procedure of the learning process according to the first embodiment. In the following, for convenience, an example in which the flow data is the processing target will be shown.

学習処理が開始されると、学習処理制御部12は、教師データ記憶部121から教師データ群を取得し、当該教師データ群を前処理部13へ入力する(S101)。 When the learning process is started, the learning process control unit 12 acquires the teacher data group from the teacher data storage unit 121 and inputs the teacher data group to the preprocessing unit 13 (S101).

続いて、前処理部13は、入力された教師データ群を、単位時間ごとの集合に分割する(S102)。なお、教師データ記憶部121には、単位時間×Uの期間(以下、「学習期間」という。)分の教師データが記憶されていることとする。したがって、教師データ群は、U個の集合に分割される。 Subsequently, the preprocessing unit 13 divides the input teacher data group into a set for each unit time (S102). It is assumed that the teacher data storage unit 121 stores teacher data for a period of unit time × U (hereinafter, referred to as “learning period”). Therefore, the teacher data group is divided into U sets.

続いて、前処理部13は、分割された集合ごとに、目的に応じた特徴量を抽出し、抽出された特徴量を各次元の要素とする多次元数値ベクトルを生成する(S103)。 Subsequently, the preprocessing unit 13 extracts a feature amount according to a purpose for each divided set, and generates a multidimensional numerical vector having the extracted feature amount as an element of each dimension (S103).

例えば、単位時間が1分で、前処理部13が、1分間ごとの特徴量を抽出するとする。また、特徴量を、各プロトコル(TCP、UDP)の全送信バイト数であるとする。この場合、先頭の教師データのフロー開始時刻が12:00:00であるとすると、前処理部13は、全教師データのうち、フロー開始時刻tが11:59:00<=t<12:00:00であるような教師データ(フローデータ)の集合について、プロトコルがTCPである全フローの全送信バイト数、プロトコルがUDPである全フローの全送信バイト数等を計算し、それらの特徴量を各次元の要素とする2次元数値ベクトルを生成する。(U−1)個の他の集合についても同様に、数値ベクトルが生成される。 For example, suppose that the unit time is 1 minute and the preprocessing unit 13 extracts the feature amount for each minute. Further, it is assumed that the feature amount is the total number of transmitted bytes of each protocol (TCP, UDP). In this case, assuming that the flow start time of the first teacher data is 12:00:00, the preprocessing unit 13 has the flow start time t of 11:59:00 <= t <12: of all the teacher data. For a set of teacher data (flow data) such as 00:00, the total number of transmitted bytes of all flows whose protocol is TCP, the total number of transmitted bytes of all flows whose protocol is UDP, etc. are calculated, and their characteristics. Generate a two-dimensional numerical vector with a quantity as an element of each dimension. Similarly, numerical vectors are generated for (U-1) other sets.

なお、特徴量の属性としては、「TCPかつ送信ポート番号が80」のような組合せとして指定することも可能である。また、各フローが「フロー数:1」のような値を持つと見なせば、各属性を持つフローの総フロー数についても同様に計算し、特徴量としてみなすことが可能である。 The feature amount attribute can also be specified as a combination such as "TCP and transmission port number is 80". Further, if it is considered that each flow has a value such as "number of flows: 1", the total number of flows of the flows having each attribute can be calculated in the same manner and regarded as a feature amount.

続いて、前処理部13は、各数値ベクトルにおける各メトリックi(各次元i)の最大値xmax_iを算出し、算出したxmax_1をパラメータ記憶部122に記憶する(S104)。すなわち、第1の実施の形態において、各メトリックiの最大値xmax_iが、正規化パラメータである。 Subsequently, the preprocessing unit 13 calculates the maximum value xmax_i of each metric i (each dimension i) in each numerical vector, and stores the calculated xmax_1 in the parameter storage unit 122 (S104). That is, in the first embodiment, the maximum value xmax_i of each metric i is a normalization parameter.

ここで、U=3とする。また、ステップS103において生成された数値ベクトルが{{80,20},{90,35},{100,50}}であるとする。これは、或る3分におけるTCPの総送信バイト数及びUDPの総送信バイト数がそれぞれ「TCP:80byte,UDP:20byte」、「TCP:90byte,UDP:35byte」、「TCP:100byte,UDP:50byte」であったことを示す。この場合、これらの数値ベクトルの各メトリックの最大値xmax_iは、{100,50}である(すなわち、xmax_1=100,xmax_2=50である)。 Here, U = 3. Further, it is assumed that the numerical vectors generated in step S103 are {{80,20}, {90,35}, {100,50}}. This is because the total number of transmitted bytes of TCP and the total number of transmitted bytes of UDP in a certain 3 minutes are "TCP: 80 bytes, UDP: 20 bytes", "TCP: 90 bytes, UDP: 35 bytes", "TCP: 100 bytes, UDP:", respectively. It shows that it was "50 bytes". In this case, the maximum value xmax_i of each metric of these numerical vectors is {100,50} (that is, xmax_1 = 100, xmax_2 = 50).

続いて、前処理部13は、正規化パラメータに基づいて、各数値ベクトルを正規化する(S105)。正規化は、各数値ベクトルのメトリックiの値が最大値xmax_iによって除されることにより行われる。したがって、正規化された数値ベクトルは、{{0.8,0.4},{0.9,0.7},{1,1}}となる。 Subsequently, the preprocessing unit 13 normalizes each numerical vector based on the normalization parameter (S105). Normalization is performed by dividing the value of the metric i of each numerical vector by the maximum value xmax_i. Therefore, the normalized numerical vectors are {{0.8, 0.4}, {0.9, 0.7}, {1,1}}.

続いて、学習部14は、当該数値ベクトルについて学習器を利用して学習する(S106)。学習結果は、学習結果記憶部124に記憶される。 Subsequently, the learning unit 14 learns the numerical vector using the learner (S106). The learning result is stored in the learning result storage unit 124.

続いて、学習処理制御部12は、学習データ記憶部125に、学習期間分の学習データが記憶(蓄積)されるのを待機する(S107)。すなわち、U個の正規化前の数値ベクトルが学習データ記憶部125に記憶されるまで待機が継続する。なお、学習データ記憶部125には、検知部16によって正常である(異常が発生していない)と判定された数値ベクトルが記憶される。 Subsequently, the learning processing control unit 12 waits for the learning data storage unit 125 to store (accumulate) the learning data for the learning period (S107). That is, the standby continues until U unnormalized numerical vectors are stored in the learning data storage unit 125. The learning data storage unit 125 stores a numerical vector determined to be normal (no abnormality has occurred) by the detection unit 16.

学習期間分の数値ベクトルが学習データ記憶部125に記憶されると(S107でYes)、学習処理制御部12は、学習データ記憶部125から数値ベクトル群を取得し、当該数値ベクトル群を前処理部13へ入力する(S108)。なお、取得された数値ベクトル群は、学習データ記憶部125から削除される。続いて、当該数値ベクトル群について、ステップS104以降が実行される。したがって、次のステップS105では、新たに計算されるxmax_iに基づいて正規化が行われる。 When the numerical vectors for the learning period are stored in the learning data storage unit 125 (Yes in S107), the learning processing control unit 12 acquires the numerical vector group from the learning data storage unit 125 and preprocesses the numerical vector group. Input to unit 13 (S108). The acquired numerical vector group is deleted from the learning data storage unit 125. Subsequently, steps S104 and subsequent steps are executed for the numerical vector group. Therefore, in the next step S105, normalization is performed based on the newly calculated xmax_i.

図5は、第1の実施の形態における検知処理の処理手順の一例を説明するためのフローチャートである。図5の処理手順は、図4のステップS106が少なくとも1回実行された後であれば、いつ開始されてもよい。すなわち、図5の処理手順は、図4の処理手順と並行して実行される。 FIG. 5 is a flowchart for explaining an example of the processing procedure of the detection process according to the first embodiment. The processing procedure of FIG. 5 may be started at any time after step S106 of FIG. 4 has been executed at least once. That is, the processing procedure of FIG. 5 is executed in parallel with the processing procedure of FIG.

ステップS201において、検知処理制御部15は、単位時間の経過を待機する。当該単位時間は、図4の説明における単位時間と同じ時間長である。この待機中に、リアルタイムに収集され、受信部11によって受信された観測データは観測データ記憶部123に記憶される
単位時間が経過すると(S201でYes)、検知処理制御部15は、直近の単位時間分の観測データ群を観測データ記憶部123から取得し、当該観測データ群を前処理部13へ入力する(S202)。
In step S201, the detection processing control unit 15 waits for the elapse of the unit time. The unit time is the same time length as the unit time in the description of FIG. During this standby, the observation data collected in real time and received by the receiving unit 11 is stored in the observation data storage unit 123. When the unit time elapses (Yes in S201), the detection processing control unit 15 has the latest unit. The observation data group for the time is acquired from the observation data storage unit 123, and the observation data group is input to the preprocessing unit 13 (S202).

続いて、前処理部13は、当該観測データ群から目的に応じた特徴量を抽出し、抽出された特徴量を各次元の要素とする多次元数値ベクトルを生成する(S203)。例えば、プロトコルがTCPである全フローの全送信バイト数、プロトコルがUDPである全フローの全送信バイト数が抽出され、これらを各次元の要素とする2次元数値ベクトルが生成される。ここでは、1つの数値ベクトルが生成される。 Subsequently, the preprocessing unit 13 extracts a feature amount according to the purpose from the observation data group, and generates a multidimensional numerical vector having the extracted feature amount as an element of each dimension (S203). For example, the total number of transmitted bytes of all flows whose protocol is TCP and the total number of transmitted bytes of all flows whose protocol is UDP are extracted, and a two-dimensional numerical vector having these as elements of each dimension is generated. Here, one numerical vector is generated.

続いて、前処理部13は、生成された数値ベクトルを、パラメータ記憶部122に記憶されている最大値xmax_iに基づいて正規化する(S204)。すなわち、当該数値ベクトルの各メトリックiが、最大値xmax_iによって除算される。 Subsequently, the preprocessing unit 13 normalizes the generated numerical vector based on the maximum value xmax_i stored in the parameter storage unit 122 (S204). That is, each metric i of the numerical vector is divided by the maximum value xmax_i.

例えば、図4のステップS104が上記の教師データに基づいて1回のみ実行されている場合、最大値xmax_iは、{100,50}である。したがって、当該数値ベクトルが{60,40}である場合、当該数値ベクトルは、{0.6,0.8}に正規化される。 For example, when step S104 of FIG. 4 is executed only once based on the above teacher data, the maximum value xmax_i is {100,50}. Therefore, when the numerical vector is {60,40}, the numerical vector is normalized to {0.6,0.8}.

続いて、検知部16は、異常判定処理を実行する(S205)。異常判定処理では、正規化された数値ベクトルと、学習結果記憶部124に記憶されている最新の学習結果とに基づいて、ネットワークN1について異常の有無が判定される。 Subsequently, the detection unit 16 executes the abnormality determination process (S205). In the abnormality determination process, the presence or absence of an abnormality in the network N1 is determined based on the normalized numerical vector and the latest learning result stored in the learning result storage unit 124.

異常が無いと判定された場合(S206でYes)、検知処理制御部15は、当該数値ベクトルの正規化前の数値ベクトルを、学習データとして学習データ記憶部125に記憶する(S207)。異常が有ると判定された場合(S206でNo)、当該数値ベクトルの正規化前の数値ベクトルは、学習データ記憶部125に記憶されない。したがって、学習データ記憶部125には、正常時の数値ベクトルのみが記憶される。 When it is determined that there is no abnormality (Yes in S206), the detection processing control unit 15 stores the numerical vector before normalization of the numerical vector in the learning data storage unit 125 as learning data (S207). When it is determined that there is an abnormality (No in S206), the numerical vector before normalization of the numerical vector is not stored in the learning data storage unit 125. Therefore, only the numerical vector at the normal time is stored in the learning data storage unit 125.

続いて、ステップS201以降が繰り返される。なお、ステップS201以降が繰り返される過程において、ステップS204で利用される正規化パラメータは、並行して実行されている図4のステップS104において随時更新される。その結果、入力される観測データのトレンドを考慮して数値ベクトルを正規化することができる。 Subsequently, steps S201 and subsequent steps are repeated. In the process of repeating step S201 and subsequent steps, the normalization parameters used in step S204 are updated at any time in step S104 of FIG. 4 which is executed in parallel. As a result, the numerical vector can be normalized in consideration of the trend of the input observation data.

例えば、U=3である場合、ステップS207が3回実行されて、{{60,40},{45,20},{30,30}}が学習データ記憶部125に記憶されたとする。この場合、xmax_1=60、xmax_2=40に更新され、更新結果がパラメータ記憶部122に反映される。 For example, when U = 3, step S207 is executed three times, and {{60,40}, {45,20}, {30,30}} are stored in the learning data storage unit 125. In this case, it is updated to xmax_1 = 60 and xmax_2 = 40, and the update result is reflected in the parameter storage unit 122.

なお、上記では、観測データがフローデータである例について説明したが、フローデータ、MIBデータ、及びCPU使用率が並列的に観測データとして受信されてもよい。この場合、図4及び図5の処理手順の各ステップでは、データ種別ごと(フローデータ、MIBデータ、及びCPU使用率ごと)に実行されればよい。 Although the example in which the observation data is the flow data has been described above, the flow data, the MIB data, and the CPU usage rate may be received as the observation data in parallel. In this case, each step of the processing procedure of FIGS. 4 and 5 may be executed for each data type (flow data, MIB data, and CPU usage rate).

なお、例えば{hostID,interfaceID,ibps,obps}のような形式で与えられるMIBデータについては、「単位時間におけるホストIDaのibps」、「単位時間におけるホストIDaのobps」、「単位時間におけるホストIDbのibps」、「単位時間におけるホストIDbのobps」...「単位時間におけるinterfaceIDxのibps」、「単位時間におけるinterfaceIDxのobps」、「単位時間におけるinterfaceIDyのibps」、「単位時間におけるinterfaceIDyのobps」のように、数値ベクトルを抽出することが可能である。 For MIB data given in a format such as {hostID, interfaceID, ibps, obps}, "ibps of host IDa in unit time", "obps of host IDa in unit time", and "host IDb in unit time". "Ibps", "Obps of host IDb in unit time" ... "Ibps of interfaceIDx in unit time", "Obps of interfaceIDx in unit time", "IBps of interfaceIDy in unit time", "obps of interfaceIDy in unit time" It is possible to extract a numerical vector as in.

続いて、図4のステップS106及び図5のステップS205の一例について説明する。ステップS106及びS205では、データ種別がラベルとして付与された数値ベクトル群が学習部14又は検知部16に入力される。本実施の形態において、ラベルは「フローデータ」、「MIBデータ」、及び「CPU使用率」のいずれかである。ラベルは、例えば、測定装置20又は受信部11によって教師データ及び観測データに付与される。すなわち、観測データの採取元に基づいて当該観測データに付与すべきラベルが特定可能である。当該ラベルは、前処理部13によって生成される数値ベクトルに引き継がれる。 Subsequently, an example of step S106 of FIG. 4 and step S205 of FIG. 5 will be described. In steps S106 and S205, the numerical vector group to which the data type is assigned as a label is input to the learning unit 14 or the detecting unit 16. In this embodiment, the label is one of "flow data", "MIB data", and "CPU usage". The label is attached to the teacher data and the observation data by, for example, the measuring device 20 or the receiving unit 11. That is, the label to be attached to the observation data can be specified based on the source of the observation data. The label is taken over by the numerical vector generated by the preprocessing unit 13.

図4のステップS106において、学習部14は、データ種別ごとに学習器を生成する。学習部14は、入力される数値ベクトルに付与されているラベルに基づいて数値ベクトルを分類し、分類結果に対応する学習器へ当該数値ベクトルを入力する。本実施の形態では「フローデータの学習器」、「MIBデータの学習器」、「CPU使用率の学習器」が生成される。学習器としては数値ベクトルのメトリック間の相関関係の学習による異常検知を行うオートエンコーダ(非特許文献2)や主成分分析(非特許文献3)等を用いることができる。本実施の形態では、学習器にオートエンコーダを用いる例について説明する。 In step S106 of FIG. 4, the learning unit 14 generates a learning device for each data type. The learning unit 14 classifies the numerical vector based on the label given to the input numerical vector, and inputs the numerical vector to the learning device corresponding to the classification result. In the present embodiment, a "flow data learner", a "MIB data learner", and a "CPU usage rate learner" are generated. As the learner, an autoencoder (Non-Patent Document 2) or a principal component analysis (Non-Patent Document 3) that detects anomalies by learning the correlation between numerical vector metrics can be used. In this embodiment, an example in which an autoencoder is used as the learning device will be described.

図6は、オートエンコーダを説明するための図である。オートエンコーダは、ディープラーニングによる異常検知アルゴリズムである。オートエンコーダは、正常時の入力データがメトリック間で相関関係を持ち、低次元に圧縮可能であることを利用する。異常時には入力データの相関関係が崩れるため、圧縮が正しく行われず入力データと出力データとの差が大きくなる。 FIG. 6 is a diagram for explaining an autoencoder. The autoencoder is an anomaly detection algorithm based on deep learning. The autoencoder utilizes the fact that normal input data has a correlation between metrics and can be compressed to a low dimension. In the event of an abnormality, the correlation between the input data is broken, so compression is not performed correctly and the difference between the input data and the output data becomes large.

図6の(1)に示されるように、学習部14が生成する学習器(オートエンコーダ)は、出力層(Layer L)が入力層(Layer L)に近くなるように学習を行う。具体的には、学習部14は、数値ベクトルを2つに複製し、一方を入力層へ当てはめ、他方を出力層に当てはめて学習を行い、学習結果を出力する。学習結果は、学習結果記憶部124に記憶される。学習結果は、学習器に対するパラメータ群である。なお、学習器は、データ種別ごとに生成されるため、学習結果もデータ種別ごとに出力され、学習結果記憶部124に記憶される。 As shown in (1) of FIG. 6, the learner (autoencoder) generated by the learning unit 14 learns so that the output layer (Layer L 3 ) is close to the input layer (Layer L 1 ). Specifically, the learning unit 14 duplicates the numerical vector into two, applies one to the input layer, applies the other to the output layer, performs learning, and outputs the learning result. The learning result is stored in the learning result storage unit 124. The learning result is a group of parameters for the learning device. Since the learning device is generated for each data type, the learning result is also output for each data type and stored in the learning result storage unit 124.

一方、検知部16も、学習部14と同様に、データ種別ごとに学習器を生成する。当該学習器には、学習部14によって生成される学習器と同様にオートエンコーダ又は主成分分析等のうち、学習部14が生成する学習器に対応する方法を用いることができる。 On the other hand, the detection unit 16 also generates a learning device for each data type, similarly to the learning unit 14. As the learning device, a method corresponding to the learning device generated by the learning unit 14 among the autoencoder, the principal component analysis, and the like can be used as in the learning device generated by the learning unit 14.

図5のステップS205において、検知部16は、学習結果記憶部124に記憶されている学習結果に基づいて、「フローデータの学習器」、「MIBデータの学習器」、「CPU使用率の学習器」を生成する。すなわち、検知部16によって生成される学習器は、当該学習結果の出力時において学習部14によって生成された学習器と同じである。検知部16は、図6の(2)に示されるように、ステップS205において入力されたデータ種別ごとの数値ベクトルを当該数値ベクトルのデータ種別に対応する学習器へ入力し、学習器に対する入力データと出力データとの距離(メトリック間の相関関係の崩れの程度を示す指標)を異常度として計算する。本実施の形態ではオートエンコーダの入力層と出力層との距離である平均二乗誤差(MSE:Mean Squared Error)が異常度として計算される。MSEの計算式は、以下の通りである。 In step S205 of FIG. 5, the detection unit 16 learns the “flow data learner”, the “MIB data learner”, and the “CPU usage rate” based on the learning result stored in the learning result storage unit 124. Generate a vessel. That is, the learning device generated by the detection unit 16 is the same as the learning device generated by the learning unit 14 at the time of outputting the learning result. As shown in (2) of FIG. 6, the detection unit 16 inputs the numerical vector for each data type input in step S205 to the learning device corresponding to the data type of the numerical vector, and the input data to the learning device. The distance between the output data and the output data (an index showing the degree of collapse of the correlation between the metrics) is calculated as the degree of abnormality. In the present embodiment, the mean squared error (MSE: Mean Squared Error), which is the distance between the input layer and the output layer of the autoencoder, is calculated as the degree of abnormality. The calculation formula of MSE is as follows.

Figure 0006823501
本実施の形態では、フローデータのMSE、MIBデータのMSE、CPU使用率のMSEの3種のMSEが得られる。検知部16は、得られたMSEの平均を、最終的な異常度として計算し、最終的な異常度が予め定められた閾値を超えていた場合に異常であると判定する。そうでない場合、検知部16は、正常とであると判定する。
Figure 0006823501
In the present embodiment, three types of MSEs are obtained: flow data MSE, MIB data MSE, and CPU usage rate MSE. The detection unit 16 calculates the average of the obtained MSE as the final degree of abnormality, and determines that the degree of abnormality is abnormal when the final degree of abnormality exceeds a predetermined threshold value. If not, the detection unit 16 determines that it is normal.

上述したように、第1の実施の形態によれば、データの種別ごとに学習器が生成されて、学習及び異常の検知が行われる。ここで、同一のデータ種別に属するメトリック(データ要素)は、相関が高いことが推定される。したがって、相関の低いデータが同一の学習器に入力される可能性を低下させることができる。その結果、異常を検知するための学習に要するデータの増加を抑制することができる。 As described above, according to the first embodiment, a learning device is generated for each type of data, and learning and abnormality detection are performed. Here, it is presumed that the metrics (data elements) belonging to the same data type have a high correlation. Therefore, it is possible to reduce the possibility that data with low correlation is input to the same learner. As a result, it is possible to suppress an increase in data required for learning to detect an abnormality.

次に、第2の実施の形態について説明する。第2の実施の形態では第1の実施の形態と異なる点について説明する。第2の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。 Next, the second embodiment will be described. The second embodiment will explain the differences from the first embodiment. The points not particularly mentioned in the second embodiment may be the same as those in the first embodiment.

第2の実施の形態において、検知部16は、各学習器から出力された異常度の重み付け平均を、最終的な異常度として算出する。この際、教師データ又は学習データに基づく数値ベクトル群を学習器に入力した際のMSEの平均値が重みとして用いられる。 In the second embodiment, the detection unit 16 calculates the weighted average of the abnormalities output from each learning device as the final abnormalities. At this time, the average value of MSE when the numerical vector group based on the teacher data or the learning data is input to the learner is used as the weight.

そこで、第2の実施の形態では、学習部14が、図4のステップS106を実行するたびに、教師データ又は学習データの数値ベクトル群に基づくデータ種別ごとの学習器から出力される学習結果を学習結果記憶部124に記憶する際に、データ種別ごとに、当該学習結果に基づく学習器へ各数値ベクトルを入力したデータ種別ごとの数値ベクトルを入力する。そうすることで、学習部14は、データ種別ごと、かつ、数値ベクトルごとに異常度を算出し、更に、データ種別ごとに異常度の平均を算出する。例えば、U=3であれば、データ種別ごとに3つの異常度が算出され、データ種別ごとに異常度の平均が算出される。データ種別ごとの異常度の平均は、学習結果と共に学習結果記憶部124に記憶される。したがって、「フローデータのMSE平均」、「MIBデータのMSE平均」、「CPU使用率のMSE平均」が記憶される。以下、それぞれを、β'_{train,1}、β'_{train,2}、β'_{train,3}と表記する。 Therefore, in the second embodiment, each time the learning unit 14 executes step S106 of FIG. 4, the learning result output from the learning device for each data type based on the teacher data or the numerical vector group of the learning data is obtained. When storing in the learning result storage unit 124, for each data type, the numerical vector for each data type in which each numerical vector is input to the learner based on the learning result is input. By doing so, the learning unit 14 calculates the degree of abnormality for each data type and for each numerical vector, and further calculates the average degree of abnormality for each data type. For example, if U = 3, three abnormalities are calculated for each data type, and the average of the abnormalities is calculated for each data type. The average degree of abnormality for each data type is stored in the learning result storage unit 124 together with the learning result. Therefore, "MSE average of flow data", "MSE average of MIB data", and "MSE average of CPU usage rate" are stored. Hereinafter, each will be referred to as β _ {train, 1}, β _ {train, 2}, β _ {train, 3}.

検知処理において、観測データに基づくデータ種別ごとの数値ベクトルを各学習器に入力することで得られるMSEの平均を算出する際に、教師データ又は学習データに基づくMSEの平均が大きいデータ種別ほど、観測データに基づくMSEも大きくなることが考えられる。そこで、検知部16は、学習結果記憶部124に記憶されている、教師データ又は学習データに基づくMSEの平均を重みとして、データ種別ごとの異常度について重み付け平均を算出する。 In the detection process, when calculating the average of MSE obtained by inputting the numerical vector for each data type based on the observation data to each learner, the larger the average of MSE based on the teacher data or learning data, the larger the data type. It is possible that the MSE based on the observation data will also increase. Therefore, the detection unit 16 calculates the weighted average for the degree of abnormality for each data type, using the average of the MSE based on the teacher data or the learning data stored in the learning result storage unit 124 as a weight.

具体的には、フローデータ、MIBデータ、CPU使用率の観測データに基づく数値ベクトルを、学習結果に基づく学習器に入力した時のMSEが、それぞれβ_{test,1}、β_{test,2}、β_{test,3}である場合、検知部16は、最終的な異常度βを、以下の計算式に基づいて計算する。
β=(β_{test,1}/β'_{train,1}+β_{test,2}/β'_{train,2}+β_{test,3}/β'_{train,3})/(1/β'_{train,1}+1/β'_{train,2}+1/β'_{train,3})
これは、重み係数を、教師データ又は学習データに基づくMSEの平均の逆数(1/β'_{train,i})とすることで、教師データ又は学習データに基づくMSEが大きいほど、観測データに基づくMSEの重みを小さくしていることを示す。
Specifically, the MSE when the numerical vector based on the flow data, the MIB data, and the observation data of the CPU usage rate is input to the learner based on the learning result is β_ {test, 1}, β_ {test, 2, respectively. }, β_ {test, 3}, the detection unit 16 calculates the final degree of abnormality β based on the following formula.
β = (β_ {test, 1} / β'_ {train, 1} + β_ {test, 2} / β'_ {train, 2} + β_ {test, 3} / β'_ {train, 3}) / (1 / β'_ {train, 1} + 1 / β'_ {train, 2} + 1 / β'_ {train, 3})
This is because the weighting coefficient is the reciprocal of the average of MSE based on the teacher data or training data (1 / β'_ {train, i}), and the larger the MSE based on the teacher data or training data, the more the observation data. It is shown that the weight of MSE based on is reduced.

上述したように、第2の実施の形態によれば、正常時におけるデータ種別間の異常度の大きさの違いを考慮して、検知処理において最終的な異常度を算出することができる。 As described above, according to the second embodiment, the final degree of abnormality can be calculated in the detection process in consideration of the difference in the magnitude of the degree of abnormality between the data types in the normal state.

次に、第3の実施の形態について説明する。第3の実施の形態では第1の実施の形態と異なる点について説明する。第3の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。 Next, a third embodiment will be described. A difference from the first embodiment will be described in the third embodiment. The points not particularly mentioned in the third embodiment may be the same as those in the first embodiment.

第3の実施の形態において、検知部16は、学習器ごとに(すなわち、データ種別ごとに)異常有無の判定を行い、少なくともいずれか一つのデータ種別に関して異常が有ると判定した場合に、最終的な判定結果を「異常有り」とする。 In the third embodiment, the detection unit 16 determines whether or not there is an abnormality for each learner (that is, for each data type), and when it is determined that there is an abnormality for at least one of the data types, the final determination is made. Judgment result is "abnormal".

検知処理において、データ種別ごとに、観測データに基づく数値ベクトルを当該データ種別に係る学習器に入力した際に得られるMSEを、β_{test,1}、β_{test,2}、β_{test,3}とする。ここで、閾値は、データ種別ごとに予め定められているとし、それぞれθ_1、θ_2、θ_3と表記する。この場合、検知部16は、学習器iごとに、β_{test,i}≧θ_iの場合に異常有り、そうでない場合に異常無しと判定する。本実施の形態では、「フローデータ」、「MIBデータ」、「CPU使用率」の3種の学習器についてそれぞれ異常有無の判定が行われ、少なくともいずれか一つについて「異常有り」と判定された場合に、最終的な異常有無の判断が「異常有り」とされ、そうでない場合に「異常無し」とされる。 In the detection process, for each data type, the MSE obtained when a numerical vector based on the observation data is input to the learner related to the data type is β_ {test, 1}, β_ {test, 2}, β_ {test. , 3}. Here, the threshold value is assumed to be predetermined for each data type, and is expressed as θ_1, θ_2, and θ_3, respectively. In this case, the detection unit 16 determines that there is an abnormality when β_ {test, i} ≧ θ_i for each learning device i, and that there is no abnormality when it is not. In the present embodiment, the presence or absence of an abnormality is determined for each of the three types of learners, "flow data", "MIB data", and "CPU usage rate", and at least one of them is determined to be "abnormal". If this is the case, the final judgment of the presence or absence of an abnormality is determined to be "abnormal", and if not, "no abnormality" is determined.

上述したように、第3の実施の形態によれば、第1の実施の形態と同様の効果を得ることができる。 As described above, according to the third embodiment, the same effect as that of the first embodiment can be obtained.

次に、第4の実施の形態について説明する。第4の実施の形態では第3の実施の形態と異なる点について説明する。第4の実施の形態において特に言及されない点については、第3の実施の形態と同様でもよい。 Next, a fourth embodiment will be described. The fourth embodiment will be described as different from the third embodiment. The points not particularly mentioned in the fourth embodiment may be the same as those in the third embodiment.

第4の実施の形態において、検知部16は、各データ種別の学習器ごとに異常有無の判定を行った後に、全ての学習器について「異常有り」と判定した場合にのみ、最終的な判定結果を「異常有り」とする。例えば、「フローデータ」、「MIBデータ」、「CPU使用率」の3種の全ての学習器について「異常有り」と判定された場合にのみ、最終的な判定結果が「異常有り」となり、それ以外では最終的な判定結果が「異常無し」となる。 In the fourth embodiment, the detection unit 16 determines the presence or absence of an abnormality for each learning device of each data type, and then makes a final determination only when it is determined that all the learning devices have an abnormality. The result is "abnormal". For example, the final judgment result is "abnormal" only when it is judged as "abnormal" for all three types of learners of "flow data", "MIB data", and "CPU usage rate". Otherwise, the final judgment result will be "no abnormality".

上述したように、第4の実施の形態によれば、第1の実施の形態と同様の効果を得ることができる。 As described above, according to the fourth embodiment, the same effect as that of the first embodiment can be obtained.

次に、第5の実施の形態について説明する。第5の実施の形態では第3の実施の形態と異なる点について説明する。第5の実施の形態において特に言及されない点については、第3の実施の形態と同様でもよい。 Next, a fifth embodiment will be described. The fifth embodiment will explain the differences from the third embodiment. The points not particularly mentioned in the fifth embodiment may be the same as those in the third embodiment.

第5の実施の形態において、検知部16は、各データ種別の学習器ごとに異常有無の判定を行った後に、「異常有り」と判定した学習器の数と「異常無し」と判定した学習器の数との多数決によって、最終的な異常有無の判定を行う。例えば、「フローデータ」、「MIBデータ」、「CPU使用率」の3種の学習器のうち、2つ以上について「異常有り」と判定された場合には、最終的な判定結果が「異常有り」となり、それ以外では最終的な判定結果が「異常無し」となる。学習器の数が偶数の場合、「異常有り」の数と「異常無し」の数が同数で合った場合の取扱いは、「異常有り」とするか「異常無し」とするか、又はランダムに決定するか等、予め定められる。 In the fifth embodiment, the detection unit 16 determines the presence or absence of an abnormality for each learning device of each data type, and then determines the number of learning devices that are determined to be "abnormal" and the learning that is determined to be "no abnormality". The final determination of the presence or absence of an abnormality is made by a majority vote with the number of vessels. For example, if two or more of the three types of learners, "flow data", "MIB data", and "CPU usage rate", are judged to be "abnormal", the final judgment result is "abnormal". "Yes", otherwise the final judgment result is "No abnormality". When the number of learners is even, the handling when the number of "abnormal" and the number of "no abnormality" match is "abnormal", "no abnormality", or randomly. Whether to decide or not is decided in advance.

上述したように、第5の実施の形態によれば、第1の実施の形態と同様の効果を得ることができる。 As described above, according to the fifth embodiment, the same effect as that of the first embodiment can be obtained.

次に、第6の実施の形態について説明する。第6の実施の形態では上記各実施の形態と異なる点について説明する。第6の実施の形態において特に言及されない点については、上記各実施の形態と同様でもよい。 Next, the sixth embodiment will be described. In the sixth embodiment, the points different from each of the above embodiments will be described. The points not particularly mentioned in the sixth embodiment may be the same as those in the above-described embodiments.

第6の実施の形態では、データ種別ごとではなく、データ種別ごとの数値ベクトルのメトリック間の相関関係に基づくクラスタごとに、学習器が生成される例について説明する。すなわち、上記各実施の形態では、同一のデータ種別に属する各データ要素(メトリック)は相関が高いであろうという推定に基づいて、データ種別が、データ要素間(メトリック間)の相関の高さに基づいて分類される単位として用いられた。一方、第6の実施の形態では、斯かる推定に基づくのではなく、実際に各データ要素間(各メトリック間)の相関の高さに基づいて、データ要素群が複数の集合(以下のクラスタ)に分類され、当該集合が、データ要素間(メトリック間)の相関の高さに基づいて分類される単位とされる。 In the sixth embodiment, an example in which a learner is generated for each cluster based on the correlation between the metrics of the numerical vector for each data type, not for each data type, will be described. That is, in each of the above embodiments, the data type has a high correlation between data elements (metrics) based on the estimation that each data element (metric) belonging to the same data type will have a high correlation. It was used as a unit to be classified based on. On the other hand, in the sixth embodiment, the data element group is a plurality of sets (the following clusters) based on the height of the correlation between each data element (each metric), not based on such estimation. ), And the set is a unit to be classified based on the height of correlation between data elements (between metrics).

まず、第6の実施の形態では、図4のステップS103及び図5のステップS203において、単位時間ごとに、データ種別ごとではなく、1つの数値ベクトルxが生成される。例えば、フローデータの数値ベクトルの各メトリック、MIBデータの数値ベクトルの各メトリック、及びCPU使用率の各メトリックを要素として含む一つの数値ベクトルxが生成される。単位時間tにおける数値ベクトルxを、x_{i,t}(i=1,...,N,t=1,...,U)と表記する。 First, in the sixth embodiment, in step S103 of FIG. 4 and step S203 of FIG. 5, one numerical vector x is generated for each unit time, not for each data type. For example, one numerical vector x including each metric of the numerical vector of the flow data, each metric of the numerical vector of the MIB data, and each metric of the CPU usage rate is generated. The numerical vector x in the unit time t is expressed as x_ {i, t} (i = 1, ..., N, t = 1, ..., U).

また、前処理部13は、図4のステップS103に続いて、図7に示される処理手順を実行する。 Further, the preprocessing unit 13 executes the processing procedure shown in FIG. 7 following step S103 in FIG.

図7は、第6の実施の形態において前処理部13が追加的に実行する処理手順を説明するためのフローチャートである。 FIG. 7 is a flowchart for explaining a processing procedure additionally executed by the preprocessing unit 13 in the sixth embodiment.

ステップS301において、前処理部13は、数値ベクトルxの各メトリックに独立なIDを付与する。 In step S301, the preprocessing unit 13 assigns an independent ID to each metric of the numerical vector x.

続いて、前処理部13は、2つのメトリックの全ての組ごとに、ピアソン相関係数を算出する(S302)。すなわち、メトリックi,j間の相関係数α_{i,j}が、(x_{i,1},...,x_{i,T})と、(x_{j,1},...,{j,U})とのピアソン相関係数により算出される(i=1,...,N、j=1,...,N、i<j)。 Subsequently, the preprocessing unit 13 calculates the Pearson correlation coefficient for each set of the two metrics (S302). That is, the correlation coefficients α_ {i, j} between the metrics i and j are (x_ {i, 1}, ..., x_ {i, T}) and (x_ {j, 1} ,. It is calculated by the Pearson correlation coefficient with., {J, U}) (i = 1, ..., N, j = 1, ..., N, i <j).

続いて、前処理部13は、ピアソン相関係数α_{i,j}に基づいて、多次元尺度構成法を用いて、予め定めたグループ数Kに各メトリックのIDをクラスタリングする(S303)。続いて、前処理部13は、各IDが、いずれのクラスタに分類されたのかを示す、IDとクラスタとの対応情報を学習結果記憶部124に記憶する(S304)。 Subsequently, the preprocessing unit 13 clusters the IDs of each metric into a predetermined number of groups K using a multidimensional scaling method based on the Pearson correlation coefficient α_ {i, j} (S303). Subsequently, the preprocessing unit 13 stores the correspondence information between the ID and the cluster, which indicates which cluster each ID is classified into, in the learning result storage unit 124 (S304).

なお、図7の処理手順は、1回実行されればよい。すなわち、図4のステップS108に続いて実行されなくてよい。 The processing procedure of FIG. 7 may be executed once. That is, it does not have to be executed following step S108 of FIG.

その他においては、上記各実施の形態におけるデータ種別が、クラスタに置き換えられればよい。例えば、図4のステップS106において、学習部14は、学習結果記憶部124に記憶されている対応情報に基づいて、クラスタごとに学習器を生成し、学習を行う。各学習器には、正規化された数値ベクトルのうち、当該学習器が対応するクラスタに分類されたIDに対応するメトリックが入力される。学習結果は、クラスタごとに学習結果記憶部124に記憶される。 In other cases, the data type in each of the above embodiments may be replaced with a cluster. For example, in step S106 of FIG. 4, the learning unit 14 generates a learning device for each cluster based on the correspondence information stored in the learning result storage unit 124, and performs learning. Among the normalized numerical vectors, the metric corresponding to the ID classified into the cluster to which the learner corresponds is input to each learner. The learning result is stored in the learning result storage unit 124 for each cluster.

また、図5のステップS205において、検知部16は、学習結果記憶部124に記憶されているクラスタごとの学習結果に基づいて、クラスタごとに学習器を生成する。検知部16は、各学習器に、正規化された数値ベクトルのうち、当該学習器が対応するクラスタに分類されたIDに対応するメトリックを入力する。なお、検知処理(図5)において、例えば、ステップS203に続いて、前処理部13は、図7のステップS301と同様に、数値ベクトルの各ベクトルに独立したIDを付与すればよい。 Further, in step S205 of FIG. 5, the detection unit 16 generates a learning device for each cluster based on the learning result for each cluster stored in the learning result storage unit 124. The detection unit 16 inputs to each learner a metric corresponding to an ID classified into the cluster to which the learner corresponds among the normalized numerical vectors. In the detection process (FIG. 5), for example, following step S203, the preprocessing unit 13 may assign an independent ID to each of the numerical vectors, as in step S301 of FIG.

上述したように、第6の実施の形態によれば、より相関の高いメトリック群ごとに学習器を生成することができる。 As described above, according to the sixth embodiment, the learner can be generated for each metric group having a higher correlation.

なお、上記各実施の形態は、ネットワーク以外から収集されるデータに関して適用されてもよい。例えば、コンピュータシステムから収集されるデータに関して上記各実施の形態が適用されてもよい。 It should be noted that each of the above embodiments may be applied to data collected from other than the network. For example, each of the above embodiments may be applied to data collected from a computer system.

なお、上記各実施の形態において、前処理部13は、分類部の一例である。 In each of the above embodiments, the pretreatment unit 13 is an example of a classification unit.

以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。 Although the examples of the present invention have been described in detail above, the present invention is not limited to such specific embodiments, and various modifications are made within the scope of the gist of the present invention described in the claims.・ Can be changed.

10 異常検知装置
11 受信部
12 学習処理制御部
13 前処理部
14 学習部
15 検知処理制御部
16 検知部
20 測定装置
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
121 教師データ記憶部
122 パラメータ記憶部
123 観測データ記憶部
124 学習結果記憶部
125 学習データ記憶部
B バス
N1 ネットワーク
10 Anomaly detection device 11 Receiving unit 12 Learning processing control unit 13 Preprocessing unit 14 Learning unit 15 Detection processing control unit 16 Detection unit 20 Measuring device 100 Drive device 101 Recording medium 102 Auxiliary storage device 103 Memory device 104 CPU
105 Interface device 121 Teacher data storage unit 122 Parameter storage unit 123 Observation data storage unit 124 Learning result storage unit 125 Learning data storage unit B bus N1 network

Claims (8)

異常の検知対象が正常である場合に前記検知対象から得られる複数の種別のデータのデータ要素間の相関関係を、前記データ要素間の相関の高さに基づいて分類される単位ごとに、当該単位に関して生成される複数の学習器を用いて学習し、学習結果を出力する学習部と、
前記検知対象から複数のタイミングで得られる複数の種別のデータのデータ要素群について、前記単位ごとに、当該単位に係る学習結果に基づいて、当該単位に分類されるデータ要素群の相関関係の崩れの程度を示す異常度を算出し、前記単位ごとの異常度に基づいて前記検知対象の異常を検知する検知部と、
を有し、
前記各単位を構成するデータ要素群は、相互に異なる、
ことを特徴とする異常検知装置。
When the abnormality detection target is normal, the correlation between the data elements of a plurality of types of data obtained from the detection target is classified for each unit classified based on the height of the correlation between the data elements. A learning unit that learns using multiple learning devices generated for each unit and outputs the learning results,
Regarding the data element group of a plurality of types of data obtained from the detection target at a plurality of timings, the correlation of the data element group classified into the unit is broken for each unit based on the learning result related to the unit. A detection unit that calculates the degree of abnormality indicating the degree of the above and detects the abnormality of the detection target based on the degree of abnormality for each unit.
Have a,
The data elements that make up each of the units are different from each other.
Anomaly detection device characterized by this.
前記単位は、前記種別ごとの単位である、
ことを特徴とする請求項1記載の異常検知装置。
The unit is a unit for each type.
The abnormality detection device according to claim 1, wherein the abnormality detection device is characterized.
異常の検知対象が正常である場合に前記検知対象から得られる複数の種別のデータのデータ要素群を、相関の高さに基づいて複数の集合に分類する分類部を有し、
前記単位は、前記集合ごとの単位である、
ことを特徴とする請求項1記載の異常検知装置。
It has a classification unit that classifies data element groups of a plurality of types of data obtained from the detection target when the abnormality detection target is normal into a plurality of sets based on the height of correlation.
The unit is a unit for each set.
The abnormality detection device according to claim 1, wherein the abnormality detection device is characterized.
前記検知部は、
前記単位ごとの異常度の平均、
又は、異常の検知対象が正常である場合のデータ要素群について前記単位ごとに前記学習結果に基づいて算出される異常度を重みとする、前記単位ごとの異常度の重み付け平均、
又は、少なくとも一つの前記単位に係る異常度が閾値を超えるか、
又は、全ての前記単位に係る異常度が閾値を超えるか、
又は、異常度が閾値を超える前記単位の数、
に基づいて前記検知対象の異常を検知する、
ことを特徴とする請求項1乃至3いずれか一項記載の異常検知装置。
The detector is
The average degree of anomaly for each unit,
Alternatively, a weighted average of the anomaly degree for each unit, which weights the anomaly degree calculated based on the learning result for each unit of the data element group when the abnormality detection target is normal.
Or, the degree of abnormality of at least one of the above units exceeds the threshold value.
Or, whether the degree of abnormality related to all the units exceeds the threshold value
Or, the number of the units whose degree of abnormality exceeds the threshold value,
Detects the abnormality of the detection target based on
The abnormality detection device according to any one of claims 1 to 3, wherein the abnormality detection device is characterized.
異常の検知対象が正常である場合に前記検知対象から得られる複数の種別のデータのデータ要素間の相関関係を、前記データ要素間の相関の高さに基づいて分類される単位ごとに、当該単位に関して生成される複数の学習器を用いて学習し、学習結果を出力する学習手順と、
前記検知対象から複数のタイミングで得られる複数の種別のデータのデータ要素群について、前記単位ごとに、当該単位に係る学習結果に基づいて、当該単位に分類されるデータ要素群の相関関係の崩れの程度を示す異常度を算出し、前記単位ごとの異常度に基づいて前記検知対象の異常を検知する検知手順と、
をコンピュータが実行し、
前記各単位を構成するデータ要素群は、相互に異なる、
ことを特徴とする異常検知方法。
When the abnormality detection target is normal, the correlation between the data elements of a plurality of types of data obtained from the detection target is classified for each unit classified based on the height of the correlation between the data elements. A learning procedure that learns using multiple learning devices generated for each unit and outputs the learning results,
Regarding the data element group of a plurality of types of data obtained from the detection target at a plurality of timings, the correlation of the data element group classified into the unit is broken for each unit based on the learning result related to the unit. A detection procedure that calculates the degree of abnormality indicating the degree of the above and detects the abnormality of the detection target based on the degree of abnormality for each unit.
The computer runs ,
The data elements that make up each of the units are different from each other.
Anomaly detection method characterized by this.
前記単位は、前記種別ごとの単位である、
ことを特徴とする請求項5記載の異常検知方法。
The unit is a unit for each type.
The abnormality detection method according to claim 5, wherein the abnormality is detected.
異常の検知対象が正常である場合に前記検知対象から得られる複数の種別のデータのデータ要素群を、相関の高さに基づいて複数の集合に分類する分類手順を有し、
前記単位は、前記集合ごとの単位である、
ことを特徴とする請求項5記載の異常検知方法。
It has a classification procedure for classifying data elements of a plurality of types of data obtained from the detection target when the abnormality detection target is normal into a plurality of sets based on the height of correlation.
The unit is a unit for each set.
The abnormality detection method according to claim 5, wherein the abnormality is detected.
請求項1乃至4いずれか一項記載の各部としてコンピュータを機能させるためのプログラム。 A program for operating a computer as each part according to any one of claims 1 to 4.
JP2017040589A 2017-03-03 2017-03-03 Anomaly detection device, anomaly detection method and program Active JP6823501B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017040589A JP6823501B2 (en) 2017-03-03 2017-03-03 Anomaly detection device, anomaly detection method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017040589A JP6823501B2 (en) 2017-03-03 2017-03-03 Anomaly detection device, anomaly detection method and program

Publications (2)

Publication Number Publication Date
JP2018147172A JP2018147172A (en) 2018-09-20
JP6823501B2 true JP6823501B2 (en) 2021-02-03

Family

ID=63592180

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017040589A Active JP6823501B2 (en) 2017-03-03 2017-03-03 Anomaly detection device, anomaly detection method and program

Country Status (1)

Country Link
JP (1) JP6823501B2 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102285987B1 (en) * 2018-10-10 2021-08-04 주식회사 케이티 Method, system and computer program for detecting error of facilities in building
KR102600745B1 (en) * 2018-11-14 2023-11-10 주식회사 디플리 Anomaly Detection Method for Sound Classification Based on Neural Network Analysis
JP7020438B2 (en) * 2019-01-18 2022-02-16 オムロン株式会社 Model generator, model generation method, model generation program, model generation system, inspection system, and monitoring system
US11133204B2 (en) * 2019-01-29 2021-09-28 Applied Materials, Inc. Chamber matching with neural networks in semiconductor equipment tools
JP7283096B2 (en) * 2019-02-04 2023-05-30 株式会社ジェイテクト Inspection device and learning model generation device for inspection
JP7193725B2 (en) * 2019-02-13 2022-12-21 日本電信電話株式会社 Network information collection device and method
KR102027389B1 (en) * 2019-03-20 2019-10-01 (주)브이엠에스 Fault diagnosis system of mechanical devices using autoencoder and deep-learning
JP7140705B2 (en) * 2019-03-29 2022-09-21 株式会社日立製作所 Storage system and data recording method
KR102271740B1 (en) * 2020-09-11 2021-07-02 주식회사 뉴로클 Method and apparatus for anomaly detection
KR102476359B1 (en) * 2020-11-24 2022-12-09 고려대학교 산학협력단 Anomaly detection model using message id sequence on unmanned moving objects

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000321176A (en) * 1999-05-17 2000-11-24 Mitsui Eng & Shipbuild Co Ltd Method and device for detecting abnormal condition
JP2003256443A (en) * 2002-03-05 2003-09-12 Fuji Xerox Co Ltd Data classification device
JP4886460B2 (en) * 2006-10-12 2012-02-29 パナソニック電工Sunx株式会社 Abnormality monitoring device
JP4369961B2 (en) * 2007-03-23 2009-11-25 株式会社日立製作所 Abnormality detection device and abnormality detection program
JP5238429B2 (en) * 2008-09-25 2013-07-17 株式会社東芝 Stereoscopic image capturing apparatus and stereoscopic image capturing system

Also Published As

Publication number Publication date
JP2018147172A (en) 2018-09-20

Similar Documents

Publication Publication Date Title
JP6823501B2 (en) Anomaly detection device, anomaly detection method and program
JP6564799B2 (en) Threshold determination device, threshold determination method and program
JP7010641B2 (en) Abnormality diagnosis method and abnormality diagnosis device
Da Silva et al. Identification and selection of flow features for accurate traffic classification in SDN
US11411850B2 (en) Traffic analysis apparatus, method, and program
US11501106B2 (en) Anomaly factor estimation device, anomaly factor estimation method, and storage medium
US11451561B2 (en) Automated creation of lightweight behavioral indicators of compromise (IOCS)
US20060109793A1 (en) Network simulation apparatus and method for analyzing abnormal network
JP4232828B2 (en) Application classification method, network abnormality detection method, application classification program, network abnormality detection program, application classification apparatus, network abnormality detection apparatus
JP6183450B2 (en) System analysis apparatus and system analysis method
JP7044117B2 (en) Model learning device, model learning method, and program
US20070171085A1 (en) Status monitor apparatus
Ntalampiras et al. A fault diagnosis system for interdependent critical infrastructures based on HMMs
US10904271B2 (en) Active prioritization of investigation targets in network security
Ikeda et al. Anomaly detection and interpretation using multimodal autoencoder and sparse optimization
JP2007243459A (en) Traffic state extracting apparatus and method, and computer program
JP6858798B2 (en) Feature generator, feature generator and program
JP6781776B2 (en) Feature generator, feature generator and program
WO2020044898A1 (en) Device status monitoring device and program
JP5825599B2 (en) Quality degradation factor estimation apparatus and method
JP2021040267A (en) Information processing apparatus, radio communications system, information processing method, and program
Frank et al. Feature extraction and selection methods for network traffic data
Fu et al. FlowBox: anomaly detection using flow analysis in Cloud applications
Watanakeesuntorn et al. A proposal of a real-time OpenFlow DDoS detection tool
JP2022036261A (en) Abnormality diagnosis method and abnormality diagnosis device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190129

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190416

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190628

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20190628

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20190705

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20190709

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20190802

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20190806

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20200402

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20200807

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20201007

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20201126

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20210107

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20210107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210108

R150 Certificate of patent or registration of utility model

Ref document number: 6823501

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150