(57)【要約】      （修正有）【課題】監視装置が監視対象のシステムに係る詳細情報を用いることなく、システムにおける不正な操作や異常な操作を検出する。【解決手段】対象装置１００は、操作データ生成部１３０を含む。操作データ生成部１３０は、実行環境で実行された所定のプログラムに係る操作の集合を符号化したデータである操作データを生成し、監視装置２００に送信する。監視装置２００は、操作パターン記憶部２３０、及び、操作データ判定部２２０を含む。操作パターン記憶部２３０は、検出対象の操作の集合に係る操作データである操作パターンを記憶する。操作データ判定部２２０は、対象装置１００から受信した操作データが操作パターンに一致した場合、実行環境において検出対象の操作が実行されたと判定し、当該検出対象の操作の実行を通知する。【選択図】図１
2015132927.tif 000002
【特許請求の範囲】
【請求項１】
実行手段で実行された所定のプログラムに係る操作の集合を符号化したデータである操作データを生成し、第２の装置に送信する、操作データ生成手段
を含む第１の装置と、
検出対象の操作の集合に係る操作データである操作パターンを記憶する操作パターン記憶手段と、
前記第１の装置から受信した前記操作データが前記操作パターンに一致した場合、前記実行手段において前記検出対象の操作が実行されたと判定し、当該検出対象の操作の実行を通知する、操作データ判定手段と、
を含む第２の装置と、
を備える情報処理システム。
【請求項２】
前記操作データは、前記所定のプログラムにおいて呼び出された関数名の集合を表すBloom Filterである、
請求項１に記載の情報処理システム。
【請求項３】
前記操作データ判定手段は、前記操作パターンが表す操作の集合に含まれる全ての操作が、前記操作データが表す操作の集合に含まれる場合、前記検出対象の操作の実行を通知する、
請求項１または２に記載の情報処理システム。
【請求項４】
前記操作データ判定手段は、前記操作パターンが表す操作の集合と前記操作データが表す操作の集合との一致度、及び、前記操作パターンに付与された重要度をもとに、前記操作データのスコアを算出し、当該算出されたスコアをもとに、前記検出対象の操作の実行を通知するかどうかを決定する、
請求項１乃至３のいずれかに記載の情報処理システム。
【請求項５】
前記操作パターン記憶手段は、さらに、前記第１の装置から受信した、指定された期間において生成された前記操作データを、前記操作パターンとして記憶する、
請求項１乃至４のいずれかに記載の情報処理システム。
【請求項６】
実行手段で実行された前記所定のプログラムに係る操作の集合を符号化したデータである操作データを生成し、前記操作データが検出対象の操作の集合に係る操作データである操作パターンに一致した場合、前記実行手段において前記検出対象の操作が実行されたと判定して当該検出対象の操作の実行を通知する監視装置に送信する、操作データ生成手段
を含む情報処理装置。
【請求項７】
実行手段で実行された所定のプログラムに係る操作の集合を符号化したデータである操作データであって、検出対象の操作の集合に係る操作データである操作パターンを記憶する、操作パターン記憶手段と、
前記操作データを生成する情報処理装置から受信した前記操作データが前記操作パターンに一致した場合、前記実行手段において前記検出対象の操作が実行されたと判定し、当該検出対象の操作の実行を通知する、操作データ判定手段と、
を含む監視装置。
【請求項８】
第１の装置において、実行手段で実行された所定のプログラムに係る操作の集合を符号化したデータである操作データを生成し、第２の装置に送信し
前記第２の装置において、検出対象の操作の集合に係る操作データである操作パターンを記憶し、
前記第２の装置において、前記第１の装置から受信した前記操作データが前記操作パターンに一致した場合、前記実行手段において前記検出対象の操作が実行されたと判定し、当該検出対象の操作の実行を通知する、
監視方法。
【請求項９】
コンピュータに、
実行手段で実行された前記所定のプログラムに係る操作の集合を符号化したデータである操作データを生成し、前記操作データが検出対象の操作の集合に係る操作データである操作パターンに一致した場合、前記実行手段において前記検出対象の操作が実行されたと判定して当該検出対象の操作の実行を通知する監視装置に送信する、
処理を実行させるプログラム。
【請求項１０】
コンピュータに、
実行手段で実行された所定のプログラムに係る操作の集合を符号化したデータである操作データであって、検出対象の操作の集合に係る操作データである操作パターンを記憶し、
前記操作データを生成する情報処理装置から受信した前記操作データが前記操作パターンに一致した場合、前記実行手段において前記検出対象の操作が実行されたと判定し、当該検出対象の操作の実行を通知する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象装置の監視を行う情報処理システム、情報処理装置、監視装置、監視方法、及び、プログラムに関する。
【背景技術】
【０００２】
情報システムは、社会インフラや企業活動を支える重要なインフラとなっており、そのリスク管理の重要度が高まっている。このような背景のもと、情報システムに対するシステム監査の重要性が高まっている。システム監査では、情報システムにおけるデータ管理が適切に行われていることの確証として、例えば、情報システムにおける操作情報等の採取、解析が求められることがある。
【０００３】
このような操作情報の採取や解析に係る技術が、例えば、特許文献１や非特許文献１に記載されている。
【０００４】
特許文献１に記載の技術では、監視システムが、複数の監視対象のコンピュータの操作ログをコンピュータ単位に収集し、操作情報の内容をコンピュータ間で比較することによって、他と異なる操作情報を特異な操作情報と判定する。
【０００５】
非特許文献１に記載の技術では、監視対象のサーバ上のカーネルレベルで動作するエージェントが、サーバ上で発生する全ての通信パケットをキャプチャし、スニファに送信する。スニファは、受信したパケットを解析し、情報の解析や集積、アクションを行う。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１０８４６９号公報
【非特許文献】
【０００７】
【非特許文献１】"IBM InfoSphere Guardium Data Security"、International Business Machines Corporation、［online］、［平成25年11月8日検索］、インターネット〈URL：http://www-01.ibm.com/software/data/guardium/〉
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述の特許文献１や非特許文献１に記載された技術では、監視装置が、監視対象のシステムから収集した情報をもとに操作内容を解析し、不正な操作や異常な操作を検出する。この場合、監視装置は、操作内容を解析するために、例えば、監視対象のシステムで動作するアプリケーションの構造やロジック、アプリケーションが処理するデータの種類や構造等、監視対象のシステムに係る詳細情報を知る必要がある。
【０００９】
ところで、監視対象のシステムで動作するアプリケーションと、当該システムの監視サービスとは、異なる組織により提供される可能性がある。例えば、監視対象のシステムがPaaS(Platform as a Service)型のクラウドサービス上で構築される場合、システムで動作するアプリケーションはクラウドサービスの利用者により提供され、当該システムの監視サービスはクラウドサービスの提供者により提供される。
【００１０】
ここで、上述の特許文献１や非特許文献１に記載された技術を用いた場合、クラウドサービスの利用者は、秘密情報を含んだ上述のシステムに係る詳細情報を、クラウドサービス提供者に提示する必要がある。さらに、クラウドサービスの提供者は、クラウドサービスの利用者の秘密情報が第三者に漏洩するリスクを抱える。
【００１１】
本発明の目的は、上述の課題を解決し、監視装置が監視対象のシステムに係る詳細情報を用いることなく、システムにおける不正な操作や異常な操作を検出可能な情報処理システム、情報処理装置、監視装置、監視方法、及び、プログラムを提供することである。
【課題を解決するための手段】
【００１２】
本発明の情報処理システムは、実行手段で実行された所定のプログラムに係る操作の集合を符号化したデータである操作データを生成し、第２の装置に送信する、操作データ生成手段を含む第１の装置と、検出対象の操作の集合に係る操作データである操作パターンを記憶する操作パターン記憶手段と、前記第１の装置から受信した前記操作データが前記操作パターンに一致した場合、前記実行手段において前記検出対象の操作が実行されたと判定し、当該検出対象の操作の実行を通知する、操作データ判定手段と、を含む第２の装置と、を備える。
【００１３】
本発明の情報処理装置は、実行手段で実行された前記所定のプログラムに係る操作の集合を符号化したデータである操作データを生成し、前記操作データが検出対象の操作の集合に係る操作データである操作パターンに一致した場合、前記実行手段において前記検出対象の操作が実行されたと判定して当該検出対象の操作の実行を通知する監視装置に送信する、操作データ生成手段を含む。
【００１４】
本発明の監視装置は、実行手段で実行された所定のプログラムに係る操作の集合を符号化したデータである操作データであって、検出対象の操作の集合に係る操作データである操作パターンを記憶する、操作パターン記憶手段と、前記操作データを生成する情報処理装置から受信した前記操作データが前記操作パターンに一致した場合、前記実行手段において前記検出対象の操作が実行されたと判定し、当該検出対象の操作の実行を通知する、操作データ判定手段と、を含む。
【００１５】
本発明の監視方法は、第１の装置において、実行手段で実行された所定のプログラムに係る操作の集合を符号化したデータである操作データを生成し、第２の装置に送信し、前記第２の装置において、検出対象の操作の集合に係る操作データである操作パターンを記憶し、前記第２の装置において、前記第１の装置から受信した前記操作データが前記操作パターンに一致した場合、前記実行手段において前記検出対象の操作が実行されたと判定し、当該検出対象の操作の実行を通知する。
【００１６】
本発明の第１のプログラムは、コンピュータに、実行手段で実行された前記所定のプログラムに係る操作の集合を符号化したデータである操作データを生成し、前記操作データが検出対象の操作の集合に係る操作データである操作パターンに一致した場合、前記実行手段において前記検出対象の操作が実行されたと判定して当該検出対象の操作の実行を通知する監視装置に送信する、処理を実行させる。
【００１７】
本発明の第２のプログラムは、コンピュータに、実行手段で実行された所定のプログラムに係る操作の集合を符号化したデータである操作データであって、検出対象の操作の集合に係る操作データである操作パターンを記憶し、前記操作データを生成する情報処理装置から受信した前記操作データが前記操作パターンに一致した場合、前記実行手段において前記検出対象の操作が実行されたと判定し、当該検出対象の操作の実行を通知する、処理を実行させる。
【発明の効果】
【００１８】
本発明の効果は、監視装置が監視対象のシステムに係る詳細情報を用いることなく、システムにおける不正な操作や異常な操作を検出できることである。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【図２】本発明の第１の実施の形態における、監視システム１の構成を示すブロック図である。
【図３】本発明の第１の実施の形態における、操作パターン生成処理を示すフローチャートである。
【図４】本発明の第１の実施の形態における、監視処理を示すフローチャートである。
【図５】本発明の第１の実施の形態における、ユーザ属性定義１３３の例を示す図である。
【図６】本発明の第１の実施の形態における、操作群１４２のビット列の生成例を示す図である。
【図７】本発明の第１の実施の形態における、操作データ１４０の例を示す図である。
【図８】本発明の第１の実施の形態における、操作パターン２４０の例を示す図である。
【図９】本発明の第１の実施の形態における、操作群１４２のビット列の他の生成例を示す図である。
【図１０】本発明の第１の実施の形態における、操作データ１４０の他の例を示す図である。
【図１１】本発明の第２の実施の形態における、操作群１４２のビット列の生成例を示す図である。
【図１２】本発明の第２の実施の形態における、操作データ１４０の例を示す図である。
【図１３】本発明の第２の実施の形態における、操作パターン２４０の例を示す図である。
【図１４】本発明の第３の実施の形態における、操作パターン２４０の例を示す図である。
【発明を実施するための形態】
【００２０】
（第１の実施の形態）
本発明の第１の実施の形態について説明する。
【００２１】
はじめに、本発明の第１の実施の形態の構成について説明する。
【００２２】
図２は、本発明の第１の実施の形態における、監視システム１の構成を示すブロック図である。
【００２３】
図２を参照すると、監視システム１は、監視対象である１以上の対象装置１００、及び、対象装置１００を監視する監視装置２００を含む。対象装置１００と監視装置２００とは、ネットワーク等により接続される。監視システム１は、本発明の情報処理システムの一実施形態である。また、対象装置１００は、本発明の情報処理装置の一実施形態である。
【００２４】
対象装置１００には、ユーザにサービスを提供するためのＩＴ（Information Technology）システムが構築される。
【００２５】
対象装置１００、及び、監視装置２００は、ＣＰＵ（Central Processing Unit）とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。また、対象装置１００、及び、監視装置２００は、コンピュータ上に配備される仮想マシンであってもよい。
【００２６】
また、対象装置１００、監視装置２００は、それぞれ、クラウドサービスの利用者、提供者のように、異なる管理者等により、管理、運用される。本発明の実施の形態では、対象装置１００の管理者等をシステム管理者と呼ぶ。
【００２７】
対象装置１００は、実行環境１２０、操作データ生成部１３０、操作データ送信部１５０を含む。
【００２８】
実行環境１２０は、コンピュータ上に配置されたプログラムであり、システムを構成する、１以上のアプリケーションプログラム（アプリケーション１１０）を実行可能な状態で読み込み、実行する。実行環境１２０は、アプリケーション１１０に提供するライブラリを含んでいてもよい。
【００２９】
実行環境１２０は、クライアント（図示せず）からの要求に応じてアプリケーション１１０を実行し、クライアントに対して実行結果を応答する。クライアントと実行環境１２０との間で、１回以上の要求と応答を繰り返されることにより、ユーザに対して所定のサービスが提供される。
【００３０】
例えば、システムが、Java（登録商標）ベースのWebアプリケーションサーバ（Web APサーバ）とブラウザにより構成されるWebシステムの場合、Web APサーバ、ブラウザが、それぞれ、実行環境１２０、クライアントに相当する。ユーザがWebシステムのサービスを利用する場合、ブラウザはWeb APサーバに接続し、ユーザ認証を行う。そして、ユーザからの指示等に応じて、クライアントとWeb APサーバとの間で、HTTPリクエスト、レスポンスが繰り返される。
【００３１】
実行環境１２０は、コンテキストハンドラ１２１、及び、関数呼び出しハンドラ１２２を含む。
【００３２】
コンテキストハンドラ１２１は、例えば、ジャーナリング機能の提供部であり、クライアントとの間のセッション（クライアントによるユーザのログインからログアウトまで）の抽出を行う。また、コンテキストハンドラ１２１は、クライアントを利用するユーザの権限レベルを抽出する。
【００３３】
関数呼び出しハンドラ１２２は、例えば、プロファイラ機能の提供部であり、実行環境１２０上のアプリケーション１１０における関数呼び出しごとに、関数名を検出する。関数名には、例えば、Java言語の場合、クラス名（FQCN(Fully Qualified Class Name))とメソッド名（Method）との組が用いられる。
【００３４】
操作データ生成部１３０は、コンテキストハンドラ１２１により抽出された、セッション、ユーザの権限、及び、関数呼び出しハンドラ１２２により抽出された関数名をもとに、操作データ１４０を生成する。
【００３５】
図７は、本発明の第１の実施の形態における、操作データ１４０の例を示す図である。
【００３６】
操作データ１４０は、コンテキスト識別子（コンテキストＩＤ１４１）、操作群１４２、ユーザ属性１４３、及び、動作モード１４４を含む。
【００３７】
コンテキストＩＤ１４１は、操作データ１４０を識別するための識別子である。
【００３８】
操作群１４２は、セッションの間に、監視対象のシステムにおいて、クライアントから実行された操作の集合を示す。本発明の第１の実施の形態では、操作群１４２に設定する操作として、関数呼び出しハンドラ１２２により抽出された、アプリケーション１１０において呼び出された関数名を用いる。操作群１４２には、関数名の集合をBloom Filterにより表したビット列が設定される。
【００３９】
なお、クライアントから実行された操作を示すことができれば、操作群１４２に設定する操作として、例えば、クライアントとの間で送受信された電文や、システム上のプログラム間で送受信された電文等、他の情報を用いてもよい。
【００４０】
ユーザ属性１４３は、ユーザの権限レベルを示す。本発明の第１の実施の形態では、後述するユーザ属性定義１３３で定義される、権限レベルに対応するビット列が、ユーザ属性１４３に設定される。
【００４１】
以下、図７に示すように、操作群１４２のビット列にユーザ属性１４３のビット列を加えたビット列を、操作データビット列１４５と呼ぶ。
【００４２】
動作モード１４４は、操作データ生成部１３０により生成される操作データ１４０が、監視用の操作データ１４０か（動作モード１４４：「監視」）、操作パターン２４０を生成するための操作データ１４０か（動作モード１４４：「生成」）を示す。
【００４３】
操作データ生成部１３０は、動作モード記憶部１３１、ユーザ属性定義記憶部１３２、及び、生成処理部１３４を含む。
【００４４】
動作モード記憶部１３１は、動作モード１４４を記憶する。動作モード１４４は、システム管理者により設定される。
【００４５】
ユーザ属性定義記憶部１３２は、ユーザ属性定義１３３を記憶する。ユーザ属性定義１３３は、ユーザの権限レベルと権限レベルを表すビット列との対応を示す。
【００４６】
図５は、本発明の第１の実施の形態における、ユーザ属性定義１３３の例を示す図である。図５の例では、ユーザ属性定義１３３において、各権限レベルに、４ビットのうちのいずれかのビットが割り当てられている。なお、権限レベルの代わりに、管理ユーザ、一般ユーザ等、システムにおけるユーザのロールが用いられてもよい。
【００４７】
生成処理部１３４は、コンテキストハンドラ１２１により抽出されたセッションごとに、コンテキストＩＤ１４１を採番する。
【００４８】
また、生成処理部１３４は、セッションの間に関数呼び出しハンドラ１２２により抽出された関数名ごとに、当該関数名に対応するBloom Filterのビット列（操作ビット列）を生成する。そして、生成処理部１３４は、セッションの終了時に、関数名ごとの操作ビット列の論理和を算出することにより、操作群１４２のビット列を生成する。
【００４９】
図６は、本発明の第１の実施の形態における、操作群１４２のビット列の生成例を示す図である。
【００５０】
生成処理部１３４は、所定のハッシュ関数を用いて、関数名に対応するビット位置を算出し、算出されたビット位置に１、他のビット位置に０が設定された操作ビット列を生成する。ここで、ハッシュ関数は、操作ビット列の長さをｍとした場合に、１〜ｍの間で十分に分散した値を返すハッシュ関数である。
【００５１】
図６の例では、関数名「顧客データ．一覧検索（）」、「画面印刷（）」に対して、それぞれ、ビット位置「２」、「４」が算出され、操作ビット列「０１００００００」、「０００１００００」が生成されている。
【００５２】
なお、生成処理部１３４は、同じ関数名に対して複数のハッシュ関数を用いて複数のビット位置を算出し、算出された複数のビット位置に１を設定してもよい。また、この場合、生成処理部１３４は、複数のビット位置の算出を並列に行ってもよい。
【００５３】
そして、生成処理部１３４は、生成された関数名ごとの操作ビット列の論理和を算出することにより、操作群１４２のビット列を生成する。
【００５４】
図６の例では、操作ビット列「０１００００００」、「０００１００００」の論理和として、操作群１４２「０１０１００００」が算出されている。
【００５５】
また、生成処理部１３４は、ユーザ属性定義１３３から、ユーザの権限レベルに対応するビット列を抽出することにより、ユーザ属性１４３を生成する。
【００５６】
操作データ送信部１５０は、操作データ生成部１３０が生成した操作データ１４０を、監視装置２００に送信する。
【００５７】
監視装置２００は、操作データ受信部２１０、操作データ判定部２２０、操作パターン記憶部２３０、操作データ記憶部２５０、通知部２６０、操作パターン管理部２７０、及び、操作データ管理部２８０を含む。
【００５８】
操作データ受信部２１０は、対象装置１００から操作データ１４０を受信する。
【００５９】
操作パターン記憶部２３０は、検出対象の操作の集合を表す操作パターン２４０を記憶する。
【００６０】
図８は、本発明の第１の実施の形態における、操作パターン２４０の例を示す図である。
【００６１】
操作パターン２４０は、操作群２４２、及び、ユーザ属性２４３を含む。
【００６２】
操作群２４２、及び、ユーザ属性２４３には、対象装置１００から受信した、動作モード１４４が「生成」である操作データ１４０に含まれる操作群１４２、及び、ユーザ属性１４３が設定される。
【００６３】
なお、操作パターン２４０は、システム管理者により操作パターン管理部２７０を通して設定されてもよい。この場合、システム管理者は、システムの関数名の情報をもとに、システムの通常の操作では生成されない操作群２４２を設定してもよい。例えば、システム管理者は、商品マスタデータや顧客データ、取引データといったシステムの重要情報に対する検索、参照、更新操作や、入金、出金、受注、発注といった金銭の授受に関わる操作を定義してもよい。
【００６４】
以下、図８に示すように、操作群２４２のビット列にユーザ属性２４３のビット列を加えたビット列を、操作データビット列２４５と呼ぶ。
【００６５】
操作データ判定部２２０は、動作モード１４４が「監視」である操作データ１４０を監視する。ここで、操作データ判定部２２０は、操作パターン記憶部２３０に記憶されている操作パターン２４０の中から、操作データ１４０の操作データビット列１４５と一致する操作データビット列２４５を有する操作パターン２４０を抽出する。操作データ１４０と一致する操作パターン２４０がある場合、操作データ判定部２２０は、対象装置１００における「検出対象の操作の実行」と判定し、当該判定結果を、通知部２６０を介して通知する。
【００６６】
操作データ記憶部２５０は、対象装置１００から受信した操作データ１４０を判定結果とともに記憶する。操作データ記憶部２５０は、受信した全ての操作データ１４０を記憶してもよいし、通知対象の操作データ１４０のみを記憶してもよい。
【００６７】
通知部２６０は、操作データ判定部２２０による判定結果を、対象装置１００のシステム管理者の端末等、他の装置へ通知（出力）する。なお、通知部２６０は、操作データ１４０や、操作データ１４０に含まれる他の情報とともに、判定結果を通知してもよい。
【００６８】
操作パターン管理部２７０は、システム管理者の端末等に、操作パターン記憶部２３０における操作パターン２４０の検索、追加、参照、更新、削除等を行うためのインタフェースを提供する。
【００６９】
操作データ管理部２８０は、システム管理者の端末等に、操作データ記憶部２５０における操作パターン２４０の検索、追加、参照、更新、削除等を行うためのインタフェースを提供する。
【００７０】
なお、対象装置１００、及び、監視装置２００は、ＣＰＵ（Central Processing Unit）とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。また、操作データ生成部１３０は、システム管理者により管理、運用される、対象装置１００とは異なる装置に配置されていてもよい。
【００７１】
また、監視装置２００における操作パターン記憶部２３０、及び、操作データ記憶部２５０は、それぞれ個別の記憶媒体でも、１つの記憶媒体によって構成されてもよい。また、操作パターン記憶部２３０、及び、操作データ記憶部２５０は、それぞれ、監視装置２００とネットワーク等により接続された他の装置に配置されていてもよい。また、操作パターン記憶部２３０、及び、操作データ記憶部２５０は、それぞれ、複数のコンピュータ上にクラスタ構成により配置されてもよい。
【００７２】
次に、本発明の第１の実施の形態の動作について説明する。
【００７３】
ここでは、同一のセッションにおける、権限レベル「1」のユーザによる２つの操作「顧客データの一覧検索」、「印刷」の実行を検出する場合を例に、動作を説明する。権限レベル「1」のユーザは、顧客データの検索、及び、表示が許可されているものの、個人情報の管理の観点から、あるセッション内で両方の操作を実行した場合、それを検出し、通知（警告）する必要があると仮定する。
【００７４】
また、ここでは、図５のユーザ属性定義１３３がユーザ属性定義記憶部１３２に記憶されていると仮定する。
【００７５】
はじめに、本発明の第１の実施の形態における、操作パターン生成処理について説明する。
【００７６】
操作パターン生成処理は、システム管理者が、動作モード１４４に「生成」を設定した場合に実行される。この場合、システム管理者は、クライアントから、検出対象のユーザの権限レベルで実行環境１２０にアクセスし、検出対象の操作を行う。
【００７７】
図３は、本発明の第１の実施の形態における、操作パターン生成処理を示すフローチャートである。
【００７８】
対象装置１００における実行環境１２０のコンテキストハンドラ１２１は、ユーザのログインを検出すると（ステップＳ１０１）、ユーザの権限レベルを抽出する（ステップＳ１０２）。
【００７９】
例えば、コンテキストハンドラ１２１は、ユーザの権限レベル「1」を抽出する。
【００８０】
操作データ生成部１３０の生成処理部１３４は、コンテキストＩＤ１４１を採番する（ステップＳ１０３）
例えば、生成処理部１３４は、コンテキストＩＤ１４１「10」を採番する。
【００８１】
関数呼び出しハンドラ１２２は、アプリケーション１１０における、ユーザの操作に対応した関数呼び出しごとに、関数名を抽出する（ステップＳ１０４）。
【００８２】
生成処理部１３４は、関数名に対応するBloom Filterのビット列（操作ビット列）を生成する（ステップＳ１０５）。
【００８３】
そして、コンテキストハンドラ１２１が、ユーザのログアウトを検出するまで、ステップＳ１０４〜Ｓ１０５が繰り返される（ステップＳ１０６）。
【００８４】
例えば、生成処理部１３４は、図６に示すように、ユーザによる２つの操作「顧客データの一覧検索」、「印刷」に対して抽出された関数名「顧客データ．一覧検索（）」、「画面印刷（）」について、操作ビット列「01000000」、「01000000」を生成する。
【００８５】
コンテキストハンドラ１２１が、ユーザのログアウトを検出すると（ステップＳ１０６／Ｙ）、生成処理部１３４は、操作ビット列の論理和を算出することにより、操作群１４２のビット列を生成する（ステップＳ１０７）。
【００８６】
例えば、生成処理部１３４は、図６に示すように、操作群１４２「01000000」を算出する。
【００８７】
生成処理部１３４は、ユーザ属性定義１３３から、ユーザの権限レベルに対応するビット列を抽出し、ユーザ属性１４３のビット列を生成する（ステップＳ１０８）。
【００８８】
例えば、生成処理部１３４は、図５のユーザ属性定義１３３をもとに、ユーザの権限レベル「1」に対応するユーザ属性１４３「1000」を生成する。
【００８９】
生成処理部１３４は、コンテキストＩＤ１４１、操作群１４２、ユーザ属性１４３、及び、動作モード１４４をもとに、操作データ１４０を生成する（ステップＳ１０９）。
【００９０】
例えば、生成処理部１３４は、図７に示すように、コンテキストＩＤ１４１「10」、操作群１４２「01010000」、ユーザ属性１４３「1000」、及び、動作モード１４４「生成」が設定された操作データ１４０を生成する。
【００９１】
操作データ送信部１５０は、操作データ生成部１３０が生成した操作データ１４０を、監視装置２００へ送信する（ステップＳ１１０）。
【００９２】
例えば、操作データ送信部１５０は、図７の操作データ１４０を監視装置２００へ送信する。
【００９３】
監視装置２００の操作データ受信部２１０は、対象装置１００から操作データ１４０を受信する（ステップＳ１２１）。操作データ受信部２１０は、操作データ１４０の動作モード１４４が「生成」であるため、操作データ１４０をもとに、操作群２４２、ユーザ属性２４３が設定された操作パターン２４０を生成し、操作パターン記憶部２３０に保存する（ステップＳ１２２）。
【００９４】
例えば、操作データ受信部２１０は、図７の操作データ１４０をもとに、図８のように、操作群２４２「01010000」、ユーザ属性２４３「1000」が設定された操作パターン２４０を生成する。
【００９５】
次に、本発明の第１の実施の形態における、監視処理について説明する。
【００９６】
ここでは、図８の操作パターン２４０が操作パターン記憶部２３０に記憶されていると仮定する。
【００９７】
操作パターン生成処理は、システム管理者が、動作モード１４４に「監視」を設定した場合に実行される。この場合、ユーザが、クライアントから、実行環境１２０にアクセスし、サービスを利用するための操作を行う。
【００９８】
図４は、本発明の第１の実施の形態における、監視処理を示すフローチャートである。
【００９９】
ここで、コンテキストハンドラ１２１がユーザのログインを検出してから、操作データ送信部１５０が操作データ１４０を送信するまでの動作（ステップＳ２０１〜Ｓ２１０）は、上述の操作パターン生成処理（ステップＳ１０１〜Ｓ１１０）と同様となる。
【０１００】
例えば、コンテキストハンドラ１２１は、ユーザのログインを検出すると、ユーザの権限レベル「1」を抽出する。また、生成処理部１３４は、コンテキストＩＤ１４１「30」を採番する。
【０１０１】
図９は、本発明の第１の実施の形態における、操作群１４２のビット列の他の生成例を示す図である。
【０１０２】
生成処理部１３４は、図９に示すように、ユーザによる操作に対して抽出された関数名「ログイン」、「顧客データ．新規作成（）」、「顧客データ．検索（）」、「顧客データ．修正（）」、「顧客データ．一覧検索（）」、「画面印刷（）」、「ログアウト」について、それぞれ、操作ビット列「00100000」、「00000010」、「00000001」、「10000000」、「01000000」、「00010000」、「00001000」を生成する。
【０１０３】
コンテキストハンドラ１２１がユーザのログアウトを検出すると、生成処理部１３４は、図９に示すように、操作ビット列の論理和である操作群１４２「11111011」を算出する。また、生成処理部１３４は、図５のユーザ属性定義１３３をもとに、ユーザの権限レベル「1」に対応するユーザ属性１４３「1000」を生成する。
【０１０４】
図１０は、本発明の第１の実施の形態における、操作データ１４０の他の例を示す図である。
【０１０５】
生成処理部１３４は、図１０に示すように、コンテキストＩＤ１４１「30」、操作群１４２「11111011」、ユーザ属性１４３「1000」、及び、動作モード１４４「監視」が設定された操作データ１４０を生成する。
【０１０６】
そして、操作データ送信部１５０は、図１０の操作データ１４０を監視装置２００へ送信する。
【０１０７】
次に、監視装置２００の操作データ受信部２１０は、対象装置１００から操作データ１４０を受信する（ステップＳ２２１）。操作データ受信部２１０は、操作データ１４０の動作モード１４４が「監視」であるため、操作データ１４０を操作データ判定部２２０へ転送する。操作データ判定部２２０は、操作パターン記憶部２３０に記憶されている操作パターン２４０の中から、受信した操作データ１４０の操作データビット列１４５と一致する操作データビット列２４５を有する操作パターン２４０を抽出する（ステップＳ２２２）。
【０１０８】
本発明の第１の実施の形態では、操作データ判定部２２０は、操作データビット列１４５と完全一致する操作データビット列２４５を有する操作パターン２４０を抽出する。ここで、完全一致とは、操作データビット列２４５で１が設定されている全てのビット位置について、操作データビット列１４５で１が設定されていること、すなわち、操作群１４２が操作群２４２の操作をすべて含むことを示す。
【０１０９】
操作データ判定部２２０は、操作データビット列１４５と操作データビット列２４５との論理積（一致度合い）を算出する。そして、操作データ判定部２２０は、算出された論理積（一致度合い）と操作データビット列２４５との排他的論理和を算出することにより、操作データビット列１４５と操作データビット列２４５との完全一致を検出する。
【０１１０】
例えば、操作データ判定部２２０は、図１０の操作データ１４０の操作データビット列１４５「111110111000」と図８の操作パターン２４０の操作データビット列２４５「010100001000」との論理積「010100001000」を算出する。そして、操作データ判定部２２０は、論理積「010100001000」と操作データビット列２４５「010100001000」の排他的論理和が「000000000000」であることから、操作データビット列１４５が操作データビット列２４５に完全一致すると判定する。
【０１１１】
ステップＳ２１２で、一致する操作パターン２４０が検出された場合（ステップＳ２２３／Ｙ）、操作データ判定部２２０は、「対象装置１００における検出対象の操作が実行された」と判定し、当該判定結果を、通知部２６０を介して通知する（ステップＳ２２４）。通知部２６０は、操作データ１４０のコンテキストＩＤ１４１とともに、「検出対象の操作の実行」を、システム管理者の端末へ通知する。
【０１１２】
例えば、通知部２６０は、コンテキストＩＤ１４１「30」とともに、「検出対象の操作の実行」を通知する。
【０１１３】
このように、監視装置２００は、操作データ１４０における操作データビット列１４５が表す内容を解析することなく、「権限レベル「1」のユーザによる、同一セッションにおける、顧客データの検索、及び、表示」の実行を検出できる。
【０１１４】
操作データ判定部２２０は、操作データ記憶部２５０に、操作データ１４０、及び、判定結果を保存する（ステップＳ２２５）。
【０１１５】
例えば、操作データ判定部２２０は、図１０の操作データ１４０、及び、判定結果「検出対象の操作の実行」を操作データ記憶部２５０に保存する。
【０１１６】
以上により、本発明の第１の実施の形態の動作が完了する。
【０１１７】
次に、本発明の第１の実施の形態の特徴的な構成を説明する。
【０１１８】
図１は、本発明の第１の実施の形態の特徴的な構成を示す図である。
【０１１９】
図１を参照すると、監視システム１（情報処理システム）は、対象装置１００（第１の装置）、及び、監視装置２００（第２の装置）を含む。
【０１２０】
対象装置１００は、操作データ生成部１３０を含む。操作データ生成部１３０は、実行環境１２０で実行された所定のプログラムに係る操作の集合を符号化したデータである操作データ１４０を生成し、監視装置２００に送信する。
【０１２１】
監視装置２００は、操作パターン記憶部２３０、及び、操作データ判定部２２０を含む。操作パターン記憶部２３０は、検出対象の操作の集合に係る操作データである操作パターン２４０を記憶する。操作データ判定部２２０は、対象装置１００から受信した操作データ１４０が操作パターン２４０に一致した場合、実行環境１２０において検出対象の操作が実行されたと判定し、当該検出対象の操作の実行を通知する。
【０１２２】
次に、本発明の第１の実施の形態の効果を説明する。
【０１２３】
本発明の第１の実施形態によれば、監視装置が、監視対象のシステムに係る詳細情報を用いることなく、システムにおける不正な操作や異常な操作を検出できる。
【０１２４】
その理由は、対象装置１００の操作データ生成部１３０が、実行環境１２０で実行された操作の集合を符号化したデータである操作データ１４０を生成し、監視装置２００の操作データ判定部２２０が、対象装置１００から受信した操作データ１４０が検出対象の操作の集合に係る操作データである操作パターン２４０に一致した場合、実行環境１２０において検出対象の操作が実行されたと判定するためである。
【０１２５】
これにより、監視装置２００は、操作データ１４０の内容を解析することなく、検出対象の操作の実行を検出できる。したがって、監視対象のシステムで動作するアプリケーションの構造やロジック、アプリケーションが処理するデータの種類や構造等、操作内容を解析するための、監視対象のシステムに係る詳細情報を必要としない。
【０１２６】
また、これにより、監視対象のシステムで動作するアプリケーションと、当該システムの監視サービスとが、異なる組織により提供される場合であっても、アプリケーションの提供者は、秘密情報を含んだ、当該システムに係る詳細情報を監視サービスの提供者に提示する必要がない。さらに、監視サービスの提供者は、アプリケーションの提供者の秘密情報が漏洩するリスクを抱えることがない。
【０１２７】
また、本発明の第１の実施形態によれば、対象装置における不正な操作や異常な操作の検出において、監視装置が対象装置から収集するデータ量を低減できる。
【０１２８】
その理由は、操作データ判定部２２０が監視装置２００から取得するデータは、操作の集合を符号化したデータであり、操作を表す関数名等を取得する場合に比べて、データ量を大幅に低減できるためである。
【０１２９】
また、本発明の第１の実施の形態によれば、対象装置における不正な操作や異常な操作を高速に検出できる。
【０１３０】
その理由は、操作データ１４０や操作パターン２４０において、操作の集合が、Bloom Filterにより表現されており、監視装置２００は、操作データ１４０と操作パターン２４０との間のBloom Filterの論理演算により、操作データ１４０と操作パターン２４０との一致を検出するためである。
【０１３１】
また、本発明の第１の実施の形態によれば、監視対象のシステムやアプリケーションを変更することなく、不正な操作や異常な操作を検出できる。
【０１３２】
その理由は、実行環境１２０が、操作データ１４０の生成に必要なセッションの検出、及び、呼び出される関数名の検出を行うためである。
【０１３３】
また、本発明の第１の実施の形態によれば、システムの通常の操作では発生しないような、不正な操作や異常な操作を検出できる。その理由は、操作パターン管理部２７０を通して、システム管理者により定義された操作パターン２４０を操作パターン記憶部２３０に設定できるためである。
【０１３４】
（第２の実施の形態）
次に、本発明の第２の実施の形態について説明する。
【０１３５】
本発明の第２の実施の形態においては、操作データ１４０との一致が検出された操作パターン２４０の重み２４４と一致度合いとをもとに算出されたスコアを用いて、通知部２６０による通知を行うかどうかを判定する点において、本発明の第１の実施の形態と異なる。
【０１３６】
図１１、及び、図１２は、それぞれ、本発明の第２の実施の形態における、操作群１４２のビット列の生成例、及び、操作データ１４０の例を示す図である。図１２の操作データ１４０は、図１１の操作群１４２に対して生成されたものである。
【０１３７】
図１１の生成例では、図６の生成例における関数名に加えて、関数名「受注データ．一覧検索（）」が追加されている。これにより、図１２の操作データ１４０では、操作群１４２「01010100」が設定されている。
【０１３８】
図１３は、本発明の第２の実施の形態における、操作パターン２４０の例を示す図である。図１３の操作パターン２４０は、図１２の操作データ１４０をもとに生成されたものである。
【０１３９】
本発明の第２の実施の形態においては、操作パターン２４０は、操作群２４２、及び、ユーザ属性２４３に加えて、重み２４４を含む。
【０１４０】
重み２４４は、操作パターン２４０の重要度（危険度）を示す。重み２４４は、操作パターン管理部２７０を通して、システム管理者により、設定される。
【０１４１】
なお、操作データ判定部２２０は、操作データビット列１４５と操作データビット列２４５との一致度合い、及び、重み２４４をもとにスコアを算出し、算出したスコアをもとに、「検出対象の操作の実行」を通知するかどうかを判定する。
【０１４２】
次に、本発明の第２の実施の形態における、操作パターン生成処理について説明する。
【０１４３】
ここでは、図１２の操作データ１４０が生成され、対象装置１００から監視装置２００へ送信されたと仮定する。
【０１４４】
上述のステップＳ１２２で、操作データ１４０をもとに、操作パターン２４０の操作群２４２、ユーザ属性２４３が設定されると、操作パターン管理部２７０は、システム管理者から、重み２４４の入力を受け付ける。そして、操作パターン管理部２７０は、入力された重み２４４を、操作パターン２４０に設定する。
【０１４５】
例えば、操作パターン管理部２７０は、図１３のように、図１１の操作データ１４０をもとに生成された操作パターン２４０に、重み２４４「50」を設定する。
【０１４６】
次に、本発明の第２の実施の形態における、監視処理について説明する。
【０１４７】
ここでは、図１３の操作パターン２４０が操作パターン記憶部２３０に記憶されていると仮定する。
【０１４８】
上述のステップＳ２２２で、操作データ判定部２２０は、操作パターン記憶部２３０に記憶されている操作パターン２４０の中から、受信した操作データ１４０の操作データビット列１４５と完全一致する操作データビット列２４５を有する操作パターン２４０に加えて、受信した操作データ１４０の操作データビット列１４５と部分一致する操作データビット列２４５を有する操作パターン２４０を検出する。
【０１４９】
ここで、部分一致とは、操作データビット列２４５で１が設定されているビット位置の一部について、操作データビット列１４５で１が設定されていること、すなわち、操作群１４２が、操作群２４２が表す操作の一部を含むことを示す。
【０１５０】
そして、操作データ判定部２２０は、操作データビット列１４５と操作データビット列２４５との論理積（一致度合い）と重み２４４を用いてスコアを算出し、スコアが通知判定基準スコア以上の場合、「検出対象の操作の実行」を通知すると判定する。
【０１５１】
例えば、操作データ判定部２２０は、図１０の操作データ１４０の操作データビット列１４５「111110111000」と図１３の操作パターン２４０の操作データビット列２４５「010101001000」との論理積「010100001000」を算出する。そして、操作データ判定部２２０は、論理積「010100001000」と操作データビット列２４５「010101001000」の排他的論理和が「000001000000」であることから、操作データビット列１４５が操作データビット列２４５と部分一致であると判定する。
【０１５２】
そして、操作データ判定部２２０は、操作データビット列２４５「010101001000」における１の数「4」に対する、論理積「010100001000」における１の数「3」の割合「0.75」に、重み２４４「50」を乗じることにより、スコア「32.5」を算出する。
【０１５３】
ここで、通知判定基準スコアが「40」の場合、「検出対象の操作の実行」を通知しないと判定される。
【０１５４】
操作データ判定部２２０は、図１０の操作データ１４０、及び、判定結果「スコア：32.5、通知なし」を操作データ記憶部２５０に保存する。
【０１５５】
なお、操作パターン管理部２７０は、管理者からの要求に従って、重み２４４を調整してもよい。例えば、システム管理者は、操作データ記憶部２５０に記憶された操作データ１４０を参照し、通知判定基準スコア未満で通知判定基準スコアに近い操作データ１４０の危険度が大きい場合、当該操作データ１４０が通知対象となるように、当該操作データ１４０と一致（完全一致、及び、部分一致）する操作パターン２４０の重み２４４を大きくしてもよい。逆に、システム管理者は、通知判定基準スコア以上で通知判定基準スコアに近い操作データ１４０の危険度が小さい場合、当該操作データ１４０が通知対象とならないように、当該操作データ１４０と一致（完全一致、及び、部分一致）する操作パターン２４０の重み２４４を小さくしてもよい。
【０１５６】
また、システム管理者は、操作データ記憶部２５０に記憶された操作データ１４０を参照し、通知判定基準スコア未満で通知判定基準スコアに近い操作データ１４０をもとに、新たな操作パターン２４０を生成し、操作パターン記憶部２３０に設定してもよい。
【０１５７】
以上により、本発明の第２の実施の形態の動作が完了する。
【０１５８】
次に、本発明の第２の実施の形態の効果を説明する。
【０１５９】
本発明の第２の実施の形態によれば、操作データ１４０が一致する操作パターン２４０の重要度に応じて、通知の有無を制御できる。
【０１６０】
その理由は、操作データ判定部２２０が、操作データ１４０との一致が検出された操作パターン２４０の重み２４４と一致度合いとをもとに算出されたスコアを用いて、通知を行うかどうかを判定するためである。
【０１６１】
また、本発明の第２の実施の形態によれば、危険度が小さい操作に係る通知を低減し、危険度が大きい操作に係る通知だけが行われるように、通知内容を絞り込むことができる。その理由は、システム管理者が、操作パターン管理部２７０を通して重み２４４を調整できるためである。
【０１６２】
また、本発明の第２の実施の形態によれば、不正な操作や異常な操作を、システムに対する影響が少ない間に検出できる。その理由は、システム管理者が、操作パターン管理部２７０を通して新たな操作パターン２４０を追加できるためである。
【０１６３】
（第３の実施の形態）
次に、本発明の第３の実施の形態について説明する。
【０１６４】
本発明の第３の実施の形態においては、複数の操作パターン２４０に対して算出されたスコアを用いて、通知の有無を判定する点において、本発明の第２の実施の形態と異なる。
【０１６５】
図１４は、本発明の第３の実施の形態における、操作パターン２４０の例を示す図である。図１４の操作パターン２４０は、図７の操作データ１４０をもとに生成されたものである。
【０１６６】
本発明の第３の実施の形態における操作パターン生成処理は、本発明の第２の実施の形態と同様となる。
【０１６７】
例えば、操作パターン管理部２７０は、図１４のように、図７の操作データ１４０をもとに生成された操作パターン２４０に、重み２４４「50」を設定する。
【０１６８】
次に、本発明の第３の実施の形態における、監視処理について説明する。
【０１６９】
ここでは、図１３、及び、図１４の操作パターン２４０が操作パターン記憶部２３０に記憶されていると仮定する。
【０１７０】
上述のステップＳ２２１で、操作データ判定部２２０は、受信した操作データ１４０と完全一致、及び、部分一致する操作パターン２４０の各々について、スコアを算出し、平均スコアが通知判定基準スコア以上の場合、「検出対象の操作の実行」を通知すると判定する。
【０１７１】
例えば、操作データ判定部２２０は、図１０の操作データ１４０の操作データビット列１４５「111110111000」と図１４の操作パターン２４０の操作データビット列２４５「010100001000」との論理積「010100001000」を算出する。そして、操作データ判定部２２０は、論理積「010100001000」と操作データビット列２４５「010100001000」の排他的論理和が「000000000000」であることから、操作データビット列１４５が操作データビット列２４５と完全一致であると判定する。
【０１７２】
そして、操作データ判定部２２０は、操作データビット列２４５「010100001000」における１の数「3」に対する、論理積「010100001000」における１の数「3」の割合「1.0」に、重み２４４「50」を乗じることにより、スコア「50」を算出する。
【０１７３】
また、操作データ判定部２２０は、図１０の操作データ１４０の操作データビット列１４５「111110111000」と図１３の操作パターン２４０の操作データビット列２４５「010101001000」との論理積「010100001000」を算出する。そして、操作データ判定部２２０は、論理積「010100001000」と操作データビット列２４５「010101001000」の排他的論理和が「000001000000」であることから、操作データビット列１４５が操作データビット列２４５と部分一致であると判定する。
【０１７４】
そして、操作データ判定部２２０は、操作データビット列２４５「010101001000」における１の数「4」に対する、論理積「010100001000」における１の数「3」の割合「0.75」に、重み２４４「50」を乗じることにより、スコア「32.5」を算出する。
【０１７５】
さらに、操作データ判定部２２０は、これらのスコアの平均「41.25」を算出する。
【０１７６】
ここで、通知判定基準スコアが「40」の場合、「検出対象の操作の実行」を通知すると判定される。
【０１７７】
通知部２６０は、コンテキストＩＤ１４１「30」とともに、「検出対象の操作の実行」を通知する。
【０１７８】
操作データ判定部２２０は、図１０の操作データ１４０、及び、判定結果「スコア：41.25、通知あり」を操作データ記憶部２５０に保存する。
【０１７９】
以上により、本発明の第３の実施の形態の動作が完了する。
【０１８０】
本発明の第３の実施の形態によれば、第２の実施の形態に比べて、通知の有無を、複数の操作パターン２４０を用いて、総合的に判定できる。その理由は、操作データ判定部２２０が、複数の操作パターン２４０に対して算出されたスコアを用いて、通知を行うかどうかを判定するためである。
【０１８１】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１８２】
例えば、本発明の実施の形態では、操作データ１４０、及び、操作パターン２４０において、セッション内の操作の集合をBloom Filterを用いて符号化したが、セッション内の操作の集合を表すことができれば、他の符号化方法を用いてもよい。
【０１８３】
また、操作データ１４０、及び、操作パターン２４０の操作データビット列に含まれるBloom Filterは、例えば、若松ほか、「B木構造に基づくBloomフィルタの提案」、情報処理学会研究報告.マルチメディア通信と分散処理研究会報告2008(117)、一般社団法人情報処理学会、2008年11月20日、p.43-48に記載されているような、木構造を有する階層化されたBloom Filterでもよい。この場合、操作データ判定部２２０は、操作群とユーザ属性とを分けて検索してもよい。
【０１８４】
また、操作データ１４０、及び、操作パターン２４０の操作データビット列において、ユーザ属性のビット列は省略されてもよい。これにより、システム管理者による操作パターン２４０の定義が簡易化できる。また、これにより、対象装置１００における、操作データ１４０の生成処理時間が低減できる。さらに、監視装置２００が受信する操作データ１４０のデータ量が低減でき、操作データ判定部２２０における判定処理に要する時間も短縮できる。
【０１８５】
また、１つの監視装置２００が、複数の異なる組織（テナント）により運用される複数のシステムを監視する場合、操作データビット列は、テナントを識別するためのビット列を含んでいてもよい。これにより、監視装置２００は、複数のテナントのシステムにおける、不正な操作や異常な操作を、一括して検出できる。
【０１８６】
また、操作パターン２４０は、実施形態１〜３で示した、操作データ判定部２２０による各判定方法を選択するための通知オプションを含んでいてもよい。この場合、操作データ判定部２２０は、操作データ１４０と一致した操作パターン２４０に含まれる通知オプションに従って、例えば、操作データ１４０と操作パターン２４０が完全一致した場合に通知する、各操作パターン２４０に対するスコアをもとに通知判定を行う、複数の操作パターン２４０に対する平均スコアをもとに通知判定を行う、のうちのいずれかを選択する。
【０１８７】
また、操作データ１４０、及び、操作パターン２４０の操作群のビット列は、Counting Filterであってもよい。ここで、Counting Filterは、Boom Filterにおける各ビットに、当該ビット位置に対応する操作の発生回数を示すカウンタが設定されたものである。操作データ判定部２２０は、操作データ１４０と操作パターン２４０とを比較するときに、各ビット位置のカウンタの値を比較する、あるいは、各ビット位置のカウンタの値を用いてスコアを算出する。これにより、セッションにおける特定の操作の回数を通知判定の条件に設定できるため、例えば、印刷操作の多数回の実行を、機密データの持ち出しに係る操作として検出できる。
【０１８８】
また、操作パターン２４０に重み２４４を付与する代わりに、操作群２４２のビット列におけるビット位置ごとに重みを付与してもよい。この場合、操作群２４２のビット列において、１が設定されている各ビット位置に、重みが付与される。操作データ判定部２２０は、操作データビット列１４５と操作データビット列２４５との論理積において、１が設定されているビット位置の重みの和を求めることにより、スコアを算出する。
【０１８９】
このように、ビット位置ごとに重みが設定された操作パターン２４０は、操作データビット列２４５のみにより構成されるため、上述の木構造を有する、階層化されたBloom Filterを用いる場合にも、適している。
【０１９０】
また、このように、ビット位置ごとに重みが設定された複数の操作パターン２４０の操作データビット列２４５の論理和を算出することにより、複数の操作パターン２４０を１つの操作パターン２４０に集約してもよい。これにより、操作パターン記憶部２３０のデータ量が低減でき、操作データ判定部２２０による判定処理の負荷も低減できる。
【０１９１】
また、本発明の実施の形態では、重み２４４は、システム管理者等により、操作パターン管理部２７０を通して設定されたが、対象装置１００の操作データ生成部１３０が、上述の操作パターン生成処理において、ユーザの権限レベル等をもとに重みを決定し、操作データ１４０に付与してもよい。この場合、監視装置２００の操作データ受信部２１０は、操作データ１４０に付与された重みを、操作パターン２４０の重み２４４に設定する。
【０１９２】
また、操作データ１４０、及び、操作パターン２４０の操作データビット列には、Bloom Filter以外に、システムに係るパラメータ等、他のデータを含んでいてもよい。この場合、監視装置２００の操作データ判定部２２０は、当該他のデータも用いて、判定処理を行ってもよい。
【符号の説明】
【０１９３】
１    監視システム
１００    対象装置
１１０    アプリケーション
１２０    実行環境
１３０    操作データ生成部
１３１    動作モード記憶部
１３２    ユーザ属性定義記憶部
１３３    ユーザ属性定義
１３４    生成処理部
１４０    操作データ
１４１    コンテキストＩＤ
１４２    操作群
１４３    ユーザ属性
１４４    動作モード
１４５    操作データビット列
１５０    操作データ送信部
２００    監視装置
２１０    操作データ受信部
２２０    操作データ判定部
２３０    操作パターン記憶部
２４０    操作パターン
２４２    操作群
２４３    ユーザ属性
２４４    重み
２４５    操作データビット列
２５０    操作データ記憶部
２６０    通知部
２７０    操作パターン管理部
２８０    操作データ管理部
【図１】
2015132927.tif 000003
【図２】
2015132927.tif 000004
【図３】
2015132927.tif 000005
【図４】
2015132927.tif 000006
【図５】
2015132927.tif 000007
【図６】
2015132927.tif 000008
【図７】
2015132927.tif 000009
【図８】
2015132927.tif 000010
【図９】
2015132927.tif 000011
【図１０】
2015132927.tif 000012
【図１１】
2015132927.tif 000013
【図１２】
2015132927.tif 000014
【図１３】
2015132927.tif 000015
【図１４】
2015132927.tif 000016