(57)【要約】【課題】ＩｏＴ機器の異常検知の精度の低下を抑止する。【解決手段】検知装置１０は、ＩｏＴ機器の通信に関する情報を取得する。また、検知装置１０は、混合ガウス分布に従う確率変数である潜在変数及び入力されたデータを基に出力データを生成する生成モデルに、通信に関する情報の特徴を示すデータを入力し、出力データを計算する。検知装置１０は、出力データを基にアノマリスコアを計算し、当該アノマリスコアが閾値を超えている場合、ＩｏＴ機器の異常を検知する。【選択図】図２
2019220892.tif 000002
【特許請求の範囲】
【請求項１】
機器の通信に関する情報を取得する取得部と、
混合ガウス分布に従う確率変数である潜在変数及び入力されたデータを基に出力データを生成する生成モデルに、前記通信に関する情報の特徴を示すデータを入力し、前記出力データを計算する計算部と、
前記出力データを基に計算したアノマリスコアを用いて、前記機器の異常の検知を行う検知部と、
を有することを特徴とする検知装置。
【請求項２】
前記出力データと前記生成モデルに入力した特徴量との差分が小さくなるように、前記生成モデルのパラメータを更新する更新部をさらに有することを特徴とする請求項１に記載の検知装置。
【請求項３】
前記更新部は、前記混合ガウス分布に含まれ、それぞれに重みが設定されたガウス分布の、平均、分散及び前記重みを更新することを特徴とする請求項２に記載の検知装置。
【請求項４】
コンピュータによって実行される検知方法であって、
機器の通信に関する情報を取得する取得工程と、
混合ガウス分布に従う確率変数である潜在変数を基に出力データを生成する生成モデルに、前記通信に関する情報の特徴を示す入力データを入力し、前記出力データを計算する計算工程と、
前記出力データを基に計算したアノマリスコアを用いて、前記機器の異常の検知を行う検知工程と、
を含むことを特徴とする検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検知装置及び検知方法に関する。
【背景技術】
【０００２】
ＩｏＴ時代の到来に伴い、多種のデバイスが多様な使われ方の下でインターネットに接続され、そのセキュリティ対策のためにＩｏＴ機器向けのトラフィックセッション異常検知システムや侵入検知システム（ＩＤＳ：Intrusion  Detection  System）が盛んに研究されている。
【０００３】
このような異常検知システムの中には、ＶＡＥ（Variational  Auto  Encoder）等の教師なし学習による確率密度推定器を用いるものがある。確率密度推定による異常検知は、正常なトラフィックを基に正常な通信パターンの発生確率を学習し、発生確率の低い通信を異常として検知する。
【０００４】
このため、ＶＡＥ等によれば、すべての悪性状態を知らずとも異常検知が可能である。そして、この特性は、未だ過渡期にありすべての脅威情報を知り尽くせないＩｏＴ機器に対するサイバー攻撃検知と良くマッチする。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Diederik  P  Kingma,  Max  Welling,  "Auto-Encoding  Variational  Bayes"  [online]、[平成３０年６月１１日検索]、インターネット（https://arxiv.org/pdf/1312.6114.pdf）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のＶＡＥには、ＩｏＴ機器の異常検知の精度が低下する場合があるという問題がある。具体的には、従来のＶＡＥを用いる場合、いわゆる「強すぎる正則化」の問題により確率密度推定の精度が低下し、その結果異常検知の精度が低下することがある。
【０００７】
ここで、従来のＶＡＥについて説明する。従来のＶＡＥは入力データを一度低次元のガウス分布にエンコードし、エンコード後のより少ない情報のみを用いて再度入力データと近づくようにデコードすることを目指す。このようにすることで、入力データを正しく再構成できるのに必要な情報のみを抽出するエンコーダを得ることができる。
【０００８】
その際、従来のＶＡＥにおいては、「低次元のガウス分布にエンコード」の制約が強すぎて、再構成に必要な情報までも削減してしまっている可能性があるという問題がある。これが「強すぎる正則化」の問題である。
【発明の効果】
【０００９】
本発明によれば、ＩｏＴ機器の異常検知の精度の低下を抑止することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、第１の実施形態に係る検知システムの構成の一例を示す図である。
【図２】図２は、第１の実施形態に係る検知装置の構成の一例を示す図である。
【図３】図３は、第１の実施形態に係る生成モデルについて説明するための図である。
【図４】図４は、第１の実施形態に係る検知装置の処理の流れを示すフローチャートである。
【図５】図５は、第１の実施形態に係る検知装置の処理の流れを示すフローチャートである。
【図６】図６は、検知プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願に係る検知装置及び検知方法の実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【００１２】
［第１の実施形態の構成］
まず、図１を用いて、第１の実施形態に係る検知システムの構成について説明する。図１は、第１の実施形態に係る検知システムの構成の一例を示す図である。図１に示すように、検知システム１は、検知装置１０及びＩｏＴ機器２０を有する。
【００１３】
検知装置１０は、ＩｏＴ機器２０と外部ネットワーク３０との通信に関する情報を取得する。例えば、検知装置１０は、ＩｏＴ機器２０と外部ネットワーク３０との間に備えられたゲートウェイから情報を取得することができる。また、例えば、検知装置１０は、トラフィックセッション情報を取得することができる。また、検知装置１０は、取得した情報を使って学習した生成モデルを用いて、ＩｏＴ機器２０の異常の検知を行う。また、ＩｏＴ機器２０は、監視カメラやウェアラブルデバイス等の機器に通信機能を備えたものである。
【００１４】
次に、図２を用いて、検知装置１０の構成について説明する。図２は、第１の実施形態に係る検知装置の構成の一例を示す図である。図２に示すように、検知装置１０は、入出力部１１、通信部１２、記憶部１３及び制御部１４を有する。
【００１５】
ここで、検知装置１０は、ＶＡＥを基にした生成モデルを用いて検知及び学習を行う。図３を用いて、本実施形態で用いられる生成モデルについて説明する。図３は、第１の実施形態に係る生成モデルについて説明するための図である。
【００１６】
図３に示すように、本実施形態の生成モデルは、従来のＶＡＥと同様に、オートエンコーダを利用したモデルである。生成モデルは、入力層、エンコーダ、デコーダ及び出力層を有する。生成モデルは、入力層に入力されたデータをエンコードし、エンコードしたデータを基に、確率変数である潜在変数を生成し、当該潜在変数から確率的に決定された値をデコードし、デコードしたデータを出力データとして出力層に出力する。
【００１７】
従来のＶＡＥにおける潜在変数は、単峰のガウス分布で表される。これに対し、本実施形態の生成モデルにおける潜在変数は、多峰のガウス分布、すなわち混合ガウス分布で表される。
【００１８】
ここで、本実施形態の生成モデルの最適化を行うための目的関数は、エンコーダをｑ（ｚ｜ｘ）、潜在変数をｐ（ｚ）、デコーダをｐ（ｘ｜ｚ）とすると、（１）式のように表される。
【００１９】
【数１】
2019220892.tif 000003
【００２０】
このとき、ｑ（ｚ｜ｘ）は、混合ガウス分布であり、（２）式のように表される。
【００２１】
【数２】
2019220892.tif 000004
【００２２】
πｉは、平均がμｉ、分散がσｉであるガウス分布Ｎ（μｉ，σｉ）に設定された重みである。πｉ、μｉ、σｉは、生成モデルの学習によって更新されるパラメータである。また、πｉの合計は常に一定の値になるようにしてもよい。例えば、ｑ（ｚ｜ｘ）が３つのガウス分布からなる混合ガウス分布である場合、π１＋π２＋π３＝１という制約条件が設定されていてもよい。
【００２３】
さらに、ｑ（ｚ｜ｘ）が混合ガウス分布である場合、検知装置１０は、（１）式の目的関数のカルバックラーダイバージェンス（（３）式）を計算するために、参考文献１（"Lower  and  Upper  Bounds  for  Approximation  of  the  Kullback-Leibler  Divergence  Between  Gaussian  Mixture  Models"  by  Durrien,  Thiran,  and  Kelly  (2012)）又は参考文献２（"Approximating  the  Kullback  Leibler  divergence  between  Gaussian  Mixture  Models"  by  Hershey  and  Olsen  (2007)）に記載の手法を用いることができる。
【００２４】
【数３】
2019220892.tif 000005
【００２５】
一例として、検知装置１０は、カルバックラーダイバージェンスを（４）式のように分解し、（４）式の第１項及び第２項のそれぞれについて、Jensenの不等式を用いて下限又は上限を計算する。そして、検知装置１０は、計算した下限又は上限を組み合わせることで、（２）式のカルバックラーダイバージェンスを近似的に計算する。
【００２６】
【数４】
2019220892.tif 000006
【００２７】
このように、検知装置１０は、混合ガウス分布に従う潜在変数を使って出力データを計算するため、単一のガウス分布を使う場合と比較して、潜在変数に多くの情報を持たせることができる。このため、本実施形態によれば、従来のＶＡＥに比べて正則化の度合いを弱めることができ、検知精度の低下を抑止することが可能になる。
【００２８】
図２に戻り、入出力部１１は、ユーザからのデータの入力を受け付ける。入出力部１１は、例えば、マウスやキーボード等の入力装置、及びディスプレイやタッチパネル等の表示装置を含む。通信部１２は、ネットワークを介して、他の装置との間でデータ通信を行う。例えば、通信部１２はＮＩＣ（Network  Interface  Card）である。例えば、通信部１２は、ＩｏＴ機器２０、及びＩｏＴ機器２０と外部ネットワーク３０との間に備えられたゲートウェイ等との間でデータ通信を行う。
【００２９】
記憶部１３は、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）、光ディスク等の記憶装置である。なお、記憶部１３は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）等のデータを書き換え可能な半導体メモリであってもよい。記憶部１３は、検知装置１０で実行されるＯＳ（Operating  System）や各種プログラムを記憶する。さらに、記憶部１３は、プログラムの実行で用いられる各種情報を記憶する。また、記憶部１３は、モデルＤＢ１３１を有する。モデルＤＢ１３１は、学習済みの生成モデルのパラメータ等を記憶する。
【００３０】
制御部１４は、検知装置１０全体を制御する。制御部１４は、例えば、ＣＰＵ（Central  Processing  Unit）、ＧＰＵ（Graphics  Processing  Unit）、ＴＰＵ（Tensor  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路である。また、制御部１４は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部１４は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部１４は、取得部１４１、抽出部１４２、計算部１４３、更新部１４４及び検知部１４５を有する。
【００３１】
取得部１４１は、機器の通信に関する情報を取得する。例えば、取得部１４１は、ＩｏＴ機器の通信に関するログからトラフィックセッション情報を取得する。例えば、取得部１４１は、トラフィックセッション情報として、ＩｏＴ機器２０におけるデータ量、送受信されたパケットの数及びサイズ等を取得する。また、例えば、取得部１４１は、ＩｏＴ機器２０及び通信先のＭＡＣアドレス、ＩＰアドレス、ポート番号、通信プロトコル等を取得する。
【００３２】
抽出部１４２は、取得部１４１によって取得された通信に関する情報から所定の特徴量を抽出する。例えば、抽出部１４２は、取得部１４１によって取得された情報に含まれるデータ量やパケット数等の量的情報を正規化した値、又は当該情報に含まれる各種アドレスやプロトコル等の質的情報を数値化した値等を要素として含む特徴ベクトルを生成する。
【００３３】
計算部１４３は、混合ガウス分布に従う確率変数である潜在変数及び入力されたデータを基に出力データを生成する生成モデルに、通信に関する情報の特徴を示すデータを入力し、出力データを計算する。計算部１４３は、抽出部１４２によって抽出されたデータを、図３に示すような生成モデルの入力層に入力し、出力データを生成するための計算を実行する。
【００３４】
更新部１４４は、出力データと生成モデルに入力した特徴量との差分が小さくなるように、生成モデルのパラメータを更新する。具体的には、更新部１４４は、（１）式の目的関数が最適化されるようにパラメータを更新する。このとき、更新部１４４は、混合ガウス分布に含まれ、それぞれに重みが設定されたガウス分布の、平均、分散及び重みを更新する。これにより、更新部１４４は、正常状態にある通信の特徴を生成モデルに学習させる。
【００３５】
検知部１４５は、出力データを基に計算したアノマリスコアを用いて、機器の異常の検知を行う。検知部１４５は、計算部１４３によって生成モデルに入力された特徴量と、生成モデルから出力された出力データとの差分が大きいほど大きくなり、当該差分が小さいほど小さくなるようにアノマリスコアを計算する。つまり、アノマリスコアは、検知対象の通信の状態の、通常状態にある通信の特徴からのかい離度合いを示すスコアである。検知部１４５は、アノマリスコアが閾値を超えている場合、異常が発生していることを検知する。
【００３６】
［第１の実施形態の処理］
図４及び図５を用いて検知装置１０の処理について説明する。図４及び図５は、第１の実施形態に係る検知装置の処理の流れを示すフローチャートである。図４に示すように、まず、検知装置１０は、ＩｏＴ機器２０の通信に関する情報を取得する（ステップＳ１１）。
【００３７】
次に、検知装置１０は、取得した情報から特徴量を抽出する（ステップＳ１２）。また、検知装置１０は、抽出した特徴量を生成モデルに入力し、出力データを計算する（ステップＳ１３）。出力データを計算する処理については、後に図５を用いて説明する。
【００３８】
検知装置１０は、生成モデルの学習を行う場合及び異常の検知を行う場合の両方で、ステップＳ１１からステップＳ１３までの処理を行う。ここで、検知装置１０が生成モデルの学習を行う場合（ステップＳ１４、学習）、計算した出力データを基に生成モデルを更新する（ステップＳ１５）。一方で、検知装置１０が異常の検知を行う場合（ステップＳ１４、検知）、計算した出力データを基にアノマリスコアを計算し、異常を検知する（ステップＳ１６）。
【００３９】
図５を用いて、出力データを計算する処理について説明する。図５に示すように、検知装置１０は、入力層に入力された特徴量をエンコードする（ステップＳ１３１）。そして、検知装置１０は、エンコードされたデータから混合ガウス分布に基づく確率変数を生成する（ステップＳ１３２）。さらに、検知装置１０は、確率変数から確率的に決定された値をデコードしたデータを、出力層から出力データとして出力する（ステップＳ１３３）。
【００４０】
［第１の実施形態の効果］
第１の実施形態において、検知装置１０は、機器の通信に関する情報を取得する。また、検知装置１０は、混合ガウス分布に従う確率変数である潜在変数及び入力されたデータを基に出力データを生成する生成モデルに、通信に関する情報の特徴を示すデータを入力し、出力データを計算する。検知装置１０は、出力データを基に計算したアノマリスコアを用いて、機器の異常の検知を行う。
【００４１】
このように、第１の実施形態では、潜在変数が従う分布を混合ガウス分布としている。これにより、第１の実施形態では、潜在変数が単一のガウス分布に従うとした場合に比べ、潜在変数により多くの情報を持たせることができ、確率密度推定の精度が低下を抑止することができる。このため、第１の実施形態によれば、ＩｏＴ機器の異常検知の精度の低下を抑止することができる。
【００４２】
ここで、従来のＶＡＥを用いた手法と本実施形態の手法との異常検知精度を比較した実験について説明する。まず、本実験では、異常検知対象のデータセットとして、Letter（参考ＵＲＬ：http://odds.cs.stonybrook.edu/letter-recognition-dataset/）を用いた。また、学習におけるエポック数を１０００回とした。また、実施形態の生成モデルにおける混合ガウス分布の要素分布の混合数を３とした。そして、それぞれの手法で学習及び検知を１０回ずつ行い、ＡＵＣ（Area  Under  the  Curve）値の平均により評価を行った。
【００４３】
実験の結果、従来のＶＡＥを用いた手法のＡＵＣ値の平均は0.942±0.0198であった。これに対し、本実施形態の手法のＡＵＣ値の平均は0.97976±0.0103であった。これより、本実施形態の手法は、従来のＶＡＥを用いた手法と比べ、異常検知精度が有意に向上しているといえる。
【００４４】
また、更新部１４４は、出力データと生成モデルに入力した特徴量との差分が小さくなるように、生成モデルのパラメータを更新する。このように、第１の実施形態によれば、入力されたデータを正常状態にある通信の特徴を示すものとみなし、生成モデルの学習を行うことが可能になる。
【００４５】
また、更新部１４４は、混合ガウス分布に含まれ、それぞれに重みが設定されたガウス分布の、平均、分散及び重みを更新する。このように、第１の実施形態によれば、混合ガウス分布の重みを更新することで、混合ガウス分布に含まれる分布の峰のうちどの分布の峰を潰すかを選択し、分布形状を最適化することが可能になる。
【００４６】
［プログラム］
一実施形態として、検知装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の検知を実行する検知プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の検知プログラムを情報処理装置に実行させることにより、情報処理装置を検知装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistant）等のスレート端末等がその範疇に含まれる。
【００４７】
また、検知装置１０は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の検知に関するサービスを提供する検知サーバ装置として実装することもできる。例えば、検知サーバ装置は、ＩｏＴ機器の通信に関する情報を入力とし、検知結果を出力とする検知サービスを提供するサーバ装置として実装される。この場合、検知サーバ装置は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の検知に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【００４８】
図６は、検知プログラムを実行するコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００４９】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００５０】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、検知装置１０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、検知装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤにより代替されてもよい。
【００５１】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００５２】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００５３】
１０  検知装置
１１  入出力部
１２  通信部
１３  記憶部
１４  制御部
２０  ＩｏＴ機器
３０  外部ネットワーク
１４１  取得部
１４２  抽出部
１４３  計算部
１４４  更新部
１４５  検知部
【図１】
2019220892.tif 000007
【図２】
2019220892.tif 000008
【図３】
2019220892.tif 000009
【図４】
2019220892.tif 000010
【図５】
2019220892.tif 000011
【図６】
2019220892.tif 000012