JP6564799B2 - 閾値決定装置、閾値決定方法及びプログラム - Google Patents

閾値決定装置、閾値決定方法及びプログラム

Info

Publication number
JP6564799B2
JP6564799B2 JP2017040590A JP2017040590A JP6564799B2 JP 6564799 B2 JP6564799 B2 JP 6564799B2 JP 2017040590 A JP2017040590 A JP 2017040590A JP 2017040590 A JP2017040590 A JP 2017040590A JP 6564799 B2 JP6564799 B2 JP 6564799B2
Authority
JP
Japan
Prior art keywords
abnormality
detection
unit
threshold value
learning
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
JP2017040590A
Other languages
English (en)
Other versions
JP2018148350A (ja
Inventor
泰弘 池田
泰弘 池田
中野 雄介
雄介 中野
敬志郎 渡辺
敬志郎 渡辺
石橋 圭介
圭介 石橋
川原 亮一
亮一 川原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2017040590A priority Critical patent/JP6564799B2/ja
Publication of JP2018148350A publication Critical patent/JP2018148350A/ja
Application granted granted Critical
Publication of JP6564799B2 publication Critical patent/JP6564799B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Testing And Monitoring For Control Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、閾値決定装置、閾値決定方法及びプログラムに関する。
コンピュータシステムのリアルタイムな異常検知の方法として、システム上の様々なデータを定期的に観測し、データが正常時と異なる傾向を示した場合に「異常」として検知するアルゴリズムが考えられる。
例えば、予め正常時として定義された「学習期間」のデータが教師データとして用いられて学習され、異常検知を行う「テスト期間」においては、観測されたテストデータの傾向と、学習した教師データの傾向との比較が行われる異常検知アルゴリズムが考えられる。
異常検知アルゴリズムとしては様々な手法が提案されているが、その多くにおいてアルゴリズムの出力は、観測されたテストデータの正常状態からの距離で定義される異常度となる。そのため、異常検知を行う際には異常の有無を判断するための異常度の閾値を定める必要がある(例えば、非特許文献1、非特許文献2参照)。
河嵜光毅,吉川大弘,古橋武,"時系列データの異常検出を目的とした深層学習における再構築誤差の利用可能性に関する検討",The 29th Annual Conference of the Japanese Society for Artificial Intelligence, 2015 Chandola, Varun, Arindam Banerjee, and Vipin Kumar. "Anomaly detection: A survey." ACM computing surveys (CSUR) 41.3 (2009): 15.
異常検知に用いられる閾値の設定が低い場合には、多くの異常を検知できる一方で、実際には異常ではない場合に「異常」と判断してしまう誤検知が増える要因となる。一方、閾値の設定が高い場合には誤検知が少なくなるが、実際に異常である場合に「異常」と判断できない見逃しが増える要因となる。そのため、閾値は目的に応じて適切に定める必要があるが、人手を用いた閾値の設定はオペレータの稼働を増やす要因となり、閾値を自動的に決定するための工夫が必要となる。
本発明は、上記の点に鑑みてなされたものであって、異常検知に用いられる閾値を自動的に決定することを目的とする。
そこで上記課題を解決するため、閾値決定装置は、異常の検知対象から収集されたデータを学習した学習結果と、テスト期間において異常の検知対象から観測されたデータとに基づいて異常度を算出し、当該異常度を閾値と比較することで異常の発生を検知する検知部と、異常の見逃し及び誤検知の有無に基づいて前記閾値を決定する閾値決定部とを有し、前記閾値決定部は、単位時間ごとに誤検知の回数及び見逃しの回数を計算し、一定期間分の誤検知の回数及び見逃しの回数の計算が終了した場合、誤検知の回数の標準偏差及び見逃しの回数の標準偏差を計算し、前記計算された誤検知の回数及び誤検知の回数の標準偏差と、前記計算された見逃しの回数及び見逃しの回数の標準偏差に基づいて、前記閾値の増減量を計算する

異常検知に用いられる閾値を自動的に決定することができる。
第1の実施の形態におけるシステム構成例を示す図である。 第1の実施の形態における異常検知装置10のハードウェア構成例を示す図である。 第1の実施の形態における異常検知装置10の機能構成例を示す図である。 第1の実施の形態における学習処理の処理手順の一例を説明するためのフローチャートである。 第1の実施の形態における検知処理の処理手順の一例を説明するためのフローチャートである。 オートエンコーダを説明するための図である。 第1の実施の形態における閾値決定処理の処理手順の一例を説明するためのフローチャートである。 第2の実施の形態における閾値決定処理の処理手順の一例を説明するためのフローチャートである。 第3の実施の形態における閾値決定処理の処理手順の一例を説明するためのフローチャートである。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、第1の実施の形態におけるシステム構成例を示す図である。図1において、ネットワークN1は、異常の検知対象とされるネットワークである。ネットワークN1は、ルータやサーバ装置等の複数のノードが相互に接続されることによって構成され、所定のサービスを提供するために任意のノード間においてパケットの送受信が行われる。
ネットワークN1の複数箇所には測定装置20が配置されている。測定装置20は、配置箇所を監視することで得られる観測データを複数のタイミングで採取する。収集される観測データの一例として、MIB(Management Information Base)データ、NetFlowによるフローデータ、CPU使用率等が挙げられる。
MIBは、ネットワーク機器を監視するためのメーカ間の共通ポリシーである。MIBデータは、例えば、5分単位で集約され、「時刻、ホスト名、インターフェース(IF)名、入力データ量(ibps)、出力データ量(obps)」等を含む。
NetFlowは、フロー単位でのネットワーク監視をおこなう技術であり、通信が終了した段階でそのフローに関する情報が出力される。また、フローとは、「何処」と「何処」が「どのような通信」を「どれだけの量」行っているかを把握するための単位をいい、通信の送り手側のIPアドレス(srcIP)、送り手側のポート番号(srcport)、受け手側のIPアドレス(dstIP)、受け手側のポート番号(dstport)、通信プロトコル(proto)の5属性によりまとめられる。フローデータは、「フロー開始時刻、srcIP、srcport、dstIP、dstport、proto、フロー継続時間、総送信パケット数、総送信バイト数」等を含む。
CPU使用率は、例えば、ネットワークN1に含まれるサーバ装置又はルータ等のCPUの使用率である。
測定装置20によって採取された観測データは、異常検知装置10によって収集される。異常検知装置10は、収集された観測データから、正常時の特徴を学習し、学習結果に基づいて、その後に入力される観測データについて、異常の発生を検知する(異常の有無を判定する)コンピュータである。なお、正常時の特徴の学習が行われる処理を「学習処理」といい、学習処理が行われる期間を「学習期間」という。学習処理において学習された結果に基づいて異常の検知が行われる処理を「テスト処理」といい、テスト処理が行われる期間を「テスト期間」という。
異常検知装置10には、実際に異常が発生したときの情報を記録する異常記録装置30が接続されている。異常記録装置30は、ネットワークオペレータ等がネットワークN1の障害情報を記録するためのコンピュータである。例えば、異常記録装置30には、redmineと呼ばれるプロジェクト管理ソフトウェアを利用することができる。異常記録装置30には、情報入力時刻、障害情報及びログサンプル等が記録される。情報入力時刻は、ネットワークオペレータ等が障害情報を入力した時刻であり、障害情報は、ネットワークオペレータが入力した情報の内容であり、ログサンプルは、ネットワークオペレータ等が測定装置20から取得したsyslog等のメッセージである。なお、syslogは、測定装置20がログメッセージをネットワーク上で転送するための規格であり、syslogで転送されるログメッセージは、「時刻、メッセージ、ホスト」等を含む、時刻はメッセージが測定装置20により出力された時刻である。ここでは、このログサンプル内の時刻を、異常が発生した異常発生時刻として扱う。
図2は、第1の実施の形態における異常検知装置10のハードウェア構成例を示す図である。図2の異常検知装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
異常検知装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って異常検知装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
図3は、第1の実施の形態における異常検知装置10の機能構成例を示す図である。図3において、異常検知装置10は、受信部11、学習処理制御部12、前処理部13、学習部14、検知処理制御部15、検知部16、異常発生情報取得部17及び閾値決定部18等を有する。これら各部は、異常検知装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。異常検知装置10は、また、教師データ記憶部121、パラメータ記憶部122、観測データ記憶部123、学習結果記憶部124、学習データ記憶部125、検知結果記憶部126及び異常発生情報記憶部127等を利用する。これら各記憶部は、例えば、補助記憶装置102、又は異常検知装置10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
教師データ記憶部121には、予め正常時に収集されたことが確認されている観測データが教師データとして記憶されている。但し、教師データは、観測データから選別されるのではなく、人為的に作成されてもよい。
受信部11は、測定装置20から観測データを受信する。受信された観測データは、観測データ記憶部123に記憶される
学習処理制御部12は、学習処理を制御する。
前処理部13は、教師データの集合、観測データの集合、又は学習データ記憶部125に記憶されている学習データの集合について前処理を実行する。前処理とは、データ集合からの単位時間ごとの特徴量の抽出や、抽出された特徴量の正規化等の処理である。特徴量は、数値ベクトルの形式で表現される。なお、1回目の学習時には、教師データ記憶部121に記憶されている教師データ群が前処理の対象とされる。受信部11によって観測データの受信が開始されると、観測データ群が前処理の対象とされる。更に、検知部16による異常の検知が開始され、正常であると判定され、学習データとして学習データ記憶部125に記憶された観測データが所定数に達すると、当該学習データ群が前処理の対象とされてもよい。
前処理部13は、また、教師データ群又は学習データ群について前処理を実行する際に、観測データ又は学習データを正規化するためのパラメータ(以下、「正規化パラメータ」という。)を生成又は更新し、生成又は更新された正規化パラメータをパラメータ記憶部122に記憶する。
学習部14は、教師データ又は学習データに基づいて学習を実行する。学習部14による学習結果は、学習結果記憶部124に記憶される。
検知処理制御部15は、検知処理を制御する。
検知部16は、観測データ記憶部123に記憶されている観測データが前処理部13によって前処理されることで生成される数値ベクトルと、学習結果記憶部124に記憶されている学習結果とに基づいて異常の発生を検知する。具体的には、検知部16は、前処理された数値ベクトルについて、学習結果との違いを異常度として算出し、当該異常度を閾値と比較することで異常の発生を検知する。閾値は予め設定されるが、以下に説明するように閾値決定部18において適切な値に更新される。異常が検知されなかった数値ベクトルの正規化前の値は、学習データとして学習データ記憶部125に記憶されてもよい。また、検知部16は、単位時間ごとの検知有無、算出された異常度等を検知結果記憶部126に記憶する。
異常発生情報取得部17は、異常記録装置30から、異常が発生した異常発生時刻を取得し、異常発生情報記憶部127に記憶する。異常発生時刻は、定期的に(例えば、1日1回)取得されるものとしてよい。
閾値決定部18は、誤差を考慮して、異常発生情報記憶部127に記憶されている異常発生時刻前後の一定の時間帯に実際に異常が発生したとみなし、検知結果記憶部126に記憶されている検知有無と照合して、異常の見逃し及び誤検知の有無を判断する。その結果、閾値決定部18は、検知部16において異常度との比較に用いられる閾値を決定する。
以下、異常検知装置10が実行する処理手順について説明する。図4は、第1の実施の形態における学習処理の処理手順の一例を説明するためのフローチャートである。なお、以下においては、便宜上、フローデータが処理対象である例について示す。
学習処理が開始されると、学習処理制御部12は、教師データ記憶部121から教師データ群を取得し、当該教師データ群を前処理部13へ入力する(S101)。
続いて、前処理部13は、入力された教師データ群を、単位時間ごとの集合に分割する(S102)。なお、教師データ記憶部121には、単位時間×Uの期間(学習期間)分の教師データが記憶されていることとする。したがって、教師データ群は、U個の集合に分割される。
続いて、前処理部13は、分割された集合ごとに、目的に応じた特徴量を抽出し、抽出された特徴量を各次元の要素とする多次元数値ベクトルを生成する(S103)。
例えば、単位時間が1分で、前処理部13が、1分間ごとの特徴量を抽出するとする。また、特徴量を、各プロトコル(TCP、UDP)の全送信バイト数であるとする。この場合、先頭の教師データのフロー開始時刻が12:00:00であるとすると、前処理部13は、全教師データのうち、フロー開始時刻tが11:59:00<=t<12:00:00であるような教師データ(フローデータ)の集合について、プロトコルがTCPである全フローの全送信バイト数、プロトコルがUDPである全フローの全送信バイト数等を計算し、それらの特徴量を各次元の要素とする2次元数値ベクトルを生成する。(U−1)個の他の集合についても同様に、数値ベクトルが生成される。
なお、特徴量の属性としては、「TCPかつ送信ポート番号が80」のような組合せとして指定することも可能である。また、各フローが「フロー数:1」のような値を持つと見なせば、各属性を持つフローの総フロー数についても同様に計算し、特徴量としてみなすことが可能である。
続いて、前処理部13は、各数値ベクトルにおける各メトリックi(各次元i)の最大値xmax_iを算出し、算出したxmax_1をパラメータ記憶部122に記憶する(S104)。すなわち、第1の実施の形態において、各メトリックiの最大値xmax_iが、正規化パラメータである。
ここで、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である)。
続いて、前処理部13は、正規化パラメータに基づいて、各数値ベクトルを正規化する(S105)。正規化は、各数値ベクトルのメトリックiの値が最大値xmax_iによって除されることにより行われる。したがって、正規化された数値ベクトルは、{{0.8,0.4},{0.9,0.7},{1,1}}となる。
続いて、学習部14は、当該数値ベクトルについて学習器を利用して学習する(S106)。学習結果は、学習結果記憶部124に記憶される。
続いて、学習処理制御部12は、学習データ記憶部125に、学習期間分の学習データが記憶(蓄積)されるのを待機する(S107)。すなわち、U個の正規化前の数値ベクトルが学習データ記憶部125に記憶されるまで待機が継続する。なお、学習データ記憶部125には、検知部16によって正常である(異常が発生していない)と判定された数値ベクトルが記憶される。
学習期間分の数値ベクトルが学習データ記憶部125に記憶されると(S107でYes)、学習処理制御部12は、学習データ記憶部125から数値ベクトル群を取得し、当該数値ベクトル群を前処理部13へ入力する(S108)。なお、取得された数値ベクトル群は、学習データ記憶部125から削除される。続いて、当該数値ベクトル群について、ステップS104以降が実行される。したがって、次のステップS105では、新たに計算されるxmax_iに基づいて正規化が行われる。
図5は、第1の実施の形態における検知処理の処理手順の一例を説明するためのフローチャートである。図5の処理手順は、図4のステップS106が少なくとも1回実行された後であれば、いつ開始されてもよい。すなわち、図5の処理手順は、図4の処理手順と並行して実行される。
ステップS201において、検知処理制御部15は、単位時間の経過を待機する。当該単位時間は、図4の説明における単位時間と同じ時間長である。この待機中に、リアルタイムに収集され、受信部11によって受信された観測データは観測データ記憶部123に記憶される
単位時間が経過すると(S201でYes)、検知処理制御部15は、直近の単位時間分の観測データ群を観測データ記憶部123から取得し、当該観測データ群を前処理部13へ入力する(S202)。
続いて、前処理部13は、当該観測データ群から目的に応じた特徴量を抽出し、抽出された特徴量を各次元の要素とする多次元数値ベクトルを生成する(S203)。例えば、プロトコルがTCPである全フローの全送信バイト数、プロトコルがUDPである全フローの全送信バイト数が抽出され、これらを各次元の要素とする2次元数値ベクトルが生成される。ここでは、1つの数値ベクトルが生成される。
続いて、前処理部13は、生成された数値ベクトルを、パラメータ記憶部122に記憶されている最大値xmax_iに基づいて正規化する(S204)。すなわち、当該数値ベクトルの各メトリックiが、最大値xmax_iによって除算される。
例えば、図4のステップS104が上記の教師データに基づいて1回のみ実行されている場合、最大値xmax_iは、{100,50}である。したがって、当該数値ベクトルが{60,40}である場合、当該数値ベクトルは、{0.6,0.8}に正規化される。
続いて、検知部16は、異常判定処理を実行する(S205)。異常判定処理では、正規化された数値ベクトルについて、学習結果記憶部124に記憶されている最新の学習結果との違いが異常度として算出される。当該異常度を閾値と比較することによって、ネットワークN1について異常の有無が判定される。検知部16は、判定した異常の有無(すなわち、検知有無)と、算出された異常度とを検知結果記憶部126に記憶する。
異常が無いと判定された場合(S206でYes)、検知処理制御部15は、当該数値ベクトルの正規化前の数値ベクトルを、学習データとして学習データ記憶部125に記憶する(S207)。異常が有ると判定された場合(S206でNo)、当該数値ベクトルの正規化前の数値ベクトルは、学習データ記憶部125に記憶されない。したがって、学習データ記憶部125には、正常時の数値ベクトルのみが記憶される。
続いて、ステップS201以降が繰り返される。なお、ステップS201以降が繰り返される過程において、ステップS204で利用される正規化パラメータは、並行して実行されている図4のステップS104において随時更新される。その結果、入力される観測データのトレンドを考慮して数値ベクトルを正規化することができる。
例えば、U=3である場合、ステップS207が3回実行されて、{{60,40},{45,20},{30,30}}が学習データ記憶部125に記憶されたとする。この場合、xmax_1=60、xmax_2=40に更新され、更新結果がパラメータ記憶部122に反映される。
なお、上記では、観測データがフローデータである例について説明したが、フローデータ、MIBデータ、及びCPU使用率が並列的に観測データとして受信されてもよい。この場合、図4及び図5の処理手順の各ステップでは、データ種別ごと(フローデータ、MIBデータ、及びCPU使用率ごと)に実行されればよい。
なお、例えば{hostID,interfaceID,ibps,obps}のような形式で与えられるMIBデータについては、「単位時間におけるホストIDaのibps」、「単位時間におけるホストIDaのobps」、「単位時間におけるホストIDbのibps」、「単位時間におけるホストIDbのobps」...「単位時間におけるinterfaceIDxのibps」、「単位時間におけるinterfaceIDxのobps」、「単位時間におけるinterfaceIDyのibps」、「単位時間におけるinterfaceIDyのobps」のように、数値ベクトルを抽出することが可能である。
続いて、図4のステップS106及び図5のステップS205の一例について説明する。ステップS106及びS205では、データ種別がラベルとして付与された数値ベクトル群が学習部14又は検知部16に入力される。本実施の形態において、ラベルは「フローデータ」、「MIBデータ」、及び「CPU使用率」のいずれかである。ラベルは、例えば、測定装置20又は受信部11によって教師データ及び観測データに付与される。すなわち、観測データの採取元に基づいて当該観測データに付与すべきラベルが特定可能である。当該ラベルは、前処理部13によって生成される数値ベクトルに引き継がれる。
図4のステップS106において、学習部14は、データ種別ごとに学習器を生成する。学習部14は、入力される数値ベクトルに付与されているラベルに基づいて数値ベクトルを分類し、分類結果に対応する学習器へ当該数値ベクトルを入力する。本実施の形態では「フローデータの学習器」、「MIBデータの学習器」、「CPU使用率の学習器」が生成される。学習器としては数値ベクトルのメトリック間の相関関係の学習による異常検知を行うオートエンコーダや主成分分析等を用いることができる。オートエンコーダについては、例えば、「櫻田 麻由・矢入 健久,"オートエンコーダを用いた次元削減による宇宙機の異常検知", 人工知能学会全国大会論文集 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.」に詳しい。本実施の形態では、学習器にオートエンコーダを用いる例について説明する。
図6は、オートエンコーダを説明するための図である。オートエンコーダは、ディープラーニングによる異常検知アルゴリズムである。オートエンコーダは、正常時の入力データがメトリック間で相関関係を持ち、低次元に圧縮可能であることを利用する。異常時には入力データの相関関係が崩れるため、圧縮が正しく行われず入力データと出力データとの差が大きくなる。
図6の(1)に示されるように、学習部14が生成する学習器(オートエンコーダ)は、出力層(Layer L)が入力層(Layer L)に近くなるように学習を行う。具体的には、学習部14は、数値ベクトルを2つに複製し、一方を入力層へ当てはめ、他方を出力層に当てはめて学習を行い、学習結果を出力する。学習結果は、学習結果記憶部124に記憶される。学習結果は、学習器に対するパラメータ群である。なお、学習器は、データ種別ごとに生成されるため、学習結果もデータ種別ごとに出力され、学習結果記憶部124に記憶される。
一方、検知部16も、学習部14と同様に、データ種別ごとに学習器を生成する。当該学習器には、学習部14によって生成される学習器と同様にオートエンコーダ又は主成分分析等のうち、学習部14が生成する学習器に対応する方法を用いることができる。
図5のステップS205において、検知部16は、学習結果記憶部124に記憶されている学習結果に基づいて、「フローデータの学習器」、「MIBデータの学習器」、「CPU使用率の学習器」を生成する。すなわち、検知部16によって生成される学習器は、当該学習結果の出力時において学習部14によって生成された学習器と同じである。検知部16は、図6の(2)に示されるように、ステップS205において入力されたデータ種別ごとの数値ベクトルを当該数値ベクトルのデータ種別に対応する学習器へ入力し、学習器に対する入力データと出力データとの距離(メトリック間の相関関係の崩れの程度を示す指標)を異常度として計算する。本実施の形態ではオートエンコーダの入力層と出力層との距離である平均二乗誤差(MSE:Mean Squared Error)が異常度として計算される。MSEの計算式は、以下の通りである。
Figure 0006564799
本実施の形態では、フローデータのMSE、MIBデータのMSE、CPU使用率のMSEの3種のMSEが得られる。検知部16は、得られたMSEの平均を、最終的な異常度として計算し、最終的な異常度が予め定められた閾値を超えていた場合に異常であると判定する。そうでない場合、検知部16は、正常とであると判定する。
図7は、第1の実施の形態における閾値決定処理の処理手順の一例を説明するためのフローチャートである。図7の処理手順は、異常発生情報取得部17によって異常記録装置30から取得された異常発生時刻が異常発生情報記憶部127に記憶されており、図5のステップS205が少なくとも1回実行された後であれば、いつ開始されてもよい。すなわち、図7の処理手順は、図5の処理手順と並行して実行される。
閾値決定部18は、単位時間ごとに、異常発生情報記憶部127に記憶されている異常発生時刻と、検知結果記憶部126に記憶されている検知有無とを集計する(S301)。例えば、11:59:00<=t<12:00:00に異常発生時刻が存在しない場合、異常無しとし、11:59:00<=t<12:00:00に異常が検知されなかった場合、検知無しとし、以下のように異常有無及び検知有無を集計する。
時間 異常有無 検知有無
12:00 0 0
12:01 1 0
12:02 0 1
12:03 1 1
・・・
ここで、1は異常有り、検知有りを示し、0は異常無し、検知無しを示す。上記の例では、12:01に異常が発生したにもかかわらず検知部16が異常の発生を検知できなかったため、見逃しであると判断できる。また、12:02に異常が発生していないにもかかわらず検知部16が異常の発生を検知したため、誤検知であると判断できる。見逃しは閾値が高いことから生じ、誤検知は閾値が低いことから生じるため、閾値決定部18は、誤検知が発生した場合には閾値を増加させ、見逃しが発生した場合には、閾値を減少させる。
具体的には、閾値決定部18は、異常有無及び検知有無の集計結果から、誤検知の回数n_1及び見逃しの回数n_2を計算する(S302)。12:00〜12:03までの集計結果では、n_1=1,n_2=1として計算される。ここで、誤検知の回数が多いほど、閾値の増加量は大きくすべきであり、見逃しの回数が多いほど、閾値の減少量は小さくすべきである。例えば、現在の閾値をθ_0とすると、新たに適用する閾値θは以下のように決定される。
θ=θ_0+n_1*Δθ−n_2*Δθ
ここで、Δθは閾値の増減量(n_1*Δθ−n_2*Δθ)を求めるためのパラメータである。このパラメータΔθが大きすぎる場合、閾値θが大きく変動し、誤検知又は見逃しの可能性が高くなることが考えられる。
このため、閾値決定部18は、一定期間分の誤検知の回数及び見逃しの回数の計算が終了した場合(S303でYes)、誤検知の回数n_1の標準偏差σ_1及び見逃しの回数n_2の標準偏差σ_2を計算する(S304)。
予め決められた増減量を求めるためのパラメータをΔθ_0とすると、新たに適用するパラメータΔθは、σ_1及びσ_2に基づいて以下のように計算される(S305)。
Δθ=Δθ_0*(1/σ_1)*(1/σ_2)
なお、Δθを上記のように動的に変化させずに、予め決められた固定値、試行錯誤的に得られた固定値等としてもよい。
閾値決定部18は、上記のΔθ、n_1、n_2を用いて、閾値の増減量(n_1*Δθ−n_2*Δθ)を計算し、新たに適用する閾値θを決定する(S306)。
上述したように、第1の実施の形態によれば、閾値の初期値が自動的に適切な閾値に更新される。また、誤検知の回数及び見逃しの回数により適切な閾値の増減量が決定され、誤検知及び見逃しを少なくすることができる。
次に、第2の実施の形態について説明する。第2の実施の形態では第1の実施の形態と異なる点について説明する。第2の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第2の実施の形態では、検知部16によって算出された異常度の分布から閾値θを決定する。
図8は、第2の実施の形態における閾値決定処理の処理手順の一例を説明するためのフローチャートである。図8の処理手順は、異常発生情報取得部17によって異常記録装置30から取得された異常発生時刻が異常発生情報記憶部127に記憶されており、図5のステップS205が少なくとも1回実行された後であれば、いつ開始されてもよい。すなわち、図8の処理手順は、図5の処理手順と並行して実行される。
閾値決定部18は、異常発生情報記憶部127に記憶されている異常発生時刻を参照して、異常が発生していない時間帯において、検知結果記憶部126に記憶されている異常度x_1,・・・,x_N(N:正常時において算出された異常度の数)を取得する(S401)。すなわち、閾値決定部18は、正常時に算出された異常度x_1,・・・,x_Nを取得する。なお、正常時の異常度x_1,・・・,x_Nは、教師データ記憶部121に記憶されている教師データ又は学習データ記憶部125に記憶されている学習データを検知部16に入力することにより求められてもよい。
閾値決定部18は、異常度x_1,・・・,x_Nの平均μ及び標準偏差σを計算する(S402)。
閾値決定部18は、正常時の異常度の分布からの外れ度合いを定義し、外れ度合いに基づいて閾値θを決定する(S403)例えば、観測データが入力されたときに検知部16が算出した異常度が正常時の平均+3σを超えた場合に、その観測データは異常であるとみなし、異常度の閾値θをθ=μ+3σとして決定する。
上述したように、第2の実施の形態によれば、正常時のデータから閾値が自動的に決定される。なお、第2の実施の形態において決定された閾値θは、第1の実施の形態において閾値の初期値θ_0として使用することも可能である。
第3の実施の形態では、検知部16によって検知された異常の検知精度が目標値を満足するように、閾値θを決定する。異常の検知精度としては、precision、recall又はF値等が存在する。precisionは異常と検知したもののうち実際に異常であったものの割合であり、誤検知の少なさに相当する。recallは本質的に異常であるもののうち異常と検知できたものの割合であり、見逃しの少なさに相当する。F値は、precisionとrecallの調和平均である。
図9は、第3の実施の形態における閾値決定処理の処理手順の一例を説明するためのフローチャートである。図9の処理手順は、異常発生情報取得部17によって異常記録装置30から取得された異常発生時刻が異常発生情報記憶部127に記憶されており、図5のステップS205が少なくとも1回実行された後であれば、いつ開始されてもよい。すなわち、図9の処理手順は、図5の処理手順と並行して実行される。
閾値決定部18は、検知結果記憶部126に記憶されている単位時間ごとの異常度の時系列x_1,・・・,x_Tを取得し、異常発生情報記憶部127に記憶されている異常発生時刻を取得する(S501)。ステップS301と同様に、時間tにおいて異常有りの場合、b_t=1とし、異常無しの場合b_t=0として、異常有無の時系列b_1,・・・,b_Tを生成する。
目的とする精度のメトリックをrecallとし、recallが目標値rを満足する最大の閾値を採用する場合を考える。この場合、時間t=1,・・・,Tにおいて検知する必要のある異常の数mはm=r*Σ_{t=1,・・・,T}b_tとして計算できる(S502)。
したがって、閾値決定部18は、異常が発生した時刻の異常度{x_t|b_t=1 for t=1,・・・,T}を降順に並べた場合のm番目の値を、閾値θとして決定すればよい(S503)。
なお、目的とする精度のメトリックがprecision又はF値である場合、閾値の初期値を0として、閾値を徐々に大きくしながらprecision又はF値を計算して、計算されたprecision又はF値が目標値を満足するときの閾値を採用することができる。
上述したように、第3の実施の形態によれば、異常の検知データの目標値を満たす閾値が自動的に決定される。なお、第3の実施の形態において決定された閾値θは、第1の実施の形態において閾値の初期値θ_0として使用することも可能である。
なお、上記各実施の形態は、ネットワーク以外から収集されるデータに関して適用されてもよい。例えば、コンピュータシステムから収集されるデータに関して上記各実施の形態が適用されてもよい。
なお、上記各実施の形態において、異常検知装置10は、閾値決定装置の一例である。異常発生情報取得部17は、取得部の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10 異常検知装置
11 受信部
12 学習処理制御部
13 前処理部
14 学習部
15 検知処理制御部
16 検知部
17 異常発生情報取得部
18 閾値決定部
20 測定装置
30 異常記録装置
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
121 教師データ記憶部
122 パラメータ記憶部
123 観測データ記憶部
124 学習結果記憶部
125 学習データ記憶部
126 検知結果記憶部
127 異常発生情報記憶部
B バス
N1 ネットワーク

