(57)【要約】【課題】  文書に対する不正利用を検出できるようにした不正利用検出装置およびプログラムを提供する。【解決手段】  文書操作履歴保存サーバ２００が操作履歴を管理し、クライアントＰＣ３００や複合機４００によって文書操作が行われることにより、文書操作履歴保存サーバ２００が管理する操作履歴を用いて不正操作検出サーバ１００が不正操作を検出する処理を行う。不正操作検出サーバ１００は、操作対象の文書に関与するユーザのユーザグループを生成し、そのユーザグループのうち文書に関与する頻度が高い高頻度ユーザグループをその文書に関連づけておき、文書を操作するユーザがその高頻度ユーザグループに属していない場合に不正操作として検出する。【選択図】図１
2009053896.tif 000002
【特許請求の範囲】
【請求項１】
文書に対して行われた操作の操作履歴を管理する操作履歴管理手段と、
前記操作履歴管理手段によって管理される操作履歴から前記文書に対する操作が不正操作であると判断するための前記操作履歴に係わる判断条件を生成する生成手段と、
前記文書に対する操作が前記生成手段により生成された判断条件に該当する場合に、当該操作を不正操作として検出する不正操作検出手段と
を具備する不正操作検出装置。
【請求項２】
前記生成手段は、
前記操作履歴管理手段で管理された１または複数の文書の操作者からなる操作者集合を、複数の文書の組合せに対応して作成する操作者集合作成手段と、
前記操作者集合作成手段で作成した複数の操作者集合に対して出現頻度が予め指定した一定値以上である操作者集合を、前記文書を高頻度で操作する高頻度操作者集合として設定する設定手段と
を具備し、
前記不正操作検出手段は、
文書の操作者が、前記設定手段により設定された前記高頻度操作者集合に含まれない場合に前記操作者による該当文書に対する操作を不正操作であると検出する請求項１記載の不正操作検出装置。
【請求項３】
前記不正操作検出手段は、
前記操作者集合作成手段によって作成された操作者集合と、前記設定手段により設定された前記高頻度操作者集合との類似度を算出する類似度算出手段
を具備し、
前記類似度算出手段により算出された類似度が予め指定した一定値以下の場合に、前記操作者による該当文書に対する操作を不正操作であると検出する請求項２記載の不正操作検出装置。
【請求項４】
前記類似度算出手段は、
前記操作者集合に属する操作者数と前記高頻度操作者集合に属する操作者数の内の小さい方の操作者数で前記操作者集合に属する操作者数と前記高頻度操作者集合に属する操作者数との論理積を割った値を類似度と算出する請求項３記載の不正操作検出装置。
【請求項５】
前記生成手段は、
前記操作履歴管理手段で管理する各文書の操作履歴を時系列に整列し、各文書の操作履歴に共通的に発生する操作パターンを抽出する抽出手段と、
前記抽出手段で抽出した操作パターンによる文書状態の遷移確率を算出する状態遷移確率算出手段と
を具備し、
前記不正操作検出手段は、
前記遷移確率を前記状態遷移確率算出手段により算出された遷移確率から特定し、該遷移確率が予め指定した一定値以下の場合に、当該操作を不正操作であると検出する請求項１記載の不正操作検出装置。
【請求項６】
前記状態遷移確率算出手段は、
前記抽出手段によって抽出した操作パターンの操作履歴により指定される操作者から操作者集合を作成する操作者集合作成手段と、
前記操作者集合作成手段によって作成された操作者集合を作成した操作パターンに初期状態の確率データを割り当て、最尤推定計算により状態遷移確率を算出する請求項５に記載の不正操作検出装置。
【請求項７】
前記不正操作検出手段によって検出した不正操作を管理者に対して報知する報知手段を更に具備する請求項１から６のいずれかに記載の不正操作検出装置。
【請求項８】
コンピュータを、
文書に対して行われた操作の操作履歴を管理する操作履歴管理手段、
前記操作履歴管理手段によって管理される操作履歴から前記文書に対する操作が不正操作であると判断するための前記操作履歴に係わる判断条件を生成する生成手段、
前記文書に対する操作が前記生成手段により生成された判断条件に該当する場合に、当該操作を不正操作として検出する不正操作検出手段
として機能させる不正操作検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不正操作検出装置およびプログラムに関する。
【背景技術】
【０００２】
取扱文書や顧客個人情報さらには社内での機密情報などが外部へ漏洩することを防止するために、さまざまなセキュリティ技術が用いられている。対象となる情報を暗号化することにより第三者に漏洩した場合でも参照できないようにしたり、特定のユーザのみがアクセスできるようにアクセス制限したりする方法がある。
【０００３】
その中で、ユーザがコンピュータを用いて文書を操作した場合に、その操作履歴を登録し、この操作履歴から操作を監視することで未然に情報漏えいを防止したり、万が一情報漏えいが発生した場合に漏洩した情報を特定して被害を最小限にしたりする技術がある。
【０００４】
特許文献１に示す従来技術は、外部ネットワークからのアクセスデータの内容を解析して算出した評価値を統計分布データとして記憶するとともに、正常と判断する値域と、異常と判断する値域とを区分する閾値を算出する。異常であると判断する値域である場合はもちろん、正常と判断する場合でも前記閾値近傍の値として評価されるアクセスパターンを未知の不正アクセスの可能性が高いとして通知する技術である。
【特許文献１】特開２００５−８５１５７
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、文書に対する不正操作を検出できるようにした不正操作検出装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、請求項１の発明は、文書に対して行われた操作の操作履歴を管理する操作履歴管理手段と、前記操作履歴管理手段によって管理される操作履歴から前記文書に対する操作が不正操作であると判断するための前記操作履歴に係わる判断条件を生成する生成手段と、前記文書に対する操作が前記生成手段により生成された判断条件に該当する場合に、当該操作を不正操作と検出する不正操作検出手段とを具備することを特徴とする。
【０００７】
また、請求項２の発明は、請求項１の発明において、前記生成手段は、前記操作履歴管理手段で管理された１または複数の文書の操作者からなる操作者集合を、複数の文書の組合せに対応して作成する操作者集合作成手段と、前記操作者集合作成手段で作成した複数の操作者集合に対して出現頻度が予め指定した一定値以上である操作者集合を、前記文書を高頻度で操作する高頻度操作者集合として設定する設定手段とを具備し、前記不正操作検出手段は、文書の操作者が、前記設定手段により設定された前記高頻度操作者集合に含まれない場合に前記操作者による該当文書に対する操作を不正操作であると検出することを特徴とする。
【０００８】
また、請求項３の発明は、請求項２の発明において、前記不正操作検出手段は、前記操作者集合作成手段によって作成された操作者集合と、前記設定手段により設定された前記高頻度操作者集合との類似度を算出する類似度算出手段を具備し、前記類似度算出手段により算出された類似度が予め指定した一定値以下の場合に、前記操作者による該当文書に対する操作を不正操作であると検出することを特徴とする。
【０００９】
また、請求項４の発明は、請求項３の発明において、前記類似度算出手段は、前記操作者集合に属する操作者数と前記高頻度操作者集合に属する操作者数の内の小さい方の操作者数で前記操作者集合に属する操作者数と前記高頻度操作者集合に属する操作者数との論理積を割った値を類似度と算出することを特徴とする。
【００１０】
また、請求項５の発明は、請求項１の発明において、前記生成手段は、前記操作履歴管理手段で管理する各文書の操作履歴を時系列に整列し、各文書の操作履歴に共通的に発生する操作パターンを抽出する抽出手段と、前記抽出手段で抽出した操作パターンによる文書状態の遷移確率を算出する状態遷移確率算出手段とを具備し、前記不正操作検出手段は、前記遷移確率を前記状態遷移確率算出手段により算出された遷移確率から特定し、該遷移確率が予め指定した一定値以下の場合に、当該操作を不正操作であると検出することを特徴とする。
【００１１】
また、請求項６の発明は、請求項５の発明において、前記状態遷移確率算出手段は、前記抽出手段によって抽出した操作パターンの操作履歴により指定される操作者から操作者集合を作成する操作者集合作成手段と、前記操作者集合作成手段によって作成された操作者集合を作成した操作パターンに初期状態の確率データを割り当て、最尤推定計算により状態遷移確率を算出することを特徴とする。
【００１２】
また、請求項７の発明は、請求項１から６のいずれかの発明において、前記不正操作検出手段によって検出した不正操作を管理者に対して報知する報知手段を更に具備することを特徴とする。
【００１３】
また、請求項８の発明は、コンピュータを、文書に対して行われた操作の操作履歴を管理する操作履歴管理手段、前記操作履歴管理手段によって管理される操作履歴から前記文書に対する操作が不正操作であると判断するための前記操作履歴に係わる判断条件を生成する生成手段、前記文書に対する操作が前記生成手段により生成された判断条件に該当する場合に、当該操作を不正操作として検出する不正操作検出手段として機能させることを特徴とする。
【発明の効果】
【００１４】
本発明の請求項１によれば、文書操作によって動的に変更される情報を用いて文書に対する不正操作を検出することができるようになるという効果を奏する。
【００１５】
また、請求項２によれば、文書の操作頻度が多い高頻度ユーザグループに属する操作者以外の操作者による操作を不正操作とすることができるようになるという効果を奏する。
【００１６】
また、請求項３によれば、操作対象の文書に設定された高頻度ユーザグループと文書を操作するユーザが属するユーザグループが類似していないことによって不正操作を検出することが可能となるという効果を奏する。
【００１７】
また、請求項４によれば、ユーザグループ間の類似度を算出することが可能になるという効果を奏する
また、請求項５によれば、文書操作前の文書状態から文書操作を行った文書状態への遷移確率によって不正操作を検出することが可能になるという効果を奏する。
【００１８】
また、請求項６によれば、より精度の高い遷移確率によって不正操作を検出することが可能になるという効果を奏する。
【００１９】
また、請求項７によれば、不正操作が検出されることによって管理者がそれを確認することができるようになるという効果を奏する。
【００２０】
また、請求項８によれば、文書操作によって動的に変更される情報を用いて文書に対する不正操作を検出することができるようになるという効果を奏する。
【発明を実施するための最良の形態】
【００２１】
以下、本発明に係わる不正操作検出装置およびプログラムの一実施例を添付図面を参照して詳細に説明する。
【００２２】
図１は、本発明の実施の形態に係わる不正操作検出装置およびプログラムを適用して構成した不正操作検出システムのシステム構成図の一例である。
【００２３】
図１において、この不正操作検出システムは、文書操作履歴保存サーバ１００、不正操作検出サーバ２００、クライアントＰＣ３００、複合機４００を具備して構成し、文書操作履歴保存サーバ１００が保存する操作履歴を用いることにより文書に対して行われた不正操作を検出するシステムである。なお、以下で示す不正操作とは、不正な操作である可能性が高い操作をも含み、以下で不正操作と示す場合にはこれも含むとする。すなわち、不正操作および不正操作である可能性が高い操作を不正操作であるとして検出する。
【００２４】
クライアントＰＣ３００および複合機４００は、文書を操作する端末の例であって、クライアントＰＣ３００では文書に対して「閲覧」、「参照」、「文書名称変更」、「印刷要求」などの操作が可能であり、複合機４００では、「文書の読み取り」、「印刷出力」、「複写（コピー)」、「ファクシミリ送信」などの操作が可能である。
【００２５】
本不正操作検出システムにおいて、文書操作履歴保存サーバ１００で保存する操作履歴は、操作対象の文書ごとに保存され、クライアントＰＣ３００や複合機４００などを用いて文書を操作することにより記録される。各操作履歴は、文書を識別する文書ＩＤに対して操作内容、操作日時、操作者、操作元文書情報などが対応付けられている。
【００２６】
この操作元文書情報は、操作元となる文書を識別する情報であって、操作元の文書とその文書を操作した後に生成される文書（操作後文書）とが相互関係を有することとなる。
【００２７】
以下で、文書操作履歴保存サーバ１００が管理する操作履歴の一例を図２を用いて説明する。
【００２８】
図２は、本発明の実施の形態に係わる不正操作検出システムで用いる文書の操作履歴を生成する処理の手順を示す図である。
【００２９】
図２（ａ）には、クライアントＰＣ３００にインストールされたfooアプリケーションを用いて作成した「sample.foo」という名称の文書の操作履歴を作成する処理の手順を示している。
【００３０】
この文書「sample.foo」にハッシュ関数などの演算式を適用して演算値（ハッシュ値）を算出する。そのハッシュ関数の一例として「ＳＨＡ−２５６」があり、このハッシュ関数「ＳＨＡ−２５６」を適用して算出した識別情報（以下、「文書ハッシュ値」）が「bodyhash」であって、これは文書コンテンツそのものの状態を識別する情報である。つまり、文書の内容が更新されることにより更新前の文書とは異なる新たなハッシュ値が算出される。
【００３１】
このようにして文書に対する文書ハッシュ値「bodyhash」が算出されると、続いて、文書をバインドし、算出された文書ハッシュ値「bodyhash」を含むＸＭＬ（Extensible Markup Language）形式の操作履歴を作成する。この操作履歴の一例を以下に示す。
【００３２】
なお、以下に示す操作履歴の各ステップの左端には説明に用いる行番号を示している。
【００３３】
01  <doc>
02   <body>bodyhash</body>
03   <base>      </base>
04   <info>
05    <user>user_A</user>
06    <time>time_A</time>
07    <method>新規作成</method>
08   </info>
09  </doc>
この操作履歴は、01行目の<doc>タグから09行目の</doc>タグで囲まれたＸＭＬ形式の情報である。02行目に記載された<body>タグの要素として、文書にハッシュ関数を適用して算出した文書ハッシュ値「bodyhash」が指定され、03行目の<base>タグの要素として、以下で説明する演算処理を行うことにより算出される「did」の値が指定される。
【００３４】
この値「did」は、02行目に記載された<body>タグの要素である文書ハッシュ値「bodyhash」を算出した文書の操作履歴情報から算出される情報であって、操作前の文書と操作後の文書との相互関係を確立するために用いられる情報である。
【００３５】
また、04行目から08行目までの<info>タグ内に設けられた05行目の<user>タグの要素に、文書を操作したユーザの情報である「user_A」が指定され、06行目の<time>タグの要素に、時間情報である「time_A」が指定され、07行目の<method>タグの要素に、文書に対して行われた操作の種類を示す情報が指定される。
【００３６】
ちなみに、07行目の<method>タグに指定される要素として、新たに操作履歴を作成したことを示す「新規作成（create）」、操作履歴を管理する状態の文書に対して更新や編集などの操作が行われたことを示す「編集（modified）」、文書の参照・閲覧操作が行われたことを示す「閲覧（not modified）」、文書に対して印刷操作が行われたことを示す「印刷（printed）」などがある。
【００３７】
上記に示すＸＭＬの例では、文書に対する操作履歴を新たに作成したことを示す「新規作成」が<method>タグの要素として指定されており、このように<method>タグの要素が「新規作成」である場合には、<base>タグの要素が「（空白）」となる。これは、<base>タグの要素はすでに作成済みの操作履歴にハッシュ値を適用して算出される文書ハッシュ値のためである。
【００３８】
このようにして上記のようなＸＭＬ形式からなる操作履歴情報が新規に作成され、文書操作履歴保存サーバ１００に保存される。
【００３９】
なお、上記の例には示していないが、操作の種類を示す情報としてユーザが操作した機器や場所を操作履歴として保存することも可能である。この場合、機器を特定する情報としてはＭＡＣアドレスやＩＰアドレス等を用いることが可能である。また、場所を示す情報としては、予め機器の設置されている場所の情報を、機器を特定する情報と対応付けて保持しておくことにより、機器に対応する場所の情報を読み出して履歴として用いることが可能であるし、機器にグローバル・ポジショニング・システムの受信機能が備えられている場合は、機器操作時の位置情報を取得して履歴として用いることも可能である。
【００４０】
続いて、図２（ｂ）は、図２（ａ）に示すようなＸＭＬ形式の操作履歴を保存している文書「sample.foo」に対して、その文書内容を変更や更新する編集操作を行うことにより文書の操作履歴を作成する処理の手順を示している。
【００４１】
まず、その文書「sample.foo」に「ＳＨＡ−２５６」などのハッシュ関数を適用して文書ハッシュ値「bodyhash2」を算出する。クライアントＰＣ３００によって行われた操作内容が編集操作であることから、算出した文書ハッシュ値「bodyhash2」が編集操作前の文書ハッシュ値「bodyhash」と異なる新たなハッシュ値であって、以下に示すＸＭＬ形式の操作履歴を作成する。
【００４２】
01  <doc>
02   <body>bodyhash2</body>
03   <base>did</base>
04   <info>
05    <user>user_A</user>
06    <time>time_B</time>
07    <method>編集</method>
08   </info>
09  </doc>
この操作履歴情報の03行目の<base>タグ内の要素である「did」は、文書の編集操作を行う前の操作履歴にハッシュ関数を適用して算出したハッシュ値である。また、06行目の<time>タグ内の要素である「time_B」は操作履歴を作成した時間を示し、07行目の<method>タグ内の要素として、「編集」を指定して編集操作を行ったことを示す。
【００４３】
これによりＸＭＬ形式からなる操作履歴が作成され、操作履歴間の相互関係が<base>タグの要素によって関連付けられる。この操作履歴も文書操作履歴保存サーバ１００に保存される。ちなみに、この操作履歴の<base>タグの要素が操作元文書情報を示している。
【００４４】
このようにして作成された操作履歴の関係を、木構造によって示したものを図３に示す。
【００４５】
図３は、ある文書に対する操作履歴を木構造で表した図である。この図３に示す木構造は、ルート文書に対して８回の操作を行うことによって作成された８個の操作履歴（操作履歴３１〜操作履歴３８）が相互関係を有する構造で構成されている。
【００４６】
文書が新規に作成され、操作履歴が新規作成された状態にある文書に対して、閲覧操作および編集操作を行うことにより「操作履歴３１」および「操作履歴３８」が作成される。また、「操作履歴３１」が作成された文書に対して閲覧操作を行うことにより「操作履歴３２」が作成される。このようにして、各操作に対してそれぞれ操作履歴が作成される。
【００４７】
なお、図３に示す操作履歴では、操作履歴３８に示す操作が不正操作であると検出した場合の例を示している。つまり、以下に示す不正操作の検出処理によって、不正操作であることが検出された場合を示している。
【００４８】
以上に示すような操作履歴を用いて不正操作の検出処理を行う。
【００４９】
図４は、本発明の実施の形態に係わる不正操作検出システムの処理の概要を説明する概要説明図である。
【００５０】
本発明の不正操作検出システムでは、操作履歴保存サーバ１００が上記に示すような操作履歴を保存しておき（４０１）、操作履歴保存サーバ１００に保存された操作履歴を用いて不正操作検出サーバ２００が動的モデルを生成する（４０２）。そして、不正操作検出サーバ２００が、生成した動的モデルを用いることにより実行された操作が不正操作である場合にこれを検出する（４０３）。
【００５１】
この動的モデルは、文書に対して所定の操作が行われることにより作成される操作履歴を用いて、動的に生成される情報群であり、この動的モデルの例を以下の実施例１および実施例２に示す。
【００５２】
実施例１では、文書の操作に関与したユーザからなるユーザグループを動的に作成し、そのユーザグループを用いて不正操作を検出する処理を示す。また、実施例２では、ある文書を操作したユーザ同士の確率的関係を動的に作成し、そのユーザ同士の確率的関係から不正操作を検出する処理を示す。
【００５３】
すなわち、本不正操作検出システムは、操作履歴から動的モデルを作成し、作成した動的モデルを用いることにより不正操作の検出を行う。
【実施例１】
【００５４】
本実施例１では、文書を操作した１または複数のユーザを同一のグループにグルーピングし、そのユーザグループを用いて不正操作を検出する処理を示す。
【００５５】
図５は、本発明の実施の形態における不正操作検出システムの詳細な構成を示すシステム構成図である。
【００５６】
図５において、不正操作検出システムは、ユーザ操作検出部１０、コンテクスト検出部１１、操作履歴保存部１２、操作履歴作成部１３、不正操作検出部１４、処理実行部１５、解析結果保持部１６、操作履歴解析部１７を具備して構成される。
【００５７】
図１に示すシステム構成図を例にすると、クライアントＰＣ３００がユーザ操作検出部１０、コンテクスト検出部１１における機能を実現し、文書操作履歴保存サーバ２００が操作履歴保存部１２、操作履歴作成部１３における機能を実現し、不正操作検出サーバ１００が不正操作検出部１４、処理実行部１５、解析結果保持部１６、操作履歴解析部１７における機能を実現する例を示している。
【００５８】
操作履歴保存部１２では、上記に示すような操作履歴を保存しており、操作履歴は、不正操作検出部１４による不正操作の検出処理の際に参照される情報である。
【００５９】
ユーザがＵＩ（User Interface）を用い、文書に対して「閲覧・編集・印刷要求・ファイル名称変更」などの所定の操作を行うと、ユーザ操作検出部１０では、操作者であるユーザを識別して、操作対象のそのユーザが文書に対して実行した操作の内容を検出する。
【００６０】
操作者であるユーザは、文書の操作前に、認証サーバ（図示せず）との通信により認証された状態にあり、ユーザ操作検出部１０では、認証したユーザ情報に含まれるユーザＩＤによってユーザを識別する。
【００６１】
このユーザ操作検出部１０では、文書操作を検出するための監視機構が稼動しており、ユーザ操作を検出するとその監視機構により操作履歴作成部１３や不正操作検出部１４に逐次、その旨を通知するとともに、所定の情報を送信する。
【００６２】
ユーザ操作検出部１０が文書に対する操作を検出すると、操作履歴作成部１３に操作履歴の作成指示を行う。作成指示を受信した操作履歴作成部１３では、上記に示すような操作履歴を作成して操作履歴保存部１２にその操作履歴を保存する。
【００６３】
また、不正操作検出部１４では、ユーザ操作検出部１０が文書に対する操作を検出すると、その操作が不正な操作である場合にこれを検出する処理を行う。この不正操作検出部１４によって行われる処理を図６から図１１を用いて以下で、詳細に説明する。
【００６４】
この不正操作検出部１４が不正操作を検出すると、処理実行部１５へ不正操作の検出時における処理の実行要求を行うとともに、操作履歴作成部１３へとその旨を通知する。このとき操作履歴作成部１３では、ユーザ操作検出部１０で検出した操作が不正な操作であるという通知を受けることにより、操作履歴保存部１２が保存している当該操作に対する操作履歴に、この操作が不正な操作であるということを記録する。
【００６５】
なお、不正操作検出部１４が不正操作であることを検出した場合に処理実行部１５によって行われる不正操作時処理として、例えば、その操作を行ったユーザに不正操作を行っているという旨の警告を行う画面を表示したり、監視者や管理者などに不正操作が行われたことを通知したりする処理を行う。なお、後者の場合、監視者や管理者の操作端末上に図３に示すような画面を表示する。
【００６６】
図３は、操作履歴３８が示す操作が不正操作であると検出した状態の画面を示しており、「×（バツ）」印が、不正操作であると検出した操作履歴３８に示された状態を示している。
【００６７】
これにより監視者や管理者がその操作履歴に対する操作を把握して危機管理を行う。この危機管理に際して、監視者や管理者は、その不正操作であると検出された操作の操作履歴の解析要求を操作解析部１７へ要求する。操作解析部１７では、操作履歴保存部１２に保存されている不正操作と検出した操作の操作履歴を解析し、その操作履歴の詳細を監視者および管理者に開示する。
【００６８】
また、操作履歴解析部１７による操作履歴の解析結果を解析結果保持部１６で保持する。
【００６９】
このようにして不正操作を検出する。
【００７０】
以下に、図５に示す不正操作検出部１４で文書に対する不正操作を検出する処理（（１）〜（３））の詳細を説明する。
【００７１】
不正操作検出部１４では、操作履歴保存部１２で保存する操作履歴の集合（以下、「操作履歴集合」）を用いて文書の不正操作を検出する。上記にも示すように操作履歴は文書ごとに保存しており、操作対象の文書の操作履歴に対して以下の処理を行うことでその文書に対する不正操作を検出する。
【００７２】
まず、（１）操作履歴を保存する文書のうち任意の複数の文書を取り出し、これらの文書に関連するユーザの論理積を計算してユーザグループを形成する処理を行い、形成したユーザグループが所定の条件を満たす場合にはさらにそのユーザグループを高頻度ユーザグループへ登録するという処理を行う。
【００７３】
この高頻度ユーザグループは、ある文書に高い頻度で関与しているユーザのグループを示すものである。
【００７４】
次に、ユーザグループが作成されている状態で、（２）文書に対する不正操作を検出する検出処理を行う。この検出処理は次の２つの処理から構成され、１つ目の処理は、（２−１）文書を操作したユーザが、その文書に関連付けられた高頻度ユーザグループに属しないユーザである場合に、その操作を不正操作として検出する処理であり、２つ目の処理は、（２−２）文書を操作したユーザが属するユーザグループと、その文書に関連付けられている高頻度ユーザグループとの類似度を計算して、その類似度がある一定値以上とならない場合にその操作を不正操作として検出する処理である。
【００７５】
なお、これらの２つの検索処理を同時に実行することにより不正操作を検出するような構成であってもよいし、いずれか一方のみを実行することにより不正操作を検出するような構成であってもよい。
【００７６】
そして、上記２つの処理（上記の（１）と（２））とは独立して、（３）新たな文書操作が発生した場合には、その文書の操作を行ったユーザが属するユーザグループを再形成する処理を行う。この処理では、その文書を操作したユーザとその文書から作成された状態にあるユーザグループのユーザとの論理和を計算して、操作後の文書に対するユーザグループを新たに形成する。また、新たに作成したユーザグループのユーザとその文書に関連付けられた高頻度ユーザグループのユーザとの論理積を計算して作成されるユーザグループが予め指定した所定の条件を満たすかを判断する。条件を満たす場合には、そのユーザグループを高頻度ユーザグループへ登録して文書に関連付ける処理を行う。
【００７７】
以下で、図５に示す不正操作検出部１４によって行われる不正操作の検出処理の詳細を図６から図１１を用いて詳細に説明する。
【００７８】
まず、図６と図７を用いて「（１）ユーザグループを作成してそのユーザグループが所定の条件を満たすことにより高頻度ユーザグループである場合に文書に関連付ける処理」を説明する。
【００７９】
図６には、文書を操作したユーザのユーザグループを作成し、そのユーザグループが所定の条件を満たす場合に高頻度ユーザグループとして登録する処理の詳細を示している。図６の左端には説明に用いるための行番号を示している。
【００８０】
図６において、01行目から07行目には、図１に示す文書操作履歴保存サーバ２００で保存されている操作履歴集合に操作履歴が含まれる任意の複数の文書（図６に示す例では文書１（aDoc1）と文書２（aDoc2）の２つの文書）に対して、これらの文書を操作したユーザ（文書１を操作したユーザ（aDoc1.users）、文書２を操作したユーザ（aDoc2.users））の集合積（aUG）を計算し、この集合積（aUG）によって表されるユーザグループに対して設定される文書に関与した頻度のレベル（aUG.occurrence）を１段階上げて、その頻度のレベル（aUG.occurrence）をユーザグループに設定して、集合積（aUG）で表されるユーザグループを既存のユーザグループの１つに登録するという処理を示している。
【００８１】
このユーザの集合積（aUG）は、文書に関与する関与者のグループを示すものであってユーザグループを示している。
【００８２】
08行目には、登録済みの高頻度ユーザグループを呼び出す処理を示している。
【００８３】
09行目から11行目には、先の処理でユーザグループに関連付けた関与頻度のレベル（aUG.occurrence）が予め指定した一定値（MIN_SUPPORT）以上であるか判定し、一定値（MIN_SUPPORT）以上であると判定されると、そのユーザグループ（aUG）を高頻度ユーザグループに登録する処理を示している。
【００８４】
図７には、操作対象の文書に高頻度ユーザグループに属するユーザグループを対応付ける処理の詳細を示している。図７も同様に左端には説明に用いるための行番号を示している。
【００８５】
図７において、操作対象の文書に関与したユーザの集合（doc.users）を包含する高頻度ユーザグループ（aFUG）が存在するかを判断し、その高頻度ユーザグループ（aFUG）が存在する場合に、その高頻度ユーザグループをその文書に関連付けるという処理を示している。
【００８６】
この処理によって、文書には高頻度ユーザグループが関連付けられることになり、これは、この高頻度ユーザグループに属するユーザが当該文書に対して高頻度で操作を行っていることを示す。
【００８７】
次に、図８、図９を用いて「（２）文書に対する不正操作を検出する検出処理」を説明する。
【００８８】
図８は、「（２−１）高頻度ユーザグループに属しないユーザにより文書操作が行われた場合に不正操作として検出する処理」の詳細を示している。図８も同様に左端には説明に用いるための行番号を示している。
【００８９】
図８では、ある文書に対して操作が行われると、文書のユーザが、その文書に関連付けられている高頻度ユーザグループに属するユーザであるかを判断する。この判断によって文書のユーザがその高頻度ユーザグループに属していないと判断される場合にはそのユーザによる操作が不正操作であると検出する（"Abnormal"）。
【００９０】
もちろん、文書の操作者が高頻度ユーザグループに属している場合には、高頻度で文書を操作するユーザの一人であると判断できることから不正操作であるとは検出しない（"Normal"）。
【００９１】
なお、文書の操作者が高頻度ユーザグループに属している場合であっても、文書の操作が行われた時間帯、操作に使用した機器、操作が行われた場所やそれらの組み合わせに基づき、不正操作を検出するように設定することも可能である。この場合は、操作履歴を分析することにより、グループ毎に操作が行われる時間帯、機器、場所のそれぞれに不正か否かを判断するための閾値を設定しておくことにより、不正操作の検出が可能となる。
【００９２】
図９は、「（２−２）ユーザグループ同士の類似度によって不正操作を検出する処理」の詳細を示している。図９も同様に左端には説明に用いるための行番号を示している。
【００９３】
図９では、文書に対して操作が行われると、その操作を行ったユーザが属するユーザグループ（aFUG）と、その文書に関連付けられている高頻度ユーザグループ（aDFUG）とがどれだけ類似しているものであるかを判断するために類似度（Sim）を計算する。その類似度（Sim）が予め指定した一定値（MIN_SIM）以上である場合、すなわち両者のユーザグループが類似していると判断する場合には、類似するユーザグループに属するユーザによる操作であるとして不正操作としては検出しない（"Normal"）。
【００９４】
それに対して、類似度（Sim）が予め指定した一定値（MIN_SIM）よりも小さい場合、すなわち両者のユーザグループが類似していないと判断する場合には、そのユーザによる操作は不正操作であると検出する（"Abnormal"）。
【００９５】
なお、この類似度（Sim）は、図１０に示す演算式によって計算される。
【００９６】
図１０は、ユーザグループ間の類似度（Sim）を算出するための演算式である。
【００９７】
図１０に示す「a」と「b」は類似度を算出する各ユーザグループを示し、図９に示す例では、「a」がユーザの属するユーザグループ「aFUG」を示し、「b」が文書に関連付けられた高頻度ユーザグループ「aDFUG」を示している。
【００９８】
この類似度（Sim）を算出する演算式の分子には、ユーザグループ「a」のユーザ数とユーザグループ「b」のユーザ数の積の数値を表しており、分母には、ユーザグループ「a」のユーザ数とユーザグループ「b」のユーザ数の小さい方の値を算出することを表しており、これによって算出される値が類似度（Sim）である。
【００９９】
図１１は、図６から図１０に示す処理とは独立して行われる処理であって、「（３）新たな文書操作が発生した場合には、その文書の操作を行ったユーザが属するユーザグループを再形成する処理」の詳細を示している。図１１も同様に左端には説明に用いるための行番号を示している。
【０１００】
01行目には、文書（doc）を操作（aOP）したユーザ（user）をその文書に対して設けられたユーザグループに追加する処理を示している。
【０１０１】
02行目から05行目には、文書を操作したユーザが追加されたユーザグループ（（aOP.doc）.users）と文書に関連付けられた高頻度ユーザグループ（aDoc.users）との論理積を計算して、新たなユーザグループ（aUG）を作成して既存のユーザグループに登録する処理を示している。
【０１０２】
06行目から12行目には、作成した新たなユーザグループ（aUG）の関与頻度レベル（aUG.occurrence）が一定値（MIN_SUPPORT）以上である場合、そのユーザグループ（aUG）を文書に関連付けられた高頻度ユーザグループに追加する処理を示している。
【０１０３】
このようにして不正操作を検出する。
【０１０４】
図１２は、本発明の実施の形態における不正操作検出システムのデータ構造の一例を示す図である。
【０１０５】
図１２は、図１に示す文書操作履歴保存サーバ２００におけるデータ構造を示しており、文書操作履歴保存サーバ２００にはＩＰアドレスが設定された構造である。
【０１０６】
また、ＩＰアドレスが設定された文書操作履歴保存サーバ２００には、「操作履歴クラス（１２０１）」、「利用者クラス（１２０２）」が定義されている。「操作履歴クラス（１２０１）」は操作履歴を管理する情報を定義するクラスであり、String型の「履歴ＩＤ」、String型の「利用者ＩＤ」、String型の「操作名」、Date&Time型の「操作日時」、String型の「派生元文書ＩＤ」、String型の「コンテンツＩＤ」、String型の「ルート履歴ＩＤ」をメンバとする構成である。
【０１０７】
また、「利用者クラス（１２０２）」は文書を操作する利用者の情報を定義するクラスであり、String型の「利用者ＩＤ」、String型の「利用者名」、String型の「利用者メールアドレス」をメンバとする構成である。
【０１０８】
すなわち、この文書操作履歴保存サーバ２００は、履歴ＩＤ、利用者ＩＤ、操作名、操作日時、派生元文書ＩＤ、コンテンツＩＤ、ルート履歴ＩＤからなる操作履歴の情報と、利用者ＩＤ、利用者名、利用者メールアドレスからなる利用者の情報とから構成されることを示す。
【０１０９】
図１３は、本発明の実施の形態における不正操作検出システムのデータ構造の一例を示す図である。
【０１１０】
図１３は、図１に示す不正操作検出サーバ１００におけるデータ構造を示しており、不正操作検出サーバ１００にはＩＰアドレスが設定された構造である。
【０１１１】
また、ＩＰアドレスが設定された不正操作検出サーバ１００には、「ユーザグループクラス」（１３０１）、「文書別関連ユーザグループクラス」（１３０３）が定義されている。「ユーザグループクラス（１３０１）」は作成されたユーザグループを定義するクラスであり、String型のユーザグループＩＤをメンバとする構成であり、また「文書別関連ユーザグループクラス（１３０３）」は操作対象の文書を定義するクラスであり、String型の文書ＩＤをメンバとする構成である。
【０１１２】
さらに、「ユーザグループクラス（１３０１）」には、「ユーザクラス（１３０２）」が定義され、この「ユーザクラス（１３０２）」は、「ユーザグループクラス（１３０１）」に定義されたユーザグループに属するユーザのユーザＩＤをメンバとする構成である。また、「文書別関連ユーザグループクラス（１３０３）」には、「高頻度ユーザグループクラス（１３０４）」が定義され、この「高頻度ユーザグループクラス（１３０４）」は「文書別関連ユーザグループクラス（１３０３）」に定義された操作対象の文書ＩＤをメンバとする構成である。
【０１１３】
すなわち、不正操作検出サーバでは、作成した１または複数のユーザグループをユーザグループＩＤによって管理し、ユーザグループＩＤによって識別される各ユーザグループには、そのユーザグループに属するユーザをユーザＩＤによって管理している。また、操作対象の文書を文書ＩＤによって管理し、その文書ＩＤによって識別される各文書に高頻度ユーザグループのユーザグループをユーザグループＩＤによって管理している。
【０１１４】
図１４は、本発明の実施の形態における不正利用検出システムの詳細な処理の流れを示すフローチャートである。
【０１１５】
図１４では、文書に関与する操作者をユーザグループにグルーピングし、そのユーザグループが高頻度ユーザグループの場合には文書にその高頻度ユーザグループを関連付ける処理である。
【０１１６】
まず、操作履歴を保存する任意の文書を選択し（１４０１）、その文書の操作履歴を用いてユーザグループを作成する（１４０２）。
【０１１７】
次に、作成したユーザグループが文書にどれくらい関与したかを示す頻度を計算する（１４０３）。計算した結果、その頻度が一定の値以上であることにより高頻度であるかを判断する（１４０４）。
【０１１８】
そして、高頻度であると判断する場合（１４０４でＹＥＳ）には、そのユーザグループを高頻度ユーザグループとして文書に関連付ける（１４０５）。また高頻度であると判断できない場合（１４０４でＮＯ）には、処理を終了する。
【０１１９】
図１５は、本発明の実施の形態における不正利用検出システムの詳細な処理の流れを示すフローチャートである。
【０１２０】
図１５では、図１４に示すようなフローによって作成したユーザグループを用いて行う不正操作の検出処理であって、ユーザによる文書操作を検出すると処理が開始される。
【０１２１】
まず、ユーザによる文書操作を検出すると（１５０１でＹＥＳ）、図１７に示すような不正操作検出処理Ａを実行し（１５０２）、また図１８に示すような不正操作検出処理Ｂを実行する（１５０３）。
【０１２２】
次に、これらの不正操作検出処理で少なくとも一方が、不正操作を検出したかを判断して（１５０４）、不正操作が検出された場合（１５０４でＹＥＳ）には、警告画面を操作者に対して表示したり、監視者および管理者に不正操作が実行されたことを示す画面を表示したりする不正操作時処理を行う（１５０５）。
【０１２３】
不正操作が検出されない場合（１５０４でＮＯ）には、その操作を許可する。
【０１２４】
なお、図１５は、図１７に示すような不正操作検出処理Ａと図１８に示すような不正操作検出処理Ｂを同時に実行するような処理を示しているが、図１６に示すようにいずれかを選択して不正操作を検出する処理を行ってもよい。
【０１２５】
図１６は、図１５に示すフローチャートと類似し、本発明の実施の形態における不正利用検出システムの詳細な処理の流れを示す他のフローチャートである。
【０１２６】
図１６において、ユーザによる文書操作を検出すると（１６０１でＹＥＳ）、実行するいずれかの不正操作検出処理（不正操作検出処理Ａ、不正操作検出処理Ｂ）を選択する（１６０２）。この選択処理では、操作対象の文書に係る属性、例えば文書名称や作成日時や作成者などからいずれかの処理が自動的に選択されるように構成してもよい。
【０１２７】
もちろん、予め設定した不正操作検出処理を実行するような構成であってもよい。
【０１２８】
この選択処理により、不正操作検出処理Ａが選択されたかを判断する（１６０３）。不正操作検出処理Ａが選択された場合（１６０３でＹＥＳ）には図１７に示すような処理を実行する（１６０４）。また、不正操作検出処理Ａが選択されていない場合（１６０３でＮＯ）には、続いて、不正操作検出処理Ｂが選択されたかを判断する（１６０５）。
【０１２９】
不正操作検出処理Ｂが選択された場合（１６０５ＹＥＳ）には図１８に示すような処理を実行する（１６０６）。また、不正操作検出処理Ｂが選択されていない場合（１６０５でＮＯ）には、いずれの不正操作検出処理もが選択されていないことを示すエラー処理を行う（１６０７）。
【０１３０】
そして、いずれかが選択されると、選択された不正操作検出処理によって不正操作を検出したかを判断して（１６０８）、不正操作を検出すると（１６０８でＹＥＳ）、不正操作時処理を実行する（１６０９）。また、不正操作が検出されない場合（１６０８でＮＯ）には文書の操作を許可する。
【０１３１】
図１７は、第１の不正操作検出処理である「不正操作検出処理Ａ」の詳細な流れを示すフローチャートである。
【０１３２】
図１７において、文書に対する操作を検出すると処理が開始され、その文書を操作したユーザを特定する（１７０１）。続いて、その文書に関連付けられている高頻度ユーザグループのメンバに、特定したユーザが所属するかを判断する（１７０２）。
【０１３３】
この判断処理によって、高頻度ユーザグループのメンバにそのユーザが所属すると判断される場合（１７０２でＹＥＳ）には、不正操作が検出されないことを示す「Normal」を設定して処理を終了する。
【０１３４】
それに対して、高頻度ユーザグループのメンバにそのユーザが所属しないと判断されると場合（１７０２でＮＯ）には、不正操作が検出されたことを示す「Abnormal」を設定して処理を終了する。
【０１３５】
ちなみに、図１５に示すフローチャートのステップ１５０４の不正操作を検出したかの判断処理と、図１６に示すフローチャートのステップ１６０８の不正操作を検出したかの判断処理は、「Normal」か「Abnormal」かのいずれかであるかを判断する処理である。
【０１３６】
図１８は、第２の不正操作検出処理である「不正操作検出処理Ｂ」の詳細な流れを示すフローチャートである。
【０１３７】
図１８において、文書に対する操作を検出すると処理が開始され、その文書を操作したユーザを特定する（１８０１）。続いて、特定したユーザが所属するユーザグループと、操作対象となった文書に関連付けられた高頻度ユーザグループとのグループ間における類似度を計算する（１８０２）。この計算方法として、図１０に示すような演算式を適用する方法がある。
【０１３８】
そして、類似度を算出すると、算出した類似度が予め指定した一定値（MIN_SIM）以上であるかを判断する（１８０３）。その一定値以上であると判断される場合（１８０３でＹＥＳ）には、ユーザが所属するユーザグループと文書に関連付けられた高頻度ユーザグループとが類似していると判断できることから、不正操作が検出されないことを示す「Normal」を設定して（１８０４）処理を終了する。
【０１３９】
それに対して、算出した類似度が予め指定した一定値（MIN_SIM）以上であると判断されない場合（１８０３でＮＯ）には、ユーザが所属するユーザグループと文書に関連付けられた高頻度ユーザグループとが類似していないことから、不正操作が検出されたことを示す「Abnormal」を設定して（１８０５）処理を終了する。
【実施例２】
【０１４０】
本実施例２では、ある文書を操作した１または複数のユーザの関係を確率的に算出することにより、確率遷移から逸脱したユーザによる操作を不正操作として検出する処理を示している。本実施例２における構成は、上記の実施例１で説明した図１に示す構成と同様である。
【０１４１】
すなわち、図１において、文書操作履歴保存サーバ２００では上記に示すような操作履歴を管理しており、クライアントＰＣ３００や複合機４００によって文書操作が行われることにより不正操作検出サーバ１００が不正操作を検出する処理を行う。
【０１４２】
このとき、不正操作検出サーバ１００では、文書操作履歴保存サーバ２００が保存する操作履歴を用いて以下に示す不正操作検出処理を行う。
【０１４３】
本実施例２では、不正操作検出サーバ１００により行われる不正操作の検出処理を説明する。
【０１４４】
不正操作検出サーバ１００によって行われる不正操作の検出処理は、個々の文書に対して高頻度で行われる操作の操作パターンを検出し、その操作パターンをもとにして、操作による状態遷移の確率を定量化した情報を用いることにより行われる。すなわち、その操作パターンが表す確率が一定の値以下である操作が行われることにより、これを不正操作と検出する。
【０１４５】
ある文書（例えば「文書Ｘ」、「文書Ｙ」、「文書Ｚ」）に対して、クライアントＰＣ３００や複合機４００を用いることにより所定の操作を行うと、実施例１で示すような操作履歴が各文書ごとに作成され、操作履歴保存サーバ２００に保存される。
【０１４６】
不正操作検出サーバ１００では、操作履歴保存サーバ２００に保存された操作履歴を用いることにより、文書（文書Ｘ、文書Ｙ、文書Ｚ）ごとに図３に示すような操作履歴間の関係を示す木構造を作成する。
【０１４７】
各文書に対してそれぞれ木構造が作成されると、続いて、操作が行われた順に時系列に並び替えを行うことで「順序ツリー」を作成する。この順序ツリーの例を図１９に示す。この図１９の順序ツリーを構成する各操作履歴のノードには操作者が関連付けられており、文書操作によるユーザ遷移が管理される。
【０１４８】
図１９に示す順序ツリーは、「文書Ｘ」、「文書Ｙ」、「文書Ｚ」の各文書の操作履歴を時系列で配列した木構造であって、「文書Ｘ」に対する順序ツリーを図１９（ａ）に示し、「文書Ｙ」に対する順序ツリーを図１９（ｂ）に示し、「文書Ｚ」に対する順序ツリーを図１９（ｃ）に示す。
【０１４９】
まず、図１９（ａ）に示す「文書Ｘ」の順序ツリーは、「文書Ｘ」に対する操作履歴をノードとする構造であって、各ノードを区別するために番号を付与している。まず、操作履歴Ｘ１のノードはユーザＢが操作したことを示す操作履歴であって、この操作履歴Ｘ１は「文書Ｘ」に対する操作履歴のノードを示す。
【０１５０】
さらに、操作履歴Ｘ１が作成された状態の「文書Ｘ」に対してユーザＡとユーザＣが所定の操作を行うことにより操作履歴Ｘ２および操作履歴Ｘ３が作成された状態を示している。また、操作履歴Ｘ２が作成された状態の「文書Ｘ」に対してユーザＤが所定の操作を行うことにより操作履歴Ｘ４が作成された状態を示している。
【０１５１】
またさらに、操作履歴Ｘ４が作成された状態の「文書Ｘ」に対してユーザＦとユーザＡが所定の操作を行うことにより操作履歴Ｘ５および操作履歴Ｘ６が作成された状態を示している。
【０１５２】
そして、操作履歴Ｘ６が作成された状態の「文書Ｘ」に対してユーザＣとユーザＥが所定の操作を行うことにより操作履歴Ｘ７および操作履歴Ｘ８が作成された状態を示している。
【０１５３】
次に、図１９（ｂ）に示す「文書Ｙ」の順序ツリーは、「文書Ｙ」に対する操作履歴をノードとする構造であって、図１９（ａ）に示す「文書Ｘ」の木構造と同様、各ノードを区別するために番号を付与している。まず、操作履歴Ｙ１のノードはユーザＡが操作したことを示す操作履歴であって、この操作履歴Ｙ１は「文書Ｙ」に対する操作履歴のノードを示す。
【０１５４】
さらに、操作履歴Ｙ１が作成された状態の「文書Ｙ」に対してユーザＣが所定の操作を行うことにより操作履歴Ｙが作成された状態を示している。また、操作履歴Ｙ２が作成された状態の「文書Ｙ」に対してユーザＢとユーザＤが所定の操作を行うことにより操作履歴Ｙ３および操作履歴Ｙ４が作成された状態を示している。
【０１５５】
またさらに、操作履歴Ｙ４が作成された状態の「文書Ｙ」に対してユーザＦとユーザＡが所定の操作を行うことにより操作履歴Ｙ５および操作履歴Ｙ６が作成された状態を示している。
【０１５６】
そして、操作履歴Ｙ６が作成された状態の「文書Ｙ」に対してユーザＣとユーザＥが所定の操作を行うことにより操作履歴Ｙ７および操作履歴Ｙ８が作成された状態を示している。
【０１５７】
次に、図１９（ｃ）に示す「文書Ｚ」の順序ツリーは、「文書Ｚ」に対する操作履歴をノードとする構造であって、図１９（ａ）と図１９（ｂ）に示す「文書Ｘ」、「文書Ｙ」の木構造と同様、各ノードを区別するために番号を付与している。まず、操作履歴Ｚ１のノードはユーザＧが操作したことを示す操作履歴であって、この操作履歴Ｚ１は「文書Ｚ」に対する操作履歴のノードを示す。
【０１５８】
さらに、操作履歴Ｚ１が作成された状態の「文書Ｚ」に対してユーザＤが所定の操作を行うことにより操作履歴Ｚ２が作成された状態を示している。また、操作履歴Ｚ２が作成された状態の「文書Ｚ」に対してユーザＦとユーザＡが所定の操作を行うことにより操作履歴Ｚ３および操作履歴Ｚ４が作成された状態を示している。
【０１５９】
またさらに、操作履歴Ｚ４が作成された状態の「文書Ｚ」に対してユーザＣとユーザＥが所定の操作を行うことにより操作履歴Ｚ６および操作履歴Ｚ７が作成された状態を示している。
【０１６０】
そして、操作履歴Ｚ６が作成された状態の「文書Ｙ」に対してユーザＢが所定の操作を行うことにより操作履歴Ｙ８が作成された状態を示している。
【０１６１】
このような順序ツリーが各文書に対して作成されると、これらの順序ツリーで共通的に発生するツリー構造の操作パターンを抽出する。この抽出方法として、例えばリンクマイニング手法やツリーマイニング手法などがある。これによってツリー構造の操作パターンが抽出されると、その操作パターンの操作履歴に関連付けられたユーザによってユーザグループを生成する。
【０１６２】
図１９に示す例では、共通部分ツリー構造１９００がこれに該当し、この共通部分ツリー構造１９００の操作履歴に関連付けられたユーザによってユーザグループが生成される。また、ユーザグループが生成された共通部分ツリー構造１９００のノードである操作履歴を用いて図２０（ｂ）や図２０（ｃ）に示すような確率データを作成する。
【０１６３】
図２０は、不正操作の検出に用いられる確率データを示しており、図２０（ａ）は、図２０（ｂ）および図２０（ｃ）に示す確率データを作成するために用いられる初期状態確率データである。なお、初期確率の状態数はヒューリスティックに決められる。
【０１６４】
図２０（ｂ）は、状態遷移確率データを示しており、図２０（ｃ）は、状態出力確率データを示している。
【０１６５】
図２０（ｂ）に示す状態遷移確率データおよび図２０（ｃ）に示す状態出力確率データは、図２０（ａ）に示す初期状態確率データを元に図２１に示すフローチャートを実行することにより生成される情報である。
【０１６６】
図２１は、文書の不正操作を検出するために用いる確率データ（確率モデル）を生成する処理の流れを示すフローチャートである。
【０１６７】
図２１において、まず、図２０（ａ）に示すような初期状態となる初期状態確率データを割り当てる（２１０１）。３つの初期状態の確率を割り当てるが、その状態数はヒューリスティックに決められる。
【０１６８】
続いて、割り当てられた初期状態確率データから他の状態へ遷移する確率を、個々の状態ごとに算出したパラメータ全てが推定されたかを判断する（２１０２）。初期状態確率が割り当てられた状態では、もちろん全てのパラメータが推定されていない（２１０２でＮＯ）ため、中間変数を算出して（２１０３）、モデルパラメータを推定する（２１０４）。
【０１６９】
このステップ（２１０３、２１０４）について詳細に説明する。
【０１７０】
ある時刻ｔで観察されるデータｙ（ｔ）（データｙ（ｔ）はＭ個のいずれかの値をとる）は、状態ｓ（ｔ）によって生成されるとする。また、どの状態ｓ（ｋ）も全部でＫ個存在する状態ｈ（ｋ）のいずれかをとり、ある状態ｓ（ｔ）の状態は、直前の状態ｓ（ｔ−１）に依存するとする。そして、状態がｈ（ｋ）からｈ（ｋ’）に遷移する確率ａ（ｋ）（ｋ’）と、状態がｈ（ｋ）であるときにデータｙ（ｔ）が観測される確率をｂ（ｋ）（ｋ’）、最初の状態ｍ（ｋ）とする際に、Ａ＝（[ａ（ｋ）（ｋ’）]、[ｂ（ｋ）]、[ｍ（ｋ）]）と表現される（Ｋの二乗＋ＫＭ＋Ｋ）個のパラメータを最尤推定によって推定することによって確率モデルを求める。つまり、観測されたデータｙ（ｔ）の尤度Ｐ（ｙ（ｔ）、Ｔ、Ａ）を最大化するパラメータの集合を求める。
【０１７１】
このような処理を全てのパラメータに対して繰り返し行って全てのパラメータが推定されると（２１０２でＹＥＳ）、推定したモデルパラメータを更新する（２１０５）。そして、収束条件を満たすかを判断して（２１０５）、収束条件を満たす場合（２１０５でＹＥＳ）には処理を終了する。
【０１７２】
また、収束条件を満たさない場合（２１０５でＮＯ）には、再度上記処理を繰り返し行う。
【０１７３】
このときの収束条件として、例えば、算出されたパターンが一定以上の類似度を持つという条件が該当し、さらには一定以下の非類似度を持つという条件も該当する。
【０１７４】
すなわち、図２１に示すフローチャートは、ユーザグループを生成した共通部分ツリー構造１９００によって示される情報を用いてＥＭ（Expectation-Maximization）などの最尤推定計算方法などを用いることにより、図２０（ｂ）に示すような状態遷移確率および図２０（ｃ）に示すような状態出力確率を出力する処理である。
【０１７５】
ある文書が操作されると、出力した状態遷移確率を用いて操作前の状態と操作後の状態とが一定以上の類似度を有するかを判断して不正操作を検出する。つまり、一定以上の類似度を有していない場合に不正操作であると検出する。
【０１７６】
なお、本発明は、通信機能を備えた不正操作検出システムで上述の動作を実行させ、あるいは上述の手段を構成させるためのプログラムを格納した記録媒体（ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）から該プログラムをコンピュータにインストールし、これを実行させることにより、上述の処理を実行する不正操作検出システムを構成することも可能である。不正操作検出システムを構成するコンピュータは、システムバスを介してＣＰＵ（Central Processor Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ハードディスクが接続されている。ＣＰＵは、ＲＯＭまたはハードディスクに記憶されているプログラムに従い、ＲＡＭを作業領域にして処理を行う。
【０１７７】
また、プログラムを供給するための媒体は、通信媒体（通信回線、通信システムのように一時的または流動的にプログラムを保持する媒体）でもよい。例えば、通信ネットワークの電子掲示板（ＢＢＳ：Bulletin Board Service）に該プログラムを掲示し、これを通信回線を介して配信するようにしてもよい。
【０１７８】
本発明は、上記し、且つ図面に示す実施例に限定することなく、その要旨を変更しない範囲内で適宜変形して実施できるものである。
【図面の簡単な説明】
【０１７９】
【図１】本発明の実施の形態に係わる不正操作検出装置およびプログラムを適用して構成した不正操作検出システムのシステム構成図の一例。
【図２】本発明の実施の形態に係わる不正操作検出システムで用いる文書の操作履歴を生成する処理の手順を示す図。
【図３】本発明の実施の形態に係わる不正操作検出システムで用いる操作履歴間の関係を示す図。
【図４】本発明の実施の形態に係わる不正操作検出システムの概要を示す図。
【図５】本発明の実施の形態における不正操作検出システムの詳細な機能構成を示すブロック図。
【図６】ユーザグループを高頻度ユーザグループとして登録する処理ステップの一例。
【図７】高頻度ユーザグループを文書に対応付ける処理ステップの一例。
【図８】不正操作検出処理Ａの詳細を示す処理ステップの一例。
【図９】不正操作検出処理Ｂの詳細を示す処理ステップの一例。
【図１０】ユーザグループ間の類似度を算出するための演算式の一例。
【図１１】ユーザグループを再形成する処理を示す処理ステップの一例。
【図１２】本発明の実施の形態における不正操作検出システムのデータ構造の一例を示す図。
【図１３】本発明の実施の形態における不正操作検出システムのデータ構造の一例を示す図。
【図１４】本発明の実施の形態における不正利用検出システムの詳細な処理の流れを示すフローチャート。
【図１５】本発明の実施の形態における不正利用検出システムの詳細な処理の流れを示すフローチャート。
【図１６】本発明の実施の形態における不正利用検出システムの詳細な処理の流れを示す他のフローチャート。
【図１７】第１の不正操作検出処理である不正操作検出処理Ａの詳細な流れを示すフローチャート。
【図１８】第２の不正操作検出処理である不正操作検出処理Ｂの詳細な流れを示すフローチャート。
【図１９】共通部分ツリー構造１９００を含む順序ツリーの一例を示す図。
【図２０】不正操作の検出に用いられる確率データの一例を示す図。
【図２１】文書の不正操作を検出するために用いる確率データを生成する処理の流れを示すフローチャート。
【符号の説明】
【０１８０】
１０        ユーザ操作検出部
１１        コンテクスト検出部
１２        操作履歴保存部
１３        操作履歴作成部
１４        不正操作検出部
１５        処理実行部
１６        解析結果保持部
１７        操作履歴解析部
１００      不正操作検出サーバ
２００      文書操作履歴保存サーバ
３００      クライアントＰＣ
４００      複合機
【図１】
2009053896.tif 000003
【図２】
2009053896.tif 000004
【図３】
2009053896.tif 000005
【図４】
2009053896.tif 000006
【図５】
2009053896.tif 000007
【図６】
2009053896.tif 000008
【図７】
2009053896.tif 000009
【図８】
2009053896.tif 000010
【図９】
2009053896.tif 000011
【図１０】
2009053896.tif 000012
【図１１】
2009053896.tif 000013
【図１２】
2009053896.tif 000014
【図１３】
2009053896.tif 000015
【図１４】
2009053896.tif 000016
【図１５】
2009053896.tif 000017
【図１６】
2009053896.tif 000018
【図１７】
2009053896.tif 000019
【図１８】
2009053896.tif 000020
【図１９】
2009053896.tif 000021
【図２０】
2009053896.tif 000022
【図２１】
2009053896.tif 000023