JP2021056927A - 異常検知装置、異常検知方法および異常検知プログラム - Google Patents

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

Info

Publication number
JP2021056927A
JP2021056927A JP2019181373A JP2019181373A JP2021056927A JP 2021056927 A JP2021056927 A JP 2021056927A JP 2019181373 A JP2019181373 A JP 2019181373A JP 2019181373 A JP2019181373 A JP 2019181373A JP 2021056927 A JP2021056927 A JP 2021056927A
Authority
JP
Japan
Prior art keywords
abnormality
degree
data
abnormality detection
value
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.)
Granted
Application number
JP2019181373A
Other languages
English (en)
Other versions
JP7204626B2 (ja
Inventor
麻里 松本
Mari Matsumoto
麻里 松本
雅則 古田
Masanori Furuta
雅則 古田
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2019181373A priority Critical patent/JP7204626B2/ja
Priority to US17/014,270 priority patent/US20210097438A1/en
Publication of JP2021056927A publication Critical patent/JP2021056927A/ja
Application granted granted Critical
Publication of JP7204626B2 publication Critical patent/JP7204626B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2433Single-class perspective, e.g. one-against-all classification; Novelty detection; Outlier detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y40/00IoT characterised by the purpose of the information processing
    • G16Y40/10Detection; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2218/00Aspects of pattern recognition specially adapted for signal processing
    • G06F2218/12Classification; Matching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Medical Informatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

【課題】大量のセンサ値を効率よく処理し、精度よく速やかに異常を検知する異常検知装置、異常検知方法および異常検知プログラムを提供する。【解決手段】一実施形態に係る異常検知装置は、少なくも1つの異常検知対象が出力するシステムデータを取得し、前記システムデータに基づいて時系列の監視データを生成し、前記監視データを用いて第1の機械学習により得た相関モデルと入力監視データとから第1のモデル予測値を算出し、前記入力監視データの値と前記第1のモデル予測値との誤差の大きさを示す異常度を算出し、時系列データである異常度時系列データを出力し、前記異常度時系列データを用いて前記第1の機械学習とは異なる第2の機械学習により得た時系列モデルから前記異常度に対する第2のモデル予測値を算出し、前記異常度と前記異常度に対する前記第2のモデル予測値との誤差の大きさを示す乖離度を算出し、前記異常度または前記乖離度のいずれかに基づいて前記異常検知対象に異常が発生したか否かを判断する。【選択図】図2

Description

実施形態は、異常検知装置、異常検知方法および異常検知プログラムに関する。
車両等の機械設備に設けられたセンサの値(以降、センサ値と称する)を監視することで、故障予兆を検出することにより、故障発生前にその予兆を知らせる異常検知技術が知られている。
異常検知技術においては、複数のセンサ情報から故障予兆を行うために、同時刻に取得した複数のセンサ値を用いて機械学習を行い、学習によって得られた相関モデルによる値と取得したセンサ値との乖離度を基に評価を行う方法がある。
特開2018−14744号公報
しかしながら、特許文献1の方法では、評価に使用するセンサ数に応じて評価指標である乖離度の処理量が増加する。
特に近年、インターネット上にIoT(Internet of Thing)機器が多数接続されるようになり、IoT機器が異常検知技術における情報源(センサに相当する)として利用されると、大量のセンサ値を効率よく処理する異常検知技術が望まれる。
また、異常検知技術を情報ネットワーク上のセキュリティ対策として利用する場合に、アクセスログなどに含まれるデータ(センサ値に相当する)が利用されるが、多種のデータを効率よく処理することが望まれる。
本発明が解決しようとする課題は、大量のセンサ値を効率よく処理し、精度よく速やかに異常を検知する異常検知装置、異常検知方法および異常検知プログラムを提供することである。
一実施形態に係る異常検知装置は、データ入力手段と、データ処理手段と、第1予測値算出手段と、異常度算出手段と、第2予測値算出手段と、判定値算出手段と、異常判定手段とを具備する。
データ入力手段は、少なくも1つの異常検知対象が出力するシステムデータを取得し、データ処理手段は、システムデータに基づいて時系列の監視データを生成し、第1予測値算出手段は、監視データを用いて第1の機械学習により得た相関モデルと入力監視データとから第1のモデル予測値を算出し、異常度算出手段は、入力監視データの値と第1のモデル予測値との誤差の大きさを示す異常度を算出し、時系列データである異常度時系列データを出力し、第2予測値算出手段は、異常度時系列データを用いて第1の機械学習とは異なる第2の機械学習により得た時系列モデルから異常度に対する第2のモデル予測値を算出し、判定値算出手段は、異常度と異常度に対する第2のモデル予測値との誤差の大きさを示す乖離度を算出し、異常判定手段は、異常度または乖離度のいずれかに基づいて異常検知対象に異常が発生したか否かを判断する。
図1は、第1の実施形態に係るネットワーク構成の一例を示す機能ブロック図である。 図2は、同実施形態に係る異常検知部の機能構成の一例を示す機能ブロック図である。 図3Aは、同実施形態に係る第1学習部における機械学習の一例を示す図である。 図3Bは、同実施形態に係る第2学習部における機械学習の一例を示す図である。 図4Aは、同実施形態に係る異常検知部の第1および第2モデル生成時の処理動作の一例を示すフローチャートである。 図4Bは、同実施形態に係る異常検知部の第1モデル生成時の詳細処理動作の一例を示すフローチャートである。 図4Cは、同実施形態に係る異常検知部の第2モデル生成時の詳細処理動作の一例を示すフローチャートである。 図5は、同実施形態に係る閾値決定部による閾値決定方法の一例を示す図である。 図6は、同実施形態に係る異常検知部の運用時の処理動作の一例を示すフローチャートである。 図7は、第2の実施形態に係る異常検知システムの構成の一例を示す機能ブロック図である。 図8は、同実施形態に係る被検知装置の機能構成の一例を示す機能ブロック図である。 図9は、第3の実施形態に係るネットワーク構成の一例を示す機能ブロック図である。 図10は、同実施形態に係るネットワーク構成の一例を示す機能ブロック図である。
以下、図面を参照して実施形態を説明する。
(第1の実施形態)
第1の実施形態は、サーバがインターネットを介してクライアントにサービスを提供する情報ネットワークにおいて、サーバ上でサイバー攻撃や不正侵入などを検知する例を示す。
図1は、第1の実施形態に係るネットワーク構成の一例を示す機能ブロック図である。
サーバ1は、例えばPCなどのコンピュータにより構成される。サーバ1は、インターネットなどのネットワーク1000に接続されており、複数の外部のクライアント(以降、外部クライアントと称する)とネットワーク1000を介して接続され、外部クライアントにサービスを提供するWebサーバである。ここで外部クライアントは、例えばPCなどのコンピュータにより構成される。
異常検知部10は、本実施形態においては、サーバ1上のアクセスログを使って、サーバ1へのサイバー攻撃や不正侵入といった異常の検知をする。異常検知部10は、サーバ1上にてソフトウェアまたはハードウェアとして構成させる、もしくはソフトウェアとハードウェアとを混成させて構成させることでもよいし、コンピュータやCPU上で動作するプログラムであってもよい。
記憶部11には外部クライアントによるサーバ1へのアクセスログが保存されており、例えば、アクセスのあった時刻およびアクセス元IPアドレスやポート番号などの情報が保存されている。また記憶部11には、異常検知部10が機械学習をするためのデータセットが格納される。データセットとしては、正常動作時の学習データセットおよび推論データセット、未知状態の動作時の推論データセットなどを含む。
通信処理部12は、外部クライアントとのデータ通信を行うインターフェースであり、外部クライアントから受信したデータをサーバ1の各機能へ送信したり、サーバ1の各機能からのデータを外部クライアントへ送信したりする。データ通信の方法は、ネットワークで規定される方法に準拠していれば特に限定されず、例えば、有線による通信でもよいし、各種無線方式を使った通信でも良い。
制御部13は、サーバ1の各機能を制御する。なお、図1において制御部13は、他のブロックと結線をしていないが、各機能との間でデータのやり取りをし、制御を行う。
サーバ基本処理部14は、外部クライアントへサービスをするためのサーバ1の基本機能などが含まれ、特に異常検知部10とは特に関わりがない処理機能が含まれる。
図2は、同実施形態に係る異常検知部10の機能構成の一例を示す機能ブロック図である。
データ入力部101は、異常検知部10の内部へデータを取り込むためのデータの入力部であり、記憶部11や、通信処理部12からデータが入力される。データ入力部101に入力されるデータを以降、システムデータと称する。システムデータは、例えば、Webサーバにおけるアクセスログのように、Webサーバの仕様に準じた形式でデータが蓄積されているファイルである。従って数値データのみでなく、コメントなどの文字が含まれる場合もある。
データ出力部102は、異常検知部10の外部へデータを出力するためのデータの出力部である。例えば、データ出力部102は、異常検知部10が生成する「異常検知の判断結果」を外部の図示せぬ表示部などに出力する。図示せぬ表示部は、入力された判断結果に基づいて、例えばユーザにアラーム通知をしたりする。
前処理部103は、データ入力部101から入力されるシステムデータを、後段で処理可能なデータにするために、データの標準化やデータクリーニングなどの処理し、出力する。例えば、得られるデータが文字列データの場合は数値化を行い、必要に応じて規格化やデータクリーニングを実施する。前処理部103における処理の方法についてはデータの形状、種類等に合わせた処理を行う必要があり、固定の方法に制限されるものではない。前処理部103が生成し、出力するデータを以降、監視データと称する。
本実施形態においては、監視データはN(Nは自然数)次元の時系列データであり、Webサーバのアクセスログに含まれるN種類の時系列データの例を示す。監視データは、それぞれ時間依存性をもつ1次元以上の時系列データであることが望ましいが、特に限定されるものではない。具体的には、アクセスログに含まれる取得時刻と紐づけられたIPアドレスやポート番号である。ここでN=2として、IPアドレスとポート番号との2種類の時系列データを生成してもよいが、本実施形態においては、IPアドレスとポート番号を2進数のデータ(ビット)に変換し、1ビットごとの時系列データを生成する。例えば、IPv4におけるIPアドレスは32ビットにより構成されるため、32種類の時系列データとみなす。また、同様にポート番号を16ビットの数値データとして、ポート番号は16種類の時系列データにより構成されるとみなす。従って、本実施形態においては、監視データは、N=48(=32+16)の時系列データとして出力される。
ここで、IPアドレスの時系列データ数をNa、ポート番号の時系列データ数をNbとして、IPアドレスとポート番号の時刻tにおける時系列データを次のように示す。
IPアドレス:(a1(t)、a2(t)、・・・、aNa(t))
ポート番号:(b1(t)、b2(t)、・・・、bNb(t))
前処理部103が出力する時刻tにおける監視データをx(t)とすると、IPアドレスとポート番号を並べて次のように定義する。
監視データ:x(t)
=(a1(t)、・・、aNa(t)、b1(t)、・・、bNb(t))
=(x1(t)、・・、xi(t)、・・、xNx(t))
ただし、Nx=Na+Nbであり、上の具体例の場合は、Nx=48である。
第1学習部104は、前処理部103から入力されるN次元の監視データから機械学習により相関モデルを特定する相関モデルパラメータを算出する。本実施形態においては、第1学習部104における機械学習アルゴリズムとしてAuto Encoderを用いる。Auto Encoderについては、公知であるため詳細な説明は省略するが、図3Aを用いて簡単に説明する。
図3Aは、同実施形態に係る第1学習部における機械学習の一例を示す図であり、Auto Encoderの例である。入力ユニット1041A、1041B、1041C(以降、3つの入力ユニットで特に区別する必要がない場合は、単に入力ユニット1041と記す)は、監視データが入力される入力層である。入力ユニット1041A、1041B、1041Cには、それぞれ異なる監視データxi(t)が入力される。ここでiはNx以下の自然数とし、各入力ユニットに割り振られた番号に相当する。例えば、入力ユニット1041Aに対してi=1、1041Bに対してi=2、1041Cに対してi=3のように割り振る。ただし、入力ユニットとiの関係はこの限りではない。隠れ層ユニット1042は、Auto Encoderによる相関モデルを特徴づける隠れ層である。出力ユニット1043A、1043B、1043C(以降、3つの入力ユニットで特に区別する必要がない場合は、単に入力ユニット1041と記す)は、Auto Encoderにより算出された結果が出力される出力層である。入力ユニットの数(以降、入力ユニット数と称する)と出力ユニットの数(以降、出力ユニット数と称する)は一致し、出力ユニット1043A、1043B、1043Cは、それぞれ入力ユニット1041A、1041B、1041Cの入力に対応する出力となる。従って、出力ユニット1043に対して対応する入力ユニット1041に割り振られた番号と同じ番号を割り振る。具体的には、1043Aに対してi=1、1043Bに対してi=2、1043Cに対してi=3となる。また、入力ユニット数、出力ユニット数は、監視データの時系列データ数Nxに一致する。図3Aにおいては、入力ユニット数が3、出力ユニット数が3、隠れ層ユニット数が2の場合の例として模式的に示したが、本実施形態における入力ユニット数および出力ユニット数はそれぞれNxである。
また、第1学習部104に相関モデルパラメータを算出させる前に、入力および出力ユニット数、隠れ層ユニット数やEPOCHなどをAuto Encoderに予め設定しておく。設定は、ユーザインターフェースからユーザが設定してもかまわない。
図2に戻り、記憶部105は、第1学習部104が算出する相関モデルパラメータが保存される。
第1算出部106は、第1予測値算出手段1061と異常度算出手段1062を含む。
第1予測値算出手段1061は、記憶部105から相関モデルパラメータを取得し、取得した相関モデルパラメータにより特定される相関モデル(Auto Encoder)の入力ユニットに前処理部103から入力されるNx個の監視データを入力し、出力ユニットからNx個の出力データ(以降、相関モデル予測データと称する)を出力する。相関モデル予測データを以下のように示す。
相関モデル予測データ:z(t)=(z1(t)、・・zi(t)、・・、zNz(t))
ただし、iはNz以下の自然数であり、Nz=Nxである。
異常度算出手段1062は、相関モデル予測データzi(t)と監視データxi(t)との2乗誤差(以降、第1の乖離度と称する)を全てのiに対して計算し、それらの総和を異常度y(t)として算出する。
異常度:y(t)=Σ_{i=1}^Nz{(zi(t)−xi(t))
ただし、Σ_{i=1}^Nz{fi(t)}は、関数fi(t)の時刻tにおけるi=1からi=Nzについての総和(サメーション)を意味する。
ここで、本実施形態では、監視データxi(t)の各要素に対して割り振られた番号iごとに重み係数kを定義する。
重み係数:k=(k1、k2、・・、・ki・・、kNx)
この重み係数は、例えば、監視データの各要素iの重要度や第1の乖離度の大きさなどにより決定する。具体的には、第1の乖離度が大きいデータには、重み付けを大きな値にすることで、異常検知の検知速度が改善される。また、監視データxi(t)に含まれるIPアドレスのLSBやMSBなど特定のビットが異常検知には重要であると予めわかっているような場合は、そのビットに対するkiを大きな値に設定するといったように使用する。通常は、ki=1(ただしiはNx以下の自然数)とする。重み係数を考慮する場合の異常度y(t)は、(zi(t)−xi(t))にkiを掛け算して、以下のようになる。
異常度(重み係数あり):y(t)
=Σ_{i=1}^Nz{ki*(zi(t)−xi(t))
重み係数を考慮することで、異常検知の検知速度が改善され、異常の誤検知を減少させる効果がある。
第1判定部107は、第1算出部106が算出した異常度y(t)に基づいて異常を検知したか否かを判定する。本実施形態においては、判定に異常度y(t)を用いることで、N次元の監視データに対する異常の判断を1次元の異常度y(t)で行うことが可能となり、異常検知処理の処理量を削減できる。また、1次元の異常度y(t)で判断を行うことで、異常検知の検知速度が改善される。
第1閾値決定部108は、第1算出部106が算出する異常度y(t)に対して、異常が発生しているか否かを決定するための閾値など判断基準を決定する。決定方法については、本実施形態における動作の説明にて詳述する。
平滑化部109は、入力された時系列データである異常度y(t)に対して平滑化を行い、平滑化された異常度X(t)(以降、平滑異常度X(t)と称する)を出力する。平滑化の手法は、単純移動平均でもよい。ただし平滑化は監視データの特性に応じて監視データごとに並行して実施することが可能であり、監視データごとに異なる平滑化法でもよく、例えば、同じ単純移動平均に限らない。また、平滑化の手法やパラメータは異常検知の対象データの特性に応じて任意に決定してよい。平滑化は、異常度の時系列データy(t)に対するノイズ成分除去などの目的のために使用するが、異常検知の精度改善の効果もある。例えば、装置の経年劣化のように監視データが長時間で緩やかにしか変化しないような異常の検知をする場合は、瞬時の変動などノイズを除去するためにy(t)の平滑化の度合いを強めるように平滑化の手法やパラメータを用いることも可能である。また一方、情報ネットワークなどにおける不正侵入など異常の検知する場合には、監視データの変動を早急に検知する必要があるため、y(t)に対し平滑化をしないかもしくは平滑化の度合いを弱めるように平滑化の手法やパラメータを用いることも可能である。
第2学習部110は、平滑化部109から入力される平滑異常度X(t)の時系列データから機械学習により時系列モデルを特定する時系列モデルパラメータを算出する。本実施形態においては、第2学習部110における機械学習アルゴリズムとしてLong−Short Term Memory(以降、LSTMと称する)を用いる。LSTMは、時間依存性を持つ時系列データを扱うことの可能な機械学習アルゴリズムの一つであるが、LSTMのベースとなる機械学習アルゴリズムであるRecurrent Neural Network(以降、RNNと称する)よりも、長期の時間依存性を持つ時系列データを扱うことが可能である。LSTMについては、公知であるため詳細な説明は省略するが、図3Bを用いて簡単に説明する。
図3Bは、同実施形態に係る第2学習部における機械学習の一例を示す図であり、LSTMの例である。
入力ユニット1101に、時刻tに平滑異常度X(t)が平滑化部109から入力される。隠れ層1102は、時系列モデルを特徴付ける隠れ層であり、機械学習によって、時刻tに時系列モデルパラメータであるh(t)が計算される。出力ユニット1103は、h(t−1)によって特徴づけられる時系列モデルを用いて時刻tに算出された、平滑異常度X(t)に対する予測データZ(t)が出力される。図3Bにおいては、入力データX(t)と時系列モデルパラメータh(t−1)とから、予測データZ(t)が出力される関係がt=1からt=Tまで推移する様子が示されている。
図2に戻り、記憶部111は、第2学習部110が算出する時系列モデルパラメータが保存される。
第2算出部112は、第2予測値算出手段1121と判定値算出手段1122を含む。
第2予測値算出手段1121は、記憶部111から時系列モデルパラメータを取得し、取得した時系列モデルパラメータにより特定される時系列モデル(LTSM)の入力ユニット1101に平滑化部109からから入力される平滑異常度X(t)を入力し、出力ユニット1103から時系列モデル予測データZ(t)を算出する。
判定値算出手段1122は、時系列モデル予測データZ(t)と平滑異常度X(t)との2乗誤差を計算し、それを異常判定値Y(t)として算出する。
第2判定部113は、第2算出部112が算出した異常判定値Y(t)に基づいて異常を検知したか否かを判定する。
第2閾値決定部114は、第2算出部112が算出する異常判定値Y(t)に対して、異常が発生しているか否かを決定するための閾値など判断基準を決定する。決定方法については、本実施形態における動作の説明にて詳述する。
制御部115は、異常検知部10の各機能を制御する。なお、図2において制御部115は特に結線をしていないが、各機能との間でデータのやり取りをし、制御を行う。
以下に、本実施形態に係るシステムの動作例を説明する。
本実施形態に係るシステムにおいては、機械学習によるモデル学習を完了させてから、学習したモデルを用いて運用する。
(機械学習によるモデル学習とモデル評価の動作例)
図4Aは、同実施形態に係る異常検知部の第1および第2モデル生成時の処理動作の一例を示すフローチャートであり、異常検知部10の機械学習によるモデル学習における処理動作の例を示している。
記憶部11に保存されているアクセスログ(システムデータ)をデータ入力部101に入力して、第1学習部104にて機械学習(Auto Encoder)によって相関モデルの生成処理を行う(ステップS11)。ここで用いるシステムデータは、正常動作時に取得したデータすなわち異常が発生していない時に取得したデータとし、学習用データと称する。また、正常動作時とは、例えば、装置を立ち上げたばかりの非定常な期間ではなく、ある程度長期間動作させた上で異常がないような定常的な期間を選択することが望ましい。
図4Bは、同実施形態に係る異常検知部の第1モデル生成時の詳細処理動作の一例を示すフローチャートであり、図4Aのステップ11の詳細を示している。
データ入力部101は学習用データを取得し、前処理部103へ出力する(ステップS1101)。前処理部103は、入力された学習用データから異常検知に必要なデータを抽出し、後段の第1学習部104が処理可能なデータ形式に変換して、監視データとして第1学習部104に出力する(ステップS1102)。本実施形態では、前処理部103は、IPアドレスとポート番号のデータとそのデータを取得した時刻を抽出し、IPアドレスとポート番号のデータを2進数のデータに変換し、時系列の監視データx(t)として出力する。第1学習部104は、監視データx(t)を入力ユニット1041から入力し、第1の機械学習を行う(ステップS1103)。具体的には、第1学習部104は、機械学習アルゴリズムであるAuto Encoderの相関モデルパラメータを十分な学習データを用いて機械学習により決定する。第1学習部104は、十分な量の学習用データで第1の機械学習を実施するまでステップS1101からS1104までの処理を繰り返す(ステップS1104のNO)。第1学習部104は、十分な量の学習用データで第1の機械学習を実施したら第1のモデルの生成が完了する(ステップS1104のYES)。第1学習部104は、生成した第1のモデルの相関モデルパラメータを記憶部105に保存する。
図4Aに戻り、第1学習部104が学習用データにより相関モデルを生成すると、記憶部11に保存されているアクセスログのうち学習用データとして用いたデータ以外のデータを用いて相関モデルの妥当性確認のための基準決定を行う(ステップS12)。ここで用いるデータは、学習用データと同様、正常動作時に取得したデータとし、学習用データに対して判定基準設定用データと称する。具体的には以下のようなフローで処理をする。
判定基準設定用データをデータ入力部101から入力すると、データ入力部101は、監視データx(t)として第1算出部106に出力する。第1算出部106は、記憶部105に保存されている相関モデルパラメータを用いて、監視データx(t)に対する相関モデル予測データであるz(t)を算出する。第1算出部は、監視データx(t)と算出したz(t)とから異常度y(t)を算出し、異常度y(t)を第1閾値決定部108へ出力する。第1閾値決定部108は、図示せぬ記憶部に異常度y(t)を蓄積し、例えば確率密度分布、累積密度分布などのデータ分布を形成する。
図5は、同実施形態に係る閾値決定部による閾値決定方法の一例を示す図であり、ここでは蓄積した異常度y(t)を用いて形成した確率密度分布の例を説明する。
縦軸1081は、確率密度の値を示す。横軸1082は、蓄積したデータの値を示し、ここでは異常度の値を示す。分布1083は確率密度分布の一例を示し、閾値1084は、異常度の値に対する閾値を示す。
例えば、分布1083の累積確率90%値を閾値1084として決定する。異常度に対する閾値1084を第1閾値とする。決定した第1閾値は、第1閾値決定部108の図示せぬ記憶部に保存される。本実施形態においては90%値を用いるが、90%に限られずユーザが0%から100%の任意の値に設定できる。
モデルの妥当性の評価基準としては、例えば、データ分布のデータ総数のうち、しきい値以内に収まっているデータ個数から求める比率を用いる方法もあるが、混同行列を用い、算出した正解率を用いる方法もある。閾値の決定は、一度決定した後も必要に応じて実施し、決定の頻度は学習回数に応じて決定する。
ステップS12にて判定基準設定用データを用いた相関モデル確認のための判定基準が決定されると、記憶部11に保存されているアクセスログのうち学習用データ、判定基準設定用データとして用いたデータ以外のデータを用いて相関モデルの妥当性確認を行う(ステップS13)。ここで用いるデータは、学習用データ、判定基準設定用データと同様、正常動作時に取得したデータとし、推論用データと称する。具体的には相関モデルの妥当性確認を以下のように実施する。
判定基準設定用データの場合と同様、第1算出部は、推論用データに対する異常度y(t)を算出し、第1閾値決定部108の図示せぬ記憶部に異常度y(t)を蓄積し、確率密度関数のデータ分布を形成する。ここで形成するデータ分布には、判定基準設定用データから算出したデータは含ませない。十分な推論用データに対して、異常度y(t)データを蓄積しデータ分布が形成されたら、第1判定部107は、データ分布の90%値と第1閾値決定部108に保存した第1閾値とを比較する(ステップS14)。
第1判定部107による比較の結果、もしデータ分布の90%値が第1閾値よりも大きい場合は、第1判定部107は相関モデルが正確に作成されていないと判断する。第1判定部107は判断結果を制御部115に出力すると、制御部115は、例えば、モニターなど図示せぬ表示部に「相関モデルの妥当性が確認できませんでした」といった表示をさせ、ユーザにアラーム通知する。ユーザにより再度ステップS11の第1のモデル生成処理が実施される(ステップS14のNO)。再度ステップS11を実施する場合は、ユーザは相関モデル(Auto Encoder)の隠れ層ユニット数やEpochを変更するなどをして、再度同じ学習用データを用いて実施する。また、隠れ層ユニット数やEpochの変更をせずに、学習用データを変えたり、学習用データの量を多くして再度機械学習したりする(機械学習による学習期間を長くする)などでステップS11を実施することでもよい。また、本実施形態においては、アラーム通知を受けたユーザがステップS11を再開させる例を示したが、例えば、隠れ層ユニット数やEpoch、学習データなどの変更や相関モデルの妥当性の確認をプログラムなどで自動化させることでもかまわない。
ステップS14において、第1判定部107による比較の結果、データ分布の90%値が第1閾値よりも小さい場合は、第1判定部107は相関モデルが正確に作成されていると判断し、ステップS15へ進む(ステップS14のYES)。
第1判定部107で相関モデルが正確に作成されていると確認された時に用いた学習データを再度データ入力部101に入力して、第2学習部110にて機械学習(例えば、LTSM)によって時系列モデルの生成処理を行う(ステップS15)。具体的には、以下の例に示すようなフローとなる。
図4Cは、同実施形態に係る異常検知部の第2モデル生成時の詳細処理動作の一例を示すフローチャートであり、図4Aのステップ15の詳細を示している。
データ入力部101は学習用データを取得し、前処理部103へ出力する(ステップS1501)。前処理部103は、入力された学習用データから異常検知に必要なデータを抽出し、後段の第1学習部104が処理可能なデータ形式に変換して、監視データとして第1学習部104に出力する(ステップS1502)。第1算出部106は、入力された監視データと、先のステップS14にて妥当性が確認された第1のモデルとから、異常度y(t)を算出する(ステップS1503)。異常度y(t)は平滑化部109に入力され、平滑化部109は平滑異常度X(t)を出力する(ステップS1504)。平滑異常度X(t)は第2学習部110に入力され、第2学習部110は平滑異常度X(t)により第2の機械学習を行う(ステップS1505)。具体的には、第2学習部110は第2のモデルのモデルである時系列モデルを特定する時系列モデルパラメータを算出する。第2学習部110は、十分な量の学習用データで第2の機械学習を実施するまでステップS1501からS1506までの処理を繰り返す(ステップS1506のNO)。第2学習部110は、十分な量の学習用データで第2の機械学習を実施したら第2のモデルの生成が完了する(ステップS1506のYES)。第2学習部110は、生成した第2のモデルの時系列モデルパラメータを記憶部111に保存する(ステップS15)。
図4Aに戻り、第2学習部110による時系列モデルの生成が完了すると、ステップS12で用いた判定基準設定用データ用いて時系列モデルの妥当性確認のための基準決定を行う(ステップS16)。具体的には以下のようなフローで処理をする。
データ入力部101に入力された判定基準設定用データに対して第2算出部112が算出した異常判定値Y(t)を第2閾値決定部114の図示せぬ記憶部に蓄積し、例えば図5の確率密度関数のデータ分布1083を形成する。得られた異常判定値に対するデータ分布からステップS12と同様に、例えば、分布の90%値を第2閾値(図5の閾値1084に相当)として決定する。決定した第2閾値は、第2閾値決定部112の図示せぬ記憶部に保存する(ステップS16)。
ステップS16にて時系列モデル確認のための判定基準が決定されると、ステップS13で用いた推論用データを用いて時系列モデルの妥当性確認を行う(ステップS17)。
具体的には時系列モデルの妥当性確認を以下のように実施する。
第2算出部112は、推論用データに対する異常判定値Y(t)を算出し、ステップS13同様に、第2閾値決定部114の図示せぬ記憶部に異常判定値Y(t)を蓄積し、確率密度関数のデータ分布を形成する。第2判定部113は、データ分布の90%値と第2閾値決定部114に保存した第2閾値とを比較する(ステップS18)。
第2判定部113による比較の結果、もしデータ分布の90%値が第1閾値よりも大きい場合は、第2判定部113は時系列モデルが正確に作成されていないと判断する。第2判定部113は判断結果を制御部115に出力すると、制御部115は、例えば、モニターなど図示せぬ表示部に「時系列モデルの妥当性が確認できませんでした」といった表示をさせ、ユーザにアラーム通知する。ユーザにより再度ステップS15の第2のモデル生成処理を実施する(ステップS18のNO)。再度ステップS15を実施する場合は、ユーザは隠れ層ユニット数や時系列モデル予測データZ(t)の算出に必要な時系列モデルパラメータh(t)の数といった設定パラメータの変更をするなどをして、再度、先にS15で用いた学習用データにより学習を実施する。また、設定パラメータの変更をせずに、先にS15で用いたデータとは異なる学習用データを使用したり、学習用データの量を多くして再度機械学習したりする(機械学習による学習期間を長くする)などでステップS15を実施することでもよい。また、本実施形態においては、アラーム通知を受けたユーザがステップS15を再開させる例を示したが、例えば、設定パラメータの変更や時系列モデルの妥当性の確認をプログラムなどで自動化させることでもかまわない。
ステップS18において、第2判定部113による比較の結果、データ分布の90%値が第2閾値よりも小さい場合は、第2判定部113は時系列モデルが正確に作成されていると判断し、相関モデル、時系列モデルの生成処理を終了する(ステップS18のYES)。以上の手順で作成された相関モデルによって異常検知対象機器であるサーバ1の正常動作状態をモデル化することができる。
なお、ステップS14およびS18において相関モデル、時系列モデルの妥当性が確認された場合に、図示せぬ表示部に「相関モデルは正確に作成されました」、「時系列モデルは正確に作成されました」などの表示をさせ、ユーザに通知してもよい。
(異常検知の運用時における動作例)
図6は同実施形態に係る異常検知部の運用時の処理動作の一例を示すフローチャートである。
異常検知部10のデータ入力部101はシステムデータを取得する(ステップS111)。上記のモデル生成時に用いたシステムデータに対して、ここで用いるシステムデータを運用データと称する。運用データは、例えば、外部クライアントがサーバ1にアクセスした際に、通信処理部12もしくはサーバ基本処理部14などにおいて図示せぬバッファーなどの記憶部にアクセスログとして一時的に保存される。データ入力部101は、図示せぬバッファーにアクセスし運用データを取得する。データ入力部101が運用データを取得する周期は、できるだけ短い時間にすることで、速やかな異常検知が可能となる。また、アクセスログのデータが変化した場合のみ、データ入力部101はアクセスログを取得することでもよい。例えば、サーバ1の制御部13がアクセスログのデータが変化したことを検知し、異常検知部10の制御部115に異常検知の開始を命令すると、制御部115が、データ入力部101にアクセスログを取得させ、変化した部分のシステムデータに対してのみ後段処理を実施させてもよい。
運用データが前処理部103に入力されると、前処理部103は監視データx(t)を出力する(ステップS112)。監視データx(t)が、第1算出部106に入力されると、第1算出部106は、異常度y(t)を算出し第1判定部107に出力する。第1判定部107は、入力された異常度y(t)と第1閾値決定部108に保存されている第1閾値とを比較して、取得した運用データに異常が含まれているか否かを判定する(ステップS113)。具体的には、第1判定部107は、異常度y(t)が第1閾値よりも大きい場合、「Webサーバ(サーバ1)に異常が発生している」と判定し、図示せぬモニターなどの表示部に「Webサーバに異常発生」などと表示させ、ユーザにアラーム通知をする(ステップS114のYES、S115)。
また、第1判定部107は、異常度y(t)が第1閾値よりも小さい場合(ステップS114のNO)、「Webサーバに異常はなし」と判定し、ステップS116へ進む。
異常度y(t)は平滑化部109に入力され、平滑化部109は平滑異常度X(t)を第2算出部112へ出力する(ステップS116)。第2算出部112は、異常判定値Y(t)を算出し、第2判定部113へ出力する。第2判定部113は、入力された異常判定値Y(t)と第2閾値決定部114に保存されている第2閾値とを比較して、取得した運用データに異常が含まれているか否かを判定する(ステップS117)。
第2判定部113は、異常判定値Y(t)が第2閾値よりも大きい場合、「Webサーバ(サーバ1)に異常が発生している」と判定し、図示せぬモニターなどの表示部に「Webサーバに異常発生」などと表示させ、ユーザにアラーム通知をする(ステップS118のYES、S115)。
第2判定部113は、異常判定値Y(t)が第2閾値よりも小さい場合、「Webサーバに異常はなし」と判定し、次のシステムデータを取得する(ステップS118のNO、S111)。
このように本実施形態によれば、判定に異常度y(t)を用いることで、N次元の監視データに対する異常の判断を1次元の異常度y(t)で行うことが可能となり、本実施形態における異常検知処理の処理量を削減できる。
また、算出した異常度y(t)に対し、異常検知を判定するための第2閾値を設定することで、大量のセンサ値(本実施形態においては監視データの種類Nx=48)を効率よく処理し、精度よく速やかに異常を検知する異常検知方法が提供可能となる。
なお、本実施形態においては、第2学習部110における機械学習アルゴリズムをLTSMとしたが、例えば、RNNでもよいし、またLTSMの変種であるGated Recurrent Unit(以降、GRUと称する)などの機械学習アルゴリズムを用いることでも良い。
GRUは、LSTMの忘却ゲートと入力ゲートを更新ゲートとして1つのゲートに統合した構造となり、LSTMでは4つのゲートがあったが、更新ゲート、忘却ゲート、出力ゲートの3つのゲートで構成され、LSTMよりもパラメータ数や処理量が削減される。すなわちLSTMよりも簡易な構成でLSTMと同様に長周期データの特徴の記憶を維持しやすいアルゴリズムとなっている。
第2学習部110における機械学習アルゴリズムにRNNやGRUを適用した場合も、LSTMの場合と同様に、図4A、図6の手順に従うことで異常検知が可能となる。
このように本実施形態では、大量のセンサ値を同時に計算するだけではなく、各センサ値の時系列変化をも考慮することができるため、異常検出精度を改善する効果がある。また、異常検出の機会を増加させることができることから異常検出率を改善する効果がある。以上からサイバー攻撃の複雑化した情報ネットワークにおける異常検知にも利用可能となる。
なお、本実施形態においては、異常検知の運用時に、リアルタイムに運用データを取得して異常判定値Y(t)と第2閾値と比較することで異常検知を実施する例を示したが、運用データに対する異常判定値Y(t)をある程度の期間蓄積して、蓄積したデータに対して異常検知の判定を行うことでも良い。例えば、蓄積した異常判定値のデータのうち、ある閾値を超える異常判定値のデータの割合として異常検出割合(Accuracy)を算出し、任意に決定した異常検出割合のしきい値を超えるか否かで正常・異常を判定することでもよい。具体的には、異常判定値の時刻tまでの蓄積データ数をNY(t)、そのうち、第2閾値を超える異常判定値の数をNab(t)とすると、異常検出割合PA(t)=Nab(t)/NY(t)として求める。PA(t)に対する第3閾値を例えば80%とし、PA(t)>80%となった時点で、異常が発生していると判定する。また同様の考え方は第1判定部における異常検知判定にも用いることができる。
(第2の実施形態)
本実施形態においては、検知対象として、複数センサを有する複数の被検知装置を想定し、それらの被検知装置に対する故障検知および故障予知を行う例を示す。第1の実施形態においては、ネットワーク上の異常検知についての一例を示したが、本実施形態においては、例えば、工場内のネットワークに接続された装置や設備の異常検知の一例を示す。
図7は、第2の実施形態に係る異常検知システムの構成の一例を示す機能ブロック図である。
異常検知システム2は、異常検知装置20と1つ以上の被検知装置200(図では200A、200Bとしているが特に区別の必要がない場合は200と記す)を含み、それぞれがネットワーク2000に接続されている。異常検知装置20と被検知装置200とが工場などの閉じた場所で使用されることを考慮して、ネットワーク2000は閉じたネットワークの一例として示したが、閉じたネットワークとは限らずインターネットなどでもよいし、また有線に限らず無線を用いたネットワークでも良い。
異常検知装置20は、例えば、PCなどのコンピュータによって構成され、図1に示した異常検知部10を含む。また、記憶部21、通信処理部23、制御部24もそれぞれ図1の記憶部11、通信処理部12、制御部13と同等の機能であり、ここでは特に説明を省略する。
被検知装置200は、1つ以上のセンサを有し、センサで取得したデータを異常検知システムに送信する。被検知装置200は、例えば、PCなどのコンピュータの他、センサを備える工場などで使用される機械設備や車両などでも良い。図では被検知装置200A、200Bとして、被検知装置数が2の場合の例を示しているが、特に制限はなく、1つ以上の任意の数としてもよい。
図8は、同実施形態に係る被検知装置の機能構成の一例を示す機能ブロック図である。
被検知装置200は、センサ201(図ではセンサ201A、201Bを示しているが、特に区別の必要がない場合は201と記す)で、各種データを出力する。センサ201の種類は特に制限はなく、例えば、温度センサ、加速度センサ、また音響センサとしてマイク、光センサとしてカメラや映像撮影装置などでもよい。また、図ではセンサ201A、201Bとしてセンサ数を2とした場合の例を示しているが、特に制限はなく、1つ以上の任意の数としてもよい。また、被検知装置200ごとに備えるセンサ201の数や種類は異なってもよい。
データ処理部202は、センサ201が出力した各種センサデータを、2値データに変換したり、予め決められた形式のデータに加工したりして、出力する。
通信処理部203は、データ処理部202が出力するデータを異常検知装置20へ送信するために、既定のフォーマットを形成し、ネットワークに出力する。ここで送信されるセンサに対応するデータをセンサデータと称する。
制御部204は、被検知装置200の各機能を制御する。例えば、異常検知装置20からの命令に従って、センサ201に対してデータを出力の有無を制御する。
以下に、本実施形態に係るシステムの動作例を説明する。
各被検知装置200は、予め決められたセンサデータを異常検知装置20へ送信する。本実施形態では、被検知装置200から常時センサデータを収集している状況を想定しているが、異常検知装置20が必要に応じてセンサデータを適宜収集可能としてもよい。また、本実施形態では、異常検知装置20がネットワークを介してセンサデータを収集する状況を想定しているが、被検知装置200からデータ収集装置等の別の装置を介してセンサデータを異常検知装置20に入力することも可能である。
異常検知装置20においては、通信処理部23でセンサデータを受信し、異常検知部10や記憶部21に入力する。
異常検知装置20における処理は、第1の実施形態において示した処理と同等である。すなわち、異常検知装置20において、記憶部21に保存されているセンサデータを、異常検知部10のデータ入力部101に入力し、前処理部103が監視データx(t)を生成、出力する。監視データx(t)について下記に示す。
データ入力部101に入力される被検知装置200Aのセンサデータに対して、前処理部103から出力される監視データをx_a(t)と記す。また、被検知装置200Bのセンサデータに対する監視データをx_b(t)と記す。
例えば、被検知装置200AからNsa個のセンサからデータが出力され、被検知装置200BからNsb個のセンサからデータが出力される場合は、
被検知装置200Aからの監視データ:x_a(t)
=(a1(t)、a2(t)、・・・、aNsa(t))
被検知装置200Bからの監視データ:x_b(t)
=(b1(t)、b2(t)、・・・、bNsb(t))
従って、監視データx(t)は、x_a(t)とx_b(t)とから下記のようになる。
監視データ:x(t)
=(a1(t)、・・、aNsa(t)、b1(t)、・・、bNsb(t))
=(x1(t)、・・、xi(t)、・・、xNx(t))
ただし、Nx=Nsa+Nsbである。第1の実施形態においては、x(t)の各要素は2値データであったが、本実施形態では、実数でも構わない。
上記のように得た監視データx(t)を用いることで、第1の実施形態において示した処理と同等の処理をすることで異常検知が可能となる。具体的には、図4Aのフローチャートに従って、相関モデルと時系列モデルを決定する。相関モデルと時系列モデルが決定され、異常検知の運用に入ったら図6のフローチャートに従って処理を行うことで、異常検知が可能となる。
このように本実施形態によれば、複数センサを有する複数の被検知装置が設置される工場を想定し、異常検知システムとして精度よく速やかに異常を検知する異常検知装置が提供可能となる。
また、本実施形態の異常検知方法は、センサ群からのセンサデータに基づき、異なるセンサ間の相関性を把握し、センサの相関的変化に基づいて異常検知対象機器の挙動の変化および相関性を示すパラメータの時系列変動から、異常発生パターンを予知し、早期に異常を検知することが可能である。
(第3の実施形態)
本実施形態においては、情報ネットワークにおいて、ルータへのアクセスログを解析することで、外部ネットワークからのサイバー攻撃や不正侵入などを検知する例を示す。
図9は、第3の実施形態に係る異常検知システムの一例を示す機能ブロック図である。
異常検知システム3においては、ネットワーク3000に異常検知装置20、複数のルータ300A、300B(特に区別の必要がない場合は、以降、ルータ300と示す)が接続されている。
異常検知装置20は、第2の実施形態にて示した図7の異常検知装置20と同等である。
ネットワーク3000は、ファイヤーウォールなどによりインターネットなどのパブリックなネットワークと隔離されたネットワークを想定しており、例えば、社内イントラネットである。
ルータ300は、情報ネットワークで用いられるルータ装置であり、例えば、ファイヤーウォールなどがインストールされており、社内イントラネットとインターネットの境界であり、橋渡し的な役割を備える。また図9においては、ルータ300A、300Bの2つが示されているが、ルータの数は特に制限はない。
図10は、同実施形態に係るネットワーク構成の一例を示す機能ブロック図であり、ルータ300からインターネット側のネットワーク構成の一例である。
ルータ300は、データ処理部31、通信処理部32、制御部33を備える。
ネットワーク3001は、インターネットなど不特定多数の人がアクセス可能なパブリックなネットワークを想定している。
外部装置301A、301Bは、ネットワーク3001に接続可能な装置であり、不特定多数の装置を含んでも良い。例えば、PC、スマートフォンなどでもよい。
以下に、本実施形態に係るシステムの動作例を説明する。
異常検知装置20は、各ルータ300からアクセスログを取得し、異常検知部10や記憶部21に入力する。なるべく迅速に異常検知するためには、各ルータ300から短期間でアクセスログを異常検知装置20に送信するのが望ましい。
各ルータ300のアクセスログには、各ルータ300にアクセスした外部装置301のIPアドレスやアクセス先のIPアドレス、ポート番号などが示されている。
異常検知装置20における処理は、第1の実施形態および第2の実施形態において示した処理と同等である。
すなわち、異常検知装置20は、記憶部21に保存されているアクセスログ(センサデータに相当)を、異常検知部10のデータ入力部101に入力し、監視データx(t)を出力する。監視データx(t)について下記に示す。
前処理部103は、入力されるアクセスログに対して、データの標準化やデータクリーニング、抽出などの処理を行い、監視データx(t)を出力する。監視データx(t)の設定は、ルータ300ごとにデータを分ける方法1と、全てのルータ300のデータを一度合わせた後に、時刻でソートして、ルータ300に依存しないデータの種類ごとの時系列データとする方法2がある。ルータ300ごとのアクセスの状況が重視される場合には方法1を使用し、異常検知システム内へのアクセスの状況が重視される場合には、方法2を使用することが望ましい。
方法1の場合の監視データx(t)は以下のようになる。図10においては、外部装置301A、301Bの2つの例について示しているが、ルータ300A、ルータ300BにそれぞれNra個、Nrb個の外部装置が接続した状況を想定する。
ルータ300Aのアクセスログに対する監視データ:x_ra(t)
=(a1(t)、a2(t)、・・・、aNra(t))
ルータ300Bのアクセスログに対する監視データ:x_rb(t)
=(b1(t)、b2(t)、・・・、bNrb(t))
従って、前処理部103は、x_ra(t)とx_rb(t)とから監視データを下記のように得る。ただし、Nx=Nra+Nrbである。
監視データ:x(t)
=(a1(t)、・・、aNra(t)、b1(t)、・・、bNrb(t))
=(x1(t)、・・、xi(t)、・・、xNx(t))
また、方法2の場合は、前処理部103が全てのデータをまとめて、データを時刻でソートをして、下記のように監視データを得る。ただし、Nx=Nra+Nrbである。
監視データ:x(t)=(x1(t)、・・、xi(t)、・・、xNx(t))
また、方法1、方法2において得たx(t)の各要素は2値データでもよいし、本実施形態では、実数でも構わない。ただし、実数の場合は、前処理部103で0から1の値に正規化をする。
上記のように得た監視データx(t)を用いることで、第1の実施形態において示した処理と同等の処理をすることで異常検知が可能となる。具体的には、図4Aのフローチャートに従って、相関モデルと時系列モデルを決定する。相関モデルと時系列モデルが決定され、異常検知の運用に入ったら図6のフローチャートに従って処理を行うことで、異常検知が可能となる。
このように本実施形態によれば、インターネットのように不特定多数の外部装置301がルータ300へアクセス可能な状況において、サーバ攻撃や不正アクセスなどの異常を精度よく速やかに検知する異常検知システムが提供可能となる。
以上述べた少なくとも1つの実施形態によれば、大量のセンサ値を効率よく処理し、精度よく速やかに異常を検知する異常検知装置、異常検知方法および異常検知プログラムを提供することができる。
なお、実施形態1から実施形態3のうち任意の実施形態、また各実施形態において用いられる任意の方法を組み合わせて実施しても構わない。また、各実施形態において、各実施形態で用いられる方法への切り替えを可能としても構わない。
上記した本システムにおける要点は以下のように記載することもできる。
(A−1)
複数種類の入力データを収集するデータ収集工程(図6のステップS111)と、
前記収集データの正規化やデータ欠如時の処理を行う前処理工程(図6のステップS112)と、
前記収集データの正常時のデータについて機械学習を実行することで、前記入力データ間の相関モデルを生成する相関モデル生成工程(図4AのステップS11〜S13)と、
任意の評価時における複数種類のデータを、前記相関モデルへの各入力ノードと各出力ノードとの乖離度を評価する第1の検定工程(図6のステップS113)と、
前記正常状態からの乖離度について、各出力ノードの乖離度の総和を抽出する異常度抽出工程(図6のステップS113)と、
前記異常度抽出工程で抽出された、乖離度の総和の時系列データを平滑化する平滑化工程(図6のステップS116)と、
前記平滑化工程で平滑化された乖離度の総和の時系列データを機械学習へ入力することにより、正常時の時系列モデルを生成する時系列モデル生成工程(図4AのステップS15〜S17)と、
任意の評価時における前記乖離度の総和の時系列データを、前記時系列モデルとの乖離度を評価する第2の検定工程(図6のステップS117)と、
を含むことを特徴とする異常検知方法。
(A−2)
前記相関モデル生成工程においては、時間変動が含まれる入力データに基づき、前記の時間変動が特徴ベクトルに含まれるように機械学習を実行することを特徴とする(A−1)に記載の異常検知方法
(A−3)
前記相関モデル生成工程においては、オートエンコーダを用いて相関モデルを生成し、
前記第1の検定工程においては、前記相関モデルへの入力値と出力値との誤差もしくは2乗誤差を正常状態からの乖離度として算出し、前記乖離度が予め定められた判定しきい値以上である場合には異常と判定することを特徴とする(A−2)に記載の異常検知方法
(A−4)
前記相関モデル生成工程においては、正常時のデータを学習データとして入力して相関モデルを生成し、
前記第1の検定工程においては、学習データ以外の正常時のデータによる前記相関モデルの入力値と出力値の誤差の分布が一定の割合を含む範囲を判定しきい値とする(A−2)に記載の異常検知方法。
(A−5)
前記第1の検定工程において異常と判定された場合は、その判定結果を出力して、異常と判定されなかった場合は、前記第2の検定工程を実施することを特徴とする(A−1)に記載の異常検知方法。
(A−6)
前記異常度抽出工程においては、前記相関モデル生成工程において抽出される各出力ノードの予測値と実測値との差分の和を抽出することを特徴とする(A−1)に記載の異常検知方法
(A−7)
前記異常度抽出工程においては、前記予測値と実測値の差分に対し前記差分の大きさもしくは重要度に基づき重み成分を付与する(A−6)に記載の異常検知方法。
(A−8)
前記異常抽出工程において生成された異常度は、前記予測値と実測値との差分の和であることを特徴とする(A−6)に記載の異常検知方法。
(A−9)
前記異常度の時系列データに対して前記平滑化工程で平滑化した時系列データにより、時系列モデル生成を行うことを特徴とする(A−8)に記載の異常検知方法。
(A−10)
時間変動が含まれる前記異常度の時系列データを入力データとし、機械学習を実行することを特徴とする(A−1)に記載の異常検知方法。
(A−11)
前記時系列モデル生成工程においては、LSTM(Long−Short Term Memory)を用いて時系列モデルを生成し、
前記第2の検定工程においては、前記時系列モデルの入力値と出力値の誤差を正常状態からの乖離度として算出し、乖離度が予め定められた判定しきい値以上である場合には異常と判定することを特徴とする(A−10)記載の異常検知方法
(A−12)
前記異常抽出工程において、正常時のデータを基に抽出された異常度を出力し、
前記時系列モデル生成工程において、前記正常時のデータを基に抽出された異常度に基づいて時系列モデルを生成し、
前記第2の検定工程においては、前記時系列モデルの生成時に未使用の正常時のデータによる前記時系列モデルの入力値と出力値の誤差の分布において、分布の割合に対して判前記判定しきい値を定める(A−11)に記載の異常検知方法。
(A−13)
前記時系列モデル生成工程において、LSTMの代わりにRNN(Recurrent Neural Network)を用いて時系列モデルを生成する(A−11)に記載の異常検知方法。
(A−14)
前記時系列モデル生成工程において、LSTMの代わりにGRU(Gated Recurrent Unit)を用いて時系列モデルを生成する(A−11)に記載の異常検知方法。
本発明のいくつかの実施形態を説明したが、これらの実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。複数の実施形態を組み合わせてもよく、この組み合わせで構成される実施例も発明の範疇である。また、使用している名称や用語についても限定されるものではなく、他の表現であっても実質的に同一内容、同趣旨であれば、本発明に含まれるものである。さらに、請求項の各構成要素において、構成要素を分割して表現した場合、或いは複数を合わせて表現した場合、或いはこれらを組み合わせて表現した場合であっても本発明の範疇である。
本発明の実施形態を説明するための図面は、説明をより明確にするため、実際の態様に比べて、各部の幅、厚さ、形状等について模式的に表される場合がある。図面の機能ブロック図においては、説明に必要な機能の構成要素をブロックで表しており、一般的な機能の構成要素についての記載を省略している場合がある。また機能を示すブロックは機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。例えば、各機能のブロックの分散・統合の具体的な形態は図中の形態に限らない。各機能のブロックにおける使用状況などに応じて、機能的もしくは物理的に分散・統合して構成する。また、図面の機能ブロック図においては、結線されていないブロック間、もしくは結線されていても矢印が示されていない方向に対してもデータや信号のやり取りを行う場合もある。
図面のフローチャートに示す処理は、ハードウェア(ICチップなど)もしくはソフトウェア(プログラムなど)もしくはハードウェアとソフトウェアの組み合わせによって実現してもよい。また請求項を制御ロジックとして表現した場合、コンピュータを実行させるインストラクションを含むプログラムとして表現した場合、及び前記インストラクションを記載したコンピュータ読み取り可能な記録媒体として表現した場合でも本発明の装置を適用したものである。
また、使用している名称や用語についても限定されるものではなく、他の表現であっても実質的に同一内容、同趣旨であれば、本発明に含まれるものである。
1・・・サーバ10・・・異常検知部、11・・・記憶部、12・・・通信処理部、13・・・制御部、14・・・サーバ基本処理部、101…データ入力部、102…データ出力部、103…前処理部、104…第1学習部、105…記憶部、106…第1算出部、107…第1判定部、108…第1閾値決定部、109…平滑化部、110…第2学習部、111…記憶部、112…第2算出部、113…第2判定部、114…第2閾値決定部、115…制御部。

Claims (18)

  1. 少なくも1つの異常検知対象が出力するシステムデータを取得するデータ入力手段と、
    前記システムデータに基づいて時系列の監視データを生成するデータ処理手段と、
    前記監視データを用いて第1の機械学習により得た相関モデルと入力監視データとから第1のモデル予測値を算出する第1予測値算出手段と、
    前記入力監視データの値と前記第1のモデル予測値との誤差の大きさを示す異常度を算出し、時系列データである異常度時系列データを出力する異常度算出手段と、
    前記異常度時系列データを用いて前記第1の機械学習とは異なる第2の機械学習により得た時系列モデルから前記異常度に対する第2のモデル予測値を算出する第2予測値算出手段と、
    前記異常度と前記異常度に対する前記第2のモデル予測値との誤差の大きさを示す乖離度を算出する判定値算出手段と、
    前記異常度または前記乖離度のいずれかに基づいて前記異常検知対象に異常が発生したか否かを判断する異常判定手段とを具備することを特徴とする異常検知装置。
  2. 前記第1の機械学習は、Auto Encoderを用いる請求項1に記載の異常検知装置。
  3. 前記第1の機械学習は、前記異常検知対象に異常が検知されていない期間に取得された第1のシステムデータから得られる第1の監視データを用いて、前記相関モデルを生成することを特徴とする請求項1もしくは請求項2のいずれか1項に記載の異常検知装置。
  4. 前記異常度算出手段は、前記入力監視データの値と前記第1のモデル予測値との二乗誤差である再構成誤差ごとに前記再構成誤差の大きさもしくはプライオリティに基づいて重み付けをし、前記重み付した再構成誤差の総和を異常度として算出することを特徴とする請求項1乃至請求項3のいずれか1項に記載の異常検知装置。
  5. 第1の閾値決定手段をさらに備え、
    前記異常度算出手段は、前記第1のシステムデータから得られる第1の監視データを含まない第2の監視データを用いて第1の異常度を算出し、
    前記第1の閾値決定手段は、前記第1の異常度の値を蓄積して第1の異常度の確率分布を作成し、前記第1の異常度の確率分布における累積確率によって第1の閾値を決定し、
    前記異常判定手段は、前記第1の閾値を決定した後に、前記異常検知対象から運用時に取得される第2のシステムデータから第3の監視データを得て、得られた前記第3の監視データを用いて第2の異常度を算出し、前記第2の異常度と前記第1の閾値とを用いて前記異常検知対象に異常が発生しているか否かを判断する請求項3に記載の異常検知装置。
  6. 前記異常判定手段は、前記第2の異常度が前記第1の閾値を超えた場合に、前記異常検知対象に異常が発生していると判断する請求項5に記載の異常検知装置。
  7. 前記第1の閾値決定手段は、前記第2の異常度の値で第2の異常度の確率分布を作成し、
    前記異常判定手段は、前記第2の異常度の確率分布において前記第1の閾値以上である前記第2の異常度の割合が予め定めた第1の割合閾値を超えた場合に、前記異常検知対象に異常が発生していると判断する請求項5に記載の異常検知装置。
  8. 前記第1の閾値決定手段が前記第1の閾値を決定した後に、前記第1の異常度を用いて前記第2の機械学習によって前記時系列モデルを生成することを特徴とする請求項5に記載の異常検知装置。
  9. 第2の閾値決定手段をさらに備え、
    前記第2の閾値決定手段は、前記第1の異常度から算出した第1の乖離度の値を蓄積して第1の乖離度の確率分布を作成し、前記第1の乖離度の確率分布における累積確率によって第2の閾値を決定し、
    前記異常判定手段は、前記第2の閾値決定手段が前記第2の閾値を決定した後に、前記第2の異常度を用いて算出した第2の乖離度の値と前記第2の閾値とを用いて前記異常検知対象に異常が発生しているか否かを判断する請求項8に記載の異常検知装置。
  10. 前記異常判定手段は、前記第2の乖離度の値が前記第2の閾値よりも大きい場合に前記異常検知対象に異常が発生していると判定する請求項9に記載の異常検知装置。
  11. 前記異常判定手段は、前記第2の乖離度の値で第2の乖離度の確率分布を作成し、前記第2の乖離度の確率分布において前記第2の閾値以上である前記第2の乖離度の割合が予め定めた第2の割合閾値を超えた場合に、前記異常検知対象に異常が発生していると判断する請求項9に記載の異常検知装置。
  12. 前記異常判定手段は、前記第2の異常度と前記第1の閾値とを用いて前記異常検知対象に異常が発生していないと判断した場合に、前記乖離度による判定を実施する請求項10または請求項11のいずれか1項に記載の異常検知装置。
  13. 前記異常度算出手段が出力する前記異常度の時系列データを平滑化する平滑化部をさらに備え、
    前記平滑化部により平滑化した前記異常度の時系列データを前記判定値算出手段への入力とする請求項8乃至請求項12のいずれか1項に記載の異常検知装置。
  14. 前記第2の機械学習は、Long−Short Term Memoryを用いる請求項1に記載の異常検知装置。
  15. 前記第2の機械学習は、Recurrent Neural Networkを用いる請求項1に記載の異常検知装置。
  16. 前記第2の機械学習は、Gated Recurrent Unitを用いる請求項1に記載の異常検知装置。
  17. 少なくも1つの異常検知対象が出力するシステムデータを取得し、
    前記システムデータに基づいて時系列の監視データを生成し、
    前記監視データを用いて第1の機械学習により得た相関モデルと入力監視データとから第1のモデル予測値を算出し、
    前記入力監視データの値と前記第1のモデル予測値との誤差の大きさを示す異常度を算出し、
    時系列データである異常度時系列データを出力し、
    前記異常度時系列データを用いて前記第1の機械学習とは異なる第2の機械学習により得た時系列モデルから前記異常度に対する第2のモデル予測値を算出し、
    前記異常度と前記異常度に対する前記第2のモデル予測値との誤差の大きさを示す乖離度を算出し、
    前記異常度または前記乖離度のいずれかに基づいて前記異常検知対象に異常が発生したか否かを判断する異常検知方法。
  18. 異常検知対象に異常が発生したか否かをコンピュータが判断するプログラムであって、
    少なくも1つの異常検知対象が出力するシステムデータを取得する手順と、
    前記システムデータに基づいて時系列の監視データを生成する手順と、
    前記監視データを用いて第1の機械学習により得た相関モデルと入力監視データとから第1のモデル予測値を算出する手順と、
    前記入力監視データの値と前記第1のモデル予測値との誤差の大きさを示す異常度を算出する手順と、
    時系列データである異常度時系列データを出力する手順と、
    前記異常度時系列データを用いて前記第1の機械学習とは異なる第2の機械学習により得た時系列モデルから前記異常度に対する第2のモデル予測値を算出する手順と、
    前記異常度と前記異常度に対する前記第2のモデル予測値との誤差の大きさを示す乖離度を算出する手順と、
    前記異常度または前記乖離度のいずれかに基づいて前記異常検知対象に異常が発生したか否かを判断するする手順とを前記コンピュータに実行させるためのプログラム。
JP2019181373A 2019-10-01 2019-10-01 異常検知装置、異常検知方法および異常検知プログラム Active JP7204626B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019181373A JP7204626B2 (ja) 2019-10-01 2019-10-01 異常検知装置、異常検知方法および異常検知プログラム
US17/014,270 US20210097438A1 (en) 2019-10-01 2020-09-08 Anomaly detection device, anomaly detection method, and anomaly detection program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019181373A JP7204626B2 (ja) 2019-10-01 2019-10-01 異常検知装置、異常検知方法および異常検知プログラム

Publications (2)

Publication Number Publication Date
JP2021056927A true JP2021056927A (ja) 2021-04-08
JP7204626B2 JP7204626B2 (ja) 2023-01-16

Family

ID=75163277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019181373A Active JP7204626B2 (ja) 2019-10-01 2019-10-01 異常検知装置、異常検知方法および異常検知プログラム

Country Status (2)

Country Link
US (1) US20210097438A1 (ja)
JP (1) JP7204626B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7143790B2 (ja) * 2019-03-12 2022-09-29 トヨタ自動車株式会社 運転制御システム
KR20210067783A (ko) * 2019-11-29 2021-06-08 삼성전자주식회사 전자 장치, 그 제어 방법 및 시스템
CN114815763A (zh) * 2021-01-27 2022-07-29 西门子股份公司 一种动态控制系统的异常检测方法、装置和计算机可读介质
CN115495424A (zh) * 2021-06-18 2022-12-20 伊姆西Ip控股有限责任公司 数据处理的方法、电子设备和计算机程序产品
CN113743532B (zh) * 2021-09-16 2024-03-19 睿云奇智(重庆)科技有限公司 异常检测方法、装置、设备及计算机存储介质
CN114004313A (zh) * 2021-11-25 2022-02-01 脸萌有限公司 故障gpu的预测方法、装置、电子设备及存储介质
CN114978579A (zh) * 2022-04-08 2022-08-30 联合汽车电子有限公司 一种信息处理方法、异常检测装置、介质及车载控制器
CN115514614B (zh) * 2022-11-15 2023-02-24 阿里云计算有限公司 基于强化学习的云网络异常检测模型训练方法及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018160093A (ja) * 2017-03-23 2018-10-11 株式会社日立製作所 異常検知システムおよび異常検知方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017222616A1 (de) * 2017-12-13 2019-06-13 Robert Bosch Gmbh Verfahren zum automatisierten Erstellen von Regeln für eine regelbasierte Anomalieerkennung in einem Datenstrom

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018160093A (ja) * 2017-03-23 2018-10-11 株式会社日立製作所 異常検知システムおよび異常検知方法

Also Published As

Publication number Publication date
JP7204626B2 (ja) 2023-01-16
US20210097438A1 (en) 2021-04-01

Similar Documents

Publication Publication Date Title
JP7204626B2 (ja) 異常検知装置、異常検知方法および異常検知プログラム
EP3462267B1 (en) Anomaly diagnosis method and anomaly diagnosis apparatus
JP6609050B2 (ja) 時間的因果グラフにおける異常フュージョン
JP2018156151A (ja) 異常検知装置及び機械学習装置
Sugiarto et al. Data classification for air quality on wireless sensor network monitoring system using decision tree algorithm
JP6183450B2 (ja) システム分析装置、及び、システム分析方法
JP6636883B2 (ja) 評価装置、評価方法、および評価プログラム
JP6564799B2 (ja) 閾値決定装置、閾値決定方法及びプログラム
US11620539B2 (en) Method and device for monitoring a process of generating metric data for predicting anomalies
KR20180046598A (ko) 이상 감지 관리 방법 및 그 장치
JP2015529813A (ja) 遺伝的プログラミングを用いて発見された前兆的特徴からの、残存耐用寿命の推定
JP5061744B2 (ja) 状況解析システムおよび状況解析方法
CN113434859A (zh) 入侵检测方法、装置、设备及存储介质
CN116670608A (zh) 用于物联网预测建模的混合系综方法
CN111679657A (zh) 一种基于工控设备信号的攻击检测方法及系统
CN117319047A (zh) 一种基于网络安全异常检测的网络路径分析方法及系统
EP4038557A1 (en) Method and system for continuous estimation and representation of risk
JP2019036865A (ja) 通信解析装置、通信解析プログラム、及び通信解析方法
JP2007213194A (ja) 状況解析システムおよび状況解析方法
JP5310094B2 (ja) 異常検出システム、異常検出方法および異常検出用プログラム
EP3093770A2 (en) System and method for the creation and detection of process fingerprints for monitoring in a process plant
US20170346834A1 (en) Relating to the monitoring of network security
CN112182056A (zh) 一种数据检测方法、装置、设备及存储介质
EP3667512A1 (en) A cloud platform and method for efficient processing of pooled data
CN114450645A (zh) 智能过程异常检测和趋势预估系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210910

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220914

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221228

R151 Written notification of patent or utility model registration

Ref document number: 7204626

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151