Claims (7)

  1. 異常の検知対象から収集されたデータを学習した学習結果と、テスト期間において異常の検知対象から観測されたデータとに基づいて異常度を算出し、当該異常度を閾値と比較することで異常の発生を検知する検知部と、
    異常の見逃し及び誤検知の有無に基づいて前記閾値を決定する閾値決定部と、
    を有し、
    前記閾値決定部は、単位時間ごとに誤検知の回数及び見逃しの回数を計算し、一定期間分の誤検知の回数及び見逃しの回数の計算が終了した場合、誤検知の回数の標準偏差及び見逃しの回数の標準偏差を計算し、前記計算された誤検知の回数及び誤検知の回数の標準偏差と、前記計算された見逃しの回数及び見逃しの回数の標準偏差に基づいて、前記閾値の増減量を計算する、閾値決定装置。
  2. 前記閾値決定部は、誤検知が発生した場合には、前記閾値を増加させ、見逃しが発生した場合には、前記閾値を減少させる、請求項1に記載の閾値決定装置。
  3. 前記閾値決定部は、異常が検出されないときに前記検知部によって算出された異常度の分布からの外れ度合に基づいて、前記閾値を決定する、請求項1又は2に記載の閾値決定装置。
  4. 異常の検知対象において異常が発生した異常発生時刻を取得する取得部を更に有し、
    前記閾値決定部は、前記異常発生時刻に基づいて、前記検知部によって検知された異常の検知精度が目標値を満足するように、前記閾値を決定する、請求項1又は2に記載の閾値決定装置。
  5. 異常の検知対象において異常が発生した異常発生時刻を取得する取得部を更に有し、
    前記閾値決定部は、前記異常発生時刻の時間帯において前記検知部が異常の発生を検知しなかった場合、見逃しであると判断し、前記異常発生時刻の時間帯以外に前記検知部が異常の発生を検知した場合、誤検知であると判断する、請求項1乃至のうちいずれか1項に記載の閾値決定装置。
  6. 異常の検知対象から収集されたデータを学習した学習結果と、テスト期間において異常の検知対象から観測されたデータとに基づいて異常度を算出し、当該異常度を閾値と比較することで異常の発生を検知する検知手順と、
    異常の見逃し及び誤検知の有無に基づいて前記閾値を決定する閾値決定手順であって、単位時間ごとに誤検知の回数及び見逃しの回数を計算し、一定期間分の誤検知の回数及び見逃しの回数の計算が終了した場合、誤検知の回数の標準偏差及び見逃しの回数の標準偏差を計算し、前記計算された誤検知の回数及び誤検知の回数の標準偏差と、前記計算された見逃しの回数及び見逃しの回数の標準偏差に基づいて、前記閾値の増減量を計算する閾値決定手順と、
    をコンピュータが実行する閾値決定方法。
  7. 請求項1乃至いずれか一項記載の各部としてコンピュータを機能させるためのプログラム。
