(57)【特許請求の範囲】
【請求項１】
通信が実行された頻度に基づき、前記頻度が低い場合には、前記通信が特異である程度を表す特異度が高いと算出し、前記頻度が高い場合には、前記特異度が低いと算出するモデルを作成するモデル作成手段と、
ある通信に関する頻度に前記モデルを適用することによって前記特異度を算出し、算出した特異度が基準を満たす場合には、前記ある通信が特異であると推定し、前記算出した特異度が基準を満たさない場合には、前記ある通信が特異でないと推定する推定手段と、
実行された通信に関する履歴が格納されている通信情報から、前記ある通信に類似している通信、または、同じ通信を、第１通信として抽出する通信抽出手段と
を備え、
前記頻度は、前記第１通信が実行されたタイミングから、前記第１通信が最後に実行されたタイミングまでの経過時間が分類されている頻度であって、前記経過時間が長いほど値が小さく、前記経過時間が短いほど値が大きい
イベント推定装置。
【請求項２】
前記モデル作成手段は、前記経過時間が複数の区間に分類されている場合であって、前記頻度が０である区間がある場合に、各前記区間に所定の小さな値を加え、算出した値に基づき、前記特異度を算出する
請求項１に記載のイベント推定装置。
【請求項３】
前記頻度の種類を指定可能なインターフェース
をさらに備え、
前記モデル作成手段は、前記種類の前記頻度に基づき前記モデルを作成する
請求項１または請求項２に記載のイベント推定装置。
【請求項４】
通信が実行された頻度に基づき、前記頻度が低い場合には、前記通信が特異である程度を表す特異度が高いと算出し、前記頻度が高い場合には、前記特異度が低いと算出するモデルを作成し、ある通信に関する頻度に前記モデルを適用することによって前記特異度を算出し、算出した特異度が基準を満たす場合には、前記ある通信が特異であると推定し、前記算出した特異度が基準を満たさない場合には、前記ある通信が特異でないと推定し、実行された通信に関する履歴が格納されている通信情報から、前記ある通信に類似している通信、または、同じ通信を、第１通信として抽出する方法であって、
前記頻度は、前記第１通信が実行されたタイミングから、前記第１通信が最後に実行されたタイミングまでの経過時間が分類されている頻度であって、前記経過時間が長いほど値が小さく、前記経過時間が短いほど値が大きい
イベント推定方法。
【請求項５】
通信が実行された頻度に基づき、前記頻度が低い場合には、前記通信が特異である程度を表す特異度が高いと算出し、前記頻度が高い場合には、前記特異度が低いと算出するモデルを作成するモデル作成機能と、
ある通信に関する頻度に前記モデルを適用することによって前記特異度を算出し、算出した特異度が基準を満たす場合には、前記ある通信が特異であると推定し、前記算出した特異度が基準を満たさない場合には、前記ある通信が特異でないと推定する推定機能と、
実行された通信に関する履歴が格納されている通信情報から、前記ある通信に類似している通信、または、同じ通信を、第１通信として抽出する通信抽出機能と
をコンピュータに実現させ、
前記頻度は、前記第１通信が実行されたタイミングから、前記第１通信が最後に実行されたタイミングまでの経過時間が分類されている頻度であって、前記経過時間が長いほど値が小さく、前記経過時間が短いほど値が大きい
イベント推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、通信に関して特異なイベントを検出するシステム等に関する。
【背景技術】
【０００２】
情報処理システムにおける通信を監視する方法には、様々な方法が知られている。たとえば、特許文献１は、通信ネットワークを監視する検出装置を開示する。該検出装置は、通信ネットワークにおいて送受信される通信イベント（以降、「イベント」と表す）に関するログに基づき、ある通信に関するイベントが特異であるか否かを推定することにより、該通信に関する状態を推定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１０−５３１５５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に開示された検出装置では、特異であるか否かを推定する精度が低い。これは、該検出装置においては、クエリ等を用いて特異な通信を定義するのが困難だからである。
【０００５】
説明の便宜上、ＴＣＰポート８０番を経由する通信の頻度が極めて低いとする。この場合に、たとえば、該検出装置は、ＴＣＰポート８０番を経由する通信が実行されたという情報を受信するたびに、各ホスト間において直近に実行されたＴＣＰポート８０番を経由する通信を全て検索する必要がある。該検出装置は、検索を実行することにより、ＴＣＰポート８０番を経由する通信が実行される頻度を計算し、該頻度が少ないホスト間に通信がある場合にのみ、受信した通信に関するイベントが特異であると推定する。
【０００６】
そこで、本発明の主たる目的は、通信が特異であるか否かを高精度に推定可能なイベント推定装置等を提供することである。
【課題を解決するための手段】
【０００７】
前述の目的を達成するために、本発明の一態様において、イベント推定装置は、以下の構成を備える。
【０００８】
すなわち、イベント推定装置は、
通信が実行される頻度に基づき、前記頻度が低い場合には、前記通信が特異である程度を表す特異度が高いと算出し、前記頻度が高い場合には、前記特異度が低いと算出するモデルを作成するモデル作成手段と、
前記モデルに基づき、新たに実行される通信に関する前記特異度を算出し、算出した特異度が基準を満たす場合に、前記新たに実行される通信が特異であると推定し、前記算出した特異度が基準を満たさない場合に、前記新たに実行される通信が特異でないと推定する推定手段と
を備える。
【０００９】
また、本発明の他の見地として、イベント推定方法は、
通信が実行される頻度に基づき、前記頻度が低い場合には、前記通信が特異である程度を表す特異度が高いと算出し、前記頻度が高い場合には、前記特異度が低いと算出するモデルを作成し、前記モデルに基づき、新たに実行される通信に関する前記特異度を算出し、算出した特異度が基準を満たす場合に、前記新たに実行される通信が特異であると推定し、前記算出した特異度が基準を満たさない場合に、前記新たに実行される通信が特異でないと、情報処理装置が推定する。
【００１０】
さらに、同目的は、係るイベント推定プログラム、および、そのプログラムを記録するコンピュータ読み取り可能な記録媒体によっても実現される。
【発明の効果】
【００１１】
本発明に係るイベント推定装置等によれば、通信が特異であるか否かを高精度に推定することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態に係るイベント推定装置が有する構成を示すブロック図である。
【図２】第１の実施形態に係るイベント推定装置における処理の流れを示すフローチャートである。
【図３】インターフェースにおける処理の流れを示すフローチャートである。
【図４】ＧＵＩを介してクエリを設定可能なフォームの一例を表す図である。
【図５】テキストベースによるクエリを設定する一例を表す図である。
【図６】データ構造の一例を概念的に表す図である。
【図７】グラフ情報を通信データベースに格納する処理の流れを示すフローチャートである。
【図８】通信情報の一例を概念的に表す図である。
【図９】グラフ情報の一例を概念的に表す図である。
【図１０】種類が「新規性」である場合に算出されるモデルの一例を概念的に表す図である。
【図１１】種類が「時間帯」である場合に算出されるモデルの一例を概念的に表す図である。
【図１２】種類が「通信頻度」である場合に算出されるモデルの一例を概念的に表す図である。
【図１３】種類が「通信量」である場合に算出されるモデルの一例を概念的に表す図である。
【図１４】クエリを作成する処理の流れを示すフローチャートである。
【図１５】通信に関する特異なイベントを検出する情報処理システムの構成を示すブロック図である。
【図１６】本発明の第２の実施形態に係るイベント推定装置が有する構成を示すブロック図である。
【図１７】第２の実施形態に係るイベント推定装置における処理の流れを示すフローチャートである。
【図１８】本発明の各実施形態に係るイベント推定装置を実現可能な計算処理装置のハードウェア構成例を、概略的に示すブロック図である。
【発明を実施するための形態】
【００１３】
次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。
【００１４】
＜第１の実施形態＞
本発明の第１の実施形態に係るイベント推定装置１０１が有する構成と、イベント推定装置１０１が行う処理とについて、図１と図２とを参照しながら詳細に説明する。図１は、本発明の第１の実施形態に係るイベント推定装置１０１が有する構成を示すブロック図である。
【００１５】
第１の実施形態に係るイベント推定装置１０１は、モデル作成部１０２と、推定部１０３とを有する。イベント推定装置１０１は、さらに、クエリ実行部１０４を有してもよい。
【００１６】
まず、図１５を参照しながら、イベント推定装置１０１等が推定する結果に従い、通信に関する特異的なイベントを検出する情報処理システムについて説明する。図１５は、通信に関する特異的なイベントを検出する情報処理システムの構成を示すブロック図である。
【００１７】
情報処理システムにおいては、後述のように、情報処理装置（説明の便宜上、ホスト１００１ａ乃至ホスト１００１ｄとする）の間における通信に関して、通信に関する特異なイベントが検出される。
【００１８】
ホスト１００１ａ乃至ホスト１００１ｄにおいては、それぞれ、該ホスト間の通信を監視するエージェント１００２ａ乃至エージェント１００２ｄが存在する。たとえば、エージェント１００２ａは、ホスト１００１ａに関する通信を監視する。エージェント１００２ｂは、ホスト１００１ｂに関する通信を監視する。エージェント１００２ｃは、ホスト１００１ｃに関する通信を監視する。エージェント１００２ｄは、ホスト１００１ｄに関する通信を監視する。
【００１９】
エージェント１００２ａは、ホスト１００１ａが通信する情報（以降、「通信情報」と表す）を送信したり受信したりするのに応じて、該通信情報をコンバータ１００３に送信する。エージェント１００２ｂ乃至エージェント１００２ｄについても、エージェント１００２ａと同様に、自エージェントを含むホストに関する通信を監視する。
【００２０】
コンバータ１００３は、各エージェントが送信する通信情報を受信し、受信した通信情報を解析する。たとえば、コンバータ１００３は、通信情報から、送信側ホストを表す識別子（以降、「送信側識別子」と表す）、受信側ホストを表す識別子（以降、「受信側識別子」と表す）、及び、内容に関する情報を読み取る。次に、コンバータ１００３は、読み取った送信側識別子を始点ノードのラベルに設定し、受信側識別子を終点ノードのラベルに設定する。コンバータ１００３は、始点ノードから終点ノードへの有向枝（エッジ）のラベルに、該通信に関する内容を設定することにより、有向グラフを作成する。コンバータ１００３は、作成した有効グラフを、グラフ情報として、通信データベース１００４に格納する。
【００２１】
一方、オペレータ１００６は、監視する対象である通信に関する条件を、クエリとしてインターフェース１００５に設定する。たとえば、オペレータ１００６は、「ＴＣＰ（トランスミッションコントロールプロトコル）ポート８０番を経由する通信」を監視する場合に、「ＴＣＰ＿ｐｏｒｔ＝８０」等のように、インターフェース１００５に、クエリを設定する。インターフェース１００５は、あるタイミング（クエリが設定される／定期的に検索する／新たな通信が実行される等）に応じて、通信データベース１００４を検索する。インターフェース１００５は、設定されたクエリの条件に適合する通信を検出する場合に、該通信に関する情報をオペレータ１００６に出力する。
【００２２】
上述した通信データベース１００４と同様に、通信データベース５０３には、エージェントが送信する通信体が実行する通信に関する通信情報が変換されたグラフ情報が格納されている。すなわち、通信データベース５０３には、実行された通信に関する通信履歴情報が格納される。通信データベース５０３は、リレーショナルデータベース（以降、「ＤＢ」と表す）等、他の形式に従い情報が格納されるＤＢであってもよい。
【００２３】
通信体は、通信ネットワークを介して通信可能な情報処理装置を表す。通信体は、たとえば、通信ネットワークを介して通信可能な、パーソナルコンピュータやサーバ等のコンピュータ、ネットワークプリンタ等のデバイス、ファイヤウォール、ルータ、または、ネットワークスイッチ等のネットワーク機器である。
【００２４】
図３を参照しながら、クエリが設定される場合における、インターフェース１００５における処理について説明する。図３は、インターフェース１００５における処理の流れを示すフローチャートである。
【００２５】
オペレータ１００６等により、クエリが入力されると（ステップＳ２０１にてＹＥＳと判定）、クエリインターフェース（以降、「ＩＦ」と表す）１００５は、該クエリを記憶する（ステップＳ２０２）。インターフェース１００５は、該クエリを検索に適する構成に変換してもよい（ステップＳ２０３）。たとえば、インターフェース１００５は、該クエリを、検索ツリーに変換したり、ハッシュ関数を用いて検索可能なように変換したりしてもよい。
【００２６】
図４、及び、図５にオペレータ１００６が設定するクエリの一例を示す。図４は、グラフィカルなユーザＩＦ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ：ＧＵＩ）を介してクエリを設定可能なフォームの一例を表す図である。図５は、テキストベースによるクエリを設定する一例を表す図である。
【００２７】
図４に例示するＧＵＩは、大別して、２種類のＩＦを有する。１つのＩＦは、通信に係るイベント（以降、「通信」と表す）が特異である程度（度合）を表す特異度を指定する項目（以降、「特異度指定項目」と表す）を設定可能なＩＦである。もう１つのＩＦは、通信に関する特異度とは異なる項目を設定可能な情報ＩＦである。
【００２８】
特異度指定項目は、さらに、特異度に関する種類（後述）を表す指標を指定する種類ＩＦ３０１と、通信が特異であるか否かを推定する基準となる閾値を指定する閾値ＩＦ３０２と、特異度に関するオプションを指定するオプションＩＦ３０３とを含む。
【００２９】
種類ＩＦ３０１には、通信が特異であるか否かを推定する特異度を算出する機能に関する種類を指定することができる。たとえば、種類「新規性」は、通常、通信が実行されない通信体間において、新たな通信が実行される場合に、該通信を特異であると推定する機能を表す。「時間帯」は、複数の通信体間において通常、通信が実行されない時間帯に、通信が実行される場合に、該通信を特異であると推定する機能を表す。時間帯は、一日のうちのある時刻、一週間のうちのある曜日、一ヶ月のうちのある日等であり、オプションＩＦ３０３にて指定可能である。
【００３０】
「通信頻度」は、複数の通信体間にて実行される通信の周期が、通常実行される通信の周期と異なる場合に、該通信を特異であると推定する機能を表す。「通信量」は、通信体間にて実行される通信の通信量が、通常実行される通信における通信量と異なる場合に、該通信を特異であると推定する機能を表す。
【００３１】
閾値ＩＦ３０２においては、種類ＩＦ３０１にて設定される種類の特異度に関して、通信が特異であるか否かを推定する基準となる閾値を設定することができる。閾値は、たとえば、実行された通信に関連付けされたモデル（後述）を用いて推定する場合に、該通信が特異であるか否かを推定する基準となる値である。閾値を設定する方法としては、図４に例示するフォームのように、閾値ＩＦ３０２にてプルダウン方式で設定する方式の他に、テキストフォームにて数値を入力する方式、または、スクロールボタン等で設定数値を変化させる方式等がある。
【００３２】
オプションＩＦ３０３には、種類ＩＦ３０１にて指定される種類の特異度に関して、追加的に設定する必要がある情報を入力することができる。該オプションＩＦ３０３は、必要に応じて出現してもよい。たとえば、種類ＩＦ３０１において「時間帯」が選択されると、オプションＩＦ３０３が出現する。たとえば、オプションＩＦ３０３においては、時間帯として一日のうちのある時刻（Ｔｉｍｅ  ｏｆ  ｔｈｅ  Ｄａｙ）、一週間のうちのある曜日（Ｄａｙ  ｏｆ  Ｗｅｅｋ）、または、一ヶ月のうちのある日（Ｄａｙ  ｏｆ  Ｍｏｎｔｈ）等が設定可能である。
【００３３】
また、種類ＩＦ３０１において「通信量」が選択される場合にも、オプションＩＦ３０３が出現する。オプションＩＦ３０３においては、通信量を測定する時間を設定できる。オプションＩＦ３０３において設定できる項目数は１つとは限らず、必要に応じて複数個設定できる。
【００３４】
情報ＩＦは、送信ホストＩＦ３０４、受信ホストＩＦ３０５、及び、プロトコルＩＦ３０６を含む。情報ＩＦは、他のＩＦを含んでいてもよく、以降の説明に限定されない。
【００３５】
送信ホストＩＦ３０４には、検索対象である通信に関して、情報を送信する通信体（以降、「送信ホスト」と表す）を指定することができる。受信ホストＩＦ３０５には、検索対象である通信に関して、情報を受信する通信体（以降、「受信ホスト」と表す）を指定することができる。
【００３６】
通信体を指定する方式には、たとえば、インターネットプロトコル（ＩＰ）アドレスを指定する方式、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  ａｄｄｒｅｓｓ）アドレスを指定する方式、または、ホスト名を指定する方式等がある。
【００３７】
イベント推定装置１０１は、情報ＩＦにて指定された送信ホストと受信ホストとの間の通信が特異であるか否かを推定する。また、イベント推定装置１０１は、送信ホスト及び受信ホストが指定されない場合に、全てのホストに関わる通信に関して、特異であるか否かを推定してもよい。
【００３８】
プロトコルＩＦ３０６には、特異を検索する対象となる通信に関するプロトコルを指定することができる。プロトコルを指定する方式には、たとえば、プロトコル名を指定する方式、ＴＣＰ／ＵＤＰ（ユーザデータグラムプロトコル）ポート番号を指定する方式等がある。イベント推定装置１０１は、指定されたプロトコルにて実行される通信に関して、特異であるか否かを推定する。また、プロトコルが指定されない場合に、イベント推定装置１０１は、プロトコルを限定することなく、通信が特異であるか否かを推定してもよい。
【００３９】
図５に示す例は、種類が「新規性」であり、閾値が「０．８５」であり、さらに、プロトコルがＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）である通信に関して、特異な通信を通信データベース５０３から検出するクエリを表す。
【００４０】
説明の便宜上、クエリに関する基本的な文法は、ＥＰＬ（Ｅｖｅｎｔ  Ｐｒｏｃｅｓｓｉｎｇ  Ｌａｎｇｕａｇｅ）に基づくとする。ただし、図５に例示するクエリは、ＥＰＬに基づくクエリに、さらに、特異度に関するパラメタが追加されている。
【００４１】
テキストベースによりクエリを設定する場合には、ＧＵＩを介してクエリを設定する場合と同様に、種類、閾値、または、オプション等を指定することができる。
【００４２】
図５に示す例は、種類が「新規性」（Ａｎｏｍａｌｙ＿Ｔｙｐｅ＝“ｎｏｖｅｌｔｙ”）であり、閾値が「０．８５」（Ｔｈｒｅｓｈｏｌｄ＝０．８５）であり、さらに、ＨＴＴＰプロトコルの特異を検出するクエリである。尚、図５において、ＨＴＴＰプロトコルは、「Ｐｒｏｔｏｃｏｌ＝“ｈｔｔｐ”」にて指定されている。
【００４３】
次に、図２を参照しながら、本実施形態に係るイベント推定装置１０１における処理について説明する。図２は、第１の実施形態に係るイベント推定装置１０１における処理の流れを示すフローチャートである。
【００４４】
まず、モデル作成部１０２は、通信に関する頻度に基づき、通信が特異であるか否かを推定するモデルを作成する（ステップＳ１０１）。モデル作成部１０２がモデルを作成する手順については後述する。モデル作成部１０２は、作成したモデルを通信データベース５０３に格納する。
【００４５】
図６を参照しながら、通信データベース５０３に格納されるデータ構造について説明する。図６は、データ構造の一例を概念的に表す図である。
【００４６】
図６を参照すると、グラフを用いて記述されたデータ構造である場合に、グラフは、節点ａ乃至節点ｄと、２つの節点を結ぶ矢印（枝）とを有する。節点は、通信体を表し、該通信体の識別子を用いてラベル付けされている。また、矢印は、隣接する節点（すなわち、通信体）の間において実行される通信を表す。また、枝（エッジ）には、該通信に関するプロトコル等の情報を表すラベルが付されていてもよい。たとえば、節点ａから節点ｂに向かう矢印は、通信体ａから通信体ｂに情報を送信することを表す。また、節点ｄから節点ｃに向かう矢印は、通信体ｄから通信体ｃに情報を送信することを表す。
【００４７】
モデル作成部１０２は、後述のように作成するモデルを、該データ構造における枝に関連付けすることにより、グラフ情報として通信データベース５０３に格納する。すなわち、グラフ情報には、ある通信を実行する送信ホストの識別子と、該通信を実行する受信ホストの識別子と、該通信のプロトコルと、該通信に関して算出されたモデルとが関連付けされている。
【００４８】
たとえば、情報処理システムにて、ある通信が実行されるのに応じて、推定部１０３は、通信データベース５０３から、該通信に関する送信ホストの識別子と、該受信ホストに関する識別子と、該通信に関するプロトコルとに関連付けされたモデルとを読み取る。次に、推定部１０３は、該通信に関するパラメタ（たとえば、通信頻度、通信量等）に、読み取ったモデルを適用することにより、特異度を算出する（ステップＳ１０２）。次に、推定部１０３は、算出した特異度が基準を満たすか否かに応じて、該通信が特異であるか否かを推定する（ステップＳ１０３）。たとえば、基準は、所定の閾値を超えるか否かである。
【００４９】
推定部１０３は、算出した特異度が閾値を超える場合に（ステップＳ１０３にてＹＥＳと判定）、該通信が特異であると推定する（ステップＳ１０４）。推定部１０３は、算出した特異度が基準を満たさない場合に（ステップＳ１０３にてＮＯと判定）、該通信が特異でないと推定する（ステップＳ１０５）。
【００５０】
次に、図７を参照しながら、通信体が実行する通信に関するグラフ情報を、通信データベース５０３に格納する処理について説明する。図７は、グラフ情報を通信データベース５０３に格納する処理の流れを示すフローチャートである。
【００５１】
説明の便宜上、通信体は、ホスト（すなわち、ホストａ乃至ホストｄ）であるとする。ホストａ乃至ホストｄは、それぞれ、ホストにおける通信を監視するエージェントａ乃至エージェントｄを有するとする。すなわち、エージェントａ乃至エージェントｄは、それぞれ、ホストａ乃至ホストｄに常駐するとする。
【００５２】
ホストａ乃至ホストｄが通信を実行する場合に（ステップＳ３０１にてＹＥＳと判定）、エージェントａ乃至エージェントｄは、該通信に関する通信情報（図８）をコンバータに送信する（ステップＳ３０２）。図８は、通信情報の一例を概念的に表す図である。
【００５３】
通信情報は、たとえば、通信を実行する送信ホストに関する情報、通信を実行する受信ホストに関する情報、通信が実行される日時、該通信のプロトコル、該通信において送受信される通信量等を関連付ける。図８に例示する通信情報は、送信ホスト「１０．５６．５３．９２」から受信ホスト「１０．５６．５３．９３」へ日時「２０１４／０７／２８  １３：５６：１２」に、「ＨＴＴＰ」プロトコルに従い「１００Ｍｂｙｔｅ（メガバイト）」の情報を通信することを表す。
【００５４】
コンバータ１００３は、各エージェントから受信した通信情報を、送信ホストを表す識別子と、受信ホストを表す識別子とを、それぞれ、節点のラベルとし、その他の情報を枝のラベルとする図９に例示するようなグラフ情報に変換する（ステップＳ３０３）。図９は、グラフ情報の一例を概念的に表す図である。コンバータ１００３は、作成したグラフ情報を、通信データベース５０３（通信データベース１００４に相当）に格納する（ステップＳ３０４）。
【００５５】
モデル作成部１０２は、たとえば、通信データベース５０３におけるグラフ情報が更新されるのに応じて、該更新されたグラフ情報に基づきモデルを作成してもよい。たとえば、モデル作成部１０２は、更新されたグラフ情報に基づき、送信ホストと受信ホストと間において、該プロトコルに従い実行された通信の履歴に基づき、後述のようにモデルを作成する（ステップＳ３０５）。次に、モデル作成部１０２は、作成したモデルを、該グラフ情報に関連付けする（たとえば、該更新されたグラフ情報における枝に関連付けする）ことにより、通信データベース５０３に格納する（ステップＳ３０６）。
【００５６】
次に、モデル作成部１０２がモデルを作成する手順について説明する。種類が、たとえば、「新規性」、「時間帯」、「通信頻度」、及び、「通信量」である場合に、モデル作成部１０２がモデルを作成する処理に関して説明する。
【００５７】
まず、種類が「新規性」である場合において、モデル作成部１０２がモデルを作成する処理に関して説明する。
【００５８】
モデル作成部１０２は、通信データベース５０３に格納されたグラフ情報に基づき、通信が実行される頻度の履歴を表すヒストグラムを作成する。この場合に、モデル作成部１０２は、グラフ情報から、たとえば、送信ホストと受信ホストとの間において、あるプロトコルに従い実行される通信に関するタイミングを読み取る。次に、モデル作成部１０２は、読み取ったタイミングを区間に区分けし、該区間における頻度を算出することにより、ヒストグラムを作成する。
【００５９】
モデル作成部１０２は、たとえば、頻度が０の区間がある場合に、ヒストグラムを算出する対象となる各区間の頻度に、小さな値（たとえば、１）を加えてもよい。この場合に、たとえば、通信データベース５０３に格納されたグラフ情報に、頻度が記録されていない場合であっても、モデル作成部１０２は、小さな値に基づき頻度を算出する。この場合に、モデル作成部１０２は、該区間に含まれる通信が実行されることを反映するモデルを作成する。したがって、モデル作成部１０２は、適切なヒストグラムを作成する。
【００６０】
次に、モデル作成部１０２は、該ヒストグラムにおいて、頻度の高低を入れ替えること等により、モデルを作成する。たとえば、モデル作成部１０２は、ヒストグラムにおける頻度が高い場合に特異度を低く設定し、ヒストグラムにおける頻度が低い場合に特異度を高く設定することにより、図１０に例示するモデルを作成する。図１０は、種類が「新規性」である場合に算出されるモデルの一例を概念的に表す図である。図１０の横軸は、上述したタイミングを表し、右側ほど最新のタイミングであることを表す。図１０の縦軸は、特異度を表し、上側ほど特異度が高いことを表す。モデル作成部１０２は、作成したモデルを、グラフにおける枝に関連付けて、通信データベース５０３に格納する。
【００６１】
推定部１０３は、新たに実行された通信に関して、該通信のタイミングを算出し、モデル作成部１０２が作成するモデルに従い、特異度を算出する。次に、推定部１０３は、算出した特異度が、閾値を超えるか否かを推定する（ステップＳ１０３）。次に、推定部１０３は、特異度が閾値を超えると推定する場合に（ステップＳ１０３にてＹＥＳと判定）、該通信を特異な通信であると推定する（ステップＳ１０４）。推定部１０３は、特異度が閾値を超えないと推定する場合に（ステップＳ１０３にてＹＥＳと判定）、該通信を特異な通信でないと推定する（ステップＳ１０５）。
【００６２】
すなわち、種類が「新規性」である場合には、通常、推定部１０３は、頻度が低いタイミングにて、通信が実行される場合に、該通信が特異であると推定する。したがって、図１０に示すように、最後に通信が起きたタイミングが過去であるほど、モデルに従い算出される特異度は高い。
【００６３】
次に、種類が「時間帯」であり、さらに、オプションが「ｔｉｍｅ  ｏｆ  ｄａｙ」である場合において、モデル作成部１０２がモデルを作成する処理に関して説明する。
【００６４】
モデル作成部１０２は、通信データベース５０３に格納されたグラフ情報に基づき、ある時間帯において通信が実行される頻度の履歴を表すヒストグラムを作成する。この場合に、モデル作成部１０２は、たとえば、送信ホストと受信ホストとの間において、あるプロトコルに従い通信が実行されるタイミングを、複数の時間帯に分類し、該時間帯における頻度を算出することにより、ヒストグラムを作成する。たとえば、モデル作成部１０２は、１日を分割することにより作成される時間帯に関するヒストグラムを作成する。
【００６５】
次に、モデル作成部１０２は、該ヒストグラムに関して、上述した処理と同様の処理を実行することにより、図１１に例示するようなモデルを作成する。図１１は、種類が「時間帯」である場合に算出されるモデルの一例を概念的に表す図である。図１１の横軸は、時間帯を表し、右側ほど時間帯が遅いことを表す。図１１の縦軸は、特異度を表し、上側ほど特異度が高いことを表す。
【００６６】
次に、推定部１０３は新たに実行された通信に関して、該通信が実行される時間帯を算出し、モデル作成部１０２が作成するモデルに従い、特異度を算出する。以降、推定部１０３は、上述した処理と同様の処理を実行することにより、通信が特異であるか否かを推定する。
【００６７】
種類が「時間帯」である場合には、通常、推定部１０３は、通信の頻度が低い時間帯に通信が実行される場合に、該特異であると推定する。すなわち、図１１に示す例において、推定部１０３は、通信頻度が高い時間帯（日中）であるほど、通信が特異でないと推定する。逆に、推定部１０３は、通信頻度が高い時間帯（夜間）であるほど、通信が特異であると推定する。
【００６８】
次に、種類が「通信頻度」である場合において、モデル作成部１０２がモデルを作成する処理に関して説明する。
【００６９】
モデル作成部１０２は、通信データベース５０３に格納された通信情報に基づき、通信が実行される頻度の履歴を表すヒストグラムを作成する。この場合に、モデル作成部１０２は、たとえば、送信ホストと受信ホストとの間において、あるプロトコルに従い通信が実行されるタイミングの間隔を算出する。次に、モデル作成部１０２は、算出した間隔を区間に区分けし、該区間における頻度を算出することにより、ヒストグラムを作成する。
【００７０】
次に、モデル作成部１０２は、該ヒストグラムに関して、上述した処理と同様の処理を実行することにより、図１２に例示するようなモデルを作成する。図１２は、種類が「通信頻度」である場合に算出されるモデルの一例を概念的に表す図である。図１２の横軸は、時間帯を表し、右側ほど間隔が長いことを表す。図１２の縦軸は、特異度を表し、上側ほど特異度が高いことを表す。
【００７１】
次に、推定部１０３は、新たに実行された通信に関して、該通信の間隔を算出し、モデル作成部１０２が作成するモデルに従い、特異度を算出する。以降、推定部１０３は、上述した処理と同様の処理を実行することにより、通信が特異であるか否かを推定する。
【００７２】
上述したように、種類が「通信頻度」である場合に、モデル作成部１０２は、２つの通信が実行されるタイミング間の間隔を算出する。たとえば、イベント推定装置１０１は、１つ前の通信のタイミングを記憶するステートを有してもよい。
【００７３】
次に、種類が「通信量」である場合において、モデル作成部１０２がモデルを作成する処理に関して説明する。
【００７４】
モデル作成部１０２は、通信データベース５０３に格納されたグラフ情報に基づき、通信が実行される頻度の履歴を表すヒストグラムを作成する。この場合に、モデル作成部１０２は、たとえば、送信ホストと受信ホストとの間において、あるプロトコルに従い実行される通信において送受信される通信量を読み取る。次に、モデル作成部１０２は、読み取った通信量を区間に区分けし、該区間における頻度を算出することにより、ヒストグラムを作成する。
【００７５】
次に、モデル作成部１０２は、該ヒストグラムに関して、上述した処理と同様の処理を実行することにより、図１３に例示するようなモデルを作成する。図１３は、種類が「通信量」である場合に算出されるモデルの一例を概念的に表す図である。図１３の横軸は、通信量を表し、右側ほど通信量が多いことを表す。図１３の縦軸は、特異度を表し、上側ほど特異度が高いことを表す。
【００７６】
次に、推定部１０３は新たに実行された通信に関して、通信量を算出し、モデル作成部１０２が作成するモデルに従い、特異度を算出する。以降、推定部１０３は、上述した処理と同様の処理を実行することにより、通信が特異であるか否かを推定する。
【００７７】
種類が「通信量」である場合に、通信量が、通常送受信される通信量と異なる場合に、該通信は特異である可能性が高い。したがって、モデル作成部１０２は、通常の通信量のである場合に特異度が低く、滅多にない通信量の場合に、特異度が高くモデルを作成する。
【００７８】
尚、種類が「通信量」である場合に、ウィンドウタイム（すなわち、ある一定時間）内の通信の合計の通信量を計算する必要がある。したがって、イベント推定装置１０１は、ウィンドウタイム内の通信を記憶可能なステートを有してもよい。
【００７９】
次に、図１４を参照しながら、ホストにおいて通信が実行される場合に、クエリを実行する手順について説明する。図１４は、クエリを作成する処理の流れを示すフローチャートである。
【００８０】
たとえば、ホストａ乃至ホストｄで通信が実行される場合に（ステップＳ４０１にてＹＥＳと判定）、エージェントａ乃至エージェントｄは、通信情報をコンバータに送信する（ステップＳ４０２）。コンバータは、通信情報を受信し、受信した通信情報をグラフ情報に変換する（ステップＳ４０３）。ステップＳ４０１乃至ステップＳ４０３に示す処理は、図７に示したステップＳ３０１乃至ステップＳ３０３までと同様の処理であるので、処理を共有してもよい。コンバータは、通信情報をクエリ実行部１０４に通知する（ステップＳ４０４）。
【００８１】
クエリ実行部１０４は、通信情報にマッチするクエリを検索するが、その前段階として、通信データベース５０３に格納されたモデルに基づき、通信情報に含まれる通信に関する特異度を算出する（ステップＳ４０５）。
【００８２】
以降に、種類に設定可能な項目ごとに、動作について説明する。
【００８３】
まず、種類が「新規性」である場合に、クエリ実行部１０４は、受信した通信情報に含まれる送信ホスト情報と、受信ホスト情報と、プロトコルとに関連付けされたモデルを通信データベース５０３から読み取る。次に、クエリ実行部１０４は、通信が実行されたタイミングに関する情報に、読み取ったモデルを適用することにより、特異度を算出する。
【００８４】
種類が「時間帯」である場合に、クエリ実行部１０４は、受信した通信情報に含まれる送信ホスト情報と、受信ホスト情報と、プロトコルとに関連付けされたモデルを通信データベース５０３から読み取る。そしてクエリ実行部１０４は、通信が実行されたタイミングに読み取ったモデルを適用することにより、特異度を算出する。
【００８５】
種類が「通信頻度」である場合に、クエリ実行部１０４は、受信した通信情報に含まれる送信ホスト情報と、受信ホスト情報と、プロトコルとに関連付けされたモデルを通信データベース５０３から読み取る。次に、クエリ実行部１０４は、通信情報における通信が実行されたタイミングと、ステートに保持されている該通信情報と同じ区間、同じプロトコルの１つ前の通信が実行されたタイミングとの差を計算し、該差に読み取ったモデルを適用することにより、特異度を算出する。
【００８６】
種類が「通信量」である場合に、クエリ実行部１０４は、受信した通信情報に含まれる送信ホスト情報と、受信ホスト情報と、プロトコルとに関連付けされたモデルを通信データベース５０３から読み取る。次に、クエリ実行部１０４は、通信情報と、ステートに保持されている該通信情報と同じ区間、同じプロトコルの、クエリにおいて指定されているウィンドウタイム内に含まれる通信の合計通信量を計算し、該通信量に読み取ったモデルを適用することにより、特異度を算出する。
【００８７】
クエリ実行部１０４は、記憶しているクエリの中から通信情報にマッチするクエリを検索する（ステップＳ４０６）。この場合に、クエリ実行部１０４は、前述した得られた特異度を用いて評価し、得られた特異度が閾値を超えていた場合に適合すると推定する。適合するクエリが存在する場合に（ステップＳ４０７にてＹＥＳと判定）、クエリ実行部１０４は、クエリＩＦを介して適合したクエリをオペレータ１００６に通知する（ステップＳ４０８）。また、クエリ実行部１０４は、過去の通信情報を必要とする種類（「通信頻度」、「通信量」等）のモデルに備え、通信情報をステートに保持する（ステップＳ４０９）。
【００８８】
次に、第１の実施形態に係るイベント推定装置１０１に関する効果について説明する。
【００８９】
イベント推定装置１０１によれば、通信が特異であるか否かを高精度に推定することができる。
【００９０】
これは、モデル作成部１０２が、特異度を算出する適切なモデルを算出するからである。
【００９１】
特許文献１に開示された特異検出装置は、既に発生したイベントの履歴に基づき、該履歴に格納されたイベントに関する百分位数を算出する。次に、該特異検出装置は、算出した百分位数に基づき、特異なイベントを発見する。たとえば、既に発生したイベントの個数が少ない場合に、履歴は、必ずしも、全ての種類のイベントを格納しているとは限らない。したがって、該特異検出装置は、必ずしも、特異なイベントを発見するとは限らない。
【００９２】
これに対して、モデル作成部１０２は、上述した処理を実行することにより、適切なモデルを作成する。モデル作成部１０２は、通信頻度が少ない場合に特異度が高く、通信頻度が高い場合に特異度が低いモデルを作成する。推定部１０３は、該モデルに従い、通信が特異であるか否かを判定する。したがって、イベント推定装置１０１によれば、通信が特異であるか否かを高精度に推定することができる。
【００９３】
さらに、たとえば、ある頻度が０の区間がある場合であっても、モデル作成部１０２は、たとえば、各区間の頻度に小さな値（たとえば、１）を加えることにより、該通信に関する特異度を適切に算出可能なモデルを作成する。したがって、イベント推定装置１０１は、適切なモデルに基づき、通信が特異であるか否かを正確に推定する。
【００９４】
種類が「新規性」である場合には、本実施形態に係るイベント推定装置１０１によれば、通信が特異であるか否かを高精度に推定することができる。
【００９５】
この理由は、異なるタイミングにおいて実行される通信が特異である可能性が高いからである。
【００９６】
すなわち、頻度と特異度との関係は、頻度が小さい通信ほど特異度が高く、頻度が高い通信であるほど特異度が低くなる。よって、通信が最後に実行されたタイミングが古いほど、特異である可能性は高く、新しいほど特異である可能性は低い。
【００９７】
種類が「時間帯」である場合には、本実施形態に係るイベント推定装置１０１によれば、通信が特異であるか否かを高精度に推定することができる。
【００９８】
頻度と特異度との関係は、類似の通信イベント（通信）が滅多に起きない時間帯に実行された通信に関して、特異度が高く、頻繁に類似（または、同一）の通信が起きる時間帯に実行された通信に関して、特異度が低くなる。したがって、本実施形態に係るイベント推定装置１０１によれば、頻度の低い時間帯は特異度が高く、頻度の高い時間帯は特異度が低くなるようにモデルを生成することにより、適切なモデルとなり、正確に通信の特異性を判定することができる。
【００９９】
種類が「通信頻度」である場合には、本実施形態に係るイベント推定装置１０１によれば、通信が特異であるか否かを高精度に推定することができる。
【０１００】
通常の間隔と異なる間隔で通信が実行されることは、特異な事象が起きているということを表す。イベント推定装置１０１は、頻度として通信が実行されるタイミングから、次の通信が実行されるまでの間隔を採用し、該間隔の頻度が低い場合は特異度が高く、該間隔の頻度が高い場合は特異度が低くなるようにモデルを生成する。したがって、本実施形態に係るイベント推定装置１０１によれば、適切なモデルを生成することができる。
【０１０１】
種類が「通信量」である場合には、本実施形態に係るイベント推定装置１０１によれば、通信が特異であるか否かを高精度に推定することができる。
【０１０２】
通常とは異なる情報量が通信されているということは特異な事象が起きているということを表す。イベント推定装置１０１は、頻度として一定時間の通信量を採用し、該通信量の頻度が低い場合は特異度が高く、該通信量の頻度が高い場合は特異度が低くなるようにモデルを生成する。したがって、本実施形態に係るイベント推定装置１０１によれば、適切なモデルとなる。
【０１０３】
したがって、本実施形態に係るイベント推定装置１０１によれば、通信が特異であるか否かを高精度に推定することができる。
【０１０４】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第２の実施形態について説明する。
【０１０５】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【０１０６】
図１６と図１７とを参照しながら、第２の実施形態に係るイベント推定装置２０１が有する構成と、イベント推定装置２０１が行う処理とについて説明する。図１６は、本発明の第２の実施形態に係るイベント推定装置２０１が有する構成を示すブロック図である。図１７は、第２の実施形態に係るイベント推定装置２０１における処理の流れを示すフローチャートである。
【０１０７】
第２の実施形態に係るイベント推定装置２０１は、通信抽出部２０２と、モデル作成部１０２と、推定部１０３とを有する。
【０１０８】
通信抽出部２０２は、たとえば、通信データベース５０３におけるグラフ情報が更新されるのに応じて、該更新されたグラフ情報に含まれる通信に、類似する度合を表す類似度が高い通信を通信データベース５０３から読み取る（ステップＳ５０１）。説明の便宜上、読み取った通信を「第１通信」と表す。ここで、類似度が高いとは、ある２つの通信が類似すること、または、同じであることを表す。
【０１０９】
たとえば、通信抽出部２０２は、グラフ情報における枝に、通信に関する様々な情報が関連付けされている場合に、該情報に基づき類似度を算出してもよい。たとえば、該情報が、記号あるいは数値を用いて表現されている場合には、該情報の距離を算出し、該距離を類似度とすることができる。
【０１１０】
通信抽出部２０２は、算出した類似度が所定の値を超える場合に、通信が、グラフ情報において入力された情報に類似する（または、同じである）と推定する。また、通信抽出部２０２は、算出した類似度が所定の値を超えない場合に、通信が、グラフ情報において入力された情報に類似しない（または、同じでない）と推定する。
【０１１１】
通信抽出部２０２は、上述した処理を実行することにより、類似度が高い通信を選ぶ（ステップＳ５０１）。
【０１１２】
あるいは、通信抽出部２０２は、情報を表す記号、または、数値に基づき、クラスタリングアルゴリズムを適用することにより、類似する（または、同じ）情報を選んでもよい。
【０１１３】
モデル作成部１０２は、通信抽出部２０２が選んだ通信に関して、上述したようなヒストグラムを作成することにより、該通信に関するモデルを作成する（ステップＳ１０１）。
【０１１４】
次に、推定部１０３は、作成されたモデルを適用することにより、特異度を算出する（ステップＳ１０２）。推定部１０３は、算出した特異度が基準を満たすか否かに応じて、通信が特異であるか否かを判定する（ステップＳ１０３乃至ステップＳ１０５）。
【０１１５】
次に、第２の実施形態に係るイベント推定装置２０１に関する効果について説明する。
【０１１６】
本実施形態に係るイベント推定装置２０１によれば、通信が特異であるか否かを、さらに高精度に推定することができる。
【０１１７】
この理由は、理由１及び理由２である。すなわち、
（理由１）第２の実施形態に係るイベント推定装置２０１が有する構成は、第１の実施形態に係るイベント推定装置１０１が有する構成を含むからである、
（理由２）通信抽出部２０２が類似性の高い通信を選び出すことにより、モデル作成部１０２は、適切なモデルを作成することができるからである。
【０１１８】
（ハードウェア構成例）
上述した本発明の各実施形態におけるイベント推定装置を、１つの計算処理装置（情報処理装置、コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。但し、係るイベント推定装置は、物理的または機能的に少なくとも２つの計算処理装置を用いて実現してもよい。また、係るイベント推定装置は、専用の装置として実現してもよい。
【０１１９】
図１８は、第１の実施形態または第２の実施形態に係るイベント推定装置を実現可能な計算処理装置のハードウェア構成例を概略的に示す図である。計算処理装置２０は、中央処理演算装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、以降「ＣＰＵ」と表す）２１、メモリ２２、ディスク２３、及び、不揮発性記録媒体２４を有する。計算処理装置２０は、さらに、入力装置２５、出力装置２６、通信インターフェース（以降、「通信ＩＦ」と表す。）２７、及び、ディスプレー２８を有する。計算処理装置２０は、通信ＩＦ２７を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
【０１２０】
不揮発性記録媒体２４は、コンピュータが読み取り可能な、たとえば、コンパクトディスク（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、デジタルバーサタイルディスク（Ｄｉｇｉｔａｌ＿Ｖｅｒｓａｔｉｌｅ＿Ｄｉｓｃ）である。また、不揮発性記録媒体２４は、ブルーレイディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ。登録商標）、ユニバーサルシリアルバスメモリ（ＵＳＢメモリ）、ソリッドステートドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等であってもよい。不揮発性記録媒体２４は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体２４は、上述した媒体に限定されない。また、不揮発性記録媒体２４の代わりに、通信ＩＦ２７を介して、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
【０１２１】
すなわち、ＣＰＵ２１は、ディスク２３が記憶するソフトウェア・プログラム（コンピュータ・プログラム：以下、単に「プログラム」と称する）を、実行する際にメモリ２２にコピーし、演算処理を実行する。ＣＰＵ２１は、プログラム実行に必要なデータをメモリ２２から読み取る。表示が必要な場合には、ＣＰＵ２１は、ディスプレー２８に出力結果を表示する。外部からプログラムを入力する場合、ＣＰＵ２１は、入力装置２５からプログラムを読み取る。ＣＰＵ２１は、上述した図１、図１５、または、図１６に示す各部が表す機能（処理）に対応するところのメモリ２２にあるイベント推定プログラム（図２、図３、図７、図１４、または、図１７）を解釈し実行する。ＣＰＵ２１は、上述した本発明の各実施形態において説明した処理を順次行う。
【０１２２】
すなわち、このような場合、本発明は、係るイベント推定プログラムによっても成し得ると捉えることができる。更に、係るイベント推定プログラムが記録されたコンピュータ読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。
【０１２３】
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【０１２４】
１０１    イベント推定装置
１０２    モデル作成部
１０３    推定部
１０４    クエリ実行部
５０３    通信データベース
ａ    節点
ｂ    節点
ｃ    節点
ｄ    節点
２０１    イベント推定装置
２０２    通信抽出部
３０１    種類ＩＦ
３０２    閾値ＩＦ
３０３    オプションＩＦ
３０４    送信ホストＩＦ
３０５    受信ホストＩＦ
３０６    プロトコルＩＦ
２０    計算処理装置
２１    ＣＰＵ
２２    メモリ
２３    ディスク
２４    不揮発性記録媒体
２５    入力装置
２６    出力装置
２７    通信ＩＦ
２８    ディスプレー
１００１ａ    ホスト
１００２ａ    エージェント
１００１ｂ    ホスト
１００２ｂ    エージェント
１００１ｃ    ホスト
１００２ｃ    エージェント
１００１ｄ    ホスト
１００２ｄ    エージェント
１００３    コンバータ
１００４    通信データベース
１００５    インターフェース
１００６    オペレータ
【図１】
0005907225.tif 000002
【図２】
0005907225.tif 000003
【図３】
0005907225.tif 000004
【図４】
0005907225.tif 000005
【図５】
0005907225.tif 000006
【図６】
0005907225.tif 000007
【図７】
0005907225.tif 000008
【図８】
0005907225.tif 000009
【図９】
0005907225.tif 000010
【図１０】
0005907225.tif 000011
【図１１】
0005907225.tif 000012
【図１２】
0005907225.tif 000013
【図１３】
0005907225.tif 000014
【図１４】
0005907225.tif 000015
【図１５】
0005907225.tif 000016
【図１６】
0005907225.tif 000017
【図１７】
0005907225.tif 000018
【図１８】
0005907225.tif 000019