(57)【要約】【課題】異常動作が継続して発生しているような場合であっても、当該異常動作を検出することを可能とする。【解決手段】モデル管理部５２２は、複数のユーザの各々に対応する確率モデルを保持する。モデル管理部５２２は、ログ格納部４２に格納された複数のログ列の各々を学習データとして、当該ログ列に含まれるユーザＩＤによって識別されるユーザに対応する確率モデルに学習させる。モデル管理部５２２は、確率モデルに学習させた後、確率モデル毎にログ格納部４２に格納されているログ列のうちの対象ログ列によって示される動作が当該確率モデルにおいて発生すると予測される確率を示す生起確率を算出する。異常判定部５２３は、複数のユーザの各々に対応する確率モデル毎に算出された生起確率に基づいて、対象ログ列によって示される動作を異常動作として検出する。【選択図】      図３
2010097342.tif 000002
【特許請求の範囲】
【請求項１】
複数の動作主体の各々の動作を示す複数の動作履歴情報であって、当該動作主体を識別するための動作主体識別情報を含む複数の動作履歴情報を格納する動作履歴格納手段と、
前記複数の動作主体の各々に対応し、当該動作主体の動作の傾向が確率的に表現された当該動作主体毎の確率モデルを保持するモデル保持手段と、
前記動作履歴格納手段に格納された複数の動作履歴情報の各々を学習データとして、当該動作履歴情報に含まれる動作主体識別情報によって識別される動作主体に対応する前記モデル保持手段に保持されている確率モデルに学習させるモデル管理手段と、
前記モデル保持手段に保持されている確率モデルに学習させた後、当該モデル保持手段に保持されている複数の動作主体の各々に対応する確率モデル毎に、前記動作履歴格納手段に格納されている複数の動作履歴情報のうちの対象動作履歴情報によって示される動作が当該確率モデルにおいて発生すると予測される確率を示す生起確率を算出する算出手段と、
前記複数の動作主体の各々に対応する前記モデル保持手段に保持されている確率モデル毎に算出された生起確率に基づいて、前記対象動作履歴情報によって示される動作を異常動作として検出する検出手段と
を具備することを特徴とする異常動作検出装置。
【請求項２】
複数の動作主体の各々の動作を示す複数の動作履歴情報であって、当該動作主体を識別するための動作主題識別情報を含む複数の動作履歴情報を格納する動作履歴格納手段を有するサーバとネットワークを介して接続される異常動作検出装置において、
前記複数の動作主体の各々に対応し、当該動作主体の動作の傾向が確率的に表現された当該動作主体毎の確率モデルを保持するモデル保持手段と、
前記動作履歴格納手段に格納されている複数の動作履歴情報を前記サーバから取得する取得手段と、
前記取得された複数の動作履歴情報の各々を学習データとして、当該動作履歴情報に含まれる動作主体識別情報によって識別される動作主体に対応する前記モデル保持手段に保持されている確率モデルに学習させるモデル管理手段と、
前記モデル保持手段に保持されている確率モデルに学習させた後、当該モデル保持手段に保持されている複数の動作主体の各々に対応する確率モデル毎に、前記取得された複数の動作履歴情報のうちの対象動作履歴情報によって示される動作が当該確率モデルにおいて発生すると予測される確率を示す生起確率を算出する算出手段と、
前記複数の動作主体の各々に対応する前記モデル保持手段に保持されている確率モデル毎に算出された生起確率に基づいて、前記対象動作履歴情報によって示される動作を異常動作として検出する検出手段と
を具備することを特徴とする異常動作検出装置。
【請求項３】
複数の動作主体の各々の動作を示す複数の動作履歴情報であって、当該動作主体を識別するための動作主体識別情報を含む複数の動作履歴情報を格納する第１の動作履歴格納手段を有する複数のサーバとネットワークを介して接続される異常動作検出装置において、
前記複数のサーバの各々が有する第１の動作履歴格納手段に格納されている動作履歴情報を、前記複数のサーバの各々から取得する取得手段と、
前記取得された複数の動作履歴情報を格納する第２の動作履歴格納手段と、
前記複数の動作主体の各々に対応し、当該動作主体の動作の傾向が確率的に表現された当該動作主体毎の確率モデルを保持するモデル保持手段と、
前記第２の動作履歴格納手段に格納されている複数の動作履歴情報の各々に含まれる動作主体識別情報を同定する同定手段と、
前記動作主体識別情報が同定された複数の動作履歴情報の各々を学習データとして、当該動作履歴情報に含まれる動作主体識別情報によって識別される動作主体に対応する前記モデル保持手段に保持されている確率モデルに学習させるモデル管理手段と、
前記モデル保持手段に保持されている確率モデルに学習させた後、当該モデル保持手段に保持されている複数の動作主体の各々に対応する確率モデル毎に、前記動作主体識別情報が同定された複数の動作履歴情報のうちの対象動作履歴情報によって示される動作が当該確率モデルにおいて発生すると予測される確率を示す生起確率を算出する算出手段と、
前記複数の動作主体の各々に対応する前記モデル保持手段に保持されている確率モデル毎に算出された生起確率に基づいて、前記対象動作履歴情報によって示される動作を異常動作として検出する検出手段と
を具備することを特徴とする異常動作検出装置。
【請求項４】
複数の動作主体の各々と外部ネットワークとの通信を示す複数の通信履歴情報であって、当該動作主体を識別するための動作主体識別情報を含む複数の通信履歴情報を格納する通信履歴格納手段と、
前記複数の動作主体の各々に対応し、前記複数の動作主体の各々と外部ネットワークとの通信の傾向が確率的に表現された当該動作主体毎の確率モデルを保持するモデル保持手段と、
前記通信履歴格納手段に格納された複数の通信履歴情報の各々を学習データとして、当該通信履歴情報に含まれる動作主体識別情報によって識別される動作主体に対応する前記モデル保持手段に保持されている確率モデルに学習させるモデル管理手段と、
前記モデル保持手段に保持されている確率モデルに学習させた後、当該モデル保持手段に保持されている複数の動作主体の各々に対応する確率モデル毎に、前記通信履歴格納手段に格納されている複数の通信履歴情報のうちの対象通信履歴情報によって示される通信が当該確率モデルにおいて発生すると予測される確率を示す生起確率を算出する算出手段と、
前記複数の動作主体の各々に対応する前記モデル保持手段に保持されている確率モデル毎に算出された生起確率に基づいて、前記対象通信履歴情報によって示される通信を異常な通信として検出する検出手段と
を具備することを特徴とする異常動作検出装置。
【請求項５】
前記検出手段は、前記対象動作履歴情報に含まれる動作主体識別情報によって識別される動作主体以外の動作主体に対応する前記モデル保持手段に保持されている確率モデルであって、前記確率モデル毎に算出された生起確率が予め定められた第１の値以上である確率モデルの数が予め定められた第２の値以下である場合、当該対象動作履歴情報によって示される動作を異常動作として検出することを特徴とする請求項１乃至３のいずれか１項に記載の異常動作検出装置。
【請求項６】
前記検出手段は、前記対象動作履歴情報に含まれる動作主体識別情報によって識別される動作主体以外の動作主体に対応する前記モデル保持手段に保持されている確率モデル毎に算出された生起確率の合計値を算出し、当該算出された合計値が予め定められた値以下である場合、当該対象動作履歴情報によって示される動作を異常動作として検出することを特徴とする請求項１乃至３のいずれか１項に記載の異常動作検出装置。
【請求項７】
前記検出手段は、前記対象動作履歴情報に含まれる動作主体識別情報によって識別される動作主体以外の動作主体に対応する前記モデル保持手段に保持されている確率モデルであって、前記確率モデル毎に算出された生起確率が予め定められた第１の値以下である確率モデルの数が予め定められた第２の値以上である場合、当該対象動作履歴情報によって示される動作を異常動作として検出することを特徴とする請求項１乃至３のいずれか１項に記載の異常動作検出装置。
【請求項８】
前記検出手段は、前記対象動作履歴情報に含まれる動作主体識別情報によって識別される動作主体以外の動作主体に対応する前記モデル保持手段に保持されている確率モデルであって、前記確率モデル毎に算出された生起確率が予め定められた第１の値以上である確率モデルの数が予め定められた第２の値以下であり、かつ、前記対象動作履歴情報に含まれる動作主体識別情報によって識別される動作主体に対応する前記モデル保持手段に保持されている確率モデルについて算出された生起確率が予め定められた第３の値以下である場合、当該対象動作履歴情報によって示される動作を異常動作として検出することを特徴とする請求項１乃至３のいずれか１項に記載の異常動作検出装置。
【請求項９】
複数の動作主体の各々動作を示す複数の動作履歴情報であって、当該動作主体を識別するための動作主体識別情報を含む複数の動作履歴情報を動作履歴格納手段及び前記複数の動作主体の各々に対応し、当該動作主体の動作の傾向が確率的に表現された当該動作主体毎の確率モデルを保持するモデル保持手段を有する外部記憶装置と当該外部記憶装置を利用するコンピュータとから構成される異常動作検出装置において、前記コンピュータによって実行されるプログラムであって、
前記コンピュータに、
前記動作履歴格納手段に格納されている複数の動作履歴情報の各々を学習データとして、当該動作履歴情報に含まれる動作主体識別情報によって識別される動作主体に対応する前記モデル保持手段に保持されている確率モデルに学習させるステップと、
前記モデル保持手段に保持されている確率モデルに学習させた後、当該モデル保持手段に保持されている複数の動作主体の各々に対応する確率モデル毎に、前記動作履歴格納手段に格納されている複数の動作履歴情報のうちの対象動作履歴情報によって示される動作が当該確率モデルにおいて発生すると予測される確率を示す生起確率を算出するステップと、
前記複数の動作主体の各々に対応する前記モデル保持手段に保持されている確率モデル毎に算出された生起確率に基づいて、前記対象動作履歴情報によって示される動作を異常動作として検出するステップと
を実行させるためのプログラム。
【請求項１０】
複数の動作主体の各々の動作を示す複数の動作履歴情報であって、当該動作主体を識別するための動作主体識別情報を含む複数の動作履歴情報を格納する動作履歴格納手段を有するサーバとネットワークを介して接続され、前記複数の動作主体の各々に対応し、当該動作主体の動作の傾向が確率的に表現された当該動作主体毎の確率モデルを保持するモデル保持手段を有する外部記憶装置と当該外部記憶装置を利用するコンピュータとから構成され異常動作検出装置において、前記コンピュータによって実行されるプログラムであって、
前記コンピュータに、
前記動作履歴格納手段に格納されている複数の動作履歴情報を前記サーバから取得するステップと、
前記取得された複数の動作履歴情報の各々を学習データとして、当該動作履歴情報に含まれる動作主体識別情報によって識別される動作主体に対応する前記モデル保持手段に保持されている確率モデルに学習させるステップと、
前記モデル保持手段に保持されている確率モデルに学習させた後、当該も出る保持手段に保持されている複数の動作主体の各々に対応する確率モデル毎に、前記取得された複数の動作履歴情報のうちの対象動作履歴情報によって示される動作が当該確率モデルにおいて発生すると予測される確率を示す生起確率を算出するステップと、
前記複数の動作主体の各々に対応する前記モデル保持手段に保持されている確率モデル毎に算出された生起確率に基づいて、前記対象動作履歴情報によって示される動作を異常動作として検出するステップと
を実行させるためのプログラム。
【請求項１１】
複数の動作主体の各々の動作を示す複数の動作履歴情報であって、当該動作主体を識別するための動作主体識別情報を含む複数の動作履歴情報を格納する第１の動作履歴格納手段を有する複数のサーバとネットワークを介して接続され、第２の動作履歴格納手段及び前記複数の動作主体の各々に対応し、当該動作主体の動作の傾向が確率的に表現された当該動作主体毎の確率モデルを保持するモデル保持手段を有する外部記憶装置と当該外部記憶装置を利用するコンピュータとから構成される異常動作検出装置において、前記コンピュータによって実行されるプログラムであって、
前記コンピュータに、
前記複数のサーバの各々が有する第１の動作履歴格納手段に格納されている動作履歴情報を前記複数のサーバの各々から取得するステップと、
前記取得された複数の動作履歴情報を前記第２の動作履歴格納手段に格納するステップと、
前記第２の動作履歴格納手段に格納された複数の動作履歴情報の各々を学習データとして、当該動作履歴情報に含まれる動作主体識別情報によって識別される動作主体に対応する前記モデル保持手段に保持されている確率モデルに学習させるステップと、
前記モデル保持手段に保持されている確率モデルに学習させた後、当該モデル保持手段に保持されている複数の動作主体の各々に対応する確率モデル毎に、前記第２の動作履歴格納手段に格納されている複数の動作履歴情報のうちの対象動作履歴情報によって示される動作が当該確率モデルにおいて発生すると予測される確率を示す生起確率を算出するステップと、
前記複数の動作主体の各々に対応する前記モデル保持手段に保持されている確率モデル毎に算出された生起確率に基づいて、前記対象動作履歴情報によって示される動作を異常動作として検出するステップと
を実行させるためのプログラム。
【請求項１２】
複数の動作主体の各々と外部ネットワークとの通信を示す複数の通信履歴情報であって、当該動作主体を識別するための動作主体識別情報を含む複数の通信履歴情報を格納する通信履歴格納手段及び前記複数の動作主体の各々に対応し、当該動作主体の動作の傾向が確率的に表現された当該動作主体毎の確率モデルを保持するモデル保持手段を有する外部記憶装置と当該外部記憶装置を利用するコンピュータとから構成される異常動作検出装置において、前記コンピュータによって実行されるプログラムであって、
前記コンピュータに、
前記通信履歴格納手段に格納されている複数の通信履歴情報の各々を学習データとして、当該通信履歴情報に含まれる動作主体識別情報によって識別される動作主体に対応する前記モデル保持手段に保持されている確率モデルに学習させるステップと、
前記モデル保持手段に保持されている確率モデルに学習させた後、当該モデル保持手段に保持されている複数の動作主体の各々に対応する確率モデル毎に、前記通信履歴格納手段に格納されている複数の通信履歴情報のうちの対象通信履歴情報によって示される通信が当該確率モデルにおいて発生すると予測される確率を示す生起確率を算出するステップと、
前記複数の動作主体の各々に対応する前記モデル保持手段に保持されている確率モデル毎に算出された生起確率に基づいて、前記対象通信履歴情報によって示される通信を異常な通信として検出するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作主体の異常動作を検出する異常動作検出装置及びプログラムに関する。
【背景技術】
【０００２】
近年、例えばサーバ等に対する動作履歴をログ（情報）として記録し、当該ログを解析することにより、動作主体の異常動作を検出する異常動作検出装置が知られている。具体的には、例えばサーバ等に対するクライアント端末からのアクセス（操作）がログとして記録され、当該クライアント端末を利用するユーザの不正操作が検出される。
【０００３】
この異常動作検出装置においては、例えばキーワード検索またはパターンマッチ技術等が用いられる。キーワード検索においては、例えば異常動作検出装置の管理者によって指定されたキーワードを用いて異常動作に係るログを検索することにより、異常動作が検出される。パターンマッチ技術においては、例えば管理者によって予め設定されたパターンにログをマッチさせることによって、異常動作が検出される。
【０００４】
このようなキーワード検索またはパターンマッチ技術を用いた場合、例えば管理者の想定の範囲内の異常動作（不正操作）であれば、管理者が適切なキーワードを指定または適切なパターンを設定することで異常動作を検出することができる。
【０００５】
しかしながら、例えば管理者の想定の範囲外の異常動作については、適切なキーワードを指定または適切なパターンを設定することが困難であるため、このような異常動作を検出することは難しい。
【０００６】
なお、上記した「想定の範囲外の異常動作」とは、例えば「キーワードとして全て列挙することが不可能な動作」または「管理者が想定したシステムの使用方法以外の使用方法が用いられた場合の動作」等を指す。このような想定の範囲外の異常動作が行われる可能性は皆無ではない。
【０００７】
そこで、例えばシグネチャ（攻撃パターンファイル）では対応できない未知の攻撃からＷｅｂサーバを防御する技術（以下、第１の先行技術と表記）が開示されている（例えば、特許文献１を参照）。この第１の先行技術によれば、過去のアクセスの統計を取り、そのアクセスの特徴量が過去の統計的な値から異常に乖離しているアクセスが不正アクセスとして検出される。
【０００８】
また、例えば不正であるか否かがわかっていないデータを元に自動的に不正検出を行うことが可能な技術（以下、第２の先行技術と表記）が開示されている（例えば、特許文献２を参照）。この第２の先行技術によれば、全てのユーザの過去のログを確率密度関数で学習し、検査対象の入力データを学習させた際に、モデルのパラメータが大きく変化した場合にそのデータを異常であるとする。
【０００９】
上記した第１及び第２の先行技術は、過去のログ（動作履歴）を用いて特定の動作が異常（不正操作）であるか否かを判定するため、例えば管理者の想定の範囲外の異常動作であっても検出することが可能である。このように、例えば管理者がどの動作が異常動作であるかといった情報を与えることなく学習を行って当該異常動作を検出する手法は「教師データ無し統計的学習手法」と呼ばれている。
【特許文献１】特開２００５−１１２３４号公報
【特許文献２】特開２００１−１０１１５４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記した第１及び第２の先行技術においては、過去のログを学習データとして用いて、特定のログを過去のログと様々な視点から比較する。これにより、特定のログ（によって示される動作履歴）が異常であるか否かが判定される。
【００１１】
このため、例えば異常な動作（操作）が継続して発生している（行われている）ような場合、当該異常な動作が学習データである過去のログの中に継続的に分布しているため、学習によって構成されるモデルには異常動作が含まれることになる。したがって、異常動作であるか否かの検査対象となる動作が異常動作であっても、正常な動作と区別できなくなり、このような場合には当該異常動作を検出することは困難となる。これは、上記したような種々の教師データ無し統計的学習手法において共通の課題である。
【００１２】
そこで、本発明の目的は、異常動作が継続して発生しているような場合であっても、当該異常動作を検出することが可能な異常動作検出装置及びプログラムを提供することにある。
【課題を解決するための手段】
【００１３】
本発明の１つの態様によれば、複数の動作主体の各々の動作を示す複数の動作履歴情報であって、当該動作主体を識別するための動作主体識別情報を含む複数の動作履歴情報を格納する動作履歴格納手段と、前記複数の動作主体の各々に対応し、当該動作主体の動作の傾向が確率的に表現された当該動作主体毎の確率モデルを保持するモデル保持手段と、前記動作履歴格納手段に格納された複数の動作履歴情報の各々を学習データとして、当該動作履歴情報に含まれる動作主体識別情報によって識別される動作主体に対応する前記モデル保持手段に保持されている確率モデルに学習させるモデル管理手段と、前記モデル保持手段に保持されている確率モデルに学習させた後、当該モデル保持手段に保持されている複数の動作主体の各々に対応する確率モデル毎に、前記動作履歴格納手段に格納されている複数の動作履歴情報のうちの対象動作履歴情報によって示される動作が当該確率モデルにおいて発生すると予測される確率を示す生起確率を算出する算出手段と、前記複数の動作主体の各々に対応する前記モデル保持手段に保持されている確率モデル毎に算出された生起確率に基づいて、前記対象動作履歴情報によって示される動作を異常動作として検出する検出手段とを具備することを特徴とする異常動作検出装置が提供される。
【発明の効果】
【００１４】
本発明によれば、異常動作が継続して発生しているような場合であっても、当該異常動作を検出することを可能とする。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して、本発明の各実施形態について説明する。
【００１６】
［第１の実施形態］
まず、図１及び図２を参照して、本発明の第１の実施形態について説明する。図１は、本実施形態に係る異常動作検出装置が接続されるネットワークシステム（クライアント−サーバシステム）について説明するための図である。
【００１７】
図１に示すネットワークシステムは、主として、コンピュータ１０と、複数のクライアント端末２０とから構成される。コンピュータ１０及び複数のクライアント端末２０は、例えばＬＡＮ（Local Area Network）のようなネットワーク３０を介して接続されている。
【００１８】
複数のクライアント端末２０上では、コンピュータ１０を利用するクライアントソフトウェアが動作する。クライアントソフトウェアは、例えばブラウザである。
【００１９】
コンピュータ１０は、例えばハードディスクドライブ（Hard Disk Drive）のような外部記憶装置４０と接続されている。この外部記憶装置４０は、コンピュータ１０によって実行されるプログラム４１を格納する。コンピュータ１０及び外部記憶装置４０は、複数のクライアント端末２０に対して例えばサーバとして機能する異常動作検出装置５０を構成する。
【００２０】
つまり、図１に示すネットワークシステムにおいては、サーバとして機能する異常動作検出装置５０と、これに対してアクセスする複数のクライアント端末２０とが同一ネットワーク３０上に存在する。
【００２１】
この異常動作検出装置５０は、複数の動作主体の各々の動作を示す動作履歴情報を検査することによって、当該複数の動作主体の動作の中から異常動作を検出する機能を有する。ここで、動作主体には、例えば複数のクライアント端末２０の各々を利用するユーザが含まれる。また、動作履歴情報には、複数のクライアント端末２０を介してサーバ（異常動作検出装置５０）に対して行われたユーザの操作を示すログが含まれる。以下、動作主体をユーザ、動作履歴情報をログとして説明する。この場合、異常動作検出装置５０においては、異常なユーザの操作（動作）、つまり、不正操作が検出される。
【００２２】
図２は、図１に示す異常動作検出装置５０の主として機能構成を示すブロック図である。図２に示すように、異常動作検出装置５０は、ログ管理部５１及び異常検出部５２を含む。本実施形態において、ログ管理部５１及び異常検出部５２は、図１に示すコンピュータ１０が外部記憶装置４０に格納されているプログラム４１を実行することにより実現されるものとする。このプログラム４１は、コンピュータ読取可能な記憶媒体に予め格納して頒布可能である。また、このプログラム４１が、ネットワーク３０を介してコンピュータ１０にダウンロードされても構わない。
【００２３】
また、異常動作検出装置５０は、ログ格納部４２を含む。本実施形態において、このログ格納部４２は外部記憶装置４０に格納される。
【００２４】
図１には図示していないが、異常動作検出装置５０は、上記したように複数のクライアント端末２０に対して各種機能を提供するためのサーバとしての機能（サーバ機能）を有する。なお、上記したログ管理部５１及びログ格納部４２は、このサーバ機能の一部である。
【００２５】
ログ管理部５１は、例えば複数のクライアント端末２０の各々を介して異常動作検出装置５０（サーバ）に対して行われた複数のユーザ（動作主体）の各々の操作（クライアント端末２０に対するユーザの操作）を示すログ（動作履歴情報）を取得する。つまり、ログ管理部５１によって取得されるログは、複数のクライアント端末２０からの異常動作検出装置５０に対するアクセスを示す。ログ管理部５１は、ユーザが複数のクライアント端末２０のいずれかを操作することによって異常動作検出装置５０に対してアクセスした際にログを取得する。
【００２６】
このログには、当該ログによって示される操作の主体となるユーザを識別するためのユーザＩＤ（ユーザ識別情報）が含まれる。ログ管理部５１は、取得されたログをログ格納部４２に格納する。
【００２７】
異常検出部５２は、ログ格納部４２に格納されたログに基づいて、当該ログ格納部４２に格納されたログ（によって示される操作）の中から異常な操作（不正操作）を検出する。
【００２８】
図３は、図２に示す異常検出部５２の機能構成を示すブロック図である。図３に示すように、異常検出部５２は、ユーザ判別部５２１、モデル管理部５２２及び異常判定部５２３を含む。
【００２９】
ユーザ判別部５２１は、ログ格納部４２に格納されたログを入力（取得）する。このとき、ユーザ判別部５２１は、ログ格納部４２に格納されたログのうち、例えば一連の操作を示すログ列単位で入力する。このログ列においては、例えばログ間において一定時間が空いた場合には別の一連の操作（ログ列）とされる。なお、ログ列には、当該ログ列によって示される一連の操作の主体となるユーザを識別するためのユーザＩＤが含まれる。
【００３０】
ユーザ判別部５２１は、入力されたログ列を解析する。ユーザ判別部５２１は、解析結果に基づいて、入力されたログ列に含まれるユーザＩＤを取得する。これにより、ユーザ判別部５２１は、入力されたログ列によって示される操作（一連の操作）を行った主体となるユーザを判別する。ユーザ判別部５２１は、取得されたユーザＩＤ及び入力されたログ列をモデル管理部５２２に渡す。
【００３１】
また、ユーザ判別部５２１は、ログ列を不正操作であるか否かの検査対象となるログ列（対象ログ列）として入力した（受け取った）場合には、当該対象ログ列をモデル管理部５２２に渡す。ユーザ判別部５２１は、対象ログ列の解析を行い、当該対象ログ列に含まれるユーザＩＤを異常判定部５２３に渡す。
【００３２】
モデル管理部５２２は、複数のクライアント端末２０の各々を操作する複数のユーザ（動作主体）の各々に対応する（動作主体毎の）確率モデル（統計モデル）を保持（管理）する。確率モデルは、当該確率モデルに対応するユーザの操作（動作）の履歴を学習データとして入力することによって、当該ユーザの操作の傾向を確率的に表現するように学習する。また、確率モデルにおいては、学習済みの確率モデルに対して上記したログ列（対象ログ列）が入力された場合には、当該確率モデルにおいて対象ログ列（によって示される操作）が発生する確率（生起確率）が算出される。
【００３３】
モデル管理部５２２は、ユーザ判別部５２１から渡されたユーザＩＤによって識別されるユーザに対応する確率モデルに、当該ユーザ判別部５２１から渡されたログ列を学習データとして入力する。これにより、モデル管理部５２２においては、ユーザ判別部５２１から渡されたログ列を学習データとして、ユーザ判別部５２１から渡されたユーザＩＤによって識別されるユーザに対応する確率モデルに学習させる。
【００３４】
また、モデル管理部５２２は、検査対象であるログ列（対象ログ列）がユーザ判別部５２１から渡された場合には、モデル管理部５２２に保持されている全ての確率モデル（複数のユーザの各々に対応する確率モデル）における当該対象ログ列の生起確率を算出する。つまり、モデル管理部５２２は、複数のユーザの各々に対応する確率モデルの各々において対象ログ列によって示される操作が発生すると予測される確率を示す生起確率（操作の起こりやすさを表す生起確率）を、当該確率モデル毎に算出する。
【００３５】
モデル管理部５２２は、確率モデル毎に算出された生起確率を、異常判定部５２３に渡す。
【００３６】
異常判定部５２３は、ユーザ判別部５２１から渡されたユーザＩＤ及びモデル管理部５２２から渡された確率モデル毎に算出された生起確率に基づいて、対象ログ列によって示される操作を異常な操作（不正操作）として検出する機能を有する。
【００３７】
異常判定部５２３は、ユーザ判別部５２１から渡されたユーザＩＤによって識別されるユーザ（対象ログ列によって示される操作の主体となるユーザ）以外のユーザ（の各々）に対応する確率モデルであって、モデル管理部５２２から渡された生起確率が予め定められた値（第１の値）以上である確率モデル（に対応するユーザ）の数を特定する。異常判定部５２３は、特定された確率モデルの数が予め定められた値（第２の値）より少ない場合、対象ログ列によって示される操作が異常な操作であると判定する。異常判定部５２３は、対象ログ列によって示される操作が異常な操作であると判定された場合、当該操作を不正操作として検出する。つまり、対象ログによって示される操作が異常な操作である場合には、当該操作は不正操作であるとみなされる。
【００３８】
なお、確率モデルの数を特定するために用いられる予め定められた値と、対象ログ列によって示される操作が異常な操作であるか否かの判定に用いられる予め定められた値とは、互いに異なる値である。以下、確率モデルの数を特定するために用いられる予め定められた値を閾値Ａ、対象ログ列によって示される操作が異常な操作であるか否かの判定に用いられる予め定められた値を閾値Ｂと称する。
【００３９】
異常判定部５２３は、不正操作として検出された操作を示す対象ログ列を出力する。このとき、異常判定部５２３は、対象ログ列を例えば異常動作検出装置５０の管理者に対して提示（表示）する。
【００４０】
以下、図３に示す異常検出部５２の動作について説明する。異常検出部５２は、以下に説明する第１及び第２の動作を行う。異常検出部５２による第１及び第２の動作においては、上記したログ列単位で処理が行われる。
【００４１】
まず、図４のフローチャートを参照して、異常検出部５２の第１の動作における処理手順について説明する。ここで、第１の動作とは、ログ格納部４２に格納されたログ（ログ列）を確率モデルに学習させる動作である。この第１の動作における処理は、例えば異常動作検出装置５０の管理者の指示に応じて実行される。
【００４２】
ユーザ判別部５２１は、ログ格納部４２に格納されたログを入力する。このとき、ユーザ判別部５２１は、ログ格納部４２からログ列単位でログを入力する（ステップＳ１）。ログ列は、例えばユーザによる一連の操作を示す。このログ列には、当該ログ列によって示される操作の主体となるユーザを識別するためのユーザＩＤが含まれる。
【００４３】
次に、ユーザ判別部５２１は、入力されたログ列を解析する（ステップＳ２）。ユーザ判別部５２１は、解析結果に基づいて、ログ列に含まれるユーザＩＤを取得する（ステップＳ３）。
【００４４】
これにより、ユーザ判別部５２１は、入力されたログ列によって示される操作が複数のクライアント端末２０を操作する複数のユーザのうち、どのユーザによって行われた操作であるか否かを判別する。
【００４５】
ここで、モデル管理部５２２は、異常動作検出装置５０とネットワーク３０を介して接続されている複数のクライアント端末２０を操作する複数のユーザ毎に確率モデルを保持している。つまり、モデル管理部５２２は、複数のユーザの各々に対応する確率モデルを保持している。確率モデルによれば、複数のユーザの各々の操作の傾向が確率的に表現される。なお、確率モデルには、例えば隠れマルコフモデル（ＨＭＭ：Hidden Markov Model）が含まれる。このＨＭＭは、不確定な時系列のデータをモデル化するための有効な統計的手法である。
【００４６】
モデル管理部５２２は、ユーザ判別部５２１によって取得されたユーザＩＤによって識別されるユーザに対応する確率モデルに対して、ユーザ判別部５２１によって入力されたログ列を学習データとして入力する（ステップＳ４）。これにより、モデル管理部５２２は、ユーザＩＤによって識別されるユーザに対応する確率モデルに、ログを学習データとして学習させる。なお、この学習方法としては、例えばＢａｕｍ−Ｗｅｌｃｈアルゴリズムが用いられる。
【００４７】
次に、ログ格納部４２に未処理のログ列があるか否かが判定される（ステップＳ５）。未処理のログ列があると判定された場合（ステップＳ５のＹＥＳ）、上記したステップＳ１に戻って処理が繰り返される。一方、未処理のログ列がないと判定された場合（ステップＳ５のＮＯ）、処理は終了される。
【００４８】
このように、図４に示す異常検出部５２における第１の動作においては、例えばログ格納部４２に格納されている全てのログ列について処理が実行される。
【００４９】
次に、図５のフローチャートを参照して、異常検出部５２の第２の動作における処理手順について説明する。ここで、第２の動作とは、ログ格納部４２に格納されたログ列（によって示される操作）が異常な操作（不正操作）であるか否かを判定する動作である。この第２の動作における処理は、上記した第１の動作と同様に、例えば異常動作検出装置５０の管理者の指示に応じて実行される。
【００５０】
第２の動作を実行すべき旨の指示が管理者から出された場合、まず、ユーザ判別部５２１は、ログ格納部４２に格納されたログ列のうちの１つを対象ログ列（異常な操作であるか否かの検査の対象となるログ列）として入力する（ステップＳ１１）。上記したように、対象ログ列には、当該対象ログ列によって示される操作（一連の操作）の主体となるユーザを識別するためのユーザＩＤが含まれる。
【００５１】
次に、ユーザ判別部５２１は、入力された対象ログ列を解析する（ステップＳ１２）。ユーザ判別部５２１は、解析結果に基づいて、対象ログ列に含まれるユーザＩＤを取得する（ステップＳ１３）。
【００５２】
モデル管理部５２２は、当該モデル管理部５２２において保持されている複数のユーザの各々に対応する確率モデル毎に、ユーザ判別部５２１によって入力された対象ログ列によって示される操作が当該確率モデルにおいて発生すると予測される確率を示す生起確率を算出する（ステップＳ１４）。
【００５３】
異常判定部５２３は、ユーザ判別部５２１によって取得されたユーザＩＤによって識別されるユーザ以外のユーザに対応する確率モデルであって、モデル管理部５２２によって確率モデル毎に算出された生起確率が閾値Ａ（第１の値）以上である確率モデルの数（つまり、当該確率モデルに対応するユーザの人数）を特定する（ステップＳ１５）。
【００５４】
異常判定部５２３は、特定された確率モデルの数（ユーザの人数）が閾値Ｂ（第２の値）以下であるか否かを判定する（ステップＳ１６）。
【００５５】
閾値Ｂ以下であると判定された場合（ステップＳ１６のＹＥＳ）、異常判定部５２３は、ユーザ判別部５２１によって入力された対象ログ列によって示される操作が異常な操作であると判定する。これにより、異常判定部５２３は、対象ログ列（によって示される操作）を不正操作として検出する（ステップＳ１７）。
【００５６】
異常判定部５２３は、不正操作として検出された（操作を示す）対象ログ列を、例えば異常動作検出装置５０の管理者に対して提示（表示）する（ステップＳ１８）。
【００５７】
一方、ステップＳ１６において閾値Ｂ以下でないと判定された場合、対象ログ列によって示される操作は異常な操作ではないと判定され、処理は終了される。
【００５８】
このように、図５に示す異常検出部５２における第２の動作においては、例えばログ格納部４２に格納されている全てのログ列について処理が実行される。
【００５９】
ここでは、ログ格納部４２に格納されている全てのログ列について処理が実行されるものとして説明したが、例えば管理者によって指定されたログ列（例えば、特定の時間帯のログ列等）についてのみ処理が実行される構成であっても構わない。
【００６０】
次に、図６を参照して、図３に示す異常検出部５２の動作における処理の流れについて具体的に説明する。
【００６１】
ここで、サーバとしての機能を有する異常動作検出装置５０に対してアクセスする複数のクライアント端末２０を操作するユーザとして、例えばユーザ１〜ユーザ４が存在するものとする。
【００６２】
また、ログ格納部４２には、複数のクライアント端末２０を介して異常動作検出装置５０に対して行われたユーザ１〜ユーザ４の各々の操作（アクセス）を示すログが格納されている。ログ格納部４２に格納されているログには、当該ログによって示される操作の主体となるユーザ１〜ユーザ４を識別するためのユーザＩＤがそれぞれ含まれている。
【００６３】
まず、異常検出部５２における第１の動作（確率モデルに学習させる動作）における処理の流れについて説明する。ここでは、ログ格納部４２に格納されているログのうち、例えばユーザ１の操作を示すログ列について主に説明する。つまり、このログ列には、ユーザ１を識別するためのユーザＩＤが含まれている。
【００６４】
まず、異常検出部５２に含まれるユーザ判別部５２１は、ログ格納部４２からログ列を入力（取得）する。ユーザ判別部５２１は、入力されたログ列を解析することによって、当該ログ列によって示される操作の主体となるユーザを判別する。ユーザ判別部５２１は、入力されたログ列に含まれるユーザＩＤに基づいて判別処理を実行する。
【００６５】
この場合、ユーザ判別部５２１は、入力されたログ列によって示される操作の主体がユーザ１であることを判別する。換言すれば、ユーザ判別部５２１は、入力されたログ列によって示される操作がユーザ１によって行われた操作であることを判別する。
【００６６】
モデル管理部５２２は、ユーザ１〜ユーザ４の各々に対応する確率モデル５２２ａ〜確率モデル５２２ｄを保持する。モデル管理部５２２は、ユーザ判別部５２１によって判別されたユーザ１に対応する確率モデル５２２ａに、ユーザ判別部５２１によって入力されたログ列を入力する。これにより、確率モデル５２２ａに、ログ列を学習データとして学習させる（ステップＳ２１）。
【００６７】
次に、異常検出部５２における第２の動作（対象ログ列が異常な操作であるか否かを判定する動作）における処理の流れについて説明する。
【００６８】
ここでは、異常な操作であるか否かの検査対象となるログ列（対象ログ）が対象ログ列４２１であるものとする。なお、この対象ログ列４２１によって示される操作は、例えばユーザ１によって行われたものであるとする。
【００６９】
この場合、モデル管理部５２２は、対象ログ列４２１を確率モデル５２２ａ〜確率モデル５２２ｄの各々に入力する。これにより、モデル管理部５２２は、確率モデル５２２ａ〜統計モデル５２２ｄの各々について生起確率Ｐ（ｘ）を算出する（ステップＳ２２）。
【００７０】
ここでは、ユーザ１に対応する確率モデル５２２ａについて算出された生起確率をＰ（１）とする。同様に、ユーザ２に対応する確率モデル５２２ｂについて算出された生起確率をＰ（２）、ユーザ３に対応する確率モデル５２２ｃについて算出された生起確率をＰ（３）、ユーザ４に対応する確率モデル５２２ｄについて算出された生起確率をＰ（４）とする。
【００７１】
次に、異常判定部５２３は、モデル管理部５２２によって算出された確率モデル５２２ａ〜確率モデル５２２ｄ毎に算出された生起確率に基づいて、対象ログ列４２１によって示される操作が異常な操作であるか否かを判定する（ステップＳ２３）。
【００７２】
上記したように対象ログ列４２１によって示される操作は、ユーザ１によって行われた操作である。この場合、異常判定部５２３は、ユーザ１以外のユーザ（つまり、ユーザ２〜ユーザ４）の各々に対応する確率モデル（統計モデル５２２ｂ〜統計モデル５２２ｄ）であって、当該確率モデル毎に算出された生起確率（Ｐ（２）、Ｐ（３）及びＰ（４））が閾値Ａ以上である確率モデル（に対応するユーザ）の数を特定する。
【００７３】
異常判定部５２３は、特定された確率モデルの数が閾値Ｂ以下であるか否かを判定する。特定された確率モデルの数が閾値Ｂ以下であると判定された場合、異常判定部５２３は、対象ログ列４２１（によって示される操作）が異常な操作であると判定する。この場合には、異常判定部５２３は、対象ログ列４２１によって示される操作を不正操作として検出する。検出された不正操作を示す対象ログ列は、異常動作検出装置５０の管理者に対して提示される。
【００７４】
一方、特定された確率モデルの数が閾値Ｂ以下でないと判定された場合、異常判定部５２３は、対象ログ列４２１が異常な操作でない、つまり正常な操作であると判定する。
【００７５】
上記したように本実施形態においては、ログ格納部４２に格納されたログ（ログ列）が当該ログ列によって示される操作の主体となるユーザに対応する確率モデル（ＨＭＭ）に学習データとして入力されることにより、学習が行われる。また、本実施形態においては、異常な操作であるか否かの検査の対象となる対象ログ列が複数のユーザの各々に対応する確率モデルに入力され、当該確率モデル毎に生起確率が算出される。本実施形態においては、対象ログ列によって示される操作の主体となるユーザ以外のユーザに対応する確率モデル毎に算出された生起確率に基づいて対象ログ列が異常な操作であるか否かが判定され、当該対象ログ列が異常な操作である場合には当該対象ログ列によって示される操作が不正操作として検出される。
【００７６】
例えばユーザ１及びユーザ２が継続的に不正操作を行い、当該ユーザ１及びユーザ２以外の多数のユーザが当該不正操作を行っていない場合を想定する。この場合、この不正操作を示すログ列（対象ログ列）の生起確率は、ユーザ１及びユーザ２に対応する確率モデルでは不正操作を示すログ列を含むログ列で学習しているため、高い値を示す。これに対し、それ以外のユーザに対応する確率モデルにおいては非常に低い値を示す。
【００７７】
つまり、上記した閾値Ａを多少行う操作なのかほとんど行わない操作なのかを分離するような適切な値に設定しておくことで、例えばユーザ１が行った操作がユーザ２を除く他の多数のユーザはほとんど行っていない操作であることがわかる。更に、上記した閾値Ｂをある一定の規模の人数のユーザなのか、かなり少数のユーザなのかを分離するような適切な値に設定しておくことで、ユーザ１が行った操作と同様の操作を行った人数がかなり少数だとわかる。
【００７８】
このように、本実施形態においては、「他の大部分のユーザがほとんど行っていない操作」であれば当該操作を異常な操作であると判定し、このような異常な操作は不正操作である可能性が高いとして当該操作を不正操作として検出する。
【００７９】
つまり、特定のユーザが継続して不正操作を行っているような場合には当該特定のユーザに対応する確率モデルには不正操作を示すログが学習データとして多く含まれているが、当該特定のユーザ以外の不正操作を行っていないユーザに対応する確率モデルには不正操作を示すログ列は学習データとして含まれていない。
【００８０】
したがって、本実施形態おいては、対象ログ列によって示される操作の主体となるユーザ以外のユーザに対応する確率モデルに対して当該対象ログ列を入力し、生起確率を算出することによって、特定のユーザが継続的に不正操作を行っている場合（つまり、異常動作が継続して発生しているような場合）であっても他のユーザに対応する確率モデルについて算出された生起確率に基づいて不正操作の判定を行うため、当該不正操作を検出（発見）することが可能となる。
【００８１】
［第２の実施形態］
次に、図７を参照して、本発明の第２の実施形態について説明する。図７は、本実施形態に係る異常動作検出装置が接続されるネットワークシステムについて説明するための図である。なお、前述した図１と同様の部分には同一参照符号を付してその詳しい説明を省略する。ここでは、図１と異なる部分について主に述べる。
【００８２】
本実施形態においては、異常動作検出装置１００が複数のクライアント端末２０からアクセスされるサーバ６０とは別装置、つまり、異常動作検出装置１００が単独の装置としてネットワーク３０上に配置されている点が、前述した第１の実施形態とは異なる。サーバ６０は、例えば複数のクライアント端末２０からのリクエストを受け付け、様々な処理を行う。
【００８３】
図７に示すように、サーバ６０は、前述した第１の実施形態におけるログ管理部５１に相当するログ管理部６１及びログ格納部４２に相当するログ格納部６２を含む。
【００８４】
図示しないが、異常動作検出装置１００は、前述した第１の実施形態における異常検出部５２に相当する機能（異常検出部）を有する。
【００８５】
つまり、本実施形態に係る異常動作検出装置１００（に含まれる異常検出部）は、サーバ６０に含まれるログ格納部４２に格納されているログ列を入力し、処理を実行する。なお、この異常動作検出装置１００の動作（処理）は、前述した第１の実施形態における異常検出部５２と同様であるため、その詳しい説明を省略する。
【００８６】
上記したように本実施形態においては、異常動作検出装置１００をサーバ６０とは異なる装置、つまり単体の装置とする構成により、既存サーバに対して本実施形態を適用した場合でも、当該既存のサーバの構成を大幅に変更することなく、比較的容易に導入することが可能となる。
【００８７】
［第３の実施形態］
次に、図８を参照して、本発明の第３の実施形態について説明する。図８は、本実施形態に係る異常動作検出装置が接続されるネットワークシステムについて説明するための図である。なお、前述した図１、図２及び図７と同様の部分には同一参照符号を付してその詳しい説明を省略する。ここでは、図１、図２及び図７と異なる部分について主に述べる。
【００８８】
また、本実施形態に係る文書分類装置のハードウェア構成は、前述した第１の実施形態と同様であるため、適宜、図１を用いて説明する。以下の各実施形態においても同様である。
【００８９】
本実施形態においては、ネットワーク３０に複数のサーバ６０が接続されており、複数のクライアント端末２０を介して行われた当該複数のサーバ６０に対する複数のユーザの操作を示すログを異常動作検出装置１１０に集め、当該ログ（ログ列）の異常を判定する点が、前述した第１（及び第２）の実施形態とは異なる。
【００９０】
本実施形態においては、ネットワーク３０に接続される複数のサーバ６０の各々の構成は、前述した第２の実施形態におけるサーバ６０と同様である。つまり、複数のサーバ６０の各々は、ログ管理部６１及びログ格納部（第１の動作履歴格納部）６２を含む。
【００９１】
また、図８に示すように、異常動作検出装置１１０は、ログ管理部１１１を含む。本実施形態において、ログ管理部１１１は、図１に示すコンピュータ１０が外部記憶装置４０に格納されているプログラム４１を実行することにより実現されるものとする。また、異常動作検出装置５０は、ログ格納部（第２の動作履歴格納部）４３を含む。本実施形態において、このログ格納部４３は外部記憶装置４０に格納される。
【００９２】
ログ管理部１１１は、複数のサーバ６０の各々から当該サーバ６０に対する複数のユーザの操作を示すログを取得する。ログ管理部１１１は、取得されたログをログ格納部４３に格納する。
【００９３】
つまり、ログ格納部４３には、複数のクライアント端末２０を介して行われた複数のサーバ６０の各々に対する操作を示すログが格納される。つまり、ログ格納部４３には、複数のサーバ６０のログの全てが収集される。
【００９４】
本実施形態においては複数のサーバ６０の各々のログを集めているため、同一ユーザであってもサーバ６０毎にユーザＩＤが異なる可能性がある。このため、本実施形態においては、これらのユーザＩＤを同定する必要がある。この同定の方法としては、例えばその情報を持っている機器（例えばＩＤ管理システム等）に問い合わせる、または、異常動作検出装置１１０の管理者が異常検出部５２に対して予め入力しておいた情報を用いるといった方法がある。
【００９５】
異常検出部５２の処理においては、このように同定されたユーザＩＤが用いられる。なお、異常検出部５２の構成及び動作（処理）は、上記した同定処理以外については前述した第１の実施形態と同様であるため、その詳しい説明を省略する。
【００９６】
上記したように本実施形態においては、異常動作検出装置１１０において複数のサーバ６０に対する複数のユーザの操作を示すログを集める構成により、例えば複数のサーバ６０を横断するような不正操作であっても検出することが可能となる。
【００９７】
［第４の実施形態］
次に、図９を参照して、本発明の第４の実施形態について説明する。図９は、本実施形態に係る異常動作検出装置が接続されるネットワークシステムについて説明するための図である。なお、前述した図１及び図２と同様の部分には同一参照符号を付してその詳しい説明を省略する。ここでは、図１及び図２と異なる部分について主に述べる。
【００９８】
本実施形態においては、ネットワーク３０にキャプチャ部８０が接続されており、当該キャプチャ部８０及び異常動作検出装置１２０が互いに接続されている点が、前述した第１の実施形態とは異なる。
【００９９】
キャプチャ部８０は、例えばインターネットのような外部ネットワーク９０と接続されている。つまり、キャプチャ部８０は、ネットワーク３０と外部ネットワーク９０との間の例えば通信が集中する位置に設置される。キャプチャ部８０は、複数のクライアント端末２０が外部ネットワーク９０と行う通信（内容）をキャプチャする。キャプチャ部８０は、キャプチャされた通信内容を示す通信履歴情報を異常動作検出装置１２０に渡す。
【０１００】
異常動作検出装置１２０は、通信履歴管理部１２１を含む。本実施形態において、通信履歴管理部１２１は、図１に示すコンピュータ１０が外部記憶装置４０に格納されているプログラム４１を実行することにより実現されるものとする。また、異常動作検出装置１２０は、通信履歴格納部４４を含む。本実施形態において、この通信履歴格納部４４は外部記憶装置４０に格納される。
【０１０１】
通信履歴管理部１２１は、キャプチャ部８０によってキャプチャされた通信を示す通信履歴情報を取得する。通信履歴管理部１２１は、取得された通信履歴情報を通信履歴格納部１２１に格納する。なお、この通信履歴情報には、例えば通信を行ったクライアント端末２０に割り当てられているＩＰ（Internet Protocol）アドレスが含まれる。
【０１０２】
異常動作検出装置１２０に含まれる異常検出部５２は、履歴格納部１２１に格納された通信履歴情報を検査することによって異常な通信（内容）を検出する。
【０１０３】
なお、本実施形態における異常検出部５２の構成及び動作は、前述した第１の実施形態におけるログに代えて通信履歴情報を用いる点以外については同様であるため、その詳しい説明を省略する。
【０１０４】
なお、前述した第１の実施形態においてはログに含まれるユーザＩＤによって識別されるユーザに対応する確率モデルに学習させていたが、本実施形態については通信履歴情報であるため、例えば当該通信履歴情報に含まれるＩＰアドレスに対応する確率モデルに学習させる。また、例えばＤＨＣＰ（Dynamic Host Configuration Protocol）環境のように複数のクライアント端末２０の各々に対してＩＰアドレスが動的に割り当てられるようなシステムにおいては、例えば複数のクライアント端末２０及び異常動作検出装置１２０とは別に設けられている当該ＤＨＣＰサーバ（図示せず）等から情報を取得して、各クライアント端末２０（を利用するユーザ）の同定が行われる。
【０１０５】
上記したように本実施形態においては、ネットワーク３０及び外部ネットワーク９０の間にキャプチャ部８０を配置し、当該キャプチャ部８０によってキャプチャされた通信内容（を示す通信履歴情報）を検査することによって異常な通信を検出する構成により、前述した第１の実施形態のような管理対象であるサーバ（異常動作検出装置１２０）に対する不正操作だけでなく、複数のクライアント端末２０が外部ネットワーク９０にアクセスして行われる不正操作（不正通信）をも検出することが可能となる。
【０１０６】
［第５の実施形態］
次に、図１０を参照して、本発明の第５の実施形態について説明する。本実施形態に係る異常動作検出装置の構成は、前述した第１の実施形態に係る異常動作検出装置５０と同様であるため、適宜、図２及び図３を用いて説明する。以下の各実施形態についても同様である。
【０１０７】
本実施形態においては、ログ格納部４２に格納されたログ列が異常な操作（不正操作）であるか否かを判定する動作（つまり、第２の動作）が前述した第１の実施形態とは異なる。なお、第２の動作以外の動作等については、前述した第１の実施形態と同様であるため、その詳しい説明を省略する。
【０１０８】
ここで、図１０のフローチャートを参照して、本実施形態に係る異常動作検出装置５０に含まれる異常検出部５２の第２の動作における処理手順について説明する。この第２の動作における処理は、例えば異常動作検出装置５０の管理者の指示に応じて実行される。
【０１０９】
まず、前述した図５に示すステップＳ１１〜ステップＳ１４の処理に相当するステップＳ３１〜ステップＳ３４の処理が実行される。
【０１１０】
次に、異常判定部５２３は、ユーザ判別部５２１によって取得されたユーザＩＤによって識別されるユーザ以外のユーザに対応する確率モデル毎に算出された生起確率の合計値を算出する（ステップＳ３５）。
【０１１１】
異常判定部５２３は、算出された合計値が予め定められた値以下であるか否かを判定する（ステップＳ３６）。この予め定められた値は、前述した第１の実施形態における閾値Ａ及び閾値Ｂとは異なる値である。以下、ここで用いられる予め定められた値を閾値Ｃと称する。
【０１１２】
算出された合計値が閾値Ｃ以下であると判定された場合（ステップＳ３６のＹＥＳ）、前述した図５に示すステップＳ１７〜ステップＳ１９の処理に相当するステップＳ３７〜ステップＳ３９の処理が実行される。
【０１１３】
一方、算出された合計値が閾値Ｃ以下でないと判定された場合（ステップＳ３６のＮＯ）、ステップＳ３９の処理が実行される。
【０１１４】
上記したように本実施形態においては、ユーザ判別部５２１によって取得されたユーザＩＤによって識別されるユーザ以外のユーザに対応する確率モデル毎に算出された生起確率の合計値が閾値Ｃ以下である場合に対象ログ列によって示される操作を不正操作として検出する構成により、前述した第１の実施形態のように２つの閾値（閾値Ａ及び閾値Ｂ）を用いる構成より単純であり構成しやすい。
【０１１５】
また、本実施形態においては、前述した第１の実施形態においては例えば閾値Ａにより切り捨てられていたユーザ（に対応する確率モデル）の生起確率も総合的に勘案して不正操作が検出（判定）されるため、より精度を向上させることができる可能性がある。
【０１１６】
［第６の実施形態］
次に、図１１を参照して、本発明の第６の実施形態について説明する。本実施形態においては、ログ格納部４２に格納されたログ列が異常な操作（不正操作）であるか否かを判定する動作（つまり、第２の動作）が前述した第１及び第５の実施形態とは異なる。なお、第２の動作以外の動作等については、前述した第１及び第５の実施形態と同様であるため、その詳しい説明を省略する。
【０１１７】
ここで、図１１のフローチャートを参照して、本実施形態に係る異常動作検出装置５０に含まれる異常検出部５２の第２の動作における処理手順について説明する。
【０１１８】
まず、前述した図５に示すステップＳ１１〜ステップＳ１４の処理に相当するステップＳ４１〜ステップＳ４４の処理が実行される。
【０１１９】
次に、異常判定部５２３は、ユーザ判別部５２１によって取得されたユーザＩＤによって識別されるユーザ以外のユーザに対応する確率モデルであって、モデル管理部５２２によって確率モデル毎に算出された生起確率が予め定められた第１の値（以下、閾値Ｄと表記）以下である確率モデル（に対応するユーザ）の数を特定する（ステップＳ４５）。
【０１２０】
異常判定部５２３は、特定された確率モデル（ユーザ）の数が予め定められた第２の値（以下、閾値Ｅと表記）以上であるか否かを判定する（ステップＳ４６）。
【０１２１】
なお、閾値Ｄは、前述した例えば閾値Ａ〜閾値Ｃとは異なる値である。また、閾値Ｅは、前述した閾値Ａ〜閾値Ｄとは異なる値である。
【０１２２】
閾値Ｅ以上であると判定された場合（ステップＳ４６のＹＥＳ）、前述した図５に示すステップＳ１７〜ステップＳ１９の処理に相当するステップＳ４７〜ステップＳ４９の処理が実行される。
【０１２３】
一方、閾値Ｅ以上でないと判定された場合（ステップＳ４６のＮＯ）、ステップＳ４９の処理が実行される。
【０１２４】
上記したように本実施形態においては、前述した第１の実施形態とは異なり、生起確率が閾値Ｄ以下である確率モデル（に対応するユーザ）の数が閾値Ｅ以上である場合に対象ログ列によって示される操作が異常な操作と判定されるため、例えば一定規模の人数のユーザが集団で同様の不正操作を行っている場合の当該不正操作を検出することが可能となる。
【０１２５】
［第７の実施形態］
次に、図１２を参照して、本発明の第７の実施形態について説明する。本実施形態においては、ログ格納部４２に格納されたログ列が異常な操作（不正操作）であるか否かを判定する動作（つまり、第２の動作）が前述した第１、第５及び第６の実施形態とは異なる。なお、第２の動作以外の動作等については、前述した第１、第５及び第６の実施形態と同様であるため、その詳しい説明を省略する。
【０１２６】
ここで、図１２のフローチャートを参照して、本実施形態に係る異常動作検出装置５０に含まれる異常検出部５２の第２の動作における処理手順について説明する。
【０１２７】
まず、前述した図５に示すステップＳ１１〜ステップＳ１６の処理に相当するステップＳ５１〜ステップＳ５６の処理が実行される。
【０１２８】
ステップＳ１６において閾値Ｂ以下であると判定された場合、異常判定部５２３は、ユーザ判別部５２１によって取得されたユーザＩＤによって識別されるユーザに対応する確率モデルについて算出された生起確率が閾値Ｆ以下であるか否かを判定する（ステップＳ５７）。閾値Ｆは、予め定められた値（第３の値）であり、前述した例えば閾値Ａ〜閾値Ｅとは異なる値である。なお、ユーザ判別部５２１によって取得されたユーザＩＤによって識別されるユーザに対応する確率モデルにおける生起確率は、ステップＳ１４において算出される。
【０１２９】
閾値Ｆ以下であると判定された場合（ステップＳ５７のＹＥＳ）、前述した図５に示すステップＳ１７〜ステップＳ１９の処理に相当するステップＳ５８〜ステップＳ６０の処理が実行される。一方、閾値Ｆ以下でないと判定された場合（ステップＳ５７のＮＯ）、ステップＳ６０の処理が実行される。
【０１３０】
なお、ステップＳ１６において閾値Ｂ以下でないと判定された場合には、ステップＳ６０の処理が実行される。
【０１３１】
上記したように本実施形態においては、対象ログ列によって示される操作の主体となるユーザに対応する確率モデルについて算出された生起確率が閾値Ｆ以上である場合には、当該対象ログ列によって示される操作は正常な操作であると判定されるため、例えば特定のユーザしか行わない正常な操作を異常な操作（不正操作）として検出する可能性を低下させることが可能となる。
【０１３２】
［第８の実施形態］
次に、図１３を参照して、本発明の第８の実施形態について説明する。本実施形態においては、ログ格納部４２に格納されたログ列が異常な操作（不正操作であるか否かを判定する動作（つまり、第２の動作）が前述した第１及び第５〜第７の実施形態とは異なる。なお、第２の動作以外の動作等については前述した第１及び第５〜第７の実施形態と同様であるため、その詳しい説明を省略する。
【０１３３】
本実施形態においては、異常判定部５２３の異常な操作の判定方法を前述した第１及び第５〜第７の実施形態に係る異常判定部５２３の判定方法の組み合わせとする点が、当該第１及び第５〜第７の実施形態とは異なる。
【０１３４】
前述した第１の実施形態のように、ユーザ判別部５２１によって取得されたユーザＩＤによって識別されるユーザ以外のユーザに対応する確率モデルであって、モデル管理部５２２によって確率モデル毎に算出された生起確率が閾値Ａ以上である確率モデルの数が閾値Ｂ以下である場合を条件ａと称する。
【０１３５】
前述した第５の実施形態のように、ユーザ判別部５２１によって取得されたユーザＩＤによって識別されるユーザ以外のユーザに対応する確率モデル毎に算出された生起確率の合計値が閾値Ｃ以下である場合を条件ｂとする。
【０１３６】
前述した第６の実施形態のように、ユーザ判別部５２１によって取得されたユーザＩＤによって識別されるユーザ以外のユーザに対応する確率モデルであって、モデル管理部５２２によって確率モデル毎に算出された生起確率が閾値Ｄ以下である確率モデルの数が閾値Ｅ以上である場合を条件ｃとする。
【０１３７】
また、前述した第７の実施形態のように、ユーザ判別部５２１によって取得されたユーザＩＤによって識別されるユーザに対応する確率モデルについて算出された生起確率が閾値Ｆ以下である場合を条件ｄとする。
【０１３８】
本実施形態においては、上記した条件ａ〜条件ｄを、例えば論理演算「ａ＊ｂ＊ｃ＊ｄ」または「ａ＋ｂ＋ｃ」のように、適宜組み合わせることによって対象ログ列によって示される操作が異常な操作であるか否かが判定される。この論理演算は、例えば異常動作検出装置５０の管理者によって予め設定される。
【０１３９】
ここで、図１３のフローチャートを参照して、本実施形態に係る異常動作検出装置５０に含まれる異常検出部５２の第２の動作における処理手順の一例について説明する。ここでは、条件ａ〜条件ｄの組み合わせとして論理演算「ａ＊ｂ＊ｃ＊ｄ」が予め設定されているものとする。
【０１４０】
まず、前述した図５に示すステップＳ１１〜ステップＳ１４の処理に相当するステップＳ７１〜ステップＳ７４の処理が実行される。
【０１４１】
次に、異常判定部５２３は、上記した条件ａを満たすか否かを判定する（ステップＳ７５）。この場合、ユーザ判別部５２１によって取得されたユーザＩＤによって識別されるユーザ以外のユーザに対応する確率モデルであって、モデル管理部５２２によって確率モデル毎に算出された生起確率が閾値Ａ以上である確率モデルの数が閾値Ｂ以下である場合には、条件ａを満たすと判定される。
【０１４２】
条件ａを満たすと判定された場合（ステップＳ７５のＹＥＳ）、異常判定部５２３は、上記した条件ｂを満たすか否かを判定する（ステップＳ７６）。この場合、ユーザ判別部５２１によって取得されたユーザＩＤによって識別されるユーザ以外のユーザに対応する確率モデル毎に算出された生起確率の合計値が閾値Ｃ以下である場合には、条件ｂを満たすと判定される。
【０１４３】
条件ｂを満たすと判定された場合（ステップＳ７６のＹＥＳ）、異常判定部５２３は、上記した条件ｃを満たすか否かを判定する（ステップＳ７７）。この場合、ユーザ判別部５２１によって取得されたユーザＩＤによって識別されるユーザ以外のユーザに対応する確率モデルであって、モデル管理部５２２によって確率モデル毎に算出された生起確率が閾値Ｄ以下である確率モデルの数が閾値Ｅ以上である場合には、条件ｃを満たすと判定される。
【０１４４】
条件ｃを満たすと判定された場合（ステップＳ７７のＹＥＳ）、異常判定部５２３は、上記した条件ｄを満たすか否かを判定する（ステップＳ７８）。この場合、ユーザ判別部５２１によって取得されたユーザＩＤによって識別されるユーザに対応する確率モデルについて算出された生起確率が閾値Ｆ以下である場合には、条件ｄを満たすと判定される。
【０１４５】
条件ｄを満たすと判定された場合（ステップＳ７８のＹＥＳ）、前述した図５に示すステップＳ１７〜ステップＳ１９の処理に相当するステップＳ７９〜ステップＳ８１の処理が実行される。
【０１４６】
一方、上記したステップＳ７５〜ステップＳ７８において、条件ａ〜条件ｄのいずれかの条件を満たさないと判定された場合、ステップＳ８１の処理が実行される。つまり、上記したように論理演算「ａ＊ｂ＊ｃ＊ｄ」が予め設定されている場合には、条件ａ〜条件ｄの全てを満たす場合に対象ログ列によって示される操作が異常な操作と判定され、当該操作が不正操作として検出される。
【０１４７】
前述した第１及び第５〜第７の実施形態においては、それぞれ単一のポリシー（条件ａ〜条件ｄのうちのいずれか１つ）で異常な操作（不正操作）が検出されるのに対して、本実施形態においては、上記した条件ａ〜条件ｄを組み合わせることによって様々なタイプの不正操作を網羅的に検出することが可能となる。
【０１４８】
なお、本願発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
【図面の簡単な説明】
【０１４９】
【図１】本発明の第１の実施形態に係る異常動作検出装置が接続されるネットワークシステムについて説明するための図。
【図２】図１に示す異常動作検出装置５０の主として機能構成を示すブロック図。
【図３】図２に示す異常検出部５２の機能構成を示すブロック図。
【図４】異常検出部５２の第１の動作における処理手順を示すフローチャート。
【図５】異常検出部５２の第２の動作における処理手順を示すフローチャート。
【図６】図３に示す異常検出部５２の処理の流れについて具体的に説明するための図。
【図７】本発明の第２の実施形態に係る異常動作検出装置が接続されるネットワークシステムについて説明するための図。
【図８】本発明の第３の実施形態に係る異常動作検出装置が接続されるネットワークシステムについて説明するための図。
【図９】本発明の第４の実施形態に係る異常動作検出装置が接続されるネットワークシステムについて説明するための図。
【図１０】本発明の第５の実施形態に係る異常動作検出装置５０に含まれる異常検出部５２の第２の動作における処理手順を示すフローチャート。
【図１１】本発明の第６の実施形態に係る異常動作検出装置５０に含まれる異常検出部５２の第２の動作における処理手順を示すフローチャート。
【図１２】本発明の第７の実施形態に係る異常動作検出装置５０に含まれる異常検出部５２の第２の動作における処理手順を示すフローチャート。
【図１３】本発明の第８の実施形態に係る異常動作検出装置５０に含まれる異常検出部５２の第２の動作における処理手順の一例を示すフローチャート。
【符号の説明】
【０１５０】
１０…コンピュータ、３０…ネットワーク、４０…外部記憶装置、４２，４３，６２…ログ格納部、４４…通信履歴格納部、５０，１００，１１０，１２０…異常動作検出装置、５１，６１，１１１…ログ管理部、５２…異常検出部、６０…サーバ、８０…キャプチャ部、９０…外部ネットワーク、１２１…通信履歴管理部、５２１…ユーザ判別部、５２２…モデル管理部、５２３…異常判定部。
【図１】
2010097342.tif 000003
【図２】
2010097342.tif 000004
【図３】
2010097342.tif 000005
【図４】
2010097342.tif 000006
【図５】
2010097342.tif 000007
【図６】
2010097342.tif 000008
【図７】
2010097342.tif 000009
【図８】
2010097342.tif 000010
【図９】
2010097342.tif 000011
【図１０】
2010097342.tif 000012
【図１１】
2010097342.tif 000013
【図１２】
2010097342.tif 000014
【図１３】
2010097342.tif 000015