JP2017040590A 2017-03-03 2017-03-03 閾値決定装置、閾値決定方法及びプログラム Active JP6564799B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017040590A JP6564799B2 (ja) 2017-03-03 2017-03-03 閾値決定装置、閾値決定方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017040590A JP6564799B2 (ja) 2017-03-03 2017-03-03 閾値決定装置、閾値決定方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2018148350A JP2018148350A (ja) 2018-09-20
JP6564799B2 true JP6564799B2 (ja) 2019-08-21

Family

ID=63592380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017040590A Active JP6564799B2 (ja) 2017-03-03 2017-03-03 閾値決定装置、閾値決定方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6564799B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11892829B2 (en) 2021-09-15 2024-02-06 Kabushiki Kaisha Toshiba Monitoring apparatus, method, and program

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7173168B2 (ja) * 2019-01-18 2022-11-16 日本電気株式会社 異常検知装置、システム、方法及びプログラム
JP7103274B2 (ja) * 2019-02-28 2022-07-20 日本電信電話株式会社 検知装置及び検知プログラム
JP2020154514A (ja) * 2019-03-19 2020-09-24 株式会社エヌ・ティ・ティ・データ 学習装置、学習方法、検索装置、検索方法及びプログラム
WO2020196195A1 (ja) * 2019-03-26 2020-10-01 東京エレクトロン株式会社 状態判定装置、状態判定方法及びコンピュータ読み取り可能な記録媒体
JP7135969B2 (ja) * 2019-03-27 2022-09-13 富士通株式会社 情報処理方法及び情報処理装置
JP7257871B2 (ja) * 2019-05-09 2023-04-14 三菱電機株式会社 異常検知システム
US11885720B2 (en) 2019-10-18 2024-01-30 Nec Corporation Time series data processing method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11892829B2 (en) 2021-09-15 2024-02-06 Kabushiki Kaisha Toshiba Monitoring apparatus, method, and program

