【実施例1】
【0010】
実施例1におけるモニタリングシステムの構成例について説明する。
【0011】
図1は、本発明の実施例1におけるモニタリングシステムの構成例を示す説明図である。
図2は、本発明の実施例1におけるモニタリングシステムの機能構成を示す説明図である。
【0012】
実施例1におけるモニタリングシステムは、複数の外部システム100、データ管理サーバ200、ユーザ管理サーバ300、及び検知サーバ400から構成される。複数の外部システム100、データ管理サーバ200、ユーザ管理サーバ300、及び検知サーバ400は、ネットワーク150を介して互いに通信可能なように接続される。
【0013】
以下の説明では、データ管理サーバ200、ユーザ管理サーバ300、及び検知サーバ400を区別しない場合、サーバとも記載する。
【0014】
ネットワーク150は、LAN(Local Area Network)等の利用者の組織が管理する通信網である。なお、本発明は、ネットワーク150の種別に限定されず、ネットワーク150は、インターネット等の公衆通信網、WAN(Wide Area Network)又はVPN(Virtual Private Network)等であってもよい。また、複数種類の通信網が混在したネットワークであってもよい。
【0015】
外部システム100は、監視対象のシステムであって、計算機及びネットワーク装置等から構成される計算機システムである。外部システム100では、所定の業務が実行される。なお、本発明では、外部システム100が実行する業務に限定されない。
【0016】
外部システム100は、制御部102を備える。制御部102は、データ管理サーバ200の要求に応じて、ログデータ、取引データ等のモニタリング対象のデータを送信する。以下の説明では、モニタリング対象のデータをモニタリングデータとも記載する。
【0017】
なお、制御部102は、逐次又は周期的に、データ管理サーバ200にデータを送信する。周期的にデータが送信される場合、制御部102は、一定量のデータを蓄積し、蓄積されたデータをデータ管理サーバ200に送信する。
【0018】
なお、制御部102は、所定のデータ形式に変換し、変換されたデータをデータ管理サーバ200に送信してもよい。
【0019】
なお、制御部102が送信するデータには、一つ以上のユーザ属性が含まれるものとする。ユーザ属性としては、ユーザ名、組織名、業種、及び地域等が考えられる。
【0020】
データ管理サーバ200は、外部システム100から受信したモニタリングデータを管理し、また、ユーザ管理サーバ300の要求に応じて、所定のモニタリングデータをユーザ管理サーバ300に送信する。
【0021】
データ管理サーバ200は、データ収集部202を備え、また、収集設定情報204及び収集データ206を管理する。
【0022】
データ収集部202は、外部システム100から受信したモニタリングデータを収集データ206として格納する。なお、データ収集部202は、外部システム100から受信したモニタリングデータを所定のデータ形式で管理する。
【0023】
また、データ収集部202は、ユーザ管理サーバ300の要求に応じて、収集データ206からモニタリングデータを読み出し、読み出されたモニタリングデータをユーザ管理サーバ300に送信する。
【0024】
収集データ206は、外部システム100から受信したモニタリングデータである。収集設定情報204は、ユーザ管理サーバ300に送信するモニタリングデータを特定するための情報である。収集設定情報204の詳細については、
図5を用いて後述する。
【0025】
なお、収集データ206はデータベースを用いて管理されてもよい。
【0026】
ユーザ管理サーバ300は、データ管理サーバ200からモニタリングデータを取得し、取得されたモニタリングデータを所定のユーザ属性毎に分類する。また、ユーザ管理サーバ300は、所定のユーザ属性毎に分類された複数のデータを検知サーバ400に送信する。以下の説明では、所定のユーザ属性毎に分類されたデータを属性別データとも記載する。
【0027】
ユーザ管理サーバ300は、属性別データ抽出部302を備え、また、ユーザ属性管理情報304を保持する。
【0028】
属性別データ抽出部302は、データ管理サーバ200から取得されたモニタリングデータをユーザ属性に従って複数の属性別データに分類し、また、複数の属性別データを検知サーバ400に送信する。本実施例では、属性別データ抽出部302は、属性別データを時系列順に並びかえ、時刻情報(例えば、タイムスタンプ)が古いデータから順に、当該属性別データを検知サーバ400に送信する。
【0029】
ユーザ属性管理情報304は、受信したモニタリングデータから属性別データを生成するための情報である。本実施例では、属性別データ抽出部302は、ユーザ属性管理情報304に基づいて、データ管理サーバ200から所定のモニタリングデータを取得する。なお、ユーザ属性管理情報304の詳細については、
図6を用いて後述する。
【0030】
検知サーバ400は、ユーザ管理サーバ300から受信した属性別データに基づいて特定のイベントの発生の予兆を検知する。
【0031】
検知サーバ400は、検知部402を備え、また、検知モデル情報404、検知モデル設定情報405、検知パターン情報406、及び検知状態情報408を保持する。
【0032】
検知部402は、ユーザ管理サーバ300から受信した属性別データを解析し、解析結果に基づいて、特定のイベントの発生の予兆を検知する。本実施例では、検知部402は、検知モデル情報404に基づいて、特定のイベントが発生する可能性があるか否かを判定する。ここで、検知モデル情報404について説明する。
【0033】
図3は、本発明の実施例1における検知モデル情報404の一例を示す説明図である。
【0034】
検知モデル情報404は、複数の検知モデルの情報を格納する。
図3に示す例では、検知モデル情報404には、検知モデル1(501)、検知モデル2(502)、及び検知モデル3(503)の三つの検知モデルの情報が含まれる。
【0035】
検知モデルとは、特定のイベントの発生に関連する検知パターンの組合せを示すモデルである。ここで、検知パターンは、検知モデルを構成する事象を示す。例えば、「ログイン回数の増加率が所定の比率以上」、「振り込みによる入金回数が所定の回数以上」となる事象等が考えられる。また、検知パターンの組合せとは、検知パターンの種別及び時系列の組合せを示す。
【0036】
なお、検知パターンの具体的な内容は、後述する検知パターン情報406に格納される。
【0037】
検知モデル1(501)は、検知パターン「A」が発生後、検知パターン「B」が発生した場合に異常発生の可能性があることを示すモデルである。検知モデル2(502)は、検知パターン「B」、「C」及び「D」が同時に発生した場合に異常発生の可能性があることを示すモデルである。検知モデル3(503)は、検知パターン「B」の発生後、検知パターン「A1」又は「A2」のいずれかが発生した場合に異常発生の可能性があることを示すモデルである。
【0038】
検知モデル設定情報405は、属性別データ毎に適用される検知モデルを示す情報である。検知モデル設定情報405の詳細については、
図7を用いて後述する。
【0039】
検知パターン情報406は、検知パターンの具体的な内容を示す情報である。具体的には、検知パターン情報406には、検知パターンの識別子と、検知パターンの内容とが対応づけられた情報が格納される。例えば、検知パターンの識別子が「A」の検知パターンは「ログイン回数の増加率が所定の比率以上」となる事象であることを示す情報が格納される。
【0040】
検知状態情報408は、データの解析状況を示す情報である。検知状態情報408の詳細については、
図8を用いて後述する。
【0041】
図4は、本発明の実施例1における検知サーバ400のハードウェア構成を示すブロック図である。
【0042】
検知サーバ400は、演算装置601、主記憶装置602、副記憶装置603、通信装置604、入力装置605、及び出力装置606を備える。演算装置601、主記憶装置602、副記憶装置603、通信装置604、入力装置605、及び出力装置606は、バス607を介して互いに接続される。
【0043】
演算装置601は、演算処理を実行する装置であり、例えば、CPU(Central Processing Unit)等が考えられる。演算装置601は、主記憶装置602に格納されるプログラム等を実行することによって、検知部402等の検知サーバ400が有する機能を実現することができる。
【0044】
主記憶装置602は、演算装置601によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する装置であり、例えば、RAM(Random Access Memory)等が考えられる。主記憶装置602は、また、演算処理に必要なワークエリアを提供する。
【0045】
副記憶装置603は、プログラム及び情報を格納する装置であり、例えば、HDD(Hard Disk Drive)及びフラッシュメモリ等の不揮発性記憶装置が考えられる。
【0046】
主記憶装置602に格納されるプログラム及び情報は、副記憶装置603に格納されていてもよい。この場合、演算装置601が、副記憶装置603からプログラム及び情報を読み出し、読み出されたプログラム及び情報を主記憶装置602上に展開する。さらに、演算装置601は、主記憶装置602に展開されたプログラム及び情報を用いて所定の演算処理を実行する。
【0047】
通信装置604は、外部の装置と通信するための装置であり、例えば、アンテナを介した無線通信を行うための無線通信装置、又は、ネットワークケーブルを介した有線通信を行うための有線通信装置である。
【0048】
入力装置605は、検知サーバ400に各種情報を入力するための装置であり、例えば、キーボード、マウス、タッチペン、及びポインティングデバイス等が考えられる。
【0049】
出力装置606は、検知サーバ400の利用者に各種情報を出力するための装置であり、例えば、ディスプレイ等が考えられる。
【0050】
なお、外部システム100を構成する計算機、データ管理サーバ200、及びユーザ管理サーバ300も同様のハードウェアを備える。なお、外部システム100を構成する計算機は、入力装置605及び出力装置606を備えていなくともよい。
【0051】
なお、外部システム100を構成する計算機、及び各サーバの主記憶装置602には、以下のようなプログラム及び情報が格納される。
【0052】
外部システム100を構成する計算機の主記憶装置602には、制御部102を実現するためのプログラムが格納される。データ管理サーバ200の主記憶装置602には、データ収集部202を実現するためのプログラム、収集設定情報204、及び収集データ206が格納される。ユーザ管理サーバ300の主記憶装置602には、属性別データ抽出部302、及びユーザ属性管理情報304が格納される。検知サーバ400の主記憶装置602には、検知部402を実現するためのプログラム、検知モデル情報404、検知モデル設定情報405、検知パターン情報406、及び検知状態情報408が格納される。
【0053】
次に、
図5から
図8を用いて、各サーバが保持する情報の詳細について説明する。
【0054】
図5は、本発明の実施例1のデータ管理サーバ200が保持する収集設定情報204の一例を示す説明図である。
【0055】
収集設定情報204は、システムID701、システム名702、対象データ703、最終取得日時704、取得間隔705、及びアドレス706を含む。
【0056】
システムID701は、外部システム100を一意に識別するための識別子を格納する。システム名702は、外部システム100が実行する業務に関連するシステム名を格納する。対象データ703は、外部システム100から取得するモニタリングデータの種別を示す情報を格納する。
【0057】
最終取得日時704は、外部システム100から取得されたモニタリングデータの日時のうち、最新の日時を格納する。取得間隔705は、外部システム100からモニタリングデータを取得する時間間隔を格納する。なお、取得間隔705が空欄の場合、取得間隔705が設定されていないことを示す。
【0058】
アドレス706は、対象データの送信要求を送信する制御部102のネットワークアドレスを格納する。
【0059】
図6は、本発明の実施例1のユーザ管理サーバ300が保持するユーザ属性管理情報304の一例を示す説明図である。
【0060】
ユーザ属性管理情報304は、システムID801、対象データ802、ユーザ属性803、及びデータ期間804を含む。システムID801及び対象データ802は、システムID701及び対象データ703と同一のものである。
【0061】
ユーザ属性803は、モニタリングデータを属性別データに分類する場合に用いられるユーザ属性を格納する。データ期間804は、検知サーバ400に送信する属性別データの時間幅を格納する。
【0062】
なお、ユーザ属性803が空欄の場合、個別のユーザ毎にモニタリングデータが分類されることを示す。例えば、ユーザID毎にモニタリングデータが分類される。
【0063】
図7は、本発明の実施例1の検知サーバ400が保持する検知モデル設定情報405の一例を示す説明図である。
【0064】
検知モデル設定情報405は、モデルID901及びユーザ属性902を含む。モデルID901は、検知モデルを一意に識別するための識別子を格納する。ユーザ属性902は、ユーザ属性803と同一のものである。
【0065】
なお、ユーザ属性902は、どのユーザ属性に基づいて分類された属性別データであるかを示す情報である。すなわち、検知モデルID901に対応する検知モデルが適用される属性別データを特定するための情報として用いられる。
【0066】
なお、ユーザ属性902が空欄の場合、個別のユーザ毎に分類された属性別データに適用される検知モデルであることを示す。
【0067】
図8は、本発明の実施例1の検知サーバ400が保持する検知状態情報408の一例を示す説明図である。
【0068】
検知状態情報408は、対象ユーザ属性1001、モデルID1002、検知パターン1003、及び検知日時1004を含む。
【0069】
対象ユーザ属性1001は、検知処理の対象となる属性別データを識別するための識別子を格納する。モデルID1002は、属性別データに適用される検知モデルを一意に識別するための識別子を格納する。なお、モデルID1002に格納される情報は、モデルID901と同一の情報である。
【0070】
検知パターン1003は、検知対象の検知パターンの識別子を格納する。検知日時1004は、検知パターン1003に設定された検知パターンと一致する事象が検知された日時を格納する。
【0071】
後述するように、検知サーバ400は、データの解析結果に基づいて、検知パターン1003に設定された検知パターンと一致する事象が検知されたか否かを判定する。
【0072】
検知状態情報408は、検知サーバ400が後述する検知処理の実行時に生成される情報である。例えば、
図8の1行目のエントリは、「ユーザA」のデータに対して、「検知モデル1」に一致するか否かが判定されていることを示す。また、検知サーバ400は、次に検知パターン「B」が検知されるか否かを判定することが分かる。
【0073】
以下、モニタリングシステムにおける処理の詳細について図を説明する。
【0074】
図9は、本発明の実施例1のデータ管理サーバ200のデータ収集部202が実行するデータ収集処理の一例を説明するフローチャートである。
【0075】
データ収集部202は、周期的に処理を実行するものとする。なお、本発明は、データ収集部202の処理開始のタイミングに限定されない。例えば、データ管理サーバ200の利用者等から指示を受け付けた場合、又は、ユーザ管理サーバ300から収集データの送信要求を受信した場合に、処理が開始されてもよい。
【0076】
データ収集部202は、外部システム100から取得する対象データを特定し、モニタリングデータの送信要求を外部システム100に送信する(ステップS101)。具体的には以下のような処理が実行される。
【0077】
データ収集部202は、収集設定情報204を参照して、上のエントリから順に処理を実行する。まず、データ収集部202は、選択されたエントリのシステムID701を参照して、データを取得する外部システム100を特定する。
【0078】
データ収集部202は、選択されたエントリのシステム名702及び対象データ703に基づいて、特定された外部システム100から取得するモニタリングデータを特定する。例えば、インターネットバンキングにおける操作履歴データ、又は勘定系システムにおける取引データ等がモニタリングデータとして特定される。
【0079】
データ収集部202は、選択されたエントリの取得間隔705に値が格納されているか否かを判定する。
【0080】
選択されたエントリの取得間隔705に値が格納されていない場合、データ収集部202は、特定された外部システム100にモニタリングデータの送信要求を送信する。具体的には、データ収集部202は、アドレス706に格納されたネットワークアドレス宛に、モニタリングデータの送信要求に対応するパケットを送信する。
【0081】
選択されたエントリの取得間隔705に値が格納されている場合、データ収集部202は、現在の日時と選択されたエントリの最終取得日時704とを比較し、取得間隔705に格納された値だけ時間が経過しているか否かを判定する。例えば、取得間隔705が「1時間」である場合、データ収集部202は、現在の日時が最終取得日時704から1時間以上経過しているか否かを判定する。
【0082】
取得間隔705に格納された値だけ時間が経過していないと判定された場合、データ収集部202は、取得間隔705に格納された値だけ時間が経過するまで待ち続ける。なお、データ収集部202は、時間の経過を待たずに当該エントリについての処理を終了してもよい。
【0083】
取得間隔705に格納された値だけ時間が経過していると判定された場合、データ収集部202は、特定された外部システム100にモニタリングデータの送信要求を送信する。具体的には、データ収集部202は、アドレス706に格納されたネットワークアドレス宛に、モニタリングデータの送信要求に対応するパケットを送信する。
【0084】
データ収集部202は、収集設定情報204に含まれる全てのエントリについて前述した処理を繰り返し実行する。なお、データ収集部202は、複数のエントリについて同時に前述した処理を実行するようにしてもよい。
【0085】
外部システム100の特性に応じて、特に、他銀行のシステム等では提供されるモニタリングデータの更新頻度が異なる場合がある。そのため、本発明では、取得間隔705を設定することによって、外部システム100に対する不要な送信要求の送信を防ぐことができる。
【0086】
以上がステップS101の処理である。
【0087】
次に、データ収集部202は、外部システム100から受信したモニタリングデータを収集データ206に格納し、また、収集設定情報204を更新する(ステップS102)。
【0088】
具体的には、データ収集部202は、収集設定情報204を参照し、受信したモニタリングデータに対応するエントリを検索する。データ収集部202は、検索されたエントリの最終取得日時704に、外部システム100からモニタリングデータを受信した日時の情報を格納する。
【0089】
なお、受信したデータに対応するエントリを検索する方法としては以下のような方法が考えられる。まず、データ収集部202は、受信したパケット(モニタリングデータ)のヘッダを参照して、当該パケットの送信元のアドレスを取得する。データ収集部202は、収集設定情報204のアドレス706を参照して、取得されたアドレスと一致するエントリを検索する。
【0090】
次に、データ収集部202は、ユーザ管理サーバ300からモニタリングデータの送信要求を受信したか否かを判定する(ステップS103)。後述するように、モニタリングデータの送信要求には、システム名、データの種別、及びタイムスタンプが含まれる。
【0091】
ユーザ管理サーバ300からモニタリングデータの送信要求を受信していないと判定された場合(ステップS103がNO)、データ収集部202は処理を終了する。
【0092】
ユーザ管理サーバ300からモニタリングデータの送信要求を受信していると判定された場合(ステップS103がYES)、データ収集部202は、要求されたモニタリングデータをユーザ管理サーバ300に送信し(ステップS104)、処理を終了する。
【0093】
具体的には、データ収集部202は、モニタリングデータの送信要求に含まれるシステム名、及びデータ種別に基づいて、要求されたモニタリングデータを特定する。さらに、データ収集部202は、モニタリングデータの送信要求に含まれるタイムスタンプに基づいて、特定されたモニタリングデータのうち、更新分のモニタリングデータのみをユーザ管理サーバ300に送信する。
【0094】
なお、外部システム100からモニタリングデータを取得する処理と、ユーザ管理サーバ300にモニタリングデータを送信する処理とは、別々の処理として実行されてもよい。
【0095】
図10は、本発明の実施例1のユーザ管理サーバ300の属性別データ抽出部302が実行する属性別データ抽出処理の一例を説明するフローチャートである。
【0096】
属性別データ抽出部302は、検知サーバ400から属性別データの送信要求を受信した場合に処理を実行するものとする。後述するように、属性別データの送信要求には、システム名、ユーザ属性、及びデータの種別が含まれる。
【0097】
なお、本発明は、属性別データ抽出部302の処理開始のタイミングに限定されない。例えば、ユーザ管理サーバ300の利用者等から指示を受け付けた場合、又は、周期的に、処理が実行されてもよい。
【0098】
属性別データ抽出部302は、データ収集部202にモニタリングデータの送信要求を送信し、モニタリングデータを受信する(ステップS201)。
【0099】
モニタリングデータの送信要求には、システム名、及びデータの種別が含まれる。システム名、及びデータの種別は属性別データの送信要求に含まれるものと同一である。
【0100】
また、モニタリングデータの送信要求には、これまで受信したモニタリングデータの最新のタイムスタンプが含まれる。属性別データ抽出部302は、前回取得したモニタリングデータのタイムスタンプのうち、最新のタイムスタンプを一時的に保持する。これによって、データ管理サーバ200は、収集データ206に格納されるデータのうち、前回までに受信したモニタリングデータ以外のデータ、すなわち、更新分のモニタリングデータを取得できる。
【0101】
本実施例では、属性別データ抽出部302は、受信したモニタリングデータを一時的に保持する。なお、属性別データ抽出部302は、受信したモニタリングデータを一定期間経過した後に破棄してもよいし、副記憶装置603に格納してもよい。
【0102】
次に、属性別データ抽出部302は、ユーザ属性管理情報304に基づいて、受信したモニタリングデータを用いて複数の属性別データを生成する(ステップS202)。具体的には、以下のような処理が実行される。
【0103】
属性別データ抽出部302は、ユーザ属性管理情報304を参照して、属性別データの送信要求に含まれるユーザ属性に対応するエントリを選択する。属性別データ抽出部302は、受信したモニタリングデータから、選択されたエントリのシステムID801、対象データ802、ユーザ属性803、及びデータ期間804に一致するデータを抽出する。
【0104】
このとき、ユーザ属性803が空の場合、属性別データ抽出部302は、受信したモニタリングデータからユーザ毎にデータを抽出する。ユーザ属性803に所定のユーザ属性が格納される場合、属性別データ抽出部302は、受信したモニタリングデータから当該ユーザ属性に対応するデータを抽出する。
【0105】
また、属性別データ抽出部302は、受信したモニタリングデータのうち、タイムスタンプが最新のモニタリングデータからデータ期間804に格納された期間だけ遡った時間間隔のデータを抽出する。
【0106】
さらに、属性別データ抽出部302は、タイムスタンプが古い順に、抽出されたデータを並び替えることによって属性別データを生成する。前述のように、本実施例の属性別データは時系列データとして生成される。
【0107】
本実施例では、ユーザ属性803に特定のユーザ属性が格納される場合、一つの属性別データが生成され、ユーザ属性803が空の場合、複数の属性別データが生成されることとなる。
【0108】
以上が、ステップS202の処理である。
【0109】
次に、属性別データ抽出部302は、検知サーバ400に生成された属性別データを送信し(ステップS203)、処理を終了する。
【0110】
図6に示すユーザ属性管理情報304の場合、ステップS202では、以下のような属性別データが生成される。
【0111】
一番目のエントリが選択された場合、属性別データ抽出部302は、受信したモニタリングデータから、システムIDが「0001」、データの種別が「操作ログ」であるデータを、ユーザ毎に3ヶ月分抽出する。属性別データ抽出部302は、抽出されたユーザ毎のデータを時系列順に並び替えることによって、属性別データを生成する。なお、生成された属性別データにはユーザ属性としてユーザの識別子が含まれる。
【0112】
また、三番目のエントリが選択された場合、属性別データ抽出部302は、システムIDが「0002」、データの種別が「取引データ」、ユーザ属性が「製造業」であるデータを1ヶ月分抽出する。属性別データ抽出部302は、抽出されたデータを時系列順に並び替えることによって、ユーザ属性が「製造業」である属性別データを生成する。
【0113】
図11A及び
図11Bは、本発明の実施例1の検知サーバ400の検知部402が実行する検知処理の一例を説明するフローチャートである。
【0114】
まず、検知部402は、検知モデル情報404及び検知モデル設定情報405を読み出し(ステップS301)、また、検知状態情報408を読み出す(ステップS302)。
【0115】
検知部402は、読み出された検知モデル設定情報405に基づいて検知モデルを一つ選択する(ステップS303)。ここでは、検知モデル設定情報405の上のエントリから順に選択されるものとする。
【0116】
検知部402は、検知状態情報408に、選択された検知モデルに対応するエントリが存在するか否かを判定する(ステップS304)。
【0117】
具体的には、検知部402は、モデルID1002が、ステップS303において選択された検知モデルの識別子と一致するエントリを検索する。
【0118】
検知状態情報408に、選択された検知モデルに対応するエントリが存在すると判定された場合(ステップS304がYES)、検知部402は、検知状態情報408に基づいて、検知対象の検知パターンを設定し(ステップS305)、ステップS307に進む。
【0119】
具体的には、検知部402は、検知状態情報408の対応するエントリの検知パターン1003に格納される検知パターンを、検知対象の検知パターンとして設定する。
【0120】
検知状態情報408に、選択された検知モデルに対応するエントリが存在しないと判定された場合(ステップS304がNO)、検知部402は、検知モデル情報404に基づいて、検知対象の検知パターンを設定し(ステップS306)、ステップS307に進む。
【0121】
具体的には、検知部402は、選択された検知モデルの識別子に基づいて、検知モデル情報404を参照し、最初の検知パターンを特定する。検知部402は、特定された最初の検知パターンを、検知対象の検知パターンとして設定する。
【0122】
次に、検知部402は、ユーザ管理サーバ300に属性別データの送信要求を送信する(ステップS307)。当該送信要求には、システム名、ユーザ属性、及びデータの種別が含まれる。
【0123】
ここで、システム名及びデータの種別は、設定された検知パターンに基づいて決定される。例えば、設定された検知パターンがインターネットバンキングの操作ログに関連する内容である場合、検知部402は、システム名を「インターネットバンキングシステム」と、データ種別を「操作ログ」と決定する。
【0124】
本実施例では、検知部402は、受信した属性別データを一時的に保持する。なお、検知部402は、受信した属性別データを一定期間経過した後に破棄してもよいし、副記憶装置603に格納してもよい。
【0125】
次に、検知部402は、属性別データを取得した後、一つの属性別データを選択し、選択された属性別データに対してステップS308からステップS313の処理を実行する。
【0126】
このとき、検知部402は、複数の属性別データを受信した場合、取得された全ての属性別データに対して、ステップS308からステップS313の処理を繰り返し実行する。例えば、「ユーザA」及び「ユーザB」の属性別データが取得された場合、検知部402は、「ユーザA」の属性別データに対してステップS308からステップS313の処理を実行し、「ユーザB」の属性別データに対してステップS308からステップS313の処理を実行する。
【0127】
検知部402は、ユーザ管理サーバ300から受信した属性別データを用いて、所定の解析処理を実行する(ステップS308)。さらに、検知部402は、解析結果、及び選択された検知モデルに対して設定された検知パターンに基づいて、マッチング処理を実行する(ステップS309)。
【0128】
本実施例では、検知モデル毎に、解析処理の処理内容が予め設定されているものとする。なお、解析処理が必要ない場合には、当該ステップを省略してもよい。
【0129】
検知部402は、マッチング処理の結果に基づいて、設定された検知パターンに一致する事象が発生しているか否かを判定する(ステップS310)。
【0130】
設定された検知パターンに一致する事象が発生していないと判定された場合(ステップS310がNO)、検知部402はステップS314に進む。
【0131】
設定された検知パターンに一致する事象が発生していると判定された場合(ステップS310がYES)、検知部402は、検知状態情報408を更新する(ステップS311)。
【0132】
具体的には、検知部402は、検知モデル情報404に基づいて、検知状態情報408の対応するエントリの検知パターン1003に次の検知対象となる検知パターンの識別子を設定する。
【0133】
例えば、「検知モデル1」が適用される「ユーザA」において検知パターン「A」と一致する事象が発生すると判定された場合、
図8の一番上のエントリのように、検知パターン「B」が設定される。また、「検知モデル3」が適用される「ユーザB」において検知パターン「E」と一致する事象が発生すると判定された場合、
図8の二番上のエントリのように、検知パターン「F1」及び検知パターン「F2」が設定される。
【0134】
なお、特定のイベントが発生の条件である全ての検知パターンが検知されている場合には、次の検知対象は存在しないため検知パターン1003には終了を示す情報が格納される。
【0135】
次に、検知部402は、特定のイベントが発生する可能性があるか否かを判定する(ステップS312)。
【0136】
具体的には、特定された検知モデルについて、特定のイベントが発生条件である検知パターンが全て検知されたか否かを判定する。例えば、
図3に示す検知モデル1の場合、検知パターン「A」及び検知パターン「B」の両方の検知パターンが検知されたか否かが判定される。特定のイベントが発生条件である検知パターンが全て検知された場合、検知部402は、特定のイベントが発生する可能性があると判定する。
【0137】
特定のイベントが発生する可能性がないと判定された場合(ステップS312がNO)、検知部402はステップS314に進む。
【0138】
特定のイベントが発生する可能性があると判定された場合(ステップS312がYES)、検知部402は、特定された検知モデルに対応する異常発生のアラートを外部システム100に対して出力し(ステップS313)、ステップS314に進む。なお、アラートの出力先は外部システム100に限定されず、各サーバ、又はその他の装置に対してアラートが出力されてもよい。
【0139】
検知部402は、検知モデル設定情報405に含まれる全ての検知モデルについて処理が完了したか否かを判定する(ステップS314)。
【0140】
検知モデル設定情報405に含まれる全ての検知モデルについて処理が完了していないと判定された場合(ステップS314がNO)、検知部402はステップS303に戻る。
【0141】
検知モデル設定情報405に含まれる全ての検知モデルについて処理が完了していると判定された場合(ステップS314がYES)、検知部402は処理を終了する。
【0142】
なお、本発明は、外部システム100又は各サーバから送信されるデータの送信タイミングに限定されない。したがって、逐次到来するデータ、すなわち、ストリームデータを処理するシステム(ストリームデータ処理システム)にも適用可能である。
【0143】
ストリームデータ処理システムに本発明を適用する場合、外部システム100は逐次ストリームデータ(モニタリングデータ)をデータ管理サーバ200に送信し、データ管理サーバ200は逐次ストリームデータ(モニタリングデータ)をユーザ管理サーバ300に送信し、またユーザ管理サーバ300は逐次ユーザ属性毎のストリームデータ(属性別データ)を検知サーバ400に送信する。この場合、各サーバは各送信要求を送信する必要はない。
【0144】
ここで、具体例を用いて検知処理について説明する。
【0145】
まず、
図3に示す「検知モデル1」を例に説明する。以下の説明では、「検知モデル1」の検知パターン「A」は「1回のログイン中に残高照会と手続き説明ページ閲覧とを実行」、検知パターン「B」は「1回の取引で100万円以上の入金」であるものとする。
【0146】
また、
図7に示すように、検知モデル1では、ユーザ属性902が設定されていないため、ユーザ毎に分類されたモニタリングデータ、すなわち属性別データに対して検知モデル1に対する検知処理が実行される。そのため、以下の説明では、「ユーザA」、「ユーザB」、及び「ユーザC」の三つの属性別データがユーザ管理サーバ300によって生成されたものとする。
【0147】
ステップS304において、「検知モデル1」に対応するエントリが存在しないと判定された場合、検知部402は、「検知モデル1」の最初の検知パターン「A」を検知対象の検知パターンとして設定する(ステップS305)。
【0148】
ステップS307において、検知パターン「A」はインターネットバンキングの操作に関するパターンであるため、検知部402は、ユーザ管理サーバ300に、ユーザ毎のインターネットバンキングシステムの操作ログデータの送信要求を送信する。
【0149】
ステップS309において、検知部402は、「ユーザA」、「ユーザB」、及び「ユーザC」のそれぞれの操作ログデータの解析結果と、設定された検知パターン「A」とのマッチング処理を実行する。さらに、ステップS310において、検知部402は、検知パターン「A」と一致する事象が発生するか否かを判定する。
【0150】
ここで、「ユーザA」において検知パターン「A」に一致する事象が発生すると判定された場合、検知部402は、
図8の一番目のエントリを追加することによって検知状態情報408を更新する。なお、検知日時1004には、ステップS310の処理が実行された日時が格納される。
【0151】
さらに、検知部402は、追加されたエントリの検知パターン1003に検知パターン「B」を格納する。
【0152】
所定期間が経過した後、検知処理が開始された場合、検知部402は、ステップS305において、検知パターン「B」を検知対象の検知パターンとして設定する。
【0153】
ステップS307において検知部402は、ユーザ管理サーバ300に勘定系システムの取引データの送信要求を送信する。ステップS309において、検知部402は、「ユーザA」について検知パターン「B」に一致する事象が発生するか否かを判定する。
【0154】
「ユーザA」について検知パターン「B」と一致する事象が発生すると判定された場合、検知モデルに含まれる全ての検知パターンが検知されたことになる。したがって、ステップS312において、検知部402は、「ユーザA」について異常が発生する可能性があると判定し、ステップS313において該当する外部システム100に対してアラートを出力する。
【0155】
以上のように、対象となる検知パターンを絞ることによって、マッチング処理に必要なデータの種別、及び取得期間を限定できるため、通信及び処理量を低減することができる。
【0156】
次に、
図3に示す「検知モデル3」を例に説明する。以下の説明では、「検知モデル3」の検知パターン「E」は「残高照会回数が3カ月連続増加」、検知パターン「F1」は「1カ月の入金回数が5回以上」、検知パターン「F2」は「1カ月の入金合計が10万円以上」であるものとする。また、月の区切りは、該当ユーザのローン返済引き落とし日とする。
【0157】
「検知モデル3」では、検知パターン「E」が検知された後、検知パターン「F1」又は検知パターン「F2」が検知された場合、異常が発生する可能性があると判定される検知モデルである。
【0158】
また、
図7に示すように、「検知モデル3」では、ユーザ属性902が設定されていないため、以下の説明では、「ユーザA」、「ユーザB」、及び「ユーザC」の三つの属性別データがユーザ管理サーバ300によって生成されたものとする。
【0159】
ステップS304において、「検知モデル3」に対応するエントリが存在しないと判定された場合、検知部402は、「検知モデル3」の最初の検知パターン「E」を検知対象の検知パターンとして設定する(ステップS305)。
【0160】
ステップS307において、検知パターン「E」はインターネットバンキングの操作に関するパターンであるため、検知部402は、ユーザ管理サーバ300に、ユーザ毎のインターネットバンキングシステムの操作ログデータの送信要求を送信する。
【0161】
ステップS309において、検知部402は、「ユーザA」、「ユーザB」、及び「ユーザC」のそれぞれの操作ログデータの解析結果と、設定された検知パターン「E」とのマッチング処理を実行する。さらに、ステップS310において、検知部402は、検知パターン「E」と一致する事象が発生するか否かを判定する。
【0162】
ここで、「ユーザB」において検知パターン「E」に一致する事象が発生すると判定された場合、検知部402は、
図8の二番目のエントリを追加することによって検知状態情報408を更新する。なお、検知日時1004には、ステップS310の処理が実行された日時が格納される。すなわち、3カ月目の残高参照回数が前月の回数を越えた日時が検知日時1004に格納される。
【0163】
さらに、検知部402は、追加されたエントリの検知パターン1003に検知パターン「F1」及び検知パターン「F2」を格納する。
【0164】
所定期間が経過した後、検知処理が開始された場合、検知部402は、ステップS305において、検知パターン「F1」及び検知パターン「F2」を検知対象の検知パターンとして設定する。
【0165】
ステップS307において検知部402は、ユーザ管理サーバ300に勘定系システムの取引データのうち、「ユーザB」が検知日時1004以降かつ検知日時1004に直近する時間間隔の取引データの送信要求を送信する。ステップ309において、検知部402は、「ユーザB」について検知パターン「F1」又は検知パターン「F2」に一致する事象が発生するか否かを判定する。
【0166】
「ユーザB」について検知パターン「F1」又は検知パターン「F2」の少なくともいずれかと一致する事象が発生すると判定された場合、検知モデルに含まれる全ての検知パターンが検知されたことになる。したがって、ステップS312において、検知部402は、「ユーザB」について異常が発生する可能性があると判定し、ステップS313において該当する外部システム100に対してアラートを出力する。
【0167】
以上のように、対象となる検知パターン及びその特長に基づいて、マッチング処理に必要なデータ種別、及び取得期間を限定できるため、通信及び処理量を低減することができる。
【0168】
以上説明したように、実施例1のモニタリングシステムでは、ユーザ個別の操作履歴データ等のデータをリアルタイムにモニタリングすることができ、モニタリング結果に基づいて、ユーザ毎に異常発生の予兆等を検知することができる。
【0169】
また、ユーザ属性、すなわち、ユーザ毎に検知モデルを設定することによって、ユーザ毎に適したイベント発生の予兆を検知することができる。
【実施例2】
【0170】
実施例1では、予め検知モデルが登録されていたが、実施例2では、モニタリングの履歴等から検知モデルを抽出する点が異なる。
【0171】
以下、実施例1との差異を中心に説明する。なお、実施例1の構成と同一の符号が付与された構成は、同一の機能又は構成であることを示す。
【0172】
図12は、本発明の実施例2のモニタリングシステムの機能構成を示す説明図である。
【0173】
外部システム100及びデータ管理サーバ200は、実施例1と同一であるため説明を省略する。
【0174】
実施例2のユーザ管理サーバ300は、データ管理サーバ200から受信したデータからユーザ属性毎のイベントに関連するデータを生成し、生成されたユーザ属性毎のイベントに関連するデータを検知サーバ400に送信する。実施例2のユーザ管理サーバ300は、ユーザ属性・イベント別データ抽出部1102を備え、及びユーザ属性・イベント管理情報1104を保持する。
【0175】
以下の説明では、ユーザ属性毎のイベントに関連するデータを、ユーザ属性・イベント別データとも記載する。
【0176】
ユーザ属性・イベント別データ抽出部1102は、ユーザ属性・イベント別データを抽出する。ユーザ属性・イベント管理情報1104は、ユーザ属性毎の過去に発生したイベントに関する情報を格納する。ユーザ属性・イベント管理情報1104の詳細については、
図13を用いて後述する。
【0177】
実施例2の検知サーバ400は、ユーザ管理サーバ300から受信したユーザ属性・イベント別データに基づいて、検知モデルを生成する。実施例2の検知サーバ400は、検知モデル抽出部1202を備え、また、検知モデル情報404、検知パターン情報406、及び抽出状態情報1204を保持する。
【0178】
検知モデル抽出部1202は、ユーザ属性・イベント別データを用いて検知モデルを生成する。抽出状態情報1204は、生成中の検知モデルに関する情報を格納する。抽出状態情報1204の詳細については、
図14を用いて後述する。検知モデル情報404及び検知パターン情報406は、実施例1と同一であるため説明を省略する。
【0179】
なお、各サーバのハードウェア構成は実施例1と同一であるため説明を省略する。また、データ管理サーバ200が実行する処理は実施例1と同一であるため説明を省略する。
【0180】
図13は、本発明の実施例2のユーザ管理サーバ300が保持するユーザ属性・イベント管理情報1104の一例を示す説明図である。
【0181】
ユーザ属性・イベント管理情報1104は、対象ユーザ属性1301、イベント1302、及び発生時期1303を含む。
【0182】
対象ユーザ属性1301は、対象のイベントに関連するユーザ属性を格納する。イベント1302は、発生したイベントを特定するための情報を格納する。発生時期1303は、対象のイベントが発生した時期を格納する。
【0183】
図14は、本発明の実施例2の検知サーバ400が保持する抽出状態情報1204の一例を示す説明図である。
【0184】
抽出状態情報1204は、対象ユーザ属性1401、イベント1402、及び抽出パターン1403を含む。
【0185】
対象ユーザ属性1401及びイベント1402は、対象ユーザ属性1301及びイベント1302と同一のものである。抽出パターン1403は、対象のイベントに関連する検知パターンの情報を格納する。なお、抽出パターン1403には、検知パターンの発生順が把握可能な形式でデータが格納される。
【0186】
以下、実施例2におけるユーザ管理サーバ300及び検知サーバ400が実行する処理の詳細について説明する。
【0187】
図15は、本発明の実施例2のユーザ管理サーバ300のユーザ属性・イベント別データ抽出部1102が実行する時系列データ抽出処理を説明するフローチャートである。
【0188】
ユーザ属性・イベント別データ抽出部1102は、ユーザ属性・イベント管理情報1104を読み出し(ステップS401)、処理対象のユーザ属性を選択する(ステップS402)。
【0189】
本実施例では、ユーザ属性・イベント別データ抽出部1102は、ユーザ属性・イベント管理情報1104の上のエントリから順に選択するものとする。
【0190】
ユーザ属性・イベント別データ抽出部1102は、選択されたユーザ属性に対応するエントリに基づいて、データ管理サーバ200にモニタリングデータの送信要求を送信し、所定のモニタリングデータを受信する(ステップS403)。
【0191】
モニタリングデータの送信要求には、ユーザ属性、及びデータ期間が含まれる。ユーザ属性は、ステップS402において選択されたユーザ属性、すなわち、選択されたエントリの対象ユーザ属性1301に対応する。また、データ期間は、イベント1302及び発生時期1303から決定される。本実施例では、イベント1302毎にデータを取得する期間が予め決定されているものとする。したがって、発生時期1303を起点として、予め設定された期間がデータ期間となる。
【0192】
これによって、データ管理サーバ200は、要求されたモニタリングデータを収集データ206から取得することができる。
【0193】
次に、ユーザ属性・イベント別データ抽出部1102は、受信したモニタリングデータを用いてユーザ属性・イベント別データを生成する(ステップS404)。このとき、ユーザ属性・イベント別データ抽出部1102は、受信したモニタリングデータを時系列順に並び替え、また、ステップ402において選択されたエントリのイベント1302の情報を付加する。
【0194】
ユーザ属性・イベント別データ抽出部1102は、生成されたユーザ属性・イベント別データを検知サーバ400に送信する(ステップS405)。
【0195】
ユーザ属性・イベント別データ抽出部1102は、全てのユーザ属性について処理が完了したか否かを判定する(ステップS406)。
【0196】
全てのユーザ属性について処理が完了していないと判定された場合、ユーザ属性・イベント別データ抽出部1102は、ステップS402に戻る。
【0197】
全てのユーザ属性について処理が完了したと判定された場合、ユーザ属性・イベント別データ抽出部1102は、処理を終了する。
【0198】
図16は、本発明の実施例2の検知サーバ400の検知モデル抽出部1202が実行する検知モデル抽出処理を説明するフローチャートである。
【0199】
検知モデル抽出部1202は、ユーザ管理サーバ300から、ユーザ属性・イベント別データを受信し(ステップS501)、また、抽出状態情報1204を更新する(ステップS502)。さらに、検知モデル抽出部1202は、ユーザ属性に基づいて、処理対象のユーザ属性・イベント別データを選択する(ステップS503)。
【0200】
具体的には、検知モデル抽出部1202は、抽出状態情報1204に、受信したユーザ属性・イベント別データに対応するエントリを追加する。検知モデル抽出部1202は、追加されたエントリの対象ユーザ属性1401に受信した時系列データに含まれるユーザ属性を格納し、イベント1402に受信した時系列データに付加されたイベント1302の情報を格納する。なお、抽出パターン1403は空欄のままである。
【0201】
また、検知モデル抽出部1202は、検知パターン情報406を読み出し、処理対象の検知パターンを選択する(ステップS504)。
【0202】
検知モデル抽出部1202は、選択されたユーザ属性・イベント別データの解析処理を実行する(ステップS505)。
【0203】
具体的には、検知モデル抽出部1202は、選択されたユーザ属性・イベント別データに対して、選択された検知パターンに対応する解析処理を実行する。
【0204】
例えば、選択された検知パターンが「1カ月の入金回数が5回以上」である場合、検知モデル抽出部1202は、選択されたユーザ属性・イベント別データから1ヶ月分のデータを抽出し、さらに、当該抽出されたデータから取引データを抽出する。検知モデル抽出部1202は、抽出された取引データを参照することによって、入金回数が5回以上であるか否かを解析する。
【0205】
次に、検知モデル抽出部1202は、解析結果に基づいて、選択された検知パターンに対応する事象が発生しているか否かを判定する(ステップS506)。
【0206】
選択された検知パターンに対応する事象が発生していないと判定された場合(ステップS506がNO)、検知モデル抽出部1202は、ステップS508に進む。
【0207】
選択された検知パターンに対応する事象が発生していると判定された場合(ステップS506がYES)、検知モデル抽出部1202は、抽出状態情報1204に検知パターンを抽出パターン1403に登録し(ステップS507)、ステップS508に進む。
【0208】
検知モデル抽出部1202は、検知パターン情報406に含まれる全ての検知パターンについて処理が完了したか否かを判定する(ステップS508)。
【0209】
検知パターン情報406に含まれる全ての検知パターンについて処理が完了していないと判定された場合(ステップS508がNO)、検知モデル抽出部1202はステップS504に戻る。
【0210】
検知パターン情報406に含まれる全ての検知パターンについて処理が完了していると判定された場合(ステップS508がYES)、検知モデル抽出部1202は、抽出パターン1403に格納された検知パターンの組合せを、検知モデルとして検知モデル情報404に登録する(ステップS509)。
【0211】
検知モデル抽出部1202は、受信した全ての時系列データについて処理が完了したか否かを判定する(ステップS510)。
【0212】
受信した全ての時系列データについて処理が完了していないと判定された場合(ステップS510がNO)、検知モデル抽出部1202は、ステップS503に戻る。
【0213】
受信した全ての時系列データについて処理が完了していると判定された場合(ステップS510がYES)、検知モデル抽出部1202は、処理を終了する。
【0214】
前述した処理では、ユーザ属性別、かつイベント別に検知モデルが抽出される。検知モデル抽出部1202は、同一のイベント毎に検知モデルもまとめて、多くのユーザ属性に共通する検知モデルを、優先的にモニタリングする検知モデルとしてもよい。
【0215】
実施例2によれば、自動的にユーザ属性毎の検知モデルを生成することができる。これによって、ユーザ属性毎に検知モデルと一致するか否かを判定するため、効率的かつ適切な検知処理が実現できる。また、処理速度の向上を実現することが可能である。