(57)【要約】      （修正有）【課題】システム運用において、異常操作を検知できる異常操作検知装置を提供する。【解決手段】異常操作検知装置は、格納部１、受付部２、処理部３、および出力部４を備える。格納部の判断元情報格納部１１は、システム運用時の情報システムに対する正常な操作を特定する２以上の正常操作情報に関する２以上の正常操作集合に基づく判断元情報が格納する。受付部は、ユーザが情報システムに対して行った操作を特定する２以上の操作情報を有する操作集合を受け付ける。判断部は、判断元情報と、受付部が受け付けた操作集合とを用いて、操作集合に対する異常性に関する情報である異常情報を取得する。出力部は、判断部が取得した異常情報を出力する。【選択図】図１
2019204407.tif 000002
【特許請求の範囲】
【請求項１】
システム運用時の情報システムに対する正常な操作を特定する２以上の正常操作情報に関する２以上の正常操作集合に基づく判断元情報が格納される判断元情報格納部と、
ユーザが情報システムに対して行った操作を特定する２以上の操作情報を有する操作集合を受け付ける受付部と、
前記判断元情報と、前記受付部が受け付けた操作集合とを用いて、当該操作集合に対する異常性に関する情報である異常情報を取得する判断部と、
前記異常情報を出力する出力部とを具備する異常操作検知装置。
【請求項２】
前記正常操作集合および前記操作情報は、操作により発生したイベントであり、情報システムが発生させるイベントに関する内部イベント情報も含む請求項１記載の異常操作検知装置。
【請求項３】
前記受付部が受け付けた操作集合は、
前記ユーザが前記情報システムに対して、ログインからログアウトまでの１セッションの間に行った２以上の操作の操作情報を有する情報であり、
前記判断部は、
前記受付部が受け付けた操作集合の全体を、前記判断元情報に対して適用し、異常情報を取得する請求項１または請求項２記載の異常操作検知装置。
【請求項４】
前記受付部が受け付けた操作集合は、
前記ユーザが前記情報システムに対して行った、連続する２以上の操作の操作情報である連続操作情報を有し、
前記判断部は、
前記連続操作情報を、前記判断元情報格納部の２以上の正常操作集合に対して適用し、異常情報を取得する請求項１から請求項３いずれか一項に記載の異常操作検知装置。
【請求項５】
希な操作を特定する操作情報である１以上の希操作情報が格納される希操作情報格納部をさらに具備し、
前記判断部は、
前記受付部が受け付けた操作集合の中に、前記希操作情報格納部の１以上の各希操作情報の存在に関する希操作存在情報を取得し、希操作存在情報を用いて異常情報を取得する請求項１から請求項４いずれか一項に記載の異常操作検知装置。
【請求項６】
前記正常操作集合は、
２以上の正常操作情報から構成される正常操作ベクトルであり、
前記判断部は、
前記受付部が受け付けた操作集合から入力ベクトルを構成し、当該入力ベクトルと前記２以上の正常操作ベクトルとを用いて、異常情報を取得する請求項１から請求項５いずれか一項に記載の異常操作検知装置。
【請求項７】
前記判断元情報は、
前記２以上の正常操作集合を用いて、機械学習のアルゴリズムにより構成された学習器であり、
前記判断部は、
前記受付部が受け付けた操作集合を、機械学習のアルゴリズムにより、前記学習器に適用し異常情報を取得する請求項１から請求項６いずれか一項に記載の異常操作検知装置。
【請求項８】
システム運用時の情報システムに対する正常な操作を特定する２以上の正常操作情報に関する２以上の正常操作集合に基づく判断元情報が格納される判断元情報格納部と、受付部と、判断部と、出力部とにより実現される異常操作検知方法であって、
前記受付部が、ユーザが情報システムに対して行った操作を特定する２以上の操作情報を有する操作集合を受け付ける受付ステップと、
前記判断部が、前記判断元情報と、前記受付ステップで受け付けられた操作集合とを用いて、当該操作集合に対する異常性に関する情報である異常情報を取得する判断ステップと、
前記出力部が、前記異常情報を出力する出力ステップとを具備する異常操作検知方法。
【請求項９】
システム運用時の情報システムに対する正常な操作を特定する２以上の正常操作情報に関する２以上の正常操作集合に基づく判断元情報が格納される判断元情報格納部にアクセス可能なコンピュータを、
ユーザが情報システムに対して行った操作を特定する２以上の操作情報を有する操作集合を受け付ける受付部と、
前記判断元情報と、前記受付部が受け付けた操作集合とを用いて、当該操作集合に対する異常性に関する情報である異常情報を取得する判断部と、
前記異常情報を出力する出力部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２以上の正常な操作の集合である正常操作集合を用いて、受け付けられた操作集合の異常性を判断し、判断結果を出力する異常操作検知装置等に関するものである。
【背景技術】
【０００２】
従来、コンピュータの表示画面及び操作、その他の機器の動作を表示画面の動画像と共に多重化して記録し、監査のための証跡として保存して、不正アクセスや操作及び動作を記録・監視する装置があった（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２９５４８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術では、システム運用において、入力された操作列の情報を用いて異常操作を検知することが困難、または煩雑であった。
【０００５】
さらに、従来技術では、システム運用において、過去の正常な操作列の情報を用いて、入力された操作列に対して、異常操作を検知することが困難、または煩雑であった。
【０００６】
なお、一般エリア、アクセスエリア、高セキュリティエリアのセキュリティレベルのうち、システム運用で求められるセキュリティレベルは高セキュリティエリアに相当する。高セキュリティエリアではＩＴシステムの開発者、管理者が操作を実施する。そして、端末を操作する場合、通常、事前に承認を得る必要があり、あらかじめ決められた手順書に則って作業を実施する。
【０００７】
しかし、操作の際に使用された手順書に応じた操作列の情報に対して、異常操作を検知することが困難であった。なお、異常操作は、例えば、手順書外の操作であり、例えば、操作ミス、トラブルシューティング、不正操作のうちの１または２種類以上の操作である。
【課題を解決するための手段】
【０００８】
本第一の発明の異常操作検知装置は、システム運用時の情報システムに対する正常な操作を特定する２以上の正常操作情報に関する２以上の正常操作集合に基づく判断元情報が格納される判断元情報格納部と、被検査者が情報システムに対して行った操作を特定する２以上の操作情報を有する操作集合を受け付ける受付部と、判断元情報と、受付部が受け付けた操作集合とを用いて、操作集合に対する異常性に関する情報である異常情報を取得する判断部と、異常情報を出力する出力部とを具備する異常操作検知装置である。
【０００９】
かかる構成により、システム運用において、異常操作を検知できる。
【００１０】
また、本第二の発明の異常操作検知装置は、第一の発明に対して、正常操作集合および操作情報は、操作により発生したイベントであり、情報システムが発生させるイベントに関する内部イベント情報も含む異常操作検知装置である。
【００１１】
かかる構成により、システム運用において、精度高く異常操作を検知できる。
【００１２】
また、本第三の発明の異常操作検知装置は、第一または第二の発明に対して、受付部が受け付けた操作集合は、被検査者が情報システムに対して、ログインからログアウトまでの１セッションの間に行った２以上の操作の操作情報を有する情報であり、判断部は、受付部が受け付けた操作集合の全体を、判断元情報に対して適用し、異常情報を取得する異常操作検知装置である。
【００１３】
かかる構成により、システム運用において、適切に異常操作を検知できる。
【００１４】
また、本第四の発明の異常操作検知装置は、第一から第三いずれか１つの発明に対して、受付部が受け付けた操作集合は、被検査者が情報システムに対して行った、連続する２以上の操作の操作情報である連続操作情報を有し、判断部は、連続操作情報を、判断元情報格納部の２以上の正常操作集合に対して適用し、異常情報を取得する異常操作検知装置である。
【００１５】
かかる構成により、システム運用において、適切に異常操作を検知できる。
【００１６】
また、本第五の発明の異常操作検知装置は、第一から第四いずれか１つの発明に対して、希な操作を特定する操作情報である１以上の希操作情報が格納される希操作情報格納部をさらに具備し、判断部は、受付部が受け付けた操作集合の中に、希操作情報格納部の１以上の各希操作情報の存在に関する希操作存在情報を取得し、希操作存在情報を用いて異常情報を取得する異常操作検知装置である。
【００１７】
かかる構成により、システム運用において、適切に異常操作を検知できる。
【００１８】
また、本第六の発明の異常操作検知装置は、第一から第五いずれか１つの発明に対して、正常操作集合は、２以上の正常操作情報から構成される正常操作ベクトルであり、判断部は、受付部が受け付けた操作集合から入力ベクトルを構成し、入力ベクトルと２以上の正常操作ベクトルとを用いて、異常情報を取得する異常操作検知装置である。
【００１９】
かかる構成により、システム運用において、適切に異常操作を検知できる。
【００２０】
また、本第七の発明の異常操作検知装置は、第一から第六いずれか１つの発明に対して、判断元情報は、２以上の正常操作集合を用いて、機械学習のアルゴリズムにより構成された学習器であり、判断部は、受付部が受け付けた操作集合を、機械学習のアルゴリズムにより、学習器に適用し異常情報を取得する異常操作検知装置である。
【００２１】
かかる構成により、システム運用において、精度高く異常操作を検知できる。
【発明の効果】
【００２２】
本発明による異常操作検知装置によれば、システム運用において、異常操作を検知できる。
【図面の簡単な説明】
【００２３】
【図１】実施の形態１における異常操作検知装置Ａのブロック図
【図２】同異常操作検知装置Ａの動作例について説明するフローチャート
【図３】同外れ値検知処理の例説明するフローチャート
【図４】同新規時系列特徴検知処理の例について説明するフローチャート
【図５】同希少特徴検知処理の例について説明するフローチャート
【図６】同学習処理について、説明するフローチャート
【図７】同判断元情報が蓄積される処理を説明する第一の概念図
【図８】同判断元情報が蓄積される処理を説明する第二の概念図
【図９】同異常検知のためのクラスタ選択の処理を説明する概念図
【図１０】同外れ値検知の処理を説明する概念図
【図１１】同新規時系列特徴による検知の処理を説明する概念図
【図１２】同希少特徴による検知の処理を説明する概念図
【図１３】同異常情報の出力例を示す図
【図１４】同コンピュータシステムの概観図
【図１５】同コンピュータシステムのブロック図
【発明を実施するための形態】
【００２４】
以下、異常操作検知装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【００２５】
（実施の形態１）
【００２６】
本実施の形態において、ユーザの２以上の正常な操作の集合である正常操作集合を用いて、受け付けられた操作集合の異常性を判断し、判断結果を出力する異常操作検知装置について説明する。なお、操作集合は、ユーザの操作により発生した内部イベントを含んでも良い。また、操作集合は、ログインからログアウトまでの１セッションの操作の集合であることは好適である。
【００２７】
また、本実施の形態において、異常性の検知は、例えば、後述する１セッション単位のログデータの外れ値検知、後述する新規な２以上の連続する操作の検知による判断、希な操作の検知による判断等があり得る。
【００２８】
また、本実施の形態において、正常操作集合は、２以上のいずれかの手順書に対応しており、受け付けられた操作集合に対する手順書に対応する正常操作集合を用いて、異常性を判断し、判断結果を出力する異常操作検知装置について説明する。
【００２９】
さらに、本実施の形態において、機械学習のアルゴリズムを用いて、異常性を判断し、判断結果を出力する異常操作検知装置について説明する。
【００３０】
図１は、本実施の形態における異常操作検知装置Ａのブロック図である。異常操作検知装置Ａは、格納部１、受付部２、処理部３、および出力部４を備える。
【００３１】
格納部１は、例えば、判断元情報格納部１１、希操作情報格納部１２、および手順書情報格納部１３を備える。処理部３は、例えば、学習部３１、および判断部３２を備える。
【００３２】
判断部３２は、例えば、手順書決定手段３２１、正常操作集合選択手段３２２、および判断手段３２３を備える。
【００３３】
格納部１には、各種の情報が格納される。各種の情報とは、例えば、後述する判断元情報、後述する希操作情報、後述する手順書情報である。
【００３４】
判断元情報格納部１１には、判断元情報が格納される。判断元情報は、異常性の判断に使用される情報である。判断元情報は、２以上の正常操作集合に基づく情報である。正常操作集合は、２以上の正常操作情報に関する情報である。正常操作情報は、システム運用時の情報システムに対する正常な操作を特定する情報である。正常操作情報は、例えば、コマンド名である。正常操作情報は、例えば、操作対象のウィンドウを識別するウィンドウ識別子（例えば、ウィンドウタイトル、ウィンドウＩＤなど）とユーザがキーボードに入力した情報（例えば、コマンド名、コマンド名と引数［例えば、データベース名、ファイル名、変数名、データ等］）とを含む。正常操作情報は、例えば、ユーザの操作により発生した内部イベントを特定する情報を含む。内部イベントは、例えば、ＯＳが発生させるイベント、アプリケーションが発生させるイベントである。
【００３５】
判断元情報は、２以上の正常操作集合そのものでも良いし、後述する学習器でも良い。判断元情報は、正常操作集合から構成された２以上の正常操作ベクトルでも良い。また、判断元情報は、正常操作集合から構成された２以上の正常操作ベクトルに加えて、不正の（異常な）操作集合から構成された１以上の異常操作ベクトルを含んでも良い。判断元情報は、２以上の正常操作集合と１以上の異常操作集合とを含む情報でも良い。
【００３６】
正常操作集合は、例えば、２以上の正常操作情報から構成されるベクトルである正常操作ベクトルでも良い。正常操作ベクトルは、例えば、２以上の正常操作情報が有する単語（例えば、コマンド名、ファイル名など）の出現頻度を要素として有するベクトルである。正常操作ベクトルは、例えば、２以上の正常操作情報に対して、Bag-of-Wordsを用いてベクトル化した情報である。なお、正常操作集合から正常操作ベクトルを取得するアルゴリズムは問わない。
【００３７】
正常操作集合は、例えば、正常な２以上の操作列を示す２以上の正常操作情報である。正常操作集合は、例えば、情報システムに対する操作ログであり、２以上の正常な命令列であり、例えば、「useradd, mkdir, su, passwd、・・・」、「useradd, passwd, usermod・・・」、「touch, sudo, useradd・・・」である。なお、情報システムとは、コンピュータ、コンピュータ上のアプリケーション、コンピュータシステム等であり、例えば、銀行の情報システムである。また、命令列は、通常、時系列の命令列である。
【００３８】
判断元情報は、２以上の正常操作集合を用いて、機械学習のアルゴリズムにより構成された学習器であっても良い。なお、学習器は、例えば、後述する学習部３１が取得した情報である。
【００３９】
また、各正常操作集合は、例えば、手順書に対応付いている。手順書に対応付いていることは、手順書を識別する手順書識別子に対応付いていることでも良いし、手順書のファイルに対応付いていることでも良い。また、手順書とは、情報システムの運用、情報システムの操作に用いられるドキュメントである。手順書は、マニュアルと言っても良い。また、手順書は、例えば、パッチをシステムに適用する際に参照するパッチ適用手順書、操作のログを取得する際に参照するログ取得手順書、ユーザを追加登録する場合に参照するユーザ追加手順書等である。
【００４０】
また、２以上の各正常操作集合は、操作に使用された１または２以上の手順書に対応づいて、グループ化されて格納されていることは好適である。２以上の各正常操作集合をグループ化する処理は、２以上の正常操作ベクトルをグループ化する処理であり、例えば、ベクトル間の距離を用いて正常操作ベクトルをグループ化する。かかるグループ化の処理は高知技術であるので、詳細な説明を省略する。なお、かかる処理は、処理部３が行うことは好適である。
【００４１】
かかることは、手順書または手順書のグループごとに、正常操作集合を分類することは、以下の操作の特性に基づいており、有効である。つまり、システム運用の現場では手順書を用いた操作が徹底されて行われることが多く、操作内容が似る性質がある。その特性を利用し、収集した操作ログ（操作集合）を用いて、新たに操作した内容と比較し、後述するように、異常操作を検知することは有効である。
【００４２】
また、２以上の各正常操作集合は、操作対象のサーバ装置ごとにグループ化されて格納されていても良い。これは、企業におけるサーバ装置は、用途ごとに構築されるケースが多くみられる。そして、サーバ装置ごとに見た場合、行われる業務は、パッチ適用やログ取得等の数種類から１０数種類である場合が多い。かかるシステム運用の特性を利用し、操作対象のサーバ装置ごとに正常操作集合をグループ化し、グループごとに正常操作集合を利用して、後述するように、異常操作を検知することは有効である。なお、サーバ装置ごとにグループ化されている場合、例えば、２以上の各正常操作集合は、サーバ装置を識別するサーバ識別子に対応付いている。
【００４３】
希操作情報格納部１２には、１または２以上の希操作情報が格納される。希操作情報は、希な操作を特定する操作情報である。操作情報は、操作に関する情報である。操作情報は、例えば、操作を特定する命令、使用される情報名（ファイル名、データベース名など）、命令または情報（引数など）を特定するＩＤである。操作情報は、操作により発生する内部イベントでも良い。
【００４４】
希操作情報は、例えば、希な操作を特定する命令である。希操作情報は、例えば、希に使用される情報名でも良い。希操作情報は、例えば、命令または情報（引数など）を特定するＩＤである。希操作情報格納部１２の希操作情報は、例えば、判断元情報格納部１１の２以上の正常操作集合から、後述する処理部３により取得された情報である。
【００４５】
手順書情報格納部１３には、１または２以上の手順書情報が格納される。手順書情報は、手順書に関する情報である。手順書情報は、手順書のファイルでも良いし、手順書のファイルから構成されたベクトルでも良い。手順書情報は、例えば、手順書のファイルに含まれる用語の出現頻度を要素とするベクトルである。手順書情報は、例えば、手順書のファイルをBag-of-Wordsを用いてベクトル化した情報（ベクトル）である。
【００４６】
また、手順書情報格納部１３に、２以上の手順書情報がグループ化されていても良い。つまり、手順書情報格納部１３には、似た２以上の手順書情報がグループ化されていても良い。手順書情報が、例えば、ベクトルである場合、クラスタリングされたベクトルの集合がグループを構成する。なお、似た２以上の手順書情報は、例えば、各手順書情報から構成されたベクトル間の距離の予め決められた条件を満たすほど近いベクトルに対応する２以上の手順書情報である。また、ベクトルの集合を分類し、グループ化する技術は公知技術であるので説明は省略する。また、手順書情報がグループ化されている場合、各グループを代表するベクトルが手順書情報格納部１３に格納されていても良い。グループを代表するベクトルは、例えば、グループに属する１以上のベクトルの平均値のベクトルである。
【００４７】
受付部２は、各種の指示や情報等を受け付ける。各種の指示や情報等とは、例えば、操作集合、判断指示、学習指示である。操作集合は、被検査者が情報システムに対して行った操作を特定する２以上の操作情報を有する情報である。操作集合は、例えば、ログインからログアウトまでの１セッションの操作情報の集合等であるが、予め決められた条件を満たす量の操作の情報の集合でも良い。予め決められた条件を満たす量の操作とは、１時間単位の操作、予め決められた量以上の操作情報等である。なお、被検査者とは、ユーザであり、異常な操作を行ったか否かを検査される者である。
【００４８】
判断指示は、操作集合の異常性に関する判断を行う指示である。判断指示は、操作集合または操作集合を特定する情報を含む。判断指示は、手順書識別子を有しても良い。また、判断指示は、サーバ装置を識別するサーバ識別子を有しても良い。
【００４９】
学習指示は、２以上の正常操作集合を用いて、後述する学習器を構成する指示である。学習指示は、手順書を特定する情報を含んでも良い。手順書を特定する情報は、例えば、手順書識別子、手順書のグループを特定するグループ識別子である。
【００５０】
なお、操作集合は、情報システムに対して被験者が行った操作の集合を、情報システムが有する図示しない記録部が取得し、記録した情報である。操作集合は、被検査者が情報システムに対して、ログインからログアウトまでの１セッションの間に行った２以上の操作の操作情報を有する情報であることは好適である。ただし、操作集合は、１セッションの間の一部の期間の操作の操作情報の情報でも良い。
【００５１】
ここで、受け付けとは、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付け、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付けなどを含む概念である。
【００５２】
処理部３は、各種の処理を行う。各種の処理とは、例えば、学習部３１、判断部３２が行う処理である。
【００５３】
学習部３１は、機械学習のアルゴリズムにより、２以上の正常操作集合に対して学習処理を行い、学習器を構成する。
【００５４】
学習部３１は、例えば、受付部２が学習指示を受け付けた場合に、当該学習指示に従って、２以上の正常操作集合に対して学習処理を行い、学習器を構成する。
【００５５】
なお、学習指示が手順書を特定する情報を含んでいる場合、学習部３１は、当該手順書を特定する情報により特定される手順書に対応する２以上の正常操作集合を判断元情報格納部１１から取得し、当該２以上の正常操作集合に対して学習処理を行い、学習器を構成することは好適である。また、学習部３１は、１または２以上のグループごとに、２以上の正常操作集合を判断元情報格納部１１から取得し、当該２以上の正常操作集合に対して学習処理を行い、学習器を構成することは好適である。なお、かかる処理により、手順書ごと、またはグループごとに学習器を構成できる。
【００５６】
また、機械学習のアルゴリズムは、例えば、深層学習、ＳＶＭ、ＳＶＲ、決定木、ランダムフォレスト等であり、問わない。
【００５７】
学習部３１は、機械学習のアルゴリズムにより、２以上の正常操作集合（正例）と、２以上の異常操作集合（負例）とを用いて学習処理を行い、学習器を構成しても良い。かかる場合、負例は、予め与えられていることは好適であるが、学習部３１が自動生成しても良い。例えば、学習部３１は、２以上の各正常操作集合から構成される２以上の各ベクトルとの距離が閾値以上の１以上のベクトルを自動生成する。例えば、学習部３１は、２以上の各正常操作集合から構成される２以上のベクトルの平均値のベクトル（２以上のベクトルの要素の平均値を要素とするベクトル）との距離が閾値以上の１以上のベクトルを自動生成する。
【００５８】
判断部３２は、判断元情報と、受付部２が受け付けた操作集合とを用いて、異常情報を取得する。異常情報は、受付部２が受け付けた操作集合に対する異常性に関する情報である。異常情報は、例えば、異常であることを示す情報、正常であることを示す情報、受付部２が受け付けた操作集合の中の異常な箇所を示す情報等である。異常な箇所を示す情報は、例えば、異常な命令列、希操作情報、受付部２が受け付けた操作集合の中の希操作情報を特定する情報である。異常情報は、例えば、異常性に関するレポートである。異常情報は、例えば、上述したグループごとの異常性に関する情報である。
【００５９】
判断部３２は、例えば、受付部２が受け付けた操作集合から入力ベクトルを構成し、入力ベクトルと２以上の正常操作ベクトルとを用いて、異常情報を取得する。なお、入力ベクトルは、操作集合ベクトルと言っても良い。
【００６０】
判断部３２は、例えば、受付部２が受け付けた操作集合に対応する手順書を決定し、手順書に対応する２以上の正常操作集合を用いて異常情報を取得する。
【００６１】
判断部３２は、例えば、受付部２が受け付けた操作集合を、機械学習のアルゴリズムにより、学習器に適用し異常情報を取得する。
【００６２】
判断部３２は、例えば、以下の（１）から（３）のうちの１以上の方法で異常を判断する。なお、（１）は外れ値検知、（２）は新規時系列特徴による検知、（３）は希少特徴による検知という。
（１）外れ値検知
【００６３】
外れ値検知とは、異常性の判断対象の操作集合の全体が、正常操作集合に対して、外れているか否かを判断することである。
【００６４】
判断部３２は、例えば、受付部２が受け付けた操作集合の全体を、判断元情報に対して適用し、外れ値に関する異常情報を取得する。
【００６５】
判断部３２は、例えば、受付部２が受け付けた操作集合の全体から構成されるベクトルである操作集合ベクトルと、２以上の各正常操作集合から構成されるベクトルである各正常操作集合ベクトルとの距離を取得し、距離の平均値が閾値以上であるか否かを判断する。判断部３２は、例えば、距離の平均値が閾値以上または閾値より大きい場合は、異常であることを示す異常情報を取得し、距離の平均値が閾値以下または閾値未満である場合は、正常であることを示す異常情報を取得する。
【００６６】
また、判断部３２は、例えば、２以上の各正常操作集合から構成される正常操作集合ベクトルの平均値を取得し、当該平均値と、操作集合の全体から構成される操作集合ベクトルとの距離を取得し、距離が閾値以上であるか否かを判断する。判断部３２は、例えば、距離が閾値以上または閾値より大きい場合は、異常であることを示す異常情報を取得し、距離が閾値以下または閾値未満である場合は、正常であることを示す異常情報を取得する。
【００６７】
判断部３２は、例えば、受付部２が受け付けた操作集合と、判断元情報格納部１１の判断元情報を比較して、ｌｏｆによる外れ値検知を行っても良い。さらに具体的には、判断部３２は、例えば、受付部２が受け付けた操作集合から取得した操作集合ベクトルと、判断元情報格納部１１の２以上の各正常操作集合ベクトルとを比較して、ｌｏｆによる外れ値検知を行っても良い。なお、ｌｏｆによる外れ値検知は公知技術であるので、説明を省略する。
【００６８】
また、判断部３２は、例えば、受付部２が受け付けた操作集合の全体を、上述した学習器に適用し、機械学習のアルゴリズムにより異常情報を取得する。なお、学習器が、異常か正常かを分類する学習器である場合、判断部３２は、受付部２が受け付けた操作集合の全体を、上述した学習器に適用し、機械学習のアルゴリズムにより、異常か正常かを示す異常情報を取得する。
（２）新規時系列特徴による検知
【００６９】
新規時系列特徴による検知とは、異常性の判断対象の操作集合の中に、正常操作集合には出現しない、または出現し難い時系列の操作列の存在に関する異常性の検知である。
【００７０】
判断部３２は、連続操作情報を、判断元情報格納部１１の２以上の正常操作集合に対して適用し、異常情報を取得する。なお、連続操作情報とは、時間的に連続する２以上の操作の操作情報である。連続操作情報は、２以上の操作情報を有する。
【００７１】
判断部３２は、例えば、受付部２が受け付けた操作集合から、２または３以上の連続する操作列の情報である１または２以上の操作情報を取得し、取得した操作情報が判断元情報格納部１１の２以上の正常操作集合に含まれるか否かを検知する。そして、判断部３２は、例えば、判断元情報格納部１１の２以上の正常操作集合に含まれない新規な連続操作情報の出現数または出現割合を取得する。そして、判断部３２は、例えば、かかる出現数または出現割合が閾値以上または閾値より大きい場合、異常であることを示す異常情報を取得し、閾値以下または閾値より小さい場合、正常であることを示す異常情報を取得する。なお、判断部３２は、例えば、かかる出現数または出現割合をパラメータとする増加関数を用いて算出した値を異常スコアとして取得しても良い。なお、異常スコアは、異常情報の一例である。また、新規な連続操作情報の出現割合は、例えば、「受付部２が受け付けた操作集合の中の新規な連続操作情報の出現数／受付部２が受け付けた操作集合の中の連続操作情報の数」により算出される。
（３）希少特徴による検知
【００７２】
希少特徴による検知とは、異常性の判断対象の操作集合の中に、正常操作集合には出現しない、または出現し難い操作の存在に関する異常性の検知である。
【００７３】
判断部３２は、受付部２が受け付けた操作集合の中に、希操作情報格納部１２の１以上の各希操作情報の存在に関する希操作存在情報を取得し、希操作存在情報を用いて異常情報を取得する。希操作存在情報とは、例えば、希操作情報の含有率（希操作情報の数／操作情報の数）、希操作情報の存在数、希操作情報が存在するか否かなどである。
【００７４】
手順書決定手段３２１は、受付部２が受け付けた操作集合を用いて、手順書を決定する。手順書決定手段３２１は、例えば、受付部２が受け付けた操作集合からベクトルを構成し、当該ベクトルと、手順書情報格納部１３のベクトルである２以上の各手順書情報との距離を算出し、距離が最も小さい手順書情報に対応する手順書を、採用する手順書として決定する。手順書決定手段３２１は、例えば、受付部２が受け付けた操作集合からベクトルを構成し、当該ベクトルと、手順書情報格納部１３に格納されている各グループのベクトルとの距離を算出し、距離が最も小さいグループに対応する手順書を、採用する手順書として決定する。
【００７５】
手順書決定手段３２１は、受付部２が受け付けた手順書識別子を取得することにより、手順書を決定しても良い。
【００７６】
正常操作集合選択手段３２２は、手順書決定手段３２１が決定した手順書に対応する２以上の正常操作集合を判断元情報格納部１１から取得する。かかる場合、正常操作集合は、手順書に対応付いている。正常操作集合選択手段３２２は、例えば、手順書決定手段３２１が取得した手順書識別子と対になる２以上の正常操作集合を判断元情報格納部１１から取得する。また、正常操作集合選択手段３２２は、受付部２が受け付けた判断指示に含まれるサーバ識別子と対になる２以上の正常操作集合を判断元情報格納部１１から取得しても良い。
【００７７】
判断手段３２３は、正常操作集合選択手段３２２が取得した２以上の正常操作集合を用いて異常情報を取得する。なお、判断手段３２３は、手順書決定手段３２１と正常操作集合選択手段３２２とを有さず、すべての正常操作集合を用いて、異常情報を取得しても良い。
【００７８】
なお、判断手段３２３が２以上の正常操作集合を用いて異常情報を取得する処理は、上述したので、再度の説明を省略する。判断手段３２３が２以上の正常操作集合を用いて異常情報を取得する処理は、例えば、上述した（１）は外れ値検知、（２）は新規時系列特徴による検知、（３）は希少特徴による検知である。
【００７９】
出力部４は、判断部３２が取得した異常情報を出力する。ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
【００８０】
格納部１、判断元情報格納部１１、希操作情報格納部１２、および手順書情報格納部１３は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００８１】
格納部１等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部１等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部１等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部１等で記憶されるようになってもよい。
【００８２】
処理部３、学習部３１、判断部３２、手順書決定手段３２１、正常操作集合選択手段３２２、および判断手段３２３は、通常、ＭＰＵやメモリ等から実現され得る。処理部３の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００８３】
出力部４は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部４は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【００８４】
次に、異常操作検知装置Ａの動作例について、図２のフローチャートを用いて説明する。
【００８５】
（ステップＳ２０１）受付部２は、判断指示を受け付けたか否かを判断する。判断指示を受け付けた場合はステップＳ２０２に行き、判断指示を受け付けなかった場合はステップＳ２０８に行く。
【００８６】
（ステップＳ２０２）判断部３２は、ステップＳ２０１で判断指示に対応する操作集合を取得する。判断部３２は、例えば、判断指示が有する操作集合を取得する。
【００８７】
（ステップＳ２０３）判断部３２は、ステップＳ２０２で取得した操作集合に対して、外れ値検知処理を行う。外れ値検知処理の例について、図３のフローチャートを用いて説明する。
【００８８】
（ステップＳ２０４）判断部３２は、ステップＳ２０２で取得した操作集合に対して、新規時系列特徴による検知処理を行う。新規時系列特徴検知処理の例について、図４のフローチャートを用いて説明する。
【００８９】
（ステップＳ２０５）判断部３２は、ステップＳ２０２で取得した操作集合に対して、希少特徴による検知処理を行う。希少特徴検知処理の例について、図５のフローチャートを用いて説明する。
【００９０】
（ステップＳ２０６）処理部３は、ステップＳ２０３、ステップＳ２０４、およびステップＳ２０５で取得した異常情報のうちの１以上の異常情報を用いて出力する異常情報を構成する。
【００９１】
（ステップＳ２０７）出力部４は、ステップＳ２０６で構成された異常情報を出力する。ステップＳ２０１に戻る。
【００９２】
（ステップＳ２０８）受付部２は、学習指示を受け付けたか否かを判断する。学習指示を受け付けた場合はステップＳ２０９に行き、学習指示を受け付けなかった場合はステップＳ２０１に戻る。
【００９３】
（ステップＳ２０９）学習部３１は、学習処理を行う。ステップＳ２０１に戻る。学習処理について、図６のフローチャートを用いて説明する。
【００９４】
なお、図２のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【００９５】
次に、ステップＳ２０３の外れ値検知処理の例について、図３のフローチャートを用いて説明する。
【００９６】
（ステップＳ３０１）判断部３２は、カウンタｉに１を代入する。
【００９７】
（ステップＳ３０２）判断部３２は、ｉ番目の正常操作集合が、判断元情報格納部１１に存在するか否かを判断する。ｉ番目の正常操作集合が存在する場合はステップＳ３０３に行き、存在しない場合はステップＳ３０５に。
【００９８】
（ステップＳ３０３）判断部３２は、ｉ番目の正常操作集合を判断元情報格納部１１から取得し、ｉ番目の正常操作集合からベクトルを取得する。なお、かかるベクトルは、正常操作ベクトルである。
【００９９】
（ステップＳ３０４）判断部３２は、カウンタｉを１、インクリメントする。ステップＳ３０２に戻る。
【０１００】
（ステップＳ３０５）判断部３２は、ステップＳ２０２で取得された操作集合から操作集合ベクトルを取得する。
【０１０１】
（ステップＳ３０６）判断部３２は、ステップＳ３０５で取得した操作集合ベクトルが、ステップＳ３０３で取得した２以上の正常操作ベクトルに対して、外れ値か否かを判断する。外れ値ある場合はステップＳ３０７に行き、外れ値でない場合はステップＳ３０８に行く。なお、外れ値か否かは、例えば、ｌｏｆにより取得される。
【０１０２】
（ステップＳ３０７）判断部３２は、変数「第一異常情報」に「異常」を示す値を代入する。上位処理にリターンする。なお、かかる値は、検査対象の操作集合が外れ値であることを示す。
【０１０３】
（ステップＳ３０８）判断部３２は、変数「第一異常情報」に「正常」を示す値を代入する。上位処理にリターンする。なお、かかる値は、検査対象の操作集合が外れ値でないことを示す。
【０１０４】
次に、ステップＳ２０４の新規時系列特徴検知処理の例について、図４のフローチャートを用いて説明する。
【０１０５】
（ステップＳ４０１）判断部３２は、カウンタｉに１を代入する。
【０１０６】
（ステップＳ４０２）判断部３２は、ステップＳ２０２で取得された操作集合の中でｉ番目の連続操作情報が存在するか否かを判断する。ｉ番目の連続操作情報が存在する場合はステップＳ４０３に行き、ｉ番目の連続操作情報が存在しない場合はステップＳ４０６に行く。
【０１０７】
（ステップＳ４０３）判断部３２は、ステップＳ２０２で取得された操作集合の中からｉ番目の連続操作情報を取得する。なお、判断部３２は、例えば、２以上の操作情報の列である操作集合の中から、カレントの操作情報をずらしながら、ｎ個（ｎは２または３以上の自然数）の連続する操作情報の列である連続操作情報を取得する。なお、ずらす間隔は、通常、１であるが、ｎ等でも良い場合があり得る。
【０１０８】
（ステップＳ４０４）判断部３２は、ステップＳ４０３で取得したｉ番目の連続操作情報の、判断元情報格納部１１の２以上の正常操作集合における出現回数を取得する。
【０１０９】
（ステップＳ４０５）判断部３２は、カウンタｉを１、インクリメントする。ステップＳ４０２に戻る。
【０１１０】
（ステップＳ４０６）判断部３２は、ステップＳ４０４で取得した連続操作情報の出現回数を用いて、第二異常情報を取得する。上位処理にリターンする。
【０１１１】
なお、判断部３２は、例えば、ステップＳ４０４で取得した出現回数が第一の閾値以下または第一の閾値未満（例えば、０）である連続操作情報の数を取得し、当該数が第二の閾値以上または第二の閾値より大きい場合に、変数「第二異常情報」に「異常」を示す値を代入する。また、判断部３２は、例えば、ステップＳ４０４で取得した出現回数が第一の閾値以下または第一の閾値未満（例えば、０）である連続操作情報の数を取得し、当該数が第二の閾値以下または第二の閾値未満である場合に、変数「第二異常情報」に「正常」を示す値を代入する。
【０１１２】
また、判断部３２は、例えば、ステップＳ４０４で取得した出現回数が第一の閾値以下または第一の閾値未満（例えば、０）である連続操作情報の数を取得し、当該数を用いて、検査対象の操作集合における割合を取得し、当該割合が第二の閾値以上または第二の閾値より大きい場合に、変数「第二異常情報」に「異常」を示す値を代入する。また、判断部３２は、例えば、ステップＳ４０４で取得した出現回数が第一の閾値以下または第一の閾値未満（例えば、０）である連続操作情報の割合を取得し、当該割合が第二の閾値以下または第二の閾値未満である場合に、変数「第二異常情報」に「正常」を示す値を代入する。
【０１１３】
次に、ステップＳ２０５の希少特徴検知処理について、図５のフローチャートを用いて説明する。
【０１１４】
（ステップＳ５０１）判断部３２は、初期化処理を行う。初期化処理は、変数「希操作回数」に０を代入する処理を含む。
【０１１５】
（ステップＳ５０２）判断部３２は、取得した操作集合（検査対象の操作集合）の中の各要素の出現回数を取得する。なお、要素は、通常、操作情報である。
【０１１６】
（ステップＳ５０３）判断部３２は、カウンタｉに１を代入する。
【０１１７】
（ステップＳ５０４）判断部３２は、取得した操作集合（検査対象の操作集合）の中に、ｉ番目の要素が存在するか否かを判断する。ｉ番目の要素が存在する場合はステップＳ５０５に行き、ｉ番目の要素が存在しない場合はステップＳ５０９に行く。
【０１１８】
（ステップＳ５０５）判断部３２は、取得した操作集合（検査対象の操作集合）の中のｉ番目の要素を取得する。
【０１１９】
（ステップＳ５０６）判断部３２は、ステップＳ５０５で取得したｉ番目の要素が希操作情報であるか否かを判断する。ｉ番目の要素が希操作情報である場合はステップＳ５０７に行き、ｉ番目の要素が希操作情報でない場合はステップＳ５０８に行く。ｉ番目の要素が希操作情報であるか否かは、例えば、希操作情報格納部１２にｉ番目の要素が存在するか否かにより行う。つまり、判断部３２は、ｉ番目の要素が希操作情報格納部１２に存在する場合は、ｉ番目の要素が希操作情報であると判断する。また、判断部３２は、ｉ番目の要素が判断元情報格納部１１の２以上の正常操作集合に存在する数または割合を算出し、数または割合が閾値以下または閾値より小さい場合に、ｉ番目の要素が希操作情報であると判断する。
【０１２０】
（ステップＳ５０７）判断部３２は、変数「希操作回数」を１、インクリメントする。
【０１２１】
（ステップＳ５０８）判断部３２は、カウンタｉを１、インクリメントする。ステップＳ５０４に戻る。
【０１２２】
（ステップＳ５０９）判断部３２は、変数「希操作回数」の値が条件を満たすか否かを判断する。条件を満たす場合はステップＳ５１０に行き、条件を満たさない場合はステップＳ５１１に行く。なお、ここで、判断部３２は、変数「希操作回数」の値が予め決められた条件を満たすほど大きいか否かを判断する。
【０１２３】
（ステップＳ５１０）判断部３２は、変数「第三異常情報」に「異常」であることを示す値を代入する。上位処理にリターンする。変数「第三異常情報」が「異常」であることを示す値である場合、希少な操作が多数行われたことを示す。
【０１２４】
（ステップＳ５１１）判断部３２は、変数「第三異常情報」に「正常」であることを示す値を代入する。上位処理にリターンする。
【０１２５】
次に、ステップＳ２０９の学習処理について、図６のフローチャートを用いて説明する。
【０１２６】
（ステップＳ６０１）学習部３１は、カウンタｉに１を代入する。
【０１２７】
（ステップＳ６０２）学習部３１は、ｉ番目の正常操作集合が存在するか否かを判断する。ｉ番目の正常操作集合が存在する場合はステップＳ６０３に行き、ｉ番目の正常操作集合が存在しない場合はステップＳ６０５に行く。
【０１２８】
（ステップＳ６０３）学習部３１は、ｉ番目の正常操作集合から正常操作ベクトルを構成する。
【０１２９】
（ステップＳ６０４）学習部３１は、カウンタｉを１、インクリメントする。ステップＳ６０２に戻る。
【０１３０】
（ステップＳ６０５）学習部３１は、カウンタｊに１を代入する。
【０１３１】
（ステップＳ６０６）学習部３１は、ｊ番目の異常操作集合が存在するか否かを判断する。ｊ番目の異常操作集合が存在する場合はステップＳ６０３に行き、ｊ番目の異常操作集合が存在しない場合はステップＳ６０５に行く。
【０１３２】
（ステップＳ６０７）学習部３１は、ｊ番目の異常操作集合から異常操作ベクトルを構成する。
【０１３３】
（ステップＳ６０８）学習部３１は、カウンタｊを１、インクリメントする。ステップＳ６０２に戻る。
【０１３４】
（ステップＳ６０９）学習部３１は、２以上の正常操作ベクトル、および１以上の異常操作ベクトルを用いて、学習処理を行い、操作集合が正常か否かを判断するための学習器を構成する。
【０１３５】
（ステップＳ６１０）学習部３１は、ステップＳ６０９で構成された学習器を判断元情報格納部１１に蓄積する。上位処理にリターンする。
【０１３６】
なお、図６のフローチャートにおいて、学習部３１は、手順書ごと、または手順書のグループごと、またはサーバ装置ごとに学習器を構成し、蓄積することは好適である。
【０１３７】
以下、本実施の形態における異常操作検知装置Ａの具体的な動作例について説明する。まず、判断元情報格納部１１に判断元情報が蓄積される２つの具体例（具体例１、具体例２）について説明する。次に、異常検知のためのクラスタ選択の処理を具体例３で説明する。次に、外れ値検知、新規時系列特徴による検知、希少特徴による検知の各々の異常検知を、具体例４、具体例５、具体例６を用いて説明する。
（具体例１）
【０１３８】
判断元情報格納部１１に判断元情報が蓄積される具体例１を、図７を参照して説明する。具体例１において、ユーザが、端末装置を用いてサーバ装置にログインし、ログアウトするまでの期間、システム運用のための各種の正常な操作を行った、とする。なお、ユーザは、手順書をもとに作業を実施した、とする。
【０１３９】
そして、図示しない端末装置では、ユーザが手順書をもとに入力した正常な操作の操作情報（ウィンドウタイトル、およびキーボード入力）を記録し、ログデータを蓄積した、とする。そして、端末装置から異常操作検知装置Ａにログデータと、サーバ識別子とが送信された、とする。なお、ログデータは、正常操作集合であり、１セッション（ログインからログアウトまで）分の操作集合である。また、サーバ識別子は、ユーザが操作したシステムを構成するサーバ装置であり、端末装置に格納されていた、とする。
【０１４０】
次に、異常操作検知装置Ａの受付部２は、端末装置から正常操作集合とサーバ識別子とを受信する。
【０１４１】
次に、異常操作検知装置Ａの処理部３は、正常操作集合を、例えば、Bag-of-Wordsを用いて、ベクトル化し、正常操作集合ベクトルを構成し、サーバ識別子に対応付けて、判断元情報格納部１１に蓄積する。
【０１４２】
また、処理部３は、各サーバ識別子に対応付いている２以上の正常操作集合ベクトルを、クラスタリングする。そして、かかるクラスタリングの結果、各サーバ識別子に対応付いている２以上の正常操作集合ベクトルは、手順書ごとにグループ化される、とする。
【０１４３】
なお、端末装置から異常操作検知装置Ａにログデータと、サーバ識別子と、手順書識別子とが送信されても良い。かかる場合、異常操作検知装置Ａの受付部２は、端末装置から正常操作集合とサーバ識別子と手順書識別子とを受信する。そして、処理部３は、正常操作集合を、例えば、Bag-of-Wordsを用いて、ベクトル化し、正常操作集合ベクトルを構成し、当該正常操作集合ベクトルを、受信されたサーバ識別子と手順書識別子とに対応付けて、判断元情報格納部１１に蓄積する。
【０１４４】
以上の処理が、多数のユーザの操作に対して行われた、とする。すると、異常操作検知装置Ａの判断元情報格納部１１には、２以上の正常操作集合ベクトルが蓄積される。なお、正常操作集合ベクトルは、判断元情報の一例である。
【０１４５】
以上の具体例１の処理の概要を図７に示す。図７では、Bag-of-Wordsにより、正常操作集合に対して単語出現頻度行列化が行われ、例えば、操作情報「ｌｓ」が「３」、「ｐｉｎｇ」が「２」とする正常操作集合ベクトルが構成される。また、正常操作集合ベクトルに対して、サーバ識別子と手順書識別子とに対応するクラスタリングが行われる。また、図７において、一のユーザが複数の手順書に基づいて一のサーバ装置に対して操作を行っているが、一のユーザが複数の手順書に基づいて複数のサーバ装置に対して操作を行っても良いし、複数のユーザが一のサーバ装置に対して操作を行っても良いし、複数のユーザが一の操作を行っても良い。
（具体例２）
【０１４６】
判断元情報格納部１１に判断元情報が蓄積される具体例２を、図８を参照して説明する。  具体例２において、手順書情報格納部１３に２以上の手順書情報が格納されている、とする。ここで、手順書情報は、例えば、操作の手順が記載されたファイルである。
【０１４７】
そして、処理部３は、２以上の各手順書情報を、例えば、Bag-of-Wordsでベクトル化する。そして、処理部３は、取得した手順書のベクトルを、クラスタリングし、似た手順書の集合を生成し、クラスタリングされた（例えば、手順書のグループ識別子に対応付けられた）手順書のベクトルを手順書情報格納部１３に蓄積する。なお、手順書情報をベクトル化するアルゴリズムは問わない。
【０１４８】
また、具体例２において、ユーザが、システム運用のために、端末装置を用いてサーバ装置にログインし、ログアウトするまでの期間、各種の正常な操作を行った、とする。なお、ユーザは、ある手順書をもとに作業を実施した、とする。
【０１４９】
そして、図示しない端末装置では、ユーザが手順書をもとに入力した正常な操作の操作情報（ウィンドウタイトル、およびキーボード入力）を記録し、ログデータを蓄積した、とする。そして、端末装置から異常操作検知装置Ａにログデータが送信された、とする。なお、ログデータは、正常操作集合であり、１セッション（ログインからログアウトまで）分の操作集合である。
【０１５０】
次に、異常操作検知装置Ａの受付部２は、端末装置から正常操作集合を受信する。
【０１５１】
次に、異常操作検知装置Ａの処理部３は、正常操作集合を、例えば、Bag-of-Wordsを用いて、ベクトル化し、正常操作集合ベクトルを構成し、判断元情報格納部１１に蓄積する。
【０１５２】
次に、処理部３は、取得した正常操作集合ベクトルと、手順書情報格納部１３の手順書のベクトルの集合から、取得した正常操作集合ベクトルに対応する手順書のベクトルの集合を決定する。処理部３は、例えば、手順書のグループごとに、手順書のベクトルの代表値である代表ベクトルを取得し、正常操作集合ベクトルと最も距離が近い代表ベクトルと対応付ける。なお、代表ベクトルは、例えば、手順書の各ベクトルの各要素の平均値からなる要素の集合である。
【０１５３】
以上の処理が、ユーザの多数の操作に対して行われた、とする。すると、異常操作検知装置Ａの判断元情報格納部１１には、２以上の正常操作集合ベクトルが、手順書に対応付いて蓄積される。
【０１５４】
以上の具体例１の処理の概要を図８に示す。図８において、手順書情報からベクトルが構成され、正常操作集合（ログデータ）からベクトルが構成されている。また、手順書のベクトルがクラスタリングされている。さらに、クラスタリングされた手順書のベクトルの集合と、正常操作集合ベクトルの集合とが対応付いている。
（具体例３）
【０１５５】
異常検知のためのクラスタ選択の処理を説明する具体例３を、図９を参照して説明する。  具体例３において、被験者が、システム運用のために、端末装置を用いてサーバ装置にログインし、ログアウトするまでの期間、手順書Ａに基づいて、各種の操作を行った、とする。
【０１５６】
そして、端末装置では、被験者が手順書Ａをもとに入力した操作の操作情報（ウィンドウタイトル、およびキーボード入力）を記録し、ログデータを蓄積した、とする。そして、端末装置から異常操作検知装置Ａにログデータを含む判断指示が送信された、とする。なお、ログデータは、検査対象の操作集合であり、１セッション（ログインからログアウトまで）分の操作集合である。また、サーバ識別子は、ユーザが操作したシステムを構成するサーバ装置である。
【０１５７】
次に、異常操作検知装置Ａの受付部２は、端末装置から操作集合を含む判断指示を受信する。
【０１５８】
判断部３２は、判断指示に対応する操作集合を取得する。次に、判断部３２は、操作集合から、例えば、Bag-of-Wordsを用いて、操作集合ベクトルを構成する。
【０１５９】
次に、判断部３２の手順書決定手段３２１は、当該操作集合ベクトルを用いて、当該操作集合ベクトルに最も近似するベクトル群である、手順書Ａのベクトル群を決定する。つまり、手順書決定手段３２１は、手順書Ａを決定する。
【０１６０】
次に、正常操作集合選択手段３２２は、手順書Ａに対応する２以上の正常操作集合を判断元情報格納部１１から取得する。つまり、正常操作集合選択手段３２２は、手順書Ａによるログの情報を取得する。
【０１６１】
以上の具体例３の処理の概念を示す図は、図９である。
（具体例４）
【０１６２】
外れ値検知の処理を説明する具体例４を、図１０を参照して説明する。  
【０１６３】
判断部３２は、例えば、具体例３で取得した手順書Ａに対応する２以上の各正常操作集合から正常操作集合ベクトルを取得する。かかる２以上の正常操作集合ベクトル（学習データと言っても良い）は、図１０の１００１である、とする。なお、図１０の１００１は、正常ログ群である。
【０１６４】
次に、判断部３２は、端末装置から受信された操作集合から操作集合ベクトルを取得する。かかる操作集合ベクトルは、図１０の１００２である、とする。なお、図１０の１００２は、新規ログである。
【０１６５】
そして、判断部３２は、操作集合ベクトル１００２と２以上の正常操作集合ベクトル１００１とを比較して、ｌｏｆによる外れ値検知を行い、操作集合ベクトル１００２は外れ値である、と判断した、とする。
【０１６６】
次に、判断部３２は、変数「第一異常情報」に「異常」を示す値を代入する。
（具体例５）
【０１６７】
新規時系列特徴による検知の処理を説明する具体例５を、図１１を参照して説明する。具体例５において、例えば、判断部３２は、１セッション内のログデータを特徴抽出したものをbigramによる時系列データにする。そして、判断部３２は、過去の学習データには存在しない時系列の特徴数をカウントし、閾値を超えたか否かで異常検知する、とする。
【０１６８】
判断部３２は、例えば、具体例３で取得した手順書Ａに対応する２以上の正常操作集合を取得する。
【０１６９】
次に、判断部３２は、端末装置から受信された新規のログである操作集合の中から、２つの操作情報である連続操作情報を、１つずつ操作情報をずらしながら取得していく。そして、判断部３２は、各連続操作情報が、２以上の正常操作集合の中に出現するか否かを判断する。なお、図１１において、新規のログである操作集合の中の「Ｅ→Ｂ」の連続操作情報は、２以上の正常操作集合の中に出現しない。
【０１７０】
次に、判断部３２は、２以上の正常操作集合の中に出現しなかった連続操作情報の数を算出する。
【０１７１】
次に、判断部３２は、２以上の正常操作集合の中に出現しなかった連続操作情報の数が閾値以上であるか否かを判断する。ここで、判断部３２は、閾値未満である、と判断した、とする。
【０１７２】
次に、判断部３２は、変数「第二異常情報」に「正常」を示す値を代入する。
（具体例６）
【０１７３】
希少特徴による検知の処理を説明する具体例６を、図１２を参照して説明する。具体例６において、例えば、判断部３２は、１セッション内のログデータを特徴抽出し、過去の学習データに、閾値Ａ以下の数しか存在しない特徴の含有率が閾値Ｂを超えたか否かで異常検知する、とする。なお、特徴は、ここでは、操作情報である。
【０１７４】
まず、判断部３２は、具体例３で取得した手順書Ａに対応する２以上の正常操作集合から各操作情報と出現回数との組の情報を、多数取得する。そして、判断部３２は、出現回数が閾値Ａ以下の操作情報（ここでは「Ｚ」）を希操作情報として、希操作情報格納部１２に蓄積する。
【０１７５】
次に、判断部３２は、端末装置から受信された新規のログである操作集合の中から、順に２以上の各操作情報を取得する。そして、判断部３２は、２以上の各操作情報に対して、希操作情報格納部１２に存在するか否かを判断し、希操作情報格納部１２に存在する希操作情報に該当する操作情報の割（含有率）を算出する。
【０１７６】
次に、判断部３２は、含有率が閾値Ｂ以上または閾値Ｂより大きいか否かを判断する。ここで、判断部３２は、含有率が閾値Ｂ以上または閾値Ｂより大きいと判断し、変数「第三異常情報」に「異常」を示す値を代入する。
【０１７７】
そして、処理部３は、例えば、取得した第一異常情報、第二異常情報、第三異常情報のうち、例えば、「異常」であると判断された第一異常情報、第三異常情報とを用いて、出力する異常情報を構成した、とする。
【０１７８】
次に、出力部４は、構成された異常情報を出力する。かかる出力例は、図１３である。図１３において、新規ログが、外れ値であること、および新規ログ内の希少特徴（Ｚ）が明示されている。
【０１７９】
以上、本実施の形態によれば、システム運用において、異常操作を検知できる。その結果、監査者の労力が削減できる。
【０１８０】
また、本実施の形態によれば、１ログ内での異常度合の高い箇所も特定し、全般的に監査量の削減が期待できる。
【０１８１】
なお、本実施の形態において、主に、１セッション内のログデータを用いて、異常性を検知した。しかし、例えば、異常操作検知装置Ａが、被験者が操作する端末装置から操作情報をリアルタイムに受信し、蓄積された２以上の操作情報に対して異常性を検知する処理を行っても良い。なお、異常操作検知装置Ａが異常性を検知する処理を開始するトリガーは、受信された２以上の操作情報の量が予め決められた条件を満たすほど多くなった場合、または被験者の操作時間が予め決められた条件を満たすほど長くなった場合等が好適である。
【０１８２】
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、例えば、システム運用時の情報システムに対する正常な操作を特定する２以上の正常操作情報に関する２以上の正常操作集合に基づく判断元情報が格納される判断元情報格納部にアクセス可能なコンピュータを、ユーザが情報システムに対して行った操作を特定する２以上の操作情報を有する操作集合を受け付ける受付部と、前記判断元情報と、前記受付部が受け付けた操作集合とを用いて、当該操作集合に対する異常性に関する情報である異常情報を取得する判断部と、前記異常情報を出力する出力部として機能させるためのプログラムである。
【０１８３】
また、図１４は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の異常操作検知装置Ａ等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図１４は、このコンピュータシステム３００の概観図であり、図１５は、システム３００のブロック図である。
【０１８４】
図１４において、コンピュータシステム３００は、ＣＤ−ＲＯＭドライブを含むコンピュータ３０１と、キーボード３０２と、マウス３０３と、モニタ３０４とを含む。
【０１８５】
図１５において、コンピュータ３０１は、ＣＤ−ＲＯＭドライブ３０１２に加えて、ＭＰＵ３０１３と、ＭＰＵ３０１３、ＣＤ−ＲＯＭドライブ３０１２に接続されたバス３０１４と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ３０１５と、ＭＰＵ３０１３に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ３０１６と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク３０１７とを含む。ここでは、図示しないが、コンピュータ３０１は、さらに、ＬＡＮへの接続を提供するネットワークカードを含んでも良い。
【０１８６】
コンピュータシステム３００に、上述した実施の形態の異常操作検知装置Ａ等の機能を実行させるプログラムは、ＣＤ−ＲＯＭ３１０１に記憶されて、ＣＤ−ＲＯＭドライブ３０１２に挿入され、さらにハードディスク３０１７に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ３０１に送信され、ハードディスク３０１７に記憶されても良い。プログラムは実行の際にＲＡＭ３０１６にロードされる。プログラムは、ＣＤ−ＲＯＭ３１０１またはネットワークから直接、ロードされても良い。
【０１８７】
プログラムは、コンピュータ３０１に、上述した実施の形態の異常操作検知装置Ａ等の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム３００がどのように動作するかは周知であり、詳細な説明は省略する。
【０１８８】
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理（ハードウェアでしか行われない処理）は含まれない。
【０１８９】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０１９０】
また、上記各実施の形態において、一の装置に存在する２以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
【０１９１】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０１９２】
以上のように、本発明にかかる異常操作検知装置は、システム運用において、異常操作を検知できるという効果を有し、等として有用である。
【符号の説明】
【０１９３】
Ａ  異常操作検知装置
１  格納部
２  受付部
３  処理部
４  出力部
１１  判断元情報格納部
１２  希操作情報格納部
１３  手順書情報格納部
３１  学習部
３２  判断部
３２１  手順書決定手段
３２２  正常操作集合選択手段
３２３  判断手段
【図１】
2019204407.tif 000003
【図２】
2019204407.tif 000004
【図３】
2019204407.tif 000005
【図４】
2019204407.tif 000006
【図５】
2019204407.tif 000007
【図６】
2019204407.tif 000008
【図７】
2019204407.tif 000009
【図８】
2019204407.tif 000010
【図９】
2019204407.tif 000011
【図１０】
2019204407.tif 000012
【図１１】
2019204407.tif 000013
【図１２】
2019204407.tif 000014
【図１３】
2019204407.tif 000015
【図１４】
2019204407.tif 000016
【図１５】
2019204407.tif 000017