Also Published As

Publication number Publication date
JP2018148350A (ja) 2018-09-20

Similar Documents

Publication Publication Date Title
JP6564799B2 (ja) 閾値決定装置、閾値決定方法及びプログラム
JP6823501B2 (ja) 異常検知装置、異常検知方法及びプログラム
EP3700147A1 (en) System and method for classifying network traffic
US10104124B2 (en) Analysis rule adjustment device, analysis rule adjustment system, analysis rule adjustment method, and analysis rule adjustment program
JP6751168B2 (ja) 異常要因推定装置、異常要因推定方法及びプログラム
US7962611B2 (en) Methods, systems and computer program products for detecting flow-level network traffic anomalies via abstraction levels
EP2725512A1 (en) System and method for malware detection using multi-dimensional feature clustering
JP6183450B2 (ja) システム分析装置、及び、システム分析方法
US9235463B2 (en) Device and method for fault management of smart device
US11677613B2 (en) Root-cause analysis and automated remediation for Wi-Fi authentication failures
WO2014132611A1 (ja) システム分析装置、及び、システム分析方法
JP2019095822A (ja) パラメータ設定方法、データ分析装置、データ分析システム及びプログラム
CN112291213A (zh) 一种基于智能终端的异常流量分析方法及装置
EP3905619A1 (en) System and method for classifying network devices
WO2020044898A1 (ja) 機器状態監視装置及びプログラム
JP6858798B2 (ja) 特徴量生成装置、特徴量生成方法及びプログラム
JP6781776B2 (ja) 特徴量生成装置、特徴量生成方法及びプログラム
JP6488197B2 (ja) 異常検出方法、異常検出装置、及びネットワークシステム
CN107566187B (zh) 一种sla违例监测方法、装置和***
US9311210B1 (en) Methods and apparatus for fault detection
US20240235974A1 (en) Traffic monitoring device and traffic monitoring method
US11805034B1 (en) Systems and methods for detecting large network flows
CN114629695A (zh) 一种网络异常检测方法、装置、设备和介质
WO2017068771A1 (ja) スイッチ異常検知装置、スイッチ異常検知方法、および、プログラム記憶媒体
CN118041648A (zh) 一种基于自适应探测的工控漏洞扫描方法及其***

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190408

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190624

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190729

R150 Certificate of patent or registration of utility model

Ref document number: 6564799

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150