(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続される端末の異常を検知する異常検知装置であって、
端末との通信に関する特性値を取得する取得部と、
前記取得部によって前記特性値が取得されるたびに、複数のタイミングでの端末との通信に関して取得された特性値の履歴に基づいて、前記特性値の分布モデルを生成する生成部と、
所定の間隔ごとに、前記生成部が生成した分布モデルを、ネットワークを介して接続される集約装置に送信する送信部と、
前記送信部によって送信された分布モデルと、当該異常検知装置には接続されていない端末に関する前記分布モデルとに基づいて前記集約装置が生成した前記特性値の分布モデルを受信する受信部と、
前記受信部によって受信された分布モデルと、当該分布モデルが受信された後の端末との通信に関する特性値との比較に基づいて、ネットワークを介して接続される端末の異常を検知する検知部と、
を有し、
前記所定の間隔は、前記集約装置が生成する前記分布モデルの収束に応じて長くなる、
ことを特徴とする異常検知装置。
【請求項２】
前記送信部は、前記取得部による前記特性値の取得回数が、前記分布モデルの収束状況に基づいて算出される回数に達する度に、前記取得された特性値の履歴、又は前記履歴に基づく前記特性値の分布モデルを前記集約装置に送信する、
ことを特徴とする請求項１記載の異常検知装置。
【請求項３】
ネットワークを介して接続される端末の異常を検知する複数の異常検知装置と、前記複数の異常検知装置にネットワークを介して接続される集約装置とを含む異常検知システムであって、
前記異常検知装置は、
端末との通信に関する特性値を取得する取得部と、
前記取得部によって前記特性値が取得されるたびに、複数のタイミングでの端末との通信に関して取得された特性値の履歴に基づいて、前記特性値の分布モデルを生成する第１の生成部と、
所定の間隔ごとに、前記第１の生成部が生成した分布モデルを、前記集約装置に送信する送信部と、
前記集約装置が生成した前記特性値の分布モデルを受信する受信部と、
前記受信部によって受信された分布モデルと、当該分布モデルが受信された後の端末との通信に関する特性値との比較に基づいて、ネットワークを介して接続される端末の異常を検知する検知部とを有し、
前記集約装置は、
前記複数の異常検知装置から送信される前記分布モデルに基づいて前記特性値の分布モデルを生成する第２の生成部を有し、
前記所定の間隔は、前記集約装置が生成する前記分布モデルの収束に応じて長くなる、
ことを特徴とする異常検知システム。
【請求項４】
ネットワークを介して接続される端末の異常を検知する異常検知装置が、
端末との通信に関する特性値を取得する取得手順と、
前記取得手順において前記特性値が取得されるたびに、複数のタイミングでの端末との通信に関して取得された特性値の履歴に基づいて、前記特性値の分布モデルを生成する生成手順と、
所定の間隔ごとに、前記生成手順が生成した分布モデルを、ネットワークを介して接続される集約装置に送信する送信手順と、
前記送信手順において送信された分布モデルと、当該異常検知装置には接続されていない端末に関する前記分布モデルとに基づいて前記集約装置が生成した前記特性値の分布モデルを受信する受信手順と、
前記受信手順において受信された分布モデルと、当該分布モデルが受信された後の端末との通信に関する特性値との比較に基づいて、ネットワークを介して接続される端末の異常を検知する検知手順と、
を実行し、
前記所定の間隔は、前記集約装置が生成する前記分布モデルの収束に応じて長くなる、
ことを特徴とする異常検知方法。
【請求項５】
ネットワークを介して接続される端末の異常を検知する複数の異常検知装置と、前記複数の異常検知装置にネットワークを介して接続される集約装置とが実行する異常検知方法であって、
前記異常検知装置が、
端末との通信に関する特性値を取得する取得手順と、
前記取得手順において前記特性値が取得されるたびに、複数のタイミングでの端末との通信に関して取得された特性値の履歴に基づいて、前記特性値の分布モデルを生成する第１の生成手順と、
所定の間隔ごとに、前記第１の生成手順が生成した分布モデルを、ネットワークを介して接続される集約装置に送信する送信手順と、
前記集約装置が生成した前記特性値の分布モデルを受信する受信手順と、
前記受信手順において受信された分布モデルと、当該分布モデルが受信された後の端末との通信に関する特性値との比較に基づいて、ネットワークを介して接続される端末の異常を検知する検知手順とを実行し、
前記集約装置が、
前記複数の異常検知装置から送信される前記分布モデルに基づいて前記特性値の分布モデルを生成する第２の生成手順を実行し、
前記所定の間隔は、前記集約装置が生成する前記分布モデルの収束に応じて長くなる、
ことを特徴とする異常検知方法。
【請求項６】
請求項１又は２記載の各部としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常検知装置、異常検知システム、異常検知方法、及びプログラムに関する。
【背景技術】
【０００２】
ネットワークに接続する端末は近年多様化しており、例えば、いわゆるＭ２Ｍ（Machine-to-Machine）端末と呼ばれるひずみセンサやロボットアーム等のアクチュエータ等、これまでネットワークに繋がっていなかったものがネットワークに接続されるようになっている。我々が普段利用するコンピュータやスマートフォン等と比較したＭ２Ｍ端末の特徴として、（１）ネットワークを介して遠隔で操作／情報取得を行うこと、（２）端末自身にヒューマンインタフェース（ディスプレイ、キーボード等）が具備されていないこと、（３）サービス実現のために同一端末が大量に設置される場合があること、の３点が挙げられる。
【０００３】
Ｍ２Ｍ端末は、利用者の目の届かない所に設置されることが考えられるため、端末の持ち去り、故障等の発生を遠隔で検知する仕組みが必要となる。また、正規の端末になりすました端末の接続検知も同様に必要となる。
【０００４】
なお、従来において、電子メールクライアントの多くには、送られてきた電子メールが受信者に無関係な迷惑メールであるかどうかを判定する、スパムメールフィルタリング技術が実装されている（例えば、非特許文献１）。
【０００５】
このようなフィルタリングにおいては、受信者宛の電子メールの内容を解析し、メール本文に含まれる単語等の出現頻度をもとに、本当に受信者宛のものかどうか判断し、判断結果をもとに、「迷惑メール」ラベルを付与するなどの処理が実施されている。
【０００６】
受信者は、そのメールが迷惑メールかどうかを判断し、メールクライアントの判断が誤っていれば、「迷惑メール」ラベルの削除、あるいは付与等を行う。
【０００７】
この方式の特徴として、受信者の判断結果をもとにフィルタが更新されていくことが挙げられる。メール受信の度にフィルタによる判定と受信者によるフィードバックが行われるため、はじめは誤判定が多くとも、回数を重ねるうちに判定精度の向上が期待できる。
【０００８】
事前設定された閾値による判定のみではなく、このような学習を行う理由は、受信者が受け取るメールの内容は、受信者や利用方法により大きく異なることが想定されるためである。はじめは受信者についての知識が無くとも、学習により、受信者にとって適切な判別を行えるようになる。
【０００９】
また、リスクベース認証は、サービスへのアクセスが通常とは異なる環境から行われた場合、追加認証（ワンタイムパスワード、秘密の質問等）を実施するものである（例えば、非特許文献２）。
【００１０】
これは、主にＷｅｂサービスのログインに用いられている技術であり、ユーザのログイン時にサービス提供事業者が取得できるユーザ情報、例えば、接続元のＩＰアドレスや接続時間帯、ブラウザのＵｓｅｒ−Ａｇｅｎｔ情報、接続元デバイスなどの履歴をサービス提供事業者側で蓄積しておき、この過去のユーザ情報と照らし合わせ、ログイン時にこれまでの接続環境と異なる場合（例えば、普段は日本からアクセスしているユーザが海外からアクセスしてくるなど）は、不正なログインを疑い、より強力な認証（ユーザに対して、使い捨てのワンタイムパスワードを記載したメールを別途送信し、このワンタイムパスワードを用いた認証を行う等）を実施するものである。
【００１１】
本技術により、普段の利用環境では単純なＩＤ／パスワード認証のみ実施し、不正ログインのリスクが高いと推定されるログインに対してはより強力な（手間のかかる）認証を実施することができる。これによりユーザの利便性を損なわずにセキュリティを高めることができる。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】Paul Graham、"スパムへの対策---A Plan for Spam"、［online］、August 2002、インターネット＜URL:http://practical-scheme.net/trans/spam-j.html＞
【非特許文献２】"ベリサイン、「ワンタイムパスワード認証」と「リスクベース認証」を手軽に利用できる「Symantec(tm) Validation & ID Protection」の提供を開始"、インターネット＜https://www.jp.websecurity.symantec.com/press/2011/pr_20111116.html＞
【発明の概要】
【発明が解決しようとする課題】
【００１３】
Ｍ２Ｍ端末の異常検知を行うために、端末を収容するＧＷ（Gateway）装置が端末の通信特性値（データ量、通信間隔等）を取得し、その値が予め設定された閾値を超えた場合に異常と判定することが考えられる。
【００１４】
このとき、閾値の設定は、端末を利用してサービスを提供するサービス提供事業者により行われる。これは、端末の通信特性がサービスによりある程度規定されるため、サービス提供事業者であれば適切な閾値を設定可能であると考えられるためである。
【００１５】
しかしながら、実際には、サービス毎の適切な閾値を求めることは難しく、特に高精度な異常検知を実現しようとする場合、サービス提供事業者にとっては、閾値の設定が負担になると考えられる。
【００１６】
サービス提供事業者による閾値設定の負担を軽減する方法として、学習による閾値の自動更新の導入が挙げられる。これは、過去の端末の通信をもとに、端末が取りうる通信特性の分布モデル（通信モデル）を作成し、そのモデルから大きくはずれるものについては異常とみなすものである。学習による方法の利点として、先述の適切な閾値設定が自動的に行われるため、サービス提供事業者の負担を減らせる事が挙げられる。その一方、課題として、実際に閾値設定を適切に行うためには、十分な量の正規端末の通信情報をもとにしたモデルの精緻化が必要となり、加えて、ネットワーク内の装置における学習のための処理量増加が負担となる。例えば、端末の全ての通信を逐次１か所に集約し、学習を行い、判別を行う方式は、大量の端末の接続が想定されるＭ２Ｍサービスにとって、スケーラビリティの観点から問題となる。
【００１７】
以上のように、同様な通信特性を持つ大量のＭ２Ｍ端末が接続されるようなネットワークにおいて、閾値による異常検知を用いる際、サービス提供事業者の負担軽減の観点で、学習による閾値の自動更新の導入が考えられるが、精度の高い閾値決定のためには、端末の通信モデルの学習によるネットワーク内装置の処理負荷が大きく、スケーラビリティの観点で課題があった。
【００１８】
本発明は、上記の点に鑑みてなされたものであって、ネットワークに接続される端末の異常検知の効率性を向上させることを目的とする。
【課題を解決するための手段】
【００１９】
そこで上記課題を解決するため、ネットワークを介して接続される端末の異常を検知する異常検知装置は、端末との通信に関する特性値を取得する取得部と、前記取得部によって前記特性値が取得されるたびに、複数のタイミングでの端末との通信に関して取得された特性値の履歴に基づいて、前記特性値の分布モデルを生成する生成部と、所定の間隔ごとに、前記生成部が生成した分布モデルを、ネットワークを介して接続される集約装置に送信する送信部と、前記送信部によって送信された分布モデルと、当該異常検知装置には接続されていない端末に関する前記分布モデルとに基づいて前記集約装置が生成した前記特性値の分布モデルを受信する受信部と、前記受信部によって受信された分布モデルと、当該分布モデルが受信された後の端末との通信に関する特性値との比較に基づいて、ネットワークを介して接続される端末の異常を検知する検知部と、を有し、前記所定の間隔は、前記集約装置が生成する前記分布モデルの収束に応じて長くなる。
【発明の効果】
【００２０】
ネットワークに接続される端末の異常検知の効率性を向上させることができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態における異常検知システムの構成例を示す図である。
【図２】本発明の実施の形態におけるＧＷのハードウェア構成例を示す図である。
【図３】学習フェーズにおける処理手順の一例を説明するためのシーケンス図である。
【図４】異常検知フェーズにおける処理手順の一例を説明するためのシーケンス図である。
【図５】通信モデル情報の標準誤差の収束状況と送信間隔との関係を示す図である。
【発明を実施するための形態】
【００２２】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における異常検知システムの構成例を示す図である。図１において、異常検知システム１は、集約エンティティ（以下、「ＰＦ（Platform）２０」という。）と、分散配備された複数の端末収容装置（以下、「ＧＷ１０（Gateway）」という。）とを含む。ＰＦ２０は、複数のＧＷ１０とネットワークを介して接続される。また、各ＧＷ１０は、それぞれ複数の端末とネットワーク（例えば、無線回線）を介して接続される。
【００２３】
端末は、例えば、Ｍ２Ｍ（Machine-to-Machine）端末である。各端末は、地理的に分散されて配置され、いずれかのサービスに利用されるデータ（例えば、計測値等）を、当該端末を収容するＧＷに送信する。なお、各端末は、いずれか一つのＧＷ１０に収容される。換言すれば、各ＧＷ１０は、それぞれ相互に異なる端末に接続される。また、図１に示される全部の端末が、同じサービスに利用されてもよいし、異なるサービスに利用される端末が混在していてもよい。但し、同じサービスに利用される端末が、複数のＧＷ１０に接続されるのが望ましい。なお、サービスとは、端末を利用して提供されるサービスをいう。
【００２４】
各ＧＷ１０は、ネットワークを介して複数の端末を収容する装置（例えば、コンピュータ）である。図１において、ＧＷ１０は、端末収容部１１、通信特性取得部１２、分散学習部１３、分散情報送信部１４、集約情報受信部１５、及び通信制御部１６等を有する。これら各部は、ＧＷ１０にインストールされた１以上のプログラムが、ＧＷ１０のＣＰＵに実行させる処理により実現される。ＧＷ１０は、また、分散情報記憶部１７及び比較情報記憶部１８等を利用する。これら各記憶部は、例えば、ＧＷ１０の補助記憶装置等を用いて実現可能である。
【００２５】
端末収容部１１は、端末との通信（例えば、無線通信）を終端する。通信特性取得部１２は、各端末収容部１１による端末との通信を監視して、各端末のデータ通信における通信特性を示す情報（以下、「通信特性値」という。）を取得する。通信特性取得部１２は、取得した通信特性値を、サービスごとに分散情報記憶部１７に記憶する。例えば、サービスが共通する複数の端末から取得された通信特性値の履歴は、共通のテーブルに記憶される。通信特性値は、例えば、トラヒックパターン（通信間隔）、平均パケット長、通信頻度、通信量等である。または、送信されるデータの中身（計測値等）が、通信特性値とされてもよい。なお、本実施の形態では、少なくとも同じサービスに利用される端末の通信特性値は、同様のものであるとする。
【００２６】
分散学習部１３は、通信特性取得部１２によって複数のタイミングにおいて取得された通信特性値に基づいて、通信特性値の分布モデルを示す情報（以下、「通信モデル情報」という。）をサービスごとに生成する。サービスごとに生成された通信モデル情報は、分散情報記憶部１７に記憶される。本実施の形態において、通信モデル情報は、通信特性値の分布を特徴付ける（特定又は規定する）パラメータである。例えば、当該分布が正規分布Ｎ（μ，σ２）に従うのであれば、平均μ、分散σ２、及び当該分布を形成する通信特性値の数ｎ等が、通信モデル情報に相当する。
【００２７】
分散情報送信部１４は、分散情報記憶部１７に記憶されている情報（以下、「分散情報」という。）を、例えば、一定周期ごとに、ＰＦ２０に送信する。
【００２８】
集約情報受信部１５は、ＰＦ２０が、各ＧＷ１０から送信された分散情報に含まれている通信特性値又は通信モデル情報を、サービスごとに統合することでＰＦ２０が生成した通信モデル情報を、ＰＦ２０から受信する。集約情報受信部１５は、受信した通信モデル情報を、比較情報記憶部１８に記憶する。比較情報記憶部１８には、端末の異常検知に利用される通信モデル情報が記憶される。
【００２９】
通信制御部１６は、比較情報記憶部１８に記憶された通信モデル情報と、当該通信モデル情報の受信の後に取得される通信特性値とを比較することで、異常な端末を検知し、当該端末について通信遮断等を行う。異常な端末とは、例えば、故障等が発生している端末、又は不正な端末（例えば、正規に成りすました端末）である。
一方、ＰＦ２０は、分散情報受信部２１、集約学習部２２、集約情報送信部２３、及び端末情報管理部２４等を有する。これら各部は、ＰＦ２０にインストールされた１以上のプログラムが、ＰＦ２０のＣＰＵに実行させる処理により実現される。ＰＦ２０は、また、集約情報記憶部２５及び端末情報記憶部２６を利用する。これら各記憶部は、例えば、ＰＦ２０の補助記憶装置等を用いて実現可能である。
【００３０】
分散情報受信部２１は、各ＧＷ１０から送信される分散情報を受信する。集約学習部２２は、分散情報受信部２１によって受信された分散情報に含まれている通信特性値が、ＧＷ１０を跨いでサービス単位で集約又は統合された、サービス毎の通信特性値に基づいて、複数のＧＷ１０に跨いだサービス毎の通信モデル情報を生成する。生成された通信モデル情報は、集約情報記憶部２５に記憶される。
【００３１】
集約情報送信部２３は、集約学習部２２によって生成されたサービス毎の通信モデル情報を、各ＧＷ１０に送信する。端末情報管理部２４は、各端末の属性情報を記憶した端末情報記憶部２６に記憶されている端末情報を管理する。端末情報は、例えば、端末を利用したサービスを提供するサービス提供事業者によって登録される。
【００３２】
図２は、本発明の実施の形態におけるＧＷのハードウェア構成例を示す図である。図２のＧＷ１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００３３】
ＧＷ１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。  メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従ってＧＷ１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。１００〜１０５の各装置は、それぞれ複数個有してもよい。
【００３４】
なお、ＰＦ２０も図２に示されるようなハードウェア構成を有していてもよい。
【００３５】
以下、異常検知システム１において実行される処理手順について説明する。当該処理手順は、学習フェーズと異常検知フェーズとの２段階のフェーズに分類される。学習フェーズは、通知特定値に基づいて通信モデル情報を学習するフェーズである。異常検知フェーズは、学習された通信モデル情報に基づいて、異常検知を行うフェーズである。
【００３６】
図３は、学習フェーズにおける処理手順の一例を説明するためのシーケンス図である。ステップＳ１０１〜Ｓ１０３は、端末ごとに、設置後の通信の開始時等に実行される。
【００３７】
或る端末（以下、「対象端末」という。）が、ＧＷ１０の端末収容部１１に接続して通信を開始すると（Ｓ１０１）、ＧＷ１０の集約情報受信部１５は、ＰＦ２０の端末情報管理部２４に対して、サービスの解決要求を送信する（Ｓ１０２）。サービスの解決とは、対象端末が対応するサービスを明確にすることをいう。サービスの解決要求には、対象端末の識別子（以下、「端末ＩＤ」という。）が含まれる。なお、端末ＩＤは、例えば、ステップＳ１０１において対象端末から送信されるメッセージに含まれている。端末ＩＤの一例として、端末の物理アドレスが挙げられる。
【００３８】
ＰＦ２０の端末情報管理部２４は、当該解決要求を受信すると、当該解決要求に含まれている端末ＩＤに対応付けられて端末情報記憶部２６に記憶されているサービスＩＤを取得する。すなわち、端末情報記憶部２６には、各端末ＩＤに対して、それぞれの端末が対応するサービスのサービスＩＤが対応付けられて記憶されている。サービスＩＤは、サービスごとの識別情報である。
【００３９】
続いて、端末情報管理部２４は、取得されたサービスＩＤに対応する通信モデル情報及び送信周期が集約情報記憶部２５に記憶されているか否かを判定する。該当する通信モデル情報及び送信周期が集約情報記憶部２５に記憶されている場合、当該通信モデル情報及び当該送信周期が取得される。なお、送信周期は、後述されるステップＳ１１６においてＧＷ１０に送信される送信周期と同義である。
【００４０】
続いて、端末情報管理部２４は、サービスの解決結果（対象端末が対応するサービス（以下、「対象サービス」という。）のサービスＩＤ）を含む応答を、ＧＷ１０に送信する（Ｓ１０３）。当該サービスＩＤに対応する通信モデル情報及び送信周期が集約情報記憶部２５に記憶されていれば、サービスの解決結果に加え、当該通信モデル情報及び当該送信周期も当該応答に含まれる。
【００４１】
ＧＷ１０の集約情報受信部１５は、ＰＦ２０から送信された応答に通信モデル情報及び送信間隔が含まれている場合、当該通信モデル情報及び当該送信間隔を、当該応答に含まれているサービスＩＤに対応付けて、比較情報記憶部１８に記憶する（Ｓ１０４）。既に当該サービスＩＤに対応付けられて比較情報記憶部１８に記憶されている通信モデル情報等が有る場合、当該通信モデル情報等は、新たに受信された通信モデル情報等によって上書きされる。集約情報受信部１５は、また、対象端末の端末ＩＤを、対象サービスのサービスＩＤに対応付けて、例えば、補助記憶装置１０２に記憶する。
【００４２】
続いて、ＧＷ１０は、対象サービスに関して、処理フェーズを異常検知フェーズに移行する（Ｓ２００）。すなわち、各ＧＷ１０における処理フェーズは、サービスごとに区別される。
【００４３】
一方、ＰＦ２０から送信された応答に通信モデル情報等が含まれていない場合、ステップＳ１１１〜Ｓ１１７の実行後に、異常検知フェーズ（Ｓ２００）が実行される。
【００４４】
ステップＳ１１１において、対象端末が、データ（例えば、計測値等）をＧＷ１０に送信すると（Ｓ１０５）、通信特性取得部１２は、当該通信に関して通信特性値を取得する（Ｓ１０６）。通信特性取得部１２は、対象サービスのサービスＩＤに関連付けて、当該通信情報を分散情報記憶部１７に記憶する。
【００４５】
続いて、分散学習部１３は、当該サービスＩＤに関連付けられて分散情報記憶部１７に記憶されている通信特性値の履歴に基づいて、通信モデル情報を生成し、当該通信モデル情報を、当該サービスＩＤに関連付けて分散情報記憶部１７に記憶する。なお、通信モデル情報は、複数種類の通信特性値のうちのいずれか一種類の通信特性値に関して生成されてもよいし、２種類以上の通信特性値に関して生成されてもよい。後者の場合、各通信特性値に相関が無いのであれば、通信特性値ごとに通信モデル情報が生成されてもよいし、相関を有する複数の通信特性値に関しては、複数の通信特性値に関して一つの通信モデル情報が生成されてもよい。通信モデル情報の生成に用いる通信特性値及び学習のためのアルゴリズムについては、予め固定的に設定されていてもよいし、サービス提供事業者による事前の選択が可能とされてもよい。サービス提供事業者による事前の選択が可能とされる場合、例えば、選択された内容を示す情報が、ＰＦ２０の端末情報管理部２４に保存され、当該情報が各ＧＷ１０にダウンロードされてもよい。
【００４６】
ステップＳ１１１〜Ｓ１１３が、対象サービスに関してｍ回実行されると（すなわち、分散情報記憶部１７において対象サービスのサービスＩＤに関連付けられて記憶されている通信特性値の履歴の数がｍ個に到達すると）、ＧＷ１０の分散情報送信部１４は、当該サービスＩＤに関連付けられて記憶されている通信特性値の履歴と、当該サービスＩＤに関して最後に生成された通信モデル情報と、当該サービスＩＤとを含む分散情報をＰＦ２０に送信する（Ｓ１１４）。なお、ステップＳ１１１〜Ｓ１１３のｍ回の実行は、サービスごとにカウントされる。すなわち、同じサービスに対応する端末が複数有る場合、これら複数の端末に関するステップＳ１１１〜Ｓ１１３の実行階数が、ｍ回に到達すればよい。また、ｍの初期値は、例えば、予め設定される。また、送信対象とされる通信特性値の履歴数は、直近のｍ個でよい。この場合、過去にＧＷ１０からＰＦ２０に送信された通信特性値の履歴は、ＰＦ２０において記憶されるようにすればよい。
【００４７】
ＰＦ２０の分散情報受信部２１は、当該分散情報を受信すると、当該分散情報に含まれている通信特性値の履歴を、当該サービスＩＤに関連付けて集約情報記憶部２５に記憶する。また、ＰＦ２０の集約学習部２２は、当該サービスＩＤに関連付けられて集約情報記憶部２５に記憶されている通信モデル情報と、受信された分散情報に含まれている通信モデル情報とに基づいて、新たな通信モデル情報を生成し、生成された通信モデル情報によって、当該サービスＩＤに関連付けられて集約情報記憶部２５に記憶されている通信モデル情報を上書きする（Ｓ１１５）。なお、通信モデルによっては、通信モデル情報同士を統合するのが困難な場合が有る。このような場合、集約学習部２２は、当該サービスＩＤに関連付けられて集約情報記憶部２５に記憶されている通信特性値の履歴に基づいて、新たな通信モデル情報を生成してもよい。集約学習部２２は、また、通信モデル情報の収束状況に応じて送信周期を計算する。送信周期とは、上記におけるｍの値である。例えば、通信モデル情報の収束状況に応じて、動的に通信モデル情報の送信周期が変更されてもよい。集約学習部２２は、計算された送信周期を、当該サービスＩＤに関連付けて集約情報記憶部２５に記憶する。
【００４８】
続いて、ＰＦ２０の集約情報送信部２３は、ステップＳ１１５において生成された通信モデル情報と、ステップＳ１１５において計算された送信周期と、対象サービスのサービスＩＤとを、ＧＷ１０に送信する（Ｓ１１６）。ＧＷ１０の集約情報受信部１５は、当該通信モデル情報及び当該送信周期等を受信すると、当該通信モデル情報及び当該送信周期を、受信されたサービスＩＤに関連付けて比較情報記憶部１８に記憶する（Ｓ１１７）。当該サービスＩＤに関連付けられている学習モデル情報又は送信周期が既に比較情報記憶部１８に記憶されている場合、既に記憶されている情報は、新たに受信された情報によって上書きされる。
【００４９】
ステップＳ１１１〜Ｓ１１７は、ステップＳ１１５において生成される通信モデル情報が収束するまで繰り返される。繰り返しの過程において、ステップ１１１〜Ｓ１１３の繰り返し回数（送信周期）は、ステップＳ１１６において受信される送信周期によって更新される。例えば、後述される収束度が所定値以下となるまで、ステップＳ１１２〜Ｓ１１７が繰り返されてもよい。また、繰り返しの回数に上限が設けられてもよい。通信モデル情報が収束したか否かの判定は、ＰＦ２０において行われてもよいし、ＧＷ１０において行われてもよい。ＰＦ２０において収束の有無が判定される場合、例えば、ステップＳ１１５において、通信モデル情報の生成後に通信モデル情報の収束の有無が判定され、当該収束の有無を示す情報がステップＳ１１６においてＧＷ１０に送信されてもよい。ＧＷ１０において収束の有無が判定される場合、ＧＷ１０は、ステップＳ１１６において受信された通信モデル情報を含む、ＰＦ２０から過去に受信した通信モデル情報の履歴に基づいて、当該通信モデル情報の収束の有無を判定してもよい。ステップＳ１１５において生成される通信モデル情報が収束すると、ＧＷ１０は、対象サービスに関して異常検知フェーズに移行する（Ｓ２００）。
【００５０】
なお、ステップＳ１０３においても、対象サービスのサービスＩＤに関して記憶されている通信モデル情報が収束していると判定される場合に限って、当該通信モデル情報がＧＷ１０に送信されるようにしてもよい。
【００５１】
続いて、異常検知フェーズについて説明する。図４は、異常検知フェーズにおける処理手順の一例を説明するためのシーケンス図である。
【００５２】
ステップＳ２０１、Ｓ２０２、及びＳ２０４は、図３のステップＳ１１１、Ｓ１１２、及びＳ１１３と同様である。異常検知フェーズの場合（ステップＳ２０１において受信されたデータが、異常検知フェーズに移行したサービスに関するデータである場合）、ステップＳ２０２とステップＳ２０４との間において、ステップＳ２０３が実行される。
【００５３】
ステップＳ２０３において、ＧＷ１０の通信制御部１６は、ステップＳ２０２において取得された通信特性値を、ステップＳ２０２において受信されたデータの送信元の端末（以下、「対象端末」という。）が対応するサービス（以下、「対象サービス」という。）のサービスＩＤに関連付けられて比較情報記憶部１８に記憶されている通信モデル情報（以下、「対象通信モデル情報」という。）と比較することで、対象端末の異常の有無を判定する例えば、対象通信モデル情報から導出される閾値βと、当該通信特性値とが比較されて異常の有無が判定されてもよい。より詳しくは、対象サービスに関して取得される通信特性値の分布が何らかの確率分布に従う場合、このモデルから大きく外れた通信特性値が取得されたときに、対象端末は異常であると判定してもよい。
【００５４】
対象端末に異常が有ることが判定された場合（異常が検知された場合）、通信制御部１６は、対象端末の通信を即時遮断してもよい。又は、通信制御部１６は、異常の発生を示す情報をＰＦ２０の、端末情報管理部２４に送信してもよい。この場合、端末情報管理部２４は、予め設定されたサービス提供事業者の連絡先にメール又はその他の通信手段により異常の発生を通知してもよい。この際、サービス提供事業者は、対象端末の通信遮断の要否を選択でき、通信遮断が必要であることが選択された場合に、端末情報管理部２４が、ＧＷ１０の通信制御部１６に対して通信遮断の指示を行い、通信制御部１６が、対象端末の通信を遮断してもよい。異常検知時のアクションについては、サービス提供事業者が事前にサービスごとに選択でき、当該アクションを示す情報はＰＦ２０の端末情報管理部２４によって保持されてもよい。この場合、当該情報は、図３のステップＳ１０３においてＧＷ１０に送信されてもよいし、異常検知時に、ＧＷ１０が当該情報をＰＦ２０に問いあわせてもよい。
【００５５】
なお、対象端末の異常が検知された場合、ステップＳ２０２において取得された通信特性値は破棄され、ステップＳ２０４は実行されない。異常な値に基づく学習が行われないようにするためのである。一方、対象端末の異常が検知されない場合、ステップＳ２０４は実行される。
【００５６】
ステップＳ２０１〜Ｓ２０４が、対象サービスに関してｍ回繰り返されると、ステップＳ２０５〜Ｓ２０８が実行される。図４において、ｍの初期値は、対象サービスに関して、図３ステップＳ１０３又はＳ１１６において受信された送信周期である。なお、異常が検知されたケースは、ｍ回にカウントされない。すなわち、ステップＳ２０４が実行された回数（学習が行われた回数）が、ｍ回にカウントされる。
【００５７】
ステップＳ２０５〜Ｓ２０８は、図３におけるステップＳ１１４〜Ｓ１１７と同じである。ステップＳ２０８の実行後、ステップＳ２０１以降が繰り返される。この際、ｍの値は、ステップＳ２０７において受信された送信周期によって更新される。
【００５８】
なお、ステップＳ２０２において取得された通信特性値を逐次ＰＦ２０に集約し、ＰＦ２０が通信モデル情報を逐次学習することも考えられる。しかし、この方法ではＰＦ２０における処理負荷及びＰＦ２０とＧＷ１０との通信回数が増大することで、特にスケーラビリティについて課題が存在する。
【００５９】
そこで、本実施の形態では、ＧＷ１０が通信モデル情報を学習し、当該通信モデル情報を周期的にＰＦ２０に送信することで、ＧＷ１０とＰＦ２０の間で発生する通信回数とＰＦ２０の処理負荷とを低減している。
【００６０】
また、ＰＦ２０とＧＷ１０と端末の台数関係は、一般的に、１：Ｍ：Ｎ（かつ１＜＜Ｍ＜＜Ｎ）であり、複数のＧＷ１０からＰＦ２０に対して、各ＧＷ１０において取得・学習された通信特性値及び通信モデル情報が送信され、ＰＦ２０において集約される。
【００６１】
そのため、ＰＦ２０では、複数のＧＷ１０を跨いで同一サービスに紐づく全ての端末の通信特性値に基づいて、精度の高い通信モデル情報が生成される。
【００６２】
ＧＷ１０からＰＦ２０に対して通信が行われる際に、ＰＦ２０が、最新の通信モデル情報をＧＷ１０に返送することで、ＧＷ１０は、高精度な通信モデルを用いた異常検知を行うことができる。
【００６３】
ＧＷ１０がＰＦ２０へ通信特性値を逐次送信し、ＰＦ２０が異常判定を行い、ＰＦ２０が通信モデル情報を逐次更新する場合と比較して、本実施の形態では、通信モデル情報の最新化には周期的な更新タイミングを迎えるまでの間にタイムラグが生じるため、適切な送信間隔を設定する必要がある。送信間隔が小さいと、ＰＦ２０への通信回数ならびにＰＦ２０での処理発生回数は増加するが、通信モデル情報の更新遅れは発生しにくくなる。一方、送信間隔が大きいと、ＰＦ２０の負荷が減る一方で、ＰＦ２０が保有する通信モデル情報と各ＧＷ１０が保有する通信モデル情報とが乖離する可能性がある。
【００６４】
ＧＷ１０が通信モデル情報等を送信するタイミングのバリエーションとしては、上記において説明したように、予め決められた周期でＧＷ１０が送信を行ってもよいし、ＰＦ２０の負荷平滑化の観点から、ＰＦ２０がスケジューリングを行い、順番にＧＷ１０に対して通信モデル情報の送信を要求してもよい。
【００６５】
なお、ＧＷ１０において処理能力に制約が存在し、学習の実施が困難な場合、ＧＷ１０が通信モデル情報の学習を全く行わずに通信特性値をＰＦ２０に周期的に送信してもよい。この場合であっても、通信回数の低減の効果を得ることができる。
【００６６】
また、ＰＦ２０が有する分散情報受信部２１、集約学習部２２、集約情報送信部２３、端末情報管理部２４等は、必ずしも一つのコンピュータによって実現されなくてもよい。スケーラビリティの観点から、負荷の大きな特定のサービス、あるいは全てのサービスに関する各機能部を、別々の物理サーバ又は仮想マシン上に分離して配置してもよい。この場合、図１に示すＰＦ２０において、分離したサーバの識別子（ＩＰアドレス／ドメイン名など）とサービス提供事業者の識別子の紐付けが管理され、これを利用して各サーバとの通信の振り分けが行われてもよい。
【００６７】
次に、端末から得られる通信特性値の分布が正規分布Ｎ（μ，σ２）に従う場合について、本実施の形態を具体的に説明する。
【００６８】
ＧＷ１０の分散情報記憶部１７には、サービス毎に、通信モデル情報として、μ及びσ２に加え、これまでに取得された通信特性値の数ｎが、通信モデル情報として記憶される。ＧＷ１０の分散学習部１３は、新たな通信特性値ｄａｔａｎ＋１が通信特性取得部１２によって取得される度に、逐次、以下の式を用いて新たな通信モデル情報μｎ＋１、σ２ｎ＋１を求める。なお、以下の式において、α＝１／（ｎ＋１）である。
【００６９】
【数１】
0006476143.tif 000002
ＧＷ１０の分散学習部１３は、送信周期が訪れるまで（送信周期の回数分、通信モデル情報を更新するまで）、上記の式を用いて通信モデル情報を繰り返し更新する。
【００７０】
或るサービスに関して送信周期が到来すると、ＧＷ１０の分散情報送信部１４は、当該サービスに関する通信モデル情報ｎ、μ、及びσ２をＰＦ２０に送信する。なお、通信モデル情報が正規分布に従う場合は、ＧＷ１０がこれまでに取得し通信特性値の履歴を送信する必要はなく、ＧＷ１０が学習した通信モデル情報のみを送信してもよい。一方、通信モデル情報を統合又は集約するのが困難な通信モデルに従う場合には、通信特性値の履歴の送信が必要である。この場合、通信モデル情報は送信されなくてもよく、ＧＷ１０において通信モデル情報が学習されなくてもよい。
【００７１】
ＰＦ２０において、ＧＷ１０からの通信モデル情報が受信されると、ＰＦ２０の集約学習部２２は、以下の式を用いて通信モデル情報を更新する（いずれの式も平均、分散の公式より導出可能である。この式はＧＷ１０側で取得した通信特性値に基づく通信モデル情報と、ＰＦ２０側が保持する通信モデル情報とが同じ母集団（＝同じサービス）から抽出された標本の特徴量であるときに成り立つ。）。
【００７２】
【数２】
0006476143.tif 000003
ここで、ＸＧＷ＋ＰＦは、ＧＷ１０側のＸとＰＦ２０側のＸとを統合した結果を示す。なお、上記の式において、Ｘに当てはまる値は、σ２、μ２、及びμである。
【００７３】
続いて、ＰＦ２０の集約情報送信部２３は、更新した通信モデル情報（ｎ＝ｎＧＷ１０＋ｎＰＦ，μＧＷ＋ＰＦ，σ２ＧＷ＋ＰＦ）と、当該通信モデル情報に係るサービスのサービスＩＤとを、ＧＷ１０に返送する。ＧＷ１０の集約情報受信部１５は、当該通信モデル情報及びサービスＩＤを受信すると、比較情報記憶部１８において当該サービスＩＤに対応付けられて記憶されている通信モデル情報を、受信された通信モデル情報によって上書きする。その結果、当該サービスＩＤに係るサービスに関する端末との以降の通信（端末からのデータの送信）に関する通信特性値は、新たに比較情報記憶部１８に記憶された通信モデル情報と比較されて、当該端末の異常の有無が判定される。
【００７４】
ここで、通信モデル情報は、通信特性値が取りうる値の正規分布Ｎ（μ，σ２）を表すものであり、この正規分布に従った場合の出現確率が一定値以下の値を外れ値と判定することができる。これは、単純に信頼区間を求める問題とみなすことができる。例えば、９５％信頼区間は、以下の式で表すことができる。
【００７５】
【数３】
0006476143.tif 000004
例えば、μ＝２０、σ＝５、ｎ＝３０の場合、信頼区間は、２０±１．９５×５／√３０＝２０±１．７８であり、１８．２２と、２１．７８とが、上記における閾値βとなる。
【００７６】
続いて、送信周期（ｍ）の動的な変更方法について説明する。
【００７７】
通信モデル情報が、正規分布に従う場合、学習した通信モデル情報のばらつき（＝精度の低さ）は、通信モデルの標準誤差σ／√ｎで表すことができる。
【００７８】
この式から分かるように、十分な量の通信特性値を取得すれば、標準誤差は小さな値に収束する。この場合、ＰＦ２０とＧＷ１０との間で通信モデル情報の頻繁な交換は不要である。一方、通信特性値の取得数が少ない場合、ＰＦ２０とＧＷ１０との間で通信モデル情報は頻繁に交換する必要がある（図５参照）。
【００７９】
そこで、通信モデルの収束度を定義し、収束度に応じて動的に送信周期（ＰＦ２０とＧＷ１０で通信モデル情報をやり取りするまでに、ＧＷ１０において通信モデル情報を更新する回数）を変更する。
【００８０】
一例として、下記のような式が考えられる。
【００８１】
【数４】
0006476143.tif 000005
閾値γは、任意に設定される値である。また２番目の式は、１と、（閾値γ／収束度）を整数に丸めた値との大きい方の値が、送信間隔となることを示す（整数に丸める方法は任意であり，小数点以下の切り捨て，切り上げ，四捨五入のいずれでもよい）。
【００８２】
直近のｋ個の通信モデル情報の標準誤差の変化の大きさを収束度と定義する。収束度が０に近いほど収束しており、収束度が大きいほど収束していない状態を表す。この計算は、例えば、ＰＦ２０の集約学習部２２により行われ、ＧＷ１０から受信した通信モデル情報に基づいて、新たな通信モデル情報を学習するたびに、当該通信モデル情報と共に、当該送信間隔がＧＷ１０に送信される。
【００８３】
収束度が閾値γより大きい（収束していない）場合、送信間隔は１、すなわち、ＧＷ１０側で通信モデル情報を学習するたびに、逐次、ＰＦ２０とＧＷ１０の間で通信モデル情報のやり取りが行われる。収束度が０に近い場合、送信間隔は長くなる。
【００８４】
上述したように、本実施の形態によれば、ＧＷ１０は、端末からデータが受信されるたびに逐次、通信特性値又は通信モデル情報をＰＦ２０に送信するのではなく、周期的に通信特性値又は通信モデル情報をＰＦ２０に送信する。その結果、ＧＷ１０及びＰＦ２０間の通信頻度を低減することができる。また、端末の異常の検知は、分散された複数のＧＷ１０において取得された通信特性値に基づく学習結果である通信モデル情報が利用されて行われる。したがって、ネットワークにおけるスケーラビリティの確保と、通信モデル情報を利用した高精度な端末の異常検知とを両立することができる。すなわち、ネットワークに接続される端末の異常検知の効率性を向上させることができる。
【００８５】
また、通信モデル情報が各ＧＷ１０において学習される場合、ＰＦ２０における処理負荷を低減することもできる。
【００８６】
なお、本実施の形態において、ＧＷ１０は、異常検知装置の一例である。通信特性取得部１２は、取得部の一例である。分散情報送信部１４は、送信部の一例である。集約情報受信部１５は、受信部の一例である。通信制御部１６は、検知部の一例である。分散学習部１３は、請求項２の生成部の一例である。ＰＦ２０は、集約装置の一例である。集約学習部２２は、請求項４の生成部の一例である。
【００８７】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００８８】
１            異常検知システム
１０          ＧＷ
１１          端末収容部
１２          通信特性取得部
１３          分散学習部
１４          分散情報送信部
１５          集約情報受信部
１６          通信制御部
１７          分散情報記憶部
１８          比較情報記憶部
２０          ＰＦ
２１          分散情報受信部
２２          集約学習部
２３          集約情報送信部
２４          端末情報管理部
２５          集約情報記憶部
２６          端末情報記憶部
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
Ｂ            バス
【図１】
0006476143.tif 000006
【図２】
0006476143.tif 000007
【図３】
0006476143.tif 000008
【図４】
0006476143.tif 000009
【図５】
0006476143.tif 000010